[libcxx-commits] [libcxx] a40bada - [libc++] Apply clang formatting to all string unit tests
Louis Dionne via libcxx-commits
libcxx-commits at lists.llvm.org
Fri Sep 1 10:39:02 PDT 2023
Author: Brendan Emery
Date: 2023-09-01T13:35:18-04:00
New Revision: a40bada91aeda276a772acfbcae6e8de26755a11
URL: https://github.com/llvm/llvm-project/commit/a40bada91aeda276a772acfbcae6e8de26755a11
DIFF: https://github.com/llvm/llvm-project/commit/a40bada91aeda276a772acfbcae6e8de26755a11.diff
LOG: [libc++] Apply clang formatting to all string unit tests
This applies clang-format to the std::string unit tests in preparation
for landing https://reviews.llvm.org/D140550.
Differential Revision: https://reviews.llvm.org/D140612
Added:
Modified:
libcxx/test/libcxx/strings/basic.string/alignof.compile.pass.cpp
libcxx/test/libcxx/strings/basic.string/sizeof.compile.pass.cpp
libcxx/test/libcxx/strings/basic.string/string.access/assert.back.pass.cpp
libcxx/test/libcxx/strings/basic.string/string.access/assert.cback.pass.cpp
libcxx/test/libcxx/strings/basic.string/string.capacity/PR53170.pass.cpp
libcxx/test/libcxx/strings/basic.string/string.capacity/max_size.pass.cpp
libcxx/test/libcxx/strings/basic.string/string.cons/copy_shrunk_long.pass.cpp
libcxx/test/libcxx/strings/basic.string/string.modifiers/assert.pop_back.pass.cpp
libcxx/test/libcxx/strings/basic.string/string.modifiers/clear_and_shrink.pass.cpp
libcxx/test/libcxx/strings/basic.string/string.modifiers/debug.erase.iter.pass.cpp
libcxx/test/libcxx/strings/basic.string/string.modifiers/debug.erase.iter_iter.pass.cpp
libcxx/test/libcxx/strings/basic.string/string.modifiers/debug.insert.iter_char.pass.cpp
libcxx/test/libcxx/strings/basic.string/string.modifiers/debug.insert.iter_iter_iter.pass.cpp
libcxx/test/libcxx/strings/basic.string/string.modifiers/debug.insert.iter_size_char.pass.cpp
libcxx/test/libcxx/strings/basic.string/string.modifiers/resize_default_initialized.pass.cpp
libcxx/test/libcxx/strings/c.strings/constexpr.cstring.compile.pass.cpp
libcxx/test/libcxx/strings/c.strings/constexpr_memmove.pass.cpp
libcxx/test/libcxx/strings/string.view/assert.ctor.pointer.pass.cpp
libcxx/test/libcxx/strings/string.view/string.view.iterators/debug.iterator-indexing.pass.cpp
libcxx/test/std/strings/basic.string.hash/char_type_hash.verify.cpp
libcxx/test/std/strings/basic.string.hash/enabled_hashes.pass.cpp
libcxx/test/std/strings/basic.string.hash/strings.pass.cpp
libcxx/test/std/strings/basic.string.literals/literal.pass.cpp
libcxx/test/std/strings/basic.string/allocator_mismatch.verify.cpp
libcxx/test/std/strings/basic.string/char.bad.verify.cpp
libcxx/test/std/strings/basic.string/range_concept_conformance.compile.pass.cpp
libcxx/test/std/strings/basic.string/string.access/at.pass.cpp
libcxx/test/std/strings/basic.string/string.access/back.pass.cpp
libcxx/test/std/strings/basic.string/string.access/front.pass.cpp
libcxx/test/std/strings/basic.string/string.access/index.pass.cpp
libcxx/test/std/strings/basic.string/string.capacity/capacity.pass.cpp
libcxx/test/std/strings/basic.string/string.capacity/clear.pass.cpp
libcxx/test/std/strings/basic.string/string.capacity/empty.pass.cpp
libcxx/test/std/strings/basic.string/string.capacity/length.pass.cpp
libcxx/test/std/strings/basic.string/string.capacity/max_size.pass.cpp
libcxx/test/std/strings/basic.string/string.capacity/over_max_size.pass.cpp
libcxx/test/std/strings/basic.string/string.capacity/reserve.deprecated_in_cxx20.verify.cpp
libcxx/test/std/strings/basic.string/string.capacity/reserve.pass.cpp
libcxx/test/std/strings/basic.string/string.capacity/reserve_size.pass.cpp
libcxx/test/std/strings/basic.string/string.capacity/resize_and_overwrite.pass.cpp
libcxx/test/std/strings/basic.string/string.capacity/resize_size.pass.cpp
libcxx/test/std/strings/basic.string/string.capacity/resize_size_char.pass.cpp
libcxx/test/std/strings/basic.string/string.capacity/shrink_to_fit.explicit_instantiation.sh.cpp
libcxx/test/std/strings/basic.string/string.capacity/shrink_to_fit.pass.cpp
libcxx/test/std/strings/basic.string/string.capacity/size.pass.cpp
libcxx/test/std/strings/basic.string/string.cons/T_size_size.pass.cpp
libcxx/test/std/strings/basic.string/string.cons/alloc.pass.cpp
libcxx/test/std/strings/basic.string/string.cons/brace_assignment.pass.cpp
libcxx/test/std/strings/basic.string/string.cons/char_assignment.pass.cpp
libcxx/test/std/strings/basic.string/string.cons/copy.pass.cpp
libcxx/test/std/strings/basic.string/string.cons/copy_alloc.pass.cpp
libcxx/test/std/strings/basic.string/string.cons/copy_assignment.pass.cpp
libcxx/test/std/strings/basic.string/string.cons/default.pass.cpp
libcxx/test/std/strings/basic.string/string.cons/dtor.pass.cpp
libcxx/test/std/strings/basic.string/string.cons/from_range.pass.cpp
libcxx/test/std/strings/basic.string/string.cons/from_range_deduction.pass.cpp
libcxx/test/std/strings/basic.string/string.cons/implicit_deduction_guides.pass.cpp
libcxx/test/std/strings/basic.string/string.cons/initializer_list.pass.cpp
libcxx/test/std/strings/basic.string/string.cons/initializer_list_assignment.pass.cpp
libcxx/test/std/strings/basic.string/string.cons/iter_alloc.pass.cpp
libcxx/test/std/strings/basic.string/string.cons/iter_alloc_deduction.pass.cpp
libcxx/test/std/strings/basic.string/string.cons/move.pass.cpp
libcxx/test/std/strings/basic.string/string.cons/move_alloc.pass.cpp
libcxx/test/std/strings/basic.string/string.cons/move_assign_noexcept.pass.cpp
libcxx/test/std/strings/basic.string/string.cons/move_assignment.pass.cpp
libcxx/test/std/strings/basic.string/string.cons/move_noexcept.pass.cpp
libcxx/test/std/strings/basic.string/string.cons/pointer_alloc.pass.cpp
libcxx/test/std/strings/basic.string/string.cons/pointer_assignment.pass.cpp
libcxx/test/std/strings/basic.string/string.cons/pointer_size_alloc.pass.cpp
libcxx/test/std/strings/basic.string/string.cons/size_char_alloc.pass.cpp
libcxx/test/std/strings/basic.string/string.cons/string_view.pass.cpp
libcxx/test/std/strings/basic.string/string.cons/string_view_assignment.pass.cpp
libcxx/test/std/strings/basic.string/string.cons/string_view_deduction.pass.cpp
libcxx/test/std/strings/basic.string/string.cons/string_view_size_size_deduction.pass.cpp
libcxx/test/std/strings/basic.string/string.cons/substr.pass.cpp
libcxx/test/std/strings/basic.string/string.contains/contains.char.pass.cpp
libcxx/test/std/strings/basic.string/string.contains/contains.ptr.pass.cpp
libcxx/test/std/strings/basic.string/string.contains/contains.string_view.pass.cpp
libcxx/test/std/strings/basic.string/string.ends_with/ends_with.char.pass.cpp
libcxx/test/std/strings/basic.string/string.ends_with/ends_with.ptr.pass.cpp
libcxx/test/std/strings/basic.string/string.ends_with/ends_with.string_view.pass.cpp
libcxx/test/std/strings/basic.string/string.iterators/begin.pass.cpp
libcxx/test/std/strings/basic.string/string.iterators/cbegin.pass.cpp
libcxx/test/std/strings/basic.string/string.iterators/cend.pass.cpp
libcxx/test/std/strings/basic.string/string.iterators/crbegin.pass.cpp
libcxx/test/std/strings/basic.string/string.iterators/crend.pass.cpp
libcxx/test/std/strings/basic.string/string.iterators/end.pass.cpp
libcxx/test/std/strings/basic.string/string.iterators/iterator_concept_conformance.compile.pass.cpp
libcxx/test/std/strings/basic.string/string.iterators/iterators.pass.cpp
libcxx/test/std/strings/basic.string/string.iterators/rbegin.pass.cpp
libcxx/test/std/strings/basic.string/string.iterators/rend.pass.cpp
libcxx/test/std/strings/basic.string/string.modifiers/robust_against_adl.pass.cpp
libcxx/test/std/strings/basic.string/string.modifiers/string_append/T_size_size.pass.cpp
libcxx/test/std/strings/basic.string/string.modifiers/string_append/append_range.pass.cpp
libcxx/test/std/strings/basic.string/string.modifiers/string_append/iterator.pass.cpp
libcxx/test/std/strings/basic.string/string.modifiers/string_append/pointer.pass.cpp
libcxx/test/std/strings/basic.string/string.modifiers/string_append/pointer_size.pass.cpp
libcxx/test/std/strings/basic.string/string.modifiers/string_append/push_back.pass.cpp
libcxx/test/std/strings/basic.string/string.modifiers/string_append/size_char.pass.cpp
libcxx/test/std/strings/basic.string/string.modifiers/string_append/string.pass.cpp
libcxx/test/std/strings/basic.string/string.modifiers/string_append/string_size_size.pass.cpp
libcxx/test/std/strings/basic.string/string.modifiers/string_append/string_view.pass.cpp
libcxx/test/std/strings/basic.string/string.modifiers/string_assign/T_size_size.pass.cpp
libcxx/test/std/strings/basic.string/string.modifiers/string_assign/assign_range.pass.cpp
libcxx/test/std/strings/basic.string/string.modifiers/string_assign/initializer_list.pass.cpp
libcxx/test/std/strings/basic.string/string.modifiers/string_assign/iterator.pass.cpp
libcxx/test/std/strings/basic.string/string.modifiers/string_assign/pointer.pass.cpp
libcxx/test/std/strings/basic.string/string.modifiers/string_assign/pointer_size.pass.cpp
libcxx/test/std/strings/basic.string/string.modifiers/string_assign/rv_string.pass.cpp
libcxx/test/std/strings/basic.string/string.modifiers/string_assign/size_char.pass.cpp
libcxx/test/std/strings/basic.string/string.modifiers/string_assign/string.pass.cpp
libcxx/test/std/strings/basic.string/string.modifiers/string_assign/string_size_size.pass.cpp
libcxx/test/std/strings/basic.string/string.modifiers/string_assign/string_view.pass.cpp
libcxx/test/std/strings/basic.string/string.modifiers/string_copy/copy.pass.cpp
libcxx/test/std/strings/basic.string/string.modifiers/string_erase/iter.pass.cpp
libcxx/test/std/strings/basic.string/string.modifiers/string_erase/iter_iter.pass.cpp
libcxx/test/std/strings/basic.string/string.modifiers/string_erase/pop_back.pass.cpp
libcxx/test/std/strings/basic.string/string.modifiers/string_erase/size_size.pass.cpp
libcxx/test/std/strings/basic.string/string.modifiers/string_insert/iter_char.pass.cpp
libcxx/test/std/strings/basic.string/string.modifiers/string_insert/iter_initializer_list.pass.cpp
libcxx/test/std/strings/basic.string/string.modifiers/string_insert/iter_iter_iter.infinite_recursion.pass.cpp
libcxx/test/std/strings/basic.string/string.modifiers/string_insert/iter_iter_iter.pass.cpp
libcxx/test/std/strings/basic.string/string.modifiers/string_insert/iter_size_char.pass.cpp
libcxx/test/std/strings/basic.string/string.modifiers/string_insert/size_T_size_size.pass.cpp
libcxx/test/std/strings/basic.string/string.modifiers/string_insert/size_pointer.pass.cpp
libcxx/test/std/strings/basic.string/string.modifiers/string_insert/size_pointer_size.pass.cpp
libcxx/test/std/strings/basic.string/string.modifiers/string_insert/size_size_char.pass.cpp
libcxx/test/std/strings/basic.string/string.modifiers/string_insert/size_string.pass.cpp
libcxx/test/std/strings/basic.string/string.modifiers/string_insert/size_string_size_size.pass.cpp
libcxx/test/std/strings/basic.string/string.modifiers/string_insert/string_view.pass.cpp
libcxx/test/std/strings/basic.string/string.modifiers/string_op_plus_equal/char.pass.cpp
libcxx/test/std/strings/basic.string/string.modifiers/string_op_plus_equal/initializer_list.pass.cpp
libcxx/test/std/strings/basic.string/string.modifiers/string_op_plus_equal/pointer.pass.cpp
libcxx/test/std/strings/basic.string/string.modifiers/string_op_plus_equal/string.pass.cpp
libcxx/test/std/strings/basic.string/string.modifiers/string_replace/iter_iter_initializer_list.pass.cpp
libcxx/test/std/strings/basic.string/string.modifiers/string_replace/iter_iter_iter_iter.pass.cpp
libcxx/test/std/strings/basic.string/string.modifiers/string_replace/iter_iter_pointer.pass.cpp
libcxx/test/std/strings/basic.string/string.modifiers/string_replace/iter_iter_pointer_size.pass.cpp
libcxx/test/std/strings/basic.string/string.modifiers/string_replace/iter_iter_size_char.pass.cpp
libcxx/test/std/strings/basic.string/string.modifiers/string_replace/iter_iter_string.pass.cpp
libcxx/test/std/strings/basic.string/string.modifiers/string_replace/iter_iter_string_view.pass.cpp
libcxx/test/std/strings/basic.string/string.modifiers/string_replace/replace_with_range.pass.cpp
libcxx/test/std/strings/basic.string/string.modifiers/string_replace/size_size_T_size_size.pass.cpp
libcxx/test/std/strings/basic.string/string.modifiers/string_replace/size_size_pointer.pass.cpp
libcxx/test/std/strings/basic.string/string.modifiers/string_replace/size_size_pointer_size.pass.cpp
libcxx/test/std/strings/basic.string/string.modifiers/string_replace/size_size_size_char.pass.cpp
libcxx/test/std/strings/basic.string/string.modifiers/string_replace/size_size_string.pass.cpp
libcxx/test/std/strings/basic.string/string.modifiers/string_replace/size_size_string_size_size.pass.cpp
libcxx/test/std/strings/basic.string/string.modifiers/string_replace/size_size_string_view.pass.cpp
libcxx/test/std/strings/basic.string/string.modifiers/string_swap/swap.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string.io/get_line.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string.io/get_line_delim.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string.io/get_line_delim_rv.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string.io/get_line_rv.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string.io/lit.local.cfg
libcxx/test/std/strings/basic.string/string.nonmembers/string.io/stream_extract.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string.io/stream_insert.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string.special/swap.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string.special/swap_noexcept.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_op!=/pointer_string.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_op!=/string_pointer.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_op!=/string_string.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_op!=/string_string_view.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_op!=/string_view_string.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/allocator_propagation.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/char_string.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/pointer_string.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/string_char.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/string_pointer.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/string_string.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_operator==/pointer_string.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_operator==/string_pointer.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_operator==/string_string.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_operator==/string_string_view.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_operator==/string_view_string.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt/pointer_string.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt/string_pointer.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt/string_string.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt/string_string_view.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt/string_view_string.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt=/pointer_string.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt=/string_pointer.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt=/string_string.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt=/string_string_view.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt=/string_view_string.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt/pointer_string.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt/string_pointer.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt/string_string.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt/string_string_view.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt/string_view_string.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt=/pointer_string.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt=/string_pointer.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt=/string_string.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt=/string_string_view.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt=/string_view_string.pass.cpp
libcxx/test/std/strings/basic.string/string.ops/string.accessors/c_str.pass.cpp
libcxx/test/std/strings/basic.string/string.ops/string.accessors/data.pass.cpp
libcxx/test/std/strings/basic.string/string.ops/string.accessors/get_allocator.pass.cpp
libcxx/test/std/strings/basic.string/string.ops/string_compare/pointer.pass.cpp
libcxx/test/std/strings/basic.string/string.ops/string_compare/size_size_T_size_size.pass.cpp
libcxx/test/std/strings/basic.string/string.ops/string_compare/size_size_pointer.pass.cpp
libcxx/test/std/strings/basic.string/string.ops/string_compare/size_size_pointer_size.pass.cpp
libcxx/test/std/strings/basic.string/string.ops/string_compare/size_size_string.pass.cpp
libcxx/test/std/strings/basic.string/string.ops/string_compare/size_size_string_size_size.pass.cpp
libcxx/test/std/strings/basic.string/string.ops/string_compare/size_size_string_view.pass.cpp
libcxx/test/std/strings/basic.string/string.ops/string_compare/string.pass.cpp
libcxx/test/std/strings/basic.string/string.ops/string_compare/string_view.pass.cpp
libcxx/test/std/strings/basic.string/string.ops/string_find.first.not.of/char_size.pass.cpp
libcxx/test/std/strings/basic.string/string.ops/string_find.first.not.of/pointer_size.pass.cpp
libcxx/test/std/strings/basic.string/string.ops/string_find.first.not.of/pointer_size_size.pass.cpp
libcxx/test/std/strings/basic.string/string.ops/string_find.first.not.of/string_size.pass.cpp
libcxx/test/std/strings/basic.string/string.ops/string_find.first.not.of/string_view_size.pass.cpp
libcxx/test/std/strings/basic.string/string.ops/string_find.first.of/char_size.pass.cpp
libcxx/test/std/strings/basic.string/string.ops/string_find.first.of/pointer_size.pass.cpp
libcxx/test/std/strings/basic.string/string.ops/string_find.first.of/pointer_size_size.pass.cpp
libcxx/test/std/strings/basic.string/string.ops/string_find.first.of/string_size.pass.cpp
libcxx/test/std/strings/basic.string/string.ops/string_find.first.of/string_view_size.pass.cpp
libcxx/test/std/strings/basic.string/string.ops/string_find.last.not.of/char_size.pass.cpp
libcxx/test/std/strings/basic.string/string.ops/string_find.last.not.of/pointer_size.pass.cpp
libcxx/test/std/strings/basic.string/string.ops/string_find.last.not.of/pointer_size_size.pass.cpp
libcxx/test/std/strings/basic.string/string.ops/string_find.last.not.of/string_size.pass.cpp
libcxx/test/std/strings/basic.string/string.ops/string_find.last.not.of/string_view_size.pass.cpp
libcxx/test/std/strings/basic.string/string.ops/string_find.last.of/char_size.pass.cpp
libcxx/test/std/strings/basic.string/string.ops/string_find.last.of/pointer_size.pass.cpp
libcxx/test/std/strings/basic.string/string.ops/string_find.last.of/pointer_size_size.pass.cpp
libcxx/test/std/strings/basic.string/string.ops/string_find.last.of/string_size.pass.cpp
libcxx/test/std/strings/basic.string/string.ops/string_find.last.of/string_view_size.pass.cpp
libcxx/test/std/strings/basic.string/string.ops/string_find/char_size.pass.cpp
libcxx/test/std/strings/basic.string/string.ops/string_find/pointer_size.pass.cpp
libcxx/test/std/strings/basic.string/string.ops/string_find/pointer_size_size.pass.cpp
libcxx/test/std/strings/basic.string/string.ops/string_find/string_size.pass.cpp
libcxx/test/std/strings/basic.string/string.ops/string_find/string_view_size.pass.cpp
libcxx/test/std/strings/basic.string/string.ops/string_rfind/char_size.pass.cpp
libcxx/test/std/strings/basic.string/string.ops/string_rfind/pointer_size.pass.cpp
libcxx/test/std/strings/basic.string/string.ops/string_rfind/pointer_size_size.pass.cpp
libcxx/test/std/strings/basic.string/string.ops/string_rfind/string_size.pass.cpp
libcxx/test/std/strings/basic.string/string.ops/string_rfind/string_view_size.pass.cpp
libcxx/test/std/strings/basic.string/string.ops/string_substr/substr.pass.cpp
libcxx/test/std/strings/basic.string/string.require/contiguous.pass.cpp
libcxx/test/std/strings/basic.string/string.starts_with/starts_with.char.pass.cpp
libcxx/test/std/strings/basic.string/string.starts_with/starts_with.ptr.pass.cpp
libcxx/test/std/strings/basic.string/string.starts_with/starts_with.string_view.pass.cpp
libcxx/test/std/strings/basic.string/test_traits.h
libcxx/test/std/strings/basic.string/traits_mismatch.verify.cpp
libcxx/test/std/strings/basic.string/types.pass.cpp
libcxx/test/std/strings/c.strings/cctype.pass.cpp
libcxx/test/std/strings/c.strings/cstring.pass.cpp
libcxx/test/std/strings/c.strings/cwchar.pass.cpp
libcxx/test/std/strings/c.strings/cwctype.pass.cpp
libcxx/test/std/strings/char.traits/char.traits.require/nothing_to_do.pass.cpp
libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/assign2.pass.cpp
libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/assign3.pass.cpp
libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/copy.pass.cpp
libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/eof.pass.cpp
libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/eq.pass.cpp
libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/eq_int_type.pass.cpp
libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/find.pass.cpp
libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/length.pass.cpp
libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/lt.pass.cpp
libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/move.pass.cpp
libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/not_eof.pass.cpp
libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/to_char_type.pass.cpp
libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/to_int_type.pass.cpp
libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/assign2.pass.cpp
libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/assign3.pass.cpp
libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/compare.pass.cpp
libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/copy.pass.cpp
libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/eof.pass.cpp
libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/eq.pass.cpp
libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/eq_int_type.pass.cpp
libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/find.pass.cpp
libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/length.pass.cpp
libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/lt.pass.cpp
libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/move.pass.cpp
libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/not_eof.pass.cpp
libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/to_char_type.pass.cpp
libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/to_int_type.pass.cpp
libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/assign2.pass.cpp
libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/assign3.pass.cpp
libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/compare.pass.cpp
libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/copy.pass.cpp
libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/eof.pass.cpp
libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/eq.pass.cpp
libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/eq_int_type.pass.cpp
libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/find.pass.cpp
libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/length.pass.cpp
libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/lt.pass.cpp
libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/move.pass.cpp
libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/not_eof.pass.cpp
libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/to_char_type.pass.cpp
libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/to_int_type.pass.cpp
libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/assign2.pass.cpp
libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/assign3.pass.cpp
libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/compare.pass.cpp
libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/copy.pass.cpp
libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/eof.pass.cpp
libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/eq.pass.cpp
libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/eq_int_type.pass.cpp
libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/find.pass.cpp
libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/length.pass.cpp
libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/lt.pass.cpp
libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/move.pass.cpp
libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/not_eof.pass.cpp
libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/to_char_type.pass.cpp
libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/to_int_type.pass.cpp
libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar_t/assign2.pass.cpp
libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar_t/assign3.pass.cpp
libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar_t/compare.pass.cpp
libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar_t/copy.pass.cpp
libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar_t/eof.pass.cpp
libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar_t/eq.pass.cpp
libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar_t/eq_int_type.pass.cpp
libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar_t/find.pass.cpp
libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar_t/length.pass.cpp
libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar_t/lt.pass.cpp
libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar_t/move.pass.cpp
libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar_t/not_eof.pass.cpp
libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar_t/to_char_type.pass.cpp
libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar_t/to_int_type.pass.cpp
libcxx/test/std/strings/char.traits/char.traits.typedefs/nothing_to_do.pass.cpp
libcxx/test/std/strings/string.conversions/stod.pass.cpp
libcxx/test/std/strings/string.conversions/stof.pass.cpp
libcxx/test/std/strings/string.conversions/stoi.pass.cpp
libcxx/test/std/strings/string.conversions/stol.pass.cpp
libcxx/test/std/strings/string.conversions/stold.pass.cpp
libcxx/test/std/strings/string.conversions/stoll.pass.cpp
libcxx/test/std/strings/string.conversions/stoul.pass.cpp
libcxx/test/std/strings/string.conversions/stoull.pass.cpp
libcxx/test/std/strings/string.conversions/to_string.pass.cpp
libcxx/test/std/strings/string.conversions/to_wstring.pass.cpp
libcxx/test/std/strings/string.view/char.bad.verify.cpp
libcxx/test/std/strings/string.view/range_concept_conformance.compile.pass.cpp
libcxx/test/std/strings/string.view/string.view.access/at.pass.cpp
libcxx/test/std/strings/string.view/string.view.access/back.pass.cpp
libcxx/test/std/strings/string.view/string.view.access/data.pass.cpp
libcxx/test/std/strings/string.view/string.view.access/front.pass.cpp
libcxx/test/std/strings/string.view/string.view.access/index.pass.cpp
libcxx/test/std/strings/string.view/string.view.capacity/capacity.pass.cpp
libcxx/test/std/strings/string.view/string.view.capacity/empty.verify.cpp
libcxx/test/std/strings/string.view/string.view.comparison/equal.pass.cpp
libcxx/test/std/strings/string.view/string.view.comparison/greater.pass.cpp
libcxx/test/std/strings/string.view/string.view.comparison/greater_equal.pass.cpp
libcxx/test/std/strings/string.view/string.view.comparison/less.pass.cpp
libcxx/test/std/strings/string.view/string.view.comparison/less_equal.pass.cpp
libcxx/test/std/strings/string.view/string.view.comparison/not_equal.pass.cpp
libcxx/test/std/strings/string.view/string.view.cons/assign.pass.cpp
libcxx/test/std/strings/string.view/string.view.cons/default.pass.cpp
libcxx/test/std/strings/string.view/string.view.cons/from_iterator_sentinel.pass.cpp
libcxx/test/std/strings/string.view/string.view.cons/from_literal.pass.cpp
libcxx/test/std/strings/string.view/string.view.cons/from_ptr_len.pass.cpp
libcxx/test/std/strings/string.view/string.view.cons/from_range.pass.cpp
libcxx/test/std/strings/string.view/string.view.cons/from_string.pass.cpp
libcxx/test/std/strings/string.view/string.view.cons/implicit_deduction_guides.pass.cpp
libcxx/test/std/strings/string.view/string.view.deduct/iterator_sentinel.pass.cpp
libcxx/test/std/strings/string.view/string.view.deduct/range.pass.cpp
libcxx/test/std/strings/string.view/string.view.find/find_char_size.pass.cpp
libcxx/test/std/strings/string.view/string.view.find/find_first_not_of_char_size.pass.cpp
libcxx/test/std/strings/string.view/string.view.find/find_first_not_of_pointer_size.pass.cpp
libcxx/test/std/strings/string.view/string.view.find/find_first_not_of_pointer_size_size.pass.cpp
libcxx/test/std/strings/string.view/string.view.find/find_first_not_of_string_view_size.pass.cpp
libcxx/test/std/strings/string.view/string.view.find/find_first_of_char_size.pass.cpp
libcxx/test/std/strings/string.view/string.view.find/find_first_of_pointer_size.pass.cpp
libcxx/test/std/strings/string.view/string.view.find/find_first_of_pointer_size_size.pass.cpp
libcxx/test/std/strings/string.view/string.view.find/find_first_of_string_view_size.pass.cpp
libcxx/test/std/strings/string.view/string.view.find/find_last_not_of_char_size.pass.cpp
libcxx/test/std/strings/string.view/string.view.find/find_last_not_of_pointer_size.pass.cpp
libcxx/test/std/strings/string.view/string.view.find/find_last_not_of_pointer_size_size.pass.cpp
libcxx/test/std/strings/string.view/string.view.find/find_last_not_of_string_view_size.pass.cpp
libcxx/test/std/strings/string.view/string.view.find/find_last_of_char_size.pass.cpp
libcxx/test/std/strings/string.view/string.view.find/find_last_of_pointer_size.pass.cpp
libcxx/test/std/strings/string.view/string.view.find/find_last_of_pointer_size_size.pass.cpp
libcxx/test/std/strings/string.view/string.view.find/find_last_of_string_view_size.pass.cpp
libcxx/test/std/strings/string.view/string.view.find/find_pointer_size.pass.cpp
libcxx/test/std/strings/string.view/string.view.find/find_pointer_size_size.pass.cpp
libcxx/test/std/strings/string.view/string.view.find/find_string_view_size.pass.cpp
libcxx/test/std/strings/string.view/string.view.find/rfind_char_size.pass.cpp
libcxx/test/std/strings/string.view/string.view.find/rfind_pointer_size.pass.cpp
libcxx/test/std/strings/string.view/string.view.find/rfind_pointer_size_size.pass.cpp
libcxx/test/std/strings/string.view/string.view.find/rfind_string_view_size.pass.cpp
libcxx/test/std/strings/string.view/string.view.hash/char_type.hash.verify.cpp
libcxx/test/std/strings/string.view/string.view.hash/enabled_hashes.pass.cpp
libcxx/test/std/strings/string.view/string.view.hash/string_view.pass.cpp
libcxx/test/std/strings/string.view/string.view.io/stream_insert.pass.cpp
libcxx/test/std/strings/string.view/string.view.io/stream_insert_decl_present.compile.pass.cpp
libcxx/test/std/strings/string.view/string.view.iterators/begin.pass.cpp
libcxx/test/std/strings/string.view/string.view.iterators/end.pass.cpp
libcxx/test/std/strings/string.view/string.view.iterators/iterator_concept_conformance.compile.pass.cpp
libcxx/test/std/strings/string.view/string.view.iterators/rbegin.pass.cpp
libcxx/test/std/strings/string.view/string.view.iterators/rend.pass.cpp
libcxx/test/std/strings/string.view/string.view.modifiers/remove_prefix.pass.cpp
libcxx/test/std/strings/string.view/string.view.modifiers/remove_suffix.pass.cpp
libcxx/test/std/strings/string.view/string.view.modifiers/swap.pass.cpp
libcxx/test/std/strings/string.view/string.view.nonmem/quoted.pass.cpp
libcxx/test/std/strings/string.view/string.view.ops/compare.pointer.pass.cpp
libcxx/test/std/strings/string.view/string.view.ops/compare.pointer_size.pass.cpp
libcxx/test/std/strings/string.view/string.view.ops/compare.size_size_sv.pass.cpp
libcxx/test/std/strings/string.view/string.view.ops/compare.size_size_sv_pointer_size.pass.cpp
libcxx/test/std/strings/string.view/string.view.ops/compare.size_size_sv_size_size.pass.cpp
libcxx/test/std/strings/string.view/string.view.ops/compare.sv.pass.cpp
libcxx/test/std/strings/string.view/string.view.ops/copy.pass.cpp
libcxx/test/std/strings/string.view/string.view.ops/substr.pass.cpp
libcxx/test/std/strings/string.view/string.view.synop/nothing_to_do.pass.cpp
libcxx/test/std/strings/string.view/string.view.template/contains.char.pass.cpp
libcxx/test/std/strings/string.view/string.view.template/contains.ptr.pass.cpp
libcxx/test/std/strings/string.view/string.view.template/contains.string_view.pass.cpp
libcxx/test/std/strings/string.view/string.view.template/ends_with.char.pass.cpp
libcxx/test/std/strings/string.view/string.view.template/ends_with.ptr.pass.cpp
libcxx/test/std/strings/string.view/string.view.template/ends_with.string_view.pass.cpp
libcxx/test/std/strings/string.view/string.view.template/starts_with.char.pass.cpp
libcxx/test/std/strings/string.view/string.view.template/starts_with.ptr.pass.cpp
libcxx/test/std/strings/string.view/string.view.template/starts_with.string_view.pass.cpp
libcxx/test/std/strings/string.view/string_view.literals/literal.pass.cpp
libcxx/test/std/strings/string.view/traits_mismatch.compile.fail.cpp
libcxx/test/std/strings/string.view/types.pass.cpp
libcxx/test/std/strings/strings.erasure/erase.pass.cpp
libcxx/test/std/strings/strings.erasure/erase_if.pass.cpp
libcxx/test/std/strings/strings.general/nothing_to_do.pass.cpp
Removed:
################################################################################
diff --git a/libcxx/test/libcxx/strings/basic.string/alignof.compile.pass.cpp b/libcxx/test/libcxx/strings/basic.string/alignof.compile.pass.cpp
index 504b8c8a551da1b..7b4d54ed410b027 100644
--- a/libcxx/test/libcxx/strings/basic.string/alignof.compile.pass.cpp
+++ b/libcxx/test/libcxx/strings/basic.string/alignof.compile.pass.cpp
@@ -24,9 +24,9 @@ class small_pointer {
template <class T>
class small_iter_allocator {
public:
- using value_type = T;
- using pointer = small_pointer<T>;
- using size_type = std::int16_t;
+ using value_type = T;
+ using pointer = small_pointer<T>;
+ using size_type = std::int16_t;
using
diff erence_type = std::int16_t;
small_iter_allocator() TEST_NOEXCEPT {}
diff --git a/libcxx/test/libcxx/strings/basic.string/sizeof.compile.pass.cpp b/libcxx/test/libcxx/strings/basic.string/sizeof.compile.pass.cpp
index 4d3eeb1bbce6e3b..6e00e43618b2e36 100644
--- a/libcxx/test/libcxx/strings/basic.string/sizeof.compile.pass.cpp
+++ b/libcxx/test/libcxx/strings/basic.string/sizeof.compile.pass.cpp
@@ -22,9 +22,9 @@ class small_pointer {
template <class T>
class small_iter_allocator {
public:
- using value_type = T;
- using pointer = small_pointer<T>;
- using size_type = std::int16_t;
+ using value_type = T;
+ using pointer = small_pointer<T>;
+ using size_type = std::int16_t;
using
diff erence_type = std::int16_t;
small_iter_allocator() TEST_NOEXCEPT {}
diff --git a/libcxx/test/libcxx/strings/basic.string/string.access/assert.back.pass.cpp b/libcxx/test/libcxx/strings/basic.string/string.access/assert.back.pass.cpp
index 9f932dc23a3781e..635c907c16e5c96 100644
--- a/libcxx/test/libcxx/strings/basic.string/string.access/assert.back.pass.cpp
+++ b/libcxx/test/libcxx/strings/basic.string/string.access/assert.back.pass.cpp
@@ -21,16 +21,16 @@
#include "min_allocator.h"
int main(int, char**) {
- {
- std::string s;
- TEST_LIBCPP_ASSERT_FAILURE(s.back(), "string::back(): string is empty");
- }
-
- {
- typedef std::basic_string<char, std::char_traits<char>, min_allocator<char> > S;
- S s;
- TEST_LIBCPP_ASSERT_FAILURE(s.back(), "string::back(): string is empty");
- }
-
- return 0;
+ {
+ std::string s;
+ TEST_LIBCPP_ASSERT_FAILURE(s.back(), "string::back(): string is empty");
+ }
+
+ {
+ typedef std::basic_string<char, std::char_traits<char>, min_allocator<char> > S;
+ S s;
+ TEST_LIBCPP_ASSERT_FAILURE(s.back(), "string::back(): string is empty");
+ }
+
+ return 0;
}
diff --git a/libcxx/test/libcxx/strings/basic.string/string.access/assert.cback.pass.cpp b/libcxx/test/libcxx/strings/basic.string/string.access/assert.cback.pass.cpp
index 9c3312b47cecd77..002099d95660cf0 100644
--- a/libcxx/test/libcxx/strings/basic.string/string.access/assert.cback.pass.cpp
+++ b/libcxx/test/libcxx/strings/basic.string/string.access/assert.cback.pass.cpp
@@ -21,16 +21,16 @@
#include "min_allocator.h"
int main(int, char**) {
- {
- std::string const s;
- TEST_LIBCPP_ASSERT_FAILURE(s.back(), "string::back(): string is empty");
- }
-
- {
- typedef std::basic_string<char, std::char_traits<char>, min_allocator<char> > S;
- const S s;
- TEST_LIBCPP_ASSERT_FAILURE(s.back(), "string::back(): string is empty");
- }
-
- return 0;
+ {
+ std::string const s;
+ TEST_LIBCPP_ASSERT_FAILURE(s.back(), "string::back(): string is empty");
+ }
+
+ {
+ typedef std::basic_string<char, std::char_traits<char>, min_allocator<char> > S;
+ const S s;
+ TEST_LIBCPP_ASSERT_FAILURE(s.back(), "string::back(): string is empty");
+ }
+
+ return 0;
}
diff --git a/libcxx/test/libcxx/strings/basic.string/string.capacity/PR53170.pass.cpp b/libcxx/test/libcxx/strings/basic.string/string.capacity/PR53170.pass.cpp
index feb9499eb00e4dc..7bf8043df76d5b1 100644
--- a/libcxx/test/libcxx/strings/basic.string/string.capacity/PR53170.pass.cpp
+++ b/libcxx/test/libcxx/strings/basic.string/string.capacity/PR53170.pass.cpp
@@ -33,52 +33,52 @@
template <class S>
TEST_CONSTEXPR_CXX20 bool test() {
- // Test that a call to reserve() does shrink the string.
- if (!TEST_IS_CONSTANT_EVALUATED) {
- S s(1000, 'a');
- typename S::size_type old_cap = s.capacity();
- s.resize(20);
- assert(s.capacity() == old_cap);
-
- s.reserve();
- assert(s.capacity() < old_cap);
- }
-
- // Test that a call to reserve(smaller-than-capacity) never shrinks the string.
- {
- S s(1000, 'a');
- typename S::size_type old_cap = s.capacity();
- s.resize(20);
- assert(s.capacity() == old_cap);
-
- s.reserve(10);
- assert(s.capacity() == old_cap);
- }
-
- // In particular, test that reserve(0) does NOT shrink the string.
- {
- S s(1000, 'a');
- typename S::size_type old_cap = s.capacity();
- s.resize(20);
- assert(s.capacity() == old_cap);
-
- s.reserve(0);
- assert(s.capacity() == old_cap);
- }
-
- return true;
+ // Test that a call to reserve() does shrink the string.
+ if (!TEST_IS_CONSTANT_EVALUATED) {
+ S s(1000, 'a');
+ typename S::size_type old_cap = s.capacity();
+ s.resize(20);
+ assert(s.capacity() == old_cap);
+
+ s.reserve();
+ assert(s.capacity() < old_cap);
+ }
+
+ // Test that a call to reserve(smaller-than-capacity) never shrinks the string.
+ {
+ S s(1000, 'a');
+ typename S::size_type old_cap = s.capacity();
+ s.resize(20);
+ assert(s.capacity() == old_cap);
+
+ s.reserve(10);
+ assert(s.capacity() == old_cap);
+ }
+
+ // In particular, test that reserve(0) does NOT shrink the string.
+ {
+ S s(1000, 'a');
+ typename S::size_type old_cap = s.capacity();
+ s.resize(20);
+ assert(s.capacity() == old_cap);
+
+ s.reserve(0);
+ assert(s.capacity() == old_cap);
+ }
+
+ return true;
}
int main(int, char**) {
- test<std::string>();
+ test<std::string>();
#if TEST_STD_VER >= 11
- test<std::basic_string<char, std::char_traits<char>, min_allocator<char> > >();
+ test<std::basic_string<char, std::char_traits<char>, min_allocator<char> > >();
#endif
#if TEST_STD_VER > 17
- static_assert(test<std::string>());
+ static_assert(test<std::string>());
#endif
- return 0;
+ return 0;
}
diff --git a/libcxx/test/libcxx/strings/basic.string/string.capacity/max_size.pass.cpp b/libcxx/test/libcxx/strings/basic.string/string.capacity/max_size.pass.cpp
index 559634896331fae..aab11b6b2176885 100644
--- a/libcxx/test/libcxx/strings/basic.string/string.capacity/max_size.pass.cpp
+++ b/libcxx/test/libcxx/strings/basic.string/string.capacity/max_size.pass.cpp
@@ -53,7 +53,8 @@ TEST_CONSTEXPR_CXX20 void half_size() {
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
std::wstring wstr;
- assert(wstr.max_size() == std::numeric_limits<std::size_t>::max() / std::max<size_t>(2ul, sizeof(wchar_t)) - alignment);
+ assert(wstr.max_size() ==
+ std::numeric_limits<std::size_t>::max() / std::max<size_t>(2ul, sizeof(wchar_t)) - alignment);
#endif
std::u16string u16str;
@@ -63,44 +64,43 @@ TEST_CONSTEXPR_CXX20 void half_size() {
}
TEST_CONSTEXPR_CXX20 bool test() {
-
#if _LIBCPP_ABI_VERSION == 1
-# if defined(__x86_64__) || defined(__i386__)
+# if defined(__x86_64__) || defined(__i386__)
full_size();
-# elif defined(__APPLE__) && defined(__aarch64__)
+# elif defined(__APPLE__) && defined(__aarch64__)
half_size();
-# elif defined(__arm__) || defined(__aarch64__)
-# ifdef __BIG_ENDIAN__
+# elif defined(__arm__) || defined(__aarch64__)
+# ifdef __BIG_ENDIAN__
half_size();
-# else
+# else
full_size();
-# endif
-# elif defined(__powerpc__) || defined(__powerpc64__)
-# ifdef __BIG_ENDIAN__
+# endif
+# elif defined(__powerpc__) || defined(__powerpc64__)
+# ifdef __BIG_ENDIAN__
half_size();
-# else
+# else
full_size();
-# endif
-# elif defined(__sparc64__)
+# endif
+# elif defined(__sparc64__)
half_size();
-# elif defined(_WIN32)
+# elif defined(_WIN32)
full_size();
-# else
-# error "Your target system seems to be unsupported."
-# endif
+# else
+# error "Your target system seems to be unsupported."
+# endif
#else
-# if defined(__arm__) || defined(__aarch64__)
-# ifdef __BIG_ENDIAN__
+# if defined(__arm__) || defined(__aarch64__)
+# ifdef __BIG_ENDIAN__
full_size();
-# else
+# else
half_size();
-# endif
-# else
+# endif
+# else
half_size();
-# endif
+# endif
#endif
diff --git a/libcxx/test/libcxx/strings/basic.string/string.cons/copy_shrunk_long.pass.cpp b/libcxx/test/libcxx/strings/basic.string/string.cons/copy_shrunk_long.pass.cpp
index 7c875b7c16df8a6..d4a0b318f36d728 100644
--- a/libcxx/test/libcxx/strings/basic.string/string.cons/copy_shrunk_long.pass.cpp
+++ b/libcxx/test/libcxx/strings/basic.string/string.cons/copy_shrunk_long.pass.cpp
@@ -18,8 +18,7 @@
#include "min_allocator.h"
template <class S>
-TEST_CONSTEXPR_CXX20 bool test()
-{
+TEST_CONSTEXPR_CXX20 bool test() {
// Tests that a long string holding a SSO size string results in
// an SSO copy constructed value.
S s1("1234567890123456789012345678901234567890123456789012345678901234567890");
@@ -32,8 +31,7 @@ TEST_CONSTEXPR_CXX20 bool test()
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test<std::basic_string<char, std::char_traits<char>, test_allocator<char> > >();
#if TEST_STD_VER >= 11
test<std::basic_string<char, std::char_traits<char>, min_allocator<char>>>();
diff --git a/libcxx/test/libcxx/strings/basic.string/string.modifiers/assert.pop_back.pass.cpp b/libcxx/test/libcxx/strings/basic.string/string.modifiers/assert.pop_back.pass.cpp
index d107d32ff19a069..637f5c2abe3d6ad 100644
--- a/libcxx/test/libcxx/strings/basic.string/string.modifiers/assert.pop_back.pass.cpp
+++ b/libcxx/test/libcxx/strings/basic.string/string.modifiers/assert.pop_back.pass.cpp
@@ -20,8 +20,8 @@
#include "check_assertion.h"
int main(int, char**) {
- std::string s;
- TEST_LIBCPP_ASSERT_FAILURE(s.pop_back(), "string::pop_back(): string is already empty");
+ std::string s;
+ TEST_LIBCPP_ASSERT_FAILURE(s.pop_back(), "string::pop_back(): string is already empty");
- return 0;
+ return 0;
}
diff --git a/libcxx/test/libcxx/strings/basic.string/string.modifiers/clear_and_shrink.pass.cpp b/libcxx/test/libcxx/strings/basic.string/string.modifiers/clear_and_shrink.pass.cpp
index c57cc73774c6b08..8f4c9102fde87d7 100644
--- a/libcxx/test/libcxx/strings/basic.string/string.modifiers/clear_and_shrink.pass.cpp
+++ b/libcxx/test/libcxx/strings/basic.string/string.modifiers/clear_and_shrink.pass.cpp
@@ -35,8 +35,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/libcxx/strings/basic.string/string.modifiers/debug.erase.iter.pass.cpp b/libcxx/test/libcxx/strings/basic.string/string.modifiers/debug.erase.iter.pass.cpp
index d1ba22a8f4082ae..5b690a576fad3e8 100644
--- a/libcxx/test/libcxx/strings/basic.string/string.modifiers/debug.erase.iter.pass.cpp
+++ b/libcxx/test/libcxx/strings/basic.string/string.modifiers/debug.erase.iter.pass.cpp
@@ -19,20 +19,22 @@
#include "min_allocator.h"
int main(int, char**) {
- {
- std::string l1("123");
- std::string l2("123");
- std::string::const_iterator i = l2.begin();
- TEST_LIBCPP_ASSERT_FAILURE(l1.erase(i), "string::erase(iterator) called with an iterator not referring to this string");
- }
-
- {
- typedef std::basic_string<char, std::char_traits<char>, min_allocator<char> > S;
- S l1("123");
- S l2("123");
- S::const_iterator i = l2.begin();
- TEST_LIBCPP_ASSERT_FAILURE(l1.erase(i), "string::erase(iterator) called with an iterator not referring to this string");
- }
-
- return 0;
+ {
+ std::string l1("123");
+ std::string l2("123");
+ std::string::const_iterator i = l2.begin();
+ TEST_LIBCPP_ASSERT_FAILURE(
+ l1.erase(i), "string::erase(iterator) called with an iterator not referring to this string");
+ }
+
+ {
+ typedef std::basic_string<char, std::char_traits<char>, min_allocator<char> > S;
+ S l1("123");
+ S l2("123");
+ S::const_iterator i = l2.begin();
+ TEST_LIBCPP_ASSERT_FAILURE(
+ l1.erase(i), "string::erase(iterator) called with an iterator not referring to this string");
+ }
+
+ return 0;
}
diff --git a/libcxx/test/libcxx/strings/basic.string/string.modifiers/debug.erase.iter_iter.pass.cpp b/libcxx/test/libcxx/strings/basic.string/string.modifiers/debug.erase.iter_iter.pass.cpp
index ee65a6c6c03e4c2..7ee9d7ac20c6032 100644
--- a/libcxx/test/libcxx/strings/basic.string/string.modifiers/debug.erase.iter_iter.pass.cpp
+++ b/libcxx/test/libcxx/strings/basic.string/string.modifiers/debug.erase.iter_iter.pass.cpp
@@ -19,73 +19,63 @@
#include "min_allocator.h"
int main(int, char**) {
+ // With first iterator from another container
+ {{std::string l1("123");
+ std::string l2("123");
+ TEST_LIBCPP_ASSERT_FAILURE(l1.erase(l2.cbegin(), l1.cbegin() + 1),
+ "string::erase(iterator, iterator) called with an iterator not referring to this string");
+}
+{
+ typedef std::basic_string<char, std::char_traits<char>, min_allocator<char> > S;
+ S l1("123");
+ S l2("123");
+ TEST_LIBCPP_ASSERT_FAILURE(l1.erase(l2.cbegin(), l1.cbegin() + 1),
+ "string::erase(iterator, iterator) called with an iterator not referring to this string");
+}
+}
- // With first iterator from another container
- {
- {
- std::string l1("123");
- std::string l2("123");
- TEST_LIBCPP_ASSERT_FAILURE(
- l1.erase(l2.cbegin(), l1.cbegin() + 1),
- "string::erase(iterator, iterator) called with an iterator not referring to this string");
- }
- {
- typedef std::basic_string<char, std::char_traits<char>, min_allocator<char> > S;
- S l1("123");
- S l2("123");
- TEST_LIBCPP_ASSERT_FAILURE(l1.erase(l2.cbegin(), l1.cbegin() + 1),
- "string::erase(iterator, iterator) called with an iterator not referring to this string");
- }
- }
-
- // With second iterator from another container
- {
- {
- std::string l1("123");
- std::string l2("123");
- TEST_LIBCPP_ASSERT_FAILURE(l1.erase(l1.cbegin(), l2.cbegin() + 1), "Attempted to compare incomparable iterators");
- }
- {
- typedef std::basic_string<char, std::char_traits<char>, min_allocator<char> > S;
- S l1("123");
- S l2("123");
- TEST_LIBCPP_ASSERT_FAILURE(l1.erase(l1.cbegin(), l2.cbegin() + 1), "Attempted to compare incomparable iterators");
- }
- }
+// With second iterator from another container
+{{std::string l1("123");
+std::string l2("123");
+TEST_LIBCPP_ASSERT_FAILURE(l1.erase(l1.cbegin(), l2.cbegin() + 1), "Attempted to compare incomparable iterators");
+}
+{
+ typedef std::basic_string<char, std::char_traits<char>, min_allocator<char> > S;
+ S l1("123");
+ S l2("123");
+ TEST_LIBCPP_ASSERT_FAILURE(l1.erase(l1.cbegin(), l2.cbegin() + 1), "Attempted to compare incomparable iterators");
+}
+}
- // With both iterators from another container
- {
- {
- std::string l1("123");
- std::string l2("123");
- TEST_LIBCPP_ASSERT_FAILURE(
- l1.erase(l2.cbegin(), l2.cbegin() + 1),
- "string::erase(iterator, iterator) called with an iterator not referring to this string");
- }
- {
- typedef std::basic_string<char, std::char_traits<char>, min_allocator<char> > S;
- S l1("123");
- S l2("123");
- TEST_LIBCPP_ASSERT_FAILURE(
- l1.erase(l2.cbegin(), l2.cbegin() + 1),
- "string::erase(iterator, iterator) called with an iterator not referring to this string");
- }
- }
+// With both iterators from another container
+{{std::string l1("123");
+std::string l2("123");
+TEST_LIBCPP_ASSERT_FAILURE(l1.erase(l2.cbegin(), l2.cbegin() + 1),
+ "string::erase(iterator, iterator) called with an iterator not referring to this string");
+}
+{
+ typedef std::basic_string<char, std::char_traits<char>, min_allocator<char> > S;
+ S l1("123");
+ S l2("123");
+ TEST_LIBCPP_ASSERT_FAILURE(l1.erase(l2.cbegin(), l2.cbegin() + 1),
+ "string::erase(iterator, iterator) called with an iterator not referring to this string");
+}
+}
- // With an invalid range
- {
- {
- std::string l1("123");
- TEST_LIBCPP_ASSERT_FAILURE(l1.erase(l1.cbegin() + 1, l1.cbegin()),
- "string::erase(first, last) called with invalid range");
- }
- {
- typedef std::basic_string<char, std::char_traits<char>, min_allocator<char> > S;
- S l1("123");
- TEST_LIBCPP_ASSERT_FAILURE(l1.erase(l1.cbegin() + 1, l1.cbegin()),
- "string::erase(first, last) called with invalid range");
- }
- }
+// With an invalid range
+{
+ {
+ std::string l1("123");
+ TEST_LIBCPP_ASSERT_FAILURE(
+ l1.erase(l1.cbegin() + 1, l1.cbegin()), "string::erase(first, last) called with invalid range");
+ }
+ {
+ typedef std::basic_string<char, std::char_traits<char>, min_allocator<char> > S;
+ S l1("123");
+ TEST_LIBCPP_ASSERT_FAILURE(
+ l1.erase(l1.cbegin() + 1, l1.cbegin()), "string::erase(first, last) called with invalid range");
+ }
+}
- return 0;
+return 0;
}
diff --git a/libcxx/test/libcxx/strings/basic.string/string.modifiers/debug.insert.iter_char.pass.cpp b/libcxx/test/libcxx/strings/basic.string/string.modifiers/debug.insert.iter_char.pass.cpp
index 25e25d13bbcc1fb..7cdf64375718320 100644
--- a/libcxx/test/libcxx/strings/basic.string/string.modifiers/debug.insert.iter_char.pass.cpp
+++ b/libcxx/test/libcxx/strings/basic.string/string.modifiers/debug.insert.iter_char.pass.cpp
@@ -24,11 +24,12 @@
#include "check_assertion.h"
int main(int, char**) {
- typedef std::string S;
- S s;
- S s2;
- TEST_LIBCPP_ASSERT_FAILURE(s.insert(s2.begin(), '1'),
- "string::insert(iterator, character) called with an iterator not referring to this string");
-
- return 0;
+ typedef std::string S;
+ S s;
+ S s2;
+ TEST_LIBCPP_ASSERT_FAILURE(
+ s.insert(s2.begin(), '1'),
+ "string::insert(iterator, character) called with an iterator not referring to this string");
+
+ return 0;
}
diff --git a/libcxx/test/libcxx/strings/basic.string/string.modifiers/debug.insert.iter_iter_iter.pass.cpp b/libcxx/test/libcxx/strings/basic.string/string.modifiers/debug.insert.iter_iter_iter.pass.cpp
index fa6ad3cf4878c78..3dadcfdad2631be 100644
--- a/libcxx/test/libcxx/strings/basic.string/string.modifiers/debug.insert.iter_iter_iter.pass.cpp
+++ b/libcxx/test/libcxx/strings/basic.string/string.modifiers/debug.insert.iter_iter_iter.pass.cpp
@@ -19,12 +19,12 @@
#include "check_assertion.h"
int main(int, char**) {
- std::string v;
- std::string v2;
- char a[] = "123";
- const int N = sizeof(a)/sizeof(a[0]);
- TEST_LIBCPP_ASSERT_FAILURE(v.insert(v2.cbegin() + 10, a, a + N),
- "Attempted to add/subtract an iterator outside its valid range");
+ std::string v;
+ std::string v2;
+ char a[] = "123";
+ const int N = sizeof(a) / sizeof(a[0]);
+ TEST_LIBCPP_ASSERT_FAILURE(
+ v.insert(v2.cbegin() + 10, a, a + N), "Attempted to add/subtract an iterator outside its valid range");
- return 0;
+ return 0;
}
diff --git a/libcxx/test/libcxx/strings/basic.string/string.modifiers/debug.insert.iter_size_char.pass.cpp b/libcxx/test/libcxx/strings/basic.string/string.modifiers/debug.insert.iter_size_char.pass.cpp
index 290c5af4289d18a..ca4454400daa585 100644
--- a/libcxx/test/libcxx/strings/basic.string/string.modifiers/debug.insert.iter_size_char.pass.cpp
+++ b/libcxx/test/libcxx/strings/basic.string/string.modifiers/debug.insert.iter_size_char.pass.cpp
@@ -18,11 +18,10 @@
#include "check_assertion.h"
int main(int, char**) {
- std::string s;
- std::string s2;
- TEST_LIBCPP_ASSERT_FAILURE(
- s.insert(s2.begin(), 1, 'a'),
- "string::insert(iterator, n, value) called with an iterator not referring to this string");
+ std::string s;
+ std::string s2;
+ TEST_LIBCPP_ASSERT_FAILURE(s.insert(s2.begin(), 1, 'a'),
+ "string::insert(iterator, n, value) called with an iterator not referring to this string");
- return 0;
+ return 0;
}
diff --git a/libcxx/test/libcxx/strings/basic.string/string.modifiers/resize_default_initialized.pass.cpp b/libcxx/test/libcxx/strings/basic.string/string.modifiers/resize_default_initialized.pass.cpp
index d0ba43dfc7186a1..572a7672935a368 100644
--- a/libcxx/test/libcxx/strings/basic.string/string.modifiers/resize_default_initialized.pass.cpp
+++ b/libcxx/test/libcxx/strings/basic.string/string.modifiers/resize_default_initialized.pass.cpp
@@ -15,15 +15,14 @@
#include "test_macros.h"
-TEST_CONSTEXPR_CXX20 void write_c_str(char *buf, int size) {
- for (int i=0; i < size; ++i) {
+TEST_CONSTEXPR_CXX20 void write_c_str(char* buf, int size) {
+ for (int i = 0; i < size; ++i) {
buf[i] = 'a';
}
buf[size] = '\0';
}
-TEST_CONSTEXPR_CXX20 void test_buffer_usage()
-{
+TEST_CONSTEXPR_CXX20 void test_buffer_usage() {
{
unsigned buff_size = 125;
unsigned used_size = buff_size - 16;
@@ -35,7 +34,7 @@ TEST_CONSTEXPR_CXX20 void test_buffer_usage()
s.__resize_default_init(used_size);
assert(s.size() == used_size);
assert(s.data()[used_size] == '\0');
- for (unsigned i=0; i < used_size; ++i) {
+ for (unsigned i = 0; i < used_size; ++i) {
assert(s[i] == 'a');
}
}
@@ -47,7 +46,7 @@ TEST_CONSTEXPR_CXX20 void test_basic() {
s.__resize_default_init(3);
assert(s.size() == 3);
assert(s.data()[3] == '\0');
- for (int i=0; i < 3; ++i)
+ for (int i = 0; i < 3; ++i)
s[i] = 'a' + i;
s.__resize_default_init(1);
assert(s[0] == 'a');
diff --git a/libcxx/test/libcxx/strings/c.strings/constexpr.cstring.compile.pass.cpp b/libcxx/test/libcxx/strings/c.strings/constexpr.cstring.compile.pass.cpp
index 92514eab0042590..cd993d8918e9d33 100644
--- a/libcxx/test/libcxx/strings/c.strings/constexpr.cstring.compile.pass.cpp
+++ b/libcxx/test/libcxx/strings/c.strings/constexpr.cstring.compile.pass.cpp
@@ -24,7 +24,6 @@ static_assert(std::__constexpr_memcmp(Banane, Bananf, std::__element_count(6)) =
static_assert(!std::__constexpr_memcmp_equal(Banane, Banand, std::__element_count(6)), "");
static_assert(std::__constexpr_memcmp_equal(Banane, Banane, std::__element_count(6)), "");
-
constexpr bool test_constexpr_wmemchr() {
const char str[] = "Banane";
return std::__constexpr_memchr(str, 'n', 6) == str + 2;
diff --git a/libcxx/test/libcxx/strings/c.strings/constexpr_memmove.pass.cpp b/libcxx/test/libcxx/strings/c.strings/constexpr_memmove.pass.cpp
index 11762cb35d47407..bdc18448d03a432 100644
--- a/libcxx/test/libcxx/strings/c.strings/constexpr_memmove.pass.cpp
+++ b/libcxx/test/libcxx/strings/c.strings/constexpr_memmove.pass.cpp
@@ -32,7 +32,7 @@
// than that.
struct CopyConstructible {
CopyConstructible() = default;
- int value = 0;
+ int value = 0;
CopyConstructible(const CopyConstructible&) = default;
CopyConstructible(CopyConstructible&&) = delete;
@@ -42,7 +42,7 @@ struct CopyConstructible {
struct MoveConstructible {
MoveConstructible() = default;
- int value = 0;
+ int value = 0;
MoveConstructible(const MoveConstructible&) = delete;
MoveConstructible(MoveConstructible&&) = default;
@@ -52,7 +52,7 @@ struct MoveConstructible {
struct CopyAssignable {
CopyAssignable() = default;
- int value = 0;
+ int value = 0;
CopyAssignable(const CopyAssignable&) = delete;
CopyAssignable(CopyAssignable&&) = delete;
@@ -62,7 +62,7 @@ struct CopyAssignable {
struct MoveAssignable {
MoveAssignable() = default;
- int value = 0;
+ int value = 0;
MoveAssignable(const MoveAssignable&) = delete;
MoveAssignable(MoveAssignable&&) = delete;
@@ -96,7 +96,7 @@ TEST_CONSTEXPR_CXX14 void test_user_defined_types() {
template <class Source, class Dest>
TEST_CONSTEXPR_CXX14 void test_builtin_types() {
Source src[3] = {1, 2, 3};
- Dest dst[3] = {111, 111, 111};
+ Dest dst[3] = {111, 111, 111};
Dest* result = std::__constexpr_memmove(dst, src, std::__element_count(3));
assert(result == dst);
@@ -110,7 +110,7 @@ TEST_CONSTEXPR_CXX14 void test_pointer_types() {
ObjectType objs[3] = {1, 2, 3};
SourcePtr src[3] = {objs + 0, objs + 1, objs + 2};
- DestPtr dst[3] = {nullptr, nullptr, nullptr};
+ DestPtr dst[3] = {nullptr, nullptr, nullptr};
DestPtr* result = std::__constexpr_memmove(dst, src, std::__element_count(3));
assert(result == dst);
diff --git a/libcxx/test/libcxx/strings/string.view/assert.ctor.pointer.pass.cpp b/libcxx/test/libcxx/strings/string.view/assert.ctor.pointer.pass.cpp
index 1e5ce4779e19eb5..f481507f2ebcb35 100644
--- a/libcxx/test/libcxx/strings/string.view/assert.ctor.pointer.pass.cpp
+++ b/libcxx/test/libcxx/strings/string.view/assert.ctor.pointer.pass.cpp
@@ -19,15 +19,22 @@
#include "check_assertion.h"
int main(int, char**) {
- TEST_LIBCPP_ASSERT_FAILURE(std::string_view((char const*)NULL), "null pointer passed to non-null argument of char_traits<...>::length");
- TEST_LIBCPP_ASSERT_FAILURE(std::string_view((char const*)nullptr), "null pointer passed to non-null argument of char_traits<...>::length");
- TEST_LIBCPP_ASSERT_FAILURE(std::string_view((char const*)0), "null pointer passed to non-null argument of char_traits<...>::length");
+ TEST_LIBCPP_ASSERT_FAILURE(
+ std::string_view((char const*)NULL), "null pointer passed to non-null argument of char_traits<...>::length");
+ TEST_LIBCPP_ASSERT_FAILURE(
+ std::string_view((char const*)nullptr), "null pointer passed to non-null argument of char_traits<...>::length");
+ TEST_LIBCPP_ASSERT_FAILURE(
+ std::string_view((char const*)0), "null pointer passed to non-null argument of char_traits<...>::length");
{
std::string_view v;
- TEST_LIBCPP_ASSERT_FAILURE(v == (char const*)nullptr, "null pointer passed to non-null argument of char_traits<...>::length");
- TEST_LIBCPP_ASSERT_FAILURE(v == (char const*)NULL, "null pointer passed to non-null argument of char_traits<...>::length");
- TEST_LIBCPP_ASSERT_FAILURE((char const*)nullptr == v, "null pointer passed to non-null argument of char_traits<...>::length");
- TEST_LIBCPP_ASSERT_FAILURE((char const*)NULL == v, "null pointer passed to non-null argument of char_traits<...>::length");
+ TEST_LIBCPP_ASSERT_FAILURE(
+ v == (char const*)nullptr, "null pointer passed to non-null argument of char_traits<...>::length");
+ TEST_LIBCPP_ASSERT_FAILURE(
+ v == (char const*)NULL, "null pointer passed to non-null argument of char_traits<...>::length");
+ TEST_LIBCPP_ASSERT_FAILURE(
+ (char const*)nullptr == v, "null pointer passed to non-null argument of char_traits<...>::length");
+ TEST_LIBCPP_ASSERT_FAILURE(
+ (char const*)NULL == v, "null pointer passed to non-null argument of char_traits<...>::length");
}
return 0;
diff --git a/libcxx/test/libcxx/strings/string.view/string.view.iterators/debug.iterator-indexing.pass.cpp b/libcxx/test/libcxx/strings/string.view/string.view.iterators/debug.iterator-indexing.pass.cpp
index 212af49b5b394da..797b8bad7c4d4a7 100644
--- a/libcxx/test/libcxx/strings/string.view/string.view.iterators/debug.iterator-indexing.pass.cpp
+++ b/libcxx/test/libcxx/strings/string.view/string.view.iterators/debug.iterator-indexing.pass.cpp
@@ -16,73 +16,77 @@
#include "check_assertion.h"
int main(int, char**) {
- // string_view::iterator
+ // string_view::iterator
+ {
+ std::string_view const str("hello world");
{
- std::string_view const str("hello world");
- {
- auto it = str.end();
- TEST_LIBCPP_ASSERT_FAILURE(*it, "__bounded_iter::operator*: Attempt to dereference an out-of-range iterator");
- }
- {
- auto it = str.end();
- TEST_LIBCPP_ASSERT_FAILURE(it.operator->(), "__bounded_iter::operator->: Attempt to dereference an out-of-range iterator");
- }
- {
- auto it = str.begin();
- TEST_LIBCPP_ASSERT_FAILURE(it[99], "__bounded_iter::operator[]: Attempt to index an iterator out-of-range");
- }
+ auto it = str.end();
+ TEST_LIBCPP_ASSERT_FAILURE(*it, "__bounded_iter::operator*: Attempt to dereference an out-of-range iterator");
}
+ {
+ auto it = str.end();
+ TEST_LIBCPP_ASSERT_FAILURE(
+ it.operator->(), "__bounded_iter::operator->: Attempt to dereference an out-of-range iterator");
+ }
+ {
+ auto it = str.begin();
+ TEST_LIBCPP_ASSERT_FAILURE(it[99], "__bounded_iter::operator[]: Attempt to index an iterator out-of-range");
+ }
+ }
- // string_view::const_iterator
+ // string_view::const_iterator
+ {
+ std::string_view const str("hello world");
+ {
+ auto it = str.cend();
+ TEST_LIBCPP_ASSERT_FAILURE(*it, "__bounded_iter::operator*: Attempt to dereference an out-of-range iterator");
+ }
+ {
+ auto it = str.cend();
+ TEST_LIBCPP_ASSERT_FAILURE(
+ it.operator->(), "__bounded_iter::operator->: Attempt to dereference an out-of-range iterator");
+ }
{
- std::string_view const str("hello world");
- {
- auto it = str.cend();
- TEST_LIBCPP_ASSERT_FAILURE(*it, "__bounded_iter::operator*: Attempt to dereference an out-of-range iterator");
- }
- {
- auto it = str.cend();
- TEST_LIBCPP_ASSERT_FAILURE(it.operator->(), "__bounded_iter::operator->: Attempt to dereference an out-of-range iterator");
- }
- {
- auto it = str.cbegin();
- TEST_LIBCPP_ASSERT_FAILURE(it[99], "__bounded_iter::operator[]: Attempt to index an iterator out-of-range");
- }
+ auto it = str.cbegin();
+ TEST_LIBCPP_ASSERT_FAILURE(it[99], "__bounded_iter::operator[]: Attempt to index an iterator out-of-range");
}
+ }
- // string_view::reverse_iterator
+ // string_view::reverse_iterator
+ {
+ std::string_view const str("hello world");
{
- std::string_view const str("hello world");
- {
- auto it = str.rend();
- TEST_LIBCPP_ASSERT_FAILURE(*it, "__bounded_iter::operator*: Attempt to dereference an out-of-range iterator");
- }
- {
- auto it = str.rend();
- TEST_LIBCPP_ASSERT_FAILURE(it.operator->(), "__bounded_iter::operator->: Attempt to dereference an out-of-range iterator");
- }
- {
- auto it = str.rbegin();
- TEST_LIBCPP_ASSERT_FAILURE(it[99], "__bounded_iter::operator*: Attempt to dereference an out-of-range iterator");
- }
+ auto it = str.rend();
+ TEST_LIBCPP_ASSERT_FAILURE(*it, "__bounded_iter::operator*: Attempt to dereference an out-of-range iterator");
}
+ {
+ auto it = str.rend();
+ TEST_LIBCPP_ASSERT_FAILURE(
+ it.operator->(), "__bounded_iter::operator->: Attempt to dereference an out-of-range iterator");
+ }
+ {
+ auto it = str.rbegin();
+ TEST_LIBCPP_ASSERT_FAILURE(it[99], "__bounded_iter::operator*: Attempt to dereference an out-of-range iterator");
+ }
+ }
- // string_view::const_reverse_iterator
+ // string_view::const_reverse_iterator
+ {
+ std::string_view const str("hello world");
+ {
+ auto it = str.crend();
+ TEST_LIBCPP_ASSERT_FAILURE(*it, "__bounded_iter::operator*: Attempt to dereference an out-of-range iterator");
+ }
+ {
+ auto it = str.crend();
+ TEST_LIBCPP_ASSERT_FAILURE(
+ it.operator->(), "__bounded_iter::operator->: Attempt to dereference an out-of-range iterator");
+ }
{
- std::string_view const str("hello world");
- {
- auto it = str.crend();
- TEST_LIBCPP_ASSERT_FAILURE(*it, "__bounded_iter::operator*: Attempt to dereference an out-of-range iterator");
- }
- {
- auto it = str.crend();
- TEST_LIBCPP_ASSERT_FAILURE(it.operator->(), "__bounded_iter::operator->: Attempt to dereference an out-of-range iterator");
- }
- {
- auto it = str.crbegin();
- TEST_LIBCPP_ASSERT_FAILURE(it[99], "__bounded_iter::operator*: Attempt to dereference an out-of-range iterator");
- }
+ auto it = str.crbegin();
+ TEST_LIBCPP_ASSERT_FAILURE(it[99], "__bounded_iter::operator*: Attempt to dereference an out-of-range iterator");
}
+ }
- return 0;
+ return 0;
}
diff --git a/libcxx/test/std/strings/basic.string.hash/char_type_hash.verify.cpp b/libcxx/test/std/strings/basic.string.hash/char_type_hash.verify.cpp
index 339b200806e2b98..6222c40d7d6079c 100644
--- a/libcxx/test/std/strings/basic.string.hash/char_type_hash.verify.cpp
+++ b/libcxx/test/std/strings/basic.string.hash/char_type_hash.verify.cpp
@@ -6,7 +6,6 @@
//
//===----------------------------------------------------------------------===//
-
// UNSUPPORTED: c++03
// <string>
@@ -21,57 +20,50 @@
template <class _CharT>
struct trait // copied from <__string>
{
- typedef _CharT char_type;
- typedef int int_type;
- typedef std::streamoff off_type;
- typedef std::streampos pos_type;
- typedef std::mbstate_t state_type;
+ typedef _CharT char_type;
+ typedef int int_type;
+ typedef std::streamoff off_type;
+ typedef std::streampos pos_type;
+ typedef std::mbstate_t state_type;
- static inline void assign(char_type& __c1, const char_type& __c2) {
- __c1 = __c2;
- }
- static inline bool eq(char_type __c1, char_type __c2) { return __c1 == __c2; }
- static inline bool lt(char_type __c1, char_type __c2) { return __c1 < __c2; }
+ static inline void assign(char_type& __c1, const char_type& __c2) { __c1 = __c2; }
+ static inline bool eq(char_type __c1, char_type __c2) { return __c1 == __c2; }
+ static inline bool lt(char_type __c1, char_type __c2) { return __c1 < __c2; }
- static int compare(const char_type* __s1, const char_type* __s2, std::size_t __n);
- static std::size_t length(const char_type* __s);
- static const char_type* find(const char_type* __s, std::size_t __n,
- const char_type& __a);
+ static int compare(const char_type* __s1, const char_type* __s2, std::size_t __n);
+ static std::size_t length(const char_type* __s);
+ static const char_type* find(const char_type* __s, std::size_t __n, const char_type& __a);
- static char_type* move(char_type* __s1, const char_type* __s2, std::size_t __n);
- static char_type* copy(char_type* __s1, const char_type* __s2, std::size_t __n);
- static char_type* assign(char_type* __s, std::size_t __n, char_type __a);
+ static char_type* move(char_type* __s1, const char_type* __s2, std::size_t __n);
+ static char_type* copy(char_type* __s1, const char_type* __s2, std::size_t __n);
+ static char_type* assign(char_type* __s, std::size_t __n, char_type __a);
- static inline int_type not_eof(int_type __c) {
- return eq_int_type(__c, eof()) ? ~eof() : __c;
- }
- static inline char_type to_char_type(int_type __c) { return char_type(__c); }
- static inline int_type to_int_type(char_type __c) { return int_type(__c); }
- static inline bool eq_int_type(int_type __c1, int_type __c2) {
- return __c1 == __c2;
- }
- static inline int_type eof() { return int_type(EOF); }
+ static inline int_type not_eof(int_type __c) { return eq_int_type(__c, eof()) ? ~eof() : __c; }
+ static inline char_type to_char_type(int_type __c) { return char_type(__c); }
+ static inline int_type to_int_type(char_type __c) { return int_type(__c); }
+ static inline bool eq_int_type(int_type __c1, int_type __c2) { return __c1 == __c2; }
+ static inline int_type eof() { return int_type(EOF); }
};
template <class CharT>
void test() {
- typedef std::basic_string<CharT, trait<CharT> > str_t;
- std::hash<str_t>
- h; // expected-error-re 4 {{{{call to implicitly-deleted default constructor of 'std::hash<str_t>'|implicit instantiation of undefined template}} {{.+}}}}}}
+ typedef std::basic_string<CharT, trait<CharT> > str_t;
+ std::hash<str_t>
+ h; // expected-error-re 4 {{{{call to implicitly-deleted default constructor of 'std::hash<str_t>'|implicit instantiation of undefined template}} {{.+}}}}}}
#if TEST_STD_VER > 17 && defined(__cpp_char8_t)
- // expected-error-re at -2 {{{{call to implicitly-deleted default constructor of 'std::hash<str_t>'|implicit instantiation of undefined template}} {{.+}}}}}}
+ // expected-error-re at -2 {{{{call to implicitly-deleted default constructor of 'std::hash<str_t>'|implicit instantiation of undefined template}} {{.+}}}}}}
#endif
- (void)h;
+ (void)h;
}
int main(int, char**) {
- test<char>();
- test<wchar_t>();
+ test<char>();
+ test<wchar_t>();
#if TEST_STD_VER > 17 && defined(__cpp_char8_t)
- test<char8_t>();
+ test<char8_t>();
#endif
- test<char16_t>();
- test<char32_t>();
+ test<char16_t>();
+ test<char32_t>();
- return 0;
+ return 0;
}
diff --git a/libcxx/test/std/strings/basic.string.hash/enabled_hashes.pass.cpp b/libcxx/test/std/strings/basic.string.hash/enabled_hashes.pass.cpp
index 31e351a6986529e..611f95f0d3ef6e9 100644
--- a/libcxx/test/std/strings/basic.string.hash/enabled_hashes.pass.cpp
+++ b/libcxx/test/std/strings/basic.string.hash/enabled_hashes.pass.cpp
@@ -36,18 +36,18 @@ struct std::char_traits<MyChar> {
static bool eq(char_type, char_type);
static bool lt(char_type, char_type);
- static int compare(const char_type*, const char_type*, std::size_t);
- static std::size_t length(const char_type*);
+ static int compare(const char_type*, const char_type*, std::size_t);
+ static std::size_t length(const char_type*);
static const char_type* find(const char_type*, std::size_t, const char_type&);
- static char_type* move(char_type*, const char_type*, std::size_t);
- static char_type* copy(char_type*, const char_type*, std::size_t);
- static char_type* assign(char_type*, std::size_t, char_type);
+ static char_type* move(char_type*, const char_type*, std::size_t);
+ static char_type* copy(char_type*, const char_type*, std::size_t);
+ static char_type* assign(char_type*, std::size_t, char_type);
- static int_type not_eof(int_type);
+ static int_type not_eof(int_type);
static char_type to_char_type(int_type);
- static int_type to_int_type(char_type);
- static bool eq_int_type(int_type, int_type);
- static int_type eof();
+ static int_type to_int_type(char_type);
+ static bool eq_int_type(int_type, int_type);
+ static int_type eof();
};
int main(int, char**) {
diff --git a/libcxx/test/std/strings/basic.string.hash/strings.pass.cpp b/libcxx/test/std/strings/basic.string.hash/strings.pass.cpp
index 45882a48e086ef7..293336f3df93c14 100644
--- a/libcxx/test/std/strings/basic.string.hash/strings.pass.cpp
+++ b/libcxx/test/std/strings/basic.string.hash/strings.pass.cpp
@@ -23,34 +23,31 @@
#include "test_macros.h"
template <class T>
-void
-test()
-{
- typedef std::hash<T> H;
+void test() {
+ typedef std::hash<T> H;
#if TEST_STD_VER <= 14
- static_assert((std::is_same<typename H::argument_type, T>::value), "" );
- static_assert((std::is_same<typename H::result_type, std::size_t>::value), "" );
+ static_assert((std::is_same<typename H::argument_type, T>::value), "");
+ static_assert((std::is_same<typename H::result_type, std::size_t>::value), "");
#endif
- ASSERT_NOEXCEPT(H()(T()));
-
- H h;
- std::string g1 = "1234567890";
- std::string g2 = "1234567891";
- T s1(g1.begin(), g1.end());
- T s2(g2.begin(), g2.end());
- assert(h(s1) != h(s2));
+ ASSERT_NOEXCEPT(H()(T()));
+
+ H h;
+ std::string g1 = "1234567890";
+ std::string g2 = "1234567891";
+ T s1(g1.begin(), g1.end());
+ T s2(g2.begin(), g2.end());
+ assert(h(s1) != h(s2));
}
-int main(int, char**)
-{
- test<std::string>();
+int main(int, char**) {
+ test<std::string>();
#ifndef TEST_HAS_NO_CHAR8_T
- test<std::u8string>();
+ test<std::u8string>();
#endif
- test<std::u16string>();
- test<std::u32string>();
+ test<std::u16string>();
+ test<std::u32string>();
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- test<std::wstring>();
+ test<std::wstring>();
#endif
return 0;
diff --git a/libcxx/test/std/strings/basic.string.literals/literal.pass.cpp b/libcxx/test/std/strings/basic.string.literals/literal.pass.cpp
index 56e40fcbe1c34f3..d5904537399ef1d 100644
--- a/libcxx/test/std/strings/basic.string.literals/literal.pass.cpp
+++ b/libcxx/test/std/strings/basic.string.literals/literal.pass.cpp
@@ -14,65 +14,85 @@
#include "test_macros.h"
#ifndef TEST_HAS_NO_CHAR8_T
- typedef std::u8string u8string;
+typedef std::u8string u8string;
#else
- typedef std::string u8string;
+typedef std::string u8string;
#endif
int main(int, char**) {
- {
- using namespace std::literals::string_literals;
+ {
+ using namespace std::literals::string_literals;
- ASSERT_SAME_TYPE(decltype( "Hi"s), std::string);
- ASSERT_SAME_TYPE(decltype(u8"Hi"s), u8string);
+ ASSERT_SAME_TYPE(decltype("Hi"s), std::string);
+ ASSERT_SAME_TYPE(decltype(u8"Hi"s), u8string);
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- ASSERT_SAME_TYPE(decltype( L"Hi"s), std::wstring);
+ ASSERT_SAME_TYPE(decltype(L"Hi"s), std::wstring);
#endif
- ASSERT_SAME_TYPE(decltype( u"Hi"s), std::u16string);
- ASSERT_SAME_TYPE(decltype( U"Hi"s), std::u32string);
+ ASSERT_SAME_TYPE(decltype(u"Hi"s), std::u16string);
+ ASSERT_SAME_TYPE(decltype(U"Hi"s), std::u32string);
- std::string foo;
+ std::string foo;
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- std::wstring Lfoo;
+ std::wstring Lfoo;
#endif
- u8string u8foo;
- std::u16string ufoo;
- std::u32string Ufoo;
+ u8string u8foo;
+ std::u16string ufoo;
+ std::u32string Ufoo;
- foo = ""s; assert( foo.size() == 0);
- u8foo = u8""s; assert(u8foo.size() == 0);
+ foo = ""s;
+ assert(foo.size() == 0);
+ u8foo = u8""s;
+ assert(u8foo.size() == 0);
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- Lfoo = L""s; assert( Lfoo.size() == 0);
+ Lfoo = L""s;
+ assert(Lfoo.size() == 0);
#endif
- ufoo = u""s; assert( ufoo.size() == 0);
- Ufoo = U""s; assert( Ufoo.size() == 0);
+ ufoo = u""s;
+ assert(ufoo.size() == 0);
+ Ufoo = U""s;
+ assert(Ufoo.size() == 0);
- foo = " "s; assert( foo.size() == 1);
- u8foo = u8" "s; assert(u8foo.size() == 1);
+ foo = " "s;
+ assert(foo.size() == 1);
+ u8foo = u8" "s;
+ assert(u8foo.size() == 1);
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- Lfoo = L" "s; assert( Lfoo.size() == 1);
+ Lfoo = L" "s;
+ assert(Lfoo.size() == 1);
#endif
- ufoo = u" "s; assert( ufoo.size() == 1);
- Ufoo = U" "s; assert( Ufoo.size() == 1);
+ ufoo = u" "s;
+ assert(ufoo.size() == 1);
+ Ufoo = U" "s;
+ assert(Ufoo.size() == 1);
- foo = "ABC"s; assert( foo == "ABC"); assert( foo == std::string ( "ABC"));
- u8foo = u8"ABC"s; assert(u8foo == u8"ABC"); assert(u8foo == u8string (u8"ABC"));
+ foo = "ABC"s;
+ assert(foo == "ABC");
+ assert(foo == std::string("ABC"));
+ u8foo = u8"ABC"s;
+ assert(u8foo == u8"ABC");
+ assert(u8foo == u8string(u8"ABC"));
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- Lfoo = L"ABC"s; assert( Lfoo == L"ABC"); assert( Lfoo == std::wstring ( L"ABC"));
+ Lfoo = L"ABC"s;
+ assert(Lfoo == L"ABC");
+ assert(Lfoo == std::wstring(L"ABC"));
#endif
- ufoo = u"ABC"s; assert( ufoo == u"ABC"); assert( ufoo == std::u16string( u"ABC"));
- Ufoo = U"ABC"s; assert( Ufoo == U"ABC"); assert( Ufoo == std::u32string( U"ABC"));
- }
- {
- using namespace std::literals;
- std::string foo = ""s;
- assert(foo == std::string());
- }
- {
- using namespace std;
- std::string foo = ""s;
- assert(foo == std::string());
- }
+ ufoo = u"ABC"s;
+ assert(ufoo == u"ABC");
+ assert(ufoo == std::u16string(u"ABC"));
+ Ufoo = U"ABC"s;
+ assert(Ufoo == U"ABC");
+ assert(Ufoo == std::u32string(U"ABC"));
+ }
+ {
+ using namespace std::literals;
+ std::string foo = ""s;
+ assert(foo == std::string());
+ }
+ {
+ using namespace std;
+ std::string foo = ""s;
+ assert(foo == std::string());
+ }
- return 0;
+ return 0;
}
diff --git a/libcxx/test/std/strings/basic.string/allocator_mismatch.verify.cpp b/libcxx/test/std/strings/basic.string/allocator_mismatch.verify.cpp
index 2c59164051c7728..c38bed60300f1c8 100644
--- a/libcxx/test/std/strings/basic.string/allocator_mismatch.verify.cpp
+++ b/libcxx/test/std/strings/basic.string/allocator_mismatch.verify.cpp
@@ -11,4 +11,5 @@
#include <string>
-std::basic_string<char, std::char_traits<char>, std::allocator<int> > s; // expected-error@*:* {{Allocator::value_type must be same type as value_type}}
+std::basic_string<char, std::char_traits<char>, std::allocator<int> >
+ s; // expected-error@*:* {{Allocator::value_type must be same type as value_type}}
diff --git a/libcxx/test/std/strings/basic.string/char.bad.verify.cpp b/libcxx/test/std/strings/basic.string/char.bad.verify.cpp
index a93fdc7c8e65d51..5e1367879ad0e36 100644
--- a/libcxx/test/std/strings/basic.string/char.bad.verify.cpp
+++ b/libcxx/test/std/strings/basic.string/char.bad.verify.cpp
@@ -13,39 +13,40 @@
#include "test_traits.h"
struct NotTrivial {
- NotTrivial() : value(3) {}
- int value;
+ NotTrivial() : value(3) {}
+ int value;
};
struct NotStandardLayout {
public:
- NotStandardLayout() : one(1), two(2) {}
- int sum() const { return one + two; } // silences "unused field 'two' warning"
- int one;
+ NotStandardLayout() : one(1), two(2) {}
+ int sum() const { return one + two; } // silences "unused field 'two' warning"
+ int one;
+
private:
- int two;
+ int two;
};
void f() {
- {
- // array
- typedef char C[3];
- static_assert(std::is_array<C>::value, "");
- std::basic_string<C, test_traits<C> > s;
- // expected-error-re at string:* {{{{(static_assert|static assertion)}} failed{{.*}}Character type of basic_string must not be an array}}
- }
-
- {
- // not trivial
- static_assert(!std::is_trivial<NotTrivial>::value, "");
- std::basic_string<NotTrivial, test_traits<NotTrivial> > s;
- // expected-error-re at string:* {{{{(static_assert|static assertion)}} failed{{.*}}Character type of basic_string must be trivial}}
- }
-
- {
- // not standard layout
- static_assert(!std::is_standard_layout<NotStandardLayout>::value, "");
- std::basic_string<NotStandardLayout, test_traits<NotStandardLayout> > s;
- // expected-error-re at string:* {{{{(static_assert|static assertion)}} failed{{.*}}Character type of basic_string must be standard-layout}}
- }
+ {
+ // array
+ typedef char C[3];
+ static_assert(std::is_array<C>::value, "");
+ std::basic_string<C, test_traits<C> > s;
+ // expected-error-re at string:* {{{{(static_assert|static assertion)}} failed{{.*}}Character type of basic_string must not be an array}}
+ }
+
+ {
+ // not trivial
+ static_assert(!std::is_trivial<NotTrivial>::value, "");
+ std::basic_string<NotTrivial, test_traits<NotTrivial> > s;
+ // expected-error-re at string:* {{{{(static_assert|static assertion)}} failed{{.*}}Character type of basic_string must be trivial}}
+ }
+
+ {
+ // not standard layout
+ static_assert(!std::is_standard_layout<NotStandardLayout>::value, "");
+ std::basic_string<NotStandardLayout, test_traits<NotStandardLayout> > s;
+ // expected-error-re at string:* {{{{(static_assert|static assertion)}} failed{{.*}}Character type of basic_string must be standard-layout}}
+ }
}
diff --git a/libcxx/test/std/strings/basic.string/range_concept_conformance.compile.pass.cpp b/libcxx/test/std/strings/basic.string/range_concept_conformance.compile.pass.cpp
index 46b1936e5538463..b6afc20e3cccb0c 100644
--- a/libcxx/test/std/strings/basic.string/range_concept_conformance.compile.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/range_concept_conformance.compile.pass.cpp
@@ -15,8 +15,6 @@
#include <concepts>
#include <ranges>
-
-
static_assert(std::same_as<std::ranges::iterator_t<std::string>, std::string::iterator>);
static_assert(std::ranges::common_range<std::string>);
static_assert(std::ranges::random_access_range<std::string>);
diff --git a/libcxx/test/std/strings/basic.string/string.access/at.pass.cpp b/libcxx/test/std/strings/basic.string/string.access/at.pass.cpp
index 9530950b336734f..52c0646c7d7c568 100644
--- a/libcxx/test/std/strings/basic.string/string.access/at.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.access/at.pass.cpp
@@ -22,37 +22,27 @@
#include "type_algorithms.h"
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(S s, typename S::size_type pos)
-{
- const S& cs = s;
- if (pos < s.size())
- {
- assert(s.at(pos) == s[pos]);
- assert(cs.at(pos) == cs[pos]);
- }
+TEST_CONSTEXPR_CXX20 void test(S s, typename S::size_type pos) {
+ const S& cs = s;
+ if (pos < s.size()) {
+ assert(s.at(pos) == s[pos]);
+ assert(cs.at(pos) == cs[pos]);
+ }
#ifndef TEST_HAS_NO_EXCEPTIONS
- else if (!TEST_IS_CONSTANT_EVALUATED)
- {
- try
- {
- TEST_IGNORE_NODISCARD s.at(pos);
- assert(false);
- }
- catch (std::out_of_range&)
- {
- assert(pos >= s.size());
- }
- try
- {
- TEST_IGNORE_NODISCARD cs.at(pos);
- assert(false);
- }
- catch (std::out_of_range&)
- {
- assert(pos >= s.size());
- }
+ else if (!TEST_IS_CONSTANT_EVALUATED) {
+ try {
+ TEST_IGNORE_NODISCARD s.at(pos);
+ assert(false);
+ } catch (std::out_of_range&) {
+ assert(pos >= s.size());
}
+ try {
+ TEST_IGNORE_NODISCARD cs.at(pos);
+ assert(false);
+ } catch (std::out_of_range&) {
+ assert(pos >= s.size());
+ }
+ }
#endif
}
@@ -68,9 +58,9 @@ TEST_CONSTEXPR_CXX20 void test_string() {
struct TestCaller {
template <class T>
TEST_CONSTEXPR_CXX20 void operator()() {
- test_string<std::basic_string<T> >();
+ test_string<std::basic_string<T> >();
#if TEST_STD_VER >= 11
- test_string<std::basic_string<T, std::char_traits<T>, min_allocator<T> > >();
+ test_string<std::basic_string<T, std::char_traits<T>, min_allocator<T> > >();
#endif
}
};
@@ -81,8 +71,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.access/back.pass.cpp b/libcxx/test/std/strings/basic.string/string.access/back.pass.cpp
index 9428b08b16d4c16..2f0c282c8e43650 100644
--- a/libcxx/test/std/strings/basic.string/string.access/back.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.access/back.pass.cpp
@@ -18,18 +18,16 @@
#include "min_allocator.h"
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(S s)
-{
- const S& cs = s;
- ASSERT_SAME_TYPE(decltype( s.back()), typename S::reference);
- ASSERT_SAME_TYPE(decltype(cs.back()), typename S::const_reference);
- LIBCPP_ASSERT_NOEXCEPT( s.back());
- LIBCPP_ASSERT_NOEXCEPT( cs.back());
- assert(&cs.back() == &cs[cs.size()-1]);
- assert(&s.back() == &s[cs.size()-1]);
- s.back() = typename S::value_type('z');
- assert(s.back() == typename S::value_type('z'));
+TEST_CONSTEXPR_CXX20 void test(S s) {
+ const S& cs = s;
+ ASSERT_SAME_TYPE(decltype(s.back()), typename S::reference);
+ ASSERT_SAME_TYPE(decltype(cs.back()), typename S::const_reference);
+ LIBCPP_ASSERT_NOEXCEPT(s.back());
+ LIBCPP_ASSERT_NOEXCEPT(cs.back());
+ assert(&cs.back() == &cs[cs.size() - 1]);
+ assert(&s.back() == &s[cs.size() - 1]);
+ s.back() = typename S::value_type('z');
+ assert(s.back() == typename S::value_type('z'));
}
template <class S>
@@ -47,8 +45,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.access/front.pass.cpp b/libcxx/test/std/strings/basic.string/string.access/front.pass.cpp
index e389d335b1983f3..809b0399dc70fd5 100644
--- a/libcxx/test/std/strings/basic.string/string.access/front.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.access/front.pass.cpp
@@ -18,18 +18,16 @@
#include "min_allocator.h"
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(S s)
-{
- const S& cs = s;
- ASSERT_SAME_TYPE(decltype( s.front()), typename S::reference);
- ASSERT_SAME_TYPE(decltype(cs.front()), typename S::const_reference);
- LIBCPP_ASSERT_NOEXCEPT( s.front());
- LIBCPP_ASSERT_NOEXCEPT( cs.front());
- assert(&cs.front() == &cs[0]);
- assert(&s.front() == &s[0]);
- s.front() = typename S::value_type('z');
- assert(s.front() == typename S::value_type('z'));
+TEST_CONSTEXPR_CXX20 void test(S s) {
+ const S& cs = s;
+ ASSERT_SAME_TYPE(decltype(s.front()), typename S::reference);
+ ASSERT_SAME_TYPE(decltype(cs.front()), typename S::const_reference);
+ LIBCPP_ASSERT_NOEXCEPT(s.front());
+ LIBCPP_ASSERT_NOEXCEPT(cs.front());
+ assert(&cs.front() == &cs[0]);
+ assert(&s.front() == &s[0]);
+ s.front() = typename S::value_type('z');
+ assert(s.front() == typename S::value_type('z'));
}
template <class S>
@@ -47,8 +45,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.access/index.pass.cpp b/libcxx/test/std/strings/basic.string/string.access/index.pass.cpp
index 3fe93246072736a..a270dd579667b1d 100644
--- a/libcxx/test/std/strings/basic.string/string.access/index.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.access/index.pass.cpp
@@ -21,14 +21,13 @@ template <class S>
TEST_CONSTEXPR_CXX20 void test_string() {
S s("0123456789");
const S& cs = s;
- ASSERT_SAME_TYPE(decltype( s[0]), typename S::reference);
+ ASSERT_SAME_TYPE(decltype(s[0]), typename S::reference);
ASSERT_SAME_TYPE(decltype(cs[0]), typename S::const_reference);
- LIBCPP_ASSERT_NOEXCEPT( s[0]);
- LIBCPP_ASSERT_NOEXCEPT( cs[0]);
- for (typename S::size_type i = 0; i < cs.size(); ++i)
- {
- assert(s[i] == static_cast<char>('0' + i));
- assert(cs[i] == s[i]);
+ LIBCPP_ASSERT_NOEXCEPT(s[0]);
+ LIBCPP_ASSERT_NOEXCEPT(cs[0]);
+ for (typename S::size_type i = 0; i < cs.size(); ++i) {
+ assert(s[i] == static_cast<char>('0' + i));
+ assert(cs[i] == s[i]);
}
assert(cs[cs.size()] == '\0');
const S s2 = S();
@@ -44,8 +43,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.capacity/capacity.pass.cpp b/libcxx/test/std/strings/basic.string/string.capacity/capacity.pass.cpp
index a32b8aa20cfd15e..871154ae3c97e23 100644
--- a/libcxx/test/std/strings/basic.string/string.capacity/capacity.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.capacity/capacity.pass.cpp
@@ -19,25 +19,22 @@
#include "test_macros.h"
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(S s, test_allocator_statistics& alloc_stats)
-{
- alloc_stats.throw_after = 0;
+TEST_CONSTEXPR_CXX20 void test(S s, test_allocator_statistics& alloc_stats) {
+ alloc_stats.throw_after = 0;
#ifndef TEST_HAS_NO_EXCEPTIONS
- try
+ try
#endif
- {
- while (s.size() < s.capacity())
- s.push_back(typename S::value_type());
- assert(s.size() == s.capacity());
- }
+ {
+ while (s.size() < s.capacity())
+ s.push_back(typename S::value_type());
+ assert(s.size() == s.capacity());
+ }
#ifndef TEST_HAS_NO_EXCEPTIONS
- catch (...)
- {
- assert(false);
- }
+ catch (...) {
+ assert(false);
+ }
#endif
- alloc_stats.throw_after = INT_MAX;
+ alloc_stats.throw_after = INT_MAX;
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -64,8 +61,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.capacity/clear.pass.cpp b/libcxx/test/std/strings/basic.string/string.capacity/clear.pass.cpp
index 24191a3e7e69a63..3a308de9b7569a3 100644
--- a/libcxx/test/std/strings/basic.string/string.capacity/clear.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.capacity/clear.pass.cpp
@@ -17,11 +17,9 @@
#include "min_allocator.h"
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(S s)
-{
- s.clear();
- assert(s.size() == 0);
+TEST_CONSTEXPR_CXX20 void test(S s) {
+ s.clear();
+ assert(s.size() == 0);
}
template <class S>
@@ -47,8 +45,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.capacity/empty.pass.cpp b/libcxx/test/std/strings/basic.string/string.capacity/empty.pass.cpp
index 578f068e09609d7..b4700d68a59af24 100644
--- a/libcxx/test/std/strings/basic.string/string.capacity/empty.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.capacity/empty.pass.cpp
@@ -17,11 +17,9 @@
#include "min_allocator.h"
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(const S& s)
-{
- ASSERT_NOEXCEPT(s.empty());
- assert(s.empty() == (s.size() == 0));
+TEST_CONSTEXPR_CXX20 void test(const S& s) {
+ ASSERT_NOEXCEPT(s.empty());
+ assert(s.empty() == (s.size() == 0));
}
template <class S>
@@ -40,8 +38,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.capacity/length.pass.cpp b/libcxx/test/std/strings/basic.string/string.capacity/length.pass.cpp
index 9ef48845c420131..e873f82c4830b6e 100644
--- a/libcxx/test/std/strings/basic.string/string.capacity/length.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.capacity/length.pass.cpp
@@ -17,10 +17,8 @@
#include "min_allocator.h"
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(const S& s)
-{
- assert(s.length() == s.size());
+TEST_CONSTEXPR_CXX20 void test(const S& s) {
+ assert(s.length() == s.size());
}
template <class S>
@@ -39,8 +37,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.capacity/max_size.pass.cpp b/libcxx/test/std/strings/basic.string/string.capacity/max_size.pass.cpp
index ca4b05b8b055afa..ac17dac6e3efcd5 100644
--- a/libcxx/test/std/strings/basic.string/string.capacity/max_size.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.capacity/max_size.pass.cpp
@@ -26,34 +26,34 @@
#include "min_allocator.h"
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test1(const S& s)
-{
- S s2(s);
- const std::size_t sz = s2.max_size() - 1;
- try { s2.resize(sz, 'x'); }
- catch ( const std::bad_alloc & ) { return ; }
- assert ( s2.size() == sz );
+TEST_CONSTEXPR_CXX20 void test1(const S& s) {
+ S s2(s);
+ const std::size_t sz = s2.max_size() - 1;
+ try {
+ s2.resize(sz, 'x');
+ } catch (const std::bad_alloc&) {
+ return;
+ }
+ assert(s2.size() == sz);
}
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test2(const S& s)
-{
- S s2(s);
- const std::size_t sz = s2.max_size();
- try { s2.resize(sz, 'x'); }
- catch ( const std::bad_alloc & ) { return ; }
- assert ( s.size() == sz );
+TEST_CONSTEXPR_CXX20 void test2(const S& s) {
+ S s2(s);
+ const std::size_t sz = s2.max_size();
+ try {
+ s2.resize(sz, 'x');
+ } catch (const std::bad_alloc&) {
+ return;
+ }
+ assert(s.size() == sz);
}
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(const S& s)
-{
- assert(s.max_size() >= s.size());
- test1(s);
- test2(s);
+TEST_CONSTEXPR_CXX20 void test(const S& s) {
+ assert(s.max_size() >= s.size());
+ test1(s);
+ test2(s);
}
template <class S>
@@ -83,8 +83,7 @@ constexpr bool test_constexpr() {
}
#endif
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
test_constexpr();
diff --git a/libcxx/test/std/strings/basic.string/string.capacity/over_max_size.pass.cpp b/libcxx/test/std/strings/basic.string/string.capacity/over_max_size.pass.cpp
index 80f4e874fffb13b..0b459f9625689e7 100644
--- a/libcxx/test/std/strings/basic.string/string.capacity/over_max_size.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.capacity/over_max_size.pass.cpp
@@ -26,15 +26,16 @@
#include "min_allocator.h"
template <class S>
-void
-test(const S& s)
-{
- assert(s.max_size() >= s.size());
- S s2(s);
- const std::size_t sz = s2.max_size() + 1;
- try { s2.resize(sz, 'x'); }
- catch ( const std::length_error & ) { return ; }
- assert ( false );
+void test(const S& s) {
+ assert(s.max_size() >= s.size());
+ S s2(s);
+ const std::size_t sz = s2.max_size() + 1;
+ try {
+ s2.resize(sz, 'x');
+ } catch (const std::length_error&) {
+ return;
+ }
+ assert(false);
}
template <class S>
@@ -53,8 +54,7 @@ bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
return 0;
diff --git a/libcxx/test/std/strings/basic.string/string.capacity/reserve.deprecated_in_cxx20.verify.cpp b/libcxx/test/std/strings/basic.string/string.capacity/reserve.deprecated_in_cxx20.verify.cpp
index 632f7fd0523a167..79d6c3214e2d19b 100644
--- a/libcxx/test/std/strings/basic.string/string.capacity/reserve.deprecated_in_cxx20.verify.cpp
+++ b/libcxx/test/std/strings/basic.string/string.capacity/reserve.deprecated_in_cxx20.verify.cpp
@@ -15,6 +15,6 @@
#include <string>
void f() {
- std::string s;
- s.reserve(); // expected-warning {{'reserve' is deprecated}}
+ std::string s;
+ s.reserve(); // expected-warning {{'reserve' is deprecated}}
}
diff --git a/libcxx/test/std/strings/basic.string/string.capacity/reserve.pass.cpp b/libcxx/test/std/strings/basic.string/string.capacity/reserve.pass.cpp
index 840fd14c5453778..03e3cf2f9d7d38e 100644
--- a/libcxx/test/std/strings/basic.string/string.capacity/reserve.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.capacity/reserve.pass.cpp
@@ -20,21 +20,19 @@
#include "min_allocator.h"
template <class S>
-void
-test(typename S::size_type min_cap, typename S::size_type erased_index)
-{
- S s(min_cap, 'a');
- s.erase(erased_index);
- assert(s.size() == erased_index);
- assert(s.capacity() >= min_cap); // Check that we really have at least this capacity.
-
- typename S::size_type old_cap = s.capacity();
- S s0 = s;
- s.reserve();
- LIBCPP_ASSERT(s.__invariants());
- assert(s == s0);
- assert(s.capacity() <= old_cap);
- assert(s.capacity() >= s.size());
+void test(typename S::size_type min_cap, typename S::size_type erased_index) {
+ S s(min_cap, 'a');
+ s.erase(erased_index);
+ assert(s.size() == erased_index);
+ assert(s.capacity() >= min_cap); // Check that we really have at least this capacity.
+
+ typename S::size_type old_cap = s.capacity();
+ S s0 = s;
+ s.reserve();
+ LIBCPP_ASSERT(s.__invariants());
+ assert(s == s0);
+ assert(s.capacity() <= old_cap);
+ assert(s.capacity() >= s.size());
}
template <class S>
@@ -53,8 +51,7 @@ bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
return 0;
diff --git a/libcxx/test/std/strings/basic.string/string.capacity/reserve_size.pass.cpp b/libcxx/test/std/strings/basic.string/string.capacity/reserve_size.pass.cpp
index 45c58677a5ffee9..bb804bf328b3b8d 100644
--- a/libcxx/test/std/strings/basic.string/string.capacity/reserve_size.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.capacity/reserve_size.pass.cpp
@@ -23,42 +23,36 @@
template <class S>
TEST_CONSTEXPR_CXX20 void
-test(typename S::size_type min_cap, typename S::size_type erased_index, typename S::size_type res_arg)
-{
- S s(min_cap, 'a');
- s.erase(erased_index);
- assert(s.size() == erased_index);
- assert(s.capacity() >= min_cap); // Check that we really have at least this capacity.
+test(typename S::size_type min_cap, typename S::size_type erased_index, typename S::size_type res_arg) {
+ S s(min_cap, 'a');
+ s.erase(erased_index);
+ assert(s.size() == erased_index);
+ assert(s.capacity() >= min_cap); // Check that we really have at least this capacity.
#if TEST_STD_VER > 17
- typename S::size_type old_cap = s.capacity();
+ typename S::size_type old_cap = s.capacity();
#endif
- S s0 = s;
- if (res_arg <= s.max_size())
- {
- s.reserve(res_arg);
- LIBCPP_ASSERT(s.__invariants());
- assert(s == s0);
- assert(s.capacity() >= res_arg);
- assert(s.capacity() >= s.size());
+ S s0 = s;
+ if (res_arg <= s.max_size()) {
+ s.reserve(res_arg);
+ LIBCPP_ASSERT(s.__invariants());
+ assert(s == s0);
+ assert(s.capacity() >= res_arg);
+ assert(s.capacity() >= s.size());
#if TEST_STD_VER > 17
- assert(s.capacity() >= old_cap); // reserve never shrinks as of P0966 (C++20)
+ assert(s.capacity() >= old_cap); // reserve never shrinks as of P0966 (C++20)
#endif
- }
+ }
#ifndef TEST_HAS_NO_EXCEPTIONS
- else if (!TEST_IS_CONSTANT_EVALUATED)
- {
- try
- {
- s.reserve(res_arg);
- LIBCPP_ASSERT(s.__invariants());
- assert(false);
- }
- catch (std::length_error&)
- {
- assert(res_arg > s.max_size());
- }
+ else if (!TEST_IS_CONSTANT_EVALUATED) {
+ try {
+ s.reserve(res_arg);
+ LIBCPP_ASSERT(s.__invariants());
+ assert(false);
+ } catch (std::length_error&) {
+ assert(res_arg > s.max_size());
}
+ }
#endif
}
@@ -88,8 +82,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.capacity/resize_and_overwrite.pass.cpp b/libcxx/test/std/strings/basic.string/string.capacity/resize_and_overwrite.pass.cpp
index 3fafde81e8abf05..a0d7f782de1f5b3 100644
--- a/libcxx/test/std/strings/basic.string/string.capacity/resize_and_overwrite.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.capacity/resize_and_overwrite.pass.cpp
@@ -49,7 +49,7 @@ constexpr void test_truncating(std::size_t o, size_t N) {
LIBCPP_ASSERT(s.begin().base() == p);
assert(std::all_of(p, p + n, [](auto ch) { return ch == 'a'; }));
p[n - 1] = 'b';
- p[n] = 'c'; // will be overwritten
+ p[n] = 'c'; // will be overwritten
return n;
});
const S expected = S(N - 1, 'a') + S(1, 'b');
diff --git a/libcxx/test/std/strings/basic.string/string.capacity/resize_size.pass.cpp b/libcxx/test/std/strings/basic.string/string.capacity/resize_size.pass.cpp
index 16e1323e7a75f1e..487b12d9df87f33 100644
--- a/libcxx/test/std/strings/basic.string/string.capacity/resize_size.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.capacity/resize_size.pass.cpp
@@ -18,28 +18,21 @@
#include "min_allocator.h"
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(S s, typename S::size_type n, S expected)
-{
- if (n <= s.max_size())
- {
- s.resize(n);
- LIBCPP_ASSERT(s.__invariants());
- assert(s == expected);
- }
+TEST_CONSTEXPR_CXX20 void test(S s, typename S::size_type n, S expected) {
+ if (n <= s.max_size()) {
+ s.resize(n);
+ LIBCPP_ASSERT(s.__invariants());
+ assert(s == expected);
+ }
#ifndef TEST_HAS_NO_EXCEPTIONS
- else if (!TEST_IS_CONSTANT_EVALUATED)
- {
- try
- {
- s.resize(n);
- assert(false);
- }
- catch (std::length_error&)
- {
- assert(n > s.max_size());
- }
+ else if (!TEST_IS_CONSTANT_EVALUATED) {
+ try {
+ s.resize(n);
+ assert(false);
+ } catch (std::length_error&) {
+ assert(n > s.max_size());
}
+ }
#endif
}
@@ -54,12 +47,13 @@ TEST_CONSTEXPR_CXX20 void test_string() {
test(S("12345"), 5, S("12345"));
test(S("12345"), 15, S("12345\0\0\0\0\0\0\0\0\0\0", 15));
test(S("12345678901234567890123456789012345678901234567890"), 0, S());
- test(S("12345678901234567890123456789012345678901234567890"), 10,
- S("1234567890"));
- test(S("12345678901234567890123456789012345678901234567890"), 50,
- S("12345678901234567890123456789012345678901234567890"));
- test(S("12345678901234567890123456789012345678901234567890"), 60,
- S("12345678901234567890123456789012345678901234567890\0\0\0\0\0\0\0\0\0\0", 60));
+ test(S("12345678901234567890123456789012345678901234567890"), 10, S("1234567890"));
+ test(S("12345678901234567890123456789012345678901234567890"),
+ 50,
+ S("12345678901234567890123456789012345678901234567890"));
+ test(S("12345678901234567890123456789012345678901234567890"),
+ 60,
+ S("12345678901234567890123456789012345678901234567890\0\0\0\0\0\0\0\0\0\0", 60));
test(S(), S::npos, S("not going to happen"));
}
@@ -72,8 +66,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.capacity/resize_size_char.pass.cpp b/libcxx/test/std/strings/basic.string/string.capacity/resize_size_char.pass.cpp
index c35ffc2294239b1..3b6adc0b0afeb19 100644
--- a/libcxx/test/std/strings/basic.string/string.capacity/resize_size_char.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.capacity/resize_size_char.pass.cpp
@@ -18,28 +18,21 @@
#include "min_allocator.h"
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(S s, typename S::size_type n, typename S::value_type c, S expected)
-{
- if (n <= s.max_size())
- {
- s.resize(n, c);
- LIBCPP_ASSERT(s.__invariants());
- assert(s == expected);
- }
+TEST_CONSTEXPR_CXX20 void test(S s, typename S::size_type n, typename S::value_type c, S expected) {
+ if (n <= s.max_size()) {
+ s.resize(n, c);
+ LIBCPP_ASSERT(s.__invariants());
+ assert(s == expected);
+ }
#ifndef TEST_HAS_NO_EXCEPTIONS
- else if (!TEST_IS_CONSTANT_EVALUATED)
- {
- try
- {
- s.resize(n, c);
- assert(false);
- }
- catch (std::length_error&)
- {
- assert(n > s.max_size());
- }
+ else if (!TEST_IS_CONSTANT_EVALUATED) {
+ try {
+ s.resize(n, c);
+ assert(false);
+ } catch (std::length_error&) {
+ assert(n > s.max_size());
}
+ }
#endif
}
@@ -54,12 +47,15 @@ TEST_CONSTEXPR_CXX20 void test_string() {
test(S("12345"), 5, 'a', S("12345"));
test(S("12345"), 15, 'a', S("12345aaaaaaaaaa"));
test(S("12345678901234567890123456789012345678901234567890"), 0, 'a', S());
- test(S("12345678901234567890123456789012345678901234567890"), 10, 'a',
- S("1234567890"));
- test(S("12345678901234567890123456789012345678901234567890"), 50, 'a',
- S("12345678901234567890123456789012345678901234567890"));
- test(S("12345678901234567890123456789012345678901234567890"), 60, 'a',
- S("12345678901234567890123456789012345678901234567890aaaaaaaaaa"));
+ test(S("12345678901234567890123456789012345678901234567890"), 10, 'a', S("1234567890"));
+ test(S("12345678901234567890123456789012345678901234567890"),
+ 50,
+ 'a',
+ S("12345678901234567890123456789012345678901234567890"));
+ test(S("12345678901234567890123456789012345678901234567890"),
+ 60,
+ 'a',
+ S("12345678901234567890123456789012345678901234567890aaaaaaaaaa"));
test(S(), S::npos, 'a', S("not going to happen"));
}
@@ -72,8 +68,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.capacity/shrink_to_fit.explicit_instantiation.sh.cpp b/libcxx/test/std/strings/basic.string/string.capacity/shrink_to_fit.explicit_instantiation.sh.cpp
index 9f0f2ed714bcfc5..12a0b4c1f532c5b 100644
--- a/libcxx/test/std/strings/basic.string/string.capacity/shrink_to_fit.explicit_instantiation.sh.cpp
+++ b/libcxx/test/std/strings/basic.string/string.capacity/shrink_to_fit.explicit_instantiation.sh.cpp
@@ -31,7 +31,7 @@ struct string16_char_traits {
typedef std::mbstate_t state_type;
typedef std::fpos<state_type> pos_type;
- static void assign(char_type&, const char_type&) { }
+ static void assign(char_type&, const char_type&) {}
static bool eq(const char_type&, const char_type&) { return false; }
static bool lt(const char_type&, const char_type&) { return false; }
static int compare(const char_type*, const char_type*, std::size_t) { return 0; }
@@ -53,7 +53,7 @@ template class std::basic_string<char16, string16_char_traits>;
extern template class std::basic_string<char16, string16_char_traits>;
int main(int, char**) {
- std::basic_string<char16, string16_char_traits> s;
- s.shrink_to_fit();
+ std::basic_string<char16, string16_char_traits> s;
+ s.shrink_to_fit();
}
#endif
diff --git a/libcxx/test/std/strings/basic.string/string.capacity/shrink_to_fit.pass.cpp b/libcxx/test/std/strings/basic.string/string.capacity/shrink_to_fit.pass.cpp
index 376182e3cbfff72..1efebfc9cea561b 100644
--- a/libcxx/test/std/strings/basic.string/string.capacity/shrink_to_fit.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.capacity/shrink_to_fit.pass.cpp
@@ -17,16 +17,14 @@
#include "min_allocator.h"
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(S s)
-{
- typename S::size_type old_cap = s.capacity();
- S s0 = s;
- s.shrink_to_fit();
- LIBCPP_ASSERT(s.__invariants());
- assert(s == s0);
- assert(s.capacity() <= old_cap);
- assert(s.capacity() >= s.size());
+TEST_CONSTEXPR_CXX20 void test(S s) {
+ typename S::size_type old_cap = s.capacity();
+ S s0 = s;
+ s.shrink_to_fit();
+ LIBCPP_ASSERT(s.__invariants());
+ assert(s == s0);
+ assert(s.capacity() <= old_cap);
+ assert(s.capacity() >= s.size());
}
template <class S>
@@ -52,8 +50,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.capacity/size.pass.cpp b/libcxx/test/std/strings/basic.string/string.capacity/size.pass.cpp
index 05d77487131bf18..9d53971779b6480 100644
--- a/libcxx/test/std/strings/basic.string/string.capacity/size.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.capacity/size.pass.cpp
@@ -17,10 +17,8 @@
#include "min_allocator.h"
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(const S& s, typename S::size_type c)
-{
- assert(s.size() == c);
+TEST_CONSTEXPR_CXX20 void test(const S& s, typename S::size_type c) {
+ assert(s.size() == c);
}
template <class S>
@@ -39,8 +37,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.cons/T_size_size.pass.cpp b/libcxx/test/std/strings/basic.string/string.cons/T_size_size.pass.cpp
index 0021684bf34be80..edbc41f060cc560 100644
--- a/libcxx/test/std/strings/basic.string/string.cons/T_size_size.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.cons/T_size_size.pass.cpp
@@ -25,69 +25,55 @@
#include "min_allocator.h"
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 void
-test(SV sv, std::size_t pos, std::size_t n)
-{
- typedef typename S::traits_type T;
- typedef typename S::allocator_type A;
- typedef typename S::size_type Size;
- if (pos <= sv.size())
- {
- S s2(sv, static_cast<Size>(pos), static_cast<Size>(n));
- LIBCPP_ASSERT(s2.__invariants());
- assert(pos <= sv.size());
- std::size_t rlen = std::min(sv.size() - pos, n);
- assert(s2.size() == rlen);
- assert(T::compare(s2.data(), sv.data() + pos, rlen) == 0);
- assert(s2.get_allocator() == A());
- assert(s2.capacity() >= s2.size());
- }
+TEST_CONSTEXPR_CXX20 void test(SV sv, std::size_t pos, std::size_t n) {
+ typedef typename S::traits_type T;
+ typedef typename S::allocator_type A;
+ typedef typename S::size_type Size;
+ if (pos <= sv.size()) {
+ S s2(sv, static_cast<Size>(pos), static_cast<Size>(n));
+ LIBCPP_ASSERT(s2.__invariants());
+ assert(pos <= sv.size());
+ std::size_t rlen = std::min(sv.size() - pos, n);
+ assert(s2.size() == rlen);
+ assert(T::compare(s2.data(), sv.data() + pos, rlen) == 0);
+ assert(s2.get_allocator() == A());
+ assert(s2.capacity() >= s2.size());
+ }
#ifndef TEST_HAS_NO_EXCEPTIONS
- else if (!TEST_IS_CONSTANT_EVALUATED)
- {
- try
- {
- S s2(sv, static_cast<Size>(pos), static_cast<Size>(n));
- assert(false);
- }
- catch (std::out_of_range&)
- {
- assert(pos > sv.size());
- }
+ else if (!TEST_IS_CONSTANT_EVALUATED) {
+ try {
+ S s2(sv, static_cast<Size>(pos), static_cast<Size>(n));
+ assert(false);
+ } catch (std::out_of_range&) {
+ assert(pos > sv.size());
}
+ }
#endif
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 void
-test(SV sv, std::size_t pos, std::size_t n, const typename S::allocator_type& a)
-{
- typedef typename S::traits_type T;
- typedef typename S::size_type Size;
- if (pos <= sv.size())
- {
- S s2(sv, static_cast<Size>(pos), static_cast<Size>(n), a);
- LIBCPP_ASSERT(s2.__invariants());
- assert(pos <= sv.size());
- std::size_t rlen = std::min(sv.size() - pos, n);
- assert(s2.size() == rlen);
- assert(T::compare(s2.data(), sv.data() + pos, rlen) == 0);
- assert(s2.get_allocator() == a);
- assert(s2.capacity() >= s2.size());
- }
+TEST_CONSTEXPR_CXX20 void test(SV sv, std::size_t pos, std::size_t n, const typename S::allocator_type& a) {
+ typedef typename S::traits_type T;
+ typedef typename S::size_type Size;
+ if (pos <= sv.size()) {
+ S s2(sv, static_cast<Size>(pos), static_cast<Size>(n), a);
+ LIBCPP_ASSERT(s2.__invariants());
+ assert(pos <= sv.size());
+ std::size_t rlen = std::min(sv.size() - pos, n);
+ assert(s2.size() == rlen);
+ assert(T::compare(s2.data(), sv.data() + pos, rlen) == 0);
+ assert(s2.get_allocator() == a);
+ assert(s2.capacity() >= s2.size());
+ }
#ifndef TEST_HAS_NO_EXCEPTIONS
- else if (!TEST_IS_CONSTANT_EVALUATED)
- {
- try
- {
- S s2(sv, static_cast<Size>(pos), static_cast<Size>(n), a);
- assert(false);
- }
- catch (std::out_of_range&)
- {
- assert(pos > sv.size());
- }
+ else if (!TEST_IS_CONSTANT_EVALUATED) {
+ try {
+ S s2(sv, static_cast<Size>(pos), static_cast<Size>(n), a);
+ assert(false);
+ } catch (std::out_of_range&) {
+ assert(pos > sv.size());
}
+ }
#endif
}
@@ -95,98 +81,97 @@ TEST_CONSTEXPR_CXX20 bool test() {
{
typedef test_allocator<char> A;
typedef std::basic_string_view<char, std::char_traits<char> > SV;
- typedef std::basic_string <char, std::char_traits<char>, A> S;
-
- test<S,SV>(SV(), 0, 0);
- test<S,SV>(SV(), 0, 1);
- test<S,SV>(SV(), 1, 0);
- test<S,SV>(SV(), 1, 1);
- test<S,SV>(SV(), 1, 2);
- test<S,SV>(SV("1"), 0, 0);
- test<S,SV>(SV("1"), 0, 1);
- test<S,SV>(SV("1234567890123456789012345678901234567890123456789012345678901234567890"), 50, 0);
- test<S,SV>(SV("1234567890123456789012345678901234567890123456789012345678901234567890"), 50, 1);
- test<S,SV>(SV("1234567890123456789012345678901234567890123456789012345678901234567890"), 50, 10);
- test<S,SV>(SV("1234567890123456789012345678901234567890123456789012345678901234567890"), 50, 100);
-
- test<S,SV>(SV(), 0, 0, A(4));
- test<S,SV>(SV(), 0, 1, A(4));
- test<S,SV>(SV(), 1, 0, A(4));
- test<S,SV>(SV(), 1, 1, A(4));
- test<S,SV>(SV(), 1, 2, A(4));
- test<S,SV>(SV("1"), 0, 0, A(6));
- test<S,SV>(SV("1"), 0, 1, A(6));
- test<S,SV>(SV("1234567890123456789012345678901234567890123456789012345678901234567890"), 50, 0, A(8));
- test<S,SV>(SV("1234567890123456789012345678901234567890123456789012345678901234567890"), 50, 1, A(8));
- test<S,SV>(SV("1234567890123456789012345678901234567890123456789012345678901234567890"), 50, 10, A(8));
- test<S,SV>(SV("1234567890123456789012345678901234567890123456789012345678901234567890"), 50, 100, A(8));
+ typedef std::basic_string<char, std::char_traits<char>, A> S;
+
+ test<S, SV>(SV(), 0, 0);
+ test<S, SV>(SV(), 0, 1);
+ test<S, SV>(SV(), 1, 0);
+ test<S, SV>(SV(), 1, 1);
+ test<S, SV>(SV(), 1, 2);
+ test<S, SV>(SV("1"), 0, 0);
+ test<S, SV>(SV("1"), 0, 1);
+ test<S, SV>(SV("1234567890123456789012345678901234567890123456789012345678901234567890"), 50, 0);
+ test<S, SV>(SV("1234567890123456789012345678901234567890123456789012345678901234567890"), 50, 1);
+ test<S, SV>(SV("1234567890123456789012345678901234567890123456789012345678901234567890"), 50, 10);
+ test<S, SV>(SV("1234567890123456789012345678901234567890123456789012345678901234567890"), 50, 100);
+
+ test<S, SV>(SV(), 0, 0, A(4));
+ test<S, SV>(SV(), 0, 1, A(4));
+ test<S, SV>(SV(), 1, 0, A(4));
+ test<S, SV>(SV(), 1, 1, A(4));
+ test<S, SV>(SV(), 1, 2, A(4));
+ test<S, SV>(SV("1"), 0, 0, A(6));
+ test<S, SV>(SV("1"), 0, 1, A(6));
+ test<S, SV>(SV("1234567890123456789012345678901234567890123456789012345678901234567890"), 50, 0, A(8));
+ test<S, SV>(SV("1234567890123456789012345678901234567890123456789012345678901234567890"), 50, 1, A(8));
+ test<S, SV>(SV("1234567890123456789012345678901234567890123456789012345678901234567890"), 50, 10, A(8));
+ test<S, SV>(SV("1234567890123456789012345678901234567890123456789012345678901234567890"), 50, 100, A(8));
}
#if TEST_STD_VER >= 11
{
typedef min_allocator<char> A;
typedef std::basic_string_view<char, std::char_traits<char> > SV;
- typedef std::basic_string <char, std::char_traits<char>, A> S;
-
- test<S,SV>(SV(), 0, 0);
- test<S,SV>(SV(), 0, 1);
- test<S,SV>(SV(), 1, 0);
- test<S,SV>(SV(), 1, 1);
- test<S,SV>(SV(), 1, 2);
- test<S,SV>(SV("1"), 0, 0);
- test<S,SV>(SV("1"), 0, 1);
- test<S,SV>(SV("1234567890123456789012345678901234567890123456789012345678901234567890"), 50, 0);
- test<S,SV>(SV("1234567890123456789012345678901234567890123456789012345678901234567890"), 50, 1);
- test<S,SV>(SV("1234567890123456789012345678901234567890123456789012345678901234567890"), 50, 10);
- test<S,SV>(SV("1234567890123456789012345678901234567890123456789012345678901234567890"), 50, 100);
-
- test<S,SV>(SV(), 0, 0, A());
- test<S,SV>(SV(), 0, 1, A());
- test<S,SV>(SV(), 1, 0, A());
- test<S,SV>(SV(), 1, 1, A());
- test<S,SV>(SV(), 1, 2, A());
- test<S,SV>(SV("1"), 0, 0, A());
- test<S,SV>(SV("1"), 0, 1, A());
- test<S,SV>(SV("1234567890123456789012345678901234567890123456789012345678901234567890"), 50, 0, A());
- test<S,SV>(SV("1234567890123456789012345678901234567890123456789012345678901234567890"), 50, 1, A());
- test<S,SV>(SV("1234567890123456789012345678901234567890123456789012345678901234567890"), 50, 10, A());
- test<S,SV>(SV("1234567890123456789012345678901234567890123456789012345678901234567890"), 50, 100, A());
+ typedef std::basic_string<char, std::char_traits<char>, A> S;
+
+ test<S, SV>(SV(), 0, 0);
+ test<S, SV>(SV(), 0, 1);
+ test<S, SV>(SV(), 1, 0);
+ test<S, SV>(SV(), 1, 1);
+ test<S, SV>(SV(), 1, 2);
+ test<S, SV>(SV("1"), 0, 0);
+ test<S, SV>(SV("1"), 0, 1);
+ test<S, SV>(SV("1234567890123456789012345678901234567890123456789012345678901234567890"), 50, 0);
+ test<S, SV>(SV("1234567890123456789012345678901234567890123456789012345678901234567890"), 50, 1);
+ test<S, SV>(SV("1234567890123456789012345678901234567890123456789012345678901234567890"), 50, 10);
+ test<S, SV>(SV("1234567890123456789012345678901234567890123456789012345678901234567890"), 50, 100);
+
+ test<S, SV>(SV(), 0, 0, A());
+ test<S, SV>(SV(), 0, 1, A());
+ test<S, SV>(SV(), 1, 0, A());
+ test<S, SV>(SV(), 1, 1, A());
+ test<S, SV>(SV(), 1, 2, A());
+ test<S, SV>(SV("1"), 0, 0, A());
+ test<S, SV>(SV("1"), 0, 1, A());
+ test<S, SV>(SV("1234567890123456789012345678901234567890123456789012345678901234567890"), 50, 0, A());
+ test<S, SV>(SV("1234567890123456789012345678901234567890123456789012345678901234567890"), 50, 1, A());
+ test<S, SV>(SV("1234567890123456789012345678901234567890123456789012345678901234567890"), 50, 10, A());
+ test<S, SV>(SV("1234567890123456789012345678901234567890123456789012345678901234567890"), 50, 100, A());
}
#endif
{
typedef std::string S;
typedef std::string_view SV;
- S s = "ABCD";
- SV sv = "EFGH";
+ S s = "ABCD";
+ SV sv = "EFGH";
char arr[] = "IJKL";
- S s1("CDEF", 4); // calls ctor(const char *, len)
+ S s1("CDEF", 4); // calls ctor(const char *, len)
assert(s1 == "CDEF");
S s2("QRST", 0, 3); // calls ctor(string("QRST", pos, len)
assert(s2 == "QRS");
- S s3(sv, 0, std::string::npos); // calls ctor(T, pos, npos)
+ S s3(sv, 0, std::string::npos); // calls ctor(T, pos, npos)
assert(s3 == sv);
- S s4(sv, 0, 3); // calls ctor(T, pos, len)
+ S s4(sv, 0, 3); // calls ctor(T, pos, len)
assert(s4 == "EFG");
- S s5(arr, 0, 2); // calls ctor(const char *, len)
+ S s5(arr, 0, 2); // calls ctor(const char *, len)
assert(s5 == "IJ");
- S s6(arr, 0); // calls ctor(const char *, len)
+ S s6(arr, 0); // calls ctor(const char *, len)
assert(s6 == "");
- S s7(s.data(), 2); // calls ctor(const char *, len)
+ S s7(s.data(), 2); // calls ctor(const char *, len)
assert(s7 == "AB");
}
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.cons/alloc.pass.cpp b/libcxx/test/std/strings/basic.string/string.cons/alloc.pass.cpp
index add77f8e5732598..97a0566ba031b00 100644
--- a/libcxx/test/std/strings/basic.string/string.cons/alloc.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.cons/alloc.pass.cpp
@@ -18,14 +18,12 @@
#include "min_allocator.h"
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test()
-{
- {
+TEST_CONSTEXPR_CXX20 void test() {
+ {
#if TEST_STD_VER > 14
- static_assert((noexcept(S{})), "" );
+ static_assert((noexcept(S{})), "");
#elif TEST_STD_VER >= 11
- static_assert((noexcept(S()) == noexcept(typename S::allocator_type())), "" );
+ static_assert((noexcept(S()) == noexcept(typename S::allocator_type())), "");
#endif
S s;
LIBCPP_ASSERT(s.__invariants());
@@ -33,12 +31,14 @@ test()
assert(s.size() == 0);
assert(s.capacity() >= s.size());
assert(s.get_allocator() == typename S::allocator_type());
- }
- {
+ }
+ {
#if TEST_STD_VER > 14
- static_assert((noexcept(S{typename S::allocator_type{}})), "" );
+ static_assert((noexcept(S{typename S::allocator_type{}})), "");
#elif TEST_STD_VER >= 11
- static_assert((noexcept(S(typename S::allocator_type())) == std::is_nothrow_copy_constructible<typename S::allocator_type>::value), "" );
+ static_assert((noexcept(S(typename S::allocator_type())) ==
+ std::is_nothrow_copy_constructible<typename S::allocator_type>::value),
+ "");
#endif
S s(typename S::allocator_type(5));
LIBCPP_ASSERT(s.__invariants());
@@ -46,41 +46,41 @@ test()
assert(s.size() == 0);
assert(s.capacity() >= s.size());
assert(s.get_allocator() == typename S::allocator_type(5));
- }
+ }
}
#if TEST_STD_VER >= 11
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test2()
-{
- {
-#if TEST_STD_VER > 14
- static_assert((noexcept(S{})), "" );
-#elif TEST_STD_VER >= 11
- static_assert((noexcept(S()) == noexcept(typename S::allocator_type())), "" );
-#endif
+TEST_CONSTEXPR_CXX20 void test2() {
+ {
+# if TEST_STD_VER > 14
+ static_assert((noexcept(S{})), "");
+# elif TEST_STD_VER >= 11
+ static_assert((noexcept(S()) == noexcept(typename S::allocator_type())), "");
+# endif
S s;
LIBCPP_ASSERT(s.__invariants());
assert(s.data());
assert(s.size() == 0);
assert(s.capacity() >= s.size());
assert(s.get_allocator() == typename S::allocator_type());
- }
- {
-#if TEST_STD_VER > 14
- static_assert((noexcept(S{typename S::allocator_type{}})), "" );
-#elif TEST_STD_VER >= 11
- static_assert((noexcept(S(typename S::allocator_type())) == std::is_nothrow_copy_constructible<typename S::allocator_type>::value), "" );
-#endif
+ }
+ {
+# if TEST_STD_VER > 14
+ static_assert((noexcept(S{typename S::allocator_type{}})), "");
+# elif TEST_STD_VER >= 11
+ static_assert((noexcept(S(typename S::allocator_type())) ==
+ std::is_nothrow_copy_constructible<typename S::allocator_type>::value),
+ "");
+# endif
S s(typename S::allocator_type{});
LIBCPP_ASSERT(s.__invariants());
assert(s.data());
assert(s.size() == 0);
assert(s.capacity() >= s.size());
assert(s.get_allocator() == typename S::allocator_type());
- }
+ }
}
#endif
@@ -95,8 +95,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.cons/brace_assignment.pass.cpp b/libcxx/test/std/strings/basic.string/string.cons/brace_assignment.pass.cpp
index 6c676b7ce15b5f7..e7d18b4ca87179d 100644
--- a/libcxx/test/std/strings/basic.string/string.cons/brace_assignment.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.cons/brace_assignment.pass.cpp
@@ -23,20 +23,19 @@ TEST_CONSTEXPR_CXX20 bool test() {
// ambiguous.
{
std::string s = "hello world";
- s = {};
+ s = {};
assert(s.empty());
}
{
std::string s = "hello world";
- s = {"abc", 2};
+ s = {"abc", 2};
assert(s == "ab");
}
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.cons/char_assignment.pass.cpp b/libcxx/test/std/strings/basic.string/string.cons/char_assignment.pass.cpp
index 38130b1b4bcb59a..3cffc82e9483526 100644
--- a/libcxx/test/std/strings/basic.string/string.cons/char_assignment.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.cons/char_assignment.pass.cpp
@@ -17,15 +17,13 @@
#include "min_allocator.h"
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(S s1, typename S::value_type s2)
-{
- typedef typename S::traits_type T;
- s1 = s2;
- LIBCPP_ASSERT(s1.__invariants());
- assert(s1.size() == 1);
- assert(T::eq(s1[0], s2));
- assert(s1.capacity() >= s1.size());
+TEST_CONSTEXPR_CXX20 void test(S s1, typename S::value_type s2) {
+ typedef typename S::traits_type T;
+ s1 = s2;
+ LIBCPP_ASSERT(s1.__invariants());
+ assert(s1.size() == 1);
+ assert(T::eq(s1[0], s2));
+ assert(s1.capacity() >= s1.size());
}
template <class S>
@@ -45,8 +43,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.cons/copy.pass.cpp b/libcxx/test/std/strings/basic.string/string.cons/copy.pass.cpp
index 6ce2b12127e0f26..6b10388f5258bea 100644
--- a/libcxx/test/std/strings/basic.string/string.cons/copy.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.cons/copy.pass.cpp
@@ -18,14 +18,12 @@
#include "min_allocator.h"
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(S s1)
-{
- S s2 = s1;
- LIBCPP_ASSERT(s2.__invariants());
- assert(s2 == s1);
- assert(s2.capacity() >= s2.size());
- assert(s2.get_allocator() == s1.get_allocator());
+TEST_CONSTEXPR_CXX20 void test(S s1) {
+ S s2 = s1;
+ LIBCPP_ASSERT(s2.__invariants());
+ assert(s2 == s1);
+ assert(s2.capacity() >= s2.size());
+ assert(s2.get_allocator() == s1.get_allocator());
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -49,8 +47,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.cons/copy_alloc.pass.cpp b/libcxx/test/std/strings/basic.string/string.cons/copy_alloc.pass.cpp
index 9d6c162399f2b38..2d45f38d6afc24e 100644
--- a/libcxx/test/std/strings/basic.string/string.cons/copy_alloc.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.cons/copy_alloc.pass.cpp
@@ -19,73 +19,70 @@
#ifndef TEST_HAS_NO_EXCEPTIONS
struct alloc_imp {
- bool active;
-
- TEST_CONSTEXPR alloc_imp() : active(true) {}
-
- template <class T>
- T* allocate(std::size_t n)
- {
- if (active)
- return static_cast<T*>(std::malloc(n * sizeof(T)));
- else
- throw std::bad_alloc();
- }
-
- template <class T>
- void deallocate(T* p, std::size_t) { std::free(p); }
- void activate () { active = true; }
- void deactivate() { active = false; }
+ bool active;
+
+ TEST_CONSTEXPR alloc_imp() : active(true) {}
+
+ template <class T>
+ T* allocate(std::size_t n) {
+ if (active)
+ return static_cast<T*>(std::malloc(n * sizeof(T)));
+ else
+ throw std::bad_alloc();
+ }
+
+ template <class T>
+ void deallocate(T* p, std::size_t) {
+ std::free(p);
+ }
+ void activate() { active = true; }
+ void deactivate() { active = false; }
};
template <class T>
struct poca_alloc {
- typedef T value_type;
- typedef std::true_type propagate_on_container_copy_assignment;
+ typedef T value_type;
+ typedef std::true_type propagate_on_container_copy_assignment;
- alloc_imp *imp;
+ alloc_imp* imp;
- TEST_CONSTEXPR poca_alloc(alloc_imp *imp_) : imp (imp_) {}
+ TEST_CONSTEXPR poca_alloc(alloc_imp* imp_) : imp(imp_) {}
- template <class U>
- TEST_CONSTEXPR poca_alloc(const poca_alloc<U>& other) : imp(other.imp) {}
+ template <class U>
+ TEST_CONSTEXPR poca_alloc(const poca_alloc<U>& other) : imp(other.imp) {}
- T* allocate (std::size_t n) { return imp->allocate<T>(n);}
- void deallocate(T* p, std::size_t n) { imp->deallocate(p, n); }
+ T* allocate(std::size_t n) { return imp->allocate<T>(n); }
+ void deallocate(T* p, std::size_t n) { imp->deallocate(p, n); }
};
template <typename T, typename U>
-bool operator==(const poca_alloc<T>& lhs, const poca_alloc<U>& rhs)
-{
- return lhs.imp == rhs.imp;
+bool operator==(const poca_alloc<T>& lhs, const poca_alloc<U>& rhs) {
+ return lhs.imp == rhs.imp;
}
template <typename T, typename U>
-bool operator!=(const poca_alloc<T>& lhs, const poca_alloc<U>& rhs)
-{
- return lhs.imp != rhs.imp;
+bool operator!=(const poca_alloc<T>& lhs, const poca_alloc<U>& rhs) {
+ return lhs.imp != rhs.imp;
}
template <class S>
-TEST_CONSTEXPR_CXX20 void test_assign(S &s1, const S& s2)
-{
- try { s1 = s2; }
- catch ( std::bad_alloc &) { return; }
- assert(false);
+TEST_CONSTEXPR_CXX20 void test_assign(S& s1, const S& s2) {
+ try {
+ s1 = s2;
+ } catch (std::bad_alloc&) {
+ return;
+ }
+ assert(false);
}
#endif
-
-
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(S s1, const typename S::allocator_type& a)
-{
- S s2(s1, a);
- LIBCPP_ASSERT(s2.__invariants());
- assert(s2 == s1);
- assert(s2.capacity() >= s2.size());
- assert(s2.get_allocator() == a);
+TEST_CONSTEXPR_CXX20 void test(S s1, const typename S::allocator_type& a) {
+ S s2(s1, a);
+ LIBCPP_ASSERT(s2.__invariants());
+ assert(s2 == s1);
+ assert(s2.capacity() >= s2.size());
+ assert(s2.get_allocator() == a);
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -105,12 +102,12 @@ TEST_CONSTEXPR_CXX20 bool test() {
test(S("1234567890123456789012345678901234567890123456789012345678901234567890"), A());
}
-#ifndef TEST_HAS_NO_EXCEPTIONS
+# ifndef TEST_HAS_NO_EXCEPTIONS
if (!TEST_IS_CONSTANT_EVALUATED) {
typedef poca_alloc<char> A;
typedef std::basic_string<char, std::char_traits<char>, A> S;
- const char * p1 = "This is my first string";
- const char * p2 = "This is my second string";
+ const char* p1 = "This is my first string";
+ const char* p2 = "This is my second string";
alloc_imp imp1;
alloc_imp imp2;
@@ -125,14 +122,13 @@ TEST_CONSTEXPR_CXX20 bool test() {
assert(s1 == p1);
assert(s2 == p2);
}
-#endif
+# endif
#endif
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.cons/copy_assignment.pass.cpp b/libcxx/test/std/strings/basic.string/string.cons/copy_assignment.pass.cpp
index 3b925d31cb913d6..8d0fcb3c6d2943f 100644
--- a/libcxx/test/std/strings/basic.string/string.cons/copy_assignment.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.cons/copy_assignment.pass.cpp
@@ -18,13 +18,11 @@
#include "min_allocator.h"
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(S s1, const S& s2)
-{
- s1 = s2;
- LIBCPP_ASSERT(s1.__invariants());
- assert(s1 == s2);
- assert(s1.capacity() >= s1.size());
+TEST_CONSTEXPR_CXX20 void test(S s1, const S& s2) {
+ s1 = s2;
+ LIBCPP_ASSERT(s1.__invariants());
+ assert(s1 == s2);
+ assert(s1.capacity() >= s1.size());
}
template <class S>
@@ -35,15 +33,13 @@ TEST_CONSTEXPR_CXX20 void test_string() {
test(S("1"), S("2"));
test(S("1"), S("2"));
- test(S(),
- S("abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz"));
- test(S("123456789"),
- S("abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz"));
+ test(S(), S("abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz"));
+ test(S("123456789"), S("abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz"));
test(S("1234567890123456789012345678901234567890123456789012345678901234567890"),
- S("abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz"));
+ S("abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz"));
test(S("1234567890123456789012345678901234567890123456789012345678901234567890"
- "1234567890123456789012345678901234567890123456789012345678901234567890"),
- S("abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz"));
+ "1234567890123456789012345678901234567890123456789012345678901234567890"),
+ S("abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz"));
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -53,7 +49,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
#endif
#if TEST_STD_VER >= 11
- { // LWG 2946
+ { // LWG 2946
std::string s;
s = {"abc", 1};
assert(s.size() == 1);
@@ -64,8 +60,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.cons/default.pass.cpp b/libcxx/test/std/strings/basic.string/string.cons/default.pass.cpp
index beb16c099f025b1..3993a40dd5a165c 100644
--- a/libcxx/test/std/strings/basic.string/string.cons/default.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.cons/default.pass.cpp
@@ -20,9 +20,11 @@
// Test the noexcept specification, which is a conforming extension
LIBCPP_STATIC_ASSERT(std::is_nothrow_default_constructible<std::string>::value, "");
LIBCPP_STATIC_ASSERT(std::is_nothrow_default_constructible<
- std::basic_string<char, std::char_traits<char>, test_allocator<char>>>::value, "");
+ std::basic_string<char, std::char_traits<char>, test_allocator<char>>>::value,
+ "");
LIBCPP_STATIC_ASSERT(!std::is_nothrow_default_constructible<
- std::basic_string<char, std::char_traits<char>, limited_allocator<char, 10>>>::value, "");
+ std::basic_string<char, std::char_traits<char>, limited_allocator<char, 10>>>::value,
+ "");
#endif
TEST_CONSTEXPR_CXX20 bool test() {
@@ -32,8 +34,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.cons/dtor.pass.cpp b/libcxx/test/std/strings/basic.string/string.cons/dtor.pass.cpp
index 92d6531224cc180..e9f174068473d55 100644
--- a/libcxx/test/std/strings/basic.string/string.cons/dtor.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.cons/dtor.pass.cpp
@@ -19,12 +19,11 @@
#include "test_allocator.h"
template <class T>
-struct throwing_alloc
-{
- typedef T value_type;
- throwing_alloc(const throwing_alloc&);
- T *allocate(std::size_t);
- ~throwing_alloc() noexcept(false);
+struct throwing_alloc {
+ typedef T value_type;
+ throwing_alloc(const throwing_alloc&);
+ T* allocate(std::size_t);
+ ~throwing_alloc() noexcept(false);
};
// Test that it's possible to take the address of basic_string's destructors
@@ -35,10 +34,10 @@ std::wstring unused_wide_string;
#endif
static_assert(std::is_nothrow_destructible<std::string>::value, "");
-static_assert(std::is_nothrow_destructible<
- std::basic_string<char, std::char_traits<char>, test_allocator<char>>>::value, "");
-LIBCPP_STATIC_ASSERT(!std::is_nothrow_destructible<
- std::basic_string<char, std::char_traits<char>, throwing_alloc<char>>>::value, "");
+static_assert(
+ std::is_nothrow_destructible< std::basic_string<char, std::char_traits<char>, test_allocator<char>>>::value, "");
+LIBCPP_STATIC_ASSERT(
+ !std::is_nothrow_destructible< std::basic_string<char, std::char_traits<char>, throwing_alloc<char>>>::value, "");
TEST_CONSTEXPR_CXX20 bool test() {
test_allocator_statistics alloc_stats;
@@ -53,8 +52,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.cons/from_range.pass.cpp b/libcxx/test/std/strings/basic.string/string.cons/from_range.pass.cpp
index b8ec2f47f8d86ae..3ae5b74a3504a04 100644
--- a/libcxx/test/std/strings/basic.string/string.cons/from_range.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.cons/from_range.pass.cpp
@@ -21,9 +21,8 @@
#include "test_macros.h"
template <class Container, class Range, class Alloc>
-concept StringHasFromRangeAllocCtr = requires (Range&& range, const Alloc& alloc) {
- Container(std::from_range, std::forward<Range>(range), alloc);
-};
+concept StringHasFromRangeAllocCtr =
+ requires(Range&& range, const Alloc& alloc) { Container(std::from_range, std::forward<Range>(range), alloc); };
constexpr bool test_constraints() {
// (from_range, range)
@@ -42,7 +41,7 @@ constexpr bool test_constraints() {
// (from_range, range, alloc)
//
// Input range with the same value type.
- using Alloc = test_allocator<char>;
+ using Alloc = test_allocator<char>;
using StringWithAlloc = std::basic_string<char, std::char_traits<char>, Alloc>;
static_assert(StringHasFromRangeAllocCtr<StringWithAlloc, InputRange<char>, Alloc>);
// Input range with a convertible value type.
@@ -59,9 +58,7 @@ constexpr bool test_constraints() {
return true;
}
-template <class Iter,
- class Sent,
- class Alloc>
+template <class Iter, class Sent, class Alloc>
constexpr void test_with_input(std::vector<char> input) {
auto b = Iter(input.data());
auto e = Iter(input.data() + input.size());
diff --git a/libcxx/test/std/strings/basic.string/string.cons/from_range_deduction.pass.cpp b/libcxx/test/std/strings/basic.string/string.cons/from_range_deduction.pass.cpp
index 4df4d39c2355eea..b2dab03506f03a4 100644
--- a/libcxx/test/std/strings/basic.string/string.cons/from_range_deduction.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.cons/from_range_deduction.pass.cpp
@@ -43,7 +43,9 @@ int main(int, char**) {
// Note: defining `value_type` is a workaround because one of the deduction guides will end up instantiating
// `basic_string`, and that would fail with a hard error if the given allocator doesn't define `value_type`.
- struct BadAlloc { using value_type = char; };
+ struct BadAlloc {
+ using value_type = char;
+ };
SequenceContainerDeductionGuidesSfinaeAway<std::basic_string, std::basic_string<char>, BadAlloc>();
return 0;
diff --git a/libcxx/test/std/strings/basic.string/string.cons/implicit_deduction_guides.pass.cpp b/libcxx/test/std/strings/basic.string/string.cons/implicit_deduction_guides.pass.cpp
index 5f3064bc0452bae..e0fa234639bd06e 100644
--- a/libcxx/test/std/strings/basic.string/string.cons/implicit_deduction_guides.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.cons/implicit_deduction_guides.pass.cpp
@@ -46,18 +46,17 @@ using BStr = std::basic_string<T, std::char_traits<T>, Alloc>;
// (14) basic_string(BSV, A const& = A())
// (15) basic_string(const T&, size_type, size_type, A const& = A())
TEST_CONSTEXPR_CXX20 bool test() {
-
using TestSizeT = test_allocator<char>::size_type;
- { // Testing (1)
- // Nothing to do. Cannot deduce without any arguments.
- }
- { // Testing (2)
- // This overload isn't compatible with implicit deduction guides as
- // specified in the standard.
- // const test_allocator<char> alloc{};
- // std::basic_string s(alloc);
- }
- { // Testing (3) w/o allocator
+ {
+ // Testing (1)
+ // Nothing to do. Cannot deduce without any arguments.
+ } {
+ // Testing (2)
+ // This overload isn't compatible with implicit deduction guides as
+ // specified in the standard.
+ // const test_allocator<char> alloc{};
+ // std::basic_string s(alloc);
+ } { // Testing (3) w/o allocator
std::basic_string s(6ull, 'a');
ASSERT_SAME_TYPE(decltype(s), std::string);
assert(s == "aaaaaa");
@@ -70,7 +69,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
}
{ // Testing (3) w/ allocator
std::basic_string s(6ull, 'a', test_allocator<char>{});
- ASSERT_SAME_TYPE(decltype(s), BStr<char,test_allocator<char>>);
+ ASSERT_SAME_TYPE(decltype(s), BStr<char, test_allocator<char>>);
assert(s == "aaaaaa");
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
@@ -86,9 +85,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
assert(s == "bc");
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- using WStr = std::basic_string<wchar_t,
- constexpr_char_traits<wchar_t>,
- test_allocator<wchar_t>>;
+ using WStr = std::basic_string<wchar_t, constexpr_char_traits<wchar_t>, test_allocator<wchar_t>>;
const WStr win(L"abcdef");
std::basic_string w(win, (TestSizeT)3);
ASSERT_SAME_TYPE(decltype(w), WStr);
@@ -102,9 +99,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
assert(s == "bc");
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- using WStr = std::basic_string<wchar_t,
- constexpr_char_traits<wchar_t>,
- test_allocator<wchar_t>>;
+ using WStr = std::basic_string<wchar_t, constexpr_char_traits<wchar_t>, test_allocator<wchar_t>>;
const WStr win(L"abcdef");
std::basic_string w(win, (TestSizeT)3, test_allocator<wchar_t>{});
ASSERT_SAME_TYPE(decltype(w), WStr);
@@ -118,9 +113,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
assert(s == "bc");
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- using WStr = std::basic_string<wchar_t,
- constexpr_char_traits<wchar_t>,
- test_allocator<wchar_t>>;
+ using WStr = std::basic_string<wchar_t, constexpr_char_traits<wchar_t>, test_allocator<wchar_t>>;
const WStr win(L"abcdef");
std::basic_string w(win, (TestSizeT)2, (TestSizeT)3);
ASSERT_SAME_TYPE(decltype(w), WStr);
@@ -134,9 +127,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
assert(s == "bc");
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- using WStr = std::basic_string<wchar_t,
- constexpr_char_traits<wchar_t>,
- test_allocator<wchar_t>>;
+ using WStr = std::basic_string<wchar_t, constexpr_char_traits<wchar_t>, test_allocator<wchar_t>>;
const WStr win(L"abcdef");
std::basic_string w(win, (TestSizeT)2, (TestSizeT)3, test_allocator<wchar_t>{});
ASSERT_SAME_TYPE(decltype(w), WStr);
@@ -160,9 +151,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
assert(s == "ab");
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- using WStr = std::basic_string<wchar_t,
- std::char_traits<wchar_t>,
- test_allocator<wchar_t>>;
+ using WStr = std::basic_string<wchar_t, std::char_traits<wchar_t>, test_allocator<wchar_t>>;
std::basic_string w(L"abcdef", (TestSizeT)3, test_allocator<wchar_t>{});
ASSERT_SAME_TYPE(decltype(w), WStr);
assert(w == L"abc");
@@ -185,191 +174,178 @@ TEST_CONSTEXPR_CXX20 bool test() {
assert(s == "abc");
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- using WStr = std::basic_string<wchar_t,
- std::char_traits<wchar_t>,
- test_allocator<wchar_t>>;
+ using WStr = std::basic_string<wchar_t, std::char_traits<wchar_t>, test_allocator<wchar_t>>;
std::basic_string w(L"abcdef", test_allocator<wchar_t>{});
ASSERT_SAME_TYPE(decltype(w), WStr);
assert(w == L"abcdef");
#endif
}
{ // (8) w/o allocator
- using It = cpp17_input_iterator<const char*>;
+ using It = cpp17_input_iterator<const char*>;
const char* input = "abcdef";
std::basic_string s(It(input), It(input + 3), std::allocator<char>{});
ASSERT_SAME_TYPE(decltype(s), std::string);
assert(s == "abc");
}
- { // (8) w/ allocator
- {
- using Expect = std::basic_string<char, std::char_traits<char>, test_allocator<char>>;
- using It = cpp17_input_iterator<const char*>;
- const char* input = "abcdef";
- std::basic_string s(It(input), It(input + 3), test_allocator<char>{});
- ASSERT_SAME_TYPE(decltype(s), Expect);
- assert(s == "abc");
- }
+ {// (8) w/ allocator
+ {using Expect = std::basic_string<char, std::char_traits<char>, test_allocator<char>>;
+ using It = cpp17_input_iterator<const char*>;
+ const char* input = "abcdef";
+ std::basic_string s(It(input), It(input + 3), test_allocator<char>{});
+ ASSERT_SAME_TYPE(decltype(s), Expect);
+ assert(s == "abc");
+}
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- {
- using ExpectW = std::basic_string<wchar_t, std::char_traits<wchar_t>, test_allocator<wchar_t>>;
- using It = cpp17_input_iterator<const wchar_t*>;
- const wchar_t* input = L"abcdef";
- std::basic_string s(It(input), It(input + 3), test_allocator<wchar_t>{});
- ASSERT_SAME_TYPE(decltype(s), ExpectW);
- assert(s == L"abc");
- }
+{
+ using ExpectW = std::basic_string<wchar_t, std::char_traits<wchar_t>, test_allocator<wchar_t>>;
+ using It = cpp17_input_iterator<const wchar_t*>;
+ const wchar_t* input = L"abcdef";
+ std::basic_string s(It(input), It(input + 3), test_allocator<wchar_t>{});
+ ASSERT_SAME_TYPE(decltype(s), ExpectW);
+ assert(s == L"abc");
+}
#endif
- }
- { // Testing (9)
- const std::string sin("abc");
- std::basic_string s(sin);
- ASSERT_SAME_TYPE(decltype(s), std::string);
- assert(s == "abc");
+}
+{ // Testing (9)
+ const std::string sin("abc");
+ std::basic_string s(sin);
+ ASSERT_SAME_TYPE(decltype(s), std::string);
+ assert(s == "abc");
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- using WStr = std::basic_string<wchar_t,
- constexpr_char_traits<wchar_t>,
- test_allocator<wchar_t>>;
- const WStr win(L"abcdef");
- std::basic_string w(win);
- ASSERT_SAME_TYPE(decltype(w), WStr);
- assert(w == L"abcdef");
+ using WStr = std::basic_string<wchar_t, constexpr_char_traits<wchar_t>, test_allocator<wchar_t>>;
+ const WStr win(L"abcdef");
+ std::basic_string w(win);
+ ASSERT_SAME_TYPE(decltype(w), WStr);
+ assert(w == L"abcdef");
#endif
- }
- { // Testing (10)
- const std::string sin("abc");
- std::basic_string s(sin, std::allocator<char>{});
- ASSERT_SAME_TYPE(decltype(s), std::string);
- assert(s == "abc");
+}
+{ // Testing (10)
+ const std::string sin("abc");
+ std::basic_string s(sin, std::allocator<char>{});
+ ASSERT_SAME_TYPE(decltype(s), std::string);
+ assert(s == "abc");
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- using WStr = std::basic_string<wchar_t,
- constexpr_char_traits<wchar_t>,
- test_allocator<wchar_t>>;
- const WStr win(L"abcdef");
- std::basic_string w(win, test_allocator<wchar_t>{});
- ASSERT_SAME_TYPE(decltype(w), WStr);
- assert(w == L"abcdef");
+ using WStr = std::basic_string<wchar_t, constexpr_char_traits<wchar_t>, test_allocator<wchar_t>>;
+ const WStr win(L"abcdef");
+ std::basic_string w(win, test_allocator<wchar_t>{});
+ ASSERT_SAME_TYPE(decltype(w), WStr);
+ assert(w == L"abcdef");
#endif
- }
- { // Testing (11)
- std::string sin("abc");
- std::basic_string s(std::move(sin));
- ASSERT_SAME_TYPE(decltype(s), std::string);
- assert(s == "abc");
+}
+{ // Testing (11)
+ std::string sin("abc");
+ std::basic_string s(std::move(sin));
+ ASSERT_SAME_TYPE(decltype(s), std::string);
+ assert(s == "abc");
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- using WStr = std::basic_string<wchar_t,
- constexpr_char_traits<wchar_t>,
- test_allocator<wchar_t>>;
- WStr win(L"abcdef");
- std::basic_string w(std::move(win));
- ASSERT_SAME_TYPE(decltype(w), WStr);
- assert(w == L"abcdef");
+ using WStr = std::basic_string<wchar_t, constexpr_char_traits<wchar_t>, test_allocator<wchar_t>>;
+ WStr win(L"abcdef");
+ std::basic_string w(std::move(win));
+ ASSERT_SAME_TYPE(decltype(w), WStr);
+ assert(w == L"abcdef");
#endif
- }
- { // Testing (12)
- std::string sin("abc");
- std::basic_string s(std::move(sin), std::allocator<char>{});
- ASSERT_SAME_TYPE(decltype(s), std::string);
- assert(s == "abc");
+}
+{ // Testing (12)
+ std::string sin("abc");
+ std::basic_string s(std::move(sin), std::allocator<char>{});
+ ASSERT_SAME_TYPE(decltype(s), std::string);
+ assert(s == "abc");
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- using WStr = std::basic_string<wchar_t,
- constexpr_char_traits<wchar_t>,
- test_allocator<wchar_t>>;
- WStr win(L"abcdef");
- std::basic_string w(std::move(win), test_allocator<wchar_t>{});
- ASSERT_SAME_TYPE(decltype(w), WStr);
- assert(w == L"abcdef");
+ using WStr = std::basic_string<wchar_t, constexpr_char_traits<wchar_t>, test_allocator<wchar_t>>;
+ WStr win(L"abcdef");
+ std::basic_string w(std::move(win), test_allocator<wchar_t>{});
+ ASSERT_SAME_TYPE(decltype(w), WStr);
+ assert(w == L"abcdef");
#endif
- }
- { // Testing (13) w/o allocator
- std::basic_string s({'a', 'b', 'c'});
- ASSERT_SAME_TYPE(decltype(s), std::string);
- assert(s == "abc");
+}
+{ // Testing (13) w/o allocator
+ std::basic_string s({'a', 'b', 'c'});
+ ASSERT_SAME_TYPE(decltype(s), std::string);
+ assert(s == "abc");
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- std::basic_string w({L'a', L'b', L'c'});
- ASSERT_SAME_TYPE(decltype(w), std::wstring);
- assert(w == L"abc");
+ std::basic_string w({L'a', L'b', L'c'});
+ ASSERT_SAME_TYPE(decltype(w), std::wstring);
+ assert(w == L"abc");
#endif
- }
- { // Testing (13) w/ allocator
- std::basic_string s({'a', 'b', 'c'}, test_allocator<char>{});
- ASSERT_SAME_TYPE(decltype(s), BStr<char, test_allocator<char>>);
- assert(s == "abc");
+}
+{ // Testing (13) w/ allocator
+ std::basic_string s({'a', 'b', 'c'}, test_allocator<char>{});
+ ASSERT_SAME_TYPE(decltype(s), BStr<char, test_allocator<char>>);
+ assert(s == "abc");
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- std::basic_string w({L'a', L'b', L'c'}, test_allocator<wchar_t>{});
- ASSERT_SAME_TYPE(decltype(w), BStr<wchar_t, test_allocator<wchar_t>>);
- assert(w == L"abc");
+ std::basic_string w({L'a', L'b', L'c'}, test_allocator<wchar_t>{});
+ ASSERT_SAME_TYPE(decltype(w), BStr<wchar_t, test_allocator<wchar_t>>);
+ assert(w == L"abc");
#endif
- }
- { // Testing (14) w/o allocator
- std::string_view sv("abc");
- std::basic_string s(sv);
- ASSERT_SAME_TYPE(decltype(s), std::string);
- assert(s == "abc");
+}
+{ // Testing (14) w/o allocator
+ std::string_view sv("abc");
+ std::basic_string s(sv);
+ ASSERT_SAME_TYPE(decltype(s), std::string);
+ assert(s == "abc");
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- using Expect = std::basic_string<wchar_t, constexpr_char_traits<wchar_t>>;
- std::basic_string_view<wchar_t, constexpr_char_traits<wchar_t>> BSV(L"abcdef");
- std::basic_string w(BSV);
- ASSERT_SAME_TYPE(decltype(w), Expect);
- assert(w == L"abcdef");
+ using Expect = std::basic_string<wchar_t, constexpr_char_traits<wchar_t>>;
+ std::basic_string_view<wchar_t, constexpr_char_traits<wchar_t>> BSV(L"abcdef");
+ std::basic_string w(BSV);
+ ASSERT_SAME_TYPE(decltype(w), Expect);
+ assert(w == L"abcdef");
#endif
- }
- { // Testing (14) w/ allocator
- using ExpectS = std::basic_string<char, std::char_traits<char>, test_allocator<char>>;
- std::string_view sv("abc");
- std::basic_string s(sv, test_allocator<char>{});
- ASSERT_SAME_TYPE(decltype(s), ExpectS);
- assert(s == "abc");
+}
+{ // Testing (14) w/ allocator
+ using ExpectS = std::basic_string<char, std::char_traits<char>, test_allocator<char>>;
+ std::string_view sv("abc");
+ std::basic_string s(sv, test_allocator<char>{});
+ ASSERT_SAME_TYPE(decltype(s), ExpectS);
+ assert(s == "abc");
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- using ExpectW = std::basic_string<wchar_t, constexpr_char_traits<wchar_t>,
- test_allocator<wchar_t>>;
- std::basic_string_view<wchar_t, constexpr_char_traits<wchar_t>> BSV(L"abcdef");
- std::basic_string w(BSV, test_allocator<wchar_t>{});
- ASSERT_SAME_TYPE(decltype(w), ExpectW);
- assert(w == L"abcdef");
+ using ExpectW = std::basic_string<wchar_t, constexpr_char_traits<wchar_t>, test_allocator<wchar_t>>;
+ std::basic_string_view<wchar_t, constexpr_char_traits<wchar_t>> BSV(L"abcdef");
+ std::basic_string w(BSV, test_allocator<wchar_t>{});
+ ASSERT_SAME_TYPE(decltype(w), ExpectW);
+ assert(w == L"abcdef");
#endif
- }
- { // Testing (15) w/o allocator
- std::string s0("abc");
- std::basic_string s(s0, 1, 1);
- ASSERT_SAME_TYPE(decltype(s), std::string);
- assert(s == "b");
+}
+{ // Testing (15) w/o allocator
+ std::string s0("abc");
+ std::basic_string s(s0, 1, 1);
+ ASSERT_SAME_TYPE(decltype(s), std::string);
+ assert(s == "b");
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- std::wstring w0(L"abcdef");
- std::basic_string w(w0, 2, 2);
- ASSERT_SAME_TYPE(decltype(w), std::wstring);
- assert(w == L"cd");
+ std::wstring w0(L"abcdef");
+ std::basic_string w(w0, 2, 2);
+ ASSERT_SAME_TYPE(decltype(w), std::wstring);
+ assert(w == L"cd");
#endif
- }
- { // Testing (15) w/ allocator
- using ExpectS = std::basic_string<char, std::char_traits<char>, test_allocator<char>>;
- ExpectS s0("abc");
- std::basic_string s(s0, 1, 1, test_allocator<char>{4});
- ASSERT_SAME_TYPE(decltype(s), ExpectS);
- assert(s == "b");
+}
+{ // Testing (15) w/ allocator
+ using ExpectS = std::basic_string<char, std::char_traits<char>, test_allocator<char>>;
+ ExpectS s0("abc");
+ std::basic_string s(s0, 1, 1, test_allocator<char>{4});
+ ASSERT_SAME_TYPE(decltype(s), ExpectS);
+ assert(s == "b");
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- using ExpectW = std::basic_string<wchar_t, std::char_traits<wchar_t>, test_allocator<wchar_t>>;
- ExpectW w0(L"abcdef");
- std::basic_string w(w0, 2, 2, test_allocator<wchar_t>{6});
- ASSERT_SAME_TYPE(decltype(w), ExpectW);
- assert(w == L"cd");
+ using ExpectW = std::basic_string<wchar_t, std::char_traits<wchar_t>, test_allocator<wchar_t>>;
+ ExpectW w0(L"abcdef");
+ std::basic_string w(w0, 2, 2, test_allocator<wchar_t>{6});
+ ASSERT_SAME_TYPE(decltype(w), ExpectW);
+ assert(w == L"cd");
#endif
- }
+}
- return true;
+return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.cons/initializer_list.pass.cpp b/libcxx/test/std/strings/basic.string/string.cons/initializer_list.pass.cpp
index fb003737525cbc5..78518aed7e59181 100644
--- a/libcxx/test/std/strings/basic.string/string.cons/initializer_list.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.cons/initializer_list.pass.cpp
@@ -48,8 +48,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.cons/initializer_list_assignment.pass.cpp b/libcxx/test/std/strings/basic.string/string.cons/initializer_list_assignment.pass.cpp
index 500a09bb3e98492..edc31eac0b07efc 100644
--- a/libcxx/test/std/strings/basic.string/string.cons/initializer_list_assignment.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.cons/initializer_list_assignment.pass.cpp
@@ -34,8 +34,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.cons/iter_alloc.pass.cpp b/libcxx/test/std/strings/basic.string/string.cons/iter_alloc.pass.cpp
index 273501880c49904..7cf2b194c6d1e68 100644
--- a/libcxx/test/std/strings/basic.string/string.cons/iter_alloc.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.cons/iter_alloc.pass.cpp
@@ -12,7 +12,6 @@
// basic_string(InputIterator begin, InputIterator end,
// const Allocator& a = Allocator()); // constexpr since C++20
-
#include <string>
#include <iterator>
#include <cassert>
@@ -24,42 +23,38 @@
#include "min_allocator.h"
template <class It>
-TEST_CONSTEXPR_CXX20 void
-test(It first, It last)
-{
- typedef typename std::iterator_traits<It>::value_type charT;
- typedef std::basic_string<charT, std::char_traits<charT>, test_allocator<charT> > S;
- typedef typename S::allocator_type A;
- S s2(first, last);
- LIBCPP_ASSERT(s2.__invariants());
- assert(s2.size() == static_cast<std::size_t>(std::distance(first, last)));
- unsigned i = 0;
- for (It it = first; it != last;) {
- assert(s2[i] == *it);
- ++it;
- ++i;
- }
- assert(s2.get_allocator() == A());
- assert(s2.capacity() >= s2.size());
+TEST_CONSTEXPR_CXX20 void test(It first, It last) {
+ typedef typename std::iterator_traits<It>::value_type charT;
+ typedef std::basic_string<charT, std::char_traits<charT>, test_allocator<charT> > S;
+ typedef typename S::allocator_type A;
+ S s2(first, last);
+ LIBCPP_ASSERT(s2.__invariants());
+ assert(s2.size() == static_cast<std::size_t>(std::distance(first, last)));
+ unsigned i = 0;
+ for (It it = first; it != last;) {
+ assert(s2[i] == *it);
+ ++it;
+ ++i;
+ }
+ assert(s2.get_allocator() == A());
+ assert(s2.capacity() >= s2.size());
}
template <class It, class A>
-TEST_CONSTEXPR_CXX20 void
-test(It first, It last, const A& a)
-{
- typedef typename std::iterator_traits<It>::value_type charT;
- typedef std::basic_string<charT, std::char_traits<charT>, A> S;
- S s2(first, last, a);
- LIBCPP_ASSERT(s2.__invariants());
- assert(s2.size() == static_cast<std::size_t>(std::distance(first, last)));
- unsigned i = 0;
- for (It it = first; it != last;) {
- assert(s2[i] == *it);
- ++it;
- ++i;
- }
- assert(s2.get_allocator() == a);
- assert(s2.capacity() >= s2.size());
+TEST_CONSTEXPR_CXX20 void test(It first, It last, const A& a) {
+ typedef typename std::iterator_traits<It>::value_type charT;
+ typedef std::basic_string<charT, std::char_traits<charT>, A> S;
+ S s2(first, last, a);
+ LIBCPP_ASSERT(s2.__invariants());
+ assert(s2.size() == static_cast<std::size_t>(std::distance(first, last)));
+ unsigned i = 0;
+ for (It it = first; it != last;) {
+ assert(s2[i] == *it);
+ ++it;
+ ++i;
+ }
+ assert(s2.get_allocator() == a);
+ assert(s2.capacity() >= s2.size());
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -70,26 +65,26 @@ TEST_CONSTEXPR_CXX20 bool test() {
test(s, s);
test(s, s, A(2));
- test(s, s+1);
- test(s, s+1, A(2));
+ test(s, s + 1);
+ test(s, s + 1, A(2));
- test(s, s+10);
- test(s, s+10, A(2));
+ test(s, s + 10);
+ test(s, s + 10, A(2));
- test(s, s+50);
- test(s, s+50, A(2));
+ test(s, s + 50);
+ test(s, s + 50, A(2));
test(cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s));
test(cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s), A(2));
- test(cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s+1));
- test(cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s+1), A(2));
+ test(cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s + 1));
+ test(cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s + 1), A(2));
- test(cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s+10));
- test(cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s+10), A(2));
+ test(cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s + 10));
+ test(cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s + 10), A(2));
- test(cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s+50));
- test(cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s+50), A(2));
+ test(cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s + 50));
+ test(cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s + 50), A(2));
}
#if TEST_STD_VER >= 11
{
@@ -99,43 +94,37 @@ TEST_CONSTEXPR_CXX20 bool test() {
test(s, s);
test(s, s, A());
- test(s, s+1);
- test(s, s+1, A());
+ test(s, s + 1);
+ test(s, s + 1, A());
- test(s, s+10);
- test(s, s+10, A());
+ test(s, s + 10);
+ test(s, s + 10, A());
- test(s, s+50);
- test(s, s+50, A());
+ test(s, s + 50);
+ test(s, s + 50, A());
test(cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s));
test(cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s), A());
- test(cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s+1));
- test(cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s+1), A());
+ test(cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s + 1));
+ test(cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s + 1), A());
- test(cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s+10));
- test(cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s+10), A());
+ test(cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s + 10));
+ test(cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s + 10), A());
- test(cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s+50));
- test(cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s+50), A());
+ test(cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s + 50));
+ test(cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s + 50), A());
}
#endif
{
- static_assert((!std::is_constructible<std::string, std::string,
- std::string>::value),
- "");
- static_assert(
- (!std::is_constructible<std::string, std::string, std::string,
- std::allocator<char> >::value),
- "");
+ static_assert((!std::is_constructible<std::string, std::string, std::string>::value), "");
+ static_assert((!std::is_constructible<std::string, std::string, std::string, std::allocator<char> >::value), "");
}
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.cons/iter_alloc_deduction.pass.cpp b/libcxx/test/std/strings/basic.string/string.cons/iter_alloc_deduction.pass.cpp
index d90d3f598bc3f49..65762ccf89d9304 100644
--- a/libcxx/test/std/strings/basic.string/string.cons/iter_alloc_deduction.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.cons/iter_alloc_deduction.pass.cpp
@@ -34,74 +34,77 @@ class NotAnIterator {};
using NotAnInputIterator = std::back_insert_iterator<std::basic_string<char16_t>>;
template <typename T>
-struct NotAnAllocator { typedef T value_type; };
+struct NotAnAllocator {
+ typedef T value_type;
+};
template <class Iter, class Alloc, class = void>
-struct CanDeduce : std::false_type { };
+struct CanDeduce : std::false_type {};
template <class Iter, class Alloc>
-struct CanDeduce<Iter, Alloc, decltype((void)
- std::basic_string{std::declval<Iter>(), std::declval<Iter>(), std::declval<Alloc>()}
-)> : std::true_type { };
+struct CanDeduce<Iter,
+ Alloc,
+ decltype((void)std::basic_string{std::declval<Iter>(), std::declval<Iter>(), std::declval<Alloc>()})>
+ : std::true_type {};
-static_assert( CanDeduce<char*, std::allocator<char>>::value);
+static_assert(CanDeduce<char*, std::allocator<char>>::value);
static_assert(!CanDeduce<NotAnIterator, std::allocator<char>>::value);
static_assert(!CanDeduce<NotAnInputIterator, std::allocator<char16_t>>::value);
static_assert(!CanDeduce<char*, NotAnAllocator<char>>::value);
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
-static_assert( CanDeduce<wchar_t*, std::allocator<wchar_t>>::value);
+static_assert(CanDeduce<wchar_t*, std::allocator<wchar_t>>::value);
static_assert(!CanDeduce<wchar_t const*, NotAnAllocator<wchar_t>>::value);
#endif
TEST_CONSTEXPR_CXX20 bool test() {
{
const char* s = "12345678901234";
- std::basic_string s1(s, s+10); // Can't use {} here
- using S = decltype(s1); // what type did we get?
- static_assert(std::is_same_v<S::value_type, char>, "");
- static_assert(std::is_same_v<S::traits_type, std::char_traits<char>>, "");
- static_assert(std::is_same_v<S::allocator_type, std::allocator<char>>, "");
+ std::basic_string s1(s, s + 10); // Can't use {} here
+ using S = decltype(s1); // what type did we get?
+ static_assert(std::is_same_v<S::value_type, char>, "");
+ static_assert(std::is_same_v<S::traits_type, std::char_traits<char>>, "");
+ static_assert(std::is_same_v<S::allocator_type, std::allocator<char>>, "");
assert(s1.size() == 10);
assert(s1.compare(0, s1.size(), s, s1.size()) == 0);
}
{
const char* s = "12345678901234";
- std::basic_string s1{s, s+10, std::allocator<char>{}};
+ std::basic_string s1{s, s + 10, std::allocator<char>{}};
using S = decltype(s1); // what type did we get?
- static_assert(std::is_same_v<S::value_type, char>, "");
- static_assert(std::is_same_v<S::traits_type, std::char_traits<char>>, "");
- static_assert(std::is_same_v<S::allocator_type, std::allocator<char>>, "");
+ static_assert(std::is_same_v<S::value_type, char>, "");
+ static_assert(std::is_same_v<S::traits_type, std::char_traits<char>>, "");
+ static_assert(std::is_same_v<S::allocator_type, std::allocator<char>>, "");
assert(s1.size() == 10);
assert(s1.compare(0, s1.size(), s, s1.size()) == 0);
}
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
{
const wchar_t* s = L"12345678901234";
- std::basic_string s1{s, s+10, test_allocator<wchar_t>{}};
+ std::basic_string s1{s, s + 10, test_allocator<wchar_t>{}};
using S = decltype(s1); // what type did we get?
- static_assert(std::is_same_v<S::value_type, wchar_t>, "");
- static_assert(std::is_same_v<S::traits_type, std::char_traits<wchar_t>>, "");
- static_assert(std::is_same_v<S::allocator_type, test_allocator<wchar_t>>, "");
+ static_assert(std::is_same_v<S::value_type, wchar_t>, "");
+ static_assert(std::is_same_v<S::traits_type, std::char_traits<wchar_t>>, "");
+ static_assert(std::is_same_v<S::allocator_type, test_allocator<wchar_t>>, "");
assert(s1.size() == 10);
assert(s1.compare(0, s1.size(), s, s1.size()) == 0);
}
#endif
{
const char16_t* s = u"12345678901234";
- std::basic_string s1{s, s+10, min_allocator<char16_t>{}};
+ std::basic_string s1{s, s + 10, min_allocator<char16_t>{}};
using S = decltype(s1); // what type did we get?
- static_assert(std::is_same_v<S::value_type, char16_t>, "");
- static_assert(std::is_same_v<S::traits_type, std::char_traits<char16_t>>, "");
- static_assert(std::is_same_v<S::allocator_type, min_allocator<char16_t>>, "");
+ static_assert(std::is_same_v<S::value_type, char16_t>, "");
+ static_assert(std::is_same_v<S::traits_type, std::char_traits<char16_t>>, "");
+ static_assert(std::is_same_v<S::allocator_type, min_allocator<char16_t>>, "");
assert(s1.size() == 10);
assert(s1.compare(0, s1.size(), s, s1.size()) == 0);
}
{
const char32_t* s = U"12345678901234";
- std::basic_string s1{s, s+10, explicit_allocator<char32_t>{}};
+ std::basic_string s1{s, s + 10, explicit_allocator<char32_t>{}};
using S = decltype(s1); // what type did we get?
- static_assert(std::is_same_v<S::value_type, char32_t>, "");
- static_assert(std::is_same_v<S::traits_type, std::char_traits<char32_t>>, "");
+ static_assert(std::is_same_v<S::value_type, char32_t>, "");
+ static_assert(std::is_same_v<S::traits_type, std::char_traits<char32_t>>, "");
static_assert(std::is_same_v<S::allocator_type, explicit_allocator<char32_t>>, "");
assert(s1.size() == 10);
assert(s1.compare(0, s1.size(), s, s1.size()) == 0);
@@ -110,8 +113,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.cons/move.pass.cpp b/libcxx/test/std/strings/basic.string/string.cons/move.pass.cpp
index 336ed40ad632743..29579b26df71d82 100644
--- a/libcxx/test/std/strings/basic.string/string.cons/move.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.cons/move.pass.cpp
@@ -20,16 +20,14 @@
#include "min_allocator.h"
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(S s0)
-{
- S s1 = s0;
- S s2 = std::move(s0);
- LIBCPP_ASSERT(s2.__invariants());
- LIBCPP_ASSERT(s0.__invariants());
- assert(s2 == s1);
- assert(s2.capacity() >= s2.size());
- assert(s2.get_allocator() == s1.get_allocator());
+TEST_CONSTEXPR_CXX20 void test(S s0) {
+ S s1 = s0;
+ S s2 = std::move(s0);
+ LIBCPP_ASSERT(s2.__invariants());
+ LIBCPP_ASSERT(s0.__invariants());
+ assert(s2 == s1);
+ assert(s2.capacity() >= s2.size());
+ assert(s2.get_allocator() == s1.get_allocator());
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -51,8 +49,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.cons/move_alloc.pass.cpp b/libcxx/test/std/strings/basic.string/string.cons/move_alloc.pass.cpp
index a6cf5fb1ab4e4fb..0e5c72192adea64 100644
--- a/libcxx/test/std/strings/basic.string/string.cons/move_alloc.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.cons/move_alloc.pass.cpp
@@ -20,16 +20,14 @@
#include "min_allocator.h"
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(S s0, const typename S::allocator_type& a)
-{
- S s1 = s0;
- S s2(std::move(s0), a);
- LIBCPP_ASSERT(s2.__invariants());
- LIBCPP_ASSERT(s0.__invariants());
- assert(s2 == s1);
- assert(s2.capacity() >= s2.size());
- assert(s2.get_allocator() == a);
+TEST_CONSTEXPR_CXX20 void test(S s0, const typename S::allocator_type& a) {
+ S s1 = s0;
+ S s2(std::move(s0), a);
+ LIBCPP_ASSERT(s2.__invariants());
+ LIBCPP_ASSERT(s0.__invariants());
+ assert(s2 == s1);
+ assert(s2.capacity() >= s2.size());
+ assert(s2.get_allocator() == a);
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -38,35 +36,35 @@ TEST_CONSTEXPR_CXX20 bool test() {
typedef test_allocator<char> A;
typedef std::basic_string<char, std::char_traits<char>, A> S;
#if TEST_STD_VER > 14
- static_assert((noexcept(S{})), "" );
+ static_assert((noexcept(S{})), "");
#elif TEST_STD_VER >= 11
- static_assert((noexcept(S()) == std::is_nothrow_move_constructible<A>::value), "" );
+ static_assert((noexcept(S()) == std::is_nothrow_move_constructible<A>::value), "");
#endif
test(S(), A(3, &alloc_stats));
test(S("1"), A(5, &alloc_stats));
test(S("1234567890123456789012345678901234567890123456789012345678901234567890"), A(7, &alloc_stats));
}
- int alloc_count = alloc_stats.alloc_count;
+ int alloc_count = alloc_stats.alloc_count;
{
typedef test_allocator<char> A;
typedef std::basic_string<char, std::char_traits<char>, A> S;
#if TEST_STD_VER > 14
- static_assert((noexcept(S{})), "" );
+ static_assert((noexcept(S{})), "");
#elif TEST_STD_VER >= 11
- static_assert((noexcept(S()) == std::is_nothrow_move_constructible<A>::value), "" );
+ static_assert((noexcept(S()) == std::is_nothrow_move_constructible<A>::value), "");
#endif
- S s1 ( "Twas brillig, and the slivy toves did gyre and gymbal in the wabe", A(&alloc_stats));
- S s2 (std::move(s1), A(1, &alloc_stats));
+ S s1("Twas brillig, and the slivy toves did gyre and gymbal in the wabe", A(&alloc_stats));
+ S s2(std::move(s1), A(1, &alloc_stats));
}
- assert ( alloc_stats.alloc_count == alloc_count );
+ assert(alloc_stats.alloc_count == alloc_count);
{
typedef min_allocator<char> A;
typedef std::basic_string<char, std::char_traits<char>, A> S;
#if TEST_STD_VER > 14
- static_assert((noexcept(S{})), "" );
+ static_assert((noexcept(S{})), "");
#elif TEST_STD_VER >= 11
- static_assert((noexcept(S()) == std::is_nothrow_move_constructible<A>::value), "" );
+ static_assert((noexcept(S()) == std::is_nothrow_move_constructible<A>::value), "");
#endif
test(S(), A());
test(S("1"), A());
@@ -76,8 +74,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.cons/move_assign_noexcept.pass.cpp b/libcxx/test/std/strings/basic.string/string.cons/move_assign_noexcept.pass.cpp
index 1e24c20b4b101c8..bba86b3acffee8b 100644
--- a/libcxx/test/std/strings/basic.string/string.cons/move_assign_noexcept.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.cons/move_assign_noexcept.pass.cpp
@@ -27,39 +27,36 @@
#include "test_allocator.h"
template <class T>
-struct some_alloc
-{
- typedef T value_type;
- some_alloc(const some_alloc&);
- T *allocate(std::size_t);
+struct some_alloc {
+ typedef T value_type;
+ some_alloc(const some_alloc&);
+ T* allocate(std::size_t);
};
template <class T>
-struct some_alloc2
-{
- typedef T value_type;
+struct some_alloc2 {
+ typedef T value_type;
- some_alloc2() {}
- some_alloc2(const some_alloc2&);
- T *allocate(std::size_t);
- void deallocate(void*, unsigned) {}
+ some_alloc2() {}
+ some_alloc2(const some_alloc2&);
+ T* allocate(std::size_t);
+ void deallocate(void*, unsigned) {}
- typedef std::false_type propagate_on_container_move_assignment;
- typedef std::true_type is_always_equal;
+ typedef std::false_type propagate_on_container_move_assignment;
+ typedef std::true_type is_always_equal;
};
template <class T>
-struct some_alloc3
-{
- typedef T value_type;
+struct some_alloc3 {
+ typedef T value_type;
- some_alloc3() {}
- some_alloc3(const some_alloc3&);
- T *allocate(std::size_t);
- void deallocate(void*, unsigned) {}
+ some_alloc3() {}
+ some_alloc3(const some_alloc3&);
+ T* allocate(std::size_t);
+ void deallocate(void*, unsigned) {}
- typedef std::false_type propagate_on_container_move_assignment;
- typedef std::false_type is_always_equal;
+ typedef std::false_type propagate_on_container_move_assignment;
+ typedef std::false_type is_always_equal;
};
TEST_CONSTEXPR_CXX20 bool test() {
@@ -75,16 +72,16 @@ TEST_CONSTEXPR_CXX20 bool test() {
typedef std::basic_string<char, std::char_traits<char>, some_alloc<char>> C;
#if TEST_STD_VER > 14
// if the allocators are always equal, then the move assignment can be noexcept
- static_assert( std::is_nothrow_move_assignable<C>::value, "");
+ static_assert(std::is_nothrow_move_assignable<C>::value, "");
#else
- static_assert(!std::is_nothrow_move_assignable<C>::value, "");
+ static_assert(!std::is_nothrow_move_assignable<C>::value, "");
#endif
}
#if TEST_STD_VER > 14
{
// POCMA is false, always equal
typedef std::basic_string<char, std::char_traits<char>, some_alloc2<char>> C;
- static_assert( std::is_nothrow_move_assignable<C>::value, "");
+ static_assert(std::is_nothrow_move_assignable<C>::value, "");
}
{
// POCMA is false, not always equal
@@ -96,8 +93,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.cons/move_assignment.pass.cpp b/libcxx/test/std/strings/basic.string/string.cons/move_assignment.pass.cpp
index bdae97a332f20f3..89cb44d62ef2b6c 100644
--- a/libcxx/test/std/strings/basic.string/string.cons/move_assignment.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.cons/move_assignment.pass.cpp
@@ -21,15 +21,13 @@
#include "min_allocator.h"
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(S s1, S s2)
-{
- S s0 = s2;
- s1 = std::move(s2);
- LIBCPP_ASSERT(s1.__invariants());
- LIBCPP_ASSERT(s2.__invariants());
- assert(s1 == s0);
- assert(s1.capacity() >= s1.size());
+TEST_CONSTEXPR_CXX20 void test(S s1, S s2) {
+ S s0 = s2;
+ s1 = std::move(s2);
+ LIBCPP_ASSERT(s1.__invariants());
+ LIBCPP_ASSERT(s2.__invariants());
+ assert(s1 == s0);
+ assert(s1.capacity() >= s1.size());
}
template <class S>
@@ -40,15 +38,13 @@ TEST_CONSTEXPR_CXX20 void test_string() {
test(S("1"), S("2"));
test(S("1"), S("2"));
- test(S(),
- S("abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz"));
- test(S("123456789"),
- S("abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz"));
+ test(S(), S("abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz"));
+ test(S("123456789"), S("abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz"));
test(S("1234567890123456789012345678901234567890123456789012345678901234567890"),
- S("abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz"));
+ S("abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz"));
test(S("1234567890123456789012345678901234567890123456789012345678901234567890"
- "1234567890123456789012345678901234567890123456789012345678901234567890"),
- S("abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz"));
+ "1234567890123456789012345678901234567890123456789012345678901234567890"),
+ S("abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz"));
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -60,8 +56,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.cons/move_noexcept.pass.cpp b/libcxx/test/std/strings/basic.string/string.cons/move_noexcept.pass.cpp
index 5d88f7f18dfc8c3..d807cac2c72c848 100644
--- a/libcxx/test/std/strings/basic.string/string.cons/move_noexcept.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.cons/move_noexcept.pass.cpp
@@ -21,24 +21,23 @@
#include "test_macros.h"
#include "test_allocator.h"
-int main(int, char**)
-{
- {
- typedef std::string C;
- static_assert(std::is_nothrow_move_constructible<C>::value, "");
- }
- {
- typedef std::basic_string<char, std::char_traits<char>, test_allocator<char>> C;
- static_assert(std::is_nothrow_move_constructible<C>::value, "");
- }
- {
- typedef std::basic_string<char, std::char_traits<char>, limited_allocator<char, 10>> C;
+int main(int, char**) {
+ {
+ typedef std::string C;
+ static_assert(std::is_nothrow_move_constructible<C>::value, "");
+ }
+ {
+ typedef std::basic_string<char, std::char_traits<char>, test_allocator<char>> C;
+ static_assert(std::is_nothrow_move_constructible<C>::value, "");
+ }
+ {
+ typedef std::basic_string<char, std::char_traits<char>, limited_allocator<char, 10>> C;
#if TEST_STD_VER <= 14
- static_assert(!std::is_nothrow_move_constructible<C>::value, "");
+ static_assert(!std::is_nothrow_move_constructible<C>::value, "");
#else
- static_assert( std::is_nothrow_move_constructible<C>::value, "");
+ static_assert(std::is_nothrow_move_constructible<C>::value, "");
#endif
- }
+ }
return 0;
}
diff --git a/libcxx/test/std/strings/basic.string/string.cons/pointer_alloc.pass.cpp b/libcxx/test/std/strings/basic.string/string.cons/pointer_alloc.pass.cpp
index b466eb14bd832f8..c7e31f5e64e0466 100644
--- a/libcxx/test/std/strings/basic.string/string.cons/pointer_alloc.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.cons/pointer_alloc.pass.cpp
@@ -21,38 +21,34 @@
#include "min_allocator.h"
template <class charT>
-TEST_CONSTEXPR_CXX20 void
-test(const charT* s)
-{
- typedef std::basic_string<charT, std::char_traits<charT>, test_allocator<charT> > S;
- typedef typename S::traits_type T;
- typedef typename S::allocator_type A;
- std::size_t n = T::length(s);
- S s2(s);
- LIBCPP_ASSERT(s2.__invariants());
- assert(s2.size() == n);
- assert(T::compare(s2.data(), s, n) == 0);
- assert(s2.get_allocator() == A());
- assert(s2.capacity() >= s2.size());
+TEST_CONSTEXPR_CXX20 void test(const charT* s) {
+ typedef std::basic_string<charT, std::char_traits<charT>, test_allocator<charT> > S;
+ typedef typename S::traits_type T;
+ typedef typename S::allocator_type A;
+ std::size_t n = T::length(s);
+ S s2(s);
+ LIBCPP_ASSERT(s2.__invariants());
+ assert(s2.size() == n);
+ assert(T::compare(s2.data(), s, n) == 0);
+ assert(s2.get_allocator() == A());
+ assert(s2.capacity() >= s2.size());
}
template <class charT, class A>
-TEST_CONSTEXPR_CXX20 void
-test(const charT* s, const A& a)
-{
- typedef std::basic_string<charT, std::char_traits<charT>, A> S;
- typedef typename S::traits_type T;
- std::size_t n = T::length(s);
- S s2(s, a);
- LIBCPP_ASSERT(s2.__invariants());
- assert(s2.size() == n);
- assert(T::compare(s2.data(), s, n) == 0);
- assert(s2.get_allocator() == a);
- assert(s2.capacity() >= s2.size());
+TEST_CONSTEXPR_CXX20 void test(const charT* s, const A& a) {
+ typedef std::basic_string<charT, std::char_traits<charT>, A> S;
+ typedef typename S::traits_type T;
+ std::size_t n = T::length(s);
+ S s2(s, a);
+ LIBCPP_ASSERT(s2.__invariants());
+ assert(s2.size() == n);
+ assert(T::compare(s2.data(), s, n) == 0);
+ assert(s2.get_allocator() == a);
+ assert(s2.capacity() >= s2.size());
}
TEST_CONSTEXPR_CXX20 bool test() {
- {
+ {
typedef test_allocator<char> A;
test("");
@@ -66,9 +62,9 @@ TEST_CONSTEXPR_CXX20 bool test() {
test("123456798012345679801234567980123456798012345679801234567980");
test("123456798012345679801234567980123456798012345679801234567980", A(2));
- }
+ }
#if TEST_STD_VER >= 11
- {
+ {
typedef min_allocator<char> A;
test("");
@@ -82,14 +78,13 @@ TEST_CONSTEXPR_CXX20 bool test() {
test("123456798012345679801234567980123456798012345679801234567980");
test("123456798012345679801234567980123456798012345679801234567980", A());
- }
+ }
#endif
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.cons/pointer_assignment.pass.cpp b/libcxx/test/std/strings/basic.string/string.cons/pointer_assignment.pass.cpp
index b8318dec6c061a8..4b3027a2aad1183 100644
--- a/libcxx/test/std/strings/basic.string/string.cons/pointer_assignment.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.cons/pointer_assignment.pass.cpp
@@ -18,15 +18,13 @@
#include "min_allocator.h"
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(S s1, const typename S::value_type* s2)
-{
- typedef typename S::traits_type T;
- s1 = s2;
- LIBCPP_ASSERT(s1.__invariants());
- assert(s1.size() == T::length(s2));
- assert(T::compare(s1.data(), s2, s1.size()) == 0);
- assert(s1.capacity() >= s1.size());
+TEST_CONSTEXPR_CXX20 void test(S s1, const typename S::value_type* s2) {
+ typedef typename S::traits_type T;
+ s1 = s2;
+ LIBCPP_ASSERT(s1.__invariants());
+ assert(s1.size() == T::length(s2));
+ assert(T::compare(s1.data(), s2, s1.size()) == 0);
+ assert(s1.capacity() >= s1.size());
}
template <class S>
@@ -37,15 +35,13 @@ TEST_CONSTEXPR_CXX20 void test_string() {
test(S("1"), "2");
test(S("1"), "2");
- test(S(),
- "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz");
- test(S("123456789"),
- "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz");
+ test(S(), "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz");
+ test(S("123456789"), "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz");
test(S("1234567890123456789012345678901234567890123456789012345678901234567890"),
- "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz");
+ "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz");
test(S("1234567890123456789012345678901234567890123456789012345678901234567890"
- "1234567890123456789012345678901234567890123456789012345678901234567890"),
- "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz");
+ "1234567890123456789012345678901234567890123456789012345678901234567890"),
+ "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz");
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -57,8 +53,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.cons/pointer_size_alloc.pass.cpp b/libcxx/test/std/strings/basic.string/string.cons/pointer_size_alloc.pass.cpp
index d98771c9129b6f8..a85ef27adb8de90 100644
--- a/libcxx/test/std/strings/basic.string/string.cons/pointer_size_alloc.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.cons/pointer_size_alloc.pass.cpp
@@ -20,32 +20,28 @@
#include "min_allocator.h"
template <class charT>
-TEST_CONSTEXPR_CXX20 void
-test(const charT* s, unsigned n)
-{
- typedef std::basic_string<charT, std::char_traits<charT>, test_allocator<charT> > S;
- typedef typename S::traits_type T;
- typedef typename S::allocator_type A;
- S s2(s, n);
- LIBCPP_ASSERT(s2.__invariants());
- assert(s2.size() == n);
- assert(T::compare(s2.data(), s, n) == 0);
- assert(s2.get_allocator() == A());
- assert(s2.capacity() >= s2.size());
+TEST_CONSTEXPR_CXX20 void test(const charT* s, unsigned n) {
+ typedef std::basic_string<charT, std::char_traits<charT>, test_allocator<charT> > S;
+ typedef typename S::traits_type T;
+ typedef typename S::allocator_type A;
+ S s2(s, n);
+ LIBCPP_ASSERT(s2.__invariants());
+ assert(s2.size() == n);
+ assert(T::compare(s2.data(), s, n) == 0);
+ assert(s2.get_allocator() == A());
+ assert(s2.capacity() >= s2.size());
}
template <class charT, class A>
-TEST_CONSTEXPR_CXX20 void
-test(const charT* s, unsigned n, const A& a)
-{
- typedef std::basic_string<charT, std::char_traits<charT>, A> S;
- typedef typename S::traits_type T;
- S s2(s, n, a);
- LIBCPP_ASSERT(s2.__invariants());
- assert(s2.size() == n);
- assert(T::compare(s2.data(), s, n) == 0);
- assert(s2.get_allocator() == a);
- assert(s2.capacity() >= s2.size());
+TEST_CONSTEXPR_CXX20 void test(const charT* s, unsigned n, const A& a) {
+ typedef std::basic_string<charT, std::char_traits<charT>, A> S;
+ typedef typename S::traits_type T;
+ S s2(s, n, a);
+ LIBCPP_ASSERT(s2.__invariants());
+ assert(s2.size() == n);
+ assert(T::compare(s2.data(), s, n) == 0);
+ assert(s2.get_allocator() == a);
+ assert(s2.capacity() >= s2.size());
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -83,7 +79,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
#endif
#if TEST_STD_VER >= 11
- { // LWG 2946
+ { // LWG 2946
std::string s({"abc", 1});
assert(s.size() == 1);
assert(s == "a");
@@ -93,8 +89,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.cons/size_char_alloc.pass.cpp b/libcxx/test/std/strings/basic.string/string.cons/size_char_alloc.pass.cpp
index c53d6c8cae031de..8d56cfa628f72a2 100644
--- a/libcxx/test/std/strings/basic.string/string.cons/size_char_alloc.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.cons/size_char_alloc.pass.cpp
@@ -21,63 +21,55 @@
#include "min_allocator.h"
template <class charT>
-TEST_CONSTEXPR_CXX20 void
-test(unsigned n, charT c)
-{
- typedef std::basic_string<charT, std::char_traits<charT>, test_allocator<charT> > S;
- typedef typename S::allocator_type A;
- S s2(n, c);
- LIBCPP_ASSERT(s2.__invariants());
- assert(s2.size() == n);
- for (unsigned i = 0; i < n; ++i)
- assert(s2[i] == c);
- assert(s2.get_allocator() == A());
- assert(s2.capacity() >= s2.size());
+TEST_CONSTEXPR_CXX20 void test(unsigned n, charT c) {
+ typedef std::basic_string<charT, std::char_traits<charT>, test_allocator<charT> > S;
+ typedef typename S::allocator_type A;
+ S s2(n, c);
+ LIBCPP_ASSERT(s2.__invariants());
+ assert(s2.size() == n);
+ for (unsigned i = 0; i < n; ++i)
+ assert(s2[i] == c);
+ assert(s2.get_allocator() == A());
+ assert(s2.capacity() >= s2.size());
}
template <class charT, class A>
-TEST_CONSTEXPR_CXX20 void
-test(unsigned n, charT c, const A& a)
-{
- typedef std::basic_string<charT, std::char_traits<charT>, A> S;
- S s2(n, c, a);
- LIBCPP_ASSERT(s2.__invariants());
- assert(s2.size() == n);
- for (unsigned i = 0; i < n; ++i)
- assert(s2[i] == c);
- assert(s2.get_allocator() == a);
- assert(s2.capacity() >= s2.size());
+TEST_CONSTEXPR_CXX20 void test(unsigned n, charT c, const A& a) {
+ typedef std::basic_string<charT, std::char_traits<charT>, A> S;
+ S s2(n, c, a);
+ LIBCPP_ASSERT(s2.__invariants());
+ assert(s2.size() == n);
+ for (unsigned i = 0; i < n; ++i)
+ assert(s2[i] == c);
+ assert(s2.get_allocator() == a);
+ assert(s2.capacity() >= s2.size());
}
template <class Tp>
-TEST_CONSTEXPR_CXX20 void
-test(Tp n, Tp c)
-{
- typedef char charT;
- typedef std::basic_string<charT, std::char_traits<charT>, test_allocator<charT> > S;
- typedef typename S::allocator_type A;
- S s2(n, c);
- LIBCPP_ASSERT(s2.__invariants());
- assert(s2.size() == static_cast<std::size_t>(n));
- for (int i = 0; i < n; ++i)
- assert(s2[i] == c);
- assert(s2.get_allocator() == A());
- assert(s2.capacity() >= s2.size());
+TEST_CONSTEXPR_CXX20 void test(Tp n, Tp c) {
+ typedef char charT;
+ typedef std::basic_string<charT, std::char_traits<charT>, test_allocator<charT> > S;
+ typedef typename S::allocator_type A;
+ S s2(n, c);
+ LIBCPP_ASSERT(s2.__invariants());
+ assert(s2.size() == static_cast<std::size_t>(n));
+ for (int i = 0; i < n; ++i)
+ assert(s2[i] == c);
+ assert(s2.get_allocator() == A());
+ assert(s2.capacity() >= s2.size());
}
template <class Tp, class A>
-TEST_CONSTEXPR_CXX20 void
-test(Tp n, Tp c, const A& a)
-{
- typedef char charT;
- typedef std::basic_string<charT, std::char_traits<charT>, A> S;
- S s2(n, c, a);
- LIBCPP_ASSERT(s2.__invariants());
- assert(s2.size() == static_cast<std::size_t>(n));
- for (int i = 0; i < n; ++i)
- assert(s2[i] == c);
- assert(s2.get_allocator() == a);
- assert(s2.capacity() >= s2.size());
+TEST_CONSTEXPR_CXX20 void test(Tp n, Tp c, const A& a) {
+ typedef char charT;
+ typedef std::basic_string<charT, std::char_traits<charT>, A> S;
+ S s2(n, c, a);
+ LIBCPP_ASSERT(s2.__invariants());
+ assert(s2.size() == static_cast<std::size_t>(n));
+ for (int i = 0; i < n; ++i)
+ assert(s2[i] == c);
+ assert(s2.get_allocator() == a);
+ assert(s2.capacity() >= s2.size());
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -123,8 +115,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.cons/string_view.pass.cpp b/libcxx/test/std/strings/basic.string/string.cons/string_view.pass.cpp
index 125bd40c7339bf1..d3804479612fac0 100644
--- a/libcxx/test/std/strings/basic.string/string.cons/string_view.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.cons/string_view.pass.cpp
@@ -25,12 +25,10 @@ static_assert(!std::is_convertible<std::string_view, std::string const&>::value,
static_assert(!std::is_convertible<std::string_view, std::string>::value, "");
template <class charT>
-TEST_CONSTEXPR_CXX20 void
-test(std::basic_string_view<charT> sv)
-{
- typedef std::basic_string<charT, std::char_traits<charT>, test_allocator<charT> > S;
- typedef typename S::traits_type T;
- typedef typename S::allocator_type A;
+TEST_CONSTEXPR_CXX20 void test(std::basic_string_view<charT> sv) {
+ typedef std::basic_string<charT, std::char_traits<charT>, test_allocator<charT> > S;
+ typedef typename S::traits_type T;
+ typedef typename S::allocator_type A;
{
S s2(sv);
LIBCPP_ASSERT(s2.__invariants());
@@ -51,11 +49,9 @@ test(std::basic_string_view<charT> sv)
}
template <class charT, class A>
-TEST_CONSTEXPR_CXX20 void
-test(std::basic_string_view<charT> sv, const A& a)
-{
- typedef std::basic_string<charT, std::char_traits<charT>, A> S;
- typedef typename S::traits_type T;
+TEST_CONSTEXPR_CXX20 void test(std::basic_string_view<charT> sv, const A& a) {
+ typedef std::basic_string<charT, std::char_traits<charT>, A> S;
+ typedef typename S::traits_type T;
{
S s2(sv, a);
LIBCPP_ASSERT(s2.__invariants());
@@ -84,7 +80,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
test(SV(""), A(2));
test(SV("1"));
- test(SV("1") ,A(2));
+ test(SV("1"), A(2));
test(SV("1234567980"));
test(SV("1234567980"), A(2));
@@ -101,7 +97,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
test(SV(""), A());
test(SV("1"));
- test(SV("1") ,A());
+ test(SV("1"), A());
test(SV("1234567980"));
test(SV("1234567980"), A());
@@ -114,8 +110,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.cons/string_view_assignment.pass.cpp b/libcxx/test/std/strings/basic.string/string.cons/string_view_assignment.pass.cpp
index ed09a1741d198f5..3c88f9e40fc0b3b 100644
--- a/libcxx/test/std/strings/basic.string/string.cons/string_view_assignment.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.cons/string_view_assignment.pass.cpp
@@ -17,15 +17,13 @@
#include "min_allocator.h"
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 void
-test(S s1, SV sv)
-{
- typedef typename S::traits_type T;
- s1 = sv;
- LIBCPP_ASSERT(s1.__invariants());
- assert(s1.size() == sv.size());
- assert(T::compare(s1.data(), sv.data(), s1.size()) == 0);
- assert(s1.capacity() >= s1.size());
+TEST_CONSTEXPR_CXX20 void test(S s1, SV sv) {
+ typedef typename S::traits_type T;
+ s1 = sv;
+ LIBCPP_ASSERT(s1.__invariants());
+ assert(s1.size() == sv.size());
+ assert(T::compare(s1.data(), sv.data(), s1.size()) == 0);
+ assert(s1.capacity() >= s1.size());
}
template <class S>
@@ -37,15 +35,13 @@ TEST_CONSTEXPR_CXX20 void test_string() {
test(S("1"), SV("2"));
test(S("1"), SV("2"));
- test(S(),
- SV("abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz"));
- test(S("123456789"),
- SV("abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz"));
+ test(S(), SV("abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz"));
+ test(S("123456789"), SV("abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz"));
test(S("1234567890123456789012345678901234567890123456789012345678901234567890"),
- SV("abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz"));
+ SV("abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz"));
test(S("1234567890123456789012345678901234567890123456789012345678901234567890"
- "1234567890123456789012345678901234567890123456789012345678901234567890"),
- SV("abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz"));
+ "1234567890123456789012345678901234567890123456789012345678901234567890"),
+ SV("abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz"));
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -57,8 +53,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.cons/string_view_deduction.pass.cpp b/libcxx/test/std/strings/basic.string/string.cons/string_view_deduction.pass.cpp
index 1bd7ab2ccfee1a7..3a6f84f2699aca6 100644
--- a/libcxx/test/std/strings/basic.string/string.cons/string_view_deduction.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.cons/string_view_deduction.pass.cpp
@@ -32,15 +32,16 @@
#include "min_allocator.h"
template <class StringView, class Allocator, class = void>
-struct CanDeduce : std::false_type { };
+struct CanDeduce : std::false_type {};
template <class StringView, class Allocator>
-struct CanDeduce<StringView, Allocator, decltype((void)
- std::basic_string{std::declval<StringView>(), std::declval<Allocator>()}
-)> : std::true_type { };
+struct CanDeduce<StringView,
+ Allocator,
+ decltype((void)std::basic_string{std::declval<StringView>(), std::declval<Allocator>()})>
+ : std::true_type {};
-struct NotAnAllocator { };
-static_assert( CanDeduce<std::string_view, std::allocator<char>>::value);
+struct NotAnAllocator {};
+static_assert(CanDeduce<std::string_view, std::allocator<char>>::value);
static_assert(!CanDeduce<std::string_view, NotAnAllocator>::value);
TEST_CONSTEXPR_CXX20 bool test() {
@@ -48,9 +49,9 @@ TEST_CONSTEXPR_CXX20 bool test() {
std::string_view sv = "12345678901234";
std::basic_string s1(sv);
using S = decltype(s1); // what type did we get?
- static_assert(std::is_same_v<S::value_type, char>, "");
- static_assert(std::is_same_v<S::traits_type, std::char_traits<char>>, "");
- static_assert(std::is_same_v<S::allocator_type, std::allocator<char>>, "");
+ static_assert(std::is_same_v<S::value_type, char>, "");
+ static_assert(std::is_same_v<S::traits_type, std::char_traits<char>>, "");
+ static_assert(std::is_same_v<S::allocator_type, std::allocator<char>>, "");
assert(s1.size() == sv.size());
assert(s1.compare(0, s1.size(), sv.data(), s1.size()) == 0);
}
@@ -59,9 +60,9 @@ TEST_CONSTEXPR_CXX20 bool test() {
std::string_view sv = "12345678901234";
std::basic_string s1{sv, std::allocator<char>{}};
using S = decltype(s1); // what type did we get?
- static_assert(std::is_same_v<S::value_type, char>, "");
- static_assert(std::is_same_v<S::traits_type, std::char_traits<char>>, "");
- static_assert(std::is_same_v<S::allocator_type, std::allocator<char>>, "");
+ static_assert(std::is_same_v<S::value_type, char>, "");
+ static_assert(std::is_same_v<S::traits_type, std::char_traits<char>>, "");
+ static_assert(std::is_same_v<S::allocator_type, std::allocator<char>>, "");
assert(s1.size() == sv.size());
assert(s1.compare(0, s1.size(), sv.data(), s1.size()) == 0);
}
@@ -70,9 +71,9 @@ TEST_CONSTEXPR_CXX20 bool test() {
std::wstring_view sv = L"12345678901234";
std::basic_string s1{sv, test_allocator<wchar_t>{}};
using S = decltype(s1); // what type did we get?
- static_assert(std::is_same_v<S::value_type, wchar_t>, "");
- static_assert(std::is_same_v<S::traits_type, std::char_traits<wchar_t>>, "");
- static_assert(std::is_same_v<S::allocator_type, test_allocator<wchar_t>>, "");
+ static_assert(std::is_same_v<S::value_type, wchar_t>, "");
+ static_assert(std::is_same_v<S::traits_type, std::char_traits<wchar_t>>, "");
+ static_assert(std::is_same_v<S::allocator_type, test_allocator<wchar_t>>, "");
assert(s1.size() == sv.size());
assert(s1.compare(0, s1.size(), sv.data(), s1.size()) == 0);
}
@@ -82,9 +83,9 @@ TEST_CONSTEXPR_CXX20 bool test() {
std::u8string_view sv = u8"12345678901234";
std::basic_string s1{sv, min_allocator<char8_t>{}};
using S = decltype(s1); // what type did we get?
- static_assert(std::is_same_v<S::value_type, char8_t>, "");
- static_assert(std::is_same_v<S::traits_type, std::char_traits<char8_t>>, "");
- static_assert(std::is_same_v<S::allocator_type, min_allocator<char8_t>>, "");
+ static_assert(std::is_same_v<S::value_type, char8_t>, "");
+ static_assert(std::is_same_v<S::traits_type, std::char_traits<char8_t>>, "");
+ static_assert(std::is_same_v<S::allocator_type, min_allocator<char8_t>>, "");
assert(s1.size() == sv.size());
assert(s1.compare(0, s1.size(), sv.data(), s1.size()) == 0);
}
@@ -93,9 +94,9 @@ TEST_CONSTEXPR_CXX20 bool test() {
std::u16string_view sv = u"12345678901234";
std::basic_string s1{sv, min_allocator<char16_t>{}};
using S = decltype(s1); // what type did we get?
- static_assert(std::is_same_v<S::value_type, char16_t>, "");
- static_assert(std::is_same_v<S::traits_type, std::char_traits<char16_t>>, "");
- static_assert(std::is_same_v<S::allocator_type, min_allocator<char16_t>>, "");
+ static_assert(std::is_same_v<S::value_type, char16_t>, "");
+ static_assert(std::is_same_v<S::traits_type, std::char_traits<char16_t>>, "");
+ static_assert(std::is_same_v<S::allocator_type, min_allocator<char16_t>>, "");
assert(s1.size() == sv.size());
assert(s1.compare(0, s1.size(), sv.data(), s1.size()) == 0);
}
@@ -103,8 +104,8 @@ TEST_CONSTEXPR_CXX20 bool test() {
std::u32string_view sv = U"12345678901234";
std::basic_string s1{sv, explicit_allocator<char32_t>{}};
using S = decltype(s1); // what type did we get?
- static_assert(std::is_same_v<S::value_type, char32_t>, "");
- static_assert(std::is_same_v<S::traits_type, std::char_traits<char32_t>>, "");
+ static_assert(std::is_same_v<S::value_type, char32_t>, "");
+ static_assert(std::is_same_v<S::traits_type, std::char_traits<char32_t>>, "");
static_assert(std::is_same_v<S::allocator_type, explicit_allocator<char32_t>>, "");
assert(s1.size() == sv.size());
assert(s1.compare(0, s1.size(), sv.data(), s1.size()) == 0);
@@ -113,8 +114,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.cons/string_view_size_size_deduction.pass.cpp b/libcxx/test/std/strings/basic.string/string.cons/string_view_size_size_deduction.pass.cpp
index ce263560c6dd561..08e696b7a091bd4 100644
--- a/libcxx/test/std/strings/basic.string/string.cons/string_view_size_size_deduction.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.cons/string_view_size_size_deduction.pass.cpp
@@ -36,15 +36,19 @@
#include "min_allocator.h"
template <class StringView, class Size, class Allocator, class = void>
-struct CanDeduce : std::false_type { };
+struct CanDeduce : std::false_type {};
template <class StringView, class Size, class Allocator>
-struct CanDeduce<StringView, Size, Allocator, decltype((void)
- std::basic_string{std::declval<StringView>(), std::declval<Size>(), std::declval<Size>(), std::declval<Allocator>()}
-)> : std::true_type { };
+struct CanDeduce<
+ StringView,
+ Size,
+ Allocator,
+ decltype((void)std::basic_string{
+ std::declval<StringView>(), std::declval<Size>(), std::declval<Size>(), std::declval<Allocator>()})>
+ : std::true_type {};
-struct NotAnAllocator { };
-static_assert( CanDeduce<std::string_view, std::size_t, std::allocator<char>>::value);
+struct NotAnAllocator {};
+static_assert(CanDeduce<std::string_view, std::size_t, std::allocator<char>>::value);
static_assert(!CanDeduce<std::string_view, std::size_t, NotAnAllocator>::value);
TEST_CONSTEXPR_CXX20 bool test() {
@@ -52,9 +56,9 @@ TEST_CONSTEXPR_CXX20 bool test() {
std::string_view sv = "12345678901234";
std::basic_string s1{sv, 0, 4};
using S = decltype(s1); // what type did we get?
- static_assert(std::is_same_v<S::value_type, char>, "");
- static_assert(std::is_same_v<S::traits_type, std::char_traits<char>>, "");
- static_assert(std::is_same_v<S::allocator_type, std::allocator<char>>, "");
+ static_assert(std::is_same_v<S::value_type, char>, "");
+ static_assert(std::is_same_v<S::traits_type, std::char_traits<char>>, "");
+ static_assert(std::is_same_v<S::allocator_type, std::allocator<char>>, "");
assert(s1.size() == 4);
assert(s1.compare(0, s1.size(), sv.data(), s1.size()) == 0);
}
@@ -63,9 +67,9 @@ TEST_CONSTEXPR_CXX20 bool test() {
std::string_view sv = "12345678901234";
std::basic_string s1{sv, 0, 4, std::allocator<char>{}};
using S = decltype(s1); // what type did we get?
- static_assert(std::is_same_v<S::value_type, char>, "");
- static_assert(std::is_same_v<S::traits_type, std::char_traits<char>>, "");
- static_assert(std::is_same_v<S::allocator_type, std::allocator<char>>, "");
+ static_assert(std::is_same_v<S::value_type, char>, "");
+ static_assert(std::is_same_v<S::traits_type, std::char_traits<char>>, "");
+ static_assert(std::is_same_v<S::allocator_type, std::allocator<char>>, "");
assert(s1.size() == 4);
assert(s1.compare(0, s1.size(), sv.data(), s1.size()) == 0);
}
@@ -74,9 +78,9 @@ TEST_CONSTEXPR_CXX20 bool test() {
std::wstring_view sv = L"12345678901234";
std::basic_string s1{sv, 0, 4, test_allocator<wchar_t>{}};
using S = decltype(s1); // what type did we get?
- static_assert(std::is_same_v<S::value_type, wchar_t>, "");
- static_assert(std::is_same_v<S::traits_type, std::char_traits<wchar_t>>, "");
- static_assert(std::is_same_v<S::allocator_type, test_allocator<wchar_t>>, "");
+ static_assert(std::is_same_v<S::value_type, wchar_t>, "");
+ static_assert(std::is_same_v<S::traits_type, std::char_traits<wchar_t>>, "");
+ static_assert(std::is_same_v<S::allocator_type, test_allocator<wchar_t>>, "");
assert(s1.size() == 4);
assert(s1.compare(0, s1.size(), sv.data(), s1.size()) == 0);
}
@@ -86,9 +90,9 @@ TEST_CONSTEXPR_CXX20 bool test() {
std::u8string_view sv = u8"12345678901234";
std::basic_string s1{sv, 0, 4, min_allocator<char8_t>{}};
using S = decltype(s1); // what type did we get?
- static_assert(std::is_same_v<S::value_type, char8_t>, "");
- static_assert(std::is_same_v<S::traits_type, std::char_traits<char8_t>>, "");
- static_assert(std::is_same_v<S::allocator_type, min_allocator<char8_t>>, "");
+ static_assert(std::is_same_v<S::value_type, char8_t>, "");
+ static_assert(std::is_same_v<S::traits_type, std::char_traits<char8_t>>, "");
+ static_assert(std::is_same_v<S::allocator_type, min_allocator<char8_t>>, "");
assert(s1.size() == 4);
assert(s1.compare(0, s1.size(), sv.data(), s1.size()) == 0);
}
@@ -97,9 +101,9 @@ TEST_CONSTEXPR_CXX20 bool test() {
std::u16string_view sv = u"12345678901234";
std::basic_string s1{sv, 0, 4, min_allocator<char16_t>{}};
using S = decltype(s1); // what type did we get?
- static_assert(std::is_same_v<S::value_type, char16_t>, "");
- static_assert(std::is_same_v<S::traits_type, std::char_traits<char16_t>>, "");
- static_assert(std::is_same_v<S::allocator_type, min_allocator<char16_t>>, "");
+ static_assert(std::is_same_v<S::value_type, char16_t>, "");
+ static_assert(std::is_same_v<S::traits_type, std::char_traits<char16_t>>, "");
+ static_assert(std::is_same_v<S::allocator_type, min_allocator<char16_t>>, "");
assert(s1.size() == 4);
assert(s1.compare(0, s1.size(), sv.data(), s1.size()) == 0);
}
@@ -107,8 +111,8 @@ TEST_CONSTEXPR_CXX20 bool test() {
std::u32string_view sv = U"12345678901234";
std::basic_string s1{sv, 0, 4, explicit_allocator<char32_t>{}};
using S = decltype(s1); // what type did we get?
- static_assert(std::is_same_v<S::value_type, char32_t>, "");
- static_assert(std::is_same_v<S::traits_type, std::char_traits<char32_t>>, "");
+ static_assert(std::is_same_v<S::value_type, char32_t>, "");
+ static_assert(std::is_same_v<S::traits_type, std::char_traits<char32_t>>, "");
static_assert(std::is_same_v<S::allocator_type, explicit_allocator<char32_t>>, "");
assert(s1.size() == 4);
assert(s1.compare(0, s1.size(), sv.data(), s1.size()) == 0);
@@ -117,8 +121,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.cons/substr.pass.cpp b/libcxx/test/std/strings/basic.string/string.cons/substr.pass.cpp
index e89f6cd659b0734..e8a72708007c383 100644
--- a/libcxx/test/std/strings/basic.string/string.cons/substr.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.cons/substr.pass.cpp
@@ -28,113 +28,94 @@
#include "min_allocator.h"
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(S str, unsigned pos)
-{
- typedef typename S::traits_type T;
- typedef typename S::allocator_type A;
-
- if (pos <= str.size())
- {
- S s2(str, pos);
- LIBCPP_ASSERT(s2.__invariants());
- typename S::size_type rlen = str.size() - pos;
- assert(s2.size() == rlen);
- assert(T::compare(s2.data(), str.data() + pos, rlen) == 0);
- assert(s2.get_allocator() == A());
- assert(s2.capacity() >= s2.size());
- }
+TEST_CONSTEXPR_CXX20 void test(S str, unsigned pos) {
+ typedef typename S::traits_type T;
+ typedef typename S::allocator_type A;
+
+ if (pos <= str.size()) {
+ S s2(str, pos);
+ LIBCPP_ASSERT(s2.__invariants());
+ typename S::size_type rlen = str.size() - pos;
+ assert(s2.size() == rlen);
+ assert(T::compare(s2.data(), str.data() + pos, rlen) == 0);
+ assert(s2.get_allocator() == A());
+ assert(s2.capacity() >= s2.size());
+ }
#ifndef TEST_HAS_NO_EXCEPTIONS
- else if (!TEST_IS_CONSTANT_EVALUATED)
- {
- try
- {
- S s2(str, pos);
- assert(false);
- }
- catch (std::out_of_range&)
- {
- assert(pos > str.size());
- }
+ else if (!TEST_IS_CONSTANT_EVALUATED) {
+ try {
+ S s2(str, pos);
+ assert(false);
+ } catch (std::out_of_range&) {
+ assert(pos > str.size());
}
+ }
#endif
}
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(S str, unsigned pos, unsigned n)
-{
- typedef typename S::traits_type T;
- typedef typename S::allocator_type A;
- if (pos <= str.size())
- {
- S s2(str, pos, n);
- LIBCPP_ASSERT(s2.__invariants());
- typename S::size_type rlen = std::min<typename S::size_type>(str.size() - pos, n);
- assert(s2.size() == rlen);
- assert(T::compare(s2.data(), str.data() + pos, rlen) == 0);
- assert(s2.get_allocator() == A());
- assert(s2.capacity() >= s2.size());
- }
+TEST_CONSTEXPR_CXX20 void test(S str, unsigned pos, unsigned n) {
+ typedef typename S::traits_type T;
+ typedef typename S::allocator_type A;
+ if (pos <= str.size()) {
+ S s2(str, pos, n);
+ LIBCPP_ASSERT(s2.__invariants());
+ typename S::size_type rlen = std::min<typename S::size_type>(str.size() - pos, n);
+ assert(s2.size() == rlen);
+ assert(T::compare(s2.data(), str.data() + pos, rlen) == 0);
+ assert(s2.get_allocator() == A());
+ assert(s2.capacity() >= s2.size());
+ }
#ifndef TEST_HAS_NO_EXCEPTIONS
- else if (!TEST_IS_CONSTANT_EVALUATED)
- {
- try
- {
- S s2(str, pos, n);
- assert(false);
- }
- catch (std::out_of_range&)
- {
- assert(pos > str.size());
- }
+ else if (!TEST_IS_CONSTANT_EVALUATED) {
+ try {
+ S s2(str, pos, n);
+ assert(false);
+ } catch (std::out_of_range&) {
+ assert(pos > str.size());
}
+ }
#endif
}
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(S str, unsigned pos, unsigned n, const typename S::allocator_type& a)
-{
- typedef typename S::traits_type T;
-
- if (pos <= str.size())
- {
- S s2(str, pos, n, a);
- LIBCPP_ASSERT(s2.__invariants());
- typename S::size_type rlen = std::min<typename S::size_type>(str.size() - pos, n);
- assert(s2.size() == rlen);
- assert(T::compare(s2.data(), str.data() + pos, rlen) == 0);
- assert(s2.get_allocator() == a);
- assert(s2.capacity() >= s2.size());
- }
+TEST_CONSTEXPR_CXX20 void test(S str, unsigned pos, unsigned n, const typename S::allocator_type& a) {
+ typedef typename S::traits_type T;
+
+ if (pos <= str.size()) {
+ S s2(str, pos, n, a);
+ LIBCPP_ASSERT(s2.__invariants());
+ typename S::size_type rlen = std::min<typename S::size_type>(str.size() - pos, n);
+ assert(s2.size() == rlen);
+ assert(T::compare(s2.data(), str.data() + pos, rlen) == 0);
+ assert(s2.get_allocator() == a);
+ assert(s2.capacity() >= s2.size());
+ }
#ifndef TEST_HAS_NO_EXCEPTIONS
- else if (!TEST_IS_CONSTANT_EVALUATED)
- {
- try
- {
- S s2(str, pos, n, a);
- assert(false);
- }
- catch (std::out_of_range&)
- {
- assert(pos > str.size());
- }
+ else if (!TEST_IS_CONSTANT_EVALUATED) {
+ try {
+ S s2(str, pos, n, a);
+ assert(false);
+ } catch (std::out_of_range&) {
+ assert(pos > str.size());
}
+ }
#endif
}
-void test_lwg2583()
-{
+void test_lwg2583() {
#if TEST_STD_VER >= 11 && !defined(TEST_HAS_NO_EXCEPTIONS)
- typedef std::basic_string<char, std::char_traits<char>, test_allocator<char>> StringA;
- std::vector<StringA, std::scoped_allocator_adaptor<test_allocator<StringA>>> vs;
- StringA s{"1234"};
- vs.emplace_back(s, 2);
-
- try { vs.emplace_back(s, 5); }
- catch (const std::out_of_range&) { return; }
- assert(false);
+ typedef std::basic_string<char, std::char_traits<char>, test_allocator<char>> StringA;
+ std::vector<StringA, std::scoped_allocator_adaptor<test_allocator<StringA>>> vs;
+ StringA s{"1234"};
+ vs.emplace_back(s, 2);
+
+ try {
+ vs.emplace_back(s, 5);
+ } catch (const std::out_of_range&) {
+ return;
+ }
+ assert(false);
#endif
}
@@ -221,8 +202,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.contains/contains.char.pass.cpp b/libcxx/test/std/strings/basic.string/string.contains/contains.char.pass.cpp
index 3b410f725f43bc8..6d632f4921e4c76 100644
--- a/libcxx/test/std/strings/basic.string/string.contains/contains.char.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.contains/contains.char.pass.cpp
@@ -16,27 +16,25 @@
#include "test_macros.h"
-constexpr bool test()
-{
- using S = std::string;
+constexpr bool test() {
+ using S = std::string;
- S s1 {};
- S s2 {"abcde", 5};
+ S s1{};
+ S s2{"abcde", 5};
- ASSERT_NOEXCEPT(s1.contains('e'));
+ ASSERT_NOEXCEPT(s1.contains('e'));
- assert(!s1.contains('c'));
- assert(!s1.contains('e'));
- assert(!s1.contains('x'));
- assert( s2.contains('c'));
- assert( s2.contains('e'));
- assert(!s2.contains('x'));
+ assert(!s1.contains('c'));
+ assert(!s1.contains('e'));
+ assert(!s1.contains('x'));
+ assert(s2.contains('c'));
+ assert(s2.contains('e'));
+ assert(!s2.contains('x'));
- return true;
+ return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.contains/contains.ptr.pass.cpp b/libcxx/test/std/strings/basic.string/string.contains/contains.ptr.pass.cpp
index 978e8143475b06e..df5e4007acdf298 100644
--- a/libcxx/test/std/strings/basic.string/string.contains/contains.ptr.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.contains/contains.ptr.pass.cpp
@@ -16,57 +16,55 @@
#include "test_macros.h"
-constexpr bool test()
-{
- using S = std::string;
+constexpr bool test() {
+ using S = std::string;
- const char* s = "abcde";
- S s0;
- S s1 {s + 4, 1};
- S s3 {s + 2, 3};
- S sNot {"xyz", 3};
+ const char* s = "abcde";
+ S s0;
+ S s1{s + 4, 1};
+ S s3{s + 2, 3};
+ S sNot{"xyz", 3};
- assert(s0.contains(""));
- assert(!s0.contains("e"));
+ assert(s0.contains(""));
+ assert(!s0.contains("e"));
- assert( s1.contains(""));
- assert(!s1.contains("d"));
- assert( s1.contains("e"));
- assert(!s1.contains("de"));
- assert(!s1.contains("cd"));
- assert(!s1.contains("cde"));
- assert(!s1.contains("bcde"));
- assert(!s1.contains("abcde"));
- assert(!s1.contains("xyz"));
+ assert(s1.contains(""));
+ assert(!s1.contains("d"));
+ assert(s1.contains("e"));
+ assert(!s1.contains("de"));
+ assert(!s1.contains("cd"));
+ assert(!s1.contains("cde"));
+ assert(!s1.contains("bcde"));
+ assert(!s1.contains("abcde"));
+ assert(!s1.contains("xyz"));
- assert( s3.contains(""));
- assert( s3.contains("d"));
- assert( s3.contains("e"));
- assert( s3.contains("de"));
- assert( s3.contains("cd"));
- assert(!s3.contains("ce"));
- assert( s3.contains("cde"));
- assert(!s3.contains("edc"));
- assert(!s3.contains("bcde"));
- assert(!s3.contains("abcde"));
- assert(!s3.contains("xyz"));
+ assert(s3.contains(""));
+ assert(s3.contains("d"));
+ assert(s3.contains("e"));
+ assert(s3.contains("de"));
+ assert(s3.contains("cd"));
+ assert(!s3.contains("ce"));
+ assert(s3.contains("cde"));
+ assert(!s3.contains("edc"));
+ assert(!s3.contains("bcde"));
+ assert(!s3.contains("abcde"));
+ assert(!s3.contains("xyz"));
- assert( sNot.contains(""));
- assert(!sNot.contains("d"));
- assert(!sNot.contains("e"));
- assert(!sNot.contains("de"));
- assert(!sNot.contains("cd"));
- assert(!sNot.contains("cde"));
- assert(!sNot.contains("bcde"));
- assert(!sNot.contains("abcde"));
- assert( sNot.contains("xyz"));
- assert(!sNot.contains("zyx"));
+ assert(sNot.contains(""));
+ assert(!sNot.contains("d"));
+ assert(!sNot.contains("e"));
+ assert(!sNot.contains("de"));
+ assert(!sNot.contains("cd"));
+ assert(!sNot.contains("cde"));
+ assert(!sNot.contains("bcde"));
+ assert(!sNot.contains("abcde"));
+ assert(sNot.contains("xyz"));
+ assert(!sNot.contains("zyx"));
- return true;
+ return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.contains/contains.string_view.pass.cpp b/libcxx/test/std/strings/basic.string/string.contains/contains.string_view.pass.cpp
index 77301c7941b7624..74734d43fd22450 100644
--- a/libcxx/test/std/strings/basic.string/string.contains/contains.string_view.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.contains/contains.string_view.pass.cpp
@@ -16,78 +16,76 @@
#include "test_macros.h"
-constexpr bool test()
-{
- using S = std::string;
- using SV = std::string_view;
-
- const char* s = "abcde";
- S s0;
- S s1 {s + 1, 1};
- S s3 {s + 1, 3};
- S s5 {s , 5};
- S sNot {"xyz", 3};
-
- SV sv0;
- SV sv1 {s + 1, 1};
- SV sv2 {s + 1, 2};
- SV sv3 {s + 1, 3};
- SV sv4 {s + 1, 4};
- SV sv5 {s , 5};
- SV svNot {"xyz", 3};
- SV svNot2 {"bd" , 2};
- SV svNot3 {"dcb", 3};
-
- ASSERT_NOEXCEPT(s0.contains(sv0));
-
- assert( s0.contains(sv0));
- assert(!s0.contains(sv1));
-
- assert( s1.contains(sv0));
- assert( s1.contains(sv1));
- assert(!s1.contains(sv2));
- assert(!s1.contains(sv3));
- assert(!s1.contains(sv4));
- assert(!s1.contains(sv5));
- assert(!s1.contains(svNot));
- assert(!s1.contains(svNot2));
- assert(!s1.contains(svNot3));
-
- assert( s3.contains(sv0));
- assert( s3.contains(sv1));
- assert( s3.contains(sv2));
- assert( s3.contains(sv3));
- assert(!s3.contains(sv4));
- assert(!s3.contains(sv5));
- assert(!s3.contains(svNot));
- assert(!s3.contains(svNot2));
- assert(!s3.contains(svNot3));
-
- assert( s5.contains(sv0));
- assert( s5.contains(sv1));
- assert( s5.contains(sv2));
- assert( s5.contains(sv3));
- assert( s5.contains(sv4));
- assert( s5.contains(sv5));
- assert(!s5.contains(svNot));
- assert(!s5.contains(svNot2));
- assert(!s5.contains(svNot3));
-
- assert( sNot.contains(sv0));
- assert(!sNot.contains(sv1));
- assert(!sNot.contains(sv2));
- assert(!sNot.contains(sv3));
- assert(!sNot.contains(sv4));
- assert(!sNot.contains(sv5));
- assert( sNot.contains(svNot));
- assert(!sNot.contains(svNot2));
- assert(!sNot.contains(svNot3));
-
- return true;
+constexpr bool test() {
+ using S = std::string;
+ using SV = std::string_view;
+
+ const char* s = "abcde";
+ S s0;
+ S s1{s + 1, 1};
+ S s3{s + 1, 3};
+ S s5{s, 5};
+ S sNot{"xyz", 3};
+
+ SV sv0;
+ SV sv1{s + 1, 1};
+ SV sv2{s + 1, 2};
+ SV sv3{s + 1, 3};
+ SV sv4{s + 1, 4};
+ SV sv5{s, 5};
+ SV svNot{"xyz", 3};
+ SV svNot2{"bd", 2};
+ SV svNot3{"dcb", 3};
+
+ ASSERT_NOEXCEPT(s0.contains(sv0));
+
+ assert(s0.contains(sv0));
+ assert(!s0.contains(sv1));
+
+ assert(s1.contains(sv0));
+ assert(s1.contains(sv1));
+ assert(!s1.contains(sv2));
+ assert(!s1.contains(sv3));
+ assert(!s1.contains(sv4));
+ assert(!s1.contains(sv5));
+ assert(!s1.contains(svNot));
+ assert(!s1.contains(svNot2));
+ assert(!s1.contains(svNot3));
+
+ assert(s3.contains(sv0));
+ assert(s3.contains(sv1));
+ assert(s3.contains(sv2));
+ assert(s3.contains(sv3));
+ assert(!s3.contains(sv4));
+ assert(!s3.contains(sv5));
+ assert(!s3.contains(svNot));
+ assert(!s3.contains(svNot2));
+ assert(!s3.contains(svNot3));
+
+ assert(s5.contains(sv0));
+ assert(s5.contains(sv1));
+ assert(s5.contains(sv2));
+ assert(s5.contains(sv3));
+ assert(s5.contains(sv4));
+ assert(s5.contains(sv5));
+ assert(!s5.contains(svNot));
+ assert(!s5.contains(svNot2));
+ assert(!s5.contains(svNot3));
+
+ assert(sNot.contains(sv0));
+ assert(!sNot.contains(sv1));
+ assert(!sNot.contains(sv2));
+ assert(!sNot.contains(sv3));
+ assert(!sNot.contains(sv4));
+ assert(!sNot.contains(sv5));
+ assert(sNot.contains(svNot));
+ assert(!sNot.contains(svNot2));
+ assert(!sNot.contains(svNot3));
+
+ return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.ends_with/ends_with.char.pass.cpp b/libcxx/test/std/strings/basic.string/string.ends_with/ends_with.char.pass.cpp
index da5f5ac96318f02..8e540606f38b9f6 100644
--- a/libcxx/test/std/strings/basic.string/string.ends_with/ends_with.char.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.ends_with/ends_with.char.pass.cpp
@@ -19,22 +19,21 @@
constexpr bool test() {
{
typedef std::string S;
- S s1 {};
- S s2 { "abcde", 5 };
+ S s1{};
+ S s2{"abcde", 5};
ASSERT_NOEXCEPT(s1.ends_with('e'));
- assert (!s1.ends_with('e'));
- assert (!s1.ends_with('x'));
- assert ( s2.ends_with('e'));
- assert (!s2.ends_with('x'));
+ assert(!s1.ends_with('e'));
+ assert(!s1.ends_with('x'));
+ assert(s2.ends_with('e'));
+ assert(!s2.ends_with('x'));
}
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.ends_with/ends_with.ptr.pass.cpp b/libcxx/test/std/strings/basic.string/string.ends_with/ends_with.ptr.pass.cpp
index 86796c447c1a854..75abb0743268191 100644
--- a/libcxx/test/std/strings/basic.string/string.ends_with/ends_with.ptr.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.ends_with/ends_with.ptr.pass.cpp
@@ -19,44 +19,44 @@
constexpr bool test() {
{
typedef std::string S;
- const char *s = "abcde";
+ const char* s = "abcde";
- S s0;
- S s1 { s + 4, 1 };
- S s2 { s + 3, 2 };
-// S s3 { s + 2, 3 };
-// S s4 { s + 1, 4 };
-// S s5 { s, 5 };
- S sNot { "def", 3 };
+ S s0;
+ S s1{s + 4, 1};
+ S s2{s + 3, 2};
+ // S s3 { s + 2, 3 };
+ // S s4 { s + 1, 4 };
+ // S s5 { s, 5 };
+ S sNot{"def", 3};
LIBCPP_ASSERT_NOEXCEPT(s0.ends_with(""));
- assert ( s0.ends_with(""));
- assert (!s0.ends_with("e"));
+ assert(s0.ends_with(""));
+ assert(!s0.ends_with("e"));
- assert ( s1.ends_with(""));
- assert ( s1.ends_with("e"));
- assert (!s1.ends_with("de"));
- assert (!s1.ends_with("cde"));
- assert (!s1.ends_with("bcde"));
- assert (!s1.ends_with("abcde"));
- assert (!s1.ends_with("def"));
+ assert(s1.ends_with(""));
+ assert(s1.ends_with("e"));
+ assert(!s1.ends_with("de"));
+ assert(!s1.ends_with("cde"));
+ assert(!s1.ends_with("bcde"));
+ assert(!s1.ends_with("abcde"));
+ assert(!s1.ends_with("def"));
- assert ( s2.ends_with(""));
- assert ( s2.ends_with("e"));
- assert ( s2.ends_with("de"));
- assert (!s2.ends_with("cde"));
- assert (!s2.ends_with("bcde"));
- assert (!s2.ends_with("abcde"));
- assert (!s2.ends_with("def"));
+ assert(s2.ends_with(""));
+ assert(s2.ends_with("e"));
+ assert(s2.ends_with("de"));
+ assert(!s2.ends_with("cde"));
+ assert(!s2.ends_with("bcde"));
+ assert(!s2.ends_with("abcde"));
+ assert(!s2.ends_with("def"));
- assert ( sNot.ends_with(""));
- assert (!sNot.ends_with("e"));
- assert (!sNot.ends_with("de"));
- assert (!sNot.ends_with("cde"));
- assert (!sNot.ends_with("bcde"));
- assert (!sNot.ends_with("abcde"));
- assert ( sNot.ends_with("def"));
+ assert(sNot.ends_with(""));
+ assert(!sNot.ends_with("e"));
+ assert(!sNot.ends_with("de"));
+ assert(!sNot.ends_with("cde"));
+ assert(!sNot.ends_with("bcde"));
+ assert(!sNot.ends_with("abcde"));
+ assert(sNot.ends_with("def"));
}
return true;
diff --git a/libcxx/test/std/strings/basic.string/string.ends_with/ends_with.string_view.pass.cpp b/libcxx/test/std/strings/basic.string/string.ends_with/ends_with.string_view.pass.cpp
index a4600d74a78f8ad..ab0b4f10356d278 100644
--- a/libcxx/test/std/strings/basic.string/string.ends_with/ends_with.string_view.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.ends_with/ends_with.string_view.pass.cpp
@@ -20,52 +20,52 @@ constexpr bool test() {
{
typedef std::string S;
typedef std::string_view SV;
- const char *s = "abcde";
+ const char* s = "abcde";
- S s0;
- S s1 { s + 4, 1 };
- S s2 { s + 3, 2 };
-// S s3 { s + 2, 3 };
-// S s4 { s + 1, 4 };
-// S s5 { s, 5 };
- S sNot { "def", 3 };
+ S s0;
+ S s1{s + 4, 1};
+ S s2{s + 3, 2};
+ // S s3 { s + 2, 3 };
+ // S s4 { s + 1, 4 };
+ // S s5 { s, 5 };
+ S sNot{"def", 3};
- SV sv0;
- SV sv1 { s + 4, 1 };
- SV sv2 { s + 3, 2 };
- SV sv3 { s + 2, 3 };
- SV sv4 { s + 1, 4 };
- SV sv5 { s , 5 };
- SV svNot {"def", 3 };
+ SV sv0;
+ SV sv1{s + 4, 1};
+ SV sv2{s + 3, 2};
+ SV sv3{s + 2, 3};
+ SV sv4{s + 1, 4};
+ SV sv5{s, 5};
+ SV svNot{"def", 3};
ASSERT_NOEXCEPT(s0.ends_with(sv0));
- assert ( s0.ends_with(sv0));
- assert (!s0.ends_with(sv1));
+ assert(s0.ends_with(sv0));
+ assert(!s0.ends_with(sv1));
- assert ( s1.ends_with(sv0));
- assert ( s1.ends_with(sv1));
- assert (!s1.ends_with(sv2));
- assert (!s1.ends_with(sv3));
- assert (!s1.ends_with(sv4));
- assert (!s1.ends_with(sv5));
- assert (!s1.ends_with(svNot));
+ assert(s1.ends_with(sv0));
+ assert(s1.ends_with(sv1));
+ assert(!s1.ends_with(sv2));
+ assert(!s1.ends_with(sv3));
+ assert(!s1.ends_with(sv4));
+ assert(!s1.ends_with(sv5));
+ assert(!s1.ends_with(svNot));
- assert ( s2.ends_with(sv0));
- assert ( s2.ends_with(sv1));
- assert ( s2.ends_with(sv2));
- assert (!s2.ends_with(sv3));
- assert (!s2.ends_with(sv4));
- assert (!s2.ends_with(sv5));
- assert (!s2.ends_with(svNot));
+ assert(s2.ends_with(sv0));
+ assert(s2.ends_with(sv1));
+ assert(s2.ends_with(sv2));
+ assert(!s2.ends_with(sv3));
+ assert(!s2.ends_with(sv4));
+ assert(!s2.ends_with(sv5));
+ assert(!s2.ends_with(svNot));
- assert ( sNot.ends_with(sv0));
- assert (!sNot.ends_with(sv1));
- assert (!sNot.ends_with(sv2));
- assert (!sNot.ends_with(sv3));
- assert (!sNot.ends_with(sv4));
- assert (!sNot.ends_with(sv5));
- assert ( sNot.ends_with(svNot));
+ assert(sNot.ends_with(sv0));
+ assert(!sNot.ends_with(sv1));
+ assert(!sNot.ends_with(sv2));
+ assert(!sNot.ends_with(sv3));
+ assert(!sNot.ends_with(sv4));
+ assert(!sNot.ends_with(sv5));
+ assert(sNot.ends_with(svNot));
}
return true;
diff --git a/libcxx/test/std/strings/basic.string/string.iterators/begin.pass.cpp b/libcxx/test/std/strings/basic.string/string.iterators/begin.pass.cpp
index 8363262f0c201ad..592ca787c1d6fc3 100644
--- a/libcxx/test/std/strings/basic.string/string.iterators/begin.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.iterators/begin.pass.cpp
@@ -18,17 +18,14 @@
#include "min_allocator.h"
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(S s)
-{
- const S& cs = s;
- typename S::iterator b = s.begin();
- typename S::const_iterator cb = cs.begin();
- if (!s.empty())
- {
- assert(*b == s[0]);
- }
- assert(b == cb);
+TEST_CONSTEXPR_CXX20 void test(S s) {
+ const S& cs = s;
+ typename S::iterator b = s.begin();
+ typename S::const_iterator cb = cs.begin();
+ if (!s.empty()) {
+ assert(*b == s[0]);
+ }
+ assert(b == cb);
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -48,8 +45,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.iterators/cbegin.pass.cpp b/libcxx/test/std/strings/basic.string/string.iterators/cbegin.pass.cpp
index 0a53017c5c0fab0..5a0de9d5424ae65 100644
--- a/libcxx/test/std/strings/basic.string/string.iterators/cbegin.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.iterators/cbegin.pass.cpp
@@ -17,15 +17,12 @@
#include "min_allocator.h"
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(const S& s)
-{
- typename S::const_iterator cb = s.cbegin();
- if (!s.empty())
- {
- assert(*cb == s[0]);
- }
- assert(cb == s.begin());
+TEST_CONSTEXPR_CXX20 void test(const S& s) {
+ typename S::const_iterator cb = s.cbegin();
+ if (!s.empty()) {
+ assert(*cb == s[0]);
+ }
+ assert(cb == s.begin());
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -45,8 +42,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.iterators/cend.pass.cpp b/libcxx/test/std/strings/basic.string/string.iterators/cend.pass.cpp
index c142cbad0c53121..54b4e2bcedc295c 100644
--- a/libcxx/test/std/strings/basic.string/string.iterators/cend.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.iterators/cend.pass.cpp
@@ -17,11 +17,9 @@
#include "min_allocator.h"
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(const S& s)
-{
- typename S::const_iterator ce = s.cend();
- assert(ce == s.end());
+TEST_CONSTEXPR_CXX20 void test(const S& s) {
+ typename S::const_iterator ce = s.cend();
+ assert(ce == s.end());
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -41,8 +39,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.iterators/crbegin.pass.cpp b/libcxx/test/std/strings/basic.string/string.iterators/crbegin.pass.cpp
index 95da6d3e5f3bec9..a1acf691b73c725 100644
--- a/libcxx/test/std/strings/basic.string/string.iterators/crbegin.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.iterators/crbegin.pass.cpp
@@ -17,15 +17,12 @@
#include "min_allocator.h"
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(const S& s)
-{
- typename S::const_reverse_iterator cb = s.crbegin();
- if (!s.empty())
- {
- assert(*cb == s.back());
- }
- assert(cb == s.rbegin());
+TEST_CONSTEXPR_CXX20 void test(const S& s) {
+ typename S::const_reverse_iterator cb = s.crbegin();
+ if (!s.empty()) {
+ assert(*cb == s.back());
+ }
+ assert(cb == s.rbegin());
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -45,8 +42,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.iterators/crend.pass.cpp b/libcxx/test/std/strings/basic.string/string.iterators/crend.pass.cpp
index 193dd579593c96a..cc63b6bcc608dcc 100644
--- a/libcxx/test/std/strings/basic.string/string.iterators/crend.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.iterators/crend.pass.cpp
@@ -17,11 +17,9 @@
#include "min_allocator.h"
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(const S& s)
-{
- typename S::const_reverse_iterator ce = s.crend();
- assert(ce == s.rend());
+TEST_CONSTEXPR_CXX20 void test(const S& s) {
+ typename S::const_reverse_iterator ce = s.crend();
+ assert(ce == s.rend());
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -41,8 +39,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.iterators/end.pass.cpp b/libcxx/test/std/strings/basic.string/string.iterators/end.pass.cpp
index 214ba84cff8e60c..64f91cae7d33f96 100644
--- a/libcxx/test/std/strings/basic.string/string.iterators/end.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.iterators/end.pass.cpp
@@ -19,19 +19,16 @@
#include "min_allocator.h"
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(S s)
-{
- const S& cs = s;
- typename S::iterator e = s.end();
- typename S::const_iterator ce = cs.end();
- if (s.empty())
- {
- assert(e == s.begin());
- assert(ce == cs.begin());
- }
- assert(static_cast<std::size_t>(e - s.begin()) == s.size());
- assert(static_cast<std::size_t>(ce - cs.begin()) == cs.size());
+TEST_CONSTEXPR_CXX20 void test(S s) {
+ const S& cs = s;
+ typename S::iterator e = s.end();
+ typename S::const_iterator ce = cs.end();
+ if (s.empty()) {
+ assert(e == s.begin());
+ assert(ce == cs.begin());
+ }
+ assert(static_cast<std::size_t>(e - s.begin()) == s.size());
+ assert(static_cast<std::size_t>(ce - cs.begin()) == cs.size());
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -51,8 +48,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.iterators/iterator_concept_conformance.compile.pass.cpp b/libcxx/test/std/strings/basic.string/string.iterators/iterator_concept_conformance.compile.pass.cpp
index b5d18403d277969..bde2f9e9cde3278 100644
--- a/libcxx/test/std/strings/basic.string/string.iterators/iterator_concept_conformance.compile.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.iterators/iterator_concept_conformance.compile.pass.cpp
@@ -14,11 +14,11 @@
#include <iterator>
-using iterator = std::string::iterator;
-using const_iterator = std::string::const_iterator;
-using reverse_iterator = std::string::reverse_iterator;
+using iterator = std::string::iterator;
+using const_iterator = std::string::const_iterator;
+using reverse_iterator = std::string::reverse_iterator;
using const_reverse_iterator = std::string::const_reverse_iterator;
-using value_type = char;
+using value_type = char;
static_assert(std::contiguous_iterator<iterator>);
static_assert(std::indirectly_writable<iterator, value_type>);
@@ -30,23 +30,23 @@ static_assert(std::sized_sentinel_for<iterator, iterator>);
static_assert(std::sized_sentinel_for<iterator, const_iterator>);
static_assert(!std::sized_sentinel_for<iterator, reverse_iterator>);
static_assert(!std::sized_sentinel_for<iterator, const_reverse_iterator>);
-static_assert( std::indirectly_movable<iterator, iterator>);
-static_assert( std::indirectly_movable_storable<iterator, iterator>);
+static_assert(std::indirectly_movable<iterator, iterator>);
+static_assert(std::indirectly_movable_storable<iterator, iterator>);
static_assert(!std::indirectly_movable<iterator, const_iterator>);
static_assert(!std::indirectly_movable_storable<iterator, const_iterator>);
-static_assert( std::indirectly_movable<iterator, reverse_iterator>);
-static_assert( std::indirectly_movable_storable<iterator, reverse_iterator>);
+static_assert(std::indirectly_movable<iterator, reverse_iterator>);
+static_assert(std::indirectly_movable_storable<iterator, reverse_iterator>);
static_assert(!std::indirectly_movable<iterator, const_reverse_iterator>);
static_assert(!std::indirectly_movable_storable<iterator, const_reverse_iterator>);
-static_assert( std::indirectly_copyable<iterator, iterator>);
-static_assert( std::indirectly_copyable_storable<iterator, iterator>);
+static_assert(std::indirectly_copyable<iterator, iterator>);
+static_assert(std::indirectly_copyable_storable<iterator, iterator>);
static_assert(!std::indirectly_copyable<iterator, const_iterator>);
static_assert(!std::indirectly_copyable_storable<iterator, const_iterator>);
-static_assert( std::indirectly_copyable<iterator, reverse_iterator>);
-static_assert( std::indirectly_copyable_storable<iterator, reverse_iterator>);
+static_assert(std::indirectly_copyable<iterator, reverse_iterator>);
+static_assert(std::indirectly_copyable_storable<iterator, reverse_iterator>);
static_assert(!std::indirectly_copyable<iterator, const_reverse_iterator>);
static_assert(!std::indirectly_copyable_storable<iterator, const_reverse_iterator>);
-static_assert( std::indirectly_swappable<iterator, iterator>);
+static_assert(std::indirectly_swappable<iterator, iterator>);
static_assert(std::contiguous_iterator<const_iterator>);
static_assert(!std::indirectly_writable<const_iterator, value_type>);
@@ -58,20 +58,20 @@ static_assert(std::sized_sentinel_for<const_iterator, iterator>);
static_assert(std::sized_sentinel_for<const_iterator, const_iterator>);
static_assert(!std::sized_sentinel_for<const_iterator, reverse_iterator>);
static_assert(!std::sized_sentinel_for<const_iterator, const_reverse_iterator>);
-static_assert( std::indirectly_movable<const_iterator, iterator>);
-static_assert( std::indirectly_movable_storable<const_iterator, iterator>);
+static_assert(std::indirectly_movable<const_iterator, iterator>);
+static_assert(std::indirectly_movable_storable<const_iterator, iterator>);
static_assert(!std::indirectly_movable<const_iterator, const_iterator>);
static_assert(!std::indirectly_movable_storable<const_iterator, const_iterator>);
-static_assert( std::indirectly_movable<const_iterator, reverse_iterator>);
-static_assert( std::indirectly_movable_storable<const_iterator, reverse_iterator>);
+static_assert(std::indirectly_movable<const_iterator, reverse_iterator>);
+static_assert(std::indirectly_movable_storable<const_iterator, reverse_iterator>);
static_assert(!std::indirectly_movable<const_iterator, const_reverse_iterator>);
static_assert(!std::indirectly_movable_storable<const_iterator, const_reverse_iterator>);
-static_assert( std::indirectly_copyable<const_iterator, iterator>);
-static_assert( std::indirectly_copyable_storable<const_iterator, iterator>);
+static_assert(std::indirectly_copyable<const_iterator, iterator>);
+static_assert(std::indirectly_copyable_storable<const_iterator, iterator>);
static_assert(!std::indirectly_copyable<const_iterator, const_iterator>);
static_assert(!std::indirectly_copyable_storable<const_iterator, const_iterator>);
-static_assert( std::indirectly_copyable<const_iterator, reverse_iterator>);
-static_assert( std::indirectly_copyable_storable<const_iterator, reverse_iterator>);
+static_assert(std::indirectly_copyable<const_iterator, reverse_iterator>);
+static_assert(std::indirectly_copyable_storable<const_iterator, reverse_iterator>);
static_assert(!std::indirectly_copyable<const_iterator, const_reverse_iterator>);
static_assert(!std::indirectly_copyable_storable<const_iterator, const_reverse_iterator>);
static_assert(!std::indirectly_swappable<const_iterator, const_iterator>);
diff --git a/libcxx/test/std/strings/basic.string/string.iterators/iterators.pass.cpp b/libcxx/test/std/strings/basic.string/string.iterators/iterators.pass.cpp
index 161c9add9027841..f44ca0b88835e1a 100644
--- a/libcxx/test/std/strings/basic.string/string.iterators/iterators.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.iterators/iterators.pass.cpp
@@ -22,64 +22,62 @@
#include "test_macros.h"
-template<class C>
-TEST_CONSTEXPR_CXX20 void test()
-{
- { // N3644 testing
- typename C::iterator ii1{}, ii2{};
- typename C::iterator ii4 = ii1;
- typename C::const_iterator cii{};
+template <class C>
+TEST_CONSTEXPR_CXX20 void test() {
+ { // N3644 testing
+ typename C::iterator ii1{}, ii2{};
+ typename C::iterator ii4 = ii1;
+ typename C::const_iterator cii{};
- assert ( ii1 == ii2 );
- assert ( ii1 == ii4 );
+ assert(ii1 == ii2);
+ assert(ii1 == ii4);
- assert (!(ii1 != ii2 ));
+ assert(!(ii1 != ii2));
- assert ( (ii1 == cii ));
- assert ( (cii == ii1 ));
- assert (!(ii1 != cii ));
- assert (!(cii != ii1 ));
- assert (!(ii1 < cii ));
- assert (!(cii < ii1 ));
- assert ( (ii1 <= cii ));
- assert ( (cii <= ii1 ));
- assert (!(ii1 > cii ));
- assert (!(cii > ii1 ));
- assert ( (ii1 >= cii ));
- assert ( (cii >= ii1 ));
- assert (cii - ii1 == 0);
- assert (ii1 - cii == 0);
- }
- {
- C a;
- typename C::iterator i1 = a.begin();
- typename C::iterator i2;
- i2 = i1;
- assert ( i1 == i2 );
- }
+ assert((ii1 == cii));
+ assert((cii == ii1));
+ assert(!(ii1 != cii));
+ assert(!(cii != ii1));
+ assert(!(ii1 < cii));
+ assert(!(cii < ii1));
+ assert((ii1 <= cii));
+ assert((cii <= ii1));
+ assert(!(ii1 > cii));
+ assert(!(cii > ii1));
+ assert((ii1 >= cii));
+ assert((cii >= ii1));
+ assert(cii - ii1 == 0);
+ assert(ii1 - cii == 0);
+ }
+ {
+ C a;
+ typename C::iterator i1 = a.begin();
+ typename C::iterator i2;
+ i2 = i1;
+ assert(i1 == i2);
+ }
}
TEST_CONSTEXPR_CXX20 bool test() {
- test<std::string>();
+ test<std::string>();
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- test<std::wstring>();
+ test<std::wstring>();
#endif
#ifndef TEST_HAS_NO_CHAR8_T
- test<std::u8string>();
+ test<std::u8string>();
#endif
- test<std::u16string>();
- test<std::u32string>();
+ test<std::u16string>();
+ test<std::u32string>();
- return true;
+ return true;
}
-int main(int, char**)
-{
- test();
+int main(int, char**) {
+ test();
#if TEST_STD_VER > 17
- static_assert(test());
+ static_assert(test());
#endif
- return 0;
+ return 0;
}
diff --git a/libcxx/test/std/strings/basic.string/string.iterators/rbegin.pass.cpp b/libcxx/test/std/strings/basic.string/string.iterators/rbegin.pass.cpp
index d39467e4d059920..66bac353e1afe85 100644
--- a/libcxx/test/std/strings/basic.string/string.iterators/rbegin.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.iterators/rbegin.pass.cpp
@@ -18,17 +18,14 @@
#include "min_allocator.h"
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(S s)
-{
- const S& cs = s;
- typename S::reverse_iterator b = s.rbegin();
- typename S::const_reverse_iterator cb = cs.rbegin();
- if (!s.empty())
- {
- assert(*b == s.back());
- }
- assert(b == cb);
+TEST_CONSTEXPR_CXX20 void test(S s) {
+ const S& cs = s;
+ typename S::reverse_iterator b = s.rbegin();
+ typename S::const_reverse_iterator cb = cs.rbegin();
+ if (!s.empty()) {
+ assert(*b == s.back());
+ }
+ assert(b == cb);
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -48,8 +45,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.iterators/rend.pass.cpp b/libcxx/test/std/strings/basic.string/string.iterators/rend.pass.cpp
index 0002f7444b8dec7..01b2e0165fc7ac3 100644
--- a/libcxx/test/std/strings/basic.string/string.iterators/rend.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.iterators/rend.pass.cpp
@@ -19,19 +19,16 @@
#include "min_allocator.h"
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(S s)
-{
- const S& cs = s;
- typename S::reverse_iterator e = s.rend();
- typename S::const_reverse_iterator ce = cs.rend();
- if (s.empty())
- {
- assert(e == s.rbegin());
- assert(ce == cs.rbegin());
- }
- assert(static_cast<std::size_t>(e - s.rbegin()) == s.size());
- assert(static_cast<std::size_t>(ce - cs.rbegin()) == cs.size());
+TEST_CONSTEXPR_CXX20 void test(S s) {
+ const S& cs = s;
+ typename S::reverse_iterator e = s.rend();
+ typename S::const_reverse_iterator ce = cs.rend();
+ if (s.empty()) {
+ assert(e == s.rbegin());
+ assert(ce == cs.rbegin());
+ }
+ assert(static_cast<std::size_t>(e - s.rbegin()) == s.size());
+ assert(static_cast<std::size_t>(ce - cs.rbegin()) == cs.size());
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -51,8 +48,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.modifiers/robust_against_adl.pass.cpp b/libcxx/test/std/strings/basic.string/string.modifiers/robust_against_adl.pass.cpp
index 90b275b6c3c651e..fe231d84ddb6707 100644
--- a/libcxx/test/std/strings/basic.string/string.modifiers/robust_against_adl.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.modifiers/robust_against_adl.pass.cpp
@@ -14,29 +14,31 @@
#include "test_macros.h"
struct Incomplete;
-template<class T> struct Holder { T t; };
+template <class T>
+struct Holder {
+ T t;
+};
-template<class T>
+template <class T>
struct Charlike {
- char ch_;
- TEST_CONSTEXPR Charlike(char ch) : ch_(ch) {}
- TEST_CONSTEXPR operator char() const { return ch_; }
+ char ch_;
+ TEST_CONSTEXPR Charlike(char ch) : ch_(ch) {}
+ TEST_CONSTEXPR operator char() const { return ch_; }
};
TEST_CONSTEXPR_CXX20 bool test() {
std::string s;
Charlike<Holder<Incomplete> > a[] = {'m', 'a', 'h', 'i'};
- s.append(a, a+4);
- s.assign(a, a+4);
- s.insert(s.begin(), a, a+4);
- s.replace(s.begin(), s.begin()+4, a, a+4);
+ s.append(a, a + 4);
+ s.assign(a, a + 4);
+ s.insert(s.begin(), a, a + 4);
+ s.replace(s.begin(), s.begin() + 4, a, a + 4);
assert(s == "mahimahi");
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.modifiers/string_append/T_size_size.pass.cpp b/libcxx/test/std/strings/basic.string/string.modifiers/string_append/T_size_size.pass.cpp
index 52239246ac5ca89..cf45b368ebbcaf6 100644
--- a/libcxx/test/std/strings/basic.string/string.modifiers/string_append/T_size_size.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.modifiers/string_append/T_size_size.pass.cpp
@@ -20,54 +20,40 @@
#include "min_allocator.h"
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 void
-test(S s, SV sv, typename S::size_type pos, typename S::size_type n, S expected)
-{
- if (pos <= sv.size())
- {
- s.append(sv, pos, n);
- LIBCPP_ASSERT(s.__invariants());
- assert(s == expected);
- }
+TEST_CONSTEXPR_CXX20 void test(S s, SV sv, typename S::size_type pos, typename S::size_type n, S expected) {
+ if (pos <= sv.size()) {
+ s.append(sv, pos, n);
+ LIBCPP_ASSERT(s.__invariants());
+ assert(s == expected);
+ }
#ifndef TEST_HAS_NO_EXCEPTIONS
- else if (!TEST_IS_CONSTANT_EVALUATED)
- {
- try
- {
- s.append(sv, pos, n);
- assert(false);
- }
- catch (std::out_of_range&)
- {
- assert(pos > sv.size());
- }
+ else if (!TEST_IS_CONSTANT_EVALUATED) {
+ try {
+ s.append(sv, pos, n);
+ assert(false);
+ } catch (std::out_of_range&) {
+ assert(pos > sv.size());
}
+ }
#endif
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 void
-test_npos(S s, SV sv, typename S::size_type pos, S expected)
-{
- if (pos <= sv.size())
- {
- s.append(sv, pos);
- LIBCPP_ASSERT(s.__invariants());
- assert(s == expected);
- }
+TEST_CONSTEXPR_CXX20 void test_npos(S s, SV sv, typename S::size_type pos, S expected) {
+ if (pos <= sv.size()) {
+ s.append(sv, pos);
+ LIBCPP_ASSERT(s.__invariants());
+ assert(s == expected);
+ }
#ifndef TEST_HAS_NO_EXCEPTIONS
- else if (!TEST_IS_CONSTANT_EVALUATED)
- {
- try
- {
- s.append(sv, pos);
- assert(false);
- }
- catch (std::out_of_range&)
- {
- assert(pos > sv.size());
- }
+ else if (!TEST_IS_CONSTANT_EVALUATED) {
+ try {
+ s.append(sv, pos);
+ assert(false);
+ } catch (std::out_of_range&) {
+ assert(pos > sv.size());
}
+ }
#endif
}
@@ -93,8 +79,7 @@ TEST_CONSTEXPR_CXX20 void test_string() {
test(S("12345678901234567890"), SV(), 0, 0, S("12345678901234567890"));
test(S("12345678901234567890"), SV("12345"), 1, 3, S("12345678901234567890234"));
- test(S("12345678901234567890"), SV("12345678901234567890"), 5, 10,
- S("123456789012345678906789012345"));
+ test(S("12345678901234567890"), SV("12345678901234567890"), 5, 10, S("123456789012345678906789012345"));
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -118,9 +103,9 @@ TEST_CONSTEXPR_CXX20 bool test() {
{
std::string s;
std::string_view sv = "EFGH";
- char arr[] = "IJKL";
+ char arr[] = "IJKL";
- s.append("CDEF", 0); // calls append(const char *, len)
+ s.append("CDEF", 0); // calls append(const char *, len)
assert(s == "");
s.clear();
@@ -128,29 +113,29 @@ TEST_CONSTEXPR_CXX20 bool test() {
assert(s == "QRST");
s.clear();
- s.append(sv, 0); // calls append(T, pos, npos)
+ s.append(sv, 0); // calls append(T, pos, npos)
assert(s == sv);
s.clear();
- s.append(sv, 0, std::string::npos); // calls append(T, pos, npos)
+ s.append(sv, 0, std::string::npos); // calls append(T, pos, npos)
assert(s == sv);
s.clear();
- s.append(arr, 0); // calls append(const char *, len)
+ s.append(arr, 0); // calls append(const char *, len)
assert(s == "");
s.clear();
- s.append(arr, 0, std::string::npos); // calls append(string("IJKL"), pos, npos)
+ s.append(arr, 0, std::string::npos); // calls append(string("IJKL"), pos, npos)
assert(s == "IJKL");
s.clear();
- s.append(arr, 0); // calls append(const char *, len)
+ s.append(arr, 0); // calls append(const char *, len)
assert(s == "");
s.clear();
}
{
- std::string s = "ABCD";
+ std::string s = "ABCD";
std::string_view sv = s;
s.append(sv);
assert(s == "ABCDABCD");
@@ -165,20 +150,20 @@ TEST_CONSTEXPR_CXX20 bool test() {
}
{
- std::string s = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
+ std::string s = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
std::string_view sv = s;
s.append(sv);
assert(s == "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ");
sv = s;
s.append(sv, 0, std::string::npos);
- assert(s == "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ");
+ assert(s ==
+ "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ");
}
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.modifiers/string_append/append_range.pass.cpp b/libcxx/test/std/strings/basic.string/string.modifiers/string_append/append_range.pass.cpp
index bc736971ea16852..68327f65bdb381a 100644
--- a/libcxx/test/std/strings/basic.string/string.modifiers/string_append/append_range.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.modifiers/string_append/append_range.pass.cpp
@@ -43,9 +43,7 @@ int main(int, char**) {
{ // Check that `append_range` returns a reference to the string.
std::string c;
- static_assert(std::is_lvalue_reference_v<decltype(
- c.append_range(FullContainer_Begin_EmptyRange<char>.input)
- )>);
+ static_assert(std::is_lvalue_reference_v<decltype(c.append_range(FullContainer_Begin_EmptyRange<char>.input))>);
assert(&c.append_range(FullContainer_Begin_EmptyRange<char>.input) == &c);
assert(&c.append_range(FullContainer_Begin_OneElementRange<char>.input) == &c);
assert(&c.append_range(FullContainer_Begin_MidRange<char>.input) == &c);
diff --git a/libcxx/test/std/strings/basic.string/string.modifiers/string_append/iterator.pass.cpp b/libcxx/test/std/strings/basic.string/string.modifiers/string_append/iterator.pass.cpp
index cf740531364745a..6502e630d92878e 100644
--- a/libcxx/test/std/strings/basic.string/string.modifiers/string_append/iterator.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.modifiers/string_append/iterator.pass.cpp
@@ -19,36 +19,35 @@
#include "min_allocator.h"
template <class S, class It>
-TEST_CONSTEXPR_CXX20 void
-test(S s, It first, It last, S expected)
-{
- s.append(first, last);
- LIBCPP_ASSERT(s.__invariants());
- assert(s == expected);
+TEST_CONSTEXPR_CXX20 void test(S s, It first, It last, S expected) {
+ s.append(first, last);
+ LIBCPP_ASSERT(s.__invariants());
+ assert(s == expected);
}
#ifndef TEST_HAS_NO_EXCEPTIONS
-struct Widget { operator char() const { throw 42; } };
+struct Widget {
+ operator char() const { throw 42; }
+};
template <class S, class It>
-TEST_CONSTEXPR_CXX20 void
-test_exceptions(S s, It first, It last)
-{
- S original = s;
- typename S::iterator begin = s.begin();
- typename S::iterator end = s.end();
-
- try {
- s.append(first, last);
- assert(false);
- } catch (...) {}
-
- // Part of "no effects" is that iterators and pointers
- // into the string must not have been invalidated.
- LIBCPP_ASSERT(s.__invariants());
- assert(s == original);
- assert(s.begin() == begin);
- assert(s.end() == end);
+TEST_CONSTEXPR_CXX20 void test_exceptions(S s, It first, It last) {
+ S original = s;
+ typename S::iterator begin = s.begin();
+ typename S::iterator end = s.end();
+
+ try {
+ s.append(first, last);
+ assert(false);
+ } catch (...) {
+ }
+
+ // Part of "no effects" is that iterators and pointers
+ // into the string must not have been invalidated.
+ LIBCPP_ASSERT(s.__invariants());
+ assert(s == original);
+ assert(s.begin() == begin);
+ assert(s.end() == end);
}
#endif
@@ -56,59 +55,89 @@ template <class S>
TEST_CONSTEXPR_CXX20 void test_string() {
const char* s = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
test(S(), s, s, S());
- test(S(), s, s+1, S("A"));
- test(S(), s, s+10, S("ABCDEFGHIJ"));
- test(S(), s, s+52, S("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"));
+ test(S(), s, s + 1, S("A"));
+ test(S(), s, s + 10, S("ABCDEFGHIJ"));
+ test(S(), s, s + 52, S("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"));
test(S("12345"), s, s, S("12345"));
- test(S("12345"), s, s+1, S("12345A"));
- test(S("12345"), s, s+10, S("12345ABCDEFGHIJ"));
- test(S("12345"), s, s+52, S("12345ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"));
+ test(S("12345"), s, s + 1, S("12345A"));
+ test(S("12345"), s, s + 10, S("12345ABCDEFGHIJ"));
+ test(S("12345"), s, s + 52, S("12345ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"));
test(S("1234567890"), s, s, S("1234567890"));
- test(S("1234567890"), s, s+1, S("1234567890A"));
- test(S("1234567890"), s, s+10, S("1234567890ABCDEFGHIJ"));
- test(S("1234567890"), s, s+52, S("1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"));
+ test(S("1234567890"), s, s + 1, S("1234567890A"));
+ test(S("1234567890"), s, s + 10, S("1234567890ABCDEFGHIJ"));
+ test(S("1234567890"), s, s + 52, S("1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"));
test(S("12345678901234567890"), s, s, S("12345678901234567890"));
- test(S("12345678901234567890"), s, s+1, S("12345678901234567890""A"));
- test(S("12345678901234567890"), s, s+10, S("12345678901234567890""ABCDEFGHIJ"));
- test(S("12345678901234567890"), s, s+52,
- S("12345678901234567890""ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"));
+ test(S("12345678901234567890"),
+ s,
+ s + 1,
+ S("12345678901234567890"
+ "A"));
+ test(S("12345678901234567890"),
+ s,
+ s + 10,
+ S("12345678901234567890"
+ "ABCDEFGHIJ"));
+ test(S("12345678901234567890"),
+ s,
+ s + 52,
+ S("12345678901234567890"
+ "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"));
test(S(), cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s), S());
- test(S(), cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s+1), S("A"));
- test(S(), cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s+10),
- S("ABCDEFGHIJ"));
- test(S(), cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s+52),
- S("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"));
-
- test(S("12345"), cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s),
- S("12345"));
- test(S("12345"), cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s+1),
- S("12345A"));
- test(S("12345"), cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s+10),
- S("12345ABCDEFGHIJ"));
- test(S("12345"), cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s+52),
- S("12345ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"));
-
- test(S("1234567890"), cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s),
- S("1234567890"));
- test(S("1234567890"), cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s+1),
- S("1234567890A"));
- test(S("1234567890"), cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s+10),
- S("1234567890ABCDEFGHIJ"));
- test(S("1234567890"), cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s+52),
- S("1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"));
-
- test(S("12345678901234567890"), cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s),
- S("12345678901234567890"));
- test(S("12345678901234567890"), cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s+1),
- S("12345678901234567890""A"));
- test(S("12345678901234567890"), cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s+10),
- S("12345678901234567890""ABCDEFGHIJ"));
- test(S("12345678901234567890"), cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s+52),
- S("12345678901234567890""ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"));
+ test(S(), cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s + 1), S("A"));
+ test(S(), cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s + 10), S("ABCDEFGHIJ"));
+ test(S(),
+ cpp17_input_iterator<const char*>(s),
+ cpp17_input_iterator<const char*>(s + 52),
+ S("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"));
+
+ test(S("12345"), cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s), S("12345"));
+ test(S("12345"), cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s + 1), S("12345A"));
+ test(S("12345"),
+ cpp17_input_iterator<const char*>(s),
+ cpp17_input_iterator<const char*>(s + 10),
+ S("12345ABCDEFGHIJ"));
+ test(S("12345"),
+ cpp17_input_iterator<const char*>(s),
+ cpp17_input_iterator<const char*>(s + 52),
+ S("12345ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"));
+
+ test(S("1234567890"), cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s), S("1234567890"));
+ test(S("1234567890"),
+ cpp17_input_iterator<const char*>(s),
+ cpp17_input_iterator<const char*>(s + 1),
+ S("1234567890A"));
+ test(S("1234567890"),
+ cpp17_input_iterator<const char*>(s),
+ cpp17_input_iterator<const char*>(s + 10),
+ S("1234567890ABCDEFGHIJ"));
+ test(S("1234567890"),
+ cpp17_input_iterator<const char*>(s),
+ cpp17_input_iterator<const char*>(s + 52),
+ S("1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"));
+
+ test(S("12345678901234567890"),
+ cpp17_input_iterator<const char*>(s),
+ cpp17_input_iterator<const char*>(s),
+ S("12345678901234567890"));
+ test(S("12345678901234567890"),
+ cpp17_input_iterator<const char*>(s),
+ cpp17_input_iterator<const char*>(s + 1),
+ S("12345678901234567890"
+ "A"));
+ test(S("12345678901234567890"),
+ cpp17_input_iterator<const char*>(s),
+ cpp17_input_iterator<const char*>(s + 10),
+ S("12345678901234567890"
+ "ABCDEFGHIJ"));
+ test(S("12345678901234567890"),
+ cpp17_input_iterator<const char*>(s),
+ cpp17_input_iterator<const char*>(s + 52),
+ S("12345678901234567890"
+ "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"));
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -123,16 +152,16 @@ TEST_CONSTEXPR_CXX20 bool test() {
typedef ThrowingIterator<char> TIter;
typedef cpp17_input_iterator<TIter> IIter;
const char* s = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
- test_exceptions(S(), IIter(TIter(s, s+10, 4, TIter::TAIncrement)), IIter(TIter()));
- test_exceptions(S(), IIter(TIter(s, s+10, 5, TIter::TADereference)), IIter(TIter()));
- test_exceptions(S(), IIter(TIter(s, s+10, 6, TIter::TAComparison)), IIter(TIter()));
+ test_exceptions(S(), IIter(TIter(s, s + 10, 4, TIter::TAIncrement)), IIter(TIter()));
+ test_exceptions(S(), IIter(TIter(s, s + 10, 5, TIter::TADereference)), IIter(TIter()));
+ test_exceptions(S(), IIter(TIter(s, s + 10, 6, TIter::TAComparison)), IIter(TIter()));
- test_exceptions(S(), TIter(s, s+10, 4, TIter::TAIncrement), TIter());
- test_exceptions(S(), TIter(s, s+10, 5, TIter::TADereference), TIter());
- test_exceptions(S(), TIter(s, s+10, 6, TIter::TAComparison), TIter());
+ test_exceptions(S(), TIter(s, s + 10, 4, TIter::TAIncrement), TIter());
+ test_exceptions(S(), TIter(s, s + 10, 5, TIter::TADereference), TIter());
+ test_exceptions(S(), TIter(s, s + 10, 6, TIter::TAComparison), TIter());
Widget w[100];
- test_exceptions(S(), w, w+100);
+ test_exceptions(S(), w, w + 100);
}
#endif
@@ -162,23 +191,24 @@ TEST_CONSTEXPR_CXX20 bool test() {
}
{ // regression-test appending to self in sneaky ways
- std::string s_short = "hello";
- std::string s_long = "Lorem ipsum dolor sit amet, consectetur/";
+ std::string s_short = "hello";
+ std::string s_long = "Lorem ipsum dolor sit amet, consectetur/";
std::string s_othertype = "hello";
- std::string s_sneaky = "hello";
+ std::string s_sneaky = "hello";
- test(s_short, s_short.data() + s_short.size(), s_short.data() + s_short.size() + 1,
- std::string("hello\0", 6));
- test(s_long, s_long.data() + s_long.size(), s_long.data() + s_long.size() + 1,
+ test(s_short, s_short.data() + s_short.size(), s_short.data() + s_short.size() + 1, std::string("hello\0", 6));
+ test(s_long,
+ s_long.data() + s_long.size(),
+ s_long.data() + s_long.size() + 1,
std::string("Lorem ipsum dolor sit amet, consectetur/\0", 41));
s_sneaky.reserve(12);
test(s_sneaky, s_sneaky.data(), s_sneaky.data() + 6, std::string("hellohello\0", 11));
- if (!TEST_IS_CONSTANT_EVALUATED) {
- const unsigned char *first = reinterpret_cast<const unsigned char*>(s_othertype.data());
- test(s_othertype, first + 2, first + 5, std::string("hellollo"));
- }
+ if (!TEST_IS_CONSTANT_EVALUATED) {
+ const unsigned char* first = reinterpret_cast<const unsigned char*>(s_othertype.data());
+ test(s_othertype, first + 2, first + 5, std::string("hellollo"));
+ }
}
{ // test with a move iterator that returns char&&
@@ -201,8 +231,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.modifiers/string_append/pointer.pass.cpp b/libcxx/test/std/strings/basic.string/string.modifiers/string_append/pointer.pass.cpp
index 526fed83daca348..68f5838ccf2f02a 100644
--- a/libcxx/test/std/strings/basic.string/string.modifiers/string_append/pointer.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.modifiers/string_append/pointer.pass.cpp
@@ -18,12 +18,10 @@
#include "min_allocator.h"
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(S s, const typename S::value_type* str, S expected)
-{
- s.append(str);
- LIBCPP_ASSERT(s.__invariants());
- assert(s == expected);
+TEST_CONSTEXPR_CXX20 void test(S s, const typename S::value_type* str, S expected) {
+ s.append(str);
+ LIBCPP_ASSERT(s.__invariants());
+ assert(s == expected);
}
template <class S>
@@ -38,8 +36,7 @@ TEST_CONSTEXPR_CXX20 void test_string() {
test(S("12345678901234567890"), "", S("12345678901234567890"));
test(S("12345678901234567890"), "12345", S("1234567890123456789012345"));
- test(S("12345678901234567890"), "12345678901234567890",
- S("1234567890123456789012345678901234567890"));
+ test(S("12345678901234567890"), "12345678901234567890", S("1234567890123456789012345678901234567890"));
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -66,8 +63,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.modifiers/string_append/pointer_size.pass.cpp b/libcxx/test/std/strings/basic.string/string.modifiers/string_append/pointer_size.pass.cpp
index 57390cadb7c4a24..b98c91cf097b1a0 100644
--- a/libcxx/test/std/strings/basic.string/string.modifiers/string_append/pointer_size.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.modifiers/string_append/pointer_size.pass.cpp
@@ -19,12 +19,10 @@
#include "min_allocator.h"
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(S s, const typename S::value_type* str, typename S::size_type n, S expected)
-{
- s.append(str, n);
- LIBCPP_ASSERT(s.__invariants());
- assert(s == expected);
+TEST_CONSTEXPR_CXX20 void test(S s, const typename S::value_type* str, typename S::size_type n, S expected) {
+ s.append(str, n);
+ LIBCPP_ASSERT(s.__invariants());
+ assert(s == expected);
}
template <class S>
@@ -43,8 +41,7 @@ TEST_CONSTEXPR_CXX20 void test_string() {
test(S("12345678901234567890"), "", 0, S("12345678901234567890"));
test(S("12345678901234567890"), "12345", 5, S("1234567890123456789012345"));
- test(S("12345678901234567890"), "12345678901234567890", 20,
- S("1234567890123456789012345678901234567890"));
+ test(S("12345678901234567890"), "12345678901234567890", 20, S("1234567890123456789012345678901234567890"));
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -72,8 +69,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.modifiers/string_append/push_back.pass.cpp b/libcxx/test/std/strings/basic.string/string.modifiers/string_append/push_back.pass.cpp
index 809ed97decd7936..c985d89f88ffad7 100644
--- a/libcxx/test/std/strings/basic.string/string.modifiers/string_append/push_back.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.modifiers/string_append/push_back.pass.cpp
@@ -23,46 +23,44 @@ struct VeryLarge {
};
namespace std {
- template <>
- struct char_traits<VeryLarge> {
- using char_type = VeryLarge;
- using int_type = int;
- using off_type = streamoff;
- using pos_type = streampos;
- using state_type = mbstate_t;
+template <>
+struct char_traits<VeryLarge> {
+ using char_type = VeryLarge;
+ using int_type = int;
+ using off_type = streamoff;
+ using pos_type = streampos;
+ using state_type = mbstate_t;
- static TEST_CONSTEXPR_CXX20 void assign(char_type& c1, const char_type& c2) { c1 = c2; }
- static bool eq(char_type c1, char_type c2);
- static bool lt(char_type c1, char_type c2);
+ static TEST_CONSTEXPR_CXX20 void assign(char_type& c1, const char_type& c2) { c1 = c2; }
+ static bool eq(char_type c1, char_type c2);
+ static bool lt(char_type c1, char_type c2);
- static int compare(const char_type* s1, const char_type* s2, std::size_t n);
- static std::size_t length(const char_type* s);
- static const char_type* find(const char_type* s, std::size_t n, const char_type& a);
- static char_type* move(char_type* s1, const char_type* s2, std::size_t n);
- static TEST_CONSTEXPR_CXX20 char_type* copy(char_type* s1, const char_type* s2, std::size_t n) {
- std::copy_n(s2, n, s1);
- return s1;
- }
- static TEST_CONSTEXPR_CXX20 char_type* assign(char_type* s, std::size_t n, char_type a) {
- std::fill_n(s, n, a);
- return s;
- }
+ static int compare(const char_type* s1, const char_type* s2, std::size_t n);
+ static std::size_t length(const char_type* s);
+ static const char_type* find(const char_type* s, std::size_t n, const char_type& a);
+ static char_type* move(char_type* s1, const char_type* s2, std::size_t n);
+ static TEST_CONSTEXPR_CXX20 char_type* copy(char_type* s1, const char_type* s2, std::size_t n) {
+ std::copy_n(s2, n, s1);
+ return s1;
+ }
+ static TEST_CONSTEXPR_CXX20 char_type* assign(char_type* s, std::size_t n, char_type a) {
+ std::fill_n(s, n, a);
+ return s;
+ }
- static int_type not_eof(int_type c);
- static char_type to_char_type(int_type c);
- static int_type to_int_type(char_type c);
- static bool eq_int_type(int_type c1, int_type c2);
- static int_type eof();
- };
+ static int_type not_eof(int_type c);
+ static char_type to_char_type(int_type c);
+ static int_type to_int_type(char_type c);
+ static bool eq_int_type(int_type c1, int_type c2);
+ static int_type eof();
+};
} // end namespace std
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(S s, typename S::value_type c, S expected)
-{
- s.push_back(c);
- LIBCPP_ASSERT(s.__invariants());
- assert(s == expected);
+TEST_CONSTEXPR_CXX20 void test(S s, typename S::value_type c, S expected) {
+ s.push_back(c);
+ LIBCPP_ASSERT(s.__invariants());
+ assert(s == expected);
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -93,8 +91,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.modifiers/string_append/size_char.pass.cpp b/libcxx/test/std/strings/basic.string/string.modifiers/string_append/size_char.pass.cpp
index d6c38d2f00d31e2..eb0728456df5be4 100644
--- a/libcxx/test/std/strings/basic.string/string.modifiers/string_append/size_char.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.modifiers/string_append/size_char.pass.cpp
@@ -18,12 +18,10 @@
#include "min_allocator.h"
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(S s, typename S::size_type n, typename S::value_type c, S expected)
-{
- s.append(n, c);
- LIBCPP_ASSERT(s.__invariants());
- assert(s == expected);
+TEST_CONSTEXPR_CXX20 void test(S s, typename S::size_type n, typename S::value_type c, S expected) {
+ s.append(n, c);
+ LIBCPP_ASSERT(s.__invariants());
+ assert(s == expected);
}
template <class S>
@@ -51,8 +49,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.modifiers/string_append/string.pass.cpp b/libcxx/test/std/strings/basic.string/string.modifiers/string_append/string.pass.cpp
index cd4b1a4ec5c92b3..21f2ff53004d158 100644
--- a/libcxx/test/std/strings/basic.string/string.modifiers/string_append/string.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.modifiers/string_append/string.pass.cpp
@@ -18,12 +18,10 @@
#include "min_allocator.h"
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(S s, S str, S expected)
-{
- s.append(str);
- LIBCPP_ASSERT(s.__invariants());
- assert(s == expected);
+TEST_CONSTEXPR_CXX20 void test(S s, S str, S expected) {
+ s.append(str);
+ LIBCPP_ASSERT(s.__invariants());
+ assert(s == expected);
}
template <class S>
@@ -46,8 +44,7 @@ TEST_CONSTEXPR_CXX20 void test_string() {
test(S("12345678901234567890"), S(), S("12345678901234567890"));
test(S("12345678901234567890"), S("12345"), S("1234567890123456789012345"));
test(S("12345678901234567890"), S("1234567890"), S("123456789012345678901234567890"));
- test(S("12345678901234567890"), S("12345678901234567890"),
- S("1234567890123456789012345678901234567890"));
+ test(S("12345678901234567890"), S("12345678901234567890"), S("1234567890123456789012345678901234567890"));
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -57,7 +54,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
#endif
#if TEST_STD_VER >= 11
- { // LWG 2946
+ { // LWG 2946
std::string s;
s.append({"abc", 1});
assert(s.size() == 1);
@@ -68,8 +65,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.modifiers/string_append/string_size_size.pass.cpp b/libcxx/test/std/strings/basic.string/string.modifiers/string_append/string_size_size.pass.cpp
index 069775d4b30911a..902d29c53ac69f5 100644
--- a/libcxx/test/std/strings/basic.string/string.modifiers/string_append/string_size_size.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.modifiers/string_append/string_size_size.pass.cpp
@@ -20,54 +20,40 @@
#include "min_allocator.h"
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(S s, S str, typename S::size_type pos, typename S::size_type n, S expected)
-{
- if (pos <= str.size())
- {
- s.append(str, pos, n);
- LIBCPP_ASSERT(s.__invariants());
- assert(s == expected);
- }
+TEST_CONSTEXPR_CXX20 void test(S s, S str, typename S::size_type pos, typename S::size_type n, S expected) {
+ if (pos <= str.size()) {
+ s.append(str, pos, n);
+ LIBCPP_ASSERT(s.__invariants());
+ assert(s == expected);
+ }
#ifndef TEST_HAS_NO_EXCEPTIONS
- else if (!TEST_IS_CONSTANT_EVALUATED)
- {
- try
- {
- s.append(str, pos, n);
- assert(false);
- }
- catch (std::out_of_range&)
- {
- assert(pos > str.size());
- }
+ else if (!TEST_IS_CONSTANT_EVALUATED) {
+ try {
+ s.append(str, pos, n);
+ assert(false);
+ } catch (std::out_of_range&) {
+ assert(pos > str.size());
}
+ }
#endif
}
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test_npos(S s, S str, typename S::size_type pos, S expected)
-{
- if (pos <= str.size())
- {
- s.append(str, pos);
- LIBCPP_ASSERT(s.__invariants());
- assert(s == expected);
- }
+TEST_CONSTEXPR_CXX20 void test_npos(S s, S str, typename S::size_type pos, S expected) {
+ if (pos <= str.size()) {
+ s.append(str, pos);
+ LIBCPP_ASSERT(s.__invariants());
+ assert(s == expected);
+ }
#ifndef TEST_HAS_NO_EXCEPTIONS
- else if (!TEST_IS_CONSTANT_EVALUATED)
- {
- try
- {
- s.append(str, pos);
- assert(false);
- }
- catch (std::out_of_range&)
- {
- assert(pos > str.size());
- }
+ else if (!TEST_IS_CONSTANT_EVALUATED) {
+ try {
+ s.append(str, pos);
+ assert(false);
+ } catch (std::out_of_range&) {
+ assert(pos > str.size());
}
+ }
#endif
}
@@ -92,8 +78,7 @@ TEST_CONSTEXPR_CXX20 void test_string() {
test(S("12345678901234567890"), S(), 0, 0, S("12345678901234567890"));
test(S("12345678901234567890"), S("12345"), 1, 3, S("12345678901234567890234"));
- test(S("12345678901234567890"), S("12345678901234567890"), 5, 10,
- S("123456789012345678906789012345"));
+ test(S("12345678901234567890"), S("12345678901234567890"), 5, 10, S("123456789012345678906789012345"));
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -116,8 +101,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.modifiers/string_append/string_view.pass.cpp b/libcxx/test/std/strings/basic.string/string.modifiers/string_append/string_view.pass.cpp
index c68445eaa08ea06..c09cdde1bc105e3 100644
--- a/libcxx/test/std/strings/basic.string/string.modifiers/string_append/string_view.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.modifiers/string_append/string_view.pass.cpp
@@ -19,12 +19,10 @@
#include "min_allocator.h"
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 void
-test(S s, SV sv, S expected)
-{
- s.append(sv);
- LIBCPP_ASSERT(s.__invariants());
- assert(s == expected);
+TEST_CONSTEXPR_CXX20 void test(S s, SV sv, S expected) {
+ s.append(sv);
+ LIBCPP_ASSERT(s.__invariants());
+ assert(s == expected);
}
template <class S>
@@ -48,8 +46,7 @@ TEST_CONSTEXPR_CXX20 void test_string() {
test(S("12345678901234567890"), SV(), S("12345678901234567890"));
test(S("12345678901234567890"), SV("12345"), S("1234567890123456789012345"));
test(S("12345678901234567890"), SV("1234567890"), S("123456789012345678901234567890"));
- test(S("12345678901234567890"), SV("12345678901234567890"),
- S("1234567890123456789012345678901234567890"));
+ test(S("12345678901234567890"), SV("12345678901234567890"), S("1234567890123456789012345678901234567890"));
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -61,8 +58,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.modifiers/string_assign/T_size_size.pass.cpp b/libcxx/test/std/strings/basic.string/string.modifiers/string_assign/T_size_size.pass.cpp
index 727e1986f37a42b..a2a954cb94aac6a 100644
--- a/libcxx/test/std/strings/basic.string/string.modifiers/string_assign/T_size_size.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.modifiers/string_assign/T_size_size.pass.cpp
@@ -19,54 +19,40 @@
#include "min_allocator.h"
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 void
-test(S s, SV sv, typename S::size_type pos, typename S::size_type n, S expected)
-{
- if (pos <= sv.size())
- {
- s.assign(sv, pos, n);
- LIBCPP_ASSERT(s.__invariants());
- assert(s == expected);
- }
+TEST_CONSTEXPR_CXX20 void test(S s, SV sv, typename S::size_type pos, typename S::size_type n, S expected) {
+ if (pos <= sv.size()) {
+ s.assign(sv, pos, n);
+ LIBCPP_ASSERT(s.__invariants());
+ assert(s == expected);
+ }
#ifndef TEST_HAS_NO_EXCEPTIONS
- else if (!TEST_IS_CONSTANT_EVALUATED)
- {
- try
- {
- s.assign(sv, pos, n);
- assert(false);
- }
- catch (std::out_of_range&)
- {
- assert(pos > sv.size());
- }
+ else if (!TEST_IS_CONSTANT_EVALUATED) {
+ try {
+ s.assign(sv, pos, n);
+ assert(false);
+ } catch (std::out_of_range&) {
+ assert(pos > sv.size());
}
+ }
#endif
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 void
-test_npos(S s, SV sv, typename S::size_type pos, S expected)
-{
- if (pos <= sv.size())
- {
- s.assign(sv, pos);
- LIBCPP_ASSERT(s.__invariants());
- assert(s == expected);
- }
+TEST_CONSTEXPR_CXX20 void test_npos(S s, SV sv, typename S::size_type pos, S expected) {
+ if (pos <= sv.size()) {
+ s.assign(sv, pos);
+ LIBCPP_ASSERT(s.__invariants());
+ assert(s == expected);
+ }
#ifndef TEST_HAS_NO_EXCEPTIONS
- else if (!TEST_IS_CONSTANT_EVALUATED)
- {
- try
- {
- s.assign(sv, pos);
- assert(false);
- }
- catch (std::out_of_range&)
- {
- assert(pos > sv.size());
- }
+ else if (!TEST_IS_CONSTANT_EVALUATED) {
+ try {
+ s.assign(sv, pos);
+ assert(false);
+ } catch (std::out_of_range&) {
+ assert(pos > sv.size());
}
+ }
#endif
}
@@ -92,8 +78,7 @@ TEST_CONSTEXPR_CXX20 void test_string() {
test(S("12345678901234567890"), SV(), 0, 0, S());
test(S("12345678901234567890"), SV("12345"), 1, 3, S("234"));
- test(S("12345678901234567890"), SV("12345678901234567890"), 5, 10,
- S("6789012345"));
+ test(S("12345678901234567890"), SV("12345678901234567890"), 5, 10, S("6789012345"));
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -115,11 +100,11 @@ TEST_CONSTEXPR_CXX20 bool test() {
}
{
- std::string s = "ABCD";
+ std::string s = "ABCD";
std::string_view sv = "EFGH";
- char arr[] = "IJKL";
+ char arr[] = "IJKL";
- s.assign("CDEF", 0); // calls assign(const char *, len)
+ s.assign("CDEF", 0); // calls assign(const char *, len)
assert(s == "");
s.clear();
@@ -127,29 +112,29 @@ TEST_CONSTEXPR_CXX20 bool test() {
assert(s == "QRST");
s.clear();
- s.assign(sv, 0); // calls assign(T, pos, npos)
+ s.assign(sv, 0); // calls assign(T, pos, npos)
assert(s == sv);
s.clear();
- s.assign(sv, 0, std::string::npos); // calls assign(T, pos, npos)
+ s.assign(sv, 0, std::string::npos); // calls assign(T, pos, npos)
assert(s == sv);
s.clear();
- s.assign(arr, 0); // calls assign(const char *, len)
+ s.assign(arr, 0); // calls assign(const char *, len)
assert(s == "");
s.clear();
- s.assign(arr, 0, std::string::npos); // calls assign(string("IJKL"), pos, npos)
+ s.assign(arr, 0, std::string::npos); // calls assign(string("IJKL"), pos, npos)
assert(s == "IJKL");
s.clear();
- s.assign(arr, 0); // calls assign(const char *, len)
+ s.assign(arr, 0); // calls assign(const char *, len)
assert(s == "");
s.clear();
}
{
- std::string s = "ABCD";
+ std::string s = "ABCD";
std::string_view sv = s;
s.assign(sv);
assert(s == "ABCD");
@@ -160,7 +145,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
}
{
- std::string s = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
+ std::string s = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
std::string_view sv = s;
s.assign(sv);
assert(s == "ABCDEFGHIJKLMNOPQRSTUVWXYZ");
@@ -172,8 +157,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.modifiers/string_assign/assign_range.pass.cpp b/libcxx/test/std/strings/basic.string/string.modifiers/string_assign/assign_range.pass.cpp
index fe213df5ab55971..5c43eeaf39dfff4 100644
--- a/libcxx/test/std/strings/basic.string/string.modifiers/string_assign/assign_range.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.modifiers/string_assign/assign_range.pass.cpp
@@ -43,9 +43,7 @@ int main(int, char**) {
{ // Check that `assign_range` returns a reference to the string.
std::string c;
- static_assert(std::is_lvalue_reference_v<decltype(
- c.assign_range(FullContainer_Begin_EmptyRange<char>.input)
- )>);
+ static_assert(std::is_lvalue_reference_v<decltype(c.assign_range(FullContainer_Begin_EmptyRange<char>.input))>);
assert(&c.assign_range(FullContainer_Begin_EmptyRange<char>.input) == &c);
assert(&c.assign_range(FullContainer_Begin_OneElementRange<char>.input) == &c);
assert(&c.assign_range(FullContainer_Begin_MidRange<char>.input) == &c);
diff --git a/libcxx/test/std/strings/basic.string/string.modifiers/string_assign/initializer_list.pass.cpp b/libcxx/test/std/strings/basic.string/string.modifiers/string_assign/initializer_list.pass.cpp
index cee16ef6fba5f8c..baabe167ff17a0f 100644
--- a/libcxx/test/std/strings/basic.string/string.modifiers/string_assign/initializer_list.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.modifiers/string_assign/initializer_list.pass.cpp
@@ -34,8 +34,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.modifiers/string_assign/iterator.pass.cpp b/libcxx/test/std/strings/basic.string/string.modifiers/string_assign/iterator.pass.cpp
index 9af2f12bdb308fe..81e28391dbd68d0 100644
--- a/libcxx/test/std/strings/basic.string/string.modifiers/string_assign/iterator.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.modifiers/string_assign/iterator.pass.cpp
@@ -19,36 +19,35 @@
#include "min_allocator.h"
template <class S, class It>
-TEST_CONSTEXPR_CXX20 void
-test(S s, It first, It last, S expected)
-{
- s.assign(first, last);
- LIBCPP_ASSERT(s.__invariants());
- assert(s == expected);
+TEST_CONSTEXPR_CXX20 void test(S s, It first, It last, S expected) {
+ s.assign(first, last);
+ LIBCPP_ASSERT(s.__invariants());
+ assert(s == expected);
}
#ifndef TEST_HAS_NO_EXCEPTIONS
-struct Widget { operator char() const { throw 42; } };
+struct Widget {
+ operator char() const { throw 42; }
+};
template <class S, class It>
-void
-test_exceptions(S s, It first, It last)
-{
- S original = s;
- typename S::iterator begin = s.begin();
- typename S::iterator end = s.end();
-
- try {
- s.assign(first, last);
- assert(false);
- } catch (...) {}
-
- // Part of "no effects" is that iterators and pointers
- // into the string must not have been invalidated.
- LIBCPP_ASSERT(s.__invariants());
- assert(s == original);
- assert(s.begin() == begin);
- assert(s.end() == end);
+void test_exceptions(S s, It first, It last) {
+ S original = s;
+ typename S::iterator begin = s.begin();
+ typename S::iterator end = s.end();
+
+ try {
+ s.assign(first, last);
+ assert(false);
+ } catch (...) {
+ }
+
+ // Part of "no effects" is that iterators and pointers
+ // into the string must not have been invalidated.
+ LIBCPP_ASSERT(s.__invariants());
+ assert(s == original);
+ assert(s.begin() == begin);
+ assert(s.end() == end);
}
#endif
@@ -56,59 +55,65 @@ template <class S>
TEST_CONSTEXPR_CXX20 void test_string() {
const char* s = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
test(S(), s, s, S());
- test(S(), s, s+1, S("A"));
- test(S(), s, s+10, S("ABCDEFGHIJ"));
- test(S(), s, s+52, S("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"));
+ test(S(), s, s + 1, S("A"));
+ test(S(), s, s + 10, S("ABCDEFGHIJ"));
+ test(S(), s, s + 52, S("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"));
test(S("12345"), s, s, S());
- test(S("12345"), s, s+1, S("A"));
- test(S("12345"), s, s+10, S("ABCDEFGHIJ"));
- test(S("12345"), s, s+52, S("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"));
+ test(S("12345"), s, s + 1, S("A"));
+ test(S("12345"), s, s + 10, S("ABCDEFGHIJ"));
+ test(S("12345"), s, s + 52, S("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"));
test(S("1234567890"), s, s, S());
- test(S("1234567890"), s, s+1, S("A"));
- test(S("1234567890"), s, s+10, S("ABCDEFGHIJ"));
- test(S("1234567890"), s, s+52, S("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"));
+ test(S("1234567890"), s, s + 1, S("A"));
+ test(S("1234567890"), s, s + 10, S("ABCDEFGHIJ"));
+ test(S("1234567890"), s, s + 52, S("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"));
test(S("12345678901234567890"), s, s, S());
- test(S("12345678901234567890"), s, s+1, S("A"));
- test(S("12345678901234567890"), s, s+10, S("ABCDEFGHIJ"));
- test(S("12345678901234567890"), s, s+52,
- S("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"));
+ test(S("12345678901234567890"), s, s + 1, S("A"));
+ test(S("12345678901234567890"), s, s + 10, S("ABCDEFGHIJ"));
+ test(S("12345678901234567890"), s, s + 52, S("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"));
test(S(), cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s), S());
- test(S(), cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s+1), S("A"));
- test(S(), cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s+10),
- S("ABCDEFGHIJ"));
- test(S(), cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s+52),
- S("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"));
-
- test(S("12345"), cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s),
- S());
- test(S("12345"), cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s+1),
- S("A"));
- test(S("12345"), cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s+10),
- S("ABCDEFGHIJ"));
- test(S("12345"), cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s+52),
- S("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"));
-
- test(S("1234567890"), cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s),
- S());
- test(S("1234567890"), cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s+1),
- S("A"));
- test(S("1234567890"), cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s+10),
- S("ABCDEFGHIJ"));
- test(S("1234567890"), cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s+52),
- S("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"));
-
- test(S("12345678901234567890"), cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s),
- S());
- test(S("12345678901234567890"), cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s+1),
- S("A"));
- test(S("12345678901234567890"), cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s+10),
- S("ABCDEFGHIJ"));
- test(S("12345678901234567890"), cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s+52),
- S("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"));
+ test(S(), cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s + 1), S("A"));
+ test(S(), cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s + 10), S("ABCDEFGHIJ"));
+ test(S(),
+ cpp17_input_iterator<const char*>(s),
+ cpp17_input_iterator<const char*>(s + 52),
+ S("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"));
+
+ test(S("12345"), cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s), S());
+ test(S("12345"), cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s + 1), S("A"));
+ test(S("12345"), cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s + 10), S("ABCDEFGHIJ"));
+ test(S("12345"),
+ cpp17_input_iterator<const char*>(s),
+ cpp17_input_iterator<const char*>(s + 52),
+ S("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"));
+
+ test(S("1234567890"), cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s), S());
+ test(S("1234567890"), cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s + 1), S("A"));
+ test(S("1234567890"),
+ cpp17_input_iterator<const char*>(s),
+ cpp17_input_iterator<const char*>(s + 10),
+ S("ABCDEFGHIJ"));
+ test(S("1234567890"),
+ cpp17_input_iterator<const char*>(s),
+ cpp17_input_iterator<const char*>(s + 52),
+ S("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"));
+
+ test(S("12345678901234567890"), cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s), S());
+ test(S("12345678901234567890"),
+ cpp17_input_iterator<const char*>(s),
+ cpp17_input_iterator<const char*>(s + 1),
+ S("A"));
+ test(S("12345678901234567890"),
+ cpp17_input_iterator<const char*>(s),
+ cpp17_input_iterator<const char*>(s + 10),
+ S("ABCDEFGHIJ"));
+ test(S("12345678901234567890"),
+ cpp17_input_iterator<const char*>(s),
+ cpp17_input_iterator<const char*>(s + 52),
+ S("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"));
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -123,16 +128,16 @@ TEST_CONSTEXPR_CXX20 bool test() {
typedef ThrowingIterator<char> TIter;
typedef cpp17_input_iterator<TIter> IIter;
const char* s = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
- test_exceptions(S(), IIter(TIter(s, s+10, 4, TIter::TAIncrement)), IIter(TIter()));
- test_exceptions(S(), IIter(TIter(s, s+10, 5, TIter::TADereference)), IIter(TIter()));
- test_exceptions(S(), IIter(TIter(s, s+10, 6, TIter::TAComparison)), IIter(TIter()));
+ test_exceptions(S(), IIter(TIter(s, s + 10, 4, TIter::TAIncrement)), IIter(TIter()));
+ test_exceptions(S(), IIter(TIter(s, s + 10, 5, TIter::TADereference)), IIter(TIter()));
+ test_exceptions(S(), IIter(TIter(s, s + 10, 6, TIter::TAComparison)), IIter(TIter()));
- test_exceptions(S(), TIter(s, s+10, 4, TIter::TAIncrement), TIter());
- test_exceptions(S(), TIter(s, s+10, 5, TIter::TADereference), TIter());
- test_exceptions(S(), TIter(s, s+10, 6, TIter::TAComparison), TIter());
+ test_exceptions(S(), TIter(s, s + 10, 4, TIter::TAIncrement), TIter());
+ test_exceptions(S(), TIter(s, s + 10, 5, TIter::TADereference), TIter());
+ test_exceptions(S(), TIter(s, s + 10, 6, TIter::TAComparison), TIter());
Widget w[100];
- test_exceptions(S(), w, w+100);
+ test_exceptions(S(), w, w + 100);
}
#endif
@@ -171,12 +176,11 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
#endif
- return 0;
+ return 0;
}
diff --git a/libcxx/test/std/strings/basic.string/string.modifiers/string_assign/pointer.pass.cpp b/libcxx/test/std/strings/basic.string/string.modifiers/string_assign/pointer.pass.cpp
index 5148f46c1891fbd..11e12c318a2e800 100644
--- a/libcxx/test/std/strings/basic.string/string.modifiers/string_assign/pointer.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.modifiers/string_assign/pointer.pass.cpp
@@ -18,12 +18,10 @@
#include "min_allocator.h"
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(S s, const typename S::value_type* str, S expected)
-{
- s.assign(str);
- LIBCPP_ASSERT(s.__invariants());
- assert(s == expected);
+TEST_CONSTEXPR_CXX20 void test(S s, const typename S::value_type* str, S expected) {
+ s.assign(str);
+ LIBCPP_ASSERT(s.__invariants());
+ assert(s == expected);
}
template <class S>
@@ -38,8 +36,7 @@ TEST_CONSTEXPR_CXX20 void test_string() {
test(S("12345678901234567890"), "", S());
test(S("12345678901234567890"), "12345", S("12345"));
- test(S("12345678901234567890"), "12345678901234567890",
- S("12345678901234567890"));
+ test(S("12345678901234567890"), "12345678901234567890", S("12345678901234567890"));
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -65,8 +62,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.modifiers/string_assign/pointer_size.pass.cpp b/libcxx/test/std/strings/basic.string/string.modifiers/string_assign/pointer_size.pass.cpp
index 25a62b72b75e016..2738a9a6ffad594 100644
--- a/libcxx/test/std/strings/basic.string/string.modifiers/string_assign/pointer_size.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.modifiers/string_assign/pointer_size.pass.cpp
@@ -19,12 +19,10 @@
#include "min_allocator.h"
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(S s, const typename S::value_type* str, typename S::size_type n, S expected)
-{
- s.assign(str, n);
- LIBCPP_ASSERT(s.__invariants());
- assert(s == expected);
+TEST_CONSTEXPR_CXX20 void test(S s, const typename S::value_type* str, typename S::size_type n, S expected) {
+ s.assign(str, n);
+ LIBCPP_ASSERT(s.__invariants());
+ assert(s == expected);
}
template <class S>
@@ -43,8 +41,7 @@ TEST_CONSTEXPR_CXX20 void test_string() {
test(S("12345678901234567890"), "", 0, S());
test(S("12345678901234567890"), "12345", 5, S("12345"));
- test(S("12345678901234567890"), "12345678901234567890", 20,
- S("12345678901234567890"));
+ test(S("12345678901234567890"), "12345678901234567890", 20, S("12345678901234567890"));
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -66,14 +63,13 @@ TEST_CONSTEXPR_CXX20 bool test() {
s_long.assign(s_long.data(), s_long.size());
assert(s_long == "Lorem ipsum dolor sit amet, consectetur/");
- s_long.assign(s_long.data() + 2, 8 );
+ s_long.assign(s_long.data() + 2, 8);
assert(s_long == "rem ipsu");
}
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.modifiers/string_assign/rv_string.pass.cpp b/libcxx/test/std/strings/basic.string/string.modifiers/string_assign/rv_string.pass.cpp
index f491ae04e597c44..a33e8e97157c40b 100644
--- a/libcxx/test/std/strings/basic.string/string.modifiers/string_assign/rv_string.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.modifiers/string_assign/rv_string.pass.cpp
@@ -19,12 +19,10 @@
#include "min_allocator.h"
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(S s, S str, S expected)
-{
- s.assign(std::move(str));
- LIBCPP_ASSERT(s.__invariants());
- assert(s == expected);
+TEST_CONSTEXPR_CXX20 void test(S s, S str, S expected) {
+ s.assign(std::move(str));
+ LIBCPP_ASSERT(s.__invariants());
+ assert(s == expected);
}
template <class S>
@@ -47,8 +45,7 @@ TEST_CONSTEXPR_CXX20 void test_string() {
test(S("12345678901234567890"), S(), S());
test(S("12345678901234567890"), S("12345"), S("12345"));
test(S("12345678901234567890"), S("1234567890"), S("1234567890"));
- test(S("12345678901234567890"), S("12345678901234567890"),
- S("12345678901234567890"));
+ test(S("12345678901234567890"), S("12345678901234567890"), S("12345678901234567890"));
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -60,8 +57,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.modifiers/string_assign/size_char.pass.cpp b/libcxx/test/std/strings/basic.string/string.modifiers/string_assign/size_char.pass.cpp
index 82672e07d2fb0dc..b52c66103395f19 100644
--- a/libcxx/test/std/strings/basic.string/string.modifiers/string_assign/size_char.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.modifiers/string_assign/size_char.pass.cpp
@@ -18,12 +18,10 @@
#include "min_allocator.h"
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(S s, typename S::size_type n, typename S::value_type c, S expected)
-{
- s.assign(n, c);
- LIBCPP_ASSERT(s.__invariants());
- assert(s == expected);
+TEST_CONSTEXPR_CXX20 void test(S s, typename S::size_type n, typename S::value_type c, S expected) {
+ s.assign(n, c);
+ LIBCPP_ASSERT(s.__invariants());
+ assert(s == expected);
}
template <class S>
@@ -51,8 +49,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.modifiers/string_assign/string.pass.cpp b/libcxx/test/std/strings/basic.string/string.modifiers/string_assign/string.pass.cpp
index 99503741743f766..311778c35dcbaa9 100644
--- a/libcxx/test/std/strings/basic.string/string.modifiers/string_assign/string.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.modifiers/string_assign/string.pass.cpp
@@ -27,72 +27,70 @@ TEST_CONSTEXPR_CXX20 void test(S dest, S src) {
}
template <class S>
-TEST_CONSTEXPR_CXX20 void
-testAlloc(S dest, S src, const typename S::allocator_type& a)
-{
- dest.assign(src);
- LIBCPP_ASSERT(dest.__invariants());
- assert(dest == src);
- assert(dest.get_allocator() == a);
+TEST_CONSTEXPR_CXX20 void testAlloc(S dest, S src, const typename S::allocator_type& a) {
+ dest.assign(src);
+ LIBCPP_ASSERT(dest.__invariants());
+ assert(dest == src);
+ assert(dest.get_allocator() == a);
}
template <class S>
TEST_CONSTEXPR_CXX20 void test_assign() {
- using CharT = typename S::value_type;
-
- test(S(), S());
- test(S(), S(CONVERT_TO_CSTRING(CharT, "12345")));
- test(S(), S(CONVERT_TO_CSTRING(CharT, "1234567890")));
- test(S(), S(CONVERT_TO_CSTRING(CharT, "12345678901234567890")));
-
- test(S(CONVERT_TO_CSTRING(CharT, "12345")), S());
- test(S(CONVERT_TO_CSTRING(CharT, "12345")), S(CONVERT_TO_CSTRING(CharT, "12345")));
- test(S(CONVERT_TO_CSTRING(CharT, "12345")), S(CONVERT_TO_CSTRING(CharT, "1234567890")));
- test(S(CONVERT_TO_CSTRING(CharT, "12345")), S(CONVERT_TO_CSTRING(CharT, "12345678901234567890")));
-
- test(S(CONVERT_TO_CSTRING(CharT, "1234567890")), S());
- test(S(CONVERT_TO_CSTRING(CharT, "1234567890")), S(CONVERT_TO_CSTRING(CharT, "12345")));
- test(S(CONVERT_TO_CSTRING(CharT, "1234567890")), S(CONVERT_TO_CSTRING(CharT, "1234567890")));
- test(S(CONVERT_TO_CSTRING(CharT, "1234567890")), S(CONVERT_TO_CSTRING(CharT, "12345678901234567890")));
-
- test(S(CONVERT_TO_CSTRING(CharT, "12345678901234567890")), S());
- test(S(CONVERT_TO_CSTRING(CharT, "12345678901234567890")), S(CONVERT_TO_CSTRING(CharT, "12345")));
- test(S(CONVERT_TO_CSTRING(CharT, "12345678901234567890")), S(CONVERT_TO_CSTRING(CharT, "1234567890")));
- test(S(CONVERT_TO_CSTRING(CharT, "12345678901234567890")), S(CONVERT_TO_CSTRING(CharT, "12345678901234567890")));
+ using CharT = typename S::value_type;
+
+ test(S(), S());
+ test(S(), S(CONVERT_TO_CSTRING(CharT, "12345")));
+ test(S(), S(CONVERT_TO_CSTRING(CharT, "1234567890")));
+ test(S(), S(CONVERT_TO_CSTRING(CharT, "12345678901234567890")));
+
+ test(S(CONVERT_TO_CSTRING(CharT, "12345")), S());
+ test(S(CONVERT_TO_CSTRING(CharT, "12345")), S(CONVERT_TO_CSTRING(CharT, "12345")));
+ test(S(CONVERT_TO_CSTRING(CharT, "12345")), S(CONVERT_TO_CSTRING(CharT, "1234567890")));
+ test(S(CONVERT_TO_CSTRING(CharT, "12345")), S(CONVERT_TO_CSTRING(CharT, "12345678901234567890")));
+
+ test(S(CONVERT_TO_CSTRING(CharT, "1234567890")), S());
+ test(S(CONVERT_TO_CSTRING(CharT, "1234567890")), S(CONVERT_TO_CSTRING(CharT, "12345")));
+ test(S(CONVERT_TO_CSTRING(CharT, "1234567890")), S(CONVERT_TO_CSTRING(CharT, "1234567890")));
+ test(S(CONVERT_TO_CSTRING(CharT, "1234567890")), S(CONVERT_TO_CSTRING(CharT, "12345678901234567890")));
+
+ test(S(CONVERT_TO_CSTRING(CharT, "12345678901234567890")), S());
+ test(S(CONVERT_TO_CSTRING(CharT, "12345678901234567890")), S(CONVERT_TO_CSTRING(CharT, "12345")));
+ test(S(CONVERT_TO_CSTRING(CharT, "12345678901234567890")), S(CONVERT_TO_CSTRING(CharT, "1234567890")));
+ test(S(CONVERT_TO_CSTRING(CharT, "12345678901234567890")), S(CONVERT_TO_CSTRING(CharT, "12345678901234567890")));
}
TEST_CONSTEXPR_CXX20 bool test() {
- test_assign<std::string>();
+ test_assign<std::string>();
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- test_assign<std::wstring>();
+ test_assign<std::wstring>();
#endif
#if TEST_STD_VER >= 20
- test_assign<std::u8string>();
+ test_assign<std::u8string>();
#endif
#if TEST_STD_VER >= 11
- test_assign<std::u16string>();
- test_assign<std::u32string>();
+ test_assign<std::u16string>();
+ test_assign<std::u32string>();
#endif
#ifndef TEST_HAS_NO_NASTY_STRING
- test_assign<nasty_string>();
+ test_assign<nasty_string>();
#endif
- {
- typedef std::string S;
- testAlloc(S(), S(), std::allocator<char>());
- testAlloc(S(), S("12345"), std::allocator<char>());
- testAlloc(S(), S("1234567890"), std::allocator<char>());
- testAlloc(S(), S("12345678901234567890"), std::allocator<char>());
- }
-
- { // LWG#5579 make sure assign takes the allocators where appropriate
- typedef other_allocator<char> A; // has POCCA --> true
- typedef std::basic_string<char, std::char_traits<char>, A> S;
- testAlloc(S(A(5)), S(A(3)), A(3));
- testAlloc(S(A(5)), S("1"), A());
- testAlloc(S(A(5)), S("1", A(7)), A(7));
- testAlloc(S(A(5)), S("1234567890123456789012345678901234567890123456789012345678901234567890", A(7)), A(7));
- }
+ {
+ typedef std::string S;
+ testAlloc(S(), S(), std::allocator<char>());
+ testAlloc(S(), S("12345"), std::allocator<char>());
+ testAlloc(S(), S("1234567890"), std::allocator<char>());
+ testAlloc(S(), S("12345678901234567890"), std::allocator<char>());
+ }
+
+ { // LWG#5579 make sure assign takes the allocators where appropriate
+ typedef other_allocator<char> A; // has POCCA --> true
+ typedef std::basic_string<char, std::char_traits<char>, A> S;
+ testAlloc(S(A(5)), S(A(3)), A(3));
+ testAlloc(S(A(5)), S("1"), A());
+ testAlloc(S(A(5)), S("1", A(7)), A(7));
+ testAlloc(S(A(5)), S("1234567890123456789012345678901234567890123456789012345678901234567890", A(7)), A(7));
+ }
#if TEST_STD_VER >= 11
{
@@ -107,15 +105,14 @@ TEST_CONSTEXPR_CXX20 bool test() {
#if TEST_STD_VER > 14
{
typedef std::string S;
- static_assert(noexcept(S().assign(S())), ""); // LWG#2063
+ static_assert(noexcept(S().assign(S())), ""); // LWG#2063
}
#endif
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.modifiers/string_assign/string_size_size.pass.cpp b/libcxx/test/std/strings/basic.string/string.modifiers/string_assign/string_size_size.pass.cpp
index 4246366a29f0cc6..9448452bafad9c3 100644
--- a/libcxx/test/std/strings/basic.string/string.modifiers/string_assign/string_size_size.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.modifiers/string_assign/string_size_size.pass.cpp
@@ -20,54 +20,40 @@
#include "min_allocator.h"
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(S s, S str, typename S::size_type pos, typename S::size_type n, S expected)
-{
- if (pos <= str.size())
- {
- s.assign(str, pos, n);
- LIBCPP_ASSERT(s.__invariants());
- assert(s == expected);
- }
+TEST_CONSTEXPR_CXX20 void test(S s, S str, typename S::size_type pos, typename S::size_type n, S expected) {
+ if (pos <= str.size()) {
+ s.assign(str, pos, n);
+ LIBCPP_ASSERT(s.__invariants());
+ assert(s == expected);
+ }
#ifndef TEST_HAS_NO_EXCEPTIONS
- else if (!TEST_IS_CONSTANT_EVALUATED)
- {
- try
- {
- s.assign(str, pos, n);
- assert(false);
- }
- catch (std::out_of_range&)
- {
- assert(pos > str.size());
- }
+ else if (!TEST_IS_CONSTANT_EVALUATED) {
+ try {
+ s.assign(str, pos, n);
+ assert(false);
+ } catch (std::out_of_range&) {
+ assert(pos > str.size());
}
+ }
#endif
}
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test_npos(S s, S str, typename S::size_type pos, S expected)
-{
- if (pos <= str.size())
- {
- s.assign(str, pos);
- LIBCPP_ASSERT(s.__invariants());
- assert(s == expected);
- }
+TEST_CONSTEXPR_CXX20 void test_npos(S s, S str, typename S::size_type pos, S expected) {
+ if (pos <= str.size()) {
+ s.assign(str, pos);
+ LIBCPP_ASSERT(s.__invariants());
+ assert(s == expected);
+ }
#ifndef TEST_HAS_NO_EXCEPTIONS
- else if (!TEST_IS_CONSTANT_EVALUATED)
- {
- try
- {
- s.assign(str, pos);
- assert(false);
- }
- catch (std::out_of_range&)
- {
- assert(pos > str.size());
- }
+ else if (!TEST_IS_CONSTANT_EVALUATED) {
+ try {
+ s.assign(str, pos);
+ assert(false);
+ } catch (std::out_of_range&) {
+ assert(pos > str.size());
}
+ }
#endif
}
@@ -92,8 +78,7 @@ TEST_CONSTEXPR_CXX20 void test_string() {
test(S("12345678901234567890"), S(), 0, 0, S());
test(S("12345678901234567890"), S("12345"), 1, 3, S("234"));
- test(S("12345678901234567890"), S("12345678901234567890"), 5, 10,
- S("6789012345"));
+ test(S("12345678901234567890"), S("12345678901234567890"), 5, 10, S("6789012345"));
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -116,8 +101,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.modifiers/string_assign/string_view.pass.cpp b/libcxx/test/std/strings/basic.string/string.modifiers/string_assign/string_view.pass.cpp
index 2a07424b78a0854..aeda9db36a840ed 100644
--- a/libcxx/test/std/strings/basic.string/string.modifiers/string_assign/string_view.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.modifiers/string_assign/string_view.pass.cpp
@@ -20,22 +20,18 @@
#include "test_allocator.h"
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 void
-test(S s, SV sv, S expected)
-{
- s.assign(sv);
- LIBCPP_ASSERT(s.__invariants());
- assert(s == expected);
+TEST_CONSTEXPR_CXX20 void test(S s, SV sv, S expected) {
+ s.assign(sv);
+ LIBCPP_ASSERT(s.__invariants());
+ assert(s == expected);
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 void
-testAlloc(S s, SV sv, const typename S::allocator_type& a)
-{
- s.assign(sv);
- LIBCPP_ASSERT(s.__invariants());
- assert(s == sv);
- assert(s.get_allocator() == a);
+TEST_CONSTEXPR_CXX20 void testAlloc(S s, SV sv, const typename S::allocator_type& a) {
+ s.assign(sv);
+ LIBCPP_ASSERT(s.__invariants());
+ assert(s == sv);
+ assert(s.get_allocator() == a);
}
template <class S>
@@ -59,8 +55,7 @@ TEST_CONSTEXPR_CXX20 void test_string() {
test(S("12345678901234567890"), SV(), S());
test(S("12345678901234567890"), SV("12345"), S("12345"));
test(S("12345678901234567890"), SV("1234567890"), S("1234567890"));
- test(S("12345678901234567890"), SV("12345678901234567890"),
- S("12345678901234567890"));
+ test(S("12345678901234567890"), SV("12345678901234567890"), S("12345678901234567890"));
using A = typename S::allocator_type;
@@ -79,8 +74,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.modifiers/string_copy/copy.pass.cpp b/libcxx/test/std/strings/basic.string/string.modifiers/string_copy/copy.pass.cpp
index 9c8c01878a7349c..e1904baeb9033b0 100644
--- a/libcxx/test/std/strings/basic.string/string.modifiers/string_copy/copy.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.modifiers/string_copy/copy.pass.cpp
@@ -19,33 +19,25 @@
#include "min_allocator.h"
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(S str, typename S::value_type* s, typename S::size_type n,
- typename S::size_type pos)
-{
- const S& cs = str;
- if (pos <= cs.size())
- {
- typename S::size_type r = cs.copy(s, n, pos);
- typename S::size_type rlen = std::min(n, cs.size() - pos);
- assert(r == rlen);
- for (r = 0; r < rlen; ++r)
- assert(S::traits_type::eq(cs[pos+r], s[r]));
- }
+TEST_CONSTEXPR_CXX20 void test(S str, typename S::value_type* s, typename S::size_type n, typename S::size_type pos) {
+ const S& cs = str;
+ if (pos <= cs.size()) {
+ typename S::size_type r = cs.copy(s, n, pos);
+ typename S::size_type rlen = std::min(n, cs.size() - pos);
+ assert(r == rlen);
+ for (r = 0; r < rlen; ++r)
+ assert(S::traits_type::eq(cs[pos + r], s[r]));
+ }
#ifndef TEST_HAS_NO_EXCEPTIONS
- else if (!TEST_IS_CONSTANT_EVALUATED)
- {
- try
- {
- typename S::size_type r = cs.copy(s, n, pos);
- ((void)r); // Prevent unused warning
- assert(false);
- }
- catch (std::out_of_range&)
- {
- assert(pos > str.size());
- }
+ else if (!TEST_IS_CONSTANT_EVALUATED) {
+ try {
+ typename S::size_type r = cs.copy(s, n, pos);
+ ((void)r); // Prevent unused warning
+ assert(false);
+ } catch (std::out_of_range&) {
+ assert(pos > str.size());
}
+ }
#endif
}
@@ -121,8 +113,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.modifiers/string_erase/iter.pass.cpp b/libcxx/test/std/strings/basic.string/string.modifiers/string_erase/iter.pass.cpp
index dde2e65a2cc5eab..03c5b965537c6fe 100644
--- a/libcxx/test/std/strings/basic.string/string.modifiers/string_erase/iter.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.modifiers/string_erase/iter.pass.cpp
@@ -17,15 +17,13 @@
#include "min_allocator.h"
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(S s, typename S::
diff erence_type pos, S expected)
-{
- typename S::const_iterator p = s.begin() + pos;
- typename S::iterator i = s.erase(p);
- LIBCPP_ASSERT(s.__invariants());
- assert(s[s.size()] == typename S::value_type());
- assert(s == expected);
- assert(i - s.begin() == pos);
+TEST_CONSTEXPR_CXX20 void test(S s, typename S::
diff erence_type pos, S expected) {
+ typename S::const_iterator p = s.begin() + pos;
+ typename S::iterator i = s.erase(p);
+ LIBCPP_ASSERT(s.__invariants());
+ assert(s[s.size()] == typename S::value_type());
+ assert(s == expected);
+ assert(i - s.begin() == pos);
}
template <class S>
@@ -53,8 +51,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.modifiers/string_erase/iter_iter.pass.cpp b/libcxx/test/std/strings/basic.string/string.modifiers/string_erase/iter_iter.pass.cpp
index 7976ab3b8ffdacc..f092ad718cdaa89 100644
--- a/libcxx/test/std/strings/basic.string/string.modifiers/string_erase/iter_iter.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.modifiers/string_erase/iter_iter.pass.cpp
@@ -17,16 +17,14 @@
#include "min_allocator.h"
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(S s, typename S::
diff erence_type pos, typename S::
diff erence_type n, S expected)
-{
- typename S::const_iterator first = s.cbegin() + pos;
- typename S::const_iterator last = s.cbegin() + pos + n;
- typename S::iterator i = s.erase(first, last);
- LIBCPP_ASSERT(s.__invariants());
- assert(s[s.size()] == typename S::value_type());
- assert(s == expected);
- assert(i - s.begin() == pos);
+TEST_CONSTEXPR_CXX20 void test(S s, typename S::
diff erence_type pos, typename S::
diff erence_type n, S expected) {
+ typename S::const_iterator first = s.cbegin() + pos;
+ typename S::const_iterator last = s.cbegin() + pos + n;
+ typename S::iterator i = s.erase(first, last);
+ LIBCPP_ASSERT(s.__invariants());
+ assert(s[s.size()] == typename S::value_type());
+ assert(s == expected);
+ assert(i - s.begin() == pos);
}
template <class S>
@@ -96,8 +94,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.modifiers/string_erase/pop_back.pass.cpp b/libcxx/test/std/strings/basic.string/string.modifiers/string_erase/pop_back.pass.cpp
index 28c8d0572b762c8..9c63fa47a7e4a7f 100644
--- a/libcxx/test/std/strings/basic.string/string.modifiers/string_erase/pop_back.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.modifiers/string_erase/pop_back.pass.cpp
@@ -17,13 +17,11 @@
#include "min_allocator.h"
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(S s, S expected)
-{
- s.pop_back();
- LIBCPP_ASSERT(s.__invariants());
- assert(s[s.size()] == typename S::value_type());
- assert(s == expected);
+TEST_CONSTEXPR_CXX20 void test(S s, S expected) {
+ s.pop_back();
+ LIBCPP_ASSERT(s.__invariants());
+ assert(s[s.size()] == typename S::value_type());
+ assert(s == expected);
}
template <class S>
@@ -42,8 +40,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.modifiers/string_erase/size_size.pass.cpp b/libcxx/test/std/strings/basic.string/string.modifiers/string_erase/size_size.pass.cpp
index 28b650740a105c9..610256061a5f2cd 100644
--- a/libcxx/test/std/strings/basic.string/string.modifiers/string_erase/size_size.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.modifiers/string_erase/size_size.pass.cpp
@@ -19,73 +19,57 @@
#include "min_allocator.h"
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(S s, typename S::size_type pos, typename S::size_type n, S expected)
-{
- const typename S::size_type old_size = s.size();
- S s0 = s;
- if (pos <= old_size)
- {
- s.erase(pos, n);
- LIBCPP_ASSERT(s.__invariants());
- assert(s[s.size()] == typename S::value_type());
- assert(s == expected);
- }
+TEST_CONSTEXPR_CXX20 void test(S s, typename S::size_type pos, typename S::size_type n, S expected) {
+ const typename S::size_type old_size = s.size();
+ S s0 = s;
+ if (pos <= old_size) {
+ s.erase(pos, n);
+ LIBCPP_ASSERT(s.__invariants());
+ assert(s[s.size()] == typename S::value_type());
+ assert(s == expected);
+ }
#ifndef TEST_HAS_NO_EXCEPTIONS
- else if (!TEST_IS_CONSTANT_EVALUATED)
- {
- try
- {
- s.erase(pos, n);
- assert(false);
- }
- catch (std::out_of_range&)
- {
- assert(pos > old_size);
- assert(s == s0);
- }
+ else if (!TEST_IS_CONSTANT_EVALUATED) {
+ try {
+ s.erase(pos, n);
+ assert(false);
+ } catch (std::out_of_range&) {
+ assert(pos > old_size);
+ assert(s == s0);
}
+ }
#endif
}
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(S s, typename S::size_type pos, S expected)
-{
- const typename S::size_type old_size = s.size();
- S s0 = s;
- if (pos <= old_size)
- {
- s.erase(pos);
- LIBCPP_ASSERT(s.__invariants());
- assert(s[s.size()] == typename S::value_type());
- assert(s == expected);
- }
+TEST_CONSTEXPR_CXX20 void test(S s, typename S::size_type pos, S expected) {
+ const typename S::size_type old_size = s.size();
+ S s0 = s;
+ if (pos <= old_size) {
+ s.erase(pos);
+ LIBCPP_ASSERT(s.__invariants());
+ assert(s[s.size()] == typename S::value_type());
+ assert(s == expected);
+ }
#ifndef TEST_HAS_NO_EXCEPTIONS
- else if (!TEST_IS_CONSTANT_EVALUATED)
- {
- try
- {
- s.erase(pos);
- assert(false);
- }
- catch (std::out_of_range&)
- {
- assert(pos > old_size);
- assert(s == s0);
- }
+ else if (!TEST_IS_CONSTANT_EVALUATED) {
+ try {
+ s.erase(pos);
+ assert(false);
+ } catch (std::out_of_range&) {
+ assert(pos > old_size);
+ assert(s == s0);
}
+ }
#endif
}
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(S s, S expected)
-{
- s.erase();
- LIBCPP_ASSERT(s.__invariants());
- assert(s[s.size()] == typename S::value_type());
- assert(s == expected);
+TEST_CONSTEXPR_CXX20 void test(S s, S expected) {
+ s.erase();
+ LIBCPP_ASSERT(s.__invariants());
+ assert(s[s.size()] == typename S::value_type());
+ assert(s == expected);
}
template <class S>
@@ -201,8 +185,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/iter_char.pass.cpp b/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/iter_char.pass.cpp
index 0e5eb1b60700614..bc3ce511ab5c221 100644
--- a/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/iter_char.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/iter_char.pass.cpp
@@ -18,18 +18,16 @@
#include "min_allocator.h"
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(S& s, typename S::const_iterator p, typename S::value_type c, S expected)
-{
- bool sufficient_cap = s.size() < s.capacity();
- typename S::
diff erence_type pos = p - s.begin();
- typename S::iterator i = s.insert(p, c);
- LIBCPP_ASSERT(s.__invariants());
- assert(s == expected);
- assert(i - s.begin() == pos);
- assert(*i == c);
- if (sufficient_cap)
- assert(i == p);
+TEST_CONSTEXPR_CXX20 void test(S& s, typename S::const_iterator p, typename S::value_type c, S expected) {
+ bool sufficient_cap = s.size() < s.capacity();
+ typename S::
diff erence_type pos = p - s.begin();
+ typename S::iterator i = s.insert(p, c);
+ LIBCPP_ASSERT(s.__invariants());
+ assert(s == expected);
+ assert(i - s.begin() == pos);
+ assert(*i == c);
+ if (sufficient_cap)
+ assert(i == p);
}
template <class S>
@@ -38,17 +36,17 @@ TEST_CONSTEXPR_CXX20 void test_string() {
test(s, s.begin(), '1', S("1"));
test(s, s.begin(), 'a', S("a1"));
test(s, s.end(), 'b', S("a1b"));
- test(s, s.end()-1, 'c', S("a1cb"));
- test(s, s.end()-2, 'd', S("a1dcb"));
- test(s, s.end()-3, '2', S("a12dcb"));
- test(s, s.end()-4, '3', S("a132dcb"));
- test(s, s.end()-5, '4', S("a1432dcb"));
- test(s, s.begin()+1, '5', S("a51432dcb"));
- test(s, s.begin()+2, '6', S("a561432dcb"));
- test(s, s.begin()+3, '7', S("a5671432dcb"));
- test(s, s.begin()+4, 'A', S("a567A1432dcb"));
- test(s, s.begin()+5, 'B', S("a567AB1432dcb"));
- test(s, s.begin()+6, 'C', S("a567ABC1432dcb"));
+ test(s, s.end() - 1, 'c', S("a1cb"));
+ test(s, s.end() - 2, 'd', S("a1dcb"));
+ test(s, s.end() - 3, '2', S("a12dcb"));
+ test(s, s.end() - 4, '3', S("a132dcb"));
+ test(s, s.end() - 5, '4', S("a1432dcb"));
+ test(s, s.begin() + 1, '5', S("a51432dcb"));
+ test(s, s.begin() + 2, '6', S("a561432dcb"));
+ test(s, s.begin() + 3, '7', S("a5671432dcb"));
+ test(s, s.begin() + 4, 'A', S("a567A1432dcb"));
+ test(s, s.begin() + 5, 'B', S("a567AB1432dcb"));
+ test(s, s.begin() + 6, 'C', S("a567ABC1432dcb"));
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -60,8 +58,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/iter_initializer_list.pass.cpp b/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/iter_initializer_list.pass.cpp
index 622afadea0fe3b6..7da74031f0d4afb 100644
--- a/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/iter_initializer_list.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/iter_initializer_list.pass.cpp
@@ -12,7 +12,6 @@
// iterator insert(const_iterator p, initializer_list<charT> il); // constexpr since C++20
-
#include <string>
#include <cassert>
@@ -37,8 +36,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/iter_iter_iter.infinite_recursion.pass.cpp b/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/iter_iter_iter.infinite_recursion.pass.cpp
index f5c492f587048de..e40528e516531bb 100644
--- a/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/iter_iter_iter.infinite_recursion.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/iter_iter_iter.infinite_recursion.pass.cpp
@@ -18,90 +18,82 @@
#include "test_macros.h"
struct char_ascii {
- char char_;
+ char char_;
- char_ascii() = default;
- char_ascii(char ch) : char_(ch) {
- assert(ch <= 0x7f);
- }
+ char_ascii() = default;
+ char_ascii(char ch) : char_(ch) { assert(ch <= 0x7f); }
};
template <>
struct std::char_traits<char_ascii> {
- using char_type = char_ascii;
- using int_type = typename std::char_traits<char>::int_type;
- using off_type = typename std::char_traits<char>::off_type;
- using pos_type = typename std::char_traits<char>::pos_type;
- using state_type = typename std::char_traits<char>::state_type;
-
- static void assign(char_type& r, char_type const& a) TEST_NOEXCEPT {
- r = a;
- }
+ using char_type = char_ascii;
+ using int_type = typename std::char_traits<char>::int_type;
+ using off_type = typename std::char_traits<char>::off_type;
+ using pos_type = typename std::char_traits<char>::pos_type;
+ using state_type = typename std::char_traits<char>::state_type;
- static char_type* assign(char_type* p, std::size_t count, char_type a) {
- std::fill(p, p + count, a);
- return p;
- }
+ static void assign(char_type& r, char_type const& a) TEST_NOEXCEPT { r = a; }
- static bool eq(char_type a, char_type b) TEST_NOEXCEPT {
- return a.char_ == b.char_;
- }
+ static char_type* assign(char_type* p, std::size_t count, char_type a) {
+ std::fill(p, p + count, a);
+ return p;
+ }
- static bool lt(char_type a, char_type b) TEST_NOEXCEPT {
- return a.char_ < b.char_;
- }
+ static bool eq(char_type a, char_type b) TEST_NOEXCEPT { return a.char_ == b.char_; }
- static std::size_t length(char_type const* s) {
- std::size_t n = 0;
- if (s) {
- while (s->char_)
- ++n;
- }
- return n;
- }
+ static bool lt(char_type a, char_type b) TEST_NOEXCEPT { return a.char_ < b.char_; }
- static const char_type* find(char_type const* p, std::size_t count, char_type const& ch) {
- while (count > 0) {
- if (p->char_ == ch.char_) {
- return p;
- } else {
- ++p;
- --count;
- }
- }
- return nullptr;
+ static std::size_t length(char_type const* s) {
+ std::size_t n = 0;
+ if (s) {
+ while (s->char_)
+ ++n;
}
+ return n;
+ }
- static int compare(char_type const* s1, char_type const* s2, std::size_t count) {
- for (std::size_t i = 0; i < count; ++i) {
- if (s1->char_ < s2->char_)
- return -1;
- else if (s2->char_ < s1->char_)
- return 1;
- }
- return 0;
+ static const char_type* find(char_type const* p, std::size_t count, char_type const& ch) {
+ while (count > 0) {
+ if (p->char_ == ch.char_) {
+ return p;
+ } else {
+ ++p;
+ --count;
+ }
}
-
- static char_type* move(char_type* dest, char_type const* src, std::size_t count) {
- if (src <= dest && dest < src + count) {
- std::copy_backward(src, src + count, dest + count);
- } else {
- std::copy(src, src + count, dest);
- }
- return dest;
+ return nullptr;
+ }
+
+ static int compare(char_type const* s1, char_type const* s2, std::size_t count) {
+ for (std::size_t i = 0; i < count; ++i) {
+ if (s1->char_ < s2->char_)
+ return -1;
+ else if (s2->char_ < s1->char_)
+ return 1;
}
+ return 0;
+ }
- static char_type* copy(char_type* dest, char_type const* src, std::size_t count) {
- return char_traits::move(dest, src, count);
+ static char_type* move(char_type* dest, char_type const* src, std::size_t count) {
+ if (src <= dest && dest < src + count) {
+ std::copy_backward(src, src + count, dest + count);
+ } else {
+ std::copy(src, src + count, dest);
}
+ return dest;
+ }
+
+ static char_type* copy(char_type* dest, char_type const* src, std::size_t count) {
+ return char_traits::move(dest, src, count);
+ }
};
int main(int, char**) {
- std::basic_string<char_ascii> str;
+ std::basic_string<char_ascii> str;
- char_ascii ch('A');
- str.insert(str.begin(), &ch, &ch + 1);
- assert(str.size() == 1);
- assert(str[0].char_ == 'A');
- return 0;
+ char_ascii ch('A');
+ str.insert(str.begin(), &ch, &ch + 1);
+ assert(str.size() == 1);
+ assert(str[0].char_ == 'A');
+ return 0;
}
diff --git a/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/iter_iter_iter.pass.cpp b/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/iter_iter_iter.pass.cpp
index d7f3ca3c4d4caa4..e3d0f1322e85de2 100644
--- a/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/iter_iter_iter.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/iter_iter_iter.pass.cpp
@@ -19,40 +19,39 @@
#include "min_allocator.h"
template <class S, class It>
-TEST_CONSTEXPR_CXX20 void
-test(S s, typename S::
diff erence_type pos, It first, It last, S expected)
-{
- typename S::const_iterator p = s.cbegin() + pos;
- typename S::iterator i = s.insert(p, first, last);
- LIBCPP_ASSERT(s.__invariants());
- assert(i - s.begin() == pos);
- assert(s == expected);
+TEST_CONSTEXPR_CXX20 void test(S s, typename S::
diff erence_type pos, It first, It last, S expected) {
+ typename S::const_iterator p = s.cbegin() + pos;
+ typename S::iterator i = s.insert(p, first, last);
+ LIBCPP_ASSERT(s.__invariants());
+ assert(i - s.begin() == pos);
+ assert(s == expected);
}
#ifndef TEST_HAS_NO_EXCEPTIONS
-struct Widget { operator char() const { throw 42; } };
+struct Widget {
+ operator char() const { throw 42; }
+};
template <class S, class It>
-TEST_CONSTEXPR_CXX20 void
-test_exceptions(S s, typename S::
diff erence_type pos, It first, It last)
-{
- typename S::const_iterator p = s.cbegin() + pos;
-
- S original = s;
- typename S::iterator begin = s.begin();
- typename S::iterator end = s.end();
-
- try {
- s.insert(p, first, last);
- assert(false);
- } catch (...) {}
-
- // Part of "no effects" is that iterators and pointers
- // into the string must not have been invalidated.
- LIBCPP_ASSERT(s.__invariants());
- assert(s == original);
- assert(s.begin() == begin);
- assert(s.end() == end);
+TEST_CONSTEXPR_CXX20 void test_exceptions(S s, typename S::
diff erence_type pos, It first, It last) {
+ typename S::const_iterator p = s.cbegin() + pos;
+
+ S original = s;
+ typename S::iterator begin = s.begin();
+ typename S::iterator end = s.end();
+
+ try {
+ s.insert(p, first, last);
+ assert(false);
+ } catch (...) {
+ }
+
+ // Part of "no effects" is that iterators and pointers
+ // into the string must not have been invalidated.
+ LIBCPP_ASSERT(s.__invariants());
+ assert(s == original);
+ assert(s.begin() == begin);
+ assert(s.end() == end);
}
#endif
@@ -60,46 +59,88 @@ template <class S>
TEST_CONSTEXPR_CXX20 void test_string() {
const char* s = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
test(S(), 0, s, s, S());
- test(S(), 0, s, s+1, S("A"));
- test(S(), 0, s, s+10, S("ABCDEFGHIJ"));
- test(S(), 0, s, s+52, S("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"));
+ test(S(), 0, s, s + 1, S("A"));
+ test(S(), 0, s, s + 10, S("ABCDEFGHIJ"));
+ test(S(), 0, s, s + 52, S("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"));
test(S("12345"), 0, s, s, S("12345"));
- test(S("12345"), 1, s, s+1, S("1A2345"));
- test(S("12345"), 4, s, s+10, S("1234ABCDEFGHIJ5"));
- test(S("12345"), 5, s, s+52, S("12345ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"));
+ test(S("12345"), 1, s, s + 1, S("1A2345"));
+ test(S("12345"), 4, s, s + 10, S("1234ABCDEFGHIJ5"));
+ test(S("12345"), 5, s, s + 52, S("12345ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"));
test(S("1234567890"), 0, s, s, S("1234567890"));
- test(S("1234567890"), 1, s, s+1, S("1A234567890"));
- test(S("1234567890"), 10, s, s+10, S("1234567890ABCDEFGHIJ"));
- test(S("1234567890"), 8, s, s+52, S("12345678ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz90"));
+ test(S("1234567890"), 1, s, s + 1, S("1A234567890"));
+ test(S("1234567890"), 10, s, s + 10, S("1234567890ABCDEFGHIJ"));
+ test(S("1234567890"), 8, s, s + 52, S("12345678ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz90"));
test(S("12345678901234567890"), 3, s, s, S("12345678901234567890"));
- test(S("12345678901234567890"), 3, s, s+1, S("123A45678901234567890"));
- test(S("12345678901234567890"), 15, s, s+10, S("123456789012345ABCDEFGHIJ67890"));
- test(S("12345678901234567890"), 20, s, s+52,
- S("12345678901234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"));
+ test(S("12345678901234567890"), 3, s, s + 1, S("123A45678901234567890"));
+ test(S("12345678901234567890"), 15, s, s + 10, S("123456789012345ABCDEFGHIJ67890"));
+ test(S("12345678901234567890"),
+ 20,
+ s,
+ s + 52,
+ S("12345678901234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"));
test(S(), 0, cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s), S());
- test(S(), 0, cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s+1), S("A"));
- test(S(), 0, cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s+10), S("ABCDEFGHIJ"));
- test(S(), 0, cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s+52), S("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"));
+ test(S(), 0, cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s + 1), S("A"));
+ test(S(), 0, cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s + 10), S("ABCDEFGHIJ"));
+ test(S(),
+ 0,
+ cpp17_input_iterator<const char*>(s),
+ cpp17_input_iterator<const char*>(s + 52),
+ S("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"));
test(S("12345"), 0, cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s), S("12345"));
- test(S("12345"), 1, cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s+1), S("1A2345"));
- test(S("12345"), 4, cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s+10), S("1234ABCDEFGHIJ5"));
- test(S("12345"), 5, cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s+52), S("12345ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"));
+ test(S("12345"), 1, cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s + 1), S("1A2345"));
+ test(S("12345"),
+ 4,
+ cpp17_input_iterator<const char*>(s),
+ cpp17_input_iterator<const char*>(s + 10),
+ S("1234ABCDEFGHIJ5"));
+ test(S("12345"),
+ 5,
+ cpp17_input_iterator<const char*>(s),
+ cpp17_input_iterator<const char*>(s + 52),
+ S("12345ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"));
test(S("1234567890"), 0, cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s), S("1234567890"));
- test(S("1234567890"), 1, cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s+1), S("1A234567890"));
- test(S("1234567890"), 10, cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s+10), S("1234567890ABCDEFGHIJ"));
- test(S("1234567890"), 8, cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s+52), S("12345678ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz90"));
-
- test(S("12345678901234567890"), 3, cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s), S("12345678901234567890"));
- test(S("12345678901234567890"), 3, cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s+1), S("123A45678901234567890"));
- test(S("12345678901234567890"), 15, cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s+10), S("123456789012345ABCDEFGHIJ67890"));
- test(S("12345678901234567890"), 20, cpp17_input_iterator<const char*>(s), cpp17_input_iterator<const char*>(s+52),
- S("12345678901234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"));
+ test(S("1234567890"),
+ 1,
+ cpp17_input_iterator<const char*>(s),
+ cpp17_input_iterator<const char*>(s + 1),
+ S("1A234567890"));
+ test(S("1234567890"),
+ 10,
+ cpp17_input_iterator<const char*>(s),
+ cpp17_input_iterator<const char*>(s + 10),
+ S("1234567890ABCDEFGHIJ"));
+ test(S("1234567890"),
+ 8,
+ cpp17_input_iterator<const char*>(s),
+ cpp17_input_iterator<const char*>(s + 52),
+ S("12345678ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz90"));
+
+ test(S("12345678901234567890"),
+ 3,
+ cpp17_input_iterator<const char*>(s),
+ cpp17_input_iterator<const char*>(s),
+ S("12345678901234567890"));
+ test(S("12345678901234567890"),
+ 3,
+ cpp17_input_iterator<const char*>(s),
+ cpp17_input_iterator<const char*>(s + 1),
+ S("123A45678901234567890"));
+ test(S("12345678901234567890"),
+ 15,
+ cpp17_input_iterator<const char*>(s),
+ cpp17_input_iterator<const char*>(s + 10),
+ S("123456789012345ABCDEFGHIJ67890"));
+ test(S("12345678901234567890"),
+ 20,
+ cpp17_input_iterator<const char*>(s),
+ cpp17_input_iterator<const char*>(s + 52),
+ S("12345678901234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"));
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -114,16 +155,16 @@ TEST_CONSTEXPR_CXX20 bool test() {
typedef ThrowingIterator<char> TIter;
typedef cpp17_input_iterator<TIter> IIter;
const char* s = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
- test_exceptions(S(), 0, IIter(TIter(s, s+10, 4, TIter::TAIncrement)), IIter(TIter()));
- test_exceptions(S(), 0, IIter(TIter(s, s+10, 5, TIter::TADereference)), IIter(TIter()));
- test_exceptions(S(), 0, IIter(TIter(s, s+10, 6, TIter::TAComparison)), IIter(TIter()));
+ test_exceptions(S(), 0, IIter(TIter(s, s + 10, 4, TIter::TAIncrement)), IIter(TIter()));
+ test_exceptions(S(), 0, IIter(TIter(s, s + 10, 5, TIter::TADereference)), IIter(TIter()));
+ test_exceptions(S(), 0, IIter(TIter(s, s + 10, 6, TIter::TAComparison)), IIter(TIter()));
- test_exceptions(S(), 0, TIter(s, s+10, 4, TIter::TAIncrement), TIter());
- test_exceptions(S(), 0, TIter(s, s+10, 5, TIter::TADereference), TIter());
- test_exceptions(S(), 0, TIter(s, s+10, 6, TIter::TAComparison), TIter());
+ test_exceptions(S(), 0, TIter(s, s + 10, 4, TIter::TAIncrement), TIter());
+ test_exceptions(S(), 0, TIter(s, s + 10, 5, TIter::TADereference), TIter());
+ test_exceptions(S(), 0, TIter(s, s + 10, 6, TIter::TAComparison), TIter());
Widget w[100];
- test_exceptions(S(), 0, w, w+100);
+ test_exceptions(S(), 0, w, w + 100);
}
#endif
@@ -153,14 +194,16 @@ TEST_CONSTEXPR_CXX20 bool test() {
}
if (!TEST_IS_CONSTANT_EVALUATED) { // regression-test inserting into self in sneaky ways
- std::string s_short = "hello";
- std::string s_long = "Lorem ipsum dolor sit amet, consectetur/";
- std::string s_othertype = "hello";
- const unsigned char *first = reinterpret_cast<const unsigned char*>(s_othertype.data());
-
- test(s_short, 0, s_short.data() + s_short.size(), s_short.data() + s_short.size() + 1,
- std::string("\0hello", 6));
- test(s_long, 0, s_long.data() + s_long.size(), s_long.data() + s_long.size() + 1,
+ std::string s_short = "hello";
+ std::string s_long = "Lorem ipsum dolor sit amet, consectetur/";
+ std::string s_othertype = "hello";
+ const unsigned char* first = reinterpret_cast<const unsigned char*>(s_othertype.data());
+
+ test(s_short, 0, s_short.data() + s_short.size(), s_short.data() + s_short.size() + 1, std::string("\0hello", 6));
+ test(s_long,
+ 0,
+ s_long.data() + s_long.size(),
+ s_long.data() + s_long.size() + 1,
std::string("\0Lorem ipsum dolor sit amet, consectetur/", 41));
test(s_othertype, 1, first + 2, first + 5, std::string("hlloello"));
}
@@ -192,8 +235,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/iter_size_char.pass.cpp b/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/iter_size_char.pass.cpp
index a79b53445ae0387..1e0d16e4cc2e172 100644
--- a/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/iter_size_char.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/iter_size_char.pass.cpp
@@ -18,14 +18,12 @@
template <class S>
TEST_CONSTEXPR_CXX20 void
-test(S s, typename S::
diff erence_type pos, typename S::size_type n,
- typename S::value_type c, S expected)
-{
- typename S::const_iterator p = s.cbegin() + pos;
- typename S::iterator i = s.insert(p, n, c);
- LIBCPP_ASSERT(s.__invariants());
- assert(i - s.begin() == pos);
- assert(s == expected);
+test(S s, typename S::
diff erence_type pos, typename S::size_type n, typename S::value_type c, S expected) {
+ typename S::const_iterator p = s.cbegin() + pos;
+ typename S::iterator i = s.insert(p, n, c);
+ LIBCPP_ASSERT(s.__invariants());
+ assert(i - s.begin() == pos);
+ assert(s == expected);
}
template <class S>
@@ -105,8 +103,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/size_T_size_size.pass.cpp b/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/size_T_size_size.pass.cpp
index 36e1261784b9adc..f7e6ca71180e330 100644
--- a/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/size_T_size_size.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/size_T_size_size.pass.cpp
@@ -22,1810 +22,1764 @@
template <class S, class SV>
TEST_CONSTEXPR_CXX20 void
-test(S s, typename S::size_type pos1, SV sv, typename S::size_type pos2,
- typename S::size_type n, S expected)
-{
- static_assert((!std::is_same<S, SV>::value), "");
- const typename S::size_type old_size = s.size();
- S s0 = s;
- if (pos1 <= old_size && pos2 <= sv.size())
- {
- s.insert(pos1, sv, pos2, n);
- LIBCPP_ASSERT(s.__invariants());
- assert(s == expected);
- }
+test(S s, typename S::size_type pos1, SV sv, typename S::size_type pos2, typename S::size_type n, S expected) {
+ static_assert((!std::is_same<S, SV>::value), "");
+ const typename S::size_type old_size = s.size();
+ S s0 = s;
+ if (pos1 <= old_size && pos2 <= sv.size()) {
+ s.insert(pos1, sv, pos2, n);
+ LIBCPP_ASSERT(s.__invariants());
+ assert(s == expected);
+ }
#ifndef TEST_HAS_NO_EXCEPTIONS
- else if (!TEST_IS_CONSTANT_EVALUATED)
- {
- try
- {
- s.insert(pos1, sv, pos2, n);
- assert(false);
- }
- catch (std::out_of_range&)
- {
- assert(pos1 > old_size || pos2 > sv.size());
- assert(s == s0);
- }
+ else if (!TEST_IS_CONSTANT_EVALUATED) {
+ try {
+ s.insert(pos1, sv, pos2, n);
+ assert(false);
+ } catch (std::out_of_range&) {
+ assert(pos1 > old_size || pos2 > sv.size());
+ assert(s == s0);
}
+ }
#endif
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 void
-test_npos(S s, typename S::size_type pos1, SV sv, typename S::size_type pos2, S expected)
-{
- static_assert((!std::is_same<S, SV>::value), "");
- const typename S::size_type old_size = s.size();
- S s0 = s;
- if (pos1 <= old_size && pos2 <= sv.size())
- {
- s.insert(pos1, sv, pos2);
- LIBCPP_ASSERT(s.__invariants());
- assert(s == expected);
- }
+TEST_CONSTEXPR_CXX20 void test_npos(S s, typename S::size_type pos1, SV sv, typename S::size_type pos2, S expected) {
+ static_assert((!std::is_same<S, SV>::value), "");
+ const typename S::size_type old_size = s.size();
+ S s0 = s;
+ if (pos1 <= old_size && pos2 <= sv.size()) {
+ s.insert(pos1, sv, pos2);
+ LIBCPP_ASSERT(s.__invariants());
+ assert(s == expected);
+ }
#ifndef TEST_HAS_NO_EXCEPTIONS
- else if (!TEST_IS_CONSTANT_EVALUATED)
- {
- try
- {
- s.insert(pos1, sv, pos2);
- assert(false);
- }
- catch (std::out_of_range&)
- {
- assert(pos1 > old_size || pos2 > sv.size());
- assert(s == s0);
- }
+ else if (!TEST_IS_CONSTANT_EVALUATED) {
+ try {
+ s.insert(pos1, sv, pos2);
+ assert(false);
+ } catch (std::out_of_range&) {
+ assert(pos1 > old_size || pos2 > sv.size());
+ assert(s == s0);
}
+ }
#endif
}
-
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test0()
-{
- test(S(""), 0, SV(""), 0, 0, S(""));
- test(S(""), 0, SV(""), 0, 1, S(""));
- test(S(""), 0, SV(""), 1, 0, S("can't happen"));
- test(S(""), 0, SV("12345"), 0, 0, S(""));
- test(S(""), 0, SV("12345"), 0, 1, S("1"));
- test(S(""), 0, SV("12345"), 0, 2, S("12"));
- test(S(""), 0, SV("12345"), 0, 4, S("1234"));
- test(S(""), 0, SV("12345"), 0, 5, S("12345"));
- test(S(""), 0, SV("12345"), 0, 6, S("12345"));
- test(S(""), 0, SV("12345"), 1, 0, S(""));
- test(S(""), 0, SV("12345"), 1, 1, S("2"));
- test(S(""), 0, SV("12345"), 1, 2, S("23"));
- test(S(""), 0, SV("12345"), 1, 3, S("234"));
- test(S(""), 0, SV("12345"), 1, 4, S("2345"));
- test(S(""), 0, SV("12345"), 1, 5, S("2345"));
- test(S(""), 0, SV("12345"), 2, 0, S(""));
- test(S(""), 0, SV("12345"), 2, 1, S("3"));
- test(S(""), 0, SV("12345"), 2, 2, S("34"));
- test(S(""), 0, SV("12345"), 2, 3, S("345"));
- test(S(""), 0, SV("12345"), 2, 4, S("345"));
- test(S(""), 0, SV("12345"), 4, 0, S(""));
- test(S(""), 0, SV("12345"), 4, 1, S("5"));
- test(S(""), 0, SV("12345"), 4, 2, S("5"));
- test(S(""), 0, SV("12345"), 5, 0, S(""));
- test(S(""), 0, SV("12345"), 5, 1, S(""));
- test(S(""), 0, SV("12345"), 6, 0, S("can't happen"));
- test(S(""), 0, SV("1234567890"), 0, 0, S(""));
- test(S(""), 0, SV("1234567890"), 0, 1, S("1"));
- test(S(""), 0, SV("1234567890"), 0, 5, S("12345"));
- test(S(""), 0, SV("1234567890"), 0, 9, S("123456789"));
- test(S(""), 0, SV("1234567890"), 0, 10, S("1234567890"));
- test(S(""), 0, SV("1234567890"), 0, 11, S("1234567890"));
- test(S(""), 0, SV("1234567890"), 1, 0, S(""));
- test(S(""), 0, SV("1234567890"), 1, 1, S("2"));
- test(S(""), 0, SV("1234567890"), 1, 4, S("2345"));
- test(S(""), 0, SV("1234567890"), 1, 8, S("23456789"));
- test(S(""), 0, SV("1234567890"), 1, 9, S("234567890"));
- test(S(""), 0, SV("1234567890"), 1, 10, S("234567890"));
- test(S(""), 0, SV("1234567890"), 5, 0, S(""));
- test(S(""), 0, SV("1234567890"), 5, 1, S("6"));
- test(S(""), 0, SV("1234567890"), 5, 2, S("67"));
- test(S(""), 0, SV("1234567890"), 5, 4, S("6789"));
- test(S(""), 0, SV("1234567890"), 5, 5, S("67890"));
- test(S(""), 0, SV("1234567890"), 5, 6, S("67890"));
- test(S(""), 0, SV("1234567890"), 9, 0, S(""));
- test(S(""), 0, SV("1234567890"), 9, 1, S("0"));
- test(S(""), 0, SV("1234567890"), 9, 2, S("0"));
- test(S(""), 0, SV("1234567890"), 10, 0, S(""));
- test(S(""), 0, SV("1234567890"), 10, 1, S(""));
- test(S(""), 0, SV("1234567890"), 11, 0, S("can't happen"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test0() {
+ test(S(""), 0, SV(""), 0, 0, S(""));
+ test(S(""), 0, SV(""), 0, 1, S(""));
+ test(S(""), 0, SV(""), 1, 0, S("can't happen"));
+ test(S(""), 0, SV("12345"), 0, 0, S(""));
+ test(S(""), 0, SV("12345"), 0, 1, S("1"));
+ test(S(""), 0, SV("12345"), 0, 2, S("12"));
+ test(S(""), 0, SV("12345"), 0, 4, S("1234"));
+ test(S(""), 0, SV("12345"), 0, 5, S("12345"));
+ test(S(""), 0, SV("12345"), 0, 6, S("12345"));
+ test(S(""), 0, SV("12345"), 1, 0, S(""));
+ test(S(""), 0, SV("12345"), 1, 1, S("2"));
+ test(S(""), 0, SV("12345"), 1, 2, S("23"));
+ test(S(""), 0, SV("12345"), 1, 3, S("234"));
+ test(S(""), 0, SV("12345"), 1, 4, S("2345"));
+ test(S(""), 0, SV("12345"), 1, 5, S("2345"));
+ test(S(""), 0, SV("12345"), 2, 0, S(""));
+ test(S(""), 0, SV("12345"), 2, 1, S("3"));
+ test(S(""), 0, SV("12345"), 2, 2, S("34"));
+ test(S(""), 0, SV("12345"), 2, 3, S("345"));
+ test(S(""), 0, SV("12345"), 2, 4, S("345"));
+ test(S(""), 0, SV("12345"), 4, 0, S(""));
+ test(S(""), 0, SV("12345"), 4, 1, S("5"));
+ test(S(""), 0, SV("12345"), 4, 2, S("5"));
+ test(S(""), 0, SV("12345"), 5, 0, S(""));
+ test(S(""), 0, SV("12345"), 5, 1, S(""));
+ test(S(""), 0, SV("12345"), 6, 0, S("can't happen"));
+ test(S(""), 0, SV("1234567890"), 0, 0, S(""));
+ test(S(""), 0, SV("1234567890"), 0, 1, S("1"));
+ test(S(""), 0, SV("1234567890"), 0, 5, S("12345"));
+ test(S(""), 0, SV("1234567890"), 0, 9, S("123456789"));
+ test(S(""), 0, SV("1234567890"), 0, 10, S("1234567890"));
+ test(S(""), 0, SV("1234567890"), 0, 11, S("1234567890"));
+ test(S(""), 0, SV("1234567890"), 1, 0, S(""));
+ test(S(""), 0, SV("1234567890"), 1, 1, S("2"));
+ test(S(""), 0, SV("1234567890"), 1, 4, S("2345"));
+ test(S(""), 0, SV("1234567890"), 1, 8, S("23456789"));
+ test(S(""), 0, SV("1234567890"), 1, 9, S("234567890"));
+ test(S(""), 0, SV("1234567890"), 1, 10, S("234567890"));
+ test(S(""), 0, SV("1234567890"), 5, 0, S(""));
+ test(S(""), 0, SV("1234567890"), 5, 1, S("6"));
+ test(S(""), 0, SV("1234567890"), 5, 2, S("67"));
+ test(S(""), 0, SV("1234567890"), 5, 4, S("6789"));
+ test(S(""), 0, SV("1234567890"), 5, 5, S("67890"));
+ test(S(""), 0, SV("1234567890"), 5, 6, S("67890"));
+ test(S(""), 0, SV("1234567890"), 9, 0, S(""));
+ test(S(""), 0, SV("1234567890"), 9, 1, S("0"));
+ test(S(""), 0, SV("1234567890"), 9, 2, S("0"));
+ test(S(""), 0, SV("1234567890"), 10, 0, S(""));
+ test(S(""), 0, SV("1234567890"), 10, 1, S(""));
+ test(S(""), 0, SV("1234567890"), 11, 0, S("can't happen"));
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test1()
-{
- test(S(""), 0, SV("12345678901234567890"), 0, 0, S(""));
- test(S(""), 0, SV("12345678901234567890"), 0, 1, S("1"));
- test(S(""), 0, SV("12345678901234567890"), 0, 10, S("1234567890"));
- test(S(""), 0, SV("12345678901234567890"), 0, 19, S("1234567890123456789"));
- test(S(""), 0, SV("12345678901234567890"), 0, 20, S("12345678901234567890"));
- test(S(""), 0, SV("12345678901234567890"), 0, 21, S("12345678901234567890"));
- test(S(""), 0, SV("12345678901234567890"), 1, 0, S(""));
- test(S(""), 0, SV("12345678901234567890"), 1, 1, S("2"));
- test(S(""), 0, SV("12345678901234567890"), 1, 9, S("234567890"));
- test(S(""), 0, SV("12345678901234567890"), 1, 18, S("234567890123456789"));
- test(S(""), 0, SV("12345678901234567890"), 1, 19, S("2345678901234567890"));
- test(S(""), 0, SV("12345678901234567890"), 1, 20, S("2345678901234567890"));
- test(S(""), 0, SV("12345678901234567890"), 10, 0, S(""));
- test(S(""), 0, SV("12345678901234567890"), 10, 1, S("1"));
- test(S(""), 0, SV("12345678901234567890"), 10, 5, S("12345"));
- test(S(""), 0, SV("12345678901234567890"), 10, 9, S("123456789"));
- test(S(""), 0, SV("12345678901234567890"), 10, 10, S("1234567890"));
- test(S(""), 0, SV("12345678901234567890"), 10, 11, S("1234567890"));
- test(S(""), 0, SV("12345678901234567890"), 19, 0, S(""));
- test(S(""), 0, SV("12345678901234567890"), 19, 1, S("0"));
- test(S(""), 0, SV("12345678901234567890"), 19, 2, S("0"));
- test(S(""), 0, SV("12345678901234567890"), 20, 0, S(""));
- test(S(""), 0, SV("12345678901234567890"), 20, 1, S(""));
- test(S(""), 0, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S(""), 1, SV(""), 0, 0, S("can't happen"));
- test(S(""), 1, SV(""), 0, 1, S("can't happen"));
- test(S(""), 1, SV(""), 1, 0, S("can't happen"));
- test(S(""), 1, SV("12345"), 0, 0, S("can't happen"));
- test(S(""), 1, SV("12345"), 0, 1, S("can't happen"));
- test(S(""), 1, SV("12345"), 0, 2, S("can't happen"));
- test(S(""), 1, SV("12345"), 0, 4, S("can't happen"));
- test(S(""), 1, SV("12345"), 0, 5, S("can't happen"));
- test(S(""), 1, SV("12345"), 0, 6, S("can't happen"));
- test(S(""), 1, SV("12345"), 1, 0, S("can't happen"));
- test(S(""), 1, SV("12345"), 1, 1, S("can't happen"));
- test(S(""), 1, SV("12345"), 1, 2, S("can't happen"));
- test(S(""), 1, SV("12345"), 1, 3, S("can't happen"));
- test(S(""), 1, SV("12345"), 1, 4, S("can't happen"));
- test(S(""), 1, SV("12345"), 1, 5, S("can't happen"));
- test(S(""), 1, SV("12345"), 2, 0, S("can't happen"));
- test(S(""), 1, SV("12345"), 2, 1, S("can't happen"));
- test(S(""), 1, SV("12345"), 2, 2, S("can't happen"));
- test(S(""), 1, SV("12345"), 2, 3, S("can't happen"));
- test(S(""), 1, SV("12345"), 2, 4, S("can't happen"));
- test(S(""), 1, SV("12345"), 4, 0, S("can't happen"));
- test(S(""), 1, SV("12345"), 4, 1, S("can't happen"));
- test(S(""), 1, SV("12345"), 4, 2, S("can't happen"));
- test(S(""), 1, SV("12345"), 5, 0, S("can't happen"));
- test(S(""), 1, SV("12345"), 5, 1, S("can't happen"));
- test(S(""), 1, SV("12345"), 6, 0, S("can't happen"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test1() {
+ test(S(""), 0, SV("12345678901234567890"), 0, 0, S(""));
+ test(S(""), 0, SV("12345678901234567890"), 0, 1, S("1"));
+ test(S(""), 0, SV("12345678901234567890"), 0, 10, S("1234567890"));
+ test(S(""), 0, SV("12345678901234567890"), 0, 19, S("1234567890123456789"));
+ test(S(""), 0, SV("12345678901234567890"), 0, 20, S("12345678901234567890"));
+ test(S(""), 0, SV("12345678901234567890"), 0, 21, S("12345678901234567890"));
+ test(S(""), 0, SV("12345678901234567890"), 1, 0, S(""));
+ test(S(""), 0, SV("12345678901234567890"), 1, 1, S("2"));
+ test(S(""), 0, SV("12345678901234567890"), 1, 9, S("234567890"));
+ test(S(""), 0, SV("12345678901234567890"), 1, 18, S("234567890123456789"));
+ test(S(""), 0, SV("12345678901234567890"), 1, 19, S("2345678901234567890"));
+ test(S(""), 0, SV("12345678901234567890"), 1, 20, S("2345678901234567890"));
+ test(S(""), 0, SV("12345678901234567890"), 10, 0, S(""));
+ test(S(""), 0, SV("12345678901234567890"), 10, 1, S("1"));
+ test(S(""), 0, SV("12345678901234567890"), 10, 5, S("12345"));
+ test(S(""), 0, SV("12345678901234567890"), 10, 9, S("123456789"));
+ test(S(""), 0, SV("12345678901234567890"), 10, 10, S("1234567890"));
+ test(S(""), 0, SV("12345678901234567890"), 10, 11, S("1234567890"));
+ test(S(""), 0, SV("12345678901234567890"), 19, 0, S(""));
+ test(S(""), 0, SV("12345678901234567890"), 19, 1, S("0"));
+ test(S(""), 0, SV("12345678901234567890"), 19, 2, S("0"));
+ test(S(""), 0, SV("12345678901234567890"), 20, 0, S(""));
+ test(S(""), 0, SV("12345678901234567890"), 20, 1, S(""));
+ test(S(""), 0, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S(""), 1, SV(""), 0, 0, S("can't happen"));
+ test(S(""), 1, SV(""), 0, 1, S("can't happen"));
+ test(S(""), 1, SV(""), 1, 0, S("can't happen"));
+ test(S(""), 1, SV("12345"), 0, 0, S("can't happen"));
+ test(S(""), 1, SV("12345"), 0, 1, S("can't happen"));
+ test(S(""), 1, SV("12345"), 0, 2, S("can't happen"));
+ test(S(""), 1, SV("12345"), 0, 4, S("can't happen"));
+ test(S(""), 1, SV("12345"), 0, 5, S("can't happen"));
+ test(S(""), 1, SV("12345"), 0, 6, S("can't happen"));
+ test(S(""), 1, SV("12345"), 1, 0, S("can't happen"));
+ test(S(""), 1, SV("12345"), 1, 1, S("can't happen"));
+ test(S(""), 1, SV("12345"), 1, 2, S("can't happen"));
+ test(S(""), 1, SV("12345"), 1, 3, S("can't happen"));
+ test(S(""), 1, SV("12345"), 1, 4, S("can't happen"));
+ test(S(""), 1, SV("12345"), 1, 5, S("can't happen"));
+ test(S(""), 1, SV("12345"), 2, 0, S("can't happen"));
+ test(S(""), 1, SV("12345"), 2, 1, S("can't happen"));
+ test(S(""), 1, SV("12345"), 2, 2, S("can't happen"));
+ test(S(""), 1, SV("12345"), 2, 3, S("can't happen"));
+ test(S(""), 1, SV("12345"), 2, 4, S("can't happen"));
+ test(S(""), 1, SV("12345"), 4, 0, S("can't happen"));
+ test(S(""), 1, SV("12345"), 4, 1, S("can't happen"));
+ test(S(""), 1, SV("12345"), 4, 2, S("can't happen"));
+ test(S(""), 1, SV("12345"), 5, 0, S("can't happen"));
+ test(S(""), 1, SV("12345"), 5, 1, S("can't happen"));
+ test(S(""), 1, SV("12345"), 6, 0, S("can't happen"));
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test2()
-{
- test(S(""), 1, SV("1234567890"), 0, 0, S("can't happen"));
- test(S(""), 1, SV("1234567890"), 0, 1, S("can't happen"));
- test(S(""), 1, SV("1234567890"), 0, 5, S("can't happen"));
- test(S(""), 1, SV("1234567890"), 0, 9, S("can't happen"));
- test(S(""), 1, SV("1234567890"), 0, 10, S("can't happen"));
- test(S(""), 1, SV("1234567890"), 0, 11, S("can't happen"));
- test(S(""), 1, SV("1234567890"), 1, 0, S("can't happen"));
- test(S(""), 1, SV("1234567890"), 1, 1, S("can't happen"));
- test(S(""), 1, SV("1234567890"), 1, 4, S("can't happen"));
- test(S(""), 1, SV("1234567890"), 1, 8, S("can't happen"));
- test(S(""), 1, SV("1234567890"), 1, 9, S("can't happen"));
- test(S(""), 1, SV("1234567890"), 1, 10, S("can't happen"));
- test(S(""), 1, SV("1234567890"), 5, 0, S("can't happen"));
- test(S(""), 1, SV("1234567890"), 5, 1, S("can't happen"));
- test(S(""), 1, SV("1234567890"), 5, 2, S("can't happen"));
- test(S(""), 1, SV("1234567890"), 5, 4, S("can't happen"));
- test(S(""), 1, SV("1234567890"), 5, 5, S("can't happen"));
- test(S(""), 1, SV("1234567890"), 5, 6, S("can't happen"));
- test(S(""), 1, SV("1234567890"), 9, 0, S("can't happen"));
- test(S(""), 1, SV("1234567890"), 9, 1, S("can't happen"));
- test(S(""), 1, SV("1234567890"), 9, 2, S("can't happen"));
- test(S(""), 1, SV("1234567890"), 10, 0, S("can't happen"));
- test(S(""), 1, SV("1234567890"), 10, 1, S("can't happen"));
- test(S(""), 1, SV("1234567890"), 11, 0, S("can't happen"));
- test(S(""), 1, SV("12345678901234567890"), 0, 0, S("can't happen"));
- test(S(""), 1, SV("12345678901234567890"), 0, 1, S("can't happen"));
- test(S(""), 1, SV("12345678901234567890"), 0, 10, S("can't happen"));
- test(S(""), 1, SV("12345678901234567890"), 0, 19, S("can't happen"));
- test(S(""), 1, SV("12345678901234567890"), 0, 20, S("can't happen"));
- test(S(""), 1, SV("12345678901234567890"), 0, 21, S("can't happen"));
- test(S(""), 1, SV("12345678901234567890"), 1, 0, S("can't happen"));
- test(S(""), 1, SV("12345678901234567890"), 1, 1, S("can't happen"));
- test(S(""), 1, SV("12345678901234567890"), 1, 9, S("can't happen"));
- test(S(""), 1, SV("12345678901234567890"), 1, 18, S("can't happen"));
- test(S(""), 1, SV("12345678901234567890"), 1, 19, S("can't happen"));
- test(S(""), 1, SV("12345678901234567890"), 1, 20, S("can't happen"));
- test(S(""), 1, SV("12345678901234567890"), 10, 0, S("can't happen"));
- test(S(""), 1, SV("12345678901234567890"), 10, 1, S("can't happen"));
- test(S(""), 1, SV("12345678901234567890"), 10, 5, S("can't happen"));
- test(S(""), 1, SV("12345678901234567890"), 10, 9, S("can't happen"));
- test(S(""), 1, SV("12345678901234567890"), 10, 10, S("can't happen"));
- test(S(""), 1, SV("12345678901234567890"), 10, 11, S("can't happen"));
- test(S(""), 1, SV("12345678901234567890"), 19, 0, S("can't happen"));
- test(S(""), 1, SV("12345678901234567890"), 19, 1, S("can't happen"));
- test(S(""), 1, SV("12345678901234567890"), 19, 2, S("can't happen"));
- test(S(""), 1, SV("12345678901234567890"), 20, 0, S("can't happen"));
- test(S(""), 1, SV("12345678901234567890"), 20, 1, S("can't happen"));
- test(S(""), 1, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcde"), 0, SV(""), 0, 0, S("abcde"));
- test(S("abcde"), 0, SV(""), 0, 1, S("abcde"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test2() {
+ test(S(""), 1, SV("1234567890"), 0, 0, S("can't happen"));
+ test(S(""), 1, SV("1234567890"), 0, 1, S("can't happen"));
+ test(S(""), 1, SV("1234567890"), 0, 5, S("can't happen"));
+ test(S(""), 1, SV("1234567890"), 0, 9, S("can't happen"));
+ test(S(""), 1, SV("1234567890"), 0, 10, S("can't happen"));
+ test(S(""), 1, SV("1234567890"), 0, 11, S("can't happen"));
+ test(S(""), 1, SV("1234567890"), 1, 0, S("can't happen"));
+ test(S(""), 1, SV("1234567890"), 1, 1, S("can't happen"));
+ test(S(""), 1, SV("1234567890"), 1, 4, S("can't happen"));
+ test(S(""), 1, SV("1234567890"), 1, 8, S("can't happen"));
+ test(S(""), 1, SV("1234567890"), 1, 9, S("can't happen"));
+ test(S(""), 1, SV("1234567890"), 1, 10, S("can't happen"));
+ test(S(""), 1, SV("1234567890"), 5, 0, S("can't happen"));
+ test(S(""), 1, SV("1234567890"), 5, 1, S("can't happen"));
+ test(S(""), 1, SV("1234567890"), 5, 2, S("can't happen"));
+ test(S(""), 1, SV("1234567890"), 5, 4, S("can't happen"));
+ test(S(""), 1, SV("1234567890"), 5, 5, S("can't happen"));
+ test(S(""), 1, SV("1234567890"), 5, 6, S("can't happen"));
+ test(S(""), 1, SV("1234567890"), 9, 0, S("can't happen"));
+ test(S(""), 1, SV("1234567890"), 9, 1, S("can't happen"));
+ test(S(""), 1, SV("1234567890"), 9, 2, S("can't happen"));
+ test(S(""), 1, SV("1234567890"), 10, 0, S("can't happen"));
+ test(S(""), 1, SV("1234567890"), 10, 1, S("can't happen"));
+ test(S(""), 1, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S(""), 1, SV("12345678901234567890"), 0, 0, S("can't happen"));
+ test(S(""), 1, SV("12345678901234567890"), 0, 1, S("can't happen"));
+ test(S(""), 1, SV("12345678901234567890"), 0, 10, S("can't happen"));
+ test(S(""), 1, SV("12345678901234567890"), 0, 19, S("can't happen"));
+ test(S(""), 1, SV("12345678901234567890"), 0, 20, S("can't happen"));
+ test(S(""), 1, SV("12345678901234567890"), 0, 21, S("can't happen"));
+ test(S(""), 1, SV("12345678901234567890"), 1, 0, S("can't happen"));
+ test(S(""), 1, SV("12345678901234567890"), 1, 1, S("can't happen"));
+ test(S(""), 1, SV("12345678901234567890"), 1, 9, S("can't happen"));
+ test(S(""), 1, SV("12345678901234567890"), 1, 18, S("can't happen"));
+ test(S(""), 1, SV("12345678901234567890"), 1, 19, S("can't happen"));
+ test(S(""), 1, SV("12345678901234567890"), 1, 20, S("can't happen"));
+ test(S(""), 1, SV("12345678901234567890"), 10, 0, S("can't happen"));
+ test(S(""), 1, SV("12345678901234567890"), 10, 1, S("can't happen"));
+ test(S(""), 1, SV("12345678901234567890"), 10, 5, S("can't happen"));
+ test(S(""), 1, SV("12345678901234567890"), 10, 9, S("can't happen"));
+ test(S(""), 1, SV("12345678901234567890"), 10, 10, S("can't happen"));
+ test(S(""), 1, SV("12345678901234567890"), 10, 11, S("can't happen"));
+ test(S(""), 1, SV("12345678901234567890"), 19, 0, S("can't happen"));
+ test(S(""), 1, SV("12345678901234567890"), 19, 1, S("can't happen"));
+ test(S(""), 1, SV("12345678901234567890"), 19, 2, S("can't happen"));
+ test(S(""), 1, SV("12345678901234567890"), 20, 0, S("can't happen"));
+ test(S(""), 1, SV("12345678901234567890"), 20, 1, S("can't happen"));
+ test(S(""), 1, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcde"), 0, SV(""), 0, 0, S("abcde"));
+ test(S("abcde"), 0, SV(""), 0, 1, S("abcde"));
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test3()
-{
- test(S("abcde"), 0, SV(""), 1, 0, S("can't happen"));
- test(S("abcde"), 0, SV("12345"), 0, 0, S("abcde"));
- test(S("abcde"), 0, SV("12345"), 0, 1, S("1abcde"));
- test(S("abcde"), 0, SV("12345"), 0, 2, S("12abcde"));
- test(S("abcde"), 0, SV("12345"), 0, 4, S("1234abcde"));
- test(S("abcde"), 0, SV("12345"), 0, 5, S("12345abcde"));
- test(S("abcde"), 0, SV("12345"), 0, 6, S("12345abcde"));
- test(S("abcde"), 0, SV("12345"), 1, 0, S("abcde"));
- test(S("abcde"), 0, SV("12345"), 1, 1, S("2abcde"));
- test(S("abcde"), 0, SV("12345"), 1, 2, S("23abcde"));
- test(S("abcde"), 0, SV("12345"), 1, 3, S("234abcde"));
- test(S("abcde"), 0, SV("12345"), 1, 4, S("2345abcde"));
- test(S("abcde"), 0, SV("12345"), 1, 5, S("2345abcde"));
- test(S("abcde"), 0, SV("12345"), 2, 0, S("abcde"));
- test(S("abcde"), 0, SV("12345"), 2, 1, S("3abcde"));
- test(S("abcde"), 0, SV("12345"), 2, 2, S("34abcde"));
- test(S("abcde"), 0, SV("12345"), 2, 3, S("345abcde"));
- test(S("abcde"), 0, SV("12345"), 2, 4, S("345abcde"));
- test(S("abcde"), 0, SV("12345"), 4, 0, S("abcde"));
- test(S("abcde"), 0, SV("12345"), 4, 1, S("5abcde"));
- test(S("abcde"), 0, SV("12345"), 4, 2, S("5abcde"));
- test(S("abcde"), 0, SV("12345"), 5, 0, S("abcde"));
- test(S("abcde"), 0, SV("12345"), 5, 1, S("abcde"));
- test(S("abcde"), 0, SV("12345"), 6, 0, S("can't happen"));
- test(S("abcde"), 0, SV("1234567890"), 0, 0, S("abcde"));
- test(S("abcde"), 0, SV("1234567890"), 0, 1, S("1abcde"));
- test(S("abcde"), 0, SV("1234567890"), 0, 5, S("12345abcde"));
- test(S("abcde"), 0, SV("1234567890"), 0, 9, S("123456789abcde"));
- test(S("abcde"), 0, SV("1234567890"), 0, 10, S("1234567890abcde"));
- test(S("abcde"), 0, SV("1234567890"), 0, 11, S("1234567890abcde"));
- test(S("abcde"), 0, SV("1234567890"), 1, 0, S("abcde"));
- test(S("abcde"), 0, SV("1234567890"), 1, 1, S("2abcde"));
- test(S("abcde"), 0, SV("1234567890"), 1, 4, S("2345abcde"));
- test(S("abcde"), 0, SV("1234567890"), 1, 8, S("23456789abcde"));
- test(S("abcde"), 0, SV("1234567890"), 1, 9, S("234567890abcde"));
- test(S("abcde"), 0, SV("1234567890"), 1, 10, S("234567890abcde"));
- test(S("abcde"), 0, SV("1234567890"), 5, 0, S("abcde"));
- test(S("abcde"), 0, SV("1234567890"), 5, 1, S("6abcde"));
- test(S("abcde"), 0, SV("1234567890"), 5, 2, S("67abcde"));
- test(S("abcde"), 0, SV("1234567890"), 5, 4, S("6789abcde"));
- test(S("abcde"), 0, SV("1234567890"), 5, 5, S("67890abcde"));
- test(S("abcde"), 0, SV("1234567890"), 5, 6, S("67890abcde"));
- test(S("abcde"), 0, SV("1234567890"), 9, 0, S("abcde"));
- test(S("abcde"), 0, SV("1234567890"), 9, 1, S("0abcde"));
- test(S("abcde"), 0, SV("1234567890"), 9, 2, S("0abcde"));
- test(S("abcde"), 0, SV("1234567890"), 10, 0, S("abcde"));
- test(S("abcde"), 0, SV("1234567890"), 10, 1, S("abcde"));
- test(S("abcde"), 0, SV("1234567890"), 11, 0, S("can't happen"));
- test(S("abcde"), 0, SV("12345678901234567890"), 0, 0, S("abcde"));
- test(S("abcde"), 0, SV("12345678901234567890"), 0, 1, S("1abcde"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test3() {
+ test(S("abcde"), 0, SV(""), 1, 0, S("can't happen"));
+ test(S("abcde"), 0, SV("12345"), 0, 0, S("abcde"));
+ test(S("abcde"), 0, SV("12345"), 0, 1, S("1abcde"));
+ test(S("abcde"), 0, SV("12345"), 0, 2, S("12abcde"));
+ test(S("abcde"), 0, SV("12345"), 0, 4, S("1234abcde"));
+ test(S("abcde"), 0, SV("12345"), 0, 5, S("12345abcde"));
+ test(S("abcde"), 0, SV("12345"), 0, 6, S("12345abcde"));
+ test(S("abcde"), 0, SV("12345"), 1, 0, S("abcde"));
+ test(S("abcde"), 0, SV("12345"), 1, 1, S("2abcde"));
+ test(S("abcde"), 0, SV("12345"), 1, 2, S("23abcde"));
+ test(S("abcde"), 0, SV("12345"), 1, 3, S("234abcde"));
+ test(S("abcde"), 0, SV("12345"), 1, 4, S("2345abcde"));
+ test(S("abcde"), 0, SV("12345"), 1, 5, S("2345abcde"));
+ test(S("abcde"), 0, SV("12345"), 2, 0, S("abcde"));
+ test(S("abcde"), 0, SV("12345"), 2, 1, S("3abcde"));
+ test(S("abcde"), 0, SV("12345"), 2, 2, S("34abcde"));
+ test(S("abcde"), 0, SV("12345"), 2, 3, S("345abcde"));
+ test(S("abcde"), 0, SV("12345"), 2, 4, S("345abcde"));
+ test(S("abcde"), 0, SV("12345"), 4, 0, S("abcde"));
+ test(S("abcde"), 0, SV("12345"), 4, 1, S("5abcde"));
+ test(S("abcde"), 0, SV("12345"), 4, 2, S("5abcde"));
+ test(S("abcde"), 0, SV("12345"), 5, 0, S("abcde"));
+ test(S("abcde"), 0, SV("12345"), 5, 1, S("abcde"));
+ test(S("abcde"), 0, SV("12345"), 6, 0, S("can't happen"));
+ test(S("abcde"), 0, SV("1234567890"), 0, 0, S("abcde"));
+ test(S("abcde"), 0, SV("1234567890"), 0, 1, S("1abcde"));
+ test(S("abcde"), 0, SV("1234567890"), 0, 5, S("12345abcde"));
+ test(S("abcde"), 0, SV("1234567890"), 0, 9, S("123456789abcde"));
+ test(S("abcde"), 0, SV("1234567890"), 0, 10, S("1234567890abcde"));
+ test(S("abcde"), 0, SV("1234567890"), 0, 11, S("1234567890abcde"));
+ test(S("abcde"), 0, SV("1234567890"), 1, 0, S("abcde"));
+ test(S("abcde"), 0, SV("1234567890"), 1, 1, S("2abcde"));
+ test(S("abcde"), 0, SV("1234567890"), 1, 4, S("2345abcde"));
+ test(S("abcde"), 0, SV("1234567890"), 1, 8, S("23456789abcde"));
+ test(S("abcde"), 0, SV("1234567890"), 1, 9, S("234567890abcde"));
+ test(S("abcde"), 0, SV("1234567890"), 1, 10, S("234567890abcde"));
+ test(S("abcde"), 0, SV("1234567890"), 5, 0, S("abcde"));
+ test(S("abcde"), 0, SV("1234567890"), 5, 1, S("6abcde"));
+ test(S("abcde"), 0, SV("1234567890"), 5, 2, S("67abcde"));
+ test(S("abcde"), 0, SV("1234567890"), 5, 4, S("6789abcde"));
+ test(S("abcde"), 0, SV("1234567890"), 5, 5, S("67890abcde"));
+ test(S("abcde"), 0, SV("1234567890"), 5, 6, S("67890abcde"));
+ test(S("abcde"), 0, SV("1234567890"), 9, 0, S("abcde"));
+ test(S("abcde"), 0, SV("1234567890"), 9, 1, S("0abcde"));
+ test(S("abcde"), 0, SV("1234567890"), 9, 2, S("0abcde"));
+ test(S("abcde"), 0, SV("1234567890"), 10, 0, S("abcde"));
+ test(S("abcde"), 0, SV("1234567890"), 10, 1, S("abcde"));
+ test(S("abcde"), 0, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcde"), 0, SV("12345678901234567890"), 0, 0, S("abcde"));
+ test(S("abcde"), 0, SV("12345678901234567890"), 0, 1, S("1abcde"));
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test4()
-{
- test(S("abcde"), 0, SV("12345678901234567890"), 0, 10, S("1234567890abcde"));
- test(S("abcde"), 0, SV("12345678901234567890"), 0, 19, S("1234567890123456789abcde"));
- test(S("abcde"), 0, SV("12345678901234567890"), 0, 20, S("12345678901234567890abcde"));
- test(S("abcde"), 0, SV("12345678901234567890"), 0, 21, S("12345678901234567890abcde"));
- test(S("abcde"), 0, SV("12345678901234567890"), 1, 0, S("abcde"));
- test(S("abcde"), 0, SV("12345678901234567890"), 1, 1, S("2abcde"));
- test(S("abcde"), 0, SV("12345678901234567890"), 1, 9, S("234567890abcde"));
- test(S("abcde"), 0, SV("12345678901234567890"), 1, 18, S("234567890123456789abcde"));
- test(S("abcde"), 0, SV("12345678901234567890"), 1, 19, S("2345678901234567890abcde"));
- test(S("abcde"), 0, SV("12345678901234567890"), 1, 20, S("2345678901234567890abcde"));
- test(S("abcde"), 0, SV("12345678901234567890"), 10, 0, S("abcde"));
- test(S("abcde"), 0, SV("12345678901234567890"), 10, 1, S("1abcde"));
- test(S("abcde"), 0, SV("12345678901234567890"), 10, 5, S("12345abcde"));
- test(S("abcde"), 0, SV("12345678901234567890"), 10, 9, S("123456789abcde"));
- test(S("abcde"), 0, SV("12345678901234567890"), 10, 10, S("1234567890abcde"));
- test(S("abcde"), 0, SV("12345678901234567890"), 10, 11, S("1234567890abcde"));
- test(S("abcde"), 0, SV("12345678901234567890"), 19, 0, S("abcde"));
- test(S("abcde"), 0, SV("12345678901234567890"), 19, 1, S("0abcde"));
- test(S("abcde"), 0, SV("12345678901234567890"), 19, 2, S("0abcde"));
- test(S("abcde"), 0, SV("12345678901234567890"), 20, 0, S("abcde"));
- test(S("abcde"), 0, SV("12345678901234567890"), 20, 1, S("abcde"));
- test(S("abcde"), 0, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcde"), 1, SV(""), 0, 0, S("abcde"));
- test(S("abcde"), 1, SV(""), 0, 1, S("abcde"));
- test(S("abcde"), 1, SV(""), 1, 0, S("can't happen"));
- test(S("abcde"), 1, SV("12345"), 0, 0, S("abcde"));
- test(S("abcde"), 1, SV("12345"), 0, 1, S("a1bcde"));
- test(S("abcde"), 1, SV("12345"), 0, 2, S("a12bcde"));
- test(S("abcde"), 1, SV("12345"), 0, 4, S("a1234bcde"));
- test(S("abcde"), 1, SV("12345"), 0, 5, S("a12345bcde"));
- test(S("abcde"), 1, SV("12345"), 0, 6, S("a12345bcde"));
- test(S("abcde"), 1, SV("12345"), 1, 0, S("abcde"));
- test(S("abcde"), 1, SV("12345"), 1, 1, S("a2bcde"));
- test(S("abcde"), 1, SV("12345"), 1, 2, S("a23bcde"));
- test(S("abcde"), 1, SV("12345"), 1, 3, S("a234bcde"));
- test(S("abcde"), 1, SV("12345"), 1, 4, S("a2345bcde"));
- test(S("abcde"), 1, SV("12345"), 1, 5, S("a2345bcde"));
- test(S("abcde"), 1, SV("12345"), 2, 0, S("abcde"));
- test(S("abcde"), 1, SV("12345"), 2, 1, S("a3bcde"));
- test(S("abcde"), 1, SV("12345"), 2, 2, S("a34bcde"));
- test(S("abcde"), 1, SV("12345"), 2, 3, S("a345bcde"));
- test(S("abcde"), 1, SV("12345"), 2, 4, S("a345bcde"));
- test(S("abcde"), 1, SV("12345"), 4, 0, S("abcde"));
- test(S("abcde"), 1, SV("12345"), 4, 1, S("a5bcde"));
- test(S("abcde"), 1, SV("12345"), 4, 2, S("a5bcde"));
- test(S("abcde"), 1, SV("12345"), 5, 0, S("abcde"));
- test(S("abcde"), 1, SV("12345"), 5, 1, S("abcde"));
- test(S("abcde"), 1, SV("12345"), 6, 0, S("can't happen"));
- test(S("abcde"), 1, SV("1234567890"), 0, 0, S("abcde"));
- test(S("abcde"), 1, SV("1234567890"), 0, 1, S("a1bcde"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test4() {
+ test(S("abcde"), 0, SV("12345678901234567890"), 0, 10, S("1234567890abcde"));
+ test(S("abcde"), 0, SV("12345678901234567890"), 0, 19, S("1234567890123456789abcde"));
+ test(S("abcde"), 0, SV("12345678901234567890"), 0, 20, S("12345678901234567890abcde"));
+ test(S("abcde"), 0, SV("12345678901234567890"), 0, 21, S("12345678901234567890abcde"));
+ test(S("abcde"), 0, SV("12345678901234567890"), 1, 0, S("abcde"));
+ test(S("abcde"), 0, SV("12345678901234567890"), 1, 1, S("2abcde"));
+ test(S("abcde"), 0, SV("12345678901234567890"), 1, 9, S("234567890abcde"));
+ test(S("abcde"), 0, SV("12345678901234567890"), 1, 18, S("234567890123456789abcde"));
+ test(S("abcde"), 0, SV("12345678901234567890"), 1, 19, S("2345678901234567890abcde"));
+ test(S("abcde"), 0, SV("12345678901234567890"), 1, 20, S("2345678901234567890abcde"));
+ test(S("abcde"), 0, SV("12345678901234567890"), 10, 0, S("abcde"));
+ test(S("abcde"), 0, SV("12345678901234567890"), 10, 1, S("1abcde"));
+ test(S("abcde"), 0, SV("12345678901234567890"), 10, 5, S("12345abcde"));
+ test(S("abcde"), 0, SV("12345678901234567890"), 10, 9, S("123456789abcde"));
+ test(S("abcde"), 0, SV("12345678901234567890"), 10, 10, S("1234567890abcde"));
+ test(S("abcde"), 0, SV("12345678901234567890"), 10, 11, S("1234567890abcde"));
+ test(S("abcde"), 0, SV("12345678901234567890"), 19, 0, S("abcde"));
+ test(S("abcde"), 0, SV("12345678901234567890"), 19, 1, S("0abcde"));
+ test(S("abcde"), 0, SV("12345678901234567890"), 19, 2, S("0abcde"));
+ test(S("abcde"), 0, SV("12345678901234567890"), 20, 0, S("abcde"));
+ test(S("abcde"), 0, SV("12345678901234567890"), 20, 1, S("abcde"));
+ test(S("abcde"), 0, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcde"), 1, SV(""), 0, 0, S("abcde"));
+ test(S("abcde"), 1, SV(""), 0, 1, S("abcde"));
+ test(S("abcde"), 1, SV(""), 1, 0, S("can't happen"));
+ test(S("abcde"), 1, SV("12345"), 0, 0, S("abcde"));
+ test(S("abcde"), 1, SV("12345"), 0, 1, S("a1bcde"));
+ test(S("abcde"), 1, SV("12345"), 0, 2, S("a12bcde"));
+ test(S("abcde"), 1, SV("12345"), 0, 4, S("a1234bcde"));
+ test(S("abcde"), 1, SV("12345"), 0, 5, S("a12345bcde"));
+ test(S("abcde"), 1, SV("12345"), 0, 6, S("a12345bcde"));
+ test(S("abcde"), 1, SV("12345"), 1, 0, S("abcde"));
+ test(S("abcde"), 1, SV("12345"), 1, 1, S("a2bcde"));
+ test(S("abcde"), 1, SV("12345"), 1, 2, S("a23bcde"));
+ test(S("abcde"), 1, SV("12345"), 1, 3, S("a234bcde"));
+ test(S("abcde"), 1, SV("12345"), 1, 4, S("a2345bcde"));
+ test(S("abcde"), 1, SV("12345"), 1, 5, S("a2345bcde"));
+ test(S("abcde"), 1, SV("12345"), 2, 0, S("abcde"));
+ test(S("abcde"), 1, SV("12345"), 2, 1, S("a3bcde"));
+ test(S("abcde"), 1, SV("12345"), 2, 2, S("a34bcde"));
+ test(S("abcde"), 1, SV("12345"), 2, 3, S("a345bcde"));
+ test(S("abcde"), 1, SV("12345"), 2, 4, S("a345bcde"));
+ test(S("abcde"), 1, SV("12345"), 4, 0, S("abcde"));
+ test(S("abcde"), 1, SV("12345"), 4, 1, S("a5bcde"));
+ test(S("abcde"), 1, SV("12345"), 4, 2, S("a5bcde"));
+ test(S("abcde"), 1, SV("12345"), 5, 0, S("abcde"));
+ test(S("abcde"), 1, SV("12345"), 5, 1, S("abcde"));
+ test(S("abcde"), 1, SV("12345"), 6, 0, S("can't happen"));
+ test(S("abcde"), 1, SV("1234567890"), 0, 0, S("abcde"));
+ test(S("abcde"), 1, SV("1234567890"), 0, 1, S("a1bcde"));
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test5()
-{
- test(S("abcde"), 1, SV("1234567890"), 0, 5, S("a12345bcde"));
- test(S("abcde"), 1, SV("1234567890"), 0, 9, S("a123456789bcde"));
- test(S("abcde"), 1, SV("1234567890"), 0, 10, S("a1234567890bcde"));
- test(S("abcde"), 1, SV("1234567890"), 0, 11, S("a1234567890bcde"));
- test(S("abcde"), 1, SV("1234567890"), 1, 0, S("abcde"));
- test(S("abcde"), 1, SV("1234567890"), 1, 1, S("a2bcde"));
- test(S("abcde"), 1, SV("1234567890"), 1, 4, S("a2345bcde"));
- test(S("abcde"), 1, SV("1234567890"), 1, 8, S("a23456789bcde"));
- test(S("abcde"), 1, SV("1234567890"), 1, 9, S("a234567890bcde"));
- test(S("abcde"), 1, SV("1234567890"), 1, 10, S("a234567890bcde"));
- test(S("abcde"), 1, SV("1234567890"), 5, 0, S("abcde"));
- test(S("abcde"), 1, SV("1234567890"), 5, 1, S("a6bcde"));
- test(S("abcde"), 1, SV("1234567890"), 5, 2, S("a67bcde"));
- test(S("abcde"), 1, SV("1234567890"), 5, 4, S("a6789bcde"));
- test(S("abcde"), 1, SV("1234567890"), 5, 5, S("a67890bcde"));
- test(S("abcde"), 1, SV("1234567890"), 5, 6, S("a67890bcde"));
- test(S("abcde"), 1, SV("1234567890"), 9, 0, S("abcde"));
- test(S("abcde"), 1, SV("1234567890"), 9, 1, S("a0bcde"));
- test(S("abcde"), 1, SV("1234567890"), 9, 2, S("a0bcde"));
- test(S("abcde"), 1, SV("1234567890"), 10, 0, S("abcde"));
- test(S("abcde"), 1, SV("1234567890"), 10, 1, S("abcde"));
- test(S("abcde"), 1, SV("1234567890"), 11, 0, S("can't happen"));
- test(S("abcde"), 1, SV("12345678901234567890"), 0, 0, S("abcde"));
- test(S("abcde"), 1, SV("12345678901234567890"), 0, 1, S("a1bcde"));
- test(S("abcde"), 1, SV("12345678901234567890"), 0, 10, S("a1234567890bcde"));
- test(S("abcde"), 1, SV("12345678901234567890"), 0, 19, S("a1234567890123456789bcde"));
- test(S("abcde"), 1, SV("12345678901234567890"), 0, 20, S("a12345678901234567890bcde"));
- test(S("abcde"), 1, SV("12345678901234567890"), 0, 21, S("a12345678901234567890bcde"));
- test(S("abcde"), 1, SV("12345678901234567890"), 1, 0, S("abcde"));
- test(S("abcde"), 1, SV("12345678901234567890"), 1, 1, S("a2bcde"));
- test(S("abcde"), 1, SV("12345678901234567890"), 1, 9, S("a234567890bcde"));
- test(S("abcde"), 1, SV("12345678901234567890"), 1, 18, S("a234567890123456789bcde"));
- test(S("abcde"), 1, SV("12345678901234567890"), 1, 19, S("a2345678901234567890bcde"));
- test(S("abcde"), 1, SV("12345678901234567890"), 1, 20, S("a2345678901234567890bcde"));
- test(S("abcde"), 1, SV("12345678901234567890"), 10, 0, S("abcde"));
- test(S("abcde"), 1, SV("12345678901234567890"), 10, 1, S("a1bcde"));
- test(S("abcde"), 1, SV("12345678901234567890"), 10, 5, S("a12345bcde"));
- test(S("abcde"), 1, SV("12345678901234567890"), 10, 9, S("a123456789bcde"));
- test(S("abcde"), 1, SV("12345678901234567890"), 10, 10, S("a1234567890bcde"));
- test(S("abcde"), 1, SV("12345678901234567890"), 10, 11, S("a1234567890bcde"));
- test(S("abcde"), 1, SV("12345678901234567890"), 19, 0, S("abcde"));
- test(S("abcde"), 1, SV("12345678901234567890"), 19, 1, S("a0bcde"));
- test(S("abcde"), 1, SV("12345678901234567890"), 19, 2, S("a0bcde"));
- test(S("abcde"), 1, SV("12345678901234567890"), 20, 0, S("abcde"));
- test(S("abcde"), 1, SV("12345678901234567890"), 20, 1, S("abcde"));
- test(S("abcde"), 1, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcde"), 2, SV(""), 0, 0, S("abcde"));
- test(S("abcde"), 2, SV(""), 0, 1, S("abcde"));
- test(S("abcde"), 2, SV(""), 1, 0, S("can't happen"));
- test(S("abcde"), 2, SV("12345"), 0, 0, S("abcde"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test5() {
+ test(S("abcde"), 1, SV("1234567890"), 0, 5, S("a12345bcde"));
+ test(S("abcde"), 1, SV("1234567890"), 0, 9, S("a123456789bcde"));
+ test(S("abcde"), 1, SV("1234567890"), 0, 10, S("a1234567890bcde"));
+ test(S("abcde"), 1, SV("1234567890"), 0, 11, S("a1234567890bcde"));
+ test(S("abcde"), 1, SV("1234567890"), 1, 0, S("abcde"));
+ test(S("abcde"), 1, SV("1234567890"), 1, 1, S("a2bcde"));
+ test(S("abcde"), 1, SV("1234567890"), 1, 4, S("a2345bcde"));
+ test(S("abcde"), 1, SV("1234567890"), 1, 8, S("a23456789bcde"));
+ test(S("abcde"), 1, SV("1234567890"), 1, 9, S("a234567890bcde"));
+ test(S("abcde"), 1, SV("1234567890"), 1, 10, S("a234567890bcde"));
+ test(S("abcde"), 1, SV("1234567890"), 5, 0, S("abcde"));
+ test(S("abcde"), 1, SV("1234567890"), 5, 1, S("a6bcde"));
+ test(S("abcde"), 1, SV("1234567890"), 5, 2, S("a67bcde"));
+ test(S("abcde"), 1, SV("1234567890"), 5, 4, S("a6789bcde"));
+ test(S("abcde"), 1, SV("1234567890"), 5, 5, S("a67890bcde"));
+ test(S("abcde"), 1, SV("1234567890"), 5, 6, S("a67890bcde"));
+ test(S("abcde"), 1, SV("1234567890"), 9, 0, S("abcde"));
+ test(S("abcde"), 1, SV("1234567890"), 9, 1, S("a0bcde"));
+ test(S("abcde"), 1, SV("1234567890"), 9, 2, S("a0bcde"));
+ test(S("abcde"), 1, SV("1234567890"), 10, 0, S("abcde"));
+ test(S("abcde"), 1, SV("1234567890"), 10, 1, S("abcde"));
+ test(S("abcde"), 1, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcde"), 1, SV("12345678901234567890"), 0, 0, S("abcde"));
+ test(S("abcde"), 1, SV("12345678901234567890"), 0, 1, S("a1bcde"));
+ test(S("abcde"), 1, SV("12345678901234567890"), 0, 10, S("a1234567890bcde"));
+ test(S("abcde"), 1, SV("12345678901234567890"), 0, 19, S("a1234567890123456789bcde"));
+ test(S("abcde"), 1, SV("12345678901234567890"), 0, 20, S("a12345678901234567890bcde"));
+ test(S("abcde"), 1, SV("12345678901234567890"), 0, 21, S("a12345678901234567890bcde"));
+ test(S("abcde"), 1, SV("12345678901234567890"), 1, 0, S("abcde"));
+ test(S("abcde"), 1, SV("12345678901234567890"), 1, 1, S("a2bcde"));
+ test(S("abcde"), 1, SV("12345678901234567890"), 1, 9, S("a234567890bcde"));
+ test(S("abcde"), 1, SV("12345678901234567890"), 1, 18, S("a234567890123456789bcde"));
+ test(S("abcde"), 1, SV("12345678901234567890"), 1, 19, S("a2345678901234567890bcde"));
+ test(S("abcde"), 1, SV("12345678901234567890"), 1, 20, S("a2345678901234567890bcde"));
+ test(S("abcde"), 1, SV("12345678901234567890"), 10, 0, S("abcde"));
+ test(S("abcde"), 1, SV("12345678901234567890"), 10, 1, S("a1bcde"));
+ test(S("abcde"), 1, SV("12345678901234567890"), 10, 5, S("a12345bcde"));
+ test(S("abcde"), 1, SV("12345678901234567890"), 10, 9, S("a123456789bcde"));
+ test(S("abcde"), 1, SV("12345678901234567890"), 10, 10, S("a1234567890bcde"));
+ test(S("abcde"), 1, SV("12345678901234567890"), 10, 11, S("a1234567890bcde"));
+ test(S("abcde"), 1, SV("12345678901234567890"), 19, 0, S("abcde"));
+ test(S("abcde"), 1, SV("12345678901234567890"), 19, 1, S("a0bcde"));
+ test(S("abcde"), 1, SV("12345678901234567890"), 19, 2, S("a0bcde"));
+ test(S("abcde"), 1, SV("12345678901234567890"), 20, 0, S("abcde"));
+ test(S("abcde"), 1, SV("12345678901234567890"), 20, 1, S("abcde"));
+ test(S("abcde"), 1, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcde"), 2, SV(""), 0, 0, S("abcde"));
+ test(S("abcde"), 2, SV(""), 0, 1, S("abcde"));
+ test(S("abcde"), 2, SV(""), 1, 0, S("can't happen"));
+ test(S("abcde"), 2, SV("12345"), 0, 0, S("abcde"));
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test6()
-{
- test(S("abcde"), 2, SV("12345"), 0, 1, S("ab1cde"));
- test(S("abcde"), 2, SV("12345"), 0, 2, S("ab12cde"));
- test(S("abcde"), 2, SV("12345"), 0, 4, S("ab1234cde"));
- test(S("abcde"), 2, SV("12345"), 0, 5, S("ab12345cde"));
- test(S("abcde"), 2, SV("12345"), 0, 6, S("ab12345cde"));
- test(S("abcde"), 2, SV("12345"), 1, 0, S("abcde"));
- test(S("abcde"), 2, SV("12345"), 1, 1, S("ab2cde"));
- test(S("abcde"), 2, SV("12345"), 1, 2, S("ab23cde"));
- test(S("abcde"), 2, SV("12345"), 1, 3, S("ab234cde"));
- test(S("abcde"), 2, SV("12345"), 1, 4, S("ab2345cde"));
- test(S("abcde"), 2, SV("12345"), 1, 5, S("ab2345cde"));
- test(S("abcde"), 2, SV("12345"), 2, 0, S("abcde"));
- test(S("abcde"), 2, SV("12345"), 2, 1, S("ab3cde"));
- test(S("abcde"), 2, SV("12345"), 2, 2, S("ab34cde"));
- test(S("abcde"), 2, SV("12345"), 2, 3, S("ab345cde"));
- test(S("abcde"), 2, SV("12345"), 2, 4, S("ab345cde"));
- test(S("abcde"), 2, SV("12345"), 4, 0, S("abcde"));
- test(S("abcde"), 2, SV("12345"), 4, 1, S("ab5cde"));
- test(S("abcde"), 2, SV("12345"), 4, 2, S("ab5cde"));
- test(S("abcde"), 2, SV("12345"), 5, 0, S("abcde"));
- test(S("abcde"), 2, SV("12345"), 5, 1, S("abcde"));
- test(S("abcde"), 2, SV("12345"), 6, 0, S("can't happen"));
- test(S("abcde"), 2, SV("1234567890"), 0, 0, S("abcde"));
- test(S("abcde"), 2, SV("1234567890"), 0, 1, S("ab1cde"));
- test(S("abcde"), 2, SV("1234567890"), 0, 5, S("ab12345cde"));
- test(S("abcde"), 2, SV("1234567890"), 0, 9, S("ab123456789cde"));
- test(S("abcde"), 2, SV("1234567890"), 0, 10, S("ab1234567890cde"));
- test(S("abcde"), 2, SV("1234567890"), 0, 11, S("ab1234567890cde"));
- test(S("abcde"), 2, SV("1234567890"), 1, 0, S("abcde"));
- test(S("abcde"), 2, SV("1234567890"), 1, 1, S("ab2cde"));
- test(S("abcde"), 2, SV("1234567890"), 1, 4, S("ab2345cde"));
- test(S("abcde"), 2, SV("1234567890"), 1, 8, S("ab23456789cde"));
- test(S("abcde"), 2, SV("1234567890"), 1, 9, S("ab234567890cde"));
- test(S("abcde"), 2, SV("1234567890"), 1, 10, S("ab234567890cde"));
- test(S("abcde"), 2, SV("1234567890"), 5, 0, S("abcde"));
- test(S("abcde"), 2, SV("1234567890"), 5, 1, S("ab6cde"));
- test(S("abcde"), 2, SV("1234567890"), 5, 2, S("ab67cde"));
- test(S("abcde"), 2, SV("1234567890"), 5, 4, S("ab6789cde"));
- test(S("abcde"), 2, SV("1234567890"), 5, 5, S("ab67890cde"));
- test(S("abcde"), 2, SV("1234567890"), 5, 6, S("ab67890cde"));
- test(S("abcde"), 2, SV("1234567890"), 9, 0, S("abcde"));
- test(S("abcde"), 2, SV("1234567890"), 9, 1, S("ab0cde"));
- test(S("abcde"), 2, SV("1234567890"), 9, 2, S("ab0cde"));
- test(S("abcde"), 2, SV("1234567890"), 10, 0, S("abcde"));
- test(S("abcde"), 2, SV("1234567890"), 10, 1, S("abcde"));
- test(S("abcde"), 2, SV("1234567890"), 11, 0, S("can't happen"));
- test(S("abcde"), 2, SV("12345678901234567890"), 0, 0, S("abcde"));
- test(S("abcde"), 2, SV("12345678901234567890"), 0, 1, S("ab1cde"));
- test(S("abcde"), 2, SV("12345678901234567890"), 0, 10, S("ab1234567890cde"));
- test(S("abcde"), 2, SV("12345678901234567890"), 0, 19, S("ab1234567890123456789cde"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test6() {
+ test(S("abcde"), 2, SV("12345"), 0, 1, S("ab1cde"));
+ test(S("abcde"), 2, SV("12345"), 0, 2, S("ab12cde"));
+ test(S("abcde"), 2, SV("12345"), 0, 4, S("ab1234cde"));
+ test(S("abcde"), 2, SV("12345"), 0, 5, S("ab12345cde"));
+ test(S("abcde"), 2, SV("12345"), 0, 6, S("ab12345cde"));
+ test(S("abcde"), 2, SV("12345"), 1, 0, S("abcde"));
+ test(S("abcde"), 2, SV("12345"), 1, 1, S("ab2cde"));
+ test(S("abcde"), 2, SV("12345"), 1, 2, S("ab23cde"));
+ test(S("abcde"), 2, SV("12345"), 1, 3, S("ab234cde"));
+ test(S("abcde"), 2, SV("12345"), 1, 4, S("ab2345cde"));
+ test(S("abcde"), 2, SV("12345"), 1, 5, S("ab2345cde"));
+ test(S("abcde"), 2, SV("12345"), 2, 0, S("abcde"));
+ test(S("abcde"), 2, SV("12345"), 2, 1, S("ab3cde"));
+ test(S("abcde"), 2, SV("12345"), 2, 2, S("ab34cde"));
+ test(S("abcde"), 2, SV("12345"), 2, 3, S("ab345cde"));
+ test(S("abcde"), 2, SV("12345"), 2, 4, S("ab345cde"));
+ test(S("abcde"), 2, SV("12345"), 4, 0, S("abcde"));
+ test(S("abcde"), 2, SV("12345"), 4, 1, S("ab5cde"));
+ test(S("abcde"), 2, SV("12345"), 4, 2, S("ab5cde"));
+ test(S("abcde"), 2, SV("12345"), 5, 0, S("abcde"));
+ test(S("abcde"), 2, SV("12345"), 5, 1, S("abcde"));
+ test(S("abcde"), 2, SV("12345"), 6, 0, S("can't happen"));
+ test(S("abcde"), 2, SV("1234567890"), 0, 0, S("abcde"));
+ test(S("abcde"), 2, SV("1234567890"), 0, 1, S("ab1cde"));
+ test(S("abcde"), 2, SV("1234567890"), 0, 5, S("ab12345cde"));
+ test(S("abcde"), 2, SV("1234567890"), 0, 9, S("ab123456789cde"));
+ test(S("abcde"), 2, SV("1234567890"), 0, 10, S("ab1234567890cde"));
+ test(S("abcde"), 2, SV("1234567890"), 0, 11, S("ab1234567890cde"));
+ test(S("abcde"), 2, SV("1234567890"), 1, 0, S("abcde"));
+ test(S("abcde"), 2, SV("1234567890"), 1, 1, S("ab2cde"));
+ test(S("abcde"), 2, SV("1234567890"), 1, 4, S("ab2345cde"));
+ test(S("abcde"), 2, SV("1234567890"), 1, 8, S("ab23456789cde"));
+ test(S("abcde"), 2, SV("1234567890"), 1, 9, S("ab234567890cde"));
+ test(S("abcde"), 2, SV("1234567890"), 1, 10, S("ab234567890cde"));
+ test(S("abcde"), 2, SV("1234567890"), 5, 0, S("abcde"));
+ test(S("abcde"), 2, SV("1234567890"), 5, 1, S("ab6cde"));
+ test(S("abcde"), 2, SV("1234567890"), 5, 2, S("ab67cde"));
+ test(S("abcde"), 2, SV("1234567890"), 5, 4, S("ab6789cde"));
+ test(S("abcde"), 2, SV("1234567890"), 5, 5, S("ab67890cde"));
+ test(S("abcde"), 2, SV("1234567890"), 5, 6, S("ab67890cde"));
+ test(S("abcde"), 2, SV("1234567890"), 9, 0, S("abcde"));
+ test(S("abcde"), 2, SV("1234567890"), 9, 1, S("ab0cde"));
+ test(S("abcde"), 2, SV("1234567890"), 9, 2, S("ab0cde"));
+ test(S("abcde"), 2, SV("1234567890"), 10, 0, S("abcde"));
+ test(S("abcde"), 2, SV("1234567890"), 10, 1, S("abcde"));
+ test(S("abcde"), 2, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcde"), 2, SV("12345678901234567890"), 0, 0, S("abcde"));
+ test(S("abcde"), 2, SV("12345678901234567890"), 0, 1, S("ab1cde"));
+ test(S("abcde"), 2, SV("12345678901234567890"), 0, 10, S("ab1234567890cde"));
+ test(S("abcde"), 2, SV("12345678901234567890"), 0, 19, S("ab1234567890123456789cde"));
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test7()
-{
- test(S("abcde"), 2, SV("12345678901234567890"), 0, 20, S("ab12345678901234567890cde"));
- test(S("abcde"), 2, SV("12345678901234567890"), 0, 21, S("ab12345678901234567890cde"));
- test(S("abcde"), 2, SV("12345678901234567890"), 1, 0, S("abcde"));
- test(S("abcde"), 2, SV("12345678901234567890"), 1, 1, S("ab2cde"));
- test(S("abcde"), 2, SV("12345678901234567890"), 1, 9, S("ab234567890cde"));
- test(S("abcde"), 2, SV("12345678901234567890"), 1, 18, S("ab234567890123456789cde"));
- test(S("abcde"), 2, SV("12345678901234567890"), 1, 19, S("ab2345678901234567890cde"));
- test(S("abcde"), 2, SV("12345678901234567890"), 1, 20, S("ab2345678901234567890cde"));
- test(S("abcde"), 2, SV("12345678901234567890"), 10, 0, S("abcde"));
- test(S("abcde"), 2, SV("12345678901234567890"), 10, 1, S("ab1cde"));
- test(S("abcde"), 2, SV("12345678901234567890"), 10, 5, S("ab12345cde"));
- test(S("abcde"), 2, SV("12345678901234567890"), 10, 9, S("ab123456789cde"));
- test(S("abcde"), 2, SV("12345678901234567890"), 10, 10, S("ab1234567890cde"));
- test(S("abcde"), 2, SV("12345678901234567890"), 10, 11, S("ab1234567890cde"));
- test(S("abcde"), 2, SV("12345678901234567890"), 19, 0, S("abcde"));
- test(S("abcde"), 2, SV("12345678901234567890"), 19, 1, S("ab0cde"));
- test(S("abcde"), 2, SV("12345678901234567890"), 19, 2, S("ab0cde"));
- test(S("abcde"), 2, SV("12345678901234567890"), 20, 0, S("abcde"));
- test(S("abcde"), 2, SV("12345678901234567890"), 20, 1, S("abcde"));
- test(S("abcde"), 2, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcde"), 4, SV(""), 0, 0, S("abcde"));
- test(S("abcde"), 4, SV(""), 0, 1, S("abcde"));
- test(S("abcde"), 4, SV(""), 1, 0, S("can't happen"));
- test(S("abcde"), 4, SV("12345"), 0, 0, S("abcde"));
- test(S("abcde"), 4, SV("12345"), 0, 1, S("abcd1e"));
- test(S("abcde"), 4, SV("12345"), 0, 2, S("abcd12e"));
- test(S("abcde"), 4, SV("12345"), 0, 4, S("abcd1234e"));
- test(S("abcde"), 4, SV("12345"), 0, 5, S("abcd12345e"));
- test(S("abcde"), 4, SV("12345"), 0, 6, S("abcd12345e"));
- test(S("abcde"), 4, SV("12345"), 1, 0, S("abcde"));
- test(S("abcde"), 4, SV("12345"), 1, 1, S("abcd2e"));
- test(S("abcde"), 4, SV("12345"), 1, 2, S("abcd23e"));
- test(S("abcde"), 4, SV("12345"), 1, 3, S("abcd234e"));
- test(S("abcde"), 4, SV("12345"), 1, 4, S("abcd2345e"));
- test(S("abcde"), 4, SV("12345"), 1, 5, S("abcd2345e"));
- test(S("abcde"), 4, SV("12345"), 2, 0, S("abcde"));
- test(S("abcde"), 4, SV("12345"), 2, 1, S("abcd3e"));
- test(S("abcde"), 4, SV("12345"), 2, 2, S("abcd34e"));
- test(S("abcde"), 4, SV("12345"), 2, 3, S("abcd345e"));
- test(S("abcde"), 4, SV("12345"), 2, 4, S("abcd345e"));
- test(S("abcde"), 4, SV("12345"), 4, 0, S("abcde"));
- test(S("abcde"), 4, SV("12345"), 4, 1, S("abcd5e"));
- test(S("abcde"), 4, SV("12345"), 4, 2, S("abcd5e"));
- test(S("abcde"), 4, SV("12345"), 5, 0, S("abcde"));
- test(S("abcde"), 4, SV("12345"), 5, 1, S("abcde"));
- test(S("abcde"), 4, SV("12345"), 6, 0, S("can't happen"));
- test(S("abcde"), 4, SV("1234567890"), 0, 0, S("abcde"));
- test(S("abcde"), 4, SV("1234567890"), 0, 1, S("abcd1e"));
- test(S("abcde"), 4, SV("1234567890"), 0, 5, S("abcd12345e"));
- test(S("abcde"), 4, SV("1234567890"), 0, 9, S("abcd123456789e"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test7() {
+ test(S("abcde"), 2, SV("12345678901234567890"), 0, 20, S("ab12345678901234567890cde"));
+ test(S("abcde"), 2, SV("12345678901234567890"), 0, 21, S("ab12345678901234567890cde"));
+ test(S("abcde"), 2, SV("12345678901234567890"), 1, 0, S("abcde"));
+ test(S("abcde"), 2, SV("12345678901234567890"), 1, 1, S("ab2cde"));
+ test(S("abcde"), 2, SV("12345678901234567890"), 1, 9, S("ab234567890cde"));
+ test(S("abcde"), 2, SV("12345678901234567890"), 1, 18, S("ab234567890123456789cde"));
+ test(S("abcde"), 2, SV("12345678901234567890"), 1, 19, S("ab2345678901234567890cde"));
+ test(S("abcde"), 2, SV("12345678901234567890"), 1, 20, S("ab2345678901234567890cde"));
+ test(S("abcde"), 2, SV("12345678901234567890"), 10, 0, S("abcde"));
+ test(S("abcde"), 2, SV("12345678901234567890"), 10, 1, S("ab1cde"));
+ test(S("abcde"), 2, SV("12345678901234567890"), 10, 5, S("ab12345cde"));
+ test(S("abcde"), 2, SV("12345678901234567890"), 10, 9, S("ab123456789cde"));
+ test(S("abcde"), 2, SV("12345678901234567890"), 10, 10, S("ab1234567890cde"));
+ test(S("abcde"), 2, SV("12345678901234567890"), 10, 11, S("ab1234567890cde"));
+ test(S("abcde"), 2, SV("12345678901234567890"), 19, 0, S("abcde"));
+ test(S("abcde"), 2, SV("12345678901234567890"), 19, 1, S("ab0cde"));
+ test(S("abcde"), 2, SV("12345678901234567890"), 19, 2, S("ab0cde"));
+ test(S("abcde"), 2, SV("12345678901234567890"), 20, 0, S("abcde"));
+ test(S("abcde"), 2, SV("12345678901234567890"), 20, 1, S("abcde"));
+ test(S("abcde"), 2, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcde"), 4, SV(""), 0, 0, S("abcde"));
+ test(S("abcde"), 4, SV(""), 0, 1, S("abcde"));
+ test(S("abcde"), 4, SV(""), 1, 0, S("can't happen"));
+ test(S("abcde"), 4, SV("12345"), 0, 0, S("abcde"));
+ test(S("abcde"), 4, SV("12345"), 0, 1, S("abcd1e"));
+ test(S("abcde"), 4, SV("12345"), 0, 2, S("abcd12e"));
+ test(S("abcde"), 4, SV("12345"), 0, 4, S("abcd1234e"));
+ test(S("abcde"), 4, SV("12345"), 0, 5, S("abcd12345e"));
+ test(S("abcde"), 4, SV("12345"), 0, 6, S("abcd12345e"));
+ test(S("abcde"), 4, SV("12345"), 1, 0, S("abcde"));
+ test(S("abcde"), 4, SV("12345"), 1, 1, S("abcd2e"));
+ test(S("abcde"), 4, SV("12345"), 1, 2, S("abcd23e"));
+ test(S("abcde"), 4, SV("12345"), 1, 3, S("abcd234e"));
+ test(S("abcde"), 4, SV("12345"), 1, 4, S("abcd2345e"));
+ test(S("abcde"), 4, SV("12345"), 1, 5, S("abcd2345e"));
+ test(S("abcde"), 4, SV("12345"), 2, 0, S("abcde"));
+ test(S("abcde"), 4, SV("12345"), 2, 1, S("abcd3e"));
+ test(S("abcde"), 4, SV("12345"), 2, 2, S("abcd34e"));
+ test(S("abcde"), 4, SV("12345"), 2, 3, S("abcd345e"));
+ test(S("abcde"), 4, SV("12345"), 2, 4, S("abcd345e"));
+ test(S("abcde"), 4, SV("12345"), 4, 0, S("abcde"));
+ test(S("abcde"), 4, SV("12345"), 4, 1, S("abcd5e"));
+ test(S("abcde"), 4, SV("12345"), 4, 2, S("abcd5e"));
+ test(S("abcde"), 4, SV("12345"), 5, 0, S("abcde"));
+ test(S("abcde"), 4, SV("12345"), 5, 1, S("abcde"));
+ test(S("abcde"), 4, SV("12345"), 6, 0, S("can't happen"));
+ test(S("abcde"), 4, SV("1234567890"), 0, 0, S("abcde"));
+ test(S("abcde"), 4, SV("1234567890"), 0, 1, S("abcd1e"));
+ test(S("abcde"), 4, SV("1234567890"), 0, 5, S("abcd12345e"));
+ test(S("abcde"), 4, SV("1234567890"), 0, 9, S("abcd123456789e"));
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test8()
-{
- test(S("abcde"), 4, SV("1234567890"), 0, 10, S("abcd1234567890e"));
- test(S("abcde"), 4, SV("1234567890"), 0, 11, S("abcd1234567890e"));
- test(S("abcde"), 4, SV("1234567890"), 1, 0, S("abcde"));
- test(S("abcde"), 4, SV("1234567890"), 1, 1, S("abcd2e"));
- test(S("abcde"), 4, SV("1234567890"), 1, 4, S("abcd2345e"));
- test(S("abcde"), 4, SV("1234567890"), 1, 8, S("abcd23456789e"));
- test(S("abcde"), 4, SV("1234567890"), 1, 9, S("abcd234567890e"));
- test(S("abcde"), 4, SV("1234567890"), 1, 10, S("abcd234567890e"));
- test(S("abcde"), 4, SV("1234567890"), 5, 0, S("abcde"));
- test(S("abcde"), 4, SV("1234567890"), 5, 1, S("abcd6e"));
- test(S("abcde"), 4, SV("1234567890"), 5, 2, S("abcd67e"));
- test(S("abcde"), 4, SV("1234567890"), 5, 4, S("abcd6789e"));
- test(S("abcde"), 4, SV("1234567890"), 5, 5, S("abcd67890e"));
- test(S("abcde"), 4, SV("1234567890"), 5, 6, S("abcd67890e"));
- test(S("abcde"), 4, SV("1234567890"), 9, 0, S("abcde"));
- test(S("abcde"), 4, SV("1234567890"), 9, 1, S("abcd0e"));
- test(S("abcde"), 4, SV("1234567890"), 9, 2, S("abcd0e"));
- test(S("abcde"), 4, SV("1234567890"), 10, 0, S("abcde"));
- test(S("abcde"), 4, SV("1234567890"), 10, 1, S("abcde"));
- test(S("abcde"), 4, SV("1234567890"), 11, 0, S("can't happen"));
- test(S("abcde"), 4, SV("12345678901234567890"), 0, 0, S("abcde"));
- test(S("abcde"), 4, SV("12345678901234567890"), 0, 1, S("abcd1e"));
- test(S("abcde"), 4, SV("12345678901234567890"), 0, 10, S("abcd1234567890e"));
- test(S("abcde"), 4, SV("12345678901234567890"), 0, 19, S("abcd1234567890123456789e"));
- test(S("abcde"), 4, SV("12345678901234567890"), 0, 20, S("abcd12345678901234567890e"));
- test(S("abcde"), 4, SV("12345678901234567890"), 0, 21, S("abcd12345678901234567890e"));
- test(S("abcde"), 4, SV("12345678901234567890"), 1, 0, S("abcde"));
- test(S("abcde"), 4, SV("12345678901234567890"), 1, 1, S("abcd2e"));
- test(S("abcde"), 4, SV("12345678901234567890"), 1, 9, S("abcd234567890e"));
- test(S("abcde"), 4, SV("12345678901234567890"), 1, 18, S("abcd234567890123456789e"));
- test(S("abcde"), 4, SV("12345678901234567890"), 1, 19, S("abcd2345678901234567890e"));
- test(S("abcde"), 4, SV("12345678901234567890"), 1, 20, S("abcd2345678901234567890e"));
- test(S("abcde"), 4, SV("12345678901234567890"), 10, 0, S("abcde"));
- test(S("abcde"), 4, SV("12345678901234567890"), 10, 1, S("abcd1e"));
- test(S("abcde"), 4, SV("12345678901234567890"), 10, 5, S("abcd12345e"));
- test(S("abcde"), 4, SV("12345678901234567890"), 10, 9, S("abcd123456789e"));
- test(S("abcde"), 4, SV("12345678901234567890"), 10, 10, S("abcd1234567890e"));
- test(S("abcde"), 4, SV("12345678901234567890"), 10, 11, S("abcd1234567890e"));
- test(S("abcde"), 4, SV("12345678901234567890"), 19, 0, S("abcde"));
- test(S("abcde"), 4, SV("12345678901234567890"), 19, 1, S("abcd0e"));
- test(S("abcde"), 4, SV("12345678901234567890"), 19, 2, S("abcd0e"));
- test(S("abcde"), 4, SV("12345678901234567890"), 20, 0, S("abcde"));
- test(S("abcde"), 4, SV("12345678901234567890"), 20, 1, S("abcde"));
- test(S("abcde"), 4, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcde"), 5, SV(""), 0, 0, S("abcde"));
- test(S("abcde"), 5, SV(""), 0, 1, S("abcde"));
- test(S("abcde"), 5, SV(""), 1, 0, S("can't happen"));
- test(S("abcde"), 5, SV("12345"), 0, 0, S("abcde"));
- test(S("abcde"), 5, SV("12345"), 0, 1, S("abcde1"));
- test(S("abcde"), 5, SV("12345"), 0, 2, S("abcde12"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test8() {
+ test(S("abcde"), 4, SV("1234567890"), 0, 10, S("abcd1234567890e"));
+ test(S("abcde"), 4, SV("1234567890"), 0, 11, S("abcd1234567890e"));
+ test(S("abcde"), 4, SV("1234567890"), 1, 0, S("abcde"));
+ test(S("abcde"), 4, SV("1234567890"), 1, 1, S("abcd2e"));
+ test(S("abcde"), 4, SV("1234567890"), 1, 4, S("abcd2345e"));
+ test(S("abcde"), 4, SV("1234567890"), 1, 8, S("abcd23456789e"));
+ test(S("abcde"), 4, SV("1234567890"), 1, 9, S("abcd234567890e"));
+ test(S("abcde"), 4, SV("1234567890"), 1, 10, S("abcd234567890e"));
+ test(S("abcde"), 4, SV("1234567890"), 5, 0, S("abcde"));
+ test(S("abcde"), 4, SV("1234567890"), 5, 1, S("abcd6e"));
+ test(S("abcde"), 4, SV("1234567890"), 5, 2, S("abcd67e"));
+ test(S("abcde"), 4, SV("1234567890"), 5, 4, S("abcd6789e"));
+ test(S("abcde"), 4, SV("1234567890"), 5, 5, S("abcd67890e"));
+ test(S("abcde"), 4, SV("1234567890"), 5, 6, S("abcd67890e"));
+ test(S("abcde"), 4, SV("1234567890"), 9, 0, S("abcde"));
+ test(S("abcde"), 4, SV("1234567890"), 9, 1, S("abcd0e"));
+ test(S("abcde"), 4, SV("1234567890"), 9, 2, S("abcd0e"));
+ test(S("abcde"), 4, SV("1234567890"), 10, 0, S("abcde"));
+ test(S("abcde"), 4, SV("1234567890"), 10, 1, S("abcde"));
+ test(S("abcde"), 4, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcde"), 4, SV("12345678901234567890"), 0, 0, S("abcde"));
+ test(S("abcde"), 4, SV("12345678901234567890"), 0, 1, S("abcd1e"));
+ test(S("abcde"), 4, SV("12345678901234567890"), 0, 10, S("abcd1234567890e"));
+ test(S("abcde"), 4, SV("12345678901234567890"), 0, 19, S("abcd1234567890123456789e"));
+ test(S("abcde"), 4, SV("12345678901234567890"), 0, 20, S("abcd12345678901234567890e"));
+ test(S("abcde"), 4, SV("12345678901234567890"), 0, 21, S("abcd12345678901234567890e"));
+ test(S("abcde"), 4, SV("12345678901234567890"), 1, 0, S("abcde"));
+ test(S("abcde"), 4, SV("12345678901234567890"), 1, 1, S("abcd2e"));
+ test(S("abcde"), 4, SV("12345678901234567890"), 1, 9, S("abcd234567890e"));
+ test(S("abcde"), 4, SV("12345678901234567890"), 1, 18, S("abcd234567890123456789e"));
+ test(S("abcde"), 4, SV("12345678901234567890"), 1, 19, S("abcd2345678901234567890e"));
+ test(S("abcde"), 4, SV("12345678901234567890"), 1, 20, S("abcd2345678901234567890e"));
+ test(S("abcde"), 4, SV("12345678901234567890"), 10, 0, S("abcde"));
+ test(S("abcde"), 4, SV("12345678901234567890"), 10, 1, S("abcd1e"));
+ test(S("abcde"), 4, SV("12345678901234567890"), 10, 5, S("abcd12345e"));
+ test(S("abcde"), 4, SV("12345678901234567890"), 10, 9, S("abcd123456789e"));
+ test(S("abcde"), 4, SV("12345678901234567890"), 10, 10, S("abcd1234567890e"));
+ test(S("abcde"), 4, SV("12345678901234567890"), 10, 11, S("abcd1234567890e"));
+ test(S("abcde"), 4, SV("12345678901234567890"), 19, 0, S("abcde"));
+ test(S("abcde"), 4, SV("12345678901234567890"), 19, 1, S("abcd0e"));
+ test(S("abcde"), 4, SV("12345678901234567890"), 19, 2, S("abcd0e"));
+ test(S("abcde"), 4, SV("12345678901234567890"), 20, 0, S("abcde"));
+ test(S("abcde"), 4, SV("12345678901234567890"), 20, 1, S("abcde"));
+ test(S("abcde"), 4, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcde"), 5, SV(""), 0, 0, S("abcde"));
+ test(S("abcde"), 5, SV(""), 0, 1, S("abcde"));
+ test(S("abcde"), 5, SV(""), 1, 0, S("can't happen"));
+ test(S("abcde"), 5, SV("12345"), 0, 0, S("abcde"));
+ test(S("abcde"), 5, SV("12345"), 0, 1, S("abcde1"));
+ test(S("abcde"), 5, SV("12345"), 0, 2, S("abcde12"));
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test9()
-{
- test(S("abcde"), 5, SV("12345"), 0, 4, S("abcde1234"));
- test(S("abcde"), 5, SV("12345"), 0, 5, S("abcde12345"));
- test(S("abcde"), 5, SV("12345"), 0, 6, S("abcde12345"));
- test(S("abcde"), 5, SV("12345"), 1, 0, S("abcde"));
- test(S("abcde"), 5, SV("12345"), 1, 1, S("abcde2"));
- test(S("abcde"), 5, SV("12345"), 1, 2, S("abcde23"));
- test(S("abcde"), 5, SV("12345"), 1, 3, S("abcde234"));
- test(S("abcde"), 5, SV("12345"), 1, 4, S("abcde2345"));
- test(S("abcde"), 5, SV("12345"), 1, 5, S("abcde2345"));
- test(S("abcde"), 5, SV("12345"), 2, 0, S("abcde"));
- test(S("abcde"), 5, SV("12345"), 2, 1, S("abcde3"));
- test(S("abcde"), 5, SV("12345"), 2, 2, S("abcde34"));
- test(S("abcde"), 5, SV("12345"), 2, 3, S("abcde345"));
- test(S("abcde"), 5, SV("12345"), 2, 4, S("abcde345"));
- test(S("abcde"), 5, SV("12345"), 4, 0, S("abcde"));
- test(S("abcde"), 5, SV("12345"), 4, 1, S("abcde5"));
- test(S("abcde"), 5, SV("12345"), 4, 2, S("abcde5"));
- test(S("abcde"), 5, SV("12345"), 5, 0, S("abcde"));
- test(S("abcde"), 5, SV("12345"), 5, 1, S("abcde"));
- test(S("abcde"), 5, SV("12345"), 6, 0, S("can't happen"));
- test(S("abcde"), 5, SV("1234567890"), 0, 0, S("abcde"));
- test(S("abcde"), 5, SV("1234567890"), 0, 1, S("abcde1"));
- test(S("abcde"), 5, SV("1234567890"), 0, 5, S("abcde12345"));
- test(S("abcde"), 5, SV("1234567890"), 0, 9, S("abcde123456789"));
- test(S("abcde"), 5, SV("1234567890"), 0, 10, S("abcde1234567890"));
- test(S("abcde"), 5, SV("1234567890"), 0, 11, S("abcde1234567890"));
- test(S("abcde"), 5, SV("1234567890"), 1, 0, S("abcde"));
- test(S("abcde"), 5, SV("1234567890"), 1, 1, S("abcde2"));
- test(S("abcde"), 5, SV("1234567890"), 1, 4, S("abcde2345"));
- test(S("abcde"), 5, SV("1234567890"), 1, 8, S("abcde23456789"));
- test(S("abcde"), 5, SV("1234567890"), 1, 9, S("abcde234567890"));
- test(S("abcde"), 5, SV("1234567890"), 1, 10, S("abcde234567890"));
- test(S("abcde"), 5, SV("1234567890"), 5, 0, S("abcde"));
- test(S("abcde"), 5, SV("1234567890"), 5, 1, S("abcde6"));
- test(S("abcde"), 5, SV("1234567890"), 5, 2, S("abcde67"));
- test(S("abcde"), 5, SV("1234567890"), 5, 4, S("abcde6789"));
- test(S("abcde"), 5, SV("1234567890"), 5, 5, S("abcde67890"));
- test(S("abcde"), 5, SV("1234567890"), 5, 6, S("abcde67890"));
- test(S("abcde"), 5, SV("1234567890"), 9, 0, S("abcde"));
- test(S("abcde"), 5, SV("1234567890"), 9, 1, S("abcde0"));
- test(S("abcde"), 5, SV("1234567890"), 9, 2, S("abcde0"));
- test(S("abcde"), 5, SV("1234567890"), 10, 0, S("abcde"));
- test(S("abcde"), 5, SV("1234567890"), 10, 1, S("abcde"));
- test(S("abcde"), 5, SV("1234567890"), 11, 0, S("can't happen"));
- test(S("abcde"), 5, SV("12345678901234567890"), 0, 0, S("abcde"));
- test(S("abcde"), 5, SV("12345678901234567890"), 0, 1, S("abcde1"));
- test(S("abcde"), 5, SV("12345678901234567890"), 0, 10, S("abcde1234567890"));
- test(S("abcde"), 5, SV("12345678901234567890"), 0, 19, S("abcde1234567890123456789"));
- test(S("abcde"), 5, SV("12345678901234567890"), 0, 20, S("abcde12345678901234567890"));
- test(S("abcde"), 5, SV("12345678901234567890"), 0, 21, S("abcde12345678901234567890"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test9() {
+ test(S("abcde"), 5, SV("12345"), 0, 4, S("abcde1234"));
+ test(S("abcde"), 5, SV("12345"), 0, 5, S("abcde12345"));
+ test(S("abcde"), 5, SV("12345"), 0, 6, S("abcde12345"));
+ test(S("abcde"), 5, SV("12345"), 1, 0, S("abcde"));
+ test(S("abcde"), 5, SV("12345"), 1, 1, S("abcde2"));
+ test(S("abcde"), 5, SV("12345"), 1, 2, S("abcde23"));
+ test(S("abcde"), 5, SV("12345"), 1, 3, S("abcde234"));
+ test(S("abcde"), 5, SV("12345"), 1, 4, S("abcde2345"));
+ test(S("abcde"), 5, SV("12345"), 1, 5, S("abcde2345"));
+ test(S("abcde"), 5, SV("12345"), 2, 0, S("abcde"));
+ test(S("abcde"), 5, SV("12345"), 2, 1, S("abcde3"));
+ test(S("abcde"), 5, SV("12345"), 2, 2, S("abcde34"));
+ test(S("abcde"), 5, SV("12345"), 2, 3, S("abcde345"));
+ test(S("abcde"), 5, SV("12345"), 2, 4, S("abcde345"));
+ test(S("abcde"), 5, SV("12345"), 4, 0, S("abcde"));
+ test(S("abcde"), 5, SV("12345"), 4, 1, S("abcde5"));
+ test(S("abcde"), 5, SV("12345"), 4, 2, S("abcde5"));
+ test(S("abcde"), 5, SV("12345"), 5, 0, S("abcde"));
+ test(S("abcde"), 5, SV("12345"), 5, 1, S("abcde"));
+ test(S("abcde"), 5, SV("12345"), 6, 0, S("can't happen"));
+ test(S("abcde"), 5, SV("1234567890"), 0, 0, S("abcde"));
+ test(S("abcde"), 5, SV("1234567890"), 0, 1, S("abcde1"));
+ test(S("abcde"), 5, SV("1234567890"), 0, 5, S("abcde12345"));
+ test(S("abcde"), 5, SV("1234567890"), 0, 9, S("abcde123456789"));
+ test(S("abcde"), 5, SV("1234567890"), 0, 10, S("abcde1234567890"));
+ test(S("abcde"), 5, SV("1234567890"), 0, 11, S("abcde1234567890"));
+ test(S("abcde"), 5, SV("1234567890"), 1, 0, S("abcde"));
+ test(S("abcde"), 5, SV("1234567890"), 1, 1, S("abcde2"));
+ test(S("abcde"), 5, SV("1234567890"), 1, 4, S("abcde2345"));
+ test(S("abcde"), 5, SV("1234567890"), 1, 8, S("abcde23456789"));
+ test(S("abcde"), 5, SV("1234567890"), 1, 9, S("abcde234567890"));
+ test(S("abcde"), 5, SV("1234567890"), 1, 10, S("abcde234567890"));
+ test(S("abcde"), 5, SV("1234567890"), 5, 0, S("abcde"));
+ test(S("abcde"), 5, SV("1234567890"), 5, 1, S("abcde6"));
+ test(S("abcde"), 5, SV("1234567890"), 5, 2, S("abcde67"));
+ test(S("abcde"), 5, SV("1234567890"), 5, 4, S("abcde6789"));
+ test(S("abcde"), 5, SV("1234567890"), 5, 5, S("abcde67890"));
+ test(S("abcde"), 5, SV("1234567890"), 5, 6, S("abcde67890"));
+ test(S("abcde"), 5, SV("1234567890"), 9, 0, S("abcde"));
+ test(S("abcde"), 5, SV("1234567890"), 9, 1, S("abcde0"));
+ test(S("abcde"), 5, SV("1234567890"), 9, 2, S("abcde0"));
+ test(S("abcde"), 5, SV("1234567890"), 10, 0, S("abcde"));
+ test(S("abcde"), 5, SV("1234567890"), 10, 1, S("abcde"));
+ test(S("abcde"), 5, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcde"), 5, SV("12345678901234567890"), 0, 0, S("abcde"));
+ test(S("abcde"), 5, SV("12345678901234567890"), 0, 1, S("abcde1"));
+ test(S("abcde"), 5, SV("12345678901234567890"), 0, 10, S("abcde1234567890"));
+ test(S("abcde"), 5, SV("12345678901234567890"), 0, 19, S("abcde1234567890123456789"));
+ test(S("abcde"), 5, SV("12345678901234567890"), 0, 20, S("abcde12345678901234567890"));
+ test(S("abcde"), 5, SV("12345678901234567890"), 0, 21, S("abcde12345678901234567890"));
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test10()
-{
- test(S("abcde"), 5, SV("12345678901234567890"), 1, 0, S("abcde"));
- test(S("abcde"), 5, SV("12345678901234567890"), 1, 1, S("abcde2"));
- test(S("abcde"), 5, SV("12345678901234567890"), 1, 9, S("abcde234567890"));
- test(S("abcde"), 5, SV("12345678901234567890"), 1, 18, S("abcde234567890123456789"));
- test(S("abcde"), 5, SV("12345678901234567890"), 1, 19, S("abcde2345678901234567890"));
- test(S("abcde"), 5, SV("12345678901234567890"), 1, 20, S("abcde2345678901234567890"));
- test(S("abcde"), 5, SV("12345678901234567890"), 10, 0, S("abcde"));
- test(S("abcde"), 5, SV("12345678901234567890"), 10, 1, S("abcde1"));
- test(S("abcde"), 5, SV("12345678901234567890"), 10, 5, S("abcde12345"));
- test(S("abcde"), 5, SV("12345678901234567890"), 10, 9, S("abcde123456789"));
- test(S("abcde"), 5, SV("12345678901234567890"), 10, 10, S("abcde1234567890"));
- test(S("abcde"), 5, SV("12345678901234567890"), 10, 11, S("abcde1234567890"));
- test(S("abcde"), 5, SV("12345678901234567890"), 19, 0, S("abcde"));
- test(S("abcde"), 5, SV("12345678901234567890"), 19, 1, S("abcde0"));
- test(S("abcde"), 5, SV("12345678901234567890"), 19, 2, S("abcde0"));
- test(S("abcde"), 5, SV("12345678901234567890"), 20, 0, S("abcde"));
- test(S("abcde"), 5, SV("12345678901234567890"), 20, 1, S("abcde"));
- test(S("abcde"), 5, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcde"), 6, SV(""), 0, 0, S("can't happen"));
- test(S("abcde"), 6, SV(""), 0, 1, S("can't happen"));
- test(S("abcde"), 6, SV(""), 1, 0, S("can't happen"));
- test(S("abcde"), 6, SV("12345"), 0, 0, S("can't happen"));
- test(S("abcde"), 6, SV("12345"), 0, 1, S("can't happen"));
- test(S("abcde"), 6, SV("12345"), 0, 2, S("can't happen"));
- test(S("abcde"), 6, SV("12345"), 0, 4, S("can't happen"));
- test(S("abcde"), 6, SV("12345"), 0, 5, S("can't happen"));
- test(S("abcde"), 6, SV("12345"), 0, 6, S("can't happen"));
- test(S("abcde"), 6, SV("12345"), 1, 0, S("can't happen"));
- test(S("abcde"), 6, SV("12345"), 1, 1, S("can't happen"));
- test(S("abcde"), 6, SV("12345"), 1, 2, S("can't happen"));
- test(S("abcde"), 6, SV("12345"), 1, 3, S("can't happen"));
- test(S("abcde"), 6, SV("12345"), 1, 4, S("can't happen"));
- test(S("abcde"), 6, SV("12345"), 1, 5, S("can't happen"));
- test(S("abcde"), 6, SV("12345"), 2, 0, S("can't happen"));
- test(S("abcde"), 6, SV("12345"), 2, 1, S("can't happen"));
- test(S("abcde"), 6, SV("12345"), 2, 2, S("can't happen"));
- test(S("abcde"), 6, SV("12345"), 2, 3, S("can't happen"));
- test(S("abcde"), 6, SV("12345"), 2, 4, S("can't happen"));
- test(S("abcde"), 6, SV("12345"), 4, 0, S("can't happen"));
- test(S("abcde"), 6, SV("12345"), 4, 1, S("can't happen"));
- test(S("abcde"), 6, SV("12345"), 4, 2, S("can't happen"));
- test(S("abcde"), 6, SV("12345"), 5, 0, S("can't happen"));
- test(S("abcde"), 6, SV("12345"), 5, 1, S("can't happen"));
- test(S("abcde"), 6, SV("12345"), 6, 0, S("can't happen"));
- test(S("abcde"), 6, SV("1234567890"), 0, 0, S("can't happen"));
- test(S("abcde"), 6, SV("1234567890"), 0, 1, S("can't happen"));
- test(S("abcde"), 6, SV("1234567890"), 0, 5, S("can't happen"));
- test(S("abcde"), 6, SV("1234567890"), 0, 9, S("can't happen"));
- test(S("abcde"), 6, SV("1234567890"), 0, 10, S("can't happen"));
- test(S("abcde"), 6, SV("1234567890"), 0, 11, S("can't happen"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test10() {
+ test(S("abcde"), 5, SV("12345678901234567890"), 1, 0, S("abcde"));
+ test(S("abcde"), 5, SV("12345678901234567890"), 1, 1, S("abcde2"));
+ test(S("abcde"), 5, SV("12345678901234567890"), 1, 9, S("abcde234567890"));
+ test(S("abcde"), 5, SV("12345678901234567890"), 1, 18, S("abcde234567890123456789"));
+ test(S("abcde"), 5, SV("12345678901234567890"), 1, 19, S("abcde2345678901234567890"));
+ test(S("abcde"), 5, SV("12345678901234567890"), 1, 20, S("abcde2345678901234567890"));
+ test(S("abcde"), 5, SV("12345678901234567890"), 10, 0, S("abcde"));
+ test(S("abcde"), 5, SV("12345678901234567890"), 10, 1, S("abcde1"));
+ test(S("abcde"), 5, SV("12345678901234567890"), 10, 5, S("abcde12345"));
+ test(S("abcde"), 5, SV("12345678901234567890"), 10, 9, S("abcde123456789"));
+ test(S("abcde"), 5, SV("12345678901234567890"), 10, 10, S("abcde1234567890"));
+ test(S("abcde"), 5, SV("12345678901234567890"), 10, 11, S("abcde1234567890"));
+ test(S("abcde"), 5, SV("12345678901234567890"), 19, 0, S("abcde"));
+ test(S("abcde"), 5, SV("12345678901234567890"), 19, 1, S("abcde0"));
+ test(S("abcde"), 5, SV("12345678901234567890"), 19, 2, S("abcde0"));
+ test(S("abcde"), 5, SV("12345678901234567890"), 20, 0, S("abcde"));
+ test(S("abcde"), 5, SV("12345678901234567890"), 20, 1, S("abcde"));
+ test(S("abcde"), 5, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcde"), 6, SV(""), 0, 0, S("can't happen"));
+ test(S("abcde"), 6, SV(""), 0, 1, S("can't happen"));
+ test(S("abcde"), 6, SV(""), 1, 0, S("can't happen"));
+ test(S("abcde"), 6, SV("12345"), 0, 0, S("can't happen"));
+ test(S("abcde"), 6, SV("12345"), 0, 1, S("can't happen"));
+ test(S("abcde"), 6, SV("12345"), 0, 2, S("can't happen"));
+ test(S("abcde"), 6, SV("12345"), 0, 4, S("can't happen"));
+ test(S("abcde"), 6, SV("12345"), 0, 5, S("can't happen"));
+ test(S("abcde"), 6, SV("12345"), 0, 6, S("can't happen"));
+ test(S("abcde"), 6, SV("12345"), 1, 0, S("can't happen"));
+ test(S("abcde"), 6, SV("12345"), 1, 1, S("can't happen"));
+ test(S("abcde"), 6, SV("12345"), 1, 2, S("can't happen"));
+ test(S("abcde"), 6, SV("12345"), 1, 3, S("can't happen"));
+ test(S("abcde"), 6, SV("12345"), 1, 4, S("can't happen"));
+ test(S("abcde"), 6, SV("12345"), 1, 5, S("can't happen"));
+ test(S("abcde"), 6, SV("12345"), 2, 0, S("can't happen"));
+ test(S("abcde"), 6, SV("12345"), 2, 1, S("can't happen"));
+ test(S("abcde"), 6, SV("12345"), 2, 2, S("can't happen"));
+ test(S("abcde"), 6, SV("12345"), 2, 3, S("can't happen"));
+ test(S("abcde"), 6, SV("12345"), 2, 4, S("can't happen"));
+ test(S("abcde"), 6, SV("12345"), 4, 0, S("can't happen"));
+ test(S("abcde"), 6, SV("12345"), 4, 1, S("can't happen"));
+ test(S("abcde"), 6, SV("12345"), 4, 2, S("can't happen"));
+ test(S("abcde"), 6, SV("12345"), 5, 0, S("can't happen"));
+ test(S("abcde"), 6, SV("12345"), 5, 1, S("can't happen"));
+ test(S("abcde"), 6, SV("12345"), 6, 0, S("can't happen"));
+ test(S("abcde"), 6, SV("1234567890"), 0, 0, S("can't happen"));
+ test(S("abcde"), 6, SV("1234567890"), 0, 1, S("can't happen"));
+ test(S("abcde"), 6, SV("1234567890"), 0, 5, S("can't happen"));
+ test(S("abcde"), 6, SV("1234567890"), 0, 9, S("can't happen"));
+ test(S("abcde"), 6, SV("1234567890"), 0, 10, S("can't happen"));
+ test(S("abcde"), 6, SV("1234567890"), 0, 11, S("can't happen"));
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test11()
-{
- test(S("abcde"), 6, SV("1234567890"), 1, 0, S("can't happen"));
- test(S("abcde"), 6, SV("1234567890"), 1, 1, S("can't happen"));
- test(S("abcde"), 6, SV("1234567890"), 1, 4, S("can't happen"));
- test(S("abcde"), 6, SV("1234567890"), 1, 8, S("can't happen"));
- test(S("abcde"), 6, SV("1234567890"), 1, 9, S("can't happen"));
- test(S("abcde"), 6, SV("1234567890"), 1, 10, S("can't happen"));
- test(S("abcde"), 6, SV("1234567890"), 5, 0, S("can't happen"));
- test(S("abcde"), 6, SV("1234567890"), 5, 1, S("can't happen"));
- test(S("abcde"), 6, SV("1234567890"), 5, 2, S("can't happen"));
- test(S("abcde"), 6, SV("1234567890"), 5, 4, S("can't happen"));
- test(S("abcde"), 6, SV("1234567890"), 5, 5, S("can't happen"));
- test(S("abcde"), 6, SV("1234567890"), 5, 6, S("can't happen"));
- test(S("abcde"), 6, SV("1234567890"), 9, 0, S("can't happen"));
- test(S("abcde"), 6, SV("1234567890"), 9, 1, S("can't happen"));
- test(S("abcde"), 6, SV("1234567890"), 9, 2, S("can't happen"));
- test(S("abcde"), 6, SV("1234567890"), 10, 0, S("can't happen"));
- test(S("abcde"), 6, SV("1234567890"), 10, 1, S("can't happen"));
- test(S("abcde"), 6, SV("1234567890"), 11, 0, S("can't happen"));
- test(S("abcde"), 6, SV("12345678901234567890"), 0, 0, S("can't happen"));
- test(S("abcde"), 6, SV("12345678901234567890"), 0, 1, S("can't happen"));
- test(S("abcde"), 6, SV("12345678901234567890"), 0, 10, S("can't happen"));
- test(S("abcde"), 6, SV("12345678901234567890"), 0, 19, S("can't happen"));
- test(S("abcde"), 6, SV("12345678901234567890"), 0, 20, S("can't happen"));
- test(S("abcde"), 6, SV("12345678901234567890"), 0, 21, S("can't happen"));
- test(S("abcde"), 6, SV("12345678901234567890"), 1, 0, S("can't happen"));
- test(S("abcde"), 6, SV("12345678901234567890"), 1, 1, S("can't happen"));
- test(S("abcde"), 6, SV("12345678901234567890"), 1, 9, S("can't happen"));
- test(S("abcde"), 6, SV("12345678901234567890"), 1, 18, S("can't happen"));
- test(S("abcde"), 6, SV("12345678901234567890"), 1, 19, S("can't happen"));
- test(S("abcde"), 6, SV("12345678901234567890"), 1, 20, S("can't happen"));
- test(S("abcde"), 6, SV("12345678901234567890"), 10, 0, S("can't happen"));
- test(S("abcde"), 6, SV("12345678901234567890"), 10, 1, S("can't happen"));
- test(S("abcde"), 6, SV("12345678901234567890"), 10, 5, S("can't happen"));
- test(S("abcde"), 6, SV("12345678901234567890"), 10, 9, S("can't happen"));
- test(S("abcde"), 6, SV("12345678901234567890"), 10, 10, S("can't happen"));
- test(S("abcde"), 6, SV("12345678901234567890"), 10, 11, S("can't happen"));
- test(S("abcde"), 6, SV("12345678901234567890"), 19, 0, S("can't happen"));
- test(S("abcde"), 6, SV("12345678901234567890"), 19, 1, S("can't happen"));
- test(S("abcde"), 6, SV("12345678901234567890"), 19, 2, S("can't happen"));
- test(S("abcde"), 6, SV("12345678901234567890"), 20, 0, S("can't happen"));
- test(S("abcde"), 6, SV("12345678901234567890"), 20, 1, S("can't happen"));
- test(S("abcde"), 6, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghij"), 0, SV(""), 0, 0, S("abcdefghij"));
- test(S("abcdefghij"), 0, SV(""), 0, 1, S("abcdefghij"));
- test(S("abcdefghij"), 0, SV(""), 1, 0, S("can't happen"));
- test(S("abcdefghij"), 0, SV("12345"), 0, 0, S("abcdefghij"));
- test(S("abcdefghij"), 0, SV("12345"), 0, 1, S("1abcdefghij"));
- test(S("abcdefghij"), 0, SV("12345"), 0, 2, S("12abcdefghij"));
- test(S("abcdefghij"), 0, SV("12345"), 0, 4, S("1234abcdefghij"));
- test(S("abcdefghij"), 0, SV("12345"), 0, 5, S("12345abcdefghij"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test11() {
+ test(S("abcde"), 6, SV("1234567890"), 1, 0, S("can't happen"));
+ test(S("abcde"), 6, SV("1234567890"), 1, 1, S("can't happen"));
+ test(S("abcde"), 6, SV("1234567890"), 1, 4, S("can't happen"));
+ test(S("abcde"), 6, SV("1234567890"), 1, 8, S("can't happen"));
+ test(S("abcde"), 6, SV("1234567890"), 1, 9, S("can't happen"));
+ test(S("abcde"), 6, SV("1234567890"), 1, 10, S("can't happen"));
+ test(S("abcde"), 6, SV("1234567890"), 5, 0, S("can't happen"));
+ test(S("abcde"), 6, SV("1234567890"), 5, 1, S("can't happen"));
+ test(S("abcde"), 6, SV("1234567890"), 5, 2, S("can't happen"));
+ test(S("abcde"), 6, SV("1234567890"), 5, 4, S("can't happen"));
+ test(S("abcde"), 6, SV("1234567890"), 5, 5, S("can't happen"));
+ test(S("abcde"), 6, SV("1234567890"), 5, 6, S("can't happen"));
+ test(S("abcde"), 6, SV("1234567890"), 9, 0, S("can't happen"));
+ test(S("abcde"), 6, SV("1234567890"), 9, 1, S("can't happen"));
+ test(S("abcde"), 6, SV("1234567890"), 9, 2, S("can't happen"));
+ test(S("abcde"), 6, SV("1234567890"), 10, 0, S("can't happen"));
+ test(S("abcde"), 6, SV("1234567890"), 10, 1, S("can't happen"));
+ test(S("abcde"), 6, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcde"), 6, SV("12345678901234567890"), 0, 0, S("can't happen"));
+ test(S("abcde"), 6, SV("12345678901234567890"), 0, 1, S("can't happen"));
+ test(S("abcde"), 6, SV("12345678901234567890"), 0, 10, S("can't happen"));
+ test(S("abcde"), 6, SV("12345678901234567890"), 0, 19, S("can't happen"));
+ test(S("abcde"), 6, SV("12345678901234567890"), 0, 20, S("can't happen"));
+ test(S("abcde"), 6, SV("12345678901234567890"), 0, 21, S("can't happen"));
+ test(S("abcde"), 6, SV("12345678901234567890"), 1, 0, S("can't happen"));
+ test(S("abcde"), 6, SV("12345678901234567890"), 1, 1, S("can't happen"));
+ test(S("abcde"), 6, SV("12345678901234567890"), 1, 9, S("can't happen"));
+ test(S("abcde"), 6, SV("12345678901234567890"), 1, 18, S("can't happen"));
+ test(S("abcde"), 6, SV("12345678901234567890"), 1, 19, S("can't happen"));
+ test(S("abcde"), 6, SV("12345678901234567890"), 1, 20, S("can't happen"));
+ test(S("abcde"), 6, SV("12345678901234567890"), 10, 0, S("can't happen"));
+ test(S("abcde"), 6, SV("12345678901234567890"), 10, 1, S("can't happen"));
+ test(S("abcde"), 6, SV("12345678901234567890"), 10, 5, S("can't happen"));
+ test(S("abcde"), 6, SV("12345678901234567890"), 10, 9, S("can't happen"));
+ test(S("abcde"), 6, SV("12345678901234567890"), 10, 10, S("can't happen"));
+ test(S("abcde"), 6, SV("12345678901234567890"), 10, 11, S("can't happen"));
+ test(S("abcde"), 6, SV("12345678901234567890"), 19, 0, S("can't happen"));
+ test(S("abcde"), 6, SV("12345678901234567890"), 19, 1, S("can't happen"));
+ test(S("abcde"), 6, SV("12345678901234567890"), 19, 2, S("can't happen"));
+ test(S("abcde"), 6, SV("12345678901234567890"), 20, 0, S("can't happen"));
+ test(S("abcde"), 6, SV("12345678901234567890"), 20, 1, S("can't happen"));
+ test(S("abcde"), 6, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghij"), 0, SV(""), 0, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 0, SV(""), 0, 1, S("abcdefghij"));
+ test(S("abcdefghij"), 0, SV(""), 1, 0, S("can't happen"));
+ test(S("abcdefghij"), 0, SV("12345"), 0, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 0, SV("12345"), 0, 1, S("1abcdefghij"));
+ test(S("abcdefghij"), 0, SV("12345"), 0, 2, S("12abcdefghij"));
+ test(S("abcdefghij"), 0, SV("12345"), 0, 4, S("1234abcdefghij"));
+ test(S("abcdefghij"), 0, SV("12345"), 0, 5, S("12345abcdefghij"));
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test12()
-{
- test(S("abcdefghij"), 0, SV("12345"), 0, 6, S("12345abcdefghij"));
- test(S("abcdefghij"), 0, SV("12345"), 1, 0, S("abcdefghij"));
- test(S("abcdefghij"), 0, SV("12345"), 1, 1, S("2abcdefghij"));
- test(S("abcdefghij"), 0, SV("12345"), 1, 2, S("23abcdefghij"));
- test(S("abcdefghij"), 0, SV("12345"), 1, 3, S("234abcdefghij"));
- test(S("abcdefghij"), 0, SV("12345"), 1, 4, S("2345abcdefghij"));
- test(S("abcdefghij"), 0, SV("12345"), 1, 5, S("2345abcdefghij"));
- test(S("abcdefghij"), 0, SV("12345"), 2, 0, S("abcdefghij"));
- test(S("abcdefghij"), 0, SV("12345"), 2, 1, S("3abcdefghij"));
- test(S("abcdefghij"), 0, SV("12345"), 2, 2, S("34abcdefghij"));
- test(S("abcdefghij"), 0, SV("12345"), 2, 3, S("345abcdefghij"));
- test(S("abcdefghij"), 0, SV("12345"), 2, 4, S("345abcdefghij"));
- test(S("abcdefghij"), 0, SV("12345"), 4, 0, S("abcdefghij"));
- test(S("abcdefghij"), 0, SV("12345"), 4, 1, S("5abcdefghij"));
- test(S("abcdefghij"), 0, SV("12345"), 4, 2, S("5abcdefghij"));
- test(S("abcdefghij"), 0, SV("12345"), 5, 0, S("abcdefghij"));
- test(S("abcdefghij"), 0, SV("12345"), 5, 1, S("abcdefghij"));
- test(S("abcdefghij"), 0, SV("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghij"), 0, SV("1234567890"), 0, 0, S("abcdefghij"));
- test(S("abcdefghij"), 0, SV("1234567890"), 0, 1, S("1abcdefghij"));
- test(S("abcdefghij"), 0, SV("1234567890"), 0, 5, S("12345abcdefghij"));
- test(S("abcdefghij"), 0, SV("1234567890"), 0, 9, S("123456789abcdefghij"));
- test(S("abcdefghij"), 0, SV("1234567890"), 0, 10, S("1234567890abcdefghij"));
- test(S("abcdefghij"), 0, SV("1234567890"), 0, 11, S("1234567890abcdefghij"));
- test(S("abcdefghij"), 0, SV("1234567890"), 1, 0, S("abcdefghij"));
- test(S("abcdefghij"), 0, SV("1234567890"), 1, 1, S("2abcdefghij"));
- test(S("abcdefghij"), 0, SV("1234567890"), 1, 4, S("2345abcdefghij"));
- test(S("abcdefghij"), 0, SV("1234567890"), 1, 8, S("23456789abcdefghij"));
- test(S("abcdefghij"), 0, SV("1234567890"), 1, 9, S("234567890abcdefghij"));
- test(S("abcdefghij"), 0, SV("1234567890"), 1, 10, S("234567890abcdefghij"));
- test(S("abcdefghij"), 0, SV("1234567890"), 5, 0, S("abcdefghij"));
- test(S("abcdefghij"), 0, SV("1234567890"), 5, 1, S("6abcdefghij"));
- test(S("abcdefghij"), 0, SV("1234567890"), 5, 2, S("67abcdefghij"));
- test(S("abcdefghij"), 0, SV("1234567890"), 5, 4, S("6789abcdefghij"));
- test(S("abcdefghij"), 0, SV("1234567890"), 5, 5, S("67890abcdefghij"));
- test(S("abcdefghij"), 0, SV("1234567890"), 5, 6, S("67890abcdefghij"));
- test(S("abcdefghij"), 0, SV("1234567890"), 9, 0, S("abcdefghij"));
- test(S("abcdefghij"), 0, SV("1234567890"), 9, 1, S("0abcdefghij"));
- test(S("abcdefghij"), 0, SV("1234567890"), 9, 2, S("0abcdefghij"));
- test(S("abcdefghij"), 0, SV("1234567890"), 10, 0, S("abcdefghij"));
- test(S("abcdefghij"), 0, SV("1234567890"), 10, 1, S("abcdefghij"));
- test(S("abcdefghij"), 0, SV("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghij"), 0, SV("12345678901234567890"), 0, 0, S("abcdefghij"));
- test(S("abcdefghij"), 0, SV("12345678901234567890"), 0, 1, S("1abcdefghij"));
- test(S("abcdefghij"), 0, SV("12345678901234567890"), 0, 10, S("1234567890abcdefghij"));
- test(S("abcdefghij"), 0, SV("12345678901234567890"), 0, 19, S("1234567890123456789abcdefghij"));
- test(S("abcdefghij"), 0, SV("12345678901234567890"), 0, 20, S("12345678901234567890abcdefghij"));
- test(S("abcdefghij"), 0, SV("12345678901234567890"), 0, 21, S("12345678901234567890abcdefghij"));
- test(S("abcdefghij"), 0, SV("12345678901234567890"), 1, 0, S("abcdefghij"));
- test(S("abcdefghij"), 0, SV("12345678901234567890"), 1, 1, S("2abcdefghij"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test12() {
+ test(S("abcdefghij"), 0, SV("12345"), 0, 6, S("12345abcdefghij"));
+ test(S("abcdefghij"), 0, SV("12345"), 1, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 0, SV("12345"), 1, 1, S("2abcdefghij"));
+ test(S("abcdefghij"), 0, SV("12345"), 1, 2, S("23abcdefghij"));
+ test(S("abcdefghij"), 0, SV("12345"), 1, 3, S("234abcdefghij"));
+ test(S("abcdefghij"), 0, SV("12345"), 1, 4, S("2345abcdefghij"));
+ test(S("abcdefghij"), 0, SV("12345"), 1, 5, S("2345abcdefghij"));
+ test(S("abcdefghij"), 0, SV("12345"), 2, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 0, SV("12345"), 2, 1, S("3abcdefghij"));
+ test(S("abcdefghij"), 0, SV("12345"), 2, 2, S("34abcdefghij"));
+ test(S("abcdefghij"), 0, SV("12345"), 2, 3, S("345abcdefghij"));
+ test(S("abcdefghij"), 0, SV("12345"), 2, 4, S("345abcdefghij"));
+ test(S("abcdefghij"), 0, SV("12345"), 4, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 0, SV("12345"), 4, 1, S("5abcdefghij"));
+ test(S("abcdefghij"), 0, SV("12345"), 4, 2, S("5abcdefghij"));
+ test(S("abcdefghij"), 0, SV("12345"), 5, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 0, SV("12345"), 5, 1, S("abcdefghij"));
+ test(S("abcdefghij"), 0, SV("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghij"), 0, SV("1234567890"), 0, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 0, SV("1234567890"), 0, 1, S("1abcdefghij"));
+ test(S("abcdefghij"), 0, SV("1234567890"), 0, 5, S("12345abcdefghij"));
+ test(S("abcdefghij"), 0, SV("1234567890"), 0, 9, S("123456789abcdefghij"));
+ test(S("abcdefghij"), 0, SV("1234567890"), 0, 10, S("1234567890abcdefghij"));
+ test(S("abcdefghij"), 0, SV("1234567890"), 0, 11, S("1234567890abcdefghij"));
+ test(S("abcdefghij"), 0, SV("1234567890"), 1, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 0, SV("1234567890"), 1, 1, S("2abcdefghij"));
+ test(S("abcdefghij"), 0, SV("1234567890"), 1, 4, S("2345abcdefghij"));
+ test(S("abcdefghij"), 0, SV("1234567890"), 1, 8, S("23456789abcdefghij"));
+ test(S("abcdefghij"), 0, SV("1234567890"), 1, 9, S("234567890abcdefghij"));
+ test(S("abcdefghij"), 0, SV("1234567890"), 1, 10, S("234567890abcdefghij"));
+ test(S("abcdefghij"), 0, SV("1234567890"), 5, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 0, SV("1234567890"), 5, 1, S("6abcdefghij"));
+ test(S("abcdefghij"), 0, SV("1234567890"), 5, 2, S("67abcdefghij"));
+ test(S("abcdefghij"), 0, SV("1234567890"), 5, 4, S("6789abcdefghij"));
+ test(S("abcdefghij"), 0, SV("1234567890"), 5, 5, S("67890abcdefghij"));
+ test(S("abcdefghij"), 0, SV("1234567890"), 5, 6, S("67890abcdefghij"));
+ test(S("abcdefghij"), 0, SV("1234567890"), 9, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 0, SV("1234567890"), 9, 1, S("0abcdefghij"));
+ test(S("abcdefghij"), 0, SV("1234567890"), 9, 2, S("0abcdefghij"));
+ test(S("abcdefghij"), 0, SV("1234567890"), 10, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 0, SV("1234567890"), 10, 1, S("abcdefghij"));
+ test(S("abcdefghij"), 0, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghij"), 0, SV("12345678901234567890"), 0, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 0, SV("12345678901234567890"), 0, 1, S("1abcdefghij"));
+ test(S("abcdefghij"), 0, SV("12345678901234567890"), 0, 10, S("1234567890abcdefghij"));
+ test(S("abcdefghij"), 0, SV("12345678901234567890"), 0, 19, S("1234567890123456789abcdefghij"));
+ test(S("abcdefghij"), 0, SV("12345678901234567890"), 0, 20, S("12345678901234567890abcdefghij"));
+ test(S("abcdefghij"), 0, SV("12345678901234567890"), 0, 21, S("12345678901234567890abcdefghij"));
+ test(S("abcdefghij"), 0, SV("12345678901234567890"), 1, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 0, SV("12345678901234567890"), 1, 1, S("2abcdefghij"));
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test13()
-{
- test(S("abcdefghij"), 0, SV("12345678901234567890"), 1, 9, S("234567890abcdefghij"));
- test(S("abcdefghij"), 0, SV("12345678901234567890"), 1, 18, S("234567890123456789abcdefghij"));
- test(S("abcdefghij"), 0, SV("12345678901234567890"), 1, 19, S("2345678901234567890abcdefghij"));
- test(S("abcdefghij"), 0, SV("12345678901234567890"), 1, 20, S("2345678901234567890abcdefghij"));
- test(S("abcdefghij"), 0, SV("12345678901234567890"), 10, 0, S("abcdefghij"));
- test(S("abcdefghij"), 0, SV("12345678901234567890"), 10, 1, S("1abcdefghij"));
- test(S("abcdefghij"), 0, SV("12345678901234567890"), 10, 5, S("12345abcdefghij"));
- test(S("abcdefghij"), 0, SV("12345678901234567890"), 10, 9, S("123456789abcdefghij"));
- test(S("abcdefghij"), 0, SV("12345678901234567890"), 10, 10, S("1234567890abcdefghij"));
- test(S("abcdefghij"), 0, SV("12345678901234567890"), 10, 11, S("1234567890abcdefghij"));
- test(S("abcdefghij"), 0, SV("12345678901234567890"), 19, 0, S("abcdefghij"));
- test(S("abcdefghij"), 0, SV("12345678901234567890"), 19, 1, S("0abcdefghij"));
- test(S("abcdefghij"), 0, SV("12345678901234567890"), 19, 2, S("0abcdefghij"));
- test(S("abcdefghij"), 0, SV("12345678901234567890"), 20, 0, S("abcdefghij"));
- test(S("abcdefghij"), 0, SV("12345678901234567890"), 20, 1, S("abcdefghij"));
- test(S("abcdefghij"), 0, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghij"), 1, SV(""), 0, 0, S("abcdefghij"));
- test(S("abcdefghij"), 1, SV(""), 0, 1, S("abcdefghij"));
- test(S("abcdefghij"), 1, SV(""), 1, 0, S("can't happen"));
- test(S("abcdefghij"), 1, SV("12345"), 0, 0, S("abcdefghij"));
- test(S("abcdefghij"), 1, SV("12345"), 0, 1, S("a1bcdefghij"));
- test(S("abcdefghij"), 1, SV("12345"), 0, 2, S("a12bcdefghij"));
- test(S("abcdefghij"), 1, SV("12345"), 0, 4, S("a1234bcdefghij"));
- test(S("abcdefghij"), 1, SV("12345"), 0, 5, S("a12345bcdefghij"));
- test(S("abcdefghij"), 1, SV("12345"), 0, 6, S("a12345bcdefghij"));
- test(S("abcdefghij"), 1, SV("12345"), 1, 0, S("abcdefghij"));
- test(S("abcdefghij"), 1, SV("12345"), 1, 1, S("a2bcdefghij"));
- test(S("abcdefghij"), 1, SV("12345"), 1, 2, S("a23bcdefghij"));
- test(S("abcdefghij"), 1, SV("12345"), 1, 3, S("a234bcdefghij"));
- test(S("abcdefghij"), 1, SV("12345"), 1, 4, S("a2345bcdefghij"));
- test(S("abcdefghij"), 1, SV("12345"), 1, 5, S("a2345bcdefghij"));
- test(S("abcdefghij"), 1, SV("12345"), 2, 0, S("abcdefghij"));
- test(S("abcdefghij"), 1, SV("12345"), 2, 1, S("a3bcdefghij"));
- test(S("abcdefghij"), 1, SV("12345"), 2, 2, S("a34bcdefghij"));
- test(S("abcdefghij"), 1, SV("12345"), 2, 3, S("a345bcdefghij"));
- test(S("abcdefghij"), 1, SV("12345"), 2, 4, S("a345bcdefghij"));
- test(S("abcdefghij"), 1, SV("12345"), 4, 0, S("abcdefghij"));
- test(S("abcdefghij"), 1, SV("12345"), 4, 1, S("a5bcdefghij"));
- test(S("abcdefghij"), 1, SV("12345"), 4, 2, S("a5bcdefghij"));
- test(S("abcdefghij"), 1, SV("12345"), 5, 0, S("abcdefghij"));
- test(S("abcdefghij"), 1, SV("12345"), 5, 1, S("abcdefghij"));
- test(S("abcdefghij"), 1, SV("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghij"), 1, SV("1234567890"), 0, 0, S("abcdefghij"));
- test(S("abcdefghij"), 1, SV("1234567890"), 0, 1, S("a1bcdefghij"));
- test(S("abcdefghij"), 1, SV("1234567890"), 0, 5, S("a12345bcdefghij"));
- test(S("abcdefghij"), 1, SV("1234567890"), 0, 9, S("a123456789bcdefghij"));
- test(S("abcdefghij"), 1, SV("1234567890"), 0, 10, S("a1234567890bcdefghij"));
- test(S("abcdefghij"), 1, SV("1234567890"), 0, 11, S("a1234567890bcdefghij"));
- test(S("abcdefghij"), 1, SV("1234567890"), 1, 0, S("abcdefghij"));
- test(S("abcdefghij"), 1, SV("1234567890"), 1, 1, S("a2bcdefghij"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test13() {
+ test(S("abcdefghij"), 0, SV("12345678901234567890"), 1, 9, S("234567890abcdefghij"));
+ test(S("abcdefghij"), 0, SV("12345678901234567890"), 1, 18, S("234567890123456789abcdefghij"));
+ test(S("abcdefghij"), 0, SV("12345678901234567890"), 1, 19, S("2345678901234567890abcdefghij"));
+ test(S("abcdefghij"), 0, SV("12345678901234567890"), 1, 20, S("2345678901234567890abcdefghij"));
+ test(S("abcdefghij"), 0, SV("12345678901234567890"), 10, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 0, SV("12345678901234567890"), 10, 1, S("1abcdefghij"));
+ test(S("abcdefghij"), 0, SV("12345678901234567890"), 10, 5, S("12345abcdefghij"));
+ test(S("abcdefghij"), 0, SV("12345678901234567890"), 10, 9, S("123456789abcdefghij"));
+ test(S("abcdefghij"), 0, SV("12345678901234567890"), 10, 10, S("1234567890abcdefghij"));
+ test(S("abcdefghij"), 0, SV("12345678901234567890"), 10, 11, S("1234567890abcdefghij"));
+ test(S("abcdefghij"), 0, SV("12345678901234567890"), 19, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 0, SV("12345678901234567890"), 19, 1, S("0abcdefghij"));
+ test(S("abcdefghij"), 0, SV("12345678901234567890"), 19, 2, S("0abcdefghij"));
+ test(S("abcdefghij"), 0, SV("12345678901234567890"), 20, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 0, SV("12345678901234567890"), 20, 1, S("abcdefghij"));
+ test(S("abcdefghij"), 0, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghij"), 1, SV(""), 0, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 1, SV(""), 0, 1, S("abcdefghij"));
+ test(S("abcdefghij"), 1, SV(""), 1, 0, S("can't happen"));
+ test(S("abcdefghij"), 1, SV("12345"), 0, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 1, SV("12345"), 0, 1, S("a1bcdefghij"));
+ test(S("abcdefghij"), 1, SV("12345"), 0, 2, S("a12bcdefghij"));
+ test(S("abcdefghij"), 1, SV("12345"), 0, 4, S("a1234bcdefghij"));
+ test(S("abcdefghij"), 1, SV("12345"), 0, 5, S("a12345bcdefghij"));
+ test(S("abcdefghij"), 1, SV("12345"), 0, 6, S("a12345bcdefghij"));
+ test(S("abcdefghij"), 1, SV("12345"), 1, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 1, SV("12345"), 1, 1, S("a2bcdefghij"));
+ test(S("abcdefghij"), 1, SV("12345"), 1, 2, S("a23bcdefghij"));
+ test(S("abcdefghij"), 1, SV("12345"), 1, 3, S("a234bcdefghij"));
+ test(S("abcdefghij"), 1, SV("12345"), 1, 4, S("a2345bcdefghij"));
+ test(S("abcdefghij"), 1, SV("12345"), 1, 5, S("a2345bcdefghij"));
+ test(S("abcdefghij"), 1, SV("12345"), 2, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 1, SV("12345"), 2, 1, S("a3bcdefghij"));
+ test(S("abcdefghij"), 1, SV("12345"), 2, 2, S("a34bcdefghij"));
+ test(S("abcdefghij"), 1, SV("12345"), 2, 3, S("a345bcdefghij"));
+ test(S("abcdefghij"), 1, SV("12345"), 2, 4, S("a345bcdefghij"));
+ test(S("abcdefghij"), 1, SV("12345"), 4, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 1, SV("12345"), 4, 1, S("a5bcdefghij"));
+ test(S("abcdefghij"), 1, SV("12345"), 4, 2, S("a5bcdefghij"));
+ test(S("abcdefghij"), 1, SV("12345"), 5, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 1, SV("12345"), 5, 1, S("abcdefghij"));
+ test(S("abcdefghij"), 1, SV("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghij"), 1, SV("1234567890"), 0, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 1, SV("1234567890"), 0, 1, S("a1bcdefghij"));
+ test(S("abcdefghij"), 1, SV("1234567890"), 0, 5, S("a12345bcdefghij"));
+ test(S("abcdefghij"), 1, SV("1234567890"), 0, 9, S("a123456789bcdefghij"));
+ test(S("abcdefghij"), 1, SV("1234567890"), 0, 10, S("a1234567890bcdefghij"));
+ test(S("abcdefghij"), 1, SV("1234567890"), 0, 11, S("a1234567890bcdefghij"));
+ test(S("abcdefghij"), 1, SV("1234567890"), 1, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 1, SV("1234567890"), 1, 1, S("a2bcdefghij"));
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test14()
-{
- test(S("abcdefghij"), 1, SV("1234567890"), 1, 4, S("a2345bcdefghij"));
- test(S("abcdefghij"), 1, SV("1234567890"), 1, 8, S("a23456789bcdefghij"));
- test(S("abcdefghij"), 1, SV("1234567890"), 1, 9, S("a234567890bcdefghij"));
- test(S("abcdefghij"), 1, SV("1234567890"), 1, 10, S("a234567890bcdefghij"));
- test(S("abcdefghij"), 1, SV("1234567890"), 5, 0, S("abcdefghij"));
- test(S("abcdefghij"), 1, SV("1234567890"), 5, 1, S("a6bcdefghij"));
- test(S("abcdefghij"), 1, SV("1234567890"), 5, 2, S("a67bcdefghij"));
- test(S("abcdefghij"), 1, SV("1234567890"), 5, 4, S("a6789bcdefghij"));
- test(S("abcdefghij"), 1, SV("1234567890"), 5, 5, S("a67890bcdefghij"));
- test(S("abcdefghij"), 1, SV("1234567890"), 5, 6, S("a67890bcdefghij"));
- test(S("abcdefghij"), 1, SV("1234567890"), 9, 0, S("abcdefghij"));
- test(S("abcdefghij"), 1, SV("1234567890"), 9, 1, S("a0bcdefghij"));
- test(S("abcdefghij"), 1, SV("1234567890"), 9, 2, S("a0bcdefghij"));
- test(S("abcdefghij"), 1, SV("1234567890"), 10, 0, S("abcdefghij"));
- test(S("abcdefghij"), 1, SV("1234567890"), 10, 1, S("abcdefghij"));
- test(S("abcdefghij"), 1, SV("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghij"), 1, SV("12345678901234567890"), 0, 0, S("abcdefghij"));
- test(S("abcdefghij"), 1, SV("12345678901234567890"), 0, 1, S("a1bcdefghij"));
- test(S("abcdefghij"), 1, SV("12345678901234567890"), 0, 10, S("a1234567890bcdefghij"));
- test(S("abcdefghij"), 1, SV("12345678901234567890"), 0, 19, S("a1234567890123456789bcdefghij"));
- test(S("abcdefghij"), 1, SV("12345678901234567890"), 0, 20, S("a12345678901234567890bcdefghij"));
- test(S("abcdefghij"), 1, SV("12345678901234567890"), 0, 21, S("a12345678901234567890bcdefghij"));
- test(S("abcdefghij"), 1, SV("12345678901234567890"), 1, 0, S("abcdefghij"));
- test(S("abcdefghij"), 1, SV("12345678901234567890"), 1, 1, S("a2bcdefghij"));
- test(S("abcdefghij"), 1, SV("12345678901234567890"), 1, 9, S("a234567890bcdefghij"));
- test(S("abcdefghij"), 1, SV("12345678901234567890"), 1, 18, S("a234567890123456789bcdefghij"));
- test(S("abcdefghij"), 1, SV("12345678901234567890"), 1, 19, S("a2345678901234567890bcdefghij"));
- test(S("abcdefghij"), 1, SV("12345678901234567890"), 1, 20, S("a2345678901234567890bcdefghij"));
- test(S("abcdefghij"), 1, SV("12345678901234567890"), 10, 0, S("abcdefghij"));
- test(S("abcdefghij"), 1, SV("12345678901234567890"), 10, 1, S("a1bcdefghij"));
- test(S("abcdefghij"), 1, SV("12345678901234567890"), 10, 5, S("a12345bcdefghij"));
- test(S("abcdefghij"), 1, SV("12345678901234567890"), 10, 9, S("a123456789bcdefghij"));
- test(S("abcdefghij"), 1, SV("12345678901234567890"), 10, 10, S("a1234567890bcdefghij"));
- test(S("abcdefghij"), 1, SV("12345678901234567890"), 10, 11, S("a1234567890bcdefghij"));
- test(S("abcdefghij"), 1, SV("12345678901234567890"), 19, 0, S("abcdefghij"));
- test(S("abcdefghij"), 1, SV("12345678901234567890"), 19, 1, S("a0bcdefghij"));
- test(S("abcdefghij"), 1, SV("12345678901234567890"), 19, 2, S("a0bcdefghij"));
- test(S("abcdefghij"), 1, SV("12345678901234567890"), 20, 0, S("abcdefghij"));
- test(S("abcdefghij"), 1, SV("12345678901234567890"), 20, 1, S("abcdefghij"));
- test(S("abcdefghij"), 1, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghij"), 5, SV(""), 0, 0, S("abcdefghij"));
- test(S("abcdefghij"), 5, SV(""), 0, 1, S("abcdefghij"));
- test(S("abcdefghij"), 5, SV(""), 1, 0, S("can't happen"));
- test(S("abcdefghij"), 5, SV("12345"), 0, 0, S("abcdefghij"));
- test(S("abcdefghij"), 5, SV("12345"), 0, 1, S("abcde1fghij"));
- test(S("abcdefghij"), 5, SV("12345"), 0, 2, S("abcde12fghij"));
- test(S("abcdefghij"), 5, SV("12345"), 0, 4, S("abcde1234fghij"));
- test(S("abcdefghij"), 5, SV("12345"), 0, 5, S("abcde12345fghij"));
- test(S("abcdefghij"), 5, SV("12345"), 0, 6, S("abcde12345fghij"));
- test(S("abcdefghij"), 5, SV("12345"), 1, 0, S("abcdefghij"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test14() {
+ test(S("abcdefghij"), 1, SV("1234567890"), 1, 4, S("a2345bcdefghij"));
+ test(S("abcdefghij"), 1, SV("1234567890"), 1, 8, S("a23456789bcdefghij"));
+ test(S("abcdefghij"), 1, SV("1234567890"), 1, 9, S("a234567890bcdefghij"));
+ test(S("abcdefghij"), 1, SV("1234567890"), 1, 10, S("a234567890bcdefghij"));
+ test(S("abcdefghij"), 1, SV("1234567890"), 5, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 1, SV("1234567890"), 5, 1, S("a6bcdefghij"));
+ test(S("abcdefghij"), 1, SV("1234567890"), 5, 2, S("a67bcdefghij"));
+ test(S("abcdefghij"), 1, SV("1234567890"), 5, 4, S("a6789bcdefghij"));
+ test(S("abcdefghij"), 1, SV("1234567890"), 5, 5, S("a67890bcdefghij"));
+ test(S("abcdefghij"), 1, SV("1234567890"), 5, 6, S("a67890bcdefghij"));
+ test(S("abcdefghij"), 1, SV("1234567890"), 9, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 1, SV("1234567890"), 9, 1, S("a0bcdefghij"));
+ test(S("abcdefghij"), 1, SV("1234567890"), 9, 2, S("a0bcdefghij"));
+ test(S("abcdefghij"), 1, SV("1234567890"), 10, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 1, SV("1234567890"), 10, 1, S("abcdefghij"));
+ test(S("abcdefghij"), 1, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghij"), 1, SV("12345678901234567890"), 0, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 1, SV("12345678901234567890"), 0, 1, S("a1bcdefghij"));
+ test(S("abcdefghij"), 1, SV("12345678901234567890"), 0, 10, S("a1234567890bcdefghij"));
+ test(S("abcdefghij"), 1, SV("12345678901234567890"), 0, 19, S("a1234567890123456789bcdefghij"));
+ test(S("abcdefghij"), 1, SV("12345678901234567890"), 0, 20, S("a12345678901234567890bcdefghij"));
+ test(S("abcdefghij"), 1, SV("12345678901234567890"), 0, 21, S("a12345678901234567890bcdefghij"));
+ test(S("abcdefghij"), 1, SV("12345678901234567890"), 1, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 1, SV("12345678901234567890"), 1, 1, S("a2bcdefghij"));
+ test(S("abcdefghij"), 1, SV("12345678901234567890"), 1, 9, S("a234567890bcdefghij"));
+ test(S("abcdefghij"), 1, SV("12345678901234567890"), 1, 18, S("a234567890123456789bcdefghij"));
+ test(S("abcdefghij"), 1, SV("12345678901234567890"), 1, 19, S("a2345678901234567890bcdefghij"));
+ test(S("abcdefghij"), 1, SV("12345678901234567890"), 1, 20, S("a2345678901234567890bcdefghij"));
+ test(S("abcdefghij"), 1, SV("12345678901234567890"), 10, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 1, SV("12345678901234567890"), 10, 1, S("a1bcdefghij"));
+ test(S("abcdefghij"), 1, SV("12345678901234567890"), 10, 5, S("a12345bcdefghij"));
+ test(S("abcdefghij"), 1, SV("12345678901234567890"), 10, 9, S("a123456789bcdefghij"));
+ test(S("abcdefghij"), 1, SV("12345678901234567890"), 10, 10, S("a1234567890bcdefghij"));
+ test(S("abcdefghij"), 1, SV("12345678901234567890"), 10, 11, S("a1234567890bcdefghij"));
+ test(S("abcdefghij"), 1, SV("12345678901234567890"), 19, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 1, SV("12345678901234567890"), 19, 1, S("a0bcdefghij"));
+ test(S("abcdefghij"), 1, SV("12345678901234567890"), 19, 2, S("a0bcdefghij"));
+ test(S("abcdefghij"), 1, SV("12345678901234567890"), 20, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 1, SV("12345678901234567890"), 20, 1, S("abcdefghij"));
+ test(S("abcdefghij"), 1, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghij"), 5, SV(""), 0, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 5, SV(""), 0, 1, S("abcdefghij"));
+ test(S("abcdefghij"), 5, SV(""), 1, 0, S("can't happen"));
+ test(S("abcdefghij"), 5, SV("12345"), 0, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 5, SV("12345"), 0, 1, S("abcde1fghij"));
+ test(S("abcdefghij"), 5, SV("12345"), 0, 2, S("abcde12fghij"));
+ test(S("abcdefghij"), 5, SV("12345"), 0, 4, S("abcde1234fghij"));
+ test(S("abcdefghij"), 5, SV("12345"), 0, 5, S("abcde12345fghij"));
+ test(S("abcdefghij"), 5, SV("12345"), 0, 6, S("abcde12345fghij"));
+ test(S("abcdefghij"), 5, SV("12345"), 1, 0, S("abcdefghij"));
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test15()
-{
- test(S("abcdefghij"), 5, SV("12345"), 1, 1, S("abcde2fghij"));
- test(S("abcdefghij"), 5, SV("12345"), 1, 2, S("abcde23fghij"));
- test(S("abcdefghij"), 5, SV("12345"), 1, 3, S("abcde234fghij"));
- test(S("abcdefghij"), 5, SV("12345"), 1, 4, S("abcde2345fghij"));
- test(S("abcdefghij"), 5, SV("12345"), 1, 5, S("abcde2345fghij"));
- test(S("abcdefghij"), 5, SV("12345"), 2, 0, S("abcdefghij"));
- test(S("abcdefghij"), 5, SV("12345"), 2, 1, S("abcde3fghij"));
- test(S("abcdefghij"), 5, SV("12345"), 2, 2, S("abcde34fghij"));
- test(S("abcdefghij"), 5, SV("12345"), 2, 3, S("abcde345fghij"));
- test(S("abcdefghij"), 5, SV("12345"), 2, 4, S("abcde345fghij"));
- test(S("abcdefghij"), 5, SV("12345"), 4, 0, S("abcdefghij"));
- test(S("abcdefghij"), 5, SV("12345"), 4, 1, S("abcde5fghij"));
- test(S("abcdefghij"), 5, SV("12345"), 4, 2, S("abcde5fghij"));
- test(S("abcdefghij"), 5, SV("12345"), 5, 0, S("abcdefghij"));
- test(S("abcdefghij"), 5, SV("12345"), 5, 1, S("abcdefghij"));
- test(S("abcdefghij"), 5, SV("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghij"), 5, SV("1234567890"), 0, 0, S("abcdefghij"));
- test(S("abcdefghij"), 5, SV("1234567890"), 0, 1, S("abcde1fghij"));
- test(S("abcdefghij"), 5, SV("1234567890"), 0, 5, S("abcde12345fghij"));
- test(S("abcdefghij"), 5, SV("1234567890"), 0, 9, S("abcde123456789fghij"));
- test(S("abcdefghij"), 5, SV("1234567890"), 0, 10, S("abcde1234567890fghij"));
- test(S("abcdefghij"), 5, SV("1234567890"), 0, 11, S("abcde1234567890fghij"));
- test(S("abcdefghij"), 5, SV("1234567890"), 1, 0, S("abcdefghij"));
- test(S("abcdefghij"), 5, SV("1234567890"), 1, 1, S("abcde2fghij"));
- test(S("abcdefghij"), 5, SV("1234567890"), 1, 4, S("abcde2345fghij"));
- test(S("abcdefghij"), 5, SV("1234567890"), 1, 8, S("abcde23456789fghij"));
- test(S("abcdefghij"), 5, SV("1234567890"), 1, 9, S("abcde234567890fghij"));
- test(S("abcdefghij"), 5, SV("1234567890"), 1, 10, S("abcde234567890fghij"));
- test(S("abcdefghij"), 5, SV("1234567890"), 5, 0, S("abcdefghij"));
- test(S("abcdefghij"), 5, SV("1234567890"), 5, 1, S("abcde6fghij"));
- test(S("abcdefghij"), 5, SV("1234567890"), 5, 2, S("abcde67fghij"));
- test(S("abcdefghij"), 5, SV("1234567890"), 5, 4, S("abcde6789fghij"));
- test(S("abcdefghij"), 5, SV("1234567890"), 5, 5, S("abcde67890fghij"));
- test(S("abcdefghij"), 5, SV("1234567890"), 5, 6, S("abcde67890fghij"));
- test(S("abcdefghij"), 5, SV("1234567890"), 9, 0, S("abcdefghij"));
- test(S("abcdefghij"), 5, SV("1234567890"), 9, 1, S("abcde0fghij"));
- test(S("abcdefghij"), 5, SV("1234567890"), 9, 2, S("abcde0fghij"));
- test(S("abcdefghij"), 5, SV("1234567890"), 10, 0, S("abcdefghij"));
- test(S("abcdefghij"), 5, SV("1234567890"), 10, 1, S("abcdefghij"));
- test(S("abcdefghij"), 5, SV("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghij"), 5, SV("12345678901234567890"), 0, 0, S("abcdefghij"));
- test(S("abcdefghij"), 5, SV("12345678901234567890"), 0, 1, S("abcde1fghij"));
- test(S("abcdefghij"), 5, SV("12345678901234567890"), 0, 10, S("abcde1234567890fghij"));
- test(S("abcdefghij"), 5, SV("12345678901234567890"), 0, 19, S("abcde1234567890123456789fghij"));
- test(S("abcdefghij"), 5, SV("12345678901234567890"), 0, 20, S("abcde12345678901234567890fghij"));
- test(S("abcdefghij"), 5, SV("12345678901234567890"), 0, 21, S("abcde12345678901234567890fghij"));
- test(S("abcdefghij"), 5, SV("12345678901234567890"), 1, 0, S("abcdefghij"));
- test(S("abcdefghij"), 5, SV("12345678901234567890"), 1, 1, S("abcde2fghij"));
- test(S("abcdefghij"), 5, SV("12345678901234567890"), 1, 9, S("abcde234567890fghij"));
- test(S("abcdefghij"), 5, SV("12345678901234567890"), 1, 18, S("abcde234567890123456789fghij"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test15() {
+ test(S("abcdefghij"), 5, SV("12345"), 1, 1, S("abcde2fghij"));
+ test(S("abcdefghij"), 5, SV("12345"), 1, 2, S("abcde23fghij"));
+ test(S("abcdefghij"), 5, SV("12345"), 1, 3, S("abcde234fghij"));
+ test(S("abcdefghij"), 5, SV("12345"), 1, 4, S("abcde2345fghij"));
+ test(S("abcdefghij"), 5, SV("12345"), 1, 5, S("abcde2345fghij"));
+ test(S("abcdefghij"), 5, SV("12345"), 2, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 5, SV("12345"), 2, 1, S("abcde3fghij"));
+ test(S("abcdefghij"), 5, SV("12345"), 2, 2, S("abcde34fghij"));
+ test(S("abcdefghij"), 5, SV("12345"), 2, 3, S("abcde345fghij"));
+ test(S("abcdefghij"), 5, SV("12345"), 2, 4, S("abcde345fghij"));
+ test(S("abcdefghij"), 5, SV("12345"), 4, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 5, SV("12345"), 4, 1, S("abcde5fghij"));
+ test(S("abcdefghij"), 5, SV("12345"), 4, 2, S("abcde5fghij"));
+ test(S("abcdefghij"), 5, SV("12345"), 5, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 5, SV("12345"), 5, 1, S("abcdefghij"));
+ test(S("abcdefghij"), 5, SV("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghij"), 5, SV("1234567890"), 0, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 5, SV("1234567890"), 0, 1, S("abcde1fghij"));
+ test(S("abcdefghij"), 5, SV("1234567890"), 0, 5, S("abcde12345fghij"));
+ test(S("abcdefghij"), 5, SV("1234567890"), 0, 9, S("abcde123456789fghij"));
+ test(S("abcdefghij"), 5, SV("1234567890"), 0, 10, S("abcde1234567890fghij"));
+ test(S("abcdefghij"), 5, SV("1234567890"), 0, 11, S("abcde1234567890fghij"));
+ test(S("abcdefghij"), 5, SV("1234567890"), 1, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 5, SV("1234567890"), 1, 1, S("abcde2fghij"));
+ test(S("abcdefghij"), 5, SV("1234567890"), 1, 4, S("abcde2345fghij"));
+ test(S("abcdefghij"), 5, SV("1234567890"), 1, 8, S("abcde23456789fghij"));
+ test(S("abcdefghij"), 5, SV("1234567890"), 1, 9, S("abcde234567890fghij"));
+ test(S("abcdefghij"), 5, SV("1234567890"), 1, 10, S("abcde234567890fghij"));
+ test(S("abcdefghij"), 5, SV("1234567890"), 5, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 5, SV("1234567890"), 5, 1, S("abcde6fghij"));
+ test(S("abcdefghij"), 5, SV("1234567890"), 5, 2, S("abcde67fghij"));
+ test(S("abcdefghij"), 5, SV("1234567890"), 5, 4, S("abcde6789fghij"));
+ test(S("abcdefghij"), 5, SV("1234567890"), 5, 5, S("abcde67890fghij"));
+ test(S("abcdefghij"), 5, SV("1234567890"), 5, 6, S("abcde67890fghij"));
+ test(S("abcdefghij"), 5, SV("1234567890"), 9, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 5, SV("1234567890"), 9, 1, S("abcde0fghij"));
+ test(S("abcdefghij"), 5, SV("1234567890"), 9, 2, S("abcde0fghij"));
+ test(S("abcdefghij"), 5, SV("1234567890"), 10, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 5, SV("1234567890"), 10, 1, S("abcdefghij"));
+ test(S("abcdefghij"), 5, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghij"), 5, SV("12345678901234567890"), 0, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 5, SV("12345678901234567890"), 0, 1, S("abcde1fghij"));
+ test(S("abcdefghij"), 5, SV("12345678901234567890"), 0, 10, S("abcde1234567890fghij"));
+ test(S("abcdefghij"), 5, SV("12345678901234567890"), 0, 19, S("abcde1234567890123456789fghij"));
+ test(S("abcdefghij"), 5, SV("12345678901234567890"), 0, 20, S("abcde12345678901234567890fghij"));
+ test(S("abcdefghij"), 5, SV("12345678901234567890"), 0, 21, S("abcde12345678901234567890fghij"));
+ test(S("abcdefghij"), 5, SV("12345678901234567890"), 1, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 5, SV("12345678901234567890"), 1, 1, S("abcde2fghij"));
+ test(S("abcdefghij"), 5, SV("12345678901234567890"), 1, 9, S("abcde234567890fghij"));
+ test(S("abcdefghij"), 5, SV("12345678901234567890"), 1, 18, S("abcde234567890123456789fghij"));
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test16()
-{
- test(S("abcdefghij"), 5, SV("12345678901234567890"), 1, 19, S("abcde2345678901234567890fghij"));
- test(S("abcdefghij"), 5, SV("12345678901234567890"), 1, 20, S("abcde2345678901234567890fghij"));
- test(S("abcdefghij"), 5, SV("12345678901234567890"), 10, 0, S("abcdefghij"));
- test(S("abcdefghij"), 5, SV("12345678901234567890"), 10, 1, S("abcde1fghij"));
- test(S("abcdefghij"), 5, SV("12345678901234567890"), 10, 5, S("abcde12345fghij"));
- test(S("abcdefghij"), 5, SV("12345678901234567890"), 10, 9, S("abcde123456789fghij"));
- test(S("abcdefghij"), 5, SV("12345678901234567890"), 10, 10, S("abcde1234567890fghij"));
- test(S("abcdefghij"), 5, SV("12345678901234567890"), 10, 11, S("abcde1234567890fghij"));
- test(S("abcdefghij"), 5, SV("12345678901234567890"), 19, 0, S("abcdefghij"));
- test(S("abcdefghij"), 5, SV("12345678901234567890"), 19, 1, S("abcde0fghij"));
- test(S("abcdefghij"), 5, SV("12345678901234567890"), 19, 2, S("abcde0fghij"));
- test(S("abcdefghij"), 5, SV("12345678901234567890"), 20, 0, S("abcdefghij"));
- test(S("abcdefghij"), 5, SV("12345678901234567890"), 20, 1, S("abcdefghij"));
- test(S("abcdefghij"), 5, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghij"), 9, SV(""), 0, 0, S("abcdefghij"));
- test(S("abcdefghij"), 9, SV(""), 0, 1, S("abcdefghij"));
- test(S("abcdefghij"), 9, SV(""), 1, 0, S("can't happen"));
- test(S("abcdefghij"), 9, SV("12345"), 0, 0, S("abcdefghij"));
- test(S("abcdefghij"), 9, SV("12345"), 0, 1, S("abcdefghi1j"));
- test(S("abcdefghij"), 9, SV("12345"), 0, 2, S("abcdefghi12j"));
- test(S("abcdefghij"), 9, SV("12345"), 0, 4, S("abcdefghi1234j"));
- test(S("abcdefghij"), 9, SV("12345"), 0, 5, S("abcdefghi12345j"));
- test(S("abcdefghij"), 9, SV("12345"), 0, 6, S("abcdefghi12345j"));
- test(S("abcdefghij"), 9, SV("12345"), 1, 0, S("abcdefghij"));
- test(S("abcdefghij"), 9, SV("12345"), 1, 1, S("abcdefghi2j"));
- test(S("abcdefghij"), 9, SV("12345"), 1, 2, S("abcdefghi23j"));
- test(S("abcdefghij"), 9, SV("12345"), 1, 3, S("abcdefghi234j"));
- test(S("abcdefghij"), 9, SV("12345"), 1, 4, S("abcdefghi2345j"));
- test(S("abcdefghij"), 9, SV("12345"), 1, 5, S("abcdefghi2345j"));
- test(S("abcdefghij"), 9, SV("12345"), 2, 0, S("abcdefghij"));
- test(S("abcdefghij"), 9, SV("12345"), 2, 1, S("abcdefghi3j"));
- test(S("abcdefghij"), 9, SV("12345"), 2, 2, S("abcdefghi34j"));
- test(S("abcdefghij"), 9, SV("12345"), 2, 3, S("abcdefghi345j"));
- test(S("abcdefghij"), 9, SV("12345"), 2, 4, S("abcdefghi345j"));
- test(S("abcdefghij"), 9, SV("12345"), 4, 0, S("abcdefghij"));
- test(S("abcdefghij"), 9, SV("12345"), 4, 1, S("abcdefghi5j"));
- test(S("abcdefghij"), 9, SV("12345"), 4, 2, S("abcdefghi5j"));
- test(S("abcdefghij"), 9, SV("12345"), 5, 0, S("abcdefghij"));
- test(S("abcdefghij"), 9, SV("12345"), 5, 1, S("abcdefghij"));
- test(S("abcdefghij"), 9, SV("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghij"), 9, SV("1234567890"), 0, 0, S("abcdefghij"));
- test(S("abcdefghij"), 9, SV("1234567890"), 0, 1, S("abcdefghi1j"));
- test(S("abcdefghij"), 9, SV("1234567890"), 0, 5, S("abcdefghi12345j"));
- test(S("abcdefghij"), 9, SV("1234567890"), 0, 9, S("abcdefghi123456789j"));
- test(S("abcdefghij"), 9, SV("1234567890"), 0, 10, S("abcdefghi1234567890j"));
- test(S("abcdefghij"), 9, SV("1234567890"), 0, 11, S("abcdefghi1234567890j"));
- test(S("abcdefghij"), 9, SV("1234567890"), 1, 0, S("abcdefghij"));
- test(S("abcdefghij"), 9, SV("1234567890"), 1, 1, S("abcdefghi2j"));
- test(S("abcdefghij"), 9, SV("1234567890"), 1, 4, S("abcdefghi2345j"));
- test(S("abcdefghij"), 9, SV("1234567890"), 1, 8, S("abcdefghi23456789j"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test16() {
+ test(S("abcdefghij"), 5, SV("12345678901234567890"), 1, 19, S("abcde2345678901234567890fghij"));
+ test(S("abcdefghij"), 5, SV("12345678901234567890"), 1, 20, S("abcde2345678901234567890fghij"));
+ test(S("abcdefghij"), 5, SV("12345678901234567890"), 10, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 5, SV("12345678901234567890"), 10, 1, S("abcde1fghij"));
+ test(S("abcdefghij"), 5, SV("12345678901234567890"), 10, 5, S("abcde12345fghij"));
+ test(S("abcdefghij"), 5, SV("12345678901234567890"), 10, 9, S("abcde123456789fghij"));
+ test(S("abcdefghij"), 5, SV("12345678901234567890"), 10, 10, S("abcde1234567890fghij"));
+ test(S("abcdefghij"), 5, SV("12345678901234567890"), 10, 11, S("abcde1234567890fghij"));
+ test(S("abcdefghij"), 5, SV("12345678901234567890"), 19, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 5, SV("12345678901234567890"), 19, 1, S("abcde0fghij"));
+ test(S("abcdefghij"), 5, SV("12345678901234567890"), 19, 2, S("abcde0fghij"));
+ test(S("abcdefghij"), 5, SV("12345678901234567890"), 20, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 5, SV("12345678901234567890"), 20, 1, S("abcdefghij"));
+ test(S("abcdefghij"), 5, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghij"), 9, SV(""), 0, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 9, SV(""), 0, 1, S("abcdefghij"));
+ test(S("abcdefghij"), 9, SV(""), 1, 0, S("can't happen"));
+ test(S("abcdefghij"), 9, SV("12345"), 0, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 9, SV("12345"), 0, 1, S("abcdefghi1j"));
+ test(S("abcdefghij"), 9, SV("12345"), 0, 2, S("abcdefghi12j"));
+ test(S("abcdefghij"), 9, SV("12345"), 0, 4, S("abcdefghi1234j"));
+ test(S("abcdefghij"), 9, SV("12345"), 0, 5, S("abcdefghi12345j"));
+ test(S("abcdefghij"), 9, SV("12345"), 0, 6, S("abcdefghi12345j"));
+ test(S("abcdefghij"), 9, SV("12345"), 1, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 9, SV("12345"), 1, 1, S("abcdefghi2j"));
+ test(S("abcdefghij"), 9, SV("12345"), 1, 2, S("abcdefghi23j"));
+ test(S("abcdefghij"), 9, SV("12345"), 1, 3, S("abcdefghi234j"));
+ test(S("abcdefghij"), 9, SV("12345"), 1, 4, S("abcdefghi2345j"));
+ test(S("abcdefghij"), 9, SV("12345"), 1, 5, S("abcdefghi2345j"));
+ test(S("abcdefghij"), 9, SV("12345"), 2, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 9, SV("12345"), 2, 1, S("abcdefghi3j"));
+ test(S("abcdefghij"), 9, SV("12345"), 2, 2, S("abcdefghi34j"));
+ test(S("abcdefghij"), 9, SV("12345"), 2, 3, S("abcdefghi345j"));
+ test(S("abcdefghij"), 9, SV("12345"), 2, 4, S("abcdefghi345j"));
+ test(S("abcdefghij"), 9, SV("12345"), 4, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 9, SV("12345"), 4, 1, S("abcdefghi5j"));
+ test(S("abcdefghij"), 9, SV("12345"), 4, 2, S("abcdefghi5j"));
+ test(S("abcdefghij"), 9, SV("12345"), 5, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 9, SV("12345"), 5, 1, S("abcdefghij"));
+ test(S("abcdefghij"), 9, SV("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghij"), 9, SV("1234567890"), 0, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 9, SV("1234567890"), 0, 1, S("abcdefghi1j"));
+ test(S("abcdefghij"), 9, SV("1234567890"), 0, 5, S("abcdefghi12345j"));
+ test(S("abcdefghij"), 9, SV("1234567890"), 0, 9, S("abcdefghi123456789j"));
+ test(S("abcdefghij"), 9, SV("1234567890"), 0, 10, S("abcdefghi1234567890j"));
+ test(S("abcdefghij"), 9, SV("1234567890"), 0, 11, S("abcdefghi1234567890j"));
+ test(S("abcdefghij"), 9, SV("1234567890"), 1, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 9, SV("1234567890"), 1, 1, S("abcdefghi2j"));
+ test(S("abcdefghij"), 9, SV("1234567890"), 1, 4, S("abcdefghi2345j"));
+ test(S("abcdefghij"), 9, SV("1234567890"), 1, 8, S("abcdefghi23456789j"));
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test17()
-{
- test(S("abcdefghij"), 9, SV("1234567890"), 1, 9, S("abcdefghi234567890j"));
- test(S("abcdefghij"), 9, SV("1234567890"), 1, 10, S("abcdefghi234567890j"));
- test(S("abcdefghij"), 9, SV("1234567890"), 5, 0, S("abcdefghij"));
- test(S("abcdefghij"), 9, SV("1234567890"), 5, 1, S("abcdefghi6j"));
- test(S("abcdefghij"), 9, SV("1234567890"), 5, 2, S("abcdefghi67j"));
- test(S("abcdefghij"), 9, SV("1234567890"), 5, 4, S("abcdefghi6789j"));
- test(S("abcdefghij"), 9, SV("1234567890"), 5, 5, S("abcdefghi67890j"));
- test(S("abcdefghij"), 9, SV("1234567890"), 5, 6, S("abcdefghi67890j"));
- test(S("abcdefghij"), 9, SV("1234567890"), 9, 0, S("abcdefghij"));
- test(S("abcdefghij"), 9, SV("1234567890"), 9, 1, S("abcdefghi0j"));
- test(S("abcdefghij"), 9, SV("1234567890"), 9, 2, S("abcdefghi0j"));
- test(S("abcdefghij"), 9, SV("1234567890"), 10, 0, S("abcdefghij"));
- test(S("abcdefghij"), 9, SV("1234567890"), 10, 1, S("abcdefghij"));
- test(S("abcdefghij"), 9, SV("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghij"), 9, SV("12345678901234567890"), 0, 0, S("abcdefghij"));
- test(S("abcdefghij"), 9, SV("12345678901234567890"), 0, 1, S("abcdefghi1j"));
- test(S("abcdefghij"), 9, SV("12345678901234567890"), 0, 10, S("abcdefghi1234567890j"));
- test(S("abcdefghij"), 9, SV("12345678901234567890"), 0, 19, S("abcdefghi1234567890123456789j"));
- test(S("abcdefghij"), 9, SV("12345678901234567890"), 0, 20, S("abcdefghi12345678901234567890j"));
- test(S("abcdefghij"), 9, SV("12345678901234567890"), 0, 21, S("abcdefghi12345678901234567890j"));
- test(S("abcdefghij"), 9, SV("12345678901234567890"), 1, 0, S("abcdefghij"));
- test(S("abcdefghij"), 9, SV("12345678901234567890"), 1, 1, S("abcdefghi2j"));
- test(S("abcdefghij"), 9, SV("12345678901234567890"), 1, 9, S("abcdefghi234567890j"));
- test(S("abcdefghij"), 9, SV("12345678901234567890"), 1, 18, S("abcdefghi234567890123456789j"));
- test(S("abcdefghij"), 9, SV("12345678901234567890"), 1, 19, S("abcdefghi2345678901234567890j"));
- test(S("abcdefghij"), 9, SV("12345678901234567890"), 1, 20, S("abcdefghi2345678901234567890j"));
- test(S("abcdefghij"), 9, SV("12345678901234567890"), 10, 0, S("abcdefghij"));
- test(S("abcdefghij"), 9, SV("12345678901234567890"), 10, 1, S("abcdefghi1j"));
- test(S("abcdefghij"), 9, SV("12345678901234567890"), 10, 5, S("abcdefghi12345j"));
- test(S("abcdefghij"), 9, SV("12345678901234567890"), 10, 9, S("abcdefghi123456789j"));
- test(S("abcdefghij"), 9, SV("12345678901234567890"), 10, 10, S("abcdefghi1234567890j"));
- test(S("abcdefghij"), 9, SV("12345678901234567890"), 10, 11, S("abcdefghi1234567890j"));
- test(S("abcdefghij"), 9, SV("12345678901234567890"), 19, 0, S("abcdefghij"));
- test(S("abcdefghij"), 9, SV("12345678901234567890"), 19, 1, S("abcdefghi0j"));
- test(S("abcdefghij"), 9, SV("12345678901234567890"), 19, 2, S("abcdefghi0j"));
- test(S("abcdefghij"), 9, SV("12345678901234567890"), 20, 0, S("abcdefghij"));
- test(S("abcdefghij"), 9, SV("12345678901234567890"), 20, 1, S("abcdefghij"));
- test(S("abcdefghij"), 9, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghij"), 10, SV(""), 0, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, SV(""), 0, 1, S("abcdefghij"));
- test(S("abcdefghij"), 10, SV(""), 1, 0, S("can't happen"));
- test(S("abcdefghij"), 10, SV("12345"), 0, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, SV("12345"), 0, 1, S("abcdefghij1"));
- test(S("abcdefghij"), 10, SV("12345"), 0, 2, S("abcdefghij12"));
- test(S("abcdefghij"), 10, SV("12345"), 0, 4, S("abcdefghij1234"));
- test(S("abcdefghij"), 10, SV("12345"), 0, 5, S("abcdefghij12345"));
- test(S("abcdefghij"), 10, SV("12345"), 0, 6, S("abcdefghij12345"));
- test(S("abcdefghij"), 10, SV("12345"), 1, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, SV("12345"), 1, 1, S("abcdefghij2"));
- test(S("abcdefghij"), 10, SV("12345"), 1, 2, S("abcdefghij23"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test17() {
+ test(S("abcdefghij"), 9, SV("1234567890"), 1, 9, S("abcdefghi234567890j"));
+ test(S("abcdefghij"), 9, SV("1234567890"), 1, 10, S("abcdefghi234567890j"));
+ test(S("abcdefghij"), 9, SV("1234567890"), 5, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 9, SV("1234567890"), 5, 1, S("abcdefghi6j"));
+ test(S("abcdefghij"), 9, SV("1234567890"), 5, 2, S("abcdefghi67j"));
+ test(S("abcdefghij"), 9, SV("1234567890"), 5, 4, S("abcdefghi6789j"));
+ test(S("abcdefghij"), 9, SV("1234567890"), 5, 5, S("abcdefghi67890j"));
+ test(S("abcdefghij"), 9, SV("1234567890"), 5, 6, S("abcdefghi67890j"));
+ test(S("abcdefghij"), 9, SV("1234567890"), 9, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 9, SV("1234567890"), 9, 1, S("abcdefghi0j"));
+ test(S("abcdefghij"), 9, SV("1234567890"), 9, 2, S("abcdefghi0j"));
+ test(S("abcdefghij"), 9, SV("1234567890"), 10, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 9, SV("1234567890"), 10, 1, S("abcdefghij"));
+ test(S("abcdefghij"), 9, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghij"), 9, SV("12345678901234567890"), 0, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 9, SV("12345678901234567890"), 0, 1, S("abcdefghi1j"));
+ test(S("abcdefghij"), 9, SV("12345678901234567890"), 0, 10, S("abcdefghi1234567890j"));
+ test(S("abcdefghij"), 9, SV("12345678901234567890"), 0, 19, S("abcdefghi1234567890123456789j"));
+ test(S("abcdefghij"), 9, SV("12345678901234567890"), 0, 20, S("abcdefghi12345678901234567890j"));
+ test(S("abcdefghij"), 9, SV("12345678901234567890"), 0, 21, S("abcdefghi12345678901234567890j"));
+ test(S("abcdefghij"), 9, SV("12345678901234567890"), 1, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 9, SV("12345678901234567890"), 1, 1, S("abcdefghi2j"));
+ test(S("abcdefghij"), 9, SV("12345678901234567890"), 1, 9, S("abcdefghi234567890j"));
+ test(S("abcdefghij"), 9, SV("12345678901234567890"), 1, 18, S("abcdefghi234567890123456789j"));
+ test(S("abcdefghij"), 9, SV("12345678901234567890"), 1, 19, S("abcdefghi2345678901234567890j"));
+ test(S("abcdefghij"), 9, SV("12345678901234567890"), 1, 20, S("abcdefghi2345678901234567890j"));
+ test(S("abcdefghij"), 9, SV("12345678901234567890"), 10, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 9, SV("12345678901234567890"), 10, 1, S("abcdefghi1j"));
+ test(S("abcdefghij"), 9, SV("12345678901234567890"), 10, 5, S("abcdefghi12345j"));
+ test(S("abcdefghij"), 9, SV("12345678901234567890"), 10, 9, S("abcdefghi123456789j"));
+ test(S("abcdefghij"), 9, SV("12345678901234567890"), 10, 10, S("abcdefghi1234567890j"));
+ test(S("abcdefghij"), 9, SV("12345678901234567890"), 10, 11, S("abcdefghi1234567890j"));
+ test(S("abcdefghij"), 9, SV("12345678901234567890"), 19, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 9, SV("12345678901234567890"), 19, 1, S("abcdefghi0j"));
+ test(S("abcdefghij"), 9, SV("12345678901234567890"), 19, 2, S("abcdefghi0j"));
+ test(S("abcdefghij"), 9, SV("12345678901234567890"), 20, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 9, SV("12345678901234567890"), 20, 1, S("abcdefghij"));
+ test(S("abcdefghij"), 9, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghij"), 10, SV(""), 0, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, SV(""), 0, 1, S("abcdefghij"));
+ test(S("abcdefghij"), 10, SV(""), 1, 0, S("can't happen"));
+ test(S("abcdefghij"), 10, SV("12345"), 0, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, SV("12345"), 0, 1, S("abcdefghij1"));
+ test(S("abcdefghij"), 10, SV("12345"), 0, 2, S("abcdefghij12"));
+ test(S("abcdefghij"), 10, SV("12345"), 0, 4, S("abcdefghij1234"));
+ test(S("abcdefghij"), 10, SV("12345"), 0, 5, S("abcdefghij12345"));
+ test(S("abcdefghij"), 10, SV("12345"), 0, 6, S("abcdefghij12345"));
+ test(S("abcdefghij"), 10, SV("12345"), 1, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, SV("12345"), 1, 1, S("abcdefghij2"));
+ test(S("abcdefghij"), 10, SV("12345"), 1, 2, S("abcdefghij23"));
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test18()
-{
- test(S("abcdefghij"), 10, SV("12345"), 1, 3, S("abcdefghij234"));
- test(S("abcdefghij"), 10, SV("12345"), 1, 4, S("abcdefghij2345"));
- test(S("abcdefghij"), 10, SV("12345"), 1, 5, S("abcdefghij2345"));
- test(S("abcdefghij"), 10, SV("12345"), 2, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, SV("12345"), 2, 1, S("abcdefghij3"));
- test(S("abcdefghij"), 10, SV("12345"), 2, 2, S("abcdefghij34"));
- test(S("abcdefghij"), 10, SV("12345"), 2, 3, S("abcdefghij345"));
- test(S("abcdefghij"), 10, SV("12345"), 2, 4, S("abcdefghij345"));
- test(S("abcdefghij"), 10, SV("12345"), 4, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, SV("12345"), 4, 1, S("abcdefghij5"));
- test(S("abcdefghij"), 10, SV("12345"), 4, 2, S("abcdefghij5"));
- test(S("abcdefghij"), 10, SV("12345"), 5, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, SV("12345"), 5, 1, S("abcdefghij"));
- test(S("abcdefghij"), 10, SV("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghij"), 10, SV("1234567890"), 0, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, SV("1234567890"), 0, 1, S("abcdefghij1"));
- test(S("abcdefghij"), 10, SV("1234567890"), 0, 5, S("abcdefghij12345"));
- test(S("abcdefghij"), 10, SV("1234567890"), 0, 9, S("abcdefghij123456789"));
- test(S("abcdefghij"), 10, SV("1234567890"), 0, 10, S("abcdefghij1234567890"));
- test(S("abcdefghij"), 10, SV("1234567890"), 0, 11, S("abcdefghij1234567890"));
- test(S("abcdefghij"), 10, SV("1234567890"), 1, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, SV("1234567890"), 1, 1, S("abcdefghij2"));
- test(S("abcdefghij"), 10, SV("1234567890"), 1, 4, S("abcdefghij2345"));
- test(S("abcdefghij"), 10, SV("1234567890"), 1, 8, S("abcdefghij23456789"));
- test(S("abcdefghij"), 10, SV("1234567890"), 1, 9, S("abcdefghij234567890"));
- test(S("abcdefghij"), 10, SV("1234567890"), 1, 10, S("abcdefghij234567890"));
- test(S("abcdefghij"), 10, SV("1234567890"), 5, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, SV("1234567890"), 5, 1, S("abcdefghij6"));
- test(S("abcdefghij"), 10, SV("1234567890"), 5, 2, S("abcdefghij67"));
- test(S("abcdefghij"), 10, SV("1234567890"), 5, 4, S("abcdefghij6789"));
- test(S("abcdefghij"), 10, SV("1234567890"), 5, 5, S("abcdefghij67890"));
- test(S("abcdefghij"), 10, SV("1234567890"), 5, 6, S("abcdefghij67890"));
- test(S("abcdefghij"), 10, SV("1234567890"), 9, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, SV("1234567890"), 9, 1, S("abcdefghij0"));
- test(S("abcdefghij"), 10, SV("1234567890"), 9, 2, S("abcdefghij0"));
- test(S("abcdefghij"), 10, SV("1234567890"), 10, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, SV("1234567890"), 10, 1, S("abcdefghij"));
- test(S("abcdefghij"), 10, SV("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghij"), 10, SV("12345678901234567890"), 0, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, SV("12345678901234567890"), 0, 1, S("abcdefghij1"));
- test(S("abcdefghij"), 10, SV("12345678901234567890"), 0, 10, S("abcdefghij1234567890"));
- test(S("abcdefghij"), 10, SV("12345678901234567890"), 0, 19, S("abcdefghij1234567890123456789"));
- test(S("abcdefghij"), 10, SV("12345678901234567890"), 0, 20, S("abcdefghij12345678901234567890"));
- test(S("abcdefghij"), 10, SV("12345678901234567890"), 0, 21, S("abcdefghij12345678901234567890"));
- test(S("abcdefghij"), 10, SV("12345678901234567890"), 1, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, SV("12345678901234567890"), 1, 1, S("abcdefghij2"));
- test(S("abcdefghij"), 10, SV("12345678901234567890"), 1, 9, S("abcdefghij234567890"));
- test(S("abcdefghij"), 10, SV("12345678901234567890"), 1, 18, S("abcdefghij234567890123456789"));
- test(S("abcdefghij"), 10, SV("12345678901234567890"), 1, 19, S("abcdefghij2345678901234567890"));
- test(S("abcdefghij"), 10, SV("12345678901234567890"), 1, 20, S("abcdefghij2345678901234567890"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test18() {
+ test(S("abcdefghij"), 10, SV("12345"), 1, 3, S("abcdefghij234"));
+ test(S("abcdefghij"), 10, SV("12345"), 1, 4, S("abcdefghij2345"));
+ test(S("abcdefghij"), 10, SV("12345"), 1, 5, S("abcdefghij2345"));
+ test(S("abcdefghij"), 10, SV("12345"), 2, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, SV("12345"), 2, 1, S("abcdefghij3"));
+ test(S("abcdefghij"), 10, SV("12345"), 2, 2, S("abcdefghij34"));
+ test(S("abcdefghij"), 10, SV("12345"), 2, 3, S("abcdefghij345"));
+ test(S("abcdefghij"), 10, SV("12345"), 2, 4, S("abcdefghij345"));
+ test(S("abcdefghij"), 10, SV("12345"), 4, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, SV("12345"), 4, 1, S("abcdefghij5"));
+ test(S("abcdefghij"), 10, SV("12345"), 4, 2, S("abcdefghij5"));
+ test(S("abcdefghij"), 10, SV("12345"), 5, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, SV("12345"), 5, 1, S("abcdefghij"));
+ test(S("abcdefghij"), 10, SV("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghij"), 10, SV("1234567890"), 0, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, SV("1234567890"), 0, 1, S("abcdefghij1"));
+ test(S("abcdefghij"), 10, SV("1234567890"), 0, 5, S("abcdefghij12345"));
+ test(S("abcdefghij"), 10, SV("1234567890"), 0, 9, S("abcdefghij123456789"));
+ test(S("abcdefghij"), 10, SV("1234567890"), 0, 10, S("abcdefghij1234567890"));
+ test(S("abcdefghij"), 10, SV("1234567890"), 0, 11, S("abcdefghij1234567890"));
+ test(S("abcdefghij"), 10, SV("1234567890"), 1, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, SV("1234567890"), 1, 1, S("abcdefghij2"));
+ test(S("abcdefghij"), 10, SV("1234567890"), 1, 4, S("abcdefghij2345"));
+ test(S("abcdefghij"), 10, SV("1234567890"), 1, 8, S("abcdefghij23456789"));
+ test(S("abcdefghij"), 10, SV("1234567890"), 1, 9, S("abcdefghij234567890"));
+ test(S("abcdefghij"), 10, SV("1234567890"), 1, 10, S("abcdefghij234567890"));
+ test(S("abcdefghij"), 10, SV("1234567890"), 5, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, SV("1234567890"), 5, 1, S("abcdefghij6"));
+ test(S("abcdefghij"), 10, SV("1234567890"), 5, 2, S("abcdefghij67"));
+ test(S("abcdefghij"), 10, SV("1234567890"), 5, 4, S("abcdefghij6789"));
+ test(S("abcdefghij"), 10, SV("1234567890"), 5, 5, S("abcdefghij67890"));
+ test(S("abcdefghij"), 10, SV("1234567890"), 5, 6, S("abcdefghij67890"));
+ test(S("abcdefghij"), 10, SV("1234567890"), 9, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, SV("1234567890"), 9, 1, S("abcdefghij0"));
+ test(S("abcdefghij"), 10, SV("1234567890"), 9, 2, S("abcdefghij0"));
+ test(S("abcdefghij"), 10, SV("1234567890"), 10, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, SV("1234567890"), 10, 1, S("abcdefghij"));
+ test(S("abcdefghij"), 10, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghij"), 10, SV("12345678901234567890"), 0, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, SV("12345678901234567890"), 0, 1, S("abcdefghij1"));
+ test(S("abcdefghij"), 10, SV("12345678901234567890"), 0, 10, S("abcdefghij1234567890"));
+ test(S("abcdefghij"), 10, SV("12345678901234567890"), 0, 19, S("abcdefghij1234567890123456789"));
+ test(S("abcdefghij"), 10, SV("12345678901234567890"), 0, 20, S("abcdefghij12345678901234567890"));
+ test(S("abcdefghij"), 10, SV("12345678901234567890"), 0, 21, S("abcdefghij12345678901234567890"));
+ test(S("abcdefghij"), 10, SV("12345678901234567890"), 1, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, SV("12345678901234567890"), 1, 1, S("abcdefghij2"));
+ test(S("abcdefghij"), 10, SV("12345678901234567890"), 1, 9, S("abcdefghij234567890"));
+ test(S("abcdefghij"), 10, SV("12345678901234567890"), 1, 18, S("abcdefghij234567890123456789"));
+ test(S("abcdefghij"), 10, SV("12345678901234567890"), 1, 19, S("abcdefghij2345678901234567890"));
+ test(S("abcdefghij"), 10, SV("12345678901234567890"), 1, 20, S("abcdefghij2345678901234567890"));
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test19()
-{
- test(S("abcdefghij"), 10, SV("12345678901234567890"), 10, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, SV("12345678901234567890"), 10, 1, S("abcdefghij1"));
- test(S("abcdefghij"), 10, SV("12345678901234567890"), 10, 5, S("abcdefghij12345"));
- test(S("abcdefghij"), 10, SV("12345678901234567890"), 10, 9, S("abcdefghij123456789"));
- test(S("abcdefghij"), 10, SV("12345678901234567890"), 10, 10, S("abcdefghij1234567890"));
- test(S("abcdefghij"), 10, SV("12345678901234567890"), 10, 11, S("abcdefghij1234567890"));
- test(S("abcdefghij"), 10, SV("12345678901234567890"), 19, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, SV("12345678901234567890"), 19, 1, S("abcdefghij0"));
- test(S("abcdefghij"), 10, SV("12345678901234567890"), 19, 2, S("abcdefghij0"));
- test(S("abcdefghij"), 10, SV("12345678901234567890"), 20, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, SV("12345678901234567890"), 20, 1, S("abcdefghij"));
- test(S("abcdefghij"), 10, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghij"), 11, SV(""), 0, 0, S("can't happen"));
- test(S("abcdefghij"), 11, SV(""), 0, 1, S("can't happen"));
- test(S("abcdefghij"), 11, SV(""), 1, 0, S("can't happen"));
- test(S("abcdefghij"), 11, SV("12345"), 0, 0, S("can't happen"));
- test(S("abcdefghij"), 11, SV("12345"), 0, 1, S("can't happen"));
- test(S("abcdefghij"), 11, SV("12345"), 0, 2, S("can't happen"));
- test(S("abcdefghij"), 11, SV("12345"), 0, 4, S("can't happen"));
- test(S("abcdefghij"), 11, SV("12345"), 0, 5, S("can't happen"));
- test(S("abcdefghij"), 11, SV("12345"), 0, 6, S("can't happen"));
- test(S("abcdefghij"), 11, SV("12345"), 1, 0, S("can't happen"));
- test(S("abcdefghij"), 11, SV("12345"), 1, 1, S("can't happen"));
- test(S("abcdefghij"), 11, SV("12345"), 1, 2, S("can't happen"));
- test(S("abcdefghij"), 11, SV("12345"), 1, 3, S("can't happen"));
- test(S("abcdefghij"), 11, SV("12345"), 1, 4, S("can't happen"));
- test(S("abcdefghij"), 11, SV("12345"), 1, 5, S("can't happen"));
- test(S("abcdefghij"), 11, SV("12345"), 2, 0, S("can't happen"));
- test(S("abcdefghij"), 11, SV("12345"), 2, 1, S("can't happen"));
- test(S("abcdefghij"), 11, SV("12345"), 2, 2, S("can't happen"));
- test(S("abcdefghij"), 11, SV("12345"), 2, 3, S("can't happen"));
- test(S("abcdefghij"), 11, SV("12345"), 2, 4, S("can't happen"));
- test(S("abcdefghij"), 11, SV("12345"), 4, 0, S("can't happen"));
- test(S("abcdefghij"), 11, SV("12345"), 4, 1, S("can't happen"));
- test(S("abcdefghij"), 11, SV("12345"), 4, 2, S("can't happen"));
- test(S("abcdefghij"), 11, SV("12345"), 5, 0, S("can't happen"));
- test(S("abcdefghij"), 11, SV("12345"), 5, 1, S("can't happen"));
- test(S("abcdefghij"), 11, SV("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghij"), 11, SV("1234567890"), 0, 0, S("can't happen"));
- test(S("abcdefghij"), 11, SV("1234567890"), 0, 1, S("can't happen"));
- test(S("abcdefghij"), 11, SV("1234567890"), 0, 5, S("can't happen"));
- test(S("abcdefghij"), 11, SV("1234567890"), 0, 9, S("can't happen"));
- test(S("abcdefghij"), 11, SV("1234567890"), 0, 10, S("can't happen"));
- test(S("abcdefghij"), 11, SV("1234567890"), 0, 11, S("can't happen"));
- test(S("abcdefghij"), 11, SV("1234567890"), 1, 0, S("can't happen"));
- test(S("abcdefghij"), 11, SV("1234567890"), 1, 1, S("can't happen"));
- test(S("abcdefghij"), 11, SV("1234567890"), 1, 4, S("can't happen"));
- test(S("abcdefghij"), 11, SV("1234567890"), 1, 8, S("can't happen"));
- test(S("abcdefghij"), 11, SV("1234567890"), 1, 9, S("can't happen"));
- test(S("abcdefghij"), 11, SV("1234567890"), 1, 10, S("can't happen"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test19() {
+ test(S("abcdefghij"), 10, SV("12345678901234567890"), 10, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, SV("12345678901234567890"), 10, 1, S("abcdefghij1"));
+ test(S("abcdefghij"), 10, SV("12345678901234567890"), 10, 5, S("abcdefghij12345"));
+ test(S("abcdefghij"), 10, SV("12345678901234567890"), 10, 9, S("abcdefghij123456789"));
+ test(S("abcdefghij"), 10, SV("12345678901234567890"), 10, 10, S("abcdefghij1234567890"));
+ test(S("abcdefghij"), 10, SV("12345678901234567890"), 10, 11, S("abcdefghij1234567890"));
+ test(S("abcdefghij"), 10, SV("12345678901234567890"), 19, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, SV("12345678901234567890"), 19, 1, S("abcdefghij0"));
+ test(S("abcdefghij"), 10, SV("12345678901234567890"), 19, 2, S("abcdefghij0"));
+ test(S("abcdefghij"), 10, SV("12345678901234567890"), 20, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, SV("12345678901234567890"), 20, 1, S("abcdefghij"));
+ test(S("abcdefghij"), 10, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghij"), 11, SV(""), 0, 0, S("can't happen"));
+ test(S("abcdefghij"), 11, SV(""), 0, 1, S("can't happen"));
+ test(S("abcdefghij"), 11, SV(""), 1, 0, S("can't happen"));
+ test(S("abcdefghij"), 11, SV("12345"), 0, 0, S("can't happen"));
+ test(S("abcdefghij"), 11, SV("12345"), 0, 1, S("can't happen"));
+ test(S("abcdefghij"), 11, SV("12345"), 0, 2, S("can't happen"));
+ test(S("abcdefghij"), 11, SV("12345"), 0, 4, S("can't happen"));
+ test(S("abcdefghij"), 11, SV("12345"), 0, 5, S("can't happen"));
+ test(S("abcdefghij"), 11, SV("12345"), 0, 6, S("can't happen"));
+ test(S("abcdefghij"), 11, SV("12345"), 1, 0, S("can't happen"));
+ test(S("abcdefghij"), 11, SV("12345"), 1, 1, S("can't happen"));
+ test(S("abcdefghij"), 11, SV("12345"), 1, 2, S("can't happen"));
+ test(S("abcdefghij"), 11, SV("12345"), 1, 3, S("can't happen"));
+ test(S("abcdefghij"), 11, SV("12345"), 1, 4, S("can't happen"));
+ test(S("abcdefghij"), 11, SV("12345"), 1, 5, S("can't happen"));
+ test(S("abcdefghij"), 11, SV("12345"), 2, 0, S("can't happen"));
+ test(S("abcdefghij"), 11, SV("12345"), 2, 1, S("can't happen"));
+ test(S("abcdefghij"), 11, SV("12345"), 2, 2, S("can't happen"));
+ test(S("abcdefghij"), 11, SV("12345"), 2, 3, S("can't happen"));
+ test(S("abcdefghij"), 11, SV("12345"), 2, 4, S("can't happen"));
+ test(S("abcdefghij"), 11, SV("12345"), 4, 0, S("can't happen"));
+ test(S("abcdefghij"), 11, SV("12345"), 4, 1, S("can't happen"));
+ test(S("abcdefghij"), 11, SV("12345"), 4, 2, S("can't happen"));
+ test(S("abcdefghij"), 11, SV("12345"), 5, 0, S("can't happen"));
+ test(S("abcdefghij"), 11, SV("12345"), 5, 1, S("can't happen"));
+ test(S("abcdefghij"), 11, SV("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghij"), 11, SV("1234567890"), 0, 0, S("can't happen"));
+ test(S("abcdefghij"), 11, SV("1234567890"), 0, 1, S("can't happen"));
+ test(S("abcdefghij"), 11, SV("1234567890"), 0, 5, S("can't happen"));
+ test(S("abcdefghij"), 11, SV("1234567890"), 0, 9, S("can't happen"));
+ test(S("abcdefghij"), 11, SV("1234567890"), 0, 10, S("can't happen"));
+ test(S("abcdefghij"), 11, SV("1234567890"), 0, 11, S("can't happen"));
+ test(S("abcdefghij"), 11, SV("1234567890"), 1, 0, S("can't happen"));
+ test(S("abcdefghij"), 11, SV("1234567890"), 1, 1, S("can't happen"));
+ test(S("abcdefghij"), 11, SV("1234567890"), 1, 4, S("can't happen"));
+ test(S("abcdefghij"), 11, SV("1234567890"), 1, 8, S("can't happen"));
+ test(S("abcdefghij"), 11, SV("1234567890"), 1, 9, S("can't happen"));
+ test(S("abcdefghij"), 11, SV("1234567890"), 1, 10, S("can't happen"));
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test20()
-{
- test(S("abcdefghij"), 11, SV("1234567890"), 5, 0, S("can't happen"));
- test(S("abcdefghij"), 11, SV("1234567890"), 5, 1, S("can't happen"));
- test(S("abcdefghij"), 11, SV("1234567890"), 5, 2, S("can't happen"));
- test(S("abcdefghij"), 11, SV("1234567890"), 5, 4, S("can't happen"));
- test(S("abcdefghij"), 11, SV("1234567890"), 5, 5, S("can't happen"));
- test(S("abcdefghij"), 11, SV("1234567890"), 5, 6, S("can't happen"));
- test(S("abcdefghij"), 11, SV("1234567890"), 9, 0, S("can't happen"));
- test(S("abcdefghij"), 11, SV("1234567890"), 9, 1, S("can't happen"));
- test(S("abcdefghij"), 11, SV("1234567890"), 9, 2, S("can't happen"));
- test(S("abcdefghij"), 11, SV("1234567890"), 10, 0, S("can't happen"));
- test(S("abcdefghij"), 11, SV("1234567890"), 10, 1, S("can't happen"));
- test(S("abcdefghij"), 11, SV("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghij"), 11, SV("12345678901234567890"), 0, 0, S("can't happen"));
- test(S("abcdefghij"), 11, SV("12345678901234567890"), 0, 1, S("can't happen"));
- test(S("abcdefghij"), 11, SV("12345678901234567890"), 0, 10, S("can't happen"));
- test(S("abcdefghij"), 11, SV("12345678901234567890"), 0, 19, S("can't happen"));
- test(S("abcdefghij"), 11, SV("12345678901234567890"), 0, 20, S("can't happen"));
- test(S("abcdefghij"), 11, SV("12345678901234567890"), 0, 21, S("can't happen"));
- test(S("abcdefghij"), 11, SV("12345678901234567890"), 1, 0, S("can't happen"));
- test(S("abcdefghij"), 11, SV("12345678901234567890"), 1, 1, S("can't happen"));
- test(S("abcdefghij"), 11, SV("12345678901234567890"), 1, 9, S("can't happen"));
- test(S("abcdefghij"), 11, SV("12345678901234567890"), 1, 18, S("can't happen"));
- test(S("abcdefghij"), 11, SV("12345678901234567890"), 1, 19, S("can't happen"));
- test(S("abcdefghij"), 11, SV("12345678901234567890"), 1, 20, S("can't happen"));
- test(S("abcdefghij"), 11, SV("12345678901234567890"), 10, 0, S("can't happen"));
- test(S("abcdefghij"), 11, SV("12345678901234567890"), 10, 1, S("can't happen"));
- test(S("abcdefghij"), 11, SV("12345678901234567890"), 10, 5, S("can't happen"));
- test(S("abcdefghij"), 11, SV("12345678901234567890"), 10, 9, S("can't happen"));
- test(S("abcdefghij"), 11, SV("12345678901234567890"), 10, 10, S("can't happen"));
- test(S("abcdefghij"), 11, SV("12345678901234567890"), 10, 11, S("can't happen"));
- test(S("abcdefghij"), 11, SV("12345678901234567890"), 19, 0, S("can't happen"));
- test(S("abcdefghij"), 11, SV("12345678901234567890"), 19, 1, S("can't happen"));
- test(S("abcdefghij"), 11, SV("12345678901234567890"), 19, 2, S("can't happen"));
- test(S("abcdefghij"), 11, SV("12345678901234567890"), 20, 0, S("can't happen"));
- test(S("abcdefghij"), 11, SV("12345678901234567890"), 20, 1, S("can't happen"));
- test(S("abcdefghij"), 11, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 0, SV(""), 0, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, SV(""), 0, 1, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, SV(""), 1, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 0, SV("12345"), 0, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, SV("12345"), 0, 1, S("1abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, SV("12345"), 0, 2, S("12abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, SV("12345"), 0, 4, S("1234abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, SV("12345"), 0, 5, S("12345abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, SV("12345"), 0, 6, S("12345abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, SV("12345"), 1, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, SV("12345"), 1, 1, S("2abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, SV("12345"), 1, 2, S("23abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, SV("12345"), 1, 3, S("234abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, SV("12345"), 1, 4, S("2345abcdefghijklmnopqrst"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test20() {
+ test(S("abcdefghij"), 11, SV("1234567890"), 5, 0, S("can't happen"));
+ test(S("abcdefghij"), 11, SV("1234567890"), 5, 1, S("can't happen"));
+ test(S("abcdefghij"), 11, SV("1234567890"), 5, 2, S("can't happen"));
+ test(S("abcdefghij"), 11, SV("1234567890"), 5, 4, S("can't happen"));
+ test(S("abcdefghij"), 11, SV("1234567890"), 5, 5, S("can't happen"));
+ test(S("abcdefghij"), 11, SV("1234567890"), 5, 6, S("can't happen"));
+ test(S("abcdefghij"), 11, SV("1234567890"), 9, 0, S("can't happen"));
+ test(S("abcdefghij"), 11, SV("1234567890"), 9, 1, S("can't happen"));
+ test(S("abcdefghij"), 11, SV("1234567890"), 9, 2, S("can't happen"));
+ test(S("abcdefghij"), 11, SV("1234567890"), 10, 0, S("can't happen"));
+ test(S("abcdefghij"), 11, SV("1234567890"), 10, 1, S("can't happen"));
+ test(S("abcdefghij"), 11, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghij"), 11, SV("12345678901234567890"), 0, 0, S("can't happen"));
+ test(S("abcdefghij"), 11, SV("12345678901234567890"), 0, 1, S("can't happen"));
+ test(S("abcdefghij"), 11, SV("12345678901234567890"), 0, 10, S("can't happen"));
+ test(S("abcdefghij"), 11, SV("12345678901234567890"), 0, 19, S("can't happen"));
+ test(S("abcdefghij"), 11, SV("12345678901234567890"), 0, 20, S("can't happen"));
+ test(S("abcdefghij"), 11, SV("12345678901234567890"), 0, 21, S("can't happen"));
+ test(S("abcdefghij"), 11, SV("12345678901234567890"), 1, 0, S("can't happen"));
+ test(S("abcdefghij"), 11, SV("12345678901234567890"), 1, 1, S("can't happen"));
+ test(S("abcdefghij"), 11, SV("12345678901234567890"), 1, 9, S("can't happen"));
+ test(S("abcdefghij"), 11, SV("12345678901234567890"), 1, 18, S("can't happen"));
+ test(S("abcdefghij"), 11, SV("12345678901234567890"), 1, 19, S("can't happen"));
+ test(S("abcdefghij"), 11, SV("12345678901234567890"), 1, 20, S("can't happen"));
+ test(S("abcdefghij"), 11, SV("12345678901234567890"), 10, 0, S("can't happen"));
+ test(S("abcdefghij"), 11, SV("12345678901234567890"), 10, 1, S("can't happen"));
+ test(S("abcdefghij"), 11, SV("12345678901234567890"), 10, 5, S("can't happen"));
+ test(S("abcdefghij"), 11, SV("12345678901234567890"), 10, 9, S("can't happen"));
+ test(S("abcdefghij"), 11, SV("12345678901234567890"), 10, 10, S("can't happen"));
+ test(S("abcdefghij"), 11, SV("12345678901234567890"), 10, 11, S("can't happen"));
+ test(S("abcdefghij"), 11, SV("12345678901234567890"), 19, 0, S("can't happen"));
+ test(S("abcdefghij"), 11, SV("12345678901234567890"), 19, 1, S("can't happen"));
+ test(S("abcdefghij"), 11, SV("12345678901234567890"), 19, 2, S("can't happen"));
+ test(S("abcdefghij"), 11, SV("12345678901234567890"), 20, 0, S("can't happen"));
+ test(S("abcdefghij"), 11, SV("12345678901234567890"), 20, 1, S("can't happen"));
+ test(S("abcdefghij"), 11, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 0, SV(""), 0, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, SV(""), 0, 1, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, SV(""), 1, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 0, SV("12345"), 0, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, SV("12345"), 0, 1, S("1abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, SV("12345"), 0, 2, S("12abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, SV("12345"), 0, 4, S("1234abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, SV("12345"), 0, 5, S("12345abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, SV("12345"), 0, 6, S("12345abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, SV("12345"), 1, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, SV("12345"), 1, 1, S("2abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, SV("12345"), 1, 2, S("23abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, SV("12345"), 1, 3, S("234abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, SV("12345"), 1, 4, S("2345abcdefghijklmnopqrst"));
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test21()
-{
- test(S("abcdefghijklmnopqrst"), 0, SV("12345"), 1, 5, S("2345abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, SV("12345"), 2, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, SV("12345"), 2, 1, S("3abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, SV("12345"), 2, 2, S("34abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, SV("12345"), 2, 3, S("345abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, SV("12345"), 2, 4, S("345abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, SV("12345"), 4, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, SV("12345"), 4, 1, S("5abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, SV("12345"), 4, 2, S("5abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, SV("12345"), 5, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, SV("12345"), 5, 1, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, SV("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 0, SV("1234567890"), 0, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, SV("1234567890"), 0, 1, S("1abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, SV("1234567890"), 0, 5, S("12345abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, SV("1234567890"), 0, 9, S("123456789abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, SV("1234567890"), 0, 10, S("1234567890abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, SV("1234567890"), 0, 11, S("1234567890abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, SV("1234567890"), 1, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, SV("1234567890"), 1, 1, S("2abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, SV("1234567890"), 1, 4, S("2345abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, SV("1234567890"), 1, 8, S("23456789abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, SV("1234567890"), 1, 9, S("234567890abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, SV("1234567890"), 1, 10, S("234567890abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, SV("1234567890"), 5, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, SV("1234567890"), 5, 1, S("6abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, SV("1234567890"), 5, 2, S("67abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, SV("1234567890"), 5, 4, S("6789abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, SV("1234567890"), 5, 5, S("67890abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, SV("1234567890"), 5, 6, S("67890abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, SV("1234567890"), 9, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, SV("1234567890"), 9, 1, S("0abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, SV("1234567890"), 9, 2, S("0abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, SV("1234567890"), 10, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, SV("1234567890"), 10, 1, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, SV("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 0, SV("12345678901234567890"), 0, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, SV("12345678901234567890"), 0, 1, S("1abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, SV("12345678901234567890"), 0, 10, S("1234567890abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, SV("12345678901234567890"), 0, 19, S("1234567890123456789abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, SV("12345678901234567890"), 0, 20, S("12345678901234567890abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, SV("12345678901234567890"), 0, 21, S("12345678901234567890abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, SV("12345678901234567890"), 1, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, SV("12345678901234567890"), 1, 1, S("2abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, SV("12345678901234567890"), 1, 9, S("234567890abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, SV("12345678901234567890"), 1, 18, S("234567890123456789abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, SV("12345678901234567890"), 1, 19, S("2345678901234567890abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, SV("12345678901234567890"), 1, 20, S("2345678901234567890abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, SV("12345678901234567890"), 10, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, SV("12345678901234567890"), 10, 1, S("1abcdefghijklmnopqrst"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test21() {
+ test(S("abcdefghijklmnopqrst"), 0, SV("12345"), 1, 5, S("2345abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, SV("12345"), 2, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, SV("12345"), 2, 1, S("3abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, SV("12345"), 2, 2, S("34abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, SV("12345"), 2, 3, S("345abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, SV("12345"), 2, 4, S("345abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, SV("12345"), 4, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, SV("12345"), 4, 1, S("5abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, SV("12345"), 4, 2, S("5abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, SV("12345"), 5, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, SV("12345"), 5, 1, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, SV("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 0, SV("1234567890"), 0, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, SV("1234567890"), 0, 1, S("1abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, SV("1234567890"), 0, 5, S("12345abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, SV("1234567890"), 0, 9, S("123456789abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, SV("1234567890"), 0, 10, S("1234567890abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, SV("1234567890"), 0, 11, S("1234567890abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, SV("1234567890"), 1, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, SV("1234567890"), 1, 1, S("2abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, SV("1234567890"), 1, 4, S("2345abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, SV("1234567890"), 1, 8, S("23456789abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, SV("1234567890"), 1, 9, S("234567890abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, SV("1234567890"), 1, 10, S("234567890abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, SV("1234567890"), 5, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, SV("1234567890"), 5, 1, S("6abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, SV("1234567890"), 5, 2, S("67abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, SV("1234567890"), 5, 4, S("6789abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, SV("1234567890"), 5, 5, S("67890abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, SV("1234567890"), 5, 6, S("67890abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, SV("1234567890"), 9, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, SV("1234567890"), 9, 1, S("0abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, SV("1234567890"), 9, 2, S("0abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, SV("1234567890"), 10, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, SV("1234567890"), 10, 1, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 0, SV("12345678901234567890"), 0, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, SV("12345678901234567890"), 0, 1, S("1abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, SV("12345678901234567890"), 0, 10, S("1234567890abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, SV("12345678901234567890"), 0, 19, S("1234567890123456789abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, SV("12345678901234567890"), 0, 20, S("12345678901234567890abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, SV("12345678901234567890"), 0, 21, S("12345678901234567890abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, SV("12345678901234567890"), 1, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, SV("12345678901234567890"), 1, 1, S("2abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, SV("12345678901234567890"), 1, 9, S("234567890abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, SV("12345678901234567890"), 1, 18, S("234567890123456789abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, SV("12345678901234567890"), 1, 19, S("2345678901234567890abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, SV("12345678901234567890"), 1, 20, S("2345678901234567890abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, SV("12345678901234567890"), 10, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, SV("12345678901234567890"), 10, 1, S("1abcdefghijklmnopqrst"));
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test22()
-{
- test(S("abcdefghijklmnopqrst"), 0, SV("12345678901234567890"), 10, 5, S("12345abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, SV("12345678901234567890"), 10, 9, S("123456789abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, SV("12345678901234567890"), 10, 10, S("1234567890abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, SV("12345678901234567890"), 10, 11, S("1234567890abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, SV("12345678901234567890"), 19, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, SV("12345678901234567890"), 19, 1, S("0abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, SV("12345678901234567890"), 19, 2, S("0abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, SV("12345678901234567890"), 20, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, SV("12345678901234567890"), 20, 1, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 1, SV(""), 0, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, SV(""), 0, 1, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, SV(""), 1, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 1, SV("12345"), 0, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, SV("12345"), 0, 1, S("a1bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, SV("12345"), 0, 2, S("a12bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, SV("12345"), 0, 4, S("a1234bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, SV("12345"), 0, 5, S("a12345bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, SV("12345"), 0, 6, S("a12345bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, SV("12345"), 1, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, SV("12345"), 1, 1, S("a2bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, SV("12345"), 1, 2, S("a23bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, SV("12345"), 1, 3, S("a234bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, SV("12345"), 1, 4, S("a2345bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, SV("12345"), 1, 5, S("a2345bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, SV("12345"), 2, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, SV("12345"), 2, 1, S("a3bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, SV("12345"), 2, 2, S("a34bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, SV("12345"), 2, 3, S("a345bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, SV("12345"), 2, 4, S("a345bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, SV("12345"), 4, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, SV("12345"), 4, 1, S("a5bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, SV("12345"), 4, 2, S("a5bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, SV("12345"), 5, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, SV("12345"), 5, 1, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, SV("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 1, SV("1234567890"), 0, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, SV("1234567890"), 0, 1, S("a1bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, SV("1234567890"), 0, 5, S("a12345bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, SV("1234567890"), 0, 9, S("a123456789bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, SV("1234567890"), 0, 10, S("a1234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, SV("1234567890"), 0, 11, S("a1234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, SV("1234567890"), 1, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, SV("1234567890"), 1, 1, S("a2bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, SV("1234567890"), 1, 4, S("a2345bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, SV("1234567890"), 1, 8, S("a23456789bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, SV("1234567890"), 1, 9, S("a234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, SV("1234567890"), 1, 10, S("a234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, SV("1234567890"), 5, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, SV("1234567890"), 5, 1, S("a6bcdefghijklmnopqrst"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test22() {
+ test(S("abcdefghijklmnopqrst"), 0, SV("12345678901234567890"), 10, 5, S("12345abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, SV("12345678901234567890"), 10, 9, S("123456789abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, SV("12345678901234567890"), 10, 10, S("1234567890abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, SV("12345678901234567890"), 10, 11, S("1234567890abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, SV("12345678901234567890"), 19, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, SV("12345678901234567890"), 19, 1, S("0abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, SV("12345678901234567890"), 19, 2, S("0abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, SV("12345678901234567890"), 20, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, SV("12345678901234567890"), 20, 1, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 1, SV(""), 0, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, SV(""), 0, 1, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, SV(""), 1, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 1, SV("12345"), 0, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, SV("12345"), 0, 1, S("a1bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, SV("12345"), 0, 2, S("a12bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, SV("12345"), 0, 4, S("a1234bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, SV("12345"), 0, 5, S("a12345bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, SV("12345"), 0, 6, S("a12345bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, SV("12345"), 1, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, SV("12345"), 1, 1, S("a2bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, SV("12345"), 1, 2, S("a23bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, SV("12345"), 1, 3, S("a234bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, SV("12345"), 1, 4, S("a2345bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, SV("12345"), 1, 5, S("a2345bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, SV("12345"), 2, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, SV("12345"), 2, 1, S("a3bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, SV("12345"), 2, 2, S("a34bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, SV("12345"), 2, 3, S("a345bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, SV("12345"), 2, 4, S("a345bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, SV("12345"), 4, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, SV("12345"), 4, 1, S("a5bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, SV("12345"), 4, 2, S("a5bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, SV("12345"), 5, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, SV("12345"), 5, 1, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, SV("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 1, SV("1234567890"), 0, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, SV("1234567890"), 0, 1, S("a1bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, SV("1234567890"), 0, 5, S("a12345bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, SV("1234567890"), 0, 9, S("a123456789bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, SV("1234567890"), 0, 10, S("a1234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, SV("1234567890"), 0, 11, S("a1234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, SV("1234567890"), 1, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, SV("1234567890"), 1, 1, S("a2bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, SV("1234567890"), 1, 4, S("a2345bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, SV("1234567890"), 1, 8, S("a23456789bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, SV("1234567890"), 1, 9, S("a234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, SV("1234567890"), 1, 10, S("a234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, SV("1234567890"), 5, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, SV("1234567890"), 5, 1, S("a6bcdefghijklmnopqrst"));
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test23()
-{
- test(S("abcdefghijklmnopqrst"), 1, SV("1234567890"), 5, 2, S("a67bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, SV("1234567890"), 5, 4, S("a6789bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, SV("1234567890"), 5, 5, S("a67890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, SV("1234567890"), 5, 6, S("a67890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, SV("1234567890"), 9, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, SV("1234567890"), 9, 1, S("a0bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, SV("1234567890"), 9, 2, S("a0bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, SV("1234567890"), 10, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, SV("1234567890"), 10, 1, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, SV("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 1, SV("12345678901234567890"), 0, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, SV("12345678901234567890"), 0, 1, S("a1bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, SV("12345678901234567890"), 0, 10, S("a1234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, SV("12345678901234567890"), 0, 19, S("a1234567890123456789bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, SV("12345678901234567890"), 0, 20, S("a12345678901234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, SV("12345678901234567890"), 0, 21, S("a12345678901234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, SV("12345678901234567890"), 1, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, SV("12345678901234567890"), 1, 1, S("a2bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, SV("12345678901234567890"), 1, 9, S("a234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, SV("12345678901234567890"), 1, 18, S("a234567890123456789bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, SV("12345678901234567890"), 1, 19, S("a2345678901234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, SV("12345678901234567890"), 1, 20, S("a2345678901234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, SV("12345678901234567890"), 10, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, SV("12345678901234567890"), 10, 1, S("a1bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, SV("12345678901234567890"), 10, 5, S("a12345bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, SV("12345678901234567890"), 10, 9, S("a123456789bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, SV("12345678901234567890"), 10, 10, S("a1234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, SV("12345678901234567890"), 10, 11, S("a1234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, SV("12345678901234567890"), 19, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, SV("12345678901234567890"), 19, 1, S("a0bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, SV("12345678901234567890"), 19, 2, S("a0bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, SV("12345678901234567890"), 20, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, SV("12345678901234567890"), 20, 1, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 10, SV(""), 0, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, SV(""), 0, 1, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, SV(""), 1, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 10, SV("12345"), 0, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, SV("12345"), 0, 1, S("abcdefghij1klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, SV("12345"), 0, 2, S("abcdefghij12klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, SV("12345"), 0, 4, S("abcdefghij1234klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, SV("12345"), 0, 5, S("abcdefghij12345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, SV("12345"), 0, 6, S("abcdefghij12345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, SV("12345"), 1, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, SV("12345"), 1, 1, S("abcdefghij2klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, SV("12345"), 1, 2, S("abcdefghij23klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, SV("12345"), 1, 3, S("abcdefghij234klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, SV("12345"), 1, 4, S("abcdefghij2345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, SV("12345"), 1, 5, S("abcdefghij2345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, SV("12345"), 2, 0, S("abcdefghijklmnopqrst"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test23() {
+ test(S("abcdefghijklmnopqrst"), 1, SV("1234567890"), 5, 2, S("a67bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, SV("1234567890"), 5, 4, S("a6789bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, SV("1234567890"), 5, 5, S("a67890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, SV("1234567890"), 5, 6, S("a67890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, SV("1234567890"), 9, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, SV("1234567890"), 9, 1, S("a0bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, SV("1234567890"), 9, 2, S("a0bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, SV("1234567890"), 10, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, SV("1234567890"), 10, 1, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 1, SV("12345678901234567890"), 0, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, SV("12345678901234567890"), 0, 1, S("a1bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, SV("12345678901234567890"), 0, 10, S("a1234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, SV("12345678901234567890"), 0, 19, S("a1234567890123456789bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, SV("12345678901234567890"), 0, 20, S("a12345678901234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, SV("12345678901234567890"), 0, 21, S("a12345678901234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, SV("12345678901234567890"), 1, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, SV("12345678901234567890"), 1, 1, S("a2bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, SV("12345678901234567890"), 1, 9, S("a234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, SV("12345678901234567890"), 1, 18, S("a234567890123456789bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, SV("12345678901234567890"), 1, 19, S("a2345678901234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, SV("12345678901234567890"), 1, 20, S("a2345678901234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, SV("12345678901234567890"), 10, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, SV("12345678901234567890"), 10, 1, S("a1bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, SV("12345678901234567890"), 10, 5, S("a12345bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, SV("12345678901234567890"), 10, 9, S("a123456789bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, SV("12345678901234567890"), 10, 10, S("a1234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, SV("12345678901234567890"), 10, 11, S("a1234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, SV("12345678901234567890"), 19, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, SV("12345678901234567890"), 19, 1, S("a0bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, SV("12345678901234567890"), 19, 2, S("a0bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, SV("12345678901234567890"), 20, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, SV("12345678901234567890"), 20, 1, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 10, SV(""), 0, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, SV(""), 0, 1, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, SV(""), 1, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 10, SV("12345"), 0, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, SV("12345"), 0, 1, S("abcdefghij1klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, SV("12345"), 0, 2, S("abcdefghij12klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, SV("12345"), 0, 4, S("abcdefghij1234klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, SV("12345"), 0, 5, S("abcdefghij12345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, SV("12345"), 0, 6, S("abcdefghij12345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, SV("12345"), 1, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, SV("12345"), 1, 1, S("abcdefghij2klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, SV("12345"), 1, 2, S("abcdefghij23klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, SV("12345"), 1, 3, S("abcdefghij234klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, SV("12345"), 1, 4, S("abcdefghij2345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, SV("12345"), 1, 5, S("abcdefghij2345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, SV("12345"), 2, 0, S("abcdefghijklmnopqrst"));
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test24()
-{
- test(S("abcdefghijklmnopqrst"), 10, SV("12345"), 2, 1, S("abcdefghij3klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, SV("12345"), 2, 2, S("abcdefghij34klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, SV("12345"), 2, 3, S("abcdefghij345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, SV("12345"), 2, 4, S("abcdefghij345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, SV("12345"), 4, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, SV("12345"), 4, 1, S("abcdefghij5klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, SV("12345"), 4, 2, S("abcdefghij5klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, SV("12345"), 5, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, SV("12345"), 5, 1, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, SV("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 10, SV("1234567890"), 0, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, SV("1234567890"), 0, 1, S("abcdefghij1klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, SV("1234567890"), 0, 5, S("abcdefghij12345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, SV("1234567890"), 0, 9, S("abcdefghij123456789klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, SV("1234567890"), 0, 10, S("abcdefghij1234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, SV("1234567890"), 0, 11, S("abcdefghij1234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, SV("1234567890"), 1, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, SV("1234567890"), 1, 1, S("abcdefghij2klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, SV("1234567890"), 1, 4, S("abcdefghij2345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, SV("1234567890"), 1, 8, S("abcdefghij23456789klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, SV("1234567890"), 1, 9, S("abcdefghij234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, SV("1234567890"), 1, 10, S("abcdefghij234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, SV("1234567890"), 5, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, SV("1234567890"), 5, 1, S("abcdefghij6klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, SV("1234567890"), 5, 2, S("abcdefghij67klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, SV("1234567890"), 5, 4, S("abcdefghij6789klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, SV("1234567890"), 5, 5, S("abcdefghij67890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, SV("1234567890"), 5, 6, S("abcdefghij67890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, SV("1234567890"), 9, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, SV("1234567890"), 9, 1, S("abcdefghij0klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, SV("1234567890"), 9, 2, S("abcdefghij0klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, SV("1234567890"), 10, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, SV("1234567890"), 10, 1, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, SV("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 10, SV("12345678901234567890"), 0, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, SV("12345678901234567890"), 0, 1, S("abcdefghij1klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, SV("12345678901234567890"), 0, 10, S("abcdefghij1234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, SV("12345678901234567890"), 0, 19, S("abcdefghij1234567890123456789klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, SV("12345678901234567890"), 0, 20, S("abcdefghij12345678901234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, SV("12345678901234567890"), 0, 21, S("abcdefghij12345678901234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, SV("12345678901234567890"), 1, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, SV("12345678901234567890"), 1, 1, S("abcdefghij2klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, SV("12345678901234567890"), 1, 9, S("abcdefghij234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, SV("12345678901234567890"), 1, 18, S("abcdefghij234567890123456789klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, SV("12345678901234567890"), 1, 19, S("abcdefghij2345678901234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, SV("12345678901234567890"), 1, 20, S("abcdefghij2345678901234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, SV("12345678901234567890"), 10, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, SV("12345678901234567890"), 10, 1, S("abcdefghij1klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, SV("12345678901234567890"), 10, 5, S("abcdefghij12345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, SV("12345678901234567890"), 10, 9, S("abcdefghij123456789klmnopqrst"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test24() {
+ test(S("abcdefghijklmnopqrst"), 10, SV("12345"), 2, 1, S("abcdefghij3klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, SV("12345"), 2, 2, S("abcdefghij34klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, SV("12345"), 2, 3, S("abcdefghij345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, SV("12345"), 2, 4, S("abcdefghij345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, SV("12345"), 4, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, SV("12345"), 4, 1, S("abcdefghij5klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, SV("12345"), 4, 2, S("abcdefghij5klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, SV("12345"), 5, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, SV("12345"), 5, 1, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, SV("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 10, SV("1234567890"), 0, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, SV("1234567890"), 0, 1, S("abcdefghij1klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, SV("1234567890"), 0, 5, S("abcdefghij12345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, SV("1234567890"), 0, 9, S("abcdefghij123456789klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, SV("1234567890"), 0, 10, S("abcdefghij1234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, SV("1234567890"), 0, 11, S("abcdefghij1234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, SV("1234567890"), 1, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, SV("1234567890"), 1, 1, S("abcdefghij2klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, SV("1234567890"), 1, 4, S("abcdefghij2345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, SV("1234567890"), 1, 8, S("abcdefghij23456789klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, SV("1234567890"), 1, 9, S("abcdefghij234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, SV("1234567890"), 1, 10, S("abcdefghij234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, SV("1234567890"), 5, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, SV("1234567890"), 5, 1, S("abcdefghij6klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, SV("1234567890"), 5, 2, S("abcdefghij67klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, SV("1234567890"), 5, 4, S("abcdefghij6789klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, SV("1234567890"), 5, 5, S("abcdefghij67890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, SV("1234567890"), 5, 6, S("abcdefghij67890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, SV("1234567890"), 9, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, SV("1234567890"), 9, 1, S("abcdefghij0klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, SV("1234567890"), 9, 2, S("abcdefghij0klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, SV("1234567890"), 10, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, SV("1234567890"), 10, 1, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 10, SV("12345678901234567890"), 0, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, SV("12345678901234567890"), 0, 1, S("abcdefghij1klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, SV("12345678901234567890"), 0, 10, S("abcdefghij1234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, SV("12345678901234567890"), 0, 19, S("abcdefghij1234567890123456789klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, SV("12345678901234567890"), 0, 20, S("abcdefghij12345678901234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, SV("12345678901234567890"), 0, 21, S("abcdefghij12345678901234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, SV("12345678901234567890"), 1, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, SV("12345678901234567890"), 1, 1, S("abcdefghij2klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, SV("12345678901234567890"), 1, 9, S("abcdefghij234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, SV("12345678901234567890"), 1, 18, S("abcdefghij234567890123456789klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, SV("12345678901234567890"), 1, 19, S("abcdefghij2345678901234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, SV("12345678901234567890"), 1, 20, S("abcdefghij2345678901234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, SV("12345678901234567890"), 10, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, SV("12345678901234567890"), 10, 1, S("abcdefghij1klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, SV("12345678901234567890"), 10, 5, S("abcdefghij12345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, SV("12345678901234567890"), 10, 9, S("abcdefghij123456789klmnopqrst"));
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test25()
-{
- test(S("abcdefghijklmnopqrst"), 10, SV("12345678901234567890"), 10, 10, S("abcdefghij1234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, SV("12345678901234567890"), 10, 11, S("abcdefghij1234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, SV("12345678901234567890"), 19, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, SV("12345678901234567890"), 19, 1, S("abcdefghij0klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, SV("12345678901234567890"), 19, 2, S("abcdefghij0klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, SV("12345678901234567890"), 20, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, SV("12345678901234567890"), 20, 1, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 19, SV(""), 0, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, SV(""), 0, 1, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, SV(""), 1, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 19, SV("12345"), 0, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, SV("12345"), 0, 1, S("abcdefghijklmnopqrs1t"));
- test(S("abcdefghijklmnopqrst"), 19, SV("12345"), 0, 2, S("abcdefghijklmnopqrs12t"));
- test(S("abcdefghijklmnopqrst"), 19, SV("12345"), 0, 4, S("abcdefghijklmnopqrs1234t"));
- test(S("abcdefghijklmnopqrst"), 19, SV("12345"), 0, 5, S("abcdefghijklmnopqrs12345t"));
- test(S("abcdefghijklmnopqrst"), 19, SV("12345"), 0, 6, S("abcdefghijklmnopqrs12345t"));
- test(S("abcdefghijklmnopqrst"), 19, SV("12345"), 1, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, SV("12345"), 1, 1, S("abcdefghijklmnopqrs2t"));
- test(S("abcdefghijklmnopqrst"), 19, SV("12345"), 1, 2, S("abcdefghijklmnopqrs23t"));
- test(S("abcdefghijklmnopqrst"), 19, SV("12345"), 1, 3, S("abcdefghijklmnopqrs234t"));
- test(S("abcdefghijklmnopqrst"), 19, SV("12345"), 1, 4, S("abcdefghijklmnopqrs2345t"));
- test(S("abcdefghijklmnopqrst"), 19, SV("12345"), 1, 5, S("abcdefghijklmnopqrs2345t"));
- test(S("abcdefghijklmnopqrst"), 19, SV("12345"), 2, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, SV("12345"), 2, 1, S("abcdefghijklmnopqrs3t"));
- test(S("abcdefghijklmnopqrst"), 19, SV("12345"), 2, 2, S("abcdefghijklmnopqrs34t"));
- test(S("abcdefghijklmnopqrst"), 19, SV("12345"), 2, 3, S("abcdefghijklmnopqrs345t"));
- test(S("abcdefghijklmnopqrst"), 19, SV("12345"), 2, 4, S("abcdefghijklmnopqrs345t"));
- test(S("abcdefghijklmnopqrst"), 19, SV("12345"), 4, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, SV("12345"), 4, 1, S("abcdefghijklmnopqrs5t"));
- test(S("abcdefghijklmnopqrst"), 19, SV("12345"), 4, 2, S("abcdefghijklmnopqrs5t"));
- test(S("abcdefghijklmnopqrst"), 19, SV("12345"), 5, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, SV("12345"), 5, 1, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, SV("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 19, SV("1234567890"), 0, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, SV("1234567890"), 0, 1, S("abcdefghijklmnopqrs1t"));
- test(S("abcdefghijklmnopqrst"), 19, SV("1234567890"), 0, 5, S("abcdefghijklmnopqrs12345t"));
- test(S("abcdefghijklmnopqrst"), 19, SV("1234567890"), 0, 9, S("abcdefghijklmnopqrs123456789t"));
- test(S("abcdefghijklmnopqrst"), 19, SV("1234567890"), 0, 10, S("abcdefghijklmnopqrs1234567890t"));
- test(S("abcdefghijklmnopqrst"), 19, SV("1234567890"), 0, 11, S("abcdefghijklmnopqrs1234567890t"));
- test(S("abcdefghijklmnopqrst"), 19, SV("1234567890"), 1, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, SV("1234567890"), 1, 1, S("abcdefghijklmnopqrs2t"));
- test(S("abcdefghijklmnopqrst"), 19, SV("1234567890"), 1, 4, S("abcdefghijklmnopqrs2345t"));
- test(S("abcdefghijklmnopqrst"), 19, SV("1234567890"), 1, 8, S("abcdefghijklmnopqrs23456789t"));
- test(S("abcdefghijklmnopqrst"), 19, SV("1234567890"), 1, 9, S("abcdefghijklmnopqrs234567890t"));
- test(S("abcdefghijklmnopqrst"), 19, SV("1234567890"), 1, 10, S("abcdefghijklmnopqrs234567890t"));
- test(S("abcdefghijklmnopqrst"), 19, SV("1234567890"), 5, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, SV("1234567890"), 5, 1, S("abcdefghijklmnopqrs6t"));
- test(S("abcdefghijklmnopqrst"), 19, SV("1234567890"), 5, 2, S("abcdefghijklmnopqrs67t"));
- test(S("abcdefghijklmnopqrst"), 19, SV("1234567890"), 5, 4, S("abcdefghijklmnopqrs6789t"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test25() {
+ test(S("abcdefghijklmnopqrst"), 10, SV("12345678901234567890"), 10, 10, S("abcdefghij1234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, SV("12345678901234567890"), 10, 11, S("abcdefghij1234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, SV("12345678901234567890"), 19, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, SV("12345678901234567890"), 19, 1, S("abcdefghij0klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, SV("12345678901234567890"), 19, 2, S("abcdefghij0klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, SV("12345678901234567890"), 20, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, SV("12345678901234567890"), 20, 1, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 19, SV(""), 0, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, SV(""), 0, 1, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, SV(""), 1, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 19, SV("12345"), 0, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, SV("12345"), 0, 1, S("abcdefghijklmnopqrs1t"));
+ test(S("abcdefghijklmnopqrst"), 19, SV("12345"), 0, 2, S("abcdefghijklmnopqrs12t"));
+ test(S("abcdefghijklmnopqrst"), 19, SV("12345"), 0, 4, S("abcdefghijklmnopqrs1234t"));
+ test(S("abcdefghijklmnopqrst"), 19, SV("12345"), 0, 5, S("abcdefghijklmnopqrs12345t"));
+ test(S("abcdefghijklmnopqrst"), 19, SV("12345"), 0, 6, S("abcdefghijklmnopqrs12345t"));
+ test(S("abcdefghijklmnopqrst"), 19, SV("12345"), 1, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, SV("12345"), 1, 1, S("abcdefghijklmnopqrs2t"));
+ test(S("abcdefghijklmnopqrst"), 19, SV("12345"), 1, 2, S("abcdefghijklmnopqrs23t"));
+ test(S("abcdefghijklmnopqrst"), 19, SV("12345"), 1, 3, S("abcdefghijklmnopqrs234t"));
+ test(S("abcdefghijklmnopqrst"), 19, SV("12345"), 1, 4, S("abcdefghijklmnopqrs2345t"));
+ test(S("abcdefghijklmnopqrst"), 19, SV("12345"), 1, 5, S("abcdefghijklmnopqrs2345t"));
+ test(S("abcdefghijklmnopqrst"), 19, SV("12345"), 2, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, SV("12345"), 2, 1, S("abcdefghijklmnopqrs3t"));
+ test(S("abcdefghijklmnopqrst"), 19, SV("12345"), 2, 2, S("abcdefghijklmnopqrs34t"));
+ test(S("abcdefghijklmnopqrst"), 19, SV("12345"), 2, 3, S("abcdefghijklmnopqrs345t"));
+ test(S("abcdefghijklmnopqrst"), 19, SV("12345"), 2, 4, S("abcdefghijklmnopqrs345t"));
+ test(S("abcdefghijklmnopqrst"), 19, SV("12345"), 4, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, SV("12345"), 4, 1, S("abcdefghijklmnopqrs5t"));
+ test(S("abcdefghijklmnopqrst"), 19, SV("12345"), 4, 2, S("abcdefghijklmnopqrs5t"));
+ test(S("abcdefghijklmnopqrst"), 19, SV("12345"), 5, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, SV("12345"), 5, 1, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, SV("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 19, SV("1234567890"), 0, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, SV("1234567890"), 0, 1, S("abcdefghijklmnopqrs1t"));
+ test(S("abcdefghijklmnopqrst"), 19, SV("1234567890"), 0, 5, S("abcdefghijklmnopqrs12345t"));
+ test(S("abcdefghijklmnopqrst"), 19, SV("1234567890"), 0, 9, S("abcdefghijklmnopqrs123456789t"));
+ test(S("abcdefghijklmnopqrst"), 19, SV("1234567890"), 0, 10, S("abcdefghijklmnopqrs1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 19, SV("1234567890"), 0, 11, S("abcdefghijklmnopqrs1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 19, SV("1234567890"), 1, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, SV("1234567890"), 1, 1, S("abcdefghijklmnopqrs2t"));
+ test(S("abcdefghijklmnopqrst"), 19, SV("1234567890"), 1, 4, S("abcdefghijklmnopqrs2345t"));
+ test(S("abcdefghijklmnopqrst"), 19, SV("1234567890"), 1, 8, S("abcdefghijklmnopqrs23456789t"));
+ test(S("abcdefghijklmnopqrst"), 19, SV("1234567890"), 1, 9, S("abcdefghijklmnopqrs234567890t"));
+ test(S("abcdefghijklmnopqrst"), 19, SV("1234567890"), 1, 10, S("abcdefghijklmnopqrs234567890t"));
+ test(S("abcdefghijklmnopqrst"), 19, SV("1234567890"), 5, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, SV("1234567890"), 5, 1, S("abcdefghijklmnopqrs6t"));
+ test(S("abcdefghijklmnopqrst"), 19, SV("1234567890"), 5, 2, S("abcdefghijklmnopqrs67t"));
+ test(S("abcdefghijklmnopqrst"), 19, SV("1234567890"), 5, 4, S("abcdefghijklmnopqrs6789t"));
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test26()
-{
- test(S("abcdefghijklmnopqrst"), 19, SV("1234567890"), 5, 5, S("abcdefghijklmnopqrs67890t"));
- test(S("abcdefghijklmnopqrst"), 19, SV("1234567890"), 5, 6, S("abcdefghijklmnopqrs67890t"));
- test(S("abcdefghijklmnopqrst"), 19, SV("1234567890"), 9, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, SV("1234567890"), 9, 1, S("abcdefghijklmnopqrs0t"));
- test(S("abcdefghijklmnopqrst"), 19, SV("1234567890"), 9, 2, S("abcdefghijklmnopqrs0t"));
- test(S("abcdefghijklmnopqrst"), 19, SV("1234567890"), 10, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, SV("1234567890"), 10, 1, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, SV("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 19, SV("12345678901234567890"), 0, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, SV("12345678901234567890"), 0, 1, S("abcdefghijklmnopqrs1t"));
- test(S("abcdefghijklmnopqrst"), 19, SV("12345678901234567890"), 0, 10, S("abcdefghijklmnopqrs1234567890t"));
- test(S("abcdefghijklmnopqrst"), 19, SV("12345678901234567890"), 0, 19, S("abcdefghijklmnopqrs1234567890123456789t"));
- test(S("abcdefghijklmnopqrst"), 19, SV("12345678901234567890"), 0, 20, S("abcdefghijklmnopqrs12345678901234567890t"));
- test(S("abcdefghijklmnopqrst"), 19, SV("12345678901234567890"), 0, 21, S("abcdefghijklmnopqrs12345678901234567890t"));
- test(S("abcdefghijklmnopqrst"), 19, SV("12345678901234567890"), 1, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, SV("12345678901234567890"), 1, 1, S("abcdefghijklmnopqrs2t"));
- test(S("abcdefghijklmnopqrst"), 19, SV("12345678901234567890"), 1, 9, S("abcdefghijklmnopqrs234567890t"));
- test(S("abcdefghijklmnopqrst"), 19, SV("12345678901234567890"), 1, 18, S("abcdefghijklmnopqrs234567890123456789t"));
- test(S("abcdefghijklmnopqrst"), 19, SV("12345678901234567890"), 1, 19, S("abcdefghijklmnopqrs2345678901234567890t"));
- test(S("abcdefghijklmnopqrst"), 19, SV("12345678901234567890"), 1, 20, S("abcdefghijklmnopqrs2345678901234567890t"));
- test(S("abcdefghijklmnopqrst"), 19, SV("12345678901234567890"), 10, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, SV("12345678901234567890"), 10, 1, S("abcdefghijklmnopqrs1t"));
- test(S("abcdefghijklmnopqrst"), 19, SV("12345678901234567890"), 10, 5, S("abcdefghijklmnopqrs12345t"));
- test(S("abcdefghijklmnopqrst"), 19, SV("12345678901234567890"), 10, 9, S("abcdefghijklmnopqrs123456789t"));
- test(S("abcdefghijklmnopqrst"), 19, SV("12345678901234567890"), 10, 10, S("abcdefghijklmnopqrs1234567890t"));
- test(S("abcdefghijklmnopqrst"), 19, SV("12345678901234567890"), 10, 11, S("abcdefghijklmnopqrs1234567890t"));
- test(S("abcdefghijklmnopqrst"), 19, SV("12345678901234567890"), 19, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, SV("12345678901234567890"), 19, 1, S("abcdefghijklmnopqrs0t"));
- test(S("abcdefghijklmnopqrst"), 19, SV("12345678901234567890"), 19, 2, S("abcdefghijklmnopqrs0t"));
- test(S("abcdefghijklmnopqrst"), 19, SV("12345678901234567890"), 20, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, SV("12345678901234567890"), 20, 1, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 20, SV(""), 0, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, SV(""), 0, 1, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, SV(""), 1, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 20, SV("12345"), 0, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, SV("12345"), 0, 1, S("abcdefghijklmnopqrst1"));
- test(S("abcdefghijklmnopqrst"), 20, SV("12345"), 0, 2, S("abcdefghijklmnopqrst12"));
- test(S("abcdefghijklmnopqrst"), 20, SV("12345"), 0, 4, S("abcdefghijklmnopqrst1234"));
- test(S("abcdefghijklmnopqrst"), 20, SV("12345"), 0, 5, S("abcdefghijklmnopqrst12345"));
- test(S("abcdefghijklmnopqrst"), 20, SV("12345"), 0, 6, S("abcdefghijklmnopqrst12345"));
- test(S("abcdefghijklmnopqrst"), 20, SV("12345"), 1, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, SV("12345"), 1, 1, S("abcdefghijklmnopqrst2"));
- test(S("abcdefghijklmnopqrst"), 20, SV("12345"), 1, 2, S("abcdefghijklmnopqrst23"));
- test(S("abcdefghijklmnopqrst"), 20, SV("12345"), 1, 3, S("abcdefghijklmnopqrst234"));
- test(S("abcdefghijklmnopqrst"), 20, SV("12345"), 1, 4, S("abcdefghijklmnopqrst2345"));
- test(S("abcdefghijklmnopqrst"), 20, SV("12345"), 1, 5, S("abcdefghijklmnopqrst2345"));
- test(S("abcdefghijklmnopqrst"), 20, SV("12345"), 2, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, SV("12345"), 2, 1, S("abcdefghijklmnopqrst3"));
- test(S("abcdefghijklmnopqrst"), 20, SV("12345"), 2, 2, S("abcdefghijklmnopqrst34"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test26() {
+ test(S("abcdefghijklmnopqrst"), 19, SV("1234567890"), 5, 5, S("abcdefghijklmnopqrs67890t"));
+ test(S("abcdefghijklmnopqrst"), 19, SV("1234567890"), 5, 6, S("abcdefghijklmnopqrs67890t"));
+ test(S("abcdefghijklmnopqrst"), 19, SV("1234567890"), 9, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, SV("1234567890"), 9, 1, S("abcdefghijklmnopqrs0t"));
+ test(S("abcdefghijklmnopqrst"), 19, SV("1234567890"), 9, 2, S("abcdefghijklmnopqrs0t"));
+ test(S("abcdefghijklmnopqrst"), 19, SV("1234567890"), 10, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, SV("1234567890"), 10, 1, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 19, SV("12345678901234567890"), 0, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, SV("12345678901234567890"), 0, 1, S("abcdefghijklmnopqrs1t"));
+ test(S("abcdefghijklmnopqrst"), 19, SV("12345678901234567890"), 0, 10, S("abcdefghijklmnopqrs1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 19, SV("12345678901234567890"), 0, 19, S("abcdefghijklmnopqrs1234567890123456789t"));
+ test(S("abcdefghijklmnopqrst"), 19, SV("12345678901234567890"), 0, 20, S("abcdefghijklmnopqrs12345678901234567890t"));
+ test(S("abcdefghijklmnopqrst"), 19, SV("12345678901234567890"), 0, 21, S("abcdefghijklmnopqrs12345678901234567890t"));
+ test(S("abcdefghijklmnopqrst"), 19, SV("12345678901234567890"), 1, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, SV("12345678901234567890"), 1, 1, S("abcdefghijklmnopqrs2t"));
+ test(S("abcdefghijklmnopqrst"), 19, SV("12345678901234567890"), 1, 9, S("abcdefghijklmnopqrs234567890t"));
+ test(S("abcdefghijklmnopqrst"), 19, SV("12345678901234567890"), 1, 18, S("abcdefghijklmnopqrs234567890123456789t"));
+ test(S("abcdefghijklmnopqrst"), 19, SV("12345678901234567890"), 1, 19, S("abcdefghijklmnopqrs2345678901234567890t"));
+ test(S("abcdefghijklmnopqrst"), 19, SV("12345678901234567890"), 1, 20, S("abcdefghijklmnopqrs2345678901234567890t"));
+ test(S("abcdefghijklmnopqrst"), 19, SV("12345678901234567890"), 10, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, SV("12345678901234567890"), 10, 1, S("abcdefghijklmnopqrs1t"));
+ test(S("abcdefghijklmnopqrst"), 19, SV("12345678901234567890"), 10, 5, S("abcdefghijklmnopqrs12345t"));
+ test(S("abcdefghijklmnopqrst"), 19, SV("12345678901234567890"), 10, 9, S("abcdefghijklmnopqrs123456789t"));
+ test(S("abcdefghijklmnopqrst"), 19, SV("12345678901234567890"), 10, 10, S("abcdefghijklmnopqrs1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 19, SV("12345678901234567890"), 10, 11, S("abcdefghijklmnopqrs1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 19, SV("12345678901234567890"), 19, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, SV("12345678901234567890"), 19, 1, S("abcdefghijklmnopqrs0t"));
+ test(S("abcdefghijklmnopqrst"), 19, SV("12345678901234567890"), 19, 2, S("abcdefghijklmnopqrs0t"));
+ test(S("abcdefghijklmnopqrst"), 19, SV("12345678901234567890"), 20, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, SV("12345678901234567890"), 20, 1, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 20, SV(""), 0, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, SV(""), 0, 1, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, SV(""), 1, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 20, SV("12345"), 0, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, SV("12345"), 0, 1, S("abcdefghijklmnopqrst1"));
+ test(S("abcdefghijklmnopqrst"), 20, SV("12345"), 0, 2, S("abcdefghijklmnopqrst12"));
+ test(S("abcdefghijklmnopqrst"), 20, SV("12345"), 0, 4, S("abcdefghijklmnopqrst1234"));
+ test(S("abcdefghijklmnopqrst"), 20, SV("12345"), 0, 5, S("abcdefghijklmnopqrst12345"));
+ test(S("abcdefghijklmnopqrst"), 20, SV("12345"), 0, 6, S("abcdefghijklmnopqrst12345"));
+ test(S("abcdefghijklmnopqrst"), 20, SV("12345"), 1, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, SV("12345"), 1, 1, S("abcdefghijklmnopqrst2"));
+ test(S("abcdefghijklmnopqrst"), 20, SV("12345"), 1, 2, S("abcdefghijklmnopqrst23"));
+ test(S("abcdefghijklmnopqrst"), 20, SV("12345"), 1, 3, S("abcdefghijklmnopqrst234"));
+ test(S("abcdefghijklmnopqrst"), 20, SV("12345"), 1, 4, S("abcdefghijklmnopqrst2345"));
+ test(S("abcdefghijklmnopqrst"), 20, SV("12345"), 1, 5, S("abcdefghijklmnopqrst2345"));
+ test(S("abcdefghijklmnopqrst"), 20, SV("12345"), 2, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, SV("12345"), 2, 1, S("abcdefghijklmnopqrst3"));
+ test(S("abcdefghijklmnopqrst"), 20, SV("12345"), 2, 2, S("abcdefghijklmnopqrst34"));
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test27()
-{
- test(S("abcdefghijklmnopqrst"), 20, SV("12345"), 2, 3, S("abcdefghijklmnopqrst345"));
- test(S("abcdefghijklmnopqrst"), 20, SV("12345"), 2, 4, S("abcdefghijklmnopqrst345"));
- test(S("abcdefghijklmnopqrst"), 20, SV("12345"), 4, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, SV("12345"), 4, 1, S("abcdefghijklmnopqrst5"));
- test(S("abcdefghijklmnopqrst"), 20, SV("12345"), 4, 2, S("abcdefghijklmnopqrst5"));
- test(S("abcdefghijklmnopqrst"), 20, SV("12345"), 5, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, SV("12345"), 5, 1, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, SV("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 20, SV("1234567890"), 0, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, SV("1234567890"), 0, 1, S("abcdefghijklmnopqrst1"));
- test(S("abcdefghijklmnopqrst"), 20, SV("1234567890"), 0, 5, S("abcdefghijklmnopqrst12345"));
- test(S("abcdefghijklmnopqrst"), 20, SV("1234567890"), 0, 9, S("abcdefghijklmnopqrst123456789"));
- test(S("abcdefghijklmnopqrst"), 20, SV("1234567890"), 0, 10, S("abcdefghijklmnopqrst1234567890"));
- test(S("abcdefghijklmnopqrst"), 20, SV("1234567890"), 0, 11, S("abcdefghijklmnopqrst1234567890"));
- test(S("abcdefghijklmnopqrst"), 20, SV("1234567890"), 1, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, SV("1234567890"), 1, 1, S("abcdefghijklmnopqrst2"));
- test(S("abcdefghijklmnopqrst"), 20, SV("1234567890"), 1, 4, S("abcdefghijklmnopqrst2345"));
- test(S("abcdefghijklmnopqrst"), 20, SV("1234567890"), 1, 8, S("abcdefghijklmnopqrst23456789"));
- test(S("abcdefghijklmnopqrst"), 20, SV("1234567890"), 1, 9, S("abcdefghijklmnopqrst234567890"));
- test(S("abcdefghijklmnopqrst"), 20, SV("1234567890"), 1, 10, S("abcdefghijklmnopqrst234567890"));
- test(S("abcdefghijklmnopqrst"), 20, SV("1234567890"), 5, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, SV("1234567890"), 5, 1, S("abcdefghijklmnopqrst6"));
- test(S("abcdefghijklmnopqrst"), 20, SV("1234567890"), 5, 2, S("abcdefghijklmnopqrst67"));
- test(S("abcdefghijklmnopqrst"), 20, SV("1234567890"), 5, 4, S("abcdefghijklmnopqrst6789"));
- test(S("abcdefghijklmnopqrst"), 20, SV("1234567890"), 5, 5, S("abcdefghijklmnopqrst67890"));
- test(S("abcdefghijklmnopqrst"), 20, SV("1234567890"), 5, 6, S("abcdefghijklmnopqrst67890"));
- test(S("abcdefghijklmnopqrst"), 20, SV("1234567890"), 9, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, SV("1234567890"), 9, 1, S("abcdefghijklmnopqrst0"));
- test(S("abcdefghijklmnopqrst"), 20, SV("1234567890"), 9, 2, S("abcdefghijklmnopqrst0"));
- test(S("abcdefghijklmnopqrst"), 20, SV("1234567890"), 10, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, SV("1234567890"), 10, 1, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, SV("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 20, SV("12345678901234567890"), 0, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, SV("12345678901234567890"), 0, 1, S("abcdefghijklmnopqrst1"));
- test(S("abcdefghijklmnopqrst"), 20, SV("12345678901234567890"), 0, 10, S("abcdefghijklmnopqrst1234567890"));
- test(S("abcdefghijklmnopqrst"), 20, SV("12345678901234567890"), 0, 19, S("abcdefghijklmnopqrst1234567890123456789"));
- test(S("abcdefghijklmnopqrst"), 20, SV("12345678901234567890"), 0, 20, S("abcdefghijklmnopqrst12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 20, SV("12345678901234567890"), 0, 21, S("abcdefghijklmnopqrst12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 20, SV("12345678901234567890"), 1, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, SV("12345678901234567890"), 1, 1, S("abcdefghijklmnopqrst2"));
- test(S("abcdefghijklmnopqrst"), 20, SV("12345678901234567890"), 1, 9, S("abcdefghijklmnopqrst234567890"));
- test(S("abcdefghijklmnopqrst"), 20, SV("12345678901234567890"), 1, 18, S("abcdefghijklmnopqrst234567890123456789"));
- test(S("abcdefghijklmnopqrst"), 20, SV("12345678901234567890"), 1, 19, S("abcdefghijklmnopqrst2345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 20, SV("12345678901234567890"), 1, 20, S("abcdefghijklmnopqrst2345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 20, SV("12345678901234567890"), 10, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, SV("12345678901234567890"), 10, 1, S("abcdefghijklmnopqrst1"));
- test(S("abcdefghijklmnopqrst"), 20, SV("12345678901234567890"), 10, 5, S("abcdefghijklmnopqrst12345"));
- test(S("abcdefghijklmnopqrst"), 20, SV("12345678901234567890"), 10, 9, S("abcdefghijklmnopqrst123456789"));
- test(S("abcdefghijklmnopqrst"), 20, SV("12345678901234567890"), 10, 10, S("abcdefghijklmnopqrst1234567890"));
- test(S("abcdefghijklmnopqrst"), 20, SV("12345678901234567890"), 10, 11, S("abcdefghijklmnopqrst1234567890"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test27() {
+ test(S("abcdefghijklmnopqrst"), 20, SV("12345"), 2, 3, S("abcdefghijklmnopqrst345"));
+ test(S("abcdefghijklmnopqrst"), 20, SV("12345"), 2, 4, S("abcdefghijklmnopqrst345"));
+ test(S("abcdefghijklmnopqrst"), 20, SV("12345"), 4, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, SV("12345"), 4, 1, S("abcdefghijklmnopqrst5"));
+ test(S("abcdefghijklmnopqrst"), 20, SV("12345"), 4, 2, S("abcdefghijklmnopqrst5"));
+ test(S("abcdefghijklmnopqrst"), 20, SV("12345"), 5, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, SV("12345"), 5, 1, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, SV("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 20, SV("1234567890"), 0, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, SV("1234567890"), 0, 1, S("abcdefghijklmnopqrst1"));
+ test(S("abcdefghijklmnopqrst"), 20, SV("1234567890"), 0, 5, S("abcdefghijklmnopqrst12345"));
+ test(S("abcdefghijklmnopqrst"), 20, SV("1234567890"), 0, 9, S("abcdefghijklmnopqrst123456789"));
+ test(S("abcdefghijklmnopqrst"), 20, SV("1234567890"), 0, 10, S("abcdefghijklmnopqrst1234567890"));
+ test(S("abcdefghijklmnopqrst"), 20, SV("1234567890"), 0, 11, S("abcdefghijklmnopqrst1234567890"));
+ test(S("abcdefghijklmnopqrst"), 20, SV("1234567890"), 1, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, SV("1234567890"), 1, 1, S("abcdefghijklmnopqrst2"));
+ test(S("abcdefghijklmnopqrst"), 20, SV("1234567890"), 1, 4, S("abcdefghijklmnopqrst2345"));
+ test(S("abcdefghijklmnopqrst"), 20, SV("1234567890"), 1, 8, S("abcdefghijklmnopqrst23456789"));
+ test(S("abcdefghijklmnopqrst"), 20, SV("1234567890"), 1, 9, S("abcdefghijklmnopqrst234567890"));
+ test(S("abcdefghijklmnopqrst"), 20, SV("1234567890"), 1, 10, S("abcdefghijklmnopqrst234567890"));
+ test(S("abcdefghijklmnopqrst"), 20, SV("1234567890"), 5, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, SV("1234567890"), 5, 1, S("abcdefghijklmnopqrst6"));
+ test(S("abcdefghijklmnopqrst"), 20, SV("1234567890"), 5, 2, S("abcdefghijklmnopqrst67"));
+ test(S("abcdefghijklmnopqrst"), 20, SV("1234567890"), 5, 4, S("abcdefghijklmnopqrst6789"));
+ test(S("abcdefghijklmnopqrst"), 20, SV("1234567890"), 5, 5, S("abcdefghijklmnopqrst67890"));
+ test(S("abcdefghijklmnopqrst"), 20, SV("1234567890"), 5, 6, S("abcdefghijklmnopqrst67890"));
+ test(S("abcdefghijklmnopqrst"), 20, SV("1234567890"), 9, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, SV("1234567890"), 9, 1, S("abcdefghijklmnopqrst0"));
+ test(S("abcdefghijklmnopqrst"), 20, SV("1234567890"), 9, 2, S("abcdefghijklmnopqrst0"));
+ test(S("abcdefghijklmnopqrst"), 20, SV("1234567890"), 10, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, SV("1234567890"), 10, 1, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 20, SV("12345678901234567890"), 0, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, SV("12345678901234567890"), 0, 1, S("abcdefghijklmnopqrst1"));
+ test(S("abcdefghijklmnopqrst"), 20, SV("12345678901234567890"), 0, 10, S("abcdefghijklmnopqrst1234567890"));
+ test(S("abcdefghijklmnopqrst"), 20, SV("12345678901234567890"), 0, 19, S("abcdefghijklmnopqrst1234567890123456789"));
+ test(S("abcdefghijklmnopqrst"), 20, SV("12345678901234567890"), 0, 20, S("abcdefghijklmnopqrst12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 20, SV("12345678901234567890"), 0, 21, S("abcdefghijklmnopqrst12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 20, SV("12345678901234567890"), 1, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, SV("12345678901234567890"), 1, 1, S("abcdefghijklmnopqrst2"));
+ test(S("abcdefghijklmnopqrst"), 20, SV("12345678901234567890"), 1, 9, S("abcdefghijklmnopqrst234567890"));
+ test(S("abcdefghijklmnopqrst"), 20, SV("12345678901234567890"), 1, 18, S("abcdefghijklmnopqrst234567890123456789"));
+ test(S("abcdefghijklmnopqrst"), 20, SV("12345678901234567890"), 1, 19, S("abcdefghijklmnopqrst2345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 20, SV("12345678901234567890"), 1, 20, S("abcdefghijklmnopqrst2345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 20, SV("12345678901234567890"), 10, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, SV("12345678901234567890"), 10, 1, S("abcdefghijklmnopqrst1"));
+ test(S("abcdefghijklmnopqrst"), 20, SV("12345678901234567890"), 10, 5, S("abcdefghijklmnopqrst12345"));
+ test(S("abcdefghijklmnopqrst"), 20, SV("12345678901234567890"), 10, 9, S("abcdefghijklmnopqrst123456789"));
+ test(S("abcdefghijklmnopqrst"), 20, SV("12345678901234567890"), 10, 10, S("abcdefghijklmnopqrst1234567890"));
+ test(S("abcdefghijklmnopqrst"), 20, SV("12345678901234567890"), 10, 11, S("abcdefghijklmnopqrst1234567890"));
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test28()
-{
- test(S("abcdefghijklmnopqrst"), 20, SV("12345678901234567890"), 19, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, SV("12345678901234567890"), 19, 1, S("abcdefghijklmnopqrst0"));
- test(S("abcdefghijklmnopqrst"), 20, SV("12345678901234567890"), 19, 2, S("abcdefghijklmnopqrst0"));
- test(S("abcdefghijklmnopqrst"), 20, SV("12345678901234567890"), 20, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, SV("12345678901234567890"), 20, 1, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, SV(""), 0, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, SV(""), 0, 1, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, SV(""), 1, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, SV("12345"), 0, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, SV("12345"), 0, 1, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, SV("12345"), 0, 2, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, SV("12345"), 0, 4, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, SV("12345"), 0, 5, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, SV("12345"), 0, 6, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, SV("12345"), 1, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, SV("12345"), 1, 1, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, SV("12345"), 1, 2, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, SV("12345"), 1, 3, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, SV("12345"), 1, 4, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, SV("12345"), 1, 5, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, SV("12345"), 2, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, SV("12345"), 2, 1, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, SV("12345"), 2, 2, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, SV("12345"), 2, 3, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, SV("12345"), 2, 4, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, SV("12345"), 4, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, SV("12345"), 4, 1, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, SV("12345"), 4, 2, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, SV("12345"), 5, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, SV("12345"), 5, 1, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, SV("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, SV("1234567890"), 0, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, SV("1234567890"), 0, 1, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, SV("1234567890"), 0, 5, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, SV("1234567890"), 0, 9, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, SV("1234567890"), 0, 10, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, SV("1234567890"), 0, 11, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, SV("1234567890"), 1, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, SV("1234567890"), 1, 1, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, SV("1234567890"), 1, 4, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, SV("1234567890"), 1, 8, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, SV("1234567890"), 1, 9, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, SV("1234567890"), 1, 10, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, SV("1234567890"), 5, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, SV("1234567890"), 5, 1, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, SV("1234567890"), 5, 2, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, SV("1234567890"), 5, 4, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, SV("1234567890"), 5, 5, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, SV("1234567890"), 5, 6, S("can't happen"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test28() {
+ test(S("abcdefghijklmnopqrst"), 20, SV("12345678901234567890"), 19, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, SV("12345678901234567890"), 19, 1, S("abcdefghijklmnopqrst0"));
+ test(S("abcdefghijklmnopqrst"), 20, SV("12345678901234567890"), 19, 2, S("abcdefghijklmnopqrst0"));
+ test(S("abcdefghijklmnopqrst"), 20, SV("12345678901234567890"), 20, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, SV("12345678901234567890"), 20, 1, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, SV(""), 0, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, SV(""), 0, 1, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, SV(""), 1, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, SV("12345"), 0, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, SV("12345"), 0, 1, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, SV("12345"), 0, 2, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, SV("12345"), 0, 4, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, SV("12345"), 0, 5, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, SV("12345"), 0, 6, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, SV("12345"), 1, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, SV("12345"), 1, 1, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, SV("12345"), 1, 2, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, SV("12345"), 1, 3, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, SV("12345"), 1, 4, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, SV("12345"), 1, 5, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, SV("12345"), 2, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, SV("12345"), 2, 1, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, SV("12345"), 2, 2, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, SV("12345"), 2, 3, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, SV("12345"), 2, 4, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, SV("12345"), 4, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, SV("12345"), 4, 1, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, SV("12345"), 4, 2, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, SV("12345"), 5, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, SV("12345"), 5, 1, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, SV("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, SV("1234567890"), 0, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, SV("1234567890"), 0, 1, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, SV("1234567890"), 0, 5, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, SV("1234567890"), 0, 9, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, SV("1234567890"), 0, 10, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, SV("1234567890"), 0, 11, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, SV("1234567890"), 1, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, SV("1234567890"), 1, 1, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, SV("1234567890"), 1, 4, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, SV("1234567890"), 1, 8, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, SV("1234567890"), 1, 9, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, SV("1234567890"), 1, 10, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, SV("1234567890"), 5, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, SV("1234567890"), 5, 1, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, SV("1234567890"), 5, 2, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, SV("1234567890"), 5, 4, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, SV("1234567890"), 5, 5, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, SV("1234567890"), 5, 6, S("can't happen"));
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test29()
-{
- test(S("abcdefghijklmnopqrst"), 21, SV("1234567890"), 9, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, SV("1234567890"), 9, 1, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, SV("1234567890"), 9, 2, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, SV("1234567890"), 10, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, SV("1234567890"), 10, 1, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, SV("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, SV("12345678901234567890"), 0, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, SV("12345678901234567890"), 0, 1, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, SV("12345678901234567890"), 0, 10, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, SV("12345678901234567890"), 0, 19, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, SV("12345678901234567890"), 0, 20, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, SV("12345678901234567890"), 0, 21, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, SV("12345678901234567890"), 1, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, SV("12345678901234567890"), 1, 1, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, SV("12345678901234567890"), 1, 9, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, SV("12345678901234567890"), 1, 18, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, SV("12345678901234567890"), 1, 19, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, SV("12345678901234567890"), 1, 20, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, SV("12345678901234567890"), 10, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, SV("12345678901234567890"), 10, 1, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, SV("12345678901234567890"), 10, 5, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, SV("12345678901234567890"), 10, 9, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, SV("12345678901234567890"), 10, 10, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, SV("12345678901234567890"), 10, 11, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, SV("12345678901234567890"), 19, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, SV("12345678901234567890"), 19, 1, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, SV("12345678901234567890"), 19, 2, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, SV("12345678901234567890"), 20, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, SV("12345678901234567890"), 20, 1, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, SV("12345678901234567890"), 21, 0, S("can't happen"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test29() {
+ test(S("abcdefghijklmnopqrst"), 21, SV("1234567890"), 9, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, SV("1234567890"), 9, 1, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, SV("1234567890"), 9, 2, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, SV("1234567890"), 10, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, SV("1234567890"), 10, 1, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, SV("12345678901234567890"), 0, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, SV("12345678901234567890"), 0, 1, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, SV("12345678901234567890"), 0, 10, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, SV("12345678901234567890"), 0, 19, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, SV("12345678901234567890"), 0, 20, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, SV("12345678901234567890"), 0, 21, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, SV("12345678901234567890"), 1, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, SV("12345678901234567890"), 1, 1, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, SV("12345678901234567890"), 1, 9, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, SV("12345678901234567890"), 1, 18, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, SV("12345678901234567890"), 1, 19, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, SV("12345678901234567890"), 1, 20, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, SV("12345678901234567890"), 10, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, SV("12345678901234567890"), 10, 1, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, SV("12345678901234567890"), 10, 5, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, SV("12345678901234567890"), 10, 9, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, SV("12345678901234567890"), 10, 10, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, SV("12345678901234567890"), 10, 11, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, SV("12345678901234567890"), 19, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, SV("12345678901234567890"), 19, 1, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, SV("12345678901234567890"), 19, 2, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, SV("12345678901234567890"), 20, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, SV("12345678901234567890"), 20, 1, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, SV("12345678901234567890"), 21, 0, S("can't happen"));
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test30()
-{
- test_npos(S(""), 0, SV("12345678901234567890"), 0, S("12345678901234567890"));
- test_npos(S(""), 0, SV("12345678901234567890"), 1, S( "2345678901234567890"));
- test_npos(S(""), 0, SV("12345678901234567890"), 2, S( "345678901234567890"));
- test_npos(S(""), 0, SV("12345678901234567890"), 3, S( "45678901234567890"));
- test_npos(S(""), 0, SV("12345678901234567890"), 5, S( "678901234567890"));
- test_npos(S(""), 0, SV("12345678901234567890"), 10, S( "1234567890"));
- test_npos(S(""), 0, SV("12345678901234567890"), 21, S("can't happen"));
- test_npos(S("abcdefghijklmnopqrst"), 10, SV("12345"), 0, S("abcdefghij12345klmnopqrst"));
- test_npos(S("abcdefghijklmnopqrst"), 10, SV("12345"), 1, S("abcdefghij2345klmnopqrst"));
- test_npos(S("abcdefghijklmnopqrst"), 10, SV("12345"), 3, S("abcdefghij45klmnopqrst"));
- test_npos(S("abcdefghijklmnopqrst"), 10, SV("12345"), 5, S("abcdefghijklmnopqrst"));
- test_npos(S("abcdefghijklmnopqrst"), 10, SV("12345"), 6, S("can't happen"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test30() {
+ test_npos(S(""), 0, SV("12345678901234567890"), 0, S("12345678901234567890"));
+ test_npos(S(""), 0, SV("12345678901234567890"), 1, S("2345678901234567890"));
+ test_npos(S(""), 0, SV("12345678901234567890"), 2, S("345678901234567890"));
+ test_npos(S(""), 0, SV("12345678901234567890"), 3, S("45678901234567890"));
+ test_npos(S(""), 0, SV("12345678901234567890"), 5, S("678901234567890"));
+ test_npos(S(""), 0, SV("12345678901234567890"), 10, S("1234567890"));
+ test_npos(S(""), 0, SV("12345678901234567890"), 21, S("can't happen"));
+ test_npos(S("abcdefghijklmnopqrst"), 10, SV("12345"), 0, S("abcdefghij12345klmnopqrst"));
+ test_npos(S("abcdefghijklmnopqrst"), 10, SV("12345"), 1, S("abcdefghij2345klmnopqrst"));
+ test_npos(S("abcdefghijklmnopqrst"), 10, SV("12345"), 3, S("abcdefghij45klmnopqrst"));
+ test_npos(S("abcdefghijklmnopqrst"), 10, SV("12345"), 5, S("abcdefghijklmnopqrst"));
+ test_npos(S("abcdefghijklmnopqrst"), 10, SV("12345"), 6, S("can't happen"));
+
+ return true;
}
template <class S, class SV>
TEST_CONSTEXPR_CXX20 bool test31() {
- S s;
- SV sv = "EFGH";
- char arr[] = "IJKL";
+ S s;
+ SV sv = "EFGH";
+ char arr[] = "IJKL";
- s.insert(0, "CDEF", 0); // calls insert(const char *, len)
- assert(s == "");
- s.clear();
+ s.insert(0, "CDEF", 0); // calls insert(const char *, len)
+ assert(s == "");
+ s.clear();
- s.insert(0, "QRST", 0, std::string::npos); // calls insert(string("QRST"), pos, npos)
- assert(s == "QRST");
- s.clear();
+ s.insert(0, "QRST", 0, std::string::npos); // calls insert(string("QRST"), pos, npos)
+ assert(s == "QRST");
+ s.clear();
- s.insert(0, sv, 0); // calls insert(T, pos, npos)
- assert(s == sv);
- s.clear();
+ s.insert(0, sv, 0); // calls insert(T, pos, npos)
+ assert(s == sv);
+ s.clear();
- s.insert(0, sv, 0, std::string::npos); // calls insert(T, pos, npos)
- assert(s == sv);
- s.clear();
+ s.insert(0, sv, 0, std::string::npos); // calls insert(T, pos, npos)
+ assert(s == sv);
+ s.clear();
- s.insert(0, arr, 0); // calls insert(const char *, len)
- assert(s == "");
- s.clear();
+ s.insert(0, arr, 0); // calls insert(const char *, len)
+ assert(s == "");
+ s.clear();
- s.insert(0, arr, 0, std::string::npos); // calls insert(string("IJKL"), pos, npos)
- assert(s == "IJKL");
- s.clear();
+ s.insert(0, arr, 0, std::string::npos); // calls insert(string("IJKL"), pos, npos)
+ assert(s == "IJKL");
+ s.clear();
- s.insert(0, arr, 0); // calls insert(const char *, len)
- assert(s == "");
- s.clear();
+ s.insert(0, arr, 0); // calls insert(const char *, len)
+ assert(s == "");
+ s.clear();
- return true;
+ return true;
}
template <class S, class SV>
@@ -1899,8 +1853,7 @@ void test() {
#endif
}
-int main(int, char**)
-{
+int main(int, char**) {
test<std::string, std::string_view>();
#if TEST_STD_VER >= 11
test<std::basic_string<char, std::char_traits<char>, min_allocator<char>>,
diff --git a/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/size_pointer.pass.cpp b/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/size_pointer.pass.cpp
index e8a6abf5302565f..359fd999598f889 100644
--- a/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/size_pointer.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/size_pointer.pass.cpp
@@ -19,31 +19,24 @@
#include "min_allocator.h"
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(S s, typename S::size_type pos, const typename S::value_type* str, S expected)
-{
- const typename S::size_type old_size = s.size();
- S s0 = s;
- if (pos <= old_size)
- {
- s.insert(pos, str);
- LIBCPP_ASSERT(s.__invariants());
- assert(s == expected);
- }
+TEST_CONSTEXPR_CXX20 void test(S s, typename S::size_type pos, const typename S::value_type* str, S expected) {
+ const typename S::size_type old_size = s.size();
+ S s0 = s;
+ if (pos <= old_size) {
+ s.insert(pos, str);
+ LIBCPP_ASSERT(s.__invariants());
+ assert(s == expected);
+ }
#ifndef TEST_HAS_NO_EXCEPTIONS
- else if (!TEST_IS_CONSTANT_EVALUATED)
- {
- try
- {
- s.insert(pos, str);
- assert(false);
- }
- catch (std::out_of_range&)
- {
- assert(pos > old_size);
- assert(s == s0);
- }
+ else if (!TEST_IS_CONSTANT_EVALUATED) {
+ try {
+ s.insert(pos, str);
+ assert(false);
+ } catch (std::out_of_range&) {
+ assert(pos > old_size);
+ assert(s == s0);
}
+ }
#endif
}
@@ -156,8 +149,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/size_pointer_size.pass.cpp b/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/size_pointer_size.pass.cpp
index 1e0cdf5d501e0f6..44f20ff63cc0ca5 100644
--- a/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/size_pointer_size.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/size_pointer_size.pass.cpp
@@ -20,31 +20,24 @@
template <class S>
TEST_CONSTEXPR_CXX20 void
-test(S s, typename S::size_type pos, const typename S::value_type* str,
- typename S::size_type n, S expected)
-{
- const typename S::size_type old_size = s.size();
- S s0 = s;
- if (pos <= old_size)
- {
- s.insert(pos, str, n);
- LIBCPP_ASSERT(s.__invariants());
- assert(s == expected);
- }
+test(S s, typename S::size_type pos, const typename S::value_type* str, typename S::size_type n, S expected) {
+ const typename S::size_type old_size = s.size();
+ S s0 = s;
+ if (pos <= old_size) {
+ s.insert(pos, str, n);
+ LIBCPP_ASSERT(s.__invariants());
+ assert(s == expected);
+ }
#ifndef TEST_HAS_NO_EXCEPTIONS
- else if (!TEST_IS_CONSTANT_EVALUATED)
- {
- try
- {
- s.insert(pos, str, n);
- assert(false);
- }
- catch (std::out_of_range&)
- {
- assert(pos > old_size);
- assert(s == s0);
- }
+ else if (!TEST_IS_CONSTANT_EVALUATED) {
+ try {
+ s.insert(pos, str, n);
+ assert(false);
+ } catch (std::out_of_range&) {
+ assert(pos > old_size);
+ assert(s == s0);
}
+ }
#endif
}
@@ -391,8 +384,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test<std::string>();
#if TEST_STD_VER >= 11
test<std::basic_string<char, std::char_traits<char>, min_allocator<char>>>();
diff --git a/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/size_size_char.pass.cpp b/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/size_size_char.pass.cpp
index 143fa54f42779d0..2396b7e2f54df73 100644
--- a/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/size_size_char.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/size_size_char.pass.cpp
@@ -20,31 +20,24 @@
template <class S>
TEST_CONSTEXPR_CXX20 void
-test(S s, typename S::size_type pos, typename S::size_type n,
- typename S::value_type str, S expected)
-{
- const typename S::size_type old_size = s.size();
- S s0 = s;
- if (pos <= old_size)
- {
- s.insert(pos, n, str);
- LIBCPP_ASSERT(s.__invariants());
- assert(s == expected);
- }
+test(S s, typename S::size_type pos, typename S::size_type n, typename S::value_type str, S expected) {
+ const typename S::size_type old_size = s.size();
+ S s0 = s;
+ if (pos <= old_size) {
+ s.insert(pos, n, str);
+ LIBCPP_ASSERT(s.__invariants());
+ assert(s == expected);
+ }
#ifndef TEST_HAS_NO_EXCEPTIONS
- else if (!TEST_IS_CONSTANT_EVALUATED)
- {
- try
- {
- s.insert(pos, n, str);
- assert(false);
- }
- catch (std::out_of_range&)
- {
- assert(pos > old_size);
- assert(s == s0);
- }
+ else if (!TEST_IS_CONSTANT_EVALUATED) {
+ try {
+ s.insert(pos, n, str);
+ assert(false);
+ } catch (std::out_of_range&) {
+ assert(pos > old_size);
+ assert(s == s0);
}
+ }
#endif
}
@@ -141,8 +134,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/size_string.pass.cpp b/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/size_string.pass.cpp
index e3c81856cf2db3b..1b908ac464c3134 100644
--- a/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/size_string.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/size_string.pass.cpp
@@ -19,31 +19,24 @@
#include "min_allocator.h"
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(S s, typename S::size_type pos, S str, S expected)
-{
- const typename S::size_type old_size = s.size();
- S s0 = s;
- if (pos <= old_size)
- {
- s.insert(pos, str);
- LIBCPP_ASSERT(s.__invariants());
- assert(s == expected);
- }
+TEST_CONSTEXPR_CXX20 void test(S s, typename S::size_type pos, S str, S expected) {
+ const typename S::size_type old_size = s.size();
+ S s0 = s;
+ if (pos <= old_size) {
+ s.insert(pos, str);
+ LIBCPP_ASSERT(s.__invariants());
+ assert(s == expected);
+ }
#ifndef TEST_HAS_NO_EXCEPTIONS
- else if (!TEST_IS_CONSTANT_EVALUATED)
- {
- try
- {
- s.insert(pos, str);
- assert(false);
- }
- catch (std::out_of_range&)
- {
- assert(pos > old_size);
- assert(s == s0);
- }
+ else if (!TEST_IS_CONSTANT_EVALUATED) {
+ try {
+ s.insert(pos, str);
+ assert(false);
+ } catch (std::out_of_range&) {
+ assert(pos > old_size);
+ assert(s == s0);
}
+ }
#endif
}
@@ -138,7 +131,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
#endif
#if TEST_STD_VER >= 11
- { // LWG 2946
+ { // LWG 2946
std::string s;
s.insert(0, {"abc", 1});
assert(s.size() == 1);
@@ -149,8 +142,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/size_string_size_size.pass.cpp b/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/size_string_size_size.pass.cpp
index 857d8c66e97601c..1a8f6b35b42c445 100644
--- a/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/size_string_size_size.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/size_string_size_size.pass.cpp
@@ -22,1771 +22,1725 @@
template <class S>
TEST_CONSTEXPR_CXX20 void
-test(S s, typename S::size_type pos1, S str, typename S::size_type pos2,
- typename S::size_type n, S expected)
-{
- const typename S::size_type old_size = s.size();
- S s0 = s;
- if (pos1 <= old_size && pos2 <= str.size())
- {
- s.insert(pos1, str, pos2, n);
- LIBCPP_ASSERT(s.__invariants());
- assert(s == expected);
- }
+test(S s, typename S::size_type pos1, S str, typename S::size_type pos2, typename S::size_type n, S expected) {
+ const typename S::size_type old_size = s.size();
+ S s0 = s;
+ if (pos1 <= old_size && pos2 <= str.size()) {
+ s.insert(pos1, str, pos2, n);
+ LIBCPP_ASSERT(s.__invariants());
+ assert(s == expected);
+ }
#ifndef TEST_HAS_NO_EXCEPTIONS
- else if (!TEST_IS_CONSTANT_EVALUATED)
- {
- try
- {
- s.insert(pos1, str, pos2, n);
- assert(false);
- }
- catch (std::out_of_range&)
- {
- assert(pos1 > old_size || pos2 > str.size());
- assert(s == s0);
- }
+ else if (!TEST_IS_CONSTANT_EVALUATED) {
+ try {
+ s.insert(pos1, str, pos2, n);
+ assert(false);
+ } catch (std::out_of_range&) {
+ assert(pos1 > old_size || pos2 > str.size());
+ assert(s == s0);
}
+ }
#endif
}
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test_npos(S s, typename S::size_type pos1, S str, typename S::size_type pos2, S expected)
-{
- const typename S::size_type old_size = s.size();
- S s0 = s;
- if (pos1 <= old_size && pos2 <= str.size())
- {
- s.insert(pos1, str, pos2);
- LIBCPP_ASSERT(s.__invariants());
- assert(s == expected);
- }
+TEST_CONSTEXPR_CXX20 void test_npos(S s, typename S::size_type pos1, S str, typename S::size_type pos2, S expected) {
+ const typename S::size_type old_size = s.size();
+ S s0 = s;
+ if (pos1 <= old_size && pos2 <= str.size()) {
+ s.insert(pos1, str, pos2);
+ LIBCPP_ASSERT(s.__invariants());
+ assert(s == expected);
+ }
#ifndef TEST_HAS_NO_EXCEPTIONS
- else if (!TEST_IS_CONSTANT_EVALUATED)
- {
- try
- {
- s.insert(pos1, str, pos2);
- assert(false);
- }
- catch (std::out_of_range&)
- {
- assert(pos1 > old_size || pos2 > str.size());
- assert(s == s0);
- }
+ else if (!TEST_IS_CONSTANT_EVALUATED) {
+ try {
+ s.insert(pos1, str, pos2);
+ assert(false);
+ } catch (std::out_of_range&) {
+ assert(pos1 > old_size || pos2 > str.size());
+ assert(s == s0);
}
+ }
#endif
}
-
template <class S>
-TEST_CONSTEXPR_CXX20 bool test0()
-{
- test(S(""), 0, S(""), 0, 0, S(""));
- test(S(""), 0, S(""), 0, 1, S(""));
- test(S(""), 0, S(""), 1, 0, S("can't happen"));
- test(S(""), 0, S("12345"), 0, 0, S(""));
- test(S(""), 0, S("12345"), 0, 1, S("1"));
- test(S(""), 0, S("12345"), 0, 2, S("12"));
- test(S(""), 0, S("12345"), 0, 4, S("1234"));
- test(S(""), 0, S("12345"), 0, 5, S("12345"));
- test(S(""), 0, S("12345"), 0, 6, S("12345"));
- test(S(""), 0, S("12345"), 1, 0, S(""));
- test(S(""), 0, S("12345"), 1, 1, S("2"));
- test(S(""), 0, S("12345"), 1, 2, S("23"));
- test(S(""), 0, S("12345"), 1, 3, S("234"));
- test(S(""), 0, S("12345"), 1, 4, S("2345"));
- test(S(""), 0, S("12345"), 1, 5, S("2345"));
- test(S(""), 0, S("12345"), 2, 0, S(""));
- test(S(""), 0, S("12345"), 2, 1, S("3"));
- test(S(""), 0, S("12345"), 2, 2, S("34"));
- test(S(""), 0, S("12345"), 2, 3, S("345"));
- test(S(""), 0, S("12345"), 2, 4, S("345"));
- test(S(""), 0, S("12345"), 4, 0, S(""));
- test(S(""), 0, S("12345"), 4, 1, S("5"));
- test(S(""), 0, S("12345"), 4, 2, S("5"));
- test(S(""), 0, S("12345"), 5, 0, S(""));
- test(S(""), 0, S("12345"), 5, 1, S(""));
- test(S(""), 0, S("12345"), 6, 0, S("can't happen"));
- test(S(""), 0, S("1234567890"), 0, 0, S(""));
- test(S(""), 0, S("1234567890"), 0, 1, S("1"));
- test(S(""), 0, S("1234567890"), 0, 5, S("12345"));
- test(S(""), 0, S("1234567890"), 0, 9, S("123456789"));
- test(S(""), 0, S("1234567890"), 0, 10, S("1234567890"));
- test(S(""), 0, S("1234567890"), 0, 11, S("1234567890"));
- test(S(""), 0, S("1234567890"), 1, 0, S(""));
- test(S(""), 0, S("1234567890"), 1, 1, S("2"));
- test(S(""), 0, S("1234567890"), 1, 4, S("2345"));
- test(S(""), 0, S("1234567890"), 1, 8, S("23456789"));
- test(S(""), 0, S("1234567890"), 1, 9, S("234567890"));
- test(S(""), 0, S("1234567890"), 1, 10, S("234567890"));
- test(S(""), 0, S("1234567890"), 5, 0, S(""));
- test(S(""), 0, S("1234567890"), 5, 1, S("6"));
- test(S(""), 0, S("1234567890"), 5, 2, S("67"));
- test(S(""), 0, S("1234567890"), 5, 4, S("6789"));
- test(S(""), 0, S("1234567890"), 5, 5, S("67890"));
- test(S(""), 0, S("1234567890"), 5, 6, S("67890"));
- test(S(""), 0, S("1234567890"), 9, 0, S(""));
- test(S(""), 0, S("1234567890"), 9, 1, S("0"));
- test(S(""), 0, S("1234567890"), 9, 2, S("0"));
- test(S(""), 0, S("1234567890"), 10, 0, S(""));
- test(S(""), 0, S("1234567890"), 10, 1, S(""));
- test(S(""), 0, S("1234567890"), 11, 0, S("can't happen"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test0() {
+ test(S(""), 0, S(""), 0, 0, S(""));
+ test(S(""), 0, S(""), 0, 1, S(""));
+ test(S(""), 0, S(""), 1, 0, S("can't happen"));
+ test(S(""), 0, S("12345"), 0, 0, S(""));
+ test(S(""), 0, S("12345"), 0, 1, S("1"));
+ test(S(""), 0, S("12345"), 0, 2, S("12"));
+ test(S(""), 0, S("12345"), 0, 4, S("1234"));
+ test(S(""), 0, S("12345"), 0, 5, S("12345"));
+ test(S(""), 0, S("12345"), 0, 6, S("12345"));
+ test(S(""), 0, S("12345"), 1, 0, S(""));
+ test(S(""), 0, S("12345"), 1, 1, S("2"));
+ test(S(""), 0, S("12345"), 1, 2, S("23"));
+ test(S(""), 0, S("12345"), 1, 3, S("234"));
+ test(S(""), 0, S("12345"), 1, 4, S("2345"));
+ test(S(""), 0, S("12345"), 1, 5, S("2345"));
+ test(S(""), 0, S("12345"), 2, 0, S(""));
+ test(S(""), 0, S("12345"), 2, 1, S("3"));
+ test(S(""), 0, S("12345"), 2, 2, S("34"));
+ test(S(""), 0, S("12345"), 2, 3, S("345"));
+ test(S(""), 0, S("12345"), 2, 4, S("345"));
+ test(S(""), 0, S("12345"), 4, 0, S(""));
+ test(S(""), 0, S("12345"), 4, 1, S("5"));
+ test(S(""), 0, S("12345"), 4, 2, S("5"));
+ test(S(""), 0, S("12345"), 5, 0, S(""));
+ test(S(""), 0, S("12345"), 5, 1, S(""));
+ test(S(""), 0, S("12345"), 6, 0, S("can't happen"));
+ test(S(""), 0, S("1234567890"), 0, 0, S(""));
+ test(S(""), 0, S("1234567890"), 0, 1, S("1"));
+ test(S(""), 0, S("1234567890"), 0, 5, S("12345"));
+ test(S(""), 0, S("1234567890"), 0, 9, S("123456789"));
+ test(S(""), 0, S("1234567890"), 0, 10, S("1234567890"));
+ test(S(""), 0, S("1234567890"), 0, 11, S("1234567890"));
+ test(S(""), 0, S("1234567890"), 1, 0, S(""));
+ test(S(""), 0, S("1234567890"), 1, 1, S("2"));
+ test(S(""), 0, S("1234567890"), 1, 4, S("2345"));
+ test(S(""), 0, S("1234567890"), 1, 8, S("23456789"));
+ test(S(""), 0, S("1234567890"), 1, 9, S("234567890"));
+ test(S(""), 0, S("1234567890"), 1, 10, S("234567890"));
+ test(S(""), 0, S("1234567890"), 5, 0, S(""));
+ test(S(""), 0, S("1234567890"), 5, 1, S("6"));
+ test(S(""), 0, S("1234567890"), 5, 2, S("67"));
+ test(S(""), 0, S("1234567890"), 5, 4, S("6789"));
+ test(S(""), 0, S("1234567890"), 5, 5, S("67890"));
+ test(S(""), 0, S("1234567890"), 5, 6, S("67890"));
+ test(S(""), 0, S("1234567890"), 9, 0, S(""));
+ test(S(""), 0, S("1234567890"), 9, 1, S("0"));
+ test(S(""), 0, S("1234567890"), 9, 2, S("0"));
+ test(S(""), 0, S("1234567890"), 10, 0, S(""));
+ test(S(""), 0, S("1234567890"), 10, 1, S(""));
+ test(S(""), 0, S("1234567890"), 11, 0, S("can't happen"));
+
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test1()
-{
- test(S(""), 0, S("12345678901234567890"), 0, 0, S(""));
- test(S(""), 0, S("12345678901234567890"), 0, 1, S("1"));
- test(S(""), 0, S("12345678901234567890"), 0, 10, S("1234567890"));
- test(S(""), 0, S("12345678901234567890"), 0, 19, S("1234567890123456789"));
- test(S(""), 0, S("12345678901234567890"), 0, 20, S("12345678901234567890"));
- test(S(""), 0, S("12345678901234567890"), 0, 21, S("12345678901234567890"));
- test(S(""), 0, S("12345678901234567890"), 1, 0, S(""));
- test(S(""), 0, S("12345678901234567890"), 1, 1, S("2"));
- test(S(""), 0, S("12345678901234567890"), 1, 9, S("234567890"));
- test(S(""), 0, S("12345678901234567890"), 1, 18, S("234567890123456789"));
- test(S(""), 0, S("12345678901234567890"), 1, 19, S("2345678901234567890"));
- test(S(""), 0, S("12345678901234567890"), 1, 20, S("2345678901234567890"));
- test(S(""), 0, S("12345678901234567890"), 10, 0, S(""));
- test(S(""), 0, S("12345678901234567890"), 10, 1, S("1"));
- test(S(""), 0, S("12345678901234567890"), 10, 5, S("12345"));
- test(S(""), 0, S("12345678901234567890"), 10, 9, S("123456789"));
- test(S(""), 0, S("12345678901234567890"), 10, 10, S("1234567890"));
- test(S(""), 0, S("12345678901234567890"), 10, 11, S("1234567890"));
- test(S(""), 0, S("12345678901234567890"), 19, 0, S(""));
- test(S(""), 0, S("12345678901234567890"), 19, 1, S("0"));
- test(S(""), 0, S("12345678901234567890"), 19, 2, S("0"));
- test(S(""), 0, S("12345678901234567890"), 20, 0, S(""));
- test(S(""), 0, S("12345678901234567890"), 20, 1, S(""));
- test(S(""), 0, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S(""), 1, S(""), 0, 0, S("can't happen"));
- test(S(""), 1, S(""), 0, 1, S("can't happen"));
- test(S(""), 1, S(""), 1, 0, S("can't happen"));
- test(S(""), 1, S("12345"), 0, 0, S("can't happen"));
- test(S(""), 1, S("12345"), 0, 1, S("can't happen"));
- test(S(""), 1, S("12345"), 0, 2, S("can't happen"));
- test(S(""), 1, S("12345"), 0, 4, S("can't happen"));
- test(S(""), 1, S("12345"), 0, 5, S("can't happen"));
- test(S(""), 1, S("12345"), 0, 6, S("can't happen"));
- test(S(""), 1, S("12345"), 1, 0, S("can't happen"));
- test(S(""), 1, S("12345"), 1, 1, S("can't happen"));
- test(S(""), 1, S("12345"), 1, 2, S("can't happen"));
- test(S(""), 1, S("12345"), 1, 3, S("can't happen"));
- test(S(""), 1, S("12345"), 1, 4, S("can't happen"));
- test(S(""), 1, S("12345"), 1, 5, S("can't happen"));
- test(S(""), 1, S("12345"), 2, 0, S("can't happen"));
- test(S(""), 1, S("12345"), 2, 1, S("can't happen"));
- test(S(""), 1, S("12345"), 2, 2, S("can't happen"));
- test(S(""), 1, S("12345"), 2, 3, S("can't happen"));
- test(S(""), 1, S("12345"), 2, 4, S("can't happen"));
- test(S(""), 1, S("12345"), 4, 0, S("can't happen"));
- test(S(""), 1, S("12345"), 4, 1, S("can't happen"));
- test(S(""), 1, S("12345"), 4, 2, S("can't happen"));
- test(S(""), 1, S("12345"), 5, 0, S("can't happen"));
- test(S(""), 1, S("12345"), 5, 1, S("can't happen"));
- test(S(""), 1, S("12345"), 6, 0, S("can't happen"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test1() {
+ test(S(""), 0, S("12345678901234567890"), 0, 0, S(""));
+ test(S(""), 0, S("12345678901234567890"), 0, 1, S("1"));
+ test(S(""), 0, S("12345678901234567890"), 0, 10, S("1234567890"));
+ test(S(""), 0, S("12345678901234567890"), 0, 19, S("1234567890123456789"));
+ test(S(""), 0, S("12345678901234567890"), 0, 20, S("12345678901234567890"));
+ test(S(""), 0, S("12345678901234567890"), 0, 21, S("12345678901234567890"));
+ test(S(""), 0, S("12345678901234567890"), 1, 0, S(""));
+ test(S(""), 0, S("12345678901234567890"), 1, 1, S("2"));
+ test(S(""), 0, S("12345678901234567890"), 1, 9, S("234567890"));
+ test(S(""), 0, S("12345678901234567890"), 1, 18, S("234567890123456789"));
+ test(S(""), 0, S("12345678901234567890"), 1, 19, S("2345678901234567890"));
+ test(S(""), 0, S("12345678901234567890"), 1, 20, S("2345678901234567890"));
+ test(S(""), 0, S("12345678901234567890"), 10, 0, S(""));
+ test(S(""), 0, S("12345678901234567890"), 10, 1, S("1"));
+ test(S(""), 0, S("12345678901234567890"), 10, 5, S("12345"));
+ test(S(""), 0, S("12345678901234567890"), 10, 9, S("123456789"));
+ test(S(""), 0, S("12345678901234567890"), 10, 10, S("1234567890"));
+ test(S(""), 0, S("12345678901234567890"), 10, 11, S("1234567890"));
+ test(S(""), 0, S("12345678901234567890"), 19, 0, S(""));
+ test(S(""), 0, S("12345678901234567890"), 19, 1, S("0"));
+ test(S(""), 0, S("12345678901234567890"), 19, 2, S("0"));
+ test(S(""), 0, S("12345678901234567890"), 20, 0, S(""));
+ test(S(""), 0, S("12345678901234567890"), 20, 1, S(""));
+ test(S(""), 0, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S(""), 1, S(""), 0, 0, S("can't happen"));
+ test(S(""), 1, S(""), 0, 1, S("can't happen"));
+ test(S(""), 1, S(""), 1, 0, S("can't happen"));
+ test(S(""), 1, S("12345"), 0, 0, S("can't happen"));
+ test(S(""), 1, S("12345"), 0, 1, S("can't happen"));
+ test(S(""), 1, S("12345"), 0, 2, S("can't happen"));
+ test(S(""), 1, S("12345"), 0, 4, S("can't happen"));
+ test(S(""), 1, S("12345"), 0, 5, S("can't happen"));
+ test(S(""), 1, S("12345"), 0, 6, S("can't happen"));
+ test(S(""), 1, S("12345"), 1, 0, S("can't happen"));
+ test(S(""), 1, S("12345"), 1, 1, S("can't happen"));
+ test(S(""), 1, S("12345"), 1, 2, S("can't happen"));
+ test(S(""), 1, S("12345"), 1, 3, S("can't happen"));
+ test(S(""), 1, S("12345"), 1, 4, S("can't happen"));
+ test(S(""), 1, S("12345"), 1, 5, S("can't happen"));
+ test(S(""), 1, S("12345"), 2, 0, S("can't happen"));
+ test(S(""), 1, S("12345"), 2, 1, S("can't happen"));
+ test(S(""), 1, S("12345"), 2, 2, S("can't happen"));
+ test(S(""), 1, S("12345"), 2, 3, S("can't happen"));
+ test(S(""), 1, S("12345"), 2, 4, S("can't happen"));
+ test(S(""), 1, S("12345"), 4, 0, S("can't happen"));
+ test(S(""), 1, S("12345"), 4, 1, S("can't happen"));
+ test(S(""), 1, S("12345"), 4, 2, S("can't happen"));
+ test(S(""), 1, S("12345"), 5, 0, S("can't happen"));
+ test(S(""), 1, S("12345"), 5, 1, S("can't happen"));
+ test(S(""), 1, S("12345"), 6, 0, S("can't happen"));
+
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test2()
-{
- test(S(""), 1, S("1234567890"), 0, 0, S("can't happen"));
- test(S(""), 1, S("1234567890"), 0, 1, S("can't happen"));
- test(S(""), 1, S("1234567890"), 0, 5, S("can't happen"));
- test(S(""), 1, S("1234567890"), 0, 9, S("can't happen"));
- test(S(""), 1, S("1234567890"), 0, 10, S("can't happen"));
- test(S(""), 1, S("1234567890"), 0, 11, S("can't happen"));
- test(S(""), 1, S("1234567890"), 1, 0, S("can't happen"));
- test(S(""), 1, S("1234567890"), 1, 1, S("can't happen"));
- test(S(""), 1, S("1234567890"), 1, 4, S("can't happen"));
- test(S(""), 1, S("1234567890"), 1, 8, S("can't happen"));
- test(S(""), 1, S("1234567890"), 1, 9, S("can't happen"));
- test(S(""), 1, S("1234567890"), 1, 10, S("can't happen"));
- test(S(""), 1, S("1234567890"), 5, 0, S("can't happen"));
- test(S(""), 1, S("1234567890"), 5, 1, S("can't happen"));
- test(S(""), 1, S("1234567890"), 5, 2, S("can't happen"));
- test(S(""), 1, S("1234567890"), 5, 4, S("can't happen"));
- test(S(""), 1, S("1234567890"), 5, 5, S("can't happen"));
- test(S(""), 1, S("1234567890"), 5, 6, S("can't happen"));
- test(S(""), 1, S("1234567890"), 9, 0, S("can't happen"));
- test(S(""), 1, S("1234567890"), 9, 1, S("can't happen"));
- test(S(""), 1, S("1234567890"), 9, 2, S("can't happen"));
- test(S(""), 1, S("1234567890"), 10, 0, S("can't happen"));
- test(S(""), 1, S("1234567890"), 10, 1, S("can't happen"));
- test(S(""), 1, S("1234567890"), 11, 0, S("can't happen"));
- test(S(""), 1, S("12345678901234567890"), 0, 0, S("can't happen"));
- test(S(""), 1, S("12345678901234567890"), 0, 1, S("can't happen"));
- test(S(""), 1, S("12345678901234567890"), 0, 10, S("can't happen"));
- test(S(""), 1, S("12345678901234567890"), 0, 19, S("can't happen"));
- test(S(""), 1, S("12345678901234567890"), 0, 20, S("can't happen"));
- test(S(""), 1, S("12345678901234567890"), 0, 21, S("can't happen"));
- test(S(""), 1, S("12345678901234567890"), 1, 0, S("can't happen"));
- test(S(""), 1, S("12345678901234567890"), 1, 1, S("can't happen"));
- test(S(""), 1, S("12345678901234567890"), 1, 9, S("can't happen"));
- test(S(""), 1, S("12345678901234567890"), 1, 18, S("can't happen"));
- test(S(""), 1, S("12345678901234567890"), 1, 19, S("can't happen"));
- test(S(""), 1, S("12345678901234567890"), 1, 20, S("can't happen"));
- test(S(""), 1, S("12345678901234567890"), 10, 0, S("can't happen"));
- test(S(""), 1, S("12345678901234567890"), 10, 1, S("can't happen"));
- test(S(""), 1, S("12345678901234567890"), 10, 5, S("can't happen"));
- test(S(""), 1, S("12345678901234567890"), 10, 9, S("can't happen"));
- test(S(""), 1, S("12345678901234567890"), 10, 10, S("can't happen"));
- test(S(""), 1, S("12345678901234567890"), 10, 11, S("can't happen"));
- test(S(""), 1, S("12345678901234567890"), 19, 0, S("can't happen"));
- test(S(""), 1, S("12345678901234567890"), 19, 1, S("can't happen"));
- test(S(""), 1, S("12345678901234567890"), 19, 2, S("can't happen"));
- test(S(""), 1, S("12345678901234567890"), 20, 0, S("can't happen"));
- test(S(""), 1, S("12345678901234567890"), 20, 1, S("can't happen"));
- test(S(""), 1, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcde"), 0, S(""), 0, 0, S("abcde"));
- test(S("abcde"), 0, S(""), 0, 1, S("abcde"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test2() {
+ test(S(""), 1, S("1234567890"), 0, 0, S("can't happen"));
+ test(S(""), 1, S("1234567890"), 0, 1, S("can't happen"));
+ test(S(""), 1, S("1234567890"), 0, 5, S("can't happen"));
+ test(S(""), 1, S("1234567890"), 0, 9, S("can't happen"));
+ test(S(""), 1, S("1234567890"), 0, 10, S("can't happen"));
+ test(S(""), 1, S("1234567890"), 0, 11, S("can't happen"));
+ test(S(""), 1, S("1234567890"), 1, 0, S("can't happen"));
+ test(S(""), 1, S("1234567890"), 1, 1, S("can't happen"));
+ test(S(""), 1, S("1234567890"), 1, 4, S("can't happen"));
+ test(S(""), 1, S("1234567890"), 1, 8, S("can't happen"));
+ test(S(""), 1, S("1234567890"), 1, 9, S("can't happen"));
+ test(S(""), 1, S("1234567890"), 1, 10, S("can't happen"));
+ test(S(""), 1, S("1234567890"), 5, 0, S("can't happen"));
+ test(S(""), 1, S("1234567890"), 5, 1, S("can't happen"));
+ test(S(""), 1, S("1234567890"), 5, 2, S("can't happen"));
+ test(S(""), 1, S("1234567890"), 5, 4, S("can't happen"));
+ test(S(""), 1, S("1234567890"), 5, 5, S("can't happen"));
+ test(S(""), 1, S("1234567890"), 5, 6, S("can't happen"));
+ test(S(""), 1, S("1234567890"), 9, 0, S("can't happen"));
+ test(S(""), 1, S("1234567890"), 9, 1, S("can't happen"));
+ test(S(""), 1, S("1234567890"), 9, 2, S("can't happen"));
+ test(S(""), 1, S("1234567890"), 10, 0, S("can't happen"));
+ test(S(""), 1, S("1234567890"), 10, 1, S("can't happen"));
+ test(S(""), 1, S("1234567890"), 11, 0, S("can't happen"));
+ test(S(""), 1, S("12345678901234567890"), 0, 0, S("can't happen"));
+ test(S(""), 1, S("12345678901234567890"), 0, 1, S("can't happen"));
+ test(S(""), 1, S("12345678901234567890"), 0, 10, S("can't happen"));
+ test(S(""), 1, S("12345678901234567890"), 0, 19, S("can't happen"));
+ test(S(""), 1, S("12345678901234567890"), 0, 20, S("can't happen"));
+ test(S(""), 1, S("12345678901234567890"), 0, 21, S("can't happen"));
+ test(S(""), 1, S("12345678901234567890"), 1, 0, S("can't happen"));
+ test(S(""), 1, S("12345678901234567890"), 1, 1, S("can't happen"));
+ test(S(""), 1, S("12345678901234567890"), 1, 9, S("can't happen"));
+ test(S(""), 1, S("12345678901234567890"), 1, 18, S("can't happen"));
+ test(S(""), 1, S("12345678901234567890"), 1, 19, S("can't happen"));
+ test(S(""), 1, S("12345678901234567890"), 1, 20, S("can't happen"));
+ test(S(""), 1, S("12345678901234567890"), 10, 0, S("can't happen"));
+ test(S(""), 1, S("12345678901234567890"), 10, 1, S("can't happen"));
+ test(S(""), 1, S("12345678901234567890"), 10, 5, S("can't happen"));
+ test(S(""), 1, S("12345678901234567890"), 10, 9, S("can't happen"));
+ test(S(""), 1, S("12345678901234567890"), 10, 10, S("can't happen"));
+ test(S(""), 1, S("12345678901234567890"), 10, 11, S("can't happen"));
+ test(S(""), 1, S("12345678901234567890"), 19, 0, S("can't happen"));
+ test(S(""), 1, S("12345678901234567890"), 19, 1, S("can't happen"));
+ test(S(""), 1, S("12345678901234567890"), 19, 2, S("can't happen"));
+ test(S(""), 1, S("12345678901234567890"), 20, 0, S("can't happen"));
+ test(S(""), 1, S("12345678901234567890"), 20, 1, S("can't happen"));
+ test(S(""), 1, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcde"), 0, S(""), 0, 0, S("abcde"));
+ test(S("abcde"), 0, S(""), 0, 1, S("abcde"));
+
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test3()
-{
- test(S("abcde"), 0, S(""), 1, 0, S("can't happen"));
- test(S("abcde"), 0, S("12345"), 0, 0, S("abcde"));
- test(S("abcde"), 0, S("12345"), 0, 1, S("1abcde"));
- test(S("abcde"), 0, S("12345"), 0, 2, S("12abcde"));
- test(S("abcde"), 0, S("12345"), 0, 4, S("1234abcde"));
- test(S("abcde"), 0, S("12345"), 0, 5, S("12345abcde"));
- test(S("abcde"), 0, S("12345"), 0, 6, S("12345abcde"));
- test(S("abcde"), 0, S("12345"), 1, 0, S("abcde"));
- test(S("abcde"), 0, S("12345"), 1, 1, S("2abcde"));
- test(S("abcde"), 0, S("12345"), 1, 2, S("23abcde"));
- test(S("abcde"), 0, S("12345"), 1, 3, S("234abcde"));
- test(S("abcde"), 0, S("12345"), 1, 4, S("2345abcde"));
- test(S("abcde"), 0, S("12345"), 1, 5, S("2345abcde"));
- test(S("abcde"), 0, S("12345"), 2, 0, S("abcde"));
- test(S("abcde"), 0, S("12345"), 2, 1, S("3abcde"));
- test(S("abcde"), 0, S("12345"), 2, 2, S("34abcde"));
- test(S("abcde"), 0, S("12345"), 2, 3, S("345abcde"));
- test(S("abcde"), 0, S("12345"), 2, 4, S("345abcde"));
- test(S("abcde"), 0, S("12345"), 4, 0, S("abcde"));
- test(S("abcde"), 0, S("12345"), 4, 1, S("5abcde"));
- test(S("abcde"), 0, S("12345"), 4, 2, S("5abcde"));
- test(S("abcde"), 0, S("12345"), 5, 0, S("abcde"));
- test(S("abcde"), 0, S("12345"), 5, 1, S("abcde"));
- test(S("abcde"), 0, S("12345"), 6, 0, S("can't happen"));
- test(S("abcde"), 0, S("1234567890"), 0, 0, S("abcde"));
- test(S("abcde"), 0, S("1234567890"), 0, 1, S("1abcde"));
- test(S("abcde"), 0, S("1234567890"), 0, 5, S("12345abcde"));
- test(S("abcde"), 0, S("1234567890"), 0, 9, S("123456789abcde"));
- test(S("abcde"), 0, S("1234567890"), 0, 10, S("1234567890abcde"));
- test(S("abcde"), 0, S("1234567890"), 0, 11, S("1234567890abcde"));
- test(S("abcde"), 0, S("1234567890"), 1, 0, S("abcde"));
- test(S("abcde"), 0, S("1234567890"), 1, 1, S("2abcde"));
- test(S("abcde"), 0, S("1234567890"), 1, 4, S("2345abcde"));
- test(S("abcde"), 0, S("1234567890"), 1, 8, S("23456789abcde"));
- test(S("abcde"), 0, S("1234567890"), 1, 9, S("234567890abcde"));
- test(S("abcde"), 0, S("1234567890"), 1, 10, S("234567890abcde"));
- test(S("abcde"), 0, S("1234567890"), 5, 0, S("abcde"));
- test(S("abcde"), 0, S("1234567890"), 5, 1, S("6abcde"));
- test(S("abcde"), 0, S("1234567890"), 5, 2, S("67abcde"));
- test(S("abcde"), 0, S("1234567890"), 5, 4, S("6789abcde"));
- test(S("abcde"), 0, S("1234567890"), 5, 5, S("67890abcde"));
- test(S("abcde"), 0, S("1234567890"), 5, 6, S("67890abcde"));
- test(S("abcde"), 0, S("1234567890"), 9, 0, S("abcde"));
- test(S("abcde"), 0, S("1234567890"), 9, 1, S("0abcde"));
- test(S("abcde"), 0, S("1234567890"), 9, 2, S("0abcde"));
- test(S("abcde"), 0, S("1234567890"), 10, 0, S("abcde"));
- test(S("abcde"), 0, S("1234567890"), 10, 1, S("abcde"));
- test(S("abcde"), 0, S("1234567890"), 11, 0, S("can't happen"));
- test(S("abcde"), 0, S("12345678901234567890"), 0, 0, S("abcde"));
- test(S("abcde"), 0, S("12345678901234567890"), 0, 1, S("1abcde"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test3() {
+ test(S("abcde"), 0, S(""), 1, 0, S("can't happen"));
+ test(S("abcde"), 0, S("12345"), 0, 0, S("abcde"));
+ test(S("abcde"), 0, S("12345"), 0, 1, S("1abcde"));
+ test(S("abcde"), 0, S("12345"), 0, 2, S("12abcde"));
+ test(S("abcde"), 0, S("12345"), 0, 4, S("1234abcde"));
+ test(S("abcde"), 0, S("12345"), 0, 5, S("12345abcde"));
+ test(S("abcde"), 0, S("12345"), 0, 6, S("12345abcde"));
+ test(S("abcde"), 0, S("12345"), 1, 0, S("abcde"));
+ test(S("abcde"), 0, S("12345"), 1, 1, S("2abcde"));
+ test(S("abcde"), 0, S("12345"), 1, 2, S("23abcde"));
+ test(S("abcde"), 0, S("12345"), 1, 3, S("234abcde"));
+ test(S("abcde"), 0, S("12345"), 1, 4, S("2345abcde"));
+ test(S("abcde"), 0, S("12345"), 1, 5, S("2345abcde"));
+ test(S("abcde"), 0, S("12345"), 2, 0, S("abcde"));
+ test(S("abcde"), 0, S("12345"), 2, 1, S("3abcde"));
+ test(S("abcde"), 0, S("12345"), 2, 2, S("34abcde"));
+ test(S("abcde"), 0, S("12345"), 2, 3, S("345abcde"));
+ test(S("abcde"), 0, S("12345"), 2, 4, S("345abcde"));
+ test(S("abcde"), 0, S("12345"), 4, 0, S("abcde"));
+ test(S("abcde"), 0, S("12345"), 4, 1, S("5abcde"));
+ test(S("abcde"), 0, S("12345"), 4, 2, S("5abcde"));
+ test(S("abcde"), 0, S("12345"), 5, 0, S("abcde"));
+ test(S("abcde"), 0, S("12345"), 5, 1, S("abcde"));
+ test(S("abcde"), 0, S("12345"), 6, 0, S("can't happen"));
+ test(S("abcde"), 0, S("1234567890"), 0, 0, S("abcde"));
+ test(S("abcde"), 0, S("1234567890"), 0, 1, S("1abcde"));
+ test(S("abcde"), 0, S("1234567890"), 0, 5, S("12345abcde"));
+ test(S("abcde"), 0, S("1234567890"), 0, 9, S("123456789abcde"));
+ test(S("abcde"), 0, S("1234567890"), 0, 10, S("1234567890abcde"));
+ test(S("abcde"), 0, S("1234567890"), 0, 11, S("1234567890abcde"));
+ test(S("abcde"), 0, S("1234567890"), 1, 0, S("abcde"));
+ test(S("abcde"), 0, S("1234567890"), 1, 1, S("2abcde"));
+ test(S("abcde"), 0, S("1234567890"), 1, 4, S("2345abcde"));
+ test(S("abcde"), 0, S("1234567890"), 1, 8, S("23456789abcde"));
+ test(S("abcde"), 0, S("1234567890"), 1, 9, S("234567890abcde"));
+ test(S("abcde"), 0, S("1234567890"), 1, 10, S("234567890abcde"));
+ test(S("abcde"), 0, S("1234567890"), 5, 0, S("abcde"));
+ test(S("abcde"), 0, S("1234567890"), 5, 1, S("6abcde"));
+ test(S("abcde"), 0, S("1234567890"), 5, 2, S("67abcde"));
+ test(S("abcde"), 0, S("1234567890"), 5, 4, S("6789abcde"));
+ test(S("abcde"), 0, S("1234567890"), 5, 5, S("67890abcde"));
+ test(S("abcde"), 0, S("1234567890"), 5, 6, S("67890abcde"));
+ test(S("abcde"), 0, S("1234567890"), 9, 0, S("abcde"));
+ test(S("abcde"), 0, S("1234567890"), 9, 1, S("0abcde"));
+ test(S("abcde"), 0, S("1234567890"), 9, 2, S("0abcde"));
+ test(S("abcde"), 0, S("1234567890"), 10, 0, S("abcde"));
+ test(S("abcde"), 0, S("1234567890"), 10, 1, S("abcde"));
+ test(S("abcde"), 0, S("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcde"), 0, S("12345678901234567890"), 0, 0, S("abcde"));
+ test(S("abcde"), 0, S("12345678901234567890"), 0, 1, S("1abcde"));
+
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test4()
-{
- test(S("abcde"), 0, S("12345678901234567890"), 0, 10, S("1234567890abcde"));
- test(S("abcde"), 0, S("12345678901234567890"), 0, 19, S("1234567890123456789abcde"));
- test(S("abcde"), 0, S("12345678901234567890"), 0, 20, S("12345678901234567890abcde"));
- test(S("abcde"), 0, S("12345678901234567890"), 0, 21, S("12345678901234567890abcde"));
- test(S("abcde"), 0, S("12345678901234567890"), 1, 0, S("abcde"));
- test(S("abcde"), 0, S("12345678901234567890"), 1, 1, S("2abcde"));
- test(S("abcde"), 0, S("12345678901234567890"), 1, 9, S("234567890abcde"));
- test(S("abcde"), 0, S("12345678901234567890"), 1, 18, S("234567890123456789abcde"));
- test(S("abcde"), 0, S("12345678901234567890"), 1, 19, S("2345678901234567890abcde"));
- test(S("abcde"), 0, S("12345678901234567890"), 1, 20, S("2345678901234567890abcde"));
- test(S("abcde"), 0, S("12345678901234567890"), 10, 0, S("abcde"));
- test(S("abcde"), 0, S("12345678901234567890"), 10, 1, S("1abcde"));
- test(S("abcde"), 0, S("12345678901234567890"), 10, 5, S("12345abcde"));
- test(S("abcde"), 0, S("12345678901234567890"), 10, 9, S("123456789abcde"));
- test(S("abcde"), 0, S("12345678901234567890"), 10, 10, S("1234567890abcde"));
- test(S("abcde"), 0, S("12345678901234567890"), 10, 11, S("1234567890abcde"));
- test(S("abcde"), 0, S("12345678901234567890"), 19, 0, S("abcde"));
- test(S("abcde"), 0, S("12345678901234567890"), 19, 1, S("0abcde"));
- test(S("abcde"), 0, S("12345678901234567890"), 19, 2, S("0abcde"));
- test(S("abcde"), 0, S("12345678901234567890"), 20, 0, S("abcde"));
- test(S("abcde"), 0, S("12345678901234567890"), 20, 1, S("abcde"));
- test(S("abcde"), 0, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcde"), 1, S(""), 0, 0, S("abcde"));
- test(S("abcde"), 1, S(""), 0, 1, S("abcde"));
- test(S("abcde"), 1, S(""), 1, 0, S("can't happen"));
- test(S("abcde"), 1, S("12345"), 0, 0, S("abcde"));
- test(S("abcde"), 1, S("12345"), 0, 1, S("a1bcde"));
- test(S("abcde"), 1, S("12345"), 0, 2, S("a12bcde"));
- test(S("abcde"), 1, S("12345"), 0, 4, S("a1234bcde"));
- test(S("abcde"), 1, S("12345"), 0, 5, S("a12345bcde"));
- test(S("abcde"), 1, S("12345"), 0, 6, S("a12345bcde"));
- test(S("abcde"), 1, S("12345"), 1, 0, S("abcde"));
- test(S("abcde"), 1, S("12345"), 1, 1, S("a2bcde"));
- test(S("abcde"), 1, S("12345"), 1, 2, S("a23bcde"));
- test(S("abcde"), 1, S("12345"), 1, 3, S("a234bcde"));
- test(S("abcde"), 1, S("12345"), 1, 4, S("a2345bcde"));
- test(S("abcde"), 1, S("12345"), 1, 5, S("a2345bcde"));
- test(S("abcde"), 1, S("12345"), 2, 0, S("abcde"));
- test(S("abcde"), 1, S("12345"), 2, 1, S("a3bcde"));
- test(S("abcde"), 1, S("12345"), 2, 2, S("a34bcde"));
- test(S("abcde"), 1, S("12345"), 2, 3, S("a345bcde"));
- test(S("abcde"), 1, S("12345"), 2, 4, S("a345bcde"));
- test(S("abcde"), 1, S("12345"), 4, 0, S("abcde"));
- test(S("abcde"), 1, S("12345"), 4, 1, S("a5bcde"));
- test(S("abcde"), 1, S("12345"), 4, 2, S("a5bcde"));
- test(S("abcde"), 1, S("12345"), 5, 0, S("abcde"));
- test(S("abcde"), 1, S("12345"), 5, 1, S("abcde"));
- test(S("abcde"), 1, S("12345"), 6, 0, S("can't happen"));
- test(S("abcde"), 1, S("1234567890"), 0, 0, S("abcde"));
- test(S("abcde"), 1, S("1234567890"), 0, 1, S("a1bcde"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test4() {
+ test(S("abcde"), 0, S("12345678901234567890"), 0, 10, S("1234567890abcde"));
+ test(S("abcde"), 0, S("12345678901234567890"), 0, 19, S("1234567890123456789abcde"));
+ test(S("abcde"), 0, S("12345678901234567890"), 0, 20, S("12345678901234567890abcde"));
+ test(S("abcde"), 0, S("12345678901234567890"), 0, 21, S("12345678901234567890abcde"));
+ test(S("abcde"), 0, S("12345678901234567890"), 1, 0, S("abcde"));
+ test(S("abcde"), 0, S("12345678901234567890"), 1, 1, S("2abcde"));
+ test(S("abcde"), 0, S("12345678901234567890"), 1, 9, S("234567890abcde"));
+ test(S("abcde"), 0, S("12345678901234567890"), 1, 18, S("234567890123456789abcde"));
+ test(S("abcde"), 0, S("12345678901234567890"), 1, 19, S("2345678901234567890abcde"));
+ test(S("abcde"), 0, S("12345678901234567890"), 1, 20, S("2345678901234567890abcde"));
+ test(S("abcde"), 0, S("12345678901234567890"), 10, 0, S("abcde"));
+ test(S("abcde"), 0, S("12345678901234567890"), 10, 1, S("1abcde"));
+ test(S("abcde"), 0, S("12345678901234567890"), 10, 5, S("12345abcde"));
+ test(S("abcde"), 0, S("12345678901234567890"), 10, 9, S("123456789abcde"));
+ test(S("abcde"), 0, S("12345678901234567890"), 10, 10, S("1234567890abcde"));
+ test(S("abcde"), 0, S("12345678901234567890"), 10, 11, S("1234567890abcde"));
+ test(S("abcde"), 0, S("12345678901234567890"), 19, 0, S("abcde"));
+ test(S("abcde"), 0, S("12345678901234567890"), 19, 1, S("0abcde"));
+ test(S("abcde"), 0, S("12345678901234567890"), 19, 2, S("0abcde"));
+ test(S("abcde"), 0, S("12345678901234567890"), 20, 0, S("abcde"));
+ test(S("abcde"), 0, S("12345678901234567890"), 20, 1, S("abcde"));
+ test(S("abcde"), 0, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcde"), 1, S(""), 0, 0, S("abcde"));
+ test(S("abcde"), 1, S(""), 0, 1, S("abcde"));
+ test(S("abcde"), 1, S(""), 1, 0, S("can't happen"));
+ test(S("abcde"), 1, S("12345"), 0, 0, S("abcde"));
+ test(S("abcde"), 1, S("12345"), 0, 1, S("a1bcde"));
+ test(S("abcde"), 1, S("12345"), 0, 2, S("a12bcde"));
+ test(S("abcde"), 1, S("12345"), 0, 4, S("a1234bcde"));
+ test(S("abcde"), 1, S("12345"), 0, 5, S("a12345bcde"));
+ test(S("abcde"), 1, S("12345"), 0, 6, S("a12345bcde"));
+ test(S("abcde"), 1, S("12345"), 1, 0, S("abcde"));
+ test(S("abcde"), 1, S("12345"), 1, 1, S("a2bcde"));
+ test(S("abcde"), 1, S("12345"), 1, 2, S("a23bcde"));
+ test(S("abcde"), 1, S("12345"), 1, 3, S("a234bcde"));
+ test(S("abcde"), 1, S("12345"), 1, 4, S("a2345bcde"));
+ test(S("abcde"), 1, S("12345"), 1, 5, S("a2345bcde"));
+ test(S("abcde"), 1, S("12345"), 2, 0, S("abcde"));
+ test(S("abcde"), 1, S("12345"), 2, 1, S("a3bcde"));
+ test(S("abcde"), 1, S("12345"), 2, 2, S("a34bcde"));
+ test(S("abcde"), 1, S("12345"), 2, 3, S("a345bcde"));
+ test(S("abcde"), 1, S("12345"), 2, 4, S("a345bcde"));
+ test(S("abcde"), 1, S("12345"), 4, 0, S("abcde"));
+ test(S("abcde"), 1, S("12345"), 4, 1, S("a5bcde"));
+ test(S("abcde"), 1, S("12345"), 4, 2, S("a5bcde"));
+ test(S("abcde"), 1, S("12345"), 5, 0, S("abcde"));
+ test(S("abcde"), 1, S("12345"), 5, 1, S("abcde"));
+ test(S("abcde"), 1, S("12345"), 6, 0, S("can't happen"));
+ test(S("abcde"), 1, S("1234567890"), 0, 0, S("abcde"));
+ test(S("abcde"), 1, S("1234567890"), 0, 1, S("a1bcde"));
+
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test5()
-{
- test(S("abcde"), 1, S("1234567890"), 0, 5, S("a12345bcde"));
- test(S("abcde"), 1, S("1234567890"), 0, 9, S("a123456789bcde"));
- test(S("abcde"), 1, S("1234567890"), 0, 10, S("a1234567890bcde"));
- test(S("abcde"), 1, S("1234567890"), 0, 11, S("a1234567890bcde"));
- test(S("abcde"), 1, S("1234567890"), 1, 0, S("abcde"));
- test(S("abcde"), 1, S("1234567890"), 1, 1, S("a2bcde"));
- test(S("abcde"), 1, S("1234567890"), 1, 4, S("a2345bcde"));
- test(S("abcde"), 1, S("1234567890"), 1, 8, S("a23456789bcde"));
- test(S("abcde"), 1, S("1234567890"), 1, 9, S("a234567890bcde"));
- test(S("abcde"), 1, S("1234567890"), 1, 10, S("a234567890bcde"));
- test(S("abcde"), 1, S("1234567890"), 5, 0, S("abcde"));
- test(S("abcde"), 1, S("1234567890"), 5, 1, S("a6bcde"));
- test(S("abcde"), 1, S("1234567890"), 5, 2, S("a67bcde"));
- test(S("abcde"), 1, S("1234567890"), 5, 4, S("a6789bcde"));
- test(S("abcde"), 1, S("1234567890"), 5, 5, S("a67890bcde"));
- test(S("abcde"), 1, S("1234567890"), 5, 6, S("a67890bcde"));
- test(S("abcde"), 1, S("1234567890"), 9, 0, S("abcde"));
- test(S("abcde"), 1, S("1234567890"), 9, 1, S("a0bcde"));
- test(S("abcde"), 1, S("1234567890"), 9, 2, S("a0bcde"));
- test(S("abcde"), 1, S("1234567890"), 10, 0, S("abcde"));
- test(S("abcde"), 1, S("1234567890"), 10, 1, S("abcde"));
- test(S("abcde"), 1, S("1234567890"), 11, 0, S("can't happen"));
- test(S("abcde"), 1, S("12345678901234567890"), 0, 0, S("abcde"));
- test(S("abcde"), 1, S("12345678901234567890"), 0, 1, S("a1bcde"));
- test(S("abcde"), 1, S("12345678901234567890"), 0, 10, S("a1234567890bcde"));
- test(S("abcde"), 1, S("12345678901234567890"), 0, 19, S("a1234567890123456789bcde"));
- test(S("abcde"), 1, S("12345678901234567890"), 0, 20, S("a12345678901234567890bcde"));
- test(S("abcde"), 1, S("12345678901234567890"), 0, 21, S("a12345678901234567890bcde"));
- test(S("abcde"), 1, S("12345678901234567890"), 1, 0, S("abcde"));
- test(S("abcde"), 1, S("12345678901234567890"), 1, 1, S("a2bcde"));
- test(S("abcde"), 1, S("12345678901234567890"), 1, 9, S("a234567890bcde"));
- test(S("abcde"), 1, S("12345678901234567890"), 1, 18, S("a234567890123456789bcde"));
- test(S("abcde"), 1, S("12345678901234567890"), 1, 19, S("a2345678901234567890bcde"));
- test(S("abcde"), 1, S("12345678901234567890"), 1, 20, S("a2345678901234567890bcde"));
- test(S("abcde"), 1, S("12345678901234567890"), 10, 0, S("abcde"));
- test(S("abcde"), 1, S("12345678901234567890"), 10, 1, S("a1bcde"));
- test(S("abcde"), 1, S("12345678901234567890"), 10, 5, S("a12345bcde"));
- test(S("abcde"), 1, S("12345678901234567890"), 10, 9, S("a123456789bcde"));
- test(S("abcde"), 1, S("12345678901234567890"), 10, 10, S("a1234567890bcde"));
- test(S("abcde"), 1, S("12345678901234567890"), 10, 11, S("a1234567890bcde"));
- test(S("abcde"), 1, S("12345678901234567890"), 19, 0, S("abcde"));
- test(S("abcde"), 1, S("12345678901234567890"), 19, 1, S("a0bcde"));
- test(S("abcde"), 1, S("12345678901234567890"), 19, 2, S("a0bcde"));
- test(S("abcde"), 1, S("12345678901234567890"), 20, 0, S("abcde"));
- test(S("abcde"), 1, S("12345678901234567890"), 20, 1, S("abcde"));
- test(S("abcde"), 1, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcde"), 2, S(""), 0, 0, S("abcde"));
- test(S("abcde"), 2, S(""), 0, 1, S("abcde"));
- test(S("abcde"), 2, S(""), 1, 0, S("can't happen"));
- test(S("abcde"), 2, S("12345"), 0, 0, S("abcde"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test5() {
+ test(S("abcde"), 1, S("1234567890"), 0, 5, S("a12345bcde"));
+ test(S("abcde"), 1, S("1234567890"), 0, 9, S("a123456789bcde"));
+ test(S("abcde"), 1, S("1234567890"), 0, 10, S("a1234567890bcde"));
+ test(S("abcde"), 1, S("1234567890"), 0, 11, S("a1234567890bcde"));
+ test(S("abcde"), 1, S("1234567890"), 1, 0, S("abcde"));
+ test(S("abcde"), 1, S("1234567890"), 1, 1, S("a2bcde"));
+ test(S("abcde"), 1, S("1234567890"), 1, 4, S("a2345bcde"));
+ test(S("abcde"), 1, S("1234567890"), 1, 8, S("a23456789bcde"));
+ test(S("abcde"), 1, S("1234567890"), 1, 9, S("a234567890bcde"));
+ test(S("abcde"), 1, S("1234567890"), 1, 10, S("a234567890bcde"));
+ test(S("abcde"), 1, S("1234567890"), 5, 0, S("abcde"));
+ test(S("abcde"), 1, S("1234567890"), 5, 1, S("a6bcde"));
+ test(S("abcde"), 1, S("1234567890"), 5, 2, S("a67bcde"));
+ test(S("abcde"), 1, S("1234567890"), 5, 4, S("a6789bcde"));
+ test(S("abcde"), 1, S("1234567890"), 5, 5, S("a67890bcde"));
+ test(S("abcde"), 1, S("1234567890"), 5, 6, S("a67890bcde"));
+ test(S("abcde"), 1, S("1234567890"), 9, 0, S("abcde"));
+ test(S("abcde"), 1, S("1234567890"), 9, 1, S("a0bcde"));
+ test(S("abcde"), 1, S("1234567890"), 9, 2, S("a0bcde"));
+ test(S("abcde"), 1, S("1234567890"), 10, 0, S("abcde"));
+ test(S("abcde"), 1, S("1234567890"), 10, 1, S("abcde"));
+ test(S("abcde"), 1, S("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcde"), 1, S("12345678901234567890"), 0, 0, S("abcde"));
+ test(S("abcde"), 1, S("12345678901234567890"), 0, 1, S("a1bcde"));
+ test(S("abcde"), 1, S("12345678901234567890"), 0, 10, S("a1234567890bcde"));
+ test(S("abcde"), 1, S("12345678901234567890"), 0, 19, S("a1234567890123456789bcde"));
+ test(S("abcde"), 1, S("12345678901234567890"), 0, 20, S("a12345678901234567890bcde"));
+ test(S("abcde"), 1, S("12345678901234567890"), 0, 21, S("a12345678901234567890bcde"));
+ test(S("abcde"), 1, S("12345678901234567890"), 1, 0, S("abcde"));
+ test(S("abcde"), 1, S("12345678901234567890"), 1, 1, S("a2bcde"));
+ test(S("abcde"), 1, S("12345678901234567890"), 1, 9, S("a234567890bcde"));
+ test(S("abcde"), 1, S("12345678901234567890"), 1, 18, S("a234567890123456789bcde"));
+ test(S("abcde"), 1, S("12345678901234567890"), 1, 19, S("a2345678901234567890bcde"));
+ test(S("abcde"), 1, S("12345678901234567890"), 1, 20, S("a2345678901234567890bcde"));
+ test(S("abcde"), 1, S("12345678901234567890"), 10, 0, S("abcde"));
+ test(S("abcde"), 1, S("12345678901234567890"), 10, 1, S("a1bcde"));
+ test(S("abcde"), 1, S("12345678901234567890"), 10, 5, S("a12345bcde"));
+ test(S("abcde"), 1, S("12345678901234567890"), 10, 9, S("a123456789bcde"));
+ test(S("abcde"), 1, S("12345678901234567890"), 10, 10, S("a1234567890bcde"));
+ test(S("abcde"), 1, S("12345678901234567890"), 10, 11, S("a1234567890bcde"));
+ test(S("abcde"), 1, S("12345678901234567890"), 19, 0, S("abcde"));
+ test(S("abcde"), 1, S("12345678901234567890"), 19, 1, S("a0bcde"));
+ test(S("abcde"), 1, S("12345678901234567890"), 19, 2, S("a0bcde"));
+ test(S("abcde"), 1, S("12345678901234567890"), 20, 0, S("abcde"));
+ test(S("abcde"), 1, S("12345678901234567890"), 20, 1, S("abcde"));
+ test(S("abcde"), 1, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcde"), 2, S(""), 0, 0, S("abcde"));
+ test(S("abcde"), 2, S(""), 0, 1, S("abcde"));
+ test(S("abcde"), 2, S(""), 1, 0, S("can't happen"));
+ test(S("abcde"), 2, S("12345"), 0, 0, S("abcde"));
+
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test6()
-{
- test(S("abcde"), 2, S("12345"), 0, 1, S("ab1cde"));
- test(S("abcde"), 2, S("12345"), 0, 2, S("ab12cde"));
- test(S("abcde"), 2, S("12345"), 0, 4, S("ab1234cde"));
- test(S("abcde"), 2, S("12345"), 0, 5, S("ab12345cde"));
- test(S("abcde"), 2, S("12345"), 0, 6, S("ab12345cde"));
- test(S("abcde"), 2, S("12345"), 1, 0, S("abcde"));
- test(S("abcde"), 2, S("12345"), 1, 1, S("ab2cde"));
- test(S("abcde"), 2, S("12345"), 1, 2, S("ab23cde"));
- test(S("abcde"), 2, S("12345"), 1, 3, S("ab234cde"));
- test(S("abcde"), 2, S("12345"), 1, 4, S("ab2345cde"));
- test(S("abcde"), 2, S("12345"), 1, 5, S("ab2345cde"));
- test(S("abcde"), 2, S("12345"), 2, 0, S("abcde"));
- test(S("abcde"), 2, S("12345"), 2, 1, S("ab3cde"));
- test(S("abcde"), 2, S("12345"), 2, 2, S("ab34cde"));
- test(S("abcde"), 2, S("12345"), 2, 3, S("ab345cde"));
- test(S("abcde"), 2, S("12345"), 2, 4, S("ab345cde"));
- test(S("abcde"), 2, S("12345"), 4, 0, S("abcde"));
- test(S("abcde"), 2, S("12345"), 4, 1, S("ab5cde"));
- test(S("abcde"), 2, S("12345"), 4, 2, S("ab5cde"));
- test(S("abcde"), 2, S("12345"), 5, 0, S("abcde"));
- test(S("abcde"), 2, S("12345"), 5, 1, S("abcde"));
- test(S("abcde"), 2, S("12345"), 6, 0, S("can't happen"));
- test(S("abcde"), 2, S("1234567890"), 0, 0, S("abcde"));
- test(S("abcde"), 2, S("1234567890"), 0, 1, S("ab1cde"));
- test(S("abcde"), 2, S("1234567890"), 0, 5, S("ab12345cde"));
- test(S("abcde"), 2, S("1234567890"), 0, 9, S("ab123456789cde"));
- test(S("abcde"), 2, S("1234567890"), 0, 10, S("ab1234567890cde"));
- test(S("abcde"), 2, S("1234567890"), 0, 11, S("ab1234567890cde"));
- test(S("abcde"), 2, S("1234567890"), 1, 0, S("abcde"));
- test(S("abcde"), 2, S("1234567890"), 1, 1, S("ab2cde"));
- test(S("abcde"), 2, S("1234567890"), 1, 4, S("ab2345cde"));
- test(S("abcde"), 2, S("1234567890"), 1, 8, S("ab23456789cde"));
- test(S("abcde"), 2, S("1234567890"), 1, 9, S("ab234567890cde"));
- test(S("abcde"), 2, S("1234567890"), 1, 10, S("ab234567890cde"));
- test(S("abcde"), 2, S("1234567890"), 5, 0, S("abcde"));
- test(S("abcde"), 2, S("1234567890"), 5, 1, S("ab6cde"));
- test(S("abcde"), 2, S("1234567890"), 5, 2, S("ab67cde"));
- test(S("abcde"), 2, S("1234567890"), 5, 4, S("ab6789cde"));
- test(S("abcde"), 2, S("1234567890"), 5, 5, S("ab67890cde"));
- test(S("abcde"), 2, S("1234567890"), 5, 6, S("ab67890cde"));
- test(S("abcde"), 2, S("1234567890"), 9, 0, S("abcde"));
- test(S("abcde"), 2, S("1234567890"), 9, 1, S("ab0cde"));
- test(S("abcde"), 2, S("1234567890"), 9, 2, S("ab0cde"));
- test(S("abcde"), 2, S("1234567890"), 10, 0, S("abcde"));
- test(S("abcde"), 2, S("1234567890"), 10, 1, S("abcde"));
- test(S("abcde"), 2, S("1234567890"), 11, 0, S("can't happen"));
- test(S("abcde"), 2, S("12345678901234567890"), 0, 0, S("abcde"));
- test(S("abcde"), 2, S("12345678901234567890"), 0, 1, S("ab1cde"));
- test(S("abcde"), 2, S("12345678901234567890"), 0, 10, S("ab1234567890cde"));
- test(S("abcde"), 2, S("12345678901234567890"), 0, 19, S("ab1234567890123456789cde"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test6() {
+ test(S("abcde"), 2, S("12345"), 0, 1, S("ab1cde"));
+ test(S("abcde"), 2, S("12345"), 0, 2, S("ab12cde"));
+ test(S("abcde"), 2, S("12345"), 0, 4, S("ab1234cde"));
+ test(S("abcde"), 2, S("12345"), 0, 5, S("ab12345cde"));
+ test(S("abcde"), 2, S("12345"), 0, 6, S("ab12345cde"));
+ test(S("abcde"), 2, S("12345"), 1, 0, S("abcde"));
+ test(S("abcde"), 2, S("12345"), 1, 1, S("ab2cde"));
+ test(S("abcde"), 2, S("12345"), 1, 2, S("ab23cde"));
+ test(S("abcde"), 2, S("12345"), 1, 3, S("ab234cde"));
+ test(S("abcde"), 2, S("12345"), 1, 4, S("ab2345cde"));
+ test(S("abcde"), 2, S("12345"), 1, 5, S("ab2345cde"));
+ test(S("abcde"), 2, S("12345"), 2, 0, S("abcde"));
+ test(S("abcde"), 2, S("12345"), 2, 1, S("ab3cde"));
+ test(S("abcde"), 2, S("12345"), 2, 2, S("ab34cde"));
+ test(S("abcde"), 2, S("12345"), 2, 3, S("ab345cde"));
+ test(S("abcde"), 2, S("12345"), 2, 4, S("ab345cde"));
+ test(S("abcde"), 2, S("12345"), 4, 0, S("abcde"));
+ test(S("abcde"), 2, S("12345"), 4, 1, S("ab5cde"));
+ test(S("abcde"), 2, S("12345"), 4, 2, S("ab5cde"));
+ test(S("abcde"), 2, S("12345"), 5, 0, S("abcde"));
+ test(S("abcde"), 2, S("12345"), 5, 1, S("abcde"));
+ test(S("abcde"), 2, S("12345"), 6, 0, S("can't happen"));
+ test(S("abcde"), 2, S("1234567890"), 0, 0, S("abcde"));
+ test(S("abcde"), 2, S("1234567890"), 0, 1, S("ab1cde"));
+ test(S("abcde"), 2, S("1234567890"), 0, 5, S("ab12345cde"));
+ test(S("abcde"), 2, S("1234567890"), 0, 9, S("ab123456789cde"));
+ test(S("abcde"), 2, S("1234567890"), 0, 10, S("ab1234567890cde"));
+ test(S("abcde"), 2, S("1234567890"), 0, 11, S("ab1234567890cde"));
+ test(S("abcde"), 2, S("1234567890"), 1, 0, S("abcde"));
+ test(S("abcde"), 2, S("1234567890"), 1, 1, S("ab2cde"));
+ test(S("abcde"), 2, S("1234567890"), 1, 4, S("ab2345cde"));
+ test(S("abcde"), 2, S("1234567890"), 1, 8, S("ab23456789cde"));
+ test(S("abcde"), 2, S("1234567890"), 1, 9, S("ab234567890cde"));
+ test(S("abcde"), 2, S("1234567890"), 1, 10, S("ab234567890cde"));
+ test(S("abcde"), 2, S("1234567890"), 5, 0, S("abcde"));
+ test(S("abcde"), 2, S("1234567890"), 5, 1, S("ab6cde"));
+ test(S("abcde"), 2, S("1234567890"), 5, 2, S("ab67cde"));
+ test(S("abcde"), 2, S("1234567890"), 5, 4, S("ab6789cde"));
+ test(S("abcde"), 2, S("1234567890"), 5, 5, S("ab67890cde"));
+ test(S("abcde"), 2, S("1234567890"), 5, 6, S("ab67890cde"));
+ test(S("abcde"), 2, S("1234567890"), 9, 0, S("abcde"));
+ test(S("abcde"), 2, S("1234567890"), 9, 1, S("ab0cde"));
+ test(S("abcde"), 2, S("1234567890"), 9, 2, S("ab0cde"));
+ test(S("abcde"), 2, S("1234567890"), 10, 0, S("abcde"));
+ test(S("abcde"), 2, S("1234567890"), 10, 1, S("abcde"));
+ test(S("abcde"), 2, S("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcde"), 2, S("12345678901234567890"), 0, 0, S("abcde"));
+ test(S("abcde"), 2, S("12345678901234567890"), 0, 1, S("ab1cde"));
+ test(S("abcde"), 2, S("12345678901234567890"), 0, 10, S("ab1234567890cde"));
+ test(S("abcde"), 2, S("12345678901234567890"), 0, 19, S("ab1234567890123456789cde"));
+
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test7()
-{
- test(S("abcde"), 2, S("12345678901234567890"), 0, 20, S("ab12345678901234567890cde"));
- test(S("abcde"), 2, S("12345678901234567890"), 0, 21, S("ab12345678901234567890cde"));
- test(S("abcde"), 2, S("12345678901234567890"), 1, 0, S("abcde"));
- test(S("abcde"), 2, S("12345678901234567890"), 1, 1, S("ab2cde"));
- test(S("abcde"), 2, S("12345678901234567890"), 1, 9, S("ab234567890cde"));
- test(S("abcde"), 2, S("12345678901234567890"), 1, 18, S("ab234567890123456789cde"));
- test(S("abcde"), 2, S("12345678901234567890"), 1, 19, S("ab2345678901234567890cde"));
- test(S("abcde"), 2, S("12345678901234567890"), 1, 20, S("ab2345678901234567890cde"));
- test(S("abcde"), 2, S("12345678901234567890"), 10, 0, S("abcde"));
- test(S("abcde"), 2, S("12345678901234567890"), 10, 1, S("ab1cde"));
- test(S("abcde"), 2, S("12345678901234567890"), 10, 5, S("ab12345cde"));
- test(S("abcde"), 2, S("12345678901234567890"), 10, 9, S("ab123456789cde"));
- test(S("abcde"), 2, S("12345678901234567890"), 10, 10, S("ab1234567890cde"));
- test(S("abcde"), 2, S("12345678901234567890"), 10, 11, S("ab1234567890cde"));
- test(S("abcde"), 2, S("12345678901234567890"), 19, 0, S("abcde"));
- test(S("abcde"), 2, S("12345678901234567890"), 19, 1, S("ab0cde"));
- test(S("abcde"), 2, S("12345678901234567890"), 19, 2, S("ab0cde"));
- test(S("abcde"), 2, S("12345678901234567890"), 20, 0, S("abcde"));
- test(S("abcde"), 2, S("12345678901234567890"), 20, 1, S("abcde"));
- test(S("abcde"), 2, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcde"), 4, S(""), 0, 0, S("abcde"));
- test(S("abcde"), 4, S(""), 0, 1, S("abcde"));
- test(S("abcde"), 4, S(""), 1, 0, S("can't happen"));
- test(S("abcde"), 4, S("12345"), 0, 0, S("abcde"));
- test(S("abcde"), 4, S("12345"), 0, 1, S("abcd1e"));
- test(S("abcde"), 4, S("12345"), 0, 2, S("abcd12e"));
- test(S("abcde"), 4, S("12345"), 0, 4, S("abcd1234e"));
- test(S("abcde"), 4, S("12345"), 0, 5, S("abcd12345e"));
- test(S("abcde"), 4, S("12345"), 0, 6, S("abcd12345e"));
- test(S("abcde"), 4, S("12345"), 1, 0, S("abcde"));
- test(S("abcde"), 4, S("12345"), 1, 1, S("abcd2e"));
- test(S("abcde"), 4, S("12345"), 1, 2, S("abcd23e"));
- test(S("abcde"), 4, S("12345"), 1, 3, S("abcd234e"));
- test(S("abcde"), 4, S("12345"), 1, 4, S("abcd2345e"));
- test(S("abcde"), 4, S("12345"), 1, 5, S("abcd2345e"));
- test(S("abcde"), 4, S("12345"), 2, 0, S("abcde"));
- test(S("abcde"), 4, S("12345"), 2, 1, S("abcd3e"));
- test(S("abcde"), 4, S("12345"), 2, 2, S("abcd34e"));
- test(S("abcde"), 4, S("12345"), 2, 3, S("abcd345e"));
- test(S("abcde"), 4, S("12345"), 2, 4, S("abcd345e"));
- test(S("abcde"), 4, S("12345"), 4, 0, S("abcde"));
- test(S("abcde"), 4, S("12345"), 4, 1, S("abcd5e"));
- test(S("abcde"), 4, S("12345"), 4, 2, S("abcd5e"));
- test(S("abcde"), 4, S("12345"), 5, 0, S("abcde"));
- test(S("abcde"), 4, S("12345"), 5, 1, S("abcde"));
- test(S("abcde"), 4, S("12345"), 6, 0, S("can't happen"));
- test(S("abcde"), 4, S("1234567890"), 0, 0, S("abcde"));
- test(S("abcde"), 4, S("1234567890"), 0, 1, S("abcd1e"));
- test(S("abcde"), 4, S("1234567890"), 0, 5, S("abcd12345e"));
- test(S("abcde"), 4, S("1234567890"), 0, 9, S("abcd123456789e"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test7() {
+ test(S("abcde"), 2, S("12345678901234567890"), 0, 20, S("ab12345678901234567890cde"));
+ test(S("abcde"), 2, S("12345678901234567890"), 0, 21, S("ab12345678901234567890cde"));
+ test(S("abcde"), 2, S("12345678901234567890"), 1, 0, S("abcde"));
+ test(S("abcde"), 2, S("12345678901234567890"), 1, 1, S("ab2cde"));
+ test(S("abcde"), 2, S("12345678901234567890"), 1, 9, S("ab234567890cde"));
+ test(S("abcde"), 2, S("12345678901234567890"), 1, 18, S("ab234567890123456789cde"));
+ test(S("abcde"), 2, S("12345678901234567890"), 1, 19, S("ab2345678901234567890cde"));
+ test(S("abcde"), 2, S("12345678901234567890"), 1, 20, S("ab2345678901234567890cde"));
+ test(S("abcde"), 2, S("12345678901234567890"), 10, 0, S("abcde"));
+ test(S("abcde"), 2, S("12345678901234567890"), 10, 1, S("ab1cde"));
+ test(S("abcde"), 2, S("12345678901234567890"), 10, 5, S("ab12345cde"));
+ test(S("abcde"), 2, S("12345678901234567890"), 10, 9, S("ab123456789cde"));
+ test(S("abcde"), 2, S("12345678901234567890"), 10, 10, S("ab1234567890cde"));
+ test(S("abcde"), 2, S("12345678901234567890"), 10, 11, S("ab1234567890cde"));
+ test(S("abcde"), 2, S("12345678901234567890"), 19, 0, S("abcde"));
+ test(S("abcde"), 2, S("12345678901234567890"), 19, 1, S("ab0cde"));
+ test(S("abcde"), 2, S("12345678901234567890"), 19, 2, S("ab0cde"));
+ test(S("abcde"), 2, S("12345678901234567890"), 20, 0, S("abcde"));
+ test(S("abcde"), 2, S("12345678901234567890"), 20, 1, S("abcde"));
+ test(S("abcde"), 2, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcde"), 4, S(""), 0, 0, S("abcde"));
+ test(S("abcde"), 4, S(""), 0, 1, S("abcde"));
+ test(S("abcde"), 4, S(""), 1, 0, S("can't happen"));
+ test(S("abcde"), 4, S("12345"), 0, 0, S("abcde"));
+ test(S("abcde"), 4, S("12345"), 0, 1, S("abcd1e"));
+ test(S("abcde"), 4, S("12345"), 0, 2, S("abcd12e"));
+ test(S("abcde"), 4, S("12345"), 0, 4, S("abcd1234e"));
+ test(S("abcde"), 4, S("12345"), 0, 5, S("abcd12345e"));
+ test(S("abcde"), 4, S("12345"), 0, 6, S("abcd12345e"));
+ test(S("abcde"), 4, S("12345"), 1, 0, S("abcde"));
+ test(S("abcde"), 4, S("12345"), 1, 1, S("abcd2e"));
+ test(S("abcde"), 4, S("12345"), 1, 2, S("abcd23e"));
+ test(S("abcde"), 4, S("12345"), 1, 3, S("abcd234e"));
+ test(S("abcde"), 4, S("12345"), 1, 4, S("abcd2345e"));
+ test(S("abcde"), 4, S("12345"), 1, 5, S("abcd2345e"));
+ test(S("abcde"), 4, S("12345"), 2, 0, S("abcde"));
+ test(S("abcde"), 4, S("12345"), 2, 1, S("abcd3e"));
+ test(S("abcde"), 4, S("12345"), 2, 2, S("abcd34e"));
+ test(S("abcde"), 4, S("12345"), 2, 3, S("abcd345e"));
+ test(S("abcde"), 4, S("12345"), 2, 4, S("abcd345e"));
+ test(S("abcde"), 4, S("12345"), 4, 0, S("abcde"));
+ test(S("abcde"), 4, S("12345"), 4, 1, S("abcd5e"));
+ test(S("abcde"), 4, S("12345"), 4, 2, S("abcd5e"));
+ test(S("abcde"), 4, S("12345"), 5, 0, S("abcde"));
+ test(S("abcde"), 4, S("12345"), 5, 1, S("abcde"));
+ test(S("abcde"), 4, S("12345"), 6, 0, S("can't happen"));
+ test(S("abcde"), 4, S("1234567890"), 0, 0, S("abcde"));
+ test(S("abcde"), 4, S("1234567890"), 0, 1, S("abcd1e"));
+ test(S("abcde"), 4, S("1234567890"), 0, 5, S("abcd12345e"));
+ test(S("abcde"), 4, S("1234567890"), 0, 9, S("abcd123456789e"));
+
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test8()
-{
- test(S("abcde"), 4, S("1234567890"), 0, 10, S("abcd1234567890e"));
- test(S("abcde"), 4, S("1234567890"), 0, 11, S("abcd1234567890e"));
- test(S("abcde"), 4, S("1234567890"), 1, 0, S("abcde"));
- test(S("abcde"), 4, S("1234567890"), 1, 1, S("abcd2e"));
- test(S("abcde"), 4, S("1234567890"), 1, 4, S("abcd2345e"));
- test(S("abcde"), 4, S("1234567890"), 1, 8, S("abcd23456789e"));
- test(S("abcde"), 4, S("1234567890"), 1, 9, S("abcd234567890e"));
- test(S("abcde"), 4, S("1234567890"), 1, 10, S("abcd234567890e"));
- test(S("abcde"), 4, S("1234567890"), 5, 0, S("abcde"));
- test(S("abcde"), 4, S("1234567890"), 5, 1, S("abcd6e"));
- test(S("abcde"), 4, S("1234567890"), 5, 2, S("abcd67e"));
- test(S("abcde"), 4, S("1234567890"), 5, 4, S("abcd6789e"));
- test(S("abcde"), 4, S("1234567890"), 5, 5, S("abcd67890e"));
- test(S("abcde"), 4, S("1234567890"), 5, 6, S("abcd67890e"));
- test(S("abcde"), 4, S("1234567890"), 9, 0, S("abcde"));
- test(S("abcde"), 4, S("1234567890"), 9, 1, S("abcd0e"));
- test(S("abcde"), 4, S("1234567890"), 9, 2, S("abcd0e"));
- test(S("abcde"), 4, S("1234567890"), 10, 0, S("abcde"));
- test(S("abcde"), 4, S("1234567890"), 10, 1, S("abcde"));
- test(S("abcde"), 4, S("1234567890"), 11, 0, S("can't happen"));
- test(S("abcde"), 4, S("12345678901234567890"), 0, 0, S("abcde"));
- test(S("abcde"), 4, S("12345678901234567890"), 0, 1, S("abcd1e"));
- test(S("abcde"), 4, S("12345678901234567890"), 0, 10, S("abcd1234567890e"));
- test(S("abcde"), 4, S("12345678901234567890"), 0, 19, S("abcd1234567890123456789e"));
- test(S("abcde"), 4, S("12345678901234567890"), 0, 20, S("abcd12345678901234567890e"));
- test(S("abcde"), 4, S("12345678901234567890"), 0, 21, S("abcd12345678901234567890e"));
- test(S("abcde"), 4, S("12345678901234567890"), 1, 0, S("abcde"));
- test(S("abcde"), 4, S("12345678901234567890"), 1, 1, S("abcd2e"));
- test(S("abcde"), 4, S("12345678901234567890"), 1, 9, S("abcd234567890e"));
- test(S("abcde"), 4, S("12345678901234567890"), 1, 18, S("abcd234567890123456789e"));
- test(S("abcde"), 4, S("12345678901234567890"), 1, 19, S("abcd2345678901234567890e"));
- test(S("abcde"), 4, S("12345678901234567890"), 1, 20, S("abcd2345678901234567890e"));
- test(S("abcde"), 4, S("12345678901234567890"), 10, 0, S("abcde"));
- test(S("abcde"), 4, S("12345678901234567890"), 10, 1, S("abcd1e"));
- test(S("abcde"), 4, S("12345678901234567890"), 10, 5, S("abcd12345e"));
- test(S("abcde"), 4, S("12345678901234567890"), 10, 9, S("abcd123456789e"));
- test(S("abcde"), 4, S("12345678901234567890"), 10, 10, S("abcd1234567890e"));
- test(S("abcde"), 4, S("12345678901234567890"), 10, 11, S("abcd1234567890e"));
- test(S("abcde"), 4, S("12345678901234567890"), 19, 0, S("abcde"));
- test(S("abcde"), 4, S("12345678901234567890"), 19, 1, S("abcd0e"));
- test(S("abcde"), 4, S("12345678901234567890"), 19, 2, S("abcd0e"));
- test(S("abcde"), 4, S("12345678901234567890"), 20, 0, S("abcde"));
- test(S("abcde"), 4, S("12345678901234567890"), 20, 1, S("abcde"));
- test(S("abcde"), 4, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcde"), 5, S(""), 0, 0, S("abcde"));
- test(S("abcde"), 5, S(""), 0, 1, S("abcde"));
- test(S("abcde"), 5, S(""), 1, 0, S("can't happen"));
- test(S("abcde"), 5, S("12345"), 0, 0, S("abcde"));
- test(S("abcde"), 5, S("12345"), 0, 1, S("abcde1"));
- test(S("abcde"), 5, S("12345"), 0, 2, S("abcde12"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test8() {
+ test(S("abcde"), 4, S("1234567890"), 0, 10, S("abcd1234567890e"));
+ test(S("abcde"), 4, S("1234567890"), 0, 11, S("abcd1234567890e"));
+ test(S("abcde"), 4, S("1234567890"), 1, 0, S("abcde"));
+ test(S("abcde"), 4, S("1234567890"), 1, 1, S("abcd2e"));
+ test(S("abcde"), 4, S("1234567890"), 1, 4, S("abcd2345e"));
+ test(S("abcde"), 4, S("1234567890"), 1, 8, S("abcd23456789e"));
+ test(S("abcde"), 4, S("1234567890"), 1, 9, S("abcd234567890e"));
+ test(S("abcde"), 4, S("1234567890"), 1, 10, S("abcd234567890e"));
+ test(S("abcde"), 4, S("1234567890"), 5, 0, S("abcde"));
+ test(S("abcde"), 4, S("1234567890"), 5, 1, S("abcd6e"));
+ test(S("abcde"), 4, S("1234567890"), 5, 2, S("abcd67e"));
+ test(S("abcde"), 4, S("1234567890"), 5, 4, S("abcd6789e"));
+ test(S("abcde"), 4, S("1234567890"), 5, 5, S("abcd67890e"));
+ test(S("abcde"), 4, S("1234567890"), 5, 6, S("abcd67890e"));
+ test(S("abcde"), 4, S("1234567890"), 9, 0, S("abcde"));
+ test(S("abcde"), 4, S("1234567890"), 9, 1, S("abcd0e"));
+ test(S("abcde"), 4, S("1234567890"), 9, 2, S("abcd0e"));
+ test(S("abcde"), 4, S("1234567890"), 10, 0, S("abcde"));
+ test(S("abcde"), 4, S("1234567890"), 10, 1, S("abcde"));
+ test(S("abcde"), 4, S("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcde"), 4, S("12345678901234567890"), 0, 0, S("abcde"));
+ test(S("abcde"), 4, S("12345678901234567890"), 0, 1, S("abcd1e"));
+ test(S("abcde"), 4, S("12345678901234567890"), 0, 10, S("abcd1234567890e"));
+ test(S("abcde"), 4, S("12345678901234567890"), 0, 19, S("abcd1234567890123456789e"));
+ test(S("abcde"), 4, S("12345678901234567890"), 0, 20, S("abcd12345678901234567890e"));
+ test(S("abcde"), 4, S("12345678901234567890"), 0, 21, S("abcd12345678901234567890e"));
+ test(S("abcde"), 4, S("12345678901234567890"), 1, 0, S("abcde"));
+ test(S("abcde"), 4, S("12345678901234567890"), 1, 1, S("abcd2e"));
+ test(S("abcde"), 4, S("12345678901234567890"), 1, 9, S("abcd234567890e"));
+ test(S("abcde"), 4, S("12345678901234567890"), 1, 18, S("abcd234567890123456789e"));
+ test(S("abcde"), 4, S("12345678901234567890"), 1, 19, S("abcd2345678901234567890e"));
+ test(S("abcde"), 4, S("12345678901234567890"), 1, 20, S("abcd2345678901234567890e"));
+ test(S("abcde"), 4, S("12345678901234567890"), 10, 0, S("abcde"));
+ test(S("abcde"), 4, S("12345678901234567890"), 10, 1, S("abcd1e"));
+ test(S("abcde"), 4, S("12345678901234567890"), 10, 5, S("abcd12345e"));
+ test(S("abcde"), 4, S("12345678901234567890"), 10, 9, S("abcd123456789e"));
+ test(S("abcde"), 4, S("12345678901234567890"), 10, 10, S("abcd1234567890e"));
+ test(S("abcde"), 4, S("12345678901234567890"), 10, 11, S("abcd1234567890e"));
+ test(S("abcde"), 4, S("12345678901234567890"), 19, 0, S("abcde"));
+ test(S("abcde"), 4, S("12345678901234567890"), 19, 1, S("abcd0e"));
+ test(S("abcde"), 4, S("12345678901234567890"), 19, 2, S("abcd0e"));
+ test(S("abcde"), 4, S("12345678901234567890"), 20, 0, S("abcde"));
+ test(S("abcde"), 4, S("12345678901234567890"), 20, 1, S("abcde"));
+ test(S("abcde"), 4, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcde"), 5, S(""), 0, 0, S("abcde"));
+ test(S("abcde"), 5, S(""), 0, 1, S("abcde"));
+ test(S("abcde"), 5, S(""), 1, 0, S("can't happen"));
+ test(S("abcde"), 5, S("12345"), 0, 0, S("abcde"));
+ test(S("abcde"), 5, S("12345"), 0, 1, S("abcde1"));
+ test(S("abcde"), 5, S("12345"), 0, 2, S("abcde12"));
+
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test9()
-{
- test(S("abcde"), 5, S("12345"), 0, 4, S("abcde1234"));
- test(S("abcde"), 5, S("12345"), 0, 5, S("abcde12345"));
- test(S("abcde"), 5, S("12345"), 0, 6, S("abcde12345"));
- test(S("abcde"), 5, S("12345"), 1, 0, S("abcde"));
- test(S("abcde"), 5, S("12345"), 1, 1, S("abcde2"));
- test(S("abcde"), 5, S("12345"), 1, 2, S("abcde23"));
- test(S("abcde"), 5, S("12345"), 1, 3, S("abcde234"));
- test(S("abcde"), 5, S("12345"), 1, 4, S("abcde2345"));
- test(S("abcde"), 5, S("12345"), 1, 5, S("abcde2345"));
- test(S("abcde"), 5, S("12345"), 2, 0, S("abcde"));
- test(S("abcde"), 5, S("12345"), 2, 1, S("abcde3"));
- test(S("abcde"), 5, S("12345"), 2, 2, S("abcde34"));
- test(S("abcde"), 5, S("12345"), 2, 3, S("abcde345"));
- test(S("abcde"), 5, S("12345"), 2, 4, S("abcde345"));
- test(S("abcde"), 5, S("12345"), 4, 0, S("abcde"));
- test(S("abcde"), 5, S("12345"), 4, 1, S("abcde5"));
- test(S("abcde"), 5, S("12345"), 4, 2, S("abcde5"));
- test(S("abcde"), 5, S("12345"), 5, 0, S("abcde"));
- test(S("abcde"), 5, S("12345"), 5, 1, S("abcde"));
- test(S("abcde"), 5, S("12345"), 6, 0, S("can't happen"));
- test(S("abcde"), 5, S("1234567890"), 0, 0, S("abcde"));
- test(S("abcde"), 5, S("1234567890"), 0, 1, S("abcde1"));
- test(S("abcde"), 5, S("1234567890"), 0, 5, S("abcde12345"));
- test(S("abcde"), 5, S("1234567890"), 0, 9, S("abcde123456789"));
- test(S("abcde"), 5, S("1234567890"), 0, 10, S("abcde1234567890"));
- test(S("abcde"), 5, S("1234567890"), 0, 11, S("abcde1234567890"));
- test(S("abcde"), 5, S("1234567890"), 1, 0, S("abcde"));
- test(S("abcde"), 5, S("1234567890"), 1, 1, S("abcde2"));
- test(S("abcde"), 5, S("1234567890"), 1, 4, S("abcde2345"));
- test(S("abcde"), 5, S("1234567890"), 1, 8, S("abcde23456789"));
- test(S("abcde"), 5, S("1234567890"), 1, 9, S("abcde234567890"));
- test(S("abcde"), 5, S("1234567890"), 1, 10, S("abcde234567890"));
- test(S("abcde"), 5, S("1234567890"), 5, 0, S("abcde"));
- test(S("abcde"), 5, S("1234567890"), 5, 1, S("abcde6"));
- test(S("abcde"), 5, S("1234567890"), 5, 2, S("abcde67"));
- test(S("abcde"), 5, S("1234567890"), 5, 4, S("abcde6789"));
- test(S("abcde"), 5, S("1234567890"), 5, 5, S("abcde67890"));
- test(S("abcde"), 5, S("1234567890"), 5, 6, S("abcde67890"));
- test(S("abcde"), 5, S("1234567890"), 9, 0, S("abcde"));
- test(S("abcde"), 5, S("1234567890"), 9, 1, S("abcde0"));
- test(S("abcde"), 5, S("1234567890"), 9, 2, S("abcde0"));
- test(S("abcde"), 5, S("1234567890"), 10, 0, S("abcde"));
- test(S("abcde"), 5, S("1234567890"), 10, 1, S("abcde"));
- test(S("abcde"), 5, S("1234567890"), 11, 0, S("can't happen"));
- test(S("abcde"), 5, S("12345678901234567890"), 0, 0, S("abcde"));
- test(S("abcde"), 5, S("12345678901234567890"), 0, 1, S("abcde1"));
- test(S("abcde"), 5, S("12345678901234567890"), 0, 10, S("abcde1234567890"));
- test(S("abcde"), 5, S("12345678901234567890"), 0, 19, S("abcde1234567890123456789"));
- test(S("abcde"), 5, S("12345678901234567890"), 0, 20, S("abcde12345678901234567890"));
- test(S("abcde"), 5, S("12345678901234567890"), 0, 21, S("abcde12345678901234567890"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test9() {
+ test(S("abcde"), 5, S("12345"), 0, 4, S("abcde1234"));
+ test(S("abcde"), 5, S("12345"), 0, 5, S("abcde12345"));
+ test(S("abcde"), 5, S("12345"), 0, 6, S("abcde12345"));
+ test(S("abcde"), 5, S("12345"), 1, 0, S("abcde"));
+ test(S("abcde"), 5, S("12345"), 1, 1, S("abcde2"));
+ test(S("abcde"), 5, S("12345"), 1, 2, S("abcde23"));
+ test(S("abcde"), 5, S("12345"), 1, 3, S("abcde234"));
+ test(S("abcde"), 5, S("12345"), 1, 4, S("abcde2345"));
+ test(S("abcde"), 5, S("12345"), 1, 5, S("abcde2345"));
+ test(S("abcde"), 5, S("12345"), 2, 0, S("abcde"));
+ test(S("abcde"), 5, S("12345"), 2, 1, S("abcde3"));
+ test(S("abcde"), 5, S("12345"), 2, 2, S("abcde34"));
+ test(S("abcde"), 5, S("12345"), 2, 3, S("abcde345"));
+ test(S("abcde"), 5, S("12345"), 2, 4, S("abcde345"));
+ test(S("abcde"), 5, S("12345"), 4, 0, S("abcde"));
+ test(S("abcde"), 5, S("12345"), 4, 1, S("abcde5"));
+ test(S("abcde"), 5, S("12345"), 4, 2, S("abcde5"));
+ test(S("abcde"), 5, S("12345"), 5, 0, S("abcde"));
+ test(S("abcde"), 5, S("12345"), 5, 1, S("abcde"));
+ test(S("abcde"), 5, S("12345"), 6, 0, S("can't happen"));
+ test(S("abcde"), 5, S("1234567890"), 0, 0, S("abcde"));
+ test(S("abcde"), 5, S("1234567890"), 0, 1, S("abcde1"));
+ test(S("abcde"), 5, S("1234567890"), 0, 5, S("abcde12345"));
+ test(S("abcde"), 5, S("1234567890"), 0, 9, S("abcde123456789"));
+ test(S("abcde"), 5, S("1234567890"), 0, 10, S("abcde1234567890"));
+ test(S("abcde"), 5, S("1234567890"), 0, 11, S("abcde1234567890"));
+ test(S("abcde"), 5, S("1234567890"), 1, 0, S("abcde"));
+ test(S("abcde"), 5, S("1234567890"), 1, 1, S("abcde2"));
+ test(S("abcde"), 5, S("1234567890"), 1, 4, S("abcde2345"));
+ test(S("abcde"), 5, S("1234567890"), 1, 8, S("abcde23456789"));
+ test(S("abcde"), 5, S("1234567890"), 1, 9, S("abcde234567890"));
+ test(S("abcde"), 5, S("1234567890"), 1, 10, S("abcde234567890"));
+ test(S("abcde"), 5, S("1234567890"), 5, 0, S("abcde"));
+ test(S("abcde"), 5, S("1234567890"), 5, 1, S("abcde6"));
+ test(S("abcde"), 5, S("1234567890"), 5, 2, S("abcde67"));
+ test(S("abcde"), 5, S("1234567890"), 5, 4, S("abcde6789"));
+ test(S("abcde"), 5, S("1234567890"), 5, 5, S("abcde67890"));
+ test(S("abcde"), 5, S("1234567890"), 5, 6, S("abcde67890"));
+ test(S("abcde"), 5, S("1234567890"), 9, 0, S("abcde"));
+ test(S("abcde"), 5, S("1234567890"), 9, 1, S("abcde0"));
+ test(S("abcde"), 5, S("1234567890"), 9, 2, S("abcde0"));
+ test(S("abcde"), 5, S("1234567890"), 10, 0, S("abcde"));
+ test(S("abcde"), 5, S("1234567890"), 10, 1, S("abcde"));
+ test(S("abcde"), 5, S("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcde"), 5, S("12345678901234567890"), 0, 0, S("abcde"));
+ test(S("abcde"), 5, S("12345678901234567890"), 0, 1, S("abcde1"));
+ test(S("abcde"), 5, S("12345678901234567890"), 0, 10, S("abcde1234567890"));
+ test(S("abcde"), 5, S("12345678901234567890"), 0, 19, S("abcde1234567890123456789"));
+ test(S("abcde"), 5, S("12345678901234567890"), 0, 20, S("abcde12345678901234567890"));
+ test(S("abcde"), 5, S("12345678901234567890"), 0, 21, S("abcde12345678901234567890"));
+
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test10()
-{
- test(S("abcde"), 5, S("12345678901234567890"), 1, 0, S("abcde"));
- test(S("abcde"), 5, S("12345678901234567890"), 1, 1, S("abcde2"));
- test(S("abcde"), 5, S("12345678901234567890"), 1, 9, S("abcde234567890"));
- test(S("abcde"), 5, S("12345678901234567890"), 1, 18, S("abcde234567890123456789"));
- test(S("abcde"), 5, S("12345678901234567890"), 1, 19, S("abcde2345678901234567890"));
- test(S("abcde"), 5, S("12345678901234567890"), 1, 20, S("abcde2345678901234567890"));
- test(S("abcde"), 5, S("12345678901234567890"), 10, 0, S("abcde"));
- test(S("abcde"), 5, S("12345678901234567890"), 10, 1, S("abcde1"));
- test(S("abcde"), 5, S("12345678901234567890"), 10, 5, S("abcde12345"));
- test(S("abcde"), 5, S("12345678901234567890"), 10, 9, S("abcde123456789"));
- test(S("abcde"), 5, S("12345678901234567890"), 10, 10, S("abcde1234567890"));
- test(S("abcde"), 5, S("12345678901234567890"), 10, 11, S("abcde1234567890"));
- test(S("abcde"), 5, S("12345678901234567890"), 19, 0, S("abcde"));
- test(S("abcde"), 5, S("12345678901234567890"), 19, 1, S("abcde0"));
- test(S("abcde"), 5, S("12345678901234567890"), 19, 2, S("abcde0"));
- test(S("abcde"), 5, S("12345678901234567890"), 20, 0, S("abcde"));
- test(S("abcde"), 5, S("12345678901234567890"), 20, 1, S("abcde"));
- test(S("abcde"), 5, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcde"), 6, S(""), 0, 0, S("can't happen"));
- test(S("abcde"), 6, S(""), 0, 1, S("can't happen"));
- test(S("abcde"), 6, S(""), 1, 0, S("can't happen"));
- test(S("abcde"), 6, S("12345"), 0, 0, S("can't happen"));
- test(S("abcde"), 6, S("12345"), 0, 1, S("can't happen"));
- test(S("abcde"), 6, S("12345"), 0, 2, S("can't happen"));
- test(S("abcde"), 6, S("12345"), 0, 4, S("can't happen"));
- test(S("abcde"), 6, S("12345"), 0, 5, S("can't happen"));
- test(S("abcde"), 6, S("12345"), 0, 6, S("can't happen"));
- test(S("abcde"), 6, S("12345"), 1, 0, S("can't happen"));
- test(S("abcde"), 6, S("12345"), 1, 1, S("can't happen"));
- test(S("abcde"), 6, S("12345"), 1, 2, S("can't happen"));
- test(S("abcde"), 6, S("12345"), 1, 3, S("can't happen"));
- test(S("abcde"), 6, S("12345"), 1, 4, S("can't happen"));
- test(S("abcde"), 6, S("12345"), 1, 5, S("can't happen"));
- test(S("abcde"), 6, S("12345"), 2, 0, S("can't happen"));
- test(S("abcde"), 6, S("12345"), 2, 1, S("can't happen"));
- test(S("abcde"), 6, S("12345"), 2, 2, S("can't happen"));
- test(S("abcde"), 6, S("12345"), 2, 3, S("can't happen"));
- test(S("abcde"), 6, S("12345"), 2, 4, S("can't happen"));
- test(S("abcde"), 6, S("12345"), 4, 0, S("can't happen"));
- test(S("abcde"), 6, S("12345"), 4, 1, S("can't happen"));
- test(S("abcde"), 6, S("12345"), 4, 2, S("can't happen"));
- test(S("abcde"), 6, S("12345"), 5, 0, S("can't happen"));
- test(S("abcde"), 6, S("12345"), 5, 1, S("can't happen"));
- test(S("abcde"), 6, S("12345"), 6, 0, S("can't happen"));
- test(S("abcde"), 6, S("1234567890"), 0, 0, S("can't happen"));
- test(S("abcde"), 6, S("1234567890"), 0, 1, S("can't happen"));
- test(S("abcde"), 6, S("1234567890"), 0, 5, S("can't happen"));
- test(S("abcde"), 6, S("1234567890"), 0, 9, S("can't happen"));
- test(S("abcde"), 6, S("1234567890"), 0, 10, S("can't happen"));
- test(S("abcde"), 6, S("1234567890"), 0, 11, S("can't happen"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test10() {
+ test(S("abcde"), 5, S("12345678901234567890"), 1, 0, S("abcde"));
+ test(S("abcde"), 5, S("12345678901234567890"), 1, 1, S("abcde2"));
+ test(S("abcde"), 5, S("12345678901234567890"), 1, 9, S("abcde234567890"));
+ test(S("abcde"), 5, S("12345678901234567890"), 1, 18, S("abcde234567890123456789"));
+ test(S("abcde"), 5, S("12345678901234567890"), 1, 19, S("abcde2345678901234567890"));
+ test(S("abcde"), 5, S("12345678901234567890"), 1, 20, S("abcde2345678901234567890"));
+ test(S("abcde"), 5, S("12345678901234567890"), 10, 0, S("abcde"));
+ test(S("abcde"), 5, S("12345678901234567890"), 10, 1, S("abcde1"));
+ test(S("abcde"), 5, S("12345678901234567890"), 10, 5, S("abcde12345"));
+ test(S("abcde"), 5, S("12345678901234567890"), 10, 9, S("abcde123456789"));
+ test(S("abcde"), 5, S("12345678901234567890"), 10, 10, S("abcde1234567890"));
+ test(S("abcde"), 5, S("12345678901234567890"), 10, 11, S("abcde1234567890"));
+ test(S("abcde"), 5, S("12345678901234567890"), 19, 0, S("abcde"));
+ test(S("abcde"), 5, S("12345678901234567890"), 19, 1, S("abcde0"));
+ test(S("abcde"), 5, S("12345678901234567890"), 19, 2, S("abcde0"));
+ test(S("abcde"), 5, S("12345678901234567890"), 20, 0, S("abcde"));
+ test(S("abcde"), 5, S("12345678901234567890"), 20, 1, S("abcde"));
+ test(S("abcde"), 5, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcde"), 6, S(""), 0, 0, S("can't happen"));
+ test(S("abcde"), 6, S(""), 0, 1, S("can't happen"));
+ test(S("abcde"), 6, S(""), 1, 0, S("can't happen"));
+ test(S("abcde"), 6, S("12345"), 0, 0, S("can't happen"));
+ test(S("abcde"), 6, S("12345"), 0, 1, S("can't happen"));
+ test(S("abcde"), 6, S("12345"), 0, 2, S("can't happen"));
+ test(S("abcde"), 6, S("12345"), 0, 4, S("can't happen"));
+ test(S("abcde"), 6, S("12345"), 0, 5, S("can't happen"));
+ test(S("abcde"), 6, S("12345"), 0, 6, S("can't happen"));
+ test(S("abcde"), 6, S("12345"), 1, 0, S("can't happen"));
+ test(S("abcde"), 6, S("12345"), 1, 1, S("can't happen"));
+ test(S("abcde"), 6, S("12345"), 1, 2, S("can't happen"));
+ test(S("abcde"), 6, S("12345"), 1, 3, S("can't happen"));
+ test(S("abcde"), 6, S("12345"), 1, 4, S("can't happen"));
+ test(S("abcde"), 6, S("12345"), 1, 5, S("can't happen"));
+ test(S("abcde"), 6, S("12345"), 2, 0, S("can't happen"));
+ test(S("abcde"), 6, S("12345"), 2, 1, S("can't happen"));
+ test(S("abcde"), 6, S("12345"), 2, 2, S("can't happen"));
+ test(S("abcde"), 6, S("12345"), 2, 3, S("can't happen"));
+ test(S("abcde"), 6, S("12345"), 2, 4, S("can't happen"));
+ test(S("abcde"), 6, S("12345"), 4, 0, S("can't happen"));
+ test(S("abcde"), 6, S("12345"), 4, 1, S("can't happen"));
+ test(S("abcde"), 6, S("12345"), 4, 2, S("can't happen"));
+ test(S("abcde"), 6, S("12345"), 5, 0, S("can't happen"));
+ test(S("abcde"), 6, S("12345"), 5, 1, S("can't happen"));
+ test(S("abcde"), 6, S("12345"), 6, 0, S("can't happen"));
+ test(S("abcde"), 6, S("1234567890"), 0, 0, S("can't happen"));
+ test(S("abcde"), 6, S("1234567890"), 0, 1, S("can't happen"));
+ test(S("abcde"), 6, S("1234567890"), 0, 5, S("can't happen"));
+ test(S("abcde"), 6, S("1234567890"), 0, 9, S("can't happen"));
+ test(S("abcde"), 6, S("1234567890"), 0, 10, S("can't happen"));
+ test(S("abcde"), 6, S("1234567890"), 0, 11, S("can't happen"));
+
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test11()
-{
- test(S("abcde"), 6, S("1234567890"), 1, 0, S("can't happen"));
- test(S("abcde"), 6, S("1234567890"), 1, 1, S("can't happen"));
- test(S("abcde"), 6, S("1234567890"), 1, 4, S("can't happen"));
- test(S("abcde"), 6, S("1234567890"), 1, 8, S("can't happen"));
- test(S("abcde"), 6, S("1234567890"), 1, 9, S("can't happen"));
- test(S("abcde"), 6, S("1234567890"), 1, 10, S("can't happen"));
- test(S("abcde"), 6, S("1234567890"), 5, 0, S("can't happen"));
- test(S("abcde"), 6, S("1234567890"), 5, 1, S("can't happen"));
- test(S("abcde"), 6, S("1234567890"), 5, 2, S("can't happen"));
- test(S("abcde"), 6, S("1234567890"), 5, 4, S("can't happen"));
- test(S("abcde"), 6, S("1234567890"), 5, 5, S("can't happen"));
- test(S("abcde"), 6, S("1234567890"), 5, 6, S("can't happen"));
- test(S("abcde"), 6, S("1234567890"), 9, 0, S("can't happen"));
- test(S("abcde"), 6, S("1234567890"), 9, 1, S("can't happen"));
- test(S("abcde"), 6, S("1234567890"), 9, 2, S("can't happen"));
- test(S("abcde"), 6, S("1234567890"), 10, 0, S("can't happen"));
- test(S("abcde"), 6, S("1234567890"), 10, 1, S("can't happen"));
- test(S("abcde"), 6, S("1234567890"), 11, 0, S("can't happen"));
- test(S("abcde"), 6, S("12345678901234567890"), 0, 0, S("can't happen"));
- test(S("abcde"), 6, S("12345678901234567890"), 0, 1, S("can't happen"));
- test(S("abcde"), 6, S("12345678901234567890"), 0, 10, S("can't happen"));
- test(S("abcde"), 6, S("12345678901234567890"), 0, 19, S("can't happen"));
- test(S("abcde"), 6, S("12345678901234567890"), 0, 20, S("can't happen"));
- test(S("abcde"), 6, S("12345678901234567890"), 0, 21, S("can't happen"));
- test(S("abcde"), 6, S("12345678901234567890"), 1, 0, S("can't happen"));
- test(S("abcde"), 6, S("12345678901234567890"), 1, 1, S("can't happen"));
- test(S("abcde"), 6, S("12345678901234567890"), 1, 9, S("can't happen"));
- test(S("abcde"), 6, S("12345678901234567890"), 1, 18, S("can't happen"));
- test(S("abcde"), 6, S("12345678901234567890"), 1, 19, S("can't happen"));
- test(S("abcde"), 6, S("12345678901234567890"), 1, 20, S("can't happen"));
- test(S("abcde"), 6, S("12345678901234567890"), 10, 0, S("can't happen"));
- test(S("abcde"), 6, S("12345678901234567890"), 10, 1, S("can't happen"));
- test(S("abcde"), 6, S("12345678901234567890"), 10, 5, S("can't happen"));
- test(S("abcde"), 6, S("12345678901234567890"), 10, 9, S("can't happen"));
- test(S("abcde"), 6, S("12345678901234567890"), 10, 10, S("can't happen"));
- test(S("abcde"), 6, S("12345678901234567890"), 10, 11, S("can't happen"));
- test(S("abcde"), 6, S("12345678901234567890"), 19, 0, S("can't happen"));
- test(S("abcde"), 6, S("12345678901234567890"), 19, 1, S("can't happen"));
- test(S("abcde"), 6, S("12345678901234567890"), 19, 2, S("can't happen"));
- test(S("abcde"), 6, S("12345678901234567890"), 20, 0, S("can't happen"));
- test(S("abcde"), 6, S("12345678901234567890"), 20, 1, S("can't happen"));
- test(S("abcde"), 6, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghij"), 0, S(""), 0, 0, S("abcdefghij"));
- test(S("abcdefghij"), 0, S(""), 0, 1, S("abcdefghij"));
- test(S("abcdefghij"), 0, S(""), 1, 0, S("can't happen"));
- test(S("abcdefghij"), 0, S("12345"), 0, 0, S("abcdefghij"));
- test(S("abcdefghij"), 0, S("12345"), 0, 1, S("1abcdefghij"));
- test(S("abcdefghij"), 0, S("12345"), 0, 2, S("12abcdefghij"));
- test(S("abcdefghij"), 0, S("12345"), 0, 4, S("1234abcdefghij"));
- test(S("abcdefghij"), 0, S("12345"), 0, 5, S("12345abcdefghij"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test11() {
+ test(S("abcde"), 6, S("1234567890"), 1, 0, S("can't happen"));
+ test(S("abcde"), 6, S("1234567890"), 1, 1, S("can't happen"));
+ test(S("abcde"), 6, S("1234567890"), 1, 4, S("can't happen"));
+ test(S("abcde"), 6, S("1234567890"), 1, 8, S("can't happen"));
+ test(S("abcde"), 6, S("1234567890"), 1, 9, S("can't happen"));
+ test(S("abcde"), 6, S("1234567890"), 1, 10, S("can't happen"));
+ test(S("abcde"), 6, S("1234567890"), 5, 0, S("can't happen"));
+ test(S("abcde"), 6, S("1234567890"), 5, 1, S("can't happen"));
+ test(S("abcde"), 6, S("1234567890"), 5, 2, S("can't happen"));
+ test(S("abcde"), 6, S("1234567890"), 5, 4, S("can't happen"));
+ test(S("abcde"), 6, S("1234567890"), 5, 5, S("can't happen"));
+ test(S("abcde"), 6, S("1234567890"), 5, 6, S("can't happen"));
+ test(S("abcde"), 6, S("1234567890"), 9, 0, S("can't happen"));
+ test(S("abcde"), 6, S("1234567890"), 9, 1, S("can't happen"));
+ test(S("abcde"), 6, S("1234567890"), 9, 2, S("can't happen"));
+ test(S("abcde"), 6, S("1234567890"), 10, 0, S("can't happen"));
+ test(S("abcde"), 6, S("1234567890"), 10, 1, S("can't happen"));
+ test(S("abcde"), 6, S("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcde"), 6, S("12345678901234567890"), 0, 0, S("can't happen"));
+ test(S("abcde"), 6, S("12345678901234567890"), 0, 1, S("can't happen"));
+ test(S("abcde"), 6, S("12345678901234567890"), 0, 10, S("can't happen"));
+ test(S("abcde"), 6, S("12345678901234567890"), 0, 19, S("can't happen"));
+ test(S("abcde"), 6, S("12345678901234567890"), 0, 20, S("can't happen"));
+ test(S("abcde"), 6, S("12345678901234567890"), 0, 21, S("can't happen"));
+ test(S("abcde"), 6, S("12345678901234567890"), 1, 0, S("can't happen"));
+ test(S("abcde"), 6, S("12345678901234567890"), 1, 1, S("can't happen"));
+ test(S("abcde"), 6, S("12345678901234567890"), 1, 9, S("can't happen"));
+ test(S("abcde"), 6, S("12345678901234567890"), 1, 18, S("can't happen"));
+ test(S("abcde"), 6, S("12345678901234567890"), 1, 19, S("can't happen"));
+ test(S("abcde"), 6, S("12345678901234567890"), 1, 20, S("can't happen"));
+ test(S("abcde"), 6, S("12345678901234567890"), 10, 0, S("can't happen"));
+ test(S("abcde"), 6, S("12345678901234567890"), 10, 1, S("can't happen"));
+ test(S("abcde"), 6, S("12345678901234567890"), 10, 5, S("can't happen"));
+ test(S("abcde"), 6, S("12345678901234567890"), 10, 9, S("can't happen"));
+ test(S("abcde"), 6, S("12345678901234567890"), 10, 10, S("can't happen"));
+ test(S("abcde"), 6, S("12345678901234567890"), 10, 11, S("can't happen"));
+ test(S("abcde"), 6, S("12345678901234567890"), 19, 0, S("can't happen"));
+ test(S("abcde"), 6, S("12345678901234567890"), 19, 1, S("can't happen"));
+ test(S("abcde"), 6, S("12345678901234567890"), 19, 2, S("can't happen"));
+ test(S("abcde"), 6, S("12345678901234567890"), 20, 0, S("can't happen"));
+ test(S("abcde"), 6, S("12345678901234567890"), 20, 1, S("can't happen"));
+ test(S("abcde"), 6, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghij"), 0, S(""), 0, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 0, S(""), 0, 1, S("abcdefghij"));
+ test(S("abcdefghij"), 0, S(""), 1, 0, S("can't happen"));
+ test(S("abcdefghij"), 0, S("12345"), 0, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 0, S("12345"), 0, 1, S("1abcdefghij"));
+ test(S("abcdefghij"), 0, S("12345"), 0, 2, S("12abcdefghij"));
+ test(S("abcdefghij"), 0, S("12345"), 0, 4, S("1234abcdefghij"));
+ test(S("abcdefghij"), 0, S("12345"), 0, 5, S("12345abcdefghij"));
+
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test12()
-{
- test(S("abcdefghij"), 0, S("12345"), 0, 6, S("12345abcdefghij"));
- test(S("abcdefghij"), 0, S("12345"), 1, 0, S("abcdefghij"));
- test(S("abcdefghij"), 0, S("12345"), 1, 1, S("2abcdefghij"));
- test(S("abcdefghij"), 0, S("12345"), 1, 2, S("23abcdefghij"));
- test(S("abcdefghij"), 0, S("12345"), 1, 3, S("234abcdefghij"));
- test(S("abcdefghij"), 0, S("12345"), 1, 4, S("2345abcdefghij"));
- test(S("abcdefghij"), 0, S("12345"), 1, 5, S("2345abcdefghij"));
- test(S("abcdefghij"), 0, S("12345"), 2, 0, S("abcdefghij"));
- test(S("abcdefghij"), 0, S("12345"), 2, 1, S("3abcdefghij"));
- test(S("abcdefghij"), 0, S("12345"), 2, 2, S("34abcdefghij"));
- test(S("abcdefghij"), 0, S("12345"), 2, 3, S("345abcdefghij"));
- test(S("abcdefghij"), 0, S("12345"), 2, 4, S("345abcdefghij"));
- test(S("abcdefghij"), 0, S("12345"), 4, 0, S("abcdefghij"));
- test(S("abcdefghij"), 0, S("12345"), 4, 1, S("5abcdefghij"));
- test(S("abcdefghij"), 0, S("12345"), 4, 2, S("5abcdefghij"));
- test(S("abcdefghij"), 0, S("12345"), 5, 0, S("abcdefghij"));
- test(S("abcdefghij"), 0, S("12345"), 5, 1, S("abcdefghij"));
- test(S("abcdefghij"), 0, S("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghij"), 0, S("1234567890"), 0, 0, S("abcdefghij"));
- test(S("abcdefghij"), 0, S("1234567890"), 0, 1, S("1abcdefghij"));
- test(S("abcdefghij"), 0, S("1234567890"), 0, 5, S("12345abcdefghij"));
- test(S("abcdefghij"), 0, S("1234567890"), 0, 9, S("123456789abcdefghij"));
- test(S("abcdefghij"), 0, S("1234567890"), 0, 10, S("1234567890abcdefghij"));
- test(S("abcdefghij"), 0, S("1234567890"), 0, 11, S("1234567890abcdefghij"));
- test(S("abcdefghij"), 0, S("1234567890"), 1, 0, S("abcdefghij"));
- test(S("abcdefghij"), 0, S("1234567890"), 1, 1, S("2abcdefghij"));
- test(S("abcdefghij"), 0, S("1234567890"), 1, 4, S("2345abcdefghij"));
- test(S("abcdefghij"), 0, S("1234567890"), 1, 8, S("23456789abcdefghij"));
- test(S("abcdefghij"), 0, S("1234567890"), 1, 9, S("234567890abcdefghij"));
- test(S("abcdefghij"), 0, S("1234567890"), 1, 10, S("234567890abcdefghij"));
- test(S("abcdefghij"), 0, S("1234567890"), 5, 0, S("abcdefghij"));
- test(S("abcdefghij"), 0, S("1234567890"), 5, 1, S("6abcdefghij"));
- test(S("abcdefghij"), 0, S("1234567890"), 5, 2, S("67abcdefghij"));
- test(S("abcdefghij"), 0, S("1234567890"), 5, 4, S("6789abcdefghij"));
- test(S("abcdefghij"), 0, S("1234567890"), 5, 5, S("67890abcdefghij"));
- test(S("abcdefghij"), 0, S("1234567890"), 5, 6, S("67890abcdefghij"));
- test(S("abcdefghij"), 0, S("1234567890"), 9, 0, S("abcdefghij"));
- test(S("abcdefghij"), 0, S("1234567890"), 9, 1, S("0abcdefghij"));
- test(S("abcdefghij"), 0, S("1234567890"), 9, 2, S("0abcdefghij"));
- test(S("abcdefghij"), 0, S("1234567890"), 10, 0, S("abcdefghij"));
- test(S("abcdefghij"), 0, S("1234567890"), 10, 1, S("abcdefghij"));
- test(S("abcdefghij"), 0, S("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghij"), 0, S("12345678901234567890"), 0, 0, S("abcdefghij"));
- test(S("abcdefghij"), 0, S("12345678901234567890"), 0, 1, S("1abcdefghij"));
- test(S("abcdefghij"), 0, S("12345678901234567890"), 0, 10, S("1234567890abcdefghij"));
- test(S("abcdefghij"), 0, S("12345678901234567890"), 0, 19, S("1234567890123456789abcdefghij"));
- test(S("abcdefghij"), 0, S("12345678901234567890"), 0, 20, S("12345678901234567890abcdefghij"));
- test(S("abcdefghij"), 0, S("12345678901234567890"), 0, 21, S("12345678901234567890abcdefghij"));
- test(S("abcdefghij"), 0, S("12345678901234567890"), 1, 0, S("abcdefghij"));
- test(S("abcdefghij"), 0, S("12345678901234567890"), 1, 1, S("2abcdefghij"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test12() {
+ test(S("abcdefghij"), 0, S("12345"), 0, 6, S("12345abcdefghij"));
+ test(S("abcdefghij"), 0, S("12345"), 1, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 0, S("12345"), 1, 1, S("2abcdefghij"));
+ test(S("abcdefghij"), 0, S("12345"), 1, 2, S("23abcdefghij"));
+ test(S("abcdefghij"), 0, S("12345"), 1, 3, S("234abcdefghij"));
+ test(S("abcdefghij"), 0, S("12345"), 1, 4, S("2345abcdefghij"));
+ test(S("abcdefghij"), 0, S("12345"), 1, 5, S("2345abcdefghij"));
+ test(S("abcdefghij"), 0, S("12345"), 2, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 0, S("12345"), 2, 1, S("3abcdefghij"));
+ test(S("abcdefghij"), 0, S("12345"), 2, 2, S("34abcdefghij"));
+ test(S("abcdefghij"), 0, S("12345"), 2, 3, S("345abcdefghij"));
+ test(S("abcdefghij"), 0, S("12345"), 2, 4, S("345abcdefghij"));
+ test(S("abcdefghij"), 0, S("12345"), 4, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 0, S("12345"), 4, 1, S("5abcdefghij"));
+ test(S("abcdefghij"), 0, S("12345"), 4, 2, S("5abcdefghij"));
+ test(S("abcdefghij"), 0, S("12345"), 5, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 0, S("12345"), 5, 1, S("abcdefghij"));
+ test(S("abcdefghij"), 0, S("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghij"), 0, S("1234567890"), 0, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 0, S("1234567890"), 0, 1, S("1abcdefghij"));
+ test(S("abcdefghij"), 0, S("1234567890"), 0, 5, S("12345abcdefghij"));
+ test(S("abcdefghij"), 0, S("1234567890"), 0, 9, S("123456789abcdefghij"));
+ test(S("abcdefghij"), 0, S("1234567890"), 0, 10, S("1234567890abcdefghij"));
+ test(S("abcdefghij"), 0, S("1234567890"), 0, 11, S("1234567890abcdefghij"));
+ test(S("abcdefghij"), 0, S("1234567890"), 1, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 0, S("1234567890"), 1, 1, S("2abcdefghij"));
+ test(S("abcdefghij"), 0, S("1234567890"), 1, 4, S("2345abcdefghij"));
+ test(S("abcdefghij"), 0, S("1234567890"), 1, 8, S("23456789abcdefghij"));
+ test(S("abcdefghij"), 0, S("1234567890"), 1, 9, S("234567890abcdefghij"));
+ test(S("abcdefghij"), 0, S("1234567890"), 1, 10, S("234567890abcdefghij"));
+ test(S("abcdefghij"), 0, S("1234567890"), 5, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 0, S("1234567890"), 5, 1, S("6abcdefghij"));
+ test(S("abcdefghij"), 0, S("1234567890"), 5, 2, S("67abcdefghij"));
+ test(S("abcdefghij"), 0, S("1234567890"), 5, 4, S("6789abcdefghij"));
+ test(S("abcdefghij"), 0, S("1234567890"), 5, 5, S("67890abcdefghij"));
+ test(S("abcdefghij"), 0, S("1234567890"), 5, 6, S("67890abcdefghij"));
+ test(S("abcdefghij"), 0, S("1234567890"), 9, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 0, S("1234567890"), 9, 1, S("0abcdefghij"));
+ test(S("abcdefghij"), 0, S("1234567890"), 9, 2, S("0abcdefghij"));
+ test(S("abcdefghij"), 0, S("1234567890"), 10, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 0, S("1234567890"), 10, 1, S("abcdefghij"));
+ test(S("abcdefghij"), 0, S("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghij"), 0, S("12345678901234567890"), 0, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 0, S("12345678901234567890"), 0, 1, S("1abcdefghij"));
+ test(S("abcdefghij"), 0, S("12345678901234567890"), 0, 10, S("1234567890abcdefghij"));
+ test(S("abcdefghij"), 0, S("12345678901234567890"), 0, 19, S("1234567890123456789abcdefghij"));
+ test(S("abcdefghij"), 0, S("12345678901234567890"), 0, 20, S("12345678901234567890abcdefghij"));
+ test(S("abcdefghij"), 0, S("12345678901234567890"), 0, 21, S("12345678901234567890abcdefghij"));
+ test(S("abcdefghij"), 0, S("12345678901234567890"), 1, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 0, S("12345678901234567890"), 1, 1, S("2abcdefghij"));
+
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test13()
-{
- test(S("abcdefghij"), 0, S("12345678901234567890"), 1, 9, S("234567890abcdefghij"));
- test(S("abcdefghij"), 0, S("12345678901234567890"), 1, 18, S("234567890123456789abcdefghij"));
- test(S("abcdefghij"), 0, S("12345678901234567890"), 1, 19, S("2345678901234567890abcdefghij"));
- test(S("abcdefghij"), 0, S("12345678901234567890"), 1, 20, S("2345678901234567890abcdefghij"));
- test(S("abcdefghij"), 0, S("12345678901234567890"), 10, 0, S("abcdefghij"));
- test(S("abcdefghij"), 0, S("12345678901234567890"), 10, 1, S("1abcdefghij"));
- test(S("abcdefghij"), 0, S("12345678901234567890"), 10, 5, S("12345abcdefghij"));
- test(S("abcdefghij"), 0, S("12345678901234567890"), 10, 9, S("123456789abcdefghij"));
- test(S("abcdefghij"), 0, S("12345678901234567890"), 10, 10, S("1234567890abcdefghij"));
- test(S("abcdefghij"), 0, S("12345678901234567890"), 10, 11, S("1234567890abcdefghij"));
- test(S("abcdefghij"), 0, S("12345678901234567890"), 19, 0, S("abcdefghij"));
- test(S("abcdefghij"), 0, S("12345678901234567890"), 19, 1, S("0abcdefghij"));
- test(S("abcdefghij"), 0, S("12345678901234567890"), 19, 2, S("0abcdefghij"));
- test(S("abcdefghij"), 0, S("12345678901234567890"), 20, 0, S("abcdefghij"));
- test(S("abcdefghij"), 0, S("12345678901234567890"), 20, 1, S("abcdefghij"));
- test(S("abcdefghij"), 0, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghij"), 1, S(""), 0, 0, S("abcdefghij"));
- test(S("abcdefghij"), 1, S(""), 0, 1, S("abcdefghij"));
- test(S("abcdefghij"), 1, S(""), 1, 0, S("can't happen"));
- test(S("abcdefghij"), 1, S("12345"), 0, 0, S("abcdefghij"));
- test(S("abcdefghij"), 1, S("12345"), 0, 1, S("a1bcdefghij"));
- test(S("abcdefghij"), 1, S("12345"), 0, 2, S("a12bcdefghij"));
- test(S("abcdefghij"), 1, S("12345"), 0, 4, S("a1234bcdefghij"));
- test(S("abcdefghij"), 1, S("12345"), 0, 5, S("a12345bcdefghij"));
- test(S("abcdefghij"), 1, S("12345"), 0, 6, S("a12345bcdefghij"));
- test(S("abcdefghij"), 1, S("12345"), 1, 0, S("abcdefghij"));
- test(S("abcdefghij"), 1, S("12345"), 1, 1, S("a2bcdefghij"));
- test(S("abcdefghij"), 1, S("12345"), 1, 2, S("a23bcdefghij"));
- test(S("abcdefghij"), 1, S("12345"), 1, 3, S("a234bcdefghij"));
- test(S("abcdefghij"), 1, S("12345"), 1, 4, S("a2345bcdefghij"));
- test(S("abcdefghij"), 1, S("12345"), 1, 5, S("a2345bcdefghij"));
- test(S("abcdefghij"), 1, S("12345"), 2, 0, S("abcdefghij"));
- test(S("abcdefghij"), 1, S("12345"), 2, 1, S("a3bcdefghij"));
- test(S("abcdefghij"), 1, S("12345"), 2, 2, S("a34bcdefghij"));
- test(S("abcdefghij"), 1, S("12345"), 2, 3, S("a345bcdefghij"));
- test(S("abcdefghij"), 1, S("12345"), 2, 4, S("a345bcdefghij"));
- test(S("abcdefghij"), 1, S("12345"), 4, 0, S("abcdefghij"));
- test(S("abcdefghij"), 1, S("12345"), 4, 1, S("a5bcdefghij"));
- test(S("abcdefghij"), 1, S("12345"), 4, 2, S("a5bcdefghij"));
- test(S("abcdefghij"), 1, S("12345"), 5, 0, S("abcdefghij"));
- test(S("abcdefghij"), 1, S("12345"), 5, 1, S("abcdefghij"));
- test(S("abcdefghij"), 1, S("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghij"), 1, S("1234567890"), 0, 0, S("abcdefghij"));
- test(S("abcdefghij"), 1, S("1234567890"), 0, 1, S("a1bcdefghij"));
- test(S("abcdefghij"), 1, S("1234567890"), 0, 5, S("a12345bcdefghij"));
- test(S("abcdefghij"), 1, S("1234567890"), 0, 9, S("a123456789bcdefghij"));
- test(S("abcdefghij"), 1, S("1234567890"), 0, 10, S("a1234567890bcdefghij"));
- test(S("abcdefghij"), 1, S("1234567890"), 0, 11, S("a1234567890bcdefghij"));
- test(S("abcdefghij"), 1, S("1234567890"), 1, 0, S("abcdefghij"));
- test(S("abcdefghij"), 1, S("1234567890"), 1, 1, S("a2bcdefghij"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test13() {
+ test(S("abcdefghij"), 0, S("12345678901234567890"), 1, 9, S("234567890abcdefghij"));
+ test(S("abcdefghij"), 0, S("12345678901234567890"), 1, 18, S("234567890123456789abcdefghij"));
+ test(S("abcdefghij"), 0, S("12345678901234567890"), 1, 19, S("2345678901234567890abcdefghij"));
+ test(S("abcdefghij"), 0, S("12345678901234567890"), 1, 20, S("2345678901234567890abcdefghij"));
+ test(S("abcdefghij"), 0, S("12345678901234567890"), 10, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 0, S("12345678901234567890"), 10, 1, S("1abcdefghij"));
+ test(S("abcdefghij"), 0, S("12345678901234567890"), 10, 5, S("12345abcdefghij"));
+ test(S("abcdefghij"), 0, S("12345678901234567890"), 10, 9, S("123456789abcdefghij"));
+ test(S("abcdefghij"), 0, S("12345678901234567890"), 10, 10, S("1234567890abcdefghij"));
+ test(S("abcdefghij"), 0, S("12345678901234567890"), 10, 11, S("1234567890abcdefghij"));
+ test(S("abcdefghij"), 0, S("12345678901234567890"), 19, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 0, S("12345678901234567890"), 19, 1, S("0abcdefghij"));
+ test(S("abcdefghij"), 0, S("12345678901234567890"), 19, 2, S("0abcdefghij"));
+ test(S("abcdefghij"), 0, S("12345678901234567890"), 20, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 0, S("12345678901234567890"), 20, 1, S("abcdefghij"));
+ test(S("abcdefghij"), 0, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghij"), 1, S(""), 0, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 1, S(""), 0, 1, S("abcdefghij"));
+ test(S("abcdefghij"), 1, S(""), 1, 0, S("can't happen"));
+ test(S("abcdefghij"), 1, S("12345"), 0, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 1, S("12345"), 0, 1, S("a1bcdefghij"));
+ test(S("abcdefghij"), 1, S("12345"), 0, 2, S("a12bcdefghij"));
+ test(S("abcdefghij"), 1, S("12345"), 0, 4, S("a1234bcdefghij"));
+ test(S("abcdefghij"), 1, S("12345"), 0, 5, S("a12345bcdefghij"));
+ test(S("abcdefghij"), 1, S("12345"), 0, 6, S("a12345bcdefghij"));
+ test(S("abcdefghij"), 1, S("12345"), 1, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 1, S("12345"), 1, 1, S("a2bcdefghij"));
+ test(S("abcdefghij"), 1, S("12345"), 1, 2, S("a23bcdefghij"));
+ test(S("abcdefghij"), 1, S("12345"), 1, 3, S("a234bcdefghij"));
+ test(S("abcdefghij"), 1, S("12345"), 1, 4, S("a2345bcdefghij"));
+ test(S("abcdefghij"), 1, S("12345"), 1, 5, S("a2345bcdefghij"));
+ test(S("abcdefghij"), 1, S("12345"), 2, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 1, S("12345"), 2, 1, S("a3bcdefghij"));
+ test(S("abcdefghij"), 1, S("12345"), 2, 2, S("a34bcdefghij"));
+ test(S("abcdefghij"), 1, S("12345"), 2, 3, S("a345bcdefghij"));
+ test(S("abcdefghij"), 1, S("12345"), 2, 4, S("a345bcdefghij"));
+ test(S("abcdefghij"), 1, S("12345"), 4, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 1, S("12345"), 4, 1, S("a5bcdefghij"));
+ test(S("abcdefghij"), 1, S("12345"), 4, 2, S("a5bcdefghij"));
+ test(S("abcdefghij"), 1, S("12345"), 5, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 1, S("12345"), 5, 1, S("abcdefghij"));
+ test(S("abcdefghij"), 1, S("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghij"), 1, S("1234567890"), 0, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 1, S("1234567890"), 0, 1, S("a1bcdefghij"));
+ test(S("abcdefghij"), 1, S("1234567890"), 0, 5, S("a12345bcdefghij"));
+ test(S("abcdefghij"), 1, S("1234567890"), 0, 9, S("a123456789bcdefghij"));
+ test(S("abcdefghij"), 1, S("1234567890"), 0, 10, S("a1234567890bcdefghij"));
+ test(S("abcdefghij"), 1, S("1234567890"), 0, 11, S("a1234567890bcdefghij"));
+ test(S("abcdefghij"), 1, S("1234567890"), 1, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 1, S("1234567890"), 1, 1, S("a2bcdefghij"));
+
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test14()
-{
- test(S("abcdefghij"), 1, S("1234567890"), 1, 4, S("a2345bcdefghij"));
- test(S("abcdefghij"), 1, S("1234567890"), 1, 8, S("a23456789bcdefghij"));
- test(S("abcdefghij"), 1, S("1234567890"), 1, 9, S("a234567890bcdefghij"));
- test(S("abcdefghij"), 1, S("1234567890"), 1, 10, S("a234567890bcdefghij"));
- test(S("abcdefghij"), 1, S("1234567890"), 5, 0, S("abcdefghij"));
- test(S("abcdefghij"), 1, S("1234567890"), 5, 1, S("a6bcdefghij"));
- test(S("abcdefghij"), 1, S("1234567890"), 5, 2, S("a67bcdefghij"));
- test(S("abcdefghij"), 1, S("1234567890"), 5, 4, S("a6789bcdefghij"));
- test(S("abcdefghij"), 1, S("1234567890"), 5, 5, S("a67890bcdefghij"));
- test(S("abcdefghij"), 1, S("1234567890"), 5, 6, S("a67890bcdefghij"));
- test(S("abcdefghij"), 1, S("1234567890"), 9, 0, S("abcdefghij"));
- test(S("abcdefghij"), 1, S("1234567890"), 9, 1, S("a0bcdefghij"));
- test(S("abcdefghij"), 1, S("1234567890"), 9, 2, S("a0bcdefghij"));
- test(S("abcdefghij"), 1, S("1234567890"), 10, 0, S("abcdefghij"));
- test(S("abcdefghij"), 1, S("1234567890"), 10, 1, S("abcdefghij"));
- test(S("abcdefghij"), 1, S("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghij"), 1, S("12345678901234567890"), 0, 0, S("abcdefghij"));
- test(S("abcdefghij"), 1, S("12345678901234567890"), 0, 1, S("a1bcdefghij"));
- test(S("abcdefghij"), 1, S("12345678901234567890"), 0, 10, S("a1234567890bcdefghij"));
- test(S("abcdefghij"), 1, S("12345678901234567890"), 0, 19, S("a1234567890123456789bcdefghij"));
- test(S("abcdefghij"), 1, S("12345678901234567890"), 0, 20, S("a12345678901234567890bcdefghij"));
- test(S("abcdefghij"), 1, S("12345678901234567890"), 0, 21, S("a12345678901234567890bcdefghij"));
- test(S("abcdefghij"), 1, S("12345678901234567890"), 1, 0, S("abcdefghij"));
- test(S("abcdefghij"), 1, S("12345678901234567890"), 1, 1, S("a2bcdefghij"));
- test(S("abcdefghij"), 1, S("12345678901234567890"), 1, 9, S("a234567890bcdefghij"));
- test(S("abcdefghij"), 1, S("12345678901234567890"), 1, 18, S("a234567890123456789bcdefghij"));
- test(S("abcdefghij"), 1, S("12345678901234567890"), 1, 19, S("a2345678901234567890bcdefghij"));
- test(S("abcdefghij"), 1, S("12345678901234567890"), 1, 20, S("a2345678901234567890bcdefghij"));
- test(S("abcdefghij"), 1, S("12345678901234567890"), 10, 0, S("abcdefghij"));
- test(S("abcdefghij"), 1, S("12345678901234567890"), 10, 1, S("a1bcdefghij"));
- test(S("abcdefghij"), 1, S("12345678901234567890"), 10, 5, S("a12345bcdefghij"));
- test(S("abcdefghij"), 1, S("12345678901234567890"), 10, 9, S("a123456789bcdefghij"));
- test(S("abcdefghij"), 1, S("12345678901234567890"), 10, 10, S("a1234567890bcdefghij"));
- test(S("abcdefghij"), 1, S("12345678901234567890"), 10, 11, S("a1234567890bcdefghij"));
- test(S("abcdefghij"), 1, S("12345678901234567890"), 19, 0, S("abcdefghij"));
- test(S("abcdefghij"), 1, S("12345678901234567890"), 19, 1, S("a0bcdefghij"));
- test(S("abcdefghij"), 1, S("12345678901234567890"), 19, 2, S("a0bcdefghij"));
- test(S("abcdefghij"), 1, S("12345678901234567890"), 20, 0, S("abcdefghij"));
- test(S("abcdefghij"), 1, S("12345678901234567890"), 20, 1, S("abcdefghij"));
- test(S("abcdefghij"), 1, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghij"), 5, S(""), 0, 0, S("abcdefghij"));
- test(S("abcdefghij"), 5, S(""), 0, 1, S("abcdefghij"));
- test(S("abcdefghij"), 5, S(""), 1, 0, S("can't happen"));
- test(S("abcdefghij"), 5, S("12345"), 0, 0, S("abcdefghij"));
- test(S("abcdefghij"), 5, S("12345"), 0, 1, S("abcde1fghij"));
- test(S("abcdefghij"), 5, S("12345"), 0, 2, S("abcde12fghij"));
- test(S("abcdefghij"), 5, S("12345"), 0, 4, S("abcde1234fghij"));
- test(S("abcdefghij"), 5, S("12345"), 0, 5, S("abcde12345fghij"));
- test(S("abcdefghij"), 5, S("12345"), 0, 6, S("abcde12345fghij"));
- test(S("abcdefghij"), 5, S("12345"), 1, 0, S("abcdefghij"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test14() {
+ test(S("abcdefghij"), 1, S("1234567890"), 1, 4, S("a2345bcdefghij"));
+ test(S("abcdefghij"), 1, S("1234567890"), 1, 8, S("a23456789bcdefghij"));
+ test(S("abcdefghij"), 1, S("1234567890"), 1, 9, S("a234567890bcdefghij"));
+ test(S("abcdefghij"), 1, S("1234567890"), 1, 10, S("a234567890bcdefghij"));
+ test(S("abcdefghij"), 1, S("1234567890"), 5, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 1, S("1234567890"), 5, 1, S("a6bcdefghij"));
+ test(S("abcdefghij"), 1, S("1234567890"), 5, 2, S("a67bcdefghij"));
+ test(S("abcdefghij"), 1, S("1234567890"), 5, 4, S("a6789bcdefghij"));
+ test(S("abcdefghij"), 1, S("1234567890"), 5, 5, S("a67890bcdefghij"));
+ test(S("abcdefghij"), 1, S("1234567890"), 5, 6, S("a67890bcdefghij"));
+ test(S("abcdefghij"), 1, S("1234567890"), 9, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 1, S("1234567890"), 9, 1, S("a0bcdefghij"));
+ test(S("abcdefghij"), 1, S("1234567890"), 9, 2, S("a0bcdefghij"));
+ test(S("abcdefghij"), 1, S("1234567890"), 10, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 1, S("1234567890"), 10, 1, S("abcdefghij"));
+ test(S("abcdefghij"), 1, S("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghij"), 1, S("12345678901234567890"), 0, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 1, S("12345678901234567890"), 0, 1, S("a1bcdefghij"));
+ test(S("abcdefghij"), 1, S("12345678901234567890"), 0, 10, S("a1234567890bcdefghij"));
+ test(S("abcdefghij"), 1, S("12345678901234567890"), 0, 19, S("a1234567890123456789bcdefghij"));
+ test(S("abcdefghij"), 1, S("12345678901234567890"), 0, 20, S("a12345678901234567890bcdefghij"));
+ test(S("abcdefghij"), 1, S("12345678901234567890"), 0, 21, S("a12345678901234567890bcdefghij"));
+ test(S("abcdefghij"), 1, S("12345678901234567890"), 1, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 1, S("12345678901234567890"), 1, 1, S("a2bcdefghij"));
+ test(S("abcdefghij"), 1, S("12345678901234567890"), 1, 9, S("a234567890bcdefghij"));
+ test(S("abcdefghij"), 1, S("12345678901234567890"), 1, 18, S("a234567890123456789bcdefghij"));
+ test(S("abcdefghij"), 1, S("12345678901234567890"), 1, 19, S("a2345678901234567890bcdefghij"));
+ test(S("abcdefghij"), 1, S("12345678901234567890"), 1, 20, S("a2345678901234567890bcdefghij"));
+ test(S("abcdefghij"), 1, S("12345678901234567890"), 10, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 1, S("12345678901234567890"), 10, 1, S("a1bcdefghij"));
+ test(S("abcdefghij"), 1, S("12345678901234567890"), 10, 5, S("a12345bcdefghij"));
+ test(S("abcdefghij"), 1, S("12345678901234567890"), 10, 9, S("a123456789bcdefghij"));
+ test(S("abcdefghij"), 1, S("12345678901234567890"), 10, 10, S("a1234567890bcdefghij"));
+ test(S("abcdefghij"), 1, S("12345678901234567890"), 10, 11, S("a1234567890bcdefghij"));
+ test(S("abcdefghij"), 1, S("12345678901234567890"), 19, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 1, S("12345678901234567890"), 19, 1, S("a0bcdefghij"));
+ test(S("abcdefghij"), 1, S("12345678901234567890"), 19, 2, S("a0bcdefghij"));
+ test(S("abcdefghij"), 1, S("12345678901234567890"), 20, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 1, S("12345678901234567890"), 20, 1, S("abcdefghij"));
+ test(S("abcdefghij"), 1, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghij"), 5, S(""), 0, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 5, S(""), 0, 1, S("abcdefghij"));
+ test(S("abcdefghij"), 5, S(""), 1, 0, S("can't happen"));
+ test(S("abcdefghij"), 5, S("12345"), 0, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 5, S("12345"), 0, 1, S("abcde1fghij"));
+ test(S("abcdefghij"), 5, S("12345"), 0, 2, S("abcde12fghij"));
+ test(S("abcdefghij"), 5, S("12345"), 0, 4, S("abcde1234fghij"));
+ test(S("abcdefghij"), 5, S("12345"), 0, 5, S("abcde12345fghij"));
+ test(S("abcdefghij"), 5, S("12345"), 0, 6, S("abcde12345fghij"));
+ test(S("abcdefghij"), 5, S("12345"), 1, 0, S("abcdefghij"));
+
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test15()
-{
- test(S("abcdefghij"), 5, S("12345"), 1, 1, S("abcde2fghij"));
- test(S("abcdefghij"), 5, S("12345"), 1, 2, S("abcde23fghij"));
- test(S("abcdefghij"), 5, S("12345"), 1, 3, S("abcde234fghij"));
- test(S("abcdefghij"), 5, S("12345"), 1, 4, S("abcde2345fghij"));
- test(S("abcdefghij"), 5, S("12345"), 1, 5, S("abcde2345fghij"));
- test(S("abcdefghij"), 5, S("12345"), 2, 0, S("abcdefghij"));
- test(S("abcdefghij"), 5, S("12345"), 2, 1, S("abcde3fghij"));
- test(S("abcdefghij"), 5, S("12345"), 2, 2, S("abcde34fghij"));
- test(S("abcdefghij"), 5, S("12345"), 2, 3, S("abcde345fghij"));
- test(S("abcdefghij"), 5, S("12345"), 2, 4, S("abcde345fghij"));
- test(S("abcdefghij"), 5, S("12345"), 4, 0, S("abcdefghij"));
- test(S("abcdefghij"), 5, S("12345"), 4, 1, S("abcde5fghij"));
- test(S("abcdefghij"), 5, S("12345"), 4, 2, S("abcde5fghij"));
- test(S("abcdefghij"), 5, S("12345"), 5, 0, S("abcdefghij"));
- test(S("abcdefghij"), 5, S("12345"), 5, 1, S("abcdefghij"));
- test(S("abcdefghij"), 5, S("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghij"), 5, S("1234567890"), 0, 0, S("abcdefghij"));
- test(S("abcdefghij"), 5, S("1234567890"), 0, 1, S("abcde1fghij"));
- test(S("abcdefghij"), 5, S("1234567890"), 0, 5, S("abcde12345fghij"));
- test(S("abcdefghij"), 5, S("1234567890"), 0, 9, S("abcde123456789fghij"));
- test(S("abcdefghij"), 5, S("1234567890"), 0, 10, S("abcde1234567890fghij"));
- test(S("abcdefghij"), 5, S("1234567890"), 0, 11, S("abcde1234567890fghij"));
- test(S("abcdefghij"), 5, S("1234567890"), 1, 0, S("abcdefghij"));
- test(S("abcdefghij"), 5, S("1234567890"), 1, 1, S("abcde2fghij"));
- test(S("abcdefghij"), 5, S("1234567890"), 1, 4, S("abcde2345fghij"));
- test(S("abcdefghij"), 5, S("1234567890"), 1, 8, S("abcde23456789fghij"));
- test(S("abcdefghij"), 5, S("1234567890"), 1, 9, S("abcde234567890fghij"));
- test(S("abcdefghij"), 5, S("1234567890"), 1, 10, S("abcde234567890fghij"));
- test(S("abcdefghij"), 5, S("1234567890"), 5, 0, S("abcdefghij"));
- test(S("abcdefghij"), 5, S("1234567890"), 5, 1, S("abcde6fghij"));
- test(S("abcdefghij"), 5, S("1234567890"), 5, 2, S("abcde67fghij"));
- test(S("abcdefghij"), 5, S("1234567890"), 5, 4, S("abcde6789fghij"));
- test(S("abcdefghij"), 5, S("1234567890"), 5, 5, S("abcde67890fghij"));
- test(S("abcdefghij"), 5, S("1234567890"), 5, 6, S("abcde67890fghij"));
- test(S("abcdefghij"), 5, S("1234567890"), 9, 0, S("abcdefghij"));
- test(S("abcdefghij"), 5, S("1234567890"), 9, 1, S("abcde0fghij"));
- test(S("abcdefghij"), 5, S("1234567890"), 9, 2, S("abcde0fghij"));
- test(S("abcdefghij"), 5, S("1234567890"), 10, 0, S("abcdefghij"));
- test(S("abcdefghij"), 5, S("1234567890"), 10, 1, S("abcdefghij"));
- test(S("abcdefghij"), 5, S("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghij"), 5, S("12345678901234567890"), 0, 0, S("abcdefghij"));
- test(S("abcdefghij"), 5, S("12345678901234567890"), 0, 1, S("abcde1fghij"));
- test(S("abcdefghij"), 5, S("12345678901234567890"), 0, 10, S("abcde1234567890fghij"));
- test(S("abcdefghij"), 5, S("12345678901234567890"), 0, 19, S("abcde1234567890123456789fghij"));
- test(S("abcdefghij"), 5, S("12345678901234567890"), 0, 20, S("abcde12345678901234567890fghij"));
- test(S("abcdefghij"), 5, S("12345678901234567890"), 0, 21, S("abcde12345678901234567890fghij"));
- test(S("abcdefghij"), 5, S("12345678901234567890"), 1, 0, S("abcdefghij"));
- test(S("abcdefghij"), 5, S("12345678901234567890"), 1, 1, S("abcde2fghij"));
- test(S("abcdefghij"), 5, S("12345678901234567890"), 1, 9, S("abcde234567890fghij"));
- test(S("abcdefghij"), 5, S("12345678901234567890"), 1, 18, S("abcde234567890123456789fghij"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test15() {
+ test(S("abcdefghij"), 5, S("12345"), 1, 1, S("abcde2fghij"));
+ test(S("abcdefghij"), 5, S("12345"), 1, 2, S("abcde23fghij"));
+ test(S("abcdefghij"), 5, S("12345"), 1, 3, S("abcde234fghij"));
+ test(S("abcdefghij"), 5, S("12345"), 1, 4, S("abcde2345fghij"));
+ test(S("abcdefghij"), 5, S("12345"), 1, 5, S("abcde2345fghij"));
+ test(S("abcdefghij"), 5, S("12345"), 2, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 5, S("12345"), 2, 1, S("abcde3fghij"));
+ test(S("abcdefghij"), 5, S("12345"), 2, 2, S("abcde34fghij"));
+ test(S("abcdefghij"), 5, S("12345"), 2, 3, S("abcde345fghij"));
+ test(S("abcdefghij"), 5, S("12345"), 2, 4, S("abcde345fghij"));
+ test(S("abcdefghij"), 5, S("12345"), 4, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 5, S("12345"), 4, 1, S("abcde5fghij"));
+ test(S("abcdefghij"), 5, S("12345"), 4, 2, S("abcde5fghij"));
+ test(S("abcdefghij"), 5, S("12345"), 5, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 5, S("12345"), 5, 1, S("abcdefghij"));
+ test(S("abcdefghij"), 5, S("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghij"), 5, S("1234567890"), 0, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 5, S("1234567890"), 0, 1, S("abcde1fghij"));
+ test(S("abcdefghij"), 5, S("1234567890"), 0, 5, S("abcde12345fghij"));
+ test(S("abcdefghij"), 5, S("1234567890"), 0, 9, S("abcde123456789fghij"));
+ test(S("abcdefghij"), 5, S("1234567890"), 0, 10, S("abcde1234567890fghij"));
+ test(S("abcdefghij"), 5, S("1234567890"), 0, 11, S("abcde1234567890fghij"));
+ test(S("abcdefghij"), 5, S("1234567890"), 1, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 5, S("1234567890"), 1, 1, S("abcde2fghij"));
+ test(S("abcdefghij"), 5, S("1234567890"), 1, 4, S("abcde2345fghij"));
+ test(S("abcdefghij"), 5, S("1234567890"), 1, 8, S("abcde23456789fghij"));
+ test(S("abcdefghij"), 5, S("1234567890"), 1, 9, S("abcde234567890fghij"));
+ test(S("abcdefghij"), 5, S("1234567890"), 1, 10, S("abcde234567890fghij"));
+ test(S("abcdefghij"), 5, S("1234567890"), 5, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 5, S("1234567890"), 5, 1, S("abcde6fghij"));
+ test(S("abcdefghij"), 5, S("1234567890"), 5, 2, S("abcde67fghij"));
+ test(S("abcdefghij"), 5, S("1234567890"), 5, 4, S("abcde6789fghij"));
+ test(S("abcdefghij"), 5, S("1234567890"), 5, 5, S("abcde67890fghij"));
+ test(S("abcdefghij"), 5, S("1234567890"), 5, 6, S("abcde67890fghij"));
+ test(S("abcdefghij"), 5, S("1234567890"), 9, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 5, S("1234567890"), 9, 1, S("abcde0fghij"));
+ test(S("abcdefghij"), 5, S("1234567890"), 9, 2, S("abcde0fghij"));
+ test(S("abcdefghij"), 5, S("1234567890"), 10, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 5, S("1234567890"), 10, 1, S("abcdefghij"));
+ test(S("abcdefghij"), 5, S("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghij"), 5, S("12345678901234567890"), 0, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 5, S("12345678901234567890"), 0, 1, S("abcde1fghij"));
+ test(S("abcdefghij"), 5, S("12345678901234567890"), 0, 10, S("abcde1234567890fghij"));
+ test(S("abcdefghij"), 5, S("12345678901234567890"), 0, 19, S("abcde1234567890123456789fghij"));
+ test(S("abcdefghij"), 5, S("12345678901234567890"), 0, 20, S("abcde12345678901234567890fghij"));
+ test(S("abcdefghij"), 5, S("12345678901234567890"), 0, 21, S("abcde12345678901234567890fghij"));
+ test(S("abcdefghij"), 5, S("12345678901234567890"), 1, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 5, S("12345678901234567890"), 1, 1, S("abcde2fghij"));
+ test(S("abcdefghij"), 5, S("12345678901234567890"), 1, 9, S("abcde234567890fghij"));
+ test(S("abcdefghij"), 5, S("12345678901234567890"), 1, 18, S("abcde234567890123456789fghij"));
+
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test16()
-{
- test(S("abcdefghij"), 5, S("12345678901234567890"), 1, 19, S("abcde2345678901234567890fghij"));
- test(S("abcdefghij"), 5, S("12345678901234567890"), 1, 20, S("abcde2345678901234567890fghij"));
- test(S("abcdefghij"), 5, S("12345678901234567890"), 10, 0, S("abcdefghij"));
- test(S("abcdefghij"), 5, S("12345678901234567890"), 10, 1, S("abcde1fghij"));
- test(S("abcdefghij"), 5, S("12345678901234567890"), 10, 5, S("abcde12345fghij"));
- test(S("abcdefghij"), 5, S("12345678901234567890"), 10, 9, S("abcde123456789fghij"));
- test(S("abcdefghij"), 5, S("12345678901234567890"), 10, 10, S("abcde1234567890fghij"));
- test(S("abcdefghij"), 5, S("12345678901234567890"), 10, 11, S("abcde1234567890fghij"));
- test(S("abcdefghij"), 5, S("12345678901234567890"), 19, 0, S("abcdefghij"));
- test(S("abcdefghij"), 5, S("12345678901234567890"), 19, 1, S("abcde0fghij"));
- test(S("abcdefghij"), 5, S("12345678901234567890"), 19, 2, S("abcde0fghij"));
- test(S("abcdefghij"), 5, S("12345678901234567890"), 20, 0, S("abcdefghij"));
- test(S("abcdefghij"), 5, S("12345678901234567890"), 20, 1, S("abcdefghij"));
- test(S("abcdefghij"), 5, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghij"), 9, S(""), 0, 0, S("abcdefghij"));
- test(S("abcdefghij"), 9, S(""), 0, 1, S("abcdefghij"));
- test(S("abcdefghij"), 9, S(""), 1, 0, S("can't happen"));
- test(S("abcdefghij"), 9, S("12345"), 0, 0, S("abcdefghij"));
- test(S("abcdefghij"), 9, S("12345"), 0, 1, S("abcdefghi1j"));
- test(S("abcdefghij"), 9, S("12345"), 0, 2, S("abcdefghi12j"));
- test(S("abcdefghij"), 9, S("12345"), 0, 4, S("abcdefghi1234j"));
- test(S("abcdefghij"), 9, S("12345"), 0, 5, S("abcdefghi12345j"));
- test(S("abcdefghij"), 9, S("12345"), 0, 6, S("abcdefghi12345j"));
- test(S("abcdefghij"), 9, S("12345"), 1, 0, S("abcdefghij"));
- test(S("abcdefghij"), 9, S("12345"), 1, 1, S("abcdefghi2j"));
- test(S("abcdefghij"), 9, S("12345"), 1, 2, S("abcdefghi23j"));
- test(S("abcdefghij"), 9, S("12345"), 1, 3, S("abcdefghi234j"));
- test(S("abcdefghij"), 9, S("12345"), 1, 4, S("abcdefghi2345j"));
- test(S("abcdefghij"), 9, S("12345"), 1, 5, S("abcdefghi2345j"));
- test(S("abcdefghij"), 9, S("12345"), 2, 0, S("abcdefghij"));
- test(S("abcdefghij"), 9, S("12345"), 2, 1, S("abcdefghi3j"));
- test(S("abcdefghij"), 9, S("12345"), 2, 2, S("abcdefghi34j"));
- test(S("abcdefghij"), 9, S("12345"), 2, 3, S("abcdefghi345j"));
- test(S("abcdefghij"), 9, S("12345"), 2, 4, S("abcdefghi345j"));
- test(S("abcdefghij"), 9, S("12345"), 4, 0, S("abcdefghij"));
- test(S("abcdefghij"), 9, S("12345"), 4, 1, S("abcdefghi5j"));
- test(S("abcdefghij"), 9, S("12345"), 4, 2, S("abcdefghi5j"));
- test(S("abcdefghij"), 9, S("12345"), 5, 0, S("abcdefghij"));
- test(S("abcdefghij"), 9, S("12345"), 5, 1, S("abcdefghij"));
- test(S("abcdefghij"), 9, S("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghij"), 9, S("1234567890"), 0, 0, S("abcdefghij"));
- test(S("abcdefghij"), 9, S("1234567890"), 0, 1, S("abcdefghi1j"));
- test(S("abcdefghij"), 9, S("1234567890"), 0, 5, S("abcdefghi12345j"));
- test(S("abcdefghij"), 9, S("1234567890"), 0, 9, S("abcdefghi123456789j"));
- test(S("abcdefghij"), 9, S("1234567890"), 0, 10, S("abcdefghi1234567890j"));
- test(S("abcdefghij"), 9, S("1234567890"), 0, 11, S("abcdefghi1234567890j"));
- test(S("abcdefghij"), 9, S("1234567890"), 1, 0, S("abcdefghij"));
- test(S("abcdefghij"), 9, S("1234567890"), 1, 1, S("abcdefghi2j"));
- test(S("abcdefghij"), 9, S("1234567890"), 1, 4, S("abcdefghi2345j"));
- test(S("abcdefghij"), 9, S("1234567890"), 1, 8, S("abcdefghi23456789j"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test16() {
+ test(S("abcdefghij"), 5, S("12345678901234567890"), 1, 19, S("abcde2345678901234567890fghij"));
+ test(S("abcdefghij"), 5, S("12345678901234567890"), 1, 20, S("abcde2345678901234567890fghij"));
+ test(S("abcdefghij"), 5, S("12345678901234567890"), 10, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 5, S("12345678901234567890"), 10, 1, S("abcde1fghij"));
+ test(S("abcdefghij"), 5, S("12345678901234567890"), 10, 5, S("abcde12345fghij"));
+ test(S("abcdefghij"), 5, S("12345678901234567890"), 10, 9, S("abcde123456789fghij"));
+ test(S("abcdefghij"), 5, S("12345678901234567890"), 10, 10, S("abcde1234567890fghij"));
+ test(S("abcdefghij"), 5, S("12345678901234567890"), 10, 11, S("abcde1234567890fghij"));
+ test(S("abcdefghij"), 5, S("12345678901234567890"), 19, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 5, S("12345678901234567890"), 19, 1, S("abcde0fghij"));
+ test(S("abcdefghij"), 5, S("12345678901234567890"), 19, 2, S("abcde0fghij"));
+ test(S("abcdefghij"), 5, S("12345678901234567890"), 20, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 5, S("12345678901234567890"), 20, 1, S("abcdefghij"));
+ test(S("abcdefghij"), 5, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghij"), 9, S(""), 0, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 9, S(""), 0, 1, S("abcdefghij"));
+ test(S("abcdefghij"), 9, S(""), 1, 0, S("can't happen"));
+ test(S("abcdefghij"), 9, S("12345"), 0, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 9, S("12345"), 0, 1, S("abcdefghi1j"));
+ test(S("abcdefghij"), 9, S("12345"), 0, 2, S("abcdefghi12j"));
+ test(S("abcdefghij"), 9, S("12345"), 0, 4, S("abcdefghi1234j"));
+ test(S("abcdefghij"), 9, S("12345"), 0, 5, S("abcdefghi12345j"));
+ test(S("abcdefghij"), 9, S("12345"), 0, 6, S("abcdefghi12345j"));
+ test(S("abcdefghij"), 9, S("12345"), 1, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 9, S("12345"), 1, 1, S("abcdefghi2j"));
+ test(S("abcdefghij"), 9, S("12345"), 1, 2, S("abcdefghi23j"));
+ test(S("abcdefghij"), 9, S("12345"), 1, 3, S("abcdefghi234j"));
+ test(S("abcdefghij"), 9, S("12345"), 1, 4, S("abcdefghi2345j"));
+ test(S("abcdefghij"), 9, S("12345"), 1, 5, S("abcdefghi2345j"));
+ test(S("abcdefghij"), 9, S("12345"), 2, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 9, S("12345"), 2, 1, S("abcdefghi3j"));
+ test(S("abcdefghij"), 9, S("12345"), 2, 2, S("abcdefghi34j"));
+ test(S("abcdefghij"), 9, S("12345"), 2, 3, S("abcdefghi345j"));
+ test(S("abcdefghij"), 9, S("12345"), 2, 4, S("abcdefghi345j"));
+ test(S("abcdefghij"), 9, S("12345"), 4, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 9, S("12345"), 4, 1, S("abcdefghi5j"));
+ test(S("abcdefghij"), 9, S("12345"), 4, 2, S("abcdefghi5j"));
+ test(S("abcdefghij"), 9, S("12345"), 5, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 9, S("12345"), 5, 1, S("abcdefghij"));
+ test(S("abcdefghij"), 9, S("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghij"), 9, S("1234567890"), 0, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 9, S("1234567890"), 0, 1, S("abcdefghi1j"));
+ test(S("abcdefghij"), 9, S("1234567890"), 0, 5, S("abcdefghi12345j"));
+ test(S("abcdefghij"), 9, S("1234567890"), 0, 9, S("abcdefghi123456789j"));
+ test(S("abcdefghij"), 9, S("1234567890"), 0, 10, S("abcdefghi1234567890j"));
+ test(S("abcdefghij"), 9, S("1234567890"), 0, 11, S("abcdefghi1234567890j"));
+ test(S("abcdefghij"), 9, S("1234567890"), 1, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 9, S("1234567890"), 1, 1, S("abcdefghi2j"));
+ test(S("abcdefghij"), 9, S("1234567890"), 1, 4, S("abcdefghi2345j"));
+ test(S("abcdefghij"), 9, S("1234567890"), 1, 8, S("abcdefghi23456789j"));
+
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test17()
-{
- test(S("abcdefghij"), 9, S("1234567890"), 1, 9, S("abcdefghi234567890j"));
- test(S("abcdefghij"), 9, S("1234567890"), 1, 10, S("abcdefghi234567890j"));
- test(S("abcdefghij"), 9, S("1234567890"), 5, 0, S("abcdefghij"));
- test(S("abcdefghij"), 9, S("1234567890"), 5, 1, S("abcdefghi6j"));
- test(S("abcdefghij"), 9, S("1234567890"), 5, 2, S("abcdefghi67j"));
- test(S("abcdefghij"), 9, S("1234567890"), 5, 4, S("abcdefghi6789j"));
- test(S("abcdefghij"), 9, S("1234567890"), 5, 5, S("abcdefghi67890j"));
- test(S("abcdefghij"), 9, S("1234567890"), 5, 6, S("abcdefghi67890j"));
- test(S("abcdefghij"), 9, S("1234567890"), 9, 0, S("abcdefghij"));
- test(S("abcdefghij"), 9, S("1234567890"), 9, 1, S("abcdefghi0j"));
- test(S("abcdefghij"), 9, S("1234567890"), 9, 2, S("abcdefghi0j"));
- test(S("abcdefghij"), 9, S("1234567890"), 10, 0, S("abcdefghij"));
- test(S("abcdefghij"), 9, S("1234567890"), 10, 1, S("abcdefghij"));
- test(S("abcdefghij"), 9, S("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghij"), 9, S("12345678901234567890"), 0, 0, S("abcdefghij"));
- test(S("abcdefghij"), 9, S("12345678901234567890"), 0, 1, S("abcdefghi1j"));
- test(S("abcdefghij"), 9, S("12345678901234567890"), 0, 10, S("abcdefghi1234567890j"));
- test(S("abcdefghij"), 9, S("12345678901234567890"), 0, 19, S("abcdefghi1234567890123456789j"));
- test(S("abcdefghij"), 9, S("12345678901234567890"), 0, 20, S("abcdefghi12345678901234567890j"));
- test(S("abcdefghij"), 9, S("12345678901234567890"), 0, 21, S("abcdefghi12345678901234567890j"));
- test(S("abcdefghij"), 9, S("12345678901234567890"), 1, 0, S("abcdefghij"));
- test(S("abcdefghij"), 9, S("12345678901234567890"), 1, 1, S("abcdefghi2j"));
- test(S("abcdefghij"), 9, S("12345678901234567890"), 1, 9, S("abcdefghi234567890j"));
- test(S("abcdefghij"), 9, S("12345678901234567890"), 1, 18, S("abcdefghi234567890123456789j"));
- test(S("abcdefghij"), 9, S("12345678901234567890"), 1, 19, S("abcdefghi2345678901234567890j"));
- test(S("abcdefghij"), 9, S("12345678901234567890"), 1, 20, S("abcdefghi2345678901234567890j"));
- test(S("abcdefghij"), 9, S("12345678901234567890"), 10, 0, S("abcdefghij"));
- test(S("abcdefghij"), 9, S("12345678901234567890"), 10, 1, S("abcdefghi1j"));
- test(S("abcdefghij"), 9, S("12345678901234567890"), 10, 5, S("abcdefghi12345j"));
- test(S("abcdefghij"), 9, S("12345678901234567890"), 10, 9, S("abcdefghi123456789j"));
- test(S("abcdefghij"), 9, S("12345678901234567890"), 10, 10, S("abcdefghi1234567890j"));
- test(S("abcdefghij"), 9, S("12345678901234567890"), 10, 11, S("abcdefghi1234567890j"));
- test(S("abcdefghij"), 9, S("12345678901234567890"), 19, 0, S("abcdefghij"));
- test(S("abcdefghij"), 9, S("12345678901234567890"), 19, 1, S("abcdefghi0j"));
- test(S("abcdefghij"), 9, S("12345678901234567890"), 19, 2, S("abcdefghi0j"));
- test(S("abcdefghij"), 9, S("12345678901234567890"), 20, 0, S("abcdefghij"));
- test(S("abcdefghij"), 9, S("12345678901234567890"), 20, 1, S("abcdefghij"));
- test(S("abcdefghij"), 9, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghij"), 10, S(""), 0, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, S(""), 0, 1, S("abcdefghij"));
- test(S("abcdefghij"), 10, S(""), 1, 0, S("can't happen"));
- test(S("abcdefghij"), 10, S("12345"), 0, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, S("12345"), 0, 1, S("abcdefghij1"));
- test(S("abcdefghij"), 10, S("12345"), 0, 2, S("abcdefghij12"));
- test(S("abcdefghij"), 10, S("12345"), 0, 4, S("abcdefghij1234"));
- test(S("abcdefghij"), 10, S("12345"), 0, 5, S("abcdefghij12345"));
- test(S("abcdefghij"), 10, S("12345"), 0, 6, S("abcdefghij12345"));
- test(S("abcdefghij"), 10, S("12345"), 1, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, S("12345"), 1, 1, S("abcdefghij2"));
- test(S("abcdefghij"), 10, S("12345"), 1, 2, S("abcdefghij23"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test17() {
+ test(S("abcdefghij"), 9, S("1234567890"), 1, 9, S("abcdefghi234567890j"));
+ test(S("abcdefghij"), 9, S("1234567890"), 1, 10, S("abcdefghi234567890j"));
+ test(S("abcdefghij"), 9, S("1234567890"), 5, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 9, S("1234567890"), 5, 1, S("abcdefghi6j"));
+ test(S("abcdefghij"), 9, S("1234567890"), 5, 2, S("abcdefghi67j"));
+ test(S("abcdefghij"), 9, S("1234567890"), 5, 4, S("abcdefghi6789j"));
+ test(S("abcdefghij"), 9, S("1234567890"), 5, 5, S("abcdefghi67890j"));
+ test(S("abcdefghij"), 9, S("1234567890"), 5, 6, S("abcdefghi67890j"));
+ test(S("abcdefghij"), 9, S("1234567890"), 9, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 9, S("1234567890"), 9, 1, S("abcdefghi0j"));
+ test(S("abcdefghij"), 9, S("1234567890"), 9, 2, S("abcdefghi0j"));
+ test(S("abcdefghij"), 9, S("1234567890"), 10, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 9, S("1234567890"), 10, 1, S("abcdefghij"));
+ test(S("abcdefghij"), 9, S("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghij"), 9, S("12345678901234567890"), 0, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 9, S("12345678901234567890"), 0, 1, S("abcdefghi1j"));
+ test(S("abcdefghij"), 9, S("12345678901234567890"), 0, 10, S("abcdefghi1234567890j"));
+ test(S("abcdefghij"), 9, S("12345678901234567890"), 0, 19, S("abcdefghi1234567890123456789j"));
+ test(S("abcdefghij"), 9, S("12345678901234567890"), 0, 20, S("abcdefghi12345678901234567890j"));
+ test(S("abcdefghij"), 9, S("12345678901234567890"), 0, 21, S("abcdefghi12345678901234567890j"));
+ test(S("abcdefghij"), 9, S("12345678901234567890"), 1, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 9, S("12345678901234567890"), 1, 1, S("abcdefghi2j"));
+ test(S("abcdefghij"), 9, S("12345678901234567890"), 1, 9, S("abcdefghi234567890j"));
+ test(S("abcdefghij"), 9, S("12345678901234567890"), 1, 18, S("abcdefghi234567890123456789j"));
+ test(S("abcdefghij"), 9, S("12345678901234567890"), 1, 19, S("abcdefghi2345678901234567890j"));
+ test(S("abcdefghij"), 9, S("12345678901234567890"), 1, 20, S("abcdefghi2345678901234567890j"));
+ test(S("abcdefghij"), 9, S("12345678901234567890"), 10, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 9, S("12345678901234567890"), 10, 1, S("abcdefghi1j"));
+ test(S("abcdefghij"), 9, S("12345678901234567890"), 10, 5, S("abcdefghi12345j"));
+ test(S("abcdefghij"), 9, S("12345678901234567890"), 10, 9, S("abcdefghi123456789j"));
+ test(S("abcdefghij"), 9, S("12345678901234567890"), 10, 10, S("abcdefghi1234567890j"));
+ test(S("abcdefghij"), 9, S("12345678901234567890"), 10, 11, S("abcdefghi1234567890j"));
+ test(S("abcdefghij"), 9, S("12345678901234567890"), 19, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 9, S("12345678901234567890"), 19, 1, S("abcdefghi0j"));
+ test(S("abcdefghij"), 9, S("12345678901234567890"), 19, 2, S("abcdefghi0j"));
+ test(S("abcdefghij"), 9, S("12345678901234567890"), 20, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 9, S("12345678901234567890"), 20, 1, S("abcdefghij"));
+ test(S("abcdefghij"), 9, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghij"), 10, S(""), 0, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, S(""), 0, 1, S("abcdefghij"));
+ test(S("abcdefghij"), 10, S(""), 1, 0, S("can't happen"));
+ test(S("abcdefghij"), 10, S("12345"), 0, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, S("12345"), 0, 1, S("abcdefghij1"));
+ test(S("abcdefghij"), 10, S("12345"), 0, 2, S("abcdefghij12"));
+ test(S("abcdefghij"), 10, S("12345"), 0, 4, S("abcdefghij1234"));
+ test(S("abcdefghij"), 10, S("12345"), 0, 5, S("abcdefghij12345"));
+ test(S("abcdefghij"), 10, S("12345"), 0, 6, S("abcdefghij12345"));
+ test(S("abcdefghij"), 10, S("12345"), 1, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, S("12345"), 1, 1, S("abcdefghij2"));
+ test(S("abcdefghij"), 10, S("12345"), 1, 2, S("abcdefghij23"));
+
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test18()
-{
- test(S("abcdefghij"), 10, S("12345"), 1, 3, S("abcdefghij234"));
- test(S("abcdefghij"), 10, S("12345"), 1, 4, S("abcdefghij2345"));
- test(S("abcdefghij"), 10, S("12345"), 1, 5, S("abcdefghij2345"));
- test(S("abcdefghij"), 10, S("12345"), 2, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, S("12345"), 2, 1, S("abcdefghij3"));
- test(S("abcdefghij"), 10, S("12345"), 2, 2, S("abcdefghij34"));
- test(S("abcdefghij"), 10, S("12345"), 2, 3, S("abcdefghij345"));
- test(S("abcdefghij"), 10, S("12345"), 2, 4, S("abcdefghij345"));
- test(S("abcdefghij"), 10, S("12345"), 4, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, S("12345"), 4, 1, S("abcdefghij5"));
- test(S("abcdefghij"), 10, S("12345"), 4, 2, S("abcdefghij5"));
- test(S("abcdefghij"), 10, S("12345"), 5, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, S("12345"), 5, 1, S("abcdefghij"));
- test(S("abcdefghij"), 10, S("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghij"), 10, S("1234567890"), 0, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, S("1234567890"), 0, 1, S("abcdefghij1"));
- test(S("abcdefghij"), 10, S("1234567890"), 0, 5, S("abcdefghij12345"));
- test(S("abcdefghij"), 10, S("1234567890"), 0, 9, S("abcdefghij123456789"));
- test(S("abcdefghij"), 10, S("1234567890"), 0, 10, S("abcdefghij1234567890"));
- test(S("abcdefghij"), 10, S("1234567890"), 0, 11, S("abcdefghij1234567890"));
- test(S("abcdefghij"), 10, S("1234567890"), 1, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, S("1234567890"), 1, 1, S("abcdefghij2"));
- test(S("abcdefghij"), 10, S("1234567890"), 1, 4, S("abcdefghij2345"));
- test(S("abcdefghij"), 10, S("1234567890"), 1, 8, S("abcdefghij23456789"));
- test(S("abcdefghij"), 10, S("1234567890"), 1, 9, S("abcdefghij234567890"));
- test(S("abcdefghij"), 10, S("1234567890"), 1, 10, S("abcdefghij234567890"));
- test(S("abcdefghij"), 10, S("1234567890"), 5, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, S("1234567890"), 5, 1, S("abcdefghij6"));
- test(S("abcdefghij"), 10, S("1234567890"), 5, 2, S("abcdefghij67"));
- test(S("abcdefghij"), 10, S("1234567890"), 5, 4, S("abcdefghij6789"));
- test(S("abcdefghij"), 10, S("1234567890"), 5, 5, S("abcdefghij67890"));
- test(S("abcdefghij"), 10, S("1234567890"), 5, 6, S("abcdefghij67890"));
- test(S("abcdefghij"), 10, S("1234567890"), 9, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, S("1234567890"), 9, 1, S("abcdefghij0"));
- test(S("abcdefghij"), 10, S("1234567890"), 9, 2, S("abcdefghij0"));
- test(S("abcdefghij"), 10, S("1234567890"), 10, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, S("1234567890"), 10, 1, S("abcdefghij"));
- test(S("abcdefghij"), 10, S("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghij"), 10, S("12345678901234567890"), 0, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, S("12345678901234567890"), 0, 1, S("abcdefghij1"));
- test(S("abcdefghij"), 10, S("12345678901234567890"), 0, 10, S("abcdefghij1234567890"));
- test(S("abcdefghij"), 10, S("12345678901234567890"), 0, 19, S("abcdefghij1234567890123456789"));
- test(S("abcdefghij"), 10, S("12345678901234567890"), 0, 20, S("abcdefghij12345678901234567890"));
- test(S("abcdefghij"), 10, S("12345678901234567890"), 0, 21, S("abcdefghij12345678901234567890"));
- test(S("abcdefghij"), 10, S("12345678901234567890"), 1, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, S("12345678901234567890"), 1, 1, S("abcdefghij2"));
- test(S("abcdefghij"), 10, S("12345678901234567890"), 1, 9, S("abcdefghij234567890"));
- test(S("abcdefghij"), 10, S("12345678901234567890"), 1, 18, S("abcdefghij234567890123456789"));
- test(S("abcdefghij"), 10, S("12345678901234567890"), 1, 19, S("abcdefghij2345678901234567890"));
- test(S("abcdefghij"), 10, S("12345678901234567890"), 1, 20, S("abcdefghij2345678901234567890"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test18() {
+ test(S("abcdefghij"), 10, S("12345"), 1, 3, S("abcdefghij234"));
+ test(S("abcdefghij"), 10, S("12345"), 1, 4, S("abcdefghij2345"));
+ test(S("abcdefghij"), 10, S("12345"), 1, 5, S("abcdefghij2345"));
+ test(S("abcdefghij"), 10, S("12345"), 2, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, S("12345"), 2, 1, S("abcdefghij3"));
+ test(S("abcdefghij"), 10, S("12345"), 2, 2, S("abcdefghij34"));
+ test(S("abcdefghij"), 10, S("12345"), 2, 3, S("abcdefghij345"));
+ test(S("abcdefghij"), 10, S("12345"), 2, 4, S("abcdefghij345"));
+ test(S("abcdefghij"), 10, S("12345"), 4, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, S("12345"), 4, 1, S("abcdefghij5"));
+ test(S("abcdefghij"), 10, S("12345"), 4, 2, S("abcdefghij5"));
+ test(S("abcdefghij"), 10, S("12345"), 5, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, S("12345"), 5, 1, S("abcdefghij"));
+ test(S("abcdefghij"), 10, S("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghij"), 10, S("1234567890"), 0, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, S("1234567890"), 0, 1, S("abcdefghij1"));
+ test(S("abcdefghij"), 10, S("1234567890"), 0, 5, S("abcdefghij12345"));
+ test(S("abcdefghij"), 10, S("1234567890"), 0, 9, S("abcdefghij123456789"));
+ test(S("abcdefghij"), 10, S("1234567890"), 0, 10, S("abcdefghij1234567890"));
+ test(S("abcdefghij"), 10, S("1234567890"), 0, 11, S("abcdefghij1234567890"));
+ test(S("abcdefghij"), 10, S("1234567890"), 1, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, S("1234567890"), 1, 1, S("abcdefghij2"));
+ test(S("abcdefghij"), 10, S("1234567890"), 1, 4, S("abcdefghij2345"));
+ test(S("abcdefghij"), 10, S("1234567890"), 1, 8, S("abcdefghij23456789"));
+ test(S("abcdefghij"), 10, S("1234567890"), 1, 9, S("abcdefghij234567890"));
+ test(S("abcdefghij"), 10, S("1234567890"), 1, 10, S("abcdefghij234567890"));
+ test(S("abcdefghij"), 10, S("1234567890"), 5, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, S("1234567890"), 5, 1, S("abcdefghij6"));
+ test(S("abcdefghij"), 10, S("1234567890"), 5, 2, S("abcdefghij67"));
+ test(S("abcdefghij"), 10, S("1234567890"), 5, 4, S("abcdefghij6789"));
+ test(S("abcdefghij"), 10, S("1234567890"), 5, 5, S("abcdefghij67890"));
+ test(S("abcdefghij"), 10, S("1234567890"), 5, 6, S("abcdefghij67890"));
+ test(S("abcdefghij"), 10, S("1234567890"), 9, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, S("1234567890"), 9, 1, S("abcdefghij0"));
+ test(S("abcdefghij"), 10, S("1234567890"), 9, 2, S("abcdefghij0"));
+ test(S("abcdefghij"), 10, S("1234567890"), 10, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, S("1234567890"), 10, 1, S("abcdefghij"));
+ test(S("abcdefghij"), 10, S("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghij"), 10, S("12345678901234567890"), 0, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, S("12345678901234567890"), 0, 1, S("abcdefghij1"));
+ test(S("abcdefghij"), 10, S("12345678901234567890"), 0, 10, S("abcdefghij1234567890"));
+ test(S("abcdefghij"), 10, S("12345678901234567890"), 0, 19, S("abcdefghij1234567890123456789"));
+ test(S("abcdefghij"), 10, S("12345678901234567890"), 0, 20, S("abcdefghij12345678901234567890"));
+ test(S("abcdefghij"), 10, S("12345678901234567890"), 0, 21, S("abcdefghij12345678901234567890"));
+ test(S("abcdefghij"), 10, S("12345678901234567890"), 1, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, S("12345678901234567890"), 1, 1, S("abcdefghij2"));
+ test(S("abcdefghij"), 10, S("12345678901234567890"), 1, 9, S("abcdefghij234567890"));
+ test(S("abcdefghij"), 10, S("12345678901234567890"), 1, 18, S("abcdefghij234567890123456789"));
+ test(S("abcdefghij"), 10, S("12345678901234567890"), 1, 19, S("abcdefghij2345678901234567890"));
+ test(S("abcdefghij"), 10, S("12345678901234567890"), 1, 20, S("abcdefghij2345678901234567890"));
+
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test19()
-{
- test(S("abcdefghij"), 10, S("12345678901234567890"), 10, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, S("12345678901234567890"), 10, 1, S("abcdefghij1"));
- test(S("abcdefghij"), 10, S("12345678901234567890"), 10, 5, S("abcdefghij12345"));
- test(S("abcdefghij"), 10, S("12345678901234567890"), 10, 9, S("abcdefghij123456789"));
- test(S("abcdefghij"), 10, S("12345678901234567890"), 10, 10, S("abcdefghij1234567890"));
- test(S("abcdefghij"), 10, S("12345678901234567890"), 10, 11, S("abcdefghij1234567890"));
- test(S("abcdefghij"), 10, S("12345678901234567890"), 19, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, S("12345678901234567890"), 19, 1, S("abcdefghij0"));
- test(S("abcdefghij"), 10, S("12345678901234567890"), 19, 2, S("abcdefghij0"));
- test(S("abcdefghij"), 10, S("12345678901234567890"), 20, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, S("12345678901234567890"), 20, 1, S("abcdefghij"));
- test(S("abcdefghij"), 10, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghij"), 11, S(""), 0, 0, S("can't happen"));
- test(S("abcdefghij"), 11, S(""), 0, 1, S("can't happen"));
- test(S("abcdefghij"), 11, S(""), 1, 0, S("can't happen"));
- test(S("abcdefghij"), 11, S("12345"), 0, 0, S("can't happen"));
- test(S("abcdefghij"), 11, S("12345"), 0, 1, S("can't happen"));
- test(S("abcdefghij"), 11, S("12345"), 0, 2, S("can't happen"));
- test(S("abcdefghij"), 11, S("12345"), 0, 4, S("can't happen"));
- test(S("abcdefghij"), 11, S("12345"), 0, 5, S("can't happen"));
- test(S("abcdefghij"), 11, S("12345"), 0, 6, S("can't happen"));
- test(S("abcdefghij"), 11, S("12345"), 1, 0, S("can't happen"));
- test(S("abcdefghij"), 11, S("12345"), 1, 1, S("can't happen"));
- test(S("abcdefghij"), 11, S("12345"), 1, 2, S("can't happen"));
- test(S("abcdefghij"), 11, S("12345"), 1, 3, S("can't happen"));
- test(S("abcdefghij"), 11, S("12345"), 1, 4, S("can't happen"));
- test(S("abcdefghij"), 11, S("12345"), 1, 5, S("can't happen"));
- test(S("abcdefghij"), 11, S("12345"), 2, 0, S("can't happen"));
- test(S("abcdefghij"), 11, S("12345"), 2, 1, S("can't happen"));
- test(S("abcdefghij"), 11, S("12345"), 2, 2, S("can't happen"));
- test(S("abcdefghij"), 11, S("12345"), 2, 3, S("can't happen"));
- test(S("abcdefghij"), 11, S("12345"), 2, 4, S("can't happen"));
- test(S("abcdefghij"), 11, S("12345"), 4, 0, S("can't happen"));
- test(S("abcdefghij"), 11, S("12345"), 4, 1, S("can't happen"));
- test(S("abcdefghij"), 11, S("12345"), 4, 2, S("can't happen"));
- test(S("abcdefghij"), 11, S("12345"), 5, 0, S("can't happen"));
- test(S("abcdefghij"), 11, S("12345"), 5, 1, S("can't happen"));
- test(S("abcdefghij"), 11, S("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghij"), 11, S("1234567890"), 0, 0, S("can't happen"));
- test(S("abcdefghij"), 11, S("1234567890"), 0, 1, S("can't happen"));
- test(S("abcdefghij"), 11, S("1234567890"), 0, 5, S("can't happen"));
- test(S("abcdefghij"), 11, S("1234567890"), 0, 9, S("can't happen"));
- test(S("abcdefghij"), 11, S("1234567890"), 0, 10, S("can't happen"));
- test(S("abcdefghij"), 11, S("1234567890"), 0, 11, S("can't happen"));
- test(S("abcdefghij"), 11, S("1234567890"), 1, 0, S("can't happen"));
- test(S("abcdefghij"), 11, S("1234567890"), 1, 1, S("can't happen"));
- test(S("abcdefghij"), 11, S("1234567890"), 1, 4, S("can't happen"));
- test(S("abcdefghij"), 11, S("1234567890"), 1, 8, S("can't happen"));
- test(S("abcdefghij"), 11, S("1234567890"), 1, 9, S("can't happen"));
- test(S("abcdefghij"), 11, S("1234567890"), 1, 10, S("can't happen"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test19() {
+ test(S("abcdefghij"), 10, S("12345678901234567890"), 10, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, S("12345678901234567890"), 10, 1, S("abcdefghij1"));
+ test(S("abcdefghij"), 10, S("12345678901234567890"), 10, 5, S("abcdefghij12345"));
+ test(S("abcdefghij"), 10, S("12345678901234567890"), 10, 9, S("abcdefghij123456789"));
+ test(S("abcdefghij"), 10, S("12345678901234567890"), 10, 10, S("abcdefghij1234567890"));
+ test(S("abcdefghij"), 10, S("12345678901234567890"), 10, 11, S("abcdefghij1234567890"));
+ test(S("abcdefghij"), 10, S("12345678901234567890"), 19, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, S("12345678901234567890"), 19, 1, S("abcdefghij0"));
+ test(S("abcdefghij"), 10, S("12345678901234567890"), 19, 2, S("abcdefghij0"));
+ test(S("abcdefghij"), 10, S("12345678901234567890"), 20, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, S("12345678901234567890"), 20, 1, S("abcdefghij"));
+ test(S("abcdefghij"), 10, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghij"), 11, S(""), 0, 0, S("can't happen"));
+ test(S("abcdefghij"), 11, S(""), 0, 1, S("can't happen"));
+ test(S("abcdefghij"), 11, S(""), 1, 0, S("can't happen"));
+ test(S("abcdefghij"), 11, S("12345"), 0, 0, S("can't happen"));
+ test(S("abcdefghij"), 11, S("12345"), 0, 1, S("can't happen"));
+ test(S("abcdefghij"), 11, S("12345"), 0, 2, S("can't happen"));
+ test(S("abcdefghij"), 11, S("12345"), 0, 4, S("can't happen"));
+ test(S("abcdefghij"), 11, S("12345"), 0, 5, S("can't happen"));
+ test(S("abcdefghij"), 11, S("12345"), 0, 6, S("can't happen"));
+ test(S("abcdefghij"), 11, S("12345"), 1, 0, S("can't happen"));
+ test(S("abcdefghij"), 11, S("12345"), 1, 1, S("can't happen"));
+ test(S("abcdefghij"), 11, S("12345"), 1, 2, S("can't happen"));
+ test(S("abcdefghij"), 11, S("12345"), 1, 3, S("can't happen"));
+ test(S("abcdefghij"), 11, S("12345"), 1, 4, S("can't happen"));
+ test(S("abcdefghij"), 11, S("12345"), 1, 5, S("can't happen"));
+ test(S("abcdefghij"), 11, S("12345"), 2, 0, S("can't happen"));
+ test(S("abcdefghij"), 11, S("12345"), 2, 1, S("can't happen"));
+ test(S("abcdefghij"), 11, S("12345"), 2, 2, S("can't happen"));
+ test(S("abcdefghij"), 11, S("12345"), 2, 3, S("can't happen"));
+ test(S("abcdefghij"), 11, S("12345"), 2, 4, S("can't happen"));
+ test(S("abcdefghij"), 11, S("12345"), 4, 0, S("can't happen"));
+ test(S("abcdefghij"), 11, S("12345"), 4, 1, S("can't happen"));
+ test(S("abcdefghij"), 11, S("12345"), 4, 2, S("can't happen"));
+ test(S("abcdefghij"), 11, S("12345"), 5, 0, S("can't happen"));
+ test(S("abcdefghij"), 11, S("12345"), 5, 1, S("can't happen"));
+ test(S("abcdefghij"), 11, S("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghij"), 11, S("1234567890"), 0, 0, S("can't happen"));
+ test(S("abcdefghij"), 11, S("1234567890"), 0, 1, S("can't happen"));
+ test(S("abcdefghij"), 11, S("1234567890"), 0, 5, S("can't happen"));
+ test(S("abcdefghij"), 11, S("1234567890"), 0, 9, S("can't happen"));
+ test(S("abcdefghij"), 11, S("1234567890"), 0, 10, S("can't happen"));
+ test(S("abcdefghij"), 11, S("1234567890"), 0, 11, S("can't happen"));
+ test(S("abcdefghij"), 11, S("1234567890"), 1, 0, S("can't happen"));
+ test(S("abcdefghij"), 11, S("1234567890"), 1, 1, S("can't happen"));
+ test(S("abcdefghij"), 11, S("1234567890"), 1, 4, S("can't happen"));
+ test(S("abcdefghij"), 11, S("1234567890"), 1, 8, S("can't happen"));
+ test(S("abcdefghij"), 11, S("1234567890"), 1, 9, S("can't happen"));
+ test(S("abcdefghij"), 11, S("1234567890"), 1, 10, S("can't happen"));
+
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test20()
-{
- test(S("abcdefghij"), 11, S("1234567890"), 5, 0, S("can't happen"));
- test(S("abcdefghij"), 11, S("1234567890"), 5, 1, S("can't happen"));
- test(S("abcdefghij"), 11, S("1234567890"), 5, 2, S("can't happen"));
- test(S("abcdefghij"), 11, S("1234567890"), 5, 4, S("can't happen"));
- test(S("abcdefghij"), 11, S("1234567890"), 5, 5, S("can't happen"));
- test(S("abcdefghij"), 11, S("1234567890"), 5, 6, S("can't happen"));
- test(S("abcdefghij"), 11, S("1234567890"), 9, 0, S("can't happen"));
- test(S("abcdefghij"), 11, S("1234567890"), 9, 1, S("can't happen"));
- test(S("abcdefghij"), 11, S("1234567890"), 9, 2, S("can't happen"));
- test(S("abcdefghij"), 11, S("1234567890"), 10, 0, S("can't happen"));
- test(S("abcdefghij"), 11, S("1234567890"), 10, 1, S("can't happen"));
- test(S("abcdefghij"), 11, S("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghij"), 11, S("12345678901234567890"), 0, 0, S("can't happen"));
- test(S("abcdefghij"), 11, S("12345678901234567890"), 0, 1, S("can't happen"));
- test(S("abcdefghij"), 11, S("12345678901234567890"), 0, 10, S("can't happen"));
- test(S("abcdefghij"), 11, S("12345678901234567890"), 0, 19, S("can't happen"));
- test(S("abcdefghij"), 11, S("12345678901234567890"), 0, 20, S("can't happen"));
- test(S("abcdefghij"), 11, S("12345678901234567890"), 0, 21, S("can't happen"));
- test(S("abcdefghij"), 11, S("12345678901234567890"), 1, 0, S("can't happen"));
- test(S("abcdefghij"), 11, S("12345678901234567890"), 1, 1, S("can't happen"));
- test(S("abcdefghij"), 11, S("12345678901234567890"), 1, 9, S("can't happen"));
- test(S("abcdefghij"), 11, S("12345678901234567890"), 1, 18, S("can't happen"));
- test(S("abcdefghij"), 11, S("12345678901234567890"), 1, 19, S("can't happen"));
- test(S("abcdefghij"), 11, S("12345678901234567890"), 1, 20, S("can't happen"));
- test(S("abcdefghij"), 11, S("12345678901234567890"), 10, 0, S("can't happen"));
- test(S("abcdefghij"), 11, S("12345678901234567890"), 10, 1, S("can't happen"));
- test(S("abcdefghij"), 11, S("12345678901234567890"), 10, 5, S("can't happen"));
- test(S("abcdefghij"), 11, S("12345678901234567890"), 10, 9, S("can't happen"));
- test(S("abcdefghij"), 11, S("12345678901234567890"), 10, 10, S("can't happen"));
- test(S("abcdefghij"), 11, S("12345678901234567890"), 10, 11, S("can't happen"));
- test(S("abcdefghij"), 11, S("12345678901234567890"), 19, 0, S("can't happen"));
- test(S("abcdefghij"), 11, S("12345678901234567890"), 19, 1, S("can't happen"));
- test(S("abcdefghij"), 11, S("12345678901234567890"), 19, 2, S("can't happen"));
- test(S("abcdefghij"), 11, S("12345678901234567890"), 20, 0, S("can't happen"));
- test(S("abcdefghij"), 11, S("12345678901234567890"), 20, 1, S("can't happen"));
- test(S("abcdefghij"), 11, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 0, S(""), 0, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, S(""), 0, 1, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, S(""), 1, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 0, S("12345"), 0, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, S("12345"), 0, 1, S("1abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, S("12345"), 0, 2, S("12abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, S("12345"), 0, 4, S("1234abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, S("12345"), 0, 5, S("12345abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, S("12345"), 0, 6, S("12345abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, S("12345"), 1, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, S("12345"), 1, 1, S("2abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, S("12345"), 1, 2, S("23abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, S("12345"), 1, 3, S("234abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, S("12345"), 1, 4, S("2345abcdefghijklmnopqrst"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test20() {
+ test(S("abcdefghij"), 11, S("1234567890"), 5, 0, S("can't happen"));
+ test(S("abcdefghij"), 11, S("1234567890"), 5, 1, S("can't happen"));
+ test(S("abcdefghij"), 11, S("1234567890"), 5, 2, S("can't happen"));
+ test(S("abcdefghij"), 11, S("1234567890"), 5, 4, S("can't happen"));
+ test(S("abcdefghij"), 11, S("1234567890"), 5, 5, S("can't happen"));
+ test(S("abcdefghij"), 11, S("1234567890"), 5, 6, S("can't happen"));
+ test(S("abcdefghij"), 11, S("1234567890"), 9, 0, S("can't happen"));
+ test(S("abcdefghij"), 11, S("1234567890"), 9, 1, S("can't happen"));
+ test(S("abcdefghij"), 11, S("1234567890"), 9, 2, S("can't happen"));
+ test(S("abcdefghij"), 11, S("1234567890"), 10, 0, S("can't happen"));
+ test(S("abcdefghij"), 11, S("1234567890"), 10, 1, S("can't happen"));
+ test(S("abcdefghij"), 11, S("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghij"), 11, S("12345678901234567890"), 0, 0, S("can't happen"));
+ test(S("abcdefghij"), 11, S("12345678901234567890"), 0, 1, S("can't happen"));
+ test(S("abcdefghij"), 11, S("12345678901234567890"), 0, 10, S("can't happen"));
+ test(S("abcdefghij"), 11, S("12345678901234567890"), 0, 19, S("can't happen"));
+ test(S("abcdefghij"), 11, S("12345678901234567890"), 0, 20, S("can't happen"));
+ test(S("abcdefghij"), 11, S("12345678901234567890"), 0, 21, S("can't happen"));
+ test(S("abcdefghij"), 11, S("12345678901234567890"), 1, 0, S("can't happen"));
+ test(S("abcdefghij"), 11, S("12345678901234567890"), 1, 1, S("can't happen"));
+ test(S("abcdefghij"), 11, S("12345678901234567890"), 1, 9, S("can't happen"));
+ test(S("abcdefghij"), 11, S("12345678901234567890"), 1, 18, S("can't happen"));
+ test(S("abcdefghij"), 11, S("12345678901234567890"), 1, 19, S("can't happen"));
+ test(S("abcdefghij"), 11, S("12345678901234567890"), 1, 20, S("can't happen"));
+ test(S("abcdefghij"), 11, S("12345678901234567890"), 10, 0, S("can't happen"));
+ test(S("abcdefghij"), 11, S("12345678901234567890"), 10, 1, S("can't happen"));
+ test(S("abcdefghij"), 11, S("12345678901234567890"), 10, 5, S("can't happen"));
+ test(S("abcdefghij"), 11, S("12345678901234567890"), 10, 9, S("can't happen"));
+ test(S("abcdefghij"), 11, S("12345678901234567890"), 10, 10, S("can't happen"));
+ test(S("abcdefghij"), 11, S("12345678901234567890"), 10, 11, S("can't happen"));
+ test(S("abcdefghij"), 11, S("12345678901234567890"), 19, 0, S("can't happen"));
+ test(S("abcdefghij"), 11, S("12345678901234567890"), 19, 1, S("can't happen"));
+ test(S("abcdefghij"), 11, S("12345678901234567890"), 19, 2, S("can't happen"));
+ test(S("abcdefghij"), 11, S("12345678901234567890"), 20, 0, S("can't happen"));
+ test(S("abcdefghij"), 11, S("12345678901234567890"), 20, 1, S("can't happen"));
+ test(S("abcdefghij"), 11, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 0, S(""), 0, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, S(""), 0, 1, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, S(""), 1, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 0, S("12345"), 0, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, S("12345"), 0, 1, S("1abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, S("12345"), 0, 2, S("12abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, S("12345"), 0, 4, S("1234abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, S("12345"), 0, 5, S("12345abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, S("12345"), 0, 6, S("12345abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, S("12345"), 1, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, S("12345"), 1, 1, S("2abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, S("12345"), 1, 2, S("23abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, S("12345"), 1, 3, S("234abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, S("12345"), 1, 4, S("2345abcdefghijklmnopqrst"));
+
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test21()
-{
- test(S("abcdefghijklmnopqrst"), 0, S("12345"), 1, 5, S("2345abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, S("12345"), 2, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, S("12345"), 2, 1, S("3abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, S("12345"), 2, 2, S("34abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, S("12345"), 2, 3, S("345abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, S("12345"), 2, 4, S("345abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, S("12345"), 4, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, S("12345"), 4, 1, S("5abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, S("12345"), 4, 2, S("5abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, S("12345"), 5, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, S("12345"), 5, 1, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, S("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 0, S("1234567890"), 0, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, S("1234567890"), 0, 1, S("1abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, S("1234567890"), 0, 5, S("12345abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, S("1234567890"), 0, 9, S("123456789abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, S("1234567890"), 0, 10, S("1234567890abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, S("1234567890"), 0, 11, S("1234567890abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, S("1234567890"), 1, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, S("1234567890"), 1, 1, S("2abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, S("1234567890"), 1, 4, S("2345abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, S("1234567890"), 1, 8, S("23456789abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, S("1234567890"), 1, 9, S("234567890abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, S("1234567890"), 1, 10, S("234567890abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, S("1234567890"), 5, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, S("1234567890"), 5, 1, S("6abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, S("1234567890"), 5, 2, S("67abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, S("1234567890"), 5, 4, S("6789abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, S("1234567890"), 5, 5, S("67890abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, S("1234567890"), 5, 6, S("67890abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, S("1234567890"), 9, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, S("1234567890"), 9, 1, S("0abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, S("1234567890"), 9, 2, S("0abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, S("1234567890"), 10, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, S("1234567890"), 10, 1, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, S("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 0, S("12345678901234567890"), 0, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, S("12345678901234567890"), 0, 1, S("1abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, S("12345678901234567890"), 0, 10, S("1234567890abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, S("12345678901234567890"), 0, 19, S("1234567890123456789abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, S("12345678901234567890"), 0, 20, S("12345678901234567890abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, S("12345678901234567890"), 0, 21, S("12345678901234567890abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, S("12345678901234567890"), 1, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, S("12345678901234567890"), 1, 1, S("2abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, S("12345678901234567890"), 1, 9, S("234567890abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, S("12345678901234567890"), 1, 18, S("234567890123456789abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, S("12345678901234567890"), 1, 19, S("2345678901234567890abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, S("12345678901234567890"), 1, 20, S("2345678901234567890abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, S("12345678901234567890"), 10, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, S("12345678901234567890"), 10, 1, S("1abcdefghijklmnopqrst"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test21() {
+ test(S("abcdefghijklmnopqrst"), 0, S("12345"), 1, 5, S("2345abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, S("12345"), 2, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, S("12345"), 2, 1, S("3abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, S("12345"), 2, 2, S("34abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, S("12345"), 2, 3, S("345abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, S("12345"), 2, 4, S("345abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, S("12345"), 4, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, S("12345"), 4, 1, S("5abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, S("12345"), 4, 2, S("5abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, S("12345"), 5, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, S("12345"), 5, 1, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, S("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 0, S("1234567890"), 0, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, S("1234567890"), 0, 1, S("1abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, S("1234567890"), 0, 5, S("12345abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, S("1234567890"), 0, 9, S("123456789abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, S("1234567890"), 0, 10, S("1234567890abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, S("1234567890"), 0, 11, S("1234567890abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, S("1234567890"), 1, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, S("1234567890"), 1, 1, S("2abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, S("1234567890"), 1, 4, S("2345abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, S("1234567890"), 1, 8, S("23456789abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, S("1234567890"), 1, 9, S("234567890abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, S("1234567890"), 1, 10, S("234567890abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, S("1234567890"), 5, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, S("1234567890"), 5, 1, S("6abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, S("1234567890"), 5, 2, S("67abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, S("1234567890"), 5, 4, S("6789abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, S("1234567890"), 5, 5, S("67890abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, S("1234567890"), 5, 6, S("67890abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, S("1234567890"), 9, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, S("1234567890"), 9, 1, S("0abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, S("1234567890"), 9, 2, S("0abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, S("1234567890"), 10, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, S("1234567890"), 10, 1, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, S("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 0, S("12345678901234567890"), 0, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, S("12345678901234567890"), 0, 1, S("1abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, S("12345678901234567890"), 0, 10, S("1234567890abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, S("12345678901234567890"), 0, 19, S("1234567890123456789abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, S("12345678901234567890"), 0, 20, S("12345678901234567890abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, S("12345678901234567890"), 0, 21, S("12345678901234567890abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, S("12345678901234567890"), 1, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, S("12345678901234567890"), 1, 1, S("2abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, S("12345678901234567890"), 1, 9, S("234567890abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, S("12345678901234567890"), 1, 18, S("234567890123456789abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, S("12345678901234567890"), 1, 19, S("2345678901234567890abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, S("12345678901234567890"), 1, 20, S("2345678901234567890abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, S("12345678901234567890"), 10, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, S("12345678901234567890"), 10, 1, S("1abcdefghijklmnopqrst"));
+
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test22()
-{
- test(S("abcdefghijklmnopqrst"), 0, S("12345678901234567890"), 10, 5, S("12345abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, S("12345678901234567890"), 10, 9, S("123456789abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, S("12345678901234567890"), 10, 10, S("1234567890abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, S("12345678901234567890"), 10, 11, S("1234567890abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, S("12345678901234567890"), 19, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, S("12345678901234567890"), 19, 1, S("0abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, S("12345678901234567890"), 19, 2, S("0abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, S("12345678901234567890"), 20, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, S("12345678901234567890"), 20, 1, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 1, S(""), 0, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, S(""), 0, 1, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, S(""), 1, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 1, S("12345"), 0, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, S("12345"), 0, 1, S("a1bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, S("12345"), 0, 2, S("a12bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, S("12345"), 0, 4, S("a1234bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, S("12345"), 0, 5, S("a12345bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, S("12345"), 0, 6, S("a12345bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, S("12345"), 1, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, S("12345"), 1, 1, S("a2bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, S("12345"), 1, 2, S("a23bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, S("12345"), 1, 3, S("a234bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, S("12345"), 1, 4, S("a2345bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, S("12345"), 1, 5, S("a2345bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, S("12345"), 2, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, S("12345"), 2, 1, S("a3bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, S("12345"), 2, 2, S("a34bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, S("12345"), 2, 3, S("a345bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, S("12345"), 2, 4, S("a345bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, S("12345"), 4, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, S("12345"), 4, 1, S("a5bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, S("12345"), 4, 2, S("a5bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, S("12345"), 5, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, S("12345"), 5, 1, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, S("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 1, S("1234567890"), 0, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, S("1234567890"), 0, 1, S("a1bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, S("1234567890"), 0, 5, S("a12345bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, S("1234567890"), 0, 9, S("a123456789bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, S("1234567890"), 0, 10, S("a1234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, S("1234567890"), 0, 11, S("a1234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, S("1234567890"), 1, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, S("1234567890"), 1, 1, S("a2bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, S("1234567890"), 1, 4, S("a2345bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, S("1234567890"), 1, 8, S("a23456789bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, S("1234567890"), 1, 9, S("a234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, S("1234567890"), 1, 10, S("a234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, S("1234567890"), 5, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, S("1234567890"), 5, 1, S("a6bcdefghijklmnopqrst"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test22() {
+ test(S("abcdefghijklmnopqrst"), 0, S("12345678901234567890"), 10, 5, S("12345abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, S("12345678901234567890"), 10, 9, S("123456789abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, S("12345678901234567890"), 10, 10, S("1234567890abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, S("12345678901234567890"), 10, 11, S("1234567890abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, S("12345678901234567890"), 19, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, S("12345678901234567890"), 19, 1, S("0abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, S("12345678901234567890"), 19, 2, S("0abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, S("12345678901234567890"), 20, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, S("12345678901234567890"), 20, 1, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 1, S(""), 0, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, S(""), 0, 1, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, S(""), 1, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 1, S("12345"), 0, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, S("12345"), 0, 1, S("a1bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, S("12345"), 0, 2, S("a12bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, S("12345"), 0, 4, S("a1234bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, S("12345"), 0, 5, S("a12345bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, S("12345"), 0, 6, S("a12345bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, S("12345"), 1, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, S("12345"), 1, 1, S("a2bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, S("12345"), 1, 2, S("a23bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, S("12345"), 1, 3, S("a234bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, S("12345"), 1, 4, S("a2345bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, S("12345"), 1, 5, S("a2345bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, S("12345"), 2, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, S("12345"), 2, 1, S("a3bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, S("12345"), 2, 2, S("a34bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, S("12345"), 2, 3, S("a345bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, S("12345"), 2, 4, S("a345bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, S("12345"), 4, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, S("12345"), 4, 1, S("a5bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, S("12345"), 4, 2, S("a5bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, S("12345"), 5, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, S("12345"), 5, 1, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, S("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 1, S("1234567890"), 0, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, S("1234567890"), 0, 1, S("a1bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, S("1234567890"), 0, 5, S("a12345bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, S("1234567890"), 0, 9, S("a123456789bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, S("1234567890"), 0, 10, S("a1234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, S("1234567890"), 0, 11, S("a1234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, S("1234567890"), 1, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, S("1234567890"), 1, 1, S("a2bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, S("1234567890"), 1, 4, S("a2345bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, S("1234567890"), 1, 8, S("a23456789bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, S("1234567890"), 1, 9, S("a234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, S("1234567890"), 1, 10, S("a234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, S("1234567890"), 5, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, S("1234567890"), 5, 1, S("a6bcdefghijklmnopqrst"));
+
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test23()
-{
- test(S("abcdefghijklmnopqrst"), 1, S("1234567890"), 5, 2, S("a67bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, S("1234567890"), 5, 4, S("a6789bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, S("1234567890"), 5, 5, S("a67890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, S("1234567890"), 5, 6, S("a67890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, S("1234567890"), 9, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, S("1234567890"), 9, 1, S("a0bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, S("1234567890"), 9, 2, S("a0bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, S("1234567890"), 10, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, S("1234567890"), 10, 1, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, S("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 1, S("12345678901234567890"), 0, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, S("12345678901234567890"), 0, 1, S("a1bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, S("12345678901234567890"), 0, 10, S("a1234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, S("12345678901234567890"), 0, 19, S("a1234567890123456789bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, S("12345678901234567890"), 0, 20, S("a12345678901234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, S("12345678901234567890"), 0, 21, S("a12345678901234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, S("12345678901234567890"), 1, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, S("12345678901234567890"), 1, 1, S("a2bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, S("12345678901234567890"), 1, 9, S("a234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, S("12345678901234567890"), 1, 18, S("a234567890123456789bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, S("12345678901234567890"), 1, 19, S("a2345678901234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, S("12345678901234567890"), 1, 20, S("a2345678901234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, S("12345678901234567890"), 10, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, S("12345678901234567890"), 10, 1, S("a1bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, S("12345678901234567890"), 10, 5, S("a12345bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, S("12345678901234567890"), 10, 9, S("a123456789bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, S("12345678901234567890"), 10, 10, S("a1234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, S("12345678901234567890"), 10, 11, S("a1234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, S("12345678901234567890"), 19, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, S("12345678901234567890"), 19, 1, S("a0bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, S("12345678901234567890"), 19, 2, S("a0bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, S("12345678901234567890"), 20, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, S("12345678901234567890"), 20, 1, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 10, S(""), 0, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, S(""), 0, 1, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, S(""), 1, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 10, S("12345"), 0, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, S("12345"), 0, 1, S("abcdefghij1klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, S("12345"), 0, 2, S("abcdefghij12klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, S("12345"), 0, 4, S("abcdefghij1234klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, S("12345"), 0, 5, S("abcdefghij12345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, S("12345"), 0, 6, S("abcdefghij12345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, S("12345"), 1, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, S("12345"), 1, 1, S("abcdefghij2klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, S("12345"), 1, 2, S("abcdefghij23klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, S("12345"), 1, 3, S("abcdefghij234klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, S("12345"), 1, 4, S("abcdefghij2345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, S("12345"), 1, 5, S("abcdefghij2345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, S("12345"), 2, 0, S("abcdefghijklmnopqrst"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test23() {
+ test(S("abcdefghijklmnopqrst"), 1, S("1234567890"), 5, 2, S("a67bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, S("1234567890"), 5, 4, S("a6789bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, S("1234567890"), 5, 5, S("a67890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, S("1234567890"), 5, 6, S("a67890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, S("1234567890"), 9, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, S("1234567890"), 9, 1, S("a0bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, S("1234567890"), 9, 2, S("a0bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, S("1234567890"), 10, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, S("1234567890"), 10, 1, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, S("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 1, S("12345678901234567890"), 0, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, S("12345678901234567890"), 0, 1, S("a1bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, S("12345678901234567890"), 0, 10, S("a1234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, S("12345678901234567890"), 0, 19, S("a1234567890123456789bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, S("12345678901234567890"), 0, 20, S("a12345678901234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, S("12345678901234567890"), 0, 21, S("a12345678901234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, S("12345678901234567890"), 1, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, S("12345678901234567890"), 1, 1, S("a2bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, S("12345678901234567890"), 1, 9, S("a234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, S("12345678901234567890"), 1, 18, S("a234567890123456789bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, S("12345678901234567890"), 1, 19, S("a2345678901234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, S("12345678901234567890"), 1, 20, S("a2345678901234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, S("12345678901234567890"), 10, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, S("12345678901234567890"), 10, 1, S("a1bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, S("12345678901234567890"), 10, 5, S("a12345bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, S("12345678901234567890"), 10, 9, S("a123456789bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, S("12345678901234567890"), 10, 10, S("a1234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, S("12345678901234567890"), 10, 11, S("a1234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, S("12345678901234567890"), 19, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, S("12345678901234567890"), 19, 1, S("a0bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, S("12345678901234567890"), 19, 2, S("a0bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, S("12345678901234567890"), 20, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, S("12345678901234567890"), 20, 1, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 10, S(""), 0, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, S(""), 0, 1, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, S(""), 1, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 10, S("12345"), 0, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, S("12345"), 0, 1, S("abcdefghij1klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, S("12345"), 0, 2, S("abcdefghij12klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, S("12345"), 0, 4, S("abcdefghij1234klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, S("12345"), 0, 5, S("abcdefghij12345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, S("12345"), 0, 6, S("abcdefghij12345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, S("12345"), 1, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, S("12345"), 1, 1, S("abcdefghij2klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, S("12345"), 1, 2, S("abcdefghij23klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, S("12345"), 1, 3, S("abcdefghij234klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, S("12345"), 1, 4, S("abcdefghij2345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, S("12345"), 1, 5, S("abcdefghij2345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, S("12345"), 2, 0, S("abcdefghijklmnopqrst"));
+
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test24()
-{
- test(S("abcdefghijklmnopqrst"), 10, S("12345"), 2, 1, S("abcdefghij3klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, S("12345"), 2, 2, S("abcdefghij34klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, S("12345"), 2, 3, S("abcdefghij345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, S("12345"), 2, 4, S("abcdefghij345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, S("12345"), 4, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, S("12345"), 4, 1, S("abcdefghij5klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, S("12345"), 4, 2, S("abcdefghij5klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, S("12345"), 5, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, S("12345"), 5, 1, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, S("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 10, S("1234567890"), 0, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, S("1234567890"), 0, 1, S("abcdefghij1klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, S("1234567890"), 0, 5, S("abcdefghij12345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, S("1234567890"), 0, 9, S("abcdefghij123456789klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, S("1234567890"), 0, 10, S("abcdefghij1234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, S("1234567890"), 0, 11, S("abcdefghij1234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, S("1234567890"), 1, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, S("1234567890"), 1, 1, S("abcdefghij2klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, S("1234567890"), 1, 4, S("abcdefghij2345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, S("1234567890"), 1, 8, S("abcdefghij23456789klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, S("1234567890"), 1, 9, S("abcdefghij234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, S("1234567890"), 1, 10, S("abcdefghij234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, S("1234567890"), 5, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, S("1234567890"), 5, 1, S("abcdefghij6klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, S("1234567890"), 5, 2, S("abcdefghij67klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, S("1234567890"), 5, 4, S("abcdefghij6789klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, S("1234567890"), 5, 5, S("abcdefghij67890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, S("1234567890"), 5, 6, S("abcdefghij67890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, S("1234567890"), 9, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, S("1234567890"), 9, 1, S("abcdefghij0klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, S("1234567890"), 9, 2, S("abcdefghij0klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, S("1234567890"), 10, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, S("1234567890"), 10, 1, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, S("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 10, S("12345678901234567890"), 0, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, S("12345678901234567890"), 0, 1, S("abcdefghij1klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, S("12345678901234567890"), 0, 10, S("abcdefghij1234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, S("12345678901234567890"), 0, 19, S("abcdefghij1234567890123456789klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, S("12345678901234567890"), 0, 20, S("abcdefghij12345678901234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, S("12345678901234567890"), 0, 21, S("abcdefghij12345678901234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, S("12345678901234567890"), 1, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, S("12345678901234567890"), 1, 1, S("abcdefghij2klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, S("12345678901234567890"), 1, 9, S("abcdefghij234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, S("12345678901234567890"), 1, 18, S("abcdefghij234567890123456789klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, S("12345678901234567890"), 1, 19, S("abcdefghij2345678901234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, S("12345678901234567890"), 1, 20, S("abcdefghij2345678901234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, S("12345678901234567890"), 10, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, S("12345678901234567890"), 10, 1, S("abcdefghij1klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, S("12345678901234567890"), 10, 5, S("abcdefghij12345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, S("12345678901234567890"), 10, 9, S("abcdefghij123456789klmnopqrst"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test24() {
+ test(S("abcdefghijklmnopqrst"), 10, S("12345"), 2, 1, S("abcdefghij3klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, S("12345"), 2, 2, S("abcdefghij34klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, S("12345"), 2, 3, S("abcdefghij345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, S("12345"), 2, 4, S("abcdefghij345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, S("12345"), 4, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, S("12345"), 4, 1, S("abcdefghij5klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, S("12345"), 4, 2, S("abcdefghij5klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, S("12345"), 5, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, S("12345"), 5, 1, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, S("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 10, S("1234567890"), 0, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, S("1234567890"), 0, 1, S("abcdefghij1klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, S("1234567890"), 0, 5, S("abcdefghij12345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, S("1234567890"), 0, 9, S("abcdefghij123456789klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, S("1234567890"), 0, 10, S("abcdefghij1234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, S("1234567890"), 0, 11, S("abcdefghij1234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, S("1234567890"), 1, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, S("1234567890"), 1, 1, S("abcdefghij2klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, S("1234567890"), 1, 4, S("abcdefghij2345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, S("1234567890"), 1, 8, S("abcdefghij23456789klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, S("1234567890"), 1, 9, S("abcdefghij234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, S("1234567890"), 1, 10, S("abcdefghij234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, S("1234567890"), 5, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, S("1234567890"), 5, 1, S("abcdefghij6klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, S("1234567890"), 5, 2, S("abcdefghij67klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, S("1234567890"), 5, 4, S("abcdefghij6789klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, S("1234567890"), 5, 5, S("abcdefghij67890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, S("1234567890"), 5, 6, S("abcdefghij67890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, S("1234567890"), 9, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, S("1234567890"), 9, 1, S("abcdefghij0klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, S("1234567890"), 9, 2, S("abcdefghij0klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, S("1234567890"), 10, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, S("1234567890"), 10, 1, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, S("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 10, S("12345678901234567890"), 0, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, S("12345678901234567890"), 0, 1, S("abcdefghij1klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, S("12345678901234567890"), 0, 10, S("abcdefghij1234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, S("12345678901234567890"), 0, 19, S("abcdefghij1234567890123456789klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, S("12345678901234567890"), 0, 20, S("abcdefghij12345678901234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, S("12345678901234567890"), 0, 21, S("abcdefghij12345678901234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, S("12345678901234567890"), 1, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, S("12345678901234567890"), 1, 1, S("abcdefghij2klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, S("12345678901234567890"), 1, 9, S("abcdefghij234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, S("12345678901234567890"), 1, 18, S("abcdefghij234567890123456789klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, S("12345678901234567890"), 1, 19, S("abcdefghij2345678901234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, S("12345678901234567890"), 1, 20, S("abcdefghij2345678901234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, S("12345678901234567890"), 10, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, S("12345678901234567890"), 10, 1, S("abcdefghij1klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, S("12345678901234567890"), 10, 5, S("abcdefghij12345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, S("12345678901234567890"), 10, 9, S("abcdefghij123456789klmnopqrst"));
+
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test25()
-{
- test(S("abcdefghijklmnopqrst"), 10, S("12345678901234567890"), 10, 10, S("abcdefghij1234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, S("12345678901234567890"), 10, 11, S("abcdefghij1234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, S("12345678901234567890"), 19, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, S("12345678901234567890"), 19, 1, S("abcdefghij0klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, S("12345678901234567890"), 19, 2, S("abcdefghij0klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, S("12345678901234567890"), 20, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, S("12345678901234567890"), 20, 1, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 19, S(""), 0, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, S(""), 0, 1, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, S(""), 1, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 19, S("12345"), 0, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, S("12345"), 0, 1, S("abcdefghijklmnopqrs1t"));
- test(S("abcdefghijklmnopqrst"), 19, S("12345"), 0, 2, S("abcdefghijklmnopqrs12t"));
- test(S("abcdefghijklmnopqrst"), 19, S("12345"), 0, 4, S("abcdefghijklmnopqrs1234t"));
- test(S("abcdefghijklmnopqrst"), 19, S("12345"), 0, 5, S("abcdefghijklmnopqrs12345t"));
- test(S("abcdefghijklmnopqrst"), 19, S("12345"), 0, 6, S("abcdefghijklmnopqrs12345t"));
- test(S("abcdefghijklmnopqrst"), 19, S("12345"), 1, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, S("12345"), 1, 1, S("abcdefghijklmnopqrs2t"));
- test(S("abcdefghijklmnopqrst"), 19, S("12345"), 1, 2, S("abcdefghijklmnopqrs23t"));
- test(S("abcdefghijklmnopqrst"), 19, S("12345"), 1, 3, S("abcdefghijklmnopqrs234t"));
- test(S("abcdefghijklmnopqrst"), 19, S("12345"), 1, 4, S("abcdefghijklmnopqrs2345t"));
- test(S("abcdefghijklmnopqrst"), 19, S("12345"), 1, 5, S("abcdefghijklmnopqrs2345t"));
- test(S("abcdefghijklmnopqrst"), 19, S("12345"), 2, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, S("12345"), 2, 1, S("abcdefghijklmnopqrs3t"));
- test(S("abcdefghijklmnopqrst"), 19, S("12345"), 2, 2, S("abcdefghijklmnopqrs34t"));
- test(S("abcdefghijklmnopqrst"), 19, S("12345"), 2, 3, S("abcdefghijklmnopqrs345t"));
- test(S("abcdefghijklmnopqrst"), 19, S("12345"), 2, 4, S("abcdefghijklmnopqrs345t"));
- test(S("abcdefghijklmnopqrst"), 19, S("12345"), 4, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, S("12345"), 4, 1, S("abcdefghijklmnopqrs5t"));
- test(S("abcdefghijklmnopqrst"), 19, S("12345"), 4, 2, S("abcdefghijklmnopqrs5t"));
- test(S("abcdefghijklmnopqrst"), 19, S("12345"), 5, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, S("12345"), 5, 1, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, S("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 19, S("1234567890"), 0, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, S("1234567890"), 0, 1, S("abcdefghijklmnopqrs1t"));
- test(S("abcdefghijklmnopqrst"), 19, S("1234567890"), 0, 5, S("abcdefghijklmnopqrs12345t"));
- test(S("abcdefghijklmnopqrst"), 19, S("1234567890"), 0, 9, S("abcdefghijklmnopqrs123456789t"));
- test(S("abcdefghijklmnopqrst"), 19, S("1234567890"), 0, 10, S("abcdefghijklmnopqrs1234567890t"));
- test(S("abcdefghijklmnopqrst"), 19, S("1234567890"), 0, 11, S("abcdefghijklmnopqrs1234567890t"));
- test(S("abcdefghijklmnopqrst"), 19, S("1234567890"), 1, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, S("1234567890"), 1, 1, S("abcdefghijklmnopqrs2t"));
- test(S("abcdefghijklmnopqrst"), 19, S("1234567890"), 1, 4, S("abcdefghijklmnopqrs2345t"));
- test(S("abcdefghijklmnopqrst"), 19, S("1234567890"), 1, 8, S("abcdefghijklmnopqrs23456789t"));
- test(S("abcdefghijklmnopqrst"), 19, S("1234567890"), 1, 9, S("abcdefghijklmnopqrs234567890t"));
- test(S("abcdefghijklmnopqrst"), 19, S("1234567890"), 1, 10, S("abcdefghijklmnopqrs234567890t"));
- test(S("abcdefghijklmnopqrst"), 19, S("1234567890"), 5, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, S("1234567890"), 5, 1, S("abcdefghijklmnopqrs6t"));
- test(S("abcdefghijklmnopqrst"), 19, S("1234567890"), 5, 2, S("abcdefghijklmnopqrs67t"));
- test(S("abcdefghijklmnopqrst"), 19, S("1234567890"), 5, 4, S("abcdefghijklmnopqrs6789t"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test25() {
+ test(S("abcdefghijklmnopqrst"), 10, S("12345678901234567890"), 10, 10, S("abcdefghij1234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, S("12345678901234567890"), 10, 11, S("abcdefghij1234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, S("12345678901234567890"), 19, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, S("12345678901234567890"), 19, 1, S("abcdefghij0klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, S("12345678901234567890"), 19, 2, S("abcdefghij0klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, S("12345678901234567890"), 20, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, S("12345678901234567890"), 20, 1, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 19, S(""), 0, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, S(""), 0, 1, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, S(""), 1, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 19, S("12345"), 0, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, S("12345"), 0, 1, S("abcdefghijklmnopqrs1t"));
+ test(S("abcdefghijklmnopqrst"), 19, S("12345"), 0, 2, S("abcdefghijklmnopqrs12t"));
+ test(S("abcdefghijklmnopqrst"), 19, S("12345"), 0, 4, S("abcdefghijklmnopqrs1234t"));
+ test(S("abcdefghijklmnopqrst"), 19, S("12345"), 0, 5, S("abcdefghijklmnopqrs12345t"));
+ test(S("abcdefghijklmnopqrst"), 19, S("12345"), 0, 6, S("abcdefghijklmnopqrs12345t"));
+ test(S("abcdefghijklmnopqrst"), 19, S("12345"), 1, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, S("12345"), 1, 1, S("abcdefghijklmnopqrs2t"));
+ test(S("abcdefghijklmnopqrst"), 19, S("12345"), 1, 2, S("abcdefghijklmnopqrs23t"));
+ test(S("abcdefghijklmnopqrst"), 19, S("12345"), 1, 3, S("abcdefghijklmnopqrs234t"));
+ test(S("abcdefghijklmnopqrst"), 19, S("12345"), 1, 4, S("abcdefghijklmnopqrs2345t"));
+ test(S("abcdefghijklmnopqrst"), 19, S("12345"), 1, 5, S("abcdefghijklmnopqrs2345t"));
+ test(S("abcdefghijklmnopqrst"), 19, S("12345"), 2, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, S("12345"), 2, 1, S("abcdefghijklmnopqrs3t"));
+ test(S("abcdefghijklmnopqrst"), 19, S("12345"), 2, 2, S("abcdefghijklmnopqrs34t"));
+ test(S("abcdefghijklmnopqrst"), 19, S("12345"), 2, 3, S("abcdefghijklmnopqrs345t"));
+ test(S("abcdefghijklmnopqrst"), 19, S("12345"), 2, 4, S("abcdefghijklmnopqrs345t"));
+ test(S("abcdefghijklmnopqrst"), 19, S("12345"), 4, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, S("12345"), 4, 1, S("abcdefghijklmnopqrs5t"));
+ test(S("abcdefghijklmnopqrst"), 19, S("12345"), 4, 2, S("abcdefghijklmnopqrs5t"));
+ test(S("abcdefghijklmnopqrst"), 19, S("12345"), 5, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, S("12345"), 5, 1, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, S("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 19, S("1234567890"), 0, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, S("1234567890"), 0, 1, S("abcdefghijklmnopqrs1t"));
+ test(S("abcdefghijklmnopqrst"), 19, S("1234567890"), 0, 5, S("abcdefghijklmnopqrs12345t"));
+ test(S("abcdefghijklmnopqrst"), 19, S("1234567890"), 0, 9, S("abcdefghijklmnopqrs123456789t"));
+ test(S("abcdefghijklmnopqrst"), 19, S("1234567890"), 0, 10, S("abcdefghijklmnopqrs1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 19, S("1234567890"), 0, 11, S("abcdefghijklmnopqrs1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 19, S("1234567890"), 1, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, S("1234567890"), 1, 1, S("abcdefghijklmnopqrs2t"));
+ test(S("abcdefghijklmnopqrst"), 19, S("1234567890"), 1, 4, S("abcdefghijklmnopqrs2345t"));
+ test(S("abcdefghijklmnopqrst"), 19, S("1234567890"), 1, 8, S("abcdefghijklmnopqrs23456789t"));
+ test(S("abcdefghijklmnopqrst"), 19, S("1234567890"), 1, 9, S("abcdefghijklmnopqrs234567890t"));
+ test(S("abcdefghijklmnopqrst"), 19, S("1234567890"), 1, 10, S("abcdefghijklmnopqrs234567890t"));
+ test(S("abcdefghijklmnopqrst"), 19, S("1234567890"), 5, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, S("1234567890"), 5, 1, S("abcdefghijklmnopqrs6t"));
+ test(S("abcdefghijklmnopqrst"), 19, S("1234567890"), 5, 2, S("abcdefghijklmnopqrs67t"));
+ test(S("abcdefghijklmnopqrst"), 19, S("1234567890"), 5, 4, S("abcdefghijklmnopqrs6789t"));
+
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test26()
-{
- test(S("abcdefghijklmnopqrst"), 19, S("1234567890"), 5, 5, S("abcdefghijklmnopqrs67890t"));
- test(S("abcdefghijklmnopqrst"), 19, S("1234567890"), 5, 6, S("abcdefghijklmnopqrs67890t"));
- test(S("abcdefghijklmnopqrst"), 19, S("1234567890"), 9, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, S("1234567890"), 9, 1, S("abcdefghijklmnopqrs0t"));
- test(S("abcdefghijklmnopqrst"), 19, S("1234567890"), 9, 2, S("abcdefghijklmnopqrs0t"));
- test(S("abcdefghijklmnopqrst"), 19, S("1234567890"), 10, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, S("1234567890"), 10, 1, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, S("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 19, S("12345678901234567890"), 0, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, S("12345678901234567890"), 0, 1, S("abcdefghijklmnopqrs1t"));
- test(S("abcdefghijklmnopqrst"), 19, S("12345678901234567890"), 0, 10, S("abcdefghijklmnopqrs1234567890t"));
- test(S("abcdefghijklmnopqrst"), 19, S("12345678901234567890"), 0, 19, S("abcdefghijklmnopqrs1234567890123456789t"));
- test(S("abcdefghijklmnopqrst"), 19, S("12345678901234567890"), 0, 20, S("abcdefghijklmnopqrs12345678901234567890t"));
- test(S("abcdefghijklmnopqrst"), 19, S("12345678901234567890"), 0, 21, S("abcdefghijklmnopqrs12345678901234567890t"));
- test(S("abcdefghijklmnopqrst"), 19, S("12345678901234567890"), 1, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, S("12345678901234567890"), 1, 1, S("abcdefghijklmnopqrs2t"));
- test(S("abcdefghijklmnopqrst"), 19, S("12345678901234567890"), 1, 9, S("abcdefghijklmnopqrs234567890t"));
- test(S("abcdefghijklmnopqrst"), 19, S("12345678901234567890"), 1, 18, S("abcdefghijklmnopqrs234567890123456789t"));
- test(S("abcdefghijklmnopqrst"), 19, S("12345678901234567890"), 1, 19, S("abcdefghijklmnopqrs2345678901234567890t"));
- test(S("abcdefghijklmnopqrst"), 19, S("12345678901234567890"), 1, 20, S("abcdefghijklmnopqrs2345678901234567890t"));
- test(S("abcdefghijklmnopqrst"), 19, S("12345678901234567890"), 10, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, S("12345678901234567890"), 10, 1, S("abcdefghijklmnopqrs1t"));
- test(S("abcdefghijklmnopqrst"), 19, S("12345678901234567890"), 10, 5, S("abcdefghijklmnopqrs12345t"));
- test(S("abcdefghijklmnopqrst"), 19, S("12345678901234567890"), 10, 9, S("abcdefghijklmnopqrs123456789t"));
- test(S("abcdefghijklmnopqrst"), 19, S("12345678901234567890"), 10, 10, S("abcdefghijklmnopqrs1234567890t"));
- test(S("abcdefghijklmnopqrst"), 19, S("12345678901234567890"), 10, 11, S("abcdefghijklmnopqrs1234567890t"));
- test(S("abcdefghijklmnopqrst"), 19, S("12345678901234567890"), 19, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, S("12345678901234567890"), 19, 1, S("abcdefghijklmnopqrs0t"));
- test(S("abcdefghijklmnopqrst"), 19, S("12345678901234567890"), 19, 2, S("abcdefghijklmnopqrs0t"));
- test(S("abcdefghijklmnopqrst"), 19, S("12345678901234567890"), 20, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, S("12345678901234567890"), 20, 1, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 20, S(""), 0, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, S(""), 0, 1, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, S(""), 1, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 20, S("12345"), 0, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, S("12345"), 0, 1, S("abcdefghijklmnopqrst1"));
- test(S("abcdefghijklmnopqrst"), 20, S("12345"), 0, 2, S("abcdefghijklmnopqrst12"));
- test(S("abcdefghijklmnopqrst"), 20, S("12345"), 0, 4, S("abcdefghijklmnopqrst1234"));
- test(S("abcdefghijklmnopqrst"), 20, S("12345"), 0, 5, S("abcdefghijklmnopqrst12345"));
- test(S("abcdefghijklmnopqrst"), 20, S("12345"), 0, 6, S("abcdefghijklmnopqrst12345"));
- test(S("abcdefghijklmnopqrst"), 20, S("12345"), 1, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, S("12345"), 1, 1, S("abcdefghijklmnopqrst2"));
- test(S("abcdefghijklmnopqrst"), 20, S("12345"), 1, 2, S("abcdefghijklmnopqrst23"));
- test(S("abcdefghijklmnopqrst"), 20, S("12345"), 1, 3, S("abcdefghijklmnopqrst234"));
- test(S("abcdefghijklmnopqrst"), 20, S("12345"), 1, 4, S("abcdefghijklmnopqrst2345"));
- test(S("abcdefghijklmnopqrst"), 20, S("12345"), 1, 5, S("abcdefghijklmnopqrst2345"));
- test(S("abcdefghijklmnopqrst"), 20, S("12345"), 2, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, S("12345"), 2, 1, S("abcdefghijklmnopqrst3"));
- test(S("abcdefghijklmnopqrst"), 20, S("12345"), 2, 2, S("abcdefghijklmnopqrst34"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test26() {
+ test(S("abcdefghijklmnopqrst"), 19, S("1234567890"), 5, 5, S("abcdefghijklmnopqrs67890t"));
+ test(S("abcdefghijklmnopqrst"), 19, S("1234567890"), 5, 6, S("abcdefghijklmnopqrs67890t"));
+ test(S("abcdefghijklmnopqrst"), 19, S("1234567890"), 9, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, S("1234567890"), 9, 1, S("abcdefghijklmnopqrs0t"));
+ test(S("abcdefghijklmnopqrst"), 19, S("1234567890"), 9, 2, S("abcdefghijklmnopqrs0t"));
+ test(S("abcdefghijklmnopqrst"), 19, S("1234567890"), 10, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, S("1234567890"), 10, 1, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, S("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 19, S("12345678901234567890"), 0, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, S("12345678901234567890"), 0, 1, S("abcdefghijklmnopqrs1t"));
+ test(S("abcdefghijklmnopqrst"), 19, S("12345678901234567890"), 0, 10, S("abcdefghijklmnopqrs1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 19, S("12345678901234567890"), 0, 19, S("abcdefghijklmnopqrs1234567890123456789t"));
+ test(S("abcdefghijklmnopqrst"), 19, S("12345678901234567890"), 0, 20, S("abcdefghijklmnopqrs12345678901234567890t"));
+ test(S("abcdefghijklmnopqrst"), 19, S("12345678901234567890"), 0, 21, S("abcdefghijklmnopqrs12345678901234567890t"));
+ test(S("abcdefghijklmnopqrst"), 19, S("12345678901234567890"), 1, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, S("12345678901234567890"), 1, 1, S("abcdefghijklmnopqrs2t"));
+ test(S("abcdefghijklmnopqrst"), 19, S("12345678901234567890"), 1, 9, S("abcdefghijklmnopqrs234567890t"));
+ test(S("abcdefghijklmnopqrst"), 19, S("12345678901234567890"), 1, 18, S("abcdefghijklmnopqrs234567890123456789t"));
+ test(S("abcdefghijklmnopqrst"), 19, S("12345678901234567890"), 1, 19, S("abcdefghijklmnopqrs2345678901234567890t"));
+ test(S("abcdefghijklmnopqrst"), 19, S("12345678901234567890"), 1, 20, S("abcdefghijklmnopqrs2345678901234567890t"));
+ test(S("abcdefghijklmnopqrst"), 19, S("12345678901234567890"), 10, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, S("12345678901234567890"), 10, 1, S("abcdefghijklmnopqrs1t"));
+ test(S("abcdefghijklmnopqrst"), 19, S("12345678901234567890"), 10, 5, S("abcdefghijklmnopqrs12345t"));
+ test(S("abcdefghijklmnopqrst"), 19, S("12345678901234567890"), 10, 9, S("abcdefghijklmnopqrs123456789t"));
+ test(S("abcdefghijklmnopqrst"), 19, S("12345678901234567890"), 10, 10, S("abcdefghijklmnopqrs1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 19, S("12345678901234567890"), 10, 11, S("abcdefghijklmnopqrs1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 19, S("12345678901234567890"), 19, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, S("12345678901234567890"), 19, 1, S("abcdefghijklmnopqrs0t"));
+ test(S("abcdefghijklmnopqrst"), 19, S("12345678901234567890"), 19, 2, S("abcdefghijklmnopqrs0t"));
+ test(S("abcdefghijklmnopqrst"), 19, S("12345678901234567890"), 20, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, S("12345678901234567890"), 20, 1, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 20, S(""), 0, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, S(""), 0, 1, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, S(""), 1, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 20, S("12345"), 0, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, S("12345"), 0, 1, S("abcdefghijklmnopqrst1"));
+ test(S("abcdefghijklmnopqrst"), 20, S("12345"), 0, 2, S("abcdefghijklmnopqrst12"));
+ test(S("abcdefghijklmnopqrst"), 20, S("12345"), 0, 4, S("abcdefghijklmnopqrst1234"));
+ test(S("abcdefghijklmnopqrst"), 20, S("12345"), 0, 5, S("abcdefghijklmnopqrst12345"));
+ test(S("abcdefghijklmnopqrst"), 20, S("12345"), 0, 6, S("abcdefghijklmnopqrst12345"));
+ test(S("abcdefghijklmnopqrst"), 20, S("12345"), 1, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, S("12345"), 1, 1, S("abcdefghijklmnopqrst2"));
+ test(S("abcdefghijklmnopqrst"), 20, S("12345"), 1, 2, S("abcdefghijklmnopqrst23"));
+ test(S("abcdefghijklmnopqrst"), 20, S("12345"), 1, 3, S("abcdefghijklmnopqrst234"));
+ test(S("abcdefghijklmnopqrst"), 20, S("12345"), 1, 4, S("abcdefghijklmnopqrst2345"));
+ test(S("abcdefghijklmnopqrst"), 20, S("12345"), 1, 5, S("abcdefghijklmnopqrst2345"));
+ test(S("abcdefghijklmnopqrst"), 20, S("12345"), 2, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, S("12345"), 2, 1, S("abcdefghijklmnopqrst3"));
+ test(S("abcdefghijklmnopqrst"), 20, S("12345"), 2, 2, S("abcdefghijklmnopqrst34"));
+
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test27()
-{
- test(S("abcdefghijklmnopqrst"), 20, S("12345"), 2, 3, S("abcdefghijklmnopqrst345"));
- test(S("abcdefghijklmnopqrst"), 20, S("12345"), 2, 4, S("abcdefghijklmnopqrst345"));
- test(S("abcdefghijklmnopqrst"), 20, S("12345"), 4, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, S("12345"), 4, 1, S("abcdefghijklmnopqrst5"));
- test(S("abcdefghijklmnopqrst"), 20, S("12345"), 4, 2, S("abcdefghijklmnopqrst5"));
- test(S("abcdefghijklmnopqrst"), 20, S("12345"), 5, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, S("12345"), 5, 1, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, S("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 20, S("1234567890"), 0, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, S("1234567890"), 0, 1, S("abcdefghijklmnopqrst1"));
- test(S("abcdefghijklmnopqrst"), 20, S("1234567890"), 0, 5, S("abcdefghijklmnopqrst12345"));
- test(S("abcdefghijklmnopqrst"), 20, S("1234567890"), 0, 9, S("abcdefghijklmnopqrst123456789"));
- test(S("abcdefghijklmnopqrst"), 20, S("1234567890"), 0, 10, S("abcdefghijklmnopqrst1234567890"));
- test(S("abcdefghijklmnopqrst"), 20, S("1234567890"), 0, 11, S("abcdefghijklmnopqrst1234567890"));
- test(S("abcdefghijklmnopqrst"), 20, S("1234567890"), 1, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, S("1234567890"), 1, 1, S("abcdefghijklmnopqrst2"));
- test(S("abcdefghijklmnopqrst"), 20, S("1234567890"), 1, 4, S("abcdefghijklmnopqrst2345"));
- test(S("abcdefghijklmnopqrst"), 20, S("1234567890"), 1, 8, S("abcdefghijklmnopqrst23456789"));
- test(S("abcdefghijklmnopqrst"), 20, S("1234567890"), 1, 9, S("abcdefghijklmnopqrst234567890"));
- test(S("abcdefghijklmnopqrst"), 20, S("1234567890"), 1, 10, S("abcdefghijklmnopqrst234567890"));
- test(S("abcdefghijklmnopqrst"), 20, S("1234567890"), 5, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, S("1234567890"), 5, 1, S("abcdefghijklmnopqrst6"));
- test(S("abcdefghijklmnopqrst"), 20, S("1234567890"), 5, 2, S("abcdefghijklmnopqrst67"));
- test(S("abcdefghijklmnopqrst"), 20, S("1234567890"), 5, 4, S("abcdefghijklmnopqrst6789"));
- test(S("abcdefghijklmnopqrst"), 20, S("1234567890"), 5, 5, S("abcdefghijklmnopqrst67890"));
- test(S("abcdefghijklmnopqrst"), 20, S("1234567890"), 5, 6, S("abcdefghijklmnopqrst67890"));
- test(S("abcdefghijklmnopqrst"), 20, S("1234567890"), 9, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, S("1234567890"), 9, 1, S("abcdefghijklmnopqrst0"));
- test(S("abcdefghijklmnopqrst"), 20, S("1234567890"), 9, 2, S("abcdefghijklmnopqrst0"));
- test(S("abcdefghijklmnopqrst"), 20, S("1234567890"), 10, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, S("1234567890"), 10, 1, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, S("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 20, S("12345678901234567890"), 0, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, S("12345678901234567890"), 0, 1, S("abcdefghijklmnopqrst1"));
- test(S("abcdefghijklmnopqrst"), 20, S("12345678901234567890"), 0, 10, S("abcdefghijklmnopqrst1234567890"));
- test(S("abcdefghijklmnopqrst"), 20, S("12345678901234567890"), 0, 19, S("abcdefghijklmnopqrst1234567890123456789"));
- test(S("abcdefghijklmnopqrst"), 20, S("12345678901234567890"), 0, 20, S("abcdefghijklmnopqrst12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 20, S("12345678901234567890"), 0, 21, S("abcdefghijklmnopqrst12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 20, S("12345678901234567890"), 1, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, S("12345678901234567890"), 1, 1, S("abcdefghijklmnopqrst2"));
- test(S("abcdefghijklmnopqrst"), 20, S("12345678901234567890"), 1, 9, S("abcdefghijklmnopqrst234567890"));
- test(S("abcdefghijklmnopqrst"), 20, S("12345678901234567890"), 1, 18, S("abcdefghijklmnopqrst234567890123456789"));
- test(S("abcdefghijklmnopqrst"), 20, S("12345678901234567890"), 1, 19, S("abcdefghijklmnopqrst2345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 20, S("12345678901234567890"), 1, 20, S("abcdefghijklmnopqrst2345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 20, S("12345678901234567890"), 10, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, S("12345678901234567890"), 10, 1, S("abcdefghijklmnopqrst1"));
- test(S("abcdefghijklmnopqrst"), 20, S("12345678901234567890"), 10, 5, S("abcdefghijklmnopqrst12345"));
- test(S("abcdefghijklmnopqrst"), 20, S("12345678901234567890"), 10, 9, S("abcdefghijklmnopqrst123456789"));
- test(S("abcdefghijklmnopqrst"), 20, S("12345678901234567890"), 10, 10, S("abcdefghijklmnopqrst1234567890"));
- test(S("abcdefghijklmnopqrst"), 20, S("12345678901234567890"), 10, 11, S("abcdefghijklmnopqrst1234567890"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test27() {
+ test(S("abcdefghijklmnopqrst"), 20, S("12345"), 2, 3, S("abcdefghijklmnopqrst345"));
+ test(S("abcdefghijklmnopqrst"), 20, S("12345"), 2, 4, S("abcdefghijklmnopqrst345"));
+ test(S("abcdefghijklmnopqrst"), 20, S("12345"), 4, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, S("12345"), 4, 1, S("abcdefghijklmnopqrst5"));
+ test(S("abcdefghijklmnopqrst"), 20, S("12345"), 4, 2, S("abcdefghijklmnopqrst5"));
+ test(S("abcdefghijklmnopqrst"), 20, S("12345"), 5, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, S("12345"), 5, 1, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, S("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 20, S("1234567890"), 0, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, S("1234567890"), 0, 1, S("abcdefghijklmnopqrst1"));
+ test(S("abcdefghijklmnopqrst"), 20, S("1234567890"), 0, 5, S("abcdefghijklmnopqrst12345"));
+ test(S("abcdefghijklmnopqrst"), 20, S("1234567890"), 0, 9, S("abcdefghijklmnopqrst123456789"));
+ test(S("abcdefghijklmnopqrst"), 20, S("1234567890"), 0, 10, S("abcdefghijklmnopqrst1234567890"));
+ test(S("abcdefghijklmnopqrst"), 20, S("1234567890"), 0, 11, S("abcdefghijklmnopqrst1234567890"));
+ test(S("abcdefghijklmnopqrst"), 20, S("1234567890"), 1, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, S("1234567890"), 1, 1, S("abcdefghijklmnopqrst2"));
+ test(S("abcdefghijklmnopqrst"), 20, S("1234567890"), 1, 4, S("abcdefghijklmnopqrst2345"));
+ test(S("abcdefghijklmnopqrst"), 20, S("1234567890"), 1, 8, S("abcdefghijklmnopqrst23456789"));
+ test(S("abcdefghijklmnopqrst"), 20, S("1234567890"), 1, 9, S("abcdefghijklmnopqrst234567890"));
+ test(S("abcdefghijklmnopqrst"), 20, S("1234567890"), 1, 10, S("abcdefghijklmnopqrst234567890"));
+ test(S("abcdefghijklmnopqrst"), 20, S("1234567890"), 5, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, S("1234567890"), 5, 1, S("abcdefghijklmnopqrst6"));
+ test(S("abcdefghijklmnopqrst"), 20, S("1234567890"), 5, 2, S("abcdefghijklmnopqrst67"));
+ test(S("abcdefghijklmnopqrst"), 20, S("1234567890"), 5, 4, S("abcdefghijklmnopqrst6789"));
+ test(S("abcdefghijklmnopqrst"), 20, S("1234567890"), 5, 5, S("abcdefghijklmnopqrst67890"));
+ test(S("abcdefghijklmnopqrst"), 20, S("1234567890"), 5, 6, S("abcdefghijklmnopqrst67890"));
+ test(S("abcdefghijklmnopqrst"), 20, S("1234567890"), 9, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, S("1234567890"), 9, 1, S("abcdefghijklmnopqrst0"));
+ test(S("abcdefghijklmnopqrst"), 20, S("1234567890"), 9, 2, S("abcdefghijklmnopqrst0"));
+ test(S("abcdefghijklmnopqrst"), 20, S("1234567890"), 10, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, S("1234567890"), 10, 1, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, S("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 20, S("12345678901234567890"), 0, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, S("12345678901234567890"), 0, 1, S("abcdefghijklmnopqrst1"));
+ test(S("abcdefghijklmnopqrst"), 20, S("12345678901234567890"), 0, 10, S("abcdefghijklmnopqrst1234567890"));
+ test(S("abcdefghijklmnopqrst"), 20, S("12345678901234567890"), 0, 19, S("abcdefghijklmnopqrst1234567890123456789"));
+ test(S("abcdefghijklmnopqrst"), 20, S("12345678901234567890"), 0, 20, S("abcdefghijklmnopqrst12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 20, S("12345678901234567890"), 0, 21, S("abcdefghijklmnopqrst12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 20, S("12345678901234567890"), 1, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, S("12345678901234567890"), 1, 1, S("abcdefghijklmnopqrst2"));
+ test(S("abcdefghijklmnopqrst"), 20, S("12345678901234567890"), 1, 9, S("abcdefghijklmnopqrst234567890"));
+ test(S("abcdefghijklmnopqrst"), 20, S("12345678901234567890"), 1, 18, S("abcdefghijklmnopqrst234567890123456789"));
+ test(S("abcdefghijklmnopqrst"), 20, S("12345678901234567890"), 1, 19, S("abcdefghijklmnopqrst2345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 20, S("12345678901234567890"), 1, 20, S("abcdefghijklmnopqrst2345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 20, S("12345678901234567890"), 10, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, S("12345678901234567890"), 10, 1, S("abcdefghijklmnopqrst1"));
+ test(S("abcdefghijklmnopqrst"), 20, S("12345678901234567890"), 10, 5, S("abcdefghijklmnopqrst12345"));
+ test(S("abcdefghijklmnopqrst"), 20, S("12345678901234567890"), 10, 9, S("abcdefghijklmnopqrst123456789"));
+ test(S("abcdefghijklmnopqrst"), 20, S("12345678901234567890"), 10, 10, S("abcdefghijklmnopqrst1234567890"));
+ test(S("abcdefghijklmnopqrst"), 20, S("12345678901234567890"), 10, 11, S("abcdefghijklmnopqrst1234567890"));
+
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test28()
-{
- test(S("abcdefghijklmnopqrst"), 20, S("12345678901234567890"), 19, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, S("12345678901234567890"), 19, 1, S("abcdefghijklmnopqrst0"));
- test(S("abcdefghijklmnopqrst"), 20, S("12345678901234567890"), 19, 2, S("abcdefghijklmnopqrst0"));
- test(S("abcdefghijklmnopqrst"), 20, S("12345678901234567890"), 20, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, S("12345678901234567890"), 20, 1, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, S(""), 0, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, S(""), 0, 1, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, S(""), 1, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, S("12345"), 0, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, S("12345"), 0, 1, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, S("12345"), 0, 2, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, S("12345"), 0, 4, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, S("12345"), 0, 5, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, S("12345"), 0, 6, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, S("12345"), 1, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, S("12345"), 1, 1, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, S("12345"), 1, 2, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, S("12345"), 1, 3, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, S("12345"), 1, 4, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, S("12345"), 1, 5, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, S("12345"), 2, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, S("12345"), 2, 1, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, S("12345"), 2, 2, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, S("12345"), 2, 3, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, S("12345"), 2, 4, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, S("12345"), 4, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, S("12345"), 4, 1, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, S("12345"), 4, 2, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, S("12345"), 5, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, S("12345"), 5, 1, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, S("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, S("1234567890"), 0, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, S("1234567890"), 0, 1, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, S("1234567890"), 0, 5, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, S("1234567890"), 0, 9, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, S("1234567890"), 0, 10, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, S("1234567890"), 0, 11, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, S("1234567890"), 1, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, S("1234567890"), 1, 1, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, S("1234567890"), 1, 4, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, S("1234567890"), 1, 8, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, S("1234567890"), 1, 9, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, S("1234567890"), 1, 10, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, S("1234567890"), 5, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, S("1234567890"), 5, 1, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, S("1234567890"), 5, 2, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, S("1234567890"), 5, 4, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, S("1234567890"), 5, 5, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, S("1234567890"), 5, 6, S("can't happen"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test28() {
+ test(S("abcdefghijklmnopqrst"), 20, S("12345678901234567890"), 19, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, S("12345678901234567890"), 19, 1, S("abcdefghijklmnopqrst0"));
+ test(S("abcdefghijklmnopqrst"), 20, S("12345678901234567890"), 19, 2, S("abcdefghijklmnopqrst0"));
+ test(S("abcdefghijklmnopqrst"), 20, S("12345678901234567890"), 20, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, S("12345678901234567890"), 20, 1, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, S(""), 0, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, S(""), 0, 1, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, S(""), 1, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, S("12345"), 0, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, S("12345"), 0, 1, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, S("12345"), 0, 2, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, S("12345"), 0, 4, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, S("12345"), 0, 5, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, S("12345"), 0, 6, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, S("12345"), 1, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, S("12345"), 1, 1, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, S("12345"), 1, 2, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, S("12345"), 1, 3, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, S("12345"), 1, 4, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, S("12345"), 1, 5, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, S("12345"), 2, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, S("12345"), 2, 1, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, S("12345"), 2, 2, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, S("12345"), 2, 3, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, S("12345"), 2, 4, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, S("12345"), 4, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, S("12345"), 4, 1, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, S("12345"), 4, 2, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, S("12345"), 5, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, S("12345"), 5, 1, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, S("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, S("1234567890"), 0, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, S("1234567890"), 0, 1, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, S("1234567890"), 0, 5, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, S("1234567890"), 0, 9, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, S("1234567890"), 0, 10, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, S("1234567890"), 0, 11, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, S("1234567890"), 1, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, S("1234567890"), 1, 1, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, S("1234567890"), 1, 4, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, S("1234567890"), 1, 8, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, S("1234567890"), 1, 9, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, S("1234567890"), 1, 10, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, S("1234567890"), 5, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, S("1234567890"), 5, 1, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, S("1234567890"), 5, 2, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, S("1234567890"), 5, 4, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, S("1234567890"), 5, 5, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, S("1234567890"), 5, 6, S("can't happen"));
+
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test29()
-{
- test(S("abcdefghijklmnopqrst"), 21, S("1234567890"), 9, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, S("1234567890"), 9, 1, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, S("1234567890"), 9, 2, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, S("1234567890"), 10, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, S("1234567890"), 10, 1, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, S("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, S("12345678901234567890"), 0, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, S("12345678901234567890"), 0, 1, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, S("12345678901234567890"), 0, 10, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, S("12345678901234567890"), 0, 19, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, S("12345678901234567890"), 0, 20, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, S("12345678901234567890"), 0, 21, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, S("12345678901234567890"), 1, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, S("12345678901234567890"), 1, 1, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, S("12345678901234567890"), 1, 9, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, S("12345678901234567890"), 1, 18, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, S("12345678901234567890"), 1, 19, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, S("12345678901234567890"), 1, 20, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, S("12345678901234567890"), 10, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, S("12345678901234567890"), 10, 1, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, S("12345678901234567890"), 10, 5, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, S("12345678901234567890"), 10, 9, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, S("12345678901234567890"), 10, 10, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, S("12345678901234567890"), 10, 11, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, S("12345678901234567890"), 19, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, S("12345678901234567890"), 19, 1, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, S("12345678901234567890"), 19, 2, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, S("12345678901234567890"), 20, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, S("12345678901234567890"), 20, 1, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, S("12345678901234567890"), 21, 0, S("can't happen"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test29() {
+ test(S("abcdefghijklmnopqrst"), 21, S("1234567890"), 9, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, S("1234567890"), 9, 1, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, S("1234567890"), 9, 2, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, S("1234567890"), 10, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, S("1234567890"), 10, 1, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, S("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, S("12345678901234567890"), 0, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, S("12345678901234567890"), 0, 1, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, S("12345678901234567890"), 0, 10, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, S("12345678901234567890"), 0, 19, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, S("12345678901234567890"), 0, 20, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, S("12345678901234567890"), 0, 21, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, S("12345678901234567890"), 1, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, S("12345678901234567890"), 1, 1, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, S("12345678901234567890"), 1, 9, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, S("12345678901234567890"), 1, 18, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, S("12345678901234567890"), 1, 19, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, S("12345678901234567890"), 1, 20, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, S("12345678901234567890"), 10, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, S("12345678901234567890"), 10, 1, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, S("12345678901234567890"), 10, 5, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, S("12345678901234567890"), 10, 9, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, S("12345678901234567890"), 10, 10, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, S("12345678901234567890"), 10, 11, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, S("12345678901234567890"), 19, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, S("12345678901234567890"), 19, 1, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, S("12345678901234567890"), 19, 2, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, S("12345678901234567890"), 20, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, S("12345678901234567890"), 20, 1, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, S("12345678901234567890"), 21, 0, S("can't happen"));
+
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test30()
-{
- test_npos(S(""), 0, S("12345678901234567890"), 0, S("12345678901234567890"));
- test_npos(S(""), 0, S("12345678901234567890"), 1, S( "2345678901234567890"));
- test_npos(S(""), 0, S("12345678901234567890"), 2, S( "345678901234567890"));
- test_npos(S(""), 0, S("12345678901234567890"), 3, S( "45678901234567890"));
- test_npos(S(""), 0, S("12345678901234567890"), 5, S( "678901234567890"));
- test_npos(S(""), 0, S("12345678901234567890"), 10, S( "1234567890"));
- test_npos(S(""), 0, S("12345678901234567890"), 21, S("can't happen"));
- test_npos(S("abcdefghijklmnopqrst"), 10, S("12345"), 0, S("abcdefghij12345klmnopqrst"));
- test_npos(S("abcdefghijklmnopqrst"), 10, S("12345"), 1, S("abcdefghij2345klmnopqrst"));
- test_npos(S("abcdefghijklmnopqrst"), 10, S("12345"), 3, S("abcdefghij45klmnopqrst"));
- test_npos(S("abcdefghijklmnopqrst"), 10, S("12345"), 5, S("abcdefghijklmnopqrst"));
- test_npos(S("abcdefghijklmnopqrst"), 10, S("12345"), 6, S("can't happen"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test30() {
+ test_npos(S(""), 0, S("12345678901234567890"), 0, S("12345678901234567890"));
+ test_npos(S(""), 0, S("12345678901234567890"), 1, S("2345678901234567890"));
+ test_npos(S(""), 0, S("12345678901234567890"), 2, S("345678901234567890"));
+ test_npos(S(""), 0, S("12345678901234567890"), 3, S("45678901234567890"));
+ test_npos(S(""), 0, S("12345678901234567890"), 5, S("678901234567890"));
+ test_npos(S(""), 0, S("12345678901234567890"), 10, S("1234567890"));
+ test_npos(S(""), 0, S("12345678901234567890"), 21, S("can't happen"));
+ test_npos(S("abcdefghijklmnopqrst"), 10, S("12345"), 0, S("abcdefghij12345klmnopqrst"));
+ test_npos(S("abcdefghijklmnopqrst"), 10, S("12345"), 1, S("abcdefghij2345klmnopqrst"));
+ test_npos(S("abcdefghijklmnopqrst"), 10, S("12345"), 3, S("abcdefghij45klmnopqrst"));
+ test_npos(S("abcdefghijklmnopqrst"), 10, S("12345"), 5, S("abcdefghijklmnopqrst"));
+ test_npos(S("abcdefghijklmnopqrst"), 10, S("12345"), 6, S("can't happen"));
+
+ return true;
}
template <class S>
@@ -1858,8 +1812,7 @@ void test() {
#endif
}
-int main(int, char**)
-{
+int main(int, char**) {
test<std::string>();
#if TEST_STD_VER >= 11
test<std::basic_string<char, std::char_traits<char>, min_allocator<char>>>();
diff --git a/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/string_view.pass.cpp b/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/string_view.pass.cpp
index 1f26a211bd94d14..7c0f157bc323009 100644
--- a/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/string_view.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.modifiers/string_insert/string_view.pass.cpp
@@ -19,31 +19,24 @@
#include "min_allocator.h"
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 void
-test(S s, typename S::size_type pos, SV sv, S expected)
-{
- const typename S::size_type old_size = s.size();
- S s0 = s;
- if (pos <= old_size)
- {
- s.insert(pos, sv);
- LIBCPP_ASSERT(s.__invariants());
- assert(s == expected);
- }
+TEST_CONSTEXPR_CXX20 void test(S s, typename S::size_type pos, SV sv, S expected) {
+ const typename S::size_type old_size = s.size();
+ S s0 = s;
+ if (pos <= old_size) {
+ s.insert(pos, sv);
+ LIBCPP_ASSERT(s.__invariants());
+ assert(s == expected);
+ }
#ifndef TEST_HAS_NO_EXCEPTIONS
- else if (!TEST_IS_CONSTANT_EVALUATED)
- {
- try
- {
- s.insert(pos, sv);
- assert(false);
- }
- catch (std::out_of_range&)
- {
- assert(pos > old_size);
- assert(s == s0);
- }
+ else if (!TEST_IS_CONSTANT_EVALUATED) {
+ try {
+ s.insert(pos, sv);
+ assert(false);
+ } catch (std::out_of_range&) {
+ assert(pos > old_size);
+ assert(s == s0);
}
+ }
#endif
}
@@ -157,8 +150,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.modifiers/string_op_plus_equal/char.pass.cpp b/libcxx/test/std/strings/basic.string/string.modifiers/string_op_plus_equal/char.pass.cpp
index 129bca4ce6496e8..496c484ee20b306 100644
--- a/libcxx/test/std/strings/basic.string/string.modifiers/string_op_plus_equal/char.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.modifiers/string_op_plus_equal/char.pass.cpp
@@ -17,12 +17,10 @@
#include "min_allocator.h"
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(S s, typename S::value_type str, S expected)
-{
- s += str;
- LIBCPP_ASSERT(s.__invariants());
- assert(s == expected);
+TEST_CONSTEXPR_CXX20 void test(S s, typename S::value_type str, S expected) {
+ s += str;
+ LIBCPP_ASSERT(s.__invariants());
+ assert(s == expected);
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -46,8 +44,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.modifiers/string_op_plus_equal/initializer_list.pass.cpp b/libcxx/test/std/strings/basic.string/string.modifiers/string_op_plus_equal/initializer_list.pass.cpp
index 265df027b37e7e0..ce31ebc3bc8ed12 100644
--- a/libcxx/test/std/strings/basic.string/string.modifiers/string_op_plus_equal/initializer_list.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.modifiers/string_op_plus_equal/initializer_list.pass.cpp
@@ -34,8 +34,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.modifiers/string_op_plus_equal/pointer.pass.cpp b/libcxx/test/std/strings/basic.string/string.modifiers/string_op_plus_equal/pointer.pass.cpp
index 645a5822f521d15..2d8c535b354c22f 100644
--- a/libcxx/test/std/strings/basic.string/string.modifiers/string_op_plus_equal/pointer.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.modifiers/string_op_plus_equal/pointer.pass.cpp
@@ -17,12 +17,10 @@
#include "min_allocator.h"
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(S s, const typename S::value_type* str, S expected)
-{
- s += str;
- LIBCPP_ASSERT(s.__invariants());
- assert(s == expected);
+TEST_CONSTEXPR_CXX20 void test(S s, const typename S::value_type* str, S expected) {
+ s += str;
+ LIBCPP_ASSERT(s.__invariants());
+ assert(s == expected);
}
template <class S>
@@ -45,8 +43,7 @@ TEST_CONSTEXPR_CXX20 void test_string() {
test(S("12345678901234567890"), "", S("12345678901234567890"));
test(S("12345678901234567890"), "12345", S("1234567890123456789012345"));
test(S("12345678901234567890"), "1234567890", S("123456789012345678901234567890"));
- test(S("12345678901234567890"), "12345678901234567890",
- S("1234567890123456789012345678901234567890"));
+ test(S("12345678901234567890"), "12345678901234567890", S("1234567890123456789012345678901234567890"));
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -58,8 +55,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.modifiers/string_op_plus_equal/string.pass.cpp b/libcxx/test/std/strings/basic.string/string.modifiers/string_op_plus_equal/string.pass.cpp
index c7ee062764c891d..870843192da86bb 100644
--- a/libcxx/test/std/strings/basic.string/string.modifiers/string_op_plus_equal/string.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.modifiers/string_op_plus_equal/string.pass.cpp
@@ -18,12 +18,10 @@
#include "min_allocator.h"
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(S s, S str, S expected)
-{
- s += str;
- LIBCPP_ASSERT(s.__invariants());
- assert(s == expected);
+TEST_CONSTEXPR_CXX20 void test(S s, S str, S expected) {
+ s += str;
+ LIBCPP_ASSERT(s.__invariants());
+ assert(s == expected);
}
template <class S>
@@ -46,8 +44,7 @@ TEST_CONSTEXPR_CXX20 void test_string() {
test(S("12345678901234567890"), S(), S("12345678901234567890"));
test(S("12345678901234567890"), S("12345"), S("1234567890123456789012345"));
test(S("12345678901234567890"), S("1234567890"), S("123456789012345678901234567890"));
- test(S("12345678901234567890"), S("12345678901234567890"),
- S("1234567890123456789012345678901234567890"));
+ test(S("12345678901234567890"), S("12345678901234567890"), S("1234567890123456789012345678901234567890"));
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -68,8 +65,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.modifiers/string_replace/iter_iter_initializer_list.pass.cpp b/libcxx/test/std/strings/basic.string/string.modifiers/string_replace/iter_iter_initializer_list.pass.cpp
index 5f53c835e855c5d..dc6f191e106c6fc 100644
--- a/libcxx/test/std/strings/basic.string/string.modifiers/string_replace/iter_iter_initializer_list.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.modifiers/string_replace/iter_iter_initializer_list.pass.cpp
@@ -34,8 +34,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.modifiers/string_replace/iter_iter_iter_iter.pass.cpp b/libcxx/test/std/strings/basic.string/string.modifiers/string_replace/iter_iter_iter_iter.pass.cpp
index c70a43e2ca81e00..c1ca532a5f910f9 100644
--- a/libcxx/test/std/strings/basic.string/string.modifiers/string_replace/iter_iter_iter_iter.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.modifiers/string_replace/iter_iter_iter_iter.pass.cpp
@@ -21,975 +21,965 @@
#include "test_iterators.h"
template <class S, class It>
-TEST_CONSTEXPR_CXX20 void
-test(S s, typename S::size_type pos1, typename S::size_type n1, It f, It l, S expected)
-{
- typename S::size_type old_size = s.size();
- typename S::const_iterator first = s.begin() + pos1;
- typename S::const_iterator last = s.begin() + pos1 + n1;
- typename S::size_type xlen = last - first;
- s.replace(first, last, f, l);
- LIBCPP_ASSERT(s.__invariants());
- assert(s == expected);
- typename S::size_type rlen = std::distance(f, l);
- assert(s.size() == old_size - xlen + rlen);
+TEST_CONSTEXPR_CXX20 void test(S s, typename S::size_type pos1, typename S::size_type n1, It f, It l, S expected) {
+ typename S::size_type old_size = s.size();
+ typename S::const_iterator first = s.begin() + pos1;
+ typename S::const_iterator last = s.begin() + pos1 + n1;
+ typename S::size_type xlen = last - first;
+ s.replace(first, last, f, l);
+ LIBCPP_ASSERT(s.__invariants());
+ assert(s == expected);
+ typename S::size_type rlen = std::distance(f, l);
+ assert(s.size() == old_size - xlen + rlen);
}
#ifndef TEST_HAS_NO_EXCEPTIONS
-struct Widget { operator char() const { throw 42; } };
+struct Widget {
+ operator char() const { throw 42; }
+};
template <class S, class It>
-TEST_CONSTEXPR_CXX20 void
-test_exceptions(S s, typename S::size_type pos1, typename S::size_type n1, It f, It l)
-{
- typename S::const_iterator first = s.begin() + pos1;
- typename S::const_iterator last = s.begin() + pos1 + n1;
+TEST_CONSTEXPR_CXX20 void test_exceptions(S s, typename S::size_type pos1, typename S::size_type n1, It f, It l) {
+ typename S::const_iterator first = s.begin() + pos1;
+ typename S::const_iterator last = s.begin() + pos1 + n1;
- S original = s;
- typename S::iterator begin = s.begin();
- typename S::iterator end = s.end();
+ S original = s;
+ typename S::iterator begin = s.begin();
+ typename S::iterator end = s.end();
- try {
- s.replace(first, last, f, l);
- assert(false);
- } catch (...) {}
+ try {
+ s.replace(first, last, f, l);
+ assert(false);
+ } catch (...) {
+ }
- // Part of "no effects" is that iterators and pointers
- // into the string must not have been invalidated.
- LIBCPP_ASSERT(s.__invariants());
- assert(s == original);
- assert(s.begin() == begin);
- assert(s.end() == end);
+ // Part of "no effects" is that iterators and pointers
+ // into the string must not have been invalidated.
+ LIBCPP_ASSERT(s.__invariants());
+ assert(s == original);
+ assert(s.begin() == begin);
+ assert(s.end() == end);
}
#endif
TEST_CONSTEXPR const char* str = "12345678901234567890";
template <class S>
-TEST_CONSTEXPR_CXX20 bool test0()
-{
- test(S(""), 0, 0, str, str+0, S(""));
- test(S(""), 0, 0, str, str+0, S(""));
- test(S(""), 0, 0, str, str+1, S("1"));
- test(S(""), 0, 0, str, str+2, S("12"));
- test(S(""), 0, 0, str, str+4, S("1234"));
- test(S(""), 0, 0, str, str+5, S("12345"));
- test(S(""), 0, 0, str, str+0, S(""));
- test(S(""), 0, 0, str, str+1, S("1"));
- test(S(""), 0, 0, str, str+5, S("12345"));
- test(S(""), 0, 0, str, str+9, S("123456789"));
- test(S(""), 0, 0, str, str+10, S("1234567890"));
- test(S(""), 0, 0, str, str+0, S(""));
- test(S(""), 0, 0, str, str+1, S("1"));
- test(S(""), 0, 0, str, str+10, S("1234567890"));
- test(S(""), 0, 0, str, str+19, S("1234567890123456789"));
- test(S(""), 0, 0, str, str+20, S("12345678901234567890"));
- test(S("abcde"), 0, 0, str, str+0, S("abcde"));
- test(S("abcde"), 0, 0, str, str+0, S("abcde"));
- test(S("abcde"), 0, 0, str, str+1, S("1abcde"));
- test(S("abcde"), 0, 0, str, str+2, S("12abcde"));
- test(S("abcde"), 0, 0, str, str+4, S("1234abcde"));
- test(S("abcde"), 0, 0, str, str+5, S("12345abcde"));
- test(S("abcde"), 0, 0, str, str+0, S("abcde"));
- test(S("abcde"), 0, 0, str, str+1, S("1abcde"));
- test(S("abcde"), 0, 0, str, str+5, S("12345abcde"));
- test(S("abcde"), 0, 0, str, str+9, S("123456789abcde"));
- test(S("abcde"), 0, 0, str, str+10, S("1234567890abcde"));
- test(S("abcde"), 0, 0, str, str+0, S("abcde"));
- test(S("abcde"), 0, 0, str, str+1, S("1abcde"));
- test(S("abcde"), 0, 0, str, str+10, S("1234567890abcde"));
- test(S("abcde"), 0, 0, str, str+19, S("1234567890123456789abcde"));
- test(S("abcde"), 0, 0, str, str+20, S("12345678901234567890abcde"));
- test(S("abcde"), 0, 1, str, str+0, S("bcde"));
- test(S("abcde"), 0, 1, str, str+0, S("bcde"));
- test(S("abcde"), 0, 1, str, str+1, S("1bcde"));
- test(S("abcde"), 0, 1, str, str+2, S("12bcde"));
- test(S("abcde"), 0, 1, str, str+4, S("1234bcde"));
- test(S("abcde"), 0, 1, str, str+5, S("12345bcde"));
- test(S("abcde"), 0, 1, str, str+0, S("bcde"));
- test(S("abcde"), 0, 1, str, str+1, S("1bcde"));
- test(S("abcde"), 0, 1, str, str+5, S("12345bcde"));
- test(S("abcde"), 0, 1, str, str+9, S("123456789bcde"));
- test(S("abcde"), 0, 1, str, str+10, S("1234567890bcde"));
- test(S("abcde"), 0, 1, str, str+0, S("bcde"));
- test(S("abcde"), 0, 1, str, str+1, S("1bcde"));
- test(S("abcde"), 0, 1, str, str+10, S("1234567890bcde"));
- test(S("abcde"), 0, 1, str, str+19, S("1234567890123456789bcde"));
- test(S("abcde"), 0, 1, str, str+20, S("12345678901234567890bcde"));
- test(S("abcde"), 0, 2, str, str+0, S("cde"));
- test(S("abcde"), 0, 2, str, str+0, S("cde"));
- test(S("abcde"), 0, 2, str, str+1, S("1cde"));
- test(S("abcde"), 0, 2, str, str+2, S("12cde"));
- test(S("abcde"), 0, 2, str, str+4, S("1234cde"));
- test(S("abcde"), 0, 2, str, str+5, S("12345cde"));
- test(S("abcde"), 0, 2, str, str+0, S("cde"));
- test(S("abcde"), 0, 2, str, str+1, S("1cde"));
- test(S("abcde"), 0, 2, str, str+5, S("12345cde"));
- test(S("abcde"), 0, 2, str, str+9, S("123456789cde"));
- test(S("abcde"), 0, 2, str, str+10, S("1234567890cde"));
- test(S("abcde"), 0, 2, str, str+0, S("cde"));
- test(S("abcde"), 0, 2, str, str+1, S("1cde"));
- test(S("abcde"), 0, 2, str, str+10, S("1234567890cde"));
- test(S("abcde"), 0, 2, str, str+19, S("1234567890123456789cde"));
- test(S("abcde"), 0, 2, str, str+20, S("12345678901234567890cde"));
- test(S("abcde"), 0, 4, str, str+0, S("e"));
- test(S("abcde"), 0, 4, str, str+0, S("e"));
- test(S("abcde"), 0, 4, str, str+1, S("1e"));
- test(S("abcde"), 0, 4, str, str+2, S("12e"));
- test(S("abcde"), 0, 4, str, str+4, S("1234e"));
- test(S("abcde"), 0, 4, str, str+5, S("12345e"));
- test(S("abcde"), 0, 4, str, str+0, S("e"));
- test(S("abcde"), 0, 4, str, str+1, S("1e"));
- test(S("abcde"), 0, 4, str, str+5, S("12345e"));
- test(S("abcde"), 0, 4, str, str+9, S("123456789e"));
- test(S("abcde"), 0, 4, str, str+10, S("1234567890e"));
- test(S("abcde"), 0, 4, str, str+0, S("e"));
- test(S("abcde"), 0, 4, str, str+1, S("1e"));
- test(S("abcde"), 0, 4, str, str+10, S("1234567890e"));
- test(S("abcde"), 0, 4, str, str+19, S("1234567890123456789e"));
- test(S("abcde"), 0, 4, str, str+20, S("12345678901234567890e"));
- test(S("abcde"), 0, 5, str, str+0, S(""));
- test(S("abcde"), 0, 5, str, str+0, S(""));
- test(S("abcde"), 0, 5, str, str+1, S("1"));
- test(S("abcde"), 0, 5, str, str+2, S("12"));
- test(S("abcde"), 0, 5, str, str+4, S("1234"));
- test(S("abcde"), 0, 5, str, str+5, S("12345"));
- test(S("abcde"), 0, 5, str, str+0, S(""));
- test(S("abcde"), 0, 5, str, str+1, S("1"));
- test(S("abcde"), 0, 5, str, str+5, S("12345"));
- test(S("abcde"), 0, 5, str, str+9, S("123456789"));
- test(S("abcde"), 0, 5, str, str+10, S("1234567890"));
- test(S("abcde"), 0, 5, str, str+0, S(""));
- test(S("abcde"), 0, 5, str, str+1, S("1"));
- test(S("abcde"), 0, 5, str, str+10, S("1234567890"));
- test(S("abcde"), 0, 5, str, str+19, S("1234567890123456789"));
- test(S("abcde"), 0, 5, str, str+20, S("12345678901234567890"));
- test(S("abcde"), 1, 0, str, str+0, S("abcde"));
- test(S("abcde"), 1, 0, str, str+0, S("abcde"));
- test(S("abcde"), 1, 0, str, str+1, S("a1bcde"));
- test(S("abcde"), 1, 0, str, str+2, S("a12bcde"));
+TEST_CONSTEXPR_CXX20 bool test0() {
+ test(S(""), 0, 0, str, str + 0, S(""));
+ test(S(""), 0, 0, str, str + 0, S(""));
+ test(S(""), 0, 0, str, str + 1, S("1"));
+ test(S(""), 0, 0, str, str + 2, S("12"));
+ test(S(""), 0, 0, str, str + 4, S("1234"));
+ test(S(""), 0, 0, str, str + 5, S("12345"));
+ test(S(""), 0, 0, str, str + 0, S(""));
+ test(S(""), 0, 0, str, str + 1, S("1"));
+ test(S(""), 0, 0, str, str + 5, S("12345"));
+ test(S(""), 0, 0, str, str + 9, S("123456789"));
+ test(S(""), 0, 0, str, str + 10, S("1234567890"));
+ test(S(""), 0, 0, str, str + 0, S(""));
+ test(S(""), 0, 0, str, str + 1, S("1"));
+ test(S(""), 0, 0, str, str + 10, S("1234567890"));
+ test(S(""), 0, 0, str, str + 19, S("1234567890123456789"));
+ test(S(""), 0, 0, str, str + 20, S("12345678901234567890"));
+ test(S("abcde"), 0, 0, str, str + 0, S("abcde"));
+ test(S("abcde"), 0, 0, str, str + 0, S("abcde"));
+ test(S("abcde"), 0, 0, str, str + 1, S("1abcde"));
+ test(S("abcde"), 0, 0, str, str + 2, S("12abcde"));
+ test(S("abcde"), 0, 0, str, str + 4, S("1234abcde"));
+ test(S("abcde"), 0, 0, str, str + 5, S("12345abcde"));
+ test(S("abcde"), 0, 0, str, str + 0, S("abcde"));
+ test(S("abcde"), 0, 0, str, str + 1, S("1abcde"));
+ test(S("abcde"), 0, 0, str, str + 5, S("12345abcde"));
+ test(S("abcde"), 0, 0, str, str + 9, S("123456789abcde"));
+ test(S("abcde"), 0, 0, str, str + 10, S("1234567890abcde"));
+ test(S("abcde"), 0, 0, str, str + 0, S("abcde"));
+ test(S("abcde"), 0, 0, str, str + 1, S("1abcde"));
+ test(S("abcde"), 0, 0, str, str + 10, S("1234567890abcde"));
+ test(S("abcde"), 0, 0, str, str + 19, S("1234567890123456789abcde"));
+ test(S("abcde"), 0, 0, str, str + 20, S("12345678901234567890abcde"));
+ test(S("abcde"), 0, 1, str, str + 0, S("bcde"));
+ test(S("abcde"), 0, 1, str, str + 0, S("bcde"));
+ test(S("abcde"), 0, 1, str, str + 1, S("1bcde"));
+ test(S("abcde"), 0, 1, str, str + 2, S("12bcde"));
+ test(S("abcde"), 0, 1, str, str + 4, S("1234bcde"));
+ test(S("abcde"), 0, 1, str, str + 5, S("12345bcde"));
+ test(S("abcde"), 0, 1, str, str + 0, S("bcde"));
+ test(S("abcde"), 0, 1, str, str + 1, S("1bcde"));
+ test(S("abcde"), 0, 1, str, str + 5, S("12345bcde"));
+ test(S("abcde"), 0, 1, str, str + 9, S("123456789bcde"));
+ test(S("abcde"), 0, 1, str, str + 10, S("1234567890bcde"));
+ test(S("abcde"), 0, 1, str, str + 0, S("bcde"));
+ test(S("abcde"), 0, 1, str, str + 1, S("1bcde"));
+ test(S("abcde"), 0, 1, str, str + 10, S("1234567890bcde"));
+ test(S("abcde"), 0, 1, str, str + 19, S("1234567890123456789bcde"));
+ test(S("abcde"), 0, 1, str, str + 20, S("12345678901234567890bcde"));
+ test(S("abcde"), 0, 2, str, str + 0, S("cde"));
+ test(S("abcde"), 0, 2, str, str + 0, S("cde"));
+ test(S("abcde"), 0, 2, str, str + 1, S("1cde"));
+ test(S("abcde"), 0, 2, str, str + 2, S("12cde"));
+ test(S("abcde"), 0, 2, str, str + 4, S("1234cde"));
+ test(S("abcde"), 0, 2, str, str + 5, S("12345cde"));
+ test(S("abcde"), 0, 2, str, str + 0, S("cde"));
+ test(S("abcde"), 0, 2, str, str + 1, S("1cde"));
+ test(S("abcde"), 0, 2, str, str + 5, S("12345cde"));
+ test(S("abcde"), 0, 2, str, str + 9, S("123456789cde"));
+ test(S("abcde"), 0, 2, str, str + 10, S("1234567890cde"));
+ test(S("abcde"), 0, 2, str, str + 0, S("cde"));
+ test(S("abcde"), 0, 2, str, str + 1, S("1cde"));
+ test(S("abcde"), 0, 2, str, str + 10, S("1234567890cde"));
+ test(S("abcde"), 0, 2, str, str + 19, S("1234567890123456789cde"));
+ test(S("abcde"), 0, 2, str, str + 20, S("12345678901234567890cde"));
+ test(S("abcde"), 0, 4, str, str + 0, S("e"));
+ test(S("abcde"), 0, 4, str, str + 0, S("e"));
+ test(S("abcde"), 0, 4, str, str + 1, S("1e"));
+ test(S("abcde"), 0, 4, str, str + 2, S("12e"));
+ test(S("abcde"), 0, 4, str, str + 4, S("1234e"));
+ test(S("abcde"), 0, 4, str, str + 5, S("12345e"));
+ test(S("abcde"), 0, 4, str, str + 0, S("e"));
+ test(S("abcde"), 0, 4, str, str + 1, S("1e"));
+ test(S("abcde"), 0, 4, str, str + 5, S("12345e"));
+ test(S("abcde"), 0, 4, str, str + 9, S("123456789e"));
+ test(S("abcde"), 0, 4, str, str + 10, S("1234567890e"));
+ test(S("abcde"), 0, 4, str, str + 0, S("e"));
+ test(S("abcde"), 0, 4, str, str + 1, S("1e"));
+ test(S("abcde"), 0, 4, str, str + 10, S("1234567890e"));
+ test(S("abcde"), 0, 4, str, str + 19, S("1234567890123456789e"));
+ test(S("abcde"), 0, 4, str, str + 20, S("12345678901234567890e"));
+ test(S("abcde"), 0, 5, str, str + 0, S(""));
+ test(S("abcde"), 0, 5, str, str + 0, S(""));
+ test(S("abcde"), 0, 5, str, str + 1, S("1"));
+ test(S("abcde"), 0, 5, str, str + 2, S("12"));
+ test(S("abcde"), 0, 5, str, str + 4, S("1234"));
+ test(S("abcde"), 0, 5, str, str + 5, S("12345"));
+ test(S("abcde"), 0, 5, str, str + 0, S(""));
+ test(S("abcde"), 0, 5, str, str + 1, S("1"));
+ test(S("abcde"), 0, 5, str, str + 5, S("12345"));
+ test(S("abcde"), 0, 5, str, str + 9, S("123456789"));
+ test(S("abcde"), 0, 5, str, str + 10, S("1234567890"));
+ test(S("abcde"), 0, 5, str, str + 0, S(""));
+ test(S("abcde"), 0, 5, str, str + 1, S("1"));
+ test(S("abcde"), 0, 5, str, str + 10, S("1234567890"));
+ test(S("abcde"), 0, 5, str, str + 19, S("1234567890123456789"));
+ test(S("abcde"), 0, 5, str, str + 20, S("12345678901234567890"));
+ test(S("abcde"), 1, 0, str, str + 0, S("abcde"));
+ test(S("abcde"), 1, 0, str, str + 0, S("abcde"));
+ test(S("abcde"), 1, 0, str, str + 1, S("a1bcde"));
+ test(S("abcde"), 1, 0, str, str + 2, S("a12bcde"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test1()
-{
- test(S("abcde"), 1, 0, str, str+4, S("a1234bcde"));
- test(S("abcde"), 1, 0, str, str+5, S("a12345bcde"));
- test(S("abcde"), 1, 0, str, str+0, S("abcde"));
- test(S("abcde"), 1, 0, str, str+1, S("a1bcde"));
- test(S("abcde"), 1, 0, str, str+5, S("a12345bcde"));
- test(S("abcde"), 1, 0, str, str+9, S("a123456789bcde"));
- test(S("abcde"), 1, 0, str, str+10, S("a1234567890bcde"));
- test(S("abcde"), 1, 0, str, str+0, S("abcde"));
- test(S("abcde"), 1, 0, str, str+1, S("a1bcde"));
- test(S("abcde"), 1, 0, str, str+10, S("a1234567890bcde"));
- test(S("abcde"), 1, 0, str, str+19, S("a1234567890123456789bcde"));
- test(S("abcde"), 1, 0, str, str+20, S("a12345678901234567890bcde"));
- test(S("abcde"), 1, 1, str, str+0, S("acde"));
- test(S("abcde"), 1, 1, str, str+0, S("acde"));
- test(S("abcde"), 1, 1, str, str+1, S("a1cde"));
- test(S("abcde"), 1, 1, str, str+2, S("a12cde"));
- test(S("abcde"), 1, 1, str, str+4, S("a1234cde"));
- test(S("abcde"), 1, 1, str, str+5, S("a12345cde"));
- test(S("abcde"), 1, 1, str, str+0, S("acde"));
- test(S("abcde"), 1, 1, str, str+1, S("a1cde"));
- test(S("abcde"), 1, 1, str, str+5, S("a12345cde"));
- test(S("abcde"), 1, 1, str, str+9, S("a123456789cde"));
- test(S("abcde"), 1, 1, str, str+10, S("a1234567890cde"));
- test(S("abcde"), 1, 1, str, str+0, S("acde"));
- test(S("abcde"), 1, 1, str, str+1, S("a1cde"));
- test(S("abcde"), 1, 1, str, str+10, S("a1234567890cde"));
- test(S("abcde"), 1, 1, str, str+19, S("a1234567890123456789cde"));
- test(S("abcde"), 1, 1, str, str+20, S("a12345678901234567890cde"));
- test(S("abcde"), 1, 2, str, str+0, S("ade"));
- test(S("abcde"), 1, 2, str, str+0, S("ade"));
- test(S("abcde"), 1, 2, str, str+1, S("a1de"));
- test(S("abcde"), 1, 2, str, str+2, S("a12de"));
- test(S("abcde"), 1, 2, str, str+4, S("a1234de"));
- test(S("abcde"), 1, 2, str, str+5, S("a12345de"));
- test(S("abcde"), 1, 2, str, str+0, S("ade"));
- test(S("abcde"), 1, 2, str, str+1, S("a1de"));
- test(S("abcde"), 1, 2, str, str+5, S("a12345de"));
- test(S("abcde"), 1, 2, str, str+9, S("a123456789de"));
- test(S("abcde"), 1, 2, str, str+10, S("a1234567890de"));
- test(S("abcde"), 1, 2, str, str+0, S("ade"));
- test(S("abcde"), 1, 2, str, str+1, S("a1de"));
- test(S("abcde"), 1, 2, str, str+10, S("a1234567890de"));
- test(S("abcde"), 1, 2, str, str+19, S("a1234567890123456789de"));
- test(S("abcde"), 1, 2, str, str+20, S("a12345678901234567890de"));
- test(S("abcde"), 1, 3, str, str+0, S("ae"));
- test(S("abcde"), 1, 3, str, str+0, S("ae"));
- test(S("abcde"), 1, 3, str, str+1, S("a1e"));
- test(S("abcde"), 1, 3, str, str+2, S("a12e"));
- test(S("abcde"), 1, 3, str, str+4, S("a1234e"));
- test(S("abcde"), 1, 3, str, str+5, S("a12345e"));
- test(S("abcde"), 1, 3, str, str+0, S("ae"));
- test(S("abcde"), 1, 3, str, str+1, S("a1e"));
- test(S("abcde"), 1, 3, str, str+5, S("a12345e"));
- test(S("abcde"), 1, 3, str, str+9, S("a123456789e"));
- test(S("abcde"), 1, 3, str, str+10, S("a1234567890e"));
- test(S("abcde"), 1, 3, str, str+0, S("ae"));
- test(S("abcde"), 1, 3, str, str+1, S("a1e"));
- test(S("abcde"), 1, 3, str, str+10, S("a1234567890e"));
- test(S("abcde"), 1, 3, str, str+19, S("a1234567890123456789e"));
- test(S("abcde"), 1, 3, str, str+20, S("a12345678901234567890e"));
- test(S("abcde"), 1, 4, str, str+0, S("a"));
- test(S("abcde"), 1, 4, str, str+0, S("a"));
- test(S("abcde"), 1, 4, str, str+1, S("a1"));
- test(S("abcde"), 1, 4, str, str+2, S("a12"));
- test(S("abcde"), 1, 4, str, str+4, S("a1234"));
- test(S("abcde"), 1, 4, str, str+5, S("a12345"));
- test(S("abcde"), 1, 4, str, str+0, S("a"));
- test(S("abcde"), 1, 4, str, str+1, S("a1"));
- test(S("abcde"), 1, 4, str, str+5, S("a12345"));
- test(S("abcde"), 1, 4, str, str+9, S("a123456789"));
- test(S("abcde"), 1, 4, str, str+10, S("a1234567890"));
- test(S("abcde"), 1, 4, str, str+0, S("a"));
- test(S("abcde"), 1, 4, str, str+1, S("a1"));
- test(S("abcde"), 1, 4, str, str+10, S("a1234567890"));
- test(S("abcde"), 1, 4, str, str+19, S("a1234567890123456789"));
- test(S("abcde"), 1, 4, str, str+20, S("a12345678901234567890"));
- test(S("abcde"), 2, 0, str, str+0, S("abcde"));
- test(S("abcde"), 2, 0, str, str+0, S("abcde"));
- test(S("abcde"), 2, 0, str, str+1, S("ab1cde"));
- test(S("abcde"), 2, 0, str, str+2, S("ab12cde"));
- test(S("abcde"), 2, 0, str, str+4, S("ab1234cde"));
- test(S("abcde"), 2, 0, str, str+5, S("ab12345cde"));
- test(S("abcde"), 2, 0, str, str+0, S("abcde"));
- test(S("abcde"), 2, 0, str, str+1, S("ab1cde"));
- test(S("abcde"), 2, 0, str, str+5, S("ab12345cde"));
- test(S("abcde"), 2, 0, str, str+9, S("ab123456789cde"));
- test(S("abcde"), 2, 0, str, str+10, S("ab1234567890cde"));
- test(S("abcde"), 2, 0, str, str+0, S("abcde"));
- test(S("abcde"), 2, 0, str, str+1, S("ab1cde"));
- test(S("abcde"), 2, 0, str, str+10, S("ab1234567890cde"));
- test(S("abcde"), 2, 0, str, str+19, S("ab1234567890123456789cde"));
- test(S("abcde"), 2, 0, str, str+20, S("ab12345678901234567890cde"));
- test(S("abcde"), 2, 1, str, str+0, S("abde"));
- test(S("abcde"), 2, 1, str, str+0, S("abde"));
- test(S("abcde"), 2, 1, str, str+1, S("ab1de"));
- test(S("abcde"), 2, 1, str, str+2, S("ab12de"));
- test(S("abcde"), 2, 1, str, str+4, S("ab1234de"));
- test(S("abcde"), 2, 1, str, str+5, S("ab12345de"));
- test(S("abcde"), 2, 1, str, str+0, S("abde"));
- test(S("abcde"), 2, 1, str, str+1, S("ab1de"));
+TEST_CONSTEXPR_CXX20 bool test1() {
+ test(S("abcde"), 1, 0, str, str + 4, S("a1234bcde"));
+ test(S("abcde"), 1, 0, str, str + 5, S("a12345bcde"));
+ test(S("abcde"), 1, 0, str, str + 0, S("abcde"));
+ test(S("abcde"), 1, 0, str, str + 1, S("a1bcde"));
+ test(S("abcde"), 1, 0, str, str + 5, S("a12345bcde"));
+ test(S("abcde"), 1, 0, str, str + 9, S("a123456789bcde"));
+ test(S("abcde"), 1, 0, str, str + 10, S("a1234567890bcde"));
+ test(S("abcde"), 1, 0, str, str + 0, S("abcde"));
+ test(S("abcde"), 1, 0, str, str + 1, S("a1bcde"));
+ test(S("abcde"), 1, 0, str, str + 10, S("a1234567890bcde"));
+ test(S("abcde"), 1, 0, str, str + 19, S("a1234567890123456789bcde"));
+ test(S("abcde"), 1, 0, str, str + 20, S("a12345678901234567890bcde"));
+ test(S("abcde"), 1, 1, str, str + 0, S("acde"));
+ test(S("abcde"), 1, 1, str, str + 0, S("acde"));
+ test(S("abcde"), 1, 1, str, str + 1, S("a1cde"));
+ test(S("abcde"), 1, 1, str, str + 2, S("a12cde"));
+ test(S("abcde"), 1, 1, str, str + 4, S("a1234cde"));
+ test(S("abcde"), 1, 1, str, str + 5, S("a12345cde"));
+ test(S("abcde"), 1, 1, str, str + 0, S("acde"));
+ test(S("abcde"), 1, 1, str, str + 1, S("a1cde"));
+ test(S("abcde"), 1, 1, str, str + 5, S("a12345cde"));
+ test(S("abcde"), 1, 1, str, str + 9, S("a123456789cde"));
+ test(S("abcde"), 1, 1, str, str + 10, S("a1234567890cde"));
+ test(S("abcde"), 1, 1, str, str + 0, S("acde"));
+ test(S("abcde"), 1, 1, str, str + 1, S("a1cde"));
+ test(S("abcde"), 1, 1, str, str + 10, S("a1234567890cde"));
+ test(S("abcde"), 1, 1, str, str + 19, S("a1234567890123456789cde"));
+ test(S("abcde"), 1, 1, str, str + 20, S("a12345678901234567890cde"));
+ test(S("abcde"), 1, 2, str, str + 0, S("ade"));
+ test(S("abcde"), 1, 2, str, str + 0, S("ade"));
+ test(S("abcde"), 1, 2, str, str + 1, S("a1de"));
+ test(S("abcde"), 1, 2, str, str + 2, S("a12de"));
+ test(S("abcde"), 1, 2, str, str + 4, S("a1234de"));
+ test(S("abcde"), 1, 2, str, str + 5, S("a12345de"));
+ test(S("abcde"), 1, 2, str, str + 0, S("ade"));
+ test(S("abcde"), 1, 2, str, str + 1, S("a1de"));
+ test(S("abcde"), 1, 2, str, str + 5, S("a12345de"));
+ test(S("abcde"), 1, 2, str, str + 9, S("a123456789de"));
+ test(S("abcde"), 1, 2, str, str + 10, S("a1234567890de"));
+ test(S("abcde"), 1, 2, str, str + 0, S("ade"));
+ test(S("abcde"), 1, 2, str, str + 1, S("a1de"));
+ test(S("abcde"), 1, 2, str, str + 10, S("a1234567890de"));
+ test(S("abcde"), 1, 2, str, str + 19, S("a1234567890123456789de"));
+ test(S("abcde"), 1, 2, str, str + 20, S("a12345678901234567890de"));
+ test(S("abcde"), 1, 3, str, str + 0, S("ae"));
+ test(S("abcde"), 1, 3, str, str + 0, S("ae"));
+ test(S("abcde"), 1, 3, str, str + 1, S("a1e"));
+ test(S("abcde"), 1, 3, str, str + 2, S("a12e"));
+ test(S("abcde"), 1, 3, str, str + 4, S("a1234e"));
+ test(S("abcde"), 1, 3, str, str + 5, S("a12345e"));
+ test(S("abcde"), 1, 3, str, str + 0, S("ae"));
+ test(S("abcde"), 1, 3, str, str + 1, S("a1e"));
+ test(S("abcde"), 1, 3, str, str + 5, S("a12345e"));
+ test(S("abcde"), 1, 3, str, str + 9, S("a123456789e"));
+ test(S("abcde"), 1, 3, str, str + 10, S("a1234567890e"));
+ test(S("abcde"), 1, 3, str, str + 0, S("ae"));
+ test(S("abcde"), 1, 3, str, str + 1, S("a1e"));
+ test(S("abcde"), 1, 3, str, str + 10, S("a1234567890e"));
+ test(S("abcde"), 1, 3, str, str + 19, S("a1234567890123456789e"));
+ test(S("abcde"), 1, 3, str, str + 20, S("a12345678901234567890e"));
+ test(S("abcde"), 1, 4, str, str + 0, S("a"));
+ test(S("abcde"), 1, 4, str, str + 0, S("a"));
+ test(S("abcde"), 1, 4, str, str + 1, S("a1"));
+ test(S("abcde"), 1, 4, str, str + 2, S("a12"));
+ test(S("abcde"), 1, 4, str, str + 4, S("a1234"));
+ test(S("abcde"), 1, 4, str, str + 5, S("a12345"));
+ test(S("abcde"), 1, 4, str, str + 0, S("a"));
+ test(S("abcde"), 1, 4, str, str + 1, S("a1"));
+ test(S("abcde"), 1, 4, str, str + 5, S("a12345"));
+ test(S("abcde"), 1, 4, str, str + 9, S("a123456789"));
+ test(S("abcde"), 1, 4, str, str + 10, S("a1234567890"));
+ test(S("abcde"), 1, 4, str, str + 0, S("a"));
+ test(S("abcde"), 1, 4, str, str + 1, S("a1"));
+ test(S("abcde"), 1, 4, str, str + 10, S("a1234567890"));
+ test(S("abcde"), 1, 4, str, str + 19, S("a1234567890123456789"));
+ test(S("abcde"), 1, 4, str, str + 20, S("a12345678901234567890"));
+ test(S("abcde"), 2, 0, str, str + 0, S("abcde"));
+ test(S("abcde"), 2, 0, str, str + 0, S("abcde"));
+ test(S("abcde"), 2, 0, str, str + 1, S("ab1cde"));
+ test(S("abcde"), 2, 0, str, str + 2, S("ab12cde"));
+ test(S("abcde"), 2, 0, str, str + 4, S("ab1234cde"));
+ test(S("abcde"), 2, 0, str, str + 5, S("ab12345cde"));
+ test(S("abcde"), 2, 0, str, str + 0, S("abcde"));
+ test(S("abcde"), 2, 0, str, str + 1, S("ab1cde"));
+ test(S("abcde"), 2, 0, str, str + 5, S("ab12345cde"));
+ test(S("abcde"), 2, 0, str, str + 9, S("ab123456789cde"));
+ test(S("abcde"), 2, 0, str, str + 10, S("ab1234567890cde"));
+ test(S("abcde"), 2, 0, str, str + 0, S("abcde"));
+ test(S("abcde"), 2, 0, str, str + 1, S("ab1cde"));
+ test(S("abcde"), 2, 0, str, str + 10, S("ab1234567890cde"));
+ test(S("abcde"), 2, 0, str, str + 19, S("ab1234567890123456789cde"));
+ test(S("abcde"), 2, 0, str, str + 20, S("ab12345678901234567890cde"));
+ test(S("abcde"), 2, 1, str, str + 0, S("abde"));
+ test(S("abcde"), 2, 1, str, str + 0, S("abde"));
+ test(S("abcde"), 2, 1, str, str + 1, S("ab1de"));
+ test(S("abcde"), 2, 1, str, str + 2, S("ab12de"));
+ test(S("abcde"), 2, 1, str, str + 4, S("ab1234de"));
+ test(S("abcde"), 2, 1, str, str + 5, S("ab12345de"));
+ test(S("abcde"), 2, 1, str, str + 0, S("abde"));
+ test(S("abcde"), 2, 1, str, str + 1, S("ab1de"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test2()
-{
- test(S("abcde"), 2, 1, str, str+5, S("ab12345de"));
- test(S("abcde"), 2, 1, str, str+9, S("ab123456789de"));
- test(S("abcde"), 2, 1, str, str+10, S("ab1234567890de"));
- test(S("abcde"), 2, 1, str, str+0, S("abde"));
- test(S("abcde"), 2, 1, str, str+1, S("ab1de"));
- test(S("abcde"), 2, 1, str, str+10, S("ab1234567890de"));
- test(S("abcde"), 2, 1, str, str+19, S("ab1234567890123456789de"));
- test(S("abcde"), 2, 1, str, str+20, S("ab12345678901234567890de"));
- test(S("abcde"), 2, 2, str, str+0, S("abe"));
- test(S("abcde"), 2, 2, str, str+0, S("abe"));
- test(S("abcde"), 2, 2, str, str+1, S("ab1e"));
- test(S("abcde"), 2, 2, str, str+2, S("ab12e"));
- test(S("abcde"), 2, 2, str, str+4, S("ab1234e"));
- test(S("abcde"), 2, 2, str, str+5, S("ab12345e"));
- test(S("abcde"), 2, 2, str, str+0, S("abe"));
- test(S("abcde"), 2, 2, str, str+1, S("ab1e"));
- test(S("abcde"), 2, 2, str, str+5, S("ab12345e"));
- test(S("abcde"), 2, 2, str, str+9, S("ab123456789e"));
- test(S("abcde"), 2, 2, str, str+10, S("ab1234567890e"));
- test(S("abcde"), 2, 2, str, str+0, S("abe"));
- test(S("abcde"), 2, 2, str, str+1, S("ab1e"));
- test(S("abcde"), 2, 2, str, str+10, S("ab1234567890e"));
- test(S("abcde"), 2, 2, str, str+19, S("ab1234567890123456789e"));
- test(S("abcde"), 2, 2, str, str+20, S("ab12345678901234567890e"));
- test(S("abcde"), 2, 3, str, str+0, S("ab"));
- test(S("abcde"), 2, 3, str, str+0, S("ab"));
- test(S("abcde"), 2, 3, str, str+1, S("ab1"));
- test(S("abcde"), 2, 3, str, str+2, S("ab12"));
- test(S("abcde"), 2, 3, str, str+4, S("ab1234"));
- test(S("abcde"), 2, 3, str, str+5, S("ab12345"));
- test(S("abcde"), 2, 3, str, str+0, S("ab"));
- test(S("abcde"), 2, 3, str, str+1, S("ab1"));
- test(S("abcde"), 2, 3, str, str+5, S("ab12345"));
- test(S("abcde"), 2, 3, str, str+9, S("ab123456789"));
- test(S("abcde"), 2, 3, str, str+10, S("ab1234567890"));
- test(S("abcde"), 2, 3, str, str+0, S("ab"));
- test(S("abcde"), 2, 3, str, str+1, S("ab1"));
- test(S("abcde"), 2, 3, str, str+10, S("ab1234567890"));
- test(S("abcde"), 2, 3, str, str+19, S("ab1234567890123456789"));
- test(S("abcde"), 2, 3, str, str+20, S("ab12345678901234567890"));
- test(S("abcde"), 4, 0, str, str+0, S("abcde"));
- test(S("abcde"), 4, 0, str, str+0, S("abcde"));
- test(S("abcde"), 4, 0, str, str+1, S("abcd1e"));
- test(S("abcde"), 4, 0, str, str+2, S("abcd12e"));
- test(S("abcde"), 4, 0, str, str+4, S("abcd1234e"));
- test(S("abcde"), 4, 0, str, str+5, S("abcd12345e"));
- test(S("abcde"), 4, 0, str, str+0, S("abcde"));
- test(S("abcde"), 4, 0, str, str+1, S("abcd1e"));
- test(S("abcde"), 4, 0, str, str+5, S("abcd12345e"));
- test(S("abcde"), 4, 0, str, str+9, S("abcd123456789e"));
- test(S("abcde"), 4, 0, str, str+10, S("abcd1234567890e"));
- test(S("abcde"), 4, 0, str, str+0, S("abcde"));
- test(S("abcde"), 4, 0, str, str+1, S("abcd1e"));
- test(S("abcde"), 4, 0, str, str+10, S("abcd1234567890e"));
- test(S("abcde"), 4, 0, str, str+19, S("abcd1234567890123456789e"));
- test(S("abcde"), 4, 0, str, str+20, S("abcd12345678901234567890e"));
- test(S("abcde"), 4, 1, str, str+0, S("abcd"));
- test(S("abcde"), 4, 1, str, str+0, S("abcd"));
- test(S("abcde"), 4, 1, str, str+1, S("abcd1"));
- test(S("abcde"), 4, 1, str, str+2, S("abcd12"));
- test(S("abcde"), 4, 1, str, str+4, S("abcd1234"));
- test(S("abcde"), 4, 1, str, str+5, S("abcd12345"));
- test(S("abcde"), 4, 1, str, str+0, S("abcd"));
- test(S("abcde"), 4, 1, str, str+1, S("abcd1"));
- test(S("abcde"), 4, 1, str, str+5, S("abcd12345"));
- test(S("abcde"), 4, 1, str, str+9, S("abcd123456789"));
- test(S("abcde"), 4, 1, str, str+10, S("abcd1234567890"));
- test(S("abcde"), 4, 1, str, str+0, S("abcd"));
- test(S("abcde"), 4, 1, str, str+1, S("abcd1"));
- test(S("abcde"), 4, 1, str, str+10, S("abcd1234567890"));
- test(S("abcde"), 4, 1, str, str+19, S("abcd1234567890123456789"));
- test(S("abcde"), 4, 1, str, str+20, S("abcd12345678901234567890"));
- test(S("abcde"), 5, 0, str, str+0, S("abcde"));
- test(S("abcde"), 5, 0, str, str+0, S("abcde"));
- test(S("abcde"), 5, 0, str, str+1, S("abcde1"));
- test(S("abcde"), 5, 0, str, str+2, S("abcde12"));
- test(S("abcde"), 5, 0, str, str+4, S("abcde1234"));
- test(S("abcde"), 5, 0, str, str+5, S("abcde12345"));
- test(S("abcde"), 5, 0, str, str+0, S("abcde"));
- test(S("abcde"), 5, 0, str, str+1, S("abcde1"));
- test(S("abcde"), 5, 0, str, str+5, S("abcde12345"));
- test(S("abcde"), 5, 0, str, str+9, S("abcde123456789"));
- test(S("abcde"), 5, 0, str, str+10, S("abcde1234567890"));
- test(S("abcde"), 5, 0, str, str+0, S("abcde"));
- test(S("abcde"), 5, 0, str, str+1, S("abcde1"));
- test(S("abcde"), 5, 0, str, str+10, S("abcde1234567890"));
- test(S("abcde"), 5, 0, str, str+19, S("abcde1234567890123456789"));
- test(S("abcde"), 5, 0, str, str+20, S("abcde12345678901234567890"));
- test(S("abcdefghij"), 0, 0, str, str+0, S("abcdefghij"));
- test(S("abcdefghij"), 0, 0, str, str+0, S("abcdefghij"));
- test(S("abcdefghij"), 0, 0, str, str+1, S("1abcdefghij"));
- test(S("abcdefghij"), 0, 0, str, str+2, S("12abcdefghij"));
- test(S("abcdefghij"), 0, 0, str, str+4, S("1234abcdefghij"));
- test(S("abcdefghij"), 0, 0, str, str+5, S("12345abcdefghij"));
- test(S("abcdefghij"), 0, 0, str, str+0, S("abcdefghij"));
- test(S("abcdefghij"), 0, 0, str, str+1, S("1abcdefghij"));
- test(S("abcdefghij"), 0, 0, str, str+5, S("12345abcdefghij"));
- test(S("abcdefghij"), 0, 0, str, str+9, S("123456789abcdefghij"));
- test(S("abcdefghij"), 0, 0, str, str+10, S("1234567890abcdefghij"));
- test(S("abcdefghij"), 0, 0, str, str+0, S("abcdefghij"));
+TEST_CONSTEXPR_CXX20 bool test2() {
+ test(S("abcde"), 2, 1, str, str + 5, S("ab12345de"));
+ test(S("abcde"), 2, 1, str, str + 9, S("ab123456789de"));
+ test(S("abcde"), 2, 1, str, str + 10, S("ab1234567890de"));
+ test(S("abcde"), 2, 1, str, str + 0, S("abde"));
+ test(S("abcde"), 2, 1, str, str + 1, S("ab1de"));
+ test(S("abcde"), 2, 1, str, str + 10, S("ab1234567890de"));
+ test(S("abcde"), 2, 1, str, str + 19, S("ab1234567890123456789de"));
+ test(S("abcde"), 2, 1, str, str + 20, S("ab12345678901234567890de"));
+ test(S("abcde"), 2, 2, str, str + 0, S("abe"));
+ test(S("abcde"), 2, 2, str, str + 0, S("abe"));
+ test(S("abcde"), 2, 2, str, str + 1, S("ab1e"));
+ test(S("abcde"), 2, 2, str, str + 2, S("ab12e"));
+ test(S("abcde"), 2, 2, str, str + 4, S("ab1234e"));
+ test(S("abcde"), 2, 2, str, str + 5, S("ab12345e"));
+ test(S("abcde"), 2, 2, str, str + 0, S("abe"));
+ test(S("abcde"), 2, 2, str, str + 1, S("ab1e"));
+ test(S("abcde"), 2, 2, str, str + 5, S("ab12345e"));
+ test(S("abcde"), 2, 2, str, str + 9, S("ab123456789e"));
+ test(S("abcde"), 2, 2, str, str + 10, S("ab1234567890e"));
+ test(S("abcde"), 2, 2, str, str + 0, S("abe"));
+ test(S("abcde"), 2, 2, str, str + 1, S("ab1e"));
+ test(S("abcde"), 2, 2, str, str + 10, S("ab1234567890e"));
+ test(S("abcde"), 2, 2, str, str + 19, S("ab1234567890123456789e"));
+ test(S("abcde"), 2, 2, str, str + 20, S("ab12345678901234567890e"));
+ test(S("abcde"), 2, 3, str, str + 0, S("ab"));
+ test(S("abcde"), 2, 3, str, str + 0, S("ab"));
+ test(S("abcde"), 2, 3, str, str + 1, S("ab1"));
+ test(S("abcde"), 2, 3, str, str + 2, S("ab12"));
+ test(S("abcde"), 2, 3, str, str + 4, S("ab1234"));
+ test(S("abcde"), 2, 3, str, str + 5, S("ab12345"));
+ test(S("abcde"), 2, 3, str, str + 0, S("ab"));
+ test(S("abcde"), 2, 3, str, str + 1, S("ab1"));
+ test(S("abcde"), 2, 3, str, str + 5, S("ab12345"));
+ test(S("abcde"), 2, 3, str, str + 9, S("ab123456789"));
+ test(S("abcde"), 2, 3, str, str + 10, S("ab1234567890"));
+ test(S("abcde"), 2, 3, str, str + 0, S("ab"));
+ test(S("abcde"), 2, 3, str, str + 1, S("ab1"));
+ test(S("abcde"), 2, 3, str, str + 10, S("ab1234567890"));
+ test(S("abcde"), 2, 3, str, str + 19, S("ab1234567890123456789"));
+ test(S("abcde"), 2, 3, str, str + 20, S("ab12345678901234567890"));
+ test(S("abcde"), 4, 0, str, str + 0, S("abcde"));
+ test(S("abcde"), 4, 0, str, str + 0, S("abcde"));
+ test(S("abcde"), 4, 0, str, str + 1, S("abcd1e"));
+ test(S("abcde"), 4, 0, str, str + 2, S("abcd12e"));
+ test(S("abcde"), 4, 0, str, str + 4, S("abcd1234e"));
+ test(S("abcde"), 4, 0, str, str + 5, S("abcd12345e"));
+ test(S("abcde"), 4, 0, str, str + 0, S("abcde"));
+ test(S("abcde"), 4, 0, str, str + 1, S("abcd1e"));
+ test(S("abcde"), 4, 0, str, str + 5, S("abcd12345e"));
+ test(S("abcde"), 4, 0, str, str + 9, S("abcd123456789e"));
+ test(S("abcde"), 4, 0, str, str + 10, S("abcd1234567890e"));
+ test(S("abcde"), 4, 0, str, str + 0, S("abcde"));
+ test(S("abcde"), 4, 0, str, str + 1, S("abcd1e"));
+ test(S("abcde"), 4, 0, str, str + 10, S("abcd1234567890e"));
+ test(S("abcde"), 4, 0, str, str + 19, S("abcd1234567890123456789e"));
+ test(S("abcde"), 4, 0, str, str + 20, S("abcd12345678901234567890e"));
+ test(S("abcde"), 4, 1, str, str + 0, S("abcd"));
+ test(S("abcde"), 4, 1, str, str + 0, S("abcd"));
+ test(S("abcde"), 4, 1, str, str + 1, S("abcd1"));
+ test(S("abcde"), 4, 1, str, str + 2, S("abcd12"));
+ test(S("abcde"), 4, 1, str, str + 4, S("abcd1234"));
+ test(S("abcde"), 4, 1, str, str + 5, S("abcd12345"));
+ test(S("abcde"), 4, 1, str, str + 0, S("abcd"));
+ test(S("abcde"), 4, 1, str, str + 1, S("abcd1"));
+ test(S("abcde"), 4, 1, str, str + 5, S("abcd12345"));
+ test(S("abcde"), 4, 1, str, str + 9, S("abcd123456789"));
+ test(S("abcde"), 4, 1, str, str + 10, S("abcd1234567890"));
+ test(S("abcde"), 4, 1, str, str + 0, S("abcd"));
+ test(S("abcde"), 4, 1, str, str + 1, S("abcd1"));
+ test(S("abcde"), 4, 1, str, str + 10, S("abcd1234567890"));
+ test(S("abcde"), 4, 1, str, str + 19, S("abcd1234567890123456789"));
+ test(S("abcde"), 4, 1, str, str + 20, S("abcd12345678901234567890"));
+ test(S("abcde"), 5, 0, str, str + 0, S("abcde"));
+ test(S("abcde"), 5, 0, str, str + 0, S("abcde"));
+ test(S("abcde"), 5, 0, str, str + 1, S("abcde1"));
+ test(S("abcde"), 5, 0, str, str + 2, S("abcde12"));
+ test(S("abcde"), 5, 0, str, str + 4, S("abcde1234"));
+ test(S("abcde"), 5, 0, str, str + 5, S("abcde12345"));
+ test(S("abcde"), 5, 0, str, str + 0, S("abcde"));
+ test(S("abcde"), 5, 0, str, str + 1, S("abcde1"));
+ test(S("abcde"), 5, 0, str, str + 5, S("abcde12345"));
+ test(S("abcde"), 5, 0, str, str + 9, S("abcde123456789"));
+ test(S("abcde"), 5, 0, str, str + 10, S("abcde1234567890"));
+ test(S("abcde"), 5, 0, str, str + 0, S("abcde"));
+ test(S("abcde"), 5, 0, str, str + 1, S("abcde1"));
+ test(S("abcde"), 5, 0, str, str + 10, S("abcde1234567890"));
+ test(S("abcde"), 5, 0, str, str + 19, S("abcde1234567890123456789"));
+ test(S("abcde"), 5, 0, str, str + 20, S("abcde12345678901234567890"));
+ test(S("abcdefghij"), 0, 0, str, str + 0, S("abcdefghij"));
+ test(S("abcdefghij"), 0, 0, str, str + 0, S("abcdefghij"));
+ test(S("abcdefghij"), 0, 0, str, str + 1, S("1abcdefghij"));
+ test(S("abcdefghij"), 0, 0, str, str + 2, S("12abcdefghij"));
+ test(S("abcdefghij"), 0, 0, str, str + 4, S("1234abcdefghij"));
+ test(S("abcdefghij"), 0, 0, str, str + 5, S("12345abcdefghij"));
+ test(S("abcdefghij"), 0, 0, str, str + 0, S("abcdefghij"));
+ test(S("abcdefghij"), 0, 0, str, str + 1, S("1abcdefghij"));
+ test(S("abcdefghij"), 0, 0, str, str + 5, S("12345abcdefghij"));
+ test(S("abcdefghij"), 0, 0, str, str + 9, S("123456789abcdefghij"));
+ test(S("abcdefghij"), 0, 0, str, str + 10, S("1234567890abcdefghij"));
+ test(S("abcdefghij"), 0, 0, str, str + 0, S("abcdefghij"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test3()
-{
- test(S("abcdefghij"), 0, 0, str, str+1, S("1abcdefghij"));
- test(S("abcdefghij"), 0, 0, str, str+10, S("1234567890abcdefghij"));
- test(S("abcdefghij"), 0, 0, str, str+19, S("1234567890123456789abcdefghij"));
- test(S("abcdefghij"), 0, 0, str, str+20, S("12345678901234567890abcdefghij"));
- test(S("abcdefghij"), 0, 1, str, str+0, S("bcdefghij"));
- test(S("abcdefghij"), 0, 1, str, str+0, S("bcdefghij"));
- test(S("abcdefghij"), 0, 1, str, str+1, S("1bcdefghij"));
- test(S("abcdefghij"), 0, 1, str, str+2, S("12bcdefghij"));
- test(S("abcdefghij"), 0, 1, str, str+4, S("1234bcdefghij"));
- test(S("abcdefghij"), 0, 1, str, str+5, S("12345bcdefghij"));
- test(S("abcdefghij"), 0, 1, str, str+0, S("bcdefghij"));
- test(S("abcdefghij"), 0, 1, str, str+1, S("1bcdefghij"));
- test(S("abcdefghij"), 0, 1, str, str+5, S("12345bcdefghij"));
- test(S("abcdefghij"), 0, 1, str, str+9, S("123456789bcdefghij"));
- test(S("abcdefghij"), 0, 1, str, str+10, S("1234567890bcdefghij"));
- test(S("abcdefghij"), 0, 1, str, str+0, S("bcdefghij"));
- test(S("abcdefghij"), 0, 1, str, str+1, S("1bcdefghij"));
- test(S("abcdefghij"), 0, 1, str, str+10, S("1234567890bcdefghij"));
- test(S("abcdefghij"), 0, 1, str, str+19, S("1234567890123456789bcdefghij"));
- test(S("abcdefghij"), 0, 1, str, str+20, S("12345678901234567890bcdefghij"));
- test(S("abcdefghij"), 0, 5, str, str+0, S("fghij"));
- test(S("abcdefghij"), 0, 5, str, str+0, S("fghij"));
- test(S("abcdefghij"), 0, 5, str, str+1, S("1fghij"));
- test(S("abcdefghij"), 0, 5, str, str+2, S("12fghij"));
- test(S("abcdefghij"), 0, 5, str, str+4, S("1234fghij"));
- test(S("abcdefghij"), 0, 5, str, str+5, S("12345fghij"));
- test(S("abcdefghij"), 0, 5, str, str+0, S("fghij"));
- test(S("abcdefghij"), 0, 5, str, str+1, S("1fghij"));
- test(S("abcdefghij"), 0, 5, str, str+5, S("12345fghij"));
- test(S("abcdefghij"), 0, 5, str, str+9, S("123456789fghij"));
- test(S("abcdefghij"), 0, 5, str, str+10, S("1234567890fghij"));
- test(S("abcdefghij"), 0, 5, str, str+0, S("fghij"));
- test(S("abcdefghij"), 0, 5, str, str+1, S("1fghij"));
- test(S("abcdefghij"), 0, 5, str, str+10, S("1234567890fghij"));
- test(S("abcdefghij"), 0, 5, str, str+19, S("1234567890123456789fghij"));
- test(S("abcdefghij"), 0, 5, str, str+20, S("12345678901234567890fghij"));
- test(S("abcdefghij"), 0, 9, str, str+0, S("j"));
- test(S("abcdefghij"), 0, 9, str, str+0, S("j"));
- test(S("abcdefghij"), 0, 9, str, str+1, S("1j"));
- test(S("abcdefghij"), 0, 9, str, str+2, S("12j"));
- test(S("abcdefghij"), 0, 9, str, str+4, S("1234j"));
- test(S("abcdefghij"), 0, 9, str, str+5, S("12345j"));
- test(S("abcdefghij"), 0, 9, str, str+0, S("j"));
- test(S("abcdefghij"), 0, 9, str, str+1, S("1j"));
- test(S("abcdefghij"), 0, 9, str, str+5, S("12345j"));
- test(S("abcdefghij"), 0, 9, str, str+9, S("123456789j"));
- test(S("abcdefghij"), 0, 9, str, str+10, S("1234567890j"));
- test(S("abcdefghij"), 0, 9, str, str+0, S("j"));
- test(S("abcdefghij"), 0, 9, str, str+1, S("1j"));
- test(S("abcdefghij"), 0, 9, str, str+10, S("1234567890j"));
- test(S("abcdefghij"), 0, 9, str, str+19, S("1234567890123456789j"));
- test(S("abcdefghij"), 0, 9, str, str+20, S("12345678901234567890j"));
- test(S("abcdefghij"), 0, 10, str, str+0, S(""));
- test(S("abcdefghij"), 0, 10, str, str+0, S(""));
- test(S("abcdefghij"), 0, 10, str, str+1, S("1"));
- test(S("abcdefghij"), 0, 10, str, str+2, S("12"));
- test(S("abcdefghij"), 0, 10, str, str+4, S("1234"));
- test(S("abcdefghij"), 0, 10, str, str+5, S("12345"));
- test(S("abcdefghij"), 0, 10, str, str+0, S(""));
- test(S("abcdefghij"), 0, 10, str, str+1, S("1"));
- test(S("abcdefghij"), 0, 10, str, str+5, S("12345"));
- test(S("abcdefghij"), 0, 10, str, str+9, S("123456789"));
- test(S("abcdefghij"), 0, 10, str, str+10, S("1234567890"));
- test(S("abcdefghij"), 0, 10, str, str+0, S(""));
- test(S("abcdefghij"), 0, 10, str, str+1, S("1"));
- test(S("abcdefghij"), 0, 10, str, str+10, S("1234567890"));
- test(S("abcdefghij"), 0, 10, str, str+19, S("1234567890123456789"));
- test(S("abcdefghij"), 0, 10, str, str+20, S("12345678901234567890"));
- test(S("abcdefghij"), 1, 0, str, str+0, S("abcdefghij"));
- test(S("abcdefghij"), 1, 0, str, str+0, S("abcdefghij"));
- test(S("abcdefghij"), 1, 0, str, str+1, S("a1bcdefghij"));
- test(S("abcdefghij"), 1, 0, str, str+2, S("a12bcdefghij"));
- test(S("abcdefghij"), 1, 0, str, str+4, S("a1234bcdefghij"));
- test(S("abcdefghij"), 1, 0, str, str+5, S("a12345bcdefghij"));
- test(S("abcdefghij"), 1, 0, str, str+0, S("abcdefghij"));
- test(S("abcdefghij"), 1, 0, str, str+1, S("a1bcdefghij"));
- test(S("abcdefghij"), 1, 0, str, str+5, S("a12345bcdefghij"));
- test(S("abcdefghij"), 1, 0, str, str+9, S("a123456789bcdefghij"));
- test(S("abcdefghij"), 1, 0, str, str+10, S("a1234567890bcdefghij"));
- test(S("abcdefghij"), 1, 0, str, str+0, S("abcdefghij"));
- test(S("abcdefghij"), 1, 0, str, str+1, S("a1bcdefghij"));
- test(S("abcdefghij"), 1, 0, str, str+10, S("a1234567890bcdefghij"));
- test(S("abcdefghij"), 1, 0, str, str+19, S("a1234567890123456789bcdefghij"));
- test(S("abcdefghij"), 1, 0, str, str+20, S("a12345678901234567890bcdefghij"));
- test(S("abcdefghij"), 1, 1, str, str+0, S("acdefghij"));
- test(S("abcdefghij"), 1, 1, str, str+0, S("acdefghij"));
- test(S("abcdefghij"), 1, 1, str, str+1, S("a1cdefghij"));
- test(S("abcdefghij"), 1, 1, str, str+2, S("a12cdefghij"));
- test(S("abcdefghij"), 1, 1, str, str+4, S("a1234cdefghij"));
- test(S("abcdefghij"), 1, 1, str, str+5, S("a12345cdefghij"));
- test(S("abcdefghij"), 1, 1, str, str+0, S("acdefghij"));
- test(S("abcdefghij"), 1, 1, str, str+1, S("a1cdefghij"));
- test(S("abcdefghij"), 1, 1, str, str+5, S("a12345cdefghij"));
- test(S("abcdefghij"), 1, 1, str, str+9, S("a123456789cdefghij"));
- test(S("abcdefghij"), 1, 1, str, str+10, S("a1234567890cdefghij"));
- test(S("abcdefghij"), 1, 1, str, str+0, S("acdefghij"));
- test(S("abcdefghij"), 1, 1, str, str+1, S("a1cdefghij"));
- test(S("abcdefghij"), 1, 1, str, str+10, S("a1234567890cdefghij"));
- test(S("abcdefghij"), 1, 1, str, str+19, S("a1234567890123456789cdefghij"));
- test(S("abcdefghij"), 1, 1, str, str+20, S("a12345678901234567890cdefghij"));
+TEST_CONSTEXPR_CXX20 bool test3() {
+ test(S("abcdefghij"), 0, 0, str, str + 1, S("1abcdefghij"));
+ test(S("abcdefghij"), 0, 0, str, str + 10, S("1234567890abcdefghij"));
+ test(S("abcdefghij"), 0, 0, str, str + 19, S("1234567890123456789abcdefghij"));
+ test(S("abcdefghij"), 0, 0, str, str + 20, S("12345678901234567890abcdefghij"));
+ test(S("abcdefghij"), 0, 1, str, str + 0, S("bcdefghij"));
+ test(S("abcdefghij"), 0, 1, str, str + 0, S("bcdefghij"));
+ test(S("abcdefghij"), 0, 1, str, str + 1, S("1bcdefghij"));
+ test(S("abcdefghij"), 0, 1, str, str + 2, S("12bcdefghij"));
+ test(S("abcdefghij"), 0, 1, str, str + 4, S("1234bcdefghij"));
+ test(S("abcdefghij"), 0, 1, str, str + 5, S("12345bcdefghij"));
+ test(S("abcdefghij"), 0, 1, str, str + 0, S("bcdefghij"));
+ test(S("abcdefghij"), 0, 1, str, str + 1, S("1bcdefghij"));
+ test(S("abcdefghij"), 0, 1, str, str + 5, S("12345bcdefghij"));
+ test(S("abcdefghij"), 0, 1, str, str + 9, S("123456789bcdefghij"));
+ test(S("abcdefghij"), 0, 1, str, str + 10, S("1234567890bcdefghij"));
+ test(S("abcdefghij"), 0, 1, str, str + 0, S("bcdefghij"));
+ test(S("abcdefghij"), 0, 1, str, str + 1, S("1bcdefghij"));
+ test(S("abcdefghij"), 0, 1, str, str + 10, S("1234567890bcdefghij"));
+ test(S("abcdefghij"), 0, 1, str, str + 19, S("1234567890123456789bcdefghij"));
+ test(S("abcdefghij"), 0, 1, str, str + 20, S("12345678901234567890bcdefghij"));
+ test(S("abcdefghij"), 0, 5, str, str + 0, S("fghij"));
+ test(S("abcdefghij"), 0, 5, str, str + 0, S("fghij"));
+ test(S("abcdefghij"), 0, 5, str, str + 1, S("1fghij"));
+ test(S("abcdefghij"), 0, 5, str, str + 2, S("12fghij"));
+ test(S("abcdefghij"), 0, 5, str, str + 4, S("1234fghij"));
+ test(S("abcdefghij"), 0, 5, str, str + 5, S("12345fghij"));
+ test(S("abcdefghij"), 0, 5, str, str + 0, S("fghij"));
+ test(S("abcdefghij"), 0, 5, str, str + 1, S("1fghij"));
+ test(S("abcdefghij"), 0, 5, str, str + 5, S("12345fghij"));
+ test(S("abcdefghij"), 0, 5, str, str + 9, S("123456789fghij"));
+ test(S("abcdefghij"), 0, 5, str, str + 10, S("1234567890fghij"));
+ test(S("abcdefghij"), 0, 5, str, str + 0, S("fghij"));
+ test(S("abcdefghij"), 0, 5, str, str + 1, S("1fghij"));
+ test(S("abcdefghij"), 0, 5, str, str + 10, S("1234567890fghij"));
+ test(S("abcdefghij"), 0, 5, str, str + 19, S("1234567890123456789fghij"));
+ test(S("abcdefghij"), 0, 5, str, str + 20, S("12345678901234567890fghij"));
+ test(S("abcdefghij"), 0, 9, str, str + 0, S("j"));
+ test(S("abcdefghij"), 0, 9, str, str + 0, S("j"));
+ test(S("abcdefghij"), 0, 9, str, str + 1, S("1j"));
+ test(S("abcdefghij"), 0, 9, str, str + 2, S("12j"));
+ test(S("abcdefghij"), 0, 9, str, str + 4, S("1234j"));
+ test(S("abcdefghij"), 0, 9, str, str + 5, S("12345j"));
+ test(S("abcdefghij"), 0, 9, str, str + 0, S("j"));
+ test(S("abcdefghij"), 0, 9, str, str + 1, S("1j"));
+ test(S("abcdefghij"), 0, 9, str, str + 5, S("12345j"));
+ test(S("abcdefghij"), 0, 9, str, str + 9, S("123456789j"));
+ test(S("abcdefghij"), 0, 9, str, str + 10, S("1234567890j"));
+ test(S("abcdefghij"), 0, 9, str, str + 0, S("j"));
+ test(S("abcdefghij"), 0, 9, str, str + 1, S("1j"));
+ test(S("abcdefghij"), 0, 9, str, str + 10, S("1234567890j"));
+ test(S("abcdefghij"), 0, 9, str, str + 19, S("1234567890123456789j"));
+ test(S("abcdefghij"), 0, 9, str, str + 20, S("12345678901234567890j"));
+ test(S("abcdefghij"), 0, 10, str, str + 0, S(""));
+ test(S("abcdefghij"), 0, 10, str, str + 0, S(""));
+ test(S("abcdefghij"), 0, 10, str, str + 1, S("1"));
+ test(S("abcdefghij"), 0, 10, str, str + 2, S("12"));
+ test(S("abcdefghij"), 0, 10, str, str + 4, S("1234"));
+ test(S("abcdefghij"), 0, 10, str, str + 5, S("12345"));
+ test(S("abcdefghij"), 0, 10, str, str + 0, S(""));
+ test(S("abcdefghij"), 0, 10, str, str + 1, S("1"));
+ test(S("abcdefghij"), 0, 10, str, str + 5, S("12345"));
+ test(S("abcdefghij"), 0, 10, str, str + 9, S("123456789"));
+ test(S("abcdefghij"), 0, 10, str, str + 10, S("1234567890"));
+ test(S("abcdefghij"), 0, 10, str, str + 0, S(""));
+ test(S("abcdefghij"), 0, 10, str, str + 1, S("1"));
+ test(S("abcdefghij"), 0, 10, str, str + 10, S("1234567890"));
+ test(S("abcdefghij"), 0, 10, str, str + 19, S("1234567890123456789"));
+ test(S("abcdefghij"), 0, 10, str, str + 20, S("12345678901234567890"));
+ test(S("abcdefghij"), 1, 0, str, str + 0, S("abcdefghij"));
+ test(S("abcdefghij"), 1, 0, str, str + 0, S("abcdefghij"));
+ test(S("abcdefghij"), 1, 0, str, str + 1, S("a1bcdefghij"));
+ test(S("abcdefghij"), 1, 0, str, str + 2, S("a12bcdefghij"));
+ test(S("abcdefghij"), 1, 0, str, str + 4, S("a1234bcdefghij"));
+ test(S("abcdefghij"), 1, 0, str, str + 5, S("a12345bcdefghij"));
+ test(S("abcdefghij"), 1, 0, str, str + 0, S("abcdefghij"));
+ test(S("abcdefghij"), 1, 0, str, str + 1, S("a1bcdefghij"));
+ test(S("abcdefghij"), 1, 0, str, str + 5, S("a12345bcdefghij"));
+ test(S("abcdefghij"), 1, 0, str, str + 9, S("a123456789bcdefghij"));
+ test(S("abcdefghij"), 1, 0, str, str + 10, S("a1234567890bcdefghij"));
+ test(S("abcdefghij"), 1, 0, str, str + 0, S("abcdefghij"));
+ test(S("abcdefghij"), 1, 0, str, str + 1, S("a1bcdefghij"));
+ test(S("abcdefghij"), 1, 0, str, str + 10, S("a1234567890bcdefghij"));
+ test(S("abcdefghij"), 1, 0, str, str + 19, S("a1234567890123456789bcdefghij"));
+ test(S("abcdefghij"), 1, 0, str, str + 20, S("a12345678901234567890bcdefghij"));
+ test(S("abcdefghij"), 1, 1, str, str + 0, S("acdefghij"));
+ test(S("abcdefghij"), 1, 1, str, str + 0, S("acdefghij"));
+ test(S("abcdefghij"), 1, 1, str, str + 1, S("a1cdefghij"));
+ test(S("abcdefghij"), 1, 1, str, str + 2, S("a12cdefghij"));
+ test(S("abcdefghij"), 1, 1, str, str + 4, S("a1234cdefghij"));
+ test(S("abcdefghij"), 1, 1, str, str + 5, S("a12345cdefghij"));
+ test(S("abcdefghij"), 1, 1, str, str + 0, S("acdefghij"));
+ test(S("abcdefghij"), 1, 1, str, str + 1, S("a1cdefghij"));
+ test(S("abcdefghij"), 1, 1, str, str + 5, S("a12345cdefghij"));
+ test(S("abcdefghij"), 1, 1, str, str + 9, S("a123456789cdefghij"));
+ test(S("abcdefghij"), 1, 1, str, str + 10, S("a1234567890cdefghij"));
+ test(S("abcdefghij"), 1, 1, str, str + 0, S("acdefghij"));
+ test(S("abcdefghij"), 1, 1, str, str + 1, S("a1cdefghij"));
+ test(S("abcdefghij"), 1, 1, str, str + 10, S("a1234567890cdefghij"));
+ test(S("abcdefghij"), 1, 1, str, str + 19, S("a1234567890123456789cdefghij"));
+ test(S("abcdefghij"), 1, 1, str, str + 20, S("a12345678901234567890cdefghij"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test4()
-{
- test(S("abcdefghij"), 1, 4, str, str+0, S("afghij"));
- test(S("abcdefghij"), 1, 4, str, str+0, S("afghij"));
- test(S("abcdefghij"), 1, 4, str, str+1, S("a1fghij"));
- test(S("abcdefghij"), 1, 4, str, str+2, S("a12fghij"));
- test(S("abcdefghij"), 1, 4, str, str+4, S("a1234fghij"));
- test(S("abcdefghij"), 1, 4, str, str+5, S("a12345fghij"));
- test(S("abcdefghij"), 1, 4, str, str+0, S("afghij"));
- test(S("abcdefghij"), 1, 4, str, str+1, S("a1fghij"));
- test(S("abcdefghij"), 1, 4, str, str+5, S("a12345fghij"));
- test(S("abcdefghij"), 1, 4, str, str+9, S("a123456789fghij"));
- test(S("abcdefghij"), 1, 4, str, str+10, S("a1234567890fghij"));
- test(S("abcdefghij"), 1, 4, str, str+0, S("afghij"));
- test(S("abcdefghij"), 1, 4, str, str+1, S("a1fghij"));
- test(S("abcdefghij"), 1, 4, str, str+10, S("a1234567890fghij"));
- test(S("abcdefghij"), 1, 4, str, str+19, S("a1234567890123456789fghij"));
- test(S("abcdefghij"), 1, 4, str, str+20, S("a12345678901234567890fghij"));
- test(S("abcdefghij"), 1, 8, str, str+0, S("aj"));
- test(S("abcdefghij"), 1, 8, str, str+0, S("aj"));
- test(S("abcdefghij"), 1, 8, str, str+1, S("a1j"));
- test(S("abcdefghij"), 1, 8, str, str+2, S("a12j"));
- test(S("abcdefghij"), 1, 8, str, str+4, S("a1234j"));
- test(S("abcdefghij"), 1, 8, str, str+5, S("a12345j"));
- test(S("abcdefghij"), 1, 8, str, str+0, S("aj"));
- test(S("abcdefghij"), 1, 8, str, str+1, S("a1j"));
- test(S("abcdefghij"), 1, 8, str, str+5, S("a12345j"));
- test(S("abcdefghij"), 1, 8, str, str+9, S("a123456789j"));
- test(S("abcdefghij"), 1, 8, str, str+10, S("a1234567890j"));
- test(S("abcdefghij"), 1, 8, str, str+0, S("aj"));
- test(S("abcdefghij"), 1, 8, str, str+1, S("a1j"));
- test(S("abcdefghij"), 1, 8, str, str+10, S("a1234567890j"));
- test(S("abcdefghij"), 1, 8, str, str+19, S("a1234567890123456789j"));
- test(S("abcdefghij"), 1, 8, str, str+20, S("a12345678901234567890j"));
- test(S("abcdefghij"), 1, 9, str, str+0, S("a"));
- test(S("abcdefghij"), 1, 9, str, str+0, S("a"));
- test(S("abcdefghij"), 1, 9, str, str+1, S("a1"));
- test(S("abcdefghij"), 1, 9, str, str+2, S("a12"));
- test(S("abcdefghij"), 1, 9, str, str+4, S("a1234"));
- test(S("abcdefghij"), 1, 9, str, str+5, S("a12345"));
- test(S("abcdefghij"), 1, 9, str, str+0, S("a"));
- test(S("abcdefghij"), 1, 9, str, str+1, S("a1"));
- test(S("abcdefghij"), 1, 9, str, str+5, S("a12345"));
- test(S("abcdefghij"), 1, 9, str, str+9, S("a123456789"));
- test(S("abcdefghij"), 1, 9, str, str+10, S("a1234567890"));
- test(S("abcdefghij"), 1, 9, str, str+0, S("a"));
- test(S("abcdefghij"), 1, 9, str, str+1, S("a1"));
- test(S("abcdefghij"), 1, 9, str, str+10, S("a1234567890"));
- test(S("abcdefghij"), 1, 9, str, str+19, S("a1234567890123456789"));
- test(S("abcdefghij"), 1, 9, str, str+20, S("a12345678901234567890"));
- test(S("abcdefghij"), 5, 0, str, str+0, S("abcdefghij"));
- test(S("abcdefghij"), 5, 0, str, str+0, S("abcdefghij"));
- test(S("abcdefghij"), 5, 0, str, str+1, S("abcde1fghij"));
- test(S("abcdefghij"), 5, 0, str, str+2, S("abcde12fghij"));
- test(S("abcdefghij"), 5, 0, str, str+4, S("abcde1234fghij"));
- test(S("abcdefghij"), 5, 0, str, str+5, S("abcde12345fghij"));
- test(S("abcdefghij"), 5, 0, str, str+0, S("abcdefghij"));
- test(S("abcdefghij"), 5, 0, str, str+1, S("abcde1fghij"));
- test(S("abcdefghij"), 5, 0, str, str+5, S("abcde12345fghij"));
- test(S("abcdefghij"), 5, 0, str, str+9, S("abcde123456789fghij"));
- test(S("abcdefghij"), 5, 0, str, str+10, S("abcde1234567890fghij"));
- test(S("abcdefghij"), 5, 0, str, str+0, S("abcdefghij"));
- test(S("abcdefghij"), 5, 0, str, str+1, S("abcde1fghij"));
- test(S("abcdefghij"), 5, 0, str, str+10, S("abcde1234567890fghij"));
- test(S("abcdefghij"), 5, 0, str, str+19, S("abcde1234567890123456789fghij"));
- test(S("abcdefghij"), 5, 0, str, str+20, S("abcde12345678901234567890fghij"));
- test(S("abcdefghij"), 5, 1, str, str+0, S("abcdeghij"));
- test(S("abcdefghij"), 5, 1, str, str+0, S("abcdeghij"));
- test(S("abcdefghij"), 5, 1, str, str+1, S("abcde1ghij"));
- test(S("abcdefghij"), 5, 1, str, str+2, S("abcde12ghij"));
- test(S("abcdefghij"), 5, 1, str, str+4, S("abcde1234ghij"));
- test(S("abcdefghij"), 5, 1, str, str+5, S("abcde12345ghij"));
- test(S("abcdefghij"), 5, 1, str, str+0, S("abcdeghij"));
- test(S("abcdefghij"), 5, 1, str, str+1, S("abcde1ghij"));
- test(S("abcdefghij"), 5, 1, str, str+5, S("abcde12345ghij"));
- test(S("abcdefghij"), 5, 1, str, str+9, S("abcde123456789ghij"));
- test(S("abcdefghij"), 5, 1, str, str+10, S("abcde1234567890ghij"));
- test(S("abcdefghij"), 5, 1, str, str+0, S("abcdeghij"));
- test(S("abcdefghij"), 5, 1, str, str+1, S("abcde1ghij"));
- test(S("abcdefghij"), 5, 1, str, str+10, S("abcde1234567890ghij"));
- test(S("abcdefghij"), 5, 1, str, str+19, S("abcde1234567890123456789ghij"));
- test(S("abcdefghij"), 5, 1, str, str+20, S("abcde12345678901234567890ghij"));
- test(S("abcdefghij"), 5, 2, str, str+0, S("abcdehij"));
- test(S("abcdefghij"), 5, 2, str, str+0, S("abcdehij"));
- test(S("abcdefghij"), 5, 2, str, str+1, S("abcde1hij"));
- test(S("abcdefghij"), 5, 2, str, str+2, S("abcde12hij"));
- test(S("abcdefghij"), 5, 2, str, str+4, S("abcde1234hij"));
- test(S("abcdefghij"), 5, 2, str, str+5, S("abcde12345hij"));
- test(S("abcdefghij"), 5, 2, str, str+0, S("abcdehij"));
- test(S("abcdefghij"), 5, 2, str, str+1, S("abcde1hij"));
- test(S("abcdefghij"), 5, 2, str, str+5, S("abcde12345hij"));
- test(S("abcdefghij"), 5, 2, str, str+9, S("abcde123456789hij"));
- test(S("abcdefghij"), 5, 2, str, str+10, S("abcde1234567890hij"));
- test(S("abcdefghij"), 5, 2, str, str+0, S("abcdehij"));
- test(S("abcdefghij"), 5, 2, str, str+1, S("abcde1hij"));
- test(S("abcdefghij"), 5, 2, str, str+10, S("abcde1234567890hij"));
- test(S("abcdefghij"), 5, 2, str, str+19, S("abcde1234567890123456789hij"));
- test(S("abcdefghij"), 5, 2, str, str+20, S("abcde12345678901234567890hij"));
- test(S("abcdefghij"), 5, 4, str, str+0, S("abcdej"));
- test(S("abcdefghij"), 5, 4, str, str+0, S("abcdej"));
- test(S("abcdefghij"), 5, 4, str, str+1, S("abcde1j"));
- test(S("abcdefghij"), 5, 4, str, str+2, S("abcde12j"));
+TEST_CONSTEXPR_CXX20 bool test4() {
+ test(S("abcdefghij"), 1, 4, str, str + 0, S("afghij"));
+ test(S("abcdefghij"), 1, 4, str, str + 0, S("afghij"));
+ test(S("abcdefghij"), 1, 4, str, str + 1, S("a1fghij"));
+ test(S("abcdefghij"), 1, 4, str, str + 2, S("a12fghij"));
+ test(S("abcdefghij"), 1, 4, str, str + 4, S("a1234fghij"));
+ test(S("abcdefghij"), 1, 4, str, str + 5, S("a12345fghij"));
+ test(S("abcdefghij"), 1, 4, str, str + 0, S("afghij"));
+ test(S("abcdefghij"), 1, 4, str, str + 1, S("a1fghij"));
+ test(S("abcdefghij"), 1, 4, str, str + 5, S("a12345fghij"));
+ test(S("abcdefghij"), 1, 4, str, str + 9, S("a123456789fghij"));
+ test(S("abcdefghij"), 1, 4, str, str + 10, S("a1234567890fghij"));
+ test(S("abcdefghij"), 1, 4, str, str + 0, S("afghij"));
+ test(S("abcdefghij"), 1, 4, str, str + 1, S("a1fghij"));
+ test(S("abcdefghij"), 1, 4, str, str + 10, S("a1234567890fghij"));
+ test(S("abcdefghij"), 1, 4, str, str + 19, S("a1234567890123456789fghij"));
+ test(S("abcdefghij"), 1, 4, str, str + 20, S("a12345678901234567890fghij"));
+ test(S("abcdefghij"), 1, 8, str, str + 0, S("aj"));
+ test(S("abcdefghij"), 1, 8, str, str + 0, S("aj"));
+ test(S("abcdefghij"), 1, 8, str, str + 1, S("a1j"));
+ test(S("abcdefghij"), 1, 8, str, str + 2, S("a12j"));
+ test(S("abcdefghij"), 1, 8, str, str + 4, S("a1234j"));
+ test(S("abcdefghij"), 1, 8, str, str + 5, S("a12345j"));
+ test(S("abcdefghij"), 1, 8, str, str + 0, S("aj"));
+ test(S("abcdefghij"), 1, 8, str, str + 1, S("a1j"));
+ test(S("abcdefghij"), 1, 8, str, str + 5, S("a12345j"));
+ test(S("abcdefghij"), 1, 8, str, str + 9, S("a123456789j"));
+ test(S("abcdefghij"), 1, 8, str, str + 10, S("a1234567890j"));
+ test(S("abcdefghij"), 1, 8, str, str + 0, S("aj"));
+ test(S("abcdefghij"), 1, 8, str, str + 1, S("a1j"));
+ test(S("abcdefghij"), 1, 8, str, str + 10, S("a1234567890j"));
+ test(S("abcdefghij"), 1, 8, str, str + 19, S("a1234567890123456789j"));
+ test(S("abcdefghij"), 1, 8, str, str + 20, S("a12345678901234567890j"));
+ test(S("abcdefghij"), 1, 9, str, str + 0, S("a"));
+ test(S("abcdefghij"), 1, 9, str, str + 0, S("a"));
+ test(S("abcdefghij"), 1, 9, str, str + 1, S("a1"));
+ test(S("abcdefghij"), 1, 9, str, str + 2, S("a12"));
+ test(S("abcdefghij"), 1, 9, str, str + 4, S("a1234"));
+ test(S("abcdefghij"), 1, 9, str, str + 5, S("a12345"));
+ test(S("abcdefghij"), 1, 9, str, str + 0, S("a"));
+ test(S("abcdefghij"), 1, 9, str, str + 1, S("a1"));
+ test(S("abcdefghij"), 1, 9, str, str + 5, S("a12345"));
+ test(S("abcdefghij"), 1, 9, str, str + 9, S("a123456789"));
+ test(S("abcdefghij"), 1, 9, str, str + 10, S("a1234567890"));
+ test(S("abcdefghij"), 1, 9, str, str + 0, S("a"));
+ test(S("abcdefghij"), 1, 9, str, str + 1, S("a1"));
+ test(S("abcdefghij"), 1, 9, str, str + 10, S("a1234567890"));
+ test(S("abcdefghij"), 1, 9, str, str + 19, S("a1234567890123456789"));
+ test(S("abcdefghij"), 1, 9, str, str + 20, S("a12345678901234567890"));
+ test(S("abcdefghij"), 5, 0, str, str + 0, S("abcdefghij"));
+ test(S("abcdefghij"), 5, 0, str, str + 0, S("abcdefghij"));
+ test(S("abcdefghij"), 5, 0, str, str + 1, S("abcde1fghij"));
+ test(S("abcdefghij"), 5, 0, str, str + 2, S("abcde12fghij"));
+ test(S("abcdefghij"), 5, 0, str, str + 4, S("abcde1234fghij"));
+ test(S("abcdefghij"), 5, 0, str, str + 5, S("abcde12345fghij"));
+ test(S("abcdefghij"), 5, 0, str, str + 0, S("abcdefghij"));
+ test(S("abcdefghij"), 5, 0, str, str + 1, S("abcde1fghij"));
+ test(S("abcdefghij"), 5, 0, str, str + 5, S("abcde12345fghij"));
+ test(S("abcdefghij"), 5, 0, str, str + 9, S("abcde123456789fghij"));
+ test(S("abcdefghij"), 5, 0, str, str + 10, S("abcde1234567890fghij"));
+ test(S("abcdefghij"), 5, 0, str, str + 0, S("abcdefghij"));
+ test(S("abcdefghij"), 5, 0, str, str + 1, S("abcde1fghij"));
+ test(S("abcdefghij"), 5, 0, str, str + 10, S("abcde1234567890fghij"));
+ test(S("abcdefghij"), 5, 0, str, str + 19, S("abcde1234567890123456789fghij"));
+ test(S("abcdefghij"), 5, 0, str, str + 20, S("abcde12345678901234567890fghij"));
+ test(S("abcdefghij"), 5, 1, str, str + 0, S("abcdeghij"));
+ test(S("abcdefghij"), 5, 1, str, str + 0, S("abcdeghij"));
+ test(S("abcdefghij"), 5, 1, str, str + 1, S("abcde1ghij"));
+ test(S("abcdefghij"), 5, 1, str, str + 2, S("abcde12ghij"));
+ test(S("abcdefghij"), 5, 1, str, str + 4, S("abcde1234ghij"));
+ test(S("abcdefghij"), 5, 1, str, str + 5, S("abcde12345ghij"));
+ test(S("abcdefghij"), 5, 1, str, str + 0, S("abcdeghij"));
+ test(S("abcdefghij"), 5, 1, str, str + 1, S("abcde1ghij"));
+ test(S("abcdefghij"), 5, 1, str, str + 5, S("abcde12345ghij"));
+ test(S("abcdefghij"), 5, 1, str, str + 9, S("abcde123456789ghij"));
+ test(S("abcdefghij"), 5, 1, str, str + 10, S("abcde1234567890ghij"));
+ test(S("abcdefghij"), 5, 1, str, str + 0, S("abcdeghij"));
+ test(S("abcdefghij"), 5, 1, str, str + 1, S("abcde1ghij"));
+ test(S("abcdefghij"), 5, 1, str, str + 10, S("abcde1234567890ghij"));
+ test(S("abcdefghij"), 5, 1, str, str + 19, S("abcde1234567890123456789ghij"));
+ test(S("abcdefghij"), 5, 1, str, str + 20, S("abcde12345678901234567890ghij"));
+ test(S("abcdefghij"), 5, 2, str, str + 0, S("abcdehij"));
+ test(S("abcdefghij"), 5, 2, str, str + 0, S("abcdehij"));
+ test(S("abcdefghij"), 5, 2, str, str + 1, S("abcde1hij"));
+ test(S("abcdefghij"), 5, 2, str, str + 2, S("abcde12hij"));
+ test(S("abcdefghij"), 5, 2, str, str + 4, S("abcde1234hij"));
+ test(S("abcdefghij"), 5, 2, str, str + 5, S("abcde12345hij"));
+ test(S("abcdefghij"), 5, 2, str, str + 0, S("abcdehij"));
+ test(S("abcdefghij"), 5, 2, str, str + 1, S("abcde1hij"));
+ test(S("abcdefghij"), 5, 2, str, str + 5, S("abcde12345hij"));
+ test(S("abcdefghij"), 5, 2, str, str + 9, S("abcde123456789hij"));
+ test(S("abcdefghij"), 5, 2, str, str + 10, S("abcde1234567890hij"));
+ test(S("abcdefghij"), 5, 2, str, str + 0, S("abcdehij"));
+ test(S("abcdefghij"), 5, 2, str, str + 1, S("abcde1hij"));
+ test(S("abcdefghij"), 5, 2, str, str + 10, S("abcde1234567890hij"));
+ test(S("abcdefghij"), 5, 2, str, str + 19, S("abcde1234567890123456789hij"));
+ test(S("abcdefghij"), 5, 2, str, str + 20, S("abcde12345678901234567890hij"));
+ test(S("abcdefghij"), 5, 4, str, str + 0, S("abcdej"));
+ test(S("abcdefghij"), 5, 4, str, str + 0, S("abcdej"));
+ test(S("abcdefghij"), 5, 4, str, str + 1, S("abcde1j"));
+ test(S("abcdefghij"), 5, 4, str, str + 2, S("abcde12j"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test5()
-{
- test(S("abcdefghij"), 5, 4, str, str+4, S("abcde1234j"));
- test(S("abcdefghij"), 5, 4, str, str+5, S("abcde12345j"));
- test(S("abcdefghij"), 5, 4, str, str+0, S("abcdej"));
- test(S("abcdefghij"), 5, 4, str, str+1, S("abcde1j"));
- test(S("abcdefghij"), 5, 4, str, str+5, S("abcde12345j"));
- test(S("abcdefghij"), 5, 4, str, str+9, S("abcde123456789j"));
- test(S("abcdefghij"), 5, 4, str, str+10, S("abcde1234567890j"));
- test(S("abcdefghij"), 5, 4, str, str+0, S("abcdej"));
- test(S("abcdefghij"), 5, 4, str, str+1, S("abcde1j"));
- test(S("abcdefghij"), 5, 4, str, str+10, S("abcde1234567890j"));
- test(S("abcdefghij"), 5, 4, str, str+19, S("abcde1234567890123456789j"));
- test(S("abcdefghij"), 5, 4, str, str+20, S("abcde12345678901234567890j"));
- test(S("abcdefghij"), 5, 5, str, str+0, S("abcde"));
- test(S("abcdefghij"), 5, 5, str, str+0, S("abcde"));
- test(S("abcdefghij"), 5, 5, str, str+1, S("abcde1"));
- test(S("abcdefghij"), 5, 5, str, str+2, S("abcde12"));
- test(S("abcdefghij"), 5, 5, str, str+4, S("abcde1234"));
- test(S("abcdefghij"), 5, 5, str, str+5, S("abcde12345"));
- test(S("abcdefghij"), 5, 5, str, str+0, S("abcde"));
- test(S("abcdefghij"), 5, 5, str, str+1, S("abcde1"));
- test(S("abcdefghij"), 5, 5, str, str+5, S("abcde12345"));
- test(S("abcdefghij"), 5, 5, str, str+9, S("abcde123456789"));
- test(S("abcdefghij"), 5, 5, str, str+10, S("abcde1234567890"));
- test(S("abcdefghij"), 5, 5, str, str+0, S("abcde"));
- test(S("abcdefghij"), 5, 5, str, str+1, S("abcde1"));
- test(S("abcdefghij"), 5, 5, str, str+10, S("abcde1234567890"));
- test(S("abcdefghij"), 5, 5, str, str+19, S("abcde1234567890123456789"));
- test(S("abcdefghij"), 5, 5, str, str+20, S("abcde12345678901234567890"));
- test(S("abcdefghij"), 9, 0, str, str+0, S("abcdefghij"));
- test(S("abcdefghij"), 9, 0, str, str+0, S("abcdefghij"));
- test(S("abcdefghij"), 9, 0, str, str+1, S("abcdefghi1j"));
- test(S("abcdefghij"), 9, 0, str, str+2, S("abcdefghi12j"));
- test(S("abcdefghij"), 9, 0, str, str+4, S("abcdefghi1234j"));
- test(S("abcdefghij"), 9, 0, str, str+5, S("abcdefghi12345j"));
- test(S("abcdefghij"), 9, 0, str, str+0, S("abcdefghij"));
- test(S("abcdefghij"), 9, 0, str, str+1, S("abcdefghi1j"));
- test(S("abcdefghij"), 9, 0, str, str+5, S("abcdefghi12345j"));
- test(S("abcdefghij"), 9, 0, str, str+9, S("abcdefghi123456789j"));
- test(S("abcdefghij"), 9, 0, str, str+10, S("abcdefghi1234567890j"));
- test(S("abcdefghij"), 9, 0, str, str+0, S("abcdefghij"));
- test(S("abcdefghij"), 9, 0, str, str+1, S("abcdefghi1j"));
- test(S("abcdefghij"), 9, 0, str, str+10, S("abcdefghi1234567890j"));
- test(S("abcdefghij"), 9, 0, str, str+19, S("abcdefghi1234567890123456789j"));
- test(S("abcdefghij"), 9, 0, str, str+20, S("abcdefghi12345678901234567890j"));
- test(S("abcdefghij"), 9, 1, str, str+0, S("abcdefghi"));
- test(S("abcdefghij"), 9, 1, str, str+0, S("abcdefghi"));
- test(S("abcdefghij"), 9, 1, str, str+1, S("abcdefghi1"));
- test(S("abcdefghij"), 9, 1, str, str+2, S("abcdefghi12"));
- test(S("abcdefghij"), 9, 1, str, str+4, S("abcdefghi1234"));
- test(S("abcdefghij"), 9, 1, str, str+5, S("abcdefghi12345"));
- test(S("abcdefghij"), 9, 1, str, str+0, S("abcdefghi"));
- test(S("abcdefghij"), 9, 1, str, str+1, S("abcdefghi1"));
- test(S("abcdefghij"), 9, 1, str, str+5, S("abcdefghi12345"));
- test(S("abcdefghij"), 9, 1, str, str+9, S("abcdefghi123456789"));
- test(S("abcdefghij"), 9, 1, str, str+10, S("abcdefghi1234567890"));
- test(S("abcdefghij"), 9, 1, str, str+0, S("abcdefghi"));
- test(S("abcdefghij"), 9, 1, str, str+1, S("abcdefghi1"));
- test(S("abcdefghij"), 9, 1, str, str+10, S("abcdefghi1234567890"));
- test(S("abcdefghij"), 9, 1, str, str+19, S("abcdefghi1234567890123456789"));
- test(S("abcdefghij"), 9, 1, str, str+20, S("abcdefghi12345678901234567890"));
- test(S("abcdefghij"), 10, 0, str, str+0, S("abcdefghij"));
- test(S("abcdefghij"), 10, 0, str, str+0, S("abcdefghij"));
- test(S("abcdefghij"), 10, 0, str, str+1, S("abcdefghij1"));
- test(S("abcdefghij"), 10, 0, str, str+2, S("abcdefghij12"));
- test(S("abcdefghij"), 10, 0, str, str+4, S("abcdefghij1234"));
- test(S("abcdefghij"), 10, 0, str, str+5, S("abcdefghij12345"));
- test(S("abcdefghij"), 10, 0, str, str+0, S("abcdefghij"));
- test(S("abcdefghij"), 10, 0, str, str+1, S("abcdefghij1"));
- test(S("abcdefghij"), 10, 0, str, str+5, S("abcdefghij12345"));
- test(S("abcdefghij"), 10, 0, str, str+9, S("abcdefghij123456789"));
- test(S("abcdefghij"), 10, 0, str, str+10, S("abcdefghij1234567890"));
- test(S("abcdefghij"), 10, 0, str, str+0, S("abcdefghij"));
- test(S("abcdefghij"), 10, 0, str, str+1, S("abcdefghij1"));
- test(S("abcdefghij"), 10, 0, str, str+10, S("abcdefghij1234567890"));
- test(S("abcdefghij"), 10, 0, str, str+19, S("abcdefghij1234567890123456789"));
- test(S("abcdefghij"), 10, 0, str, str+20, S("abcdefghij12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 0, 0, str, str+0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, str, str+0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, str, str+1, S("1abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, str, str+2, S("12abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, str, str+4, S("1234abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, str, str+5, S("12345abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, str, str+0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, str, str+1, S("1abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, str, str+5, S("12345abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, str, str+9, S("123456789abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, str, str+10, S("1234567890abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, str, str+0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, str, str+1, S("1abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, str, str+10, S("1234567890abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, str, str+19, S("1234567890123456789abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, str, str+20, S("12345678901234567890abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, str, str+0, S("bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, str, str+0, S("bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, str, str+1, S("1bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, str, str+2, S("12bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, str, str+4, S("1234bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, str, str+5, S("12345bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, str, str+0, S("bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, str, str+1, S("1bcdefghijklmnopqrst"));
+TEST_CONSTEXPR_CXX20 bool test5() {
+ test(S("abcdefghij"), 5, 4, str, str + 4, S("abcde1234j"));
+ test(S("abcdefghij"), 5, 4, str, str + 5, S("abcde12345j"));
+ test(S("abcdefghij"), 5, 4, str, str + 0, S("abcdej"));
+ test(S("abcdefghij"), 5, 4, str, str + 1, S("abcde1j"));
+ test(S("abcdefghij"), 5, 4, str, str + 5, S("abcde12345j"));
+ test(S("abcdefghij"), 5, 4, str, str + 9, S("abcde123456789j"));
+ test(S("abcdefghij"), 5, 4, str, str + 10, S("abcde1234567890j"));
+ test(S("abcdefghij"), 5, 4, str, str + 0, S("abcdej"));
+ test(S("abcdefghij"), 5, 4, str, str + 1, S("abcde1j"));
+ test(S("abcdefghij"), 5, 4, str, str + 10, S("abcde1234567890j"));
+ test(S("abcdefghij"), 5, 4, str, str + 19, S("abcde1234567890123456789j"));
+ test(S("abcdefghij"), 5, 4, str, str + 20, S("abcde12345678901234567890j"));
+ test(S("abcdefghij"), 5, 5, str, str + 0, S("abcde"));
+ test(S("abcdefghij"), 5, 5, str, str + 0, S("abcde"));
+ test(S("abcdefghij"), 5, 5, str, str + 1, S("abcde1"));
+ test(S("abcdefghij"), 5, 5, str, str + 2, S("abcde12"));
+ test(S("abcdefghij"), 5, 5, str, str + 4, S("abcde1234"));
+ test(S("abcdefghij"), 5, 5, str, str + 5, S("abcde12345"));
+ test(S("abcdefghij"), 5, 5, str, str + 0, S("abcde"));
+ test(S("abcdefghij"), 5, 5, str, str + 1, S("abcde1"));
+ test(S("abcdefghij"), 5, 5, str, str + 5, S("abcde12345"));
+ test(S("abcdefghij"), 5, 5, str, str + 9, S("abcde123456789"));
+ test(S("abcdefghij"), 5, 5, str, str + 10, S("abcde1234567890"));
+ test(S("abcdefghij"), 5, 5, str, str + 0, S("abcde"));
+ test(S("abcdefghij"), 5, 5, str, str + 1, S("abcde1"));
+ test(S("abcdefghij"), 5, 5, str, str + 10, S("abcde1234567890"));
+ test(S("abcdefghij"), 5, 5, str, str + 19, S("abcde1234567890123456789"));
+ test(S("abcdefghij"), 5, 5, str, str + 20, S("abcde12345678901234567890"));
+ test(S("abcdefghij"), 9, 0, str, str + 0, S("abcdefghij"));
+ test(S("abcdefghij"), 9, 0, str, str + 0, S("abcdefghij"));
+ test(S("abcdefghij"), 9, 0, str, str + 1, S("abcdefghi1j"));
+ test(S("abcdefghij"), 9, 0, str, str + 2, S("abcdefghi12j"));
+ test(S("abcdefghij"), 9, 0, str, str + 4, S("abcdefghi1234j"));
+ test(S("abcdefghij"), 9, 0, str, str + 5, S("abcdefghi12345j"));
+ test(S("abcdefghij"), 9, 0, str, str + 0, S("abcdefghij"));
+ test(S("abcdefghij"), 9, 0, str, str + 1, S("abcdefghi1j"));
+ test(S("abcdefghij"), 9, 0, str, str + 5, S("abcdefghi12345j"));
+ test(S("abcdefghij"), 9, 0, str, str + 9, S("abcdefghi123456789j"));
+ test(S("abcdefghij"), 9, 0, str, str + 10, S("abcdefghi1234567890j"));
+ test(S("abcdefghij"), 9, 0, str, str + 0, S("abcdefghij"));
+ test(S("abcdefghij"), 9, 0, str, str + 1, S("abcdefghi1j"));
+ test(S("abcdefghij"), 9, 0, str, str + 10, S("abcdefghi1234567890j"));
+ test(S("abcdefghij"), 9, 0, str, str + 19, S("abcdefghi1234567890123456789j"));
+ test(S("abcdefghij"), 9, 0, str, str + 20, S("abcdefghi12345678901234567890j"));
+ test(S("abcdefghij"), 9, 1, str, str + 0, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 1, str, str + 0, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 1, str, str + 1, S("abcdefghi1"));
+ test(S("abcdefghij"), 9, 1, str, str + 2, S("abcdefghi12"));
+ test(S("abcdefghij"), 9, 1, str, str + 4, S("abcdefghi1234"));
+ test(S("abcdefghij"), 9, 1, str, str + 5, S("abcdefghi12345"));
+ test(S("abcdefghij"), 9, 1, str, str + 0, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 1, str, str + 1, S("abcdefghi1"));
+ test(S("abcdefghij"), 9, 1, str, str + 5, S("abcdefghi12345"));
+ test(S("abcdefghij"), 9, 1, str, str + 9, S("abcdefghi123456789"));
+ test(S("abcdefghij"), 9, 1, str, str + 10, S("abcdefghi1234567890"));
+ test(S("abcdefghij"), 9, 1, str, str + 0, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 1, str, str + 1, S("abcdefghi1"));
+ test(S("abcdefghij"), 9, 1, str, str + 10, S("abcdefghi1234567890"));
+ test(S("abcdefghij"), 9, 1, str, str + 19, S("abcdefghi1234567890123456789"));
+ test(S("abcdefghij"), 9, 1, str, str + 20, S("abcdefghi12345678901234567890"));
+ test(S("abcdefghij"), 10, 0, str, str + 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 0, str, str + 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 0, str, str + 1, S("abcdefghij1"));
+ test(S("abcdefghij"), 10, 0, str, str + 2, S("abcdefghij12"));
+ test(S("abcdefghij"), 10, 0, str, str + 4, S("abcdefghij1234"));
+ test(S("abcdefghij"), 10, 0, str, str + 5, S("abcdefghij12345"));
+ test(S("abcdefghij"), 10, 0, str, str + 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 0, str, str + 1, S("abcdefghij1"));
+ test(S("abcdefghij"), 10, 0, str, str + 5, S("abcdefghij12345"));
+ test(S("abcdefghij"), 10, 0, str, str + 9, S("abcdefghij123456789"));
+ test(S("abcdefghij"), 10, 0, str, str + 10, S("abcdefghij1234567890"));
+ test(S("abcdefghij"), 10, 0, str, str + 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 0, str, str + 1, S("abcdefghij1"));
+ test(S("abcdefghij"), 10, 0, str, str + 10, S("abcdefghij1234567890"));
+ test(S("abcdefghij"), 10, 0, str, str + 19, S("abcdefghij1234567890123456789"));
+ test(S("abcdefghij"), 10, 0, str, str + 20, S("abcdefghij12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, str, str + 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, str, str + 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, str, str + 1, S("1abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, str, str + 2, S("12abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, str, str + 4, S("1234abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, str, str + 5, S("12345abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, str, str + 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, str, str + 1, S("1abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, str, str + 5, S("12345abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, str, str + 9, S("123456789abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, str, str + 10, S("1234567890abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, str, str + 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, str, str + 1, S("1abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, str, str + 10, S("1234567890abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, str, str + 19, S("1234567890123456789abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, str, str + 20, S("12345678901234567890abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, str, str + 0, S("bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, str, str + 0, S("bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, str, str + 1, S("1bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, str, str + 2, S("12bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, str, str + 4, S("1234bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, str, str + 5, S("12345bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, str, str + 0, S("bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, str, str + 1, S("1bcdefghijklmnopqrst"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test6()
-{
- test(S("abcdefghijklmnopqrst"), 0, 1, str, str+5, S("12345bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, str, str+9, S("123456789bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, str, str+10, S("1234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, str, str+0, S("bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, str, str+1, S("1bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, str, str+10, S("1234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, str, str+19, S("1234567890123456789bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, str, str+20, S("12345678901234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, str, str+0, S("klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, str, str+0, S("klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, str, str+1, S("1klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, str, str+2, S("12klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, str, str+4, S("1234klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, str, str+5, S("12345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, str, str+0, S("klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, str, str+1, S("1klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, str, str+5, S("12345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, str, str+9, S("123456789klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, str, str+10, S("1234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, str, str+0, S("klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, str, str+1, S("1klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, str, str+10, S("1234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, str, str+19, S("1234567890123456789klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, str, str+20, S("12345678901234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 19, str, str+0, S("t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, str, str+0, S("t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, str, str+1, S("1t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, str, str+2, S("12t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, str, str+4, S("1234t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, str, str+5, S("12345t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, str, str+0, S("t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, str, str+1, S("1t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, str, str+5, S("12345t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, str, str+9, S("123456789t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, str, str+10, S("1234567890t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, str, str+0, S("t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, str, str+1, S("1t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, str, str+10, S("1234567890t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, str, str+19, S("1234567890123456789t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, str, str+20, S("12345678901234567890t"));
- test(S("abcdefghijklmnopqrst"), 0, 20, str, str+0, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 20, str, str+0, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 20, str, str+1, S("1"));
- test(S("abcdefghijklmnopqrst"), 0, 20, str, str+2, S("12"));
- test(S("abcdefghijklmnopqrst"), 0, 20, str, str+4, S("1234"));
- test(S("abcdefghijklmnopqrst"), 0, 20, str, str+5, S("12345"));
- test(S("abcdefghijklmnopqrst"), 0, 20, str, str+0, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 20, str, str+1, S("1"));
- test(S("abcdefghijklmnopqrst"), 0, 20, str, str+5, S("12345"));
- test(S("abcdefghijklmnopqrst"), 0, 20, str, str+9, S("123456789"));
- test(S("abcdefghijklmnopqrst"), 0, 20, str, str+10, S("1234567890"));
- test(S("abcdefghijklmnopqrst"), 0, 20, str, str+0, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 20, str, str+1, S("1"));
- test(S("abcdefghijklmnopqrst"), 0, 20, str, str+10, S("1234567890"));
- test(S("abcdefghijklmnopqrst"), 0, 20, str, str+19, S("1234567890123456789"));
- test(S("abcdefghijklmnopqrst"), 0, 20, str, str+20, S("12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 1, 0, str, str+0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, str, str+0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, str, str+1, S("a1bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, str, str+2, S("a12bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, str, str+4, S("a1234bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, str, str+5, S("a12345bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, str, str+0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, str, str+1, S("a1bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, str, str+5, S("a12345bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, str, str+9, S("a123456789bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, str, str+10, S("a1234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, str, str+0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, str, str+1, S("a1bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, str, str+10, S("a1234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, str, str+19, S("a1234567890123456789bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, str, str+20, S("a12345678901234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, str, str+0, S("acdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, str, str+0, S("acdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, str, str+1, S("a1cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, str, str+2, S("a12cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, str, str+4, S("a1234cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, str, str+5, S("a12345cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, str, str+0, S("acdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, str, str+1, S("a1cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, str, str+5, S("a12345cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, str, str+9, S("a123456789cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, str, str+10, S("a1234567890cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, str, str+0, S("acdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, str, str+1, S("a1cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, str, str+10, S("a1234567890cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, str, str+19, S("a1234567890123456789cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, str, str+20, S("a12345678901234567890cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, str, str+0, S("aklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, str, str+0, S("aklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, str, str+1, S("a1klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, str, str+2, S("a12klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, str, str+4, S("a1234klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, str, str+5, S("a12345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, str, str+0, S("aklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, str, str+1, S("a1klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, str, str+5, S("a12345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, str, str+9, S("a123456789klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, str, str+10, S("a1234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, str, str+0, S("aklmnopqrst"));
+TEST_CONSTEXPR_CXX20 bool test6() {
+ test(S("abcdefghijklmnopqrst"), 0, 1, str, str + 5, S("12345bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, str, str + 9, S("123456789bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, str, str + 10, S("1234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, str, str + 0, S("bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, str, str + 1, S("1bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, str, str + 10, S("1234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, str, str + 19, S("1234567890123456789bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, str, str + 20, S("12345678901234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, str, str + 0, S("klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, str, str + 0, S("klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, str, str + 1, S("1klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, str, str + 2, S("12klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, str, str + 4, S("1234klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, str, str + 5, S("12345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, str, str + 0, S("klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, str, str + 1, S("1klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, str, str + 5, S("12345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, str, str + 9, S("123456789klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, str, str + 10, S("1234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, str, str + 0, S("klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, str, str + 1, S("1klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, str, str + 10, S("1234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, str, str + 19, S("1234567890123456789klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, str, str + 20, S("12345678901234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, str, str + 0, S("t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, str, str + 0, S("t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, str, str + 1, S("1t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, str, str + 2, S("12t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, str, str + 4, S("1234t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, str, str + 5, S("12345t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, str, str + 0, S("t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, str, str + 1, S("1t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, str, str + 5, S("12345t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, str, str + 9, S("123456789t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, str, str + 10, S("1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, str, str + 0, S("t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, str, str + 1, S("1t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, str, str + 10, S("1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, str, str + 19, S("1234567890123456789t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, str, str + 20, S("12345678901234567890t"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, str, str + 0, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 20, str, str + 0, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 20, str, str + 1, S("1"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, str, str + 2, S("12"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, str, str + 4, S("1234"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, str, str + 5, S("12345"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, str, str + 0, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 20, str, str + 1, S("1"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, str, str + 5, S("12345"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, str, str + 9, S("123456789"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, str, str + 10, S("1234567890"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, str, str + 0, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 20, str, str + 1, S("1"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, str, str + 10, S("1234567890"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, str, str + 19, S("1234567890123456789"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, str, str + 20, S("12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, str, str + 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, str, str + 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, str, str + 1, S("a1bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, str, str + 2, S("a12bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, str, str + 4, S("a1234bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, str, str + 5, S("a12345bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, str, str + 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, str, str + 1, S("a1bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, str, str + 5, S("a12345bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, str, str + 9, S("a123456789bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, str, str + 10, S("a1234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, str, str + 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, str, str + 1, S("a1bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, str, str + 10, S("a1234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, str, str + 19, S("a1234567890123456789bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, str, str + 20, S("a12345678901234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, str, str + 0, S("acdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, str, str + 0, S("acdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, str, str + 1, S("a1cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, str, str + 2, S("a12cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, str, str + 4, S("a1234cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, str, str + 5, S("a12345cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, str, str + 0, S("acdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, str, str + 1, S("a1cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, str, str + 5, S("a12345cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, str, str + 9, S("a123456789cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, str, str + 10, S("a1234567890cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, str, str + 0, S("acdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, str, str + 1, S("a1cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, str, str + 10, S("a1234567890cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, str, str + 19, S("a1234567890123456789cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, str, str + 20, S("a12345678901234567890cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, str, str + 0, S("aklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, str, str + 0, S("aklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, str, str + 1, S("a1klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, str, str + 2, S("a12klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, str, str + 4, S("a1234klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, str, str + 5, S("a12345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, str, str + 0, S("aklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, str, str + 1, S("a1klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, str, str + 5, S("a12345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, str, str + 9, S("a123456789klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, str, str + 10, S("a1234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, str, str + 0, S("aklmnopqrst"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test7()
-{
- test(S("abcdefghijklmnopqrst"), 1, 9, str, str+1, S("a1klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, str, str+10, S("a1234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, str, str+19, S("a1234567890123456789klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, str, str+20, S("a12345678901234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 18, str, str+0, S("at"));
- test(S("abcdefghijklmnopqrst"), 1, 18, str, str+0, S("at"));
- test(S("abcdefghijklmnopqrst"), 1, 18, str, str+1, S("a1t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, str, str+2, S("a12t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, str, str+4, S("a1234t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, str, str+5, S("a12345t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, str, str+0, S("at"));
- test(S("abcdefghijklmnopqrst"), 1, 18, str, str+1, S("a1t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, str, str+5, S("a12345t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, str, str+9, S("a123456789t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, str, str+10, S("a1234567890t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, str, str+0, S("at"));
- test(S("abcdefghijklmnopqrst"), 1, 18, str, str+1, S("a1t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, str, str+10, S("a1234567890t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, str, str+19, S("a1234567890123456789t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, str, str+20, S("a12345678901234567890t"));
- test(S("abcdefghijklmnopqrst"), 1, 19, str, str+0, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 19, str, str+0, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 19, str, str+1, S("a1"));
- test(S("abcdefghijklmnopqrst"), 1, 19, str, str+2, S("a12"));
- test(S("abcdefghijklmnopqrst"), 1, 19, str, str+4, S("a1234"));
- test(S("abcdefghijklmnopqrst"), 1, 19, str, str+5, S("a12345"));
- test(S("abcdefghijklmnopqrst"), 1, 19, str, str+0, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 19, str, str+1, S("a1"));
- test(S("abcdefghijklmnopqrst"), 1, 19, str, str+5, S("a12345"));
- test(S("abcdefghijklmnopqrst"), 1, 19, str, str+9, S("a123456789"));
- test(S("abcdefghijklmnopqrst"), 1, 19, str, str+10, S("a1234567890"));
- test(S("abcdefghijklmnopqrst"), 1, 19, str, str+0, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 19, str, str+1, S("a1"));
- test(S("abcdefghijklmnopqrst"), 1, 19, str, str+10, S("a1234567890"));
- test(S("abcdefghijklmnopqrst"), 1, 19, str, str+19, S("a1234567890123456789"));
- test(S("abcdefghijklmnopqrst"), 1, 19, str, str+20, S("a12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 10, 0, str, str+0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, str, str+0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, str, str+1, S("abcdefghij1klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, str, str+2, S("abcdefghij12klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, str, str+4, S("abcdefghij1234klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, str, str+5, S("abcdefghij12345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, str, str+0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, str, str+1, S("abcdefghij1klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, str, str+5, S("abcdefghij12345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, str, str+9, S("abcdefghij123456789klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, str, str+10, S("abcdefghij1234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, str, str+0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, str, str+1, S("abcdefghij1klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, str, str+10, S("abcdefghij1234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, str, str+19, S("abcdefghij1234567890123456789klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, str, str+20, S("abcdefghij12345678901234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, str, str+0, S("abcdefghijlmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, str, str+0, S("abcdefghijlmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, str, str+1, S("abcdefghij1lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, str, str+2, S("abcdefghij12lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, str, str+4, S("abcdefghij1234lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, str, str+5, S("abcdefghij12345lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, str, str+0, S("abcdefghijlmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, str, str+1, S("abcdefghij1lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, str, str+5, S("abcdefghij12345lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, str, str+9, S("abcdefghij123456789lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, str, str+10, S("abcdefghij1234567890lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, str, str+0, S("abcdefghijlmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, str, str+1, S("abcdefghij1lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, str, str+10, S("abcdefghij1234567890lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, str, str+19, S("abcdefghij1234567890123456789lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, str, str+20, S("abcdefghij12345678901234567890lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, str, str+0, S("abcdefghijpqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, str, str+0, S("abcdefghijpqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, str, str+1, S("abcdefghij1pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, str, str+2, S("abcdefghij12pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, str, str+4, S("abcdefghij1234pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, str, str+5, S("abcdefghij12345pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, str, str+0, S("abcdefghijpqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, str, str+1, S("abcdefghij1pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, str, str+5, S("abcdefghij12345pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, str, str+9, S("abcdefghij123456789pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, str, str+10, S("abcdefghij1234567890pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, str, str+0, S("abcdefghijpqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, str, str+1, S("abcdefghij1pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, str, str+10, S("abcdefghij1234567890pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, str, str+19, S("abcdefghij1234567890123456789pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, str, str+20, S("abcdefghij12345678901234567890pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 9, str, str+0, S("abcdefghijt"));
- test(S("abcdefghijklmnopqrst"), 10, 9, str, str+0, S("abcdefghijt"));
- test(S("abcdefghijklmnopqrst"), 10, 9, str, str+1, S("abcdefghij1t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, str, str+2, S("abcdefghij12t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, str, str+4, S("abcdefghij1234t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, str, str+5, S("abcdefghij12345t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, str, str+0, S("abcdefghijt"));
- test(S("abcdefghijklmnopqrst"), 10, 9, str, str+1, S("abcdefghij1t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, str, str+5, S("abcdefghij12345t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, str, str+9, S("abcdefghij123456789t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, str, str+10, S("abcdefghij1234567890t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, str, str+0, S("abcdefghijt"));
- test(S("abcdefghijklmnopqrst"), 10, 9, str, str+1, S("abcdefghij1t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, str, str+10, S("abcdefghij1234567890t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, str, str+19, S("abcdefghij1234567890123456789t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, str, str+20, S("abcdefghij12345678901234567890t"));
+TEST_CONSTEXPR_CXX20 bool test7() {
+ test(S("abcdefghijklmnopqrst"), 1, 9, str, str + 1, S("a1klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, str, str + 10, S("a1234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, str, str + 19, S("a1234567890123456789klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, str, str + 20, S("a12345678901234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, str, str + 0, S("at"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, str, str + 0, S("at"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, str, str + 1, S("a1t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, str, str + 2, S("a12t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, str, str + 4, S("a1234t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, str, str + 5, S("a12345t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, str, str + 0, S("at"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, str, str + 1, S("a1t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, str, str + 5, S("a12345t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, str, str + 9, S("a123456789t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, str, str + 10, S("a1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, str, str + 0, S("at"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, str, str + 1, S("a1t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, str, str + 10, S("a1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, str, str + 19, S("a1234567890123456789t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, str, str + 20, S("a12345678901234567890t"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, str, str + 0, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, str, str + 0, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, str, str + 1, S("a1"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, str, str + 2, S("a12"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, str, str + 4, S("a1234"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, str, str + 5, S("a12345"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, str, str + 0, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, str, str + 1, S("a1"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, str, str + 5, S("a12345"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, str, str + 9, S("a123456789"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, str, str + 10, S("a1234567890"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, str, str + 0, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, str, str + 1, S("a1"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, str, str + 10, S("a1234567890"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, str, str + 19, S("a1234567890123456789"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, str, str + 20, S("a12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, str, str + 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, str, str + 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, str, str + 1, S("abcdefghij1klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, str, str + 2, S("abcdefghij12klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, str, str + 4, S("abcdefghij1234klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, str, str + 5, S("abcdefghij12345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, str, str + 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, str, str + 1, S("abcdefghij1klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, str, str + 5, S("abcdefghij12345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, str, str + 9, S("abcdefghij123456789klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, str, str + 10, S("abcdefghij1234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, str, str + 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, str, str + 1, S("abcdefghij1klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, str, str + 10, S("abcdefghij1234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, str, str + 19, S("abcdefghij1234567890123456789klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, str, str + 20, S("abcdefghij12345678901234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, str, str + 0, S("abcdefghijlmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, str, str + 0, S("abcdefghijlmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, str, str + 1, S("abcdefghij1lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, str, str + 2, S("abcdefghij12lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, str, str + 4, S("abcdefghij1234lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, str, str + 5, S("abcdefghij12345lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, str, str + 0, S("abcdefghijlmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, str, str + 1, S("abcdefghij1lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, str, str + 5, S("abcdefghij12345lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, str, str + 9, S("abcdefghij123456789lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, str, str + 10, S("abcdefghij1234567890lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, str, str + 0, S("abcdefghijlmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, str, str + 1, S("abcdefghij1lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, str, str + 10, S("abcdefghij1234567890lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, str, str + 19, S("abcdefghij1234567890123456789lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, str, str + 20, S("abcdefghij12345678901234567890lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, str, str + 0, S("abcdefghijpqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, str, str + 0, S("abcdefghijpqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, str, str + 1, S("abcdefghij1pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, str, str + 2, S("abcdefghij12pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, str, str + 4, S("abcdefghij1234pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, str, str + 5, S("abcdefghij12345pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, str, str + 0, S("abcdefghijpqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, str, str + 1, S("abcdefghij1pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, str, str + 5, S("abcdefghij12345pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, str, str + 9, S("abcdefghij123456789pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, str, str + 10, S("abcdefghij1234567890pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, str, str + 0, S("abcdefghijpqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, str, str + 1, S("abcdefghij1pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, str, str + 10, S("abcdefghij1234567890pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, str, str + 19, S("abcdefghij1234567890123456789pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, str, str + 20, S("abcdefghij12345678901234567890pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, str, str + 0, S("abcdefghijt"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, str, str + 0, S("abcdefghijt"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, str, str + 1, S("abcdefghij1t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, str, str + 2, S("abcdefghij12t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, str, str + 4, S("abcdefghij1234t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, str, str + 5, S("abcdefghij12345t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, str, str + 0, S("abcdefghijt"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, str, str + 1, S("abcdefghij1t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, str, str + 5, S("abcdefghij12345t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, str, str + 9, S("abcdefghij123456789t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, str, str + 10, S("abcdefghij1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, str, str + 0, S("abcdefghijt"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, str, str + 1, S("abcdefghij1t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, str, str + 10, S("abcdefghij1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, str, str + 19, S("abcdefghij1234567890123456789t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, str, str + 20, S("abcdefghij12345678901234567890t"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test8()
-{
- test(S("abcdefghijklmnopqrst"), 10, 10, str, str+0, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 10, str, str+0, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 10, str, str+1, S("abcdefghij1"));
- test(S("abcdefghijklmnopqrst"), 10, 10, str, str+2, S("abcdefghij12"));
- test(S("abcdefghijklmnopqrst"), 10, 10, str, str+4, S("abcdefghij1234"));
- test(S("abcdefghijklmnopqrst"), 10, 10, str, str+5, S("abcdefghij12345"));
- test(S("abcdefghijklmnopqrst"), 10, 10, str, str+0, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 10, str, str+1, S("abcdefghij1"));
- test(S("abcdefghijklmnopqrst"), 10, 10, str, str+5, S("abcdefghij12345"));
- test(S("abcdefghijklmnopqrst"), 10, 10, str, str+9, S("abcdefghij123456789"));
- test(S("abcdefghijklmnopqrst"), 10, 10, str, str+10, S("abcdefghij1234567890"));
- test(S("abcdefghijklmnopqrst"), 10, 10, str, str+0, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 10, str, str+1, S("abcdefghij1"));
- test(S("abcdefghijklmnopqrst"), 10, 10, str, str+10, S("abcdefghij1234567890"));
- test(S("abcdefghijklmnopqrst"), 10, 10, str, str+19, S("abcdefghij1234567890123456789"));
- test(S("abcdefghijklmnopqrst"), 10, 10, str, str+20, S("abcdefghij12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 19, 0, str, str+0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, 0, str, str+0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, 0, str, str+1, S("abcdefghijklmnopqrs1t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, str, str+2, S("abcdefghijklmnopqrs12t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, str, str+4, S("abcdefghijklmnopqrs1234t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, str, str+5, S("abcdefghijklmnopqrs12345t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, str, str+0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, 0, str, str+1, S("abcdefghijklmnopqrs1t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, str, str+5, S("abcdefghijklmnopqrs12345t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, str, str+9, S("abcdefghijklmnopqrs123456789t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, str, str+10, S("abcdefghijklmnopqrs1234567890t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, str, str+0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, 0, str, str+1, S("abcdefghijklmnopqrs1t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, str, str+10, S("abcdefghijklmnopqrs1234567890t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, str, str+19, S("abcdefghijklmnopqrs1234567890123456789t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, str, str+20, S("abcdefghijklmnopqrs12345678901234567890t"));
- test(S("abcdefghijklmnopqrst"), 19, 1, str, str+0, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 1, str, str+0, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 1, str, str+1, S("abcdefghijklmnopqrs1"));
- test(S("abcdefghijklmnopqrst"), 19, 1, str, str+2, S("abcdefghijklmnopqrs12"));
- test(S("abcdefghijklmnopqrst"), 19, 1, str, str+4, S("abcdefghijklmnopqrs1234"));
- test(S("abcdefghijklmnopqrst"), 19, 1, str, str+5, S("abcdefghijklmnopqrs12345"));
- test(S("abcdefghijklmnopqrst"), 19, 1, str, str+0, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 1, str, str+1, S("abcdefghijklmnopqrs1"));
- test(S("abcdefghijklmnopqrst"), 19, 1, str, str+5, S("abcdefghijklmnopqrs12345"));
- test(S("abcdefghijklmnopqrst"), 19, 1, str, str+9, S("abcdefghijklmnopqrs123456789"));
- test(S("abcdefghijklmnopqrst"), 19, 1, str, str+10, S("abcdefghijklmnopqrs1234567890"));
- test(S("abcdefghijklmnopqrst"), 19, 1, str, str+0, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 1, str, str+1, S("abcdefghijklmnopqrs1"));
- test(S("abcdefghijklmnopqrst"), 19, 1, str, str+10, S("abcdefghijklmnopqrs1234567890"));
- test(S("abcdefghijklmnopqrst"), 19, 1, str, str+19, S("abcdefghijklmnopqrs1234567890123456789"));
- test(S("abcdefghijklmnopqrst"), 19, 1, str, str+20, S("abcdefghijklmnopqrs12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 20, 0, str, str+0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 0, str, str+0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 0, str, str+1, S("abcdefghijklmnopqrst1"));
- test(S("abcdefghijklmnopqrst"), 20, 0, str, str+2, S("abcdefghijklmnopqrst12"));
- test(S("abcdefghijklmnopqrst"), 20, 0, str, str+4, S("abcdefghijklmnopqrst1234"));
- test(S("abcdefghijklmnopqrst"), 20, 0, str, str+5, S("abcdefghijklmnopqrst12345"));
- test(S("abcdefghijklmnopqrst"), 20, 0, str, str+0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 0, str, str+1, S("abcdefghijklmnopqrst1"));
- test(S("abcdefghijklmnopqrst"), 20, 0, str, str+5, S("abcdefghijklmnopqrst12345"));
- test(S("abcdefghijklmnopqrst"), 20, 0, str, str+9, S("abcdefghijklmnopqrst123456789"));
- test(S("abcdefghijklmnopqrst"), 20, 0, str, str+10, S("abcdefghijklmnopqrst1234567890"));
- test(S("abcdefghijklmnopqrst"), 20, 0, str, str+0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 0, str, str+1, S("abcdefghijklmnopqrst1"));
- test(S("abcdefghijklmnopqrst"), 20, 0, str, str+10, S("abcdefghijklmnopqrst1234567890"));
- test(S("abcdefghijklmnopqrst"), 20, 0, str, str+19, S("abcdefghijklmnopqrst1234567890123456789"));
- test(S("abcdefghijklmnopqrst"), 20, 0, str, str+20, S("abcdefghijklmnopqrst12345678901234567890"));
+TEST_CONSTEXPR_CXX20 bool test8() {
+ test(S("abcdefghijklmnopqrst"), 10, 10, str, str + 0, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, str, str + 0, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, str, str + 1, S("abcdefghij1"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, str, str + 2, S("abcdefghij12"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, str, str + 4, S("abcdefghij1234"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, str, str + 5, S("abcdefghij12345"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, str, str + 0, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, str, str + 1, S("abcdefghij1"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, str, str + 5, S("abcdefghij12345"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, str, str + 9, S("abcdefghij123456789"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, str, str + 10, S("abcdefghij1234567890"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, str, str + 0, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, str, str + 1, S("abcdefghij1"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, str, str + 10, S("abcdefghij1234567890"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, str, str + 19, S("abcdefghij1234567890123456789"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, str, str + 20, S("abcdefghij12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, str, str + 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, str, str + 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, str, str + 1, S("abcdefghijklmnopqrs1t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, str, str + 2, S("abcdefghijklmnopqrs12t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, str, str + 4, S("abcdefghijklmnopqrs1234t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, str, str + 5, S("abcdefghijklmnopqrs12345t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, str, str + 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, str, str + 1, S("abcdefghijklmnopqrs1t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, str, str + 5, S("abcdefghijklmnopqrs12345t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, str, str + 9, S("abcdefghijklmnopqrs123456789t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, str, str + 10, S("abcdefghijklmnopqrs1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, str, str + 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, str, str + 1, S("abcdefghijklmnopqrs1t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, str, str + 10, S("abcdefghijklmnopqrs1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, str, str + 19, S("abcdefghijklmnopqrs1234567890123456789t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, str, str + 20, S("abcdefghijklmnopqrs12345678901234567890t"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, str, str + 0, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, str, str + 0, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, str, str + 1, S("abcdefghijklmnopqrs1"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, str, str + 2, S("abcdefghijklmnopqrs12"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, str, str + 4, S("abcdefghijklmnopqrs1234"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, str, str + 5, S("abcdefghijklmnopqrs12345"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, str, str + 0, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, str, str + 1, S("abcdefghijklmnopqrs1"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, str, str + 5, S("abcdefghijklmnopqrs12345"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, str, str + 9, S("abcdefghijklmnopqrs123456789"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, str, str + 10, S("abcdefghijklmnopqrs1234567890"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, str, str + 0, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, str, str + 1, S("abcdefghijklmnopqrs1"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, str, str + 10, S("abcdefghijklmnopqrs1234567890"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, str, str + 19, S("abcdefghijklmnopqrs1234567890123456789"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, str, str + 20, S("abcdefghijklmnopqrs12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, str, str + 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, str, str + 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, str, str + 1, S("abcdefghijklmnopqrst1"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, str, str + 2, S("abcdefghijklmnopqrst12"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, str, str + 4, S("abcdefghijklmnopqrst1234"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, str, str + 5, S("abcdefghijklmnopqrst12345"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, str, str + 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, str, str + 1, S("abcdefghijklmnopqrst1"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, str, str + 5, S("abcdefghijklmnopqrst12345"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, str, str + 9, S("abcdefghijklmnopqrst123456789"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, str, str + 10, S("abcdefghijklmnopqrst1234567890"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, str, str + 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, str, str + 1, S("abcdefghijklmnopqrst1"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, str, str + 10, S("abcdefghijklmnopqrst1234567890"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, str, str + 19, S("abcdefghijklmnopqrst1234567890123456789"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, str, str + 20, S("abcdefghijklmnopqrst12345678901234567890"));
- return true;
+ return true;
}
template <class S>
@@ -999,16 +989,16 @@ TEST_CONSTEXPR_CXX20 bool test9() {
typedef ThrowingIterator<char> TIter;
typedef cpp17_input_iterator<TIter> IIter;
const char* s = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
- test_exceptions(S("abcdefghijklmnopqrst"), 10, 5, IIter(TIter(s, s+10, 4, TIter::TAIncrement)), IIter(TIter()));
- test_exceptions(S("abcdefghijklmnopqrst"), 10, 5, IIter(TIter(s, s+10, 5, TIter::TADereference)), IIter(TIter()));
- test_exceptions(S("abcdefghijklmnopqrst"), 10, 5, IIter(TIter(s, s+10, 6, TIter::TAComparison)), IIter(TIter()));
+ test_exceptions(S("abcdefghijklmnopqrst"), 10, 5, IIter(TIter(s, s + 10, 4, TIter::TAIncrement)), IIter(TIter()));
+ test_exceptions(S("abcdefghijklmnopqrst"), 10, 5, IIter(TIter(s, s + 10, 5, TIter::TADereference)), IIter(TIter()));
+ test_exceptions(S("abcdefghijklmnopqrst"), 10, 5, IIter(TIter(s, s + 10, 6, TIter::TAComparison)), IIter(TIter()));
- test_exceptions(S("abcdefghijklmnopqrst"), 10, 5, TIter(s, s+10, 4, TIter::TAIncrement), TIter());
- test_exceptions(S("abcdefghijklmnopqrst"), 10, 5, TIter(s, s+10, 5, TIter::TADereference), TIter());
- test_exceptions(S("abcdefghijklmnopqrst"), 10, 5, TIter(s, s+10, 6, TIter::TAComparison), TIter());
+ test_exceptions(S("abcdefghijklmnopqrst"), 10, 5, TIter(s, s + 10, 4, TIter::TAIncrement), TIter());
+ test_exceptions(S("abcdefghijklmnopqrst"), 10, 5, TIter(s, s + 10, 5, TIter::TADereference), TIter());
+ test_exceptions(S("abcdefghijklmnopqrst"), 10, 5, TIter(s, s + 10, 6, TIter::TAComparison), TIter());
Widget w[100];
- test_exceptions(S("abcdefghijklmnopqrst"), 10, 5, w, w+100);
+ test_exceptions(S("abcdefghijklmnopqrst"), 10, 5, w, w + 100);
}
#endif
@@ -1029,7 +1019,7 @@ TEST_CONSTEXPR_CXX20 bool test9() {
{ // test assigning a
diff erent type
const std::uint8_t pc[] = "ABCD";
- std::uint8_t p[] = "EFGH";
+ std::uint8_t p[] = "EFGH";
S s;
s.replace(s.begin(), s.end(), pc, pc + 4);
@@ -1070,8 +1060,7 @@ void test() {
#endif
}
-int main(int, char**)
-{
+int main(int, char**) {
test<std::string>();
#if TEST_STD_VER >= 11
test<std::basic_string<char, std::char_traits<char>, min_allocator<char>>>();
diff --git a/libcxx/test/std/strings/basic.string/string.modifiers/string_replace/iter_iter_pointer.pass.cpp b/libcxx/test/std/strings/basic.string/string.modifiers/string_replace/iter_iter_pointer.pass.cpp
index b60cb343b720416..79c3bce081acf24 100644
--- a/libcxx/test/std/strings/basic.string/string.modifiers/string_replace/iter_iter_pointer.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.modifiers/string_replace/iter_iter_pointer.pass.cpp
@@ -22,269 +22,265 @@
template <class S>
TEST_CONSTEXPR_CXX20 void
-test(S s, typename S::size_type pos1, typename S::size_type n1, const typename S::value_type* str, S expected)
-{
- typename S::size_type old_size = s.size();
- typename S::const_iterator first = s.begin() + pos1;
- typename S::const_iterator last = s.begin() + pos1 + n1;
- typename S::size_type xlen = last - first;
- s.replace(first, last, str);
- LIBCPP_ASSERT(s.__invariants());
- assert(s == expected);
- typename S::size_type rlen = S::traits_type::length(str);
- assert(s.size() == old_size - xlen + rlen);
+test(S s, typename S::size_type pos1, typename S::size_type n1, const typename S::value_type* str, S expected) {
+ typename S::size_type old_size = s.size();
+ typename S::const_iterator first = s.begin() + pos1;
+ typename S::const_iterator last = s.begin() + pos1 + n1;
+ typename S::size_type xlen = last - first;
+ s.replace(first, last, str);
+ LIBCPP_ASSERT(s.__invariants());
+ assert(s == expected);
+ typename S::size_type rlen = S::traits_type::length(str);
+ assert(s.size() == old_size - xlen + rlen);
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test0()
-{
- test(S(""), 0, 0, "", S(""));
- test(S(""), 0, 0, "12345", S("12345"));
- test(S(""), 0, 0, "1234567890", S("1234567890"));
- test(S(""), 0, 0, "12345678901234567890", S("12345678901234567890"));
- test(S("abcde"), 0, 0, "", S("abcde"));
- test(S("abcde"), 0, 0, "12345", S("12345abcde"));
- test(S("abcde"), 0, 0, "1234567890", S("1234567890abcde"));
- test(S("abcde"), 0, 0, "12345678901234567890", S("12345678901234567890abcde"));
- test(S("abcde"), 0, 1, "", S("bcde"));
- test(S("abcde"), 0, 1, "12345", S("12345bcde"));
- test(S("abcde"), 0, 1, "1234567890", S("1234567890bcde"));
- test(S("abcde"), 0, 1, "12345678901234567890", S("12345678901234567890bcde"));
- test(S("abcde"), 0, 2, "", S("cde"));
- test(S("abcde"), 0, 2, "12345", S("12345cde"));
- test(S("abcde"), 0, 2, "1234567890", S("1234567890cde"));
- test(S("abcde"), 0, 2, "12345678901234567890", S("12345678901234567890cde"));
- test(S("abcde"), 0, 4, "", S("e"));
- test(S("abcde"), 0, 4, "12345", S("12345e"));
- test(S("abcde"), 0, 4, "1234567890", S("1234567890e"));
- test(S("abcde"), 0, 4, "12345678901234567890", S("12345678901234567890e"));
- test(S("abcde"), 0, 5, "", S(""));
- test(S("abcde"), 0, 5, "12345", S("12345"));
- test(S("abcde"), 0, 5, "1234567890", S("1234567890"));
- test(S("abcde"), 0, 5, "12345678901234567890", S("12345678901234567890"));
- test(S("abcde"), 1, 0, "", S("abcde"));
- test(S("abcde"), 1, 0, "12345", S("a12345bcde"));
- test(S("abcde"), 1, 0, "1234567890", S("a1234567890bcde"));
- test(S("abcde"), 1, 0, "12345678901234567890", S("a12345678901234567890bcde"));
- test(S("abcde"), 1, 1, "", S("acde"));
- test(S("abcde"), 1, 1, "12345", S("a12345cde"));
- test(S("abcde"), 1, 1, "1234567890", S("a1234567890cde"));
- test(S("abcde"), 1, 1, "12345678901234567890", S("a12345678901234567890cde"));
- test(S("abcde"), 1, 2, "", S("ade"));
- test(S("abcde"), 1, 2, "12345", S("a12345de"));
- test(S("abcde"), 1, 2, "1234567890", S("a1234567890de"));
- test(S("abcde"), 1, 2, "12345678901234567890", S("a12345678901234567890de"));
- test(S("abcde"), 1, 3, "", S("ae"));
- test(S("abcde"), 1, 3, "12345", S("a12345e"));
- test(S("abcde"), 1, 3, "1234567890", S("a1234567890e"));
- test(S("abcde"), 1, 3, "12345678901234567890", S("a12345678901234567890e"));
- test(S("abcde"), 1, 4, "", S("a"));
- test(S("abcde"), 1, 4, "12345", S("a12345"));
- test(S("abcde"), 1, 4, "1234567890", S("a1234567890"));
- test(S("abcde"), 1, 4, "12345678901234567890", S("a12345678901234567890"));
- test(S("abcde"), 2, 0, "", S("abcde"));
- test(S("abcde"), 2, 0, "12345", S("ab12345cde"));
- test(S("abcde"), 2, 0, "1234567890", S("ab1234567890cde"));
- test(S("abcde"), 2, 0, "12345678901234567890", S("ab12345678901234567890cde"));
- test(S("abcde"), 2, 1, "", S("abde"));
- test(S("abcde"), 2, 1, "12345", S("ab12345de"));
- test(S("abcde"), 2, 1, "1234567890", S("ab1234567890de"));
- test(S("abcde"), 2, 1, "12345678901234567890", S("ab12345678901234567890de"));
- test(S("abcde"), 2, 2, "", S("abe"));
- test(S("abcde"), 2, 2, "12345", S("ab12345e"));
- test(S("abcde"), 2, 2, "1234567890", S("ab1234567890e"));
- test(S("abcde"), 2, 2, "12345678901234567890", S("ab12345678901234567890e"));
- test(S("abcde"), 2, 3, "", S("ab"));
- test(S("abcde"), 2, 3, "12345", S("ab12345"));
- test(S("abcde"), 2, 3, "1234567890", S("ab1234567890"));
- test(S("abcde"), 2, 3, "12345678901234567890", S("ab12345678901234567890"));
- test(S("abcde"), 4, 0, "", S("abcde"));
- test(S("abcde"), 4, 0, "12345", S("abcd12345e"));
- test(S("abcde"), 4, 0, "1234567890", S("abcd1234567890e"));
- test(S("abcde"), 4, 0, "12345678901234567890", S("abcd12345678901234567890e"));
- test(S("abcde"), 4, 1, "", S("abcd"));
- test(S("abcde"), 4, 1, "12345", S("abcd12345"));
- test(S("abcde"), 4, 1, "1234567890", S("abcd1234567890"));
- test(S("abcde"), 4, 1, "12345678901234567890", S("abcd12345678901234567890"));
- test(S("abcde"), 5, 0, "", S("abcde"));
- test(S("abcde"), 5, 0, "12345", S("abcde12345"));
- test(S("abcde"), 5, 0, "1234567890", S("abcde1234567890"));
- test(S("abcde"), 5, 0, "12345678901234567890", S("abcde12345678901234567890"));
- test(S("abcdefghij"), 0, 0, "", S("abcdefghij"));
- test(S("abcdefghij"), 0, 0, "12345", S("12345abcdefghij"));
- test(S("abcdefghij"), 0, 0, "1234567890", S("1234567890abcdefghij"));
- test(S("abcdefghij"), 0, 0, "12345678901234567890", S("12345678901234567890abcdefghij"));
- test(S("abcdefghij"), 0, 1, "", S("bcdefghij"));
- test(S("abcdefghij"), 0, 1, "12345", S("12345bcdefghij"));
- test(S("abcdefghij"), 0, 1, "1234567890", S("1234567890bcdefghij"));
- test(S("abcdefghij"), 0, 1, "12345678901234567890", S("12345678901234567890bcdefghij"));
- test(S("abcdefghij"), 0, 5, "", S("fghij"));
- test(S("abcdefghij"), 0, 5, "12345", S("12345fghij"));
- test(S("abcdefghij"), 0, 5, "1234567890", S("1234567890fghij"));
- test(S("abcdefghij"), 0, 5, "12345678901234567890", S("12345678901234567890fghij"));
- test(S("abcdefghij"), 0, 9, "", S("j"));
- test(S("abcdefghij"), 0, 9, "12345", S("12345j"));
- test(S("abcdefghij"), 0, 9, "1234567890", S("1234567890j"));
- test(S("abcdefghij"), 0, 9, "12345678901234567890", S("12345678901234567890j"));
- test(S("abcdefghij"), 0, 10, "", S(""));
- test(S("abcdefghij"), 0, 10, "12345", S("12345"));
- test(S("abcdefghij"), 0, 10, "1234567890", S("1234567890"));
- test(S("abcdefghij"), 0, 10, "12345678901234567890", S("12345678901234567890"));
- test(S("abcdefghij"), 1, 0, "", S("abcdefghij"));
- test(S("abcdefghij"), 1, 0, "12345", S("a12345bcdefghij"));
- test(S("abcdefghij"), 1, 0, "1234567890", S("a1234567890bcdefghij"));
- test(S("abcdefghij"), 1, 0, "12345678901234567890", S("a12345678901234567890bcdefghij"));
- test(S("abcdefghij"), 1, 1, "", S("acdefghij"));
- test(S("abcdefghij"), 1, 1, "12345", S("a12345cdefghij"));
- test(S("abcdefghij"), 1, 1, "1234567890", S("a1234567890cdefghij"));
- test(S("abcdefghij"), 1, 1, "12345678901234567890", S("a12345678901234567890cdefghij"));
+TEST_CONSTEXPR_CXX20 bool test0() {
+ test(S(""), 0, 0, "", S(""));
+ test(S(""), 0, 0, "12345", S("12345"));
+ test(S(""), 0, 0, "1234567890", S("1234567890"));
+ test(S(""), 0, 0, "12345678901234567890", S("12345678901234567890"));
+ test(S("abcde"), 0, 0, "", S("abcde"));
+ test(S("abcde"), 0, 0, "12345", S("12345abcde"));
+ test(S("abcde"), 0, 0, "1234567890", S("1234567890abcde"));
+ test(S("abcde"), 0, 0, "12345678901234567890", S("12345678901234567890abcde"));
+ test(S("abcde"), 0, 1, "", S("bcde"));
+ test(S("abcde"), 0, 1, "12345", S("12345bcde"));
+ test(S("abcde"), 0, 1, "1234567890", S("1234567890bcde"));
+ test(S("abcde"), 0, 1, "12345678901234567890", S("12345678901234567890bcde"));
+ test(S("abcde"), 0, 2, "", S("cde"));
+ test(S("abcde"), 0, 2, "12345", S("12345cde"));
+ test(S("abcde"), 0, 2, "1234567890", S("1234567890cde"));
+ test(S("abcde"), 0, 2, "12345678901234567890", S("12345678901234567890cde"));
+ test(S("abcde"), 0, 4, "", S("e"));
+ test(S("abcde"), 0, 4, "12345", S("12345e"));
+ test(S("abcde"), 0, 4, "1234567890", S("1234567890e"));
+ test(S("abcde"), 0, 4, "12345678901234567890", S("12345678901234567890e"));
+ test(S("abcde"), 0, 5, "", S(""));
+ test(S("abcde"), 0, 5, "12345", S("12345"));
+ test(S("abcde"), 0, 5, "1234567890", S("1234567890"));
+ test(S("abcde"), 0, 5, "12345678901234567890", S("12345678901234567890"));
+ test(S("abcde"), 1, 0, "", S("abcde"));
+ test(S("abcde"), 1, 0, "12345", S("a12345bcde"));
+ test(S("abcde"), 1, 0, "1234567890", S("a1234567890bcde"));
+ test(S("abcde"), 1, 0, "12345678901234567890", S("a12345678901234567890bcde"));
+ test(S("abcde"), 1, 1, "", S("acde"));
+ test(S("abcde"), 1, 1, "12345", S("a12345cde"));
+ test(S("abcde"), 1, 1, "1234567890", S("a1234567890cde"));
+ test(S("abcde"), 1, 1, "12345678901234567890", S("a12345678901234567890cde"));
+ test(S("abcde"), 1, 2, "", S("ade"));
+ test(S("abcde"), 1, 2, "12345", S("a12345de"));
+ test(S("abcde"), 1, 2, "1234567890", S("a1234567890de"));
+ test(S("abcde"), 1, 2, "12345678901234567890", S("a12345678901234567890de"));
+ test(S("abcde"), 1, 3, "", S("ae"));
+ test(S("abcde"), 1, 3, "12345", S("a12345e"));
+ test(S("abcde"), 1, 3, "1234567890", S("a1234567890e"));
+ test(S("abcde"), 1, 3, "12345678901234567890", S("a12345678901234567890e"));
+ test(S("abcde"), 1, 4, "", S("a"));
+ test(S("abcde"), 1, 4, "12345", S("a12345"));
+ test(S("abcde"), 1, 4, "1234567890", S("a1234567890"));
+ test(S("abcde"), 1, 4, "12345678901234567890", S("a12345678901234567890"));
+ test(S("abcde"), 2, 0, "", S("abcde"));
+ test(S("abcde"), 2, 0, "12345", S("ab12345cde"));
+ test(S("abcde"), 2, 0, "1234567890", S("ab1234567890cde"));
+ test(S("abcde"), 2, 0, "12345678901234567890", S("ab12345678901234567890cde"));
+ test(S("abcde"), 2, 1, "", S("abde"));
+ test(S("abcde"), 2, 1, "12345", S("ab12345de"));
+ test(S("abcde"), 2, 1, "1234567890", S("ab1234567890de"));
+ test(S("abcde"), 2, 1, "12345678901234567890", S("ab12345678901234567890de"));
+ test(S("abcde"), 2, 2, "", S("abe"));
+ test(S("abcde"), 2, 2, "12345", S("ab12345e"));
+ test(S("abcde"), 2, 2, "1234567890", S("ab1234567890e"));
+ test(S("abcde"), 2, 2, "12345678901234567890", S("ab12345678901234567890e"));
+ test(S("abcde"), 2, 3, "", S("ab"));
+ test(S("abcde"), 2, 3, "12345", S("ab12345"));
+ test(S("abcde"), 2, 3, "1234567890", S("ab1234567890"));
+ test(S("abcde"), 2, 3, "12345678901234567890", S("ab12345678901234567890"));
+ test(S("abcde"), 4, 0, "", S("abcde"));
+ test(S("abcde"), 4, 0, "12345", S("abcd12345e"));
+ test(S("abcde"), 4, 0, "1234567890", S("abcd1234567890e"));
+ test(S("abcde"), 4, 0, "12345678901234567890", S("abcd12345678901234567890e"));
+ test(S("abcde"), 4, 1, "", S("abcd"));
+ test(S("abcde"), 4, 1, "12345", S("abcd12345"));
+ test(S("abcde"), 4, 1, "1234567890", S("abcd1234567890"));
+ test(S("abcde"), 4, 1, "12345678901234567890", S("abcd12345678901234567890"));
+ test(S("abcde"), 5, 0, "", S("abcde"));
+ test(S("abcde"), 5, 0, "12345", S("abcde12345"));
+ test(S("abcde"), 5, 0, "1234567890", S("abcde1234567890"));
+ test(S("abcde"), 5, 0, "12345678901234567890", S("abcde12345678901234567890"));
+ test(S("abcdefghij"), 0, 0, "", S("abcdefghij"));
+ test(S("abcdefghij"), 0, 0, "12345", S("12345abcdefghij"));
+ test(S("abcdefghij"), 0, 0, "1234567890", S("1234567890abcdefghij"));
+ test(S("abcdefghij"), 0, 0, "12345678901234567890", S("12345678901234567890abcdefghij"));
+ test(S("abcdefghij"), 0, 1, "", S("bcdefghij"));
+ test(S("abcdefghij"), 0, 1, "12345", S("12345bcdefghij"));
+ test(S("abcdefghij"), 0, 1, "1234567890", S("1234567890bcdefghij"));
+ test(S("abcdefghij"), 0, 1, "12345678901234567890", S("12345678901234567890bcdefghij"));
+ test(S("abcdefghij"), 0, 5, "", S("fghij"));
+ test(S("abcdefghij"), 0, 5, "12345", S("12345fghij"));
+ test(S("abcdefghij"), 0, 5, "1234567890", S("1234567890fghij"));
+ test(S("abcdefghij"), 0, 5, "12345678901234567890", S("12345678901234567890fghij"));
+ test(S("abcdefghij"), 0, 9, "", S("j"));
+ test(S("abcdefghij"), 0, 9, "12345", S("12345j"));
+ test(S("abcdefghij"), 0, 9, "1234567890", S("1234567890j"));
+ test(S("abcdefghij"), 0, 9, "12345678901234567890", S("12345678901234567890j"));
+ test(S("abcdefghij"), 0, 10, "", S(""));
+ test(S("abcdefghij"), 0, 10, "12345", S("12345"));
+ test(S("abcdefghij"), 0, 10, "1234567890", S("1234567890"));
+ test(S("abcdefghij"), 0, 10, "12345678901234567890", S("12345678901234567890"));
+ test(S("abcdefghij"), 1, 0, "", S("abcdefghij"));
+ test(S("abcdefghij"), 1, 0, "12345", S("a12345bcdefghij"));
+ test(S("abcdefghij"), 1, 0, "1234567890", S("a1234567890bcdefghij"));
+ test(S("abcdefghij"), 1, 0, "12345678901234567890", S("a12345678901234567890bcdefghij"));
+ test(S("abcdefghij"), 1, 1, "", S("acdefghij"));
+ test(S("abcdefghij"), 1, 1, "12345", S("a12345cdefghij"));
+ test(S("abcdefghij"), 1, 1, "1234567890", S("a1234567890cdefghij"));
+ test(S("abcdefghij"), 1, 1, "12345678901234567890", S("a12345678901234567890cdefghij"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test1()
-{
- test(S("abcdefghij"), 1, 4, "", S("afghij"));
- test(S("abcdefghij"), 1, 4, "12345", S("a12345fghij"));
- test(S("abcdefghij"), 1, 4, "1234567890", S("a1234567890fghij"));
- test(S("abcdefghij"), 1, 4, "12345678901234567890", S("a12345678901234567890fghij"));
- test(S("abcdefghij"), 1, 8, "", S("aj"));
- test(S("abcdefghij"), 1, 8, "12345", S("a12345j"));
- test(S("abcdefghij"), 1, 8, "1234567890", S("a1234567890j"));
- test(S("abcdefghij"), 1, 8, "12345678901234567890", S("a12345678901234567890j"));
- test(S("abcdefghij"), 1, 9, "", S("a"));
- test(S("abcdefghij"), 1, 9, "12345", S("a12345"));
- test(S("abcdefghij"), 1, 9, "1234567890", S("a1234567890"));
- test(S("abcdefghij"), 1, 9, "12345678901234567890", S("a12345678901234567890"));
- test(S("abcdefghij"), 5, 0, "", S("abcdefghij"));
- test(S("abcdefghij"), 5, 0, "12345", S("abcde12345fghij"));
- test(S("abcdefghij"), 5, 0, "1234567890", S("abcde1234567890fghij"));
- test(S("abcdefghij"), 5, 0, "12345678901234567890", S("abcde12345678901234567890fghij"));
- test(S("abcdefghij"), 5, 1, "", S("abcdeghij"));
- test(S("abcdefghij"), 5, 1, "12345", S("abcde12345ghij"));
- test(S("abcdefghij"), 5, 1, "1234567890", S("abcde1234567890ghij"));
- test(S("abcdefghij"), 5, 1, "12345678901234567890", S("abcde12345678901234567890ghij"));
- test(S("abcdefghij"), 5, 2, "", S("abcdehij"));
- test(S("abcdefghij"), 5, 2, "12345", S("abcde12345hij"));
- test(S("abcdefghij"), 5, 2, "1234567890", S("abcde1234567890hij"));
- test(S("abcdefghij"), 5, 2, "12345678901234567890", S("abcde12345678901234567890hij"));
- test(S("abcdefghij"), 5, 4, "", S("abcdej"));
- test(S("abcdefghij"), 5, 4, "12345", S("abcde12345j"));
- test(S("abcdefghij"), 5, 4, "1234567890", S("abcde1234567890j"));
- test(S("abcdefghij"), 5, 4, "12345678901234567890", S("abcde12345678901234567890j"));
- test(S("abcdefghij"), 5, 5, "", S("abcde"));
- test(S("abcdefghij"), 5, 5, "12345", S("abcde12345"));
- test(S("abcdefghij"), 5, 5, "1234567890", S("abcde1234567890"));
- test(S("abcdefghij"), 5, 5, "12345678901234567890", S("abcde12345678901234567890"));
- test(S("abcdefghij"), 9, 0, "", S("abcdefghij"));
- test(S("abcdefghij"), 9, 0, "12345", S("abcdefghi12345j"));
- test(S("abcdefghij"), 9, 0, "1234567890", S("abcdefghi1234567890j"));
- test(S("abcdefghij"), 9, 0, "12345678901234567890", S("abcdefghi12345678901234567890j"));
- test(S("abcdefghij"), 9, 1, "", S("abcdefghi"));
- test(S("abcdefghij"), 9, 1, "12345", S("abcdefghi12345"));
- test(S("abcdefghij"), 9, 1, "1234567890", S("abcdefghi1234567890"));
- test(S("abcdefghij"), 9, 1, "12345678901234567890", S("abcdefghi12345678901234567890"));
- test(S("abcdefghij"), 10, 0, "", S("abcdefghij"));
- test(S("abcdefghij"), 10, 0, "12345", S("abcdefghij12345"));
- test(S("abcdefghij"), 10, 0, "1234567890", S("abcdefghij1234567890"));
- test(S("abcdefghij"), 10, 0, "12345678901234567890", S("abcdefghij12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 0, 0, "", S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, "12345", S("12345abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, "1234567890", S("1234567890abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, "12345678901234567890", S("12345678901234567890abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, "", S("bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, "12345", S("12345bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, "1234567890", S("1234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, "12345678901234567890", S("12345678901234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, "", S("klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, "12345", S("12345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, "1234567890", S("1234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, "12345678901234567890", S("12345678901234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 19, "", S("t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, "12345", S("12345t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, "1234567890", S("1234567890t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, "12345678901234567890", S("12345678901234567890t"));
- test(S("abcdefghijklmnopqrst"), 0, 20, "", S(""));
- test(S("abcdefghijklmnopqrst"), 0, 20, "12345", S("12345"));
- test(S("abcdefghijklmnopqrst"), 0, 20, "1234567890", S("1234567890"));
- test(S("abcdefghijklmnopqrst"), 0, 20, "12345678901234567890", S("12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 1, 0, "", S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, "12345", S("a12345bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, "1234567890", S("a1234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, "12345678901234567890", S("a12345678901234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, "", S("acdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, "12345", S("a12345cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, "1234567890", S("a1234567890cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, "12345678901234567890", S("a12345678901234567890cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, "", S("aklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, "12345", S("a12345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, "1234567890", S("a1234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, "12345678901234567890", S("a12345678901234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 18, "", S("at"));
- test(S("abcdefghijklmnopqrst"), 1, 18, "12345", S("a12345t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, "1234567890", S("a1234567890t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, "12345678901234567890", S("a12345678901234567890t"));
- test(S("abcdefghijklmnopqrst"), 1, 19, "", S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 19, "12345", S("a12345"));
- test(S("abcdefghijklmnopqrst"), 1, 19, "1234567890", S("a1234567890"));
- test(S("abcdefghijklmnopqrst"), 1, 19, "12345678901234567890", S("a12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 10, 0, "", S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, "12345", S("abcdefghij12345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, "1234567890", S("abcdefghij1234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, "12345678901234567890", S("abcdefghij12345678901234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, "", S("abcdefghijlmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, "12345", S("abcdefghij12345lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, "1234567890", S("abcdefghij1234567890lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, "12345678901234567890", S("abcdefghij12345678901234567890lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, "", S("abcdefghijpqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, "12345", S("abcdefghij12345pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, "1234567890", S("abcdefghij1234567890pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, "12345678901234567890", S("abcdefghij12345678901234567890pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 9, "", S("abcdefghijt"));
- test(S("abcdefghijklmnopqrst"), 10, 9, "12345", S("abcdefghij12345t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, "1234567890", S("abcdefghij1234567890t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, "12345678901234567890", S("abcdefghij12345678901234567890t"));
+TEST_CONSTEXPR_CXX20 bool test1() {
+ test(S("abcdefghij"), 1, 4, "", S("afghij"));
+ test(S("abcdefghij"), 1, 4, "12345", S("a12345fghij"));
+ test(S("abcdefghij"), 1, 4, "1234567890", S("a1234567890fghij"));
+ test(S("abcdefghij"), 1, 4, "12345678901234567890", S("a12345678901234567890fghij"));
+ test(S("abcdefghij"), 1, 8, "", S("aj"));
+ test(S("abcdefghij"), 1, 8, "12345", S("a12345j"));
+ test(S("abcdefghij"), 1, 8, "1234567890", S("a1234567890j"));
+ test(S("abcdefghij"), 1, 8, "12345678901234567890", S("a12345678901234567890j"));
+ test(S("abcdefghij"), 1, 9, "", S("a"));
+ test(S("abcdefghij"), 1, 9, "12345", S("a12345"));
+ test(S("abcdefghij"), 1, 9, "1234567890", S("a1234567890"));
+ test(S("abcdefghij"), 1, 9, "12345678901234567890", S("a12345678901234567890"));
+ test(S("abcdefghij"), 5, 0, "", S("abcdefghij"));
+ test(S("abcdefghij"), 5, 0, "12345", S("abcde12345fghij"));
+ test(S("abcdefghij"), 5, 0, "1234567890", S("abcde1234567890fghij"));
+ test(S("abcdefghij"), 5, 0, "12345678901234567890", S("abcde12345678901234567890fghij"));
+ test(S("abcdefghij"), 5, 1, "", S("abcdeghij"));
+ test(S("abcdefghij"), 5, 1, "12345", S("abcde12345ghij"));
+ test(S("abcdefghij"), 5, 1, "1234567890", S("abcde1234567890ghij"));
+ test(S("abcdefghij"), 5, 1, "12345678901234567890", S("abcde12345678901234567890ghij"));
+ test(S("abcdefghij"), 5, 2, "", S("abcdehij"));
+ test(S("abcdefghij"), 5, 2, "12345", S("abcde12345hij"));
+ test(S("abcdefghij"), 5, 2, "1234567890", S("abcde1234567890hij"));
+ test(S("abcdefghij"), 5, 2, "12345678901234567890", S("abcde12345678901234567890hij"));
+ test(S("abcdefghij"), 5, 4, "", S("abcdej"));
+ test(S("abcdefghij"), 5, 4, "12345", S("abcde12345j"));
+ test(S("abcdefghij"), 5, 4, "1234567890", S("abcde1234567890j"));
+ test(S("abcdefghij"), 5, 4, "12345678901234567890", S("abcde12345678901234567890j"));
+ test(S("abcdefghij"), 5, 5, "", S("abcde"));
+ test(S("abcdefghij"), 5, 5, "12345", S("abcde12345"));
+ test(S("abcdefghij"), 5, 5, "1234567890", S("abcde1234567890"));
+ test(S("abcdefghij"), 5, 5, "12345678901234567890", S("abcde12345678901234567890"));
+ test(S("abcdefghij"), 9, 0, "", S("abcdefghij"));
+ test(S("abcdefghij"), 9, 0, "12345", S("abcdefghi12345j"));
+ test(S("abcdefghij"), 9, 0, "1234567890", S("abcdefghi1234567890j"));
+ test(S("abcdefghij"), 9, 0, "12345678901234567890", S("abcdefghi12345678901234567890j"));
+ test(S("abcdefghij"), 9, 1, "", S("abcdefghi"));
+ test(S("abcdefghij"), 9, 1, "12345", S("abcdefghi12345"));
+ test(S("abcdefghij"), 9, 1, "1234567890", S("abcdefghi1234567890"));
+ test(S("abcdefghij"), 9, 1, "12345678901234567890", S("abcdefghi12345678901234567890"));
+ test(S("abcdefghij"), 10, 0, "", S("abcdefghij"));
+ test(S("abcdefghij"), 10, 0, "12345", S("abcdefghij12345"));
+ test(S("abcdefghij"), 10, 0, "1234567890", S("abcdefghij1234567890"));
+ test(S("abcdefghij"), 10, 0, "12345678901234567890", S("abcdefghij12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, "", S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, "12345", S("12345abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, "1234567890", S("1234567890abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, "12345678901234567890", S("12345678901234567890abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, "", S("bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, "12345", S("12345bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, "1234567890", S("1234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, "12345678901234567890", S("12345678901234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, "", S("klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, "12345", S("12345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, "1234567890", S("1234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, "12345678901234567890", S("12345678901234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, "", S("t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, "12345", S("12345t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, "1234567890", S("1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, "12345678901234567890", S("12345678901234567890t"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, "", S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 20, "12345", S("12345"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, "1234567890", S("1234567890"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, "12345678901234567890", S("12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, "", S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, "12345", S("a12345bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, "1234567890", S("a1234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, "12345678901234567890", S("a12345678901234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, "", S("acdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, "12345", S("a12345cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, "1234567890", S("a1234567890cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, "12345678901234567890", S("a12345678901234567890cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, "", S("aklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, "12345", S("a12345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, "1234567890", S("a1234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, "12345678901234567890", S("a12345678901234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, "", S("at"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, "12345", S("a12345t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, "1234567890", S("a1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, "12345678901234567890", S("a12345678901234567890t"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, "", S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, "12345", S("a12345"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, "1234567890", S("a1234567890"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, "12345678901234567890", S("a12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, "", S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, "12345", S("abcdefghij12345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, "1234567890", S("abcdefghij1234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, "12345678901234567890", S("abcdefghij12345678901234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, "", S("abcdefghijlmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, "12345", S("abcdefghij12345lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, "1234567890", S("abcdefghij1234567890lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, "12345678901234567890", S("abcdefghij12345678901234567890lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, "", S("abcdefghijpqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, "12345", S("abcdefghij12345pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, "1234567890", S("abcdefghij1234567890pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, "12345678901234567890", S("abcdefghij12345678901234567890pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, "", S("abcdefghijt"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, "12345", S("abcdefghij12345t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, "1234567890", S("abcdefghij1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, "12345678901234567890", S("abcdefghij12345678901234567890t"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test2()
-{
- test(S("abcdefghijklmnopqrst"), 10, 10, "", S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 10, "12345", S("abcdefghij12345"));
- test(S("abcdefghijklmnopqrst"), 10, 10, "1234567890", S("abcdefghij1234567890"));
- test(S("abcdefghijklmnopqrst"), 10, 10, "12345678901234567890", S("abcdefghij12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 19, 0, "", S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, 0, "12345", S("abcdefghijklmnopqrs12345t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, "1234567890", S("abcdefghijklmnopqrs1234567890t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, "12345678901234567890", S("abcdefghijklmnopqrs12345678901234567890t"));
- test(S("abcdefghijklmnopqrst"), 19, 1, "", S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 1, "12345", S("abcdefghijklmnopqrs12345"));
- test(S("abcdefghijklmnopqrst"), 19, 1, "1234567890", S("abcdefghijklmnopqrs1234567890"));
- test(S("abcdefghijklmnopqrst"), 19, 1, "12345678901234567890", S("abcdefghijklmnopqrs12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 20, 0, "", S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 0, "12345", S("abcdefghijklmnopqrst12345"));
- test(S("abcdefghijklmnopqrst"), 20, 0, "1234567890", S("abcdefghijklmnopqrst1234567890"));
- test(S("abcdefghijklmnopqrst"), 20, 0, "12345678901234567890", S("abcdefghijklmnopqrst12345678901234567890"));
+TEST_CONSTEXPR_CXX20 bool test2() {
+ test(S("abcdefghijklmnopqrst"), 10, 10, "", S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, "12345", S("abcdefghij12345"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, "1234567890", S("abcdefghij1234567890"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, "12345678901234567890", S("abcdefghij12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, "", S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, "12345", S("abcdefghijklmnopqrs12345t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, "1234567890", S("abcdefghijklmnopqrs1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, "12345678901234567890", S("abcdefghijklmnopqrs12345678901234567890t"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, "", S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, "12345", S("abcdefghijklmnopqrs12345"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, "1234567890", S("abcdefghijklmnopqrs1234567890"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, "12345678901234567890", S("abcdefghijklmnopqrs12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, "", S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, "12345", S("abcdefghijklmnopqrst12345"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, "1234567890", S("abcdefghijklmnopqrst1234567890"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, "12345678901234567890", S("abcdefghijklmnopqrst12345678901234567890"));
- { // test replacing into self
- S s_short = "123/";
- S s_long = "Lorem ipsum dolor sit amet, consectetur/";
+ { // test replacing into self
+ S s_short = "123/";
+ S s_long = "Lorem ipsum dolor sit amet, consectetur/";
- s_short.replace(s_short.begin(), s_short.begin(), s_short.c_str());
- assert(s_short == "123/123/");
- s_short.replace(s_short.begin(), s_short.begin(), s_short.c_str());
- assert(s_short == "123/123/123/123/");
- s_short.replace(s_short.begin(), s_short.begin(), s_short.c_str());
- assert(s_short == "123/123/123/123/123/123/123/123/");
+ s_short.replace(s_short.begin(), s_short.begin(), s_short.c_str());
+ assert(s_short == "123/123/");
+ s_short.replace(s_short.begin(), s_short.begin(), s_short.c_str());
+ assert(s_short == "123/123/123/123/");
+ s_short.replace(s_short.begin(), s_short.begin(), s_short.c_str());
+ assert(s_short == "123/123/123/123/123/123/123/123/");
- s_long.replace(s_long.begin(), s_long.begin(), s_long.c_str());
- assert(s_long == "Lorem ipsum dolor sit amet, consectetur/Lorem ipsum dolor sit amet, consectetur/");
- }
+ s_long.replace(s_long.begin(), s_long.begin(), s_long.c_str());
+ assert(s_long == "Lorem ipsum dolor sit amet, consectetur/Lorem ipsum dolor sit amet, consectetur/");
+ }
- return true;
+ return true;
}
TEST_CONSTEXPR_CXX20 void test() {
@@ -305,17 +301,16 @@ TEST_CONSTEXPR_CXX20 void test() {
test0<S>();
test1<S>();
test2<S>();
-#if TEST_STD_VER > 17
+# if TEST_STD_VER > 17
static_assert(test0<S>());
static_assert(test1<S>());
static_assert(test2<S>());
-#endif
+# endif
}
#endif
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
return 0;
diff --git a/libcxx/test/std/strings/basic.string/string.modifiers/string_replace/iter_iter_pointer_size.pass.cpp b/libcxx/test/std/strings/basic.string/string.modifiers/string_replace/iter_iter_pointer_size.pass.cpp
index 81d7d8ba8db6ee7..45d57c793a3352f 100644
--- a/libcxx/test/std/strings/basic.string/string.modifiers/string_replace/iter_iter_pointer_size.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.modifiers/string_replace/iter_iter_pointer_size.pass.cpp
@@ -20,945 +20,939 @@
template <class S>
TEST_CONSTEXPR_CXX20 void
-test(S s, typename S::size_type pos1, typename S::size_type n1, const typename S::value_type* str,
- typename S::size_type n2, S expected)
-{
- typename S::size_type old_size = s.size();
- typename S::const_iterator first = s.begin() + pos1;
- typename S::const_iterator last = s.begin() + pos1 + n1;
- typename S::size_type xlen = last - first;
- s.replace(first, last, str, n2);
- LIBCPP_ASSERT(s.__invariants());
- assert(s == expected);
- typename S::size_type rlen = n2;
- assert(s.size() == old_size - xlen + rlen);
+test(S s,
+ typename S::size_type pos1,
+ typename S::size_type n1,
+ const typename S::value_type* str,
+ typename S::size_type n2,
+ S expected) {
+ typename S::size_type old_size = s.size();
+ typename S::const_iterator first = s.begin() + pos1;
+ typename S::const_iterator last = s.begin() + pos1 + n1;
+ typename S::size_type xlen = last - first;
+ s.replace(first, last, str, n2);
+ LIBCPP_ASSERT(s.__invariants());
+ assert(s == expected);
+ typename S::size_type rlen = n2;
+ assert(s.size() == old_size - xlen + rlen);
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test0()
-{
- test(S(""), 0, 0, "", 0, S(""));
- test(S(""), 0, 0, "12345", 0, S(""));
- test(S(""), 0, 0, "12345", 1, S("1"));
- test(S(""), 0, 0, "12345", 2, S("12"));
- test(S(""), 0, 0, "12345", 4, S("1234"));
- test(S(""), 0, 0, "12345", 5, S("12345"));
- test(S(""), 0, 0, "1234567890", 0, S(""));
- test(S(""), 0, 0, "1234567890", 1, S("1"));
- test(S(""), 0, 0, "1234567890", 5, S("12345"));
- test(S(""), 0, 0, "1234567890", 9, S("123456789"));
- test(S(""), 0, 0, "1234567890", 10, S("1234567890"));
- test(S(""), 0, 0, "12345678901234567890", 0, S(""));
- test(S(""), 0, 0, "12345678901234567890", 1, S("1"));
- test(S(""), 0, 0, "12345678901234567890", 10, S("1234567890"));
- test(S(""), 0, 0, "12345678901234567890", 19, S("1234567890123456789"));
- test(S(""), 0, 0, "12345678901234567890", 20, S("12345678901234567890"));
- test(S("abcde"), 0, 0, "", 0, S("abcde"));
- test(S("abcde"), 0, 0, "12345", 0, S("abcde"));
- test(S("abcde"), 0, 0, "12345", 1, S("1abcde"));
- test(S("abcde"), 0, 0, "12345", 2, S("12abcde"));
- test(S("abcde"), 0, 0, "12345", 4, S("1234abcde"));
- test(S("abcde"), 0, 0, "12345", 5, S("12345abcde"));
- test(S("abcde"), 0, 0, "1234567890", 0, S("abcde"));
- test(S("abcde"), 0, 0, "1234567890", 1, S("1abcde"));
- test(S("abcde"), 0, 0, "1234567890", 5, S("12345abcde"));
- test(S("abcde"), 0, 0, "1234567890", 9, S("123456789abcde"));
- test(S("abcde"), 0, 0, "1234567890", 10, S("1234567890abcde"));
- test(S("abcde"), 0, 0, "12345678901234567890", 0, S("abcde"));
- test(S("abcde"), 0, 0, "12345678901234567890", 1, S("1abcde"));
- test(S("abcde"), 0, 0, "12345678901234567890", 10, S("1234567890abcde"));
- test(S("abcde"), 0, 0, "12345678901234567890", 19, S("1234567890123456789abcde"));
- test(S("abcde"), 0, 0, "12345678901234567890", 20, S("12345678901234567890abcde"));
- test(S("abcde"), 0, 1, "", 0, S("bcde"));
- test(S("abcde"), 0, 1, "12345", 0, S("bcde"));
- test(S("abcde"), 0, 1, "12345", 1, S("1bcde"));
- test(S("abcde"), 0, 1, "12345", 2, S("12bcde"));
- test(S("abcde"), 0, 1, "12345", 4, S("1234bcde"));
- test(S("abcde"), 0, 1, "12345", 5, S("12345bcde"));
- test(S("abcde"), 0, 1, "1234567890", 0, S("bcde"));
- test(S("abcde"), 0, 1, "1234567890", 1, S("1bcde"));
- test(S("abcde"), 0, 1, "1234567890", 5, S("12345bcde"));
- test(S("abcde"), 0, 1, "1234567890", 9, S("123456789bcde"));
- test(S("abcde"), 0, 1, "1234567890", 10, S("1234567890bcde"));
- test(S("abcde"), 0, 1, "12345678901234567890", 0, S("bcde"));
- test(S("abcde"), 0, 1, "12345678901234567890", 1, S("1bcde"));
- test(S("abcde"), 0, 1, "12345678901234567890", 10, S("1234567890bcde"));
- test(S("abcde"), 0, 1, "12345678901234567890", 19, S("1234567890123456789bcde"));
- test(S("abcde"), 0, 1, "12345678901234567890", 20, S("12345678901234567890bcde"));
- test(S("abcde"), 0, 2, "", 0, S("cde"));
- test(S("abcde"), 0, 2, "12345", 0, S("cde"));
- test(S("abcde"), 0, 2, "12345", 1, S("1cde"));
- test(S("abcde"), 0, 2, "12345", 2, S("12cde"));
- test(S("abcde"), 0, 2, "12345", 4, S("1234cde"));
- test(S("abcde"), 0, 2, "12345", 5, S("12345cde"));
- test(S("abcde"), 0, 2, "1234567890", 0, S("cde"));
- test(S("abcde"), 0, 2, "1234567890", 1, S("1cde"));
- test(S("abcde"), 0, 2, "1234567890", 5, S("12345cde"));
- test(S("abcde"), 0, 2, "1234567890", 9, S("123456789cde"));
- test(S("abcde"), 0, 2, "1234567890", 10, S("1234567890cde"));
- test(S("abcde"), 0, 2, "12345678901234567890", 0, S("cde"));
- test(S("abcde"), 0, 2, "12345678901234567890", 1, S("1cde"));
- test(S("abcde"), 0, 2, "12345678901234567890", 10, S("1234567890cde"));
- test(S("abcde"), 0, 2, "12345678901234567890", 19, S("1234567890123456789cde"));
- test(S("abcde"), 0, 2, "12345678901234567890", 20, S("12345678901234567890cde"));
- test(S("abcde"), 0, 4, "", 0, S("e"));
- test(S("abcde"), 0, 4, "12345", 0, S("e"));
- test(S("abcde"), 0, 4, "12345", 1, S("1e"));
- test(S("abcde"), 0, 4, "12345", 2, S("12e"));
- test(S("abcde"), 0, 4, "12345", 4, S("1234e"));
- test(S("abcde"), 0, 4, "12345", 5, S("12345e"));
- test(S("abcde"), 0, 4, "1234567890", 0, S("e"));
- test(S("abcde"), 0, 4, "1234567890", 1, S("1e"));
- test(S("abcde"), 0, 4, "1234567890", 5, S("12345e"));
- test(S("abcde"), 0, 4, "1234567890", 9, S("123456789e"));
- test(S("abcde"), 0, 4, "1234567890", 10, S("1234567890e"));
- test(S("abcde"), 0, 4, "12345678901234567890", 0, S("e"));
- test(S("abcde"), 0, 4, "12345678901234567890", 1, S("1e"));
- test(S("abcde"), 0, 4, "12345678901234567890", 10, S("1234567890e"));
- test(S("abcde"), 0, 4, "12345678901234567890", 19, S("1234567890123456789e"));
- test(S("abcde"), 0, 4, "12345678901234567890", 20, S("12345678901234567890e"));
- test(S("abcde"), 0, 5, "", 0, S(""));
- test(S("abcde"), 0, 5, "12345", 0, S(""));
- test(S("abcde"), 0, 5, "12345", 1, S("1"));
- test(S("abcde"), 0, 5, "12345", 2, S("12"));
- test(S("abcde"), 0, 5, "12345", 4, S("1234"));
- test(S("abcde"), 0, 5, "12345", 5, S("12345"));
- test(S("abcde"), 0, 5, "1234567890", 0, S(""));
- test(S("abcde"), 0, 5, "1234567890", 1, S("1"));
- test(S("abcde"), 0, 5, "1234567890", 5, S("12345"));
- test(S("abcde"), 0, 5, "1234567890", 9, S("123456789"));
- test(S("abcde"), 0, 5, "1234567890", 10, S("1234567890"));
- test(S("abcde"), 0, 5, "12345678901234567890", 0, S(""));
- test(S("abcde"), 0, 5, "12345678901234567890", 1, S("1"));
- test(S("abcde"), 0, 5, "12345678901234567890", 10, S("1234567890"));
- test(S("abcde"), 0, 5, "12345678901234567890", 19, S("1234567890123456789"));
- test(S("abcde"), 0, 5, "12345678901234567890", 20, S("12345678901234567890"));
- test(S("abcde"), 1, 0, "", 0, S("abcde"));
- test(S("abcde"), 1, 0, "12345", 0, S("abcde"));
- test(S("abcde"), 1, 0, "12345", 1, S("a1bcde"));
- test(S("abcde"), 1, 0, "12345", 2, S("a12bcde"));
+TEST_CONSTEXPR_CXX20 bool test0() {
+ test(S(""), 0, 0, "", 0, S(""));
+ test(S(""), 0, 0, "12345", 0, S(""));
+ test(S(""), 0, 0, "12345", 1, S("1"));
+ test(S(""), 0, 0, "12345", 2, S("12"));
+ test(S(""), 0, 0, "12345", 4, S("1234"));
+ test(S(""), 0, 0, "12345", 5, S("12345"));
+ test(S(""), 0, 0, "1234567890", 0, S(""));
+ test(S(""), 0, 0, "1234567890", 1, S("1"));
+ test(S(""), 0, 0, "1234567890", 5, S("12345"));
+ test(S(""), 0, 0, "1234567890", 9, S("123456789"));
+ test(S(""), 0, 0, "1234567890", 10, S("1234567890"));
+ test(S(""), 0, 0, "12345678901234567890", 0, S(""));
+ test(S(""), 0, 0, "12345678901234567890", 1, S("1"));
+ test(S(""), 0, 0, "12345678901234567890", 10, S("1234567890"));
+ test(S(""), 0, 0, "12345678901234567890", 19, S("1234567890123456789"));
+ test(S(""), 0, 0, "12345678901234567890", 20, S("12345678901234567890"));
+ test(S("abcde"), 0, 0, "", 0, S("abcde"));
+ test(S("abcde"), 0, 0, "12345", 0, S("abcde"));
+ test(S("abcde"), 0, 0, "12345", 1, S("1abcde"));
+ test(S("abcde"), 0, 0, "12345", 2, S("12abcde"));
+ test(S("abcde"), 0, 0, "12345", 4, S("1234abcde"));
+ test(S("abcde"), 0, 0, "12345", 5, S("12345abcde"));
+ test(S("abcde"), 0, 0, "1234567890", 0, S("abcde"));
+ test(S("abcde"), 0, 0, "1234567890", 1, S("1abcde"));
+ test(S("abcde"), 0, 0, "1234567890", 5, S("12345abcde"));
+ test(S("abcde"), 0, 0, "1234567890", 9, S("123456789abcde"));
+ test(S("abcde"), 0, 0, "1234567890", 10, S("1234567890abcde"));
+ test(S("abcde"), 0, 0, "12345678901234567890", 0, S("abcde"));
+ test(S("abcde"), 0, 0, "12345678901234567890", 1, S("1abcde"));
+ test(S("abcde"), 0, 0, "12345678901234567890", 10, S("1234567890abcde"));
+ test(S("abcde"), 0, 0, "12345678901234567890", 19, S("1234567890123456789abcde"));
+ test(S("abcde"), 0, 0, "12345678901234567890", 20, S("12345678901234567890abcde"));
+ test(S("abcde"), 0, 1, "", 0, S("bcde"));
+ test(S("abcde"), 0, 1, "12345", 0, S("bcde"));
+ test(S("abcde"), 0, 1, "12345", 1, S("1bcde"));
+ test(S("abcde"), 0, 1, "12345", 2, S("12bcde"));
+ test(S("abcde"), 0, 1, "12345", 4, S("1234bcde"));
+ test(S("abcde"), 0, 1, "12345", 5, S("12345bcde"));
+ test(S("abcde"), 0, 1, "1234567890", 0, S("bcde"));
+ test(S("abcde"), 0, 1, "1234567890", 1, S("1bcde"));
+ test(S("abcde"), 0, 1, "1234567890", 5, S("12345bcde"));
+ test(S("abcde"), 0, 1, "1234567890", 9, S("123456789bcde"));
+ test(S("abcde"), 0, 1, "1234567890", 10, S("1234567890bcde"));
+ test(S("abcde"), 0, 1, "12345678901234567890", 0, S("bcde"));
+ test(S("abcde"), 0, 1, "12345678901234567890", 1, S("1bcde"));
+ test(S("abcde"), 0, 1, "12345678901234567890", 10, S("1234567890bcde"));
+ test(S("abcde"), 0, 1, "12345678901234567890", 19, S("1234567890123456789bcde"));
+ test(S("abcde"), 0, 1, "12345678901234567890", 20, S("12345678901234567890bcde"));
+ test(S("abcde"), 0, 2, "", 0, S("cde"));
+ test(S("abcde"), 0, 2, "12345", 0, S("cde"));
+ test(S("abcde"), 0, 2, "12345", 1, S("1cde"));
+ test(S("abcde"), 0, 2, "12345", 2, S("12cde"));
+ test(S("abcde"), 0, 2, "12345", 4, S("1234cde"));
+ test(S("abcde"), 0, 2, "12345", 5, S("12345cde"));
+ test(S("abcde"), 0, 2, "1234567890", 0, S("cde"));
+ test(S("abcde"), 0, 2, "1234567890", 1, S("1cde"));
+ test(S("abcde"), 0, 2, "1234567890", 5, S("12345cde"));
+ test(S("abcde"), 0, 2, "1234567890", 9, S("123456789cde"));
+ test(S("abcde"), 0, 2, "1234567890", 10, S("1234567890cde"));
+ test(S("abcde"), 0, 2, "12345678901234567890", 0, S("cde"));
+ test(S("abcde"), 0, 2, "12345678901234567890", 1, S("1cde"));
+ test(S("abcde"), 0, 2, "12345678901234567890", 10, S("1234567890cde"));
+ test(S("abcde"), 0, 2, "12345678901234567890", 19, S("1234567890123456789cde"));
+ test(S("abcde"), 0, 2, "12345678901234567890", 20, S("12345678901234567890cde"));
+ test(S("abcde"), 0, 4, "", 0, S("e"));
+ test(S("abcde"), 0, 4, "12345", 0, S("e"));
+ test(S("abcde"), 0, 4, "12345", 1, S("1e"));
+ test(S("abcde"), 0, 4, "12345", 2, S("12e"));
+ test(S("abcde"), 0, 4, "12345", 4, S("1234e"));
+ test(S("abcde"), 0, 4, "12345", 5, S("12345e"));
+ test(S("abcde"), 0, 4, "1234567890", 0, S("e"));
+ test(S("abcde"), 0, 4, "1234567890", 1, S("1e"));
+ test(S("abcde"), 0, 4, "1234567890", 5, S("12345e"));
+ test(S("abcde"), 0, 4, "1234567890", 9, S("123456789e"));
+ test(S("abcde"), 0, 4, "1234567890", 10, S("1234567890e"));
+ test(S("abcde"), 0, 4, "12345678901234567890", 0, S("e"));
+ test(S("abcde"), 0, 4, "12345678901234567890", 1, S("1e"));
+ test(S("abcde"), 0, 4, "12345678901234567890", 10, S("1234567890e"));
+ test(S("abcde"), 0, 4, "12345678901234567890", 19, S("1234567890123456789e"));
+ test(S("abcde"), 0, 4, "12345678901234567890", 20, S("12345678901234567890e"));
+ test(S("abcde"), 0, 5, "", 0, S(""));
+ test(S("abcde"), 0, 5, "12345", 0, S(""));
+ test(S("abcde"), 0, 5, "12345", 1, S("1"));
+ test(S("abcde"), 0, 5, "12345", 2, S("12"));
+ test(S("abcde"), 0, 5, "12345", 4, S("1234"));
+ test(S("abcde"), 0, 5, "12345", 5, S("12345"));
+ test(S("abcde"), 0, 5, "1234567890", 0, S(""));
+ test(S("abcde"), 0, 5, "1234567890", 1, S("1"));
+ test(S("abcde"), 0, 5, "1234567890", 5, S("12345"));
+ test(S("abcde"), 0, 5, "1234567890", 9, S("123456789"));
+ test(S("abcde"), 0, 5, "1234567890", 10, S("1234567890"));
+ test(S("abcde"), 0, 5, "12345678901234567890", 0, S(""));
+ test(S("abcde"), 0, 5, "12345678901234567890", 1, S("1"));
+ test(S("abcde"), 0, 5, "12345678901234567890", 10, S("1234567890"));
+ test(S("abcde"), 0, 5, "12345678901234567890", 19, S("1234567890123456789"));
+ test(S("abcde"), 0, 5, "12345678901234567890", 20, S("12345678901234567890"));
+ test(S("abcde"), 1, 0, "", 0, S("abcde"));
+ test(S("abcde"), 1, 0, "12345", 0, S("abcde"));
+ test(S("abcde"), 1, 0, "12345", 1, S("a1bcde"));
+ test(S("abcde"), 1, 0, "12345", 2, S("a12bcde"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test1()
-{
- test(S("abcde"), 1, 0, "12345", 4, S("a1234bcde"));
- test(S("abcde"), 1, 0, "12345", 5, S("a12345bcde"));
- test(S("abcde"), 1, 0, "1234567890", 0, S("abcde"));
- test(S("abcde"), 1, 0, "1234567890", 1, S("a1bcde"));
- test(S("abcde"), 1, 0, "1234567890", 5, S("a12345bcde"));
- test(S("abcde"), 1, 0, "1234567890", 9, S("a123456789bcde"));
- test(S("abcde"), 1, 0, "1234567890", 10, S("a1234567890bcde"));
- test(S("abcde"), 1, 0, "12345678901234567890", 0, S("abcde"));
- test(S("abcde"), 1, 0, "12345678901234567890", 1, S("a1bcde"));
- test(S("abcde"), 1, 0, "12345678901234567890", 10, S("a1234567890bcde"));
- test(S("abcde"), 1, 0, "12345678901234567890", 19, S("a1234567890123456789bcde"));
- test(S("abcde"), 1, 0, "12345678901234567890", 20, S("a12345678901234567890bcde"));
- test(S("abcde"), 1, 1, "", 0, S("acde"));
- test(S("abcde"), 1, 1, "12345", 0, S("acde"));
- test(S("abcde"), 1, 1, "12345", 1, S("a1cde"));
- test(S("abcde"), 1, 1, "12345", 2, S("a12cde"));
- test(S("abcde"), 1, 1, "12345", 4, S("a1234cde"));
- test(S("abcde"), 1, 1, "12345", 5, S("a12345cde"));
- test(S("abcde"), 1, 1, "1234567890", 0, S("acde"));
- test(S("abcde"), 1, 1, "1234567890", 1, S("a1cde"));
- test(S("abcde"), 1, 1, "1234567890", 5, S("a12345cde"));
- test(S("abcde"), 1, 1, "1234567890", 9, S("a123456789cde"));
- test(S("abcde"), 1, 1, "1234567890", 10, S("a1234567890cde"));
- test(S("abcde"), 1, 1, "12345678901234567890", 0, S("acde"));
- test(S("abcde"), 1, 1, "12345678901234567890", 1, S("a1cde"));
- test(S("abcde"), 1, 1, "12345678901234567890", 10, S("a1234567890cde"));
- test(S("abcde"), 1, 1, "12345678901234567890", 19, S("a1234567890123456789cde"));
- test(S("abcde"), 1, 1, "12345678901234567890", 20, S("a12345678901234567890cde"));
- test(S("abcde"), 1, 2, "", 0, S("ade"));
- test(S("abcde"), 1, 2, "12345", 0, S("ade"));
- test(S("abcde"), 1, 2, "12345", 1, S("a1de"));
- test(S("abcde"), 1, 2, "12345", 2, S("a12de"));
- test(S("abcde"), 1, 2, "12345", 4, S("a1234de"));
- test(S("abcde"), 1, 2, "12345", 5, S("a12345de"));
- test(S("abcde"), 1, 2, "1234567890", 0, S("ade"));
- test(S("abcde"), 1, 2, "1234567890", 1, S("a1de"));
- test(S("abcde"), 1, 2, "1234567890", 5, S("a12345de"));
- test(S("abcde"), 1, 2, "1234567890", 9, S("a123456789de"));
- test(S("abcde"), 1, 2, "1234567890", 10, S("a1234567890de"));
- test(S("abcde"), 1, 2, "12345678901234567890", 0, S("ade"));
- test(S("abcde"), 1, 2, "12345678901234567890", 1, S("a1de"));
- test(S("abcde"), 1, 2, "12345678901234567890", 10, S("a1234567890de"));
- test(S("abcde"), 1, 2, "12345678901234567890", 19, S("a1234567890123456789de"));
- test(S("abcde"), 1, 2, "12345678901234567890", 20, S("a12345678901234567890de"));
- test(S("abcde"), 1, 3, "", 0, S("ae"));
- test(S("abcde"), 1, 3, "12345", 0, S("ae"));
- test(S("abcde"), 1, 3, "12345", 1, S("a1e"));
- test(S("abcde"), 1, 3, "12345", 2, S("a12e"));
- test(S("abcde"), 1, 3, "12345", 4, S("a1234e"));
- test(S("abcde"), 1, 3, "12345", 5, S("a12345e"));
- test(S("abcde"), 1, 3, "1234567890", 0, S("ae"));
- test(S("abcde"), 1, 3, "1234567890", 1, S("a1e"));
- test(S("abcde"), 1, 3, "1234567890", 5, S("a12345e"));
- test(S("abcde"), 1, 3, "1234567890", 9, S("a123456789e"));
- test(S("abcde"), 1, 3, "1234567890", 10, S("a1234567890e"));
- test(S("abcde"), 1, 3, "12345678901234567890", 0, S("ae"));
- test(S("abcde"), 1, 3, "12345678901234567890", 1, S("a1e"));
- test(S("abcde"), 1, 3, "12345678901234567890", 10, S("a1234567890e"));
- test(S("abcde"), 1, 3, "12345678901234567890", 19, S("a1234567890123456789e"));
- test(S("abcde"), 1, 3, "12345678901234567890", 20, S("a12345678901234567890e"));
- test(S("abcde"), 1, 4, "", 0, S("a"));
- test(S("abcde"), 1, 4, "12345", 0, S("a"));
- test(S("abcde"), 1, 4, "12345", 1, S("a1"));
- test(S("abcde"), 1, 4, "12345", 2, S("a12"));
- test(S("abcde"), 1, 4, "12345", 4, S("a1234"));
- test(S("abcde"), 1, 4, "12345", 5, S("a12345"));
- test(S("abcde"), 1, 4, "1234567890", 0, S("a"));
- test(S("abcde"), 1, 4, "1234567890", 1, S("a1"));
- test(S("abcde"), 1, 4, "1234567890", 5, S("a12345"));
- test(S("abcde"), 1, 4, "1234567890", 9, S("a123456789"));
- test(S("abcde"), 1, 4, "1234567890", 10, S("a1234567890"));
- test(S("abcde"), 1, 4, "12345678901234567890", 0, S("a"));
- test(S("abcde"), 1, 4, "12345678901234567890", 1, S("a1"));
- test(S("abcde"), 1, 4, "12345678901234567890", 10, S("a1234567890"));
- test(S("abcde"), 1, 4, "12345678901234567890", 19, S("a1234567890123456789"));
- test(S("abcde"), 1, 4, "12345678901234567890", 20, S("a12345678901234567890"));
- test(S("abcde"), 2, 0, "", 0, S("abcde"));
- test(S("abcde"), 2, 0, "12345", 0, S("abcde"));
- test(S("abcde"), 2, 0, "12345", 1, S("ab1cde"));
- test(S("abcde"), 2, 0, "12345", 2, S("ab12cde"));
- test(S("abcde"), 2, 0, "12345", 4, S("ab1234cde"));
- test(S("abcde"), 2, 0, "12345", 5, S("ab12345cde"));
- test(S("abcde"), 2, 0, "1234567890", 0, S("abcde"));
- test(S("abcde"), 2, 0, "1234567890", 1, S("ab1cde"));
- test(S("abcde"), 2, 0, "1234567890", 5, S("ab12345cde"));
- test(S("abcde"), 2, 0, "1234567890", 9, S("ab123456789cde"));
- test(S("abcde"), 2, 0, "1234567890", 10, S("ab1234567890cde"));
- test(S("abcde"), 2, 0, "12345678901234567890", 0, S("abcde"));
- test(S("abcde"), 2, 0, "12345678901234567890", 1, S("ab1cde"));
- test(S("abcde"), 2, 0, "12345678901234567890", 10, S("ab1234567890cde"));
- test(S("abcde"), 2, 0, "12345678901234567890", 19, S("ab1234567890123456789cde"));
- test(S("abcde"), 2, 0, "12345678901234567890", 20, S("ab12345678901234567890cde"));
- test(S("abcde"), 2, 1, "", 0, S("abde"));
- test(S("abcde"), 2, 1, "12345", 0, S("abde"));
- test(S("abcde"), 2, 1, "12345", 1, S("ab1de"));
- test(S("abcde"), 2, 1, "12345", 2, S("ab12de"));
- test(S("abcde"), 2, 1, "12345", 4, S("ab1234de"));
- test(S("abcde"), 2, 1, "12345", 5, S("ab12345de"));
- test(S("abcde"), 2, 1, "1234567890", 0, S("abde"));
- test(S("abcde"), 2, 1, "1234567890", 1, S("ab1de"));
+TEST_CONSTEXPR_CXX20 bool test1() {
+ test(S("abcde"), 1, 0, "12345", 4, S("a1234bcde"));
+ test(S("abcde"), 1, 0, "12345", 5, S("a12345bcde"));
+ test(S("abcde"), 1, 0, "1234567890", 0, S("abcde"));
+ test(S("abcde"), 1, 0, "1234567890", 1, S("a1bcde"));
+ test(S("abcde"), 1, 0, "1234567890", 5, S("a12345bcde"));
+ test(S("abcde"), 1, 0, "1234567890", 9, S("a123456789bcde"));
+ test(S("abcde"), 1, 0, "1234567890", 10, S("a1234567890bcde"));
+ test(S("abcde"), 1, 0, "12345678901234567890", 0, S("abcde"));
+ test(S("abcde"), 1, 0, "12345678901234567890", 1, S("a1bcde"));
+ test(S("abcde"), 1, 0, "12345678901234567890", 10, S("a1234567890bcde"));
+ test(S("abcde"), 1, 0, "12345678901234567890", 19, S("a1234567890123456789bcde"));
+ test(S("abcde"), 1, 0, "12345678901234567890", 20, S("a12345678901234567890bcde"));
+ test(S("abcde"), 1, 1, "", 0, S("acde"));
+ test(S("abcde"), 1, 1, "12345", 0, S("acde"));
+ test(S("abcde"), 1, 1, "12345", 1, S("a1cde"));
+ test(S("abcde"), 1, 1, "12345", 2, S("a12cde"));
+ test(S("abcde"), 1, 1, "12345", 4, S("a1234cde"));
+ test(S("abcde"), 1, 1, "12345", 5, S("a12345cde"));
+ test(S("abcde"), 1, 1, "1234567890", 0, S("acde"));
+ test(S("abcde"), 1, 1, "1234567890", 1, S("a1cde"));
+ test(S("abcde"), 1, 1, "1234567890", 5, S("a12345cde"));
+ test(S("abcde"), 1, 1, "1234567890", 9, S("a123456789cde"));
+ test(S("abcde"), 1, 1, "1234567890", 10, S("a1234567890cde"));
+ test(S("abcde"), 1, 1, "12345678901234567890", 0, S("acde"));
+ test(S("abcde"), 1, 1, "12345678901234567890", 1, S("a1cde"));
+ test(S("abcde"), 1, 1, "12345678901234567890", 10, S("a1234567890cde"));
+ test(S("abcde"), 1, 1, "12345678901234567890", 19, S("a1234567890123456789cde"));
+ test(S("abcde"), 1, 1, "12345678901234567890", 20, S("a12345678901234567890cde"));
+ test(S("abcde"), 1, 2, "", 0, S("ade"));
+ test(S("abcde"), 1, 2, "12345", 0, S("ade"));
+ test(S("abcde"), 1, 2, "12345", 1, S("a1de"));
+ test(S("abcde"), 1, 2, "12345", 2, S("a12de"));
+ test(S("abcde"), 1, 2, "12345", 4, S("a1234de"));
+ test(S("abcde"), 1, 2, "12345", 5, S("a12345de"));
+ test(S("abcde"), 1, 2, "1234567890", 0, S("ade"));
+ test(S("abcde"), 1, 2, "1234567890", 1, S("a1de"));
+ test(S("abcde"), 1, 2, "1234567890", 5, S("a12345de"));
+ test(S("abcde"), 1, 2, "1234567890", 9, S("a123456789de"));
+ test(S("abcde"), 1, 2, "1234567890", 10, S("a1234567890de"));
+ test(S("abcde"), 1, 2, "12345678901234567890", 0, S("ade"));
+ test(S("abcde"), 1, 2, "12345678901234567890", 1, S("a1de"));
+ test(S("abcde"), 1, 2, "12345678901234567890", 10, S("a1234567890de"));
+ test(S("abcde"), 1, 2, "12345678901234567890", 19, S("a1234567890123456789de"));
+ test(S("abcde"), 1, 2, "12345678901234567890", 20, S("a12345678901234567890de"));
+ test(S("abcde"), 1, 3, "", 0, S("ae"));
+ test(S("abcde"), 1, 3, "12345", 0, S("ae"));
+ test(S("abcde"), 1, 3, "12345", 1, S("a1e"));
+ test(S("abcde"), 1, 3, "12345", 2, S("a12e"));
+ test(S("abcde"), 1, 3, "12345", 4, S("a1234e"));
+ test(S("abcde"), 1, 3, "12345", 5, S("a12345e"));
+ test(S("abcde"), 1, 3, "1234567890", 0, S("ae"));
+ test(S("abcde"), 1, 3, "1234567890", 1, S("a1e"));
+ test(S("abcde"), 1, 3, "1234567890", 5, S("a12345e"));
+ test(S("abcde"), 1, 3, "1234567890", 9, S("a123456789e"));
+ test(S("abcde"), 1, 3, "1234567890", 10, S("a1234567890e"));
+ test(S("abcde"), 1, 3, "12345678901234567890", 0, S("ae"));
+ test(S("abcde"), 1, 3, "12345678901234567890", 1, S("a1e"));
+ test(S("abcde"), 1, 3, "12345678901234567890", 10, S("a1234567890e"));
+ test(S("abcde"), 1, 3, "12345678901234567890", 19, S("a1234567890123456789e"));
+ test(S("abcde"), 1, 3, "12345678901234567890", 20, S("a12345678901234567890e"));
+ test(S("abcde"), 1, 4, "", 0, S("a"));
+ test(S("abcde"), 1, 4, "12345", 0, S("a"));
+ test(S("abcde"), 1, 4, "12345", 1, S("a1"));
+ test(S("abcde"), 1, 4, "12345", 2, S("a12"));
+ test(S("abcde"), 1, 4, "12345", 4, S("a1234"));
+ test(S("abcde"), 1, 4, "12345", 5, S("a12345"));
+ test(S("abcde"), 1, 4, "1234567890", 0, S("a"));
+ test(S("abcde"), 1, 4, "1234567890", 1, S("a1"));
+ test(S("abcde"), 1, 4, "1234567890", 5, S("a12345"));
+ test(S("abcde"), 1, 4, "1234567890", 9, S("a123456789"));
+ test(S("abcde"), 1, 4, "1234567890", 10, S("a1234567890"));
+ test(S("abcde"), 1, 4, "12345678901234567890", 0, S("a"));
+ test(S("abcde"), 1, 4, "12345678901234567890", 1, S("a1"));
+ test(S("abcde"), 1, 4, "12345678901234567890", 10, S("a1234567890"));
+ test(S("abcde"), 1, 4, "12345678901234567890", 19, S("a1234567890123456789"));
+ test(S("abcde"), 1, 4, "12345678901234567890", 20, S("a12345678901234567890"));
+ test(S("abcde"), 2, 0, "", 0, S("abcde"));
+ test(S("abcde"), 2, 0, "12345", 0, S("abcde"));
+ test(S("abcde"), 2, 0, "12345", 1, S("ab1cde"));
+ test(S("abcde"), 2, 0, "12345", 2, S("ab12cde"));
+ test(S("abcde"), 2, 0, "12345", 4, S("ab1234cde"));
+ test(S("abcde"), 2, 0, "12345", 5, S("ab12345cde"));
+ test(S("abcde"), 2, 0, "1234567890", 0, S("abcde"));
+ test(S("abcde"), 2, 0, "1234567890", 1, S("ab1cde"));
+ test(S("abcde"), 2, 0, "1234567890", 5, S("ab12345cde"));
+ test(S("abcde"), 2, 0, "1234567890", 9, S("ab123456789cde"));
+ test(S("abcde"), 2, 0, "1234567890", 10, S("ab1234567890cde"));
+ test(S("abcde"), 2, 0, "12345678901234567890", 0, S("abcde"));
+ test(S("abcde"), 2, 0, "12345678901234567890", 1, S("ab1cde"));
+ test(S("abcde"), 2, 0, "12345678901234567890", 10, S("ab1234567890cde"));
+ test(S("abcde"), 2, 0, "12345678901234567890", 19, S("ab1234567890123456789cde"));
+ test(S("abcde"), 2, 0, "12345678901234567890", 20, S("ab12345678901234567890cde"));
+ test(S("abcde"), 2, 1, "", 0, S("abde"));
+ test(S("abcde"), 2, 1, "12345", 0, S("abde"));
+ test(S("abcde"), 2, 1, "12345", 1, S("ab1de"));
+ test(S("abcde"), 2, 1, "12345", 2, S("ab12de"));
+ test(S("abcde"), 2, 1, "12345", 4, S("ab1234de"));
+ test(S("abcde"), 2, 1, "12345", 5, S("ab12345de"));
+ test(S("abcde"), 2, 1, "1234567890", 0, S("abde"));
+ test(S("abcde"), 2, 1, "1234567890", 1, S("ab1de"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test2()
-{
- test(S("abcde"), 2, 1, "1234567890", 5, S("ab12345de"));
- test(S("abcde"), 2, 1, "1234567890", 9, S("ab123456789de"));
- test(S("abcde"), 2, 1, "1234567890", 10, S("ab1234567890de"));
- test(S("abcde"), 2, 1, "12345678901234567890", 0, S("abde"));
- test(S("abcde"), 2, 1, "12345678901234567890", 1, S("ab1de"));
- test(S("abcde"), 2, 1, "12345678901234567890", 10, S("ab1234567890de"));
- test(S("abcde"), 2, 1, "12345678901234567890", 19, S("ab1234567890123456789de"));
- test(S("abcde"), 2, 1, "12345678901234567890", 20, S("ab12345678901234567890de"));
- test(S("abcde"), 2, 2, "", 0, S("abe"));
- test(S("abcde"), 2, 2, "12345", 0, S("abe"));
- test(S("abcde"), 2, 2, "12345", 1, S("ab1e"));
- test(S("abcde"), 2, 2, "12345", 2, S("ab12e"));
- test(S("abcde"), 2, 2, "12345", 4, S("ab1234e"));
- test(S("abcde"), 2, 2, "12345", 5, S("ab12345e"));
- test(S("abcde"), 2, 2, "1234567890", 0, S("abe"));
- test(S("abcde"), 2, 2, "1234567890", 1, S("ab1e"));
- test(S("abcde"), 2, 2, "1234567890", 5, S("ab12345e"));
- test(S("abcde"), 2, 2, "1234567890", 9, S("ab123456789e"));
- test(S("abcde"), 2, 2, "1234567890", 10, S("ab1234567890e"));
- test(S("abcde"), 2, 2, "12345678901234567890", 0, S("abe"));
- test(S("abcde"), 2, 2, "12345678901234567890", 1, S("ab1e"));
- test(S("abcde"), 2, 2, "12345678901234567890", 10, S("ab1234567890e"));
- test(S("abcde"), 2, 2, "12345678901234567890", 19, S("ab1234567890123456789e"));
- test(S("abcde"), 2, 2, "12345678901234567890", 20, S("ab12345678901234567890e"));
- test(S("abcde"), 2, 3, "", 0, S("ab"));
- test(S("abcde"), 2, 3, "12345", 0, S("ab"));
- test(S("abcde"), 2, 3, "12345", 1, S("ab1"));
- test(S("abcde"), 2, 3, "12345", 2, S("ab12"));
- test(S("abcde"), 2, 3, "12345", 4, S("ab1234"));
- test(S("abcde"), 2, 3, "12345", 5, S("ab12345"));
- test(S("abcde"), 2, 3, "1234567890", 0, S("ab"));
- test(S("abcde"), 2, 3, "1234567890", 1, S("ab1"));
- test(S("abcde"), 2, 3, "1234567890", 5, S("ab12345"));
- test(S("abcde"), 2, 3, "1234567890", 9, S("ab123456789"));
- test(S("abcde"), 2, 3, "1234567890", 10, S("ab1234567890"));
- test(S("abcde"), 2, 3, "12345678901234567890", 0, S("ab"));
- test(S("abcde"), 2, 3, "12345678901234567890", 1, S("ab1"));
- test(S("abcde"), 2, 3, "12345678901234567890", 10, S("ab1234567890"));
- test(S("abcde"), 2, 3, "12345678901234567890", 19, S("ab1234567890123456789"));
- test(S("abcde"), 2, 3, "12345678901234567890", 20, S("ab12345678901234567890"));
- test(S("abcde"), 4, 0, "", 0, S("abcde"));
- test(S("abcde"), 4, 0, "12345", 0, S("abcde"));
- test(S("abcde"), 4, 0, "12345", 1, S("abcd1e"));
- test(S("abcde"), 4, 0, "12345", 2, S("abcd12e"));
- test(S("abcde"), 4, 0, "12345", 4, S("abcd1234e"));
- test(S("abcde"), 4, 0, "12345", 5, S("abcd12345e"));
- test(S("abcde"), 4, 0, "1234567890", 0, S("abcde"));
- test(S("abcde"), 4, 0, "1234567890", 1, S("abcd1e"));
- test(S("abcde"), 4, 0, "1234567890", 5, S("abcd12345e"));
- test(S("abcde"), 4, 0, "1234567890", 9, S("abcd123456789e"));
- test(S("abcde"), 4, 0, "1234567890", 10, S("abcd1234567890e"));
- test(S("abcde"), 4, 0, "12345678901234567890", 0, S("abcde"));
- test(S("abcde"), 4, 0, "12345678901234567890", 1, S("abcd1e"));
- test(S("abcde"), 4, 0, "12345678901234567890", 10, S("abcd1234567890e"));
- test(S("abcde"), 4, 0, "12345678901234567890", 19, S("abcd1234567890123456789e"));
- test(S("abcde"), 4, 0, "12345678901234567890", 20, S("abcd12345678901234567890e"));
- test(S("abcde"), 4, 1, "", 0, S("abcd"));
- test(S("abcde"), 4, 1, "12345", 0, S("abcd"));
- test(S("abcde"), 4, 1, "12345", 1, S("abcd1"));
- test(S("abcde"), 4, 1, "12345", 2, S("abcd12"));
- test(S("abcde"), 4, 1, "12345", 4, S("abcd1234"));
- test(S("abcde"), 4, 1, "12345", 5, S("abcd12345"));
- test(S("abcde"), 4, 1, "1234567890", 0, S("abcd"));
- test(S("abcde"), 4, 1, "1234567890", 1, S("abcd1"));
- test(S("abcde"), 4, 1, "1234567890", 5, S("abcd12345"));
- test(S("abcde"), 4, 1, "1234567890", 9, S("abcd123456789"));
- test(S("abcde"), 4, 1, "1234567890", 10, S("abcd1234567890"));
- test(S("abcde"), 4, 1, "12345678901234567890", 0, S("abcd"));
- test(S("abcde"), 4, 1, "12345678901234567890", 1, S("abcd1"));
- test(S("abcde"), 4, 1, "12345678901234567890", 10, S("abcd1234567890"));
- test(S("abcde"), 4, 1, "12345678901234567890", 19, S("abcd1234567890123456789"));
- test(S("abcde"), 4, 1, "12345678901234567890", 20, S("abcd12345678901234567890"));
- test(S("abcde"), 5, 0, "", 0, S("abcde"));
- test(S("abcde"), 5, 0, "12345", 0, S("abcde"));
- test(S("abcde"), 5, 0, "12345", 1, S("abcde1"));
- test(S("abcde"), 5, 0, "12345", 2, S("abcde12"));
- test(S("abcde"), 5, 0, "12345", 4, S("abcde1234"));
- test(S("abcde"), 5, 0, "12345", 5, S("abcde12345"));
- test(S("abcde"), 5, 0, "1234567890", 0, S("abcde"));
- test(S("abcde"), 5, 0, "1234567890", 1, S("abcde1"));
- test(S("abcde"), 5, 0, "1234567890", 5, S("abcde12345"));
- test(S("abcde"), 5, 0, "1234567890", 9, S("abcde123456789"));
- test(S("abcde"), 5, 0, "1234567890", 10, S("abcde1234567890"));
- test(S("abcde"), 5, 0, "12345678901234567890", 0, S("abcde"));
- test(S("abcde"), 5, 0, "12345678901234567890", 1, S("abcde1"));
- test(S("abcde"), 5, 0, "12345678901234567890", 10, S("abcde1234567890"));
- test(S("abcde"), 5, 0, "12345678901234567890", 19, S("abcde1234567890123456789"));
- test(S("abcde"), 5, 0, "12345678901234567890", 20, S("abcde12345678901234567890"));
- test(S("abcdefghij"), 0, 0, "", 0, S("abcdefghij"));
- test(S("abcdefghij"), 0, 0, "12345", 0, S("abcdefghij"));
- test(S("abcdefghij"), 0, 0, "12345", 1, S("1abcdefghij"));
- test(S("abcdefghij"), 0, 0, "12345", 2, S("12abcdefghij"));
- test(S("abcdefghij"), 0, 0, "12345", 4, S("1234abcdefghij"));
- test(S("abcdefghij"), 0, 0, "12345", 5, S("12345abcdefghij"));
- test(S("abcdefghij"), 0, 0, "1234567890", 0, S("abcdefghij"));
- test(S("abcdefghij"), 0, 0, "1234567890", 1, S("1abcdefghij"));
- test(S("abcdefghij"), 0, 0, "1234567890", 5, S("12345abcdefghij"));
- test(S("abcdefghij"), 0, 0, "1234567890", 9, S("123456789abcdefghij"));
- test(S("abcdefghij"), 0, 0, "1234567890", 10, S("1234567890abcdefghij"));
- test(S("abcdefghij"), 0, 0, "12345678901234567890", 0, S("abcdefghij"));
+TEST_CONSTEXPR_CXX20 bool test2() {
+ test(S("abcde"), 2, 1, "1234567890", 5, S("ab12345de"));
+ test(S("abcde"), 2, 1, "1234567890", 9, S("ab123456789de"));
+ test(S("abcde"), 2, 1, "1234567890", 10, S("ab1234567890de"));
+ test(S("abcde"), 2, 1, "12345678901234567890", 0, S("abde"));
+ test(S("abcde"), 2, 1, "12345678901234567890", 1, S("ab1de"));
+ test(S("abcde"), 2, 1, "12345678901234567890", 10, S("ab1234567890de"));
+ test(S("abcde"), 2, 1, "12345678901234567890", 19, S("ab1234567890123456789de"));
+ test(S("abcde"), 2, 1, "12345678901234567890", 20, S("ab12345678901234567890de"));
+ test(S("abcde"), 2, 2, "", 0, S("abe"));
+ test(S("abcde"), 2, 2, "12345", 0, S("abe"));
+ test(S("abcde"), 2, 2, "12345", 1, S("ab1e"));
+ test(S("abcde"), 2, 2, "12345", 2, S("ab12e"));
+ test(S("abcde"), 2, 2, "12345", 4, S("ab1234e"));
+ test(S("abcde"), 2, 2, "12345", 5, S("ab12345e"));
+ test(S("abcde"), 2, 2, "1234567890", 0, S("abe"));
+ test(S("abcde"), 2, 2, "1234567890", 1, S("ab1e"));
+ test(S("abcde"), 2, 2, "1234567890", 5, S("ab12345e"));
+ test(S("abcde"), 2, 2, "1234567890", 9, S("ab123456789e"));
+ test(S("abcde"), 2, 2, "1234567890", 10, S("ab1234567890e"));
+ test(S("abcde"), 2, 2, "12345678901234567890", 0, S("abe"));
+ test(S("abcde"), 2, 2, "12345678901234567890", 1, S("ab1e"));
+ test(S("abcde"), 2, 2, "12345678901234567890", 10, S("ab1234567890e"));
+ test(S("abcde"), 2, 2, "12345678901234567890", 19, S("ab1234567890123456789e"));
+ test(S("abcde"), 2, 2, "12345678901234567890", 20, S("ab12345678901234567890e"));
+ test(S("abcde"), 2, 3, "", 0, S("ab"));
+ test(S("abcde"), 2, 3, "12345", 0, S("ab"));
+ test(S("abcde"), 2, 3, "12345", 1, S("ab1"));
+ test(S("abcde"), 2, 3, "12345", 2, S("ab12"));
+ test(S("abcde"), 2, 3, "12345", 4, S("ab1234"));
+ test(S("abcde"), 2, 3, "12345", 5, S("ab12345"));
+ test(S("abcde"), 2, 3, "1234567890", 0, S("ab"));
+ test(S("abcde"), 2, 3, "1234567890", 1, S("ab1"));
+ test(S("abcde"), 2, 3, "1234567890", 5, S("ab12345"));
+ test(S("abcde"), 2, 3, "1234567890", 9, S("ab123456789"));
+ test(S("abcde"), 2, 3, "1234567890", 10, S("ab1234567890"));
+ test(S("abcde"), 2, 3, "12345678901234567890", 0, S("ab"));
+ test(S("abcde"), 2, 3, "12345678901234567890", 1, S("ab1"));
+ test(S("abcde"), 2, 3, "12345678901234567890", 10, S("ab1234567890"));
+ test(S("abcde"), 2, 3, "12345678901234567890", 19, S("ab1234567890123456789"));
+ test(S("abcde"), 2, 3, "12345678901234567890", 20, S("ab12345678901234567890"));
+ test(S("abcde"), 4, 0, "", 0, S("abcde"));
+ test(S("abcde"), 4, 0, "12345", 0, S("abcde"));
+ test(S("abcde"), 4, 0, "12345", 1, S("abcd1e"));
+ test(S("abcde"), 4, 0, "12345", 2, S("abcd12e"));
+ test(S("abcde"), 4, 0, "12345", 4, S("abcd1234e"));
+ test(S("abcde"), 4, 0, "12345", 5, S("abcd12345e"));
+ test(S("abcde"), 4, 0, "1234567890", 0, S("abcde"));
+ test(S("abcde"), 4, 0, "1234567890", 1, S("abcd1e"));
+ test(S("abcde"), 4, 0, "1234567890", 5, S("abcd12345e"));
+ test(S("abcde"), 4, 0, "1234567890", 9, S("abcd123456789e"));
+ test(S("abcde"), 4, 0, "1234567890", 10, S("abcd1234567890e"));
+ test(S("abcde"), 4, 0, "12345678901234567890", 0, S("abcde"));
+ test(S("abcde"), 4, 0, "12345678901234567890", 1, S("abcd1e"));
+ test(S("abcde"), 4, 0, "12345678901234567890", 10, S("abcd1234567890e"));
+ test(S("abcde"), 4, 0, "12345678901234567890", 19, S("abcd1234567890123456789e"));
+ test(S("abcde"), 4, 0, "12345678901234567890", 20, S("abcd12345678901234567890e"));
+ test(S("abcde"), 4, 1, "", 0, S("abcd"));
+ test(S("abcde"), 4, 1, "12345", 0, S("abcd"));
+ test(S("abcde"), 4, 1, "12345", 1, S("abcd1"));
+ test(S("abcde"), 4, 1, "12345", 2, S("abcd12"));
+ test(S("abcde"), 4, 1, "12345", 4, S("abcd1234"));
+ test(S("abcde"), 4, 1, "12345", 5, S("abcd12345"));
+ test(S("abcde"), 4, 1, "1234567890", 0, S("abcd"));
+ test(S("abcde"), 4, 1, "1234567890", 1, S("abcd1"));
+ test(S("abcde"), 4, 1, "1234567890", 5, S("abcd12345"));
+ test(S("abcde"), 4, 1, "1234567890", 9, S("abcd123456789"));
+ test(S("abcde"), 4, 1, "1234567890", 10, S("abcd1234567890"));
+ test(S("abcde"), 4, 1, "12345678901234567890", 0, S("abcd"));
+ test(S("abcde"), 4, 1, "12345678901234567890", 1, S("abcd1"));
+ test(S("abcde"), 4, 1, "12345678901234567890", 10, S("abcd1234567890"));
+ test(S("abcde"), 4, 1, "12345678901234567890", 19, S("abcd1234567890123456789"));
+ test(S("abcde"), 4, 1, "12345678901234567890", 20, S("abcd12345678901234567890"));
+ test(S("abcde"), 5, 0, "", 0, S("abcde"));
+ test(S("abcde"), 5, 0, "12345", 0, S("abcde"));
+ test(S("abcde"), 5, 0, "12345", 1, S("abcde1"));
+ test(S("abcde"), 5, 0, "12345", 2, S("abcde12"));
+ test(S("abcde"), 5, 0, "12345", 4, S("abcde1234"));
+ test(S("abcde"), 5, 0, "12345", 5, S("abcde12345"));
+ test(S("abcde"), 5, 0, "1234567890", 0, S("abcde"));
+ test(S("abcde"), 5, 0, "1234567890", 1, S("abcde1"));
+ test(S("abcde"), 5, 0, "1234567890", 5, S("abcde12345"));
+ test(S("abcde"), 5, 0, "1234567890", 9, S("abcde123456789"));
+ test(S("abcde"), 5, 0, "1234567890", 10, S("abcde1234567890"));
+ test(S("abcde"), 5, 0, "12345678901234567890", 0, S("abcde"));
+ test(S("abcde"), 5, 0, "12345678901234567890", 1, S("abcde1"));
+ test(S("abcde"), 5, 0, "12345678901234567890", 10, S("abcde1234567890"));
+ test(S("abcde"), 5, 0, "12345678901234567890", 19, S("abcde1234567890123456789"));
+ test(S("abcde"), 5, 0, "12345678901234567890", 20, S("abcde12345678901234567890"));
+ test(S("abcdefghij"), 0, 0, "", 0, S("abcdefghij"));
+ test(S("abcdefghij"), 0, 0, "12345", 0, S("abcdefghij"));
+ test(S("abcdefghij"), 0, 0, "12345", 1, S("1abcdefghij"));
+ test(S("abcdefghij"), 0, 0, "12345", 2, S("12abcdefghij"));
+ test(S("abcdefghij"), 0, 0, "12345", 4, S("1234abcdefghij"));
+ test(S("abcdefghij"), 0, 0, "12345", 5, S("12345abcdefghij"));
+ test(S("abcdefghij"), 0, 0, "1234567890", 0, S("abcdefghij"));
+ test(S("abcdefghij"), 0, 0, "1234567890", 1, S("1abcdefghij"));
+ test(S("abcdefghij"), 0, 0, "1234567890", 5, S("12345abcdefghij"));
+ test(S("abcdefghij"), 0, 0, "1234567890", 9, S("123456789abcdefghij"));
+ test(S("abcdefghij"), 0, 0, "1234567890", 10, S("1234567890abcdefghij"));
+ test(S("abcdefghij"), 0, 0, "12345678901234567890", 0, S("abcdefghij"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test3()
-{
- test(S("abcdefghij"), 0, 0, "12345678901234567890", 1, S("1abcdefghij"));
- test(S("abcdefghij"), 0, 0, "12345678901234567890", 10, S("1234567890abcdefghij"));
- test(S("abcdefghij"), 0, 0, "12345678901234567890", 19, S("1234567890123456789abcdefghij"));
- test(S("abcdefghij"), 0, 0, "12345678901234567890", 20, S("12345678901234567890abcdefghij"));
- test(S("abcdefghij"), 0, 1, "", 0, S("bcdefghij"));
- test(S("abcdefghij"), 0, 1, "12345", 0, S("bcdefghij"));
- test(S("abcdefghij"), 0, 1, "12345", 1, S("1bcdefghij"));
- test(S("abcdefghij"), 0, 1, "12345", 2, S("12bcdefghij"));
- test(S("abcdefghij"), 0, 1, "12345", 4, S("1234bcdefghij"));
- test(S("abcdefghij"), 0, 1, "12345", 5, S("12345bcdefghij"));
- test(S("abcdefghij"), 0, 1, "1234567890", 0, S("bcdefghij"));
- test(S("abcdefghij"), 0, 1, "1234567890", 1, S("1bcdefghij"));
- test(S("abcdefghij"), 0, 1, "1234567890", 5, S("12345bcdefghij"));
- test(S("abcdefghij"), 0, 1, "1234567890", 9, S("123456789bcdefghij"));
- test(S("abcdefghij"), 0, 1, "1234567890", 10, S("1234567890bcdefghij"));
- test(S("abcdefghij"), 0, 1, "12345678901234567890", 0, S("bcdefghij"));
- test(S("abcdefghij"), 0, 1, "12345678901234567890", 1, S("1bcdefghij"));
- test(S("abcdefghij"), 0, 1, "12345678901234567890", 10, S("1234567890bcdefghij"));
- test(S("abcdefghij"), 0, 1, "12345678901234567890", 19, S("1234567890123456789bcdefghij"));
- test(S("abcdefghij"), 0, 1, "12345678901234567890", 20, S("12345678901234567890bcdefghij"));
- test(S("abcdefghij"), 0, 5, "", 0, S("fghij"));
- test(S("abcdefghij"), 0, 5, "12345", 0, S("fghij"));
- test(S("abcdefghij"), 0, 5, "12345", 1, S("1fghij"));
- test(S("abcdefghij"), 0, 5, "12345", 2, S("12fghij"));
- test(S("abcdefghij"), 0, 5, "12345", 4, S("1234fghij"));
- test(S("abcdefghij"), 0, 5, "12345", 5, S("12345fghij"));
- test(S("abcdefghij"), 0, 5, "1234567890", 0, S("fghij"));
- test(S("abcdefghij"), 0, 5, "1234567890", 1, S("1fghij"));
- test(S("abcdefghij"), 0, 5, "1234567890", 5, S("12345fghij"));
- test(S("abcdefghij"), 0, 5, "1234567890", 9, S("123456789fghij"));
- test(S("abcdefghij"), 0, 5, "1234567890", 10, S("1234567890fghij"));
- test(S("abcdefghij"), 0, 5, "12345678901234567890", 0, S("fghij"));
- test(S("abcdefghij"), 0, 5, "12345678901234567890", 1, S("1fghij"));
- test(S("abcdefghij"), 0, 5, "12345678901234567890", 10, S("1234567890fghij"));
- test(S("abcdefghij"), 0, 5, "12345678901234567890", 19, S("1234567890123456789fghij"));
- test(S("abcdefghij"), 0, 5, "12345678901234567890", 20, S("12345678901234567890fghij"));
- test(S("abcdefghij"), 0, 9, "", 0, S("j"));
- test(S("abcdefghij"), 0, 9, "12345", 0, S("j"));
- test(S("abcdefghij"), 0, 9, "12345", 1, S("1j"));
- test(S("abcdefghij"), 0, 9, "12345", 2, S("12j"));
- test(S("abcdefghij"), 0, 9, "12345", 4, S("1234j"));
- test(S("abcdefghij"), 0, 9, "12345", 5, S("12345j"));
- test(S("abcdefghij"), 0, 9, "1234567890", 0, S("j"));
- test(S("abcdefghij"), 0, 9, "1234567890", 1, S("1j"));
- test(S("abcdefghij"), 0, 9, "1234567890", 5, S("12345j"));
- test(S("abcdefghij"), 0, 9, "1234567890", 9, S("123456789j"));
- test(S("abcdefghij"), 0, 9, "1234567890", 10, S("1234567890j"));
- test(S("abcdefghij"), 0, 9, "12345678901234567890", 0, S("j"));
- test(S("abcdefghij"), 0, 9, "12345678901234567890", 1, S("1j"));
- test(S("abcdefghij"), 0, 9, "12345678901234567890", 10, S("1234567890j"));
- test(S("abcdefghij"), 0, 9, "12345678901234567890", 19, S("1234567890123456789j"));
- test(S("abcdefghij"), 0, 9, "12345678901234567890", 20, S("12345678901234567890j"));
- test(S("abcdefghij"), 0, 10, "", 0, S(""));
- test(S("abcdefghij"), 0, 10, "12345", 0, S(""));
- test(S("abcdefghij"), 0, 10, "12345", 1, S("1"));
- test(S("abcdefghij"), 0, 10, "12345", 2, S("12"));
- test(S("abcdefghij"), 0, 10, "12345", 4, S("1234"));
- test(S("abcdefghij"), 0, 10, "12345", 5, S("12345"));
- test(S("abcdefghij"), 0, 10, "1234567890", 0, S(""));
- test(S("abcdefghij"), 0, 10, "1234567890", 1, S("1"));
- test(S("abcdefghij"), 0, 10, "1234567890", 5, S("12345"));
- test(S("abcdefghij"), 0, 10, "1234567890", 9, S("123456789"));
- test(S("abcdefghij"), 0, 10, "1234567890", 10, S("1234567890"));
- test(S("abcdefghij"), 0, 10, "12345678901234567890", 0, S(""));
- test(S("abcdefghij"), 0, 10, "12345678901234567890", 1, S("1"));
- test(S("abcdefghij"), 0, 10, "12345678901234567890", 10, S("1234567890"));
- test(S("abcdefghij"), 0, 10, "12345678901234567890", 19, S("1234567890123456789"));
- test(S("abcdefghij"), 0, 10, "12345678901234567890", 20, S("12345678901234567890"));
- test(S("abcdefghij"), 1, 0, "", 0, S("abcdefghij"));
- test(S("abcdefghij"), 1, 0, "12345", 0, S("abcdefghij"));
- test(S("abcdefghij"), 1, 0, "12345", 1, S("a1bcdefghij"));
- test(S("abcdefghij"), 1, 0, "12345", 2, S("a12bcdefghij"));
- test(S("abcdefghij"), 1, 0, "12345", 4, S("a1234bcdefghij"));
- test(S("abcdefghij"), 1, 0, "12345", 5, S("a12345bcdefghij"));
- test(S("abcdefghij"), 1, 0, "1234567890", 0, S("abcdefghij"));
- test(S("abcdefghij"), 1, 0, "1234567890", 1, S("a1bcdefghij"));
- test(S("abcdefghij"), 1, 0, "1234567890", 5, S("a12345bcdefghij"));
- test(S("abcdefghij"), 1, 0, "1234567890", 9, S("a123456789bcdefghij"));
- test(S("abcdefghij"), 1, 0, "1234567890", 10, S("a1234567890bcdefghij"));
- test(S("abcdefghij"), 1, 0, "12345678901234567890", 0, S("abcdefghij"));
- test(S("abcdefghij"), 1, 0, "12345678901234567890", 1, S("a1bcdefghij"));
- test(S("abcdefghij"), 1, 0, "12345678901234567890", 10, S("a1234567890bcdefghij"));
- test(S("abcdefghij"), 1, 0, "12345678901234567890", 19, S("a1234567890123456789bcdefghij"));
- test(S("abcdefghij"), 1, 0, "12345678901234567890", 20, S("a12345678901234567890bcdefghij"));
- test(S("abcdefghij"), 1, 1, "", 0, S("acdefghij"));
- test(S("abcdefghij"), 1, 1, "12345", 0, S("acdefghij"));
- test(S("abcdefghij"), 1, 1, "12345", 1, S("a1cdefghij"));
- test(S("abcdefghij"), 1, 1, "12345", 2, S("a12cdefghij"));
- test(S("abcdefghij"), 1, 1, "12345", 4, S("a1234cdefghij"));
- test(S("abcdefghij"), 1, 1, "12345", 5, S("a12345cdefghij"));
- test(S("abcdefghij"), 1, 1, "1234567890", 0, S("acdefghij"));
- test(S("abcdefghij"), 1, 1, "1234567890", 1, S("a1cdefghij"));
- test(S("abcdefghij"), 1, 1, "1234567890", 5, S("a12345cdefghij"));
- test(S("abcdefghij"), 1, 1, "1234567890", 9, S("a123456789cdefghij"));
- test(S("abcdefghij"), 1, 1, "1234567890", 10, S("a1234567890cdefghij"));
- test(S("abcdefghij"), 1, 1, "12345678901234567890", 0, S("acdefghij"));
- test(S("abcdefghij"), 1, 1, "12345678901234567890", 1, S("a1cdefghij"));
- test(S("abcdefghij"), 1, 1, "12345678901234567890", 10, S("a1234567890cdefghij"));
- test(S("abcdefghij"), 1, 1, "12345678901234567890", 19, S("a1234567890123456789cdefghij"));
- test(S("abcdefghij"), 1, 1, "12345678901234567890", 20, S("a12345678901234567890cdefghij"));
+TEST_CONSTEXPR_CXX20 bool test3() {
+ test(S("abcdefghij"), 0, 0, "12345678901234567890", 1, S("1abcdefghij"));
+ test(S("abcdefghij"), 0, 0, "12345678901234567890", 10, S("1234567890abcdefghij"));
+ test(S("abcdefghij"), 0, 0, "12345678901234567890", 19, S("1234567890123456789abcdefghij"));
+ test(S("abcdefghij"), 0, 0, "12345678901234567890", 20, S("12345678901234567890abcdefghij"));
+ test(S("abcdefghij"), 0, 1, "", 0, S("bcdefghij"));
+ test(S("abcdefghij"), 0, 1, "12345", 0, S("bcdefghij"));
+ test(S("abcdefghij"), 0, 1, "12345", 1, S("1bcdefghij"));
+ test(S("abcdefghij"), 0, 1, "12345", 2, S("12bcdefghij"));
+ test(S("abcdefghij"), 0, 1, "12345", 4, S("1234bcdefghij"));
+ test(S("abcdefghij"), 0, 1, "12345", 5, S("12345bcdefghij"));
+ test(S("abcdefghij"), 0, 1, "1234567890", 0, S("bcdefghij"));
+ test(S("abcdefghij"), 0, 1, "1234567890", 1, S("1bcdefghij"));
+ test(S("abcdefghij"), 0, 1, "1234567890", 5, S("12345bcdefghij"));
+ test(S("abcdefghij"), 0, 1, "1234567890", 9, S("123456789bcdefghij"));
+ test(S("abcdefghij"), 0, 1, "1234567890", 10, S("1234567890bcdefghij"));
+ test(S("abcdefghij"), 0, 1, "12345678901234567890", 0, S("bcdefghij"));
+ test(S("abcdefghij"), 0, 1, "12345678901234567890", 1, S("1bcdefghij"));
+ test(S("abcdefghij"), 0, 1, "12345678901234567890", 10, S("1234567890bcdefghij"));
+ test(S("abcdefghij"), 0, 1, "12345678901234567890", 19, S("1234567890123456789bcdefghij"));
+ test(S("abcdefghij"), 0, 1, "12345678901234567890", 20, S("12345678901234567890bcdefghij"));
+ test(S("abcdefghij"), 0, 5, "", 0, S("fghij"));
+ test(S("abcdefghij"), 0, 5, "12345", 0, S("fghij"));
+ test(S("abcdefghij"), 0, 5, "12345", 1, S("1fghij"));
+ test(S("abcdefghij"), 0, 5, "12345", 2, S("12fghij"));
+ test(S("abcdefghij"), 0, 5, "12345", 4, S("1234fghij"));
+ test(S("abcdefghij"), 0, 5, "12345", 5, S("12345fghij"));
+ test(S("abcdefghij"), 0, 5, "1234567890", 0, S("fghij"));
+ test(S("abcdefghij"), 0, 5, "1234567890", 1, S("1fghij"));
+ test(S("abcdefghij"), 0, 5, "1234567890", 5, S("12345fghij"));
+ test(S("abcdefghij"), 0, 5, "1234567890", 9, S("123456789fghij"));
+ test(S("abcdefghij"), 0, 5, "1234567890", 10, S("1234567890fghij"));
+ test(S("abcdefghij"), 0, 5, "12345678901234567890", 0, S("fghij"));
+ test(S("abcdefghij"), 0, 5, "12345678901234567890", 1, S("1fghij"));
+ test(S("abcdefghij"), 0, 5, "12345678901234567890", 10, S("1234567890fghij"));
+ test(S("abcdefghij"), 0, 5, "12345678901234567890", 19, S("1234567890123456789fghij"));
+ test(S("abcdefghij"), 0, 5, "12345678901234567890", 20, S("12345678901234567890fghij"));
+ test(S("abcdefghij"), 0, 9, "", 0, S("j"));
+ test(S("abcdefghij"), 0, 9, "12345", 0, S("j"));
+ test(S("abcdefghij"), 0, 9, "12345", 1, S("1j"));
+ test(S("abcdefghij"), 0, 9, "12345", 2, S("12j"));
+ test(S("abcdefghij"), 0, 9, "12345", 4, S("1234j"));
+ test(S("abcdefghij"), 0, 9, "12345", 5, S("12345j"));
+ test(S("abcdefghij"), 0, 9, "1234567890", 0, S("j"));
+ test(S("abcdefghij"), 0, 9, "1234567890", 1, S("1j"));
+ test(S("abcdefghij"), 0, 9, "1234567890", 5, S("12345j"));
+ test(S("abcdefghij"), 0, 9, "1234567890", 9, S("123456789j"));
+ test(S("abcdefghij"), 0, 9, "1234567890", 10, S("1234567890j"));
+ test(S("abcdefghij"), 0, 9, "12345678901234567890", 0, S("j"));
+ test(S("abcdefghij"), 0, 9, "12345678901234567890", 1, S("1j"));
+ test(S("abcdefghij"), 0, 9, "12345678901234567890", 10, S("1234567890j"));
+ test(S("abcdefghij"), 0, 9, "12345678901234567890", 19, S("1234567890123456789j"));
+ test(S("abcdefghij"), 0, 9, "12345678901234567890", 20, S("12345678901234567890j"));
+ test(S("abcdefghij"), 0, 10, "", 0, S(""));
+ test(S("abcdefghij"), 0, 10, "12345", 0, S(""));
+ test(S("abcdefghij"), 0, 10, "12345", 1, S("1"));
+ test(S("abcdefghij"), 0, 10, "12345", 2, S("12"));
+ test(S("abcdefghij"), 0, 10, "12345", 4, S("1234"));
+ test(S("abcdefghij"), 0, 10, "12345", 5, S("12345"));
+ test(S("abcdefghij"), 0, 10, "1234567890", 0, S(""));
+ test(S("abcdefghij"), 0, 10, "1234567890", 1, S("1"));
+ test(S("abcdefghij"), 0, 10, "1234567890", 5, S("12345"));
+ test(S("abcdefghij"), 0, 10, "1234567890", 9, S("123456789"));
+ test(S("abcdefghij"), 0, 10, "1234567890", 10, S("1234567890"));
+ test(S("abcdefghij"), 0, 10, "12345678901234567890", 0, S(""));
+ test(S("abcdefghij"), 0, 10, "12345678901234567890", 1, S("1"));
+ test(S("abcdefghij"), 0, 10, "12345678901234567890", 10, S("1234567890"));
+ test(S("abcdefghij"), 0, 10, "12345678901234567890", 19, S("1234567890123456789"));
+ test(S("abcdefghij"), 0, 10, "12345678901234567890", 20, S("12345678901234567890"));
+ test(S("abcdefghij"), 1, 0, "", 0, S("abcdefghij"));
+ test(S("abcdefghij"), 1, 0, "12345", 0, S("abcdefghij"));
+ test(S("abcdefghij"), 1, 0, "12345", 1, S("a1bcdefghij"));
+ test(S("abcdefghij"), 1, 0, "12345", 2, S("a12bcdefghij"));
+ test(S("abcdefghij"), 1, 0, "12345", 4, S("a1234bcdefghij"));
+ test(S("abcdefghij"), 1, 0, "12345", 5, S("a12345bcdefghij"));
+ test(S("abcdefghij"), 1, 0, "1234567890", 0, S("abcdefghij"));
+ test(S("abcdefghij"), 1, 0, "1234567890", 1, S("a1bcdefghij"));
+ test(S("abcdefghij"), 1, 0, "1234567890", 5, S("a12345bcdefghij"));
+ test(S("abcdefghij"), 1, 0, "1234567890", 9, S("a123456789bcdefghij"));
+ test(S("abcdefghij"), 1, 0, "1234567890", 10, S("a1234567890bcdefghij"));
+ test(S("abcdefghij"), 1, 0, "12345678901234567890", 0, S("abcdefghij"));
+ test(S("abcdefghij"), 1, 0, "12345678901234567890", 1, S("a1bcdefghij"));
+ test(S("abcdefghij"), 1, 0, "12345678901234567890", 10, S("a1234567890bcdefghij"));
+ test(S("abcdefghij"), 1, 0, "12345678901234567890", 19, S("a1234567890123456789bcdefghij"));
+ test(S("abcdefghij"), 1, 0, "12345678901234567890", 20, S("a12345678901234567890bcdefghij"));
+ test(S("abcdefghij"), 1, 1, "", 0, S("acdefghij"));
+ test(S("abcdefghij"), 1, 1, "12345", 0, S("acdefghij"));
+ test(S("abcdefghij"), 1, 1, "12345", 1, S("a1cdefghij"));
+ test(S("abcdefghij"), 1, 1, "12345", 2, S("a12cdefghij"));
+ test(S("abcdefghij"), 1, 1, "12345", 4, S("a1234cdefghij"));
+ test(S("abcdefghij"), 1, 1, "12345", 5, S("a12345cdefghij"));
+ test(S("abcdefghij"), 1, 1, "1234567890", 0, S("acdefghij"));
+ test(S("abcdefghij"), 1, 1, "1234567890", 1, S("a1cdefghij"));
+ test(S("abcdefghij"), 1, 1, "1234567890", 5, S("a12345cdefghij"));
+ test(S("abcdefghij"), 1, 1, "1234567890", 9, S("a123456789cdefghij"));
+ test(S("abcdefghij"), 1, 1, "1234567890", 10, S("a1234567890cdefghij"));
+ test(S("abcdefghij"), 1, 1, "12345678901234567890", 0, S("acdefghij"));
+ test(S("abcdefghij"), 1, 1, "12345678901234567890", 1, S("a1cdefghij"));
+ test(S("abcdefghij"), 1, 1, "12345678901234567890", 10, S("a1234567890cdefghij"));
+ test(S("abcdefghij"), 1, 1, "12345678901234567890", 19, S("a1234567890123456789cdefghij"));
+ test(S("abcdefghij"), 1, 1, "12345678901234567890", 20, S("a12345678901234567890cdefghij"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test4()
-{
- test(S("abcdefghij"), 1, 4, "", 0, S("afghij"));
- test(S("abcdefghij"), 1, 4, "12345", 0, S("afghij"));
- test(S("abcdefghij"), 1, 4, "12345", 1, S("a1fghij"));
- test(S("abcdefghij"), 1, 4, "12345", 2, S("a12fghij"));
- test(S("abcdefghij"), 1, 4, "12345", 4, S("a1234fghij"));
- test(S("abcdefghij"), 1, 4, "12345", 5, S("a12345fghij"));
- test(S("abcdefghij"), 1, 4, "1234567890", 0, S("afghij"));
- test(S("abcdefghij"), 1, 4, "1234567890", 1, S("a1fghij"));
- test(S("abcdefghij"), 1, 4, "1234567890", 5, S("a12345fghij"));
- test(S("abcdefghij"), 1, 4, "1234567890", 9, S("a123456789fghij"));
- test(S("abcdefghij"), 1, 4, "1234567890", 10, S("a1234567890fghij"));
- test(S("abcdefghij"), 1, 4, "12345678901234567890", 0, S("afghij"));
- test(S("abcdefghij"), 1, 4, "12345678901234567890", 1, S("a1fghij"));
- test(S("abcdefghij"), 1, 4, "12345678901234567890", 10, S("a1234567890fghij"));
- test(S("abcdefghij"), 1, 4, "12345678901234567890", 19, S("a1234567890123456789fghij"));
- test(S("abcdefghij"), 1, 4, "12345678901234567890", 20, S("a12345678901234567890fghij"));
- test(S("abcdefghij"), 1, 8, "", 0, S("aj"));
- test(S("abcdefghij"), 1, 8, "12345", 0, S("aj"));
- test(S("abcdefghij"), 1, 8, "12345", 1, S("a1j"));
- test(S("abcdefghij"), 1, 8, "12345", 2, S("a12j"));
- test(S("abcdefghij"), 1, 8, "12345", 4, S("a1234j"));
- test(S("abcdefghij"), 1, 8, "12345", 5, S("a12345j"));
- test(S("abcdefghij"), 1, 8, "1234567890", 0, S("aj"));
- test(S("abcdefghij"), 1, 8, "1234567890", 1, S("a1j"));
- test(S("abcdefghij"), 1, 8, "1234567890", 5, S("a12345j"));
- test(S("abcdefghij"), 1, 8, "1234567890", 9, S("a123456789j"));
- test(S("abcdefghij"), 1, 8, "1234567890", 10, S("a1234567890j"));
- test(S("abcdefghij"), 1, 8, "12345678901234567890", 0, S("aj"));
- test(S("abcdefghij"), 1, 8, "12345678901234567890", 1, S("a1j"));
- test(S("abcdefghij"), 1, 8, "12345678901234567890", 10, S("a1234567890j"));
- test(S("abcdefghij"), 1, 8, "12345678901234567890", 19, S("a1234567890123456789j"));
- test(S("abcdefghij"), 1, 8, "12345678901234567890", 20, S("a12345678901234567890j"));
- test(S("abcdefghij"), 1, 9, "", 0, S("a"));
- test(S("abcdefghij"), 1, 9, "12345", 0, S("a"));
- test(S("abcdefghij"), 1, 9, "12345", 1, S("a1"));
- test(S("abcdefghij"), 1, 9, "12345", 2, S("a12"));
- test(S("abcdefghij"), 1, 9, "12345", 4, S("a1234"));
- test(S("abcdefghij"), 1, 9, "12345", 5, S("a12345"));
- test(S("abcdefghij"), 1, 9, "1234567890", 0, S("a"));
- test(S("abcdefghij"), 1, 9, "1234567890", 1, S("a1"));
- test(S("abcdefghij"), 1, 9, "1234567890", 5, S("a12345"));
- test(S("abcdefghij"), 1, 9, "1234567890", 9, S("a123456789"));
- test(S("abcdefghij"), 1, 9, "1234567890", 10, S("a1234567890"));
- test(S("abcdefghij"), 1, 9, "12345678901234567890", 0, S("a"));
- test(S("abcdefghij"), 1, 9, "12345678901234567890", 1, S("a1"));
- test(S("abcdefghij"), 1, 9, "12345678901234567890", 10, S("a1234567890"));
- test(S("abcdefghij"), 1, 9, "12345678901234567890", 19, S("a1234567890123456789"));
- test(S("abcdefghij"), 1, 9, "12345678901234567890", 20, S("a12345678901234567890"));
- test(S("abcdefghij"), 5, 0, "", 0, S("abcdefghij"));
- test(S("abcdefghij"), 5, 0, "12345", 0, S("abcdefghij"));
- test(S("abcdefghij"), 5, 0, "12345", 1, S("abcde1fghij"));
- test(S("abcdefghij"), 5, 0, "12345", 2, S("abcde12fghij"));
- test(S("abcdefghij"), 5, 0, "12345", 4, S("abcde1234fghij"));
- test(S("abcdefghij"), 5, 0, "12345", 5, S("abcde12345fghij"));
- test(S("abcdefghij"), 5, 0, "1234567890", 0, S("abcdefghij"));
- test(S("abcdefghij"), 5, 0, "1234567890", 1, S("abcde1fghij"));
- test(S("abcdefghij"), 5, 0, "1234567890", 5, S("abcde12345fghij"));
- test(S("abcdefghij"), 5, 0, "1234567890", 9, S("abcde123456789fghij"));
- test(S("abcdefghij"), 5, 0, "1234567890", 10, S("abcde1234567890fghij"));
- test(S("abcdefghij"), 5, 0, "12345678901234567890", 0, S("abcdefghij"));
- test(S("abcdefghij"), 5, 0, "12345678901234567890", 1, S("abcde1fghij"));
- test(S("abcdefghij"), 5, 0, "12345678901234567890", 10, S("abcde1234567890fghij"));
- test(S("abcdefghij"), 5, 0, "12345678901234567890", 19, S("abcde1234567890123456789fghij"));
- test(S("abcdefghij"), 5, 0, "12345678901234567890", 20, S("abcde12345678901234567890fghij"));
- test(S("abcdefghij"), 5, 1, "", 0, S("abcdeghij"));
- test(S("abcdefghij"), 5, 1, "12345", 0, S("abcdeghij"));
- test(S("abcdefghij"), 5, 1, "12345", 1, S("abcde1ghij"));
- test(S("abcdefghij"), 5, 1, "12345", 2, S("abcde12ghij"));
- test(S("abcdefghij"), 5, 1, "12345", 4, S("abcde1234ghij"));
- test(S("abcdefghij"), 5, 1, "12345", 5, S("abcde12345ghij"));
- test(S("abcdefghij"), 5, 1, "1234567890", 0, S("abcdeghij"));
- test(S("abcdefghij"), 5, 1, "1234567890", 1, S("abcde1ghij"));
- test(S("abcdefghij"), 5, 1, "1234567890", 5, S("abcde12345ghij"));
- test(S("abcdefghij"), 5, 1, "1234567890", 9, S("abcde123456789ghij"));
- test(S("abcdefghij"), 5, 1, "1234567890", 10, S("abcde1234567890ghij"));
- test(S("abcdefghij"), 5, 1, "12345678901234567890", 0, S("abcdeghij"));
- test(S("abcdefghij"), 5, 1, "12345678901234567890", 1, S("abcde1ghij"));
- test(S("abcdefghij"), 5, 1, "12345678901234567890", 10, S("abcde1234567890ghij"));
- test(S("abcdefghij"), 5, 1, "12345678901234567890", 19, S("abcde1234567890123456789ghij"));
- test(S("abcdefghij"), 5, 1, "12345678901234567890", 20, S("abcde12345678901234567890ghij"));
- test(S("abcdefghij"), 5, 2, "", 0, S("abcdehij"));
- test(S("abcdefghij"), 5, 2, "12345", 0, S("abcdehij"));
- test(S("abcdefghij"), 5, 2, "12345", 1, S("abcde1hij"));
- test(S("abcdefghij"), 5, 2, "12345", 2, S("abcde12hij"));
- test(S("abcdefghij"), 5, 2, "12345", 4, S("abcde1234hij"));
- test(S("abcdefghij"), 5, 2, "12345", 5, S("abcde12345hij"));
- test(S("abcdefghij"), 5, 2, "1234567890", 0, S("abcdehij"));
- test(S("abcdefghij"), 5, 2, "1234567890", 1, S("abcde1hij"));
- test(S("abcdefghij"), 5, 2, "1234567890", 5, S("abcde12345hij"));
- test(S("abcdefghij"), 5, 2, "1234567890", 9, S("abcde123456789hij"));
- test(S("abcdefghij"), 5, 2, "1234567890", 10, S("abcde1234567890hij"));
- test(S("abcdefghij"), 5, 2, "12345678901234567890", 0, S("abcdehij"));
- test(S("abcdefghij"), 5, 2, "12345678901234567890", 1, S("abcde1hij"));
- test(S("abcdefghij"), 5, 2, "12345678901234567890", 10, S("abcde1234567890hij"));
- test(S("abcdefghij"), 5, 2, "12345678901234567890", 19, S("abcde1234567890123456789hij"));
- test(S("abcdefghij"), 5, 2, "12345678901234567890", 20, S("abcde12345678901234567890hij"));
- test(S("abcdefghij"), 5, 4, "", 0, S("abcdej"));
- test(S("abcdefghij"), 5, 4, "12345", 0, S("abcdej"));
- test(S("abcdefghij"), 5, 4, "12345", 1, S("abcde1j"));
- test(S("abcdefghij"), 5, 4, "12345", 2, S("abcde12j"));
+TEST_CONSTEXPR_CXX20 bool test4() {
+ test(S("abcdefghij"), 1, 4, "", 0, S("afghij"));
+ test(S("abcdefghij"), 1, 4, "12345", 0, S("afghij"));
+ test(S("abcdefghij"), 1, 4, "12345", 1, S("a1fghij"));
+ test(S("abcdefghij"), 1, 4, "12345", 2, S("a12fghij"));
+ test(S("abcdefghij"), 1, 4, "12345", 4, S("a1234fghij"));
+ test(S("abcdefghij"), 1, 4, "12345", 5, S("a12345fghij"));
+ test(S("abcdefghij"), 1, 4, "1234567890", 0, S("afghij"));
+ test(S("abcdefghij"), 1, 4, "1234567890", 1, S("a1fghij"));
+ test(S("abcdefghij"), 1, 4, "1234567890", 5, S("a12345fghij"));
+ test(S("abcdefghij"), 1, 4, "1234567890", 9, S("a123456789fghij"));
+ test(S("abcdefghij"), 1, 4, "1234567890", 10, S("a1234567890fghij"));
+ test(S("abcdefghij"), 1, 4, "12345678901234567890", 0, S("afghij"));
+ test(S("abcdefghij"), 1, 4, "12345678901234567890", 1, S("a1fghij"));
+ test(S("abcdefghij"), 1, 4, "12345678901234567890", 10, S("a1234567890fghij"));
+ test(S("abcdefghij"), 1, 4, "12345678901234567890", 19, S("a1234567890123456789fghij"));
+ test(S("abcdefghij"), 1, 4, "12345678901234567890", 20, S("a12345678901234567890fghij"));
+ test(S("abcdefghij"), 1, 8, "", 0, S("aj"));
+ test(S("abcdefghij"), 1, 8, "12345", 0, S("aj"));
+ test(S("abcdefghij"), 1, 8, "12345", 1, S("a1j"));
+ test(S("abcdefghij"), 1, 8, "12345", 2, S("a12j"));
+ test(S("abcdefghij"), 1, 8, "12345", 4, S("a1234j"));
+ test(S("abcdefghij"), 1, 8, "12345", 5, S("a12345j"));
+ test(S("abcdefghij"), 1, 8, "1234567890", 0, S("aj"));
+ test(S("abcdefghij"), 1, 8, "1234567890", 1, S("a1j"));
+ test(S("abcdefghij"), 1, 8, "1234567890", 5, S("a12345j"));
+ test(S("abcdefghij"), 1, 8, "1234567890", 9, S("a123456789j"));
+ test(S("abcdefghij"), 1, 8, "1234567890", 10, S("a1234567890j"));
+ test(S("abcdefghij"), 1, 8, "12345678901234567890", 0, S("aj"));
+ test(S("abcdefghij"), 1, 8, "12345678901234567890", 1, S("a1j"));
+ test(S("abcdefghij"), 1, 8, "12345678901234567890", 10, S("a1234567890j"));
+ test(S("abcdefghij"), 1, 8, "12345678901234567890", 19, S("a1234567890123456789j"));
+ test(S("abcdefghij"), 1, 8, "12345678901234567890", 20, S("a12345678901234567890j"));
+ test(S("abcdefghij"), 1, 9, "", 0, S("a"));
+ test(S("abcdefghij"), 1, 9, "12345", 0, S("a"));
+ test(S("abcdefghij"), 1, 9, "12345", 1, S("a1"));
+ test(S("abcdefghij"), 1, 9, "12345", 2, S("a12"));
+ test(S("abcdefghij"), 1, 9, "12345", 4, S("a1234"));
+ test(S("abcdefghij"), 1, 9, "12345", 5, S("a12345"));
+ test(S("abcdefghij"), 1, 9, "1234567890", 0, S("a"));
+ test(S("abcdefghij"), 1, 9, "1234567890", 1, S("a1"));
+ test(S("abcdefghij"), 1, 9, "1234567890", 5, S("a12345"));
+ test(S("abcdefghij"), 1, 9, "1234567890", 9, S("a123456789"));
+ test(S("abcdefghij"), 1, 9, "1234567890", 10, S("a1234567890"));
+ test(S("abcdefghij"), 1, 9, "12345678901234567890", 0, S("a"));
+ test(S("abcdefghij"), 1, 9, "12345678901234567890", 1, S("a1"));
+ test(S("abcdefghij"), 1, 9, "12345678901234567890", 10, S("a1234567890"));
+ test(S("abcdefghij"), 1, 9, "12345678901234567890", 19, S("a1234567890123456789"));
+ test(S("abcdefghij"), 1, 9, "12345678901234567890", 20, S("a12345678901234567890"));
+ test(S("abcdefghij"), 5, 0, "", 0, S("abcdefghij"));
+ test(S("abcdefghij"), 5, 0, "12345", 0, S("abcdefghij"));
+ test(S("abcdefghij"), 5, 0, "12345", 1, S("abcde1fghij"));
+ test(S("abcdefghij"), 5, 0, "12345", 2, S("abcde12fghij"));
+ test(S("abcdefghij"), 5, 0, "12345", 4, S("abcde1234fghij"));
+ test(S("abcdefghij"), 5, 0, "12345", 5, S("abcde12345fghij"));
+ test(S("abcdefghij"), 5, 0, "1234567890", 0, S("abcdefghij"));
+ test(S("abcdefghij"), 5, 0, "1234567890", 1, S("abcde1fghij"));
+ test(S("abcdefghij"), 5, 0, "1234567890", 5, S("abcde12345fghij"));
+ test(S("abcdefghij"), 5, 0, "1234567890", 9, S("abcde123456789fghij"));
+ test(S("abcdefghij"), 5, 0, "1234567890", 10, S("abcde1234567890fghij"));
+ test(S("abcdefghij"), 5, 0, "12345678901234567890", 0, S("abcdefghij"));
+ test(S("abcdefghij"), 5, 0, "12345678901234567890", 1, S("abcde1fghij"));
+ test(S("abcdefghij"), 5, 0, "12345678901234567890", 10, S("abcde1234567890fghij"));
+ test(S("abcdefghij"), 5, 0, "12345678901234567890", 19, S("abcde1234567890123456789fghij"));
+ test(S("abcdefghij"), 5, 0, "12345678901234567890", 20, S("abcde12345678901234567890fghij"));
+ test(S("abcdefghij"), 5, 1, "", 0, S("abcdeghij"));
+ test(S("abcdefghij"), 5, 1, "12345", 0, S("abcdeghij"));
+ test(S("abcdefghij"), 5, 1, "12345", 1, S("abcde1ghij"));
+ test(S("abcdefghij"), 5, 1, "12345", 2, S("abcde12ghij"));
+ test(S("abcdefghij"), 5, 1, "12345", 4, S("abcde1234ghij"));
+ test(S("abcdefghij"), 5, 1, "12345", 5, S("abcde12345ghij"));
+ test(S("abcdefghij"), 5, 1, "1234567890", 0, S("abcdeghij"));
+ test(S("abcdefghij"), 5, 1, "1234567890", 1, S("abcde1ghij"));
+ test(S("abcdefghij"), 5, 1, "1234567890", 5, S("abcde12345ghij"));
+ test(S("abcdefghij"), 5, 1, "1234567890", 9, S("abcde123456789ghij"));
+ test(S("abcdefghij"), 5, 1, "1234567890", 10, S("abcde1234567890ghij"));
+ test(S("abcdefghij"), 5, 1, "12345678901234567890", 0, S("abcdeghij"));
+ test(S("abcdefghij"), 5, 1, "12345678901234567890", 1, S("abcde1ghij"));
+ test(S("abcdefghij"), 5, 1, "12345678901234567890", 10, S("abcde1234567890ghij"));
+ test(S("abcdefghij"), 5, 1, "12345678901234567890", 19, S("abcde1234567890123456789ghij"));
+ test(S("abcdefghij"), 5, 1, "12345678901234567890", 20, S("abcde12345678901234567890ghij"));
+ test(S("abcdefghij"), 5, 2, "", 0, S("abcdehij"));
+ test(S("abcdefghij"), 5, 2, "12345", 0, S("abcdehij"));
+ test(S("abcdefghij"), 5, 2, "12345", 1, S("abcde1hij"));
+ test(S("abcdefghij"), 5, 2, "12345", 2, S("abcde12hij"));
+ test(S("abcdefghij"), 5, 2, "12345", 4, S("abcde1234hij"));
+ test(S("abcdefghij"), 5, 2, "12345", 5, S("abcde12345hij"));
+ test(S("abcdefghij"), 5, 2, "1234567890", 0, S("abcdehij"));
+ test(S("abcdefghij"), 5, 2, "1234567890", 1, S("abcde1hij"));
+ test(S("abcdefghij"), 5, 2, "1234567890", 5, S("abcde12345hij"));
+ test(S("abcdefghij"), 5, 2, "1234567890", 9, S("abcde123456789hij"));
+ test(S("abcdefghij"), 5, 2, "1234567890", 10, S("abcde1234567890hij"));
+ test(S("abcdefghij"), 5, 2, "12345678901234567890", 0, S("abcdehij"));
+ test(S("abcdefghij"), 5, 2, "12345678901234567890", 1, S("abcde1hij"));
+ test(S("abcdefghij"), 5, 2, "12345678901234567890", 10, S("abcde1234567890hij"));
+ test(S("abcdefghij"), 5, 2, "12345678901234567890", 19, S("abcde1234567890123456789hij"));
+ test(S("abcdefghij"), 5, 2, "12345678901234567890", 20, S("abcde12345678901234567890hij"));
+ test(S("abcdefghij"), 5, 4, "", 0, S("abcdej"));
+ test(S("abcdefghij"), 5, 4, "12345", 0, S("abcdej"));
+ test(S("abcdefghij"), 5, 4, "12345", 1, S("abcde1j"));
+ test(S("abcdefghij"), 5, 4, "12345", 2, S("abcde12j"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test5()
-{
- test(S("abcdefghij"), 5, 4, "12345", 4, S("abcde1234j"));
- test(S("abcdefghij"), 5, 4, "12345", 5, S("abcde12345j"));
- test(S("abcdefghij"), 5, 4, "1234567890", 0, S("abcdej"));
- test(S("abcdefghij"), 5, 4, "1234567890", 1, S("abcde1j"));
- test(S("abcdefghij"), 5, 4, "1234567890", 5, S("abcde12345j"));
- test(S("abcdefghij"), 5, 4, "1234567890", 9, S("abcde123456789j"));
- test(S("abcdefghij"), 5, 4, "1234567890", 10, S("abcde1234567890j"));
- test(S("abcdefghij"), 5, 4, "12345678901234567890", 0, S("abcdej"));
- test(S("abcdefghij"), 5, 4, "12345678901234567890", 1, S("abcde1j"));
- test(S("abcdefghij"), 5, 4, "12345678901234567890", 10, S("abcde1234567890j"));
- test(S("abcdefghij"), 5, 4, "12345678901234567890", 19, S("abcde1234567890123456789j"));
- test(S("abcdefghij"), 5, 4, "12345678901234567890", 20, S("abcde12345678901234567890j"));
- test(S("abcdefghij"), 5, 5, "", 0, S("abcde"));
- test(S("abcdefghij"), 5, 5, "12345", 0, S("abcde"));
- test(S("abcdefghij"), 5, 5, "12345", 1, S("abcde1"));
- test(S("abcdefghij"), 5, 5, "12345", 2, S("abcde12"));
- test(S("abcdefghij"), 5, 5, "12345", 4, S("abcde1234"));
- test(S("abcdefghij"), 5, 5, "12345", 5, S("abcde12345"));
- test(S("abcdefghij"), 5, 5, "1234567890", 0, S("abcde"));
- test(S("abcdefghij"), 5, 5, "1234567890", 1, S("abcde1"));
- test(S("abcdefghij"), 5, 5, "1234567890", 5, S("abcde12345"));
- test(S("abcdefghij"), 5, 5, "1234567890", 9, S("abcde123456789"));
- test(S("abcdefghij"), 5, 5, "1234567890", 10, S("abcde1234567890"));
- test(S("abcdefghij"), 5, 5, "12345678901234567890", 0, S("abcde"));
- test(S("abcdefghij"), 5, 5, "12345678901234567890", 1, S("abcde1"));
- test(S("abcdefghij"), 5, 5, "12345678901234567890", 10, S("abcde1234567890"));
- test(S("abcdefghij"), 5, 5, "12345678901234567890", 19, S("abcde1234567890123456789"));
- test(S("abcdefghij"), 5, 5, "12345678901234567890", 20, S("abcde12345678901234567890"));
- test(S("abcdefghij"), 9, 0, "", 0, S("abcdefghij"));
- test(S("abcdefghij"), 9, 0, "12345", 0, S("abcdefghij"));
- test(S("abcdefghij"), 9, 0, "12345", 1, S("abcdefghi1j"));
- test(S("abcdefghij"), 9, 0, "12345", 2, S("abcdefghi12j"));
- test(S("abcdefghij"), 9, 0, "12345", 4, S("abcdefghi1234j"));
- test(S("abcdefghij"), 9, 0, "12345", 5, S("abcdefghi12345j"));
- test(S("abcdefghij"), 9, 0, "1234567890", 0, S("abcdefghij"));
- test(S("abcdefghij"), 9, 0, "1234567890", 1, S("abcdefghi1j"));
- test(S("abcdefghij"), 9, 0, "1234567890", 5, S("abcdefghi12345j"));
- test(S("abcdefghij"), 9, 0, "1234567890", 9, S("abcdefghi123456789j"));
- test(S("abcdefghij"), 9, 0, "1234567890", 10, S("abcdefghi1234567890j"));
- test(S("abcdefghij"), 9, 0, "12345678901234567890", 0, S("abcdefghij"));
- test(S("abcdefghij"), 9, 0, "12345678901234567890", 1, S("abcdefghi1j"));
- test(S("abcdefghij"), 9, 0, "12345678901234567890", 10, S("abcdefghi1234567890j"));
- test(S("abcdefghij"), 9, 0, "12345678901234567890", 19, S("abcdefghi1234567890123456789j"));
- test(S("abcdefghij"), 9, 0, "12345678901234567890", 20, S("abcdefghi12345678901234567890j"));
- test(S("abcdefghij"), 9, 1, "", 0, S("abcdefghi"));
- test(S("abcdefghij"), 9, 1, "12345", 0, S("abcdefghi"));
- test(S("abcdefghij"), 9, 1, "12345", 1, S("abcdefghi1"));
- test(S("abcdefghij"), 9, 1, "12345", 2, S("abcdefghi12"));
- test(S("abcdefghij"), 9, 1, "12345", 4, S("abcdefghi1234"));
- test(S("abcdefghij"), 9, 1, "12345", 5, S("abcdefghi12345"));
- test(S("abcdefghij"), 9, 1, "1234567890", 0, S("abcdefghi"));
- test(S("abcdefghij"), 9, 1, "1234567890", 1, S("abcdefghi1"));
- test(S("abcdefghij"), 9, 1, "1234567890", 5, S("abcdefghi12345"));
- test(S("abcdefghij"), 9, 1, "1234567890", 9, S("abcdefghi123456789"));
- test(S("abcdefghij"), 9, 1, "1234567890", 10, S("abcdefghi1234567890"));
- test(S("abcdefghij"), 9, 1, "12345678901234567890", 0, S("abcdefghi"));
- test(S("abcdefghij"), 9, 1, "12345678901234567890", 1, S("abcdefghi1"));
- test(S("abcdefghij"), 9, 1, "12345678901234567890", 10, S("abcdefghi1234567890"));
- test(S("abcdefghij"), 9, 1, "12345678901234567890", 19, S("abcdefghi1234567890123456789"));
- test(S("abcdefghij"), 9, 1, "12345678901234567890", 20, S("abcdefghi12345678901234567890"));
- test(S("abcdefghij"), 10, 0, "", 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, 0, "12345", 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, 0, "12345", 1, S("abcdefghij1"));
- test(S("abcdefghij"), 10, 0, "12345", 2, S("abcdefghij12"));
- test(S("abcdefghij"), 10, 0, "12345", 4, S("abcdefghij1234"));
- test(S("abcdefghij"), 10, 0, "12345", 5, S("abcdefghij12345"));
- test(S("abcdefghij"), 10, 0, "1234567890", 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, 0, "1234567890", 1, S("abcdefghij1"));
- test(S("abcdefghij"), 10, 0, "1234567890", 5, S("abcdefghij12345"));
- test(S("abcdefghij"), 10, 0, "1234567890", 9, S("abcdefghij123456789"));
- test(S("abcdefghij"), 10, 0, "1234567890", 10, S("abcdefghij1234567890"));
- test(S("abcdefghij"), 10, 0, "12345678901234567890", 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, 0, "12345678901234567890", 1, S("abcdefghij1"));
- test(S("abcdefghij"), 10, 0, "12345678901234567890", 10, S("abcdefghij1234567890"));
- test(S("abcdefghij"), 10, 0, "12345678901234567890", 19, S("abcdefghij1234567890123456789"));
- test(S("abcdefghij"), 10, 0, "12345678901234567890", 20, S("abcdefghij12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 0, 0, "", 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, "12345", 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, "12345", 1, S("1abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, "12345", 2, S("12abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, "12345", 4, S("1234abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, "12345", 5, S("12345abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, "1234567890", 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, "1234567890", 1, S("1abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, "1234567890", 5, S("12345abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, "1234567890", 9, S("123456789abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, "1234567890", 10, S("1234567890abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, "12345678901234567890", 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, "12345678901234567890", 1, S("1abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, "12345678901234567890", 10, S("1234567890abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, "12345678901234567890", 19, S("1234567890123456789abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, "12345678901234567890", 20, S("12345678901234567890abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, "", 0, S("bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, "12345", 0, S("bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, "12345", 1, S("1bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, "12345", 2, S("12bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, "12345", 4, S("1234bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, "12345", 5, S("12345bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, "1234567890", 0, S("bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, "1234567890", 1, S("1bcdefghijklmnopqrst"));
+TEST_CONSTEXPR_CXX20 bool test5() {
+ test(S("abcdefghij"), 5, 4, "12345", 4, S("abcde1234j"));
+ test(S("abcdefghij"), 5, 4, "12345", 5, S("abcde12345j"));
+ test(S("abcdefghij"), 5, 4, "1234567890", 0, S("abcdej"));
+ test(S("abcdefghij"), 5, 4, "1234567890", 1, S("abcde1j"));
+ test(S("abcdefghij"), 5, 4, "1234567890", 5, S("abcde12345j"));
+ test(S("abcdefghij"), 5, 4, "1234567890", 9, S("abcde123456789j"));
+ test(S("abcdefghij"), 5, 4, "1234567890", 10, S("abcde1234567890j"));
+ test(S("abcdefghij"), 5, 4, "12345678901234567890", 0, S("abcdej"));
+ test(S("abcdefghij"), 5, 4, "12345678901234567890", 1, S("abcde1j"));
+ test(S("abcdefghij"), 5, 4, "12345678901234567890", 10, S("abcde1234567890j"));
+ test(S("abcdefghij"), 5, 4, "12345678901234567890", 19, S("abcde1234567890123456789j"));
+ test(S("abcdefghij"), 5, 4, "12345678901234567890", 20, S("abcde12345678901234567890j"));
+ test(S("abcdefghij"), 5, 5, "", 0, S("abcde"));
+ test(S("abcdefghij"), 5, 5, "12345", 0, S("abcde"));
+ test(S("abcdefghij"), 5, 5, "12345", 1, S("abcde1"));
+ test(S("abcdefghij"), 5, 5, "12345", 2, S("abcde12"));
+ test(S("abcdefghij"), 5, 5, "12345", 4, S("abcde1234"));
+ test(S("abcdefghij"), 5, 5, "12345", 5, S("abcde12345"));
+ test(S("abcdefghij"), 5, 5, "1234567890", 0, S("abcde"));
+ test(S("abcdefghij"), 5, 5, "1234567890", 1, S("abcde1"));
+ test(S("abcdefghij"), 5, 5, "1234567890", 5, S("abcde12345"));
+ test(S("abcdefghij"), 5, 5, "1234567890", 9, S("abcde123456789"));
+ test(S("abcdefghij"), 5, 5, "1234567890", 10, S("abcde1234567890"));
+ test(S("abcdefghij"), 5, 5, "12345678901234567890", 0, S("abcde"));
+ test(S("abcdefghij"), 5, 5, "12345678901234567890", 1, S("abcde1"));
+ test(S("abcdefghij"), 5, 5, "12345678901234567890", 10, S("abcde1234567890"));
+ test(S("abcdefghij"), 5, 5, "12345678901234567890", 19, S("abcde1234567890123456789"));
+ test(S("abcdefghij"), 5, 5, "12345678901234567890", 20, S("abcde12345678901234567890"));
+ test(S("abcdefghij"), 9, 0, "", 0, S("abcdefghij"));
+ test(S("abcdefghij"), 9, 0, "12345", 0, S("abcdefghij"));
+ test(S("abcdefghij"), 9, 0, "12345", 1, S("abcdefghi1j"));
+ test(S("abcdefghij"), 9, 0, "12345", 2, S("abcdefghi12j"));
+ test(S("abcdefghij"), 9, 0, "12345", 4, S("abcdefghi1234j"));
+ test(S("abcdefghij"), 9, 0, "12345", 5, S("abcdefghi12345j"));
+ test(S("abcdefghij"), 9, 0, "1234567890", 0, S("abcdefghij"));
+ test(S("abcdefghij"), 9, 0, "1234567890", 1, S("abcdefghi1j"));
+ test(S("abcdefghij"), 9, 0, "1234567890", 5, S("abcdefghi12345j"));
+ test(S("abcdefghij"), 9, 0, "1234567890", 9, S("abcdefghi123456789j"));
+ test(S("abcdefghij"), 9, 0, "1234567890", 10, S("abcdefghi1234567890j"));
+ test(S("abcdefghij"), 9, 0, "12345678901234567890", 0, S("abcdefghij"));
+ test(S("abcdefghij"), 9, 0, "12345678901234567890", 1, S("abcdefghi1j"));
+ test(S("abcdefghij"), 9, 0, "12345678901234567890", 10, S("abcdefghi1234567890j"));
+ test(S("abcdefghij"), 9, 0, "12345678901234567890", 19, S("abcdefghi1234567890123456789j"));
+ test(S("abcdefghij"), 9, 0, "12345678901234567890", 20, S("abcdefghi12345678901234567890j"));
+ test(S("abcdefghij"), 9, 1, "", 0, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 1, "12345", 0, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 1, "12345", 1, S("abcdefghi1"));
+ test(S("abcdefghij"), 9, 1, "12345", 2, S("abcdefghi12"));
+ test(S("abcdefghij"), 9, 1, "12345", 4, S("abcdefghi1234"));
+ test(S("abcdefghij"), 9, 1, "12345", 5, S("abcdefghi12345"));
+ test(S("abcdefghij"), 9, 1, "1234567890", 0, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 1, "1234567890", 1, S("abcdefghi1"));
+ test(S("abcdefghij"), 9, 1, "1234567890", 5, S("abcdefghi12345"));
+ test(S("abcdefghij"), 9, 1, "1234567890", 9, S("abcdefghi123456789"));
+ test(S("abcdefghij"), 9, 1, "1234567890", 10, S("abcdefghi1234567890"));
+ test(S("abcdefghij"), 9, 1, "12345678901234567890", 0, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 1, "12345678901234567890", 1, S("abcdefghi1"));
+ test(S("abcdefghij"), 9, 1, "12345678901234567890", 10, S("abcdefghi1234567890"));
+ test(S("abcdefghij"), 9, 1, "12345678901234567890", 19, S("abcdefghi1234567890123456789"));
+ test(S("abcdefghij"), 9, 1, "12345678901234567890", 20, S("abcdefghi12345678901234567890"));
+ test(S("abcdefghij"), 10, 0, "", 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 0, "12345", 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 0, "12345", 1, S("abcdefghij1"));
+ test(S("abcdefghij"), 10, 0, "12345", 2, S("abcdefghij12"));
+ test(S("abcdefghij"), 10, 0, "12345", 4, S("abcdefghij1234"));
+ test(S("abcdefghij"), 10, 0, "12345", 5, S("abcdefghij12345"));
+ test(S("abcdefghij"), 10, 0, "1234567890", 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 0, "1234567890", 1, S("abcdefghij1"));
+ test(S("abcdefghij"), 10, 0, "1234567890", 5, S("abcdefghij12345"));
+ test(S("abcdefghij"), 10, 0, "1234567890", 9, S("abcdefghij123456789"));
+ test(S("abcdefghij"), 10, 0, "1234567890", 10, S("abcdefghij1234567890"));
+ test(S("abcdefghij"), 10, 0, "12345678901234567890", 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 0, "12345678901234567890", 1, S("abcdefghij1"));
+ test(S("abcdefghij"), 10, 0, "12345678901234567890", 10, S("abcdefghij1234567890"));
+ test(S("abcdefghij"), 10, 0, "12345678901234567890", 19, S("abcdefghij1234567890123456789"));
+ test(S("abcdefghij"), 10, 0, "12345678901234567890", 20, S("abcdefghij12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, "", 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, "12345", 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, "12345", 1, S("1abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, "12345", 2, S("12abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, "12345", 4, S("1234abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, "12345", 5, S("12345abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, "1234567890", 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, "1234567890", 1, S("1abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, "1234567890", 5, S("12345abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, "1234567890", 9, S("123456789abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, "1234567890", 10, S("1234567890abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, "12345678901234567890", 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, "12345678901234567890", 1, S("1abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, "12345678901234567890", 10, S("1234567890abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, "12345678901234567890", 19, S("1234567890123456789abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, "12345678901234567890", 20, S("12345678901234567890abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, "", 0, S("bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, "12345", 0, S("bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, "12345", 1, S("1bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, "12345", 2, S("12bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, "12345", 4, S("1234bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, "12345", 5, S("12345bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, "1234567890", 0, S("bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, "1234567890", 1, S("1bcdefghijklmnopqrst"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test6()
-{
- test(S("abcdefghijklmnopqrst"), 0, 1, "1234567890", 5, S("12345bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, "1234567890", 9, S("123456789bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, "1234567890", 10, S("1234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, "12345678901234567890", 0, S("bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, "12345678901234567890", 1, S("1bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, "12345678901234567890", 10, S("1234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, "12345678901234567890", 19, S("1234567890123456789bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, "12345678901234567890", 20, S("12345678901234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, "", 0, S("klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, "12345", 0, S("klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, "12345", 1, S("1klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, "12345", 2, S("12klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, "12345", 4, S("1234klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, "12345", 5, S("12345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, "1234567890", 0, S("klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, "1234567890", 1, S("1klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, "1234567890", 5, S("12345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, "1234567890", 9, S("123456789klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, "1234567890", 10, S("1234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, "12345678901234567890", 0, S("klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, "12345678901234567890", 1, S("1klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, "12345678901234567890", 10, S("1234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, "12345678901234567890", 19, S("1234567890123456789klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, "12345678901234567890", 20, S("12345678901234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 19, "", 0, S("t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, "12345", 0, S("t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, "12345", 1, S("1t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, "12345", 2, S("12t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, "12345", 4, S("1234t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, "12345", 5, S("12345t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, "1234567890", 0, S("t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, "1234567890", 1, S("1t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, "1234567890", 5, S("12345t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, "1234567890", 9, S("123456789t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, "1234567890", 10, S("1234567890t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, "12345678901234567890", 0, S("t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, "12345678901234567890", 1, S("1t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, "12345678901234567890", 10, S("1234567890t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, "12345678901234567890", 19, S("1234567890123456789t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, "12345678901234567890", 20, S("12345678901234567890t"));
- test(S("abcdefghijklmnopqrst"), 0, 20, "", 0, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 20, "12345", 0, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 20, "12345", 1, S("1"));
- test(S("abcdefghijklmnopqrst"), 0, 20, "12345", 2, S("12"));
- test(S("abcdefghijklmnopqrst"), 0, 20, "12345", 4, S("1234"));
- test(S("abcdefghijklmnopqrst"), 0, 20, "12345", 5, S("12345"));
- test(S("abcdefghijklmnopqrst"), 0, 20, "1234567890", 0, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 20, "1234567890", 1, S("1"));
- test(S("abcdefghijklmnopqrst"), 0, 20, "1234567890", 5, S("12345"));
- test(S("abcdefghijklmnopqrst"), 0, 20, "1234567890", 9, S("123456789"));
- test(S("abcdefghijklmnopqrst"), 0, 20, "1234567890", 10, S("1234567890"));
- test(S("abcdefghijklmnopqrst"), 0, 20, "12345678901234567890", 0, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 20, "12345678901234567890", 1, S("1"));
- test(S("abcdefghijklmnopqrst"), 0, 20, "12345678901234567890", 10, S("1234567890"));
- test(S("abcdefghijklmnopqrst"), 0, 20, "12345678901234567890", 19, S("1234567890123456789"));
- test(S("abcdefghijklmnopqrst"), 0, 20, "12345678901234567890", 20, S("12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 1, 0, "", 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, "12345", 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, "12345", 1, S("a1bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, "12345", 2, S("a12bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, "12345", 4, S("a1234bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, "12345", 5, S("a12345bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, "1234567890", 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, "1234567890", 1, S("a1bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, "1234567890", 5, S("a12345bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, "1234567890", 9, S("a123456789bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, "1234567890", 10, S("a1234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, "12345678901234567890", 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, "12345678901234567890", 1, S("a1bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, "12345678901234567890", 10, S("a1234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, "12345678901234567890", 19, S("a1234567890123456789bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, "12345678901234567890", 20, S("a12345678901234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, "", 0, S("acdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, "12345", 0, S("acdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, "12345", 1, S("a1cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, "12345", 2, S("a12cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, "12345", 4, S("a1234cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, "12345", 5, S("a12345cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, "1234567890", 0, S("acdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, "1234567890", 1, S("a1cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, "1234567890", 5, S("a12345cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, "1234567890", 9, S("a123456789cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, "1234567890", 10, S("a1234567890cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, "12345678901234567890", 0, S("acdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, "12345678901234567890", 1, S("a1cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, "12345678901234567890", 10, S("a1234567890cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, "12345678901234567890", 19, S("a1234567890123456789cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, "12345678901234567890", 20, S("a12345678901234567890cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, "", 0, S("aklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, "12345", 0, S("aklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, "12345", 1, S("a1klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, "12345", 2, S("a12klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, "12345", 4, S("a1234klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, "12345", 5, S("a12345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, "1234567890", 0, S("aklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, "1234567890", 1, S("a1klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, "1234567890", 5, S("a12345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, "1234567890", 9, S("a123456789klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, "1234567890", 10, S("a1234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, "12345678901234567890", 0, S("aklmnopqrst"));
+TEST_CONSTEXPR_CXX20 bool test6() {
+ test(S("abcdefghijklmnopqrst"), 0, 1, "1234567890", 5, S("12345bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, "1234567890", 9, S("123456789bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, "1234567890", 10, S("1234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, "12345678901234567890", 0, S("bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, "12345678901234567890", 1, S("1bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, "12345678901234567890", 10, S("1234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, "12345678901234567890", 19, S("1234567890123456789bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, "12345678901234567890", 20, S("12345678901234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, "", 0, S("klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, "12345", 0, S("klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, "12345", 1, S("1klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, "12345", 2, S("12klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, "12345", 4, S("1234klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, "12345", 5, S("12345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, "1234567890", 0, S("klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, "1234567890", 1, S("1klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, "1234567890", 5, S("12345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, "1234567890", 9, S("123456789klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, "1234567890", 10, S("1234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, "12345678901234567890", 0, S("klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, "12345678901234567890", 1, S("1klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, "12345678901234567890", 10, S("1234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, "12345678901234567890", 19, S("1234567890123456789klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, "12345678901234567890", 20, S("12345678901234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, "", 0, S("t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, "12345", 0, S("t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, "12345", 1, S("1t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, "12345", 2, S("12t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, "12345", 4, S("1234t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, "12345", 5, S("12345t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, "1234567890", 0, S("t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, "1234567890", 1, S("1t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, "1234567890", 5, S("12345t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, "1234567890", 9, S("123456789t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, "1234567890", 10, S("1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, "12345678901234567890", 0, S("t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, "12345678901234567890", 1, S("1t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, "12345678901234567890", 10, S("1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, "12345678901234567890", 19, S("1234567890123456789t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, "12345678901234567890", 20, S("12345678901234567890t"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, "", 0, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 20, "12345", 0, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 20, "12345", 1, S("1"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, "12345", 2, S("12"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, "12345", 4, S("1234"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, "12345", 5, S("12345"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, "1234567890", 0, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 20, "1234567890", 1, S("1"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, "1234567890", 5, S("12345"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, "1234567890", 9, S("123456789"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, "1234567890", 10, S("1234567890"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, "12345678901234567890", 0, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 20, "12345678901234567890", 1, S("1"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, "12345678901234567890", 10, S("1234567890"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, "12345678901234567890", 19, S("1234567890123456789"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, "12345678901234567890", 20, S("12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, "", 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, "12345", 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, "12345", 1, S("a1bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, "12345", 2, S("a12bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, "12345", 4, S("a1234bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, "12345", 5, S("a12345bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, "1234567890", 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, "1234567890", 1, S("a1bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, "1234567890", 5, S("a12345bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, "1234567890", 9, S("a123456789bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, "1234567890", 10, S("a1234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, "12345678901234567890", 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, "12345678901234567890", 1, S("a1bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, "12345678901234567890", 10, S("a1234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, "12345678901234567890", 19, S("a1234567890123456789bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, "12345678901234567890", 20, S("a12345678901234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, "", 0, S("acdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, "12345", 0, S("acdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, "12345", 1, S("a1cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, "12345", 2, S("a12cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, "12345", 4, S("a1234cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, "12345", 5, S("a12345cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, "1234567890", 0, S("acdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, "1234567890", 1, S("a1cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, "1234567890", 5, S("a12345cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, "1234567890", 9, S("a123456789cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, "1234567890", 10, S("a1234567890cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, "12345678901234567890", 0, S("acdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, "12345678901234567890", 1, S("a1cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, "12345678901234567890", 10, S("a1234567890cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, "12345678901234567890", 19, S("a1234567890123456789cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, "12345678901234567890", 20, S("a12345678901234567890cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, "", 0, S("aklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, "12345", 0, S("aklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, "12345", 1, S("a1klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, "12345", 2, S("a12klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, "12345", 4, S("a1234klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, "12345", 5, S("a12345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, "1234567890", 0, S("aklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, "1234567890", 1, S("a1klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, "1234567890", 5, S("a12345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, "1234567890", 9, S("a123456789klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, "1234567890", 10, S("a1234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, "12345678901234567890", 0, S("aklmnopqrst"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test7()
-{
- test(S("abcdefghijklmnopqrst"), 1, 9, "12345678901234567890", 1, S("a1klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, "12345678901234567890", 10, S("a1234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, "12345678901234567890", 19, S("a1234567890123456789klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, "12345678901234567890", 20, S("a12345678901234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 18, "", 0, S("at"));
- test(S("abcdefghijklmnopqrst"), 1, 18, "12345", 0, S("at"));
- test(S("abcdefghijklmnopqrst"), 1, 18, "12345", 1, S("a1t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, "12345", 2, S("a12t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, "12345", 4, S("a1234t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, "12345", 5, S("a12345t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, "1234567890", 0, S("at"));
- test(S("abcdefghijklmnopqrst"), 1, 18, "1234567890", 1, S("a1t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, "1234567890", 5, S("a12345t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, "1234567890", 9, S("a123456789t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, "1234567890", 10, S("a1234567890t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, "12345678901234567890", 0, S("at"));
- test(S("abcdefghijklmnopqrst"), 1, 18, "12345678901234567890", 1, S("a1t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, "12345678901234567890", 10, S("a1234567890t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, "12345678901234567890", 19, S("a1234567890123456789t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, "12345678901234567890", 20, S("a12345678901234567890t"));
- test(S("abcdefghijklmnopqrst"), 1, 19, "", 0, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 19, "12345", 0, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 19, "12345", 1, S("a1"));
- test(S("abcdefghijklmnopqrst"), 1, 19, "12345", 2, S("a12"));
- test(S("abcdefghijklmnopqrst"), 1, 19, "12345", 4, S("a1234"));
- test(S("abcdefghijklmnopqrst"), 1, 19, "12345", 5, S("a12345"));
- test(S("abcdefghijklmnopqrst"), 1, 19, "1234567890", 0, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 19, "1234567890", 1, S("a1"));
- test(S("abcdefghijklmnopqrst"), 1, 19, "1234567890", 5, S("a12345"));
- test(S("abcdefghijklmnopqrst"), 1, 19, "1234567890", 9, S("a123456789"));
- test(S("abcdefghijklmnopqrst"), 1, 19, "1234567890", 10, S("a1234567890"));
- test(S("abcdefghijklmnopqrst"), 1, 19, "12345678901234567890", 0, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 19, "12345678901234567890", 1, S("a1"));
- test(S("abcdefghijklmnopqrst"), 1, 19, "12345678901234567890", 10, S("a1234567890"));
- test(S("abcdefghijklmnopqrst"), 1, 19, "12345678901234567890", 19, S("a1234567890123456789"));
- test(S("abcdefghijklmnopqrst"), 1, 19, "12345678901234567890", 20, S("a12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 10, 0, "", 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, "12345", 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, "12345", 1, S("abcdefghij1klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, "12345", 2, S("abcdefghij12klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, "12345", 4, S("abcdefghij1234klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, "12345", 5, S("abcdefghij12345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, "1234567890", 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, "1234567890", 1, S("abcdefghij1klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, "1234567890", 5, S("abcdefghij12345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, "1234567890", 9, S("abcdefghij123456789klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, "1234567890", 10, S("abcdefghij1234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, "12345678901234567890", 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, "12345678901234567890", 1, S("abcdefghij1klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, "12345678901234567890", 10, S("abcdefghij1234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, "12345678901234567890", 19, S("abcdefghij1234567890123456789klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, "12345678901234567890", 20, S("abcdefghij12345678901234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, "", 0, S("abcdefghijlmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, "12345", 0, S("abcdefghijlmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, "12345", 1, S("abcdefghij1lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, "12345", 2, S("abcdefghij12lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, "12345", 4, S("abcdefghij1234lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, "12345", 5, S("abcdefghij12345lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, "1234567890", 0, S("abcdefghijlmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, "1234567890", 1, S("abcdefghij1lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, "1234567890", 5, S("abcdefghij12345lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, "1234567890", 9, S("abcdefghij123456789lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, "1234567890", 10, S("abcdefghij1234567890lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, "12345678901234567890", 0, S("abcdefghijlmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, "12345678901234567890", 1, S("abcdefghij1lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, "12345678901234567890", 10, S("abcdefghij1234567890lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, "12345678901234567890", 19, S("abcdefghij1234567890123456789lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, "12345678901234567890", 20, S("abcdefghij12345678901234567890lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, "", 0, S("abcdefghijpqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, "12345", 0, S("abcdefghijpqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, "12345", 1, S("abcdefghij1pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, "12345", 2, S("abcdefghij12pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, "12345", 4, S("abcdefghij1234pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, "12345", 5, S("abcdefghij12345pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, "1234567890", 0, S("abcdefghijpqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, "1234567890", 1, S("abcdefghij1pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, "1234567890", 5, S("abcdefghij12345pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, "1234567890", 9, S("abcdefghij123456789pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, "1234567890", 10, S("abcdefghij1234567890pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, "12345678901234567890", 0, S("abcdefghijpqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, "12345678901234567890", 1, S("abcdefghij1pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, "12345678901234567890", 10, S("abcdefghij1234567890pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, "12345678901234567890", 19, S("abcdefghij1234567890123456789pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, "12345678901234567890", 20, S("abcdefghij12345678901234567890pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 9, "", 0, S("abcdefghijt"));
- test(S("abcdefghijklmnopqrst"), 10, 9, "12345", 0, S("abcdefghijt"));
- test(S("abcdefghijklmnopqrst"), 10, 9, "12345", 1, S("abcdefghij1t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, "12345", 2, S("abcdefghij12t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, "12345", 4, S("abcdefghij1234t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, "12345", 5, S("abcdefghij12345t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, "1234567890", 0, S("abcdefghijt"));
- test(S("abcdefghijklmnopqrst"), 10, 9, "1234567890", 1, S("abcdefghij1t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, "1234567890", 5, S("abcdefghij12345t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, "1234567890", 9, S("abcdefghij123456789t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, "1234567890", 10, S("abcdefghij1234567890t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, "12345678901234567890", 0, S("abcdefghijt"));
- test(S("abcdefghijklmnopqrst"), 10, 9, "12345678901234567890", 1, S("abcdefghij1t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, "12345678901234567890", 10, S("abcdefghij1234567890t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, "12345678901234567890", 19, S("abcdefghij1234567890123456789t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, "12345678901234567890", 20, S("abcdefghij12345678901234567890t"));
+TEST_CONSTEXPR_CXX20 bool test7() {
+ test(S("abcdefghijklmnopqrst"), 1, 9, "12345678901234567890", 1, S("a1klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, "12345678901234567890", 10, S("a1234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, "12345678901234567890", 19, S("a1234567890123456789klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, "12345678901234567890", 20, S("a12345678901234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, "", 0, S("at"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, "12345", 0, S("at"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, "12345", 1, S("a1t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, "12345", 2, S("a12t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, "12345", 4, S("a1234t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, "12345", 5, S("a12345t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, "1234567890", 0, S("at"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, "1234567890", 1, S("a1t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, "1234567890", 5, S("a12345t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, "1234567890", 9, S("a123456789t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, "1234567890", 10, S("a1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, "12345678901234567890", 0, S("at"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, "12345678901234567890", 1, S("a1t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, "12345678901234567890", 10, S("a1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, "12345678901234567890", 19, S("a1234567890123456789t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, "12345678901234567890", 20, S("a12345678901234567890t"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, "", 0, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, "12345", 0, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, "12345", 1, S("a1"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, "12345", 2, S("a12"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, "12345", 4, S("a1234"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, "12345", 5, S("a12345"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, "1234567890", 0, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, "1234567890", 1, S("a1"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, "1234567890", 5, S("a12345"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, "1234567890", 9, S("a123456789"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, "1234567890", 10, S("a1234567890"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, "12345678901234567890", 0, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, "12345678901234567890", 1, S("a1"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, "12345678901234567890", 10, S("a1234567890"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, "12345678901234567890", 19, S("a1234567890123456789"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, "12345678901234567890", 20, S("a12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, "", 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, "12345", 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, "12345", 1, S("abcdefghij1klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, "12345", 2, S("abcdefghij12klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, "12345", 4, S("abcdefghij1234klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, "12345", 5, S("abcdefghij12345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, "1234567890", 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, "1234567890", 1, S("abcdefghij1klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, "1234567890", 5, S("abcdefghij12345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, "1234567890", 9, S("abcdefghij123456789klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, "1234567890", 10, S("abcdefghij1234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, "12345678901234567890", 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, "12345678901234567890", 1, S("abcdefghij1klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, "12345678901234567890", 10, S("abcdefghij1234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, "12345678901234567890", 19, S("abcdefghij1234567890123456789klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, "12345678901234567890", 20, S("abcdefghij12345678901234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, "", 0, S("abcdefghijlmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, "12345", 0, S("abcdefghijlmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, "12345", 1, S("abcdefghij1lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, "12345", 2, S("abcdefghij12lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, "12345", 4, S("abcdefghij1234lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, "12345", 5, S("abcdefghij12345lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, "1234567890", 0, S("abcdefghijlmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, "1234567890", 1, S("abcdefghij1lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, "1234567890", 5, S("abcdefghij12345lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, "1234567890", 9, S("abcdefghij123456789lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, "1234567890", 10, S("abcdefghij1234567890lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, "12345678901234567890", 0, S("abcdefghijlmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, "12345678901234567890", 1, S("abcdefghij1lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, "12345678901234567890", 10, S("abcdefghij1234567890lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, "12345678901234567890", 19, S("abcdefghij1234567890123456789lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, "12345678901234567890", 20, S("abcdefghij12345678901234567890lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, "", 0, S("abcdefghijpqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, "12345", 0, S("abcdefghijpqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, "12345", 1, S("abcdefghij1pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, "12345", 2, S("abcdefghij12pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, "12345", 4, S("abcdefghij1234pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, "12345", 5, S("abcdefghij12345pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, "1234567890", 0, S("abcdefghijpqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, "1234567890", 1, S("abcdefghij1pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, "1234567890", 5, S("abcdefghij12345pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, "1234567890", 9, S("abcdefghij123456789pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, "1234567890", 10, S("abcdefghij1234567890pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, "12345678901234567890", 0, S("abcdefghijpqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, "12345678901234567890", 1, S("abcdefghij1pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, "12345678901234567890", 10, S("abcdefghij1234567890pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, "12345678901234567890", 19, S("abcdefghij1234567890123456789pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, "12345678901234567890", 20, S("abcdefghij12345678901234567890pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, "", 0, S("abcdefghijt"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, "12345", 0, S("abcdefghijt"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, "12345", 1, S("abcdefghij1t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, "12345", 2, S("abcdefghij12t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, "12345", 4, S("abcdefghij1234t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, "12345", 5, S("abcdefghij12345t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, "1234567890", 0, S("abcdefghijt"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, "1234567890", 1, S("abcdefghij1t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, "1234567890", 5, S("abcdefghij12345t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, "1234567890", 9, S("abcdefghij123456789t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, "1234567890", 10, S("abcdefghij1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, "12345678901234567890", 0, S("abcdefghijt"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, "12345678901234567890", 1, S("abcdefghij1t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, "12345678901234567890", 10, S("abcdefghij1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, "12345678901234567890", 19, S("abcdefghij1234567890123456789t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, "12345678901234567890", 20, S("abcdefghij12345678901234567890t"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test8()
-{
- test(S("abcdefghijklmnopqrst"), 10, 10, "", 0, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 10, "12345", 0, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 10, "12345", 1, S("abcdefghij1"));
- test(S("abcdefghijklmnopqrst"), 10, 10, "12345", 2, S("abcdefghij12"));
- test(S("abcdefghijklmnopqrst"), 10, 10, "12345", 4, S("abcdefghij1234"));
- test(S("abcdefghijklmnopqrst"), 10, 10, "12345", 5, S("abcdefghij12345"));
- test(S("abcdefghijklmnopqrst"), 10, 10, "1234567890", 0, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 10, "1234567890", 1, S("abcdefghij1"));
- test(S("abcdefghijklmnopqrst"), 10, 10, "1234567890", 5, S("abcdefghij12345"));
- test(S("abcdefghijklmnopqrst"), 10, 10, "1234567890", 9, S("abcdefghij123456789"));
- test(S("abcdefghijklmnopqrst"), 10, 10, "1234567890", 10, S("abcdefghij1234567890"));
- test(S("abcdefghijklmnopqrst"), 10, 10, "12345678901234567890", 0, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 10, "12345678901234567890", 1, S("abcdefghij1"));
- test(S("abcdefghijklmnopqrst"), 10, 10, "12345678901234567890", 10, S("abcdefghij1234567890"));
- test(S("abcdefghijklmnopqrst"), 10, 10, "12345678901234567890", 19, S("abcdefghij1234567890123456789"));
- test(S("abcdefghijklmnopqrst"), 10, 10, "12345678901234567890", 20, S("abcdefghij12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 19, 0, "", 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, 0, "12345", 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, 0, "12345", 1, S("abcdefghijklmnopqrs1t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, "12345", 2, S("abcdefghijklmnopqrs12t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, "12345", 4, S("abcdefghijklmnopqrs1234t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, "12345", 5, S("abcdefghijklmnopqrs12345t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, "1234567890", 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, 0, "1234567890", 1, S("abcdefghijklmnopqrs1t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, "1234567890", 5, S("abcdefghijklmnopqrs12345t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, "1234567890", 9, S("abcdefghijklmnopqrs123456789t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, "1234567890", 10, S("abcdefghijklmnopqrs1234567890t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, "12345678901234567890", 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, 0, "12345678901234567890", 1, S("abcdefghijklmnopqrs1t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, "12345678901234567890", 10, S("abcdefghijklmnopqrs1234567890t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, "12345678901234567890", 19, S("abcdefghijklmnopqrs1234567890123456789t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, "12345678901234567890", 20, S("abcdefghijklmnopqrs12345678901234567890t"));
- test(S("abcdefghijklmnopqrst"), 19, 1, "", 0, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 1, "12345", 0, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 1, "12345", 1, S("abcdefghijklmnopqrs1"));
- test(S("abcdefghijklmnopqrst"), 19, 1, "12345", 2, S("abcdefghijklmnopqrs12"));
- test(S("abcdefghijklmnopqrst"), 19, 1, "12345", 4, S("abcdefghijklmnopqrs1234"));
- test(S("abcdefghijklmnopqrst"), 19, 1, "12345", 5, S("abcdefghijklmnopqrs12345"));
- test(S("abcdefghijklmnopqrst"), 19, 1, "1234567890", 0, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 1, "1234567890", 1, S("abcdefghijklmnopqrs1"));
- test(S("abcdefghijklmnopqrst"), 19, 1, "1234567890", 5, S("abcdefghijklmnopqrs12345"));
- test(S("abcdefghijklmnopqrst"), 19, 1, "1234567890", 9, S("abcdefghijklmnopqrs123456789"));
- test(S("abcdefghijklmnopqrst"), 19, 1, "1234567890", 10, S("abcdefghijklmnopqrs1234567890"));
- test(S("abcdefghijklmnopqrst"), 19, 1, "12345678901234567890", 0, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 1, "12345678901234567890", 1, S("abcdefghijklmnopqrs1"));
- test(S("abcdefghijklmnopqrst"), 19, 1, "12345678901234567890", 10, S("abcdefghijklmnopqrs1234567890"));
- test(S("abcdefghijklmnopqrst"), 19, 1, "12345678901234567890", 19, S("abcdefghijklmnopqrs1234567890123456789"));
- test(S("abcdefghijklmnopqrst"), 19, 1, "12345678901234567890", 20, S("abcdefghijklmnopqrs12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 20, 0, "", 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 0, "12345", 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 0, "12345", 1, S("abcdefghijklmnopqrst1"));
- test(S("abcdefghijklmnopqrst"), 20, 0, "12345", 2, S("abcdefghijklmnopqrst12"));
- test(S("abcdefghijklmnopqrst"), 20, 0, "12345", 4, S("abcdefghijklmnopqrst1234"));
- test(S("abcdefghijklmnopqrst"), 20, 0, "12345", 5, S("abcdefghijklmnopqrst12345"));
- test(S("abcdefghijklmnopqrst"), 20, 0, "1234567890", 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 0, "1234567890", 1, S("abcdefghijklmnopqrst1"));
- test(S("abcdefghijklmnopqrst"), 20, 0, "1234567890", 5, S("abcdefghijklmnopqrst12345"));
- test(S("abcdefghijklmnopqrst"), 20, 0, "1234567890", 9, S("abcdefghijklmnopqrst123456789"));
- test(S("abcdefghijklmnopqrst"), 20, 0, "1234567890", 10, S("abcdefghijklmnopqrst1234567890"));
- test(S("abcdefghijklmnopqrst"), 20, 0, "12345678901234567890", 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 0, "12345678901234567890", 1, S("abcdefghijklmnopqrst1"));
- test(S("abcdefghijklmnopqrst"), 20, 0, "12345678901234567890", 10, S("abcdefghijklmnopqrst1234567890"));
- test(S("abcdefghijklmnopqrst"), 20, 0, "12345678901234567890", 19, S("abcdefghijklmnopqrst1234567890123456789"));
- test(S("abcdefghijklmnopqrst"), 20, 0, "12345678901234567890", 20, S("abcdefghijklmnopqrst12345678901234567890"));
+TEST_CONSTEXPR_CXX20 bool test8() {
+ test(S("abcdefghijklmnopqrst"), 10, 10, "", 0, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, "12345", 0, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, "12345", 1, S("abcdefghij1"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, "12345", 2, S("abcdefghij12"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, "12345", 4, S("abcdefghij1234"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, "12345", 5, S("abcdefghij12345"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, "1234567890", 0, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, "1234567890", 1, S("abcdefghij1"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, "1234567890", 5, S("abcdefghij12345"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, "1234567890", 9, S("abcdefghij123456789"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, "1234567890", 10, S("abcdefghij1234567890"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, "12345678901234567890", 0, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, "12345678901234567890", 1, S("abcdefghij1"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, "12345678901234567890", 10, S("abcdefghij1234567890"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, "12345678901234567890", 19, S("abcdefghij1234567890123456789"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, "12345678901234567890", 20, S("abcdefghij12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, "", 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, "12345", 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, "12345", 1, S("abcdefghijklmnopqrs1t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, "12345", 2, S("abcdefghijklmnopqrs12t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, "12345", 4, S("abcdefghijklmnopqrs1234t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, "12345", 5, S("abcdefghijklmnopqrs12345t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, "1234567890", 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, "1234567890", 1, S("abcdefghijklmnopqrs1t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, "1234567890", 5, S("abcdefghijklmnopqrs12345t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, "1234567890", 9, S("abcdefghijklmnopqrs123456789t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, "1234567890", 10, S("abcdefghijklmnopqrs1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, "12345678901234567890", 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, "12345678901234567890", 1, S("abcdefghijklmnopqrs1t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, "12345678901234567890", 10, S("abcdefghijklmnopqrs1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, "12345678901234567890", 19, S("abcdefghijklmnopqrs1234567890123456789t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, "12345678901234567890", 20, S("abcdefghijklmnopqrs12345678901234567890t"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, "", 0, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, "12345", 0, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, "12345", 1, S("abcdefghijklmnopqrs1"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, "12345", 2, S("abcdefghijklmnopqrs12"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, "12345", 4, S("abcdefghijklmnopqrs1234"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, "12345", 5, S("abcdefghijklmnopqrs12345"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, "1234567890", 0, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, "1234567890", 1, S("abcdefghijklmnopqrs1"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, "1234567890", 5, S("abcdefghijklmnopqrs12345"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, "1234567890", 9, S("abcdefghijklmnopqrs123456789"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, "1234567890", 10, S("abcdefghijklmnopqrs1234567890"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, "12345678901234567890", 0, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, "12345678901234567890", 1, S("abcdefghijklmnopqrs1"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, "12345678901234567890", 10, S("abcdefghijklmnopqrs1234567890"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, "12345678901234567890", 19, S("abcdefghijklmnopqrs1234567890123456789"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, "12345678901234567890", 20, S("abcdefghijklmnopqrs12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, "", 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, "12345", 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, "12345", 1, S("abcdefghijklmnopqrst1"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, "12345", 2, S("abcdefghijklmnopqrst12"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, "12345", 4, S("abcdefghijklmnopqrst1234"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, "12345", 5, S("abcdefghijklmnopqrst12345"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, "1234567890", 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, "1234567890", 1, S("abcdefghijklmnopqrst1"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, "1234567890", 5, S("abcdefghijklmnopqrst12345"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, "1234567890", 9, S("abcdefghijklmnopqrst123456789"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, "1234567890", 10, S("abcdefghijklmnopqrst1234567890"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, "12345678901234567890", 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, "12345678901234567890", 1, S("abcdefghijklmnopqrst1"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, "12345678901234567890", 10, S("abcdefghijklmnopqrst1234567890"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, "12345678901234567890", 19, S("abcdefghijklmnopqrst1234567890123456789"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, "12345678901234567890", 20, S("abcdefghijklmnopqrst12345678901234567890"));
- return true;
+ return true;
}
template <class S>
@@ -1006,8 +1000,7 @@ void test() {
#endif
}
-int main(int, char**)
-{
+int main(int, char**) {
test<std::string>();
#if TEST_STD_VER >= 11
test<std::basic_string<char, std::char_traits<char>, min_allocator<char>>>();
diff --git a/libcxx/test/std/strings/basic.string/string.modifiers/string_replace/iter_iter_size_char.pass.cpp b/libcxx/test/std/strings/basic.string/string.modifiers/string_replace/iter_iter_size_char.pass.cpp
index 580ea289e347f15..1bade1f7025bc39 100644
--- a/libcxx/test/std/strings/basic.string/string.modifiers/string_replace/iter_iter_size_char.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.modifiers/string_replace/iter_iter_size_char.pass.cpp
@@ -20,249 +20,249 @@
template <class S>
TEST_CONSTEXPR_CXX20 void
-test(S s, typename S::size_type pos1, typename S::size_type n1, typename S::size_type n2,
- typename S::value_type c, S expected)
-{
- typename S::size_type old_size = s.size();
- typename S::const_iterator first = s.begin() + pos1;
- typename S::const_iterator last = s.begin() + pos1 + n1;
- typename S::size_type xlen = last - first;
- s.replace(first, last, n2, c);
- LIBCPP_ASSERT(s.__invariants());
- assert(s == expected);
- typename S::size_type rlen = n2;
- assert(s.size() == old_size - xlen + rlen);
+test(S s,
+ typename S::size_type pos1,
+ typename S::size_type n1,
+ typename S::size_type n2,
+ typename S::value_type c,
+ S expected) {
+ typename S::size_type old_size = s.size();
+ typename S::const_iterator first = s.begin() + pos1;
+ typename S::const_iterator last = s.begin() + pos1 + n1;
+ typename S::size_type xlen = last - first;
+ s.replace(first, last, n2, c);
+ LIBCPP_ASSERT(s.__invariants());
+ assert(s == expected);
+ typename S::size_type rlen = n2;
+ assert(s.size() == old_size - xlen + rlen);
}
template <class S>
-TEST_CONSTEXPR_CXX20 void test0()
-{
- test(S(""), 0, 0, 0, '3', S(""));
- test(S(""), 0, 0, 5, '3', S("33333"));
- test(S(""), 0, 0, 10, '3', S("3333333333"));
- test(S(""), 0, 0, 20, '3', S("33333333333333333333"));
- test(S("abcde"), 0, 0, 0, '3', S("abcde"));
- test(S("abcde"), 0, 0, 5, '3', S("33333abcde"));
- test(S("abcde"), 0, 0, 10, '3', S("3333333333abcde"));
- test(S("abcde"), 0, 0, 20, '3', S("33333333333333333333abcde"));
- test(S("abcde"), 0, 1, 0, '3', S("bcde"));
- test(S("abcde"), 0, 1, 5, '3', S("33333bcde"));
- test(S("abcde"), 0, 1, 10, '3', S("3333333333bcde"));
- test(S("abcde"), 0, 1, 20, '3', S("33333333333333333333bcde"));
- test(S("abcde"), 0, 2, 0, '3', S("cde"));
- test(S("abcde"), 0, 2, 5, '3', S("33333cde"));
- test(S("abcde"), 0, 2, 10, '3', S("3333333333cde"));
- test(S("abcde"), 0, 2, 20, '3', S("33333333333333333333cde"));
- test(S("abcde"), 0, 4, 0, '3', S("e"));
- test(S("abcde"), 0, 4, 5, '3', S("33333e"));
- test(S("abcde"), 0, 4, 10, '3', S("3333333333e"));
- test(S("abcde"), 0, 4, 20, '3', S("33333333333333333333e"));
- test(S("abcde"), 0, 5, 0, '3', S(""));
- test(S("abcde"), 0, 5, 5, '3', S("33333"));
- test(S("abcde"), 0, 5, 10, '3', S("3333333333"));
- test(S("abcde"), 0, 5, 20, '3', S("33333333333333333333"));
- test(S("abcde"), 1, 0, 0, '3', S("abcde"));
- test(S("abcde"), 1, 0, 5, '3', S("a33333bcde"));
- test(S("abcde"), 1, 0, 10, '3', S("a3333333333bcde"));
- test(S("abcde"), 1, 0, 20, '3', S("a33333333333333333333bcde"));
- test(S("abcde"), 1, 1, 0, '3', S("acde"));
- test(S("abcde"), 1, 1, 5, '3', S("a33333cde"));
- test(S("abcde"), 1, 1, 10, '3', S("a3333333333cde"));
- test(S("abcde"), 1, 1, 20, '3', S("a33333333333333333333cde"));
- test(S("abcde"), 1, 2, 0, '3', S("ade"));
- test(S("abcde"), 1, 2, 5, '3', S("a33333de"));
- test(S("abcde"), 1, 2, 10, '3', S("a3333333333de"));
- test(S("abcde"), 1, 2, 20, '3', S("a33333333333333333333de"));
- test(S("abcde"), 1, 3, 0, '3', S("ae"));
- test(S("abcde"), 1, 3, 5, '3', S("a33333e"));
- test(S("abcde"), 1, 3, 10, '3', S("a3333333333e"));
- test(S("abcde"), 1, 3, 20, '3', S("a33333333333333333333e"));
- test(S("abcde"), 1, 4, 0, '3', S("a"));
- test(S("abcde"), 1, 4, 5, '3', S("a33333"));
- test(S("abcde"), 1, 4, 10, '3', S("a3333333333"));
- test(S("abcde"), 1, 4, 20, '3', S("a33333333333333333333"));
- test(S("abcde"), 2, 0, 0, '3', S("abcde"));
- test(S("abcde"), 2, 0, 5, '3', S("ab33333cde"));
- test(S("abcde"), 2, 0, 10, '3', S("ab3333333333cde"));
- test(S("abcde"), 2, 0, 20, '3', S("ab33333333333333333333cde"));
- test(S("abcde"), 2, 1, 0, '3', S("abde"));
- test(S("abcde"), 2, 1, 5, '3', S("ab33333de"));
- test(S("abcde"), 2, 1, 10, '3', S("ab3333333333de"));
- test(S("abcde"), 2, 1, 20, '3', S("ab33333333333333333333de"));
- test(S("abcde"), 2, 2, 0, '3', S("abe"));
- test(S("abcde"), 2, 2, 5, '3', S("ab33333e"));
- test(S("abcde"), 2, 2, 10, '3', S("ab3333333333e"));
- test(S("abcde"), 2, 2, 20, '3', S("ab33333333333333333333e"));
- test(S("abcde"), 2, 3, 0, '3', S("ab"));
- test(S("abcde"), 2, 3, 5, '3', S("ab33333"));
- test(S("abcde"), 2, 3, 10, '3', S("ab3333333333"));
- test(S("abcde"), 2, 3, 20, '3', S("ab33333333333333333333"));
- test(S("abcde"), 4, 0, 0, '3', S("abcde"));
- test(S("abcde"), 4, 0, 5, '3', S("abcd33333e"));
- test(S("abcde"), 4, 0, 10, '3', S("abcd3333333333e"));
- test(S("abcde"), 4, 0, 20, '3', S("abcd33333333333333333333e"));
- test(S("abcde"), 4, 1, 0, '3', S("abcd"));
- test(S("abcde"), 4, 1, 5, '3', S("abcd33333"));
- test(S("abcde"), 4, 1, 10, '3', S("abcd3333333333"));
- test(S("abcde"), 4, 1, 20, '3', S("abcd33333333333333333333"));
- test(S("abcde"), 5, 0, 0, '3', S("abcde"));
- test(S("abcde"), 5, 0, 5, '3', S("abcde33333"));
- test(S("abcde"), 5, 0, 10, '3', S("abcde3333333333"));
- test(S("abcde"), 5, 0, 20, '3', S("abcde33333333333333333333"));
- test(S("abcdefghij"), 0, 0, 0, '3', S("abcdefghij"));
- test(S("abcdefghij"), 0, 0, 5, '3', S("33333abcdefghij"));
- test(S("abcdefghij"), 0, 0, 10, '3', S("3333333333abcdefghij"));
- test(S("abcdefghij"), 0, 0, 20, '3', S("33333333333333333333abcdefghij"));
- test(S("abcdefghij"), 0, 1, 0, '3', S("bcdefghij"));
- test(S("abcdefghij"), 0, 1, 5, '3', S("33333bcdefghij"));
- test(S("abcdefghij"), 0, 1, 10, '3', S("3333333333bcdefghij"));
- test(S("abcdefghij"), 0, 1, 20, '3', S("33333333333333333333bcdefghij"));
- test(S("abcdefghij"), 0, 5, 0, '3', S("fghij"));
- test(S("abcdefghij"), 0, 5, 5, '3', S("33333fghij"));
- test(S("abcdefghij"), 0, 5, 10, '3', S("3333333333fghij"));
- test(S("abcdefghij"), 0, 5, 20, '3', S("33333333333333333333fghij"));
- test(S("abcdefghij"), 0, 9, 0, '3', S("j"));
- test(S("abcdefghij"), 0, 9, 5, '3', S("33333j"));
- test(S("abcdefghij"), 0, 9, 10, '3', S("3333333333j"));
- test(S("abcdefghij"), 0, 9, 20, '3', S("33333333333333333333j"));
- test(S("abcdefghij"), 0, 10, 0, '3', S(""));
- test(S("abcdefghij"), 0, 10, 5, '3', S("33333"));
- test(S("abcdefghij"), 0, 10, 10, '3', S("3333333333"));
- test(S("abcdefghij"), 0, 10, 20, '3', S("33333333333333333333"));
- test(S("abcdefghij"), 1, 0, 0, '3', S("abcdefghij"));
- test(S("abcdefghij"), 1, 0, 5, '3', S("a33333bcdefghij"));
- test(S("abcdefghij"), 1, 0, 10, '3', S("a3333333333bcdefghij"));
- test(S("abcdefghij"), 1, 0, 20, '3', S("a33333333333333333333bcdefghij"));
- test(S("abcdefghij"), 1, 1, 0, '3', S("acdefghij"));
- test(S("abcdefghij"), 1, 1, 5, '3', S("a33333cdefghij"));
- test(S("abcdefghij"), 1, 1, 10, '3', S("a3333333333cdefghij"));
- test(S("abcdefghij"), 1, 1, 20, '3', S("a33333333333333333333cdefghij"));
+TEST_CONSTEXPR_CXX20 void test0() {
+ test(S(""), 0, 0, 0, '3', S(""));
+ test(S(""), 0, 0, 5, '3', S("33333"));
+ test(S(""), 0, 0, 10, '3', S("3333333333"));
+ test(S(""), 0, 0, 20, '3', S("33333333333333333333"));
+ test(S("abcde"), 0, 0, 0, '3', S("abcde"));
+ test(S("abcde"), 0, 0, 5, '3', S("33333abcde"));
+ test(S("abcde"), 0, 0, 10, '3', S("3333333333abcde"));
+ test(S("abcde"), 0, 0, 20, '3', S("33333333333333333333abcde"));
+ test(S("abcde"), 0, 1, 0, '3', S("bcde"));
+ test(S("abcde"), 0, 1, 5, '3', S("33333bcde"));
+ test(S("abcde"), 0, 1, 10, '3', S("3333333333bcde"));
+ test(S("abcde"), 0, 1, 20, '3', S("33333333333333333333bcde"));
+ test(S("abcde"), 0, 2, 0, '3', S("cde"));
+ test(S("abcde"), 0, 2, 5, '3', S("33333cde"));
+ test(S("abcde"), 0, 2, 10, '3', S("3333333333cde"));
+ test(S("abcde"), 0, 2, 20, '3', S("33333333333333333333cde"));
+ test(S("abcde"), 0, 4, 0, '3', S("e"));
+ test(S("abcde"), 0, 4, 5, '3', S("33333e"));
+ test(S("abcde"), 0, 4, 10, '3', S("3333333333e"));
+ test(S("abcde"), 0, 4, 20, '3', S("33333333333333333333e"));
+ test(S("abcde"), 0, 5, 0, '3', S(""));
+ test(S("abcde"), 0, 5, 5, '3', S("33333"));
+ test(S("abcde"), 0, 5, 10, '3', S("3333333333"));
+ test(S("abcde"), 0, 5, 20, '3', S("33333333333333333333"));
+ test(S("abcde"), 1, 0, 0, '3', S("abcde"));
+ test(S("abcde"), 1, 0, 5, '3', S("a33333bcde"));
+ test(S("abcde"), 1, 0, 10, '3', S("a3333333333bcde"));
+ test(S("abcde"), 1, 0, 20, '3', S("a33333333333333333333bcde"));
+ test(S("abcde"), 1, 1, 0, '3', S("acde"));
+ test(S("abcde"), 1, 1, 5, '3', S("a33333cde"));
+ test(S("abcde"), 1, 1, 10, '3', S("a3333333333cde"));
+ test(S("abcde"), 1, 1, 20, '3', S("a33333333333333333333cde"));
+ test(S("abcde"), 1, 2, 0, '3', S("ade"));
+ test(S("abcde"), 1, 2, 5, '3', S("a33333de"));
+ test(S("abcde"), 1, 2, 10, '3', S("a3333333333de"));
+ test(S("abcde"), 1, 2, 20, '3', S("a33333333333333333333de"));
+ test(S("abcde"), 1, 3, 0, '3', S("ae"));
+ test(S("abcde"), 1, 3, 5, '3', S("a33333e"));
+ test(S("abcde"), 1, 3, 10, '3', S("a3333333333e"));
+ test(S("abcde"), 1, 3, 20, '3', S("a33333333333333333333e"));
+ test(S("abcde"), 1, 4, 0, '3', S("a"));
+ test(S("abcde"), 1, 4, 5, '3', S("a33333"));
+ test(S("abcde"), 1, 4, 10, '3', S("a3333333333"));
+ test(S("abcde"), 1, 4, 20, '3', S("a33333333333333333333"));
+ test(S("abcde"), 2, 0, 0, '3', S("abcde"));
+ test(S("abcde"), 2, 0, 5, '3', S("ab33333cde"));
+ test(S("abcde"), 2, 0, 10, '3', S("ab3333333333cde"));
+ test(S("abcde"), 2, 0, 20, '3', S("ab33333333333333333333cde"));
+ test(S("abcde"), 2, 1, 0, '3', S("abde"));
+ test(S("abcde"), 2, 1, 5, '3', S("ab33333de"));
+ test(S("abcde"), 2, 1, 10, '3', S("ab3333333333de"));
+ test(S("abcde"), 2, 1, 20, '3', S("ab33333333333333333333de"));
+ test(S("abcde"), 2, 2, 0, '3', S("abe"));
+ test(S("abcde"), 2, 2, 5, '3', S("ab33333e"));
+ test(S("abcde"), 2, 2, 10, '3', S("ab3333333333e"));
+ test(S("abcde"), 2, 2, 20, '3', S("ab33333333333333333333e"));
+ test(S("abcde"), 2, 3, 0, '3', S("ab"));
+ test(S("abcde"), 2, 3, 5, '3', S("ab33333"));
+ test(S("abcde"), 2, 3, 10, '3', S("ab3333333333"));
+ test(S("abcde"), 2, 3, 20, '3', S("ab33333333333333333333"));
+ test(S("abcde"), 4, 0, 0, '3', S("abcde"));
+ test(S("abcde"), 4, 0, 5, '3', S("abcd33333e"));
+ test(S("abcde"), 4, 0, 10, '3', S("abcd3333333333e"));
+ test(S("abcde"), 4, 0, 20, '3', S("abcd33333333333333333333e"));
+ test(S("abcde"), 4, 1, 0, '3', S("abcd"));
+ test(S("abcde"), 4, 1, 5, '3', S("abcd33333"));
+ test(S("abcde"), 4, 1, 10, '3', S("abcd3333333333"));
+ test(S("abcde"), 4, 1, 20, '3', S("abcd33333333333333333333"));
+ test(S("abcde"), 5, 0, 0, '3', S("abcde"));
+ test(S("abcde"), 5, 0, 5, '3', S("abcde33333"));
+ test(S("abcde"), 5, 0, 10, '3', S("abcde3333333333"));
+ test(S("abcde"), 5, 0, 20, '3', S("abcde33333333333333333333"));
+ test(S("abcdefghij"), 0, 0, 0, '3', S("abcdefghij"));
+ test(S("abcdefghij"), 0, 0, 5, '3', S("33333abcdefghij"));
+ test(S("abcdefghij"), 0, 0, 10, '3', S("3333333333abcdefghij"));
+ test(S("abcdefghij"), 0, 0, 20, '3', S("33333333333333333333abcdefghij"));
+ test(S("abcdefghij"), 0, 1, 0, '3', S("bcdefghij"));
+ test(S("abcdefghij"), 0, 1, 5, '3', S("33333bcdefghij"));
+ test(S("abcdefghij"), 0, 1, 10, '3', S("3333333333bcdefghij"));
+ test(S("abcdefghij"), 0, 1, 20, '3', S("33333333333333333333bcdefghij"));
+ test(S("abcdefghij"), 0, 5, 0, '3', S("fghij"));
+ test(S("abcdefghij"), 0, 5, 5, '3', S("33333fghij"));
+ test(S("abcdefghij"), 0, 5, 10, '3', S("3333333333fghij"));
+ test(S("abcdefghij"), 0, 5, 20, '3', S("33333333333333333333fghij"));
+ test(S("abcdefghij"), 0, 9, 0, '3', S("j"));
+ test(S("abcdefghij"), 0, 9, 5, '3', S("33333j"));
+ test(S("abcdefghij"), 0, 9, 10, '3', S("3333333333j"));
+ test(S("abcdefghij"), 0, 9, 20, '3', S("33333333333333333333j"));
+ test(S("abcdefghij"), 0, 10, 0, '3', S(""));
+ test(S("abcdefghij"), 0, 10, 5, '3', S("33333"));
+ test(S("abcdefghij"), 0, 10, 10, '3', S("3333333333"));
+ test(S("abcdefghij"), 0, 10, 20, '3', S("33333333333333333333"));
+ test(S("abcdefghij"), 1, 0, 0, '3', S("abcdefghij"));
+ test(S("abcdefghij"), 1, 0, 5, '3', S("a33333bcdefghij"));
+ test(S("abcdefghij"), 1, 0, 10, '3', S("a3333333333bcdefghij"));
+ test(S("abcdefghij"), 1, 0, 20, '3', S("a33333333333333333333bcdefghij"));
+ test(S("abcdefghij"), 1, 1, 0, '3', S("acdefghij"));
+ test(S("abcdefghij"), 1, 1, 5, '3', S("a33333cdefghij"));
+ test(S("abcdefghij"), 1, 1, 10, '3', S("a3333333333cdefghij"));
+ test(S("abcdefghij"), 1, 1, 20, '3', S("a33333333333333333333cdefghij"));
}
template <class S>
-TEST_CONSTEXPR_CXX20 void test1()
-{
- test(S("abcdefghij"), 1, 4, 0, '3', S("afghij"));
- test(S("abcdefghij"), 1, 4, 5, '3', S("a33333fghij"));
- test(S("abcdefghij"), 1, 4, 10, '3', S("a3333333333fghij"));
- test(S("abcdefghij"), 1, 4, 20, '3', S("a33333333333333333333fghij"));
- test(S("abcdefghij"), 1, 8, 0, '3', S("aj"));
- test(S("abcdefghij"), 1, 8, 5, '3', S("a33333j"));
- test(S("abcdefghij"), 1, 8, 10, '3', S("a3333333333j"));
- test(S("abcdefghij"), 1, 8, 20, '3', S("a33333333333333333333j"));
- test(S("abcdefghij"), 1, 9, 0, '3', S("a"));
- test(S("abcdefghij"), 1, 9, 5, '3', S("a33333"));
- test(S("abcdefghij"), 1, 9, 10, '3', S("a3333333333"));
- test(S("abcdefghij"), 1, 9, 20, '3', S("a33333333333333333333"));
- test(S("abcdefghij"), 5, 0, 0, '3', S("abcdefghij"));
- test(S("abcdefghij"), 5, 0, 5, '3', S("abcde33333fghij"));
- test(S("abcdefghij"), 5, 0, 10, '3', S("abcde3333333333fghij"));
- test(S("abcdefghij"), 5, 0, 20, '3', S("abcde33333333333333333333fghij"));
- test(S("abcdefghij"), 5, 1, 0, '3', S("abcdeghij"));
- test(S("abcdefghij"), 5, 1, 5, '3', S("abcde33333ghij"));
- test(S("abcdefghij"), 5, 1, 10, '3', S("abcde3333333333ghij"));
- test(S("abcdefghij"), 5, 1, 20, '3', S("abcde33333333333333333333ghij"));
- test(S("abcdefghij"), 5, 2, 0, '3', S("abcdehij"));
- test(S("abcdefghij"), 5, 2, 5, '3', S("abcde33333hij"));
- test(S("abcdefghij"), 5, 2, 10, '3', S("abcde3333333333hij"));
- test(S("abcdefghij"), 5, 2, 20, '3', S("abcde33333333333333333333hij"));
- test(S("abcdefghij"), 5, 4, 0, '3', S("abcdej"));
- test(S("abcdefghij"), 5, 4, 5, '3', S("abcde33333j"));
- test(S("abcdefghij"), 5, 4, 10, '3', S("abcde3333333333j"));
- test(S("abcdefghij"), 5, 4, 20, '3', S("abcde33333333333333333333j"));
- test(S("abcdefghij"), 5, 5, 0, '3', S("abcde"));
- test(S("abcdefghij"), 5, 5, 5, '3', S("abcde33333"));
- test(S("abcdefghij"), 5, 5, 10, '3', S("abcde3333333333"));
- test(S("abcdefghij"), 5, 5, 20, '3', S("abcde33333333333333333333"));
- test(S("abcdefghij"), 9, 0, 0, '3', S("abcdefghij"));
- test(S("abcdefghij"), 9, 0, 5, '3', S("abcdefghi33333j"));
- test(S("abcdefghij"), 9, 0, 10, '3', S("abcdefghi3333333333j"));
- test(S("abcdefghij"), 9, 0, 20, '3', S("abcdefghi33333333333333333333j"));
- test(S("abcdefghij"), 9, 1, 0, '3', S("abcdefghi"));
- test(S("abcdefghij"), 9, 1, 5, '3', S("abcdefghi33333"));
- test(S("abcdefghij"), 9, 1, 10, '3', S("abcdefghi3333333333"));
- test(S("abcdefghij"), 9, 1, 20, '3', S("abcdefghi33333333333333333333"));
- test(S("abcdefghij"), 10, 0, 0, '3', S("abcdefghij"));
- test(S("abcdefghij"), 10, 0, 5, '3', S("abcdefghij33333"));
- test(S("abcdefghij"), 10, 0, 10, '3', S("abcdefghij3333333333"));
- test(S("abcdefghij"), 10, 0, 20, '3', S("abcdefghij33333333333333333333"));
- test(S("abcdefghijklmnopqrst"), 0, 0, 0, '3', S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, 5, '3', S("33333abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, 10, '3', S("3333333333abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, 20, '3', S("33333333333333333333abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, 0, '3', S("bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, 5, '3', S("33333bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, 10, '3', S("3333333333bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, 20, '3', S("33333333333333333333bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, 0, '3', S("klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, 5, '3', S("33333klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, 10, '3', S("3333333333klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, 20, '3', S("33333333333333333333klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 19, 0, '3', S("t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, 5, '3', S("33333t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, 10, '3', S("3333333333t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, 20, '3', S("33333333333333333333t"));
- test(S("abcdefghijklmnopqrst"), 0, 20, 0, '3', S(""));
- test(S("abcdefghijklmnopqrst"), 0, 20, 5, '3', S("33333"));
- test(S("abcdefghijklmnopqrst"), 0, 20, 10, '3', S("3333333333"));
- test(S("abcdefghijklmnopqrst"), 0, 20, 20, '3', S("33333333333333333333"));
- test(S("abcdefghijklmnopqrst"), 1, 0, 0, '3', S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, 5, '3', S("a33333bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, 10, '3', S("a3333333333bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, 20, '3', S("a33333333333333333333bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, 0, '3', S("acdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, 5, '3', S("a33333cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, 10, '3', S("a3333333333cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, 20, '3', S("a33333333333333333333cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, 0, '3', S("aklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, 5, '3', S("a33333klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, 10, '3', S("a3333333333klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, 20, '3', S("a33333333333333333333klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 18, 0, '3', S("at"));
- test(S("abcdefghijklmnopqrst"), 1, 18, 5, '3', S("a33333t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, 10, '3', S("a3333333333t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, 20, '3', S("a33333333333333333333t"));
- test(S("abcdefghijklmnopqrst"), 1, 19, 0, '3', S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 19, 5, '3', S("a33333"));
- test(S("abcdefghijklmnopqrst"), 1, 19, 10, '3', S("a3333333333"));
- test(S("abcdefghijklmnopqrst"), 1, 19, 20, '3', S("a33333333333333333333"));
- test(S("abcdefghijklmnopqrst"), 10, 0, 0, '3', S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, 5, '3', S("abcdefghij33333klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, 10, '3', S("abcdefghij3333333333klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, 20, '3', S("abcdefghij33333333333333333333klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, 0, '3', S("abcdefghijlmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, 5, '3', S("abcdefghij33333lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, 10, '3', S("abcdefghij3333333333lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, 20, '3', S("abcdefghij33333333333333333333lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, 0, '3', S("abcdefghijpqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, 5, '3', S("abcdefghij33333pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, 10, '3', S("abcdefghij3333333333pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, 20, '3', S("abcdefghij33333333333333333333pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 9, 0, '3', S("abcdefghijt"));
- test(S("abcdefghijklmnopqrst"), 10, 9, 5, '3', S("abcdefghij33333t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, 10, '3', S("abcdefghij3333333333t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, 20, '3', S("abcdefghij33333333333333333333t"));
+TEST_CONSTEXPR_CXX20 void test1() {
+ test(S("abcdefghij"), 1, 4, 0, '3', S("afghij"));
+ test(S("abcdefghij"), 1, 4, 5, '3', S("a33333fghij"));
+ test(S("abcdefghij"), 1, 4, 10, '3', S("a3333333333fghij"));
+ test(S("abcdefghij"), 1, 4, 20, '3', S("a33333333333333333333fghij"));
+ test(S("abcdefghij"), 1, 8, 0, '3', S("aj"));
+ test(S("abcdefghij"), 1, 8, 5, '3', S("a33333j"));
+ test(S("abcdefghij"), 1, 8, 10, '3', S("a3333333333j"));
+ test(S("abcdefghij"), 1, 8, 20, '3', S("a33333333333333333333j"));
+ test(S("abcdefghij"), 1, 9, 0, '3', S("a"));
+ test(S("abcdefghij"), 1, 9, 5, '3', S("a33333"));
+ test(S("abcdefghij"), 1, 9, 10, '3', S("a3333333333"));
+ test(S("abcdefghij"), 1, 9, 20, '3', S("a33333333333333333333"));
+ test(S("abcdefghij"), 5, 0, 0, '3', S("abcdefghij"));
+ test(S("abcdefghij"), 5, 0, 5, '3', S("abcde33333fghij"));
+ test(S("abcdefghij"), 5, 0, 10, '3', S("abcde3333333333fghij"));
+ test(S("abcdefghij"), 5, 0, 20, '3', S("abcde33333333333333333333fghij"));
+ test(S("abcdefghij"), 5, 1, 0, '3', S("abcdeghij"));
+ test(S("abcdefghij"), 5, 1, 5, '3', S("abcde33333ghij"));
+ test(S("abcdefghij"), 5, 1, 10, '3', S("abcde3333333333ghij"));
+ test(S("abcdefghij"), 5, 1, 20, '3', S("abcde33333333333333333333ghij"));
+ test(S("abcdefghij"), 5, 2, 0, '3', S("abcdehij"));
+ test(S("abcdefghij"), 5, 2, 5, '3', S("abcde33333hij"));
+ test(S("abcdefghij"), 5, 2, 10, '3', S("abcde3333333333hij"));
+ test(S("abcdefghij"), 5, 2, 20, '3', S("abcde33333333333333333333hij"));
+ test(S("abcdefghij"), 5, 4, 0, '3', S("abcdej"));
+ test(S("abcdefghij"), 5, 4, 5, '3', S("abcde33333j"));
+ test(S("abcdefghij"), 5, 4, 10, '3', S("abcde3333333333j"));
+ test(S("abcdefghij"), 5, 4, 20, '3', S("abcde33333333333333333333j"));
+ test(S("abcdefghij"), 5, 5, 0, '3', S("abcde"));
+ test(S("abcdefghij"), 5, 5, 5, '3', S("abcde33333"));
+ test(S("abcdefghij"), 5, 5, 10, '3', S("abcde3333333333"));
+ test(S("abcdefghij"), 5, 5, 20, '3', S("abcde33333333333333333333"));
+ test(S("abcdefghij"), 9, 0, 0, '3', S("abcdefghij"));
+ test(S("abcdefghij"), 9, 0, 5, '3', S("abcdefghi33333j"));
+ test(S("abcdefghij"), 9, 0, 10, '3', S("abcdefghi3333333333j"));
+ test(S("abcdefghij"), 9, 0, 20, '3', S("abcdefghi33333333333333333333j"));
+ test(S("abcdefghij"), 9, 1, 0, '3', S("abcdefghi"));
+ test(S("abcdefghij"), 9, 1, 5, '3', S("abcdefghi33333"));
+ test(S("abcdefghij"), 9, 1, 10, '3', S("abcdefghi3333333333"));
+ test(S("abcdefghij"), 9, 1, 20, '3', S("abcdefghi33333333333333333333"));
+ test(S("abcdefghij"), 10, 0, 0, '3', S("abcdefghij"));
+ test(S("abcdefghij"), 10, 0, 5, '3', S("abcdefghij33333"));
+ test(S("abcdefghij"), 10, 0, 10, '3', S("abcdefghij3333333333"));
+ test(S("abcdefghij"), 10, 0, 20, '3', S("abcdefghij33333333333333333333"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, 0, '3', S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, 5, '3', S("33333abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, 10, '3', S("3333333333abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, 20, '3', S("33333333333333333333abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, 0, '3', S("bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, 5, '3', S("33333bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, 10, '3', S("3333333333bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, 20, '3', S("33333333333333333333bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, 0, '3', S("klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, 5, '3', S("33333klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, 10, '3', S("3333333333klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, 20, '3', S("33333333333333333333klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, 0, '3', S("t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, 5, '3', S("33333t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, 10, '3', S("3333333333t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, 20, '3', S("33333333333333333333t"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, 0, '3', S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 20, 5, '3', S("33333"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, 10, '3', S("3333333333"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, 20, '3', S("33333333333333333333"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, 0, '3', S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, 5, '3', S("a33333bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, 10, '3', S("a3333333333bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, 20, '3', S("a33333333333333333333bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, 0, '3', S("acdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, 5, '3', S("a33333cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, 10, '3', S("a3333333333cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, 20, '3', S("a33333333333333333333cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, 0, '3', S("aklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, 5, '3', S("a33333klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, 10, '3', S("a3333333333klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, 20, '3', S("a33333333333333333333klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, 0, '3', S("at"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, 5, '3', S("a33333t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, 10, '3', S("a3333333333t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, 20, '3', S("a33333333333333333333t"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, 0, '3', S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, 5, '3', S("a33333"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, 10, '3', S("a3333333333"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, 20, '3', S("a33333333333333333333"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, 0, '3', S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, 5, '3', S("abcdefghij33333klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, 10, '3', S("abcdefghij3333333333klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, 20, '3', S("abcdefghij33333333333333333333klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, 0, '3', S("abcdefghijlmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, 5, '3', S("abcdefghij33333lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, 10, '3', S("abcdefghij3333333333lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, 20, '3', S("abcdefghij33333333333333333333lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, 0, '3', S("abcdefghijpqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, 5, '3', S("abcdefghij33333pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, 10, '3', S("abcdefghij3333333333pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, 20, '3', S("abcdefghij33333333333333333333pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, 0, '3', S("abcdefghijt"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, 5, '3', S("abcdefghij33333t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, 10, '3', S("abcdefghij3333333333t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, 20, '3', S("abcdefghij33333333333333333333t"));
}
template <class S>
-TEST_CONSTEXPR_CXX20 void test2()
-{
- test(S("abcdefghijklmnopqrst"), 10, 10, 0, '3', S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 10, 5, '3', S("abcdefghij33333"));
- test(S("abcdefghijklmnopqrst"), 10, 10, 10, '3', S("abcdefghij3333333333"));
- test(S("abcdefghijklmnopqrst"), 10, 10, 20, '3', S("abcdefghij33333333333333333333"));
- test(S("abcdefghijklmnopqrst"), 19, 0, 0, '3', S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, 0, 5, '3', S("abcdefghijklmnopqrs33333t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, 10, '3', S("abcdefghijklmnopqrs3333333333t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, 20, '3', S("abcdefghijklmnopqrs33333333333333333333t"));
- test(S("abcdefghijklmnopqrst"), 19, 1, 0, '3', S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 1, 5, '3', S("abcdefghijklmnopqrs33333"));
- test(S("abcdefghijklmnopqrst"), 19, 1, 10, '3', S("abcdefghijklmnopqrs3333333333"));
- test(S("abcdefghijklmnopqrst"), 19, 1, 20, '3', S("abcdefghijklmnopqrs33333333333333333333"));
- test(S("abcdefghijklmnopqrst"), 20, 0, 0, '3', S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 0, 5, '3', S("abcdefghijklmnopqrst33333"));
- test(S("abcdefghijklmnopqrst"), 20, 0, 10, '3', S("abcdefghijklmnopqrst3333333333"));
- test(S("abcdefghijklmnopqrst"), 20, 0, 20, '3', S("abcdefghijklmnopqrst33333333333333333333"));
+TEST_CONSTEXPR_CXX20 void test2() {
+ test(S("abcdefghijklmnopqrst"), 10, 10, 0, '3', S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, 5, '3', S("abcdefghij33333"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, 10, '3', S("abcdefghij3333333333"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, 20, '3', S("abcdefghij33333333333333333333"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, 0, '3', S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, 5, '3', S("abcdefghijklmnopqrs33333t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, 10, '3', S("abcdefghijklmnopqrs3333333333t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, 20, '3', S("abcdefghijklmnopqrs33333333333333333333t"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, 0, '3', S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, 5, '3', S("abcdefghijklmnopqrs33333"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, 10, '3', S("abcdefghijklmnopqrs3333333333"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, 20, '3', S("abcdefghijklmnopqrs33333333333333333333"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, 0, '3', S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, 5, '3', S("abcdefghijklmnopqrst33333"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, 10, '3', S("abcdefghijklmnopqrst3333333333"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, 20, '3', S("abcdefghijklmnopqrst33333333333333333333"));
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -284,8 +284,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.modifiers/string_replace/iter_iter_string.pass.cpp b/libcxx/test/std/strings/basic.string/string.modifiers/string_replace/iter_iter_string.pass.cpp
index 3cf5dbcc5d51f89..35db1d636819169 100644
--- a/libcxx/test/std/strings/basic.string/string.modifiers/string_replace/iter_iter_string.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.modifiers/string_replace/iter_iter_string.pass.cpp
@@ -19,255 +19,250 @@
#include "min_allocator.h"
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(S s, typename S::size_type pos1, typename S::size_type n1, S str, S expected)
-{
- typename S::size_type old_size = s.size();
- typename S::const_iterator first = s.begin() + pos1;
- typename S::const_iterator last = s.begin() + pos1 + n1;
- typename S::size_type xlen = last - first;
- s.replace(first, last, str);
- LIBCPP_ASSERT(s.__invariants());
- assert(s == expected);
- typename S::size_type rlen = str.size();
- assert(s.size() == old_size - xlen + rlen);
+TEST_CONSTEXPR_CXX20 void test(S s, typename S::size_type pos1, typename S::size_type n1, S str, S expected) {
+ typename S::size_type old_size = s.size();
+ typename S::const_iterator first = s.begin() + pos1;
+ typename S::const_iterator last = s.begin() + pos1 + n1;
+ typename S::size_type xlen = last - first;
+ s.replace(first, last, str);
+ LIBCPP_ASSERT(s.__invariants());
+ assert(s == expected);
+ typename S::size_type rlen = str.size();
+ assert(s.size() == old_size - xlen + rlen);
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test0()
-{
- test(S(""), 0, 0, S(""), S(""));
- test(S(""), 0, 0, S("12345"), S("12345"));
- test(S(""), 0, 0, S("1234567890"), S("1234567890"));
- test(S(""), 0, 0, S("12345678901234567890"), S("12345678901234567890"));
- test(S("abcde"), 0, 0, S(""), S("abcde"));
- test(S("abcde"), 0, 0, S("12345"), S("12345abcde"));
- test(S("abcde"), 0, 0, S("1234567890"), S("1234567890abcde"));
- test(S("abcde"), 0, 0, S("12345678901234567890"), S("12345678901234567890abcde"));
- test(S("abcde"), 0, 1, S(""), S("bcde"));
- test(S("abcde"), 0, 1, S("12345"), S("12345bcde"));
- test(S("abcde"), 0, 1, S("1234567890"), S("1234567890bcde"));
- test(S("abcde"), 0, 1, S("12345678901234567890"), S("12345678901234567890bcde"));
- test(S("abcde"), 0, 2, S(""), S("cde"));
- test(S("abcde"), 0, 2, S("12345"), S("12345cde"));
- test(S("abcde"), 0, 2, S("1234567890"), S("1234567890cde"));
- test(S("abcde"), 0, 2, S("12345678901234567890"), S("12345678901234567890cde"));
- test(S("abcde"), 0, 4, S(""), S("e"));
- test(S("abcde"), 0, 4, S("12345"), S("12345e"));
- test(S("abcde"), 0, 4, S("1234567890"), S("1234567890e"));
- test(S("abcde"), 0, 4, S("12345678901234567890"), S("12345678901234567890e"));
- test(S("abcde"), 0, 5, S(""), S(""));
- test(S("abcde"), 0, 5, S("12345"), S("12345"));
- test(S("abcde"), 0, 5, S("1234567890"), S("1234567890"));
- test(S("abcde"), 0, 5, S("12345678901234567890"), S("12345678901234567890"));
- test(S("abcde"), 1, 0, S(""), S("abcde"));
- test(S("abcde"), 1, 0, S("12345"), S("a12345bcde"));
- test(S("abcde"), 1, 0, S("1234567890"), S("a1234567890bcde"));
- test(S("abcde"), 1, 0, S("12345678901234567890"), S("a12345678901234567890bcde"));
- test(S("abcde"), 1, 1, S(""), S("acde"));
- test(S("abcde"), 1, 1, S("12345"), S("a12345cde"));
- test(S("abcde"), 1, 1, S("1234567890"), S("a1234567890cde"));
- test(S("abcde"), 1, 1, S("12345678901234567890"), S("a12345678901234567890cde"));
- test(S("abcde"), 1, 2, S(""), S("ade"));
- test(S("abcde"), 1, 2, S("12345"), S("a12345de"));
- test(S("abcde"), 1, 2, S("1234567890"), S("a1234567890de"));
- test(S("abcde"), 1, 2, S("12345678901234567890"), S("a12345678901234567890de"));
- test(S("abcde"), 1, 3, S(""), S("ae"));
- test(S("abcde"), 1, 3, S("12345"), S("a12345e"));
- test(S("abcde"), 1, 3, S("1234567890"), S("a1234567890e"));
- test(S("abcde"), 1, 3, S("12345678901234567890"), S("a12345678901234567890e"));
- test(S("abcde"), 1, 4, S(""), S("a"));
- test(S("abcde"), 1, 4, S("12345"), S("a12345"));
- test(S("abcde"), 1, 4, S("1234567890"), S("a1234567890"));
- test(S("abcde"), 1, 4, S("12345678901234567890"), S("a12345678901234567890"));
- test(S("abcde"), 2, 0, S(""), S("abcde"));
- test(S("abcde"), 2, 0, S("12345"), S("ab12345cde"));
- test(S("abcde"), 2, 0, S("1234567890"), S("ab1234567890cde"));
- test(S("abcde"), 2, 0, S("12345678901234567890"), S("ab12345678901234567890cde"));
- test(S("abcde"), 2, 1, S(""), S("abde"));
- test(S("abcde"), 2, 1, S("12345"), S("ab12345de"));
- test(S("abcde"), 2, 1, S("1234567890"), S("ab1234567890de"));
- test(S("abcde"), 2, 1, S("12345678901234567890"), S("ab12345678901234567890de"));
- test(S("abcde"), 2, 2, S(""), S("abe"));
- test(S("abcde"), 2, 2, S("12345"), S("ab12345e"));
- test(S("abcde"), 2, 2, S("1234567890"), S("ab1234567890e"));
- test(S("abcde"), 2, 2, S("12345678901234567890"), S("ab12345678901234567890e"));
- test(S("abcde"), 2, 3, S(""), S("ab"));
- test(S("abcde"), 2, 3, S("12345"), S("ab12345"));
- test(S("abcde"), 2, 3, S("1234567890"), S("ab1234567890"));
- test(S("abcde"), 2, 3, S("12345678901234567890"), S("ab12345678901234567890"));
- test(S("abcde"), 4, 0, S(""), S("abcde"));
- test(S("abcde"), 4, 0, S("12345"), S("abcd12345e"));
- test(S("abcde"), 4, 0, S("1234567890"), S("abcd1234567890e"));
- test(S("abcde"), 4, 0, S("12345678901234567890"), S("abcd12345678901234567890e"));
- test(S("abcde"), 4, 1, S(""), S("abcd"));
- test(S("abcde"), 4, 1, S("12345"), S("abcd12345"));
- test(S("abcde"), 4, 1, S("1234567890"), S("abcd1234567890"));
- test(S("abcde"), 4, 1, S("12345678901234567890"), S("abcd12345678901234567890"));
- test(S("abcde"), 5, 0, S(""), S("abcde"));
- test(S("abcde"), 5, 0, S("12345"), S("abcde12345"));
- test(S("abcde"), 5, 0, S("1234567890"), S("abcde1234567890"));
- test(S("abcde"), 5, 0, S("12345678901234567890"), S("abcde12345678901234567890"));
- test(S("abcdefghij"), 0, 0, S(""), S("abcdefghij"));
- test(S("abcdefghij"), 0, 0, S("12345"), S("12345abcdefghij"));
- test(S("abcdefghij"), 0, 0, S("1234567890"), S("1234567890abcdefghij"));
- test(S("abcdefghij"), 0, 0, S("12345678901234567890"), S("12345678901234567890abcdefghij"));
- test(S("abcdefghij"), 0, 1, S(""), S("bcdefghij"));
- test(S("abcdefghij"), 0, 1, S("12345"), S("12345bcdefghij"));
- test(S("abcdefghij"), 0, 1, S("1234567890"), S("1234567890bcdefghij"));
- test(S("abcdefghij"), 0, 1, S("12345678901234567890"), S("12345678901234567890bcdefghij"));
- test(S("abcdefghij"), 0, 5, S(""), S("fghij"));
- test(S("abcdefghij"), 0, 5, S("12345"), S("12345fghij"));
- test(S("abcdefghij"), 0, 5, S("1234567890"), S("1234567890fghij"));
- test(S("abcdefghij"), 0, 5, S("12345678901234567890"), S("12345678901234567890fghij"));
- test(S("abcdefghij"), 0, 9, S(""), S("j"));
- test(S("abcdefghij"), 0, 9, S("12345"), S("12345j"));
- test(S("abcdefghij"), 0, 9, S("1234567890"), S("1234567890j"));
- test(S("abcdefghij"), 0, 9, S("12345678901234567890"), S("12345678901234567890j"));
- test(S("abcdefghij"), 0, 10, S(""), S(""));
- test(S("abcdefghij"), 0, 10, S("12345"), S("12345"));
- test(S("abcdefghij"), 0, 10, S("1234567890"), S("1234567890"));
- test(S("abcdefghij"), 0, 10, S("12345678901234567890"), S("12345678901234567890"));
- test(S("abcdefghij"), 1, 0, S(""), S("abcdefghij"));
- test(S("abcdefghij"), 1, 0, S("12345"), S("a12345bcdefghij"));
- test(S("abcdefghij"), 1, 0, S("1234567890"), S("a1234567890bcdefghij"));
- test(S("abcdefghij"), 1, 0, S("12345678901234567890"), S("a12345678901234567890bcdefghij"));
- test(S("abcdefghij"), 1, 1, S(""), S("acdefghij"));
- test(S("abcdefghij"), 1, 1, S("12345"), S("a12345cdefghij"));
- test(S("abcdefghij"), 1, 1, S("1234567890"), S("a1234567890cdefghij"));
- test(S("abcdefghij"), 1, 1, S("12345678901234567890"), S("a12345678901234567890cdefghij"));
+TEST_CONSTEXPR_CXX20 bool test0() {
+ test(S(""), 0, 0, S(""), S(""));
+ test(S(""), 0, 0, S("12345"), S("12345"));
+ test(S(""), 0, 0, S("1234567890"), S("1234567890"));
+ test(S(""), 0, 0, S("12345678901234567890"), S("12345678901234567890"));
+ test(S("abcde"), 0, 0, S(""), S("abcde"));
+ test(S("abcde"), 0, 0, S("12345"), S("12345abcde"));
+ test(S("abcde"), 0, 0, S("1234567890"), S("1234567890abcde"));
+ test(S("abcde"), 0, 0, S("12345678901234567890"), S("12345678901234567890abcde"));
+ test(S("abcde"), 0, 1, S(""), S("bcde"));
+ test(S("abcde"), 0, 1, S("12345"), S("12345bcde"));
+ test(S("abcde"), 0, 1, S("1234567890"), S("1234567890bcde"));
+ test(S("abcde"), 0, 1, S("12345678901234567890"), S("12345678901234567890bcde"));
+ test(S("abcde"), 0, 2, S(""), S("cde"));
+ test(S("abcde"), 0, 2, S("12345"), S("12345cde"));
+ test(S("abcde"), 0, 2, S("1234567890"), S("1234567890cde"));
+ test(S("abcde"), 0, 2, S("12345678901234567890"), S("12345678901234567890cde"));
+ test(S("abcde"), 0, 4, S(""), S("e"));
+ test(S("abcde"), 0, 4, S("12345"), S("12345e"));
+ test(S("abcde"), 0, 4, S("1234567890"), S("1234567890e"));
+ test(S("abcde"), 0, 4, S("12345678901234567890"), S("12345678901234567890e"));
+ test(S("abcde"), 0, 5, S(""), S(""));
+ test(S("abcde"), 0, 5, S("12345"), S("12345"));
+ test(S("abcde"), 0, 5, S("1234567890"), S("1234567890"));
+ test(S("abcde"), 0, 5, S("12345678901234567890"), S("12345678901234567890"));
+ test(S("abcde"), 1, 0, S(""), S("abcde"));
+ test(S("abcde"), 1, 0, S("12345"), S("a12345bcde"));
+ test(S("abcde"), 1, 0, S("1234567890"), S("a1234567890bcde"));
+ test(S("abcde"), 1, 0, S("12345678901234567890"), S("a12345678901234567890bcde"));
+ test(S("abcde"), 1, 1, S(""), S("acde"));
+ test(S("abcde"), 1, 1, S("12345"), S("a12345cde"));
+ test(S("abcde"), 1, 1, S("1234567890"), S("a1234567890cde"));
+ test(S("abcde"), 1, 1, S("12345678901234567890"), S("a12345678901234567890cde"));
+ test(S("abcde"), 1, 2, S(""), S("ade"));
+ test(S("abcde"), 1, 2, S("12345"), S("a12345de"));
+ test(S("abcde"), 1, 2, S("1234567890"), S("a1234567890de"));
+ test(S("abcde"), 1, 2, S("12345678901234567890"), S("a12345678901234567890de"));
+ test(S("abcde"), 1, 3, S(""), S("ae"));
+ test(S("abcde"), 1, 3, S("12345"), S("a12345e"));
+ test(S("abcde"), 1, 3, S("1234567890"), S("a1234567890e"));
+ test(S("abcde"), 1, 3, S("12345678901234567890"), S("a12345678901234567890e"));
+ test(S("abcde"), 1, 4, S(""), S("a"));
+ test(S("abcde"), 1, 4, S("12345"), S("a12345"));
+ test(S("abcde"), 1, 4, S("1234567890"), S("a1234567890"));
+ test(S("abcde"), 1, 4, S("12345678901234567890"), S("a12345678901234567890"));
+ test(S("abcde"), 2, 0, S(""), S("abcde"));
+ test(S("abcde"), 2, 0, S("12345"), S("ab12345cde"));
+ test(S("abcde"), 2, 0, S("1234567890"), S("ab1234567890cde"));
+ test(S("abcde"), 2, 0, S("12345678901234567890"), S("ab12345678901234567890cde"));
+ test(S("abcde"), 2, 1, S(""), S("abde"));
+ test(S("abcde"), 2, 1, S("12345"), S("ab12345de"));
+ test(S("abcde"), 2, 1, S("1234567890"), S("ab1234567890de"));
+ test(S("abcde"), 2, 1, S("12345678901234567890"), S("ab12345678901234567890de"));
+ test(S("abcde"), 2, 2, S(""), S("abe"));
+ test(S("abcde"), 2, 2, S("12345"), S("ab12345e"));
+ test(S("abcde"), 2, 2, S("1234567890"), S("ab1234567890e"));
+ test(S("abcde"), 2, 2, S("12345678901234567890"), S("ab12345678901234567890e"));
+ test(S("abcde"), 2, 3, S(""), S("ab"));
+ test(S("abcde"), 2, 3, S("12345"), S("ab12345"));
+ test(S("abcde"), 2, 3, S("1234567890"), S("ab1234567890"));
+ test(S("abcde"), 2, 3, S("12345678901234567890"), S("ab12345678901234567890"));
+ test(S("abcde"), 4, 0, S(""), S("abcde"));
+ test(S("abcde"), 4, 0, S("12345"), S("abcd12345e"));
+ test(S("abcde"), 4, 0, S("1234567890"), S("abcd1234567890e"));
+ test(S("abcde"), 4, 0, S("12345678901234567890"), S("abcd12345678901234567890e"));
+ test(S("abcde"), 4, 1, S(""), S("abcd"));
+ test(S("abcde"), 4, 1, S("12345"), S("abcd12345"));
+ test(S("abcde"), 4, 1, S("1234567890"), S("abcd1234567890"));
+ test(S("abcde"), 4, 1, S("12345678901234567890"), S("abcd12345678901234567890"));
+ test(S("abcde"), 5, 0, S(""), S("abcde"));
+ test(S("abcde"), 5, 0, S("12345"), S("abcde12345"));
+ test(S("abcde"), 5, 0, S("1234567890"), S("abcde1234567890"));
+ test(S("abcde"), 5, 0, S("12345678901234567890"), S("abcde12345678901234567890"));
+ test(S("abcdefghij"), 0, 0, S(""), S("abcdefghij"));
+ test(S("abcdefghij"), 0, 0, S("12345"), S("12345abcdefghij"));
+ test(S("abcdefghij"), 0, 0, S("1234567890"), S("1234567890abcdefghij"));
+ test(S("abcdefghij"), 0, 0, S("12345678901234567890"), S("12345678901234567890abcdefghij"));
+ test(S("abcdefghij"), 0, 1, S(""), S("bcdefghij"));
+ test(S("abcdefghij"), 0, 1, S("12345"), S("12345bcdefghij"));
+ test(S("abcdefghij"), 0, 1, S("1234567890"), S("1234567890bcdefghij"));
+ test(S("abcdefghij"), 0, 1, S("12345678901234567890"), S("12345678901234567890bcdefghij"));
+ test(S("abcdefghij"), 0, 5, S(""), S("fghij"));
+ test(S("abcdefghij"), 0, 5, S("12345"), S("12345fghij"));
+ test(S("abcdefghij"), 0, 5, S("1234567890"), S("1234567890fghij"));
+ test(S("abcdefghij"), 0, 5, S("12345678901234567890"), S("12345678901234567890fghij"));
+ test(S("abcdefghij"), 0, 9, S(""), S("j"));
+ test(S("abcdefghij"), 0, 9, S("12345"), S("12345j"));
+ test(S("abcdefghij"), 0, 9, S("1234567890"), S("1234567890j"));
+ test(S("abcdefghij"), 0, 9, S("12345678901234567890"), S("12345678901234567890j"));
+ test(S("abcdefghij"), 0, 10, S(""), S(""));
+ test(S("abcdefghij"), 0, 10, S("12345"), S("12345"));
+ test(S("abcdefghij"), 0, 10, S("1234567890"), S("1234567890"));
+ test(S("abcdefghij"), 0, 10, S("12345678901234567890"), S("12345678901234567890"));
+ test(S("abcdefghij"), 1, 0, S(""), S("abcdefghij"));
+ test(S("abcdefghij"), 1, 0, S("12345"), S("a12345bcdefghij"));
+ test(S("abcdefghij"), 1, 0, S("1234567890"), S("a1234567890bcdefghij"));
+ test(S("abcdefghij"), 1, 0, S("12345678901234567890"), S("a12345678901234567890bcdefghij"));
+ test(S("abcdefghij"), 1, 1, S(""), S("acdefghij"));
+ test(S("abcdefghij"), 1, 1, S("12345"), S("a12345cdefghij"));
+ test(S("abcdefghij"), 1, 1, S("1234567890"), S("a1234567890cdefghij"));
+ test(S("abcdefghij"), 1, 1, S("12345678901234567890"), S("a12345678901234567890cdefghij"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test1()
-{
- test(S("abcdefghij"), 1, 4, S(""), S("afghij"));
- test(S("abcdefghij"), 1, 4, S("12345"), S("a12345fghij"));
- test(S("abcdefghij"), 1, 4, S("1234567890"), S("a1234567890fghij"));
- test(S("abcdefghij"), 1, 4, S("12345678901234567890"), S("a12345678901234567890fghij"));
- test(S("abcdefghij"), 1, 8, S(""), S("aj"));
- test(S("abcdefghij"), 1, 8, S("12345"), S("a12345j"));
- test(S("abcdefghij"), 1, 8, S("1234567890"), S("a1234567890j"));
- test(S("abcdefghij"), 1, 8, S("12345678901234567890"), S("a12345678901234567890j"));
- test(S("abcdefghij"), 1, 9, S(""), S("a"));
- test(S("abcdefghij"), 1, 9, S("12345"), S("a12345"));
- test(S("abcdefghij"), 1, 9, S("1234567890"), S("a1234567890"));
- test(S("abcdefghij"), 1, 9, S("12345678901234567890"), S("a12345678901234567890"));
- test(S("abcdefghij"), 5, 0, S(""), S("abcdefghij"));
- test(S("abcdefghij"), 5, 0, S("12345"), S("abcde12345fghij"));
- test(S("abcdefghij"), 5, 0, S("1234567890"), S("abcde1234567890fghij"));
- test(S("abcdefghij"), 5, 0, S("12345678901234567890"), S("abcde12345678901234567890fghij"));
- test(S("abcdefghij"), 5, 1, S(""), S("abcdeghij"));
- test(S("abcdefghij"), 5, 1, S("12345"), S("abcde12345ghij"));
- test(S("abcdefghij"), 5, 1, S("1234567890"), S("abcde1234567890ghij"));
- test(S("abcdefghij"), 5, 1, S("12345678901234567890"), S("abcde12345678901234567890ghij"));
- test(S("abcdefghij"), 5, 2, S(""), S("abcdehij"));
- test(S("abcdefghij"), 5, 2, S("12345"), S("abcde12345hij"));
- test(S("abcdefghij"), 5, 2, S("1234567890"), S("abcde1234567890hij"));
- test(S("abcdefghij"), 5, 2, S("12345678901234567890"), S("abcde12345678901234567890hij"));
- test(S("abcdefghij"), 5, 4, S(""), S("abcdej"));
- test(S("abcdefghij"), 5, 4, S("12345"), S("abcde12345j"));
- test(S("abcdefghij"), 5, 4, S("1234567890"), S("abcde1234567890j"));
- test(S("abcdefghij"), 5, 4, S("12345678901234567890"), S("abcde12345678901234567890j"));
- test(S("abcdefghij"), 5, 5, S(""), S("abcde"));
- test(S("abcdefghij"), 5, 5, S("12345"), S("abcde12345"));
- test(S("abcdefghij"), 5, 5, S("1234567890"), S("abcde1234567890"));
- test(S("abcdefghij"), 5, 5, S("12345678901234567890"), S("abcde12345678901234567890"));
- test(S("abcdefghij"), 9, 0, S(""), S("abcdefghij"));
- test(S("abcdefghij"), 9, 0, S("12345"), S("abcdefghi12345j"));
- test(S("abcdefghij"), 9, 0, S("1234567890"), S("abcdefghi1234567890j"));
- test(S("abcdefghij"), 9, 0, S("12345678901234567890"), S("abcdefghi12345678901234567890j"));
- test(S("abcdefghij"), 9, 1, S(""), S("abcdefghi"));
- test(S("abcdefghij"), 9, 1, S("12345"), S("abcdefghi12345"));
- test(S("abcdefghij"), 9, 1, S("1234567890"), S("abcdefghi1234567890"));
- test(S("abcdefghij"), 9, 1, S("12345678901234567890"), S("abcdefghi12345678901234567890"));
- test(S("abcdefghij"), 10, 0, S(""), S("abcdefghij"));
- test(S("abcdefghij"), 10, 0, S("12345"), S("abcdefghij12345"));
- test(S("abcdefghij"), 10, 0, S("1234567890"), S("abcdefghij1234567890"));
- test(S("abcdefghij"), 10, 0, S("12345678901234567890"), S("abcdefghij12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 0, 0, S(""), S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, S("12345"), S("12345abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, S("1234567890"), S("1234567890abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, S("12345678901234567890"), S("12345678901234567890abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, S(""), S("bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, S("12345"), S("12345bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, S("1234567890"), S("1234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, S("12345678901234567890"), S("12345678901234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, S(""), S("klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, S("12345"), S("12345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, S("1234567890"), S("1234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, S("12345678901234567890"), S("12345678901234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 19, S(""), S("t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, S("12345"), S("12345t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, S("1234567890"), S("1234567890t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, S("12345678901234567890"), S("12345678901234567890t"));
- test(S("abcdefghijklmnopqrst"), 0, 20, S(""), S(""));
- test(S("abcdefghijklmnopqrst"), 0, 20, S("12345"), S("12345"));
- test(S("abcdefghijklmnopqrst"), 0, 20, S("1234567890"), S("1234567890"));
- test(S("abcdefghijklmnopqrst"), 0, 20, S("12345678901234567890"), S("12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 1, 0, S(""), S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, S("12345"), S("a12345bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, S("1234567890"), S("a1234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, S("12345678901234567890"), S("a12345678901234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, S(""), S("acdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, S("12345"), S("a12345cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, S("1234567890"), S("a1234567890cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, S("12345678901234567890"), S("a12345678901234567890cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, S(""), S("aklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, S("12345"), S("a12345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, S("1234567890"), S("a1234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, S("12345678901234567890"), S("a12345678901234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 18, S(""), S("at"));
- test(S("abcdefghijklmnopqrst"), 1, 18, S("12345"), S("a12345t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, S("1234567890"), S("a1234567890t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, S("12345678901234567890"), S("a12345678901234567890t"));
- test(S("abcdefghijklmnopqrst"), 1, 19, S(""), S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 19, S("12345"), S("a12345"));
- test(S("abcdefghijklmnopqrst"), 1, 19, S("1234567890"), S("a1234567890"));
- test(S("abcdefghijklmnopqrst"), 1, 19, S("12345678901234567890"), S("a12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 10, 0, S(""), S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, S("12345"), S("abcdefghij12345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, S("1234567890"), S("abcdefghij1234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, S("12345678901234567890"), S("abcdefghij12345678901234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, S(""), S("abcdefghijlmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, S("12345"), S("abcdefghij12345lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, S("1234567890"), S("abcdefghij1234567890lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, S("12345678901234567890"), S("abcdefghij12345678901234567890lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, S(""), S("abcdefghijpqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, S("12345"), S("abcdefghij12345pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, S("1234567890"), S("abcdefghij1234567890pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, S("12345678901234567890"), S("abcdefghij12345678901234567890pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 9, S(""), S("abcdefghijt"));
- test(S("abcdefghijklmnopqrst"), 10, 9, S("12345"), S("abcdefghij12345t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, S("1234567890"), S("abcdefghij1234567890t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, S("12345678901234567890"), S("abcdefghij12345678901234567890t"));
+TEST_CONSTEXPR_CXX20 bool test1() {
+ test(S("abcdefghij"), 1, 4, S(""), S("afghij"));
+ test(S("abcdefghij"), 1, 4, S("12345"), S("a12345fghij"));
+ test(S("abcdefghij"), 1, 4, S("1234567890"), S("a1234567890fghij"));
+ test(S("abcdefghij"), 1, 4, S("12345678901234567890"), S("a12345678901234567890fghij"));
+ test(S("abcdefghij"), 1, 8, S(""), S("aj"));
+ test(S("abcdefghij"), 1, 8, S("12345"), S("a12345j"));
+ test(S("abcdefghij"), 1, 8, S("1234567890"), S("a1234567890j"));
+ test(S("abcdefghij"), 1, 8, S("12345678901234567890"), S("a12345678901234567890j"));
+ test(S("abcdefghij"), 1, 9, S(""), S("a"));
+ test(S("abcdefghij"), 1, 9, S("12345"), S("a12345"));
+ test(S("abcdefghij"), 1, 9, S("1234567890"), S("a1234567890"));
+ test(S("abcdefghij"), 1, 9, S("12345678901234567890"), S("a12345678901234567890"));
+ test(S("abcdefghij"), 5, 0, S(""), S("abcdefghij"));
+ test(S("abcdefghij"), 5, 0, S("12345"), S("abcde12345fghij"));
+ test(S("abcdefghij"), 5, 0, S("1234567890"), S("abcde1234567890fghij"));
+ test(S("abcdefghij"), 5, 0, S("12345678901234567890"), S("abcde12345678901234567890fghij"));
+ test(S("abcdefghij"), 5, 1, S(""), S("abcdeghij"));
+ test(S("abcdefghij"), 5, 1, S("12345"), S("abcde12345ghij"));
+ test(S("abcdefghij"), 5, 1, S("1234567890"), S("abcde1234567890ghij"));
+ test(S("abcdefghij"), 5, 1, S("12345678901234567890"), S("abcde12345678901234567890ghij"));
+ test(S("abcdefghij"), 5, 2, S(""), S("abcdehij"));
+ test(S("abcdefghij"), 5, 2, S("12345"), S("abcde12345hij"));
+ test(S("abcdefghij"), 5, 2, S("1234567890"), S("abcde1234567890hij"));
+ test(S("abcdefghij"), 5, 2, S("12345678901234567890"), S("abcde12345678901234567890hij"));
+ test(S("abcdefghij"), 5, 4, S(""), S("abcdej"));
+ test(S("abcdefghij"), 5, 4, S("12345"), S("abcde12345j"));
+ test(S("abcdefghij"), 5, 4, S("1234567890"), S("abcde1234567890j"));
+ test(S("abcdefghij"), 5, 4, S("12345678901234567890"), S("abcde12345678901234567890j"));
+ test(S("abcdefghij"), 5, 5, S(""), S("abcde"));
+ test(S("abcdefghij"), 5, 5, S("12345"), S("abcde12345"));
+ test(S("abcdefghij"), 5, 5, S("1234567890"), S("abcde1234567890"));
+ test(S("abcdefghij"), 5, 5, S("12345678901234567890"), S("abcde12345678901234567890"));
+ test(S("abcdefghij"), 9, 0, S(""), S("abcdefghij"));
+ test(S("abcdefghij"), 9, 0, S("12345"), S("abcdefghi12345j"));
+ test(S("abcdefghij"), 9, 0, S("1234567890"), S("abcdefghi1234567890j"));
+ test(S("abcdefghij"), 9, 0, S("12345678901234567890"), S("abcdefghi12345678901234567890j"));
+ test(S("abcdefghij"), 9, 1, S(""), S("abcdefghi"));
+ test(S("abcdefghij"), 9, 1, S("12345"), S("abcdefghi12345"));
+ test(S("abcdefghij"), 9, 1, S("1234567890"), S("abcdefghi1234567890"));
+ test(S("abcdefghij"), 9, 1, S("12345678901234567890"), S("abcdefghi12345678901234567890"));
+ test(S("abcdefghij"), 10, 0, S(""), S("abcdefghij"));
+ test(S("abcdefghij"), 10, 0, S("12345"), S("abcdefghij12345"));
+ test(S("abcdefghij"), 10, 0, S("1234567890"), S("abcdefghij1234567890"));
+ test(S("abcdefghij"), 10, 0, S("12345678901234567890"), S("abcdefghij12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, S(""), S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("12345"), S("12345abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("1234567890"), S("1234567890abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("12345678901234567890"), S("12345678901234567890abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, S(""), S("bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("12345"), S("12345bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("1234567890"), S("1234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("12345678901234567890"), S("12345678901234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, S(""), S("klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("12345"), S("12345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("1234567890"), S("1234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("12345678901234567890"), S("12345678901234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, S(""), S("t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("12345"), S("12345t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("1234567890"), S("1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("12345678901234567890"), S("12345678901234567890t"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, S(""), S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("12345"), S("12345"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("1234567890"), S("1234567890"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("12345678901234567890"), S("12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, S(""), S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("12345"), S("a12345bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("1234567890"), S("a1234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("12345678901234567890"), S("a12345678901234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, S(""), S("acdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("12345"), S("a12345cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("1234567890"), S("a1234567890cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("12345678901234567890"), S("a12345678901234567890cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, S(""), S("aklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("12345"), S("a12345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("1234567890"), S("a1234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("12345678901234567890"), S("a12345678901234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, S(""), S("at"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("12345"), S("a12345t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("1234567890"), S("a1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("12345678901234567890"), S("a12345678901234567890t"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, S(""), S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("12345"), S("a12345"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("1234567890"), S("a1234567890"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("12345678901234567890"), S("a12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, S(""), S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("12345"), S("abcdefghij12345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("1234567890"), S("abcdefghij1234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("12345678901234567890"), S("abcdefghij12345678901234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, S(""), S("abcdefghijlmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("12345"), S("abcdefghij12345lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("1234567890"), S("abcdefghij1234567890lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("12345678901234567890"), S("abcdefghij12345678901234567890lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, S(""), S("abcdefghijpqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("12345"), S("abcdefghij12345pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("1234567890"), S("abcdefghij1234567890pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("12345678901234567890"), S("abcdefghij12345678901234567890pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, S(""), S("abcdefghijt"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("12345"), S("abcdefghij12345t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("1234567890"), S("abcdefghij1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("12345678901234567890"), S("abcdefghij12345678901234567890t"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test2()
-{
- test(S("abcdefghijklmnopqrst"), 10, 10, S(""), S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 10, S("12345"), S("abcdefghij12345"));
- test(S("abcdefghijklmnopqrst"), 10, 10, S("1234567890"), S("abcdefghij1234567890"));
- test(S("abcdefghijklmnopqrst"), 10, 10, S("12345678901234567890"), S("abcdefghij12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 19, 0, S(""), S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, 0, S("12345"), S("abcdefghijklmnopqrs12345t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, S("1234567890"), S("abcdefghijklmnopqrs1234567890t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, S("12345678901234567890"), S("abcdefghijklmnopqrs12345678901234567890t"));
- test(S("abcdefghijklmnopqrst"), 19, 1, S(""), S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 1, S("12345"), S("abcdefghijklmnopqrs12345"));
- test(S("abcdefghijklmnopqrst"), 19, 1, S("1234567890"), S("abcdefghijklmnopqrs1234567890"));
- test(S("abcdefghijklmnopqrst"), 19, 1, S("12345678901234567890"), S("abcdefghijklmnopqrs12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 20, 0, S(""), S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 0, S("12345"), S("abcdefghijklmnopqrst12345"));
- test(S("abcdefghijklmnopqrst"), 20, 0, S("1234567890"), S("abcdefghijklmnopqrst1234567890"));
- test(S("abcdefghijklmnopqrst"), 20, 0, S("12345678901234567890"), S("abcdefghijklmnopqrst12345678901234567890"));
+TEST_CONSTEXPR_CXX20 bool test2() {
+ test(S("abcdefghijklmnopqrst"), 10, 10, S(""), S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("12345"), S("abcdefghij12345"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("1234567890"), S("abcdefghij1234567890"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("12345678901234567890"), S("abcdefghij12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, S(""), S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("12345"), S("abcdefghijklmnopqrs12345t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("1234567890"), S("abcdefghijklmnopqrs1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("12345678901234567890"), S("abcdefghijklmnopqrs12345678901234567890t"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, S(""), S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("12345"), S("abcdefghijklmnopqrs12345"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("1234567890"), S("abcdefghijklmnopqrs1234567890"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("12345678901234567890"), S("abcdefghijklmnopqrs12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, S(""), S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("12345"), S("abcdefghijklmnopqrst12345"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("1234567890"), S("abcdefghijklmnopqrst1234567890"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("12345678901234567890"), S("abcdefghijklmnopqrst12345678901234567890"));
- return true;
+ return true;
}
template <class S>
@@ -293,8 +288,7 @@ void test() {
#endif
}
-int main(int, char**)
-{
+int main(int, char**) {
test<std::string>();
#if TEST_STD_VER >= 11
test<std::basic_string<char, std::char_traits<char>, min_allocator<char>>>();
diff --git a/libcxx/test/std/strings/basic.string/string.modifiers/string_replace/iter_iter_string_view.pass.cpp b/libcxx/test/std/strings/basic.string/string.modifiers/string_replace/iter_iter_string_view.pass.cpp
index 2bbfc1cc4b1423f..bd97872707f3f2b 100644
--- a/libcxx/test/std/strings/basic.string/string.modifiers/string_replace/iter_iter_string_view.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.modifiers/string_replace/iter_iter_string_view.pass.cpp
@@ -19,255 +19,250 @@
#include "min_allocator.h"
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 void
-test(S s, typename S::size_type pos1, typename S::size_type n1, SV sv, S expected)
-{
- typename S::size_type old_size = s.size();
- typename S::const_iterator first = s.begin() + pos1;
- typename S::const_iterator last = s.begin() + pos1 + n1;
- typename S::size_type xlen = last - first;
- s.replace(first, last, sv);
- LIBCPP_ASSERT(s.__invariants());
- assert(s == expected);
- typename S::size_type rlen = sv.size();
- assert(s.size() == old_size - xlen + rlen);
+TEST_CONSTEXPR_CXX20 void test(S s, typename S::size_type pos1, typename S::size_type n1, SV sv, S expected) {
+ typename S::size_type old_size = s.size();
+ typename S::const_iterator first = s.begin() + pos1;
+ typename S::const_iterator last = s.begin() + pos1 + n1;
+ typename S::size_type xlen = last - first;
+ s.replace(first, last, sv);
+ LIBCPP_ASSERT(s.__invariants());
+ assert(s == expected);
+ typename S::size_type rlen = sv.size();
+ assert(s.size() == old_size - xlen + rlen);
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test0()
-{
- test(S(""), 0, 0, SV(""), S(""));
- test(S(""), 0, 0, SV("12345"), S("12345"));
- test(S(""), 0, 0, SV("1234567890"), S("1234567890"));
- test(S(""), 0, 0, SV("12345678901234567890"), S("12345678901234567890"));
- test(S("abcde"), 0, 0, SV(""), S("abcde"));
- test(S("abcde"), 0, 0, SV("12345"), S("12345abcde"));
- test(S("abcde"), 0, 0, SV("1234567890"), S("1234567890abcde"));
- test(S("abcde"), 0, 0, SV("12345678901234567890"), S("12345678901234567890abcde"));
- test(S("abcde"), 0, 1, SV(""), S("bcde"));
- test(S("abcde"), 0, 1, SV("12345"), S("12345bcde"));
- test(S("abcde"), 0, 1, SV("1234567890"), S("1234567890bcde"));
- test(S("abcde"), 0, 1, SV("12345678901234567890"), S("12345678901234567890bcde"));
- test(S("abcde"), 0, 2, SV(""), S("cde"));
- test(S("abcde"), 0, 2, SV("12345"), S("12345cde"));
- test(S("abcde"), 0, 2, SV("1234567890"), S("1234567890cde"));
- test(S("abcde"), 0, 2, SV("12345678901234567890"), S("12345678901234567890cde"));
- test(S("abcde"), 0, 4, SV(""), S("e"));
- test(S("abcde"), 0, 4, SV("12345"), S("12345e"));
- test(S("abcde"), 0, 4, SV("1234567890"), S("1234567890e"));
- test(S("abcde"), 0, 4, SV("12345678901234567890"), S("12345678901234567890e"));
- test(S("abcde"), 0, 5, SV(""), S(""));
- test(S("abcde"), 0, 5, SV("12345"), S("12345"));
- test(S("abcde"), 0, 5, SV("1234567890"), S("1234567890"));
- test(S("abcde"), 0, 5, SV("12345678901234567890"), S("12345678901234567890"));
- test(S("abcde"), 1, 0, SV(""), S("abcde"));
- test(S("abcde"), 1, 0, SV("12345"), S("a12345bcde"));
- test(S("abcde"), 1, 0, SV("1234567890"), S("a1234567890bcde"));
- test(S("abcde"), 1, 0, SV("12345678901234567890"), S("a12345678901234567890bcde"));
- test(S("abcde"), 1, 1, SV(""), S("acde"));
- test(S("abcde"), 1, 1, SV("12345"), S("a12345cde"));
- test(S("abcde"), 1, 1, SV("1234567890"), S("a1234567890cde"));
- test(S("abcde"), 1, 1, SV("12345678901234567890"), S("a12345678901234567890cde"));
- test(S("abcde"), 1, 2, SV(""), S("ade"));
- test(S("abcde"), 1, 2, SV("12345"), S("a12345de"));
- test(S("abcde"), 1, 2, SV("1234567890"), S("a1234567890de"));
- test(S("abcde"), 1, 2, SV("12345678901234567890"), S("a12345678901234567890de"));
- test(S("abcde"), 1, 3, SV(""), S("ae"));
- test(S("abcde"), 1, 3, SV("12345"), S("a12345e"));
- test(S("abcde"), 1, 3, SV("1234567890"), S("a1234567890e"));
- test(S("abcde"), 1, 3, SV("12345678901234567890"), S("a12345678901234567890e"));
- test(S("abcde"), 1, 4, SV(""), S("a"));
- test(S("abcde"), 1, 4, SV("12345"), S("a12345"));
- test(S("abcde"), 1, 4, SV("1234567890"), S("a1234567890"));
- test(S("abcde"), 1, 4, SV("12345678901234567890"), S("a12345678901234567890"));
- test(S("abcde"), 2, 0, SV(""), S("abcde"));
- test(S("abcde"), 2, 0, SV("12345"), S("ab12345cde"));
- test(S("abcde"), 2, 0, SV("1234567890"), S("ab1234567890cde"));
- test(S("abcde"), 2, 0, SV("12345678901234567890"), S("ab12345678901234567890cde"));
- test(S("abcde"), 2, 1, SV(""), S("abde"));
- test(S("abcde"), 2, 1, SV("12345"), S("ab12345de"));
- test(S("abcde"), 2, 1, SV("1234567890"), S("ab1234567890de"));
- test(S("abcde"), 2, 1, SV("12345678901234567890"), S("ab12345678901234567890de"));
- test(S("abcde"), 2, 2, SV(""), S("abe"));
- test(S("abcde"), 2, 2, SV("12345"), S("ab12345e"));
- test(S("abcde"), 2, 2, SV("1234567890"), S("ab1234567890e"));
- test(S("abcde"), 2, 2, SV("12345678901234567890"), S("ab12345678901234567890e"));
- test(S("abcde"), 2, 3, SV(""), S("ab"));
- test(S("abcde"), 2, 3, SV("12345"), S("ab12345"));
- test(S("abcde"), 2, 3, SV("1234567890"), S("ab1234567890"));
- test(S("abcde"), 2, 3, SV("12345678901234567890"), S("ab12345678901234567890"));
- test(S("abcde"), 4, 0, SV(""), S("abcde"));
- test(S("abcde"), 4, 0, SV("12345"), S("abcd12345e"));
- test(S("abcde"), 4, 0, SV("1234567890"), S("abcd1234567890e"));
- test(S("abcde"), 4, 0, SV("12345678901234567890"), S("abcd12345678901234567890e"));
- test(S("abcde"), 4, 1, SV(""), S("abcd"));
- test(S("abcde"), 4, 1, SV("12345"), S("abcd12345"));
- test(S("abcde"), 4, 1, SV("1234567890"), S("abcd1234567890"));
- test(S("abcde"), 4, 1, SV("12345678901234567890"), S("abcd12345678901234567890"));
- test(S("abcde"), 5, 0, SV(""), S("abcde"));
- test(S("abcde"), 5, 0, SV("12345"), S("abcde12345"));
- test(S("abcde"), 5, 0, SV("1234567890"), S("abcde1234567890"));
- test(S("abcde"), 5, 0, SV("12345678901234567890"), S("abcde12345678901234567890"));
- test(S("abcdefghij"), 0, 0, SV(""), S("abcdefghij"));
- test(S("abcdefghij"), 0, 0, SV("12345"), S("12345abcdefghij"));
- test(S("abcdefghij"), 0, 0, SV("1234567890"), S("1234567890abcdefghij"));
- test(S("abcdefghij"), 0, 0, SV("12345678901234567890"), S("12345678901234567890abcdefghij"));
- test(S("abcdefghij"), 0, 1, SV(""), S("bcdefghij"));
- test(S("abcdefghij"), 0, 1, SV("12345"), S("12345bcdefghij"));
- test(S("abcdefghij"), 0, 1, SV("1234567890"), S("1234567890bcdefghij"));
- test(S("abcdefghij"), 0, 1, SV("12345678901234567890"), S("12345678901234567890bcdefghij"));
- test(S("abcdefghij"), 0, 5, SV(""), S("fghij"));
- test(S("abcdefghij"), 0, 5, SV("12345"), S("12345fghij"));
- test(S("abcdefghij"), 0, 5, SV("1234567890"), S("1234567890fghij"));
- test(S("abcdefghij"), 0, 5, SV("12345678901234567890"), S("12345678901234567890fghij"));
- test(S("abcdefghij"), 0, 9, SV(""), S("j"));
- test(S("abcdefghij"), 0, 9, SV("12345"), S("12345j"));
- test(S("abcdefghij"), 0, 9, SV("1234567890"), S("1234567890j"));
- test(S("abcdefghij"), 0, 9, SV("12345678901234567890"), S("12345678901234567890j"));
- test(S("abcdefghij"), 0, 10, SV(""), S(""));
- test(S("abcdefghij"), 0, 10, SV("12345"), S("12345"));
- test(S("abcdefghij"), 0, 10, SV("1234567890"), S("1234567890"));
- test(S("abcdefghij"), 0, 10, SV("12345678901234567890"), S("12345678901234567890"));
- test(S("abcdefghij"), 1, 0, SV(""), S("abcdefghij"));
- test(S("abcdefghij"), 1, 0, SV("12345"), S("a12345bcdefghij"));
- test(S("abcdefghij"), 1, 0, SV("1234567890"), S("a1234567890bcdefghij"));
- test(S("abcdefghij"), 1, 0, SV("12345678901234567890"), S("a12345678901234567890bcdefghij"));
- test(S("abcdefghij"), 1, 1, SV(""), S("acdefghij"));
- test(S("abcdefghij"), 1, 1, SV("12345"), S("a12345cdefghij"));
- test(S("abcdefghij"), 1, 1, SV("1234567890"), S("a1234567890cdefghij"));
- test(S("abcdefghij"), 1, 1, SV("12345678901234567890"), S("a12345678901234567890cdefghij"));
+TEST_CONSTEXPR_CXX20 bool test0() {
+ test(S(""), 0, 0, SV(""), S(""));
+ test(S(""), 0, 0, SV("12345"), S("12345"));
+ test(S(""), 0, 0, SV("1234567890"), S("1234567890"));
+ test(S(""), 0, 0, SV("12345678901234567890"), S("12345678901234567890"));
+ test(S("abcde"), 0, 0, SV(""), S("abcde"));
+ test(S("abcde"), 0, 0, SV("12345"), S("12345abcde"));
+ test(S("abcde"), 0, 0, SV("1234567890"), S("1234567890abcde"));
+ test(S("abcde"), 0, 0, SV("12345678901234567890"), S("12345678901234567890abcde"));
+ test(S("abcde"), 0, 1, SV(""), S("bcde"));
+ test(S("abcde"), 0, 1, SV("12345"), S("12345bcde"));
+ test(S("abcde"), 0, 1, SV("1234567890"), S("1234567890bcde"));
+ test(S("abcde"), 0, 1, SV("12345678901234567890"), S("12345678901234567890bcde"));
+ test(S("abcde"), 0, 2, SV(""), S("cde"));
+ test(S("abcde"), 0, 2, SV("12345"), S("12345cde"));
+ test(S("abcde"), 0, 2, SV("1234567890"), S("1234567890cde"));
+ test(S("abcde"), 0, 2, SV("12345678901234567890"), S("12345678901234567890cde"));
+ test(S("abcde"), 0, 4, SV(""), S("e"));
+ test(S("abcde"), 0, 4, SV("12345"), S("12345e"));
+ test(S("abcde"), 0, 4, SV("1234567890"), S("1234567890e"));
+ test(S("abcde"), 0, 4, SV("12345678901234567890"), S("12345678901234567890e"));
+ test(S("abcde"), 0, 5, SV(""), S(""));
+ test(S("abcde"), 0, 5, SV("12345"), S("12345"));
+ test(S("abcde"), 0, 5, SV("1234567890"), S("1234567890"));
+ test(S("abcde"), 0, 5, SV("12345678901234567890"), S("12345678901234567890"));
+ test(S("abcde"), 1, 0, SV(""), S("abcde"));
+ test(S("abcde"), 1, 0, SV("12345"), S("a12345bcde"));
+ test(S("abcde"), 1, 0, SV("1234567890"), S("a1234567890bcde"));
+ test(S("abcde"), 1, 0, SV("12345678901234567890"), S("a12345678901234567890bcde"));
+ test(S("abcde"), 1, 1, SV(""), S("acde"));
+ test(S("abcde"), 1, 1, SV("12345"), S("a12345cde"));
+ test(S("abcde"), 1, 1, SV("1234567890"), S("a1234567890cde"));
+ test(S("abcde"), 1, 1, SV("12345678901234567890"), S("a12345678901234567890cde"));
+ test(S("abcde"), 1, 2, SV(""), S("ade"));
+ test(S("abcde"), 1, 2, SV("12345"), S("a12345de"));
+ test(S("abcde"), 1, 2, SV("1234567890"), S("a1234567890de"));
+ test(S("abcde"), 1, 2, SV("12345678901234567890"), S("a12345678901234567890de"));
+ test(S("abcde"), 1, 3, SV(""), S("ae"));
+ test(S("abcde"), 1, 3, SV("12345"), S("a12345e"));
+ test(S("abcde"), 1, 3, SV("1234567890"), S("a1234567890e"));
+ test(S("abcde"), 1, 3, SV("12345678901234567890"), S("a12345678901234567890e"));
+ test(S("abcde"), 1, 4, SV(""), S("a"));
+ test(S("abcde"), 1, 4, SV("12345"), S("a12345"));
+ test(S("abcde"), 1, 4, SV("1234567890"), S("a1234567890"));
+ test(S("abcde"), 1, 4, SV("12345678901234567890"), S("a12345678901234567890"));
+ test(S("abcde"), 2, 0, SV(""), S("abcde"));
+ test(S("abcde"), 2, 0, SV("12345"), S("ab12345cde"));
+ test(S("abcde"), 2, 0, SV("1234567890"), S("ab1234567890cde"));
+ test(S("abcde"), 2, 0, SV("12345678901234567890"), S("ab12345678901234567890cde"));
+ test(S("abcde"), 2, 1, SV(""), S("abde"));
+ test(S("abcde"), 2, 1, SV("12345"), S("ab12345de"));
+ test(S("abcde"), 2, 1, SV("1234567890"), S("ab1234567890de"));
+ test(S("abcde"), 2, 1, SV("12345678901234567890"), S("ab12345678901234567890de"));
+ test(S("abcde"), 2, 2, SV(""), S("abe"));
+ test(S("abcde"), 2, 2, SV("12345"), S("ab12345e"));
+ test(S("abcde"), 2, 2, SV("1234567890"), S("ab1234567890e"));
+ test(S("abcde"), 2, 2, SV("12345678901234567890"), S("ab12345678901234567890e"));
+ test(S("abcde"), 2, 3, SV(""), S("ab"));
+ test(S("abcde"), 2, 3, SV("12345"), S("ab12345"));
+ test(S("abcde"), 2, 3, SV("1234567890"), S("ab1234567890"));
+ test(S("abcde"), 2, 3, SV("12345678901234567890"), S("ab12345678901234567890"));
+ test(S("abcde"), 4, 0, SV(""), S("abcde"));
+ test(S("abcde"), 4, 0, SV("12345"), S("abcd12345e"));
+ test(S("abcde"), 4, 0, SV("1234567890"), S("abcd1234567890e"));
+ test(S("abcde"), 4, 0, SV("12345678901234567890"), S("abcd12345678901234567890e"));
+ test(S("abcde"), 4, 1, SV(""), S("abcd"));
+ test(S("abcde"), 4, 1, SV("12345"), S("abcd12345"));
+ test(S("abcde"), 4, 1, SV("1234567890"), S("abcd1234567890"));
+ test(S("abcde"), 4, 1, SV("12345678901234567890"), S("abcd12345678901234567890"));
+ test(S("abcde"), 5, 0, SV(""), S("abcde"));
+ test(S("abcde"), 5, 0, SV("12345"), S("abcde12345"));
+ test(S("abcde"), 5, 0, SV("1234567890"), S("abcde1234567890"));
+ test(S("abcde"), 5, 0, SV("12345678901234567890"), S("abcde12345678901234567890"));
+ test(S("abcdefghij"), 0, 0, SV(""), S("abcdefghij"));
+ test(S("abcdefghij"), 0, 0, SV("12345"), S("12345abcdefghij"));
+ test(S("abcdefghij"), 0, 0, SV("1234567890"), S("1234567890abcdefghij"));
+ test(S("abcdefghij"), 0, 0, SV("12345678901234567890"), S("12345678901234567890abcdefghij"));
+ test(S("abcdefghij"), 0, 1, SV(""), S("bcdefghij"));
+ test(S("abcdefghij"), 0, 1, SV("12345"), S("12345bcdefghij"));
+ test(S("abcdefghij"), 0, 1, SV("1234567890"), S("1234567890bcdefghij"));
+ test(S("abcdefghij"), 0, 1, SV("12345678901234567890"), S("12345678901234567890bcdefghij"));
+ test(S("abcdefghij"), 0, 5, SV(""), S("fghij"));
+ test(S("abcdefghij"), 0, 5, SV("12345"), S("12345fghij"));
+ test(S("abcdefghij"), 0, 5, SV("1234567890"), S("1234567890fghij"));
+ test(S("abcdefghij"), 0, 5, SV("12345678901234567890"), S("12345678901234567890fghij"));
+ test(S("abcdefghij"), 0, 9, SV(""), S("j"));
+ test(S("abcdefghij"), 0, 9, SV("12345"), S("12345j"));
+ test(S("abcdefghij"), 0, 9, SV("1234567890"), S("1234567890j"));
+ test(S("abcdefghij"), 0, 9, SV("12345678901234567890"), S("12345678901234567890j"));
+ test(S("abcdefghij"), 0, 10, SV(""), S(""));
+ test(S("abcdefghij"), 0, 10, SV("12345"), S("12345"));
+ test(S("abcdefghij"), 0, 10, SV("1234567890"), S("1234567890"));
+ test(S("abcdefghij"), 0, 10, SV("12345678901234567890"), S("12345678901234567890"));
+ test(S("abcdefghij"), 1, 0, SV(""), S("abcdefghij"));
+ test(S("abcdefghij"), 1, 0, SV("12345"), S("a12345bcdefghij"));
+ test(S("abcdefghij"), 1, 0, SV("1234567890"), S("a1234567890bcdefghij"));
+ test(S("abcdefghij"), 1, 0, SV("12345678901234567890"), S("a12345678901234567890bcdefghij"));
+ test(S("abcdefghij"), 1, 1, SV(""), S("acdefghij"));
+ test(S("abcdefghij"), 1, 1, SV("12345"), S("a12345cdefghij"));
+ test(S("abcdefghij"), 1, 1, SV("1234567890"), S("a1234567890cdefghij"));
+ test(S("abcdefghij"), 1, 1, SV("12345678901234567890"), S("a12345678901234567890cdefghij"));
- return true;
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test1()
-{
- test(S("abcdefghij"), 1, 4, SV(""), S("afghij"));
- test(S("abcdefghij"), 1, 4, SV("12345"), S("a12345fghij"));
- test(S("abcdefghij"), 1, 4, SV("1234567890"), S("a1234567890fghij"));
- test(S("abcdefghij"), 1, 4, SV("12345678901234567890"), S("a12345678901234567890fghij"));
- test(S("abcdefghij"), 1, 8, SV(""), S("aj"));
- test(S("abcdefghij"), 1, 8, SV("12345"), S("a12345j"));
- test(S("abcdefghij"), 1, 8, SV("1234567890"), S("a1234567890j"));
- test(S("abcdefghij"), 1, 8, SV("12345678901234567890"), S("a12345678901234567890j"));
- test(S("abcdefghij"), 1, 9, SV(""), S("a"));
- test(S("abcdefghij"), 1, 9, SV("12345"), S("a12345"));
- test(S("abcdefghij"), 1, 9, SV("1234567890"), S("a1234567890"));
- test(S("abcdefghij"), 1, 9, SV("12345678901234567890"), S("a12345678901234567890"));
- test(S("abcdefghij"), 5, 0, SV(""), S("abcdefghij"));
- test(S("abcdefghij"), 5, 0, SV("12345"), S("abcde12345fghij"));
- test(S("abcdefghij"), 5, 0, SV("1234567890"), S("abcde1234567890fghij"));
- test(S("abcdefghij"), 5, 0, SV("12345678901234567890"), S("abcde12345678901234567890fghij"));
- test(S("abcdefghij"), 5, 1, SV(""), S("abcdeghij"));
- test(S("abcdefghij"), 5, 1, SV("12345"), S("abcde12345ghij"));
- test(S("abcdefghij"), 5, 1, SV("1234567890"), S("abcde1234567890ghij"));
- test(S("abcdefghij"), 5, 1, SV("12345678901234567890"), S("abcde12345678901234567890ghij"));
- test(S("abcdefghij"), 5, 2, SV(""), S("abcdehij"));
- test(S("abcdefghij"), 5, 2, SV("12345"), S("abcde12345hij"));
- test(S("abcdefghij"), 5, 2, SV("1234567890"), S("abcde1234567890hij"));
- test(S("abcdefghij"), 5, 2, SV("12345678901234567890"), S("abcde12345678901234567890hij"));
- test(S("abcdefghij"), 5, 4, SV(""), S("abcdej"));
- test(S("abcdefghij"), 5, 4, SV("12345"), S("abcde12345j"));
- test(S("abcdefghij"), 5, 4, SV("1234567890"), S("abcde1234567890j"));
- test(S("abcdefghij"), 5, 4, SV("12345678901234567890"), S("abcde12345678901234567890j"));
- test(S("abcdefghij"), 5, 5, SV(""), S("abcde"));
- test(S("abcdefghij"), 5, 5, SV("12345"), S("abcde12345"));
- test(S("abcdefghij"), 5, 5, SV("1234567890"), S("abcde1234567890"));
- test(S("abcdefghij"), 5, 5, SV("12345678901234567890"), S("abcde12345678901234567890"));
- test(S("abcdefghij"), 9, 0, SV(""), S("abcdefghij"));
- test(S("abcdefghij"), 9, 0, SV("12345"), S("abcdefghi12345j"));
- test(S("abcdefghij"), 9, 0, SV("1234567890"), S("abcdefghi1234567890j"));
- test(S("abcdefghij"), 9, 0, SV("12345678901234567890"), S("abcdefghi12345678901234567890j"));
- test(S("abcdefghij"), 9, 1, SV(""), S("abcdefghi"));
- test(S("abcdefghij"), 9, 1, SV("12345"), S("abcdefghi12345"));
- test(S("abcdefghij"), 9, 1, SV("1234567890"), S("abcdefghi1234567890"));
- test(S("abcdefghij"), 9, 1, SV("12345678901234567890"), S("abcdefghi12345678901234567890"));
- test(S("abcdefghij"), 10, 0, SV(""), S("abcdefghij"));
- test(S("abcdefghij"), 10, 0, SV("12345"), S("abcdefghij12345"));
- test(S("abcdefghij"), 10, 0, SV("1234567890"), S("abcdefghij1234567890"));
- test(S("abcdefghij"), 10, 0, SV("12345678901234567890"), S("abcdefghij12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 0, 0, SV(""), S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345"), S("12345abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("1234567890"), S("1234567890abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345678901234567890"), S("12345678901234567890abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, SV(""), S("bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345"), S("12345bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("1234567890"), S("1234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345678901234567890"), S("12345678901234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, SV(""), S("klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345"), S("12345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("1234567890"), S("1234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345678901234567890"), S("12345678901234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 19, SV(""), S("t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345"), S("12345t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("1234567890"), S("1234567890t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345678901234567890"), S("12345678901234567890t"));
- test(S("abcdefghijklmnopqrst"), 0, 20, SV(""), S(""));
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345"), S("12345"));
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("1234567890"), S("1234567890"));
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345678901234567890"), S("12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 1, 0, SV(""), S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345"), S("a12345bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("1234567890"), S("a1234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345678901234567890"), S("a12345678901234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, SV(""), S("acdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345"), S("a12345cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("1234567890"), S("a1234567890cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345678901234567890"), S("a12345678901234567890cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, SV(""), S("aklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345"), S("a12345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("1234567890"), S("a1234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345678901234567890"), S("a12345678901234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 18, SV(""), S("at"));
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345"), S("a12345t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("1234567890"), S("a1234567890t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345678901234567890"), S("a12345678901234567890t"));
- test(S("abcdefghijklmnopqrst"), 1, 19, SV(""), S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345"), S("a12345"));
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("1234567890"), S("a1234567890"));
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345678901234567890"), S("a12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 10, 0, SV(""), S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345"), S("abcdefghij12345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("1234567890"), S("abcdefghij1234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345678901234567890"), S("abcdefghij12345678901234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, SV(""), S("abcdefghijlmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345"), S("abcdefghij12345lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("1234567890"), S("abcdefghij1234567890lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345678901234567890"), S("abcdefghij12345678901234567890lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, SV(""), S("abcdefghijpqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345"), S("abcdefghij12345pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("1234567890"), S("abcdefghij1234567890pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345678901234567890"), S("abcdefghij12345678901234567890pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 9, SV(""), S("abcdefghijt"));
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345"), S("abcdefghij12345t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("1234567890"), S("abcdefghij1234567890t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345678901234567890"), S("abcdefghij12345678901234567890t"));
+TEST_CONSTEXPR_CXX20 bool test1() {
+ test(S("abcdefghij"), 1, 4, SV(""), S("afghij"));
+ test(S("abcdefghij"), 1, 4, SV("12345"), S("a12345fghij"));
+ test(S("abcdefghij"), 1, 4, SV("1234567890"), S("a1234567890fghij"));
+ test(S("abcdefghij"), 1, 4, SV("12345678901234567890"), S("a12345678901234567890fghij"));
+ test(S("abcdefghij"), 1, 8, SV(""), S("aj"));
+ test(S("abcdefghij"), 1, 8, SV("12345"), S("a12345j"));
+ test(S("abcdefghij"), 1, 8, SV("1234567890"), S("a1234567890j"));
+ test(S("abcdefghij"), 1, 8, SV("12345678901234567890"), S("a12345678901234567890j"));
+ test(S("abcdefghij"), 1, 9, SV(""), S("a"));
+ test(S("abcdefghij"), 1, 9, SV("12345"), S("a12345"));
+ test(S("abcdefghij"), 1, 9, SV("1234567890"), S("a1234567890"));
+ test(S("abcdefghij"), 1, 9, SV("12345678901234567890"), S("a12345678901234567890"));
+ test(S("abcdefghij"), 5, 0, SV(""), S("abcdefghij"));
+ test(S("abcdefghij"), 5, 0, SV("12345"), S("abcde12345fghij"));
+ test(S("abcdefghij"), 5, 0, SV("1234567890"), S("abcde1234567890fghij"));
+ test(S("abcdefghij"), 5, 0, SV("12345678901234567890"), S("abcde12345678901234567890fghij"));
+ test(S("abcdefghij"), 5, 1, SV(""), S("abcdeghij"));
+ test(S("abcdefghij"), 5, 1, SV("12345"), S("abcde12345ghij"));
+ test(S("abcdefghij"), 5, 1, SV("1234567890"), S("abcde1234567890ghij"));
+ test(S("abcdefghij"), 5, 1, SV("12345678901234567890"), S("abcde12345678901234567890ghij"));
+ test(S("abcdefghij"), 5, 2, SV(""), S("abcdehij"));
+ test(S("abcdefghij"), 5, 2, SV("12345"), S("abcde12345hij"));
+ test(S("abcdefghij"), 5, 2, SV("1234567890"), S("abcde1234567890hij"));
+ test(S("abcdefghij"), 5, 2, SV("12345678901234567890"), S("abcde12345678901234567890hij"));
+ test(S("abcdefghij"), 5, 4, SV(""), S("abcdej"));
+ test(S("abcdefghij"), 5, 4, SV("12345"), S("abcde12345j"));
+ test(S("abcdefghij"), 5, 4, SV("1234567890"), S("abcde1234567890j"));
+ test(S("abcdefghij"), 5, 4, SV("12345678901234567890"), S("abcde12345678901234567890j"));
+ test(S("abcdefghij"), 5, 5, SV(""), S("abcde"));
+ test(S("abcdefghij"), 5, 5, SV("12345"), S("abcde12345"));
+ test(S("abcdefghij"), 5, 5, SV("1234567890"), S("abcde1234567890"));
+ test(S("abcdefghij"), 5, 5, SV("12345678901234567890"), S("abcde12345678901234567890"));
+ test(S("abcdefghij"), 9, 0, SV(""), S("abcdefghij"));
+ test(S("abcdefghij"), 9, 0, SV("12345"), S("abcdefghi12345j"));
+ test(S("abcdefghij"), 9, 0, SV("1234567890"), S("abcdefghi1234567890j"));
+ test(S("abcdefghij"), 9, 0, SV("12345678901234567890"), S("abcdefghi12345678901234567890j"));
+ test(S("abcdefghij"), 9, 1, SV(""), S("abcdefghi"));
+ test(S("abcdefghij"), 9, 1, SV("12345"), S("abcdefghi12345"));
+ test(S("abcdefghij"), 9, 1, SV("1234567890"), S("abcdefghi1234567890"));
+ test(S("abcdefghij"), 9, 1, SV("12345678901234567890"), S("abcdefghi12345678901234567890"));
+ test(S("abcdefghij"), 10, 0, SV(""), S("abcdefghij"));
+ test(S("abcdefghij"), 10, 0, SV("12345"), S("abcdefghij12345"));
+ test(S("abcdefghij"), 10, 0, SV("1234567890"), S("abcdefghij1234567890"));
+ test(S("abcdefghij"), 10, 0, SV("12345678901234567890"), S("abcdefghij12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV(""), S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345"), S("12345abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("1234567890"), S("1234567890abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345678901234567890"), S("12345678901234567890abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV(""), S("bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345"), S("12345bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("1234567890"), S("1234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345678901234567890"), S("12345678901234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV(""), S("klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345"), S("12345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("1234567890"), S("1234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345678901234567890"), S("12345678901234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV(""), S("t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345"), S("12345t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("1234567890"), S("1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345678901234567890"), S("12345678901234567890t"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV(""), S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345"), S("12345"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("1234567890"), S("1234567890"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345678901234567890"), S("12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV(""), S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345"), S("a12345bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("1234567890"), S("a1234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345678901234567890"), S("a12345678901234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV(""), S("acdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345"), S("a12345cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("1234567890"), S("a1234567890cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345678901234567890"), S("a12345678901234567890cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV(""), S("aklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345"), S("a12345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("1234567890"), S("a1234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345678901234567890"), S("a12345678901234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV(""), S("at"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345"), S("a12345t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("1234567890"), S("a1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345678901234567890"), S("a12345678901234567890t"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV(""), S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345"), S("a12345"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("1234567890"), S("a1234567890"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345678901234567890"), S("a12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV(""), S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345"), S("abcdefghij12345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("1234567890"), S("abcdefghij1234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345678901234567890"), S("abcdefghij12345678901234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV(""), S("abcdefghijlmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345"), S("abcdefghij12345lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("1234567890"), S("abcdefghij1234567890lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345678901234567890"), S("abcdefghij12345678901234567890lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV(""), S("abcdefghijpqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345"), S("abcdefghij12345pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("1234567890"), S("abcdefghij1234567890pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345678901234567890"), S("abcdefghij12345678901234567890pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV(""), S("abcdefghijt"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345"), S("abcdefghij12345t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("1234567890"), S("abcdefghij1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345678901234567890"), S("abcdefghij12345678901234567890t"));
- return true;
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test2()
-{
- test(S("abcdefghijklmnopqrst"), 10, 10, SV(""), S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345"), S("abcdefghij12345"));
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("1234567890"), S("abcdefghij1234567890"));
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345678901234567890"), S("abcdefghij12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 19, 0, SV(""), S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345"), S("abcdefghijklmnopqrs12345t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("1234567890"), S("abcdefghijklmnopqrs1234567890t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345678901234567890"), S("abcdefghijklmnopqrs12345678901234567890t"));
- test(S("abcdefghijklmnopqrst"), 19, 1, SV(""), S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345"), S("abcdefghijklmnopqrs12345"));
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("1234567890"), S("abcdefghijklmnopqrs1234567890"));
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345678901234567890"), S("abcdefghijklmnopqrs12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 20, 0, SV(""), S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345"), S("abcdefghijklmnopqrst12345"));
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("1234567890"), S("abcdefghijklmnopqrst1234567890"));
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345678901234567890"), S("abcdefghijklmnopqrst12345678901234567890"));
+TEST_CONSTEXPR_CXX20 bool test2() {
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV(""), S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345"), S("abcdefghij12345"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("1234567890"), S("abcdefghij1234567890"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345678901234567890"), S("abcdefghij12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV(""), S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345"), S("abcdefghijklmnopqrs12345t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("1234567890"), S("abcdefghijklmnopqrs1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345678901234567890"), S("abcdefghijklmnopqrs12345678901234567890t"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV(""), S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345"), S("abcdefghijklmnopqrs12345"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("1234567890"), S("abcdefghijklmnopqrs1234567890"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345678901234567890"), S("abcdefghijklmnopqrs12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV(""), S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345"), S("abcdefghijklmnopqrst12345"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("1234567890"), S("abcdefghijklmnopqrst1234567890"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345678901234567890"), S("abcdefghijklmnopqrst12345678901234567890"));
- return true;
+ return true;
}
TEST_CONSTEXPR_CXX20 void test() {
@@ -290,17 +285,16 @@ TEST_CONSTEXPR_CXX20 void test() {
test0<S, SV>();
test1<S, SV>();
test2<S, SV>();
-#if TEST_STD_VER > 17
+# if TEST_STD_VER > 17
static_assert(test0<S, SV>());
static_assert(test1<S, SV>());
static_assert(test2<S, SV>());
-#endif
+# endif
}
#endif
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
return 0;
diff --git a/libcxx/test/std/strings/basic.string/string.modifiers/string_replace/replace_with_range.pass.cpp b/libcxx/test/std/strings/basic.string/string.modifiers/string_replace/replace_with_range.pass.cpp
index e9bfe41f60f5f6e..03e82590ed4ef6c 100644
--- a/libcxx/test/std/strings/basic.string/string.modifiers/string_replace/replace_with_range.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.modifiers/string_replace/replace_with_range.pass.cpp
@@ -20,9 +20,8 @@
#include "test_macros.h"
template <class Range>
-concept HasReplaceWithRange = requires (std::string& c, Range&& range) {
- c.replace_with_range(c.end(), c.end(), std::forward<Range>(range));
-};
+concept HasReplaceWithRange =
+ requires(std::string& c, Range&& range) { c.replace_with_range(c.end(), c.end(), std::forward<Range>(range)); };
constexpr bool test_constraints_replace_with_range() {
// Input range with the same value type.
@@ -44,7 +43,7 @@ using StrBuffer = Buffer<char, 256>;
struct TestCaseReplacement {
StrBuffer initial;
std::size_t from = 0;
- std::size_t to = 0;
+ std::size_t to = 0;
StrBuffer input;
StrBuffer expected;
};
@@ -57,549 +56,586 @@ struct TestCaseReplacement {
// Empty string.
-constexpr TestCaseReplacement EmptyString_End_EmptyCut_EmptyRange {
- .initial = "", .from = 0, .to = 0, .input = "", .expected = ""
-};
+constexpr TestCaseReplacement EmptyString_End_EmptyCut_EmptyRange{
+ .initial = "", .from = 0, .to = 0, .input = "", .expected = ""};
-constexpr TestCaseReplacement EmptyString_End_EmptyCut_OneElementRange {
- .initial = "", .from = 0, .to = 0, .input = "a", .expected = "a"
-};
+constexpr TestCaseReplacement EmptyString_End_EmptyCut_OneElementRange{
+ .initial = "", .from = 0, .to = 0, .input = "a", .expected = "a"};
-constexpr TestCaseReplacement EmptyString_End_EmptyCut_MidRange {
- .initial = "", .from = 0, .to = 0, .input = "aeiou", .expected = "aeiou"
-};
+constexpr TestCaseReplacement EmptyString_End_EmptyCut_MidRange{
+ .initial = "", .from = 0, .to = 0, .input = "aeiou", .expected = "aeiou"};
-constexpr TestCaseReplacement EmptyString_End_EmptyCut_LongRange {
- .initial = "", .from = 0, .to = 0,
- .input = "abcdefghijklmnopqrstuvwxyz0123456789",
- .expected = "abcdefghijklmnopqrstuvwxyz0123456789"
-};
+constexpr TestCaseReplacement EmptyString_End_EmptyCut_LongRange{
+ .initial = "",
+ .from = 0,
+ .to = 0,
+ .input = "abcdefghijklmnopqrstuvwxyz0123456789",
+ .expected = "abcdefghijklmnopqrstuvwxyz0123456789"};
// One-element string.
-constexpr TestCaseReplacement OneElementString_Begin_EmptyCut_EmptyRange {
- .initial = "B", .from = 0, .to = 0, .input = "", .expected = "B"
-};
+constexpr TestCaseReplacement OneElementString_Begin_EmptyCut_EmptyRange{
+ .initial = "B", .from = 0, .to = 0, .input = "", .expected = "B"};
-constexpr TestCaseReplacement OneElementString_Begin_EmptyCut_OneElementRange {
- .initial = "B", .from = 0, .to = 0, .input = "a", .expected = "aB"
-};
+constexpr TestCaseReplacement OneElementString_Begin_EmptyCut_OneElementRange{
+ .initial = "B", .from = 0, .to = 0, .input = "a", .expected = "aB"};
-constexpr TestCaseReplacement OneElementString_Begin_EmptyCut_MidRange {
- .initial = "B", .from = 0, .to = 0, .input = "aeiou", .expected = "aeiouB"
-};
+constexpr TestCaseReplacement OneElementString_Begin_EmptyCut_MidRange{
+ .initial = "B", .from = 0, .to = 0, .input = "aeiou", .expected = "aeiouB"};
-constexpr TestCaseReplacement OneElementString_Begin_EmptyCut_LongRange {
- .initial = "B", .from = 0, .to = 0,
- .input = "abcdefghijklmnopqrstuvwxyz0123456789",
- .expected = "abcdefghijklmnopqrstuvwxyz0123456789B"
-};
+constexpr TestCaseReplacement OneElementString_Begin_EmptyCut_LongRange{
+ .initial = "B",
+ .from = 0,
+ .to = 0,
+ .input = "abcdefghijklmnopqrstuvwxyz0123456789",
+ .expected = "abcdefghijklmnopqrstuvwxyz0123456789B"};
-constexpr TestCaseReplacement OneElementString_Begin_OneElementCut_EmptyRange {
- .initial = "B", .from = 0, .to = 1, .input = "", .expected = ""
-};
+constexpr TestCaseReplacement OneElementString_Begin_OneElementCut_EmptyRange{
+ .initial = "B", .from = 0, .to = 1, .input = "", .expected = ""};
-constexpr TestCaseReplacement OneElementString_Begin_OneElementCut_OneElementRange {
- .initial = "B", .from = 0, .to = 1, .input = "a", .expected = "a"
-};
+constexpr TestCaseReplacement OneElementString_Begin_OneElementCut_OneElementRange{
+ .initial = "B", .from = 0, .to = 1, .input = "a", .expected = "a"};
-constexpr TestCaseReplacement OneElementString_Begin_OneElementCut_MidRange {
- .initial = "B", .from = 0, .to = 1, .input = "aeiou", .expected = "aeiou"
-};
+constexpr TestCaseReplacement OneElementString_Begin_OneElementCut_MidRange{
+ .initial = "B", .from = 0, .to = 1, .input = "aeiou", .expected = "aeiou"};
-constexpr TestCaseReplacement OneElementString_Begin_OneElementCut_LongRange {
- .initial = "B", .from = 0, .to = 1,
- .input = "abcdefghijklmnopqrstuvwxyz0123456789",
- .expected = "abcdefghijklmnopqrstuvwxyz0123456789"
-};
+constexpr TestCaseReplacement OneElementString_Begin_OneElementCut_LongRange{
+ .initial = "B",
+ .from = 0,
+ .to = 1,
+ .input = "abcdefghijklmnopqrstuvwxyz0123456789",
+ .expected = "abcdefghijklmnopqrstuvwxyz0123456789"};
-constexpr TestCaseReplacement OneElementString_End_EmptyCut_EmptyRange {
- .initial = "B", .from = 1, .to = 1, .input = "", .expected = "B"
-};
+constexpr TestCaseReplacement OneElementString_End_EmptyCut_EmptyRange{
+ .initial = "B", .from = 1, .to = 1, .input = "", .expected = "B"};
-constexpr TestCaseReplacement OneElementString_End_EmptyCut_OneElementRange {
- .initial = "B", .from = 1, .to = 1, .input = "a", .expected = "Ba"
-};
+constexpr TestCaseReplacement OneElementString_End_EmptyCut_OneElementRange{
+ .initial = "B", .from = 1, .to = 1, .input = "a", .expected = "Ba"};
-constexpr TestCaseReplacement OneElementString_End_EmptyCut_MidRange {
- .initial = "B", .from = 1, .to = 1, .input = "aeiou", .expected = "Baeiou"
-};
+constexpr TestCaseReplacement OneElementString_End_EmptyCut_MidRange{
+ .initial = "B", .from = 1, .to = 1, .input = "aeiou", .expected = "Baeiou"};
-constexpr TestCaseReplacement OneElementString_End_EmptyCut_LongRange {
- .initial = "B", .from = 1, .to = 1,
- .input = "abcdefghijklmnopqrstuvwxyz0123456789",
- .expected = "Babcdefghijklmnopqrstuvwxyz0123456789"
-};
+constexpr TestCaseReplacement OneElementString_End_EmptyCut_LongRange{
+ .initial = "B",
+ .from = 1,
+ .to = 1,
+ .input = "abcdefghijklmnopqrstuvwxyz0123456789",
+ .expected = "Babcdefghijklmnopqrstuvwxyz0123456789"};
// Short string (using SSO).
// Replace at the beginning.
-constexpr TestCaseReplacement ShortString_Begin_EmptyCut_EmptyRange {
- .initial = "_BCDFGHJ_", .from = 0, .to = 0, .input = "", .expected = "_BCDFGHJ_"
-};
+constexpr TestCaseReplacement ShortString_Begin_EmptyCut_EmptyRange{
+ .initial = "_BCDFGHJ_", .from = 0, .to = 0, .input = "", .expected = "_BCDFGHJ_"};
-constexpr TestCaseReplacement ShortString_Begin_EmptyCut_OneElementRange {
- .initial = "_BCDFGHJ_", .from = 0, .to = 0, .input = "a", .expected = "a_BCDFGHJ_"
-};
+constexpr TestCaseReplacement ShortString_Begin_EmptyCut_OneElementRange{
+ .initial = "_BCDFGHJ_", .from = 0, .to = 0, .input = "a", .expected = "a_BCDFGHJ_"};
-constexpr TestCaseReplacement ShortString_Begin_EmptyCut_MidRange {
- .initial = "_BCDFGHJ_", .from = 0, .to = 0, .input = "aeiou", .expected = "aeiou_BCDFGHJ_"
-};
+constexpr TestCaseReplacement ShortString_Begin_EmptyCut_MidRange{
+ .initial = "_BCDFGHJ_", .from = 0, .to = 0, .input = "aeiou", .expected = "aeiou_BCDFGHJ_"};
-constexpr TestCaseReplacement ShortString_Begin_EmptyCut_LongRange {
- .initial = "_BCDFGHJ_", .from = 0, .to = 0,
- .input = "abcdefghijklmnopqrstuvwxyz0123456789",
- .expected = "abcdefghijklmnopqrstuvwxyz0123456789_BCDFGHJ_"
-};
+constexpr TestCaseReplacement ShortString_Begin_EmptyCut_LongRange{
+ .initial = "_BCDFGHJ_",
+ .from = 0,
+ .to = 0,
+ .input = "abcdefghijklmnopqrstuvwxyz0123456789",
+ .expected = "abcdefghijklmnopqrstuvwxyz0123456789_BCDFGHJ_"};
-constexpr TestCaseReplacement ShortString_Begin_OneElementCut_EmptyRange {
- .initial = "_BCDFGHJ_", .from = 0, .to = 1, .input = "", .expected = "BCDFGHJ_"
-};
+constexpr TestCaseReplacement ShortString_Begin_OneElementCut_EmptyRange{
+ .initial = "_BCDFGHJ_", .from = 0, .to = 1, .input = "", .expected = "BCDFGHJ_"};
-constexpr TestCaseReplacement ShortString_Begin_OneElementCut_OneElementRange {
- .initial = "_BCDFGHJ_", .from = 0, .to = 1, .input = "a", .expected = "aBCDFGHJ_"
-};
+constexpr TestCaseReplacement ShortString_Begin_OneElementCut_OneElementRange{
+ .initial = "_BCDFGHJ_", .from = 0, .to = 1, .input = "a", .expected = "aBCDFGHJ_"};
-constexpr TestCaseReplacement ShortString_Begin_OneElementCut_MidRange {
- .initial = "_BCDFGHJ_", .from = 0, .to = 1, .input = "aeiou", .expected = "aeiouBCDFGHJ_"
-};
+constexpr TestCaseReplacement ShortString_Begin_OneElementCut_MidRange{
+ .initial = "_BCDFGHJ_", .from = 0, .to = 1, .input = "aeiou", .expected = "aeiouBCDFGHJ_"};
-constexpr TestCaseReplacement ShortString_Begin_OneElementCut_LongRange {
- .initial = "_BCDFGHJ_", .from = 0, .to = 1,
- .input = "abcdefghijklmnopqrstuvwxyz0123456789",
- .expected = "abcdefghijklmnopqrstuvwxyz0123456789BCDFGHJ_"
-};
+constexpr TestCaseReplacement ShortString_Begin_OneElementCut_LongRange{
+ .initial = "_BCDFGHJ_",
+ .from = 0,
+ .to = 1,
+ .input = "abcdefghijklmnopqrstuvwxyz0123456789",
+ .expected = "abcdefghijklmnopqrstuvwxyz0123456789BCDFGHJ_"};
-constexpr TestCaseReplacement ShortString_Begin_MidSizedCut_EmptyRange {
- .initial = "_BCDFGHJ_", .from = 0, .to = 3, .input = "", .expected = "DFGHJ_"
-};
+constexpr TestCaseReplacement ShortString_Begin_MidSizedCut_EmptyRange{
+ .initial = "_BCDFGHJ_", .from = 0, .to = 3, .input = "", .expected = "DFGHJ_"};
-constexpr TestCaseReplacement ShortString_Begin_MidSizedCut_OneElementRange {
- .initial = "_BCDFGHJ_", .from = 0, .to = 3, .input = "a", .expected = "aDFGHJ_"
-};
+constexpr TestCaseReplacement ShortString_Begin_MidSizedCut_OneElementRange{
+ .initial = "_BCDFGHJ_", .from = 0, .to = 3, .input = "a", .expected = "aDFGHJ_"};
-constexpr TestCaseReplacement ShortString_Begin_MidSizedCut_MidRange {
- .initial = "_BCDFGHJ_", .from = 0, .to = 3, .input = "aeiou", .expected = "aeiouDFGHJ_"
-};
+constexpr TestCaseReplacement ShortString_Begin_MidSizedCut_MidRange{
+ .initial = "_BCDFGHJ_", .from = 0, .to = 3, .input = "aeiou", .expected = "aeiouDFGHJ_"};
// Note: this test case switches from SSO to non-SSO.
-constexpr TestCaseReplacement ShortString_Begin_MidSizedCut_LongRange {
- .initial = "_BCDFGHJ_", .from = 0, .to = 3,
- .input = "abcdefghijklmnopqrstuvwxyz0123456789",
- .expected = "abcdefghijklmnopqrstuvwxyz0123456789DFGHJ_"
-};
+constexpr TestCaseReplacement ShortString_Begin_MidSizedCut_LongRange{
+ .initial = "_BCDFGHJ_",
+ .from = 0,
+ .to = 3,
+ .input = "abcdefghijklmnopqrstuvwxyz0123456789",
+ .expected = "abcdefghijklmnopqrstuvwxyz0123456789DFGHJ_"};
-constexpr TestCaseReplacement ShortString_Begin_CutToEnd_EmptyRange {
- .initial = "_BCDFGHJ_", .from = 0, .to = 9, .input = "", .expected = ""
-};
+constexpr TestCaseReplacement ShortString_Begin_CutToEnd_EmptyRange{
+ .initial = "_BCDFGHJ_", .from = 0, .to = 9, .input = "", .expected = ""};
-constexpr TestCaseReplacement ShortString_Begin_CutToEnd_OneElementRange {
- .initial = "_BCDFGHJ_", .from = 0, .to = 9, .input = "a", .expected = "a"
-};
+constexpr TestCaseReplacement ShortString_Begin_CutToEnd_OneElementRange{
+ .initial = "_BCDFGHJ_", .from = 0, .to = 9, .input = "a", .expected = "a"};
-constexpr TestCaseReplacement ShortString_Begin_CutToEnd_MidRange {
- .initial = "_BCDFGHJ_", .from = 0, .to = 9, .input = "aeiou", .expected = "aeiou"
-};
+constexpr TestCaseReplacement ShortString_Begin_CutToEnd_MidRange{
+ .initial = "_BCDFGHJ_", .from = 0, .to = 9, .input = "aeiou", .expected = "aeiou"};
// Note: this test case switches from SSO to non-SSO.
-constexpr TestCaseReplacement ShortString_Begin_CutToEnd_LongRange {
- .initial = "_BCDFGHJ_", .from = 0, .to = 9,
- .input = "abcdefghijklmnopqrstuvwxyz0123456789",
- .expected = "abcdefghijklmnopqrstuvwxyz0123456789"
-};
+constexpr TestCaseReplacement ShortString_Begin_CutToEnd_LongRange{
+ .initial = "_BCDFGHJ_",
+ .from = 0,
+ .to = 9,
+ .input = "abcdefghijklmnopqrstuvwxyz0123456789",
+ .expected = "abcdefghijklmnopqrstuvwxyz0123456789"};
// Replace in the middle.
-constexpr TestCaseReplacement ShortString_Mid_EmptyCut_EmptyRange {
- .initial = "_BCDFGHJ_", .from = 4, .to = 4, .input = "", .expected = "_BCDFGHJ_"
-};
+constexpr TestCaseReplacement ShortString_Mid_EmptyCut_EmptyRange{
+ .initial = "_BCDFGHJ_", .from = 4, .to = 4, .input = "", .expected = "_BCDFGHJ_"};
-constexpr TestCaseReplacement ShortString_Mid_EmptyCut_OneElementRange {
- .initial = "_BCDFGHJ_", .from = 4, .to = 4, .input = "a", .expected = "_BCDaFGHJ_"
-};
+constexpr TestCaseReplacement ShortString_Mid_EmptyCut_OneElementRange{
+ .initial = "_BCDFGHJ_", .from = 4, .to = 4, .input = "a", .expected = "_BCDaFGHJ_"};
-constexpr TestCaseReplacement ShortString_Mid_EmptyCut_MidRange {
- .initial = "_BCDFGHJ_", .from = 4, .to = 4, .input = "aeiou", .expected = "_BCDaeiouFGHJ_"
-};
+constexpr TestCaseReplacement ShortString_Mid_EmptyCut_MidRange{
+ .initial = "_BCDFGHJ_", .from = 4, .to = 4, .input = "aeiou", .expected = "_BCDaeiouFGHJ_"};
-constexpr TestCaseReplacement ShortString_Mid_EmptyCut_LongRange {
- .initial = "_BCDFGHJ_", .from = 4, .to = 4,
- .input = "abcdefghijklmnopqrstuvwxyz0123456789",
- .expected = "_BCDabcdefghijklmnopqrstuvwxyz0123456789FGHJ_"
-};
+constexpr TestCaseReplacement ShortString_Mid_EmptyCut_LongRange{
+ .initial = "_BCDFGHJ_",
+ .from = 4,
+ .to = 4,
+ .input = "abcdefghijklmnopqrstuvwxyz0123456789",
+ .expected = "_BCDabcdefghijklmnopqrstuvwxyz0123456789FGHJ_"};
-constexpr TestCaseReplacement ShortString_Mid_OneElementCut_EmptyRange {
- .initial = "_BCDFGHJ_", .from = 4, .to = 5, .input = "", .expected = "_BCDGHJ_"
-};
+constexpr TestCaseReplacement ShortString_Mid_OneElementCut_EmptyRange{
+ .initial = "_BCDFGHJ_", .from = 4, .to = 5, .input = "", .expected = "_BCDGHJ_"};
-constexpr TestCaseReplacement ShortString_Mid_OneElementCut_OneElementRange {
- .initial = "_BCDFGHJ_", .from = 4, .to = 5, .input = "a", .expected = "_BCDaGHJ_"
-};
+constexpr TestCaseReplacement ShortString_Mid_OneElementCut_OneElementRange{
+ .initial = "_BCDFGHJ_", .from = 4, .to = 5, .input = "a", .expected = "_BCDaGHJ_"};
-constexpr TestCaseReplacement ShortString_Mid_OneElementCut_MidRange {
- .initial = "_BCDFGHJ_", .from = 4, .to = 5, .input = "aeiou", .expected = "_BCDaeiouGHJ_"
-};
+constexpr TestCaseReplacement ShortString_Mid_OneElementCut_MidRange{
+ .initial = "_BCDFGHJ_", .from = 4, .to = 5, .input = "aeiou", .expected = "_BCDaeiouGHJ_"};
-constexpr TestCaseReplacement ShortString_Mid_OneElementCut_LongRange {
- .initial = "_BCDFGHJ_", .from = 4, .to = 5,
- .input = "abcdefghijklmnopqrstuvwxyz0123456789",
- .expected = "_BCDabcdefghijklmnopqrstuvwxyz0123456789GHJ_"
-};
+constexpr TestCaseReplacement ShortString_Mid_OneElementCut_LongRange{
+ .initial = "_BCDFGHJ_",
+ .from = 4,
+ .to = 5,
+ .input = "abcdefghijklmnopqrstuvwxyz0123456789",
+ .expected = "_BCDabcdefghijklmnopqrstuvwxyz0123456789GHJ_"};
-constexpr TestCaseReplacement ShortString_Mid_MidSizedCut_EmptyRange {
- .initial = "_BCDFGHJ_", .from = 4, .to = 7, .input = "", .expected = "_BCDJ_"
-};
+constexpr TestCaseReplacement ShortString_Mid_MidSizedCut_EmptyRange{
+ .initial = "_BCDFGHJ_", .from = 4, .to = 7, .input = "", .expected = "_BCDJ_"};
-constexpr TestCaseReplacement ShortString_Mid_MidSizedCut_OneElementRange {
- .initial = "_BCDFGHJ_", .from = 4, .to = 7, .input = "a", .expected = "_BCDaJ_"
-};
+constexpr TestCaseReplacement ShortString_Mid_MidSizedCut_OneElementRange{
+ .initial = "_BCDFGHJ_", .from = 4, .to = 7, .input = "a", .expected = "_BCDaJ_"};
-constexpr TestCaseReplacement ShortString_Mid_MidSizedCut_MidRange {
- .initial = "_BCDFGHJ_", .from = 4, .to = 7, .input = "aeiou", .expected = "_BCDaeiouJ_"
-};
+constexpr TestCaseReplacement ShortString_Mid_MidSizedCut_MidRange{
+ .initial = "_BCDFGHJ_", .from = 4, .to = 7, .input = "aeiou", .expected = "_BCDaeiouJ_"};
-constexpr TestCaseReplacement ShortString_Mid_MidSizedCut_LongRange {
- .initial = "_BCDFGHJ_", .from = 4, .to = 7,
- .input = "abcdefghijklmnopqrstuvwxyz0123456789",
- .expected = "_BCDabcdefghijklmnopqrstuvwxyz0123456789J_"
-};
+constexpr TestCaseReplacement ShortString_Mid_MidSizedCut_LongRange{
+ .initial = "_BCDFGHJ_",
+ .from = 4,
+ .to = 7,
+ .input = "abcdefghijklmnopqrstuvwxyz0123456789",
+ .expected = "_BCDabcdefghijklmnopqrstuvwxyz0123456789J_"};
-constexpr TestCaseReplacement ShortString_Mid_CutToEnd_EmptyRange {
- .initial = "_BCDFGHJ_", .from = 4, .to = 9, .input = "", .expected = "_BCD"
-};
+constexpr TestCaseReplacement ShortString_Mid_CutToEnd_EmptyRange{
+ .initial = "_BCDFGHJ_", .from = 4, .to = 9, .input = "", .expected = "_BCD"};
-constexpr TestCaseReplacement ShortString_Mid_CutToEnd_OneElementRange {
- .initial = "_BCDFGHJ_", .from = 4, .to = 9, .input = "a", .expected = "_BCDa"
-};
+constexpr TestCaseReplacement ShortString_Mid_CutToEnd_OneElementRange{
+ .initial = "_BCDFGHJ_", .from = 4, .to = 9, .input = "a", .expected = "_BCDa"};
-constexpr TestCaseReplacement ShortString_Mid_CutToEnd_MidRange {
- .initial = "_BCDFGHJ_", .from = 4, .to = 9, .input = "aeiou", .expected = "_BCDaeiou"
-};
+constexpr TestCaseReplacement ShortString_Mid_CutToEnd_MidRange{
+ .initial = "_BCDFGHJ_", .from = 4, .to = 9, .input = "aeiou", .expected = "_BCDaeiou"};
-constexpr TestCaseReplacement ShortString_Mid_CutToEnd_LongRange {
- .initial = "_BCDFGHJ_", .from = 4, .to = 9,
- .input = "abcdefghijklmnopqrstuvwxyz0123456789",
- .expected = "_BCDabcdefghijklmnopqrstuvwxyz0123456789"
-};
+constexpr TestCaseReplacement ShortString_Mid_CutToEnd_LongRange{
+ .initial = "_BCDFGHJ_",
+ .from = 4,
+ .to = 9,
+ .input = "abcdefghijklmnopqrstuvwxyz0123456789",
+ .expected = "_BCDabcdefghijklmnopqrstuvwxyz0123456789"};
// Replace at the end.
-constexpr TestCaseReplacement ShortString_End_EmptyCut_EmptyRange {
- .initial = "_BCDFGHJ_", .from = 9, .to = 9, .input = "", .expected = "_BCDFGHJ_"
-};
+constexpr TestCaseReplacement ShortString_End_EmptyCut_EmptyRange{
+ .initial = "_BCDFGHJ_", .from = 9, .to = 9, .input = "", .expected = "_BCDFGHJ_"};
-constexpr TestCaseReplacement ShortString_End_EmptyCut_OneElementRange {
- .initial = "_BCDFGHJ_", .from = 9, .to = 9, .input = "a", .expected = "_BCDFGHJ_a"
-};
+constexpr TestCaseReplacement ShortString_End_EmptyCut_OneElementRange{
+ .initial = "_BCDFGHJ_", .from = 9, .to = 9, .input = "a", .expected = "_BCDFGHJ_a"};
-constexpr TestCaseReplacement ShortString_End_EmptyCut_MidRange {
- .initial = "_BCDFGHJ_", .from = 9, .to = 9, .input = "aeiou", .expected = "_BCDFGHJ_aeiou"
-};
+constexpr TestCaseReplacement ShortString_End_EmptyCut_MidRange{
+ .initial = "_BCDFGHJ_", .from = 9, .to = 9, .input = "aeiou", .expected = "_BCDFGHJ_aeiou"};
-constexpr TestCaseReplacement ShortString_End_EmptyCut_LongRange {
- .initial = "_BCDFGHJ_", .from = 9, .to = 9,
- .input = "abcdefghijklmnopqrstuvwxyz0123456789",
- .expected = "_BCDFGHJ_abcdefghijklmnopqrstuvwxyz0123456789"
-};
+constexpr TestCaseReplacement ShortString_End_EmptyCut_LongRange{
+ .initial = "_BCDFGHJ_",
+ .from = 9,
+ .to = 9,
+ .input = "abcdefghijklmnopqrstuvwxyz0123456789",
+ .expected = "_BCDFGHJ_abcdefghijklmnopqrstuvwxyz0123456789"};
// Long string (no SSO).
// Replace at the beginning.
-constexpr TestCaseReplacement LongString_Begin_EmptyCut_EmptyRange {
- .initial = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_", .from = 0, .to = 0, .input = "",
- .expected = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_"
-};
-
-constexpr TestCaseReplacement LongString_Begin_EmptyCut_OneElementRange {
- .initial = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_", .from = 0, .to = 0, .input = "a",
- .expected = "a_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_"
-};
-
-constexpr TestCaseReplacement LongString_Begin_EmptyCut_MidRange {
- .initial = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_", .from = 0, .to = 0, .input = "aeiou",
- .expected = "aeiou_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_"
-};
-
-constexpr TestCaseReplacement LongString_Begin_EmptyCut_LongRange {
- .initial = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_", .from = 0, .to = 0,
- .input = "abcdefghijklmnopqrstuvwxyz0123456789",
- .expected = "abcdefghijklmnopqrstuvwxyz0123456789_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_"
-};
-
-constexpr TestCaseReplacement LongString_Begin_EmptyCut_LongerThanCapacityRange {
- .initial = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_", .from = 0, .to = 0,
- .input = "abcdefghijklmnopqrstuvwxyz0123456789_"
- "abcdefghijklmnopqrstuvwxyz0123456789_"
- "abcdefghijklmnopqrstuvwxyz0123456789",
- .expected = "abcdefghijklmnopqrstuvwxyz0123456789_"
- "abcdefghijklmnopqrstuvwxyz0123456789_"
- "abcdefghijklmnopqrstuvwxyz0123456789"
- "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_"
-};
-
-constexpr TestCaseReplacement LongString_Begin_OneElementCut_EmptyRange {
- .initial = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_", .from = 0, .to = 1, .input = "",
- .expected = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_"
-};
-
-constexpr TestCaseReplacement LongString_Begin_OneElementCut_OneElementRange {
- .initial = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_", .from = 0, .to = 1, .input = "a",
- .expected = "aABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_"
-};
-
-constexpr TestCaseReplacement LongString_Begin_OneElementCut_MidRange {
- .initial = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_", .from = 0, .to = 1, .input = "aeiou",
- .expected = "aeiouABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_"
-};
-
-constexpr TestCaseReplacement LongString_Begin_OneElementCut_LongRange {
- .initial = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_", .from = 0, .to = 1,
- .input = "abcdefghijklmnopqrstuvwxyz0123456789",
- .expected = "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_"
-};
-
-constexpr TestCaseReplacement LongString_Begin_OneElementCut_LongerThanCapacityRange {
- .initial = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_", .from = 0, .to = 1,
- .input = "abcdefghijklmnopqrstuvwxyz0123456789_"
- "abcdefghijklmnopqrstuvwxyz0123456789_"
- "abcdefghijklmnopqrstuvwxyz0123456789",
- .expected = "abcdefghijklmnopqrstuvwxyz0123456789_"
- "abcdefghijklmnopqrstuvwxyz0123456789_"
- "abcdefghijklmnopqrstuvwxyz0123456789"
- "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_"
-};
-
-constexpr TestCaseReplacement LongString_Begin_MidSizedCut_EmptyRange {
- .initial = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_", .from = 0, .to = 3, .input = "",
- .expected = "CDEFGHIJKLMNOPQRSTUVWXYZ0123456789_"
-};
-
-constexpr TestCaseReplacement LongString_Begin_MidSizedCut_OneElementRange {
- .initial = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_", .from = 0, .to = 3, .input = "a",
- .expected = "aCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_"
-};
-
-constexpr TestCaseReplacement LongString_Begin_MidSizedCut_MidRange {
- .initial = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_", .from = 0, .to = 3, .input = "aeiou",
- .expected = "aeiouCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_"
-};
-
-constexpr TestCaseReplacement LongString_Begin_MidSizedCut_LongRange {
- .initial = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_", .from = 0, .to = 3,
- .input = "abcdefghijklmnopqrstuvwxyz0123456789",
- .expected = "abcdefghijklmnopqrstuvwxyz0123456789CDEFGHIJKLMNOPQRSTUVWXYZ0123456789_"
-};
-
-constexpr TestCaseReplacement LongString_Begin_MidSizedCut_LongerThanCapacityRange {
- .initial = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_", .from = 0, .to = 3,
- .input = "abcdefghijklmnopqrstuvwxyz0123456789_"
- "abcdefghijklmnopqrstuvwxyz0123456789_"
- "abcdefghijklmnopqrstuvwxyz0123456789",
- .expected = "abcdefghijklmnopqrstuvwxyz0123456789_"
- "abcdefghijklmnopqrstuvwxyz0123456789_"
- "abcdefghijklmnopqrstuvwxyz0123456789"
- "CDEFGHIJKLMNOPQRSTUVWXYZ0123456789_"
-};
-
-constexpr TestCaseReplacement LongString_Begin_CutToEnd_EmptyRange {
- .initial = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_", .from = 0, .to = 38, .input = "",
- .expected = ""
-};
-
-constexpr TestCaseReplacement LongString_Begin_CutToEnd_OneElementRange {
- .initial = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_", .from = 0, .to = 38, .input = "a",
- .expected = "a"
-};
-
-constexpr TestCaseReplacement LongString_Begin_CutToEnd_MidRange {
- .initial = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_", .from = 0, .to = 38, .input = "aeiou",
- .expected = "aeiou"
-};
-
-constexpr TestCaseReplacement LongString_Begin_CutToEnd_LongRange {
- .initial = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_", .from = 0, .to = 38,
- .input = "abcdefghijklmnopqrstuvwxyz0123456789",
- .expected = "abcdefghijklmnopqrstuvwxyz0123456789"
-};
-
-constexpr TestCaseReplacement LongString_Begin_CutToEnd_LongerThanCapacityRange {
- .initial = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_", .from = 0, .to = 38,
- .input = "abcdefghijklmnopqrstuvwxyz0123456789_"
- "abcdefghijklmnopqrstuvwxyz0123456789_"
- "abcdefghijklmnopqrstuvwxyz0123456789",
- .expected = "abcdefghijklmnopqrstuvwxyz0123456789_"
- "abcdefghijklmnopqrstuvwxyz0123456789_"
- "abcdefghijklmnopqrstuvwxyz0123456789"
-};
+constexpr TestCaseReplacement LongString_Begin_EmptyCut_EmptyRange{
+ .initial = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_",
+ .from = 0,
+ .to = 0,
+ .input = "",
+ .expected = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_"};
+
+constexpr TestCaseReplacement LongString_Begin_EmptyCut_OneElementRange{
+ .initial = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_",
+ .from = 0,
+ .to = 0,
+ .input = "a",
+ .expected = "a_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_"};
+
+constexpr TestCaseReplacement LongString_Begin_EmptyCut_MidRange{
+ .initial = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_",
+ .from = 0,
+ .to = 0,
+ .input = "aeiou",
+ .expected = "aeiou_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_"};
+
+constexpr TestCaseReplacement LongString_Begin_EmptyCut_LongRange{
+ .initial = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_",
+ .from = 0,
+ .to = 0,
+ .input = "abcdefghijklmnopqrstuvwxyz0123456789",
+ .expected = "abcdefghijklmnopqrstuvwxyz0123456789_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_"};
+
+constexpr TestCaseReplacement LongString_Begin_EmptyCut_LongerThanCapacityRange{
+ .initial = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_",
+ .from = 0,
+ .to = 0,
+ .input = "abcdefghijklmnopqrstuvwxyz0123456789_"
+ "abcdefghijklmnopqrstuvwxyz0123456789_"
+ "abcdefghijklmnopqrstuvwxyz0123456789",
+ .expected = "abcdefghijklmnopqrstuvwxyz0123456789_"
+ "abcdefghijklmnopqrstuvwxyz0123456789_"
+ "abcdefghijklmnopqrstuvwxyz0123456789"
+ "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_"};
+
+constexpr TestCaseReplacement LongString_Begin_OneElementCut_EmptyRange{
+ .initial = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_",
+ .from = 0,
+ .to = 1,
+ .input = "",
+ .expected = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_"};
+
+constexpr TestCaseReplacement LongString_Begin_OneElementCut_OneElementRange{
+ .initial = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_",
+ .from = 0,
+ .to = 1,
+ .input = "a",
+ .expected = "aABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_"};
+
+constexpr TestCaseReplacement LongString_Begin_OneElementCut_MidRange{
+ .initial = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_",
+ .from = 0,
+ .to = 1,
+ .input = "aeiou",
+ .expected = "aeiouABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_"};
+
+constexpr TestCaseReplacement LongString_Begin_OneElementCut_LongRange{
+ .initial = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_",
+ .from = 0,
+ .to = 1,
+ .input = "abcdefghijklmnopqrstuvwxyz0123456789",
+ .expected = "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_"};
+
+constexpr TestCaseReplacement LongString_Begin_OneElementCut_LongerThanCapacityRange{
+ .initial = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_",
+ .from = 0,
+ .to = 1,
+ .input = "abcdefghijklmnopqrstuvwxyz0123456789_"
+ "abcdefghijklmnopqrstuvwxyz0123456789_"
+ "abcdefghijklmnopqrstuvwxyz0123456789",
+ .expected = "abcdefghijklmnopqrstuvwxyz0123456789_"
+ "abcdefghijklmnopqrstuvwxyz0123456789_"
+ "abcdefghijklmnopqrstuvwxyz0123456789"
+ "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_"};
+
+constexpr TestCaseReplacement LongString_Begin_MidSizedCut_EmptyRange{
+ .initial = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_",
+ .from = 0,
+ .to = 3,
+ .input = "",
+ .expected = "CDEFGHIJKLMNOPQRSTUVWXYZ0123456789_"};
+
+constexpr TestCaseReplacement LongString_Begin_MidSizedCut_OneElementRange{
+ .initial = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_",
+ .from = 0,
+ .to = 3,
+ .input = "a",
+ .expected = "aCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_"};
+
+constexpr TestCaseReplacement LongString_Begin_MidSizedCut_MidRange{
+ .initial = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_",
+ .from = 0,
+ .to = 3,
+ .input = "aeiou",
+ .expected = "aeiouCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_"};
+
+constexpr TestCaseReplacement LongString_Begin_MidSizedCut_LongRange{
+ .initial = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_",
+ .from = 0,
+ .to = 3,
+ .input = "abcdefghijklmnopqrstuvwxyz0123456789",
+ .expected = "abcdefghijklmnopqrstuvwxyz0123456789CDEFGHIJKLMNOPQRSTUVWXYZ0123456789_"};
+
+constexpr TestCaseReplacement LongString_Begin_MidSizedCut_LongerThanCapacityRange{
+ .initial = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_",
+ .from = 0,
+ .to = 3,
+ .input = "abcdefghijklmnopqrstuvwxyz0123456789_"
+ "abcdefghijklmnopqrstuvwxyz0123456789_"
+ "abcdefghijklmnopqrstuvwxyz0123456789",
+ .expected = "abcdefghijklmnopqrstuvwxyz0123456789_"
+ "abcdefghijklmnopqrstuvwxyz0123456789_"
+ "abcdefghijklmnopqrstuvwxyz0123456789"
+ "CDEFGHIJKLMNOPQRSTUVWXYZ0123456789_"};
+
+constexpr TestCaseReplacement LongString_Begin_CutToEnd_EmptyRange{
+ .initial = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_", .from = 0, .to = 38, .input = "", .expected = ""};
+
+constexpr TestCaseReplacement LongString_Begin_CutToEnd_OneElementRange{
+ .initial = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_", .from = 0, .to = 38, .input = "a", .expected = "a"};
+
+constexpr TestCaseReplacement LongString_Begin_CutToEnd_MidRange{
+ .initial = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_", .from = 0, .to = 38, .input = "aeiou", .expected = "aeiou"};
+
+constexpr TestCaseReplacement LongString_Begin_CutToEnd_LongRange{
+ .initial = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_",
+ .from = 0,
+ .to = 38,
+ .input = "abcdefghijklmnopqrstuvwxyz0123456789",
+ .expected = "abcdefghijklmnopqrstuvwxyz0123456789"};
+
+constexpr TestCaseReplacement LongString_Begin_CutToEnd_LongerThanCapacityRange{
+ .initial = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_",
+ .from = 0,
+ .to = 38,
+ .input = "abcdefghijklmnopqrstuvwxyz0123456789_"
+ "abcdefghijklmnopqrstuvwxyz0123456789_"
+ "abcdefghijklmnopqrstuvwxyz0123456789",
+ .expected = "abcdefghijklmnopqrstuvwxyz0123456789_"
+ "abcdefghijklmnopqrstuvwxyz0123456789_"
+ "abcdefghijklmnopqrstuvwxyz0123456789"};
// Replace in the middle.
-constexpr TestCaseReplacement LongString_Mid_EmptyCut_EmptyRange {
- .initial = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_", .from = 18, .to = 18, .input = "",
- .expected = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_"
-};
-
-constexpr TestCaseReplacement LongString_Mid_EmptyCut_OneElementRange {
- .initial = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_", .from = 18, .to = 18, .input = "a",
- .expected = "_ABCDEFGHIJKLMNOPQaRSTUVWXYZ0123456789_"
-};
-
-constexpr TestCaseReplacement LongString_Mid_EmptyCut_MidRange {
- .initial = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_", .from = 18, .to = 18, .input = "aeiou",
- .expected = "_ABCDEFGHIJKLMNOPQaeiouRSTUVWXYZ0123456789_"
-};
-
-constexpr TestCaseReplacement LongString_Mid_EmptyCut_LongRange {
- .initial = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_", .from = 18, .to = 18,
- .input = "abcdefghijklmnopqrstuvwxyz0123456789",
- .expected = "_ABCDEFGHIJKLMNOPQabcdefghijklmnopqrstuvwxyz0123456789RSTUVWXYZ0123456789_"
-};
-
-constexpr TestCaseReplacement LongString_Mid_EmptyCut_LongerThanCapacityRange {
- .initial = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_", .from = 18, .to = 18,
- .input = "abcdefghijklmnopqrstuvwxyz0123456789_"
- "abcdefghijklmnopqrstuvwxyz0123456789_"
- "abcdefghijklmnopqrstuvwxyz0123456789",
- .expected = "_ABCDEFGHIJKLMNOPQ"
- "abcdefghijklmnopqrstuvwxyz0123456789_"
- "abcdefghijklmnopqrstuvwxyz0123456789_"
- "abcdefghijklmnopqrstuvwxyz0123456789"
- "RSTUVWXYZ0123456789_"
-};
-
-constexpr TestCaseReplacement LongString_Mid_OneElementCut_EmptyRange {
- .initial = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_", .from = 18, .to = 19, .input = "",
- .expected = "_ABCDEFGHIJKLMNOPQSTUVWXYZ0123456789_"
-};
-
-constexpr TestCaseReplacement LongString_Mid_OneElementCut_OneElementRange {
- .initial = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_", .from = 18, .to = 19, .input = "a",
- .expected = "_ABCDEFGHIJKLMNOPQaSTUVWXYZ0123456789_"
-};
-
-constexpr TestCaseReplacement LongString_Mid_OneElementCut_MidRange {
- .initial = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_", .from = 18, .to = 19, .input = "aeiou",
- .expected = "_ABCDEFGHIJKLMNOPQaeiouSTUVWXYZ0123456789_"
-};
-
-constexpr TestCaseReplacement LongString_Mid_OneElementCut_LongRange {
- .initial = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_", .from = 18, .to = 19,
- .input = "abcdefghijklmnopqrstuvwxyz0123456789",
- .expected = "_ABCDEFGHIJKLMNOPQabcdefghijklmnopqrstuvwxyz0123456789STUVWXYZ0123456789_"
-};
-
-constexpr TestCaseReplacement LongString_Mid_OneElementCut_LongerThanCapacityRange {
- .initial = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_", .from = 18, .to = 19,
- .input = "abcdefghijklmnopqrstuvwxyz0123456789_"
- "abcdefghijklmnopqrstuvwxyz0123456789_"
- "abcdefghijklmnopqrstuvwxyz0123456789",
- .expected = "_ABCDEFGHIJKLMNOPQ"
- "abcdefghijklmnopqrstuvwxyz0123456789_"
- "abcdefghijklmnopqrstuvwxyz0123456789_"
- "abcdefghijklmnopqrstuvwxyz0123456789"
- "STUVWXYZ0123456789_"
-};
-
-constexpr TestCaseReplacement LongString_Mid_MidSizedCut_EmptyRange {
- .initial = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_", .from = 18, .to = 21, .input = "",
- .expected = "_ABCDEFGHIJKLMNOPQUVWXYZ0123456789_"
-};
-
-constexpr TestCaseReplacement LongString_Mid_MidSizedCut_OneElementRange {
- .initial = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_", .from = 18, .to = 21, .input = "a",
- .expected = "_ABCDEFGHIJKLMNOPQaUVWXYZ0123456789_"
-};
-
-constexpr TestCaseReplacement LongString_Mid_MidSizedCut_MidRange {
- .initial = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_", .from = 18, .to = 21, .input = "aeiou",
- .expected = "_ABCDEFGHIJKLMNOPQaeiouUVWXYZ0123456789_"
-};
-
-constexpr TestCaseReplacement LongString_Mid_MidSizedCut_LongRange {
- .initial = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_", .from = 18, .to = 21,
- .input = "abcdefghijklmnopqrstuvwxyz0123456789",
- .expected = "_ABCDEFGHIJKLMNOPQabcdefghijklmnopqrstuvwxyz0123456789UVWXYZ0123456789_"
-};
-
-constexpr TestCaseReplacement LongString_Mid_MidSizedCut_LongerThanCapacityRange {
- .initial = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_", .from = 18, .to = 21,
- .input = "abcdefghijklmnopqrstuvwxyz0123456789_"
- "abcdefghijklmnopqrstuvwxyz0123456789_"
- "abcdefghijklmnopqrstuvwxyz0123456789",
- .expected = "_ABCDEFGHIJKLMNOPQ"
- "abcdefghijklmnopqrstuvwxyz0123456789_"
- "abcdefghijklmnopqrstuvwxyz0123456789_"
- "abcdefghijklmnopqrstuvwxyz0123456789"
- "UVWXYZ0123456789_"
-};
-
-constexpr TestCaseReplacement LongString_Mid_CutToEnd_EmptyRange {
- .initial = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_", .from = 18, .to = 38, .input = "",
- .expected = "_ABCDEFGHIJKLMNOPQ"
-};
-
-constexpr TestCaseReplacement LongString_Mid_CutToEnd_OneElementRange {
- .initial = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_", .from = 18, .to = 38, .input = "a",
- .expected = "_ABCDEFGHIJKLMNOPQa"
-};
-
-constexpr TestCaseReplacement LongString_Mid_CutToEnd_MidRange {
- .initial = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_", .from = 18, .to = 38, .input = "aeiou",
- .expected = "_ABCDEFGHIJKLMNOPQaeiou"
-};
-
-constexpr TestCaseReplacement LongString_Mid_CutToEnd_LongRange {
- .initial = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_", .from = 18, .to = 38,
- .input = "abcdefghijklmnopqrstuvwxyz0123456789",
- .expected = "_ABCDEFGHIJKLMNOPQabcdefghijklmnopqrstuvwxyz0123456789"
-};
-
-constexpr TestCaseReplacement LongString_Mid_CutToEnd_LongerThanCapacityRange {
- .initial = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_", .from = 18, .to = 38,
- .input = "abcdefghijklmnopqrstuvwxyz0123456789_"
- "abcdefghijklmnopqrstuvwxyz0123456789_"
- "abcdefghijklmnopqrstuvwxyz0123456789",
- .expected = "_ABCDEFGHIJKLMNOPQ"
- "abcdefghijklmnopqrstuvwxyz0123456789_"
- "abcdefghijklmnopqrstuvwxyz0123456789_"
- "abcdefghijklmnopqrstuvwxyz0123456789"
-};
+constexpr TestCaseReplacement LongString_Mid_EmptyCut_EmptyRange{
+ .initial = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_",
+ .from = 18,
+ .to = 18,
+ .input = "",
+ .expected = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_"};
+
+constexpr TestCaseReplacement LongString_Mid_EmptyCut_OneElementRange{
+ .initial = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_",
+ .from = 18,
+ .to = 18,
+ .input = "a",
+ .expected = "_ABCDEFGHIJKLMNOPQaRSTUVWXYZ0123456789_"};
+
+constexpr TestCaseReplacement LongString_Mid_EmptyCut_MidRange{
+ .initial = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_",
+ .from = 18,
+ .to = 18,
+ .input = "aeiou",
+ .expected = "_ABCDEFGHIJKLMNOPQaeiouRSTUVWXYZ0123456789_"};
+
+constexpr TestCaseReplacement LongString_Mid_EmptyCut_LongRange{
+ .initial = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_",
+ .from = 18,
+ .to = 18,
+ .input = "abcdefghijklmnopqrstuvwxyz0123456789",
+ .expected = "_ABCDEFGHIJKLMNOPQabcdefghijklmnopqrstuvwxyz0123456789RSTUVWXYZ0123456789_"};
+
+constexpr TestCaseReplacement LongString_Mid_EmptyCut_LongerThanCapacityRange{
+ .initial = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_",
+ .from = 18,
+ .to = 18,
+ .input = "abcdefghijklmnopqrstuvwxyz0123456789_"
+ "abcdefghijklmnopqrstuvwxyz0123456789_"
+ "abcdefghijklmnopqrstuvwxyz0123456789",
+ .expected =
+ "_ABCDEFGHIJKLMNOPQ"
+ "abcdefghijklmnopqrstuvwxyz0123456789_"
+ "abcdefghijklmnopqrstuvwxyz0123456789_"
+ "abcdefghijklmnopqrstuvwxyz0123456789"
+ "RSTUVWXYZ0123456789_"};
+
+constexpr TestCaseReplacement LongString_Mid_OneElementCut_EmptyRange{
+ .initial = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_",
+ .from = 18,
+ .to = 19,
+ .input = "",
+ .expected = "_ABCDEFGHIJKLMNOPQSTUVWXYZ0123456789_"};
+
+constexpr TestCaseReplacement LongString_Mid_OneElementCut_OneElementRange{
+ .initial = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_",
+ .from = 18,
+ .to = 19,
+ .input = "a",
+ .expected = "_ABCDEFGHIJKLMNOPQaSTUVWXYZ0123456789_"};
+
+constexpr TestCaseReplacement LongString_Mid_OneElementCut_MidRange{
+ .initial = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_",
+ .from = 18,
+ .to = 19,
+ .input = "aeiou",
+ .expected = "_ABCDEFGHIJKLMNOPQaeiouSTUVWXYZ0123456789_"};
+
+constexpr TestCaseReplacement LongString_Mid_OneElementCut_LongRange{
+ .initial = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_",
+ .from = 18,
+ .to = 19,
+ .input = "abcdefghijklmnopqrstuvwxyz0123456789",
+ .expected = "_ABCDEFGHIJKLMNOPQabcdefghijklmnopqrstuvwxyz0123456789STUVWXYZ0123456789_"};
+
+constexpr TestCaseReplacement LongString_Mid_OneElementCut_LongerThanCapacityRange{
+ .initial = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_",
+ .from = 18,
+ .to = 19,
+ .input = "abcdefghijklmnopqrstuvwxyz0123456789_"
+ "abcdefghijklmnopqrstuvwxyz0123456789_"
+ "abcdefghijklmnopqrstuvwxyz0123456789",
+ .expected =
+ "_ABCDEFGHIJKLMNOPQ"
+ "abcdefghijklmnopqrstuvwxyz0123456789_"
+ "abcdefghijklmnopqrstuvwxyz0123456789_"
+ "abcdefghijklmnopqrstuvwxyz0123456789"
+ "STUVWXYZ0123456789_"};
+
+constexpr TestCaseReplacement LongString_Mid_MidSizedCut_EmptyRange{
+ .initial = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_",
+ .from = 18,
+ .to = 21,
+ .input = "",
+ .expected = "_ABCDEFGHIJKLMNOPQUVWXYZ0123456789_"};
+
+constexpr TestCaseReplacement LongString_Mid_MidSizedCut_OneElementRange{
+ .initial = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_",
+ .from = 18,
+ .to = 21,
+ .input = "a",
+ .expected = "_ABCDEFGHIJKLMNOPQaUVWXYZ0123456789_"};
+
+constexpr TestCaseReplacement LongString_Mid_MidSizedCut_MidRange{
+ .initial = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_",
+ .from = 18,
+ .to = 21,
+ .input = "aeiou",
+ .expected = "_ABCDEFGHIJKLMNOPQaeiouUVWXYZ0123456789_"};
+
+constexpr TestCaseReplacement LongString_Mid_MidSizedCut_LongRange{
+ .initial = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_",
+ .from = 18,
+ .to = 21,
+ .input = "abcdefghijklmnopqrstuvwxyz0123456789",
+ .expected = "_ABCDEFGHIJKLMNOPQabcdefghijklmnopqrstuvwxyz0123456789UVWXYZ0123456789_"};
+
+constexpr TestCaseReplacement LongString_Mid_MidSizedCut_LongerThanCapacityRange{
+ .initial = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_",
+ .from = 18,
+ .to = 21,
+ .input = "abcdefghijklmnopqrstuvwxyz0123456789_"
+ "abcdefghijklmnopqrstuvwxyz0123456789_"
+ "abcdefghijklmnopqrstuvwxyz0123456789",
+ .expected =
+ "_ABCDEFGHIJKLMNOPQ"
+ "abcdefghijklmnopqrstuvwxyz0123456789_"
+ "abcdefghijklmnopqrstuvwxyz0123456789_"
+ "abcdefghijklmnopqrstuvwxyz0123456789"
+ "UVWXYZ0123456789_"};
+
+constexpr TestCaseReplacement LongString_Mid_CutToEnd_EmptyRange{
+ .initial = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_",
+ .from = 18,
+ .to = 38,
+ .input = "",
+ .expected = "_ABCDEFGHIJKLMNOPQ"};
+
+constexpr TestCaseReplacement LongString_Mid_CutToEnd_OneElementRange{
+ .initial = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_",
+ .from = 18,
+ .to = 38,
+ .input = "a",
+ .expected = "_ABCDEFGHIJKLMNOPQa"};
+
+constexpr TestCaseReplacement LongString_Mid_CutToEnd_MidRange{
+ .initial = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_",
+ .from = 18,
+ .to = 38,
+ .input = "aeiou",
+ .expected = "_ABCDEFGHIJKLMNOPQaeiou"};
+
+constexpr TestCaseReplacement LongString_Mid_CutToEnd_LongRange{
+ .initial = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_",
+ .from = 18,
+ .to = 38,
+ .input = "abcdefghijklmnopqrstuvwxyz0123456789",
+ .expected = "_ABCDEFGHIJKLMNOPQabcdefghijklmnopqrstuvwxyz0123456789"};
+
+constexpr TestCaseReplacement LongString_Mid_CutToEnd_LongerThanCapacityRange{
+ .initial = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_",
+ .from = 18,
+ .to = 38,
+ .input = "abcdefghijklmnopqrstuvwxyz0123456789_"
+ "abcdefghijklmnopqrstuvwxyz0123456789_"
+ "abcdefghijklmnopqrstuvwxyz0123456789",
+ .expected = "_ABCDEFGHIJKLMNOPQ"
+ "abcdefghijklmnopqrstuvwxyz0123456789_"
+ "abcdefghijklmnopqrstuvwxyz0123456789_"
+ "abcdefghijklmnopqrstuvwxyz0123456789"};
// Replace at the end.
-constexpr TestCaseReplacement LongString_End_EmptyCut_EmptyRange {
- .initial = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_", .from = 38, .to = 38, .input = "",
- .expected = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_"
-};
-
-constexpr TestCaseReplacement LongString_End_EmptyCut_OneElementRange {
- .initial = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_", .from = 38, .to = 38, .input = "a",
- .expected = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_a"
-};
-
-constexpr TestCaseReplacement LongString_End_EmptyCut_MidRange {
- .initial = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_", .from = 38, .to = 38, .input = "aeiou",
- .expected = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_aeiou"
-};
-
-constexpr TestCaseReplacement LongString_End_EmptyCut_LongRange {
- .initial = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_", .from = 38, .to = 38,
- .input = "abcdefghijklmnopqrstuvwxyz0123456789",
- .expected = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_abcdefghijklmnopqrstuvwxyz0123456789"
-};
-
-constexpr TestCaseReplacement LongString_End_EmptyCut_LongerThanCapacityRange {
- .initial = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_", .from = 38, .to = 38,
- .input = "abcdefghijklmnopqrstuvwxyz0123456789_"
- "abcdefghijklmnopqrstuvwxyz0123456789_"
- "abcdefghijklmnopqrstuvwxyz0123456789",
- .expected = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_"
- "abcdefghijklmnopqrstuvwxyz0123456789_"
- "abcdefghijklmnopqrstuvwxyz0123456789_"
- "abcdefghijklmnopqrstuvwxyz0123456789"
-};
+constexpr TestCaseReplacement LongString_End_EmptyCut_EmptyRange{
+ .initial = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_",
+ .from = 38,
+ .to = 38,
+ .input = "",
+ .expected = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_"};
+
+constexpr TestCaseReplacement LongString_End_EmptyCut_OneElementRange{
+ .initial = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_",
+ .from = 38,
+ .to = 38,
+ .input = "a",
+ .expected = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_a"};
+
+constexpr TestCaseReplacement LongString_End_EmptyCut_MidRange{
+ .initial = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_",
+ .from = 38,
+ .to = 38,
+ .input = "aeiou",
+ .expected = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_aeiou"};
+
+constexpr TestCaseReplacement LongString_End_EmptyCut_LongRange{
+ .initial = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_",
+ .from = 38,
+ .to = 38,
+ .input = "abcdefghijklmnopqrstuvwxyz0123456789",
+ .expected = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_abcdefghijklmnopqrstuvwxyz0123456789"};
+
+constexpr TestCaseReplacement LongString_End_EmptyCut_LongerThanCapacityRange{
+ .initial = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_",
+ .from = 38,
+ .to = 38,
+ .input = "abcdefghijklmnopqrstuvwxyz0123456789_"
+ "abcdefghijklmnopqrstuvwxyz0123456789_"
+ "abcdefghijklmnopqrstuvwxyz0123456789",
+ .expected = "_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_"
+ "abcdefghijklmnopqrstuvwxyz0123456789_"
+ "abcdefghijklmnopqrstuvwxyz0123456789_"
+ "abcdefghijklmnopqrstuvwxyz0123456789"};
template <class Iter, class Sent, class Alloc>
constexpr void test_string_replace_with_range() {
@@ -608,9 +644,9 @@ constexpr void test_string_replace_with_range() {
auto get_pos = [](auto& c, auto index) { return std::ranges::next(c.begin(), index); };
Container c(test_case.initial.begin(), test_case.initial.end());
- auto in = wrap_input<Iter, Sent>(test_case.input);
+ auto in = wrap_input<Iter, Sent>(test_case.input);
auto from = get_pos(c, test_case.from);
- auto to = get_pos(c, test_case.to);
+ auto to = get_pos(c, test_case.to);
Container& result = c.replace_with_range(from, to, in);
assert(&result == &c);
@@ -846,25 +882,25 @@ constexpr void test_string_replace_with_range_rvalue_range() {
{ // Lvalue.
std::string in = "abc";
- std::string c = "123";
+ std::string c = "123";
c.replace_with_range(c.begin(), c.end(), in);
}
{ // Const lvalue.
const std::string in = "abc";
- std::string c = "123";
+ std::string c = "123";
c.replace_with_range(c.begin(), c.end(), in);
}
{ // Rvalue.
std::string in = "abc";
- std::string c = "123";
+ std::string c = "123";
c.replace_with_range(c.begin(), c.end(), std::move(in));
}
{ // Const rvalue.
const std::string in = "abc";
- std::string c = "123";
+ std::string c = "123";
c.replace_with_range(c.begin(), c.end(), std::move(in));
}
}
diff --git a/libcxx/test/std/strings/basic.string/string.modifiers/string_replace/size_size_T_size_size.pass.cpp b/libcxx/test/std/strings/basic.string/string.modifiers/string_replace/size_size_T_size_size.pass.cpp
index 74e25c624e3b9f3..6ecefa0187553bd 100644
--- a/libcxx/test/std/strings/basic.string/string.modifiers/string_replace/size_size_T_size_size.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.modifiers/string_replace/size_size_T_size_size.pass.cpp
@@ -26,5996 +26,6132 @@
template <class S, class SV>
TEST_CONSTEXPR_CXX20 void
-test(S s, typename S::size_type pos1, typename S::size_type n1,
- SV sv, typename S::size_type pos2, typename S::size_type n2,
- S expected)
-{
- typedef typename S::size_type SizeT;
- static_assert((!std::is_same<S, SV>::value), "");
-
- // String and string_view may not always share the same size type,
- // but both types should have the same size (ex. int vs long)
- static_assert(sizeof(SizeT) == sizeof(typename SV::size_type), "");
-
- const SizeT old_size = s.size();
- S s0 = s;
- if (pos1 <= old_size && pos2 <= sv.size())
- {
- s.replace(pos1, n1, sv, pos2, n2);
- LIBCPP_ASSERT(s.__invariants());
- assert(s == expected);
- SizeT xlen = std::min<SizeT>(n1, old_size - pos1);
- SizeT rlen = std::min<SizeT>(n2, sv.size() - pos2);
- assert(s.size() == old_size - xlen + rlen);
- }
+test(S s,
+ typename S::size_type pos1,
+ typename S::size_type n1,
+ SV sv,
+ typename S::size_type pos2,
+ typename S::size_type n2,
+ S expected) {
+ typedef typename S::size_type SizeT;
+ static_assert((!std::is_same<S, SV>::value), "");
+
+ // String and string_view may not always share the same size type,
+ // but both types should have the same size (ex. int vs long)
+ static_assert(sizeof(SizeT) == sizeof(typename SV::size_type), "");
+
+ const SizeT old_size = s.size();
+ S s0 = s;
+ if (pos1 <= old_size && pos2 <= sv.size()) {
+ s.replace(pos1, n1, sv, pos2, n2);
+ LIBCPP_ASSERT(s.__invariants());
+ assert(s == expected);
+ SizeT xlen = std::min<SizeT>(n1, old_size - pos1);
+ SizeT rlen = std::min<SizeT>(n2, sv.size() - pos2);
+ assert(s.size() == old_size - xlen + rlen);
+ }
#ifndef TEST_HAS_NO_EXCEPTIONS
- else if (!TEST_IS_CONSTANT_EVALUATED)
- {
- try
- {
- s.replace(pos1, n1, sv, pos2, n2);
- assert(false);
- }
- catch (std::out_of_range&)
- {
- assert(pos1 > old_size || pos2 > sv.size());
- assert(s == s0);
- }
+ else if (!TEST_IS_CONSTANT_EVALUATED) {
+ try {
+ s.replace(pos1, n1, sv, pos2, n2);
+ assert(false);
+ } catch (std::out_of_range&) {
+ assert(pos1 > old_size || pos2 > sv.size());
+ assert(s == s0);
}
+ }
#endif
}
template <class S, class SV>
TEST_CONSTEXPR_CXX20 void
-test_npos(S s, typename S::size_type pos1, typename S::size_type n1,
- SV sv, typename S::size_type pos2,
- S expected)
-{
- typedef typename S::size_type SizeT;
- static_assert((!std::is_same<S, SV>::value), "");
- const SizeT old_size = s.size();
- S s0 = s;
- if (pos1 <= old_size && pos2 <= sv.size())
- {
- s.replace(pos1, n1, sv, pos2);
- LIBCPP_ASSERT(s.__invariants());
- assert(s == expected);
- SizeT xlen = std::min<SizeT>(n1, old_size - pos1);
- SizeT rlen = std::min<SizeT>(S::npos, sv.size() - pos2);
- assert(s.size() == old_size - xlen + rlen);
- }
+test_npos(S s, typename S::size_type pos1, typename S::size_type n1, SV sv, typename S::size_type pos2, S expected) {
+ typedef typename S::size_type SizeT;
+ static_assert((!std::is_same<S, SV>::value), "");
+ const SizeT old_size = s.size();
+ S s0 = s;
+ if (pos1 <= old_size && pos2 <= sv.size()) {
+ s.replace(pos1, n1, sv, pos2);
+ LIBCPP_ASSERT(s.__invariants());
+ assert(s == expected);
+ SizeT xlen = std::min<SizeT>(n1, old_size - pos1);
+ SizeT rlen = std::min<SizeT>(S::npos, sv.size() - pos2);
+ assert(s.size() == old_size - xlen + rlen);
+ }
#ifndef TEST_HAS_NO_EXCEPTIONS
- else if (!TEST_IS_CONSTANT_EVALUATED)
- {
- try
- {
- s.replace(pos1, n1, sv, pos2);
- assert(false);
- }
- catch (std::out_of_range&)
- {
- assert(pos1 > old_size || pos2 > sv.size());
- assert(s == s0);
- }
+ else if (!TEST_IS_CONSTANT_EVALUATED) {
+ try {
+ s.replace(pos1, n1, sv, pos2);
+ assert(false);
+ } catch (std::out_of_range&) {
+ assert(pos1 > old_size || pos2 > sv.size());
+ assert(s == s0);
}
+ }
#endif
}
-
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test0()
-{
- test(S(""), 0, 0, SV(""), 0, 0, S(""));
- test(S(""), 0, 0, SV(""), 0, 1, S(""));
- test(S(""), 0, 0, SV(""), 1, 0, S("can't happen"));
- test(S(""), 0, 0, SV("12345"), 0, 0, S(""));
- test(S(""), 0, 0, SV("12345"), 0, 1, S("1"));
- test(S(""), 0, 0, SV("12345"), 0, 2, S("12"));
- test(S(""), 0, 0, SV("12345"), 0, 4, S("1234"));
- test(S(""), 0, 0, SV("12345"), 0, 5, S("12345"));
- test(S(""), 0, 0, SV("12345"), 0, 6, S("12345"));
- test(S(""), 0, 0, SV("12345"), 1, 0, S(""));
- test(S(""), 0, 0, SV("12345"), 1, 1, S("2"));
- test(S(""), 0, 0, SV("12345"), 1, 2, S("23"));
- test(S(""), 0, 0, SV("12345"), 1, 3, S("234"));
- test(S(""), 0, 0, SV("12345"), 1, 4, S("2345"));
- test(S(""), 0, 0, SV("12345"), 1, 5, S("2345"));
- test(S(""), 0, 0, SV("12345"), 2, 0, S(""));
- test(S(""), 0, 0, SV("12345"), 2, 1, S("3"));
- test(S(""), 0, 0, SV("12345"), 2, 2, S("34"));
- test(S(""), 0, 0, SV("12345"), 2, 3, S("345"));
- test(S(""), 0, 0, SV("12345"), 2, 4, S("345"));
- test(S(""), 0, 0, SV("12345"), 4, 0, S(""));
- test(S(""), 0, 0, SV("12345"), 4, 1, S("5"));
- test(S(""), 0, 0, SV("12345"), 4, 2, S("5"));
- test(S(""), 0, 0, SV("12345"), 5, 0, S(""));
- test(S(""), 0, 0, SV("12345"), 5, 1, S(""));
- test(S(""), 0, 0, SV("12345"), 6, 0, S("can't happen"));
- test(S(""), 0, 0, SV("1234567890"), 0, 0, S(""));
- test(S(""), 0, 0, SV("1234567890"), 0, 1, S("1"));
- test(S(""), 0, 0, SV("1234567890"), 0, 5, S("12345"));
- test(S(""), 0, 0, SV("1234567890"), 0, 9, S("123456789"));
- test(S(""), 0, 0, SV("1234567890"), 0, 10, S("1234567890"));
- test(S(""), 0, 0, SV("1234567890"), 0, 11, S("1234567890"));
- test(S(""), 0, 0, SV("1234567890"), 1, 0, S(""));
- test(S(""), 0, 0, SV("1234567890"), 1, 1, S("2"));
- test(S(""), 0, 0, SV("1234567890"), 1, 4, S("2345"));
- test(S(""), 0, 0, SV("1234567890"), 1, 8, S("23456789"));
- test(S(""), 0, 0, SV("1234567890"), 1, 9, S("234567890"));
- test(S(""), 0, 0, SV("1234567890"), 1, 10, S("234567890"));
- test(S(""), 0, 0, SV("1234567890"), 5, 0, S(""));
- test(S(""), 0, 0, SV("1234567890"), 5, 1, S("6"));
- test(S(""), 0, 0, SV("1234567890"), 5, 2, S("67"));
- test(S(""), 0, 0, SV("1234567890"), 5, 4, S("6789"));
- test(S(""), 0, 0, SV("1234567890"), 5, 5, S("67890"));
- test(S(""), 0, 0, SV("1234567890"), 5, 6, S("67890"));
- test(S(""), 0, 0, SV("1234567890"), 9, 0, S(""));
- test(S(""), 0, 0, SV("1234567890"), 9, 1, S("0"));
- test(S(""), 0, 0, SV("1234567890"), 9, 2, S("0"));
- test(S(""), 0, 0, SV("1234567890"), 10, 0, S(""));
- test(S(""), 0, 0, SV("1234567890"), 10, 1, S(""));
- test(S(""), 0, 0, SV("1234567890"), 11, 0, S("can't happen"));
- test(S(""), 0, 0, SV("12345678901234567890"), 0, 0, S(""));
- test(S(""), 0, 0, SV("12345678901234567890"), 0, 1, S("1"));
- test(S(""), 0, 0, SV("12345678901234567890"), 0, 10, S("1234567890"));
- test(S(""), 0, 0, SV("12345678901234567890"), 0, 19, S("1234567890123456789"));
- test(S(""), 0, 0, SV("12345678901234567890"), 0, 20, S("12345678901234567890"));
- test(S(""), 0, 0, SV("12345678901234567890"), 0, 21, S("12345678901234567890"));
- test(S(""), 0, 0, SV("12345678901234567890"), 1, 0, S(""));
- test(S(""), 0, 0, SV("12345678901234567890"), 1, 1, S("2"));
- test(S(""), 0, 0, SV("12345678901234567890"), 1, 9, S("234567890"));
- test(S(""), 0, 0, SV("12345678901234567890"), 1, 18, S("234567890123456789"));
- test(S(""), 0, 0, SV("12345678901234567890"), 1, 19, S("2345678901234567890"));
- test(S(""), 0, 0, SV("12345678901234567890"), 1, 20, S("2345678901234567890"));
- test(S(""), 0, 0, SV("12345678901234567890"), 10, 0, S(""));
- test(S(""), 0, 0, SV("12345678901234567890"), 10, 1, S("1"));
- test(S(""), 0, 0, SV("12345678901234567890"), 10, 5, S("12345"));
- test(S(""), 0, 0, SV("12345678901234567890"), 10, 9, S("123456789"));
- test(S(""), 0, 0, SV("12345678901234567890"), 10, 10, S("1234567890"));
- test(S(""), 0, 0, SV("12345678901234567890"), 10, 11, S("1234567890"));
- test(S(""), 0, 0, SV("12345678901234567890"), 19, 0, S(""));
- test(S(""), 0, 0, SV("12345678901234567890"), 19, 1, S("0"));
- test(S(""), 0, 0, SV("12345678901234567890"), 19, 2, S("0"));
- test(S(""), 0, 0, SV("12345678901234567890"), 20, 0, S(""));
- test(S(""), 0, 0, SV("12345678901234567890"), 20, 1, S(""));
- test(S(""), 0, 0, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S(""), 0, 1, SV(""), 0, 0, S(""));
- test(S(""), 0, 1, SV(""), 0, 1, S(""));
- test(S(""), 0, 1, SV(""), 1, 0, S("can't happen"));
- test(S(""), 0, 1, SV("12345"), 0, 0, S(""));
- test(S(""), 0, 1, SV("12345"), 0, 1, S("1"));
- test(S(""), 0, 1, SV("12345"), 0, 2, S("12"));
- test(S(""), 0, 1, SV("12345"), 0, 4, S("1234"));
- test(S(""), 0, 1, SV("12345"), 0, 5, S("12345"));
- test(S(""), 0, 1, SV("12345"), 0, 6, S("12345"));
- test(S(""), 0, 1, SV("12345"), 1, 0, S(""));
- test(S(""), 0, 1, SV("12345"), 1, 1, S("2"));
- test(S(""), 0, 1, SV("12345"), 1, 2, S("23"));
- test(S(""), 0, 1, SV("12345"), 1, 3, S("234"));
- test(S(""), 0, 1, SV("12345"), 1, 4, S("2345"));
- test(S(""), 0, 1, SV("12345"), 1, 5, S("2345"));
- test(S(""), 0, 1, SV("12345"), 2, 0, S(""));
- test(S(""), 0, 1, SV("12345"), 2, 1, S("3"));
- test(S(""), 0, 1, SV("12345"), 2, 2, S("34"));
- test(S(""), 0, 1, SV("12345"), 2, 3, S("345"));
- test(S(""), 0, 1, SV("12345"), 2, 4, S("345"));
- test(S(""), 0, 1, SV("12345"), 4, 0, S(""));
- test(S(""), 0, 1, SV("12345"), 4, 1, S("5"));
- test(S(""), 0, 1, SV("12345"), 4, 2, S("5"));
- test(S(""), 0, 1, SV("12345"), 5, 0, S(""));
- test(S(""), 0, 1, SV("12345"), 5, 1, S(""));
- test(S(""), 0, 1, SV("12345"), 6, 0, S("can't happen"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test0() {
+ test(S(""), 0, 0, SV(""), 0, 0, S(""));
+ test(S(""), 0, 0, SV(""), 0, 1, S(""));
+ test(S(""), 0, 0, SV(""), 1, 0, S("can't happen"));
+ test(S(""), 0, 0, SV("12345"), 0, 0, S(""));
+ test(S(""), 0, 0, SV("12345"), 0, 1, S("1"));
+ test(S(""), 0, 0, SV("12345"), 0, 2, S("12"));
+ test(S(""), 0, 0, SV("12345"), 0, 4, S("1234"));
+ test(S(""), 0, 0, SV("12345"), 0, 5, S("12345"));
+ test(S(""), 0, 0, SV("12345"), 0, 6, S("12345"));
+ test(S(""), 0, 0, SV("12345"), 1, 0, S(""));
+ test(S(""), 0, 0, SV("12345"), 1, 1, S("2"));
+ test(S(""), 0, 0, SV("12345"), 1, 2, S("23"));
+ test(S(""), 0, 0, SV("12345"), 1, 3, S("234"));
+ test(S(""), 0, 0, SV("12345"), 1, 4, S("2345"));
+ test(S(""), 0, 0, SV("12345"), 1, 5, S("2345"));
+ test(S(""), 0, 0, SV("12345"), 2, 0, S(""));
+ test(S(""), 0, 0, SV("12345"), 2, 1, S("3"));
+ test(S(""), 0, 0, SV("12345"), 2, 2, S("34"));
+ test(S(""), 0, 0, SV("12345"), 2, 3, S("345"));
+ test(S(""), 0, 0, SV("12345"), 2, 4, S("345"));
+ test(S(""), 0, 0, SV("12345"), 4, 0, S(""));
+ test(S(""), 0, 0, SV("12345"), 4, 1, S("5"));
+ test(S(""), 0, 0, SV("12345"), 4, 2, S("5"));
+ test(S(""), 0, 0, SV("12345"), 5, 0, S(""));
+ test(S(""), 0, 0, SV("12345"), 5, 1, S(""));
+ test(S(""), 0, 0, SV("12345"), 6, 0, S("can't happen"));
+ test(S(""), 0, 0, SV("1234567890"), 0, 0, S(""));
+ test(S(""), 0, 0, SV("1234567890"), 0, 1, S("1"));
+ test(S(""), 0, 0, SV("1234567890"), 0, 5, S("12345"));
+ test(S(""), 0, 0, SV("1234567890"), 0, 9, S("123456789"));
+ test(S(""), 0, 0, SV("1234567890"), 0, 10, S("1234567890"));
+ test(S(""), 0, 0, SV("1234567890"), 0, 11, S("1234567890"));
+ test(S(""), 0, 0, SV("1234567890"), 1, 0, S(""));
+ test(S(""), 0, 0, SV("1234567890"), 1, 1, S("2"));
+ test(S(""), 0, 0, SV("1234567890"), 1, 4, S("2345"));
+ test(S(""), 0, 0, SV("1234567890"), 1, 8, S("23456789"));
+ test(S(""), 0, 0, SV("1234567890"), 1, 9, S("234567890"));
+ test(S(""), 0, 0, SV("1234567890"), 1, 10, S("234567890"));
+ test(S(""), 0, 0, SV("1234567890"), 5, 0, S(""));
+ test(S(""), 0, 0, SV("1234567890"), 5, 1, S("6"));
+ test(S(""), 0, 0, SV("1234567890"), 5, 2, S("67"));
+ test(S(""), 0, 0, SV("1234567890"), 5, 4, S("6789"));
+ test(S(""), 0, 0, SV("1234567890"), 5, 5, S("67890"));
+ test(S(""), 0, 0, SV("1234567890"), 5, 6, S("67890"));
+ test(S(""), 0, 0, SV("1234567890"), 9, 0, S(""));
+ test(S(""), 0, 0, SV("1234567890"), 9, 1, S("0"));
+ test(S(""), 0, 0, SV("1234567890"), 9, 2, S("0"));
+ test(S(""), 0, 0, SV("1234567890"), 10, 0, S(""));
+ test(S(""), 0, 0, SV("1234567890"), 10, 1, S(""));
+ test(S(""), 0, 0, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S(""), 0, 0, SV("12345678901234567890"), 0, 0, S(""));
+ test(S(""), 0, 0, SV("12345678901234567890"), 0, 1, S("1"));
+ test(S(""), 0, 0, SV("12345678901234567890"), 0, 10, S("1234567890"));
+ test(S(""), 0, 0, SV("12345678901234567890"), 0, 19, S("1234567890123456789"));
+ test(S(""), 0, 0, SV("12345678901234567890"), 0, 20, S("12345678901234567890"));
+ test(S(""), 0, 0, SV("12345678901234567890"), 0, 21, S("12345678901234567890"));
+ test(S(""), 0, 0, SV("12345678901234567890"), 1, 0, S(""));
+ test(S(""), 0, 0, SV("12345678901234567890"), 1, 1, S("2"));
+ test(S(""), 0, 0, SV("12345678901234567890"), 1, 9, S("234567890"));
+ test(S(""), 0, 0, SV("12345678901234567890"), 1, 18, S("234567890123456789"));
+ test(S(""), 0, 0, SV("12345678901234567890"), 1, 19, S("2345678901234567890"));
+ test(S(""), 0, 0, SV("12345678901234567890"), 1, 20, S("2345678901234567890"));
+ test(S(""), 0, 0, SV("12345678901234567890"), 10, 0, S(""));
+ test(S(""), 0, 0, SV("12345678901234567890"), 10, 1, S("1"));
+ test(S(""), 0, 0, SV("12345678901234567890"), 10, 5, S("12345"));
+ test(S(""), 0, 0, SV("12345678901234567890"), 10, 9, S("123456789"));
+ test(S(""), 0, 0, SV("12345678901234567890"), 10, 10, S("1234567890"));
+ test(S(""), 0, 0, SV("12345678901234567890"), 10, 11, S("1234567890"));
+ test(S(""), 0, 0, SV("12345678901234567890"), 19, 0, S(""));
+ test(S(""), 0, 0, SV("12345678901234567890"), 19, 1, S("0"));
+ test(S(""), 0, 0, SV("12345678901234567890"), 19, 2, S("0"));
+ test(S(""), 0, 0, SV("12345678901234567890"), 20, 0, S(""));
+ test(S(""), 0, 0, SV("12345678901234567890"), 20, 1, S(""));
+ test(S(""), 0, 0, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S(""), 0, 1, SV(""), 0, 0, S(""));
+ test(S(""), 0, 1, SV(""), 0, 1, S(""));
+ test(S(""), 0, 1, SV(""), 1, 0, S("can't happen"));
+ test(S(""), 0, 1, SV("12345"), 0, 0, S(""));
+ test(S(""), 0, 1, SV("12345"), 0, 1, S("1"));
+ test(S(""), 0, 1, SV("12345"), 0, 2, S("12"));
+ test(S(""), 0, 1, SV("12345"), 0, 4, S("1234"));
+ test(S(""), 0, 1, SV("12345"), 0, 5, S("12345"));
+ test(S(""), 0, 1, SV("12345"), 0, 6, S("12345"));
+ test(S(""), 0, 1, SV("12345"), 1, 0, S(""));
+ test(S(""), 0, 1, SV("12345"), 1, 1, S("2"));
+ test(S(""), 0, 1, SV("12345"), 1, 2, S("23"));
+ test(S(""), 0, 1, SV("12345"), 1, 3, S("234"));
+ test(S(""), 0, 1, SV("12345"), 1, 4, S("2345"));
+ test(S(""), 0, 1, SV("12345"), 1, 5, S("2345"));
+ test(S(""), 0, 1, SV("12345"), 2, 0, S(""));
+ test(S(""), 0, 1, SV("12345"), 2, 1, S("3"));
+ test(S(""), 0, 1, SV("12345"), 2, 2, S("34"));
+ test(S(""), 0, 1, SV("12345"), 2, 3, S("345"));
+ test(S(""), 0, 1, SV("12345"), 2, 4, S("345"));
+ test(S(""), 0, 1, SV("12345"), 4, 0, S(""));
+ test(S(""), 0, 1, SV("12345"), 4, 1, S("5"));
+ test(S(""), 0, 1, SV("12345"), 4, 2, S("5"));
+ test(S(""), 0, 1, SV("12345"), 5, 0, S(""));
+ test(S(""), 0, 1, SV("12345"), 5, 1, S(""));
+ test(S(""), 0, 1, SV("12345"), 6, 0, S("can't happen"));
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test1()
-{
- test(S(""), 0, 1, SV("1234567890"), 0, 0, S(""));
- test(S(""), 0, 1, SV("1234567890"), 0, 1, S("1"));
- test(S(""), 0, 1, SV("1234567890"), 0, 5, S("12345"));
- test(S(""), 0, 1, SV("1234567890"), 0, 9, S("123456789"));
- test(S(""), 0, 1, SV("1234567890"), 0, 10, S("1234567890"));
- test(S(""), 0, 1, SV("1234567890"), 0, 11, S("1234567890"));
- test(S(""), 0, 1, SV("1234567890"), 1, 0, S(""));
- test(S(""), 0, 1, SV("1234567890"), 1, 1, S("2"));
- test(S(""), 0, 1, SV("1234567890"), 1, 4, S("2345"));
- test(S(""), 0, 1, SV("1234567890"), 1, 8, S("23456789"));
- test(S(""), 0, 1, SV("1234567890"), 1, 9, S("234567890"));
- test(S(""), 0, 1, SV("1234567890"), 1, 10, S("234567890"));
- test(S(""), 0, 1, SV("1234567890"), 5, 0, S(""));
- test(S(""), 0, 1, SV("1234567890"), 5, 1, S("6"));
- test(S(""), 0, 1, SV("1234567890"), 5, 2, S("67"));
- test(S(""), 0, 1, SV("1234567890"), 5, 4, S("6789"));
- test(S(""), 0, 1, SV("1234567890"), 5, 5, S("67890"));
- test(S(""), 0, 1, SV("1234567890"), 5, 6, S("67890"));
- test(S(""), 0, 1, SV("1234567890"), 9, 0, S(""));
- test(S(""), 0, 1, SV("1234567890"), 9, 1, S("0"));
- test(S(""), 0, 1, SV("1234567890"), 9, 2, S("0"));
- test(S(""), 0, 1, SV("1234567890"), 10, 0, S(""));
- test(S(""), 0, 1, SV("1234567890"), 10, 1, S(""));
- test(S(""), 0, 1, SV("1234567890"), 11, 0, S("can't happen"));
- test(S(""), 0, 1, SV("12345678901234567890"), 0, 0, S(""));
- test(S(""), 0, 1, SV("12345678901234567890"), 0, 1, S("1"));
- test(S(""), 0, 1, SV("12345678901234567890"), 0, 10, S("1234567890"));
- test(S(""), 0, 1, SV("12345678901234567890"), 0, 19, S("1234567890123456789"));
- test(S(""), 0, 1, SV("12345678901234567890"), 0, 20, S("12345678901234567890"));
- test(S(""), 0, 1, SV("12345678901234567890"), 0, 21, S("12345678901234567890"));
- test(S(""), 0, 1, SV("12345678901234567890"), 1, 0, S(""));
- test(S(""), 0, 1, SV("12345678901234567890"), 1, 1, S("2"));
- test(S(""), 0, 1, SV("12345678901234567890"), 1, 9, S("234567890"));
- test(S(""), 0, 1, SV("12345678901234567890"), 1, 18, S("234567890123456789"));
- test(S(""), 0, 1, SV("12345678901234567890"), 1, 19, S("2345678901234567890"));
- test(S(""), 0, 1, SV("12345678901234567890"), 1, 20, S("2345678901234567890"));
- test(S(""), 0, 1, SV("12345678901234567890"), 10, 0, S(""));
- test(S(""), 0, 1, SV("12345678901234567890"), 10, 1, S("1"));
- test(S(""), 0, 1, SV("12345678901234567890"), 10, 5, S("12345"));
- test(S(""), 0, 1, SV("12345678901234567890"), 10, 9, S("123456789"));
- test(S(""), 0, 1, SV("12345678901234567890"), 10, 10, S("1234567890"));
- test(S(""), 0, 1, SV("12345678901234567890"), 10, 11, S("1234567890"));
- test(S(""), 0, 1, SV("12345678901234567890"), 19, 0, S(""));
- test(S(""), 0, 1, SV("12345678901234567890"), 19, 1, S("0"));
- test(S(""), 0, 1, SV("12345678901234567890"), 19, 2, S("0"));
- test(S(""), 0, 1, SV("12345678901234567890"), 20, 0, S(""));
- test(S(""), 0, 1, SV("12345678901234567890"), 20, 1, S(""));
- test(S(""), 0, 1, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S(""), 1, 0, SV(""), 0, 0, S("can't happen"));
- test(S(""), 1, 0, SV(""), 0, 1, S("can't happen"));
- test(S(""), 1, 0, SV(""), 1, 0, S("can't happen"));
- test(S(""), 1, 0, SV("12345"), 0, 0, S("can't happen"));
- test(S(""), 1, 0, SV("12345"), 0, 1, S("can't happen"));
- test(S(""), 1, 0, SV("12345"), 0, 2, S("can't happen"));
- test(S(""), 1, 0, SV("12345"), 0, 4, S("can't happen"));
- test(S(""), 1, 0, SV("12345"), 0, 5, S("can't happen"));
- test(S(""), 1, 0, SV("12345"), 0, 6, S("can't happen"));
- test(S(""), 1, 0, SV("12345"), 1, 0, S("can't happen"));
- test(S(""), 1, 0, SV("12345"), 1, 1, S("can't happen"));
- test(S(""), 1, 0, SV("12345"), 1, 2, S("can't happen"));
- test(S(""), 1, 0, SV("12345"), 1, 3, S("can't happen"));
- test(S(""), 1, 0, SV("12345"), 1, 4, S("can't happen"));
- test(S(""), 1, 0, SV("12345"), 1, 5, S("can't happen"));
- test(S(""), 1, 0, SV("12345"), 2, 0, S("can't happen"));
- test(S(""), 1, 0, SV("12345"), 2, 1, S("can't happen"));
- test(S(""), 1, 0, SV("12345"), 2, 2, S("can't happen"));
- test(S(""), 1, 0, SV("12345"), 2, 3, S("can't happen"));
- test(S(""), 1, 0, SV("12345"), 2, 4, S("can't happen"));
- test(S(""), 1, 0, SV("12345"), 4, 0, S("can't happen"));
- test(S(""), 1, 0, SV("12345"), 4, 1, S("can't happen"));
- test(S(""), 1, 0, SV("12345"), 4, 2, S("can't happen"));
- test(S(""), 1, 0, SV("12345"), 5, 0, S("can't happen"));
- test(S(""), 1, 0, SV("12345"), 5, 1, S("can't happen"));
- test(S(""), 1, 0, SV("12345"), 6, 0, S("can't happen"));
- test(S(""), 1, 0, SV("1234567890"), 0, 0, S("can't happen"));
- test(S(""), 1, 0, SV("1234567890"), 0, 1, S("can't happen"));
- test(S(""), 1, 0, SV("1234567890"), 0, 5, S("can't happen"));
- test(S(""), 1, 0, SV("1234567890"), 0, 9, S("can't happen"));
- test(S(""), 1, 0, SV("1234567890"), 0, 10, S("can't happen"));
- test(S(""), 1, 0, SV("1234567890"), 0, 11, S("can't happen"));
- test(S(""), 1, 0, SV("1234567890"), 1, 0, S("can't happen"));
- test(S(""), 1, 0, SV("1234567890"), 1, 1, S("can't happen"));
- test(S(""), 1, 0, SV("1234567890"), 1, 4, S("can't happen"));
- test(S(""), 1, 0, SV("1234567890"), 1, 8, S("can't happen"));
- test(S(""), 1, 0, SV("1234567890"), 1, 9, S("can't happen"));
- test(S(""), 1, 0, SV("1234567890"), 1, 10, S("can't happen"));
- test(S(""), 1, 0, SV("1234567890"), 5, 0, S("can't happen"));
- test(S(""), 1, 0, SV("1234567890"), 5, 1, S("can't happen"));
- test(S(""), 1, 0, SV("1234567890"), 5, 2, S("can't happen"));
- test(S(""), 1, 0, SV("1234567890"), 5, 4, S("can't happen"));
- test(S(""), 1, 0, SV("1234567890"), 5, 5, S("can't happen"));
- test(S(""), 1, 0, SV("1234567890"), 5, 6, S("can't happen"));
- test(S(""), 1, 0, SV("1234567890"), 9, 0, S("can't happen"));
- test(S(""), 1, 0, SV("1234567890"), 9, 1, S("can't happen"));
- test(S(""), 1, 0, SV("1234567890"), 9, 2, S("can't happen"));
- test(S(""), 1, 0, SV("1234567890"), 10, 0, S("can't happen"));
- test(S(""), 1, 0, SV("1234567890"), 10, 1, S("can't happen"));
- test(S(""), 1, 0, SV("1234567890"), 11, 0, S("can't happen"));
- test(S(""), 1, 0, SV("12345678901234567890"), 0, 0, S("can't happen"));
- test(S(""), 1, 0, SV("12345678901234567890"), 0, 1, S("can't happen"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test1() {
+ test(S(""), 0, 1, SV("1234567890"), 0, 0, S(""));
+ test(S(""), 0, 1, SV("1234567890"), 0, 1, S("1"));
+ test(S(""), 0, 1, SV("1234567890"), 0, 5, S("12345"));
+ test(S(""), 0, 1, SV("1234567890"), 0, 9, S("123456789"));
+ test(S(""), 0, 1, SV("1234567890"), 0, 10, S("1234567890"));
+ test(S(""), 0, 1, SV("1234567890"), 0, 11, S("1234567890"));
+ test(S(""), 0, 1, SV("1234567890"), 1, 0, S(""));
+ test(S(""), 0, 1, SV("1234567890"), 1, 1, S("2"));
+ test(S(""), 0, 1, SV("1234567890"), 1, 4, S("2345"));
+ test(S(""), 0, 1, SV("1234567890"), 1, 8, S("23456789"));
+ test(S(""), 0, 1, SV("1234567890"), 1, 9, S("234567890"));
+ test(S(""), 0, 1, SV("1234567890"), 1, 10, S("234567890"));
+ test(S(""), 0, 1, SV("1234567890"), 5, 0, S(""));
+ test(S(""), 0, 1, SV("1234567890"), 5, 1, S("6"));
+ test(S(""), 0, 1, SV("1234567890"), 5, 2, S("67"));
+ test(S(""), 0, 1, SV("1234567890"), 5, 4, S("6789"));
+ test(S(""), 0, 1, SV("1234567890"), 5, 5, S("67890"));
+ test(S(""), 0, 1, SV("1234567890"), 5, 6, S("67890"));
+ test(S(""), 0, 1, SV("1234567890"), 9, 0, S(""));
+ test(S(""), 0, 1, SV("1234567890"), 9, 1, S("0"));
+ test(S(""), 0, 1, SV("1234567890"), 9, 2, S("0"));
+ test(S(""), 0, 1, SV("1234567890"), 10, 0, S(""));
+ test(S(""), 0, 1, SV("1234567890"), 10, 1, S(""));
+ test(S(""), 0, 1, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S(""), 0, 1, SV("12345678901234567890"), 0, 0, S(""));
+ test(S(""), 0, 1, SV("12345678901234567890"), 0, 1, S("1"));
+ test(S(""), 0, 1, SV("12345678901234567890"), 0, 10, S("1234567890"));
+ test(S(""), 0, 1, SV("12345678901234567890"), 0, 19, S("1234567890123456789"));
+ test(S(""), 0, 1, SV("12345678901234567890"), 0, 20, S("12345678901234567890"));
+ test(S(""), 0, 1, SV("12345678901234567890"), 0, 21, S("12345678901234567890"));
+ test(S(""), 0, 1, SV("12345678901234567890"), 1, 0, S(""));
+ test(S(""), 0, 1, SV("12345678901234567890"), 1, 1, S("2"));
+ test(S(""), 0, 1, SV("12345678901234567890"), 1, 9, S("234567890"));
+ test(S(""), 0, 1, SV("12345678901234567890"), 1, 18, S("234567890123456789"));
+ test(S(""), 0, 1, SV("12345678901234567890"), 1, 19, S("2345678901234567890"));
+ test(S(""), 0, 1, SV("12345678901234567890"), 1, 20, S("2345678901234567890"));
+ test(S(""), 0, 1, SV("12345678901234567890"), 10, 0, S(""));
+ test(S(""), 0, 1, SV("12345678901234567890"), 10, 1, S("1"));
+ test(S(""), 0, 1, SV("12345678901234567890"), 10, 5, S("12345"));
+ test(S(""), 0, 1, SV("12345678901234567890"), 10, 9, S("123456789"));
+ test(S(""), 0, 1, SV("12345678901234567890"), 10, 10, S("1234567890"));
+ test(S(""), 0, 1, SV("12345678901234567890"), 10, 11, S("1234567890"));
+ test(S(""), 0, 1, SV("12345678901234567890"), 19, 0, S(""));
+ test(S(""), 0, 1, SV("12345678901234567890"), 19, 1, S("0"));
+ test(S(""), 0, 1, SV("12345678901234567890"), 19, 2, S("0"));
+ test(S(""), 0, 1, SV("12345678901234567890"), 20, 0, S(""));
+ test(S(""), 0, 1, SV("12345678901234567890"), 20, 1, S(""));
+ test(S(""), 0, 1, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S(""), 1, 0, SV(""), 0, 0, S("can't happen"));
+ test(S(""), 1, 0, SV(""), 0, 1, S("can't happen"));
+ test(S(""), 1, 0, SV(""), 1, 0, S("can't happen"));
+ test(S(""), 1, 0, SV("12345"), 0, 0, S("can't happen"));
+ test(S(""), 1, 0, SV("12345"), 0, 1, S("can't happen"));
+ test(S(""), 1, 0, SV("12345"), 0, 2, S("can't happen"));
+ test(S(""), 1, 0, SV("12345"), 0, 4, S("can't happen"));
+ test(S(""), 1, 0, SV("12345"), 0, 5, S("can't happen"));
+ test(S(""), 1, 0, SV("12345"), 0, 6, S("can't happen"));
+ test(S(""), 1, 0, SV("12345"), 1, 0, S("can't happen"));
+ test(S(""), 1, 0, SV("12345"), 1, 1, S("can't happen"));
+ test(S(""), 1, 0, SV("12345"), 1, 2, S("can't happen"));
+ test(S(""), 1, 0, SV("12345"), 1, 3, S("can't happen"));
+ test(S(""), 1, 0, SV("12345"), 1, 4, S("can't happen"));
+ test(S(""), 1, 0, SV("12345"), 1, 5, S("can't happen"));
+ test(S(""), 1, 0, SV("12345"), 2, 0, S("can't happen"));
+ test(S(""), 1, 0, SV("12345"), 2, 1, S("can't happen"));
+ test(S(""), 1, 0, SV("12345"), 2, 2, S("can't happen"));
+ test(S(""), 1, 0, SV("12345"), 2, 3, S("can't happen"));
+ test(S(""), 1, 0, SV("12345"), 2, 4, S("can't happen"));
+ test(S(""), 1, 0, SV("12345"), 4, 0, S("can't happen"));
+ test(S(""), 1, 0, SV("12345"), 4, 1, S("can't happen"));
+ test(S(""), 1, 0, SV("12345"), 4, 2, S("can't happen"));
+ test(S(""), 1, 0, SV("12345"), 5, 0, S("can't happen"));
+ test(S(""), 1, 0, SV("12345"), 5, 1, S("can't happen"));
+ test(S(""), 1, 0, SV("12345"), 6, 0, S("can't happen"));
+ test(S(""), 1, 0, SV("1234567890"), 0, 0, S("can't happen"));
+ test(S(""), 1, 0, SV("1234567890"), 0, 1, S("can't happen"));
+ test(S(""), 1, 0, SV("1234567890"), 0, 5, S("can't happen"));
+ test(S(""), 1, 0, SV("1234567890"), 0, 9, S("can't happen"));
+ test(S(""), 1, 0, SV("1234567890"), 0, 10, S("can't happen"));
+ test(S(""), 1, 0, SV("1234567890"), 0, 11, S("can't happen"));
+ test(S(""), 1, 0, SV("1234567890"), 1, 0, S("can't happen"));
+ test(S(""), 1, 0, SV("1234567890"), 1, 1, S("can't happen"));
+ test(S(""), 1, 0, SV("1234567890"), 1, 4, S("can't happen"));
+ test(S(""), 1, 0, SV("1234567890"), 1, 8, S("can't happen"));
+ test(S(""), 1, 0, SV("1234567890"), 1, 9, S("can't happen"));
+ test(S(""), 1, 0, SV("1234567890"), 1, 10, S("can't happen"));
+ test(S(""), 1, 0, SV("1234567890"), 5, 0, S("can't happen"));
+ test(S(""), 1, 0, SV("1234567890"), 5, 1, S("can't happen"));
+ test(S(""), 1, 0, SV("1234567890"), 5, 2, S("can't happen"));
+ test(S(""), 1, 0, SV("1234567890"), 5, 4, S("can't happen"));
+ test(S(""), 1, 0, SV("1234567890"), 5, 5, S("can't happen"));
+ test(S(""), 1, 0, SV("1234567890"), 5, 6, S("can't happen"));
+ test(S(""), 1, 0, SV("1234567890"), 9, 0, S("can't happen"));
+ test(S(""), 1, 0, SV("1234567890"), 9, 1, S("can't happen"));
+ test(S(""), 1, 0, SV("1234567890"), 9, 2, S("can't happen"));
+ test(S(""), 1, 0, SV("1234567890"), 10, 0, S("can't happen"));
+ test(S(""), 1, 0, SV("1234567890"), 10, 1, S("can't happen"));
+ test(S(""), 1, 0, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S(""), 1, 0, SV("12345678901234567890"), 0, 0, S("can't happen"));
+ test(S(""), 1, 0, SV("12345678901234567890"), 0, 1, S("can't happen"));
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test2()
-{
- test(S(""), 1, 0, SV("12345678901234567890"), 0, 10, S("can't happen"));
- test(S(""), 1, 0, SV("12345678901234567890"), 0, 19, S("can't happen"));
- test(S(""), 1, 0, SV("12345678901234567890"), 0, 20, S("can't happen"));
- test(S(""), 1, 0, SV("12345678901234567890"), 0, 21, S("can't happen"));
- test(S(""), 1, 0, SV("12345678901234567890"), 1, 0, S("can't happen"));
- test(S(""), 1, 0, SV("12345678901234567890"), 1, 1, S("can't happen"));
- test(S(""), 1, 0, SV("12345678901234567890"), 1, 9, S("can't happen"));
- test(S(""), 1, 0, SV("12345678901234567890"), 1, 18, S("can't happen"));
- test(S(""), 1, 0, SV("12345678901234567890"), 1, 19, S("can't happen"));
- test(S(""), 1, 0, SV("12345678901234567890"), 1, 20, S("can't happen"));
- test(S(""), 1, 0, SV("12345678901234567890"), 10, 0, S("can't happen"));
- test(S(""), 1, 0, SV("12345678901234567890"), 10, 1, S("can't happen"));
- test(S(""), 1, 0, SV("12345678901234567890"), 10, 5, S("can't happen"));
- test(S(""), 1, 0, SV("12345678901234567890"), 10, 9, S("can't happen"));
- test(S(""), 1, 0, SV("12345678901234567890"), 10, 10, S("can't happen"));
- test(S(""), 1, 0, SV("12345678901234567890"), 10, 11, S("can't happen"));
- test(S(""), 1, 0, SV("12345678901234567890"), 19, 0, S("can't happen"));
- test(S(""), 1, 0, SV("12345678901234567890"), 19, 1, S("can't happen"));
- test(S(""), 1, 0, SV("12345678901234567890"), 19, 2, S("can't happen"));
- test(S(""), 1, 0, SV("12345678901234567890"), 20, 0, S("can't happen"));
- test(S(""), 1, 0, SV("12345678901234567890"), 20, 1, S("can't happen"));
- test(S(""), 1, 0, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcde"), 0, 0, SV(""), 0, 0, S("abcde"));
- test(S("abcde"), 0, 0, SV(""), 0, 1, S("abcde"));
- test(S("abcde"), 0, 0, SV(""), 1, 0, S("can't happen"));
- test(S("abcde"), 0, 0, SV("12345"), 0, 0, S("abcde"));
- test(S("abcde"), 0, 0, SV("12345"), 0, 1, S("1abcde"));
- test(S("abcde"), 0, 0, SV("12345"), 0, 2, S("12abcde"));
- test(S("abcde"), 0, 0, SV("12345"), 0, 4, S("1234abcde"));
- test(S("abcde"), 0, 0, SV("12345"), 0, 5, S("12345abcde"));
- test(S("abcde"), 0, 0, SV("12345"), 0, 6, S("12345abcde"));
- test(S("abcde"), 0, 0, SV("12345"), 1, 0, S("abcde"));
- test(S("abcde"), 0, 0, SV("12345"), 1, 1, S("2abcde"));
- test(S("abcde"), 0, 0, SV("12345"), 1, 2, S("23abcde"));
- test(S("abcde"), 0, 0, SV("12345"), 1, 3, S("234abcde"));
- test(S("abcde"), 0, 0, SV("12345"), 1, 4, S("2345abcde"));
- test(S("abcde"), 0, 0, SV("12345"), 1, 5, S("2345abcde"));
- test(S("abcde"), 0, 0, SV("12345"), 2, 0, S("abcde"));
- test(S("abcde"), 0, 0, SV("12345"), 2, 1, S("3abcde"));
- test(S("abcde"), 0, 0, SV("12345"), 2, 2, S("34abcde"));
- test(S("abcde"), 0, 0, SV("12345"), 2, 3, S("345abcde"));
- test(S("abcde"), 0, 0, SV("12345"), 2, 4, S("345abcde"));
- test(S("abcde"), 0, 0, SV("12345"), 4, 0, S("abcde"));
- test(S("abcde"), 0, 0, SV("12345"), 4, 1, S("5abcde"));
- test(S("abcde"), 0, 0, SV("12345"), 4, 2, S("5abcde"));
- test(S("abcde"), 0, 0, SV("12345"), 5, 0, S("abcde"));
- test(S("abcde"), 0, 0, SV("12345"), 5, 1, S("abcde"));
- test(S("abcde"), 0, 0, SV("12345"), 6, 0, S("can't happen"));
- test(S("abcde"), 0, 0, SV("1234567890"), 0, 0, S("abcde"));
- test(S("abcde"), 0, 0, SV("1234567890"), 0, 1, S("1abcde"));
- test(S("abcde"), 0, 0, SV("1234567890"), 0, 5, S("12345abcde"));
- test(S("abcde"), 0, 0, SV("1234567890"), 0, 9, S("123456789abcde"));
- test(S("abcde"), 0, 0, SV("1234567890"), 0, 10, S("1234567890abcde"));
- test(S("abcde"), 0, 0, SV("1234567890"), 0, 11, S("1234567890abcde"));
- test(S("abcde"), 0, 0, SV("1234567890"), 1, 0, S("abcde"));
- test(S("abcde"), 0, 0, SV("1234567890"), 1, 1, S("2abcde"));
- test(S("abcde"), 0, 0, SV("1234567890"), 1, 4, S("2345abcde"));
- test(S("abcde"), 0, 0, SV("1234567890"), 1, 8, S("23456789abcde"));
- test(S("abcde"), 0, 0, SV("1234567890"), 1, 9, S("234567890abcde"));
- test(S("abcde"), 0, 0, SV("1234567890"), 1, 10, S("234567890abcde"));
- test(S("abcde"), 0, 0, SV("1234567890"), 5, 0, S("abcde"));
- test(S("abcde"), 0, 0, SV("1234567890"), 5, 1, S("6abcde"));
- test(S("abcde"), 0, 0, SV("1234567890"), 5, 2, S("67abcde"));
- test(S("abcde"), 0, 0, SV("1234567890"), 5, 4, S("6789abcde"));
- test(S("abcde"), 0, 0, SV("1234567890"), 5, 5, S("67890abcde"));
- test(S("abcde"), 0, 0, SV("1234567890"), 5, 6, S("67890abcde"));
- test(S("abcde"), 0, 0, SV("1234567890"), 9, 0, S("abcde"));
- test(S("abcde"), 0, 0, SV("1234567890"), 9, 1, S("0abcde"));
- test(S("abcde"), 0, 0, SV("1234567890"), 9, 2, S("0abcde"));
- test(S("abcde"), 0, 0, SV("1234567890"), 10, 0, S("abcde"));
- test(S("abcde"), 0, 0, SV("1234567890"), 10, 1, S("abcde"));
- test(S("abcde"), 0, 0, SV("1234567890"), 11, 0, S("can't happen"));
- test(S("abcde"), 0, 0, SV("12345678901234567890"), 0, 0, S("abcde"));
- test(S("abcde"), 0, 0, SV("12345678901234567890"), 0, 1, S("1abcde"));
- test(S("abcde"), 0, 0, SV("12345678901234567890"), 0, 10, S("1234567890abcde"));
- test(S("abcde"), 0, 0, SV("12345678901234567890"), 0, 19, S("1234567890123456789abcde"));
- test(S("abcde"), 0, 0, SV("12345678901234567890"), 0, 20, S("12345678901234567890abcde"));
- test(S("abcde"), 0, 0, SV("12345678901234567890"), 0, 21, S("12345678901234567890abcde"));
- test(S("abcde"), 0, 0, SV("12345678901234567890"), 1, 0, S("abcde"));
- test(S("abcde"), 0, 0, SV("12345678901234567890"), 1, 1, S("2abcde"));
- test(S("abcde"), 0, 0, SV("12345678901234567890"), 1, 9, S("234567890abcde"));
- test(S("abcde"), 0, 0, SV("12345678901234567890"), 1, 18, S("234567890123456789abcde"));
- test(S("abcde"), 0, 0, SV("12345678901234567890"), 1, 19, S("2345678901234567890abcde"));
- test(S("abcde"), 0, 0, SV("12345678901234567890"), 1, 20, S("2345678901234567890abcde"));
- test(S("abcde"), 0, 0, SV("12345678901234567890"), 10, 0, S("abcde"));
- test(S("abcde"), 0, 0, SV("12345678901234567890"), 10, 1, S("1abcde"));
- test(S("abcde"), 0, 0, SV("12345678901234567890"), 10, 5, S("12345abcde"));
- test(S("abcde"), 0, 0, SV("12345678901234567890"), 10, 9, S("123456789abcde"));
- test(S("abcde"), 0, 0, SV("12345678901234567890"), 10, 10, S("1234567890abcde"));
- test(S("abcde"), 0, 0, SV("12345678901234567890"), 10, 11, S("1234567890abcde"));
- test(S("abcde"), 0, 0, SV("12345678901234567890"), 19, 0, S("abcde"));
- test(S("abcde"), 0, 0, SV("12345678901234567890"), 19, 1, S("0abcde"));
- test(S("abcde"), 0, 0, SV("12345678901234567890"), 19, 2, S("0abcde"));
- test(S("abcde"), 0, 0, SV("12345678901234567890"), 20, 0, S("abcde"));
- test(S("abcde"), 0, 0, SV("12345678901234567890"), 20, 1, S("abcde"));
- test(S("abcde"), 0, 0, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcde"), 0, 1, SV(""), 0, 0, S("bcde"));
- test(S("abcde"), 0, 1, SV(""), 0, 1, S("bcde"));
- test(S("abcde"), 0, 1, SV(""), 1, 0, S("can't happen"));
- test(S("abcde"), 0, 1, SV("12345"), 0, 0, S("bcde"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test2() {
+ test(S(""), 1, 0, SV("12345678901234567890"), 0, 10, S("can't happen"));
+ test(S(""), 1, 0, SV("12345678901234567890"), 0, 19, S("can't happen"));
+ test(S(""), 1, 0, SV("12345678901234567890"), 0, 20, S("can't happen"));
+ test(S(""), 1, 0, SV("12345678901234567890"), 0, 21, S("can't happen"));
+ test(S(""), 1, 0, SV("12345678901234567890"), 1, 0, S("can't happen"));
+ test(S(""), 1, 0, SV("12345678901234567890"), 1, 1, S("can't happen"));
+ test(S(""), 1, 0, SV("12345678901234567890"), 1, 9, S("can't happen"));
+ test(S(""), 1, 0, SV("12345678901234567890"), 1, 18, S("can't happen"));
+ test(S(""), 1, 0, SV("12345678901234567890"), 1, 19, S("can't happen"));
+ test(S(""), 1, 0, SV("12345678901234567890"), 1, 20, S("can't happen"));
+ test(S(""), 1, 0, SV("12345678901234567890"), 10, 0, S("can't happen"));
+ test(S(""), 1, 0, SV("12345678901234567890"), 10, 1, S("can't happen"));
+ test(S(""), 1, 0, SV("12345678901234567890"), 10, 5, S("can't happen"));
+ test(S(""), 1, 0, SV("12345678901234567890"), 10, 9, S("can't happen"));
+ test(S(""), 1, 0, SV("12345678901234567890"), 10, 10, S("can't happen"));
+ test(S(""), 1, 0, SV("12345678901234567890"), 10, 11, S("can't happen"));
+ test(S(""), 1, 0, SV("12345678901234567890"), 19, 0, S("can't happen"));
+ test(S(""), 1, 0, SV("12345678901234567890"), 19, 1, S("can't happen"));
+ test(S(""), 1, 0, SV("12345678901234567890"), 19, 2, S("can't happen"));
+ test(S(""), 1, 0, SV("12345678901234567890"), 20, 0, S("can't happen"));
+ test(S(""), 1, 0, SV("12345678901234567890"), 20, 1, S("can't happen"));
+ test(S(""), 1, 0, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcde"), 0, 0, SV(""), 0, 0, S("abcde"));
+ test(S("abcde"), 0, 0, SV(""), 0, 1, S("abcde"));
+ test(S("abcde"), 0, 0, SV(""), 1, 0, S("can't happen"));
+ test(S("abcde"), 0, 0, SV("12345"), 0, 0, S("abcde"));
+ test(S("abcde"), 0, 0, SV("12345"), 0, 1, S("1abcde"));
+ test(S("abcde"), 0, 0, SV("12345"), 0, 2, S("12abcde"));
+ test(S("abcde"), 0, 0, SV("12345"), 0, 4, S("1234abcde"));
+ test(S("abcde"), 0, 0, SV("12345"), 0, 5, S("12345abcde"));
+ test(S("abcde"), 0, 0, SV("12345"), 0, 6, S("12345abcde"));
+ test(S("abcde"), 0, 0, SV("12345"), 1, 0, S("abcde"));
+ test(S("abcde"), 0, 0, SV("12345"), 1, 1, S("2abcde"));
+ test(S("abcde"), 0, 0, SV("12345"), 1, 2, S("23abcde"));
+ test(S("abcde"), 0, 0, SV("12345"), 1, 3, S("234abcde"));
+ test(S("abcde"), 0, 0, SV("12345"), 1, 4, S("2345abcde"));
+ test(S("abcde"), 0, 0, SV("12345"), 1, 5, S("2345abcde"));
+ test(S("abcde"), 0, 0, SV("12345"), 2, 0, S("abcde"));
+ test(S("abcde"), 0, 0, SV("12345"), 2, 1, S("3abcde"));
+ test(S("abcde"), 0, 0, SV("12345"), 2, 2, S("34abcde"));
+ test(S("abcde"), 0, 0, SV("12345"), 2, 3, S("345abcde"));
+ test(S("abcde"), 0, 0, SV("12345"), 2, 4, S("345abcde"));
+ test(S("abcde"), 0, 0, SV("12345"), 4, 0, S("abcde"));
+ test(S("abcde"), 0, 0, SV("12345"), 4, 1, S("5abcde"));
+ test(S("abcde"), 0, 0, SV("12345"), 4, 2, S("5abcde"));
+ test(S("abcde"), 0, 0, SV("12345"), 5, 0, S("abcde"));
+ test(S("abcde"), 0, 0, SV("12345"), 5, 1, S("abcde"));
+ test(S("abcde"), 0, 0, SV("12345"), 6, 0, S("can't happen"));
+ test(S("abcde"), 0, 0, SV("1234567890"), 0, 0, S("abcde"));
+ test(S("abcde"), 0, 0, SV("1234567890"), 0, 1, S("1abcde"));
+ test(S("abcde"), 0, 0, SV("1234567890"), 0, 5, S("12345abcde"));
+ test(S("abcde"), 0, 0, SV("1234567890"), 0, 9, S("123456789abcde"));
+ test(S("abcde"), 0, 0, SV("1234567890"), 0, 10, S("1234567890abcde"));
+ test(S("abcde"), 0, 0, SV("1234567890"), 0, 11, S("1234567890abcde"));
+ test(S("abcde"), 0, 0, SV("1234567890"), 1, 0, S("abcde"));
+ test(S("abcde"), 0, 0, SV("1234567890"), 1, 1, S("2abcde"));
+ test(S("abcde"), 0, 0, SV("1234567890"), 1, 4, S("2345abcde"));
+ test(S("abcde"), 0, 0, SV("1234567890"), 1, 8, S("23456789abcde"));
+ test(S("abcde"), 0, 0, SV("1234567890"), 1, 9, S("234567890abcde"));
+ test(S("abcde"), 0, 0, SV("1234567890"), 1, 10, S("234567890abcde"));
+ test(S("abcde"), 0, 0, SV("1234567890"), 5, 0, S("abcde"));
+ test(S("abcde"), 0, 0, SV("1234567890"), 5, 1, S("6abcde"));
+ test(S("abcde"), 0, 0, SV("1234567890"), 5, 2, S("67abcde"));
+ test(S("abcde"), 0, 0, SV("1234567890"), 5, 4, S("6789abcde"));
+ test(S("abcde"), 0, 0, SV("1234567890"), 5, 5, S("67890abcde"));
+ test(S("abcde"), 0, 0, SV("1234567890"), 5, 6, S("67890abcde"));
+ test(S("abcde"), 0, 0, SV("1234567890"), 9, 0, S("abcde"));
+ test(S("abcde"), 0, 0, SV("1234567890"), 9, 1, S("0abcde"));
+ test(S("abcde"), 0, 0, SV("1234567890"), 9, 2, S("0abcde"));
+ test(S("abcde"), 0, 0, SV("1234567890"), 10, 0, S("abcde"));
+ test(S("abcde"), 0, 0, SV("1234567890"), 10, 1, S("abcde"));
+ test(S("abcde"), 0, 0, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcde"), 0, 0, SV("12345678901234567890"), 0, 0, S("abcde"));
+ test(S("abcde"), 0, 0, SV("12345678901234567890"), 0, 1, S("1abcde"));
+ test(S("abcde"), 0, 0, SV("12345678901234567890"), 0, 10, S("1234567890abcde"));
+ test(S("abcde"), 0, 0, SV("12345678901234567890"), 0, 19, S("1234567890123456789abcde"));
+ test(S("abcde"), 0, 0, SV("12345678901234567890"), 0, 20, S("12345678901234567890abcde"));
+ test(S("abcde"), 0, 0, SV("12345678901234567890"), 0, 21, S("12345678901234567890abcde"));
+ test(S("abcde"), 0, 0, SV("12345678901234567890"), 1, 0, S("abcde"));
+ test(S("abcde"), 0, 0, SV("12345678901234567890"), 1, 1, S("2abcde"));
+ test(S("abcde"), 0, 0, SV("12345678901234567890"), 1, 9, S("234567890abcde"));
+ test(S("abcde"), 0, 0, SV("12345678901234567890"), 1, 18, S("234567890123456789abcde"));
+ test(S("abcde"), 0, 0, SV("12345678901234567890"), 1, 19, S("2345678901234567890abcde"));
+ test(S("abcde"), 0, 0, SV("12345678901234567890"), 1, 20, S("2345678901234567890abcde"));
+ test(S("abcde"), 0, 0, SV("12345678901234567890"), 10, 0, S("abcde"));
+ test(S("abcde"), 0, 0, SV("12345678901234567890"), 10, 1, S("1abcde"));
+ test(S("abcde"), 0, 0, SV("12345678901234567890"), 10, 5, S("12345abcde"));
+ test(S("abcde"), 0, 0, SV("12345678901234567890"), 10, 9, S("123456789abcde"));
+ test(S("abcde"), 0, 0, SV("12345678901234567890"), 10, 10, S("1234567890abcde"));
+ test(S("abcde"), 0, 0, SV("12345678901234567890"), 10, 11, S("1234567890abcde"));
+ test(S("abcde"), 0, 0, SV("12345678901234567890"), 19, 0, S("abcde"));
+ test(S("abcde"), 0, 0, SV("12345678901234567890"), 19, 1, S("0abcde"));
+ test(S("abcde"), 0, 0, SV("12345678901234567890"), 19, 2, S("0abcde"));
+ test(S("abcde"), 0, 0, SV("12345678901234567890"), 20, 0, S("abcde"));
+ test(S("abcde"), 0, 0, SV("12345678901234567890"), 20, 1, S("abcde"));
+ test(S("abcde"), 0, 0, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcde"), 0, 1, SV(""), 0, 0, S("bcde"));
+ test(S("abcde"), 0, 1, SV(""), 0, 1, S("bcde"));
+ test(S("abcde"), 0, 1, SV(""), 1, 0, S("can't happen"));
+ test(S("abcde"), 0, 1, SV("12345"), 0, 0, S("bcde"));
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test3()
-{
- test(S("abcde"), 0, 1, SV("12345"), 0, 1, S("1bcde"));
- test(S("abcde"), 0, 1, SV("12345"), 0, 2, S("12bcde"));
- test(S("abcde"), 0, 1, SV("12345"), 0, 4, S("1234bcde"));
- test(S("abcde"), 0, 1, SV("12345"), 0, 5, S("12345bcde"));
- test(S("abcde"), 0, 1, SV("12345"), 0, 6, S("12345bcde"));
- test(S("abcde"), 0, 1, SV("12345"), 1, 0, S("bcde"));
- test(S("abcde"), 0, 1, SV("12345"), 1, 1, S("2bcde"));
- test(S("abcde"), 0, 1, SV("12345"), 1, 2, S("23bcde"));
- test(S("abcde"), 0, 1, SV("12345"), 1, 3, S("234bcde"));
- test(S("abcde"), 0, 1, SV("12345"), 1, 4, S("2345bcde"));
- test(S("abcde"), 0, 1, SV("12345"), 1, 5, S("2345bcde"));
- test(S("abcde"), 0, 1, SV("12345"), 2, 0, S("bcde"));
- test(S("abcde"), 0, 1, SV("12345"), 2, 1, S("3bcde"));
- test(S("abcde"), 0, 1, SV("12345"), 2, 2, S("34bcde"));
- test(S("abcde"), 0, 1, SV("12345"), 2, 3, S("345bcde"));
- test(S("abcde"), 0, 1, SV("12345"), 2, 4, S("345bcde"));
- test(S("abcde"), 0, 1, SV("12345"), 4, 0, S("bcde"));
- test(S("abcde"), 0, 1, SV("12345"), 4, 1, S("5bcde"));
- test(S("abcde"), 0, 1, SV("12345"), 4, 2, S("5bcde"));
- test(S("abcde"), 0, 1, SV("12345"), 5, 0, S("bcde"));
- test(S("abcde"), 0, 1, SV("12345"), 5, 1, S("bcde"));
- test(S("abcde"), 0, 1, SV("12345"), 6, 0, S("can't happen"));
- test(S("abcde"), 0, 1, SV("1234567890"), 0, 0, S("bcde"));
- test(S("abcde"), 0, 1, SV("1234567890"), 0, 1, S("1bcde"));
- test(S("abcde"), 0, 1, SV("1234567890"), 0, 5, S("12345bcde"));
- test(S("abcde"), 0, 1, SV("1234567890"), 0, 9, S("123456789bcde"));
- test(S("abcde"), 0, 1, SV("1234567890"), 0, 10, S("1234567890bcde"));
- test(S("abcde"), 0, 1, SV("1234567890"), 0, 11, S("1234567890bcde"));
- test(S("abcde"), 0, 1, SV("1234567890"), 1, 0, S("bcde"));
- test(S("abcde"), 0, 1, SV("1234567890"), 1, 1, S("2bcde"));
- test(S("abcde"), 0, 1, SV("1234567890"), 1, 4, S("2345bcde"));
- test(S("abcde"), 0, 1, SV("1234567890"), 1, 8, S("23456789bcde"));
- test(S("abcde"), 0, 1, SV("1234567890"), 1, 9, S("234567890bcde"));
- test(S("abcde"), 0, 1, SV("1234567890"), 1, 10, S("234567890bcde"));
- test(S("abcde"), 0, 1, SV("1234567890"), 5, 0, S("bcde"));
- test(S("abcde"), 0, 1, SV("1234567890"), 5, 1, S("6bcde"));
- test(S("abcde"), 0, 1, SV("1234567890"), 5, 2, S("67bcde"));
- test(S("abcde"), 0, 1, SV("1234567890"), 5, 4, S("6789bcde"));
- test(S("abcde"), 0, 1, SV("1234567890"), 5, 5, S("67890bcde"));
- test(S("abcde"), 0, 1, SV("1234567890"), 5, 6, S("67890bcde"));
- test(S("abcde"), 0, 1, SV("1234567890"), 9, 0, S("bcde"));
- test(S("abcde"), 0, 1, SV("1234567890"), 9, 1, S("0bcde"));
- test(S("abcde"), 0, 1, SV("1234567890"), 9, 2, S("0bcde"));
- test(S("abcde"), 0, 1, SV("1234567890"), 10, 0, S("bcde"));
- test(S("abcde"), 0, 1, SV("1234567890"), 10, 1, S("bcde"));
- test(S("abcde"), 0, 1, SV("1234567890"), 11, 0, S("can't happen"));
- test(S("abcde"), 0, 1, SV("12345678901234567890"), 0, 0, S("bcde"));
- test(S("abcde"), 0, 1, SV("12345678901234567890"), 0, 1, S("1bcde"));
- test(S("abcde"), 0, 1, SV("12345678901234567890"), 0, 10, S("1234567890bcde"));
- test(S("abcde"), 0, 1, SV("12345678901234567890"), 0, 19, S("1234567890123456789bcde"));
- test(S("abcde"), 0, 1, SV("12345678901234567890"), 0, 20, S("12345678901234567890bcde"));
- test(S("abcde"), 0, 1, SV("12345678901234567890"), 0, 21, S("12345678901234567890bcde"));
- test(S("abcde"), 0, 1, SV("12345678901234567890"), 1, 0, S("bcde"));
- test(S("abcde"), 0, 1, SV("12345678901234567890"), 1, 1, S("2bcde"));
- test(S("abcde"), 0, 1, SV("12345678901234567890"), 1, 9, S("234567890bcde"));
- test(S("abcde"), 0, 1, SV("12345678901234567890"), 1, 18, S("234567890123456789bcde"));
- test(S("abcde"), 0, 1, SV("12345678901234567890"), 1, 19, S("2345678901234567890bcde"));
- test(S("abcde"), 0, 1, SV("12345678901234567890"), 1, 20, S("2345678901234567890bcde"));
- test(S("abcde"), 0, 1, SV("12345678901234567890"), 10, 0, S("bcde"));
- test(S("abcde"), 0, 1, SV("12345678901234567890"), 10, 1, S("1bcde"));
- test(S("abcde"), 0, 1, SV("12345678901234567890"), 10, 5, S("12345bcde"));
- test(S("abcde"), 0, 1, SV("12345678901234567890"), 10, 9, S("123456789bcde"));
- test(S("abcde"), 0, 1, SV("12345678901234567890"), 10, 10, S("1234567890bcde"));
- test(S("abcde"), 0, 1, SV("12345678901234567890"), 10, 11, S("1234567890bcde"));
- test(S("abcde"), 0, 1, SV("12345678901234567890"), 19, 0, S("bcde"));
- test(S("abcde"), 0, 1, SV("12345678901234567890"), 19, 1, S("0bcde"));
- test(S("abcde"), 0, 1, SV("12345678901234567890"), 19, 2, S("0bcde"));
- test(S("abcde"), 0, 1, SV("12345678901234567890"), 20, 0, S("bcde"));
- test(S("abcde"), 0, 1, SV("12345678901234567890"), 20, 1, S("bcde"));
- test(S("abcde"), 0, 1, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcde"), 0, 2, SV(""), 0, 0, S("cde"));
- test(S("abcde"), 0, 2, SV(""), 0, 1, S("cde"));
- test(S("abcde"), 0, 2, SV(""), 1, 0, S("can't happen"));
- test(S("abcde"), 0, 2, SV("12345"), 0, 0, S("cde"));
- test(S("abcde"), 0, 2, SV("12345"), 0, 1, S("1cde"));
- test(S("abcde"), 0, 2, SV("12345"), 0, 2, S("12cde"));
- test(S("abcde"), 0, 2, SV("12345"), 0, 4, S("1234cde"));
- test(S("abcde"), 0, 2, SV("12345"), 0, 5, S("12345cde"));
- test(S("abcde"), 0, 2, SV("12345"), 0, 6, S("12345cde"));
- test(S("abcde"), 0, 2, SV("12345"), 1, 0, S("cde"));
- test(S("abcde"), 0, 2, SV("12345"), 1, 1, S("2cde"));
- test(S("abcde"), 0, 2, SV("12345"), 1, 2, S("23cde"));
- test(S("abcde"), 0, 2, SV("12345"), 1, 3, S("234cde"));
- test(S("abcde"), 0, 2, SV("12345"), 1, 4, S("2345cde"));
- test(S("abcde"), 0, 2, SV("12345"), 1, 5, S("2345cde"));
- test(S("abcde"), 0, 2, SV("12345"), 2, 0, S("cde"));
- test(S("abcde"), 0, 2, SV("12345"), 2, 1, S("3cde"));
- test(S("abcde"), 0, 2, SV("12345"), 2, 2, S("34cde"));
- test(S("abcde"), 0, 2, SV("12345"), 2, 3, S("345cde"));
- test(S("abcde"), 0, 2, SV("12345"), 2, 4, S("345cde"));
- test(S("abcde"), 0, 2, SV("12345"), 4, 0, S("cde"));
- test(S("abcde"), 0, 2, SV("12345"), 4, 1, S("5cde"));
- test(S("abcde"), 0, 2, SV("12345"), 4, 2, S("5cde"));
- test(S("abcde"), 0, 2, SV("12345"), 5, 0, S("cde"));
- test(S("abcde"), 0, 2, SV("12345"), 5, 1, S("cde"));
- test(S("abcde"), 0, 2, SV("12345"), 6, 0, S("can't happen"));
- test(S("abcde"), 0, 2, SV("1234567890"), 0, 0, S("cde"));
- test(S("abcde"), 0, 2, SV("1234567890"), 0, 1, S("1cde"));
- test(S("abcde"), 0, 2, SV("1234567890"), 0, 5, S("12345cde"));
- test(S("abcde"), 0, 2, SV("1234567890"), 0, 9, S("123456789cde"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test3() {
+ test(S("abcde"), 0, 1, SV("12345"), 0, 1, S("1bcde"));
+ test(S("abcde"), 0, 1, SV("12345"), 0, 2, S("12bcde"));
+ test(S("abcde"), 0, 1, SV("12345"), 0, 4, S("1234bcde"));
+ test(S("abcde"), 0, 1, SV("12345"), 0, 5, S("12345bcde"));
+ test(S("abcde"), 0, 1, SV("12345"), 0, 6, S("12345bcde"));
+ test(S("abcde"), 0, 1, SV("12345"), 1, 0, S("bcde"));
+ test(S("abcde"), 0, 1, SV("12345"), 1, 1, S("2bcde"));
+ test(S("abcde"), 0, 1, SV("12345"), 1, 2, S("23bcde"));
+ test(S("abcde"), 0, 1, SV("12345"), 1, 3, S("234bcde"));
+ test(S("abcde"), 0, 1, SV("12345"), 1, 4, S("2345bcde"));
+ test(S("abcde"), 0, 1, SV("12345"), 1, 5, S("2345bcde"));
+ test(S("abcde"), 0, 1, SV("12345"), 2, 0, S("bcde"));
+ test(S("abcde"), 0, 1, SV("12345"), 2, 1, S("3bcde"));
+ test(S("abcde"), 0, 1, SV("12345"), 2, 2, S("34bcde"));
+ test(S("abcde"), 0, 1, SV("12345"), 2, 3, S("345bcde"));
+ test(S("abcde"), 0, 1, SV("12345"), 2, 4, S("345bcde"));
+ test(S("abcde"), 0, 1, SV("12345"), 4, 0, S("bcde"));
+ test(S("abcde"), 0, 1, SV("12345"), 4, 1, S("5bcde"));
+ test(S("abcde"), 0, 1, SV("12345"), 4, 2, S("5bcde"));
+ test(S("abcde"), 0, 1, SV("12345"), 5, 0, S("bcde"));
+ test(S("abcde"), 0, 1, SV("12345"), 5, 1, S("bcde"));
+ test(S("abcde"), 0, 1, SV("12345"), 6, 0, S("can't happen"));
+ test(S("abcde"), 0, 1, SV("1234567890"), 0, 0, S("bcde"));
+ test(S("abcde"), 0, 1, SV("1234567890"), 0, 1, S("1bcde"));
+ test(S("abcde"), 0, 1, SV("1234567890"), 0, 5, S("12345bcde"));
+ test(S("abcde"), 0, 1, SV("1234567890"), 0, 9, S("123456789bcde"));
+ test(S("abcde"), 0, 1, SV("1234567890"), 0, 10, S("1234567890bcde"));
+ test(S("abcde"), 0, 1, SV("1234567890"), 0, 11, S("1234567890bcde"));
+ test(S("abcde"), 0, 1, SV("1234567890"), 1, 0, S("bcde"));
+ test(S("abcde"), 0, 1, SV("1234567890"), 1, 1, S("2bcde"));
+ test(S("abcde"), 0, 1, SV("1234567890"), 1, 4, S("2345bcde"));
+ test(S("abcde"), 0, 1, SV("1234567890"), 1, 8, S("23456789bcde"));
+ test(S("abcde"), 0, 1, SV("1234567890"), 1, 9, S("234567890bcde"));
+ test(S("abcde"), 0, 1, SV("1234567890"), 1, 10, S("234567890bcde"));
+ test(S("abcde"), 0, 1, SV("1234567890"), 5, 0, S("bcde"));
+ test(S("abcde"), 0, 1, SV("1234567890"), 5, 1, S("6bcde"));
+ test(S("abcde"), 0, 1, SV("1234567890"), 5, 2, S("67bcde"));
+ test(S("abcde"), 0, 1, SV("1234567890"), 5, 4, S("6789bcde"));
+ test(S("abcde"), 0, 1, SV("1234567890"), 5, 5, S("67890bcde"));
+ test(S("abcde"), 0, 1, SV("1234567890"), 5, 6, S("67890bcde"));
+ test(S("abcde"), 0, 1, SV("1234567890"), 9, 0, S("bcde"));
+ test(S("abcde"), 0, 1, SV("1234567890"), 9, 1, S("0bcde"));
+ test(S("abcde"), 0, 1, SV("1234567890"), 9, 2, S("0bcde"));
+ test(S("abcde"), 0, 1, SV("1234567890"), 10, 0, S("bcde"));
+ test(S("abcde"), 0, 1, SV("1234567890"), 10, 1, S("bcde"));
+ test(S("abcde"), 0, 1, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcde"), 0, 1, SV("12345678901234567890"), 0, 0, S("bcde"));
+ test(S("abcde"), 0, 1, SV("12345678901234567890"), 0, 1, S("1bcde"));
+ test(S("abcde"), 0, 1, SV("12345678901234567890"), 0, 10, S("1234567890bcde"));
+ test(S("abcde"), 0, 1, SV("12345678901234567890"), 0, 19, S("1234567890123456789bcde"));
+ test(S("abcde"), 0, 1, SV("12345678901234567890"), 0, 20, S("12345678901234567890bcde"));
+ test(S("abcde"), 0, 1, SV("12345678901234567890"), 0, 21, S("12345678901234567890bcde"));
+ test(S("abcde"), 0, 1, SV("12345678901234567890"), 1, 0, S("bcde"));
+ test(S("abcde"), 0, 1, SV("12345678901234567890"), 1, 1, S("2bcde"));
+ test(S("abcde"), 0, 1, SV("12345678901234567890"), 1, 9, S("234567890bcde"));
+ test(S("abcde"), 0, 1, SV("12345678901234567890"), 1, 18, S("234567890123456789bcde"));
+ test(S("abcde"), 0, 1, SV("12345678901234567890"), 1, 19, S("2345678901234567890bcde"));
+ test(S("abcde"), 0, 1, SV("12345678901234567890"), 1, 20, S("2345678901234567890bcde"));
+ test(S("abcde"), 0, 1, SV("12345678901234567890"), 10, 0, S("bcde"));
+ test(S("abcde"), 0, 1, SV("12345678901234567890"), 10, 1, S("1bcde"));
+ test(S("abcde"), 0, 1, SV("12345678901234567890"), 10, 5, S("12345bcde"));
+ test(S("abcde"), 0, 1, SV("12345678901234567890"), 10, 9, S("123456789bcde"));
+ test(S("abcde"), 0, 1, SV("12345678901234567890"), 10, 10, S("1234567890bcde"));
+ test(S("abcde"), 0, 1, SV("12345678901234567890"), 10, 11, S("1234567890bcde"));
+ test(S("abcde"), 0, 1, SV("12345678901234567890"), 19, 0, S("bcde"));
+ test(S("abcde"), 0, 1, SV("12345678901234567890"), 19, 1, S("0bcde"));
+ test(S("abcde"), 0, 1, SV("12345678901234567890"), 19, 2, S("0bcde"));
+ test(S("abcde"), 0, 1, SV("12345678901234567890"), 20, 0, S("bcde"));
+ test(S("abcde"), 0, 1, SV("12345678901234567890"), 20, 1, S("bcde"));
+ test(S("abcde"), 0, 1, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcde"), 0, 2, SV(""), 0, 0, S("cde"));
+ test(S("abcde"), 0, 2, SV(""), 0, 1, S("cde"));
+ test(S("abcde"), 0, 2, SV(""), 1, 0, S("can't happen"));
+ test(S("abcde"), 0, 2, SV("12345"), 0, 0, S("cde"));
+ test(S("abcde"), 0, 2, SV("12345"), 0, 1, S("1cde"));
+ test(S("abcde"), 0, 2, SV("12345"), 0, 2, S("12cde"));
+ test(S("abcde"), 0, 2, SV("12345"), 0, 4, S("1234cde"));
+ test(S("abcde"), 0, 2, SV("12345"), 0, 5, S("12345cde"));
+ test(S("abcde"), 0, 2, SV("12345"), 0, 6, S("12345cde"));
+ test(S("abcde"), 0, 2, SV("12345"), 1, 0, S("cde"));
+ test(S("abcde"), 0, 2, SV("12345"), 1, 1, S("2cde"));
+ test(S("abcde"), 0, 2, SV("12345"), 1, 2, S("23cde"));
+ test(S("abcde"), 0, 2, SV("12345"), 1, 3, S("234cde"));
+ test(S("abcde"), 0, 2, SV("12345"), 1, 4, S("2345cde"));
+ test(S("abcde"), 0, 2, SV("12345"), 1, 5, S("2345cde"));
+ test(S("abcde"), 0, 2, SV("12345"), 2, 0, S("cde"));
+ test(S("abcde"), 0, 2, SV("12345"), 2, 1, S("3cde"));
+ test(S("abcde"), 0, 2, SV("12345"), 2, 2, S("34cde"));
+ test(S("abcde"), 0, 2, SV("12345"), 2, 3, S("345cde"));
+ test(S("abcde"), 0, 2, SV("12345"), 2, 4, S("345cde"));
+ test(S("abcde"), 0, 2, SV("12345"), 4, 0, S("cde"));
+ test(S("abcde"), 0, 2, SV("12345"), 4, 1, S("5cde"));
+ test(S("abcde"), 0, 2, SV("12345"), 4, 2, S("5cde"));
+ test(S("abcde"), 0, 2, SV("12345"), 5, 0, S("cde"));
+ test(S("abcde"), 0, 2, SV("12345"), 5, 1, S("cde"));
+ test(S("abcde"), 0, 2, SV("12345"), 6, 0, S("can't happen"));
+ test(S("abcde"), 0, 2, SV("1234567890"), 0, 0, S("cde"));
+ test(S("abcde"), 0, 2, SV("1234567890"), 0, 1, S("1cde"));
+ test(S("abcde"), 0, 2, SV("1234567890"), 0, 5, S("12345cde"));
+ test(S("abcde"), 0, 2, SV("1234567890"), 0, 9, S("123456789cde"));
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test4()
-{
- test(S("abcde"), 0, 2, SV("1234567890"), 0, 10, S("1234567890cde"));
- test(S("abcde"), 0, 2, SV("1234567890"), 0, 11, S("1234567890cde"));
- test(S("abcde"), 0, 2, SV("1234567890"), 1, 0, S("cde"));
- test(S("abcde"), 0, 2, SV("1234567890"), 1, 1, S("2cde"));
- test(S("abcde"), 0, 2, SV("1234567890"), 1, 4, S("2345cde"));
- test(S("abcde"), 0, 2, SV("1234567890"), 1, 8, S("23456789cde"));
- test(S("abcde"), 0, 2, SV("1234567890"), 1, 9, S("234567890cde"));
- test(S("abcde"), 0, 2, SV("1234567890"), 1, 10, S("234567890cde"));
- test(S("abcde"), 0, 2, SV("1234567890"), 5, 0, S("cde"));
- test(S("abcde"), 0, 2, SV("1234567890"), 5, 1, S("6cde"));
- test(S("abcde"), 0, 2, SV("1234567890"), 5, 2, S("67cde"));
- test(S("abcde"), 0, 2, SV("1234567890"), 5, 4, S("6789cde"));
- test(S("abcde"), 0, 2, SV("1234567890"), 5, 5, S("67890cde"));
- test(S("abcde"), 0, 2, SV("1234567890"), 5, 6, S("67890cde"));
- test(S("abcde"), 0, 2, SV("1234567890"), 9, 0, S("cde"));
- test(S("abcde"), 0, 2, SV("1234567890"), 9, 1, S("0cde"));
- test(S("abcde"), 0, 2, SV("1234567890"), 9, 2, S("0cde"));
- test(S("abcde"), 0, 2, SV("1234567890"), 10, 0, S("cde"));
- test(S("abcde"), 0, 2, SV("1234567890"), 10, 1, S("cde"));
- test(S("abcde"), 0, 2, SV("1234567890"), 11, 0, S("can't happen"));
- test(S("abcde"), 0, 2, SV("12345678901234567890"), 0, 0, S("cde"));
- test(S("abcde"), 0, 2, SV("12345678901234567890"), 0, 1, S("1cde"));
- test(S("abcde"), 0, 2, SV("12345678901234567890"), 0, 10, S("1234567890cde"));
- test(S("abcde"), 0, 2, SV("12345678901234567890"), 0, 19, S("1234567890123456789cde"));
- test(S("abcde"), 0, 2, SV("12345678901234567890"), 0, 20, S("12345678901234567890cde"));
- test(S("abcde"), 0, 2, SV("12345678901234567890"), 0, 21, S("12345678901234567890cde"));
- test(S("abcde"), 0, 2, SV("12345678901234567890"), 1, 0, S("cde"));
- test(S("abcde"), 0, 2, SV("12345678901234567890"), 1, 1, S("2cde"));
- test(S("abcde"), 0, 2, SV("12345678901234567890"), 1, 9, S("234567890cde"));
- test(S("abcde"), 0, 2, SV("12345678901234567890"), 1, 18, S("234567890123456789cde"));
- test(S("abcde"), 0, 2, SV("12345678901234567890"), 1, 19, S("2345678901234567890cde"));
- test(S("abcde"), 0, 2, SV("12345678901234567890"), 1, 20, S("2345678901234567890cde"));
- test(S("abcde"), 0, 2, SV("12345678901234567890"), 10, 0, S("cde"));
- test(S("abcde"), 0, 2, SV("12345678901234567890"), 10, 1, S("1cde"));
- test(S("abcde"), 0, 2, SV("12345678901234567890"), 10, 5, S("12345cde"));
- test(S("abcde"), 0, 2, SV("12345678901234567890"), 10, 9, S("123456789cde"));
- test(S("abcde"), 0, 2, SV("12345678901234567890"), 10, 10, S("1234567890cde"));
- test(S("abcde"), 0, 2, SV("12345678901234567890"), 10, 11, S("1234567890cde"));
- test(S("abcde"), 0, 2, SV("12345678901234567890"), 19, 0, S("cde"));
- test(S("abcde"), 0, 2, SV("12345678901234567890"), 19, 1, S("0cde"));
- test(S("abcde"), 0, 2, SV("12345678901234567890"), 19, 2, S("0cde"));
- test(S("abcde"), 0, 2, SV("12345678901234567890"), 20, 0, S("cde"));
- test(S("abcde"), 0, 2, SV("12345678901234567890"), 20, 1, S("cde"));
- test(S("abcde"), 0, 2, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcde"), 0, 4, SV(""), 0, 0, S("e"));
- test(S("abcde"), 0, 4, SV(""), 0, 1, S("e"));
- test(S("abcde"), 0, 4, SV(""), 1, 0, S("can't happen"));
- test(S("abcde"), 0, 4, SV("12345"), 0, 0, S("e"));
- test(S("abcde"), 0, 4, SV("12345"), 0, 1, S("1e"));
- test(S("abcde"), 0, 4, SV("12345"), 0, 2, S("12e"));
- test(S("abcde"), 0, 4, SV("12345"), 0, 4, S("1234e"));
- test(S("abcde"), 0, 4, SV("12345"), 0, 5, S("12345e"));
- test(S("abcde"), 0, 4, SV("12345"), 0, 6, S("12345e"));
- test(S("abcde"), 0, 4, SV("12345"), 1, 0, S("e"));
- test(S("abcde"), 0, 4, SV("12345"), 1, 1, S("2e"));
- test(S("abcde"), 0, 4, SV("12345"), 1, 2, S("23e"));
- test(S("abcde"), 0, 4, SV("12345"), 1, 3, S("234e"));
- test(S("abcde"), 0, 4, SV("12345"), 1, 4, S("2345e"));
- test(S("abcde"), 0, 4, SV("12345"), 1, 5, S("2345e"));
- test(S("abcde"), 0, 4, SV("12345"), 2, 0, S("e"));
- test(S("abcde"), 0, 4, SV("12345"), 2, 1, S("3e"));
- test(S("abcde"), 0, 4, SV("12345"), 2, 2, S("34e"));
- test(S("abcde"), 0, 4, SV("12345"), 2, 3, S("345e"));
- test(S("abcde"), 0, 4, SV("12345"), 2, 4, S("345e"));
- test(S("abcde"), 0, 4, SV("12345"), 4, 0, S("e"));
- test(S("abcde"), 0, 4, SV("12345"), 4, 1, S("5e"));
- test(S("abcde"), 0, 4, SV("12345"), 4, 2, S("5e"));
- test(S("abcde"), 0, 4, SV("12345"), 5, 0, S("e"));
- test(S("abcde"), 0, 4, SV("12345"), 5, 1, S("e"));
- test(S("abcde"), 0, 4, SV("12345"), 6, 0, S("can't happen"));
- test(S("abcde"), 0, 4, SV("1234567890"), 0, 0, S("e"));
- test(S("abcde"), 0, 4, SV("1234567890"), 0, 1, S("1e"));
- test(S("abcde"), 0, 4, SV("1234567890"), 0, 5, S("12345e"));
- test(S("abcde"), 0, 4, SV("1234567890"), 0, 9, S("123456789e"));
- test(S("abcde"), 0, 4, SV("1234567890"), 0, 10, S("1234567890e"));
- test(S("abcde"), 0, 4, SV("1234567890"), 0, 11, S("1234567890e"));
- test(S("abcde"), 0, 4, SV("1234567890"), 1, 0, S("e"));
- test(S("abcde"), 0, 4, SV("1234567890"), 1, 1, S("2e"));
- test(S("abcde"), 0, 4, SV("1234567890"), 1, 4, S("2345e"));
- test(S("abcde"), 0, 4, SV("1234567890"), 1, 8, S("23456789e"));
- test(S("abcde"), 0, 4, SV("1234567890"), 1, 9, S("234567890e"));
- test(S("abcde"), 0, 4, SV("1234567890"), 1, 10, S("234567890e"));
- test(S("abcde"), 0, 4, SV("1234567890"), 5, 0, S("e"));
- test(S("abcde"), 0, 4, SV("1234567890"), 5, 1, S("6e"));
- test(S("abcde"), 0, 4, SV("1234567890"), 5, 2, S("67e"));
- test(S("abcde"), 0, 4, SV("1234567890"), 5, 4, S("6789e"));
- test(S("abcde"), 0, 4, SV("1234567890"), 5, 5, S("67890e"));
- test(S("abcde"), 0, 4, SV("1234567890"), 5, 6, S("67890e"));
- test(S("abcde"), 0, 4, SV("1234567890"), 9, 0, S("e"));
- test(S("abcde"), 0, 4, SV("1234567890"), 9, 1, S("0e"));
- test(S("abcde"), 0, 4, SV("1234567890"), 9, 2, S("0e"));
- test(S("abcde"), 0, 4, SV("1234567890"), 10, 0, S("e"));
- test(S("abcde"), 0, 4, SV("1234567890"), 10, 1, S("e"));
- test(S("abcde"), 0, 4, SV("1234567890"), 11, 0, S("can't happen"));
- test(S("abcde"), 0, 4, SV("12345678901234567890"), 0, 0, S("e"));
- test(S("abcde"), 0, 4, SV("12345678901234567890"), 0, 1, S("1e"));
- test(S("abcde"), 0, 4, SV("12345678901234567890"), 0, 10, S("1234567890e"));
- test(S("abcde"), 0, 4, SV("12345678901234567890"), 0, 19, S("1234567890123456789e"));
- test(S("abcde"), 0, 4, SV("12345678901234567890"), 0, 20, S("12345678901234567890e"));
- test(S("abcde"), 0, 4, SV("12345678901234567890"), 0, 21, S("12345678901234567890e"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test4() {
+ test(S("abcde"), 0, 2, SV("1234567890"), 0, 10, S("1234567890cde"));
+ test(S("abcde"), 0, 2, SV("1234567890"), 0, 11, S("1234567890cde"));
+ test(S("abcde"), 0, 2, SV("1234567890"), 1, 0, S("cde"));
+ test(S("abcde"), 0, 2, SV("1234567890"), 1, 1, S("2cde"));
+ test(S("abcde"), 0, 2, SV("1234567890"), 1, 4, S("2345cde"));
+ test(S("abcde"), 0, 2, SV("1234567890"), 1, 8, S("23456789cde"));
+ test(S("abcde"), 0, 2, SV("1234567890"), 1, 9, S("234567890cde"));
+ test(S("abcde"), 0, 2, SV("1234567890"), 1, 10, S("234567890cde"));
+ test(S("abcde"), 0, 2, SV("1234567890"), 5, 0, S("cde"));
+ test(S("abcde"), 0, 2, SV("1234567890"), 5, 1, S("6cde"));
+ test(S("abcde"), 0, 2, SV("1234567890"), 5, 2, S("67cde"));
+ test(S("abcde"), 0, 2, SV("1234567890"), 5, 4, S("6789cde"));
+ test(S("abcde"), 0, 2, SV("1234567890"), 5, 5, S("67890cde"));
+ test(S("abcde"), 0, 2, SV("1234567890"), 5, 6, S("67890cde"));
+ test(S("abcde"), 0, 2, SV("1234567890"), 9, 0, S("cde"));
+ test(S("abcde"), 0, 2, SV("1234567890"), 9, 1, S("0cde"));
+ test(S("abcde"), 0, 2, SV("1234567890"), 9, 2, S("0cde"));
+ test(S("abcde"), 0, 2, SV("1234567890"), 10, 0, S("cde"));
+ test(S("abcde"), 0, 2, SV("1234567890"), 10, 1, S("cde"));
+ test(S("abcde"), 0, 2, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcde"), 0, 2, SV("12345678901234567890"), 0, 0, S("cde"));
+ test(S("abcde"), 0, 2, SV("12345678901234567890"), 0, 1, S("1cde"));
+ test(S("abcde"), 0, 2, SV("12345678901234567890"), 0, 10, S("1234567890cde"));
+ test(S("abcde"), 0, 2, SV("12345678901234567890"), 0, 19, S("1234567890123456789cde"));
+ test(S("abcde"), 0, 2, SV("12345678901234567890"), 0, 20, S("12345678901234567890cde"));
+ test(S("abcde"), 0, 2, SV("12345678901234567890"), 0, 21, S("12345678901234567890cde"));
+ test(S("abcde"), 0, 2, SV("12345678901234567890"), 1, 0, S("cde"));
+ test(S("abcde"), 0, 2, SV("12345678901234567890"), 1, 1, S("2cde"));
+ test(S("abcde"), 0, 2, SV("12345678901234567890"), 1, 9, S("234567890cde"));
+ test(S("abcde"), 0, 2, SV("12345678901234567890"), 1, 18, S("234567890123456789cde"));
+ test(S("abcde"), 0, 2, SV("12345678901234567890"), 1, 19, S("2345678901234567890cde"));
+ test(S("abcde"), 0, 2, SV("12345678901234567890"), 1, 20, S("2345678901234567890cde"));
+ test(S("abcde"), 0, 2, SV("12345678901234567890"), 10, 0, S("cde"));
+ test(S("abcde"), 0, 2, SV("12345678901234567890"), 10, 1, S("1cde"));
+ test(S("abcde"), 0, 2, SV("12345678901234567890"), 10, 5, S("12345cde"));
+ test(S("abcde"), 0, 2, SV("12345678901234567890"), 10, 9, S("123456789cde"));
+ test(S("abcde"), 0, 2, SV("12345678901234567890"), 10, 10, S("1234567890cde"));
+ test(S("abcde"), 0, 2, SV("12345678901234567890"), 10, 11, S("1234567890cde"));
+ test(S("abcde"), 0, 2, SV("12345678901234567890"), 19, 0, S("cde"));
+ test(S("abcde"), 0, 2, SV("12345678901234567890"), 19, 1, S("0cde"));
+ test(S("abcde"), 0, 2, SV("12345678901234567890"), 19, 2, S("0cde"));
+ test(S("abcde"), 0, 2, SV("12345678901234567890"), 20, 0, S("cde"));
+ test(S("abcde"), 0, 2, SV("12345678901234567890"), 20, 1, S("cde"));
+ test(S("abcde"), 0, 2, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcde"), 0, 4, SV(""), 0, 0, S("e"));
+ test(S("abcde"), 0, 4, SV(""), 0, 1, S("e"));
+ test(S("abcde"), 0, 4, SV(""), 1, 0, S("can't happen"));
+ test(S("abcde"), 0, 4, SV("12345"), 0, 0, S("e"));
+ test(S("abcde"), 0, 4, SV("12345"), 0, 1, S("1e"));
+ test(S("abcde"), 0, 4, SV("12345"), 0, 2, S("12e"));
+ test(S("abcde"), 0, 4, SV("12345"), 0, 4, S("1234e"));
+ test(S("abcde"), 0, 4, SV("12345"), 0, 5, S("12345e"));
+ test(S("abcde"), 0, 4, SV("12345"), 0, 6, S("12345e"));
+ test(S("abcde"), 0, 4, SV("12345"), 1, 0, S("e"));
+ test(S("abcde"), 0, 4, SV("12345"), 1, 1, S("2e"));
+ test(S("abcde"), 0, 4, SV("12345"), 1, 2, S("23e"));
+ test(S("abcde"), 0, 4, SV("12345"), 1, 3, S("234e"));
+ test(S("abcde"), 0, 4, SV("12345"), 1, 4, S("2345e"));
+ test(S("abcde"), 0, 4, SV("12345"), 1, 5, S("2345e"));
+ test(S("abcde"), 0, 4, SV("12345"), 2, 0, S("e"));
+ test(S("abcde"), 0, 4, SV("12345"), 2, 1, S("3e"));
+ test(S("abcde"), 0, 4, SV("12345"), 2, 2, S("34e"));
+ test(S("abcde"), 0, 4, SV("12345"), 2, 3, S("345e"));
+ test(S("abcde"), 0, 4, SV("12345"), 2, 4, S("345e"));
+ test(S("abcde"), 0, 4, SV("12345"), 4, 0, S("e"));
+ test(S("abcde"), 0, 4, SV("12345"), 4, 1, S("5e"));
+ test(S("abcde"), 0, 4, SV("12345"), 4, 2, S("5e"));
+ test(S("abcde"), 0, 4, SV("12345"), 5, 0, S("e"));
+ test(S("abcde"), 0, 4, SV("12345"), 5, 1, S("e"));
+ test(S("abcde"), 0, 4, SV("12345"), 6, 0, S("can't happen"));
+ test(S("abcde"), 0, 4, SV("1234567890"), 0, 0, S("e"));
+ test(S("abcde"), 0, 4, SV("1234567890"), 0, 1, S("1e"));
+ test(S("abcde"), 0, 4, SV("1234567890"), 0, 5, S("12345e"));
+ test(S("abcde"), 0, 4, SV("1234567890"), 0, 9, S("123456789e"));
+ test(S("abcde"), 0, 4, SV("1234567890"), 0, 10, S("1234567890e"));
+ test(S("abcde"), 0, 4, SV("1234567890"), 0, 11, S("1234567890e"));
+ test(S("abcde"), 0, 4, SV("1234567890"), 1, 0, S("e"));
+ test(S("abcde"), 0, 4, SV("1234567890"), 1, 1, S("2e"));
+ test(S("abcde"), 0, 4, SV("1234567890"), 1, 4, S("2345e"));
+ test(S("abcde"), 0, 4, SV("1234567890"), 1, 8, S("23456789e"));
+ test(S("abcde"), 0, 4, SV("1234567890"), 1, 9, S("234567890e"));
+ test(S("abcde"), 0, 4, SV("1234567890"), 1, 10, S("234567890e"));
+ test(S("abcde"), 0, 4, SV("1234567890"), 5, 0, S("e"));
+ test(S("abcde"), 0, 4, SV("1234567890"), 5, 1, S("6e"));
+ test(S("abcde"), 0, 4, SV("1234567890"), 5, 2, S("67e"));
+ test(S("abcde"), 0, 4, SV("1234567890"), 5, 4, S("6789e"));
+ test(S("abcde"), 0, 4, SV("1234567890"), 5, 5, S("67890e"));
+ test(S("abcde"), 0, 4, SV("1234567890"), 5, 6, S("67890e"));
+ test(S("abcde"), 0, 4, SV("1234567890"), 9, 0, S("e"));
+ test(S("abcde"), 0, 4, SV("1234567890"), 9, 1, S("0e"));
+ test(S("abcde"), 0, 4, SV("1234567890"), 9, 2, S("0e"));
+ test(S("abcde"), 0, 4, SV("1234567890"), 10, 0, S("e"));
+ test(S("abcde"), 0, 4, SV("1234567890"), 10, 1, S("e"));
+ test(S("abcde"), 0, 4, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcde"), 0, 4, SV("12345678901234567890"), 0, 0, S("e"));
+ test(S("abcde"), 0, 4, SV("12345678901234567890"), 0, 1, S("1e"));
+ test(S("abcde"), 0, 4, SV("12345678901234567890"), 0, 10, S("1234567890e"));
+ test(S("abcde"), 0, 4, SV("12345678901234567890"), 0, 19, S("1234567890123456789e"));
+ test(S("abcde"), 0, 4, SV("12345678901234567890"), 0, 20, S("12345678901234567890e"));
+ test(S("abcde"), 0, 4, SV("12345678901234567890"), 0, 21, S("12345678901234567890e"));
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test5()
-{
- test(S("abcde"), 0, 4, SV("12345678901234567890"), 1, 0, S("e"));
- test(S("abcde"), 0, 4, SV("12345678901234567890"), 1, 1, S("2e"));
- test(S("abcde"), 0, 4, SV("12345678901234567890"), 1, 9, S("234567890e"));
- test(S("abcde"), 0, 4, SV("12345678901234567890"), 1, 18, S("234567890123456789e"));
- test(S("abcde"), 0, 4, SV("12345678901234567890"), 1, 19, S("2345678901234567890e"));
- test(S("abcde"), 0, 4, SV("12345678901234567890"), 1, 20, S("2345678901234567890e"));
- test(S("abcde"), 0, 4, SV("12345678901234567890"), 10, 0, S("e"));
- test(S("abcde"), 0, 4, SV("12345678901234567890"), 10, 1, S("1e"));
- test(S("abcde"), 0, 4, SV("12345678901234567890"), 10, 5, S("12345e"));
- test(S("abcde"), 0, 4, SV("12345678901234567890"), 10, 9, S("123456789e"));
- test(S("abcde"), 0, 4, SV("12345678901234567890"), 10, 10, S("1234567890e"));
- test(S("abcde"), 0, 4, SV("12345678901234567890"), 10, 11, S("1234567890e"));
- test(S("abcde"), 0, 4, SV("12345678901234567890"), 19, 0, S("e"));
- test(S("abcde"), 0, 4, SV("12345678901234567890"), 19, 1, S("0e"));
- test(S("abcde"), 0, 4, SV("12345678901234567890"), 19, 2, S("0e"));
- test(S("abcde"), 0, 4, SV("12345678901234567890"), 20, 0, S("e"));
- test(S("abcde"), 0, 4, SV("12345678901234567890"), 20, 1, S("e"));
- test(S("abcde"), 0, 4, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcde"), 0, 5, SV(""), 0, 0, S(""));
- test(S("abcde"), 0, 5, SV(""), 0, 1, S(""));
- test(S("abcde"), 0, 5, SV(""), 1, 0, S("can't happen"));
- test(S("abcde"), 0, 5, SV("12345"), 0, 0, S(""));
- test(S("abcde"), 0, 5, SV("12345"), 0, 1, S("1"));
- test(S("abcde"), 0, 5, SV("12345"), 0, 2, S("12"));
- test(S("abcde"), 0, 5, SV("12345"), 0, 4, S("1234"));
- test(S("abcde"), 0, 5, SV("12345"), 0, 5, S("12345"));
- test(S("abcde"), 0, 5, SV("12345"), 0, 6, S("12345"));
- test(S("abcde"), 0, 5, SV("12345"), 1, 0, S(""));
- test(S("abcde"), 0, 5, SV("12345"), 1, 1, S("2"));
- test(S("abcde"), 0, 5, SV("12345"), 1, 2, S("23"));
- test(S("abcde"), 0, 5, SV("12345"), 1, 3, S("234"));
- test(S("abcde"), 0, 5, SV("12345"), 1, 4, S("2345"));
- test(S("abcde"), 0, 5, SV("12345"), 1, 5, S("2345"));
- test(S("abcde"), 0, 5, SV("12345"), 2, 0, S(""));
- test(S("abcde"), 0, 5, SV("12345"), 2, 1, S("3"));
- test(S("abcde"), 0, 5, SV("12345"), 2, 2, S("34"));
- test(S("abcde"), 0, 5, SV("12345"), 2, 3, S("345"));
- test(S("abcde"), 0, 5, SV("12345"), 2, 4, S("345"));
- test(S("abcde"), 0, 5, SV("12345"), 4, 0, S(""));
- test(S("abcde"), 0, 5, SV("12345"), 4, 1, S("5"));
- test(S("abcde"), 0, 5, SV("12345"), 4, 2, S("5"));
- test(S("abcde"), 0, 5, SV("12345"), 5, 0, S(""));
- test(S("abcde"), 0, 5, SV("12345"), 5, 1, S(""));
- test(S("abcde"), 0, 5, SV("12345"), 6, 0, S("can't happen"));
- test(S("abcde"), 0, 5, SV("1234567890"), 0, 0, S(""));
- test(S("abcde"), 0, 5, SV("1234567890"), 0, 1, S("1"));
- test(S("abcde"), 0, 5, SV("1234567890"), 0, 5, S("12345"));
- test(S("abcde"), 0, 5, SV("1234567890"), 0, 9, S("123456789"));
- test(S("abcde"), 0, 5, SV("1234567890"), 0, 10, S("1234567890"));
- test(S("abcde"), 0, 5, SV("1234567890"), 0, 11, S("1234567890"));
- test(S("abcde"), 0, 5, SV("1234567890"), 1, 0, S(""));
- test(S("abcde"), 0, 5, SV("1234567890"), 1, 1, S("2"));
- test(S("abcde"), 0, 5, SV("1234567890"), 1, 4, S("2345"));
- test(S("abcde"), 0, 5, SV("1234567890"), 1, 8, S("23456789"));
- test(S("abcde"), 0, 5, SV("1234567890"), 1, 9, S("234567890"));
- test(S("abcde"), 0, 5, SV("1234567890"), 1, 10, S("234567890"));
- test(S("abcde"), 0, 5, SV("1234567890"), 5, 0, S(""));
- test(S("abcde"), 0, 5, SV("1234567890"), 5, 1, S("6"));
- test(S("abcde"), 0, 5, SV("1234567890"), 5, 2, S("67"));
- test(S("abcde"), 0, 5, SV("1234567890"), 5, 4, S("6789"));
- test(S("abcde"), 0, 5, SV("1234567890"), 5, 5, S("67890"));
- test(S("abcde"), 0, 5, SV("1234567890"), 5, 6, S("67890"));
- test(S("abcde"), 0, 5, SV("1234567890"), 9, 0, S(""));
- test(S("abcde"), 0, 5, SV("1234567890"), 9, 1, S("0"));
- test(S("abcde"), 0, 5, SV("1234567890"), 9, 2, S("0"));
- test(S("abcde"), 0, 5, SV("1234567890"), 10, 0, S(""));
- test(S("abcde"), 0, 5, SV("1234567890"), 10, 1, S(""));
- test(S("abcde"), 0, 5, SV("1234567890"), 11, 0, S("can't happen"));
- test(S("abcde"), 0, 5, SV("12345678901234567890"), 0, 0, S(""));
- test(S("abcde"), 0, 5, SV("12345678901234567890"), 0, 1, S("1"));
- test(S("abcde"), 0, 5, SV("12345678901234567890"), 0, 10, S("1234567890"));
- test(S("abcde"), 0, 5, SV("12345678901234567890"), 0, 19, S("1234567890123456789"));
- test(S("abcde"), 0, 5, SV("12345678901234567890"), 0, 20, S("12345678901234567890"));
- test(S("abcde"), 0, 5, SV("12345678901234567890"), 0, 21, S("12345678901234567890"));
- test(S("abcde"), 0, 5, SV("12345678901234567890"), 1, 0, S(""));
- test(S("abcde"), 0, 5, SV("12345678901234567890"), 1, 1, S("2"));
- test(S("abcde"), 0, 5, SV("12345678901234567890"), 1, 9, S("234567890"));
- test(S("abcde"), 0, 5, SV("12345678901234567890"), 1, 18, S("234567890123456789"));
- test(S("abcde"), 0, 5, SV("12345678901234567890"), 1, 19, S("2345678901234567890"));
- test(S("abcde"), 0, 5, SV("12345678901234567890"), 1, 20, S("2345678901234567890"));
- test(S("abcde"), 0, 5, SV("12345678901234567890"), 10, 0, S(""));
- test(S("abcde"), 0, 5, SV("12345678901234567890"), 10, 1, S("1"));
- test(S("abcde"), 0, 5, SV("12345678901234567890"), 10, 5, S("12345"));
- test(S("abcde"), 0, 5, SV("12345678901234567890"), 10, 9, S("123456789"));
- test(S("abcde"), 0, 5, SV("12345678901234567890"), 10, 10, S("1234567890"));
- test(S("abcde"), 0, 5, SV("12345678901234567890"), 10, 11, S("1234567890"));
- test(S("abcde"), 0, 5, SV("12345678901234567890"), 19, 0, S(""));
- test(S("abcde"), 0, 5, SV("12345678901234567890"), 19, 1, S("0"));
- test(S("abcde"), 0, 5, SV("12345678901234567890"), 19, 2, S("0"));
- test(S("abcde"), 0, 5, SV("12345678901234567890"), 20, 0, S(""));
- test(S("abcde"), 0, 5, SV("12345678901234567890"), 20, 1, S(""));
- test(S("abcde"), 0, 5, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcde"), 0, 6, SV(""), 0, 0, S(""));
- test(S("abcde"), 0, 6, SV(""), 0, 1, S(""));
- test(S("abcde"), 0, 6, SV(""), 1, 0, S("can't happen"));
- test(S("abcde"), 0, 6, SV("12345"), 0, 0, S(""));
- test(S("abcde"), 0, 6, SV("12345"), 0, 1, S("1"));
- test(S("abcde"), 0, 6, SV("12345"), 0, 2, S("12"));
- test(S("abcde"), 0, 6, SV("12345"), 0, 4, S("1234"));
- test(S("abcde"), 0, 6, SV("12345"), 0, 5, S("12345"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test5() {
+ test(S("abcde"), 0, 4, SV("12345678901234567890"), 1, 0, S("e"));
+ test(S("abcde"), 0, 4, SV("12345678901234567890"), 1, 1, S("2e"));
+ test(S("abcde"), 0, 4, SV("12345678901234567890"), 1, 9, S("234567890e"));
+ test(S("abcde"), 0, 4, SV("12345678901234567890"), 1, 18, S("234567890123456789e"));
+ test(S("abcde"), 0, 4, SV("12345678901234567890"), 1, 19, S("2345678901234567890e"));
+ test(S("abcde"), 0, 4, SV("12345678901234567890"), 1, 20, S("2345678901234567890e"));
+ test(S("abcde"), 0, 4, SV("12345678901234567890"), 10, 0, S("e"));
+ test(S("abcde"), 0, 4, SV("12345678901234567890"), 10, 1, S("1e"));
+ test(S("abcde"), 0, 4, SV("12345678901234567890"), 10, 5, S("12345e"));
+ test(S("abcde"), 0, 4, SV("12345678901234567890"), 10, 9, S("123456789e"));
+ test(S("abcde"), 0, 4, SV("12345678901234567890"), 10, 10, S("1234567890e"));
+ test(S("abcde"), 0, 4, SV("12345678901234567890"), 10, 11, S("1234567890e"));
+ test(S("abcde"), 0, 4, SV("12345678901234567890"), 19, 0, S("e"));
+ test(S("abcde"), 0, 4, SV("12345678901234567890"), 19, 1, S("0e"));
+ test(S("abcde"), 0, 4, SV("12345678901234567890"), 19, 2, S("0e"));
+ test(S("abcde"), 0, 4, SV("12345678901234567890"), 20, 0, S("e"));
+ test(S("abcde"), 0, 4, SV("12345678901234567890"), 20, 1, S("e"));
+ test(S("abcde"), 0, 4, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcde"), 0, 5, SV(""), 0, 0, S(""));
+ test(S("abcde"), 0, 5, SV(""), 0, 1, S(""));
+ test(S("abcde"), 0, 5, SV(""), 1, 0, S("can't happen"));
+ test(S("abcde"), 0, 5, SV("12345"), 0, 0, S(""));
+ test(S("abcde"), 0, 5, SV("12345"), 0, 1, S("1"));
+ test(S("abcde"), 0, 5, SV("12345"), 0, 2, S("12"));
+ test(S("abcde"), 0, 5, SV("12345"), 0, 4, S("1234"));
+ test(S("abcde"), 0, 5, SV("12345"), 0, 5, S("12345"));
+ test(S("abcde"), 0, 5, SV("12345"), 0, 6, S("12345"));
+ test(S("abcde"), 0, 5, SV("12345"), 1, 0, S(""));
+ test(S("abcde"), 0, 5, SV("12345"), 1, 1, S("2"));
+ test(S("abcde"), 0, 5, SV("12345"), 1, 2, S("23"));
+ test(S("abcde"), 0, 5, SV("12345"), 1, 3, S("234"));
+ test(S("abcde"), 0, 5, SV("12345"), 1, 4, S("2345"));
+ test(S("abcde"), 0, 5, SV("12345"), 1, 5, S("2345"));
+ test(S("abcde"), 0, 5, SV("12345"), 2, 0, S(""));
+ test(S("abcde"), 0, 5, SV("12345"), 2, 1, S("3"));
+ test(S("abcde"), 0, 5, SV("12345"), 2, 2, S("34"));
+ test(S("abcde"), 0, 5, SV("12345"), 2, 3, S("345"));
+ test(S("abcde"), 0, 5, SV("12345"), 2, 4, S("345"));
+ test(S("abcde"), 0, 5, SV("12345"), 4, 0, S(""));
+ test(S("abcde"), 0, 5, SV("12345"), 4, 1, S("5"));
+ test(S("abcde"), 0, 5, SV("12345"), 4, 2, S("5"));
+ test(S("abcde"), 0, 5, SV("12345"), 5, 0, S(""));
+ test(S("abcde"), 0, 5, SV("12345"), 5, 1, S(""));
+ test(S("abcde"), 0, 5, SV("12345"), 6, 0, S("can't happen"));
+ test(S("abcde"), 0, 5, SV("1234567890"), 0, 0, S(""));
+ test(S("abcde"), 0, 5, SV("1234567890"), 0, 1, S("1"));
+ test(S("abcde"), 0, 5, SV("1234567890"), 0, 5, S("12345"));
+ test(S("abcde"), 0, 5, SV("1234567890"), 0, 9, S("123456789"));
+ test(S("abcde"), 0, 5, SV("1234567890"), 0, 10, S("1234567890"));
+ test(S("abcde"), 0, 5, SV("1234567890"), 0, 11, S("1234567890"));
+ test(S("abcde"), 0, 5, SV("1234567890"), 1, 0, S(""));
+ test(S("abcde"), 0, 5, SV("1234567890"), 1, 1, S("2"));
+ test(S("abcde"), 0, 5, SV("1234567890"), 1, 4, S("2345"));
+ test(S("abcde"), 0, 5, SV("1234567890"), 1, 8, S("23456789"));
+ test(S("abcde"), 0, 5, SV("1234567890"), 1, 9, S("234567890"));
+ test(S("abcde"), 0, 5, SV("1234567890"), 1, 10, S("234567890"));
+ test(S("abcde"), 0, 5, SV("1234567890"), 5, 0, S(""));
+ test(S("abcde"), 0, 5, SV("1234567890"), 5, 1, S("6"));
+ test(S("abcde"), 0, 5, SV("1234567890"), 5, 2, S("67"));
+ test(S("abcde"), 0, 5, SV("1234567890"), 5, 4, S("6789"));
+ test(S("abcde"), 0, 5, SV("1234567890"), 5, 5, S("67890"));
+ test(S("abcde"), 0, 5, SV("1234567890"), 5, 6, S("67890"));
+ test(S("abcde"), 0, 5, SV("1234567890"), 9, 0, S(""));
+ test(S("abcde"), 0, 5, SV("1234567890"), 9, 1, S("0"));
+ test(S("abcde"), 0, 5, SV("1234567890"), 9, 2, S("0"));
+ test(S("abcde"), 0, 5, SV("1234567890"), 10, 0, S(""));
+ test(S("abcde"), 0, 5, SV("1234567890"), 10, 1, S(""));
+ test(S("abcde"), 0, 5, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcde"), 0, 5, SV("12345678901234567890"), 0, 0, S(""));
+ test(S("abcde"), 0, 5, SV("12345678901234567890"), 0, 1, S("1"));
+ test(S("abcde"), 0, 5, SV("12345678901234567890"), 0, 10, S("1234567890"));
+ test(S("abcde"), 0, 5, SV("12345678901234567890"), 0, 19, S("1234567890123456789"));
+ test(S("abcde"), 0, 5, SV("12345678901234567890"), 0, 20, S("12345678901234567890"));
+ test(S("abcde"), 0, 5, SV("12345678901234567890"), 0, 21, S("12345678901234567890"));
+ test(S("abcde"), 0, 5, SV("12345678901234567890"), 1, 0, S(""));
+ test(S("abcde"), 0, 5, SV("12345678901234567890"), 1, 1, S("2"));
+ test(S("abcde"), 0, 5, SV("12345678901234567890"), 1, 9, S("234567890"));
+ test(S("abcde"), 0, 5, SV("12345678901234567890"), 1, 18, S("234567890123456789"));
+ test(S("abcde"), 0, 5, SV("12345678901234567890"), 1, 19, S("2345678901234567890"));
+ test(S("abcde"), 0, 5, SV("12345678901234567890"), 1, 20, S("2345678901234567890"));
+ test(S("abcde"), 0, 5, SV("12345678901234567890"), 10, 0, S(""));
+ test(S("abcde"), 0, 5, SV("12345678901234567890"), 10, 1, S("1"));
+ test(S("abcde"), 0, 5, SV("12345678901234567890"), 10, 5, S("12345"));
+ test(S("abcde"), 0, 5, SV("12345678901234567890"), 10, 9, S("123456789"));
+ test(S("abcde"), 0, 5, SV("12345678901234567890"), 10, 10, S("1234567890"));
+ test(S("abcde"), 0, 5, SV("12345678901234567890"), 10, 11, S("1234567890"));
+ test(S("abcde"), 0, 5, SV("12345678901234567890"), 19, 0, S(""));
+ test(S("abcde"), 0, 5, SV("12345678901234567890"), 19, 1, S("0"));
+ test(S("abcde"), 0, 5, SV("12345678901234567890"), 19, 2, S("0"));
+ test(S("abcde"), 0, 5, SV("12345678901234567890"), 20, 0, S(""));
+ test(S("abcde"), 0, 5, SV("12345678901234567890"), 20, 1, S(""));
+ test(S("abcde"), 0, 5, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcde"), 0, 6, SV(""), 0, 0, S(""));
+ test(S("abcde"), 0, 6, SV(""), 0, 1, S(""));
+ test(S("abcde"), 0, 6, SV(""), 1, 0, S("can't happen"));
+ test(S("abcde"), 0, 6, SV("12345"), 0, 0, S(""));
+ test(S("abcde"), 0, 6, SV("12345"), 0, 1, S("1"));
+ test(S("abcde"), 0, 6, SV("12345"), 0, 2, S("12"));
+ test(S("abcde"), 0, 6, SV("12345"), 0, 4, S("1234"));
+ test(S("abcde"), 0, 6, SV("12345"), 0, 5, S("12345"));
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test6()
-{
- test(S("abcde"), 0, 6, SV("12345"), 0, 6, S("12345"));
- test(S("abcde"), 0, 6, SV("12345"), 1, 0, S(""));
- test(S("abcde"), 0, 6, SV("12345"), 1, 1, S("2"));
- test(S("abcde"), 0, 6, SV("12345"), 1, 2, S("23"));
- test(S("abcde"), 0, 6, SV("12345"), 1, 3, S("234"));
- test(S("abcde"), 0, 6, SV("12345"), 1, 4, S("2345"));
- test(S("abcde"), 0, 6, SV("12345"), 1, 5, S("2345"));
- test(S("abcde"), 0, 6, SV("12345"), 2, 0, S(""));
- test(S("abcde"), 0, 6, SV("12345"), 2, 1, S("3"));
- test(S("abcde"), 0, 6, SV("12345"), 2, 2, S("34"));
- test(S("abcde"), 0, 6, SV("12345"), 2, 3, S("345"));
- test(S("abcde"), 0, 6, SV("12345"), 2, 4, S("345"));
- test(S("abcde"), 0, 6, SV("12345"), 4, 0, S(""));
- test(S("abcde"), 0, 6, SV("12345"), 4, 1, S("5"));
- test(S("abcde"), 0, 6, SV("12345"), 4, 2, S("5"));
- test(S("abcde"), 0, 6, SV("12345"), 5, 0, S(""));
- test(S("abcde"), 0, 6, SV("12345"), 5, 1, S(""));
- test(S("abcde"), 0, 6, SV("12345"), 6, 0, S("can't happen"));
- test(S("abcde"), 0, 6, SV("1234567890"), 0, 0, S(""));
- test(S("abcde"), 0, 6, SV("1234567890"), 0, 1, S("1"));
- test(S("abcde"), 0, 6, SV("1234567890"), 0, 5, S("12345"));
- test(S("abcde"), 0, 6, SV("1234567890"), 0, 9, S("123456789"));
- test(S("abcde"), 0, 6, SV("1234567890"), 0, 10, S("1234567890"));
- test(S("abcde"), 0, 6, SV("1234567890"), 0, 11, S("1234567890"));
- test(S("abcde"), 0, 6, SV("1234567890"), 1, 0, S(""));
- test(S("abcde"), 0, 6, SV("1234567890"), 1, 1, S("2"));
- test(S("abcde"), 0, 6, SV("1234567890"), 1, 4, S("2345"));
- test(S("abcde"), 0, 6, SV("1234567890"), 1, 8, S("23456789"));
- test(S("abcde"), 0, 6, SV("1234567890"), 1, 9, S("234567890"));
- test(S("abcde"), 0, 6, SV("1234567890"), 1, 10, S("234567890"));
- test(S("abcde"), 0, 6, SV("1234567890"), 5, 0, S(""));
- test(S("abcde"), 0, 6, SV("1234567890"), 5, 1, S("6"));
- test(S("abcde"), 0, 6, SV("1234567890"), 5, 2, S("67"));
- test(S("abcde"), 0, 6, SV("1234567890"), 5, 4, S("6789"));
- test(S("abcde"), 0, 6, SV("1234567890"), 5, 5, S("67890"));
- test(S("abcde"), 0, 6, SV("1234567890"), 5, 6, S("67890"));
- test(S("abcde"), 0, 6, SV("1234567890"), 9, 0, S(""));
- test(S("abcde"), 0, 6, SV("1234567890"), 9, 1, S("0"));
- test(S("abcde"), 0, 6, SV("1234567890"), 9, 2, S("0"));
- test(S("abcde"), 0, 6, SV("1234567890"), 10, 0, S(""));
- test(S("abcde"), 0, 6, SV("1234567890"), 10, 1, S(""));
- test(S("abcde"), 0, 6, SV("1234567890"), 11, 0, S("can't happen"));
- test(S("abcde"), 0, 6, SV("12345678901234567890"), 0, 0, S(""));
- test(S("abcde"), 0, 6, SV("12345678901234567890"), 0, 1, S("1"));
- test(S("abcde"), 0, 6, SV("12345678901234567890"), 0, 10, S("1234567890"));
- test(S("abcde"), 0, 6, SV("12345678901234567890"), 0, 19, S("1234567890123456789"));
- test(S("abcde"), 0, 6, SV("12345678901234567890"), 0, 20, S("12345678901234567890"));
- test(S("abcde"), 0, 6, SV("12345678901234567890"), 0, 21, S("12345678901234567890"));
- test(S("abcde"), 0, 6, SV("12345678901234567890"), 1, 0, S(""));
- test(S("abcde"), 0, 6, SV("12345678901234567890"), 1, 1, S("2"));
- test(S("abcde"), 0, 6, SV("12345678901234567890"), 1, 9, S("234567890"));
- test(S("abcde"), 0, 6, SV("12345678901234567890"), 1, 18, S("234567890123456789"));
- test(S("abcde"), 0, 6, SV("12345678901234567890"), 1, 19, S("2345678901234567890"));
- test(S("abcde"), 0, 6, SV("12345678901234567890"), 1, 20, S("2345678901234567890"));
- test(S("abcde"), 0, 6, SV("12345678901234567890"), 10, 0, S(""));
- test(S("abcde"), 0, 6, SV("12345678901234567890"), 10, 1, S("1"));
- test(S("abcde"), 0, 6, SV("12345678901234567890"), 10, 5, S("12345"));
- test(S("abcde"), 0, 6, SV("12345678901234567890"), 10, 9, S("123456789"));
- test(S("abcde"), 0, 6, SV("12345678901234567890"), 10, 10, S("1234567890"));
- test(S("abcde"), 0, 6, SV("12345678901234567890"), 10, 11, S("1234567890"));
- test(S("abcde"), 0, 6, SV("12345678901234567890"), 19, 0, S(""));
- test(S("abcde"), 0, 6, SV("12345678901234567890"), 19, 1, S("0"));
- test(S("abcde"), 0, 6, SV("12345678901234567890"), 19, 2, S("0"));
- test(S("abcde"), 0, 6, SV("12345678901234567890"), 20, 0, S(""));
- test(S("abcde"), 0, 6, SV("12345678901234567890"), 20, 1, S(""));
- test(S("abcde"), 0, 6, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcde"), 1, 0, SV(""), 0, 0, S("abcde"));
- test(S("abcde"), 1, 0, SV(""), 0, 1, S("abcde"));
- test(S("abcde"), 1, 0, SV(""), 1, 0, S("can't happen"));
- test(S("abcde"), 1, 0, SV("12345"), 0, 0, S("abcde"));
- test(S("abcde"), 1, 0, SV("12345"), 0, 1, S("a1bcde"));
- test(S("abcde"), 1, 0, SV("12345"), 0, 2, S("a12bcde"));
- test(S("abcde"), 1, 0, SV("12345"), 0, 4, S("a1234bcde"));
- test(S("abcde"), 1, 0, SV("12345"), 0, 5, S("a12345bcde"));
- test(S("abcde"), 1, 0, SV("12345"), 0, 6, S("a12345bcde"));
- test(S("abcde"), 1, 0, SV("12345"), 1, 0, S("abcde"));
- test(S("abcde"), 1, 0, SV("12345"), 1, 1, S("a2bcde"));
- test(S("abcde"), 1, 0, SV("12345"), 1, 2, S("a23bcde"));
- test(S("abcde"), 1, 0, SV("12345"), 1, 3, S("a234bcde"));
- test(S("abcde"), 1, 0, SV("12345"), 1, 4, S("a2345bcde"));
- test(S("abcde"), 1, 0, SV("12345"), 1, 5, S("a2345bcde"));
- test(S("abcde"), 1, 0, SV("12345"), 2, 0, S("abcde"));
- test(S("abcde"), 1, 0, SV("12345"), 2, 1, S("a3bcde"));
- test(S("abcde"), 1, 0, SV("12345"), 2, 2, S("a34bcde"));
- test(S("abcde"), 1, 0, SV("12345"), 2, 3, S("a345bcde"));
- test(S("abcde"), 1, 0, SV("12345"), 2, 4, S("a345bcde"));
- test(S("abcde"), 1, 0, SV("12345"), 4, 0, S("abcde"));
- test(S("abcde"), 1, 0, SV("12345"), 4, 1, S("a5bcde"));
- test(S("abcde"), 1, 0, SV("12345"), 4, 2, S("a5bcde"));
- test(S("abcde"), 1, 0, SV("12345"), 5, 0, S("abcde"));
- test(S("abcde"), 1, 0, SV("12345"), 5, 1, S("abcde"));
- test(S("abcde"), 1, 0, SV("12345"), 6, 0, S("can't happen"));
- test(S("abcde"), 1, 0, SV("1234567890"), 0, 0, S("abcde"));
- test(S("abcde"), 1, 0, SV("1234567890"), 0, 1, S("a1bcde"));
- test(S("abcde"), 1, 0, SV("1234567890"), 0, 5, S("a12345bcde"));
- test(S("abcde"), 1, 0, SV("1234567890"), 0, 9, S("a123456789bcde"));
- test(S("abcde"), 1, 0, SV("1234567890"), 0, 10, S("a1234567890bcde"));
- test(S("abcde"), 1, 0, SV("1234567890"), 0, 11, S("a1234567890bcde"));
- test(S("abcde"), 1, 0, SV("1234567890"), 1, 0, S("abcde"));
- test(S("abcde"), 1, 0, SV("1234567890"), 1, 1, S("a2bcde"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test6() {
+ test(S("abcde"), 0, 6, SV("12345"), 0, 6, S("12345"));
+ test(S("abcde"), 0, 6, SV("12345"), 1, 0, S(""));
+ test(S("abcde"), 0, 6, SV("12345"), 1, 1, S("2"));
+ test(S("abcde"), 0, 6, SV("12345"), 1, 2, S("23"));
+ test(S("abcde"), 0, 6, SV("12345"), 1, 3, S("234"));
+ test(S("abcde"), 0, 6, SV("12345"), 1, 4, S("2345"));
+ test(S("abcde"), 0, 6, SV("12345"), 1, 5, S("2345"));
+ test(S("abcde"), 0, 6, SV("12345"), 2, 0, S(""));
+ test(S("abcde"), 0, 6, SV("12345"), 2, 1, S("3"));
+ test(S("abcde"), 0, 6, SV("12345"), 2, 2, S("34"));
+ test(S("abcde"), 0, 6, SV("12345"), 2, 3, S("345"));
+ test(S("abcde"), 0, 6, SV("12345"), 2, 4, S("345"));
+ test(S("abcde"), 0, 6, SV("12345"), 4, 0, S(""));
+ test(S("abcde"), 0, 6, SV("12345"), 4, 1, S("5"));
+ test(S("abcde"), 0, 6, SV("12345"), 4, 2, S("5"));
+ test(S("abcde"), 0, 6, SV("12345"), 5, 0, S(""));
+ test(S("abcde"), 0, 6, SV("12345"), 5, 1, S(""));
+ test(S("abcde"), 0, 6, SV("12345"), 6, 0, S("can't happen"));
+ test(S("abcde"), 0, 6, SV("1234567890"), 0, 0, S(""));
+ test(S("abcde"), 0, 6, SV("1234567890"), 0, 1, S("1"));
+ test(S("abcde"), 0, 6, SV("1234567890"), 0, 5, S("12345"));
+ test(S("abcde"), 0, 6, SV("1234567890"), 0, 9, S("123456789"));
+ test(S("abcde"), 0, 6, SV("1234567890"), 0, 10, S("1234567890"));
+ test(S("abcde"), 0, 6, SV("1234567890"), 0, 11, S("1234567890"));
+ test(S("abcde"), 0, 6, SV("1234567890"), 1, 0, S(""));
+ test(S("abcde"), 0, 6, SV("1234567890"), 1, 1, S("2"));
+ test(S("abcde"), 0, 6, SV("1234567890"), 1, 4, S("2345"));
+ test(S("abcde"), 0, 6, SV("1234567890"), 1, 8, S("23456789"));
+ test(S("abcde"), 0, 6, SV("1234567890"), 1, 9, S("234567890"));
+ test(S("abcde"), 0, 6, SV("1234567890"), 1, 10, S("234567890"));
+ test(S("abcde"), 0, 6, SV("1234567890"), 5, 0, S(""));
+ test(S("abcde"), 0, 6, SV("1234567890"), 5, 1, S("6"));
+ test(S("abcde"), 0, 6, SV("1234567890"), 5, 2, S("67"));
+ test(S("abcde"), 0, 6, SV("1234567890"), 5, 4, S("6789"));
+ test(S("abcde"), 0, 6, SV("1234567890"), 5, 5, S("67890"));
+ test(S("abcde"), 0, 6, SV("1234567890"), 5, 6, S("67890"));
+ test(S("abcde"), 0, 6, SV("1234567890"), 9, 0, S(""));
+ test(S("abcde"), 0, 6, SV("1234567890"), 9, 1, S("0"));
+ test(S("abcde"), 0, 6, SV("1234567890"), 9, 2, S("0"));
+ test(S("abcde"), 0, 6, SV("1234567890"), 10, 0, S(""));
+ test(S("abcde"), 0, 6, SV("1234567890"), 10, 1, S(""));
+ test(S("abcde"), 0, 6, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcde"), 0, 6, SV("12345678901234567890"), 0, 0, S(""));
+ test(S("abcde"), 0, 6, SV("12345678901234567890"), 0, 1, S("1"));
+ test(S("abcde"), 0, 6, SV("12345678901234567890"), 0, 10, S("1234567890"));
+ test(S("abcde"), 0, 6, SV("12345678901234567890"), 0, 19, S("1234567890123456789"));
+ test(S("abcde"), 0, 6, SV("12345678901234567890"), 0, 20, S("12345678901234567890"));
+ test(S("abcde"), 0, 6, SV("12345678901234567890"), 0, 21, S("12345678901234567890"));
+ test(S("abcde"), 0, 6, SV("12345678901234567890"), 1, 0, S(""));
+ test(S("abcde"), 0, 6, SV("12345678901234567890"), 1, 1, S("2"));
+ test(S("abcde"), 0, 6, SV("12345678901234567890"), 1, 9, S("234567890"));
+ test(S("abcde"), 0, 6, SV("12345678901234567890"), 1, 18, S("234567890123456789"));
+ test(S("abcde"), 0, 6, SV("12345678901234567890"), 1, 19, S("2345678901234567890"));
+ test(S("abcde"), 0, 6, SV("12345678901234567890"), 1, 20, S("2345678901234567890"));
+ test(S("abcde"), 0, 6, SV("12345678901234567890"), 10, 0, S(""));
+ test(S("abcde"), 0, 6, SV("12345678901234567890"), 10, 1, S("1"));
+ test(S("abcde"), 0, 6, SV("12345678901234567890"), 10, 5, S("12345"));
+ test(S("abcde"), 0, 6, SV("12345678901234567890"), 10, 9, S("123456789"));
+ test(S("abcde"), 0, 6, SV("12345678901234567890"), 10, 10, S("1234567890"));
+ test(S("abcde"), 0, 6, SV("12345678901234567890"), 10, 11, S("1234567890"));
+ test(S("abcde"), 0, 6, SV("12345678901234567890"), 19, 0, S(""));
+ test(S("abcde"), 0, 6, SV("12345678901234567890"), 19, 1, S("0"));
+ test(S("abcde"), 0, 6, SV("12345678901234567890"), 19, 2, S("0"));
+ test(S("abcde"), 0, 6, SV("12345678901234567890"), 20, 0, S(""));
+ test(S("abcde"), 0, 6, SV("12345678901234567890"), 20, 1, S(""));
+ test(S("abcde"), 0, 6, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcde"), 1, 0, SV(""), 0, 0, S("abcde"));
+ test(S("abcde"), 1, 0, SV(""), 0, 1, S("abcde"));
+ test(S("abcde"), 1, 0, SV(""), 1, 0, S("can't happen"));
+ test(S("abcde"), 1, 0, SV("12345"), 0, 0, S("abcde"));
+ test(S("abcde"), 1, 0, SV("12345"), 0, 1, S("a1bcde"));
+ test(S("abcde"), 1, 0, SV("12345"), 0, 2, S("a12bcde"));
+ test(S("abcde"), 1, 0, SV("12345"), 0, 4, S("a1234bcde"));
+ test(S("abcde"), 1, 0, SV("12345"), 0, 5, S("a12345bcde"));
+ test(S("abcde"), 1, 0, SV("12345"), 0, 6, S("a12345bcde"));
+ test(S("abcde"), 1, 0, SV("12345"), 1, 0, S("abcde"));
+ test(S("abcde"), 1, 0, SV("12345"), 1, 1, S("a2bcde"));
+ test(S("abcde"), 1, 0, SV("12345"), 1, 2, S("a23bcde"));
+ test(S("abcde"), 1, 0, SV("12345"), 1, 3, S("a234bcde"));
+ test(S("abcde"), 1, 0, SV("12345"), 1, 4, S("a2345bcde"));
+ test(S("abcde"), 1, 0, SV("12345"), 1, 5, S("a2345bcde"));
+ test(S("abcde"), 1, 0, SV("12345"), 2, 0, S("abcde"));
+ test(S("abcde"), 1, 0, SV("12345"), 2, 1, S("a3bcde"));
+ test(S("abcde"), 1, 0, SV("12345"), 2, 2, S("a34bcde"));
+ test(S("abcde"), 1, 0, SV("12345"), 2, 3, S("a345bcde"));
+ test(S("abcde"), 1, 0, SV("12345"), 2, 4, S("a345bcde"));
+ test(S("abcde"), 1, 0, SV("12345"), 4, 0, S("abcde"));
+ test(S("abcde"), 1, 0, SV("12345"), 4, 1, S("a5bcde"));
+ test(S("abcde"), 1, 0, SV("12345"), 4, 2, S("a5bcde"));
+ test(S("abcde"), 1, 0, SV("12345"), 5, 0, S("abcde"));
+ test(S("abcde"), 1, 0, SV("12345"), 5, 1, S("abcde"));
+ test(S("abcde"), 1, 0, SV("12345"), 6, 0, S("can't happen"));
+ test(S("abcde"), 1, 0, SV("1234567890"), 0, 0, S("abcde"));
+ test(S("abcde"), 1, 0, SV("1234567890"), 0, 1, S("a1bcde"));
+ test(S("abcde"), 1, 0, SV("1234567890"), 0, 5, S("a12345bcde"));
+ test(S("abcde"), 1, 0, SV("1234567890"), 0, 9, S("a123456789bcde"));
+ test(S("abcde"), 1, 0, SV("1234567890"), 0, 10, S("a1234567890bcde"));
+ test(S("abcde"), 1, 0, SV("1234567890"), 0, 11, S("a1234567890bcde"));
+ test(S("abcde"), 1, 0, SV("1234567890"), 1, 0, S("abcde"));
+ test(S("abcde"), 1, 0, SV("1234567890"), 1, 1, S("a2bcde"));
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test7()
-{
- test(S("abcde"), 1, 0, SV("1234567890"), 1, 4, S("a2345bcde"));
- test(S("abcde"), 1, 0, SV("1234567890"), 1, 8, S("a23456789bcde"));
- test(S("abcde"), 1, 0, SV("1234567890"), 1, 9, S("a234567890bcde"));
- test(S("abcde"), 1, 0, SV("1234567890"), 1, 10, S("a234567890bcde"));
- test(S("abcde"), 1, 0, SV("1234567890"), 5, 0, S("abcde"));
- test(S("abcde"), 1, 0, SV("1234567890"), 5, 1, S("a6bcde"));
- test(S("abcde"), 1, 0, SV("1234567890"), 5, 2, S("a67bcde"));
- test(S("abcde"), 1, 0, SV("1234567890"), 5, 4, S("a6789bcde"));
- test(S("abcde"), 1, 0, SV("1234567890"), 5, 5, S("a67890bcde"));
- test(S("abcde"), 1, 0, SV("1234567890"), 5, 6, S("a67890bcde"));
- test(S("abcde"), 1, 0, SV("1234567890"), 9, 0, S("abcde"));
- test(S("abcde"), 1, 0, SV("1234567890"), 9, 1, S("a0bcde"));
- test(S("abcde"), 1, 0, SV("1234567890"), 9, 2, S("a0bcde"));
- test(S("abcde"), 1, 0, SV("1234567890"), 10, 0, S("abcde"));
- test(S("abcde"), 1, 0, SV("1234567890"), 10, 1, S("abcde"));
- test(S("abcde"), 1, 0, SV("1234567890"), 11, 0, S("can't happen"));
- test(S("abcde"), 1, 0, SV("12345678901234567890"), 0, 0, S("abcde"));
- test(S("abcde"), 1, 0, SV("12345678901234567890"), 0, 1, S("a1bcde"));
- test(S("abcde"), 1, 0, SV("12345678901234567890"), 0, 10, S("a1234567890bcde"));
- test(S("abcde"), 1, 0, SV("12345678901234567890"), 0, 19, S("a1234567890123456789bcde"));
- test(S("abcde"), 1, 0, SV("12345678901234567890"), 0, 20, S("a12345678901234567890bcde"));
- test(S("abcde"), 1, 0, SV("12345678901234567890"), 0, 21, S("a12345678901234567890bcde"));
- test(S("abcde"), 1, 0, SV("12345678901234567890"), 1, 0, S("abcde"));
- test(S("abcde"), 1, 0, SV("12345678901234567890"), 1, 1, S("a2bcde"));
- test(S("abcde"), 1, 0, SV("12345678901234567890"), 1, 9, S("a234567890bcde"));
- test(S("abcde"), 1, 0, SV("12345678901234567890"), 1, 18, S("a234567890123456789bcde"));
- test(S("abcde"), 1, 0, SV("12345678901234567890"), 1, 19, S("a2345678901234567890bcde"));
- test(S("abcde"), 1, 0, SV("12345678901234567890"), 1, 20, S("a2345678901234567890bcde"));
- test(S("abcde"), 1, 0, SV("12345678901234567890"), 10, 0, S("abcde"));
- test(S("abcde"), 1, 0, SV("12345678901234567890"), 10, 1, S("a1bcde"));
- test(S("abcde"), 1, 0, SV("12345678901234567890"), 10, 5, S("a12345bcde"));
- test(S("abcde"), 1, 0, SV("12345678901234567890"), 10, 9, S("a123456789bcde"));
- test(S("abcde"), 1, 0, SV("12345678901234567890"), 10, 10, S("a1234567890bcde"));
- test(S("abcde"), 1, 0, SV("12345678901234567890"), 10, 11, S("a1234567890bcde"));
- test(S("abcde"), 1, 0, SV("12345678901234567890"), 19, 0, S("abcde"));
- test(S("abcde"), 1, 0, SV("12345678901234567890"), 19, 1, S("a0bcde"));
- test(S("abcde"), 1, 0, SV("12345678901234567890"), 19, 2, S("a0bcde"));
- test(S("abcde"), 1, 0, SV("12345678901234567890"), 20, 0, S("abcde"));
- test(S("abcde"), 1, 0, SV("12345678901234567890"), 20, 1, S("abcde"));
- test(S("abcde"), 1, 0, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcde"), 1, 1, SV(""), 0, 0, S("acde"));
- test(S("abcde"), 1, 1, SV(""), 0, 1, S("acde"));
- test(S("abcde"), 1, 1, SV(""), 1, 0, S("can't happen"));
- test(S("abcde"), 1, 1, SV("12345"), 0, 0, S("acde"));
- test(S("abcde"), 1, 1, SV("12345"), 0, 1, S("a1cde"));
- test(S("abcde"), 1, 1, SV("12345"), 0, 2, S("a12cde"));
- test(S("abcde"), 1, 1, SV("12345"), 0, 4, S("a1234cde"));
- test(S("abcde"), 1, 1, SV("12345"), 0, 5, S("a12345cde"));
- test(S("abcde"), 1, 1, SV("12345"), 0, 6, S("a12345cde"));
- test(S("abcde"), 1, 1, SV("12345"), 1, 0, S("acde"));
- test(S("abcde"), 1, 1, SV("12345"), 1, 1, S("a2cde"));
- test(S("abcde"), 1, 1, SV("12345"), 1, 2, S("a23cde"));
- test(S("abcde"), 1, 1, SV("12345"), 1, 3, S("a234cde"));
- test(S("abcde"), 1, 1, SV("12345"), 1, 4, S("a2345cde"));
- test(S("abcde"), 1, 1, SV("12345"), 1, 5, S("a2345cde"));
- test(S("abcde"), 1, 1, SV("12345"), 2, 0, S("acde"));
- test(S("abcde"), 1, 1, SV("12345"), 2, 1, S("a3cde"));
- test(S("abcde"), 1, 1, SV("12345"), 2, 2, S("a34cde"));
- test(S("abcde"), 1, 1, SV("12345"), 2, 3, S("a345cde"));
- test(S("abcde"), 1, 1, SV("12345"), 2, 4, S("a345cde"));
- test(S("abcde"), 1, 1, SV("12345"), 4, 0, S("acde"));
- test(S("abcde"), 1, 1, SV("12345"), 4, 1, S("a5cde"));
- test(S("abcde"), 1, 1, SV("12345"), 4, 2, S("a5cde"));
- test(S("abcde"), 1, 1, SV("12345"), 5, 0, S("acde"));
- test(S("abcde"), 1, 1, SV("12345"), 5, 1, S("acde"));
- test(S("abcde"), 1, 1, SV("12345"), 6, 0, S("can't happen"));
- test(S("abcde"), 1, 1, SV("1234567890"), 0, 0, S("acde"));
- test(S("abcde"), 1, 1, SV("1234567890"), 0, 1, S("a1cde"));
- test(S("abcde"), 1, 1, SV("1234567890"), 0, 5, S("a12345cde"));
- test(S("abcde"), 1, 1, SV("1234567890"), 0, 9, S("a123456789cde"));
- test(S("abcde"), 1, 1, SV("1234567890"), 0, 10, S("a1234567890cde"));
- test(S("abcde"), 1, 1, SV("1234567890"), 0, 11, S("a1234567890cde"));
- test(S("abcde"), 1, 1, SV("1234567890"), 1, 0, S("acde"));
- test(S("abcde"), 1, 1, SV("1234567890"), 1, 1, S("a2cde"));
- test(S("abcde"), 1, 1, SV("1234567890"), 1, 4, S("a2345cde"));
- test(S("abcde"), 1, 1, SV("1234567890"), 1, 8, S("a23456789cde"));
- test(S("abcde"), 1, 1, SV("1234567890"), 1, 9, S("a234567890cde"));
- test(S("abcde"), 1, 1, SV("1234567890"), 1, 10, S("a234567890cde"));
- test(S("abcde"), 1, 1, SV("1234567890"), 5, 0, S("acde"));
- test(S("abcde"), 1, 1, SV("1234567890"), 5, 1, S("a6cde"));
- test(S("abcde"), 1, 1, SV("1234567890"), 5, 2, S("a67cde"));
- test(S("abcde"), 1, 1, SV("1234567890"), 5, 4, S("a6789cde"));
- test(S("abcde"), 1, 1, SV("1234567890"), 5, 5, S("a67890cde"));
- test(S("abcde"), 1, 1, SV("1234567890"), 5, 6, S("a67890cde"));
- test(S("abcde"), 1, 1, SV("1234567890"), 9, 0, S("acde"));
- test(S("abcde"), 1, 1, SV("1234567890"), 9, 1, S("a0cde"));
- test(S("abcde"), 1, 1, SV("1234567890"), 9, 2, S("a0cde"));
- test(S("abcde"), 1, 1, SV("1234567890"), 10, 0, S("acde"));
- test(S("abcde"), 1, 1, SV("1234567890"), 10, 1, S("acde"));
- test(S("abcde"), 1, 1, SV("1234567890"), 11, 0, S("can't happen"));
- test(S("abcde"), 1, 1, SV("12345678901234567890"), 0, 0, S("acde"));
- test(S("abcde"), 1, 1, SV("12345678901234567890"), 0, 1, S("a1cde"));
- test(S("abcde"), 1, 1, SV("12345678901234567890"), 0, 10, S("a1234567890cde"));
- test(S("abcde"), 1, 1, SV("12345678901234567890"), 0, 19, S("a1234567890123456789cde"));
- test(S("abcde"), 1, 1, SV("12345678901234567890"), 0, 20, S("a12345678901234567890cde"));
- test(S("abcde"), 1, 1, SV("12345678901234567890"), 0, 21, S("a12345678901234567890cde"));
- test(S("abcde"), 1, 1, SV("12345678901234567890"), 1, 0, S("acde"));
- test(S("abcde"), 1, 1, SV("12345678901234567890"), 1, 1, S("a2cde"));
- test(S("abcde"), 1, 1, SV("12345678901234567890"), 1, 9, S("a234567890cde"));
- test(S("abcde"), 1, 1, SV("12345678901234567890"), 1, 18, S("a234567890123456789cde"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test7() {
+ test(S("abcde"), 1, 0, SV("1234567890"), 1, 4, S("a2345bcde"));
+ test(S("abcde"), 1, 0, SV("1234567890"), 1, 8, S("a23456789bcde"));
+ test(S("abcde"), 1, 0, SV("1234567890"), 1, 9, S("a234567890bcde"));
+ test(S("abcde"), 1, 0, SV("1234567890"), 1, 10, S("a234567890bcde"));
+ test(S("abcde"), 1, 0, SV("1234567890"), 5, 0, S("abcde"));
+ test(S("abcde"), 1, 0, SV("1234567890"), 5, 1, S("a6bcde"));
+ test(S("abcde"), 1, 0, SV("1234567890"), 5, 2, S("a67bcde"));
+ test(S("abcde"), 1, 0, SV("1234567890"), 5, 4, S("a6789bcde"));
+ test(S("abcde"), 1, 0, SV("1234567890"), 5, 5, S("a67890bcde"));
+ test(S("abcde"), 1, 0, SV("1234567890"), 5, 6, S("a67890bcde"));
+ test(S("abcde"), 1, 0, SV("1234567890"), 9, 0, S("abcde"));
+ test(S("abcde"), 1, 0, SV("1234567890"), 9, 1, S("a0bcde"));
+ test(S("abcde"), 1, 0, SV("1234567890"), 9, 2, S("a0bcde"));
+ test(S("abcde"), 1, 0, SV("1234567890"), 10, 0, S("abcde"));
+ test(S("abcde"), 1, 0, SV("1234567890"), 10, 1, S("abcde"));
+ test(S("abcde"), 1, 0, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcde"), 1, 0, SV("12345678901234567890"), 0, 0, S("abcde"));
+ test(S("abcde"), 1, 0, SV("12345678901234567890"), 0, 1, S("a1bcde"));
+ test(S("abcde"), 1, 0, SV("12345678901234567890"), 0, 10, S("a1234567890bcde"));
+ test(S("abcde"), 1, 0, SV("12345678901234567890"), 0, 19, S("a1234567890123456789bcde"));
+ test(S("abcde"), 1, 0, SV("12345678901234567890"), 0, 20, S("a12345678901234567890bcde"));
+ test(S("abcde"), 1, 0, SV("12345678901234567890"), 0, 21, S("a12345678901234567890bcde"));
+ test(S("abcde"), 1, 0, SV("12345678901234567890"), 1, 0, S("abcde"));
+ test(S("abcde"), 1, 0, SV("12345678901234567890"), 1, 1, S("a2bcde"));
+ test(S("abcde"), 1, 0, SV("12345678901234567890"), 1, 9, S("a234567890bcde"));
+ test(S("abcde"), 1, 0, SV("12345678901234567890"), 1, 18, S("a234567890123456789bcde"));
+ test(S("abcde"), 1, 0, SV("12345678901234567890"), 1, 19, S("a2345678901234567890bcde"));
+ test(S("abcde"), 1, 0, SV("12345678901234567890"), 1, 20, S("a2345678901234567890bcde"));
+ test(S("abcde"), 1, 0, SV("12345678901234567890"), 10, 0, S("abcde"));
+ test(S("abcde"), 1, 0, SV("12345678901234567890"), 10, 1, S("a1bcde"));
+ test(S("abcde"), 1, 0, SV("12345678901234567890"), 10, 5, S("a12345bcde"));
+ test(S("abcde"), 1, 0, SV("12345678901234567890"), 10, 9, S("a123456789bcde"));
+ test(S("abcde"), 1, 0, SV("12345678901234567890"), 10, 10, S("a1234567890bcde"));
+ test(S("abcde"), 1, 0, SV("12345678901234567890"), 10, 11, S("a1234567890bcde"));
+ test(S("abcde"), 1, 0, SV("12345678901234567890"), 19, 0, S("abcde"));
+ test(S("abcde"), 1, 0, SV("12345678901234567890"), 19, 1, S("a0bcde"));
+ test(S("abcde"), 1, 0, SV("12345678901234567890"), 19, 2, S("a0bcde"));
+ test(S("abcde"), 1, 0, SV("12345678901234567890"), 20, 0, S("abcde"));
+ test(S("abcde"), 1, 0, SV("12345678901234567890"), 20, 1, S("abcde"));
+ test(S("abcde"), 1, 0, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcde"), 1, 1, SV(""), 0, 0, S("acde"));
+ test(S("abcde"), 1, 1, SV(""), 0, 1, S("acde"));
+ test(S("abcde"), 1, 1, SV(""), 1, 0, S("can't happen"));
+ test(S("abcde"), 1, 1, SV("12345"), 0, 0, S("acde"));
+ test(S("abcde"), 1, 1, SV("12345"), 0, 1, S("a1cde"));
+ test(S("abcde"), 1, 1, SV("12345"), 0, 2, S("a12cde"));
+ test(S("abcde"), 1, 1, SV("12345"), 0, 4, S("a1234cde"));
+ test(S("abcde"), 1, 1, SV("12345"), 0, 5, S("a12345cde"));
+ test(S("abcde"), 1, 1, SV("12345"), 0, 6, S("a12345cde"));
+ test(S("abcde"), 1, 1, SV("12345"), 1, 0, S("acde"));
+ test(S("abcde"), 1, 1, SV("12345"), 1, 1, S("a2cde"));
+ test(S("abcde"), 1, 1, SV("12345"), 1, 2, S("a23cde"));
+ test(S("abcde"), 1, 1, SV("12345"), 1, 3, S("a234cde"));
+ test(S("abcde"), 1, 1, SV("12345"), 1, 4, S("a2345cde"));
+ test(S("abcde"), 1, 1, SV("12345"), 1, 5, S("a2345cde"));
+ test(S("abcde"), 1, 1, SV("12345"), 2, 0, S("acde"));
+ test(S("abcde"), 1, 1, SV("12345"), 2, 1, S("a3cde"));
+ test(S("abcde"), 1, 1, SV("12345"), 2, 2, S("a34cde"));
+ test(S("abcde"), 1, 1, SV("12345"), 2, 3, S("a345cde"));
+ test(S("abcde"), 1, 1, SV("12345"), 2, 4, S("a345cde"));
+ test(S("abcde"), 1, 1, SV("12345"), 4, 0, S("acde"));
+ test(S("abcde"), 1, 1, SV("12345"), 4, 1, S("a5cde"));
+ test(S("abcde"), 1, 1, SV("12345"), 4, 2, S("a5cde"));
+ test(S("abcde"), 1, 1, SV("12345"), 5, 0, S("acde"));
+ test(S("abcde"), 1, 1, SV("12345"), 5, 1, S("acde"));
+ test(S("abcde"), 1, 1, SV("12345"), 6, 0, S("can't happen"));
+ test(S("abcde"), 1, 1, SV("1234567890"), 0, 0, S("acde"));
+ test(S("abcde"), 1, 1, SV("1234567890"), 0, 1, S("a1cde"));
+ test(S("abcde"), 1, 1, SV("1234567890"), 0, 5, S("a12345cde"));
+ test(S("abcde"), 1, 1, SV("1234567890"), 0, 9, S("a123456789cde"));
+ test(S("abcde"), 1, 1, SV("1234567890"), 0, 10, S("a1234567890cde"));
+ test(S("abcde"), 1, 1, SV("1234567890"), 0, 11, S("a1234567890cde"));
+ test(S("abcde"), 1, 1, SV("1234567890"), 1, 0, S("acde"));
+ test(S("abcde"), 1, 1, SV("1234567890"), 1, 1, S("a2cde"));
+ test(S("abcde"), 1, 1, SV("1234567890"), 1, 4, S("a2345cde"));
+ test(S("abcde"), 1, 1, SV("1234567890"), 1, 8, S("a23456789cde"));
+ test(S("abcde"), 1, 1, SV("1234567890"), 1, 9, S("a234567890cde"));
+ test(S("abcde"), 1, 1, SV("1234567890"), 1, 10, S("a234567890cde"));
+ test(S("abcde"), 1, 1, SV("1234567890"), 5, 0, S("acde"));
+ test(S("abcde"), 1, 1, SV("1234567890"), 5, 1, S("a6cde"));
+ test(S("abcde"), 1, 1, SV("1234567890"), 5, 2, S("a67cde"));
+ test(S("abcde"), 1, 1, SV("1234567890"), 5, 4, S("a6789cde"));
+ test(S("abcde"), 1, 1, SV("1234567890"), 5, 5, S("a67890cde"));
+ test(S("abcde"), 1, 1, SV("1234567890"), 5, 6, S("a67890cde"));
+ test(S("abcde"), 1, 1, SV("1234567890"), 9, 0, S("acde"));
+ test(S("abcde"), 1, 1, SV("1234567890"), 9, 1, S("a0cde"));
+ test(S("abcde"), 1, 1, SV("1234567890"), 9, 2, S("a0cde"));
+ test(S("abcde"), 1, 1, SV("1234567890"), 10, 0, S("acde"));
+ test(S("abcde"), 1, 1, SV("1234567890"), 10, 1, S("acde"));
+ test(S("abcde"), 1, 1, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcde"), 1, 1, SV("12345678901234567890"), 0, 0, S("acde"));
+ test(S("abcde"), 1, 1, SV("12345678901234567890"), 0, 1, S("a1cde"));
+ test(S("abcde"), 1, 1, SV("12345678901234567890"), 0, 10, S("a1234567890cde"));
+ test(S("abcde"), 1, 1, SV("12345678901234567890"), 0, 19, S("a1234567890123456789cde"));
+ test(S("abcde"), 1, 1, SV("12345678901234567890"), 0, 20, S("a12345678901234567890cde"));
+ test(S("abcde"), 1, 1, SV("12345678901234567890"), 0, 21, S("a12345678901234567890cde"));
+ test(S("abcde"), 1, 1, SV("12345678901234567890"), 1, 0, S("acde"));
+ test(S("abcde"), 1, 1, SV("12345678901234567890"), 1, 1, S("a2cde"));
+ test(S("abcde"), 1, 1, SV("12345678901234567890"), 1, 9, S("a234567890cde"));
+ test(S("abcde"), 1, 1, SV("12345678901234567890"), 1, 18, S("a234567890123456789cde"));
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test8()
-{
- test(S("abcde"), 1, 1, SV("12345678901234567890"), 1, 19, S("a2345678901234567890cde"));
- test(S("abcde"), 1, 1, SV("12345678901234567890"), 1, 20, S("a2345678901234567890cde"));
- test(S("abcde"), 1, 1, SV("12345678901234567890"), 10, 0, S("acde"));
- test(S("abcde"), 1, 1, SV("12345678901234567890"), 10, 1, S("a1cde"));
- test(S("abcde"), 1, 1, SV("12345678901234567890"), 10, 5, S("a12345cde"));
- test(S("abcde"), 1, 1, SV("12345678901234567890"), 10, 9, S("a123456789cde"));
- test(S("abcde"), 1, 1, SV("12345678901234567890"), 10, 10, S("a1234567890cde"));
- test(S("abcde"), 1, 1, SV("12345678901234567890"), 10, 11, S("a1234567890cde"));
- test(S("abcde"), 1, 1, SV("12345678901234567890"), 19, 0, S("acde"));
- test(S("abcde"), 1, 1, SV("12345678901234567890"), 19, 1, S("a0cde"));
- test(S("abcde"), 1, 1, SV("12345678901234567890"), 19, 2, S("a0cde"));
- test(S("abcde"), 1, 1, SV("12345678901234567890"), 20, 0, S("acde"));
- test(S("abcde"), 1, 1, SV("12345678901234567890"), 20, 1, S("acde"));
- test(S("abcde"), 1, 1, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcde"), 1, 2, SV(""), 0, 0, S("ade"));
- test(S("abcde"), 1, 2, SV(""), 0, 1, S("ade"));
- test(S("abcde"), 1, 2, SV(""), 1, 0, S("can't happen"));
- test(S("abcde"), 1, 2, SV("12345"), 0, 0, S("ade"));
- test(S("abcde"), 1, 2, SV("12345"), 0, 1, S("a1de"));
- test(S("abcde"), 1, 2, SV("12345"), 0, 2, S("a12de"));
- test(S("abcde"), 1, 2, SV("12345"), 0, 4, S("a1234de"));
- test(S("abcde"), 1, 2, SV("12345"), 0, 5, S("a12345de"));
- test(S("abcde"), 1, 2, SV("12345"), 0, 6, S("a12345de"));
- test(S("abcde"), 1, 2, SV("12345"), 1, 0, S("ade"));
- test(S("abcde"), 1, 2, SV("12345"), 1, 1, S("a2de"));
- test(S("abcde"), 1, 2, SV("12345"), 1, 2, S("a23de"));
- test(S("abcde"), 1, 2, SV("12345"), 1, 3, S("a234de"));
- test(S("abcde"), 1, 2, SV("12345"), 1, 4, S("a2345de"));
- test(S("abcde"), 1, 2, SV("12345"), 1, 5, S("a2345de"));
- test(S("abcde"), 1, 2, SV("12345"), 2, 0, S("ade"));
- test(S("abcde"), 1, 2, SV("12345"), 2, 1, S("a3de"));
- test(S("abcde"), 1, 2, SV("12345"), 2, 2, S("a34de"));
- test(S("abcde"), 1, 2, SV("12345"), 2, 3, S("a345de"));
- test(S("abcde"), 1, 2, SV("12345"), 2, 4, S("a345de"));
- test(S("abcde"), 1, 2, SV("12345"), 4, 0, S("ade"));
- test(S("abcde"), 1, 2, SV("12345"), 4, 1, S("a5de"));
- test(S("abcde"), 1, 2, SV("12345"), 4, 2, S("a5de"));
- test(S("abcde"), 1, 2, SV("12345"), 5, 0, S("ade"));
- test(S("abcde"), 1, 2, SV("12345"), 5, 1, S("ade"));
- test(S("abcde"), 1, 2, SV("12345"), 6, 0, S("can't happen"));
- test(S("abcde"), 1, 2, SV("1234567890"), 0, 0, S("ade"));
- test(S("abcde"), 1, 2, SV("1234567890"), 0, 1, S("a1de"));
- test(S("abcde"), 1, 2, SV("1234567890"), 0, 5, S("a12345de"));
- test(S("abcde"), 1, 2, SV("1234567890"), 0, 9, S("a123456789de"));
- test(S("abcde"), 1, 2, SV("1234567890"), 0, 10, S("a1234567890de"));
- test(S("abcde"), 1, 2, SV("1234567890"), 0, 11, S("a1234567890de"));
- test(S("abcde"), 1, 2, SV("1234567890"), 1, 0, S("ade"));
- test(S("abcde"), 1, 2, SV("1234567890"), 1, 1, S("a2de"));
- test(S("abcde"), 1, 2, SV("1234567890"), 1, 4, S("a2345de"));
- test(S("abcde"), 1, 2, SV("1234567890"), 1, 8, S("a23456789de"));
- test(S("abcde"), 1, 2, SV("1234567890"), 1, 9, S("a234567890de"));
- test(S("abcde"), 1, 2, SV("1234567890"), 1, 10, S("a234567890de"));
- test(S("abcde"), 1, 2, SV("1234567890"), 5, 0, S("ade"));
- test(S("abcde"), 1, 2, SV("1234567890"), 5, 1, S("a6de"));
- test(S("abcde"), 1, 2, SV("1234567890"), 5, 2, S("a67de"));
- test(S("abcde"), 1, 2, SV("1234567890"), 5, 4, S("a6789de"));
- test(S("abcde"), 1, 2, SV("1234567890"), 5, 5, S("a67890de"));
- test(S("abcde"), 1, 2, SV("1234567890"), 5, 6, S("a67890de"));
- test(S("abcde"), 1, 2, SV("1234567890"), 9, 0, S("ade"));
- test(S("abcde"), 1, 2, SV("1234567890"), 9, 1, S("a0de"));
- test(S("abcde"), 1, 2, SV("1234567890"), 9, 2, S("a0de"));
- test(S("abcde"), 1, 2, SV("1234567890"), 10, 0, S("ade"));
- test(S("abcde"), 1, 2, SV("1234567890"), 10, 1, S("ade"));
- test(S("abcde"), 1, 2, SV("1234567890"), 11, 0, S("can't happen"));
- test(S("abcde"), 1, 2, SV("12345678901234567890"), 0, 0, S("ade"));
- test(S("abcde"), 1, 2, SV("12345678901234567890"), 0, 1, S("a1de"));
- test(S("abcde"), 1, 2, SV("12345678901234567890"), 0, 10, S("a1234567890de"));
- test(S("abcde"), 1, 2, SV("12345678901234567890"), 0, 19, S("a1234567890123456789de"));
- test(S("abcde"), 1, 2, SV("12345678901234567890"), 0, 20, S("a12345678901234567890de"));
- test(S("abcde"), 1, 2, SV("12345678901234567890"), 0, 21, S("a12345678901234567890de"));
- test(S("abcde"), 1, 2, SV("12345678901234567890"), 1, 0, S("ade"));
- test(S("abcde"), 1, 2, SV("12345678901234567890"), 1, 1, S("a2de"));
- test(S("abcde"), 1, 2, SV("12345678901234567890"), 1, 9, S("a234567890de"));
- test(S("abcde"), 1, 2, SV("12345678901234567890"), 1, 18, S("a234567890123456789de"));
- test(S("abcde"), 1, 2, SV("12345678901234567890"), 1, 19, S("a2345678901234567890de"));
- test(S("abcde"), 1, 2, SV("12345678901234567890"), 1, 20, S("a2345678901234567890de"));
- test(S("abcde"), 1, 2, SV("12345678901234567890"), 10, 0, S("ade"));
- test(S("abcde"), 1, 2, SV("12345678901234567890"), 10, 1, S("a1de"));
- test(S("abcde"), 1, 2, SV("12345678901234567890"), 10, 5, S("a12345de"));
- test(S("abcde"), 1, 2, SV("12345678901234567890"), 10, 9, S("a123456789de"));
- test(S("abcde"), 1, 2, SV("12345678901234567890"), 10, 10, S("a1234567890de"));
- test(S("abcde"), 1, 2, SV("12345678901234567890"), 10, 11, S("a1234567890de"));
- test(S("abcde"), 1, 2, SV("12345678901234567890"), 19, 0, S("ade"));
- test(S("abcde"), 1, 2, SV("12345678901234567890"), 19, 1, S("a0de"));
- test(S("abcde"), 1, 2, SV("12345678901234567890"), 19, 2, S("a0de"));
- test(S("abcde"), 1, 2, SV("12345678901234567890"), 20, 0, S("ade"));
- test(S("abcde"), 1, 2, SV("12345678901234567890"), 20, 1, S("ade"));
- test(S("abcde"), 1, 2, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcde"), 1, 3, SV(""), 0, 0, S("ae"));
- test(S("abcde"), 1, 3, SV(""), 0, 1, S("ae"));
- test(S("abcde"), 1, 3, SV(""), 1, 0, S("can't happen"));
- test(S("abcde"), 1, 3, SV("12345"), 0, 0, S("ae"));
- test(S("abcde"), 1, 3, SV("12345"), 0, 1, S("a1e"));
- test(S("abcde"), 1, 3, SV("12345"), 0, 2, S("a12e"));
- test(S("abcde"), 1, 3, SV("12345"), 0, 4, S("a1234e"));
- test(S("abcde"), 1, 3, SV("12345"), 0, 5, S("a12345e"));
- test(S("abcde"), 1, 3, SV("12345"), 0, 6, S("a12345e"));
- test(S("abcde"), 1, 3, SV("12345"), 1, 0, S("ae"));
- test(S("abcde"), 1, 3, SV("12345"), 1, 1, S("a2e"));
- test(S("abcde"), 1, 3, SV("12345"), 1, 2, S("a23e"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test8() {
+ test(S("abcde"), 1, 1, SV("12345678901234567890"), 1, 19, S("a2345678901234567890cde"));
+ test(S("abcde"), 1, 1, SV("12345678901234567890"), 1, 20, S("a2345678901234567890cde"));
+ test(S("abcde"), 1, 1, SV("12345678901234567890"), 10, 0, S("acde"));
+ test(S("abcde"), 1, 1, SV("12345678901234567890"), 10, 1, S("a1cde"));
+ test(S("abcde"), 1, 1, SV("12345678901234567890"), 10, 5, S("a12345cde"));
+ test(S("abcde"), 1, 1, SV("12345678901234567890"), 10, 9, S("a123456789cde"));
+ test(S("abcde"), 1, 1, SV("12345678901234567890"), 10, 10, S("a1234567890cde"));
+ test(S("abcde"), 1, 1, SV("12345678901234567890"), 10, 11, S("a1234567890cde"));
+ test(S("abcde"), 1, 1, SV("12345678901234567890"), 19, 0, S("acde"));
+ test(S("abcde"), 1, 1, SV("12345678901234567890"), 19, 1, S("a0cde"));
+ test(S("abcde"), 1, 1, SV("12345678901234567890"), 19, 2, S("a0cde"));
+ test(S("abcde"), 1, 1, SV("12345678901234567890"), 20, 0, S("acde"));
+ test(S("abcde"), 1, 1, SV("12345678901234567890"), 20, 1, S("acde"));
+ test(S("abcde"), 1, 1, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcde"), 1, 2, SV(""), 0, 0, S("ade"));
+ test(S("abcde"), 1, 2, SV(""), 0, 1, S("ade"));
+ test(S("abcde"), 1, 2, SV(""), 1, 0, S("can't happen"));
+ test(S("abcde"), 1, 2, SV("12345"), 0, 0, S("ade"));
+ test(S("abcde"), 1, 2, SV("12345"), 0, 1, S("a1de"));
+ test(S("abcde"), 1, 2, SV("12345"), 0, 2, S("a12de"));
+ test(S("abcde"), 1, 2, SV("12345"), 0, 4, S("a1234de"));
+ test(S("abcde"), 1, 2, SV("12345"), 0, 5, S("a12345de"));
+ test(S("abcde"), 1, 2, SV("12345"), 0, 6, S("a12345de"));
+ test(S("abcde"), 1, 2, SV("12345"), 1, 0, S("ade"));
+ test(S("abcde"), 1, 2, SV("12345"), 1, 1, S("a2de"));
+ test(S("abcde"), 1, 2, SV("12345"), 1, 2, S("a23de"));
+ test(S("abcde"), 1, 2, SV("12345"), 1, 3, S("a234de"));
+ test(S("abcde"), 1, 2, SV("12345"), 1, 4, S("a2345de"));
+ test(S("abcde"), 1, 2, SV("12345"), 1, 5, S("a2345de"));
+ test(S("abcde"), 1, 2, SV("12345"), 2, 0, S("ade"));
+ test(S("abcde"), 1, 2, SV("12345"), 2, 1, S("a3de"));
+ test(S("abcde"), 1, 2, SV("12345"), 2, 2, S("a34de"));
+ test(S("abcde"), 1, 2, SV("12345"), 2, 3, S("a345de"));
+ test(S("abcde"), 1, 2, SV("12345"), 2, 4, S("a345de"));
+ test(S("abcde"), 1, 2, SV("12345"), 4, 0, S("ade"));
+ test(S("abcde"), 1, 2, SV("12345"), 4, 1, S("a5de"));
+ test(S("abcde"), 1, 2, SV("12345"), 4, 2, S("a5de"));
+ test(S("abcde"), 1, 2, SV("12345"), 5, 0, S("ade"));
+ test(S("abcde"), 1, 2, SV("12345"), 5, 1, S("ade"));
+ test(S("abcde"), 1, 2, SV("12345"), 6, 0, S("can't happen"));
+ test(S("abcde"), 1, 2, SV("1234567890"), 0, 0, S("ade"));
+ test(S("abcde"), 1, 2, SV("1234567890"), 0, 1, S("a1de"));
+ test(S("abcde"), 1, 2, SV("1234567890"), 0, 5, S("a12345de"));
+ test(S("abcde"), 1, 2, SV("1234567890"), 0, 9, S("a123456789de"));
+ test(S("abcde"), 1, 2, SV("1234567890"), 0, 10, S("a1234567890de"));
+ test(S("abcde"), 1, 2, SV("1234567890"), 0, 11, S("a1234567890de"));
+ test(S("abcde"), 1, 2, SV("1234567890"), 1, 0, S("ade"));
+ test(S("abcde"), 1, 2, SV("1234567890"), 1, 1, S("a2de"));
+ test(S("abcde"), 1, 2, SV("1234567890"), 1, 4, S("a2345de"));
+ test(S("abcde"), 1, 2, SV("1234567890"), 1, 8, S("a23456789de"));
+ test(S("abcde"), 1, 2, SV("1234567890"), 1, 9, S("a234567890de"));
+ test(S("abcde"), 1, 2, SV("1234567890"), 1, 10, S("a234567890de"));
+ test(S("abcde"), 1, 2, SV("1234567890"), 5, 0, S("ade"));
+ test(S("abcde"), 1, 2, SV("1234567890"), 5, 1, S("a6de"));
+ test(S("abcde"), 1, 2, SV("1234567890"), 5, 2, S("a67de"));
+ test(S("abcde"), 1, 2, SV("1234567890"), 5, 4, S("a6789de"));
+ test(S("abcde"), 1, 2, SV("1234567890"), 5, 5, S("a67890de"));
+ test(S("abcde"), 1, 2, SV("1234567890"), 5, 6, S("a67890de"));
+ test(S("abcde"), 1, 2, SV("1234567890"), 9, 0, S("ade"));
+ test(S("abcde"), 1, 2, SV("1234567890"), 9, 1, S("a0de"));
+ test(S("abcde"), 1, 2, SV("1234567890"), 9, 2, S("a0de"));
+ test(S("abcde"), 1, 2, SV("1234567890"), 10, 0, S("ade"));
+ test(S("abcde"), 1, 2, SV("1234567890"), 10, 1, S("ade"));
+ test(S("abcde"), 1, 2, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcde"), 1, 2, SV("12345678901234567890"), 0, 0, S("ade"));
+ test(S("abcde"), 1, 2, SV("12345678901234567890"), 0, 1, S("a1de"));
+ test(S("abcde"), 1, 2, SV("12345678901234567890"), 0, 10, S("a1234567890de"));
+ test(S("abcde"), 1, 2, SV("12345678901234567890"), 0, 19, S("a1234567890123456789de"));
+ test(S("abcde"), 1, 2, SV("12345678901234567890"), 0, 20, S("a12345678901234567890de"));
+ test(S("abcde"), 1, 2, SV("12345678901234567890"), 0, 21, S("a12345678901234567890de"));
+ test(S("abcde"), 1, 2, SV("12345678901234567890"), 1, 0, S("ade"));
+ test(S("abcde"), 1, 2, SV("12345678901234567890"), 1, 1, S("a2de"));
+ test(S("abcde"), 1, 2, SV("12345678901234567890"), 1, 9, S("a234567890de"));
+ test(S("abcde"), 1, 2, SV("12345678901234567890"), 1, 18, S("a234567890123456789de"));
+ test(S("abcde"), 1, 2, SV("12345678901234567890"), 1, 19, S("a2345678901234567890de"));
+ test(S("abcde"), 1, 2, SV("12345678901234567890"), 1, 20, S("a2345678901234567890de"));
+ test(S("abcde"), 1, 2, SV("12345678901234567890"), 10, 0, S("ade"));
+ test(S("abcde"), 1, 2, SV("12345678901234567890"), 10, 1, S("a1de"));
+ test(S("abcde"), 1, 2, SV("12345678901234567890"), 10, 5, S("a12345de"));
+ test(S("abcde"), 1, 2, SV("12345678901234567890"), 10, 9, S("a123456789de"));
+ test(S("abcde"), 1, 2, SV("12345678901234567890"), 10, 10, S("a1234567890de"));
+ test(S("abcde"), 1, 2, SV("12345678901234567890"), 10, 11, S("a1234567890de"));
+ test(S("abcde"), 1, 2, SV("12345678901234567890"), 19, 0, S("ade"));
+ test(S("abcde"), 1, 2, SV("12345678901234567890"), 19, 1, S("a0de"));
+ test(S("abcde"), 1, 2, SV("12345678901234567890"), 19, 2, S("a0de"));
+ test(S("abcde"), 1, 2, SV("12345678901234567890"), 20, 0, S("ade"));
+ test(S("abcde"), 1, 2, SV("12345678901234567890"), 20, 1, S("ade"));
+ test(S("abcde"), 1, 2, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcde"), 1, 3, SV(""), 0, 0, S("ae"));
+ test(S("abcde"), 1, 3, SV(""), 0, 1, S("ae"));
+ test(S("abcde"), 1, 3, SV(""), 1, 0, S("can't happen"));
+ test(S("abcde"), 1, 3, SV("12345"), 0, 0, S("ae"));
+ test(S("abcde"), 1, 3, SV("12345"), 0, 1, S("a1e"));
+ test(S("abcde"), 1, 3, SV("12345"), 0, 2, S("a12e"));
+ test(S("abcde"), 1, 3, SV("12345"), 0, 4, S("a1234e"));
+ test(S("abcde"), 1, 3, SV("12345"), 0, 5, S("a12345e"));
+ test(S("abcde"), 1, 3, SV("12345"), 0, 6, S("a12345e"));
+ test(S("abcde"), 1, 3, SV("12345"), 1, 0, S("ae"));
+ test(S("abcde"), 1, 3, SV("12345"), 1, 1, S("a2e"));
+ test(S("abcde"), 1, 3, SV("12345"), 1, 2, S("a23e"));
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test9()
-{
- test(S("abcde"), 1, 3, SV("12345"), 1, 3, S("a234e"));
- test(S("abcde"), 1, 3, SV("12345"), 1, 4, S("a2345e"));
- test(S("abcde"), 1, 3, SV("12345"), 1, 5, S("a2345e"));
- test(S("abcde"), 1, 3, SV("12345"), 2, 0, S("ae"));
- test(S("abcde"), 1, 3, SV("12345"), 2, 1, S("a3e"));
- test(S("abcde"), 1, 3, SV("12345"), 2, 2, S("a34e"));
- test(S("abcde"), 1, 3, SV("12345"), 2, 3, S("a345e"));
- test(S("abcde"), 1, 3, SV("12345"), 2, 4, S("a345e"));
- test(S("abcde"), 1, 3, SV("12345"), 4, 0, S("ae"));
- test(S("abcde"), 1, 3, SV("12345"), 4, 1, S("a5e"));
- test(S("abcde"), 1, 3, SV("12345"), 4, 2, S("a5e"));
- test(S("abcde"), 1, 3, SV("12345"), 5, 0, S("ae"));
- test(S("abcde"), 1, 3, SV("12345"), 5, 1, S("ae"));
- test(S("abcde"), 1, 3, SV("12345"), 6, 0, S("can't happen"));
- test(S("abcde"), 1, 3, SV("1234567890"), 0, 0, S("ae"));
- test(S("abcde"), 1, 3, SV("1234567890"), 0, 1, S("a1e"));
- test(S("abcde"), 1, 3, SV("1234567890"), 0, 5, S("a12345e"));
- test(S("abcde"), 1, 3, SV("1234567890"), 0, 9, S("a123456789e"));
- test(S("abcde"), 1, 3, SV("1234567890"), 0, 10, S("a1234567890e"));
- test(S("abcde"), 1, 3, SV("1234567890"), 0, 11, S("a1234567890e"));
- test(S("abcde"), 1, 3, SV("1234567890"), 1, 0, S("ae"));
- test(S("abcde"), 1, 3, SV("1234567890"), 1, 1, S("a2e"));
- test(S("abcde"), 1, 3, SV("1234567890"), 1, 4, S("a2345e"));
- test(S("abcde"), 1, 3, SV("1234567890"), 1, 8, S("a23456789e"));
- test(S("abcde"), 1, 3, SV("1234567890"), 1, 9, S("a234567890e"));
- test(S("abcde"), 1, 3, SV("1234567890"), 1, 10, S("a234567890e"));
- test(S("abcde"), 1, 3, SV("1234567890"), 5, 0, S("ae"));
- test(S("abcde"), 1, 3, SV("1234567890"), 5, 1, S("a6e"));
- test(S("abcde"), 1, 3, SV("1234567890"), 5, 2, S("a67e"));
- test(S("abcde"), 1, 3, SV("1234567890"), 5, 4, S("a6789e"));
- test(S("abcde"), 1, 3, SV("1234567890"), 5, 5, S("a67890e"));
- test(S("abcde"), 1, 3, SV("1234567890"), 5, 6, S("a67890e"));
- test(S("abcde"), 1, 3, SV("1234567890"), 9, 0, S("ae"));
- test(S("abcde"), 1, 3, SV("1234567890"), 9, 1, S("a0e"));
- test(S("abcde"), 1, 3, SV("1234567890"), 9, 2, S("a0e"));
- test(S("abcde"), 1, 3, SV("1234567890"), 10, 0, S("ae"));
- test(S("abcde"), 1, 3, SV("1234567890"), 10, 1, S("ae"));
- test(S("abcde"), 1, 3, SV("1234567890"), 11, 0, S("can't happen"));
- test(S("abcde"), 1, 3, SV("12345678901234567890"), 0, 0, S("ae"));
- test(S("abcde"), 1, 3, SV("12345678901234567890"), 0, 1, S("a1e"));
- test(S("abcde"), 1, 3, SV("12345678901234567890"), 0, 10, S("a1234567890e"));
- test(S("abcde"), 1, 3, SV("12345678901234567890"), 0, 19, S("a1234567890123456789e"));
- test(S("abcde"), 1, 3, SV("12345678901234567890"), 0, 20, S("a12345678901234567890e"));
- test(S("abcde"), 1, 3, SV("12345678901234567890"), 0, 21, S("a12345678901234567890e"));
- test(S("abcde"), 1, 3, SV("12345678901234567890"), 1, 0, S("ae"));
- test(S("abcde"), 1, 3, SV("12345678901234567890"), 1, 1, S("a2e"));
- test(S("abcde"), 1, 3, SV("12345678901234567890"), 1, 9, S("a234567890e"));
- test(S("abcde"), 1, 3, SV("12345678901234567890"), 1, 18, S("a234567890123456789e"));
- test(S("abcde"), 1, 3, SV("12345678901234567890"), 1, 19, S("a2345678901234567890e"));
- test(S("abcde"), 1, 3, SV("12345678901234567890"), 1, 20, S("a2345678901234567890e"));
- test(S("abcde"), 1, 3, SV("12345678901234567890"), 10, 0, S("ae"));
- test(S("abcde"), 1, 3, SV("12345678901234567890"), 10, 1, S("a1e"));
- test(S("abcde"), 1, 3, SV("12345678901234567890"), 10, 5, S("a12345e"));
- test(S("abcde"), 1, 3, SV("12345678901234567890"), 10, 9, S("a123456789e"));
- test(S("abcde"), 1, 3, SV("12345678901234567890"), 10, 10, S("a1234567890e"));
- test(S("abcde"), 1, 3, SV("12345678901234567890"), 10, 11, S("a1234567890e"));
- test(S("abcde"), 1, 3, SV("12345678901234567890"), 19, 0, S("ae"));
- test(S("abcde"), 1, 3, SV("12345678901234567890"), 19, 1, S("a0e"));
- test(S("abcde"), 1, 3, SV("12345678901234567890"), 19, 2, S("a0e"));
- test(S("abcde"), 1, 3, SV("12345678901234567890"), 20, 0, S("ae"));
- test(S("abcde"), 1, 3, SV("12345678901234567890"), 20, 1, S("ae"));
- test(S("abcde"), 1, 3, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcde"), 1, 4, SV(""), 0, 0, S("a"));
- test(S("abcde"), 1, 4, SV(""), 0, 1, S("a"));
- test(S("abcde"), 1, 4, SV(""), 1, 0, S("can't happen"));
- test(S("abcde"), 1, 4, SV("12345"), 0, 0, S("a"));
- test(S("abcde"), 1, 4, SV("12345"), 0, 1, S("a1"));
- test(S("abcde"), 1, 4, SV("12345"), 0, 2, S("a12"));
- test(S("abcde"), 1, 4, SV("12345"), 0, 4, S("a1234"));
- test(S("abcde"), 1, 4, SV("12345"), 0, 5, S("a12345"));
- test(S("abcde"), 1, 4, SV("12345"), 0, 6, S("a12345"));
- test(S("abcde"), 1, 4, SV("12345"), 1, 0, S("a"));
- test(S("abcde"), 1, 4, SV("12345"), 1, 1, S("a2"));
- test(S("abcde"), 1, 4, SV("12345"), 1, 2, S("a23"));
- test(S("abcde"), 1, 4, SV("12345"), 1, 3, S("a234"));
- test(S("abcde"), 1, 4, SV("12345"), 1, 4, S("a2345"));
- test(S("abcde"), 1, 4, SV("12345"), 1, 5, S("a2345"));
- test(S("abcde"), 1, 4, SV("12345"), 2, 0, S("a"));
- test(S("abcde"), 1, 4, SV("12345"), 2, 1, S("a3"));
- test(S("abcde"), 1, 4, SV("12345"), 2, 2, S("a34"));
- test(S("abcde"), 1, 4, SV("12345"), 2, 3, S("a345"));
- test(S("abcde"), 1, 4, SV("12345"), 2, 4, S("a345"));
- test(S("abcde"), 1, 4, SV("12345"), 4, 0, S("a"));
- test(S("abcde"), 1, 4, SV("12345"), 4, 1, S("a5"));
- test(S("abcde"), 1, 4, SV("12345"), 4, 2, S("a5"));
- test(S("abcde"), 1, 4, SV("12345"), 5, 0, S("a"));
- test(S("abcde"), 1, 4, SV("12345"), 5, 1, S("a"));
- test(S("abcde"), 1, 4, SV("12345"), 6, 0, S("can't happen"));
- test(S("abcde"), 1, 4, SV("1234567890"), 0, 0, S("a"));
- test(S("abcde"), 1, 4, SV("1234567890"), 0, 1, S("a1"));
- test(S("abcde"), 1, 4, SV("1234567890"), 0, 5, S("a12345"));
- test(S("abcde"), 1, 4, SV("1234567890"), 0, 9, S("a123456789"));
- test(S("abcde"), 1, 4, SV("1234567890"), 0, 10, S("a1234567890"));
- test(S("abcde"), 1, 4, SV("1234567890"), 0, 11, S("a1234567890"));
- test(S("abcde"), 1, 4, SV("1234567890"), 1, 0, S("a"));
- test(S("abcde"), 1, 4, SV("1234567890"), 1, 1, S("a2"));
- test(S("abcde"), 1, 4, SV("1234567890"), 1, 4, S("a2345"));
- test(S("abcde"), 1, 4, SV("1234567890"), 1, 8, S("a23456789"));
- test(S("abcde"), 1, 4, SV("1234567890"), 1, 9, S("a234567890"));
- test(S("abcde"), 1, 4, SV("1234567890"), 1, 10, S("a234567890"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test9() {
+ test(S("abcde"), 1, 3, SV("12345"), 1, 3, S("a234e"));
+ test(S("abcde"), 1, 3, SV("12345"), 1, 4, S("a2345e"));
+ test(S("abcde"), 1, 3, SV("12345"), 1, 5, S("a2345e"));
+ test(S("abcde"), 1, 3, SV("12345"), 2, 0, S("ae"));
+ test(S("abcde"), 1, 3, SV("12345"), 2, 1, S("a3e"));
+ test(S("abcde"), 1, 3, SV("12345"), 2, 2, S("a34e"));
+ test(S("abcde"), 1, 3, SV("12345"), 2, 3, S("a345e"));
+ test(S("abcde"), 1, 3, SV("12345"), 2, 4, S("a345e"));
+ test(S("abcde"), 1, 3, SV("12345"), 4, 0, S("ae"));
+ test(S("abcde"), 1, 3, SV("12345"), 4, 1, S("a5e"));
+ test(S("abcde"), 1, 3, SV("12345"), 4, 2, S("a5e"));
+ test(S("abcde"), 1, 3, SV("12345"), 5, 0, S("ae"));
+ test(S("abcde"), 1, 3, SV("12345"), 5, 1, S("ae"));
+ test(S("abcde"), 1, 3, SV("12345"), 6, 0, S("can't happen"));
+ test(S("abcde"), 1, 3, SV("1234567890"), 0, 0, S("ae"));
+ test(S("abcde"), 1, 3, SV("1234567890"), 0, 1, S("a1e"));
+ test(S("abcde"), 1, 3, SV("1234567890"), 0, 5, S("a12345e"));
+ test(S("abcde"), 1, 3, SV("1234567890"), 0, 9, S("a123456789e"));
+ test(S("abcde"), 1, 3, SV("1234567890"), 0, 10, S("a1234567890e"));
+ test(S("abcde"), 1, 3, SV("1234567890"), 0, 11, S("a1234567890e"));
+ test(S("abcde"), 1, 3, SV("1234567890"), 1, 0, S("ae"));
+ test(S("abcde"), 1, 3, SV("1234567890"), 1, 1, S("a2e"));
+ test(S("abcde"), 1, 3, SV("1234567890"), 1, 4, S("a2345e"));
+ test(S("abcde"), 1, 3, SV("1234567890"), 1, 8, S("a23456789e"));
+ test(S("abcde"), 1, 3, SV("1234567890"), 1, 9, S("a234567890e"));
+ test(S("abcde"), 1, 3, SV("1234567890"), 1, 10, S("a234567890e"));
+ test(S("abcde"), 1, 3, SV("1234567890"), 5, 0, S("ae"));
+ test(S("abcde"), 1, 3, SV("1234567890"), 5, 1, S("a6e"));
+ test(S("abcde"), 1, 3, SV("1234567890"), 5, 2, S("a67e"));
+ test(S("abcde"), 1, 3, SV("1234567890"), 5, 4, S("a6789e"));
+ test(S("abcde"), 1, 3, SV("1234567890"), 5, 5, S("a67890e"));
+ test(S("abcde"), 1, 3, SV("1234567890"), 5, 6, S("a67890e"));
+ test(S("abcde"), 1, 3, SV("1234567890"), 9, 0, S("ae"));
+ test(S("abcde"), 1, 3, SV("1234567890"), 9, 1, S("a0e"));
+ test(S("abcde"), 1, 3, SV("1234567890"), 9, 2, S("a0e"));
+ test(S("abcde"), 1, 3, SV("1234567890"), 10, 0, S("ae"));
+ test(S("abcde"), 1, 3, SV("1234567890"), 10, 1, S("ae"));
+ test(S("abcde"), 1, 3, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcde"), 1, 3, SV("12345678901234567890"), 0, 0, S("ae"));
+ test(S("abcde"), 1, 3, SV("12345678901234567890"), 0, 1, S("a1e"));
+ test(S("abcde"), 1, 3, SV("12345678901234567890"), 0, 10, S("a1234567890e"));
+ test(S("abcde"), 1, 3, SV("12345678901234567890"), 0, 19, S("a1234567890123456789e"));
+ test(S("abcde"), 1, 3, SV("12345678901234567890"), 0, 20, S("a12345678901234567890e"));
+ test(S("abcde"), 1, 3, SV("12345678901234567890"), 0, 21, S("a12345678901234567890e"));
+ test(S("abcde"), 1, 3, SV("12345678901234567890"), 1, 0, S("ae"));
+ test(S("abcde"), 1, 3, SV("12345678901234567890"), 1, 1, S("a2e"));
+ test(S("abcde"), 1, 3, SV("12345678901234567890"), 1, 9, S("a234567890e"));
+ test(S("abcde"), 1, 3, SV("12345678901234567890"), 1, 18, S("a234567890123456789e"));
+ test(S("abcde"), 1, 3, SV("12345678901234567890"), 1, 19, S("a2345678901234567890e"));
+ test(S("abcde"), 1, 3, SV("12345678901234567890"), 1, 20, S("a2345678901234567890e"));
+ test(S("abcde"), 1, 3, SV("12345678901234567890"), 10, 0, S("ae"));
+ test(S("abcde"), 1, 3, SV("12345678901234567890"), 10, 1, S("a1e"));
+ test(S("abcde"), 1, 3, SV("12345678901234567890"), 10, 5, S("a12345e"));
+ test(S("abcde"), 1, 3, SV("12345678901234567890"), 10, 9, S("a123456789e"));
+ test(S("abcde"), 1, 3, SV("12345678901234567890"), 10, 10, S("a1234567890e"));
+ test(S("abcde"), 1, 3, SV("12345678901234567890"), 10, 11, S("a1234567890e"));
+ test(S("abcde"), 1, 3, SV("12345678901234567890"), 19, 0, S("ae"));
+ test(S("abcde"), 1, 3, SV("12345678901234567890"), 19, 1, S("a0e"));
+ test(S("abcde"), 1, 3, SV("12345678901234567890"), 19, 2, S("a0e"));
+ test(S("abcde"), 1, 3, SV("12345678901234567890"), 20, 0, S("ae"));
+ test(S("abcde"), 1, 3, SV("12345678901234567890"), 20, 1, S("ae"));
+ test(S("abcde"), 1, 3, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcde"), 1, 4, SV(""), 0, 0, S("a"));
+ test(S("abcde"), 1, 4, SV(""), 0, 1, S("a"));
+ test(S("abcde"), 1, 4, SV(""), 1, 0, S("can't happen"));
+ test(S("abcde"), 1, 4, SV("12345"), 0, 0, S("a"));
+ test(S("abcde"), 1, 4, SV("12345"), 0, 1, S("a1"));
+ test(S("abcde"), 1, 4, SV("12345"), 0, 2, S("a12"));
+ test(S("abcde"), 1, 4, SV("12345"), 0, 4, S("a1234"));
+ test(S("abcde"), 1, 4, SV("12345"), 0, 5, S("a12345"));
+ test(S("abcde"), 1, 4, SV("12345"), 0, 6, S("a12345"));
+ test(S("abcde"), 1, 4, SV("12345"), 1, 0, S("a"));
+ test(S("abcde"), 1, 4, SV("12345"), 1, 1, S("a2"));
+ test(S("abcde"), 1, 4, SV("12345"), 1, 2, S("a23"));
+ test(S("abcde"), 1, 4, SV("12345"), 1, 3, S("a234"));
+ test(S("abcde"), 1, 4, SV("12345"), 1, 4, S("a2345"));
+ test(S("abcde"), 1, 4, SV("12345"), 1, 5, S("a2345"));
+ test(S("abcde"), 1, 4, SV("12345"), 2, 0, S("a"));
+ test(S("abcde"), 1, 4, SV("12345"), 2, 1, S("a3"));
+ test(S("abcde"), 1, 4, SV("12345"), 2, 2, S("a34"));
+ test(S("abcde"), 1, 4, SV("12345"), 2, 3, S("a345"));
+ test(S("abcde"), 1, 4, SV("12345"), 2, 4, S("a345"));
+ test(S("abcde"), 1, 4, SV("12345"), 4, 0, S("a"));
+ test(S("abcde"), 1, 4, SV("12345"), 4, 1, S("a5"));
+ test(S("abcde"), 1, 4, SV("12345"), 4, 2, S("a5"));
+ test(S("abcde"), 1, 4, SV("12345"), 5, 0, S("a"));
+ test(S("abcde"), 1, 4, SV("12345"), 5, 1, S("a"));
+ test(S("abcde"), 1, 4, SV("12345"), 6, 0, S("can't happen"));
+ test(S("abcde"), 1, 4, SV("1234567890"), 0, 0, S("a"));
+ test(S("abcde"), 1, 4, SV("1234567890"), 0, 1, S("a1"));
+ test(S("abcde"), 1, 4, SV("1234567890"), 0, 5, S("a12345"));
+ test(S("abcde"), 1, 4, SV("1234567890"), 0, 9, S("a123456789"));
+ test(S("abcde"), 1, 4, SV("1234567890"), 0, 10, S("a1234567890"));
+ test(S("abcde"), 1, 4, SV("1234567890"), 0, 11, S("a1234567890"));
+ test(S("abcde"), 1, 4, SV("1234567890"), 1, 0, S("a"));
+ test(S("abcde"), 1, 4, SV("1234567890"), 1, 1, S("a2"));
+ test(S("abcde"), 1, 4, SV("1234567890"), 1, 4, S("a2345"));
+ test(S("abcde"), 1, 4, SV("1234567890"), 1, 8, S("a23456789"));
+ test(S("abcde"), 1, 4, SV("1234567890"), 1, 9, S("a234567890"));
+ test(S("abcde"), 1, 4, SV("1234567890"), 1, 10, S("a234567890"));
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test10()
-{
- test(S("abcde"), 1, 4, SV("1234567890"), 5, 0, S("a"));
- test(S("abcde"), 1, 4, SV("1234567890"), 5, 1, S("a6"));
- test(S("abcde"), 1, 4, SV("1234567890"), 5, 2, S("a67"));
- test(S("abcde"), 1, 4, SV("1234567890"), 5, 4, S("a6789"));
- test(S("abcde"), 1, 4, SV("1234567890"), 5, 5, S("a67890"));
- test(S("abcde"), 1, 4, SV("1234567890"), 5, 6, S("a67890"));
- test(S("abcde"), 1, 4, SV("1234567890"), 9, 0, S("a"));
- test(S("abcde"), 1, 4, SV("1234567890"), 9, 1, S("a0"));
- test(S("abcde"), 1, 4, SV("1234567890"), 9, 2, S("a0"));
- test(S("abcde"), 1, 4, SV("1234567890"), 10, 0, S("a"));
- test(S("abcde"), 1, 4, SV("1234567890"), 10, 1, S("a"));
- test(S("abcde"), 1, 4, SV("1234567890"), 11, 0, S("can't happen"));
- test(S("abcde"), 1, 4, SV("12345678901234567890"), 0, 0, S("a"));
- test(S("abcde"), 1, 4, SV("12345678901234567890"), 0, 1, S("a1"));
- test(S("abcde"), 1, 4, SV("12345678901234567890"), 0, 10, S("a1234567890"));
- test(S("abcde"), 1, 4, SV("12345678901234567890"), 0, 19, S("a1234567890123456789"));
- test(S("abcde"), 1, 4, SV("12345678901234567890"), 0, 20, S("a12345678901234567890"));
- test(S("abcde"), 1, 4, SV("12345678901234567890"), 0, 21, S("a12345678901234567890"));
- test(S("abcde"), 1, 4, SV("12345678901234567890"), 1, 0, S("a"));
- test(S("abcde"), 1, 4, SV("12345678901234567890"), 1, 1, S("a2"));
- test(S("abcde"), 1, 4, SV("12345678901234567890"), 1, 9, S("a234567890"));
- test(S("abcde"), 1, 4, SV("12345678901234567890"), 1, 18, S("a234567890123456789"));
- test(S("abcde"), 1, 4, SV("12345678901234567890"), 1, 19, S("a2345678901234567890"));
- test(S("abcde"), 1, 4, SV("12345678901234567890"), 1, 20, S("a2345678901234567890"));
- test(S("abcde"), 1, 4, SV("12345678901234567890"), 10, 0, S("a"));
- test(S("abcde"), 1, 4, SV("12345678901234567890"), 10, 1, S("a1"));
- test(S("abcde"), 1, 4, SV("12345678901234567890"), 10, 5, S("a12345"));
- test(S("abcde"), 1, 4, SV("12345678901234567890"), 10, 9, S("a123456789"));
- test(S("abcde"), 1, 4, SV("12345678901234567890"), 10, 10, S("a1234567890"));
- test(S("abcde"), 1, 4, SV("12345678901234567890"), 10, 11, S("a1234567890"));
- test(S("abcde"), 1, 4, SV("12345678901234567890"), 19, 0, S("a"));
- test(S("abcde"), 1, 4, SV("12345678901234567890"), 19, 1, S("a0"));
- test(S("abcde"), 1, 4, SV("12345678901234567890"), 19, 2, S("a0"));
- test(S("abcde"), 1, 4, SV("12345678901234567890"), 20, 0, S("a"));
- test(S("abcde"), 1, 4, SV("12345678901234567890"), 20, 1, S("a"));
- test(S("abcde"), 1, 4, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcde"), 1, 5, SV(""), 0, 0, S("a"));
- test(S("abcde"), 1, 5, SV(""), 0, 1, S("a"));
- test(S("abcde"), 1, 5, SV(""), 1, 0, S("can't happen"));
- test(S("abcde"), 1, 5, SV("12345"), 0, 0, S("a"));
- test(S("abcde"), 1, 5, SV("12345"), 0, 1, S("a1"));
- test(S("abcde"), 1, 5, SV("12345"), 0, 2, S("a12"));
- test(S("abcde"), 1, 5, SV("12345"), 0, 4, S("a1234"));
- test(S("abcde"), 1, 5, SV("12345"), 0, 5, S("a12345"));
- test(S("abcde"), 1, 5, SV("12345"), 0, 6, S("a12345"));
- test(S("abcde"), 1, 5, SV("12345"), 1, 0, S("a"));
- test(S("abcde"), 1, 5, SV("12345"), 1, 1, S("a2"));
- test(S("abcde"), 1, 5, SV("12345"), 1, 2, S("a23"));
- test(S("abcde"), 1, 5, SV("12345"), 1, 3, S("a234"));
- test(S("abcde"), 1, 5, SV("12345"), 1, 4, S("a2345"));
- test(S("abcde"), 1, 5, SV("12345"), 1, 5, S("a2345"));
- test(S("abcde"), 1, 5, SV("12345"), 2, 0, S("a"));
- test(S("abcde"), 1, 5, SV("12345"), 2, 1, S("a3"));
- test(S("abcde"), 1, 5, SV("12345"), 2, 2, S("a34"));
- test(S("abcde"), 1, 5, SV("12345"), 2, 3, S("a345"));
- test(S("abcde"), 1, 5, SV("12345"), 2, 4, S("a345"));
- test(S("abcde"), 1, 5, SV("12345"), 4, 0, S("a"));
- test(S("abcde"), 1, 5, SV("12345"), 4, 1, S("a5"));
- test(S("abcde"), 1, 5, SV("12345"), 4, 2, S("a5"));
- test(S("abcde"), 1, 5, SV("12345"), 5, 0, S("a"));
- test(S("abcde"), 1, 5, SV("12345"), 5, 1, S("a"));
- test(S("abcde"), 1, 5, SV("12345"), 6, 0, S("can't happen"));
- test(S("abcde"), 1, 5, SV("1234567890"), 0, 0, S("a"));
- test(S("abcde"), 1, 5, SV("1234567890"), 0, 1, S("a1"));
- test(S("abcde"), 1, 5, SV("1234567890"), 0, 5, S("a12345"));
- test(S("abcde"), 1, 5, SV("1234567890"), 0, 9, S("a123456789"));
- test(S("abcde"), 1, 5, SV("1234567890"), 0, 10, S("a1234567890"));
- test(S("abcde"), 1, 5, SV("1234567890"), 0, 11, S("a1234567890"));
- test(S("abcde"), 1, 5, SV("1234567890"), 1, 0, S("a"));
- test(S("abcde"), 1, 5, SV("1234567890"), 1, 1, S("a2"));
- test(S("abcde"), 1, 5, SV("1234567890"), 1, 4, S("a2345"));
- test(S("abcde"), 1, 5, SV("1234567890"), 1, 8, S("a23456789"));
- test(S("abcde"), 1, 5, SV("1234567890"), 1, 9, S("a234567890"));
- test(S("abcde"), 1, 5, SV("1234567890"), 1, 10, S("a234567890"));
- test(S("abcde"), 1, 5, SV("1234567890"), 5, 0, S("a"));
- test(S("abcde"), 1, 5, SV("1234567890"), 5, 1, S("a6"));
- test(S("abcde"), 1, 5, SV("1234567890"), 5, 2, S("a67"));
- test(S("abcde"), 1, 5, SV("1234567890"), 5, 4, S("a6789"));
- test(S("abcde"), 1, 5, SV("1234567890"), 5, 5, S("a67890"));
- test(S("abcde"), 1, 5, SV("1234567890"), 5, 6, S("a67890"));
- test(S("abcde"), 1, 5, SV("1234567890"), 9, 0, S("a"));
- test(S("abcde"), 1, 5, SV("1234567890"), 9, 1, S("a0"));
- test(S("abcde"), 1, 5, SV("1234567890"), 9, 2, S("a0"));
- test(S("abcde"), 1, 5, SV("1234567890"), 10, 0, S("a"));
- test(S("abcde"), 1, 5, SV("1234567890"), 10, 1, S("a"));
- test(S("abcde"), 1, 5, SV("1234567890"), 11, 0, S("can't happen"));
- test(S("abcde"), 1, 5, SV("12345678901234567890"), 0, 0, S("a"));
- test(S("abcde"), 1, 5, SV("12345678901234567890"), 0, 1, S("a1"));
- test(S("abcde"), 1, 5, SV("12345678901234567890"), 0, 10, S("a1234567890"));
- test(S("abcde"), 1, 5, SV("12345678901234567890"), 0, 19, S("a1234567890123456789"));
- test(S("abcde"), 1, 5, SV("12345678901234567890"), 0, 20, S("a12345678901234567890"));
- test(S("abcde"), 1, 5, SV("12345678901234567890"), 0, 21, S("a12345678901234567890"));
- test(S("abcde"), 1, 5, SV("12345678901234567890"), 1, 0, S("a"));
- test(S("abcde"), 1, 5, SV("12345678901234567890"), 1, 1, S("a2"));
- test(S("abcde"), 1, 5, SV("12345678901234567890"), 1, 9, S("a234567890"));
- test(S("abcde"), 1, 5, SV("12345678901234567890"), 1, 18, S("a234567890123456789"));
- test(S("abcde"), 1, 5, SV("12345678901234567890"), 1, 19, S("a2345678901234567890"));
- test(S("abcde"), 1, 5, SV("12345678901234567890"), 1, 20, S("a2345678901234567890"));
- test(S("abcde"), 1, 5, SV("12345678901234567890"), 10, 0, S("a"));
- test(S("abcde"), 1, 5, SV("12345678901234567890"), 10, 1, S("a1"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test10() {
+ test(S("abcde"), 1, 4, SV("1234567890"), 5, 0, S("a"));
+ test(S("abcde"), 1, 4, SV("1234567890"), 5, 1, S("a6"));
+ test(S("abcde"), 1, 4, SV("1234567890"), 5, 2, S("a67"));
+ test(S("abcde"), 1, 4, SV("1234567890"), 5, 4, S("a6789"));
+ test(S("abcde"), 1, 4, SV("1234567890"), 5, 5, S("a67890"));
+ test(S("abcde"), 1, 4, SV("1234567890"), 5, 6, S("a67890"));
+ test(S("abcde"), 1, 4, SV("1234567890"), 9, 0, S("a"));
+ test(S("abcde"), 1, 4, SV("1234567890"), 9, 1, S("a0"));
+ test(S("abcde"), 1, 4, SV("1234567890"), 9, 2, S("a0"));
+ test(S("abcde"), 1, 4, SV("1234567890"), 10, 0, S("a"));
+ test(S("abcde"), 1, 4, SV("1234567890"), 10, 1, S("a"));
+ test(S("abcde"), 1, 4, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcde"), 1, 4, SV("12345678901234567890"), 0, 0, S("a"));
+ test(S("abcde"), 1, 4, SV("12345678901234567890"), 0, 1, S("a1"));
+ test(S("abcde"), 1, 4, SV("12345678901234567890"), 0, 10, S("a1234567890"));
+ test(S("abcde"), 1, 4, SV("12345678901234567890"), 0, 19, S("a1234567890123456789"));
+ test(S("abcde"), 1, 4, SV("12345678901234567890"), 0, 20, S("a12345678901234567890"));
+ test(S("abcde"), 1, 4, SV("12345678901234567890"), 0, 21, S("a12345678901234567890"));
+ test(S("abcde"), 1, 4, SV("12345678901234567890"), 1, 0, S("a"));
+ test(S("abcde"), 1, 4, SV("12345678901234567890"), 1, 1, S("a2"));
+ test(S("abcde"), 1, 4, SV("12345678901234567890"), 1, 9, S("a234567890"));
+ test(S("abcde"), 1, 4, SV("12345678901234567890"), 1, 18, S("a234567890123456789"));
+ test(S("abcde"), 1, 4, SV("12345678901234567890"), 1, 19, S("a2345678901234567890"));
+ test(S("abcde"), 1, 4, SV("12345678901234567890"), 1, 20, S("a2345678901234567890"));
+ test(S("abcde"), 1, 4, SV("12345678901234567890"), 10, 0, S("a"));
+ test(S("abcde"), 1, 4, SV("12345678901234567890"), 10, 1, S("a1"));
+ test(S("abcde"), 1, 4, SV("12345678901234567890"), 10, 5, S("a12345"));
+ test(S("abcde"), 1, 4, SV("12345678901234567890"), 10, 9, S("a123456789"));
+ test(S("abcde"), 1, 4, SV("12345678901234567890"), 10, 10, S("a1234567890"));
+ test(S("abcde"), 1, 4, SV("12345678901234567890"), 10, 11, S("a1234567890"));
+ test(S("abcde"), 1, 4, SV("12345678901234567890"), 19, 0, S("a"));
+ test(S("abcde"), 1, 4, SV("12345678901234567890"), 19, 1, S("a0"));
+ test(S("abcde"), 1, 4, SV("12345678901234567890"), 19, 2, S("a0"));
+ test(S("abcde"), 1, 4, SV("12345678901234567890"), 20, 0, S("a"));
+ test(S("abcde"), 1, 4, SV("12345678901234567890"), 20, 1, S("a"));
+ test(S("abcde"), 1, 4, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcde"), 1, 5, SV(""), 0, 0, S("a"));
+ test(S("abcde"), 1, 5, SV(""), 0, 1, S("a"));
+ test(S("abcde"), 1, 5, SV(""), 1, 0, S("can't happen"));
+ test(S("abcde"), 1, 5, SV("12345"), 0, 0, S("a"));
+ test(S("abcde"), 1, 5, SV("12345"), 0, 1, S("a1"));
+ test(S("abcde"), 1, 5, SV("12345"), 0, 2, S("a12"));
+ test(S("abcde"), 1, 5, SV("12345"), 0, 4, S("a1234"));
+ test(S("abcde"), 1, 5, SV("12345"), 0, 5, S("a12345"));
+ test(S("abcde"), 1, 5, SV("12345"), 0, 6, S("a12345"));
+ test(S("abcde"), 1, 5, SV("12345"), 1, 0, S("a"));
+ test(S("abcde"), 1, 5, SV("12345"), 1, 1, S("a2"));
+ test(S("abcde"), 1, 5, SV("12345"), 1, 2, S("a23"));
+ test(S("abcde"), 1, 5, SV("12345"), 1, 3, S("a234"));
+ test(S("abcde"), 1, 5, SV("12345"), 1, 4, S("a2345"));
+ test(S("abcde"), 1, 5, SV("12345"), 1, 5, S("a2345"));
+ test(S("abcde"), 1, 5, SV("12345"), 2, 0, S("a"));
+ test(S("abcde"), 1, 5, SV("12345"), 2, 1, S("a3"));
+ test(S("abcde"), 1, 5, SV("12345"), 2, 2, S("a34"));
+ test(S("abcde"), 1, 5, SV("12345"), 2, 3, S("a345"));
+ test(S("abcde"), 1, 5, SV("12345"), 2, 4, S("a345"));
+ test(S("abcde"), 1, 5, SV("12345"), 4, 0, S("a"));
+ test(S("abcde"), 1, 5, SV("12345"), 4, 1, S("a5"));
+ test(S("abcde"), 1, 5, SV("12345"), 4, 2, S("a5"));
+ test(S("abcde"), 1, 5, SV("12345"), 5, 0, S("a"));
+ test(S("abcde"), 1, 5, SV("12345"), 5, 1, S("a"));
+ test(S("abcde"), 1, 5, SV("12345"), 6, 0, S("can't happen"));
+ test(S("abcde"), 1, 5, SV("1234567890"), 0, 0, S("a"));
+ test(S("abcde"), 1, 5, SV("1234567890"), 0, 1, S("a1"));
+ test(S("abcde"), 1, 5, SV("1234567890"), 0, 5, S("a12345"));
+ test(S("abcde"), 1, 5, SV("1234567890"), 0, 9, S("a123456789"));
+ test(S("abcde"), 1, 5, SV("1234567890"), 0, 10, S("a1234567890"));
+ test(S("abcde"), 1, 5, SV("1234567890"), 0, 11, S("a1234567890"));
+ test(S("abcde"), 1, 5, SV("1234567890"), 1, 0, S("a"));
+ test(S("abcde"), 1, 5, SV("1234567890"), 1, 1, S("a2"));
+ test(S("abcde"), 1, 5, SV("1234567890"), 1, 4, S("a2345"));
+ test(S("abcde"), 1, 5, SV("1234567890"), 1, 8, S("a23456789"));
+ test(S("abcde"), 1, 5, SV("1234567890"), 1, 9, S("a234567890"));
+ test(S("abcde"), 1, 5, SV("1234567890"), 1, 10, S("a234567890"));
+ test(S("abcde"), 1, 5, SV("1234567890"), 5, 0, S("a"));
+ test(S("abcde"), 1, 5, SV("1234567890"), 5, 1, S("a6"));
+ test(S("abcde"), 1, 5, SV("1234567890"), 5, 2, S("a67"));
+ test(S("abcde"), 1, 5, SV("1234567890"), 5, 4, S("a6789"));
+ test(S("abcde"), 1, 5, SV("1234567890"), 5, 5, S("a67890"));
+ test(S("abcde"), 1, 5, SV("1234567890"), 5, 6, S("a67890"));
+ test(S("abcde"), 1, 5, SV("1234567890"), 9, 0, S("a"));
+ test(S("abcde"), 1, 5, SV("1234567890"), 9, 1, S("a0"));
+ test(S("abcde"), 1, 5, SV("1234567890"), 9, 2, S("a0"));
+ test(S("abcde"), 1, 5, SV("1234567890"), 10, 0, S("a"));
+ test(S("abcde"), 1, 5, SV("1234567890"), 10, 1, S("a"));
+ test(S("abcde"), 1, 5, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcde"), 1, 5, SV("12345678901234567890"), 0, 0, S("a"));
+ test(S("abcde"), 1, 5, SV("12345678901234567890"), 0, 1, S("a1"));
+ test(S("abcde"), 1, 5, SV("12345678901234567890"), 0, 10, S("a1234567890"));
+ test(S("abcde"), 1, 5, SV("12345678901234567890"), 0, 19, S("a1234567890123456789"));
+ test(S("abcde"), 1, 5, SV("12345678901234567890"), 0, 20, S("a12345678901234567890"));
+ test(S("abcde"), 1, 5, SV("12345678901234567890"), 0, 21, S("a12345678901234567890"));
+ test(S("abcde"), 1, 5, SV("12345678901234567890"), 1, 0, S("a"));
+ test(S("abcde"), 1, 5, SV("12345678901234567890"), 1, 1, S("a2"));
+ test(S("abcde"), 1, 5, SV("12345678901234567890"), 1, 9, S("a234567890"));
+ test(S("abcde"), 1, 5, SV("12345678901234567890"), 1, 18, S("a234567890123456789"));
+ test(S("abcde"), 1, 5, SV("12345678901234567890"), 1, 19, S("a2345678901234567890"));
+ test(S("abcde"), 1, 5, SV("12345678901234567890"), 1, 20, S("a2345678901234567890"));
+ test(S("abcde"), 1, 5, SV("12345678901234567890"), 10, 0, S("a"));
+ test(S("abcde"), 1, 5, SV("12345678901234567890"), 10, 1, S("a1"));
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test11()
-{
- test(S("abcde"), 1, 5, SV("12345678901234567890"), 10, 5, S("a12345"));
- test(S("abcde"), 1, 5, SV("12345678901234567890"), 10, 9, S("a123456789"));
- test(S("abcde"), 1, 5, SV("12345678901234567890"), 10, 10, S("a1234567890"));
- test(S("abcde"), 1, 5, SV("12345678901234567890"), 10, 11, S("a1234567890"));
- test(S("abcde"), 1, 5, SV("12345678901234567890"), 19, 0, S("a"));
- test(S("abcde"), 1, 5, SV("12345678901234567890"), 19, 1, S("a0"));
- test(S("abcde"), 1, 5, SV("12345678901234567890"), 19, 2, S("a0"));
- test(S("abcde"), 1, 5, SV("12345678901234567890"), 20, 0, S("a"));
- test(S("abcde"), 1, 5, SV("12345678901234567890"), 20, 1, S("a"));
- test(S("abcde"), 1, 5, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcde"), 2, 0, SV(""), 0, 0, S("abcde"));
- test(S("abcde"), 2, 0, SV(""), 0, 1, S("abcde"));
- test(S("abcde"), 2, 0, SV(""), 1, 0, S("can't happen"));
- test(S("abcde"), 2, 0, SV("12345"), 0, 0, S("abcde"));
- test(S("abcde"), 2, 0, SV("12345"), 0, 1, S("ab1cde"));
- test(S("abcde"), 2, 0, SV("12345"), 0, 2, S("ab12cde"));
- test(S("abcde"), 2, 0, SV("12345"), 0, 4, S("ab1234cde"));
- test(S("abcde"), 2, 0, SV("12345"), 0, 5, S("ab12345cde"));
- test(S("abcde"), 2, 0, SV("12345"), 0, 6, S("ab12345cde"));
- test(S("abcde"), 2, 0, SV("12345"), 1, 0, S("abcde"));
- test(S("abcde"), 2, 0, SV("12345"), 1, 1, S("ab2cde"));
- test(S("abcde"), 2, 0, SV("12345"), 1, 2, S("ab23cde"));
- test(S("abcde"), 2, 0, SV("12345"), 1, 3, S("ab234cde"));
- test(S("abcde"), 2, 0, SV("12345"), 1, 4, S("ab2345cde"));
- test(S("abcde"), 2, 0, SV("12345"), 1, 5, S("ab2345cde"));
- test(S("abcde"), 2, 0, SV("12345"), 2, 0, S("abcde"));
- test(S("abcde"), 2, 0, SV("12345"), 2, 1, S("ab3cde"));
- test(S("abcde"), 2, 0, SV("12345"), 2, 2, S("ab34cde"));
- test(S("abcde"), 2, 0, SV("12345"), 2, 3, S("ab345cde"));
- test(S("abcde"), 2, 0, SV("12345"), 2, 4, S("ab345cde"));
- test(S("abcde"), 2, 0, SV("12345"), 4, 0, S("abcde"));
- test(S("abcde"), 2, 0, SV("12345"), 4, 1, S("ab5cde"));
- test(S("abcde"), 2, 0, SV("12345"), 4, 2, S("ab5cde"));
- test(S("abcde"), 2, 0, SV("12345"), 5, 0, S("abcde"));
- test(S("abcde"), 2, 0, SV("12345"), 5, 1, S("abcde"));
- test(S("abcde"), 2, 0, SV("12345"), 6, 0, S("can't happen"));
- test(S("abcde"), 2, 0, SV("1234567890"), 0, 0, S("abcde"));
- test(S("abcde"), 2, 0, SV("1234567890"), 0, 1, S("ab1cde"));
- test(S("abcde"), 2, 0, SV("1234567890"), 0, 5, S("ab12345cde"));
- test(S("abcde"), 2, 0, SV("1234567890"), 0, 9, S("ab123456789cde"));
- test(S("abcde"), 2, 0, SV("1234567890"), 0, 10, S("ab1234567890cde"));
- test(S("abcde"), 2, 0, SV("1234567890"), 0, 11, S("ab1234567890cde"));
- test(S("abcde"), 2, 0, SV("1234567890"), 1, 0, S("abcde"));
- test(S("abcde"), 2, 0, SV("1234567890"), 1, 1, S("ab2cde"));
- test(S("abcde"), 2, 0, SV("1234567890"), 1, 4, S("ab2345cde"));
- test(S("abcde"), 2, 0, SV("1234567890"), 1, 8, S("ab23456789cde"));
- test(S("abcde"), 2, 0, SV("1234567890"), 1, 9, S("ab234567890cde"));
- test(S("abcde"), 2, 0, SV("1234567890"), 1, 10, S("ab234567890cde"));
- test(S("abcde"), 2, 0, SV("1234567890"), 5, 0, S("abcde"));
- test(S("abcde"), 2, 0, SV("1234567890"), 5, 1, S("ab6cde"));
- test(S("abcde"), 2, 0, SV("1234567890"), 5, 2, S("ab67cde"));
- test(S("abcde"), 2, 0, SV("1234567890"), 5, 4, S("ab6789cde"));
- test(S("abcde"), 2, 0, SV("1234567890"), 5, 5, S("ab67890cde"));
- test(S("abcde"), 2, 0, SV("1234567890"), 5, 6, S("ab67890cde"));
- test(S("abcde"), 2, 0, SV("1234567890"), 9, 0, S("abcde"));
- test(S("abcde"), 2, 0, SV("1234567890"), 9, 1, S("ab0cde"));
- test(S("abcde"), 2, 0, SV("1234567890"), 9, 2, S("ab0cde"));
- test(S("abcde"), 2, 0, SV("1234567890"), 10, 0, S("abcde"));
- test(S("abcde"), 2, 0, SV("1234567890"), 10, 1, S("abcde"));
- test(S("abcde"), 2, 0, SV("1234567890"), 11, 0, S("can't happen"));
- test(S("abcde"), 2, 0, SV("12345678901234567890"), 0, 0, S("abcde"));
- test(S("abcde"), 2, 0, SV("12345678901234567890"), 0, 1, S("ab1cde"));
- test(S("abcde"), 2, 0, SV("12345678901234567890"), 0, 10, S("ab1234567890cde"));
- test(S("abcde"), 2, 0, SV("12345678901234567890"), 0, 19, S("ab1234567890123456789cde"));
- test(S("abcde"), 2, 0, SV("12345678901234567890"), 0, 20, S("ab12345678901234567890cde"));
- test(S("abcde"), 2, 0, SV("12345678901234567890"), 0, 21, S("ab12345678901234567890cde"));
- test(S("abcde"), 2, 0, SV("12345678901234567890"), 1, 0, S("abcde"));
- test(S("abcde"), 2, 0, SV("12345678901234567890"), 1, 1, S("ab2cde"));
- test(S("abcde"), 2, 0, SV("12345678901234567890"), 1, 9, S("ab234567890cde"));
- test(S("abcde"), 2, 0, SV("12345678901234567890"), 1, 18, S("ab234567890123456789cde"));
- test(S("abcde"), 2, 0, SV("12345678901234567890"), 1, 19, S("ab2345678901234567890cde"));
- test(S("abcde"), 2, 0, SV("12345678901234567890"), 1, 20, S("ab2345678901234567890cde"));
- test(S("abcde"), 2, 0, SV("12345678901234567890"), 10, 0, S("abcde"));
- test(S("abcde"), 2, 0, SV("12345678901234567890"), 10, 1, S("ab1cde"));
- test(S("abcde"), 2, 0, SV("12345678901234567890"), 10, 5, S("ab12345cde"));
- test(S("abcde"), 2, 0, SV("12345678901234567890"), 10, 9, S("ab123456789cde"));
- test(S("abcde"), 2, 0, SV("12345678901234567890"), 10, 10, S("ab1234567890cde"));
- test(S("abcde"), 2, 0, SV("12345678901234567890"), 10, 11, S("ab1234567890cde"));
- test(S("abcde"), 2, 0, SV("12345678901234567890"), 19, 0, S("abcde"));
- test(S("abcde"), 2, 0, SV("12345678901234567890"), 19, 1, S("ab0cde"));
- test(S("abcde"), 2, 0, SV("12345678901234567890"), 19, 2, S("ab0cde"));
- test(S("abcde"), 2, 0, SV("12345678901234567890"), 20, 0, S("abcde"));
- test(S("abcde"), 2, 0, SV("12345678901234567890"), 20, 1, S("abcde"));
- test(S("abcde"), 2, 0, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcde"), 2, 1, SV(""), 0, 0, S("abde"));
- test(S("abcde"), 2, 1, SV(""), 0, 1, S("abde"));
- test(S("abcde"), 2, 1, SV(""), 1, 0, S("can't happen"));
- test(S("abcde"), 2, 1, SV("12345"), 0, 0, S("abde"));
- test(S("abcde"), 2, 1, SV("12345"), 0, 1, S("ab1de"));
- test(S("abcde"), 2, 1, SV("12345"), 0, 2, S("ab12de"));
- test(S("abcde"), 2, 1, SV("12345"), 0, 4, S("ab1234de"));
- test(S("abcde"), 2, 1, SV("12345"), 0, 5, S("ab12345de"));
- test(S("abcde"), 2, 1, SV("12345"), 0, 6, S("ab12345de"));
- test(S("abcde"), 2, 1, SV("12345"), 1, 0, S("abde"));
- test(S("abcde"), 2, 1, SV("12345"), 1, 1, S("ab2de"));
- test(S("abcde"), 2, 1, SV("12345"), 1, 2, S("ab23de"));
- test(S("abcde"), 2, 1, SV("12345"), 1, 3, S("ab234de"));
- test(S("abcde"), 2, 1, SV("12345"), 1, 4, S("ab2345de"));
- test(S("abcde"), 2, 1, SV("12345"), 1, 5, S("ab2345de"));
- test(S("abcde"), 2, 1, SV("12345"), 2, 0, S("abde"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test11() {
+ test(S("abcde"), 1, 5, SV("12345678901234567890"), 10, 5, S("a12345"));
+ test(S("abcde"), 1, 5, SV("12345678901234567890"), 10, 9, S("a123456789"));
+ test(S("abcde"), 1, 5, SV("12345678901234567890"), 10, 10, S("a1234567890"));
+ test(S("abcde"), 1, 5, SV("12345678901234567890"), 10, 11, S("a1234567890"));
+ test(S("abcde"), 1, 5, SV("12345678901234567890"), 19, 0, S("a"));
+ test(S("abcde"), 1, 5, SV("12345678901234567890"), 19, 1, S("a0"));
+ test(S("abcde"), 1, 5, SV("12345678901234567890"), 19, 2, S("a0"));
+ test(S("abcde"), 1, 5, SV("12345678901234567890"), 20, 0, S("a"));
+ test(S("abcde"), 1, 5, SV("12345678901234567890"), 20, 1, S("a"));
+ test(S("abcde"), 1, 5, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcde"), 2, 0, SV(""), 0, 0, S("abcde"));
+ test(S("abcde"), 2, 0, SV(""), 0, 1, S("abcde"));
+ test(S("abcde"), 2, 0, SV(""), 1, 0, S("can't happen"));
+ test(S("abcde"), 2, 0, SV("12345"), 0, 0, S("abcde"));
+ test(S("abcde"), 2, 0, SV("12345"), 0, 1, S("ab1cde"));
+ test(S("abcde"), 2, 0, SV("12345"), 0, 2, S("ab12cde"));
+ test(S("abcde"), 2, 0, SV("12345"), 0, 4, S("ab1234cde"));
+ test(S("abcde"), 2, 0, SV("12345"), 0, 5, S("ab12345cde"));
+ test(S("abcde"), 2, 0, SV("12345"), 0, 6, S("ab12345cde"));
+ test(S("abcde"), 2, 0, SV("12345"), 1, 0, S("abcde"));
+ test(S("abcde"), 2, 0, SV("12345"), 1, 1, S("ab2cde"));
+ test(S("abcde"), 2, 0, SV("12345"), 1, 2, S("ab23cde"));
+ test(S("abcde"), 2, 0, SV("12345"), 1, 3, S("ab234cde"));
+ test(S("abcde"), 2, 0, SV("12345"), 1, 4, S("ab2345cde"));
+ test(S("abcde"), 2, 0, SV("12345"), 1, 5, S("ab2345cde"));
+ test(S("abcde"), 2, 0, SV("12345"), 2, 0, S("abcde"));
+ test(S("abcde"), 2, 0, SV("12345"), 2, 1, S("ab3cde"));
+ test(S("abcde"), 2, 0, SV("12345"), 2, 2, S("ab34cde"));
+ test(S("abcde"), 2, 0, SV("12345"), 2, 3, S("ab345cde"));
+ test(S("abcde"), 2, 0, SV("12345"), 2, 4, S("ab345cde"));
+ test(S("abcde"), 2, 0, SV("12345"), 4, 0, S("abcde"));
+ test(S("abcde"), 2, 0, SV("12345"), 4, 1, S("ab5cde"));
+ test(S("abcde"), 2, 0, SV("12345"), 4, 2, S("ab5cde"));
+ test(S("abcde"), 2, 0, SV("12345"), 5, 0, S("abcde"));
+ test(S("abcde"), 2, 0, SV("12345"), 5, 1, S("abcde"));
+ test(S("abcde"), 2, 0, SV("12345"), 6, 0, S("can't happen"));
+ test(S("abcde"), 2, 0, SV("1234567890"), 0, 0, S("abcde"));
+ test(S("abcde"), 2, 0, SV("1234567890"), 0, 1, S("ab1cde"));
+ test(S("abcde"), 2, 0, SV("1234567890"), 0, 5, S("ab12345cde"));
+ test(S("abcde"), 2, 0, SV("1234567890"), 0, 9, S("ab123456789cde"));
+ test(S("abcde"), 2, 0, SV("1234567890"), 0, 10, S("ab1234567890cde"));
+ test(S("abcde"), 2, 0, SV("1234567890"), 0, 11, S("ab1234567890cde"));
+ test(S("abcde"), 2, 0, SV("1234567890"), 1, 0, S("abcde"));
+ test(S("abcde"), 2, 0, SV("1234567890"), 1, 1, S("ab2cde"));
+ test(S("abcde"), 2, 0, SV("1234567890"), 1, 4, S("ab2345cde"));
+ test(S("abcde"), 2, 0, SV("1234567890"), 1, 8, S("ab23456789cde"));
+ test(S("abcde"), 2, 0, SV("1234567890"), 1, 9, S("ab234567890cde"));
+ test(S("abcde"), 2, 0, SV("1234567890"), 1, 10, S("ab234567890cde"));
+ test(S("abcde"), 2, 0, SV("1234567890"), 5, 0, S("abcde"));
+ test(S("abcde"), 2, 0, SV("1234567890"), 5, 1, S("ab6cde"));
+ test(S("abcde"), 2, 0, SV("1234567890"), 5, 2, S("ab67cde"));
+ test(S("abcde"), 2, 0, SV("1234567890"), 5, 4, S("ab6789cde"));
+ test(S("abcde"), 2, 0, SV("1234567890"), 5, 5, S("ab67890cde"));
+ test(S("abcde"), 2, 0, SV("1234567890"), 5, 6, S("ab67890cde"));
+ test(S("abcde"), 2, 0, SV("1234567890"), 9, 0, S("abcde"));
+ test(S("abcde"), 2, 0, SV("1234567890"), 9, 1, S("ab0cde"));
+ test(S("abcde"), 2, 0, SV("1234567890"), 9, 2, S("ab0cde"));
+ test(S("abcde"), 2, 0, SV("1234567890"), 10, 0, S("abcde"));
+ test(S("abcde"), 2, 0, SV("1234567890"), 10, 1, S("abcde"));
+ test(S("abcde"), 2, 0, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcde"), 2, 0, SV("12345678901234567890"), 0, 0, S("abcde"));
+ test(S("abcde"), 2, 0, SV("12345678901234567890"), 0, 1, S("ab1cde"));
+ test(S("abcde"), 2, 0, SV("12345678901234567890"), 0, 10, S("ab1234567890cde"));
+ test(S("abcde"), 2, 0, SV("12345678901234567890"), 0, 19, S("ab1234567890123456789cde"));
+ test(S("abcde"), 2, 0, SV("12345678901234567890"), 0, 20, S("ab12345678901234567890cde"));
+ test(S("abcde"), 2, 0, SV("12345678901234567890"), 0, 21, S("ab12345678901234567890cde"));
+ test(S("abcde"), 2, 0, SV("12345678901234567890"), 1, 0, S("abcde"));
+ test(S("abcde"), 2, 0, SV("12345678901234567890"), 1, 1, S("ab2cde"));
+ test(S("abcde"), 2, 0, SV("12345678901234567890"), 1, 9, S("ab234567890cde"));
+ test(S("abcde"), 2, 0, SV("12345678901234567890"), 1, 18, S("ab234567890123456789cde"));
+ test(S("abcde"), 2, 0, SV("12345678901234567890"), 1, 19, S("ab2345678901234567890cde"));
+ test(S("abcde"), 2, 0, SV("12345678901234567890"), 1, 20, S("ab2345678901234567890cde"));
+ test(S("abcde"), 2, 0, SV("12345678901234567890"), 10, 0, S("abcde"));
+ test(S("abcde"), 2, 0, SV("12345678901234567890"), 10, 1, S("ab1cde"));
+ test(S("abcde"), 2, 0, SV("12345678901234567890"), 10, 5, S("ab12345cde"));
+ test(S("abcde"), 2, 0, SV("12345678901234567890"), 10, 9, S("ab123456789cde"));
+ test(S("abcde"), 2, 0, SV("12345678901234567890"), 10, 10, S("ab1234567890cde"));
+ test(S("abcde"), 2, 0, SV("12345678901234567890"), 10, 11, S("ab1234567890cde"));
+ test(S("abcde"), 2, 0, SV("12345678901234567890"), 19, 0, S("abcde"));
+ test(S("abcde"), 2, 0, SV("12345678901234567890"), 19, 1, S("ab0cde"));
+ test(S("abcde"), 2, 0, SV("12345678901234567890"), 19, 2, S("ab0cde"));
+ test(S("abcde"), 2, 0, SV("12345678901234567890"), 20, 0, S("abcde"));
+ test(S("abcde"), 2, 0, SV("12345678901234567890"), 20, 1, S("abcde"));
+ test(S("abcde"), 2, 0, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcde"), 2, 1, SV(""), 0, 0, S("abde"));
+ test(S("abcde"), 2, 1, SV(""), 0, 1, S("abde"));
+ test(S("abcde"), 2, 1, SV(""), 1, 0, S("can't happen"));
+ test(S("abcde"), 2, 1, SV("12345"), 0, 0, S("abde"));
+ test(S("abcde"), 2, 1, SV("12345"), 0, 1, S("ab1de"));
+ test(S("abcde"), 2, 1, SV("12345"), 0, 2, S("ab12de"));
+ test(S("abcde"), 2, 1, SV("12345"), 0, 4, S("ab1234de"));
+ test(S("abcde"), 2, 1, SV("12345"), 0, 5, S("ab12345de"));
+ test(S("abcde"), 2, 1, SV("12345"), 0, 6, S("ab12345de"));
+ test(S("abcde"), 2, 1, SV("12345"), 1, 0, S("abde"));
+ test(S("abcde"), 2, 1, SV("12345"), 1, 1, S("ab2de"));
+ test(S("abcde"), 2, 1, SV("12345"), 1, 2, S("ab23de"));
+ test(S("abcde"), 2, 1, SV("12345"), 1, 3, S("ab234de"));
+ test(S("abcde"), 2, 1, SV("12345"), 1, 4, S("ab2345de"));
+ test(S("abcde"), 2, 1, SV("12345"), 1, 5, S("ab2345de"));
+ test(S("abcde"), 2, 1, SV("12345"), 2, 0, S("abde"));
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test12()
-{
- test(S("abcde"), 2, 1, SV("12345"), 2, 1, S("ab3de"));
- test(S("abcde"), 2, 1, SV("12345"), 2, 2, S("ab34de"));
- test(S("abcde"), 2, 1, SV("12345"), 2, 3, S("ab345de"));
- test(S("abcde"), 2, 1, SV("12345"), 2, 4, S("ab345de"));
- test(S("abcde"), 2, 1, SV("12345"), 4, 0, S("abde"));
- test(S("abcde"), 2, 1, SV("12345"), 4, 1, S("ab5de"));
- test(S("abcde"), 2, 1, SV("12345"), 4, 2, S("ab5de"));
- test(S("abcde"), 2, 1, SV("12345"), 5, 0, S("abde"));
- test(S("abcde"), 2, 1, SV("12345"), 5, 1, S("abde"));
- test(S("abcde"), 2, 1, SV("12345"), 6, 0, S("can't happen"));
- test(S("abcde"), 2, 1, SV("1234567890"), 0, 0, S("abde"));
- test(S("abcde"), 2, 1, SV("1234567890"), 0, 1, S("ab1de"));
- test(S("abcde"), 2, 1, SV("1234567890"), 0, 5, S("ab12345de"));
- test(S("abcde"), 2, 1, SV("1234567890"), 0, 9, S("ab123456789de"));
- test(S("abcde"), 2, 1, SV("1234567890"), 0, 10, S("ab1234567890de"));
- test(S("abcde"), 2, 1, SV("1234567890"), 0, 11, S("ab1234567890de"));
- test(S("abcde"), 2, 1, SV("1234567890"), 1, 0, S("abde"));
- test(S("abcde"), 2, 1, SV("1234567890"), 1, 1, S("ab2de"));
- test(S("abcde"), 2, 1, SV("1234567890"), 1, 4, S("ab2345de"));
- test(S("abcde"), 2, 1, SV("1234567890"), 1, 8, S("ab23456789de"));
- test(S("abcde"), 2, 1, SV("1234567890"), 1, 9, S("ab234567890de"));
- test(S("abcde"), 2, 1, SV("1234567890"), 1, 10, S("ab234567890de"));
- test(S("abcde"), 2, 1, SV("1234567890"), 5, 0, S("abde"));
- test(S("abcde"), 2, 1, SV("1234567890"), 5, 1, S("ab6de"));
- test(S("abcde"), 2, 1, SV("1234567890"), 5, 2, S("ab67de"));
- test(S("abcde"), 2, 1, SV("1234567890"), 5, 4, S("ab6789de"));
- test(S("abcde"), 2, 1, SV("1234567890"), 5, 5, S("ab67890de"));
- test(S("abcde"), 2, 1, SV("1234567890"), 5, 6, S("ab67890de"));
- test(S("abcde"), 2, 1, SV("1234567890"), 9, 0, S("abde"));
- test(S("abcde"), 2, 1, SV("1234567890"), 9, 1, S("ab0de"));
- test(S("abcde"), 2, 1, SV("1234567890"), 9, 2, S("ab0de"));
- test(S("abcde"), 2, 1, SV("1234567890"), 10, 0, S("abde"));
- test(S("abcde"), 2, 1, SV("1234567890"), 10, 1, S("abde"));
- test(S("abcde"), 2, 1, SV("1234567890"), 11, 0, S("can't happen"));
- test(S("abcde"), 2, 1, SV("12345678901234567890"), 0, 0, S("abde"));
- test(S("abcde"), 2, 1, SV("12345678901234567890"), 0, 1, S("ab1de"));
- test(S("abcde"), 2, 1, SV("12345678901234567890"), 0, 10, S("ab1234567890de"));
- test(S("abcde"), 2, 1, SV("12345678901234567890"), 0, 19, S("ab1234567890123456789de"));
- test(S("abcde"), 2, 1, SV("12345678901234567890"), 0, 20, S("ab12345678901234567890de"));
- test(S("abcde"), 2, 1, SV("12345678901234567890"), 0, 21, S("ab12345678901234567890de"));
- test(S("abcde"), 2, 1, SV("12345678901234567890"), 1, 0, S("abde"));
- test(S("abcde"), 2, 1, SV("12345678901234567890"), 1, 1, S("ab2de"));
- test(S("abcde"), 2, 1, SV("12345678901234567890"), 1, 9, S("ab234567890de"));
- test(S("abcde"), 2, 1, SV("12345678901234567890"), 1, 18, S("ab234567890123456789de"));
- test(S("abcde"), 2, 1, SV("12345678901234567890"), 1, 19, S("ab2345678901234567890de"));
- test(S("abcde"), 2, 1, SV("12345678901234567890"), 1, 20, S("ab2345678901234567890de"));
- test(S("abcde"), 2, 1, SV("12345678901234567890"), 10, 0, S("abde"));
- test(S("abcde"), 2, 1, SV("12345678901234567890"), 10, 1, S("ab1de"));
- test(S("abcde"), 2, 1, SV("12345678901234567890"), 10, 5, S("ab12345de"));
- test(S("abcde"), 2, 1, SV("12345678901234567890"), 10, 9, S("ab123456789de"));
- test(S("abcde"), 2, 1, SV("12345678901234567890"), 10, 10, S("ab1234567890de"));
- test(S("abcde"), 2, 1, SV("12345678901234567890"), 10, 11, S("ab1234567890de"));
- test(S("abcde"), 2, 1, SV("12345678901234567890"), 19, 0, S("abde"));
- test(S("abcde"), 2, 1, SV("12345678901234567890"), 19, 1, S("ab0de"));
- test(S("abcde"), 2, 1, SV("12345678901234567890"), 19, 2, S("ab0de"));
- test(S("abcde"), 2, 1, SV("12345678901234567890"), 20, 0, S("abde"));
- test(S("abcde"), 2, 1, SV("12345678901234567890"), 20, 1, S("abde"));
- test(S("abcde"), 2, 1, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcde"), 2, 2, SV(""), 0, 0, S("abe"));
- test(S("abcde"), 2, 2, SV(""), 0, 1, S("abe"));
- test(S("abcde"), 2, 2, SV(""), 1, 0, S("can't happen"));
- test(S("abcde"), 2, 2, SV("12345"), 0, 0, S("abe"));
- test(S("abcde"), 2, 2, SV("12345"), 0, 1, S("ab1e"));
- test(S("abcde"), 2, 2, SV("12345"), 0, 2, S("ab12e"));
- test(S("abcde"), 2, 2, SV("12345"), 0, 4, S("ab1234e"));
- test(S("abcde"), 2, 2, SV("12345"), 0, 5, S("ab12345e"));
- test(S("abcde"), 2, 2, SV("12345"), 0, 6, S("ab12345e"));
- test(S("abcde"), 2, 2, SV("12345"), 1, 0, S("abe"));
- test(S("abcde"), 2, 2, SV("12345"), 1, 1, S("ab2e"));
- test(S("abcde"), 2, 2, SV("12345"), 1, 2, S("ab23e"));
- test(S("abcde"), 2, 2, SV("12345"), 1, 3, S("ab234e"));
- test(S("abcde"), 2, 2, SV("12345"), 1, 4, S("ab2345e"));
- test(S("abcde"), 2, 2, SV("12345"), 1, 5, S("ab2345e"));
- test(S("abcde"), 2, 2, SV("12345"), 2, 0, S("abe"));
- test(S("abcde"), 2, 2, SV("12345"), 2, 1, S("ab3e"));
- test(S("abcde"), 2, 2, SV("12345"), 2, 2, S("ab34e"));
- test(S("abcde"), 2, 2, SV("12345"), 2, 3, S("ab345e"));
- test(S("abcde"), 2, 2, SV("12345"), 2, 4, S("ab345e"));
- test(S("abcde"), 2, 2, SV("12345"), 4, 0, S("abe"));
- test(S("abcde"), 2, 2, SV("12345"), 4, 1, S("ab5e"));
- test(S("abcde"), 2, 2, SV("12345"), 4, 2, S("ab5e"));
- test(S("abcde"), 2, 2, SV("12345"), 5, 0, S("abe"));
- test(S("abcde"), 2, 2, SV("12345"), 5, 1, S("abe"));
- test(S("abcde"), 2, 2, SV("12345"), 6, 0, S("can't happen"));
- test(S("abcde"), 2, 2, SV("1234567890"), 0, 0, S("abe"));
- test(S("abcde"), 2, 2, SV("1234567890"), 0, 1, S("ab1e"));
- test(S("abcde"), 2, 2, SV("1234567890"), 0, 5, S("ab12345e"));
- test(S("abcde"), 2, 2, SV("1234567890"), 0, 9, S("ab123456789e"));
- test(S("abcde"), 2, 2, SV("1234567890"), 0, 10, S("ab1234567890e"));
- test(S("abcde"), 2, 2, SV("1234567890"), 0, 11, S("ab1234567890e"));
- test(S("abcde"), 2, 2, SV("1234567890"), 1, 0, S("abe"));
- test(S("abcde"), 2, 2, SV("1234567890"), 1, 1, S("ab2e"));
- test(S("abcde"), 2, 2, SV("1234567890"), 1, 4, S("ab2345e"));
- test(S("abcde"), 2, 2, SV("1234567890"), 1, 8, S("ab23456789e"));
- test(S("abcde"), 2, 2, SV("1234567890"), 1, 9, S("ab234567890e"));
- test(S("abcde"), 2, 2, SV("1234567890"), 1, 10, S("ab234567890e"));
- test(S("abcde"), 2, 2, SV("1234567890"), 5, 0, S("abe"));
- test(S("abcde"), 2, 2, SV("1234567890"), 5, 1, S("ab6e"));
- test(S("abcde"), 2, 2, SV("1234567890"), 5, 2, S("ab67e"));
- test(S("abcde"), 2, 2, SV("1234567890"), 5, 4, S("ab6789e"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test12() {
+ test(S("abcde"), 2, 1, SV("12345"), 2, 1, S("ab3de"));
+ test(S("abcde"), 2, 1, SV("12345"), 2, 2, S("ab34de"));
+ test(S("abcde"), 2, 1, SV("12345"), 2, 3, S("ab345de"));
+ test(S("abcde"), 2, 1, SV("12345"), 2, 4, S("ab345de"));
+ test(S("abcde"), 2, 1, SV("12345"), 4, 0, S("abde"));
+ test(S("abcde"), 2, 1, SV("12345"), 4, 1, S("ab5de"));
+ test(S("abcde"), 2, 1, SV("12345"), 4, 2, S("ab5de"));
+ test(S("abcde"), 2, 1, SV("12345"), 5, 0, S("abde"));
+ test(S("abcde"), 2, 1, SV("12345"), 5, 1, S("abde"));
+ test(S("abcde"), 2, 1, SV("12345"), 6, 0, S("can't happen"));
+ test(S("abcde"), 2, 1, SV("1234567890"), 0, 0, S("abde"));
+ test(S("abcde"), 2, 1, SV("1234567890"), 0, 1, S("ab1de"));
+ test(S("abcde"), 2, 1, SV("1234567890"), 0, 5, S("ab12345de"));
+ test(S("abcde"), 2, 1, SV("1234567890"), 0, 9, S("ab123456789de"));
+ test(S("abcde"), 2, 1, SV("1234567890"), 0, 10, S("ab1234567890de"));
+ test(S("abcde"), 2, 1, SV("1234567890"), 0, 11, S("ab1234567890de"));
+ test(S("abcde"), 2, 1, SV("1234567890"), 1, 0, S("abde"));
+ test(S("abcde"), 2, 1, SV("1234567890"), 1, 1, S("ab2de"));
+ test(S("abcde"), 2, 1, SV("1234567890"), 1, 4, S("ab2345de"));
+ test(S("abcde"), 2, 1, SV("1234567890"), 1, 8, S("ab23456789de"));
+ test(S("abcde"), 2, 1, SV("1234567890"), 1, 9, S("ab234567890de"));
+ test(S("abcde"), 2, 1, SV("1234567890"), 1, 10, S("ab234567890de"));
+ test(S("abcde"), 2, 1, SV("1234567890"), 5, 0, S("abde"));
+ test(S("abcde"), 2, 1, SV("1234567890"), 5, 1, S("ab6de"));
+ test(S("abcde"), 2, 1, SV("1234567890"), 5, 2, S("ab67de"));
+ test(S("abcde"), 2, 1, SV("1234567890"), 5, 4, S("ab6789de"));
+ test(S("abcde"), 2, 1, SV("1234567890"), 5, 5, S("ab67890de"));
+ test(S("abcde"), 2, 1, SV("1234567890"), 5, 6, S("ab67890de"));
+ test(S("abcde"), 2, 1, SV("1234567890"), 9, 0, S("abde"));
+ test(S("abcde"), 2, 1, SV("1234567890"), 9, 1, S("ab0de"));
+ test(S("abcde"), 2, 1, SV("1234567890"), 9, 2, S("ab0de"));
+ test(S("abcde"), 2, 1, SV("1234567890"), 10, 0, S("abde"));
+ test(S("abcde"), 2, 1, SV("1234567890"), 10, 1, S("abde"));
+ test(S("abcde"), 2, 1, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcde"), 2, 1, SV("12345678901234567890"), 0, 0, S("abde"));
+ test(S("abcde"), 2, 1, SV("12345678901234567890"), 0, 1, S("ab1de"));
+ test(S("abcde"), 2, 1, SV("12345678901234567890"), 0, 10, S("ab1234567890de"));
+ test(S("abcde"), 2, 1, SV("12345678901234567890"), 0, 19, S("ab1234567890123456789de"));
+ test(S("abcde"), 2, 1, SV("12345678901234567890"), 0, 20, S("ab12345678901234567890de"));
+ test(S("abcde"), 2, 1, SV("12345678901234567890"), 0, 21, S("ab12345678901234567890de"));
+ test(S("abcde"), 2, 1, SV("12345678901234567890"), 1, 0, S("abde"));
+ test(S("abcde"), 2, 1, SV("12345678901234567890"), 1, 1, S("ab2de"));
+ test(S("abcde"), 2, 1, SV("12345678901234567890"), 1, 9, S("ab234567890de"));
+ test(S("abcde"), 2, 1, SV("12345678901234567890"), 1, 18, S("ab234567890123456789de"));
+ test(S("abcde"), 2, 1, SV("12345678901234567890"), 1, 19, S("ab2345678901234567890de"));
+ test(S("abcde"), 2, 1, SV("12345678901234567890"), 1, 20, S("ab2345678901234567890de"));
+ test(S("abcde"), 2, 1, SV("12345678901234567890"), 10, 0, S("abde"));
+ test(S("abcde"), 2, 1, SV("12345678901234567890"), 10, 1, S("ab1de"));
+ test(S("abcde"), 2, 1, SV("12345678901234567890"), 10, 5, S("ab12345de"));
+ test(S("abcde"), 2, 1, SV("12345678901234567890"), 10, 9, S("ab123456789de"));
+ test(S("abcde"), 2, 1, SV("12345678901234567890"), 10, 10, S("ab1234567890de"));
+ test(S("abcde"), 2, 1, SV("12345678901234567890"), 10, 11, S("ab1234567890de"));
+ test(S("abcde"), 2, 1, SV("12345678901234567890"), 19, 0, S("abde"));
+ test(S("abcde"), 2, 1, SV("12345678901234567890"), 19, 1, S("ab0de"));
+ test(S("abcde"), 2, 1, SV("12345678901234567890"), 19, 2, S("ab0de"));
+ test(S("abcde"), 2, 1, SV("12345678901234567890"), 20, 0, S("abde"));
+ test(S("abcde"), 2, 1, SV("12345678901234567890"), 20, 1, S("abde"));
+ test(S("abcde"), 2, 1, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcde"), 2, 2, SV(""), 0, 0, S("abe"));
+ test(S("abcde"), 2, 2, SV(""), 0, 1, S("abe"));
+ test(S("abcde"), 2, 2, SV(""), 1, 0, S("can't happen"));
+ test(S("abcde"), 2, 2, SV("12345"), 0, 0, S("abe"));
+ test(S("abcde"), 2, 2, SV("12345"), 0, 1, S("ab1e"));
+ test(S("abcde"), 2, 2, SV("12345"), 0, 2, S("ab12e"));
+ test(S("abcde"), 2, 2, SV("12345"), 0, 4, S("ab1234e"));
+ test(S("abcde"), 2, 2, SV("12345"), 0, 5, S("ab12345e"));
+ test(S("abcde"), 2, 2, SV("12345"), 0, 6, S("ab12345e"));
+ test(S("abcde"), 2, 2, SV("12345"), 1, 0, S("abe"));
+ test(S("abcde"), 2, 2, SV("12345"), 1, 1, S("ab2e"));
+ test(S("abcde"), 2, 2, SV("12345"), 1, 2, S("ab23e"));
+ test(S("abcde"), 2, 2, SV("12345"), 1, 3, S("ab234e"));
+ test(S("abcde"), 2, 2, SV("12345"), 1, 4, S("ab2345e"));
+ test(S("abcde"), 2, 2, SV("12345"), 1, 5, S("ab2345e"));
+ test(S("abcde"), 2, 2, SV("12345"), 2, 0, S("abe"));
+ test(S("abcde"), 2, 2, SV("12345"), 2, 1, S("ab3e"));
+ test(S("abcde"), 2, 2, SV("12345"), 2, 2, S("ab34e"));
+ test(S("abcde"), 2, 2, SV("12345"), 2, 3, S("ab345e"));
+ test(S("abcde"), 2, 2, SV("12345"), 2, 4, S("ab345e"));
+ test(S("abcde"), 2, 2, SV("12345"), 4, 0, S("abe"));
+ test(S("abcde"), 2, 2, SV("12345"), 4, 1, S("ab5e"));
+ test(S("abcde"), 2, 2, SV("12345"), 4, 2, S("ab5e"));
+ test(S("abcde"), 2, 2, SV("12345"), 5, 0, S("abe"));
+ test(S("abcde"), 2, 2, SV("12345"), 5, 1, S("abe"));
+ test(S("abcde"), 2, 2, SV("12345"), 6, 0, S("can't happen"));
+ test(S("abcde"), 2, 2, SV("1234567890"), 0, 0, S("abe"));
+ test(S("abcde"), 2, 2, SV("1234567890"), 0, 1, S("ab1e"));
+ test(S("abcde"), 2, 2, SV("1234567890"), 0, 5, S("ab12345e"));
+ test(S("abcde"), 2, 2, SV("1234567890"), 0, 9, S("ab123456789e"));
+ test(S("abcde"), 2, 2, SV("1234567890"), 0, 10, S("ab1234567890e"));
+ test(S("abcde"), 2, 2, SV("1234567890"), 0, 11, S("ab1234567890e"));
+ test(S("abcde"), 2, 2, SV("1234567890"), 1, 0, S("abe"));
+ test(S("abcde"), 2, 2, SV("1234567890"), 1, 1, S("ab2e"));
+ test(S("abcde"), 2, 2, SV("1234567890"), 1, 4, S("ab2345e"));
+ test(S("abcde"), 2, 2, SV("1234567890"), 1, 8, S("ab23456789e"));
+ test(S("abcde"), 2, 2, SV("1234567890"), 1, 9, S("ab234567890e"));
+ test(S("abcde"), 2, 2, SV("1234567890"), 1, 10, S("ab234567890e"));
+ test(S("abcde"), 2, 2, SV("1234567890"), 5, 0, S("abe"));
+ test(S("abcde"), 2, 2, SV("1234567890"), 5, 1, S("ab6e"));
+ test(S("abcde"), 2, 2, SV("1234567890"), 5, 2, S("ab67e"));
+ test(S("abcde"), 2, 2, SV("1234567890"), 5, 4, S("ab6789e"));
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test13()
-{
- test(S("abcde"), 2, 2, SV("1234567890"), 5, 5, S("ab67890e"));
- test(S("abcde"), 2, 2, SV("1234567890"), 5, 6, S("ab67890e"));
- test(S("abcde"), 2, 2, SV("1234567890"), 9, 0, S("abe"));
- test(S("abcde"), 2, 2, SV("1234567890"), 9, 1, S("ab0e"));
- test(S("abcde"), 2, 2, SV("1234567890"), 9, 2, S("ab0e"));
- test(S("abcde"), 2, 2, SV("1234567890"), 10, 0, S("abe"));
- test(S("abcde"), 2, 2, SV("1234567890"), 10, 1, S("abe"));
- test(S("abcde"), 2, 2, SV("1234567890"), 11, 0, S("can't happen"));
- test(S("abcde"), 2, 2, SV("12345678901234567890"), 0, 0, S("abe"));
- test(S("abcde"), 2, 2, SV("12345678901234567890"), 0, 1, S("ab1e"));
- test(S("abcde"), 2, 2, SV("12345678901234567890"), 0, 10, S("ab1234567890e"));
- test(S("abcde"), 2, 2, SV("12345678901234567890"), 0, 19, S("ab1234567890123456789e"));
- test(S("abcde"), 2, 2, SV("12345678901234567890"), 0, 20, S("ab12345678901234567890e"));
- test(S("abcde"), 2, 2, SV("12345678901234567890"), 0, 21, S("ab12345678901234567890e"));
- test(S("abcde"), 2, 2, SV("12345678901234567890"), 1, 0, S("abe"));
- test(S("abcde"), 2, 2, SV("12345678901234567890"), 1, 1, S("ab2e"));
- test(S("abcde"), 2, 2, SV("12345678901234567890"), 1, 9, S("ab234567890e"));
- test(S("abcde"), 2, 2, SV("12345678901234567890"), 1, 18, S("ab234567890123456789e"));
- test(S("abcde"), 2, 2, SV("12345678901234567890"), 1, 19, S("ab2345678901234567890e"));
- test(S("abcde"), 2, 2, SV("12345678901234567890"), 1, 20, S("ab2345678901234567890e"));
- test(S("abcde"), 2, 2, SV("12345678901234567890"), 10, 0, S("abe"));
- test(S("abcde"), 2, 2, SV("12345678901234567890"), 10, 1, S("ab1e"));
- test(S("abcde"), 2, 2, SV("12345678901234567890"), 10, 5, S("ab12345e"));
- test(S("abcde"), 2, 2, SV("12345678901234567890"), 10, 9, S("ab123456789e"));
- test(S("abcde"), 2, 2, SV("12345678901234567890"), 10, 10, S("ab1234567890e"));
- test(S("abcde"), 2, 2, SV("12345678901234567890"), 10, 11, S("ab1234567890e"));
- test(S("abcde"), 2, 2, SV("12345678901234567890"), 19, 0, S("abe"));
- test(S("abcde"), 2, 2, SV("12345678901234567890"), 19, 1, S("ab0e"));
- test(S("abcde"), 2, 2, SV("12345678901234567890"), 19, 2, S("ab0e"));
- test(S("abcde"), 2, 2, SV("12345678901234567890"), 20, 0, S("abe"));
- test(S("abcde"), 2, 2, SV("12345678901234567890"), 20, 1, S("abe"));
- test(S("abcde"), 2, 2, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcde"), 2, 3, SV(""), 0, 0, S("ab"));
- test(S("abcde"), 2, 3, SV(""), 0, 1, S("ab"));
- test(S("abcde"), 2, 3, SV(""), 1, 0, S("can't happen"));
- test(S("abcde"), 2, 3, SV("12345"), 0, 0, S("ab"));
- test(S("abcde"), 2, 3, SV("12345"), 0, 1, S("ab1"));
- test(S("abcde"), 2, 3, SV("12345"), 0, 2, S("ab12"));
- test(S("abcde"), 2, 3, SV("12345"), 0, 4, S("ab1234"));
- test(S("abcde"), 2, 3, SV("12345"), 0, 5, S("ab12345"));
- test(S("abcde"), 2, 3, SV("12345"), 0, 6, S("ab12345"));
- test(S("abcde"), 2, 3, SV("12345"), 1, 0, S("ab"));
- test(S("abcde"), 2, 3, SV("12345"), 1, 1, S("ab2"));
- test(S("abcde"), 2, 3, SV("12345"), 1, 2, S("ab23"));
- test(S("abcde"), 2, 3, SV("12345"), 1, 3, S("ab234"));
- test(S("abcde"), 2, 3, SV("12345"), 1, 4, S("ab2345"));
- test(S("abcde"), 2, 3, SV("12345"), 1, 5, S("ab2345"));
- test(S("abcde"), 2, 3, SV("12345"), 2, 0, S("ab"));
- test(S("abcde"), 2, 3, SV("12345"), 2, 1, S("ab3"));
- test(S("abcde"), 2, 3, SV("12345"), 2, 2, S("ab34"));
- test(S("abcde"), 2, 3, SV("12345"), 2, 3, S("ab345"));
- test(S("abcde"), 2, 3, SV("12345"), 2, 4, S("ab345"));
- test(S("abcde"), 2, 3, SV("12345"), 4, 0, S("ab"));
- test(S("abcde"), 2, 3, SV("12345"), 4, 1, S("ab5"));
- test(S("abcde"), 2, 3, SV("12345"), 4, 2, S("ab5"));
- test(S("abcde"), 2, 3, SV("12345"), 5, 0, S("ab"));
- test(S("abcde"), 2, 3, SV("12345"), 5, 1, S("ab"));
- test(S("abcde"), 2, 3, SV("12345"), 6, 0, S("can't happen"));
- test(S("abcde"), 2, 3, SV("1234567890"), 0, 0, S("ab"));
- test(S("abcde"), 2, 3, SV("1234567890"), 0, 1, S("ab1"));
- test(S("abcde"), 2, 3, SV("1234567890"), 0, 5, S("ab12345"));
- test(S("abcde"), 2, 3, SV("1234567890"), 0, 9, S("ab123456789"));
- test(S("abcde"), 2, 3, SV("1234567890"), 0, 10, S("ab1234567890"));
- test(S("abcde"), 2, 3, SV("1234567890"), 0, 11, S("ab1234567890"));
- test(S("abcde"), 2, 3, SV("1234567890"), 1, 0, S("ab"));
- test(S("abcde"), 2, 3, SV("1234567890"), 1, 1, S("ab2"));
- test(S("abcde"), 2, 3, SV("1234567890"), 1, 4, S("ab2345"));
- test(S("abcde"), 2, 3, SV("1234567890"), 1, 8, S("ab23456789"));
- test(S("abcde"), 2, 3, SV("1234567890"), 1, 9, S("ab234567890"));
- test(S("abcde"), 2, 3, SV("1234567890"), 1, 10, S("ab234567890"));
- test(S("abcde"), 2, 3, SV("1234567890"), 5, 0, S("ab"));
- test(S("abcde"), 2, 3, SV("1234567890"), 5, 1, S("ab6"));
- test(S("abcde"), 2, 3, SV("1234567890"), 5, 2, S("ab67"));
- test(S("abcde"), 2, 3, SV("1234567890"), 5, 4, S("ab6789"));
- test(S("abcde"), 2, 3, SV("1234567890"), 5, 5, S("ab67890"));
- test(S("abcde"), 2, 3, SV("1234567890"), 5, 6, S("ab67890"));
- test(S("abcde"), 2, 3, SV("1234567890"), 9, 0, S("ab"));
- test(S("abcde"), 2, 3, SV("1234567890"), 9, 1, S("ab0"));
- test(S("abcde"), 2, 3, SV("1234567890"), 9, 2, S("ab0"));
- test(S("abcde"), 2, 3, SV("1234567890"), 10, 0, S("ab"));
- test(S("abcde"), 2, 3, SV("1234567890"), 10, 1, S("ab"));
- test(S("abcde"), 2, 3, SV("1234567890"), 11, 0, S("can't happen"));
- test(S("abcde"), 2, 3, SV("12345678901234567890"), 0, 0, S("ab"));
- test(S("abcde"), 2, 3, SV("12345678901234567890"), 0, 1, S("ab1"));
- test(S("abcde"), 2, 3, SV("12345678901234567890"), 0, 10, S("ab1234567890"));
- test(S("abcde"), 2, 3, SV("12345678901234567890"), 0, 19, S("ab1234567890123456789"));
- test(S("abcde"), 2, 3, SV("12345678901234567890"), 0, 20, S("ab12345678901234567890"));
- test(S("abcde"), 2, 3, SV("12345678901234567890"), 0, 21, S("ab12345678901234567890"));
- test(S("abcde"), 2, 3, SV("12345678901234567890"), 1, 0, S("ab"));
- test(S("abcde"), 2, 3, SV("12345678901234567890"), 1, 1, S("ab2"));
- test(S("abcde"), 2, 3, SV("12345678901234567890"), 1, 9, S("ab234567890"));
- test(S("abcde"), 2, 3, SV("12345678901234567890"), 1, 18, S("ab234567890123456789"));
- test(S("abcde"), 2, 3, SV("12345678901234567890"), 1, 19, S("ab2345678901234567890"));
- test(S("abcde"), 2, 3, SV("12345678901234567890"), 1, 20, S("ab2345678901234567890"));
- test(S("abcde"), 2, 3, SV("12345678901234567890"), 10, 0, S("ab"));
- test(S("abcde"), 2, 3, SV("12345678901234567890"), 10, 1, S("ab1"));
- test(S("abcde"), 2, 3, SV("12345678901234567890"), 10, 5, S("ab12345"));
- test(S("abcde"), 2, 3, SV("12345678901234567890"), 10, 9, S("ab123456789"));
- test(S("abcde"), 2, 3, SV("12345678901234567890"), 10, 10, S("ab1234567890"));
- test(S("abcde"), 2, 3, SV("12345678901234567890"), 10, 11, S("ab1234567890"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test13() {
+ test(S("abcde"), 2, 2, SV("1234567890"), 5, 5, S("ab67890e"));
+ test(S("abcde"), 2, 2, SV("1234567890"), 5, 6, S("ab67890e"));
+ test(S("abcde"), 2, 2, SV("1234567890"), 9, 0, S("abe"));
+ test(S("abcde"), 2, 2, SV("1234567890"), 9, 1, S("ab0e"));
+ test(S("abcde"), 2, 2, SV("1234567890"), 9, 2, S("ab0e"));
+ test(S("abcde"), 2, 2, SV("1234567890"), 10, 0, S("abe"));
+ test(S("abcde"), 2, 2, SV("1234567890"), 10, 1, S("abe"));
+ test(S("abcde"), 2, 2, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcde"), 2, 2, SV("12345678901234567890"), 0, 0, S("abe"));
+ test(S("abcde"), 2, 2, SV("12345678901234567890"), 0, 1, S("ab1e"));
+ test(S("abcde"), 2, 2, SV("12345678901234567890"), 0, 10, S("ab1234567890e"));
+ test(S("abcde"), 2, 2, SV("12345678901234567890"), 0, 19, S("ab1234567890123456789e"));
+ test(S("abcde"), 2, 2, SV("12345678901234567890"), 0, 20, S("ab12345678901234567890e"));
+ test(S("abcde"), 2, 2, SV("12345678901234567890"), 0, 21, S("ab12345678901234567890e"));
+ test(S("abcde"), 2, 2, SV("12345678901234567890"), 1, 0, S("abe"));
+ test(S("abcde"), 2, 2, SV("12345678901234567890"), 1, 1, S("ab2e"));
+ test(S("abcde"), 2, 2, SV("12345678901234567890"), 1, 9, S("ab234567890e"));
+ test(S("abcde"), 2, 2, SV("12345678901234567890"), 1, 18, S("ab234567890123456789e"));
+ test(S("abcde"), 2, 2, SV("12345678901234567890"), 1, 19, S("ab2345678901234567890e"));
+ test(S("abcde"), 2, 2, SV("12345678901234567890"), 1, 20, S("ab2345678901234567890e"));
+ test(S("abcde"), 2, 2, SV("12345678901234567890"), 10, 0, S("abe"));
+ test(S("abcde"), 2, 2, SV("12345678901234567890"), 10, 1, S("ab1e"));
+ test(S("abcde"), 2, 2, SV("12345678901234567890"), 10, 5, S("ab12345e"));
+ test(S("abcde"), 2, 2, SV("12345678901234567890"), 10, 9, S("ab123456789e"));
+ test(S("abcde"), 2, 2, SV("12345678901234567890"), 10, 10, S("ab1234567890e"));
+ test(S("abcde"), 2, 2, SV("12345678901234567890"), 10, 11, S("ab1234567890e"));
+ test(S("abcde"), 2, 2, SV("12345678901234567890"), 19, 0, S("abe"));
+ test(S("abcde"), 2, 2, SV("12345678901234567890"), 19, 1, S("ab0e"));
+ test(S("abcde"), 2, 2, SV("12345678901234567890"), 19, 2, S("ab0e"));
+ test(S("abcde"), 2, 2, SV("12345678901234567890"), 20, 0, S("abe"));
+ test(S("abcde"), 2, 2, SV("12345678901234567890"), 20, 1, S("abe"));
+ test(S("abcde"), 2, 2, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcde"), 2, 3, SV(""), 0, 0, S("ab"));
+ test(S("abcde"), 2, 3, SV(""), 0, 1, S("ab"));
+ test(S("abcde"), 2, 3, SV(""), 1, 0, S("can't happen"));
+ test(S("abcde"), 2, 3, SV("12345"), 0, 0, S("ab"));
+ test(S("abcde"), 2, 3, SV("12345"), 0, 1, S("ab1"));
+ test(S("abcde"), 2, 3, SV("12345"), 0, 2, S("ab12"));
+ test(S("abcde"), 2, 3, SV("12345"), 0, 4, S("ab1234"));
+ test(S("abcde"), 2, 3, SV("12345"), 0, 5, S("ab12345"));
+ test(S("abcde"), 2, 3, SV("12345"), 0, 6, S("ab12345"));
+ test(S("abcde"), 2, 3, SV("12345"), 1, 0, S("ab"));
+ test(S("abcde"), 2, 3, SV("12345"), 1, 1, S("ab2"));
+ test(S("abcde"), 2, 3, SV("12345"), 1, 2, S("ab23"));
+ test(S("abcde"), 2, 3, SV("12345"), 1, 3, S("ab234"));
+ test(S("abcde"), 2, 3, SV("12345"), 1, 4, S("ab2345"));
+ test(S("abcde"), 2, 3, SV("12345"), 1, 5, S("ab2345"));
+ test(S("abcde"), 2, 3, SV("12345"), 2, 0, S("ab"));
+ test(S("abcde"), 2, 3, SV("12345"), 2, 1, S("ab3"));
+ test(S("abcde"), 2, 3, SV("12345"), 2, 2, S("ab34"));
+ test(S("abcde"), 2, 3, SV("12345"), 2, 3, S("ab345"));
+ test(S("abcde"), 2, 3, SV("12345"), 2, 4, S("ab345"));
+ test(S("abcde"), 2, 3, SV("12345"), 4, 0, S("ab"));
+ test(S("abcde"), 2, 3, SV("12345"), 4, 1, S("ab5"));
+ test(S("abcde"), 2, 3, SV("12345"), 4, 2, S("ab5"));
+ test(S("abcde"), 2, 3, SV("12345"), 5, 0, S("ab"));
+ test(S("abcde"), 2, 3, SV("12345"), 5, 1, S("ab"));
+ test(S("abcde"), 2, 3, SV("12345"), 6, 0, S("can't happen"));
+ test(S("abcde"), 2, 3, SV("1234567890"), 0, 0, S("ab"));
+ test(S("abcde"), 2, 3, SV("1234567890"), 0, 1, S("ab1"));
+ test(S("abcde"), 2, 3, SV("1234567890"), 0, 5, S("ab12345"));
+ test(S("abcde"), 2, 3, SV("1234567890"), 0, 9, S("ab123456789"));
+ test(S("abcde"), 2, 3, SV("1234567890"), 0, 10, S("ab1234567890"));
+ test(S("abcde"), 2, 3, SV("1234567890"), 0, 11, S("ab1234567890"));
+ test(S("abcde"), 2, 3, SV("1234567890"), 1, 0, S("ab"));
+ test(S("abcde"), 2, 3, SV("1234567890"), 1, 1, S("ab2"));
+ test(S("abcde"), 2, 3, SV("1234567890"), 1, 4, S("ab2345"));
+ test(S("abcde"), 2, 3, SV("1234567890"), 1, 8, S("ab23456789"));
+ test(S("abcde"), 2, 3, SV("1234567890"), 1, 9, S("ab234567890"));
+ test(S("abcde"), 2, 3, SV("1234567890"), 1, 10, S("ab234567890"));
+ test(S("abcde"), 2, 3, SV("1234567890"), 5, 0, S("ab"));
+ test(S("abcde"), 2, 3, SV("1234567890"), 5, 1, S("ab6"));
+ test(S("abcde"), 2, 3, SV("1234567890"), 5, 2, S("ab67"));
+ test(S("abcde"), 2, 3, SV("1234567890"), 5, 4, S("ab6789"));
+ test(S("abcde"), 2, 3, SV("1234567890"), 5, 5, S("ab67890"));
+ test(S("abcde"), 2, 3, SV("1234567890"), 5, 6, S("ab67890"));
+ test(S("abcde"), 2, 3, SV("1234567890"), 9, 0, S("ab"));
+ test(S("abcde"), 2, 3, SV("1234567890"), 9, 1, S("ab0"));
+ test(S("abcde"), 2, 3, SV("1234567890"), 9, 2, S("ab0"));
+ test(S("abcde"), 2, 3, SV("1234567890"), 10, 0, S("ab"));
+ test(S("abcde"), 2, 3, SV("1234567890"), 10, 1, S("ab"));
+ test(S("abcde"), 2, 3, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcde"), 2, 3, SV("12345678901234567890"), 0, 0, S("ab"));
+ test(S("abcde"), 2, 3, SV("12345678901234567890"), 0, 1, S("ab1"));
+ test(S("abcde"), 2, 3, SV("12345678901234567890"), 0, 10, S("ab1234567890"));
+ test(S("abcde"), 2, 3, SV("12345678901234567890"), 0, 19, S("ab1234567890123456789"));
+ test(S("abcde"), 2, 3, SV("12345678901234567890"), 0, 20, S("ab12345678901234567890"));
+ test(S("abcde"), 2, 3, SV("12345678901234567890"), 0, 21, S("ab12345678901234567890"));
+ test(S("abcde"), 2, 3, SV("12345678901234567890"), 1, 0, S("ab"));
+ test(S("abcde"), 2, 3, SV("12345678901234567890"), 1, 1, S("ab2"));
+ test(S("abcde"), 2, 3, SV("12345678901234567890"), 1, 9, S("ab234567890"));
+ test(S("abcde"), 2, 3, SV("12345678901234567890"), 1, 18, S("ab234567890123456789"));
+ test(S("abcde"), 2, 3, SV("12345678901234567890"), 1, 19, S("ab2345678901234567890"));
+ test(S("abcde"), 2, 3, SV("12345678901234567890"), 1, 20, S("ab2345678901234567890"));
+ test(S("abcde"), 2, 3, SV("12345678901234567890"), 10, 0, S("ab"));
+ test(S("abcde"), 2, 3, SV("12345678901234567890"), 10, 1, S("ab1"));
+ test(S("abcde"), 2, 3, SV("12345678901234567890"), 10, 5, S("ab12345"));
+ test(S("abcde"), 2, 3, SV("12345678901234567890"), 10, 9, S("ab123456789"));
+ test(S("abcde"), 2, 3, SV("12345678901234567890"), 10, 10, S("ab1234567890"));
+ test(S("abcde"), 2, 3, SV("12345678901234567890"), 10, 11, S("ab1234567890"));
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test14()
-{
- test(S("abcde"), 2, 3, SV("12345678901234567890"), 19, 0, S("ab"));
- test(S("abcde"), 2, 3, SV("12345678901234567890"), 19, 1, S("ab0"));
- test(S("abcde"), 2, 3, SV("12345678901234567890"), 19, 2, S("ab0"));
- test(S("abcde"), 2, 3, SV("12345678901234567890"), 20, 0, S("ab"));
- test(S("abcde"), 2, 3, SV("12345678901234567890"), 20, 1, S("ab"));
- test(S("abcde"), 2, 3, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcde"), 2, 4, SV(""), 0, 0, S("ab"));
- test(S("abcde"), 2, 4, SV(""), 0, 1, S("ab"));
- test(S("abcde"), 2, 4, SV(""), 1, 0, S("can't happen"));
- test(S("abcde"), 2, 4, SV("12345"), 0, 0, S("ab"));
- test(S("abcde"), 2, 4, SV("12345"), 0, 1, S("ab1"));
- test(S("abcde"), 2, 4, SV("12345"), 0, 2, S("ab12"));
- test(S("abcde"), 2, 4, SV("12345"), 0, 4, S("ab1234"));
- test(S("abcde"), 2, 4, SV("12345"), 0, 5, S("ab12345"));
- test(S("abcde"), 2, 4, SV("12345"), 0, 6, S("ab12345"));
- test(S("abcde"), 2, 4, SV("12345"), 1, 0, S("ab"));
- test(S("abcde"), 2, 4, SV("12345"), 1, 1, S("ab2"));
- test(S("abcde"), 2, 4, SV("12345"), 1, 2, S("ab23"));
- test(S("abcde"), 2, 4, SV("12345"), 1, 3, S("ab234"));
- test(S("abcde"), 2, 4, SV("12345"), 1, 4, S("ab2345"));
- test(S("abcde"), 2, 4, SV("12345"), 1, 5, S("ab2345"));
- test(S("abcde"), 2, 4, SV("12345"), 2, 0, S("ab"));
- test(S("abcde"), 2, 4, SV("12345"), 2, 1, S("ab3"));
- test(S("abcde"), 2, 4, SV("12345"), 2, 2, S("ab34"));
- test(S("abcde"), 2, 4, SV("12345"), 2, 3, S("ab345"));
- test(S("abcde"), 2, 4, SV("12345"), 2, 4, S("ab345"));
- test(S("abcde"), 2, 4, SV("12345"), 4, 0, S("ab"));
- test(S("abcde"), 2, 4, SV("12345"), 4, 1, S("ab5"));
- test(S("abcde"), 2, 4, SV("12345"), 4, 2, S("ab5"));
- test(S("abcde"), 2, 4, SV("12345"), 5, 0, S("ab"));
- test(S("abcde"), 2, 4, SV("12345"), 5, 1, S("ab"));
- test(S("abcde"), 2, 4, SV("12345"), 6, 0, S("can't happen"));
- test(S("abcde"), 2, 4, SV("1234567890"), 0, 0, S("ab"));
- test(S("abcde"), 2, 4, SV("1234567890"), 0, 1, S("ab1"));
- test(S("abcde"), 2, 4, SV("1234567890"), 0, 5, S("ab12345"));
- test(S("abcde"), 2, 4, SV("1234567890"), 0, 9, S("ab123456789"));
- test(S("abcde"), 2, 4, SV("1234567890"), 0, 10, S("ab1234567890"));
- test(S("abcde"), 2, 4, SV("1234567890"), 0, 11, S("ab1234567890"));
- test(S("abcde"), 2, 4, SV("1234567890"), 1, 0, S("ab"));
- test(S("abcde"), 2, 4, SV("1234567890"), 1, 1, S("ab2"));
- test(S("abcde"), 2, 4, SV("1234567890"), 1, 4, S("ab2345"));
- test(S("abcde"), 2, 4, SV("1234567890"), 1, 8, S("ab23456789"));
- test(S("abcde"), 2, 4, SV("1234567890"), 1, 9, S("ab234567890"));
- test(S("abcde"), 2, 4, SV("1234567890"), 1, 10, S("ab234567890"));
- test(S("abcde"), 2, 4, SV("1234567890"), 5, 0, S("ab"));
- test(S("abcde"), 2, 4, SV("1234567890"), 5, 1, S("ab6"));
- test(S("abcde"), 2, 4, SV("1234567890"), 5, 2, S("ab67"));
- test(S("abcde"), 2, 4, SV("1234567890"), 5, 4, S("ab6789"));
- test(S("abcde"), 2, 4, SV("1234567890"), 5, 5, S("ab67890"));
- test(S("abcde"), 2, 4, SV("1234567890"), 5, 6, S("ab67890"));
- test(S("abcde"), 2, 4, SV("1234567890"), 9, 0, S("ab"));
- test(S("abcde"), 2, 4, SV("1234567890"), 9, 1, S("ab0"));
- test(S("abcde"), 2, 4, SV("1234567890"), 9, 2, S("ab0"));
- test(S("abcde"), 2, 4, SV("1234567890"), 10, 0, S("ab"));
- test(S("abcde"), 2, 4, SV("1234567890"), 10, 1, S("ab"));
- test(S("abcde"), 2, 4, SV("1234567890"), 11, 0, S("can't happen"));
- test(S("abcde"), 2, 4, SV("12345678901234567890"), 0, 0, S("ab"));
- test(S("abcde"), 2, 4, SV("12345678901234567890"), 0, 1, S("ab1"));
- test(S("abcde"), 2, 4, SV("12345678901234567890"), 0, 10, S("ab1234567890"));
- test(S("abcde"), 2, 4, SV("12345678901234567890"), 0, 19, S("ab1234567890123456789"));
- test(S("abcde"), 2, 4, SV("12345678901234567890"), 0, 20, S("ab12345678901234567890"));
- test(S("abcde"), 2, 4, SV("12345678901234567890"), 0, 21, S("ab12345678901234567890"));
- test(S("abcde"), 2, 4, SV("12345678901234567890"), 1, 0, S("ab"));
- test(S("abcde"), 2, 4, SV("12345678901234567890"), 1, 1, S("ab2"));
- test(S("abcde"), 2, 4, SV("12345678901234567890"), 1, 9, S("ab234567890"));
- test(S("abcde"), 2, 4, SV("12345678901234567890"), 1, 18, S("ab234567890123456789"));
- test(S("abcde"), 2, 4, SV("12345678901234567890"), 1, 19, S("ab2345678901234567890"));
- test(S("abcde"), 2, 4, SV("12345678901234567890"), 1, 20, S("ab2345678901234567890"));
- test(S("abcde"), 2, 4, SV("12345678901234567890"), 10, 0, S("ab"));
- test(S("abcde"), 2, 4, SV("12345678901234567890"), 10, 1, S("ab1"));
- test(S("abcde"), 2, 4, SV("12345678901234567890"), 10, 5, S("ab12345"));
- test(S("abcde"), 2, 4, SV("12345678901234567890"), 10, 9, S("ab123456789"));
- test(S("abcde"), 2, 4, SV("12345678901234567890"), 10, 10, S("ab1234567890"));
- test(S("abcde"), 2, 4, SV("12345678901234567890"), 10, 11, S("ab1234567890"));
- test(S("abcde"), 2, 4, SV("12345678901234567890"), 19, 0, S("ab"));
- test(S("abcde"), 2, 4, SV("12345678901234567890"), 19, 1, S("ab0"));
- test(S("abcde"), 2, 4, SV("12345678901234567890"), 19, 2, S("ab0"));
- test(S("abcde"), 2, 4, SV("12345678901234567890"), 20, 0, S("ab"));
- test(S("abcde"), 2, 4, SV("12345678901234567890"), 20, 1, S("ab"));
- test(S("abcde"), 2, 4, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcde"), 4, 0, SV(""), 0, 0, S("abcde"));
- test(S("abcde"), 4, 0, SV(""), 0, 1, S("abcde"));
- test(S("abcde"), 4, 0, SV(""), 1, 0, S("can't happen"));
- test(S("abcde"), 4, 0, SV("12345"), 0, 0, S("abcde"));
- test(S("abcde"), 4, 0, SV("12345"), 0, 1, S("abcd1e"));
- test(S("abcde"), 4, 0, SV("12345"), 0, 2, S("abcd12e"));
- test(S("abcde"), 4, 0, SV("12345"), 0, 4, S("abcd1234e"));
- test(S("abcde"), 4, 0, SV("12345"), 0, 5, S("abcd12345e"));
- test(S("abcde"), 4, 0, SV("12345"), 0, 6, S("abcd12345e"));
- test(S("abcde"), 4, 0, SV("12345"), 1, 0, S("abcde"));
- test(S("abcde"), 4, 0, SV("12345"), 1, 1, S("abcd2e"));
- test(S("abcde"), 4, 0, SV("12345"), 1, 2, S("abcd23e"));
- test(S("abcde"), 4, 0, SV("12345"), 1, 3, S("abcd234e"));
- test(S("abcde"), 4, 0, SV("12345"), 1, 4, S("abcd2345e"));
- test(S("abcde"), 4, 0, SV("12345"), 1, 5, S("abcd2345e"));
- test(S("abcde"), 4, 0, SV("12345"), 2, 0, S("abcde"));
- test(S("abcde"), 4, 0, SV("12345"), 2, 1, S("abcd3e"));
- test(S("abcde"), 4, 0, SV("12345"), 2, 2, S("abcd34e"));
- test(S("abcde"), 4, 0, SV("12345"), 2, 3, S("abcd345e"));
- test(S("abcde"), 4, 0, SV("12345"), 2, 4, S("abcd345e"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test14() {
+ test(S("abcde"), 2, 3, SV("12345678901234567890"), 19, 0, S("ab"));
+ test(S("abcde"), 2, 3, SV("12345678901234567890"), 19, 1, S("ab0"));
+ test(S("abcde"), 2, 3, SV("12345678901234567890"), 19, 2, S("ab0"));
+ test(S("abcde"), 2, 3, SV("12345678901234567890"), 20, 0, S("ab"));
+ test(S("abcde"), 2, 3, SV("12345678901234567890"), 20, 1, S("ab"));
+ test(S("abcde"), 2, 3, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcde"), 2, 4, SV(""), 0, 0, S("ab"));
+ test(S("abcde"), 2, 4, SV(""), 0, 1, S("ab"));
+ test(S("abcde"), 2, 4, SV(""), 1, 0, S("can't happen"));
+ test(S("abcde"), 2, 4, SV("12345"), 0, 0, S("ab"));
+ test(S("abcde"), 2, 4, SV("12345"), 0, 1, S("ab1"));
+ test(S("abcde"), 2, 4, SV("12345"), 0, 2, S("ab12"));
+ test(S("abcde"), 2, 4, SV("12345"), 0, 4, S("ab1234"));
+ test(S("abcde"), 2, 4, SV("12345"), 0, 5, S("ab12345"));
+ test(S("abcde"), 2, 4, SV("12345"), 0, 6, S("ab12345"));
+ test(S("abcde"), 2, 4, SV("12345"), 1, 0, S("ab"));
+ test(S("abcde"), 2, 4, SV("12345"), 1, 1, S("ab2"));
+ test(S("abcde"), 2, 4, SV("12345"), 1, 2, S("ab23"));
+ test(S("abcde"), 2, 4, SV("12345"), 1, 3, S("ab234"));
+ test(S("abcde"), 2, 4, SV("12345"), 1, 4, S("ab2345"));
+ test(S("abcde"), 2, 4, SV("12345"), 1, 5, S("ab2345"));
+ test(S("abcde"), 2, 4, SV("12345"), 2, 0, S("ab"));
+ test(S("abcde"), 2, 4, SV("12345"), 2, 1, S("ab3"));
+ test(S("abcde"), 2, 4, SV("12345"), 2, 2, S("ab34"));
+ test(S("abcde"), 2, 4, SV("12345"), 2, 3, S("ab345"));
+ test(S("abcde"), 2, 4, SV("12345"), 2, 4, S("ab345"));
+ test(S("abcde"), 2, 4, SV("12345"), 4, 0, S("ab"));
+ test(S("abcde"), 2, 4, SV("12345"), 4, 1, S("ab5"));
+ test(S("abcde"), 2, 4, SV("12345"), 4, 2, S("ab5"));
+ test(S("abcde"), 2, 4, SV("12345"), 5, 0, S("ab"));
+ test(S("abcde"), 2, 4, SV("12345"), 5, 1, S("ab"));
+ test(S("abcde"), 2, 4, SV("12345"), 6, 0, S("can't happen"));
+ test(S("abcde"), 2, 4, SV("1234567890"), 0, 0, S("ab"));
+ test(S("abcde"), 2, 4, SV("1234567890"), 0, 1, S("ab1"));
+ test(S("abcde"), 2, 4, SV("1234567890"), 0, 5, S("ab12345"));
+ test(S("abcde"), 2, 4, SV("1234567890"), 0, 9, S("ab123456789"));
+ test(S("abcde"), 2, 4, SV("1234567890"), 0, 10, S("ab1234567890"));
+ test(S("abcde"), 2, 4, SV("1234567890"), 0, 11, S("ab1234567890"));
+ test(S("abcde"), 2, 4, SV("1234567890"), 1, 0, S("ab"));
+ test(S("abcde"), 2, 4, SV("1234567890"), 1, 1, S("ab2"));
+ test(S("abcde"), 2, 4, SV("1234567890"), 1, 4, S("ab2345"));
+ test(S("abcde"), 2, 4, SV("1234567890"), 1, 8, S("ab23456789"));
+ test(S("abcde"), 2, 4, SV("1234567890"), 1, 9, S("ab234567890"));
+ test(S("abcde"), 2, 4, SV("1234567890"), 1, 10, S("ab234567890"));
+ test(S("abcde"), 2, 4, SV("1234567890"), 5, 0, S("ab"));
+ test(S("abcde"), 2, 4, SV("1234567890"), 5, 1, S("ab6"));
+ test(S("abcde"), 2, 4, SV("1234567890"), 5, 2, S("ab67"));
+ test(S("abcde"), 2, 4, SV("1234567890"), 5, 4, S("ab6789"));
+ test(S("abcde"), 2, 4, SV("1234567890"), 5, 5, S("ab67890"));
+ test(S("abcde"), 2, 4, SV("1234567890"), 5, 6, S("ab67890"));
+ test(S("abcde"), 2, 4, SV("1234567890"), 9, 0, S("ab"));
+ test(S("abcde"), 2, 4, SV("1234567890"), 9, 1, S("ab0"));
+ test(S("abcde"), 2, 4, SV("1234567890"), 9, 2, S("ab0"));
+ test(S("abcde"), 2, 4, SV("1234567890"), 10, 0, S("ab"));
+ test(S("abcde"), 2, 4, SV("1234567890"), 10, 1, S("ab"));
+ test(S("abcde"), 2, 4, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcde"), 2, 4, SV("12345678901234567890"), 0, 0, S("ab"));
+ test(S("abcde"), 2, 4, SV("12345678901234567890"), 0, 1, S("ab1"));
+ test(S("abcde"), 2, 4, SV("12345678901234567890"), 0, 10, S("ab1234567890"));
+ test(S("abcde"), 2, 4, SV("12345678901234567890"), 0, 19, S("ab1234567890123456789"));
+ test(S("abcde"), 2, 4, SV("12345678901234567890"), 0, 20, S("ab12345678901234567890"));
+ test(S("abcde"), 2, 4, SV("12345678901234567890"), 0, 21, S("ab12345678901234567890"));
+ test(S("abcde"), 2, 4, SV("12345678901234567890"), 1, 0, S("ab"));
+ test(S("abcde"), 2, 4, SV("12345678901234567890"), 1, 1, S("ab2"));
+ test(S("abcde"), 2, 4, SV("12345678901234567890"), 1, 9, S("ab234567890"));
+ test(S("abcde"), 2, 4, SV("12345678901234567890"), 1, 18, S("ab234567890123456789"));
+ test(S("abcde"), 2, 4, SV("12345678901234567890"), 1, 19, S("ab2345678901234567890"));
+ test(S("abcde"), 2, 4, SV("12345678901234567890"), 1, 20, S("ab2345678901234567890"));
+ test(S("abcde"), 2, 4, SV("12345678901234567890"), 10, 0, S("ab"));
+ test(S("abcde"), 2, 4, SV("12345678901234567890"), 10, 1, S("ab1"));
+ test(S("abcde"), 2, 4, SV("12345678901234567890"), 10, 5, S("ab12345"));
+ test(S("abcde"), 2, 4, SV("12345678901234567890"), 10, 9, S("ab123456789"));
+ test(S("abcde"), 2, 4, SV("12345678901234567890"), 10, 10, S("ab1234567890"));
+ test(S("abcde"), 2, 4, SV("12345678901234567890"), 10, 11, S("ab1234567890"));
+ test(S("abcde"), 2, 4, SV("12345678901234567890"), 19, 0, S("ab"));
+ test(S("abcde"), 2, 4, SV("12345678901234567890"), 19, 1, S("ab0"));
+ test(S("abcde"), 2, 4, SV("12345678901234567890"), 19, 2, S("ab0"));
+ test(S("abcde"), 2, 4, SV("12345678901234567890"), 20, 0, S("ab"));
+ test(S("abcde"), 2, 4, SV("12345678901234567890"), 20, 1, S("ab"));
+ test(S("abcde"), 2, 4, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcde"), 4, 0, SV(""), 0, 0, S("abcde"));
+ test(S("abcde"), 4, 0, SV(""), 0, 1, S("abcde"));
+ test(S("abcde"), 4, 0, SV(""), 1, 0, S("can't happen"));
+ test(S("abcde"), 4, 0, SV("12345"), 0, 0, S("abcde"));
+ test(S("abcde"), 4, 0, SV("12345"), 0, 1, S("abcd1e"));
+ test(S("abcde"), 4, 0, SV("12345"), 0, 2, S("abcd12e"));
+ test(S("abcde"), 4, 0, SV("12345"), 0, 4, S("abcd1234e"));
+ test(S("abcde"), 4, 0, SV("12345"), 0, 5, S("abcd12345e"));
+ test(S("abcde"), 4, 0, SV("12345"), 0, 6, S("abcd12345e"));
+ test(S("abcde"), 4, 0, SV("12345"), 1, 0, S("abcde"));
+ test(S("abcde"), 4, 0, SV("12345"), 1, 1, S("abcd2e"));
+ test(S("abcde"), 4, 0, SV("12345"), 1, 2, S("abcd23e"));
+ test(S("abcde"), 4, 0, SV("12345"), 1, 3, S("abcd234e"));
+ test(S("abcde"), 4, 0, SV("12345"), 1, 4, S("abcd2345e"));
+ test(S("abcde"), 4, 0, SV("12345"), 1, 5, S("abcd2345e"));
+ test(S("abcde"), 4, 0, SV("12345"), 2, 0, S("abcde"));
+ test(S("abcde"), 4, 0, SV("12345"), 2, 1, S("abcd3e"));
+ test(S("abcde"), 4, 0, SV("12345"), 2, 2, S("abcd34e"));
+ test(S("abcde"), 4, 0, SV("12345"), 2, 3, S("abcd345e"));
+ test(S("abcde"), 4, 0, SV("12345"), 2, 4, S("abcd345e"));
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test15()
-{
- test(S("abcde"), 4, 0, SV("12345"), 4, 0, S("abcde"));
- test(S("abcde"), 4, 0, SV("12345"), 4, 1, S("abcd5e"));
- test(S("abcde"), 4, 0, SV("12345"), 4, 2, S("abcd5e"));
- test(S("abcde"), 4, 0, SV("12345"), 5, 0, S("abcde"));
- test(S("abcde"), 4, 0, SV("12345"), 5, 1, S("abcde"));
- test(S("abcde"), 4, 0, SV("12345"), 6, 0, S("can't happen"));
- test(S("abcde"), 4, 0, SV("1234567890"), 0, 0, S("abcde"));
- test(S("abcde"), 4, 0, SV("1234567890"), 0, 1, S("abcd1e"));
- test(S("abcde"), 4, 0, SV("1234567890"), 0, 5, S("abcd12345e"));
- test(S("abcde"), 4, 0, SV("1234567890"), 0, 9, S("abcd123456789e"));
- test(S("abcde"), 4, 0, SV("1234567890"), 0, 10, S("abcd1234567890e"));
- test(S("abcde"), 4, 0, SV("1234567890"), 0, 11, S("abcd1234567890e"));
- test(S("abcde"), 4, 0, SV("1234567890"), 1, 0, S("abcde"));
- test(S("abcde"), 4, 0, SV("1234567890"), 1, 1, S("abcd2e"));
- test(S("abcde"), 4, 0, SV("1234567890"), 1, 4, S("abcd2345e"));
- test(S("abcde"), 4, 0, SV("1234567890"), 1, 8, S("abcd23456789e"));
- test(S("abcde"), 4, 0, SV("1234567890"), 1, 9, S("abcd234567890e"));
- test(S("abcde"), 4, 0, SV("1234567890"), 1, 10, S("abcd234567890e"));
- test(S("abcde"), 4, 0, SV("1234567890"), 5, 0, S("abcde"));
- test(S("abcde"), 4, 0, SV("1234567890"), 5, 1, S("abcd6e"));
- test(S("abcde"), 4, 0, SV("1234567890"), 5, 2, S("abcd67e"));
- test(S("abcde"), 4, 0, SV("1234567890"), 5, 4, S("abcd6789e"));
- test(S("abcde"), 4, 0, SV("1234567890"), 5, 5, S("abcd67890e"));
- test(S("abcde"), 4, 0, SV("1234567890"), 5, 6, S("abcd67890e"));
- test(S("abcde"), 4, 0, SV("1234567890"), 9, 0, S("abcde"));
- test(S("abcde"), 4, 0, SV("1234567890"), 9, 1, S("abcd0e"));
- test(S("abcde"), 4, 0, SV("1234567890"), 9, 2, S("abcd0e"));
- test(S("abcde"), 4, 0, SV("1234567890"), 10, 0, S("abcde"));
- test(S("abcde"), 4, 0, SV("1234567890"), 10, 1, S("abcde"));
- test(S("abcde"), 4, 0, SV("1234567890"), 11, 0, S("can't happen"));
- test(S("abcde"), 4, 0, SV("12345678901234567890"), 0, 0, S("abcde"));
- test(S("abcde"), 4, 0, SV("12345678901234567890"), 0, 1, S("abcd1e"));
- test(S("abcde"), 4, 0, SV("12345678901234567890"), 0, 10, S("abcd1234567890e"));
- test(S("abcde"), 4, 0, SV("12345678901234567890"), 0, 19, S("abcd1234567890123456789e"));
- test(S("abcde"), 4, 0, SV("12345678901234567890"), 0, 20, S("abcd12345678901234567890e"));
- test(S("abcde"), 4, 0, SV("12345678901234567890"), 0, 21, S("abcd12345678901234567890e"));
- test(S("abcde"), 4, 0, SV("12345678901234567890"), 1, 0, S("abcde"));
- test(S("abcde"), 4, 0, SV("12345678901234567890"), 1, 1, S("abcd2e"));
- test(S("abcde"), 4, 0, SV("12345678901234567890"), 1, 9, S("abcd234567890e"));
- test(S("abcde"), 4, 0, SV("12345678901234567890"), 1, 18, S("abcd234567890123456789e"));
- test(S("abcde"), 4, 0, SV("12345678901234567890"), 1, 19, S("abcd2345678901234567890e"));
- test(S("abcde"), 4, 0, SV("12345678901234567890"), 1, 20, S("abcd2345678901234567890e"));
- test(S("abcde"), 4, 0, SV("12345678901234567890"), 10, 0, S("abcde"));
- test(S("abcde"), 4, 0, SV("12345678901234567890"), 10, 1, S("abcd1e"));
- test(S("abcde"), 4, 0, SV("12345678901234567890"), 10, 5, S("abcd12345e"));
- test(S("abcde"), 4, 0, SV("12345678901234567890"), 10, 9, S("abcd123456789e"));
- test(S("abcde"), 4, 0, SV("12345678901234567890"), 10, 10, S("abcd1234567890e"));
- test(S("abcde"), 4, 0, SV("12345678901234567890"), 10, 11, S("abcd1234567890e"));
- test(S("abcde"), 4, 0, SV("12345678901234567890"), 19, 0, S("abcde"));
- test(S("abcde"), 4, 0, SV("12345678901234567890"), 19, 1, S("abcd0e"));
- test(S("abcde"), 4, 0, SV("12345678901234567890"), 19, 2, S("abcd0e"));
- test(S("abcde"), 4, 0, SV("12345678901234567890"), 20, 0, S("abcde"));
- test(S("abcde"), 4, 0, SV("12345678901234567890"), 20, 1, S("abcde"));
- test(S("abcde"), 4, 0, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcde"), 4, 1, SV(""), 0, 0, S("abcd"));
- test(S("abcde"), 4, 1, SV(""), 0, 1, S("abcd"));
- test(S("abcde"), 4, 1, SV(""), 1, 0, S("can't happen"));
- test(S("abcde"), 4, 1, SV("12345"), 0, 0, S("abcd"));
- test(S("abcde"), 4, 1, SV("12345"), 0, 1, S("abcd1"));
- test(S("abcde"), 4, 1, SV("12345"), 0, 2, S("abcd12"));
- test(S("abcde"), 4, 1, SV("12345"), 0, 4, S("abcd1234"));
- test(S("abcde"), 4, 1, SV("12345"), 0, 5, S("abcd12345"));
- test(S("abcde"), 4, 1, SV("12345"), 0, 6, S("abcd12345"));
- test(S("abcde"), 4, 1, SV("12345"), 1, 0, S("abcd"));
- test(S("abcde"), 4, 1, SV("12345"), 1, 1, S("abcd2"));
- test(S("abcde"), 4, 1, SV("12345"), 1, 2, S("abcd23"));
- test(S("abcde"), 4, 1, SV("12345"), 1, 3, S("abcd234"));
- test(S("abcde"), 4, 1, SV("12345"), 1, 4, S("abcd2345"));
- test(S("abcde"), 4, 1, SV("12345"), 1, 5, S("abcd2345"));
- test(S("abcde"), 4, 1, SV("12345"), 2, 0, S("abcd"));
- test(S("abcde"), 4, 1, SV("12345"), 2, 1, S("abcd3"));
- test(S("abcde"), 4, 1, SV("12345"), 2, 2, S("abcd34"));
- test(S("abcde"), 4, 1, SV("12345"), 2, 3, S("abcd345"));
- test(S("abcde"), 4, 1, SV("12345"), 2, 4, S("abcd345"));
- test(S("abcde"), 4, 1, SV("12345"), 4, 0, S("abcd"));
- test(S("abcde"), 4, 1, SV("12345"), 4, 1, S("abcd5"));
- test(S("abcde"), 4, 1, SV("12345"), 4, 2, S("abcd5"));
- test(S("abcde"), 4, 1, SV("12345"), 5, 0, S("abcd"));
- test(S("abcde"), 4, 1, SV("12345"), 5, 1, S("abcd"));
- test(S("abcde"), 4, 1, SV("12345"), 6, 0, S("can't happen"));
- test(S("abcde"), 4, 1, SV("1234567890"), 0, 0, S("abcd"));
- test(S("abcde"), 4, 1, SV("1234567890"), 0, 1, S("abcd1"));
- test(S("abcde"), 4, 1, SV("1234567890"), 0, 5, S("abcd12345"));
- test(S("abcde"), 4, 1, SV("1234567890"), 0, 9, S("abcd123456789"));
- test(S("abcde"), 4, 1, SV("1234567890"), 0, 10, S("abcd1234567890"));
- test(S("abcde"), 4, 1, SV("1234567890"), 0, 11, S("abcd1234567890"));
- test(S("abcde"), 4, 1, SV("1234567890"), 1, 0, S("abcd"));
- test(S("abcde"), 4, 1, SV("1234567890"), 1, 1, S("abcd2"));
- test(S("abcde"), 4, 1, SV("1234567890"), 1, 4, S("abcd2345"));
- test(S("abcde"), 4, 1, SV("1234567890"), 1, 8, S("abcd23456789"));
- test(S("abcde"), 4, 1, SV("1234567890"), 1, 9, S("abcd234567890"));
- test(S("abcde"), 4, 1, SV("1234567890"), 1, 10, S("abcd234567890"));
- test(S("abcde"), 4, 1, SV("1234567890"), 5, 0, S("abcd"));
- test(S("abcde"), 4, 1, SV("1234567890"), 5, 1, S("abcd6"));
- test(S("abcde"), 4, 1, SV("1234567890"), 5, 2, S("abcd67"));
- test(S("abcde"), 4, 1, SV("1234567890"), 5, 4, S("abcd6789"));
- test(S("abcde"), 4, 1, SV("1234567890"), 5, 5, S("abcd67890"));
- test(S("abcde"), 4, 1, SV("1234567890"), 5, 6, S("abcd67890"));
- test(S("abcde"), 4, 1, SV("1234567890"), 9, 0, S("abcd"));
- test(S("abcde"), 4, 1, SV("1234567890"), 9, 1, S("abcd0"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test15() {
+ test(S("abcde"), 4, 0, SV("12345"), 4, 0, S("abcde"));
+ test(S("abcde"), 4, 0, SV("12345"), 4, 1, S("abcd5e"));
+ test(S("abcde"), 4, 0, SV("12345"), 4, 2, S("abcd5e"));
+ test(S("abcde"), 4, 0, SV("12345"), 5, 0, S("abcde"));
+ test(S("abcde"), 4, 0, SV("12345"), 5, 1, S("abcde"));
+ test(S("abcde"), 4, 0, SV("12345"), 6, 0, S("can't happen"));
+ test(S("abcde"), 4, 0, SV("1234567890"), 0, 0, S("abcde"));
+ test(S("abcde"), 4, 0, SV("1234567890"), 0, 1, S("abcd1e"));
+ test(S("abcde"), 4, 0, SV("1234567890"), 0, 5, S("abcd12345e"));
+ test(S("abcde"), 4, 0, SV("1234567890"), 0, 9, S("abcd123456789e"));
+ test(S("abcde"), 4, 0, SV("1234567890"), 0, 10, S("abcd1234567890e"));
+ test(S("abcde"), 4, 0, SV("1234567890"), 0, 11, S("abcd1234567890e"));
+ test(S("abcde"), 4, 0, SV("1234567890"), 1, 0, S("abcde"));
+ test(S("abcde"), 4, 0, SV("1234567890"), 1, 1, S("abcd2e"));
+ test(S("abcde"), 4, 0, SV("1234567890"), 1, 4, S("abcd2345e"));
+ test(S("abcde"), 4, 0, SV("1234567890"), 1, 8, S("abcd23456789e"));
+ test(S("abcde"), 4, 0, SV("1234567890"), 1, 9, S("abcd234567890e"));
+ test(S("abcde"), 4, 0, SV("1234567890"), 1, 10, S("abcd234567890e"));
+ test(S("abcde"), 4, 0, SV("1234567890"), 5, 0, S("abcde"));
+ test(S("abcde"), 4, 0, SV("1234567890"), 5, 1, S("abcd6e"));
+ test(S("abcde"), 4, 0, SV("1234567890"), 5, 2, S("abcd67e"));
+ test(S("abcde"), 4, 0, SV("1234567890"), 5, 4, S("abcd6789e"));
+ test(S("abcde"), 4, 0, SV("1234567890"), 5, 5, S("abcd67890e"));
+ test(S("abcde"), 4, 0, SV("1234567890"), 5, 6, S("abcd67890e"));
+ test(S("abcde"), 4, 0, SV("1234567890"), 9, 0, S("abcde"));
+ test(S("abcde"), 4, 0, SV("1234567890"), 9, 1, S("abcd0e"));
+ test(S("abcde"), 4, 0, SV("1234567890"), 9, 2, S("abcd0e"));
+ test(S("abcde"), 4, 0, SV("1234567890"), 10, 0, S("abcde"));
+ test(S("abcde"), 4, 0, SV("1234567890"), 10, 1, S("abcde"));
+ test(S("abcde"), 4, 0, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcde"), 4, 0, SV("12345678901234567890"), 0, 0, S("abcde"));
+ test(S("abcde"), 4, 0, SV("12345678901234567890"), 0, 1, S("abcd1e"));
+ test(S("abcde"), 4, 0, SV("12345678901234567890"), 0, 10, S("abcd1234567890e"));
+ test(S("abcde"), 4, 0, SV("12345678901234567890"), 0, 19, S("abcd1234567890123456789e"));
+ test(S("abcde"), 4, 0, SV("12345678901234567890"), 0, 20, S("abcd12345678901234567890e"));
+ test(S("abcde"), 4, 0, SV("12345678901234567890"), 0, 21, S("abcd12345678901234567890e"));
+ test(S("abcde"), 4, 0, SV("12345678901234567890"), 1, 0, S("abcde"));
+ test(S("abcde"), 4, 0, SV("12345678901234567890"), 1, 1, S("abcd2e"));
+ test(S("abcde"), 4, 0, SV("12345678901234567890"), 1, 9, S("abcd234567890e"));
+ test(S("abcde"), 4, 0, SV("12345678901234567890"), 1, 18, S("abcd234567890123456789e"));
+ test(S("abcde"), 4, 0, SV("12345678901234567890"), 1, 19, S("abcd2345678901234567890e"));
+ test(S("abcde"), 4, 0, SV("12345678901234567890"), 1, 20, S("abcd2345678901234567890e"));
+ test(S("abcde"), 4, 0, SV("12345678901234567890"), 10, 0, S("abcde"));
+ test(S("abcde"), 4, 0, SV("12345678901234567890"), 10, 1, S("abcd1e"));
+ test(S("abcde"), 4, 0, SV("12345678901234567890"), 10, 5, S("abcd12345e"));
+ test(S("abcde"), 4, 0, SV("12345678901234567890"), 10, 9, S("abcd123456789e"));
+ test(S("abcde"), 4, 0, SV("12345678901234567890"), 10, 10, S("abcd1234567890e"));
+ test(S("abcde"), 4, 0, SV("12345678901234567890"), 10, 11, S("abcd1234567890e"));
+ test(S("abcde"), 4, 0, SV("12345678901234567890"), 19, 0, S("abcde"));
+ test(S("abcde"), 4, 0, SV("12345678901234567890"), 19, 1, S("abcd0e"));
+ test(S("abcde"), 4, 0, SV("12345678901234567890"), 19, 2, S("abcd0e"));
+ test(S("abcde"), 4, 0, SV("12345678901234567890"), 20, 0, S("abcde"));
+ test(S("abcde"), 4, 0, SV("12345678901234567890"), 20, 1, S("abcde"));
+ test(S("abcde"), 4, 0, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcde"), 4, 1, SV(""), 0, 0, S("abcd"));
+ test(S("abcde"), 4, 1, SV(""), 0, 1, S("abcd"));
+ test(S("abcde"), 4, 1, SV(""), 1, 0, S("can't happen"));
+ test(S("abcde"), 4, 1, SV("12345"), 0, 0, S("abcd"));
+ test(S("abcde"), 4, 1, SV("12345"), 0, 1, S("abcd1"));
+ test(S("abcde"), 4, 1, SV("12345"), 0, 2, S("abcd12"));
+ test(S("abcde"), 4, 1, SV("12345"), 0, 4, S("abcd1234"));
+ test(S("abcde"), 4, 1, SV("12345"), 0, 5, S("abcd12345"));
+ test(S("abcde"), 4, 1, SV("12345"), 0, 6, S("abcd12345"));
+ test(S("abcde"), 4, 1, SV("12345"), 1, 0, S("abcd"));
+ test(S("abcde"), 4, 1, SV("12345"), 1, 1, S("abcd2"));
+ test(S("abcde"), 4, 1, SV("12345"), 1, 2, S("abcd23"));
+ test(S("abcde"), 4, 1, SV("12345"), 1, 3, S("abcd234"));
+ test(S("abcde"), 4, 1, SV("12345"), 1, 4, S("abcd2345"));
+ test(S("abcde"), 4, 1, SV("12345"), 1, 5, S("abcd2345"));
+ test(S("abcde"), 4, 1, SV("12345"), 2, 0, S("abcd"));
+ test(S("abcde"), 4, 1, SV("12345"), 2, 1, S("abcd3"));
+ test(S("abcde"), 4, 1, SV("12345"), 2, 2, S("abcd34"));
+ test(S("abcde"), 4, 1, SV("12345"), 2, 3, S("abcd345"));
+ test(S("abcde"), 4, 1, SV("12345"), 2, 4, S("abcd345"));
+ test(S("abcde"), 4, 1, SV("12345"), 4, 0, S("abcd"));
+ test(S("abcde"), 4, 1, SV("12345"), 4, 1, S("abcd5"));
+ test(S("abcde"), 4, 1, SV("12345"), 4, 2, S("abcd5"));
+ test(S("abcde"), 4, 1, SV("12345"), 5, 0, S("abcd"));
+ test(S("abcde"), 4, 1, SV("12345"), 5, 1, S("abcd"));
+ test(S("abcde"), 4, 1, SV("12345"), 6, 0, S("can't happen"));
+ test(S("abcde"), 4, 1, SV("1234567890"), 0, 0, S("abcd"));
+ test(S("abcde"), 4, 1, SV("1234567890"), 0, 1, S("abcd1"));
+ test(S("abcde"), 4, 1, SV("1234567890"), 0, 5, S("abcd12345"));
+ test(S("abcde"), 4, 1, SV("1234567890"), 0, 9, S("abcd123456789"));
+ test(S("abcde"), 4, 1, SV("1234567890"), 0, 10, S("abcd1234567890"));
+ test(S("abcde"), 4, 1, SV("1234567890"), 0, 11, S("abcd1234567890"));
+ test(S("abcde"), 4, 1, SV("1234567890"), 1, 0, S("abcd"));
+ test(S("abcde"), 4, 1, SV("1234567890"), 1, 1, S("abcd2"));
+ test(S("abcde"), 4, 1, SV("1234567890"), 1, 4, S("abcd2345"));
+ test(S("abcde"), 4, 1, SV("1234567890"), 1, 8, S("abcd23456789"));
+ test(S("abcde"), 4, 1, SV("1234567890"), 1, 9, S("abcd234567890"));
+ test(S("abcde"), 4, 1, SV("1234567890"), 1, 10, S("abcd234567890"));
+ test(S("abcde"), 4, 1, SV("1234567890"), 5, 0, S("abcd"));
+ test(S("abcde"), 4, 1, SV("1234567890"), 5, 1, S("abcd6"));
+ test(S("abcde"), 4, 1, SV("1234567890"), 5, 2, S("abcd67"));
+ test(S("abcde"), 4, 1, SV("1234567890"), 5, 4, S("abcd6789"));
+ test(S("abcde"), 4, 1, SV("1234567890"), 5, 5, S("abcd67890"));
+ test(S("abcde"), 4, 1, SV("1234567890"), 5, 6, S("abcd67890"));
+ test(S("abcde"), 4, 1, SV("1234567890"), 9, 0, S("abcd"));
+ test(S("abcde"), 4, 1, SV("1234567890"), 9, 1, S("abcd0"));
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test16()
-{
- test(S("abcde"), 4, 1, SV("1234567890"), 9, 2, S("abcd0"));
- test(S("abcde"), 4, 1, SV("1234567890"), 10, 0, S("abcd"));
- test(S("abcde"), 4, 1, SV("1234567890"), 10, 1, S("abcd"));
- test(S("abcde"), 4, 1, SV("1234567890"), 11, 0, S("can't happen"));
- test(S("abcde"), 4, 1, SV("12345678901234567890"), 0, 0, S("abcd"));
- test(S("abcde"), 4, 1, SV("12345678901234567890"), 0, 1, S("abcd1"));
- test(S("abcde"), 4, 1, SV("12345678901234567890"), 0, 10, S("abcd1234567890"));
- test(S("abcde"), 4, 1, SV("12345678901234567890"), 0, 19, S("abcd1234567890123456789"));
- test(S("abcde"), 4, 1, SV("12345678901234567890"), 0, 20, S("abcd12345678901234567890"));
- test(S("abcde"), 4, 1, SV("12345678901234567890"), 0, 21, S("abcd12345678901234567890"));
- test(S("abcde"), 4, 1, SV("12345678901234567890"), 1, 0, S("abcd"));
- test(S("abcde"), 4, 1, SV("12345678901234567890"), 1, 1, S("abcd2"));
- test(S("abcde"), 4, 1, SV("12345678901234567890"), 1, 9, S("abcd234567890"));
- test(S("abcde"), 4, 1, SV("12345678901234567890"), 1, 18, S("abcd234567890123456789"));
- test(S("abcde"), 4, 1, SV("12345678901234567890"), 1, 19, S("abcd2345678901234567890"));
- test(S("abcde"), 4, 1, SV("12345678901234567890"), 1, 20, S("abcd2345678901234567890"));
- test(S("abcde"), 4, 1, SV("12345678901234567890"), 10, 0, S("abcd"));
- test(S("abcde"), 4, 1, SV("12345678901234567890"), 10, 1, S("abcd1"));
- test(S("abcde"), 4, 1, SV("12345678901234567890"), 10, 5, S("abcd12345"));
- test(S("abcde"), 4, 1, SV("12345678901234567890"), 10, 9, S("abcd123456789"));
- test(S("abcde"), 4, 1, SV("12345678901234567890"), 10, 10, S("abcd1234567890"));
- test(S("abcde"), 4, 1, SV("12345678901234567890"), 10, 11, S("abcd1234567890"));
- test(S("abcde"), 4, 1, SV("12345678901234567890"), 19, 0, S("abcd"));
- test(S("abcde"), 4, 1, SV("12345678901234567890"), 19, 1, S("abcd0"));
- test(S("abcde"), 4, 1, SV("12345678901234567890"), 19, 2, S("abcd0"));
- test(S("abcde"), 4, 1, SV("12345678901234567890"), 20, 0, S("abcd"));
- test(S("abcde"), 4, 1, SV("12345678901234567890"), 20, 1, S("abcd"));
- test(S("abcde"), 4, 1, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcde"), 4, 2, SV(""), 0, 0, S("abcd"));
- test(S("abcde"), 4, 2, SV(""), 0, 1, S("abcd"));
- test(S("abcde"), 4, 2, SV(""), 1, 0, S("can't happen"));
- test(S("abcde"), 4, 2, SV("12345"), 0, 0, S("abcd"));
- test(S("abcde"), 4, 2, SV("12345"), 0, 1, S("abcd1"));
- test(S("abcde"), 4, 2, SV("12345"), 0, 2, S("abcd12"));
- test(S("abcde"), 4, 2, SV("12345"), 0, 4, S("abcd1234"));
- test(S("abcde"), 4, 2, SV("12345"), 0, 5, S("abcd12345"));
- test(S("abcde"), 4, 2, SV("12345"), 0, 6, S("abcd12345"));
- test(S("abcde"), 4, 2, SV("12345"), 1, 0, S("abcd"));
- test(S("abcde"), 4, 2, SV("12345"), 1, 1, S("abcd2"));
- test(S("abcde"), 4, 2, SV("12345"), 1, 2, S("abcd23"));
- test(S("abcde"), 4, 2, SV("12345"), 1, 3, S("abcd234"));
- test(S("abcde"), 4, 2, SV("12345"), 1, 4, S("abcd2345"));
- test(S("abcde"), 4, 2, SV("12345"), 1, 5, S("abcd2345"));
- test(S("abcde"), 4, 2, SV("12345"), 2, 0, S("abcd"));
- test(S("abcde"), 4, 2, SV("12345"), 2, 1, S("abcd3"));
- test(S("abcde"), 4, 2, SV("12345"), 2, 2, S("abcd34"));
- test(S("abcde"), 4, 2, SV("12345"), 2, 3, S("abcd345"));
- test(S("abcde"), 4, 2, SV("12345"), 2, 4, S("abcd345"));
- test(S("abcde"), 4, 2, SV("12345"), 4, 0, S("abcd"));
- test(S("abcde"), 4, 2, SV("12345"), 4, 1, S("abcd5"));
- test(S("abcde"), 4, 2, SV("12345"), 4, 2, S("abcd5"));
- test(S("abcde"), 4, 2, SV("12345"), 5, 0, S("abcd"));
- test(S("abcde"), 4, 2, SV("12345"), 5, 1, S("abcd"));
- test(S("abcde"), 4, 2, SV("12345"), 6, 0, S("can't happen"));
- test(S("abcde"), 4, 2, SV("1234567890"), 0, 0, S("abcd"));
- test(S("abcde"), 4, 2, SV("1234567890"), 0, 1, S("abcd1"));
- test(S("abcde"), 4, 2, SV("1234567890"), 0, 5, S("abcd12345"));
- test(S("abcde"), 4, 2, SV("1234567890"), 0, 9, S("abcd123456789"));
- test(S("abcde"), 4, 2, SV("1234567890"), 0, 10, S("abcd1234567890"));
- test(S("abcde"), 4, 2, SV("1234567890"), 0, 11, S("abcd1234567890"));
- test(S("abcde"), 4, 2, SV("1234567890"), 1, 0, S("abcd"));
- test(S("abcde"), 4, 2, SV("1234567890"), 1, 1, S("abcd2"));
- test(S("abcde"), 4, 2, SV("1234567890"), 1, 4, S("abcd2345"));
- test(S("abcde"), 4, 2, SV("1234567890"), 1, 8, S("abcd23456789"));
- test(S("abcde"), 4, 2, SV("1234567890"), 1, 9, S("abcd234567890"));
- test(S("abcde"), 4, 2, SV("1234567890"), 1, 10, S("abcd234567890"));
- test(S("abcde"), 4, 2, SV("1234567890"), 5, 0, S("abcd"));
- test(S("abcde"), 4, 2, SV("1234567890"), 5, 1, S("abcd6"));
- test(S("abcde"), 4, 2, SV("1234567890"), 5, 2, S("abcd67"));
- test(S("abcde"), 4, 2, SV("1234567890"), 5, 4, S("abcd6789"));
- test(S("abcde"), 4, 2, SV("1234567890"), 5, 5, S("abcd67890"));
- test(S("abcde"), 4, 2, SV("1234567890"), 5, 6, S("abcd67890"));
- test(S("abcde"), 4, 2, SV("1234567890"), 9, 0, S("abcd"));
- test(S("abcde"), 4, 2, SV("1234567890"), 9, 1, S("abcd0"));
- test(S("abcde"), 4, 2, SV("1234567890"), 9, 2, S("abcd0"));
- test(S("abcde"), 4, 2, SV("1234567890"), 10, 0, S("abcd"));
- test(S("abcde"), 4, 2, SV("1234567890"), 10, 1, S("abcd"));
- test(S("abcde"), 4, 2, SV("1234567890"), 11, 0, S("can't happen"));
- test(S("abcde"), 4, 2, SV("12345678901234567890"), 0, 0, S("abcd"));
- test(S("abcde"), 4, 2, SV("12345678901234567890"), 0, 1, S("abcd1"));
- test(S("abcde"), 4, 2, SV("12345678901234567890"), 0, 10, S("abcd1234567890"));
- test(S("abcde"), 4, 2, SV("12345678901234567890"), 0, 19, S("abcd1234567890123456789"));
- test(S("abcde"), 4, 2, SV("12345678901234567890"), 0, 20, S("abcd12345678901234567890"));
- test(S("abcde"), 4, 2, SV("12345678901234567890"), 0, 21, S("abcd12345678901234567890"));
- test(S("abcde"), 4, 2, SV("12345678901234567890"), 1, 0, S("abcd"));
- test(S("abcde"), 4, 2, SV("12345678901234567890"), 1, 1, S("abcd2"));
- test(S("abcde"), 4, 2, SV("12345678901234567890"), 1, 9, S("abcd234567890"));
- test(S("abcde"), 4, 2, SV("12345678901234567890"), 1, 18, S("abcd234567890123456789"));
- test(S("abcde"), 4, 2, SV("12345678901234567890"), 1, 19, S("abcd2345678901234567890"));
- test(S("abcde"), 4, 2, SV("12345678901234567890"), 1, 20, S("abcd2345678901234567890"));
- test(S("abcde"), 4, 2, SV("12345678901234567890"), 10, 0, S("abcd"));
- test(S("abcde"), 4, 2, SV("12345678901234567890"), 10, 1, S("abcd1"));
- test(S("abcde"), 4, 2, SV("12345678901234567890"), 10, 5, S("abcd12345"));
- test(S("abcde"), 4, 2, SV("12345678901234567890"), 10, 9, S("abcd123456789"));
- test(S("abcde"), 4, 2, SV("12345678901234567890"), 10, 10, S("abcd1234567890"));
- test(S("abcde"), 4, 2, SV("12345678901234567890"), 10, 11, S("abcd1234567890"));
- test(S("abcde"), 4, 2, SV("12345678901234567890"), 19, 0, S("abcd"));
- test(S("abcde"), 4, 2, SV("12345678901234567890"), 19, 1, S("abcd0"));
- test(S("abcde"), 4, 2, SV("12345678901234567890"), 19, 2, S("abcd0"));
- test(S("abcde"), 4, 2, SV("12345678901234567890"), 20, 0, S("abcd"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test16() {
+ test(S("abcde"), 4, 1, SV("1234567890"), 9, 2, S("abcd0"));
+ test(S("abcde"), 4, 1, SV("1234567890"), 10, 0, S("abcd"));
+ test(S("abcde"), 4, 1, SV("1234567890"), 10, 1, S("abcd"));
+ test(S("abcde"), 4, 1, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcde"), 4, 1, SV("12345678901234567890"), 0, 0, S("abcd"));
+ test(S("abcde"), 4, 1, SV("12345678901234567890"), 0, 1, S("abcd1"));
+ test(S("abcde"), 4, 1, SV("12345678901234567890"), 0, 10, S("abcd1234567890"));
+ test(S("abcde"), 4, 1, SV("12345678901234567890"), 0, 19, S("abcd1234567890123456789"));
+ test(S("abcde"), 4, 1, SV("12345678901234567890"), 0, 20, S("abcd12345678901234567890"));
+ test(S("abcde"), 4, 1, SV("12345678901234567890"), 0, 21, S("abcd12345678901234567890"));
+ test(S("abcde"), 4, 1, SV("12345678901234567890"), 1, 0, S("abcd"));
+ test(S("abcde"), 4, 1, SV("12345678901234567890"), 1, 1, S("abcd2"));
+ test(S("abcde"), 4, 1, SV("12345678901234567890"), 1, 9, S("abcd234567890"));
+ test(S("abcde"), 4, 1, SV("12345678901234567890"), 1, 18, S("abcd234567890123456789"));
+ test(S("abcde"), 4, 1, SV("12345678901234567890"), 1, 19, S("abcd2345678901234567890"));
+ test(S("abcde"), 4, 1, SV("12345678901234567890"), 1, 20, S("abcd2345678901234567890"));
+ test(S("abcde"), 4, 1, SV("12345678901234567890"), 10, 0, S("abcd"));
+ test(S("abcde"), 4, 1, SV("12345678901234567890"), 10, 1, S("abcd1"));
+ test(S("abcde"), 4, 1, SV("12345678901234567890"), 10, 5, S("abcd12345"));
+ test(S("abcde"), 4, 1, SV("12345678901234567890"), 10, 9, S("abcd123456789"));
+ test(S("abcde"), 4, 1, SV("12345678901234567890"), 10, 10, S("abcd1234567890"));
+ test(S("abcde"), 4, 1, SV("12345678901234567890"), 10, 11, S("abcd1234567890"));
+ test(S("abcde"), 4, 1, SV("12345678901234567890"), 19, 0, S("abcd"));
+ test(S("abcde"), 4, 1, SV("12345678901234567890"), 19, 1, S("abcd0"));
+ test(S("abcde"), 4, 1, SV("12345678901234567890"), 19, 2, S("abcd0"));
+ test(S("abcde"), 4, 1, SV("12345678901234567890"), 20, 0, S("abcd"));
+ test(S("abcde"), 4, 1, SV("12345678901234567890"), 20, 1, S("abcd"));
+ test(S("abcde"), 4, 1, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcde"), 4, 2, SV(""), 0, 0, S("abcd"));
+ test(S("abcde"), 4, 2, SV(""), 0, 1, S("abcd"));
+ test(S("abcde"), 4, 2, SV(""), 1, 0, S("can't happen"));
+ test(S("abcde"), 4, 2, SV("12345"), 0, 0, S("abcd"));
+ test(S("abcde"), 4, 2, SV("12345"), 0, 1, S("abcd1"));
+ test(S("abcde"), 4, 2, SV("12345"), 0, 2, S("abcd12"));
+ test(S("abcde"), 4, 2, SV("12345"), 0, 4, S("abcd1234"));
+ test(S("abcde"), 4, 2, SV("12345"), 0, 5, S("abcd12345"));
+ test(S("abcde"), 4, 2, SV("12345"), 0, 6, S("abcd12345"));
+ test(S("abcde"), 4, 2, SV("12345"), 1, 0, S("abcd"));
+ test(S("abcde"), 4, 2, SV("12345"), 1, 1, S("abcd2"));
+ test(S("abcde"), 4, 2, SV("12345"), 1, 2, S("abcd23"));
+ test(S("abcde"), 4, 2, SV("12345"), 1, 3, S("abcd234"));
+ test(S("abcde"), 4, 2, SV("12345"), 1, 4, S("abcd2345"));
+ test(S("abcde"), 4, 2, SV("12345"), 1, 5, S("abcd2345"));
+ test(S("abcde"), 4, 2, SV("12345"), 2, 0, S("abcd"));
+ test(S("abcde"), 4, 2, SV("12345"), 2, 1, S("abcd3"));
+ test(S("abcde"), 4, 2, SV("12345"), 2, 2, S("abcd34"));
+ test(S("abcde"), 4, 2, SV("12345"), 2, 3, S("abcd345"));
+ test(S("abcde"), 4, 2, SV("12345"), 2, 4, S("abcd345"));
+ test(S("abcde"), 4, 2, SV("12345"), 4, 0, S("abcd"));
+ test(S("abcde"), 4, 2, SV("12345"), 4, 1, S("abcd5"));
+ test(S("abcde"), 4, 2, SV("12345"), 4, 2, S("abcd5"));
+ test(S("abcde"), 4, 2, SV("12345"), 5, 0, S("abcd"));
+ test(S("abcde"), 4, 2, SV("12345"), 5, 1, S("abcd"));
+ test(S("abcde"), 4, 2, SV("12345"), 6, 0, S("can't happen"));
+ test(S("abcde"), 4, 2, SV("1234567890"), 0, 0, S("abcd"));
+ test(S("abcde"), 4, 2, SV("1234567890"), 0, 1, S("abcd1"));
+ test(S("abcde"), 4, 2, SV("1234567890"), 0, 5, S("abcd12345"));
+ test(S("abcde"), 4, 2, SV("1234567890"), 0, 9, S("abcd123456789"));
+ test(S("abcde"), 4, 2, SV("1234567890"), 0, 10, S("abcd1234567890"));
+ test(S("abcde"), 4, 2, SV("1234567890"), 0, 11, S("abcd1234567890"));
+ test(S("abcde"), 4, 2, SV("1234567890"), 1, 0, S("abcd"));
+ test(S("abcde"), 4, 2, SV("1234567890"), 1, 1, S("abcd2"));
+ test(S("abcde"), 4, 2, SV("1234567890"), 1, 4, S("abcd2345"));
+ test(S("abcde"), 4, 2, SV("1234567890"), 1, 8, S("abcd23456789"));
+ test(S("abcde"), 4, 2, SV("1234567890"), 1, 9, S("abcd234567890"));
+ test(S("abcde"), 4, 2, SV("1234567890"), 1, 10, S("abcd234567890"));
+ test(S("abcde"), 4, 2, SV("1234567890"), 5, 0, S("abcd"));
+ test(S("abcde"), 4, 2, SV("1234567890"), 5, 1, S("abcd6"));
+ test(S("abcde"), 4, 2, SV("1234567890"), 5, 2, S("abcd67"));
+ test(S("abcde"), 4, 2, SV("1234567890"), 5, 4, S("abcd6789"));
+ test(S("abcde"), 4, 2, SV("1234567890"), 5, 5, S("abcd67890"));
+ test(S("abcde"), 4, 2, SV("1234567890"), 5, 6, S("abcd67890"));
+ test(S("abcde"), 4, 2, SV("1234567890"), 9, 0, S("abcd"));
+ test(S("abcde"), 4, 2, SV("1234567890"), 9, 1, S("abcd0"));
+ test(S("abcde"), 4, 2, SV("1234567890"), 9, 2, S("abcd0"));
+ test(S("abcde"), 4, 2, SV("1234567890"), 10, 0, S("abcd"));
+ test(S("abcde"), 4, 2, SV("1234567890"), 10, 1, S("abcd"));
+ test(S("abcde"), 4, 2, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcde"), 4, 2, SV("12345678901234567890"), 0, 0, S("abcd"));
+ test(S("abcde"), 4, 2, SV("12345678901234567890"), 0, 1, S("abcd1"));
+ test(S("abcde"), 4, 2, SV("12345678901234567890"), 0, 10, S("abcd1234567890"));
+ test(S("abcde"), 4, 2, SV("12345678901234567890"), 0, 19, S("abcd1234567890123456789"));
+ test(S("abcde"), 4, 2, SV("12345678901234567890"), 0, 20, S("abcd12345678901234567890"));
+ test(S("abcde"), 4, 2, SV("12345678901234567890"), 0, 21, S("abcd12345678901234567890"));
+ test(S("abcde"), 4, 2, SV("12345678901234567890"), 1, 0, S("abcd"));
+ test(S("abcde"), 4, 2, SV("12345678901234567890"), 1, 1, S("abcd2"));
+ test(S("abcde"), 4, 2, SV("12345678901234567890"), 1, 9, S("abcd234567890"));
+ test(S("abcde"), 4, 2, SV("12345678901234567890"), 1, 18, S("abcd234567890123456789"));
+ test(S("abcde"), 4, 2, SV("12345678901234567890"), 1, 19, S("abcd2345678901234567890"));
+ test(S("abcde"), 4, 2, SV("12345678901234567890"), 1, 20, S("abcd2345678901234567890"));
+ test(S("abcde"), 4, 2, SV("12345678901234567890"), 10, 0, S("abcd"));
+ test(S("abcde"), 4, 2, SV("12345678901234567890"), 10, 1, S("abcd1"));
+ test(S("abcde"), 4, 2, SV("12345678901234567890"), 10, 5, S("abcd12345"));
+ test(S("abcde"), 4, 2, SV("12345678901234567890"), 10, 9, S("abcd123456789"));
+ test(S("abcde"), 4, 2, SV("12345678901234567890"), 10, 10, S("abcd1234567890"));
+ test(S("abcde"), 4, 2, SV("12345678901234567890"), 10, 11, S("abcd1234567890"));
+ test(S("abcde"), 4, 2, SV("12345678901234567890"), 19, 0, S("abcd"));
+ test(S("abcde"), 4, 2, SV("12345678901234567890"), 19, 1, S("abcd0"));
+ test(S("abcde"), 4, 2, SV("12345678901234567890"), 19, 2, S("abcd0"));
+ test(S("abcde"), 4, 2, SV("12345678901234567890"), 20, 0, S("abcd"));
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test17()
-{
- test(S("abcde"), 4, 2, SV("12345678901234567890"), 20, 1, S("abcd"));
- test(S("abcde"), 4, 2, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcde"), 5, 0, SV(""), 0, 0, S("abcde"));
- test(S("abcde"), 5, 0, SV(""), 0, 1, S("abcde"));
- test(S("abcde"), 5, 0, SV(""), 1, 0, S("can't happen"));
- test(S("abcde"), 5, 0, SV("12345"), 0, 0, S("abcde"));
- test(S("abcde"), 5, 0, SV("12345"), 0, 1, S("abcde1"));
- test(S("abcde"), 5, 0, SV("12345"), 0, 2, S("abcde12"));
- test(S("abcde"), 5, 0, SV("12345"), 0, 4, S("abcde1234"));
- test(S("abcde"), 5, 0, SV("12345"), 0, 5, S("abcde12345"));
- test(S("abcde"), 5, 0, SV("12345"), 0, 6, S("abcde12345"));
- test(S("abcde"), 5, 0, SV("12345"), 1, 0, S("abcde"));
- test(S("abcde"), 5, 0, SV("12345"), 1, 1, S("abcde2"));
- test(S("abcde"), 5, 0, SV("12345"), 1, 2, S("abcde23"));
- test(S("abcde"), 5, 0, SV("12345"), 1, 3, S("abcde234"));
- test(S("abcde"), 5, 0, SV("12345"), 1, 4, S("abcde2345"));
- test(S("abcde"), 5, 0, SV("12345"), 1, 5, S("abcde2345"));
- test(S("abcde"), 5, 0, SV("12345"), 2, 0, S("abcde"));
- test(S("abcde"), 5, 0, SV("12345"), 2, 1, S("abcde3"));
- test(S("abcde"), 5, 0, SV("12345"), 2, 2, S("abcde34"));
- test(S("abcde"), 5, 0, SV("12345"), 2, 3, S("abcde345"));
- test(S("abcde"), 5, 0, SV("12345"), 2, 4, S("abcde345"));
- test(S("abcde"), 5, 0, SV("12345"), 4, 0, S("abcde"));
- test(S("abcde"), 5, 0, SV("12345"), 4, 1, S("abcde5"));
- test(S("abcde"), 5, 0, SV("12345"), 4, 2, S("abcde5"));
- test(S("abcde"), 5, 0, SV("12345"), 5, 0, S("abcde"));
- test(S("abcde"), 5, 0, SV("12345"), 5, 1, S("abcde"));
- test(S("abcde"), 5, 0, SV("12345"), 6, 0, S("can't happen"));
- test(S("abcde"), 5, 0, SV("1234567890"), 0, 0, S("abcde"));
- test(S("abcde"), 5, 0, SV("1234567890"), 0, 1, S("abcde1"));
- test(S("abcde"), 5, 0, SV("1234567890"), 0, 5, S("abcde12345"));
- test(S("abcde"), 5, 0, SV("1234567890"), 0, 9, S("abcde123456789"));
- test(S("abcde"), 5, 0, SV("1234567890"), 0, 10, S("abcde1234567890"));
- test(S("abcde"), 5, 0, SV("1234567890"), 0, 11, S("abcde1234567890"));
- test(S("abcde"), 5, 0, SV("1234567890"), 1, 0, S("abcde"));
- test(S("abcde"), 5, 0, SV("1234567890"), 1, 1, S("abcde2"));
- test(S("abcde"), 5, 0, SV("1234567890"), 1, 4, S("abcde2345"));
- test(S("abcde"), 5, 0, SV("1234567890"), 1, 8, S("abcde23456789"));
- test(S("abcde"), 5, 0, SV("1234567890"), 1, 9, S("abcde234567890"));
- test(S("abcde"), 5, 0, SV("1234567890"), 1, 10, S("abcde234567890"));
- test(S("abcde"), 5, 0, SV("1234567890"), 5, 0, S("abcde"));
- test(S("abcde"), 5, 0, SV("1234567890"), 5, 1, S("abcde6"));
- test(S("abcde"), 5, 0, SV("1234567890"), 5, 2, S("abcde67"));
- test(S("abcde"), 5, 0, SV("1234567890"), 5, 4, S("abcde6789"));
- test(S("abcde"), 5, 0, SV("1234567890"), 5, 5, S("abcde67890"));
- test(S("abcde"), 5, 0, SV("1234567890"), 5, 6, S("abcde67890"));
- test(S("abcde"), 5, 0, SV("1234567890"), 9, 0, S("abcde"));
- test(S("abcde"), 5, 0, SV("1234567890"), 9, 1, S("abcde0"));
- test(S("abcde"), 5, 0, SV("1234567890"), 9, 2, S("abcde0"));
- test(S("abcde"), 5, 0, SV("1234567890"), 10, 0, S("abcde"));
- test(S("abcde"), 5, 0, SV("1234567890"), 10, 1, S("abcde"));
- test(S("abcde"), 5, 0, SV("1234567890"), 11, 0, S("can't happen"));
- test(S("abcde"), 5, 0, SV("12345678901234567890"), 0, 0, S("abcde"));
- test(S("abcde"), 5, 0, SV("12345678901234567890"), 0, 1, S("abcde1"));
- test(S("abcde"), 5, 0, SV("12345678901234567890"), 0, 10, S("abcde1234567890"));
- test(S("abcde"), 5, 0, SV("12345678901234567890"), 0, 19, S("abcde1234567890123456789"));
- test(S("abcde"), 5, 0, SV("12345678901234567890"), 0, 20, S("abcde12345678901234567890"));
- test(S("abcde"), 5, 0, SV("12345678901234567890"), 0, 21, S("abcde12345678901234567890"));
- test(S("abcde"), 5, 0, SV("12345678901234567890"), 1, 0, S("abcde"));
- test(S("abcde"), 5, 0, SV("12345678901234567890"), 1, 1, S("abcde2"));
- test(S("abcde"), 5, 0, SV("12345678901234567890"), 1, 9, S("abcde234567890"));
- test(S("abcde"), 5, 0, SV("12345678901234567890"), 1, 18, S("abcde234567890123456789"));
- test(S("abcde"), 5, 0, SV("12345678901234567890"), 1, 19, S("abcde2345678901234567890"));
- test(S("abcde"), 5, 0, SV("12345678901234567890"), 1, 20, S("abcde2345678901234567890"));
- test(S("abcde"), 5, 0, SV("12345678901234567890"), 10, 0, S("abcde"));
- test(S("abcde"), 5, 0, SV("12345678901234567890"), 10, 1, S("abcde1"));
- test(S("abcde"), 5, 0, SV("12345678901234567890"), 10, 5, S("abcde12345"));
- test(S("abcde"), 5, 0, SV("12345678901234567890"), 10, 9, S("abcde123456789"));
- test(S("abcde"), 5, 0, SV("12345678901234567890"), 10, 10, S("abcde1234567890"));
- test(S("abcde"), 5, 0, SV("12345678901234567890"), 10, 11, S("abcde1234567890"));
- test(S("abcde"), 5, 0, SV("12345678901234567890"), 19, 0, S("abcde"));
- test(S("abcde"), 5, 0, SV("12345678901234567890"), 19, 1, S("abcde0"));
- test(S("abcde"), 5, 0, SV("12345678901234567890"), 19, 2, S("abcde0"));
- test(S("abcde"), 5, 0, SV("12345678901234567890"), 20, 0, S("abcde"));
- test(S("abcde"), 5, 0, SV("12345678901234567890"), 20, 1, S("abcde"));
- test(S("abcde"), 5, 0, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcde"), 5, 1, SV(""), 0, 0, S("abcde"));
- test(S("abcde"), 5, 1, SV(""), 0, 1, S("abcde"));
- test(S("abcde"), 5, 1, SV(""), 1, 0, S("can't happen"));
- test(S("abcde"), 5, 1, SV("12345"), 0, 0, S("abcde"));
- test(S("abcde"), 5, 1, SV("12345"), 0, 1, S("abcde1"));
- test(S("abcde"), 5, 1, SV("12345"), 0, 2, S("abcde12"));
- test(S("abcde"), 5, 1, SV("12345"), 0, 4, S("abcde1234"));
- test(S("abcde"), 5, 1, SV("12345"), 0, 5, S("abcde12345"));
- test(S("abcde"), 5, 1, SV("12345"), 0, 6, S("abcde12345"));
- test(S("abcde"), 5, 1, SV("12345"), 1, 0, S("abcde"));
- test(S("abcde"), 5, 1, SV("12345"), 1, 1, S("abcde2"));
- test(S("abcde"), 5, 1, SV("12345"), 1, 2, S("abcde23"));
- test(S("abcde"), 5, 1, SV("12345"), 1, 3, S("abcde234"));
- test(S("abcde"), 5, 1, SV("12345"), 1, 4, S("abcde2345"));
- test(S("abcde"), 5, 1, SV("12345"), 1, 5, S("abcde2345"));
- test(S("abcde"), 5, 1, SV("12345"), 2, 0, S("abcde"));
- test(S("abcde"), 5, 1, SV("12345"), 2, 1, S("abcde3"));
- test(S("abcde"), 5, 1, SV("12345"), 2, 2, S("abcde34"));
- test(S("abcde"), 5, 1, SV("12345"), 2, 3, S("abcde345"));
- test(S("abcde"), 5, 1, SV("12345"), 2, 4, S("abcde345"));
- test(S("abcde"), 5, 1, SV("12345"), 4, 0, S("abcde"));
- test(S("abcde"), 5, 1, SV("12345"), 4, 1, S("abcde5"));
- test(S("abcde"), 5, 1, SV("12345"), 4, 2, S("abcde5"));
- test(S("abcde"), 5, 1, SV("12345"), 5, 0, S("abcde"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test17() {
+ test(S("abcde"), 4, 2, SV("12345678901234567890"), 20, 1, S("abcd"));
+ test(S("abcde"), 4, 2, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcde"), 5, 0, SV(""), 0, 0, S("abcde"));
+ test(S("abcde"), 5, 0, SV(""), 0, 1, S("abcde"));
+ test(S("abcde"), 5, 0, SV(""), 1, 0, S("can't happen"));
+ test(S("abcde"), 5, 0, SV("12345"), 0, 0, S("abcde"));
+ test(S("abcde"), 5, 0, SV("12345"), 0, 1, S("abcde1"));
+ test(S("abcde"), 5, 0, SV("12345"), 0, 2, S("abcde12"));
+ test(S("abcde"), 5, 0, SV("12345"), 0, 4, S("abcde1234"));
+ test(S("abcde"), 5, 0, SV("12345"), 0, 5, S("abcde12345"));
+ test(S("abcde"), 5, 0, SV("12345"), 0, 6, S("abcde12345"));
+ test(S("abcde"), 5, 0, SV("12345"), 1, 0, S("abcde"));
+ test(S("abcde"), 5, 0, SV("12345"), 1, 1, S("abcde2"));
+ test(S("abcde"), 5, 0, SV("12345"), 1, 2, S("abcde23"));
+ test(S("abcde"), 5, 0, SV("12345"), 1, 3, S("abcde234"));
+ test(S("abcde"), 5, 0, SV("12345"), 1, 4, S("abcde2345"));
+ test(S("abcde"), 5, 0, SV("12345"), 1, 5, S("abcde2345"));
+ test(S("abcde"), 5, 0, SV("12345"), 2, 0, S("abcde"));
+ test(S("abcde"), 5, 0, SV("12345"), 2, 1, S("abcde3"));
+ test(S("abcde"), 5, 0, SV("12345"), 2, 2, S("abcde34"));
+ test(S("abcde"), 5, 0, SV("12345"), 2, 3, S("abcde345"));
+ test(S("abcde"), 5, 0, SV("12345"), 2, 4, S("abcde345"));
+ test(S("abcde"), 5, 0, SV("12345"), 4, 0, S("abcde"));
+ test(S("abcde"), 5, 0, SV("12345"), 4, 1, S("abcde5"));
+ test(S("abcde"), 5, 0, SV("12345"), 4, 2, S("abcde5"));
+ test(S("abcde"), 5, 0, SV("12345"), 5, 0, S("abcde"));
+ test(S("abcde"), 5, 0, SV("12345"), 5, 1, S("abcde"));
+ test(S("abcde"), 5, 0, SV("12345"), 6, 0, S("can't happen"));
+ test(S("abcde"), 5, 0, SV("1234567890"), 0, 0, S("abcde"));
+ test(S("abcde"), 5, 0, SV("1234567890"), 0, 1, S("abcde1"));
+ test(S("abcde"), 5, 0, SV("1234567890"), 0, 5, S("abcde12345"));
+ test(S("abcde"), 5, 0, SV("1234567890"), 0, 9, S("abcde123456789"));
+ test(S("abcde"), 5, 0, SV("1234567890"), 0, 10, S("abcde1234567890"));
+ test(S("abcde"), 5, 0, SV("1234567890"), 0, 11, S("abcde1234567890"));
+ test(S("abcde"), 5, 0, SV("1234567890"), 1, 0, S("abcde"));
+ test(S("abcde"), 5, 0, SV("1234567890"), 1, 1, S("abcde2"));
+ test(S("abcde"), 5, 0, SV("1234567890"), 1, 4, S("abcde2345"));
+ test(S("abcde"), 5, 0, SV("1234567890"), 1, 8, S("abcde23456789"));
+ test(S("abcde"), 5, 0, SV("1234567890"), 1, 9, S("abcde234567890"));
+ test(S("abcde"), 5, 0, SV("1234567890"), 1, 10, S("abcde234567890"));
+ test(S("abcde"), 5, 0, SV("1234567890"), 5, 0, S("abcde"));
+ test(S("abcde"), 5, 0, SV("1234567890"), 5, 1, S("abcde6"));
+ test(S("abcde"), 5, 0, SV("1234567890"), 5, 2, S("abcde67"));
+ test(S("abcde"), 5, 0, SV("1234567890"), 5, 4, S("abcde6789"));
+ test(S("abcde"), 5, 0, SV("1234567890"), 5, 5, S("abcde67890"));
+ test(S("abcde"), 5, 0, SV("1234567890"), 5, 6, S("abcde67890"));
+ test(S("abcde"), 5, 0, SV("1234567890"), 9, 0, S("abcde"));
+ test(S("abcde"), 5, 0, SV("1234567890"), 9, 1, S("abcde0"));
+ test(S("abcde"), 5, 0, SV("1234567890"), 9, 2, S("abcde0"));
+ test(S("abcde"), 5, 0, SV("1234567890"), 10, 0, S("abcde"));
+ test(S("abcde"), 5, 0, SV("1234567890"), 10, 1, S("abcde"));
+ test(S("abcde"), 5, 0, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcde"), 5, 0, SV("12345678901234567890"), 0, 0, S("abcde"));
+ test(S("abcde"), 5, 0, SV("12345678901234567890"), 0, 1, S("abcde1"));
+ test(S("abcde"), 5, 0, SV("12345678901234567890"), 0, 10, S("abcde1234567890"));
+ test(S("abcde"), 5, 0, SV("12345678901234567890"), 0, 19, S("abcde1234567890123456789"));
+ test(S("abcde"), 5, 0, SV("12345678901234567890"), 0, 20, S("abcde12345678901234567890"));
+ test(S("abcde"), 5, 0, SV("12345678901234567890"), 0, 21, S("abcde12345678901234567890"));
+ test(S("abcde"), 5, 0, SV("12345678901234567890"), 1, 0, S("abcde"));
+ test(S("abcde"), 5, 0, SV("12345678901234567890"), 1, 1, S("abcde2"));
+ test(S("abcde"), 5, 0, SV("12345678901234567890"), 1, 9, S("abcde234567890"));
+ test(S("abcde"), 5, 0, SV("12345678901234567890"), 1, 18, S("abcde234567890123456789"));
+ test(S("abcde"), 5, 0, SV("12345678901234567890"), 1, 19, S("abcde2345678901234567890"));
+ test(S("abcde"), 5, 0, SV("12345678901234567890"), 1, 20, S("abcde2345678901234567890"));
+ test(S("abcde"), 5, 0, SV("12345678901234567890"), 10, 0, S("abcde"));
+ test(S("abcde"), 5, 0, SV("12345678901234567890"), 10, 1, S("abcde1"));
+ test(S("abcde"), 5, 0, SV("12345678901234567890"), 10, 5, S("abcde12345"));
+ test(S("abcde"), 5, 0, SV("12345678901234567890"), 10, 9, S("abcde123456789"));
+ test(S("abcde"), 5, 0, SV("12345678901234567890"), 10, 10, S("abcde1234567890"));
+ test(S("abcde"), 5, 0, SV("12345678901234567890"), 10, 11, S("abcde1234567890"));
+ test(S("abcde"), 5, 0, SV("12345678901234567890"), 19, 0, S("abcde"));
+ test(S("abcde"), 5, 0, SV("12345678901234567890"), 19, 1, S("abcde0"));
+ test(S("abcde"), 5, 0, SV("12345678901234567890"), 19, 2, S("abcde0"));
+ test(S("abcde"), 5, 0, SV("12345678901234567890"), 20, 0, S("abcde"));
+ test(S("abcde"), 5, 0, SV("12345678901234567890"), 20, 1, S("abcde"));
+ test(S("abcde"), 5, 0, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcde"), 5, 1, SV(""), 0, 0, S("abcde"));
+ test(S("abcde"), 5, 1, SV(""), 0, 1, S("abcde"));
+ test(S("abcde"), 5, 1, SV(""), 1, 0, S("can't happen"));
+ test(S("abcde"), 5, 1, SV("12345"), 0, 0, S("abcde"));
+ test(S("abcde"), 5, 1, SV("12345"), 0, 1, S("abcde1"));
+ test(S("abcde"), 5, 1, SV("12345"), 0, 2, S("abcde12"));
+ test(S("abcde"), 5, 1, SV("12345"), 0, 4, S("abcde1234"));
+ test(S("abcde"), 5, 1, SV("12345"), 0, 5, S("abcde12345"));
+ test(S("abcde"), 5, 1, SV("12345"), 0, 6, S("abcde12345"));
+ test(S("abcde"), 5, 1, SV("12345"), 1, 0, S("abcde"));
+ test(S("abcde"), 5, 1, SV("12345"), 1, 1, S("abcde2"));
+ test(S("abcde"), 5, 1, SV("12345"), 1, 2, S("abcde23"));
+ test(S("abcde"), 5, 1, SV("12345"), 1, 3, S("abcde234"));
+ test(S("abcde"), 5, 1, SV("12345"), 1, 4, S("abcde2345"));
+ test(S("abcde"), 5, 1, SV("12345"), 1, 5, S("abcde2345"));
+ test(S("abcde"), 5, 1, SV("12345"), 2, 0, S("abcde"));
+ test(S("abcde"), 5, 1, SV("12345"), 2, 1, S("abcde3"));
+ test(S("abcde"), 5, 1, SV("12345"), 2, 2, S("abcde34"));
+ test(S("abcde"), 5, 1, SV("12345"), 2, 3, S("abcde345"));
+ test(S("abcde"), 5, 1, SV("12345"), 2, 4, S("abcde345"));
+ test(S("abcde"), 5, 1, SV("12345"), 4, 0, S("abcde"));
+ test(S("abcde"), 5, 1, SV("12345"), 4, 1, S("abcde5"));
+ test(S("abcde"), 5, 1, SV("12345"), 4, 2, S("abcde5"));
+ test(S("abcde"), 5, 1, SV("12345"), 5, 0, S("abcde"));
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test18()
-{
- test(S("abcde"), 5, 1, SV("12345"), 5, 1, S("abcde"));
- test(S("abcde"), 5, 1, SV("12345"), 6, 0, S("can't happen"));
- test(S("abcde"), 5, 1, SV("1234567890"), 0, 0, S("abcde"));
- test(S("abcde"), 5, 1, SV("1234567890"), 0, 1, S("abcde1"));
- test(S("abcde"), 5, 1, SV("1234567890"), 0, 5, S("abcde12345"));
- test(S("abcde"), 5, 1, SV("1234567890"), 0, 9, S("abcde123456789"));
- test(S("abcde"), 5, 1, SV("1234567890"), 0, 10, S("abcde1234567890"));
- test(S("abcde"), 5, 1, SV("1234567890"), 0, 11, S("abcde1234567890"));
- test(S("abcde"), 5, 1, SV("1234567890"), 1, 0, S("abcde"));
- test(S("abcde"), 5, 1, SV("1234567890"), 1, 1, S("abcde2"));
- test(S("abcde"), 5, 1, SV("1234567890"), 1, 4, S("abcde2345"));
- test(S("abcde"), 5, 1, SV("1234567890"), 1, 8, S("abcde23456789"));
- test(S("abcde"), 5, 1, SV("1234567890"), 1, 9, S("abcde234567890"));
- test(S("abcde"), 5, 1, SV("1234567890"), 1, 10, S("abcde234567890"));
- test(S("abcde"), 5, 1, SV("1234567890"), 5, 0, S("abcde"));
- test(S("abcde"), 5, 1, SV("1234567890"), 5, 1, S("abcde6"));
- test(S("abcde"), 5, 1, SV("1234567890"), 5, 2, S("abcde67"));
- test(S("abcde"), 5, 1, SV("1234567890"), 5, 4, S("abcde6789"));
- test(S("abcde"), 5, 1, SV("1234567890"), 5, 5, S("abcde67890"));
- test(S("abcde"), 5, 1, SV("1234567890"), 5, 6, S("abcde67890"));
- test(S("abcde"), 5, 1, SV("1234567890"), 9, 0, S("abcde"));
- test(S("abcde"), 5, 1, SV("1234567890"), 9, 1, S("abcde0"));
- test(S("abcde"), 5, 1, SV("1234567890"), 9, 2, S("abcde0"));
- test(S("abcde"), 5, 1, SV("1234567890"), 10, 0, S("abcde"));
- test(S("abcde"), 5, 1, SV("1234567890"), 10, 1, S("abcde"));
- test(S("abcde"), 5, 1, SV("1234567890"), 11, 0, S("can't happen"));
- test(S("abcde"), 5, 1, SV("12345678901234567890"), 0, 0, S("abcde"));
- test(S("abcde"), 5, 1, SV("12345678901234567890"), 0, 1, S("abcde1"));
- test(S("abcde"), 5, 1, SV("12345678901234567890"), 0, 10, S("abcde1234567890"));
- test(S("abcde"), 5, 1, SV("12345678901234567890"), 0, 19, S("abcde1234567890123456789"));
- test(S("abcde"), 5, 1, SV("12345678901234567890"), 0, 20, S("abcde12345678901234567890"));
- test(S("abcde"), 5, 1, SV("12345678901234567890"), 0, 21, S("abcde12345678901234567890"));
- test(S("abcde"), 5, 1, SV("12345678901234567890"), 1, 0, S("abcde"));
- test(S("abcde"), 5, 1, SV("12345678901234567890"), 1, 1, S("abcde2"));
- test(S("abcde"), 5, 1, SV("12345678901234567890"), 1, 9, S("abcde234567890"));
- test(S("abcde"), 5, 1, SV("12345678901234567890"), 1, 18, S("abcde234567890123456789"));
- test(S("abcde"), 5, 1, SV("12345678901234567890"), 1, 19, S("abcde2345678901234567890"));
- test(S("abcde"), 5, 1, SV("12345678901234567890"), 1, 20, S("abcde2345678901234567890"));
- test(S("abcde"), 5, 1, SV("12345678901234567890"), 10, 0, S("abcde"));
- test(S("abcde"), 5, 1, SV("12345678901234567890"), 10, 1, S("abcde1"));
- test(S("abcde"), 5, 1, SV("12345678901234567890"), 10, 5, S("abcde12345"));
- test(S("abcde"), 5, 1, SV("12345678901234567890"), 10, 9, S("abcde123456789"));
- test(S("abcde"), 5, 1, SV("12345678901234567890"), 10, 10, S("abcde1234567890"));
- test(S("abcde"), 5, 1, SV("12345678901234567890"), 10, 11, S("abcde1234567890"));
- test(S("abcde"), 5, 1, SV("12345678901234567890"), 19, 0, S("abcde"));
- test(S("abcde"), 5, 1, SV("12345678901234567890"), 19, 1, S("abcde0"));
- test(S("abcde"), 5, 1, SV("12345678901234567890"), 19, 2, S("abcde0"));
- test(S("abcde"), 5, 1, SV("12345678901234567890"), 20, 0, S("abcde"));
- test(S("abcde"), 5, 1, SV("12345678901234567890"), 20, 1, S("abcde"));
- test(S("abcde"), 5, 1, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcde"), 6, 0, SV(""), 0, 0, S("can't happen"));
- test(S("abcde"), 6, 0, SV(""), 0, 1, S("can't happen"));
- test(S("abcde"), 6, 0, SV(""), 1, 0, S("can't happen"));
- test(S("abcde"), 6, 0, SV("12345"), 0, 0, S("can't happen"));
- test(S("abcde"), 6, 0, SV("12345"), 0, 1, S("can't happen"));
- test(S("abcde"), 6, 0, SV("12345"), 0, 2, S("can't happen"));
- test(S("abcde"), 6, 0, SV("12345"), 0, 4, S("can't happen"));
- test(S("abcde"), 6, 0, SV("12345"), 0, 5, S("can't happen"));
- test(S("abcde"), 6, 0, SV("12345"), 0, 6, S("can't happen"));
- test(S("abcde"), 6, 0, SV("12345"), 1, 0, S("can't happen"));
- test(S("abcde"), 6, 0, SV("12345"), 1, 1, S("can't happen"));
- test(S("abcde"), 6, 0, SV("12345"), 1, 2, S("can't happen"));
- test(S("abcde"), 6, 0, SV("12345"), 1, 3, S("can't happen"));
- test(S("abcde"), 6, 0, SV("12345"), 1, 4, S("can't happen"));
- test(S("abcde"), 6, 0, SV("12345"), 1, 5, S("can't happen"));
- test(S("abcde"), 6, 0, SV("12345"), 2, 0, S("can't happen"));
- test(S("abcde"), 6, 0, SV("12345"), 2, 1, S("can't happen"));
- test(S("abcde"), 6, 0, SV("12345"), 2, 2, S("can't happen"));
- test(S("abcde"), 6, 0, SV("12345"), 2, 3, S("can't happen"));
- test(S("abcde"), 6, 0, SV("12345"), 2, 4, S("can't happen"));
- test(S("abcde"), 6, 0, SV("12345"), 4, 0, S("can't happen"));
- test(S("abcde"), 6, 0, SV("12345"), 4, 1, S("can't happen"));
- test(S("abcde"), 6, 0, SV("12345"), 4, 2, S("can't happen"));
- test(S("abcde"), 6, 0, SV("12345"), 5, 0, S("can't happen"));
- test(S("abcde"), 6, 0, SV("12345"), 5, 1, S("can't happen"));
- test(S("abcde"), 6, 0, SV("12345"), 6, 0, S("can't happen"));
- test(S("abcde"), 6, 0, SV("1234567890"), 0, 0, S("can't happen"));
- test(S("abcde"), 6, 0, SV("1234567890"), 0, 1, S("can't happen"));
- test(S("abcde"), 6, 0, SV("1234567890"), 0, 5, S("can't happen"));
- test(S("abcde"), 6, 0, SV("1234567890"), 0, 9, S("can't happen"));
- test(S("abcde"), 6, 0, SV("1234567890"), 0, 10, S("can't happen"));
- test(S("abcde"), 6, 0, SV("1234567890"), 0, 11, S("can't happen"));
- test(S("abcde"), 6, 0, SV("1234567890"), 1, 0, S("can't happen"));
- test(S("abcde"), 6, 0, SV("1234567890"), 1, 1, S("can't happen"));
- test(S("abcde"), 6, 0, SV("1234567890"), 1, 4, S("can't happen"));
- test(S("abcde"), 6, 0, SV("1234567890"), 1, 8, S("can't happen"));
- test(S("abcde"), 6, 0, SV("1234567890"), 1, 9, S("can't happen"));
- test(S("abcde"), 6, 0, SV("1234567890"), 1, 10, S("can't happen"));
- test(S("abcde"), 6, 0, SV("1234567890"), 5, 0, S("can't happen"));
- test(S("abcde"), 6, 0, SV("1234567890"), 5, 1, S("can't happen"));
- test(S("abcde"), 6, 0, SV("1234567890"), 5, 2, S("can't happen"));
- test(S("abcde"), 6, 0, SV("1234567890"), 5, 4, S("can't happen"));
- test(S("abcde"), 6, 0, SV("1234567890"), 5, 5, S("can't happen"));
- test(S("abcde"), 6, 0, SV("1234567890"), 5, 6, S("can't happen"));
- test(S("abcde"), 6, 0, SV("1234567890"), 9, 0, S("can't happen"));
- test(S("abcde"), 6, 0, SV("1234567890"), 9, 1, S("can't happen"));
- test(S("abcde"), 6, 0, SV("1234567890"), 9, 2, S("can't happen"));
- test(S("abcde"), 6, 0, SV("1234567890"), 10, 0, S("can't happen"));
- test(S("abcde"), 6, 0, SV("1234567890"), 10, 1, S("can't happen"));
- test(S("abcde"), 6, 0, SV("1234567890"), 11, 0, S("can't happen"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test18() {
+ test(S("abcde"), 5, 1, SV("12345"), 5, 1, S("abcde"));
+ test(S("abcde"), 5, 1, SV("12345"), 6, 0, S("can't happen"));
+ test(S("abcde"), 5, 1, SV("1234567890"), 0, 0, S("abcde"));
+ test(S("abcde"), 5, 1, SV("1234567890"), 0, 1, S("abcde1"));
+ test(S("abcde"), 5, 1, SV("1234567890"), 0, 5, S("abcde12345"));
+ test(S("abcde"), 5, 1, SV("1234567890"), 0, 9, S("abcde123456789"));
+ test(S("abcde"), 5, 1, SV("1234567890"), 0, 10, S("abcde1234567890"));
+ test(S("abcde"), 5, 1, SV("1234567890"), 0, 11, S("abcde1234567890"));
+ test(S("abcde"), 5, 1, SV("1234567890"), 1, 0, S("abcde"));
+ test(S("abcde"), 5, 1, SV("1234567890"), 1, 1, S("abcde2"));
+ test(S("abcde"), 5, 1, SV("1234567890"), 1, 4, S("abcde2345"));
+ test(S("abcde"), 5, 1, SV("1234567890"), 1, 8, S("abcde23456789"));
+ test(S("abcde"), 5, 1, SV("1234567890"), 1, 9, S("abcde234567890"));
+ test(S("abcde"), 5, 1, SV("1234567890"), 1, 10, S("abcde234567890"));
+ test(S("abcde"), 5, 1, SV("1234567890"), 5, 0, S("abcde"));
+ test(S("abcde"), 5, 1, SV("1234567890"), 5, 1, S("abcde6"));
+ test(S("abcde"), 5, 1, SV("1234567890"), 5, 2, S("abcde67"));
+ test(S("abcde"), 5, 1, SV("1234567890"), 5, 4, S("abcde6789"));
+ test(S("abcde"), 5, 1, SV("1234567890"), 5, 5, S("abcde67890"));
+ test(S("abcde"), 5, 1, SV("1234567890"), 5, 6, S("abcde67890"));
+ test(S("abcde"), 5, 1, SV("1234567890"), 9, 0, S("abcde"));
+ test(S("abcde"), 5, 1, SV("1234567890"), 9, 1, S("abcde0"));
+ test(S("abcde"), 5, 1, SV("1234567890"), 9, 2, S("abcde0"));
+ test(S("abcde"), 5, 1, SV("1234567890"), 10, 0, S("abcde"));
+ test(S("abcde"), 5, 1, SV("1234567890"), 10, 1, S("abcde"));
+ test(S("abcde"), 5, 1, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcde"), 5, 1, SV("12345678901234567890"), 0, 0, S("abcde"));
+ test(S("abcde"), 5, 1, SV("12345678901234567890"), 0, 1, S("abcde1"));
+ test(S("abcde"), 5, 1, SV("12345678901234567890"), 0, 10, S("abcde1234567890"));
+ test(S("abcde"), 5, 1, SV("12345678901234567890"), 0, 19, S("abcde1234567890123456789"));
+ test(S("abcde"), 5, 1, SV("12345678901234567890"), 0, 20, S("abcde12345678901234567890"));
+ test(S("abcde"), 5, 1, SV("12345678901234567890"), 0, 21, S("abcde12345678901234567890"));
+ test(S("abcde"), 5, 1, SV("12345678901234567890"), 1, 0, S("abcde"));
+ test(S("abcde"), 5, 1, SV("12345678901234567890"), 1, 1, S("abcde2"));
+ test(S("abcde"), 5, 1, SV("12345678901234567890"), 1, 9, S("abcde234567890"));
+ test(S("abcde"), 5, 1, SV("12345678901234567890"), 1, 18, S("abcde234567890123456789"));
+ test(S("abcde"), 5, 1, SV("12345678901234567890"), 1, 19, S("abcde2345678901234567890"));
+ test(S("abcde"), 5, 1, SV("12345678901234567890"), 1, 20, S("abcde2345678901234567890"));
+ test(S("abcde"), 5, 1, SV("12345678901234567890"), 10, 0, S("abcde"));
+ test(S("abcde"), 5, 1, SV("12345678901234567890"), 10, 1, S("abcde1"));
+ test(S("abcde"), 5, 1, SV("12345678901234567890"), 10, 5, S("abcde12345"));
+ test(S("abcde"), 5, 1, SV("12345678901234567890"), 10, 9, S("abcde123456789"));
+ test(S("abcde"), 5, 1, SV("12345678901234567890"), 10, 10, S("abcde1234567890"));
+ test(S("abcde"), 5, 1, SV("12345678901234567890"), 10, 11, S("abcde1234567890"));
+ test(S("abcde"), 5, 1, SV("12345678901234567890"), 19, 0, S("abcde"));
+ test(S("abcde"), 5, 1, SV("12345678901234567890"), 19, 1, S("abcde0"));
+ test(S("abcde"), 5, 1, SV("12345678901234567890"), 19, 2, S("abcde0"));
+ test(S("abcde"), 5, 1, SV("12345678901234567890"), 20, 0, S("abcde"));
+ test(S("abcde"), 5, 1, SV("12345678901234567890"), 20, 1, S("abcde"));
+ test(S("abcde"), 5, 1, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcde"), 6, 0, SV(""), 0, 0, S("can't happen"));
+ test(S("abcde"), 6, 0, SV(""), 0, 1, S("can't happen"));
+ test(S("abcde"), 6, 0, SV(""), 1, 0, S("can't happen"));
+ test(S("abcde"), 6, 0, SV("12345"), 0, 0, S("can't happen"));
+ test(S("abcde"), 6, 0, SV("12345"), 0, 1, S("can't happen"));
+ test(S("abcde"), 6, 0, SV("12345"), 0, 2, S("can't happen"));
+ test(S("abcde"), 6, 0, SV("12345"), 0, 4, S("can't happen"));
+ test(S("abcde"), 6, 0, SV("12345"), 0, 5, S("can't happen"));
+ test(S("abcde"), 6, 0, SV("12345"), 0, 6, S("can't happen"));
+ test(S("abcde"), 6, 0, SV("12345"), 1, 0, S("can't happen"));
+ test(S("abcde"), 6, 0, SV("12345"), 1, 1, S("can't happen"));
+ test(S("abcde"), 6, 0, SV("12345"), 1, 2, S("can't happen"));
+ test(S("abcde"), 6, 0, SV("12345"), 1, 3, S("can't happen"));
+ test(S("abcde"), 6, 0, SV("12345"), 1, 4, S("can't happen"));
+ test(S("abcde"), 6, 0, SV("12345"), 1, 5, S("can't happen"));
+ test(S("abcde"), 6, 0, SV("12345"), 2, 0, S("can't happen"));
+ test(S("abcde"), 6, 0, SV("12345"), 2, 1, S("can't happen"));
+ test(S("abcde"), 6, 0, SV("12345"), 2, 2, S("can't happen"));
+ test(S("abcde"), 6, 0, SV("12345"), 2, 3, S("can't happen"));
+ test(S("abcde"), 6, 0, SV("12345"), 2, 4, S("can't happen"));
+ test(S("abcde"), 6, 0, SV("12345"), 4, 0, S("can't happen"));
+ test(S("abcde"), 6, 0, SV("12345"), 4, 1, S("can't happen"));
+ test(S("abcde"), 6, 0, SV("12345"), 4, 2, S("can't happen"));
+ test(S("abcde"), 6, 0, SV("12345"), 5, 0, S("can't happen"));
+ test(S("abcde"), 6, 0, SV("12345"), 5, 1, S("can't happen"));
+ test(S("abcde"), 6, 0, SV("12345"), 6, 0, S("can't happen"));
+ test(S("abcde"), 6, 0, SV("1234567890"), 0, 0, S("can't happen"));
+ test(S("abcde"), 6, 0, SV("1234567890"), 0, 1, S("can't happen"));
+ test(S("abcde"), 6, 0, SV("1234567890"), 0, 5, S("can't happen"));
+ test(S("abcde"), 6, 0, SV("1234567890"), 0, 9, S("can't happen"));
+ test(S("abcde"), 6, 0, SV("1234567890"), 0, 10, S("can't happen"));
+ test(S("abcde"), 6, 0, SV("1234567890"), 0, 11, S("can't happen"));
+ test(S("abcde"), 6, 0, SV("1234567890"), 1, 0, S("can't happen"));
+ test(S("abcde"), 6, 0, SV("1234567890"), 1, 1, S("can't happen"));
+ test(S("abcde"), 6, 0, SV("1234567890"), 1, 4, S("can't happen"));
+ test(S("abcde"), 6, 0, SV("1234567890"), 1, 8, S("can't happen"));
+ test(S("abcde"), 6, 0, SV("1234567890"), 1, 9, S("can't happen"));
+ test(S("abcde"), 6, 0, SV("1234567890"), 1, 10, S("can't happen"));
+ test(S("abcde"), 6, 0, SV("1234567890"), 5, 0, S("can't happen"));
+ test(S("abcde"), 6, 0, SV("1234567890"), 5, 1, S("can't happen"));
+ test(S("abcde"), 6, 0, SV("1234567890"), 5, 2, S("can't happen"));
+ test(S("abcde"), 6, 0, SV("1234567890"), 5, 4, S("can't happen"));
+ test(S("abcde"), 6, 0, SV("1234567890"), 5, 5, S("can't happen"));
+ test(S("abcde"), 6, 0, SV("1234567890"), 5, 6, S("can't happen"));
+ test(S("abcde"), 6, 0, SV("1234567890"), 9, 0, S("can't happen"));
+ test(S("abcde"), 6, 0, SV("1234567890"), 9, 1, S("can't happen"));
+ test(S("abcde"), 6, 0, SV("1234567890"), 9, 2, S("can't happen"));
+ test(S("abcde"), 6, 0, SV("1234567890"), 10, 0, S("can't happen"));
+ test(S("abcde"), 6, 0, SV("1234567890"), 10, 1, S("can't happen"));
+ test(S("abcde"), 6, 0, SV("1234567890"), 11, 0, S("can't happen"));
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test19()
-{
- test(S("abcde"), 6, 0, SV("12345678901234567890"), 0, 0, S("can't happen"));
- test(S("abcde"), 6, 0, SV("12345678901234567890"), 0, 1, S("can't happen"));
- test(S("abcde"), 6, 0, SV("12345678901234567890"), 0, 10, S("can't happen"));
- test(S("abcde"), 6, 0, SV("12345678901234567890"), 0, 19, S("can't happen"));
- test(S("abcde"), 6, 0, SV("12345678901234567890"), 0, 20, S("can't happen"));
- test(S("abcde"), 6, 0, SV("12345678901234567890"), 0, 21, S("can't happen"));
- test(S("abcde"), 6, 0, SV("12345678901234567890"), 1, 0, S("can't happen"));
- test(S("abcde"), 6, 0, SV("12345678901234567890"), 1, 1, S("can't happen"));
- test(S("abcde"), 6, 0, SV("12345678901234567890"), 1, 9, S("can't happen"));
- test(S("abcde"), 6, 0, SV("12345678901234567890"), 1, 18, S("can't happen"));
- test(S("abcde"), 6, 0, SV("12345678901234567890"), 1, 19, S("can't happen"));
- test(S("abcde"), 6, 0, SV("12345678901234567890"), 1, 20, S("can't happen"));
- test(S("abcde"), 6, 0, SV("12345678901234567890"), 10, 0, S("can't happen"));
- test(S("abcde"), 6, 0, SV("12345678901234567890"), 10, 1, S("can't happen"));
- test(S("abcde"), 6, 0, SV("12345678901234567890"), 10, 5, S("can't happen"));
- test(S("abcde"), 6, 0, SV("12345678901234567890"), 10, 9, S("can't happen"));
- test(S("abcde"), 6, 0, SV("12345678901234567890"), 10, 10, S("can't happen"));
- test(S("abcde"), 6, 0, SV("12345678901234567890"), 10, 11, S("can't happen"));
- test(S("abcde"), 6, 0, SV("12345678901234567890"), 19, 0, S("can't happen"));
- test(S("abcde"), 6, 0, SV("12345678901234567890"), 19, 1, S("can't happen"));
- test(S("abcde"), 6, 0, SV("12345678901234567890"), 19, 2, S("can't happen"));
- test(S("abcde"), 6, 0, SV("12345678901234567890"), 20, 0, S("can't happen"));
- test(S("abcde"), 6, 0, SV("12345678901234567890"), 20, 1, S("can't happen"));
- test(S("abcde"), 6, 0, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghij"), 0, 0, SV(""), 0, 0, S("abcdefghij"));
- test(S("abcdefghij"), 0, 0, SV(""), 0, 1, S("abcdefghij"));
- test(S("abcdefghij"), 0, 0, SV(""), 1, 0, S("can't happen"));
- test(S("abcdefghij"), 0, 0, SV("12345"), 0, 0, S("abcdefghij"));
- test(S("abcdefghij"), 0, 0, SV("12345"), 0, 1, S("1abcdefghij"));
- test(S("abcdefghij"), 0, 0, SV("12345"), 0, 2, S("12abcdefghij"));
- test(S("abcdefghij"), 0, 0, SV("12345"), 0, 4, S("1234abcdefghij"));
- test(S("abcdefghij"), 0, 0, SV("12345"), 0, 5, S("12345abcdefghij"));
- test(S("abcdefghij"), 0, 0, SV("12345"), 0, 6, S("12345abcdefghij"));
- test(S("abcdefghij"), 0, 0, SV("12345"), 1, 0, S("abcdefghij"));
- test(S("abcdefghij"), 0, 0, SV("12345"), 1, 1, S("2abcdefghij"));
- test(S("abcdefghij"), 0, 0, SV("12345"), 1, 2, S("23abcdefghij"));
- test(S("abcdefghij"), 0, 0, SV("12345"), 1, 3, S("234abcdefghij"));
- test(S("abcdefghij"), 0, 0, SV("12345"), 1, 4, S("2345abcdefghij"));
- test(S("abcdefghij"), 0, 0, SV("12345"), 1, 5, S("2345abcdefghij"));
- test(S("abcdefghij"), 0, 0, SV("12345"), 2, 0, S("abcdefghij"));
- test(S("abcdefghij"), 0, 0, SV("12345"), 2, 1, S("3abcdefghij"));
- test(S("abcdefghij"), 0, 0, SV("12345"), 2, 2, S("34abcdefghij"));
- test(S("abcdefghij"), 0, 0, SV("12345"), 2, 3, S("345abcdefghij"));
- test(S("abcdefghij"), 0, 0, SV("12345"), 2, 4, S("345abcdefghij"));
- test(S("abcdefghij"), 0, 0, SV("12345"), 4, 0, S("abcdefghij"));
- test(S("abcdefghij"), 0, 0, SV("12345"), 4, 1, S("5abcdefghij"));
- test(S("abcdefghij"), 0, 0, SV("12345"), 4, 2, S("5abcdefghij"));
- test(S("abcdefghij"), 0, 0, SV("12345"), 5, 0, S("abcdefghij"));
- test(S("abcdefghij"), 0, 0, SV("12345"), 5, 1, S("abcdefghij"));
- test(S("abcdefghij"), 0, 0, SV("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghij"), 0, 0, SV("1234567890"), 0, 0, S("abcdefghij"));
- test(S("abcdefghij"), 0, 0, SV("1234567890"), 0, 1, S("1abcdefghij"));
- test(S("abcdefghij"), 0, 0, SV("1234567890"), 0, 5, S("12345abcdefghij"));
- test(S("abcdefghij"), 0, 0, SV("1234567890"), 0, 9, S("123456789abcdefghij"));
- test(S("abcdefghij"), 0, 0, SV("1234567890"), 0, 10, S("1234567890abcdefghij"));
- test(S("abcdefghij"), 0, 0, SV("1234567890"), 0, 11, S("1234567890abcdefghij"));
- test(S("abcdefghij"), 0, 0, SV("1234567890"), 1, 0, S("abcdefghij"));
- test(S("abcdefghij"), 0, 0, SV("1234567890"), 1, 1, S("2abcdefghij"));
- test(S("abcdefghij"), 0, 0, SV("1234567890"), 1, 4, S("2345abcdefghij"));
- test(S("abcdefghij"), 0, 0, SV("1234567890"), 1, 8, S("23456789abcdefghij"));
- test(S("abcdefghij"), 0, 0, SV("1234567890"), 1, 9, S("234567890abcdefghij"));
- test(S("abcdefghij"), 0, 0, SV("1234567890"), 1, 10, S("234567890abcdefghij"));
- test(S("abcdefghij"), 0, 0, SV("1234567890"), 5, 0, S("abcdefghij"));
- test(S("abcdefghij"), 0, 0, SV("1234567890"), 5, 1, S("6abcdefghij"));
- test(S("abcdefghij"), 0, 0, SV("1234567890"), 5, 2, S("67abcdefghij"));
- test(S("abcdefghij"), 0, 0, SV("1234567890"), 5, 4, S("6789abcdefghij"));
- test(S("abcdefghij"), 0, 0, SV("1234567890"), 5, 5, S("67890abcdefghij"));
- test(S("abcdefghij"), 0, 0, SV("1234567890"), 5, 6, S("67890abcdefghij"));
- test(S("abcdefghij"), 0, 0, SV("1234567890"), 9, 0, S("abcdefghij"));
- test(S("abcdefghij"), 0, 0, SV("1234567890"), 9, 1, S("0abcdefghij"));
- test(S("abcdefghij"), 0, 0, SV("1234567890"), 9, 2, S("0abcdefghij"));
- test(S("abcdefghij"), 0, 0, SV("1234567890"), 10, 0, S("abcdefghij"));
- test(S("abcdefghij"), 0, 0, SV("1234567890"), 10, 1, S("abcdefghij"));
- test(S("abcdefghij"), 0, 0, SV("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghij"), 0, 0, SV("12345678901234567890"), 0, 0, S("abcdefghij"));
- test(S("abcdefghij"), 0, 0, SV("12345678901234567890"), 0, 1, S("1abcdefghij"));
- test(S("abcdefghij"), 0, 0, SV("12345678901234567890"), 0, 10, S("1234567890abcdefghij"));
- test(S("abcdefghij"), 0, 0, SV("12345678901234567890"), 0, 19, S("1234567890123456789abcdefghij"));
- test(S("abcdefghij"), 0, 0, SV("12345678901234567890"), 0, 20, S("12345678901234567890abcdefghij"));
- test(S("abcdefghij"), 0, 0, SV("12345678901234567890"), 0, 21, S("12345678901234567890abcdefghij"));
- test(S("abcdefghij"), 0, 0, SV("12345678901234567890"), 1, 0, S("abcdefghij"));
- test(S("abcdefghij"), 0, 0, SV("12345678901234567890"), 1, 1, S("2abcdefghij"));
- test(S("abcdefghij"), 0, 0, SV("12345678901234567890"), 1, 9, S("234567890abcdefghij"));
- test(S("abcdefghij"), 0, 0, SV("12345678901234567890"), 1, 18, S("234567890123456789abcdefghij"));
- test(S("abcdefghij"), 0, 0, SV("12345678901234567890"), 1, 19, S("2345678901234567890abcdefghij"));
- test(S("abcdefghij"), 0, 0, SV("12345678901234567890"), 1, 20, S("2345678901234567890abcdefghij"));
- test(S("abcdefghij"), 0, 0, SV("12345678901234567890"), 10, 0, S("abcdefghij"));
- test(S("abcdefghij"), 0, 0, SV("12345678901234567890"), 10, 1, S("1abcdefghij"));
- test(S("abcdefghij"), 0, 0, SV("12345678901234567890"), 10, 5, S("12345abcdefghij"));
- test(S("abcdefghij"), 0, 0, SV("12345678901234567890"), 10, 9, S("123456789abcdefghij"));
- test(S("abcdefghij"), 0, 0, SV("12345678901234567890"), 10, 10, S("1234567890abcdefghij"));
- test(S("abcdefghij"), 0, 0, SV("12345678901234567890"), 10, 11, S("1234567890abcdefghij"));
- test(S("abcdefghij"), 0, 0, SV("12345678901234567890"), 19, 0, S("abcdefghij"));
- test(S("abcdefghij"), 0, 0, SV("12345678901234567890"), 19, 1, S("0abcdefghij"));
- test(S("abcdefghij"), 0, 0, SV("12345678901234567890"), 19, 2, S("0abcdefghij"));
- test(S("abcdefghij"), 0, 0, SV("12345678901234567890"), 20, 0, S("abcdefghij"));
- test(S("abcdefghij"), 0, 0, SV("12345678901234567890"), 20, 1, S("abcdefghij"));
- test(S("abcdefghij"), 0, 0, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghij"), 0, 1, SV(""), 0, 0, S("bcdefghij"));
- test(S("abcdefghij"), 0, 1, SV(""), 0, 1, S("bcdefghij"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test19() {
+ test(S("abcde"), 6, 0, SV("12345678901234567890"), 0, 0, S("can't happen"));
+ test(S("abcde"), 6, 0, SV("12345678901234567890"), 0, 1, S("can't happen"));
+ test(S("abcde"), 6, 0, SV("12345678901234567890"), 0, 10, S("can't happen"));
+ test(S("abcde"), 6, 0, SV("12345678901234567890"), 0, 19, S("can't happen"));
+ test(S("abcde"), 6, 0, SV("12345678901234567890"), 0, 20, S("can't happen"));
+ test(S("abcde"), 6, 0, SV("12345678901234567890"), 0, 21, S("can't happen"));
+ test(S("abcde"), 6, 0, SV("12345678901234567890"), 1, 0, S("can't happen"));
+ test(S("abcde"), 6, 0, SV("12345678901234567890"), 1, 1, S("can't happen"));
+ test(S("abcde"), 6, 0, SV("12345678901234567890"), 1, 9, S("can't happen"));
+ test(S("abcde"), 6, 0, SV("12345678901234567890"), 1, 18, S("can't happen"));
+ test(S("abcde"), 6, 0, SV("12345678901234567890"), 1, 19, S("can't happen"));
+ test(S("abcde"), 6, 0, SV("12345678901234567890"), 1, 20, S("can't happen"));
+ test(S("abcde"), 6, 0, SV("12345678901234567890"), 10, 0, S("can't happen"));
+ test(S("abcde"), 6, 0, SV("12345678901234567890"), 10, 1, S("can't happen"));
+ test(S("abcde"), 6, 0, SV("12345678901234567890"), 10, 5, S("can't happen"));
+ test(S("abcde"), 6, 0, SV("12345678901234567890"), 10, 9, S("can't happen"));
+ test(S("abcde"), 6, 0, SV("12345678901234567890"), 10, 10, S("can't happen"));
+ test(S("abcde"), 6, 0, SV("12345678901234567890"), 10, 11, S("can't happen"));
+ test(S("abcde"), 6, 0, SV("12345678901234567890"), 19, 0, S("can't happen"));
+ test(S("abcde"), 6, 0, SV("12345678901234567890"), 19, 1, S("can't happen"));
+ test(S("abcde"), 6, 0, SV("12345678901234567890"), 19, 2, S("can't happen"));
+ test(S("abcde"), 6, 0, SV("12345678901234567890"), 20, 0, S("can't happen"));
+ test(S("abcde"), 6, 0, SV("12345678901234567890"), 20, 1, S("can't happen"));
+ test(S("abcde"), 6, 0, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghij"), 0, 0, SV(""), 0, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 0, 0, SV(""), 0, 1, S("abcdefghij"));
+ test(S("abcdefghij"), 0, 0, SV(""), 1, 0, S("can't happen"));
+ test(S("abcdefghij"), 0, 0, SV("12345"), 0, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 0, 0, SV("12345"), 0, 1, S("1abcdefghij"));
+ test(S("abcdefghij"), 0, 0, SV("12345"), 0, 2, S("12abcdefghij"));
+ test(S("abcdefghij"), 0, 0, SV("12345"), 0, 4, S("1234abcdefghij"));
+ test(S("abcdefghij"), 0, 0, SV("12345"), 0, 5, S("12345abcdefghij"));
+ test(S("abcdefghij"), 0, 0, SV("12345"), 0, 6, S("12345abcdefghij"));
+ test(S("abcdefghij"), 0, 0, SV("12345"), 1, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 0, 0, SV("12345"), 1, 1, S("2abcdefghij"));
+ test(S("abcdefghij"), 0, 0, SV("12345"), 1, 2, S("23abcdefghij"));
+ test(S("abcdefghij"), 0, 0, SV("12345"), 1, 3, S("234abcdefghij"));
+ test(S("abcdefghij"), 0, 0, SV("12345"), 1, 4, S("2345abcdefghij"));
+ test(S("abcdefghij"), 0, 0, SV("12345"), 1, 5, S("2345abcdefghij"));
+ test(S("abcdefghij"), 0, 0, SV("12345"), 2, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 0, 0, SV("12345"), 2, 1, S("3abcdefghij"));
+ test(S("abcdefghij"), 0, 0, SV("12345"), 2, 2, S("34abcdefghij"));
+ test(S("abcdefghij"), 0, 0, SV("12345"), 2, 3, S("345abcdefghij"));
+ test(S("abcdefghij"), 0, 0, SV("12345"), 2, 4, S("345abcdefghij"));
+ test(S("abcdefghij"), 0, 0, SV("12345"), 4, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 0, 0, SV("12345"), 4, 1, S("5abcdefghij"));
+ test(S("abcdefghij"), 0, 0, SV("12345"), 4, 2, S("5abcdefghij"));
+ test(S("abcdefghij"), 0, 0, SV("12345"), 5, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 0, 0, SV("12345"), 5, 1, S("abcdefghij"));
+ test(S("abcdefghij"), 0, 0, SV("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghij"), 0, 0, SV("1234567890"), 0, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 0, 0, SV("1234567890"), 0, 1, S("1abcdefghij"));
+ test(S("abcdefghij"), 0, 0, SV("1234567890"), 0, 5, S("12345abcdefghij"));
+ test(S("abcdefghij"), 0, 0, SV("1234567890"), 0, 9, S("123456789abcdefghij"));
+ test(S("abcdefghij"), 0, 0, SV("1234567890"), 0, 10, S("1234567890abcdefghij"));
+ test(S("abcdefghij"), 0, 0, SV("1234567890"), 0, 11, S("1234567890abcdefghij"));
+ test(S("abcdefghij"), 0, 0, SV("1234567890"), 1, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 0, 0, SV("1234567890"), 1, 1, S("2abcdefghij"));
+ test(S("abcdefghij"), 0, 0, SV("1234567890"), 1, 4, S("2345abcdefghij"));
+ test(S("abcdefghij"), 0, 0, SV("1234567890"), 1, 8, S("23456789abcdefghij"));
+ test(S("abcdefghij"), 0, 0, SV("1234567890"), 1, 9, S("234567890abcdefghij"));
+ test(S("abcdefghij"), 0, 0, SV("1234567890"), 1, 10, S("234567890abcdefghij"));
+ test(S("abcdefghij"), 0, 0, SV("1234567890"), 5, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 0, 0, SV("1234567890"), 5, 1, S("6abcdefghij"));
+ test(S("abcdefghij"), 0, 0, SV("1234567890"), 5, 2, S("67abcdefghij"));
+ test(S("abcdefghij"), 0, 0, SV("1234567890"), 5, 4, S("6789abcdefghij"));
+ test(S("abcdefghij"), 0, 0, SV("1234567890"), 5, 5, S("67890abcdefghij"));
+ test(S("abcdefghij"), 0, 0, SV("1234567890"), 5, 6, S("67890abcdefghij"));
+ test(S("abcdefghij"), 0, 0, SV("1234567890"), 9, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 0, 0, SV("1234567890"), 9, 1, S("0abcdefghij"));
+ test(S("abcdefghij"), 0, 0, SV("1234567890"), 9, 2, S("0abcdefghij"));
+ test(S("abcdefghij"), 0, 0, SV("1234567890"), 10, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 0, 0, SV("1234567890"), 10, 1, S("abcdefghij"));
+ test(S("abcdefghij"), 0, 0, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghij"), 0, 0, SV("12345678901234567890"), 0, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 0, 0, SV("12345678901234567890"), 0, 1, S("1abcdefghij"));
+ test(S("abcdefghij"), 0, 0, SV("12345678901234567890"), 0, 10, S("1234567890abcdefghij"));
+ test(S("abcdefghij"), 0, 0, SV("12345678901234567890"), 0, 19, S("1234567890123456789abcdefghij"));
+ test(S("abcdefghij"), 0, 0, SV("12345678901234567890"), 0, 20, S("12345678901234567890abcdefghij"));
+ test(S("abcdefghij"), 0, 0, SV("12345678901234567890"), 0, 21, S("12345678901234567890abcdefghij"));
+ test(S("abcdefghij"), 0, 0, SV("12345678901234567890"), 1, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 0, 0, SV("12345678901234567890"), 1, 1, S("2abcdefghij"));
+ test(S("abcdefghij"), 0, 0, SV("12345678901234567890"), 1, 9, S("234567890abcdefghij"));
+ test(S("abcdefghij"), 0, 0, SV("12345678901234567890"), 1, 18, S("234567890123456789abcdefghij"));
+ test(S("abcdefghij"), 0, 0, SV("12345678901234567890"), 1, 19, S("2345678901234567890abcdefghij"));
+ test(S("abcdefghij"), 0, 0, SV("12345678901234567890"), 1, 20, S("2345678901234567890abcdefghij"));
+ test(S("abcdefghij"), 0, 0, SV("12345678901234567890"), 10, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 0, 0, SV("12345678901234567890"), 10, 1, S("1abcdefghij"));
+ test(S("abcdefghij"), 0, 0, SV("12345678901234567890"), 10, 5, S("12345abcdefghij"));
+ test(S("abcdefghij"), 0, 0, SV("12345678901234567890"), 10, 9, S("123456789abcdefghij"));
+ test(S("abcdefghij"), 0, 0, SV("12345678901234567890"), 10, 10, S("1234567890abcdefghij"));
+ test(S("abcdefghij"), 0, 0, SV("12345678901234567890"), 10, 11, S("1234567890abcdefghij"));
+ test(S("abcdefghij"), 0, 0, SV("12345678901234567890"), 19, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 0, 0, SV("12345678901234567890"), 19, 1, S("0abcdefghij"));
+ test(S("abcdefghij"), 0, 0, SV("12345678901234567890"), 19, 2, S("0abcdefghij"));
+ test(S("abcdefghij"), 0, 0, SV("12345678901234567890"), 20, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 0, 0, SV("12345678901234567890"), 20, 1, S("abcdefghij"));
+ test(S("abcdefghij"), 0, 0, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghij"), 0, 1, SV(""), 0, 0, S("bcdefghij"));
+ test(S("abcdefghij"), 0, 1, SV(""), 0, 1, S("bcdefghij"));
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test20()
-{
- test(S("abcdefghij"), 0, 1, SV(""), 1, 0, S("can't happen"));
- test(S("abcdefghij"), 0, 1, SV("12345"), 0, 0, S("bcdefghij"));
- test(S("abcdefghij"), 0, 1, SV("12345"), 0, 1, S("1bcdefghij"));
- test(S("abcdefghij"), 0, 1, SV("12345"), 0, 2, S("12bcdefghij"));
- test(S("abcdefghij"), 0, 1, SV("12345"), 0, 4, S("1234bcdefghij"));
- test(S("abcdefghij"), 0, 1, SV("12345"), 0, 5, S("12345bcdefghij"));
- test(S("abcdefghij"), 0, 1, SV("12345"), 0, 6, S("12345bcdefghij"));
- test(S("abcdefghij"), 0, 1, SV("12345"), 1, 0, S("bcdefghij"));
- test(S("abcdefghij"), 0, 1, SV("12345"), 1, 1, S("2bcdefghij"));
- test(S("abcdefghij"), 0, 1, SV("12345"), 1, 2, S("23bcdefghij"));
- test(S("abcdefghij"), 0, 1, SV("12345"), 1, 3, S("234bcdefghij"));
- test(S("abcdefghij"), 0, 1, SV("12345"), 1, 4, S("2345bcdefghij"));
- test(S("abcdefghij"), 0, 1, SV("12345"), 1, 5, S("2345bcdefghij"));
- test(S("abcdefghij"), 0, 1, SV("12345"), 2, 0, S("bcdefghij"));
- test(S("abcdefghij"), 0, 1, SV("12345"), 2, 1, S("3bcdefghij"));
- test(S("abcdefghij"), 0, 1, SV("12345"), 2, 2, S("34bcdefghij"));
- test(S("abcdefghij"), 0, 1, SV("12345"), 2, 3, S("345bcdefghij"));
- test(S("abcdefghij"), 0, 1, SV("12345"), 2, 4, S("345bcdefghij"));
- test(S("abcdefghij"), 0, 1, SV("12345"), 4, 0, S("bcdefghij"));
- test(S("abcdefghij"), 0, 1, SV("12345"), 4, 1, S("5bcdefghij"));
- test(S("abcdefghij"), 0, 1, SV("12345"), 4, 2, S("5bcdefghij"));
- test(S("abcdefghij"), 0, 1, SV("12345"), 5, 0, S("bcdefghij"));
- test(S("abcdefghij"), 0, 1, SV("12345"), 5, 1, S("bcdefghij"));
- test(S("abcdefghij"), 0, 1, SV("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghij"), 0, 1, SV("1234567890"), 0, 0, S("bcdefghij"));
- test(S("abcdefghij"), 0, 1, SV("1234567890"), 0, 1, S("1bcdefghij"));
- test(S("abcdefghij"), 0, 1, SV("1234567890"), 0, 5, S("12345bcdefghij"));
- test(S("abcdefghij"), 0, 1, SV("1234567890"), 0, 9, S("123456789bcdefghij"));
- test(S("abcdefghij"), 0, 1, SV("1234567890"), 0, 10, S("1234567890bcdefghij"));
- test(S("abcdefghij"), 0, 1, SV("1234567890"), 0, 11, S("1234567890bcdefghij"));
- test(S("abcdefghij"), 0, 1, SV("1234567890"), 1, 0, S("bcdefghij"));
- test(S("abcdefghij"), 0, 1, SV("1234567890"), 1, 1, S("2bcdefghij"));
- test(S("abcdefghij"), 0, 1, SV("1234567890"), 1, 4, S("2345bcdefghij"));
- test(S("abcdefghij"), 0, 1, SV("1234567890"), 1, 8, S("23456789bcdefghij"));
- test(S("abcdefghij"), 0, 1, SV("1234567890"), 1, 9, S("234567890bcdefghij"));
- test(S("abcdefghij"), 0, 1, SV("1234567890"), 1, 10, S("234567890bcdefghij"));
- test(S("abcdefghij"), 0, 1, SV("1234567890"), 5, 0, S("bcdefghij"));
- test(S("abcdefghij"), 0, 1, SV("1234567890"), 5, 1, S("6bcdefghij"));
- test(S("abcdefghij"), 0, 1, SV("1234567890"), 5, 2, S("67bcdefghij"));
- test(S("abcdefghij"), 0, 1, SV("1234567890"), 5, 4, S("6789bcdefghij"));
- test(S("abcdefghij"), 0, 1, SV("1234567890"), 5, 5, S("67890bcdefghij"));
- test(S("abcdefghij"), 0, 1, SV("1234567890"), 5, 6, S("67890bcdefghij"));
- test(S("abcdefghij"), 0, 1, SV("1234567890"), 9, 0, S("bcdefghij"));
- test(S("abcdefghij"), 0, 1, SV("1234567890"), 9, 1, S("0bcdefghij"));
- test(S("abcdefghij"), 0, 1, SV("1234567890"), 9, 2, S("0bcdefghij"));
- test(S("abcdefghij"), 0, 1, SV("1234567890"), 10, 0, S("bcdefghij"));
- test(S("abcdefghij"), 0, 1, SV("1234567890"), 10, 1, S("bcdefghij"));
- test(S("abcdefghij"), 0, 1, SV("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghij"), 0, 1, SV("12345678901234567890"), 0, 0, S("bcdefghij"));
- test(S("abcdefghij"), 0, 1, SV("12345678901234567890"), 0, 1, S("1bcdefghij"));
- test(S("abcdefghij"), 0, 1, SV("12345678901234567890"), 0, 10, S("1234567890bcdefghij"));
- test(S("abcdefghij"), 0, 1, SV("12345678901234567890"), 0, 19, S("1234567890123456789bcdefghij"));
- test(S("abcdefghij"), 0, 1, SV("12345678901234567890"), 0, 20, S("12345678901234567890bcdefghij"));
- test(S("abcdefghij"), 0, 1, SV("12345678901234567890"), 0, 21, S("12345678901234567890bcdefghij"));
- test(S("abcdefghij"), 0, 1, SV("12345678901234567890"), 1, 0, S("bcdefghij"));
- test(S("abcdefghij"), 0, 1, SV("12345678901234567890"), 1, 1, S("2bcdefghij"));
- test(S("abcdefghij"), 0, 1, SV("12345678901234567890"), 1, 9, S("234567890bcdefghij"));
- test(S("abcdefghij"), 0, 1, SV("12345678901234567890"), 1, 18, S("234567890123456789bcdefghij"));
- test(S("abcdefghij"), 0, 1, SV("12345678901234567890"), 1, 19, S("2345678901234567890bcdefghij"));
- test(S("abcdefghij"), 0, 1, SV("12345678901234567890"), 1, 20, S("2345678901234567890bcdefghij"));
- test(S("abcdefghij"), 0, 1, SV("12345678901234567890"), 10, 0, S("bcdefghij"));
- test(S("abcdefghij"), 0, 1, SV("12345678901234567890"), 10, 1, S("1bcdefghij"));
- test(S("abcdefghij"), 0, 1, SV("12345678901234567890"), 10, 5, S("12345bcdefghij"));
- test(S("abcdefghij"), 0, 1, SV("12345678901234567890"), 10, 9, S("123456789bcdefghij"));
- test(S("abcdefghij"), 0, 1, SV("12345678901234567890"), 10, 10, S("1234567890bcdefghij"));
- test(S("abcdefghij"), 0, 1, SV("12345678901234567890"), 10, 11, S("1234567890bcdefghij"));
- test(S("abcdefghij"), 0, 1, SV("12345678901234567890"), 19, 0, S("bcdefghij"));
- test(S("abcdefghij"), 0, 1, SV("12345678901234567890"), 19, 1, S("0bcdefghij"));
- test(S("abcdefghij"), 0, 1, SV("12345678901234567890"), 19, 2, S("0bcdefghij"));
- test(S("abcdefghij"), 0, 1, SV("12345678901234567890"), 20, 0, S("bcdefghij"));
- test(S("abcdefghij"), 0, 1, SV("12345678901234567890"), 20, 1, S("bcdefghij"));
- test(S("abcdefghij"), 0, 1, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghij"), 0, 5, SV(""), 0, 0, S("fghij"));
- test(S("abcdefghij"), 0, 5, SV(""), 0, 1, S("fghij"));
- test(S("abcdefghij"), 0, 5, SV(""), 1, 0, S("can't happen"));
- test(S("abcdefghij"), 0, 5, SV("12345"), 0, 0, S("fghij"));
- test(S("abcdefghij"), 0, 5, SV("12345"), 0, 1, S("1fghij"));
- test(S("abcdefghij"), 0, 5, SV("12345"), 0, 2, S("12fghij"));
- test(S("abcdefghij"), 0, 5, SV("12345"), 0, 4, S("1234fghij"));
- test(S("abcdefghij"), 0, 5, SV("12345"), 0, 5, S("12345fghij"));
- test(S("abcdefghij"), 0, 5, SV("12345"), 0, 6, S("12345fghij"));
- test(S("abcdefghij"), 0, 5, SV("12345"), 1, 0, S("fghij"));
- test(S("abcdefghij"), 0, 5, SV("12345"), 1, 1, S("2fghij"));
- test(S("abcdefghij"), 0, 5, SV("12345"), 1, 2, S("23fghij"));
- test(S("abcdefghij"), 0, 5, SV("12345"), 1, 3, S("234fghij"));
- test(S("abcdefghij"), 0, 5, SV("12345"), 1, 4, S("2345fghij"));
- test(S("abcdefghij"), 0, 5, SV("12345"), 1, 5, S("2345fghij"));
- test(S("abcdefghij"), 0, 5, SV("12345"), 2, 0, S("fghij"));
- test(S("abcdefghij"), 0, 5, SV("12345"), 2, 1, S("3fghij"));
- test(S("abcdefghij"), 0, 5, SV("12345"), 2, 2, S("34fghij"));
- test(S("abcdefghij"), 0, 5, SV("12345"), 2, 3, S("345fghij"));
- test(S("abcdefghij"), 0, 5, SV("12345"), 2, 4, S("345fghij"));
- test(S("abcdefghij"), 0, 5, SV("12345"), 4, 0, S("fghij"));
- test(S("abcdefghij"), 0, 5, SV("12345"), 4, 1, S("5fghij"));
- test(S("abcdefghij"), 0, 5, SV("12345"), 4, 2, S("5fghij"));
- test(S("abcdefghij"), 0, 5, SV("12345"), 5, 0, S("fghij"));
- test(S("abcdefghij"), 0, 5, SV("12345"), 5, 1, S("fghij"));
- test(S("abcdefghij"), 0, 5, SV("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghij"), 0, 5, SV("1234567890"), 0, 0, S("fghij"));
- test(S("abcdefghij"), 0, 5, SV("1234567890"), 0, 1, S("1fghij"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test20() {
+ test(S("abcdefghij"), 0, 1, SV(""), 1, 0, S("can't happen"));
+ test(S("abcdefghij"), 0, 1, SV("12345"), 0, 0, S("bcdefghij"));
+ test(S("abcdefghij"), 0, 1, SV("12345"), 0, 1, S("1bcdefghij"));
+ test(S("abcdefghij"), 0, 1, SV("12345"), 0, 2, S("12bcdefghij"));
+ test(S("abcdefghij"), 0, 1, SV("12345"), 0, 4, S("1234bcdefghij"));
+ test(S("abcdefghij"), 0, 1, SV("12345"), 0, 5, S("12345bcdefghij"));
+ test(S("abcdefghij"), 0, 1, SV("12345"), 0, 6, S("12345bcdefghij"));
+ test(S("abcdefghij"), 0, 1, SV("12345"), 1, 0, S("bcdefghij"));
+ test(S("abcdefghij"), 0, 1, SV("12345"), 1, 1, S("2bcdefghij"));
+ test(S("abcdefghij"), 0, 1, SV("12345"), 1, 2, S("23bcdefghij"));
+ test(S("abcdefghij"), 0, 1, SV("12345"), 1, 3, S("234bcdefghij"));
+ test(S("abcdefghij"), 0, 1, SV("12345"), 1, 4, S("2345bcdefghij"));
+ test(S("abcdefghij"), 0, 1, SV("12345"), 1, 5, S("2345bcdefghij"));
+ test(S("abcdefghij"), 0, 1, SV("12345"), 2, 0, S("bcdefghij"));
+ test(S("abcdefghij"), 0, 1, SV("12345"), 2, 1, S("3bcdefghij"));
+ test(S("abcdefghij"), 0, 1, SV("12345"), 2, 2, S("34bcdefghij"));
+ test(S("abcdefghij"), 0, 1, SV("12345"), 2, 3, S("345bcdefghij"));
+ test(S("abcdefghij"), 0, 1, SV("12345"), 2, 4, S("345bcdefghij"));
+ test(S("abcdefghij"), 0, 1, SV("12345"), 4, 0, S("bcdefghij"));
+ test(S("abcdefghij"), 0, 1, SV("12345"), 4, 1, S("5bcdefghij"));
+ test(S("abcdefghij"), 0, 1, SV("12345"), 4, 2, S("5bcdefghij"));
+ test(S("abcdefghij"), 0, 1, SV("12345"), 5, 0, S("bcdefghij"));
+ test(S("abcdefghij"), 0, 1, SV("12345"), 5, 1, S("bcdefghij"));
+ test(S("abcdefghij"), 0, 1, SV("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghij"), 0, 1, SV("1234567890"), 0, 0, S("bcdefghij"));
+ test(S("abcdefghij"), 0, 1, SV("1234567890"), 0, 1, S("1bcdefghij"));
+ test(S("abcdefghij"), 0, 1, SV("1234567890"), 0, 5, S("12345bcdefghij"));
+ test(S("abcdefghij"), 0, 1, SV("1234567890"), 0, 9, S("123456789bcdefghij"));
+ test(S("abcdefghij"), 0, 1, SV("1234567890"), 0, 10, S("1234567890bcdefghij"));
+ test(S("abcdefghij"), 0, 1, SV("1234567890"), 0, 11, S("1234567890bcdefghij"));
+ test(S("abcdefghij"), 0, 1, SV("1234567890"), 1, 0, S("bcdefghij"));
+ test(S("abcdefghij"), 0, 1, SV("1234567890"), 1, 1, S("2bcdefghij"));
+ test(S("abcdefghij"), 0, 1, SV("1234567890"), 1, 4, S("2345bcdefghij"));
+ test(S("abcdefghij"), 0, 1, SV("1234567890"), 1, 8, S("23456789bcdefghij"));
+ test(S("abcdefghij"), 0, 1, SV("1234567890"), 1, 9, S("234567890bcdefghij"));
+ test(S("abcdefghij"), 0, 1, SV("1234567890"), 1, 10, S("234567890bcdefghij"));
+ test(S("abcdefghij"), 0, 1, SV("1234567890"), 5, 0, S("bcdefghij"));
+ test(S("abcdefghij"), 0, 1, SV("1234567890"), 5, 1, S("6bcdefghij"));
+ test(S("abcdefghij"), 0, 1, SV("1234567890"), 5, 2, S("67bcdefghij"));
+ test(S("abcdefghij"), 0, 1, SV("1234567890"), 5, 4, S("6789bcdefghij"));
+ test(S("abcdefghij"), 0, 1, SV("1234567890"), 5, 5, S("67890bcdefghij"));
+ test(S("abcdefghij"), 0, 1, SV("1234567890"), 5, 6, S("67890bcdefghij"));
+ test(S("abcdefghij"), 0, 1, SV("1234567890"), 9, 0, S("bcdefghij"));
+ test(S("abcdefghij"), 0, 1, SV("1234567890"), 9, 1, S("0bcdefghij"));
+ test(S("abcdefghij"), 0, 1, SV("1234567890"), 9, 2, S("0bcdefghij"));
+ test(S("abcdefghij"), 0, 1, SV("1234567890"), 10, 0, S("bcdefghij"));
+ test(S("abcdefghij"), 0, 1, SV("1234567890"), 10, 1, S("bcdefghij"));
+ test(S("abcdefghij"), 0, 1, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghij"), 0, 1, SV("12345678901234567890"), 0, 0, S("bcdefghij"));
+ test(S("abcdefghij"), 0, 1, SV("12345678901234567890"), 0, 1, S("1bcdefghij"));
+ test(S("abcdefghij"), 0, 1, SV("12345678901234567890"), 0, 10, S("1234567890bcdefghij"));
+ test(S("abcdefghij"), 0, 1, SV("12345678901234567890"), 0, 19, S("1234567890123456789bcdefghij"));
+ test(S("abcdefghij"), 0, 1, SV("12345678901234567890"), 0, 20, S("12345678901234567890bcdefghij"));
+ test(S("abcdefghij"), 0, 1, SV("12345678901234567890"), 0, 21, S("12345678901234567890bcdefghij"));
+ test(S("abcdefghij"), 0, 1, SV("12345678901234567890"), 1, 0, S("bcdefghij"));
+ test(S("abcdefghij"), 0, 1, SV("12345678901234567890"), 1, 1, S("2bcdefghij"));
+ test(S("abcdefghij"), 0, 1, SV("12345678901234567890"), 1, 9, S("234567890bcdefghij"));
+ test(S("abcdefghij"), 0, 1, SV("12345678901234567890"), 1, 18, S("234567890123456789bcdefghij"));
+ test(S("abcdefghij"), 0, 1, SV("12345678901234567890"), 1, 19, S("2345678901234567890bcdefghij"));
+ test(S("abcdefghij"), 0, 1, SV("12345678901234567890"), 1, 20, S("2345678901234567890bcdefghij"));
+ test(S("abcdefghij"), 0, 1, SV("12345678901234567890"), 10, 0, S("bcdefghij"));
+ test(S("abcdefghij"), 0, 1, SV("12345678901234567890"), 10, 1, S("1bcdefghij"));
+ test(S("abcdefghij"), 0, 1, SV("12345678901234567890"), 10, 5, S("12345bcdefghij"));
+ test(S("abcdefghij"), 0, 1, SV("12345678901234567890"), 10, 9, S("123456789bcdefghij"));
+ test(S("abcdefghij"), 0, 1, SV("12345678901234567890"), 10, 10, S("1234567890bcdefghij"));
+ test(S("abcdefghij"), 0, 1, SV("12345678901234567890"), 10, 11, S("1234567890bcdefghij"));
+ test(S("abcdefghij"), 0, 1, SV("12345678901234567890"), 19, 0, S("bcdefghij"));
+ test(S("abcdefghij"), 0, 1, SV("12345678901234567890"), 19, 1, S("0bcdefghij"));
+ test(S("abcdefghij"), 0, 1, SV("12345678901234567890"), 19, 2, S("0bcdefghij"));
+ test(S("abcdefghij"), 0, 1, SV("12345678901234567890"), 20, 0, S("bcdefghij"));
+ test(S("abcdefghij"), 0, 1, SV("12345678901234567890"), 20, 1, S("bcdefghij"));
+ test(S("abcdefghij"), 0, 1, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghij"), 0, 5, SV(""), 0, 0, S("fghij"));
+ test(S("abcdefghij"), 0, 5, SV(""), 0, 1, S("fghij"));
+ test(S("abcdefghij"), 0, 5, SV(""), 1, 0, S("can't happen"));
+ test(S("abcdefghij"), 0, 5, SV("12345"), 0, 0, S("fghij"));
+ test(S("abcdefghij"), 0, 5, SV("12345"), 0, 1, S("1fghij"));
+ test(S("abcdefghij"), 0, 5, SV("12345"), 0, 2, S("12fghij"));
+ test(S("abcdefghij"), 0, 5, SV("12345"), 0, 4, S("1234fghij"));
+ test(S("abcdefghij"), 0, 5, SV("12345"), 0, 5, S("12345fghij"));
+ test(S("abcdefghij"), 0, 5, SV("12345"), 0, 6, S("12345fghij"));
+ test(S("abcdefghij"), 0, 5, SV("12345"), 1, 0, S("fghij"));
+ test(S("abcdefghij"), 0, 5, SV("12345"), 1, 1, S("2fghij"));
+ test(S("abcdefghij"), 0, 5, SV("12345"), 1, 2, S("23fghij"));
+ test(S("abcdefghij"), 0, 5, SV("12345"), 1, 3, S("234fghij"));
+ test(S("abcdefghij"), 0, 5, SV("12345"), 1, 4, S("2345fghij"));
+ test(S("abcdefghij"), 0, 5, SV("12345"), 1, 5, S("2345fghij"));
+ test(S("abcdefghij"), 0, 5, SV("12345"), 2, 0, S("fghij"));
+ test(S("abcdefghij"), 0, 5, SV("12345"), 2, 1, S("3fghij"));
+ test(S("abcdefghij"), 0, 5, SV("12345"), 2, 2, S("34fghij"));
+ test(S("abcdefghij"), 0, 5, SV("12345"), 2, 3, S("345fghij"));
+ test(S("abcdefghij"), 0, 5, SV("12345"), 2, 4, S("345fghij"));
+ test(S("abcdefghij"), 0, 5, SV("12345"), 4, 0, S("fghij"));
+ test(S("abcdefghij"), 0, 5, SV("12345"), 4, 1, S("5fghij"));
+ test(S("abcdefghij"), 0, 5, SV("12345"), 4, 2, S("5fghij"));
+ test(S("abcdefghij"), 0, 5, SV("12345"), 5, 0, S("fghij"));
+ test(S("abcdefghij"), 0, 5, SV("12345"), 5, 1, S("fghij"));
+ test(S("abcdefghij"), 0, 5, SV("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghij"), 0, 5, SV("1234567890"), 0, 0, S("fghij"));
+ test(S("abcdefghij"), 0, 5, SV("1234567890"), 0, 1, S("1fghij"));
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test21()
-{
- test(S("abcdefghij"), 0, 5, SV("1234567890"), 0, 5, S("12345fghij"));
- test(S("abcdefghij"), 0, 5, SV("1234567890"), 0, 9, S("123456789fghij"));
- test(S("abcdefghij"), 0, 5, SV("1234567890"), 0, 10, S("1234567890fghij"));
- test(S("abcdefghij"), 0, 5, SV("1234567890"), 0, 11, S("1234567890fghij"));
- test(S("abcdefghij"), 0, 5, SV("1234567890"), 1, 0, S("fghij"));
- test(S("abcdefghij"), 0, 5, SV("1234567890"), 1, 1, S("2fghij"));
- test(S("abcdefghij"), 0, 5, SV("1234567890"), 1, 4, S("2345fghij"));
- test(S("abcdefghij"), 0, 5, SV("1234567890"), 1, 8, S("23456789fghij"));
- test(S("abcdefghij"), 0, 5, SV("1234567890"), 1, 9, S("234567890fghij"));
- test(S("abcdefghij"), 0, 5, SV("1234567890"), 1, 10, S("234567890fghij"));
- test(S("abcdefghij"), 0, 5, SV("1234567890"), 5, 0, S("fghij"));
- test(S("abcdefghij"), 0, 5, SV("1234567890"), 5, 1, S("6fghij"));
- test(S("abcdefghij"), 0, 5, SV("1234567890"), 5, 2, S("67fghij"));
- test(S("abcdefghij"), 0, 5, SV("1234567890"), 5, 4, S("6789fghij"));
- test(S("abcdefghij"), 0, 5, SV("1234567890"), 5, 5, S("67890fghij"));
- test(S("abcdefghij"), 0, 5, SV("1234567890"), 5, 6, S("67890fghij"));
- test(S("abcdefghij"), 0, 5, SV("1234567890"), 9, 0, S("fghij"));
- test(S("abcdefghij"), 0, 5, SV("1234567890"), 9, 1, S("0fghij"));
- test(S("abcdefghij"), 0, 5, SV("1234567890"), 9, 2, S("0fghij"));
- test(S("abcdefghij"), 0, 5, SV("1234567890"), 10, 0, S("fghij"));
- test(S("abcdefghij"), 0, 5, SV("1234567890"), 10, 1, S("fghij"));
- test(S("abcdefghij"), 0, 5, SV("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghij"), 0, 5, SV("12345678901234567890"), 0, 0, S("fghij"));
- test(S("abcdefghij"), 0, 5, SV("12345678901234567890"), 0, 1, S("1fghij"));
- test(S("abcdefghij"), 0, 5, SV("12345678901234567890"), 0, 10, S("1234567890fghij"));
- test(S("abcdefghij"), 0, 5, SV("12345678901234567890"), 0, 19, S("1234567890123456789fghij"));
- test(S("abcdefghij"), 0, 5, SV("12345678901234567890"), 0, 20, S("12345678901234567890fghij"));
- test(S("abcdefghij"), 0, 5, SV("12345678901234567890"), 0, 21, S("12345678901234567890fghij"));
- test(S("abcdefghij"), 0, 5, SV("12345678901234567890"), 1, 0, S("fghij"));
- test(S("abcdefghij"), 0, 5, SV("12345678901234567890"), 1, 1, S("2fghij"));
- test(S("abcdefghij"), 0, 5, SV("12345678901234567890"), 1, 9, S("234567890fghij"));
- test(S("abcdefghij"), 0, 5, SV("12345678901234567890"), 1, 18, S("234567890123456789fghij"));
- test(S("abcdefghij"), 0, 5, SV("12345678901234567890"), 1, 19, S("2345678901234567890fghij"));
- test(S("abcdefghij"), 0, 5, SV("12345678901234567890"), 1, 20, S("2345678901234567890fghij"));
- test(S("abcdefghij"), 0, 5, SV("12345678901234567890"), 10, 0, S("fghij"));
- test(S("abcdefghij"), 0, 5, SV("12345678901234567890"), 10, 1, S("1fghij"));
- test(S("abcdefghij"), 0, 5, SV("12345678901234567890"), 10, 5, S("12345fghij"));
- test(S("abcdefghij"), 0, 5, SV("12345678901234567890"), 10, 9, S("123456789fghij"));
- test(S("abcdefghij"), 0, 5, SV("12345678901234567890"), 10, 10, S("1234567890fghij"));
- test(S("abcdefghij"), 0, 5, SV("12345678901234567890"), 10, 11, S("1234567890fghij"));
- test(S("abcdefghij"), 0, 5, SV("12345678901234567890"), 19, 0, S("fghij"));
- test(S("abcdefghij"), 0, 5, SV("12345678901234567890"), 19, 1, S("0fghij"));
- test(S("abcdefghij"), 0, 5, SV("12345678901234567890"), 19, 2, S("0fghij"));
- test(S("abcdefghij"), 0, 5, SV("12345678901234567890"), 20, 0, S("fghij"));
- test(S("abcdefghij"), 0, 5, SV("12345678901234567890"), 20, 1, S("fghij"));
- test(S("abcdefghij"), 0, 5, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghij"), 0, 9, SV(""), 0, 0, S("j"));
- test(S("abcdefghij"), 0, 9, SV(""), 0, 1, S("j"));
- test(S("abcdefghij"), 0, 9, SV(""), 1, 0, S("can't happen"));
- test(S("abcdefghij"), 0, 9, SV("12345"), 0, 0, S("j"));
- test(S("abcdefghij"), 0, 9, SV("12345"), 0, 1, S("1j"));
- test(S("abcdefghij"), 0, 9, SV("12345"), 0, 2, S("12j"));
- test(S("abcdefghij"), 0, 9, SV("12345"), 0, 4, S("1234j"));
- test(S("abcdefghij"), 0, 9, SV("12345"), 0, 5, S("12345j"));
- test(S("abcdefghij"), 0, 9, SV("12345"), 0, 6, S("12345j"));
- test(S("abcdefghij"), 0, 9, SV("12345"), 1, 0, S("j"));
- test(S("abcdefghij"), 0, 9, SV("12345"), 1, 1, S("2j"));
- test(S("abcdefghij"), 0, 9, SV("12345"), 1, 2, S("23j"));
- test(S("abcdefghij"), 0, 9, SV("12345"), 1, 3, S("234j"));
- test(S("abcdefghij"), 0, 9, SV("12345"), 1, 4, S("2345j"));
- test(S("abcdefghij"), 0, 9, SV("12345"), 1, 5, S("2345j"));
- test(S("abcdefghij"), 0, 9, SV("12345"), 2, 0, S("j"));
- test(S("abcdefghij"), 0, 9, SV("12345"), 2, 1, S("3j"));
- test(S("abcdefghij"), 0, 9, SV("12345"), 2, 2, S("34j"));
- test(S("abcdefghij"), 0, 9, SV("12345"), 2, 3, S("345j"));
- test(S("abcdefghij"), 0, 9, SV("12345"), 2, 4, S("345j"));
- test(S("abcdefghij"), 0, 9, SV("12345"), 4, 0, S("j"));
- test(S("abcdefghij"), 0, 9, SV("12345"), 4, 1, S("5j"));
- test(S("abcdefghij"), 0, 9, SV("12345"), 4, 2, S("5j"));
- test(S("abcdefghij"), 0, 9, SV("12345"), 5, 0, S("j"));
- test(S("abcdefghij"), 0, 9, SV("12345"), 5, 1, S("j"));
- test(S("abcdefghij"), 0, 9, SV("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghij"), 0, 9, SV("1234567890"), 0, 0, S("j"));
- test(S("abcdefghij"), 0, 9, SV("1234567890"), 0, 1, S("1j"));
- test(S("abcdefghij"), 0, 9, SV("1234567890"), 0, 5, S("12345j"));
- test(S("abcdefghij"), 0, 9, SV("1234567890"), 0, 9, S("123456789j"));
- test(S("abcdefghij"), 0, 9, SV("1234567890"), 0, 10, S("1234567890j"));
- test(S("abcdefghij"), 0, 9, SV("1234567890"), 0, 11, S("1234567890j"));
- test(S("abcdefghij"), 0, 9, SV("1234567890"), 1, 0, S("j"));
- test(S("abcdefghij"), 0, 9, SV("1234567890"), 1, 1, S("2j"));
- test(S("abcdefghij"), 0, 9, SV("1234567890"), 1, 4, S("2345j"));
- test(S("abcdefghij"), 0, 9, SV("1234567890"), 1, 8, S("23456789j"));
- test(S("abcdefghij"), 0, 9, SV("1234567890"), 1, 9, S("234567890j"));
- test(S("abcdefghij"), 0, 9, SV("1234567890"), 1, 10, S("234567890j"));
- test(S("abcdefghij"), 0, 9, SV("1234567890"), 5, 0, S("j"));
- test(S("abcdefghij"), 0, 9, SV("1234567890"), 5, 1, S("6j"));
- test(S("abcdefghij"), 0, 9, SV("1234567890"), 5, 2, S("67j"));
- test(S("abcdefghij"), 0, 9, SV("1234567890"), 5, 4, S("6789j"));
- test(S("abcdefghij"), 0, 9, SV("1234567890"), 5, 5, S("67890j"));
- test(S("abcdefghij"), 0, 9, SV("1234567890"), 5, 6, S("67890j"));
- test(S("abcdefghij"), 0, 9, SV("1234567890"), 9, 0, S("j"));
- test(S("abcdefghij"), 0, 9, SV("1234567890"), 9, 1, S("0j"));
- test(S("abcdefghij"), 0, 9, SV("1234567890"), 9, 2, S("0j"));
- test(S("abcdefghij"), 0, 9, SV("1234567890"), 10, 0, S("j"));
- test(S("abcdefghij"), 0, 9, SV("1234567890"), 10, 1, S("j"));
- test(S("abcdefghij"), 0, 9, SV("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghij"), 0, 9, SV("12345678901234567890"), 0, 0, S("j"));
- test(S("abcdefghij"), 0, 9, SV("12345678901234567890"), 0, 1, S("1j"));
- test(S("abcdefghij"), 0, 9, SV("12345678901234567890"), 0, 10, S("1234567890j"));
- test(S("abcdefghij"), 0, 9, SV("12345678901234567890"), 0, 19, S("1234567890123456789j"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test21() {
+ test(S("abcdefghij"), 0, 5, SV("1234567890"), 0, 5, S("12345fghij"));
+ test(S("abcdefghij"), 0, 5, SV("1234567890"), 0, 9, S("123456789fghij"));
+ test(S("abcdefghij"), 0, 5, SV("1234567890"), 0, 10, S("1234567890fghij"));
+ test(S("abcdefghij"), 0, 5, SV("1234567890"), 0, 11, S("1234567890fghij"));
+ test(S("abcdefghij"), 0, 5, SV("1234567890"), 1, 0, S("fghij"));
+ test(S("abcdefghij"), 0, 5, SV("1234567890"), 1, 1, S("2fghij"));
+ test(S("abcdefghij"), 0, 5, SV("1234567890"), 1, 4, S("2345fghij"));
+ test(S("abcdefghij"), 0, 5, SV("1234567890"), 1, 8, S("23456789fghij"));
+ test(S("abcdefghij"), 0, 5, SV("1234567890"), 1, 9, S("234567890fghij"));
+ test(S("abcdefghij"), 0, 5, SV("1234567890"), 1, 10, S("234567890fghij"));
+ test(S("abcdefghij"), 0, 5, SV("1234567890"), 5, 0, S("fghij"));
+ test(S("abcdefghij"), 0, 5, SV("1234567890"), 5, 1, S("6fghij"));
+ test(S("abcdefghij"), 0, 5, SV("1234567890"), 5, 2, S("67fghij"));
+ test(S("abcdefghij"), 0, 5, SV("1234567890"), 5, 4, S("6789fghij"));
+ test(S("abcdefghij"), 0, 5, SV("1234567890"), 5, 5, S("67890fghij"));
+ test(S("abcdefghij"), 0, 5, SV("1234567890"), 5, 6, S("67890fghij"));
+ test(S("abcdefghij"), 0, 5, SV("1234567890"), 9, 0, S("fghij"));
+ test(S("abcdefghij"), 0, 5, SV("1234567890"), 9, 1, S("0fghij"));
+ test(S("abcdefghij"), 0, 5, SV("1234567890"), 9, 2, S("0fghij"));
+ test(S("abcdefghij"), 0, 5, SV("1234567890"), 10, 0, S("fghij"));
+ test(S("abcdefghij"), 0, 5, SV("1234567890"), 10, 1, S("fghij"));
+ test(S("abcdefghij"), 0, 5, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghij"), 0, 5, SV("12345678901234567890"), 0, 0, S("fghij"));
+ test(S("abcdefghij"), 0, 5, SV("12345678901234567890"), 0, 1, S("1fghij"));
+ test(S("abcdefghij"), 0, 5, SV("12345678901234567890"), 0, 10, S("1234567890fghij"));
+ test(S("abcdefghij"), 0, 5, SV("12345678901234567890"), 0, 19, S("1234567890123456789fghij"));
+ test(S("abcdefghij"), 0, 5, SV("12345678901234567890"), 0, 20, S("12345678901234567890fghij"));
+ test(S("abcdefghij"), 0, 5, SV("12345678901234567890"), 0, 21, S("12345678901234567890fghij"));
+ test(S("abcdefghij"), 0, 5, SV("12345678901234567890"), 1, 0, S("fghij"));
+ test(S("abcdefghij"), 0, 5, SV("12345678901234567890"), 1, 1, S("2fghij"));
+ test(S("abcdefghij"), 0, 5, SV("12345678901234567890"), 1, 9, S("234567890fghij"));
+ test(S("abcdefghij"), 0, 5, SV("12345678901234567890"), 1, 18, S("234567890123456789fghij"));
+ test(S("abcdefghij"), 0, 5, SV("12345678901234567890"), 1, 19, S("2345678901234567890fghij"));
+ test(S("abcdefghij"), 0, 5, SV("12345678901234567890"), 1, 20, S("2345678901234567890fghij"));
+ test(S("abcdefghij"), 0, 5, SV("12345678901234567890"), 10, 0, S("fghij"));
+ test(S("abcdefghij"), 0, 5, SV("12345678901234567890"), 10, 1, S("1fghij"));
+ test(S("abcdefghij"), 0, 5, SV("12345678901234567890"), 10, 5, S("12345fghij"));
+ test(S("abcdefghij"), 0, 5, SV("12345678901234567890"), 10, 9, S("123456789fghij"));
+ test(S("abcdefghij"), 0, 5, SV("12345678901234567890"), 10, 10, S("1234567890fghij"));
+ test(S("abcdefghij"), 0, 5, SV("12345678901234567890"), 10, 11, S("1234567890fghij"));
+ test(S("abcdefghij"), 0, 5, SV("12345678901234567890"), 19, 0, S("fghij"));
+ test(S("abcdefghij"), 0, 5, SV("12345678901234567890"), 19, 1, S("0fghij"));
+ test(S("abcdefghij"), 0, 5, SV("12345678901234567890"), 19, 2, S("0fghij"));
+ test(S("abcdefghij"), 0, 5, SV("12345678901234567890"), 20, 0, S("fghij"));
+ test(S("abcdefghij"), 0, 5, SV("12345678901234567890"), 20, 1, S("fghij"));
+ test(S("abcdefghij"), 0, 5, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghij"), 0, 9, SV(""), 0, 0, S("j"));
+ test(S("abcdefghij"), 0, 9, SV(""), 0, 1, S("j"));
+ test(S("abcdefghij"), 0, 9, SV(""), 1, 0, S("can't happen"));
+ test(S("abcdefghij"), 0, 9, SV("12345"), 0, 0, S("j"));
+ test(S("abcdefghij"), 0, 9, SV("12345"), 0, 1, S("1j"));
+ test(S("abcdefghij"), 0, 9, SV("12345"), 0, 2, S("12j"));
+ test(S("abcdefghij"), 0, 9, SV("12345"), 0, 4, S("1234j"));
+ test(S("abcdefghij"), 0, 9, SV("12345"), 0, 5, S("12345j"));
+ test(S("abcdefghij"), 0, 9, SV("12345"), 0, 6, S("12345j"));
+ test(S("abcdefghij"), 0, 9, SV("12345"), 1, 0, S("j"));
+ test(S("abcdefghij"), 0, 9, SV("12345"), 1, 1, S("2j"));
+ test(S("abcdefghij"), 0, 9, SV("12345"), 1, 2, S("23j"));
+ test(S("abcdefghij"), 0, 9, SV("12345"), 1, 3, S("234j"));
+ test(S("abcdefghij"), 0, 9, SV("12345"), 1, 4, S("2345j"));
+ test(S("abcdefghij"), 0, 9, SV("12345"), 1, 5, S("2345j"));
+ test(S("abcdefghij"), 0, 9, SV("12345"), 2, 0, S("j"));
+ test(S("abcdefghij"), 0, 9, SV("12345"), 2, 1, S("3j"));
+ test(S("abcdefghij"), 0, 9, SV("12345"), 2, 2, S("34j"));
+ test(S("abcdefghij"), 0, 9, SV("12345"), 2, 3, S("345j"));
+ test(S("abcdefghij"), 0, 9, SV("12345"), 2, 4, S("345j"));
+ test(S("abcdefghij"), 0, 9, SV("12345"), 4, 0, S("j"));
+ test(S("abcdefghij"), 0, 9, SV("12345"), 4, 1, S("5j"));
+ test(S("abcdefghij"), 0, 9, SV("12345"), 4, 2, S("5j"));
+ test(S("abcdefghij"), 0, 9, SV("12345"), 5, 0, S("j"));
+ test(S("abcdefghij"), 0, 9, SV("12345"), 5, 1, S("j"));
+ test(S("abcdefghij"), 0, 9, SV("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghij"), 0, 9, SV("1234567890"), 0, 0, S("j"));
+ test(S("abcdefghij"), 0, 9, SV("1234567890"), 0, 1, S("1j"));
+ test(S("abcdefghij"), 0, 9, SV("1234567890"), 0, 5, S("12345j"));
+ test(S("abcdefghij"), 0, 9, SV("1234567890"), 0, 9, S("123456789j"));
+ test(S("abcdefghij"), 0, 9, SV("1234567890"), 0, 10, S("1234567890j"));
+ test(S("abcdefghij"), 0, 9, SV("1234567890"), 0, 11, S("1234567890j"));
+ test(S("abcdefghij"), 0, 9, SV("1234567890"), 1, 0, S("j"));
+ test(S("abcdefghij"), 0, 9, SV("1234567890"), 1, 1, S("2j"));
+ test(S("abcdefghij"), 0, 9, SV("1234567890"), 1, 4, S("2345j"));
+ test(S("abcdefghij"), 0, 9, SV("1234567890"), 1, 8, S("23456789j"));
+ test(S("abcdefghij"), 0, 9, SV("1234567890"), 1, 9, S("234567890j"));
+ test(S("abcdefghij"), 0, 9, SV("1234567890"), 1, 10, S("234567890j"));
+ test(S("abcdefghij"), 0, 9, SV("1234567890"), 5, 0, S("j"));
+ test(S("abcdefghij"), 0, 9, SV("1234567890"), 5, 1, S("6j"));
+ test(S("abcdefghij"), 0, 9, SV("1234567890"), 5, 2, S("67j"));
+ test(S("abcdefghij"), 0, 9, SV("1234567890"), 5, 4, S("6789j"));
+ test(S("abcdefghij"), 0, 9, SV("1234567890"), 5, 5, S("67890j"));
+ test(S("abcdefghij"), 0, 9, SV("1234567890"), 5, 6, S("67890j"));
+ test(S("abcdefghij"), 0, 9, SV("1234567890"), 9, 0, S("j"));
+ test(S("abcdefghij"), 0, 9, SV("1234567890"), 9, 1, S("0j"));
+ test(S("abcdefghij"), 0, 9, SV("1234567890"), 9, 2, S("0j"));
+ test(S("abcdefghij"), 0, 9, SV("1234567890"), 10, 0, S("j"));
+ test(S("abcdefghij"), 0, 9, SV("1234567890"), 10, 1, S("j"));
+ test(S("abcdefghij"), 0, 9, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghij"), 0, 9, SV("12345678901234567890"), 0, 0, S("j"));
+ test(S("abcdefghij"), 0, 9, SV("12345678901234567890"), 0, 1, S("1j"));
+ test(S("abcdefghij"), 0, 9, SV("12345678901234567890"), 0, 10, S("1234567890j"));
+ test(S("abcdefghij"), 0, 9, SV("12345678901234567890"), 0, 19, S("1234567890123456789j"));
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test22()
-{
- test(S("abcdefghij"), 0, 9, SV("12345678901234567890"), 0, 20, S("12345678901234567890j"));
- test(S("abcdefghij"), 0, 9, SV("12345678901234567890"), 0, 21, S("12345678901234567890j"));
- test(S("abcdefghij"), 0, 9, SV("12345678901234567890"), 1, 0, S("j"));
- test(S("abcdefghij"), 0, 9, SV("12345678901234567890"), 1, 1, S("2j"));
- test(S("abcdefghij"), 0, 9, SV("12345678901234567890"), 1, 9, S("234567890j"));
- test(S("abcdefghij"), 0, 9, SV("12345678901234567890"), 1, 18, S("234567890123456789j"));
- test(S("abcdefghij"), 0, 9, SV("12345678901234567890"), 1, 19, S("2345678901234567890j"));
- test(S("abcdefghij"), 0, 9, SV("12345678901234567890"), 1, 20, S("2345678901234567890j"));
- test(S("abcdefghij"), 0, 9, SV("12345678901234567890"), 10, 0, S("j"));
- test(S("abcdefghij"), 0, 9, SV("12345678901234567890"), 10, 1, S("1j"));
- test(S("abcdefghij"), 0, 9, SV("12345678901234567890"), 10, 5, S("12345j"));
- test(S("abcdefghij"), 0, 9, SV("12345678901234567890"), 10, 9, S("123456789j"));
- test(S("abcdefghij"), 0, 9, SV("12345678901234567890"), 10, 10, S("1234567890j"));
- test(S("abcdefghij"), 0, 9, SV("12345678901234567890"), 10, 11, S("1234567890j"));
- test(S("abcdefghij"), 0, 9, SV("12345678901234567890"), 19, 0, S("j"));
- test(S("abcdefghij"), 0, 9, SV("12345678901234567890"), 19, 1, S("0j"));
- test(S("abcdefghij"), 0, 9, SV("12345678901234567890"), 19, 2, S("0j"));
- test(S("abcdefghij"), 0, 9, SV("12345678901234567890"), 20, 0, S("j"));
- test(S("abcdefghij"), 0, 9, SV("12345678901234567890"), 20, 1, S("j"));
- test(S("abcdefghij"), 0, 9, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghij"), 0, 10, SV(""), 0, 0, S(""));
- test(S("abcdefghij"), 0, 10, SV(""), 0, 1, S(""));
- test(S("abcdefghij"), 0, 10, SV(""), 1, 0, S("can't happen"));
- test(S("abcdefghij"), 0, 10, SV("12345"), 0, 0, S(""));
- test(S("abcdefghij"), 0, 10, SV("12345"), 0, 1, S("1"));
- test(S("abcdefghij"), 0, 10, SV("12345"), 0, 2, S("12"));
- test(S("abcdefghij"), 0, 10, SV("12345"), 0, 4, S("1234"));
- test(S("abcdefghij"), 0, 10, SV("12345"), 0, 5, S("12345"));
- test(S("abcdefghij"), 0, 10, SV("12345"), 0, 6, S("12345"));
- test(S("abcdefghij"), 0, 10, SV("12345"), 1, 0, S(""));
- test(S("abcdefghij"), 0, 10, SV("12345"), 1, 1, S("2"));
- test(S("abcdefghij"), 0, 10, SV("12345"), 1, 2, S("23"));
- test(S("abcdefghij"), 0, 10, SV("12345"), 1, 3, S("234"));
- test(S("abcdefghij"), 0, 10, SV("12345"), 1, 4, S("2345"));
- test(S("abcdefghij"), 0, 10, SV("12345"), 1, 5, S("2345"));
- test(S("abcdefghij"), 0, 10, SV("12345"), 2, 0, S(""));
- test(S("abcdefghij"), 0, 10, SV("12345"), 2, 1, S("3"));
- test(S("abcdefghij"), 0, 10, SV("12345"), 2, 2, S("34"));
- test(S("abcdefghij"), 0, 10, SV("12345"), 2, 3, S("345"));
- test(S("abcdefghij"), 0, 10, SV("12345"), 2, 4, S("345"));
- test(S("abcdefghij"), 0, 10, SV("12345"), 4, 0, S(""));
- test(S("abcdefghij"), 0, 10, SV("12345"), 4, 1, S("5"));
- test(S("abcdefghij"), 0, 10, SV("12345"), 4, 2, S("5"));
- test(S("abcdefghij"), 0, 10, SV("12345"), 5, 0, S(""));
- test(S("abcdefghij"), 0, 10, SV("12345"), 5, 1, S(""));
- test(S("abcdefghij"), 0, 10, SV("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghij"), 0, 10, SV("1234567890"), 0, 0, S(""));
- test(S("abcdefghij"), 0, 10, SV("1234567890"), 0, 1, S("1"));
- test(S("abcdefghij"), 0, 10, SV("1234567890"), 0, 5, S("12345"));
- test(S("abcdefghij"), 0, 10, SV("1234567890"), 0, 9, S("123456789"));
- test(S("abcdefghij"), 0, 10, SV("1234567890"), 0, 10, S("1234567890"));
- test(S("abcdefghij"), 0, 10, SV("1234567890"), 0, 11, S("1234567890"));
- test(S("abcdefghij"), 0, 10, SV("1234567890"), 1, 0, S(""));
- test(S("abcdefghij"), 0, 10, SV("1234567890"), 1, 1, S("2"));
- test(S("abcdefghij"), 0, 10, SV("1234567890"), 1, 4, S("2345"));
- test(S("abcdefghij"), 0, 10, SV("1234567890"), 1, 8, S("23456789"));
- test(S("abcdefghij"), 0, 10, SV("1234567890"), 1, 9, S("234567890"));
- test(S("abcdefghij"), 0, 10, SV("1234567890"), 1, 10, S("234567890"));
- test(S("abcdefghij"), 0, 10, SV("1234567890"), 5, 0, S(""));
- test(S("abcdefghij"), 0, 10, SV("1234567890"), 5, 1, S("6"));
- test(S("abcdefghij"), 0, 10, SV("1234567890"), 5, 2, S("67"));
- test(S("abcdefghij"), 0, 10, SV("1234567890"), 5, 4, S("6789"));
- test(S("abcdefghij"), 0, 10, SV("1234567890"), 5, 5, S("67890"));
- test(S("abcdefghij"), 0, 10, SV("1234567890"), 5, 6, S("67890"));
- test(S("abcdefghij"), 0, 10, SV("1234567890"), 9, 0, S(""));
- test(S("abcdefghij"), 0, 10, SV("1234567890"), 9, 1, S("0"));
- test(S("abcdefghij"), 0, 10, SV("1234567890"), 9, 2, S("0"));
- test(S("abcdefghij"), 0, 10, SV("1234567890"), 10, 0, S(""));
- test(S("abcdefghij"), 0, 10, SV("1234567890"), 10, 1, S(""));
- test(S("abcdefghij"), 0, 10, SV("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghij"), 0, 10, SV("12345678901234567890"), 0, 0, S(""));
- test(S("abcdefghij"), 0, 10, SV("12345678901234567890"), 0, 1, S("1"));
- test(S("abcdefghij"), 0, 10, SV("12345678901234567890"), 0, 10, S("1234567890"));
- test(S("abcdefghij"), 0, 10, SV("12345678901234567890"), 0, 19, S("1234567890123456789"));
- test(S("abcdefghij"), 0, 10, SV("12345678901234567890"), 0, 20, S("12345678901234567890"));
- test(S("abcdefghij"), 0, 10, SV("12345678901234567890"), 0, 21, S("12345678901234567890"));
- test(S("abcdefghij"), 0, 10, SV("12345678901234567890"), 1, 0, S(""));
- test(S("abcdefghij"), 0, 10, SV("12345678901234567890"), 1, 1, S("2"));
- test(S("abcdefghij"), 0, 10, SV("12345678901234567890"), 1, 9, S("234567890"));
- test(S("abcdefghij"), 0, 10, SV("12345678901234567890"), 1, 18, S("234567890123456789"));
- test(S("abcdefghij"), 0, 10, SV("12345678901234567890"), 1, 19, S("2345678901234567890"));
- test(S("abcdefghij"), 0, 10, SV("12345678901234567890"), 1, 20, S("2345678901234567890"));
- test(S("abcdefghij"), 0, 10, SV("12345678901234567890"), 10, 0, S(""));
- test(S("abcdefghij"), 0, 10, SV("12345678901234567890"), 10, 1, S("1"));
- test(S("abcdefghij"), 0, 10, SV("12345678901234567890"), 10, 5, S("12345"));
- test(S("abcdefghij"), 0, 10, SV("12345678901234567890"), 10, 9, S("123456789"));
- test(S("abcdefghij"), 0, 10, SV("12345678901234567890"), 10, 10, S("1234567890"));
- test(S("abcdefghij"), 0, 10, SV("12345678901234567890"), 10, 11, S("1234567890"));
- test(S("abcdefghij"), 0, 10, SV("12345678901234567890"), 19, 0, S(""));
- test(S("abcdefghij"), 0, 10, SV("12345678901234567890"), 19, 1, S("0"));
- test(S("abcdefghij"), 0, 10, SV("12345678901234567890"), 19, 2, S("0"));
- test(S("abcdefghij"), 0, 10, SV("12345678901234567890"), 20, 0, S(""));
- test(S("abcdefghij"), 0, 10, SV("12345678901234567890"), 20, 1, S(""));
- test(S("abcdefghij"), 0, 10, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghij"), 0, 11, SV(""), 0, 0, S(""));
- test(S("abcdefghij"), 0, 11, SV(""), 0, 1, S(""));
- test(S("abcdefghij"), 0, 11, SV(""), 1, 0, S("can't happen"));
- test(S("abcdefghij"), 0, 11, SV("12345"), 0, 0, S(""));
- test(S("abcdefghij"), 0, 11, SV("12345"), 0, 1, S("1"));
- test(S("abcdefghij"), 0, 11, SV("12345"), 0, 2, S("12"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test22() {
+ test(S("abcdefghij"), 0, 9, SV("12345678901234567890"), 0, 20, S("12345678901234567890j"));
+ test(S("abcdefghij"), 0, 9, SV("12345678901234567890"), 0, 21, S("12345678901234567890j"));
+ test(S("abcdefghij"), 0, 9, SV("12345678901234567890"), 1, 0, S("j"));
+ test(S("abcdefghij"), 0, 9, SV("12345678901234567890"), 1, 1, S("2j"));
+ test(S("abcdefghij"), 0, 9, SV("12345678901234567890"), 1, 9, S("234567890j"));
+ test(S("abcdefghij"), 0, 9, SV("12345678901234567890"), 1, 18, S("234567890123456789j"));
+ test(S("abcdefghij"), 0, 9, SV("12345678901234567890"), 1, 19, S("2345678901234567890j"));
+ test(S("abcdefghij"), 0, 9, SV("12345678901234567890"), 1, 20, S("2345678901234567890j"));
+ test(S("abcdefghij"), 0, 9, SV("12345678901234567890"), 10, 0, S("j"));
+ test(S("abcdefghij"), 0, 9, SV("12345678901234567890"), 10, 1, S("1j"));
+ test(S("abcdefghij"), 0, 9, SV("12345678901234567890"), 10, 5, S("12345j"));
+ test(S("abcdefghij"), 0, 9, SV("12345678901234567890"), 10, 9, S("123456789j"));
+ test(S("abcdefghij"), 0, 9, SV("12345678901234567890"), 10, 10, S("1234567890j"));
+ test(S("abcdefghij"), 0, 9, SV("12345678901234567890"), 10, 11, S("1234567890j"));
+ test(S("abcdefghij"), 0, 9, SV("12345678901234567890"), 19, 0, S("j"));
+ test(S("abcdefghij"), 0, 9, SV("12345678901234567890"), 19, 1, S("0j"));
+ test(S("abcdefghij"), 0, 9, SV("12345678901234567890"), 19, 2, S("0j"));
+ test(S("abcdefghij"), 0, 9, SV("12345678901234567890"), 20, 0, S("j"));
+ test(S("abcdefghij"), 0, 9, SV("12345678901234567890"), 20, 1, S("j"));
+ test(S("abcdefghij"), 0, 9, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghij"), 0, 10, SV(""), 0, 0, S(""));
+ test(S("abcdefghij"), 0, 10, SV(""), 0, 1, S(""));
+ test(S("abcdefghij"), 0, 10, SV(""), 1, 0, S("can't happen"));
+ test(S("abcdefghij"), 0, 10, SV("12345"), 0, 0, S(""));
+ test(S("abcdefghij"), 0, 10, SV("12345"), 0, 1, S("1"));
+ test(S("abcdefghij"), 0, 10, SV("12345"), 0, 2, S("12"));
+ test(S("abcdefghij"), 0, 10, SV("12345"), 0, 4, S("1234"));
+ test(S("abcdefghij"), 0, 10, SV("12345"), 0, 5, S("12345"));
+ test(S("abcdefghij"), 0, 10, SV("12345"), 0, 6, S("12345"));
+ test(S("abcdefghij"), 0, 10, SV("12345"), 1, 0, S(""));
+ test(S("abcdefghij"), 0, 10, SV("12345"), 1, 1, S("2"));
+ test(S("abcdefghij"), 0, 10, SV("12345"), 1, 2, S("23"));
+ test(S("abcdefghij"), 0, 10, SV("12345"), 1, 3, S("234"));
+ test(S("abcdefghij"), 0, 10, SV("12345"), 1, 4, S("2345"));
+ test(S("abcdefghij"), 0, 10, SV("12345"), 1, 5, S("2345"));
+ test(S("abcdefghij"), 0, 10, SV("12345"), 2, 0, S(""));
+ test(S("abcdefghij"), 0, 10, SV("12345"), 2, 1, S("3"));
+ test(S("abcdefghij"), 0, 10, SV("12345"), 2, 2, S("34"));
+ test(S("abcdefghij"), 0, 10, SV("12345"), 2, 3, S("345"));
+ test(S("abcdefghij"), 0, 10, SV("12345"), 2, 4, S("345"));
+ test(S("abcdefghij"), 0, 10, SV("12345"), 4, 0, S(""));
+ test(S("abcdefghij"), 0, 10, SV("12345"), 4, 1, S("5"));
+ test(S("abcdefghij"), 0, 10, SV("12345"), 4, 2, S("5"));
+ test(S("abcdefghij"), 0, 10, SV("12345"), 5, 0, S(""));
+ test(S("abcdefghij"), 0, 10, SV("12345"), 5, 1, S(""));
+ test(S("abcdefghij"), 0, 10, SV("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghij"), 0, 10, SV("1234567890"), 0, 0, S(""));
+ test(S("abcdefghij"), 0, 10, SV("1234567890"), 0, 1, S("1"));
+ test(S("abcdefghij"), 0, 10, SV("1234567890"), 0, 5, S("12345"));
+ test(S("abcdefghij"), 0, 10, SV("1234567890"), 0, 9, S("123456789"));
+ test(S("abcdefghij"), 0, 10, SV("1234567890"), 0, 10, S("1234567890"));
+ test(S("abcdefghij"), 0, 10, SV("1234567890"), 0, 11, S("1234567890"));
+ test(S("abcdefghij"), 0, 10, SV("1234567890"), 1, 0, S(""));
+ test(S("abcdefghij"), 0, 10, SV("1234567890"), 1, 1, S("2"));
+ test(S("abcdefghij"), 0, 10, SV("1234567890"), 1, 4, S("2345"));
+ test(S("abcdefghij"), 0, 10, SV("1234567890"), 1, 8, S("23456789"));
+ test(S("abcdefghij"), 0, 10, SV("1234567890"), 1, 9, S("234567890"));
+ test(S("abcdefghij"), 0, 10, SV("1234567890"), 1, 10, S("234567890"));
+ test(S("abcdefghij"), 0, 10, SV("1234567890"), 5, 0, S(""));
+ test(S("abcdefghij"), 0, 10, SV("1234567890"), 5, 1, S("6"));
+ test(S("abcdefghij"), 0, 10, SV("1234567890"), 5, 2, S("67"));
+ test(S("abcdefghij"), 0, 10, SV("1234567890"), 5, 4, S("6789"));
+ test(S("abcdefghij"), 0, 10, SV("1234567890"), 5, 5, S("67890"));
+ test(S("abcdefghij"), 0, 10, SV("1234567890"), 5, 6, S("67890"));
+ test(S("abcdefghij"), 0, 10, SV("1234567890"), 9, 0, S(""));
+ test(S("abcdefghij"), 0, 10, SV("1234567890"), 9, 1, S("0"));
+ test(S("abcdefghij"), 0, 10, SV("1234567890"), 9, 2, S("0"));
+ test(S("abcdefghij"), 0, 10, SV("1234567890"), 10, 0, S(""));
+ test(S("abcdefghij"), 0, 10, SV("1234567890"), 10, 1, S(""));
+ test(S("abcdefghij"), 0, 10, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghij"), 0, 10, SV("12345678901234567890"), 0, 0, S(""));
+ test(S("abcdefghij"), 0, 10, SV("12345678901234567890"), 0, 1, S("1"));
+ test(S("abcdefghij"), 0, 10, SV("12345678901234567890"), 0, 10, S("1234567890"));
+ test(S("abcdefghij"), 0, 10, SV("12345678901234567890"), 0, 19, S("1234567890123456789"));
+ test(S("abcdefghij"), 0, 10, SV("12345678901234567890"), 0, 20, S("12345678901234567890"));
+ test(S("abcdefghij"), 0, 10, SV("12345678901234567890"), 0, 21, S("12345678901234567890"));
+ test(S("abcdefghij"), 0, 10, SV("12345678901234567890"), 1, 0, S(""));
+ test(S("abcdefghij"), 0, 10, SV("12345678901234567890"), 1, 1, S("2"));
+ test(S("abcdefghij"), 0, 10, SV("12345678901234567890"), 1, 9, S("234567890"));
+ test(S("abcdefghij"), 0, 10, SV("12345678901234567890"), 1, 18, S("234567890123456789"));
+ test(S("abcdefghij"), 0, 10, SV("12345678901234567890"), 1, 19, S("2345678901234567890"));
+ test(S("abcdefghij"), 0, 10, SV("12345678901234567890"), 1, 20, S("2345678901234567890"));
+ test(S("abcdefghij"), 0, 10, SV("12345678901234567890"), 10, 0, S(""));
+ test(S("abcdefghij"), 0, 10, SV("12345678901234567890"), 10, 1, S("1"));
+ test(S("abcdefghij"), 0, 10, SV("12345678901234567890"), 10, 5, S("12345"));
+ test(S("abcdefghij"), 0, 10, SV("12345678901234567890"), 10, 9, S("123456789"));
+ test(S("abcdefghij"), 0, 10, SV("12345678901234567890"), 10, 10, S("1234567890"));
+ test(S("abcdefghij"), 0, 10, SV("12345678901234567890"), 10, 11, S("1234567890"));
+ test(S("abcdefghij"), 0, 10, SV("12345678901234567890"), 19, 0, S(""));
+ test(S("abcdefghij"), 0, 10, SV("12345678901234567890"), 19, 1, S("0"));
+ test(S("abcdefghij"), 0, 10, SV("12345678901234567890"), 19, 2, S("0"));
+ test(S("abcdefghij"), 0, 10, SV("12345678901234567890"), 20, 0, S(""));
+ test(S("abcdefghij"), 0, 10, SV("12345678901234567890"), 20, 1, S(""));
+ test(S("abcdefghij"), 0, 10, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghij"), 0, 11, SV(""), 0, 0, S(""));
+ test(S("abcdefghij"), 0, 11, SV(""), 0, 1, S(""));
+ test(S("abcdefghij"), 0, 11, SV(""), 1, 0, S("can't happen"));
+ test(S("abcdefghij"), 0, 11, SV("12345"), 0, 0, S(""));
+ test(S("abcdefghij"), 0, 11, SV("12345"), 0, 1, S("1"));
+ test(S("abcdefghij"), 0, 11, SV("12345"), 0, 2, S("12"));
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test23()
-{
- test(S("abcdefghij"), 0, 11, SV("12345"), 0, 4, S("1234"));
- test(S("abcdefghij"), 0, 11, SV("12345"), 0, 5, S("12345"));
- test(S("abcdefghij"), 0, 11, SV("12345"), 0, 6, S("12345"));
- test(S("abcdefghij"), 0, 11, SV("12345"), 1, 0, S(""));
- test(S("abcdefghij"), 0, 11, SV("12345"), 1, 1, S("2"));
- test(S("abcdefghij"), 0, 11, SV("12345"), 1, 2, S("23"));
- test(S("abcdefghij"), 0, 11, SV("12345"), 1, 3, S("234"));
- test(S("abcdefghij"), 0, 11, SV("12345"), 1, 4, S("2345"));
- test(S("abcdefghij"), 0, 11, SV("12345"), 1, 5, S("2345"));
- test(S("abcdefghij"), 0, 11, SV("12345"), 2, 0, S(""));
- test(S("abcdefghij"), 0, 11, SV("12345"), 2, 1, S("3"));
- test(S("abcdefghij"), 0, 11, SV("12345"), 2, 2, S("34"));
- test(S("abcdefghij"), 0, 11, SV("12345"), 2, 3, S("345"));
- test(S("abcdefghij"), 0, 11, SV("12345"), 2, 4, S("345"));
- test(S("abcdefghij"), 0, 11, SV("12345"), 4, 0, S(""));
- test(S("abcdefghij"), 0, 11, SV("12345"), 4, 1, S("5"));
- test(S("abcdefghij"), 0, 11, SV("12345"), 4, 2, S("5"));
- test(S("abcdefghij"), 0, 11, SV("12345"), 5, 0, S(""));
- test(S("abcdefghij"), 0, 11, SV("12345"), 5, 1, S(""));
- test(S("abcdefghij"), 0, 11, SV("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghij"), 0, 11, SV("1234567890"), 0, 0, S(""));
- test(S("abcdefghij"), 0, 11, SV("1234567890"), 0, 1, S("1"));
- test(S("abcdefghij"), 0, 11, SV("1234567890"), 0, 5, S("12345"));
- test(S("abcdefghij"), 0, 11, SV("1234567890"), 0, 9, S("123456789"));
- test(S("abcdefghij"), 0, 11, SV("1234567890"), 0, 10, S("1234567890"));
- test(S("abcdefghij"), 0, 11, SV("1234567890"), 0, 11, S("1234567890"));
- test(S("abcdefghij"), 0, 11, SV("1234567890"), 1, 0, S(""));
- test(S("abcdefghij"), 0, 11, SV("1234567890"), 1, 1, S("2"));
- test(S("abcdefghij"), 0, 11, SV("1234567890"), 1, 4, S("2345"));
- test(S("abcdefghij"), 0, 11, SV("1234567890"), 1, 8, S("23456789"));
- test(S("abcdefghij"), 0, 11, SV("1234567890"), 1, 9, S("234567890"));
- test(S("abcdefghij"), 0, 11, SV("1234567890"), 1, 10, S("234567890"));
- test(S("abcdefghij"), 0, 11, SV("1234567890"), 5, 0, S(""));
- test(S("abcdefghij"), 0, 11, SV("1234567890"), 5, 1, S("6"));
- test(S("abcdefghij"), 0, 11, SV("1234567890"), 5, 2, S("67"));
- test(S("abcdefghij"), 0, 11, SV("1234567890"), 5, 4, S("6789"));
- test(S("abcdefghij"), 0, 11, SV("1234567890"), 5, 5, S("67890"));
- test(S("abcdefghij"), 0, 11, SV("1234567890"), 5, 6, S("67890"));
- test(S("abcdefghij"), 0, 11, SV("1234567890"), 9, 0, S(""));
- test(S("abcdefghij"), 0, 11, SV("1234567890"), 9, 1, S("0"));
- test(S("abcdefghij"), 0, 11, SV("1234567890"), 9, 2, S("0"));
- test(S("abcdefghij"), 0, 11, SV("1234567890"), 10, 0, S(""));
- test(S("abcdefghij"), 0, 11, SV("1234567890"), 10, 1, S(""));
- test(S("abcdefghij"), 0, 11, SV("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghij"), 0, 11, SV("12345678901234567890"), 0, 0, S(""));
- test(S("abcdefghij"), 0, 11, SV("12345678901234567890"), 0, 1, S("1"));
- test(S("abcdefghij"), 0, 11, SV("12345678901234567890"), 0, 10, S("1234567890"));
- test(S("abcdefghij"), 0, 11, SV("12345678901234567890"), 0, 19, S("1234567890123456789"));
- test(S("abcdefghij"), 0, 11, SV("12345678901234567890"), 0, 20, S("12345678901234567890"));
- test(S("abcdefghij"), 0, 11, SV("12345678901234567890"), 0, 21, S("12345678901234567890"));
- test(S("abcdefghij"), 0, 11, SV("12345678901234567890"), 1, 0, S(""));
- test(S("abcdefghij"), 0, 11, SV("12345678901234567890"), 1, 1, S("2"));
- test(S("abcdefghij"), 0, 11, SV("12345678901234567890"), 1, 9, S("234567890"));
- test(S("abcdefghij"), 0, 11, SV("12345678901234567890"), 1, 18, S("234567890123456789"));
- test(S("abcdefghij"), 0, 11, SV("12345678901234567890"), 1, 19, S("2345678901234567890"));
- test(S("abcdefghij"), 0, 11, SV("12345678901234567890"), 1, 20, S("2345678901234567890"));
- test(S("abcdefghij"), 0, 11, SV("12345678901234567890"), 10, 0, S(""));
- test(S("abcdefghij"), 0, 11, SV("12345678901234567890"), 10, 1, S("1"));
- test(S("abcdefghij"), 0, 11, SV("12345678901234567890"), 10, 5, S("12345"));
- test(S("abcdefghij"), 0, 11, SV("12345678901234567890"), 10, 9, S("123456789"));
- test(S("abcdefghij"), 0, 11, SV("12345678901234567890"), 10, 10, S("1234567890"));
- test(S("abcdefghij"), 0, 11, SV("12345678901234567890"), 10, 11, S("1234567890"));
- test(S("abcdefghij"), 0, 11, SV("12345678901234567890"), 19, 0, S(""));
- test(S("abcdefghij"), 0, 11, SV("12345678901234567890"), 19, 1, S("0"));
- test(S("abcdefghij"), 0, 11, SV("12345678901234567890"), 19, 2, S("0"));
- test(S("abcdefghij"), 0, 11, SV("12345678901234567890"), 20, 0, S(""));
- test(S("abcdefghij"), 0, 11, SV("12345678901234567890"), 20, 1, S(""));
- test(S("abcdefghij"), 0, 11, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghij"), 1, 0, SV(""), 0, 0, S("abcdefghij"));
- test(S("abcdefghij"), 1, 0, SV(""), 0, 1, S("abcdefghij"));
- test(S("abcdefghij"), 1, 0, SV(""), 1, 0, S("can't happen"));
- test(S("abcdefghij"), 1, 0, SV("12345"), 0, 0, S("abcdefghij"));
- test(S("abcdefghij"), 1, 0, SV("12345"), 0, 1, S("a1bcdefghij"));
- test(S("abcdefghij"), 1, 0, SV("12345"), 0, 2, S("a12bcdefghij"));
- test(S("abcdefghij"), 1, 0, SV("12345"), 0, 4, S("a1234bcdefghij"));
- test(S("abcdefghij"), 1, 0, SV("12345"), 0, 5, S("a12345bcdefghij"));
- test(S("abcdefghij"), 1, 0, SV("12345"), 0, 6, S("a12345bcdefghij"));
- test(S("abcdefghij"), 1, 0, SV("12345"), 1, 0, S("abcdefghij"));
- test(S("abcdefghij"), 1, 0, SV("12345"), 1, 1, S("a2bcdefghij"));
- test(S("abcdefghij"), 1, 0, SV("12345"), 1, 2, S("a23bcdefghij"));
- test(S("abcdefghij"), 1, 0, SV("12345"), 1, 3, S("a234bcdefghij"));
- test(S("abcdefghij"), 1, 0, SV("12345"), 1, 4, S("a2345bcdefghij"));
- test(S("abcdefghij"), 1, 0, SV("12345"), 1, 5, S("a2345bcdefghij"));
- test(S("abcdefghij"), 1, 0, SV("12345"), 2, 0, S("abcdefghij"));
- test(S("abcdefghij"), 1, 0, SV("12345"), 2, 1, S("a3bcdefghij"));
- test(S("abcdefghij"), 1, 0, SV("12345"), 2, 2, S("a34bcdefghij"));
- test(S("abcdefghij"), 1, 0, SV("12345"), 2, 3, S("a345bcdefghij"));
- test(S("abcdefghij"), 1, 0, SV("12345"), 2, 4, S("a345bcdefghij"));
- test(S("abcdefghij"), 1, 0, SV("12345"), 4, 0, S("abcdefghij"));
- test(S("abcdefghij"), 1, 0, SV("12345"), 4, 1, S("a5bcdefghij"));
- test(S("abcdefghij"), 1, 0, SV("12345"), 4, 2, S("a5bcdefghij"));
- test(S("abcdefghij"), 1, 0, SV("12345"), 5, 0, S("abcdefghij"));
- test(S("abcdefghij"), 1, 0, SV("12345"), 5, 1, S("abcdefghij"));
- test(S("abcdefghij"), 1, 0, SV("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghij"), 1, 0, SV("1234567890"), 0, 0, S("abcdefghij"));
- test(S("abcdefghij"), 1, 0, SV("1234567890"), 0, 1, S("a1bcdefghij"));
- test(S("abcdefghij"), 1, 0, SV("1234567890"), 0, 5, S("a12345bcdefghij"));
- test(S("abcdefghij"), 1, 0, SV("1234567890"), 0, 9, S("a123456789bcdefghij"));
- test(S("abcdefghij"), 1, 0, SV("1234567890"), 0, 10, S("a1234567890bcdefghij"));
- test(S("abcdefghij"), 1, 0, SV("1234567890"), 0, 11, S("a1234567890bcdefghij"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test23() {
+ test(S("abcdefghij"), 0, 11, SV("12345"), 0, 4, S("1234"));
+ test(S("abcdefghij"), 0, 11, SV("12345"), 0, 5, S("12345"));
+ test(S("abcdefghij"), 0, 11, SV("12345"), 0, 6, S("12345"));
+ test(S("abcdefghij"), 0, 11, SV("12345"), 1, 0, S(""));
+ test(S("abcdefghij"), 0, 11, SV("12345"), 1, 1, S("2"));
+ test(S("abcdefghij"), 0, 11, SV("12345"), 1, 2, S("23"));
+ test(S("abcdefghij"), 0, 11, SV("12345"), 1, 3, S("234"));
+ test(S("abcdefghij"), 0, 11, SV("12345"), 1, 4, S("2345"));
+ test(S("abcdefghij"), 0, 11, SV("12345"), 1, 5, S("2345"));
+ test(S("abcdefghij"), 0, 11, SV("12345"), 2, 0, S(""));
+ test(S("abcdefghij"), 0, 11, SV("12345"), 2, 1, S("3"));
+ test(S("abcdefghij"), 0, 11, SV("12345"), 2, 2, S("34"));
+ test(S("abcdefghij"), 0, 11, SV("12345"), 2, 3, S("345"));
+ test(S("abcdefghij"), 0, 11, SV("12345"), 2, 4, S("345"));
+ test(S("abcdefghij"), 0, 11, SV("12345"), 4, 0, S(""));
+ test(S("abcdefghij"), 0, 11, SV("12345"), 4, 1, S("5"));
+ test(S("abcdefghij"), 0, 11, SV("12345"), 4, 2, S("5"));
+ test(S("abcdefghij"), 0, 11, SV("12345"), 5, 0, S(""));
+ test(S("abcdefghij"), 0, 11, SV("12345"), 5, 1, S(""));
+ test(S("abcdefghij"), 0, 11, SV("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghij"), 0, 11, SV("1234567890"), 0, 0, S(""));
+ test(S("abcdefghij"), 0, 11, SV("1234567890"), 0, 1, S("1"));
+ test(S("abcdefghij"), 0, 11, SV("1234567890"), 0, 5, S("12345"));
+ test(S("abcdefghij"), 0, 11, SV("1234567890"), 0, 9, S("123456789"));
+ test(S("abcdefghij"), 0, 11, SV("1234567890"), 0, 10, S("1234567890"));
+ test(S("abcdefghij"), 0, 11, SV("1234567890"), 0, 11, S("1234567890"));
+ test(S("abcdefghij"), 0, 11, SV("1234567890"), 1, 0, S(""));
+ test(S("abcdefghij"), 0, 11, SV("1234567890"), 1, 1, S("2"));
+ test(S("abcdefghij"), 0, 11, SV("1234567890"), 1, 4, S("2345"));
+ test(S("abcdefghij"), 0, 11, SV("1234567890"), 1, 8, S("23456789"));
+ test(S("abcdefghij"), 0, 11, SV("1234567890"), 1, 9, S("234567890"));
+ test(S("abcdefghij"), 0, 11, SV("1234567890"), 1, 10, S("234567890"));
+ test(S("abcdefghij"), 0, 11, SV("1234567890"), 5, 0, S(""));
+ test(S("abcdefghij"), 0, 11, SV("1234567890"), 5, 1, S("6"));
+ test(S("abcdefghij"), 0, 11, SV("1234567890"), 5, 2, S("67"));
+ test(S("abcdefghij"), 0, 11, SV("1234567890"), 5, 4, S("6789"));
+ test(S("abcdefghij"), 0, 11, SV("1234567890"), 5, 5, S("67890"));
+ test(S("abcdefghij"), 0, 11, SV("1234567890"), 5, 6, S("67890"));
+ test(S("abcdefghij"), 0, 11, SV("1234567890"), 9, 0, S(""));
+ test(S("abcdefghij"), 0, 11, SV("1234567890"), 9, 1, S("0"));
+ test(S("abcdefghij"), 0, 11, SV("1234567890"), 9, 2, S("0"));
+ test(S("abcdefghij"), 0, 11, SV("1234567890"), 10, 0, S(""));
+ test(S("abcdefghij"), 0, 11, SV("1234567890"), 10, 1, S(""));
+ test(S("abcdefghij"), 0, 11, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghij"), 0, 11, SV("12345678901234567890"), 0, 0, S(""));
+ test(S("abcdefghij"), 0, 11, SV("12345678901234567890"), 0, 1, S("1"));
+ test(S("abcdefghij"), 0, 11, SV("12345678901234567890"), 0, 10, S("1234567890"));
+ test(S("abcdefghij"), 0, 11, SV("12345678901234567890"), 0, 19, S("1234567890123456789"));
+ test(S("abcdefghij"), 0, 11, SV("12345678901234567890"), 0, 20, S("12345678901234567890"));
+ test(S("abcdefghij"), 0, 11, SV("12345678901234567890"), 0, 21, S("12345678901234567890"));
+ test(S("abcdefghij"), 0, 11, SV("12345678901234567890"), 1, 0, S(""));
+ test(S("abcdefghij"), 0, 11, SV("12345678901234567890"), 1, 1, S("2"));
+ test(S("abcdefghij"), 0, 11, SV("12345678901234567890"), 1, 9, S("234567890"));
+ test(S("abcdefghij"), 0, 11, SV("12345678901234567890"), 1, 18, S("234567890123456789"));
+ test(S("abcdefghij"), 0, 11, SV("12345678901234567890"), 1, 19, S("2345678901234567890"));
+ test(S("abcdefghij"), 0, 11, SV("12345678901234567890"), 1, 20, S("2345678901234567890"));
+ test(S("abcdefghij"), 0, 11, SV("12345678901234567890"), 10, 0, S(""));
+ test(S("abcdefghij"), 0, 11, SV("12345678901234567890"), 10, 1, S("1"));
+ test(S("abcdefghij"), 0, 11, SV("12345678901234567890"), 10, 5, S("12345"));
+ test(S("abcdefghij"), 0, 11, SV("12345678901234567890"), 10, 9, S("123456789"));
+ test(S("abcdefghij"), 0, 11, SV("12345678901234567890"), 10, 10, S("1234567890"));
+ test(S("abcdefghij"), 0, 11, SV("12345678901234567890"), 10, 11, S("1234567890"));
+ test(S("abcdefghij"), 0, 11, SV("12345678901234567890"), 19, 0, S(""));
+ test(S("abcdefghij"), 0, 11, SV("12345678901234567890"), 19, 1, S("0"));
+ test(S("abcdefghij"), 0, 11, SV("12345678901234567890"), 19, 2, S("0"));
+ test(S("abcdefghij"), 0, 11, SV("12345678901234567890"), 20, 0, S(""));
+ test(S("abcdefghij"), 0, 11, SV("12345678901234567890"), 20, 1, S(""));
+ test(S("abcdefghij"), 0, 11, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghij"), 1, 0, SV(""), 0, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 1, 0, SV(""), 0, 1, S("abcdefghij"));
+ test(S("abcdefghij"), 1, 0, SV(""), 1, 0, S("can't happen"));
+ test(S("abcdefghij"), 1, 0, SV("12345"), 0, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 1, 0, SV("12345"), 0, 1, S("a1bcdefghij"));
+ test(S("abcdefghij"), 1, 0, SV("12345"), 0, 2, S("a12bcdefghij"));
+ test(S("abcdefghij"), 1, 0, SV("12345"), 0, 4, S("a1234bcdefghij"));
+ test(S("abcdefghij"), 1, 0, SV("12345"), 0, 5, S("a12345bcdefghij"));
+ test(S("abcdefghij"), 1, 0, SV("12345"), 0, 6, S("a12345bcdefghij"));
+ test(S("abcdefghij"), 1, 0, SV("12345"), 1, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 1, 0, SV("12345"), 1, 1, S("a2bcdefghij"));
+ test(S("abcdefghij"), 1, 0, SV("12345"), 1, 2, S("a23bcdefghij"));
+ test(S("abcdefghij"), 1, 0, SV("12345"), 1, 3, S("a234bcdefghij"));
+ test(S("abcdefghij"), 1, 0, SV("12345"), 1, 4, S("a2345bcdefghij"));
+ test(S("abcdefghij"), 1, 0, SV("12345"), 1, 5, S("a2345bcdefghij"));
+ test(S("abcdefghij"), 1, 0, SV("12345"), 2, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 1, 0, SV("12345"), 2, 1, S("a3bcdefghij"));
+ test(S("abcdefghij"), 1, 0, SV("12345"), 2, 2, S("a34bcdefghij"));
+ test(S("abcdefghij"), 1, 0, SV("12345"), 2, 3, S("a345bcdefghij"));
+ test(S("abcdefghij"), 1, 0, SV("12345"), 2, 4, S("a345bcdefghij"));
+ test(S("abcdefghij"), 1, 0, SV("12345"), 4, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 1, 0, SV("12345"), 4, 1, S("a5bcdefghij"));
+ test(S("abcdefghij"), 1, 0, SV("12345"), 4, 2, S("a5bcdefghij"));
+ test(S("abcdefghij"), 1, 0, SV("12345"), 5, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 1, 0, SV("12345"), 5, 1, S("abcdefghij"));
+ test(S("abcdefghij"), 1, 0, SV("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghij"), 1, 0, SV("1234567890"), 0, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 1, 0, SV("1234567890"), 0, 1, S("a1bcdefghij"));
+ test(S("abcdefghij"), 1, 0, SV("1234567890"), 0, 5, S("a12345bcdefghij"));
+ test(S("abcdefghij"), 1, 0, SV("1234567890"), 0, 9, S("a123456789bcdefghij"));
+ test(S("abcdefghij"), 1, 0, SV("1234567890"), 0, 10, S("a1234567890bcdefghij"));
+ test(S("abcdefghij"), 1, 0, SV("1234567890"), 0, 11, S("a1234567890bcdefghij"));
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test24()
-{
- test(S("abcdefghij"), 1, 0, SV("1234567890"), 1, 0, S("abcdefghij"));
- test(S("abcdefghij"), 1, 0, SV("1234567890"), 1, 1, S("a2bcdefghij"));
- test(S("abcdefghij"), 1, 0, SV("1234567890"), 1, 4, S("a2345bcdefghij"));
- test(S("abcdefghij"), 1, 0, SV("1234567890"), 1, 8, S("a23456789bcdefghij"));
- test(S("abcdefghij"), 1, 0, SV("1234567890"), 1, 9, S("a234567890bcdefghij"));
- test(S("abcdefghij"), 1, 0, SV("1234567890"), 1, 10, S("a234567890bcdefghij"));
- test(S("abcdefghij"), 1, 0, SV("1234567890"), 5, 0, S("abcdefghij"));
- test(S("abcdefghij"), 1, 0, SV("1234567890"), 5, 1, S("a6bcdefghij"));
- test(S("abcdefghij"), 1, 0, SV("1234567890"), 5, 2, S("a67bcdefghij"));
- test(S("abcdefghij"), 1, 0, SV("1234567890"), 5, 4, S("a6789bcdefghij"));
- test(S("abcdefghij"), 1, 0, SV("1234567890"), 5, 5, S("a67890bcdefghij"));
- test(S("abcdefghij"), 1, 0, SV("1234567890"), 5, 6, S("a67890bcdefghij"));
- test(S("abcdefghij"), 1, 0, SV("1234567890"), 9, 0, S("abcdefghij"));
- test(S("abcdefghij"), 1, 0, SV("1234567890"), 9, 1, S("a0bcdefghij"));
- test(S("abcdefghij"), 1, 0, SV("1234567890"), 9, 2, S("a0bcdefghij"));
- test(S("abcdefghij"), 1, 0, SV("1234567890"), 10, 0, S("abcdefghij"));
- test(S("abcdefghij"), 1, 0, SV("1234567890"), 10, 1, S("abcdefghij"));
- test(S("abcdefghij"), 1, 0, SV("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghij"), 1, 0, SV("12345678901234567890"), 0, 0, S("abcdefghij"));
- test(S("abcdefghij"), 1, 0, SV("12345678901234567890"), 0, 1, S("a1bcdefghij"));
- test(S("abcdefghij"), 1, 0, SV("12345678901234567890"), 0, 10, S("a1234567890bcdefghij"));
- test(S("abcdefghij"), 1, 0, SV("12345678901234567890"), 0, 19, S("a1234567890123456789bcdefghij"));
- test(S("abcdefghij"), 1, 0, SV("12345678901234567890"), 0, 20, S("a12345678901234567890bcdefghij"));
- test(S("abcdefghij"), 1, 0, SV("12345678901234567890"), 0, 21, S("a12345678901234567890bcdefghij"));
- test(S("abcdefghij"), 1, 0, SV("12345678901234567890"), 1, 0, S("abcdefghij"));
- test(S("abcdefghij"), 1, 0, SV("12345678901234567890"), 1, 1, S("a2bcdefghij"));
- test(S("abcdefghij"), 1, 0, SV("12345678901234567890"), 1, 9, S("a234567890bcdefghij"));
- test(S("abcdefghij"), 1, 0, SV("12345678901234567890"), 1, 18, S("a234567890123456789bcdefghij"));
- test(S("abcdefghij"), 1, 0, SV("12345678901234567890"), 1, 19, S("a2345678901234567890bcdefghij"));
- test(S("abcdefghij"), 1, 0, SV("12345678901234567890"), 1, 20, S("a2345678901234567890bcdefghij"));
- test(S("abcdefghij"), 1, 0, SV("12345678901234567890"), 10, 0, S("abcdefghij"));
- test(S("abcdefghij"), 1, 0, SV("12345678901234567890"), 10, 1, S("a1bcdefghij"));
- test(S("abcdefghij"), 1, 0, SV("12345678901234567890"), 10, 5, S("a12345bcdefghij"));
- test(S("abcdefghij"), 1, 0, SV("12345678901234567890"), 10, 9, S("a123456789bcdefghij"));
- test(S("abcdefghij"), 1, 0, SV("12345678901234567890"), 10, 10, S("a1234567890bcdefghij"));
- test(S("abcdefghij"), 1, 0, SV("12345678901234567890"), 10, 11, S("a1234567890bcdefghij"));
- test(S("abcdefghij"), 1, 0, SV("12345678901234567890"), 19, 0, S("abcdefghij"));
- test(S("abcdefghij"), 1, 0, SV("12345678901234567890"), 19, 1, S("a0bcdefghij"));
- test(S("abcdefghij"), 1, 0, SV("12345678901234567890"), 19, 2, S("a0bcdefghij"));
- test(S("abcdefghij"), 1, 0, SV("12345678901234567890"), 20, 0, S("abcdefghij"));
- test(S("abcdefghij"), 1, 0, SV("12345678901234567890"), 20, 1, S("abcdefghij"));
- test(S("abcdefghij"), 1, 0, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghij"), 1, 1, SV(""), 0, 0, S("acdefghij"));
- test(S("abcdefghij"), 1, 1, SV(""), 0, 1, S("acdefghij"));
- test(S("abcdefghij"), 1, 1, SV(""), 1, 0, S("can't happen"));
- test(S("abcdefghij"), 1, 1, SV("12345"), 0, 0, S("acdefghij"));
- test(S("abcdefghij"), 1, 1, SV("12345"), 0, 1, S("a1cdefghij"));
- test(S("abcdefghij"), 1, 1, SV("12345"), 0, 2, S("a12cdefghij"));
- test(S("abcdefghij"), 1, 1, SV("12345"), 0, 4, S("a1234cdefghij"));
- test(S("abcdefghij"), 1, 1, SV("12345"), 0, 5, S("a12345cdefghij"));
- test(S("abcdefghij"), 1, 1, SV("12345"), 0, 6, S("a12345cdefghij"));
- test(S("abcdefghij"), 1, 1, SV("12345"), 1, 0, S("acdefghij"));
- test(S("abcdefghij"), 1, 1, SV("12345"), 1, 1, S("a2cdefghij"));
- test(S("abcdefghij"), 1, 1, SV("12345"), 1, 2, S("a23cdefghij"));
- test(S("abcdefghij"), 1, 1, SV("12345"), 1, 3, S("a234cdefghij"));
- test(S("abcdefghij"), 1, 1, SV("12345"), 1, 4, S("a2345cdefghij"));
- test(S("abcdefghij"), 1, 1, SV("12345"), 1, 5, S("a2345cdefghij"));
- test(S("abcdefghij"), 1, 1, SV("12345"), 2, 0, S("acdefghij"));
- test(S("abcdefghij"), 1, 1, SV("12345"), 2, 1, S("a3cdefghij"));
- test(S("abcdefghij"), 1, 1, SV("12345"), 2, 2, S("a34cdefghij"));
- test(S("abcdefghij"), 1, 1, SV("12345"), 2, 3, S("a345cdefghij"));
- test(S("abcdefghij"), 1, 1, SV("12345"), 2, 4, S("a345cdefghij"));
- test(S("abcdefghij"), 1, 1, SV("12345"), 4, 0, S("acdefghij"));
- test(S("abcdefghij"), 1, 1, SV("12345"), 4, 1, S("a5cdefghij"));
- test(S("abcdefghij"), 1, 1, SV("12345"), 4, 2, S("a5cdefghij"));
- test(S("abcdefghij"), 1, 1, SV("12345"), 5, 0, S("acdefghij"));
- test(S("abcdefghij"), 1, 1, SV("12345"), 5, 1, S("acdefghij"));
- test(S("abcdefghij"), 1, 1, SV("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghij"), 1, 1, SV("1234567890"), 0, 0, S("acdefghij"));
- test(S("abcdefghij"), 1, 1, SV("1234567890"), 0, 1, S("a1cdefghij"));
- test(S("abcdefghij"), 1, 1, SV("1234567890"), 0, 5, S("a12345cdefghij"));
- test(S("abcdefghij"), 1, 1, SV("1234567890"), 0, 9, S("a123456789cdefghij"));
- test(S("abcdefghij"), 1, 1, SV("1234567890"), 0, 10, S("a1234567890cdefghij"));
- test(S("abcdefghij"), 1, 1, SV("1234567890"), 0, 11, S("a1234567890cdefghij"));
- test(S("abcdefghij"), 1, 1, SV("1234567890"), 1, 0, S("acdefghij"));
- test(S("abcdefghij"), 1, 1, SV("1234567890"), 1, 1, S("a2cdefghij"));
- test(S("abcdefghij"), 1, 1, SV("1234567890"), 1, 4, S("a2345cdefghij"));
- test(S("abcdefghij"), 1, 1, SV("1234567890"), 1, 8, S("a23456789cdefghij"));
- test(S("abcdefghij"), 1, 1, SV("1234567890"), 1, 9, S("a234567890cdefghij"));
- test(S("abcdefghij"), 1, 1, SV("1234567890"), 1, 10, S("a234567890cdefghij"));
- test(S("abcdefghij"), 1, 1, SV("1234567890"), 5, 0, S("acdefghij"));
- test(S("abcdefghij"), 1, 1, SV("1234567890"), 5, 1, S("a6cdefghij"));
- test(S("abcdefghij"), 1, 1, SV("1234567890"), 5, 2, S("a67cdefghij"));
- test(S("abcdefghij"), 1, 1, SV("1234567890"), 5, 4, S("a6789cdefghij"));
- test(S("abcdefghij"), 1, 1, SV("1234567890"), 5, 5, S("a67890cdefghij"));
- test(S("abcdefghij"), 1, 1, SV("1234567890"), 5, 6, S("a67890cdefghij"));
- test(S("abcdefghij"), 1, 1, SV("1234567890"), 9, 0, S("acdefghij"));
- test(S("abcdefghij"), 1, 1, SV("1234567890"), 9, 1, S("a0cdefghij"));
- test(S("abcdefghij"), 1, 1, SV("1234567890"), 9, 2, S("a0cdefghij"));
- test(S("abcdefghij"), 1, 1, SV("1234567890"), 10, 0, S("acdefghij"));
- test(S("abcdefghij"), 1, 1, SV("1234567890"), 10, 1, S("acdefghij"));
- test(S("abcdefghij"), 1, 1, SV("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghij"), 1, 1, SV("12345678901234567890"), 0, 0, S("acdefghij"));
- test(S("abcdefghij"), 1, 1, SV("12345678901234567890"), 0, 1, S("a1cdefghij"));
- test(S("abcdefghij"), 1, 1, SV("12345678901234567890"), 0, 10, S("a1234567890cdefghij"));
- test(S("abcdefghij"), 1, 1, SV("12345678901234567890"), 0, 19, S("a1234567890123456789cdefghij"));
- test(S("abcdefghij"), 1, 1, SV("12345678901234567890"), 0, 20, S("a12345678901234567890cdefghij"));
- test(S("abcdefghij"), 1, 1, SV("12345678901234567890"), 0, 21, S("a12345678901234567890cdefghij"));
- test(S("abcdefghij"), 1, 1, SV("12345678901234567890"), 1, 0, S("acdefghij"));
- test(S("abcdefghij"), 1, 1, SV("12345678901234567890"), 1, 1, S("a2cdefghij"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test24() {
+ test(S("abcdefghij"), 1, 0, SV("1234567890"), 1, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 1, 0, SV("1234567890"), 1, 1, S("a2bcdefghij"));
+ test(S("abcdefghij"), 1, 0, SV("1234567890"), 1, 4, S("a2345bcdefghij"));
+ test(S("abcdefghij"), 1, 0, SV("1234567890"), 1, 8, S("a23456789bcdefghij"));
+ test(S("abcdefghij"), 1, 0, SV("1234567890"), 1, 9, S("a234567890bcdefghij"));
+ test(S("abcdefghij"), 1, 0, SV("1234567890"), 1, 10, S("a234567890bcdefghij"));
+ test(S("abcdefghij"), 1, 0, SV("1234567890"), 5, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 1, 0, SV("1234567890"), 5, 1, S("a6bcdefghij"));
+ test(S("abcdefghij"), 1, 0, SV("1234567890"), 5, 2, S("a67bcdefghij"));
+ test(S("abcdefghij"), 1, 0, SV("1234567890"), 5, 4, S("a6789bcdefghij"));
+ test(S("abcdefghij"), 1, 0, SV("1234567890"), 5, 5, S("a67890bcdefghij"));
+ test(S("abcdefghij"), 1, 0, SV("1234567890"), 5, 6, S("a67890bcdefghij"));
+ test(S("abcdefghij"), 1, 0, SV("1234567890"), 9, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 1, 0, SV("1234567890"), 9, 1, S("a0bcdefghij"));
+ test(S("abcdefghij"), 1, 0, SV("1234567890"), 9, 2, S("a0bcdefghij"));
+ test(S("abcdefghij"), 1, 0, SV("1234567890"), 10, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 1, 0, SV("1234567890"), 10, 1, S("abcdefghij"));
+ test(S("abcdefghij"), 1, 0, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghij"), 1, 0, SV("12345678901234567890"), 0, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 1, 0, SV("12345678901234567890"), 0, 1, S("a1bcdefghij"));
+ test(S("abcdefghij"), 1, 0, SV("12345678901234567890"), 0, 10, S("a1234567890bcdefghij"));
+ test(S("abcdefghij"), 1, 0, SV("12345678901234567890"), 0, 19, S("a1234567890123456789bcdefghij"));
+ test(S("abcdefghij"), 1, 0, SV("12345678901234567890"), 0, 20, S("a12345678901234567890bcdefghij"));
+ test(S("abcdefghij"), 1, 0, SV("12345678901234567890"), 0, 21, S("a12345678901234567890bcdefghij"));
+ test(S("abcdefghij"), 1, 0, SV("12345678901234567890"), 1, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 1, 0, SV("12345678901234567890"), 1, 1, S("a2bcdefghij"));
+ test(S("abcdefghij"), 1, 0, SV("12345678901234567890"), 1, 9, S("a234567890bcdefghij"));
+ test(S("abcdefghij"), 1, 0, SV("12345678901234567890"), 1, 18, S("a234567890123456789bcdefghij"));
+ test(S("abcdefghij"), 1, 0, SV("12345678901234567890"), 1, 19, S("a2345678901234567890bcdefghij"));
+ test(S("abcdefghij"), 1, 0, SV("12345678901234567890"), 1, 20, S("a2345678901234567890bcdefghij"));
+ test(S("abcdefghij"), 1, 0, SV("12345678901234567890"), 10, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 1, 0, SV("12345678901234567890"), 10, 1, S("a1bcdefghij"));
+ test(S("abcdefghij"), 1, 0, SV("12345678901234567890"), 10, 5, S("a12345bcdefghij"));
+ test(S("abcdefghij"), 1, 0, SV("12345678901234567890"), 10, 9, S("a123456789bcdefghij"));
+ test(S("abcdefghij"), 1, 0, SV("12345678901234567890"), 10, 10, S("a1234567890bcdefghij"));
+ test(S("abcdefghij"), 1, 0, SV("12345678901234567890"), 10, 11, S("a1234567890bcdefghij"));
+ test(S("abcdefghij"), 1, 0, SV("12345678901234567890"), 19, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 1, 0, SV("12345678901234567890"), 19, 1, S("a0bcdefghij"));
+ test(S("abcdefghij"), 1, 0, SV("12345678901234567890"), 19, 2, S("a0bcdefghij"));
+ test(S("abcdefghij"), 1, 0, SV("12345678901234567890"), 20, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 1, 0, SV("12345678901234567890"), 20, 1, S("abcdefghij"));
+ test(S("abcdefghij"), 1, 0, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghij"), 1, 1, SV(""), 0, 0, S("acdefghij"));
+ test(S("abcdefghij"), 1, 1, SV(""), 0, 1, S("acdefghij"));
+ test(S("abcdefghij"), 1, 1, SV(""), 1, 0, S("can't happen"));
+ test(S("abcdefghij"), 1, 1, SV("12345"), 0, 0, S("acdefghij"));
+ test(S("abcdefghij"), 1, 1, SV("12345"), 0, 1, S("a1cdefghij"));
+ test(S("abcdefghij"), 1, 1, SV("12345"), 0, 2, S("a12cdefghij"));
+ test(S("abcdefghij"), 1, 1, SV("12345"), 0, 4, S("a1234cdefghij"));
+ test(S("abcdefghij"), 1, 1, SV("12345"), 0, 5, S("a12345cdefghij"));
+ test(S("abcdefghij"), 1, 1, SV("12345"), 0, 6, S("a12345cdefghij"));
+ test(S("abcdefghij"), 1, 1, SV("12345"), 1, 0, S("acdefghij"));
+ test(S("abcdefghij"), 1, 1, SV("12345"), 1, 1, S("a2cdefghij"));
+ test(S("abcdefghij"), 1, 1, SV("12345"), 1, 2, S("a23cdefghij"));
+ test(S("abcdefghij"), 1, 1, SV("12345"), 1, 3, S("a234cdefghij"));
+ test(S("abcdefghij"), 1, 1, SV("12345"), 1, 4, S("a2345cdefghij"));
+ test(S("abcdefghij"), 1, 1, SV("12345"), 1, 5, S("a2345cdefghij"));
+ test(S("abcdefghij"), 1, 1, SV("12345"), 2, 0, S("acdefghij"));
+ test(S("abcdefghij"), 1, 1, SV("12345"), 2, 1, S("a3cdefghij"));
+ test(S("abcdefghij"), 1, 1, SV("12345"), 2, 2, S("a34cdefghij"));
+ test(S("abcdefghij"), 1, 1, SV("12345"), 2, 3, S("a345cdefghij"));
+ test(S("abcdefghij"), 1, 1, SV("12345"), 2, 4, S("a345cdefghij"));
+ test(S("abcdefghij"), 1, 1, SV("12345"), 4, 0, S("acdefghij"));
+ test(S("abcdefghij"), 1, 1, SV("12345"), 4, 1, S("a5cdefghij"));
+ test(S("abcdefghij"), 1, 1, SV("12345"), 4, 2, S("a5cdefghij"));
+ test(S("abcdefghij"), 1, 1, SV("12345"), 5, 0, S("acdefghij"));
+ test(S("abcdefghij"), 1, 1, SV("12345"), 5, 1, S("acdefghij"));
+ test(S("abcdefghij"), 1, 1, SV("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghij"), 1, 1, SV("1234567890"), 0, 0, S("acdefghij"));
+ test(S("abcdefghij"), 1, 1, SV("1234567890"), 0, 1, S("a1cdefghij"));
+ test(S("abcdefghij"), 1, 1, SV("1234567890"), 0, 5, S("a12345cdefghij"));
+ test(S("abcdefghij"), 1, 1, SV("1234567890"), 0, 9, S("a123456789cdefghij"));
+ test(S("abcdefghij"), 1, 1, SV("1234567890"), 0, 10, S("a1234567890cdefghij"));
+ test(S("abcdefghij"), 1, 1, SV("1234567890"), 0, 11, S("a1234567890cdefghij"));
+ test(S("abcdefghij"), 1, 1, SV("1234567890"), 1, 0, S("acdefghij"));
+ test(S("abcdefghij"), 1, 1, SV("1234567890"), 1, 1, S("a2cdefghij"));
+ test(S("abcdefghij"), 1, 1, SV("1234567890"), 1, 4, S("a2345cdefghij"));
+ test(S("abcdefghij"), 1, 1, SV("1234567890"), 1, 8, S("a23456789cdefghij"));
+ test(S("abcdefghij"), 1, 1, SV("1234567890"), 1, 9, S("a234567890cdefghij"));
+ test(S("abcdefghij"), 1, 1, SV("1234567890"), 1, 10, S("a234567890cdefghij"));
+ test(S("abcdefghij"), 1, 1, SV("1234567890"), 5, 0, S("acdefghij"));
+ test(S("abcdefghij"), 1, 1, SV("1234567890"), 5, 1, S("a6cdefghij"));
+ test(S("abcdefghij"), 1, 1, SV("1234567890"), 5, 2, S("a67cdefghij"));
+ test(S("abcdefghij"), 1, 1, SV("1234567890"), 5, 4, S("a6789cdefghij"));
+ test(S("abcdefghij"), 1, 1, SV("1234567890"), 5, 5, S("a67890cdefghij"));
+ test(S("abcdefghij"), 1, 1, SV("1234567890"), 5, 6, S("a67890cdefghij"));
+ test(S("abcdefghij"), 1, 1, SV("1234567890"), 9, 0, S("acdefghij"));
+ test(S("abcdefghij"), 1, 1, SV("1234567890"), 9, 1, S("a0cdefghij"));
+ test(S("abcdefghij"), 1, 1, SV("1234567890"), 9, 2, S("a0cdefghij"));
+ test(S("abcdefghij"), 1, 1, SV("1234567890"), 10, 0, S("acdefghij"));
+ test(S("abcdefghij"), 1, 1, SV("1234567890"), 10, 1, S("acdefghij"));
+ test(S("abcdefghij"), 1, 1, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghij"), 1, 1, SV("12345678901234567890"), 0, 0, S("acdefghij"));
+ test(S("abcdefghij"), 1, 1, SV("12345678901234567890"), 0, 1, S("a1cdefghij"));
+ test(S("abcdefghij"), 1, 1, SV("12345678901234567890"), 0, 10, S("a1234567890cdefghij"));
+ test(S("abcdefghij"), 1, 1, SV("12345678901234567890"), 0, 19, S("a1234567890123456789cdefghij"));
+ test(S("abcdefghij"), 1, 1, SV("12345678901234567890"), 0, 20, S("a12345678901234567890cdefghij"));
+ test(S("abcdefghij"), 1, 1, SV("12345678901234567890"), 0, 21, S("a12345678901234567890cdefghij"));
+ test(S("abcdefghij"), 1, 1, SV("12345678901234567890"), 1, 0, S("acdefghij"));
+ test(S("abcdefghij"), 1, 1, SV("12345678901234567890"), 1, 1, S("a2cdefghij"));
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test25()
-{
- test(S("abcdefghij"), 1, 1, SV("12345678901234567890"), 1, 9, S("a234567890cdefghij"));
- test(S("abcdefghij"), 1, 1, SV("12345678901234567890"), 1, 18, S("a234567890123456789cdefghij"));
- test(S("abcdefghij"), 1, 1, SV("12345678901234567890"), 1, 19, S("a2345678901234567890cdefghij"));
- test(S("abcdefghij"), 1, 1, SV("12345678901234567890"), 1, 20, S("a2345678901234567890cdefghij"));
- test(S("abcdefghij"), 1, 1, SV("12345678901234567890"), 10, 0, S("acdefghij"));
- test(S("abcdefghij"), 1, 1, SV("12345678901234567890"), 10, 1, S("a1cdefghij"));
- test(S("abcdefghij"), 1, 1, SV("12345678901234567890"), 10, 5, S("a12345cdefghij"));
- test(S("abcdefghij"), 1, 1, SV("12345678901234567890"), 10, 9, S("a123456789cdefghij"));
- test(S("abcdefghij"), 1, 1, SV("12345678901234567890"), 10, 10, S("a1234567890cdefghij"));
- test(S("abcdefghij"), 1, 1, SV("12345678901234567890"), 10, 11, S("a1234567890cdefghij"));
- test(S("abcdefghij"), 1, 1, SV("12345678901234567890"), 19, 0, S("acdefghij"));
- test(S("abcdefghij"), 1, 1, SV("12345678901234567890"), 19, 1, S("a0cdefghij"));
- test(S("abcdefghij"), 1, 1, SV("12345678901234567890"), 19, 2, S("a0cdefghij"));
- test(S("abcdefghij"), 1, 1, SV("12345678901234567890"), 20, 0, S("acdefghij"));
- test(S("abcdefghij"), 1, 1, SV("12345678901234567890"), 20, 1, S("acdefghij"));
- test(S("abcdefghij"), 1, 1, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghij"), 1, 4, SV(""), 0, 0, S("afghij"));
- test(S("abcdefghij"), 1, 4, SV(""), 0, 1, S("afghij"));
- test(S("abcdefghij"), 1, 4, SV(""), 1, 0, S("can't happen"));
- test(S("abcdefghij"), 1, 4, SV("12345"), 0, 0, S("afghij"));
- test(S("abcdefghij"), 1, 4, SV("12345"), 0, 1, S("a1fghij"));
- test(S("abcdefghij"), 1, 4, SV("12345"), 0, 2, S("a12fghij"));
- test(S("abcdefghij"), 1, 4, SV("12345"), 0, 4, S("a1234fghij"));
- test(S("abcdefghij"), 1, 4, SV("12345"), 0, 5, S("a12345fghij"));
- test(S("abcdefghij"), 1, 4, SV("12345"), 0, 6, S("a12345fghij"));
- test(S("abcdefghij"), 1, 4, SV("12345"), 1, 0, S("afghij"));
- test(S("abcdefghij"), 1, 4, SV("12345"), 1, 1, S("a2fghij"));
- test(S("abcdefghij"), 1, 4, SV("12345"), 1, 2, S("a23fghij"));
- test(S("abcdefghij"), 1, 4, SV("12345"), 1, 3, S("a234fghij"));
- test(S("abcdefghij"), 1, 4, SV("12345"), 1, 4, S("a2345fghij"));
- test(S("abcdefghij"), 1, 4, SV("12345"), 1, 5, S("a2345fghij"));
- test(S("abcdefghij"), 1, 4, SV("12345"), 2, 0, S("afghij"));
- test(S("abcdefghij"), 1, 4, SV("12345"), 2, 1, S("a3fghij"));
- test(S("abcdefghij"), 1, 4, SV("12345"), 2, 2, S("a34fghij"));
- test(S("abcdefghij"), 1, 4, SV("12345"), 2, 3, S("a345fghij"));
- test(S("abcdefghij"), 1, 4, SV("12345"), 2, 4, S("a345fghij"));
- test(S("abcdefghij"), 1, 4, SV("12345"), 4, 0, S("afghij"));
- test(S("abcdefghij"), 1, 4, SV("12345"), 4, 1, S("a5fghij"));
- test(S("abcdefghij"), 1, 4, SV("12345"), 4, 2, S("a5fghij"));
- test(S("abcdefghij"), 1, 4, SV("12345"), 5, 0, S("afghij"));
- test(S("abcdefghij"), 1, 4, SV("12345"), 5, 1, S("afghij"));
- test(S("abcdefghij"), 1, 4, SV("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghij"), 1, 4, SV("1234567890"), 0, 0, S("afghij"));
- test(S("abcdefghij"), 1, 4, SV("1234567890"), 0, 1, S("a1fghij"));
- test(S("abcdefghij"), 1, 4, SV("1234567890"), 0, 5, S("a12345fghij"));
- test(S("abcdefghij"), 1, 4, SV("1234567890"), 0, 9, S("a123456789fghij"));
- test(S("abcdefghij"), 1, 4, SV("1234567890"), 0, 10, S("a1234567890fghij"));
- test(S("abcdefghij"), 1, 4, SV("1234567890"), 0, 11, S("a1234567890fghij"));
- test(S("abcdefghij"), 1, 4, SV("1234567890"), 1, 0, S("afghij"));
- test(S("abcdefghij"), 1, 4, SV("1234567890"), 1, 1, S("a2fghij"));
- test(S("abcdefghij"), 1, 4, SV("1234567890"), 1, 4, S("a2345fghij"));
- test(S("abcdefghij"), 1, 4, SV("1234567890"), 1, 8, S("a23456789fghij"));
- test(S("abcdefghij"), 1, 4, SV("1234567890"), 1, 9, S("a234567890fghij"));
- test(S("abcdefghij"), 1, 4, SV("1234567890"), 1, 10, S("a234567890fghij"));
- test(S("abcdefghij"), 1, 4, SV("1234567890"), 5, 0, S("afghij"));
- test(S("abcdefghij"), 1, 4, SV("1234567890"), 5, 1, S("a6fghij"));
- test(S("abcdefghij"), 1, 4, SV("1234567890"), 5, 2, S("a67fghij"));
- test(S("abcdefghij"), 1, 4, SV("1234567890"), 5, 4, S("a6789fghij"));
- test(S("abcdefghij"), 1, 4, SV("1234567890"), 5, 5, S("a67890fghij"));
- test(S("abcdefghij"), 1, 4, SV("1234567890"), 5, 6, S("a67890fghij"));
- test(S("abcdefghij"), 1, 4, SV("1234567890"), 9, 0, S("afghij"));
- test(S("abcdefghij"), 1, 4, SV("1234567890"), 9, 1, S("a0fghij"));
- test(S("abcdefghij"), 1, 4, SV("1234567890"), 9, 2, S("a0fghij"));
- test(S("abcdefghij"), 1, 4, SV("1234567890"), 10, 0, S("afghij"));
- test(S("abcdefghij"), 1, 4, SV("1234567890"), 10, 1, S("afghij"));
- test(S("abcdefghij"), 1, 4, SV("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghij"), 1, 4, SV("12345678901234567890"), 0, 0, S("afghij"));
- test(S("abcdefghij"), 1, 4, SV("12345678901234567890"), 0, 1, S("a1fghij"));
- test(S("abcdefghij"), 1, 4, SV("12345678901234567890"), 0, 10, S("a1234567890fghij"));
- test(S("abcdefghij"), 1, 4, SV("12345678901234567890"), 0, 19, S("a1234567890123456789fghij"));
- test(S("abcdefghij"), 1, 4, SV("12345678901234567890"), 0, 20, S("a12345678901234567890fghij"));
- test(S("abcdefghij"), 1, 4, SV("12345678901234567890"), 0, 21, S("a12345678901234567890fghij"));
- test(S("abcdefghij"), 1, 4, SV("12345678901234567890"), 1, 0, S("afghij"));
- test(S("abcdefghij"), 1, 4, SV("12345678901234567890"), 1, 1, S("a2fghij"));
- test(S("abcdefghij"), 1, 4, SV("12345678901234567890"), 1, 9, S("a234567890fghij"));
- test(S("abcdefghij"), 1, 4, SV("12345678901234567890"), 1, 18, S("a234567890123456789fghij"));
- test(S("abcdefghij"), 1, 4, SV("12345678901234567890"), 1, 19, S("a2345678901234567890fghij"));
- test(S("abcdefghij"), 1, 4, SV("12345678901234567890"), 1, 20, S("a2345678901234567890fghij"));
- test(S("abcdefghij"), 1, 4, SV("12345678901234567890"), 10, 0, S("afghij"));
- test(S("abcdefghij"), 1, 4, SV("12345678901234567890"), 10, 1, S("a1fghij"));
- test(S("abcdefghij"), 1, 4, SV("12345678901234567890"), 10, 5, S("a12345fghij"));
- test(S("abcdefghij"), 1, 4, SV("12345678901234567890"), 10, 9, S("a123456789fghij"));
- test(S("abcdefghij"), 1, 4, SV("12345678901234567890"), 10, 10, S("a1234567890fghij"));
- test(S("abcdefghij"), 1, 4, SV("12345678901234567890"), 10, 11, S("a1234567890fghij"));
- test(S("abcdefghij"), 1, 4, SV("12345678901234567890"), 19, 0, S("afghij"));
- test(S("abcdefghij"), 1, 4, SV("12345678901234567890"), 19, 1, S("a0fghij"));
- test(S("abcdefghij"), 1, 4, SV("12345678901234567890"), 19, 2, S("a0fghij"));
- test(S("abcdefghij"), 1, 4, SV("12345678901234567890"), 20, 0, S("afghij"));
- test(S("abcdefghij"), 1, 4, SV("12345678901234567890"), 20, 1, S("afghij"));
- test(S("abcdefghij"), 1, 4, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghij"), 1, 8, SV(""), 0, 0, S("aj"));
- test(S("abcdefghij"), 1, 8, SV(""), 0, 1, S("aj"));
- test(S("abcdefghij"), 1, 8, SV(""), 1, 0, S("can't happen"));
- test(S("abcdefghij"), 1, 8, SV("12345"), 0, 0, S("aj"));
- test(S("abcdefghij"), 1, 8, SV("12345"), 0, 1, S("a1j"));
- test(S("abcdefghij"), 1, 8, SV("12345"), 0, 2, S("a12j"));
- test(S("abcdefghij"), 1, 8, SV("12345"), 0, 4, S("a1234j"));
- test(S("abcdefghij"), 1, 8, SV("12345"), 0, 5, S("a12345j"));
- test(S("abcdefghij"), 1, 8, SV("12345"), 0, 6, S("a12345j"));
- test(S("abcdefghij"), 1, 8, SV("12345"), 1, 0, S("aj"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test25() {
+ test(S("abcdefghij"), 1, 1, SV("12345678901234567890"), 1, 9, S("a234567890cdefghij"));
+ test(S("abcdefghij"), 1, 1, SV("12345678901234567890"), 1, 18, S("a234567890123456789cdefghij"));
+ test(S("abcdefghij"), 1, 1, SV("12345678901234567890"), 1, 19, S("a2345678901234567890cdefghij"));
+ test(S("abcdefghij"), 1, 1, SV("12345678901234567890"), 1, 20, S("a2345678901234567890cdefghij"));
+ test(S("abcdefghij"), 1, 1, SV("12345678901234567890"), 10, 0, S("acdefghij"));
+ test(S("abcdefghij"), 1, 1, SV("12345678901234567890"), 10, 1, S("a1cdefghij"));
+ test(S("abcdefghij"), 1, 1, SV("12345678901234567890"), 10, 5, S("a12345cdefghij"));
+ test(S("abcdefghij"), 1, 1, SV("12345678901234567890"), 10, 9, S("a123456789cdefghij"));
+ test(S("abcdefghij"), 1, 1, SV("12345678901234567890"), 10, 10, S("a1234567890cdefghij"));
+ test(S("abcdefghij"), 1, 1, SV("12345678901234567890"), 10, 11, S("a1234567890cdefghij"));
+ test(S("abcdefghij"), 1, 1, SV("12345678901234567890"), 19, 0, S("acdefghij"));
+ test(S("abcdefghij"), 1, 1, SV("12345678901234567890"), 19, 1, S("a0cdefghij"));
+ test(S("abcdefghij"), 1, 1, SV("12345678901234567890"), 19, 2, S("a0cdefghij"));
+ test(S("abcdefghij"), 1, 1, SV("12345678901234567890"), 20, 0, S("acdefghij"));
+ test(S("abcdefghij"), 1, 1, SV("12345678901234567890"), 20, 1, S("acdefghij"));
+ test(S("abcdefghij"), 1, 1, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghij"), 1, 4, SV(""), 0, 0, S("afghij"));
+ test(S("abcdefghij"), 1, 4, SV(""), 0, 1, S("afghij"));
+ test(S("abcdefghij"), 1, 4, SV(""), 1, 0, S("can't happen"));
+ test(S("abcdefghij"), 1, 4, SV("12345"), 0, 0, S("afghij"));
+ test(S("abcdefghij"), 1, 4, SV("12345"), 0, 1, S("a1fghij"));
+ test(S("abcdefghij"), 1, 4, SV("12345"), 0, 2, S("a12fghij"));
+ test(S("abcdefghij"), 1, 4, SV("12345"), 0, 4, S("a1234fghij"));
+ test(S("abcdefghij"), 1, 4, SV("12345"), 0, 5, S("a12345fghij"));
+ test(S("abcdefghij"), 1, 4, SV("12345"), 0, 6, S("a12345fghij"));
+ test(S("abcdefghij"), 1, 4, SV("12345"), 1, 0, S("afghij"));
+ test(S("abcdefghij"), 1, 4, SV("12345"), 1, 1, S("a2fghij"));
+ test(S("abcdefghij"), 1, 4, SV("12345"), 1, 2, S("a23fghij"));
+ test(S("abcdefghij"), 1, 4, SV("12345"), 1, 3, S("a234fghij"));
+ test(S("abcdefghij"), 1, 4, SV("12345"), 1, 4, S("a2345fghij"));
+ test(S("abcdefghij"), 1, 4, SV("12345"), 1, 5, S("a2345fghij"));
+ test(S("abcdefghij"), 1, 4, SV("12345"), 2, 0, S("afghij"));
+ test(S("abcdefghij"), 1, 4, SV("12345"), 2, 1, S("a3fghij"));
+ test(S("abcdefghij"), 1, 4, SV("12345"), 2, 2, S("a34fghij"));
+ test(S("abcdefghij"), 1, 4, SV("12345"), 2, 3, S("a345fghij"));
+ test(S("abcdefghij"), 1, 4, SV("12345"), 2, 4, S("a345fghij"));
+ test(S("abcdefghij"), 1, 4, SV("12345"), 4, 0, S("afghij"));
+ test(S("abcdefghij"), 1, 4, SV("12345"), 4, 1, S("a5fghij"));
+ test(S("abcdefghij"), 1, 4, SV("12345"), 4, 2, S("a5fghij"));
+ test(S("abcdefghij"), 1, 4, SV("12345"), 5, 0, S("afghij"));
+ test(S("abcdefghij"), 1, 4, SV("12345"), 5, 1, S("afghij"));
+ test(S("abcdefghij"), 1, 4, SV("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghij"), 1, 4, SV("1234567890"), 0, 0, S("afghij"));
+ test(S("abcdefghij"), 1, 4, SV("1234567890"), 0, 1, S("a1fghij"));
+ test(S("abcdefghij"), 1, 4, SV("1234567890"), 0, 5, S("a12345fghij"));
+ test(S("abcdefghij"), 1, 4, SV("1234567890"), 0, 9, S("a123456789fghij"));
+ test(S("abcdefghij"), 1, 4, SV("1234567890"), 0, 10, S("a1234567890fghij"));
+ test(S("abcdefghij"), 1, 4, SV("1234567890"), 0, 11, S("a1234567890fghij"));
+ test(S("abcdefghij"), 1, 4, SV("1234567890"), 1, 0, S("afghij"));
+ test(S("abcdefghij"), 1, 4, SV("1234567890"), 1, 1, S("a2fghij"));
+ test(S("abcdefghij"), 1, 4, SV("1234567890"), 1, 4, S("a2345fghij"));
+ test(S("abcdefghij"), 1, 4, SV("1234567890"), 1, 8, S("a23456789fghij"));
+ test(S("abcdefghij"), 1, 4, SV("1234567890"), 1, 9, S("a234567890fghij"));
+ test(S("abcdefghij"), 1, 4, SV("1234567890"), 1, 10, S("a234567890fghij"));
+ test(S("abcdefghij"), 1, 4, SV("1234567890"), 5, 0, S("afghij"));
+ test(S("abcdefghij"), 1, 4, SV("1234567890"), 5, 1, S("a6fghij"));
+ test(S("abcdefghij"), 1, 4, SV("1234567890"), 5, 2, S("a67fghij"));
+ test(S("abcdefghij"), 1, 4, SV("1234567890"), 5, 4, S("a6789fghij"));
+ test(S("abcdefghij"), 1, 4, SV("1234567890"), 5, 5, S("a67890fghij"));
+ test(S("abcdefghij"), 1, 4, SV("1234567890"), 5, 6, S("a67890fghij"));
+ test(S("abcdefghij"), 1, 4, SV("1234567890"), 9, 0, S("afghij"));
+ test(S("abcdefghij"), 1, 4, SV("1234567890"), 9, 1, S("a0fghij"));
+ test(S("abcdefghij"), 1, 4, SV("1234567890"), 9, 2, S("a0fghij"));
+ test(S("abcdefghij"), 1, 4, SV("1234567890"), 10, 0, S("afghij"));
+ test(S("abcdefghij"), 1, 4, SV("1234567890"), 10, 1, S("afghij"));
+ test(S("abcdefghij"), 1, 4, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghij"), 1, 4, SV("12345678901234567890"), 0, 0, S("afghij"));
+ test(S("abcdefghij"), 1, 4, SV("12345678901234567890"), 0, 1, S("a1fghij"));
+ test(S("abcdefghij"), 1, 4, SV("12345678901234567890"), 0, 10, S("a1234567890fghij"));
+ test(S("abcdefghij"), 1, 4, SV("12345678901234567890"), 0, 19, S("a1234567890123456789fghij"));
+ test(S("abcdefghij"), 1, 4, SV("12345678901234567890"), 0, 20, S("a12345678901234567890fghij"));
+ test(S("abcdefghij"), 1, 4, SV("12345678901234567890"), 0, 21, S("a12345678901234567890fghij"));
+ test(S("abcdefghij"), 1, 4, SV("12345678901234567890"), 1, 0, S("afghij"));
+ test(S("abcdefghij"), 1, 4, SV("12345678901234567890"), 1, 1, S("a2fghij"));
+ test(S("abcdefghij"), 1, 4, SV("12345678901234567890"), 1, 9, S("a234567890fghij"));
+ test(S("abcdefghij"), 1, 4, SV("12345678901234567890"), 1, 18, S("a234567890123456789fghij"));
+ test(S("abcdefghij"), 1, 4, SV("12345678901234567890"), 1, 19, S("a2345678901234567890fghij"));
+ test(S("abcdefghij"), 1, 4, SV("12345678901234567890"), 1, 20, S("a2345678901234567890fghij"));
+ test(S("abcdefghij"), 1, 4, SV("12345678901234567890"), 10, 0, S("afghij"));
+ test(S("abcdefghij"), 1, 4, SV("12345678901234567890"), 10, 1, S("a1fghij"));
+ test(S("abcdefghij"), 1, 4, SV("12345678901234567890"), 10, 5, S("a12345fghij"));
+ test(S("abcdefghij"), 1, 4, SV("12345678901234567890"), 10, 9, S("a123456789fghij"));
+ test(S("abcdefghij"), 1, 4, SV("12345678901234567890"), 10, 10, S("a1234567890fghij"));
+ test(S("abcdefghij"), 1, 4, SV("12345678901234567890"), 10, 11, S("a1234567890fghij"));
+ test(S("abcdefghij"), 1, 4, SV("12345678901234567890"), 19, 0, S("afghij"));
+ test(S("abcdefghij"), 1, 4, SV("12345678901234567890"), 19, 1, S("a0fghij"));
+ test(S("abcdefghij"), 1, 4, SV("12345678901234567890"), 19, 2, S("a0fghij"));
+ test(S("abcdefghij"), 1, 4, SV("12345678901234567890"), 20, 0, S("afghij"));
+ test(S("abcdefghij"), 1, 4, SV("12345678901234567890"), 20, 1, S("afghij"));
+ test(S("abcdefghij"), 1, 4, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghij"), 1, 8, SV(""), 0, 0, S("aj"));
+ test(S("abcdefghij"), 1, 8, SV(""), 0, 1, S("aj"));
+ test(S("abcdefghij"), 1, 8, SV(""), 1, 0, S("can't happen"));
+ test(S("abcdefghij"), 1, 8, SV("12345"), 0, 0, S("aj"));
+ test(S("abcdefghij"), 1, 8, SV("12345"), 0, 1, S("a1j"));
+ test(S("abcdefghij"), 1, 8, SV("12345"), 0, 2, S("a12j"));
+ test(S("abcdefghij"), 1, 8, SV("12345"), 0, 4, S("a1234j"));
+ test(S("abcdefghij"), 1, 8, SV("12345"), 0, 5, S("a12345j"));
+ test(S("abcdefghij"), 1, 8, SV("12345"), 0, 6, S("a12345j"));
+ test(S("abcdefghij"), 1, 8, SV("12345"), 1, 0, S("aj"));
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test26()
-{
- test(S("abcdefghij"), 1, 8, SV("12345"), 1, 1, S("a2j"));
- test(S("abcdefghij"), 1, 8, SV("12345"), 1, 2, S("a23j"));
- test(S("abcdefghij"), 1, 8, SV("12345"), 1, 3, S("a234j"));
- test(S("abcdefghij"), 1, 8, SV("12345"), 1, 4, S("a2345j"));
- test(S("abcdefghij"), 1, 8, SV("12345"), 1, 5, S("a2345j"));
- test(S("abcdefghij"), 1, 8, SV("12345"), 2, 0, S("aj"));
- test(S("abcdefghij"), 1, 8, SV("12345"), 2, 1, S("a3j"));
- test(S("abcdefghij"), 1, 8, SV("12345"), 2, 2, S("a34j"));
- test(S("abcdefghij"), 1, 8, SV("12345"), 2, 3, S("a345j"));
- test(S("abcdefghij"), 1, 8, SV("12345"), 2, 4, S("a345j"));
- test(S("abcdefghij"), 1, 8, SV("12345"), 4, 0, S("aj"));
- test(S("abcdefghij"), 1, 8, SV("12345"), 4, 1, S("a5j"));
- test(S("abcdefghij"), 1, 8, SV("12345"), 4, 2, S("a5j"));
- test(S("abcdefghij"), 1, 8, SV("12345"), 5, 0, S("aj"));
- test(S("abcdefghij"), 1, 8, SV("12345"), 5, 1, S("aj"));
- test(S("abcdefghij"), 1, 8, SV("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghij"), 1, 8, SV("1234567890"), 0, 0, S("aj"));
- test(S("abcdefghij"), 1, 8, SV("1234567890"), 0, 1, S("a1j"));
- test(S("abcdefghij"), 1, 8, SV("1234567890"), 0, 5, S("a12345j"));
- test(S("abcdefghij"), 1, 8, SV("1234567890"), 0, 9, S("a123456789j"));
- test(S("abcdefghij"), 1, 8, SV("1234567890"), 0, 10, S("a1234567890j"));
- test(S("abcdefghij"), 1, 8, SV("1234567890"), 0, 11, S("a1234567890j"));
- test(S("abcdefghij"), 1, 8, SV("1234567890"), 1, 0, S("aj"));
- test(S("abcdefghij"), 1, 8, SV("1234567890"), 1, 1, S("a2j"));
- test(S("abcdefghij"), 1, 8, SV("1234567890"), 1, 4, S("a2345j"));
- test(S("abcdefghij"), 1, 8, SV("1234567890"), 1, 8, S("a23456789j"));
- test(S("abcdefghij"), 1, 8, SV("1234567890"), 1, 9, S("a234567890j"));
- test(S("abcdefghij"), 1, 8, SV("1234567890"), 1, 10, S("a234567890j"));
- test(S("abcdefghij"), 1, 8, SV("1234567890"), 5, 0, S("aj"));
- test(S("abcdefghij"), 1, 8, SV("1234567890"), 5, 1, S("a6j"));
- test(S("abcdefghij"), 1, 8, SV("1234567890"), 5, 2, S("a67j"));
- test(S("abcdefghij"), 1, 8, SV("1234567890"), 5, 4, S("a6789j"));
- test(S("abcdefghij"), 1, 8, SV("1234567890"), 5, 5, S("a67890j"));
- test(S("abcdefghij"), 1, 8, SV("1234567890"), 5, 6, S("a67890j"));
- test(S("abcdefghij"), 1, 8, SV("1234567890"), 9, 0, S("aj"));
- test(S("abcdefghij"), 1, 8, SV("1234567890"), 9, 1, S("a0j"));
- test(S("abcdefghij"), 1, 8, SV("1234567890"), 9, 2, S("a0j"));
- test(S("abcdefghij"), 1, 8, SV("1234567890"), 10, 0, S("aj"));
- test(S("abcdefghij"), 1, 8, SV("1234567890"), 10, 1, S("aj"));
- test(S("abcdefghij"), 1, 8, SV("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghij"), 1, 8, SV("12345678901234567890"), 0, 0, S("aj"));
- test(S("abcdefghij"), 1, 8, SV("12345678901234567890"), 0, 1, S("a1j"));
- test(S("abcdefghij"), 1, 8, SV("12345678901234567890"), 0, 10, S("a1234567890j"));
- test(S("abcdefghij"), 1, 8, SV("12345678901234567890"), 0, 19, S("a1234567890123456789j"));
- test(S("abcdefghij"), 1, 8, SV("12345678901234567890"), 0, 20, S("a12345678901234567890j"));
- test(S("abcdefghij"), 1, 8, SV("12345678901234567890"), 0, 21, S("a12345678901234567890j"));
- test(S("abcdefghij"), 1, 8, SV("12345678901234567890"), 1, 0, S("aj"));
- test(S("abcdefghij"), 1, 8, SV("12345678901234567890"), 1, 1, S("a2j"));
- test(S("abcdefghij"), 1, 8, SV("12345678901234567890"), 1, 9, S("a234567890j"));
- test(S("abcdefghij"), 1, 8, SV("12345678901234567890"), 1, 18, S("a234567890123456789j"));
- test(S("abcdefghij"), 1, 8, SV("12345678901234567890"), 1, 19, S("a2345678901234567890j"));
- test(S("abcdefghij"), 1, 8, SV("12345678901234567890"), 1, 20, S("a2345678901234567890j"));
- test(S("abcdefghij"), 1, 8, SV("12345678901234567890"), 10, 0, S("aj"));
- test(S("abcdefghij"), 1, 8, SV("12345678901234567890"), 10, 1, S("a1j"));
- test(S("abcdefghij"), 1, 8, SV("12345678901234567890"), 10, 5, S("a12345j"));
- test(S("abcdefghij"), 1, 8, SV("12345678901234567890"), 10, 9, S("a123456789j"));
- test(S("abcdefghij"), 1, 8, SV("12345678901234567890"), 10, 10, S("a1234567890j"));
- test(S("abcdefghij"), 1, 8, SV("12345678901234567890"), 10, 11, S("a1234567890j"));
- test(S("abcdefghij"), 1, 8, SV("12345678901234567890"), 19, 0, S("aj"));
- test(S("abcdefghij"), 1, 8, SV("12345678901234567890"), 19, 1, S("a0j"));
- test(S("abcdefghij"), 1, 8, SV("12345678901234567890"), 19, 2, S("a0j"));
- test(S("abcdefghij"), 1, 8, SV("12345678901234567890"), 20, 0, S("aj"));
- test(S("abcdefghij"), 1, 8, SV("12345678901234567890"), 20, 1, S("aj"));
- test(S("abcdefghij"), 1, 8, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghij"), 1, 9, SV(""), 0, 0, S("a"));
- test(S("abcdefghij"), 1, 9, SV(""), 0, 1, S("a"));
- test(S("abcdefghij"), 1, 9, SV(""), 1, 0, S("can't happen"));
- test(S("abcdefghij"), 1, 9, SV("12345"), 0, 0, S("a"));
- test(S("abcdefghij"), 1, 9, SV("12345"), 0, 1, S("a1"));
- test(S("abcdefghij"), 1, 9, SV("12345"), 0, 2, S("a12"));
- test(S("abcdefghij"), 1, 9, SV("12345"), 0, 4, S("a1234"));
- test(S("abcdefghij"), 1, 9, SV("12345"), 0, 5, S("a12345"));
- test(S("abcdefghij"), 1, 9, SV("12345"), 0, 6, S("a12345"));
- test(S("abcdefghij"), 1, 9, SV("12345"), 1, 0, S("a"));
- test(S("abcdefghij"), 1, 9, SV("12345"), 1, 1, S("a2"));
- test(S("abcdefghij"), 1, 9, SV("12345"), 1, 2, S("a23"));
- test(S("abcdefghij"), 1, 9, SV("12345"), 1, 3, S("a234"));
- test(S("abcdefghij"), 1, 9, SV("12345"), 1, 4, S("a2345"));
- test(S("abcdefghij"), 1, 9, SV("12345"), 1, 5, S("a2345"));
- test(S("abcdefghij"), 1, 9, SV("12345"), 2, 0, S("a"));
- test(S("abcdefghij"), 1, 9, SV("12345"), 2, 1, S("a3"));
- test(S("abcdefghij"), 1, 9, SV("12345"), 2, 2, S("a34"));
- test(S("abcdefghij"), 1, 9, SV("12345"), 2, 3, S("a345"));
- test(S("abcdefghij"), 1, 9, SV("12345"), 2, 4, S("a345"));
- test(S("abcdefghij"), 1, 9, SV("12345"), 4, 0, S("a"));
- test(S("abcdefghij"), 1, 9, SV("12345"), 4, 1, S("a5"));
- test(S("abcdefghij"), 1, 9, SV("12345"), 4, 2, S("a5"));
- test(S("abcdefghij"), 1, 9, SV("12345"), 5, 0, S("a"));
- test(S("abcdefghij"), 1, 9, SV("12345"), 5, 1, S("a"));
- test(S("abcdefghij"), 1, 9, SV("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghij"), 1, 9, SV("1234567890"), 0, 0, S("a"));
- test(S("abcdefghij"), 1, 9, SV("1234567890"), 0, 1, S("a1"));
- test(S("abcdefghij"), 1, 9, SV("1234567890"), 0, 5, S("a12345"));
- test(S("abcdefghij"), 1, 9, SV("1234567890"), 0, 9, S("a123456789"));
- test(S("abcdefghij"), 1, 9, SV("1234567890"), 0, 10, S("a1234567890"));
- test(S("abcdefghij"), 1, 9, SV("1234567890"), 0, 11, S("a1234567890"));
- test(S("abcdefghij"), 1, 9, SV("1234567890"), 1, 0, S("a"));
- test(S("abcdefghij"), 1, 9, SV("1234567890"), 1, 1, S("a2"));
- test(S("abcdefghij"), 1, 9, SV("1234567890"), 1, 4, S("a2345"));
- test(S("abcdefghij"), 1, 9, SV("1234567890"), 1, 8, S("a23456789"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test26() {
+ test(S("abcdefghij"), 1, 8, SV("12345"), 1, 1, S("a2j"));
+ test(S("abcdefghij"), 1, 8, SV("12345"), 1, 2, S("a23j"));
+ test(S("abcdefghij"), 1, 8, SV("12345"), 1, 3, S("a234j"));
+ test(S("abcdefghij"), 1, 8, SV("12345"), 1, 4, S("a2345j"));
+ test(S("abcdefghij"), 1, 8, SV("12345"), 1, 5, S("a2345j"));
+ test(S("abcdefghij"), 1, 8, SV("12345"), 2, 0, S("aj"));
+ test(S("abcdefghij"), 1, 8, SV("12345"), 2, 1, S("a3j"));
+ test(S("abcdefghij"), 1, 8, SV("12345"), 2, 2, S("a34j"));
+ test(S("abcdefghij"), 1, 8, SV("12345"), 2, 3, S("a345j"));
+ test(S("abcdefghij"), 1, 8, SV("12345"), 2, 4, S("a345j"));
+ test(S("abcdefghij"), 1, 8, SV("12345"), 4, 0, S("aj"));
+ test(S("abcdefghij"), 1, 8, SV("12345"), 4, 1, S("a5j"));
+ test(S("abcdefghij"), 1, 8, SV("12345"), 4, 2, S("a5j"));
+ test(S("abcdefghij"), 1, 8, SV("12345"), 5, 0, S("aj"));
+ test(S("abcdefghij"), 1, 8, SV("12345"), 5, 1, S("aj"));
+ test(S("abcdefghij"), 1, 8, SV("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghij"), 1, 8, SV("1234567890"), 0, 0, S("aj"));
+ test(S("abcdefghij"), 1, 8, SV("1234567890"), 0, 1, S("a1j"));
+ test(S("abcdefghij"), 1, 8, SV("1234567890"), 0, 5, S("a12345j"));
+ test(S("abcdefghij"), 1, 8, SV("1234567890"), 0, 9, S("a123456789j"));
+ test(S("abcdefghij"), 1, 8, SV("1234567890"), 0, 10, S("a1234567890j"));
+ test(S("abcdefghij"), 1, 8, SV("1234567890"), 0, 11, S("a1234567890j"));
+ test(S("abcdefghij"), 1, 8, SV("1234567890"), 1, 0, S("aj"));
+ test(S("abcdefghij"), 1, 8, SV("1234567890"), 1, 1, S("a2j"));
+ test(S("abcdefghij"), 1, 8, SV("1234567890"), 1, 4, S("a2345j"));
+ test(S("abcdefghij"), 1, 8, SV("1234567890"), 1, 8, S("a23456789j"));
+ test(S("abcdefghij"), 1, 8, SV("1234567890"), 1, 9, S("a234567890j"));
+ test(S("abcdefghij"), 1, 8, SV("1234567890"), 1, 10, S("a234567890j"));
+ test(S("abcdefghij"), 1, 8, SV("1234567890"), 5, 0, S("aj"));
+ test(S("abcdefghij"), 1, 8, SV("1234567890"), 5, 1, S("a6j"));
+ test(S("abcdefghij"), 1, 8, SV("1234567890"), 5, 2, S("a67j"));
+ test(S("abcdefghij"), 1, 8, SV("1234567890"), 5, 4, S("a6789j"));
+ test(S("abcdefghij"), 1, 8, SV("1234567890"), 5, 5, S("a67890j"));
+ test(S("abcdefghij"), 1, 8, SV("1234567890"), 5, 6, S("a67890j"));
+ test(S("abcdefghij"), 1, 8, SV("1234567890"), 9, 0, S("aj"));
+ test(S("abcdefghij"), 1, 8, SV("1234567890"), 9, 1, S("a0j"));
+ test(S("abcdefghij"), 1, 8, SV("1234567890"), 9, 2, S("a0j"));
+ test(S("abcdefghij"), 1, 8, SV("1234567890"), 10, 0, S("aj"));
+ test(S("abcdefghij"), 1, 8, SV("1234567890"), 10, 1, S("aj"));
+ test(S("abcdefghij"), 1, 8, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghij"), 1, 8, SV("12345678901234567890"), 0, 0, S("aj"));
+ test(S("abcdefghij"), 1, 8, SV("12345678901234567890"), 0, 1, S("a1j"));
+ test(S("abcdefghij"), 1, 8, SV("12345678901234567890"), 0, 10, S("a1234567890j"));
+ test(S("abcdefghij"), 1, 8, SV("12345678901234567890"), 0, 19, S("a1234567890123456789j"));
+ test(S("abcdefghij"), 1, 8, SV("12345678901234567890"), 0, 20, S("a12345678901234567890j"));
+ test(S("abcdefghij"), 1, 8, SV("12345678901234567890"), 0, 21, S("a12345678901234567890j"));
+ test(S("abcdefghij"), 1, 8, SV("12345678901234567890"), 1, 0, S("aj"));
+ test(S("abcdefghij"), 1, 8, SV("12345678901234567890"), 1, 1, S("a2j"));
+ test(S("abcdefghij"), 1, 8, SV("12345678901234567890"), 1, 9, S("a234567890j"));
+ test(S("abcdefghij"), 1, 8, SV("12345678901234567890"), 1, 18, S("a234567890123456789j"));
+ test(S("abcdefghij"), 1, 8, SV("12345678901234567890"), 1, 19, S("a2345678901234567890j"));
+ test(S("abcdefghij"), 1, 8, SV("12345678901234567890"), 1, 20, S("a2345678901234567890j"));
+ test(S("abcdefghij"), 1, 8, SV("12345678901234567890"), 10, 0, S("aj"));
+ test(S("abcdefghij"), 1, 8, SV("12345678901234567890"), 10, 1, S("a1j"));
+ test(S("abcdefghij"), 1, 8, SV("12345678901234567890"), 10, 5, S("a12345j"));
+ test(S("abcdefghij"), 1, 8, SV("12345678901234567890"), 10, 9, S("a123456789j"));
+ test(S("abcdefghij"), 1, 8, SV("12345678901234567890"), 10, 10, S("a1234567890j"));
+ test(S("abcdefghij"), 1, 8, SV("12345678901234567890"), 10, 11, S("a1234567890j"));
+ test(S("abcdefghij"), 1, 8, SV("12345678901234567890"), 19, 0, S("aj"));
+ test(S("abcdefghij"), 1, 8, SV("12345678901234567890"), 19, 1, S("a0j"));
+ test(S("abcdefghij"), 1, 8, SV("12345678901234567890"), 19, 2, S("a0j"));
+ test(S("abcdefghij"), 1, 8, SV("12345678901234567890"), 20, 0, S("aj"));
+ test(S("abcdefghij"), 1, 8, SV("12345678901234567890"), 20, 1, S("aj"));
+ test(S("abcdefghij"), 1, 8, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghij"), 1, 9, SV(""), 0, 0, S("a"));
+ test(S("abcdefghij"), 1, 9, SV(""), 0, 1, S("a"));
+ test(S("abcdefghij"), 1, 9, SV(""), 1, 0, S("can't happen"));
+ test(S("abcdefghij"), 1, 9, SV("12345"), 0, 0, S("a"));
+ test(S("abcdefghij"), 1, 9, SV("12345"), 0, 1, S("a1"));
+ test(S("abcdefghij"), 1, 9, SV("12345"), 0, 2, S("a12"));
+ test(S("abcdefghij"), 1, 9, SV("12345"), 0, 4, S("a1234"));
+ test(S("abcdefghij"), 1, 9, SV("12345"), 0, 5, S("a12345"));
+ test(S("abcdefghij"), 1, 9, SV("12345"), 0, 6, S("a12345"));
+ test(S("abcdefghij"), 1, 9, SV("12345"), 1, 0, S("a"));
+ test(S("abcdefghij"), 1, 9, SV("12345"), 1, 1, S("a2"));
+ test(S("abcdefghij"), 1, 9, SV("12345"), 1, 2, S("a23"));
+ test(S("abcdefghij"), 1, 9, SV("12345"), 1, 3, S("a234"));
+ test(S("abcdefghij"), 1, 9, SV("12345"), 1, 4, S("a2345"));
+ test(S("abcdefghij"), 1, 9, SV("12345"), 1, 5, S("a2345"));
+ test(S("abcdefghij"), 1, 9, SV("12345"), 2, 0, S("a"));
+ test(S("abcdefghij"), 1, 9, SV("12345"), 2, 1, S("a3"));
+ test(S("abcdefghij"), 1, 9, SV("12345"), 2, 2, S("a34"));
+ test(S("abcdefghij"), 1, 9, SV("12345"), 2, 3, S("a345"));
+ test(S("abcdefghij"), 1, 9, SV("12345"), 2, 4, S("a345"));
+ test(S("abcdefghij"), 1, 9, SV("12345"), 4, 0, S("a"));
+ test(S("abcdefghij"), 1, 9, SV("12345"), 4, 1, S("a5"));
+ test(S("abcdefghij"), 1, 9, SV("12345"), 4, 2, S("a5"));
+ test(S("abcdefghij"), 1, 9, SV("12345"), 5, 0, S("a"));
+ test(S("abcdefghij"), 1, 9, SV("12345"), 5, 1, S("a"));
+ test(S("abcdefghij"), 1, 9, SV("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghij"), 1, 9, SV("1234567890"), 0, 0, S("a"));
+ test(S("abcdefghij"), 1, 9, SV("1234567890"), 0, 1, S("a1"));
+ test(S("abcdefghij"), 1, 9, SV("1234567890"), 0, 5, S("a12345"));
+ test(S("abcdefghij"), 1, 9, SV("1234567890"), 0, 9, S("a123456789"));
+ test(S("abcdefghij"), 1, 9, SV("1234567890"), 0, 10, S("a1234567890"));
+ test(S("abcdefghij"), 1, 9, SV("1234567890"), 0, 11, S("a1234567890"));
+ test(S("abcdefghij"), 1, 9, SV("1234567890"), 1, 0, S("a"));
+ test(S("abcdefghij"), 1, 9, SV("1234567890"), 1, 1, S("a2"));
+ test(S("abcdefghij"), 1, 9, SV("1234567890"), 1, 4, S("a2345"));
+ test(S("abcdefghij"), 1, 9, SV("1234567890"), 1, 8, S("a23456789"));
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test27()
-{
- test(S("abcdefghij"), 1, 9, SV("1234567890"), 1, 9, S("a234567890"));
- test(S("abcdefghij"), 1, 9, SV("1234567890"), 1, 10, S("a234567890"));
- test(S("abcdefghij"), 1, 9, SV("1234567890"), 5, 0, S("a"));
- test(S("abcdefghij"), 1, 9, SV("1234567890"), 5, 1, S("a6"));
- test(S("abcdefghij"), 1, 9, SV("1234567890"), 5, 2, S("a67"));
- test(S("abcdefghij"), 1, 9, SV("1234567890"), 5, 4, S("a6789"));
- test(S("abcdefghij"), 1, 9, SV("1234567890"), 5, 5, S("a67890"));
- test(S("abcdefghij"), 1, 9, SV("1234567890"), 5, 6, S("a67890"));
- test(S("abcdefghij"), 1, 9, SV("1234567890"), 9, 0, S("a"));
- test(S("abcdefghij"), 1, 9, SV("1234567890"), 9, 1, S("a0"));
- test(S("abcdefghij"), 1, 9, SV("1234567890"), 9, 2, S("a0"));
- test(S("abcdefghij"), 1, 9, SV("1234567890"), 10, 0, S("a"));
- test(S("abcdefghij"), 1, 9, SV("1234567890"), 10, 1, S("a"));
- test(S("abcdefghij"), 1, 9, SV("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghij"), 1, 9, SV("12345678901234567890"), 0, 0, S("a"));
- test(S("abcdefghij"), 1, 9, SV("12345678901234567890"), 0, 1, S("a1"));
- test(S("abcdefghij"), 1, 9, SV("12345678901234567890"), 0, 10, S("a1234567890"));
- test(S("abcdefghij"), 1, 9, SV("12345678901234567890"), 0, 19, S("a1234567890123456789"));
- test(S("abcdefghij"), 1, 9, SV("12345678901234567890"), 0, 20, S("a12345678901234567890"));
- test(S("abcdefghij"), 1, 9, SV("12345678901234567890"), 0, 21, S("a12345678901234567890"));
- test(S("abcdefghij"), 1, 9, SV("12345678901234567890"), 1, 0, S("a"));
- test(S("abcdefghij"), 1, 9, SV("12345678901234567890"), 1, 1, S("a2"));
- test(S("abcdefghij"), 1, 9, SV("12345678901234567890"), 1, 9, S("a234567890"));
- test(S("abcdefghij"), 1, 9, SV("12345678901234567890"), 1, 18, S("a234567890123456789"));
- test(S("abcdefghij"), 1, 9, SV("12345678901234567890"), 1, 19, S("a2345678901234567890"));
- test(S("abcdefghij"), 1, 9, SV("12345678901234567890"), 1, 20, S("a2345678901234567890"));
- test(S("abcdefghij"), 1, 9, SV("12345678901234567890"), 10, 0, S("a"));
- test(S("abcdefghij"), 1, 9, SV("12345678901234567890"), 10, 1, S("a1"));
- test(S("abcdefghij"), 1, 9, SV("12345678901234567890"), 10, 5, S("a12345"));
- test(S("abcdefghij"), 1, 9, SV("12345678901234567890"), 10, 9, S("a123456789"));
- test(S("abcdefghij"), 1, 9, SV("12345678901234567890"), 10, 10, S("a1234567890"));
- test(S("abcdefghij"), 1, 9, SV("12345678901234567890"), 10, 11, S("a1234567890"));
- test(S("abcdefghij"), 1, 9, SV("12345678901234567890"), 19, 0, S("a"));
- test(S("abcdefghij"), 1, 9, SV("12345678901234567890"), 19, 1, S("a0"));
- test(S("abcdefghij"), 1, 9, SV("12345678901234567890"), 19, 2, S("a0"));
- test(S("abcdefghij"), 1, 9, SV("12345678901234567890"), 20, 0, S("a"));
- test(S("abcdefghij"), 1, 9, SV("12345678901234567890"), 20, 1, S("a"));
- test(S("abcdefghij"), 1, 9, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghij"), 1, 10, SV(""), 0, 0, S("a"));
- test(S("abcdefghij"), 1, 10, SV(""), 0, 1, S("a"));
- test(S("abcdefghij"), 1, 10, SV(""), 1, 0, S("can't happen"));
- test(S("abcdefghij"), 1, 10, SV("12345"), 0, 0, S("a"));
- test(S("abcdefghij"), 1, 10, SV("12345"), 0, 1, S("a1"));
- test(S("abcdefghij"), 1, 10, SV("12345"), 0, 2, S("a12"));
- test(S("abcdefghij"), 1, 10, SV("12345"), 0, 4, S("a1234"));
- test(S("abcdefghij"), 1, 10, SV("12345"), 0, 5, S("a12345"));
- test(S("abcdefghij"), 1, 10, SV("12345"), 0, 6, S("a12345"));
- test(S("abcdefghij"), 1, 10, SV("12345"), 1, 0, S("a"));
- test(S("abcdefghij"), 1, 10, SV("12345"), 1, 1, S("a2"));
- test(S("abcdefghij"), 1, 10, SV("12345"), 1, 2, S("a23"));
- test(S("abcdefghij"), 1, 10, SV("12345"), 1, 3, S("a234"));
- test(S("abcdefghij"), 1, 10, SV("12345"), 1, 4, S("a2345"));
- test(S("abcdefghij"), 1, 10, SV("12345"), 1, 5, S("a2345"));
- test(S("abcdefghij"), 1, 10, SV("12345"), 2, 0, S("a"));
- test(S("abcdefghij"), 1, 10, SV("12345"), 2, 1, S("a3"));
- test(S("abcdefghij"), 1, 10, SV("12345"), 2, 2, S("a34"));
- test(S("abcdefghij"), 1, 10, SV("12345"), 2, 3, S("a345"));
- test(S("abcdefghij"), 1, 10, SV("12345"), 2, 4, S("a345"));
- test(S("abcdefghij"), 1, 10, SV("12345"), 4, 0, S("a"));
- test(S("abcdefghij"), 1, 10, SV("12345"), 4, 1, S("a5"));
- test(S("abcdefghij"), 1, 10, SV("12345"), 4, 2, S("a5"));
- test(S("abcdefghij"), 1, 10, SV("12345"), 5, 0, S("a"));
- test(S("abcdefghij"), 1, 10, SV("12345"), 5, 1, S("a"));
- test(S("abcdefghij"), 1, 10, SV("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghij"), 1, 10, SV("1234567890"), 0, 0, S("a"));
- test(S("abcdefghij"), 1, 10, SV("1234567890"), 0, 1, S("a1"));
- test(S("abcdefghij"), 1, 10, SV("1234567890"), 0, 5, S("a12345"));
- test(S("abcdefghij"), 1, 10, SV("1234567890"), 0, 9, S("a123456789"));
- test(S("abcdefghij"), 1, 10, SV("1234567890"), 0, 10, S("a1234567890"));
- test(S("abcdefghij"), 1, 10, SV("1234567890"), 0, 11, S("a1234567890"));
- test(S("abcdefghij"), 1, 10, SV("1234567890"), 1, 0, S("a"));
- test(S("abcdefghij"), 1, 10, SV("1234567890"), 1, 1, S("a2"));
- test(S("abcdefghij"), 1, 10, SV("1234567890"), 1, 4, S("a2345"));
- test(S("abcdefghij"), 1, 10, SV("1234567890"), 1, 8, S("a23456789"));
- test(S("abcdefghij"), 1, 10, SV("1234567890"), 1, 9, S("a234567890"));
- test(S("abcdefghij"), 1, 10, SV("1234567890"), 1, 10, S("a234567890"));
- test(S("abcdefghij"), 1, 10, SV("1234567890"), 5, 0, S("a"));
- test(S("abcdefghij"), 1, 10, SV("1234567890"), 5, 1, S("a6"));
- test(S("abcdefghij"), 1, 10, SV("1234567890"), 5, 2, S("a67"));
- test(S("abcdefghij"), 1, 10, SV("1234567890"), 5, 4, S("a6789"));
- test(S("abcdefghij"), 1, 10, SV("1234567890"), 5, 5, S("a67890"));
- test(S("abcdefghij"), 1, 10, SV("1234567890"), 5, 6, S("a67890"));
- test(S("abcdefghij"), 1, 10, SV("1234567890"), 9, 0, S("a"));
- test(S("abcdefghij"), 1, 10, SV("1234567890"), 9, 1, S("a0"));
- test(S("abcdefghij"), 1, 10, SV("1234567890"), 9, 2, S("a0"));
- test(S("abcdefghij"), 1, 10, SV("1234567890"), 10, 0, S("a"));
- test(S("abcdefghij"), 1, 10, SV("1234567890"), 10, 1, S("a"));
- test(S("abcdefghij"), 1, 10, SV("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghij"), 1, 10, SV("12345678901234567890"), 0, 0, S("a"));
- test(S("abcdefghij"), 1, 10, SV("12345678901234567890"), 0, 1, S("a1"));
- test(S("abcdefghij"), 1, 10, SV("12345678901234567890"), 0, 10, S("a1234567890"));
- test(S("abcdefghij"), 1, 10, SV("12345678901234567890"), 0, 19, S("a1234567890123456789"));
- test(S("abcdefghij"), 1, 10, SV("12345678901234567890"), 0, 20, S("a12345678901234567890"));
- test(S("abcdefghij"), 1, 10, SV("12345678901234567890"), 0, 21, S("a12345678901234567890"));
- test(S("abcdefghij"), 1, 10, SV("12345678901234567890"), 1, 0, S("a"));
- test(S("abcdefghij"), 1, 10, SV("12345678901234567890"), 1, 1, S("a2"));
- test(S("abcdefghij"), 1, 10, SV("12345678901234567890"), 1, 9, S("a234567890"));
- test(S("abcdefghij"), 1, 10, SV("12345678901234567890"), 1, 18, S("a234567890123456789"));
- test(S("abcdefghij"), 1, 10, SV("12345678901234567890"), 1, 19, S("a2345678901234567890"));
- test(S("abcdefghij"), 1, 10, SV("12345678901234567890"), 1, 20, S("a2345678901234567890"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test27() {
+ test(S("abcdefghij"), 1, 9, SV("1234567890"), 1, 9, S("a234567890"));
+ test(S("abcdefghij"), 1, 9, SV("1234567890"), 1, 10, S("a234567890"));
+ test(S("abcdefghij"), 1, 9, SV("1234567890"), 5, 0, S("a"));
+ test(S("abcdefghij"), 1, 9, SV("1234567890"), 5, 1, S("a6"));
+ test(S("abcdefghij"), 1, 9, SV("1234567890"), 5, 2, S("a67"));
+ test(S("abcdefghij"), 1, 9, SV("1234567890"), 5, 4, S("a6789"));
+ test(S("abcdefghij"), 1, 9, SV("1234567890"), 5, 5, S("a67890"));
+ test(S("abcdefghij"), 1, 9, SV("1234567890"), 5, 6, S("a67890"));
+ test(S("abcdefghij"), 1, 9, SV("1234567890"), 9, 0, S("a"));
+ test(S("abcdefghij"), 1, 9, SV("1234567890"), 9, 1, S("a0"));
+ test(S("abcdefghij"), 1, 9, SV("1234567890"), 9, 2, S("a0"));
+ test(S("abcdefghij"), 1, 9, SV("1234567890"), 10, 0, S("a"));
+ test(S("abcdefghij"), 1, 9, SV("1234567890"), 10, 1, S("a"));
+ test(S("abcdefghij"), 1, 9, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghij"), 1, 9, SV("12345678901234567890"), 0, 0, S("a"));
+ test(S("abcdefghij"), 1, 9, SV("12345678901234567890"), 0, 1, S("a1"));
+ test(S("abcdefghij"), 1, 9, SV("12345678901234567890"), 0, 10, S("a1234567890"));
+ test(S("abcdefghij"), 1, 9, SV("12345678901234567890"), 0, 19, S("a1234567890123456789"));
+ test(S("abcdefghij"), 1, 9, SV("12345678901234567890"), 0, 20, S("a12345678901234567890"));
+ test(S("abcdefghij"), 1, 9, SV("12345678901234567890"), 0, 21, S("a12345678901234567890"));
+ test(S("abcdefghij"), 1, 9, SV("12345678901234567890"), 1, 0, S("a"));
+ test(S("abcdefghij"), 1, 9, SV("12345678901234567890"), 1, 1, S("a2"));
+ test(S("abcdefghij"), 1, 9, SV("12345678901234567890"), 1, 9, S("a234567890"));
+ test(S("abcdefghij"), 1, 9, SV("12345678901234567890"), 1, 18, S("a234567890123456789"));
+ test(S("abcdefghij"), 1, 9, SV("12345678901234567890"), 1, 19, S("a2345678901234567890"));
+ test(S("abcdefghij"), 1, 9, SV("12345678901234567890"), 1, 20, S("a2345678901234567890"));
+ test(S("abcdefghij"), 1, 9, SV("12345678901234567890"), 10, 0, S("a"));
+ test(S("abcdefghij"), 1, 9, SV("12345678901234567890"), 10, 1, S("a1"));
+ test(S("abcdefghij"), 1, 9, SV("12345678901234567890"), 10, 5, S("a12345"));
+ test(S("abcdefghij"), 1, 9, SV("12345678901234567890"), 10, 9, S("a123456789"));
+ test(S("abcdefghij"), 1, 9, SV("12345678901234567890"), 10, 10, S("a1234567890"));
+ test(S("abcdefghij"), 1, 9, SV("12345678901234567890"), 10, 11, S("a1234567890"));
+ test(S("abcdefghij"), 1, 9, SV("12345678901234567890"), 19, 0, S("a"));
+ test(S("abcdefghij"), 1, 9, SV("12345678901234567890"), 19, 1, S("a0"));
+ test(S("abcdefghij"), 1, 9, SV("12345678901234567890"), 19, 2, S("a0"));
+ test(S("abcdefghij"), 1, 9, SV("12345678901234567890"), 20, 0, S("a"));
+ test(S("abcdefghij"), 1, 9, SV("12345678901234567890"), 20, 1, S("a"));
+ test(S("abcdefghij"), 1, 9, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghij"), 1, 10, SV(""), 0, 0, S("a"));
+ test(S("abcdefghij"), 1, 10, SV(""), 0, 1, S("a"));
+ test(S("abcdefghij"), 1, 10, SV(""), 1, 0, S("can't happen"));
+ test(S("abcdefghij"), 1, 10, SV("12345"), 0, 0, S("a"));
+ test(S("abcdefghij"), 1, 10, SV("12345"), 0, 1, S("a1"));
+ test(S("abcdefghij"), 1, 10, SV("12345"), 0, 2, S("a12"));
+ test(S("abcdefghij"), 1, 10, SV("12345"), 0, 4, S("a1234"));
+ test(S("abcdefghij"), 1, 10, SV("12345"), 0, 5, S("a12345"));
+ test(S("abcdefghij"), 1, 10, SV("12345"), 0, 6, S("a12345"));
+ test(S("abcdefghij"), 1, 10, SV("12345"), 1, 0, S("a"));
+ test(S("abcdefghij"), 1, 10, SV("12345"), 1, 1, S("a2"));
+ test(S("abcdefghij"), 1, 10, SV("12345"), 1, 2, S("a23"));
+ test(S("abcdefghij"), 1, 10, SV("12345"), 1, 3, S("a234"));
+ test(S("abcdefghij"), 1, 10, SV("12345"), 1, 4, S("a2345"));
+ test(S("abcdefghij"), 1, 10, SV("12345"), 1, 5, S("a2345"));
+ test(S("abcdefghij"), 1, 10, SV("12345"), 2, 0, S("a"));
+ test(S("abcdefghij"), 1, 10, SV("12345"), 2, 1, S("a3"));
+ test(S("abcdefghij"), 1, 10, SV("12345"), 2, 2, S("a34"));
+ test(S("abcdefghij"), 1, 10, SV("12345"), 2, 3, S("a345"));
+ test(S("abcdefghij"), 1, 10, SV("12345"), 2, 4, S("a345"));
+ test(S("abcdefghij"), 1, 10, SV("12345"), 4, 0, S("a"));
+ test(S("abcdefghij"), 1, 10, SV("12345"), 4, 1, S("a5"));
+ test(S("abcdefghij"), 1, 10, SV("12345"), 4, 2, S("a5"));
+ test(S("abcdefghij"), 1, 10, SV("12345"), 5, 0, S("a"));
+ test(S("abcdefghij"), 1, 10, SV("12345"), 5, 1, S("a"));
+ test(S("abcdefghij"), 1, 10, SV("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghij"), 1, 10, SV("1234567890"), 0, 0, S("a"));
+ test(S("abcdefghij"), 1, 10, SV("1234567890"), 0, 1, S("a1"));
+ test(S("abcdefghij"), 1, 10, SV("1234567890"), 0, 5, S("a12345"));
+ test(S("abcdefghij"), 1, 10, SV("1234567890"), 0, 9, S("a123456789"));
+ test(S("abcdefghij"), 1, 10, SV("1234567890"), 0, 10, S("a1234567890"));
+ test(S("abcdefghij"), 1, 10, SV("1234567890"), 0, 11, S("a1234567890"));
+ test(S("abcdefghij"), 1, 10, SV("1234567890"), 1, 0, S("a"));
+ test(S("abcdefghij"), 1, 10, SV("1234567890"), 1, 1, S("a2"));
+ test(S("abcdefghij"), 1, 10, SV("1234567890"), 1, 4, S("a2345"));
+ test(S("abcdefghij"), 1, 10, SV("1234567890"), 1, 8, S("a23456789"));
+ test(S("abcdefghij"), 1, 10, SV("1234567890"), 1, 9, S("a234567890"));
+ test(S("abcdefghij"), 1, 10, SV("1234567890"), 1, 10, S("a234567890"));
+ test(S("abcdefghij"), 1, 10, SV("1234567890"), 5, 0, S("a"));
+ test(S("abcdefghij"), 1, 10, SV("1234567890"), 5, 1, S("a6"));
+ test(S("abcdefghij"), 1, 10, SV("1234567890"), 5, 2, S("a67"));
+ test(S("abcdefghij"), 1, 10, SV("1234567890"), 5, 4, S("a6789"));
+ test(S("abcdefghij"), 1, 10, SV("1234567890"), 5, 5, S("a67890"));
+ test(S("abcdefghij"), 1, 10, SV("1234567890"), 5, 6, S("a67890"));
+ test(S("abcdefghij"), 1, 10, SV("1234567890"), 9, 0, S("a"));
+ test(S("abcdefghij"), 1, 10, SV("1234567890"), 9, 1, S("a0"));
+ test(S("abcdefghij"), 1, 10, SV("1234567890"), 9, 2, S("a0"));
+ test(S("abcdefghij"), 1, 10, SV("1234567890"), 10, 0, S("a"));
+ test(S("abcdefghij"), 1, 10, SV("1234567890"), 10, 1, S("a"));
+ test(S("abcdefghij"), 1, 10, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghij"), 1, 10, SV("12345678901234567890"), 0, 0, S("a"));
+ test(S("abcdefghij"), 1, 10, SV("12345678901234567890"), 0, 1, S("a1"));
+ test(S("abcdefghij"), 1, 10, SV("12345678901234567890"), 0, 10, S("a1234567890"));
+ test(S("abcdefghij"), 1, 10, SV("12345678901234567890"), 0, 19, S("a1234567890123456789"));
+ test(S("abcdefghij"), 1, 10, SV("12345678901234567890"), 0, 20, S("a12345678901234567890"));
+ test(S("abcdefghij"), 1, 10, SV("12345678901234567890"), 0, 21, S("a12345678901234567890"));
+ test(S("abcdefghij"), 1, 10, SV("12345678901234567890"), 1, 0, S("a"));
+ test(S("abcdefghij"), 1, 10, SV("12345678901234567890"), 1, 1, S("a2"));
+ test(S("abcdefghij"), 1, 10, SV("12345678901234567890"), 1, 9, S("a234567890"));
+ test(S("abcdefghij"), 1, 10, SV("12345678901234567890"), 1, 18, S("a234567890123456789"));
+ test(S("abcdefghij"), 1, 10, SV("12345678901234567890"), 1, 19, S("a2345678901234567890"));
+ test(S("abcdefghij"), 1, 10, SV("12345678901234567890"), 1, 20, S("a2345678901234567890"));
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test28()
-{
- test(S("abcdefghij"), 1, 10, SV("12345678901234567890"), 10, 0, S("a"));
- test(S("abcdefghij"), 1, 10, SV("12345678901234567890"), 10, 1, S("a1"));
- test(S("abcdefghij"), 1, 10, SV("12345678901234567890"), 10, 5, S("a12345"));
- test(S("abcdefghij"), 1, 10, SV("12345678901234567890"), 10, 9, S("a123456789"));
- test(S("abcdefghij"), 1, 10, SV("12345678901234567890"), 10, 10, S("a1234567890"));
- test(S("abcdefghij"), 1, 10, SV("12345678901234567890"), 10, 11, S("a1234567890"));
- test(S("abcdefghij"), 1, 10, SV("12345678901234567890"), 19, 0, S("a"));
- test(S("abcdefghij"), 1, 10, SV("12345678901234567890"), 19, 1, S("a0"));
- test(S("abcdefghij"), 1, 10, SV("12345678901234567890"), 19, 2, S("a0"));
- test(S("abcdefghij"), 1, 10, SV("12345678901234567890"), 20, 0, S("a"));
- test(S("abcdefghij"), 1, 10, SV("12345678901234567890"), 20, 1, S("a"));
- test(S("abcdefghij"), 1, 10, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghij"), 5, 0, SV(""), 0, 0, S("abcdefghij"));
- test(S("abcdefghij"), 5, 0, SV(""), 0, 1, S("abcdefghij"));
- test(S("abcdefghij"), 5, 0, SV(""), 1, 0, S("can't happen"));
- test(S("abcdefghij"), 5, 0, SV("12345"), 0, 0, S("abcdefghij"));
- test(S("abcdefghij"), 5, 0, SV("12345"), 0, 1, S("abcde1fghij"));
- test(S("abcdefghij"), 5, 0, SV("12345"), 0, 2, S("abcde12fghij"));
- test(S("abcdefghij"), 5, 0, SV("12345"), 0, 4, S("abcde1234fghij"));
- test(S("abcdefghij"), 5, 0, SV("12345"), 0, 5, S("abcde12345fghij"));
- test(S("abcdefghij"), 5, 0, SV("12345"), 0, 6, S("abcde12345fghij"));
- test(S("abcdefghij"), 5, 0, SV("12345"), 1, 0, S("abcdefghij"));
- test(S("abcdefghij"), 5, 0, SV("12345"), 1, 1, S("abcde2fghij"));
- test(S("abcdefghij"), 5, 0, SV("12345"), 1, 2, S("abcde23fghij"));
- test(S("abcdefghij"), 5, 0, SV("12345"), 1, 3, S("abcde234fghij"));
- test(S("abcdefghij"), 5, 0, SV("12345"), 1, 4, S("abcde2345fghij"));
- test(S("abcdefghij"), 5, 0, SV("12345"), 1, 5, S("abcde2345fghij"));
- test(S("abcdefghij"), 5, 0, SV("12345"), 2, 0, S("abcdefghij"));
- test(S("abcdefghij"), 5, 0, SV("12345"), 2, 1, S("abcde3fghij"));
- test(S("abcdefghij"), 5, 0, SV("12345"), 2, 2, S("abcde34fghij"));
- test(S("abcdefghij"), 5, 0, SV("12345"), 2, 3, S("abcde345fghij"));
- test(S("abcdefghij"), 5, 0, SV("12345"), 2, 4, S("abcde345fghij"));
- test(S("abcdefghij"), 5, 0, SV("12345"), 4, 0, S("abcdefghij"));
- test(S("abcdefghij"), 5, 0, SV("12345"), 4, 1, S("abcde5fghij"));
- test(S("abcdefghij"), 5, 0, SV("12345"), 4, 2, S("abcde5fghij"));
- test(S("abcdefghij"), 5, 0, SV("12345"), 5, 0, S("abcdefghij"));
- test(S("abcdefghij"), 5, 0, SV("12345"), 5, 1, S("abcdefghij"));
- test(S("abcdefghij"), 5, 0, SV("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghij"), 5, 0, SV("1234567890"), 0, 0, S("abcdefghij"));
- test(S("abcdefghij"), 5, 0, SV("1234567890"), 0, 1, S("abcde1fghij"));
- test(S("abcdefghij"), 5, 0, SV("1234567890"), 0, 5, S("abcde12345fghij"));
- test(S("abcdefghij"), 5, 0, SV("1234567890"), 0, 9, S("abcde123456789fghij"));
- test(S("abcdefghij"), 5, 0, SV("1234567890"), 0, 10, S("abcde1234567890fghij"));
- test(S("abcdefghij"), 5, 0, SV("1234567890"), 0, 11, S("abcde1234567890fghij"));
- test(S("abcdefghij"), 5, 0, SV("1234567890"), 1, 0, S("abcdefghij"));
- test(S("abcdefghij"), 5, 0, SV("1234567890"), 1, 1, S("abcde2fghij"));
- test(S("abcdefghij"), 5, 0, SV("1234567890"), 1, 4, S("abcde2345fghij"));
- test(S("abcdefghij"), 5, 0, SV("1234567890"), 1, 8, S("abcde23456789fghij"));
- test(S("abcdefghij"), 5, 0, SV("1234567890"), 1, 9, S("abcde234567890fghij"));
- test(S("abcdefghij"), 5, 0, SV("1234567890"), 1, 10, S("abcde234567890fghij"));
- test(S("abcdefghij"), 5, 0, SV("1234567890"), 5, 0, S("abcdefghij"));
- test(S("abcdefghij"), 5, 0, SV("1234567890"), 5, 1, S("abcde6fghij"));
- test(S("abcdefghij"), 5, 0, SV("1234567890"), 5, 2, S("abcde67fghij"));
- test(S("abcdefghij"), 5, 0, SV("1234567890"), 5, 4, S("abcde6789fghij"));
- test(S("abcdefghij"), 5, 0, SV("1234567890"), 5, 5, S("abcde67890fghij"));
- test(S("abcdefghij"), 5, 0, SV("1234567890"), 5, 6, S("abcde67890fghij"));
- test(S("abcdefghij"), 5, 0, SV("1234567890"), 9, 0, S("abcdefghij"));
- test(S("abcdefghij"), 5, 0, SV("1234567890"), 9, 1, S("abcde0fghij"));
- test(S("abcdefghij"), 5, 0, SV("1234567890"), 9, 2, S("abcde0fghij"));
- test(S("abcdefghij"), 5, 0, SV("1234567890"), 10, 0, S("abcdefghij"));
- test(S("abcdefghij"), 5, 0, SV("1234567890"), 10, 1, S("abcdefghij"));
- test(S("abcdefghij"), 5, 0, SV("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghij"), 5, 0, SV("12345678901234567890"), 0, 0, S("abcdefghij"));
- test(S("abcdefghij"), 5, 0, SV("12345678901234567890"), 0, 1, S("abcde1fghij"));
- test(S("abcdefghij"), 5, 0, SV("12345678901234567890"), 0, 10, S("abcde1234567890fghij"));
- test(S("abcdefghij"), 5, 0, SV("12345678901234567890"), 0, 19, S("abcde1234567890123456789fghij"));
- test(S("abcdefghij"), 5, 0, SV("12345678901234567890"), 0, 20, S("abcde12345678901234567890fghij"));
- test(S("abcdefghij"), 5, 0, SV("12345678901234567890"), 0, 21, S("abcde12345678901234567890fghij"));
- test(S("abcdefghij"), 5, 0, SV("12345678901234567890"), 1, 0, S("abcdefghij"));
- test(S("abcdefghij"), 5, 0, SV("12345678901234567890"), 1, 1, S("abcde2fghij"));
- test(S("abcdefghij"), 5, 0, SV("12345678901234567890"), 1, 9, S("abcde234567890fghij"));
- test(S("abcdefghij"), 5, 0, SV("12345678901234567890"), 1, 18, S("abcde234567890123456789fghij"));
- test(S("abcdefghij"), 5, 0, SV("12345678901234567890"), 1, 19, S("abcde2345678901234567890fghij"));
- test(S("abcdefghij"), 5, 0, SV("12345678901234567890"), 1, 20, S("abcde2345678901234567890fghij"));
- test(S("abcdefghij"), 5, 0, SV("12345678901234567890"), 10, 0, S("abcdefghij"));
- test(S("abcdefghij"), 5, 0, SV("12345678901234567890"), 10, 1, S("abcde1fghij"));
- test(S("abcdefghij"), 5, 0, SV("12345678901234567890"), 10, 5, S("abcde12345fghij"));
- test(S("abcdefghij"), 5, 0, SV("12345678901234567890"), 10, 9, S("abcde123456789fghij"));
- test(S("abcdefghij"), 5, 0, SV("12345678901234567890"), 10, 10, S("abcde1234567890fghij"));
- test(S("abcdefghij"), 5, 0, SV("12345678901234567890"), 10, 11, S("abcde1234567890fghij"));
- test(S("abcdefghij"), 5, 0, SV("12345678901234567890"), 19, 0, S("abcdefghij"));
- test(S("abcdefghij"), 5, 0, SV("12345678901234567890"), 19, 1, S("abcde0fghij"));
- test(S("abcdefghij"), 5, 0, SV("12345678901234567890"), 19, 2, S("abcde0fghij"));
- test(S("abcdefghij"), 5, 0, SV("12345678901234567890"), 20, 0, S("abcdefghij"));
- test(S("abcdefghij"), 5, 0, SV("12345678901234567890"), 20, 1, S("abcdefghij"));
- test(S("abcdefghij"), 5, 0, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghij"), 5, 1, SV(""), 0, 0, S("abcdeghij"));
- test(S("abcdefghij"), 5, 1, SV(""), 0, 1, S("abcdeghij"));
- test(S("abcdefghij"), 5, 1, SV(""), 1, 0, S("can't happen"));
- test(S("abcdefghij"), 5, 1, SV("12345"), 0, 0, S("abcdeghij"));
- test(S("abcdefghij"), 5, 1, SV("12345"), 0, 1, S("abcde1ghij"));
- test(S("abcdefghij"), 5, 1, SV("12345"), 0, 2, S("abcde12ghij"));
- test(S("abcdefghij"), 5, 1, SV("12345"), 0, 4, S("abcde1234ghij"));
- test(S("abcdefghij"), 5, 1, SV("12345"), 0, 5, S("abcde12345ghij"));
- test(S("abcdefghij"), 5, 1, SV("12345"), 0, 6, S("abcde12345ghij"));
- test(S("abcdefghij"), 5, 1, SV("12345"), 1, 0, S("abcdeghij"));
- test(S("abcdefghij"), 5, 1, SV("12345"), 1, 1, S("abcde2ghij"));
- test(S("abcdefghij"), 5, 1, SV("12345"), 1, 2, S("abcde23ghij"));
- test(S("abcdefghij"), 5, 1, SV("12345"), 1, 3, S("abcde234ghij"));
- test(S("abcdefghij"), 5, 1, SV("12345"), 1, 4, S("abcde2345ghij"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test28() {
+ test(S("abcdefghij"), 1, 10, SV("12345678901234567890"), 10, 0, S("a"));
+ test(S("abcdefghij"), 1, 10, SV("12345678901234567890"), 10, 1, S("a1"));
+ test(S("abcdefghij"), 1, 10, SV("12345678901234567890"), 10, 5, S("a12345"));
+ test(S("abcdefghij"), 1, 10, SV("12345678901234567890"), 10, 9, S("a123456789"));
+ test(S("abcdefghij"), 1, 10, SV("12345678901234567890"), 10, 10, S("a1234567890"));
+ test(S("abcdefghij"), 1, 10, SV("12345678901234567890"), 10, 11, S("a1234567890"));
+ test(S("abcdefghij"), 1, 10, SV("12345678901234567890"), 19, 0, S("a"));
+ test(S("abcdefghij"), 1, 10, SV("12345678901234567890"), 19, 1, S("a0"));
+ test(S("abcdefghij"), 1, 10, SV("12345678901234567890"), 19, 2, S("a0"));
+ test(S("abcdefghij"), 1, 10, SV("12345678901234567890"), 20, 0, S("a"));
+ test(S("abcdefghij"), 1, 10, SV("12345678901234567890"), 20, 1, S("a"));
+ test(S("abcdefghij"), 1, 10, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghij"), 5, 0, SV(""), 0, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 5, 0, SV(""), 0, 1, S("abcdefghij"));
+ test(S("abcdefghij"), 5, 0, SV(""), 1, 0, S("can't happen"));
+ test(S("abcdefghij"), 5, 0, SV("12345"), 0, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 5, 0, SV("12345"), 0, 1, S("abcde1fghij"));
+ test(S("abcdefghij"), 5, 0, SV("12345"), 0, 2, S("abcde12fghij"));
+ test(S("abcdefghij"), 5, 0, SV("12345"), 0, 4, S("abcde1234fghij"));
+ test(S("abcdefghij"), 5, 0, SV("12345"), 0, 5, S("abcde12345fghij"));
+ test(S("abcdefghij"), 5, 0, SV("12345"), 0, 6, S("abcde12345fghij"));
+ test(S("abcdefghij"), 5, 0, SV("12345"), 1, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 5, 0, SV("12345"), 1, 1, S("abcde2fghij"));
+ test(S("abcdefghij"), 5, 0, SV("12345"), 1, 2, S("abcde23fghij"));
+ test(S("abcdefghij"), 5, 0, SV("12345"), 1, 3, S("abcde234fghij"));
+ test(S("abcdefghij"), 5, 0, SV("12345"), 1, 4, S("abcde2345fghij"));
+ test(S("abcdefghij"), 5, 0, SV("12345"), 1, 5, S("abcde2345fghij"));
+ test(S("abcdefghij"), 5, 0, SV("12345"), 2, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 5, 0, SV("12345"), 2, 1, S("abcde3fghij"));
+ test(S("abcdefghij"), 5, 0, SV("12345"), 2, 2, S("abcde34fghij"));
+ test(S("abcdefghij"), 5, 0, SV("12345"), 2, 3, S("abcde345fghij"));
+ test(S("abcdefghij"), 5, 0, SV("12345"), 2, 4, S("abcde345fghij"));
+ test(S("abcdefghij"), 5, 0, SV("12345"), 4, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 5, 0, SV("12345"), 4, 1, S("abcde5fghij"));
+ test(S("abcdefghij"), 5, 0, SV("12345"), 4, 2, S("abcde5fghij"));
+ test(S("abcdefghij"), 5, 0, SV("12345"), 5, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 5, 0, SV("12345"), 5, 1, S("abcdefghij"));
+ test(S("abcdefghij"), 5, 0, SV("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghij"), 5, 0, SV("1234567890"), 0, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 5, 0, SV("1234567890"), 0, 1, S("abcde1fghij"));
+ test(S("abcdefghij"), 5, 0, SV("1234567890"), 0, 5, S("abcde12345fghij"));
+ test(S("abcdefghij"), 5, 0, SV("1234567890"), 0, 9, S("abcde123456789fghij"));
+ test(S("abcdefghij"), 5, 0, SV("1234567890"), 0, 10, S("abcde1234567890fghij"));
+ test(S("abcdefghij"), 5, 0, SV("1234567890"), 0, 11, S("abcde1234567890fghij"));
+ test(S("abcdefghij"), 5, 0, SV("1234567890"), 1, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 5, 0, SV("1234567890"), 1, 1, S("abcde2fghij"));
+ test(S("abcdefghij"), 5, 0, SV("1234567890"), 1, 4, S("abcde2345fghij"));
+ test(S("abcdefghij"), 5, 0, SV("1234567890"), 1, 8, S("abcde23456789fghij"));
+ test(S("abcdefghij"), 5, 0, SV("1234567890"), 1, 9, S("abcde234567890fghij"));
+ test(S("abcdefghij"), 5, 0, SV("1234567890"), 1, 10, S("abcde234567890fghij"));
+ test(S("abcdefghij"), 5, 0, SV("1234567890"), 5, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 5, 0, SV("1234567890"), 5, 1, S("abcde6fghij"));
+ test(S("abcdefghij"), 5, 0, SV("1234567890"), 5, 2, S("abcde67fghij"));
+ test(S("abcdefghij"), 5, 0, SV("1234567890"), 5, 4, S("abcde6789fghij"));
+ test(S("abcdefghij"), 5, 0, SV("1234567890"), 5, 5, S("abcde67890fghij"));
+ test(S("abcdefghij"), 5, 0, SV("1234567890"), 5, 6, S("abcde67890fghij"));
+ test(S("abcdefghij"), 5, 0, SV("1234567890"), 9, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 5, 0, SV("1234567890"), 9, 1, S("abcde0fghij"));
+ test(S("abcdefghij"), 5, 0, SV("1234567890"), 9, 2, S("abcde0fghij"));
+ test(S("abcdefghij"), 5, 0, SV("1234567890"), 10, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 5, 0, SV("1234567890"), 10, 1, S("abcdefghij"));
+ test(S("abcdefghij"), 5, 0, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghij"), 5, 0, SV("12345678901234567890"), 0, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 5, 0, SV("12345678901234567890"), 0, 1, S("abcde1fghij"));
+ test(S("abcdefghij"), 5, 0, SV("12345678901234567890"), 0, 10, S("abcde1234567890fghij"));
+ test(S("abcdefghij"), 5, 0, SV("12345678901234567890"), 0, 19, S("abcde1234567890123456789fghij"));
+ test(S("abcdefghij"), 5, 0, SV("12345678901234567890"), 0, 20, S("abcde12345678901234567890fghij"));
+ test(S("abcdefghij"), 5, 0, SV("12345678901234567890"), 0, 21, S("abcde12345678901234567890fghij"));
+ test(S("abcdefghij"), 5, 0, SV("12345678901234567890"), 1, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 5, 0, SV("12345678901234567890"), 1, 1, S("abcde2fghij"));
+ test(S("abcdefghij"), 5, 0, SV("12345678901234567890"), 1, 9, S("abcde234567890fghij"));
+ test(S("abcdefghij"), 5, 0, SV("12345678901234567890"), 1, 18, S("abcde234567890123456789fghij"));
+ test(S("abcdefghij"), 5, 0, SV("12345678901234567890"), 1, 19, S("abcde2345678901234567890fghij"));
+ test(S("abcdefghij"), 5, 0, SV("12345678901234567890"), 1, 20, S("abcde2345678901234567890fghij"));
+ test(S("abcdefghij"), 5, 0, SV("12345678901234567890"), 10, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 5, 0, SV("12345678901234567890"), 10, 1, S("abcde1fghij"));
+ test(S("abcdefghij"), 5, 0, SV("12345678901234567890"), 10, 5, S("abcde12345fghij"));
+ test(S("abcdefghij"), 5, 0, SV("12345678901234567890"), 10, 9, S("abcde123456789fghij"));
+ test(S("abcdefghij"), 5, 0, SV("12345678901234567890"), 10, 10, S("abcde1234567890fghij"));
+ test(S("abcdefghij"), 5, 0, SV("12345678901234567890"), 10, 11, S("abcde1234567890fghij"));
+ test(S("abcdefghij"), 5, 0, SV("12345678901234567890"), 19, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 5, 0, SV("12345678901234567890"), 19, 1, S("abcde0fghij"));
+ test(S("abcdefghij"), 5, 0, SV("12345678901234567890"), 19, 2, S("abcde0fghij"));
+ test(S("abcdefghij"), 5, 0, SV("12345678901234567890"), 20, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 5, 0, SV("12345678901234567890"), 20, 1, S("abcdefghij"));
+ test(S("abcdefghij"), 5, 0, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghij"), 5, 1, SV(""), 0, 0, S("abcdeghij"));
+ test(S("abcdefghij"), 5, 1, SV(""), 0, 1, S("abcdeghij"));
+ test(S("abcdefghij"), 5, 1, SV(""), 1, 0, S("can't happen"));
+ test(S("abcdefghij"), 5, 1, SV("12345"), 0, 0, S("abcdeghij"));
+ test(S("abcdefghij"), 5, 1, SV("12345"), 0, 1, S("abcde1ghij"));
+ test(S("abcdefghij"), 5, 1, SV("12345"), 0, 2, S("abcde12ghij"));
+ test(S("abcdefghij"), 5, 1, SV("12345"), 0, 4, S("abcde1234ghij"));
+ test(S("abcdefghij"), 5, 1, SV("12345"), 0, 5, S("abcde12345ghij"));
+ test(S("abcdefghij"), 5, 1, SV("12345"), 0, 6, S("abcde12345ghij"));
+ test(S("abcdefghij"), 5, 1, SV("12345"), 1, 0, S("abcdeghij"));
+ test(S("abcdefghij"), 5, 1, SV("12345"), 1, 1, S("abcde2ghij"));
+ test(S("abcdefghij"), 5, 1, SV("12345"), 1, 2, S("abcde23ghij"));
+ test(S("abcdefghij"), 5, 1, SV("12345"), 1, 3, S("abcde234ghij"));
+ test(S("abcdefghij"), 5, 1, SV("12345"), 1, 4, S("abcde2345ghij"));
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test29()
-{
- test(S("abcdefghij"), 5, 1, SV("12345"), 1, 5, S("abcde2345ghij"));
- test(S("abcdefghij"), 5, 1, SV("12345"), 2, 0, S("abcdeghij"));
- test(S("abcdefghij"), 5, 1, SV("12345"), 2, 1, S("abcde3ghij"));
- test(S("abcdefghij"), 5, 1, SV("12345"), 2, 2, S("abcde34ghij"));
- test(S("abcdefghij"), 5, 1, SV("12345"), 2, 3, S("abcde345ghij"));
- test(S("abcdefghij"), 5, 1, SV("12345"), 2, 4, S("abcde345ghij"));
- test(S("abcdefghij"), 5, 1, SV("12345"), 4, 0, S("abcdeghij"));
- test(S("abcdefghij"), 5, 1, SV("12345"), 4, 1, S("abcde5ghij"));
- test(S("abcdefghij"), 5, 1, SV("12345"), 4, 2, S("abcde5ghij"));
- test(S("abcdefghij"), 5, 1, SV("12345"), 5, 0, S("abcdeghij"));
- test(S("abcdefghij"), 5, 1, SV("12345"), 5, 1, S("abcdeghij"));
- test(S("abcdefghij"), 5, 1, SV("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghij"), 5, 1, SV("1234567890"), 0, 0, S("abcdeghij"));
- test(S("abcdefghij"), 5, 1, SV("1234567890"), 0, 1, S("abcde1ghij"));
- test(S("abcdefghij"), 5, 1, SV("1234567890"), 0, 5, S("abcde12345ghij"));
- test(S("abcdefghij"), 5, 1, SV("1234567890"), 0, 9, S("abcde123456789ghij"));
- test(S("abcdefghij"), 5, 1, SV("1234567890"), 0, 10, S("abcde1234567890ghij"));
- test(S("abcdefghij"), 5, 1, SV("1234567890"), 0, 11, S("abcde1234567890ghij"));
- test(S("abcdefghij"), 5, 1, SV("1234567890"), 1, 0, S("abcdeghij"));
- test(S("abcdefghij"), 5, 1, SV("1234567890"), 1, 1, S("abcde2ghij"));
- test(S("abcdefghij"), 5, 1, SV("1234567890"), 1, 4, S("abcde2345ghij"));
- test(S("abcdefghij"), 5, 1, SV("1234567890"), 1, 8, S("abcde23456789ghij"));
- test(S("abcdefghij"), 5, 1, SV("1234567890"), 1, 9, S("abcde234567890ghij"));
- test(S("abcdefghij"), 5, 1, SV("1234567890"), 1, 10, S("abcde234567890ghij"));
- test(S("abcdefghij"), 5, 1, SV("1234567890"), 5, 0, S("abcdeghij"));
- test(S("abcdefghij"), 5, 1, SV("1234567890"), 5, 1, S("abcde6ghij"));
- test(S("abcdefghij"), 5, 1, SV("1234567890"), 5, 2, S("abcde67ghij"));
- test(S("abcdefghij"), 5, 1, SV("1234567890"), 5, 4, S("abcde6789ghij"));
- test(S("abcdefghij"), 5, 1, SV("1234567890"), 5, 5, S("abcde67890ghij"));
- test(S("abcdefghij"), 5, 1, SV("1234567890"), 5, 6, S("abcde67890ghij"));
- test(S("abcdefghij"), 5, 1, SV("1234567890"), 9, 0, S("abcdeghij"));
- test(S("abcdefghij"), 5, 1, SV("1234567890"), 9, 1, S("abcde0ghij"));
- test(S("abcdefghij"), 5, 1, SV("1234567890"), 9, 2, S("abcde0ghij"));
- test(S("abcdefghij"), 5, 1, SV("1234567890"), 10, 0, S("abcdeghij"));
- test(S("abcdefghij"), 5, 1, SV("1234567890"), 10, 1, S("abcdeghij"));
- test(S("abcdefghij"), 5, 1, SV("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghij"), 5, 1, SV("12345678901234567890"), 0, 0, S("abcdeghij"));
- test(S("abcdefghij"), 5, 1, SV("12345678901234567890"), 0, 1, S("abcde1ghij"));
- test(S("abcdefghij"), 5, 1, SV("12345678901234567890"), 0, 10, S("abcde1234567890ghij"));
- test(S("abcdefghij"), 5, 1, SV("12345678901234567890"), 0, 19, S("abcde1234567890123456789ghij"));
- test(S("abcdefghij"), 5, 1, SV("12345678901234567890"), 0, 20, S("abcde12345678901234567890ghij"));
- test(S("abcdefghij"), 5, 1, SV("12345678901234567890"), 0, 21, S("abcde12345678901234567890ghij"));
- test(S("abcdefghij"), 5, 1, SV("12345678901234567890"), 1, 0, S("abcdeghij"));
- test(S("abcdefghij"), 5, 1, SV("12345678901234567890"), 1, 1, S("abcde2ghij"));
- test(S("abcdefghij"), 5, 1, SV("12345678901234567890"), 1, 9, S("abcde234567890ghij"));
- test(S("abcdefghij"), 5, 1, SV("12345678901234567890"), 1, 18, S("abcde234567890123456789ghij"));
- test(S("abcdefghij"), 5, 1, SV("12345678901234567890"), 1, 19, S("abcde2345678901234567890ghij"));
- test(S("abcdefghij"), 5, 1, SV("12345678901234567890"), 1, 20, S("abcde2345678901234567890ghij"));
- test(S("abcdefghij"), 5, 1, SV("12345678901234567890"), 10, 0, S("abcdeghij"));
- test(S("abcdefghij"), 5, 1, SV("12345678901234567890"), 10, 1, S("abcde1ghij"));
- test(S("abcdefghij"), 5, 1, SV("12345678901234567890"), 10, 5, S("abcde12345ghij"));
- test(S("abcdefghij"), 5, 1, SV("12345678901234567890"), 10, 9, S("abcde123456789ghij"));
- test(S("abcdefghij"), 5, 1, SV("12345678901234567890"), 10, 10, S("abcde1234567890ghij"));
- test(S("abcdefghij"), 5, 1, SV("12345678901234567890"), 10, 11, S("abcde1234567890ghij"));
- test(S("abcdefghij"), 5, 1, SV("12345678901234567890"), 19, 0, S("abcdeghij"));
- test(S("abcdefghij"), 5, 1, SV("12345678901234567890"), 19, 1, S("abcde0ghij"));
- test(S("abcdefghij"), 5, 1, SV("12345678901234567890"), 19, 2, S("abcde0ghij"));
- test(S("abcdefghij"), 5, 1, SV("12345678901234567890"), 20, 0, S("abcdeghij"));
- test(S("abcdefghij"), 5, 1, SV("12345678901234567890"), 20, 1, S("abcdeghij"));
- test(S("abcdefghij"), 5, 1, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghij"), 5, 2, SV(""), 0, 0, S("abcdehij"));
- test(S("abcdefghij"), 5, 2, SV(""), 0, 1, S("abcdehij"));
- test(S("abcdefghij"), 5, 2, SV(""), 1, 0, S("can't happen"));
- test(S("abcdefghij"), 5, 2, SV("12345"), 0, 0, S("abcdehij"));
- test(S("abcdefghij"), 5, 2, SV("12345"), 0, 1, S("abcde1hij"));
- test(S("abcdefghij"), 5, 2, SV("12345"), 0, 2, S("abcde12hij"));
- test(S("abcdefghij"), 5, 2, SV("12345"), 0, 4, S("abcde1234hij"));
- test(S("abcdefghij"), 5, 2, SV("12345"), 0, 5, S("abcde12345hij"));
- test(S("abcdefghij"), 5, 2, SV("12345"), 0, 6, S("abcde12345hij"));
- test(S("abcdefghij"), 5, 2, SV("12345"), 1, 0, S("abcdehij"));
- test(S("abcdefghij"), 5, 2, SV("12345"), 1, 1, S("abcde2hij"));
- test(S("abcdefghij"), 5, 2, SV("12345"), 1, 2, S("abcde23hij"));
- test(S("abcdefghij"), 5, 2, SV("12345"), 1, 3, S("abcde234hij"));
- test(S("abcdefghij"), 5, 2, SV("12345"), 1, 4, S("abcde2345hij"));
- test(S("abcdefghij"), 5, 2, SV("12345"), 1, 5, S("abcde2345hij"));
- test(S("abcdefghij"), 5, 2, SV("12345"), 2, 0, S("abcdehij"));
- test(S("abcdefghij"), 5, 2, SV("12345"), 2, 1, S("abcde3hij"));
- test(S("abcdefghij"), 5, 2, SV("12345"), 2, 2, S("abcde34hij"));
- test(S("abcdefghij"), 5, 2, SV("12345"), 2, 3, S("abcde345hij"));
- test(S("abcdefghij"), 5, 2, SV("12345"), 2, 4, S("abcde345hij"));
- test(S("abcdefghij"), 5, 2, SV("12345"), 4, 0, S("abcdehij"));
- test(S("abcdefghij"), 5, 2, SV("12345"), 4, 1, S("abcde5hij"));
- test(S("abcdefghij"), 5, 2, SV("12345"), 4, 2, S("abcde5hij"));
- test(S("abcdefghij"), 5, 2, SV("12345"), 5, 0, S("abcdehij"));
- test(S("abcdefghij"), 5, 2, SV("12345"), 5, 1, S("abcdehij"));
- test(S("abcdefghij"), 5, 2, SV("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghij"), 5, 2, SV("1234567890"), 0, 0, S("abcdehij"));
- test(S("abcdefghij"), 5, 2, SV("1234567890"), 0, 1, S("abcde1hij"));
- test(S("abcdefghij"), 5, 2, SV("1234567890"), 0, 5, S("abcde12345hij"));
- test(S("abcdefghij"), 5, 2, SV("1234567890"), 0, 9, S("abcde123456789hij"));
- test(S("abcdefghij"), 5, 2, SV("1234567890"), 0, 10, S("abcde1234567890hij"));
- test(S("abcdefghij"), 5, 2, SV("1234567890"), 0, 11, S("abcde1234567890hij"));
- test(S("abcdefghij"), 5, 2, SV("1234567890"), 1, 0, S("abcdehij"));
- test(S("abcdefghij"), 5, 2, SV("1234567890"), 1, 1, S("abcde2hij"));
- test(S("abcdefghij"), 5, 2, SV("1234567890"), 1, 4, S("abcde2345hij"));
- test(S("abcdefghij"), 5, 2, SV("1234567890"), 1, 8, S("abcde23456789hij"));
- test(S("abcdefghij"), 5, 2, SV("1234567890"), 1, 9, S("abcde234567890hij"));
- test(S("abcdefghij"), 5, 2, SV("1234567890"), 1, 10, S("abcde234567890hij"));
- test(S("abcdefghij"), 5, 2, SV("1234567890"), 5, 0, S("abcdehij"));
- test(S("abcdefghij"), 5, 2, SV("1234567890"), 5, 1, S("abcde6hij"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test29() {
+ test(S("abcdefghij"), 5, 1, SV("12345"), 1, 5, S("abcde2345ghij"));
+ test(S("abcdefghij"), 5, 1, SV("12345"), 2, 0, S("abcdeghij"));
+ test(S("abcdefghij"), 5, 1, SV("12345"), 2, 1, S("abcde3ghij"));
+ test(S("abcdefghij"), 5, 1, SV("12345"), 2, 2, S("abcde34ghij"));
+ test(S("abcdefghij"), 5, 1, SV("12345"), 2, 3, S("abcde345ghij"));
+ test(S("abcdefghij"), 5, 1, SV("12345"), 2, 4, S("abcde345ghij"));
+ test(S("abcdefghij"), 5, 1, SV("12345"), 4, 0, S("abcdeghij"));
+ test(S("abcdefghij"), 5, 1, SV("12345"), 4, 1, S("abcde5ghij"));
+ test(S("abcdefghij"), 5, 1, SV("12345"), 4, 2, S("abcde5ghij"));
+ test(S("abcdefghij"), 5, 1, SV("12345"), 5, 0, S("abcdeghij"));
+ test(S("abcdefghij"), 5, 1, SV("12345"), 5, 1, S("abcdeghij"));
+ test(S("abcdefghij"), 5, 1, SV("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghij"), 5, 1, SV("1234567890"), 0, 0, S("abcdeghij"));
+ test(S("abcdefghij"), 5, 1, SV("1234567890"), 0, 1, S("abcde1ghij"));
+ test(S("abcdefghij"), 5, 1, SV("1234567890"), 0, 5, S("abcde12345ghij"));
+ test(S("abcdefghij"), 5, 1, SV("1234567890"), 0, 9, S("abcde123456789ghij"));
+ test(S("abcdefghij"), 5, 1, SV("1234567890"), 0, 10, S("abcde1234567890ghij"));
+ test(S("abcdefghij"), 5, 1, SV("1234567890"), 0, 11, S("abcde1234567890ghij"));
+ test(S("abcdefghij"), 5, 1, SV("1234567890"), 1, 0, S("abcdeghij"));
+ test(S("abcdefghij"), 5, 1, SV("1234567890"), 1, 1, S("abcde2ghij"));
+ test(S("abcdefghij"), 5, 1, SV("1234567890"), 1, 4, S("abcde2345ghij"));
+ test(S("abcdefghij"), 5, 1, SV("1234567890"), 1, 8, S("abcde23456789ghij"));
+ test(S("abcdefghij"), 5, 1, SV("1234567890"), 1, 9, S("abcde234567890ghij"));
+ test(S("abcdefghij"), 5, 1, SV("1234567890"), 1, 10, S("abcde234567890ghij"));
+ test(S("abcdefghij"), 5, 1, SV("1234567890"), 5, 0, S("abcdeghij"));
+ test(S("abcdefghij"), 5, 1, SV("1234567890"), 5, 1, S("abcde6ghij"));
+ test(S("abcdefghij"), 5, 1, SV("1234567890"), 5, 2, S("abcde67ghij"));
+ test(S("abcdefghij"), 5, 1, SV("1234567890"), 5, 4, S("abcde6789ghij"));
+ test(S("abcdefghij"), 5, 1, SV("1234567890"), 5, 5, S("abcde67890ghij"));
+ test(S("abcdefghij"), 5, 1, SV("1234567890"), 5, 6, S("abcde67890ghij"));
+ test(S("abcdefghij"), 5, 1, SV("1234567890"), 9, 0, S("abcdeghij"));
+ test(S("abcdefghij"), 5, 1, SV("1234567890"), 9, 1, S("abcde0ghij"));
+ test(S("abcdefghij"), 5, 1, SV("1234567890"), 9, 2, S("abcde0ghij"));
+ test(S("abcdefghij"), 5, 1, SV("1234567890"), 10, 0, S("abcdeghij"));
+ test(S("abcdefghij"), 5, 1, SV("1234567890"), 10, 1, S("abcdeghij"));
+ test(S("abcdefghij"), 5, 1, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghij"), 5, 1, SV("12345678901234567890"), 0, 0, S("abcdeghij"));
+ test(S("abcdefghij"), 5, 1, SV("12345678901234567890"), 0, 1, S("abcde1ghij"));
+ test(S("abcdefghij"), 5, 1, SV("12345678901234567890"), 0, 10, S("abcde1234567890ghij"));
+ test(S("abcdefghij"), 5, 1, SV("12345678901234567890"), 0, 19, S("abcde1234567890123456789ghij"));
+ test(S("abcdefghij"), 5, 1, SV("12345678901234567890"), 0, 20, S("abcde12345678901234567890ghij"));
+ test(S("abcdefghij"), 5, 1, SV("12345678901234567890"), 0, 21, S("abcde12345678901234567890ghij"));
+ test(S("abcdefghij"), 5, 1, SV("12345678901234567890"), 1, 0, S("abcdeghij"));
+ test(S("abcdefghij"), 5, 1, SV("12345678901234567890"), 1, 1, S("abcde2ghij"));
+ test(S("abcdefghij"), 5, 1, SV("12345678901234567890"), 1, 9, S("abcde234567890ghij"));
+ test(S("abcdefghij"), 5, 1, SV("12345678901234567890"), 1, 18, S("abcde234567890123456789ghij"));
+ test(S("abcdefghij"), 5, 1, SV("12345678901234567890"), 1, 19, S("abcde2345678901234567890ghij"));
+ test(S("abcdefghij"), 5, 1, SV("12345678901234567890"), 1, 20, S("abcde2345678901234567890ghij"));
+ test(S("abcdefghij"), 5, 1, SV("12345678901234567890"), 10, 0, S("abcdeghij"));
+ test(S("abcdefghij"), 5, 1, SV("12345678901234567890"), 10, 1, S("abcde1ghij"));
+ test(S("abcdefghij"), 5, 1, SV("12345678901234567890"), 10, 5, S("abcde12345ghij"));
+ test(S("abcdefghij"), 5, 1, SV("12345678901234567890"), 10, 9, S("abcde123456789ghij"));
+ test(S("abcdefghij"), 5, 1, SV("12345678901234567890"), 10, 10, S("abcde1234567890ghij"));
+ test(S("abcdefghij"), 5, 1, SV("12345678901234567890"), 10, 11, S("abcde1234567890ghij"));
+ test(S("abcdefghij"), 5, 1, SV("12345678901234567890"), 19, 0, S("abcdeghij"));
+ test(S("abcdefghij"), 5, 1, SV("12345678901234567890"), 19, 1, S("abcde0ghij"));
+ test(S("abcdefghij"), 5, 1, SV("12345678901234567890"), 19, 2, S("abcde0ghij"));
+ test(S("abcdefghij"), 5, 1, SV("12345678901234567890"), 20, 0, S("abcdeghij"));
+ test(S("abcdefghij"), 5, 1, SV("12345678901234567890"), 20, 1, S("abcdeghij"));
+ test(S("abcdefghij"), 5, 1, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghij"), 5, 2, SV(""), 0, 0, S("abcdehij"));
+ test(S("abcdefghij"), 5, 2, SV(""), 0, 1, S("abcdehij"));
+ test(S("abcdefghij"), 5, 2, SV(""), 1, 0, S("can't happen"));
+ test(S("abcdefghij"), 5, 2, SV("12345"), 0, 0, S("abcdehij"));
+ test(S("abcdefghij"), 5, 2, SV("12345"), 0, 1, S("abcde1hij"));
+ test(S("abcdefghij"), 5, 2, SV("12345"), 0, 2, S("abcde12hij"));
+ test(S("abcdefghij"), 5, 2, SV("12345"), 0, 4, S("abcde1234hij"));
+ test(S("abcdefghij"), 5, 2, SV("12345"), 0, 5, S("abcde12345hij"));
+ test(S("abcdefghij"), 5, 2, SV("12345"), 0, 6, S("abcde12345hij"));
+ test(S("abcdefghij"), 5, 2, SV("12345"), 1, 0, S("abcdehij"));
+ test(S("abcdefghij"), 5, 2, SV("12345"), 1, 1, S("abcde2hij"));
+ test(S("abcdefghij"), 5, 2, SV("12345"), 1, 2, S("abcde23hij"));
+ test(S("abcdefghij"), 5, 2, SV("12345"), 1, 3, S("abcde234hij"));
+ test(S("abcdefghij"), 5, 2, SV("12345"), 1, 4, S("abcde2345hij"));
+ test(S("abcdefghij"), 5, 2, SV("12345"), 1, 5, S("abcde2345hij"));
+ test(S("abcdefghij"), 5, 2, SV("12345"), 2, 0, S("abcdehij"));
+ test(S("abcdefghij"), 5, 2, SV("12345"), 2, 1, S("abcde3hij"));
+ test(S("abcdefghij"), 5, 2, SV("12345"), 2, 2, S("abcde34hij"));
+ test(S("abcdefghij"), 5, 2, SV("12345"), 2, 3, S("abcde345hij"));
+ test(S("abcdefghij"), 5, 2, SV("12345"), 2, 4, S("abcde345hij"));
+ test(S("abcdefghij"), 5, 2, SV("12345"), 4, 0, S("abcdehij"));
+ test(S("abcdefghij"), 5, 2, SV("12345"), 4, 1, S("abcde5hij"));
+ test(S("abcdefghij"), 5, 2, SV("12345"), 4, 2, S("abcde5hij"));
+ test(S("abcdefghij"), 5, 2, SV("12345"), 5, 0, S("abcdehij"));
+ test(S("abcdefghij"), 5, 2, SV("12345"), 5, 1, S("abcdehij"));
+ test(S("abcdefghij"), 5, 2, SV("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghij"), 5, 2, SV("1234567890"), 0, 0, S("abcdehij"));
+ test(S("abcdefghij"), 5, 2, SV("1234567890"), 0, 1, S("abcde1hij"));
+ test(S("abcdefghij"), 5, 2, SV("1234567890"), 0, 5, S("abcde12345hij"));
+ test(S("abcdefghij"), 5, 2, SV("1234567890"), 0, 9, S("abcde123456789hij"));
+ test(S("abcdefghij"), 5, 2, SV("1234567890"), 0, 10, S("abcde1234567890hij"));
+ test(S("abcdefghij"), 5, 2, SV("1234567890"), 0, 11, S("abcde1234567890hij"));
+ test(S("abcdefghij"), 5, 2, SV("1234567890"), 1, 0, S("abcdehij"));
+ test(S("abcdefghij"), 5, 2, SV("1234567890"), 1, 1, S("abcde2hij"));
+ test(S("abcdefghij"), 5, 2, SV("1234567890"), 1, 4, S("abcde2345hij"));
+ test(S("abcdefghij"), 5, 2, SV("1234567890"), 1, 8, S("abcde23456789hij"));
+ test(S("abcdefghij"), 5, 2, SV("1234567890"), 1, 9, S("abcde234567890hij"));
+ test(S("abcdefghij"), 5, 2, SV("1234567890"), 1, 10, S("abcde234567890hij"));
+ test(S("abcdefghij"), 5, 2, SV("1234567890"), 5, 0, S("abcdehij"));
+ test(S("abcdefghij"), 5, 2, SV("1234567890"), 5, 1, S("abcde6hij"));
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test30()
-{
- test(S("abcdefghij"), 5, 2, SV("1234567890"), 5, 2, S("abcde67hij"));
- test(S("abcdefghij"), 5, 2, SV("1234567890"), 5, 4, S("abcde6789hij"));
- test(S("abcdefghij"), 5, 2, SV("1234567890"), 5, 5, S("abcde67890hij"));
- test(S("abcdefghij"), 5, 2, SV("1234567890"), 5, 6, S("abcde67890hij"));
- test(S("abcdefghij"), 5, 2, SV("1234567890"), 9, 0, S("abcdehij"));
- test(S("abcdefghij"), 5, 2, SV("1234567890"), 9, 1, S("abcde0hij"));
- test(S("abcdefghij"), 5, 2, SV("1234567890"), 9, 2, S("abcde0hij"));
- test(S("abcdefghij"), 5, 2, SV("1234567890"), 10, 0, S("abcdehij"));
- test(S("abcdefghij"), 5, 2, SV("1234567890"), 10, 1, S("abcdehij"));
- test(S("abcdefghij"), 5, 2, SV("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghij"), 5, 2, SV("12345678901234567890"), 0, 0, S("abcdehij"));
- test(S("abcdefghij"), 5, 2, SV("12345678901234567890"), 0, 1, S("abcde1hij"));
- test(S("abcdefghij"), 5, 2, SV("12345678901234567890"), 0, 10, S("abcde1234567890hij"));
- test(S("abcdefghij"), 5, 2, SV("12345678901234567890"), 0, 19, S("abcde1234567890123456789hij"));
- test(S("abcdefghij"), 5, 2, SV("12345678901234567890"), 0, 20, S("abcde12345678901234567890hij"));
- test(S("abcdefghij"), 5, 2, SV("12345678901234567890"), 0, 21, S("abcde12345678901234567890hij"));
- test(S("abcdefghij"), 5, 2, SV("12345678901234567890"), 1, 0, S("abcdehij"));
- test(S("abcdefghij"), 5, 2, SV("12345678901234567890"), 1, 1, S("abcde2hij"));
- test(S("abcdefghij"), 5, 2, SV("12345678901234567890"), 1, 9, S("abcde234567890hij"));
- test(S("abcdefghij"), 5, 2, SV("12345678901234567890"), 1, 18, S("abcde234567890123456789hij"));
- test(S("abcdefghij"), 5, 2, SV("12345678901234567890"), 1, 19, S("abcde2345678901234567890hij"));
- test(S("abcdefghij"), 5, 2, SV("12345678901234567890"), 1, 20, S("abcde2345678901234567890hij"));
- test(S("abcdefghij"), 5, 2, SV("12345678901234567890"), 10, 0, S("abcdehij"));
- test(S("abcdefghij"), 5, 2, SV("12345678901234567890"), 10, 1, S("abcde1hij"));
- test(S("abcdefghij"), 5, 2, SV("12345678901234567890"), 10, 5, S("abcde12345hij"));
- test(S("abcdefghij"), 5, 2, SV("12345678901234567890"), 10, 9, S("abcde123456789hij"));
- test(S("abcdefghij"), 5, 2, SV("12345678901234567890"), 10, 10, S("abcde1234567890hij"));
- test(S("abcdefghij"), 5, 2, SV("12345678901234567890"), 10, 11, S("abcde1234567890hij"));
- test(S("abcdefghij"), 5, 2, SV("12345678901234567890"), 19, 0, S("abcdehij"));
- test(S("abcdefghij"), 5, 2, SV("12345678901234567890"), 19, 1, S("abcde0hij"));
- test(S("abcdefghij"), 5, 2, SV("12345678901234567890"), 19, 2, S("abcde0hij"));
- test(S("abcdefghij"), 5, 2, SV("12345678901234567890"), 20, 0, S("abcdehij"));
- test(S("abcdefghij"), 5, 2, SV("12345678901234567890"), 20, 1, S("abcdehij"));
- test(S("abcdefghij"), 5, 2, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghij"), 5, 4, SV(""), 0, 0, S("abcdej"));
- test(S("abcdefghij"), 5, 4, SV(""), 0, 1, S("abcdej"));
- test(S("abcdefghij"), 5, 4, SV(""), 1, 0, S("can't happen"));
- test(S("abcdefghij"), 5, 4, SV("12345"), 0, 0, S("abcdej"));
- test(S("abcdefghij"), 5, 4, SV("12345"), 0, 1, S("abcde1j"));
- test(S("abcdefghij"), 5, 4, SV("12345"), 0, 2, S("abcde12j"));
- test(S("abcdefghij"), 5, 4, SV("12345"), 0, 4, S("abcde1234j"));
- test(S("abcdefghij"), 5, 4, SV("12345"), 0, 5, S("abcde12345j"));
- test(S("abcdefghij"), 5, 4, SV("12345"), 0, 6, S("abcde12345j"));
- test(S("abcdefghij"), 5, 4, SV("12345"), 1, 0, S("abcdej"));
- test(S("abcdefghij"), 5, 4, SV("12345"), 1, 1, S("abcde2j"));
- test(S("abcdefghij"), 5, 4, SV("12345"), 1, 2, S("abcde23j"));
- test(S("abcdefghij"), 5, 4, SV("12345"), 1, 3, S("abcde234j"));
- test(S("abcdefghij"), 5, 4, SV("12345"), 1, 4, S("abcde2345j"));
- test(S("abcdefghij"), 5, 4, SV("12345"), 1, 5, S("abcde2345j"));
- test(S("abcdefghij"), 5, 4, SV("12345"), 2, 0, S("abcdej"));
- test(S("abcdefghij"), 5, 4, SV("12345"), 2, 1, S("abcde3j"));
- test(S("abcdefghij"), 5, 4, SV("12345"), 2, 2, S("abcde34j"));
- test(S("abcdefghij"), 5, 4, SV("12345"), 2, 3, S("abcde345j"));
- test(S("abcdefghij"), 5, 4, SV("12345"), 2, 4, S("abcde345j"));
- test(S("abcdefghij"), 5, 4, SV("12345"), 4, 0, S("abcdej"));
- test(S("abcdefghij"), 5, 4, SV("12345"), 4, 1, S("abcde5j"));
- test(S("abcdefghij"), 5, 4, SV("12345"), 4, 2, S("abcde5j"));
- test(S("abcdefghij"), 5, 4, SV("12345"), 5, 0, S("abcdej"));
- test(S("abcdefghij"), 5, 4, SV("12345"), 5, 1, S("abcdej"));
- test(S("abcdefghij"), 5, 4, SV("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghij"), 5, 4, SV("1234567890"), 0, 0, S("abcdej"));
- test(S("abcdefghij"), 5, 4, SV("1234567890"), 0, 1, S("abcde1j"));
- test(S("abcdefghij"), 5, 4, SV("1234567890"), 0, 5, S("abcde12345j"));
- test(S("abcdefghij"), 5, 4, SV("1234567890"), 0, 9, S("abcde123456789j"));
- test(S("abcdefghij"), 5, 4, SV("1234567890"), 0, 10, S("abcde1234567890j"));
- test(S("abcdefghij"), 5, 4, SV("1234567890"), 0, 11, S("abcde1234567890j"));
- test(S("abcdefghij"), 5, 4, SV("1234567890"), 1, 0, S("abcdej"));
- test(S("abcdefghij"), 5, 4, SV("1234567890"), 1, 1, S("abcde2j"));
- test(S("abcdefghij"), 5, 4, SV("1234567890"), 1, 4, S("abcde2345j"));
- test(S("abcdefghij"), 5, 4, SV("1234567890"), 1, 8, S("abcde23456789j"));
- test(S("abcdefghij"), 5, 4, SV("1234567890"), 1, 9, S("abcde234567890j"));
- test(S("abcdefghij"), 5, 4, SV("1234567890"), 1, 10, S("abcde234567890j"));
- test(S("abcdefghij"), 5, 4, SV("1234567890"), 5, 0, S("abcdej"));
- test(S("abcdefghij"), 5, 4, SV("1234567890"), 5, 1, S("abcde6j"));
- test(S("abcdefghij"), 5, 4, SV("1234567890"), 5, 2, S("abcde67j"));
- test(S("abcdefghij"), 5, 4, SV("1234567890"), 5, 4, S("abcde6789j"));
- test(S("abcdefghij"), 5, 4, SV("1234567890"), 5, 5, S("abcde67890j"));
- test(S("abcdefghij"), 5, 4, SV("1234567890"), 5, 6, S("abcde67890j"));
- test(S("abcdefghij"), 5, 4, SV("1234567890"), 9, 0, S("abcdej"));
- test(S("abcdefghij"), 5, 4, SV("1234567890"), 9, 1, S("abcde0j"));
- test(S("abcdefghij"), 5, 4, SV("1234567890"), 9, 2, S("abcde0j"));
- test(S("abcdefghij"), 5, 4, SV("1234567890"), 10, 0, S("abcdej"));
- test(S("abcdefghij"), 5, 4, SV("1234567890"), 10, 1, S("abcdej"));
- test(S("abcdefghij"), 5, 4, SV("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghij"), 5, 4, SV("12345678901234567890"), 0, 0, S("abcdej"));
- test(S("abcdefghij"), 5, 4, SV("12345678901234567890"), 0, 1, S("abcde1j"));
- test(S("abcdefghij"), 5, 4, SV("12345678901234567890"), 0, 10, S("abcde1234567890j"));
- test(S("abcdefghij"), 5, 4, SV("12345678901234567890"), 0, 19, S("abcde1234567890123456789j"));
- test(S("abcdefghij"), 5, 4, SV("12345678901234567890"), 0, 20, S("abcde12345678901234567890j"));
- test(S("abcdefghij"), 5, 4, SV("12345678901234567890"), 0, 21, S("abcde12345678901234567890j"));
- test(S("abcdefghij"), 5, 4, SV("12345678901234567890"), 1, 0, S("abcdej"));
- test(S("abcdefghij"), 5, 4, SV("12345678901234567890"), 1, 1, S("abcde2j"));
- test(S("abcdefghij"), 5, 4, SV("12345678901234567890"), 1, 9, S("abcde234567890j"));
- test(S("abcdefghij"), 5, 4, SV("12345678901234567890"), 1, 18, S("abcde234567890123456789j"));
- test(S("abcdefghij"), 5, 4, SV("12345678901234567890"), 1, 19, S("abcde2345678901234567890j"));
- test(S("abcdefghij"), 5, 4, SV("12345678901234567890"), 1, 20, S("abcde2345678901234567890j"));
- test(S("abcdefghij"), 5, 4, SV("12345678901234567890"), 10, 0, S("abcdej"));
- test(S("abcdefghij"), 5, 4, SV("12345678901234567890"), 10, 1, S("abcde1j"));
- test(S("abcdefghij"), 5, 4, SV("12345678901234567890"), 10, 5, S("abcde12345j"));
- test(S("abcdefghij"), 5, 4, SV("12345678901234567890"), 10, 9, S("abcde123456789j"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test30() {
+ test(S("abcdefghij"), 5, 2, SV("1234567890"), 5, 2, S("abcde67hij"));
+ test(S("abcdefghij"), 5, 2, SV("1234567890"), 5, 4, S("abcde6789hij"));
+ test(S("abcdefghij"), 5, 2, SV("1234567890"), 5, 5, S("abcde67890hij"));
+ test(S("abcdefghij"), 5, 2, SV("1234567890"), 5, 6, S("abcde67890hij"));
+ test(S("abcdefghij"), 5, 2, SV("1234567890"), 9, 0, S("abcdehij"));
+ test(S("abcdefghij"), 5, 2, SV("1234567890"), 9, 1, S("abcde0hij"));
+ test(S("abcdefghij"), 5, 2, SV("1234567890"), 9, 2, S("abcde0hij"));
+ test(S("abcdefghij"), 5, 2, SV("1234567890"), 10, 0, S("abcdehij"));
+ test(S("abcdefghij"), 5, 2, SV("1234567890"), 10, 1, S("abcdehij"));
+ test(S("abcdefghij"), 5, 2, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghij"), 5, 2, SV("12345678901234567890"), 0, 0, S("abcdehij"));
+ test(S("abcdefghij"), 5, 2, SV("12345678901234567890"), 0, 1, S("abcde1hij"));
+ test(S("abcdefghij"), 5, 2, SV("12345678901234567890"), 0, 10, S("abcde1234567890hij"));
+ test(S("abcdefghij"), 5, 2, SV("12345678901234567890"), 0, 19, S("abcde1234567890123456789hij"));
+ test(S("abcdefghij"), 5, 2, SV("12345678901234567890"), 0, 20, S("abcde12345678901234567890hij"));
+ test(S("abcdefghij"), 5, 2, SV("12345678901234567890"), 0, 21, S("abcde12345678901234567890hij"));
+ test(S("abcdefghij"), 5, 2, SV("12345678901234567890"), 1, 0, S("abcdehij"));
+ test(S("abcdefghij"), 5, 2, SV("12345678901234567890"), 1, 1, S("abcde2hij"));
+ test(S("abcdefghij"), 5, 2, SV("12345678901234567890"), 1, 9, S("abcde234567890hij"));
+ test(S("abcdefghij"), 5, 2, SV("12345678901234567890"), 1, 18, S("abcde234567890123456789hij"));
+ test(S("abcdefghij"), 5, 2, SV("12345678901234567890"), 1, 19, S("abcde2345678901234567890hij"));
+ test(S("abcdefghij"), 5, 2, SV("12345678901234567890"), 1, 20, S("abcde2345678901234567890hij"));
+ test(S("abcdefghij"), 5, 2, SV("12345678901234567890"), 10, 0, S("abcdehij"));
+ test(S("abcdefghij"), 5, 2, SV("12345678901234567890"), 10, 1, S("abcde1hij"));
+ test(S("abcdefghij"), 5, 2, SV("12345678901234567890"), 10, 5, S("abcde12345hij"));
+ test(S("abcdefghij"), 5, 2, SV("12345678901234567890"), 10, 9, S("abcde123456789hij"));
+ test(S("abcdefghij"), 5, 2, SV("12345678901234567890"), 10, 10, S("abcde1234567890hij"));
+ test(S("abcdefghij"), 5, 2, SV("12345678901234567890"), 10, 11, S("abcde1234567890hij"));
+ test(S("abcdefghij"), 5, 2, SV("12345678901234567890"), 19, 0, S("abcdehij"));
+ test(S("abcdefghij"), 5, 2, SV("12345678901234567890"), 19, 1, S("abcde0hij"));
+ test(S("abcdefghij"), 5, 2, SV("12345678901234567890"), 19, 2, S("abcde0hij"));
+ test(S("abcdefghij"), 5, 2, SV("12345678901234567890"), 20, 0, S("abcdehij"));
+ test(S("abcdefghij"), 5, 2, SV("12345678901234567890"), 20, 1, S("abcdehij"));
+ test(S("abcdefghij"), 5, 2, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghij"), 5, 4, SV(""), 0, 0, S("abcdej"));
+ test(S("abcdefghij"), 5, 4, SV(""), 0, 1, S("abcdej"));
+ test(S("abcdefghij"), 5, 4, SV(""), 1, 0, S("can't happen"));
+ test(S("abcdefghij"), 5, 4, SV("12345"), 0, 0, S("abcdej"));
+ test(S("abcdefghij"), 5, 4, SV("12345"), 0, 1, S("abcde1j"));
+ test(S("abcdefghij"), 5, 4, SV("12345"), 0, 2, S("abcde12j"));
+ test(S("abcdefghij"), 5, 4, SV("12345"), 0, 4, S("abcde1234j"));
+ test(S("abcdefghij"), 5, 4, SV("12345"), 0, 5, S("abcde12345j"));
+ test(S("abcdefghij"), 5, 4, SV("12345"), 0, 6, S("abcde12345j"));
+ test(S("abcdefghij"), 5, 4, SV("12345"), 1, 0, S("abcdej"));
+ test(S("abcdefghij"), 5, 4, SV("12345"), 1, 1, S("abcde2j"));
+ test(S("abcdefghij"), 5, 4, SV("12345"), 1, 2, S("abcde23j"));
+ test(S("abcdefghij"), 5, 4, SV("12345"), 1, 3, S("abcde234j"));
+ test(S("abcdefghij"), 5, 4, SV("12345"), 1, 4, S("abcde2345j"));
+ test(S("abcdefghij"), 5, 4, SV("12345"), 1, 5, S("abcde2345j"));
+ test(S("abcdefghij"), 5, 4, SV("12345"), 2, 0, S("abcdej"));
+ test(S("abcdefghij"), 5, 4, SV("12345"), 2, 1, S("abcde3j"));
+ test(S("abcdefghij"), 5, 4, SV("12345"), 2, 2, S("abcde34j"));
+ test(S("abcdefghij"), 5, 4, SV("12345"), 2, 3, S("abcde345j"));
+ test(S("abcdefghij"), 5, 4, SV("12345"), 2, 4, S("abcde345j"));
+ test(S("abcdefghij"), 5, 4, SV("12345"), 4, 0, S("abcdej"));
+ test(S("abcdefghij"), 5, 4, SV("12345"), 4, 1, S("abcde5j"));
+ test(S("abcdefghij"), 5, 4, SV("12345"), 4, 2, S("abcde5j"));
+ test(S("abcdefghij"), 5, 4, SV("12345"), 5, 0, S("abcdej"));
+ test(S("abcdefghij"), 5, 4, SV("12345"), 5, 1, S("abcdej"));
+ test(S("abcdefghij"), 5, 4, SV("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghij"), 5, 4, SV("1234567890"), 0, 0, S("abcdej"));
+ test(S("abcdefghij"), 5, 4, SV("1234567890"), 0, 1, S("abcde1j"));
+ test(S("abcdefghij"), 5, 4, SV("1234567890"), 0, 5, S("abcde12345j"));
+ test(S("abcdefghij"), 5, 4, SV("1234567890"), 0, 9, S("abcde123456789j"));
+ test(S("abcdefghij"), 5, 4, SV("1234567890"), 0, 10, S("abcde1234567890j"));
+ test(S("abcdefghij"), 5, 4, SV("1234567890"), 0, 11, S("abcde1234567890j"));
+ test(S("abcdefghij"), 5, 4, SV("1234567890"), 1, 0, S("abcdej"));
+ test(S("abcdefghij"), 5, 4, SV("1234567890"), 1, 1, S("abcde2j"));
+ test(S("abcdefghij"), 5, 4, SV("1234567890"), 1, 4, S("abcde2345j"));
+ test(S("abcdefghij"), 5, 4, SV("1234567890"), 1, 8, S("abcde23456789j"));
+ test(S("abcdefghij"), 5, 4, SV("1234567890"), 1, 9, S("abcde234567890j"));
+ test(S("abcdefghij"), 5, 4, SV("1234567890"), 1, 10, S("abcde234567890j"));
+ test(S("abcdefghij"), 5, 4, SV("1234567890"), 5, 0, S("abcdej"));
+ test(S("abcdefghij"), 5, 4, SV("1234567890"), 5, 1, S("abcde6j"));
+ test(S("abcdefghij"), 5, 4, SV("1234567890"), 5, 2, S("abcde67j"));
+ test(S("abcdefghij"), 5, 4, SV("1234567890"), 5, 4, S("abcde6789j"));
+ test(S("abcdefghij"), 5, 4, SV("1234567890"), 5, 5, S("abcde67890j"));
+ test(S("abcdefghij"), 5, 4, SV("1234567890"), 5, 6, S("abcde67890j"));
+ test(S("abcdefghij"), 5, 4, SV("1234567890"), 9, 0, S("abcdej"));
+ test(S("abcdefghij"), 5, 4, SV("1234567890"), 9, 1, S("abcde0j"));
+ test(S("abcdefghij"), 5, 4, SV("1234567890"), 9, 2, S("abcde0j"));
+ test(S("abcdefghij"), 5, 4, SV("1234567890"), 10, 0, S("abcdej"));
+ test(S("abcdefghij"), 5, 4, SV("1234567890"), 10, 1, S("abcdej"));
+ test(S("abcdefghij"), 5, 4, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghij"), 5, 4, SV("12345678901234567890"), 0, 0, S("abcdej"));
+ test(S("abcdefghij"), 5, 4, SV("12345678901234567890"), 0, 1, S("abcde1j"));
+ test(S("abcdefghij"), 5, 4, SV("12345678901234567890"), 0, 10, S("abcde1234567890j"));
+ test(S("abcdefghij"), 5, 4, SV("12345678901234567890"), 0, 19, S("abcde1234567890123456789j"));
+ test(S("abcdefghij"), 5, 4, SV("12345678901234567890"), 0, 20, S("abcde12345678901234567890j"));
+ test(S("abcdefghij"), 5, 4, SV("12345678901234567890"), 0, 21, S("abcde12345678901234567890j"));
+ test(S("abcdefghij"), 5, 4, SV("12345678901234567890"), 1, 0, S("abcdej"));
+ test(S("abcdefghij"), 5, 4, SV("12345678901234567890"), 1, 1, S("abcde2j"));
+ test(S("abcdefghij"), 5, 4, SV("12345678901234567890"), 1, 9, S("abcde234567890j"));
+ test(S("abcdefghij"), 5, 4, SV("12345678901234567890"), 1, 18, S("abcde234567890123456789j"));
+ test(S("abcdefghij"), 5, 4, SV("12345678901234567890"), 1, 19, S("abcde2345678901234567890j"));
+ test(S("abcdefghij"), 5, 4, SV("12345678901234567890"), 1, 20, S("abcde2345678901234567890j"));
+ test(S("abcdefghij"), 5, 4, SV("12345678901234567890"), 10, 0, S("abcdej"));
+ test(S("abcdefghij"), 5, 4, SV("12345678901234567890"), 10, 1, S("abcde1j"));
+ test(S("abcdefghij"), 5, 4, SV("12345678901234567890"), 10, 5, S("abcde12345j"));
+ test(S("abcdefghij"), 5, 4, SV("12345678901234567890"), 10, 9, S("abcde123456789j"));
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test31()
-{
- test(S("abcdefghij"), 5, 4, SV("12345678901234567890"), 10, 10, S("abcde1234567890j"));
- test(S("abcdefghij"), 5, 4, SV("12345678901234567890"), 10, 11, S("abcde1234567890j"));
- test(S("abcdefghij"), 5, 4, SV("12345678901234567890"), 19, 0, S("abcdej"));
- test(S("abcdefghij"), 5, 4, SV("12345678901234567890"), 19, 1, S("abcde0j"));
- test(S("abcdefghij"), 5, 4, SV("12345678901234567890"), 19, 2, S("abcde0j"));
- test(S("abcdefghij"), 5, 4, SV("12345678901234567890"), 20, 0, S("abcdej"));
- test(S("abcdefghij"), 5, 4, SV("12345678901234567890"), 20, 1, S("abcdej"));
- test(S("abcdefghij"), 5, 4, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghij"), 5, 5, SV(""), 0, 0, S("abcde"));
- test(S("abcdefghij"), 5, 5, SV(""), 0, 1, S("abcde"));
- test(S("abcdefghij"), 5, 5, SV(""), 1, 0, S("can't happen"));
- test(S("abcdefghij"), 5, 5, SV("12345"), 0, 0, S("abcde"));
- test(S("abcdefghij"), 5, 5, SV("12345"), 0, 1, S("abcde1"));
- test(S("abcdefghij"), 5, 5, SV("12345"), 0, 2, S("abcde12"));
- test(S("abcdefghij"), 5, 5, SV("12345"), 0, 4, S("abcde1234"));
- test(S("abcdefghij"), 5, 5, SV("12345"), 0, 5, S("abcde12345"));
- test(S("abcdefghij"), 5, 5, SV("12345"), 0, 6, S("abcde12345"));
- test(S("abcdefghij"), 5, 5, SV("12345"), 1, 0, S("abcde"));
- test(S("abcdefghij"), 5, 5, SV("12345"), 1, 1, S("abcde2"));
- test(S("abcdefghij"), 5, 5, SV("12345"), 1, 2, S("abcde23"));
- test(S("abcdefghij"), 5, 5, SV("12345"), 1, 3, S("abcde234"));
- test(S("abcdefghij"), 5, 5, SV("12345"), 1, 4, S("abcde2345"));
- test(S("abcdefghij"), 5, 5, SV("12345"), 1, 5, S("abcde2345"));
- test(S("abcdefghij"), 5, 5, SV("12345"), 2, 0, S("abcde"));
- test(S("abcdefghij"), 5, 5, SV("12345"), 2, 1, S("abcde3"));
- test(S("abcdefghij"), 5, 5, SV("12345"), 2, 2, S("abcde34"));
- test(S("abcdefghij"), 5, 5, SV("12345"), 2, 3, S("abcde345"));
- test(S("abcdefghij"), 5, 5, SV("12345"), 2, 4, S("abcde345"));
- test(S("abcdefghij"), 5, 5, SV("12345"), 4, 0, S("abcde"));
- test(S("abcdefghij"), 5, 5, SV("12345"), 4, 1, S("abcde5"));
- test(S("abcdefghij"), 5, 5, SV("12345"), 4, 2, S("abcde5"));
- test(S("abcdefghij"), 5, 5, SV("12345"), 5, 0, S("abcde"));
- test(S("abcdefghij"), 5, 5, SV("12345"), 5, 1, S("abcde"));
- test(S("abcdefghij"), 5, 5, SV("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghij"), 5, 5, SV("1234567890"), 0, 0, S("abcde"));
- test(S("abcdefghij"), 5, 5, SV("1234567890"), 0, 1, S("abcde1"));
- test(S("abcdefghij"), 5, 5, SV("1234567890"), 0, 5, S("abcde12345"));
- test(S("abcdefghij"), 5, 5, SV("1234567890"), 0, 9, S("abcde123456789"));
- test(S("abcdefghij"), 5, 5, SV("1234567890"), 0, 10, S("abcde1234567890"));
- test(S("abcdefghij"), 5, 5, SV("1234567890"), 0, 11, S("abcde1234567890"));
- test(S("abcdefghij"), 5, 5, SV("1234567890"), 1, 0, S("abcde"));
- test(S("abcdefghij"), 5, 5, SV("1234567890"), 1, 1, S("abcde2"));
- test(S("abcdefghij"), 5, 5, SV("1234567890"), 1, 4, S("abcde2345"));
- test(S("abcdefghij"), 5, 5, SV("1234567890"), 1, 8, S("abcde23456789"));
- test(S("abcdefghij"), 5, 5, SV("1234567890"), 1, 9, S("abcde234567890"));
- test(S("abcdefghij"), 5, 5, SV("1234567890"), 1, 10, S("abcde234567890"));
- test(S("abcdefghij"), 5, 5, SV("1234567890"), 5, 0, S("abcde"));
- test(S("abcdefghij"), 5, 5, SV("1234567890"), 5, 1, S("abcde6"));
- test(S("abcdefghij"), 5, 5, SV("1234567890"), 5, 2, S("abcde67"));
- test(S("abcdefghij"), 5, 5, SV("1234567890"), 5, 4, S("abcde6789"));
- test(S("abcdefghij"), 5, 5, SV("1234567890"), 5, 5, S("abcde67890"));
- test(S("abcdefghij"), 5, 5, SV("1234567890"), 5, 6, S("abcde67890"));
- test(S("abcdefghij"), 5, 5, SV("1234567890"), 9, 0, S("abcde"));
- test(S("abcdefghij"), 5, 5, SV("1234567890"), 9, 1, S("abcde0"));
- test(S("abcdefghij"), 5, 5, SV("1234567890"), 9, 2, S("abcde0"));
- test(S("abcdefghij"), 5, 5, SV("1234567890"), 10, 0, S("abcde"));
- test(S("abcdefghij"), 5, 5, SV("1234567890"), 10, 1, S("abcde"));
- test(S("abcdefghij"), 5, 5, SV("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghij"), 5, 5, SV("12345678901234567890"), 0, 0, S("abcde"));
- test(S("abcdefghij"), 5, 5, SV("12345678901234567890"), 0, 1, S("abcde1"));
- test(S("abcdefghij"), 5, 5, SV("12345678901234567890"), 0, 10, S("abcde1234567890"));
- test(S("abcdefghij"), 5, 5, SV("12345678901234567890"), 0, 19, S("abcde1234567890123456789"));
- test(S("abcdefghij"), 5, 5, SV("12345678901234567890"), 0, 20, S("abcde12345678901234567890"));
- test(S("abcdefghij"), 5, 5, SV("12345678901234567890"), 0, 21, S("abcde12345678901234567890"));
- test(S("abcdefghij"), 5, 5, SV("12345678901234567890"), 1, 0, S("abcde"));
- test(S("abcdefghij"), 5, 5, SV("12345678901234567890"), 1, 1, S("abcde2"));
- test(S("abcdefghij"), 5, 5, SV("12345678901234567890"), 1, 9, S("abcde234567890"));
- test(S("abcdefghij"), 5, 5, SV("12345678901234567890"), 1, 18, S("abcde234567890123456789"));
- test(S("abcdefghij"), 5, 5, SV("12345678901234567890"), 1, 19, S("abcde2345678901234567890"));
- test(S("abcdefghij"), 5, 5, SV("12345678901234567890"), 1, 20, S("abcde2345678901234567890"));
- test(S("abcdefghij"), 5, 5, SV("12345678901234567890"), 10, 0, S("abcde"));
- test(S("abcdefghij"), 5, 5, SV("12345678901234567890"), 10, 1, S("abcde1"));
- test(S("abcdefghij"), 5, 5, SV("12345678901234567890"), 10, 5, S("abcde12345"));
- test(S("abcdefghij"), 5, 5, SV("12345678901234567890"), 10, 9, S("abcde123456789"));
- test(S("abcdefghij"), 5, 5, SV("12345678901234567890"), 10, 10, S("abcde1234567890"));
- test(S("abcdefghij"), 5, 5, SV("12345678901234567890"), 10, 11, S("abcde1234567890"));
- test(S("abcdefghij"), 5, 5, SV("12345678901234567890"), 19, 0, S("abcde"));
- test(S("abcdefghij"), 5, 5, SV("12345678901234567890"), 19, 1, S("abcde0"));
- test(S("abcdefghij"), 5, 5, SV("12345678901234567890"), 19, 2, S("abcde0"));
- test(S("abcdefghij"), 5, 5, SV("12345678901234567890"), 20, 0, S("abcde"));
- test(S("abcdefghij"), 5, 5, SV("12345678901234567890"), 20, 1, S("abcde"));
- test(S("abcdefghij"), 5, 5, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghij"), 5, 6, SV(""), 0, 0, S("abcde"));
- test(S("abcdefghij"), 5, 6, SV(""), 0, 1, S("abcde"));
- test(S("abcdefghij"), 5, 6, SV(""), 1, 0, S("can't happen"));
- test(S("abcdefghij"), 5, 6, SV("12345"), 0, 0, S("abcde"));
- test(S("abcdefghij"), 5, 6, SV("12345"), 0, 1, S("abcde1"));
- test(S("abcdefghij"), 5, 6, SV("12345"), 0, 2, S("abcde12"));
- test(S("abcdefghij"), 5, 6, SV("12345"), 0, 4, S("abcde1234"));
- test(S("abcdefghij"), 5, 6, SV("12345"), 0, 5, S("abcde12345"));
- test(S("abcdefghij"), 5, 6, SV("12345"), 0, 6, S("abcde12345"));
- test(S("abcdefghij"), 5, 6, SV("12345"), 1, 0, S("abcde"));
- test(S("abcdefghij"), 5, 6, SV("12345"), 1, 1, S("abcde2"));
- test(S("abcdefghij"), 5, 6, SV("12345"), 1, 2, S("abcde23"));
- test(S("abcdefghij"), 5, 6, SV("12345"), 1, 3, S("abcde234"));
- test(S("abcdefghij"), 5, 6, SV("12345"), 1, 4, S("abcde2345"));
- test(S("abcdefghij"), 5, 6, SV("12345"), 1, 5, S("abcde2345"));
- test(S("abcdefghij"), 5, 6, SV("12345"), 2, 0, S("abcde"));
- test(S("abcdefghij"), 5, 6, SV("12345"), 2, 1, S("abcde3"));
- test(S("abcdefghij"), 5, 6, SV("12345"), 2, 2, S("abcde34"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test31() {
+ test(S("abcdefghij"), 5, 4, SV("12345678901234567890"), 10, 10, S("abcde1234567890j"));
+ test(S("abcdefghij"), 5, 4, SV("12345678901234567890"), 10, 11, S("abcde1234567890j"));
+ test(S("abcdefghij"), 5, 4, SV("12345678901234567890"), 19, 0, S("abcdej"));
+ test(S("abcdefghij"), 5, 4, SV("12345678901234567890"), 19, 1, S("abcde0j"));
+ test(S("abcdefghij"), 5, 4, SV("12345678901234567890"), 19, 2, S("abcde0j"));
+ test(S("abcdefghij"), 5, 4, SV("12345678901234567890"), 20, 0, S("abcdej"));
+ test(S("abcdefghij"), 5, 4, SV("12345678901234567890"), 20, 1, S("abcdej"));
+ test(S("abcdefghij"), 5, 4, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghij"), 5, 5, SV(""), 0, 0, S("abcde"));
+ test(S("abcdefghij"), 5, 5, SV(""), 0, 1, S("abcde"));
+ test(S("abcdefghij"), 5, 5, SV(""), 1, 0, S("can't happen"));
+ test(S("abcdefghij"), 5, 5, SV("12345"), 0, 0, S("abcde"));
+ test(S("abcdefghij"), 5, 5, SV("12345"), 0, 1, S("abcde1"));
+ test(S("abcdefghij"), 5, 5, SV("12345"), 0, 2, S("abcde12"));
+ test(S("abcdefghij"), 5, 5, SV("12345"), 0, 4, S("abcde1234"));
+ test(S("abcdefghij"), 5, 5, SV("12345"), 0, 5, S("abcde12345"));
+ test(S("abcdefghij"), 5, 5, SV("12345"), 0, 6, S("abcde12345"));
+ test(S("abcdefghij"), 5, 5, SV("12345"), 1, 0, S("abcde"));
+ test(S("abcdefghij"), 5, 5, SV("12345"), 1, 1, S("abcde2"));
+ test(S("abcdefghij"), 5, 5, SV("12345"), 1, 2, S("abcde23"));
+ test(S("abcdefghij"), 5, 5, SV("12345"), 1, 3, S("abcde234"));
+ test(S("abcdefghij"), 5, 5, SV("12345"), 1, 4, S("abcde2345"));
+ test(S("abcdefghij"), 5, 5, SV("12345"), 1, 5, S("abcde2345"));
+ test(S("abcdefghij"), 5, 5, SV("12345"), 2, 0, S("abcde"));
+ test(S("abcdefghij"), 5, 5, SV("12345"), 2, 1, S("abcde3"));
+ test(S("abcdefghij"), 5, 5, SV("12345"), 2, 2, S("abcde34"));
+ test(S("abcdefghij"), 5, 5, SV("12345"), 2, 3, S("abcde345"));
+ test(S("abcdefghij"), 5, 5, SV("12345"), 2, 4, S("abcde345"));
+ test(S("abcdefghij"), 5, 5, SV("12345"), 4, 0, S("abcde"));
+ test(S("abcdefghij"), 5, 5, SV("12345"), 4, 1, S("abcde5"));
+ test(S("abcdefghij"), 5, 5, SV("12345"), 4, 2, S("abcde5"));
+ test(S("abcdefghij"), 5, 5, SV("12345"), 5, 0, S("abcde"));
+ test(S("abcdefghij"), 5, 5, SV("12345"), 5, 1, S("abcde"));
+ test(S("abcdefghij"), 5, 5, SV("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghij"), 5, 5, SV("1234567890"), 0, 0, S("abcde"));
+ test(S("abcdefghij"), 5, 5, SV("1234567890"), 0, 1, S("abcde1"));
+ test(S("abcdefghij"), 5, 5, SV("1234567890"), 0, 5, S("abcde12345"));
+ test(S("abcdefghij"), 5, 5, SV("1234567890"), 0, 9, S("abcde123456789"));
+ test(S("abcdefghij"), 5, 5, SV("1234567890"), 0, 10, S("abcde1234567890"));
+ test(S("abcdefghij"), 5, 5, SV("1234567890"), 0, 11, S("abcde1234567890"));
+ test(S("abcdefghij"), 5, 5, SV("1234567890"), 1, 0, S("abcde"));
+ test(S("abcdefghij"), 5, 5, SV("1234567890"), 1, 1, S("abcde2"));
+ test(S("abcdefghij"), 5, 5, SV("1234567890"), 1, 4, S("abcde2345"));
+ test(S("abcdefghij"), 5, 5, SV("1234567890"), 1, 8, S("abcde23456789"));
+ test(S("abcdefghij"), 5, 5, SV("1234567890"), 1, 9, S("abcde234567890"));
+ test(S("abcdefghij"), 5, 5, SV("1234567890"), 1, 10, S("abcde234567890"));
+ test(S("abcdefghij"), 5, 5, SV("1234567890"), 5, 0, S("abcde"));
+ test(S("abcdefghij"), 5, 5, SV("1234567890"), 5, 1, S("abcde6"));
+ test(S("abcdefghij"), 5, 5, SV("1234567890"), 5, 2, S("abcde67"));
+ test(S("abcdefghij"), 5, 5, SV("1234567890"), 5, 4, S("abcde6789"));
+ test(S("abcdefghij"), 5, 5, SV("1234567890"), 5, 5, S("abcde67890"));
+ test(S("abcdefghij"), 5, 5, SV("1234567890"), 5, 6, S("abcde67890"));
+ test(S("abcdefghij"), 5, 5, SV("1234567890"), 9, 0, S("abcde"));
+ test(S("abcdefghij"), 5, 5, SV("1234567890"), 9, 1, S("abcde0"));
+ test(S("abcdefghij"), 5, 5, SV("1234567890"), 9, 2, S("abcde0"));
+ test(S("abcdefghij"), 5, 5, SV("1234567890"), 10, 0, S("abcde"));
+ test(S("abcdefghij"), 5, 5, SV("1234567890"), 10, 1, S("abcde"));
+ test(S("abcdefghij"), 5, 5, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghij"), 5, 5, SV("12345678901234567890"), 0, 0, S("abcde"));
+ test(S("abcdefghij"), 5, 5, SV("12345678901234567890"), 0, 1, S("abcde1"));
+ test(S("abcdefghij"), 5, 5, SV("12345678901234567890"), 0, 10, S("abcde1234567890"));
+ test(S("abcdefghij"), 5, 5, SV("12345678901234567890"), 0, 19, S("abcde1234567890123456789"));
+ test(S("abcdefghij"), 5, 5, SV("12345678901234567890"), 0, 20, S("abcde12345678901234567890"));
+ test(S("abcdefghij"), 5, 5, SV("12345678901234567890"), 0, 21, S("abcde12345678901234567890"));
+ test(S("abcdefghij"), 5, 5, SV("12345678901234567890"), 1, 0, S("abcde"));
+ test(S("abcdefghij"), 5, 5, SV("12345678901234567890"), 1, 1, S("abcde2"));
+ test(S("abcdefghij"), 5, 5, SV("12345678901234567890"), 1, 9, S("abcde234567890"));
+ test(S("abcdefghij"), 5, 5, SV("12345678901234567890"), 1, 18, S("abcde234567890123456789"));
+ test(S("abcdefghij"), 5, 5, SV("12345678901234567890"), 1, 19, S("abcde2345678901234567890"));
+ test(S("abcdefghij"), 5, 5, SV("12345678901234567890"), 1, 20, S("abcde2345678901234567890"));
+ test(S("abcdefghij"), 5, 5, SV("12345678901234567890"), 10, 0, S("abcde"));
+ test(S("abcdefghij"), 5, 5, SV("12345678901234567890"), 10, 1, S("abcde1"));
+ test(S("abcdefghij"), 5, 5, SV("12345678901234567890"), 10, 5, S("abcde12345"));
+ test(S("abcdefghij"), 5, 5, SV("12345678901234567890"), 10, 9, S("abcde123456789"));
+ test(S("abcdefghij"), 5, 5, SV("12345678901234567890"), 10, 10, S("abcde1234567890"));
+ test(S("abcdefghij"), 5, 5, SV("12345678901234567890"), 10, 11, S("abcde1234567890"));
+ test(S("abcdefghij"), 5, 5, SV("12345678901234567890"), 19, 0, S("abcde"));
+ test(S("abcdefghij"), 5, 5, SV("12345678901234567890"), 19, 1, S("abcde0"));
+ test(S("abcdefghij"), 5, 5, SV("12345678901234567890"), 19, 2, S("abcde0"));
+ test(S("abcdefghij"), 5, 5, SV("12345678901234567890"), 20, 0, S("abcde"));
+ test(S("abcdefghij"), 5, 5, SV("12345678901234567890"), 20, 1, S("abcde"));
+ test(S("abcdefghij"), 5, 5, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghij"), 5, 6, SV(""), 0, 0, S("abcde"));
+ test(S("abcdefghij"), 5, 6, SV(""), 0, 1, S("abcde"));
+ test(S("abcdefghij"), 5, 6, SV(""), 1, 0, S("can't happen"));
+ test(S("abcdefghij"), 5, 6, SV("12345"), 0, 0, S("abcde"));
+ test(S("abcdefghij"), 5, 6, SV("12345"), 0, 1, S("abcde1"));
+ test(S("abcdefghij"), 5, 6, SV("12345"), 0, 2, S("abcde12"));
+ test(S("abcdefghij"), 5, 6, SV("12345"), 0, 4, S("abcde1234"));
+ test(S("abcdefghij"), 5, 6, SV("12345"), 0, 5, S("abcde12345"));
+ test(S("abcdefghij"), 5, 6, SV("12345"), 0, 6, S("abcde12345"));
+ test(S("abcdefghij"), 5, 6, SV("12345"), 1, 0, S("abcde"));
+ test(S("abcdefghij"), 5, 6, SV("12345"), 1, 1, S("abcde2"));
+ test(S("abcdefghij"), 5, 6, SV("12345"), 1, 2, S("abcde23"));
+ test(S("abcdefghij"), 5, 6, SV("12345"), 1, 3, S("abcde234"));
+ test(S("abcdefghij"), 5, 6, SV("12345"), 1, 4, S("abcde2345"));
+ test(S("abcdefghij"), 5, 6, SV("12345"), 1, 5, S("abcde2345"));
+ test(S("abcdefghij"), 5, 6, SV("12345"), 2, 0, S("abcde"));
+ test(S("abcdefghij"), 5, 6, SV("12345"), 2, 1, S("abcde3"));
+ test(S("abcdefghij"), 5, 6, SV("12345"), 2, 2, S("abcde34"));
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test32()
-{
- test(S("abcdefghij"), 5, 6, SV("12345"), 2, 3, S("abcde345"));
- test(S("abcdefghij"), 5, 6, SV("12345"), 2, 4, S("abcde345"));
- test(S("abcdefghij"), 5, 6, SV("12345"), 4, 0, S("abcde"));
- test(S("abcdefghij"), 5, 6, SV("12345"), 4, 1, S("abcde5"));
- test(S("abcdefghij"), 5, 6, SV("12345"), 4, 2, S("abcde5"));
- test(S("abcdefghij"), 5, 6, SV("12345"), 5, 0, S("abcde"));
- test(S("abcdefghij"), 5, 6, SV("12345"), 5, 1, S("abcde"));
- test(S("abcdefghij"), 5, 6, SV("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghij"), 5, 6, SV("1234567890"), 0, 0, S("abcde"));
- test(S("abcdefghij"), 5, 6, SV("1234567890"), 0, 1, S("abcde1"));
- test(S("abcdefghij"), 5, 6, SV("1234567890"), 0, 5, S("abcde12345"));
- test(S("abcdefghij"), 5, 6, SV("1234567890"), 0, 9, S("abcde123456789"));
- test(S("abcdefghij"), 5, 6, SV("1234567890"), 0, 10, S("abcde1234567890"));
- test(S("abcdefghij"), 5, 6, SV("1234567890"), 0, 11, S("abcde1234567890"));
- test(S("abcdefghij"), 5, 6, SV("1234567890"), 1, 0, S("abcde"));
- test(S("abcdefghij"), 5, 6, SV("1234567890"), 1, 1, S("abcde2"));
- test(S("abcdefghij"), 5, 6, SV("1234567890"), 1, 4, S("abcde2345"));
- test(S("abcdefghij"), 5, 6, SV("1234567890"), 1, 8, S("abcde23456789"));
- test(S("abcdefghij"), 5, 6, SV("1234567890"), 1, 9, S("abcde234567890"));
- test(S("abcdefghij"), 5, 6, SV("1234567890"), 1, 10, S("abcde234567890"));
- test(S("abcdefghij"), 5, 6, SV("1234567890"), 5, 0, S("abcde"));
- test(S("abcdefghij"), 5, 6, SV("1234567890"), 5, 1, S("abcde6"));
- test(S("abcdefghij"), 5, 6, SV("1234567890"), 5, 2, S("abcde67"));
- test(S("abcdefghij"), 5, 6, SV("1234567890"), 5, 4, S("abcde6789"));
- test(S("abcdefghij"), 5, 6, SV("1234567890"), 5, 5, S("abcde67890"));
- test(S("abcdefghij"), 5, 6, SV("1234567890"), 5, 6, S("abcde67890"));
- test(S("abcdefghij"), 5, 6, SV("1234567890"), 9, 0, S("abcde"));
- test(S("abcdefghij"), 5, 6, SV("1234567890"), 9, 1, S("abcde0"));
- test(S("abcdefghij"), 5, 6, SV("1234567890"), 9, 2, S("abcde0"));
- test(S("abcdefghij"), 5, 6, SV("1234567890"), 10, 0, S("abcde"));
- test(S("abcdefghij"), 5, 6, SV("1234567890"), 10, 1, S("abcde"));
- test(S("abcdefghij"), 5, 6, SV("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghij"), 5, 6, SV("12345678901234567890"), 0, 0, S("abcde"));
- test(S("abcdefghij"), 5, 6, SV("12345678901234567890"), 0, 1, S("abcde1"));
- test(S("abcdefghij"), 5, 6, SV("12345678901234567890"), 0, 10, S("abcde1234567890"));
- test(S("abcdefghij"), 5, 6, SV("12345678901234567890"), 0, 19, S("abcde1234567890123456789"));
- test(S("abcdefghij"), 5, 6, SV("12345678901234567890"), 0, 20, S("abcde12345678901234567890"));
- test(S("abcdefghij"), 5, 6, SV("12345678901234567890"), 0, 21, S("abcde12345678901234567890"));
- test(S("abcdefghij"), 5, 6, SV("12345678901234567890"), 1, 0, S("abcde"));
- test(S("abcdefghij"), 5, 6, SV("12345678901234567890"), 1, 1, S("abcde2"));
- test(S("abcdefghij"), 5, 6, SV("12345678901234567890"), 1, 9, S("abcde234567890"));
- test(S("abcdefghij"), 5, 6, SV("12345678901234567890"), 1, 18, S("abcde234567890123456789"));
- test(S("abcdefghij"), 5, 6, SV("12345678901234567890"), 1, 19, S("abcde2345678901234567890"));
- test(S("abcdefghij"), 5, 6, SV("12345678901234567890"), 1, 20, S("abcde2345678901234567890"));
- test(S("abcdefghij"), 5, 6, SV("12345678901234567890"), 10, 0, S("abcde"));
- test(S("abcdefghij"), 5, 6, SV("12345678901234567890"), 10, 1, S("abcde1"));
- test(S("abcdefghij"), 5, 6, SV("12345678901234567890"), 10, 5, S("abcde12345"));
- test(S("abcdefghij"), 5, 6, SV("12345678901234567890"), 10, 9, S("abcde123456789"));
- test(S("abcdefghij"), 5, 6, SV("12345678901234567890"), 10, 10, S("abcde1234567890"));
- test(S("abcdefghij"), 5, 6, SV("12345678901234567890"), 10, 11, S("abcde1234567890"));
- test(S("abcdefghij"), 5, 6, SV("12345678901234567890"), 19, 0, S("abcde"));
- test(S("abcdefghij"), 5, 6, SV("12345678901234567890"), 19, 1, S("abcde0"));
- test(S("abcdefghij"), 5, 6, SV("12345678901234567890"), 19, 2, S("abcde0"));
- test(S("abcdefghij"), 5, 6, SV("12345678901234567890"), 20, 0, S("abcde"));
- test(S("abcdefghij"), 5, 6, SV("12345678901234567890"), 20, 1, S("abcde"));
- test(S("abcdefghij"), 5, 6, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghij"), 9, 0, SV(""), 0, 0, S("abcdefghij"));
- test(S("abcdefghij"), 9, 0, SV(""), 0, 1, S("abcdefghij"));
- test(S("abcdefghij"), 9, 0, SV(""), 1, 0, S("can't happen"));
- test(S("abcdefghij"), 9, 0, SV("12345"), 0, 0, S("abcdefghij"));
- test(S("abcdefghij"), 9, 0, SV("12345"), 0, 1, S("abcdefghi1j"));
- test(S("abcdefghij"), 9, 0, SV("12345"), 0, 2, S("abcdefghi12j"));
- test(S("abcdefghij"), 9, 0, SV("12345"), 0, 4, S("abcdefghi1234j"));
- test(S("abcdefghij"), 9, 0, SV("12345"), 0, 5, S("abcdefghi12345j"));
- test(S("abcdefghij"), 9, 0, SV("12345"), 0, 6, S("abcdefghi12345j"));
- test(S("abcdefghij"), 9, 0, SV("12345"), 1, 0, S("abcdefghij"));
- test(S("abcdefghij"), 9, 0, SV("12345"), 1, 1, S("abcdefghi2j"));
- test(S("abcdefghij"), 9, 0, SV("12345"), 1, 2, S("abcdefghi23j"));
- test(S("abcdefghij"), 9, 0, SV("12345"), 1, 3, S("abcdefghi234j"));
- test(S("abcdefghij"), 9, 0, SV("12345"), 1, 4, S("abcdefghi2345j"));
- test(S("abcdefghij"), 9, 0, SV("12345"), 1, 5, S("abcdefghi2345j"));
- test(S("abcdefghij"), 9, 0, SV("12345"), 2, 0, S("abcdefghij"));
- test(S("abcdefghij"), 9, 0, SV("12345"), 2, 1, S("abcdefghi3j"));
- test(S("abcdefghij"), 9, 0, SV("12345"), 2, 2, S("abcdefghi34j"));
- test(S("abcdefghij"), 9, 0, SV("12345"), 2, 3, S("abcdefghi345j"));
- test(S("abcdefghij"), 9, 0, SV("12345"), 2, 4, S("abcdefghi345j"));
- test(S("abcdefghij"), 9, 0, SV("12345"), 4, 0, S("abcdefghij"));
- test(S("abcdefghij"), 9, 0, SV("12345"), 4, 1, S("abcdefghi5j"));
- test(S("abcdefghij"), 9, 0, SV("12345"), 4, 2, S("abcdefghi5j"));
- test(S("abcdefghij"), 9, 0, SV("12345"), 5, 0, S("abcdefghij"));
- test(S("abcdefghij"), 9, 0, SV("12345"), 5, 1, S("abcdefghij"));
- test(S("abcdefghij"), 9, 0, SV("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghij"), 9, 0, SV("1234567890"), 0, 0, S("abcdefghij"));
- test(S("abcdefghij"), 9, 0, SV("1234567890"), 0, 1, S("abcdefghi1j"));
- test(S("abcdefghij"), 9, 0, SV("1234567890"), 0, 5, S("abcdefghi12345j"));
- test(S("abcdefghij"), 9, 0, SV("1234567890"), 0, 9, S("abcdefghi123456789j"));
- test(S("abcdefghij"), 9, 0, SV("1234567890"), 0, 10, S("abcdefghi1234567890j"));
- test(S("abcdefghij"), 9, 0, SV("1234567890"), 0, 11, S("abcdefghi1234567890j"));
- test(S("abcdefghij"), 9, 0, SV("1234567890"), 1, 0, S("abcdefghij"));
- test(S("abcdefghij"), 9, 0, SV("1234567890"), 1, 1, S("abcdefghi2j"));
- test(S("abcdefghij"), 9, 0, SV("1234567890"), 1, 4, S("abcdefghi2345j"));
- test(S("abcdefghij"), 9, 0, SV("1234567890"), 1, 8, S("abcdefghi23456789j"));
- test(S("abcdefghij"), 9, 0, SV("1234567890"), 1, 9, S("abcdefghi234567890j"));
- test(S("abcdefghij"), 9, 0, SV("1234567890"), 1, 10, S("abcdefghi234567890j"));
- test(S("abcdefghij"), 9, 0, SV("1234567890"), 5, 0, S("abcdefghij"));
- test(S("abcdefghij"), 9, 0, SV("1234567890"), 5, 1, S("abcdefghi6j"));
- test(S("abcdefghij"), 9, 0, SV("1234567890"), 5, 2, S("abcdefghi67j"));
- test(S("abcdefghij"), 9, 0, SV("1234567890"), 5, 4, S("abcdefghi6789j"));
- test(S("abcdefghij"), 9, 0, SV("1234567890"), 5, 5, S("abcdefghi67890j"));
- test(S("abcdefghij"), 9, 0, SV("1234567890"), 5, 6, S("abcdefghi67890j"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test32() {
+ test(S("abcdefghij"), 5, 6, SV("12345"), 2, 3, S("abcde345"));
+ test(S("abcdefghij"), 5, 6, SV("12345"), 2, 4, S("abcde345"));
+ test(S("abcdefghij"), 5, 6, SV("12345"), 4, 0, S("abcde"));
+ test(S("abcdefghij"), 5, 6, SV("12345"), 4, 1, S("abcde5"));
+ test(S("abcdefghij"), 5, 6, SV("12345"), 4, 2, S("abcde5"));
+ test(S("abcdefghij"), 5, 6, SV("12345"), 5, 0, S("abcde"));
+ test(S("abcdefghij"), 5, 6, SV("12345"), 5, 1, S("abcde"));
+ test(S("abcdefghij"), 5, 6, SV("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghij"), 5, 6, SV("1234567890"), 0, 0, S("abcde"));
+ test(S("abcdefghij"), 5, 6, SV("1234567890"), 0, 1, S("abcde1"));
+ test(S("abcdefghij"), 5, 6, SV("1234567890"), 0, 5, S("abcde12345"));
+ test(S("abcdefghij"), 5, 6, SV("1234567890"), 0, 9, S("abcde123456789"));
+ test(S("abcdefghij"), 5, 6, SV("1234567890"), 0, 10, S("abcde1234567890"));
+ test(S("abcdefghij"), 5, 6, SV("1234567890"), 0, 11, S("abcde1234567890"));
+ test(S("abcdefghij"), 5, 6, SV("1234567890"), 1, 0, S("abcde"));
+ test(S("abcdefghij"), 5, 6, SV("1234567890"), 1, 1, S("abcde2"));
+ test(S("abcdefghij"), 5, 6, SV("1234567890"), 1, 4, S("abcde2345"));
+ test(S("abcdefghij"), 5, 6, SV("1234567890"), 1, 8, S("abcde23456789"));
+ test(S("abcdefghij"), 5, 6, SV("1234567890"), 1, 9, S("abcde234567890"));
+ test(S("abcdefghij"), 5, 6, SV("1234567890"), 1, 10, S("abcde234567890"));
+ test(S("abcdefghij"), 5, 6, SV("1234567890"), 5, 0, S("abcde"));
+ test(S("abcdefghij"), 5, 6, SV("1234567890"), 5, 1, S("abcde6"));
+ test(S("abcdefghij"), 5, 6, SV("1234567890"), 5, 2, S("abcde67"));
+ test(S("abcdefghij"), 5, 6, SV("1234567890"), 5, 4, S("abcde6789"));
+ test(S("abcdefghij"), 5, 6, SV("1234567890"), 5, 5, S("abcde67890"));
+ test(S("abcdefghij"), 5, 6, SV("1234567890"), 5, 6, S("abcde67890"));
+ test(S("abcdefghij"), 5, 6, SV("1234567890"), 9, 0, S("abcde"));
+ test(S("abcdefghij"), 5, 6, SV("1234567890"), 9, 1, S("abcde0"));
+ test(S("abcdefghij"), 5, 6, SV("1234567890"), 9, 2, S("abcde0"));
+ test(S("abcdefghij"), 5, 6, SV("1234567890"), 10, 0, S("abcde"));
+ test(S("abcdefghij"), 5, 6, SV("1234567890"), 10, 1, S("abcde"));
+ test(S("abcdefghij"), 5, 6, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghij"), 5, 6, SV("12345678901234567890"), 0, 0, S("abcde"));
+ test(S("abcdefghij"), 5, 6, SV("12345678901234567890"), 0, 1, S("abcde1"));
+ test(S("abcdefghij"), 5, 6, SV("12345678901234567890"), 0, 10, S("abcde1234567890"));
+ test(S("abcdefghij"), 5, 6, SV("12345678901234567890"), 0, 19, S("abcde1234567890123456789"));
+ test(S("abcdefghij"), 5, 6, SV("12345678901234567890"), 0, 20, S("abcde12345678901234567890"));
+ test(S("abcdefghij"), 5, 6, SV("12345678901234567890"), 0, 21, S("abcde12345678901234567890"));
+ test(S("abcdefghij"), 5, 6, SV("12345678901234567890"), 1, 0, S("abcde"));
+ test(S("abcdefghij"), 5, 6, SV("12345678901234567890"), 1, 1, S("abcde2"));
+ test(S("abcdefghij"), 5, 6, SV("12345678901234567890"), 1, 9, S("abcde234567890"));
+ test(S("abcdefghij"), 5, 6, SV("12345678901234567890"), 1, 18, S("abcde234567890123456789"));
+ test(S("abcdefghij"), 5, 6, SV("12345678901234567890"), 1, 19, S("abcde2345678901234567890"));
+ test(S("abcdefghij"), 5, 6, SV("12345678901234567890"), 1, 20, S("abcde2345678901234567890"));
+ test(S("abcdefghij"), 5, 6, SV("12345678901234567890"), 10, 0, S("abcde"));
+ test(S("abcdefghij"), 5, 6, SV("12345678901234567890"), 10, 1, S("abcde1"));
+ test(S("abcdefghij"), 5, 6, SV("12345678901234567890"), 10, 5, S("abcde12345"));
+ test(S("abcdefghij"), 5, 6, SV("12345678901234567890"), 10, 9, S("abcde123456789"));
+ test(S("abcdefghij"), 5, 6, SV("12345678901234567890"), 10, 10, S("abcde1234567890"));
+ test(S("abcdefghij"), 5, 6, SV("12345678901234567890"), 10, 11, S("abcde1234567890"));
+ test(S("abcdefghij"), 5, 6, SV("12345678901234567890"), 19, 0, S("abcde"));
+ test(S("abcdefghij"), 5, 6, SV("12345678901234567890"), 19, 1, S("abcde0"));
+ test(S("abcdefghij"), 5, 6, SV("12345678901234567890"), 19, 2, S("abcde0"));
+ test(S("abcdefghij"), 5, 6, SV("12345678901234567890"), 20, 0, S("abcde"));
+ test(S("abcdefghij"), 5, 6, SV("12345678901234567890"), 20, 1, S("abcde"));
+ test(S("abcdefghij"), 5, 6, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghij"), 9, 0, SV(""), 0, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 9, 0, SV(""), 0, 1, S("abcdefghij"));
+ test(S("abcdefghij"), 9, 0, SV(""), 1, 0, S("can't happen"));
+ test(S("abcdefghij"), 9, 0, SV("12345"), 0, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 9, 0, SV("12345"), 0, 1, S("abcdefghi1j"));
+ test(S("abcdefghij"), 9, 0, SV("12345"), 0, 2, S("abcdefghi12j"));
+ test(S("abcdefghij"), 9, 0, SV("12345"), 0, 4, S("abcdefghi1234j"));
+ test(S("abcdefghij"), 9, 0, SV("12345"), 0, 5, S("abcdefghi12345j"));
+ test(S("abcdefghij"), 9, 0, SV("12345"), 0, 6, S("abcdefghi12345j"));
+ test(S("abcdefghij"), 9, 0, SV("12345"), 1, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 9, 0, SV("12345"), 1, 1, S("abcdefghi2j"));
+ test(S("abcdefghij"), 9, 0, SV("12345"), 1, 2, S("abcdefghi23j"));
+ test(S("abcdefghij"), 9, 0, SV("12345"), 1, 3, S("abcdefghi234j"));
+ test(S("abcdefghij"), 9, 0, SV("12345"), 1, 4, S("abcdefghi2345j"));
+ test(S("abcdefghij"), 9, 0, SV("12345"), 1, 5, S("abcdefghi2345j"));
+ test(S("abcdefghij"), 9, 0, SV("12345"), 2, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 9, 0, SV("12345"), 2, 1, S("abcdefghi3j"));
+ test(S("abcdefghij"), 9, 0, SV("12345"), 2, 2, S("abcdefghi34j"));
+ test(S("abcdefghij"), 9, 0, SV("12345"), 2, 3, S("abcdefghi345j"));
+ test(S("abcdefghij"), 9, 0, SV("12345"), 2, 4, S("abcdefghi345j"));
+ test(S("abcdefghij"), 9, 0, SV("12345"), 4, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 9, 0, SV("12345"), 4, 1, S("abcdefghi5j"));
+ test(S("abcdefghij"), 9, 0, SV("12345"), 4, 2, S("abcdefghi5j"));
+ test(S("abcdefghij"), 9, 0, SV("12345"), 5, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 9, 0, SV("12345"), 5, 1, S("abcdefghij"));
+ test(S("abcdefghij"), 9, 0, SV("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghij"), 9, 0, SV("1234567890"), 0, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 9, 0, SV("1234567890"), 0, 1, S("abcdefghi1j"));
+ test(S("abcdefghij"), 9, 0, SV("1234567890"), 0, 5, S("abcdefghi12345j"));
+ test(S("abcdefghij"), 9, 0, SV("1234567890"), 0, 9, S("abcdefghi123456789j"));
+ test(S("abcdefghij"), 9, 0, SV("1234567890"), 0, 10, S("abcdefghi1234567890j"));
+ test(S("abcdefghij"), 9, 0, SV("1234567890"), 0, 11, S("abcdefghi1234567890j"));
+ test(S("abcdefghij"), 9, 0, SV("1234567890"), 1, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 9, 0, SV("1234567890"), 1, 1, S("abcdefghi2j"));
+ test(S("abcdefghij"), 9, 0, SV("1234567890"), 1, 4, S("abcdefghi2345j"));
+ test(S("abcdefghij"), 9, 0, SV("1234567890"), 1, 8, S("abcdefghi23456789j"));
+ test(S("abcdefghij"), 9, 0, SV("1234567890"), 1, 9, S("abcdefghi234567890j"));
+ test(S("abcdefghij"), 9, 0, SV("1234567890"), 1, 10, S("abcdefghi234567890j"));
+ test(S("abcdefghij"), 9, 0, SV("1234567890"), 5, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 9, 0, SV("1234567890"), 5, 1, S("abcdefghi6j"));
+ test(S("abcdefghij"), 9, 0, SV("1234567890"), 5, 2, S("abcdefghi67j"));
+ test(S("abcdefghij"), 9, 0, SV("1234567890"), 5, 4, S("abcdefghi6789j"));
+ test(S("abcdefghij"), 9, 0, SV("1234567890"), 5, 5, S("abcdefghi67890j"));
+ test(S("abcdefghij"), 9, 0, SV("1234567890"), 5, 6, S("abcdefghi67890j"));
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test33()
-{
- test(S("abcdefghij"), 9, 0, SV("1234567890"), 9, 0, S("abcdefghij"));
- test(S("abcdefghij"), 9, 0, SV("1234567890"), 9, 1, S("abcdefghi0j"));
- test(S("abcdefghij"), 9, 0, SV("1234567890"), 9, 2, S("abcdefghi0j"));
- test(S("abcdefghij"), 9, 0, SV("1234567890"), 10, 0, S("abcdefghij"));
- test(S("abcdefghij"), 9, 0, SV("1234567890"), 10, 1, S("abcdefghij"));
- test(S("abcdefghij"), 9, 0, SV("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghij"), 9, 0, SV("12345678901234567890"), 0, 0, S("abcdefghij"));
- test(S("abcdefghij"), 9, 0, SV("12345678901234567890"), 0, 1, S("abcdefghi1j"));
- test(S("abcdefghij"), 9, 0, SV("12345678901234567890"), 0, 10, S("abcdefghi1234567890j"));
- test(S("abcdefghij"), 9, 0, SV("12345678901234567890"), 0, 19, S("abcdefghi1234567890123456789j"));
- test(S("abcdefghij"), 9, 0, SV("12345678901234567890"), 0, 20, S("abcdefghi12345678901234567890j"));
- test(S("abcdefghij"), 9, 0, SV("12345678901234567890"), 0, 21, S("abcdefghi12345678901234567890j"));
- test(S("abcdefghij"), 9, 0, SV("12345678901234567890"), 1, 0, S("abcdefghij"));
- test(S("abcdefghij"), 9, 0, SV("12345678901234567890"), 1, 1, S("abcdefghi2j"));
- test(S("abcdefghij"), 9, 0, SV("12345678901234567890"), 1, 9, S("abcdefghi234567890j"));
- test(S("abcdefghij"), 9, 0, SV("12345678901234567890"), 1, 18, S("abcdefghi234567890123456789j"));
- test(S("abcdefghij"), 9, 0, SV("12345678901234567890"), 1, 19, S("abcdefghi2345678901234567890j"));
- test(S("abcdefghij"), 9, 0, SV("12345678901234567890"), 1, 20, S("abcdefghi2345678901234567890j"));
- test(S("abcdefghij"), 9, 0, SV("12345678901234567890"), 10, 0, S("abcdefghij"));
- test(S("abcdefghij"), 9, 0, SV("12345678901234567890"), 10, 1, S("abcdefghi1j"));
- test(S("abcdefghij"), 9, 0, SV("12345678901234567890"), 10, 5, S("abcdefghi12345j"));
- test(S("abcdefghij"), 9, 0, SV("12345678901234567890"), 10, 9, S("abcdefghi123456789j"));
- test(S("abcdefghij"), 9, 0, SV("12345678901234567890"), 10, 10, S("abcdefghi1234567890j"));
- test(S("abcdefghij"), 9, 0, SV("12345678901234567890"), 10, 11, S("abcdefghi1234567890j"));
- test(S("abcdefghij"), 9, 0, SV("12345678901234567890"), 19, 0, S("abcdefghij"));
- test(S("abcdefghij"), 9, 0, SV("12345678901234567890"), 19, 1, S("abcdefghi0j"));
- test(S("abcdefghij"), 9, 0, SV("12345678901234567890"), 19, 2, S("abcdefghi0j"));
- test(S("abcdefghij"), 9, 0, SV("12345678901234567890"), 20, 0, S("abcdefghij"));
- test(S("abcdefghij"), 9, 0, SV("12345678901234567890"), 20, 1, S("abcdefghij"));
- test(S("abcdefghij"), 9, 0, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghij"), 9, 1, SV(""), 0, 0, S("abcdefghi"));
- test(S("abcdefghij"), 9, 1, SV(""), 0, 1, S("abcdefghi"));
- test(S("abcdefghij"), 9, 1, SV(""), 1, 0, S("can't happen"));
- test(S("abcdefghij"), 9, 1, SV("12345"), 0, 0, S("abcdefghi"));
- test(S("abcdefghij"), 9, 1, SV("12345"), 0, 1, S("abcdefghi1"));
- test(S("abcdefghij"), 9, 1, SV("12345"), 0, 2, S("abcdefghi12"));
- test(S("abcdefghij"), 9, 1, SV("12345"), 0, 4, S("abcdefghi1234"));
- test(S("abcdefghij"), 9, 1, SV("12345"), 0, 5, S("abcdefghi12345"));
- test(S("abcdefghij"), 9, 1, SV("12345"), 0, 6, S("abcdefghi12345"));
- test(S("abcdefghij"), 9, 1, SV("12345"), 1, 0, S("abcdefghi"));
- test(S("abcdefghij"), 9, 1, SV("12345"), 1, 1, S("abcdefghi2"));
- test(S("abcdefghij"), 9, 1, SV("12345"), 1, 2, S("abcdefghi23"));
- test(S("abcdefghij"), 9, 1, SV("12345"), 1, 3, S("abcdefghi234"));
- test(S("abcdefghij"), 9, 1, SV("12345"), 1, 4, S("abcdefghi2345"));
- test(S("abcdefghij"), 9, 1, SV("12345"), 1, 5, S("abcdefghi2345"));
- test(S("abcdefghij"), 9, 1, SV("12345"), 2, 0, S("abcdefghi"));
- test(S("abcdefghij"), 9, 1, SV("12345"), 2, 1, S("abcdefghi3"));
- test(S("abcdefghij"), 9, 1, SV("12345"), 2, 2, S("abcdefghi34"));
- test(S("abcdefghij"), 9, 1, SV("12345"), 2, 3, S("abcdefghi345"));
- test(S("abcdefghij"), 9, 1, SV("12345"), 2, 4, S("abcdefghi345"));
- test(S("abcdefghij"), 9, 1, SV("12345"), 4, 0, S("abcdefghi"));
- test(S("abcdefghij"), 9, 1, SV("12345"), 4, 1, S("abcdefghi5"));
- test(S("abcdefghij"), 9, 1, SV("12345"), 4, 2, S("abcdefghi5"));
- test(S("abcdefghij"), 9, 1, SV("12345"), 5, 0, S("abcdefghi"));
- test(S("abcdefghij"), 9, 1, SV("12345"), 5, 1, S("abcdefghi"));
- test(S("abcdefghij"), 9, 1, SV("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghij"), 9, 1, SV("1234567890"), 0, 0, S("abcdefghi"));
- test(S("abcdefghij"), 9, 1, SV("1234567890"), 0, 1, S("abcdefghi1"));
- test(S("abcdefghij"), 9, 1, SV("1234567890"), 0, 5, S("abcdefghi12345"));
- test(S("abcdefghij"), 9, 1, SV("1234567890"), 0, 9, S("abcdefghi123456789"));
- test(S("abcdefghij"), 9, 1, SV("1234567890"), 0, 10, S("abcdefghi1234567890"));
- test(S("abcdefghij"), 9, 1, SV("1234567890"), 0, 11, S("abcdefghi1234567890"));
- test(S("abcdefghij"), 9, 1, SV("1234567890"), 1, 0, S("abcdefghi"));
- test(S("abcdefghij"), 9, 1, SV("1234567890"), 1, 1, S("abcdefghi2"));
- test(S("abcdefghij"), 9, 1, SV("1234567890"), 1, 4, S("abcdefghi2345"));
- test(S("abcdefghij"), 9, 1, SV("1234567890"), 1, 8, S("abcdefghi23456789"));
- test(S("abcdefghij"), 9, 1, SV("1234567890"), 1, 9, S("abcdefghi234567890"));
- test(S("abcdefghij"), 9, 1, SV("1234567890"), 1, 10, S("abcdefghi234567890"));
- test(S("abcdefghij"), 9, 1, SV("1234567890"), 5, 0, S("abcdefghi"));
- test(S("abcdefghij"), 9, 1, SV("1234567890"), 5, 1, S("abcdefghi6"));
- test(S("abcdefghij"), 9, 1, SV("1234567890"), 5, 2, S("abcdefghi67"));
- test(S("abcdefghij"), 9, 1, SV("1234567890"), 5, 4, S("abcdefghi6789"));
- test(S("abcdefghij"), 9, 1, SV("1234567890"), 5, 5, S("abcdefghi67890"));
- test(S("abcdefghij"), 9, 1, SV("1234567890"), 5, 6, S("abcdefghi67890"));
- test(S("abcdefghij"), 9, 1, SV("1234567890"), 9, 0, S("abcdefghi"));
- test(S("abcdefghij"), 9, 1, SV("1234567890"), 9, 1, S("abcdefghi0"));
- test(S("abcdefghij"), 9, 1, SV("1234567890"), 9, 2, S("abcdefghi0"));
- test(S("abcdefghij"), 9, 1, SV("1234567890"), 10, 0, S("abcdefghi"));
- test(S("abcdefghij"), 9, 1, SV("1234567890"), 10, 1, S("abcdefghi"));
- test(S("abcdefghij"), 9, 1, SV("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghij"), 9, 1, SV("12345678901234567890"), 0, 0, S("abcdefghi"));
- test(S("abcdefghij"), 9, 1, SV("12345678901234567890"), 0, 1, S("abcdefghi1"));
- test(S("abcdefghij"), 9, 1, SV("12345678901234567890"), 0, 10, S("abcdefghi1234567890"));
- test(S("abcdefghij"), 9, 1, SV("12345678901234567890"), 0, 19, S("abcdefghi1234567890123456789"));
- test(S("abcdefghij"), 9, 1, SV("12345678901234567890"), 0, 20, S("abcdefghi12345678901234567890"));
- test(S("abcdefghij"), 9, 1, SV("12345678901234567890"), 0, 21, S("abcdefghi12345678901234567890"));
- test(S("abcdefghij"), 9, 1, SV("12345678901234567890"), 1, 0, S("abcdefghi"));
- test(S("abcdefghij"), 9, 1, SV("12345678901234567890"), 1, 1, S("abcdefghi2"));
- test(S("abcdefghij"), 9, 1, SV("12345678901234567890"), 1, 9, S("abcdefghi234567890"));
- test(S("abcdefghij"), 9, 1, SV("12345678901234567890"), 1, 18, S("abcdefghi234567890123456789"));
- test(S("abcdefghij"), 9, 1, SV("12345678901234567890"), 1, 19, S("abcdefghi2345678901234567890"));
- test(S("abcdefghij"), 9, 1, SV("12345678901234567890"), 1, 20, S("abcdefghi2345678901234567890"));
- test(S("abcdefghij"), 9, 1, SV("12345678901234567890"), 10, 0, S("abcdefghi"));
- test(S("abcdefghij"), 9, 1, SV("12345678901234567890"), 10, 1, S("abcdefghi1"));
- test(S("abcdefghij"), 9, 1, SV("12345678901234567890"), 10, 5, S("abcdefghi12345"));
- test(S("abcdefghij"), 9, 1, SV("12345678901234567890"), 10, 9, S("abcdefghi123456789"));
- test(S("abcdefghij"), 9, 1, SV("12345678901234567890"), 10, 10, S("abcdefghi1234567890"));
- test(S("abcdefghij"), 9, 1, SV("12345678901234567890"), 10, 11, S("abcdefghi1234567890"));
- test(S("abcdefghij"), 9, 1, SV("12345678901234567890"), 19, 0, S("abcdefghi"));
- test(S("abcdefghij"), 9, 1, SV("12345678901234567890"), 19, 1, S("abcdefghi0"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test33() {
+ test(S("abcdefghij"), 9, 0, SV("1234567890"), 9, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 9, 0, SV("1234567890"), 9, 1, S("abcdefghi0j"));
+ test(S("abcdefghij"), 9, 0, SV("1234567890"), 9, 2, S("abcdefghi0j"));
+ test(S("abcdefghij"), 9, 0, SV("1234567890"), 10, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 9, 0, SV("1234567890"), 10, 1, S("abcdefghij"));
+ test(S("abcdefghij"), 9, 0, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghij"), 9, 0, SV("12345678901234567890"), 0, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 9, 0, SV("12345678901234567890"), 0, 1, S("abcdefghi1j"));
+ test(S("abcdefghij"), 9, 0, SV("12345678901234567890"), 0, 10, S("abcdefghi1234567890j"));
+ test(S("abcdefghij"), 9, 0, SV("12345678901234567890"), 0, 19, S("abcdefghi1234567890123456789j"));
+ test(S("abcdefghij"), 9, 0, SV("12345678901234567890"), 0, 20, S("abcdefghi12345678901234567890j"));
+ test(S("abcdefghij"), 9, 0, SV("12345678901234567890"), 0, 21, S("abcdefghi12345678901234567890j"));
+ test(S("abcdefghij"), 9, 0, SV("12345678901234567890"), 1, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 9, 0, SV("12345678901234567890"), 1, 1, S("abcdefghi2j"));
+ test(S("abcdefghij"), 9, 0, SV("12345678901234567890"), 1, 9, S("abcdefghi234567890j"));
+ test(S("abcdefghij"), 9, 0, SV("12345678901234567890"), 1, 18, S("abcdefghi234567890123456789j"));
+ test(S("abcdefghij"), 9, 0, SV("12345678901234567890"), 1, 19, S("abcdefghi2345678901234567890j"));
+ test(S("abcdefghij"), 9, 0, SV("12345678901234567890"), 1, 20, S("abcdefghi2345678901234567890j"));
+ test(S("abcdefghij"), 9, 0, SV("12345678901234567890"), 10, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 9, 0, SV("12345678901234567890"), 10, 1, S("abcdefghi1j"));
+ test(S("abcdefghij"), 9, 0, SV("12345678901234567890"), 10, 5, S("abcdefghi12345j"));
+ test(S("abcdefghij"), 9, 0, SV("12345678901234567890"), 10, 9, S("abcdefghi123456789j"));
+ test(S("abcdefghij"), 9, 0, SV("12345678901234567890"), 10, 10, S("abcdefghi1234567890j"));
+ test(S("abcdefghij"), 9, 0, SV("12345678901234567890"), 10, 11, S("abcdefghi1234567890j"));
+ test(S("abcdefghij"), 9, 0, SV("12345678901234567890"), 19, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 9, 0, SV("12345678901234567890"), 19, 1, S("abcdefghi0j"));
+ test(S("abcdefghij"), 9, 0, SV("12345678901234567890"), 19, 2, S("abcdefghi0j"));
+ test(S("abcdefghij"), 9, 0, SV("12345678901234567890"), 20, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 9, 0, SV("12345678901234567890"), 20, 1, S("abcdefghij"));
+ test(S("abcdefghij"), 9, 0, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghij"), 9, 1, SV(""), 0, 0, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 1, SV(""), 0, 1, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 1, SV(""), 1, 0, S("can't happen"));
+ test(S("abcdefghij"), 9, 1, SV("12345"), 0, 0, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 1, SV("12345"), 0, 1, S("abcdefghi1"));
+ test(S("abcdefghij"), 9, 1, SV("12345"), 0, 2, S("abcdefghi12"));
+ test(S("abcdefghij"), 9, 1, SV("12345"), 0, 4, S("abcdefghi1234"));
+ test(S("abcdefghij"), 9, 1, SV("12345"), 0, 5, S("abcdefghi12345"));
+ test(S("abcdefghij"), 9, 1, SV("12345"), 0, 6, S("abcdefghi12345"));
+ test(S("abcdefghij"), 9, 1, SV("12345"), 1, 0, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 1, SV("12345"), 1, 1, S("abcdefghi2"));
+ test(S("abcdefghij"), 9, 1, SV("12345"), 1, 2, S("abcdefghi23"));
+ test(S("abcdefghij"), 9, 1, SV("12345"), 1, 3, S("abcdefghi234"));
+ test(S("abcdefghij"), 9, 1, SV("12345"), 1, 4, S("abcdefghi2345"));
+ test(S("abcdefghij"), 9, 1, SV("12345"), 1, 5, S("abcdefghi2345"));
+ test(S("abcdefghij"), 9, 1, SV("12345"), 2, 0, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 1, SV("12345"), 2, 1, S("abcdefghi3"));
+ test(S("abcdefghij"), 9, 1, SV("12345"), 2, 2, S("abcdefghi34"));
+ test(S("abcdefghij"), 9, 1, SV("12345"), 2, 3, S("abcdefghi345"));
+ test(S("abcdefghij"), 9, 1, SV("12345"), 2, 4, S("abcdefghi345"));
+ test(S("abcdefghij"), 9, 1, SV("12345"), 4, 0, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 1, SV("12345"), 4, 1, S("abcdefghi5"));
+ test(S("abcdefghij"), 9, 1, SV("12345"), 4, 2, S("abcdefghi5"));
+ test(S("abcdefghij"), 9, 1, SV("12345"), 5, 0, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 1, SV("12345"), 5, 1, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 1, SV("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghij"), 9, 1, SV("1234567890"), 0, 0, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 1, SV("1234567890"), 0, 1, S("abcdefghi1"));
+ test(S("abcdefghij"), 9, 1, SV("1234567890"), 0, 5, S("abcdefghi12345"));
+ test(S("abcdefghij"), 9, 1, SV("1234567890"), 0, 9, S("abcdefghi123456789"));
+ test(S("abcdefghij"), 9, 1, SV("1234567890"), 0, 10, S("abcdefghi1234567890"));
+ test(S("abcdefghij"), 9, 1, SV("1234567890"), 0, 11, S("abcdefghi1234567890"));
+ test(S("abcdefghij"), 9, 1, SV("1234567890"), 1, 0, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 1, SV("1234567890"), 1, 1, S("abcdefghi2"));
+ test(S("abcdefghij"), 9, 1, SV("1234567890"), 1, 4, S("abcdefghi2345"));
+ test(S("abcdefghij"), 9, 1, SV("1234567890"), 1, 8, S("abcdefghi23456789"));
+ test(S("abcdefghij"), 9, 1, SV("1234567890"), 1, 9, S("abcdefghi234567890"));
+ test(S("abcdefghij"), 9, 1, SV("1234567890"), 1, 10, S("abcdefghi234567890"));
+ test(S("abcdefghij"), 9, 1, SV("1234567890"), 5, 0, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 1, SV("1234567890"), 5, 1, S("abcdefghi6"));
+ test(S("abcdefghij"), 9, 1, SV("1234567890"), 5, 2, S("abcdefghi67"));
+ test(S("abcdefghij"), 9, 1, SV("1234567890"), 5, 4, S("abcdefghi6789"));
+ test(S("abcdefghij"), 9, 1, SV("1234567890"), 5, 5, S("abcdefghi67890"));
+ test(S("abcdefghij"), 9, 1, SV("1234567890"), 5, 6, S("abcdefghi67890"));
+ test(S("abcdefghij"), 9, 1, SV("1234567890"), 9, 0, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 1, SV("1234567890"), 9, 1, S("abcdefghi0"));
+ test(S("abcdefghij"), 9, 1, SV("1234567890"), 9, 2, S("abcdefghi0"));
+ test(S("abcdefghij"), 9, 1, SV("1234567890"), 10, 0, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 1, SV("1234567890"), 10, 1, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 1, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghij"), 9, 1, SV("12345678901234567890"), 0, 0, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 1, SV("12345678901234567890"), 0, 1, S("abcdefghi1"));
+ test(S("abcdefghij"), 9, 1, SV("12345678901234567890"), 0, 10, S("abcdefghi1234567890"));
+ test(S("abcdefghij"), 9, 1, SV("12345678901234567890"), 0, 19, S("abcdefghi1234567890123456789"));
+ test(S("abcdefghij"), 9, 1, SV("12345678901234567890"), 0, 20, S("abcdefghi12345678901234567890"));
+ test(S("abcdefghij"), 9, 1, SV("12345678901234567890"), 0, 21, S("abcdefghi12345678901234567890"));
+ test(S("abcdefghij"), 9, 1, SV("12345678901234567890"), 1, 0, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 1, SV("12345678901234567890"), 1, 1, S("abcdefghi2"));
+ test(S("abcdefghij"), 9, 1, SV("12345678901234567890"), 1, 9, S("abcdefghi234567890"));
+ test(S("abcdefghij"), 9, 1, SV("12345678901234567890"), 1, 18, S("abcdefghi234567890123456789"));
+ test(S("abcdefghij"), 9, 1, SV("12345678901234567890"), 1, 19, S("abcdefghi2345678901234567890"));
+ test(S("abcdefghij"), 9, 1, SV("12345678901234567890"), 1, 20, S("abcdefghi2345678901234567890"));
+ test(S("abcdefghij"), 9, 1, SV("12345678901234567890"), 10, 0, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 1, SV("12345678901234567890"), 10, 1, S("abcdefghi1"));
+ test(S("abcdefghij"), 9, 1, SV("12345678901234567890"), 10, 5, S("abcdefghi12345"));
+ test(S("abcdefghij"), 9, 1, SV("12345678901234567890"), 10, 9, S("abcdefghi123456789"));
+ test(S("abcdefghij"), 9, 1, SV("12345678901234567890"), 10, 10, S("abcdefghi1234567890"));
+ test(S("abcdefghij"), 9, 1, SV("12345678901234567890"), 10, 11, S("abcdefghi1234567890"));
+ test(S("abcdefghij"), 9, 1, SV("12345678901234567890"), 19, 0, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 1, SV("12345678901234567890"), 19, 1, S("abcdefghi0"));
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test34()
-{
- test(S("abcdefghij"), 9, 1, SV("12345678901234567890"), 19, 2, S("abcdefghi0"));
- test(S("abcdefghij"), 9, 1, SV("12345678901234567890"), 20, 0, S("abcdefghi"));
- test(S("abcdefghij"), 9, 1, SV("12345678901234567890"), 20, 1, S("abcdefghi"));
- test(S("abcdefghij"), 9, 1, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghij"), 9, 2, SV(""), 0, 0, S("abcdefghi"));
- test(S("abcdefghij"), 9, 2, SV(""), 0, 1, S("abcdefghi"));
- test(S("abcdefghij"), 9, 2, SV(""), 1, 0, S("can't happen"));
- test(S("abcdefghij"), 9, 2, SV("12345"), 0, 0, S("abcdefghi"));
- test(S("abcdefghij"), 9, 2, SV("12345"), 0, 1, S("abcdefghi1"));
- test(S("abcdefghij"), 9, 2, SV("12345"), 0, 2, S("abcdefghi12"));
- test(S("abcdefghij"), 9, 2, SV("12345"), 0, 4, S("abcdefghi1234"));
- test(S("abcdefghij"), 9, 2, SV("12345"), 0, 5, S("abcdefghi12345"));
- test(S("abcdefghij"), 9, 2, SV("12345"), 0, 6, S("abcdefghi12345"));
- test(S("abcdefghij"), 9, 2, SV("12345"), 1, 0, S("abcdefghi"));
- test(S("abcdefghij"), 9, 2, SV("12345"), 1, 1, S("abcdefghi2"));
- test(S("abcdefghij"), 9, 2, SV("12345"), 1, 2, S("abcdefghi23"));
- test(S("abcdefghij"), 9, 2, SV("12345"), 1, 3, S("abcdefghi234"));
- test(S("abcdefghij"), 9, 2, SV("12345"), 1, 4, S("abcdefghi2345"));
- test(S("abcdefghij"), 9, 2, SV("12345"), 1, 5, S("abcdefghi2345"));
- test(S("abcdefghij"), 9, 2, SV("12345"), 2, 0, S("abcdefghi"));
- test(S("abcdefghij"), 9, 2, SV("12345"), 2, 1, S("abcdefghi3"));
- test(S("abcdefghij"), 9, 2, SV("12345"), 2, 2, S("abcdefghi34"));
- test(S("abcdefghij"), 9, 2, SV("12345"), 2, 3, S("abcdefghi345"));
- test(S("abcdefghij"), 9, 2, SV("12345"), 2, 4, S("abcdefghi345"));
- test(S("abcdefghij"), 9, 2, SV("12345"), 4, 0, S("abcdefghi"));
- test(S("abcdefghij"), 9, 2, SV("12345"), 4, 1, S("abcdefghi5"));
- test(S("abcdefghij"), 9, 2, SV("12345"), 4, 2, S("abcdefghi5"));
- test(S("abcdefghij"), 9, 2, SV("12345"), 5, 0, S("abcdefghi"));
- test(S("abcdefghij"), 9, 2, SV("12345"), 5, 1, S("abcdefghi"));
- test(S("abcdefghij"), 9, 2, SV("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghij"), 9, 2, SV("1234567890"), 0, 0, S("abcdefghi"));
- test(S("abcdefghij"), 9, 2, SV("1234567890"), 0, 1, S("abcdefghi1"));
- test(S("abcdefghij"), 9, 2, SV("1234567890"), 0, 5, S("abcdefghi12345"));
- test(S("abcdefghij"), 9, 2, SV("1234567890"), 0, 9, S("abcdefghi123456789"));
- test(S("abcdefghij"), 9, 2, SV("1234567890"), 0, 10, S("abcdefghi1234567890"));
- test(S("abcdefghij"), 9, 2, SV("1234567890"), 0, 11, S("abcdefghi1234567890"));
- test(S("abcdefghij"), 9, 2, SV("1234567890"), 1, 0, S("abcdefghi"));
- test(S("abcdefghij"), 9, 2, SV("1234567890"), 1, 1, S("abcdefghi2"));
- test(S("abcdefghij"), 9, 2, SV("1234567890"), 1, 4, S("abcdefghi2345"));
- test(S("abcdefghij"), 9, 2, SV("1234567890"), 1, 8, S("abcdefghi23456789"));
- test(S("abcdefghij"), 9, 2, SV("1234567890"), 1, 9, S("abcdefghi234567890"));
- test(S("abcdefghij"), 9, 2, SV("1234567890"), 1, 10, S("abcdefghi234567890"));
- test(S("abcdefghij"), 9, 2, SV("1234567890"), 5, 0, S("abcdefghi"));
- test(S("abcdefghij"), 9, 2, SV("1234567890"), 5, 1, S("abcdefghi6"));
- test(S("abcdefghij"), 9, 2, SV("1234567890"), 5, 2, S("abcdefghi67"));
- test(S("abcdefghij"), 9, 2, SV("1234567890"), 5, 4, S("abcdefghi6789"));
- test(S("abcdefghij"), 9, 2, SV("1234567890"), 5, 5, S("abcdefghi67890"));
- test(S("abcdefghij"), 9, 2, SV("1234567890"), 5, 6, S("abcdefghi67890"));
- test(S("abcdefghij"), 9, 2, SV("1234567890"), 9, 0, S("abcdefghi"));
- test(S("abcdefghij"), 9, 2, SV("1234567890"), 9, 1, S("abcdefghi0"));
- test(S("abcdefghij"), 9, 2, SV("1234567890"), 9, 2, S("abcdefghi0"));
- test(S("abcdefghij"), 9, 2, SV("1234567890"), 10, 0, S("abcdefghi"));
- test(S("abcdefghij"), 9, 2, SV("1234567890"), 10, 1, S("abcdefghi"));
- test(S("abcdefghij"), 9, 2, SV("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghij"), 9, 2, SV("12345678901234567890"), 0, 0, S("abcdefghi"));
- test(S("abcdefghij"), 9, 2, SV("12345678901234567890"), 0, 1, S("abcdefghi1"));
- test(S("abcdefghij"), 9, 2, SV("12345678901234567890"), 0, 10, S("abcdefghi1234567890"));
- test(S("abcdefghij"), 9, 2, SV("12345678901234567890"), 0, 19, S("abcdefghi1234567890123456789"));
- test(S("abcdefghij"), 9, 2, SV("12345678901234567890"), 0, 20, S("abcdefghi12345678901234567890"));
- test(S("abcdefghij"), 9, 2, SV("12345678901234567890"), 0, 21, S("abcdefghi12345678901234567890"));
- test(S("abcdefghij"), 9, 2, SV("12345678901234567890"), 1, 0, S("abcdefghi"));
- test(S("abcdefghij"), 9, 2, SV("12345678901234567890"), 1, 1, S("abcdefghi2"));
- test(S("abcdefghij"), 9, 2, SV("12345678901234567890"), 1, 9, S("abcdefghi234567890"));
- test(S("abcdefghij"), 9, 2, SV("12345678901234567890"), 1, 18, S("abcdefghi234567890123456789"));
- test(S("abcdefghij"), 9, 2, SV("12345678901234567890"), 1, 19, S("abcdefghi2345678901234567890"));
- test(S("abcdefghij"), 9, 2, SV("12345678901234567890"), 1, 20, S("abcdefghi2345678901234567890"));
- test(S("abcdefghij"), 9, 2, SV("12345678901234567890"), 10, 0, S("abcdefghi"));
- test(S("abcdefghij"), 9, 2, SV("12345678901234567890"), 10, 1, S("abcdefghi1"));
- test(S("abcdefghij"), 9, 2, SV("12345678901234567890"), 10, 5, S("abcdefghi12345"));
- test(S("abcdefghij"), 9, 2, SV("12345678901234567890"), 10, 9, S("abcdefghi123456789"));
- test(S("abcdefghij"), 9, 2, SV("12345678901234567890"), 10, 10, S("abcdefghi1234567890"));
- test(S("abcdefghij"), 9, 2, SV("12345678901234567890"), 10, 11, S("abcdefghi1234567890"));
- test(S("abcdefghij"), 9, 2, SV("12345678901234567890"), 19, 0, S("abcdefghi"));
- test(S("abcdefghij"), 9, 2, SV("12345678901234567890"), 19, 1, S("abcdefghi0"));
- test(S("abcdefghij"), 9, 2, SV("12345678901234567890"), 19, 2, S("abcdefghi0"));
- test(S("abcdefghij"), 9, 2, SV("12345678901234567890"), 20, 0, S("abcdefghi"));
- test(S("abcdefghij"), 9, 2, SV("12345678901234567890"), 20, 1, S("abcdefghi"));
- test(S("abcdefghij"), 9, 2, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghij"), 10, 0, SV(""), 0, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, 0, SV(""), 0, 1, S("abcdefghij"));
- test(S("abcdefghij"), 10, 0, SV(""), 1, 0, S("can't happen"));
- test(S("abcdefghij"), 10, 0, SV("12345"), 0, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, 0, SV("12345"), 0, 1, S("abcdefghij1"));
- test(S("abcdefghij"), 10, 0, SV("12345"), 0, 2, S("abcdefghij12"));
- test(S("abcdefghij"), 10, 0, SV("12345"), 0, 4, S("abcdefghij1234"));
- test(S("abcdefghij"), 10, 0, SV("12345"), 0, 5, S("abcdefghij12345"));
- test(S("abcdefghij"), 10, 0, SV("12345"), 0, 6, S("abcdefghij12345"));
- test(S("abcdefghij"), 10, 0, SV("12345"), 1, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, 0, SV("12345"), 1, 1, S("abcdefghij2"));
- test(S("abcdefghij"), 10, 0, SV("12345"), 1, 2, S("abcdefghij23"));
- test(S("abcdefghij"), 10, 0, SV("12345"), 1, 3, S("abcdefghij234"));
- test(S("abcdefghij"), 10, 0, SV("12345"), 1, 4, S("abcdefghij2345"));
- test(S("abcdefghij"), 10, 0, SV("12345"), 1, 5, S("abcdefghij2345"));
- test(S("abcdefghij"), 10, 0, SV("12345"), 2, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, 0, SV("12345"), 2, 1, S("abcdefghij3"));
- test(S("abcdefghij"), 10, 0, SV("12345"), 2, 2, S("abcdefghij34"));
- test(S("abcdefghij"), 10, 0, SV("12345"), 2, 3, S("abcdefghij345"));
- test(S("abcdefghij"), 10, 0, SV("12345"), 2, 4, S("abcdefghij345"));
- test(S("abcdefghij"), 10, 0, SV("12345"), 4, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, 0, SV("12345"), 4, 1, S("abcdefghij5"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test34() {
+ test(S("abcdefghij"), 9, 1, SV("12345678901234567890"), 19, 2, S("abcdefghi0"));
+ test(S("abcdefghij"), 9, 1, SV("12345678901234567890"), 20, 0, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 1, SV("12345678901234567890"), 20, 1, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 1, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghij"), 9, 2, SV(""), 0, 0, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 2, SV(""), 0, 1, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 2, SV(""), 1, 0, S("can't happen"));
+ test(S("abcdefghij"), 9, 2, SV("12345"), 0, 0, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 2, SV("12345"), 0, 1, S("abcdefghi1"));
+ test(S("abcdefghij"), 9, 2, SV("12345"), 0, 2, S("abcdefghi12"));
+ test(S("abcdefghij"), 9, 2, SV("12345"), 0, 4, S("abcdefghi1234"));
+ test(S("abcdefghij"), 9, 2, SV("12345"), 0, 5, S("abcdefghi12345"));
+ test(S("abcdefghij"), 9, 2, SV("12345"), 0, 6, S("abcdefghi12345"));
+ test(S("abcdefghij"), 9, 2, SV("12345"), 1, 0, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 2, SV("12345"), 1, 1, S("abcdefghi2"));
+ test(S("abcdefghij"), 9, 2, SV("12345"), 1, 2, S("abcdefghi23"));
+ test(S("abcdefghij"), 9, 2, SV("12345"), 1, 3, S("abcdefghi234"));
+ test(S("abcdefghij"), 9, 2, SV("12345"), 1, 4, S("abcdefghi2345"));
+ test(S("abcdefghij"), 9, 2, SV("12345"), 1, 5, S("abcdefghi2345"));
+ test(S("abcdefghij"), 9, 2, SV("12345"), 2, 0, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 2, SV("12345"), 2, 1, S("abcdefghi3"));
+ test(S("abcdefghij"), 9, 2, SV("12345"), 2, 2, S("abcdefghi34"));
+ test(S("abcdefghij"), 9, 2, SV("12345"), 2, 3, S("abcdefghi345"));
+ test(S("abcdefghij"), 9, 2, SV("12345"), 2, 4, S("abcdefghi345"));
+ test(S("abcdefghij"), 9, 2, SV("12345"), 4, 0, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 2, SV("12345"), 4, 1, S("abcdefghi5"));
+ test(S("abcdefghij"), 9, 2, SV("12345"), 4, 2, S("abcdefghi5"));
+ test(S("abcdefghij"), 9, 2, SV("12345"), 5, 0, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 2, SV("12345"), 5, 1, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 2, SV("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghij"), 9, 2, SV("1234567890"), 0, 0, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 2, SV("1234567890"), 0, 1, S("abcdefghi1"));
+ test(S("abcdefghij"), 9, 2, SV("1234567890"), 0, 5, S("abcdefghi12345"));
+ test(S("abcdefghij"), 9, 2, SV("1234567890"), 0, 9, S("abcdefghi123456789"));
+ test(S("abcdefghij"), 9, 2, SV("1234567890"), 0, 10, S("abcdefghi1234567890"));
+ test(S("abcdefghij"), 9, 2, SV("1234567890"), 0, 11, S("abcdefghi1234567890"));
+ test(S("abcdefghij"), 9, 2, SV("1234567890"), 1, 0, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 2, SV("1234567890"), 1, 1, S("abcdefghi2"));
+ test(S("abcdefghij"), 9, 2, SV("1234567890"), 1, 4, S("abcdefghi2345"));
+ test(S("abcdefghij"), 9, 2, SV("1234567890"), 1, 8, S("abcdefghi23456789"));
+ test(S("abcdefghij"), 9, 2, SV("1234567890"), 1, 9, S("abcdefghi234567890"));
+ test(S("abcdefghij"), 9, 2, SV("1234567890"), 1, 10, S("abcdefghi234567890"));
+ test(S("abcdefghij"), 9, 2, SV("1234567890"), 5, 0, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 2, SV("1234567890"), 5, 1, S("abcdefghi6"));
+ test(S("abcdefghij"), 9, 2, SV("1234567890"), 5, 2, S("abcdefghi67"));
+ test(S("abcdefghij"), 9, 2, SV("1234567890"), 5, 4, S("abcdefghi6789"));
+ test(S("abcdefghij"), 9, 2, SV("1234567890"), 5, 5, S("abcdefghi67890"));
+ test(S("abcdefghij"), 9, 2, SV("1234567890"), 5, 6, S("abcdefghi67890"));
+ test(S("abcdefghij"), 9, 2, SV("1234567890"), 9, 0, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 2, SV("1234567890"), 9, 1, S("abcdefghi0"));
+ test(S("abcdefghij"), 9, 2, SV("1234567890"), 9, 2, S("abcdefghi0"));
+ test(S("abcdefghij"), 9, 2, SV("1234567890"), 10, 0, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 2, SV("1234567890"), 10, 1, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 2, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghij"), 9, 2, SV("12345678901234567890"), 0, 0, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 2, SV("12345678901234567890"), 0, 1, S("abcdefghi1"));
+ test(S("abcdefghij"), 9, 2, SV("12345678901234567890"), 0, 10, S("abcdefghi1234567890"));
+ test(S("abcdefghij"), 9, 2, SV("12345678901234567890"), 0, 19, S("abcdefghi1234567890123456789"));
+ test(S("abcdefghij"), 9, 2, SV("12345678901234567890"), 0, 20, S("abcdefghi12345678901234567890"));
+ test(S("abcdefghij"), 9, 2, SV("12345678901234567890"), 0, 21, S("abcdefghi12345678901234567890"));
+ test(S("abcdefghij"), 9, 2, SV("12345678901234567890"), 1, 0, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 2, SV("12345678901234567890"), 1, 1, S("abcdefghi2"));
+ test(S("abcdefghij"), 9, 2, SV("12345678901234567890"), 1, 9, S("abcdefghi234567890"));
+ test(S("abcdefghij"), 9, 2, SV("12345678901234567890"), 1, 18, S("abcdefghi234567890123456789"));
+ test(S("abcdefghij"), 9, 2, SV("12345678901234567890"), 1, 19, S("abcdefghi2345678901234567890"));
+ test(S("abcdefghij"), 9, 2, SV("12345678901234567890"), 1, 20, S("abcdefghi2345678901234567890"));
+ test(S("abcdefghij"), 9, 2, SV("12345678901234567890"), 10, 0, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 2, SV("12345678901234567890"), 10, 1, S("abcdefghi1"));
+ test(S("abcdefghij"), 9, 2, SV("12345678901234567890"), 10, 5, S("abcdefghi12345"));
+ test(S("abcdefghij"), 9, 2, SV("12345678901234567890"), 10, 9, S("abcdefghi123456789"));
+ test(S("abcdefghij"), 9, 2, SV("12345678901234567890"), 10, 10, S("abcdefghi1234567890"));
+ test(S("abcdefghij"), 9, 2, SV("12345678901234567890"), 10, 11, S("abcdefghi1234567890"));
+ test(S("abcdefghij"), 9, 2, SV("12345678901234567890"), 19, 0, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 2, SV("12345678901234567890"), 19, 1, S("abcdefghi0"));
+ test(S("abcdefghij"), 9, 2, SV("12345678901234567890"), 19, 2, S("abcdefghi0"));
+ test(S("abcdefghij"), 9, 2, SV("12345678901234567890"), 20, 0, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 2, SV("12345678901234567890"), 20, 1, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 2, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghij"), 10, 0, SV(""), 0, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 0, SV(""), 0, 1, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 0, SV(""), 1, 0, S("can't happen"));
+ test(S("abcdefghij"), 10, 0, SV("12345"), 0, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 0, SV("12345"), 0, 1, S("abcdefghij1"));
+ test(S("abcdefghij"), 10, 0, SV("12345"), 0, 2, S("abcdefghij12"));
+ test(S("abcdefghij"), 10, 0, SV("12345"), 0, 4, S("abcdefghij1234"));
+ test(S("abcdefghij"), 10, 0, SV("12345"), 0, 5, S("abcdefghij12345"));
+ test(S("abcdefghij"), 10, 0, SV("12345"), 0, 6, S("abcdefghij12345"));
+ test(S("abcdefghij"), 10, 0, SV("12345"), 1, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 0, SV("12345"), 1, 1, S("abcdefghij2"));
+ test(S("abcdefghij"), 10, 0, SV("12345"), 1, 2, S("abcdefghij23"));
+ test(S("abcdefghij"), 10, 0, SV("12345"), 1, 3, S("abcdefghij234"));
+ test(S("abcdefghij"), 10, 0, SV("12345"), 1, 4, S("abcdefghij2345"));
+ test(S("abcdefghij"), 10, 0, SV("12345"), 1, 5, S("abcdefghij2345"));
+ test(S("abcdefghij"), 10, 0, SV("12345"), 2, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 0, SV("12345"), 2, 1, S("abcdefghij3"));
+ test(S("abcdefghij"), 10, 0, SV("12345"), 2, 2, S("abcdefghij34"));
+ test(S("abcdefghij"), 10, 0, SV("12345"), 2, 3, S("abcdefghij345"));
+ test(S("abcdefghij"), 10, 0, SV("12345"), 2, 4, S("abcdefghij345"));
+ test(S("abcdefghij"), 10, 0, SV("12345"), 4, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 0, SV("12345"), 4, 1, S("abcdefghij5"));
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test35()
-{
- test(S("abcdefghij"), 10, 0, SV("12345"), 4, 2, S("abcdefghij5"));
- test(S("abcdefghij"), 10, 0, SV("12345"), 5, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, 0, SV("12345"), 5, 1, S("abcdefghij"));
- test(S("abcdefghij"), 10, 0, SV("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghij"), 10, 0, SV("1234567890"), 0, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, 0, SV("1234567890"), 0, 1, S("abcdefghij1"));
- test(S("abcdefghij"), 10, 0, SV("1234567890"), 0, 5, S("abcdefghij12345"));
- test(S("abcdefghij"), 10, 0, SV("1234567890"), 0, 9, S("abcdefghij123456789"));
- test(S("abcdefghij"), 10, 0, SV("1234567890"), 0, 10, S("abcdefghij1234567890"));
- test(S("abcdefghij"), 10, 0, SV("1234567890"), 0, 11, S("abcdefghij1234567890"));
- test(S("abcdefghij"), 10, 0, SV("1234567890"), 1, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, 0, SV("1234567890"), 1, 1, S("abcdefghij2"));
- test(S("abcdefghij"), 10, 0, SV("1234567890"), 1, 4, S("abcdefghij2345"));
- test(S("abcdefghij"), 10, 0, SV("1234567890"), 1, 8, S("abcdefghij23456789"));
- test(S("abcdefghij"), 10, 0, SV("1234567890"), 1, 9, S("abcdefghij234567890"));
- test(S("abcdefghij"), 10, 0, SV("1234567890"), 1, 10, S("abcdefghij234567890"));
- test(S("abcdefghij"), 10, 0, SV("1234567890"), 5, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, 0, SV("1234567890"), 5, 1, S("abcdefghij6"));
- test(S("abcdefghij"), 10, 0, SV("1234567890"), 5, 2, S("abcdefghij67"));
- test(S("abcdefghij"), 10, 0, SV("1234567890"), 5, 4, S("abcdefghij6789"));
- test(S("abcdefghij"), 10, 0, SV("1234567890"), 5, 5, S("abcdefghij67890"));
- test(S("abcdefghij"), 10, 0, SV("1234567890"), 5, 6, S("abcdefghij67890"));
- test(S("abcdefghij"), 10, 0, SV("1234567890"), 9, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, 0, SV("1234567890"), 9, 1, S("abcdefghij0"));
- test(S("abcdefghij"), 10, 0, SV("1234567890"), 9, 2, S("abcdefghij0"));
- test(S("abcdefghij"), 10, 0, SV("1234567890"), 10, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, 0, SV("1234567890"), 10, 1, S("abcdefghij"));
- test(S("abcdefghij"), 10, 0, SV("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghij"), 10, 0, SV("12345678901234567890"), 0, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, 0, SV("12345678901234567890"), 0, 1, S("abcdefghij1"));
- test(S("abcdefghij"), 10, 0, SV("12345678901234567890"), 0, 10, S("abcdefghij1234567890"));
- test(S("abcdefghij"), 10, 0, SV("12345678901234567890"), 0, 19, S("abcdefghij1234567890123456789"));
- test(S("abcdefghij"), 10, 0, SV("12345678901234567890"), 0, 20, S("abcdefghij12345678901234567890"));
- test(S("abcdefghij"), 10, 0, SV("12345678901234567890"), 0, 21, S("abcdefghij12345678901234567890"));
- test(S("abcdefghij"), 10, 0, SV("12345678901234567890"), 1, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, 0, SV("12345678901234567890"), 1, 1, S("abcdefghij2"));
- test(S("abcdefghij"), 10, 0, SV("12345678901234567890"), 1, 9, S("abcdefghij234567890"));
- test(S("abcdefghij"), 10, 0, SV("12345678901234567890"), 1, 18, S("abcdefghij234567890123456789"));
- test(S("abcdefghij"), 10, 0, SV("12345678901234567890"), 1, 19, S("abcdefghij2345678901234567890"));
- test(S("abcdefghij"), 10, 0, SV("12345678901234567890"), 1, 20, S("abcdefghij2345678901234567890"));
- test(S("abcdefghij"), 10, 0, SV("12345678901234567890"), 10, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, 0, SV("12345678901234567890"), 10, 1, S("abcdefghij1"));
- test(S("abcdefghij"), 10, 0, SV("12345678901234567890"), 10, 5, S("abcdefghij12345"));
- test(S("abcdefghij"), 10, 0, SV("12345678901234567890"), 10, 9, S("abcdefghij123456789"));
- test(S("abcdefghij"), 10, 0, SV("12345678901234567890"), 10, 10, S("abcdefghij1234567890"));
- test(S("abcdefghij"), 10, 0, SV("12345678901234567890"), 10, 11, S("abcdefghij1234567890"));
- test(S("abcdefghij"), 10, 0, SV("12345678901234567890"), 19, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, 0, SV("12345678901234567890"), 19, 1, S("abcdefghij0"));
- test(S("abcdefghij"), 10, 0, SV("12345678901234567890"), 19, 2, S("abcdefghij0"));
- test(S("abcdefghij"), 10, 0, SV("12345678901234567890"), 20, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, 0, SV("12345678901234567890"), 20, 1, S("abcdefghij"));
- test(S("abcdefghij"), 10, 0, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghij"), 10, 1, SV(""), 0, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, 1, SV(""), 0, 1, S("abcdefghij"));
- test(S("abcdefghij"), 10, 1, SV(""), 1, 0, S("can't happen"));
- test(S("abcdefghij"), 10, 1, SV("12345"), 0, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, 1, SV("12345"), 0, 1, S("abcdefghij1"));
- test(S("abcdefghij"), 10, 1, SV("12345"), 0, 2, S("abcdefghij12"));
- test(S("abcdefghij"), 10, 1, SV("12345"), 0, 4, S("abcdefghij1234"));
- test(S("abcdefghij"), 10, 1, SV("12345"), 0, 5, S("abcdefghij12345"));
- test(S("abcdefghij"), 10, 1, SV("12345"), 0, 6, S("abcdefghij12345"));
- test(S("abcdefghij"), 10, 1, SV("12345"), 1, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, 1, SV("12345"), 1, 1, S("abcdefghij2"));
- test(S("abcdefghij"), 10, 1, SV("12345"), 1, 2, S("abcdefghij23"));
- test(S("abcdefghij"), 10, 1, SV("12345"), 1, 3, S("abcdefghij234"));
- test(S("abcdefghij"), 10, 1, SV("12345"), 1, 4, S("abcdefghij2345"));
- test(S("abcdefghij"), 10, 1, SV("12345"), 1, 5, S("abcdefghij2345"));
- test(S("abcdefghij"), 10, 1, SV("12345"), 2, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, 1, SV("12345"), 2, 1, S("abcdefghij3"));
- test(S("abcdefghij"), 10, 1, SV("12345"), 2, 2, S("abcdefghij34"));
- test(S("abcdefghij"), 10, 1, SV("12345"), 2, 3, S("abcdefghij345"));
- test(S("abcdefghij"), 10, 1, SV("12345"), 2, 4, S("abcdefghij345"));
- test(S("abcdefghij"), 10, 1, SV("12345"), 4, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, 1, SV("12345"), 4, 1, S("abcdefghij5"));
- test(S("abcdefghij"), 10, 1, SV("12345"), 4, 2, S("abcdefghij5"));
- test(S("abcdefghij"), 10, 1, SV("12345"), 5, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, 1, SV("12345"), 5, 1, S("abcdefghij"));
- test(S("abcdefghij"), 10, 1, SV("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghij"), 10, 1, SV("1234567890"), 0, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, 1, SV("1234567890"), 0, 1, S("abcdefghij1"));
- test(S("abcdefghij"), 10, 1, SV("1234567890"), 0, 5, S("abcdefghij12345"));
- test(S("abcdefghij"), 10, 1, SV("1234567890"), 0, 9, S("abcdefghij123456789"));
- test(S("abcdefghij"), 10, 1, SV("1234567890"), 0, 10, S("abcdefghij1234567890"));
- test(S("abcdefghij"), 10, 1, SV("1234567890"), 0, 11, S("abcdefghij1234567890"));
- test(S("abcdefghij"), 10, 1, SV("1234567890"), 1, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, 1, SV("1234567890"), 1, 1, S("abcdefghij2"));
- test(S("abcdefghij"), 10, 1, SV("1234567890"), 1, 4, S("abcdefghij2345"));
- test(S("abcdefghij"), 10, 1, SV("1234567890"), 1, 8, S("abcdefghij23456789"));
- test(S("abcdefghij"), 10, 1, SV("1234567890"), 1, 9, S("abcdefghij234567890"));
- test(S("abcdefghij"), 10, 1, SV("1234567890"), 1, 10, S("abcdefghij234567890"));
- test(S("abcdefghij"), 10, 1, SV("1234567890"), 5, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, 1, SV("1234567890"), 5, 1, S("abcdefghij6"));
- test(S("abcdefghij"), 10, 1, SV("1234567890"), 5, 2, S("abcdefghij67"));
- test(S("abcdefghij"), 10, 1, SV("1234567890"), 5, 4, S("abcdefghij6789"));
- test(S("abcdefghij"), 10, 1, SV("1234567890"), 5, 5, S("abcdefghij67890"));
- test(S("abcdefghij"), 10, 1, SV("1234567890"), 5, 6, S("abcdefghij67890"));
- test(S("abcdefghij"), 10, 1, SV("1234567890"), 9, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, 1, SV("1234567890"), 9, 1, S("abcdefghij0"));
- test(S("abcdefghij"), 10, 1, SV("1234567890"), 9, 2, S("abcdefghij0"));
- test(S("abcdefghij"), 10, 1, SV("1234567890"), 10, 0, S("abcdefghij"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test35() {
+ test(S("abcdefghij"), 10, 0, SV("12345"), 4, 2, S("abcdefghij5"));
+ test(S("abcdefghij"), 10, 0, SV("12345"), 5, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 0, SV("12345"), 5, 1, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 0, SV("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghij"), 10, 0, SV("1234567890"), 0, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 0, SV("1234567890"), 0, 1, S("abcdefghij1"));
+ test(S("abcdefghij"), 10, 0, SV("1234567890"), 0, 5, S("abcdefghij12345"));
+ test(S("abcdefghij"), 10, 0, SV("1234567890"), 0, 9, S("abcdefghij123456789"));
+ test(S("abcdefghij"), 10, 0, SV("1234567890"), 0, 10, S("abcdefghij1234567890"));
+ test(S("abcdefghij"), 10, 0, SV("1234567890"), 0, 11, S("abcdefghij1234567890"));
+ test(S("abcdefghij"), 10, 0, SV("1234567890"), 1, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 0, SV("1234567890"), 1, 1, S("abcdefghij2"));
+ test(S("abcdefghij"), 10, 0, SV("1234567890"), 1, 4, S("abcdefghij2345"));
+ test(S("abcdefghij"), 10, 0, SV("1234567890"), 1, 8, S("abcdefghij23456789"));
+ test(S("abcdefghij"), 10, 0, SV("1234567890"), 1, 9, S("abcdefghij234567890"));
+ test(S("abcdefghij"), 10, 0, SV("1234567890"), 1, 10, S("abcdefghij234567890"));
+ test(S("abcdefghij"), 10, 0, SV("1234567890"), 5, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 0, SV("1234567890"), 5, 1, S("abcdefghij6"));
+ test(S("abcdefghij"), 10, 0, SV("1234567890"), 5, 2, S("abcdefghij67"));
+ test(S("abcdefghij"), 10, 0, SV("1234567890"), 5, 4, S("abcdefghij6789"));
+ test(S("abcdefghij"), 10, 0, SV("1234567890"), 5, 5, S("abcdefghij67890"));
+ test(S("abcdefghij"), 10, 0, SV("1234567890"), 5, 6, S("abcdefghij67890"));
+ test(S("abcdefghij"), 10, 0, SV("1234567890"), 9, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 0, SV("1234567890"), 9, 1, S("abcdefghij0"));
+ test(S("abcdefghij"), 10, 0, SV("1234567890"), 9, 2, S("abcdefghij0"));
+ test(S("abcdefghij"), 10, 0, SV("1234567890"), 10, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 0, SV("1234567890"), 10, 1, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 0, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghij"), 10, 0, SV("12345678901234567890"), 0, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 0, SV("12345678901234567890"), 0, 1, S("abcdefghij1"));
+ test(S("abcdefghij"), 10, 0, SV("12345678901234567890"), 0, 10, S("abcdefghij1234567890"));
+ test(S("abcdefghij"), 10, 0, SV("12345678901234567890"), 0, 19, S("abcdefghij1234567890123456789"));
+ test(S("abcdefghij"), 10, 0, SV("12345678901234567890"), 0, 20, S("abcdefghij12345678901234567890"));
+ test(S("abcdefghij"), 10, 0, SV("12345678901234567890"), 0, 21, S("abcdefghij12345678901234567890"));
+ test(S("abcdefghij"), 10, 0, SV("12345678901234567890"), 1, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 0, SV("12345678901234567890"), 1, 1, S("abcdefghij2"));
+ test(S("abcdefghij"), 10, 0, SV("12345678901234567890"), 1, 9, S("abcdefghij234567890"));
+ test(S("abcdefghij"), 10, 0, SV("12345678901234567890"), 1, 18, S("abcdefghij234567890123456789"));
+ test(S("abcdefghij"), 10, 0, SV("12345678901234567890"), 1, 19, S("abcdefghij2345678901234567890"));
+ test(S("abcdefghij"), 10, 0, SV("12345678901234567890"), 1, 20, S("abcdefghij2345678901234567890"));
+ test(S("abcdefghij"), 10, 0, SV("12345678901234567890"), 10, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 0, SV("12345678901234567890"), 10, 1, S("abcdefghij1"));
+ test(S("abcdefghij"), 10, 0, SV("12345678901234567890"), 10, 5, S("abcdefghij12345"));
+ test(S("abcdefghij"), 10, 0, SV("12345678901234567890"), 10, 9, S("abcdefghij123456789"));
+ test(S("abcdefghij"), 10, 0, SV("12345678901234567890"), 10, 10, S("abcdefghij1234567890"));
+ test(S("abcdefghij"), 10, 0, SV("12345678901234567890"), 10, 11, S("abcdefghij1234567890"));
+ test(S("abcdefghij"), 10, 0, SV("12345678901234567890"), 19, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 0, SV("12345678901234567890"), 19, 1, S("abcdefghij0"));
+ test(S("abcdefghij"), 10, 0, SV("12345678901234567890"), 19, 2, S("abcdefghij0"));
+ test(S("abcdefghij"), 10, 0, SV("12345678901234567890"), 20, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 0, SV("12345678901234567890"), 20, 1, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 0, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghij"), 10, 1, SV(""), 0, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 1, SV(""), 0, 1, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 1, SV(""), 1, 0, S("can't happen"));
+ test(S("abcdefghij"), 10, 1, SV("12345"), 0, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 1, SV("12345"), 0, 1, S("abcdefghij1"));
+ test(S("abcdefghij"), 10, 1, SV("12345"), 0, 2, S("abcdefghij12"));
+ test(S("abcdefghij"), 10, 1, SV("12345"), 0, 4, S("abcdefghij1234"));
+ test(S("abcdefghij"), 10, 1, SV("12345"), 0, 5, S("abcdefghij12345"));
+ test(S("abcdefghij"), 10, 1, SV("12345"), 0, 6, S("abcdefghij12345"));
+ test(S("abcdefghij"), 10, 1, SV("12345"), 1, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 1, SV("12345"), 1, 1, S("abcdefghij2"));
+ test(S("abcdefghij"), 10, 1, SV("12345"), 1, 2, S("abcdefghij23"));
+ test(S("abcdefghij"), 10, 1, SV("12345"), 1, 3, S("abcdefghij234"));
+ test(S("abcdefghij"), 10, 1, SV("12345"), 1, 4, S("abcdefghij2345"));
+ test(S("abcdefghij"), 10, 1, SV("12345"), 1, 5, S("abcdefghij2345"));
+ test(S("abcdefghij"), 10, 1, SV("12345"), 2, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 1, SV("12345"), 2, 1, S("abcdefghij3"));
+ test(S("abcdefghij"), 10, 1, SV("12345"), 2, 2, S("abcdefghij34"));
+ test(S("abcdefghij"), 10, 1, SV("12345"), 2, 3, S("abcdefghij345"));
+ test(S("abcdefghij"), 10, 1, SV("12345"), 2, 4, S("abcdefghij345"));
+ test(S("abcdefghij"), 10, 1, SV("12345"), 4, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 1, SV("12345"), 4, 1, S("abcdefghij5"));
+ test(S("abcdefghij"), 10, 1, SV("12345"), 4, 2, S("abcdefghij5"));
+ test(S("abcdefghij"), 10, 1, SV("12345"), 5, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 1, SV("12345"), 5, 1, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 1, SV("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghij"), 10, 1, SV("1234567890"), 0, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 1, SV("1234567890"), 0, 1, S("abcdefghij1"));
+ test(S("abcdefghij"), 10, 1, SV("1234567890"), 0, 5, S("abcdefghij12345"));
+ test(S("abcdefghij"), 10, 1, SV("1234567890"), 0, 9, S("abcdefghij123456789"));
+ test(S("abcdefghij"), 10, 1, SV("1234567890"), 0, 10, S("abcdefghij1234567890"));
+ test(S("abcdefghij"), 10, 1, SV("1234567890"), 0, 11, S("abcdefghij1234567890"));
+ test(S("abcdefghij"), 10, 1, SV("1234567890"), 1, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 1, SV("1234567890"), 1, 1, S("abcdefghij2"));
+ test(S("abcdefghij"), 10, 1, SV("1234567890"), 1, 4, S("abcdefghij2345"));
+ test(S("abcdefghij"), 10, 1, SV("1234567890"), 1, 8, S("abcdefghij23456789"));
+ test(S("abcdefghij"), 10, 1, SV("1234567890"), 1, 9, S("abcdefghij234567890"));
+ test(S("abcdefghij"), 10, 1, SV("1234567890"), 1, 10, S("abcdefghij234567890"));
+ test(S("abcdefghij"), 10, 1, SV("1234567890"), 5, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 1, SV("1234567890"), 5, 1, S("abcdefghij6"));
+ test(S("abcdefghij"), 10, 1, SV("1234567890"), 5, 2, S("abcdefghij67"));
+ test(S("abcdefghij"), 10, 1, SV("1234567890"), 5, 4, S("abcdefghij6789"));
+ test(S("abcdefghij"), 10, 1, SV("1234567890"), 5, 5, S("abcdefghij67890"));
+ test(S("abcdefghij"), 10, 1, SV("1234567890"), 5, 6, S("abcdefghij67890"));
+ test(S("abcdefghij"), 10, 1, SV("1234567890"), 9, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 1, SV("1234567890"), 9, 1, S("abcdefghij0"));
+ test(S("abcdefghij"), 10, 1, SV("1234567890"), 9, 2, S("abcdefghij0"));
+ test(S("abcdefghij"), 10, 1, SV("1234567890"), 10, 0, S("abcdefghij"));
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test36()
-{
- test(S("abcdefghij"), 10, 1, SV("1234567890"), 10, 1, S("abcdefghij"));
- test(S("abcdefghij"), 10, 1, SV("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghij"), 10, 1, SV("12345678901234567890"), 0, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, 1, SV("12345678901234567890"), 0, 1, S("abcdefghij1"));
- test(S("abcdefghij"), 10, 1, SV("12345678901234567890"), 0, 10, S("abcdefghij1234567890"));
- test(S("abcdefghij"), 10, 1, SV("12345678901234567890"), 0, 19, S("abcdefghij1234567890123456789"));
- test(S("abcdefghij"), 10, 1, SV("12345678901234567890"), 0, 20, S("abcdefghij12345678901234567890"));
- test(S("abcdefghij"), 10, 1, SV("12345678901234567890"), 0, 21, S("abcdefghij12345678901234567890"));
- test(S("abcdefghij"), 10, 1, SV("12345678901234567890"), 1, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, 1, SV("12345678901234567890"), 1, 1, S("abcdefghij2"));
- test(S("abcdefghij"), 10, 1, SV("12345678901234567890"), 1, 9, S("abcdefghij234567890"));
- test(S("abcdefghij"), 10, 1, SV("12345678901234567890"), 1, 18, S("abcdefghij234567890123456789"));
- test(S("abcdefghij"), 10, 1, SV("12345678901234567890"), 1, 19, S("abcdefghij2345678901234567890"));
- test(S("abcdefghij"), 10, 1, SV("12345678901234567890"), 1, 20, S("abcdefghij2345678901234567890"));
- test(S("abcdefghij"), 10, 1, SV("12345678901234567890"), 10, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, 1, SV("12345678901234567890"), 10, 1, S("abcdefghij1"));
- test(S("abcdefghij"), 10, 1, SV("12345678901234567890"), 10, 5, S("abcdefghij12345"));
- test(S("abcdefghij"), 10, 1, SV("12345678901234567890"), 10, 9, S("abcdefghij123456789"));
- test(S("abcdefghij"), 10, 1, SV("12345678901234567890"), 10, 10, S("abcdefghij1234567890"));
- test(S("abcdefghij"), 10, 1, SV("12345678901234567890"), 10, 11, S("abcdefghij1234567890"));
- test(S("abcdefghij"), 10, 1, SV("12345678901234567890"), 19, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, 1, SV("12345678901234567890"), 19, 1, S("abcdefghij0"));
- test(S("abcdefghij"), 10, 1, SV("12345678901234567890"), 19, 2, S("abcdefghij0"));
- test(S("abcdefghij"), 10, 1, SV("12345678901234567890"), 20, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, 1, SV("12345678901234567890"), 20, 1, S("abcdefghij"));
- test(S("abcdefghij"), 10, 1, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghij"), 11, 0, SV(""), 0, 0, S("can't happen"));
- test(S("abcdefghij"), 11, 0, SV(""), 0, 1, S("can't happen"));
- test(S("abcdefghij"), 11, 0, SV(""), 1, 0, S("can't happen"));
- test(S("abcdefghij"), 11, 0, SV("12345"), 0, 0, S("can't happen"));
- test(S("abcdefghij"), 11, 0, SV("12345"), 0, 1, S("can't happen"));
- test(S("abcdefghij"), 11, 0, SV("12345"), 0, 2, S("can't happen"));
- test(S("abcdefghij"), 11, 0, SV("12345"), 0, 4, S("can't happen"));
- test(S("abcdefghij"), 11, 0, SV("12345"), 0, 5, S("can't happen"));
- test(S("abcdefghij"), 11, 0, SV("12345"), 0, 6, S("can't happen"));
- test(S("abcdefghij"), 11, 0, SV("12345"), 1, 0, S("can't happen"));
- test(S("abcdefghij"), 11, 0, SV("12345"), 1, 1, S("can't happen"));
- test(S("abcdefghij"), 11, 0, SV("12345"), 1, 2, S("can't happen"));
- test(S("abcdefghij"), 11, 0, SV("12345"), 1, 3, S("can't happen"));
- test(S("abcdefghij"), 11, 0, SV("12345"), 1, 4, S("can't happen"));
- test(S("abcdefghij"), 11, 0, SV("12345"), 1, 5, S("can't happen"));
- test(S("abcdefghij"), 11, 0, SV("12345"), 2, 0, S("can't happen"));
- test(S("abcdefghij"), 11, 0, SV("12345"), 2, 1, S("can't happen"));
- test(S("abcdefghij"), 11, 0, SV("12345"), 2, 2, S("can't happen"));
- test(S("abcdefghij"), 11, 0, SV("12345"), 2, 3, S("can't happen"));
- test(S("abcdefghij"), 11, 0, SV("12345"), 2, 4, S("can't happen"));
- test(S("abcdefghij"), 11, 0, SV("12345"), 4, 0, S("can't happen"));
- test(S("abcdefghij"), 11, 0, SV("12345"), 4, 1, S("can't happen"));
- test(S("abcdefghij"), 11, 0, SV("12345"), 4, 2, S("can't happen"));
- test(S("abcdefghij"), 11, 0, SV("12345"), 5, 0, S("can't happen"));
- test(S("abcdefghij"), 11, 0, SV("12345"), 5, 1, S("can't happen"));
- test(S("abcdefghij"), 11, 0, SV("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghij"), 11, 0, SV("1234567890"), 0, 0, S("can't happen"));
- test(S("abcdefghij"), 11, 0, SV("1234567890"), 0, 1, S("can't happen"));
- test(S("abcdefghij"), 11, 0, SV("1234567890"), 0, 5, S("can't happen"));
- test(S("abcdefghij"), 11, 0, SV("1234567890"), 0, 9, S("can't happen"));
- test(S("abcdefghij"), 11, 0, SV("1234567890"), 0, 10, S("can't happen"));
- test(S("abcdefghij"), 11, 0, SV("1234567890"), 0, 11, S("can't happen"));
- test(S("abcdefghij"), 11, 0, SV("1234567890"), 1, 0, S("can't happen"));
- test(S("abcdefghij"), 11, 0, SV("1234567890"), 1, 1, S("can't happen"));
- test(S("abcdefghij"), 11, 0, SV("1234567890"), 1, 4, S("can't happen"));
- test(S("abcdefghij"), 11, 0, SV("1234567890"), 1, 8, S("can't happen"));
- test(S("abcdefghij"), 11, 0, SV("1234567890"), 1, 9, S("can't happen"));
- test(S("abcdefghij"), 11, 0, SV("1234567890"), 1, 10, S("can't happen"));
- test(S("abcdefghij"), 11, 0, SV("1234567890"), 5, 0, S("can't happen"));
- test(S("abcdefghij"), 11, 0, SV("1234567890"), 5, 1, S("can't happen"));
- test(S("abcdefghij"), 11, 0, SV("1234567890"), 5, 2, S("can't happen"));
- test(S("abcdefghij"), 11, 0, SV("1234567890"), 5, 4, S("can't happen"));
- test(S("abcdefghij"), 11, 0, SV("1234567890"), 5, 5, S("can't happen"));
- test(S("abcdefghij"), 11, 0, SV("1234567890"), 5, 6, S("can't happen"));
- test(S("abcdefghij"), 11, 0, SV("1234567890"), 9, 0, S("can't happen"));
- test(S("abcdefghij"), 11, 0, SV("1234567890"), 9, 1, S("can't happen"));
- test(S("abcdefghij"), 11, 0, SV("1234567890"), 9, 2, S("can't happen"));
- test(S("abcdefghij"), 11, 0, SV("1234567890"), 10, 0, S("can't happen"));
- test(S("abcdefghij"), 11, 0, SV("1234567890"), 10, 1, S("can't happen"));
- test(S("abcdefghij"), 11, 0, SV("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghij"), 11, 0, SV("12345678901234567890"), 0, 0, S("can't happen"));
- test(S("abcdefghij"), 11, 0, SV("12345678901234567890"), 0, 1, S("can't happen"));
- test(S("abcdefghij"), 11, 0, SV("12345678901234567890"), 0, 10, S("can't happen"));
- test(S("abcdefghij"), 11, 0, SV("12345678901234567890"), 0, 19, S("can't happen"));
- test(S("abcdefghij"), 11, 0, SV("12345678901234567890"), 0, 20, S("can't happen"));
- test(S("abcdefghij"), 11, 0, SV("12345678901234567890"), 0, 21, S("can't happen"));
- test(S("abcdefghij"), 11, 0, SV("12345678901234567890"), 1, 0, S("can't happen"));
- test(S("abcdefghij"), 11, 0, SV("12345678901234567890"), 1, 1, S("can't happen"));
- test(S("abcdefghij"), 11, 0, SV("12345678901234567890"), 1, 9, S("can't happen"));
- test(S("abcdefghij"), 11, 0, SV("12345678901234567890"), 1, 18, S("can't happen"));
- test(S("abcdefghij"), 11, 0, SV("12345678901234567890"), 1, 19, S("can't happen"));
- test(S("abcdefghij"), 11, 0, SV("12345678901234567890"), 1, 20, S("can't happen"));
- test(S("abcdefghij"), 11, 0, SV("12345678901234567890"), 10, 0, S("can't happen"));
- test(S("abcdefghij"), 11, 0, SV("12345678901234567890"), 10, 1, S("can't happen"));
- test(S("abcdefghij"), 11, 0, SV("12345678901234567890"), 10, 5, S("can't happen"));
- test(S("abcdefghij"), 11, 0, SV("12345678901234567890"), 10, 9, S("can't happen"));
- test(S("abcdefghij"), 11, 0, SV("12345678901234567890"), 10, 10, S("can't happen"));
- test(S("abcdefghij"), 11, 0, SV("12345678901234567890"), 10, 11, S("can't happen"));
- test(S("abcdefghij"), 11, 0, SV("12345678901234567890"), 19, 0, S("can't happen"));
- test(S("abcdefghij"), 11, 0, SV("12345678901234567890"), 19, 1, S("can't happen"));
- test(S("abcdefghij"), 11, 0, SV("12345678901234567890"), 19, 2, S("can't happen"));
- test(S("abcdefghij"), 11, 0, SV("12345678901234567890"), 20, 0, S("can't happen"));
- test(S("abcdefghij"), 11, 0, SV("12345678901234567890"), 20, 1, S("can't happen"));
- test(S("abcdefghij"), 11, 0, SV("12345678901234567890"), 21, 0, S("can't happen"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test36() {
+ test(S("abcdefghij"), 10, 1, SV("1234567890"), 10, 1, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 1, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghij"), 10, 1, SV("12345678901234567890"), 0, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 1, SV("12345678901234567890"), 0, 1, S("abcdefghij1"));
+ test(S("abcdefghij"), 10, 1, SV("12345678901234567890"), 0, 10, S("abcdefghij1234567890"));
+ test(S("abcdefghij"), 10, 1, SV("12345678901234567890"), 0, 19, S("abcdefghij1234567890123456789"));
+ test(S("abcdefghij"), 10, 1, SV("12345678901234567890"), 0, 20, S("abcdefghij12345678901234567890"));
+ test(S("abcdefghij"), 10, 1, SV("12345678901234567890"), 0, 21, S("abcdefghij12345678901234567890"));
+ test(S("abcdefghij"), 10, 1, SV("12345678901234567890"), 1, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 1, SV("12345678901234567890"), 1, 1, S("abcdefghij2"));
+ test(S("abcdefghij"), 10, 1, SV("12345678901234567890"), 1, 9, S("abcdefghij234567890"));
+ test(S("abcdefghij"), 10, 1, SV("12345678901234567890"), 1, 18, S("abcdefghij234567890123456789"));
+ test(S("abcdefghij"), 10, 1, SV("12345678901234567890"), 1, 19, S("abcdefghij2345678901234567890"));
+ test(S("abcdefghij"), 10, 1, SV("12345678901234567890"), 1, 20, S("abcdefghij2345678901234567890"));
+ test(S("abcdefghij"), 10, 1, SV("12345678901234567890"), 10, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 1, SV("12345678901234567890"), 10, 1, S("abcdefghij1"));
+ test(S("abcdefghij"), 10, 1, SV("12345678901234567890"), 10, 5, S("abcdefghij12345"));
+ test(S("abcdefghij"), 10, 1, SV("12345678901234567890"), 10, 9, S("abcdefghij123456789"));
+ test(S("abcdefghij"), 10, 1, SV("12345678901234567890"), 10, 10, S("abcdefghij1234567890"));
+ test(S("abcdefghij"), 10, 1, SV("12345678901234567890"), 10, 11, S("abcdefghij1234567890"));
+ test(S("abcdefghij"), 10, 1, SV("12345678901234567890"), 19, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 1, SV("12345678901234567890"), 19, 1, S("abcdefghij0"));
+ test(S("abcdefghij"), 10, 1, SV("12345678901234567890"), 19, 2, S("abcdefghij0"));
+ test(S("abcdefghij"), 10, 1, SV("12345678901234567890"), 20, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 1, SV("12345678901234567890"), 20, 1, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 1, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, SV(""), 0, 0, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, SV(""), 0, 1, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, SV(""), 1, 0, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, SV("12345"), 0, 0, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, SV("12345"), 0, 1, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, SV("12345"), 0, 2, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, SV("12345"), 0, 4, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, SV("12345"), 0, 5, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, SV("12345"), 0, 6, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, SV("12345"), 1, 0, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, SV("12345"), 1, 1, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, SV("12345"), 1, 2, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, SV("12345"), 1, 3, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, SV("12345"), 1, 4, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, SV("12345"), 1, 5, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, SV("12345"), 2, 0, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, SV("12345"), 2, 1, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, SV("12345"), 2, 2, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, SV("12345"), 2, 3, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, SV("12345"), 2, 4, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, SV("12345"), 4, 0, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, SV("12345"), 4, 1, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, SV("12345"), 4, 2, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, SV("12345"), 5, 0, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, SV("12345"), 5, 1, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, SV("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, SV("1234567890"), 0, 0, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, SV("1234567890"), 0, 1, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, SV("1234567890"), 0, 5, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, SV("1234567890"), 0, 9, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, SV("1234567890"), 0, 10, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, SV("1234567890"), 0, 11, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, SV("1234567890"), 1, 0, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, SV("1234567890"), 1, 1, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, SV("1234567890"), 1, 4, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, SV("1234567890"), 1, 8, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, SV("1234567890"), 1, 9, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, SV("1234567890"), 1, 10, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, SV("1234567890"), 5, 0, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, SV("1234567890"), 5, 1, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, SV("1234567890"), 5, 2, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, SV("1234567890"), 5, 4, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, SV("1234567890"), 5, 5, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, SV("1234567890"), 5, 6, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, SV("1234567890"), 9, 0, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, SV("1234567890"), 9, 1, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, SV("1234567890"), 9, 2, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, SV("1234567890"), 10, 0, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, SV("1234567890"), 10, 1, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, SV("12345678901234567890"), 0, 0, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, SV("12345678901234567890"), 0, 1, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, SV("12345678901234567890"), 0, 10, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, SV("12345678901234567890"), 0, 19, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, SV("12345678901234567890"), 0, 20, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, SV("12345678901234567890"), 0, 21, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, SV("12345678901234567890"), 1, 0, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, SV("12345678901234567890"), 1, 1, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, SV("12345678901234567890"), 1, 9, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, SV("12345678901234567890"), 1, 18, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, SV("12345678901234567890"), 1, 19, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, SV("12345678901234567890"), 1, 20, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, SV("12345678901234567890"), 10, 0, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, SV("12345678901234567890"), 10, 1, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, SV("12345678901234567890"), 10, 5, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, SV("12345678901234567890"), 10, 9, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, SV("12345678901234567890"), 10, 10, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, SV("12345678901234567890"), 10, 11, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, SV("12345678901234567890"), 19, 0, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, SV("12345678901234567890"), 19, 1, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, SV("12345678901234567890"), 19, 2, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, SV("12345678901234567890"), 20, 0, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, SV("12345678901234567890"), 20, 1, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, SV("12345678901234567890"), 21, 0, S("can't happen"));
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test37()
-{
- test(S("abcdefghijklmnopqrst"), 0, 0, SV(""), 0, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, SV(""), 0, 1, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, SV(""), 1, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345"), 0, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345"), 0, 1, S("1abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345"), 0, 2, S("12abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345"), 0, 4, S("1234abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345"), 0, 5, S("12345abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345"), 0, 6, S("12345abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345"), 1, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345"), 1, 1, S("2abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345"), 1, 2, S("23abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345"), 1, 3, S("234abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345"), 1, 4, S("2345abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345"), 1, 5, S("2345abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345"), 2, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345"), 2, 1, S("3abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345"), 2, 2, S("34abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345"), 2, 3, S("345abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345"), 2, 4, S("345abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345"), 4, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345"), 4, 1, S("5abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345"), 4, 2, S("5abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345"), 5, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345"), 5, 1, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("1234567890"), 0, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("1234567890"), 0, 1, S("1abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("1234567890"), 0, 5, S("12345abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("1234567890"), 0, 9, S("123456789abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("1234567890"), 0, 10, S("1234567890abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("1234567890"), 0, 11, S("1234567890abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("1234567890"), 1, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("1234567890"), 1, 1, S("2abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("1234567890"), 1, 4, S("2345abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("1234567890"), 1, 8, S("23456789abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("1234567890"), 1, 9, S("234567890abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("1234567890"), 1, 10, S("234567890abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("1234567890"), 5, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("1234567890"), 5, 1, S("6abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("1234567890"), 5, 2, S("67abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("1234567890"), 5, 4, S("6789abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("1234567890"), 5, 5, S("67890abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("1234567890"), 5, 6, S("67890abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("1234567890"), 9, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("1234567890"), 9, 1, S("0abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("1234567890"), 9, 2, S("0abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("1234567890"), 10, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("1234567890"), 10, 1, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345678901234567890"), 0, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345678901234567890"), 0, 1, S("1abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345678901234567890"), 0, 10, S("1234567890abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345678901234567890"), 0, 19, S("1234567890123456789abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345678901234567890"), 0, 20, S("12345678901234567890abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345678901234567890"), 0, 21, S("12345678901234567890abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345678901234567890"), 1, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345678901234567890"), 1, 1, S("2abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345678901234567890"), 1, 9, S("234567890abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345678901234567890"), 1, 18, S("234567890123456789abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345678901234567890"), 1, 19, S("2345678901234567890abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345678901234567890"), 1, 20, S("2345678901234567890abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345678901234567890"), 10, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345678901234567890"), 10, 1, S("1abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345678901234567890"), 10, 5, S("12345abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345678901234567890"), 10, 9, S("123456789abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345678901234567890"), 10, 10, S("1234567890abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345678901234567890"), 10, 11, S("1234567890abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345678901234567890"), 19, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345678901234567890"), 19, 1, S("0abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345678901234567890"), 19, 2, S("0abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345678901234567890"), 20, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345678901234567890"), 20, 1, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 0, 1, SV(""), 0, 0, S("bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, SV(""), 0, 1, S("bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, SV(""), 1, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345"), 0, 0, S("bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345"), 0, 1, S("1bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345"), 0, 2, S("12bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345"), 0, 4, S("1234bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345"), 0, 5, S("12345bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345"), 0, 6, S("12345bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345"), 1, 0, S("bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345"), 1, 1, S("2bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345"), 1, 2, S("23bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345"), 1, 3, S("234bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345"), 1, 4, S("2345bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345"), 1, 5, S("2345bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345"), 2, 0, S("bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345"), 2, 1, S("3bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345"), 2, 2, S("34bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345"), 2, 3, S("345bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345"), 2, 4, S("345bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345"), 4, 0, S("bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345"), 4, 1, S("5bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345"), 4, 2, S("5bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345"), 5, 0, S("bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345"), 5, 1, S("bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345"), 6, 0, S("can't happen"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test37() {
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV(""), 0, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV(""), 0, 1, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV(""), 1, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345"), 0, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345"), 0, 1, S("1abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345"), 0, 2, S("12abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345"), 0, 4, S("1234abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345"), 0, 5, S("12345abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345"), 0, 6, S("12345abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345"), 1, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345"), 1, 1, S("2abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345"), 1, 2, S("23abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345"), 1, 3, S("234abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345"), 1, 4, S("2345abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345"), 1, 5, S("2345abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345"), 2, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345"), 2, 1, S("3abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345"), 2, 2, S("34abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345"), 2, 3, S("345abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345"), 2, 4, S("345abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345"), 4, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345"), 4, 1, S("5abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345"), 4, 2, S("5abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345"), 5, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345"), 5, 1, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("1234567890"), 0, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("1234567890"), 0, 1, S("1abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("1234567890"), 0, 5, S("12345abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("1234567890"), 0, 9, S("123456789abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("1234567890"), 0, 10, S("1234567890abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("1234567890"), 0, 11, S("1234567890abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("1234567890"), 1, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("1234567890"), 1, 1, S("2abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("1234567890"), 1, 4, S("2345abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("1234567890"), 1, 8, S("23456789abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("1234567890"), 1, 9, S("234567890abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("1234567890"), 1, 10, S("234567890abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("1234567890"), 5, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("1234567890"), 5, 1, S("6abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("1234567890"), 5, 2, S("67abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("1234567890"), 5, 4, S("6789abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("1234567890"), 5, 5, S("67890abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("1234567890"), 5, 6, S("67890abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("1234567890"), 9, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("1234567890"), 9, 1, S("0abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("1234567890"), 9, 2, S("0abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("1234567890"), 10, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("1234567890"), 10, 1, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345678901234567890"), 0, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345678901234567890"), 0, 1, S("1abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345678901234567890"), 0, 10, S("1234567890abcdefghijklmnopqrst"));
+ test(
+ S("abcdefghijklmnopqrst"), 0, 0, SV("12345678901234567890"), 0, 19, S("1234567890123456789abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"),
+ 0,
+ 0,
+ SV("12345678901234567890"),
+ 0,
+ 20,
+ S("12345678901234567890abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"),
+ 0,
+ 0,
+ SV("12345678901234567890"),
+ 0,
+ 21,
+ S("12345678901234567890abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345678901234567890"), 1, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345678901234567890"), 1, 1, S("2abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345678901234567890"), 1, 9, S("234567890abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345678901234567890"), 1, 18, S("234567890123456789abcdefghijklmnopqrst"));
+ test(
+ S("abcdefghijklmnopqrst"), 0, 0, SV("12345678901234567890"), 1, 19, S("2345678901234567890abcdefghijklmnopqrst"));
+ test(
+ S("abcdefghijklmnopqrst"), 0, 0, SV("12345678901234567890"), 1, 20, S("2345678901234567890abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345678901234567890"), 10, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345678901234567890"), 10, 1, S("1abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345678901234567890"), 10, 5, S("12345abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345678901234567890"), 10, 9, S("123456789abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345678901234567890"), 10, 10, S("1234567890abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345678901234567890"), 10, 11, S("1234567890abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345678901234567890"), 19, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345678901234567890"), 19, 1, S("0abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345678901234567890"), 19, 2, S("0abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345678901234567890"), 20, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345678901234567890"), 20, 1, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV(""), 0, 0, S("bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV(""), 0, 1, S("bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV(""), 1, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345"), 0, 0, S("bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345"), 0, 1, S("1bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345"), 0, 2, S("12bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345"), 0, 4, S("1234bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345"), 0, 5, S("12345bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345"), 0, 6, S("12345bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345"), 1, 0, S("bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345"), 1, 1, S("2bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345"), 1, 2, S("23bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345"), 1, 3, S("234bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345"), 1, 4, S("2345bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345"), 1, 5, S("2345bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345"), 2, 0, S("bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345"), 2, 1, S("3bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345"), 2, 2, S("34bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345"), 2, 3, S("345bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345"), 2, 4, S("345bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345"), 4, 0, S("bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345"), 4, 1, S("5bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345"), 4, 2, S("5bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345"), 5, 0, S("bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345"), 5, 1, S("bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345"), 6, 0, S("can't happen"));
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test38()
-{
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("1234567890"), 0, 0, S("bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("1234567890"), 0, 1, S("1bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("1234567890"), 0, 5, S("12345bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("1234567890"), 0, 9, S("123456789bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("1234567890"), 0, 10, S("1234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("1234567890"), 0, 11, S("1234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("1234567890"), 1, 0, S("bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("1234567890"), 1, 1, S("2bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("1234567890"), 1, 4, S("2345bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("1234567890"), 1, 8, S("23456789bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("1234567890"), 1, 9, S("234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("1234567890"), 1, 10, S("234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("1234567890"), 5, 0, S("bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("1234567890"), 5, 1, S("6bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("1234567890"), 5, 2, S("67bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("1234567890"), 5, 4, S("6789bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("1234567890"), 5, 5, S("67890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("1234567890"), 5, 6, S("67890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("1234567890"), 9, 0, S("bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("1234567890"), 9, 1, S("0bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("1234567890"), 9, 2, S("0bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("1234567890"), 10, 0, S("bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("1234567890"), 10, 1, S("bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345678901234567890"), 0, 0, S("bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345678901234567890"), 0, 1, S("1bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345678901234567890"), 0, 10, S("1234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345678901234567890"), 0, 19, S("1234567890123456789bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345678901234567890"), 0, 20, S("12345678901234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345678901234567890"), 0, 21, S("12345678901234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345678901234567890"), 1, 0, S("bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345678901234567890"), 1, 1, S("2bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345678901234567890"), 1, 9, S("234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345678901234567890"), 1, 18, S("234567890123456789bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345678901234567890"), 1, 19, S("2345678901234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345678901234567890"), 1, 20, S("2345678901234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345678901234567890"), 10, 0, S("bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345678901234567890"), 10, 1, S("1bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345678901234567890"), 10, 5, S("12345bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345678901234567890"), 10, 9, S("123456789bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345678901234567890"), 10, 10, S("1234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345678901234567890"), 10, 11, S("1234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345678901234567890"), 19, 0, S("bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345678901234567890"), 19, 1, S("0bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345678901234567890"), 19, 2, S("0bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345678901234567890"), 20, 0, S("bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345678901234567890"), 20, 1, S("bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 0, 10, SV(""), 0, 0, S("klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, SV(""), 0, 1, S("klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, SV(""), 1, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345"), 0, 0, S("klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345"), 0, 1, S("1klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345"), 0, 2, S("12klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345"), 0, 4, S("1234klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345"), 0, 5, S("12345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345"), 0, 6, S("12345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345"), 1, 0, S("klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345"), 1, 1, S("2klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345"), 1, 2, S("23klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345"), 1, 3, S("234klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345"), 1, 4, S("2345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345"), 1, 5, S("2345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345"), 2, 0, S("klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345"), 2, 1, S("3klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345"), 2, 2, S("34klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345"), 2, 3, S("345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345"), 2, 4, S("345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345"), 4, 0, S("klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345"), 4, 1, S("5klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345"), 4, 2, S("5klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345"), 5, 0, S("klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345"), 5, 1, S("klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("1234567890"), 0, 0, S("klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("1234567890"), 0, 1, S("1klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("1234567890"), 0, 5, S("12345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("1234567890"), 0, 9, S("123456789klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("1234567890"), 0, 10, S("1234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("1234567890"), 0, 11, S("1234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("1234567890"), 1, 0, S("klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("1234567890"), 1, 1, S("2klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("1234567890"), 1, 4, S("2345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("1234567890"), 1, 8, S("23456789klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("1234567890"), 1, 9, S("234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("1234567890"), 1, 10, S("234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("1234567890"), 5, 0, S("klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("1234567890"), 5, 1, S("6klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("1234567890"), 5, 2, S("67klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("1234567890"), 5, 4, S("6789klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("1234567890"), 5, 5, S("67890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("1234567890"), 5, 6, S("67890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("1234567890"), 9, 0, S("klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("1234567890"), 9, 1, S("0klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("1234567890"), 9, 2, S("0klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("1234567890"), 10, 0, S("klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("1234567890"), 10, 1, S("klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345678901234567890"), 0, 0, S("klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345678901234567890"), 0, 1, S("1klmnopqrst"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test38() {
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("1234567890"), 0, 0, S("bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("1234567890"), 0, 1, S("1bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("1234567890"), 0, 5, S("12345bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("1234567890"), 0, 9, S("123456789bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("1234567890"), 0, 10, S("1234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("1234567890"), 0, 11, S("1234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("1234567890"), 1, 0, S("bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("1234567890"), 1, 1, S("2bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("1234567890"), 1, 4, S("2345bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("1234567890"), 1, 8, S("23456789bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("1234567890"), 1, 9, S("234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("1234567890"), 1, 10, S("234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("1234567890"), 5, 0, S("bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("1234567890"), 5, 1, S("6bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("1234567890"), 5, 2, S("67bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("1234567890"), 5, 4, S("6789bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("1234567890"), 5, 5, S("67890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("1234567890"), 5, 6, S("67890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("1234567890"), 9, 0, S("bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("1234567890"), 9, 1, S("0bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("1234567890"), 9, 2, S("0bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("1234567890"), 10, 0, S("bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("1234567890"), 10, 1, S("bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345678901234567890"), 0, 0, S("bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345678901234567890"), 0, 1, S("1bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345678901234567890"), 0, 10, S("1234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345678901234567890"), 0, 19, S("1234567890123456789bcdefghijklmnopqrst"));
+ test(
+ S("abcdefghijklmnopqrst"), 0, 1, SV("12345678901234567890"), 0, 20, S("12345678901234567890bcdefghijklmnopqrst"));
+ test(
+ S("abcdefghijklmnopqrst"), 0, 1, SV("12345678901234567890"), 0, 21, S("12345678901234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345678901234567890"), 1, 0, S("bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345678901234567890"), 1, 1, S("2bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345678901234567890"), 1, 9, S("234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345678901234567890"), 1, 18, S("234567890123456789bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345678901234567890"), 1, 19, S("2345678901234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345678901234567890"), 1, 20, S("2345678901234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345678901234567890"), 10, 0, S("bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345678901234567890"), 10, 1, S("1bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345678901234567890"), 10, 5, S("12345bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345678901234567890"), 10, 9, S("123456789bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345678901234567890"), 10, 10, S("1234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345678901234567890"), 10, 11, S("1234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345678901234567890"), 19, 0, S("bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345678901234567890"), 19, 1, S("0bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345678901234567890"), 19, 2, S("0bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345678901234567890"), 20, 0, S("bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345678901234567890"), 20, 1, S("bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV(""), 0, 0, S("klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV(""), 0, 1, S("klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV(""), 1, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345"), 0, 0, S("klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345"), 0, 1, S("1klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345"), 0, 2, S("12klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345"), 0, 4, S("1234klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345"), 0, 5, S("12345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345"), 0, 6, S("12345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345"), 1, 0, S("klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345"), 1, 1, S("2klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345"), 1, 2, S("23klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345"), 1, 3, S("234klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345"), 1, 4, S("2345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345"), 1, 5, S("2345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345"), 2, 0, S("klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345"), 2, 1, S("3klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345"), 2, 2, S("34klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345"), 2, 3, S("345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345"), 2, 4, S("345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345"), 4, 0, S("klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345"), 4, 1, S("5klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345"), 4, 2, S("5klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345"), 5, 0, S("klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345"), 5, 1, S("klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("1234567890"), 0, 0, S("klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("1234567890"), 0, 1, S("1klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("1234567890"), 0, 5, S("12345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("1234567890"), 0, 9, S("123456789klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("1234567890"), 0, 10, S("1234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("1234567890"), 0, 11, S("1234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("1234567890"), 1, 0, S("klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("1234567890"), 1, 1, S("2klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("1234567890"), 1, 4, S("2345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("1234567890"), 1, 8, S("23456789klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("1234567890"), 1, 9, S("234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("1234567890"), 1, 10, S("234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("1234567890"), 5, 0, S("klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("1234567890"), 5, 1, S("6klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("1234567890"), 5, 2, S("67klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("1234567890"), 5, 4, S("6789klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("1234567890"), 5, 5, S("67890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("1234567890"), 5, 6, S("67890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("1234567890"), 9, 0, S("klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("1234567890"), 9, 1, S("0klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("1234567890"), 9, 2, S("0klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("1234567890"), 10, 0, S("klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("1234567890"), 10, 1, S("klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345678901234567890"), 0, 0, S("klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345678901234567890"), 0, 1, S("1klmnopqrst"));
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test39()
-{
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345678901234567890"), 0, 10, S("1234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345678901234567890"), 0, 19, S("1234567890123456789klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345678901234567890"), 0, 20, S("12345678901234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345678901234567890"), 0, 21, S("12345678901234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345678901234567890"), 1, 0, S("klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345678901234567890"), 1, 1, S("2klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345678901234567890"), 1, 9, S("234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345678901234567890"), 1, 18, S("234567890123456789klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345678901234567890"), 1, 19, S("2345678901234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345678901234567890"), 1, 20, S("2345678901234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345678901234567890"), 10, 0, S("klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345678901234567890"), 10, 1, S("1klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345678901234567890"), 10, 5, S("12345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345678901234567890"), 10, 9, S("123456789klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345678901234567890"), 10, 10, S("1234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345678901234567890"), 10, 11, S("1234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345678901234567890"), 19, 0, S("klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345678901234567890"), 19, 1, S("0klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345678901234567890"), 19, 2, S("0klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345678901234567890"), 20, 0, S("klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345678901234567890"), 20, 1, S("klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 0, 19, SV(""), 0, 0, S("t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, SV(""), 0, 1, S("t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, SV(""), 1, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345"), 0, 0, S("t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345"), 0, 1, S("1t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345"), 0, 2, S("12t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345"), 0, 4, S("1234t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345"), 0, 5, S("12345t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345"), 0, 6, S("12345t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345"), 1, 0, S("t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345"), 1, 1, S("2t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345"), 1, 2, S("23t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345"), 1, 3, S("234t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345"), 1, 4, S("2345t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345"), 1, 5, S("2345t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345"), 2, 0, S("t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345"), 2, 1, S("3t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345"), 2, 2, S("34t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345"), 2, 3, S("345t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345"), 2, 4, S("345t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345"), 4, 0, S("t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345"), 4, 1, S("5t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345"), 4, 2, S("5t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345"), 5, 0, S("t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345"), 5, 1, S("t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("1234567890"), 0, 0, S("t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("1234567890"), 0, 1, S("1t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("1234567890"), 0, 5, S("12345t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("1234567890"), 0, 9, S("123456789t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("1234567890"), 0, 10, S("1234567890t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("1234567890"), 0, 11, S("1234567890t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("1234567890"), 1, 0, S("t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("1234567890"), 1, 1, S("2t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("1234567890"), 1, 4, S("2345t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("1234567890"), 1, 8, S("23456789t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("1234567890"), 1, 9, S("234567890t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("1234567890"), 1, 10, S("234567890t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("1234567890"), 5, 0, S("t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("1234567890"), 5, 1, S("6t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("1234567890"), 5, 2, S("67t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("1234567890"), 5, 4, S("6789t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("1234567890"), 5, 5, S("67890t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("1234567890"), 5, 6, S("67890t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("1234567890"), 9, 0, S("t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("1234567890"), 9, 1, S("0t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("1234567890"), 9, 2, S("0t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("1234567890"), 10, 0, S("t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("1234567890"), 10, 1, S("t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345678901234567890"), 0, 0, S("t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345678901234567890"), 0, 1, S("1t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345678901234567890"), 0, 10, S("1234567890t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345678901234567890"), 0, 19, S("1234567890123456789t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345678901234567890"), 0, 20, S("12345678901234567890t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345678901234567890"), 0, 21, S("12345678901234567890t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345678901234567890"), 1, 0, S("t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345678901234567890"), 1, 1, S("2t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345678901234567890"), 1, 9, S("234567890t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345678901234567890"), 1, 18, S("234567890123456789t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345678901234567890"), 1, 19, S("2345678901234567890t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345678901234567890"), 1, 20, S("2345678901234567890t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345678901234567890"), 10, 0, S("t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345678901234567890"), 10, 1, S("1t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345678901234567890"), 10, 5, S("12345t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345678901234567890"), 10, 9, S("123456789t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345678901234567890"), 10, 10, S("1234567890t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345678901234567890"), 10, 11, S("1234567890t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345678901234567890"), 19, 0, S("t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345678901234567890"), 19, 1, S("0t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345678901234567890"), 19, 2, S("0t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345678901234567890"), 20, 0, S("t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345678901234567890"), 20, 1, S("t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 0, 20, SV(""), 0, 0, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 20, SV(""), 0, 1, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 20, SV(""), 1, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345"), 0, 0, S(""));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test39() {
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345678901234567890"), 0, 10, S("1234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345678901234567890"), 0, 19, S("1234567890123456789klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345678901234567890"), 0, 20, S("12345678901234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345678901234567890"), 0, 21, S("12345678901234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345678901234567890"), 1, 0, S("klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345678901234567890"), 1, 1, S("2klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345678901234567890"), 1, 9, S("234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345678901234567890"), 1, 18, S("234567890123456789klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345678901234567890"), 1, 19, S("2345678901234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345678901234567890"), 1, 20, S("2345678901234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345678901234567890"), 10, 0, S("klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345678901234567890"), 10, 1, S("1klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345678901234567890"), 10, 5, S("12345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345678901234567890"), 10, 9, S("123456789klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345678901234567890"), 10, 10, S("1234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345678901234567890"), 10, 11, S("1234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345678901234567890"), 19, 0, S("klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345678901234567890"), 19, 1, S("0klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345678901234567890"), 19, 2, S("0klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345678901234567890"), 20, 0, S("klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345678901234567890"), 20, 1, S("klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV(""), 0, 0, S("t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV(""), 0, 1, S("t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV(""), 1, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345"), 0, 0, S("t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345"), 0, 1, S("1t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345"), 0, 2, S("12t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345"), 0, 4, S("1234t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345"), 0, 5, S("12345t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345"), 0, 6, S("12345t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345"), 1, 0, S("t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345"), 1, 1, S("2t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345"), 1, 2, S("23t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345"), 1, 3, S("234t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345"), 1, 4, S("2345t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345"), 1, 5, S("2345t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345"), 2, 0, S("t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345"), 2, 1, S("3t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345"), 2, 2, S("34t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345"), 2, 3, S("345t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345"), 2, 4, S("345t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345"), 4, 0, S("t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345"), 4, 1, S("5t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345"), 4, 2, S("5t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345"), 5, 0, S("t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345"), 5, 1, S("t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("1234567890"), 0, 0, S("t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("1234567890"), 0, 1, S("1t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("1234567890"), 0, 5, S("12345t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("1234567890"), 0, 9, S("123456789t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("1234567890"), 0, 10, S("1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("1234567890"), 0, 11, S("1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("1234567890"), 1, 0, S("t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("1234567890"), 1, 1, S("2t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("1234567890"), 1, 4, S("2345t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("1234567890"), 1, 8, S("23456789t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("1234567890"), 1, 9, S("234567890t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("1234567890"), 1, 10, S("234567890t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("1234567890"), 5, 0, S("t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("1234567890"), 5, 1, S("6t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("1234567890"), 5, 2, S("67t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("1234567890"), 5, 4, S("6789t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("1234567890"), 5, 5, S("67890t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("1234567890"), 5, 6, S("67890t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("1234567890"), 9, 0, S("t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("1234567890"), 9, 1, S("0t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("1234567890"), 9, 2, S("0t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("1234567890"), 10, 0, S("t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("1234567890"), 10, 1, S("t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345678901234567890"), 0, 0, S("t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345678901234567890"), 0, 1, S("1t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345678901234567890"), 0, 10, S("1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345678901234567890"), 0, 19, S("1234567890123456789t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345678901234567890"), 0, 20, S("12345678901234567890t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345678901234567890"), 0, 21, S("12345678901234567890t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345678901234567890"), 1, 0, S("t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345678901234567890"), 1, 1, S("2t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345678901234567890"), 1, 9, S("234567890t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345678901234567890"), 1, 18, S("234567890123456789t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345678901234567890"), 1, 19, S("2345678901234567890t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345678901234567890"), 1, 20, S("2345678901234567890t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345678901234567890"), 10, 0, S("t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345678901234567890"), 10, 1, S("1t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345678901234567890"), 10, 5, S("12345t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345678901234567890"), 10, 9, S("123456789t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345678901234567890"), 10, 10, S("1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345678901234567890"), 10, 11, S("1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345678901234567890"), 19, 0, S("t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345678901234567890"), 19, 1, S("0t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345678901234567890"), 19, 2, S("0t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345678901234567890"), 20, 0, S("t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345678901234567890"), 20, 1, S("t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV(""), 0, 0, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV(""), 0, 1, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV(""), 1, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345"), 0, 0, S(""));
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test40()
-{
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345"), 0, 1, S("1"));
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345"), 0, 2, S("12"));
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345"), 0, 4, S("1234"));
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345"), 0, 5, S("12345"));
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345"), 0, 6, S("12345"));
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345"), 1, 0, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345"), 1, 1, S("2"));
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345"), 1, 2, S("23"));
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345"), 1, 3, S("234"));
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345"), 1, 4, S("2345"));
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345"), 1, 5, S("2345"));
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345"), 2, 0, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345"), 2, 1, S("3"));
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345"), 2, 2, S("34"));
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345"), 2, 3, S("345"));
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345"), 2, 4, S("345"));
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345"), 4, 0, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345"), 4, 1, S("5"));
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345"), 4, 2, S("5"));
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345"), 5, 0, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345"), 5, 1, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("1234567890"), 0, 0, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("1234567890"), 0, 1, S("1"));
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("1234567890"), 0, 5, S("12345"));
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("1234567890"), 0, 9, S("123456789"));
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("1234567890"), 0, 10, S("1234567890"));
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("1234567890"), 0, 11, S("1234567890"));
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("1234567890"), 1, 0, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("1234567890"), 1, 1, S("2"));
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("1234567890"), 1, 4, S("2345"));
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("1234567890"), 1, 8, S("23456789"));
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("1234567890"), 1, 9, S("234567890"));
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("1234567890"), 1, 10, S("234567890"));
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("1234567890"), 5, 0, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("1234567890"), 5, 1, S("6"));
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("1234567890"), 5, 2, S("67"));
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("1234567890"), 5, 4, S("6789"));
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("1234567890"), 5, 5, S("67890"));
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("1234567890"), 5, 6, S("67890"));
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("1234567890"), 9, 0, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("1234567890"), 9, 1, S("0"));
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("1234567890"), 9, 2, S("0"));
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("1234567890"), 10, 0, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("1234567890"), 10, 1, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345678901234567890"), 0, 0, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345678901234567890"), 0, 1, S("1"));
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345678901234567890"), 0, 10, S("1234567890"));
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345678901234567890"), 0, 19, S("1234567890123456789"));
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345678901234567890"), 0, 20, S("12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345678901234567890"), 0, 21, S("12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345678901234567890"), 1, 0, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345678901234567890"), 1, 1, S("2"));
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345678901234567890"), 1, 9, S("234567890"));
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345678901234567890"), 1, 18, S("234567890123456789"));
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345678901234567890"), 1, 19, S("2345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345678901234567890"), 1, 20, S("2345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345678901234567890"), 10, 0, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345678901234567890"), 10, 1, S("1"));
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345678901234567890"), 10, 5, S("12345"));
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345678901234567890"), 10, 9, S("123456789"));
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345678901234567890"), 10, 10, S("1234567890"));
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345678901234567890"), 10, 11, S("1234567890"));
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345678901234567890"), 19, 0, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345678901234567890"), 19, 1, S("0"));
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345678901234567890"), 19, 2, S("0"));
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345678901234567890"), 20, 0, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345678901234567890"), 20, 1, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 0, 21, SV(""), 0, 0, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 21, SV(""), 0, 1, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 21, SV(""), 1, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345"), 0, 0, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345"), 0, 1, S("1"));
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345"), 0, 2, S("12"));
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345"), 0, 4, S("1234"));
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345"), 0, 5, S("12345"));
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345"), 0, 6, S("12345"));
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345"), 1, 0, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345"), 1, 1, S("2"));
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345"), 1, 2, S("23"));
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345"), 1, 3, S("234"));
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345"), 1, 4, S("2345"));
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345"), 1, 5, S("2345"));
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345"), 2, 0, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345"), 2, 1, S("3"));
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345"), 2, 2, S("34"));
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345"), 2, 3, S("345"));
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345"), 2, 4, S("345"));
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345"), 4, 0, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345"), 4, 1, S("5"));
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345"), 4, 2, S("5"));
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345"), 5, 0, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345"), 5, 1, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("1234567890"), 0, 0, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("1234567890"), 0, 1, S("1"));
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("1234567890"), 0, 5, S("12345"));
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("1234567890"), 0, 9, S("123456789"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test40() {
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345"), 0, 1, S("1"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345"), 0, 2, S("12"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345"), 0, 4, S("1234"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345"), 0, 5, S("12345"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345"), 0, 6, S("12345"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345"), 1, 0, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345"), 1, 1, S("2"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345"), 1, 2, S("23"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345"), 1, 3, S("234"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345"), 1, 4, S("2345"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345"), 1, 5, S("2345"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345"), 2, 0, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345"), 2, 1, S("3"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345"), 2, 2, S("34"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345"), 2, 3, S("345"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345"), 2, 4, S("345"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345"), 4, 0, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345"), 4, 1, S("5"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345"), 4, 2, S("5"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345"), 5, 0, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345"), 5, 1, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("1234567890"), 0, 0, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("1234567890"), 0, 1, S("1"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("1234567890"), 0, 5, S("12345"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("1234567890"), 0, 9, S("123456789"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("1234567890"), 0, 10, S("1234567890"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("1234567890"), 0, 11, S("1234567890"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("1234567890"), 1, 0, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("1234567890"), 1, 1, S("2"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("1234567890"), 1, 4, S("2345"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("1234567890"), 1, 8, S("23456789"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("1234567890"), 1, 9, S("234567890"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("1234567890"), 1, 10, S("234567890"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("1234567890"), 5, 0, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("1234567890"), 5, 1, S("6"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("1234567890"), 5, 2, S("67"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("1234567890"), 5, 4, S("6789"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("1234567890"), 5, 5, S("67890"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("1234567890"), 5, 6, S("67890"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("1234567890"), 9, 0, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("1234567890"), 9, 1, S("0"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("1234567890"), 9, 2, S("0"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("1234567890"), 10, 0, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("1234567890"), 10, 1, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345678901234567890"), 0, 0, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345678901234567890"), 0, 1, S("1"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345678901234567890"), 0, 10, S("1234567890"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345678901234567890"), 0, 19, S("1234567890123456789"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345678901234567890"), 0, 20, S("12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345678901234567890"), 0, 21, S("12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345678901234567890"), 1, 0, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345678901234567890"), 1, 1, S("2"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345678901234567890"), 1, 9, S("234567890"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345678901234567890"), 1, 18, S("234567890123456789"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345678901234567890"), 1, 19, S("2345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345678901234567890"), 1, 20, S("2345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345678901234567890"), 10, 0, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345678901234567890"), 10, 1, S("1"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345678901234567890"), 10, 5, S("12345"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345678901234567890"), 10, 9, S("123456789"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345678901234567890"), 10, 10, S("1234567890"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345678901234567890"), 10, 11, S("1234567890"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345678901234567890"), 19, 0, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345678901234567890"), 19, 1, S("0"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345678901234567890"), 19, 2, S("0"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345678901234567890"), 20, 0, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345678901234567890"), 20, 1, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV(""), 0, 0, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV(""), 0, 1, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV(""), 1, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345"), 0, 0, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345"), 0, 1, S("1"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345"), 0, 2, S("12"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345"), 0, 4, S("1234"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345"), 0, 5, S("12345"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345"), 0, 6, S("12345"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345"), 1, 0, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345"), 1, 1, S("2"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345"), 1, 2, S("23"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345"), 1, 3, S("234"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345"), 1, 4, S("2345"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345"), 1, 5, S("2345"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345"), 2, 0, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345"), 2, 1, S("3"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345"), 2, 2, S("34"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345"), 2, 3, S("345"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345"), 2, 4, S("345"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345"), 4, 0, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345"), 4, 1, S("5"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345"), 4, 2, S("5"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345"), 5, 0, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345"), 5, 1, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("1234567890"), 0, 0, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("1234567890"), 0, 1, S("1"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("1234567890"), 0, 5, S("12345"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("1234567890"), 0, 9, S("123456789"));
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test41()
-{
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("1234567890"), 0, 10, S("1234567890"));
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("1234567890"), 0, 11, S("1234567890"));
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("1234567890"), 1, 0, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("1234567890"), 1, 1, S("2"));
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("1234567890"), 1, 4, S("2345"));
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("1234567890"), 1, 8, S("23456789"));
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("1234567890"), 1, 9, S("234567890"));
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("1234567890"), 1, 10, S("234567890"));
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("1234567890"), 5, 0, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("1234567890"), 5, 1, S("6"));
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("1234567890"), 5, 2, S("67"));
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("1234567890"), 5, 4, S("6789"));
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("1234567890"), 5, 5, S("67890"));
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("1234567890"), 5, 6, S("67890"));
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("1234567890"), 9, 0, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("1234567890"), 9, 1, S("0"));
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("1234567890"), 9, 2, S("0"));
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("1234567890"), 10, 0, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("1234567890"), 10, 1, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345678901234567890"), 0, 0, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345678901234567890"), 0, 1, S("1"));
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345678901234567890"), 0, 10, S("1234567890"));
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345678901234567890"), 0, 19, S("1234567890123456789"));
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345678901234567890"), 0, 20, S("12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345678901234567890"), 0, 21, S("12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345678901234567890"), 1, 0, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345678901234567890"), 1, 1, S("2"));
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345678901234567890"), 1, 9, S("234567890"));
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345678901234567890"), 1, 18, S("234567890123456789"));
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345678901234567890"), 1, 19, S("2345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345678901234567890"), 1, 20, S("2345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345678901234567890"), 10, 0, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345678901234567890"), 10, 1, S("1"));
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345678901234567890"), 10, 5, S("12345"));
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345678901234567890"), 10, 9, S("123456789"));
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345678901234567890"), 10, 10, S("1234567890"));
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345678901234567890"), 10, 11, S("1234567890"));
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345678901234567890"), 19, 0, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345678901234567890"), 19, 1, S("0"));
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345678901234567890"), 19, 2, S("0"));
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345678901234567890"), 20, 0, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345678901234567890"), 20, 1, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 1, 0, SV(""), 0, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, SV(""), 0, 1, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, SV(""), 1, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345"), 0, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345"), 0, 1, S("a1bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345"), 0, 2, S("a12bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345"), 0, 4, S("a1234bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345"), 0, 5, S("a12345bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345"), 0, 6, S("a12345bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345"), 1, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345"), 1, 1, S("a2bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345"), 1, 2, S("a23bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345"), 1, 3, S("a234bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345"), 1, 4, S("a2345bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345"), 1, 5, S("a2345bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345"), 2, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345"), 2, 1, S("a3bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345"), 2, 2, S("a34bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345"), 2, 3, S("a345bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345"), 2, 4, S("a345bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345"), 4, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345"), 4, 1, S("a5bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345"), 4, 2, S("a5bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345"), 5, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345"), 5, 1, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("1234567890"), 0, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("1234567890"), 0, 1, S("a1bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("1234567890"), 0, 5, S("a12345bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("1234567890"), 0, 9, S("a123456789bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("1234567890"), 0, 10, S("a1234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("1234567890"), 0, 11, S("a1234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("1234567890"), 1, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("1234567890"), 1, 1, S("a2bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("1234567890"), 1, 4, S("a2345bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("1234567890"), 1, 8, S("a23456789bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("1234567890"), 1, 9, S("a234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("1234567890"), 1, 10, S("a234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("1234567890"), 5, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("1234567890"), 5, 1, S("a6bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("1234567890"), 5, 2, S("a67bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("1234567890"), 5, 4, S("a6789bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("1234567890"), 5, 5, S("a67890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("1234567890"), 5, 6, S("a67890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("1234567890"), 9, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("1234567890"), 9, 1, S("a0bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("1234567890"), 9, 2, S("a0bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("1234567890"), 10, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("1234567890"), 10, 1, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345678901234567890"), 0, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345678901234567890"), 0, 1, S("a1bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345678901234567890"), 0, 10, S("a1234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345678901234567890"), 0, 19, S("a1234567890123456789bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345678901234567890"), 0, 20, S("a12345678901234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345678901234567890"), 0, 21, S("a12345678901234567890bcdefghijklmnopqrst"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test41() {
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("1234567890"), 0, 10, S("1234567890"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("1234567890"), 0, 11, S("1234567890"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("1234567890"), 1, 0, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("1234567890"), 1, 1, S("2"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("1234567890"), 1, 4, S("2345"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("1234567890"), 1, 8, S("23456789"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("1234567890"), 1, 9, S("234567890"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("1234567890"), 1, 10, S("234567890"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("1234567890"), 5, 0, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("1234567890"), 5, 1, S("6"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("1234567890"), 5, 2, S("67"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("1234567890"), 5, 4, S("6789"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("1234567890"), 5, 5, S("67890"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("1234567890"), 5, 6, S("67890"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("1234567890"), 9, 0, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("1234567890"), 9, 1, S("0"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("1234567890"), 9, 2, S("0"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("1234567890"), 10, 0, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("1234567890"), 10, 1, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345678901234567890"), 0, 0, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345678901234567890"), 0, 1, S("1"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345678901234567890"), 0, 10, S("1234567890"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345678901234567890"), 0, 19, S("1234567890123456789"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345678901234567890"), 0, 20, S("12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345678901234567890"), 0, 21, S("12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345678901234567890"), 1, 0, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345678901234567890"), 1, 1, S("2"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345678901234567890"), 1, 9, S("234567890"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345678901234567890"), 1, 18, S("234567890123456789"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345678901234567890"), 1, 19, S("2345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345678901234567890"), 1, 20, S("2345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345678901234567890"), 10, 0, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345678901234567890"), 10, 1, S("1"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345678901234567890"), 10, 5, S("12345"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345678901234567890"), 10, 9, S("123456789"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345678901234567890"), 10, 10, S("1234567890"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345678901234567890"), 10, 11, S("1234567890"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345678901234567890"), 19, 0, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345678901234567890"), 19, 1, S("0"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345678901234567890"), 19, 2, S("0"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345678901234567890"), 20, 0, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345678901234567890"), 20, 1, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV(""), 0, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV(""), 0, 1, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV(""), 1, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345"), 0, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345"), 0, 1, S("a1bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345"), 0, 2, S("a12bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345"), 0, 4, S("a1234bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345"), 0, 5, S("a12345bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345"), 0, 6, S("a12345bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345"), 1, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345"), 1, 1, S("a2bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345"), 1, 2, S("a23bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345"), 1, 3, S("a234bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345"), 1, 4, S("a2345bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345"), 1, 5, S("a2345bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345"), 2, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345"), 2, 1, S("a3bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345"), 2, 2, S("a34bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345"), 2, 3, S("a345bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345"), 2, 4, S("a345bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345"), 4, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345"), 4, 1, S("a5bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345"), 4, 2, S("a5bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345"), 5, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345"), 5, 1, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("1234567890"), 0, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("1234567890"), 0, 1, S("a1bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("1234567890"), 0, 5, S("a12345bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("1234567890"), 0, 9, S("a123456789bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("1234567890"), 0, 10, S("a1234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("1234567890"), 0, 11, S("a1234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("1234567890"), 1, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("1234567890"), 1, 1, S("a2bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("1234567890"), 1, 4, S("a2345bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("1234567890"), 1, 8, S("a23456789bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("1234567890"), 1, 9, S("a234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("1234567890"), 1, 10, S("a234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("1234567890"), 5, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("1234567890"), 5, 1, S("a6bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("1234567890"), 5, 2, S("a67bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("1234567890"), 5, 4, S("a6789bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("1234567890"), 5, 5, S("a67890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("1234567890"), 5, 6, S("a67890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("1234567890"), 9, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("1234567890"), 9, 1, S("a0bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("1234567890"), 9, 2, S("a0bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("1234567890"), 10, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("1234567890"), 10, 1, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345678901234567890"), 0, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345678901234567890"), 0, 1, S("a1bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345678901234567890"), 0, 10, S("a1234567890bcdefghijklmnopqrst"));
+ test(
+ S("abcdefghijklmnopqrst"), 1, 0, SV("12345678901234567890"), 0, 19, S("a1234567890123456789bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"),
+ 1,
+ 0,
+ SV("12345678901234567890"),
+ 0,
+ 20,
+ S("a12345678901234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"),
+ 1,
+ 0,
+ SV("12345678901234567890"),
+ 0,
+ 21,
+ S("a12345678901234567890bcdefghijklmnopqrst"));
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test42()
-{
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345678901234567890"), 1, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345678901234567890"), 1, 1, S("a2bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345678901234567890"), 1, 9, S("a234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345678901234567890"), 1, 18, S("a234567890123456789bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345678901234567890"), 1, 19, S("a2345678901234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345678901234567890"), 1, 20, S("a2345678901234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345678901234567890"), 10, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345678901234567890"), 10, 1, S("a1bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345678901234567890"), 10, 5, S("a12345bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345678901234567890"), 10, 9, S("a123456789bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345678901234567890"), 10, 10, S("a1234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345678901234567890"), 10, 11, S("a1234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345678901234567890"), 19, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345678901234567890"), 19, 1, S("a0bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345678901234567890"), 19, 2, S("a0bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345678901234567890"), 20, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345678901234567890"), 20, 1, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 1, 1, SV(""), 0, 0, S("acdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, SV(""), 0, 1, S("acdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, SV(""), 1, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345"), 0, 0, S("acdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345"), 0, 1, S("a1cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345"), 0, 2, S("a12cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345"), 0, 4, S("a1234cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345"), 0, 5, S("a12345cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345"), 0, 6, S("a12345cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345"), 1, 0, S("acdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345"), 1, 1, S("a2cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345"), 1, 2, S("a23cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345"), 1, 3, S("a234cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345"), 1, 4, S("a2345cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345"), 1, 5, S("a2345cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345"), 2, 0, S("acdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345"), 2, 1, S("a3cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345"), 2, 2, S("a34cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345"), 2, 3, S("a345cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345"), 2, 4, S("a345cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345"), 4, 0, S("acdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345"), 4, 1, S("a5cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345"), 4, 2, S("a5cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345"), 5, 0, S("acdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345"), 5, 1, S("acdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("1234567890"), 0, 0, S("acdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("1234567890"), 0, 1, S("a1cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("1234567890"), 0, 5, S("a12345cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("1234567890"), 0, 9, S("a123456789cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("1234567890"), 0, 10, S("a1234567890cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("1234567890"), 0, 11, S("a1234567890cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("1234567890"), 1, 0, S("acdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("1234567890"), 1, 1, S("a2cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("1234567890"), 1, 4, S("a2345cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("1234567890"), 1, 8, S("a23456789cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("1234567890"), 1, 9, S("a234567890cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("1234567890"), 1, 10, S("a234567890cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("1234567890"), 5, 0, S("acdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("1234567890"), 5, 1, S("a6cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("1234567890"), 5, 2, S("a67cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("1234567890"), 5, 4, S("a6789cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("1234567890"), 5, 5, S("a67890cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("1234567890"), 5, 6, S("a67890cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("1234567890"), 9, 0, S("acdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("1234567890"), 9, 1, S("a0cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("1234567890"), 9, 2, S("a0cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("1234567890"), 10, 0, S("acdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("1234567890"), 10, 1, S("acdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345678901234567890"), 0, 0, S("acdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345678901234567890"), 0, 1, S("a1cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345678901234567890"), 0, 10, S("a1234567890cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345678901234567890"), 0, 19, S("a1234567890123456789cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345678901234567890"), 0, 20, S("a12345678901234567890cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345678901234567890"), 0, 21, S("a12345678901234567890cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345678901234567890"), 1, 0, S("acdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345678901234567890"), 1, 1, S("a2cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345678901234567890"), 1, 9, S("a234567890cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345678901234567890"), 1, 18, S("a234567890123456789cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345678901234567890"), 1, 19, S("a2345678901234567890cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345678901234567890"), 1, 20, S("a2345678901234567890cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345678901234567890"), 10, 0, S("acdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345678901234567890"), 10, 1, S("a1cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345678901234567890"), 10, 5, S("a12345cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345678901234567890"), 10, 9, S("a123456789cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345678901234567890"), 10, 10, S("a1234567890cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345678901234567890"), 10, 11, S("a1234567890cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345678901234567890"), 19, 0, S("acdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345678901234567890"), 19, 1, S("a0cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345678901234567890"), 19, 2, S("a0cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345678901234567890"), 20, 0, S("acdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345678901234567890"), 20, 1, S("acdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 1, 9, SV(""), 0, 0, S("aklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, SV(""), 0, 1, S("aklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, SV(""), 1, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345"), 0, 0, S("aklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345"), 0, 1, S("a1klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345"), 0, 2, S("a12klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345"), 0, 4, S("a1234klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345"), 0, 5, S("a12345klmnopqrst"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test42() {
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345678901234567890"), 1, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345678901234567890"), 1, 1, S("a2bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345678901234567890"), 1, 9, S("a234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345678901234567890"), 1, 18, S("a234567890123456789bcdefghijklmnopqrst"));
+ test(
+ S("abcdefghijklmnopqrst"), 1, 0, SV("12345678901234567890"), 1, 19, S("a2345678901234567890bcdefghijklmnopqrst"));
+ test(
+ S("abcdefghijklmnopqrst"), 1, 0, SV("12345678901234567890"), 1, 20, S("a2345678901234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345678901234567890"), 10, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345678901234567890"), 10, 1, S("a1bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345678901234567890"), 10, 5, S("a12345bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345678901234567890"), 10, 9, S("a123456789bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345678901234567890"), 10, 10, S("a1234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345678901234567890"), 10, 11, S("a1234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345678901234567890"), 19, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345678901234567890"), 19, 1, S("a0bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345678901234567890"), 19, 2, S("a0bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345678901234567890"), 20, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345678901234567890"), 20, 1, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV(""), 0, 0, S("acdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV(""), 0, 1, S("acdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV(""), 1, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345"), 0, 0, S("acdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345"), 0, 1, S("a1cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345"), 0, 2, S("a12cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345"), 0, 4, S("a1234cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345"), 0, 5, S("a12345cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345"), 0, 6, S("a12345cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345"), 1, 0, S("acdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345"), 1, 1, S("a2cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345"), 1, 2, S("a23cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345"), 1, 3, S("a234cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345"), 1, 4, S("a2345cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345"), 1, 5, S("a2345cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345"), 2, 0, S("acdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345"), 2, 1, S("a3cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345"), 2, 2, S("a34cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345"), 2, 3, S("a345cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345"), 2, 4, S("a345cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345"), 4, 0, S("acdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345"), 4, 1, S("a5cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345"), 4, 2, S("a5cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345"), 5, 0, S("acdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345"), 5, 1, S("acdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("1234567890"), 0, 0, S("acdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("1234567890"), 0, 1, S("a1cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("1234567890"), 0, 5, S("a12345cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("1234567890"), 0, 9, S("a123456789cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("1234567890"), 0, 10, S("a1234567890cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("1234567890"), 0, 11, S("a1234567890cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("1234567890"), 1, 0, S("acdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("1234567890"), 1, 1, S("a2cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("1234567890"), 1, 4, S("a2345cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("1234567890"), 1, 8, S("a23456789cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("1234567890"), 1, 9, S("a234567890cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("1234567890"), 1, 10, S("a234567890cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("1234567890"), 5, 0, S("acdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("1234567890"), 5, 1, S("a6cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("1234567890"), 5, 2, S("a67cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("1234567890"), 5, 4, S("a6789cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("1234567890"), 5, 5, S("a67890cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("1234567890"), 5, 6, S("a67890cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("1234567890"), 9, 0, S("acdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("1234567890"), 9, 1, S("a0cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("1234567890"), 9, 2, S("a0cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("1234567890"), 10, 0, S("acdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("1234567890"), 10, 1, S("acdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345678901234567890"), 0, 0, S("acdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345678901234567890"), 0, 1, S("a1cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345678901234567890"), 0, 10, S("a1234567890cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345678901234567890"), 0, 19, S("a1234567890123456789cdefghijklmnopqrst"));
+ test(
+ S("abcdefghijklmnopqrst"), 1, 1, SV("12345678901234567890"), 0, 20, S("a12345678901234567890cdefghijklmnopqrst"));
+ test(
+ S("abcdefghijklmnopqrst"), 1, 1, SV("12345678901234567890"), 0, 21, S("a12345678901234567890cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345678901234567890"), 1, 0, S("acdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345678901234567890"), 1, 1, S("a2cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345678901234567890"), 1, 9, S("a234567890cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345678901234567890"), 1, 18, S("a234567890123456789cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345678901234567890"), 1, 19, S("a2345678901234567890cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345678901234567890"), 1, 20, S("a2345678901234567890cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345678901234567890"), 10, 0, S("acdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345678901234567890"), 10, 1, S("a1cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345678901234567890"), 10, 5, S("a12345cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345678901234567890"), 10, 9, S("a123456789cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345678901234567890"), 10, 10, S("a1234567890cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345678901234567890"), 10, 11, S("a1234567890cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345678901234567890"), 19, 0, S("acdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345678901234567890"), 19, 1, S("a0cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345678901234567890"), 19, 2, S("a0cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345678901234567890"), 20, 0, S("acdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345678901234567890"), 20, 1, S("acdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV(""), 0, 0, S("aklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV(""), 0, 1, S("aklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV(""), 1, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345"), 0, 0, S("aklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345"), 0, 1, S("a1klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345"), 0, 2, S("a12klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345"), 0, 4, S("a1234klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345"), 0, 5, S("a12345klmnopqrst"));
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test43()
-{
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345"), 0, 6, S("a12345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345"), 1, 0, S("aklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345"), 1, 1, S("a2klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345"), 1, 2, S("a23klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345"), 1, 3, S("a234klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345"), 1, 4, S("a2345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345"), 1, 5, S("a2345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345"), 2, 0, S("aklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345"), 2, 1, S("a3klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345"), 2, 2, S("a34klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345"), 2, 3, S("a345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345"), 2, 4, S("a345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345"), 4, 0, S("aklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345"), 4, 1, S("a5klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345"), 4, 2, S("a5klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345"), 5, 0, S("aklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345"), 5, 1, S("aklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("1234567890"), 0, 0, S("aklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("1234567890"), 0, 1, S("a1klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("1234567890"), 0, 5, S("a12345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("1234567890"), 0, 9, S("a123456789klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("1234567890"), 0, 10, S("a1234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("1234567890"), 0, 11, S("a1234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("1234567890"), 1, 0, S("aklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("1234567890"), 1, 1, S("a2klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("1234567890"), 1, 4, S("a2345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("1234567890"), 1, 8, S("a23456789klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("1234567890"), 1, 9, S("a234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("1234567890"), 1, 10, S("a234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("1234567890"), 5, 0, S("aklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("1234567890"), 5, 1, S("a6klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("1234567890"), 5, 2, S("a67klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("1234567890"), 5, 4, S("a6789klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("1234567890"), 5, 5, S("a67890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("1234567890"), 5, 6, S("a67890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("1234567890"), 9, 0, S("aklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("1234567890"), 9, 1, S("a0klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("1234567890"), 9, 2, S("a0klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("1234567890"), 10, 0, S("aklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("1234567890"), 10, 1, S("aklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345678901234567890"), 0, 0, S("aklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345678901234567890"), 0, 1, S("a1klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345678901234567890"), 0, 10, S("a1234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345678901234567890"), 0, 19, S("a1234567890123456789klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345678901234567890"), 0, 20, S("a12345678901234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345678901234567890"), 0, 21, S("a12345678901234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345678901234567890"), 1, 0, S("aklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345678901234567890"), 1, 1, S("a2klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345678901234567890"), 1, 9, S("a234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345678901234567890"), 1, 18, S("a234567890123456789klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345678901234567890"), 1, 19, S("a2345678901234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345678901234567890"), 1, 20, S("a2345678901234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345678901234567890"), 10, 0, S("aklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345678901234567890"), 10, 1, S("a1klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345678901234567890"), 10, 5, S("a12345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345678901234567890"), 10, 9, S("a123456789klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345678901234567890"), 10, 10, S("a1234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345678901234567890"), 10, 11, S("a1234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345678901234567890"), 19, 0, S("aklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345678901234567890"), 19, 1, S("a0klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345678901234567890"), 19, 2, S("a0klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345678901234567890"), 20, 0, S("aklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345678901234567890"), 20, 1, S("aklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 1, 18, SV(""), 0, 0, S("at"));
- test(S("abcdefghijklmnopqrst"), 1, 18, SV(""), 0, 1, S("at"));
- test(S("abcdefghijklmnopqrst"), 1, 18, SV(""), 1, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345"), 0, 0, S("at"));
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345"), 0, 1, S("a1t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345"), 0, 2, S("a12t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345"), 0, 4, S("a1234t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345"), 0, 5, S("a12345t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345"), 0, 6, S("a12345t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345"), 1, 0, S("at"));
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345"), 1, 1, S("a2t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345"), 1, 2, S("a23t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345"), 1, 3, S("a234t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345"), 1, 4, S("a2345t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345"), 1, 5, S("a2345t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345"), 2, 0, S("at"));
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345"), 2, 1, S("a3t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345"), 2, 2, S("a34t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345"), 2, 3, S("a345t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345"), 2, 4, S("a345t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345"), 4, 0, S("at"));
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345"), 4, 1, S("a5t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345"), 4, 2, S("a5t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345"), 5, 0, S("at"));
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345"), 5, 1, S("at"));
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("1234567890"), 0, 0, S("at"));
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("1234567890"), 0, 1, S("a1t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("1234567890"), 0, 5, S("a12345t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("1234567890"), 0, 9, S("a123456789t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("1234567890"), 0, 10, S("a1234567890t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("1234567890"), 0, 11, S("a1234567890t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("1234567890"), 1, 0, S("at"));
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("1234567890"), 1, 1, S("a2t"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test43() {
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345"), 0, 6, S("a12345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345"), 1, 0, S("aklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345"), 1, 1, S("a2klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345"), 1, 2, S("a23klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345"), 1, 3, S("a234klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345"), 1, 4, S("a2345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345"), 1, 5, S("a2345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345"), 2, 0, S("aklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345"), 2, 1, S("a3klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345"), 2, 2, S("a34klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345"), 2, 3, S("a345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345"), 2, 4, S("a345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345"), 4, 0, S("aklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345"), 4, 1, S("a5klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345"), 4, 2, S("a5klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345"), 5, 0, S("aklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345"), 5, 1, S("aklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("1234567890"), 0, 0, S("aklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("1234567890"), 0, 1, S("a1klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("1234567890"), 0, 5, S("a12345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("1234567890"), 0, 9, S("a123456789klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("1234567890"), 0, 10, S("a1234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("1234567890"), 0, 11, S("a1234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("1234567890"), 1, 0, S("aklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("1234567890"), 1, 1, S("a2klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("1234567890"), 1, 4, S("a2345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("1234567890"), 1, 8, S("a23456789klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("1234567890"), 1, 9, S("a234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("1234567890"), 1, 10, S("a234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("1234567890"), 5, 0, S("aklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("1234567890"), 5, 1, S("a6klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("1234567890"), 5, 2, S("a67klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("1234567890"), 5, 4, S("a6789klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("1234567890"), 5, 5, S("a67890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("1234567890"), 5, 6, S("a67890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("1234567890"), 9, 0, S("aklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("1234567890"), 9, 1, S("a0klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("1234567890"), 9, 2, S("a0klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("1234567890"), 10, 0, S("aklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("1234567890"), 10, 1, S("aklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345678901234567890"), 0, 0, S("aklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345678901234567890"), 0, 1, S("a1klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345678901234567890"), 0, 10, S("a1234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345678901234567890"), 0, 19, S("a1234567890123456789klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345678901234567890"), 0, 20, S("a12345678901234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345678901234567890"), 0, 21, S("a12345678901234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345678901234567890"), 1, 0, S("aklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345678901234567890"), 1, 1, S("a2klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345678901234567890"), 1, 9, S("a234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345678901234567890"), 1, 18, S("a234567890123456789klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345678901234567890"), 1, 19, S("a2345678901234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345678901234567890"), 1, 20, S("a2345678901234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345678901234567890"), 10, 0, S("aklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345678901234567890"), 10, 1, S("a1klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345678901234567890"), 10, 5, S("a12345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345678901234567890"), 10, 9, S("a123456789klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345678901234567890"), 10, 10, S("a1234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345678901234567890"), 10, 11, S("a1234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345678901234567890"), 19, 0, S("aklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345678901234567890"), 19, 1, S("a0klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345678901234567890"), 19, 2, S("a0klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345678901234567890"), 20, 0, S("aklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345678901234567890"), 20, 1, S("aklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV(""), 0, 0, S("at"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV(""), 0, 1, S("at"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV(""), 1, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345"), 0, 0, S("at"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345"), 0, 1, S("a1t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345"), 0, 2, S("a12t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345"), 0, 4, S("a1234t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345"), 0, 5, S("a12345t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345"), 0, 6, S("a12345t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345"), 1, 0, S("at"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345"), 1, 1, S("a2t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345"), 1, 2, S("a23t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345"), 1, 3, S("a234t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345"), 1, 4, S("a2345t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345"), 1, 5, S("a2345t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345"), 2, 0, S("at"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345"), 2, 1, S("a3t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345"), 2, 2, S("a34t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345"), 2, 3, S("a345t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345"), 2, 4, S("a345t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345"), 4, 0, S("at"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345"), 4, 1, S("a5t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345"), 4, 2, S("a5t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345"), 5, 0, S("at"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345"), 5, 1, S("at"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("1234567890"), 0, 0, S("at"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("1234567890"), 0, 1, S("a1t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("1234567890"), 0, 5, S("a12345t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("1234567890"), 0, 9, S("a123456789t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("1234567890"), 0, 10, S("a1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("1234567890"), 0, 11, S("a1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("1234567890"), 1, 0, S("at"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("1234567890"), 1, 1, S("a2t"));
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test44()
-{
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("1234567890"), 1, 4, S("a2345t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("1234567890"), 1, 8, S("a23456789t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("1234567890"), 1, 9, S("a234567890t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("1234567890"), 1, 10, S("a234567890t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("1234567890"), 5, 0, S("at"));
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("1234567890"), 5, 1, S("a6t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("1234567890"), 5, 2, S("a67t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("1234567890"), 5, 4, S("a6789t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("1234567890"), 5, 5, S("a67890t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("1234567890"), 5, 6, S("a67890t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("1234567890"), 9, 0, S("at"));
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("1234567890"), 9, 1, S("a0t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("1234567890"), 9, 2, S("a0t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("1234567890"), 10, 0, S("at"));
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("1234567890"), 10, 1, S("at"));
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345678901234567890"), 0, 0, S("at"));
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345678901234567890"), 0, 1, S("a1t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345678901234567890"), 0, 10, S("a1234567890t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345678901234567890"), 0, 19, S("a1234567890123456789t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345678901234567890"), 0, 20, S("a12345678901234567890t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345678901234567890"), 0, 21, S("a12345678901234567890t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345678901234567890"), 1, 0, S("at"));
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345678901234567890"), 1, 1, S("a2t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345678901234567890"), 1, 9, S("a234567890t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345678901234567890"), 1, 18, S("a234567890123456789t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345678901234567890"), 1, 19, S("a2345678901234567890t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345678901234567890"), 1, 20, S("a2345678901234567890t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345678901234567890"), 10, 0, S("at"));
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345678901234567890"), 10, 1, S("a1t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345678901234567890"), 10, 5, S("a12345t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345678901234567890"), 10, 9, S("a123456789t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345678901234567890"), 10, 10, S("a1234567890t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345678901234567890"), 10, 11, S("a1234567890t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345678901234567890"), 19, 0, S("at"));
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345678901234567890"), 19, 1, S("a0t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345678901234567890"), 19, 2, S("a0t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345678901234567890"), 20, 0, S("at"));
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345678901234567890"), 20, 1, S("at"));
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 1, 19, SV(""), 0, 0, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 19, SV(""), 0, 1, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 19, SV(""), 1, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345"), 0, 0, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345"), 0, 1, S("a1"));
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345"), 0, 2, S("a12"));
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345"), 0, 4, S("a1234"));
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345"), 0, 5, S("a12345"));
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345"), 0, 6, S("a12345"));
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345"), 1, 0, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345"), 1, 1, S("a2"));
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345"), 1, 2, S("a23"));
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345"), 1, 3, S("a234"));
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345"), 1, 4, S("a2345"));
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345"), 1, 5, S("a2345"));
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345"), 2, 0, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345"), 2, 1, S("a3"));
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345"), 2, 2, S("a34"));
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345"), 2, 3, S("a345"));
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345"), 2, 4, S("a345"));
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345"), 4, 0, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345"), 4, 1, S("a5"));
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345"), 4, 2, S("a5"));
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345"), 5, 0, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345"), 5, 1, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("1234567890"), 0, 0, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("1234567890"), 0, 1, S("a1"));
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("1234567890"), 0, 5, S("a12345"));
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("1234567890"), 0, 9, S("a123456789"));
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("1234567890"), 0, 10, S("a1234567890"));
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("1234567890"), 0, 11, S("a1234567890"));
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("1234567890"), 1, 0, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("1234567890"), 1, 1, S("a2"));
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("1234567890"), 1, 4, S("a2345"));
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("1234567890"), 1, 8, S("a23456789"));
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("1234567890"), 1, 9, S("a234567890"));
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("1234567890"), 1, 10, S("a234567890"));
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("1234567890"), 5, 0, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("1234567890"), 5, 1, S("a6"));
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("1234567890"), 5, 2, S("a67"));
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("1234567890"), 5, 4, S("a6789"));
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("1234567890"), 5, 5, S("a67890"));
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("1234567890"), 5, 6, S("a67890"));
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("1234567890"), 9, 0, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("1234567890"), 9, 1, S("a0"));
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("1234567890"), 9, 2, S("a0"));
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("1234567890"), 10, 0, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("1234567890"), 10, 1, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345678901234567890"), 0, 0, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345678901234567890"), 0, 1, S("a1"));
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345678901234567890"), 0, 10, S("a1234567890"));
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345678901234567890"), 0, 19, S("a1234567890123456789"));
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345678901234567890"), 0, 20, S("a12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345678901234567890"), 0, 21, S("a12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345678901234567890"), 1, 0, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345678901234567890"), 1, 1, S("a2"));
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345678901234567890"), 1, 9, S("a234567890"));
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345678901234567890"), 1, 18, S("a234567890123456789"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test44() {
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("1234567890"), 1, 4, S("a2345t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("1234567890"), 1, 8, S("a23456789t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("1234567890"), 1, 9, S("a234567890t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("1234567890"), 1, 10, S("a234567890t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("1234567890"), 5, 0, S("at"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("1234567890"), 5, 1, S("a6t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("1234567890"), 5, 2, S("a67t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("1234567890"), 5, 4, S("a6789t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("1234567890"), 5, 5, S("a67890t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("1234567890"), 5, 6, S("a67890t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("1234567890"), 9, 0, S("at"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("1234567890"), 9, 1, S("a0t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("1234567890"), 9, 2, S("a0t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("1234567890"), 10, 0, S("at"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("1234567890"), 10, 1, S("at"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345678901234567890"), 0, 0, S("at"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345678901234567890"), 0, 1, S("a1t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345678901234567890"), 0, 10, S("a1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345678901234567890"), 0, 19, S("a1234567890123456789t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345678901234567890"), 0, 20, S("a12345678901234567890t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345678901234567890"), 0, 21, S("a12345678901234567890t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345678901234567890"), 1, 0, S("at"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345678901234567890"), 1, 1, S("a2t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345678901234567890"), 1, 9, S("a234567890t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345678901234567890"), 1, 18, S("a234567890123456789t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345678901234567890"), 1, 19, S("a2345678901234567890t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345678901234567890"), 1, 20, S("a2345678901234567890t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345678901234567890"), 10, 0, S("at"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345678901234567890"), 10, 1, S("a1t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345678901234567890"), 10, 5, S("a12345t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345678901234567890"), 10, 9, S("a123456789t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345678901234567890"), 10, 10, S("a1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345678901234567890"), 10, 11, S("a1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345678901234567890"), 19, 0, S("at"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345678901234567890"), 19, 1, S("a0t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345678901234567890"), 19, 2, S("a0t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345678901234567890"), 20, 0, S("at"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345678901234567890"), 20, 1, S("at"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV(""), 0, 0, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV(""), 0, 1, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV(""), 1, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345"), 0, 0, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345"), 0, 1, S("a1"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345"), 0, 2, S("a12"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345"), 0, 4, S("a1234"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345"), 0, 5, S("a12345"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345"), 0, 6, S("a12345"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345"), 1, 0, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345"), 1, 1, S("a2"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345"), 1, 2, S("a23"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345"), 1, 3, S("a234"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345"), 1, 4, S("a2345"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345"), 1, 5, S("a2345"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345"), 2, 0, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345"), 2, 1, S("a3"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345"), 2, 2, S("a34"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345"), 2, 3, S("a345"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345"), 2, 4, S("a345"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345"), 4, 0, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345"), 4, 1, S("a5"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345"), 4, 2, S("a5"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345"), 5, 0, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345"), 5, 1, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("1234567890"), 0, 0, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("1234567890"), 0, 1, S("a1"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("1234567890"), 0, 5, S("a12345"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("1234567890"), 0, 9, S("a123456789"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("1234567890"), 0, 10, S("a1234567890"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("1234567890"), 0, 11, S("a1234567890"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("1234567890"), 1, 0, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("1234567890"), 1, 1, S("a2"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("1234567890"), 1, 4, S("a2345"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("1234567890"), 1, 8, S("a23456789"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("1234567890"), 1, 9, S("a234567890"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("1234567890"), 1, 10, S("a234567890"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("1234567890"), 5, 0, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("1234567890"), 5, 1, S("a6"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("1234567890"), 5, 2, S("a67"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("1234567890"), 5, 4, S("a6789"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("1234567890"), 5, 5, S("a67890"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("1234567890"), 5, 6, S("a67890"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("1234567890"), 9, 0, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("1234567890"), 9, 1, S("a0"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("1234567890"), 9, 2, S("a0"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("1234567890"), 10, 0, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("1234567890"), 10, 1, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345678901234567890"), 0, 0, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345678901234567890"), 0, 1, S("a1"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345678901234567890"), 0, 10, S("a1234567890"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345678901234567890"), 0, 19, S("a1234567890123456789"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345678901234567890"), 0, 20, S("a12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345678901234567890"), 0, 21, S("a12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345678901234567890"), 1, 0, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345678901234567890"), 1, 1, S("a2"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345678901234567890"), 1, 9, S("a234567890"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345678901234567890"), 1, 18, S("a234567890123456789"));
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test45()
-{
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345678901234567890"), 1, 19, S("a2345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345678901234567890"), 1, 20, S("a2345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345678901234567890"), 10, 0, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345678901234567890"), 10, 1, S("a1"));
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345678901234567890"), 10, 5, S("a12345"));
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345678901234567890"), 10, 9, S("a123456789"));
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345678901234567890"), 10, 10, S("a1234567890"));
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345678901234567890"), 10, 11, S("a1234567890"));
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345678901234567890"), 19, 0, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345678901234567890"), 19, 1, S("a0"));
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345678901234567890"), 19, 2, S("a0"));
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345678901234567890"), 20, 0, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345678901234567890"), 20, 1, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 1, 20, SV(""), 0, 0, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 20, SV(""), 0, 1, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 20, SV(""), 1, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345"), 0, 0, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345"), 0, 1, S("a1"));
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345"), 0, 2, S("a12"));
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345"), 0, 4, S("a1234"));
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345"), 0, 5, S("a12345"));
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345"), 0, 6, S("a12345"));
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345"), 1, 0, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345"), 1, 1, S("a2"));
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345"), 1, 2, S("a23"));
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345"), 1, 3, S("a234"));
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345"), 1, 4, S("a2345"));
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345"), 1, 5, S("a2345"));
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345"), 2, 0, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345"), 2, 1, S("a3"));
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345"), 2, 2, S("a34"));
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345"), 2, 3, S("a345"));
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345"), 2, 4, S("a345"));
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345"), 4, 0, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345"), 4, 1, S("a5"));
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345"), 4, 2, S("a5"));
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345"), 5, 0, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345"), 5, 1, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("1234567890"), 0, 0, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("1234567890"), 0, 1, S("a1"));
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("1234567890"), 0, 5, S("a12345"));
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("1234567890"), 0, 9, S("a123456789"));
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("1234567890"), 0, 10, S("a1234567890"));
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("1234567890"), 0, 11, S("a1234567890"));
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("1234567890"), 1, 0, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("1234567890"), 1, 1, S("a2"));
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("1234567890"), 1, 4, S("a2345"));
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("1234567890"), 1, 8, S("a23456789"));
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("1234567890"), 1, 9, S("a234567890"));
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("1234567890"), 1, 10, S("a234567890"));
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("1234567890"), 5, 0, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("1234567890"), 5, 1, S("a6"));
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("1234567890"), 5, 2, S("a67"));
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("1234567890"), 5, 4, S("a6789"));
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("1234567890"), 5, 5, S("a67890"));
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("1234567890"), 5, 6, S("a67890"));
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("1234567890"), 9, 0, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("1234567890"), 9, 1, S("a0"));
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("1234567890"), 9, 2, S("a0"));
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("1234567890"), 10, 0, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("1234567890"), 10, 1, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345678901234567890"), 0, 0, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345678901234567890"), 0, 1, S("a1"));
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345678901234567890"), 0, 10, S("a1234567890"));
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345678901234567890"), 0, 19, S("a1234567890123456789"));
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345678901234567890"), 0, 20, S("a12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345678901234567890"), 0, 21, S("a12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345678901234567890"), 1, 0, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345678901234567890"), 1, 1, S("a2"));
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345678901234567890"), 1, 9, S("a234567890"));
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345678901234567890"), 1, 18, S("a234567890123456789"));
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345678901234567890"), 1, 19, S("a2345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345678901234567890"), 1, 20, S("a2345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345678901234567890"), 10, 0, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345678901234567890"), 10, 1, S("a1"));
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345678901234567890"), 10, 5, S("a12345"));
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345678901234567890"), 10, 9, S("a123456789"));
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345678901234567890"), 10, 10, S("a1234567890"));
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345678901234567890"), 10, 11, S("a1234567890"));
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345678901234567890"), 19, 0, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345678901234567890"), 19, 1, S("a0"));
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345678901234567890"), 19, 2, S("a0"));
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345678901234567890"), 20, 0, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345678901234567890"), 20, 1, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 10, 0, SV(""), 0, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, SV(""), 0, 1, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, SV(""), 1, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345"), 0, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345"), 0, 1, S("abcdefghij1klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345"), 0, 2, S("abcdefghij12klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345"), 0, 4, S("abcdefghij1234klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345"), 0, 5, S("abcdefghij12345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345"), 0, 6, S("abcdefghij12345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345"), 1, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345"), 1, 1, S("abcdefghij2klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345"), 1, 2, S("abcdefghij23klmnopqrst"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test45() {
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345678901234567890"), 1, 19, S("a2345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345678901234567890"), 1, 20, S("a2345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345678901234567890"), 10, 0, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345678901234567890"), 10, 1, S("a1"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345678901234567890"), 10, 5, S("a12345"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345678901234567890"), 10, 9, S("a123456789"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345678901234567890"), 10, 10, S("a1234567890"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345678901234567890"), 10, 11, S("a1234567890"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345678901234567890"), 19, 0, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345678901234567890"), 19, 1, S("a0"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345678901234567890"), 19, 2, S("a0"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345678901234567890"), 20, 0, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345678901234567890"), 20, 1, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV(""), 0, 0, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV(""), 0, 1, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV(""), 1, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345"), 0, 0, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345"), 0, 1, S("a1"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345"), 0, 2, S("a12"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345"), 0, 4, S("a1234"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345"), 0, 5, S("a12345"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345"), 0, 6, S("a12345"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345"), 1, 0, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345"), 1, 1, S("a2"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345"), 1, 2, S("a23"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345"), 1, 3, S("a234"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345"), 1, 4, S("a2345"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345"), 1, 5, S("a2345"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345"), 2, 0, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345"), 2, 1, S("a3"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345"), 2, 2, S("a34"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345"), 2, 3, S("a345"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345"), 2, 4, S("a345"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345"), 4, 0, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345"), 4, 1, S("a5"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345"), 4, 2, S("a5"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345"), 5, 0, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345"), 5, 1, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("1234567890"), 0, 0, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("1234567890"), 0, 1, S("a1"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("1234567890"), 0, 5, S("a12345"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("1234567890"), 0, 9, S("a123456789"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("1234567890"), 0, 10, S("a1234567890"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("1234567890"), 0, 11, S("a1234567890"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("1234567890"), 1, 0, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("1234567890"), 1, 1, S("a2"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("1234567890"), 1, 4, S("a2345"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("1234567890"), 1, 8, S("a23456789"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("1234567890"), 1, 9, S("a234567890"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("1234567890"), 1, 10, S("a234567890"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("1234567890"), 5, 0, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("1234567890"), 5, 1, S("a6"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("1234567890"), 5, 2, S("a67"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("1234567890"), 5, 4, S("a6789"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("1234567890"), 5, 5, S("a67890"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("1234567890"), 5, 6, S("a67890"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("1234567890"), 9, 0, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("1234567890"), 9, 1, S("a0"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("1234567890"), 9, 2, S("a0"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("1234567890"), 10, 0, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("1234567890"), 10, 1, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345678901234567890"), 0, 0, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345678901234567890"), 0, 1, S("a1"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345678901234567890"), 0, 10, S("a1234567890"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345678901234567890"), 0, 19, S("a1234567890123456789"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345678901234567890"), 0, 20, S("a12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345678901234567890"), 0, 21, S("a12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345678901234567890"), 1, 0, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345678901234567890"), 1, 1, S("a2"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345678901234567890"), 1, 9, S("a234567890"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345678901234567890"), 1, 18, S("a234567890123456789"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345678901234567890"), 1, 19, S("a2345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345678901234567890"), 1, 20, S("a2345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345678901234567890"), 10, 0, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345678901234567890"), 10, 1, S("a1"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345678901234567890"), 10, 5, S("a12345"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345678901234567890"), 10, 9, S("a123456789"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345678901234567890"), 10, 10, S("a1234567890"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345678901234567890"), 10, 11, S("a1234567890"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345678901234567890"), 19, 0, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345678901234567890"), 19, 1, S("a0"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345678901234567890"), 19, 2, S("a0"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345678901234567890"), 20, 0, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345678901234567890"), 20, 1, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV(""), 0, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV(""), 0, 1, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV(""), 1, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345"), 0, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345"), 0, 1, S("abcdefghij1klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345"), 0, 2, S("abcdefghij12klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345"), 0, 4, S("abcdefghij1234klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345"), 0, 5, S("abcdefghij12345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345"), 0, 6, S("abcdefghij12345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345"), 1, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345"), 1, 1, S("abcdefghij2klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345"), 1, 2, S("abcdefghij23klmnopqrst"));
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test46()
-{
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345"), 1, 3, S("abcdefghij234klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345"), 1, 4, S("abcdefghij2345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345"), 1, 5, S("abcdefghij2345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345"), 2, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345"), 2, 1, S("abcdefghij3klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345"), 2, 2, S("abcdefghij34klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345"), 2, 3, S("abcdefghij345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345"), 2, 4, S("abcdefghij345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345"), 4, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345"), 4, 1, S("abcdefghij5klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345"), 4, 2, S("abcdefghij5klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345"), 5, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345"), 5, 1, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("1234567890"), 0, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("1234567890"), 0, 1, S("abcdefghij1klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("1234567890"), 0, 5, S("abcdefghij12345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("1234567890"), 0, 9, S("abcdefghij123456789klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("1234567890"), 0, 10, S("abcdefghij1234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("1234567890"), 0, 11, S("abcdefghij1234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("1234567890"), 1, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("1234567890"), 1, 1, S("abcdefghij2klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("1234567890"), 1, 4, S("abcdefghij2345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("1234567890"), 1, 8, S("abcdefghij23456789klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("1234567890"), 1, 9, S("abcdefghij234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("1234567890"), 1, 10, S("abcdefghij234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("1234567890"), 5, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("1234567890"), 5, 1, S("abcdefghij6klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("1234567890"), 5, 2, S("abcdefghij67klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("1234567890"), 5, 4, S("abcdefghij6789klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("1234567890"), 5, 5, S("abcdefghij67890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("1234567890"), 5, 6, S("abcdefghij67890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("1234567890"), 9, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("1234567890"), 9, 1, S("abcdefghij0klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("1234567890"), 9, 2, S("abcdefghij0klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("1234567890"), 10, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("1234567890"), 10, 1, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345678901234567890"), 0, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345678901234567890"), 0, 1, S("abcdefghij1klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345678901234567890"), 0, 10, S("abcdefghij1234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345678901234567890"), 0, 19, S("abcdefghij1234567890123456789klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345678901234567890"), 0, 20, S("abcdefghij12345678901234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345678901234567890"), 0, 21, S("abcdefghij12345678901234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345678901234567890"), 1, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345678901234567890"), 1, 1, S("abcdefghij2klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345678901234567890"), 1, 9, S("abcdefghij234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345678901234567890"), 1, 18, S("abcdefghij234567890123456789klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345678901234567890"), 1, 19, S("abcdefghij2345678901234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345678901234567890"), 1, 20, S("abcdefghij2345678901234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345678901234567890"), 10, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345678901234567890"), 10, 1, S("abcdefghij1klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345678901234567890"), 10, 5, S("abcdefghij12345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345678901234567890"), 10, 9, S("abcdefghij123456789klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345678901234567890"), 10, 10, S("abcdefghij1234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345678901234567890"), 10, 11, S("abcdefghij1234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345678901234567890"), 19, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345678901234567890"), 19, 1, S("abcdefghij0klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345678901234567890"), 19, 2, S("abcdefghij0klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345678901234567890"), 20, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345678901234567890"), 20, 1, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 10, 1, SV(""), 0, 0, S("abcdefghijlmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, SV(""), 0, 1, S("abcdefghijlmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, SV(""), 1, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345"), 0, 0, S("abcdefghijlmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345"), 0, 1, S("abcdefghij1lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345"), 0, 2, S("abcdefghij12lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345"), 0, 4, S("abcdefghij1234lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345"), 0, 5, S("abcdefghij12345lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345"), 0, 6, S("abcdefghij12345lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345"), 1, 0, S("abcdefghijlmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345"), 1, 1, S("abcdefghij2lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345"), 1, 2, S("abcdefghij23lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345"), 1, 3, S("abcdefghij234lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345"), 1, 4, S("abcdefghij2345lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345"), 1, 5, S("abcdefghij2345lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345"), 2, 0, S("abcdefghijlmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345"), 2, 1, S("abcdefghij3lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345"), 2, 2, S("abcdefghij34lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345"), 2, 3, S("abcdefghij345lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345"), 2, 4, S("abcdefghij345lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345"), 4, 0, S("abcdefghijlmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345"), 4, 1, S("abcdefghij5lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345"), 4, 2, S("abcdefghij5lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345"), 5, 0, S("abcdefghijlmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345"), 5, 1, S("abcdefghijlmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("1234567890"), 0, 0, S("abcdefghijlmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("1234567890"), 0, 1, S("abcdefghij1lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("1234567890"), 0, 5, S("abcdefghij12345lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("1234567890"), 0, 9, S("abcdefghij123456789lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("1234567890"), 0, 10, S("abcdefghij1234567890lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("1234567890"), 0, 11, S("abcdefghij1234567890lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("1234567890"), 1, 0, S("abcdefghijlmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("1234567890"), 1, 1, S("abcdefghij2lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("1234567890"), 1, 4, S("abcdefghij2345lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("1234567890"), 1, 8, S("abcdefghij23456789lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("1234567890"), 1, 9, S("abcdefghij234567890lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("1234567890"), 1, 10, S("abcdefghij234567890lmnopqrst"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test46() {
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345"), 1, 3, S("abcdefghij234klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345"), 1, 4, S("abcdefghij2345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345"), 1, 5, S("abcdefghij2345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345"), 2, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345"), 2, 1, S("abcdefghij3klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345"), 2, 2, S("abcdefghij34klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345"), 2, 3, S("abcdefghij345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345"), 2, 4, S("abcdefghij345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345"), 4, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345"), 4, 1, S("abcdefghij5klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345"), 4, 2, S("abcdefghij5klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345"), 5, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345"), 5, 1, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("1234567890"), 0, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("1234567890"), 0, 1, S("abcdefghij1klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("1234567890"), 0, 5, S("abcdefghij12345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("1234567890"), 0, 9, S("abcdefghij123456789klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("1234567890"), 0, 10, S("abcdefghij1234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("1234567890"), 0, 11, S("abcdefghij1234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("1234567890"), 1, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("1234567890"), 1, 1, S("abcdefghij2klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("1234567890"), 1, 4, S("abcdefghij2345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("1234567890"), 1, 8, S("abcdefghij23456789klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("1234567890"), 1, 9, S("abcdefghij234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("1234567890"), 1, 10, S("abcdefghij234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("1234567890"), 5, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("1234567890"), 5, 1, S("abcdefghij6klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("1234567890"), 5, 2, S("abcdefghij67klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("1234567890"), 5, 4, S("abcdefghij6789klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("1234567890"), 5, 5, S("abcdefghij67890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("1234567890"), 5, 6, S("abcdefghij67890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("1234567890"), 9, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("1234567890"), 9, 1, S("abcdefghij0klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("1234567890"), 9, 2, S("abcdefghij0klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("1234567890"), 10, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("1234567890"), 10, 1, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345678901234567890"), 0, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345678901234567890"), 0, 1, S("abcdefghij1klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345678901234567890"), 0, 10, S("abcdefghij1234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"),
+ 10,
+ 0,
+ SV("12345678901234567890"),
+ 0,
+ 19,
+ S("abcdefghij1234567890123456789klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"),
+ 10,
+ 0,
+ SV("12345678901234567890"),
+ 0,
+ 20,
+ S("abcdefghij12345678901234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"),
+ 10,
+ 0,
+ SV("12345678901234567890"),
+ 0,
+ 21,
+ S("abcdefghij12345678901234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345678901234567890"), 1, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345678901234567890"), 1, 1, S("abcdefghij2klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345678901234567890"), 1, 9, S("abcdefghij234567890klmnopqrst"));
+ test(
+ S("abcdefghijklmnopqrst"), 10, 0, SV("12345678901234567890"), 1, 18, S("abcdefghij234567890123456789klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"),
+ 10,
+ 0,
+ SV("12345678901234567890"),
+ 1,
+ 19,
+ S("abcdefghij2345678901234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"),
+ 10,
+ 0,
+ SV("12345678901234567890"),
+ 1,
+ 20,
+ S("abcdefghij2345678901234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345678901234567890"), 10, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345678901234567890"), 10, 1, S("abcdefghij1klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345678901234567890"), 10, 5, S("abcdefghij12345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345678901234567890"), 10, 9, S("abcdefghij123456789klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345678901234567890"), 10, 10, S("abcdefghij1234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345678901234567890"), 10, 11, S("abcdefghij1234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345678901234567890"), 19, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345678901234567890"), 19, 1, S("abcdefghij0klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345678901234567890"), 19, 2, S("abcdefghij0klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345678901234567890"), 20, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345678901234567890"), 20, 1, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV(""), 0, 0, S("abcdefghijlmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV(""), 0, 1, S("abcdefghijlmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV(""), 1, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345"), 0, 0, S("abcdefghijlmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345"), 0, 1, S("abcdefghij1lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345"), 0, 2, S("abcdefghij12lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345"), 0, 4, S("abcdefghij1234lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345"), 0, 5, S("abcdefghij12345lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345"), 0, 6, S("abcdefghij12345lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345"), 1, 0, S("abcdefghijlmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345"), 1, 1, S("abcdefghij2lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345"), 1, 2, S("abcdefghij23lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345"), 1, 3, S("abcdefghij234lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345"), 1, 4, S("abcdefghij2345lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345"), 1, 5, S("abcdefghij2345lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345"), 2, 0, S("abcdefghijlmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345"), 2, 1, S("abcdefghij3lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345"), 2, 2, S("abcdefghij34lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345"), 2, 3, S("abcdefghij345lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345"), 2, 4, S("abcdefghij345lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345"), 4, 0, S("abcdefghijlmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345"), 4, 1, S("abcdefghij5lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345"), 4, 2, S("abcdefghij5lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345"), 5, 0, S("abcdefghijlmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345"), 5, 1, S("abcdefghijlmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("1234567890"), 0, 0, S("abcdefghijlmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("1234567890"), 0, 1, S("abcdefghij1lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("1234567890"), 0, 5, S("abcdefghij12345lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("1234567890"), 0, 9, S("abcdefghij123456789lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("1234567890"), 0, 10, S("abcdefghij1234567890lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("1234567890"), 0, 11, S("abcdefghij1234567890lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("1234567890"), 1, 0, S("abcdefghijlmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("1234567890"), 1, 1, S("abcdefghij2lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("1234567890"), 1, 4, S("abcdefghij2345lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("1234567890"), 1, 8, S("abcdefghij23456789lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("1234567890"), 1, 9, S("abcdefghij234567890lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("1234567890"), 1, 10, S("abcdefghij234567890lmnopqrst"));
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test47()
-{
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("1234567890"), 5, 0, S("abcdefghijlmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("1234567890"), 5, 1, S("abcdefghij6lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("1234567890"), 5, 2, S("abcdefghij67lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("1234567890"), 5, 4, S("abcdefghij6789lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("1234567890"), 5, 5, S("abcdefghij67890lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("1234567890"), 5, 6, S("abcdefghij67890lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("1234567890"), 9, 0, S("abcdefghijlmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("1234567890"), 9, 1, S("abcdefghij0lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("1234567890"), 9, 2, S("abcdefghij0lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("1234567890"), 10, 0, S("abcdefghijlmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("1234567890"), 10, 1, S("abcdefghijlmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345678901234567890"), 0, 0, S("abcdefghijlmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345678901234567890"), 0, 1, S("abcdefghij1lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345678901234567890"), 0, 10, S("abcdefghij1234567890lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345678901234567890"), 0, 19, S("abcdefghij1234567890123456789lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345678901234567890"), 0, 20, S("abcdefghij12345678901234567890lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345678901234567890"), 0, 21, S("abcdefghij12345678901234567890lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345678901234567890"), 1, 0, S("abcdefghijlmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345678901234567890"), 1, 1, S("abcdefghij2lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345678901234567890"), 1, 9, S("abcdefghij234567890lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345678901234567890"), 1, 18, S("abcdefghij234567890123456789lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345678901234567890"), 1, 19, S("abcdefghij2345678901234567890lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345678901234567890"), 1, 20, S("abcdefghij2345678901234567890lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345678901234567890"), 10, 0, S("abcdefghijlmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345678901234567890"), 10, 1, S("abcdefghij1lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345678901234567890"), 10, 5, S("abcdefghij12345lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345678901234567890"), 10, 9, S("abcdefghij123456789lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345678901234567890"), 10, 10, S("abcdefghij1234567890lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345678901234567890"), 10, 11, S("abcdefghij1234567890lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345678901234567890"), 19, 0, S("abcdefghijlmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345678901234567890"), 19, 1, S("abcdefghij0lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345678901234567890"), 19, 2, S("abcdefghij0lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345678901234567890"), 20, 0, S("abcdefghijlmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345678901234567890"), 20, 1, S("abcdefghijlmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 10, 5, SV(""), 0, 0, S("abcdefghijpqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, SV(""), 0, 1, S("abcdefghijpqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, SV(""), 1, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345"), 0, 0, S("abcdefghijpqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345"), 0, 1, S("abcdefghij1pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345"), 0, 2, S("abcdefghij12pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345"), 0, 4, S("abcdefghij1234pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345"), 0, 5, S("abcdefghij12345pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345"), 0, 6, S("abcdefghij12345pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345"), 1, 0, S("abcdefghijpqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345"), 1, 1, S("abcdefghij2pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345"), 1, 2, S("abcdefghij23pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345"), 1, 3, S("abcdefghij234pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345"), 1, 4, S("abcdefghij2345pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345"), 1, 5, S("abcdefghij2345pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345"), 2, 0, S("abcdefghijpqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345"), 2, 1, S("abcdefghij3pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345"), 2, 2, S("abcdefghij34pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345"), 2, 3, S("abcdefghij345pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345"), 2, 4, S("abcdefghij345pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345"), 4, 0, S("abcdefghijpqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345"), 4, 1, S("abcdefghij5pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345"), 4, 2, S("abcdefghij5pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345"), 5, 0, S("abcdefghijpqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345"), 5, 1, S("abcdefghijpqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("1234567890"), 0, 0, S("abcdefghijpqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("1234567890"), 0, 1, S("abcdefghij1pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("1234567890"), 0, 5, S("abcdefghij12345pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("1234567890"), 0, 9, S("abcdefghij123456789pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("1234567890"), 0, 10, S("abcdefghij1234567890pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("1234567890"), 0, 11, S("abcdefghij1234567890pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("1234567890"), 1, 0, S("abcdefghijpqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("1234567890"), 1, 1, S("abcdefghij2pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("1234567890"), 1, 4, S("abcdefghij2345pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("1234567890"), 1, 8, S("abcdefghij23456789pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("1234567890"), 1, 9, S("abcdefghij234567890pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("1234567890"), 1, 10, S("abcdefghij234567890pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("1234567890"), 5, 0, S("abcdefghijpqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("1234567890"), 5, 1, S("abcdefghij6pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("1234567890"), 5, 2, S("abcdefghij67pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("1234567890"), 5, 4, S("abcdefghij6789pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("1234567890"), 5, 5, S("abcdefghij67890pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("1234567890"), 5, 6, S("abcdefghij67890pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("1234567890"), 9, 0, S("abcdefghijpqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("1234567890"), 9, 1, S("abcdefghij0pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("1234567890"), 9, 2, S("abcdefghij0pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("1234567890"), 10, 0, S("abcdefghijpqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("1234567890"), 10, 1, S("abcdefghijpqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345678901234567890"), 0, 0, S("abcdefghijpqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345678901234567890"), 0, 1, S("abcdefghij1pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345678901234567890"), 0, 10, S("abcdefghij1234567890pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345678901234567890"), 0, 19, S("abcdefghij1234567890123456789pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345678901234567890"), 0, 20, S("abcdefghij12345678901234567890pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345678901234567890"), 0, 21, S("abcdefghij12345678901234567890pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345678901234567890"), 1, 0, S("abcdefghijpqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345678901234567890"), 1, 1, S("abcdefghij2pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345678901234567890"), 1, 9, S("abcdefghij234567890pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345678901234567890"), 1, 18, S("abcdefghij234567890123456789pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345678901234567890"), 1, 19, S("abcdefghij2345678901234567890pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345678901234567890"), 1, 20, S("abcdefghij2345678901234567890pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345678901234567890"), 10, 0, S("abcdefghijpqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345678901234567890"), 10, 1, S("abcdefghij1pqrst"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test47() {
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("1234567890"), 5, 0, S("abcdefghijlmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("1234567890"), 5, 1, S("abcdefghij6lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("1234567890"), 5, 2, S("abcdefghij67lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("1234567890"), 5, 4, S("abcdefghij6789lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("1234567890"), 5, 5, S("abcdefghij67890lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("1234567890"), 5, 6, S("abcdefghij67890lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("1234567890"), 9, 0, S("abcdefghijlmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("1234567890"), 9, 1, S("abcdefghij0lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("1234567890"), 9, 2, S("abcdefghij0lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("1234567890"), 10, 0, S("abcdefghijlmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("1234567890"), 10, 1, S("abcdefghijlmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345678901234567890"), 0, 0, S("abcdefghijlmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345678901234567890"), 0, 1, S("abcdefghij1lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345678901234567890"), 0, 10, S("abcdefghij1234567890lmnopqrst"));
+ test(
+ S("abcdefghijklmnopqrst"), 10, 1, SV("12345678901234567890"), 0, 19, S("abcdefghij1234567890123456789lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"),
+ 10,
+ 1,
+ SV("12345678901234567890"),
+ 0,
+ 20,
+ S("abcdefghij12345678901234567890lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"),
+ 10,
+ 1,
+ SV("12345678901234567890"),
+ 0,
+ 21,
+ S("abcdefghij12345678901234567890lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345678901234567890"), 1, 0, S("abcdefghijlmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345678901234567890"), 1, 1, S("abcdefghij2lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345678901234567890"), 1, 9, S("abcdefghij234567890lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345678901234567890"), 1, 18, S("abcdefghij234567890123456789lmnopqrst"));
+ test(
+ S("abcdefghijklmnopqrst"), 10, 1, SV("12345678901234567890"), 1, 19, S("abcdefghij2345678901234567890lmnopqrst"));
+ test(
+ S("abcdefghijklmnopqrst"), 10, 1, SV("12345678901234567890"), 1, 20, S("abcdefghij2345678901234567890lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345678901234567890"), 10, 0, S("abcdefghijlmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345678901234567890"), 10, 1, S("abcdefghij1lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345678901234567890"), 10, 5, S("abcdefghij12345lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345678901234567890"), 10, 9, S("abcdefghij123456789lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345678901234567890"), 10, 10, S("abcdefghij1234567890lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345678901234567890"), 10, 11, S("abcdefghij1234567890lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345678901234567890"), 19, 0, S("abcdefghijlmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345678901234567890"), 19, 1, S("abcdefghij0lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345678901234567890"), 19, 2, S("abcdefghij0lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345678901234567890"), 20, 0, S("abcdefghijlmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345678901234567890"), 20, 1, S("abcdefghijlmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV(""), 0, 0, S("abcdefghijpqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV(""), 0, 1, S("abcdefghijpqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV(""), 1, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345"), 0, 0, S("abcdefghijpqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345"), 0, 1, S("abcdefghij1pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345"), 0, 2, S("abcdefghij12pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345"), 0, 4, S("abcdefghij1234pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345"), 0, 5, S("abcdefghij12345pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345"), 0, 6, S("abcdefghij12345pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345"), 1, 0, S("abcdefghijpqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345"), 1, 1, S("abcdefghij2pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345"), 1, 2, S("abcdefghij23pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345"), 1, 3, S("abcdefghij234pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345"), 1, 4, S("abcdefghij2345pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345"), 1, 5, S("abcdefghij2345pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345"), 2, 0, S("abcdefghijpqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345"), 2, 1, S("abcdefghij3pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345"), 2, 2, S("abcdefghij34pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345"), 2, 3, S("abcdefghij345pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345"), 2, 4, S("abcdefghij345pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345"), 4, 0, S("abcdefghijpqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345"), 4, 1, S("abcdefghij5pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345"), 4, 2, S("abcdefghij5pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345"), 5, 0, S("abcdefghijpqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345"), 5, 1, S("abcdefghijpqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("1234567890"), 0, 0, S("abcdefghijpqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("1234567890"), 0, 1, S("abcdefghij1pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("1234567890"), 0, 5, S("abcdefghij12345pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("1234567890"), 0, 9, S("abcdefghij123456789pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("1234567890"), 0, 10, S("abcdefghij1234567890pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("1234567890"), 0, 11, S("abcdefghij1234567890pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("1234567890"), 1, 0, S("abcdefghijpqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("1234567890"), 1, 1, S("abcdefghij2pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("1234567890"), 1, 4, S("abcdefghij2345pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("1234567890"), 1, 8, S("abcdefghij23456789pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("1234567890"), 1, 9, S("abcdefghij234567890pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("1234567890"), 1, 10, S("abcdefghij234567890pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("1234567890"), 5, 0, S("abcdefghijpqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("1234567890"), 5, 1, S("abcdefghij6pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("1234567890"), 5, 2, S("abcdefghij67pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("1234567890"), 5, 4, S("abcdefghij6789pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("1234567890"), 5, 5, S("abcdefghij67890pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("1234567890"), 5, 6, S("abcdefghij67890pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("1234567890"), 9, 0, S("abcdefghijpqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("1234567890"), 9, 1, S("abcdefghij0pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("1234567890"), 9, 2, S("abcdefghij0pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("1234567890"), 10, 0, S("abcdefghijpqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("1234567890"), 10, 1, S("abcdefghijpqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345678901234567890"), 0, 0, S("abcdefghijpqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345678901234567890"), 0, 1, S("abcdefghij1pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345678901234567890"), 0, 10, S("abcdefghij1234567890pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345678901234567890"), 0, 19, S("abcdefghij1234567890123456789pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345678901234567890"), 0, 20, S("abcdefghij12345678901234567890pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345678901234567890"), 0, 21, S("abcdefghij12345678901234567890pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345678901234567890"), 1, 0, S("abcdefghijpqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345678901234567890"), 1, 1, S("abcdefghij2pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345678901234567890"), 1, 9, S("abcdefghij234567890pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345678901234567890"), 1, 18, S("abcdefghij234567890123456789pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345678901234567890"), 1, 19, S("abcdefghij2345678901234567890pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345678901234567890"), 1, 20, S("abcdefghij2345678901234567890pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345678901234567890"), 10, 0, S("abcdefghijpqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345678901234567890"), 10, 1, S("abcdefghij1pqrst"));
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test48()
-{
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345678901234567890"), 10, 5, S("abcdefghij12345pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345678901234567890"), 10, 9, S("abcdefghij123456789pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345678901234567890"), 10, 10, S("abcdefghij1234567890pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345678901234567890"), 10, 11, S("abcdefghij1234567890pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345678901234567890"), 19, 0, S("abcdefghijpqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345678901234567890"), 19, 1, S("abcdefghij0pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345678901234567890"), 19, 2, S("abcdefghij0pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345678901234567890"), 20, 0, S("abcdefghijpqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345678901234567890"), 20, 1, S("abcdefghijpqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 10, 9, SV(""), 0, 0, S("abcdefghijt"));
- test(S("abcdefghijklmnopqrst"), 10, 9, SV(""), 0, 1, S("abcdefghijt"));
- test(S("abcdefghijklmnopqrst"), 10, 9, SV(""), 1, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345"), 0, 0, S("abcdefghijt"));
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345"), 0, 1, S("abcdefghij1t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345"), 0, 2, S("abcdefghij12t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345"), 0, 4, S("abcdefghij1234t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345"), 0, 5, S("abcdefghij12345t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345"), 0, 6, S("abcdefghij12345t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345"), 1, 0, S("abcdefghijt"));
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345"), 1, 1, S("abcdefghij2t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345"), 1, 2, S("abcdefghij23t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345"), 1, 3, S("abcdefghij234t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345"), 1, 4, S("abcdefghij2345t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345"), 1, 5, S("abcdefghij2345t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345"), 2, 0, S("abcdefghijt"));
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345"), 2, 1, S("abcdefghij3t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345"), 2, 2, S("abcdefghij34t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345"), 2, 3, S("abcdefghij345t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345"), 2, 4, S("abcdefghij345t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345"), 4, 0, S("abcdefghijt"));
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345"), 4, 1, S("abcdefghij5t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345"), 4, 2, S("abcdefghij5t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345"), 5, 0, S("abcdefghijt"));
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345"), 5, 1, S("abcdefghijt"));
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("1234567890"), 0, 0, S("abcdefghijt"));
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("1234567890"), 0, 1, S("abcdefghij1t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("1234567890"), 0, 5, S("abcdefghij12345t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("1234567890"), 0, 9, S("abcdefghij123456789t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("1234567890"), 0, 10, S("abcdefghij1234567890t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("1234567890"), 0, 11, S("abcdefghij1234567890t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("1234567890"), 1, 0, S("abcdefghijt"));
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("1234567890"), 1, 1, S("abcdefghij2t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("1234567890"), 1, 4, S("abcdefghij2345t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("1234567890"), 1, 8, S("abcdefghij23456789t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("1234567890"), 1, 9, S("abcdefghij234567890t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("1234567890"), 1, 10, S("abcdefghij234567890t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("1234567890"), 5, 0, S("abcdefghijt"));
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("1234567890"), 5, 1, S("abcdefghij6t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("1234567890"), 5, 2, S("abcdefghij67t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("1234567890"), 5, 4, S("abcdefghij6789t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("1234567890"), 5, 5, S("abcdefghij67890t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("1234567890"), 5, 6, S("abcdefghij67890t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("1234567890"), 9, 0, S("abcdefghijt"));
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("1234567890"), 9, 1, S("abcdefghij0t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("1234567890"), 9, 2, S("abcdefghij0t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("1234567890"), 10, 0, S("abcdefghijt"));
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("1234567890"), 10, 1, S("abcdefghijt"));
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345678901234567890"), 0, 0, S("abcdefghijt"));
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345678901234567890"), 0, 1, S("abcdefghij1t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345678901234567890"), 0, 10, S("abcdefghij1234567890t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345678901234567890"), 0, 19, S("abcdefghij1234567890123456789t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345678901234567890"), 0, 20, S("abcdefghij12345678901234567890t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345678901234567890"), 0, 21, S("abcdefghij12345678901234567890t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345678901234567890"), 1, 0, S("abcdefghijt"));
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345678901234567890"), 1, 1, S("abcdefghij2t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345678901234567890"), 1, 9, S("abcdefghij234567890t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345678901234567890"), 1, 18, S("abcdefghij234567890123456789t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345678901234567890"), 1, 19, S("abcdefghij2345678901234567890t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345678901234567890"), 1, 20, S("abcdefghij2345678901234567890t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345678901234567890"), 10, 0, S("abcdefghijt"));
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345678901234567890"), 10, 1, S("abcdefghij1t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345678901234567890"), 10, 5, S("abcdefghij12345t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345678901234567890"), 10, 9, S("abcdefghij123456789t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345678901234567890"), 10, 10, S("abcdefghij1234567890t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345678901234567890"), 10, 11, S("abcdefghij1234567890t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345678901234567890"), 19, 0, S("abcdefghijt"));
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345678901234567890"), 19, 1, S("abcdefghij0t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345678901234567890"), 19, 2, S("abcdefghij0t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345678901234567890"), 20, 0, S("abcdefghijt"));
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345678901234567890"), 20, 1, S("abcdefghijt"));
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 10, 10, SV(""), 0, 0, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 10, SV(""), 0, 1, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 10, SV(""), 1, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345"), 0, 0, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345"), 0, 1, S("abcdefghij1"));
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345"), 0, 2, S("abcdefghij12"));
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345"), 0, 4, S("abcdefghij1234"));
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345"), 0, 5, S("abcdefghij12345"));
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345"), 0, 6, S("abcdefghij12345"));
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345"), 1, 0, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345"), 1, 1, S("abcdefghij2"));
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345"), 1, 2, S("abcdefghij23"));
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345"), 1, 3, S("abcdefghij234"));
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345"), 1, 4, S("abcdefghij2345"));
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345"), 1, 5, S("abcdefghij2345"));
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345"), 2, 0, S("abcdefghij"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test48() {
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345678901234567890"), 10, 5, S("abcdefghij12345pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345678901234567890"), 10, 9, S("abcdefghij123456789pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345678901234567890"), 10, 10, S("abcdefghij1234567890pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345678901234567890"), 10, 11, S("abcdefghij1234567890pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345678901234567890"), 19, 0, S("abcdefghijpqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345678901234567890"), 19, 1, S("abcdefghij0pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345678901234567890"), 19, 2, S("abcdefghij0pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345678901234567890"), 20, 0, S("abcdefghijpqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345678901234567890"), 20, 1, S("abcdefghijpqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV(""), 0, 0, S("abcdefghijt"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV(""), 0, 1, S("abcdefghijt"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV(""), 1, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345"), 0, 0, S("abcdefghijt"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345"), 0, 1, S("abcdefghij1t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345"), 0, 2, S("abcdefghij12t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345"), 0, 4, S("abcdefghij1234t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345"), 0, 5, S("abcdefghij12345t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345"), 0, 6, S("abcdefghij12345t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345"), 1, 0, S("abcdefghijt"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345"), 1, 1, S("abcdefghij2t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345"), 1, 2, S("abcdefghij23t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345"), 1, 3, S("abcdefghij234t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345"), 1, 4, S("abcdefghij2345t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345"), 1, 5, S("abcdefghij2345t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345"), 2, 0, S("abcdefghijt"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345"), 2, 1, S("abcdefghij3t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345"), 2, 2, S("abcdefghij34t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345"), 2, 3, S("abcdefghij345t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345"), 2, 4, S("abcdefghij345t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345"), 4, 0, S("abcdefghijt"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345"), 4, 1, S("abcdefghij5t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345"), 4, 2, S("abcdefghij5t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345"), 5, 0, S("abcdefghijt"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345"), 5, 1, S("abcdefghijt"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("1234567890"), 0, 0, S("abcdefghijt"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("1234567890"), 0, 1, S("abcdefghij1t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("1234567890"), 0, 5, S("abcdefghij12345t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("1234567890"), 0, 9, S("abcdefghij123456789t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("1234567890"), 0, 10, S("abcdefghij1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("1234567890"), 0, 11, S("abcdefghij1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("1234567890"), 1, 0, S("abcdefghijt"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("1234567890"), 1, 1, S("abcdefghij2t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("1234567890"), 1, 4, S("abcdefghij2345t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("1234567890"), 1, 8, S("abcdefghij23456789t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("1234567890"), 1, 9, S("abcdefghij234567890t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("1234567890"), 1, 10, S("abcdefghij234567890t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("1234567890"), 5, 0, S("abcdefghijt"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("1234567890"), 5, 1, S("abcdefghij6t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("1234567890"), 5, 2, S("abcdefghij67t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("1234567890"), 5, 4, S("abcdefghij6789t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("1234567890"), 5, 5, S("abcdefghij67890t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("1234567890"), 5, 6, S("abcdefghij67890t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("1234567890"), 9, 0, S("abcdefghijt"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("1234567890"), 9, 1, S("abcdefghij0t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("1234567890"), 9, 2, S("abcdefghij0t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("1234567890"), 10, 0, S("abcdefghijt"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("1234567890"), 10, 1, S("abcdefghijt"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345678901234567890"), 0, 0, S("abcdefghijt"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345678901234567890"), 0, 1, S("abcdefghij1t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345678901234567890"), 0, 10, S("abcdefghij1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345678901234567890"), 0, 19, S("abcdefghij1234567890123456789t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345678901234567890"), 0, 20, S("abcdefghij12345678901234567890t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345678901234567890"), 0, 21, S("abcdefghij12345678901234567890t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345678901234567890"), 1, 0, S("abcdefghijt"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345678901234567890"), 1, 1, S("abcdefghij2t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345678901234567890"), 1, 9, S("abcdefghij234567890t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345678901234567890"), 1, 18, S("abcdefghij234567890123456789t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345678901234567890"), 1, 19, S("abcdefghij2345678901234567890t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345678901234567890"), 1, 20, S("abcdefghij2345678901234567890t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345678901234567890"), 10, 0, S("abcdefghijt"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345678901234567890"), 10, 1, S("abcdefghij1t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345678901234567890"), 10, 5, S("abcdefghij12345t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345678901234567890"), 10, 9, S("abcdefghij123456789t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345678901234567890"), 10, 10, S("abcdefghij1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345678901234567890"), 10, 11, S("abcdefghij1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345678901234567890"), 19, 0, S("abcdefghijt"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345678901234567890"), 19, 1, S("abcdefghij0t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345678901234567890"), 19, 2, S("abcdefghij0t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345678901234567890"), 20, 0, S("abcdefghijt"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345678901234567890"), 20, 1, S("abcdefghijt"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV(""), 0, 0, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV(""), 0, 1, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV(""), 1, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345"), 0, 0, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345"), 0, 1, S("abcdefghij1"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345"), 0, 2, S("abcdefghij12"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345"), 0, 4, S("abcdefghij1234"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345"), 0, 5, S("abcdefghij12345"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345"), 0, 6, S("abcdefghij12345"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345"), 1, 0, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345"), 1, 1, S("abcdefghij2"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345"), 1, 2, S("abcdefghij23"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345"), 1, 3, S("abcdefghij234"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345"), 1, 4, S("abcdefghij2345"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345"), 1, 5, S("abcdefghij2345"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345"), 2, 0, S("abcdefghij"));
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test49()
-{
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345"), 2, 1, S("abcdefghij3"));
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345"), 2, 2, S("abcdefghij34"));
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345"), 2, 3, S("abcdefghij345"));
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345"), 2, 4, S("abcdefghij345"));
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345"), 4, 0, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345"), 4, 1, S("abcdefghij5"));
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345"), 4, 2, S("abcdefghij5"));
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345"), 5, 0, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345"), 5, 1, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("1234567890"), 0, 0, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("1234567890"), 0, 1, S("abcdefghij1"));
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("1234567890"), 0, 5, S("abcdefghij12345"));
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("1234567890"), 0, 9, S("abcdefghij123456789"));
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("1234567890"), 0, 10, S("abcdefghij1234567890"));
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("1234567890"), 0, 11, S("abcdefghij1234567890"));
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("1234567890"), 1, 0, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("1234567890"), 1, 1, S("abcdefghij2"));
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("1234567890"), 1, 4, S("abcdefghij2345"));
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("1234567890"), 1, 8, S("abcdefghij23456789"));
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("1234567890"), 1, 9, S("abcdefghij234567890"));
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("1234567890"), 1, 10, S("abcdefghij234567890"));
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("1234567890"), 5, 0, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("1234567890"), 5, 1, S("abcdefghij6"));
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("1234567890"), 5, 2, S("abcdefghij67"));
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("1234567890"), 5, 4, S("abcdefghij6789"));
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("1234567890"), 5, 5, S("abcdefghij67890"));
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("1234567890"), 5, 6, S("abcdefghij67890"));
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("1234567890"), 9, 0, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("1234567890"), 9, 1, S("abcdefghij0"));
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("1234567890"), 9, 2, S("abcdefghij0"));
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("1234567890"), 10, 0, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("1234567890"), 10, 1, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345678901234567890"), 0, 0, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345678901234567890"), 0, 1, S("abcdefghij1"));
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345678901234567890"), 0, 10, S("abcdefghij1234567890"));
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345678901234567890"), 0, 19, S("abcdefghij1234567890123456789"));
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345678901234567890"), 0, 20, S("abcdefghij12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345678901234567890"), 0, 21, S("abcdefghij12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345678901234567890"), 1, 0, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345678901234567890"), 1, 1, S("abcdefghij2"));
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345678901234567890"), 1, 9, S("abcdefghij234567890"));
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345678901234567890"), 1, 18, S("abcdefghij234567890123456789"));
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345678901234567890"), 1, 19, S("abcdefghij2345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345678901234567890"), 1, 20, S("abcdefghij2345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345678901234567890"), 10, 0, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345678901234567890"), 10, 1, S("abcdefghij1"));
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345678901234567890"), 10, 5, S("abcdefghij12345"));
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345678901234567890"), 10, 9, S("abcdefghij123456789"));
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345678901234567890"), 10, 10, S("abcdefghij1234567890"));
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345678901234567890"), 10, 11, S("abcdefghij1234567890"));
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345678901234567890"), 19, 0, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345678901234567890"), 19, 1, S("abcdefghij0"));
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345678901234567890"), 19, 2, S("abcdefghij0"));
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345678901234567890"), 20, 0, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345678901234567890"), 20, 1, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 10, 11, SV(""), 0, 0, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 11, SV(""), 0, 1, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 11, SV(""), 1, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345"), 0, 0, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345"), 0, 1, S("abcdefghij1"));
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345"), 0, 2, S("abcdefghij12"));
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345"), 0, 4, S("abcdefghij1234"));
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345"), 0, 5, S("abcdefghij12345"));
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345"), 0, 6, S("abcdefghij12345"));
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345"), 1, 0, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345"), 1, 1, S("abcdefghij2"));
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345"), 1, 2, S("abcdefghij23"));
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345"), 1, 3, S("abcdefghij234"));
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345"), 1, 4, S("abcdefghij2345"));
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345"), 1, 5, S("abcdefghij2345"));
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345"), 2, 0, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345"), 2, 1, S("abcdefghij3"));
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345"), 2, 2, S("abcdefghij34"));
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345"), 2, 3, S("abcdefghij345"));
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345"), 2, 4, S("abcdefghij345"));
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345"), 4, 0, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345"), 4, 1, S("abcdefghij5"));
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345"), 4, 2, S("abcdefghij5"));
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345"), 5, 0, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345"), 5, 1, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("1234567890"), 0, 0, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("1234567890"), 0, 1, S("abcdefghij1"));
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("1234567890"), 0, 5, S("abcdefghij12345"));
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("1234567890"), 0, 9, S("abcdefghij123456789"));
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("1234567890"), 0, 10, S("abcdefghij1234567890"));
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("1234567890"), 0, 11, S("abcdefghij1234567890"));
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("1234567890"), 1, 0, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("1234567890"), 1, 1, S("abcdefghij2"));
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("1234567890"), 1, 4, S("abcdefghij2345"));
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("1234567890"), 1, 8, S("abcdefghij23456789"));
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("1234567890"), 1, 9, S("abcdefghij234567890"));
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("1234567890"), 1, 10, S("abcdefghij234567890"));
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("1234567890"), 5, 0, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("1234567890"), 5, 1, S("abcdefghij6"));
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("1234567890"), 5, 2, S("abcdefghij67"));
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("1234567890"), 5, 4, S("abcdefghij6789"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test49() {
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345"), 2, 1, S("abcdefghij3"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345"), 2, 2, S("abcdefghij34"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345"), 2, 3, S("abcdefghij345"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345"), 2, 4, S("abcdefghij345"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345"), 4, 0, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345"), 4, 1, S("abcdefghij5"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345"), 4, 2, S("abcdefghij5"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345"), 5, 0, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345"), 5, 1, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("1234567890"), 0, 0, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("1234567890"), 0, 1, S("abcdefghij1"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("1234567890"), 0, 5, S("abcdefghij12345"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("1234567890"), 0, 9, S("abcdefghij123456789"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("1234567890"), 0, 10, S("abcdefghij1234567890"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("1234567890"), 0, 11, S("abcdefghij1234567890"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("1234567890"), 1, 0, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("1234567890"), 1, 1, S("abcdefghij2"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("1234567890"), 1, 4, S("abcdefghij2345"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("1234567890"), 1, 8, S("abcdefghij23456789"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("1234567890"), 1, 9, S("abcdefghij234567890"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("1234567890"), 1, 10, S("abcdefghij234567890"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("1234567890"), 5, 0, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("1234567890"), 5, 1, S("abcdefghij6"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("1234567890"), 5, 2, S("abcdefghij67"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("1234567890"), 5, 4, S("abcdefghij6789"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("1234567890"), 5, 5, S("abcdefghij67890"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("1234567890"), 5, 6, S("abcdefghij67890"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("1234567890"), 9, 0, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("1234567890"), 9, 1, S("abcdefghij0"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("1234567890"), 9, 2, S("abcdefghij0"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("1234567890"), 10, 0, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("1234567890"), 10, 1, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345678901234567890"), 0, 0, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345678901234567890"), 0, 1, S("abcdefghij1"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345678901234567890"), 0, 10, S("abcdefghij1234567890"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345678901234567890"), 0, 19, S("abcdefghij1234567890123456789"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345678901234567890"), 0, 20, S("abcdefghij12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345678901234567890"), 0, 21, S("abcdefghij12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345678901234567890"), 1, 0, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345678901234567890"), 1, 1, S("abcdefghij2"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345678901234567890"), 1, 9, S("abcdefghij234567890"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345678901234567890"), 1, 18, S("abcdefghij234567890123456789"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345678901234567890"), 1, 19, S("abcdefghij2345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345678901234567890"), 1, 20, S("abcdefghij2345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345678901234567890"), 10, 0, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345678901234567890"), 10, 1, S("abcdefghij1"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345678901234567890"), 10, 5, S("abcdefghij12345"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345678901234567890"), 10, 9, S("abcdefghij123456789"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345678901234567890"), 10, 10, S("abcdefghij1234567890"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345678901234567890"), 10, 11, S("abcdefghij1234567890"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345678901234567890"), 19, 0, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345678901234567890"), 19, 1, S("abcdefghij0"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345678901234567890"), 19, 2, S("abcdefghij0"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345678901234567890"), 20, 0, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345678901234567890"), 20, 1, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV(""), 0, 0, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV(""), 0, 1, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV(""), 1, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345"), 0, 0, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345"), 0, 1, S("abcdefghij1"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345"), 0, 2, S("abcdefghij12"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345"), 0, 4, S("abcdefghij1234"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345"), 0, 5, S("abcdefghij12345"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345"), 0, 6, S("abcdefghij12345"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345"), 1, 0, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345"), 1, 1, S("abcdefghij2"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345"), 1, 2, S("abcdefghij23"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345"), 1, 3, S("abcdefghij234"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345"), 1, 4, S("abcdefghij2345"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345"), 1, 5, S("abcdefghij2345"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345"), 2, 0, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345"), 2, 1, S("abcdefghij3"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345"), 2, 2, S("abcdefghij34"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345"), 2, 3, S("abcdefghij345"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345"), 2, 4, S("abcdefghij345"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345"), 4, 0, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345"), 4, 1, S("abcdefghij5"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345"), 4, 2, S("abcdefghij5"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345"), 5, 0, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345"), 5, 1, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("1234567890"), 0, 0, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("1234567890"), 0, 1, S("abcdefghij1"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("1234567890"), 0, 5, S("abcdefghij12345"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("1234567890"), 0, 9, S("abcdefghij123456789"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("1234567890"), 0, 10, S("abcdefghij1234567890"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("1234567890"), 0, 11, S("abcdefghij1234567890"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("1234567890"), 1, 0, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("1234567890"), 1, 1, S("abcdefghij2"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("1234567890"), 1, 4, S("abcdefghij2345"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("1234567890"), 1, 8, S("abcdefghij23456789"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("1234567890"), 1, 9, S("abcdefghij234567890"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("1234567890"), 1, 10, S("abcdefghij234567890"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("1234567890"), 5, 0, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("1234567890"), 5, 1, S("abcdefghij6"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("1234567890"), 5, 2, S("abcdefghij67"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("1234567890"), 5, 4, S("abcdefghij6789"));
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test50()
-{
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("1234567890"), 5, 5, S("abcdefghij67890"));
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("1234567890"), 5, 6, S("abcdefghij67890"));
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("1234567890"), 9, 0, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("1234567890"), 9, 1, S("abcdefghij0"));
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("1234567890"), 9, 2, S("abcdefghij0"));
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("1234567890"), 10, 0, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("1234567890"), 10, 1, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345678901234567890"), 0, 0, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345678901234567890"), 0, 1, S("abcdefghij1"));
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345678901234567890"), 0, 10, S("abcdefghij1234567890"));
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345678901234567890"), 0, 19, S("abcdefghij1234567890123456789"));
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345678901234567890"), 0, 20, S("abcdefghij12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345678901234567890"), 0, 21, S("abcdefghij12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345678901234567890"), 1, 0, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345678901234567890"), 1, 1, S("abcdefghij2"));
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345678901234567890"), 1, 9, S("abcdefghij234567890"));
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345678901234567890"), 1, 18, S("abcdefghij234567890123456789"));
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345678901234567890"), 1, 19, S("abcdefghij2345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345678901234567890"), 1, 20, S("abcdefghij2345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345678901234567890"), 10, 0, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345678901234567890"), 10, 1, S("abcdefghij1"));
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345678901234567890"), 10, 5, S("abcdefghij12345"));
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345678901234567890"), 10, 9, S("abcdefghij123456789"));
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345678901234567890"), 10, 10, S("abcdefghij1234567890"));
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345678901234567890"), 10, 11, S("abcdefghij1234567890"));
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345678901234567890"), 19, 0, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345678901234567890"), 19, 1, S("abcdefghij0"));
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345678901234567890"), 19, 2, S("abcdefghij0"));
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345678901234567890"), 20, 0, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345678901234567890"), 20, 1, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 19, 0, SV(""), 0, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, 0, SV(""), 0, 1, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, 0, SV(""), 1, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345"), 0, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345"), 0, 1, S("abcdefghijklmnopqrs1t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345"), 0, 2, S("abcdefghijklmnopqrs12t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345"), 0, 4, S("abcdefghijklmnopqrs1234t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345"), 0, 5, S("abcdefghijklmnopqrs12345t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345"), 0, 6, S("abcdefghijklmnopqrs12345t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345"), 1, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345"), 1, 1, S("abcdefghijklmnopqrs2t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345"), 1, 2, S("abcdefghijklmnopqrs23t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345"), 1, 3, S("abcdefghijklmnopqrs234t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345"), 1, 4, S("abcdefghijklmnopqrs2345t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345"), 1, 5, S("abcdefghijklmnopqrs2345t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345"), 2, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345"), 2, 1, S("abcdefghijklmnopqrs3t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345"), 2, 2, S("abcdefghijklmnopqrs34t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345"), 2, 3, S("abcdefghijklmnopqrs345t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345"), 2, 4, S("abcdefghijklmnopqrs345t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345"), 4, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345"), 4, 1, S("abcdefghijklmnopqrs5t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345"), 4, 2, S("abcdefghijklmnopqrs5t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345"), 5, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345"), 5, 1, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("1234567890"), 0, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("1234567890"), 0, 1, S("abcdefghijklmnopqrs1t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("1234567890"), 0, 5, S("abcdefghijklmnopqrs12345t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("1234567890"), 0, 9, S("abcdefghijklmnopqrs123456789t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("1234567890"), 0, 10, S("abcdefghijklmnopqrs1234567890t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("1234567890"), 0, 11, S("abcdefghijklmnopqrs1234567890t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("1234567890"), 1, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("1234567890"), 1, 1, S("abcdefghijklmnopqrs2t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("1234567890"), 1, 4, S("abcdefghijklmnopqrs2345t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("1234567890"), 1, 8, S("abcdefghijklmnopqrs23456789t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("1234567890"), 1, 9, S("abcdefghijklmnopqrs234567890t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("1234567890"), 1, 10, S("abcdefghijklmnopqrs234567890t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("1234567890"), 5, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("1234567890"), 5, 1, S("abcdefghijklmnopqrs6t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("1234567890"), 5, 2, S("abcdefghijklmnopqrs67t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("1234567890"), 5, 4, S("abcdefghijklmnopqrs6789t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("1234567890"), 5, 5, S("abcdefghijklmnopqrs67890t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("1234567890"), 5, 6, S("abcdefghijklmnopqrs67890t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("1234567890"), 9, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("1234567890"), 9, 1, S("abcdefghijklmnopqrs0t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("1234567890"), 9, 2, S("abcdefghijklmnopqrs0t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("1234567890"), 10, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("1234567890"), 10, 1, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345678901234567890"), 0, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345678901234567890"), 0, 1, S("abcdefghijklmnopqrs1t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345678901234567890"), 0, 10, S("abcdefghijklmnopqrs1234567890t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345678901234567890"), 0, 19, S("abcdefghijklmnopqrs1234567890123456789t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345678901234567890"), 0, 20, S("abcdefghijklmnopqrs12345678901234567890t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345678901234567890"), 0, 21, S("abcdefghijklmnopqrs12345678901234567890t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345678901234567890"), 1, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345678901234567890"), 1, 1, S("abcdefghijklmnopqrs2t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345678901234567890"), 1, 9, S("abcdefghijklmnopqrs234567890t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345678901234567890"), 1, 18, S("abcdefghijklmnopqrs234567890123456789t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345678901234567890"), 1, 19, S("abcdefghijklmnopqrs2345678901234567890t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345678901234567890"), 1, 20, S("abcdefghijklmnopqrs2345678901234567890t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345678901234567890"), 10, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345678901234567890"), 10, 1, S("abcdefghijklmnopqrs1t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345678901234567890"), 10, 5, S("abcdefghijklmnopqrs12345t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345678901234567890"), 10, 9, S("abcdefghijklmnopqrs123456789t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345678901234567890"), 10, 10, S("abcdefghijklmnopqrs1234567890t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345678901234567890"), 10, 11, S("abcdefghijklmnopqrs1234567890t"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test50() {
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("1234567890"), 5, 5, S("abcdefghij67890"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("1234567890"), 5, 6, S("abcdefghij67890"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("1234567890"), 9, 0, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("1234567890"), 9, 1, S("abcdefghij0"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("1234567890"), 9, 2, S("abcdefghij0"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("1234567890"), 10, 0, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("1234567890"), 10, 1, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345678901234567890"), 0, 0, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345678901234567890"), 0, 1, S("abcdefghij1"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345678901234567890"), 0, 10, S("abcdefghij1234567890"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345678901234567890"), 0, 19, S("abcdefghij1234567890123456789"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345678901234567890"), 0, 20, S("abcdefghij12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345678901234567890"), 0, 21, S("abcdefghij12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345678901234567890"), 1, 0, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345678901234567890"), 1, 1, S("abcdefghij2"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345678901234567890"), 1, 9, S("abcdefghij234567890"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345678901234567890"), 1, 18, S("abcdefghij234567890123456789"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345678901234567890"), 1, 19, S("abcdefghij2345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345678901234567890"), 1, 20, S("abcdefghij2345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345678901234567890"), 10, 0, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345678901234567890"), 10, 1, S("abcdefghij1"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345678901234567890"), 10, 5, S("abcdefghij12345"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345678901234567890"), 10, 9, S("abcdefghij123456789"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345678901234567890"), 10, 10, S("abcdefghij1234567890"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345678901234567890"), 10, 11, S("abcdefghij1234567890"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345678901234567890"), 19, 0, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345678901234567890"), 19, 1, S("abcdefghij0"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345678901234567890"), 19, 2, S("abcdefghij0"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345678901234567890"), 20, 0, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345678901234567890"), 20, 1, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV(""), 0, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV(""), 0, 1, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV(""), 1, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345"), 0, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345"), 0, 1, S("abcdefghijklmnopqrs1t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345"), 0, 2, S("abcdefghijklmnopqrs12t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345"), 0, 4, S("abcdefghijklmnopqrs1234t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345"), 0, 5, S("abcdefghijklmnopqrs12345t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345"), 0, 6, S("abcdefghijklmnopqrs12345t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345"), 1, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345"), 1, 1, S("abcdefghijklmnopqrs2t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345"), 1, 2, S("abcdefghijklmnopqrs23t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345"), 1, 3, S("abcdefghijklmnopqrs234t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345"), 1, 4, S("abcdefghijklmnopqrs2345t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345"), 1, 5, S("abcdefghijklmnopqrs2345t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345"), 2, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345"), 2, 1, S("abcdefghijklmnopqrs3t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345"), 2, 2, S("abcdefghijklmnopqrs34t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345"), 2, 3, S("abcdefghijklmnopqrs345t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345"), 2, 4, S("abcdefghijklmnopqrs345t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345"), 4, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345"), 4, 1, S("abcdefghijklmnopqrs5t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345"), 4, 2, S("abcdefghijklmnopqrs5t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345"), 5, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345"), 5, 1, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("1234567890"), 0, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("1234567890"), 0, 1, S("abcdefghijklmnopqrs1t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("1234567890"), 0, 5, S("abcdefghijklmnopqrs12345t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("1234567890"), 0, 9, S("abcdefghijklmnopqrs123456789t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("1234567890"), 0, 10, S("abcdefghijklmnopqrs1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("1234567890"), 0, 11, S("abcdefghijklmnopqrs1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("1234567890"), 1, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("1234567890"), 1, 1, S("abcdefghijklmnopqrs2t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("1234567890"), 1, 4, S("abcdefghijklmnopqrs2345t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("1234567890"), 1, 8, S("abcdefghijklmnopqrs23456789t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("1234567890"), 1, 9, S("abcdefghijklmnopqrs234567890t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("1234567890"), 1, 10, S("abcdefghijklmnopqrs234567890t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("1234567890"), 5, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("1234567890"), 5, 1, S("abcdefghijklmnopqrs6t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("1234567890"), 5, 2, S("abcdefghijklmnopqrs67t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("1234567890"), 5, 4, S("abcdefghijklmnopqrs6789t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("1234567890"), 5, 5, S("abcdefghijklmnopqrs67890t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("1234567890"), 5, 6, S("abcdefghijklmnopqrs67890t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("1234567890"), 9, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("1234567890"), 9, 1, S("abcdefghijklmnopqrs0t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("1234567890"), 9, 2, S("abcdefghijklmnopqrs0t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("1234567890"), 10, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("1234567890"), 10, 1, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345678901234567890"), 0, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345678901234567890"), 0, 1, S("abcdefghijklmnopqrs1t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345678901234567890"), 0, 10, S("abcdefghijklmnopqrs1234567890t"));
+ test(S("abcdefghijklmnopqrst"),
+ 19,
+ 0,
+ SV("12345678901234567890"),
+ 0,
+ 19,
+ S("abcdefghijklmnopqrs1234567890123456789t"));
+ test(S("abcdefghijklmnopqrst"),
+ 19,
+ 0,
+ SV("12345678901234567890"),
+ 0,
+ 20,
+ S("abcdefghijklmnopqrs12345678901234567890t"));
+ test(S("abcdefghijklmnopqrst"),
+ 19,
+ 0,
+ SV("12345678901234567890"),
+ 0,
+ 21,
+ S("abcdefghijklmnopqrs12345678901234567890t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345678901234567890"), 1, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345678901234567890"), 1, 1, S("abcdefghijklmnopqrs2t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345678901234567890"), 1, 9, S("abcdefghijklmnopqrs234567890t"));
+ test(
+ S("abcdefghijklmnopqrst"), 19, 0, SV("12345678901234567890"), 1, 18, S("abcdefghijklmnopqrs234567890123456789t"));
+ test(S("abcdefghijklmnopqrst"),
+ 19,
+ 0,
+ SV("12345678901234567890"),
+ 1,
+ 19,
+ S("abcdefghijklmnopqrs2345678901234567890t"));
+ test(S("abcdefghijklmnopqrst"),
+ 19,
+ 0,
+ SV("12345678901234567890"),
+ 1,
+ 20,
+ S("abcdefghijklmnopqrs2345678901234567890t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345678901234567890"), 10, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345678901234567890"), 10, 1, S("abcdefghijklmnopqrs1t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345678901234567890"), 10, 5, S("abcdefghijklmnopqrs12345t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345678901234567890"), 10, 9, S("abcdefghijklmnopqrs123456789t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345678901234567890"), 10, 10, S("abcdefghijklmnopqrs1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345678901234567890"), 10, 11, S("abcdefghijklmnopqrs1234567890t"));
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test51()
-{
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345678901234567890"), 19, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345678901234567890"), 19, 1, S("abcdefghijklmnopqrs0t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345678901234567890"), 19, 2, S("abcdefghijklmnopqrs0t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345678901234567890"), 20, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345678901234567890"), 20, 1, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 19, 1, SV(""), 0, 0, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 1, SV(""), 0, 1, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 1, SV(""), 1, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345"), 0, 0, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345"), 0, 1, S("abcdefghijklmnopqrs1"));
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345"), 0, 2, S("abcdefghijklmnopqrs12"));
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345"), 0, 4, S("abcdefghijklmnopqrs1234"));
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345"), 0, 5, S("abcdefghijklmnopqrs12345"));
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345"), 0, 6, S("abcdefghijklmnopqrs12345"));
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345"), 1, 0, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345"), 1, 1, S("abcdefghijklmnopqrs2"));
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345"), 1, 2, S("abcdefghijklmnopqrs23"));
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345"), 1, 3, S("abcdefghijklmnopqrs234"));
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345"), 1, 4, S("abcdefghijklmnopqrs2345"));
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345"), 1, 5, S("abcdefghijklmnopqrs2345"));
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345"), 2, 0, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345"), 2, 1, S("abcdefghijklmnopqrs3"));
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345"), 2, 2, S("abcdefghijklmnopqrs34"));
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345"), 2, 3, S("abcdefghijklmnopqrs345"));
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345"), 2, 4, S("abcdefghijklmnopqrs345"));
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345"), 4, 0, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345"), 4, 1, S("abcdefghijklmnopqrs5"));
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345"), 4, 2, S("abcdefghijklmnopqrs5"));
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345"), 5, 0, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345"), 5, 1, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("1234567890"), 0, 0, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("1234567890"), 0, 1, S("abcdefghijklmnopqrs1"));
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("1234567890"), 0, 5, S("abcdefghijklmnopqrs12345"));
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("1234567890"), 0, 9, S("abcdefghijklmnopqrs123456789"));
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("1234567890"), 0, 10, S("abcdefghijklmnopqrs1234567890"));
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("1234567890"), 0, 11, S("abcdefghijklmnopqrs1234567890"));
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("1234567890"), 1, 0, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("1234567890"), 1, 1, S("abcdefghijklmnopqrs2"));
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("1234567890"), 1, 4, S("abcdefghijklmnopqrs2345"));
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("1234567890"), 1, 8, S("abcdefghijklmnopqrs23456789"));
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("1234567890"), 1, 9, S("abcdefghijklmnopqrs234567890"));
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("1234567890"), 1, 10, S("abcdefghijklmnopqrs234567890"));
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("1234567890"), 5, 0, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("1234567890"), 5, 1, S("abcdefghijklmnopqrs6"));
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("1234567890"), 5, 2, S("abcdefghijklmnopqrs67"));
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("1234567890"), 5, 4, S("abcdefghijklmnopqrs6789"));
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("1234567890"), 5, 5, S("abcdefghijklmnopqrs67890"));
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("1234567890"), 5, 6, S("abcdefghijklmnopqrs67890"));
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("1234567890"), 9, 0, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("1234567890"), 9, 1, S("abcdefghijklmnopqrs0"));
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("1234567890"), 9, 2, S("abcdefghijklmnopqrs0"));
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("1234567890"), 10, 0, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("1234567890"), 10, 1, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345678901234567890"), 0, 0, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345678901234567890"), 0, 1, S("abcdefghijklmnopqrs1"));
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345678901234567890"), 0, 10, S("abcdefghijklmnopqrs1234567890"));
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345678901234567890"), 0, 19, S("abcdefghijklmnopqrs1234567890123456789"));
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345678901234567890"), 0, 20, S("abcdefghijklmnopqrs12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345678901234567890"), 0, 21, S("abcdefghijklmnopqrs12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345678901234567890"), 1, 0, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345678901234567890"), 1, 1, S("abcdefghijklmnopqrs2"));
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345678901234567890"), 1, 9, S("abcdefghijklmnopqrs234567890"));
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345678901234567890"), 1, 18, S("abcdefghijklmnopqrs234567890123456789"));
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345678901234567890"), 1, 19, S("abcdefghijklmnopqrs2345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345678901234567890"), 1, 20, S("abcdefghijklmnopqrs2345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345678901234567890"), 10, 0, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345678901234567890"), 10, 1, S("abcdefghijklmnopqrs1"));
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345678901234567890"), 10, 5, S("abcdefghijklmnopqrs12345"));
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345678901234567890"), 10, 9, S("abcdefghijklmnopqrs123456789"));
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345678901234567890"), 10, 10, S("abcdefghijklmnopqrs1234567890"));
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345678901234567890"), 10, 11, S("abcdefghijklmnopqrs1234567890"));
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345678901234567890"), 19, 0, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345678901234567890"), 19, 1, S("abcdefghijklmnopqrs0"));
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345678901234567890"), 19, 2, S("abcdefghijklmnopqrs0"));
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345678901234567890"), 20, 0, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345678901234567890"), 20, 1, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 19, 2, SV(""), 0, 0, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 2, SV(""), 0, 1, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 2, SV(""), 1, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345"), 0, 0, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345"), 0, 1, S("abcdefghijklmnopqrs1"));
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345"), 0, 2, S("abcdefghijklmnopqrs12"));
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345"), 0, 4, S("abcdefghijklmnopqrs1234"));
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345"), 0, 5, S("abcdefghijklmnopqrs12345"));
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345"), 0, 6, S("abcdefghijklmnopqrs12345"));
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345"), 1, 0, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345"), 1, 1, S("abcdefghijklmnopqrs2"));
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345"), 1, 2, S("abcdefghijklmnopqrs23"));
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345"), 1, 3, S("abcdefghijklmnopqrs234"));
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345"), 1, 4, S("abcdefghijklmnopqrs2345"));
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345"), 1, 5, S("abcdefghijklmnopqrs2345"));
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345"), 2, 0, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345"), 2, 1, S("abcdefghijklmnopqrs3"));
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345"), 2, 2, S("abcdefghijklmnopqrs34"));
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345"), 2, 3, S("abcdefghijklmnopqrs345"));
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345"), 2, 4, S("abcdefghijklmnopqrs345"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test51() {
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345678901234567890"), 19, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345678901234567890"), 19, 1, S("abcdefghijklmnopqrs0t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345678901234567890"), 19, 2, S("abcdefghijklmnopqrs0t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345678901234567890"), 20, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345678901234567890"), 20, 1, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV(""), 0, 0, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV(""), 0, 1, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV(""), 1, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345"), 0, 0, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345"), 0, 1, S("abcdefghijklmnopqrs1"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345"), 0, 2, S("abcdefghijklmnopqrs12"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345"), 0, 4, S("abcdefghijklmnopqrs1234"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345"), 0, 5, S("abcdefghijklmnopqrs12345"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345"), 0, 6, S("abcdefghijklmnopqrs12345"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345"), 1, 0, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345"), 1, 1, S("abcdefghijklmnopqrs2"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345"), 1, 2, S("abcdefghijklmnopqrs23"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345"), 1, 3, S("abcdefghijklmnopqrs234"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345"), 1, 4, S("abcdefghijklmnopqrs2345"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345"), 1, 5, S("abcdefghijklmnopqrs2345"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345"), 2, 0, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345"), 2, 1, S("abcdefghijklmnopqrs3"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345"), 2, 2, S("abcdefghijklmnopqrs34"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345"), 2, 3, S("abcdefghijklmnopqrs345"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345"), 2, 4, S("abcdefghijklmnopqrs345"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345"), 4, 0, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345"), 4, 1, S("abcdefghijklmnopqrs5"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345"), 4, 2, S("abcdefghijklmnopqrs5"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345"), 5, 0, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345"), 5, 1, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("1234567890"), 0, 0, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("1234567890"), 0, 1, S("abcdefghijklmnopqrs1"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("1234567890"), 0, 5, S("abcdefghijklmnopqrs12345"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("1234567890"), 0, 9, S("abcdefghijklmnopqrs123456789"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("1234567890"), 0, 10, S("abcdefghijklmnopqrs1234567890"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("1234567890"), 0, 11, S("abcdefghijklmnopqrs1234567890"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("1234567890"), 1, 0, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("1234567890"), 1, 1, S("abcdefghijklmnopqrs2"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("1234567890"), 1, 4, S("abcdefghijklmnopqrs2345"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("1234567890"), 1, 8, S("abcdefghijklmnopqrs23456789"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("1234567890"), 1, 9, S("abcdefghijklmnopqrs234567890"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("1234567890"), 1, 10, S("abcdefghijklmnopqrs234567890"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("1234567890"), 5, 0, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("1234567890"), 5, 1, S("abcdefghijklmnopqrs6"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("1234567890"), 5, 2, S("abcdefghijklmnopqrs67"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("1234567890"), 5, 4, S("abcdefghijklmnopqrs6789"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("1234567890"), 5, 5, S("abcdefghijklmnopqrs67890"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("1234567890"), 5, 6, S("abcdefghijklmnopqrs67890"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("1234567890"), 9, 0, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("1234567890"), 9, 1, S("abcdefghijklmnopqrs0"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("1234567890"), 9, 2, S("abcdefghijklmnopqrs0"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("1234567890"), 10, 0, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("1234567890"), 10, 1, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345678901234567890"), 0, 0, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345678901234567890"), 0, 1, S("abcdefghijklmnopqrs1"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345678901234567890"), 0, 10, S("abcdefghijklmnopqrs1234567890"));
+ test(
+ S("abcdefghijklmnopqrst"), 19, 1, SV("12345678901234567890"), 0, 19, S("abcdefghijklmnopqrs1234567890123456789"));
+ test(S("abcdefghijklmnopqrst"),
+ 19,
+ 1,
+ SV("12345678901234567890"),
+ 0,
+ 20,
+ S("abcdefghijklmnopqrs12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"),
+ 19,
+ 1,
+ SV("12345678901234567890"),
+ 0,
+ 21,
+ S("abcdefghijklmnopqrs12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345678901234567890"), 1, 0, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345678901234567890"), 1, 1, S("abcdefghijklmnopqrs2"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345678901234567890"), 1, 9, S("abcdefghijklmnopqrs234567890"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345678901234567890"), 1, 18, S("abcdefghijklmnopqrs234567890123456789"));
+ test(
+ S("abcdefghijklmnopqrst"), 19, 1, SV("12345678901234567890"), 1, 19, S("abcdefghijklmnopqrs2345678901234567890"));
+ test(
+ S("abcdefghijklmnopqrst"), 19, 1, SV("12345678901234567890"), 1, 20, S("abcdefghijklmnopqrs2345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345678901234567890"), 10, 0, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345678901234567890"), 10, 1, S("abcdefghijklmnopqrs1"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345678901234567890"), 10, 5, S("abcdefghijklmnopqrs12345"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345678901234567890"), 10, 9, S("abcdefghijklmnopqrs123456789"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345678901234567890"), 10, 10, S("abcdefghijklmnopqrs1234567890"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345678901234567890"), 10, 11, S("abcdefghijklmnopqrs1234567890"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345678901234567890"), 19, 0, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345678901234567890"), 19, 1, S("abcdefghijklmnopqrs0"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345678901234567890"), 19, 2, S("abcdefghijklmnopqrs0"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345678901234567890"), 20, 0, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345678901234567890"), 20, 1, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV(""), 0, 0, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV(""), 0, 1, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV(""), 1, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345"), 0, 0, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345"), 0, 1, S("abcdefghijklmnopqrs1"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345"), 0, 2, S("abcdefghijklmnopqrs12"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345"), 0, 4, S("abcdefghijklmnopqrs1234"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345"), 0, 5, S("abcdefghijklmnopqrs12345"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345"), 0, 6, S("abcdefghijklmnopqrs12345"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345"), 1, 0, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345"), 1, 1, S("abcdefghijklmnopqrs2"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345"), 1, 2, S("abcdefghijklmnopqrs23"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345"), 1, 3, S("abcdefghijklmnopqrs234"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345"), 1, 4, S("abcdefghijklmnopqrs2345"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345"), 1, 5, S("abcdefghijklmnopqrs2345"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345"), 2, 0, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345"), 2, 1, S("abcdefghijklmnopqrs3"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345"), 2, 2, S("abcdefghijklmnopqrs34"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345"), 2, 3, S("abcdefghijklmnopqrs345"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345"), 2, 4, S("abcdefghijklmnopqrs345"));
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test52()
-{
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345"), 4, 0, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345"), 4, 1, S("abcdefghijklmnopqrs5"));
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345"), 4, 2, S("abcdefghijklmnopqrs5"));
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345"), 5, 0, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345"), 5, 1, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("1234567890"), 0, 0, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("1234567890"), 0, 1, S("abcdefghijklmnopqrs1"));
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("1234567890"), 0, 5, S("abcdefghijklmnopqrs12345"));
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("1234567890"), 0, 9, S("abcdefghijklmnopqrs123456789"));
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("1234567890"), 0, 10, S("abcdefghijklmnopqrs1234567890"));
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("1234567890"), 0, 11, S("abcdefghijklmnopqrs1234567890"));
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("1234567890"), 1, 0, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("1234567890"), 1, 1, S("abcdefghijklmnopqrs2"));
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("1234567890"), 1, 4, S("abcdefghijklmnopqrs2345"));
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("1234567890"), 1, 8, S("abcdefghijklmnopqrs23456789"));
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("1234567890"), 1, 9, S("abcdefghijklmnopqrs234567890"));
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("1234567890"), 1, 10, S("abcdefghijklmnopqrs234567890"));
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("1234567890"), 5, 0, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("1234567890"), 5, 1, S("abcdefghijklmnopqrs6"));
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("1234567890"), 5, 2, S("abcdefghijklmnopqrs67"));
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("1234567890"), 5, 4, S("abcdefghijklmnopqrs6789"));
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("1234567890"), 5, 5, S("abcdefghijklmnopqrs67890"));
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("1234567890"), 5, 6, S("abcdefghijklmnopqrs67890"));
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("1234567890"), 9, 0, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("1234567890"), 9, 1, S("abcdefghijklmnopqrs0"));
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("1234567890"), 9, 2, S("abcdefghijklmnopqrs0"));
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("1234567890"), 10, 0, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("1234567890"), 10, 1, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345678901234567890"), 0, 0, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345678901234567890"), 0, 1, S("abcdefghijklmnopqrs1"));
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345678901234567890"), 0, 10, S("abcdefghijklmnopqrs1234567890"));
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345678901234567890"), 0, 19, S("abcdefghijklmnopqrs1234567890123456789"));
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345678901234567890"), 0, 20, S("abcdefghijklmnopqrs12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345678901234567890"), 0, 21, S("abcdefghijklmnopqrs12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345678901234567890"), 1, 0, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345678901234567890"), 1, 1, S("abcdefghijklmnopqrs2"));
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345678901234567890"), 1, 9, S("abcdefghijklmnopqrs234567890"));
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345678901234567890"), 1, 18, S("abcdefghijklmnopqrs234567890123456789"));
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345678901234567890"), 1, 19, S("abcdefghijklmnopqrs2345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345678901234567890"), 1, 20, S("abcdefghijklmnopqrs2345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345678901234567890"), 10, 0, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345678901234567890"), 10, 1, S("abcdefghijklmnopqrs1"));
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345678901234567890"), 10, 5, S("abcdefghijklmnopqrs12345"));
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345678901234567890"), 10, 9, S("abcdefghijklmnopqrs123456789"));
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345678901234567890"), 10, 10, S("abcdefghijklmnopqrs1234567890"));
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345678901234567890"), 10, 11, S("abcdefghijklmnopqrs1234567890"));
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345678901234567890"), 19, 0, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345678901234567890"), 19, 1, S("abcdefghijklmnopqrs0"));
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345678901234567890"), 19, 2, S("abcdefghijklmnopqrs0"));
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345678901234567890"), 20, 0, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345678901234567890"), 20, 1, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 20, 0, SV(""), 0, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 0, SV(""), 0, 1, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 0, SV(""), 1, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345"), 0, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345"), 0, 1, S("abcdefghijklmnopqrst1"));
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345"), 0, 2, S("abcdefghijklmnopqrst12"));
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345"), 0, 4, S("abcdefghijklmnopqrst1234"));
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345"), 0, 5, S("abcdefghijklmnopqrst12345"));
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345"), 0, 6, S("abcdefghijklmnopqrst12345"));
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345"), 1, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345"), 1, 1, S("abcdefghijklmnopqrst2"));
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345"), 1, 2, S("abcdefghijklmnopqrst23"));
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345"), 1, 3, S("abcdefghijklmnopqrst234"));
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345"), 1, 4, S("abcdefghijklmnopqrst2345"));
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345"), 1, 5, S("abcdefghijklmnopqrst2345"));
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345"), 2, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345"), 2, 1, S("abcdefghijklmnopqrst3"));
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345"), 2, 2, S("abcdefghijklmnopqrst34"));
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345"), 2, 3, S("abcdefghijklmnopqrst345"));
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345"), 2, 4, S("abcdefghijklmnopqrst345"));
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345"), 4, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345"), 4, 1, S("abcdefghijklmnopqrst5"));
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345"), 4, 2, S("abcdefghijklmnopqrst5"));
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345"), 5, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345"), 5, 1, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("1234567890"), 0, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("1234567890"), 0, 1, S("abcdefghijklmnopqrst1"));
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("1234567890"), 0, 5, S("abcdefghijklmnopqrst12345"));
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("1234567890"), 0, 9, S("abcdefghijklmnopqrst123456789"));
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("1234567890"), 0, 10, S("abcdefghijklmnopqrst1234567890"));
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("1234567890"), 0, 11, S("abcdefghijklmnopqrst1234567890"));
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("1234567890"), 1, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("1234567890"), 1, 1, S("abcdefghijklmnopqrst2"));
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("1234567890"), 1, 4, S("abcdefghijklmnopqrst2345"));
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("1234567890"), 1, 8, S("abcdefghijklmnopqrst23456789"));
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("1234567890"), 1, 9, S("abcdefghijklmnopqrst234567890"));
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("1234567890"), 1, 10, S("abcdefghijklmnopqrst234567890"));
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("1234567890"), 5, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("1234567890"), 5, 1, S("abcdefghijklmnopqrst6"));
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("1234567890"), 5, 2, S("abcdefghijklmnopqrst67"));
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("1234567890"), 5, 4, S("abcdefghijklmnopqrst6789"));
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("1234567890"), 5, 5, S("abcdefghijklmnopqrst67890"));
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("1234567890"), 5, 6, S("abcdefghijklmnopqrst67890"));
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("1234567890"), 9, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("1234567890"), 9, 1, S("abcdefghijklmnopqrst0"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test52() {
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345"), 4, 0, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345"), 4, 1, S("abcdefghijklmnopqrs5"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345"), 4, 2, S("abcdefghijklmnopqrs5"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345"), 5, 0, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345"), 5, 1, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("1234567890"), 0, 0, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("1234567890"), 0, 1, S("abcdefghijklmnopqrs1"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("1234567890"), 0, 5, S("abcdefghijklmnopqrs12345"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("1234567890"), 0, 9, S("abcdefghijklmnopqrs123456789"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("1234567890"), 0, 10, S("abcdefghijklmnopqrs1234567890"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("1234567890"), 0, 11, S("abcdefghijklmnopqrs1234567890"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("1234567890"), 1, 0, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("1234567890"), 1, 1, S("abcdefghijklmnopqrs2"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("1234567890"), 1, 4, S("abcdefghijklmnopqrs2345"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("1234567890"), 1, 8, S("abcdefghijklmnopqrs23456789"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("1234567890"), 1, 9, S("abcdefghijklmnopqrs234567890"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("1234567890"), 1, 10, S("abcdefghijklmnopqrs234567890"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("1234567890"), 5, 0, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("1234567890"), 5, 1, S("abcdefghijklmnopqrs6"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("1234567890"), 5, 2, S("abcdefghijklmnopqrs67"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("1234567890"), 5, 4, S("abcdefghijklmnopqrs6789"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("1234567890"), 5, 5, S("abcdefghijklmnopqrs67890"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("1234567890"), 5, 6, S("abcdefghijklmnopqrs67890"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("1234567890"), 9, 0, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("1234567890"), 9, 1, S("abcdefghijklmnopqrs0"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("1234567890"), 9, 2, S("abcdefghijklmnopqrs0"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("1234567890"), 10, 0, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("1234567890"), 10, 1, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345678901234567890"), 0, 0, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345678901234567890"), 0, 1, S("abcdefghijklmnopqrs1"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345678901234567890"), 0, 10, S("abcdefghijklmnopqrs1234567890"));
+ test(
+ S("abcdefghijklmnopqrst"), 19, 2, SV("12345678901234567890"), 0, 19, S("abcdefghijklmnopqrs1234567890123456789"));
+ test(S("abcdefghijklmnopqrst"),
+ 19,
+ 2,
+ SV("12345678901234567890"),
+ 0,
+ 20,
+ S("abcdefghijklmnopqrs12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"),
+ 19,
+ 2,
+ SV("12345678901234567890"),
+ 0,
+ 21,
+ S("abcdefghijklmnopqrs12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345678901234567890"), 1, 0, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345678901234567890"), 1, 1, S("abcdefghijklmnopqrs2"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345678901234567890"), 1, 9, S("abcdefghijklmnopqrs234567890"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345678901234567890"), 1, 18, S("abcdefghijklmnopqrs234567890123456789"));
+ test(
+ S("abcdefghijklmnopqrst"), 19, 2, SV("12345678901234567890"), 1, 19, S("abcdefghijklmnopqrs2345678901234567890"));
+ test(
+ S("abcdefghijklmnopqrst"), 19, 2, SV("12345678901234567890"), 1, 20, S("abcdefghijklmnopqrs2345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345678901234567890"), 10, 0, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345678901234567890"), 10, 1, S("abcdefghijklmnopqrs1"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345678901234567890"), 10, 5, S("abcdefghijklmnopqrs12345"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345678901234567890"), 10, 9, S("abcdefghijklmnopqrs123456789"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345678901234567890"), 10, 10, S("abcdefghijklmnopqrs1234567890"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345678901234567890"), 10, 11, S("abcdefghijklmnopqrs1234567890"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345678901234567890"), 19, 0, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345678901234567890"), 19, 1, S("abcdefghijklmnopqrs0"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345678901234567890"), 19, 2, S("abcdefghijklmnopqrs0"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345678901234567890"), 20, 0, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345678901234567890"), 20, 1, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV(""), 0, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV(""), 0, 1, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV(""), 1, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345"), 0, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345"), 0, 1, S("abcdefghijklmnopqrst1"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345"), 0, 2, S("abcdefghijklmnopqrst12"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345"), 0, 4, S("abcdefghijklmnopqrst1234"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345"), 0, 5, S("abcdefghijklmnopqrst12345"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345"), 0, 6, S("abcdefghijklmnopqrst12345"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345"), 1, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345"), 1, 1, S("abcdefghijklmnopqrst2"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345"), 1, 2, S("abcdefghijklmnopqrst23"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345"), 1, 3, S("abcdefghijklmnopqrst234"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345"), 1, 4, S("abcdefghijklmnopqrst2345"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345"), 1, 5, S("abcdefghijklmnopqrst2345"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345"), 2, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345"), 2, 1, S("abcdefghijklmnopqrst3"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345"), 2, 2, S("abcdefghijklmnopqrst34"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345"), 2, 3, S("abcdefghijklmnopqrst345"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345"), 2, 4, S("abcdefghijklmnopqrst345"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345"), 4, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345"), 4, 1, S("abcdefghijklmnopqrst5"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345"), 4, 2, S("abcdefghijklmnopqrst5"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345"), 5, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345"), 5, 1, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("1234567890"), 0, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("1234567890"), 0, 1, S("abcdefghijklmnopqrst1"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("1234567890"), 0, 5, S("abcdefghijklmnopqrst12345"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("1234567890"), 0, 9, S("abcdefghijklmnopqrst123456789"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("1234567890"), 0, 10, S("abcdefghijklmnopqrst1234567890"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("1234567890"), 0, 11, S("abcdefghijklmnopqrst1234567890"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("1234567890"), 1, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("1234567890"), 1, 1, S("abcdefghijklmnopqrst2"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("1234567890"), 1, 4, S("abcdefghijklmnopqrst2345"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("1234567890"), 1, 8, S("abcdefghijklmnopqrst23456789"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("1234567890"), 1, 9, S("abcdefghijklmnopqrst234567890"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("1234567890"), 1, 10, S("abcdefghijklmnopqrst234567890"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("1234567890"), 5, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("1234567890"), 5, 1, S("abcdefghijklmnopqrst6"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("1234567890"), 5, 2, S("abcdefghijklmnopqrst67"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("1234567890"), 5, 4, S("abcdefghijklmnopqrst6789"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("1234567890"), 5, 5, S("abcdefghijklmnopqrst67890"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("1234567890"), 5, 6, S("abcdefghijklmnopqrst67890"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("1234567890"), 9, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("1234567890"), 9, 1, S("abcdefghijklmnopqrst0"));
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test53()
-{
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("1234567890"), 9, 2, S("abcdefghijklmnopqrst0"));
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("1234567890"), 10, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("1234567890"), 10, 1, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345678901234567890"), 0, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345678901234567890"), 0, 1, S("abcdefghijklmnopqrst1"));
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345678901234567890"), 0, 10, S("abcdefghijklmnopqrst1234567890"));
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345678901234567890"), 0, 19, S("abcdefghijklmnopqrst1234567890123456789"));
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345678901234567890"), 0, 20, S("abcdefghijklmnopqrst12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345678901234567890"), 0, 21, S("abcdefghijklmnopqrst12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345678901234567890"), 1, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345678901234567890"), 1, 1, S("abcdefghijklmnopqrst2"));
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345678901234567890"), 1, 9, S("abcdefghijklmnopqrst234567890"));
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345678901234567890"), 1, 18, S("abcdefghijklmnopqrst234567890123456789"));
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345678901234567890"), 1, 19, S("abcdefghijklmnopqrst2345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345678901234567890"), 1, 20, S("abcdefghijklmnopqrst2345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345678901234567890"), 10, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345678901234567890"), 10, 1, S("abcdefghijklmnopqrst1"));
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345678901234567890"), 10, 5, S("abcdefghijklmnopqrst12345"));
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345678901234567890"), 10, 9, S("abcdefghijklmnopqrst123456789"));
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345678901234567890"), 10, 10, S("abcdefghijklmnopqrst1234567890"));
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345678901234567890"), 10, 11, S("abcdefghijklmnopqrst1234567890"));
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345678901234567890"), 19, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345678901234567890"), 19, 1, S("abcdefghijklmnopqrst0"));
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345678901234567890"), 19, 2, S("abcdefghijklmnopqrst0"));
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345678901234567890"), 20, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345678901234567890"), 20, 1, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 20, 1, SV(""), 0, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 1, SV(""), 0, 1, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 1, SV(""), 1, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345"), 0, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345"), 0, 1, S("abcdefghijklmnopqrst1"));
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345"), 0, 2, S("abcdefghijklmnopqrst12"));
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345"), 0, 4, S("abcdefghijklmnopqrst1234"));
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345"), 0, 5, S("abcdefghijklmnopqrst12345"));
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345"), 0, 6, S("abcdefghijklmnopqrst12345"));
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345"), 1, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345"), 1, 1, S("abcdefghijklmnopqrst2"));
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345"), 1, 2, S("abcdefghijklmnopqrst23"));
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345"), 1, 3, S("abcdefghijklmnopqrst234"));
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345"), 1, 4, S("abcdefghijklmnopqrst2345"));
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345"), 1, 5, S("abcdefghijklmnopqrst2345"));
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345"), 2, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345"), 2, 1, S("abcdefghijklmnopqrst3"));
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345"), 2, 2, S("abcdefghijklmnopqrst34"));
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345"), 2, 3, S("abcdefghijklmnopqrst345"));
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345"), 2, 4, S("abcdefghijklmnopqrst345"));
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345"), 4, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345"), 4, 1, S("abcdefghijklmnopqrst5"));
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345"), 4, 2, S("abcdefghijklmnopqrst5"));
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345"), 5, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345"), 5, 1, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("1234567890"), 0, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("1234567890"), 0, 1, S("abcdefghijklmnopqrst1"));
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("1234567890"), 0, 5, S("abcdefghijklmnopqrst12345"));
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("1234567890"), 0, 9, S("abcdefghijklmnopqrst123456789"));
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("1234567890"), 0, 10, S("abcdefghijklmnopqrst1234567890"));
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("1234567890"), 0, 11, S("abcdefghijklmnopqrst1234567890"));
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("1234567890"), 1, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("1234567890"), 1, 1, S("abcdefghijklmnopqrst2"));
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("1234567890"), 1, 4, S("abcdefghijklmnopqrst2345"));
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("1234567890"), 1, 8, S("abcdefghijklmnopqrst23456789"));
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("1234567890"), 1, 9, S("abcdefghijklmnopqrst234567890"));
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("1234567890"), 1, 10, S("abcdefghijklmnopqrst234567890"));
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("1234567890"), 5, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("1234567890"), 5, 1, S("abcdefghijklmnopqrst6"));
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("1234567890"), 5, 2, S("abcdefghijklmnopqrst67"));
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("1234567890"), 5, 4, S("abcdefghijklmnopqrst6789"));
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("1234567890"), 5, 5, S("abcdefghijklmnopqrst67890"));
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("1234567890"), 5, 6, S("abcdefghijklmnopqrst67890"));
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("1234567890"), 9, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("1234567890"), 9, 1, S("abcdefghijklmnopqrst0"));
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("1234567890"), 9, 2, S("abcdefghijklmnopqrst0"));
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("1234567890"), 10, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("1234567890"), 10, 1, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345678901234567890"), 0, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345678901234567890"), 0, 1, S("abcdefghijklmnopqrst1"));
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345678901234567890"), 0, 10, S("abcdefghijklmnopqrst1234567890"));
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345678901234567890"), 0, 19, S("abcdefghijklmnopqrst1234567890123456789"));
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345678901234567890"), 0, 20, S("abcdefghijklmnopqrst12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345678901234567890"), 0, 21, S("abcdefghijklmnopqrst12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345678901234567890"), 1, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345678901234567890"), 1, 1, S("abcdefghijklmnopqrst2"));
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345678901234567890"), 1, 9, S("abcdefghijklmnopqrst234567890"));
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345678901234567890"), 1, 18, S("abcdefghijklmnopqrst234567890123456789"));
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345678901234567890"), 1, 19, S("abcdefghijklmnopqrst2345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345678901234567890"), 1, 20, S("abcdefghijklmnopqrst2345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345678901234567890"), 10, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345678901234567890"), 10, 1, S("abcdefghijklmnopqrst1"));
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345678901234567890"), 10, 5, S("abcdefghijklmnopqrst12345"));
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345678901234567890"), 10, 9, S("abcdefghijklmnopqrst123456789"));
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345678901234567890"), 10, 10, S("abcdefghijklmnopqrst1234567890"));
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345678901234567890"), 10, 11, S("abcdefghijklmnopqrst1234567890"));
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345678901234567890"), 19, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345678901234567890"), 19, 1, S("abcdefghijklmnopqrst0"));
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345678901234567890"), 19, 2, S("abcdefghijklmnopqrst0"));
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345678901234567890"), 20, 0, S("abcdefghijklmnopqrst"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test53() {
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("1234567890"), 9, 2, S("abcdefghijklmnopqrst0"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("1234567890"), 10, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("1234567890"), 10, 1, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345678901234567890"), 0, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345678901234567890"), 0, 1, S("abcdefghijklmnopqrst1"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345678901234567890"), 0, 10, S("abcdefghijklmnopqrst1234567890"));
+ test(S("abcdefghijklmnopqrst"),
+ 20,
+ 0,
+ SV("12345678901234567890"),
+ 0,
+ 19,
+ S("abcdefghijklmnopqrst1234567890123456789"));
+ test(S("abcdefghijklmnopqrst"),
+ 20,
+ 0,
+ SV("12345678901234567890"),
+ 0,
+ 20,
+ S("abcdefghijklmnopqrst12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"),
+ 20,
+ 0,
+ SV("12345678901234567890"),
+ 0,
+ 21,
+ S("abcdefghijklmnopqrst12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345678901234567890"), 1, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345678901234567890"), 1, 1, S("abcdefghijklmnopqrst2"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345678901234567890"), 1, 9, S("abcdefghijklmnopqrst234567890"));
+ test(
+ S("abcdefghijklmnopqrst"), 20, 0, SV("12345678901234567890"), 1, 18, S("abcdefghijklmnopqrst234567890123456789"));
+ test(S("abcdefghijklmnopqrst"),
+ 20,
+ 0,
+ SV("12345678901234567890"),
+ 1,
+ 19,
+ S("abcdefghijklmnopqrst2345678901234567890"));
+ test(S("abcdefghijklmnopqrst"),
+ 20,
+ 0,
+ SV("12345678901234567890"),
+ 1,
+ 20,
+ S("abcdefghijklmnopqrst2345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345678901234567890"), 10, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345678901234567890"), 10, 1, S("abcdefghijklmnopqrst1"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345678901234567890"), 10, 5, S("abcdefghijklmnopqrst12345"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345678901234567890"), 10, 9, S("abcdefghijklmnopqrst123456789"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345678901234567890"), 10, 10, S("abcdefghijklmnopqrst1234567890"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345678901234567890"), 10, 11, S("abcdefghijklmnopqrst1234567890"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345678901234567890"), 19, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345678901234567890"), 19, 1, S("abcdefghijklmnopqrst0"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345678901234567890"), 19, 2, S("abcdefghijklmnopqrst0"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345678901234567890"), 20, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345678901234567890"), 20, 1, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV(""), 0, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV(""), 0, 1, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV(""), 1, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345"), 0, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345"), 0, 1, S("abcdefghijklmnopqrst1"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345"), 0, 2, S("abcdefghijklmnopqrst12"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345"), 0, 4, S("abcdefghijklmnopqrst1234"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345"), 0, 5, S("abcdefghijklmnopqrst12345"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345"), 0, 6, S("abcdefghijklmnopqrst12345"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345"), 1, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345"), 1, 1, S("abcdefghijklmnopqrst2"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345"), 1, 2, S("abcdefghijklmnopqrst23"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345"), 1, 3, S("abcdefghijklmnopqrst234"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345"), 1, 4, S("abcdefghijklmnopqrst2345"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345"), 1, 5, S("abcdefghijklmnopqrst2345"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345"), 2, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345"), 2, 1, S("abcdefghijklmnopqrst3"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345"), 2, 2, S("abcdefghijklmnopqrst34"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345"), 2, 3, S("abcdefghijklmnopqrst345"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345"), 2, 4, S("abcdefghijklmnopqrst345"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345"), 4, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345"), 4, 1, S("abcdefghijklmnopqrst5"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345"), 4, 2, S("abcdefghijklmnopqrst5"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345"), 5, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345"), 5, 1, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("1234567890"), 0, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("1234567890"), 0, 1, S("abcdefghijklmnopqrst1"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("1234567890"), 0, 5, S("abcdefghijklmnopqrst12345"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("1234567890"), 0, 9, S("abcdefghijklmnopqrst123456789"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("1234567890"), 0, 10, S("abcdefghijklmnopqrst1234567890"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("1234567890"), 0, 11, S("abcdefghijklmnopqrst1234567890"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("1234567890"), 1, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("1234567890"), 1, 1, S("abcdefghijklmnopqrst2"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("1234567890"), 1, 4, S("abcdefghijklmnopqrst2345"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("1234567890"), 1, 8, S("abcdefghijklmnopqrst23456789"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("1234567890"), 1, 9, S("abcdefghijklmnopqrst234567890"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("1234567890"), 1, 10, S("abcdefghijklmnopqrst234567890"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("1234567890"), 5, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("1234567890"), 5, 1, S("abcdefghijklmnopqrst6"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("1234567890"), 5, 2, S("abcdefghijklmnopqrst67"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("1234567890"), 5, 4, S("abcdefghijklmnopqrst6789"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("1234567890"), 5, 5, S("abcdefghijklmnopqrst67890"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("1234567890"), 5, 6, S("abcdefghijklmnopqrst67890"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("1234567890"), 9, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("1234567890"), 9, 1, S("abcdefghijklmnopqrst0"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("1234567890"), 9, 2, S("abcdefghijklmnopqrst0"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("1234567890"), 10, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("1234567890"), 10, 1, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345678901234567890"), 0, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345678901234567890"), 0, 1, S("abcdefghijklmnopqrst1"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345678901234567890"), 0, 10, S("abcdefghijklmnopqrst1234567890"));
+ test(S("abcdefghijklmnopqrst"),
+ 20,
+ 1,
+ SV("12345678901234567890"),
+ 0,
+ 19,
+ S("abcdefghijklmnopqrst1234567890123456789"));
+ test(S("abcdefghijklmnopqrst"),
+ 20,
+ 1,
+ SV("12345678901234567890"),
+ 0,
+ 20,
+ S("abcdefghijklmnopqrst12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"),
+ 20,
+ 1,
+ SV("12345678901234567890"),
+ 0,
+ 21,
+ S("abcdefghijklmnopqrst12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345678901234567890"), 1, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345678901234567890"), 1, 1, S("abcdefghijklmnopqrst2"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345678901234567890"), 1, 9, S("abcdefghijklmnopqrst234567890"));
+ test(
+ S("abcdefghijklmnopqrst"), 20, 1, SV("12345678901234567890"), 1, 18, S("abcdefghijklmnopqrst234567890123456789"));
+ test(S("abcdefghijklmnopqrst"),
+ 20,
+ 1,
+ SV("12345678901234567890"),
+ 1,
+ 19,
+ S("abcdefghijklmnopqrst2345678901234567890"));
+ test(S("abcdefghijklmnopqrst"),
+ 20,
+ 1,
+ SV("12345678901234567890"),
+ 1,
+ 20,
+ S("abcdefghijklmnopqrst2345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345678901234567890"), 10, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345678901234567890"), 10, 1, S("abcdefghijklmnopqrst1"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345678901234567890"), 10, 5, S("abcdefghijklmnopqrst12345"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345678901234567890"), 10, 9, S("abcdefghijklmnopqrst123456789"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345678901234567890"), 10, 10, S("abcdefghijklmnopqrst1234567890"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345678901234567890"), 10, 11, S("abcdefghijklmnopqrst1234567890"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345678901234567890"), 19, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345678901234567890"), 19, 1, S("abcdefghijklmnopqrst0"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345678901234567890"), 19, 2, S("abcdefghijklmnopqrst0"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345678901234567890"), 20, 0, S("abcdefghijklmnopqrst"));
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test54()
-{
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345678901234567890"), 20, 1, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, SV(""), 0, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, SV(""), 0, 1, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, SV(""), 1, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345"), 0, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345"), 0, 1, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345"), 0, 2, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345"), 0, 4, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345"), 0, 5, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345"), 0, 6, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345"), 1, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345"), 1, 1, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345"), 1, 2, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345"), 1, 3, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345"), 1, 4, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345"), 1, 5, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345"), 2, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345"), 2, 1, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345"), 2, 2, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345"), 2, 3, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345"), 2, 4, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345"), 4, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345"), 4, 1, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345"), 4, 2, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345"), 5, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345"), 5, 1, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("1234567890"), 0, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("1234567890"), 0, 1, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("1234567890"), 0, 5, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("1234567890"), 0, 9, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("1234567890"), 0, 10, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("1234567890"), 0, 11, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("1234567890"), 1, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("1234567890"), 1, 1, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("1234567890"), 1, 4, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("1234567890"), 1, 8, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("1234567890"), 1, 9, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("1234567890"), 1, 10, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("1234567890"), 5, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("1234567890"), 5, 1, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("1234567890"), 5, 2, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("1234567890"), 5, 4, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("1234567890"), 5, 5, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("1234567890"), 5, 6, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("1234567890"), 9, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("1234567890"), 9, 1, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("1234567890"), 9, 2, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("1234567890"), 10, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("1234567890"), 10, 1, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345678901234567890"), 0, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345678901234567890"), 0, 1, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345678901234567890"), 0, 10, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345678901234567890"), 0, 19, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345678901234567890"), 0, 20, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345678901234567890"), 0, 21, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345678901234567890"), 1, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345678901234567890"), 1, 1, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345678901234567890"), 1, 9, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345678901234567890"), 1, 18, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345678901234567890"), 1, 19, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345678901234567890"), 1, 20, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345678901234567890"), 10, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345678901234567890"), 10, 1, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345678901234567890"), 10, 5, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345678901234567890"), 10, 9, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345678901234567890"), 10, 10, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345678901234567890"), 10, 11, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345678901234567890"), 19, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345678901234567890"), 19, 1, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345678901234567890"), 19, 2, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345678901234567890"), 20, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345678901234567890"), 20, 1, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345678901234567890"), 21, 0, S("can't happen"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test54() {
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345678901234567890"), 20, 1, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV(""), 0, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV(""), 0, 1, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV(""), 1, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345"), 0, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345"), 0, 1, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345"), 0, 2, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345"), 0, 4, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345"), 0, 5, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345"), 0, 6, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345"), 1, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345"), 1, 1, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345"), 1, 2, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345"), 1, 3, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345"), 1, 4, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345"), 1, 5, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345"), 2, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345"), 2, 1, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345"), 2, 2, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345"), 2, 3, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345"), 2, 4, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345"), 4, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345"), 4, 1, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345"), 4, 2, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345"), 5, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345"), 5, 1, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("1234567890"), 0, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("1234567890"), 0, 1, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("1234567890"), 0, 5, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("1234567890"), 0, 9, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("1234567890"), 0, 10, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("1234567890"), 0, 11, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("1234567890"), 1, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("1234567890"), 1, 1, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("1234567890"), 1, 4, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("1234567890"), 1, 8, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("1234567890"), 1, 9, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("1234567890"), 1, 10, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("1234567890"), 5, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("1234567890"), 5, 1, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("1234567890"), 5, 2, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("1234567890"), 5, 4, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("1234567890"), 5, 5, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("1234567890"), 5, 6, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("1234567890"), 9, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("1234567890"), 9, 1, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("1234567890"), 9, 2, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("1234567890"), 10, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("1234567890"), 10, 1, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345678901234567890"), 0, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345678901234567890"), 0, 1, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345678901234567890"), 0, 10, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345678901234567890"), 0, 19, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345678901234567890"), 0, 20, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345678901234567890"), 0, 21, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345678901234567890"), 1, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345678901234567890"), 1, 1, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345678901234567890"), 1, 9, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345678901234567890"), 1, 18, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345678901234567890"), 1, 19, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345678901234567890"), 1, 20, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345678901234567890"), 10, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345678901234567890"), 10, 1, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345678901234567890"), 10, 5, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345678901234567890"), 10, 9, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345678901234567890"), 10, 10, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345678901234567890"), 10, 11, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345678901234567890"), 19, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345678901234567890"), 19, 1, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345678901234567890"), 19, 2, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345678901234567890"), 20, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345678901234567890"), 20, 1, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345678901234567890"), 21, 0, S("can't happen"));
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test55()
-{
- test_npos(S("abcdefghij"), 9, 1, SV("12345678901234567890"), 10, S("abcdefghi1234567890"));
- test_npos(S("abcdefghij"), 9, 1, SV("12345678901234567890"), 19, S("abcdefghi0"));
- test_npos(S("abcdefghij"), 9, 1, SV("12345678901234567890"), 20, S("abcdefghi"));
- test_npos(S("abcdefghij"), 9, 1, SV("12345678901234567890"), 20, S("abcdefghi"));
- test_npos(S("abcdefghij"), 9, 1, SV("12345678901234567890"), 21, S("can't happen"));
- test_npos(S("abcdefghij"), 9, 2, SV(""), 0, S("abcdefghi"));
- test_npos(S("abcdefghij"), 9, 2, SV(""), 1, S("can't happen"));
- test_npos(S("abcdefghij"), 9, 2, SV("12345"), 0, S("abcdefghi12345"));
- test_npos(S("abcdefghij"), 9, 2, SV("12345"), 1, S("abcdefghi2345"));
- test_npos(S("abcdefghij"), 9, 2, SV("12345"), 2, S("abcdefghi345"));
- test_npos(S("abcdefghij"), 9, 2, SV("12345"), 4, S("abcdefghi5"));
- test_npos(S("abcdefghij"), 9, 2, SV("12345"), 5, S("abcdefghi"));
- test_npos(S("abcdefghij"), 9, 2, SV("12345"), 6, S("can't happen"));
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test55() {
+ test_npos(S("abcdefghij"), 9, 1, SV("12345678901234567890"), 10, S("abcdefghi1234567890"));
+ test_npos(S("abcdefghij"), 9, 1, SV("12345678901234567890"), 19, S("abcdefghi0"));
+ test_npos(S("abcdefghij"), 9, 1, SV("12345678901234567890"), 20, S("abcdefghi"));
+ test_npos(S("abcdefghij"), 9, 1, SV("12345678901234567890"), 20, S("abcdefghi"));
+ test_npos(S("abcdefghij"), 9, 1, SV("12345678901234567890"), 21, S("can't happen"));
+ test_npos(S("abcdefghij"), 9, 2, SV(""), 0, S("abcdefghi"));
+ test_npos(S("abcdefghij"), 9, 2, SV(""), 1, S("can't happen"));
+ test_npos(S("abcdefghij"), 9, 2, SV("12345"), 0, S("abcdefghi12345"));
+ test_npos(S("abcdefghij"), 9, 2, SV("12345"), 1, S("abcdefghi2345"));
+ test_npos(S("abcdefghij"), 9, 2, SV("12345"), 2, S("abcdefghi345"));
+ test_npos(S("abcdefghij"), 9, 2, SV("12345"), 4, S("abcdefghi5"));
+ test_npos(S("abcdefghij"), 9, 2, SV("12345"), 5, S("abcdefghi"));
+ test_npos(S("abcdefghij"), 9, 2, SV("12345"), 6, S("can't happen"));
+
+ return true;
}
TEST_CONSTEXPR_CXX20 bool test56() {
- typedef std::string S;
- typedef std::string_view SV;
- S s0 = "ABCD";
- S s;
- SV sv = "EFGH";
- char arr[] = "IJKL";
-
- s = s0;
- s.replace(0, 4, "CDEF", 0); // calls replace(pos1, n1, const char *, len)
- assert(s == "");
-
- s = s0;
- s.replace(0, 4, "QRST", 0, std::string::npos); // calls replace(pos1, n1, string("QRST"), pos, npos)
- assert(s == "QRST");
-
- s = s0;
- s.replace(0, 4, sv, 0); // calls replace(pos1, n1, T, pos, npos)
- assert(s == sv);
-
- s = s0;
- s.replace(0, 4, sv, 0, std::string::npos); // calls replace(pos1, n1, T, pos, npos)
- assert(s == sv);
-
- s = s0;
- s.replace(0, 4, arr, 0); // calls replace(pos1, n1, const char *, len)
- assert(s == "");
-
- s = s0;
- s.replace(0, 4, arr, 0, std::string::npos); // calls replace(pos1, n1, string("IJKL"), pos, npos)
- assert(s == "IJKL");
-
- return true;
+ typedef std::string S;
+ typedef std::string_view SV;
+ S s0 = "ABCD";
+ S s;
+ SV sv = "EFGH";
+ char arr[] = "IJKL";
+
+ s = s0;
+ s.replace(0, 4, "CDEF", 0); // calls replace(pos1, n1, const char *, len)
+ assert(s == "");
+
+ s = s0;
+ s.replace(0, 4, "QRST", 0, std::string::npos); // calls replace(pos1, n1, string("QRST"), pos, npos)
+ assert(s == "QRST");
+
+ s = s0;
+ s.replace(0, 4, sv, 0); // calls replace(pos1, n1, T, pos, npos)
+ assert(s == sv);
+
+ s = s0;
+ s.replace(0, 4, sv, 0, std::string::npos); // calls replace(pos1, n1, T, pos, npos)
+ assert(s == sv);
+
+ s = s0;
+ s.replace(0, 4, arr, 0); // calls replace(pos1, n1, const char *, len)
+ assert(s == "");
+
+ s = s0;
+ s.replace(0, 4, arr, 0, std::string::npos); // calls replace(pos1, n1, string("IJKL"), pos, npos)
+ assert(s == "IJKL");
+
+ return true;
}
template <class S, class SV>
@@ -6139,8 +6275,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test<std::string, std::string_view>();
#if TEST_STD_VER >= 11
test<std::basic_string<char, std::char_traits<char>, min_allocator<char>>,
diff --git a/libcxx/test/std/strings/basic.string/string.modifiers/string_replace/size_size_pointer.pass.cpp b/libcxx/test/std/strings/basic.string/string.modifiers/string_replace/size_size_pointer.pass.cpp
index 672a984edf10337..a7282615e485541 100644
--- a/libcxx/test/std/strings/basic.string/string.modifiers/string_replace/size_size_pointer.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.modifiers/string_replace/size_size_pointer.pass.cpp
@@ -21,352 +21,342 @@
template <class S>
TEST_CONSTEXPR_CXX20 void
-test(S s, typename S::size_type pos, typename S::size_type n1,
- const typename S::value_type* str, S expected)
-{
- const typename S::size_type old_size = s.size();
- S s0 = s;
- if (pos <= old_size)
- {
- s.replace(pos, n1, str);
- LIBCPP_ASSERT(s.__invariants());
- assert(s == expected);
- typename S::size_type xlen = std::min(n1, old_size - pos);
- typename S::size_type rlen = S::traits_type::length(str);
- assert(s.size() == old_size - xlen + rlen);
- }
+test(S s, typename S::size_type pos, typename S::size_type n1, const typename S::value_type* str, S expected) {
+ const typename S::size_type old_size = s.size();
+ S s0 = s;
+ if (pos <= old_size) {
+ s.replace(pos, n1, str);
+ LIBCPP_ASSERT(s.__invariants());
+ assert(s == expected);
+ typename S::size_type xlen = std::min(n1, old_size - pos);
+ typename S::size_type rlen = S::traits_type::length(str);
+ assert(s.size() == old_size - xlen + rlen);
+ }
#ifndef TEST_HAS_NO_EXCEPTIONS
- else if (!TEST_IS_CONSTANT_EVALUATED)
- {
- try
- {
- s.replace(pos, n1, str);
- assert(false);
- }
- catch (std::out_of_range&)
- {
- assert(pos > old_size);
- assert(s == s0);
- }
+ else if (!TEST_IS_CONSTANT_EVALUATED) {
+ try {
+ s.replace(pos, n1, str);
+ assert(false);
+ } catch (std::out_of_range&) {
+ assert(pos > old_size);
+ assert(s == s0);
}
+ }
#endif
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test0()
-{
- test(S(""), 0, 0, "", S(""));
- test(S(""), 0, 0, "12345", S("12345"));
- test(S(""), 0, 0, "1234567890", S("1234567890"));
- test(S(""), 0, 0, "12345678901234567890", S("12345678901234567890"));
- test(S(""), 0, 1, "", S(""));
- test(S(""), 0, 1, "12345", S("12345"));
- test(S(""), 0, 1, "1234567890", S("1234567890"));
- test(S(""), 0, 1, "12345678901234567890", S("12345678901234567890"));
- test(S(""), 1, 0, "", S("can't happen"));
- test(S(""), 1, 0, "12345", S("can't happen"));
- test(S(""), 1, 0, "1234567890", S("can't happen"));
- test(S(""), 1, 0, "12345678901234567890", S("can't happen"));
- test(S("abcde"), 0, 0, "", S("abcde"));
- test(S("abcde"), 0, 0, "12345", S("12345abcde"));
- test(S("abcde"), 0, 0, "1234567890", S("1234567890abcde"));
- test(S("abcde"), 0, 0, "12345678901234567890", S("12345678901234567890abcde"));
- test(S("abcde"), 0, 1, "", S("bcde"));
- test(S("abcde"), 0, 1, "12345", S("12345bcde"));
- test(S("abcde"), 0, 1, "1234567890", S("1234567890bcde"));
- test(S("abcde"), 0, 1, "12345678901234567890", S("12345678901234567890bcde"));
- test(S("abcde"), 0, 2, "", S("cde"));
- test(S("abcde"), 0, 2, "12345", S("12345cde"));
- test(S("abcde"), 0, 2, "1234567890", S("1234567890cde"));
- test(S("abcde"), 0, 2, "12345678901234567890", S("12345678901234567890cde"));
- test(S("abcde"), 0, 4, "", S("e"));
- test(S("abcde"), 0, 4, "12345", S("12345e"));
- test(S("abcde"), 0, 4, "1234567890", S("1234567890e"));
- test(S("abcde"), 0, 4, "12345678901234567890", S("12345678901234567890e"));
- test(S("abcde"), 0, 5, "", S(""));
- test(S("abcde"), 0, 5, "12345", S("12345"));
- test(S("abcde"), 0, 5, "1234567890", S("1234567890"));
- test(S("abcde"), 0, 5, "12345678901234567890", S("12345678901234567890"));
- test(S("abcde"), 0, 6, "", S(""));
- test(S("abcde"), 0, 6, "12345", S("12345"));
- test(S("abcde"), 0, 6, "1234567890", S("1234567890"));
- test(S("abcde"), 0, 6, "12345678901234567890", S("12345678901234567890"));
- test(S("abcde"), 1, 0, "", S("abcde"));
- test(S("abcde"), 1, 0, "12345", S("a12345bcde"));
- test(S("abcde"), 1, 0, "1234567890", S("a1234567890bcde"));
- test(S("abcde"), 1, 0, "12345678901234567890", S("a12345678901234567890bcde"));
- test(S("abcde"), 1, 1, "", S("acde"));
- test(S("abcde"), 1, 1, "12345", S("a12345cde"));
- test(S("abcde"), 1, 1, "1234567890", S("a1234567890cde"));
- test(S("abcde"), 1, 1, "12345678901234567890", S("a12345678901234567890cde"));
- test(S("abcde"), 1, 2, "", S("ade"));
- test(S("abcde"), 1, 2, "12345", S("a12345de"));
- test(S("abcde"), 1, 2, "1234567890", S("a1234567890de"));
- test(S("abcde"), 1, 2, "12345678901234567890", S("a12345678901234567890de"));
- test(S("abcde"), 1, 3, "", S("ae"));
- test(S("abcde"), 1, 3, "12345", S("a12345e"));
- test(S("abcde"), 1, 3, "1234567890", S("a1234567890e"));
- test(S("abcde"), 1, 3, "12345678901234567890", S("a12345678901234567890e"));
- test(S("abcde"), 1, 4, "", S("a"));
- test(S("abcde"), 1, 4, "12345", S("a12345"));
- test(S("abcde"), 1, 4, "1234567890", S("a1234567890"));
- test(S("abcde"), 1, 4, "12345678901234567890", S("a12345678901234567890"));
- test(S("abcde"), 1, 5, "", S("a"));
- test(S("abcde"), 1, 5, "12345", S("a12345"));
- test(S("abcde"), 1, 5, "1234567890", S("a1234567890"));
- test(S("abcde"), 1, 5, "12345678901234567890", S("a12345678901234567890"));
- test(S("abcde"), 2, 0, "", S("abcde"));
- test(S("abcde"), 2, 0, "12345", S("ab12345cde"));
- test(S("abcde"), 2, 0, "1234567890", S("ab1234567890cde"));
- test(S("abcde"), 2, 0, "12345678901234567890", S("ab12345678901234567890cde"));
- test(S("abcde"), 2, 1, "", S("abde"));
- test(S("abcde"), 2, 1, "12345", S("ab12345de"));
- test(S("abcde"), 2, 1, "1234567890", S("ab1234567890de"));
- test(S("abcde"), 2, 1, "12345678901234567890", S("ab12345678901234567890de"));
- test(S("abcde"), 2, 2, "", S("abe"));
- test(S("abcde"), 2, 2, "12345", S("ab12345e"));
- test(S("abcde"), 2, 2, "1234567890", S("ab1234567890e"));
- test(S("abcde"), 2, 2, "12345678901234567890", S("ab12345678901234567890e"));
- test(S("abcde"), 2, 3, "", S("ab"));
- test(S("abcde"), 2, 3, "12345", S("ab12345"));
- test(S("abcde"), 2, 3, "1234567890", S("ab1234567890"));
- test(S("abcde"), 2, 3, "12345678901234567890", S("ab12345678901234567890"));
- test(S("abcde"), 2, 4, "", S("ab"));
- test(S("abcde"), 2, 4, "12345", S("ab12345"));
- test(S("abcde"), 2, 4, "1234567890", S("ab1234567890"));
- test(S("abcde"), 2, 4, "12345678901234567890", S("ab12345678901234567890"));
- test(S("abcde"), 4, 0, "", S("abcde"));
- test(S("abcde"), 4, 0, "12345", S("abcd12345e"));
- test(S("abcde"), 4, 0, "1234567890", S("abcd1234567890e"));
- test(S("abcde"), 4, 0, "12345678901234567890", S("abcd12345678901234567890e"));
- test(S("abcde"), 4, 1, "", S("abcd"));
- test(S("abcde"), 4, 1, "12345", S("abcd12345"));
- test(S("abcde"), 4, 1, "1234567890", S("abcd1234567890"));
- test(S("abcde"), 4, 1, "12345678901234567890", S("abcd12345678901234567890"));
- test(S("abcde"), 4, 2, "", S("abcd"));
- test(S("abcde"), 4, 2, "12345", S("abcd12345"));
- test(S("abcde"), 4, 2, "1234567890", S("abcd1234567890"));
- test(S("abcde"), 4, 2, "12345678901234567890", S("abcd12345678901234567890"));
- test(S("abcde"), 5, 0, "", S("abcde"));
- test(S("abcde"), 5, 0, "12345", S("abcde12345"));
- test(S("abcde"), 5, 0, "1234567890", S("abcde1234567890"));
- test(S("abcde"), 5, 0, "12345678901234567890", S("abcde12345678901234567890"));
- test(S("abcde"), 5, 1, "", S("abcde"));
- test(S("abcde"), 5, 1, "12345", S("abcde12345"));
- test(S("abcde"), 5, 1, "1234567890", S("abcde1234567890"));
- test(S("abcde"), 5, 1, "12345678901234567890", S("abcde12345678901234567890"));
+TEST_CONSTEXPR_CXX20 bool test0() {
+ test(S(""), 0, 0, "", S(""));
+ test(S(""), 0, 0, "12345", S("12345"));
+ test(S(""), 0, 0, "1234567890", S("1234567890"));
+ test(S(""), 0, 0, "12345678901234567890", S("12345678901234567890"));
+ test(S(""), 0, 1, "", S(""));
+ test(S(""), 0, 1, "12345", S("12345"));
+ test(S(""), 0, 1, "1234567890", S("1234567890"));
+ test(S(""), 0, 1, "12345678901234567890", S("12345678901234567890"));
+ test(S(""), 1, 0, "", S("can't happen"));
+ test(S(""), 1, 0, "12345", S("can't happen"));
+ test(S(""), 1, 0, "1234567890", S("can't happen"));
+ test(S(""), 1, 0, "12345678901234567890", S("can't happen"));
+ test(S("abcde"), 0, 0, "", S("abcde"));
+ test(S("abcde"), 0, 0, "12345", S("12345abcde"));
+ test(S("abcde"), 0, 0, "1234567890", S("1234567890abcde"));
+ test(S("abcde"), 0, 0, "12345678901234567890", S("12345678901234567890abcde"));
+ test(S("abcde"), 0, 1, "", S("bcde"));
+ test(S("abcde"), 0, 1, "12345", S("12345bcde"));
+ test(S("abcde"), 0, 1, "1234567890", S("1234567890bcde"));
+ test(S("abcde"), 0, 1, "12345678901234567890", S("12345678901234567890bcde"));
+ test(S("abcde"), 0, 2, "", S("cde"));
+ test(S("abcde"), 0, 2, "12345", S("12345cde"));
+ test(S("abcde"), 0, 2, "1234567890", S("1234567890cde"));
+ test(S("abcde"), 0, 2, "12345678901234567890", S("12345678901234567890cde"));
+ test(S("abcde"), 0, 4, "", S("e"));
+ test(S("abcde"), 0, 4, "12345", S("12345e"));
+ test(S("abcde"), 0, 4, "1234567890", S("1234567890e"));
+ test(S("abcde"), 0, 4, "12345678901234567890", S("12345678901234567890e"));
+ test(S("abcde"), 0, 5, "", S(""));
+ test(S("abcde"), 0, 5, "12345", S("12345"));
+ test(S("abcde"), 0, 5, "1234567890", S("1234567890"));
+ test(S("abcde"), 0, 5, "12345678901234567890", S("12345678901234567890"));
+ test(S("abcde"), 0, 6, "", S(""));
+ test(S("abcde"), 0, 6, "12345", S("12345"));
+ test(S("abcde"), 0, 6, "1234567890", S("1234567890"));
+ test(S("abcde"), 0, 6, "12345678901234567890", S("12345678901234567890"));
+ test(S("abcde"), 1, 0, "", S("abcde"));
+ test(S("abcde"), 1, 0, "12345", S("a12345bcde"));
+ test(S("abcde"), 1, 0, "1234567890", S("a1234567890bcde"));
+ test(S("abcde"), 1, 0, "12345678901234567890", S("a12345678901234567890bcde"));
+ test(S("abcde"), 1, 1, "", S("acde"));
+ test(S("abcde"), 1, 1, "12345", S("a12345cde"));
+ test(S("abcde"), 1, 1, "1234567890", S("a1234567890cde"));
+ test(S("abcde"), 1, 1, "12345678901234567890", S("a12345678901234567890cde"));
+ test(S("abcde"), 1, 2, "", S("ade"));
+ test(S("abcde"), 1, 2, "12345", S("a12345de"));
+ test(S("abcde"), 1, 2, "1234567890", S("a1234567890de"));
+ test(S("abcde"), 1, 2, "12345678901234567890", S("a12345678901234567890de"));
+ test(S("abcde"), 1, 3, "", S("ae"));
+ test(S("abcde"), 1, 3, "12345", S("a12345e"));
+ test(S("abcde"), 1, 3, "1234567890", S("a1234567890e"));
+ test(S("abcde"), 1, 3, "12345678901234567890", S("a12345678901234567890e"));
+ test(S("abcde"), 1, 4, "", S("a"));
+ test(S("abcde"), 1, 4, "12345", S("a12345"));
+ test(S("abcde"), 1, 4, "1234567890", S("a1234567890"));
+ test(S("abcde"), 1, 4, "12345678901234567890", S("a12345678901234567890"));
+ test(S("abcde"), 1, 5, "", S("a"));
+ test(S("abcde"), 1, 5, "12345", S("a12345"));
+ test(S("abcde"), 1, 5, "1234567890", S("a1234567890"));
+ test(S("abcde"), 1, 5, "12345678901234567890", S("a12345678901234567890"));
+ test(S("abcde"), 2, 0, "", S("abcde"));
+ test(S("abcde"), 2, 0, "12345", S("ab12345cde"));
+ test(S("abcde"), 2, 0, "1234567890", S("ab1234567890cde"));
+ test(S("abcde"), 2, 0, "12345678901234567890", S("ab12345678901234567890cde"));
+ test(S("abcde"), 2, 1, "", S("abde"));
+ test(S("abcde"), 2, 1, "12345", S("ab12345de"));
+ test(S("abcde"), 2, 1, "1234567890", S("ab1234567890de"));
+ test(S("abcde"), 2, 1, "12345678901234567890", S("ab12345678901234567890de"));
+ test(S("abcde"), 2, 2, "", S("abe"));
+ test(S("abcde"), 2, 2, "12345", S("ab12345e"));
+ test(S("abcde"), 2, 2, "1234567890", S("ab1234567890e"));
+ test(S("abcde"), 2, 2, "12345678901234567890", S("ab12345678901234567890e"));
+ test(S("abcde"), 2, 3, "", S("ab"));
+ test(S("abcde"), 2, 3, "12345", S("ab12345"));
+ test(S("abcde"), 2, 3, "1234567890", S("ab1234567890"));
+ test(S("abcde"), 2, 3, "12345678901234567890", S("ab12345678901234567890"));
+ test(S("abcde"), 2, 4, "", S("ab"));
+ test(S("abcde"), 2, 4, "12345", S("ab12345"));
+ test(S("abcde"), 2, 4, "1234567890", S("ab1234567890"));
+ test(S("abcde"), 2, 4, "12345678901234567890", S("ab12345678901234567890"));
+ test(S("abcde"), 4, 0, "", S("abcde"));
+ test(S("abcde"), 4, 0, "12345", S("abcd12345e"));
+ test(S("abcde"), 4, 0, "1234567890", S("abcd1234567890e"));
+ test(S("abcde"), 4, 0, "12345678901234567890", S("abcd12345678901234567890e"));
+ test(S("abcde"), 4, 1, "", S("abcd"));
+ test(S("abcde"), 4, 1, "12345", S("abcd12345"));
+ test(S("abcde"), 4, 1, "1234567890", S("abcd1234567890"));
+ test(S("abcde"), 4, 1, "12345678901234567890", S("abcd12345678901234567890"));
+ test(S("abcde"), 4, 2, "", S("abcd"));
+ test(S("abcde"), 4, 2, "12345", S("abcd12345"));
+ test(S("abcde"), 4, 2, "1234567890", S("abcd1234567890"));
+ test(S("abcde"), 4, 2, "12345678901234567890", S("abcd12345678901234567890"));
+ test(S("abcde"), 5, 0, "", S("abcde"));
+ test(S("abcde"), 5, 0, "12345", S("abcde12345"));
+ test(S("abcde"), 5, 0, "1234567890", S("abcde1234567890"));
+ test(S("abcde"), 5, 0, "12345678901234567890", S("abcde12345678901234567890"));
+ test(S("abcde"), 5, 1, "", S("abcde"));
+ test(S("abcde"), 5, 1, "12345", S("abcde12345"));
+ test(S("abcde"), 5, 1, "1234567890", S("abcde1234567890"));
+ test(S("abcde"), 5, 1, "12345678901234567890", S("abcde12345678901234567890"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test1()
-{
- test(S("abcde"), 6, 0, "", S("can't happen"));
- test(S("abcde"), 6, 0, "12345", S("can't happen"));
- test(S("abcde"), 6, 0, "1234567890", S("can't happen"));
- test(S("abcde"), 6, 0, "12345678901234567890", S("can't happen"));
- test(S("abcdefghij"), 0, 0, "", S("abcdefghij"));
- test(S("abcdefghij"), 0, 0, "12345", S("12345abcdefghij"));
- test(S("abcdefghij"), 0, 0, "1234567890", S("1234567890abcdefghij"));
- test(S("abcdefghij"), 0, 0, "12345678901234567890", S("12345678901234567890abcdefghij"));
- test(S("abcdefghij"), 0, 1, "", S("bcdefghij"));
- test(S("abcdefghij"), 0, 1, "12345", S("12345bcdefghij"));
- test(S("abcdefghij"), 0, 1, "1234567890", S("1234567890bcdefghij"));
- test(S("abcdefghij"), 0, 1, "12345678901234567890", S("12345678901234567890bcdefghij"));
- test(S("abcdefghij"), 0, 5, "", S("fghij"));
- test(S("abcdefghij"), 0, 5, "12345", S("12345fghij"));
- test(S("abcdefghij"), 0, 5, "1234567890", S("1234567890fghij"));
- test(S("abcdefghij"), 0, 5, "12345678901234567890", S("12345678901234567890fghij"));
- test(S("abcdefghij"), 0, 9, "", S("j"));
- test(S("abcdefghij"), 0, 9, "12345", S("12345j"));
- test(S("abcdefghij"), 0, 9, "1234567890", S("1234567890j"));
- test(S("abcdefghij"), 0, 9, "12345678901234567890", S("12345678901234567890j"));
- test(S("abcdefghij"), 0, 10, "", S(""));
- test(S("abcdefghij"), 0, 10, "12345", S("12345"));
- test(S("abcdefghij"), 0, 10, "1234567890", S("1234567890"));
- test(S("abcdefghij"), 0, 10, "12345678901234567890", S("12345678901234567890"));
- test(S("abcdefghij"), 0, 11, "", S(""));
- test(S("abcdefghij"), 0, 11, "12345", S("12345"));
- test(S("abcdefghij"), 0, 11, "1234567890", S("1234567890"));
- test(S("abcdefghij"), 0, 11, "12345678901234567890", S("12345678901234567890"));
- test(S("abcdefghij"), 1, 0, "", S("abcdefghij"));
- test(S("abcdefghij"), 1, 0, "12345", S("a12345bcdefghij"));
- test(S("abcdefghij"), 1, 0, "1234567890", S("a1234567890bcdefghij"));
- test(S("abcdefghij"), 1, 0, "12345678901234567890", S("a12345678901234567890bcdefghij"));
- test(S("abcdefghij"), 1, 1, "", S("acdefghij"));
- test(S("abcdefghij"), 1, 1, "12345", S("a12345cdefghij"));
- test(S("abcdefghij"), 1, 1, "1234567890", S("a1234567890cdefghij"));
- test(S("abcdefghij"), 1, 1, "12345678901234567890", S("a12345678901234567890cdefghij"));
- test(S("abcdefghij"), 1, 4, "", S("afghij"));
- test(S("abcdefghij"), 1, 4, "12345", S("a12345fghij"));
- test(S("abcdefghij"), 1, 4, "1234567890", S("a1234567890fghij"));
- test(S("abcdefghij"), 1, 4, "12345678901234567890", S("a12345678901234567890fghij"));
- test(S("abcdefghij"), 1, 8, "", S("aj"));
- test(S("abcdefghij"), 1, 8, "12345", S("a12345j"));
- test(S("abcdefghij"), 1, 8, "1234567890", S("a1234567890j"));
- test(S("abcdefghij"), 1, 8, "12345678901234567890", S("a12345678901234567890j"));
- test(S("abcdefghij"), 1, 9, "", S("a"));
- test(S("abcdefghij"), 1, 9, "12345", S("a12345"));
- test(S("abcdefghij"), 1, 9, "1234567890", S("a1234567890"));
- test(S("abcdefghij"), 1, 9, "12345678901234567890", S("a12345678901234567890"));
- test(S("abcdefghij"), 1, 10, "", S("a"));
- test(S("abcdefghij"), 1, 10, "12345", S("a12345"));
- test(S("abcdefghij"), 1, 10, "1234567890", S("a1234567890"));
- test(S("abcdefghij"), 1, 10, "12345678901234567890", S("a12345678901234567890"));
- test(S("abcdefghij"), 5, 0, "", S("abcdefghij"));
- test(S("abcdefghij"), 5, 0, "12345", S("abcde12345fghij"));
- test(S("abcdefghij"), 5, 0, "1234567890", S("abcde1234567890fghij"));
- test(S("abcdefghij"), 5, 0, "12345678901234567890", S("abcde12345678901234567890fghij"));
- test(S("abcdefghij"), 5, 1, "", S("abcdeghij"));
- test(S("abcdefghij"), 5, 1, "12345", S("abcde12345ghij"));
- test(S("abcdefghij"), 5, 1, "1234567890", S("abcde1234567890ghij"));
- test(S("abcdefghij"), 5, 1, "12345678901234567890", S("abcde12345678901234567890ghij"));
- test(S("abcdefghij"), 5, 2, "", S("abcdehij"));
- test(S("abcdefghij"), 5, 2, "12345", S("abcde12345hij"));
- test(S("abcdefghij"), 5, 2, "1234567890", S("abcde1234567890hij"));
- test(S("abcdefghij"), 5, 2, "12345678901234567890", S("abcde12345678901234567890hij"));
- test(S("abcdefghij"), 5, 4, "", S("abcdej"));
- test(S("abcdefghij"), 5, 4, "12345", S("abcde12345j"));
- test(S("abcdefghij"), 5, 4, "1234567890", S("abcde1234567890j"));
- test(S("abcdefghij"), 5, 4, "12345678901234567890", S("abcde12345678901234567890j"));
- test(S("abcdefghij"), 5, 5, "", S("abcde"));
- test(S("abcdefghij"), 5, 5, "12345", S("abcde12345"));
- test(S("abcdefghij"), 5, 5, "1234567890", S("abcde1234567890"));
- test(S("abcdefghij"), 5, 5, "12345678901234567890", S("abcde12345678901234567890"));
- test(S("abcdefghij"), 5, 6, "", S("abcde"));
- test(S("abcdefghij"), 5, 6, "12345", S("abcde12345"));
- test(S("abcdefghij"), 5, 6, "1234567890", S("abcde1234567890"));
- test(S("abcdefghij"), 5, 6, "12345678901234567890", S("abcde12345678901234567890"));
- test(S("abcdefghij"), 9, 0, "", S("abcdefghij"));
- test(S("abcdefghij"), 9, 0, "12345", S("abcdefghi12345j"));
- test(S("abcdefghij"), 9, 0, "1234567890", S("abcdefghi1234567890j"));
- test(S("abcdefghij"), 9, 0, "12345678901234567890", S("abcdefghi12345678901234567890j"));
- test(S("abcdefghij"), 9, 1, "", S("abcdefghi"));
- test(S("abcdefghij"), 9, 1, "12345", S("abcdefghi12345"));
- test(S("abcdefghij"), 9, 1, "1234567890", S("abcdefghi1234567890"));
- test(S("abcdefghij"), 9, 1, "12345678901234567890", S("abcdefghi12345678901234567890"));
- test(S("abcdefghij"), 9, 2, "", S("abcdefghi"));
- test(S("abcdefghij"), 9, 2, "12345", S("abcdefghi12345"));
- test(S("abcdefghij"), 9, 2, "1234567890", S("abcdefghi1234567890"));
- test(S("abcdefghij"), 9, 2, "12345678901234567890", S("abcdefghi12345678901234567890"));
- test(S("abcdefghij"), 10, 0, "", S("abcdefghij"));
- test(S("abcdefghij"), 10, 0, "12345", S("abcdefghij12345"));
- test(S("abcdefghij"), 10, 0, "1234567890", S("abcdefghij1234567890"));
- test(S("abcdefghij"), 10, 0, "12345678901234567890", S("abcdefghij12345678901234567890"));
- test(S("abcdefghij"), 10, 1, "", S("abcdefghij"));
- test(S("abcdefghij"), 10, 1, "12345", S("abcdefghij12345"));
- test(S("abcdefghij"), 10, 1, "1234567890", S("abcdefghij1234567890"));
- test(S("abcdefghij"), 10, 1, "12345678901234567890", S("abcdefghij12345678901234567890"));
- test(S("abcdefghij"), 11, 0, "", S("can't happen"));
- test(S("abcdefghij"), 11, 0, "12345", S("can't happen"));
- test(S("abcdefghij"), 11, 0, "1234567890", S("can't happen"));
- test(S("abcdefghij"), 11, 0, "12345678901234567890", S("can't happen"));
+TEST_CONSTEXPR_CXX20 bool test1() {
+ test(S("abcde"), 6, 0, "", S("can't happen"));
+ test(S("abcde"), 6, 0, "12345", S("can't happen"));
+ test(S("abcde"), 6, 0, "1234567890", S("can't happen"));
+ test(S("abcde"), 6, 0, "12345678901234567890", S("can't happen"));
+ test(S("abcdefghij"), 0, 0, "", S("abcdefghij"));
+ test(S("abcdefghij"), 0, 0, "12345", S("12345abcdefghij"));
+ test(S("abcdefghij"), 0, 0, "1234567890", S("1234567890abcdefghij"));
+ test(S("abcdefghij"), 0, 0, "12345678901234567890", S("12345678901234567890abcdefghij"));
+ test(S("abcdefghij"), 0, 1, "", S("bcdefghij"));
+ test(S("abcdefghij"), 0, 1, "12345", S("12345bcdefghij"));
+ test(S("abcdefghij"), 0, 1, "1234567890", S("1234567890bcdefghij"));
+ test(S("abcdefghij"), 0, 1, "12345678901234567890", S("12345678901234567890bcdefghij"));
+ test(S("abcdefghij"), 0, 5, "", S("fghij"));
+ test(S("abcdefghij"), 0, 5, "12345", S("12345fghij"));
+ test(S("abcdefghij"), 0, 5, "1234567890", S("1234567890fghij"));
+ test(S("abcdefghij"), 0, 5, "12345678901234567890", S("12345678901234567890fghij"));
+ test(S("abcdefghij"), 0, 9, "", S("j"));
+ test(S("abcdefghij"), 0, 9, "12345", S("12345j"));
+ test(S("abcdefghij"), 0, 9, "1234567890", S("1234567890j"));
+ test(S("abcdefghij"), 0, 9, "12345678901234567890", S("12345678901234567890j"));
+ test(S("abcdefghij"), 0, 10, "", S(""));
+ test(S("abcdefghij"), 0, 10, "12345", S("12345"));
+ test(S("abcdefghij"), 0, 10, "1234567890", S("1234567890"));
+ test(S("abcdefghij"), 0, 10, "12345678901234567890", S("12345678901234567890"));
+ test(S("abcdefghij"), 0, 11, "", S(""));
+ test(S("abcdefghij"), 0, 11, "12345", S("12345"));
+ test(S("abcdefghij"), 0, 11, "1234567890", S("1234567890"));
+ test(S("abcdefghij"), 0, 11, "12345678901234567890", S("12345678901234567890"));
+ test(S("abcdefghij"), 1, 0, "", S("abcdefghij"));
+ test(S("abcdefghij"), 1, 0, "12345", S("a12345bcdefghij"));
+ test(S("abcdefghij"), 1, 0, "1234567890", S("a1234567890bcdefghij"));
+ test(S("abcdefghij"), 1, 0, "12345678901234567890", S("a12345678901234567890bcdefghij"));
+ test(S("abcdefghij"), 1, 1, "", S("acdefghij"));
+ test(S("abcdefghij"), 1, 1, "12345", S("a12345cdefghij"));
+ test(S("abcdefghij"), 1, 1, "1234567890", S("a1234567890cdefghij"));
+ test(S("abcdefghij"), 1, 1, "12345678901234567890", S("a12345678901234567890cdefghij"));
+ test(S("abcdefghij"), 1, 4, "", S("afghij"));
+ test(S("abcdefghij"), 1, 4, "12345", S("a12345fghij"));
+ test(S("abcdefghij"), 1, 4, "1234567890", S("a1234567890fghij"));
+ test(S("abcdefghij"), 1, 4, "12345678901234567890", S("a12345678901234567890fghij"));
+ test(S("abcdefghij"), 1, 8, "", S("aj"));
+ test(S("abcdefghij"), 1, 8, "12345", S("a12345j"));
+ test(S("abcdefghij"), 1, 8, "1234567890", S("a1234567890j"));
+ test(S("abcdefghij"), 1, 8, "12345678901234567890", S("a12345678901234567890j"));
+ test(S("abcdefghij"), 1, 9, "", S("a"));
+ test(S("abcdefghij"), 1, 9, "12345", S("a12345"));
+ test(S("abcdefghij"), 1, 9, "1234567890", S("a1234567890"));
+ test(S("abcdefghij"), 1, 9, "12345678901234567890", S("a12345678901234567890"));
+ test(S("abcdefghij"), 1, 10, "", S("a"));
+ test(S("abcdefghij"), 1, 10, "12345", S("a12345"));
+ test(S("abcdefghij"), 1, 10, "1234567890", S("a1234567890"));
+ test(S("abcdefghij"), 1, 10, "12345678901234567890", S("a12345678901234567890"));
+ test(S("abcdefghij"), 5, 0, "", S("abcdefghij"));
+ test(S("abcdefghij"), 5, 0, "12345", S("abcde12345fghij"));
+ test(S("abcdefghij"), 5, 0, "1234567890", S("abcde1234567890fghij"));
+ test(S("abcdefghij"), 5, 0, "12345678901234567890", S("abcde12345678901234567890fghij"));
+ test(S("abcdefghij"), 5, 1, "", S("abcdeghij"));
+ test(S("abcdefghij"), 5, 1, "12345", S("abcde12345ghij"));
+ test(S("abcdefghij"), 5, 1, "1234567890", S("abcde1234567890ghij"));
+ test(S("abcdefghij"), 5, 1, "12345678901234567890", S("abcde12345678901234567890ghij"));
+ test(S("abcdefghij"), 5, 2, "", S("abcdehij"));
+ test(S("abcdefghij"), 5, 2, "12345", S("abcde12345hij"));
+ test(S("abcdefghij"), 5, 2, "1234567890", S("abcde1234567890hij"));
+ test(S("abcdefghij"), 5, 2, "12345678901234567890", S("abcde12345678901234567890hij"));
+ test(S("abcdefghij"), 5, 4, "", S("abcdej"));
+ test(S("abcdefghij"), 5, 4, "12345", S("abcde12345j"));
+ test(S("abcdefghij"), 5, 4, "1234567890", S("abcde1234567890j"));
+ test(S("abcdefghij"), 5, 4, "12345678901234567890", S("abcde12345678901234567890j"));
+ test(S("abcdefghij"), 5, 5, "", S("abcde"));
+ test(S("abcdefghij"), 5, 5, "12345", S("abcde12345"));
+ test(S("abcdefghij"), 5, 5, "1234567890", S("abcde1234567890"));
+ test(S("abcdefghij"), 5, 5, "12345678901234567890", S("abcde12345678901234567890"));
+ test(S("abcdefghij"), 5, 6, "", S("abcde"));
+ test(S("abcdefghij"), 5, 6, "12345", S("abcde12345"));
+ test(S("abcdefghij"), 5, 6, "1234567890", S("abcde1234567890"));
+ test(S("abcdefghij"), 5, 6, "12345678901234567890", S("abcde12345678901234567890"));
+ test(S("abcdefghij"), 9, 0, "", S("abcdefghij"));
+ test(S("abcdefghij"), 9, 0, "12345", S("abcdefghi12345j"));
+ test(S("abcdefghij"), 9, 0, "1234567890", S("abcdefghi1234567890j"));
+ test(S("abcdefghij"), 9, 0, "12345678901234567890", S("abcdefghi12345678901234567890j"));
+ test(S("abcdefghij"), 9, 1, "", S("abcdefghi"));
+ test(S("abcdefghij"), 9, 1, "12345", S("abcdefghi12345"));
+ test(S("abcdefghij"), 9, 1, "1234567890", S("abcdefghi1234567890"));
+ test(S("abcdefghij"), 9, 1, "12345678901234567890", S("abcdefghi12345678901234567890"));
+ test(S("abcdefghij"), 9, 2, "", S("abcdefghi"));
+ test(S("abcdefghij"), 9, 2, "12345", S("abcdefghi12345"));
+ test(S("abcdefghij"), 9, 2, "1234567890", S("abcdefghi1234567890"));
+ test(S("abcdefghij"), 9, 2, "12345678901234567890", S("abcdefghi12345678901234567890"));
+ test(S("abcdefghij"), 10, 0, "", S("abcdefghij"));
+ test(S("abcdefghij"), 10, 0, "12345", S("abcdefghij12345"));
+ test(S("abcdefghij"), 10, 0, "1234567890", S("abcdefghij1234567890"));
+ test(S("abcdefghij"), 10, 0, "12345678901234567890", S("abcdefghij12345678901234567890"));
+ test(S("abcdefghij"), 10, 1, "", S("abcdefghij"));
+ test(S("abcdefghij"), 10, 1, "12345", S("abcdefghij12345"));
+ test(S("abcdefghij"), 10, 1, "1234567890", S("abcdefghij1234567890"));
+ test(S("abcdefghij"), 10, 1, "12345678901234567890", S("abcdefghij12345678901234567890"));
+ test(S("abcdefghij"), 11, 0, "", S("can't happen"));
+ test(S("abcdefghij"), 11, 0, "12345", S("can't happen"));
+ test(S("abcdefghij"), 11, 0, "1234567890", S("can't happen"));
+ test(S("abcdefghij"), 11, 0, "12345678901234567890", S("can't happen"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test2()
-{
- test(S("abcdefghijklmnopqrst"), 0, 0, "", S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, "12345", S("12345abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, "1234567890", S("1234567890abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, "12345678901234567890", S("12345678901234567890abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, "", S("bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, "12345", S("12345bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, "1234567890", S("1234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, "12345678901234567890", S("12345678901234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, "", S("klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, "12345", S("12345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, "1234567890", S("1234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, "12345678901234567890", S("12345678901234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 19, "", S("t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, "12345", S("12345t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, "1234567890", S("1234567890t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, "12345678901234567890", S("12345678901234567890t"));
- test(S("abcdefghijklmnopqrst"), 0, 20, "", S(""));
- test(S("abcdefghijklmnopqrst"), 0, 20, "12345", S("12345"));
- test(S("abcdefghijklmnopqrst"), 0, 20, "1234567890", S("1234567890"));
- test(S("abcdefghijklmnopqrst"), 0, 20, "12345678901234567890", S("12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 0, 21, "", S(""));
- test(S("abcdefghijklmnopqrst"), 0, 21, "12345", S("12345"));
- test(S("abcdefghijklmnopqrst"), 0, 21, "1234567890", S("1234567890"));
- test(S("abcdefghijklmnopqrst"), 0, 21, "12345678901234567890", S("12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 1, 0, "", S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, "12345", S("a12345bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, "1234567890", S("a1234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, "12345678901234567890", S("a12345678901234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, "", S("acdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, "12345", S("a12345cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, "1234567890", S("a1234567890cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, "12345678901234567890", S("a12345678901234567890cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, "", S("aklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, "12345", S("a12345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, "1234567890", S("a1234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, "12345678901234567890", S("a12345678901234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 18, "", S("at"));
- test(S("abcdefghijklmnopqrst"), 1, 18, "12345", S("a12345t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, "1234567890", S("a1234567890t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, "12345678901234567890", S("a12345678901234567890t"));
- test(S("abcdefghijklmnopqrst"), 1, 19, "", S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 19, "12345", S("a12345"));
- test(S("abcdefghijklmnopqrst"), 1, 19, "1234567890", S("a1234567890"));
- test(S("abcdefghijklmnopqrst"), 1, 19, "12345678901234567890", S("a12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 1, 20, "", S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 20, "12345", S("a12345"));
- test(S("abcdefghijklmnopqrst"), 1, 20, "1234567890", S("a1234567890"));
- test(S("abcdefghijklmnopqrst"), 1, 20, "12345678901234567890", S("a12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 10, 0, "", S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, "12345", S("abcdefghij12345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, "1234567890", S("abcdefghij1234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, "12345678901234567890", S("abcdefghij12345678901234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, "", S("abcdefghijlmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, "12345", S("abcdefghij12345lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, "1234567890", S("abcdefghij1234567890lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, "12345678901234567890", S("abcdefghij12345678901234567890lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, "", S("abcdefghijpqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, "12345", S("abcdefghij12345pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, "1234567890", S("abcdefghij1234567890pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, "12345678901234567890", S("abcdefghij12345678901234567890pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 9, "", S("abcdefghijt"));
- test(S("abcdefghijklmnopqrst"), 10, 9, "12345", S("abcdefghij12345t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, "1234567890", S("abcdefghij1234567890t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, "12345678901234567890", S("abcdefghij12345678901234567890t"));
- test(S("abcdefghijklmnopqrst"), 10, 10, "", S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 10, "12345", S("abcdefghij12345"));
- test(S("abcdefghijklmnopqrst"), 10, 10, "1234567890", S("abcdefghij1234567890"));
- test(S("abcdefghijklmnopqrst"), 10, 10, "12345678901234567890", S("abcdefghij12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 10, 11, "", S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 11, "12345", S("abcdefghij12345"));
- test(S("abcdefghijklmnopqrst"), 10, 11, "1234567890", S("abcdefghij1234567890"));
- test(S("abcdefghijklmnopqrst"), 10, 11, "12345678901234567890", S("abcdefghij12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 19, 0, "", S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, 0, "12345", S("abcdefghijklmnopqrs12345t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, "1234567890", S("abcdefghijklmnopqrs1234567890t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, "12345678901234567890", S("abcdefghijklmnopqrs12345678901234567890t"));
- test(S("abcdefghijklmnopqrst"), 19, 1, "", S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 1, "12345", S("abcdefghijklmnopqrs12345"));
- test(S("abcdefghijklmnopqrst"), 19, 1, "1234567890", S("abcdefghijklmnopqrs1234567890"));
- test(S("abcdefghijklmnopqrst"), 19, 1, "12345678901234567890", S("abcdefghijklmnopqrs12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 19, 2, "", S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 2, "12345", S("abcdefghijklmnopqrs12345"));
- test(S("abcdefghijklmnopqrst"), 19, 2, "1234567890", S("abcdefghijklmnopqrs1234567890"));
- test(S("abcdefghijklmnopqrst"), 19, 2, "12345678901234567890", S("abcdefghijklmnopqrs12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 20, 0, "", S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 0, "12345", S("abcdefghijklmnopqrst12345"));
- test(S("abcdefghijklmnopqrst"), 20, 0, "1234567890", S("abcdefghijklmnopqrst1234567890"));
- test(S("abcdefghijklmnopqrst"), 20, 0, "12345678901234567890", S("abcdefghijklmnopqrst12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 20, 1, "", S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 1, "12345", S("abcdefghijklmnopqrst12345"));
- test(S("abcdefghijklmnopqrst"), 20, 1, "1234567890", S("abcdefghijklmnopqrst1234567890"));
- test(S("abcdefghijklmnopqrst"), 20, 1, "12345678901234567890", S("abcdefghijklmnopqrst12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 21, 0, "", S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, "12345", S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, "1234567890", S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, "12345678901234567890", S("can't happen"));
+TEST_CONSTEXPR_CXX20 bool test2() {
+ test(S("abcdefghijklmnopqrst"), 0, 0, "", S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, "12345", S("12345abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, "1234567890", S("1234567890abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, "12345678901234567890", S("12345678901234567890abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, "", S("bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, "12345", S("12345bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, "1234567890", S("1234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, "12345678901234567890", S("12345678901234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, "", S("klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, "12345", S("12345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, "1234567890", S("1234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, "12345678901234567890", S("12345678901234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, "", S("t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, "12345", S("12345t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, "1234567890", S("1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, "12345678901234567890", S("12345678901234567890t"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, "", S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 20, "12345", S("12345"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, "1234567890", S("1234567890"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, "12345678901234567890", S("12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, "", S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 21, "12345", S("12345"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, "1234567890", S("1234567890"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, "12345678901234567890", S("12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, "", S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, "12345", S("a12345bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, "1234567890", S("a1234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, "12345678901234567890", S("a12345678901234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, "", S("acdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, "12345", S("a12345cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, "1234567890", S("a1234567890cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, "12345678901234567890", S("a12345678901234567890cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, "", S("aklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, "12345", S("a12345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, "1234567890", S("a1234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, "12345678901234567890", S("a12345678901234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, "", S("at"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, "12345", S("a12345t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, "1234567890", S("a1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, "12345678901234567890", S("a12345678901234567890t"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, "", S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, "12345", S("a12345"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, "1234567890", S("a1234567890"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, "12345678901234567890", S("a12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, "", S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, "12345", S("a12345"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, "1234567890", S("a1234567890"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, "12345678901234567890", S("a12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, "", S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, "12345", S("abcdefghij12345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, "1234567890", S("abcdefghij1234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, "12345678901234567890", S("abcdefghij12345678901234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, "", S("abcdefghijlmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, "12345", S("abcdefghij12345lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, "1234567890", S("abcdefghij1234567890lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, "12345678901234567890", S("abcdefghij12345678901234567890lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, "", S("abcdefghijpqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, "12345", S("abcdefghij12345pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, "1234567890", S("abcdefghij1234567890pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, "12345678901234567890", S("abcdefghij12345678901234567890pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, "", S("abcdefghijt"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, "12345", S("abcdefghij12345t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, "1234567890", S("abcdefghij1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, "12345678901234567890", S("abcdefghij12345678901234567890t"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, "", S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, "12345", S("abcdefghij12345"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, "1234567890", S("abcdefghij1234567890"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, "12345678901234567890", S("abcdefghij12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, "", S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, "12345", S("abcdefghij12345"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, "1234567890", S("abcdefghij1234567890"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, "12345678901234567890", S("abcdefghij12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, "", S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, "12345", S("abcdefghijklmnopqrs12345t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, "1234567890", S("abcdefghijklmnopqrs1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, "12345678901234567890", S("abcdefghijklmnopqrs12345678901234567890t"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, "", S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, "12345", S("abcdefghijklmnopqrs12345"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, "1234567890", S("abcdefghijklmnopqrs1234567890"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, "12345678901234567890", S("abcdefghijklmnopqrs12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, "", S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, "12345", S("abcdefghijklmnopqrs12345"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, "1234567890", S("abcdefghijklmnopqrs1234567890"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, "12345678901234567890", S("abcdefghijklmnopqrs12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, "", S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, "12345", S("abcdefghijklmnopqrst12345"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, "1234567890", S("abcdefghijklmnopqrst1234567890"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, "12345678901234567890", S("abcdefghijklmnopqrst12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, "", S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, "12345", S("abcdefghijklmnopqrst12345"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, "1234567890", S("abcdefghijklmnopqrst1234567890"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, "12345678901234567890", S("abcdefghijklmnopqrst12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, "", S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, "12345", S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, "1234567890", S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, "12345678901234567890", S("can't happen"));
- return true;
+ return true;
}
template <class S>
@@ -383,8 +373,7 @@ void test() {
}
}
-int main(int, char**)
-{
+int main(int, char**) {
test<std::string>();
#if TEST_STD_VER >= 11
test<std::basic_string<char, std::char_traits<char>, min_allocator<char>>>();
diff --git a/libcxx/test/std/strings/basic.string/string.modifiers/string_replace/size_size_pointer_size.pass.cpp b/libcxx/test/std/strings/basic.string/string.modifiers/string_replace/size_size_pointer_size.pass.cpp
index 352ce5763433960..7ef63bdf313ddaf 100644
--- a/libcxx/test/std/strings/basic.string/string.modifiers/string_replace/size_size_pointer_size.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.modifiers/string_replace/size_size_pointer_size.pass.cpp
@@ -21,1304 +21,1289 @@
template <class S>
TEST_CONSTEXPR_CXX20 void
-test(S s, typename S::size_type pos, typename S::size_type n1,
- const typename S::value_type* str, typename S::size_type n2,
- S expected)
-{
- const typename S::size_type old_size = s.size();
- S s0 = s;
- if (pos <= old_size)
- {
- s.replace(pos, n1, str, n2);
- LIBCPP_ASSERT(s.__invariants());
- assert(s == expected);
- typename S::size_type xlen = std::min(n1, old_size - pos);
- typename S::size_type rlen = n2;
- assert(s.size() == old_size - xlen + rlen);
- }
+test(S s,
+ typename S::size_type pos,
+ typename S::size_type n1,
+ const typename S::value_type* str,
+ typename S::size_type n2,
+ S expected) {
+ const typename S::size_type old_size = s.size();
+ S s0 = s;
+ if (pos <= old_size) {
+ s.replace(pos, n1, str, n2);
+ LIBCPP_ASSERT(s.__invariants());
+ assert(s == expected);
+ typename S::size_type xlen = std::min(n1, old_size - pos);
+ typename S::size_type rlen = n2;
+ assert(s.size() == old_size - xlen + rlen);
+ }
#ifndef TEST_HAS_NO_EXCEPTIONS
- else if (!TEST_IS_CONSTANT_EVALUATED)
- {
- try
- {
- s.replace(pos, n1, str, n2);
- assert(false);
- }
- catch (std::out_of_range&)
- {
- assert(pos > old_size);
- assert(s == s0);
- }
+ else if (!TEST_IS_CONSTANT_EVALUATED) {
+ try {
+ s.replace(pos, n1, str, n2);
+ assert(false);
+ } catch (std::out_of_range&) {
+ assert(pos > old_size);
+ assert(s == s0);
}
+ }
#endif
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test0()
-{
- test(S(""), 0, 0, "", 0, S(""));
- test(S(""), 0, 0, "12345", 0, S(""));
- test(S(""), 0, 0, "12345", 1, S("1"));
- test(S(""), 0, 0, "12345", 2, S("12"));
- test(S(""), 0, 0, "12345", 4, S("1234"));
- test(S(""), 0, 0, "12345", 5, S("12345"));
- test(S(""), 0, 0, "1234567890", 0, S(""));
- test(S(""), 0, 0, "1234567890", 1, S("1"));
- test(S(""), 0, 0, "1234567890", 5, S("12345"));
- test(S(""), 0, 0, "1234567890", 9, S("123456789"));
- test(S(""), 0, 0, "1234567890", 10, S("1234567890"));
- test(S(""), 0, 0, "12345678901234567890", 0, S(""));
- test(S(""), 0, 0, "12345678901234567890", 1, S("1"));
- test(S(""), 0, 0, "12345678901234567890", 10, S("1234567890"));
- test(S(""), 0, 0, "12345678901234567890", 19, S("1234567890123456789"));
- test(S(""), 0, 0, "12345678901234567890", 20, S("12345678901234567890"));
- test(S(""), 0, 1, "", 0, S(""));
- test(S(""), 0, 1, "12345", 0, S(""));
- test(S(""), 0, 1, "12345", 1, S("1"));
- test(S(""), 0, 1, "12345", 2, S("12"));
- test(S(""), 0, 1, "12345", 4, S("1234"));
- test(S(""), 0, 1, "12345", 5, S("12345"));
- test(S(""), 0, 1, "1234567890", 0, S(""));
- test(S(""), 0, 1, "1234567890", 1, S("1"));
- test(S(""), 0, 1, "1234567890", 5, S("12345"));
- test(S(""), 0, 1, "1234567890", 9, S("123456789"));
- test(S(""), 0, 1, "1234567890", 10, S("1234567890"));
- test(S(""), 0, 1, "12345678901234567890", 0, S(""));
- test(S(""), 0, 1, "12345678901234567890", 1, S("1"));
- test(S(""), 0, 1, "12345678901234567890", 10, S("1234567890"));
- test(S(""), 0, 1, "12345678901234567890", 19, S("1234567890123456789"));
- test(S(""), 0, 1, "12345678901234567890", 20, S("12345678901234567890"));
- test(S(""), 1, 0, "", 0, S("can't happen"));
- test(S(""), 1, 0, "12345", 0, S("can't happen"));
- test(S(""), 1, 0, "12345", 1, S("can't happen"));
- test(S(""), 1, 0, "12345", 2, S("can't happen"));
- test(S(""), 1, 0, "12345", 4, S("can't happen"));
- test(S(""), 1, 0, "12345", 5, S("can't happen"));
- test(S(""), 1, 0, "1234567890", 0, S("can't happen"));
- test(S(""), 1, 0, "1234567890", 1, S("can't happen"));
- test(S(""), 1, 0, "1234567890", 5, S("can't happen"));
- test(S(""), 1, 0, "1234567890", 9, S("can't happen"));
- test(S(""), 1, 0, "1234567890", 10, S("can't happen"));
- test(S(""), 1, 0, "12345678901234567890", 0, S("can't happen"));
- test(S(""), 1, 0, "12345678901234567890", 1, S("can't happen"));
- test(S(""), 1, 0, "12345678901234567890", 10, S("can't happen"));
- test(S(""), 1, 0, "12345678901234567890", 19, S("can't happen"));
- test(S(""), 1, 0, "12345678901234567890", 20, S("can't happen"));
- test(S("abcde"), 0, 0, "", 0, S("abcde"));
- test(S("abcde"), 0, 0, "12345", 0, S("abcde"));
- test(S("abcde"), 0, 0, "12345", 1, S("1abcde"));
- test(S("abcde"), 0, 0, "12345", 2, S("12abcde"));
- test(S("abcde"), 0, 0, "12345", 4, S("1234abcde"));
- test(S("abcde"), 0, 0, "12345", 5, S("12345abcde"));
- test(S("abcde"), 0, 0, "1234567890", 0, S("abcde"));
- test(S("abcde"), 0, 0, "1234567890", 1, S("1abcde"));
- test(S("abcde"), 0, 0, "1234567890", 5, S("12345abcde"));
- test(S("abcde"), 0, 0, "1234567890", 9, S("123456789abcde"));
- test(S("abcde"), 0, 0, "1234567890", 10, S("1234567890abcde"));
- test(S("abcde"), 0, 0, "12345678901234567890", 0, S("abcde"));
- test(S("abcde"), 0, 0, "12345678901234567890", 1, S("1abcde"));
- test(S("abcde"), 0, 0, "12345678901234567890", 10, S("1234567890abcde"));
- test(S("abcde"), 0, 0, "12345678901234567890", 19, S("1234567890123456789abcde"));
- test(S("abcde"), 0, 0, "12345678901234567890", 20, S("12345678901234567890abcde"));
- test(S("abcde"), 0, 1, "", 0, S("bcde"));
- test(S("abcde"), 0, 1, "12345", 0, S("bcde"));
- test(S("abcde"), 0, 1, "12345", 1, S("1bcde"));
- test(S("abcde"), 0, 1, "12345", 2, S("12bcde"));
- test(S("abcde"), 0, 1, "12345", 4, S("1234bcde"));
- test(S("abcde"), 0, 1, "12345", 5, S("12345bcde"));
- test(S("abcde"), 0, 1, "1234567890", 0, S("bcde"));
- test(S("abcde"), 0, 1, "1234567890", 1, S("1bcde"));
- test(S("abcde"), 0, 1, "1234567890", 5, S("12345bcde"));
- test(S("abcde"), 0, 1, "1234567890", 9, S("123456789bcde"));
- test(S("abcde"), 0, 1, "1234567890", 10, S("1234567890bcde"));
- test(S("abcde"), 0, 1, "12345678901234567890", 0, S("bcde"));
- test(S("abcde"), 0, 1, "12345678901234567890", 1, S("1bcde"));
- test(S("abcde"), 0, 1, "12345678901234567890", 10, S("1234567890bcde"));
- test(S("abcde"), 0, 1, "12345678901234567890", 19, S("1234567890123456789bcde"));
- test(S("abcde"), 0, 1, "12345678901234567890", 20, S("12345678901234567890bcde"));
- test(S("abcde"), 0, 2, "", 0, S("cde"));
- test(S("abcde"), 0, 2, "12345", 0, S("cde"));
- test(S("abcde"), 0, 2, "12345", 1, S("1cde"));
- test(S("abcde"), 0, 2, "12345", 2, S("12cde"));
- test(S("abcde"), 0, 2, "12345", 4, S("1234cde"));
- test(S("abcde"), 0, 2, "12345", 5, S("12345cde"));
- test(S("abcde"), 0, 2, "1234567890", 0, S("cde"));
- test(S("abcde"), 0, 2, "1234567890", 1, S("1cde"));
- test(S("abcde"), 0, 2, "1234567890", 5, S("12345cde"));
- test(S("abcde"), 0, 2, "1234567890", 9, S("123456789cde"));
- test(S("abcde"), 0, 2, "1234567890", 10, S("1234567890cde"));
- test(S("abcde"), 0, 2, "12345678901234567890", 0, S("cde"));
- test(S("abcde"), 0, 2, "12345678901234567890", 1, S("1cde"));
- test(S("abcde"), 0, 2, "12345678901234567890", 10, S("1234567890cde"));
- test(S("abcde"), 0, 2, "12345678901234567890", 19, S("1234567890123456789cde"));
- test(S("abcde"), 0, 2, "12345678901234567890", 20, S("12345678901234567890cde"));
- test(S("abcde"), 0, 4, "", 0, S("e"));
- test(S("abcde"), 0, 4, "12345", 0, S("e"));
- test(S("abcde"), 0, 4, "12345", 1, S("1e"));
- test(S("abcde"), 0, 4, "12345", 2, S("12e"));
+TEST_CONSTEXPR_CXX20 bool test0() {
+ test(S(""), 0, 0, "", 0, S(""));
+ test(S(""), 0, 0, "12345", 0, S(""));
+ test(S(""), 0, 0, "12345", 1, S("1"));
+ test(S(""), 0, 0, "12345", 2, S("12"));
+ test(S(""), 0, 0, "12345", 4, S("1234"));
+ test(S(""), 0, 0, "12345", 5, S("12345"));
+ test(S(""), 0, 0, "1234567890", 0, S(""));
+ test(S(""), 0, 0, "1234567890", 1, S("1"));
+ test(S(""), 0, 0, "1234567890", 5, S("12345"));
+ test(S(""), 0, 0, "1234567890", 9, S("123456789"));
+ test(S(""), 0, 0, "1234567890", 10, S("1234567890"));
+ test(S(""), 0, 0, "12345678901234567890", 0, S(""));
+ test(S(""), 0, 0, "12345678901234567890", 1, S("1"));
+ test(S(""), 0, 0, "12345678901234567890", 10, S("1234567890"));
+ test(S(""), 0, 0, "12345678901234567890", 19, S("1234567890123456789"));
+ test(S(""), 0, 0, "12345678901234567890", 20, S("12345678901234567890"));
+ test(S(""), 0, 1, "", 0, S(""));
+ test(S(""), 0, 1, "12345", 0, S(""));
+ test(S(""), 0, 1, "12345", 1, S("1"));
+ test(S(""), 0, 1, "12345", 2, S("12"));
+ test(S(""), 0, 1, "12345", 4, S("1234"));
+ test(S(""), 0, 1, "12345", 5, S("12345"));
+ test(S(""), 0, 1, "1234567890", 0, S(""));
+ test(S(""), 0, 1, "1234567890", 1, S("1"));
+ test(S(""), 0, 1, "1234567890", 5, S("12345"));
+ test(S(""), 0, 1, "1234567890", 9, S("123456789"));
+ test(S(""), 0, 1, "1234567890", 10, S("1234567890"));
+ test(S(""), 0, 1, "12345678901234567890", 0, S(""));
+ test(S(""), 0, 1, "12345678901234567890", 1, S("1"));
+ test(S(""), 0, 1, "12345678901234567890", 10, S("1234567890"));
+ test(S(""), 0, 1, "12345678901234567890", 19, S("1234567890123456789"));
+ test(S(""), 0, 1, "12345678901234567890", 20, S("12345678901234567890"));
+ test(S(""), 1, 0, "", 0, S("can't happen"));
+ test(S(""), 1, 0, "12345", 0, S("can't happen"));
+ test(S(""), 1, 0, "12345", 1, S("can't happen"));
+ test(S(""), 1, 0, "12345", 2, S("can't happen"));
+ test(S(""), 1, 0, "12345", 4, S("can't happen"));
+ test(S(""), 1, 0, "12345", 5, S("can't happen"));
+ test(S(""), 1, 0, "1234567890", 0, S("can't happen"));
+ test(S(""), 1, 0, "1234567890", 1, S("can't happen"));
+ test(S(""), 1, 0, "1234567890", 5, S("can't happen"));
+ test(S(""), 1, 0, "1234567890", 9, S("can't happen"));
+ test(S(""), 1, 0, "1234567890", 10, S("can't happen"));
+ test(S(""), 1, 0, "12345678901234567890", 0, S("can't happen"));
+ test(S(""), 1, 0, "12345678901234567890", 1, S("can't happen"));
+ test(S(""), 1, 0, "12345678901234567890", 10, S("can't happen"));
+ test(S(""), 1, 0, "12345678901234567890", 19, S("can't happen"));
+ test(S(""), 1, 0, "12345678901234567890", 20, S("can't happen"));
+ test(S("abcde"), 0, 0, "", 0, S("abcde"));
+ test(S("abcde"), 0, 0, "12345", 0, S("abcde"));
+ test(S("abcde"), 0, 0, "12345", 1, S("1abcde"));
+ test(S("abcde"), 0, 0, "12345", 2, S("12abcde"));
+ test(S("abcde"), 0, 0, "12345", 4, S("1234abcde"));
+ test(S("abcde"), 0, 0, "12345", 5, S("12345abcde"));
+ test(S("abcde"), 0, 0, "1234567890", 0, S("abcde"));
+ test(S("abcde"), 0, 0, "1234567890", 1, S("1abcde"));
+ test(S("abcde"), 0, 0, "1234567890", 5, S("12345abcde"));
+ test(S("abcde"), 0, 0, "1234567890", 9, S("123456789abcde"));
+ test(S("abcde"), 0, 0, "1234567890", 10, S("1234567890abcde"));
+ test(S("abcde"), 0, 0, "12345678901234567890", 0, S("abcde"));
+ test(S("abcde"), 0, 0, "12345678901234567890", 1, S("1abcde"));
+ test(S("abcde"), 0, 0, "12345678901234567890", 10, S("1234567890abcde"));
+ test(S("abcde"), 0, 0, "12345678901234567890", 19, S("1234567890123456789abcde"));
+ test(S("abcde"), 0, 0, "12345678901234567890", 20, S("12345678901234567890abcde"));
+ test(S("abcde"), 0, 1, "", 0, S("bcde"));
+ test(S("abcde"), 0, 1, "12345", 0, S("bcde"));
+ test(S("abcde"), 0, 1, "12345", 1, S("1bcde"));
+ test(S("abcde"), 0, 1, "12345", 2, S("12bcde"));
+ test(S("abcde"), 0, 1, "12345", 4, S("1234bcde"));
+ test(S("abcde"), 0, 1, "12345", 5, S("12345bcde"));
+ test(S("abcde"), 0, 1, "1234567890", 0, S("bcde"));
+ test(S("abcde"), 0, 1, "1234567890", 1, S("1bcde"));
+ test(S("abcde"), 0, 1, "1234567890", 5, S("12345bcde"));
+ test(S("abcde"), 0, 1, "1234567890", 9, S("123456789bcde"));
+ test(S("abcde"), 0, 1, "1234567890", 10, S("1234567890bcde"));
+ test(S("abcde"), 0, 1, "12345678901234567890", 0, S("bcde"));
+ test(S("abcde"), 0, 1, "12345678901234567890", 1, S("1bcde"));
+ test(S("abcde"), 0, 1, "12345678901234567890", 10, S("1234567890bcde"));
+ test(S("abcde"), 0, 1, "12345678901234567890", 19, S("1234567890123456789bcde"));
+ test(S("abcde"), 0, 1, "12345678901234567890", 20, S("12345678901234567890bcde"));
+ test(S("abcde"), 0, 2, "", 0, S("cde"));
+ test(S("abcde"), 0, 2, "12345", 0, S("cde"));
+ test(S("abcde"), 0, 2, "12345", 1, S("1cde"));
+ test(S("abcde"), 0, 2, "12345", 2, S("12cde"));
+ test(S("abcde"), 0, 2, "12345", 4, S("1234cde"));
+ test(S("abcde"), 0, 2, "12345", 5, S("12345cde"));
+ test(S("abcde"), 0, 2, "1234567890", 0, S("cde"));
+ test(S("abcde"), 0, 2, "1234567890", 1, S("1cde"));
+ test(S("abcde"), 0, 2, "1234567890", 5, S("12345cde"));
+ test(S("abcde"), 0, 2, "1234567890", 9, S("123456789cde"));
+ test(S("abcde"), 0, 2, "1234567890", 10, S("1234567890cde"));
+ test(S("abcde"), 0, 2, "12345678901234567890", 0, S("cde"));
+ test(S("abcde"), 0, 2, "12345678901234567890", 1, S("1cde"));
+ test(S("abcde"), 0, 2, "12345678901234567890", 10, S("1234567890cde"));
+ test(S("abcde"), 0, 2, "12345678901234567890", 19, S("1234567890123456789cde"));
+ test(S("abcde"), 0, 2, "12345678901234567890", 20, S("12345678901234567890cde"));
+ test(S("abcde"), 0, 4, "", 0, S("e"));
+ test(S("abcde"), 0, 4, "12345", 0, S("e"));
+ test(S("abcde"), 0, 4, "12345", 1, S("1e"));
+ test(S("abcde"), 0, 4, "12345", 2, S("12e"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test1()
-{
- test(S("abcde"), 0, 4, "12345", 4, S("1234e"));
- test(S("abcde"), 0, 4, "12345", 5, S("12345e"));
- test(S("abcde"), 0, 4, "1234567890", 0, S("e"));
- test(S("abcde"), 0, 4, "1234567890", 1, S("1e"));
- test(S("abcde"), 0, 4, "1234567890", 5, S("12345e"));
- test(S("abcde"), 0, 4, "1234567890", 9, S("123456789e"));
- test(S("abcde"), 0, 4, "1234567890", 10, S("1234567890e"));
- test(S("abcde"), 0, 4, "12345678901234567890", 0, S("e"));
- test(S("abcde"), 0, 4, "12345678901234567890", 1, S("1e"));
- test(S("abcde"), 0, 4, "12345678901234567890", 10, S("1234567890e"));
- test(S("abcde"), 0, 4, "12345678901234567890", 19, S("1234567890123456789e"));
- test(S("abcde"), 0, 4, "12345678901234567890", 20, S("12345678901234567890e"));
- test(S("abcde"), 0, 5, "", 0, S(""));
- test(S("abcde"), 0, 5, "12345", 0, S(""));
- test(S("abcde"), 0, 5, "12345", 1, S("1"));
- test(S("abcde"), 0, 5, "12345", 2, S("12"));
- test(S("abcde"), 0, 5, "12345", 4, S("1234"));
- test(S("abcde"), 0, 5, "12345", 5, S("12345"));
- test(S("abcde"), 0, 5, "1234567890", 0, S(""));
- test(S("abcde"), 0, 5, "1234567890", 1, S("1"));
- test(S("abcde"), 0, 5, "1234567890", 5, S("12345"));
- test(S("abcde"), 0, 5, "1234567890", 9, S("123456789"));
- test(S("abcde"), 0, 5, "1234567890", 10, S("1234567890"));
- test(S("abcde"), 0, 5, "12345678901234567890", 0, S(""));
- test(S("abcde"), 0, 5, "12345678901234567890", 1, S("1"));
- test(S("abcde"), 0, 5, "12345678901234567890", 10, S("1234567890"));
- test(S("abcde"), 0, 5, "12345678901234567890", 19, S("1234567890123456789"));
- test(S("abcde"), 0, 5, "12345678901234567890", 20, S("12345678901234567890"));
- test(S("abcde"), 0, 6, "", 0, S(""));
- test(S("abcde"), 0, 6, "12345", 0, S(""));
- test(S("abcde"), 0, 6, "12345", 1, S("1"));
- test(S("abcde"), 0, 6, "12345", 2, S("12"));
- test(S("abcde"), 0, 6, "12345", 4, S("1234"));
- test(S("abcde"), 0, 6, "12345", 5, S("12345"));
- test(S("abcde"), 0, 6, "1234567890", 0, S(""));
- test(S("abcde"), 0, 6, "1234567890", 1, S("1"));
- test(S("abcde"), 0, 6, "1234567890", 5, S("12345"));
- test(S("abcde"), 0, 6, "1234567890", 9, S("123456789"));
- test(S("abcde"), 0, 6, "1234567890", 10, S("1234567890"));
- test(S("abcde"), 0, 6, "12345678901234567890", 0, S(""));
- test(S("abcde"), 0, 6, "12345678901234567890", 1, S("1"));
- test(S("abcde"), 0, 6, "12345678901234567890", 10, S("1234567890"));
- test(S("abcde"), 0, 6, "12345678901234567890", 19, S("1234567890123456789"));
- test(S("abcde"), 0, 6, "12345678901234567890", 20, S("12345678901234567890"));
- test(S("abcde"), 1, 0, "", 0, S("abcde"));
- test(S("abcde"), 1, 0, "12345", 0, S("abcde"));
- test(S("abcde"), 1, 0, "12345", 1, S("a1bcde"));
- test(S("abcde"), 1, 0, "12345", 2, S("a12bcde"));
- test(S("abcde"), 1, 0, "12345", 4, S("a1234bcde"));
- test(S("abcde"), 1, 0, "12345", 5, S("a12345bcde"));
- test(S("abcde"), 1, 0, "1234567890", 0, S("abcde"));
- test(S("abcde"), 1, 0, "1234567890", 1, S("a1bcde"));
- test(S("abcde"), 1, 0, "1234567890", 5, S("a12345bcde"));
- test(S("abcde"), 1, 0, "1234567890", 9, S("a123456789bcde"));
- test(S("abcde"), 1, 0, "1234567890", 10, S("a1234567890bcde"));
- test(S("abcde"), 1, 0, "12345678901234567890", 0, S("abcde"));
- test(S("abcde"), 1, 0, "12345678901234567890", 1, S("a1bcde"));
- test(S("abcde"), 1, 0, "12345678901234567890", 10, S("a1234567890bcde"));
- test(S("abcde"), 1, 0, "12345678901234567890", 19, S("a1234567890123456789bcde"));
- test(S("abcde"), 1, 0, "12345678901234567890", 20, S("a12345678901234567890bcde"));
- test(S("abcde"), 1, 1, "", 0, S("acde"));
- test(S("abcde"), 1, 1, "12345", 0, S("acde"));
- test(S("abcde"), 1, 1, "12345", 1, S("a1cde"));
- test(S("abcde"), 1, 1, "12345", 2, S("a12cde"));
- test(S("abcde"), 1, 1, "12345", 4, S("a1234cde"));
- test(S("abcde"), 1, 1, "12345", 5, S("a12345cde"));
- test(S("abcde"), 1, 1, "1234567890", 0, S("acde"));
- test(S("abcde"), 1, 1, "1234567890", 1, S("a1cde"));
- test(S("abcde"), 1, 1, "1234567890", 5, S("a12345cde"));
- test(S("abcde"), 1, 1, "1234567890", 9, S("a123456789cde"));
- test(S("abcde"), 1, 1, "1234567890", 10, S("a1234567890cde"));
- test(S("abcde"), 1, 1, "12345678901234567890", 0, S("acde"));
- test(S("abcde"), 1, 1, "12345678901234567890", 1, S("a1cde"));
- test(S("abcde"), 1, 1, "12345678901234567890", 10, S("a1234567890cde"));
- test(S("abcde"), 1, 1, "12345678901234567890", 19, S("a1234567890123456789cde"));
- test(S("abcde"), 1, 1, "12345678901234567890", 20, S("a12345678901234567890cde"));
- test(S("abcde"), 1, 2, "", 0, S("ade"));
- test(S("abcde"), 1, 2, "12345", 0, S("ade"));
- test(S("abcde"), 1, 2, "12345", 1, S("a1de"));
- test(S("abcde"), 1, 2, "12345", 2, S("a12de"));
- test(S("abcde"), 1, 2, "12345", 4, S("a1234de"));
- test(S("abcde"), 1, 2, "12345", 5, S("a12345de"));
- test(S("abcde"), 1, 2, "1234567890", 0, S("ade"));
- test(S("abcde"), 1, 2, "1234567890", 1, S("a1de"));
- test(S("abcde"), 1, 2, "1234567890", 5, S("a12345de"));
- test(S("abcde"), 1, 2, "1234567890", 9, S("a123456789de"));
- test(S("abcde"), 1, 2, "1234567890", 10, S("a1234567890de"));
- test(S("abcde"), 1, 2, "12345678901234567890", 0, S("ade"));
- test(S("abcde"), 1, 2, "12345678901234567890", 1, S("a1de"));
- test(S("abcde"), 1, 2, "12345678901234567890", 10, S("a1234567890de"));
- test(S("abcde"), 1, 2, "12345678901234567890", 19, S("a1234567890123456789de"));
- test(S("abcde"), 1, 2, "12345678901234567890", 20, S("a12345678901234567890de"));
- test(S("abcde"), 1, 3, "", 0, S("ae"));
- test(S("abcde"), 1, 3, "12345", 0, S("ae"));
- test(S("abcde"), 1, 3, "12345", 1, S("a1e"));
- test(S("abcde"), 1, 3, "12345", 2, S("a12e"));
- test(S("abcde"), 1, 3, "12345", 4, S("a1234e"));
- test(S("abcde"), 1, 3, "12345", 5, S("a12345e"));
- test(S("abcde"), 1, 3, "1234567890", 0, S("ae"));
- test(S("abcde"), 1, 3, "1234567890", 1, S("a1e"));
+TEST_CONSTEXPR_CXX20 bool test1() {
+ test(S("abcde"), 0, 4, "12345", 4, S("1234e"));
+ test(S("abcde"), 0, 4, "12345", 5, S("12345e"));
+ test(S("abcde"), 0, 4, "1234567890", 0, S("e"));
+ test(S("abcde"), 0, 4, "1234567890", 1, S("1e"));
+ test(S("abcde"), 0, 4, "1234567890", 5, S("12345e"));
+ test(S("abcde"), 0, 4, "1234567890", 9, S("123456789e"));
+ test(S("abcde"), 0, 4, "1234567890", 10, S("1234567890e"));
+ test(S("abcde"), 0, 4, "12345678901234567890", 0, S("e"));
+ test(S("abcde"), 0, 4, "12345678901234567890", 1, S("1e"));
+ test(S("abcde"), 0, 4, "12345678901234567890", 10, S("1234567890e"));
+ test(S("abcde"), 0, 4, "12345678901234567890", 19, S("1234567890123456789e"));
+ test(S("abcde"), 0, 4, "12345678901234567890", 20, S("12345678901234567890e"));
+ test(S("abcde"), 0, 5, "", 0, S(""));
+ test(S("abcde"), 0, 5, "12345", 0, S(""));
+ test(S("abcde"), 0, 5, "12345", 1, S("1"));
+ test(S("abcde"), 0, 5, "12345", 2, S("12"));
+ test(S("abcde"), 0, 5, "12345", 4, S("1234"));
+ test(S("abcde"), 0, 5, "12345", 5, S("12345"));
+ test(S("abcde"), 0, 5, "1234567890", 0, S(""));
+ test(S("abcde"), 0, 5, "1234567890", 1, S("1"));
+ test(S("abcde"), 0, 5, "1234567890", 5, S("12345"));
+ test(S("abcde"), 0, 5, "1234567890", 9, S("123456789"));
+ test(S("abcde"), 0, 5, "1234567890", 10, S("1234567890"));
+ test(S("abcde"), 0, 5, "12345678901234567890", 0, S(""));
+ test(S("abcde"), 0, 5, "12345678901234567890", 1, S("1"));
+ test(S("abcde"), 0, 5, "12345678901234567890", 10, S("1234567890"));
+ test(S("abcde"), 0, 5, "12345678901234567890", 19, S("1234567890123456789"));
+ test(S("abcde"), 0, 5, "12345678901234567890", 20, S("12345678901234567890"));
+ test(S("abcde"), 0, 6, "", 0, S(""));
+ test(S("abcde"), 0, 6, "12345", 0, S(""));
+ test(S("abcde"), 0, 6, "12345", 1, S("1"));
+ test(S("abcde"), 0, 6, "12345", 2, S("12"));
+ test(S("abcde"), 0, 6, "12345", 4, S("1234"));
+ test(S("abcde"), 0, 6, "12345", 5, S("12345"));
+ test(S("abcde"), 0, 6, "1234567890", 0, S(""));
+ test(S("abcde"), 0, 6, "1234567890", 1, S("1"));
+ test(S("abcde"), 0, 6, "1234567890", 5, S("12345"));
+ test(S("abcde"), 0, 6, "1234567890", 9, S("123456789"));
+ test(S("abcde"), 0, 6, "1234567890", 10, S("1234567890"));
+ test(S("abcde"), 0, 6, "12345678901234567890", 0, S(""));
+ test(S("abcde"), 0, 6, "12345678901234567890", 1, S("1"));
+ test(S("abcde"), 0, 6, "12345678901234567890", 10, S("1234567890"));
+ test(S("abcde"), 0, 6, "12345678901234567890", 19, S("1234567890123456789"));
+ test(S("abcde"), 0, 6, "12345678901234567890", 20, S("12345678901234567890"));
+ test(S("abcde"), 1, 0, "", 0, S("abcde"));
+ test(S("abcde"), 1, 0, "12345", 0, S("abcde"));
+ test(S("abcde"), 1, 0, "12345", 1, S("a1bcde"));
+ test(S("abcde"), 1, 0, "12345", 2, S("a12bcde"));
+ test(S("abcde"), 1, 0, "12345", 4, S("a1234bcde"));
+ test(S("abcde"), 1, 0, "12345", 5, S("a12345bcde"));
+ test(S("abcde"), 1, 0, "1234567890", 0, S("abcde"));
+ test(S("abcde"), 1, 0, "1234567890", 1, S("a1bcde"));
+ test(S("abcde"), 1, 0, "1234567890", 5, S("a12345bcde"));
+ test(S("abcde"), 1, 0, "1234567890", 9, S("a123456789bcde"));
+ test(S("abcde"), 1, 0, "1234567890", 10, S("a1234567890bcde"));
+ test(S("abcde"), 1, 0, "12345678901234567890", 0, S("abcde"));
+ test(S("abcde"), 1, 0, "12345678901234567890", 1, S("a1bcde"));
+ test(S("abcde"), 1, 0, "12345678901234567890", 10, S("a1234567890bcde"));
+ test(S("abcde"), 1, 0, "12345678901234567890", 19, S("a1234567890123456789bcde"));
+ test(S("abcde"), 1, 0, "12345678901234567890", 20, S("a12345678901234567890bcde"));
+ test(S("abcde"), 1, 1, "", 0, S("acde"));
+ test(S("abcde"), 1, 1, "12345", 0, S("acde"));
+ test(S("abcde"), 1, 1, "12345", 1, S("a1cde"));
+ test(S("abcde"), 1, 1, "12345", 2, S("a12cde"));
+ test(S("abcde"), 1, 1, "12345", 4, S("a1234cde"));
+ test(S("abcde"), 1, 1, "12345", 5, S("a12345cde"));
+ test(S("abcde"), 1, 1, "1234567890", 0, S("acde"));
+ test(S("abcde"), 1, 1, "1234567890", 1, S("a1cde"));
+ test(S("abcde"), 1, 1, "1234567890", 5, S("a12345cde"));
+ test(S("abcde"), 1, 1, "1234567890", 9, S("a123456789cde"));
+ test(S("abcde"), 1, 1, "1234567890", 10, S("a1234567890cde"));
+ test(S("abcde"), 1, 1, "12345678901234567890", 0, S("acde"));
+ test(S("abcde"), 1, 1, "12345678901234567890", 1, S("a1cde"));
+ test(S("abcde"), 1, 1, "12345678901234567890", 10, S("a1234567890cde"));
+ test(S("abcde"), 1, 1, "12345678901234567890", 19, S("a1234567890123456789cde"));
+ test(S("abcde"), 1, 1, "12345678901234567890", 20, S("a12345678901234567890cde"));
+ test(S("abcde"), 1, 2, "", 0, S("ade"));
+ test(S("abcde"), 1, 2, "12345", 0, S("ade"));
+ test(S("abcde"), 1, 2, "12345", 1, S("a1de"));
+ test(S("abcde"), 1, 2, "12345", 2, S("a12de"));
+ test(S("abcde"), 1, 2, "12345", 4, S("a1234de"));
+ test(S("abcde"), 1, 2, "12345", 5, S("a12345de"));
+ test(S("abcde"), 1, 2, "1234567890", 0, S("ade"));
+ test(S("abcde"), 1, 2, "1234567890", 1, S("a1de"));
+ test(S("abcde"), 1, 2, "1234567890", 5, S("a12345de"));
+ test(S("abcde"), 1, 2, "1234567890", 9, S("a123456789de"));
+ test(S("abcde"), 1, 2, "1234567890", 10, S("a1234567890de"));
+ test(S("abcde"), 1, 2, "12345678901234567890", 0, S("ade"));
+ test(S("abcde"), 1, 2, "12345678901234567890", 1, S("a1de"));
+ test(S("abcde"), 1, 2, "12345678901234567890", 10, S("a1234567890de"));
+ test(S("abcde"), 1, 2, "12345678901234567890", 19, S("a1234567890123456789de"));
+ test(S("abcde"), 1, 2, "12345678901234567890", 20, S("a12345678901234567890de"));
+ test(S("abcde"), 1, 3, "", 0, S("ae"));
+ test(S("abcde"), 1, 3, "12345", 0, S("ae"));
+ test(S("abcde"), 1, 3, "12345", 1, S("a1e"));
+ test(S("abcde"), 1, 3, "12345", 2, S("a12e"));
+ test(S("abcde"), 1, 3, "12345", 4, S("a1234e"));
+ test(S("abcde"), 1, 3, "12345", 5, S("a12345e"));
+ test(S("abcde"), 1, 3, "1234567890", 0, S("ae"));
+ test(S("abcde"), 1, 3, "1234567890", 1, S("a1e"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test2()
-{
- test(S("abcde"), 1, 3, "1234567890", 5, S("a12345e"));
- test(S("abcde"), 1, 3, "1234567890", 9, S("a123456789e"));
- test(S("abcde"), 1, 3, "1234567890", 10, S("a1234567890e"));
- test(S("abcde"), 1, 3, "12345678901234567890", 0, S("ae"));
- test(S("abcde"), 1, 3, "12345678901234567890", 1, S("a1e"));
- test(S("abcde"), 1, 3, "12345678901234567890", 10, S("a1234567890e"));
- test(S("abcde"), 1, 3, "12345678901234567890", 19, S("a1234567890123456789e"));
- test(S("abcde"), 1, 3, "12345678901234567890", 20, S("a12345678901234567890e"));
- test(S("abcde"), 1, 4, "", 0, S("a"));
- test(S("abcde"), 1, 4, "12345", 0, S("a"));
- test(S("abcde"), 1, 4, "12345", 1, S("a1"));
- test(S("abcde"), 1, 4, "12345", 2, S("a12"));
- test(S("abcde"), 1, 4, "12345", 4, S("a1234"));
- test(S("abcde"), 1, 4, "12345", 5, S("a12345"));
- test(S("abcde"), 1, 4, "1234567890", 0, S("a"));
- test(S("abcde"), 1, 4, "1234567890", 1, S("a1"));
- test(S("abcde"), 1, 4, "1234567890", 5, S("a12345"));
- test(S("abcde"), 1, 4, "1234567890", 9, S("a123456789"));
- test(S("abcde"), 1, 4, "1234567890", 10, S("a1234567890"));
- test(S("abcde"), 1, 4, "12345678901234567890", 0, S("a"));
- test(S("abcde"), 1, 4, "12345678901234567890", 1, S("a1"));
- test(S("abcde"), 1, 4, "12345678901234567890", 10, S("a1234567890"));
- test(S("abcde"), 1, 4, "12345678901234567890", 19, S("a1234567890123456789"));
- test(S("abcde"), 1, 4, "12345678901234567890", 20, S("a12345678901234567890"));
- test(S("abcde"), 1, 5, "", 0, S("a"));
- test(S("abcde"), 1, 5, "12345", 0, S("a"));
- test(S("abcde"), 1, 5, "12345", 1, S("a1"));
- test(S("abcde"), 1, 5, "12345", 2, S("a12"));
- test(S("abcde"), 1, 5, "12345", 4, S("a1234"));
- test(S("abcde"), 1, 5, "12345", 5, S("a12345"));
- test(S("abcde"), 1, 5, "1234567890", 0, S("a"));
- test(S("abcde"), 1, 5, "1234567890", 1, S("a1"));
- test(S("abcde"), 1, 5, "1234567890", 5, S("a12345"));
- test(S("abcde"), 1, 5, "1234567890", 9, S("a123456789"));
- test(S("abcde"), 1, 5, "1234567890", 10, S("a1234567890"));
- test(S("abcde"), 1, 5, "12345678901234567890", 0, S("a"));
- test(S("abcde"), 1, 5, "12345678901234567890", 1, S("a1"));
- test(S("abcde"), 1, 5, "12345678901234567890", 10, S("a1234567890"));
- test(S("abcde"), 1, 5, "12345678901234567890", 19, S("a1234567890123456789"));
- test(S("abcde"), 1, 5, "12345678901234567890", 20, S("a12345678901234567890"));
- test(S("abcde"), 2, 0, "", 0, S("abcde"));
- test(S("abcde"), 2, 0, "12345", 0, S("abcde"));
- test(S("abcde"), 2, 0, "12345", 1, S("ab1cde"));
- test(S("abcde"), 2, 0, "12345", 2, S("ab12cde"));
- test(S("abcde"), 2, 0, "12345", 4, S("ab1234cde"));
- test(S("abcde"), 2, 0, "12345", 5, S("ab12345cde"));
- test(S("abcde"), 2, 0, "1234567890", 0, S("abcde"));
- test(S("abcde"), 2, 0, "1234567890", 1, S("ab1cde"));
- test(S("abcde"), 2, 0, "1234567890", 5, S("ab12345cde"));
- test(S("abcde"), 2, 0, "1234567890", 9, S("ab123456789cde"));
- test(S("abcde"), 2, 0, "1234567890", 10, S("ab1234567890cde"));
- test(S("abcde"), 2, 0, "12345678901234567890", 0, S("abcde"));
- test(S("abcde"), 2, 0, "12345678901234567890", 1, S("ab1cde"));
- test(S("abcde"), 2, 0, "12345678901234567890", 10, S("ab1234567890cde"));
- test(S("abcde"), 2, 0, "12345678901234567890", 19, S("ab1234567890123456789cde"));
- test(S("abcde"), 2, 0, "12345678901234567890", 20, S("ab12345678901234567890cde"));
- test(S("abcde"), 2, 1, "", 0, S("abde"));
- test(S("abcde"), 2, 1, "12345", 0, S("abde"));
- test(S("abcde"), 2, 1, "12345", 1, S("ab1de"));
- test(S("abcde"), 2, 1, "12345", 2, S("ab12de"));
- test(S("abcde"), 2, 1, "12345", 4, S("ab1234de"));
- test(S("abcde"), 2, 1, "12345", 5, S("ab12345de"));
- test(S("abcde"), 2, 1, "1234567890", 0, S("abde"));
- test(S("abcde"), 2, 1, "1234567890", 1, S("ab1de"));
- test(S("abcde"), 2, 1, "1234567890", 5, S("ab12345de"));
- test(S("abcde"), 2, 1, "1234567890", 9, S("ab123456789de"));
- test(S("abcde"), 2, 1, "1234567890", 10, S("ab1234567890de"));
- test(S("abcde"), 2, 1, "12345678901234567890", 0, S("abde"));
- test(S("abcde"), 2, 1, "12345678901234567890", 1, S("ab1de"));
- test(S("abcde"), 2, 1, "12345678901234567890", 10, S("ab1234567890de"));
- test(S("abcde"), 2, 1, "12345678901234567890", 19, S("ab1234567890123456789de"));
- test(S("abcde"), 2, 1, "12345678901234567890", 20, S("ab12345678901234567890de"));
- test(S("abcde"), 2, 2, "", 0, S("abe"));
- test(S("abcde"), 2, 2, "12345", 0, S("abe"));
- test(S("abcde"), 2, 2, "12345", 1, S("ab1e"));
- test(S("abcde"), 2, 2, "12345", 2, S("ab12e"));
- test(S("abcde"), 2, 2, "12345", 4, S("ab1234e"));
- test(S("abcde"), 2, 2, "12345", 5, S("ab12345e"));
- test(S("abcde"), 2, 2, "1234567890", 0, S("abe"));
- test(S("abcde"), 2, 2, "1234567890", 1, S("ab1e"));
- test(S("abcde"), 2, 2, "1234567890", 5, S("ab12345e"));
- test(S("abcde"), 2, 2, "1234567890", 9, S("ab123456789e"));
- test(S("abcde"), 2, 2, "1234567890", 10, S("ab1234567890e"));
- test(S("abcde"), 2, 2, "12345678901234567890", 0, S("abe"));
- test(S("abcde"), 2, 2, "12345678901234567890", 1, S("ab1e"));
- test(S("abcde"), 2, 2, "12345678901234567890", 10, S("ab1234567890e"));
- test(S("abcde"), 2, 2, "12345678901234567890", 19, S("ab1234567890123456789e"));
- test(S("abcde"), 2, 2, "12345678901234567890", 20, S("ab12345678901234567890e"));
- test(S("abcde"), 2, 3, "", 0, S("ab"));
- test(S("abcde"), 2, 3, "12345", 0, S("ab"));
- test(S("abcde"), 2, 3, "12345", 1, S("ab1"));
- test(S("abcde"), 2, 3, "12345", 2, S("ab12"));
- test(S("abcde"), 2, 3, "12345", 4, S("ab1234"));
- test(S("abcde"), 2, 3, "12345", 5, S("ab12345"));
- test(S("abcde"), 2, 3, "1234567890", 0, S("ab"));
- test(S("abcde"), 2, 3, "1234567890", 1, S("ab1"));
- test(S("abcde"), 2, 3, "1234567890", 5, S("ab12345"));
- test(S("abcde"), 2, 3, "1234567890", 9, S("ab123456789"));
- test(S("abcde"), 2, 3, "1234567890", 10, S("ab1234567890"));
- test(S("abcde"), 2, 3, "12345678901234567890", 0, S("ab"));
+TEST_CONSTEXPR_CXX20 bool test2() {
+ test(S("abcde"), 1, 3, "1234567890", 5, S("a12345e"));
+ test(S("abcde"), 1, 3, "1234567890", 9, S("a123456789e"));
+ test(S("abcde"), 1, 3, "1234567890", 10, S("a1234567890e"));
+ test(S("abcde"), 1, 3, "12345678901234567890", 0, S("ae"));
+ test(S("abcde"), 1, 3, "12345678901234567890", 1, S("a1e"));
+ test(S("abcde"), 1, 3, "12345678901234567890", 10, S("a1234567890e"));
+ test(S("abcde"), 1, 3, "12345678901234567890", 19, S("a1234567890123456789e"));
+ test(S("abcde"), 1, 3, "12345678901234567890", 20, S("a12345678901234567890e"));
+ test(S("abcde"), 1, 4, "", 0, S("a"));
+ test(S("abcde"), 1, 4, "12345", 0, S("a"));
+ test(S("abcde"), 1, 4, "12345", 1, S("a1"));
+ test(S("abcde"), 1, 4, "12345", 2, S("a12"));
+ test(S("abcde"), 1, 4, "12345", 4, S("a1234"));
+ test(S("abcde"), 1, 4, "12345", 5, S("a12345"));
+ test(S("abcde"), 1, 4, "1234567890", 0, S("a"));
+ test(S("abcde"), 1, 4, "1234567890", 1, S("a1"));
+ test(S("abcde"), 1, 4, "1234567890", 5, S("a12345"));
+ test(S("abcde"), 1, 4, "1234567890", 9, S("a123456789"));
+ test(S("abcde"), 1, 4, "1234567890", 10, S("a1234567890"));
+ test(S("abcde"), 1, 4, "12345678901234567890", 0, S("a"));
+ test(S("abcde"), 1, 4, "12345678901234567890", 1, S("a1"));
+ test(S("abcde"), 1, 4, "12345678901234567890", 10, S("a1234567890"));
+ test(S("abcde"), 1, 4, "12345678901234567890", 19, S("a1234567890123456789"));
+ test(S("abcde"), 1, 4, "12345678901234567890", 20, S("a12345678901234567890"));
+ test(S("abcde"), 1, 5, "", 0, S("a"));
+ test(S("abcde"), 1, 5, "12345", 0, S("a"));
+ test(S("abcde"), 1, 5, "12345", 1, S("a1"));
+ test(S("abcde"), 1, 5, "12345", 2, S("a12"));
+ test(S("abcde"), 1, 5, "12345", 4, S("a1234"));
+ test(S("abcde"), 1, 5, "12345", 5, S("a12345"));
+ test(S("abcde"), 1, 5, "1234567890", 0, S("a"));
+ test(S("abcde"), 1, 5, "1234567890", 1, S("a1"));
+ test(S("abcde"), 1, 5, "1234567890", 5, S("a12345"));
+ test(S("abcde"), 1, 5, "1234567890", 9, S("a123456789"));
+ test(S("abcde"), 1, 5, "1234567890", 10, S("a1234567890"));
+ test(S("abcde"), 1, 5, "12345678901234567890", 0, S("a"));
+ test(S("abcde"), 1, 5, "12345678901234567890", 1, S("a1"));
+ test(S("abcde"), 1, 5, "12345678901234567890", 10, S("a1234567890"));
+ test(S("abcde"), 1, 5, "12345678901234567890", 19, S("a1234567890123456789"));
+ test(S("abcde"), 1, 5, "12345678901234567890", 20, S("a12345678901234567890"));
+ test(S("abcde"), 2, 0, "", 0, S("abcde"));
+ test(S("abcde"), 2, 0, "12345", 0, S("abcde"));
+ test(S("abcde"), 2, 0, "12345", 1, S("ab1cde"));
+ test(S("abcde"), 2, 0, "12345", 2, S("ab12cde"));
+ test(S("abcde"), 2, 0, "12345", 4, S("ab1234cde"));
+ test(S("abcde"), 2, 0, "12345", 5, S("ab12345cde"));
+ test(S("abcde"), 2, 0, "1234567890", 0, S("abcde"));
+ test(S("abcde"), 2, 0, "1234567890", 1, S("ab1cde"));
+ test(S("abcde"), 2, 0, "1234567890", 5, S("ab12345cde"));
+ test(S("abcde"), 2, 0, "1234567890", 9, S("ab123456789cde"));
+ test(S("abcde"), 2, 0, "1234567890", 10, S("ab1234567890cde"));
+ test(S("abcde"), 2, 0, "12345678901234567890", 0, S("abcde"));
+ test(S("abcde"), 2, 0, "12345678901234567890", 1, S("ab1cde"));
+ test(S("abcde"), 2, 0, "12345678901234567890", 10, S("ab1234567890cde"));
+ test(S("abcde"), 2, 0, "12345678901234567890", 19, S("ab1234567890123456789cde"));
+ test(S("abcde"), 2, 0, "12345678901234567890", 20, S("ab12345678901234567890cde"));
+ test(S("abcde"), 2, 1, "", 0, S("abde"));
+ test(S("abcde"), 2, 1, "12345", 0, S("abde"));
+ test(S("abcde"), 2, 1, "12345", 1, S("ab1de"));
+ test(S("abcde"), 2, 1, "12345", 2, S("ab12de"));
+ test(S("abcde"), 2, 1, "12345", 4, S("ab1234de"));
+ test(S("abcde"), 2, 1, "12345", 5, S("ab12345de"));
+ test(S("abcde"), 2, 1, "1234567890", 0, S("abde"));
+ test(S("abcde"), 2, 1, "1234567890", 1, S("ab1de"));
+ test(S("abcde"), 2, 1, "1234567890", 5, S("ab12345de"));
+ test(S("abcde"), 2, 1, "1234567890", 9, S("ab123456789de"));
+ test(S("abcde"), 2, 1, "1234567890", 10, S("ab1234567890de"));
+ test(S("abcde"), 2, 1, "12345678901234567890", 0, S("abde"));
+ test(S("abcde"), 2, 1, "12345678901234567890", 1, S("ab1de"));
+ test(S("abcde"), 2, 1, "12345678901234567890", 10, S("ab1234567890de"));
+ test(S("abcde"), 2, 1, "12345678901234567890", 19, S("ab1234567890123456789de"));
+ test(S("abcde"), 2, 1, "12345678901234567890", 20, S("ab12345678901234567890de"));
+ test(S("abcde"), 2, 2, "", 0, S("abe"));
+ test(S("abcde"), 2, 2, "12345", 0, S("abe"));
+ test(S("abcde"), 2, 2, "12345", 1, S("ab1e"));
+ test(S("abcde"), 2, 2, "12345", 2, S("ab12e"));
+ test(S("abcde"), 2, 2, "12345", 4, S("ab1234e"));
+ test(S("abcde"), 2, 2, "12345", 5, S("ab12345e"));
+ test(S("abcde"), 2, 2, "1234567890", 0, S("abe"));
+ test(S("abcde"), 2, 2, "1234567890", 1, S("ab1e"));
+ test(S("abcde"), 2, 2, "1234567890", 5, S("ab12345e"));
+ test(S("abcde"), 2, 2, "1234567890", 9, S("ab123456789e"));
+ test(S("abcde"), 2, 2, "1234567890", 10, S("ab1234567890e"));
+ test(S("abcde"), 2, 2, "12345678901234567890", 0, S("abe"));
+ test(S("abcde"), 2, 2, "12345678901234567890", 1, S("ab1e"));
+ test(S("abcde"), 2, 2, "12345678901234567890", 10, S("ab1234567890e"));
+ test(S("abcde"), 2, 2, "12345678901234567890", 19, S("ab1234567890123456789e"));
+ test(S("abcde"), 2, 2, "12345678901234567890", 20, S("ab12345678901234567890e"));
+ test(S("abcde"), 2, 3, "", 0, S("ab"));
+ test(S("abcde"), 2, 3, "12345", 0, S("ab"));
+ test(S("abcde"), 2, 3, "12345", 1, S("ab1"));
+ test(S("abcde"), 2, 3, "12345", 2, S("ab12"));
+ test(S("abcde"), 2, 3, "12345", 4, S("ab1234"));
+ test(S("abcde"), 2, 3, "12345", 5, S("ab12345"));
+ test(S("abcde"), 2, 3, "1234567890", 0, S("ab"));
+ test(S("abcde"), 2, 3, "1234567890", 1, S("ab1"));
+ test(S("abcde"), 2, 3, "1234567890", 5, S("ab12345"));
+ test(S("abcde"), 2, 3, "1234567890", 9, S("ab123456789"));
+ test(S("abcde"), 2, 3, "1234567890", 10, S("ab1234567890"));
+ test(S("abcde"), 2, 3, "12345678901234567890", 0, S("ab"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test3()
-{
- test(S("abcde"), 2, 3, "12345678901234567890", 1, S("ab1"));
- test(S("abcde"), 2, 3, "12345678901234567890", 10, S("ab1234567890"));
- test(S("abcde"), 2, 3, "12345678901234567890", 19, S("ab1234567890123456789"));
- test(S("abcde"), 2, 3, "12345678901234567890", 20, S("ab12345678901234567890"));
- test(S("abcde"), 2, 4, "", 0, S("ab"));
- test(S("abcde"), 2, 4, "12345", 0, S("ab"));
- test(S("abcde"), 2, 4, "12345", 1, S("ab1"));
- test(S("abcde"), 2, 4, "12345", 2, S("ab12"));
- test(S("abcde"), 2, 4, "12345", 4, S("ab1234"));
- test(S("abcde"), 2, 4, "12345", 5, S("ab12345"));
- test(S("abcde"), 2, 4, "1234567890", 0, S("ab"));
- test(S("abcde"), 2, 4, "1234567890", 1, S("ab1"));
- test(S("abcde"), 2, 4, "1234567890", 5, S("ab12345"));
- test(S("abcde"), 2, 4, "1234567890", 9, S("ab123456789"));
- test(S("abcde"), 2, 4, "1234567890", 10, S("ab1234567890"));
- test(S("abcde"), 2, 4, "12345678901234567890", 0, S("ab"));
- test(S("abcde"), 2, 4, "12345678901234567890", 1, S("ab1"));
- test(S("abcde"), 2, 4, "12345678901234567890", 10, S("ab1234567890"));
- test(S("abcde"), 2, 4, "12345678901234567890", 19, S("ab1234567890123456789"));
- test(S("abcde"), 2, 4, "12345678901234567890", 20, S("ab12345678901234567890"));
- test(S("abcde"), 4, 0, "", 0, S("abcde"));
- test(S("abcde"), 4, 0, "12345", 0, S("abcde"));
- test(S("abcde"), 4, 0, "12345", 1, S("abcd1e"));
- test(S("abcde"), 4, 0, "12345", 2, S("abcd12e"));
- test(S("abcde"), 4, 0, "12345", 4, S("abcd1234e"));
- test(S("abcde"), 4, 0, "12345", 5, S("abcd12345e"));
- test(S("abcde"), 4, 0, "1234567890", 0, S("abcde"));
- test(S("abcde"), 4, 0, "1234567890", 1, S("abcd1e"));
- test(S("abcde"), 4, 0, "1234567890", 5, S("abcd12345e"));
- test(S("abcde"), 4, 0, "1234567890", 9, S("abcd123456789e"));
- test(S("abcde"), 4, 0, "1234567890", 10, S("abcd1234567890e"));
- test(S("abcde"), 4, 0, "12345678901234567890", 0, S("abcde"));
- test(S("abcde"), 4, 0, "12345678901234567890", 1, S("abcd1e"));
- test(S("abcde"), 4, 0, "12345678901234567890", 10, S("abcd1234567890e"));
- test(S("abcde"), 4, 0, "12345678901234567890", 19, S("abcd1234567890123456789e"));
- test(S("abcde"), 4, 0, "12345678901234567890", 20, S("abcd12345678901234567890e"));
- test(S("abcde"), 4, 1, "", 0, S("abcd"));
- test(S("abcde"), 4, 1, "12345", 0, S("abcd"));
- test(S("abcde"), 4, 1, "12345", 1, S("abcd1"));
- test(S("abcde"), 4, 1, "12345", 2, S("abcd12"));
- test(S("abcde"), 4, 1, "12345", 4, S("abcd1234"));
- test(S("abcde"), 4, 1, "12345", 5, S("abcd12345"));
- test(S("abcde"), 4, 1, "1234567890", 0, S("abcd"));
- test(S("abcde"), 4, 1, "1234567890", 1, S("abcd1"));
- test(S("abcde"), 4, 1, "1234567890", 5, S("abcd12345"));
- test(S("abcde"), 4, 1, "1234567890", 9, S("abcd123456789"));
- test(S("abcde"), 4, 1, "1234567890", 10, S("abcd1234567890"));
- test(S("abcde"), 4, 1, "12345678901234567890", 0, S("abcd"));
- test(S("abcde"), 4, 1, "12345678901234567890", 1, S("abcd1"));
- test(S("abcde"), 4, 1, "12345678901234567890", 10, S("abcd1234567890"));
- test(S("abcde"), 4, 1, "12345678901234567890", 19, S("abcd1234567890123456789"));
- test(S("abcde"), 4, 1, "12345678901234567890", 20, S("abcd12345678901234567890"));
- test(S("abcde"), 4, 2, "", 0, S("abcd"));
- test(S("abcde"), 4, 2, "12345", 0, S("abcd"));
- test(S("abcde"), 4, 2, "12345", 1, S("abcd1"));
- test(S("abcde"), 4, 2, "12345", 2, S("abcd12"));
- test(S("abcde"), 4, 2, "12345", 4, S("abcd1234"));
- test(S("abcde"), 4, 2, "12345", 5, S("abcd12345"));
- test(S("abcde"), 4, 2, "1234567890", 0, S("abcd"));
- test(S("abcde"), 4, 2, "1234567890", 1, S("abcd1"));
- test(S("abcde"), 4, 2, "1234567890", 5, S("abcd12345"));
- test(S("abcde"), 4, 2, "1234567890", 9, S("abcd123456789"));
- test(S("abcde"), 4, 2, "1234567890", 10, S("abcd1234567890"));
- test(S("abcde"), 4, 2, "12345678901234567890", 0, S("abcd"));
- test(S("abcde"), 4, 2, "12345678901234567890", 1, S("abcd1"));
- test(S("abcde"), 4, 2, "12345678901234567890", 10, S("abcd1234567890"));
- test(S("abcde"), 4, 2, "12345678901234567890", 19, S("abcd1234567890123456789"));
- test(S("abcde"), 4, 2, "12345678901234567890", 20, S("abcd12345678901234567890"));
- test(S("abcde"), 5, 0, "", 0, S("abcde"));
- test(S("abcde"), 5, 0, "12345", 0, S("abcde"));
- test(S("abcde"), 5, 0, "12345", 1, S("abcde1"));
- test(S("abcde"), 5, 0, "12345", 2, S("abcde12"));
- test(S("abcde"), 5, 0, "12345", 4, S("abcde1234"));
- test(S("abcde"), 5, 0, "12345", 5, S("abcde12345"));
- test(S("abcde"), 5, 0, "1234567890", 0, S("abcde"));
- test(S("abcde"), 5, 0, "1234567890", 1, S("abcde1"));
- test(S("abcde"), 5, 0, "1234567890", 5, S("abcde12345"));
- test(S("abcde"), 5, 0, "1234567890", 9, S("abcde123456789"));
- test(S("abcde"), 5, 0, "1234567890", 10, S("abcde1234567890"));
- test(S("abcde"), 5, 0, "12345678901234567890", 0, S("abcde"));
- test(S("abcde"), 5, 0, "12345678901234567890", 1, S("abcde1"));
- test(S("abcde"), 5, 0, "12345678901234567890", 10, S("abcde1234567890"));
- test(S("abcde"), 5, 0, "12345678901234567890", 19, S("abcde1234567890123456789"));
- test(S("abcde"), 5, 0, "12345678901234567890", 20, S("abcde12345678901234567890"));
- test(S("abcde"), 5, 1, "", 0, S("abcde"));
- test(S("abcde"), 5, 1, "12345", 0, S("abcde"));
- test(S("abcde"), 5, 1, "12345", 1, S("abcde1"));
- test(S("abcde"), 5, 1, "12345", 2, S("abcde12"));
- test(S("abcde"), 5, 1, "12345", 4, S("abcde1234"));
- test(S("abcde"), 5, 1, "12345", 5, S("abcde12345"));
- test(S("abcde"), 5, 1, "1234567890", 0, S("abcde"));
- test(S("abcde"), 5, 1, "1234567890", 1, S("abcde1"));
- test(S("abcde"), 5, 1, "1234567890", 5, S("abcde12345"));
- test(S("abcde"), 5, 1, "1234567890", 9, S("abcde123456789"));
- test(S("abcde"), 5, 1, "1234567890", 10, S("abcde1234567890"));
- test(S("abcde"), 5, 1, "12345678901234567890", 0, S("abcde"));
- test(S("abcde"), 5, 1, "12345678901234567890", 1, S("abcde1"));
- test(S("abcde"), 5, 1, "12345678901234567890", 10, S("abcde1234567890"));
- test(S("abcde"), 5, 1, "12345678901234567890", 19, S("abcde1234567890123456789"));
- test(S("abcde"), 5, 1, "12345678901234567890", 20, S("abcde12345678901234567890"));
+TEST_CONSTEXPR_CXX20 bool test3() {
+ test(S("abcde"), 2, 3, "12345678901234567890", 1, S("ab1"));
+ test(S("abcde"), 2, 3, "12345678901234567890", 10, S("ab1234567890"));
+ test(S("abcde"), 2, 3, "12345678901234567890", 19, S("ab1234567890123456789"));
+ test(S("abcde"), 2, 3, "12345678901234567890", 20, S("ab12345678901234567890"));
+ test(S("abcde"), 2, 4, "", 0, S("ab"));
+ test(S("abcde"), 2, 4, "12345", 0, S("ab"));
+ test(S("abcde"), 2, 4, "12345", 1, S("ab1"));
+ test(S("abcde"), 2, 4, "12345", 2, S("ab12"));
+ test(S("abcde"), 2, 4, "12345", 4, S("ab1234"));
+ test(S("abcde"), 2, 4, "12345", 5, S("ab12345"));
+ test(S("abcde"), 2, 4, "1234567890", 0, S("ab"));
+ test(S("abcde"), 2, 4, "1234567890", 1, S("ab1"));
+ test(S("abcde"), 2, 4, "1234567890", 5, S("ab12345"));
+ test(S("abcde"), 2, 4, "1234567890", 9, S("ab123456789"));
+ test(S("abcde"), 2, 4, "1234567890", 10, S("ab1234567890"));
+ test(S("abcde"), 2, 4, "12345678901234567890", 0, S("ab"));
+ test(S("abcde"), 2, 4, "12345678901234567890", 1, S("ab1"));
+ test(S("abcde"), 2, 4, "12345678901234567890", 10, S("ab1234567890"));
+ test(S("abcde"), 2, 4, "12345678901234567890", 19, S("ab1234567890123456789"));
+ test(S("abcde"), 2, 4, "12345678901234567890", 20, S("ab12345678901234567890"));
+ test(S("abcde"), 4, 0, "", 0, S("abcde"));
+ test(S("abcde"), 4, 0, "12345", 0, S("abcde"));
+ test(S("abcde"), 4, 0, "12345", 1, S("abcd1e"));
+ test(S("abcde"), 4, 0, "12345", 2, S("abcd12e"));
+ test(S("abcde"), 4, 0, "12345", 4, S("abcd1234e"));
+ test(S("abcde"), 4, 0, "12345", 5, S("abcd12345e"));
+ test(S("abcde"), 4, 0, "1234567890", 0, S("abcde"));
+ test(S("abcde"), 4, 0, "1234567890", 1, S("abcd1e"));
+ test(S("abcde"), 4, 0, "1234567890", 5, S("abcd12345e"));
+ test(S("abcde"), 4, 0, "1234567890", 9, S("abcd123456789e"));
+ test(S("abcde"), 4, 0, "1234567890", 10, S("abcd1234567890e"));
+ test(S("abcde"), 4, 0, "12345678901234567890", 0, S("abcde"));
+ test(S("abcde"), 4, 0, "12345678901234567890", 1, S("abcd1e"));
+ test(S("abcde"), 4, 0, "12345678901234567890", 10, S("abcd1234567890e"));
+ test(S("abcde"), 4, 0, "12345678901234567890", 19, S("abcd1234567890123456789e"));
+ test(S("abcde"), 4, 0, "12345678901234567890", 20, S("abcd12345678901234567890e"));
+ test(S("abcde"), 4, 1, "", 0, S("abcd"));
+ test(S("abcde"), 4, 1, "12345", 0, S("abcd"));
+ test(S("abcde"), 4, 1, "12345", 1, S("abcd1"));
+ test(S("abcde"), 4, 1, "12345", 2, S("abcd12"));
+ test(S("abcde"), 4, 1, "12345", 4, S("abcd1234"));
+ test(S("abcde"), 4, 1, "12345", 5, S("abcd12345"));
+ test(S("abcde"), 4, 1, "1234567890", 0, S("abcd"));
+ test(S("abcde"), 4, 1, "1234567890", 1, S("abcd1"));
+ test(S("abcde"), 4, 1, "1234567890", 5, S("abcd12345"));
+ test(S("abcde"), 4, 1, "1234567890", 9, S("abcd123456789"));
+ test(S("abcde"), 4, 1, "1234567890", 10, S("abcd1234567890"));
+ test(S("abcde"), 4, 1, "12345678901234567890", 0, S("abcd"));
+ test(S("abcde"), 4, 1, "12345678901234567890", 1, S("abcd1"));
+ test(S("abcde"), 4, 1, "12345678901234567890", 10, S("abcd1234567890"));
+ test(S("abcde"), 4, 1, "12345678901234567890", 19, S("abcd1234567890123456789"));
+ test(S("abcde"), 4, 1, "12345678901234567890", 20, S("abcd12345678901234567890"));
+ test(S("abcde"), 4, 2, "", 0, S("abcd"));
+ test(S("abcde"), 4, 2, "12345", 0, S("abcd"));
+ test(S("abcde"), 4, 2, "12345", 1, S("abcd1"));
+ test(S("abcde"), 4, 2, "12345", 2, S("abcd12"));
+ test(S("abcde"), 4, 2, "12345", 4, S("abcd1234"));
+ test(S("abcde"), 4, 2, "12345", 5, S("abcd12345"));
+ test(S("abcde"), 4, 2, "1234567890", 0, S("abcd"));
+ test(S("abcde"), 4, 2, "1234567890", 1, S("abcd1"));
+ test(S("abcde"), 4, 2, "1234567890", 5, S("abcd12345"));
+ test(S("abcde"), 4, 2, "1234567890", 9, S("abcd123456789"));
+ test(S("abcde"), 4, 2, "1234567890", 10, S("abcd1234567890"));
+ test(S("abcde"), 4, 2, "12345678901234567890", 0, S("abcd"));
+ test(S("abcde"), 4, 2, "12345678901234567890", 1, S("abcd1"));
+ test(S("abcde"), 4, 2, "12345678901234567890", 10, S("abcd1234567890"));
+ test(S("abcde"), 4, 2, "12345678901234567890", 19, S("abcd1234567890123456789"));
+ test(S("abcde"), 4, 2, "12345678901234567890", 20, S("abcd12345678901234567890"));
+ test(S("abcde"), 5, 0, "", 0, S("abcde"));
+ test(S("abcde"), 5, 0, "12345", 0, S("abcde"));
+ test(S("abcde"), 5, 0, "12345", 1, S("abcde1"));
+ test(S("abcde"), 5, 0, "12345", 2, S("abcde12"));
+ test(S("abcde"), 5, 0, "12345", 4, S("abcde1234"));
+ test(S("abcde"), 5, 0, "12345", 5, S("abcde12345"));
+ test(S("abcde"), 5, 0, "1234567890", 0, S("abcde"));
+ test(S("abcde"), 5, 0, "1234567890", 1, S("abcde1"));
+ test(S("abcde"), 5, 0, "1234567890", 5, S("abcde12345"));
+ test(S("abcde"), 5, 0, "1234567890", 9, S("abcde123456789"));
+ test(S("abcde"), 5, 0, "1234567890", 10, S("abcde1234567890"));
+ test(S("abcde"), 5, 0, "12345678901234567890", 0, S("abcde"));
+ test(S("abcde"), 5, 0, "12345678901234567890", 1, S("abcde1"));
+ test(S("abcde"), 5, 0, "12345678901234567890", 10, S("abcde1234567890"));
+ test(S("abcde"), 5, 0, "12345678901234567890", 19, S("abcde1234567890123456789"));
+ test(S("abcde"), 5, 0, "12345678901234567890", 20, S("abcde12345678901234567890"));
+ test(S("abcde"), 5, 1, "", 0, S("abcde"));
+ test(S("abcde"), 5, 1, "12345", 0, S("abcde"));
+ test(S("abcde"), 5, 1, "12345", 1, S("abcde1"));
+ test(S("abcde"), 5, 1, "12345", 2, S("abcde12"));
+ test(S("abcde"), 5, 1, "12345", 4, S("abcde1234"));
+ test(S("abcde"), 5, 1, "12345", 5, S("abcde12345"));
+ test(S("abcde"), 5, 1, "1234567890", 0, S("abcde"));
+ test(S("abcde"), 5, 1, "1234567890", 1, S("abcde1"));
+ test(S("abcde"), 5, 1, "1234567890", 5, S("abcde12345"));
+ test(S("abcde"), 5, 1, "1234567890", 9, S("abcde123456789"));
+ test(S("abcde"), 5, 1, "1234567890", 10, S("abcde1234567890"));
+ test(S("abcde"), 5, 1, "12345678901234567890", 0, S("abcde"));
+ test(S("abcde"), 5, 1, "12345678901234567890", 1, S("abcde1"));
+ test(S("abcde"), 5, 1, "12345678901234567890", 10, S("abcde1234567890"));
+ test(S("abcde"), 5, 1, "12345678901234567890", 19, S("abcde1234567890123456789"));
+ test(S("abcde"), 5, 1, "12345678901234567890", 20, S("abcde12345678901234567890"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test4()
-{
- test(S("abcde"), 6, 0, "", 0, S("can't happen"));
- test(S("abcde"), 6, 0, "12345", 0, S("can't happen"));
- test(S("abcde"), 6, 0, "12345", 1, S("can't happen"));
- test(S("abcde"), 6, 0, "12345", 2, S("can't happen"));
- test(S("abcde"), 6, 0, "12345", 4, S("can't happen"));
- test(S("abcde"), 6, 0, "12345", 5, S("can't happen"));
- test(S("abcde"), 6, 0, "1234567890", 0, S("can't happen"));
- test(S("abcde"), 6, 0, "1234567890", 1, S("can't happen"));
- test(S("abcde"), 6, 0, "1234567890", 5, S("can't happen"));
- test(S("abcde"), 6, 0, "1234567890", 9, S("can't happen"));
- test(S("abcde"), 6, 0, "1234567890", 10, S("can't happen"));
- test(S("abcde"), 6, 0, "12345678901234567890", 0, S("can't happen"));
- test(S("abcde"), 6, 0, "12345678901234567890", 1, S("can't happen"));
- test(S("abcde"), 6, 0, "12345678901234567890", 10, S("can't happen"));
- test(S("abcde"), 6, 0, "12345678901234567890", 19, S("can't happen"));
- test(S("abcde"), 6, 0, "12345678901234567890", 20, S("can't happen"));
- test(S("abcdefghij"), 0, 0, "", 0, S("abcdefghij"));
- test(S("abcdefghij"), 0, 0, "12345", 0, S("abcdefghij"));
- test(S("abcdefghij"), 0, 0, "12345", 1, S("1abcdefghij"));
- test(S("abcdefghij"), 0, 0, "12345", 2, S("12abcdefghij"));
- test(S("abcdefghij"), 0, 0, "12345", 4, S("1234abcdefghij"));
- test(S("abcdefghij"), 0, 0, "12345", 5, S("12345abcdefghij"));
- test(S("abcdefghij"), 0, 0, "1234567890", 0, S("abcdefghij"));
- test(S("abcdefghij"), 0, 0, "1234567890", 1, S("1abcdefghij"));
- test(S("abcdefghij"), 0, 0, "1234567890", 5, S("12345abcdefghij"));
- test(S("abcdefghij"), 0, 0, "1234567890", 9, S("123456789abcdefghij"));
- test(S("abcdefghij"), 0, 0, "1234567890", 10, S("1234567890abcdefghij"));
- test(S("abcdefghij"), 0, 0, "12345678901234567890", 0, S("abcdefghij"));
- test(S("abcdefghij"), 0, 0, "12345678901234567890", 1, S("1abcdefghij"));
- test(S("abcdefghij"), 0, 0, "12345678901234567890", 10, S("1234567890abcdefghij"));
- test(S("abcdefghij"), 0, 0, "12345678901234567890", 19, S("1234567890123456789abcdefghij"));
- test(S("abcdefghij"), 0, 0, "12345678901234567890", 20, S("12345678901234567890abcdefghij"));
- test(S("abcdefghij"), 0, 1, "", 0, S("bcdefghij"));
- test(S("abcdefghij"), 0, 1, "12345", 0, S("bcdefghij"));
- test(S("abcdefghij"), 0, 1, "12345", 1, S("1bcdefghij"));
- test(S("abcdefghij"), 0, 1, "12345", 2, S("12bcdefghij"));
- test(S("abcdefghij"), 0, 1, "12345", 4, S("1234bcdefghij"));
- test(S("abcdefghij"), 0, 1, "12345", 5, S("12345bcdefghij"));
- test(S("abcdefghij"), 0, 1, "1234567890", 0, S("bcdefghij"));
- test(S("abcdefghij"), 0, 1, "1234567890", 1, S("1bcdefghij"));
- test(S("abcdefghij"), 0, 1, "1234567890", 5, S("12345bcdefghij"));
- test(S("abcdefghij"), 0, 1, "1234567890", 9, S("123456789bcdefghij"));
- test(S("abcdefghij"), 0, 1, "1234567890", 10, S("1234567890bcdefghij"));
- test(S("abcdefghij"), 0, 1, "12345678901234567890", 0, S("bcdefghij"));
- test(S("abcdefghij"), 0, 1, "12345678901234567890", 1, S("1bcdefghij"));
- test(S("abcdefghij"), 0, 1, "12345678901234567890", 10, S("1234567890bcdefghij"));
- test(S("abcdefghij"), 0, 1, "12345678901234567890", 19, S("1234567890123456789bcdefghij"));
- test(S("abcdefghij"), 0, 1, "12345678901234567890", 20, S("12345678901234567890bcdefghij"));
- test(S("abcdefghij"), 0, 5, "", 0, S("fghij"));
- test(S("abcdefghij"), 0, 5, "12345", 0, S("fghij"));
- test(S("abcdefghij"), 0, 5, "12345", 1, S("1fghij"));
- test(S("abcdefghij"), 0, 5, "12345", 2, S("12fghij"));
- test(S("abcdefghij"), 0, 5, "12345", 4, S("1234fghij"));
- test(S("abcdefghij"), 0, 5, "12345", 5, S("12345fghij"));
- test(S("abcdefghij"), 0, 5, "1234567890", 0, S("fghij"));
- test(S("abcdefghij"), 0, 5, "1234567890", 1, S("1fghij"));
- test(S("abcdefghij"), 0, 5, "1234567890", 5, S("12345fghij"));
- test(S("abcdefghij"), 0, 5, "1234567890", 9, S("123456789fghij"));
- test(S("abcdefghij"), 0, 5, "1234567890", 10, S("1234567890fghij"));
- test(S("abcdefghij"), 0, 5, "12345678901234567890", 0, S("fghij"));
- test(S("abcdefghij"), 0, 5, "12345678901234567890", 1, S("1fghij"));
- test(S("abcdefghij"), 0, 5, "12345678901234567890", 10, S("1234567890fghij"));
- test(S("abcdefghij"), 0, 5, "12345678901234567890", 19, S("1234567890123456789fghij"));
- test(S("abcdefghij"), 0, 5, "12345678901234567890", 20, S("12345678901234567890fghij"));
- test(S("abcdefghij"), 0, 9, "", 0, S("j"));
- test(S("abcdefghij"), 0, 9, "12345", 0, S("j"));
- test(S("abcdefghij"), 0, 9, "12345", 1, S("1j"));
- test(S("abcdefghij"), 0, 9, "12345", 2, S("12j"));
- test(S("abcdefghij"), 0, 9, "12345", 4, S("1234j"));
- test(S("abcdefghij"), 0, 9, "12345", 5, S("12345j"));
- test(S("abcdefghij"), 0, 9, "1234567890", 0, S("j"));
- test(S("abcdefghij"), 0, 9, "1234567890", 1, S("1j"));
- test(S("abcdefghij"), 0, 9, "1234567890", 5, S("12345j"));
- test(S("abcdefghij"), 0, 9, "1234567890", 9, S("123456789j"));
- test(S("abcdefghij"), 0, 9, "1234567890", 10, S("1234567890j"));
- test(S("abcdefghij"), 0, 9, "12345678901234567890", 0, S("j"));
- test(S("abcdefghij"), 0, 9, "12345678901234567890", 1, S("1j"));
- test(S("abcdefghij"), 0, 9, "12345678901234567890", 10, S("1234567890j"));
- test(S("abcdefghij"), 0, 9, "12345678901234567890", 19, S("1234567890123456789j"));
- test(S("abcdefghij"), 0, 9, "12345678901234567890", 20, S("12345678901234567890j"));
- test(S("abcdefghij"), 0, 10, "", 0, S(""));
- test(S("abcdefghij"), 0, 10, "12345", 0, S(""));
- test(S("abcdefghij"), 0, 10, "12345", 1, S("1"));
- test(S("abcdefghij"), 0, 10, "12345", 2, S("12"));
- test(S("abcdefghij"), 0, 10, "12345", 4, S("1234"));
- test(S("abcdefghij"), 0, 10, "12345", 5, S("12345"));
- test(S("abcdefghij"), 0, 10, "1234567890", 0, S(""));
- test(S("abcdefghij"), 0, 10, "1234567890", 1, S("1"));
- test(S("abcdefghij"), 0, 10, "1234567890", 5, S("12345"));
- test(S("abcdefghij"), 0, 10, "1234567890", 9, S("123456789"));
- test(S("abcdefghij"), 0, 10, "1234567890", 10, S("1234567890"));
- test(S("abcdefghij"), 0, 10, "12345678901234567890", 0, S(""));
- test(S("abcdefghij"), 0, 10, "12345678901234567890", 1, S("1"));
- test(S("abcdefghij"), 0, 10, "12345678901234567890", 10, S("1234567890"));
- test(S("abcdefghij"), 0, 10, "12345678901234567890", 19, S("1234567890123456789"));
- test(S("abcdefghij"), 0, 10, "12345678901234567890", 20, S("12345678901234567890"));
- test(S("abcdefghij"), 0, 11, "", 0, S(""));
- test(S("abcdefghij"), 0, 11, "12345", 0, S(""));
- test(S("abcdefghij"), 0, 11, "12345", 1, S("1"));
- test(S("abcdefghij"), 0, 11, "12345", 2, S("12"));
+TEST_CONSTEXPR_CXX20 bool test4() {
+ test(S("abcde"), 6, 0, "", 0, S("can't happen"));
+ test(S("abcde"), 6, 0, "12345", 0, S("can't happen"));
+ test(S("abcde"), 6, 0, "12345", 1, S("can't happen"));
+ test(S("abcde"), 6, 0, "12345", 2, S("can't happen"));
+ test(S("abcde"), 6, 0, "12345", 4, S("can't happen"));
+ test(S("abcde"), 6, 0, "12345", 5, S("can't happen"));
+ test(S("abcde"), 6, 0, "1234567890", 0, S("can't happen"));
+ test(S("abcde"), 6, 0, "1234567890", 1, S("can't happen"));
+ test(S("abcde"), 6, 0, "1234567890", 5, S("can't happen"));
+ test(S("abcde"), 6, 0, "1234567890", 9, S("can't happen"));
+ test(S("abcde"), 6, 0, "1234567890", 10, S("can't happen"));
+ test(S("abcde"), 6, 0, "12345678901234567890", 0, S("can't happen"));
+ test(S("abcde"), 6, 0, "12345678901234567890", 1, S("can't happen"));
+ test(S("abcde"), 6, 0, "12345678901234567890", 10, S("can't happen"));
+ test(S("abcde"), 6, 0, "12345678901234567890", 19, S("can't happen"));
+ test(S("abcde"), 6, 0, "12345678901234567890", 20, S("can't happen"));
+ test(S("abcdefghij"), 0, 0, "", 0, S("abcdefghij"));
+ test(S("abcdefghij"), 0, 0, "12345", 0, S("abcdefghij"));
+ test(S("abcdefghij"), 0, 0, "12345", 1, S("1abcdefghij"));
+ test(S("abcdefghij"), 0, 0, "12345", 2, S("12abcdefghij"));
+ test(S("abcdefghij"), 0, 0, "12345", 4, S("1234abcdefghij"));
+ test(S("abcdefghij"), 0, 0, "12345", 5, S("12345abcdefghij"));
+ test(S("abcdefghij"), 0, 0, "1234567890", 0, S("abcdefghij"));
+ test(S("abcdefghij"), 0, 0, "1234567890", 1, S("1abcdefghij"));
+ test(S("abcdefghij"), 0, 0, "1234567890", 5, S("12345abcdefghij"));
+ test(S("abcdefghij"), 0, 0, "1234567890", 9, S("123456789abcdefghij"));
+ test(S("abcdefghij"), 0, 0, "1234567890", 10, S("1234567890abcdefghij"));
+ test(S("abcdefghij"), 0, 0, "12345678901234567890", 0, S("abcdefghij"));
+ test(S("abcdefghij"), 0, 0, "12345678901234567890", 1, S("1abcdefghij"));
+ test(S("abcdefghij"), 0, 0, "12345678901234567890", 10, S("1234567890abcdefghij"));
+ test(S("abcdefghij"), 0, 0, "12345678901234567890", 19, S("1234567890123456789abcdefghij"));
+ test(S("abcdefghij"), 0, 0, "12345678901234567890", 20, S("12345678901234567890abcdefghij"));
+ test(S("abcdefghij"), 0, 1, "", 0, S("bcdefghij"));
+ test(S("abcdefghij"), 0, 1, "12345", 0, S("bcdefghij"));
+ test(S("abcdefghij"), 0, 1, "12345", 1, S("1bcdefghij"));
+ test(S("abcdefghij"), 0, 1, "12345", 2, S("12bcdefghij"));
+ test(S("abcdefghij"), 0, 1, "12345", 4, S("1234bcdefghij"));
+ test(S("abcdefghij"), 0, 1, "12345", 5, S("12345bcdefghij"));
+ test(S("abcdefghij"), 0, 1, "1234567890", 0, S("bcdefghij"));
+ test(S("abcdefghij"), 0, 1, "1234567890", 1, S("1bcdefghij"));
+ test(S("abcdefghij"), 0, 1, "1234567890", 5, S("12345bcdefghij"));
+ test(S("abcdefghij"), 0, 1, "1234567890", 9, S("123456789bcdefghij"));
+ test(S("abcdefghij"), 0, 1, "1234567890", 10, S("1234567890bcdefghij"));
+ test(S("abcdefghij"), 0, 1, "12345678901234567890", 0, S("bcdefghij"));
+ test(S("abcdefghij"), 0, 1, "12345678901234567890", 1, S("1bcdefghij"));
+ test(S("abcdefghij"), 0, 1, "12345678901234567890", 10, S("1234567890bcdefghij"));
+ test(S("abcdefghij"), 0, 1, "12345678901234567890", 19, S("1234567890123456789bcdefghij"));
+ test(S("abcdefghij"), 0, 1, "12345678901234567890", 20, S("12345678901234567890bcdefghij"));
+ test(S("abcdefghij"), 0, 5, "", 0, S("fghij"));
+ test(S("abcdefghij"), 0, 5, "12345", 0, S("fghij"));
+ test(S("abcdefghij"), 0, 5, "12345", 1, S("1fghij"));
+ test(S("abcdefghij"), 0, 5, "12345", 2, S("12fghij"));
+ test(S("abcdefghij"), 0, 5, "12345", 4, S("1234fghij"));
+ test(S("abcdefghij"), 0, 5, "12345", 5, S("12345fghij"));
+ test(S("abcdefghij"), 0, 5, "1234567890", 0, S("fghij"));
+ test(S("abcdefghij"), 0, 5, "1234567890", 1, S("1fghij"));
+ test(S("abcdefghij"), 0, 5, "1234567890", 5, S("12345fghij"));
+ test(S("abcdefghij"), 0, 5, "1234567890", 9, S("123456789fghij"));
+ test(S("abcdefghij"), 0, 5, "1234567890", 10, S("1234567890fghij"));
+ test(S("abcdefghij"), 0, 5, "12345678901234567890", 0, S("fghij"));
+ test(S("abcdefghij"), 0, 5, "12345678901234567890", 1, S("1fghij"));
+ test(S("abcdefghij"), 0, 5, "12345678901234567890", 10, S("1234567890fghij"));
+ test(S("abcdefghij"), 0, 5, "12345678901234567890", 19, S("1234567890123456789fghij"));
+ test(S("abcdefghij"), 0, 5, "12345678901234567890", 20, S("12345678901234567890fghij"));
+ test(S("abcdefghij"), 0, 9, "", 0, S("j"));
+ test(S("abcdefghij"), 0, 9, "12345", 0, S("j"));
+ test(S("abcdefghij"), 0, 9, "12345", 1, S("1j"));
+ test(S("abcdefghij"), 0, 9, "12345", 2, S("12j"));
+ test(S("abcdefghij"), 0, 9, "12345", 4, S("1234j"));
+ test(S("abcdefghij"), 0, 9, "12345", 5, S("12345j"));
+ test(S("abcdefghij"), 0, 9, "1234567890", 0, S("j"));
+ test(S("abcdefghij"), 0, 9, "1234567890", 1, S("1j"));
+ test(S("abcdefghij"), 0, 9, "1234567890", 5, S("12345j"));
+ test(S("abcdefghij"), 0, 9, "1234567890", 9, S("123456789j"));
+ test(S("abcdefghij"), 0, 9, "1234567890", 10, S("1234567890j"));
+ test(S("abcdefghij"), 0, 9, "12345678901234567890", 0, S("j"));
+ test(S("abcdefghij"), 0, 9, "12345678901234567890", 1, S("1j"));
+ test(S("abcdefghij"), 0, 9, "12345678901234567890", 10, S("1234567890j"));
+ test(S("abcdefghij"), 0, 9, "12345678901234567890", 19, S("1234567890123456789j"));
+ test(S("abcdefghij"), 0, 9, "12345678901234567890", 20, S("12345678901234567890j"));
+ test(S("abcdefghij"), 0, 10, "", 0, S(""));
+ test(S("abcdefghij"), 0, 10, "12345", 0, S(""));
+ test(S("abcdefghij"), 0, 10, "12345", 1, S("1"));
+ test(S("abcdefghij"), 0, 10, "12345", 2, S("12"));
+ test(S("abcdefghij"), 0, 10, "12345", 4, S("1234"));
+ test(S("abcdefghij"), 0, 10, "12345", 5, S("12345"));
+ test(S("abcdefghij"), 0, 10, "1234567890", 0, S(""));
+ test(S("abcdefghij"), 0, 10, "1234567890", 1, S("1"));
+ test(S("abcdefghij"), 0, 10, "1234567890", 5, S("12345"));
+ test(S("abcdefghij"), 0, 10, "1234567890", 9, S("123456789"));
+ test(S("abcdefghij"), 0, 10, "1234567890", 10, S("1234567890"));
+ test(S("abcdefghij"), 0, 10, "12345678901234567890", 0, S(""));
+ test(S("abcdefghij"), 0, 10, "12345678901234567890", 1, S("1"));
+ test(S("abcdefghij"), 0, 10, "12345678901234567890", 10, S("1234567890"));
+ test(S("abcdefghij"), 0, 10, "12345678901234567890", 19, S("1234567890123456789"));
+ test(S("abcdefghij"), 0, 10, "12345678901234567890", 20, S("12345678901234567890"));
+ test(S("abcdefghij"), 0, 11, "", 0, S(""));
+ test(S("abcdefghij"), 0, 11, "12345", 0, S(""));
+ test(S("abcdefghij"), 0, 11, "12345", 1, S("1"));
+ test(S("abcdefghij"), 0, 11, "12345", 2, S("12"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test5()
-{
- test(S("abcdefghij"), 0, 11, "12345", 4, S("1234"));
- test(S("abcdefghij"), 0, 11, "12345", 5, S("12345"));
- test(S("abcdefghij"), 0, 11, "1234567890", 0, S(""));
- test(S("abcdefghij"), 0, 11, "1234567890", 1, S("1"));
- test(S("abcdefghij"), 0, 11, "1234567890", 5, S("12345"));
- test(S("abcdefghij"), 0, 11, "1234567890", 9, S("123456789"));
- test(S("abcdefghij"), 0, 11, "1234567890", 10, S("1234567890"));
- test(S("abcdefghij"), 0, 11, "12345678901234567890", 0, S(""));
- test(S("abcdefghij"), 0, 11, "12345678901234567890", 1, S("1"));
- test(S("abcdefghij"), 0, 11, "12345678901234567890", 10, S("1234567890"));
- test(S("abcdefghij"), 0, 11, "12345678901234567890", 19, S("1234567890123456789"));
- test(S("abcdefghij"), 0, 11, "12345678901234567890", 20, S("12345678901234567890"));
- test(S("abcdefghij"), 1, 0, "", 0, S("abcdefghij"));
- test(S("abcdefghij"), 1, 0, "12345", 0, S("abcdefghij"));
- test(S("abcdefghij"), 1, 0, "12345", 1, S("a1bcdefghij"));
- test(S("abcdefghij"), 1, 0, "12345", 2, S("a12bcdefghij"));
- test(S("abcdefghij"), 1, 0, "12345", 4, S("a1234bcdefghij"));
- test(S("abcdefghij"), 1, 0, "12345", 5, S("a12345bcdefghij"));
- test(S("abcdefghij"), 1, 0, "1234567890", 0, S("abcdefghij"));
- test(S("abcdefghij"), 1, 0, "1234567890", 1, S("a1bcdefghij"));
- test(S("abcdefghij"), 1, 0, "1234567890", 5, S("a12345bcdefghij"));
- test(S("abcdefghij"), 1, 0, "1234567890", 9, S("a123456789bcdefghij"));
- test(S("abcdefghij"), 1, 0, "1234567890", 10, S("a1234567890bcdefghij"));
- test(S("abcdefghij"), 1, 0, "12345678901234567890", 0, S("abcdefghij"));
- test(S("abcdefghij"), 1, 0, "12345678901234567890", 1, S("a1bcdefghij"));
- test(S("abcdefghij"), 1, 0, "12345678901234567890", 10, S("a1234567890bcdefghij"));
- test(S("abcdefghij"), 1, 0, "12345678901234567890", 19, S("a1234567890123456789bcdefghij"));
- test(S("abcdefghij"), 1, 0, "12345678901234567890", 20, S("a12345678901234567890bcdefghij"));
- test(S("abcdefghij"), 1, 1, "", 0, S("acdefghij"));
- test(S("abcdefghij"), 1, 1, "12345", 0, S("acdefghij"));
- test(S("abcdefghij"), 1, 1, "12345", 1, S("a1cdefghij"));
- test(S("abcdefghij"), 1, 1, "12345", 2, S("a12cdefghij"));
- test(S("abcdefghij"), 1, 1, "12345", 4, S("a1234cdefghij"));
- test(S("abcdefghij"), 1, 1, "12345", 5, S("a12345cdefghij"));
- test(S("abcdefghij"), 1, 1, "1234567890", 0, S("acdefghij"));
- test(S("abcdefghij"), 1, 1, "1234567890", 1, S("a1cdefghij"));
- test(S("abcdefghij"), 1, 1, "1234567890", 5, S("a12345cdefghij"));
- test(S("abcdefghij"), 1, 1, "1234567890", 9, S("a123456789cdefghij"));
- test(S("abcdefghij"), 1, 1, "1234567890", 10, S("a1234567890cdefghij"));
- test(S("abcdefghij"), 1, 1, "12345678901234567890", 0, S("acdefghij"));
- test(S("abcdefghij"), 1, 1, "12345678901234567890", 1, S("a1cdefghij"));
- test(S("abcdefghij"), 1, 1, "12345678901234567890", 10, S("a1234567890cdefghij"));
- test(S("abcdefghij"), 1, 1, "12345678901234567890", 19, S("a1234567890123456789cdefghij"));
- test(S("abcdefghij"), 1, 1, "12345678901234567890", 20, S("a12345678901234567890cdefghij"));
- test(S("abcdefghij"), 1, 4, "", 0, S("afghij"));
- test(S("abcdefghij"), 1, 4, "12345", 0, S("afghij"));
- test(S("abcdefghij"), 1, 4, "12345", 1, S("a1fghij"));
- test(S("abcdefghij"), 1, 4, "12345", 2, S("a12fghij"));
- test(S("abcdefghij"), 1, 4, "12345", 4, S("a1234fghij"));
- test(S("abcdefghij"), 1, 4, "12345", 5, S("a12345fghij"));
- test(S("abcdefghij"), 1, 4, "1234567890", 0, S("afghij"));
- test(S("abcdefghij"), 1, 4, "1234567890", 1, S("a1fghij"));
- test(S("abcdefghij"), 1, 4, "1234567890", 5, S("a12345fghij"));
- test(S("abcdefghij"), 1, 4, "1234567890", 9, S("a123456789fghij"));
- test(S("abcdefghij"), 1, 4, "1234567890", 10, S("a1234567890fghij"));
- test(S("abcdefghij"), 1, 4, "12345678901234567890", 0, S("afghij"));
- test(S("abcdefghij"), 1, 4, "12345678901234567890", 1, S("a1fghij"));
- test(S("abcdefghij"), 1, 4, "12345678901234567890", 10, S("a1234567890fghij"));
- test(S("abcdefghij"), 1, 4, "12345678901234567890", 19, S("a1234567890123456789fghij"));
- test(S("abcdefghij"), 1, 4, "12345678901234567890", 20, S("a12345678901234567890fghij"));
- test(S("abcdefghij"), 1, 8, "", 0, S("aj"));
- test(S("abcdefghij"), 1, 8, "12345", 0, S("aj"));
- test(S("abcdefghij"), 1, 8, "12345", 1, S("a1j"));
- test(S("abcdefghij"), 1, 8, "12345", 2, S("a12j"));
- test(S("abcdefghij"), 1, 8, "12345", 4, S("a1234j"));
- test(S("abcdefghij"), 1, 8, "12345", 5, S("a12345j"));
- test(S("abcdefghij"), 1, 8, "1234567890", 0, S("aj"));
- test(S("abcdefghij"), 1, 8, "1234567890", 1, S("a1j"));
- test(S("abcdefghij"), 1, 8, "1234567890", 5, S("a12345j"));
- test(S("abcdefghij"), 1, 8, "1234567890", 9, S("a123456789j"));
- test(S("abcdefghij"), 1, 8, "1234567890", 10, S("a1234567890j"));
- test(S("abcdefghij"), 1, 8, "12345678901234567890", 0, S("aj"));
- test(S("abcdefghij"), 1, 8, "12345678901234567890", 1, S("a1j"));
- test(S("abcdefghij"), 1, 8, "12345678901234567890", 10, S("a1234567890j"));
- test(S("abcdefghij"), 1, 8, "12345678901234567890", 19, S("a1234567890123456789j"));
- test(S("abcdefghij"), 1, 8, "12345678901234567890", 20, S("a12345678901234567890j"));
- test(S("abcdefghij"), 1, 9, "", 0, S("a"));
- test(S("abcdefghij"), 1, 9, "12345", 0, S("a"));
- test(S("abcdefghij"), 1, 9, "12345", 1, S("a1"));
- test(S("abcdefghij"), 1, 9, "12345", 2, S("a12"));
- test(S("abcdefghij"), 1, 9, "12345", 4, S("a1234"));
- test(S("abcdefghij"), 1, 9, "12345", 5, S("a12345"));
- test(S("abcdefghij"), 1, 9, "1234567890", 0, S("a"));
- test(S("abcdefghij"), 1, 9, "1234567890", 1, S("a1"));
- test(S("abcdefghij"), 1, 9, "1234567890", 5, S("a12345"));
- test(S("abcdefghij"), 1, 9, "1234567890", 9, S("a123456789"));
- test(S("abcdefghij"), 1, 9, "1234567890", 10, S("a1234567890"));
- test(S("abcdefghij"), 1, 9, "12345678901234567890", 0, S("a"));
- test(S("abcdefghij"), 1, 9, "12345678901234567890", 1, S("a1"));
- test(S("abcdefghij"), 1, 9, "12345678901234567890", 10, S("a1234567890"));
- test(S("abcdefghij"), 1, 9, "12345678901234567890", 19, S("a1234567890123456789"));
- test(S("abcdefghij"), 1, 9, "12345678901234567890", 20, S("a12345678901234567890"));
- test(S("abcdefghij"), 1, 10, "", 0, S("a"));
- test(S("abcdefghij"), 1, 10, "12345", 0, S("a"));
- test(S("abcdefghij"), 1, 10, "12345", 1, S("a1"));
- test(S("abcdefghij"), 1, 10, "12345", 2, S("a12"));
- test(S("abcdefghij"), 1, 10, "12345", 4, S("a1234"));
- test(S("abcdefghij"), 1, 10, "12345", 5, S("a12345"));
- test(S("abcdefghij"), 1, 10, "1234567890", 0, S("a"));
- test(S("abcdefghij"), 1, 10, "1234567890", 1, S("a1"));
+TEST_CONSTEXPR_CXX20 bool test5() {
+ test(S("abcdefghij"), 0, 11, "12345", 4, S("1234"));
+ test(S("abcdefghij"), 0, 11, "12345", 5, S("12345"));
+ test(S("abcdefghij"), 0, 11, "1234567890", 0, S(""));
+ test(S("abcdefghij"), 0, 11, "1234567890", 1, S("1"));
+ test(S("abcdefghij"), 0, 11, "1234567890", 5, S("12345"));
+ test(S("abcdefghij"), 0, 11, "1234567890", 9, S("123456789"));
+ test(S("abcdefghij"), 0, 11, "1234567890", 10, S("1234567890"));
+ test(S("abcdefghij"), 0, 11, "12345678901234567890", 0, S(""));
+ test(S("abcdefghij"), 0, 11, "12345678901234567890", 1, S("1"));
+ test(S("abcdefghij"), 0, 11, "12345678901234567890", 10, S("1234567890"));
+ test(S("abcdefghij"), 0, 11, "12345678901234567890", 19, S("1234567890123456789"));
+ test(S("abcdefghij"), 0, 11, "12345678901234567890", 20, S("12345678901234567890"));
+ test(S("abcdefghij"), 1, 0, "", 0, S("abcdefghij"));
+ test(S("abcdefghij"), 1, 0, "12345", 0, S("abcdefghij"));
+ test(S("abcdefghij"), 1, 0, "12345", 1, S("a1bcdefghij"));
+ test(S("abcdefghij"), 1, 0, "12345", 2, S("a12bcdefghij"));
+ test(S("abcdefghij"), 1, 0, "12345", 4, S("a1234bcdefghij"));
+ test(S("abcdefghij"), 1, 0, "12345", 5, S("a12345bcdefghij"));
+ test(S("abcdefghij"), 1, 0, "1234567890", 0, S("abcdefghij"));
+ test(S("abcdefghij"), 1, 0, "1234567890", 1, S("a1bcdefghij"));
+ test(S("abcdefghij"), 1, 0, "1234567890", 5, S("a12345bcdefghij"));
+ test(S("abcdefghij"), 1, 0, "1234567890", 9, S("a123456789bcdefghij"));
+ test(S("abcdefghij"), 1, 0, "1234567890", 10, S("a1234567890bcdefghij"));
+ test(S("abcdefghij"), 1, 0, "12345678901234567890", 0, S("abcdefghij"));
+ test(S("abcdefghij"), 1, 0, "12345678901234567890", 1, S("a1bcdefghij"));
+ test(S("abcdefghij"), 1, 0, "12345678901234567890", 10, S("a1234567890bcdefghij"));
+ test(S("abcdefghij"), 1, 0, "12345678901234567890", 19, S("a1234567890123456789bcdefghij"));
+ test(S("abcdefghij"), 1, 0, "12345678901234567890", 20, S("a12345678901234567890bcdefghij"));
+ test(S("abcdefghij"), 1, 1, "", 0, S("acdefghij"));
+ test(S("abcdefghij"), 1, 1, "12345", 0, S("acdefghij"));
+ test(S("abcdefghij"), 1, 1, "12345", 1, S("a1cdefghij"));
+ test(S("abcdefghij"), 1, 1, "12345", 2, S("a12cdefghij"));
+ test(S("abcdefghij"), 1, 1, "12345", 4, S("a1234cdefghij"));
+ test(S("abcdefghij"), 1, 1, "12345", 5, S("a12345cdefghij"));
+ test(S("abcdefghij"), 1, 1, "1234567890", 0, S("acdefghij"));
+ test(S("abcdefghij"), 1, 1, "1234567890", 1, S("a1cdefghij"));
+ test(S("abcdefghij"), 1, 1, "1234567890", 5, S("a12345cdefghij"));
+ test(S("abcdefghij"), 1, 1, "1234567890", 9, S("a123456789cdefghij"));
+ test(S("abcdefghij"), 1, 1, "1234567890", 10, S("a1234567890cdefghij"));
+ test(S("abcdefghij"), 1, 1, "12345678901234567890", 0, S("acdefghij"));
+ test(S("abcdefghij"), 1, 1, "12345678901234567890", 1, S("a1cdefghij"));
+ test(S("abcdefghij"), 1, 1, "12345678901234567890", 10, S("a1234567890cdefghij"));
+ test(S("abcdefghij"), 1, 1, "12345678901234567890", 19, S("a1234567890123456789cdefghij"));
+ test(S("abcdefghij"), 1, 1, "12345678901234567890", 20, S("a12345678901234567890cdefghij"));
+ test(S("abcdefghij"), 1, 4, "", 0, S("afghij"));
+ test(S("abcdefghij"), 1, 4, "12345", 0, S("afghij"));
+ test(S("abcdefghij"), 1, 4, "12345", 1, S("a1fghij"));
+ test(S("abcdefghij"), 1, 4, "12345", 2, S("a12fghij"));
+ test(S("abcdefghij"), 1, 4, "12345", 4, S("a1234fghij"));
+ test(S("abcdefghij"), 1, 4, "12345", 5, S("a12345fghij"));
+ test(S("abcdefghij"), 1, 4, "1234567890", 0, S("afghij"));
+ test(S("abcdefghij"), 1, 4, "1234567890", 1, S("a1fghij"));
+ test(S("abcdefghij"), 1, 4, "1234567890", 5, S("a12345fghij"));
+ test(S("abcdefghij"), 1, 4, "1234567890", 9, S("a123456789fghij"));
+ test(S("abcdefghij"), 1, 4, "1234567890", 10, S("a1234567890fghij"));
+ test(S("abcdefghij"), 1, 4, "12345678901234567890", 0, S("afghij"));
+ test(S("abcdefghij"), 1, 4, "12345678901234567890", 1, S("a1fghij"));
+ test(S("abcdefghij"), 1, 4, "12345678901234567890", 10, S("a1234567890fghij"));
+ test(S("abcdefghij"), 1, 4, "12345678901234567890", 19, S("a1234567890123456789fghij"));
+ test(S("abcdefghij"), 1, 4, "12345678901234567890", 20, S("a12345678901234567890fghij"));
+ test(S("abcdefghij"), 1, 8, "", 0, S("aj"));
+ test(S("abcdefghij"), 1, 8, "12345", 0, S("aj"));
+ test(S("abcdefghij"), 1, 8, "12345", 1, S("a1j"));
+ test(S("abcdefghij"), 1, 8, "12345", 2, S("a12j"));
+ test(S("abcdefghij"), 1, 8, "12345", 4, S("a1234j"));
+ test(S("abcdefghij"), 1, 8, "12345", 5, S("a12345j"));
+ test(S("abcdefghij"), 1, 8, "1234567890", 0, S("aj"));
+ test(S("abcdefghij"), 1, 8, "1234567890", 1, S("a1j"));
+ test(S("abcdefghij"), 1, 8, "1234567890", 5, S("a12345j"));
+ test(S("abcdefghij"), 1, 8, "1234567890", 9, S("a123456789j"));
+ test(S("abcdefghij"), 1, 8, "1234567890", 10, S("a1234567890j"));
+ test(S("abcdefghij"), 1, 8, "12345678901234567890", 0, S("aj"));
+ test(S("abcdefghij"), 1, 8, "12345678901234567890", 1, S("a1j"));
+ test(S("abcdefghij"), 1, 8, "12345678901234567890", 10, S("a1234567890j"));
+ test(S("abcdefghij"), 1, 8, "12345678901234567890", 19, S("a1234567890123456789j"));
+ test(S("abcdefghij"), 1, 8, "12345678901234567890", 20, S("a12345678901234567890j"));
+ test(S("abcdefghij"), 1, 9, "", 0, S("a"));
+ test(S("abcdefghij"), 1, 9, "12345", 0, S("a"));
+ test(S("abcdefghij"), 1, 9, "12345", 1, S("a1"));
+ test(S("abcdefghij"), 1, 9, "12345", 2, S("a12"));
+ test(S("abcdefghij"), 1, 9, "12345", 4, S("a1234"));
+ test(S("abcdefghij"), 1, 9, "12345", 5, S("a12345"));
+ test(S("abcdefghij"), 1, 9, "1234567890", 0, S("a"));
+ test(S("abcdefghij"), 1, 9, "1234567890", 1, S("a1"));
+ test(S("abcdefghij"), 1, 9, "1234567890", 5, S("a12345"));
+ test(S("abcdefghij"), 1, 9, "1234567890", 9, S("a123456789"));
+ test(S("abcdefghij"), 1, 9, "1234567890", 10, S("a1234567890"));
+ test(S("abcdefghij"), 1, 9, "12345678901234567890", 0, S("a"));
+ test(S("abcdefghij"), 1, 9, "12345678901234567890", 1, S("a1"));
+ test(S("abcdefghij"), 1, 9, "12345678901234567890", 10, S("a1234567890"));
+ test(S("abcdefghij"), 1, 9, "12345678901234567890", 19, S("a1234567890123456789"));
+ test(S("abcdefghij"), 1, 9, "12345678901234567890", 20, S("a12345678901234567890"));
+ test(S("abcdefghij"), 1, 10, "", 0, S("a"));
+ test(S("abcdefghij"), 1, 10, "12345", 0, S("a"));
+ test(S("abcdefghij"), 1, 10, "12345", 1, S("a1"));
+ test(S("abcdefghij"), 1, 10, "12345", 2, S("a12"));
+ test(S("abcdefghij"), 1, 10, "12345", 4, S("a1234"));
+ test(S("abcdefghij"), 1, 10, "12345", 5, S("a12345"));
+ test(S("abcdefghij"), 1, 10, "1234567890", 0, S("a"));
+ test(S("abcdefghij"), 1, 10, "1234567890", 1, S("a1"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test6()
-{
- test(S("abcdefghij"), 1, 10, "1234567890", 5, S("a12345"));
- test(S("abcdefghij"), 1, 10, "1234567890", 9, S("a123456789"));
- test(S("abcdefghij"), 1, 10, "1234567890", 10, S("a1234567890"));
- test(S("abcdefghij"), 1, 10, "12345678901234567890", 0, S("a"));
- test(S("abcdefghij"), 1, 10, "12345678901234567890", 1, S("a1"));
- test(S("abcdefghij"), 1, 10, "12345678901234567890", 10, S("a1234567890"));
- test(S("abcdefghij"), 1, 10, "12345678901234567890", 19, S("a1234567890123456789"));
- test(S("abcdefghij"), 1, 10, "12345678901234567890", 20, S("a12345678901234567890"));
- test(S("abcdefghij"), 5, 0, "", 0, S("abcdefghij"));
- test(S("abcdefghij"), 5, 0, "12345", 0, S("abcdefghij"));
- test(S("abcdefghij"), 5, 0, "12345", 1, S("abcde1fghij"));
- test(S("abcdefghij"), 5, 0, "12345", 2, S("abcde12fghij"));
- test(S("abcdefghij"), 5, 0, "12345", 4, S("abcde1234fghij"));
- test(S("abcdefghij"), 5, 0, "12345", 5, S("abcde12345fghij"));
- test(S("abcdefghij"), 5, 0, "1234567890", 0, S("abcdefghij"));
- test(S("abcdefghij"), 5, 0, "1234567890", 1, S("abcde1fghij"));
- test(S("abcdefghij"), 5, 0, "1234567890", 5, S("abcde12345fghij"));
- test(S("abcdefghij"), 5, 0, "1234567890", 9, S("abcde123456789fghij"));
- test(S("abcdefghij"), 5, 0, "1234567890", 10, S("abcde1234567890fghij"));
- test(S("abcdefghij"), 5, 0, "12345678901234567890", 0, S("abcdefghij"));
- test(S("abcdefghij"), 5, 0, "12345678901234567890", 1, S("abcde1fghij"));
- test(S("abcdefghij"), 5, 0, "12345678901234567890", 10, S("abcde1234567890fghij"));
- test(S("abcdefghij"), 5, 0, "12345678901234567890", 19, S("abcde1234567890123456789fghij"));
- test(S("abcdefghij"), 5, 0, "12345678901234567890", 20, S("abcde12345678901234567890fghij"));
- test(S("abcdefghij"), 5, 1, "", 0, S("abcdeghij"));
- test(S("abcdefghij"), 5, 1, "12345", 0, S("abcdeghij"));
- test(S("abcdefghij"), 5, 1, "12345", 1, S("abcde1ghij"));
- test(S("abcdefghij"), 5, 1, "12345", 2, S("abcde12ghij"));
- test(S("abcdefghij"), 5, 1, "12345", 4, S("abcde1234ghij"));
- test(S("abcdefghij"), 5, 1, "12345", 5, S("abcde12345ghij"));
- test(S("abcdefghij"), 5, 1, "1234567890", 0, S("abcdeghij"));
- test(S("abcdefghij"), 5, 1, "1234567890", 1, S("abcde1ghij"));
- test(S("abcdefghij"), 5, 1, "1234567890", 5, S("abcde12345ghij"));
- test(S("abcdefghij"), 5, 1, "1234567890", 9, S("abcde123456789ghij"));
- test(S("abcdefghij"), 5, 1, "1234567890", 10, S("abcde1234567890ghij"));
- test(S("abcdefghij"), 5, 1, "12345678901234567890", 0, S("abcdeghij"));
- test(S("abcdefghij"), 5, 1, "12345678901234567890", 1, S("abcde1ghij"));
- test(S("abcdefghij"), 5, 1, "12345678901234567890", 10, S("abcde1234567890ghij"));
- test(S("abcdefghij"), 5, 1, "12345678901234567890", 19, S("abcde1234567890123456789ghij"));
- test(S("abcdefghij"), 5, 1, "12345678901234567890", 20, S("abcde12345678901234567890ghij"));
- test(S("abcdefghij"), 5, 2, "", 0, S("abcdehij"));
- test(S("abcdefghij"), 5, 2, "12345", 0, S("abcdehij"));
- test(S("abcdefghij"), 5, 2, "12345", 1, S("abcde1hij"));
- test(S("abcdefghij"), 5, 2, "12345", 2, S("abcde12hij"));
- test(S("abcdefghij"), 5, 2, "12345", 4, S("abcde1234hij"));
- test(S("abcdefghij"), 5, 2, "12345", 5, S("abcde12345hij"));
- test(S("abcdefghij"), 5, 2, "1234567890", 0, S("abcdehij"));
- test(S("abcdefghij"), 5, 2, "1234567890", 1, S("abcde1hij"));
- test(S("abcdefghij"), 5, 2, "1234567890", 5, S("abcde12345hij"));
- test(S("abcdefghij"), 5, 2, "1234567890", 9, S("abcde123456789hij"));
- test(S("abcdefghij"), 5, 2, "1234567890", 10, S("abcde1234567890hij"));
- test(S("abcdefghij"), 5, 2, "12345678901234567890", 0, S("abcdehij"));
- test(S("abcdefghij"), 5, 2, "12345678901234567890", 1, S("abcde1hij"));
- test(S("abcdefghij"), 5, 2, "12345678901234567890", 10, S("abcde1234567890hij"));
- test(S("abcdefghij"), 5, 2, "12345678901234567890", 19, S("abcde1234567890123456789hij"));
- test(S("abcdefghij"), 5, 2, "12345678901234567890", 20, S("abcde12345678901234567890hij"));
- test(S("abcdefghij"), 5, 4, "", 0, S("abcdej"));
- test(S("abcdefghij"), 5, 4, "12345", 0, S("abcdej"));
- test(S("abcdefghij"), 5, 4, "12345", 1, S("abcde1j"));
- test(S("abcdefghij"), 5, 4, "12345", 2, S("abcde12j"));
- test(S("abcdefghij"), 5, 4, "12345", 4, S("abcde1234j"));
- test(S("abcdefghij"), 5, 4, "12345", 5, S("abcde12345j"));
- test(S("abcdefghij"), 5, 4, "1234567890", 0, S("abcdej"));
- test(S("abcdefghij"), 5, 4, "1234567890", 1, S("abcde1j"));
- test(S("abcdefghij"), 5, 4, "1234567890", 5, S("abcde12345j"));
- test(S("abcdefghij"), 5, 4, "1234567890", 9, S("abcde123456789j"));
- test(S("abcdefghij"), 5, 4, "1234567890", 10, S("abcde1234567890j"));
- test(S("abcdefghij"), 5, 4, "12345678901234567890", 0, S("abcdej"));
- test(S("abcdefghij"), 5, 4, "12345678901234567890", 1, S("abcde1j"));
- test(S("abcdefghij"), 5, 4, "12345678901234567890", 10, S("abcde1234567890j"));
- test(S("abcdefghij"), 5, 4, "12345678901234567890", 19, S("abcde1234567890123456789j"));
- test(S("abcdefghij"), 5, 4, "12345678901234567890", 20, S("abcde12345678901234567890j"));
- test(S("abcdefghij"), 5, 5, "", 0, S("abcde"));
- test(S("abcdefghij"), 5, 5, "12345", 0, S("abcde"));
- test(S("abcdefghij"), 5, 5, "12345", 1, S("abcde1"));
- test(S("abcdefghij"), 5, 5, "12345", 2, S("abcde12"));
- test(S("abcdefghij"), 5, 5, "12345", 4, S("abcde1234"));
- test(S("abcdefghij"), 5, 5, "12345", 5, S("abcde12345"));
- test(S("abcdefghij"), 5, 5, "1234567890", 0, S("abcde"));
- test(S("abcdefghij"), 5, 5, "1234567890", 1, S("abcde1"));
- test(S("abcdefghij"), 5, 5, "1234567890", 5, S("abcde12345"));
- test(S("abcdefghij"), 5, 5, "1234567890", 9, S("abcde123456789"));
- test(S("abcdefghij"), 5, 5, "1234567890", 10, S("abcde1234567890"));
- test(S("abcdefghij"), 5, 5, "12345678901234567890", 0, S("abcde"));
- test(S("abcdefghij"), 5, 5, "12345678901234567890", 1, S("abcde1"));
- test(S("abcdefghij"), 5, 5, "12345678901234567890", 10, S("abcde1234567890"));
- test(S("abcdefghij"), 5, 5, "12345678901234567890", 19, S("abcde1234567890123456789"));
- test(S("abcdefghij"), 5, 5, "12345678901234567890", 20, S("abcde12345678901234567890"));
- test(S("abcdefghij"), 5, 6, "", 0, S("abcde"));
- test(S("abcdefghij"), 5, 6, "12345", 0, S("abcde"));
- test(S("abcdefghij"), 5, 6, "12345", 1, S("abcde1"));
- test(S("abcdefghij"), 5, 6, "12345", 2, S("abcde12"));
- test(S("abcdefghij"), 5, 6, "12345", 4, S("abcde1234"));
- test(S("abcdefghij"), 5, 6, "12345", 5, S("abcde12345"));
- test(S("abcdefghij"), 5, 6, "1234567890", 0, S("abcde"));
- test(S("abcdefghij"), 5, 6, "1234567890", 1, S("abcde1"));
- test(S("abcdefghij"), 5, 6, "1234567890", 5, S("abcde12345"));
- test(S("abcdefghij"), 5, 6, "1234567890", 9, S("abcde123456789"));
- test(S("abcdefghij"), 5, 6, "1234567890", 10, S("abcde1234567890"));
- test(S("abcdefghij"), 5, 6, "12345678901234567890", 0, S("abcde"));
+TEST_CONSTEXPR_CXX20 bool test6() {
+ test(S("abcdefghij"), 1, 10, "1234567890", 5, S("a12345"));
+ test(S("abcdefghij"), 1, 10, "1234567890", 9, S("a123456789"));
+ test(S("abcdefghij"), 1, 10, "1234567890", 10, S("a1234567890"));
+ test(S("abcdefghij"), 1, 10, "12345678901234567890", 0, S("a"));
+ test(S("abcdefghij"), 1, 10, "12345678901234567890", 1, S("a1"));
+ test(S("abcdefghij"), 1, 10, "12345678901234567890", 10, S("a1234567890"));
+ test(S("abcdefghij"), 1, 10, "12345678901234567890", 19, S("a1234567890123456789"));
+ test(S("abcdefghij"), 1, 10, "12345678901234567890", 20, S("a12345678901234567890"));
+ test(S("abcdefghij"), 5, 0, "", 0, S("abcdefghij"));
+ test(S("abcdefghij"), 5, 0, "12345", 0, S("abcdefghij"));
+ test(S("abcdefghij"), 5, 0, "12345", 1, S("abcde1fghij"));
+ test(S("abcdefghij"), 5, 0, "12345", 2, S("abcde12fghij"));
+ test(S("abcdefghij"), 5, 0, "12345", 4, S("abcde1234fghij"));
+ test(S("abcdefghij"), 5, 0, "12345", 5, S("abcde12345fghij"));
+ test(S("abcdefghij"), 5, 0, "1234567890", 0, S("abcdefghij"));
+ test(S("abcdefghij"), 5, 0, "1234567890", 1, S("abcde1fghij"));
+ test(S("abcdefghij"), 5, 0, "1234567890", 5, S("abcde12345fghij"));
+ test(S("abcdefghij"), 5, 0, "1234567890", 9, S("abcde123456789fghij"));
+ test(S("abcdefghij"), 5, 0, "1234567890", 10, S("abcde1234567890fghij"));
+ test(S("abcdefghij"), 5, 0, "12345678901234567890", 0, S("abcdefghij"));
+ test(S("abcdefghij"), 5, 0, "12345678901234567890", 1, S("abcde1fghij"));
+ test(S("abcdefghij"), 5, 0, "12345678901234567890", 10, S("abcde1234567890fghij"));
+ test(S("abcdefghij"), 5, 0, "12345678901234567890", 19, S("abcde1234567890123456789fghij"));
+ test(S("abcdefghij"), 5, 0, "12345678901234567890", 20, S("abcde12345678901234567890fghij"));
+ test(S("abcdefghij"), 5, 1, "", 0, S("abcdeghij"));
+ test(S("abcdefghij"), 5, 1, "12345", 0, S("abcdeghij"));
+ test(S("abcdefghij"), 5, 1, "12345", 1, S("abcde1ghij"));
+ test(S("abcdefghij"), 5, 1, "12345", 2, S("abcde12ghij"));
+ test(S("abcdefghij"), 5, 1, "12345", 4, S("abcde1234ghij"));
+ test(S("abcdefghij"), 5, 1, "12345", 5, S("abcde12345ghij"));
+ test(S("abcdefghij"), 5, 1, "1234567890", 0, S("abcdeghij"));
+ test(S("abcdefghij"), 5, 1, "1234567890", 1, S("abcde1ghij"));
+ test(S("abcdefghij"), 5, 1, "1234567890", 5, S("abcde12345ghij"));
+ test(S("abcdefghij"), 5, 1, "1234567890", 9, S("abcde123456789ghij"));
+ test(S("abcdefghij"), 5, 1, "1234567890", 10, S("abcde1234567890ghij"));
+ test(S("abcdefghij"), 5, 1, "12345678901234567890", 0, S("abcdeghij"));
+ test(S("abcdefghij"), 5, 1, "12345678901234567890", 1, S("abcde1ghij"));
+ test(S("abcdefghij"), 5, 1, "12345678901234567890", 10, S("abcde1234567890ghij"));
+ test(S("abcdefghij"), 5, 1, "12345678901234567890", 19, S("abcde1234567890123456789ghij"));
+ test(S("abcdefghij"), 5, 1, "12345678901234567890", 20, S("abcde12345678901234567890ghij"));
+ test(S("abcdefghij"), 5, 2, "", 0, S("abcdehij"));
+ test(S("abcdefghij"), 5, 2, "12345", 0, S("abcdehij"));
+ test(S("abcdefghij"), 5, 2, "12345", 1, S("abcde1hij"));
+ test(S("abcdefghij"), 5, 2, "12345", 2, S("abcde12hij"));
+ test(S("abcdefghij"), 5, 2, "12345", 4, S("abcde1234hij"));
+ test(S("abcdefghij"), 5, 2, "12345", 5, S("abcde12345hij"));
+ test(S("abcdefghij"), 5, 2, "1234567890", 0, S("abcdehij"));
+ test(S("abcdefghij"), 5, 2, "1234567890", 1, S("abcde1hij"));
+ test(S("abcdefghij"), 5, 2, "1234567890", 5, S("abcde12345hij"));
+ test(S("abcdefghij"), 5, 2, "1234567890", 9, S("abcde123456789hij"));
+ test(S("abcdefghij"), 5, 2, "1234567890", 10, S("abcde1234567890hij"));
+ test(S("abcdefghij"), 5, 2, "12345678901234567890", 0, S("abcdehij"));
+ test(S("abcdefghij"), 5, 2, "12345678901234567890", 1, S("abcde1hij"));
+ test(S("abcdefghij"), 5, 2, "12345678901234567890", 10, S("abcde1234567890hij"));
+ test(S("abcdefghij"), 5, 2, "12345678901234567890", 19, S("abcde1234567890123456789hij"));
+ test(S("abcdefghij"), 5, 2, "12345678901234567890", 20, S("abcde12345678901234567890hij"));
+ test(S("abcdefghij"), 5, 4, "", 0, S("abcdej"));
+ test(S("abcdefghij"), 5, 4, "12345", 0, S("abcdej"));
+ test(S("abcdefghij"), 5, 4, "12345", 1, S("abcde1j"));
+ test(S("abcdefghij"), 5, 4, "12345", 2, S("abcde12j"));
+ test(S("abcdefghij"), 5, 4, "12345", 4, S("abcde1234j"));
+ test(S("abcdefghij"), 5, 4, "12345", 5, S("abcde12345j"));
+ test(S("abcdefghij"), 5, 4, "1234567890", 0, S("abcdej"));
+ test(S("abcdefghij"), 5, 4, "1234567890", 1, S("abcde1j"));
+ test(S("abcdefghij"), 5, 4, "1234567890", 5, S("abcde12345j"));
+ test(S("abcdefghij"), 5, 4, "1234567890", 9, S("abcde123456789j"));
+ test(S("abcdefghij"), 5, 4, "1234567890", 10, S("abcde1234567890j"));
+ test(S("abcdefghij"), 5, 4, "12345678901234567890", 0, S("abcdej"));
+ test(S("abcdefghij"), 5, 4, "12345678901234567890", 1, S("abcde1j"));
+ test(S("abcdefghij"), 5, 4, "12345678901234567890", 10, S("abcde1234567890j"));
+ test(S("abcdefghij"), 5, 4, "12345678901234567890", 19, S("abcde1234567890123456789j"));
+ test(S("abcdefghij"), 5, 4, "12345678901234567890", 20, S("abcde12345678901234567890j"));
+ test(S("abcdefghij"), 5, 5, "", 0, S("abcde"));
+ test(S("abcdefghij"), 5, 5, "12345", 0, S("abcde"));
+ test(S("abcdefghij"), 5, 5, "12345", 1, S("abcde1"));
+ test(S("abcdefghij"), 5, 5, "12345", 2, S("abcde12"));
+ test(S("abcdefghij"), 5, 5, "12345", 4, S("abcde1234"));
+ test(S("abcdefghij"), 5, 5, "12345", 5, S("abcde12345"));
+ test(S("abcdefghij"), 5, 5, "1234567890", 0, S("abcde"));
+ test(S("abcdefghij"), 5, 5, "1234567890", 1, S("abcde1"));
+ test(S("abcdefghij"), 5, 5, "1234567890", 5, S("abcde12345"));
+ test(S("abcdefghij"), 5, 5, "1234567890", 9, S("abcde123456789"));
+ test(S("abcdefghij"), 5, 5, "1234567890", 10, S("abcde1234567890"));
+ test(S("abcdefghij"), 5, 5, "12345678901234567890", 0, S("abcde"));
+ test(S("abcdefghij"), 5, 5, "12345678901234567890", 1, S("abcde1"));
+ test(S("abcdefghij"), 5, 5, "12345678901234567890", 10, S("abcde1234567890"));
+ test(S("abcdefghij"), 5, 5, "12345678901234567890", 19, S("abcde1234567890123456789"));
+ test(S("abcdefghij"), 5, 5, "12345678901234567890", 20, S("abcde12345678901234567890"));
+ test(S("abcdefghij"), 5, 6, "", 0, S("abcde"));
+ test(S("abcdefghij"), 5, 6, "12345", 0, S("abcde"));
+ test(S("abcdefghij"), 5, 6, "12345", 1, S("abcde1"));
+ test(S("abcdefghij"), 5, 6, "12345", 2, S("abcde12"));
+ test(S("abcdefghij"), 5, 6, "12345", 4, S("abcde1234"));
+ test(S("abcdefghij"), 5, 6, "12345", 5, S("abcde12345"));
+ test(S("abcdefghij"), 5, 6, "1234567890", 0, S("abcde"));
+ test(S("abcdefghij"), 5, 6, "1234567890", 1, S("abcde1"));
+ test(S("abcdefghij"), 5, 6, "1234567890", 5, S("abcde12345"));
+ test(S("abcdefghij"), 5, 6, "1234567890", 9, S("abcde123456789"));
+ test(S("abcdefghij"), 5, 6, "1234567890", 10, S("abcde1234567890"));
+ test(S("abcdefghij"), 5, 6, "12345678901234567890", 0, S("abcde"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test7()
-{
- test(S("abcdefghij"), 5, 6, "12345678901234567890", 1, S("abcde1"));
- test(S("abcdefghij"), 5, 6, "12345678901234567890", 10, S("abcde1234567890"));
- test(S("abcdefghij"), 5, 6, "12345678901234567890", 19, S("abcde1234567890123456789"));
- test(S("abcdefghij"), 5, 6, "12345678901234567890", 20, S("abcde12345678901234567890"));
- test(S("abcdefghij"), 9, 0, "", 0, S("abcdefghij"));
- test(S("abcdefghij"), 9, 0, "12345", 0, S("abcdefghij"));
- test(S("abcdefghij"), 9, 0, "12345", 1, S("abcdefghi1j"));
- test(S("abcdefghij"), 9, 0, "12345", 2, S("abcdefghi12j"));
- test(S("abcdefghij"), 9, 0, "12345", 4, S("abcdefghi1234j"));
- test(S("abcdefghij"), 9, 0, "12345", 5, S("abcdefghi12345j"));
- test(S("abcdefghij"), 9, 0, "1234567890", 0, S("abcdefghij"));
- test(S("abcdefghij"), 9, 0, "1234567890", 1, S("abcdefghi1j"));
- test(S("abcdefghij"), 9, 0, "1234567890", 5, S("abcdefghi12345j"));
- test(S("abcdefghij"), 9, 0, "1234567890", 9, S("abcdefghi123456789j"));
- test(S("abcdefghij"), 9, 0, "1234567890", 10, S("abcdefghi1234567890j"));
- test(S("abcdefghij"), 9, 0, "12345678901234567890", 0, S("abcdefghij"));
- test(S("abcdefghij"), 9, 0, "12345678901234567890", 1, S("abcdefghi1j"));
- test(S("abcdefghij"), 9, 0, "12345678901234567890", 10, S("abcdefghi1234567890j"));
- test(S("abcdefghij"), 9, 0, "12345678901234567890", 19, S("abcdefghi1234567890123456789j"));
- test(S("abcdefghij"), 9, 0, "12345678901234567890", 20, S("abcdefghi12345678901234567890j"));
- test(S("abcdefghij"), 9, 1, "", 0, S("abcdefghi"));
- test(S("abcdefghij"), 9, 1, "12345", 0, S("abcdefghi"));
- test(S("abcdefghij"), 9, 1, "12345", 1, S("abcdefghi1"));
- test(S("abcdefghij"), 9, 1, "12345", 2, S("abcdefghi12"));
- test(S("abcdefghij"), 9, 1, "12345", 4, S("abcdefghi1234"));
- test(S("abcdefghij"), 9, 1, "12345", 5, S("abcdefghi12345"));
- test(S("abcdefghij"), 9, 1, "1234567890", 0, S("abcdefghi"));
- test(S("abcdefghij"), 9, 1, "1234567890", 1, S("abcdefghi1"));
- test(S("abcdefghij"), 9, 1, "1234567890", 5, S("abcdefghi12345"));
- test(S("abcdefghij"), 9, 1, "1234567890", 9, S("abcdefghi123456789"));
- test(S("abcdefghij"), 9, 1, "1234567890", 10, S("abcdefghi1234567890"));
- test(S("abcdefghij"), 9, 1, "12345678901234567890", 0, S("abcdefghi"));
- test(S("abcdefghij"), 9, 1, "12345678901234567890", 1, S("abcdefghi1"));
- test(S("abcdefghij"), 9, 1, "12345678901234567890", 10, S("abcdefghi1234567890"));
- test(S("abcdefghij"), 9, 1, "12345678901234567890", 19, S("abcdefghi1234567890123456789"));
- test(S("abcdefghij"), 9, 1, "12345678901234567890", 20, S("abcdefghi12345678901234567890"));
- test(S("abcdefghij"), 9, 2, "", 0, S("abcdefghi"));
- test(S("abcdefghij"), 9, 2, "12345", 0, S("abcdefghi"));
- test(S("abcdefghij"), 9, 2, "12345", 1, S("abcdefghi1"));
- test(S("abcdefghij"), 9, 2, "12345", 2, S("abcdefghi12"));
- test(S("abcdefghij"), 9, 2, "12345", 4, S("abcdefghi1234"));
- test(S("abcdefghij"), 9, 2, "12345", 5, S("abcdefghi12345"));
- test(S("abcdefghij"), 9, 2, "1234567890", 0, S("abcdefghi"));
- test(S("abcdefghij"), 9, 2, "1234567890", 1, S("abcdefghi1"));
- test(S("abcdefghij"), 9, 2, "1234567890", 5, S("abcdefghi12345"));
- test(S("abcdefghij"), 9, 2, "1234567890", 9, S("abcdefghi123456789"));
- test(S("abcdefghij"), 9, 2, "1234567890", 10, S("abcdefghi1234567890"));
- test(S("abcdefghij"), 9, 2, "12345678901234567890", 0, S("abcdefghi"));
- test(S("abcdefghij"), 9, 2, "12345678901234567890", 1, S("abcdefghi1"));
- test(S("abcdefghij"), 9, 2, "12345678901234567890", 10, S("abcdefghi1234567890"));
- test(S("abcdefghij"), 9, 2, "12345678901234567890", 19, S("abcdefghi1234567890123456789"));
- test(S("abcdefghij"), 9, 2, "12345678901234567890", 20, S("abcdefghi12345678901234567890"));
- test(S("abcdefghij"), 10, 0, "", 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, 0, "12345", 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, 0, "12345", 1, S("abcdefghij1"));
- test(S("abcdefghij"), 10, 0, "12345", 2, S("abcdefghij12"));
- test(S("abcdefghij"), 10, 0, "12345", 4, S("abcdefghij1234"));
- test(S("abcdefghij"), 10, 0, "12345", 5, S("abcdefghij12345"));
- test(S("abcdefghij"), 10, 0, "1234567890", 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, 0, "1234567890", 1, S("abcdefghij1"));
- test(S("abcdefghij"), 10, 0, "1234567890", 5, S("abcdefghij12345"));
- test(S("abcdefghij"), 10, 0, "1234567890", 9, S("abcdefghij123456789"));
- test(S("abcdefghij"), 10, 0, "1234567890", 10, S("abcdefghij1234567890"));
- test(S("abcdefghij"), 10, 0, "12345678901234567890", 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, 0, "12345678901234567890", 1, S("abcdefghij1"));
- test(S("abcdefghij"), 10, 0, "12345678901234567890", 10, S("abcdefghij1234567890"));
- test(S("abcdefghij"), 10, 0, "12345678901234567890", 19, S("abcdefghij1234567890123456789"));
- test(S("abcdefghij"), 10, 0, "12345678901234567890", 20, S("abcdefghij12345678901234567890"));
- test(S("abcdefghij"), 10, 1, "", 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, 1, "12345", 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, 1, "12345", 1, S("abcdefghij1"));
- test(S("abcdefghij"), 10, 1, "12345", 2, S("abcdefghij12"));
- test(S("abcdefghij"), 10, 1, "12345", 4, S("abcdefghij1234"));
- test(S("abcdefghij"), 10, 1, "12345", 5, S("abcdefghij12345"));
- test(S("abcdefghij"), 10, 1, "1234567890", 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, 1, "1234567890", 1, S("abcdefghij1"));
- test(S("abcdefghij"), 10, 1, "1234567890", 5, S("abcdefghij12345"));
- test(S("abcdefghij"), 10, 1, "1234567890", 9, S("abcdefghij123456789"));
- test(S("abcdefghij"), 10, 1, "1234567890", 10, S("abcdefghij1234567890"));
- test(S("abcdefghij"), 10, 1, "12345678901234567890", 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, 1, "12345678901234567890", 1, S("abcdefghij1"));
- test(S("abcdefghij"), 10, 1, "12345678901234567890", 10, S("abcdefghij1234567890"));
- test(S("abcdefghij"), 10, 1, "12345678901234567890", 19, S("abcdefghij1234567890123456789"));
- test(S("abcdefghij"), 10, 1, "12345678901234567890", 20, S("abcdefghij12345678901234567890"));
- test(S("abcdefghij"), 11, 0, "", 0, S("can't happen"));
- test(S("abcdefghij"), 11, 0, "12345", 0, S("can't happen"));
- test(S("abcdefghij"), 11, 0, "12345", 1, S("can't happen"));
- test(S("abcdefghij"), 11, 0, "12345", 2, S("can't happen"));
- test(S("abcdefghij"), 11, 0, "12345", 4, S("can't happen"));
- test(S("abcdefghij"), 11, 0, "12345", 5, S("can't happen"));
- test(S("abcdefghij"), 11, 0, "1234567890", 0, S("can't happen"));
- test(S("abcdefghij"), 11, 0, "1234567890", 1, S("can't happen"));
- test(S("abcdefghij"), 11, 0, "1234567890", 5, S("can't happen"));
- test(S("abcdefghij"), 11, 0, "1234567890", 9, S("can't happen"));
- test(S("abcdefghij"), 11, 0, "1234567890", 10, S("can't happen"));
- test(S("abcdefghij"), 11, 0, "12345678901234567890", 0, S("can't happen"));
- test(S("abcdefghij"), 11, 0, "12345678901234567890", 1, S("can't happen"));
- test(S("abcdefghij"), 11, 0, "12345678901234567890", 10, S("can't happen"));
- test(S("abcdefghij"), 11, 0, "12345678901234567890", 19, S("can't happen"));
- test(S("abcdefghij"), 11, 0, "12345678901234567890", 20, S("can't happen"));
+TEST_CONSTEXPR_CXX20 bool test7() {
+ test(S("abcdefghij"), 5, 6, "12345678901234567890", 1, S("abcde1"));
+ test(S("abcdefghij"), 5, 6, "12345678901234567890", 10, S("abcde1234567890"));
+ test(S("abcdefghij"), 5, 6, "12345678901234567890", 19, S("abcde1234567890123456789"));
+ test(S("abcdefghij"), 5, 6, "12345678901234567890", 20, S("abcde12345678901234567890"));
+ test(S("abcdefghij"), 9, 0, "", 0, S("abcdefghij"));
+ test(S("abcdefghij"), 9, 0, "12345", 0, S("abcdefghij"));
+ test(S("abcdefghij"), 9, 0, "12345", 1, S("abcdefghi1j"));
+ test(S("abcdefghij"), 9, 0, "12345", 2, S("abcdefghi12j"));
+ test(S("abcdefghij"), 9, 0, "12345", 4, S("abcdefghi1234j"));
+ test(S("abcdefghij"), 9, 0, "12345", 5, S("abcdefghi12345j"));
+ test(S("abcdefghij"), 9, 0, "1234567890", 0, S("abcdefghij"));
+ test(S("abcdefghij"), 9, 0, "1234567890", 1, S("abcdefghi1j"));
+ test(S("abcdefghij"), 9, 0, "1234567890", 5, S("abcdefghi12345j"));
+ test(S("abcdefghij"), 9, 0, "1234567890", 9, S("abcdefghi123456789j"));
+ test(S("abcdefghij"), 9, 0, "1234567890", 10, S("abcdefghi1234567890j"));
+ test(S("abcdefghij"), 9, 0, "12345678901234567890", 0, S("abcdefghij"));
+ test(S("abcdefghij"), 9, 0, "12345678901234567890", 1, S("abcdefghi1j"));
+ test(S("abcdefghij"), 9, 0, "12345678901234567890", 10, S("abcdefghi1234567890j"));
+ test(S("abcdefghij"), 9, 0, "12345678901234567890", 19, S("abcdefghi1234567890123456789j"));
+ test(S("abcdefghij"), 9, 0, "12345678901234567890", 20, S("abcdefghi12345678901234567890j"));
+ test(S("abcdefghij"), 9, 1, "", 0, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 1, "12345", 0, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 1, "12345", 1, S("abcdefghi1"));
+ test(S("abcdefghij"), 9, 1, "12345", 2, S("abcdefghi12"));
+ test(S("abcdefghij"), 9, 1, "12345", 4, S("abcdefghi1234"));
+ test(S("abcdefghij"), 9, 1, "12345", 5, S("abcdefghi12345"));
+ test(S("abcdefghij"), 9, 1, "1234567890", 0, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 1, "1234567890", 1, S("abcdefghi1"));
+ test(S("abcdefghij"), 9, 1, "1234567890", 5, S("abcdefghi12345"));
+ test(S("abcdefghij"), 9, 1, "1234567890", 9, S("abcdefghi123456789"));
+ test(S("abcdefghij"), 9, 1, "1234567890", 10, S("abcdefghi1234567890"));
+ test(S("abcdefghij"), 9, 1, "12345678901234567890", 0, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 1, "12345678901234567890", 1, S("abcdefghi1"));
+ test(S("abcdefghij"), 9, 1, "12345678901234567890", 10, S("abcdefghi1234567890"));
+ test(S("abcdefghij"), 9, 1, "12345678901234567890", 19, S("abcdefghi1234567890123456789"));
+ test(S("abcdefghij"), 9, 1, "12345678901234567890", 20, S("abcdefghi12345678901234567890"));
+ test(S("abcdefghij"), 9, 2, "", 0, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 2, "12345", 0, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 2, "12345", 1, S("abcdefghi1"));
+ test(S("abcdefghij"), 9, 2, "12345", 2, S("abcdefghi12"));
+ test(S("abcdefghij"), 9, 2, "12345", 4, S("abcdefghi1234"));
+ test(S("abcdefghij"), 9, 2, "12345", 5, S("abcdefghi12345"));
+ test(S("abcdefghij"), 9, 2, "1234567890", 0, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 2, "1234567890", 1, S("abcdefghi1"));
+ test(S("abcdefghij"), 9, 2, "1234567890", 5, S("abcdefghi12345"));
+ test(S("abcdefghij"), 9, 2, "1234567890", 9, S("abcdefghi123456789"));
+ test(S("abcdefghij"), 9, 2, "1234567890", 10, S("abcdefghi1234567890"));
+ test(S("abcdefghij"), 9, 2, "12345678901234567890", 0, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 2, "12345678901234567890", 1, S("abcdefghi1"));
+ test(S("abcdefghij"), 9, 2, "12345678901234567890", 10, S("abcdefghi1234567890"));
+ test(S("abcdefghij"), 9, 2, "12345678901234567890", 19, S("abcdefghi1234567890123456789"));
+ test(S("abcdefghij"), 9, 2, "12345678901234567890", 20, S("abcdefghi12345678901234567890"));
+ test(S("abcdefghij"), 10, 0, "", 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 0, "12345", 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 0, "12345", 1, S("abcdefghij1"));
+ test(S("abcdefghij"), 10, 0, "12345", 2, S("abcdefghij12"));
+ test(S("abcdefghij"), 10, 0, "12345", 4, S("abcdefghij1234"));
+ test(S("abcdefghij"), 10, 0, "12345", 5, S("abcdefghij12345"));
+ test(S("abcdefghij"), 10, 0, "1234567890", 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 0, "1234567890", 1, S("abcdefghij1"));
+ test(S("abcdefghij"), 10, 0, "1234567890", 5, S("abcdefghij12345"));
+ test(S("abcdefghij"), 10, 0, "1234567890", 9, S("abcdefghij123456789"));
+ test(S("abcdefghij"), 10, 0, "1234567890", 10, S("abcdefghij1234567890"));
+ test(S("abcdefghij"), 10, 0, "12345678901234567890", 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 0, "12345678901234567890", 1, S("abcdefghij1"));
+ test(S("abcdefghij"), 10, 0, "12345678901234567890", 10, S("abcdefghij1234567890"));
+ test(S("abcdefghij"), 10, 0, "12345678901234567890", 19, S("abcdefghij1234567890123456789"));
+ test(S("abcdefghij"), 10, 0, "12345678901234567890", 20, S("abcdefghij12345678901234567890"));
+ test(S("abcdefghij"), 10, 1, "", 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 1, "12345", 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 1, "12345", 1, S("abcdefghij1"));
+ test(S("abcdefghij"), 10, 1, "12345", 2, S("abcdefghij12"));
+ test(S("abcdefghij"), 10, 1, "12345", 4, S("abcdefghij1234"));
+ test(S("abcdefghij"), 10, 1, "12345", 5, S("abcdefghij12345"));
+ test(S("abcdefghij"), 10, 1, "1234567890", 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 1, "1234567890", 1, S("abcdefghij1"));
+ test(S("abcdefghij"), 10, 1, "1234567890", 5, S("abcdefghij12345"));
+ test(S("abcdefghij"), 10, 1, "1234567890", 9, S("abcdefghij123456789"));
+ test(S("abcdefghij"), 10, 1, "1234567890", 10, S("abcdefghij1234567890"));
+ test(S("abcdefghij"), 10, 1, "12345678901234567890", 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 1, "12345678901234567890", 1, S("abcdefghij1"));
+ test(S("abcdefghij"), 10, 1, "12345678901234567890", 10, S("abcdefghij1234567890"));
+ test(S("abcdefghij"), 10, 1, "12345678901234567890", 19, S("abcdefghij1234567890123456789"));
+ test(S("abcdefghij"), 10, 1, "12345678901234567890", 20, S("abcdefghij12345678901234567890"));
+ test(S("abcdefghij"), 11, 0, "", 0, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, "12345", 0, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, "12345", 1, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, "12345", 2, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, "12345", 4, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, "12345", 5, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, "1234567890", 0, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, "1234567890", 1, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, "1234567890", 5, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, "1234567890", 9, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, "1234567890", 10, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, "12345678901234567890", 0, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, "12345678901234567890", 1, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, "12345678901234567890", 10, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, "12345678901234567890", 19, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, "12345678901234567890", 20, S("can't happen"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test8()
-{
- test(S("abcdefghijklmnopqrst"), 0, 0, "", 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, "12345", 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, "12345", 1, S("1abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, "12345", 2, S("12abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, "12345", 4, S("1234abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, "12345", 5, S("12345abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, "1234567890", 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, "1234567890", 1, S("1abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, "1234567890", 5, S("12345abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, "1234567890", 9, S("123456789abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, "1234567890", 10, S("1234567890abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, "12345678901234567890", 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, "12345678901234567890", 1, S("1abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, "12345678901234567890", 10, S("1234567890abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, "12345678901234567890", 19, S("1234567890123456789abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, "12345678901234567890", 20, S("12345678901234567890abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, "", 0, S("bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, "12345", 0, S("bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, "12345", 1, S("1bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, "12345", 2, S("12bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, "12345", 4, S("1234bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, "12345", 5, S("12345bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, "1234567890", 0, S("bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, "1234567890", 1, S("1bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, "1234567890", 5, S("12345bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, "1234567890", 9, S("123456789bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, "1234567890", 10, S("1234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, "12345678901234567890", 0, S("bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, "12345678901234567890", 1, S("1bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, "12345678901234567890", 10, S("1234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, "12345678901234567890", 19, S("1234567890123456789bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, "12345678901234567890", 20, S("12345678901234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, "", 0, S("klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, "12345", 0, S("klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, "12345", 1, S("1klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, "12345", 2, S("12klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, "12345", 4, S("1234klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, "12345", 5, S("12345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, "1234567890", 0, S("klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, "1234567890", 1, S("1klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, "1234567890", 5, S("12345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, "1234567890", 9, S("123456789klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, "1234567890", 10, S("1234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, "12345678901234567890", 0, S("klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, "12345678901234567890", 1, S("1klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, "12345678901234567890", 10, S("1234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, "12345678901234567890", 19, S("1234567890123456789klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, "12345678901234567890", 20, S("12345678901234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 19, "", 0, S("t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, "12345", 0, S("t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, "12345", 1, S("1t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, "12345", 2, S("12t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, "12345", 4, S("1234t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, "12345", 5, S("12345t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, "1234567890", 0, S("t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, "1234567890", 1, S("1t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, "1234567890", 5, S("12345t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, "1234567890", 9, S("123456789t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, "1234567890", 10, S("1234567890t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, "12345678901234567890", 0, S("t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, "12345678901234567890", 1, S("1t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, "12345678901234567890", 10, S("1234567890t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, "12345678901234567890", 19, S("1234567890123456789t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, "12345678901234567890", 20, S("12345678901234567890t"));
- test(S("abcdefghijklmnopqrst"), 0, 20, "", 0, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 20, "12345", 0, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 20, "12345", 1, S("1"));
- test(S("abcdefghijklmnopqrst"), 0, 20, "12345", 2, S("12"));
- test(S("abcdefghijklmnopqrst"), 0, 20, "12345", 4, S("1234"));
- test(S("abcdefghijklmnopqrst"), 0, 20, "12345", 5, S("12345"));
- test(S("abcdefghijklmnopqrst"), 0, 20, "1234567890", 0, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 20, "1234567890", 1, S("1"));
- test(S("abcdefghijklmnopqrst"), 0, 20, "1234567890", 5, S("12345"));
- test(S("abcdefghijklmnopqrst"), 0, 20, "1234567890", 9, S("123456789"));
- test(S("abcdefghijklmnopqrst"), 0, 20, "1234567890", 10, S("1234567890"));
- test(S("abcdefghijklmnopqrst"), 0, 20, "12345678901234567890", 0, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 20, "12345678901234567890", 1, S("1"));
- test(S("abcdefghijklmnopqrst"), 0, 20, "12345678901234567890", 10, S("1234567890"));
- test(S("abcdefghijklmnopqrst"), 0, 20, "12345678901234567890", 19, S("1234567890123456789"));
- test(S("abcdefghijklmnopqrst"), 0, 20, "12345678901234567890", 20, S("12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 0, 21, "", 0, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 21, "12345", 0, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 21, "12345", 1, S("1"));
- test(S("abcdefghijklmnopqrst"), 0, 21, "12345", 2, S("12"));
- test(S("abcdefghijklmnopqrst"), 0, 21, "12345", 4, S("1234"));
- test(S("abcdefghijklmnopqrst"), 0, 21, "12345", 5, S("12345"));
- test(S("abcdefghijklmnopqrst"), 0, 21, "1234567890", 0, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 21, "1234567890", 1, S("1"));
- test(S("abcdefghijklmnopqrst"), 0, 21, "1234567890", 5, S("12345"));
- test(S("abcdefghijklmnopqrst"), 0, 21, "1234567890", 9, S("123456789"));
- test(S("abcdefghijklmnopqrst"), 0, 21, "1234567890", 10, S("1234567890"));
- test(S("abcdefghijklmnopqrst"), 0, 21, "12345678901234567890", 0, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 21, "12345678901234567890", 1, S("1"));
- test(S("abcdefghijklmnopqrst"), 0, 21, "12345678901234567890", 10, S("1234567890"));
- test(S("abcdefghijklmnopqrst"), 0, 21, "12345678901234567890", 19, S("1234567890123456789"));
- test(S("abcdefghijklmnopqrst"), 0, 21, "12345678901234567890", 20, S("12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 1, 0, "", 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, "12345", 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, "12345", 1, S("a1bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, "12345", 2, S("a12bcdefghijklmnopqrst"));
+TEST_CONSTEXPR_CXX20 bool test8() {
+ test(S("abcdefghijklmnopqrst"), 0, 0, "", 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, "12345", 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, "12345", 1, S("1abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, "12345", 2, S("12abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, "12345", 4, S("1234abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, "12345", 5, S("12345abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, "1234567890", 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, "1234567890", 1, S("1abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, "1234567890", 5, S("12345abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, "1234567890", 9, S("123456789abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, "1234567890", 10, S("1234567890abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, "12345678901234567890", 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, "12345678901234567890", 1, S("1abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, "12345678901234567890", 10, S("1234567890abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, "12345678901234567890", 19, S("1234567890123456789abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, "12345678901234567890", 20, S("12345678901234567890abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, "", 0, S("bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, "12345", 0, S("bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, "12345", 1, S("1bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, "12345", 2, S("12bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, "12345", 4, S("1234bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, "12345", 5, S("12345bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, "1234567890", 0, S("bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, "1234567890", 1, S("1bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, "1234567890", 5, S("12345bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, "1234567890", 9, S("123456789bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, "1234567890", 10, S("1234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, "12345678901234567890", 0, S("bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, "12345678901234567890", 1, S("1bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, "12345678901234567890", 10, S("1234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, "12345678901234567890", 19, S("1234567890123456789bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, "12345678901234567890", 20, S("12345678901234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, "", 0, S("klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, "12345", 0, S("klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, "12345", 1, S("1klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, "12345", 2, S("12klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, "12345", 4, S("1234klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, "12345", 5, S("12345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, "1234567890", 0, S("klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, "1234567890", 1, S("1klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, "1234567890", 5, S("12345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, "1234567890", 9, S("123456789klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, "1234567890", 10, S("1234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, "12345678901234567890", 0, S("klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, "12345678901234567890", 1, S("1klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, "12345678901234567890", 10, S("1234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, "12345678901234567890", 19, S("1234567890123456789klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, "12345678901234567890", 20, S("12345678901234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, "", 0, S("t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, "12345", 0, S("t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, "12345", 1, S("1t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, "12345", 2, S("12t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, "12345", 4, S("1234t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, "12345", 5, S("12345t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, "1234567890", 0, S("t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, "1234567890", 1, S("1t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, "1234567890", 5, S("12345t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, "1234567890", 9, S("123456789t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, "1234567890", 10, S("1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, "12345678901234567890", 0, S("t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, "12345678901234567890", 1, S("1t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, "12345678901234567890", 10, S("1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, "12345678901234567890", 19, S("1234567890123456789t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, "12345678901234567890", 20, S("12345678901234567890t"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, "", 0, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 20, "12345", 0, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 20, "12345", 1, S("1"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, "12345", 2, S("12"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, "12345", 4, S("1234"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, "12345", 5, S("12345"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, "1234567890", 0, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 20, "1234567890", 1, S("1"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, "1234567890", 5, S("12345"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, "1234567890", 9, S("123456789"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, "1234567890", 10, S("1234567890"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, "12345678901234567890", 0, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 20, "12345678901234567890", 1, S("1"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, "12345678901234567890", 10, S("1234567890"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, "12345678901234567890", 19, S("1234567890123456789"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, "12345678901234567890", 20, S("12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, "", 0, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 21, "12345", 0, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 21, "12345", 1, S("1"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, "12345", 2, S("12"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, "12345", 4, S("1234"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, "12345", 5, S("12345"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, "1234567890", 0, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 21, "1234567890", 1, S("1"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, "1234567890", 5, S("12345"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, "1234567890", 9, S("123456789"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, "1234567890", 10, S("1234567890"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, "12345678901234567890", 0, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 21, "12345678901234567890", 1, S("1"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, "12345678901234567890", 10, S("1234567890"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, "12345678901234567890", 19, S("1234567890123456789"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, "12345678901234567890", 20, S("12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, "", 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, "12345", 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, "12345", 1, S("a1bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, "12345", 2, S("a12bcdefghijklmnopqrst"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test9()
-{
- test(S("abcdefghijklmnopqrst"), 1, 0, "12345", 4, S("a1234bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, "12345", 5, S("a12345bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, "1234567890", 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, "1234567890", 1, S("a1bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, "1234567890", 5, S("a12345bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, "1234567890", 9, S("a123456789bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, "1234567890", 10, S("a1234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, "12345678901234567890", 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, "12345678901234567890", 1, S("a1bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, "12345678901234567890", 10, S("a1234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, "12345678901234567890", 19, S("a1234567890123456789bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, "12345678901234567890", 20, S("a12345678901234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, "", 0, S("acdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, "12345", 0, S("acdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, "12345", 1, S("a1cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, "12345", 2, S("a12cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, "12345", 4, S("a1234cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, "12345", 5, S("a12345cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, "1234567890", 0, S("acdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, "1234567890", 1, S("a1cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, "1234567890", 5, S("a12345cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, "1234567890", 9, S("a123456789cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, "1234567890", 10, S("a1234567890cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, "12345678901234567890", 0, S("acdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, "12345678901234567890", 1, S("a1cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, "12345678901234567890", 10, S("a1234567890cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, "12345678901234567890", 19, S("a1234567890123456789cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, "12345678901234567890", 20, S("a12345678901234567890cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, "", 0, S("aklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, "12345", 0, S("aklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, "12345", 1, S("a1klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, "12345", 2, S("a12klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, "12345", 4, S("a1234klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, "12345", 5, S("a12345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, "1234567890", 0, S("aklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, "1234567890", 1, S("a1klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, "1234567890", 5, S("a12345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, "1234567890", 9, S("a123456789klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, "1234567890", 10, S("a1234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, "12345678901234567890", 0, S("aklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, "12345678901234567890", 1, S("a1klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, "12345678901234567890", 10, S("a1234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, "12345678901234567890", 19, S("a1234567890123456789klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, "12345678901234567890", 20, S("a12345678901234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 18, "", 0, S("at"));
- test(S("abcdefghijklmnopqrst"), 1, 18, "12345", 0, S("at"));
- test(S("abcdefghijklmnopqrst"), 1, 18, "12345", 1, S("a1t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, "12345", 2, S("a12t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, "12345", 4, S("a1234t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, "12345", 5, S("a12345t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, "1234567890", 0, S("at"));
- test(S("abcdefghijklmnopqrst"), 1, 18, "1234567890", 1, S("a1t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, "1234567890", 5, S("a12345t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, "1234567890", 9, S("a123456789t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, "1234567890", 10, S("a1234567890t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, "12345678901234567890", 0, S("at"));
- test(S("abcdefghijklmnopqrst"), 1, 18, "12345678901234567890", 1, S("a1t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, "12345678901234567890", 10, S("a1234567890t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, "12345678901234567890", 19, S("a1234567890123456789t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, "12345678901234567890", 20, S("a12345678901234567890t"));
- test(S("abcdefghijklmnopqrst"), 1, 19, "", 0, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 19, "12345", 0, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 19, "12345", 1, S("a1"));
- test(S("abcdefghijklmnopqrst"), 1, 19, "12345", 2, S("a12"));
- test(S("abcdefghijklmnopqrst"), 1, 19, "12345", 4, S("a1234"));
- test(S("abcdefghijklmnopqrst"), 1, 19, "12345", 5, S("a12345"));
- test(S("abcdefghijklmnopqrst"), 1, 19, "1234567890", 0, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 19, "1234567890", 1, S("a1"));
- test(S("abcdefghijklmnopqrst"), 1, 19, "1234567890", 5, S("a12345"));
- test(S("abcdefghijklmnopqrst"), 1, 19, "1234567890", 9, S("a123456789"));
- test(S("abcdefghijklmnopqrst"), 1, 19, "1234567890", 10, S("a1234567890"));
- test(S("abcdefghijklmnopqrst"), 1, 19, "12345678901234567890", 0, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 19, "12345678901234567890", 1, S("a1"));
- test(S("abcdefghijklmnopqrst"), 1, 19, "12345678901234567890", 10, S("a1234567890"));
- test(S("abcdefghijklmnopqrst"), 1, 19, "12345678901234567890", 19, S("a1234567890123456789"));
- test(S("abcdefghijklmnopqrst"), 1, 19, "12345678901234567890", 20, S("a12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 1, 20, "", 0, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 20, "12345", 0, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 20, "12345", 1, S("a1"));
- test(S("abcdefghijklmnopqrst"), 1, 20, "12345", 2, S("a12"));
- test(S("abcdefghijklmnopqrst"), 1, 20, "12345", 4, S("a1234"));
- test(S("abcdefghijklmnopqrst"), 1, 20, "12345", 5, S("a12345"));
- test(S("abcdefghijklmnopqrst"), 1, 20, "1234567890", 0, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 20, "1234567890", 1, S("a1"));
- test(S("abcdefghijklmnopqrst"), 1, 20, "1234567890", 5, S("a12345"));
- test(S("abcdefghijklmnopqrst"), 1, 20, "1234567890", 9, S("a123456789"));
- test(S("abcdefghijklmnopqrst"), 1, 20, "1234567890", 10, S("a1234567890"));
- test(S("abcdefghijklmnopqrst"), 1, 20, "12345678901234567890", 0, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 20, "12345678901234567890", 1, S("a1"));
- test(S("abcdefghijklmnopqrst"), 1, 20, "12345678901234567890", 10, S("a1234567890"));
- test(S("abcdefghijklmnopqrst"), 1, 20, "12345678901234567890", 19, S("a1234567890123456789"));
- test(S("abcdefghijklmnopqrst"), 1, 20, "12345678901234567890", 20, S("a12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 10, 0, "", 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, "12345", 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, "12345", 1, S("abcdefghij1klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, "12345", 2, S("abcdefghij12klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, "12345", 4, S("abcdefghij1234klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, "12345", 5, S("abcdefghij12345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, "1234567890", 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, "1234567890", 1, S("abcdefghij1klmnopqrst"));
+TEST_CONSTEXPR_CXX20 bool test9() {
+ test(S("abcdefghijklmnopqrst"), 1, 0, "12345", 4, S("a1234bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, "12345", 5, S("a12345bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, "1234567890", 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, "1234567890", 1, S("a1bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, "1234567890", 5, S("a12345bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, "1234567890", 9, S("a123456789bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, "1234567890", 10, S("a1234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, "12345678901234567890", 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, "12345678901234567890", 1, S("a1bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, "12345678901234567890", 10, S("a1234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, "12345678901234567890", 19, S("a1234567890123456789bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, "12345678901234567890", 20, S("a12345678901234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, "", 0, S("acdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, "12345", 0, S("acdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, "12345", 1, S("a1cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, "12345", 2, S("a12cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, "12345", 4, S("a1234cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, "12345", 5, S("a12345cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, "1234567890", 0, S("acdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, "1234567890", 1, S("a1cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, "1234567890", 5, S("a12345cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, "1234567890", 9, S("a123456789cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, "1234567890", 10, S("a1234567890cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, "12345678901234567890", 0, S("acdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, "12345678901234567890", 1, S("a1cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, "12345678901234567890", 10, S("a1234567890cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, "12345678901234567890", 19, S("a1234567890123456789cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, "12345678901234567890", 20, S("a12345678901234567890cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, "", 0, S("aklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, "12345", 0, S("aklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, "12345", 1, S("a1klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, "12345", 2, S("a12klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, "12345", 4, S("a1234klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, "12345", 5, S("a12345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, "1234567890", 0, S("aklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, "1234567890", 1, S("a1klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, "1234567890", 5, S("a12345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, "1234567890", 9, S("a123456789klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, "1234567890", 10, S("a1234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, "12345678901234567890", 0, S("aklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, "12345678901234567890", 1, S("a1klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, "12345678901234567890", 10, S("a1234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, "12345678901234567890", 19, S("a1234567890123456789klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, "12345678901234567890", 20, S("a12345678901234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, "", 0, S("at"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, "12345", 0, S("at"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, "12345", 1, S("a1t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, "12345", 2, S("a12t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, "12345", 4, S("a1234t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, "12345", 5, S("a12345t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, "1234567890", 0, S("at"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, "1234567890", 1, S("a1t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, "1234567890", 5, S("a12345t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, "1234567890", 9, S("a123456789t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, "1234567890", 10, S("a1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, "12345678901234567890", 0, S("at"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, "12345678901234567890", 1, S("a1t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, "12345678901234567890", 10, S("a1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, "12345678901234567890", 19, S("a1234567890123456789t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, "12345678901234567890", 20, S("a12345678901234567890t"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, "", 0, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, "12345", 0, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, "12345", 1, S("a1"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, "12345", 2, S("a12"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, "12345", 4, S("a1234"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, "12345", 5, S("a12345"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, "1234567890", 0, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, "1234567890", 1, S("a1"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, "1234567890", 5, S("a12345"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, "1234567890", 9, S("a123456789"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, "1234567890", 10, S("a1234567890"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, "12345678901234567890", 0, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, "12345678901234567890", 1, S("a1"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, "12345678901234567890", 10, S("a1234567890"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, "12345678901234567890", 19, S("a1234567890123456789"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, "12345678901234567890", 20, S("a12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, "", 0, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, "12345", 0, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, "12345", 1, S("a1"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, "12345", 2, S("a12"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, "12345", 4, S("a1234"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, "12345", 5, S("a12345"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, "1234567890", 0, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, "1234567890", 1, S("a1"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, "1234567890", 5, S("a12345"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, "1234567890", 9, S("a123456789"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, "1234567890", 10, S("a1234567890"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, "12345678901234567890", 0, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, "12345678901234567890", 1, S("a1"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, "12345678901234567890", 10, S("a1234567890"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, "12345678901234567890", 19, S("a1234567890123456789"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, "12345678901234567890", 20, S("a12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, "", 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, "12345", 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, "12345", 1, S("abcdefghij1klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, "12345", 2, S("abcdefghij12klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, "12345", 4, S("abcdefghij1234klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, "12345", 5, S("abcdefghij12345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, "1234567890", 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, "1234567890", 1, S("abcdefghij1klmnopqrst"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test10()
-{
- test(S("abcdefghijklmnopqrst"), 10, 0, "1234567890", 5, S("abcdefghij12345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, "1234567890", 9, S("abcdefghij123456789klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, "1234567890", 10, S("abcdefghij1234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, "12345678901234567890", 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, "12345678901234567890", 1, S("abcdefghij1klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, "12345678901234567890", 10, S("abcdefghij1234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, "12345678901234567890", 19, S("abcdefghij1234567890123456789klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, "12345678901234567890", 20, S("abcdefghij12345678901234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, "", 0, S("abcdefghijlmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, "12345", 0, S("abcdefghijlmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, "12345", 1, S("abcdefghij1lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, "12345", 2, S("abcdefghij12lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, "12345", 4, S("abcdefghij1234lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, "12345", 5, S("abcdefghij12345lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, "1234567890", 0, S("abcdefghijlmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, "1234567890", 1, S("abcdefghij1lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, "1234567890", 5, S("abcdefghij12345lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, "1234567890", 9, S("abcdefghij123456789lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, "1234567890", 10, S("abcdefghij1234567890lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, "12345678901234567890", 0, S("abcdefghijlmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, "12345678901234567890", 1, S("abcdefghij1lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, "12345678901234567890", 10, S("abcdefghij1234567890lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, "12345678901234567890", 19, S("abcdefghij1234567890123456789lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, "12345678901234567890", 20, S("abcdefghij12345678901234567890lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, "", 0, S("abcdefghijpqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, "12345", 0, S("abcdefghijpqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, "12345", 1, S("abcdefghij1pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, "12345", 2, S("abcdefghij12pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, "12345", 4, S("abcdefghij1234pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, "12345", 5, S("abcdefghij12345pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, "1234567890", 0, S("abcdefghijpqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, "1234567890", 1, S("abcdefghij1pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, "1234567890", 5, S("abcdefghij12345pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, "1234567890", 9, S("abcdefghij123456789pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, "1234567890", 10, S("abcdefghij1234567890pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, "12345678901234567890", 0, S("abcdefghijpqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, "12345678901234567890", 1, S("abcdefghij1pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, "12345678901234567890", 10, S("abcdefghij1234567890pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, "12345678901234567890", 19, S("abcdefghij1234567890123456789pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, "12345678901234567890", 20, S("abcdefghij12345678901234567890pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 9, "", 0, S("abcdefghijt"));
- test(S("abcdefghijklmnopqrst"), 10, 9, "12345", 0, S("abcdefghijt"));
- test(S("abcdefghijklmnopqrst"), 10, 9, "12345", 1, S("abcdefghij1t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, "12345", 2, S("abcdefghij12t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, "12345", 4, S("abcdefghij1234t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, "12345", 5, S("abcdefghij12345t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, "1234567890", 0, S("abcdefghijt"));
- test(S("abcdefghijklmnopqrst"), 10, 9, "1234567890", 1, S("abcdefghij1t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, "1234567890", 5, S("abcdefghij12345t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, "1234567890", 9, S("abcdefghij123456789t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, "1234567890", 10, S("abcdefghij1234567890t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, "12345678901234567890", 0, S("abcdefghijt"));
- test(S("abcdefghijklmnopqrst"), 10, 9, "12345678901234567890", 1, S("abcdefghij1t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, "12345678901234567890", 10, S("abcdefghij1234567890t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, "12345678901234567890", 19, S("abcdefghij1234567890123456789t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, "12345678901234567890", 20, S("abcdefghij12345678901234567890t"));
- test(S("abcdefghijklmnopqrst"), 10, 10, "", 0, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 10, "12345", 0, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 10, "12345", 1, S("abcdefghij1"));
- test(S("abcdefghijklmnopqrst"), 10, 10, "12345", 2, S("abcdefghij12"));
- test(S("abcdefghijklmnopqrst"), 10, 10, "12345", 4, S("abcdefghij1234"));
- test(S("abcdefghijklmnopqrst"), 10, 10, "12345", 5, S("abcdefghij12345"));
- test(S("abcdefghijklmnopqrst"), 10, 10, "1234567890", 0, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 10, "1234567890", 1, S("abcdefghij1"));
- test(S("abcdefghijklmnopqrst"), 10, 10, "1234567890", 5, S("abcdefghij12345"));
- test(S("abcdefghijklmnopqrst"), 10, 10, "1234567890", 9, S("abcdefghij123456789"));
- test(S("abcdefghijklmnopqrst"), 10, 10, "1234567890", 10, S("abcdefghij1234567890"));
- test(S("abcdefghijklmnopqrst"), 10, 10, "12345678901234567890", 0, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 10, "12345678901234567890", 1, S("abcdefghij1"));
- test(S("abcdefghijklmnopqrst"), 10, 10, "12345678901234567890", 10, S("abcdefghij1234567890"));
- test(S("abcdefghijklmnopqrst"), 10, 10, "12345678901234567890", 19, S("abcdefghij1234567890123456789"));
- test(S("abcdefghijklmnopqrst"), 10, 10, "12345678901234567890", 20, S("abcdefghij12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 10, 11, "", 0, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 11, "12345", 0, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 11, "12345", 1, S("abcdefghij1"));
- test(S("abcdefghijklmnopqrst"), 10, 11, "12345", 2, S("abcdefghij12"));
- test(S("abcdefghijklmnopqrst"), 10, 11, "12345", 4, S("abcdefghij1234"));
- test(S("abcdefghijklmnopqrst"), 10, 11, "12345", 5, S("abcdefghij12345"));
- test(S("abcdefghijklmnopqrst"), 10, 11, "1234567890", 0, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 11, "1234567890", 1, S("abcdefghij1"));
- test(S("abcdefghijklmnopqrst"), 10, 11, "1234567890", 5, S("abcdefghij12345"));
- test(S("abcdefghijklmnopqrst"), 10, 11, "1234567890", 9, S("abcdefghij123456789"));
- test(S("abcdefghijklmnopqrst"), 10, 11, "1234567890", 10, S("abcdefghij1234567890"));
- test(S("abcdefghijklmnopqrst"), 10, 11, "12345678901234567890", 0, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 11, "12345678901234567890", 1, S("abcdefghij1"));
- test(S("abcdefghijklmnopqrst"), 10, 11, "12345678901234567890", 10, S("abcdefghij1234567890"));
- test(S("abcdefghijklmnopqrst"), 10, 11, "12345678901234567890", 19, S("abcdefghij1234567890123456789"));
- test(S("abcdefghijklmnopqrst"), 10, 11, "12345678901234567890", 20, S("abcdefghij12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 19, 0, "", 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, 0, "12345", 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, 0, "12345", 1, S("abcdefghijklmnopqrs1t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, "12345", 2, S("abcdefghijklmnopqrs12t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, "12345", 4, S("abcdefghijklmnopqrs1234t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, "12345", 5, S("abcdefghijklmnopqrs12345t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, "1234567890", 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, 0, "1234567890", 1, S("abcdefghijklmnopqrs1t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, "1234567890", 5, S("abcdefghijklmnopqrs12345t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, "1234567890", 9, S("abcdefghijklmnopqrs123456789t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, "1234567890", 10, S("abcdefghijklmnopqrs1234567890t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, "12345678901234567890", 0, S("abcdefghijklmnopqrst"));
+TEST_CONSTEXPR_CXX20 bool test10() {
+ test(S("abcdefghijklmnopqrst"), 10, 0, "1234567890", 5, S("abcdefghij12345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, "1234567890", 9, S("abcdefghij123456789klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, "1234567890", 10, S("abcdefghij1234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, "12345678901234567890", 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, "12345678901234567890", 1, S("abcdefghij1klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, "12345678901234567890", 10, S("abcdefghij1234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, "12345678901234567890", 19, S("abcdefghij1234567890123456789klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, "12345678901234567890", 20, S("abcdefghij12345678901234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, "", 0, S("abcdefghijlmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, "12345", 0, S("abcdefghijlmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, "12345", 1, S("abcdefghij1lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, "12345", 2, S("abcdefghij12lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, "12345", 4, S("abcdefghij1234lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, "12345", 5, S("abcdefghij12345lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, "1234567890", 0, S("abcdefghijlmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, "1234567890", 1, S("abcdefghij1lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, "1234567890", 5, S("abcdefghij12345lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, "1234567890", 9, S("abcdefghij123456789lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, "1234567890", 10, S("abcdefghij1234567890lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, "12345678901234567890", 0, S("abcdefghijlmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, "12345678901234567890", 1, S("abcdefghij1lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, "12345678901234567890", 10, S("abcdefghij1234567890lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, "12345678901234567890", 19, S("abcdefghij1234567890123456789lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, "12345678901234567890", 20, S("abcdefghij12345678901234567890lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, "", 0, S("abcdefghijpqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, "12345", 0, S("abcdefghijpqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, "12345", 1, S("abcdefghij1pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, "12345", 2, S("abcdefghij12pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, "12345", 4, S("abcdefghij1234pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, "12345", 5, S("abcdefghij12345pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, "1234567890", 0, S("abcdefghijpqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, "1234567890", 1, S("abcdefghij1pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, "1234567890", 5, S("abcdefghij12345pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, "1234567890", 9, S("abcdefghij123456789pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, "1234567890", 10, S("abcdefghij1234567890pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, "12345678901234567890", 0, S("abcdefghijpqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, "12345678901234567890", 1, S("abcdefghij1pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, "12345678901234567890", 10, S("abcdefghij1234567890pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, "12345678901234567890", 19, S("abcdefghij1234567890123456789pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, "12345678901234567890", 20, S("abcdefghij12345678901234567890pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, "", 0, S("abcdefghijt"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, "12345", 0, S("abcdefghijt"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, "12345", 1, S("abcdefghij1t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, "12345", 2, S("abcdefghij12t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, "12345", 4, S("abcdefghij1234t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, "12345", 5, S("abcdefghij12345t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, "1234567890", 0, S("abcdefghijt"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, "1234567890", 1, S("abcdefghij1t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, "1234567890", 5, S("abcdefghij12345t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, "1234567890", 9, S("abcdefghij123456789t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, "1234567890", 10, S("abcdefghij1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, "12345678901234567890", 0, S("abcdefghijt"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, "12345678901234567890", 1, S("abcdefghij1t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, "12345678901234567890", 10, S("abcdefghij1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, "12345678901234567890", 19, S("abcdefghij1234567890123456789t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, "12345678901234567890", 20, S("abcdefghij12345678901234567890t"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, "", 0, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, "12345", 0, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, "12345", 1, S("abcdefghij1"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, "12345", 2, S("abcdefghij12"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, "12345", 4, S("abcdefghij1234"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, "12345", 5, S("abcdefghij12345"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, "1234567890", 0, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, "1234567890", 1, S("abcdefghij1"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, "1234567890", 5, S("abcdefghij12345"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, "1234567890", 9, S("abcdefghij123456789"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, "1234567890", 10, S("abcdefghij1234567890"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, "12345678901234567890", 0, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, "12345678901234567890", 1, S("abcdefghij1"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, "12345678901234567890", 10, S("abcdefghij1234567890"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, "12345678901234567890", 19, S("abcdefghij1234567890123456789"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, "12345678901234567890", 20, S("abcdefghij12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, "", 0, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, "12345", 0, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, "12345", 1, S("abcdefghij1"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, "12345", 2, S("abcdefghij12"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, "12345", 4, S("abcdefghij1234"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, "12345", 5, S("abcdefghij12345"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, "1234567890", 0, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, "1234567890", 1, S("abcdefghij1"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, "1234567890", 5, S("abcdefghij12345"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, "1234567890", 9, S("abcdefghij123456789"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, "1234567890", 10, S("abcdefghij1234567890"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, "12345678901234567890", 0, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, "12345678901234567890", 1, S("abcdefghij1"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, "12345678901234567890", 10, S("abcdefghij1234567890"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, "12345678901234567890", 19, S("abcdefghij1234567890123456789"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, "12345678901234567890", 20, S("abcdefghij12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, "", 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, "12345", 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, "12345", 1, S("abcdefghijklmnopqrs1t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, "12345", 2, S("abcdefghijklmnopqrs12t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, "12345", 4, S("abcdefghijklmnopqrs1234t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, "12345", 5, S("abcdefghijklmnopqrs12345t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, "1234567890", 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, "1234567890", 1, S("abcdefghijklmnopqrs1t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, "1234567890", 5, S("abcdefghijklmnopqrs12345t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, "1234567890", 9, S("abcdefghijklmnopqrs123456789t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, "1234567890", 10, S("abcdefghijklmnopqrs1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, "12345678901234567890", 0, S("abcdefghijklmnopqrst"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test11()
-{
- test(S("abcdefghijklmnopqrst"), 19, 0, "12345678901234567890", 1, S("abcdefghijklmnopqrs1t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, "12345678901234567890", 10, S("abcdefghijklmnopqrs1234567890t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, "12345678901234567890", 19, S("abcdefghijklmnopqrs1234567890123456789t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, "12345678901234567890", 20, S("abcdefghijklmnopqrs12345678901234567890t"));
- test(S("abcdefghijklmnopqrst"), 19, 1, "", 0, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 1, "12345", 0, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 1, "12345", 1, S("abcdefghijklmnopqrs1"));
- test(S("abcdefghijklmnopqrst"), 19, 1, "12345", 2, S("abcdefghijklmnopqrs12"));
- test(S("abcdefghijklmnopqrst"), 19, 1, "12345", 4, S("abcdefghijklmnopqrs1234"));
- test(S("abcdefghijklmnopqrst"), 19, 1, "12345", 5, S("abcdefghijklmnopqrs12345"));
- test(S("abcdefghijklmnopqrst"), 19, 1, "1234567890", 0, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 1, "1234567890", 1, S("abcdefghijklmnopqrs1"));
- test(S("abcdefghijklmnopqrst"), 19, 1, "1234567890", 5, S("abcdefghijklmnopqrs12345"));
- test(S("abcdefghijklmnopqrst"), 19, 1, "1234567890", 9, S("abcdefghijklmnopqrs123456789"));
- test(S("abcdefghijklmnopqrst"), 19, 1, "1234567890", 10, S("abcdefghijklmnopqrs1234567890"));
- test(S("abcdefghijklmnopqrst"), 19, 1, "12345678901234567890", 0, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 1, "12345678901234567890", 1, S("abcdefghijklmnopqrs1"));
- test(S("abcdefghijklmnopqrst"), 19, 1, "12345678901234567890", 10, S("abcdefghijklmnopqrs1234567890"));
- test(S("abcdefghijklmnopqrst"), 19, 1, "12345678901234567890", 19, S("abcdefghijklmnopqrs1234567890123456789"));
- test(S("abcdefghijklmnopqrst"), 19, 1, "12345678901234567890", 20, S("abcdefghijklmnopqrs12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 19, 2, "", 0, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 2, "12345", 0, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 2, "12345", 1, S("abcdefghijklmnopqrs1"));
- test(S("abcdefghijklmnopqrst"), 19, 2, "12345", 2, S("abcdefghijklmnopqrs12"));
- test(S("abcdefghijklmnopqrst"), 19, 2, "12345", 4, S("abcdefghijklmnopqrs1234"));
- test(S("abcdefghijklmnopqrst"), 19, 2, "12345", 5, S("abcdefghijklmnopqrs12345"));
- test(S("abcdefghijklmnopqrst"), 19, 2, "1234567890", 0, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 2, "1234567890", 1, S("abcdefghijklmnopqrs1"));
- test(S("abcdefghijklmnopqrst"), 19, 2, "1234567890", 5, S("abcdefghijklmnopqrs12345"));
- test(S("abcdefghijklmnopqrst"), 19, 2, "1234567890", 9, S("abcdefghijklmnopqrs123456789"));
- test(S("abcdefghijklmnopqrst"), 19, 2, "1234567890", 10, S("abcdefghijklmnopqrs1234567890"));
- test(S("abcdefghijklmnopqrst"), 19, 2, "12345678901234567890", 0, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 2, "12345678901234567890", 1, S("abcdefghijklmnopqrs1"));
- test(S("abcdefghijklmnopqrst"), 19, 2, "12345678901234567890", 10, S("abcdefghijklmnopqrs1234567890"));
- test(S("abcdefghijklmnopqrst"), 19, 2, "12345678901234567890", 19, S("abcdefghijklmnopqrs1234567890123456789"));
- test(S("abcdefghijklmnopqrst"), 19, 2, "12345678901234567890", 20, S("abcdefghijklmnopqrs12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 20, 0, "", 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 0, "12345", 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 0, "12345", 1, S("abcdefghijklmnopqrst1"));
- test(S("abcdefghijklmnopqrst"), 20, 0, "12345", 2, S("abcdefghijklmnopqrst12"));
- test(S("abcdefghijklmnopqrst"), 20, 0, "12345", 4, S("abcdefghijklmnopqrst1234"));
- test(S("abcdefghijklmnopqrst"), 20, 0, "12345", 5, S("abcdefghijklmnopqrst12345"));
- test(S("abcdefghijklmnopqrst"), 20, 0, "1234567890", 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 0, "1234567890", 1, S("abcdefghijklmnopqrst1"));
- test(S("abcdefghijklmnopqrst"), 20, 0, "1234567890", 5, S("abcdefghijklmnopqrst12345"));
- test(S("abcdefghijklmnopqrst"), 20, 0, "1234567890", 9, S("abcdefghijklmnopqrst123456789"));
- test(S("abcdefghijklmnopqrst"), 20, 0, "1234567890", 10, S("abcdefghijklmnopqrst1234567890"));
- test(S("abcdefghijklmnopqrst"), 20, 0, "12345678901234567890", 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 0, "12345678901234567890", 1, S("abcdefghijklmnopqrst1"));
- test(S("abcdefghijklmnopqrst"), 20, 0, "12345678901234567890", 10, S("abcdefghijklmnopqrst1234567890"));
- test(S("abcdefghijklmnopqrst"), 20, 0, "12345678901234567890", 19, S("abcdefghijklmnopqrst1234567890123456789"));
- test(S("abcdefghijklmnopqrst"), 20, 0, "12345678901234567890", 20, S("abcdefghijklmnopqrst12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 20, 1, "", 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 1, "12345", 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 1, "12345", 1, S("abcdefghijklmnopqrst1"));
- test(S("abcdefghijklmnopqrst"), 20, 1, "12345", 2, S("abcdefghijklmnopqrst12"));
- test(S("abcdefghijklmnopqrst"), 20, 1, "12345", 4, S("abcdefghijklmnopqrst1234"));
- test(S("abcdefghijklmnopqrst"), 20, 1, "12345", 5, S("abcdefghijklmnopqrst12345"));
- test(S("abcdefghijklmnopqrst"), 20, 1, "1234567890", 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 1, "1234567890", 1, S("abcdefghijklmnopqrst1"));
- test(S("abcdefghijklmnopqrst"), 20, 1, "1234567890", 5, S("abcdefghijklmnopqrst12345"));
- test(S("abcdefghijklmnopqrst"), 20, 1, "1234567890", 9, S("abcdefghijklmnopqrst123456789"));
- test(S("abcdefghijklmnopqrst"), 20, 1, "1234567890", 10, S("abcdefghijklmnopqrst1234567890"));
- test(S("abcdefghijklmnopqrst"), 20, 1, "12345678901234567890", 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 1, "12345678901234567890", 1, S("abcdefghijklmnopqrst1"));
- test(S("abcdefghijklmnopqrst"), 20, 1, "12345678901234567890", 10, S("abcdefghijklmnopqrst1234567890"));
- test(S("abcdefghijklmnopqrst"), 20, 1, "12345678901234567890", 19, S("abcdefghijklmnopqrst1234567890123456789"));
- test(S("abcdefghijklmnopqrst"), 20, 1, "12345678901234567890", 20, S("abcdefghijklmnopqrst12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 21, 0, "", 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, "12345", 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, "12345", 1, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, "12345", 2, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, "12345", 4, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, "12345", 5, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, "1234567890", 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, "1234567890", 1, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, "1234567890", 5, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, "1234567890", 9, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, "1234567890", 10, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, "12345678901234567890", 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, "12345678901234567890", 1, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, "12345678901234567890", 10, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, "12345678901234567890", 19, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, "12345678901234567890", 20, S("can't happen"));
+TEST_CONSTEXPR_CXX20 bool test11() {
+ test(S("abcdefghijklmnopqrst"), 19, 0, "12345678901234567890", 1, S("abcdefghijklmnopqrs1t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, "12345678901234567890", 10, S("abcdefghijklmnopqrs1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, "12345678901234567890", 19, S("abcdefghijklmnopqrs1234567890123456789t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, "12345678901234567890", 20, S("abcdefghijklmnopqrs12345678901234567890t"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, "", 0, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, "12345", 0, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, "12345", 1, S("abcdefghijklmnopqrs1"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, "12345", 2, S("abcdefghijklmnopqrs12"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, "12345", 4, S("abcdefghijklmnopqrs1234"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, "12345", 5, S("abcdefghijklmnopqrs12345"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, "1234567890", 0, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, "1234567890", 1, S("abcdefghijklmnopqrs1"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, "1234567890", 5, S("abcdefghijklmnopqrs12345"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, "1234567890", 9, S("abcdefghijklmnopqrs123456789"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, "1234567890", 10, S("abcdefghijklmnopqrs1234567890"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, "12345678901234567890", 0, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, "12345678901234567890", 1, S("abcdefghijklmnopqrs1"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, "12345678901234567890", 10, S("abcdefghijklmnopqrs1234567890"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, "12345678901234567890", 19, S("abcdefghijklmnopqrs1234567890123456789"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, "12345678901234567890", 20, S("abcdefghijklmnopqrs12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, "", 0, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, "12345", 0, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, "12345", 1, S("abcdefghijklmnopqrs1"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, "12345", 2, S("abcdefghijklmnopqrs12"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, "12345", 4, S("abcdefghijklmnopqrs1234"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, "12345", 5, S("abcdefghijklmnopqrs12345"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, "1234567890", 0, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, "1234567890", 1, S("abcdefghijklmnopqrs1"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, "1234567890", 5, S("abcdefghijklmnopqrs12345"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, "1234567890", 9, S("abcdefghijklmnopqrs123456789"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, "1234567890", 10, S("abcdefghijklmnopqrs1234567890"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, "12345678901234567890", 0, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, "12345678901234567890", 1, S("abcdefghijklmnopqrs1"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, "12345678901234567890", 10, S("abcdefghijklmnopqrs1234567890"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, "12345678901234567890", 19, S("abcdefghijklmnopqrs1234567890123456789"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, "12345678901234567890", 20, S("abcdefghijklmnopqrs12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, "", 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, "12345", 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, "12345", 1, S("abcdefghijklmnopqrst1"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, "12345", 2, S("abcdefghijklmnopqrst12"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, "12345", 4, S("abcdefghijklmnopqrst1234"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, "12345", 5, S("abcdefghijklmnopqrst12345"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, "1234567890", 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, "1234567890", 1, S("abcdefghijklmnopqrst1"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, "1234567890", 5, S("abcdefghijklmnopqrst12345"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, "1234567890", 9, S("abcdefghijklmnopqrst123456789"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, "1234567890", 10, S("abcdefghijklmnopqrst1234567890"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, "12345678901234567890", 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, "12345678901234567890", 1, S("abcdefghijklmnopqrst1"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, "12345678901234567890", 10, S("abcdefghijklmnopqrst1234567890"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, "12345678901234567890", 19, S("abcdefghijklmnopqrst1234567890123456789"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, "12345678901234567890", 20, S("abcdefghijklmnopqrst12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, "", 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, "12345", 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, "12345", 1, S("abcdefghijklmnopqrst1"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, "12345", 2, S("abcdefghijklmnopqrst12"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, "12345", 4, S("abcdefghijklmnopqrst1234"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, "12345", 5, S("abcdefghijklmnopqrst12345"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, "1234567890", 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, "1234567890", 1, S("abcdefghijklmnopqrst1"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, "1234567890", 5, S("abcdefghijklmnopqrst12345"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, "1234567890", 9, S("abcdefghijklmnopqrst123456789"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, "1234567890", 10, S("abcdefghijklmnopqrst1234567890"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, "12345678901234567890", 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, "12345678901234567890", 1, S("abcdefghijklmnopqrst1"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, "12345678901234567890", 10, S("abcdefghijklmnopqrst1234567890"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, "12345678901234567890", 19, S("abcdefghijklmnopqrst1234567890123456789"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, "12345678901234567890", 20, S("abcdefghijklmnopqrst12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, "", 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, "12345", 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, "12345", 1, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, "12345", 2, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, "12345", 4, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, "12345", 5, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, "1234567890", 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, "1234567890", 1, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, "1234567890", 5, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, "1234567890", 9, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, "1234567890", 10, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, "12345678901234567890", 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, "12345678901234567890", 1, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, "12345678901234567890", 10, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, "12345678901234567890", 19, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, "12345678901234567890", 20, S("can't happen"));
- return true;
+ return true;
}
template <class S>
@@ -1352,8 +1337,7 @@ void test() {
#endif
}
-int main(int, char**)
-{
+int main(int, char**) {
test<std::string>();
#if TEST_STD_VER >= 11
test<std::basic_string<char, std::char_traits<char>, min_allocator<char>>>();
diff --git a/libcxx/test/std/strings/basic.string/string.modifiers/string_replace/size_size_size_char.pass.cpp b/libcxx/test/std/strings/basic.string/string.modifiers/string_replace/size_size_size_char.pass.cpp
index f9257cc6a44441f..8841318c1d4df5b 100644
--- a/libcxx/test/std/strings/basic.string/string.modifiers/string_replace/size_size_size_char.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.modifiers/string_replace/size_size_size_char.pass.cpp
@@ -21,353 +21,347 @@
template <class S>
TEST_CONSTEXPR_CXX20 void
-test(S s, typename S::size_type pos, typename S::size_type n1,
- typename S::size_type n2, typename S::value_type c,
- S expected)
-{
- const typename S::size_type old_size = s.size();
- S s0 = s;
- if (pos <= old_size)
- {
- s.replace(pos, n1, n2, c);
- LIBCPP_ASSERT(s.__invariants());
- assert(s == expected);
- typename S::size_type xlen = std::min(n1, old_size - pos);
- typename S::size_type rlen = n2;
- assert(s.size() == old_size - xlen + rlen);
- }
+test(S s,
+ typename S::size_type pos,
+ typename S::size_type n1,
+ typename S::size_type n2,
+ typename S::value_type c,
+ S expected) {
+ const typename S::size_type old_size = s.size();
+ S s0 = s;
+ if (pos <= old_size) {
+ s.replace(pos, n1, n2, c);
+ LIBCPP_ASSERT(s.__invariants());
+ assert(s == expected);
+ typename S::size_type xlen = std::min(n1, old_size - pos);
+ typename S::size_type rlen = n2;
+ assert(s.size() == old_size - xlen + rlen);
+ }
#ifndef TEST_HAS_NO_EXCEPTIONS
- else if (!TEST_IS_CONSTANT_EVALUATED)
- {
- try
- {
- s.replace(pos, n1, n2, c);
- assert(false);
- }
- catch (std::out_of_range&)
- {
- assert(pos > old_size);
- assert(s == s0);
- }
+ else if (!TEST_IS_CONSTANT_EVALUATED) {
+ try {
+ s.replace(pos, n1, n2, c);
+ assert(false);
+ } catch (std::out_of_range&) {
+ assert(pos > old_size);
+ assert(s == s0);
}
+ }
#endif
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test0()
-{
- test(S(""), 0, 0, 0, '2', S(""));
- test(S(""), 0, 0, 5, '2', S("22222"));
- test(S(""), 0, 0, 10, '2', S("2222222222"));
- test(S(""), 0, 0, 20, '2', S("22222222222222222222"));
- test(S(""), 0, 1, 0, '2', S(""));
- test(S(""), 0, 1, 5, '2', S("22222"));
- test(S(""), 0, 1, 10, '2', S("2222222222"));
- test(S(""), 0, 1, 20, '2', S("22222222222222222222"));
- test(S(""), 1, 0, 0, '2', S("can't happen"));
- test(S(""), 1, 0, 5, '2', S("can't happen"));
- test(S(""), 1, 0, 10, '2', S("can't happen"));
- test(S(""), 1, 0, 20, '2', S("can't happen"));
- test(S("abcde"), 0, 0, 0, '2', S("abcde"));
- test(S("abcde"), 0, 0, 5, '2', S("22222abcde"));
- test(S("abcde"), 0, 0, 10, '2', S("2222222222abcde"));
- test(S("abcde"), 0, 0, 20, '2', S("22222222222222222222abcde"));
- test(S("abcde"), 0, 1, 0, '2', S("bcde"));
- test(S("abcde"), 0, 1, 5, '2', S("22222bcde"));
- test(S("abcde"), 0, 1, 10, '2', S("2222222222bcde"));
- test(S("abcde"), 0, 1, 20, '2', S("22222222222222222222bcde"));
- test(S("abcde"), 0, 2, 0, '2', S("cde"));
- test(S("abcde"), 0, 2, 5, '2', S("22222cde"));
- test(S("abcde"), 0, 2, 10, '2', S("2222222222cde"));
- test(S("abcde"), 0, 2, 20, '2', S("22222222222222222222cde"));
- test(S("abcde"), 0, 4, 0, '2', S("e"));
- test(S("abcde"), 0, 4, 5, '2', S("22222e"));
- test(S("abcde"), 0, 4, 10, '2', S("2222222222e"));
- test(S("abcde"), 0, 4, 20, '2', S("22222222222222222222e"));
- test(S("abcde"), 0, 5, 0, '2', S(""));
- test(S("abcde"), 0, 5, 5, '2', S("22222"));
- test(S("abcde"), 0, 5, 10, '2', S("2222222222"));
- test(S("abcde"), 0, 5, 20, '2', S("22222222222222222222"));
- test(S("abcde"), 0, 6, 0, '2', S(""));
- test(S("abcde"), 0, 6, 5, '2', S("22222"));
- test(S("abcde"), 0, 6, 10, '2', S("2222222222"));
- test(S("abcde"), 0, 6, 20, '2', S("22222222222222222222"));
- test(S("abcde"), 1, 0, 0, '2', S("abcde"));
- test(S("abcde"), 1, 0, 5, '2', S("a22222bcde"));
- test(S("abcde"), 1, 0, 10, '2', S("a2222222222bcde"));
- test(S("abcde"), 1, 0, 20, '2', S("a22222222222222222222bcde"));
- test(S("abcde"), 1, 1, 0, '2', S("acde"));
- test(S("abcde"), 1, 1, 5, '2', S("a22222cde"));
- test(S("abcde"), 1, 1, 10, '2', S("a2222222222cde"));
- test(S("abcde"), 1, 1, 20, '2', S("a22222222222222222222cde"));
- test(S("abcde"), 1, 2, 0, '2', S("ade"));
- test(S("abcde"), 1, 2, 5, '2', S("a22222de"));
- test(S("abcde"), 1, 2, 10, '2', S("a2222222222de"));
- test(S("abcde"), 1, 2, 20, '2', S("a22222222222222222222de"));
- test(S("abcde"), 1, 3, 0, '2', S("ae"));
- test(S("abcde"), 1, 3, 5, '2', S("a22222e"));
- test(S("abcde"), 1, 3, 10, '2', S("a2222222222e"));
- test(S("abcde"), 1, 3, 20, '2', S("a22222222222222222222e"));
- test(S("abcde"), 1, 4, 0, '2', S("a"));
- test(S("abcde"), 1, 4, 5, '2', S("a22222"));
- test(S("abcde"), 1, 4, 10, '2', S("a2222222222"));
- test(S("abcde"), 1, 4, 20, '2', S("a22222222222222222222"));
- test(S("abcde"), 1, 5, 0, '2', S("a"));
- test(S("abcde"), 1, 5, 5, '2', S("a22222"));
- test(S("abcde"), 1, 5, 10, '2', S("a2222222222"));
- test(S("abcde"), 1, 5, 20, '2', S("a22222222222222222222"));
- test(S("abcde"), 2, 0, 0, '2', S("abcde"));
- test(S("abcde"), 2, 0, 5, '2', S("ab22222cde"));
- test(S("abcde"), 2, 0, 10, '2', S("ab2222222222cde"));
- test(S("abcde"), 2, 0, 20, '2', S("ab22222222222222222222cde"));
- test(S("abcde"), 2, 1, 0, '2', S("abde"));
- test(S("abcde"), 2, 1, 5, '2', S("ab22222de"));
- test(S("abcde"), 2, 1, 10, '2', S("ab2222222222de"));
- test(S("abcde"), 2, 1, 20, '2', S("ab22222222222222222222de"));
- test(S("abcde"), 2, 2, 0, '2', S("abe"));
- test(S("abcde"), 2, 2, 5, '2', S("ab22222e"));
- test(S("abcde"), 2, 2, 10, '2', S("ab2222222222e"));
- test(S("abcde"), 2, 2, 20, '2', S("ab22222222222222222222e"));
- test(S("abcde"), 2, 3, 0, '2', S("ab"));
- test(S("abcde"), 2, 3, 5, '2', S("ab22222"));
- test(S("abcde"), 2, 3, 10, '2', S("ab2222222222"));
- test(S("abcde"), 2, 3, 20, '2', S("ab22222222222222222222"));
- test(S("abcde"), 2, 4, 0, '2', S("ab"));
- test(S("abcde"), 2, 4, 5, '2', S("ab22222"));
- test(S("abcde"), 2, 4, 10, '2', S("ab2222222222"));
- test(S("abcde"), 2, 4, 20, '2', S("ab22222222222222222222"));
- test(S("abcde"), 4, 0, 0, '2', S("abcde"));
- test(S("abcde"), 4, 0, 5, '2', S("abcd22222e"));
- test(S("abcde"), 4, 0, 10, '2', S("abcd2222222222e"));
- test(S("abcde"), 4, 0, 20, '2', S("abcd22222222222222222222e"));
- test(S("abcde"), 4, 1, 0, '2', S("abcd"));
- test(S("abcde"), 4, 1, 5, '2', S("abcd22222"));
- test(S("abcde"), 4, 1, 10, '2', S("abcd2222222222"));
- test(S("abcde"), 4, 1, 20, '2', S("abcd22222222222222222222"));
- test(S("abcde"), 4, 2, 0, '2', S("abcd"));
- test(S("abcde"), 4, 2, 5, '2', S("abcd22222"));
- test(S("abcde"), 4, 2, 10, '2', S("abcd2222222222"));
- test(S("abcde"), 4, 2, 20, '2', S("abcd22222222222222222222"));
- test(S("abcde"), 5, 0, 0, '2', S("abcde"));
- test(S("abcde"), 5, 0, 5, '2', S("abcde22222"));
- test(S("abcde"), 5, 0, 10, '2', S("abcde2222222222"));
- test(S("abcde"), 5, 0, 20, '2', S("abcde22222222222222222222"));
- test(S("abcde"), 5, 1, 0, '2', S("abcde"));
- test(S("abcde"), 5, 1, 5, '2', S("abcde22222"));
- test(S("abcde"), 5, 1, 10, '2', S("abcde2222222222"));
- test(S("abcde"), 5, 1, 20, '2', S("abcde22222222222222222222"));
+TEST_CONSTEXPR_CXX20 bool test0() {
+ test(S(""), 0, 0, 0, '2', S(""));
+ test(S(""), 0, 0, 5, '2', S("22222"));
+ test(S(""), 0, 0, 10, '2', S("2222222222"));
+ test(S(""), 0, 0, 20, '2', S("22222222222222222222"));
+ test(S(""), 0, 1, 0, '2', S(""));
+ test(S(""), 0, 1, 5, '2', S("22222"));
+ test(S(""), 0, 1, 10, '2', S("2222222222"));
+ test(S(""), 0, 1, 20, '2', S("22222222222222222222"));
+ test(S(""), 1, 0, 0, '2', S("can't happen"));
+ test(S(""), 1, 0, 5, '2', S("can't happen"));
+ test(S(""), 1, 0, 10, '2', S("can't happen"));
+ test(S(""), 1, 0, 20, '2', S("can't happen"));
+ test(S("abcde"), 0, 0, 0, '2', S("abcde"));
+ test(S("abcde"), 0, 0, 5, '2', S("22222abcde"));
+ test(S("abcde"), 0, 0, 10, '2', S("2222222222abcde"));
+ test(S("abcde"), 0, 0, 20, '2', S("22222222222222222222abcde"));
+ test(S("abcde"), 0, 1, 0, '2', S("bcde"));
+ test(S("abcde"), 0, 1, 5, '2', S("22222bcde"));
+ test(S("abcde"), 0, 1, 10, '2', S("2222222222bcde"));
+ test(S("abcde"), 0, 1, 20, '2', S("22222222222222222222bcde"));
+ test(S("abcde"), 0, 2, 0, '2', S("cde"));
+ test(S("abcde"), 0, 2, 5, '2', S("22222cde"));
+ test(S("abcde"), 0, 2, 10, '2', S("2222222222cde"));
+ test(S("abcde"), 0, 2, 20, '2', S("22222222222222222222cde"));
+ test(S("abcde"), 0, 4, 0, '2', S("e"));
+ test(S("abcde"), 0, 4, 5, '2', S("22222e"));
+ test(S("abcde"), 0, 4, 10, '2', S("2222222222e"));
+ test(S("abcde"), 0, 4, 20, '2', S("22222222222222222222e"));
+ test(S("abcde"), 0, 5, 0, '2', S(""));
+ test(S("abcde"), 0, 5, 5, '2', S("22222"));
+ test(S("abcde"), 0, 5, 10, '2', S("2222222222"));
+ test(S("abcde"), 0, 5, 20, '2', S("22222222222222222222"));
+ test(S("abcde"), 0, 6, 0, '2', S(""));
+ test(S("abcde"), 0, 6, 5, '2', S("22222"));
+ test(S("abcde"), 0, 6, 10, '2', S("2222222222"));
+ test(S("abcde"), 0, 6, 20, '2', S("22222222222222222222"));
+ test(S("abcde"), 1, 0, 0, '2', S("abcde"));
+ test(S("abcde"), 1, 0, 5, '2', S("a22222bcde"));
+ test(S("abcde"), 1, 0, 10, '2', S("a2222222222bcde"));
+ test(S("abcde"), 1, 0, 20, '2', S("a22222222222222222222bcde"));
+ test(S("abcde"), 1, 1, 0, '2', S("acde"));
+ test(S("abcde"), 1, 1, 5, '2', S("a22222cde"));
+ test(S("abcde"), 1, 1, 10, '2', S("a2222222222cde"));
+ test(S("abcde"), 1, 1, 20, '2', S("a22222222222222222222cde"));
+ test(S("abcde"), 1, 2, 0, '2', S("ade"));
+ test(S("abcde"), 1, 2, 5, '2', S("a22222de"));
+ test(S("abcde"), 1, 2, 10, '2', S("a2222222222de"));
+ test(S("abcde"), 1, 2, 20, '2', S("a22222222222222222222de"));
+ test(S("abcde"), 1, 3, 0, '2', S("ae"));
+ test(S("abcde"), 1, 3, 5, '2', S("a22222e"));
+ test(S("abcde"), 1, 3, 10, '2', S("a2222222222e"));
+ test(S("abcde"), 1, 3, 20, '2', S("a22222222222222222222e"));
+ test(S("abcde"), 1, 4, 0, '2', S("a"));
+ test(S("abcde"), 1, 4, 5, '2', S("a22222"));
+ test(S("abcde"), 1, 4, 10, '2', S("a2222222222"));
+ test(S("abcde"), 1, 4, 20, '2', S("a22222222222222222222"));
+ test(S("abcde"), 1, 5, 0, '2', S("a"));
+ test(S("abcde"), 1, 5, 5, '2', S("a22222"));
+ test(S("abcde"), 1, 5, 10, '2', S("a2222222222"));
+ test(S("abcde"), 1, 5, 20, '2', S("a22222222222222222222"));
+ test(S("abcde"), 2, 0, 0, '2', S("abcde"));
+ test(S("abcde"), 2, 0, 5, '2', S("ab22222cde"));
+ test(S("abcde"), 2, 0, 10, '2', S("ab2222222222cde"));
+ test(S("abcde"), 2, 0, 20, '2', S("ab22222222222222222222cde"));
+ test(S("abcde"), 2, 1, 0, '2', S("abde"));
+ test(S("abcde"), 2, 1, 5, '2', S("ab22222de"));
+ test(S("abcde"), 2, 1, 10, '2', S("ab2222222222de"));
+ test(S("abcde"), 2, 1, 20, '2', S("ab22222222222222222222de"));
+ test(S("abcde"), 2, 2, 0, '2', S("abe"));
+ test(S("abcde"), 2, 2, 5, '2', S("ab22222e"));
+ test(S("abcde"), 2, 2, 10, '2', S("ab2222222222e"));
+ test(S("abcde"), 2, 2, 20, '2', S("ab22222222222222222222e"));
+ test(S("abcde"), 2, 3, 0, '2', S("ab"));
+ test(S("abcde"), 2, 3, 5, '2', S("ab22222"));
+ test(S("abcde"), 2, 3, 10, '2', S("ab2222222222"));
+ test(S("abcde"), 2, 3, 20, '2', S("ab22222222222222222222"));
+ test(S("abcde"), 2, 4, 0, '2', S("ab"));
+ test(S("abcde"), 2, 4, 5, '2', S("ab22222"));
+ test(S("abcde"), 2, 4, 10, '2', S("ab2222222222"));
+ test(S("abcde"), 2, 4, 20, '2', S("ab22222222222222222222"));
+ test(S("abcde"), 4, 0, 0, '2', S("abcde"));
+ test(S("abcde"), 4, 0, 5, '2', S("abcd22222e"));
+ test(S("abcde"), 4, 0, 10, '2', S("abcd2222222222e"));
+ test(S("abcde"), 4, 0, 20, '2', S("abcd22222222222222222222e"));
+ test(S("abcde"), 4, 1, 0, '2', S("abcd"));
+ test(S("abcde"), 4, 1, 5, '2', S("abcd22222"));
+ test(S("abcde"), 4, 1, 10, '2', S("abcd2222222222"));
+ test(S("abcde"), 4, 1, 20, '2', S("abcd22222222222222222222"));
+ test(S("abcde"), 4, 2, 0, '2', S("abcd"));
+ test(S("abcde"), 4, 2, 5, '2', S("abcd22222"));
+ test(S("abcde"), 4, 2, 10, '2', S("abcd2222222222"));
+ test(S("abcde"), 4, 2, 20, '2', S("abcd22222222222222222222"));
+ test(S("abcde"), 5, 0, 0, '2', S("abcde"));
+ test(S("abcde"), 5, 0, 5, '2', S("abcde22222"));
+ test(S("abcde"), 5, 0, 10, '2', S("abcde2222222222"));
+ test(S("abcde"), 5, 0, 20, '2', S("abcde22222222222222222222"));
+ test(S("abcde"), 5, 1, 0, '2', S("abcde"));
+ test(S("abcde"), 5, 1, 5, '2', S("abcde22222"));
+ test(S("abcde"), 5, 1, 10, '2', S("abcde2222222222"));
+ test(S("abcde"), 5, 1, 20, '2', S("abcde22222222222222222222"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test1()
-{
- test(S("abcde"), 6, 0, 0, '2', S("can't happen"));
- test(S("abcde"), 6, 0, 5, '2', S("can't happen"));
- test(S("abcde"), 6, 0, 10, '2', S("can't happen"));
- test(S("abcde"), 6, 0, 20, '2', S("can't happen"));
- test(S("abcdefghij"), 0, 0, 0, '2', S("abcdefghij"));
- test(S("abcdefghij"), 0, 0, 5, '2', S("22222abcdefghij"));
- test(S("abcdefghij"), 0, 0, 10, '2', S("2222222222abcdefghij"));
- test(S("abcdefghij"), 0, 0, 20, '2', S("22222222222222222222abcdefghij"));
- test(S("abcdefghij"), 0, 1, 0, '2', S("bcdefghij"));
- test(S("abcdefghij"), 0, 1, 5, '2', S("22222bcdefghij"));
- test(S("abcdefghij"), 0, 1, 10, '2', S("2222222222bcdefghij"));
- test(S("abcdefghij"), 0, 1, 20, '2', S("22222222222222222222bcdefghij"));
- test(S("abcdefghij"), 0, 5, 0, '2', S("fghij"));
- test(S("abcdefghij"), 0, 5, 5, '2', S("22222fghij"));
- test(S("abcdefghij"), 0, 5, 10, '2', S("2222222222fghij"));
- test(S("abcdefghij"), 0, 5, 20, '2', S("22222222222222222222fghij"));
- test(S("abcdefghij"), 0, 9, 0, '2', S("j"));
- test(S("abcdefghij"), 0, 9, 5, '2', S("22222j"));
- test(S("abcdefghij"), 0, 9, 10, '2', S("2222222222j"));
- test(S("abcdefghij"), 0, 9, 20, '2', S("22222222222222222222j"));
- test(S("abcdefghij"), 0, 10, 0, '2', S(""));
- test(S("abcdefghij"), 0, 10, 5, '2', S("22222"));
- test(S("abcdefghij"), 0, 10, 10, '2', S("2222222222"));
- test(S("abcdefghij"), 0, 10, 20, '2', S("22222222222222222222"));
- test(S("abcdefghij"), 0, 11, 0, '2', S(""));
- test(S("abcdefghij"), 0, 11, 5, '2', S("22222"));
- test(S("abcdefghij"), 0, 11, 10, '2', S("2222222222"));
- test(S("abcdefghij"), 0, 11, 20, '2', S("22222222222222222222"));
- test(S("abcdefghij"), 1, 0, 0, '2', S("abcdefghij"));
- test(S("abcdefghij"), 1, 0, 5, '2', S("a22222bcdefghij"));
- test(S("abcdefghij"), 1, 0, 10, '2', S("a2222222222bcdefghij"));
- test(S("abcdefghij"), 1, 0, 20, '2', S("a22222222222222222222bcdefghij"));
- test(S("abcdefghij"), 1, 1, 0, '2', S("acdefghij"));
- test(S("abcdefghij"), 1, 1, 5, '2', S("a22222cdefghij"));
- test(S("abcdefghij"), 1, 1, 10, '2', S("a2222222222cdefghij"));
- test(S("abcdefghij"), 1, 1, 20, '2', S("a22222222222222222222cdefghij"));
- test(S("abcdefghij"), 1, 4, 0, '2', S("afghij"));
- test(S("abcdefghij"), 1, 4, 5, '2', S("a22222fghij"));
- test(S("abcdefghij"), 1, 4, 10, '2', S("a2222222222fghij"));
- test(S("abcdefghij"), 1, 4, 20, '2', S("a22222222222222222222fghij"));
- test(S("abcdefghij"), 1, 8, 0, '2', S("aj"));
- test(S("abcdefghij"), 1, 8, 5, '2', S("a22222j"));
- test(S("abcdefghij"), 1, 8, 10, '2', S("a2222222222j"));
- test(S("abcdefghij"), 1, 8, 20, '2', S("a22222222222222222222j"));
- test(S("abcdefghij"), 1, 9, 0, '2', S("a"));
- test(S("abcdefghij"), 1, 9, 5, '2', S("a22222"));
- test(S("abcdefghij"), 1, 9, 10, '2', S("a2222222222"));
- test(S("abcdefghij"), 1, 9, 20, '2', S("a22222222222222222222"));
- test(S("abcdefghij"), 1, 10, 0, '2', S("a"));
- test(S("abcdefghij"), 1, 10, 5, '2', S("a22222"));
- test(S("abcdefghij"), 1, 10, 10, '2', S("a2222222222"));
- test(S("abcdefghij"), 1, 10, 20, '2', S("a22222222222222222222"));
- test(S("abcdefghij"), 5, 0, 0, '2', S("abcdefghij"));
- test(S("abcdefghij"), 5, 0, 5, '2', S("abcde22222fghij"));
- test(S("abcdefghij"), 5, 0, 10, '2', S("abcde2222222222fghij"));
- test(S("abcdefghij"), 5, 0, 20, '2', S("abcde22222222222222222222fghij"));
- test(S("abcdefghij"), 5, 1, 0, '2', S("abcdeghij"));
- test(S("abcdefghij"), 5, 1, 5, '2', S("abcde22222ghij"));
- test(S("abcdefghij"), 5, 1, 10, '2', S("abcde2222222222ghij"));
- test(S("abcdefghij"), 5, 1, 20, '2', S("abcde22222222222222222222ghij"));
- test(S("abcdefghij"), 5, 2, 0, '2', S("abcdehij"));
- test(S("abcdefghij"), 5, 2, 5, '2', S("abcde22222hij"));
- test(S("abcdefghij"), 5, 2, 10, '2', S("abcde2222222222hij"));
- test(S("abcdefghij"), 5, 2, 20, '2', S("abcde22222222222222222222hij"));
- test(S("abcdefghij"), 5, 4, 0, '2', S("abcdej"));
- test(S("abcdefghij"), 5, 4, 5, '2', S("abcde22222j"));
- test(S("abcdefghij"), 5, 4, 10, '2', S("abcde2222222222j"));
- test(S("abcdefghij"), 5, 4, 20, '2', S("abcde22222222222222222222j"));
- test(S("abcdefghij"), 5, 5, 0, '2', S("abcde"));
- test(S("abcdefghij"), 5, 5, 5, '2', S("abcde22222"));
- test(S("abcdefghij"), 5, 5, 10, '2', S("abcde2222222222"));
- test(S("abcdefghij"), 5, 5, 20, '2', S("abcde22222222222222222222"));
- test(S("abcdefghij"), 5, 6, 0, '2', S("abcde"));
- test(S("abcdefghij"), 5, 6, 5, '2', S("abcde22222"));
- test(S("abcdefghij"), 5, 6, 10, '2', S("abcde2222222222"));
- test(S("abcdefghij"), 5, 6, 20, '2', S("abcde22222222222222222222"));
- test(S("abcdefghij"), 9, 0, 0, '2', S("abcdefghij"));
- test(S("abcdefghij"), 9, 0, 5, '2', S("abcdefghi22222j"));
- test(S("abcdefghij"), 9, 0, 10, '2', S("abcdefghi2222222222j"));
- test(S("abcdefghij"), 9, 0, 20, '2', S("abcdefghi22222222222222222222j"));
- test(S("abcdefghij"), 9, 1, 0, '2', S("abcdefghi"));
- test(S("abcdefghij"), 9, 1, 5, '2', S("abcdefghi22222"));
- test(S("abcdefghij"), 9, 1, 10, '2', S("abcdefghi2222222222"));
- test(S("abcdefghij"), 9, 1, 20, '2', S("abcdefghi22222222222222222222"));
- test(S("abcdefghij"), 9, 2, 0, '2', S("abcdefghi"));
- test(S("abcdefghij"), 9, 2, 5, '2', S("abcdefghi22222"));
- test(S("abcdefghij"), 9, 2, 10, '2', S("abcdefghi2222222222"));
- test(S("abcdefghij"), 9, 2, 20, '2', S("abcdefghi22222222222222222222"));
- test(S("abcdefghij"), 10, 0, 0, '2', S("abcdefghij"));
- test(S("abcdefghij"), 10, 0, 5, '2', S("abcdefghij22222"));
- test(S("abcdefghij"), 10, 0, 10, '2', S("abcdefghij2222222222"));
- test(S("abcdefghij"), 10, 0, 20, '2', S("abcdefghij22222222222222222222"));
- test(S("abcdefghij"), 10, 1, 0, '2', S("abcdefghij"));
- test(S("abcdefghij"), 10, 1, 5, '2', S("abcdefghij22222"));
- test(S("abcdefghij"), 10, 1, 10, '2', S("abcdefghij2222222222"));
- test(S("abcdefghij"), 10, 1, 20, '2', S("abcdefghij22222222222222222222"));
- test(S("abcdefghij"), 11, 0, 0, '2', S("can't happen"));
- test(S("abcdefghij"), 11, 0, 5, '2', S("can't happen"));
- test(S("abcdefghij"), 11, 0, 10, '2', S("can't happen"));
- test(S("abcdefghij"), 11, 0, 20, '2', S("can't happen"));
+TEST_CONSTEXPR_CXX20 bool test1() {
+ test(S("abcde"), 6, 0, 0, '2', S("can't happen"));
+ test(S("abcde"), 6, 0, 5, '2', S("can't happen"));
+ test(S("abcde"), 6, 0, 10, '2', S("can't happen"));
+ test(S("abcde"), 6, 0, 20, '2', S("can't happen"));
+ test(S("abcdefghij"), 0, 0, 0, '2', S("abcdefghij"));
+ test(S("abcdefghij"), 0, 0, 5, '2', S("22222abcdefghij"));
+ test(S("abcdefghij"), 0, 0, 10, '2', S("2222222222abcdefghij"));
+ test(S("abcdefghij"), 0, 0, 20, '2', S("22222222222222222222abcdefghij"));
+ test(S("abcdefghij"), 0, 1, 0, '2', S("bcdefghij"));
+ test(S("abcdefghij"), 0, 1, 5, '2', S("22222bcdefghij"));
+ test(S("abcdefghij"), 0, 1, 10, '2', S("2222222222bcdefghij"));
+ test(S("abcdefghij"), 0, 1, 20, '2', S("22222222222222222222bcdefghij"));
+ test(S("abcdefghij"), 0, 5, 0, '2', S("fghij"));
+ test(S("abcdefghij"), 0, 5, 5, '2', S("22222fghij"));
+ test(S("abcdefghij"), 0, 5, 10, '2', S("2222222222fghij"));
+ test(S("abcdefghij"), 0, 5, 20, '2', S("22222222222222222222fghij"));
+ test(S("abcdefghij"), 0, 9, 0, '2', S("j"));
+ test(S("abcdefghij"), 0, 9, 5, '2', S("22222j"));
+ test(S("abcdefghij"), 0, 9, 10, '2', S("2222222222j"));
+ test(S("abcdefghij"), 0, 9, 20, '2', S("22222222222222222222j"));
+ test(S("abcdefghij"), 0, 10, 0, '2', S(""));
+ test(S("abcdefghij"), 0, 10, 5, '2', S("22222"));
+ test(S("abcdefghij"), 0, 10, 10, '2', S("2222222222"));
+ test(S("abcdefghij"), 0, 10, 20, '2', S("22222222222222222222"));
+ test(S("abcdefghij"), 0, 11, 0, '2', S(""));
+ test(S("abcdefghij"), 0, 11, 5, '2', S("22222"));
+ test(S("abcdefghij"), 0, 11, 10, '2', S("2222222222"));
+ test(S("abcdefghij"), 0, 11, 20, '2', S("22222222222222222222"));
+ test(S("abcdefghij"), 1, 0, 0, '2', S("abcdefghij"));
+ test(S("abcdefghij"), 1, 0, 5, '2', S("a22222bcdefghij"));
+ test(S("abcdefghij"), 1, 0, 10, '2', S("a2222222222bcdefghij"));
+ test(S("abcdefghij"), 1, 0, 20, '2', S("a22222222222222222222bcdefghij"));
+ test(S("abcdefghij"), 1, 1, 0, '2', S("acdefghij"));
+ test(S("abcdefghij"), 1, 1, 5, '2', S("a22222cdefghij"));
+ test(S("abcdefghij"), 1, 1, 10, '2', S("a2222222222cdefghij"));
+ test(S("abcdefghij"), 1, 1, 20, '2', S("a22222222222222222222cdefghij"));
+ test(S("abcdefghij"), 1, 4, 0, '2', S("afghij"));
+ test(S("abcdefghij"), 1, 4, 5, '2', S("a22222fghij"));
+ test(S("abcdefghij"), 1, 4, 10, '2', S("a2222222222fghij"));
+ test(S("abcdefghij"), 1, 4, 20, '2', S("a22222222222222222222fghij"));
+ test(S("abcdefghij"), 1, 8, 0, '2', S("aj"));
+ test(S("abcdefghij"), 1, 8, 5, '2', S("a22222j"));
+ test(S("abcdefghij"), 1, 8, 10, '2', S("a2222222222j"));
+ test(S("abcdefghij"), 1, 8, 20, '2', S("a22222222222222222222j"));
+ test(S("abcdefghij"), 1, 9, 0, '2', S("a"));
+ test(S("abcdefghij"), 1, 9, 5, '2', S("a22222"));
+ test(S("abcdefghij"), 1, 9, 10, '2', S("a2222222222"));
+ test(S("abcdefghij"), 1, 9, 20, '2', S("a22222222222222222222"));
+ test(S("abcdefghij"), 1, 10, 0, '2', S("a"));
+ test(S("abcdefghij"), 1, 10, 5, '2', S("a22222"));
+ test(S("abcdefghij"), 1, 10, 10, '2', S("a2222222222"));
+ test(S("abcdefghij"), 1, 10, 20, '2', S("a22222222222222222222"));
+ test(S("abcdefghij"), 5, 0, 0, '2', S("abcdefghij"));
+ test(S("abcdefghij"), 5, 0, 5, '2', S("abcde22222fghij"));
+ test(S("abcdefghij"), 5, 0, 10, '2', S("abcde2222222222fghij"));
+ test(S("abcdefghij"), 5, 0, 20, '2', S("abcde22222222222222222222fghij"));
+ test(S("abcdefghij"), 5, 1, 0, '2', S("abcdeghij"));
+ test(S("abcdefghij"), 5, 1, 5, '2', S("abcde22222ghij"));
+ test(S("abcdefghij"), 5, 1, 10, '2', S("abcde2222222222ghij"));
+ test(S("abcdefghij"), 5, 1, 20, '2', S("abcde22222222222222222222ghij"));
+ test(S("abcdefghij"), 5, 2, 0, '2', S("abcdehij"));
+ test(S("abcdefghij"), 5, 2, 5, '2', S("abcde22222hij"));
+ test(S("abcdefghij"), 5, 2, 10, '2', S("abcde2222222222hij"));
+ test(S("abcdefghij"), 5, 2, 20, '2', S("abcde22222222222222222222hij"));
+ test(S("abcdefghij"), 5, 4, 0, '2', S("abcdej"));
+ test(S("abcdefghij"), 5, 4, 5, '2', S("abcde22222j"));
+ test(S("abcdefghij"), 5, 4, 10, '2', S("abcde2222222222j"));
+ test(S("abcdefghij"), 5, 4, 20, '2', S("abcde22222222222222222222j"));
+ test(S("abcdefghij"), 5, 5, 0, '2', S("abcde"));
+ test(S("abcdefghij"), 5, 5, 5, '2', S("abcde22222"));
+ test(S("abcdefghij"), 5, 5, 10, '2', S("abcde2222222222"));
+ test(S("abcdefghij"), 5, 5, 20, '2', S("abcde22222222222222222222"));
+ test(S("abcdefghij"), 5, 6, 0, '2', S("abcde"));
+ test(S("abcdefghij"), 5, 6, 5, '2', S("abcde22222"));
+ test(S("abcdefghij"), 5, 6, 10, '2', S("abcde2222222222"));
+ test(S("abcdefghij"), 5, 6, 20, '2', S("abcde22222222222222222222"));
+ test(S("abcdefghij"), 9, 0, 0, '2', S("abcdefghij"));
+ test(S("abcdefghij"), 9, 0, 5, '2', S("abcdefghi22222j"));
+ test(S("abcdefghij"), 9, 0, 10, '2', S("abcdefghi2222222222j"));
+ test(S("abcdefghij"), 9, 0, 20, '2', S("abcdefghi22222222222222222222j"));
+ test(S("abcdefghij"), 9, 1, 0, '2', S("abcdefghi"));
+ test(S("abcdefghij"), 9, 1, 5, '2', S("abcdefghi22222"));
+ test(S("abcdefghij"), 9, 1, 10, '2', S("abcdefghi2222222222"));
+ test(S("abcdefghij"), 9, 1, 20, '2', S("abcdefghi22222222222222222222"));
+ test(S("abcdefghij"), 9, 2, 0, '2', S("abcdefghi"));
+ test(S("abcdefghij"), 9, 2, 5, '2', S("abcdefghi22222"));
+ test(S("abcdefghij"), 9, 2, 10, '2', S("abcdefghi2222222222"));
+ test(S("abcdefghij"), 9, 2, 20, '2', S("abcdefghi22222222222222222222"));
+ test(S("abcdefghij"), 10, 0, 0, '2', S("abcdefghij"));
+ test(S("abcdefghij"), 10, 0, 5, '2', S("abcdefghij22222"));
+ test(S("abcdefghij"), 10, 0, 10, '2', S("abcdefghij2222222222"));
+ test(S("abcdefghij"), 10, 0, 20, '2', S("abcdefghij22222222222222222222"));
+ test(S("abcdefghij"), 10, 1, 0, '2', S("abcdefghij"));
+ test(S("abcdefghij"), 10, 1, 5, '2', S("abcdefghij22222"));
+ test(S("abcdefghij"), 10, 1, 10, '2', S("abcdefghij2222222222"));
+ test(S("abcdefghij"), 10, 1, 20, '2', S("abcdefghij22222222222222222222"));
+ test(S("abcdefghij"), 11, 0, 0, '2', S("can't happen"));
+ test(S("abcdefghij"), 11, 0, 5, '2', S("can't happen"));
+ test(S("abcdefghij"), 11, 0, 10, '2', S("can't happen"));
+ test(S("abcdefghij"), 11, 0, 20, '2', S("can't happen"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test2()
-{
- test(S("abcdefghijklmnopqrst"), 0, 0, 0, '2', S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, 5, '2', S("22222abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, 10, '2', S("2222222222abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, 20, '2', S("22222222222222222222abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, 0, '2', S("bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, 5, '2', S("22222bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, 10, '2', S("2222222222bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, 20, '2', S("22222222222222222222bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, 0, '2', S("klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, 5, '2', S("22222klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, 10, '2', S("2222222222klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, 20, '2', S("22222222222222222222klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 19, 0, '2', S("t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, 5, '2', S("22222t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, 10, '2', S("2222222222t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, 20, '2', S("22222222222222222222t"));
- test(S("abcdefghijklmnopqrst"), 0, 20, 0, '2', S(""));
- test(S("abcdefghijklmnopqrst"), 0, 20, 5, '2', S("22222"));
- test(S("abcdefghijklmnopqrst"), 0, 20, 10, '2', S("2222222222"));
- test(S("abcdefghijklmnopqrst"), 0, 20, 20, '2', S("22222222222222222222"));
- test(S("abcdefghijklmnopqrst"), 0, 21, 0, '2', S(""));
- test(S("abcdefghijklmnopqrst"), 0, 21, 5, '2', S("22222"));
- test(S("abcdefghijklmnopqrst"), 0, 21, 10, '2', S("2222222222"));
- test(S("abcdefghijklmnopqrst"), 0, 21, 20, '2', S("22222222222222222222"));
- test(S("abcdefghijklmnopqrst"), 1, 0, 0, '2', S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, 5, '2', S("a22222bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, 10, '2', S("a2222222222bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, 20, '2', S("a22222222222222222222bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, 0, '2', S("acdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, 5, '2', S("a22222cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, 10, '2', S("a2222222222cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, 20, '2', S("a22222222222222222222cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, 0, '2', S("aklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, 5, '2', S("a22222klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, 10, '2', S("a2222222222klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, 20, '2', S("a22222222222222222222klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 18, 0, '2', S("at"));
- test(S("abcdefghijklmnopqrst"), 1, 18, 5, '2', S("a22222t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, 10, '2', S("a2222222222t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, 20, '2', S("a22222222222222222222t"));
- test(S("abcdefghijklmnopqrst"), 1, 19, 0, '2', S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 19, 5, '2', S("a22222"));
- test(S("abcdefghijklmnopqrst"), 1, 19, 10, '2', S("a2222222222"));
- test(S("abcdefghijklmnopqrst"), 1, 19, 20, '2', S("a22222222222222222222"));
- test(S("abcdefghijklmnopqrst"), 1, 20, 0, '2', S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 20, 5, '2', S("a22222"));
- test(S("abcdefghijklmnopqrst"), 1, 20, 10, '2', S("a2222222222"));
- test(S("abcdefghijklmnopqrst"), 1, 20, 20, '2', S("a22222222222222222222"));
- test(S("abcdefghijklmnopqrst"), 10, 0, 0, '2', S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, 5, '2', S("abcdefghij22222klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, 10, '2', S("abcdefghij2222222222klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, 20, '2', S("abcdefghij22222222222222222222klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, 0, '2', S("abcdefghijlmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, 5, '2', S("abcdefghij22222lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, 10, '2', S("abcdefghij2222222222lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, 20, '2', S("abcdefghij22222222222222222222lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, 0, '2', S("abcdefghijpqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, 5, '2', S("abcdefghij22222pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, 10, '2', S("abcdefghij2222222222pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, 20, '2', S("abcdefghij22222222222222222222pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 9, 0, '2', S("abcdefghijt"));
- test(S("abcdefghijklmnopqrst"), 10, 9, 5, '2', S("abcdefghij22222t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, 10, '2', S("abcdefghij2222222222t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, 20, '2', S("abcdefghij22222222222222222222t"));
- test(S("abcdefghijklmnopqrst"), 10, 10, 0, '2', S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 10, 5, '2', S("abcdefghij22222"));
- test(S("abcdefghijklmnopqrst"), 10, 10, 10, '2', S("abcdefghij2222222222"));
- test(S("abcdefghijklmnopqrst"), 10, 10, 20, '2', S("abcdefghij22222222222222222222"));
- test(S("abcdefghijklmnopqrst"), 10, 11, 0, '2', S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 11, 5, '2', S("abcdefghij22222"));
- test(S("abcdefghijklmnopqrst"), 10, 11, 10, '2', S("abcdefghij2222222222"));
- test(S("abcdefghijklmnopqrst"), 10, 11, 20, '2', S("abcdefghij22222222222222222222"));
- test(S("abcdefghijklmnopqrst"), 19, 0, 0, '2', S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, 0, 5, '2', S("abcdefghijklmnopqrs22222t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, 10, '2', S("abcdefghijklmnopqrs2222222222t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, 20, '2', S("abcdefghijklmnopqrs22222222222222222222t"));
- test(S("abcdefghijklmnopqrst"), 19, 1, 0, '2', S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 1, 5, '2', S("abcdefghijklmnopqrs22222"));
- test(S("abcdefghijklmnopqrst"), 19, 1, 10, '2', S("abcdefghijklmnopqrs2222222222"));
- test(S("abcdefghijklmnopqrst"), 19, 1, 20, '2', S("abcdefghijklmnopqrs22222222222222222222"));
- test(S("abcdefghijklmnopqrst"), 19, 2, 0, '2', S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 2, 5, '2', S("abcdefghijklmnopqrs22222"));
- test(S("abcdefghijklmnopqrst"), 19, 2, 10, '2', S("abcdefghijklmnopqrs2222222222"));
- test(S("abcdefghijklmnopqrst"), 19, 2, 20, '2', S("abcdefghijklmnopqrs22222222222222222222"));
- test(S("abcdefghijklmnopqrst"), 20, 0, 0, '2', S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 0, 5, '2', S("abcdefghijklmnopqrst22222"));
- test(S("abcdefghijklmnopqrst"), 20, 0, 10, '2', S("abcdefghijklmnopqrst2222222222"));
- test(S("abcdefghijklmnopqrst"), 20, 0, 20, '2', S("abcdefghijklmnopqrst22222222222222222222"));
- test(S("abcdefghijklmnopqrst"), 20, 1, 0, '2', S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 1, 5, '2', S("abcdefghijklmnopqrst22222"));
- test(S("abcdefghijklmnopqrst"), 20, 1, 10, '2', S("abcdefghijklmnopqrst2222222222"));
- test(S("abcdefghijklmnopqrst"), 20, 1, 20, '2', S("abcdefghijklmnopqrst22222222222222222222"));
- test(S("abcdefghijklmnopqrst"), 21, 0, 0, '2', S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, 5, '2', S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, 10, '2', S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, 20, '2', S("can't happen"));
+TEST_CONSTEXPR_CXX20 bool test2() {
+ test(S("abcdefghijklmnopqrst"), 0, 0, 0, '2', S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, 5, '2', S("22222abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, 10, '2', S("2222222222abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, 20, '2', S("22222222222222222222abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, 0, '2', S("bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, 5, '2', S("22222bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, 10, '2', S("2222222222bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, 20, '2', S("22222222222222222222bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, 0, '2', S("klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, 5, '2', S("22222klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, 10, '2', S("2222222222klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, 20, '2', S("22222222222222222222klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, 0, '2', S("t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, 5, '2', S("22222t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, 10, '2', S("2222222222t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, 20, '2', S("22222222222222222222t"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, 0, '2', S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 20, 5, '2', S("22222"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, 10, '2', S("2222222222"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, 20, '2', S("22222222222222222222"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, 0, '2', S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 21, 5, '2', S("22222"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, 10, '2', S("2222222222"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, 20, '2', S("22222222222222222222"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, 0, '2', S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, 5, '2', S("a22222bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, 10, '2', S("a2222222222bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, 20, '2', S("a22222222222222222222bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, 0, '2', S("acdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, 5, '2', S("a22222cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, 10, '2', S("a2222222222cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, 20, '2', S("a22222222222222222222cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, 0, '2', S("aklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, 5, '2', S("a22222klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, 10, '2', S("a2222222222klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, 20, '2', S("a22222222222222222222klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, 0, '2', S("at"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, 5, '2', S("a22222t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, 10, '2', S("a2222222222t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, 20, '2', S("a22222222222222222222t"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, 0, '2', S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, 5, '2', S("a22222"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, 10, '2', S("a2222222222"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, 20, '2', S("a22222222222222222222"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, 0, '2', S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, 5, '2', S("a22222"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, 10, '2', S("a2222222222"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, 20, '2', S("a22222222222222222222"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, 0, '2', S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, 5, '2', S("abcdefghij22222klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, 10, '2', S("abcdefghij2222222222klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, 20, '2', S("abcdefghij22222222222222222222klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, 0, '2', S("abcdefghijlmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, 5, '2', S("abcdefghij22222lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, 10, '2', S("abcdefghij2222222222lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, 20, '2', S("abcdefghij22222222222222222222lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, 0, '2', S("abcdefghijpqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, 5, '2', S("abcdefghij22222pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, 10, '2', S("abcdefghij2222222222pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, 20, '2', S("abcdefghij22222222222222222222pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, 0, '2', S("abcdefghijt"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, 5, '2', S("abcdefghij22222t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, 10, '2', S("abcdefghij2222222222t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, 20, '2', S("abcdefghij22222222222222222222t"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, 0, '2', S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, 5, '2', S("abcdefghij22222"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, 10, '2', S("abcdefghij2222222222"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, 20, '2', S("abcdefghij22222222222222222222"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, 0, '2', S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, 5, '2', S("abcdefghij22222"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, 10, '2', S("abcdefghij2222222222"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, 20, '2', S("abcdefghij22222222222222222222"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, 0, '2', S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, 5, '2', S("abcdefghijklmnopqrs22222t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, 10, '2', S("abcdefghijklmnopqrs2222222222t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, 20, '2', S("abcdefghijklmnopqrs22222222222222222222t"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, 0, '2', S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, 5, '2', S("abcdefghijklmnopqrs22222"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, 10, '2', S("abcdefghijklmnopqrs2222222222"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, 20, '2', S("abcdefghijklmnopqrs22222222222222222222"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, 0, '2', S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, 5, '2', S("abcdefghijklmnopqrs22222"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, 10, '2', S("abcdefghijklmnopqrs2222222222"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, 20, '2', S("abcdefghijklmnopqrs22222222222222222222"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, 0, '2', S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, 5, '2', S("abcdefghijklmnopqrst22222"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, 10, '2', S("abcdefghijklmnopqrst2222222222"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, 20, '2', S("abcdefghijklmnopqrst22222222222222222222"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, 0, '2', S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, 5, '2', S("abcdefghijklmnopqrst22222"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, 10, '2', S("abcdefghijklmnopqrst2222222222"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, 20, '2', S("abcdefghijklmnopqrst22222222222222222222"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, 0, '2', S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, 5, '2', S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, 10, '2', S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, 20, '2', S("can't happen"));
- return true;
+ return true;
}
template <class S>
@@ -383,8 +377,7 @@ void test() {
#endif
}
-int main(int, char**)
-{
+int main(int, char**) {
test<std::string>();
#if TEST_STD_VER >= 11
test<std::basic_string<char, std::char_traits<char>, min_allocator<char>>>();
diff --git a/libcxx/test/std/strings/basic.string/string.modifiers/string_replace/size_size_string.pass.cpp b/libcxx/test/std/strings/basic.string/string.modifiers/string_replace/size_size_string.pass.cpp
index 3e98052e14c443d..fab2beeabd5721a 100644
--- a/libcxx/test/std/strings/basic.string/string.modifiers/string_replace/size_size_string.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.modifiers/string_replace/size_size_string.pass.cpp
@@ -20,352 +20,342 @@
#include "min_allocator.h"
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(S s, typename S::size_type pos1, typename S::size_type n1, S str, S expected)
-{
- const typename S::size_type old_size = s.size();
- S s0 = s;
- if (pos1 <= old_size)
- {
- s.replace(pos1, n1, str);
- LIBCPP_ASSERT(s.__invariants());
- assert(s == expected);
- typename S::size_type xlen = std::min(n1, old_size - pos1);
- typename S::size_type rlen = str.size();
- assert(s.size() == old_size - xlen + rlen);
- }
+TEST_CONSTEXPR_CXX20 void test(S s, typename S::size_type pos1, typename S::size_type n1, S str, S expected) {
+ const typename S::size_type old_size = s.size();
+ S s0 = s;
+ if (pos1 <= old_size) {
+ s.replace(pos1, n1, str);
+ LIBCPP_ASSERT(s.__invariants());
+ assert(s == expected);
+ typename S::size_type xlen = std::min(n1, old_size - pos1);
+ typename S::size_type rlen = str.size();
+ assert(s.size() == old_size - xlen + rlen);
+ }
#ifndef TEST_HAS_NO_EXCEPTIONS
- else if (!TEST_IS_CONSTANT_EVALUATED)
- {
- try
- {
- s.replace(pos1, n1, str);
- assert(false);
- }
- catch (std::out_of_range&)
- {
- assert(pos1 > old_size);
- assert(s == s0);
- }
+ else if (!TEST_IS_CONSTANT_EVALUATED) {
+ try {
+ s.replace(pos1, n1, str);
+ assert(false);
+ } catch (std::out_of_range&) {
+ assert(pos1 > old_size);
+ assert(s == s0);
}
+ }
#endif
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test0()
-{
- test(S(""), 0, 0, S(""), S(""));
- test(S(""), 0, 0, S("12345"), S("12345"));
- test(S(""), 0, 0, S("1234567890"), S("1234567890"));
- test(S(""), 0, 0, S("12345678901234567890"), S("12345678901234567890"));
- test(S(""), 0, 1, S(""), S(""));
- test(S(""), 0, 1, S("12345"), S("12345"));
- test(S(""), 0, 1, S("1234567890"), S("1234567890"));
- test(S(""), 0, 1, S("12345678901234567890"), S("12345678901234567890"));
- test(S(""), 1, 0, S(""), S("can't happen"));
- test(S(""), 1, 0, S("12345"), S("can't happen"));
- test(S(""), 1, 0, S("1234567890"), S("can't happen"));
- test(S(""), 1, 0, S("12345678901234567890"), S("can't happen"));
- test(S("abcde"), 0, 0, S(""), S("abcde"));
- test(S("abcde"), 0, 0, S("12345"), S("12345abcde"));
- test(S("abcde"), 0, 0, S("1234567890"), S("1234567890abcde"));
- test(S("abcde"), 0, 0, S("12345678901234567890"), S("12345678901234567890abcde"));
- test(S("abcde"), 0, 1, S(""), S("bcde"));
- test(S("abcde"), 0, 1, S("12345"), S("12345bcde"));
- test(S("abcde"), 0, 1, S("1234567890"), S("1234567890bcde"));
- test(S("abcde"), 0, 1, S("12345678901234567890"), S("12345678901234567890bcde"));
- test(S("abcde"), 0, 2, S(""), S("cde"));
- test(S("abcde"), 0, 2, S("12345"), S("12345cde"));
- test(S("abcde"), 0, 2, S("1234567890"), S("1234567890cde"));
- test(S("abcde"), 0, 2, S("12345678901234567890"), S("12345678901234567890cde"));
- test(S("abcde"), 0, 4, S(""), S("e"));
- test(S("abcde"), 0, 4, S("12345"), S("12345e"));
- test(S("abcde"), 0, 4, S("1234567890"), S("1234567890e"));
- test(S("abcde"), 0, 4, S("12345678901234567890"), S("12345678901234567890e"));
- test(S("abcde"), 0, 5, S(""), S(""));
- test(S("abcde"), 0, 5, S("12345"), S("12345"));
- test(S("abcde"), 0, 5, S("1234567890"), S("1234567890"));
- test(S("abcde"), 0, 5, S("12345678901234567890"), S("12345678901234567890"));
- test(S("abcde"), 0, 6, S(""), S(""));
- test(S("abcde"), 0, 6, S("12345"), S("12345"));
- test(S("abcde"), 0, 6, S("1234567890"), S("1234567890"));
- test(S("abcde"), 0, 6, S("12345678901234567890"), S("12345678901234567890"));
- test(S("abcde"), 1, 0, S(""), S("abcde"));
- test(S("abcde"), 1, 0, S("12345"), S("a12345bcde"));
- test(S("abcde"), 1, 0, S("1234567890"), S("a1234567890bcde"));
- test(S("abcde"), 1, 0, S("12345678901234567890"), S("a12345678901234567890bcde"));
- test(S("abcde"), 1, 1, S(""), S("acde"));
- test(S("abcde"), 1, 1, S("12345"), S("a12345cde"));
- test(S("abcde"), 1, 1, S("1234567890"), S("a1234567890cde"));
- test(S("abcde"), 1, 1, S("12345678901234567890"), S("a12345678901234567890cde"));
- test(S("abcde"), 1, 2, S(""), S("ade"));
- test(S("abcde"), 1, 2, S("12345"), S("a12345de"));
- test(S("abcde"), 1, 2, S("1234567890"), S("a1234567890de"));
- test(S("abcde"), 1, 2, S("12345678901234567890"), S("a12345678901234567890de"));
- test(S("abcde"), 1, 3, S(""), S("ae"));
- test(S("abcde"), 1, 3, S("12345"), S("a12345e"));
- test(S("abcde"), 1, 3, S("1234567890"), S("a1234567890e"));
- test(S("abcde"), 1, 3, S("12345678901234567890"), S("a12345678901234567890e"));
- test(S("abcde"), 1, 4, S(""), S("a"));
- test(S("abcde"), 1, 4, S("12345"), S("a12345"));
- test(S("abcde"), 1, 4, S("1234567890"), S("a1234567890"));
- test(S("abcde"), 1, 4, S("12345678901234567890"), S("a12345678901234567890"));
- test(S("abcde"), 1, 5, S(""), S("a"));
- test(S("abcde"), 1, 5, S("12345"), S("a12345"));
- test(S("abcde"), 1, 5, S("1234567890"), S("a1234567890"));
- test(S("abcde"), 1, 5, S("12345678901234567890"), S("a12345678901234567890"));
- test(S("abcde"), 2, 0, S(""), S("abcde"));
- test(S("abcde"), 2, 0, S("12345"), S("ab12345cde"));
- test(S("abcde"), 2, 0, S("1234567890"), S("ab1234567890cde"));
- test(S("abcde"), 2, 0, S("12345678901234567890"), S("ab12345678901234567890cde"));
- test(S("abcde"), 2, 1, S(""), S("abde"));
- test(S("abcde"), 2, 1, S("12345"), S("ab12345de"));
- test(S("abcde"), 2, 1, S("1234567890"), S("ab1234567890de"));
- test(S("abcde"), 2, 1, S("12345678901234567890"), S("ab12345678901234567890de"));
- test(S("abcde"), 2, 2, S(""), S("abe"));
- test(S("abcde"), 2, 2, S("12345"), S("ab12345e"));
- test(S("abcde"), 2, 2, S("1234567890"), S("ab1234567890e"));
- test(S("abcde"), 2, 2, S("12345678901234567890"), S("ab12345678901234567890e"));
- test(S("abcde"), 2, 3, S(""), S("ab"));
- test(S("abcde"), 2, 3, S("12345"), S("ab12345"));
- test(S("abcde"), 2, 3, S("1234567890"), S("ab1234567890"));
- test(S("abcde"), 2, 3, S("12345678901234567890"), S("ab12345678901234567890"));
- test(S("abcde"), 2, 4, S(""), S("ab"));
- test(S("abcde"), 2, 4, S("12345"), S("ab12345"));
- test(S("abcde"), 2, 4, S("1234567890"), S("ab1234567890"));
- test(S("abcde"), 2, 4, S("12345678901234567890"), S("ab12345678901234567890"));
- test(S("abcde"), 4, 0, S(""), S("abcde"));
- test(S("abcde"), 4, 0, S("12345"), S("abcd12345e"));
- test(S("abcde"), 4, 0, S("1234567890"), S("abcd1234567890e"));
- test(S("abcde"), 4, 0, S("12345678901234567890"), S("abcd12345678901234567890e"));
- test(S("abcde"), 4, 1, S(""), S("abcd"));
- test(S("abcde"), 4, 1, S("12345"), S("abcd12345"));
- test(S("abcde"), 4, 1, S("1234567890"), S("abcd1234567890"));
- test(S("abcde"), 4, 1, S("12345678901234567890"), S("abcd12345678901234567890"));
- test(S("abcde"), 4, 2, S(""), S("abcd"));
- test(S("abcde"), 4, 2, S("12345"), S("abcd12345"));
- test(S("abcde"), 4, 2, S("1234567890"), S("abcd1234567890"));
- test(S("abcde"), 4, 2, S("12345678901234567890"), S("abcd12345678901234567890"));
- test(S("abcde"), 5, 0, S(""), S("abcde"));
- test(S("abcde"), 5, 0, S("12345"), S("abcde12345"));
- test(S("abcde"), 5, 0, S("1234567890"), S("abcde1234567890"));
- test(S("abcde"), 5, 0, S("12345678901234567890"), S("abcde12345678901234567890"));
- test(S("abcde"), 5, 1, S(""), S("abcde"));
- test(S("abcde"), 5, 1, S("12345"), S("abcde12345"));
- test(S("abcde"), 5, 1, S("1234567890"), S("abcde1234567890"));
- test(S("abcde"), 5, 1, S("12345678901234567890"), S("abcde12345678901234567890"));
+TEST_CONSTEXPR_CXX20 bool test0() {
+ test(S(""), 0, 0, S(""), S(""));
+ test(S(""), 0, 0, S("12345"), S("12345"));
+ test(S(""), 0, 0, S("1234567890"), S("1234567890"));
+ test(S(""), 0, 0, S("12345678901234567890"), S("12345678901234567890"));
+ test(S(""), 0, 1, S(""), S(""));
+ test(S(""), 0, 1, S("12345"), S("12345"));
+ test(S(""), 0, 1, S("1234567890"), S("1234567890"));
+ test(S(""), 0, 1, S("12345678901234567890"), S("12345678901234567890"));
+ test(S(""), 1, 0, S(""), S("can't happen"));
+ test(S(""), 1, 0, S("12345"), S("can't happen"));
+ test(S(""), 1, 0, S("1234567890"), S("can't happen"));
+ test(S(""), 1, 0, S("12345678901234567890"), S("can't happen"));
+ test(S("abcde"), 0, 0, S(""), S("abcde"));
+ test(S("abcde"), 0, 0, S("12345"), S("12345abcde"));
+ test(S("abcde"), 0, 0, S("1234567890"), S("1234567890abcde"));
+ test(S("abcde"), 0, 0, S("12345678901234567890"), S("12345678901234567890abcde"));
+ test(S("abcde"), 0, 1, S(""), S("bcde"));
+ test(S("abcde"), 0, 1, S("12345"), S("12345bcde"));
+ test(S("abcde"), 0, 1, S("1234567890"), S("1234567890bcde"));
+ test(S("abcde"), 0, 1, S("12345678901234567890"), S("12345678901234567890bcde"));
+ test(S("abcde"), 0, 2, S(""), S("cde"));
+ test(S("abcde"), 0, 2, S("12345"), S("12345cde"));
+ test(S("abcde"), 0, 2, S("1234567890"), S("1234567890cde"));
+ test(S("abcde"), 0, 2, S("12345678901234567890"), S("12345678901234567890cde"));
+ test(S("abcde"), 0, 4, S(""), S("e"));
+ test(S("abcde"), 0, 4, S("12345"), S("12345e"));
+ test(S("abcde"), 0, 4, S("1234567890"), S("1234567890e"));
+ test(S("abcde"), 0, 4, S("12345678901234567890"), S("12345678901234567890e"));
+ test(S("abcde"), 0, 5, S(""), S(""));
+ test(S("abcde"), 0, 5, S("12345"), S("12345"));
+ test(S("abcde"), 0, 5, S("1234567890"), S("1234567890"));
+ test(S("abcde"), 0, 5, S("12345678901234567890"), S("12345678901234567890"));
+ test(S("abcde"), 0, 6, S(""), S(""));
+ test(S("abcde"), 0, 6, S("12345"), S("12345"));
+ test(S("abcde"), 0, 6, S("1234567890"), S("1234567890"));
+ test(S("abcde"), 0, 6, S("12345678901234567890"), S("12345678901234567890"));
+ test(S("abcde"), 1, 0, S(""), S("abcde"));
+ test(S("abcde"), 1, 0, S("12345"), S("a12345bcde"));
+ test(S("abcde"), 1, 0, S("1234567890"), S("a1234567890bcde"));
+ test(S("abcde"), 1, 0, S("12345678901234567890"), S("a12345678901234567890bcde"));
+ test(S("abcde"), 1, 1, S(""), S("acde"));
+ test(S("abcde"), 1, 1, S("12345"), S("a12345cde"));
+ test(S("abcde"), 1, 1, S("1234567890"), S("a1234567890cde"));
+ test(S("abcde"), 1, 1, S("12345678901234567890"), S("a12345678901234567890cde"));
+ test(S("abcde"), 1, 2, S(""), S("ade"));
+ test(S("abcde"), 1, 2, S("12345"), S("a12345de"));
+ test(S("abcde"), 1, 2, S("1234567890"), S("a1234567890de"));
+ test(S("abcde"), 1, 2, S("12345678901234567890"), S("a12345678901234567890de"));
+ test(S("abcde"), 1, 3, S(""), S("ae"));
+ test(S("abcde"), 1, 3, S("12345"), S("a12345e"));
+ test(S("abcde"), 1, 3, S("1234567890"), S("a1234567890e"));
+ test(S("abcde"), 1, 3, S("12345678901234567890"), S("a12345678901234567890e"));
+ test(S("abcde"), 1, 4, S(""), S("a"));
+ test(S("abcde"), 1, 4, S("12345"), S("a12345"));
+ test(S("abcde"), 1, 4, S("1234567890"), S("a1234567890"));
+ test(S("abcde"), 1, 4, S("12345678901234567890"), S("a12345678901234567890"));
+ test(S("abcde"), 1, 5, S(""), S("a"));
+ test(S("abcde"), 1, 5, S("12345"), S("a12345"));
+ test(S("abcde"), 1, 5, S("1234567890"), S("a1234567890"));
+ test(S("abcde"), 1, 5, S("12345678901234567890"), S("a12345678901234567890"));
+ test(S("abcde"), 2, 0, S(""), S("abcde"));
+ test(S("abcde"), 2, 0, S("12345"), S("ab12345cde"));
+ test(S("abcde"), 2, 0, S("1234567890"), S("ab1234567890cde"));
+ test(S("abcde"), 2, 0, S("12345678901234567890"), S("ab12345678901234567890cde"));
+ test(S("abcde"), 2, 1, S(""), S("abde"));
+ test(S("abcde"), 2, 1, S("12345"), S("ab12345de"));
+ test(S("abcde"), 2, 1, S("1234567890"), S("ab1234567890de"));
+ test(S("abcde"), 2, 1, S("12345678901234567890"), S("ab12345678901234567890de"));
+ test(S("abcde"), 2, 2, S(""), S("abe"));
+ test(S("abcde"), 2, 2, S("12345"), S("ab12345e"));
+ test(S("abcde"), 2, 2, S("1234567890"), S("ab1234567890e"));
+ test(S("abcde"), 2, 2, S("12345678901234567890"), S("ab12345678901234567890e"));
+ test(S("abcde"), 2, 3, S(""), S("ab"));
+ test(S("abcde"), 2, 3, S("12345"), S("ab12345"));
+ test(S("abcde"), 2, 3, S("1234567890"), S("ab1234567890"));
+ test(S("abcde"), 2, 3, S("12345678901234567890"), S("ab12345678901234567890"));
+ test(S("abcde"), 2, 4, S(""), S("ab"));
+ test(S("abcde"), 2, 4, S("12345"), S("ab12345"));
+ test(S("abcde"), 2, 4, S("1234567890"), S("ab1234567890"));
+ test(S("abcde"), 2, 4, S("12345678901234567890"), S("ab12345678901234567890"));
+ test(S("abcde"), 4, 0, S(""), S("abcde"));
+ test(S("abcde"), 4, 0, S("12345"), S("abcd12345e"));
+ test(S("abcde"), 4, 0, S("1234567890"), S("abcd1234567890e"));
+ test(S("abcde"), 4, 0, S("12345678901234567890"), S("abcd12345678901234567890e"));
+ test(S("abcde"), 4, 1, S(""), S("abcd"));
+ test(S("abcde"), 4, 1, S("12345"), S("abcd12345"));
+ test(S("abcde"), 4, 1, S("1234567890"), S("abcd1234567890"));
+ test(S("abcde"), 4, 1, S("12345678901234567890"), S("abcd12345678901234567890"));
+ test(S("abcde"), 4, 2, S(""), S("abcd"));
+ test(S("abcde"), 4, 2, S("12345"), S("abcd12345"));
+ test(S("abcde"), 4, 2, S("1234567890"), S("abcd1234567890"));
+ test(S("abcde"), 4, 2, S("12345678901234567890"), S("abcd12345678901234567890"));
+ test(S("abcde"), 5, 0, S(""), S("abcde"));
+ test(S("abcde"), 5, 0, S("12345"), S("abcde12345"));
+ test(S("abcde"), 5, 0, S("1234567890"), S("abcde1234567890"));
+ test(S("abcde"), 5, 0, S("12345678901234567890"), S("abcde12345678901234567890"));
+ test(S("abcde"), 5, 1, S(""), S("abcde"));
+ test(S("abcde"), 5, 1, S("12345"), S("abcde12345"));
+ test(S("abcde"), 5, 1, S("1234567890"), S("abcde1234567890"));
+ test(S("abcde"), 5, 1, S("12345678901234567890"), S("abcde12345678901234567890"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test1()
-{
- test(S("abcde"), 6, 0, S(""), S("can't happen"));
- test(S("abcde"), 6, 0, S("12345"), S("can't happen"));
- test(S("abcde"), 6, 0, S("1234567890"), S("can't happen"));
- test(S("abcde"), 6, 0, S("12345678901234567890"), S("can't happen"));
- test(S("abcdefghij"), 0, 0, S(""), S("abcdefghij"));
- test(S("abcdefghij"), 0, 0, S("12345"), S("12345abcdefghij"));
- test(S("abcdefghij"), 0, 0, S("1234567890"), S("1234567890abcdefghij"));
- test(S("abcdefghij"), 0, 0, S("12345678901234567890"), S("12345678901234567890abcdefghij"));
- test(S("abcdefghij"), 0, 1, S(""), S("bcdefghij"));
- test(S("abcdefghij"), 0, 1, S("12345"), S("12345bcdefghij"));
- test(S("abcdefghij"), 0, 1, S("1234567890"), S("1234567890bcdefghij"));
- test(S("abcdefghij"), 0, 1, S("12345678901234567890"), S("12345678901234567890bcdefghij"));
- test(S("abcdefghij"), 0, 5, S(""), S("fghij"));
- test(S("abcdefghij"), 0, 5, S("12345"), S("12345fghij"));
- test(S("abcdefghij"), 0, 5, S("1234567890"), S("1234567890fghij"));
- test(S("abcdefghij"), 0, 5, S("12345678901234567890"), S("12345678901234567890fghij"));
- test(S("abcdefghij"), 0, 9, S(""), S("j"));
- test(S("abcdefghij"), 0, 9, S("12345"), S("12345j"));
- test(S("abcdefghij"), 0, 9, S("1234567890"), S("1234567890j"));
- test(S("abcdefghij"), 0, 9, S("12345678901234567890"), S("12345678901234567890j"));
- test(S("abcdefghij"), 0, 10, S(""), S(""));
- test(S("abcdefghij"), 0, 10, S("12345"), S("12345"));
- test(S("abcdefghij"), 0, 10, S("1234567890"), S("1234567890"));
- test(S("abcdefghij"), 0, 10, S("12345678901234567890"), S("12345678901234567890"));
- test(S("abcdefghij"), 0, 11, S(""), S(""));
- test(S("abcdefghij"), 0, 11, S("12345"), S("12345"));
- test(S("abcdefghij"), 0, 11, S("1234567890"), S("1234567890"));
- test(S("abcdefghij"), 0, 11, S("12345678901234567890"), S("12345678901234567890"));
- test(S("abcdefghij"), 1, 0, S(""), S("abcdefghij"));
- test(S("abcdefghij"), 1, 0, S("12345"), S("a12345bcdefghij"));
- test(S("abcdefghij"), 1, 0, S("1234567890"), S("a1234567890bcdefghij"));
- test(S("abcdefghij"), 1, 0, S("12345678901234567890"), S("a12345678901234567890bcdefghij"));
- test(S("abcdefghij"), 1, 1, S(""), S("acdefghij"));
- test(S("abcdefghij"), 1, 1, S("12345"), S("a12345cdefghij"));
- test(S("abcdefghij"), 1, 1, S("1234567890"), S("a1234567890cdefghij"));
- test(S("abcdefghij"), 1, 1, S("12345678901234567890"), S("a12345678901234567890cdefghij"));
- test(S("abcdefghij"), 1, 4, S(""), S("afghij"));
- test(S("abcdefghij"), 1, 4, S("12345"), S("a12345fghij"));
- test(S("abcdefghij"), 1, 4, S("1234567890"), S("a1234567890fghij"));
- test(S("abcdefghij"), 1, 4, S("12345678901234567890"), S("a12345678901234567890fghij"));
- test(S("abcdefghij"), 1, 8, S(""), S("aj"));
- test(S("abcdefghij"), 1, 8, S("12345"), S("a12345j"));
- test(S("abcdefghij"), 1, 8, S("1234567890"), S("a1234567890j"));
- test(S("abcdefghij"), 1, 8, S("12345678901234567890"), S("a12345678901234567890j"));
- test(S("abcdefghij"), 1, 9, S(""), S("a"));
- test(S("abcdefghij"), 1, 9, S("12345"), S("a12345"));
- test(S("abcdefghij"), 1, 9, S("1234567890"), S("a1234567890"));
- test(S("abcdefghij"), 1, 9, S("12345678901234567890"), S("a12345678901234567890"));
- test(S("abcdefghij"), 1, 10, S(""), S("a"));
- test(S("abcdefghij"), 1, 10, S("12345"), S("a12345"));
- test(S("abcdefghij"), 1, 10, S("1234567890"), S("a1234567890"));
- test(S("abcdefghij"), 1, 10, S("12345678901234567890"), S("a12345678901234567890"));
- test(S("abcdefghij"), 5, 0, S(""), S("abcdefghij"));
- test(S("abcdefghij"), 5, 0, S("12345"), S("abcde12345fghij"));
- test(S("abcdefghij"), 5, 0, S("1234567890"), S("abcde1234567890fghij"));
- test(S("abcdefghij"), 5, 0, S("12345678901234567890"), S("abcde12345678901234567890fghij"));
- test(S("abcdefghij"), 5, 1, S(""), S("abcdeghij"));
- test(S("abcdefghij"), 5, 1, S("12345"), S("abcde12345ghij"));
- test(S("abcdefghij"), 5, 1, S("1234567890"), S("abcde1234567890ghij"));
- test(S("abcdefghij"), 5, 1, S("12345678901234567890"), S("abcde12345678901234567890ghij"));
- test(S("abcdefghij"), 5, 2, S(""), S("abcdehij"));
- test(S("abcdefghij"), 5, 2, S("12345"), S("abcde12345hij"));
- test(S("abcdefghij"), 5, 2, S("1234567890"), S("abcde1234567890hij"));
- test(S("abcdefghij"), 5, 2, S("12345678901234567890"), S("abcde12345678901234567890hij"));
- test(S("abcdefghij"), 5, 4, S(""), S("abcdej"));
- test(S("abcdefghij"), 5, 4, S("12345"), S("abcde12345j"));
- test(S("abcdefghij"), 5, 4, S("1234567890"), S("abcde1234567890j"));
- test(S("abcdefghij"), 5, 4, S("12345678901234567890"), S("abcde12345678901234567890j"));
- test(S("abcdefghij"), 5, 5, S(""), S("abcde"));
- test(S("abcdefghij"), 5, 5, S("12345"), S("abcde12345"));
- test(S("abcdefghij"), 5, 5, S("1234567890"), S("abcde1234567890"));
- test(S("abcdefghij"), 5, 5, S("12345678901234567890"), S("abcde12345678901234567890"));
- test(S("abcdefghij"), 5, 6, S(""), S("abcde"));
- test(S("abcdefghij"), 5, 6, S("12345"), S("abcde12345"));
- test(S("abcdefghij"), 5, 6, S("1234567890"), S("abcde1234567890"));
- test(S("abcdefghij"), 5, 6, S("12345678901234567890"), S("abcde12345678901234567890"));
- test(S("abcdefghij"), 9, 0, S(""), S("abcdefghij"));
- test(S("abcdefghij"), 9, 0, S("12345"), S("abcdefghi12345j"));
- test(S("abcdefghij"), 9, 0, S("1234567890"), S("abcdefghi1234567890j"));
- test(S("abcdefghij"), 9, 0, S("12345678901234567890"), S("abcdefghi12345678901234567890j"));
- test(S("abcdefghij"), 9, 1, S(""), S("abcdefghi"));
- test(S("abcdefghij"), 9, 1, S("12345"), S("abcdefghi12345"));
- test(S("abcdefghij"), 9, 1, S("1234567890"), S("abcdefghi1234567890"));
- test(S("abcdefghij"), 9, 1, S("12345678901234567890"), S("abcdefghi12345678901234567890"));
- test(S("abcdefghij"), 9, 2, S(""), S("abcdefghi"));
- test(S("abcdefghij"), 9, 2, S("12345"), S("abcdefghi12345"));
- test(S("abcdefghij"), 9, 2, S("1234567890"), S("abcdefghi1234567890"));
- test(S("abcdefghij"), 9, 2, S("12345678901234567890"), S("abcdefghi12345678901234567890"));
- test(S("abcdefghij"), 10, 0, S(""), S("abcdefghij"));
- test(S("abcdefghij"), 10, 0, S("12345"), S("abcdefghij12345"));
- test(S("abcdefghij"), 10, 0, S("1234567890"), S("abcdefghij1234567890"));
- test(S("abcdefghij"), 10, 0, S("12345678901234567890"), S("abcdefghij12345678901234567890"));
- test(S("abcdefghij"), 10, 1, S(""), S("abcdefghij"));
- test(S("abcdefghij"), 10, 1, S("12345"), S("abcdefghij12345"));
- test(S("abcdefghij"), 10, 1, S("1234567890"), S("abcdefghij1234567890"));
- test(S("abcdefghij"), 10, 1, S("12345678901234567890"), S("abcdefghij12345678901234567890"));
- test(S("abcdefghij"), 11, 0, S(""), S("can't happen"));
- test(S("abcdefghij"), 11, 0, S("12345"), S("can't happen"));
- test(S("abcdefghij"), 11, 0, S("1234567890"), S("can't happen"));
- test(S("abcdefghij"), 11, 0, S("12345678901234567890"), S("can't happen"));
+TEST_CONSTEXPR_CXX20 bool test1() {
+ test(S("abcde"), 6, 0, S(""), S("can't happen"));
+ test(S("abcde"), 6, 0, S("12345"), S("can't happen"));
+ test(S("abcde"), 6, 0, S("1234567890"), S("can't happen"));
+ test(S("abcde"), 6, 0, S("12345678901234567890"), S("can't happen"));
+ test(S("abcdefghij"), 0, 0, S(""), S("abcdefghij"));
+ test(S("abcdefghij"), 0, 0, S("12345"), S("12345abcdefghij"));
+ test(S("abcdefghij"), 0, 0, S("1234567890"), S("1234567890abcdefghij"));
+ test(S("abcdefghij"), 0, 0, S("12345678901234567890"), S("12345678901234567890abcdefghij"));
+ test(S("abcdefghij"), 0, 1, S(""), S("bcdefghij"));
+ test(S("abcdefghij"), 0, 1, S("12345"), S("12345bcdefghij"));
+ test(S("abcdefghij"), 0, 1, S("1234567890"), S("1234567890bcdefghij"));
+ test(S("abcdefghij"), 0, 1, S("12345678901234567890"), S("12345678901234567890bcdefghij"));
+ test(S("abcdefghij"), 0, 5, S(""), S("fghij"));
+ test(S("abcdefghij"), 0, 5, S("12345"), S("12345fghij"));
+ test(S("abcdefghij"), 0, 5, S("1234567890"), S("1234567890fghij"));
+ test(S("abcdefghij"), 0, 5, S("12345678901234567890"), S("12345678901234567890fghij"));
+ test(S("abcdefghij"), 0, 9, S(""), S("j"));
+ test(S("abcdefghij"), 0, 9, S("12345"), S("12345j"));
+ test(S("abcdefghij"), 0, 9, S("1234567890"), S("1234567890j"));
+ test(S("abcdefghij"), 0, 9, S("12345678901234567890"), S("12345678901234567890j"));
+ test(S("abcdefghij"), 0, 10, S(""), S(""));
+ test(S("abcdefghij"), 0, 10, S("12345"), S("12345"));
+ test(S("abcdefghij"), 0, 10, S("1234567890"), S("1234567890"));
+ test(S("abcdefghij"), 0, 10, S("12345678901234567890"), S("12345678901234567890"));
+ test(S("abcdefghij"), 0, 11, S(""), S(""));
+ test(S("abcdefghij"), 0, 11, S("12345"), S("12345"));
+ test(S("abcdefghij"), 0, 11, S("1234567890"), S("1234567890"));
+ test(S("abcdefghij"), 0, 11, S("12345678901234567890"), S("12345678901234567890"));
+ test(S("abcdefghij"), 1, 0, S(""), S("abcdefghij"));
+ test(S("abcdefghij"), 1, 0, S("12345"), S("a12345bcdefghij"));
+ test(S("abcdefghij"), 1, 0, S("1234567890"), S("a1234567890bcdefghij"));
+ test(S("abcdefghij"), 1, 0, S("12345678901234567890"), S("a12345678901234567890bcdefghij"));
+ test(S("abcdefghij"), 1, 1, S(""), S("acdefghij"));
+ test(S("abcdefghij"), 1, 1, S("12345"), S("a12345cdefghij"));
+ test(S("abcdefghij"), 1, 1, S("1234567890"), S("a1234567890cdefghij"));
+ test(S("abcdefghij"), 1, 1, S("12345678901234567890"), S("a12345678901234567890cdefghij"));
+ test(S("abcdefghij"), 1, 4, S(""), S("afghij"));
+ test(S("abcdefghij"), 1, 4, S("12345"), S("a12345fghij"));
+ test(S("abcdefghij"), 1, 4, S("1234567890"), S("a1234567890fghij"));
+ test(S("abcdefghij"), 1, 4, S("12345678901234567890"), S("a12345678901234567890fghij"));
+ test(S("abcdefghij"), 1, 8, S(""), S("aj"));
+ test(S("abcdefghij"), 1, 8, S("12345"), S("a12345j"));
+ test(S("abcdefghij"), 1, 8, S("1234567890"), S("a1234567890j"));
+ test(S("abcdefghij"), 1, 8, S("12345678901234567890"), S("a12345678901234567890j"));
+ test(S("abcdefghij"), 1, 9, S(""), S("a"));
+ test(S("abcdefghij"), 1, 9, S("12345"), S("a12345"));
+ test(S("abcdefghij"), 1, 9, S("1234567890"), S("a1234567890"));
+ test(S("abcdefghij"), 1, 9, S("12345678901234567890"), S("a12345678901234567890"));
+ test(S("abcdefghij"), 1, 10, S(""), S("a"));
+ test(S("abcdefghij"), 1, 10, S("12345"), S("a12345"));
+ test(S("abcdefghij"), 1, 10, S("1234567890"), S("a1234567890"));
+ test(S("abcdefghij"), 1, 10, S("12345678901234567890"), S("a12345678901234567890"));
+ test(S("abcdefghij"), 5, 0, S(""), S("abcdefghij"));
+ test(S("abcdefghij"), 5, 0, S("12345"), S("abcde12345fghij"));
+ test(S("abcdefghij"), 5, 0, S("1234567890"), S("abcde1234567890fghij"));
+ test(S("abcdefghij"), 5, 0, S("12345678901234567890"), S("abcde12345678901234567890fghij"));
+ test(S("abcdefghij"), 5, 1, S(""), S("abcdeghij"));
+ test(S("abcdefghij"), 5, 1, S("12345"), S("abcde12345ghij"));
+ test(S("abcdefghij"), 5, 1, S("1234567890"), S("abcde1234567890ghij"));
+ test(S("abcdefghij"), 5, 1, S("12345678901234567890"), S("abcde12345678901234567890ghij"));
+ test(S("abcdefghij"), 5, 2, S(""), S("abcdehij"));
+ test(S("abcdefghij"), 5, 2, S("12345"), S("abcde12345hij"));
+ test(S("abcdefghij"), 5, 2, S("1234567890"), S("abcde1234567890hij"));
+ test(S("abcdefghij"), 5, 2, S("12345678901234567890"), S("abcde12345678901234567890hij"));
+ test(S("abcdefghij"), 5, 4, S(""), S("abcdej"));
+ test(S("abcdefghij"), 5, 4, S("12345"), S("abcde12345j"));
+ test(S("abcdefghij"), 5, 4, S("1234567890"), S("abcde1234567890j"));
+ test(S("abcdefghij"), 5, 4, S("12345678901234567890"), S("abcde12345678901234567890j"));
+ test(S("abcdefghij"), 5, 5, S(""), S("abcde"));
+ test(S("abcdefghij"), 5, 5, S("12345"), S("abcde12345"));
+ test(S("abcdefghij"), 5, 5, S("1234567890"), S("abcde1234567890"));
+ test(S("abcdefghij"), 5, 5, S("12345678901234567890"), S("abcde12345678901234567890"));
+ test(S("abcdefghij"), 5, 6, S(""), S("abcde"));
+ test(S("abcdefghij"), 5, 6, S("12345"), S("abcde12345"));
+ test(S("abcdefghij"), 5, 6, S("1234567890"), S("abcde1234567890"));
+ test(S("abcdefghij"), 5, 6, S("12345678901234567890"), S("abcde12345678901234567890"));
+ test(S("abcdefghij"), 9, 0, S(""), S("abcdefghij"));
+ test(S("abcdefghij"), 9, 0, S("12345"), S("abcdefghi12345j"));
+ test(S("abcdefghij"), 9, 0, S("1234567890"), S("abcdefghi1234567890j"));
+ test(S("abcdefghij"), 9, 0, S("12345678901234567890"), S("abcdefghi12345678901234567890j"));
+ test(S("abcdefghij"), 9, 1, S(""), S("abcdefghi"));
+ test(S("abcdefghij"), 9, 1, S("12345"), S("abcdefghi12345"));
+ test(S("abcdefghij"), 9, 1, S("1234567890"), S("abcdefghi1234567890"));
+ test(S("abcdefghij"), 9, 1, S("12345678901234567890"), S("abcdefghi12345678901234567890"));
+ test(S("abcdefghij"), 9, 2, S(""), S("abcdefghi"));
+ test(S("abcdefghij"), 9, 2, S("12345"), S("abcdefghi12345"));
+ test(S("abcdefghij"), 9, 2, S("1234567890"), S("abcdefghi1234567890"));
+ test(S("abcdefghij"), 9, 2, S("12345678901234567890"), S("abcdefghi12345678901234567890"));
+ test(S("abcdefghij"), 10, 0, S(""), S("abcdefghij"));
+ test(S("abcdefghij"), 10, 0, S("12345"), S("abcdefghij12345"));
+ test(S("abcdefghij"), 10, 0, S("1234567890"), S("abcdefghij1234567890"));
+ test(S("abcdefghij"), 10, 0, S("12345678901234567890"), S("abcdefghij12345678901234567890"));
+ test(S("abcdefghij"), 10, 1, S(""), S("abcdefghij"));
+ test(S("abcdefghij"), 10, 1, S("12345"), S("abcdefghij12345"));
+ test(S("abcdefghij"), 10, 1, S("1234567890"), S("abcdefghij1234567890"));
+ test(S("abcdefghij"), 10, 1, S("12345678901234567890"), S("abcdefghij12345678901234567890"));
+ test(S("abcdefghij"), 11, 0, S(""), S("can't happen"));
+ test(S("abcdefghij"), 11, 0, S("12345"), S("can't happen"));
+ test(S("abcdefghij"), 11, 0, S("1234567890"), S("can't happen"));
+ test(S("abcdefghij"), 11, 0, S("12345678901234567890"), S("can't happen"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test2()
-{
- test(S("abcdefghijklmnopqrst"), 0, 0, S(""), S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, S("12345"), S("12345abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, S("1234567890"), S("1234567890abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, S("12345678901234567890"), S("12345678901234567890abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, S(""), S("bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, S("12345"), S("12345bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, S("1234567890"), S("1234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, S("12345678901234567890"), S("12345678901234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, S(""), S("klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, S("12345"), S("12345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, S("1234567890"), S("1234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, S("12345678901234567890"), S("12345678901234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 19, S(""), S("t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, S("12345"), S("12345t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, S("1234567890"), S("1234567890t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, S("12345678901234567890"), S("12345678901234567890t"));
- test(S("abcdefghijklmnopqrst"), 0, 20, S(""), S(""));
- test(S("abcdefghijklmnopqrst"), 0, 20, S("12345"), S("12345"));
- test(S("abcdefghijklmnopqrst"), 0, 20, S("1234567890"), S("1234567890"));
- test(S("abcdefghijklmnopqrst"), 0, 20, S("12345678901234567890"), S("12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 0, 21, S(""), S(""));
- test(S("abcdefghijklmnopqrst"), 0, 21, S("12345"), S("12345"));
- test(S("abcdefghijklmnopqrst"), 0, 21, S("1234567890"), S("1234567890"));
- test(S("abcdefghijklmnopqrst"), 0, 21, S("12345678901234567890"), S("12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 1, 0, S(""), S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, S("12345"), S("a12345bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, S("1234567890"), S("a1234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, S("12345678901234567890"), S("a12345678901234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, S(""), S("acdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, S("12345"), S("a12345cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, S("1234567890"), S("a1234567890cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, S("12345678901234567890"), S("a12345678901234567890cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, S(""), S("aklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, S("12345"), S("a12345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, S("1234567890"), S("a1234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, S("12345678901234567890"), S("a12345678901234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 18, S(""), S("at"));
- test(S("abcdefghijklmnopqrst"), 1, 18, S("12345"), S("a12345t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, S("1234567890"), S("a1234567890t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, S("12345678901234567890"), S("a12345678901234567890t"));
- test(S("abcdefghijklmnopqrst"), 1, 19, S(""), S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 19, S("12345"), S("a12345"));
- test(S("abcdefghijklmnopqrst"), 1, 19, S("1234567890"), S("a1234567890"));
- test(S("abcdefghijklmnopqrst"), 1, 19, S("12345678901234567890"), S("a12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 1, 20, S(""), S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 20, S("12345"), S("a12345"));
- test(S("abcdefghijklmnopqrst"), 1, 20, S("1234567890"), S("a1234567890"));
- test(S("abcdefghijklmnopqrst"), 1, 20, S("12345678901234567890"), S("a12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 10, 0, S(""), S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, S("12345"), S("abcdefghij12345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, S("1234567890"), S("abcdefghij1234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, S("12345678901234567890"), S("abcdefghij12345678901234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, S(""), S("abcdefghijlmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, S("12345"), S("abcdefghij12345lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, S("1234567890"), S("abcdefghij1234567890lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, S("12345678901234567890"), S("abcdefghij12345678901234567890lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, S(""), S("abcdefghijpqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, S("12345"), S("abcdefghij12345pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, S("1234567890"), S("abcdefghij1234567890pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, S("12345678901234567890"), S("abcdefghij12345678901234567890pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 9, S(""), S("abcdefghijt"));
- test(S("abcdefghijklmnopqrst"), 10, 9, S("12345"), S("abcdefghij12345t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, S("1234567890"), S("abcdefghij1234567890t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, S("12345678901234567890"), S("abcdefghij12345678901234567890t"));
- test(S("abcdefghijklmnopqrst"), 10, 10, S(""), S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 10, S("12345"), S("abcdefghij12345"));
- test(S("abcdefghijklmnopqrst"), 10, 10, S("1234567890"), S("abcdefghij1234567890"));
- test(S("abcdefghijklmnopqrst"), 10, 10, S("12345678901234567890"), S("abcdefghij12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 10, 11, S(""), S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 11, S("12345"), S("abcdefghij12345"));
- test(S("abcdefghijklmnopqrst"), 10, 11, S("1234567890"), S("abcdefghij1234567890"));
- test(S("abcdefghijklmnopqrst"), 10, 11, S("12345678901234567890"), S("abcdefghij12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 19, 0, S(""), S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, 0, S("12345"), S("abcdefghijklmnopqrs12345t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, S("1234567890"), S("abcdefghijklmnopqrs1234567890t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, S("12345678901234567890"), S("abcdefghijklmnopqrs12345678901234567890t"));
- test(S("abcdefghijklmnopqrst"), 19, 1, S(""), S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 1, S("12345"), S("abcdefghijklmnopqrs12345"));
- test(S("abcdefghijklmnopqrst"), 19, 1, S("1234567890"), S("abcdefghijklmnopqrs1234567890"));
- test(S("abcdefghijklmnopqrst"), 19, 1, S("12345678901234567890"), S("abcdefghijklmnopqrs12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 19, 2, S(""), S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 2, S("12345"), S("abcdefghijklmnopqrs12345"));
- test(S("abcdefghijklmnopqrst"), 19, 2, S("1234567890"), S("abcdefghijklmnopqrs1234567890"));
- test(S("abcdefghijklmnopqrst"), 19, 2, S("12345678901234567890"), S("abcdefghijklmnopqrs12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 20, 0, S(""), S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 0, S("12345"), S("abcdefghijklmnopqrst12345"));
- test(S("abcdefghijklmnopqrst"), 20, 0, S("1234567890"), S("abcdefghijklmnopqrst1234567890"));
- test(S("abcdefghijklmnopqrst"), 20, 0, S("12345678901234567890"), S("abcdefghijklmnopqrst12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 20, 1, S(""), S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 1, S("12345"), S("abcdefghijklmnopqrst12345"));
- test(S("abcdefghijklmnopqrst"), 20, 1, S("1234567890"), S("abcdefghijklmnopqrst1234567890"));
- test(S("abcdefghijklmnopqrst"), 20, 1, S("12345678901234567890"), S("abcdefghijklmnopqrst12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 21, 0, S(""), S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, S("12345"), S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, S("1234567890"), S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, S("12345678901234567890"), S("can't happen"));
+TEST_CONSTEXPR_CXX20 bool test2() {
+ test(S("abcdefghijklmnopqrst"), 0, 0, S(""), S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("12345"), S("12345abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("1234567890"), S("1234567890abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("12345678901234567890"), S("12345678901234567890abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, S(""), S("bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("12345"), S("12345bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("1234567890"), S("1234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("12345678901234567890"), S("12345678901234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, S(""), S("klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("12345"), S("12345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("1234567890"), S("1234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("12345678901234567890"), S("12345678901234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, S(""), S("t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("12345"), S("12345t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("1234567890"), S("1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("12345678901234567890"), S("12345678901234567890t"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, S(""), S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("12345"), S("12345"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("1234567890"), S("1234567890"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("12345678901234567890"), S("12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, S(""), S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("12345"), S("12345"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("1234567890"), S("1234567890"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("12345678901234567890"), S("12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, S(""), S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("12345"), S("a12345bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("1234567890"), S("a1234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("12345678901234567890"), S("a12345678901234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, S(""), S("acdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("12345"), S("a12345cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("1234567890"), S("a1234567890cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("12345678901234567890"), S("a12345678901234567890cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, S(""), S("aklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("12345"), S("a12345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("1234567890"), S("a1234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("12345678901234567890"), S("a12345678901234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, S(""), S("at"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("12345"), S("a12345t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("1234567890"), S("a1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("12345678901234567890"), S("a12345678901234567890t"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, S(""), S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("12345"), S("a12345"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("1234567890"), S("a1234567890"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("12345678901234567890"), S("a12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, S(""), S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("12345"), S("a12345"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("1234567890"), S("a1234567890"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("12345678901234567890"), S("a12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, S(""), S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("12345"), S("abcdefghij12345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("1234567890"), S("abcdefghij1234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("12345678901234567890"), S("abcdefghij12345678901234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, S(""), S("abcdefghijlmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("12345"), S("abcdefghij12345lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("1234567890"), S("abcdefghij1234567890lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("12345678901234567890"), S("abcdefghij12345678901234567890lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, S(""), S("abcdefghijpqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("12345"), S("abcdefghij12345pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("1234567890"), S("abcdefghij1234567890pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("12345678901234567890"), S("abcdefghij12345678901234567890pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, S(""), S("abcdefghijt"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("12345"), S("abcdefghij12345t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("1234567890"), S("abcdefghij1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("12345678901234567890"), S("abcdefghij12345678901234567890t"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, S(""), S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("12345"), S("abcdefghij12345"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("1234567890"), S("abcdefghij1234567890"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("12345678901234567890"), S("abcdefghij12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, S(""), S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("12345"), S("abcdefghij12345"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("1234567890"), S("abcdefghij1234567890"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("12345678901234567890"), S("abcdefghij12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, S(""), S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("12345"), S("abcdefghijklmnopqrs12345t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("1234567890"), S("abcdefghijklmnopqrs1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("12345678901234567890"), S("abcdefghijklmnopqrs12345678901234567890t"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, S(""), S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("12345"), S("abcdefghijklmnopqrs12345"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("1234567890"), S("abcdefghijklmnopqrs1234567890"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("12345678901234567890"), S("abcdefghijklmnopqrs12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, S(""), S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("12345"), S("abcdefghijklmnopqrs12345"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("1234567890"), S("abcdefghijklmnopqrs1234567890"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("12345678901234567890"), S("abcdefghijklmnopqrs12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, S(""), S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("12345"), S("abcdefghijklmnopqrst12345"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("1234567890"), S("abcdefghijklmnopqrst1234567890"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("12345678901234567890"), S("abcdefghijklmnopqrst12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, S(""), S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("12345"), S("abcdefghijklmnopqrst12345"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("1234567890"), S("abcdefghijklmnopqrst1234567890"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("12345678901234567890"), S("abcdefghijklmnopqrst12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, S(""), S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("12345"), S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("1234567890"), S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("12345678901234567890"), S("can't happen"));
- return true;
+ return true;
}
template <class S>
@@ -391,8 +381,7 @@ void test() {
#endif
}
-int main(int, char**)
-{
+int main(int, char**) {
test<std::string>();
#if TEST_STD_VER >= 11
test<std::basic_string<char, std::char_traits<char>, min_allocator<char>>>();
diff --git a/libcxx/test/std/strings/basic.string/string.modifiers/string_replace/size_size_string_size_size.pass.cpp b/libcxx/test/std/strings/basic.string/string.modifiers/string_replace/size_size_string_size_size.pass.cpp
index b700eb7f0c20ed9..00e8a901c332760 100644
--- a/libcxx/test/std/strings/basic.string/string.modifiers/string_replace/size_size_string_size_size.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.modifiers/string_replace/size_size_string_size_size.pass.cpp
@@ -25,5952 +25,5955 @@
template <class S>
TEST_CONSTEXPR_CXX20 void
-test(S s, typename S::size_type pos1, typename S::size_type n1,
- S str, typename S::size_type pos2, typename S::size_type n2,
- S expected)
-{
- const typename S::size_type old_size = s.size();
- S s0 = s;
- if (pos1 <= old_size && pos2 <= str.size())
- {
- s.replace(pos1, n1, str, pos2, n2);
- LIBCPP_ASSERT(s.__invariants());
- assert(s == expected);
- typename S::size_type xlen = std::min(n1, old_size - pos1);
- typename S::size_type rlen = std::min(n2, str.size() - pos2);
- assert(s.size() == old_size - xlen + rlen);
- }
+test(S s,
+ typename S::size_type pos1,
+ typename S::size_type n1,
+ S str,
+ typename S::size_type pos2,
+ typename S::size_type n2,
+ S expected) {
+ const typename S::size_type old_size = s.size();
+ S s0 = s;
+ if (pos1 <= old_size && pos2 <= str.size()) {
+ s.replace(pos1, n1, str, pos2, n2);
+ LIBCPP_ASSERT(s.__invariants());
+ assert(s == expected);
+ typename S::size_type xlen = std::min(n1, old_size - pos1);
+ typename S::size_type rlen = std::min(n2, str.size() - pos2);
+ assert(s.size() == old_size - xlen + rlen);
+ }
#ifndef TEST_HAS_NO_EXCEPTIONS
- else if (!TEST_IS_CONSTANT_EVALUATED)
- {
- try
- {
- s.replace(pos1, n1, str, pos2, n2);
- assert(false);
- }
- catch (std::out_of_range&)
- {
- assert(pos1 > old_size || pos2 > str.size());
- assert(s == s0);
- }
+ else if (!TEST_IS_CONSTANT_EVALUATED) {
+ try {
+ s.replace(pos1, n1, str, pos2, n2);
+ assert(false);
+ } catch (std::out_of_range&) {
+ assert(pos1 > old_size || pos2 > str.size());
+ assert(s == s0);
}
+ }
#endif
}
template <class S>
TEST_CONSTEXPR_CXX20 void
-test_npos(S s, typename S::size_type pos1, typename S::size_type n1,
- S str, typename S::size_type pos2,
- S expected)
-{
- const typename S::size_type old_size = s.size();
- S s0 = s;
- if (pos1 <= old_size && pos2 <= str.size())
- {
- s.replace(pos1, n1, str, pos2);
- LIBCPP_ASSERT(s.__invariants());
- assert(s == expected);
- typename S::size_type xlen = std::min(n1, old_size - pos1);
- typename S::size_type rlen = std::min(S::npos, str.size() - pos2);
- assert(s.size() == old_size - xlen + rlen);
- }
+test_npos(S s, typename S::size_type pos1, typename S::size_type n1, S str, typename S::size_type pos2, S expected) {
+ const typename S::size_type old_size = s.size();
+ S s0 = s;
+ if (pos1 <= old_size && pos2 <= str.size()) {
+ s.replace(pos1, n1, str, pos2);
+ LIBCPP_ASSERT(s.__invariants());
+ assert(s == expected);
+ typename S::size_type xlen = std::min(n1, old_size - pos1);
+ typename S::size_type rlen = std::min(S::npos, str.size() - pos2);
+ assert(s.size() == old_size - xlen + rlen);
+ }
#ifndef TEST_HAS_NO_EXCEPTIONS
- else if (!TEST_IS_CONSTANT_EVALUATED)
- {
- try
- {
- s.replace(pos1, n1, str, pos2);
- assert(false);
- }
- catch (std::out_of_range&)
- {
- assert(pos1 > old_size || pos2 > str.size());
- assert(s == s0);
- }
+ else if (!TEST_IS_CONSTANT_EVALUATED) {
+ try {
+ s.replace(pos1, n1, str, pos2);
+ assert(false);
+ } catch (std::out_of_range&) {
+ assert(pos1 > old_size || pos2 > str.size());
+ assert(s == s0);
}
+ }
#endif
}
-
template <class S>
-TEST_CONSTEXPR_CXX20 bool test0()
-{
- test(S(""), 0, 0, S(""), 0, 0, S(""));
- test(S(""), 0, 0, S(""), 0, 1, S(""));
- test(S(""), 0, 0, S(""), 1, 0, S("can't happen"));
- test(S(""), 0, 0, S("12345"), 0, 0, S(""));
- test(S(""), 0, 0, S("12345"), 0, 1, S("1"));
- test(S(""), 0, 0, S("12345"), 0, 2, S("12"));
- test(S(""), 0, 0, S("12345"), 0, 4, S("1234"));
- test(S(""), 0, 0, S("12345"), 0, 5, S("12345"));
- test(S(""), 0, 0, S("12345"), 0, 6, S("12345"));
- test(S(""), 0, 0, S("12345"), 1, 0, S(""));
- test(S(""), 0, 0, S("12345"), 1, 1, S("2"));
- test(S(""), 0, 0, S("12345"), 1, 2, S("23"));
- test(S(""), 0, 0, S("12345"), 1, 3, S("234"));
- test(S(""), 0, 0, S("12345"), 1, 4, S("2345"));
- test(S(""), 0, 0, S("12345"), 1, 5, S("2345"));
- test(S(""), 0, 0, S("12345"), 2, 0, S(""));
- test(S(""), 0, 0, S("12345"), 2, 1, S("3"));
- test(S(""), 0, 0, S("12345"), 2, 2, S("34"));
- test(S(""), 0, 0, S("12345"), 2, 3, S("345"));
- test(S(""), 0, 0, S("12345"), 2, 4, S("345"));
- test(S(""), 0, 0, S("12345"), 4, 0, S(""));
- test(S(""), 0, 0, S("12345"), 4, 1, S("5"));
- test(S(""), 0, 0, S("12345"), 4, 2, S("5"));
- test(S(""), 0, 0, S("12345"), 5, 0, S(""));
- test(S(""), 0, 0, S("12345"), 5, 1, S(""));
- test(S(""), 0, 0, S("12345"), 6, 0, S("can't happen"));
- test(S(""), 0, 0, S("1234567890"), 0, 0, S(""));
- test(S(""), 0, 0, S("1234567890"), 0, 1, S("1"));
- test(S(""), 0, 0, S("1234567890"), 0, 5, S("12345"));
- test(S(""), 0, 0, S("1234567890"), 0, 9, S("123456789"));
- test(S(""), 0, 0, S("1234567890"), 0, 10, S("1234567890"));
- test(S(""), 0, 0, S("1234567890"), 0, 11, S("1234567890"));
- test(S(""), 0, 0, S("1234567890"), 1, 0, S(""));
- test(S(""), 0, 0, S("1234567890"), 1, 1, S("2"));
- test(S(""), 0, 0, S("1234567890"), 1, 4, S("2345"));
- test(S(""), 0, 0, S("1234567890"), 1, 8, S("23456789"));
- test(S(""), 0, 0, S("1234567890"), 1, 9, S("234567890"));
- test(S(""), 0, 0, S("1234567890"), 1, 10, S("234567890"));
- test(S(""), 0, 0, S("1234567890"), 5, 0, S(""));
- test(S(""), 0, 0, S("1234567890"), 5, 1, S("6"));
- test(S(""), 0, 0, S("1234567890"), 5, 2, S("67"));
- test(S(""), 0, 0, S("1234567890"), 5, 4, S("6789"));
- test(S(""), 0, 0, S("1234567890"), 5, 5, S("67890"));
- test(S(""), 0, 0, S("1234567890"), 5, 6, S("67890"));
- test(S(""), 0, 0, S("1234567890"), 9, 0, S(""));
- test(S(""), 0, 0, S("1234567890"), 9, 1, S("0"));
- test(S(""), 0, 0, S("1234567890"), 9, 2, S("0"));
- test(S(""), 0, 0, S("1234567890"), 10, 0, S(""));
- test(S(""), 0, 0, S("1234567890"), 10, 1, S(""));
- test(S(""), 0, 0, S("1234567890"), 11, 0, S("can't happen"));
- test(S(""), 0, 0, S("12345678901234567890"), 0, 0, S(""));
- test(S(""), 0, 0, S("12345678901234567890"), 0, 1, S("1"));
- test(S(""), 0, 0, S("12345678901234567890"), 0, 10, S("1234567890"));
- test(S(""), 0, 0, S("12345678901234567890"), 0, 19, S("1234567890123456789"));
- test(S(""), 0, 0, S("12345678901234567890"), 0, 20, S("12345678901234567890"));
- test(S(""), 0, 0, S("12345678901234567890"), 0, 21, S("12345678901234567890"));
- test(S(""), 0, 0, S("12345678901234567890"), 1, 0, S(""));
- test(S(""), 0, 0, S("12345678901234567890"), 1, 1, S("2"));
- test(S(""), 0, 0, S("12345678901234567890"), 1, 9, S("234567890"));
- test(S(""), 0, 0, S("12345678901234567890"), 1, 18, S("234567890123456789"));
- test(S(""), 0, 0, S("12345678901234567890"), 1, 19, S("2345678901234567890"));
- test(S(""), 0, 0, S("12345678901234567890"), 1, 20, S("2345678901234567890"));
- test(S(""), 0, 0, S("12345678901234567890"), 10, 0, S(""));
- test(S(""), 0, 0, S("12345678901234567890"), 10, 1, S("1"));
- test(S(""), 0, 0, S("12345678901234567890"), 10, 5, S("12345"));
- test(S(""), 0, 0, S("12345678901234567890"), 10, 9, S("123456789"));
- test(S(""), 0, 0, S("12345678901234567890"), 10, 10, S("1234567890"));
- test(S(""), 0, 0, S("12345678901234567890"), 10, 11, S("1234567890"));
- test(S(""), 0, 0, S("12345678901234567890"), 19, 0, S(""));
- test(S(""), 0, 0, S("12345678901234567890"), 19, 1, S("0"));
- test(S(""), 0, 0, S("12345678901234567890"), 19, 2, S("0"));
- test(S(""), 0, 0, S("12345678901234567890"), 20, 0, S(""));
- test(S(""), 0, 0, S("12345678901234567890"), 20, 1, S(""));
- test(S(""), 0, 0, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S(""), 0, 1, S(""), 0, 0, S(""));
- test(S(""), 0, 1, S(""), 0, 1, S(""));
- test(S(""), 0, 1, S(""), 1, 0, S("can't happen"));
- test(S(""), 0, 1, S("12345"), 0, 0, S(""));
- test(S(""), 0, 1, S("12345"), 0, 1, S("1"));
- test(S(""), 0, 1, S("12345"), 0, 2, S("12"));
- test(S(""), 0, 1, S("12345"), 0, 4, S("1234"));
- test(S(""), 0, 1, S("12345"), 0, 5, S("12345"));
- test(S(""), 0, 1, S("12345"), 0, 6, S("12345"));
- test(S(""), 0, 1, S("12345"), 1, 0, S(""));
- test(S(""), 0, 1, S("12345"), 1, 1, S("2"));
- test(S(""), 0, 1, S("12345"), 1, 2, S("23"));
- test(S(""), 0, 1, S("12345"), 1, 3, S("234"));
- test(S(""), 0, 1, S("12345"), 1, 4, S("2345"));
- test(S(""), 0, 1, S("12345"), 1, 5, S("2345"));
- test(S(""), 0, 1, S("12345"), 2, 0, S(""));
- test(S(""), 0, 1, S("12345"), 2, 1, S("3"));
- test(S(""), 0, 1, S("12345"), 2, 2, S("34"));
- test(S(""), 0, 1, S("12345"), 2, 3, S("345"));
- test(S(""), 0, 1, S("12345"), 2, 4, S("345"));
- test(S(""), 0, 1, S("12345"), 4, 0, S(""));
- test(S(""), 0, 1, S("12345"), 4, 1, S("5"));
- test(S(""), 0, 1, S("12345"), 4, 2, S("5"));
- test(S(""), 0, 1, S("12345"), 5, 0, S(""));
- test(S(""), 0, 1, S("12345"), 5, 1, S(""));
- test(S(""), 0, 1, S("12345"), 6, 0, S("can't happen"));
+TEST_CONSTEXPR_CXX20 bool test0() {
+ test(S(""), 0, 0, S(""), 0, 0, S(""));
+ test(S(""), 0, 0, S(""), 0, 1, S(""));
+ test(S(""), 0, 0, S(""), 1, 0, S("can't happen"));
+ test(S(""), 0, 0, S("12345"), 0, 0, S(""));
+ test(S(""), 0, 0, S("12345"), 0, 1, S("1"));
+ test(S(""), 0, 0, S("12345"), 0, 2, S("12"));
+ test(S(""), 0, 0, S("12345"), 0, 4, S("1234"));
+ test(S(""), 0, 0, S("12345"), 0, 5, S("12345"));
+ test(S(""), 0, 0, S("12345"), 0, 6, S("12345"));
+ test(S(""), 0, 0, S("12345"), 1, 0, S(""));
+ test(S(""), 0, 0, S("12345"), 1, 1, S("2"));
+ test(S(""), 0, 0, S("12345"), 1, 2, S("23"));
+ test(S(""), 0, 0, S("12345"), 1, 3, S("234"));
+ test(S(""), 0, 0, S("12345"), 1, 4, S("2345"));
+ test(S(""), 0, 0, S("12345"), 1, 5, S("2345"));
+ test(S(""), 0, 0, S("12345"), 2, 0, S(""));
+ test(S(""), 0, 0, S("12345"), 2, 1, S("3"));
+ test(S(""), 0, 0, S("12345"), 2, 2, S("34"));
+ test(S(""), 0, 0, S("12345"), 2, 3, S("345"));
+ test(S(""), 0, 0, S("12345"), 2, 4, S("345"));
+ test(S(""), 0, 0, S("12345"), 4, 0, S(""));
+ test(S(""), 0, 0, S("12345"), 4, 1, S("5"));
+ test(S(""), 0, 0, S("12345"), 4, 2, S("5"));
+ test(S(""), 0, 0, S("12345"), 5, 0, S(""));
+ test(S(""), 0, 0, S("12345"), 5, 1, S(""));
+ test(S(""), 0, 0, S("12345"), 6, 0, S("can't happen"));
+ test(S(""), 0, 0, S("1234567890"), 0, 0, S(""));
+ test(S(""), 0, 0, S("1234567890"), 0, 1, S("1"));
+ test(S(""), 0, 0, S("1234567890"), 0, 5, S("12345"));
+ test(S(""), 0, 0, S("1234567890"), 0, 9, S("123456789"));
+ test(S(""), 0, 0, S("1234567890"), 0, 10, S("1234567890"));
+ test(S(""), 0, 0, S("1234567890"), 0, 11, S("1234567890"));
+ test(S(""), 0, 0, S("1234567890"), 1, 0, S(""));
+ test(S(""), 0, 0, S("1234567890"), 1, 1, S("2"));
+ test(S(""), 0, 0, S("1234567890"), 1, 4, S("2345"));
+ test(S(""), 0, 0, S("1234567890"), 1, 8, S("23456789"));
+ test(S(""), 0, 0, S("1234567890"), 1, 9, S("234567890"));
+ test(S(""), 0, 0, S("1234567890"), 1, 10, S("234567890"));
+ test(S(""), 0, 0, S("1234567890"), 5, 0, S(""));
+ test(S(""), 0, 0, S("1234567890"), 5, 1, S("6"));
+ test(S(""), 0, 0, S("1234567890"), 5, 2, S("67"));
+ test(S(""), 0, 0, S("1234567890"), 5, 4, S("6789"));
+ test(S(""), 0, 0, S("1234567890"), 5, 5, S("67890"));
+ test(S(""), 0, 0, S("1234567890"), 5, 6, S("67890"));
+ test(S(""), 0, 0, S("1234567890"), 9, 0, S(""));
+ test(S(""), 0, 0, S("1234567890"), 9, 1, S("0"));
+ test(S(""), 0, 0, S("1234567890"), 9, 2, S("0"));
+ test(S(""), 0, 0, S("1234567890"), 10, 0, S(""));
+ test(S(""), 0, 0, S("1234567890"), 10, 1, S(""));
+ test(S(""), 0, 0, S("1234567890"), 11, 0, S("can't happen"));
+ test(S(""), 0, 0, S("12345678901234567890"), 0, 0, S(""));
+ test(S(""), 0, 0, S("12345678901234567890"), 0, 1, S("1"));
+ test(S(""), 0, 0, S("12345678901234567890"), 0, 10, S("1234567890"));
+ test(S(""), 0, 0, S("12345678901234567890"), 0, 19, S("1234567890123456789"));
+ test(S(""), 0, 0, S("12345678901234567890"), 0, 20, S("12345678901234567890"));
+ test(S(""), 0, 0, S("12345678901234567890"), 0, 21, S("12345678901234567890"));
+ test(S(""), 0, 0, S("12345678901234567890"), 1, 0, S(""));
+ test(S(""), 0, 0, S("12345678901234567890"), 1, 1, S("2"));
+ test(S(""), 0, 0, S("12345678901234567890"), 1, 9, S("234567890"));
+ test(S(""), 0, 0, S("12345678901234567890"), 1, 18, S("234567890123456789"));
+ test(S(""), 0, 0, S("12345678901234567890"), 1, 19, S("2345678901234567890"));
+ test(S(""), 0, 0, S("12345678901234567890"), 1, 20, S("2345678901234567890"));
+ test(S(""), 0, 0, S("12345678901234567890"), 10, 0, S(""));
+ test(S(""), 0, 0, S("12345678901234567890"), 10, 1, S("1"));
+ test(S(""), 0, 0, S("12345678901234567890"), 10, 5, S("12345"));
+ test(S(""), 0, 0, S("12345678901234567890"), 10, 9, S("123456789"));
+ test(S(""), 0, 0, S("12345678901234567890"), 10, 10, S("1234567890"));
+ test(S(""), 0, 0, S("12345678901234567890"), 10, 11, S("1234567890"));
+ test(S(""), 0, 0, S("12345678901234567890"), 19, 0, S(""));
+ test(S(""), 0, 0, S("12345678901234567890"), 19, 1, S("0"));
+ test(S(""), 0, 0, S("12345678901234567890"), 19, 2, S("0"));
+ test(S(""), 0, 0, S("12345678901234567890"), 20, 0, S(""));
+ test(S(""), 0, 0, S("12345678901234567890"), 20, 1, S(""));
+ test(S(""), 0, 0, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S(""), 0, 1, S(""), 0, 0, S(""));
+ test(S(""), 0, 1, S(""), 0, 1, S(""));
+ test(S(""), 0, 1, S(""), 1, 0, S("can't happen"));
+ test(S(""), 0, 1, S("12345"), 0, 0, S(""));
+ test(S(""), 0, 1, S("12345"), 0, 1, S("1"));
+ test(S(""), 0, 1, S("12345"), 0, 2, S("12"));
+ test(S(""), 0, 1, S("12345"), 0, 4, S("1234"));
+ test(S(""), 0, 1, S("12345"), 0, 5, S("12345"));
+ test(S(""), 0, 1, S("12345"), 0, 6, S("12345"));
+ test(S(""), 0, 1, S("12345"), 1, 0, S(""));
+ test(S(""), 0, 1, S("12345"), 1, 1, S("2"));
+ test(S(""), 0, 1, S("12345"), 1, 2, S("23"));
+ test(S(""), 0, 1, S("12345"), 1, 3, S("234"));
+ test(S(""), 0, 1, S("12345"), 1, 4, S("2345"));
+ test(S(""), 0, 1, S("12345"), 1, 5, S("2345"));
+ test(S(""), 0, 1, S("12345"), 2, 0, S(""));
+ test(S(""), 0, 1, S("12345"), 2, 1, S("3"));
+ test(S(""), 0, 1, S("12345"), 2, 2, S("34"));
+ test(S(""), 0, 1, S("12345"), 2, 3, S("345"));
+ test(S(""), 0, 1, S("12345"), 2, 4, S("345"));
+ test(S(""), 0, 1, S("12345"), 4, 0, S(""));
+ test(S(""), 0, 1, S("12345"), 4, 1, S("5"));
+ test(S(""), 0, 1, S("12345"), 4, 2, S("5"));
+ test(S(""), 0, 1, S("12345"), 5, 0, S(""));
+ test(S(""), 0, 1, S("12345"), 5, 1, S(""));
+ test(S(""), 0, 1, S("12345"), 6, 0, S("can't happen"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test1()
-{
- test(S(""), 0, 1, S("1234567890"), 0, 0, S(""));
- test(S(""), 0, 1, S("1234567890"), 0, 1, S("1"));
- test(S(""), 0, 1, S("1234567890"), 0, 5, S("12345"));
- test(S(""), 0, 1, S("1234567890"), 0, 9, S("123456789"));
- test(S(""), 0, 1, S("1234567890"), 0, 10, S("1234567890"));
- test(S(""), 0, 1, S("1234567890"), 0, 11, S("1234567890"));
- test(S(""), 0, 1, S("1234567890"), 1, 0, S(""));
- test(S(""), 0, 1, S("1234567890"), 1, 1, S("2"));
- test(S(""), 0, 1, S("1234567890"), 1, 4, S("2345"));
- test(S(""), 0, 1, S("1234567890"), 1, 8, S("23456789"));
- test(S(""), 0, 1, S("1234567890"), 1, 9, S("234567890"));
- test(S(""), 0, 1, S("1234567890"), 1, 10, S("234567890"));
- test(S(""), 0, 1, S("1234567890"), 5, 0, S(""));
- test(S(""), 0, 1, S("1234567890"), 5, 1, S("6"));
- test(S(""), 0, 1, S("1234567890"), 5, 2, S("67"));
- test(S(""), 0, 1, S("1234567890"), 5, 4, S("6789"));
- test(S(""), 0, 1, S("1234567890"), 5, 5, S("67890"));
- test(S(""), 0, 1, S("1234567890"), 5, 6, S("67890"));
- test(S(""), 0, 1, S("1234567890"), 9, 0, S(""));
- test(S(""), 0, 1, S("1234567890"), 9, 1, S("0"));
- test(S(""), 0, 1, S("1234567890"), 9, 2, S("0"));
- test(S(""), 0, 1, S("1234567890"), 10, 0, S(""));
- test(S(""), 0, 1, S("1234567890"), 10, 1, S(""));
- test(S(""), 0, 1, S("1234567890"), 11, 0, S("can't happen"));
- test(S(""), 0, 1, S("12345678901234567890"), 0, 0, S(""));
- test(S(""), 0, 1, S("12345678901234567890"), 0, 1, S("1"));
- test(S(""), 0, 1, S("12345678901234567890"), 0, 10, S("1234567890"));
- test(S(""), 0, 1, S("12345678901234567890"), 0, 19, S("1234567890123456789"));
- test(S(""), 0, 1, S("12345678901234567890"), 0, 20, S("12345678901234567890"));
- test(S(""), 0, 1, S("12345678901234567890"), 0, 21, S("12345678901234567890"));
- test(S(""), 0, 1, S("12345678901234567890"), 1, 0, S(""));
- test(S(""), 0, 1, S("12345678901234567890"), 1, 1, S("2"));
- test(S(""), 0, 1, S("12345678901234567890"), 1, 9, S("234567890"));
- test(S(""), 0, 1, S("12345678901234567890"), 1, 18, S("234567890123456789"));
- test(S(""), 0, 1, S("12345678901234567890"), 1, 19, S("2345678901234567890"));
- test(S(""), 0, 1, S("12345678901234567890"), 1, 20, S("2345678901234567890"));
- test(S(""), 0, 1, S("12345678901234567890"), 10, 0, S(""));
- test(S(""), 0, 1, S("12345678901234567890"), 10, 1, S("1"));
- test(S(""), 0, 1, S("12345678901234567890"), 10, 5, S("12345"));
- test(S(""), 0, 1, S("12345678901234567890"), 10, 9, S("123456789"));
- test(S(""), 0, 1, S("12345678901234567890"), 10, 10, S("1234567890"));
- test(S(""), 0, 1, S("12345678901234567890"), 10, 11, S("1234567890"));
- test(S(""), 0, 1, S("12345678901234567890"), 19, 0, S(""));
- test(S(""), 0, 1, S("12345678901234567890"), 19, 1, S("0"));
- test(S(""), 0, 1, S("12345678901234567890"), 19, 2, S("0"));
- test(S(""), 0, 1, S("12345678901234567890"), 20, 0, S(""));
- test(S(""), 0, 1, S("12345678901234567890"), 20, 1, S(""));
- test(S(""), 0, 1, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S(""), 1, 0, S(""), 0, 0, S("can't happen"));
- test(S(""), 1, 0, S(""), 0, 1, S("can't happen"));
- test(S(""), 1, 0, S(""), 1, 0, S("can't happen"));
- test(S(""), 1, 0, S("12345"), 0, 0, S("can't happen"));
- test(S(""), 1, 0, S("12345"), 0, 1, S("can't happen"));
- test(S(""), 1, 0, S("12345"), 0, 2, S("can't happen"));
- test(S(""), 1, 0, S("12345"), 0, 4, S("can't happen"));
- test(S(""), 1, 0, S("12345"), 0, 5, S("can't happen"));
- test(S(""), 1, 0, S("12345"), 0, 6, S("can't happen"));
- test(S(""), 1, 0, S("12345"), 1, 0, S("can't happen"));
- test(S(""), 1, 0, S("12345"), 1, 1, S("can't happen"));
- test(S(""), 1, 0, S("12345"), 1, 2, S("can't happen"));
- test(S(""), 1, 0, S("12345"), 1, 3, S("can't happen"));
- test(S(""), 1, 0, S("12345"), 1, 4, S("can't happen"));
- test(S(""), 1, 0, S("12345"), 1, 5, S("can't happen"));
- test(S(""), 1, 0, S("12345"), 2, 0, S("can't happen"));
- test(S(""), 1, 0, S("12345"), 2, 1, S("can't happen"));
- test(S(""), 1, 0, S("12345"), 2, 2, S("can't happen"));
- test(S(""), 1, 0, S("12345"), 2, 3, S("can't happen"));
- test(S(""), 1, 0, S("12345"), 2, 4, S("can't happen"));
- test(S(""), 1, 0, S("12345"), 4, 0, S("can't happen"));
- test(S(""), 1, 0, S("12345"), 4, 1, S("can't happen"));
- test(S(""), 1, 0, S("12345"), 4, 2, S("can't happen"));
- test(S(""), 1, 0, S("12345"), 5, 0, S("can't happen"));
- test(S(""), 1, 0, S("12345"), 5, 1, S("can't happen"));
- test(S(""), 1, 0, S("12345"), 6, 0, S("can't happen"));
- test(S(""), 1, 0, S("1234567890"), 0, 0, S("can't happen"));
- test(S(""), 1, 0, S("1234567890"), 0, 1, S("can't happen"));
- test(S(""), 1, 0, S("1234567890"), 0, 5, S("can't happen"));
- test(S(""), 1, 0, S("1234567890"), 0, 9, S("can't happen"));
- test(S(""), 1, 0, S("1234567890"), 0, 10, S("can't happen"));
- test(S(""), 1, 0, S("1234567890"), 0, 11, S("can't happen"));
- test(S(""), 1, 0, S("1234567890"), 1, 0, S("can't happen"));
- test(S(""), 1, 0, S("1234567890"), 1, 1, S("can't happen"));
- test(S(""), 1, 0, S("1234567890"), 1, 4, S("can't happen"));
- test(S(""), 1, 0, S("1234567890"), 1, 8, S("can't happen"));
- test(S(""), 1, 0, S("1234567890"), 1, 9, S("can't happen"));
- test(S(""), 1, 0, S("1234567890"), 1, 10, S("can't happen"));
- test(S(""), 1, 0, S("1234567890"), 5, 0, S("can't happen"));
- test(S(""), 1, 0, S("1234567890"), 5, 1, S("can't happen"));
- test(S(""), 1, 0, S("1234567890"), 5, 2, S("can't happen"));
- test(S(""), 1, 0, S("1234567890"), 5, 4, S("can't happen"));
- test(S(""), 1, 0, S("1234567890"), 5, 5, S("can't happen"));
- test(S(""), 1, 0, S("1234567890"), 5, 6, S("can't happen"));
- test(S(""), 1, 0, S("1234567890"), 9, 0, S("can't happen"));
- test(S(""), 1, 0, S("1234567890"), 9, 1, S("can't happen"));
- test(S(""), 1, 0, S("1234567890"), 9, 2, S("can't happen"));
- test(S(""), 1, 0, S("1234567890"), 10, 0, S("can't happen"));
- test(S(""), 1, 0, S("1234567890"), 10, 1, S("can't happen"));
- test(S(""), 1, 0, S("1234567890"), 11, 0, S("can't happen"));
- test(S(""), 1, 0, S("12345678901234567890"), 0, 0, S("can't happen"));
- test(S(""), 1, 0, S("12345678901234567890"), 0, 1, S("can't happen"));
+TEST_CONSTEXPR_CXX20 bool test1() {
+ test(S(""), 0, 1, S("1234567890"), 0, 0, S(""));
+ test(S(""), 0, 1, S("1234567890"), 0, 1, S("1"));
+ test(S(""), 0, 1, S("1234567890"), 0, 5, S("12345"));
+ test(S(""), 0, 1, S("1234567890"), 0, 9, S("123456789"));
+ test(S(""), 0, 1, S("1234567890"), 0, 10, S("1234567890"));
+ test(S(""), 0, 1, S("1234567890"), 0, 11, S("1234567890"));
+ test(S(""), 0, 1, S("1234567890"), 1, 0, S(""));
+ test(S(""), 0, 1, S("1234567890"), 1, 1, S("2"));
+ test(S(""), 0, 1, S("1234567890"), 1, 4, S("2345"));
+ test(S(""), 0, 1, S("1234567890"), 1, 8, S("23456789"));
+ test(S(""), 0, 1, S("1234567890"), 1, 9, S("234567890"));
+ test(S(""), 0, 1, S("1234567890"), 1, 10, S("234567890"));
+ test(S(""), 0, 1, S("1234567890"), 5, 0, S(""));
+ test(S(""), 0, 1, S("1234567890"), 5, 1, S("6"));
+ test(S(""), 0, 1, S("1234567890"), 5, 2, S("67"));
+ test(S(""), 0, 1, S("1234567890"), 5, 4, S("6789"));
+ test(S(""), 0, 1, S("1234567890"), 5, 5, S("67890"));
+ test(S(""), 0, 1, S("1234567890"), 5, 6, S("67890"));
+ test(S(""), 0, 1, S("1234567890"), 9, 0, S(""));
+ test(S(""), 0, 1, S("1234567890"), 9, 1, S("0"));
+ test(S(""), 0, 1, S("1234567890"), 9, 2, S("0"));
+ test(S(""), 0, 1, S("1234567890"), 10, 0, S(""));
+ test(S(""), 0, 1, S("1234567890"), 10, 1, S(""));
+ test(S(""), 0, 1, S("1234567890"), 11, 0, S("can't happen"));
+ test(S(""), 0, 1, S("12345678901234567890"), 0, 0, S(""));
+ test(S(""), 0, 1, S("12345678901234567890"), 0, 1, S("1"));
+ test(S(""), 0, 1, S("12345678901234567890"), 0, 10, S("1234567890"));
+ test(S(""), 0, 1, S("12345678901234567890"), 0, 19, S("1234567890123456789"));
+ test(S(""), 0, 1, S("12345678901234567890"), 0, 20, S("12345678901234567890"));
+ test(S(""), 0, 1, S("12345678901234567890"), 0, 21, S("12345678901234567890"));
+ test(S(""), 0, 1, S("12345678901234567890"), 1, 0, S(""));
+ test(S(""), 0, 1, S("12345678901234567890"), 1, 1, S("2"));
+ test(S(""), 0, 1, S("12345678901234567890"), 1, 9, S("234567890"));
+ test(S(""), 0, 1, S("12345678901234567890"), 1, 18, S("234567890123456789"));
+ test(S(""), 0, 1, S("12345678901234567890"), 1, 19, S("2345678901234567890"));
+ test(S(""), 0, 1, S("12345678901234567890"), 1, 20, S("2345678901234567890"));
+ test(S(""), 0, 1, S("12345678901234567890"), 10, 0, S(""));
+ test(S(""), 0, 1, S("12345678901234567890"), 10, 1, S("1"));
+ test(S(""), 0, 1, S("12345678901234567890"), 10, 5, S("12345"));
+ test(S(""), 0, 1, S("12345678901234567890"), 10, 9, S("123456789"));
+ test(S(""), 0, 1, S("12345678901234567890"), 10, 10, S("1234567890"));
+ test(S(""), 0, 1, S("12345678901234567890"), 10, 11, S("1234567890"));
+ test(S(""), 0, 1, S("12345678901234567890"), 19, 0, S(""));
+ test(S(""), 0, 1, S("12345678901234567890"), 19, 1, S("0"));
+ test(S(""), 0, 1, S("12345678901234567890"), 19, 2, S("0"));
+ test(S(""), 0, 1, S("12345678901234567890"), 20, 0, S(""));
+ test(S(""), 0, 1, S("12345678901234567890"), 20, 1, S(""));
+ test(S(""), 0, 1, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S(""), 1, 0, S(""), 0, 0, S("can't happen"));
+ test(S(""), 1, 0, S(""), 0, 1, S("can't happen"));
+ test(S(""), 1, 0, S(""), 1, 0, S("can't happen"));
+ test(S(""), 1, 0, S("12345"), 0, 0, S("can't happen"));
+ test(S(""), 1, 0, S("12345"), 0, 1, S("can't happen"));
+ test(S(""), 1, 0, S("12345"), 0, 2, S("can't happen"));
+ test(S(""), 1, 0, S("12345"), 0, 4, S("can't happen"));
+ test(S(""), 1, 0, S("12345"), 0, 5, S("can't happen"));
+ test(S(""), 1, 0, S("12345"), 0, 6, S("can't happen"));
+ test(S(""), 1, 0, S("12345"), 1, 0, S("can't happen"));
+ test(S(""), 1, 0, S("12345"), 1, 1, S("can't happen"));
+ test(S(""), 1, 0, S("12345"), 1, 2, S("can't happen"));
+ test(S(""), 1, 0, S("12345"), 1, 3, S("can't happen"));
+ test(S(""), 1, 0, S("12345"), 1, 4, S("can't happen"));
+ test(S(""), 1, 0, S("12345"), 1, 5, S("can't happen"));
+ test(S(""), 1, 0, S("12345"), 2, 0, S("can't happen"));
+ test(S(""), 1, 0, S("12345"), 2, 1, S("can't happen"));
+ test(S(""), 1, 0, S("12345"), 2, 2, S("can't happen"));
+ test(S(""), 1, 0, S("12345"), 2, 3, S("can't happen"));
+ test(S(""), 1, 0, S("12345"), 2, 4, S("can't happen"));
+ test(S(""), 1, 0, S("12345"), 4, 0, S("can't happen"));
+ test(S(""), 1, 0, S("12345"), 4, 1, S("can't happen"));
+ test(S(""), 1, 0, S("12345"), 4, 2, S("can't happen"));
+ test(S(""), 1, 0, S("12345"), 5, 0, S("can't happen"));
+ test(S(""), 1, 0, S("12345"), 5, 1, S("can't happen"));
+ test(S(""), 1, 0, S("12345"), 6, 0, S("can't happen"));
+ test(S(""), 1, 0, S("1234567890"), 0, 0, S("can't happen"));
+ test(S(""), 1, 0, S("1234567890"), 0, 1, S("can't happen"));
+ test(S(""), 1, 0, S("1234567890"), 0, 5, S("can't happen"));
+ test(S(""), 1, 0, S("1234567890"), 0, 9, S("can't happen"));
+ test(S(""), 1, 0, S("1234567890"), 0, 10, S("can't happen"));
+ test(S(""), 1, 0, S("1234567890"), 0, 11, S("can't happen"));
+ test(S(""), 1, 0, S("1234567890"), 1, 0, S("can't happen"));
+ test(S(""), 1, 0, S("1234567890"), 1, 1, S("can't happen"));
+ test(S(""), 1, 0, S("1234567890"), 1, 4, S("can't happen"));
+ test(S(""), 1, 0, S("1234567890"), 1, 8, S("can't happen"));
+ test(S(""), 1, 0, S("1234567890"), 1, 9, S("can't happen"));
+ test(S(""), 1, 0, S("1234567890"), 1, 10, S("can't happen"));
+ test(S(""), 1, 0, S("1234567890"), 5, 0, S("can't happen"));
+ test(S(""), 1, 0, S("1234567890"), 5, 1, S("can't happen"));
+ test(S(""), 1, 0, S("1234567890"), 5, 2, S("can't happen"));
+ test(S(""), 1, 0, S("1234567890"), 5, 4, S("can't happen"));
+ test(S(""), 1, 0, S("1234567890"), 5, 5, S("can't happen"));
+ test(S(""), 1, 0, S("1234567890"), 5, 6, S("can't happen"));
+ test(S(""), 1, 0, S("1234567890"), 9, 0, S("can't happen"));
+ test(S(""), 1, 0, S("1234567890"), 9, 1, S("can't happen"));
+ test(S(""), 1, 0, S("1234567890"), 9, 2, S("can't happen"));
+ test(S(""), 1, 0, S("1234567890"), 10, 0, S("can't happen"));
+ test(S(""), 1, 0, S("1234567890"), 10, 1, S("can't happen"));
+ test(S(""), 1, 0, S("1234567890"), 11, 0, S("can't happen"));
+ test(S(""), 1, 0, S("12345678901234567890"), 0, 0, S("can't happen"));
+ test(S(""), 1, 0, S("12345678901234567890"), 0, 1, S("can't happen"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test2()
-{
- test(S(""), 1, 0, S("12345678901234567890"), 0, 10, S("can't happen"));
- test(S(""), 1, 0, S("12345678901234567890"), 0, 19, S("can't happen"));
- test(S(""), 1, 0, S("12345678901234567890"), 0, 20, S("can't happen"));
- test(S(""), 1, 0, S("12345678901234567890"), 0, 21, S("can't happen"));
- test(S(""), 1, 0, S("12345678901234567890"), 1, 0, S("can't happen"));
- test(S(""), 1, 0, S("12345678901234567890"), 1, 1, S("can't happen"));
- test(S(""), 1, 0, S("12345678901234567890"), 1, 9, S("can't happen"));
- test(S(""), 1, 0, S("12345678901234567890"), 1, 18, S("can't happen"));
- test(S(""), 1, 0, S("12345678901234567890"), 1, 19, S("can't happen"));
- test(S(""), 1, 0, S("12345678901234567890"), 1, 20, S("can't happen"));
- test(S(""), 1, 0, S("12345678901234567890"), 10, 0, S("can't happen"));
- test(S(""), 1, 0, S("12345678901234567890"), 10, 1, S("can't happen"));
- test(S(""), 1, 0, S("12345678901234567890"), 10, 5, S("can't happen"));
- test(S(""), 1, 0, S("12345678901234567890"), 10, 9, S("can't happen"));
- test(S(""), 1, 0, S("12345678901234567890"), 10, 10, S("can't happen"));
- test(S(""), 1, 0, S("12345678901234567890"), 10, 11, S("can't happen"));
- test(S(""), 1, 0, S("12345678901234567890"), 19, 0, S("can't happen"));
- test(S(""), 1, 0, S("12345678901234567890"), 19, 1, S("can't happen"));
- test(S(""), 1, 0, S("12345678901234567890"), 19, 2, S("can't happen"));
- test(S(""), 1, 0, S("12345678901234567890"), 20, 0, S("can't happen"));
- test(S(""), 1, 0, S("12345678901234567890"), 20, 1, S("can't happen"));
- test(S(""), 1, 0, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcde"), 0, 0, S(""), 0, 0, S("abcde"));
- test(S("abcde"), 0, 0, S(""), 0, 1, S("abcde"));
- test(S("abcde"), 0, 0, S(""), 1, 0, S("can't happen"));
- test(S("abcde"), 0, 0, S("12345"), 0, 0, S("abcde"));
- test(S("abcde"), 0, 0, S("12345"), 0, 1, S("1abcde"));
- test(S("abcde"), 0, 0, S("12345"), 0, 2, S("12abcde"));
- test(S("abcde"), 0, 0, S("12345"), 0, 4, S("1234abcde"));
- test(S("abcde"), 0, 0, S("12345"), 0, 5, S("12345abcde"));
- test(S("abcde"), 0, 0, S("12345"), 0, 6, S("12345abcde"));
- test(S("abcde"), 0, 0, S("12345"), 1, 0, S("abcde"));
- test(S("abcde"), 0, 0, S("12345"), 1, 1, S("2abcde"));
- test(S("abcde"), 0, 0, S("12345"), 1, 2, S("23abcde"));
- test(S("abcde"), 0, 0, S("12345"), 1, 3, S("234abcde"));
- test(S("abcde"), 0, 0, S("12345"), 1, 4, S("2345abcde"));
- test(S("abcde"), 0, 0, S("12345"), 1, 5, S("2345abcde"));
- test(S("abcde"), 0, 0, S("12345"), 2, 0, S("abcde"));
- test(S("abcde"), 0, 0, S("12345"), 2, 1, S("3abcde"));
- test(S("abcde"), 0, 0, S("12345"), 2, 2, S("34abcde"));
- test(S("abcde"), 0, 0, S("12345"), 2, 3, S("345abcde"));
- test(S("abcde"), 0, 0, S("12345"), 2, 4, S("345abcde"));
- test(S("abcde"), 0, 0, S("12345"), 4, 0, S("abcde"));
- test(S("abcde"), 0, 0, S("12345"), 4, 1, S("5abcde"));
- test(S("abcde"), 0, 0, S("12345"), 4, 2, S("5abcde"));
- test(S("abcde"), 0, 0, S("12345"), 5, 0, S("abcde"));
- test(S("abcde"), 0, 0, S("12345"), 5, 1, S("abcde"));
- test(S("abcde"), 0, 0, S("12345"), 6, 0, S("can't happen"));
- test(S("abcde"), 0, 0, S("1234567890"), 0, 0, S("abcde"));
- test(S("abcde"), 0, 0, S("1234567890"), 0, 1, S("1abcde"));
- test(S("abcde"), 0, 0, S("1234567890"), 0, 5, S("12345abcde"));
- test(S("abcde"), 0, 0, S("1234567890"), 0, 9, S("123456789abcde"));
- test(S("abcde"), 0, 0, S("1234567890"), 0, 10, S("1234567890abcde"));
- test(S("abcde"), 0, 0, S("1234567890"), 0, 11, S("1234567890abcde"));
- test(S("abcde"), 0, 0, S("1234567890"), 1, 0, S("abcde"));
- test(S("abcde"), 0, 0, S("1234567890"), 1, 1, S("2abcde"));
- test(S("abcde"), 0, 0, S("1234567890"), 1, 4, S("2345abcde"));
- test(S("abcde"), 0, 0, S("1234567890"), 1, 8, S("23456789abcde"));
- test(S("abcde"), 0, 0, S("1234567890"), 1, 9, S("234567890abcde"));
- test(S("abcde"), 0, 0, S("1234567890"), 1, 10, S("234567890abcde"));
- test(S("abcde"), 0, 0, S("1234567890"), 5, 0, S("abcde"));
- test(S("abcde"), 0, 0, S("1234567890"), 5, 1, S("6abcde"));
- test(S("abcde"), 0, 0, S("1234567890"), 5, 2, S("67abcde"));
- test(S("abcde"), 0, 0, S("1234567890"), 5, 4, S("6789abcde"));
- test(S("abcde"), 0, 0, S("1234567890"), 5, 5, S("67890abcde"));
- test(S("abcde"), 0, 0, S("1234567890"), 5, 6, S("67890abcde"));
- test(S("abcde"), 0, 0, S("1234567890"), 9, 0, S("abcde"));
- test(S("abcde"), 0, 0, S("1234567890"), 9, 1, S("0abcde"));
- test(S("abcde"), 0, 0, S("1234567890"), 9, 2, S("0abcde"));
- test(S("abcde"), 0, 0, S("1234567890"), 10, 0, S("abcde"));
- test(S("abcde"), 0, 0, S("1234567890"), 10, 1, S("abcde"));
- test(S("abcde"), 0, 0, S("1234567890"), 11, 0, S("can't happen"));
- test(S("abcde"), 0, 0, S("12345678901234567890"), 0, 0, S("abcde"));
- test(S("abcde"), 0, 0, S("12345678901234567890"), 0, 1, S("1abcde"));
- test(S("abcde"), 0, 0, S("12345678901234567890"), 0, 10, S("1234567890abcde"));
- test(S("abcde"), 0, 0, S("12345678901234567890"), 0, 19, S("1234567890123456789abcde"));
- test(S("abcde"), 0, 0, S("12345678901234567890"), 0, 20, S("12345678901234567890abcde"));
- test(S("abcde"), 0, 0, S("12345678901234567890"), 0, 21, S("12345678901234567890abcde"));
- test(S("abcde"), 0, 0, S("12345678901234567890"), 1, 0, S("abcde"));
- test(S("abcde"), 0, 0, S("12345678901234567890"), 1, 1, S("2abcde"));
- test(S("abcde"), 0, 0, S("12345678901234567890"), 1, 9, S("234567890abcde"));
- test(S("abcde"), 0, 0, S("12345678901234567890"), 1, 18, S("234567890123456789abcde"));
- test(S("abcde"), 0, 0, S("12345678901234567890"), 1, 19, S("2345678901234567890abcde"));
- test(S("abcde"), 0, 0, S("12345678901234567890"), 1, 20, S("2345678901234567890abcde"));
- test(S("abcde"), 0, 0, S("12345678901234567890"), 10, 0, S("abcde"));
- test(S("abcde"), 0, 0, S("12345678901234567890"), 10, 1, S("1abcde"));
- test(S("abcde"), 0, 0, S("12345678901234567890"), 10, 5, S("12345abcde"));
- test(S("abcde"), 0, 0, S("12345678901234567890"), 10, 9, S("123456789abcde"));
- test(S("abcde"), 0, 0, S("12345678901234567890"), 10, 10, S("1234567890abcde"));
- test(S("abcde"), 0, 0, S("12345678901234567890"), 10, 11, S("1234567890abcde"));
- test(S("abcde"), 0, 0, S("12345678901234567890"), 19, 0, S("abcde"));
- test(S("abcde"), 0, 0, S("12345678901234567890"), 19, 1, S("0abcde"));
- test(S("abcde"), 0, 0, S("12345678901234567890"), 19, 2, S("0abcde"));
- test(S("abcde"), 0, 0, S("12345678901234567890"), 20, 0, S("abcde"));
- test(S("abcde"), 0, 0, S("12345678901234567890"), 20, 1, S("abcde"));
- test(S("abcde"), 0, 0, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcde"), 0, 1, S(""), 0, 0, S("bcde"));
- test(S("abcde"), 0, 1, S(""), 0, 1, S("bcde"));
- test(S("abcde"), 0, 1, S(""), 1, 0, S("can't happen"));
- test(S("abcde"), 0, 1, S("12345"), 0, 0, S("bcde"));
+TEST_CONSTEXPR_CXX20 bool test2() {
+ test(S(""), 1, 0, S("12345678901234567890"), 0, 10, S("can't happen"));
+ test(S(""), 1, 0, S("12345678901234567890"), 0, 19, S("can't happen"));
+ test(S(""), 1, 0, S("12345678901234567890"), 0, 20, S("can't happen"));
+ test(S(""), 1, 0, S("12345678901234567890"), 0, 21, S("can't happen"));
+ test(S(""), 1, 0, S("12345678901234567890"), 1, 0, S("can't happen"));
+ test(S(""), 1, 0, S("12345678901234567890"), 1, 1, S("can't happen"));
+ test(S(""), 1, 0, S("12345678901234567890"), 1, 9, S("can't happen"));
+ test(S(""), 1, 0, S("12345678901234567890"), 1, 18, S("can't happen"));
+ test(S(""), 1, 0, S("12345678901234567890"), 1, 19, S("can't happen"));
+ test(S(""), 1, 0, S("12345678901234567890"), 1, 20, S("can't happen"));
+ test(S(""), 1, 0, S("12345678901234567890"), 10, 0, S("can't happen"));
+ test(S(""), 1, 0, S("12345678901234567890"), 10, 1, S("can't happen"));
+ test(S(""), 1, 0, S("12345678901234567890"), 10, 5, S("can't happen"));
+ test(S(""), 1, 0, S("12345678901234567890"), 10, 9, S("can't happen"));
+ test(S(""), 1, 0, S("12345678901234567890"), 10, 10, S("can't happen"));
+ test(S(""), 1, 0, S("12345678901234567890"), 10, 11, S("can't happen"));
+ test(S(""), 1, 0, S("12345678901234567890"), 19, 0, S("can't happen"));
+ test(S(""), 1, 0, S("12345678901234567890"), 19, 1, S("can't happen"));
+ test(S(""), 1, 0, S("12345678901234567890"), 19, 2, S("can't happen"));
+ test(S(""), 1, 0, S("12345678901234567890"), 20, 0, S("can't happen"));
+ test(S(""), 1, 0, S("12345678901234567890"), 20, 1, S("can't happen"));
+ test(S(""), 1, 0, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcde"), 0, 0, S(""), 0, 0, S("abcde"));
+ test(S("abcde"), 0, 0, S(""), 0, 1, S("abcde"));
+ test(S("abcde"), 0, 0, S(""), 1, 0, S("can't happen"));
+ test(S("abcde"), 0, 0, S("12345"), 0, 0, S("abcde"));
+ test(S("abcde"), 0, 0, S("12345"), 0, 1, S("1abcde"));
+ test(S("abcde"), 0, 0, S("12345"), 0, 2, S("12abcde"));
+ test(S("abcde"), 0, 0, S("12345"), 0, 4, S("1234abcde"));
+ test(S("abcde"), 0, 0, S("12345"), 0, 5, S("12345abcde"));
+ test(S("abcde"), 0, 0, S("12345"), 0, 6, S("12345abcde"));
+ test(S("abcde"), 0, 0, S("12345"), 1, 0, S("abcde"));
+ test(S("abcde"), 0, 0, S("12345"), 1, 1, S("2abcde"));
+ test(S("abcde"), 0, 0, S("12345"), 1, 2, S("23abcde"));
+ test(S("abcde"), 0, 0, S("12345"), 1, 3, S("234abcde"));
+ test(S("abcde"), 0, 0, S("12345"), 1, 4, S("2345abcde"));
+ test(S("abcde"), 0, 0, S("12345"), 1, 5, S("2345abcde"));
+ test(S("abcde"), 0, 0, S("12345"), 2, 0, S("abcde"));
+ test(S("abcde"), 0, 0, S("12345"), 2, 1, S("3abcde"));
+ test(S("abcde"), 0, 0, S("12345"), 2, 2, S("34abcde"));
+ test(S("abcde"), 0, 0, S("12345"), 2, 3, S("345abcde"));
+ test(S("abcde"), 0, 0, S("12345"), 2, 4, S("345abcde"));
+ test(S("abcde"), 0, 0, S("12345"), 4, 0, S("abcde"));
+ test(S("abcde"), 0, 0, S("12345"), 4, 1, S("5abcde"));
+ test(S("abcde"), 0, 0, S("12345"), 4, 2, S("5abcde"));
+ test(S("abcde"), 0, 0, S("12345"), 5, 0, S("abcde"));
+ test(S("abcde"), 0, 0, S("12345"), 5, 1, S("abcde"));
+ test(S("abcde"), 0, 0, S("12345"), 6, 0, S("can't happen"));
+ test(S("abcde"), 0, 0, S("1234567890"), 0, 0, S("abcde"));
+ test(S("abcde"), 0, 0, S("1234567890"), 0, 1, S("1abcde"));
+ test(S("abcde"), 0, 0, S("1234567890"), 0, 5, S("12345abcde"));
+ test(S("abcde"), 0, 0, S("1234567890"), 0, 9, S("123456789abcde"));
+ test(S("abcde"), 0, 0, S("1234567890"), 0, 10, S("1234567890abcde"));
+ test(S("abcde"), 0, 0, S("1234567890"), 0, 11, S("1234567890abcde"));
+ test(S("abcde"), 0, 0, S("1234567890"), 1, 0, S("abcde"));
+ test(S("abcde"), 0, 0, S("1234567890"), 1, 1, S("2abcde"));
+ test(S("abcde"), 0, 0, S("1234567890"), 1, 4, S("2345abcde"));
+ test(S("abcde"), 0, 0, S("1234567890"), 1, 8, S("23456789abcde"));
+ test(S("abcde"), 0, 0, S("1234567890"), 1, 9, S("234567890abcde"));
+ test(S("abcde"), 0, 0, S("1234567890"), 1, 10, S("234567890abcde"));
+ test(S("abcde"), 0, 0, S("1234567890"), 5, 0, S("abcde"));
+ test(S("abcde"), 0, 0, S("1234567890"), 5, 1, S("6abcde"));
+ test(S("abcde"), 0, 0, S("1234567890"), 5, 2, S("67abcde"));
+ test(S("abcde"), 0, 0, S("1234567890"), 5, 4, S("6789abcde"));
+ test(S("abcde"), 0, 0, S("1234567890"), 5, 5, S("67890abcde"));
+ test(S("abcde"), 0, 0, S("1234567890"), 5, 6, S("67890abcde"));
+ test(S("abcde"), 0, 0, S("1234567890"), 9, 0, S("abcde"));
+ test(S("abcde"), 0, 0, S("1234567890"), 9, 1, S("0abcde"));
+ test(S("abcde"), 0, 0, S("1234567890"), 9, 2, S("0abcde"));
+ test(S("abcde"), 0, 0, S("1234567890"), 10, 0, S("abcde"));
+ test(S("abcde"), 0, 0, S("1234567890"), 10, 1, S("abcde"));
+ test(S("abcde"), 0, 0, S("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcde"), 0, 0, S("12345678901234567890"), 0, 0, S("abcde"));
+ test(S("abcde"), 0, 0, S("12345678901234567890"), 0, 1, S("1abcde"));
+ test(S("abcde"), 0, 0, S("12345678901234567890"), 0, 10, S("1234567890abcde"));
+ test(S("abcde"), 0, 0, S("12345678901234567890"), 0, 19, S("1234567890123456789abcde"));
+ test(S("abcde"), 0, 0, S("12345678901234567890"), 0, 20, S("12345678901234567890abcde"));
+ test(S("abcde"), 0, 0, S("12345678901234567890"), 0, 21, S("12345678901234567890abcde"));
+ test(S("abcde"), 0, 0, S("12345678901234567890"), 1, 0, S("abcde"));
+ test(S("abcde"), 0, 0, S("12345678901234567890"), 1, 1, S("2abcde"));
+ test(S("abcde"), 0, 0, S("12345678901234567890"), 1, 9, S("234567890abcde"));
+ test(S("abcde"), 0, 0, S("12345678901234567890"), 1, 18, S("234567890123456789abcde"));
+ test(S("abcde"), 0, 0, S("12345678901234567890"), 1, 19, S("2345678901234567890abcde"));
+ test(S("abcde"), 0, 0, S("12345678901234567890"), 1, 20, S("2345678901234567890abcde"));
+ test(S("abcde"), 0, 0, S("12345678901234567890"), 10, 0, S("abcde"));
+ test(S("abcde"), 0, 0, S("12345678901234567890"), 10, 1, S("1abcde"));
+ test(S("abcde"), 0, 0, S("12345678901234567890"), 10, 5, S("12345abcde"));
+ test(S("abcde"), 0, 0, S("12345678901234567890"), 10, 9, S("123456789abcde"));
+ test(S("abcde"), 0, 0, S("12345678901234567890"), 10, 10, S("1234567890abcde"));
+ test(S("abcde"), 0, 0, S("12345678901234567890"), 10, 11, S("1234567890abcde"));
+ test(S("abcde"), 0, 0, S("12345678901234567890"), 19, 0, S("abcde"));
+ test(S("abcde"), 0, 0, S("12345678901234567890"), 19, 1, S("0abcde"));
+ test(S("abcde"), 0, 0, S("12345678901234567890"), 19, 2, S("0abcde"));
+ test(S("abcde"), 0, 0, S("12345678901234567890"), 20, 0, S("abcde"));
+ test(S("abcde"), 0, 0, S("12345678901234567890"), 20, 1, S("abcde"));
+ test(S("abcde"), 0, 0, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcde"), 0, 1, S(""), 0, 0, S("bcde"));
+ test(S("abcde"), 0, 1, S(""), 0, 1, S("bcde"));
+ test(S("abcde"), 0, 1, S(""), 1, 0, S("can't happen"));
+ test(S("abcde"), 0, 1, S("12345"), 0, 0, S("bcde"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test3()
-{
- test(S("abcde"), 0, 1, S("12345"), 0, 1, S("1bcde"));
- test(S("abcde"), 0, 1, S("12345"), 0, 2, S("12bcde"));
- test(S("abcde"), 0, 1, S("12345"), 0, 4, S("1234bcde"));
- test(S("abcde"), 0, 1, S("12345"), 0, 5, S("12345bcde"));
- test(S("abcde"), 0, 1, S("12345"), 0, 6, S("12345bcde"));
- test(S("abcde"), 0, 1, S("12345"), 1, 0, S("bcde"));
- test(S("abcde"), 0, 1, S("12345"), 1, 1, S("2bcde"));
- test(S("abcde"), 0, 1, S("12345"), 1, 2, S("23bcde"));
- test(S("abcde"), 0, 1, S("12345"), 1, 3, S("234bcde"));
- test(S("abcde"), 0, 1, S("12345"), 1, 4, S("2345bcde"));
- test(S("abcde"), 0, 1, S("12345"), 1, 5, S("2345bcde"));
- test(S("abcde"), 0, 1, S("12345"), 2, 0, S("bcde"));
- test(S("abcde"), 0, 1, S("12345"), 2, 1, S("3bcde"));
- test(S("abcde"), 0, 1, S("12345"), 2, 2, S("34bcde"));
- test(S("abcde"), 0, 1, S("12345"), 2, 3, S("345bcde"));
- test(S("abcde"), 0, 1, S("12345"), 2, 4, S("345bcde"));
- test(S("abcde"), 0, 1, S("12345"), 4, 0, S("bcde"));
- test(S("abcde"), 0, 1, S("12345"), 4, 1, S("5bcde"));
- test(S("abcde"), 0, 1, S("12345"), 4, 2, S("5bcde"));
- test(S("abcde"), 0, 1, S("12345"), 5, 0, S("bcde"));
- test(S("abcde"), 0, 1, S("12345"), 5, 1, S("bcde"));
- test(S("abcde"), 0, 1, S("12345"), 6, 0, S("can't happen"));
- test(S("abcde"), 0, 1, S("1234567890"), 0, 0, S("bcde"));
- test(S("abcde"), 0, 1, S("1234567890"), 0, 1, S("1bcde"));
- test(S("abcde"), 0, 1, S("1234567890"), 0, 5, S("12345bcde"));
- test(S("abcde"), 0, 1, S("1234567890"), 0, 9, S("123456789bcde"));
- test(S("abcde"), 0, 1, S("1234567890"), 0, 10, S("1234567890bcde"));
- test(S("abcde"), 0, 1, S("1234567890"), 0, 11, S("1234567890bcde"));
- test(S("abcde"), 0, 1, S("1234567890"), 1, 0, S("bcde"));
- test(S("abcde"), 0, 1, S("1234567890"), 1, 1, S("2bcde"));
- test(S("abcde"), 0, 1, S("1234567890"), 1, 4, S("2345bcde"));
- test(S("abcde"), 0, 1, S("1234567890"), 1, 8, S("23456789bcde"));
- test(S("abcde"), 0, 1, S("1234567890"), 1, 9, S("234567890bcde"));
- test(S("abcde"), 0, 1, S("1234567890"), 1, 10, S("234567890bcde"));
- test(S("abcde"), 0, 1, S("1234567890"), 5, 0, S("bcde"));
- test(S("abcde"), 0, 1, S("1234567890"), 5, 1, S("6bcde"));
- test(S("abcde"), 0, 1, S("1234567890"), 5, 2, S("67bcde"));
- test(S("abcde"), 0, 1, S("1234567890"), 5, 4, S("6789bcde"));
- test(S("abcde"), 0, 1, S("1234567890"), 5, 5, S("67890bcde"));
- test(S("abcde"), 0, 1, S("1234567890"), 5, 6, S("67890bcde"));
- test(S("abcde"), 0, 1, S("1234567890"), 9, 0, S("bcde"));
- test(S("abcde"), 0, 1, S("1234567890"), 9, 1, S("0bcde"));
- test(S("abcde"), 0, 1, S("1234567890"), 9, 2, S("0bcde"));
- test(S("abcde"), 0, 1, S("1234567890"), 10, 0, S("bcde"));
- test(S("abcde"), 0, 1, S("1234567890"), 10, 1, S("bcde"));
- test(S("abcde"), 0, 1, S("1234567890"), 11, 0, S("can't happen"));
- test(S("abcde"), 0, 1, S("12345678901234567890"), 0, 0, S("bcde"));
- test(S("abcde"), 0, 1, S("12345678901234567890"), 0, 1, S("1bcde"));
- test(S("abcde"), 0, 1, S("12345678901234567890"), 0, 10, S("1234567890bcde"));
- test(S("abcde"), 0, 1, S("12345678901234567890"), 0, 19, S("1234567890123456789bcde"));
- test(S("abcde"), 0, 1, S("12345678901234567890"), 0, 20, S("12345678901234567890bcde"));
- test(S("abcde"), 0, 1, S("12345678901234567890"), 0, 21, S("12345678901234567890bcde"));
- test(S("abcde"), 0, 1, S("12345678901234567890"), 1, 0, S("bcde"));
- test(S("abcde"), 0, 1, S("12345678901234567890"), 1, 1, S("2bcde"));
- test(S("abcde"), 0, 1, S("12345678901234567890"), 1, 9, S("234567890bcde"));
- test(S("abcde"), 0, 1, S("12345678901234567890"), 1, 18, S("234567890123456789bcde"));
- test(S("abcde"), 0, 1, S("12345678901234567890"), 1, 19, S("2345678901234567890bcde"));
- test(S("abcde"), 0, 1, S("12345678901234567890"), 1, 20, S("2345678901234567890bcde"));
- test(S("abcde"), 0, 1, S("12345678901234567890"), 10, 0, S("bcde"));
- test(S("abcde"), 0, 1, S("12345678901234567890"), 10, 1, S("1bcde"));
- test(S("abcde"), 0, 1, S("12345678901234567890"), 10, 5, S("12345bcde"));
- test(S("abcde"), 0, 1, S("12345678901234567890"), 10, 9, S("123456789bcde"));
- test(S("abcde"), 0, 1, S("12345678901234567890"), 10, 10, S("1234567890bcde"));
- test(S("abcde"), 0, 1, S("12345678901234567890"), 10, 11, S("1234567890bcde"));
- test(S("abcde"), 0, 1, S("12345678901234567890"), 19, 0, S("bcde"));
- test(S("abcde"), 0, 1, S("12345678901234567890"), 19, 1, S("0bcde"));
- test(S("abcde"), 0, 1, S("12345678901234567890"), 19, 2, S("0bcde"));
- test(S("abcde"), 0, 1, S("12345678901234567890"), 20, 0, S("bcde"));
- test(S("abcde"), 0, 1, S("12345678901234567890"), 20, 1, S("bcde"));
- test(S("abcde"), 0, 1, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcde"), 0, 2, S(""), 0, 0, S("cde"));
- test(S("abcde"), 0, 2, S(""), 0, 1, S("cde"));
- test(S("abcde"), 0, 2, S(""), 1, 0, S("can't happen"));
- test(S("abcde"), 0, 2, S("12345"), 0, 0, S("cde"));
- test(S("abcde"), 0, 2, S("12345"), 0, 1, S("1cde"));
- test(S("abcde"), 0, 2, S("12345"), 0, 2, S("12cde"));
- test(S("abcde"), 0, 2, S("12345"), 0, 4, S("1234cde"));
- test(S("abcde"), 0, 2, S("12345"), 0, 5, S("12345cde"));
- test(S("abcde"), 0, 2, S("12345"), 0, 6, S("12345cde"));
- test(S("abcde"), 0, 2, S("12345"), 1, 0, S("cde"));
- test(S("abcde"), 0, 2, S("12345"), 1, 1, S("2cde"));
- test(S("abcde"), 0, 2, S("12345"), 1, 2, S("23cde"));
- test(S("abcde"), 0, 2, S("12345"), 1, 3, S("234cde"));
- test(S("abcde"), 0, 2, S("12345"), 1, 4, S("2345cde"));
- test(S("abcde"), 0, 2, S("12345"), 1, 5, S("2345cde"));
- test(S("abcde"), 0, 2, S("12345"), 2, 0, S("cde"));
- test(S("abcde"), 0, 2, S("12345"), 2, 1, S("3cde"));
- test(S("abcde"), 0, 2, S("12345"), 2, 2, S("34cde"));
- test(S("abcde"), 0, 2, S("12345"), 2, 3, S("345cde"));
- test(S("abcde"), 0, 2, S("12345"), 2, 4, S("345cde"));
- test(S("abcde"), 0, 2, S("12345"), 4, 0, S("cde"));
- test(S("abcde"), 0, 2, S("12345"), 4, 1, S("5cde"));
- test(S("abcde"), 0, 2, S("12345"), 4, 2, S("5cde"));
- test(S("abcde"), 0, 2, S("12345"), 5, 0, S("cde"));
- test(S("abcde"), 0, 2, S("12345"), 5, 1, S("cde"));
- test(S("abcde"), 0, 2, S("12345"), 6, 0, S("can't happen"));
- test(S("abcde"), 0, 2, S("1234567890"), 0, 0, S("cde"));
- test(S("abcde"), 0, 2, S("1234567890"), 0, 1, S("1cde"));
- test(S("abcde"), 0, 2, S("1234567890"), 0, 5, S("12345cde"));
- test(S("abcde"), 0, 2, S("1234567890"), 0, 9, S("123456789cde"));
+TEST_CONSTEXPR_CXX20 bool test3() {
+ test(S("abcde"), 0, 1, S("12345"), 0, 1, S("1bcde"));
+ test(S("abcde"), 0, 1, S("12345"), 0, 2, S("12bcde"));
+ test(S("abcde"), 0, 1, S("12345"), 0, 4, S("1234bcde"));
+ test(S("abcde"), 0, 1, S("12345"), 0, 5, S("12345bcde"));
+ test(S("abcde"), 0, 1, S("12345"), 0, 6, S("12345bcde"));
+ test(S("abcde"), 0, 1, S("12345"), 1, 0, S("bcde"));
+ test(S("abcde"), 0, 1, S("12345"), 1, 1, S("2bcde"));
+ test(S("abcde"), 0, 1, S("12345"), 1, 2, S("23bcde"));
+ test(S("abcde"), 0, 1, S("12345"), 1, 3, S("234bcde"));
+ test(S("abcde"), 0, 1, S("12345"), 1, 4, S("2345bcde"));
+ test(S("abcde"), 0, 1, S("12345"), 1, 5, S("2345bcde"));
+ test(S("abcde"), 0, 1, S("12345"), 2, 0, S("bcde"));
+ test(S("abcde"), 0, 1, S("12345"), 2, 1, S("3bcde"));
+ test(S("abcde"), 0, 1, S("12345"), 2, 2, S("34bcde"));
+ test(S("abcde"), 0, 1, S("12345"), 2, 3, S("345bcde"));
+ test(S("abcde"), 0, 1, S("12345"), 2, 4, S("345bcde"));
+ test(S("abcde"), 0, 1, S("12345"), 4, 0, S("bcde"));
+ test(S("abcde"), 0, 1, S("12345"), 4, 1, S("5bcde"));
+ test(S("abcde"), 0, 1, S("12345"), 4, 2, S("5bcde"));
+ test(S("abcde"), 0, 1, S("12345"), 5, 0, S("bcde"));
+ test(S("abcde"), 0, 1, S("12345"), 5, 1, S("bcde"));
+ test(S("abcde"), 0, 1, S("12345"), 6, 0, S("can't happen"));
+ test(S("abcde"), 0, 1, S("1234567890"), 0, 0, S("bcde"));
+ test(S("abcde"), 0, 1, S("1234567890"), 0, 1, S("1bcde"));
+ test(S("abcde"), 0, 1, S("1234567890"), 0, 5, S("12345bcde"));
+ test(S("abcde"), 0, 1, S("1234567890"), 0, 9, S("123456789bcde"));
+ test(S("abcde"), 0, 1, S("1234567890"), 0, 10, S("1234567890bcde"));
+ test(S("abcde"), 0, 1, S("1234567890"), 0, 11, S("1234567890bcde"));
+ test(S("abcde"), 0, 1, S("1234567890"), 1, 0, S("bcde"));
+ test(S("abcde"), 0, 1, S("1234567890"), 1, 1, S("2bcde"));
+ test(S("abcde"), 0, 1, S("1234567890"), 1, 4, S("2345bcde"));
+ test(S("abcde"), 0, 1, S("1234567890"), 1, 8, S("23456789bcde"));
+ test(S("abcde"), 0, 1, S("1234567890"), 1, 9, S("234567890bcde"));
+ test(S("abcde"), 0, 1, S("1234567890"), 1, 10, S("234567890bcde"));
+ test(S("abcde"), 0, 1, S("1234567890"), 5, 0, S("bcde"));
+ test(S("abcde"), 0, 1, S("1234567890"), 5, 1, S("6bcde"));
+ test(S("abcde"), 0, 1, S("1234567890"), 5, 2, S("67bcde"));
+ test(S("abcde"), 0, 1, S("1234567890"), 5, 4, S("6789bcde"));
+ test(S("abcde"), 0, 1, S("1234567890"), 5, 5, S("67890bcde"));
+ test(S("abcde"), 0, 1, S("1234567890"), 5, 6, S("67890bcde"));
+ test(S("abcde"), 0, 1, S("1234567890"), 9, 0, S("bcde"));
+ test(S("abcde"), 0, 1, S("1234567890"), 9, 1, S("0bcde"));
+ test(S("abcde"), 0, 1, S("1234567890"), 9, 2, S("0bcde"));
+ test(S("abcde"), 0, 1, S("1234567890"), 10, 0, S("bcde"));
+ test(S("abcde"), 0, 1, S("1234567890"), 10, 1, S("bcde"));
+ test(S("abcde"), 0, 1, S("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcde"), 0, 1, S("12345678901234567890"), 0, 0, S("bcde"));
+ test(S("abcde"), 0, 1, S("12345678901234567890"), 0, 1, S("1bcde"));
+ test(S("abcde"), 0, 1, S("12345678901234567890"), 0, 10, S("1234567890bcde"));
+ test(S("abcde"), 0, 1, S("12345678901234567890"), 0, 19, S("1234567890123456789bcde"));
+ test(S("abcde"), 0, 1, S("12345678901234567890"), 0, 20, S("12345678901234567890bcde"));
+ test(S("abcde"), 0, 1, S("12345678901234567890"), 0, 21, S("12345678901234567890bcde"));
+ test(S("abcde"), 0, 1, S("12345678901234567890"), 1, 0, S("bcde"));
+ test(S("abcde"), 0, 1, S("12345678901234567890"), 1, 1, S("2bcde"));
+ test(S("abcde"), 0, 1, S("12345678901234567890"), 1, 9, S("234567890bcde"));
+ test(S("abcde"), 0, 1, S("12345678901234567890"), 1, 18, S("234567890123456789bcde"));
+ test(S("abcde"), 0, 1, S("12345678901234567890"), 1, 19, S("2345678901234567890bcde"));
+ test(S("abcde"), 0, 1, S("12345678901234567890"), 1, 20, S("2345678901234567890bcde"));
+ test(S("abcde"), 0, 1, S("12345678901234567890"), 10, 0, S("bcde"));
+ test(S("abcde"), 0, 1, S("12345678901234567890"), 10, 1, S("1bcde"));
+ test(S("abcde"), 0, 1, S("12345678901234567890"), 10, 5, S("12345bcde"));
+ test(S("abcde"), 0, 1, S("12345678901234567890"), 10, 9, S("123456789bcde"));
+ test(S("abcde"), 0, 1, S("12345678901234567890"), 10, 10, S("1234567890bcde"));
+ test(S("abcde"), 0, 1, S("12345678901234567890"), 10, 11, S("1234567890bcde"));
+ test(S("abcde"), 0, 1, S("12345678901234567890"), 19, 0, S("bcde"));
+ test(S("abcde"), 0, 1, S("12345678901234567890"), 19, 1, S("0bcde"));
+ test(S("abcde"), 0, 1, S("12345678901234567890"), 19, 2, S("0bcde"));
+ test(S("abcde"), 0, 1, S("12345678901234567890"), 20, 0, S("bcde"));
+ test(S("abcde"), 0, 1, S("12345678901234567890"), 20, 1, S("bcde"));
+ test(S("abcde"), 0, 1, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcde"), 0, 2, S(""), 0, 0, S("cde"));
+ test(S("abcde"), 0, 2, S(""), 0, 1, S("cde"));
+ test(S("abcde"), 0, 2, S(""), 1, 0, S("can't happen"));
+ test(S("abcde"), 0, 2, S("12345"), 0, 0, S("cde"));
+ test(S("abcde"), 0, 2, S("12345"), 0, 1, S("1cde"));
+ test(S("abcde"), 0, 2, S("12345"), 0, 2, S("12cde"));
+ test(S("abcde"), 0, 2, S("12345"), 0, 4, S("1234cde"));
+ test(S("abcde"), 0, 2, S("12345"), 0, 5, S("12345cde"));
+ test(S("abcde"), 0, 2, S("12345"), 0, 6, S("12345cde"));
+ test(S("abcde"), 0, 2, S("12345"), 1, 0, S("cde"));
+ test(S("abcde"), 0, 2, S("12345"), 1, 1, S("2cde"));
+ test(S("abcde"), 0, 2, S("12345"), 1, 2, S("23cde"));
+ test(S("abcde"), 0, 2, S("12345"), 1, 3, S("234cde"));
+ test(S("abcde"), 0, 2, S("12345"), 1, 4, S("2345cde"));
+ test(S("abcde"), 0, 2, S("12345"), 1, 5, S("2345cde"));
+ test(S("abcde"), 0, 2, S("12345"), 2, 0, S("cde"));
+ test(S("abcde"), 0, 2, S("12345"), 2, 1, S("3cde"));
+ test(S("abcde"), 0, 2, S("12345"), 2, 2, S("34cde"));
+ test(S("abcde"), 0, 2, S("12345"), 2, 3, S("345cde"));
+ test(S("abcde"), 0, 2, S("12345"), 2, 4, S("345cde"));
+ test(S("abcde"), 0, 2, S("12345"), 4, 0, S("cde"));
+ test(S("abcde"), 0, 2, S("12345"), 4, 1, S("5cde"));
+ test(S("abcde"), 0, 2, S("12345"), 4, 2, S("5cde"));
+ test(S("abcde"), 0, 2, S("12345"), 5, 0, S("cde"));
+ test(S("abcde"), 0, 2, S("12345"), 5, 1, S("cde"));
+ test(S("abcde"), 0, 2, S("12345"), 6, 0, S("can't happen"));
+ test(S("abcde"), 0, 2, S("1234567890"), 0, 0, S("cde"));
+ test(S("abcde"), 0, 2, S("1234567890"), 0, 1, S("1cde"));
+ test(S("abcde"), 0, 2, S("1234567890"), 0, 5, S("12345cde"));
+ test(S("abcde"), 0, 2, S("1234567890"), 0, 9, S("123456789cde"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test4()
-{
- test(S("abcde"), 0, 2, S("1234567890"), 0, 10, S("1234567890cde"));
- test(S("abcde"), 0, 2, S("1234567890"), 0, 11, S("1234567890cde"));
- test(S("abcde"), 0, 2, S("1234567890"), 1, 0, S("cde"));
- test(S("abcde"), 0, 2, S("1234567890"), 1, 1, S("2cde"));
- test(S("abcde"), 0, 2, S("1234567890"), 1, 4, S("2345cde"));
- test(S("abcde"), 0, 2, S("1234567890"), 1, 8, S("23456789cde"));
- test(S("abcde"), 0, 2, S("1234567890"), 1, 9, S("234567890cde"));
- test(S("abcde"), 0, 2, S("1234567890"), 1, 10, S("234567890cde"));
- test(S("abcde"), 0, 2, S("1234567890"), 5, 0, S("cde"));
- test(S("abcde"), 0, 2, S("1234567890"), 5, 1, S("6cde"));
- test(S("abcde"), 0, 2, S("1234567890"), 5, 2, S("67cde"));
- test(S("abcde"), 0, 2, S("1234567890"), 5, 4, S("6789cde"));
- test(S("abcde"), 0, 2, S("1234567890"), 5, 5, S("67890cde"));
- test(S("abcde"), 0, 2, S("1234567890"), 5, 6, S("67890cde"));
- test(S("abcde"), 0, 2, S("1234567890"), 9, 0, S("cde"));
- test(S("abcde"), 0, 2, S("1234567890"), 9, 1, S("0cde"));
- test(S("abcde"), 0, 2, S("1234567890"), 9, 2, S("0cde"));
- test(S("abcde"), 0, 2, S("1234567890"), 10, 0, S("cde"));
- test(S("abcde"), 0, 2, S("1234567890"), 10, 1, S("cde"));
- test(S("abcde"), 0, 2, S("1234567890"), 11, 0, S("can't happen"));
- test(S("abcde"), 0, 2, S("12345678901234567890"), 0, 0, S("cde"));
- test(S("abcde"), 0, 2, S("12345678901234567890"), 0, 1, S("1cde"));
- test(S("abcde"), 0, 2, S("12345678901234567890"), 0, 10, S("1234567890cde"));
- test(S("abcde"), 0, 2, S("12345678901234567890"), 0, 19, S("1234567890123456789cde"));
- test(S("abcde"), 0, 2, S("12345678901234567890"), 0, 20, S("12345678901234567890cde"));
- test(S("abcde"), 0, 2, S("12345678901234567890"), 0, 21, S("12345678901234567890cde"));
- test(S("abcde"), 0, 2, S("12345678901234567890"), 1, 0, S("cde"));
- test(S("abcde"), 0, 2, S("12345678901234567890"), 1, 1, S("2cde"));
- test(S("abcde"), 0, 2, S("12345678901234567890"), 1, 9, S("234567890cde"));
- test(S("abcde"), 0, 2, S("12345678901234567890"), 1, 18, S("234567890123456789cde"));
- test(S("abcde"), 0, 2, S("12345678901234567890"), 1, 19, S("2345678901234567890cde"));
- test(S("abcde"), 0, 2, S("12345678901234567890"), 1, 20, S("2345678901234567890cde"));
- test(S("abcde"), 0, 2, S("12345678901234567890"), 10, 0, S("cde"));
- test(S("abcde"), 0, 2, S("12345678901234567890"), 10, 1, S("1cde"));
- test(S("abcde"), 0, 2, S("12345678901234567890"), 10, 5, S("12345cde"));
- test(S("abcde"), 0, 2, S("12345678901234567890"), 10, 9, S("123456789cde"));
- test(S("abcde"), 0, 2, S("12345678901234567890"), 10, 10, S("1234567890cde"));
- test(S("abcde"), 0, 2, S("12345678901234567890"), 10, 11, S("1234567890cde"));
- test(S("abcde"), 0, 2, S("12345678901234567890"), 19, 0, S("cde"));
- test(S("abcde"), 0, 2, S("12345678901234567890"), 19, 1, S("0cde"));
- test(S("abcde"), 0, 2, S("12345678901234567890"), 19, 2, S("0cde"));
- test(S("abcde"), 0, 2, S("12345678901234567890"), 20, 0, S("cde"));
- test(S("abcde"), 0, 2, S("12345678901234567890"), 20, 1, S("cde"));
- test(S("abcde"), 0, 2, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcde"), 0, 4, S(""), 0, 0, S("e"));
- test(S("abcde"), 0, 4, S(""), 0, 1, S("e"));
- test(S("abcde"), 0, 4, S(""), 1, 0, S("can't happen"));
- test(S("abcde"), 0, 4, S("12345"), 0, 0, S("e"));
- test(S("abcde"), 0, 4, S("12345"), 0, 1, S("1e"));
- test(S("abcde"), 0, 4, S("12345"), 0, 2, S("12e"));
- test(S("abcde"), 0, 4, S("12345"), 0, 4, S("1234e"));
- test(S("abcde"), 0, 4, S("12345"), 0, 5, S("12345e"));
- test(S("abcde"), 0, 4, S("12345"), 0, 6, S("12345e"));
- test(S("abcde"), 0, 4, S("12345"), 1, 0, S("e"));
- test(S("abcde"), 0, 4, S("12345"), 1, 1, S("2e"));
- test(S("abcde"), 0, 4, S("12345"), 1, 2, S("23e"));
- test(S("abcde"), 0, 4, S("12345"), 1, 3, S("234e"));
- test(S("abcde"), 0, 4, S("12345"), 1, 4, S("2345e"));
- test(S("abcde"), 0, 4, S("12345"), 1, 5, S("2345e"));
- test(S("abcde"), 0, 4, S("12345"), 2, 0, S("e"));
- test(S("abcde"), 0, 4, S("12345"), 2, 1, S("3e"));
- test(S("abcde"), 0, 4, S("12345"), 2, 2, S("34e"));
- test(S("abcde"), 0, 4, S("12345"), 2, 3, S("345e"));
- test(S("abcde"), 0, 4, S("12345"), 2, 4, S("345e"));
- test(S("abcde"), 0, 4, S("12345"), 4, 0, S("e"));
- test(S("abcde"), 0, 4, S("12345"), 4, 1, S("5e"));
- test(S("abcde"), 0, 4, S("12345"), 4, 2, S("5e"));
- test(S("abcde"), 0, 4, S("12345"), 5, 0, S("e"));
- test(S("abcde"), 0, 4, S("12345"), 5, 1, S("e"));
- test(S("abcde"), 0, 4, S("12345"), 6, 0, S("can't happen"));
- test(S("abcde"), 0, 4, S("1234567890"), 0, 0, S("e"));
- test(S("abcde"), 0, 4, S("1234567890"), 0, 1, S("1e"));
- test(S("abcde"), 0, 4, S("1234567890"), 0, 5, S("12345e"));
- test(S("abcde"), 0, 4, S("1234567890"), 0, 9, S("123456789e"));
- test(S("abcde"), 0, 4, S("1234567890"), 0, 10, S("1234567890e"));
- test(S("abcde"), 0, 4, S("1234567890"), 0, 11, S("1234567890e"));
- test(S("abcde"), 0, 4, S("1234567890"), 1, 0, S("e"));
- test(S("abcde"), 0, 4, S("1234567890"), 1, 1, S("2e"));
- test(S("abcde"), 0, 4, S("1234567890"), 1, 4, S("2345e"));
- test(S("abcde"), 0, 4, S("1234567890"), 1, 8, S("23456789e"));
- test(S("abcde"), 0, 4, S("1234567890"), 1, 9, S("234567890e"));
- test(S("abcde"), 0, 4, S("1234567890"), 1, 10, S("234567890e"));
- test(S("abcde"), 0, 4, S("1234567890"), 5, 0, S("e"));
- test(S("abcde"), 0, 4, S("1234567890"), 5, 1, S("6e"));
- test(S("abcde"), 0, 4, S("1234567890"), 5, 2, S("67e"));
- test(S("abcde"), 0, 4, S("1234567890"), 5, 4, S("6789e"));
- test(S("abcde"), 0, 4, S("1234567890"), 5, 5, S("67890e"));
- test(S("abcde"), 0, 4, S("1234567890"), 5, 6, S("67890e"));
- test(S("abcde"), 0, 4, S("1234567890"), 9, 0, S("e"));
- test(S("abcde"), 0, 4, S("1234567890"), 9, 1, S("0e"));
- test(S("abcde"), 0, 4, S("1234567890"), 9, 2, S("0e"));
- test(S("abcde"), 0, 4, S("1234567890"), 10, 0, S("e"));
- test(S("abcde"), 0, 4, S("1234567890"), 10, 1, S("e"));
- test(S("abcde"), 0, 4, S("1234567890"), 11, 0, S("can't happen"));
- test(S("abcde"), 0, 4, S("12345678901234567890"), 0, 0, S("e"));
- test(S("abcde"), 0, 4, S("12345678901234567890"), 0, 1, S("1e"));
- test(S("abcde"), 0, 4, S("12345678901234567890"), 0, 10, S("1234567890e"));
- test(S("abcde"), 0, 4, S("12345678901234567890"), 0, 19, S("1234567890123456789e"));
- test(S("abcde"), 0, 4, S("12345678901234567890"), 0, 20, S("12345678901234567890e"));
- test(S("abcde"), 0, 4, S("12345678901234567890"), 0, 21, S("12345678901234567890e"));
+TEST_CONSTEXPR_CXX20 bool test4() {
+ test(S("abcde"), 0, 2, S("1234567890"), 0, 10, S("1234567890cde"));
+ test(S("abcde"), 0, 2, S("1234567890"), 0, 11, S("1234567890cde"));
+ test(S("abcde"), 0, 2, S("1234567890"), 1, 0, S("cde"));
+ test(S("abcde"), 0, 2, S("1234567890"), 1, 1, S("2cde"));
+ test(S("abcde"), 0, 2, S("1234567890"), 1, 4, S("2345cde"));
+ test(S("abcde"), 0, 2, S("1234567890"), 1, 8, S("23456789cde"));
+ test(S("abcde"), 0, 2, S("1234567890"), 1, 9, S("234567890cde"));
+ test(S("abcde"), 0, 2, S("1234567890"), 1, 10, S("234567890cde"));
+ test(S("abcde"), 0, 2, S("1234567890"), 5, 0, S("cde"));
+ test(S("abcde"), 0, 2, S("1234567890"), 5, 1, S("6cde"));
+ test(S("abcde"), 0, 2, S("1234567890"), 5, 2, S("67cde"));
+ test(S("abcde"), 0, 2, S("1234567890"), 5, 4, S("6789cde"));
+ test(S("abcde"), 0, 2, S("1234567890"), 5, 5, S("67890cde"));
+ test(S("abcde"), 0, 2, S("1234567890"), 5, 6, S("67890cde"));
+ test(S("abcde"), 0, 2, S("1234567890"), 9, 0, S("cde"));
+ test(S("abcde"), 0, 2, S("1234567890"), 9, 1, S("0cde"));
+ test(S("abcde"), 0, 2, S("1234567890"), 9, 2, S("0cde"));
+ test(S("abcde"), 0, 2, S("1234567890"), 10, 0, S("cde"));
+ test(S("abcde"), 0, 2, S("1234567890"), 10, 1, S("cde"));
+ test(S("abcde"), 0, 2, S("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcde"), 0, 2, S("12345678901234567890"), 0, 0, S("cde"));
+ test(S("abcde"), 0, 2, S("12345678901234567890"), 0, 1, S("1cde"));
+ test(S("abcde"), 0, 2, S("12345678901234567890"), 0, 10, S("1234567890cde"));
+ test(S("abcde"), 0, 2, S("12345678901234567890"), 0, 19, S("1234567890123456789cde"));
+ test(S("abcde"), 0, 2, S("12345678901234567890"), 0, 20, S("12345678901234567890cde"));
+ test(S("abcde"), 0, 2, S("12345678901234567890"), 0, 21, S("12345678901234567890cde"));
+ test(S("abcde"), 0, 2, S("12345678901234567890"), 1, 0, S("cde"));
+ test(S("abcde"), 0, 2, S("12345678901234567890"), 1, 1, S("2cde"));
+ test(S("abcde"), 0, 2, S("12345678901234567890"), 1, 9, S("234567890cde"));
+ test(S("abcde"), 0, 2, S("12345678901234567890"), 1, 18, S("234567890123456789cde"));
+ test(S("abcde"), 0, 2, S("12345678901234567890"), 1, 19, S("2345678901234567890cde"));
+ test(S("abcde"), 0, 2, S("12345678901234567890"), 1, 20, S("2345678901234567890cde"));
+ test(S("abcde"), 0, 2, S("12345678901234567890"), 10, 0, S("cde"));
+ test(S("abcde"), 0, 2, S("12345678901234567890"), 10, 1, S("1cde"));
+ test(S("abcde"), 0, 2, S("12345678901234567890"), 10, 5, S("12345cde"));
+ test(S("abcde"), 0, 2, S("12345678901234567890"), 10, 9, S("123456789cde"));
+ test(S("abcde"), 0, 2, S("12345678901234567890"), 10, 10, S("1234567890cde"));
+ test(S("abcde"), 0, 2, S("12345678901234567890"), 10, 11, S("1234567890cde"));
+ test(S("abcde"), 0, 2, S("12345678901234567890"), 19, 0, S("cde"));
+ test(S("abcde"), 0, 2, S("12345678901234567890"), 19, 1, S("0cde"));
+ test(S("abcde"), 0, 2, S("12345678901234567890"), 19, 2, S("0cde"));
+ test(S("abcde"), 0, 2, S("12345678901234567890"), 20, 0, S("cde"));
+ test(S("abcde"), 0, 2, S("12345678901234567890"), 20, 1, S("cde"));
+ test(S("abcde"), 0, 2, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcde"), 0, 4, S(""), 0, 0, S("e"));
+ test(S("abcde"), 0, 4, S(""), 0, 1, S("e"));
+ test(S("abcde"), 0, 4, S(""), 1, 0, S("can't happen"));
+ test(S("abcde"), 0, 4, S("12345"), 0, 0, S("e"));
+ test(S("abcde"), 0, 4, S("12345"), 0, 1, S("1e"));
+ test(S("abcde"), 0, 4, S("12345"), 0, 2, S("12e"));
+ test(S("abcde"), 0, 4, S("12345"), 0, 4, S("1234e"));
+ test(S("abcde"), 0, 4, S("12345"), 0, 5, S("12345e"));
+ test(S("abcde"), 0, 4, S("12345"), 0, 6, S("12345e"));
+ test(S("abcde"), 0, 4, S("12345"), 1, 0, S("e"));
+ test(S("abcde"), 0, 4, S("12345"), 1, 1, S("2e"));
+ test(S("abcde"), 0, 4, S("12345"), 1, 2, S("23e"));
+ test(S("abcde"), 0, 4, S("12345"), 1, 3, S("234e"));
+ test(S("abcde"), 0, 4, S("12345"), 1, 4, S("2345e"));
+ test(S("abcde"), 0, 4, S("12345"), 1, 5, S("2345e"));
+ test(S("abcde"), 0, 4, S("12345"), 2, 0, S("e"));
+ test(S("abcde"), 0, 4, S("12345"), 2, 1, S("3e"));
+ test(S("abcde"), 0, 4, S("12345"), 2, 2, S("34e"));
+ test(S("abcde"), 0, 4, S("12345"), 2, 3, S("345e"));
+ test(S("abcde"), 0, 4, S("12345"), 2, 4, S("345e"));
+ test(S("abcde"), 0, 4, S("12345"), 4, 0, S("e"));
+ test(S("abcde"), 0, 4, S("12345"), 4, 1, S("5e"));
+ test(S("abcde"), 0, 4, S("12345"), 4, 2, S("5e"));
+ test(S("abcde"), 0, 4, S("12345"), 5, 0, S("e"));
+ test(S("abcde"), 0, 4, S("12345"), 5, 1, S("e"));
+ test(S("abcde"), 0, 4, S("12345"), 6, 0, S("can't happen"));
+ test(S("abcde"), 0, 4, S("1234567890"), 0, 0, S("e"));
+ test(S("abcde"), 0, 4, S("1234567890"), 0, 1, S("1e"));
+ test(S("abcde"), 0, 4, S("1234567890"), 0, 5, S("12345e"));
+ test(S("abcde"), 0, 4, S("1234567890"), 0, 9, S("123456789e"));
+ test(S("abcde"), 0, 4, S("1234567890"), 0, 10, S("1234567890e"));
+ test(S("abcde"), 0, 4, S("1234567890"), 0, 11, S("1234567890e"));
+ test(S("abcde"), 0, 4, S("1234567890"), 1, 0, S("e"));
+ test(S("abcde"), 0, 4, S("1234567890"), 1, 1, S("2e"));
+ test(S("abcde"), 0, 4, S("1234567890"), 1, 4, S("2345e"));
+ test(S("abcde"), 0, 4, S("1234567890"), 1, 8, S("23456789e"));
+ test(S("abcde"), 0, 4, S("1234567890"), 1, 9, S("234567890e"));
+ test(S("abcde"), 0, 4, S("1234567890"), 1, 10, S("234567890e"));
+ test(S("abcde"), 0, 4, S("1234567890"), 5, 0, S("e"));
+ test(S("abcde"), 0, 4, S("1234567890"), 5, 1, S("6e"));
+ test(S("abcde"), 0, 4, S("1234567890"), 5, 2, S("67e"));
+ test(S("abcde"), 0, 4, S("1234567890"), 5, 4, S("6789e"));
+ test(S("abcde"), 0, 4, S("1234567890"), 5, 5, S("67890e"));
+ test(S("abcde"), 0, 4, S("1234567890"), 5, 6, S("67890e"));
+ test(S("abcde"), 0, 4, S("1234567890"), 9, 0, S("e"));
+ test(S("abcde"), 0, 4, S("1234567890"), 9, 1, S("0e"));
+ test(S("abcde"), 0, 4, S("1234567890"), 9, 2, S("0e"));
+ test(S("abcde"), 0, 4, S("1234567890"), 10, 0, S("e"));
+ test(S("abcde"), 0, 4, S("1234567890"), 10, 1, S("e"));
+ test(S("abcde"), 0, 4, S("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcde"), 0, 4, S("12345678901234567890"), 0, 0, S("e"));
+ test(S("abcde"), 0, 4, S("12345678901234567890"), 0, 1, S("1e"));
+ test(S("abcde"), 0, 4, S("12345678901234567890"), 0, 10, S("1234567890e"));
+ test(S("abcde"), 0, 4, S("12345678901234567890"), 0, 19, S("1234567890123456789e"));
+ test(S("abcde"), 0, 4, S("12345678901234567890"), 0, 20, S("12345678901234567890e"));
+ test(S("abcde"), 0, 4, S("12345678901234567890"), 0, 21, S("12345678901234567890e"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test5()
-{
- test(S("abcde"), 0, 4, S("12345678901234567890"), 1, 0, S("e"));
- test(S("abcde"), 0, 4, S("12345678901234567890"), 1, 1, S("2e"));
- test(S("abcde"), 0, 4, S("12345678901234567890"), 1, 9, S("234567890e"));
- test(S("abcde"), 0, 4, S("12345678901234567890"), 1, 18, S("234567890123456789e"));
- test(S("abcde"), 0, 4, S("12345678901234567890"), 1, 19, S("2345678901234567890e"));
- test(S("abcde"), 0, 4, S("12345678901234567890"), 1, 20, S("2345678901234567890e"));
- test(S("abcde"), 0, 4, S("12345678901234567890"), 10, 0, S("e"));
- test(S("abcde"), 0, 4, S("12345678901234567890"), 10, 1, S("1e"));
- test(S("abcde"), 0, 4, S("12345678901234567890"), 10, 5, S("12345e"));
- test(S("abcde"), 0, 4, S("12345678901234567890"), 10, 9, S("123456789e"));
- test(S("abcde"), 0, 4, S("12345678901234567890"), 10, 10, S("1234567890e"));
- test(S("abcde"), 0, 4, S("12345678901234567890"), 10, 11, S("1234567890e"));
- test(S("abcde"), 0, 4, S("12345678901234567890"), 19, 0, S("e"));
- test(S("abcde"), 0, 4, S("12345678901234567890"), 19, 1, S("0e"));
- test(S("abcde"), 0, 4, S("12345678901234567890"), 19, 2, S("0e"));
- test(S("abcde"), 0, 4, S("12345678901234567890"), 20, 0, S("e"));
- test(S("abcde"), 0, 4, S("12345678901234567890"), 20, 1, S("e"));
- test(S("abcde"), 0, 4, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcde"), 0, 5, S(""), 0, 0, S(""));
- test(S("abcde"), 0, 5, S(""), 0, 1, S(""));
- test(S("abcde"), 0, 5, S(""), 1, 0, S("can't happen"));
- test(S("abcde"), 0, 5, S("12345"), 0, 0, S(""));
- test(S("abcde"), 0, 5, S("12345"), 0, 1, S("1"));
- test(S("abcde"), 0, 5, S("12345"), 0, 2, S("12"));
- test(S("abcde"), 0, 5, S("12345"), 0, 4, S("1234"));
- test(S("abcde"), 0, 5, S("12345"), 0, 5, S("12345"));
- test(S("abcde"), 0, 5, S("12345"), 0, 6, S("12345"));
- test(S("abcde"), 0, 5, S("12345"), 1, 0, S(""));
- test(S("abcde"), 0, 5, S("12345"), 1, 1, S("2"));
- test(S("abcde"), 0, 5, S("12345"), 1, 2, S("23"));
- test(S("abcde"), 0, 5, S("12345"), 1, 3, S("234"));
- test(S("abcde"), 0, 5, S("12345"), 1, 4, S("2345"));
- test(S("abcde"), 0, 5, S("12345"), 1, 5, S("2345"));
- test(S("abcde"), 0, 5, S("12345"), 2, 0, S(""));
- test(S("abcde"), 0, 5, S("12345"), 2, 1, S("3"));
- test(S("abcde"), 0, 5, S("12345"), 2, 2, S("34"));
- test(S("abcde"), 0, 5, S("12345"), 2, 3, S("345"));
- test(S("abcde"), 0, 5, S("12345"), 2, 4, S("345"));
- test(S("abcde"), 0, 5, S("12345"), 4, 0, S(""));
- test(S("abcde"), 0, 5, S("12345"), 4, 1, S("5"));
- test(S("abcde"), 0, 5, S("12345"), 4, 2, S("5"));
- test(S("abcde"), 0, 5, S("12345"), 5, 0, S(""));
- test(S("abcde"), 0, 5, S("12345"), 5, 1, S(""));
- test(S("abcde"), 0, 5, S("12345"), 6, 0, S("can't happen"));
- test(S("abcde"), 0, 5, S("1234567890"), 0, 0, S(""));
- test(S("abcde"), 0, 5, S("1234567890"), 0, 1, S("1"));
- test(S("abcde"), 0, 5, S("1234567890"), 0, 5, S("12345"));
- test(S("abcde"), 0, 5, S("1234567890"), 0, 9, S("123456789"));
- test(S("abcde"), 0, 5, S("1234567890"), 0, 10, S("1234567890"));
- test(S("abcde"), 0, 5, S("1234567890"), 0, 11, S("1234567890"));
- test(S("abcde"), 0, 5, S("1234567890"), 1, 0, S(""));
- test(S("abcde"), 0, 5, S("1234567890"), 1, 1, S("2"));
- test(S("abcde"), 0, 5, S("1234567890"), 1, 4, S("2345"));
- test(S("abcde"), 0, 5, S("1234567890"), 1, 8, S("23456789"));
- test(S("abcde"), 0, 5, S("1234567890"), 1, 9, S("234567890"));
- test(S("abcde"), 0, 5, S("1234567890"), 1, 10, S("234567890"));
- test(S("abcde"), 0, 5, S("1234567890"), 5, 0, S(""));
- test(S("abcde"), 0, 5, S("1234567890"), 5, 1, S("6"));
- test(S("abcde"), 0, 5, S("1234567890"), 5, 2, S("67"));
- test(S("abcde"), 0, 5, S("1234567890"), 5, 4, S("6789"));
- test(S("abcde"), 0, 5, S("1234567890"), 5, 5, S("67890"));
- test(S("abcde"), 0, 5, S("1234567890"), 5, 6, S("67890"));
- test(S("abcde"), 0, 5, S("1234567890"), 9, 0, S(""));
- test(S("abcde"), 0, 5, S("1234567890"), 9, 1, S("0"));
- test(S("abcde"), 0, 5, S("1234567890"), 9, 2, S("0"));
- test(S("abcde"), 0, 5, S("1234567890"), 10, 0, S(""));
- test(S("abcde"), 0, 5, S("1234567890"), 10, 1, S(""));
- test(S("abcde"), 0, 5, S("1234567890"), 11, 0, S("can't happen"));
- test(S("abcde"), 0, 5, S("12345678901234567890"), 0, 0, S(""));
- test(S("abcde"), 0, 5, S("12345678901234567890"), 0, 1, S("1"));
- test(S("abcde"), 0, 5, S("12345678901234567890"), 0, 10, S("1234567890"));
- test(S("abcde"), 0, 5, S("12345678901234567890"), 0, 19, S("1234567890123456789"));
- test(S("abcde"), 0, 5, S("12345678901234567890"), 0, 20, S("12345678901234567890"));
- test(S("abcde"), 0, 5, S("12345678901234567890"), 0, 21, S("12345678901234567890"));
- test(S("abcde"), 0, 5, S("12345678901234567890"), 1, 0, S(""));
- test(S("abcde"), 0, 5, S("12345678901234567890"), 1, 1, S("2"));
- test(S("abcde"), 0, 5, S("12345678901234567890"), 1, 9, S("234567890"));
- test(S("abcde"), 0, 5, S("12345678901234567890"), 1, 18, S("234567890123456789"));
- test(S("abcde"), 0, 5, S("12345678901234567890"), 1, 19, S("2345678901234567890"));
- test(S("abcde"), 0, 5, S("12345678901234567890"), 1, 20, S("2345678901234567890"));
- test(S("abcde"), 0, 5, S("12345678901234567890"), 10, 0, S(""));
- test(S("abcde"), 0, 5, S("12345678901234567890"), 10, 1, S("1"));
- test(S("abcde"), 0, 5, S("12345678901234567890"), 10, 5, S("12345"));
- test(S("abcde"), 0, 5, S("12345678901234567890"), 10, 9, S("123456789"));
- test(S("abcde"), 0, 5, S("12345678901234567890"), 10, 10, S("1234567890"));
- test(S("abcde"), 0, 5, S("12345678901234567890"), 10, 11, S("1234567890"));
- test(S("abcde"), 0, 5, S("12345678901234567890"), 19, 0, S(""));
- test(S("abcde"), 0, 5, S("12345678901234567890"), 19, 1, S("0"));
- test(S("abcde"), 0, 5, S("12345678901234567890"), 19, 2, S("0"));
- test(S("abcde"), 0, 5, S("12345678901234567890"), 20, 0, S(""));
- test(S("abcde"), 0, 5, S("12345678901234567890"), 20, 1, S(""));
- test(S("abcde"), 0, 5, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcde"), 0, 6, S(""), 0, 0, S(""));
- test(S("abcde"), 0, 6, S(""), 0, 1, S(""));
- test(S("abcde"), 0, 6, S(""), 1, 0, S("can't happen"));
- test(S("abcde"), 0, 6, S("12345"), 0, 0, S(""));
- test(S("abcde"), 0, 6, S("12345"), 0, 1, S("1"));
- test(S("abcde"), 0, 6, S("12345"), 0, 2, S("12"));
- test(S("abcde"), 0, 6, S("12345"), 0, 4, S("1234"));
- test(S("abcde"), 0, 6, S("12345"), 0, 5, S("12345"));
+TEST_CONSTEXPR_CXX20 bool test5() {
+ test(S("abcde"), 0, 4, S("12345678901234567890"), 1, 0, S("e"));
+ test(S("abcde"), 0, 4, S("12345678901234567890"), 1, 1, S("2e"));
+ test(S("abcde"), 0, 4, S("12345678901234567890"), 1, 9, S("234567890e"));
+ test(S("abcde"), 0, 4, S("12345678901234567890"), 1, 18, S("234567890123456789e"));
+ test(S("abcde"), 0, 4, S("12345678901234567890"), 1, 19, S("2345678901234567890e"));
+ test(S("abcde"), 0, 4, S("12345678901234567890"), 1, 20, S("2345678901234567890e"));
+ test(S("abcde"), 0, 4, S("12345678901234567890"), 10, 0, S("e"));
+ test(S("abcde"), 0, 4, S("12345678901234567890"), 10, 1, S("1e"));
+ test(S("abcde"), 0, 4, S("12345678901234567890"), 10, 5, S("12345e"));
+ test(S("abcde"), 0, 4, S("12345678901234567890"), 10, 9, S("123456789e"));
+ test(S("abcde"), 0, 4, S("12345678901234567890"), 10, 10, S("1234567890e"));
+ test(S("abcde"), 0, 4, S("12345678901234567890"), 10, 11, S("1234567890e"));
+ test(S("abcde"), 0, 4, S("12345678901234567890"), 19, 0, S("e"));
+ test(S("abcde"), 0, 4, S("12345678901234567890"), 19, 1, S("0e"));
+ test(S("abcde"), 0, 4, S("12345678901234567890"), 19, 2, S("0e"));
+ test(S("abcde"), 0, 4, S("12345678901234567890"), 20, 0, S("e"));
+ test(S("abcde"), 0, 4, S("12345678901234567890"), 20, 1, S("e"));
+ test(S("abcde"), 0, 4, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcde"), 0, 5, S(""), 0, 0, S(""));
+ test(S("abcde"), 0, 5, S(""), 0, 1, S(""));
+ test(S("abcde"), 0, 5, S(""), 1, 0, S("can't happen"));
+ test(S("abcde"), 0, 5, S("12345"), 0, 0, S(""));
+ test(S("abcde"), 0, 5, S("12345"), 0, 1, S("1"));
+ test(S("abcde"), 0, 5, S("12345"), 0, 2, S("12"));
+ test(S("abcde"), 0, 5, S("12345"), 0, 4, S("1234"));
+ test(S("abcde"), 0, 5, S("12345"), 0, 5, S("12345"));
+ test(S("abcde"), 0, 5, S("12345"), 0, 6, S("12345"));
+ test(S("abcde"), 0, 5, S("12345"), 1, 0, S(""));
+ test(S("abcde"), 0, 5, S("12345"), 1, 1, S("2"));
+ test(S("abcde"), 0, 5, S("12345"), 1, 2, S("23"));
+ test(S("abcde"), 0, 5, S("12345"), 1, 3, S("234"));
+ test(S("abcde"), 0, 5, S("12345"), 1, 4, S("2345"));
+ test(S("abcde"), 0, 5, S("12345"), 1, 5, S("2345"));
+ test(S("abcde"), 0, 5, S("12345"), 2, 0, S(""));
+ test(S("abcde"), 0, 5, S("12345"), 2, 1, S("3"));
+ test(S("abcde"), 0, 5, S("12345"), 2, 2, S("34"));
+ test(S("abcde"), 0, 5, S("12345"), 2, 3, S("345"));
+ test(S("abcde"), 0, 5, S("12345"), 2, 4, S("345"));
+ test(S("abcde"), 0, 5, S("12345"), 4, 0, S(""));
+ test(S("abcde"), 0, 5, S("12345"), 4, 1, S("5"));
+ test(S("abcde"), 0, 5, S("12345"), 4, 2, S("5"));
+ test(S("abcde"), 0, 5, S("12345"), 5, 0, S(""));
+ test(S("abcde"), 0, 5, S("12345"), 5, 1, S(""));
+ test(S("abcde"), 0, 5, S("12345"), 6, 0, S("can't happen"));
+ test(S("abcde"), 0, 5, S("1234567890"), 0, 0, S(""));
+ test(S("abcde"), 0, 5, S("1234567890"), 0, 1, S("1"));
+ test(S("abcde"), 0, 5, S("1234567890"), 0, 5, S("12345"));
+ test(S("abcde"), 0, 5, S("1234567890"), 0, 9, S("123456789"));
+ test(S("abcde"), 0, 5, S("1234567890"), 0, 10, S("1234567890"));
+ test(S("abcde"), 0, 5, S("1234567890"), 0, 11, S("1234567890"));
+ test(S("abcde"), 0, 5, S("1234567890"), 1, 0, S(""));
+ test(S("abcde"), 0, 5, S("1234567890"), 1, 1, S("2"));
+ test(S("abcde"), 0, 5, S("1234567890"), 1, 4, S("2345"));
+ test(S("abcde"), 0, 5, S("1234567890"), 1, 8, S("23456789"));
+ test(S("abcde"), 0, 5, S("1234567890"), 1, 9, S("234567890"));
+ test(S("abcde"), 0, 5, S("1234567890"), 1, 10, S("234567890"));
+ test(S("abcde"), 0, 5, S("1234567890"), 5, 0, S(""));
+ test(S("abcde"), 0, 5, S("1234567890"), 5, 1, S("6"));
+ test(S("abcde"), 0, 5, S("1234567890"), 5, 2, S("67"));
+ test(S("abcde"), 0, 5, S("1234567890"), 5, 4, S("6789"));
+ test(S("abcde"), 0, 5, S("1234567890"), 5, 5, S("67890"));
+ test(S("abcde"), 0, 5, S("1234567890"), 5, 6, S("67890"));
+ test(S("abcde"), 0, 5, S("1234567890"), 9, 0, S(""));
+ test(S("abcde"), 0, 5, S("1234567890"), 9, 1, S("0"));
+ test(S("abcde"), 0, 5, S("1234567890"), 9, 2, S("0"));
+ test(S("abcde"), 0, 5, S("1234567890"), 10, 0, S(""));
+ test(S("abcde"), 0, 5, S("1234567890"), 10, 1, S(""));
+ test(S("abcde"), 0, 5, S("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcde"), 0, 5, S("12345678901234567890"), 0, 0, S(""));
+ test(S("abcde"), 0, 5, S("12345678901234567890"), 0, 1, S("1"));
+ test(S("abcde"), 0, 5, S("12345678901234567890"), 0, 10, S("1234567890"));
+ test(S("abcde"), 0, 5, S("12345678901234567890"), 0, 19, S("1234567890123456789"));
+ test(S("abcde"), 0, 5, S("12345678901234567890"), 0, 20, S("12345678901234567890"));
+ test(S("abcde"), 0, 5, S("12345678901234567890"), 0, 21, S("12345678901234567890"));
+ test(S("abcde"), 0, 5, S("12345678901234567890"), 1, 0, S(""));
+ test(S("abcde"), 0, 5, S("12345678901234567890"), 1, 1, S("2"));
+ test(S("abcde"), 0, 5, S("12345678901234567890"), 1, 9, S("234567890"));
+ test(S("abcde"), 0, 5, S("12345678901234567890"), 1, 18, S("234567890123456789"));
+ test(S("abcde"), 0, 5, S("12345678901234567890"), 1, 19, S("2345678901234567890"));
+ test(S("abcde"), 0, 5, S("12345678901234567890"), 1, 20, S("2345678901234567890"));
+ test(S("abcde"), 0, 5, S("12345678901234567890"), 10, 0, S(""));
+ test(S("abcde"), 0, 5, S("12345678901234567890"), 10, 1, S("1"));
+ test(S("abcde"), 0, 5, S("12345678901234567890"), 10, 5, S("12345"));
+ test(S("abcde"), 0, 5, S("12345678901234567890"), 10, 9, S("123456789"));
+ test(S("abcde"), 0, 5, S("12345678901234567890"), 10, 10, S("1234567890"));
+ test(S("abcde"), 0, 5, S("12345678901234567890"), 10, 11, S("1234567890"));
+ test(S("abcde"), 0, 5, S("12345678901234567890"), 19, 0, S(""));
+ test(S("abcde"), 0, 5, S("12345678901234567890"), 19, 1, S("0"));
+ test(S("abcde"), 0, 5, S("12345678901234567890"), 19, 2, S("0"));
+ test(S("abcde"), 0, 5, S("12345678901234567890"), 20, 0, S(""));
+ test(S("abcde"), 0, 5, S("12345678901234567890"), 20, 1, S(""));
+ test(S("abcde"), 0, 5, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcde"), 0, 6, S(""), 0, 0, S(""));
+ test(S("abcde"), 0, 6, S(""), 0, 1, S(""));
+ test(S("abcde"), 0, 6, S(""), 1, 0, S("can't happen"));
+ test(S("abcde"), 0, 6, S("12345"), 0, 0, S(""));
+ test(S("abcde"), 0, 6, S("12345"), 0, 1, S("1"));
+ test(S("abcde"), 0, 6, S("12345"), 0, 2, S("12"));
+ test(S("abcde"), 0, 6, S("12345"), 0, 4, S("1234"));
+ test(S("abcde"), 0, 6, S("12345"), 0, 5, S("12345"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test6()
-{
- test(S("abcde"), 0, 6, S("12345"), 0, 6, S("12345"));
- test(S("abcde"), 0, 6, S("12345"), 1, 0, S(""));
- test(S("abcde"), 0, 6, S("12345"), 1, 1, S("2"));
- test(S("abcde"), 0, 6, S("12345"), 1, 2, S("23"));
- test(S("abcde"), 0, 6, S("12345"), 1, 3, S("234"));
- test(S("abcde"), 0, 6, S("12345"), 1, 4, S("2345"));
- test(S("abcde"), 0, 6, S("12345"), 1, 5, S("2345"));
- test(S("abcde"), 0, 6, S("12345"), 2, 0, S(""));
- test(S("abcde"), 0, 6, S("12345"), 2, 1, S("3"));
- test(S("abcde"), 0, 6, S("12345"), 2, 2, S("34"));
- test(S("abcde"), 0, 6, S("12345"), 2, 3, S("345"));
- test(S("abcde"), 0, 6, S("12345"), 2, 4, S("345"));
- test(S("abcde"), 0, 6, S("12345"), 4, 0, S(""));
- test(S("abcde"), 0, 6, S("12345"), 4, 1, S("5"));
- test(S("abcde"), 0, 6, S("12345"), 4, 2, S("5"));
- test(S("abcde"), 0, 6, S("12345"), 5, 0, S(""));
- test(S("abcde"), 0, 6, S("12345"), 5, 1, S(""));
- test(S("abcde"), 0, 6, S("12345"), 6, 0, S("can't happen"));
- test(S("abcde"), 0, 6, S("1234567890"), 0, 0, S(""));
- test(S("abcde"), 0, 6, S("1234567890"), 0, 1, S("1"));
- test(S("abcde"), 0, 6, S("1234567890"), 0, 5, S("12345"));
- test(S("abcde"), 0, 6, S("1234567890"), 0, 9, S("123456789"));
- test(S("abcde"), 0, 6, S("1234567890"), 0, 10, S("1234567890"));
- test(S("abcde"), 0, 6, S("1234567890"), 0, 11, S("1234567890"));
- test(S("abcde"), 0, 6, S("1234567890"), 1, 0, S(""));
- test(S("abcde"), 0, 6, S("1234567890"), 1, 1, S("2"));
- test(S("abcde"), 0, 6, S("1234567890"), 1, 4, S("2345"));
- test(S("abcde"), 0, 6, S("1234567890"), 1, 8, S("23456789"));
- test(S("abcde"), 0, 6, S("1234567890"), 1, 9, S("234567890"));
- test(S("abcde"), 0, 6, S("1234567890"), 1, 10, S("234567890"));
- test(S("abcde"), 0, 6, S("1234567890"), 5, 0, S(""));
- test(S("abcde"), 0, 6, S("1234567890"), 5, 1, S("6"));
- test(S("abcde"), 0, 6, S("1234567890"), 5, 2, S("67"));
- test(S("abcde"), 0, 6, S("1234567890"), 5, 4, S("6789"));
- test(S("abcde"), 0, 6, S("1234567890"), 5, 5, S("67890"));
- test(S("abcde"), 0, 6, S("1234567890"), 5, 6, S("67890"));
- test(S("abcde"), 0, 6, S("1234567890"), 9, 0, S(""));
- test(S("abcde"), 0, 6, S("1234567890"), 9, 1, S("0"));
- test(S("abcde"), 0, 6, S("1234567890"), 9, 2, S("0"));
- test(S("abcde"), 0, 6, S("1234567890"), 10, 0, S(""));
- test(S("abcde"), 0, 6, S("1234567890"), 10, 1, S(""));
- test(S("abcde"), 0, 6, S("1234567890"), 11, 0, S("can't happen"));
- test(S("abcde"), 0, 6, S("12345678901234567890"), 0, 0, S(""));
- test(S("abcde"), 0, 6, S("12345678901234567890"), 0, 1, S("1"));
- test(S("abcde"), 0, 6, S("12345678901234567890"), 0, 10, S("1234567890"));
- test(S("abcde"), 0, 6, S("12345678901234567890"), 0, 19, S("1234567890123456789"));
- test(S("abcde"), 0, 6, S("12345678901234567890"), 0, 20, S("12345678901234567890"));
- test(S("abcde"), 0, 6, S("12345678901234567890"), 0, 21, S("12345678901234567890"));
- test(S("abcde"), 0, 6, S("12345678901234567890"), 1, 0, S(""));
- test(S("abcde"), 0, 6, S("12345678901234567890"), 1, 1, S("2"));
- test(S("abcde"), 0, 6, S("12345678901234567890"), 1, 9, S("234567890"));
- test(S("abcde"), 0, 6, S("12345678901234567890"), 1, 18, S("234567890123456789"));
- test(S("abcde"), 0, 6, S("12345678901234567890"), 1, 19, S("2345678901234567890"));
- test(S("abcde"), 0, 6, S("12345678901234567890"), 1, 20, S("2345678901234567890"));
- test(S("abcde"), 0, 6, S("12345678901234567890"), 10, 0, S(""));
- test(S("abcde"), 0, 6, S("12345678901234567890"), 10, 1, S("1"));
- test(S("abcde"), 0, 6, S("12345678901234567890"), 10, 5, S("12345"));
- test(S("abcde"), 0, 6, S("12345678901234567890"), 10, 9, S("123456789"));
- test(S("abcde"), 0, 6, S("12345678901234567890"), 10, 10, S("1234567890"));
- test(S("abcde"), 0, 6, S("12345678901234567890"), 10, 11, S("1234567890"));
- test(S("abcde"), 0, 6, S("12345678901234567890"), 19, 0, S(""));
- test(S("abcde"), 0, 6, S("12345678901234567890"), 19, 1, S("0"));
- test(S("abcde"), 0, 6, S("12345678901234567890"), 19, 2, S("0"));
- test(S("abcde"), 0, 6, S("12345678901234567890"), 20, 0, S(""));
- test(S("abcde"), 0, 6, S("12345678901234567890"), 20, 1, S(""));
- test(S("abcde"), 0, 6, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcde"), 1, 0, S(""), 0, 0, S("abcde"));
- test(S("abcde"), 1, 0, S(""), 0, 1, S("abcde"));
- test(S("abcde"), 1, 0, S(""), 1, 0, S("can't happen"));
- test(S("abcde"), 1, 0, S("12345"), 0, 0, S("abcde"));
- test(S("abcde"), 1, 0, S("12345"), 0, 1, S("a1bcde"));
- test(S("abcde"), 1, 0, S("12345"), 0, 2, S("a12bcde"));
- test(S("abcde"), 1, 0, S("12345"), 0, 4, S("a1234bcde"));
- test(S("abcde"), 1, 0, S("12345"), 0, 5, S("a12345bcde"));
- test(S("abcde"), 1, 0, S("12345"), 0, 6, S("a12345bcde"));
- test(S("abcde"), 1, 0, S("12345"), 1, 0, S("abcde"));
- test(S("abcde"), 1, 0, S("12345"), 1, 1, S("a2bcde"));
- test(S("abcde"), 1, 0, S("12345"), 1, 2, S("a23bcde"));
- test(S("abcde"), 1, 0, S("12345"), 1, 3, S("a234bcde"));
- test(S("abcde"), 1, 0, S("12345"), 1, 4, S("a2345bcde"));
- test(S("abcde"), 1, 0, S("12345"), 1, 5, S("a2345bcde"));
- test(S("abcde"), 1, 0, S("12345"), 2, 0, S("abcde"));
- test(S("abcde"), 1, 0, S("12345"), 2, 1, S("a3bcde"));
- test(S("abcde"), 1, 0, S("12345"), 2, 2, S("a34bcde"));
- test(S("abcde"), 1, 0, S("12345"), 2, 3, S("a345bcde"));
- test(S("abcde"), 1, 0, S("12345"), 2, 4, S("a345bcde"));
- test(S("abcde"), 1, 0, S("12345"), 4, 0, S("abcde"));
- test(S("abcde"), 1, 0, S("12345"), 4, 1, S("a5bcde"));
- test(S("abcde"), 1, 0, S("12345"), 4, 2, S("a5bcde"));
- test(S("abcde"), 1, 0, S("12345"), 5, 0, S("abcde"));
- test(S("abcde"), 1, 0, S("12345"), 5, 1, S("abcde"));
- test(S("abcde"), 1, 0, S("12345"), 6, 0, S("can't happen"));
- test(S("abcde"), 1, 0, S("1234567890"), 0, 0, S("abcde"));
- test(S("abcde"), 1, 0, S("1234567890"), 0, 1, S("a1bcde"));
- test(S("abcde"), 1, 0, S("1234567890"), 0, 5, S("a12345bcde"));
- test(S("abcde"), 1, 0, S("1234567890"), 0, 9, S("a123456789bcde"));
- test(S("abcde"), 1, 0, S("1234567890"), 0, 10, S("a1234567890bcde"));
- test(S("abcde"), 1, 0, S("1234567890"), 0, 11, S("a1234567890bcde"));
- test(S("abcde"), 1, 0, S("1234567890"), 1, 0, S("abcde"));
- test(S("abcde"), 1, 0, S("1234567890"), 1, 1, S("a2bcde"));
+TEST_CONSTEXPR_CXX20 bool test6() {
+ test(S("abcde"), 0, 6, S("12345"), 0, 6, S("12345"));
+ test(S("abcde"), 0, 6, S("12345"), 1, 0, S(""));
+ test(S("abcde"), 0, 6, S("12345"), 1, 1, S("2"));
+ test(S("abcde"), 0, 6, S("12345"), 1, 2, S("23"));
+ test(S("abcde"), 0, 6, S("12345"), 1, 3, S("234"));
+ test(S("abcde"), 0, 6, S("12345"), 1, 4, S("2345"));
+ test(S("abcde"), 0, 6, S("12345"), 1, 5, S("2345"));
+ test(S("abcde"), 0, 6, S("12345"), 2, 0, S(""));
+ test(S("abcde"), 0, 6, S("12345"), 2, 1, S("3"));
+ test(S("abcde"), 0, 6, S("12345"), 2, 2, S("34"));
+ test(S("abcde"), 0, 6, S("12345"), 2, 3, S("345"));
+ test(S("abcde"), 0, 6, S("12345"), 2, 4, S("345"));
+ test(S("abcde"), 0, 6, S("12345"), 4, 0, S(""));
+ test(S("abcde"), 0, 6, S("12345"), 4, 1, S("5"));
+ test(S("abcde"), 0, 6, S("12345"), 4, 2, S("5"));
+ test(S("abcde"), 0, 6, S("12345"), 5, 0, S(""));
+ test(S("abcde"), 0, 6, S("12345"), 5, 1, S(""));
+ test(S("abcde"), 0, 6, S("12345"), 6, 0, S("can't happen"));
+ test(S("abcde"), 0, 6, S("1234567890"), 0, 0, S(""));
+ test(S("abcde"), 0, 6, S("1234567890"), 0, 1, S("1"));
+ test(S("abcde"), 0, 6, S("1234567890"), 0, 5, S("12345"));
+ test(S("abcde"), 0, 6, S("1234567890"), 0, 9, S("123456789"));
+ test(S("abcde"), 0, 6, S("1234567890"), 0, 10, S("1234567890"));
+ test(S("abcde"), 0, 6, S("1234567890"), 0, 11, S("1234567890"));
+ test(S("abcde"), 0, 6, S("1234567890"), 1, 0, S(""));
+ test(S("abcde"), 0, 6, S("1234567890"), 1, 1, S("2"));
+ test(S("abcde"), 0, 6, S("1234567890"), 1, 4, S("2345"));
+ test(S("abcde"), 0, 6, S("1234567890"), 1, 8, S("23456789"));
+ test(S("abcde"), 0, 6, S("1234567890"), 1, 9, S("234567890"));
+ test(S("abcde"), 0, 6, S("1234567890"), 1, 10, S("234567890"));
+ test(S("abcde"), 0, 6, S("1234567890"), 5, 0, S(""));
+ test(S("abcde"), 0, 6, S("1234567890"), 5, 1, S("6"));
+ test(S("abcde"), 0, 6, S("1234567890"), 5, 2, S("67"));
+ test(S("abcde"), 0, 6, S("1234567890"), 5, 4, S("6789"));
+ test(S("abcde"), 0, 6, S("1234567890"), 5, 5, S("67890"));
+ test(S("abcde"), 0, 6, S("1234567890"), 5, 6, S("67890"));
+ test(S("abcde"), 0, 6, S("1234567890"), 9, 0, S(""));
+ test(S("abcde"), 0, 6, S("1234567890"), 9, 1, S("0"));
+ test(S("abcde"), 0, 6, S("1234567890"), 9, 2, S("0"));
+ test(S("abcde"), 0, 6, S("1234567890"), 10, 0, S(""));
+ test(S("abcde"), 0, 6, S("1234567890"), 10, 1, S(""));
+ test(S("abcde"), 0, 6, S("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcde"), 0, 6, S("12345678901234567890"), 0, 0, S(""));
+ test(S("abcde"), 0, 6, S("12345678901234567890"), 0, 1, S("1"));
+ test(S("abcde"), 0, 6, S("12345678901234567890"), 0, 10, S("1234567890"));
+ test(S("abcde"), 0, 6, S("12345678901234567890"), 0, 19, S("1234567890123456789"));
+ test(S("abcde"), 0, 6, S("12345678901234567890"), 0, 20, S("12345678901234567890"));
+ test(S("abcde"), 0, 6, S("12345678901234567890"), 0, 21, S("12345678901234567890"));
+ test(S("abcde"), 0, 6, S("12345678901234567890"), 1, 0, S(""));
+ test(S("abcde"), 0, 6, S("12345678901234567890"), 1, 1, S("2"));
+ test(S("abcde"), 0, 6, S("12345678901234567890"), 1, 9, S("234567890"));
+ test(S("abcde"), 0, 6, S("12345678901234567890"), 1, 18, S("234567890123456789"));
+ test(S("abcde"), 0, 6, S("12345678901234567890"), 1, 19, S("2345678901234567890"));
+ test(S("abcde"), 0, 6, S("12345678901234567890"), 1, 20, S("2345678901234567890"));
+ test(S("abcde"), 0, 6, S("12345678901234567890"), 10, 0, S(""));
+ test(S("abcde"), 0, 6, S("12345678901234567890"), 10, 1, S("1"));
+ test(S("abcde"), 0, 6, S("12345678901234567890"), 10, 5, S("12345"));
+ test(S("abcde"), 0, 6, S("12345678901234567890"), 10, 9, S("123456789"));
+ test(S("abcde"), 0, 6, S("12345678901234567890"), 10, 10, S("1234567890"));
+ test(S("abcde"), 0, 6, S("12345678901234567890"), 10, 11, S("1234567890"));
+ test(S("abcde"), 0, 6, S("12345678901234567890"), 19, 0, S(""));
+ test(S("abcde"), 0, 6, S("12345678901234567890"), 19, 1, S("0"));
+ test(S("abcde"), 0, 6, S("12345678901234567890"), 19, 2, S("0"));
+ test(S("abcde"), 0, 6, S("12345678901234567890"), 20, 0, S(""));
+ test(S("abcde"), 0, 6, S("12345678901234567890"), 20, 1, S(""));
+ test(S("abcde"), 0, 6, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcde"), 1, 0, S(""), 0, 0, S("abcde"));
+ test(S("abcde"), 1, 0, S(""), 0, 1, S("abcde"));
+ test(S("abcde"), 1, 0, S(""), 1, 0, S("can't happen"));
+ test(S("abcde"), 1, 0, S("12345"), 0, 0, S("abcde"));
+ test(S("abcde"), 1, 0, S("12345"), 0, 1, S("a1bcde"));
+ test(S("abcde"), 1, 0, S("12345"), 0, 2, S("a12bcde"));
+ test(S("abcde"), 1, 0, S("12345"), 0, 4, S("a1234bcde"));
+ test(S("abcde"), 1, 0, S("12345"), 0, 5, S("a12345bcde"));
+ test(S("abcde"), 1, 0, S("12345"), 0, 6, S("a12345bcde"));
+ test(S("abcde"), 1, 0, S("12345"), 1, 0, S("abcde"));
+ test(S("abcde"), 1, 0, S("12345"), 1, 1, S("a2bcde"));
+ test(S("abcde"), 1, 0, S("12345"), 1, 2, S("a23bcde"));
+ test(S("abcde"), 1, 0, S("12345"), 1, 3, S("a234bcde"));
+ test(S("abcde"), 1, 0, S("12345"), 1, 4, S("a2345bcde"));
+ test(S("abcde"), 1, 0, S("12345"), 1, 5, S("a2345bcde"));
+ test(S("abcde"), 1, 0, S("12345"), 2, 0, S("abcde"));
+ test(S("abcde"), 1, 0, S("12345"), 2, 1, S("a3bcde"));
+ test(S("abcde"), 1, 0, S("12345"), 2, 2, S("a34bcde"));
+ test(S("abcde"), 1, 0, S("12345"), 2, 3, S("a345bcde"));
+ test(S("abcde"), 1, 0, S("12345"), 2, 4, S("a345bcde"));
+ test(S("abcde"), 1, 0, S("12345"), 4, 0, S("abcde"));
+ test(S("abcde"), 1, 0, S("12345"), 4, 1, S("a5bcde"));
+ test(S("abcde"), 1, 0, S("12345"), 4, 2, S("a5bcde"));
+ test(S("abcde"), 1, 0, S("12345"), 5, 0, S("abcde"));
+ test(S("abcde"), 1, 0, S("12345"), 5, 1, S("abcde"));
+ test(S("abcde"), 1, 0, S("12345"), 6, 0, S("can't happen"));
+ test(S("abcde"), 1, 0, S("1234567890"), 0, 0, S("abcde"));
+ test(S("abcde"), 1, 0, S("1234567890"), 0, 1, S("a1bcde"));
+ test(S("abcde"), 1, 0, S("1234567890"), 0, 5, S("a12345bcde"));
+ test(S("abcde"), 1, 0, S("1234567890"), 0, 9, S("a123456789bcde"));
+ test(S("abcde"), 1, 0, S("1234567890"), 0, 10, S("a1234567890bcde"));
+ test(S("abcde"), 1, 0, S("1234567890"), 0, 11, S("a1234567890bcde"));
+ test(S("abcde"), 1, 0, S("1234567890"), 1, 0, S("abcde"));
+ test(S("abcde"), 1, 0, S("1234567890"), 1, 1, S("a2bcde"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test7()
-{
- test(S("abcde"), 1, 0, S("1234567890"), 1, 4, S("a2345bcde"));
- test(S("abcde"), 1, 0, S("1234567890"), 1, 8, S("a23456789bcde"));
- test(S("abcde"), 1, 0, S("1234567890"), 1, 9, S("a234567890bcde"));
- test(S("abcde"), 1, 0, S("1234567890"), 1, 10, S("a234567890bcde"));
- test(S("abcde"), 1, 0, S("1234567890"), 5, 0, S("abcde"));
- test(S("abcde"), 1, 0, S("1234567890"), 5, 1, S("a6bcde"));
- test(S("abcde"), 1, 0, S("1234567890"), 5, 2, S("a67bcde"));
- test(S("abcde"), 1, 0, S("1234567890"), 5, 4, S("a6789bcde"));
- test(S("abcde"), 1, 0, S("1234567890"), 5, 5, S("a67890bcde"));
- test(S("abcde"), 1, 0, S("1234567890"), 5, 6, S("a67890bcde"));
- test(S("abcde"), 1, 0, S("1234567890"), 9, 0, S("abcde"));
- test(S("abcde"), 1, 0, S("1234567890"), 9, 1, S("a0bcde"));
- test(S("abcde"), 1, 0, S("1234567890"), 9, 2, S("a0bcde"));
- test(S("abcde"), 1, 0, S("1234567890"), 10, 0, S("abcde"));
- test(S("abcde"), 1, 0, S("1234567890"), 10, 1, S("abcde"));
- test(S("abcde"), 1, 0, S("1234567890"), 11, 0, S("can't happen"));
- test(S("abcde"), 1, 0, S("12345678901234567890"), 0, 0, S("abcde"));
- test(S("abcde"), 1, 0, S("12345678901234567890"), 0, 1, S("a1bcde"));
- test(S("abcde"), 1, 0, S("12345678901234567890"), 0, 10, S("a1234567890bcde"));
- test(S("abcde"), 1, 0, S("12345678901234567890"), 0, 19, S("a1234567890123456789bcde"));
- test(S("abcde"), 1, 0, S("12345678901234567890"), 0, 20, S("a12345678901234567890bcde"));
- test(S("abcde"), 1, 0, S("12345678901234567890"), 0, 21, S("a12345678901234567890bcde"));
- test(S("abcde"), 1, 0, S("12345678901234567890"), 1, 0, S("abcde"));
- test(S("abcde"), 1, 0, S("12345678901234567890"), 1, 1, S("a2bcde"));
- test(S("abcde"), 1, 0, S("12345678901234567890"), 1, 9, S("a234567890bcde"));
- test(S("abcde"), 1, 0, S("12345678901234567890"), 1, 18, S("a234567890123456789bcde"));
- test(S("abcde"), 1, 0, S("12345678901234567890"), 1, 19, S("a2345678901234567890bcde"));
- test(S("abcde"), 1, 0, S("12345678901234567890"), 1, 20, S("a2345678901234567890bcde"));
- test(S("abcde"), 1, 0, S("12345678901234567890"), 10, 0, S("abcde"));
- test(S("abcde"), 1, 0, S("12345678901234567890"), 10, 1, S("a1bcde"));
- test(S("abcde"), 1, 0, S("12345678901234567890"), 10, 5, S("a12345bcde"));
- test(S("abcde"), 1, 0, S("12345678901234567890"), 10, 9, S("a123456789bcde"));
- test(S("abcde"), 1, 0, S("12345678901234567890"), 10, 10, S("a1234567890bcde"));
- test(S("abcde"), 1, 0, S("12345678901234567890"), 10, 11, S("a1234567890bcde"));
- test(S("abcde"), 1, 0, S("12345678901234567890"), 19, 0, S("abcde"));
- test(S("abcde"), 1, 0, S("12345678901234567890"), 19, 1, S("a0bcde"));
- test(S("abcde"), 1, 0, S("12345678901234567890"), 19, 2, S("a0bcde"));
- test(S("abcde"), 1, 0, S("12345678901234567890"), 20, 0, S("abcde"));
- test(S("abcde"), 1, 0, S("12345678901234567890"), 20, 1, S("abcde"));
- test(S("abcde"), 1, 0, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcde"), 1, 1, S(""), 0, 0, S("acde"));
- test(S("abcde"), 1, 1, S(""), 0, 1, S("acde"));
- test(S("abcde"), 1, 1, S(""), 1, 0, S("can't happen"));
- test(S("abcde"), 1, 1, S("12345"), 0, 0, S("acde"));
- test(S("abcde"), 1, 1, S("12345"), 0, 1, S("a1cde"));
- test(S("abcde"), 1, 1, S("12345"), 0, 2, S("a12cde"));
- test(S("abcde"), 1, 1, S("12345"), 0, 4, S("a1234cde"));
- test(S("abcde"), 1, 1, S("12345"), 0, 5, S("a12345cde"));
- test(S("abcde"), 1, 1, S("12345"), 0, 6, S("a12345cde"));
- test(S("abcde"), 1, 1, S("12345"), 1, 0, S("acde"));
- test(S("abcde"), 1, 1, S("12345"), 1, 1, S("a2cde"));
- test(S("abcde"), 1, 1, S("12345"), 1, 2, S("a23cde"));
- test(S("abcde"), 1, 1, S("12345"), 1, 3, S("a234cde"));
- test(S("abcde"), 1, 1, S("12345"), 1, 4, S("a2345cde"));
- test(S("abcde"), 1, 1, S("12345"), 1, 5, S("a2345cde"));
- test(S("abcde"), 1, 1, S("12345"), 2, 0, S("acde"));
- test(S("abcde"), 1, 1, S("12345"), 2, 1, S("a3cde"));
- test(S("abcde"), 1, 1, S("12345"), 2, 2, S("a34cde"));
- test(S("abcde"), 1, 1, S("12345"), 2, 3, S("a345cde"));
- test(S("abcde"), 1, 1, S("12345"), 2, 4, S("a345cde"));
- test(S("abcde"), 1, 1, S("12345"), 4, 0, S("acde"));
- test(S("abcde"), 1, 1, S("12345"), 4, 1, S("a5cde"));
- test(S("abcde"), 1, 1, S("12345"), 4, 2, S("a5cde"));
- test(S("abcde"), 1, 1, S("12345"), 5, 0, S("acde"));
- test(S("abcde"), 1, 1, S("12345"), 5, 1, S("acde"));
- test(S("abcde"), 1, 1, S("12345"), 6, 0, S("can't happen"));
- test(S("abcde"), 1, 1, S("1234567890"), 0, 0, S("acde"));
- test(S("abcde"), 1, 1, S("1234567890"), 0, 1, S("a1cde"));
- test(S("abcde"), 1, 1, S("1234567890"), 0, 5, S("a12345cde"));
- test(S("abcde"), 1, 1, S("1234567890"), 0, 9, S("a123456789cde"));
- test(S("abcde"), 1, 1, S("1234567890"), 0, 10, S("a1234567890cde"));
- test(S("abcde"), 1, 1, S("1234567890"), 0, 11, S("a1234567890cde"));
- test(S("abcde"), 1, 1, S("1234567890"), 1, 0, S("acde"));
- test(S("abcde"), 1, 1, S("1234567890"), 1, 1, S("a2cde"));
- test(S("abcde"), 1, 1, S("1234567890"), 1, 4, S("a2345cde"));
- test(S("abcde"), 1, 1, S("1234567890"), 1, 8, S("a23456789cde"));
- test(S("abcde"), 1, 1, S("1234567890"), 1, 9, S("a234567890cde"));
- test(S("abcde"), 1, 1, S("1234567890"), 1, 10, S("a234567890cde"));
- test(S("abcde"), 1, 1, S("1234567890"), 5, 0, S("acde"));
- test(S("abcde"), 1, 1, S("1234567890"), 5, 1, S("a6cde"));
- test(S("abcde"), 1, 1, S("1234567890"), 5, 2, S("a67cde"));
- test(S("abcde"), 1, 1, S("1234567890"), 5, 4, S("a6789cde"));
- test(S("abcde"), 1, 1, S("1234567890"), 5, 5, S("a67890cde"));
- test(S("abcde"), 1, 1, S("1234567890"), 5, 6, S("a67890cde"));
- test(S("abcde"), 1, 1, S("1234567890"), 9, 0, S("acde"));
- test(S("abcde"), 1, 1, S("1234567890"), 9, 1, S("a0cde"));
- test(S("abcde"), 1, 1, S("1234567890"), 9, 2, S("a0cde"));
- test(S("abcde"), 1, 1, S("1234567890"), 10, 0, S("acde"));
- test(S("abcde"), 1, 1, S("1234567890"), 10, 1, S("acde"));
- test(S("abcde"), 1, 1, S("1234567890"), 11, 0, S("can't happen"));
- test(S("abcde"), 1, 1, S("12345678901234567890"), 0, 0, S("acde"));
- test(S("abcde"), 1, 1, S("12345678901234567890"), 0, 1, S("a1cde"));
- test(S("abcde"), 1, 1, S("12345678901234567890"), 0, 10, S("a1234567890cde"));
- test(S("abcde"), 1, 1, S("12345678901234567890"), 0, 19, S("a1234567890123456789cde"));
- test(S("abcde"), 1, 1, S("12345678901234567890"), 0, 20, S("a12345678901234567890cde"));
- test(S("abcde"), 1, 1, S("12345678901234567890"), 0, 21, S("a12345678901234567890cde"));
- test(S("abcde"), 1, 1, S("12345678901234567890"), 1, 0, S("acde"));
- test(S("abcde"), 1, 1, S("12345678901234567890"), 1, 1, S("a2cde"));
- test(S("abcde"), 1, 1, S("12345678901234567890"), 1, 9, S("a234567890cde"));
- test(S("abcde"), 1, 1, S("12345678901234567890"), 1, 18, S("a234567890123456789cde"));
+TEST_CONSTEXPR_CXX20 bool test7() {
+ test(S("abcde"), 1, 0, S("1234567890"), 1, 4, S("a2345bcde"));
+ test(S("abcde"), 1, 0, S("1234567890"), 1, 8, S("a23456789bcde"));
+ test(S("abcde"), 1, 0, S("1234567890"), 1, 9, S("a234567890bcde"));
+ test(S("abcde"), 1, 0, S("1234567890"), 1, 10, S("a234567890bcde"));
+ test(S("abcde"), 1, 0, S("1234567890"), 5, 0, S("abcde"));
+ test(S("abcde"), 1, 0, S("1234567890"), 5, 1, S("a6bcde"));
+ test(S("abcde"), 1, 0, S("1234567890"), 5, 2, S("a67bcde"));
+ test(S("abcde"), 1, 0, S("1234567890"), 5, 4, S("a6789bcde"));
+ test(S("abcde"), 1, 0, S("1234567890"), 5, 5, S("a67890bcde"));
+ test(S("abcde"), 1, 0, S("1234567890"), 5, 6, S("a67890bcde"));
+ test(S("abcde"), 1, 0, S("1234567890"), 9, 0, S("abcde"));
+ test(S("abcde"), 1, 0, S("1234567890"), 9, 1, S("a0bcde"));
+ test(S("abcde"), 1, 0, S("1234567890"), 9, 2, S("a0bcde"));
+ test(S("abcde"), 1, 0, S("1234567890"), 10, 0, S("abcde"));
+ test(S("abcde"), 1, 0, S("1234567890"), 10, 1, S("abcde"));
+ test(S("abcde"), 1, 0, S("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcde"), 1, 0, S("12345678901234567890"), 0, 0, S("abcde"));
+ test(S("abcde"), 1, 0, S("12345678901234567890"), 0, 1, S("a1bcde"));
+ test(S("abcde"), 1, 0, S("12345678901234567890"), 0, 10, S("a1234567890bcde"));
+ test(S("abcde"), 1, 0, S("12345678901234567890"), 0, 19, S("a1234567890123456789bcde"));
+ test(S("abcde"), 1, 0, S("12345678901234567890"), 0, 20, S("a12345678901234567890bcde"));
+ test(S("abcde"), 1, 0, S("12345678901234567890"), 0, 21, S("a12345678901234567890bcde"));
+ test(S("abcde"), 1, 0, S("12345678901234567890"), 1, 0, S("abcde"));
+ test(S("abcde"), 1, 0, S("12345678901234567890"), 1, 1, S("a2bcde"));
+ test(S("abcde"), 1, 0, S("12345678901234567890"), 1, 9, S("a234567890bcde"));
+ test(S("abcde"), 1, 0, S("12345678901234567890"), 1, 18, S("a234567890123456789bcde"));
+ test(S("abcde"), 1, 0, S("12345678901234567890"), 1, 19, S("a2345678901234567890bcde"));
+ test(S("abcde"), 1, 0, S("12345678901234567890"), 1, 20, S("a2345678901234567890bcde"));
+ test(S("abcde"), 1, 0, S("12345678901234567890"), 10, 0, S("abcde"));
+ test(S("abcde"), 1, 0, S("12345678901234567890"), 10, 1, S("a1bcde"));
+ test(S("abcde"), 1, 0, S("12345678901234567890"), 10, 5, S("a12345bcde"));
+ test(S("abcde"), 1, 0, S("12345678901234567890"), 10, 9, S("a123456789bcde"));
+ test(S("abcde"), 1, 0, S("12345678901234567890"), 10, 10, S("a1234567890bcde"));
+ test(S("abcde"), 1, 0, S("12345678901234567890"), 10, 11, S("a1234567890bcde"));
+ test(S("abcde"), 1, 0, S("12345678901234567890"), 19, 0, S("abcde"));
+ test(S("abcde"), 1, 0, S("12345678901234567890"), 19, 1, S("a0bcde"));
+ test(S("abcde"), 1, 0, S("12345678901234567890"), 19, 2, S("a0bcde"));
+ test(S("abcde"), 1, 0, S("12345678901234567890"), 20, 0, S("abcde"));
+ test(S("abcde"), 1, 0, S("12345678901234567890"), 20, 1, S("abcde"));
+ test(S("abcde"), 1, 0, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcde"), 1, 1, S(""), 0, 0, S("acde"));
+ test(S("abcde"), 1, 1, S(""), 0, 1, S("acde"));
+ test(S("abcde"), 1, 1, S(""), 1, 0, S("can't happen"));
+ test(S("abcde"), 1, 1, S("12345"), 0, 0, S("acde"));
+ test(S("abcde"), 1, 1, S("12345"), 0, 1, S("a1cde"));
+ test(S("abcde"), 1, 1, S("12345"), 0, 2, S("a12cde"));
+ test(S("abcde"), 1, 1, S("12345"), 0, 4, S("a1234cde"));
+ test(S("abcde"), 1, 1, S("12345"), 0, 5, S("a12345cde"));
+ test(S("abcde"), 1, 1, S("12345"), 0, 6, S("a12345cde"));
+ test(S("abcde"), 1, 1, S("12345"), 1, 0, S("acde"));
+ test(S("abcde"), 1, 1, S("12345"), 1, 1, S("a2cde"));
+ test(S("abcde"), 1, 1, S("12345"), 1, 2, S("a23cde"));
+ test(S("abcde"), 1, 1, S("12345"), 1, 3, S("a234cde"));
+ test(S("abcde"), 1, 1, S("12345"), 1, 4, S("a2345cde"));
+ test(S("abcde"), 1, 1, S("12345"), 1, 5, S("a2345cde"));
+ test(S("abcde"), 1, 1, S("12345"), 2, 0, S("acde"));
+ test(S("abcde"), 1, 1, S("12345"), 2, 1, S("a3cde"));
+ test(S("abcde"), 1, 1, S("12345"), 2, 2, S("a34cde"));
+ test(S("abcde"), 1, 1, S("12345"), 2, 3, S("a345cde"));
+ test(S("abcde"), 1, 1, S("12345"), 2, 4, S("a345cde"));
+ test(S("abcde"), 1, 1, S("12345"), 4, 0, S("acde"));
+ test(S("abcde"), 1, 1, S("12345"), 4, 1, S("a5cde"));
+ test(S("abcde"), 1, 1, S("12345"), 4, 2, S("a5cde"));
+ test(S("abcde"), 1, 1, S("12345"), 5, 0, S("acde"));
+ test(S("abcde"), 1, 1, S("12345"), 5, 1, S("acde"));
+ test(S("abcde"), 1, 1, S("12345"), 6, 0, S("can't happen"));
+ test(S("abcde"), 1, 1, S("1234567890"), 0, 0, S("acde"));
+ test(S("abcde"), 1, 1, S("1234567890"), 0, 1, S("a1cde"));
+ test(S("abcde"), 1, 1, S("1234567890"), 0, 5, S("a12345cde"));
+ test(S("abcde"), 1, 1, S("1234567890"), 0, 9, S("a123456789cde"));
+ test(S("abcde"), 1, 1, S("1234567890"), 0, 10, S("a1234567890cde"));
+ test(S("abcde"), 1, 1, S("1234567890"), 0, 11, S("a1234567890cde"));
+ test(S("abcde"), 1, 1, S("1234567890"), 1, 0, S("acde"));
+ test(S("abcde"), 1, 1, S("1234567890"), 1, 1, S("a2cde"));
+ test(S("abcde"), 1, 1, S("1234567890"), 1, 4, S("a2345cde"));
+ test(S("abcde"), 1, 1, S("1234567890"), 1, 8, S("a23456789cde"));
+ test(S("abcde"), 1, 1, S("1234567890"), 1, 9, S("a234567890cde"));
+ test(S("abcde"), 1, 1, S("1234567890"), 1, 10, S("a234567890cde"));
+ test(S("abcde"), 1, 1, S("1234567890"), 5, 0, S("acde"));
+ test(S("abcde"), 1, 1, S("1234567890"), 5, 1, S("a6cde"));
+ test(S("abcde"), 1, 1, S("1234567890"), 5, 2, S("a67cde"));
+ test(S("abcde"), 1, 1, S("1234567890"), 5, 4, S("a6789cde"));
+ test(S("abcde"), 1, 1, S("1234567890"), 5, 5, S("a67890cde"));
+ test(S("abcde"), 1, 1, S("1234567890"), 5, 6, S("a67890cde"));
+ test(S("abcde"), 1, 1, S("1234567890"), 9, 0, S("acde"));
+ test(S("abcde"), 1, 1, S("1234567890"), 9, 1, S("a0cde"));
+ test(S("abcde"), 1, 1, S("1234567890"), 9, 2, S("a0cde"));
+ test(S("abcde"), 1, 1, S("1234567890"), 10, 0, S("acde"));
+ test(S("abcde"), 1, 1, S("1234567890"), 10, 1, S("acde"));
+ test(S("abcde"), 1, 1, S("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcde"), 1, 1, S("12345678901234567890"), 0, 0, S("acde"));
+ test(S("abcde"), 1, 1, S("12345678901234567890"), 0, 1, S("a1cde"));
+ test(S("abcde"), 1, 1, S("12345678901234567890"), 0, 10, S("a1234567890cde"));
+ test(S("abcde"), 1, 1, S("12345678901234567890"), 0, 19, S("a1234567890123456789cde"));
+ test(S("abcde"), 1, 1, S("12345678901234567890"), 0, 20, S("a12345678901234567890cde"));
+ test(S("abcde"), 1, 1, S("12345678901234567890"), 0, 21, S("a12345678901234567890cde"));
+ test(S("abcde"), 1, 1, S("12345678901234567890"), 1, 0, S("acde"));
+ test(S("abcde"), 1, 1, S("12345678901234567890"), 1, 1, S("a2cde"));
+ test(S("abcde"), 1, 1, S("12345678901234567890"), 1, 9, S("a234567890cde"));
+ test(S("abcde"), 1, 1, S("12345678901234567890"), 1, 18, S("a234567890123456789cde"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test8()
-{
- test(S("abcde"), 1, 1, S("12345678901234567890"), 1, 19, S("a2345678901234567890cde"));
- test(S("abcde"), 1, 1, S("12345678901234567890"), 1, 20, S("a2345678901234567890cde"));
- test(S("abcde"), 1, 1, S("12345678901234567890"), 10, 0, S("acde"));
- test(S("abcde"), 1, 1, S("12345678901234567890"), 10, 1, S("a1cde"));
- test(S("abcde"), 1, 1, S("12345678901234567890"), 10, 5, S("a12345cde"));
- test(S("abcde"), 1, 1, S("12345678901234567890"), 10, 9, S("a123456789cde"));
- test(S("abcde"), 1, 1, S("12345678901234567890"), 10, 10, S("a1234567890cde"));
- test(S("abcde"), 1, 1, S("12345678901234567890"), 10, 11, S("a1234567890cde"));
- test(S("abcde"), 1, 1, S("12345678901234567890"), 19, 0, S("acde"));
- test(S("abcde"), 1, 1, S("12345678901234567890"), 19, 1, S("a0cde"));
- test(S("abcde"), 1, 1, S("12345678901234567890"), 19, 2, S("a0cde"));
- test(S("abcde"), 1, 1, S("12345678901234567890"), 20, 0, S("acde"));
- test(S("abcde"), 1, 1, S("12345678901234567890"), 20, 1, S("acde"));
- test(S("abcde"), 1, 1, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcde"), 1, 2, S(""), 0, 0, S("ade"));
- test(S("abcde"), 1, 2, S(""), 0, 1, S("ade"));
- test(S("abcde"), 1, 2, S(""), 1, 0, S("can't happen"));
- test(S("abcde"), 1, 2, S("12345"), 0, 0, S("ade"));
- test(S("abcde"), 1, 2, S("12345"), 0, 1, S("a1de"));
- test(S("abcde"), 1, 2, S("12345"), 0, 2, S("a12de"));
- test(S("abcde"), 1, 2, S("12345"), 0, 4, S("a1234de"));
- test(S("abcde"), 1, 2, S("12345"), 0, 5, S("a12345de"));
- test(S("abcde"), 1, 2, S("12345"), 0, 6, S("a12345de"));
- test(S("abcde"), 1, 2, S("12345"), 1, 0, S("ade"));
- test(S("abcde"), 1, 2, S("12345"), 1, 1, S("a2de"));
- test(S("abcde"), 1, 2, S("12345"), 1, 2, S("a23de"));
- test(S("abcde"), 1, 2, S("12345"), 1, 3, S("a234de"));
- test(S("abcde"), 1, 2, S("12345"), 1, 4, S("a2345de"));
- test(S("abcde"), 1, 2, S("12345"), 1, 5, S("a2345de"));
- test(S("abcde"), 1, 2, S("12345"), 2, 0, S("ade"));
- test(S("abcde"), 1, 2, S("12345"), 2, 1, S("a3de"));
- test(S("abcde"), 1, 2, S("12345"), 2, 2, S("a34de"));
- test(S("abcde"), 1, 2, S("12345"), 2, 3, S("a345de"));
- test(S("abcde"), 1, 2, S("12345"), 2, 4, S("a345de"));
- test(S("abcde"), 1, 2, S("12345"), 4, 0, S("ade"));
- test(S("abcde"), 1, 2, S("12345"), 4, 1, S("a5de"));
- test(S("abcde"), 1, 2, S("12345"), 4, 2, S("a5de"));
- test(S("abcde"), 1, 2, S("12345"), 5, 0, S("ade"));
- test(S("abcde"), 1, 2, S("12345"), 5, 1, S("ade"));
- test(S("abcde"), 1, 2, S("12345"), 6, 0, S("can't happen"));
- test(S("abcde"), 1, 2, S("1234567890"), 0, 0, S("ade"));
- test(S("abcde"), 1, 2, S("1234567890"), 0, 1, S("a1de"));
- test(S("abcde"), 1, 2, S("1234567890"), 0, 5, S("a12345de"));
- test(S("abcde"), 1, 2, S("1234567890"), 0, 9, S("a123456789de"));
- test(S("abcde"), 1, 2, S("1234567890"), 0, 10, S("a1234567890de"));
- test(S("abcde"), 1, 2, S("1234567890"), 0, 11, S("a1234567890de"));
- test(S("abcde"), 1, 2, S("1234567890"), 1, 0, S("ade"));
- test(S("abcde"), 1, 2, S("1234567890"), 1, 1, S("a2de"));
- test(S("abcde"), 1, 2, S("1234567890"), 1, 4, S("a2345de"));
- test(S("abcde"), 1, 2, S("1234567890"), 1, 8, S("a23456789de"));
- test(S("abcde"), 1, 2, S("1234567890"), 1, 9, S("a234567890de"));
- test(S("abcde"), 1, 2, S("1234567890"), 1, 10, S("a234567890de"));
- test(S("abcde"), 1, 2, S("1234567890"), 5, 0, S("ade"));
- test(S("abcde"), 1, 2, S("1234567890"), 5, 1, S("a6de"));
- test(S("abcde"), 1, 2, S("1234567890"), 5, 2, S("a67de"));
- test(S("abcde"), 1, 2, S("1234567890"), 5, 4, S("a6789de"));
- test(S("abcde"), 1, 2, S("1234567890"), 5, 5, S("a67890de"));
- test(S("abcde"), 1, 2, S("1234567890"), 5, 6, S("a67890de"));
- test(S("abcde"), 1, 2, S("1234567890"), 9, 0, S("ade"));
- test(S("abcde"), 1, 2, S("1234567890"), 9, 1, S("a0de"));
- test(S("abcde"), 1, 2, S("1234567890"), 9, 2, S("a0de"));
- test(S("abcde"), 1, 2, S("1234567890"), 10, 0, S("ade"));
- test(S("abcde"), 1, 2, S("1234567890"), 10, 1, S("ade"));
- test(S("abcde"), 1, 2, S("1234567890"), 11, 0, S("can't happen"));
- test(S("abcde"), 1, 2, S("12345678901234567890"), 0, 0, S("ade"));
- test(S("abcde"), 1, 2, S("12345678901234567890"), 0, 1, S("a1de"));
- test(S("abcde"), 1, 2, S("12345678901234567890"), 0, 10, S("a1234567890de"));
- test(S("abcde"), 1, 2, S("12345678901234567890"), 0, 19, S("a1234567890123456789de"));
- test(S("abcde"), 1, 2, S("12345678901234567890"), 0, 20, S("a12345678901234567890de"));
- test(S("abcde"), 1, 2, S("12345678901234567890"), 0, 21, S("a12345678901234567890de"));
- test(S("abcde"), 1, 2, S("12345678901234567890"), 1, 0, S("ade"));
- test(S("abcde"), 1, 2, S("12345678901234567890"), 1, 1, S("a2de"));
- test(S("abcde"), 1, 2, S("12345678901234567890"), 1, 9, S("a234567890de"));
- test(S("abcde"), 1, 2, S("12345678901234567890"), 1, 18, S("a234567890123456789de"));
- test(S("abcde"), 1, 2, S("12345678901234567890"), 1, 19, S("a2345678901234567890de"));
- test(S("abcde"), 1, 2, S("12345678901234567890"), 1, 20, S("a2345678901234567890de"));
- test(S("abcde"), 1, 2, S("12345678901234567890"), 10, 0, S("ade"));
- test(S("abcde"), 1, 2, S("12345678901234567890"), 10, 1, S("a1de"));
- test(S("abcde"), 1, 2, S("12345678901234567890"), 10, 5, S("a12345de"));
- test(S("abcde"), 1, 2, S("12345678901234567890"), 10, 9, S("a123456789de"));
- test(S("abcde"), 1, 2, S("12345678901234567890"), 10, 10, S("a1234567890de"));
- test(S("abcde"), 1, 2, S("12345678901234567890"), 10, 11, S("a1234567890de"));
- test(S("abcde"), 1, 2, S("12345678901234567890"), 19, 0, S("ade"));
- test(S("abcde"), 1, 2, S("12345678901234567890"), 19, 1, S("a0de"));
- test(S("abcde"), 1, 2, S("12345678901234567890"), 19, 2, S("a0de"));
- test(S("abcde"), 1, 2, S("12345678901234567890"), 20, 0, S("ade"));
- test(S("abcde"), 1, 2, S("12345678901234567890"), 20, 1, S("ade"));
- test(S("abcde"), 1, 2, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcde"), 1, 3, S(""), 0, 0, S("ae"));
- test(S("abcde"), 1, 3, S(""), 0, 1, S("ae"));
- test(S("abcde"), 1, 3, S(""), 1, 0, S("can't happen"));
- test(S("abcde"), 1, 3, S("12345"), 0, 0, S("ae"));
- test(S("abcde"), 1, 3, S("12345"), 0, 1, S("a1e"));
- test(S("abcde"), 1, 3, S("12345"), 0, 2, S("a12e"));
- test(S("abcde"), 1, 3, S("12345"), 0, 4, S("a1234e"));
- test(S("abcde"), 1, 3, S("12345"), 0, 5, S("a12345e"));
- test(S("abcde"), 1, 3, S("12345"), 0, 6, S("a12345e"));
- test(S("abcde"), 1, 3, S("12345"), 1, 0, S("ae"));
- test(S("abcde"), 1, 3, S("12345"), 1, 1, S("a2e"));
- test(S("abcde"), 1, 3, S("12345"), 1, 2, S("a23e"));
+TEST_CONSTEXPR_CXX20 bool test8() {
+ test(S("abcde"), 1, 1, S("12345678901234567890"), 1, 19, S("a2345678901234567890cde"));
+ test(S("abcde"), 1, 1, S("12345678901234567890"), 1, 20, S("a2345678901234567890cde"));
+ test(S("abcde"), 1, 1, S("12345678901234567890"), 10, 0, S("acde"));
+ test(S("abcde"), 1, 1, S("12345678901234567890"), 10, 1, S("a1cde"));
+ test(S("abcde"), 1, 1, S("12345678901234567890"), 10, 5, S("a12345cde"));
+ test(S("abcde"), 1, 1, S("12345678901234567890"), 10, 9, S("a123456789cde"));
+ test(S("abcde"), 1, 1, S("12345678901234567890"), 10, 10, S("a1234567890cde"));
+ test(S("abcde"), 1, 1, S("12345678901234567890"), 10, 11, S("a1234567890cde"));
+ test(S("abcde"), 1, 1, S("12345678901234567890"), 19, 0, S("acde"));
+ test(S("abcde"), 1, 1, S("12345678901234567890"), 19, 1, S("a0cde"));
+ test(S("abcde"), 1, 1, S("12345678901234567890"), 19, 2, S("a0cde"));
+ test(S("abcde"), 1, 1, S("12345678901234567890"), 20, 0, S("acde"));
+ test(S("abcde"), 1, 1, S("12345678901234567890"), 20, 1, S("acde"));
+ test(S("abcde"), 1, 1, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcde"), 1, 2, S(""), 0, 0, S("ade"));
+ test(S("abcde"), 1, 2, S(""), 0, 1, S("ade"));
+ test(S("abcde"), 1, 2, S(""), 1, 0, S("can't happen"));
+ test(S("abcde"), 1, 2, S("12345"), 0, 0, S("ade"));
+ test(S("abcde"), 1, 2, S("12345"), 0, 1, S("a1de"));
+ test(S("abcde"), 1, 2, S("12345"), 0, 2, S("a12de"));
+ test(S("abcde"), 1, 2, S("12345"), 0, 4, S("a1234de"));
+ test(S("abcde"), 1, 2, S("12345"), 0, 5, S("a12345de"));
+ test(S("abcde"), 1, 2, S("12345"), 0, 6, S("a12345de"));
+ test(S("abcde"), 1, 2, S("12345"), 1, 0, S("ade"));
+ test(S("abcde"), 1, 2, S("12345"), 1, 1, S("a2de"));
+ test(S("abcde"), 1, 2, S("12345"), 1, 2, S("a23de"));
+ test(S("abcde"), 1, 2, S("12345"), 1, 3, S("a234de"));
+ test(S("abcde"), 1, 2, S("12345"), 1, 4, S("a2345de"));
+ test(S("abcde"), 1, 2, S("12345"), 1, 5, S("a2345de"));
+ test(S("abcde"), 1, 2, S("12345"), 2, 0, S("ade"));
+ test(S("abcde"), 1, 2, S("12345"), 2, 1, S("a3de"));
+ test(S("abcde"), 1, 2, S("12345"), 2, 2, S("a34de"));
+ test(S("abcde"), 1, 2, S("12345"), 2, 3, S("a345de"));
+ test(S("abcde"), 1, 2, S("12345"), 2, 4, S("a345de"));
+ test(S("abcde"), 1, 2, S("12345"), 4, 0, S("ade"));
+ test(S("abcde"), 1, 2, S("12345"), 4, 1, S("a5de"));
+ test(S("abcde"), 1, 2, S("12345"), 4, 2, S("a5de"));
+ test(S("abcde"), 1, 2, S("12345"), 5, 0, S("ade"));
+ test(S("abcde"), 1, 2, S("12345"), 5, 1, S("ade"));
+ test(S("abcde"), 1, 2, S("12345"), 6, 0, S("can't happen"));
+ test(S("abcde"), 1, 2, S("1234567890"), 0, 0, S("ade"));
+ test(S("abcde"), 1, 2, S("1234567890"), 0, 1, S("a1de"));
+ test(S("abcde"), 1, 2, S("1234567890"), 0, 5, S("a12345de"));
+ test(S("abcde"), 1, 2, S("1234567890"), 0, 9, S("a123456789de"));
+ test(S("abcde"), 1, 2, S("1234567890"), 0, 10, S("a1234567890de"));
+ test(S("abcde"), 1, 2, S("1234567890"), 0, 11, S("a1234567890de"));
+ test(S("abcde"), 1, 2, S("1234567890"), 1, 0, S("ade"));
+ test(S("abcde"), 1, 2, S("1234567890"), 1, 1, S("a2de"));
+ test(S("abcde"), 1, 2, S("1234567890"), 1, 4, S("a2345de"));
+ test(S("abcde"), 1, 2, S("1234567890"), 1, 8, S("a23456789de"));
+ test(S("abcde"), 1, 2, S("1234567890"), 1, 9, S("a234567890de"));
+ test(S("abcde"), 1, 2, S("1234567890"), 1, 10, S("a234567890de"));
+ test(S("abcde"), 1, 2, S("1234567890"), 5, 0, S("ade"));
+ test(S("abcde"), 1, 2, S("1234567890"), 5, 1, S("a6de"));
+ test(S("abcde"), 1, 2, S("1234567890"), 5, 2, S("a67de"));
+ test(S("abcde"), 1, 2, S("1234567890"), 5, 4, S("a6789de"));
+ test(S("abcde"), 1, 2, S("1234567890"), 5, 5, S("a67890de"));
+ test(S("abcde"), 1, 2, S("1234567890"), 5, 6, S("a67890de"));
+ test(S("abcde"), 1, 2, S("1234567890"), 9, 0, S("ade"));
+ test(S("abcde"), 1, 2, S("1234567890"), 9, 1, S("a0de"));
+ test(S("abcde"), 1, 2, S("1234567890"), 9, 2, S("a0de"));
+ test(S("abcde"), 1, 2, S("1234567890"), 10, 0, S("ade"));
+ test(S("abcde"), 1, 2, S("1234567890"), 10, 1, S("ade"));
+ test(S("abcde"), 1, 2, S("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcde"), 1, 2, S("12345678901234567890"), 0, 0, S("ade"));
+ test(S("abcde"), 1, 2, S("12345678901234567890"), 0, 1, S("a1de"));
+ test(S("abcde"), 1, 2, S("12345678901234567890"), 0, 10, S("a1234567890de"));
+ test(S("abcde"), 1, 2, S("12345678901234567890"), 0, 19, S("a1234567890123456789de"));
+ test(S("abcde"), 1, 2, S("12345678901234567890"), 0, 20, S("a12345678901234567890de"));
+ test(S("abcde"), 1, 2, S("12345678901234567890"), 0, 21, S("a12345678901234567890de"));
+ test(S("abcde"), 1, 2, S("12345678901234567890"), 1, 0, S("ade"));
+ test(S("abcde"), 1, 2, S("12345678901234567890"), 1, 1, S("a2de"));
+ test(S("abcde"), 1, 2, S("12345678901234567890"), 1, 9, S("a234567890de"));
+ test(S("abcde"), 1, 2, S("12345678901234567890"), 1, 18, S("a234567890123456789de"));
+ test(S("abcde"), 1, 2, S("12345678901234567890"), 1, 19, S("a2345678901234567890de"));
+ test(S("abcde"), 1, 2, S("12345678901234567890"), 1, 20, S("a2345678901234567890de"));
+ test(S("abcde"), 1, 2, S("12345678901234567890"), 10, 0, S("ade"));
+ test(S("abcde"), 1, 2, S("12345678901234567890"), 10, 1, S("a1de"));
+ test(S("abcde"), 1, 2, S("12345678901234567890"), 10, 5, S("a12345de"));
+ test(S("abcde"), 1, 2, S("12345678901234567890"), 10, 9, S("a123456789de"));
+ test(S("abcde"), 1, 2, S("12345678901234567890"), 10, 10, S("a1234567890de"));
+ test(S("abcde"), 1, 2, S("12345678901234567890"), 10, 11, S("a1234567890de"));
+ test(S("abcde"), 1, 2, S("12345678901234567890"), 19, 0, S("ade"));
+ test(S("abcde"), 1, 2, S("12345678901234567890"), 19, 1, S("a0de"));
+ test(S("abcde"), 1, 2, S("12345678901234567890"), 19, 2, S("a0de"));
+ test(S("abcde"), 1, 2, S("12345678901234567890"), 20, 0, S("ade"));
+ test(S("abcde"), 1, 2, S("12345678901234567890"), 20, 1, S("ade"));
+ test(S("abcde"), 1, 2, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcde"), 1, 3, S(""), 0, 0, S("ae"));
+ test(S("abcde"), 1, 3, S(""), 0, 1, S("ae"));
+ test(S("abcde"), 1, 3, S(""), 1, 0, S("can't happen"));
+ test(S("abcde"), 1, 3, S("12345"), 0, 0, S("ae"));
+ test(S("abcde"), 1, 3, S("12345"), 0, 1, S("a1e"));
+ test(S("abcde"), 1, 3, S("12345"), 0, 2, S("a12e"));
+ test(S("abcde"), 1, 3, S("12345"), 0, 4, S("a1234e"));
+ test(S("abcde"), 1, 3, S("12345"), 0, 5, S("a12345e"));
+ test(S("abcde"), 1, 3, S("12345"), 0, 6, S("a12345e"));
+ test(S("abcde"), 1, 3, S("12345"), 1, 0, S("ae"));
+ test(S("abcde"), 1, 3, S("12345"), 1, 1, S("a2e"));
+ test(S("abcde"), 1, 3, S("12345"), 1, 2, S("a23e"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test9()
-{
- test(S("abcde"), 1, 3, S("12345"), 1, 3, S("a234e"));
- test(S("abcde"), 1, 3, S("12345"), 1, 4, S("a2345e"));
- test(S("abcde"), 1, 3, S("12345"), 1, 5, S("a2345e"));
- test(S("abcde"), 1, 3, S("12345"), 2, 0, S("ae"));
- test(S("abcde"), 1, 3, S("12345"), 2, 1, S("a3e"));
- test(S("abcde"), 1, 3, S("12345"), 2, 2, S("a34e"));
- test(S("abcde"), 1, 3, S("12345"), 2, 3, S("a345e"));
- test(S("abcde"), 1, 3, S("12345"), 2, 4, S("a345e"));
- test(S("abcde"), 1, 3, S("12345"), 4, 0, S("ae"));
- test(S("abcde"), 1, 3, S("12345"), 4, 1, S("a5e"));
- test(S("abcde"), 1, 3, S("12345"), 4, 2, S("a5e"));
- test(S("abcde"), 1, 3, S("12345"), 5, 0, S("ae"));
- test(S("abcde"), 1, 3, S("12345"), 5, 1, S("ae"));
- test(S("abcde"), 1, 3, S("12345"), 6, 0, S("can't happen"));
- test(S("abcde"), 1, 3, S("1234567890"), 0, 0, S("ae"));
- test(S("abcde"), 1, 3, S("1234567890"), 0, 1, S("a1e"));
- test(S("abcde"), 1, 3, S("1234567890"), 0, 5, S("a12345e"));
- test(S("abcde"), 1, 3, S("1234567890"), 0, 9, S("a123456789e"));
- test(S("abcde"), 1, 3, S("1234567890"), 0, 10, S("a1234567890e"));
- test(S("abcde"), 1, 3, S("1234567890"), 0, 11, S("a1234567890e"));
- test(S("abcde"), 1, 3, S("1234567890"), 1, 0, S("ae"));
- test(S("abcde"), 1, 3, S("1234567890"), 1, 1, S("a2e"));
- test(S("abcde"), 1, 3, S("1234567890"), 1, 4, S("a2345e"));
- test(S("abcde"), 1, 3, S("1234567890"), 1, 8, S("a23456789e"));
- test(S("abcde"), 1, 3, S("1234567890"), 1, 9, S("a234567890e"));
- test(S("abcde"), 1, 3, S("1234567890"), 1, 10, S("a234567890e"));
- test(S("abcde"), 1, 3, S("1234567890"), 5, 0, S("ae"));
- test(S("abcde"), 1, 3, S("1234567890"), 5, 1, S("a6e"));
- test(S("abcde"), 1, 3, S("1234567890"), 5, 2, S("a67e"));
- test(S("abcde"), 1, 3, S("1234567890"), 5, 4, S("a6789e"));
- test(S("abcde"), 1, 3, S("1234567890"), 5, 5, S("a67890e"));
- test(S("abcde"), 1, 3, S("1234567890"), 5, 6, S("a67890e"));
- test(S("abcde"), 1, 3, S("1234567890"), 9, 0, S("ae"));
- test(S("abcde"), 1, 3, S("1234567890"), 9, 1, S("a0e"));
- test(S("abcde"), 1, 3, S("1234567890"), 9, 2, S("a0e"));
- test(S("abcde"), 1, 3, S("1234567890"), 10, 0, S("ae"));
- test(S("abcde"), 1, 3, S("1234567890"), 10, 1, S("ae"));
- test(S("abcde"), 1, 3, S("1234567890"), 11, 0, S("can't happen"));
- test(S("abcde"), 1, 3, S("12345678901234567890"), 0, 0, S("ae"));
- test(S("abcde"), 1, 3, S("12345678901234567890"), 0, 1, S("a1e"));
- test(S("abcde"), 1, 3, S("12345678901234567890"), 0, 10, S("a1234567890e"));
- test(S("abcde"), 1, 3, S("12345678901234567890"), 0, 19, S("a1234567890123456789e"));
- test(S("abcde"), 1, 3, S("12345678901234567890"), 0, 20, S("a12345678901234567890e"));
- test(S("abcde"), 1, 3, S("12345678901234567890"), 0, 21, S("a12345678901234567890e"));
- test(S("abcde"), 1, 3, S("12345678901234567890"), 1, 0, S("ae"));
- test(S("abcde"), 1, 3, S("12345678901234567890"), 1, 1, S("a2e"));
- test(S("abcde"), 1, 3, S("12345678901234567890"), 1, 9, S("a234567890e"));
- test(S("abcde"), 1, 3, S("12345678901234567890"), 1, 18, S("a234567890123456789e"));
- test(S("abcde"), 1, 3, S("12345678901234567890"), 1, 19, S("a2345678901234567890e"));
- test(S("abcde"), 1, 3, S("12345678901234567890"), 1, 20, S("a2345678901234567890e"));
- test(S("abcde"), 1, 3, S("12345678901234567890"), 10, 0, S("ae"));
- test(S("abcde"), 1, 3, S("12345678901234567890"), 10, 1, S("a1e"));
- test(S("abcde"), 1, 3, S("12345678901234567890"), 10, 5, S("a12345e"));
- test(S("abcde"), 1, 3, S("12345678901234567890"), 10, 9, S("a123456789e"));
- test(S("abcde"), 1, 3, S("12345678901234567890"), 10, 10, S("a1234567890e"));
- test(S("abcde"), 1, 3, S("12345678901234567890"), 10, 11, S("a1234567890e"));
- test(S("abcde"), 1, 3, S("12345678901234567890"), 19, 0, S("ae"));
- test(S("abcde"), 1, 3, S("12345678901234567890"), 19, 1, S("a0e"));
- test(S("abcde"), 1, 3, S("12345678901234567890"), 19, 2, S("a0e"));
- test(S("abcde"), 1, 3, S("12345678901234567890"), 20, 0, S("ae"));
- test(S("abcde"), 1, 3, S("12345678901234567890"), 20, 1, S("ae"));
- test(S("abcde"), 1, 3, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcde"), 1, 4, S(""), 0, 0, S("a"));
- test(S("abcde"), 1, 4, S(""), 0, 1, S("a"));
- test(S("abcde"), 1, 4, S(""), 1, 0, S("can't happen"));
- test(S("abcde"), 1, 4, S("12345"), 0, 0, S("a"));
- test(S("abcde"), 1, 4, S("12345"), 0, 1, S("a1"));
- test(S("abcde"), 1, 4, S("12345"), 0, 2, S("a12"));
- test(S("abcde"), 1, 4, S("12345"), 0, 4, S("a1234"));
- test(S("abcde"), 1, 4, S("12345"), 0, 5, S("a12345"));
- test(S("abcde"), 1, 4, S("12345"), 0, 6, S("a12345"));
- test(S("abcde"), 1, 4, S("12345"), 1, 0, S("a"));
- test(S("abcde"), 1, 4, S("12345"), 1, 1, S("a2"));
- test(S("abcde"), 1, 4, S("12345"), 1, 2, S("a23"));
- test(S("abcde"), 1, 4, S("12345"), 1, 3, S("a234"));
- test(S("abcde"), 1, 4, S("12345"), 1, 4, S("a2345"));
- test(S("abcde"), 1, 4, S("12345"), 1, 5, S("a2345"));
- test(S("abcde"), 1, 4, S("12345"), 2, 0, S("a"));
- test(S("abcde"), 1, 4, S("12345"), 2, 1, S("a3"));
- test(S("abcde"), 1, 4, S("12345"), 2, 2, S("a34"));
- test(S("abcde"), 1, 4, S("12345"), 2, 3, S("a345"));
- test(S("abcde"), 1, 4, S("12345"), 2, 4, S("a345"));
- test(S("abcde"), 1, 4, S("12345"), 4, 0, S("a"));
- test(S("abcde"), 1, 4, S("12345"), 4, 1, S("a5"));
- test(S("abcde"), 1, 4, S("12345"), 4, 2, S("a5"));
- test(S("abcde"), 1, 4, S("12345"), 5, 0, S("a"));
- test(S("abcde"), 1, 4, S("12345"), 5, 1, S("a"));
- test(S("abcde"), 1, 4, S("12345"), 6, 0, S("can't happen"));
- test(S("abcde"), 1, 4, S("1234567890"), 0, 0, S("a"));
- test(S("abcde"), 1, 4, S("1234567890"), 0, 1, S("a1"));
- test(S("abcde"), 1, 4, S("1234567890"), 0, 5, S("a12345"));
- test(S("abcde"), 1, 4, S("1234567890"), 0, 9, S("a123456789"));
- test(S("abcde"), 1, 4, S("1234567890"), 0, 10, S("a1234567890"));
- test(S("abcde"), 1, 4, S("1234567890"), 0, 11, S("a1234567890"));
- test(S("abcde"), 1, 4, S("1234567890"), 1, 0, S("a"));
- test(S("abcde"), 1, 4, S("1234567890"), 1, 1, S("a2"));
- test(S("abcde"), 1, 4, S("1234567890"), 1, 4, S("a2345"));
- test(S("abcde"), 1, 4, S("1234567890"), 1, 8, S("a23456789"));
- test(S("abcde"), 1, 4, S("1234567890"), 1, 9, S("a234567890"));
- test(S("abcde"), 1, 4, S("1234567890"), 1, 10, S("a234567890"));
+TEST_CONSTEXPR_CXX20 bool test9() {
+ test(S("abcde"), 1, 3, S("12345"), 1, 3, S("a234e"));
+ test(S("abcde"), 1, 3, S("12345"), 1, 4, S("a2345e"));
+ test(S("abcde"), 1, 3, S("12345"), 1, 5, S("a2345e"));
+ test(S("abcde"), 1, 3, S("12345"), 2, 0, S("ae"));
+ test(S("abcde"), 1, 3, S("12345"), 2, 1, S("a3e"));
+ test(S("abcde"), 1, 3, S("12345"), 2, 2, S("a34e"));
+ test(S("abcde"), 1, 3, S("12345"), 2, 3, S("a345e"));
+ test(S("abcde"), 1, 3, S("12345"), 2, 4, S("a345e"));
+ test(S("abcde"), 1, 3, S("12345"), 4, 0, S("ae"));
+ test(S("abcde"), 1, 3, S("12345"), 4, 1, S("a5e"));
+ test(S("abcde"), 1, 3, S("12345"), 4, 2, S("a5e"));
+ test(S("abcde"), 1, 3, S("12345"), 5, 0, S("ae"));
+ test(S("abcde"), 1, 3, S("12345"), 5, 1, S("ae"));
+ test(S("abcde"), 1, 3, S("12345"), 6, 0, S("can't happen"));
+ test(S("abcde"), 1, 3, S("1234567890"), 0, 0, S("ae"));
+ test(S("abcde"), 1, 3, S("1234567890"), 0, 1, S("a1e"));
+ test(S("abcde"), 1, 3, S("1234567890"), 0, 5, S("a12345e"));
+ test(S("abcde"), 1, 3, S("1234567890"), 0, 9, S("a123456789e"));
+ test(S("abcde"), 1, 3, S("1234567890"), 0, 10, S("a1234567890e"));
+ test(S("abcde"), 1, 3, S("1234567890"), 0, 11, S("a1234567890e"));
+ test(S("abcde"), 1, 3, S("1234567890"), 1, 0, S("ae"));
+ test(S("abcde"), 1, 3, S("1234567890"), 1, 1, S("a2e"));
+ test(S("abcde"), 1, 3, S("1234567890"), 1, 4, S("a2345e"));
+ test(S("abcde"), 1, 3, S("1234567890"), 1, 8, S("a23456789e"));
+ test(S("abcde"), 1, 3, S("1234567890"), 1, 9, S("a234567890e"));
+ test(S("abcde"), 1, 3, S("1234567890"), 1, 10, S("a234567890e"));
+ test(S("abcde"), 1, 3, S("1234567890"), 5, 0, S("ae"));
+ test(S("abcde"), 1, 3, S("1234567890"), 5, 1, S("a6e"));
+ test(S("abcde"), 1, 3, S("1234567890"), 5, 2, S("a67e"));
+ test(S("abcde"), 1, 3, S("1234567890"), 5, 4, S("a6789e"));
+ test(S("abcde"), 1, 3, S("1234567890"), 5, 5, S("a67890e"));
+ test(S("abcde"), 1, 3, S("1234567890"), 5, 6, S("a67890e"));
+ test(S("abcde"), 1, 3, S("1234567890"), 9, 0, S("ae"));
+ test(S("abcde"), 1, 3, S("1234567890"), 9, 1, S("a0e"));
+ test(S("abcde"), 1, 3, S("1234567890"), 9, 2, S("a0e"));
+ test(S("abcde"), 1, 3, S("1234567890"), 10, 0, S("ae"));
+ test(S("abcde"), 1, 3, S("1234567890"), 10, 1, S("ae"));
+ test(S("abcde"), 1, 3, S("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcde"), 1, 3, S("12345678901234567890"), 0, 0, S("ae"));
+ test(S("abcde"), 1, 3, S("12345678901234567890"), 0, 1, S("a1e"));
+ test(S("abcde"), 1, 3, S("12345678901234567890"), 0, 10, S("a1234567890e"));
+ test(S("abcde"), 1, 3, S("12345678901234567890"), 0, 19, S("a1234567890123456789e"));
+ test(S("abcde"), 1, 3, S("12345678901234567890"), 0, 20, S("a12345678901234567890e"));
+ test(S("abcde"), 1, 3, S("12345678901234567890"), 0, 21, S("a12345678901234567890e"));
+ test(S("abcde"), 1, 3, S("12345678901234567890"), 1, 0, S("ae"));
+ test(S("abcde"), 1, 3, S("12345678901234567890"), 1, 1, S("a2e"));
+ test(S("abcde"), 1, 3, S("12345678901234567890"), 1, 9, S("a234567890e"));
+ test(S("abcde"), 1, 3, S("12345678901234567890"), 1, 18, S("a234567890123456789e"));
+ test(S("abcde"), 1, 3, S("12345678901234567890"), 1, 19, S("a2345678901234567890e"));
+ test(S("abcde"), 1, 3, S("12345678901234567890"), 1, 20, S("a2345678901234567890e"));
+ test(S("abcde"), 1, 3, S("12345678901234567890"), 10, 0, S("ae"));
+ test(S("abcde"), 1, 3, S("12345678901234567890"), 10, 1, S("a1e"));
+ test(S("abcde"), 1, 3, S("12345678901234567890"), 10, 5, S("a12345e"));
+ test(S("abcde"), 1, 3, S("12345678901234567890"), 10, 9, S("a123456789e"));
+ test(S("abcde"), 1, 3, S("12345678901234567890"), 10, 10, S("a1234567890e"));
+ test(S("abcde"), 1, 3, S("12345678901234567890"), 10, 11, S("a1234567890e"));
+ test(S("abcde"), 1, 3, S("12345678901234567890"), 19, 0, S("ae"));
+ test(S("abcde"), 1, 3, S("12345678901234567890"), 19, 1, S("a0e"));
+ test(S("abcde"), 1, 3, S("12345678901234567890"), 19, 2, S("a0e"));
+ test(S("abcde"), 1, 3, S("12345678901234567890"), 20, 0, S("ae"));
+ test(S("abcde"), 1, 3, S("12345678901234567890"), 20, 1, S("ae"));
+ test(S("abcde"), 1, 3, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcde"), 1, 4, S(""), 0, 0, S("a"));
+ test(S("abcde"), 1, 4, S(""), 0, 1, S("a"));
+ test(S("abcde"), 1, 4, S(""), 1, 0, S("can't happen"));
+ test(S("abcde"), 1, 4, S("12345"), 0, 0, S("a"));
+ test(S("abcde"), 1, 4, S("12345"), 0, 1, S("a1"));
+ test(S("abcde"), 1, 4, S("12345"), 0, 2, S("a12"));
+ test(S("abcde"), 1, 4, S("12345"), 0, 4, S("a1234"));
+ test(S("abcde"), 1, 4, S("12345"), 0, 5, S("a12345"));
+ test(S("abcde"), 1, 4, S("12345"), 0, 6, S("a12345"));
+ test(S("abcde"), 1, 4, S("12345"), 1, 0, S("a"));
+ test(S("abcde"), 1, 4, S("12345"), 1, 1, S("a2"));
+ test(S("abcde"), 1, 4, S("12345"), 1, 2, S("a23"));
+ test(S("abcde"), 1, 4, S("12345"), 1, 3, S("a234"));
+ test(S("abcde"), 1, 4, S("12345"), 1, 4, S("a2345"));
+ test(S("abcde"), 1, 4, S("12345"), 1, 5, S("a2345"));
+ test(S("abcde"), 1, 4, S("12345"), 2, 0, S("a"));
+ test(S("abcde"), 1, 4, S("12345"), 2, 1, S("a3"));
+ test(S("abcde"), 1, 4, S("12345"), 2, 2, S("a34"));
+ test(S("abcde"), 1, 4, S("12345"), 2, 3, S("a345"));
+ test(S("abcde"), 1, 4, S("12345"), 2, 4, S("a345"));
+ test(S("abcde"), 1, 4, S("12345"), 4, 0, S("a"));
+ test(S("abcde"), 1, 4, S("12345"), 4, 1, S("a5"));
+ test(S("abcde"), 1, 4, S("12345"), 4, 2, S("a5"));
+ test(S("abcde"), 1, 4, S("12345"), 5, 0, S("a"));
+ test(S("abcde"), 1, 4, S("12345"), 5, 1, S("a"));
+ test(S("abcde"), 1, 4, S("12345"), 6, 0, S("can't happen"));
+ test(S("abcde"), 1, 4, S("1234567890"), 0, 0, S("a"));
+ test(S("abcde"), 1, 4, S("1234567890"), 0, 1, S("a1"));
+ test(S("abcde"), 1, 4, S("1234567890"), 0, 5, S("a12345"));
+ test(S("abcde"), 1, 4, S("1234567890"), 0, 9, S("a123456789"));
+ test(S("abcde"), 1, 4, S("1234567890"), 0, 10, S("a1234567890"));
+ test(S("abcde"), 1, 4, S("1234567890"), 0, 11, S("a1234567890"));
+ test(S("abcde"), 1, 4, S("1234567890"), 1, 0, S("a"));
+ test(S("abcde"), 1, 4, S("1234567890"), 1, 1, S("a2"));
+ test(S("abcde"), 1, 4, S("1234567890"), 1, 4, S("a2345"));
+ test(S("abcde"), 1, 4, S("1234567890"), 1, 8, S("a23456789"));
+ test(S("abcde"), 1, 4, S("1234567890"), 1, 9, S("a234567890"));
+ test(S("abcde"), 1, 4, S("1234567890"), 1, 10, S("a234567890"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test10()
-{
- test(S("abcde"), 1, 4, S("1234567890"), 5, 0, S("a"));
- test(S("abcde"), 1, 4, S("1234567890"), 5, 1, S("a6"));
- test(S("abcde"), 1, 4, S("1234567890"), 5, 2, S("a67"));
- test(S("abcde"), 1, 4, S("1234567890"), 5, 4, S("a6789"));
- test(S("abcde"), 1, 4, S("1234567890"), 5, 5, S("a67890"));
- test(S("abcde"), 1, 4, S("1234567890"), 5, 6, S("a67890"));
- test(S("abcde"), 1, 4, S("1234567890"), 9, 0, S("a"));
- test(S("abcde"), 1, 4, S("1234567890"), 9, 1, S("a0"));
- test(S("abcde"), 1, 4, S("1234567890"), 9, 2, S("a0"));
- test(S("abcde"), 1, 4, S("1234567890"), 10, 0, S("a"));
- test(S("abcde"), 1, 4, S("1234567890"), 10, 1, S("a"));
- test(S("abcde"), 1, 4, S("1234567890"), 11, 0, S("can't happen"));
- test(S("abcde"), 1, 4, S("12345678901234567890"), 0, 0, S("a"));
- test(S("abcde"), 1, 4, S("12345678901234567890"), 0, 1, S("a1"));
- test(S("abcde"), 1, 4, S("12345678901234567890"), 0, 10, S("a1234567890"));
- test(S("abcde"), 1, 4, S("12345678901234567890"), 0, 19, S("a1234567890123456789"));
- test(S("abcde"), 1, 4, S("12345678901234567890"), 0, 20, S("a12345678901234567890"));
- test(S("abcde"), 1, 4, S("12345678901234567890"), 0, 21, S("a12345678901234567890"));
- test(S("abcde"), 1, 4, S("12345678901234567890"), 1, 0, S("a"));
- test(S("abcde"), 1, 4, S("12345678901234567890"), 1, 1, S("a2"));
- test(S("abcde"), 1, 4, S("12345678901234567890"), 1, 9, S("a234567890"));
- test(S("abcde"), 1, 4, S("12345678901234567890"), 1, 18, S("a234567890123456789"));
- test(S("abcde"), 1, 4, S("12345678901234567890"), 1, 19, S("a2345678901234567890"));
- test(S("abcde"), 1, 4, S("12345678901234567890"), 1, 20, S("a2345678901234567890"));
- test(S("abcde"), 1, 4, S("12345678901234567890"), 10, 0, S("a"));
- test(S("abcde"), 1, 4, S("12345678901234567890"), 10, 1, S("a1"));
- test(S("abcde"), 1, 4, S("12345678901234567890"), 10, 5, S("a12345"));
- test(S("abcde"), 1, 4, S("12345678901234567890"), 10, 9, S("a123456789"));
- test(S("abcde"), 1, 4, S("12345678901234567890"), 10, 10, S("a1234567890"));
- test(S("abcde"), 1, 4, S("12345678901234567890"), 10, 11, S("a1234567890"));
- test(S("abcde"), 1, 4, S("12345678901234567890"), 19, 0, S("a"));
- test(S("abcde"), 1, 4, S("12345678901234567890"), 19, 1, S("a0"));
- test(S("abcde"), 1, 4, S("12345678901234567890"), 19, 2, S("a0"));
- test(S("abcde"), 1, 4, S("12345678901234567890"), 20, 0, S("a"));
- test(S("abcde"), 1, 4, S("12345678901234567890"), 20, 1, S("a"));
- test(S("abcde"), 1, 4, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcde"), 1, 5, S(""), 0, 0, S("a"));
- test(S("abcde"), 1, 5, S(""), 0, 1, S("a"));
- test(S("abcde"), 1, 5, S(""), 1, 0, S("can't happen"));
- test(S("abcde"), 1, 5, S("12345"), 0, 0, S("a"));
- test(S("abcde"), 1, 5, S("12345"), 0, 1, S("a1"));
- test(S("abcde"), 1, 5, S("12345"), 0, 2, S("a12"));
- test(S("abcde"), 1, 5, S("12345"), 0, 4, S("a1234"));
- test(S("abcde"), 1, 5, S("12345"), 0, 5, S("a12345"));
- test(S("abcde"), 1, 5, S("12345"), 0, 6, S("a12345"));
- test(S("abcde"), 1, 5, S("12345"), 1, 0, S("a"));
- test(S("abcde"), 1, 5, S("12345"), 1, 1, S("a2"));
- test(S("abcde"), 1, 5, S("12345"), 1, 2, S("a23"));
- test(S("abcde"), 1, 5, S("12345"), 1, 3, S("a234"));
- test(S("abcde"), 1, 5, S("12345"), 1, 4, S("a2345"));
- test(S("abcde"), 1, 5, S("12345"), 1, 5, S("a2345"));
- test(S("abcde"), 1, 5, S("12345"), 2, 0, S("a"));
- test(S("abcde"), 1, 5, S("12345"), 2, 1, S("a3"));
- test(S("abcde"), 1, 5, S("12345"), 2, 2, S("a34"));
- test(S("abcde"), 1, 5, S("12345"), 2, 3, S("a345"));
- test(S("abcde"), 1, 5, S("12345"), 2, 4, S("a345"));
- test(S("abcde"), 1, 5, S("12345"), 4, 0, S("a"));
- test(S("abcde"), 1, 5, S("12345"), 4, 1, S("a5"));
- test(S("abcde"), 1, 5, S("12345"), 4, 2, S("a5"));
- test(S("abcde"), 1, 5, S("12345"), 5, 0, S("a"));
- test(S("abcde"), 1, 5, S("12345"), 5, 1, S("a"));
- test(S("abcde"), 1, 5, S("12345"), 6, 0, S("can't happen"));
- test(S("abcde"), 1, 5, S("1234567890"), 0, 0, S("a"));
- test(S("abcde"), 1, 5, S("1234567890"), 0, 1, S("a1"));
- test(S("abcde"), 1, 5, S("1234567890"), 0, 5, S("a12345"));
- test(S("abcde"), 1, 5, S("1234567890"), 0, 9, S("a123456789"));
- test(S("abcde"), 1, 5, S("1234567890"), 0, 10, S("a1234567890"));
- test(S("abcde"), 1, 5, S("1234567890"), 0, 11, S("a1234567890"));
- test(S("abcde"), 1, 5, S("1234567890"), 1, 0, S("a"));
- test(S("abcde"), 1, 5, S("1234567890"), 1, 1, S("a2"));
- test(S("abcde"), 1, 5, S("1234567890"), 1, 4, S("a2345"));
- test(S("abcde"), 1, 5, S("1234567890"), 1, 8, S("a23456789"));
- test(S("abcde"), 1, 5, S("1234567890"), 1, 9, S("a234567890"));
- test(S("abcde"), 1, 5, S("1234567890"), 1, 10, S("a234567890"));
- test(S("abcde"), 1, 5, S("1234567890"), 5, 0, S("a"));
- test(S("abcde"), 1, 5, S("1234567890"), 5, 1, S("a6"));
- test(S("abcde"), 1, 5, S("1234567890"), 5, 2, S("a67"));
- test(S("abcde"), 1, 5, S("1234567890"), 5, 4, S("a6789"));
- test(S("abcde"), 1, 5, S("1234567890"), 5, 5, S("a67890"));
- test(S("abcde"), 1, 5, S("1234567890"), 5, 6, S("a67890"));
- test(S("abcde"), 1, 5, S("1234567890"), 9, 0, S("a"));
- test(S("abcde"), 1, 5, S("1234567890"), 9, 1, S("a0"));
- test(S("abcde"), 1, 5, S("1234567890"), 9, 2, S("a0"));
- test(S("abcde"), 1, 5, S("1234567890"), 10, 0, S("a"));
- test(S("abcde"), 1, 5, S("1234567890"), 10, 1, S("a"));
- test(S("abcde"), 1, 5, S("1234567890"), 11, 0, S("can't happen"));
- test(S("abcde"), 1, 5, S("12345678901234567890"), 0, 0, S("a"));
- test(S("abcde"), 1, 5, S("12345678901234567890"), 0, 1, S("a1"));
- test(S("abcde"), 1, 5, S("12345678901234567890"), 0, 10, S("a1234567890"));
- test(S("abcde"), 1, 5, S("12345678901234567890"), 0, 19, S("a1234567890123456789"));
- test(S("abcde"), 1, 5, S("12345678901234567890"), 0, 20, S("a12345678901234567890"));
- test(S("abcde"), 1, 5, S("12345678901234567890"), 0, 21, S("a12345678901234567890"));
- test(S("abcde"), 1, 5, S("12345678901234567890"), 1, 0, S("a"));
- test(S("abcde"), 1, 5, S("12345678901234567890"), 1, 1, S("a2"));
- test(S("abcde"), 1, 5, S("12345678901234567890"), 1, 9, S("a234567890"));
- test(S("abcde"), 1, 5, S("12345678901234567890"), 1, 18, S("a234567890123456789"));
- test(S("abcde"), 1, 5, S("12345678901234567890"), 1, 19, S("a2345678901234567890"));
- test(S("abcde"), 1, 5, S("12345678901234567890"), 1, 20, S("a2345678901234567890"));
- test(S("abcde"), 1, 5, S("12345678901234567890"), 10, 0, S("a"));
- test(S("abcde"), 1, 5, S("12345678901234567890"), 10, 1, S("a1"));
+TEST_CONSTEXPR_CXX20 bool test10() {
+ test(S("abcde"), 1, 4, S("1234567890"), 5, 0, S("a"));
+ test(S("abcde"), 1, 4, S("1234567890"), 5, 1, S("a6"));
+ test(S("abcde"), 1, 4, S("1234567890"), 5, 2, S("a67"));
+ test(S("abcde"), 1, 4, S("1234567890"), 5, 4, S("a6789"));
+ test(S("abcde"), 1, 4, S("1234567890"), 5, 5, S("a67890"));
+ test(S("abcde"), 1, 4, S("1234567890"), 5, 6, S("a67890"));
+ test(S("abcde"), 1, 4, S("1234567890"), 9, 0, S("a"));
+ test(S("abcde"), 1, 4, S("1234567890"), 9, 1, S("a0"));
+ test(S("abcde"), 1, 4, S("1234567890"), 9, 2, S("a0"));
+ test(S("abcde"), 1, 4, S("1234567890"), 10, 0, S("a"));
+ test(S("abcde"), 1, 4, S("1234567890"), 10, 1, S("a"));
+ test(S("abcde"), 1, 4, S("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcde"), 1, 4, S("12345678901234567890"), 0, 0, S("a"));
+ test(S("abcde"), 1, 4, S("12345678901234567890"), 0, 1, S("a1"));
+ test(S("abcde"), 1, 4, S("12345678901234567890"), 0, 10, S("a1234567890"));
+ test(S("abcde"), 1, 4, S("12345678901234567890"), 0, 19, S("a1234567890123456789"));
+ test(S("abcde"), 1, 4, S("12345678901234567890"), 0, 20, S("a12345678901234567890"));
+ test(S("abcde"), 1, 4, S("12345678901234567890"), 0, 21, S("a12345678901234567890"));
+ test(S("abcde"), 1, 4, S("12345678901234567890"), 1, 0, S("a"));
+ test(S("abcde"), 1, 4, S("12345678901234567890"), 1, 1, S("a2"));
+ test(S("abcde"), 1, 4, S("12345678901234567890"), 1, 9, S("a234567890"));
+ test(S("abcde"), 1, 4, S("12345678901234567890"), 1, 18, S("a234567890123456789"));
+ test(S("abcde"), 1, 4, S("12345678901234567890"), 1, 19, S("a2345678901234567890"));
+ test(S("abcde"), 1, 4, S("12345678901234567890"), 1, 20, S("a2345678901234567890"));
+ test(S("abcde"), 1, 4, S("12345678901234567890"), 10, 0, S("a"));
+ test(S("abcde"), 1, 4, S("12345678901234567890"), 10, 1, S("a1"));
+ test(S("abcde"), 1, 4, S("12345678901234567890"), 10, 5, S("a12345"));
+ test(S("abcde"), 1, 4, S("12345678901234567890"), 10, 9, S("a123456789"));
+ test(S("abcde"), 1, 4, S("12345678901234567890"), 10, 10, S("a1234567890"));
+ test(S("abcde"), 1, 4, S("12345678901234567890"), 10, 11, S("a1234567890"));
+ test(S("abcde"), 1, 4, S("12345678901234567890"), 19, 0, S("a"));
+ test(S("abcde"), 1, 4, S("12345678901234567890"), 19, 1, S("a0"));
+ test(S("abcde"), 1, 4, S("12345678901234567890"), 19, 2, S("a0"));
+ test(S("abcde"), 1, 4, S("12345678901234567890"), 20, 0, S("a"));
+ test(S("abcde"), 1, 4, S("12345678901234567890"), 20, 1, S("a"));
+ test(S("abcde"), 1, 4, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcde"), 1, 5, S(""), 0, 0, S("a"));
+ test(S("abcde"), 1, 5, S(""), 0, 1, S("a"));
+ test(S("abcde"), 1, 5, S(""), 1, 0, S("can't happen"));
+ test(S("abcde"), 1, 5, S("12345"), 0, 0, S("a"));
+ test(S("abcde"), 1, 5, S("12345"), 0, 1, S("a1"));
+ test(S("abcde"), 1, 5, S("12345"), 0, 2, S("a12"));
+ test(S("abcde"), 1, 5, S("12345"), 0, 4, S("a1234"));
+ test(S("abcde"), 1, 5, S("12345"), 0, 5, S("a12345"));
+ test(S("abcde"), 1, 5, S("12345"), 0, 6, S("a12345"));
+ test(S("abcde"), 1, 5, S("12345"), 1, 0, S("a"));
+ test(S("abcde"), 1, 5, S("12345"), 1, 1, S("a2"));
+ test(S("abcde"), 1, 5, S("12345"), 1, 2, S("a23"));
+ test(S("abcde"), 1, 5, S("12345"), 1, 3, S("a234"));
+ test(S("abcde"), 1, 5, S("12345"), 1, 4, S("a2345"));
+ test(S("abcde"), 1, 5, S("12345"), 1, 5, S("a2345"));
+ test(S("abcde"), 1, 5, S("12345"), 2, 0, S("a"));
+ test(S("abcde"), 1, 5, S("12345"), 2, 1, S("a3"));
+ test(S("abcde"), 1, 5, S("12345"), 2, 2, S("a34"));
+ test(S("abcde"), 1, 5, S("12345"), 2, 3, S("a345"));
+ test(S("abcde"), 1, 5, S("12345"), 2, 4, S("a345"));
+ test(S("abcde"), 1, 5, S("12345"), 4, 0, S("a"));
+ test(S("abcde"), 1, 5, S("12345"), 4, 1, S("a5"));
+ test(S("abcde"), 1, 5, S("12345"), 4, 2, S("a5"));
+ test(S("abcde"), 1, 5, S("12345"), 5, 0, S("a"));
+ test(S("abcde"), 1, 5, S("12345"), 5, 1, S("a"));
+ test(S("abcde"), 1, 5, S("12345"), 6, 0, S("can't happen"));
+ test(S("abcde"), 1, 5, S("1234567890"), 0, 0, S("a"));
+ test(S("abcde"), 1, 5, S("1234567890"), 0, 1, S("a1"));
+ test(S("abcde"), 1, 5, S("1234567890"), 0, 5, S("a12345"));
+ test(S("abcde"), 1, 5, S("1234567890"), 0, 9, S("a123456789"));
+ test(S("abcde"), 1, 5, S("1234567890"), 0, 10, S("a1234567890"));
+ test(S("abcde"), 1, 5, S("1234567890"), 0, 11, S("a1234567890"));
+ test(S("abcde"), 1, 5, S("1234567890"), 1, 0, S("a"));
+ test(S("abcde"), 1, 5, S("1234567890"), 1, 1, S("a2"));
+ test(S("abcde"), 1, 5, S("1234567890"), 1, 4, S("a2345"));
+ test(S("abcde"), 1, 5, S("1234567890"), 1, 8, S("a23456789"));
+ test(S("abcde"), 1, 5, S("1234567890"), 1, 9, S("a234567890"));
+ test(S("abcde"), 1, 5, S("1234567890"), 1, 10, S("a234567890"));
+ test(S("abcde"), 1, 5, S("1234567890"), 5, 0, S("a"));
+ test(S("abcde"), 1, 5, S("1234567890"), 5, 1, S("a6"));
+ test(S("abcde"), 1, 5, S("1234567890"), 5, 2, S("a67"));
+ test(S("abcde"), 1, 5, S("1234567890"), 5, 4, S("a6789"));
+ test(S("abcde"), 1, 5, S("1234567890"), 5, 5, S("a67890"));
+ test(S("abcde"), 1, 5, S("1234567890"), 5, 6, S("a67890"));
+ test(S("abcde"), 1, 5, S("1234567890"), 9, 0, S("a"));
+ test(S("abcde"), 1, 5, S("1234567890"), 9, 1, S("a0"));
+ test(S("abcde"), 1, 5, S("1234567890"), 9, 2, S("a0"));
+ test(S("abcde"), 1, 5, S("1234567890"), 10, 0, S("a"));
+ test(S("abcde"), 1, 5, S("1234567890"), 10, 1, S("a"));
+ test(S("abcde"), 1, 5, S("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcde"), 1, 5, S("12345678901234567890"), 0, 0, S("a"));
+ test(S("abcde"), 1, 5, S("12345678901234567890"), 0, 1, S("a1"));
+ test(S("abcde"), 1, 5, S("12345678901234567890"), 0, 10, S("a1234567890"));
+ test(S("abcde"), 1, 5, S("12345678901234567890"), 0, 19, S("a1234567890123456789"));
+ test(S("abcde"), 1, 5, S("12345678901234567890"), 0, 20, S("a12345678901234567890"));
+ test(S("abcde"), 1, 5, S("12345678901234567890"), 0, 21, S("a12345678901234567890"));
+ test(S("abcde"), 1, 5, S("12345678901234567890"), 1, 0, S("a"));
+ test(S("abcde"), 1, 5, S("12345678901234567890"), 1, 1, S("a2"));
+ test(S("abcde"), 1, 5, S("12345678901234567890"), 1, 9, S("a234567890"));
+ test(S("abcde"), 1, 5, S("12345678901234567890"), 1, 18, S("a234567890123456789"));
+ test(S("abcde"), 1, 5, S("12345678901234567890"), 1, 19, S("a2345678901234567890"));
+ test(S("abcde"), 1, 5, S("12345678901234567890"), 1, 20, S("a2345678901234567890"));
+ test(S("abcde"), 1, 5, S("12345678901234567890"), 10, 0, S("a"));
+ test(S("abcde"), 1, 5, S("12345678901234567890"), 10, 1, S("a1"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test11()
-{
- test(S("abcde"), 1, 5, S("12345678901234567890"), 10, 5, S("a12345"));
- test(S("abcde"), 1, 5, S("12345678901234567890"), 10, 9, S("a123456789"));
- test(S("abcde"), 1, 5, S("12345678901234567890"), 10, 10, S("a1234567890"));
- test(S("abcde"), 1, 5, S("12345678901234567890"), 10, 11, S("a1234567890"));
- test(S("abcde"), 1, 5, S("12345678901234567890"), 19, 0, S("a"));
- test(S("abcde"), 1, 5, S("12345678901234567890"), 19, 1, S("a0"));
- test(S("abcde"), 1, 5, S("12345678901234567890"), 19, 2, S("a0"));
- test(S("abcde"), 1, 5, S("12345678901234567890"), 20, 0, S("a"));
- test(S("abcde"), 1, 5, S("12345678901234567890"), 20, 1, S("a"));
- test(S("abcde"), 1, 5, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcde"), 2, 0, S(""), 0, 0, S("abcde"));
- test(S("abcde"), 2, 0, S(""), 0, 1, S("abcde"));
- test(S("abcde"), 2, 0, S(""), 1, 0, S("can't happen"));
- test(S("abcde"), 2, 0, S("12345"), 0, 0, S("abcde"));
- test(S("abcde"), 2, 0, S("12345"), 0, 1, S("ab1cde"));
- test(S("abcde"), 2, 0, S("12345"), 0, 2, S("ab12cde"));
- test(S("abcde"), 2, 0, S("12345"), 0, 4, S("ab1234cde"));
- test(S("abcde"), 2, 0, S("12345"), 0, 5, S("ab12345cde"));
- test(S("abcde"), 2, 0, S("12345"), 0, 6, S("ab12345cde"));
- test(S("abcde"), 2, 0, S("12345"), 1, 0, S("abcde"));
- test(S("abcde"), 2, 0, S("12345"), 1, 1, S("ab2cde"));
- test(S("abcde"), 2, 0, S("12345"), 1, 2, S("ab23cde"));
- test(S("abcde"), 2, 0, S("12345"), 1, 3, S("ab234cde"));
- test(S("abcde"), 2, 0, S("12345"), 1, 4, S("ab2345cde"));
- test(S("abcde"), 2, 0, S("12345"), 1, 5, S("ab2345cde"));
- test(S("abcde"), 2, 0, S("12345"), 2, 0, S("abcde"));
- test(S("abcde"), 2, 0, S("12345"), 2, 1, S("ab3cde"));
- test(S("abcde"), 2, 0, S("12345"), 2, 2, S("ab34cde"));
- test(S("abcde"), 2, 0, S("12345"), 2, 3, S("ab345cde"));
- test(S("abcde"), 2, 0, S("12345"), 2, 4, S("ab345cde"));
- test(S("abcde"), 2, 0, S("12345"), 4, 0, S("abcde"));
- test(S("abcde"), 2, 0, S("12345"), 4, 1, S("ab5cde"));
- test(S("abcde"), 2, 0, S("12345"), 4, 2, S("ab5cde"));
- test(S("abcde"), 2, 0, S("12345"), 5, 0, S("abcde"));
- test(S("abcde"), 2, 0, S("12345"), 5, 1, S("abcde"));
- test(S("abcde"), 2, 0, S("12345"), 6, 0, S("can't happen"));
- test(S("abcde"), 2, 0, S("1234567890"), 0, 0, S("abcde"));
- test(S("abcde"), 2, 0, S("1234567890"), 0, 1, S("ab1cde"));
- test(S("abcde"), 2, 0, S("1234567890"), 0, 5, S("ab12345cde"));
- test(S("abcde"), 2, 0, S("1234567890"), 0, 9, S("ab123456789cde"));
- test(S("abcde"), 2, 0, S("1234567890"), 0, 10, S("ab1234567890cde"));
- test(S("abcde"), 2, 0, S("1234567890"), 0, 11, S("ab1234567890cde"));
- test(S("abcde"), 2, 0, S("1234567890"), 1, 0, S("abcde"));
- test(S("abcde"), 2, 0, S("1234567890"), 1, 1, S("ab2cde"));
- test(S("abcde"), 2, 0, S("1234567890"), 1, 4, S("ab2345cde"));
- test(S("abcde"), 2, 0, S("1234567890"), 1, 8, S("ab23456789cde"));
- test(S("abcde"), 2, 0, S("1234567890"), 1, 9, S("ab234567890cde"));
- test(S("abcde"), 2, 0, S("1234567890"), 1, 10, S("ab234567890cde"));
- test(S("abcde"), 2, 0, S("1234567890"), 5, 0, S("abcde"));
- test(S("abcde"), 2, 0, S("1234567890"), 5, 1, S("ab6cde"));
- test(S("abcde"), 2, 0, S("1234567890"), 5, 2, S("ab67cde"));
- test(S("abcde"), 2, 0, S("1234567890"), 5, 4, S("ab6789cde"));
- test(S("abcde"), 2, 0, S("1234567890"), 5, 5, S("ab67890cde"));
- test(S("abcde"), 2, 0, S("1234567890"), 5, 6, S("ab67890cde"));
- test(S("abcde"), 2, 0, S("1234567890"), 9, 0, S("abcde"));
- test(S("abcde"), 2, 0, S("1234567890"), 9, 1, S("ab0cde"));
- test(S("abcde"), 2, 0, S("1234567890"), 9, 2, S("ab0cde"));
- test(S("abcde"), 2, 0, S("1234567890"), 10, 0, S("abcde"));
- test(S("abcde"), 2, 0, S("1234567890"), 10, 1, S("abcde"));
- test(S("abcde"), 2, 0, S("1234567890"), 11, 0, S("can't happen"));
- test(S("abcde"), 2, 0, S("12345678901234567890"), 0, 0, S("abcde"));
- test(S("abcde"), 2, 0, S("12345678901234567890"), 0, 1, S("ab1cde"));
- test(S("abcde"), 2, 0, S("12345678901234567890"), 0, 10, S("ab1234567890cde"));
- test(S("abcde"), 2, 0, S("12345678901234567890"), 0, 19, S("ab1234567890123456789cde"));
- test(S("abcde"), 2, 0, S("12345678901234567890"), 0, 20, S("ab12345678901234567890cde"));
- test(S("abcde"), 2, 0, S("12345678901234567890"), 0, 21, S("ab12345678901234567890cde"));
- test(S("abcde"), 2, 0, S("12345678901234567890"), 1, 0, S("abcde"));
- test(S("abcde"), 2, 0, S("12345678901234567890"), 1, 1, S("ab2cde"));
- test(S("abcde"), 2, 0, S("12345678901234567890"), 1, 9, S("ab234567890cde"));
- test(S("abcde"), 2, 0, S("12345678901234567890"), 1, 18, S("ab234567890123456789cde"));
- test(S("abcde"), 2, 0, S("12345678901234567890"), 1, 19, S("ab2345678901234567890cde"));
- test(S("abcde"), 2, 0, S("12345678901234567890"), 1, 20, S("ab2345678901234567890cde"));
- test(S("abcde"), 2, 0, S("12345678901234567890"), 10, 0, S("abcde"));
- test(S("abcde"), 2, 0, S("12345678901234567890"), 10, 1, S("ab1cde"));
- test(S("abcde"), 2, 0, S("12345678901234567890"), 10, 5, S("ab12345cde"));
- test(S("abcde"), 2, 0, S("12345678901234567890"), 10, 9, S("ab123456789cde"));
- test(S("abcde"), 2, 0, S("12345678901234567890"), 10, 10, S("ab1234567890cde"));
- test(S("abcde"), 2, 0, S("12345678901234567890"), 10, 11, S("ab1234567890cde"));
- test(S("abcde"), 2, 0, S("12345678901234567890"), 19, 0, S("abcde"));
- test(S("abcde"), 2, 0, S("12345678901234567890"), 19, 1, S("ab0cde"));
- test(S("abcde"), 2, 0, S("12345678901234567890"), 19, 2, S("ab0cde"));
- test(S("abcde"), 2, 0, S("12345678901234567890"), 20, 0, S("abcde"));
- test(S("abcde"), 2, 0, S("12345678901234567890"), 20, 1, S("abcde"));
- test(S("abcde"), 2, 0, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcde"), 2, 1, S(""), 0, 0, S("abde"));
- test(S("abcde"), 2, 1, S(""), 0, 1, S("abde"));
- test(S("abcde"), 2, 1, S(""), 1, 0, S("can't happen"));
- test(S("abcde"), 2, 1, S("12345"), 0, 0, S("abde"));
- test(S("abcde"), 2, 1, S("12345"), 0, 1, S("ab1de"));
- test(S("abcde"), 2, 1, S("12345"), 0, 2, S("ab12de"));
- test(S("abcde"), 2, 1, S("12345"), 0, 4, S("ab1234de"));
- test(S("abcde"), 2, 1, S("12345"), 0, 5, S("ab12345de"));
- test(S("abcde"), 2, 1, S("12345"), 0, 6, S("ab12345de"));
- test(S("abcde"), 2, 1, S("12345"), 1, 0, S("abde"));
- test(S("abcde"), 2, 1, S("12345"), 1, 1, S("ab2de"));
- test(S("abcde"), 2, 1, S("12345"), 1, 2, S("ab23de"));
- test(S("abcde"), 2, 1, S("12345"), 1, 3, S("ab234de"));
- test(S("abcde"), 2, 1, S("12345"), 1, 4, S("ab2345de"));
- test(S("abcde"), 2, 1, S("12345"), 1, 5, S("ab2345de"));
- test(S("abcde"), 2, 1, S("12345"), 2, 0, S("abde"));
+TEST_CONSTEXPR_CXX20 bool test11() {
+ test(S("abcde"), 1, 5, S("12345678901234567890"), 10, 5, S("a12345"));
+ test(S("abcde"), 1, 5, S("12345678901234567890"), 10, 9, S("a123456789"));
+ test(S("abcde"), 1, 5, S("12345678901234567890"), 10, 10, S("a1234567890"));
+ test(S("abcde"), 1, 5, S("12345678901234567890"), 10, 11, S("a1234567890"));
+ test(S("abcde"), 1, 5, S("12345678901234567890"), 19, 0, S("a"));
+ test(S("abcde"), 1, 5, S("12345678901234567890"), 19, 1, S("a0"));
+ test(S("abcde"), 1, 5, S("12345678901234567890"), 19, 2, S("a0"));
+ test(S("abcde"), 1, 5, S("12345678901234567890"), 20, 0, S("a"));
+ test(S("abcde"), 1, 5, S("12345678901234567890"), 20, 1, S("a"));
+ test(S("abcde"), 1, 5, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcde"), 2, 0, S(""), 0, 0, S("abcde"));
+ test(S("abcde"), 2, 0, S(""), 0, 1, S("abcde"));
+ test(S("abcde"), 2, 0, S(""), 1, 0, S("can't happen"));
+ test(S("abcde"), 2, 0, S("12345"), 0, 0, S("abcde"));
+ test(S("abcde"), 2, 0, S("12345"), 0, 1, S("ab1cde"));
+ test(S("abcde"), 2, 0, S("12345"), 0, 2, S("ab12cde"));
+ test(S("abcde"), 2, 0, S("12345"), 0, 4, S("ab1234cde"));
+ test(S("abcde"), 2, 0, S("12345"), 0, 5, S("ab12345cde"));
+ test(S("abcde"), 2, 0, S("12345"), 0, 6, S("ab12345cde"));
+ test(S("abcde"), 2, 0, S("12345"), 1, 0, S("abcde"));
+ test(S("abcde"), 2, 0, S("12345"), 1, 1, S("ab2cde"));
+ test(S("abcde"), 2, 0, S("12345"), 1, 2, S("ab23cde"));
+ test(S("abcde"), 2, 0, S("12345"), 1, 3, S("ab234cde"));
+ test(S("abcde"), 2, 0, S("12345"), 1, 4, S("ab2345cde"));
+ test(S("abcde"), 2, 0, S("12345"), 1, 5, S("ab2345cde"));
+ test(S("abcde"), 2, 0, S("12345"), 2, 0, S("abcde"));
+ test(S("abcde"), 2, 0, S("12345"), 2, 1, S("ab3cde"));
+ test(S("abcde"), 2, 0, S("12345"), 2, 2, S("ab34cde"));
+ test(S("abcde"), 2, 0, S("12345"), 2, 3, S("ab345cde"));
+ test(S("abcde"), 2, 0, S("12345"), 2, 4, S("ab345cde"));
+ test(S("abcde"), 2, 0, S("12345"), 4, 0, S("abcde"));
+ test(S("abcde"), 2, 0, S("12345"), 4, 1, S("ab5cde"));
+ test(S("abcde"), 2, 0, S("12345"), 4, 2, S("ab5cde"));
+ test(S("abcde"), 2, 0, S("12345"), 5, 0, S("abcde"));
+ test(S("abcde"), 2, 0, S("12345"), 5, 1, S("abcde"));
+ test(S("abcde"), 2, 0, S("12345"), 6, 0, S("can't happen"));
+ test(S("abcde"), 2, 0, S("1234567890"), 0, 0, S("abcde"));
+ test(S("abcde"), 2, 0, S("1234567890"), 0, 1, S("ab1cde"));
+ test(S("abcde"), 2, 0, S("1234567890"), 0, 5, S("ab12345cde"));
+ test(S("abcde"), 2, 0, S("1234567890"), 0, 9, S("ab123456789cde"));
+ test(S("abcde"), 2, 0, S("1234567890"), 0, 10, S("ab1234567890cde"));
+ test(S("abcde"), 2, 0, S("1234567890"), 0, 11, S("ab1234567890cde"));
+ test(S("abcde"), 2, 0, S("1234567890"), 1, 0, S("abcde"));
+ test(S("abcde"), 2, 0, S("1234567890"), 1, 1, S("ab2cde"));
+ test(S("abcde"), 2, 0, S("1234567890"), 1, 4, S("ab2345cde"));
+ test(S("abcde"), 2, 0, S("1234567890"), 1, 8, S("ab23456789cde"));
+ test(S("abcde"), 2, 0, S("1234567890"), 1, 9, S("ab234567890cde"));
+ test(S("abcde"), 2, 0, S("1234567890"), 1, 10, S("ab234567890cde"));
+ test(S("abcde"), 2, 0, S("1234567890"), 5, 0, S("abcde"));
+ test(S("abcde"), 2, 0, S("1234567890"), 5, 1, S("ab6cde"));
+ test(S("abcde"), 2, 0, S("1234567890"), 5, 2, S("ab67cde"));
+ test(S("abcde"), 2, 0, S("1234567890"), 5, 4, S("ab6789cde"));
+ test(S("abcde"), 2, 0, S("1234567890"), 5, 5, S("ab67890cde"));
+ test(S("abcde"), 2, 0, S("1234567890"), 5, 6, S("ab67890cde"));
+ test(S("abcde"), 2, 0, S("1234567890"), 9, 0, S("abcde"));
+ test(S("abcde"), 2, 0, S("1234567890"), 9, 1, S("ab0cde"));
+ test(S("abcde"), 2, 0, S("1234567890"), 9, 2, S("ab0cde"));
+ test(S("abcde"), 2, 0, S("1234567890"), 10, 0, S("abcde"));
+ test(S("abcde"), 2, 0, S("1234567890"), 10, 1, S("abcde"));
+ test(S("abcde"), 2, 0, S("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcde"), 2, 0, S("12345678901234567890"), 0, 0, S("abcde"));
+ test(S("abcde"), 2, 0, S("12345678901234567890"), 0, 1, S("ab1cde"));
+ test(S("abcde"), 2, 0, S("12345678901234567890"), 0, 10, S("ab1234567890cde"));
+ test(S("abcde"), 2, 0, S("12345678901234567890"), 0, 19, S("ab1234567890123456789cde"));
+ test(S("abcde"), 2, 0, S("12345678901234567890"), 0, 20, S("ab12345678901234567890cde"));
+ test(S("abcde"), 2, 0, S("12345678901234567890"), 0, 21, S("ab12345678901234567890cde"));
+ test(S("abcde"), 2, 0, S("12345678901234567890"), 1, 0, S("abcde"));
+ test(S("abcde"), 2, 0, S("12345678901234567890"), 1, 1, S("ab2cde"));
+ test(S("abcde"), 2, 0, S("12345678901234567890"), 1, 9, S("ab234567890cde"));
+ test(S("abcde"), 2, 0, S("12345678901234567890"), 1, 18, S("ab234567890123456789cde"));
+ test(S("abcde"), 2, 0, S("12345678901234567890"), 1, 19, S("ab2345678901234567890cde"));
+ test(S("abcde"), 2, 0, S("12345678901234567890"), 1, 20, S("ab2345678901234567890cde"));
+ test(S("abcde"), 2, 0, S("12345678901234567890"), 10, 0, S("abcde"));
+ test(S("abcde"), 2, 0, S("12345678901234567890"), 10, 1, S("ab1cde"));
+ test(S("abcde"), 2, 0, S("12345678901234567890"), 10, 5, S("ab12345cde"));
+ test(S("abcde"), 2, 0, S("12345678901234567890"), 10, 9, S("ab123456789cde"));
+ test(S("abcde"), 2, 0, S("12345678901234567890"), 10, 10, S("ab1234567890cde"));
+ test(S("abcde"), 2, 0, S("12345678901234567890"), 10, 11, S("ab1234567890cde"));
+ test(S("abcde"), 2, 0, S("12345678901234567890"), 19, 0, S("abcde"));
+ test(S("abcde"), 2, 0, S("12345678901234567890"), 19, 1, S("ab0cde"));
+ test(S("abcde"), 2, 0, S("12345678901234567890"), 19, 2, S("ab0cde"));
+ test(S("abcde"), 2, 0, S("12345678901234567890"), 20, 0, S("abcde"));
+ test(S("abcde"), 2, 0, S("12345678901234567890"), 20, 1, S("abcde"));
+ test(S("abcde"), 2, 0, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcde"), 2, 1, S(""), 0, 0, S("abde"));
+ test(S("abcde"), 2, 1, S(""), 0, 1, S("abde"));
+ test(S("abcde"), 2, 1, S(""), 1, 0, S("can't happen"));
+ test(S("abcde"), 2, 1, S("12345"), 0, 0, S("abde"));
+ test(S("abcde"), 2, 1, S("12345"), 0, 1, S("ab1de"));
+ test(S("abcde"), 2, 1, S("12345"), 0, 2, S("ab12de"));
+ test(S("abcde"), 2, 1, S("12345"), 0, 4, S("ab1234de"));
+ test(S("abcde"), 2, 1, S("12345"), 0, 5, S("ab12345de"));
+ test(S("abcde"), 2, 1, S("12345"), 0, 6, S("ab12345de"));
+ test(S("abcde"), 2, 1, S("12345"), 1, 0, S("abde"));
+ test(S("abcde"), 2, 1, S("12345"), 1, 1, S("ab2de"));
+ test(S("abcde"), 2, 1, S("12345"), 1, 2, S("ab23de"));
+ test(S("abcde"), 2, 1, S("12345"), 1, 3, S("ab234de"));
+ test(S("abcde"), 2, 1, S("12345"), 1, 4, S("ab2345de"));
+ test(S("abcde"), 2, 1, S("12345"), 1, 5, S("ab2345de"));
+ test(S("abcde"), 2, 1, S("12345"), 2, 0, S("abde"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test12()
-{
- test(S("abcde"), 2, 1, S("12345"), 2, 1, S("ab3de"));
- test(S("abcde"), 2, 1, S("12345"), 2, 2, S("ab34de"));
- test(S("abcde"), 2, 1, S("12345"), 2, 3, S("ab345de"));
- test(S("abcde"), 2, 1, S("12345"), 2, 4, S("ab345de"));
- test(S("abcde"), 2, 1, S("12345"), 4, 0, S("abde"));
- test(S("abcde"), 2, 1, S("12345"), 4, 1, S("ab5de"));
- test(S("abcde"), 2, 1, S("12345"), 4, 2, S("ab5de"));
- test(S("abcde"), 2, 1, S("12345"), 5, 0, S("abde"));
- test(S("abcde"), 2, 1, S("12345"), 5, 1, S("abde"));
- test(S("abcde"), 2, 1, S("12345"), 6, 0, S("can't happen"));
- test(S("abcde"), 2, 1, S("1234567890"), 0, 0, S("abde"));
- test(S("abcde"), 2, 1, S("1234567890"), 0, 1, S("ab1de"));
- test(S("abcde"), 2, 1, S("1234567890"), 0, 5, S("ab12345de"));
- test(S("abcde"), 2, 1, S("1234567890"), 0, 9, S("ab123456789de"));
- test(S("abcde"), 2, 1, S("1234567890"), 0, 10, S("ab1234567890de"));
- test(S("abcde"), 2, 1, S("1234567890"), 0, 11, S("ab1234567890de"));
- test(S("abcde"), 2, 1, S("1234567890"), 1, 0, S("abde"));
- test(S("abcde"), 2, 1, S("1234567890"), 1, 1, S("ab2de"));
- test(S("abcde"), 2, 1, S("1234567890"), 1, 4, S("ab2345de"));
- test(S("abcde"), 2, 1, S("1234567890"), 1, 8, S("ab23456789de"));
- test(S("abcde"), 2, 1, S("1234567890"), 1, 9, S("ab234567890de"));
- test(S("abcde"), 2, 1, S("1234567890"), 1, 10, S("ab234567890de"));
- test(S("abcde"), 2, 1, S("1234567890"), 5, 0, S("abde"));
- test(S("abcde"), 2, 1, S("1234567890"), 5, 1, S("ab6de"));
- test(S("abcde"), 2, 1, S("1234567890"), 5, 2, S("ab67de"));
- test(S("abcde"), 2, 1, S("1234567890"), 5, 4, S("ab6789de"));
- test(S("abcde"), 2, 1, S("1234567890"), 5, 5, S("ab67890de"));
- test(S("abcde"), 2, 1, S("1234567890"), 5, 6, S("ab67890de"));
- test(S("abcde"), 2, 1, S("1234567890"), 9, 0, S("abde"));
- test(S("abcde"), 2, 1, S("1234567890"), 9, 1, S("ab0de"));
- test(S("abcde"), 2, 1, S("1234567890"), 9, 2, S("ab0de"));
- test(S("abcde"), 2, 1, S("1234567890"), 10, 0, S("abde"));
- test(S("abcde"), 2, 1, S("1234567890"), 10, 1, S("abde"));
- test(S("abcde"), 2, 1, S("1234567890"), 11, 0, S("can't happen"));
- test(S("abcde"), 2, 1, S("12345678901234567890"), 0, 0, S("abde"));
- test(S("abcde"), 2, 1, S("12345678901234567890"), 0, 1, S("ab1de"));
- test(S("abcde"), 2, 1, S("12345678901234567890"), 0, 10, S("ab1234567890de"));
- test(S("abcde"), 2, 1, S("12345678901234567890"), 0, 19, S("ab1234567890123456789de"));
- test(S("abcde"), 2, 1, S("12345678901234567890"), 0, 20, S("ab12345678901234567890de"));
- test(S("abcde"), 2, 1, S("12345678901234567890"), 0, 21, S("ab12345678901234567890de"));
- test(S("abcde"), 2, 1, S("12345678901234567890"), 1, 0, S("abde"));
- test(S("abcde"), 2, 1, S("12345678901234567890"), 1, 1, S("ab2de"));
- test(S("abcde"), 2, 1, S("12345678901234567890"), 1, 9, S("ab234567890de"));
- test(S("abcde"), 2, 1, S("12345678901234567890"), 1, 18, S("ab234567890123456789de"));
- test(S("abcde"), 2, 1, S("12345678901234567890"), 1, 19, S("ab2345678901234567890de"));
- test(S("abcde"), 2, 1, S("12345678901234567890"), 1, 20, S("ab2345678901234567890de"));
- test(S("abcde"), 2, 1, S("12345678901234567890"), 10, 0, S("abde"));
- test(S("abcde"), 2, 1, S("12345678901234567890"), 10, 1, S("ab1de"));
- test(S("abcde"), 2, 1, S("12345678901234567890"), 10, 5, S("ab12345de"));
- test(S("abcde"), 2, 1, S("12345678901234567890"), 10, 9, S("ab123456789de"));
- test(S("abcde"), 2, 1, S("12345678901234567890"), 10, 10, S("ab1234567890de"));
- test(S("abcde"), 2, 1, S("12345678901234567890"), 10, 11, S("ab1234567890de"));
- test(S("abcde"), 2, 1, S("12345678901234567890"), 19, 0, S("abde"));
- test(S("abcde"), 2, 1, S("12345678901234567890"), 19, 1, S("ab0de"));
- test(S("abcde"), 2, 1, S("12345678901234567890"), 19, 2, S("ab0de"));
- test(S("abcde"), 2, 1, S("12345678901234567890"), 20, 0, S("abde"));
- test(S("abcde"), 2, 1, S("12345678901234567890"), 20, 1, S("abde"));
- test(S("abcde"), 2, 1, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcde"), 2, 2, S(""), 0, 0, S("abe"));
- test(S("abcde"), 2, 2, S(""), 0, 1, S("abe"));
- test(S("abcde"), 2, 2, S(""), 1, 0, S("can't happen"));
- test(S("abcde"), 2, 2, S("12345"), 0, 0, S("abe"));
- test(S("abcde"), 2, 2, S("12345"), 0, 1, S("ab1e"));
- test(S("abcde"), 2, 2, S("12345"), 0, 2, S("ab12e"));
- test(S("abcde"), 2, 2, S("12345"), 0, 4, S("ab1234e"));
- test(S("abcde"), 2, 2, S("12345"), 0, 5, S("ab12345e"));
- test(S("abcde"), 2, 2, S("12345"), 0, 6, S("ab12345e"));
- test(S("abcde"), 2, 2, S("12345"), 1, 0, S("abe"));
- test(S("abcde"), 2, 2, S("12345"), 1, 1, S("ab2e"));
- test(S("abcde"), 2, 2, S("12345"), 1, 2, S("ab23e"));
- test(S("abcde"), 2, 2, S("12345"), 1, 3, S("ab234e"));
- test(S("abcde"), 2, 2, S("12345"), 1, 4, S("ab2345e"));
- test(S("abcde"), 2, 2, S("12345"), 1, 5, S("ab2345e"));
- test(S("abcde"), 2, 2, S("12345"), 2, 0, S("abe"));
- test(S("abcde"), 2, 2, S("12345"), 2, 1, S("ab3e"));
- test(S("abcde"), 2, 2, S("12345"), 2, 2, S("ab34e"));
- test(S("abcde"), 2, 2, S("12345"), 2, 3, S("ab345e"));
- test(S("abcde"), 2, 2, S("12345"), 2, 4, S("ab345e"));
- test(S("abcde"), 2, 2, S("12345"), 4, 0, S("abe"));
- test(S("abcde"), 2, 2, S("12345"), 4, 1, S("ab5e"));
- test(S("abcde"), 2, 2, S("12345"), 4, 2, S("ab5e"));
- test(S("abcde"), 2, 2, S("12345"), 5, 0, S("abe"));
- test(S("abcde"), 2, 2, S("12345"), 5, 1, S("abe"));
- test(S("abcde"), 2, 2, S("12345"), 6, 0, S("can't happen"));
- test(S("abcde"), 2, 2, S("1234567890"), 0, 0, S("abe"));
- test(S("abcde"), 2, 2, S("1234567890"), 0, 1, S("ab1e"));
- test(S("abcde"), 2, 2, S("1234567890"), 0, 5, S("ab12345e"));
- test(S("abcde"), 2, 2, S("1234567890"), 0, 9, S("ab123456789e"));
- test(S("abcde"), 2, 2, S("1234567890"), 0, 10, S("ab1234567890e"));
- test(S("abcde"), 2, 2, S("1234567890"), 0, 11, S("ab1234567890e"));
- test(S("abcde"), 2, 2, S("1234567890"), 1, 0, S("abe"));
- test(S("abcde"), 2, 2, S("1234567890"), 1, 1, S("ab2e"));
- test(S("abcde"), 2, 2, S("1234567890"), 1, 4, S("ab2345e"));
- test(S("abcde"), 2, 2, S("1234567890"), 1, 8, S("ab23456789e"));
- test(S("abcde"), 2, 2, S("1234567890"), 1, 9, S("ab234567890e"));
- test(S("abcde"), 2, 2, S("1234567890"), 1, 10, S("ab234567890e"));
- test(S("abcde"), 2, 2, S("1234567890"), 5, 0, S("abe"));
- test(S("abcde"), 2, 2, S("1234567890"), 5, 1, S("ab6e"));
- test(S("abcde"), 2, 2, S("1234567890"), 5, 2, S("ab67e"));
- test(S("abcde"), 2, 2, S("1234567890"), 5, 4, S("ab6789e"));
+TEST_CONSTEXPR_CXX20 bool test12() {
+ test(S("abcde"), 2, 1, S("12345"), 2, 1, S("ab3de"));
+ test(S("abcde"), 2, 1, S("12345"), 2, 2, S("ab34de"));
+ test(S("abcde"), 2, 1, S("12345"), 2, 3, S("ab345de"));
+ test(S("abcde"), 2, 1, S("12345"), 2, 4, S("ab345de"));
+ test(S("abcde"), 2, 1, S("12345"), 4, 0, S("abde"));
+ test(S("abcde"), 2, 1, S("12345"), 4, 1, S("ab5de"));
+ test(S("abcde"), 2, 1, S("12345"), 4, 2, S("ab5de"));
+ test(S("abcde"), 2, 1, S("12345"), 5, 0, S("abde"));
+ test(S("abcde"), 2, 1, S("12345"), 5, 1, S("abde"));
+ test(S("abcde"), 2, 1, S("12345"), 6, 0, S("can't happen"));
+ test(S("abcde"), 2, 1, S("1234567890"), 0, 0, S("abde"));
+ test(S("abcde"), 2, 1, S("1234567890"), 0, 1, S("ab1de"));
+ test(S("abcde"), 2, 1, S("1234567890"), 0, 5, S("ab12345de"));
+ test(S("abcde"), 2, 1, S("1234567890"), 0, 9, S("ab123456789de"));
+ test(S("abcde"), 2, 1, S("1234567890"), 0, 10, S("ab1234567890de"));
+ test(S("abcde"), 2, 1, S("1234567890"), 0, 11, S("ab1234567890de"));
+ test(S("abcde"), 2, 1, S("1234567890"), 1, 0, S("abde"));
+ test(S("abcde"), 2, 1, S("1234567890"), 1, 1, S("ab2de"));
+ test(S("abcde"), 2, 1, S("1234567890"), 1, 4, S("ab2345de"));
+ test(S("abcde"), 2, 1, S("1234567890"), 1, 8, S("ab23456789de"));
+ test(S("abcde"), 2, 1, S("1234567890"), 1, 9, S("ab234567890de"));
+ test(S("abcde"), 2, 1, S("1234567890"), 1, 10, S("ab234567890de"));
+ test(S("abcde"), 2, 1, S("1234567890"), 5, 0, S("abde"));
+ test(S("abcde"), 2, 1, S("1234567890"), 5, 1, S("ab6de"));
+ test(S("abcde"), 2, 1, S("1234567890"), 5, 2, S("ab67de"));
+ test(S("abcde"), 2, 1, S("1234567890"), 5, 4, S("ab6789de"));
+ test(S("abcde"), 2, 1, S("1234567890"), 5, 5, S("ab67890de"));
+ test(S("abcde"), 2, 1, S("1234567890"), 5, 6, S("ab67890de"));
+ test(S("abcde"), 2, 1, S("1234567890"), 9, 0, S("abde"));
+ test(S("abcde"), 2, 1, S("1234567890"), 9, 1, S("ab0de"));
+ test(S("abcde"), 2, 1, S("1234567890"), 9, 2, S("ab0de"));
+ test(S("abcde"), 2, 1, S("1234567890"), 10, 0, S("abde"));
+ test(S("abcde"), 2, 1, S("1234567890"), 10, 1, S("abde"));
+ test(S("abcde"), 2, 1, S("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcde"), 2, 1, S("12345678901234567890"), 0, 0, S("abde"));
+ test(S("abcde"), 2, 1, S("12345678901234567890"), 0, 1, S("ab1de"));
+ test(S("abcde"), 2, 1, S("12345678901234567890"), 0, 10, S("ab1234567890de"));
+ test(S("abcde"), 2, 1, S("12345678901234567890"), 0, 19, S("ab1234567890123456789de"));
+ test(S("abcde"), 2, 1, S("12345678901234567890"), 0, 20, S("ab12345678901234567890de"));
+ test(S("abcde"), 2, 1, S("12345678901234567890"), 0, 21, S("ab12345678901234567890de"));
+ test(S("abcde"), 2, 1, S("12345678901234567890"), 1, 0, S("abde"));
+ test(S("abcde"), 2, 1, S("12345678901234567890"), 1, 1, S("ab2de"));
+ test(S("abcde"), 2, 1, S("12345678901234567890"), 1, 9, S("ab234567890de"));
+ test(S("abcde"), 2, 1, S("12345678901234567890"), 1, 18, S("ab234567890123456789de"));
+ test(S("abcde"), 2, 1, S("12345678901234567890"), 1, 19, S("ab2345678901234567890de"));
+ test(S("abcde"), 2, 1, S("12345678901234567890"), 1, 20, S("ab2345678901234567890de"));
+ test(S("abcde"), 2, 1, S("12345678901234567890"), 10, 0, S("abde"));
+ test(S("abcde"), 2, 1, S("12345678901234567890"), 10, 1, S("ab1de"));
+ test(S("abcde"), 2, 1, S("12345678901234567890"), 10, 5, S("ab12345de"));
+ test(S("abcde"), 2, 1, S("12345678901234567890"), 10, 9, S("ab123456789de"));
+ test(S("abcde"), 2, 1, S("12345678901234567890"), 10, 10, S("ab1234567890de"));
+ test(S("abcde"), 2, 1, S("12345678901234567890"), 10, 11, S("ab1234567890de"));
+ test(S("abcde"), 2, 1, S("12345678901234567890"), 19, 0, S("abde"));
+ test(S("abcde"), 2, 1, S("12345678901234567890"), 19, 1, S("ab0de"));
+ test(S("abcde"), 2, 1, S("12345678901234567890"), 19, 2, S("ab0de"));
+ test(S("abcde"), 2, 1, S("12345678901234567890"), 20, 0, S("abde"));
+ test(S("abcde"), 2, 1, S("12345678901234567890"), 20, 1, S("abde"));
+ test(S("abcde"), 2, 1, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcde"), 2, 2, S(""), 0, 0, S("abe"));
+ test(S("abcde"), 2, 2, S(""), 0, 1, S("abe"));
+ test(S("abcde"), 2, 2, S(""), 1, 0, S("can't happen"));
+ test(S("abcde"), 2, 2, S("12345"), 0, 0, S("abe"));
+ test(S("abcde"), 2, 2, S("12345"), 0, 1, S("ab1e"));
+ test(S("abcde"), 2, 2, S("12345"), 0, 2, S("ab12e"));
+ test(S("abcde"), 2, 2, S("12345"), 0, 4, S("ab1234e"));
+ test(S("abcde"), 2, 2, S("12345"), 0, 5, S("ab12345e"));
+ test(S("abcde"), 2, 2, S("12345"), 0, 6, S("ab12345e"));
+ test(S("abcde"), 2, 2, S("12345"), 1, 0, S("abe"));
+ test(S("abcde"), 2, 2, S("12345"), 1, 1, S("ab2e"));
+ test(S("abcde"), 2, 2, S("12345"), 1, 2, S("ab23e"));
+ test(S("abcde"), 2, 2, S("12345"), 1, 3, S("ab234e"));
+ test(S("abcde"), 2, 2, S("12345"), 1, 4, S("ab2345e"));
+ test(S("abcde"), 2, 2, S("12345"), 1, 5, S("ab2345e"));
+ test(S("abcde"), 2, 2, S("12345"), 2, 0, S("abe"));
+ test(S("abcde"), 2, 2, S("12345"), 2, 1, S("ab3e"));
+ test(S("abcde"), 2, 2, S("12345"), 2, 2, S("ab34e"));
+ test(S("abcde"), 2, 2, S("12345"), 2, 3, S("ab345e"));
+ test(S("abcde"), 2, 2, S("12345"), 2, 4, S("ab345e"));
+ test(S("abcde"), 2, 2, S("12345"), 4, 0, S("abe"));
+ test(S("abcde"), 2, 2, S("12345"), 4, 1, S("ab5e"));
+ test(S("abcde"), 2, 2, S("12345"), 4, 2, S("ab5e"));
+ test(S("abcde"), 2, 2, S("12345"), 5, 0, S("abe"));
+ test(S("abcde"), 2, 2, S("12345"), 5, 1, S("abe"));
+ test(S("abcde"), 2, 2, S("12345"), 6, 0, S("can't happen"));
+ test(S("abcde"), 2, 2, S("1234567890"), 0, 0, S("abe"));
+ test(S("abcde"), 2, 2, S("1234567890"), 0, 1, S("ab1e"));
+ test(S("abcde"), 2, 2, S("1234567890"), 0, 5, S("ab12345e"));
+ test(S("abcde"), 2, 2, S("1234567890"), 0, 9, S("ab123456789e"));
+ test(S("abcde"), 2, 2, S("1234567890"), 0, 10, S("ab1234567890e"));
+ test(S("abcde"), 2, 2, S("1234567890"), 0, 11, S("ab1234567890e"));
+ test(S("abcde"), 2, 2, S("1234567890"), 1, 0, S("abe"));
+ test(S("abcde"), 2, 2, S("1234567890"), 1, 1, S("ab2e"));
+ test(S("abcde"), 2, 2, S("1234567890"), 1, 4, S("ab2345e"));
+ test(S("abcde"), 2, 2, S("1234567890"), 1, 8, S("ab23456789e"));
+ test(S("abcde"), 2, 2, S("1234567890"), 1, 9, S("ab234567890e"));
+ test(S("abcde"), 2, 2, S("1234567890"), 1, 10, S("ab234567890e"));
+ test(S("abcde"), 2, 2, S("1234567890"), 5, 0, S("abe"));
+ test(S("abcde"), 2, 2, S("1234567890"), 5, 1, S("ab6e"));
+ test(S("abcde"), 2, 2, S("1234567890"), 5, 2, S("ab67e"));
+ test(S("abcde"), 2, 2, S("1234567890"), 5, 4, S("ab6789e"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test13()
-{
- test(S("abcde"), 2, 2, S("1234567890"), 5, 5, S("ab67890e"));
- test(S("abcde"), 2, 2, S("1234567890"), 5, 6, S("ab67890e"));
- test(S("abcde"), 2, 2, S("1234567890"), 9, 0, S("abe"));
- test(S("abcde"), 2, 2, S("1234567890"), 9, 1, S("ab0e"));
- test(S("abcde"), 2, 2, S("1234567890"), 9, 2, S("ab0e"));
- test(S("abcde"), 2, 2, S("1234567890"), 10, 0, S("abe"));
- test(S("abcde"), 2, 2, S("1234567890"), 10, 1, S("abe"));
- test(S("abcde"), 2, 2, S("1234567890"), 11, 0, S("can't happen"));
- test(S("abcde"), 2, 2, S("12345678901234567890"), 0, 0, S("abe"));
- test(S("abcde"), 2, 2, S("12345678901234567890"), 0, 1, S("ab1e"));
- test(S("abcde"), 2, 2, S("12345678901234567890"), 0, 10, S("ab1234567890e"));
- test(S("abcde"), 2, 2, S("12345678901234567890"), 0, 19, S("ab1234567890123456789e"));
- test(S("abcde"), 2, 2, S("12345678901234567890"), 0, 20, S("ab12345678901234567890e"));
- test(S("abcde"), 2, 2, S("12345678901234567890"), 0, 21, S("ab12345678901234567890e"));
- test(S("abcde"), 2, 2, S("12345678901234567890"), 1, 0, S("abe"));
- test(S("abcde"), 2, 2, S("12345678901234567890"), 1, 1, S("ab2e"));
- test(S("abcde"), 2, 2, S("12345678901234567890"), 1, 9, S("ab234567890e"));
- test(S("abcde"), 2, 2, S("12345678901234567890"), 1, 18, S("ab234567890123456789e"));
- test(S("abcde"), 2, 2, S("12345678901234567890"), 1, 19, S("ab2345678901234567890e"));
- test(S("abcde"), 2, 2, S("12345678901234567890"), 1, 20, S("ab2345678901234567890e"));
- test(S("abcde"), 2, 2, S("12345678901234567890"), 10, 0, S("abe"));
- test(S("abcde"), 2, 2, S("12345678901234567890"), 10, 1, S("ab1e"));
- test(S("abcde"), 2, 2, S("12345678901234567890"), 10, 5, S("ab12345e"));
- test(S("abcde"), 2, 2, S("12345678901234567890"), 10, 9, S("ab123456789e"));
- test(S("abcde"), 2, 2, S("12345678901234567890"), 10, 10, S("ab1234567890e"));
- test(S("abcde"), 2, 2, S("12345678901234567890"), 10, 11, S("ab1234567890e"));
- test(S("abcde"), 2, 2, S("12345678901234567890"), 19, 0, S("abe"));
- test(S("abcde"), 2, 2, S("12345678901234567890"), 19, 1, S("ab0e"));
- test(S("abcde"), 2, 2, S("12345678901234567890"), 19, 2, S("ab0e"));
- test(S("abcde"), 2, 2, S("12345678901234567890"), 20, 0, S("abe"));
- test(S("abcde"), 2, 2, S("12345678901234567890"), 20, 1, S("abe"));
- test(S("abcde"), 2, 2, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcde"), 2, 3, S(""), 0, 0, S("ab"));
- test(S("abcde"), 2, 3, S(""), 0, 1, S("ab"));
- test(S("abcde"), 2, 3, S(""), 1, 0, S("can't happen"));
- test(S("abcde"), 2, 3, S("12345"), 0, 0, S("ab"));
- test(S("abcde"), 2, 3, S("12345"), 0, 1, S("ab1"));
- test(S("abcde"), 2, 3, S("12345"), 0, 2, S("ab12"));
- test(S("abcde"), 2, 3, S("12345"), 0, 4, S("ab1234"));
- test(S("abcde"), 2, 3, S("12345"), 0, 5, S("ab12345"));
- test(S("abcde"), 2, 3, S("12345"), 0, 6, S("ab12345"));
- test(S("abcde"), 2, 3, S("12345"), 1, 0, S("ab"));
- test(S("abcde"), 2, 3, S("12345"), 1, 1, S("ab2"));
- test(S("abcde"), 2, 3, S("12345"), 1, 2, S("ab23"));
- test(S("abcde"), 2, 3, S("12345"), 1, 3, S("ab234"));
- test(S("abcde"), 2, 3, S("12345"), 1, 4, S("ab2345"));
- test(S("abcde"), 2, 3, S("12345"), 1, 5, S("ab2345"));
- test(S("abcde"), 2, 3, S("12345"), 2, 0, S("ab"));
- test(S("abcde"), 2, 3, S("12345"), 2, 1, S("ab3"));
- test(S("abcde"), 2, 3, S("12345"), 2, 2, S("ab34"));
- test(S("abcde"), 2, 3, S("12345"), 2, 3, S("ab345"));
- test(S("abcde"), 2, 3, S("12345"), 2, 4, S("ab345"));
- test(S("abcde"), 2, 3, S("12345"), 4, 0, S("ab"));
- test(S("abcde"), 2, 3, S("12345"), 4, 1, S("ab5"));
- test(S("abcde"), 2, 3, S("12345"), 4, 2, S("ab5"));
- test(S("abcde"), 2, 3, S("12345"), 5, 0, S("ab"));
- test(S("abcde"), 2, 3, S("12345"), 5, 1, S("ab"));
- test(S("abcde"), 2, 3, S("12345"), 6, 0, S("can't happen"));
- test(S("abcde"), 2, 3, S("1234567890"), 0, 0, S("ab"));
- test(S("abcde"), 2, 3, S("1234567890"), 0, 1, S("ab1"));
- test(S("abcde"), 2, 3, S("1234567890"), 0, 5, S("ab12345"));
- test(S("abcde"), 2, 3, S("1234567890"), 0, 9, S("ab123456789"));
- test(S("abcde"), 2, 3, S("1234567890"), 0, 10, S("ab1234567890"));
- test(S("abcde"), 2, 3, S("1234567890"), 0, 11, S("ab1234567890"));
- test(S("abcde"), 2, 3, S("1234567890"), 1, 0, S("ab"));
- test(S("abcde"), 2, 3, S("1234567890"), 1, 1, S("ab2"));
- test(S("abcde"), 2, 3, S("1234567890"), 1, 4, S("ab2345"));
- test(S("abcde"), 2, 3, S("1234567890"), 1, 8, S("ab23456789"));
- test(S("abcde"), 2, 3, S("1234567890"), 1, 9, S("ab234567890"));
- test(S("abcde"), 2, 3, S("1234567890"), 1, 10, S("ab234567890"));
- test(S("abcde"), 2, 3, S("1234567890"), 5, 0, S("ab"));
- test(S("abcde"), 2, 3, S("1234567890"), 5, 1, S("ab6"));
- test(S("abcde"), 2, 3, S("1234567890"), 5, 2, S("ab67"));
- test(S("abcde"), 2, 3, S("1234567890"), 5, 4, S("ab6789"));
- test(S("abcde"), 2, 3, S("1234567890"), 5, 5, S("ab67890"));
- test(S("abcde"), 2, 3, S("1234567890"), 5, 6, S("ab67890"));
- test(S("abcde"), 2, 3, S("1234567890"), 9, 0, S("ab"));
- test(S("abcde"), 2, 3, S("1234567890"), 9, 1, S("ab0"));
- test(S("abcde"), 2, 3, S("1234567890"), 9, 2, S("ab0"));
- test(S("abcde"), 2, 3, S("1234567890"), 10, 0, S("ab"));
- test(S("abcde"), 2, 3, S("1234567890"), 10, 1, S("ab"));
- test(S("abcde"), 2, 3, S("1234567890"), 11, 0, S("can't happen"));
- test(S("abcde"), 2, 3, S("12345678901234567890"), 0, 0, S("ab"));
- test(S("abcde"), 2, 3, S("12345678901234567890"), 0, 1, S("ab1"));
- test(S("abcde"), 2, 3, S("12345678901234567890"), 0, 10, S("ab1234567890"));
- test(S("abcde"), 2, 3, S("12345678901234567890"), 0, 19, S("ab1234567890123456789"));
- test(S("abcde"), 2, 3, S("12345678901234567890"), 0, 20, S("ab12345678901234567890"));
- test(S("abcde"), 2, 3, S("12345678901234567890"), 0, 21, S("ab12345678901234567890"));
- test(S("abcde"), 2, 3, S("12345678901234567890"), 1, 0, S("ab"));
- test(S("abcde"), 2, 3, S("12345678901234567890"), 1, 1, S("ab2"));
- test(S("abcde"), 2, 3, S("12345678901234567890"), 1, 9, S("ab234567890"));
- test(S("abcde"), 2, 3, S("12345678901234567890"), 1, 18, S("ab234567890123456789"));
- test(S("abcde"), 2, 3, S("12345678901234567890"), 1, 19, S("ab2345678901234567890"));
- test(S("abcde"), 2, 3, S("12345678901234567890"), 1, 20, S("ab2345678901234567890"));
- test(S("abcde"), 2, 3, S("12345678901234567890"), 10, 0, S("ab"));
- test(S("abcde"), 2, 3, S("12345678901234567890"), 10, 1, S("ab1"));
- test(S("abcde"), 2, 3, S("12345678901234567890"), 10, 5, S("ab12345"));
- test(S("abcde"), 2, 3, S("12345678901234567890"), 10, 9, S("ab123456789"));
- test(S("abcde"), 2, 3, S("12345678901234567890"), 10, 10, S("ab1234567890"));
- test(S("abcde"), 2, 3, S("12345678901234567890"), 10, 11, S("ab1234567890"));
+TEST_CONSTEXPR_CXX20 bool test13() {
+ test(S("abcde"), 2, 2, S("1234567890"), 5, 5, S("ab67890e"));
+ test(S("abcde"), 2, 2, S("1234567890"), 5, 6, S("ab67890e"));
+ test(S("abcde"), 2, 2, S("1234567890"), 9, 0, S("abe"));
+ test(S("abcde"), 2, 2, S("1234567890"), 9, 1, S("ab0e"));
+ test(S("abcde"), 2, 2, S("1234567890"), 9, 2, S("ab0e"));
+ test(S("abcde"), 2, 2, S("1234567890"), 10, 0, S("abe"));
+ test(S("abcde"), 2, 2, S("1234567890"), 10, 1, S("abe"));
+ test(S("abcde"), 2, 2, S("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcde"), 2, 2, S("12345678901234567890"), 0, 0, S("abe"));
+ test(S("abcde"), 2, 2, S("12345678901234567890"), 0, 1, S("ab1e"));
+ test(S("abcde"), 2, 2, S("12345678901234567890"), 0, 10, S("ab1234567890e"));
+ test(S("abcde"), 2, 2, S("12345678901234567890"), 0, 19, S("ab1234567890123456789e"));
+ test(S("abcde"), 2, 2, S("12345678901234567890"), 0, 20, S("ab12345678901234567890e"));
+ test(S("abcde"), 2, 2, S("12345678901234567890"), 0, 21, S("ab12345678901234567890e"));
+ test(S("abcde"), 2, 2, S("12345678901234567890"), 1, 0, S("abe"));
+ test(S("abcde"), 2, 2, S("12345678901234567890"), 1, 1, S("ab2e"));
+ test(S("abcde"), 2, 2, S("12345678901234567890"), 1, 9, S("ab234567890e"));
+ test(S("abcde"), 2, 2, S("12345678901234567890"), 1, 18, S("ab234567890123456789e"));
+ test(S("abcde"), 2, 2, S("12345678901234567890"), 1, 19, S("ab2345678901234567890e"));
+ test(S("abcde"), 2, 2, S("12345678901234567890"), 1, 20, S("ab2345678901234567890e"));
+ test(S("abcde"), 2, 2, S("12345678901234567890"), 10, 0, S("abe"));
+ test(S("abcde"), 2, 2, S("12345678901234567890"), 10, 1, S("ab1e"));
+ test(S("abcde"), 2, 2, S("12345678901234567890"), 10, 5, S("ab12345e"));
+ test(S("abcde"), 2, 2, S("12345678901234567890"), 10, 9, S("ab123456789e"));
+ test(S("abcde"), 2, 2, S("12345678901234567890"), 10, 10, S("ab1234567890e"));
+ test(S("abcde"), 2, 2, S("12345678901234567890"), 10, 11, S("ab1234567890e"));
+ test(S("abcde"), 2, 2, S("12345678901234567890"), 19, 0, S("abe"));
+ test(S("abcde"), 2, 2, S("12345678901234567890"), 19, 1, S("ab0e"));
+ test(S("abcde"), 2, 2, S("12345678901234567890"), 19, 2, S("ab0e"));
+ test(S("abcde"), 2, 2, S("12345678901234567890"), 20, 0, S("abe"));
+ test(S("abcde"), 2, 2, S("12345678901234567890"), 20, 1, S("abe"));
+ test(S("abcde"), 2, 2, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcde"), 2, 3, S(""), 0, 0, S("ab"));
+ test(S("abcde"), 2, 3, S(""), 0, 1, S("ab"));
+ test(S("abcde"), 2, 3, S(""), 1, 0, S("can't happen"));
+ test(S("abcde"), 2, 3, S("12345"), 0, 0, S("ab"));
+ test(S("abcde"), 2, 3, S("12345"), 0, 1, S("ab1"));
+ test(S("abcde"), 2, 3, S("12345"), 0, 2, S("ab12"));
+ test(S("abcde"), 2, 3, S("12345"), 0, 4, S("ab1234"));
+ test(S("abcde"), 2, 3, S("12345"), 0, 5, S("ab12345"));
+ test(S("abcde"), 2, 3, S("12345"), 0, 6, S("ab12345"));
+ test(S("abcde"), 2, 3, S("12345"), 1, 0, S("ab"));
+ test(S("abcde"), 2, 3, S("12345"), 1, 1, S("ab2"));
+ test(S("abcde"), 2, 3, S("12345"), 1, 2, S("ab23"));
+ test(S("abcde"), 2, 3, S("12345"), 1, 3, S("ab234"));
+ test(S("abcde"), 2, 3, S("12345"), 1, 4, S("ab2345"));
+ test(S("abcde"), 2, 3, S("12345"), 1, 5, S("ab2345"));
+ test(S("abcde"), 2, 3, S("12345"), 2, 0, S("ab"));
+ test(S("abcde"), 2, 3, S("12345"), 2, 1, S("ab3"));
+ test(S("abcde"), 2, 3, S("12345"), 2, 2, S("ab34"));
+ test(S("abcde"), 2, 3, S("12345"), 2, 3, S("ab345"));
+ test(S("abcde"), 2, 3, S("12345"), 2, 4, S("ab345"));
+ test(S("abcde"), 2, 3, S("12345"), 4, 0, S("ab"));
+ test(S("abcde"), 2, 3, S("12345"), 4, 1, S("ab5"));
+ test(S("abcde"), 2, 3, S("12345"), 4, 2, S("ab5"));
+ test(S("abcde"), 2, 3, S("12345"), 5, 0, S("ab"));
+ test(S("abcde"), 2, 3, S("12345"), 5, 1, S("ab"));
+ test(S("abcde"), 2, 3, S("12345"), 6, 0, S("can't happen"));
+ test(S("abcde"), 2, 3, S("1234567890"), 0, 0, S("ab"));
+ test(S("abcde"), 2, 3, S("1234567890"), 0, 1, S("ab1"));
+ test(S("abcde"), 2, 3, S("1234567890"), 0, 5, S("ab12345"));
+ test(S("abcde"), 2, 3, S("1234567890"), 0, 9, S("ab123456789"));
+ test(S("abcde"), 2, 3, S("1234567890"), 0, 10, S("ab1234567890"));
+ test(S("abcde"), 2, 3, S("1234567890"), 0, 11, S("ab1234567890"));
+ test(S("abcde"), 2, 3, S("1234567890"), 1, 0, S("ab"));
+ test(S("abcde"), 2, 3, S("1234567890"), 1, 1, S("ab2"));
+ test(S("abcde"), 2, 3, S("1234567890"), 1, 4, S("ab2345"));
+ test(S("abcde"), 2, 3, S("1234567890"), 1, 8, S("ab23456789"));
+ test(S("abcde"), 2, 3, S("1234567890"), 1, 9, S("ab234567890"));
+ test(S("abcde"), 2, 3, S("1234567890"), 1, 10, S("ab234567890"));
+ test(S("abcde"), 2, 3, S("1234567890"), 5, 0, S("ab"));
+ test(S("abcde"), 2, 3, S("1234567890"), 5, 1, S("ab6"));
+ test(S("abcde"), 2, 3, S("1234567890"), 5, 2, S("ab67"));
+ test(S("abcde"), 2, 3, S("1234567890"), 5, 4, S("ab6789"));
+ test(S("abcde"), 2, 3, S("1234567890"), 5, 5, S("ab67890"));
+ test(S("abcde"), 2, 3, S("1234567890"), 5, 6, S("ab67890"));
+ test(S("abcde"), 2, 3, S("1234567890"), 9, 0, S("ab"));
+ test(S("abcde"), 2, 3, S("1234567890"), 9, 1, S("ab0"));
+ test(S("abcde"), 2, 3, S("1234567890"), 9, 2, S("ab0"));
+ test(S("abcde"), 2, 3, S("1234567890"), 10, 0, S("ab"));
+ test(S("abcde"), 2, 3, S("1234567890"), 10, 1, S("ab"));
+ test(S("abcde"), 2, 3, S("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcde"), 2, 3, S("12345678901234567890"), 0, 0, S("ab"));
+ test(S("abcde"), 2, 3, S("12345678901234567890"), 0, 1, S("ab1"));
+ test(S("abcde"), 2, 3, S("12345678901234567890"), 0, 10, S("ab1234567890"));
+ test(S("abcde"), 2, 3, S("12345678901234567890"), 0, 19, S("ab1234567890123456789"));
+ test(S("abcde"), 2, 3, S("12345678901234567890"), 0, 20, S("ab12345678901234567890"));
+ test(S("abcde"), 2, 3, S("12345678901234567890"), 0, 21, S("ab12345678901234567890"));
+ test(S("abcde"), 2, 3, S("12345678901234567890"), 1, 0, S("ab"));
+ test(S("abcde"), 2, 3, S("12345678901234567890"), 1, 1, S("ab2"));
+ test(S("abcde"), 2, 3, S("12345678901234567890"), 1, 9, S("ab234567890"));
+ test(S("abcde"), 2, 3, S("12345678901234567890"), 1, 18, S("ab234567890123456789"));
+ test(S("abcde"), 2, 3, S("12345678901234567890"), 1, 19, S("ab2345678901234567890"));
+ test(S("abcde"), 2, 3, S("12345678901234567890"), 1, 20, S("ab2345678901234567890"));
+ test(S("abcde"), 2, 3, S("12345678901234567890"), 10, 0, S("ab"));
+ test(S("abcde"), 2, 3, S("12345678901234567890"), 10, 1, S("ab1"));
+ test(S("abcde"), 2, 3, S("12345678901234567890"), 10, 5, S("ab12345"));
+ test(S("abcde"), 2, 3, S("12345678901234567890"), 10, 9, S("ab123456789"));
+ test(S("abcde"), 2, 3, S("12345678901234567890"), 10, 10, S("ab1234567890"));
+ test(S("abcde"), 2, 3, S("12345678901234567890"), 10, 11, S("ab1234567890"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test14()
-{
- test(S("abcde"), 2, 3, S("12345678901234567890"), 19, 0, S("ab"));
- test(S("abcde"), 2, 3, S("12345678901234567890"), 19, 1, S("ab0"));
- test(S("abcde"), 2, 3, S("12345678901234567890"), 19, 2, S("ab0"));
- test(S("abcde"), 2, 3, S("12345678901234567890"), 20, 0, S("ab"));
- test(S("abcde"), 2, 3, S("12345678901234567890"), 20, 1, S("ab"));
- test(S("abcde"), 2, 3, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcde"), 2, 4, S(""), 0, 0, S("ab"));
- test(S("abcde"), 2, 4, S(""), 0, 1, S("ab"));
- test(S("abcde"), 2, 4, S(""), 1, 0, S("can't happen"));
- test(S("abcde"), 2, 4, S("12345"), 0, 0, S("ab"));
- test(S("abcde"), 2, 4, S("12345"), 0, 1, S("ab1"));
- test(S("abcde"), 2, 4, S("12345"), 0, 2, S("ab12"));
- test(S("abcde"), 2, 4, S("12345"), 0, 4, S("ab1234"));
- test(S("abcde"), 2, 4, S("12345"), 0, 5, S("ab12345"));
- test(S("abcde"), 2, 4, S("12345"), 0, 6, S("ab12345"));
- test(S("abcde"), 2, 4, S("12345"), 1, 0, S("ab"));
- test(S("abcde"), 2, 4, S("12345"), 1, 1, S("ab2"));
- test(S("abcde"), 2, 4, S("12345"), 1, 2, S("ab23"));
- test(S("abcde"), 2, 4, S("12345"), 1, 3, S("ab234"));
- test(S("abcde"), 2, 4, S("12345"), 1, 4, S("ab2345"));
- test(S("abcde"), 2, 4, S("12345"), 1, 5, S("ab2345"));
- test(S("abcde"), 2, 4, S("12345"), 2, 0, S("ab"));
- test(S("abcde"), 2, 4, S("12345"), 2, 1, S("ab3"));
- test(S("abcde"), 2, 4, S("12345"), 2, 2, S("ab34"));
- test(S("abcde"), 2, 4, S("12345"), 2, 3, S("ab345"));
- test(S("abcde"), 2, 4, S("12345"), 2, 4, S("ab345"));
- test(S("abcde"), 2, 4, S("12345"), 4, 0, S("ab"));
- test(S("abcde"), 2, 4, S("12345"), 4, 1, S("ab5"));
- test(S("abcde"), 2, 4, S("12345"), 4, 2, S("ab5"));
- test(S("abcde"), 2, 4, S("12345"), 5, 0, S("ab"));
- test(S("abcde"), 2, 4, S("12345"), 5, 1, S("ab"));
- test(S("abcde"), 2, 4, S("12345"), 6, 0, S("can't happen"));
- test(S("abcde"), 2, 4, S("1234567890"), 0, 0, S("ab"));
- test(S("abcde"), 2, 4, S("1234567890"), 0, 1, S("ab1"));
- test(S("abcde"), 2, 4, S("1234567890"), 0, 5, S("ab12345"));
- test(S("abcde"), 2, 4, S("1234567890"), 0, 9, S("ab123456789"));
- test(S("abcde"), 2, 4, S("1234567890"), 0, 10, S("ab1234567890"));
- test(S("abcde"), 2, 4, S("1234567890"), 0, 11, S("ab1234567890"));
- test(S("abcde"), 2, 4, S("1234567890"), 1, 0, S("ab"));
- test(S("abcde"), 2, 4, S("1234567890"), 1, 1, S("ab2"));
- test(S("abcde"), 2, 4, S("1234567890"), 1, 4, S("ab2345"));
- test(S("abcde"), 2, 4, S("1234567890"), 1, 8, S("ab23456789"));
- test(S("abcde"), 2, 4, S("1234567890"), 1, 9, S("ab234567890"));
- test(S("abcde"), 2, 4, S("1234567890"), 1, 10, S("ab234567890"));
- test(S("abcde"), 2, 4, S("1234567890"), 5, 0, S("ab"));
- test(S("abcde"), 2, 4, S("1234567890"), 5, 1, S("ab6"));
- test(S("abcde"), 2, 4, S("1234567890"), 5, 2, S("ab67"));
- test(S("abcde"), 2, 4, S("1234567890"), 5, 4, S("ab6789"));
- test(S("abcde"), 2, 4, S("1234567890"), 5, 5, S("ab67890"));
- test(S("abcde"), 2, 4, S("1234567890"), 5, 6, S("ab67890"));
- test(S("abcde"), 2, 4, S("1234567890"), 9, 0, S("ab"));
- test(S("abcde"), 2, 4, S("1234567890"), 9, 1, S("ab0"));
- test(S("abcde"), 2, 4, S("1234567890"), 9, 2, S("ab0"));
- test(S("abcde"), 2, 4, S("1234567890"), 10, 0, S("ab"));
- test(S("abcde"), 2, 4, S("1234567890"), 10, 1, S("ab"));
- test(S("abcde"), 2, 4, S("1234567890"), 11, 0, S("can't happen"));
- test(S("abcde"), 2, 4, S("12345678901234567890"), 0, 0, S("ab"));
- test(S("abcde"), 2, 4, S("12345678901234567890"), 0, 1, S("ab1"));
- test(S("abcde"), 2, 4, S("12345678901234567890"), 0, 10, S("ab1234567890"));
- test(S("abcde"), 2, 4, S("12345678901234567890"), 0, 19, S("ab1234567890123456789"));
- test(S("abcde"), 2, 4, S("12345678901234567890"), 0, 20, S("ab12345678901234567890"));
- test(S("abcde"), 2, 4, S("12345678901234567890"), 0, 21, S("ab12345678901234567890"));
- test(S("abcde"), 2, 4, S("12345678901234567890"), 1, 0, S("ab"));
- test(S("abcde"), 2, 4, S("12345678901234567890"), 1, 1, S("ab2"));
- test(S("abcde"), 2, 4, S("12345678901234567890"), 1, 9, S("ab234567890"));
- test(S("abcde"), 2, 4, S("12345678901234567890"), 1, 18, S("ab234567890123456789"));
- test(S("abcde"), 2, 4, S("12345678901234567890"), 1, 19, S("ab2345678901234567890"));
- test(S("abcde"), 2, 4, S("12345678901234567890"), 1, 20, S("ab2345678901234567890"));
- test(S("abcde"), 2, 4, S("12345678901234567890"), 10, 0, S("ab"));
- test(S("abcde"), 2, 4, S("12345678901234567890"), 10, 1, S("ab1"));
- test(S("abcde"), 2, 4, S("12345678901234567890"), 10, 5, S("ab12345"));
- test(S("abcde"), 2, 4, S("12345678901234567890"), 10, 9, S("ab123456789"));
- test(S("abcde"), 2, 4, S("12345678901234567890"), 10, 10, S("ab1234567890"));
- test(S("abcde"), 2, 4, S("12345678901234567890"), 10, 11, S("ab1234567890"));
- test(S("abcde"), 2, 4, S("12345678901234567890"), 19, 0, S("ab"));
- test(S("abcde"), 2, 4, S("12345678901234567890"), 19, 1, S("ab0"));
- test(S("abcde"), 2, 4, S("12345678901234567890"), 19, 2, S("ab0"));
- test(S("abcde"), 2, 4, S("12345678901234567890"), 20, 0, S("ab"));
- test(S("abcde"), 2, 4, S("12345678901234567890"), 20, 1, S("ab"));
- test(S("abcde"), 2, 4, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcde"), 4, 0, S(""), 0, 0, S("abcde"));
- test(S("abcde"), 4, 0, S(""), 0, 1, S("abcde"));
- test(S("abcde"), 4, 0, S(""), 1, 0, S("can't happen"));
- test(S("abcde"), 4, 0, S("12345"), 0, 0, S("abcde"));
- test(S("abcde"), 4, 0, S("12345"), 0, 1, S("abcd1e"));
- test(S("abcde"), 4, 0, S("12345"), 0, 2, S("abcd12e"));
- test(S("abcde"), 4, 0, S("12345"), 0, 4, S("abcd1234e"));
- test(S("abcde"), 4, 0, S("12345"), 0, 5, S("abcd12345e"));
- test(S("abcde"), 4, 0, S("12345"), 0, 6, S("abcd12345e"));
- test(S("abcde"), 4, 0, S("12345"), 1, 0, S("abcde"));
- test(S("abcde"), 4, 0, S("12345"), 1, 1, S("abcd2e"));
- test(S("abcde"), 4, 0, S("12345"), 1, 2, S("abcd23e"));
- test(S("abcde"), 4, 0, S("12345"), 1, 3, S("abcd234e"));
- test(S("abcde"), 4, 0, S("12345"), 1, 4, S("abcd2345e"));
- test(S("abcde"), 4, 0, S("12345"), 1, 5, S("abcd2345e"));
- test(S("abcde"), 4, 0, S("12345"), 2, 0, S("abcde"));
- test(S("abcde"), 4, 0, S("12345"), 2, 1, S("abcd3e"));
- test(S("abcde"), 4, 0, S("12345"), 2, 2, S("abcd34e"));
- test(S("abcde"), 4, 0, S("12345"), 2, 3, S("abcd345e"));
- test(S("abcde"), 4, 0, S("12345"), 2, 4, S("abcd345e"));
+TEST_CONSTEXPR_CXX20 bool test14() {
+ test(S("abcde"), 2, 3, S("12345678901234567890"), 19, 0, S("ab"));
+ test(S("abcde"), 2, 3, S("12345678901234567890"), 19, 1, S("ab0"));
+ test(S("abcde"), 2, 3, S("12345678901234567890"), 19, 2, S("ab0"));
+ test(S("abcde"), 2, 3, S("12345678901234567890"), 20, 0, S("ab"));
+ test(S("abcde"), 2, 3, S("12345678901234567890"), 20, 1, S("ab"));
+ test(S("abcde"), 2, 3, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcde"), 2, 4, S(""), 0, 0, S("ab"));
+ test(S("abcde"), 2, 4, S(""), 0, 1, S("ab"));
+ test(S("abcde"), 2, 4, S(""), 1, 0, S("can't happen"));
+ test(S("abcde"), 2, 4, S("12345"), 0, 0, S("ab"));
+ test(S("abcde"), 2, 4, S("12345"), 0, 1, S("ab1"));
+ test(S("abcde"), 2, 4, S("12345"), 0, 2, S("ab12"));
+ test(S("abcde"), 2, 4, S("12345"), 0, 4, S("ab1234"));
+ test(S("abcde"), 2, 4, S("12345"), 0, 5, S("ab12345"));
+ test(S("abcde"), 2, 4, S("12345"), 0, 6, S("ab12345"));
+ test(S("abcde"), 2, 4, S("12345"), 1, 0, S("ab"));
+ test(S("abcde"), 2, 4, S("12345"), 1, 1, S("ab2"));
+ test(S("abcde"), 2, 4, S("12345"), 1, 2, S("ab23"));
+ test(S("abcde"), 2, 4, S("12345"), 1, 3, S("ab234"));
+ test(S("abcde"), 2, 4, S("12345"), 1, 4, S("ab2345"));
+ test(S("abcde"), 2, 4, S("12345"), 1, 5, S("ab2345"));
+ test(S("abcde"), 2, 4, S("12345"), 2, 0, S("ab"));
+ test(S("abcde"), 2, 4, S("12345"), 2, 1, S("ab3"));
+ test(S("abcde"), 2, 4, S("12345"), 2, 2, S("ab34"));
+ test(S("abcde"), 2, 4, S("12345"), 2, 3, S("ab345"));
+ test(S("abcde"), 2, 4, S("12345"), 2, 4, S("ab345"));
+ test(S("abcde"), 2, 4, S("12345"), 4, 0, S("ab"));
+ test(S("abcde"), 2, 4, S("12345"), 4, 1, S("ab5"));
+ test(S("abcde"), 2, 4, S("12345"), 4, 2, S("ab5"));
+ test(S("abcde"), 2, 4, S("12345"), 5, 0, S("ab"));
+ test(S("abcde"), 2, 4, S("12345"), 5, 1, S("ab"));
+ test(S("abcde"), 2, 4, S("12345"), 6, 0, S("can't happen"));
+ test(S("abcde"), 2, 4, S("1234567890"), 0, 0, S("ab"));
+ test(S("abcde"), 2, 4, S("1234567890"), 0, 1, S("ab1"));
+ test(S("abcde"), 2, 4, S("1234567890"), 0, 5, S("ab12345"));
+ test(S("abcde"), 2, 4, S("1234567890"), 0, 9, S("ab123456789"));
+ test(S("abcde"), 2, 4, S("1234567890"), 0, 10, S("ab1234567890"));
+ test(S("abcde"), 2, 4, S("1234567890"), 0, 11, S("ab1234567890"));
+ test(S("abcde"), 2, 4, S("1234567890"), 1, 0, S("ab"));
+ test(S("abcde"), 2, 4, S("1234567890"), 1, 1, S("ab2"));
+ test(S("abcde"), 2, 4, S("1234567890"), 1, 4, S("ab2345"));
+ test(S("abcde"), 2, 4, S("1234567890"), 1, 8, S("ab23456789"));
+ test(S("abcde"), 2, 4, S("1234567890"), 1, 9, S("ab234567890"));
+ test(S("abcde"), 2, 4, S("1234567890"), 1, 10, S("ab234567890"));
+ test(S("abcde"), 2, 4, S("1234567890"), 5, 0, S("ab"));
+ test(S("abcde"), 2, 4, S("1234567890"), 5, 1, S("ab6"));
+ test(S("abcde"), 2, 4, S("1234567890"), 5, 2, S("ab67"));
+ test(S("abcde"), 2, 4, S("1234567890"), 5, 4, S("ab6789"));
+ test(S("abcde"), 2, 4, S("1234567890"), 5, 5, S("ab67890"));
+ test(S("abcde"), 2, 4, S("1234567890"), 5, 6, S("ab67890"));
+ test(S("abcde"), 2, 4, S("1234567890"), 9, 0, S("ab"));
+ test(S("abcde"), 2, 4, S("1234567890"), 9, 1, S("ab0"));
+ test(S("abcde"), 2, 4, S("1234567890"), 9, 2, S("ab0"));
+ test(S("abcde"), 2, 4, S("1234567890"), 10, 0, S("ab"));
+ test(S("abcde"), 2, 4, S("1234567890"), 10, 1, S("ab"));
+ test(S("abcde"), 2, 4, S("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcde"), 2, 4, S("12345678901234567890"), 0, 0, S("ab"));
+ test(S("abcde"), 2, 4, S("12345678901234567890"), 0, 1, S("ab1"));
+ test(S("abcde"), 2, 4, S("12345678901234567890"), 0, 10, S("ab1234567890"));
+ test(S("abcde"), 2, 4, S("12345678901234567890"), 0, 19, S("ab1234567890123456789"));
+ test(S("abcde"), 2, 4, S("12345678901234567890"), 0, 20, S("ab12345678901234567890"));
+ test(S("abcde"), 2, 4, S("12345678901234567890"), 0, 21, S("ab12345678901234567890"));
+ test(S("abcde"), 2, 4, S("12345678901234567890"), 1, 0, S("ab"));
+ test(S("abcde"), 2, 4, S("12345678901234567890"), 1, 1, S("ab2"));
+ test(S("abcde"), 2, 4, S("12345678901234567890"), 1, 9, S("ab234567890"));
+ test(S("abcde"), 2, 4, S("12345678901234567890"), 1, 18, S("ab234567890123456789"));
+ test(S("abcde"), 2, 4, S("12345678901234567890"), 1, 19, S("ab2345678901234567890"));
+ test(S("abcde"), 2, 4, S("12345678901234567890"), 1, 20, S("ab2345678901234567890"));
+ test(S("abcde"), 2, 4, S("12345678901234567890"), 10, 0, S("ab"));
+ test(S("abcde"), 2, 4, S("12345678901234567890"), 10, 1, S("ab1"));
+ test(S("abcde"), 2, 4, S("12345678901234567890"), 10, 5, S("ab12345"));
+ test(S("abcde"), 2, 4, S("12345678901234567890"), 10, 9, S("ab123456789"));
+ test(S("abcde"), 2, 4, S("12345678901234567890"), 10, 10, S("ab1234567890"));
+ test(S("abcde"), 2, 4, S("12345678901234567890"), 10, 11, S("ab1234567890"));
+ test(S("abcde"), 2, 4, S("12345678901234567890"), 19, 0, S("ab"));
+ test(S("abcde"), 2, 4, S("12345678901234567890"), 19, 1, S("ab0"));
+ test(S("abcde"), 2, 4, S("12345678901234567890"), 19, 2, S("ab0"));
+ test(S("abcde"), 2, 4, S("12345678901234567890"), 20, 0, S("ab"));
+ test(S("abcde"), 2, 4, S("12345678901234567890"), 20, 1, S("ab"));
+ test(S("abcde"), 2, 4, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcde"), 4, 0, S(""), 0, 0, S("abcde"));
+ test(S("abcde"), 4, 0, S(""), 0, 1, S("abcde"));
+ test(S("abcde"), 4, 0, S(""), 1, 0, S("can't happen"));
+ test(S("abcde"), 4, 0, S("12345"), 0, 0, S("abcde"));
+ test(S("abcde"), 4, 0, S("12345"), 0, 1, S("abcd1e"));
+ test(S("abcde"), 4, 0, S("12345"), 0, 2, S("abcd12e"));
+ test(S("abcde"), 4, 0, S("12345"), 0, 4, S("abcd1234e"));
+ test(S("abcde"), 4, 0, S("12345"), 0, 5, S("abcd12345e"));
+ test(S("abcde"), 4, 0, S("12345"), 0, 6, S("abcd12345e"));
+ test(S("abcde"), 4, 0, S("12345"), 1, 0, S("abcde"));
+ test(S("abcde"), 4, 0, S("12345"), 1, 1, S("abcd2e"));
+ test(S("abcde"), 4, 0, S("12345"), 1, 2, S("abcd23e"));
+ test(S("abcde"), 4, 0, S("12345"), 1, 3, S("abcd234e"));
+ test(S("abcde"), 4, 0, S("12345"), 1, 4, S("abcd2345e"));
+ test(S("abcde"), 4, 0, S("12345"), 1, 5, S("abcd2345e"));
+ test(S("abcde"), 4, 0, S("12345"), 2, 0, S("abcde"));
+ test(S("abcde"), 4, 0, S("12345"), 2, 1, S("abcd3e"));
+ test(S("abcde"), 4, 0, S("12345"), 2, 2, S("abcd34e"));
+ test(S("abcde"), 4, 0, S("12345"), 2, 3, S("abcd345e"));
+ test(S("abcde"), 4, 0, S("12345"), 2, 4, S("abcd345e"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test15()
-{
- test(S("abcde"), 4, 0, S("12345"), 4, 0, S("abcde"));
- test(S("abcde"), 4, 0, S("12345"), 4, 1, S("abcd5e"));
- test(S("abcde"), 4, 0, S("12345"), 4, 2, S("abcd5e"));
- test(S("abcde"), 4, 0, S("12345"), 5, 0, S("abcde"));
- test(S("abcde"), 4, 0, S("12345"), 5, 1, S("abcde"));
- test(S("abcde"), 4, 0, S("12345"), 6, 0, S("can't happen"));
- test(S("abcde"), 4, 0, S("1234567890"), 0, 0, S("abcde"));
- test(S("abcde"), 4, 0, S("1234567890"), 0, 1, S("abcd1e"));
- test(S("abcde"), 4, 0, S("1234567890"), 0, 5, S("abcd12345e"));
- test(S("abcde"), 4, 0, S("1234567890"), 0, 9, S("abcd123456789e"));
- test(S("abcde"), 4, 0, S("1234567890"), 0, 10, S("abcd1234567890e"));
- test(S("abcde"), 4, 0, S("1234567890"), 0, 11, S("abcd1234567890e"));
- test(S("abcde"), 4, 0, S("1234567890"), 1, 0, S("abcde"));
- test(S("abcde"), 4, 0, S("1234567890"), 1, 1, S("abcd2e"));
- test(S("abcde"), 4, 0, S("1234567890"), 1, 4, S("abcd2345e"));
- test(S("abcde"), 4, 0, S("1234567890"), 1, 8, S("abcd23456789e"));
- test(S("abcde"), 4, 0, S("1234567890"), 1, 9, S("abcd234567890e"));
- test(S("abcde"), 4, 0, S("1234567890"), 1, 10, S("abcd234567890e"));
- test(S("abcde"), 4, 0, S("1234567890"), 5, 0, S("abcde"));
- test(S("abcde"), 4, 0, S("1234567890"), 5, 1, S("abcd6e"));
- test(S("abcde"), 4, 0, S("1234567890"), 5, 2, S("abcd67e"));
- test(S("abcde"), 4, 0, S("1234567890"), 5, 4, S("abcd6789e"));
- test(S("abcde"), 4, 0, S("1234567890"), 5, 5, S("abcd67890e"));
- test(S("abcde"), 4, 0, S("1234567890"), 5, 6, S("abcd67890e"));
- test(S("abcde"), 4, 0, S("1234567890"), 9, 0, S("abcde"));
- test(S("abcde"), 4, 0, S("1234567890"), 9, 1, S("abcd0e"));
- test(S("abcde"), 4, 0, S("1234567890"), 9, 2, S("abcd0e"));
- test(S("abcde"), 4, 0, S("1234567890"), 10, 0, S("abcde"));
- test(S("abcde"), 4, 0, S("1234567890"), 10, 1, S("abcde"));
- test(S("abcde"), 4, 0, S("1234567890"), 11, 0, S("can't happen"));
- test(S("abcde"), 4, 0, S("12345678901234567890"), 0, 0, S("abcde"));
- test(S("abcde"), 4, 0, S("12345678901234567890"), 0, 1, S("abcd1e"));
- test(S("abcde"), 4, 0, S("12345678901234567890"), 0, 10, S("abcd1234567890e"));
- test(S("abcde"), 4, 0, S("12345678901234567890"), 0, 19, S("abcd1234567890123456789e"));
- test(S("abcde"), 4, 0, S("12345678901234567890"), 0, 20, S("abcd12345678901234567890e"));
- test(S("abcde"), 4, 0, S("12345678901234567890"), 0, 21, S("abcd12345678901234567890e"));
- test(S("abcde"), 4, 0, S("12345678901234567890"), 1, 0, S("abcde"));
- test(S("abcde"), 4, 0, S("12345678901234567890"), 1, 1, S("abcd2e"));
- test(S("abcde"), 4, 0, S("12345678901234567890"), 1, 9, S("abcd234567890e"));
- test(S("abcde"), 4, 0, S("12345678901234567890"), 1, 18, S("abcd234567890123456789e"));
- test(S("abcde"), 4, 0, S("12345678901234567890"), 1, 19, S("abcd2345678901234567890e"));
- test(S("abcde"), 4, 0, S("12345678901234567890"), 1, 20, S("abcd2345678901234567890e"));
- test(S("abcde"), 4, 0, S("12345678901234567890"), 10, 0, S("abcde"));
- test(S("abcde"), 4, 0, S("12345678901234567890"), 10, 1, S("abcd1e"));
- test(S("abcde"), 4, 0, S("12345678901234567890"), 10, 5, S("abcd12345e"));
- test(S("abcde"), 4, 0, S("12345678901234567890"), 10, 9, S("abcd123456789e"));
- test(S("abcde"), 4, 0, S("12345678901234567890"), 10, 10, S("abcd1234567890e"));
- test(S("abcde"), 4, 0, S("12345678901234567890"), 10, 11, S("abcd1234567890e"));
- test(S("abcde"), 4, 0, S("12345678901234567890"), 19, 0, S("abcde"));
- test(S("abcde"), 4, 0, S("12345678901234567890"), 19, 1, S("abcd0e"));
- test(S("abcde"), 4, 0, S("12345678901234567890"), 19, 2, S("abcd0e"));
- test(S("abcde"), 4, 0, S("12345678901234567890"), 20, 0, S("abcde"));
- test(S("abcde"), 4, 0, S("12345678901234567890"), 20, 1, S("abcde"));
- test(S("abcde"), 4, 0, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcde"), 4, 1, S(""), 0, 0, S("abcd"));
- test(S("abcde"), 4, 1, S(""), 0, 1, S("abcd"));
- test(S("abcde"), 4, 1, S(""), 1, 0, S("can't happen"));
- test(S("abcde"), 4, 1, S("12345"), 0, 0, S("abcd"));
- test(S("abcde"), 4, 1, S("12345"), 0, 1, S("abcd1"));
- test(S("abcde"), 4, 1, S("12345"), 0, 2, S("abcd12"));
- test(S("abcde"), 4, 1, S("12345"), 0, 4, S("abcd1234"));
- test(S("abcde"), 4, 1, S("12345"), 0, 5, S("abcd12345"));
- test(S("abcde"), 4, 1, S("12345"), 0, 6, S("abcd12345"));
- test(S("abcde"), 4, 1, S("12345"), 1, 0, S("abcd"));
- test(S("abcde"), 4, 1, S("12345"), 1, 1, S("abcd2"));
- test(S("abcde"), 4, 1, S("12345"), 1, 2, S("abcd23"));
- test(S("abcde"), 4, 1, S("12345"), 1, 3, S("abcd234"));
- test(S("abcde"), 4, 1, S("12345"), 1, 4, S("abcd2345"));
- test(S("abcde"), 4, 1, S("12345"), 1, 5, S("abcd2345"));
- test(S("abcde"), 4, 1, S("12345"), 2, 0, S("abcd"));
- test(S("abcde"), 4, 1, S("12345"), 2, 1, S("abcd3"));
- test(S("abcde"), 4, 1, S("12345"), 2, 2, S("abcd34"));
- test(S("abcde"), 4, 1, S("12345"), 2, 3, S("abcd345"));
- test(S("abcde"), 4, 1, S("12345"), 2, 4, S("abcd345"));
- test(S("abcde"), 4, 1, S("12345"), 4, 0, S("abcd"));
- test(S("abcde"), 4, 1, S("12345"), 4, 1, S("abcd5"));
- test(S("abcde"), 4, 1, S("12345"), 4, 2, S("abcd5"));
- test(S("abcde"), 4, 1, S("12345"), 5, 0, S("abcd"));
- test(S("abcde"), 4, 1, S("12345"), 5, 1, S("abcd"));
- test(S("abcde"), 4, 1, S("12345"), 6, 0, S("can't happen"));
- test(S("abcde"), 4, 1, S("1234567890"), 0, 0, S("abcd"));
- test(S("abcde"), 4, 1, S("1234567890"), 0, 1, S("abcd1"));
- test(S("abcde"), 4, 1, S("1234567890"), 0, 5, S("abcd12345"));
- test(S("abcde"), 4, 1, S("1234567890"), 0, 9, S("abcd123456789"));
- test(S("abcde"), 4, 1, S("1234567890"), 0, 10, S("abcd1234567890"));
- test(S("abcde"), 4, 1, S("1234567890"), 0, 11, S("abcd1234567890"));
- test(S("abcde"), 4, 1, S("1234567890"), 1, 0, S("abcd"));
- test(S("abcde"), 4, 1, S("1234567890"), 1, 1, S("abcd2"));
- test(S("abcde"), 4, 1, S("1234567890"), 1, 4, S("abcd2345"));
- test(S("abcde"), 4, 1, S("1234567890"), 1, 8, S("abcd23456789"));
- test(S("abcde"), 4, 1, S("1234567890"), 1, 9, S("abcd234567890"));
- test(S("abcde"), 4, 1, S("1234567890"), 1, 10, S("abcd234567890"));
- test(S("abcde"), 4, 1, S("1234567890"), 5, 0, S("abcd"));
- test(S("abcde"), 4, 1, S("1234567890"), 5, 1, S("abcd6"));
- test(S("abcde"), 4, 1, S("1234567890"), 5, 2, S("abcd67"));
- test(S("abcde"), 4, 1, S("1234567890"), 5, 4, S("abcd6789"));
- test(S("abcde"), 4, 1, S("1234567890"), 5, 5, S("abcd67890"));
- test(S("abcde"), 4, 1, S("1234567890"), 5, 6, S("abcd67890"));
- test(S("abcde"), 4, 1, S("1234567890"), 9, 0, S("abcd"));
- test(S("abcde"), 4, 1, S("1234567890"), 9, 1, S("abcd0"));
+TEST_CONSTEXPR_CXX20 bool test15() {
+ test(S("abcde"), 4, 0, S("12345"), 4, 0, S("abcde"));
+ test(S("abcde"), 4, 0, S("12345"), 4, 1, S("abcd5e"));
+ test(S("abcde"), 4, 0, S("12345"), 4, 2, S("abcd5e"));
+ test(S("abcde"), 4, 0, S("12345"), 5, 0, S("abcde"));
+ test(S("abcde"), 4, 0, S("12345"), 5, 1, S("abcde"));
+ test(S("abcde"), 4, 0, S("12345"), 6, 0, S("can't happen"));
+ test(S("abcde"), 4, 0, S("1234567890"), 0, 0, S("abcde"));
+ test(S("abcde"), 4, 0, S("1234567890"), 0, 1, S("abcd1e"));
+ test(S("abcde"), 4, 0, S("1234567890"), 0, 5, S("abcd12345e"));
+ test(S("abcde"), 4, 0, S("1234567890"), 0, 9, S("abcd123456789e"));
+ test(S("abcde"), 4, 0, S("1234567890"), 0, 10, S("abcd1234567890e"));
+ test(S("abcde"), 4, 0, S("1234567890"), 0, 11, S("abcd1234567890e"));
+ test(S("abcde"), 4, 0, S("1234567890"), 1, 0, S("abcde"));
+ test(S("abcde"), 4, 0, S("1234567890"), 1, 1, S("abcd2e"));
+ test(S("abcde"), 4, 0, S("1234567890"), 1, 4, S("abcd2345e"));
+ test(S("abcde"), 4, 0, S("1234567890"), 1, 8, S("abcd23456789e"));
+ test(S("abcde"), 4, 0, S("1234567890"), 1, 9, S("abcd234567890e"));
+ test(S("abcde"), 4, 0, S("1234567890"), 1, 10, S("abcd234567890e"));
+ test(S("abcde"), 4, 0, S("1234567890"), 5, 0, S("abcde"));
+ test(S("abcde"), 4, 0, S("1234567890"), 5, 1, S("abcd6e"));
+ test(S("abcde"), 4, 0, S("1234567890"), 5, 2, S("abcd67e"));
+ test(S("abcde"), 4, 0, S("1234567890"), 5, 4, S("abcd6789e"));
+ test(S("abcde"), 4, 0, S("1234567890"), 5, 5, S("abcd67890e"));
+ test(S("abcde"), 4, 0, S("1234567890"), 5, 6, S("abcd67890e"));
+ test(S("abcde"), 4, 0, S("1234567890"), 9, 0, S("abcde"));
+ test(S("abcde"), 4, 0, S("1234567890"), 9, 1, S("abcd0e"));
+ test(S("abcde"), 4, 0, S("1234567890"), 9, 2, S("abcd0e"));
+ test(S("abcde"), 4, 0, S("1234567890"), 10, 0, S("abcde"));
+ test(S("abcde"), 4, 0, S("1234567890"), 10, 1, S("abcde"));
+ test(S("abcde"), 4, 0, S("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcde"), 4, 0, S("12345678901234567890"), 0, 0, S("abcde"));
+ test(S("abcde"), 4, 0, S("12345678901234567890"), 0, 1, S("abcd1e"));
+ test(S("abcde"), 4, 0, S("12345678901234567890"), 0, 10, S("abcd1234567890e"));
+ test(S("abcde"), 4, 0, S("12345678901234567890"), 0, 19, S("abcd1234567890123456789e"));
+ test(S("abcde"), 4, 0, S("12345678901234567890"), 0, 20, S("abcd12345678901234567890e"));
+ test(S("abcde"), 4, 0, S("12345678901234567890"), 0, 21, S("abcd12345678901234567890e"));
+ test(S("abcde"), 4, 0, S("12345678901234567890"), 1, 0, S("abcde"));
+ test(S("abcde"), 4, 0, S("12345678901234567890"), 1, 1, S("abcd2e"));
+ test(S("abcde"), 4, 0, S("12345678901234567890"), 1, 9, S("abcd234567890e"));
+ test(S("abcde"), 4, 0, S("12345678901234567890"), 1, 18, S("abcd234567890123456789e"));
+ test(S("abcde"), 4, 0, S("12345678901234567890"), 1, 19, S("abcd2345678901234567890e"));
+ test(S("abcde"), 4, 0, S("12345678901234567890"), 1, 20, S("abcd2345678901234567890e"));
+ test(S("abcde"), 4, 0, S("12345678901234567890"), 10, 0, S("abcde"));
+ test(S("abcde"), 4, 0, S("12345678901234567890"), 10, 1, S("abcd1e"));
+ test(S("abcde"), 4, 0, S("12345678901234567890"), 10, 5, S("abcd12345e"));
+ test(S("abcde"), 4, 0, S("12345678901234567890"), 10, 9, S("abcd123456789e"));
+ test(S("abcde"), 4, 0, S("12345678901234567890"), 10, 10, S("abcd1234567890e"));
+ test(S("abcde"), 4, 0, S("12345678901234567890"), 10, 11, S("abcd1234567890e"));
+ test(S("abcde"), 4, 0, S("12345678901234567890"), 19, 0, S("abcde"));
+ test(S("abcde"), 4, 0, S("12345678901234567890"), 19, 1, S("abcd0e"));
+ test(S("abcde"), 4, 0, S("12345678901234567890"), 19, 2, S("abcd0e"));
+ test(S("abcde"), 4, 0, S("12345678901234567890"), 20, 0, S("abcde"));
+ test(S("abcde"), 4, 0, S("12345678901234567890"), 20, 1, S("abcde"));
+ test(S("abcde"), 4, 0, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcde"), 4, 1, S(""), 0, 0, S("abcd"));
+ test(S("abcde"), 4, 1, S(""), 0, 1, S("abcd"));
+ test(S("abcde"), 4, 1, S(""), 1, 0, S("can't happen"));
+ test(S("abcde"), 4, 1, S("12345"), 0, 0, S("abcd"));
+ test(S("abcde"), 4, 1, S("12345"), 0, 1, S("abcd1"));
+ test(S("abcde"), 4, 1, S("12345"), 0, 2, S("abcd12"));
+ test(S("abcde"), 4, 1, S("12345"), 0, 4, S("abcd1234"));
+ test(S("abcde"), 4, 1, S("12345"), 0, 5, S("abcd12345"));
+ test(S("abcde"), 4, 1, S("12345"), 0, 6, S("abcd12345"));
+ test(S("abcde"), 4, 1, S("12345"), 1, 0, S("abcd"));
+ test(S("abcde"), 4, 1, S("12345"), 1, 1, S("abcd2"));
+ test(S("abcde"), 4, 1, S("12345"), 1, 2, S("abcd23"));
+ test(S("abcde"), 4, 1, S("12345"), 1, 3, S("abcd234"));
+ test(S("abcde"), 4, 1, S("12345"), 1, 4, S("abcd2345"));
+ test(S("abcde"), 4, 1, S("12345"), 1, 5, S("abcd2345"));
+ test(S("abcde"), 4, 1, S("12345"), 2, 0, S("abcd"));
+ test(S("abcde"), 4, 1, S("12345"), 2, 1, S("abcd3"));
+ test(S("abcde"), 4, 1, S("12345"), 2, 2, S("abcd34"));
+ test(S("abcde"), 4, 1, S("12345"), 2, 3, S("abcd345"));
+ test(S("abcde"), 4, 1, S("12345"), 2, 4, S("abcd345"));
+ test(S("abcde"), 4, 1, S("12345"), 4, 0, S("abcd"));
+ test(S("abcde"), 4, 1, S("12345"), 4, 1, S("abcd5"));
+ test(S("abcde"), 4, 1, S("12345"), 4, 2, S("abcd5"));
+ test(S("abcde"), 4, 1, S("12345"), 5, 0, S("abcd"));
+ test(S("abcde"), 4, 1, S("12345"), 5, 1, S("abcd"));
+ test(S("abcde"), 4, 1, S("12345"), 6, 0, S("can't happen"));
+ test(S("abcde"), 4, 1, S("1234567890"), 0, 0, S("abcd"));
+ test(S("abcde"), 4, 1, S("1234567890"), 0, 1, S("abcd1"));
+ test(S("abcde"), 4, 1, S("1234567890"), 0, 5, S("abcd12345"));
+ test(S("abcde"), 4, 1, S("1234567890"), 0, 9, S("abcd123456789"));
+ test(S("abcde"), 4, 1, S("1234567890"), 0, 10, S("abcd1234567890"));
+ test(S("abcde"), 4, 1, S("1234567890"), 0, 11, S("abcd1234567890"));
+ test(S("abcde"), 4, 1, S("1234567890"), 1, 0, S("abcd"));
+ test(S("abcde"), 4, 1, S("1234567890"), 1, 1, S("abcd2"));
+ test(S("abcde"), 4, 1, S("1234567890"), 1, 4, S("abcd2345"));
+ test(S("abcde"), 4, 1, S("1234567890"), 1, 8, S("abcd23456789"));
+ test(S("abcde"), 4, 1, S("1234567890"), 1, 9, S("abcd234567890"));
+ test(S("abcde"), 4, 1, S("1234567890"), 1, 10, S("abcd234567890"));
+ test(S("abcde"), 4, 1, S("1234567890"), 5, 0, S("abcd"));
+ test(S("abcde"), 4, 1, S("1234567890"), 5, 1, S("abcd6"));
+ test(S("abcde"), 4, 1, S("1234567890"), 5, 2, S("abcd67"));
+ test(S("abcde"), 4, 1, S("1234567890"), 5, 4, S("abcd6789"));
+ test(S("abcde"), 4, 1, S("1234567890"), 5, 5, S("abcd67890"));
+ test(S("abcde"), 4, 1, S("1234567890"), 5, 6, S("abcd67890"));
+ test(S("abcde"), 4, 1, S("1234567890"), 9, 0, S("abcd"));
+ test(S("abcde"), 4, 1, S("1234567890"), 9, 1, S("abcd0"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test16()
-{
- test(S("abcde"), 4, 1, S("1234567890"), 9, 2, S("abcd0"));
- test(S("abcde"), 4, 1, S("1234567890"), 10, 0, S("abcd"));
- test(S("abcde"), 4, 1, S("1234567890"), 10, 1, S("abcd"));
- test(S("abcde"), 4, 1, S("1234567890"), 11, 0, S("can't happen"));
- test(S("abcde"), 4, 1, S("12345678901234567890"), 0, 0, S("abcd"));
- test(S("abcde"), 4, 1, S("12345678901234567890"), 0, 1, S("abcd1"));
- test(S("abcde"), 4, 1, S("12345678901234567890"), 0, 10, S("abcd1234567890"));
- test(S("abcde"), 4, 1, S("12345678901234567890"), 0, 19, S("abcd1234567890123456789"));
- test(S("abcde"), 4, 1, S("12345678901234567890"), 0, 20, S("abcd12345678901234567890"));
- test(S("abcde"), 4, 1, S("12345678901234567890"), 0, 21, S("abcd12345678901234567890"));
- test(S("abcde"), 4, 1, S("12345678901234567890"), 1, 0, S("abcd"));
- test(S("abcde"), 4, 1, S("12345678901234567890"), 1, 1, S("abcd2"));
- test(S("abcde"), 4, 1, S("12345678901234567890"), 1, 9, S("abcd234567890"));
- test(S("abcde"), 4, 1, S("12345678901234567890"), 1, 18, S("abcd234567890123456789"));
- test(S("abcde"), 4, 1, S("12345678901234567890"), 1, 19, S("abcd2345678901234567890"));
- test(S("abcde"), 4, 1, S("12345678901234567890"), 1, 20, S("abcd2345678901234567890"));
- test(S("abcde"), 4, 1, S("12345678901234567890"), 10, 0, S("abcd"));
- test(S("abcde"), 4, 1, S("12345678901234567890"), 10, 1, S("abcd1"));
- test(S("abcde"), 4, 1, S("12345678901234567890"), 10, 5, S("abcd12345"));
- test(S("abcde"), 4, 1, S("12345678901234567890"), 10, 9, S("abcd123456789"));
- test(S("abcde"), 4, 1, S("12345678901234567890"), 10, 10, S("abcd1234567890"));
- test(S("abcde"), 4, 1, S("12345678901234567890"), 10, 11, S("abcd1234567890"));
- test(S("abcde"), 4, 1, S("12345678901234567890"), 19, 0, S("abcd"));
- test(S("abcde"), 4, 1, S("12345678901234567890"), 19, 1, S("abcd0"));
- test(S("abcde"), 4, 1, S("12345678901234567890"), 19, 2, S("abcd0"));
- test(S("abcde"), 4, 1, S("12345678901234567890"), 20, 0, S("abcd"));
- test(S("abcde"), 4, 1, S("12345678901234567890"), 20, 1, S("abcd"));
- test(S("abcde"), 4, 1, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcde"), 4, 2, S(""), 0, 0, S("abcd"));
- test(S("abcde"), 4, 2, S(""), 0, 1, S("abcd"));
- test(S("abcde"), 4, 2, S(""), 1, 0, S("can't happen"));
- test(S("abcde"), 4, 2, S("12345"), 0, 0, S("abcd"));
- test(S("abcde"), 4, 2, S("12345"), 0, 1, S("abcd1"));
- test(S("abcde"), 4, 2, S("12345"), 0, 2, S("abcd12"));
- test(S("abcde"), 4, 2, S("12345"), 0, 4, S("abcd1234"));
- test(S("abcde"), 4, 2, S("12345"), 0, 5, S("abcd12345"));
- test(S("abcde"), 4, 2, S("12345"), 0, 6, S("abcd12345"));
- test(S("abcde"), 4, 2, S("12345"), 1, 0, S("abcd"));
- test(S("abcde"), 4, 2, S("12345"), 1, 1, S("abcd2"));
- test(S("abcde"), 4, 2, S("12345"), 1, 2, S("abcd23"));
- test(S("abcde"), 4, 2, S("12345"), 1, 3, S("abcd234"));
- test(S("abcde"), 4, 2, S("12345"), 1, 4, S("abcd2345"));
- test(S("abcde"), 4, 2, S("12345"), 1, 5, S("abcd2345"));
- test(S("abcde"), 4, 2, S("12345"), 2, 0, S("abcd"));
- test(S("abcde"), 4, 2, S("12345"), 2, 1, S("abcd3"));
- test(S("abcde"), 4, 2, S("12345"), 2, 2, S("abcd34"));
- test(S("abcde"), 4, 2, S("12345"), 2, 3, S("abcd345"));
- test(S("abcde"), 4, 2, S("12345"), 2, 4, S("abcd345"));
- test(S("abcde"), 4, 2, S("12345"), 4, 0, S("abcd"));
- test(S("abcde"), 4, 2, S("12345"), 4, 1, S("abcd5"));
- test(S("abcde"), 4, 2, S("12345"), 4, 2, S("abcd5"));
- test(S("abcde"), 4, 2, S("12345"), 5, 0, S("abcd"));
- test(S("abcde"), 4, 2, S("12345"), 5, 1, S("abcd"));
- test(S("abcde"), 4, 2, S("12345"), 6, 0, S("can't happen"));
- test(S("abcde"), 4, 2, S("1234567890"), 0, 0, S("abcd"));
- test(S("abcde"), 4, 2, S("1234567890"), 0, 1, S("abcd1"));
- test(S("abcde"), 4, 2, S("1234567890"), 0, 5, S("abcd12345"));
- test(S("abcde"), 4, 2, S("1234567890"), 0, 9, S("abcd123456789"));
- test(S("abcde"), 4, 2, S("1234567890"), 0, 10, S("abcd1234567890"));
- test(S("abcde"), 4, 2, S("1234567890"), 0, 11, S("abcd1234567890"));
- test(S("abcde"), 4, 2, S("1234567890"), 1, 0, S("abcd"));
- test(S("abcde"), 4, 2, S("1234567890"), 1, 1, S("abcd2"));
- test(S("abcde"), 4, 2, S("1234567890"), 1, 4, S("abcd2345"));
- test(S("abcde"), 4, 2, S("1234567890"), 1, 8, S("abcd23456789"));
- test(S("abcde"), 4, 2, S("1234567890"), 1, 9, S("abcd234567890"));
- test(S("abcde"), 4, 2, S("1234567890"), 1, 10, S("abcd234567890"));
- test(S("abcde"), 4, 2, S("1234567890"), 5, 0, S("abcd"));
- test(S("abcde"), 4, 2, S("1234567890"), 5, 1, S("abcd6"));
- test(S("abcde"), 4, 2, S("1234567890"), 5, 2, S("abcd67"));
- test(S("abcde"), 4, 2, S("1234567890"), 5, 4, S("abcd6789"));
- test(S("abcde"), 4, 2, S("1234567890"), 5, 5, S("abcd67890"));
- test(S("abcde"), 4, 2, S("1234567890"), 5, 6, S("abcd67890"));
- test(S("abcde"), 4, 2, S("1234567890"), 9, 0, S("abcd"));
- test(S("abcde"), 4, 2, S("1234567890"), 9, 1, S("abcd0"));
- test(S("abcde"), 4, 2, S("1234567890"), 9, 2, S("abcd0"));
- test(S("abcde"), 4, 2, S("1234567890"), 10, 0, S("abcd"));
- test(S("abcde"), 4, 2, S("1234567890"), 10, 1, S("abcd"));
- test(S("abcde"), 4, 2, S("1234567890"), 11, 0, S("can't happen"));
- test(S("abcde"), 4, 2, S("12345678901234567890"), 0, 0, S("abcd"));
- test(S("abcde"), 4, 2, S("12345678901234567890"), 0, 1, S("abcd1"));
- test(S("abcde"), 4, 2, S("12345678901234567890"), 0, 10, S("abcd1234567890"));
- test(S("abcde"), 4, 2, S("12345678901234567890"), 0, 19, S("abcd1234567890123456789"));
- test(S("abcde"), 4, 2, S("12345678901234567890"), 0, 20, S("abcd12345678901234567890"));
- test(S("abcde"), 4, 2, S("12345678901234567890"), 0, 21, S("abcd12345678901234567890"));
- test(S("abcde"), 4, 2, S("12345678901234567890"), 1, 0, S("abcd"));
- test(S("abcde"), 4, 2, S("12345678901234567890"), 1, 1, S("abcd2"));
- test(S("abcde"), 4, 2, S("12345678901234567890"), 1, 9, S("abcd234567890"));
- test(S("abcde"), 4, 2, S("12345678901234567890"), 1, 18, S("abcd234567890123456789"));
- test(S("abcde"), 4, 2, S("12345678901234567890"), 1, 19, S("abcd2345678901234567890"));
- test(S("abcde"), 4, 2, S("12345678901234567890"), 1, 20, S("abcd2345678901234567890"));
- test(S("abcde"), 4, 2, S("12345678901234567890"), 10, 0, S("abcd"));
- test(S("abcde"), 4, 2, S("12345678901234567890"), 10, 1, S("abcd1"));
- test(S("abcde"), 4, 2, S("12345678901234567890"), 10, 5, S("abcd12345"));
- test(S("abcde"), 4, 2, S("12345678901234567890"), 10, 9, S("abcd123456789"));
- test(S("abcde"), 4, 2, S("12345678901234567890"), 10, 10, S("abcd1234567890"));
- test(S("abcde"), 4, 2, S("12345678901234567890"), 10, 11, S("abcd1234567890"));
- test(S("abcde"), 4, 2, S("12345678901234567890"), 19, 0, S("abcd"));
- test(S("abcde"), 4, 2, S("12345678901234567890"), 19, 1, S("abcd0"));
- test(S("abcde"), 4, 2, S("12345678901234567890"), 19, 2, S("abcd0"));
- test(S("abcde"), 4, 2, S("12345678901234567890"), 20, 0, S("abcd"));
+TEST_CONSTEXPR_CXX20 bool test16() {
+ test(S("abcde"), 4, 1, S("1234567890"), 9, 2, S("abcd0"));
+ test(S("abcde"), 4, 1, S("1234567890"), 10, 0, S("abcd"));
+ test(S("abcde"), 4, 1, S("1234567890"), 10, 1, S("abcd"));
+ test(S("abcde"), 4, 1, S("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcde"), 4, 1, S("12345678901234567890"), 0, 0, S("abcd"));
+ test(S("abcde"), 4, 1, S("12345678901234567890"), 0, 1, S("abcd1"));
+ test(S("abcde"), 4, 1, S("12345678901234567890"), 0, 10, S("abcd1234567890"));
+ test(S("abcde"), 4, 1, S("12345678901234567890"), 0, 19, S("abcd1234567890123456789"));
+ test(S("abcde"), 4, 1, S("12345678901234567890"), 0, 20, S("abcd12345678901234567890"));
+ test(S("abcde"), 4, 1, S("12345678901234567890"), 0, 21, S("abcd12345678901234567890"));
+ test(S("abcde"), 4, 1, S("12345678901234567890"), 1, 0, S("abcd"));
+ test(S("abcde"), 4, 1, S("12345678901234567890"), 1, 1, S("abcd2"));
+ test(S("abcde"), 4, 1, S("12345678901234567890"), 1, 9, S("abcd234567890"));
+ test(S("abcde"), 4, 1, S("12345678901234567890"), 1, 18, S("abcd234567890123456789"));
+ test(S("abcde"), 4, 1, S("12345678901234567890"), 1, 19, S("abcd2345678901234567890"));
+ test(S("abcde"), 4, 1, S("12345678901234567890"), 1, 20, S("abcd2345678901234567890"));
+ test(S("abcde"), 4, 1, S("12345678901234567890"), 10, 0, S("abcd"));
+ test(S("abcde"), 4, 1, S("12345678901234567890"), 10, 1, S("abcd1"));
+ test(S("abcde"), 4, 1, S("12345678901234567890"), 10, 5, S("abcd12345"));
+ test(S("abcde"), 4, 1, S("12345678901234567890"), 10, 9, S("abcd123456789"));
+ test(S("abcde"), 4, 1, S("12345678901234567890"), 10, 10, S("abcd1234567890"));
+ test(S("abcde"), 4, 1, S("12345678901234567890"), 10, 11, S("abcd1234567890"));
+ test(S("abcde"), 4, 1, S("12345678901234567890"), 19, 0, S("abcd"));
+ test(S("abcde"), 4, 1, S("12345678901234567890"), 19, 1, S("abcd0"));
+ test(S("abcde"), 4, 1, S("12345678901234567890"), 19, 2, S("abcd0"));
+ test(S("abcde"), 4, 1, S("12345678901234567890"), 20, 0, S("abcd"));
+ test(S("abcde"), 4, 1, S("12345678901234567890"), 20, 1, S("abcd"));
+ test(S("abcde"), 4, 1, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcde"), 4, 2, S(""), 0, 0, S("abcd"));
+ test(S("abcde"), 4, 2, S(""), 0, 1, S("abcd"));
+ test(S("abcde"), 4, 2, S(""), 1, 0, S("can't happen"));
+ test(S("abcde"), 4, 2, S("12345"), 0, 0, S("abcd"));
+ test(S("abcde"), 4, 2, S("12345"), 0, 1, S("abcd1"));
+ test(S("abcde"), 4, 2, S("12345"), 0, 2, S("abcd12"));
+ test(S("abcde"), 4, 2, S("12345"), 0, 4, S("abcd1234"));
+ test(S("abcde"), 4, 2, S("12345"), 0, 5, S("abcd12345"));
+ test(S("abcde"), 4, 2, S("12345"), 0, 6, S("abcd12345"));
+ test(S("abcde"), 4, 2, S("12345"), 1, 0, S("abcd"));
+ test(S("abcde"), 4, 2, S("12345"), 1, 1, S("abcd2"));
+ test(S("abcde"), 4, 2, S("12345"), 1, 2, S("abcd23"));
+ test(S("abcde"), 4, 2, S("12345"), 1, 3, S("abcd234"));
+ test(S("abcde"), 4, 2, S("12345"), 1, 4, S("abcd2345"));
+ test(S("abcde"), 4, 2, S("12345"), 1, 5, S("abcd2345"));
+ test(S("abcde"), 4, 2, S("12345"), 2, 0, S("abcd"));
+ test(S("abcde"), 4, 2, S("12345"), 2, 1, S("abcd3"));
+ test(S("abcde"), 4, 2, S("12345"), 2, 2, S("abcd34"));
+ test(S("abcde"), 4, 2, S("12345"), 2, 3, S("abcd345"));
+ test(S("abcde"), 4, 2, S("12345"), 2, 4, S("abcd345"));
+ test(S("abcde"), 4, 2, S("12345"), 4, 0, S("abcd"));
+ test(S("abcde"), 4, 2, S("12345"), 4, 1, S("abcd5"));
+ test(S("abcde"), 4, 2, S("12345"), 4, 2, S("abcd5"));
+ test(S("abcde"), 4, 2, S("12345"), 5, 0, S("abcd"));
+ test(S("abcde"), 4, 2, S("12345"), 5, 1, S("abcd"));
+ test(S("abcde"), 4, 2, S("12345"), 6, 0, S("can't happen"));
+ test(S("abcde"), 4, 2, S("1234567890"), 0, 0, S("abcd"));
+ test(S("abcde"), 4, 2, S("1234567890"), 0, 1, S("abcd1"));
+ test(S("abcde"), 4, 2, S("1234567890"), 0, 5, S("abcd12345"));
+ test(S("abcde"), 4, 2, S("1234567890"), 0, 9, S("abcd123456789"));
+ test(S("abcde"), 4, 2, S("1234567890"), 0, 10, S("abcd1234567890"));
+ test(S("abcde"), 4, 2, S("1234567890"), 0, 11, S("abcd1234567890"));
+ test(S("abcde"), 4, 2, S("1234567890"), 1, 0, S("abcd"));
+ test(S("abcde"), 4, 2, S("1234567890"), 1, 1, S("abcd2"));
+ test(S("abcde"), 4, 2, S("1234567890"), 1, 4, S("abcd2345"));
+ test(S("abcde"), 4, 2, S("1234567890"), 1, 8, S("abcd23456789"));
+ test(S("abcde"), 4, 2, S("1234567890"), 1, 9, S("abcd234567890"));
+ test(S("abcde"), 4, 2, S("1234567890"), 1, 10, S("abcd234567890"));
+ test(S("abcde"), 4, 2, S("1234567890"), 5, 0, S("abcd"));
+ test(S("abcde"), 4, 2, S("1234567890"), 5, 1, S("abcd6"));
+ test(S("abcde"), 4, 2, S("1234567890"), 5, 2, S("abcd67"));
+ test(S("abcde"), 4, 2, S("1234567890"), 5, 4, S("abcd6789"));
+ test(S("abcde"), 4, 2, S("1234567890"), 5, 5, S("abcd67890"));
+ test(S("abcde"), 4, 2, S("1234567890"), 5, 6, S("abcd67890"));
+ test(S("abcde"), 4, 2, S("1234567890"), 9, 0, S("abcd"));
+ test(S("abcde"), 4, 2, S("1234567890"), 9, 1, S("abcd0"));
+ test(S("abcde"), 4, 2, S("1234567890"), 9, 2, S("abcd0"));
+ test(S("abcde"), 4, 2, S("1234567890"), 10, 0, S("abcd"));
+ test(S("abcde"), 4, 2, S("1234567890"), 10, 1, S("abcd"));
+ test(S("abcde"), 4, 2, S("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcde"), 4, 2, S("12345678901234567890"), 0, 0, S("abcd"));
+ test(S("abcde"), 4, 2, S("12345678901234567890"), 0, 1, S("abcd1"));
+ test(S("abcde"), 4, 2, S("12345678901234567890"), 0, 10, S("abcd1234567890"));
+ test(S("abcde"), 4, 2, S("12345678901234567890"), 0, 19, S("abcd1234567890123456789"));
+ test(S("abcde"), 4, 2, S("12345678901234567890"), 0, 20, S("abcd12345678901234567890"));
+ test(S("abcde"), 4, 2, S("12345678901234567890"), 0, 21, S("abcd12345678901234567890"));
+ test(S("abcde"), 4, 2, S("12345678901234567890"), 1, 0, S("abcd"));
+ test(S("abcde"), 4, 2, S("12345678901234567890"), 1, 1, S("abcd2"));
+ test(S("abcde"), 4, 2, S("12345678901234567890"), 1, 9, S("abcd234567890"));
+ test(S("abcde"), 4, 2, S("12345678901234567890"), 1, 18, S("abcd234567890123456789"));
+ test(S("abcde"), 4, 2, S("12345678901234567890"), 1, 19, S("abcd2345678901234567890"));
+ test(S("abcde"), 4, 2, S("12345678901234567890"), 1, 20, S("abcd2345678901234567890"));
+ test(S("abcde"), 4, 2, S("12345678901234567890"), 10, 0, S("abcd"));
+ test(S("abcde"), 4, 2, S("12345678901234567890"), 10, 1, S("abcd1"));
+ test(S("abcde"), 4, 2, S("12345678901234567890"), 10, 5, S("abcd12345"));
+ test(S("abcde"), 4, 2, S("12345678901234567890"), 10, 9, S("abcd123456789"));
+ test(S("abcde"), 4, 2, S("12345678901234567890"), 10, 10, S("abcd1234567890"));
+ test(S("abcde"), 4, 2, S("12345678901234567890"), 10, 11, S("abcd1234567890"));
+ test(S("abcde"), 4, 2, S("12345678901234567890"), 19, 0, S("abcd"));
+ test(S("abcde"), 4, 2, S("12345678901234567890"), 19, 1, S("abcd0"));
+ test(S("abcde"), 4, 2, S("12345678901234567890"), 19, 2, S("abcd0"));
+ test(S("abcde"), 4, 2, S("12345678901234567890"), 20, 0, S("abcd"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test17()
-{
- test(S("abcde"), 4, 2, S("12345678901234567890"), 20, 1, S("abcd"));
- test(S("abcde"), 4, 2, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcde"), 5, 0, S(""), 0, 0, S("abcde"));
- test(S("abcde"), 5, 0, S(""), 0, 1, S("abcde"));
- test(S("abcde"), 5, 0, S(""), 1, 0, S("can't happen"));
- test(S("abcde"), 5, 0, S("12345"), 0, 0, S("abcde"));
- test(S("abcde"), 5, 0, S("12345"), 0, 1, S("abcde1"));
- test(S("abcde"), 5, 0, S("12345"), 0, 2, S("abcde12"));
- test(S("abcde"), 5, 0, S("12345"), 0, 4, S("abcde1234"));
- test(S("abcde"), 5, 0, S("12345"), 0, 5, S("abcde12345"));
- test(S("abcde"), 5, 0, S("12345"), 0, 6, S("abcde12345"));
- test(S("abcde"), 5, 0, S("12345"), 1, 0, S("abcde"));
- test(S("abcde"), 5, 0, S("12345"), 1, 1, S("abcde2"));
- test(S("abcde"), 5, 0, S("12345"), 1, 2, S("abcde23"));
- test(S("abcde"), 5, 0, S("12345"), 1, 3, S("abcde234"));
- test(S("abcde"), 5, 0, S("12345"), 1, 4, S("abcde2345"));
- test(S("abcde"), 5, 0, S("12345"), 1, 5, S("abcde2345"));
- test(S("abcde"), 5, 0, S("12345"), 2, 0, S("abcde"));
- test(S("abcde"), 5, 0, S("12345"), 2, 1, S("abcde3"));
- test(S("abcde"), 5, 0, S("12345"), 2, 2, S("abcde34"));
- test(S("abcde"), 5, 0, S("12345"), 2, 3, S("abcde345"));
- test(S("abcde"), 5, 0, S("12345"), 2, 4, S("abcde345"));
- test(S("abcde"), 5, 0, S("12345"), 4, 0, S("abcde"));
- test(S("abcde"), 5, 0, S("12345"), 4, 1, S("abcde5"));
- test(S("abcde"), 5, 0, S("12345"), 4, 2, S("abcde5"));
- test(S("abcde"), 5, 0, S("12345"), 5, 0, S("abcde"));
- test(S("abcde"), 5, 0, S("12345"), 5, 1, S("abcde"));
- test(S("abcde"), 5, 0, S("12345"), 6, 0, S("can't happen"));
- test(S("abcde"), 5, 0, S("1234567890"), 0, 0, S("abcde"));
- test(S("abcde"), 5, 0, S("1234567890"), 0, 1, S("abcde1"));
- test(S("abcde"), 5, 0, S("1234567890"), 0, 5, S("abcde12345"));
- test(S("abcde"), 5, 0, S("1234567890"), 0, 9, S("abcde123456789"));
- test(S("abcde"), 5, 0, S("1234567890"), 0, 10, S("abcde1234567890"));
- test(S("abcde"), 5, 0, S("1234567890"), 0, 11, S("abcde1234567890"));
- test(S("abcde"), 5, 0, S("1234567890"), 1, 0, S("abcde"));
- test(S("abcde"), 5, 0, S("1234567890"), 1, 1, S("abcde2"));
- test(S("abcde"), 5, 0, S("1234567890"), 1, 4, S("abcde2345"));
- test(S("abcde"), 5, 0, S("1234567890"), 1, 8, S("abcde23456789"));
- test(S("abcde"), 5, 0, S("1234567890"), 1, 9, S("abcde234567890"));
- test(S("abcde"), 5, 0, S("1234567890"), 1, 10, S("abcde234567890"));
- test(S("abcde"), 5, 0, S("1234567890"), 5, 0, S("abcde"));
- test(S("abcde"), 5, 0, S("1234567890"), 5, 1, S("abcde6"));
- test(S("abcde"), 5, 0, S("1234567890"), 5, 2, S("abcde67"));
- test(S("abcde"), 5, 0, S("1234567890"), 5, 4, S("abcde6789"));
- test(S("abcde"), 5, 0, S("1234567890"), 5, 5, S("abcde67890"));
- test(S("abcde"), 5, 0, S("1234567890"), 5, 6, S("abcde67890"));
- test(S("abcde"), 5, 0, S("1234567890"), 9, 0, S("abcde"));
- test(S("abcde"), 5, 0, S("1234567890"), 9, 1, S("abcde0"));
- test(S("abcde"), 5, 0, S("1234567890"), 9, 2, S("abcde0"));
- test(S("abcde"), 5, 0, S("1234567890"), 10, 0, S("abcde"));
- test(S("abcde"), 5, 0, S("1234567890"), 10, 1, S("abcde"));
- test(S("abcde"), 5, 0, S("1234567890"), 11, 0, S("can't happen"));
- test(S("abcde"), 5, 0, S("12345678901234567890"), 0, 0, S("abcde"));
- test(S("abcde"), 5, 0, S("12345678901234567890"), 0, 1, S("abcde1"));
- test(S("abcde"), 5, 0, S("12345678901234567890"), 0, 10, S("abcde1234567890"));
- test(S("abcde"), 5, 0, S("12345678901234567890"), 0, 19, S("abcde1234567890123456789"));
- test(S("abcde"), 5, 0, S("12345678901234567890"), 0, 20, S("abcde12345678901234567890"));
- test(S("abcde"), 5, 0, S("12345678901234567890"), 0, 21, S("abcde12345678901234567890"));
- test(S("abcde"), 5, 0, S("12345678901234567890"), 1, 0, S("abcde"));
- test(S("abcde"), 5, 0, S("12345678901234567890"), 1, 1, S("abcde2"));
- test(S("abcde"), 5, 0, S("12345678901234567890"), 1, 9, S("abcde234567890"));
- test(S("abcde"), 5, 0, S("12345678901234567890"), 1, 18, S("abcde234567890123456789"));
- test(S("abcde"), 5, 0, S("12345678901234567890"), 1, 19, S("abcde2345678901234567890"));
- test(S("abcde"), 5, 0, S("12345678901234567890"), 1, 20, S("abcde2345678901234567890"));
- test(S("abcde"), 5, 0, S("12345678901234567890"), 10, 0, S("abcde"));
- test(S("abcde"), 5, 0, S("12345678901234567890"), 10, 1, S("abcde1"));
- test(S("abcde"), 5, 0, S("12345678901234567890"), 10, 5, S("abcde12345"));
- test(S("abcde"), 5, 0, S("12345678901234567890"), 10, 9, S("abcde123456789"));
- test(S("abcde"), 5, 0, S("12345678901234567890"), 10, 10, S("abcde1234567890"));
- test(S("abcde"), 5, 0, S("12345678901234567890"), 10, 11, S("abcde1234567890"));
- test(S("abcde"), 5, 0, S("12345678901234567890"), 19, 0, S("abcde"));
- test(S("abcde"), 5, 0, S("12345678901234567890"), 19, 1, S("abcde0"));
- test(S("abcde"), 5, 0, S("12345678901234567890"), 19, 2, S("abcde0"));
- test(S("abcde"), 5, 0, S("12345678901234567890"), 20, 0, S("abcde"));
- test(S("abcde"), 5, 0, S("12345678901234567890"), 20, 1, S("abcde"));
- test(S("abcde"), 5, 0, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcde"), 5, 1, S(""), 0, 0, S("abcde"));
- test(S("abcde"), 5, 1, S(""), 0, 1, S("abcde"));
- test(S("abcde"), 5, 1, S(""), 1, 0, S("can't happen"));
- test(S("abcde"), 5, 1, S("12345"), 0, 0, S("abcde"));
- test(S("abcde"), 5, 1, S("12345"), 0, 1, S("abcde1"));
- test(S("abcde"), 5, 1, S("12345"), 0, 2, S("abcde12"));
- test(S("abcde"), 5, 1, S("12345"), 0, 4, S("abcde1234"));
- test(S("abcde"), 5, 1, S("12345"), 0, 5, S("abcde12345"));
- test(S("abcde"), 5, 1, S("12345"), 0, 6, S("abcde12345"));
- test(S("abcde"), 5, 1, S("12345"), 1, 0, S("abcde"));
- test(S("abcde"), 5, 1, S("12345"), 1, 1, S("abcde2"));
- test(S("abcde"), 5, 1, S("12345"), 1, 2, S("abcde23"));
- test(S("abcde"), 5, 1, S("12345"), 1, 3, S("abcde234"));
- test(S("abcde"), 5, 1, S("12345"), 1, 4, S("abcde2345"));
- test(S("abcde"), 5, 1, S("12345"), 1, 5, S("abcde2345"));
- test(S("abcde"), 5, 1, S("12345"), 2, 0, S("abcde"));
- test(S("abcde"), 5, 1, S("12345"), 2, 1, S("abcde3"));
- test(S("abcde"), 5, 1, S("12345"), 2, 2, S("abcde34"));
- test(S("abcde"), 5, 1, S("12345"), 2, 3, S("abcde345"));
- test(S("abcde"), 5, 1, S("12345"), 2, 4, S("abcde345"));
- test(S("abcde"), 5, 1, S("12345"), 4, 0, S("abcde"));
- test(S("abcde"), 5, 1, S("12345"), 4, 1, S("abcde5"));
- test(S("abcde"), 5, 1, S("12345"), 4, 2, S("abcde5"));
- test(S("abcde"), 5, 1, S("12345"), 5, 0, S("abcde"));
+TEST_CONSTEXPR_CXX20 bool test17() {
+ test(S("abcde"), 4, 2, S("12345678901234567890"), 20, 1, S("abcd"));
+ test(S("abcde"), 4, 2, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcde"), 5, 0, S(""), 0, 0, S("abcde"));
+ test(S("abcde"), 5, 0, S(""), 0, 1, S("abcde"));
+ test(S("abcde"), 5, 0, S(""), 1, 0, S("can't happen"));
+ test(S("abcde"), 5, 0, S("12345"), 0, 0, S("abcde"));
+ test(S("abcde"), 5, 0, S("12345"), 0, 1, S("abcde1"));
+ test(S("abcde"), 5, 0, S("12345"), 0, 2, S("abcde12"));
+ test(S("abcde"), 5, 0, S("12345"), 0, 4, S("abcde1234"));
+ test(S("abcde"), 5, 0, S("12345"), 0, 5, S("abcde12345"));
+ test(S("abcde"), 5, 0, S("12345"), 0, 6, S("abcde12345"));
+ test(S("abcde"), 5, 0, S("12345"), 1, 0, S("abcde"));
+ test(S("abcde"), 5, 0, S("12345"), 1, 1, S("abcde2"));
+ test(S("abcde"), 5, 0, S("12345"), 1, 2, S("abcde23"));
+ test(S("abcde"), 5, 0, S("12345"), 1, 3, S("abcde234"));
+ test(S("abcde"), 5, 0, S("12345"), 1, 4, S("abcde2345"));
+ test(S("abcde"), 5, 0, S("12345"), 1, 5, S("abcde2345"));
+ test(S("abcde"), 5, 0, S("12345"), 2, 0, S("abcde"));
+ test(S("abcde"), 5, 0, S("12345"), 2, 1, S("abcde3"));
+ test(S("abcde"), 5, 0, S("12345"), 2, 2, S("abcde34"));
+ test(S("abcde"), 5, 0, S("12345"), 2, 3, S("abcde345"));
+ test(S("abcde"), 5, 0, S("12345"), 2, 4, S("abcde345"));
+ test(S("abcde"), 5, 0, S("12345"), 4, 0, S("abcde"));
+ test(S("abcde"), 5, 0, S("12345"), 4, 1, S("abcde5"));
+ test(S("abcde"), 5, 0, S("12345"), 4, 2, S("abcde5"));
+ test(S("abcde"), 5, 0, S("12345"), 5, 0, S("abcde"));
+ test(S("abcde"), 5, 0, S("12345"), 5, 1, S("abcde"));
+ test(S("abcde"), 5, 0, S("12345"), 6, 0, S("can't happen"));
+ test(S("abcde"), 5, 0, S("1234567890"), 0, 0, S("abcde"));
+ test(S("abcde"), 5, 0, S("1234567890"), 0, 1, S("abcde1"));
+ test(S("abcde"), 5, 0, S("1234567890"), 0, 5, S("abcde12345"));
+ test(S("abcde"), 5, 0, S("1234567890"), 0, 9, S("abcde123456789"));
+ test(S("abcde"), 5, 0, S("1234567890"), 0, 10, S("abcde1234567890"));
+ test(S("abcde"), 5, 0, S("1234567890"), 0, 11, S("abcde1234567890"));
+ test(S("abcde"), 5, 0, S("1234567890"), 1, 0, S("abcde"));
+ test(S("abcde"), 5, 0, S("1234567890"), 1, 1, S("abcde2"));
+ test(S("abcde"), 5, 0, S("1234567890"), 1, 4, S("abcde2345"));
+ test(S("abcde"), 5, 0, S("1234567890"), 1, 8, S("abcde23456789"));
+ test(S("abcde"), 5, 0, S("1234567890"), 1, 9, S("abcde234567890"));
+ test(S("abcde"), 5, 0, S("1234567890"), 1, 10, S("abcde234567890"));
+ test(S("abcde"), 5, 0, S("1234567890"), 5, 0, S("abcde"));
+ test(S("abcde"), 5, 0, S("1234567890"), 5, 1, S("abcde6"));
+ test(S("abcde"), 5, 0, S("1234567890"), 5, 2, S("abcde67"));
+ test(S("abcde"), 5, 0, S("1234567890"), 5, 4, S("abcde6789"));
+ test(S("abcde"), 5, 0, S("1234567890"), 5, 5, S("abcde67890"));
+ test(S("abcde"), 5, 0, S("1234567890"), 5, 6, S("abcde67890"));
+ test(S("abcde"), 5, 0, S("1234567890"), 9, 0, S("abcde"));
+ test(S("abcde"), 5, 0, S("1234567890"), 9, 1, S("abcde0"));
+ test(S("abcde"), 5, 0, S("1234567890"), 9, 2, S("abcde0"));
+ test(S("abcde"), 5, 0, S("1234567890"), 10, 0, S("abcde"));
+ test(S("abcde"), 5, 0, S("1234567890"), 10, 1, S("abcde"));
+ test(S("abcde"), 5, 0, S("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcde"), 5, 0, S("12345678901234567890"), 0, 0, S("abcde"));
+ test(S("abcde"), 5, 0, S("12345678901234567890"), 0, 1, S("abcde1"));
+ test(S("abcde"), 5, 0, S("12345678901234567890"), 0, 10, S("abcde1234567890"));
+ test(S("abcde"), 5, 0, S("12345678901234567890"), 0, 19, S("abcde1234567890123456789"));
+ test(S("abcde"), 5, 0, S("12345678901234567890"), 0, 20, S("abcde12345678901234567890"));
+ test(S("abcde"), 5, 0, S("12345678901234567890"), 0, 21, S("abcde12345678901234567890"));
+ test(S("abcde"), 5, 0, S("12345678901234567890"), 1, 0, S("abcde"));
+ test(S("abcde"), 5, 0, S("12345678901234567890"), 1, 1, S("abcde2"));
+ test(S("abcde"), 5, 0, S("12345678901234567890"), 1, 9, S("abcde234567890"));
+ test(S("abcde"), 5, 0, S("12345678901234567890"), 1, 18, S("abcde234567890123456789"));
+ test(S("abcde"), 5, 0, S("12345678901234567890"), 1, 19, S("abcde2345678901234567890"));
+ test(S("abcde"), 5, 0, S("12345678901234567890"), 1, 20, S("abcde2345678901234567890"));
+ test(S("abcde"), 5, 0, S("12345678901234567890"), 10, 0, S("abcde"));
+ test(S("abcde"), 5, 0, S("12345678901234567890"), 10, 1, S("abcde1"));
+ test(S("abcde"), 5, 0, S("12345678901234567890"), 10, 5, S("abcde12345"));
+ test(S("abcde"), 5, 0, S("12345678901234567890"), 10, 9, S("abcde123456789"));
+ test(S("abcde"), 5, 0, S("12345678901234567890"), 10, 10, S("abcde1234567890"));
+ test(S("abcde"), 5, 0, S("12345678901234567890"), 10, 11, S("abcde1234567890"));
+ test(S("abcde"), 5, 0, S("12345678901234567890"), 19, 0, S("abcde"));
+ test(S("abcde"), 5, 0, S("12345678901234567890"), 19, 1, S("abcde0"));
+ test(S("abcde"), 5, 0, S("12345678901234567890"), 19, 2, S("abcde0"));
+ test(S("abcde"), 5, 0, S("12345678901234567890"), 20, 0, S("abcde"));
+ test(S("abcde"), 5, 0, S("12345678901234567890"), 20, 1, S("abcde"));
+ test(S("abcde"), 5, 0, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcde"), 5, 1, S(""), 0, 0, S("abcde"));
+ test(S("abcde"), 5, 1, S(""), 0, 1, S("abcde"));
+ test(S("abcde"), 5, 1, S(""), 1, 0, S("can't happen"));
+ test(S("abcde"), 5, 1, S("12345"), 0, 0, S("abcde"));
+ test(S("abcde"), 5, 1, S("12345"), 0, 1, S("abcde1"));
+ test(S("abcde"), 5, 1, S("12345"), 0, 2, S("abcde12"));
+ test(S("abcde"), 5, 1, S("12345"), 0, 4, S("abcde1234"));
+ test(S("abcde"), 5, 1, S("12345"), 0, 5, S("abcde12345"));
+ test(S("abcde"), 5, 1, S("12345"), 0, 6, S("abcde12345"));
+ test(S("abcde"), 5, 1, S("12345"), 1, 0, S("abcde"));
+ test(S("abcde"), 5, 1, S("12345"), 1, 1, S("abcde2"));
+ test(S("abcde"), 5, 1, S("12345"), 1, 2, S("abcde23"));
+ test(S("abcde"), 5, 1, S("12345"), 1, 3, S("abcde234"));
+ test(S("abcde"), 5, 1, S("12345"), 1, 4, S("abcde2345"));
+ test(S("abcde"), 5, 1, S("12345"), 1, 5, S("abcde2345"));
+ test(S("abcde"), 5, 1, S("12345"), 2, 0, S("abcde"));
+ test(S("abcde"), 5, 1, S("12345"), 2, 1, S("abcde3"));
+ test(S("abcde"), 5, 1, S("12345"), 2, 2, S("abcde34"));
+ test(S("abcde"), 5, 1, S("12345"), 2, 3, S("abcde345"));
+ test(S("abcde"), 5, 1, S("12345"), 2, 4, S("abcde345"));
+ test(S("abcde"), 5, 1, S("12345"), 4, 0, S("abcde"));
+ test(S("abcde"), 5, 1, S("12345"), 4, 1, S("abcde5"));
+ test(S("abcde"), 5, 1, S("12345"), 4, 2, S("abcde5"));
+ test(S("abcde"), 5, 1, S("12345"), 5, 0, S("abcde"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test18()
-{
- test(S("abcde"), 5, 1, S("12345"), 5, 1, S("abcde"));
- test(S("abcde"), 5, 1, S("12345"), 6, 0, S("can't happen"));
- test(S("abcde"), 5, 1, S("1234567890"), 0, 0, S("abcde"));
- test(S("abcde"), 5, 1, S("1234567890"), 0, 1, S("abcde1"));
- test(S("abcde"), 5, 1, S("1234567890"), 0, 5, S("abcde12345"));
- test(S("abcde"), 5, 1, S("1234567890"), 0, 9, S("abcde123456789"));
- test(S("abcde"), 5, 1, S("1234567890"), 0, 10, S("abcde1234567890"));
- test(S("abcde"), 5, 1, S("1234567890"), 0, 11, S("abcde1234567890"));
- test(S("abcde"), 5, 1, S("1234567890"), 1, 0, S("abcde"));
- test(S("abcde"), 5, 1, S("1234567890"), 1, 1, S("abcde2"));
- test(S("abcde"), 5, 1, S("1234567890"), 1, 4, S("abcde2345"));
- test(S("abcde"), 5, 1, S("1234567890"), 1, 8, S("abcde23456789"));
- test(S("abcde"), 5, 1, S("1234567890"), 1, 9, S("abcde234567890"));
- test(S("abcde"), 5, 1, S("1234567890"), 1, 10, S("abcde234567890"));
- test(S("abcde"), 5, 1, S("1234567890"), 5, 0, S("abcde"));
- test(S("abcde"), 5, 1, S("1234567890"), 5, 1, S("abcde6"));
- test(S("abcde"), 5, 1, S("1234567890"), 5, 2, S("abcde67"));
- test(S("abcde"), 5, 1, S("1234567890"), 5, 4, S("abcde6789"));
- test(S("abcde"), 5, 1, S("1234567890"), 5, 5, S("abcde67890"));
- test(S("abcde"), 5, 1, S("1234567890"), 5, 6, S("abcde67890"));
- test(S("abcde"), 5, 1, S("1234567890"), 9, 0, S("abcde"));
- test(S("abcde"), 5, 1, S("1234567890"), 9, 1, S("abcde0"));
- test(S("abcde"), 5, 1, S("1234567890"), 9, 2, S("abcde0"));
- test(S("abcde"), 5, 1, S("1234567890"), 10, 0, S("abcde"));
- test(S("abcde"), 5, 1, S("1234567890"), 10, 1, S("abcde"));
- test(S("abcde"), 5, 1, S("1234567890"), 11, 0, S("can't happen"));
- test(S("abcde"), 5, 1, S("12345678901234567890"), 0, 0, S("abcde"));
- test(S("abcde"), 5, 1, S("12345678901234567890"), 0, 1, S("abcde1"));
- test(S("abcde"), 5, 1, S("12345678901234567890"), 0, 10, S("abcde1234567890"));
- test(S("abcde"), 5, 1, S("12345678901234567890"), 0, 19, S("abcde1234567890123456789"));
- test(S("abcde"), 5, 1, S("12345678901234567890"), 0, 20, S("abcde12345678901234567890"));
- test(S("abcde"), 5, 1, S("12345678901234567890"), 0, 21, S("abcde12345678901234567890"));
- test(S("abcde"), 5, 1, S("12345678901234567890"), 1, 0, S("abcde"));
- test(S("abcde"), 5, 1, S("12345678901234567890"), 1, 1, S("abcde2"));
- test(S("abcde"), 5, 1, S("12345678901234567890"), 1, 9, S("abcde234567890"));
- test(S("abcde"), 5, 1, S("12345678901234567890"), 1, 18, S("abcde234567890123456789"));
- test(S("abcde"), 5, 1, S("12345678901234567890"), 1, 19, S("abcde2345678901234567890"));
- test(S("abcde"), 5, 1, S("12345678901234567890"), 1, 20, S("abcde2345678901234567890"));
- test(S("abcde"), 5, 1, S("12345678901234567890"), 10, 0, S("abcde"));
- test(S("abcde"), 5, 1, S("12345678901234567890"), 10, 1, S("abcde1"));
- test(S("abcde"), 5, 1, S("12345678901234567890"), 10, 5, S("abcde12345"));
- test(S("abcde"), 5, 1, S("12345678901234567890"), 10, 9, S("abcde123456789"));
- test(S("abcde"), 5, 1, S("12345678901234567890"), 10, 10, S("abcde1234567890"));
- test(S("abcde"), 5, 1, S("12345678901234567890"), 10, 11, S("abcde1234567890"));
- test(S("abcde"), 5, 1, S("12345678901234567890"), 19, 0, S("abcde"));
- test(S("abcde"), 5, 1, S("12345678901234567890"), 19, 1, S("abcde0"));
- test(S("abcde"), 5, 1, S("12345678901234567890"), 19, 2, S("abcde0"));
- test(S("abcde"), 5, 1, S("12345678901234567890"), 20, 0, S("abcde"));
- test(S("abcde"), 5, 1, S("12345678901234567890"), 20, 1, S("abcde"));
- test(S("abcde"), 5, 1, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcde"), 6, 0, S(""), 0, 0, S("can't happen"));
- test(S("abcde"), 6, 0, S(""), 0, 1, S("can't happen"));
- test(S("abcde"), 6, 0, S(""), 1, 0, S("can't happen"));
- test(S("abcde"), 6, 0, S("12345"), 0, 0, S("can't happen"));
- test(S("abcde"), 6, 0, S("12345"), 0, 1, S("can't happen"));
- test(S("abcde"), 6, 0, S("12345"), 0, 2, S("can't happen"));
- test(S("abcde"), 6, 0, S("12345"), 0, 4, S("can't happen"));
- test(S("abcde"), 6, 0, S("12345"), 0, 5, S("can't happen"));
- test(S("abcde"), 6, 0, S("12345"), 0, 6, S("can't happen"));
- test(S("abcde"), 6, 0, S("12345"), 1, 0, S("can't happen"));
- test(S("abcde"), 6, 0, S("12345"), 1, 1, S("can't happen"));
- test(S("abcde"), 6, 0, S("12345"), 1, 2, S("can't happen"));
- test(S("abcde"), 6, 0, S("12345"), 1, 3, S("can't happen"));
- test(S("abcde"), 6, 0, S("12345"), 1, 4, S("can't happen"));
- test(S("abcde"), 6, 0, S("12345"), 1, 5, S("can't happen"));
- test(S("abcde"), 6, 0, S("12345"), 2, 0, S("can't happen"));
- test(S("abcde"), 6, 0, S("12345"), 2, 1, S("can't happen"));
- test(S("abcde"), 6, 0, S("12345"), 2, 2, S("can't happen"));
- test(S("abcde"), 6, 0, S("12345"), 2, 3, S("can't happen"));
- test(S("abcde"), 6, 0, S("12345"), 2, 4, S("can't happen"));
- test(S("abcde"), 6, 0, S("12345"), 4, 0, S("can't happen"));
- test(S("abcde"), 6, 0, S("12345"), 4, 1, S("can't happen"));
- test(S("abcde"), 6, 0, S("12345"), 4, 2, S("can't happen"));
- test(S("abcde"), 6, 0, S("12345"), 5, 0, S("can't happen"));
- test(S("abcde"), 6, 0, S("12345"), 5, 1, S("can't happen"));
- test(S("abcde"), 6, 0, S("12345"), 6, 0, S("can't happen"));
- test(S("abcde"), 6, 0, S("1234567890"), 0, 0, S("can't happen"));
- test(S("abcde"), 6, 0, S("1234567890"), 0, 1, S("can't happen"));
- test(S("abcde"), 6, 0, S("1234567890"), 0, 5, S("can't happen"));
- test(S("abcde"), 6, 0, S("1234567890"), 0, 9, S("can't happen"));
- test(S("abcde"), 6, 0, S("1234567890"), 0, 10, S("can't happen"));
- test(S("abcde"), 6, 0, S("1234567890"), 0, 11, S("can't happen"));
- test(S("abcde"), 6, 0, S("1234567890"), 1, 0, S("can't happen"));
- test(S("abcde"), 6, 0, S("1234567890"), 1, 1, S("can't happen"));
- test(S("abcde"), 6, 0, S("1234567890"), 1, 4, S("can't happen"));
- test(S("abcde"), 6, 0, S("1234567890"), 1, 8, S("can't happen"));
- test(S("abcde"), 6, 0, S("1234567890"), 1, 9, S("can't happen"));
- test(S("abcde"), 6, 0, S("1234567890"), 1, 10, S("can't happen"));
- test(S("abcde"), 6, 0, S("1234567890"), 5, 0, S("can't happen"));
- test(S("abcde"), 6, 0, S("1234567890"), 5, 1, S("can't happen"));
- test(S("abcde"), 6, 0, S("1234567890"), 5, 2, S("can't happen"));
- test(S("abcde"), 6, 0, S("1234567890"), 5, 4, S("can't happen"));
- test(S("abcde"), 6, 0, S("1234567890"), 5, 5, S("can't happen"));
- test(S("abcde"), 6, 0, S("1234567890"), 5, 6, S("can't happen"));
- test(S("abcde"), 6, 0, S("1234567890"), 9, 0, S("can't happen"));
- test(S("abcde"), 6, 0, S("1234567890"), 9, 1, S("can't happen"));
- test(S("abcde"), 6, 0, S("1234567890"), 9, 2, S("can't happen"));
- test(S("abcde"), 6, 0, S("1234567890"), 10, 0, S("can't happen"));
- test(S("abcde"), 6, 0, S("1234567890"), 10, 1, S("can't happen"));
- test(S("abcde"), 6, 0, S("1234567890"), 11, 0, S("can't happen"));
+TEST_CONSTEXPR_CXX20 bool test18() {
+ test(S("abcde"), 5, 1, S("12345"), 5, 1, S("abcde"));
+ test(S("abcde"), 5, 1, S("12345"), 6, 0, S("can't happen"));
+ test(S("abcde"), 5, 1, S("1234567890"), 0, 0, S("abcde"));
+ test(S("abcde"), 5, 1, S("1234567890"), 0, 1, S("abcde1"));
+ test(S("abcde"), 5, 1, S("1234567890"), 0, 5, S("abcde12345"));
+ test(S("abcde"), 5, 1, S("1234567890"), 0, 9, S("abcde123456789"));
+ test(S("abcde"), 5, 1, S("1234567890"), 0, 10, S("abcde1234567890"));
+ test(S("abcde"), 5, 1, S("1234567890"), 0, 11, S("abcde1234567890"));
+ test(S("abcde"), 5, 1, S("1234567890"), 1, 0, S("abcde"));
+ test(S("abcde"), 5, 1, S("1234567890"), 1, 1, S("abcde2"));
+ test(S("abcde"), 5, 1, S("1234567890"), 1, 4, S("abcde2345"));
+ test(S("abcde"), 5, 1, S("1234567890"), 1, 8, S("abcde23456789"));
+ test(S("abcde"), 5, 1, S("1234567890"), 1, 9, S("abcde234567890"));
+ test(S("abcde"), 5, 1, S("1234567890"), 1, 10, S("abcde234567890"));
+ test(S("abcde"), 5, 1, S("1234567890"), 5, 0, S("abcde"));
+ test(S("abcde"), 5, 1, S("1234567890"), 5, 1, S("abcde6"));
+ test(S("abcde"), 5, 1, S("1234567890"), 5, 2, S("abcde67"));
+ test(S("abcde"), 5, 1, S("1234567890"), 5, 4, S("abcde6789"));
+ test(S("abcde"), 5, 1, S("1234567890"), 5, 5, S("abcde67890"));
+ test(S("abcde"), 5, 1, S("1234567890"), 5, 6, S("abcde67890"));
+ test(S("abcde"), 5, 1, S("1234567890"), 9, 0, S("abcde"));
+ test(S("abcde"), 5, 1, S("1234567890"), 9, 1, S("abcde0"));
+ test(S("abcde"), 5, 1, S("1234567890"), 9, 2, S("abcde0"));
+ test(S("abcde"), 5, 1, S("1234567890"), 10, 0, S("abcde"));
+ test(S("abcde"), 5, 1, S("1234567890"), 10, 1, S("abcde"));
+ test(S("abcde"), 5, 1, S("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcde"), 5, 1, S("12345678901234567890"), 0, 0, S("abcde"));
+ test(S("abcde"), 5, 1, S("12345678901234567890"), 0, 1, S("abcde1"));
+ test(S("abcde"), 5, 1, S("12345678901234567890"), 0, 10, S("abcde1234567890"));
+ test(S("abcde"), 5, 1, S("12345678901234567890"), 0, 19, S("abcde1234567890123456789"));
+ test(S("abcde"), 5, 1, S("12345678901234567890"), 0, 20, S("abcde12345678901234567890"));
+ test(S("abcde"), 5, 1, S("12345678901234567890"), 0, 21, S("abcde12345678901234567890"));
+ test(S("abcde"), 5, 1, S("12345678901234567890"), 1, 0, S("abcde"));
+ test(S("abcde"), 5, 1, S("12345678901234567890"), 1, 1, S("abcde2"));
+ test(S("abcde"), 5, 1, S("12345678901234567890"), 1, 9, S("abcde234567890"));
+ test(S("abcde"), 5, 1, S("12345678901234567890"), 1, 18, S("abcde234567890123456789"));
+ test(S("abcde"), 5, 1, S("12345678901234567890"), 1, 19, S("abcde2345678901234567890"));
+ test(S("abcde"), 5, 1, S("12345678901234567890"), 1, 20, S("abcde2345678901234567890"));
+ test(S("abcde"), 5, 1, S("12345678901234567890"), 10, 0, S("abcde"));
+ test(S("abcde"), 5, 1, S("12345678901234567890"), 10, 1, S("abcde1"));
+ test(S("abcde"), 5, 1, S("12345678901234567890"), 10, 5, S("abcde12345"));
+ test(S("abcde"), 5, 1, S("12345678901234567890"), 10, 9, S("abcde123456789"));
+ test(S("abcde"), 5, 1, S("12345678901234567890"), 10, 10, S("abcde1234567890"));
+ test(S("abcde"), 5, 1, S("12345678901234567890"), 10, 11, S("abcde1234567890"));
+ test(S("abcde"), 5, 1, S("12345678901234567890"), 19, 0, S("abcde"));
+ test(S("abcde"), 5, 1, S("12345678901234567890"), 19, 1, S("abcde0"));
+ test(S("abcde"), 5, 1, S("12345678901234567890"), 19, 2, S("abcde0"));
+ test(S("abcde"), 5, 1, S("12345678901234567890"), 20, 0, S("abcde"));
+ test(S("abcde"), 5, 1, S("12345678901234567890"), 20, 1, S("abcde"));
+ test(S("abcde"), 5, 1, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcde"), 6, 0, S(""), 0, 0, S("can't happen"));
+ test(S("abcde"), 6, 0, S(""), 0, 1, S("can't happen"));
+ test(S("abcde"), 6, 0, S(""), 1, 0, S("can't happen"));
+ test(S("abcde"), 6, 0, S("12345"), 0, 0, S("can't happen"));
+ test(S("abcde"), 6, 0, S("12345"), 0, 1, S("can't happen"));
+ test(S("abcde"), 6, 0, S("12345"), 0, 2, S("can't happen"));
+ test(S("abcde"), 6, 0, S("12345"), 0, 4, S("can't happen"));
+ test(S("abcde"), 6, 0, S("12345"), 0, 5, S("can't happen"));
+ test(S("abcde"), 6, 0, S("12345"), 0, 6, S("can't happen"));
+ test(S("abcde"), 6, 0, S("12345"), 1, 0, S("can't happen"));
+ test(S("abcde"), 6, 0, S("12345"), 1, 1, S("can't happen"));
+ test(S("abcde"), 6, 0, S("12345"), 1, 2, S("can't happen"));
+ test(S("abcde"), 6, 0, S("12345"), 1, 3, S("can't happen"));
+ test(S("abcde"), 6, 0, S("12345"), 1, 4, S("can't happen"));
+ test(S("abcde"), 6, 0, S("12345"), 1, 5, S("can't happen"));
+ test(S("abcde"), 6, 0, S("12345"), 2, 0, S("can't happen"));
+ test(S("abcde"), 6, 0, S("12345"), 2, 1, S("can't happen"));
+ test(S("abcde"), 6, 0, S("12345"), 2, 2, S("can't happen"));
+ test(S("abcde"), 6, 0, S("12345"), 2, 3, S("can't happen"));
+ test(S("abcde"), 6, 0, S("12345"), 2, 4, S("can't happen"));
+ test(S("abcde"), 6, 0, S("12345"), 4, 0, S("can't happen"));
+ test(S("abcde"), 6, 0, S("12345"), 4, 1, S("can't happen"));
+ test(S("abcde"), 6, 0, S("12345"), 4, 2, S("can't happen"));
+ test(S("abcde"), 6, 0, S("12345"), 5, 0, S("can't happen"));
+ test(S("abcde"), 6, 0, S("12345"), 5, 1, S("can't happen"));
+ test(S("abcde"), 6, 0, S("12345"), 6, 0, S("can't happen"));
+ test(S("abcde"), 6, 0, S("1234567890"), 0, 0, S("can't happen"));
+ test(S("abcde"), 6, 0, S("1234567890"), 0, 1, S("can't happen"));
+ test(S("abcde"), 6, 0, S("1234567890"), 0, 5, S("can't happen"));
+ test(S("abcde"), 6, 0, S("1234567890"), 0, 9, S("can't happen"));
+ test(S("abcde"), 6, 0, S("1234567890"), 0, 10, S("can't happen"));
+ test(S("abcde"), 6, 0, S("1234567890"), 0, 11, S("can't happen"));
+ test(S("abcde"), 6, 0, S("1234567890"), 1, 0, S("can't happen"));
+ test(S("abcde"), 6, 0, S("1234567890"), 1, 1, S("can't happen"));
+ test(S("abcde"), 6, 0, S("1234567890"), 1, 4, S("can't happen"));
+ test(S("abcde"), 6, 0, S("1234567890"), 1, 8, S("can't happen"));
+ test(S("abcde"), 6, 0, S("1234567890"), 1, 9, S("can't happen"));
+ test(S("abcde"), 6, 0, S("1234567890"), 1, 10, S("can't happen"));
+ test(S("abcde"), 6, 0, S("1234567890"), 5, 0, S("can't happen"));
+ test(S("abcde"), 6, 0, S("1234567890"), 5, 1, S("can't happen"));
+ test(S("abcde"), 6, 0, S("1234567890"), 5, 2, S("can't happen"));
+ test(S("abcde"), 6, 0, S("1234567890"), 5, 4, S("can't happen"));
+ test(S("abcde"), 6, 0, S("1234567890"), 5, 5, S("can't happen"));
+ test(S("abcde"), 6, 0, S("1234567890"), 5, 6, S("can't happen"));
+ test(S("abcde"), 6, 0, S("1234567890"), 9, 0, S("can't happen"));
+ test(S("abcde"), 6, 0, S("1234567890"), 9, 1, S("can't happen"));
+ test(S("abcde"), 6, 0, S("1234567890"), 9, 2, S("can't happen"));
+ test(S("abcde"), 6, 0, S("1234567890"), 10, 0, S("can't happen"));
+ test(S("abcde"), 6, 0, S("1234567890"), 10, 1, S("can't happen"));
+ test(S("abcde"), 6, 0, S("1234567890"), 11, 0, S("can't happen"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test19()
-{
- test(S("abcde"), 6, 0, S("12345678901234567890"), 0, 0, S("can't happen"));
- test(S("abcde"), 6, 0, S("12345678901234567890"), 0, 1, S("can't happen"));
- test(S("abcde"), 6, 0, S("12345678901234567890"), 0, 10, S("can't happen"));
- test(S("abcde"), 6, 0, S("12345678901234567890"), 0, 19, S("can't happen"));
- test(S("abcde"), 6, 0, S("12345678901234567890"), 0, 20, S("can't happen"));
- test(S("abcde"), 6, 0, S("12345678901234567890"), 0, 21, S("can't happen"));
- test(S("abcde"), 6, 0, S("12345678901234567890"), 1, 0, S("can't happen"));
- test(S("abcde"), 6, 0, S("12345678901234567890"), 1, 1, S("can't happen"));
- test(S("abcde"), 6, 0, S("12345678901234567890"), 1, 9, S("can't happen"));
- test(S("abcde"), 6, 0, S("12345678901234567890"), 1, 18, S("can't happen"));
- test(S("abcde"), 6, 0, S("12345678901234567890"), 1, 19, S("can't happen"));
- test(S("abcde"), 6, 0, S("12345678901234567890"), 1, 20, S("can't happen"));
- test(S("abcde"), 6, 0, S("12345678901234567890"), 10, 0, S("can't happen"));
- test(S("abcde"), 6, 0, S("12345678901234567890"), 10, 1, S("can't happen"));
- test(S("abcde"), 6, 0, S("12345678901234567890"), 10, 5, S("can't happen"));
- test(S("abcde"), 6, 0, S("12345678901234567890"), 10, 9, S("can't happen"));
- test(S("abcde"), 6, 0, S("12345678901234567890"), 10, 10, S("can't happen"));
- test(S("abcde"), 6, 0, S("12345678901234567890"), 10, 11, S("can't happen"));
- test(S("abcde"), 6, 0, S("12345678901234567890"), 19, 0, S("can't happen"));
- test(S("abcde"), 6, 0, S("12345678901234567890"), 19, 1, S("can't happen"));
- test(S("abcde"), 6, 0, S("12345678901234567890"), 19, 2, S("can't happen"));
- test(S("abcde"), 6, 0, S("12345678901234567890"), 20, 0, S("can't happen"));
- test(S("abcde"), 6, 0, S("12345678901234567890"), 20, 1, S("can't happen"));
- test(S("abcde"), 6, 0, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghij"), 0, 0, S(""), 0, 0, S("abcdefghij"));
- test(S("abcdefghij"), 0, 0, S(""), 0, 1, S("abcdefghij"));
- test(S("abcdefghij"), 0, 0, S(""), 1, 0, S("can't happen"));
- test(S("abcdefghij"), 0, 0, S("12345"), 0, 0, S("abcdefghij"));
- test(S("abcdefghij"), 0, 0, S("12345"), 0, 1, S("1abcdefghij"));
- test(S("abcdefghij"), 0, 0, S("12345"), 0, 2, S("12abcdefghij"));
- test(S("abcdefghij"), 0, 0, S("12345"), 0, 4, S("1234abcdefghij"));
- test(S("abcdefghij"), 0, 0, S("12345"), 0, 5, S("12345abcdefghij"));
- test(S("abcdefghij"), 0, 0, S("12345"), 0, 6, S("12345abcdefghij"));
- test(S("abcdefghij"), 0, 0, S("12345"), 1, 0, S("abcdefghij"));
- test(S("abcdefghij"), 0, 0, S("12345"), 1, 1, S("2abcdefghij"));
- test(S("abcdefghij"), 0, 0, S("12345"), 1, 2, S("23abcdefghij"));
- test(S("abcdefghij"), 0, 0, S("12345"), 1, 3, S("234abcdefghij"));
- test(S("abcdefghij"), 0, 0, S("12345"), 1, 4, S("2345abcdefghij"));
- test(S("abcdefghij"), 0, 0, S("12345"), 1, 5, S("2345abcdefghij"));
- test(S("abcdefghij"), 0, 0, S("12345"), 2, 0, S("abcdefghij"));
- test(S("abcdefghij"), 0, 0, S("12345"), 2, 1, S("3abcdefghij"));
- test(S("abcdefghij"), 0, 0, S("12345"), 2, 2, S("34abcdefghij"));
- test(S("abcdefghij"), 0, 0, S("12345"), 2, 3, S("345abcdefghij"));
- test(S("abcdefghij"), 0, 0, S("12345"), 2, 4, S("345abcdefghij"));
- test(S("abcdefghij"), 0, 0, S("12345"), 4, 0, S("abcdefghij"));
- test(S("abcdefghij"), 0, 0, S("12345"), 4, 1, S("5abcdefghij"));
- test(S("abcdefghij"), 0, 0, S("12345"), 4, 2, S("5abcdefghij"));
- test(S("abcdefghij"), 0, 0, S("12345"), 5, 0, S("abcdefghij"));
- test(S("abcdefghij"), 0, 0, S("12345"), 5, 1, S("abcdefghij"));
- test(S("abcdefghij"), 0, 0, S("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghij"), 0, 0, S("1234567890"), 0, 0, S("abcdefghij"));
- test(S("abcdefghij"), 0, 0, S("1234567890"), 0, 1, S("1abcdefghij"));
- test(S("abcdefghij"), 0, 0, S("1234567890"), 0, 5, S("12345abcdefghij"));
- test(S("abcdefghij"), 0, 0, S("1234567890"), 0, 9, S("123456789abcdefghij"));
- test(S("abcdefghij"), 0, 0, S("1234567890"), 0, 10, S("1234567890abcdefghij"));
- test(S("abcdefghij"), 0, 0, S("1234567890"), 0, 11, S("1234567890abcdefghij"));
- test(S("abcdefghij"), 0, 0, S("1234567890"), 1, 0, S("abcdefghij"));
- test(S("abcdefghij"), 0, 0, S("1234567890"), 1, 1, S("2abcdefghij"));
- test(S("abcdefghij"), 0, 0, S("1234567890"), 1, 4, S("2345abcdefghij"));
- test(S("abcdefghij"), 0, 0, S("1234567890"), 1, 8, S("23456789abcdefghij"));
- test(S("abcdefghij"), 0, 0, S("1234567890"), 1, 9, S("234567890abcdefghij"));
- test(S("abcdefghij"), 0, 0, S("1234567890"), 1, 10, S("234567890abcdefghij"));
- test(S("abcdefghij"), 0, 0, S("1234567890"), 5, 0, S("abcdefghij"));
- test(S("abcdefghij"), 0, 0, S("1234567890"), 5, 1, S("6abcdefghij"));
- test(S("abcdefghij"), 0, 0, S("1234567890"), 5, 2, S("67abcdefghij"));
- test(S("abcdefghij"), 0, 0, S("1234567890"), 5, 4, S("6789abcdefghij"));
- test(S("abcdefghij"), 0, 0, S("1234567890"), 5, 5, S("67890abcdefghij"));
- test(S("abcdefghij"), 0, 0, S("1234567890"), 5, 6, S("67890abcdefghij"));
- test(S("abcdefghij"), 0, 0, S("1234567890"), 9, 0, S("abcdefghij"));
- test(S("abcdefghij"), 0, 0, S("1234567890"), 9, 1, S("0abcdefghij"));
- test(S("abcdefghij"), 0, 0, S("1234567890"), 9, 2, S("0abcdefghij"));
- test(S("abcdefghij"), 0, 0, S("1234567890"), 10, 0, S("abcdefghij"));
- test(S("abcdefghij"), 0, 0, S("1234567890"), 10, 1, S("abcdefghij"));
- test(S("abcdefghij"), 0, 0, S("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghij"), 0, 0, S("12345678901234567890"), 0, 0, S("abcdefghij"));
- test(S("abcdefghij"), 0, 0, S("12345678901234567890"), 0, 1, S("1abcdefghij"));
- test(S("abcdefghij"), 0, 0, S("12345678901234567890"), 0, 10, S("1234567890abcdefghij"));
- test(S("abcdefghij"), 0, 0, S("12345678901234567890"), 0, 19, S("1234567890123456789abcdefghij"));
- test(S("abcdefghij"), 0, 0, S("12345678901234567890"), 0, 20, S("12345678901234567890abcdefghij"));
- test(S("abcdefghij"), 0, 0, S("12345678901234567890"), 0, 21, S("12345678901234567890abcdefghij"));
- test(S("abcdefghij"), 0, 0, S("12345678901234567890"), 1, 0, S("abcdefghij"));
- test(S("abcdefghij"), 0, 0, S("12345678901234567890"), 1, 1, S("2abcdefghij"));
- test(S("abcdefghij"), 0, 0, S("12345678901234567890"), 1, 9, S("234567890abcdefghij"));
- test(S("abcdefghij"), 0, 0, S("12345678901234567890"), 1, 18, S("234567890123456789abcdefghij"));
- test(S("abcdefghij"), 0, 0, S("12345678901234567890"), 1, 19, S("2345678901234567890abcdefghij"));
- test(S("abcdefghij"), 0, 0, S("12345678901234567890"), 1, 20, S("2345678901234567890abcdefghij"));
- test(S("abcdefghij"), 0, 0, S("12345678901234567890"), 10, 0, S("abcdefghij"));
- test(S("abcdefghij"), 0, 0, S("12345678901234567890"), 10, 1, S("1abcdefghij"));
- test(S("abcdefghij"), 0, 0, S("12345678901234567890"), 10, 5, S("12345abcdefghij"));
- test(S("abcdefghij"), 0, 0, S("12345678901234567890"), 10, 9, S("123456789abcdefghij"));
- test(S("abcdefghij"), 0, 0, S("12345678901234567890"), 10, 10, S("1234567890abcdefghij"));
- test(S("abcdefghij"), 0, 0, S("12345678901234567890"), 10, 11, S("1234567890abcdefghij"));
- test(S("abcdefghij"), 0, 0, S("12345678901234567890"), 19, 0, S("abcdefghij"));
- test(S("abcdefghij"), 0, 0, S("12345678901234567890"), 19, 1, S("0abcdefghij"));
- test(S("abcdefghij"), 0, 0, S("12345678901234567890"), 19, 2, S("0abcdefghij"));
- test(S("abcdefghij"), 0, 0, S("12345678901234567890"), 20, 0, S("abcdefghij"));
- test(S("abcdefghij"), 0, 0, S("12345678901234567890"), 20, 1, S("abcdefghij"));
- test(S("abcdefghij"), 0, 0, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghij"), 0, 1, S(""), 0, 0, S("bcdefghij"));
- test(S("abcdefghij"), 0, 1, S(""), 0, 1, S("bcdefghij"));
+TEST_CONSTEXPR_CXX20 bool test19() {
+ test(S("abcde"), 6, 0, S("12345678901234567890"), 0, 0, S("can't happen"));
+ test(S("abcde"), 6, 0, S("12345678901234567890"), 0, 1, S("can't happen"));
+ test(S("abcde"), 6, 0, S("12345678901234567890"), 0, 10, S("can't happen"));
+ test(S("abcde"), 6, 0, S("12345678901234567890"), 0, 19, S("can't happen"));
+ test(S("abcde"), 6, 0, S("12345678901234567890"), 0, 20, S("can't happen"));
+ test(S("abcde"), 6, 0, S("12345678901234567890"), 0, 21, S("can't happen"));
+ test(S("abcde"), 6, 0, S("12345678901234567890"), 1, 0, S("can't happen"));
+ test(S("abcde"), 6, 0, S("12345678901234567890"), 1, 1, S("can't happen"));
+ test(S("abcde"), 6, 0, S("12345678901234567890"), 1, 9, S("can't happen"));
+ test(S("abcde"), 6, 0, S("12345678901234567890"), 1, 18, S("can't happen"));
+ test(S("abcde"), 6, 0, S("12345678901234567890"), 1, 19, S("can't happen"));
+ test(S("abcde"), 6, 0, S("12345678901234567890"), 1, 20, S("can't happen"));
+ test(S("abcde"), 6, 0, S("12345678901234567890"), 10, 0, S("can't happen"));
+ test(S("abcde"), 6, 0, S("12345678901234567890"), 10, 1, S("can't happen"));
+ test(S("abcde"), 6, 0, S("12345678901234567890"), 10, 5, S("can't happen"));
+ test(S("abcde"), 6, 0, S("12345678901234567890"), 10, 9, S("can't happen"));
+ test(S("abcde"), 6, 0, S("12345678901234567890"), 10, 10, S("can't happen"));
+ test(S("abcde"), 6, 0, S("12345678901234567890"), 10, 11, S("can't happen"));
+ test(S("abcde"), 6, 0, S("12345678901234567890"), 19, 0, S("can't happen"));
+ test(S("abcde"), 6, 0, S("12345678901234567890"), 19, 1, S("can't happen"));
+ test(S("abcde"), 6, 0, S("12345678901234567890"), 19, 2, S("can't happen"));
+ test(S("abcde"), 6, 0, S("12345678901234567890"), 20, 0, S("can't happen"));
+ test(S("abcde"), 6, 0, S("12345678901234567890"), 20, 1, S("can't happen"));
+ test(S("abcde"), 6, 0, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghij"), 0, 0, S(""), 0, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 0, 0, S(""), 0, 1, S("abcdefghij"));
+ test(S("abcdefghij"), 0, 0, S(""), 1, 0, S("can't happen"));
+ test(S("abcdefghij"), 0, 0, S("12345"), 0, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 0, 0, S("12345"), 0, 1, S("1abcdefghij"));
+ test(S("abcdefghij"), 0, 0, S("12345"), 0, 2, S("12abcdefghij"));
+ test(S("abcdefghij"), 0, 0, S("12345"), 0, 4, S("1234abcdefghij"));
+ test(S("abcdefghij"), 0, 0, S("12345"), 0, 5, S("12345abcdefghij"));
+ test(S("abcdefghij"), 0, 0, S("12345"), 0, 6, S("12345abcdefghij"));
+ test(S("abcdefghij"), 0, 0, S("12345"), 1, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 0, 0, S("12345"), 1, 1, S("2abcdefghij"));
+ test(S("abcdefghij"), 0, 0, S("12345"), 1, 2, S("23abcdefghij"));
+ test(S("abcdefghij"), 0, 0, S("12345"), 1, 3, S("234abcdefghij"));
+ test(S("abcdefghij"), 0, 0, S("12345"), 1, 4, S("2345abcdefghij"));
+ test(S("abcdefghij"), 0, 0, S("12345"), 1, 5, S("2345abcdefghij"));
+ test(S("abcdefghij"), 0, 0, S("12345"), 2, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 0, 0, S("12345"), 2, 1, S("3abcdefghij"));
+ test(S("abcdefghij"), 0, 0, S("12345"), 2, 2, S("34abcdefghij"));
+ test(S("abcdefghij"), 0, 0, S("12345"), 2, 3, S("345abcdefghij"));
+ test(S("abcdefghij"), 0, 0, S("12345"), 2, 4, S("345abcdefghij"));
+ test(S("abcdefghij"), 0, 0, S("12345"), 4, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 0, 0, S("12345"), 4, 1, S("5abcdefghij"));
+ test(S("abcdefghij"), 0, 0, S("12345"), 4, 2, S("5abcdefghij"));
+ test(S("abcdefghij"), 0, 0, S("12345"), 5, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 0, 0, S("12345"), 5, 1, S("abcdefghij"));
+ test(S("abcdefghij"), 0, 0, S("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghij"), 0, 0, S("1234567890"), 0, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 0, 0, S("1234567890"), 0, 1, S("1abcdefghij"));
+ test(S("abcdefghij"), 0, 0, S("1234567890"), 0, 5, S("12345abcdefghij"));
+ test(S("abcdefghij"), 0, 0, S("1234567890"), 0, 9, S("123456789abcdefghij"));
+ test(S("abcdefghij"), 0, 0, S("1234567890"), 0, 10, S("1234567890abcdefghij"));
+ test(S("abcdefghij"), 0, 0, S("1234567890"), 0, 11, S("1234567890abcdefghij"));
+ test(S("abcdefghij"), 0, 0, S("1234567890"), 1, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 0, 0, S("1234567890"), 1, 1, S("2abcdefghij"));
+ test(S("abcdefghij"), 0, 0, S("1234567890"), 1, 4, S("2345abcdefghij"));
+ test(S("abcdefghij"), 0, 0, S("1234567890"), 1, 8, S("23456789abcdefghij"));
+ test(S("abcdefghij"), 0, 0, S("1234567890"), 1, 9, S("234567890abcdefghij"));
+ test(S("abcdefghij"), 0, 0, S("1234567890"), 1, 10, S("234567890abcdefghij"));
+ test(S("abcdefghij"), 0, 0, S("1234567890"), 5, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 0, 0, S("1234567890"), 5, 1, S("6abcdefghij"));
+ test(S("abcdefghij"), 0, 0, S("1234567890"), 5, 2, S("67abcdefghij"));
+ test(S("abcdefghij"), 0, 0, S("1234567890"), 5, 4, S("6789abcdefghij"));
+ test(S("abcdefghij"), 0, 0, S("1234567890"), 5, 5, S("67890abcdefghij"));
+ test(S("abcdefghij"), 0, 0, S("1234567890"), 5, 6, S("67890abcdefghij"));
+ test(S("abcdefghij"), 0, 0, S("1234567890"), 9, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 0, 0, S("1234567890"), 9, 1, S("0abcdefghij"));
+ test(S("abcdefghij"), 0, 0, S("1234567890"), 9, 2, S("0abcdefghij"));
+ test(S("abcdefghij"), 0, 0, S("1234567890"), 10, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 0, 0, S("1234567890"), 10, 1, S("abcdefghij"));
+ test(S("abcdefghij"), 0, 0, S("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghij"), 0, 0, S("12345678901234567890"), 0, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 0, 0, S("12345678901234567890"), 0, 1, S("1abcdefghij"));
+ test(S("abcdefghij"), 0, 0, S("12345678901234567890"), 0, 10, S("1234567890abcdefghij"));
+ test(S("abcdefghij"), 0, 0, S("12345678901234567890"), 0, 19, S("1234567890123456789abcdefghij"));
+ test(S("abcdefghij"), 0, 0, S("12345678901234567890"), 0, 20, S("12345678901234567890abcdefghij"));
+ test(S("abcdefghij"), 0, 0, S("12345678901234567890"), 0, 21, S("12345678901234567890abcdefghij"));
+ test(S("abcdefghij"), 0, 0, S("12345678901234567890"), 1, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 0, 0, S("12345678901234567890"), 1, 1, S("2abcdefghij"));
+ test(S("abcdefghij"), 0, 0, S("12345678901234567890"), 1, 9, S("234567890abcdefghij"));
+ test(S("abcdefghij"), 0, 0, S("12345678901234567890"), 1, 18, S("234567890123456789abcdefghij"));
+ test(S("abcdefghij"), 0, 0, S("12345678901234567890"), 1, 19, S("2345678901234567890abcdefghij"));
+ test(S("abcdefghij"), 0, 0, S("12345678901234567890"), 1, 20, S("2345678901234567890abcdefghij"));
+ test(S("abcdefghij"), 0, 0, S("12345678901234567890"), 10, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 0, 0, S("12345678901234567890"), 10, 1, S("1abcdefghij"));
+ test(S("abcdefghij"), 0, 0, S("12345678901234567890"), 10, 5, S("12345abcdefghij"));
+ test(S("abcdefghij"), 0, 0, S("12345678901234567890"), 10, 9, S("123456789abcdefghij"));
+ test(S("abcdefghij"), 0, 0, S("12345678901234567890"), 10, 10, S("1234567890abcdefghij"));
+ test(S("abcdefghij"), 0, 0, S("12345678901234567890"), 10, 11, S("1234567890abcdefghij"));
+ test(S("abcdefghij"), 0, 0, S("12345678901234567890"), 19, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 0, 0, S("12345678901234567890"), 19, 1, S("0abcdefghij"));
+ test(S("abcdefghij"), 0, 0, S("12345678901234567890"), 19, 2, S("0abcdefghij"));
+ test(S("abcdefghij"), 0, 0, S("12345678901234567890"), 20, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 0, 0, S("12345678901234567890"), 20, 1, S("abcdefghij"));
+ test(S("abcdefghij"), 0, 0, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghij"), 0, 1, S(""), 0, 0, S("bcdefghij"));
+ test(S("abcdefghij"), 0, 1, S(""), 0, 1, S("bcdefghij"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test20()
-{
- test(S("abcdefghij"), 0, 1, S(""), 1, 0, S("can't happen"));
- test(S("abcdefghij"), 0, 1, S("12345"), 0, 0, S("bcdefghij"));
- test(S("abcdefghij"), 0, 1, S("12345"), 0, 1, S("1bcdefghij"));
- test(S("abcdefghij"), 0, 1, S("12345"), 0, 2, S("12bcdefghij"));
- test(S("abcdefghij"), 0, 1, S("12345"), 0, 4, S("1234bcdefghij"));
- test(S("abcdefghij"), 0, 1, S("12345"), 0, 5, S("12345bcdefghij"));
- test(S("abcdefghij"), 0, 1, S("12345"), 0, 6, S("12345bcdefghij"));
- test(S("abcdefghij"), 0, 1, S("12345"), 1, 0, S("bcdefghij"));
- test(S("abcdefghij"), 0, 1, S("12345"), 1, 1, S("2bcdefghij"));
- test(S("abcdefghij"), 0, 1, S("12345"), 1, 2, S("23bcdefghij"));
- test(S("abcdefghij"), 0, 1, S("12345"), 1, 3, S("234bcdefghij"));
- test(S("abcdefghij"), 0, 1, S("12345"), 1, 4, S("2345bcdefghij"));
- test(S("abcdefghij"), 0, 1, S("12345"), 1, 5, S("2345bcdefghij"));
- test(S("abcdefghij"), 0, 1, S("12345"), 2, 0, S("bcdefghij"));
- test(S("abcdefghij"), 0, 1, S("12345"), 2, 1, S("3bcdefghij"));
- test(S("abcdefghij"), 0, 1, S("12345"), 2, 2, S("34bcdefghij"));
- test(S("abcdefghij"), 0, 1, S("12345"), 2, 3, S("345bcdefghij"));
- test(S("abcdefghij"), 0, 1, S("12345"), 2, 4, S("345bcdefghij"));
- test(S("abcdefghij"), 0, 1, S("12345"), 4, 0, S("bcdefghij"));
- test(S("abcdefghij"), 0, 1, S("12345"), 4, 1, S("5bcdefghij"));
- test(S("abcdefghij"), 0, 1, S("12345"), 4, 2, S("5bcdefghij"));
- test(S("abcdefghij"), 0, 1, S("12345"), 5, 0, S("bcdefghij"));
- test(S("abcdefghij"), 0, 1, S("12345"), 5, 1, S("bcdefghij"));
- test(S("abcdefghij"), 0, 1, S("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghij"), 0, 1, S("1234567890"), 0, 0, S("bcdefghij"));
- test(S("abcdefghij"), 0, 1, S("1234567890"), 0, 1, S("1bcdefghij"));
- test(S("abcdefghij"), 0, 1, S("1234567890"), 0, 5, S("12345bcdefghij"));
- test(S("abcdefghij"), 0, 1, S("1234567890"), 0, 9, S("123456789bcdefghij"));
- test(S("abcdefghij"), 0, 1, S("1234567890"), 0, 10, S("1234567890bcdefghij"));
- test(S("abcdefghij"), 0, 1, S("1234567890"), 0, 11, S("1234567890bcdefghij"));
- test(S("abcdefghij"), 0, 1, S("1234567890"), 1, 0, S("bcdefghij"));
- test(S("abcdefghij"), 0, 1, S("1234567890"), 1, 1, S("2bcdefghij"));
- test(S("abcdefghij"), 0, 1, S("1234567890"), 1, 4, S("2345bcdefghij"));
- test(S("abcdefghij"), 0, 1, S("1234567890"), 1, 8, S("23456789bcdefghij"));
- test(S("abcdefghij"), 0, 1, S("1234567890"), 1, 9, S("234567890bcdefghij"));
- test(S("abcdefghij"), 0, 1, S("1234567890"), 1, 10, S("234567890bcdefghij"));
- test(S("abcdefghij"), 0, 1, S("1234567890"), 5, 0, S("bcdefghij"));
- test(S("abcdefghij"), 0, 1, S("1234567890"), 5, 1, S("6bcdefghij"));
- test(S("abcdefghij"), 0, 1, S("1234567890"), 5, 2, S("67bcdefghij"));
- test(S("abcdefghij"), 0, 1, S("1234567890"), 5, 4, S("6789bcdefghij"));
- test(S("abcdefghij"), 0, 1, S("1234567890"), 5, 5, S("67890bcdefghij"));
- test(S("abcdefghij"), 0, 1, S("1234567890"), 5, 6, S("67890bcdefghij"));
- test(S("abcdefghij"), 0, 1, S("1234567890"), 9, 0, S("bcdefghij"));
- test(S("abcdefghij"), 0, 1, S("1234567890"), 9, 1, S("0bcdefghij"));
- test(S("abcdefghij"), 0, 1, S("1234567890"), 9, 2, S("0bcdefghij"));
- test(S("abcdefghij"), 0, 1, S("1234567890"), 10, 0, S("bcdefghij"));
- test(S("abcdefghij"), 0, 1, S("1234567890"), 10, 1, S("bcdefghij"));
- test(S("abcdefghij"), 0, 1, S("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghij"), 0, 1, S("12345678901234567890"), 0, 0, S("bcdefghij"));
- test(S("abcdefghij"), 0, 1, S("12345678901234567890"), 0, 1, S("1bcdefghij"));
- test(S("abcdefghij"), 0, 1, S("12345678901234567890"), 0, 10, S("1234567890bcdefghij"));
- test(S("abcdefghij"), 0, 1, S("12345678901234567890"), 0, 19, S("1234567890123456789bcdefghij"));
- test(S("abcdefghij"), 0, 1, S("12345678901234567890"), 0, 20, S("12345678901234567890bcdefghij"));
- test(S("abcdefghij"), 0, 1, S("12345678901234567890"), 0, 21, S("12345678901234567890bcdefghij"));
- test(S("abcdefghij"), 0, 1, S("12345678901234567890"), 1, 0, S("bcdefghij"));
- test(S("abcdefghij"), 0, 1, S("12345678901234567890"), 1, 1, S("2bcdefghij"));
- test(S("abcdefghij"), 0, 1, S("12345678901234567890"), 1, 9, S("234567890bcdefghij"));
- test(S("abcdefghij"), 0, 1, S("12345678901234567890"), 1, 18, S("234567890123456789bcdefghij"));
- test(S("abcdefghij"), 0, 1, S("12345678901234567890"), 1, 19, S("2345678901234567890bcdefghij"));
- test(S("abcdefghij"), 0, 1, S("12345678901234567890"), 1, 20, S("2345678901234567890bcdefghij"));
- test(S("abcdefghij"), 0, 1, S("12345678901234567890"), 10, 0, S("bcdefghij"));
- test(S("abcdefghij"), 0, 1, S("12345678901234567890"), 10, 1, S("1bcdefghij"));
- test(S("abcdefghij"), 0, 1, S("12345678901234567890"), 10, 5, S("12345bcdefghij"));
- test(S("abcdefghij"), 0, 1, S("12345678901234567890"), 10, 9, S("123456789bcdefghij"));
- test(S("abcdefghij"), 0, 1, S("12345678901234567890"), 10, 10, S("1234567890bcdefghij"));
- test(S("abcdefghij"), 0, 1, S("12345678901234567890"), 10, 11, S("1234567890bcdefghij"));
- test(S("abcdefghij"), 0, 1, S("12345678901234567890"), 19, 0, S("bcdefghij"));
- test(S("abcdefghij"), 0, 1, S("12345678901234567890"), 19, 1, S("0bcdefghij"));
- test(S("abcdefghij"), 0, 1, S("12345678901234567890"), 19, 2, S("0bcdefghij"));
- test(S("abcdefghij"), 0, 1, S("12345678901234567890"), 20, 0, S("bcdefghij"));
- test(S("abcdefghij"), 0, 1, S("12345678901234567890"), 20, 1, S("bcdefghij"));
- test(S("abcdefghij"), 0, 1, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghij"), 0, 5, S(""), 0, 0, S("fghij"));
- test(S("abcdefghij"), 0, 5, S(""), 0, 1, S("fghij"));
- test(S("abcdefghij"), 0, 5, S(""), 1, 0, S("can't happen"));
- test(S("abcdefghij"), 0, 5, S("12345"), 0, 0, S("fghij"));
- test(S("abcdefghij"), 0, 5, S("12345"), 0, 1, S("1fghij"));
- test(S("abcdefghij"), 0, 5, S("12345"), 0, 2, S("12fghij"));
- test(S("abcdefghij"), 0, 5, S("12345"), 0, 4, S("1234fghij"));
- test(S("abcdefghij"), 0, 5, S("12345"), 0, 5, S("12345fghij"));
- test(S("abcdefghij"), 0, 5, S("12345"), 0, 6, S("12345fghij"));
- test(S("abcdefghij"), 0, 5, S("12345"), 1, 0, S("fghij"));
- test(S("abcdefghij"), 0, 5, S("12345"), 1, 1, S("2fghij"));
- test(S("abcdefghij"), 0, 5, S("12345"), 1, 2, S("23fghij"));
- test(S("abcdefghij"), 0, 5, S("12345"), 1, 3, S("234fghij"));
- test(S("abcdefghij"), 0, 5, S("12345"), 1, 4, S("2345fghij"));
- test(S("abcdefghij"), 0, 5, S("12345"), 1, 5, S("2345fghij"));
- test(S("abcdefghij"), 0, 5, S("12345"), 2, 0, S("fghij"));
- test(S("abcdefghij"), 0, 5, S("12345"), 2, 1, S("3fghij"));
- test(S("abcdefghij"), 0, 5, S("12345"), 2, 2, S("34fghij"));
- test(S("abcdefghij"), 0, 5, S("12345"), 2, 3, S("345fghij"));
- test(S("abcdefghij"), 0, 5, S("12345"), 2, 4, S("345fghij"));
- test(S("abcdefghij"), 0, 5, S("12345"), 4, 0, S("fghij"));
- test(S("abcdefghij"), 0, 5, S("12345"), 4, 1, S("5fghij"));
- test(S("abcdefghij"), 0, 5, S("12345"), 4, 2, S("5fghij"));
- test(S("abcdefghij"), 0, 5, S("12345"), 5, 0, S("fghij"));
- test(S("abcdefghij"), 0, 5, S("12345"), 5, 1, S("fghij"));
- test(S("abcdefghij"), 0, 5, S("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghij"), 0, 5, S("1234567890"), 0, 0, S("fghij"));
- test(S("abcdefghij"), 0, 5, S("1234567890"), 0, 1, S("1fghij"));
+TEST_CONSTEXPR_CXX20 bool test20() {
+ test(S("abcdefghij"), 0, 1, S(""), 1, 0, S("can't happen"));
+ test(S("abcdefghij"), 0, 1, S("12345"), 0, 0, S("bcdefghij"));
+ test(S("abcdefghij"), 0, 1, S("12345"), 0, 1, S("1bcdefghij"));
+ test(S("abcdefghij"), 0, 1, S("12345"), 0, 2, S("12bcdefghij"));
+ test(S("abcdefghij"), 0, 1, S("12345"), 0, 4, S("1234bcdefghij"));
+ test(S("abcdefghij"), 0, 1, S("12345"), 0, 5, S("12345bcdefghij"));
+ test(S("abcdefghij"), 0, 1, S("12345"), 0, 6, S("12345bcdefghij"));
+ test(S("abcdefghij"), 0, 1, S("12345"), 1, 0, S("bcdefghij"));
+ test(S("abcdefghij"), 0, 1, S("12345"), 1, 1, S("2bcdefghij"));
+ test(S("abcdefghij"), 0, 1, S("12345"), 1, 2, S("23bcdefghij"));
+ test(S("abcdefghij"), 0, 1, S("12345"), 1, 3, S("234bcdefghij"));
+ test(S("abcdefghij"), 0, 1, S("12345"), 1, 4, S("2345bcdefghij"));
+ test(S("abcdefghij"), 0, 1, S("12345"), 1, 5, S("2345bcdefghij"));
+ test(S("abcdefghij"), 0, 1, S("12345"), 2, 0, S("bcdefghij"));
+ test(S("abcdefghij"), 0, 1, S("12345"), 2, 1, S("3bcdefghij"));
+ test(S("abcdefghij"), 0, 1, S("12345"), 2, 2, S("34bcdefghij"));
+ test(S("abcdefghij"), 0, 1, S("12345"), 2, 3, S("345bcdefghij"));
+ test(S("abcdefghij"), 0, 1, S("12345"), 2, 4, S("345bcdefghij"));
+ test(S("abcdefghij"), 0, 1, S("12345"), 4, 0, S("bcdefghij"));
+ test(S("abcdefghij"), 0, 1, S("12345"), 4, 1, S("5bcdefghij"));
+ test(S("abcdefghij"), 0, 1, S("12345"), 4, 2, S("5bcdefghij"));
+ test(S("abcdefghij"), 0, 1, S("12345"), 5, 0, S("bcdefghij"));
+ test(S("abcdefghij"), 0, 1, S("12345"), 5, 1, S("bcdefghij"));
+ test(S("abcdefghij"), 0, 1, S("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghij"), 0, 1, S("1234567890"), 0, 0, S("bcdefghij"));
+ test(S("abcdefghij"), 0, 1, S("1234567890"), 0, 1, S("1bcdefghij"));
+ test(S("abcdefghij"), 0, 1, S("1234567890"), 0, 5, S("12345bcdefghij"));
+ test(S("abcdefghij"), 0, 1, S("1234567890"), 0, 9, S("123456789bcdefghij"));
+ test(S("abcdefghij"), 0, 1, S("1234567890"), 0, 10, S("1234567890bcdefghij"));
+ test(S("abcdefghij"), 0, 1, S("1234567890"), 0, 11, S("1234567890bcdefghij"));
+ test(S("abcdefghij"), 0, 1, S("1234567890"), 1, 0, S("bcdefghij"));
+ test(S("abcdefghij"), 0, 1, S("1234567890"), 1, 1, S("2bcdefghij"));
+ test(S("abcdefghij"), 0, 1, S("1234567890"), 1, 4, S("2345bcdefghij"));
+ test(S("abcdefghij"), 0, 1, S("1234567890"), 1, 8, S("23456789bcdefghij"));
+ test(S("abcdefghij"), 0, 1, S("1234567890"), 1, 9, S("234567890bcdefghij"));
+ test(S("abcdefghij"), 0, 1, S("1234567890"), 1, 10, S("234567890bcdefghij"));
+ test(S("abcdefghij"), 0, 1, S("1234567890"), 5, 0, S("bcdefghij"));
+ test(S("abcdefghij"), 0, 1, S("1234567890"), 5, 1, S("6bcdefghij"));
+ test(S("abcdefghij"), 0, 1, S("1234567890"), 5, 2, S("67bcdefghij"));
+ test(S("abcdefghij"), 0, 1, S("1234567890"), 5, 4, S("6789bcdefghij"));
+ test(S("abcdefghij"), 0, 1, S("1234567890"), 5, 5, S("67890bcdefghij"));
+ test(S("abcdefghij"), 0, 1, S("1234567890"), 5, 6, S("67890bcdefghij"));
+ test(S("abcdefghij"), 0, 1, S("1234567890"), 9, 0, S("bcdefghij"));
+ test(S("abcdefghij"), 0, 1, S("1234567890"), 9, 1, S("0bcdefghij"));
+ test(S("abcdefghij"), 0, 1, S("1234567890"), 9, 2, S("0bcdefghij"));
+ test(S("abcdefghij"), 0, 1, S("1234567890"), 10, 0, S("bcdefghij"));
+ test(S("abcdefghij"), 0, 1, S("1234567890"), 10, 1, S("bcdefghij"));
+ test(S("abcdefghij"), 0, 1, S("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghij"), 0, 1, S("12345678901234567890"), 0, 0, S("bcdefghij"));
+ test(S("abcdefghij"), 0, 1, S("12345678901234567890"), 0, 1, S("1bcdefghij"));
+ test(S("abcdefghij"), 0, 1, S("12345678901234567890"), 0, 10, S("1234567890bcdefghij"));
+ test(S("abcdefghij"), 0, 1, S("12345678901234567890"), 0, 19, S("1234567890123456789bcdefghij"));
+ test(S("abcdefghij"), 0, 1, S("12345678901234567890"), 0, 20, S("12345678901234567890bcdefghij"));
+ test(S("abcdefghij"), 0, 1, S("12345678901234567890"), 0, 21, S("12345678901234567890bcdefghij"));
+ test(S("abcdefghij"), 0, 1, S("12345678901234567890"), 1, 0, S("bcdefghij"));
+ test(S("abcdefghij"), 0, 1, S("12345678901234567890"), 1, 1, S("2bcdefghij"));
+ test(S("abcdefghij"), 0, 1, S("12345678901234567890"), 1, 9, S("234567890bcdefghij"));
+ test(S("abcdefghij"), 0, 1, S("12345678901234567890"), 1, 18, S("234567890123456789bcdefghij"));
+ test(S("abcdefghij"), 0, 1, S("12345678901234567890"), 1, 19, S("2345678901234567890bcdefghij"));
+ test(S("abcdefghij"), 0, 1, S("12345678901234567890"), 1, 20, S("2345678901234567890bcdefghij"));
+ test(S("abcdefghij"), 0, 1, S("12345678901234567890"), 10, 0, S("bcdefghij"));
+ test(S("abcdefghij"), 0, 1, S("12345678901234567890"), 10, 1, S("1bcdefghij"));
+ test(S("abcdefghij"), 0, 1, S("12345678901234567890"), 10, 5, S("12345bcdefghij"));
+ test(S("abcdefghij"), 0, 1, S("12345678901234567890"), 10, 9, S("123456789bcdefghij"));
+ test(S("abcdefghij"), 0, 1, S("12345678901234567890"), 10, 10, S("1234567890bcdefghij"));
+ test(S("abcdefghij"), 0, 1, S("12345678901234567890"), 10, 11, S("1234567890bcdefghij"));
+ test(S("abcdefghij"), 0, 1, S("12345678901234567890"), 19, 0, S("bcdefghij"));
+ test(S("abcdefghij"), 0, 1, S("12345678901234567890"), 19, 1, S("0bcdefghij"));
+ test(S("abcdefghij"), 0, 1, S("12345678901234567890"), 19, 2, S("0bcdefghij"));
+ test(S("abcdefghij"), 0, 1, S("12345678901234567890"), 20, 0, S("bcdefghij"));
+ test(S("abcdefghij"), 0, 1, S("12345678901234567890"), 20, 1, S("bcdefghij"));
+ test(S("abcdefghij"), 0, 1, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghij"), 0, 5, S(""), 0, 0, S("fghij"));
+ test(S("abcdefghij"), 0, 5, S(""), 0, 1, S("fghij"));
+ test(S("abcdefghij"), 0, 5, S(""), 1, 0, S("can't happen"));
+ test(S("abcdefghij"), 0, 5, S("12345"), 0, 0, S("fghij"));
+ test(S("abcdefghij"), 0, 5, S("12345"), 0, 1, S("1fghij"));
+ test(S("abcdefghij"), 0, 5, S("12345"), 0, 2, S("12fghij"));
+ test(S("abcdefghij"), 0, 5, S("12345"), 0, 4, S("1234fghij"));
+ test(S("abcdefghij"), 0, 5, S("12345"), 0, 5, S("12345fghij"));
+ test(S("abcdefghij"), 0, 5, S("12345"), 0, 6, S("12345fghij"));
+ test(S("abcdefghij"), 0, 5, S("12345"), 1, 0, S("fghij"));
+ test(S("abcdefghij"), 0, 5, S("12345"), 1, 1, S("2fghij"));
+ test(S("abcdefghij"), 0, 5, S("12345"), 1, 2, S("23fghij"));
+ test(S("abcdefghij"), 0, 5, S("12345"), 1, 3, S("234fghij"));
+ test(S("abcdefghij"), 0, 5, S("12345"), 1, 4, S("2345fghij"));
+ test(S("abcdefghij"), 0, 5, S("12345"), 1, 5, S("2345fghij"));
+ test(S("abcdefghij"), 0, 5, S("12345"), 2, 0, S("fghij"));
+ test(S("abcdefghij"), 0, 5, S("12345"), 2, 1, S("3fghij"));
+ test(S("abcdefghij"), 0, 5, S("12345"), 2, 2, S("34fghij"));
+ test(S("abcdefghij"), 0, 5, S("12345"), 2, 3, S("345fghij"));
+ test(S("abcdefghij"), 0, 5, S("12345"), 2, 4, S("345fghij"));
+ test(S("abcdefghij"), 0, 5, S("12345"), 4, 0, S("fghij"));
+ test(S("abcdefghij"), 0, 5, S("12345"), 4, 1, S("5fghij"));
+ test(S("abcdefghij"), 0, 5, S("12345"), 4, 2, S("5fghij"));
+ test(S("abcdefghij"), 0, 5, S("12345"), 5, 0, S("fghij"));
+ test(S("abcdefghij"), 0, 5, S("12345"), 5, 1, S("fghij"));
+ test(S("abcdefghij"), 0, 5, S("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghij"), 0, 5, S("1234567890"), 0, 0, S("fghij"));
+ test(S("abcdefghij"), 0, 5, S("1234567890"), 0, 1, S("1fghij"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test21()
-{
- test(S("abcdefghij"), 0, 5, S("1234567890"), 0, 5, S("12345fghij"));
- test(S("abcdefghij"), 0, 5, S("1234567890"), 0, 9, S("123456789fghij"));
- test(S("abcdefghij"), 0, 5, S("1234567890"), 0, 10, S("1234567890fghij"));
- test(S("abcdefghij"), 0, 5, S("1234567890"), 0, 11, S("1234567890fghij"));
- test(S("abcdefghij"), 0, 5, S("1234567890"), 1, 0, S("fghij"));
- test(S("abcdefghij"), 0, 5, S("1234567890"), 1, 1, S("2fghij"));
- test(S("abcdefghij"), 0, 5, S("1234567890"), 1, 4, S("2345fghij"));
- test(S("abcdefghij"), 0, 5, S("1234567890"), 1, 8, S("23456789fghij"));
- test(S("abcdefghij"), 0, 5, S("1234567890"), 1, 9, S("234567890fghij"));
- test(S("abcdefghij"), 0, 5, S("1234567890"), 1, 10, S("234567890fghij"));
- test(S("abcdefghij"), 0, 5, S("1234567890"), 5, 0, S("fghij"));
- test(S("abcdefghij"), 0, 5, S("1234567890"), 5, 1, S("6fghij"));
- test(S("abcdefghij"), 0, 5, S("1234567890"), 5, 2, S("67fghij"));
- test(S("abcdefghij"), 0, 5, S("1234567890"), 5, 4, S("6789fghij"));
- test(S("abcdefghij"), 0, 5, S("1234567890"), 5, 5, S("67890fghij"));
- test(S("abcdefghij"), 0, 5, S("1234567890"), 5, 6, S("67890fghij"));
- test(S("abcdefghij"), 0, 5, S("1234567890"), 9, 0, S("fghij"));
- test(S("abcdefghij"), 0, 5, S("1234567890"), 9, 1, S("0fghij"));
- test(S("abcdefghij"), 0, 5, S("1234567890"), 9, 2, S("0fghij"));
- test(S("abcdefghij"), 0, 5, S("1234567890"), 10, 0, S("fghij"));
- test(S("abcdefghij"), 0, 5, S("1234567890"), 10, 1, S("fghij"));
- test(S("abcdefghij"), 0, 5, S("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghij"), 0, 5, S("12345678901234567890"), 0, 0, S("fghij"));
- test(S("abcdefghij"), 0, 5, S("12345678901234567890"), 0, 1, S("1fghij"));
- test(S("abcdefghij"), 0, 5, S("12345678901234567890"), 0, 10, S("1234567890fghij"));
- test(S("abcdefghij"), 0, 5, S("12345678901234567890"), 0, 19, S("1234567890123456789fghij"));
- test(S("abcdefghij"), 0, 5, S("12345678901234567890"), 0, 20, S("12345678901234567890fghij"));
- test(S("abcdefghij"), 0, 5, S("12345678901234567890"), 0, 21, S("12345678901234567890fghij"));
- test(S("abcdefghij"), 0, 5, S("12345678901234567890"), 1, 0, S("fghij"));
- test(S("abcdefghij"), 0, 5, S("12345678901234567890"), 1, 1, S("2fghij"));
- test(S("abcdefghij"), 0, 5, S("12345678901234567890"), 1, 9, S("234567890fghij"));
- test(S("abcdefghij"), 0, 5, S("12345678901234567890"), 1, 18, S("234567890123456789fghij"));
- test(S("abcdefghij"), 0, 5, S("12345678901234567890"), 1, 19, S("2345678901234567890fghij"));
- test(S("abcdefghij"), 0, 5, S("12345678901234567890"), 1, 20, S("2345678901234567890fghij"));
- test(S("abcdefghij"), 0, 5, S("12345678901234567890"), 10, 0, S("fghij"));
- test(S("abcdefghij"), 0, 5, S("12345678901234567890"), 10, 1, S("1fghij"));
- test(S("abcdefghij"), 0, 5, S("12345678901234567890"), 10, 5, S("12345fghij"));
- test(S("abcdefghij"), 0, 5, S("12345678901234567890"), 10, 9, S("123456789fghij"));
- test(S("abcdefghij"), 0, 5, S("12345678901234567890"), 10, 10, S("1234567890fghij"));
- test(S("abcdefghij"), 0, 5, S("12345678901234567890"), 10, 11, S("1234567890fghij"));
- test(S("abcdefghij"), 0, 5, S("12345678901234567890"), 19, 0, S("fghij"));
- test(S("abcdefghij"), 0, 5, S("12345678901234567890"), 19, 1, S("0fghij"));
- test(S("abcdefghij"), 0, 5, S("12345678901234567890"), 19, 2, S("0fghij"));
- test(S("abcdefghij"), 0, 5, S("12345678901234567890"), 20, 0, S("fghij"));
- test(S("abcdefghij"), 0, 5, S("12345678901234567890"), 20, 1, S("fghij"));
- test(S("abcdefghij"), 0, 5, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghij"), 0, 9, S(""), 0, 0, S("j"));
- test(S("abcdefghij"), 0, 9, S(""), 0, 1, S("j"));
- test(S("abcdefghij"), 0, 9, S(""), 1, 0, S("can't happen"));
- test(S("abcdefghij"), 0, 9, S("12345"), 0, 0, S("j"));
- test(S("abcdefghij"), 0, 9, S("12345"), 0, 1, S("1j"));
- test(S("abcdefghij"), 0, 9, S("12345"), 0, 2, S("12j"));
- test(S("abcdefghij"), 0, 9, S("12345"), 0, 4, S("1234j"));
- test(S("abcdefghij"), 0, 9, S("12345"), 0, 5, S("12345j"));
- test(S("abcdefghij"), 0, 9, S("12345"), 0, 6, S("12345j"));
- test(S("abcdefghij"), 0, 9, S("12345"), 1, 0, S("j"));
- test(S("abcdefghij"), 0, 9, S("12345"), 1, 1, S("2j"));
- test(S("abcdefghij"), 0, 9, S("12345"), 1, 2, S("23j"));
- test(S("abcdefghij"), 0, 9, S("12345"), 1, 3, S("234j"));
- test(S("abcdefghij"), 0, 9, S("12345"), 1, 4, S("2345j"));
- test(S("abcdefghij"), 0, 9, S("12345"), 1, 5, S("2345j"));
- test(S("abcdefghij"), 0, 9, S("12345"), 2, 0, S("j"));
- test(S("abcdefghij"), 0, 9, S("12345"), 2, 1, S("3j"));
- test(S("abcdefghij"), 0, 9, S("12345"), 2, 2, S("34j"));
- test(S("abcdefghij"), 0, 9, S("12345"), 2, 3, S("345j"));
- test(S("abcdefghij"), 0, 9, S("12345"), 2, 4, S("345j"));
- test(S("abcdefghij"), 0, 9, S("12345"), 4, 0, S("j"));
- test(S("abcdefghij"), 0, 9, S("12345"), 4, 1, S("5j"));
- test(S("abcdefghij"), 0, 9, S("12345"), 4, 2, S("5j"));
- test(S("abcdefghij"), 0, 9, S("12345"), 5, 0, S("j"));
- test(S("abcdefghij"), 0, 9, S("12345"), 5, 1, S("j"));
- test(S("abcdefghij"), 0, 9, S("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghij"), 0, 9, S("1234567890"), 0, 0, S("j"));
- test(S("abcdefghij"), 0, 9, S("1234567890"), 0, 1, S("1j"));
- test(S("abcdefghij"), 0, 9, S("1234567890"), 0, 5, S("12345j"));
- test(S("abcdefghij"), 0, 9, S("1234567890"), 0, 9, S("123456789j"));
- test(S("abcdefghij"), 0, 9, S("1234567890"), 0, 10, S("1234567890j"));
- test(S("abcdefghij"), 0, 9, S("1234567890"), 0, 11, S("1234567890j"));
- test(S("abcdefghij"), 0, 9, S("1234567890"), 1, 0, S("j"));
- test(S("abcdefghij"), 0, 9, S("1234567890"), 1, 1, S("2j"));
- test(S("abcdefghij"), 0, 9, S("1234567890"), 1, 4, S("2345j"));
- test(S("abcdefghij"), 0, 9, S("1234567890"), 1, 8, S("23456789j"));
- test(S("abcdefghij"), 0, 9, S("1234567890"), 1, 9, S("234567890j"));
- test(S("abcdefghij"), 0, 9, S("1234567890"), 1, 10, S("234567890j"));
- test(S("abcdefghij"), 0, 9, S("1234567890"), 5, 0, S("j"));
- test(S("abcdefghij"), 0, 9, S("1234567890"), 5, 1, S("6j"));
- test(S("abcdefghij"), 0, 9, S("1234567890"), 5, 2, S("67j"));
- test(S("abcdefghij"), 0, 9, S("1234567890"), 5, 4, S("6789j"));
- test(S("abcdefghij"), 0, 9, S("1234567890"), 5, 5, S("67890j"));
- test(S("abcdefghij"), 0, 9, S("1234567890"), 5, 6, S("67890j"));
- test(S("abcdefghij"), 0, 9, S("1234567890"), 9, 0, S("j"));
- test(S("abcdefghij"), 0, 9, S("1234567890"), 9, 1, S("0j"));
- test(S("abcdefghij"), 0, 9, S("1234567890"), 9, 2, S("0j"));
- test(S("abcdefghij"), 0, 9, S("1234567890"), 10, 0, S("j"));
- test(S("abcdefghij"), 0, 9, S("1234567890"), 10, 1, S("j"));
- test(S("abcdefghij"), 0, 9, S("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghij"), 0, 9, S("12345678901234567890"), 0, 0, S("j"));
- test(S("abcdefghij"), 0, 9, S("12345678901234567890"), 0, 1, S("1j"));
- test(S("abcdefghij"), 0, 9, S("12345678901234567890"), 0, 10, S("1234567890j"));
- test(S("abcdefghij"), 0, 9, S("12345678901234567890"), 0, 19, S("1234567890123456789j"));
+TEST_CONSTEXPR_CXX20 bool test21() {
+ test(S("abcdefghij"), 0, 5, S("1234567890"), 0, 5, S("12345fghij"));
+ test(S("abcdefghij"), 0, 5, S("1234567890"), 0, 9, S("123456789fghij"));
+ test(S("abcdefghij"), 0, 5, S("1234567890"), 0, 10, S("1234567890fghij"));
+ test(S("abcdefghij"), 0, 5, S("1234567890"), 0, 11, S("1234567890fghij"));
+ test(S("abcdefghij"), 0, 5, S("1234567890"), 1, 0, S("fghij"));
+ test(S("abcdefghij"), 0, 5, S("1234567890"), 1, 1, S("2fghij"));
+ test(S("abcdefghij"), 0, 5, S("1234567890"), 1, 4, S("2345fghij"));
+ test(S("abcdefghij"), 0, 5, S("1234567890"), 1, 8, S("23456789fghij"));
+ test(S("abcdefghij"), 0, 5, S("1234567890"), 1, 9, S("234567890fghij"));
+ test(S("abcdefghij"), 0, 5, S("1234567890"), 1, 10, S("234567890fghij"));
+ test(S("abcdefghij"), 0, 5, S("1234567890"), 5, 0, S("fghij"));
+ test(S("abcdefghij"), 0, 5, S("1234567890"), 5, 1, S("6fghij"));
+ test(S("abcdefghij"), 0, 5, S("1234567890"), 5, 2, S("67fghij"));
+ test(S("abcdefghij"), 0, 5, S("1234567890"), 5, 4, S("6789fghij"));
+ test(S("abcdefghij"), 0, 5, S("1234567890"), 5, 5, S("67890fghij"));
+ test(S("abcdefghij"), 0, 5, S("1234567890"), 5, 6, S("67890fghij"));
+ test(S("abcdefghij"), 0, 5, S("1234567890"), 9, 0, S("fghij"));
+ test(S("abcdefghij"), 0, 5, S("1234567890"), 9, 1, S("0fghij"));
+ test(S("abcdefghij"), 0, 5, S("1234567890"), 9, 2, S("0fghij"));
+ test(S("abcdefghij"), 0, 5, S("1234567890"), 10, 0, S("fghij"));
+ test(S("abcdefghij"), 0, 5, S("1234567890"), 10, 1, S("fghij"));
+ test(S("abcdefghij"), 0, 5, S("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghij"), 0, 5, S("12345678901234567890"), 0, 0, S("fghij"));
+ test(S("abcdefghij"), 0, 5, S("12345678901234567890"), 0, 1, S("1fghij"));
+ test(S("abcdefghij"), 0, 5, S("12345678901234567890"), 0, 10, S("1234567890fghij"));
+ test(S("abcdefghij"), 0, 5, S("12345678901234567890"), 0, 19, S("1234567890123456789fghij"));
+ test(S("abcdefghij"), 0, 5, S("12345678901234567890"), 0, 20, S("12345678901234567890fghij"));
+ test(S("abcdefghij"), 0, 5, S("12345678901234567890"), 0, 21, S("12345678901234567890fghij"));
+ test(S("abcdefghij"), 0, 5, S("12345678901234567890"), 1, 0, S("fghij"));
+ test(S("abcdefghij"), 0, 5, S("12345678901234567890"), 1, 1, S("2fghij"));
+ test(S("abcdefghij"), 0, 5, S("12345678901234567890"), 1, 9, S("234567890fghij"));
+ test(S("abcdefghij"), 0, 5, S("12345678901234567890"), 1, 18, S("234567890123456789fghij"));
+ test(S("abcdefghij"), 0, 5, S("12345678901234567890"), 1, 19, S("2345678901234567890fghij"));
+ test(S("abcdefghij"), 0, 5, S("12345678901234567890"), 1, 20, S("2345678901234567890fghij"));
+ test(S("abcdefghij"), 0, 5, S("12345678901234567890"), 10, 0, S("fghij"));
+ test(S("abcdefghij"), 0, 5, S("12345678901234567890"), 10, 1, S("1fghij"));
+ test(S("abcdefghij"), 0, 5, S("12345678901234567890"), 10, 5, S("12345fghij"));
+ test(S("abcdefghij"), 0, 5, S("12345678901234567890"), 10, 9, S("123456789fghij"));
+ test(S("abcdefghij"), 0, 5, S("12345678901234567890"), 10, 10, S("1234567890fghij"));
+ test(S("abcdefghij"), 0, 5, S("12345678901234567890"), 10, 11, S("1234567890fghij"));
+ test(S("abcdefghij"), 0, 5, S("12345678901234567890"), 19, 0, S("fghij"));
+ test(S("abcdefghij"), 0, 5, S("12345678901234567890"), 19, 1, S("0fghij"));
+ test(S("abcdefghij"), 0, 5, S("12345678901234567890"), 19, 2, S("0fghij"));
+ test(S("abcdefghij"), 0, 5, S("12345678901234567890"), 20, 0, S("fghij"));
+ test(S("abcdefghij"), 0, 5, S("12345678901234567890"), 20, 1, S("fghij"));
+ test(S("abcdefghij"), 0, 5, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghij"), 0, 9, S(""), 0, 0, S("j"));
+ test(S("abcdefghij"), 0, 9, S(""), 0, 1, S("j"));
+ test(S("abcdefghij"), 0, 9, S(""), 1, 0, S("can't happen"));
+ test(S("abcdefghij"), 0, 9, S("12345"), 0, 0, S("j"));
+ test(S("abcdefghij"), 0, 9, S("12345"), 0, 1, S("1j"));
+ test(S("abcdefghij"), 0, 9, S("12345"), 0, 2, S("12j"));
+ test(S("abcdefghij"), 0, 9, S("12345"), 0, 4, S("1234j"));
+ test(S("abcdefghij"), 0, 9, S("12345"), 0, 5, S("12345j"));
+ test(S("abcdefghij"), 0, 9, S("12345"), 0, 6, S("12345j"));
+ test(S("abcdefghij"), 0, 9, S("12345"), 1, 0, S("j"));
+ test(S("abcdefghij"), 0, 9, S("12345"), 1, 1, S("2j"));
+ test(S("abcdefghij"), 0, 9, S("12345"), 1, 2, S("23j"));
+ test(S("abcdefghij"), 0, 9, S("12345"), 1, 3, S("234j"));
+ test(S("abcdefghij"), 0, 9, S("12345"), 1, 4, S("2345j"));
+ test(S("abcdefghij"), 0, 9, S("12345"), 1, 5, S("2345j"));
+ test(S("abcdefghij"), 0, 9, S("12345"), 2, 0, S("j"));
+ test(S("abcdefghij"), 0, 9, S("12345"), 2, 1, S("3j"));
+ test(S("abcdefghij"), 0, 9, S("12345"), 2, 2, S("34j"));
+ test(S("abcdefghij"), 0, 9, S("12345"), 2, 3, S("345j"));
+ test(S("abcdefghij"), 0, 9, S("12345"), 2, 4, S("345j"));
+ test(S("abcdefghij"), 0, 9, S("12345"), 4, 0, S("j"));
+ test(S("abcdefghij"), 0, 9, S("12345"), 4, 1, S("5j"));
+ test(S("abcdefghij"), 0, 9, S("12345"), 4, 2, S("5j"));
+ test(S("abcdefghij"), 0, 9, S("12345"), 5, 0, S("j"));
+ test(S("abcdefghij"), 0, 9, S("12345"), 5, 1, S("j"));
+ test(S("abcdefghij"), 0, 9, S("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghij"), 0, 9, S("1234567890"), 0, 0, S("j"));
+ test(S("abcdefghij"), 0, 9, S("1234567890"), 0, 1, S("1j"));
+ test(S("abcdefghij"), 0, 9, S("1234567890"), 0, 5, S("12345j"));
+ test(S("abcdefghij"), 0, 9, S("1234567890"), 0, 9, S("123456789j"));
+ test(S("abcdefghij"), 0, 9, S("1234567890"), 0, 10, S("1234567890j"));
+ test(S("abcdefghij"), 0, 9, S("1234567890"), 0, 11, S("1234567890j"));
+ test(S("abcdefghij"), 0, 9, S("1234567890"), 1, 0, S("j"));
+ test(S("abcdefghij"), 0, 9, S("1234567890"), 1, 1, S("2j"));
+ test(S("abcdefghij"), 0, 9, S("1234567890"), 1, 4, S("2345j"));
+ test(S("abcdefghij"), 0, 9, S("1234567890"), 1, 8, S("23456789j"));
+ test(S("abcdefghij"), 0, 9, S("1234567890"), 1, 9, S("234567890j"));
+ test(S("abcdefghij"), 0, 9, S("1234567890"), 1, 10, S("234567890j"));
+ test(S("abcdefghij"), 0, 9, S("1234567890"), 5, 0, S("j"));
+ test(S("abcdefghij"), 0, 9, S("1234567890"), 5, 1, S("6j"));
+ test(S("abcdefghij"), 0, 9, S("1234567890"), 5, 2, S("67j"));
+ test(S("abcdefghij"), 0, 9, S("1234567890"), 5, 4, S("6789j"));
+ test(S("abcdefghij"), 0, 9, S("1234567890"), 5, 5, S("67890j"));
+ test(S("abcdefghij"), 0, 9, S("1234567890"), 5, 6, S("67890j"));
+ test(S("abcdefghij"), 0, 9, S("1234567890"), 9, 0, S("j"));
+ test(S("abcdefghij"), 0, 9, S("1234567890"), 9, 1, S("0j"));
+ test(S("abcdefghij"), 0, 9, S("1234567890"), 9, 2, S("0j"));
+ test(S("abcdefghij"), 0, 9, S("1234567890"), 10, 0, S("j"));
+ test(S("abcdefghij"), 0, 9, S("1234567890"), 10, 1, S("j"));
+ test(S("abcdefghij"), 0, 9, S("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghij"), 0, 9, S("12345678901234567890"), 0, 0, S("j"));
+ test(S("abcdefghij"), 0, 9, S("12345678901234567890"), 0, 1, S("1j"));
+ test(S("abcdefghij"), 0, 9, S("12345678901234567890"), 0, 10, S("1234567890j"));
+ test(S("abcdefghij"), 0, 9, S("12345678901234567890"), 0, 19, S("1234567890123456789j"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test22()
-{
- test(S("abcdefghij"), 0, 9, S("12345678901234567890"), 0, 20, S("12345678901234567890j"));
- test(S("abcdefghij"), 0, 9, S("12345678901234567890"), 0, 21, S("12345678901234567890j"));
- test(S("abcdefghij"), 0, 9, S("12345678901234567890"), 1, 0, S("j"));
- test(S("abcdefghij"), 0, 9, S("12345678901234567890"), 1, 1, S("2j"));
- test(S("abcdefghij"), 0, 9, S("12345678901234567890"), 1, 9, S("234567890j"));
- test(S("abcdefghij"), 0, 9, S("12345678901234567890"), 1, 18, S("234567890123456789j"));
- test(S("abcdefghij"), 0, 9, S("12345678901234567890"), 1, 19, S("2345678901234567890j"));
- test(S("abcdefghij"), 0, 9, S("12345678901234567890"), 1, 20, S("2345678901234567890j"));
- test(S("abcdefghij"), 0, 9, S("12345678901234567890"), 10, 0, S("j"));
- test(S("abcdefghij"), 0, 9, S("12345678901234567890"), 10, 1, S("1j"));
- test(S("abcdefghij"), 0, 9, S("12345678901234567890"), 10, 5, S("12345j"));
- test(S("abcdefghij"), 0, 9, S("12345678901234567890"), 10, 9, S("123456789j"));
- test(S("abcdefghij"), 0, 9, S("12345678901234567890"), 10, 10, S("1234567890j"));
- test(S("abcdefghij"), 0, 9, S("12345678901234567890"), 10, 11, S("1234567890j"));
- test(S("abcdefghij"), 0, 9, S("12345678901234567890"), 19, 0, S("j"));
- test(S("abcdefghij"), 0, 9, S("12345678901234567890"), 19, 1, S("0j"));
- test(S("abcdefghij"), 0, 9, S("12345678901234567890"), 19, 2, S("0j"));
- test(S("abcdefghij"), 0, 9, S("12345678901234567890"), 20, 0, S("j"));
- test(S("abcdefghij"), 0, 9, S("12345678901234567890"), 20, 1, S("j"));
- test(S("abcdefghij"), 0, 9, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghij"), 0, 10, S(""), 0, 0, S(""));
- test(S("abcdefghij"), 0, 10, S(""), 0, 1, S(""));
- test(S("abcdefghij"), 0, 10, S(""), 1, 0, S("can't happen"));
- test(S("abcdefghij"), 0, 10, S("12345"), 0, 0, S(""));
- test(S("abcdefghij"), 0, 10, S("12345"), 0, 1, S("1"));
- test(S("abcdefghij"), 0, 10, S("12345"), 0, 2, S("12"));
- test(S("abcdefghij"), 0, 10, S("12345"), 0, 4, S("1234"));
- test(S("abcdefghij"), 0, 10, S("12345"), 0, 5, S("12345"));
- test(S("abcdefghij"), 0, 10, S("12345"), 0, 6, S("12345"));
- test(S("abcdefghij"), 0, 10, S("12345"), 1, 0, S(""));
- test(S("abcdefghij"), 0, 10, S("12345"), 1, 1, S("2"));
- test(S("abcdefghij"), 0, 10, S("12345"), 1, 2, S("23"));
- test(S("abcdefghij"), 0, 10, S("12345"), 1, 3, S("234"));
- test(S("abcdefghij"), 0, 10, S("12345"), 1, 4, S("2345"));
- test(S("abcdefghij"), 0, 10, S("12345"), 1, 5, S("2345"));
- test(S("abcdefghij"), 0, 10, S("12345"), 2, 0, S(""));
- test(S("abcdefghij"), 0, 10, S("12345"), 2, 1, S("3"));
- test(S("abcdefghij"), 0, 10, S("12345"), 2, 2, S("34"));
- test(S("abcdefghij"), 0, 10, S("12345"), 2, 3, S("345"));
- test(S("abcdefghij"), 0, 10, S("12345"), 2, 4, S("345"));
- test(S("abcdefghij"), 0, 10, S("12345"), 4, 0, S(""));
- test(S("abcdefghij"), 0, 10, S("12345"), 4, 1, S("5"));
- test(S("abcdefghij"), 0, 10, S("12345"), 4, 2, S("5"));
- test(S("abcdefghij"), 0, 10, S("12345"), 5, 0, S(""));
- test(S("abcdefghij"), 0, 10, S("12345"), 5, 1, S(""));
- test(S("abcdefghij"), 0, 10, S("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghij"), 0, 10, S("1234567890"), 0, 0, S(""));
- test(S("abcdefghij"), 0, 10, S("1234567890"), 0, 1, S("1"));
- test(S("abcdefghij"), 0, 10, S("1234567890"), 0, 5, S("12345"));
- test(S("abcdefghij"), 0, 10, S("1234567890"), 0, 9, S("123456789"));
- test(S("abcdefghij"), 0, 10, S("1234567890"), 0, 10, S("1234567890"));
- test(S("abcdefghij"), 0, 10, S("1234567890"), 0, 11, S("1234567890"));
- test(S("abcdefghij"), 0, 10, S("1234567890"), 1, 0, S(""));
- test(S("abcdefghij"), 0, 10, S("1234567890"), 1, 1, S("2"));
- test(S("abcdefghij"), 0, 10, S("1234567890"), 1, 4, S("2345"));
- test(S("abcdefghij"), 0, 10, S("1234567890"), 1, 8, S("23456789"));
- test(S("abcdefghij"), 0, 10, S("1234567890"), 1, 9, S("234567890"));
- test(S("abcdefghij"), 0, 10, S("1234567890"), 1, 10, S("234567890"));
- test(S("abcdefghij"), 0, 10, S("1234567890"), 5, 0, S(""));
- test(S("abcdefghij"), 0, 10, S("1234567890"), 5, 1, S("6"));
- test(S("abcdefghij"), 0, 10, S("1234567890"), 5, 2, S("67"));
- test(S("abcdefghij"), 0, 10, S("1234567890"), 5, 4, S("6789"));
- test(S("abcdefghij"), 0, 10, S("1234567890"), 5, 5, S("67890"));
- test(S("abcdefghij"), 0, 10, S("1234567890"), 5, 6, S("67890"));
- test(S("abcdefghij"), 0, 10, S("1234567890"), 9, 0, S(""));
- test(S("abcdefghij"), 0, 10, S("1234567890"), 9, 1, S("0"));
- test(S("abcdefghij"), 0, 10, S("1234567890"), 9, 2, S("0"));
- test(S("abcdefghij"), 0, 10, S("1234567890"), 10, 0, S(""));
- test(S("abcdefghij"), 0, 10, S("1234567890"), 10, 1, S(""));
- test(S("abcdefghij"), 0, 10, S("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghij"), 0, 10, S("12345678901234567890"), 0, 0, S(""));
- test(S("abcdefghij"), 0, 10, S("12345678901234567890"), 0, 1, S("1"));
- test(S("abcdefghij"), 0, 10, S("12345678901234567890"), 0, 10, S("1234567890"));
- test(S("abcdefghij"), 0, 10, S("12345678901234567890"), 0, 19, S("1234567890123456789"));
- test(S("abcdefghij"), 0, 10, S("12345678901234567890"), 0, 20, S("12345678901234567890"));
- test(S("abcdefghij"), 0, 10, S("12345678901234567890"), 0, 21, S("12345678901234567890"));
- test(S("abcdefghij"), 0, 10, S("12345678901234567890"), 1, 0, S(""));
- test(S("abcdefghij"), 0, 10, S("12345678901234567890"), 1, 1, S("2"));
- test(S("abcdefghij"), 0, 10, S("12345678901234567890"), 1, 9, S("234567890"));
- test(S("abcdefghij"), 0, 10, S("12345678901234567890"), 1, 18, S("234567890123456789"));
- test(S("abcdefghij"), 0, 10, S("12345678901234567890"), 1, 19, S("2345678901234567890"));
- test(S("abcdefghij"), 0, 10, S("12345678901234567890"), 1, 20, S("2345678901234567890"));
- test(S("abcdefghij"), 0, 10, S("12345678901234567890"), 10, 0, S(""));
- test(S("abcdefghij"), 0, 10, S("12345678901234567890"), 10, 1, S("1"));
- test(S("abcdefghij"), 0, 10, S("12345678901234567890"), 10, 5, S("12345"));
- test(S("abcdefghij"), 0, 10, S("12345678901234567890"), 10, 9, S("123456789"));
- test(S("abcdefghij"), 0, 10, S("12345678901234567890"), 10, 10, S("1234567890"));
- test(S("abcdefghij"), 0, 10, S("12345678901234567890"), 10, 11, S("1234567890"));
- test(S("abcdefghij"), 0, 10, S("12345678901234567890"), 19, 0, S(""));
- test(S("abcdefghij"), 0, 10, S("12345678901234567890"), 19, 1, S("0"));
- test(S("abcdefghij"), 0, 10, S("12345678901234567890"), 19, 2, S("0"));
- test(S("abcdefghij"), 0, 10, S("12345678901234567890"), 20, 0, S(""));
- test(S("abcdefghij"), 0, 10, S("12345678901234567890"), 20, 1, S(""));
- test(S("abcdefghij"), 0, 10, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghij"), 0, 11, S(""), 0, 0, S(""));
- test(S("abcdefghij"), 0, 11, S(""), 0, 1, S(""));
- test(S("abcdefghij"), 0, 11, S(""), 1, 0, S("can't happen"));
- test(S("abcdefghij"), 0, 11, S("12345"), 0, 0, S(""));
- test(S("abcdefghij"), 0, 11, S("12345"), 0, 1, S("1"));
- test(S("abcdefghij"), 0, 11, S("12345"), 0, 2, S("12"));
+TEST_CONSTEXPR_CXX20 bool test22() {
+ test(S("abcdefghij"), 0, 9, S("12345678901234567890"), 0, 20, S("12345678901234567890j"));
+ test(S("abcdefghij"), 0, 9, S("12345678901234567890"), 0, 21, S("12345678901234567890j"));
+ test(S("abcdefghij"), 0, 9, S("12345678901234567890"), 1, 0, S("j"));
+ test(S("abcdefghij"), 0, 9, S("12345678901234567890"), 1, 1, S("2j"));
+ test(S("abcdefghij"), 0, 9, S("12345678901234567890"), 1, 9, S("234567890j"));
+ test(S("abcdefghij"), 0, 9, S("12345678901234567890"), 1, 18, S("234567890123456789j"));
+ test(S("abcdefghij"), 0, 9, S("12345678901234567890"), 1, 19, S("2345678901234567890j"));
+ test(S("abcdefghij"), 0, 9, S("12345678901234567890"), 1, 20, S("2345678901234567890j"));
+ test(S("abcdefghij"), 0, 9, S("12345678901234567890"), 10, 0, S("j"));
+ test(S("abcdefghij"), 0, 9, S("12345678901234567890"), 10, 1, S("1j"));
+ test(S("abcdefghij"), 0, 9, S("12345678901234567890"), 10, 5, S("12345j"));
+ test(S("abcdefghij"), 0, 9, S("12345678901234567890"), 10, 9, S("123456789j"));
+ test(S("abcdefghij"), 0, 9, S("12345678901234567890"), 10, 10, S("1234567890j"));
+ test(S("abcdefghij"), 0, 9, S("12345678901234567890"), 10, 11, S("1234567890j"));
+ test(S("abcdefghij"), 0, 9, S("12345678901234567890"), 19, 0, S("j"));
+ test(S("abcdefghij"), 0, 9, S("12345678901234567890"), 19, 1, S("0j"));
+ test(S("abcdefghij"), 0, 9, S("12345678901234567890"), 19, 2, S("0j"));
+ test(S("abcdefghij"), 0, 9, S("12345678901234567890"), 20, 0, S("j"));
+ test(S("abcdefghij"), 0, 9, S("12345678901234567890"), 20, 1, S("j"));
+ test(S("abcdefghij"), 0, 9, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghij"), 0, 10, S(""), 0, 0, S(""));
+ test(S("abcdefghij"), 0, 10, S(""), 0, 1, S(""));
+ test(S("abcdefghij"), 0, 10, S(""), 1, 0, S("can't happen"));
+ test(S("abcdefghij"), 0, 10, S("12345"), 0, 0, S(""));
+ test(S("abcdefghij"), 0, 10, S("12345"), 0, 1, S("1"));
+ test(S("abcdefghij"), 0, 10, S("12345"), 0, 2, S("12"));
+ test(S("abcdefghij"), 0, 10, S("12345"), 0, 4, S("1234"));
+ test(S("abcdefghij"), 0, 10, S("12345"), 0, 5, S("12345"));
+ test(S("abcdefghij"), 0, 10, S("12345"), 0, 6, S("12345"));
+ test(S("abcdefghij"), 0, 10, S("12345"), 1, 0, S(""));
+ test(S("abcdefghij"), 0, 10, S("12345"), 1, 1, S("2"));
+ test(S("abcdefghij"), 0, 10, S("12345"), 1, 2, S("23"));
+ test(S("abcdefghij"), 0, 10, S("12345"), 1, 3, S("234"));
+ test(S("abcdefghij"), 0, 10, S("12345"), 1, 4, S("2345"));
+ test(S("abcdefghij"), 0, 10, S("12345"), 1, 5, S("2345"));
+ test(S("abcdefghij"), 0, 10, S("12345"), 2, 0, S(""));
+ test(S("abcdefghij"), 0, 10, S("12345"), 2, 1, S("3"));
+ test(S("abcdefghij"), 0, 10, S("12345"), 2, 2, S("34"));
+ test(S("abcdefghij"), 0, 10, S("12345"), 2, 3, S("345"));
+ test(S("abcdefghij"), 0, 10, S("12345"), 2, 4, S("345"));
+ test(S("abcdefghij"), 0, 10, S("12345"), 4, 0, S(""));
+ test(S("abcdefghij"), 0, 10, S("12345"), 4, 1, S("5"));
+ test(S("abcdefghij"), 0, 10, S("12345"), 4, 2, S("5"));
+ test(S("abcdefghij"), 0, 10, S("12345"), 5, 0, S(""));
+ test(S("abcdefghij"), 0, 10, S("12345"), 5, 1, S(""));
+ test(S("abcdefghij"), 0, 10, S("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghij"), 0, 10, S("1234567890"), 0, 0, S(""));
+ test(S("abcdefghij"), 0, 10, S("1234567890"), 0, 1, S("1"));
+ test(S("abcdefghij"), 0, 10, S("1234567890"), 0, 5, S("12345"));
+ test(S("abcdefghij"), 0, 10, S("1234567890"), 0, 9, S("123456789"));
+ test(S("abcdefghij"), 0, 10, S("1234567890"), 0, 10, S("1234567890"));
+ test(S("abcdefghij"), 0, 10, S("1234567890"), 0, 11, S("1234567890"));
+ test(S("abcdefghij"), 0, 10, S("1234567890"), 1, 0, S(""));
+ test(S("abcdefghij"), 0, 10, S("1234567890"), 1, 1, S("2"));
+ test(S("abcdefghij"), 0, 10, S("1234567890"), 1, 4, S("2345"));
+ test(S("abcdefghij"), 0, 10, S("1234567890"), 1, 8, S("23456789"));
+ test(S("abcdefghij"), 0, 10, S("1234567890"), 1, 9, S("234567890"));
+ test(S("abcdefghij"), 0, 10, S("1234567890"), 1, 10, S("234567890"));
+ test(S("abcdefghij"), 0, 10, S("1234567890"), 5, 0, S(""));
+ test(S("abcdefghij"), 0, 10, S("1234567890"), 5, 1, S("6"));
+ test(S("abcdefghij"), 0, 10, S("1234567890"), 5, 2, S("67"));
+ test(S("abcdefghij"), 0, 10, S("1234567890"), 5, 4, S("6789"));
+ test(S("abcdefghij"), 0, 10, S("1234567890"), 5, 5, S("67890"));
+ test(S("abcdefghij"), 0, 10, S("1234567890"), 5, 6, S("67890"));
+ test(S("abcdefghij"), 0, 10, S("1234567890"), 9, 0, S(""));
+ test(S("abcdefghij"), 0, 10, S("1234567890"), 9, 1, S("0"));
+ test(S("abcdefghij"), 0, 10, S("1234567890"), 9, 2, S("0"));
+ test(S("abcdefghij"), 0, 10, S("1234567890"), 10, 0, S(""));
+ test(S("abcdefghij"), 0, 10, S("1234567890"), 10, 1, S(""));
+ test(S("abcdefghij"), 0, 10, S("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghij"), 0, 10, S("12345678901234567890"), 0, 0, S(""));
+ test(S("abcdefghij"), 0, 10, S("12345678901234567890"), 0, 1, S("1"));
+ test(S("abcdefghij"), 0, 10, S("12345678901234567890"), 0, 10, S("1234567890"));
+ test(S("abcdefghij"), 0, 10, S("12345678901234567890"), 0, 19, S("1234567890123456789"));
+ test(S("abcdefghij"), 0, 10, S("12345678901234567890"), 0, 20, S("12345678901234567890"));
+ test(S("abcdefghij"), 0, 10, S("12345678901234567890"), 0, 21, S("12345678901234567890"));
+ test(S("abcdefghij"), 0, 10, S("12345678901234567890"), 1, 0, S(""));
+ test(S("abcdefghij"), 0, 10, S("12345678901234567890"), 1, 1, S("2"));
+ test(S("abcdefghij"), 0, 10, S("12345678901234567890"), 1, 9, S("234567890"));
+ test(S("abcdefghij"), 0, 10, S("12345678901234567890"), 1, 18, S("234567890123456789"));
+ test(S("abcdefghij"), 0, 10, S("12345678901234567890"), 1, 19, S("2345678901234567890"));
+ test(S("abcdefghij"), 0, 10, S("12345678901234567890"), 1, 20, S("2345678901234567890"));
+ test(S("abcdefghij"), 0, 10, S("12345678901234567890"), 10, 0, S(""));
+ test(S("abcdefghij"), 0, 10, S("12345678901234567890"), 10, 1, S("1"));
+ test(S("abcdefghij"), 0, 10, S("12345678901234567890"), 10, 5, S("12345"));
+ test(S("abcdefghij"), 0, 10, S("12345678901234567890"), 10, 9, S("123456789"));
+ test(S("abcdefghij"), 0, 10, S("12345678901234567890"), 10, 10, S("1234567890"));
+ test(S("abcdefghij"), 0, 10, S("12345678901234567890"), 10, 11, S("1234567890"));
+ test(S("abcdefghij"), 0, 10, S("12345678901234567890"), 19, 0, S(""));
+ test(S("abcdefghij"), 0, 10, S("12345678901234567890"), 19, 1, S("0"));
+ test(S("abcdefghij"), 0, 10, S("12345678901234567890"), 19, 2, S("0"));
+ test(S("abcdefghij"), 0, 10, S("12345678901234567890"), 20, 0, S(""));
+ test(S("abcdefghij"), 0, 10, S("12345678901234567890"), 20, 1, S(""));
+ test(S("abcdefghij"), 0, 10, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghij"), 0, 11, S(""), 0, 0, S(""));
+ test(S("abcdefghij"), 0, 11, S(""), 0, 1, S(""));
+ test(S("abcdefghij"), 0, 11, S(""), 1, 0, S("can't happen"));
+ test(S("abcdefghij"), 0, 11, S("12345"), 0, 0, S(""));
+ test(S("abcdefghij"), 0, 11, S("12345"), 0, 1, S("1"));
+ test(S("abcdefghij"), 0, 11, S("12345"), 0, 2, S("12"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test23()
-{
- test(S("abcdefghij"), 0, 11, S("12345"), 0, 4, S("1234"));
- test(S("abcdefghij"), 0, 11, S("12345"), 0, 5, S("12345"));
- test(S("abcdefghij"), 0, 11, S("12345"), 0, 6, S("12345"));
- test(S("abcdefghij"), 0, 11, S("12345"), 1, 0, S(""));
- test(S("abcdefghij"), 0, 11, S("12345"), 1, 1, S("2"));
- test(S("abcdefghij"), 0, 11, S("12345"), 1, 2, S("23"));
- test(S("abcdefghij"), 0, 11, S("12345"), 1, 3, S("234"));
- test(S("abcdefghij"), 0, 11, S("12345"), 1, 4, S("2345"));
- test(S("abcdefghij"), 0, 11, S("12345"), 1, 5, S("2345"));
- test(S("abcdefghij"), 0, 11, S("12345"), 2, 0, S(""));
- test(S("abcdefghij"), 0, 11, S("12345"), 2, 1, S("3"));
- test(S("abcdefghij"), 0, 11, S("12345"), 2, 2, S("34"));
- test(S("abcdefghij"), 0, 11, S("12345"), 2, 3, S("345"));
- test(S("abcdefghij"), 0, 11, S("12345"), 2, 4, S("345"));
- test(S("abcdefghij"), 0, 11, S("12345"), 4, 0, S(""));
- test(S("abcdefghij"), 0, 11, S("12345"), 4, 1, S("5"));
- test(S("abcdefghij"), 0, 11, S("12345"), 4, 2, S("5"));
- test(S("abcdefghij"), 0, 11, S("12345"), 5, 0, S(""));
- test(S("abcdefghij"), 0, 11, S("12345"), 5, 1, S(""));
- test(S("abcdefghij"), 0, 11, S("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghij"), 0, 11, S("1234567890"), 0, 0, S(""));
- test(S("abcdefghij"), 0, 11, S("1234567890"), 0, 1, S("1"));
- test(S("abcdefghij"), 0, 11, S("1234567890"), 0, 5, S("12345"));
- test(S("abcdefghij"), 0, 11, S("1234567890"), 0, 9, S("123456789"));
- test(S("abcdefghij"), 0, 11, S("1234567890"), 0, 10, S("1234567890"));
- test(S("abcdefghij"), 0, 11, S("1234567890"), 0, 11, S("1234567890"));
- test(S("abcdefghij"), 0, 11, S("1234567890"), 1, 0, S(""));
- test(S("abcdefghij"), 0, 11, S("1234567890"), 1, 1, S("2"));
- test(S("abcdefghij"), 0, 11, S("1234567890"), 1, 4, S("2345"));
- test(S("abcdefghij"), 0, 11, S("1234567890"), 1, 8, S("23456789"));
- test(S("abcdefghij"), 0, 11, S("1234567890"), 1, 9, S("234567890"));
- test(S("abcdefghij"), 0, 11, S("1234567890"), 1, 10, S("234567890"));
- test(S("abcdefghij"), 0, 11, S("1234567890"), 5, 0, S(""));
- test(S("abcdefghij"), 0, 11, S("1234567890"), 5, 1, S("6"));
- test(S("abcdefghij"), 0, 11, S("1234567890"), 5, 2, S("67"));
- test(S("abcdefghij"), 0, 11, S("1234567890"), 5, 4, S("6789"));
- test(S("abcdefghij"), 0, 11, S("1234567890"), 5, 5, S("67890"));
- test(S("abcdefghij"), 0, 11, S("1234567890"), 5, 6, S("67890"));
- test(S("abcdefghij"), 0, 11, S("1234567890"), 9, 0, S(""));
- test(S("abcdefghij"), 0, 11, S("1234567890"), 9, 1, S("0"));
- test(S("abcdefghij"), 0, 11, S("1234567890"), 9, 2, S("0"));
- test(S("abcdefghij"), 0, 11, S("1234567890"), 10, 0, S(""));
- test(S("abcdefghij"), 0, 11, S("1234567890"), 10, 1, S(""));
- test(S("abcdefghij"), 0, 11, S("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghij"), 0, 11, S("12345678901234567890"), 0, 0, S(""));
- test(S("abcdefghij"), 0, 11, S("12345678901234567890"), 0, 1, S("1"));
- test(S("abcdefghij"), 0, 11, S("12345678901234567890"), 0, 10, S("1234567890"));
- test(S("abcdefghij"), 0, 11, S("12345678901234567890"), 0, 19, S("1234567890123456789"));
- test(S("abcdefghij"), 0, 11, S("12345678901234567890"), 0, 20, S("12345678901234567890"));
- test(S("abcdefghij"), 0, 11, S("12345678901234567890"), 0, 21, S("12345678901234567890"));
- test(S("abcdefghij"), 0, 11, S("12345678901234567890"), 1, 0, S(""));
- test(S("abcdefghij"), 0, 11, S("12345678901234567890"), 1, 1, S("2"));
- test(S("abcdefghij"), 0, 11, S("12345678901234567890"), 1, 9, S("234567890"));
- test(S("abcdefghij"), 0, 11, S("12345678901234567890"), 1, 18, S("234567890123456789"));
- test(S("abcdefghij"), 0, 11, S("12345678901234567890"), 1, 19, S("2345678901234567890"));
- test(S("abcdefghij"), 0, 11, S("12345678901234567890"), 1, 20, S("2345678901234567890"));
- test(S("abcdefghij"), 0, 11, S("12345678901234567890"), 10, 0, S(""));
- test(S("abcdefghij"), 0, 11, S("12345678901234567890"), 10, 1, S("1"));
- test(S("abcdefghij"), 0, 11, S("12345678901234567890"), 10, 5, S("12345"));
- test(S("abcdefghij"), 0, 11, S("12345678901234567890"), 10, 9, S("123456789"));
- test(S("abcdefghij"), 0, 11, S("12345678901234567890"), 10, 10, S("1234567890"));
- test(S("abcdefghij"), 0, 11, S("12345678901234567890"), 10, 11, S("1234567890"));
- test(S("abcdefghij"), 0, 11, S("12345678901234567890"), 19, 0, S(""));
- test(S("abcdefghij"), 0, 11, S("12345678901234567890"), 19, 1, S("0"));
- test(S("abcdefghij"), 0, 11, S("12345678901234567890"), 19, 2, S("0"));
- test(S("abcdefghij"), 0, 11, S("12345678901234567890"), 20, 0, S(""));
- test(S("abcdefghij"), 0, 11, S("12345678901234567890"), 20, 1, S(""));
- test(S("abcdefghij"), 0, 11, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghij"), 1, 0, S(""), 0, 0, S("abcdefghij"));
- test(S("abcdefghij"), 1, 0, S(""), 0, 1, S("abcdefghij"));
- test(S("abcdefghij"), 1, 0, S(""), 1, 0, S("can't happen"));
- test(S("abcdefghij"), 1, 0, S("12345"), 0, 0, S("abcdefghij"));
- test(S("abcdefghij"), 1, 0, S("12345"), 0, 1, S("a1bcdefghij"));
- test(S("abcdefghij"), 1, 0, S("12345"), 0, 2, S("a12bcdefghij"));
- test(S("abcdefghij"), 1, 0, S("12345"), 0, 4, S("a1234bcdefghij"));
- test(S("abcdefghij"), 1, 0, S("12345"), 0, 5, S("a12345bcdefghij"));
- test(S("abcdefghij"), 1, 0, S("12345"), 0, 6, S("a12345bcdefghij"));
- test(S("abcdefghij"), 1, 0, S("12345"), 1, 0, S("abcdefghij"));
- test(S("abcdefghij"), 1, 0, S("12345"), 1, 1, S("a2bcdefghij"));
- test(S("abcdefghij"), 1, 0, S("12345"), 1, 2, S("a23bcdefghij"));
- test(S("abcdefghij"), 1, 0, S("12345"), 1, 3, S("a234bcdefghij"));
- test(S("abcdefghij"), 1, 0, S("12345"), 1, 4, S("a2345bcdefghij"));
- test(S("abcdefghij"), 1, 0, S("12345"), 1, 5, S("a2345bcdefghij"));
- test(S("abcdefghij"), 1, 0, S("12345"), 2, 0, S("abcdefghij"));
- test(S("abcdefghij"), 1, 0, S("12345"), 2, 1, S("a3bcdefghij"));
- test(S("abcdefghij"), 1, 0, S("12345"), 2, 2, S("a34bcdefghij"));
- test(S("abcdefghij"), 1, 0, S("12345"), 2, 3, S("a345bcdefghij"));
- test(S("abcdefghij"), 1, 0, S("12345"), 2, 4, S("a345bcdefghij"));
- test(S("abcdefghij"), 1, 0, S("12345"), 4, 0, S("abcdefghij"));
- test(S("abcdefghij"), 1, 0, S("12345"), 4, 1, S("a5bcdefghij"));
- test(S("abcdefghij"), 1, 0, S("12345"), 4, 2, S("a5bcdefghij"));
- test(S("abcdefghij"), 1, 0, S("12345"), 5, 0, S("abcdefghij"));
- test(S("abcdefghij"), 1, 0, S("12345"), 5, 1, S("abcdefghij"));
- test(S("abcdefghij"), 1, 0, S("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghij"), 1, 0, S("1234567890"), 0, 0, S("abcdefghij"));
- test(S("abcdefghij"), 1, 0, S("1234567890"), 0, 1, S("a1bcdefghij"));
- test(S("abcdefghij"), 1, 0, S("1234567890"), 0, 5, S("a12345bcdefghij"));
- test(S("abcdefghij"), 1, 0, S("1234567890"), 0, 9, S("a123456789bcdefghij"));
- test(S("abcdefghij"), 1, 0, S("1234567890"), 0, 10, S("a1234567890bcdefghij"));
- test(S("abcdefghij"), 1, 0, S("1234567890"), 0, 11, S("a1234567890bcdefghij"));
+TEST_CONSTEXPR_CXX20 bool test23() {
+ test(S("abcdefghij"), 0, 11, S("12345"), 0, 4, S("1234"));
+ test(S("abcdefghij"), 0, 11, S("12345"), 0, 5, S("12345"));
+ test(S("abcdefghij"), 0, 11, S("12345"), 0, 6, S("12345"));
+ test(S("abcdefghij"), 0, 11, S("12345"), 1, 0, S(""));
+ test(S("abcdefghij"), 0, 11, S("12345"), 1, 1, S("2"));
+ test(S("abcdefghij"), 0, 11, S("12345"), 1, 2, S("23"));
+ test(S("abcdefghij"), 0, 11, S("12345"), 1, 3, S("234"));
+ test(S("abcdefghij"), 0, 11, S("12345"), 1, 4, S("2345"));
+ test(S("abcdefghij"), 0, 11, S("12345"), 1, 5, S("2345"));
+ test(S("abcdefghij"), 0, 11, S("12345"), 2, 0, S(""));
+ test(S("abcdefghij"), 0, 11, S("12345"), 2, 1, S("3"));
+ test(S("abcdefghij"), 0, 11, S("12345"), 2, 2, S("34"));
+ test(S("abcdefghij"), 0, 11, S("12345"), 2, 3, S("345"));
+ test(S("abcdefghij"), 0, 11, S("12345"), 2, 4, S("345"));
+ test(S("abcdefghij"), 0, 11, S("12345"), 4, 0, S(""));
+ test(S("abcdefghij"), 0, 11, S("12345"), 4, 1, S("5"));
+ test(S("abcdefghij"), 0, 11, S("12345"), 4, 2, S("5"));
+ test(S("abcdefghij"), 0, 11, S("12345"), 5, 0, S(""));
+ test(S("abcdefghij"), 0, 11, S("12345"), 5, 1, S(""));
+ test(S("abcdefghij"), 0, 11, S("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghij"), 0, 11, S("1234567890"), 0, 0, S(""));
+ test(S("abcdefghij"), 0, 11, S("1234567890"), 0, 1, S("1"));
+ test(S("abcdefghij"), 0, 11, S("1234567890"), 0, 5, S("12345"));
+ test(S("abcdefghij"), 0, 11, S("1234567890"), 0, 9, S("123456789"));
+ test(S("abcdefghij"), 0, 11, S("1234567890"), 0, 10, S("1234567890"));
+ test(S("abcdefghij"), 0, 11, S("1234567890"), 0, 11, S("1234567890"));
+ test(S("abcdefghij"), 0, 11, S("1234567890"), 1, 0, S(""));
+ test(S("abcdefghij"), 0, 11, S("1234567890"), 1, 1, S("2"));
+ test(S("abcdefghij"), 0, 11, S("1234567890"), 1, 4, S("2345"));
+ test(S("abcdefghij"), 0, 11, S("1234567890"), 1, 8, S("23456789"));
+ test(S("abcdefghij"), 0, 11, S("1234567890"), 1, 9, S("234567890"));
+ test(S("abcdefghij"), 0, 11, S("1234567890"), 1, 10, S("234567890"));
+ test(S("abcdefghij"), 0, 11, S("1234567890"), 5, 0, S(""));
+ test(S("abcdefghij"), 0, 11, S("1234567890"), 5, 1, S("6"));
+ test(S("abcdefghij"), 0, 11, S("1234567890"), 5, 2, S("67"));
+ test(S("abcdefghij"), 0, 11, S("1234567890"), 5, 4, S("6789"));
+ test(S("abcdefghij"), 0, 11, S("1234567890"), 5, 5, S("67890"));
+ test(S("abcdefghij"), 0, 11, S("1234567890"), 5, 6, S("67890"));
+ test(S("abcdefghij"), 0, 11, S("1234567890"), 9, 0, S(""));
+ test(S("abcdefghij"), 0, 11, S("1234567890"), 9, 1, S("0"));
+ test(S("abcdefghij"), 0, 11, S("1234567890"), 9, 2, S("0"));
+ test(S("abcdefghij"), 0, 11, S("1234567890"), 10, 0, S(""));
+ test(S("abcdefghij"), 0, 11, S("1234567890"), 10, 1, S(""));
+ test(S("abcdefghij"), 0, 11, S("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghij"), 0, 11, S("12345678901234567890"), 0, 0, S(""));
+ test(S("abcdefghij"), 0, 11, S("12345678901234567890"), 0, 1, S("1"));
+ test(S("abcdefghij"), 0, 11, S("12345678901234567890"), 0, 10, S("1234567890"));
+ test(S("abcdefghij"), 0, 11, S("12345678901234567890"), 0, 19, S("1234567890123456789"));
+ test(S("abcdefghij"), 0, 11, S("12345678901234567890"), 0, 20, S("12345678901234567890"));
+ test(S("abcdefghij"), 0, 11, S("12345678901234567890"), 0, 21, S("12345678901234567890"));
+ test(S("abcdefghij"), 0, 11, S("12345678901234567890"), 1, 0, S(""));
+ test(S("abcdefghij"), 0, 11, S("12345678901234567890"), 1, 1, S("2"));
+ test(S("abcdefghij"), 0, 11, S("12345678901234567890"), 1, 9, S("234567890"));
+ test(S("abcdefghij"), 0, 11, S("12345678901234567890"), 1, 18, S("234567890123456789"));
+ test(S("abcdefghij"), 0, 11, S("12345678901234567890"), 1, 19, S("2345678901234567890"));
+ test(S("abcdefghij"), 0, 11, S("12345678901234567890"), 1, 20, S("2345678901234567890"));
+ test(S("abcdefghij"), 0, 11, S("12345678901234567890"), 10, 0, S(""));
+ test(S("abcdefghij"), 0, 11, S("12345678901234567890"), 10, 1, S("1"));
+ test(S("abcdefghij"), 0, 11, S("12345678901234567890"), 10, 5, S("12345"));
+ test(S("abcdefghij"), 0, 11, S("12345678901234567890"), 10, 9, S("123456789"));
+ test(S("abcdefghij"), 0, 11, S("12345678901234567890"), 10, 10, S("1234567890"));
+ test(S("abcdefghij"), 0, 11, S("12345678901234567890"), 10, 11, S("1234567890"));
+ test(S("abcdefghij"), 0, 11, S("12345678901234567890"), 19, 0, S(""));
+ test(S("abcdefghij"), 0, 11, S("12345678901234567890"), 19, 1, S("0"));
+ test(S("abcdefghij"), 0, 11, S("12345678901234567890"), 19, 2, S("0"));
+ test(S("abcdefghij"), 0, 11, S("12345678901234567890"), 20, 0, S(""));
+ test(S("abcdefghij"), 0, 11, S("12345678901234567890"), 20, 1, S(""));
+ test(S("abcdefghij"), 0, 11, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghij"), 1, 0, S(""), 0, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 1, 0, S(""), 0, 1, S("abcdefghij"));
+ test(S("abcdefghij"), 1, 0, S(""), 1, 0, S("can't happen"));
+ test(S("abcdefghij"), 1, 0, S("12345"), 0, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 1, 0, S("12345"), 0, 1, S("a1bcdefghij"));
+ test(S("abcdefghij"), 1, 0, S("12345"), 0, 2, S("a12bcdefghij"));
+ test(S("abcdefghij"), 1, 0, S("12345"), 0, 4, S("a1234bcdefghij"));
+ test(S("abcdefghij"), 1, 0, S("12345"), 0, 5, S("a12345bcdefghij"));
+ test(S("abcdefghij"), 1, 0, S("12345"), 0, 6, S("a12345bcdefghij"));
+ test(S("abcdefghij"), 1, 0, S("12345"), 1, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 1, 0, S("12345"), 1, 1, S("a2bcdefghij"));
+ test(S("abcdefghij"), 1, 0, S("12345"), 1, 2, S("a23bcdefghij"));
+ test(S("abcdefghij"), 1, 0, S("12345"), 1, 3, S("a234bcdefghij"));
+ test(S("abcdefghij"), 1, 0, S("12345"), 1, 4, S("a2345bcdefghij"));
+ test(S("abcdefghij"), 1, 0, S("12345"), 1, 5, S("a2345bcdefghij"));
+ test(S("abcdefghij"), 1, 0, S("12345"), 2, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 1, 0, S("12345"), 2, 1, S("a3bcdefghij"));
+ test(S("abcdefghij"), 1, 0, S("12345"), 2, 2, S("a34bcdefghij"));
+ test(S("abcdefghij"), 1, 0, S("12345"), 2, 3, S("a345bcdefghij"));
+ test(S("abcdefghij"), 1, 0, S("12345"), 2, 4, S("a345bcdefghij"));
+ test(S("abcdefghij"), 1, 0, S("12345"), 4, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 1, 0, S("12345"), 4, 1, S("a5bcdefghij"));
+ test(S("abcdefghij"), 1, 0, S("12345"), 4, 2, S("a5bcdefghij"));
+ test(S("abcdefghij"), 1, 0, S("12345"), 5, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 1, 0, S("12345"), 5, 1, S("abcdefghij"));
+ test(S("abcdefghij"), 1, 0, S("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghij"), 1, 0, S("1234567890"), 0, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 1, 0, S("1234567890"), 0, 1, S("a1bcdefghij"));
+ test(S("abcdefghij"), 1, 0, S("1234567890"), 0, 5, S("a12345bcdefghij"));
+ test(S("abcdefghij"), 1, 0, S("1234567890"), 0, 9, S("a123456789bcdefghij"));
+ test(S("abcdefghij"), 1, 0, S("1234567890"), 0, 10, S("a1234567890bcdefghij"));
+ test(S("abcdefghij"), 1, 0, S("1234567890"), 0, 11, S("a1234567890bcdefghij"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test24()
-{
- test(S("abcdefghij"), 1, 0, S("1234567890"), 1, 0, S("abcdefghij"));
- test(S("abcdefghij"), 1, 0, S("1234567890"), 1, 1, S("a2bcdefghij"));
- test(S("abcdefghij"), 1, 0, S("1234567890"), 1, 4, S("a2345bcdefghij"));
- test(S("abcdefghij"), 1, 0, S("1234567890"), 1, 8, S("a23456789bcdefghij"));
- test(S("abcdefghij"), 1, 0, S("1234567890"), 1, 9, S("a234567890bcdefghij"));
- test(S("abcdefghij"), 1, 0, S("1234567890"), 1, 10, S("a234567890bcdefghij"));
- test(S("abcdefghij"), 1, 0, S("1234567890"), 5, 0, S("abcdefghij"));
- test(S("abcdefghij"), 1, 0, S("1234567890"), 5, 1, S("a6bcdefghij"));
- test(S("abcdefghij"), 1, 0, S("1234567890"), 5, 2, S("a67bcdefghij"));
- test(S("abcdefghij"), 1, 0, S("1234567890"), 5, 4, S("a6789bcdefghij"));
- test(S("abcdefghij"), 1, 0, S("1234567890"), 5, 5, S("a67890bcdefghij"));
- test(S("abcdefghij"), 1, 0, S("1234567890"), 5, 6, S("a67890bcdefghij"));
- test(S("abcdefghij"), 1, 0, S("1234567890"), 9, 0, S("abcdefghij"));
- test(S("abcdefghij"), 1, 0, S("1234567890"), 9, 1, S("a0bcdefghij"));
- test(S("abcdefghij"), 1, 0, S("1234567890"), 9, 2, S("a0bcdefghij"));
- test(S("abcdefghij"), 1, 0, S("1234567890"), 10, 0, S("abcdefghij"));
- test(S("abcdefghij"), 1, 0, S("1234567890"), 10, 1, S("abcdefghij"));
- test(S("abcdefghij"), 1, 0, S("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghij"), 1, 0, S("12345678901234567890"), 0, 0, S("abcdefghij"));
- test(S("abcdefghij"), 1, 0, S("12345678901234567890"), 0, 1, S("a1bcdefghij"));
- test(S("abcdefghij"), 1, 0, S("12345678901234567890"), 0, 10, S("a1234567890bcdefghij"));
- test(S("abcdefghij"), 1, 0, S("12345678901234567890"), 0, 19, S("a1234567890123456789bcdefghij"));
- test(S("abcdefghij"), 1, 0, S("12345678901234567890"), 0, 20, S("a12345678901234567890bcdefghij"));
- test(S("abcdefghij"), 1, 0, S("12345678901234567890"), 0, 21, S("a12345678901234567890bcdefghij"));
- test(S("abcdefghij"), 1, 0, S("12345678901234567890"), 1, 0, S("abcdefghij"));
- test(S("abcdefghij"), 1, 0, S("12345678901234567890"), 1, 1, S("a2bcdefghij"));
- test(S("abcdefghij"), 1, 0, S("12345678901234567890"), 1, 9, S("a234567890bcdefghij"));
- test(S("abcdefghij"), 1, 0, S("12345678901234567890"), 1, 18, S("a234567890123456789bcdefghij"));
- test(S("abcdefghij"), 1, 0, S("12345678901234567890"), 1, 19, S("a2345678901234567890bcdefghij"));
- test(S("abcdefghij"), 1, 0, S("12345678901234567890"), 1, 20, S("a2345678901234567890bcdefghij"));
- test(S("abcdefghij"), 1, 0, S("12345678901234567890"), 10, 0, S("abcdefghij"));
- test(S("abcdefghij"), 1, 0, S("12345678901234567890"), 10, 1, S("a1bcdefghij"));
- test(S("abcdefghij"), 1, 0, S("12345678901234567890"), 10, 5, S("a12345bcdefghij"));
- test(S("abcdefghij"), 1, 0, S("12345678901234567890"), 10, 9, S("a123456789bcdefghij"));
- test(S("abcdefghij"), 1, 0, S("12345678901234567890"), 10, 10, S("a1234567890bcdefghij"));
- test(S("abcdefghij"), 1, 0, S("12345678901234567890"), 10, 11, S("a1234567890bcdefghij"));
- test(S("abcdefghij"), 1, 0, S("12345678901234567890"), 19, 0, S("abcdefghij"));
- test(S("abcdefghij"), 1, 0, S("12345678901234567890"), 19, 1, S("a0bcdefghij"));
- test(S("abcdefghij"), 1, 0, S("12345678901234567890"), 19, 2, S("a0bcdefghij"));
- test(S("abcdefghij"), 1, 0, S("12345678901234567890"), 20, 0, S("abcdefghij"));
- test(S("abcdefghij"), 1, 0, S("12345678901234567890"), 20, 1, S("abcdefghij"));
- test(S("abcdefghij"), 1, 0, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghij"), 1, 1, S(""), 0, 0, S("acdefghij"));
- test(S("abcdefghij"), 1, 1, S(""), 0, 1, S("acdefghij"));
- test(S("abcdefghij"), 1, 1, S(""), 1, 0, S("can't happen"));
- test(S("abcdefghij"), 1, 1, S("12345"), 0, 0, S("acdefghij"));
- test(S("abcdefghij"), 1, 1, S("12345"), 0, 1, S("a1cdefghij"));
- test(S("abcdefghij"), 1, 1, S("12345"), 0, 2, S("a12cdefghij"));
- test(S("abcdefghij"), 1, 1, S("12345"), 0, 4, S("a1234cdefghij"));
- test(S("abcdefghij"), 1, 1, S("12345"), 0, 5, S("a12345cdefghij"));
- test(S("abcdefghij"), 1, 1, S("12345"), 0, 6, S("a12345cdefghij"));
- test(S("abcdefghij"), 1, 1, S("12345"), 1, 0, S("acdefghij"));
- test(S("abcdefghij"), 1, 1, S("12345"), 1, 1, S("a2cdefghij"));
- test(S("abcdefghij"), 1, 1, S("12345"), 1, 2, S("a23cdefghij"));
- test(S("abcdefghij"), 1, 1, S("12345"), 1, 3, S("a234cdefghij"));
- test(S("abcdefghij"), 1, 1, S("12345"), 1, 4, S("a2345cdefghij"));
- test(S("abcdefghij"), 1, 1, S("12345"), 1, 5, S("a2345cdefghij"));
- test(S("abcdefghij"), 1, 1, S("12345"), 2, 0, S("acdefghij"));
- test(S("abcdefghij"), 1, 1, S("12345"), 2, 1, S("a3cdefghij"));
- test(S("abcdefghij"), 1, 1, S("12345"), 2, 2, S("a34cdefghij"));
- test(S("abcdefghij"), 1, 1, S("12345"), 2, 3, S("a345cdefghij"));
- test(S("abcdefghij"), 1, 1, S("12345"), 2, 4, S("a345cdefghij"));
- test(S("abcdefghij"), 1, 1, S("12345"), 4, 0, S("acdefghij"));
- test(S("abcdefghij"), 1, 1, S("12345"), 4, 1, S("a5cdefghij"));
- test(S("abcdefghij"), 1, 1, S("12345"), 4, 2, S("a5cdefghij"));
- test(S("abcdefghij"), 1, 1, S("12345"), 5, 0, S("acdefghij"));
- test(S("abcdefghij"), 1, 1, S("12345"), 5, 1, S("acdefghij"));
- test(S("abcdefghij"), 1, 1, S("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghij"), 1, 1, S("1234567890"), 0, 0, S("acdefghij"));
- test(S("abcdefghij"), 1, 1, S("1234567890"), 0, 1, S("a1cdefghij"));
- test(S("abcdefghij"), 1, 1, S("1234567890"), 0, 5, S("a12345cdefghij"));
- test(S("abcdefghij"), 1, 1, S("1234567890"), 0, 9, S("a123456789cdefghij"));
- test(S("abcdefghij"), 1, 1, S("1234567890"), 0, 10, S("a1234567890cdefghij"));
- test(S("abcdefghij"), 1, 1, S("1234567890"), 0, 11, S("a1234567890cdefghij"));
- test(S("abcdefghij"), 1, 1, S("1234567890"), 1, 0, S("acdefghij"));
- test(S("abcdefghij"), 1, 1, S("1234567890"), 1, 1, S("a2cdefghij"));
- test(S("abcdefghij"), 1, 1, S("1234567890"), 1, 4, S("a2345cdefghij"));
- test(S("abcdefghij"), 1, 1, S("1234567890"), 1, 8, S("a23456789cdefghij"));
- test(S("abcdefghij"), 1, 1, S("1234567890"), 1, 9, S("a234567890cdefghij"));
- test(S("abcdefghij"), 1, 1, S("1234567890"), 1, 10, S("a234567890cdefghij"));
- test(S("abcdefghij"), 1, 1, S("1234567890"), 5, 0, S("acdefghij"));
- test(S("abcdefghij"), 1, 1, S("1234567890"), 5, 1, S("a6cdefghij"));
- test(S("abcdefghij"), 1, 1, S("1234567890"), 5, 2, S("a67cdefghij"));
- test(S("abcdefghij"), 1, 1, S("1234567890"), 5, 4, S("a6789cdefghij"));
- test(S("abcdefghij"), 1, 1, S("1234567890"), 5, 5, S("a67890cdefghij"));
- test(S("abcdefghij"), 1, 1, S("1234567890"), 5, 6, S("a67890cdefghij"));
- test(S("abcdefghij"), 1, 1, S("1234567890"), 9, 0, S("acdefghij"));
- test(S("abcdefghij"), 1, 1, S("1234567890"), 9, 1, S("a0cdefghij"));
- test(S("abcdefghij"), 1, 1, S("1234567890"), 9, 2, S("a0cdefghij"));
- test(S("abcdefghij"), 1, 1, S("1234567890"), 10, 0, S("acdefghij"));
- test(S("abcdefghij"), 1, 1, S("1234567890"), 10, 1, S("acdefghij"));
- test(S("abcdefghij"), 1, 1, S("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghij"), 1, 1, S("12345678901234567890"), 0, 0, S("acdefghij"));
- test(S("abcdefghij"), 1, 1, S("12345678901234567890"), 0, 1, S("a1cdefghij"));
- test(S("abcdefghij"), 1, 1, S("12345678901234567890"), 0, 10, S("a1234567890cdefghij"));
- test(S("abcdefghij"), 1, 1, S("12345678901234567890"), 0, 19, S("a1234567890123456789cdefghij"));
- test(S("abcdefghij"), 1, 1, S("12345678901234567890"), 0, 20, S("a12345678901234567890cdefghij"));
- test(S("abcdefghij"), 1, 1, S("12345678901234567890"), 0, 21, S("a12345678901234567890cdefghij"));
- test(S("abcdefghij"), 1, 1, S("12345678901234567890"), 1, 0, S("acdefghij"));
- test(S("abcdefghij"), 1, 1, S("12345678901234567890"), 1, 1, S("a2cdefghij"));
+TEST_CONSTEXPR_CXX20 bool test24() {
+ test(S("abcdefghij"), 1, 0, S("1234567890"), 1, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 1, 0, S("1234567890"), 1, 1, S("a2bcdefghij"));
+ test(S("abcdefghij"), 1, 0, S("1234567890"), 1, 4, S("a2345bcdefghij"));
+ test(S("abcdefghij"), 1, 0, S("1234567890"), 1, 8, S("a23456789bcdefghij"));
+ test(S("abcdefghij"), 1, 0, S("1234567890"), 1, 9, S("a234567890bcdefghij"));
+ test(S("abcdefghij"), 1, 0, S("1234567890"), 1, 10, S("a234567890bcdefghij"));
+ test(S("abcdefghij"), 1, 0, S("1234567890"), 5, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 1, 0, S("1234567890"), 5, 1, S("a6bcdefghij"));
+ test(S("abcdefghij"), 1, 0, S("1234567890"), 5, 2, S("a67bcdefghij"));
+ test(S("abcdefghij"), 1, 0, S("1234567890"), 5, 4, S("a6789bcdefghij"));
+ test(S("abcdefghij"), 1, 0, S("1234567890"), 5, 5, S("a67890bcdefghij"));
+ test(S("abcdefghij"), 1, 0, S("1234567890"), 5, 6, S("a67890bcdefghij"));
+ test(S("abcdefghij"), 1, 0, S("1234567890"), 9, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 1, 0, S("1234567890"), 9, 1, S("a0bcdefghij"));
+ test(S("abcdefghij"), 1, 0, S("1234567890"), 9, 2, S("a0bcdefghij"));
+ test(S("abcdefghij"), 1, 0, S("1234567890"), 10, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 1, 0, S("1234567890"), 10, 1, S("abcdefghij"));
+ test(S("abcdefghij"), 1, 0, S("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghij"), 1, 0, S("12345678901234567890"), 0, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 1, 0, S("12345678901234567890"), 0, 1, S("a1bcdefghij"));
+ test(S("abcdefghij"), 1, 0, S("12345678901234567890"), 0, 10, S("a1234567890bcdefghij"));
+ test(S("abcdefghij"), 1, 0, S("12345678901234567890"), 0, 19, S("a1234567890123456789bcdefghij"));
+ test(S("abcdefghij"), 1, 0, S("12345678901234567890"), 0, 20, S("a12345678901234567890bcdefghij"));
+ test(S("abcdefghij"), 1, 0, S("12345678901234567890"), 0, 21, S("a12345678901234567890bcdefghij"));
+ test(S("abcdefghij"), 1, 0, S("12345678901234567890"), 1, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 1, 0, S("12345678901234567890"), 1, 1, S("a2bcdefghij"));
+ test(S("abcdefghij"), 1, 0, S("12345678901234567890"), 1, 9, S("a234567890bcdefghij"));
+ test(S("abcdefghij"), 1, 0, S("12345678901234567890"), 1, 18, S("a234567890123456789bcdefghij"));
+ test(S("abcdefghij"), 1, 0, S("12345678901234567890"), 1, 19, S("a2345678901234567890bcdefghij"));
+ test(S("abcdefghij"), 1, 0, S("12345678901234567890"), 1, 20, S("a2345678901234567890bcdefghij"));
+ test(S("abcdefghij"), 1, 0, S("12345678901234567890"), 10, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 1, 0, S("12345678901234567890"), 10, 1, S("a1bcdefghij"));
+ test(S("abcdefghij"), 1, 0, S("12345678901234567890"), 10, 5, S("a12345bcdefghij"));
+ test(S("abcdefghij"), 1, 0, S("12345678901234567890"), 10, 9, S("a123456789bcdefghij"));
+ test(S("abcdefghij"), 1, 0, S("12345678901234567890"), 10, 10, S("a1234567890bcdefghij"));
+ test(S("abcdefghij"), 1, 0, S("12345678901234567890"), 10, 11, S("a1234567890bcdefghij"));
+ test(S("abcdefghij"), 1, 0, S("12345678901234567890"), 19, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 1, 0, S("12345678901234567890"), 19, 1, S("a0bcdefghij"));
+ test(S("abcdefghij"), 1, 0, S("12345678901234567890"), 19, 2, S("a0bcdefghij"));
+ test(S("abcdefghij"), 1, 0, S("12345678901234567890"), 20, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 1, 0, S("12345678901234567890"), 20, 1, S("abcdefghij"));
+ test(S("abcdefghij"), 1, 0, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghij"), 1, 1, S(""), 0, 0, S("acdefghij"));
+ test(S("abcdefghij"), 1, 1, S(""), 0, 1, S("acdefghij"));
+ test(S("abcdefghij"), 1, 1, S(""), 1, 0, S("can't happen"));
+ test(S("abcdefghij"), 1, 1, S("12345"), 0, 0, S("acdefghij"));
+ test(S("abcdefghij"), 1, 1, S("12345"), 0, 1, S("a1cdefghij"));
+ test(S("abcdefghij"), 1, 1, S("12345"), 0, 2, S("a12cdefghij"));
+ test(S("abcdefghij"), 1, 1, S("12345"), 0, 4, S("a1234cdefghij"));
+ test(S("abcdefghij"), 1, 1, S("12345"), 0, 5, S("a12345cdefghij"));
+ test(S("abcdefghij"), 1, 1, S("12345"), 0, 6, S("a12345cdefghij"));
+ test(S("abcdefghij"), 1, 1, S("12345"), 1, 0, S("acdefghij"));
+ test(S("abcdefghij"), 1, 1, S("12345"), 1, 1, S("a2cdefghij"));
+ test(S("abcdefghij"), 1, 1, S("12345"), 1, 2, S("a23cdefghij"));
+ test(S("abcdefghij"), 1, 1, S("12345"), 1, 3, S("a234cdefghij"));
+ test(S("abcdefghij"), 1, 1, S("12345"), 1, 4, S("a2345cdefghij"));
+ test(S("abcdefghij"), 1, 1, S("12345"), 1, 5, S("a2345cdefghij"));
+ test(S("abcdefghij"), 1, 1, S("12345"), 2, 0, S("acdefghij"));
+ test(S("abcdefghij"), 1, 1, S("12345"), 2, 1, S("a3cdefghij"));
+ test(S("abcdefghij"), 1, 1, S("12345"), 2, 2, S("a34cdefghij"));
+ test(S("abcdefghij"), 1, 1, S("12345"), 2, 3, S("a345cdefghij"));
+ test(S("abcdefghij"), 1, 1, S("12345"), 2, 4, S("a345cdefghij"));
+ test(S("abcdefghij"), 1, 1, S("12345"), 4, 0, S("acdefghij"));
+ test(S("abcdefghij"), 1, 1, S("12345"), 4, 1, S("a5cdefghij"));
+ test(S("abcdefghij"), 1, 1, S("12345"), 4, 2, S("a5cdefghij"));
+ test(S("abcdefghij"), 1, 1, S("12345"), 5, 0, S("acdefghij"));
+ test(S("abcdefghij"), 1, 1, S("12345"), 5, 1, S("acdefghij"));
+ test(S("abcdefghij"), 1, 1, S("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghij"), 1, 1, S("1234567890"), 0, 0, S("acdefghij"));
+ test(S("abcdefghij"), 1, 1, S("1234567890"), 0, 1, S("a1cdefghij"));
+ test(S("abcdefghij"), 1, 1, S("1234567890"), 0, 5, S("a12345cdefghij"));
+ test(S("abcdefghij"), 1, 1, S("1234567890"), 0, 9, S("a123456789cdefghij"));
+ test(S("abcdefghij"), 1, 1, S("1234567890"), 0, 10, S("a1234567890cdefghij"));
+ test(S("abcdefghij"), 1, 1, S("1234567890"), 0, 11, S("a1234567890cdefghij"));
+ test(S("abcdefghij"), 1, 1, S("1234567890"), 1, 0, S("acdefghij"));
+ test(S("abcdefghij"), 1, 1, S("1234567890"), 1, 1, S("a2cdefghij"));
+ test(S("abcdefghij"), 1, 1, S("1234567890"), 1, 4, S("a2345cdefghij"));
+ test(S("abcdefghij"), 1, 1, S("1234567890"), 1, 8, S("a23456789cdefghij"));
+ test(S("abcdefghij"), 1, 1, S("1234567890"), 1, 9, S("a234567890cdefghij"));
+ test(S("abcdefghij"), 1, 1, S("1234567890"), 1, 10, S("a234567890cdefghij"));
+ test(S("abcdefghij"), 1, 1, S("1234567890"), 5, 0, S("acdefghij"));
+ test(S("abcdefghij"), 1, 1, S("1234567890"), 5, 1, S("a6cdefghij"));
+ test(S("abcdefghij"), 1, 1, S("1234567890"), 5, 2, S("a67cdefghij"));
+ test(S("abcdefghij"), 1, 1, S("1234567890"), 5, 4, S("a6789cdefghij"));
+ test(S("abcdefghij"), 1, 1, S("1234567890"), 5, 5, S("a67890cdefghij"));
+ test(S("abcdefghij"), 1, 1, S("1234567890"), 5, 6, S("a67890cdefghij"));
+ test(S("abcdefghij"), 1, 1, S("1234567890"), 9, 0, S("acdefghij"));
+ test(S("abcdefghij"), 1, 1, S("1234567890"), 9, 1, S("a0cdefghij"));
+ test(S("abcdefghij"), 1, 1, S("1234567890"), 9, 2, S("a0cdefghij"));
+ test(S("abcdefghij"), 1, 1, S("1234567890"), 10, 0, S("acdefghij"));
+ test(S("abcdefghij"), 1, 1, S("1234567890"), 10, 1, S("acdefghij"));
+ test(S("abcdefghij"), 1, 1, S("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghij"), 1, 1, S("12345678901234567890"), 0, 0, S("acdefghij"));
+ test(S("abcdefghij"), 1, 1, S("12345678901234567890"), 0, 1, S("a1cdefghij"));
+ test(S("abcdefghij"), 1, 1, S("12345678901234567890"), 0, 10, S("a1234567890cdefghij"));
+ test(S("abcdefghij"), 1, 1, S("12345678901234567890"), 0, 19, S("a1234567890123456789cdefghij"));
+ test(S("abcdefghij"), 1, 1, S("12345678901234567890"), 0, 20, S("a12345678901234567890cdefghij"));
+ test(S("abcdefghij"), 1, 1, S("12345678901234567890"), 0, 21, S("a12345678901234567890cdefghij"));
+ test(S("abcdefghij"), 1, 1, S("12345678901234567890"), 1, 0, S("acdefghij"));
+ test(S("abcdefghij"), 1, 1, S("12345678901234567890"), 1, 1, S("a2cdefghij"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test25()
-{
- test(S("abcdefghij"), 1, 1, S("12345678901234567890"), 1, 9, S("a234567890cdefghij"));
- test(S("abcdefghij"), 1, 1, S("12345678901234567890"), 1, 18, S("a234567890123456789cdefghij"));
- test(S("abcdefghij"), 1, 1, S("12345678901234567890"), 1, 19, S("a2345678901234567890cdefghij"));
- test(S("abcdefghij"), 1, 1, S("12345678901234567890"), 1, 20, S("a2345678901234567890cdefghij"));
- test(S("abcdefghij"), 1, 1, S("12345678901234567890"), 10, 0, S("acdefghij"));
- test(S("abcdefghij"), 1, 1, S("12345678901234567890"), 10, 1, S("a1cdefghij"));
- test(S("abcdefghij"), 1, 1, S("12345678901234567890"), 10, 5, S("a12345cdefghij"));
- test(S("abcdefghij"), 1, 1, S("12345678901234567890"), 10, 9, S("a123456789cdefghij"));
- test(S("abcdefghij"), 1, 1, S("12345678901234567890"), 10, 10, S("a1234567890cdefghij"));
- test(S("abcdefghij"), 1, 1, S("12345678901234567890"), 10, 11, S("a1234567890cdefghij"));
- test(S("abcdefghij"), 1, 1, S("12345678901234567890"), 19, 0, S("acdefghij"));
- test(S("abcdefghij"), 1, 1, S("12345678901234567890"), 19, 1, S("a0cdefghij"));
- test(S("abcdefghij"), 1, 1, S("12345678901234567890"), 19, 2, S("a0cdefghij"));
- test(S("abcdefghij"), 1, 1, S("12345678901234567890"), 20, 0, S("acdefghij"));
- test(S("abcdefghij"), 1, 1, S("12345678901234567890"), 20, 1, S("acdefghij"));
- test(S("abcdefghij"), 1, 1, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghij"), 1, 4, S(""), 0, 0, S("afghij"));
- test(S("abcdefghij"), 1, 4, S(""), 0, 1, S("afghij"));
- test(S("abcdefghij"), 1, 4, S(""), 1, 0, S("can't happen"));
- test(S("abcdefghij"), 1, 4, S("12345"), 0, 0, S("afghij"));
- test(S("abcdefghij"), 1, 4, S("12345"), 0, 1, S("a1fghij"));
- test(S("abcdefghij"), 1, 4, S("12345"), 0, 2, S("a12fghij"));
- test(S("abcdefghij"), 1, 4, S("12345"), 0, 4, S("a1234fghij"));
- test(S("abcdefghij"), 1, 4, S("12345"), 0, 5, S("a12345fghij"));
- test(S("abcdefghij"), 1, 4, S("12345"), 0, 6, S("a12345fghij"));
- test(S("abcdefghij"), 1, 4, S("12345"), 1, 0, S("afghij"));
- test(S("abcdefghij"), 1, 4, S("12345"), 1, 1, S("a2fghij"));
- test(S("abcdefghij"), 1, 4, S("12345"), 1, 2, S("a23fghij"));
- test(S("abcdefghij"), 1, 4, S("12345"), 1, 3, S("a234fghij"));
- test(S("abcdefghij"), 1, 4, S("12345"), 1, 4, S("a2345fghij"));
- test(S("abcdefghij"), 1, 4, S("12345"), 1, 5, S("a2345fghij"));
- test(S("abcdefghij"), 1, 4, S("12345"), 2, 0, S("afghij"));
- test(S("abcdefghij"), 1, 4, S("12345"), 2, 1, S("a3fghij"));
- test(S("abcdefghij"), 1, 4, S("12345"), 2, 2, S("a34fghij"));
- test(S("abcdefghij"), 1, 4, S("12345"), 2, 3, S("a345fghij"));
- test(S("abcdefghij"), 1, 4, S("12345"), 2, 4, S("a345fghij"));
- test(S("abcdefghij"), 1, 4, S("12345"), 4, 0, S("afghij"));
- test(S("abcdefghij"), 1, 4, S("12345"), 4, 1, S("a5fghij"));
- test(S("abcdefghij"), 1, 4, S("12345"), 4, 2, S("a5fghij"));
- test(S("abcdefghij"), 1, 4, S("12345"), 5, 0, S("afghij"));
- test(S("abcdefghij"), 1, 4, S("12345"), 5, 1, S("afghij"));
- test(S("abcdefghij"), 1, 4, S("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghij"), 1, 4, S("1234567890"), 0, 0, S("afghij"));
- test(S("abcdefghij"), 1, 4, S("1234567890"), 0, 1, S("a1fghij"));
- test(S("abcdefghij"), 1, 4, S("1234567890"), 0, 5, S("a12345fghij"));
- test(S("abcdefghij"), 1, 4, S("1234567890"), 0, 9, S("a123456789fghij"));
- test(S("abcdefghij"), 1, 4, S("1234567890"), 0, 10, S("a1234567890fghij"));
- test(S("abcdefghij"), 1, 4, S("1234567890"), 0, 11, S("a1234567890fghij"));
- test(S("abcdefghij"), 1, 4, S("1234567890"), 1, 0, S("afghij"));
- test(S("abcdefghij"), 1, 4, S("1234567890"), 1, 1, S("a2fghij"));
- test(S("abcdefghij"), 1, 4, S("1234567890"), 1, 4, S("a2345fghij"));
- test(S("abcdefghij"), 1, 4, S("1234567890"), 1, 8, S("a23456789fghij"));
- test(S("abcdefghij"), 1, 4, S("1234567890"), 1, 9, S("a234567890fghij"));
- test(S("abcdefghij"), 1, 4, S("1234567890"), 1, 10, S("a234567890fghij"));
- test(S("abcdefghij"), 1, 4, S("1234567890"), 5, 0, S("afghij"));
- test(S("abcdefghij"), 1, 4, S("1234567890"), 5, 1, S("a6fghij"));
- test(S("abcdefghij"), 1, 4, S("1234567890"), 5, 2, S("a67fghij"));
- test(S("abcdefghij"), 1, 4, S("1234567890"), 5, 4, S("a6789fghij"));
- test(S("abcdefghij"), 1, 4, S("1234567890"), 5, 5, S("a67890fghij"));
- test(S("abcdefghij"), 1, 4, S("1234567890"), 5, 6, S("a67890fghij"));
- test(S("abcdefghij"), 1, 4, S("1234567890"), 9, 0, S("afghij"));
- test(S("abcdefghij"), 1, 4, S("1234567890"), 9, 1, S("a0fghij"));
- test(S("abcdefghij"), 1, 4, S("1234567890"), 9, 2, S("a0fghij"));
- test(S("abcdefghij"), 1, 4, S("1234567890"), 10, 0, S("afghij"));
- test(S("abcdefghij"), 1, 4, S("1234567890"), 10, 1, S("afghij"));
- test(S("abcdefghij"), 1, 4, S("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghij"), 1, 4, S("12345678901234567890"), 0, 0, S("afghij"));
- test(S("abcdefghij"), 1, 4, S("12345678901234567890"), 0, 1, S("a1fghij"));
- test(S("abcdefghij"), 1, 4, S("12345678901234567890"), 0, 10, S("a1234567890fghij"));
- test(S("abcdefghij"), 1, 4, S("12345678901234567890"), 0, 19, S("a1234567890123456789fghij"));
- test(S("abcdefghij"), 1, 4, S("12345678901234567890"), 0, 20, S("a12345678901234567890fghij"));
- test(S("abcdefghij"), 1, 4, S("12345678901234567890"), 0, 21, S("a12345678901234567890fghij"));
- test(S("abcdefghij"), 1, 4, S("12345678901234567890"), 1, 0, S("afghij"));
- test(S("abcdefghij"), 1, 4, S("12345678901234567890"), 1, 1, S("a2fghij"));
- test(S("abcdefghij"), 1, 4, S("12345678901234567890"), 1, 9, S("a234567890fghij"));
- test(S("abcdefghij"), 1, 4, S("12345678901234567890"), 1, 18, S("a234567890123456789fghij"));
- test(S("abcdefghij"), 1, 4, S("12345678901234567890"), 1, 19, S("a2345678901234567890fghij"));
- test(S("abcdefghij"), 1, 4, S("12345678901234567890"), 1, 20, S("a2345678901234567890fghij"));
- test(S("abcdefghij"), 1, 4, S("12345678901234567890"), 10, 0, S("afghij"));
- test(S("abcdefghij"), 1, 4, S("12345678901234567890"), 10, 1, S("a1fghij"));
- test(S("abcdefghij"), 1, 4, S("12345678901234567890"), 10, 5, S("a12345fghij"));
- test(S("abcdefghij"), 1, 4, S("12345678901234567890"), 10, 9, S("a123456789fghij"));
- test(S("abcdefghij"), 1, 4, S("12345678901234567890"), 10, 10, S("a1234567890fghij"));
- test(S("abcdefghij"), 1, 4, S("12345678901234567890"), 10, 11, S("a1234567890fghij"));
- test(S("abcdefghij"), 1, 4, S("12345678901234567890"), 19, 0, S("afghij"));
- test(S("abcdefghij"), 1, 4, S("12345678901234567890"), 19, 1, S("a0fghij"));
- test(S("abcdefghij"), 1, 4, S("12345678901234567890"), 19, 2, S("a0fghij"));
- test(S("abcdefghij"), 1, 4, S("12345678901234567890"), 20, 0, S("afghij"));
- test(S("abcdefghij"), 1, 4, S("12345678901234567890"), 20, 1, S("afghij"));
- test(S("abcdefghij"), 1, 4, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghij"), 1, 8, S(""), 0, 0, S("aj"));
- test(S("abcdefghij"), 1, 8, S(""), 0, 1, S("aj"));
- test(S("abcdefghij"), 1, 8, S(""), 1, 0, S("can't happen"));
- test(S("abcdefghij"), 1, 8, S("12345"), 0, 0, S("aj"));
- test(S("abcdefghij"), 1, 8, S("12345"), 0, 1, S("a1j"));
- test(S("abcdefghij"), 1, 8, S("12345"), 0, 2, S("a12j"));
- test(S("abcdefghij"), 1, 8, S("12345"), 0, 4, S("a1234j"));
- test(S("abcdefghij"), 1, 8, S("12345"), 0, 5, S("a12345j"));
- test(S("abcdefghij"), 1, 8, S("12345"), 0, 6, S("a12345j"));
- test(S("abcdefghij"), 1, 8, S("12345"), 1, 0, S("aj"));
+TEST_CONSTEXPR_CXX20 bool test25() {
+ test(S("abcdefghij"), 1, 1, S("12345678901234567890"), 1, 9, S("a234567890cdefghij"));
+ test(S("abcdefghij"), 1, 1, S("12345678901234567890"), 1, 18, S("a234567890123456789cdefghij"));
+ test(S("abcdefghij"), 1, 1, S("12345678901234567890"), 1, 19, S("a2345678901234567890cdefghij"));
+ test(S("abcdefghij"), 1, 1, S("12345678901234567890"), 1, 20, S("a2345678901234567890cdefghij"));
+ test(S("abcdefghij"), 1, 1, S("12345678901234567890"), 10, 0, S("acdefghij"));
+ test(S("abcdefghij"), 1, 1, S("12345678901234567890"), 10, 1, S("a1cdefghij"));
+ test(S("abcdefghij"), 1, 1, S("12345678901234567890"), 10, 5, S("a12345cdefghij"));
+ test(S("abcdefghij"), 1, 1, S("12345678901234567890"), 10, 9, S("a123456789cdefghij"));
+ test(S("abcdefghij"), 1, 1, S("12345678901234567890"), 10, 10, S("a1234567890cdefghij"));
+ test(S("abcdefghij"), 1, 1, S("12345678901234567890"), 10, 11, S("a1234567890cdefghij"));
+ test(S("abcdefghij"), 1, 1, S("12345678901234567890"), 19, 0, S("acdefghij"));
+ test(S("abcdefghij"), 1, 1, S("12345678901234567890"), 19, 1, S("a0cdefghij"));
+ test(S("abcdefghij"), 1, 1, S("12345678901234567890"), 19, 2, S("a0cdefghij"));
+ test(S("abcdefghij"), 1, 1, S("12345678901234567890"), 20, 0, S("acdefghij"));
+ test(S("abcdefghij"), 1, 1, S("12345678901234567890"), 20, 1, S("acdefghij"));
+ test(S("abcdefghij"), 1, 1, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghij"), 1, 4, S(""), 0, 0, S("afghij"));
+ test(S("abcdefghij"), 1, 4, S(""), 0, 1, S("afghij"));
+ test(S("abcdefghij"), 1, 4, S(""), 1, 0, S("can't happen"));
+ test(S("abcdefghij"), 1, 4, S("12345"), 0, 0, S("afghij"));
+ test(S("abcdefghij"), 1, 4, S("12345"), 0, 1, S("a1fghij"));
+ test(S("abcdefghij"), 1, 4, S("12345"), 0, 2, S("a12fghij"));
+ test(S("abcdefghij"), 1, 4, S("12345"), 0, 4, S("a1234fghij"));
+ test(S("abcdefghij"), 1, 4, S("12345"), 0, 5, S("a12345fghij"));
+ test(S("abcdefghij"), 1, 4, S("12345"), 0, 6, S("a12345fghij"));
+ test(S("abcdefghij"), 1, 4, S("12345"), 1, 0, S("afghij"));
+ test(S("abcdefghij"), 1, 4, S("12345"), 1, 1, S("a2fghij"));
+ test(S("abcdefghij"), 1, 4, S("12345"), 1, 2, S("a23fghij"));
+ test(S("abcdefghij"), 1, 4, S("12345"), 1, 3, S("a234fghij"));
+ test(S("abcdefghij"), 1, 4, S("12345"), 1, 4, S("a2345fghij"));
+ test(S("abcdefghij"), 1, 4, S("12345"), 1, 5, S("a2345fghij"));
+ test(S("abcdefghij"), 1, 4, S("12345"), 2, 0, S("afghij"));
+ test(S("abcdefghij"), 1, 4, S("12345"), 2, 1, S("a3fghij"));
+ test(S("abcdefghij"), 1, 4, S("12345"), 2, 2, S("a34fghij"));
+ test(S("abcdefghij"), 1, 4, S("12345"), 2, 3, S("a345fghij"));
+ test(S("abcdefghij"), 1, 4, S("12345"), 2, 4, S("a345fghij"));
+ test(S("abcdefghij"), 1, 4, S("12345"), 4, 0, S("afghij"));
+ test(S("abcdefghij"), 1, 4, S("12345"), 4, 1, S("a5fghij"));
+ test(S("abcdefghij"), 1, 4, S("12345"), 4, 2, S("a5fghij"));
+ test(S("abcdefghij"), 1, 4, S("12345"), 5, 0, S("afghij"));
+ test(S("abcdefghij"), 1, 4, S("12345"), 5, 1, S("afghij"));
+ test(S("abcdefghij"), 1, 4, S("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghij"), 1, 4, S("1234567890"), 0, 0, S("afghij"));
+ test(S("abcdefghij"), 1, 4, S("1234567890"), 0, 1, S("a1fghij"));
+ test(S("abcdefghij"), 1, 4, S("1234567890"), 0, 5, S("a12345fghij"));
+ test(S("abcdefghij"), 1, 4, S("1234567890"), 0, 9, S("a123456789fghij"));
+ test(S("abcdefghij"), 1, 4, S("1234567890"), 0, 10, S("a1234567890fghij"));
+ test(S("abcdefghij"), 1, 4, S("1234567890"), 0, 11, S("a1234567890fghij"));
+ test(S("abcdefghij"), 1, 4, S("1234567890"), 1, 0, S("afghij"));
+ test(S("abcdefghij"), 1, 4, S("1234567890"), 1, 1, S("a2fghij"));
+ test(S("abcdefghij"), 1, 4, S("1234567890"), 1, 4, S("a2345fghij"));
+ test(S("abcdefghij"), 1, 4, S("1234567890"), 1, 8, S("a23456789fghij"));
+ test(S("abcdefghij"), 1, 4, S("1234567890"), 1, 9, S("a234567890fghij"));
+ test(S("abcdefghij"), 1, 4, S("1234567890"), 1, 10, S("a234567890fghij"));
+ test(S("abcdefghij"), 1, 4, S("1234567890"), 5, 0, S("afghij"));
+ test(S("abcdefghij"), 1, 4, S("1234567890"), 5, 1, S("a6fghij"));
+ test(S("abcdefghij"), 1, 4, S("1234567890"), 5, 2, S("a67fghij"));
+ test(S("abcdefghij"), 1, 4, S("1234567890"), 5, 4, S("a6789fghij"));
+ test(S("abcdefghij"), 1, 4, S("1234567890"), 5, 5, S("a67890fghij"));
+ test(S("abcdefghij"), 1, 4, S("1234567890"), 5, 6, S("a67890fghij"));
+ test(S("abcdefghij"), 1, 4, S("1234567890"), 9, 0, S("afghij"));
+ test(S("abcdefghij"), 1, 4, S("1234567890"), 9, 1, S("a0fghij"));
+ test(S("abcdefghij"), 1, 4, S("1234567890"), 9, 2, S("a0fghij"));
+ test(S("abcdefghij"), 1, 4, S("1234567890"), 10, 0, S("afghij"));
+ test(S("abcdefghij"), 1, 4, S("1234567890"), 10, 1, S("afghij"));
+ test(S("abcdefghij"), 1, 4, S("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghij"), 1, 4, S("12345678901234567890"), 0, 0, S("afghij"));
+ test(S("abcdefghij"), 1, 4, S("12345678901234567890"), 0, 1, S("a1fghij"));
+ test(S("abcdefghij"), 1, 4, S("12345678901234567890"), 0, 10, S("a1234567890fghij"));
+ test(S("abcdefghij"), 1, 4, S("12345678901234567890"), 0, 19, S("a1234567890123456789fghij"));
+ test(S("abcdefghij"), 1, 4, S("12345678901234567890"), 0, 20, S("a12345678901234567890fghij"));
+ test(S("abcdefghij"), 1, 4, S("12345678901234567890"), 0, 21, S("a12345678901234567890fghij"));
+ test(S("abcdefghij"), 1, 4, S("12345678901234567890"), 1, 0, S("afghij"));
+ test(S("abcdefghij"), 1, 4, S("12345678901234567890"), 1, 1, S("a2fghij"));
+ test(S("abcdefghij"), 1, 4, S("12345678901234567890"), 1, 9, S("a234567890fghij"));
+ test(S("abcdefghij"), 1, 4, S("12345678901234567890"), 1, 18, S("a234567890123456789fghij"));
+ test(S("abcdefghij"), 1, 4, S("12345678901234567890"), 1, 19, S("a2345678901234567890fghij"));
+ test(S("abcdefghij"), 1, 4, S("12345678901234567890"), 1, 20, S("a2345678901234567890fghij"));
+ test(S("abcdefghij"), 1, 4, S("12345678901234567890"), 10, 0, S("afghij"));
+ test(S("abcdefghij"), 1, 4, S("12345678901234567890"), 10, 1, S("a1fghij"));
+ test(S("abcdefghij"), 1, 4, S("12345678901234567890"), 10, 5, S("a12345fghij"));
+ test(S("abcdefghij"), 1, 4, S("12345678901234567890"), 10, 9, S("a123456789fghij"));
+ test(S("abcdefghij"), 1, 4, S("12345678901234567890"), 10, 10, S("a1234567890fghij"));
+ test(S("abcdefghij"), 1, 4, S("12345678901234567890"), 10, 11, S("a1234567890fghij"));
+ test(S("abcdefghij"), 1, 4, S("12345678901234567890"), 19, 0, S("afghij"));
+ test(S("abcdefghij"), 1, 4, S("12345678901234567890"), 19, 1, S("a0fghij"));
+ test(S("abcdefghij"), 1, 4, S("12345678901234567890"), 19, 2, S("a0fghij"));
+ test(S("abcdefghij"), 1, 4, S("12345678901234567890"), 20, 0, S("afghij"));
+ test(S("abcdefghij"), 1, 4, S("12345678901234567890"), 20, 1, S("afghij"));
+ test(S("abcdefghij"), 1, 4, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghij"), 1, 8, S(""), 0, 0, S("aj"));
+ test(S("abcdefghij"), 1, 8, S(""), 0, 1, S("aj"));
+ test(S("abcdefghij"), 1, 8, S(""), 1, 0, S("can't happen"));
+ test(S("abcdefghij"), 1, 8, S("12345"), 0, 0, S("aj"));
+ test(S("abcdefghij"), 1, 8, S("12345"), 0, 1, S("a1j"));
+ test(S("abcdefghij"), 1, 8, S("12345"), 0, 2, S("a12j"));
+ test(S("abcdefghij"), 1, 8, S("12345"), 0, 4, S("a1234j"));
+ test(S("abcdefghij"), 1, 8, S("12345"), 0, 5, S("a12345j"));
+ test(S("abcdefghij"), 1, 8, S("12345"), 0, 6, S("a12345j"));
+ test(S("abcdefghij"), 1, 8, S("12345"), 1, 0, S("aj"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test26()
-{
- test(S("abcdefghij"), 1, 8, S("12345"), 1, 1, S("a2j"));
- test(S("abcdefghij"), 1, 8, S("12345"), 1, 2, S("a23j"));
- test(S("abcdefghij"), 1, 8, S("12345"), 1, 3, S("a234j"));
- test(S("abcdefghij"), 1, 8, S("12345"), 1, 4, S("a2345j"));
- test(S("abcdefghij"), 1, 8, S("12345"), 1, 5, S("a2345j"));
- test(S("abcdefghij"), 1, 8, S("12345"), 2, 0, S("aj"));
- test(S("abcdefghij"), 1, 8, S("12345"), 2, 1, S("a3j"));
- test(S("abcdefghij"), 1, 8, S("12345"), 2, 2, S("a34j"));
- test(S("abcdefghij"), 1, 8, S("12345"), 2, 3, S("a345j"));
- test(S("abcdefghij"), 1, 8, S("12345"), 2, 4, S("a345j"));
- test(S("abcdefghij"), 1, 8, S("12345"), 4, 0, S("aj"));
- test(S("abcdefghij"), 1, 8, S("12345"), 4, 1, S("a5j"));
- test(S("abcdefghij"), 1, 8, S("12345"), 4, 2, S("a5j"));
- test(S("abcdefghij"), 1, 8, S("12345"), 5, 0, S("aj"));
- test(S("abcdefghij"), 1, 8, S("12345"), 5, 1, S("aj"));
- test(S("abcdefghij"), 1, 8, S("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghij"), 1, 8, S("1234567890"), 0, 0, S("aj"));
- test(S("abcdefghij"), 1, 8, S("1234567890"), 0, 1, S("a1j"));
- test(S("abcdefghij"), 1, 8, S("1234567890"), 0, 5, S("a12345j"));
- test(S("abcdefghij"), 1, 8, S("1234567890"), 0, 9, S("a123456789j"));
- test(S("abcdefghij"), 1, 8, S("1234567890"), 0, 10, S("a1234567890j"));
- test(S("abcdefghij"), 1, 8, S("1234567890"), 0, 11, S("a1234567890j"));
- test(S("abcdefghij"), 1, 8, S("1234567890"), 1, 0, S("aj"));
- test(S("abcdefghij"), 1, 8, S("1234567890"), 1, 1, S("a2j"));
- test(S("abcdefghij"), 1, 8, S("1234567890"), 1, 4, S("a2345j"));
- test(S("abcdefghij"), 1, 8, S("1234567890"), 1, 8, S("a23456789j"));
- test(S("abcdefghij"), 1, 8, S("1234567890"), 1, 9, S("a234567890j"));
- test(S("abcdefghij"), 1, 8, S("1234567890"), 1, 10, S("a234567890j"));
- test(S("abcdefghij"), 1, 8, S("1234567890"), 5, 0, S("aj"));
- test(S("abcdefghij"), 1, 8, S("1234567890"), 5, 1, S("a6j"));
- test(S("abcdefghij"), 1, 8, S("1234567890"), 5, 2, S("a67j"));
- test(S("abcdefghij"), 1, 8, S("1234567890"), 5, 4, S("a6789j"));
- test(S("abcdefghij"), 1, 8, S("1234567890"), 5, 5, S("a67890j"));
- test(S("abcdefghij"), 1, 8, S("1234567890"), 5, 6, S("a67890j"));
- test(S("abcdefghij"), 1, 8, S("1234567890"), 9, 0, S("aj"));
- test(S("abcdefghij"), 1, 8, S("1234567890"), 9, 1, S("a0j"));
- test(S("abcdefghij"), 1, 8, S("1234567890"), 9, 2, S("a0j"));
- test(S("abcdefghij"), 1, 8, S("1234567890"), 10, 0, S("aj"));
- test(S("abcdefghij"), 1, 8, S("1234567890"), 10, 1, S("aj"));
- test(S("abcdefghij"), 1, 8, S("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghij"), 1, 8, S("12345678901234567890"), 0, 0, S("aj"));
- test(S("abcdefghij"), 1, 8, S("12345678901234567890"), 0, 1, S("a1j"));
- test(S("abcdefghij"), 1, 8, S("12345678901234567890"), 0, 10, S("a1234567890j"));
- test(S("abcdefghij"), 1, 8, S("12345678901234567890"), 0, 19, S("a1234567890123456789j"));
- test(S("abcdefghij"), 1, 8, S("12345678901234567890"), 0, 20, S("a12345678901234567890j"));
- test(S("abcdefghij"), 1, 8, S("12345678901234567890"), 0, 21, S("a12345678901234567890j"));
- test(S("abcdefghij"), 1, 8, S("12345678901234567890"), 1, 0, S("aj"));
- test(S("abcdefghij"), 1, 8, S("12345678901234567890"), 1, 1, S("a2j"));
- test(S("abcdefghij"), 1, 8, S("12345678901234567890"), 1, 9, S("a234567890j"));
- test(S("abcdefghij"), 1, 8, S("12345678901234567890"), 1, 18, S("a234567890123456789j"));
- test(S("abcdefghij"), 1, 8, S("12345678901234567890"), 1, 19, S("a2345678901234567890j"));
- test(S("abcdefghij"), 1, 8, S("12345678901234567890"), 1, 20, S("a2345678901234567890j"));
- test(S("abcdefghij"), 1, 8, S("12345678901234567890"), 10, 0, S("aj"));
- test(S("abcdefghij"), 1, 8, S("12345678901234567890"), 10, 1, S("a1j"));
- test(S("abcdefghij"), 1, 8, S("12345678901234567890"), 10, 5, S("a12345j"));
- test(S("abcdefghij"), 1, 8, S("12345678901234567890"), 10, 9, S("a123456789j"));
- test(S("abcdefghij"), 1, 8, S("12345678901234567890"), 10, 10, S("a1234567890j"));
- test(S("abcdefghij"), 1, 8, S("12345678901234567890"), 10, 11, S("a1234567890j"));
- test(S("abcdefghij"), 1, 8, S("12345678901234567890"), 19, 0, S("aj"));
- test(S("abcdefghij"), 1, 8, S("12345678901234567890"), 19, 1, S("a0j"));
- test(S("abcdefghij"), 1, 8, S("12345678901234567890"), 19, 2, S("a0j"));
- test(S("abcdefghij"), 1, 8, S("12345678901234567890"), 20, 0, S("aj"));
- test(S("abcdefghij"), 1, 8, S("12345678901234567890"), 20, 1, S("aj"));
- test(S("abcdefghij"), 1, 8, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghij"), 1, 9, S(""), 0, 0, S("a"));
- test(S("abcdefghij"), 1, 9, S(""), 0, 1, S("a"));
- test(S("abcdefghij"), 1, 9, S(""), 1, 0, S("can't happen"));
- test(S("abcdefghij"), 1, 9, S("12345"), 0, 0, S("a"));
- test(S("abcdefghij"), 1, 9, S("12345"), 0, 1, S("a1"));
- test(S("abcdefghij"), 1, 9, S("12345"), 0, 2, S("a12"));
- test(S("abcdefghij"), 1, 9, S("12345"), 0, 4, S("a1234"));
- test(S("abcdefghij"), 1, 9, S("12345"), 0, 5, S("a12345"));
- test(S("abcdefghij"), 1, 9, S("12345"), 0, 6, S("a12345"));
- test(S("abcdefghij"), 1, 9, S("12345"), 1, 0, S("a"));
- test(S("abcdefghij"), 1, 9, S("12345"), 1, 1, S("a2"));
- test(S("abcdefghij"), 1, 9, S("12345"), 1, 2, S("a23"));
- test(S("abcdefghij"), 1, 9, S("12345"), 1, 3, S("a234"));
- test(S("abcdefghij"), 1, 9, S("12345"), 1, 4, S("a2345"));
- test(S("abcdefghij"), 1, 9, S("12345"), 1, 5, S("a2345"));
- test(S("abcdefghij"), 1, 9, S("12345"), 2, 0, S("a"));
- test(S("abcdefghij"), 1, 9, S("12345"), 2, 1, S("a3"));
- test(S("abcdefghij"), 1, 9, S("12345"), 2, 2, S("a34"));
- test(S("abcdefghij"), 1, 9, S("12345"), 2, 3, S("a345"));
- test(S("abcdefghij"), 1, 9, S("12345"), 2, 4, S("a345"));
- test(S("abcdefghij"), 1, 9, S("12345"), 4, 0, S("a"));
- test(S("abcdefghij"), 1, 9, S("12345"), 4, 1, S("a5"));
- test(S("abcdefghij"), 1, 9, S("12345"), 4, 2, S("a5"));
- test(S("abcdefghij"), 1, 9, S("12345"), 5, 0, S("a"));
- test(S("abcdefghij"), 1, 9, S("12345"), 5, 1, S("a"));
- test(S("abcdefghij"), 1, 9, S("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghij"), 1, 9, S("1234567890"), 0, 0, S("a"));
- test(S("abcdefghij"), 1, 9, S("1234567890"), 0, 1, S("a1"));
- test(S("abcdefghij"), 1, 9, S("1234567890"), 0, 5, S("a12345"));
- test(S("abcdefghij"), 1, 9, S("1234567890"), 0, 9, S("a123456789"));
- test(S("abcdefghij"), 1, 9, S("1234567890"), 0, 10, S("a1234567890"));
- test(S("abcdefghij"), 1, 9, S("1234567890"), 0, 11, S("a1234567890"));
- test(S("abcdefghij"), 1, 9, S("1234567890"), 1, 0, S("a"));
- test(S("abcdefghij"), 1, 9, S("1234567890"), 1, 1, S("a2"));
- test(S("abcdefghij"), 1, 9, S("1234567890"), 1, 4, S("a2345"));
- test(S("abcdefghij"), 1, 9, S("1234567890"), 1, 8, S("a23456789"));
+TEST_CONSTEXPR_CXX20 bool test26() {
+ test(S("abcdefghij"), 1, 8, S("12345"), 1, 1, S("a2j"));
+ test(S("abcdefghij"), 1, 8, S("12345"), 1, 2, S("a23j"));
+ test(S("abcdefghij"), 1, 8, S("12345"), 1, 3, S("a234j"));
+ test(S("abcdefghij"), 1, 8, S("12345"), 1, 4, S("a2345j"));
+ test(S("abcdefghij"), 1, 8, S("12345"), 1, 5, S("a2345j"));
+ test(S("abcdefghij"), 1, 8, S("12345"), 2, 0, S("aj"));
+ test(S("abcdefghij"), 1, 8, S("12345"), 2, 1, S("a3j"));
+ test(S("abcdefghij"), 1, 8, S("12345"), 2, 2, S("a34j"));
+ test(S("abcdefghij"), 1, 8, S("12345"), 2, 3, S("a345j"));
+ test(S("abcdefghij"), 1, 8, S("12345"), 2, 4, S("a345j"));
+ test(S("abcdefghij"), 1, 8, S("12345"), 4, 0, S("aj"));
+ test(S("abcdefghij"), 1, 8, S("12345"), 4, 1, S("a5j"));
+ test(S("abcdefghij"), 1, 8, S("12345"), 4, 2, S("a5j"));
+ test(S("abcdefghij"), 1, 8, S("12345"), 5, 0, S("aj"));
+ test(S("abcdefghij"), 1, 8, S("12345"), 5, 1, S("aj"));
+ test(S("abcdefghij"), 1, 8, S("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghij"), 1, 8, S("1234567890"), 0, 0, S("aj"));
+ test(S("abcdefghij"), 1, 8, S("1234567890"), 0, 1, S("a1j"));
+ test(S("abcdefghij"), 1, 8, S("1234567890"), 0, 5, S("a12345j"));
+ test(S("abcdefghij"), 1, 8, S("1234567890"), 0, 9, S("a123456789j"));
+ test(S("abcdefghij"), 1, 8, S("1234567890"), 0, 10, S("a1234567890j"));
+ test(S("abcdefghij"), 1, 8, S("1234567890"), 0, 11, S("a1234567890j"));
+ test(S("abcdefghij"), 1, 8, S("1234567890"), 1, 0, S("aj"));
+ test(S("abcdefghij"), 1, 8, S("1234567890"), 1, 1, S("a2j"));
+ test(S("abcdefghij"), 1, 8, S("1234567890"), 1, 4, S("a2345j"));
+ test(S("abcdefghij"), 1, 8, S("1234567890"), 1, 8, S("a23456789j"));
+ test(S("abcdefghij"), 1, 8, S("1234567890"), 1, 9, S("a234567890j"));
+ test(S("abcdefghij"), 1, 8, S("1234567890"), 1, 10, S("a234567890j"));
+ test(S("abcdefghij"), 1, 8, S("1234567890"), 5, 0, S("aj"));
+ test(S("abcdefghij"), 1, 8, S("1234567890"), 5, 1, S("a6j"));
+ test(S("abcdefghij"), 1, 8, S("1234567890"), 5, 2, S("a67j"));
+ test(S("abcdefghij"), 1, 8, S("1234567890"), 5, 4, S("a6789j"));
+ test(S("abcdefghij"), 1, 8, S("1234567890"), 5, 5, S("a67890j"));
+ test(S("abcdefghij"), 1, 8, S("1234567890"), 5, 6, S("a67890j"));
+ test(S("abcdefghij"), 1, 8, S("1234567890"), 9, 0, S("aj"));
+ test(S("abcdefghij"), 1, 8, S("1234567890"), 9, 1, S("a0j"));
+ test(S("abcdefghij"), 1, 8, S("1234567890"), 9, 2, S("a0j"));
+ test(S("abcdefghij"), 1, 8, S("1234567890"), 10, 0, S("aj"));
+ test(S("abcdefghij"), 1, 8, S("1234567890"), 10, 1, S("aj"));
+ test(S("abcdefghij"), 1, 8, S("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghij"), 1, 8, S("12345678901234567890"), 0, 0, S("aj"));
+ test(S("abcdefghij"), 1, 8, S("12345678901234567890"), 0, 1, S("a1j"));
+ test(S("abcdefghij"), 1, 8, S("12345678901234567890"), 0, 10, S("a1234567890j"));
+ test(S("abcdefghij"), 1, 8, S("12345678901234567890"), 0, 19, S("a1234567890123456789j"));
+ test(S("abcdefghij"), 1, 8, S("12345678901234567890"), 0, 20, S("a12345678901234567890j"));
+ test(S("abcdefghij"), 1, 8, S("12345678901234567890"), 0, 21, S("a12345678901234567890j"));
+ test(S("abcdefghij"), 1, 8, S("12345678901234567890"), 1, 0, S("aj"));
+ test(S("abcdefghij"), 1, 8, S("12345678901234567890"), 1, 1, S("a2j"));
+ test(S("abcdefghij"), 1, 8, S("12345678901234567890"), 1, 9, S("a234567890j"));
+ test(S("abcdefghij"), 1, 8, S("12345678901234567890"), 1, 18, S("a234567890123456789j"));
+ test(S("abcdefghij"), 1, 8, S("12345678901234567890"), 1, 19, S("a2345678901234567890j"));
+ test(S("abcdefghij"), 1, 8, S("12345678901234567890"), 1, 20, S("a2345678901234567890j"));
+ test(S("abcdefghij"), 1, 8, S("12345678901234567890"), 10, 0, S("aj"));
+ test(S("abcdefghij"), 1, 8, S("12345678901234567890"), 10, 1, S("a1j"));
+ test(S("abcdefghij"), 1, 8, S("12345678901234567890"), 10, 5, S("a12345j"));
+ test(S("abcdefghij"), 1, 8, S("12345678901234567890"), 10, 9, S("a123456789j"));
+ test(S("abcdefghij"), 1, 8, S("12345678901234567890"), 10, 10, S("a1234567890j"));
+ test(S("abcdefghij"), 1, 8, S("12345678901234567890"), 10, 11, S("a1234567890j"));
+ test(S("abcdefghij"), 1, 8, S("12345678901234567890"), 19, 0, S("aj"));
+ test(S("abcdefghij"), 1, 8, S("12345678901234567890"), 19, 1, S("a0j"));
+ test(S("abcdefghij"), 1, 8, S("12345678901234567890"), 19, 2, S("a0j"));
+ test(S("abcdefghij"), 1, 8, S("12345678901234567890"), 20, 0, S("aj"));
+ test(S("abcdefghij"), 1, 8, S("12345678901234567890"), 20, 1, S("aj"));
+ test(S("abcdefghij"), 1, 8, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghij"), 1, 9, S(""), 0, 0, S("a"));
+ test(S("abcdefghij"), 1, 9, S(""), 0, 1, S("a"));
+ test(S("abcdefghij"), 1, 9, S(""), 1, 0, S("can't happen"));
+ test(S("abcdefghij"), 1, 9, S("12345"), 0, 0, S("a"));
+ test(S("abcdefghij"), 1, 9, S("12345"), 0, 1, S("a1"));
+ test(S("abcdefghij"), 1, 9, S("12345"), 0, 2, S("a12"));
+ test(S("abcdefghij"), 1, 9, S("12345"), 0, 4, S("a1234"));
+ test(S("abcdefghij"), 1, 9, S("12345"), 0, 5, S("a12345"));
+ test(S("abcdefghij"), 1, 9, S("12345"), 0, 6, S("a12345"));
+ test(S("abcdefghij"), 1, 9, S("12345"), 1, 0, S("a"));
+ test(S("abcdefghij"), 1, 9, S("12345"), 1, 1, S("a2"));
+ test(S("abcdefghij"), 1, 9, S("12345"), 1, 2, S("a23"));
+ test(S("abcdefghij"), 1, 9, S("12345"), 1, 3, S("a234"));
+ test(S("abcdefghij"), 1, 9, S("12345"), 1, 4, S("a2345"));
+ test(S("abcdefghij"), 1, 9, S("12345"), 1, 5, S("a2345"));
+ test(S("abcdefghij"), 1, 9, S("12345"), 2, 0, S("a"));
+ test(S("abcdefghij"), 1, 9, S("12345"), 2, 1, S("a3"));
+ test(S("abcdefghij"), 1, 9, S("12345"), 2, 2, S("a34"));
+ test(S("abcdefghij"), 1, 9, S("12345"), 2, 3, S("a345"));
+ test(S("abcdefghij"), 1, 9, S("12345"), 2, 4, S("a345"));
+ test(S("abcdefghij"), 1, 9, S("12345"), 4, 0, S("a"));
+ test(S("abcdefghij"), 1, 9, S("12345"), 4, 1, S("a5"));
+ test(S("abcdefghij"), 1, 9, S("12345"), 4, 2, S("a5"));
+ test(S("abcdefghij"), 1, 9, S("12345"), 5, 0, S("a"));
+ test(S("abcdefghij"), 1, 9, S("12345"), 5, 1, S("a"));
+ test(S("abcdefghij"), 1, 9, S("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghij"), 1, 9, S("1234567890"), 0, 0, S("a"));
+ test(S("abcdefghij"), 1, 9, S("1234567890"), 0, 1, S("a1"));
+ test(S("abcdefghij"), 1, 9, S("1234567890"), 0, 5, S("a12345"));
+ test(S("abcdefghij"), 1, 9, S("1234567890"), 0, 9, S("a123456789"));
+ test(S("abcdefghij"), 1, 9, S("1234567890"), 0, 10, S("a1234567890"));
+ test(S("abcdefghij"), 1, 9, S("1234567890"), 0, 11, S("a1234567890"));
+ test(S("abcdefghij"), 1, 9, S("1234567890"), 1, 0, S("a"));
+ test(S("abcdefghij"), 1, 9, S("1234567890"), 1, 1, S("a2"));
+ test(S("abcdefghij"), 1, 9, S("1234567890"), 1, 4, S("a2345"));
+ test(S("abcdefghij"), 1, 9, S("1234567890"), 1, 8, S("a23456789"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test27()
-{
- test(S("abcdefghij"), 1, 9, S("1234567890"), 1, 9, S("a234567890"));
- test(S("abcdefghij"), 1, 9, S("1234567890"), 1, 10, S("a234567890"));
- test(S("abcdefghij"), 1, 9, S("1234567890"), 5, 0, S("a"));
- test(S("abcdefghij"), 1, 9, S("1234567890"), 5, 1, S("a6"));
- test(S("abcdefghij"), 1, 9, S("1234567890"), 5, 2, S("a67"));
- test(S("abcdefghij"), 1, 9, S("1234567890"), 5, 4, S("a6789"));
- test(S("abcdefghij"), 1, 9, S("1234567890"), 5, 5, S("a67890"));
- test(S("abcdefghij"), 1, 9, S("1234567890"), 5, 6, S("a67890"));
- test(S("abcdefghij"), 1, 9, S("1234567890"), 9, 0, S("a"));
- test(S("abcdefghij"), 1, 9, S("1234567890"), 9, 1, S("a0"));
- test(S("abcdefghij"), 1, 9, S("1234567890"), 9, 2, S("a0"));
- test(S("abcdefghij"), 1, 9, S("1234567890"), 10, 0, S("a"));
- test(S("abcdefghij"), 1, 9, S("1234567890"), 10, 1, S("a"));
- test(S("abcdefghij"), 1, 9, S("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghij"), 1, 9, S("12345678901234567890"), 0, 0, S("a"));
- test(S("abcdefghij"), 1, 9, S("12345678901234567890"), 0, 1, S("a1"));
- test(S("abcdefghij"), 1, 9, S("12345678901234567890"), 0, 10, S("a1234567890"));
- test(S("abcdefghij"), 1, 9, S("12345678901234567890"), 0, 19, S("a1234567890123456789"));
- test(S("abcdefghij"), 1, 9, S("12345678901234567890"), 0, 20, S("a12345678901234567890"));
- test(S("abcdefghij"), 1, 9, S("12345678901234567890"), 0, 21, S("a12345678901234567890"));
- test(S("abcdefghij"), 1, 9, S("12345678901234567890"), 1, 0, S("a"));
- test(S("abcdefghij"), 1, 9, S("12345678901234567890"), 1, 1, S("a2"));
- test(S("abcdefghij"), 1, 9, S("12345678901234567890"), 1, 9, S("a234567890"));
- test(S("abcdefghij"), 1, 9, S("12345678901234567890"), 1, 18, S("a234567890123456789"));
- test(S("abcdefghij"), 1, 9, S("12345678901234567890"), 1, 19, S("a2345678901234567890"));
- test(S("abcdefghij"), 1, 9, S("12345678901234567890"), 1, 20, S("a2345678901234567890"));
- test(S("abcdefghij"), 1, 9, S("12345678901234567890"), 10, 0, S("a"));
- test(S("abcdefghij"), 1, 9, S("12345678901234567890"), 10, 1, S("a1"));
- test(S("abcdefghij"), 1, 9, S("12345678901234567890"), 10, 5, S("a12345"));
- test(S("abcdefghij"), 1, 9, S("12345678901234567890"), 10, 9, S("a123456789"));
- test(S("abcdefghij"), 1, 9, S("12345678901234567890"), 10, 10, S("a1234567890"));
- test(S("abcdefghij"), 1, 9, S("12345678901234567890"), 10, 11, S("a1234567890"));
- test(S("abcdefghij"), 1, 9, S("12345678901234567890"), 19, 0, S("a"));
- test(S("abcdefghij"), 1, 9, S("12345678901234567890"), 19, 1, S("a0"));
- test(S("abcdefghij"), 1, 9, S("12345678901234567890"), 19, 2, S("a0"));
- test(S("abcdefghij"), 1, 9, S("12345678901234567890"), 20, 0, S("a"));
- test(S("abcdefghij"), 1, 9, S("12345678901234567890"), 20, 1, S("a"));
- test(S("abcdefghij"), 1, 9, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghij"), 1, 10, S(""), 0, 0, S("a"));
- test(S("abcdefghij"), 1, 10, S(""), 0, 1, S("a"));
- test(S("abcdefghij"), 1, 10, S(""), 1, 0, S("can't happen"));
- test(S("abcdefghij"), 1, 10, S("12345"), 0, 0, S("a"));
- test(S("abcdefghij"), 1, 10, S("12345"), 0, 1, S("a1"));
- test(S("abcdefghij"), 1, 10, S("12345"), 0, 2, S("a12"));
- test(S("abcdefghij"), 1, 10, S("12345"), 0, 4, S("a1234"));
- test(S("abcdefghij"), 1, 10, S("12345"), 0, 5, S("a12345"));
- test(S("abcdefghij"), 1, 10, S("12345"), 0, 6, S("a12345"));
- test(S("abcdefghij"), 1, 10, S("12345"), 1, 0, S("a"));
- test(S("abcdefghij"), 1, 10, S("12345"), 1, 1, S("a2"));
- test(S("abcdefghij"), 1, 10, S("12345"), 1, 2, S("a23"));
- test(S("abcdefghij"), 1, 10, S("12345"), 1, 3, S("a234"));
- test(S("abcdefghij"), 1, 10, S("12345"), 1, 4, S("a2345"));
- test(S("abcdefghij"), 1, 10, S("12345"), 1, 5, S("a2345"));
- test(S("abcdefghij"), 1, 10, S("12345"), 2, 0, S("a"));
- test(S("abcdefghij"), 1, 10, S("12345"), 2, 1, S("a3"));
- test(S("abcdefghij"), 1, 10, S("12345"), 2, 2, S("a34"));
- test(S("abcdefghij"), 1, 10, S("12345"), 2, 3, S("a345"));
- test(S("abcdefghij"), 1, 10, S("12345"), 2, 4, S("a345"));
- test(S("abcdefghij"), 1, 10, S("12345"), 4, 0, S("a"));
- test(S("abcdefghij"), 1, 10, S("12345"), 4, 1, S("a5"));
- test(S("abcdefghij"), 1, 10, S("12345"), 4, 2, S("a5"));
- test(S("abcdefghij"), 1, 10, S("12345"), 5, 0, S("a"));
- test(S("abcdefghij"), 1, 10, S("12345"), 5, 1, S("a"));
- test(S("abcdefghij"), 1, 10, S("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghij"), 1, 10, S("1234567890"), 0, 0, S("a"));
- test(S("abcdefghij"), 1, 10, S("1234567890"), 0, 1, S("a1"));
- test(S("abcdefghij"), 1, 10, S("1234567890"), 0, 5, S("a12345"));
- test(S("abcdefghij"), 1, 10, S("1234567890"), 0, 9, S("a123456789"));
- test(S("abcdefghij"), 1, 10, S("1234567890"), 0, 10, S("a1234567890"));
- test(S("abcdefghij"), 1, 10, S("1234567890"), 0, 11, S("a1234567890"));
- test(S("abcdefghij"), 1, 10, S("1234567890"), 1, 0, S("a"));
- test(S("abcdefghij"), 1, 10, S("1234567890"), 1, 1, S("a2"));
- test(S("abcdefghij"), 1, 10, S("1234567890"), 1, 4, S("a2345"));
- test(S("abcdefghij"), 1, 10, S("1234567890"), 1, 8, S("a23456789"));
- test(S("abcdefghij"), 1, 10, S("1234567890"), 1, 9, S("a234567890"));
- test(S("abcdefghij"), 1, 10, S("1234567890"), 1, 10, S("a234567890"));
- test(S("abcdefghij"), 1, 10, S("1234567890"), 5, 0, S("a"));
- test(S("abcdefghij"), 1, 10, S("1234567890"), 5, 1, S("a6"));
- test(S("abcdefghij"), 1, 10, S("1234567890"), 5, 2, S("a67"));
- test(S("abcdefghij"), 1, 10, S("1234567890"), 5, 4, S("a6789"));
- test(S("abcdefghij"), 1, 10, S("1234567890"), 5, 5, S("a67890"));
- test(S("abcdefghij"), 1, 10, S("1234567890"), 5, 6, S("a67890"));
- test(S("abcdefghij"), 1, 10, S("1234567890"), 9, 0, S("a"));
- test(S("abcdefghij"), 1, 10, S("1234567890"), 9, 1, S("a0"));
- test(S("abcdefghij"), 1, 10, S("1234567890"), 9, 2, S("a0"));
- test(S("abcdefghij"), 1, 10, S("1234567890"), 10, 0, S("a"));
- test(S("abcdefghij"), 1, 10, S("1234567890"), 10, 1, S("a"));
- test(S("abcdefghij"), 1, 10, S("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghij"), 1, 10, S("12345678901234567890"), 0, 0, S("a"));
- test(S("abcdefghij"), 1, 10, S("12345678901234567890"), 0, 1, S("a1"));
- test(S("abcdefghij"), 1, 10, S("12345678901234567890"), 0, 10, S("a1234567890"));
- test(S("abcdefghij"), 1, 10, S("12345678901234567890"), 0, 19, S("a1234567890123456789"));
- test(S("abcdefghij"), 1, 10, S("12345678901234567890"), 0, 20, S("a12345678901234567890"));
- test(S("abcdefghij"), 1, 10, S("12345678901234567890"), 0, 21, S("a12345678901234567890"));
- test(S("abcdefghij"), 1, 10, S("12345678901234567890"), 1, 0, S("a"));
- test(S("abcdefghij"), 1, 10, S("12345678901234567890"), 1, 1, S("a2"));
- test(S("abcdefghij"), 1, 10, S("12345678901234567890"), 1, 9, S("a234567890"));
- test(S("abcdefghij"), 1, 10, S("12345678901234567890"), 1, 18, S("a234567890123456789"));
- test(S("abcdefghij"), 1, 10, S("12345678901234567890"), 1, 19, S("a2345678901234567890"));
- test(S("abcdefghij"), 1, 10, S("12345678901234567890"), 1, 20, S("a2345678901234567890"));
+TEST_CONSTEXPR_CXX20 bool test27() {
+ test(S("abcdefghij"), 1, 9, S("1234567890"), 1, 9, S("a234567890"));
+ test(S("abcdefghij"), 1, 9, S("1234567890"), 1, 10, S("a234567890"));
+ test(S("abcdefghij"), 1, 9, S("1234567890"), 5, 0, S("a"));
+ test(S("abcdefghij"), 1, 9, S("1234567890"), 5, 1, S("a6"));
+ test(S("abcdefghij"), 1, 9, S("1234567890"), 5, 2, S("a67"));
+ test(S("abcdefghij"), 1, 9, S("1234567890"), 5, 4, S("a6789"));
+ test(S("abcdefghij"), 1, 9, S("1234567890"), 5, 5, S("a67890"));
+ test(S("abcdefghij"), 1, 9, S("1234567890"), 5, 6, S("a67890"));
+ test(S("abcdefghij"), 1, 9, S("1234567890"), 9, 0, S("a"));
+ test(S("abcdefghij"), 1, 9, S("1234567890"), 9, 1, S("a0"));
+ test(S("abcdefghij"), 1, 9, S("1234567890"), 9, 2, S("a0"));
+ test(S("abcdefghij"), 1, 9, S("1234567890"), 10, 0, S("a"));
+ test(S("abcdefghij"), 1, 9, S("1234567890"), 10, 1, S("a"));
+ test(S("abcdefghij"), 1, 9, S("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghij"), 1, 9, S("12345678901234567890"), 0, 0, S("a"));
+ test(S("abcdefghij"), 1, 9, S("12345678901234567890"), 0, 1, S("a1"));
+ test(S("abcdefghij"), 1, 9, S("12345678901234567890"), 0, 10, S("a1234567890"));
+ test(S("abcdefghij"), 1, 9, S("12345678901234567890"), 0, 19, S("a1234567890123456789"));
+ test(S("abcdefghij"), 1, 9, S("12345678901234567890"), 0, 20, S("a12345678901234567890"));
+ test(S("abcdefghij"), 1, 9, S("12345678901234567890"), 0, 21, S("a12345678901234567890"));
+ test(S("abcdefghij"), 1, 9, S("12345678901234567890"), 1, 0, S("a"));
+ test(S("abcdefghij"), 1, 9, S("12345678901234567890"), 1, 1, S("a2"));
+ test(S("abcdefghij"), 1, 9, S("12345678901234567890"), 1, 9, S("a234567890"));
+ test(S("abcdefghij"), 1, 9, S("12345678901234567890"), 1, 18, S("a234567890123456789"));
+ test(S("abcdefghij"), 1, 9, S("12345678901234567890"), 1, 19, S("a2345678901234567890"));
+ test(S("abcdefghij"), 1, 9, S("12345678901234567890"), 1, 20, S("a2345678901234567890"));
+ test(S("abcdefghij"), 1, 9, S("12345678901234567890"), 10, 0, S("a"));
+ test(S("abcdefghij"), 1, 9, S("12345678901234567890"), 10, 1, S("a1"));
+ test(S("abcdefghij"), 1, 9, S("12345678901234567890"), 10, 5, S("a12345"));
+ test(S("abcdefghij"), 1, 9, S("12345678901234567890"), 10, 9, S("a123456789"));
+ test(S("abcdefghij"), 1, 9, S("12345678901234567890"), 10, 10, S("a1234567890"));
+ test(S("abcdefghij"), 1, 9, S("12345678901234567890"), 10, 11, S("a1234567890"));
+ test(S("abcdefghij"), 1, 9, S("12345678901234567890"), 19, 0, S("a"));
+ test(S("abcdefghij"), 1, 9, S("12345678901234567890"), 19, 1, S("a0"));
+ test(S("abcdefghij"), 1, 9, S("12345678901234567890"), 19, 2, S("a0"));
+ test(S("abcdefghij"), 1, 9, S("12345678901234567890"), 20, 0, S("a"));
+ test(S("abcdefghij"), 1, 9, S("12345678901234567890"), 20, 1, S("a"));
+ test(S("abcdefghij"), 1, 9, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghij"), 1, 10, S(""), 0, 0, S("a"));
+ test(S("abcdefghij"), 1, 10, S(""), 0, 1, S("a"));
+ test(S("abcdefghij"), 1, 10, S(""), 1, 0, S("can't happen"));
+ test(S("abcdefghij"), 1, 10, S("12345"), 0, 0, S("a"));
+ test(S("abcdefghij"), 1, 10, S("12345"), 0, 1, S("a1"));
+ test(S("abcdefghij"), 1, 10, S("12345"), 0, 2, S("a12"));
+ test(S("abcdefghij"), 1, 10, S("12345"), 0, 4, S("a1234"));
+ test(S("abcdefghij"), 1, 10, S("12345"), 0, 5, S("a12345"));
+ test(S("abcdefghij"), 1, 10, S("12345"), 0, 6, S("a12345"));
+ test(S("abcdefghij"), 1, 10, S("12345"), 1, 0, S("a"));
+ test(S("abcdefghij"), 1, 10, S("12345"), 1, 1, S("a2"));
+ test(S("abcdefghij"), 1, 10, S("12345"), 1, 2, S("a23"));
+ test(S("abcdefghij"), 1, 10, S("12345"), 1, 3, S("a234"));
+ test(S("abcdefghij"), 1, 10, S("12345"), 1, 4, S("a2345"));
+ test(S("abcdefghij"), 1, 10, S("12345"), 1, 5, S("a2345"));
+ test(S("abcdefghij"), 1, 10, S("12345"), 2, 0, S("a"));
+ test(S("abcdefghij"), 1, 10, S("12345"), 2, 1, S("a3"));
+ test(S("abcdefghij"), 1, 10, S("12345"), 2, 2, S("a34"));
+ test(S("abcdefghij"), 1, 10, S("12345"), 2, 3, S("a345"));
+ test(S("abcdefghij"), 1, 10, S("12345"), 2, 4, S("a345"));
+ test(S("abcdefghij"), 1, 10, S("12345"), 4, 0, S("a"));
+ test(S("abcdefghij"), 1, 10, S("12345"), 4, 1, S("a5"));
+ test(S("abcdefghij"), 1, 10, S("12345"), 4, 2, S("a5"));
+ test(S("abcdefghij"), 1, 10, S("12345"), 5, 0, S("a"));
+ test(S("abcdefghij"), 1, 10, S("12345"), 5, 1, S("a"));
+ test(S("abcdefghij"), 1, 10, S("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghij"), 1, 10, S("1234567890"), 0, 0, S("a"));
+ test(S("abcdefghij"), 1, 10, S("1234567890"), 0, 1, S("a1"));
+ test(S("abcdefghij"), 1, 10, S("1234567890"), 0, 5, S("a12345"));
+ test(S("abcdefghij"), 1, 10, S("1234567890"), 0, 9, S("a123456789"));
+ test(S("abcdefghij"), 1, 10, S("1234567890"), 0, 10, S("a1234567890"));
+ test(S("abcdefghij"), 1, 10, S("1234567890"), 0, 11, S("a1234567890"));
+ test(S("abcdefghij"), 1, 10, S("1234567890"), 1, 0, S("a"));
+ test(S("abcdefghij"), 1, 10, S("1234567890"), 1, 1, S("a2"));
+ test(S("abcdefghij"), 1, 10, S("1234567890"), 1, 4, S("a2345"));
+ test(S("abcdefghij"), 1, 10, S("1234567890"), 1, 8, S("a23456789"));
+ test(S("abcdefghij"), 1, 10, S("1234567890"), 1, 9, S("a234567890"));
+ test(S("abcdefghij"), 1, 10, S("1234567890"), 1, 10, S("a234567890"));
+ test(S("abcdefghij"), 1, 10, S("1234567890"), 5, 0, S("a"));
+ test(S("abcdefghij"), 1, 10, S("1234567890"), 5, 1, S("a6"));
+ test(S("abcdefghij"), 1, 10, S("1234567890"), 5, 2, S("a67"));
+ test(S("abcdefghij"), 1, 10, S("1234567890"), 5, 4, S("a6789"));
+ test(S("abcdefghij"), 1, 10, S("1234567890"), 5, 5, S("a67890"));
+ test(S("abcdefghij"), 1, 10, S("1234567890"), 5, 6, S("a67890"));
+ test(S("abcdefghij"), 1, 10, S("1234567890"), 9, 0, S("a"));
+ test(S("abcdefghij"), 1, 10, S("1234567890"), 9, 1, S("a0"));
+ test(S("abcdefghij"), 1, 10, S("1234567890"), 9, 2, S("a0"));
+ test(S("abcdefghij"), 1, 10, S("1234567890"), 10, 0, S("a"));
+ test(S("abcdefghij"), 1, 10, S("1234567890"), 10, 1, S("a"));
+ test(S("abcdefghij"), 1, 10, S("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghij"), 1, 10, S("12345678901234567890"), 0, 0, S("a"));
+ test(S("abcdefghij"), 1, 10, S("12345678901234567890"), 0, 1, S("a1"));
+ test(S("abcdefghij"), 1, 10, S("12345678901234567890"), 0, 10, S("a1234567890"));
+ test(S("abcdefghij"), 1, 10, S("12345678901234567890"), 0, 19, S("a1234567890123456789"));
+ test(S("abcdefghij"), 1, 10, S("12345678901234567890"), 0, 20, S("a12345678901234567890"));
+ test(S("abcdefghij"), 1, 10, S("12345678901234567890"), 0, 21, S("a12345678901234567890"));
+ test(S("abcdefghij"), 1, 10, S("12345678901234567890"), 1, 0, S("a"));
+ test(S("abcdefghij"), 1, 10, S("12345678901234567890"), 1, 1, S("a2"));
+ test(S("abcdefghij"), 1, 10, S("12345678901234567890"), 1, 9, S("a234567890"));
+ test(S("abcdefghij"), 1, 10, S("12345678901234567890"), 1, 18, S("a234567890123456789"));
+ test(S("abcdefghij"), 1, 10, S("12345678901234567890"), 1, 19, S("a2345678901234567890"));
+ test(S("abcdefghij"), 1, 10, S("12345678901234567890"), 1, 20, S("a2345678901234567890"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test28()
-{
- test(S("abcdefghij"), 1, 10, S("12345678901234567890"), 10, 0, S("a"));
- test(S("abcdefghij"), 1, 10, S("12345678901234567890"), 10, 1, S("a1"));
- test(S("abcdefghij"), 1, 10, S("12345678901234567890"), 10, 5, S("a12345"));
- test(S("abcdefghij"), 1, 10, S("12345678901234567890"), 10, 9, S("a123456789"));
- test(S("abcdefghij"), 1, 10, S("12345678901234567890"), 10, 10, S("a1234567890"));
- test(S("abcdefghij"), 1, 10, S("12345678901234567890"), 10, 11, S("a1234567890"));
- test(S("abcdefghij"), 1, 10, S("12345678901234567890"), 19, 0, S("a"));
- test(S("abcdefghij"), 1, 10, S("12345678901234567890"), 19, 1, S("a0"));
- test(S("abcdefghij"), 1, 10, S("12345678901234567890"), 19, 2, S("a0"));
- test(S("abcdefghij"), 1, 10, S("12345678901234567890"), 20, 0, S("a"));
- test(S("abcdefghij"), 1, 10, S("12345678901234567890"), 20, 1, S("a"));
- test(S("abcdefghij"), 1, 10, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghij"), 5, 0, S(""), 0, 0, S("abcdefghij"));
- test(S("abcdefghij"), 5, 0, S(""), 0, 1, S("abcdefghij"));
- test(S("abcdefghij"), 5, 0, S(""), 1, 0, S("can't happen"));
- test(S("abcdefghij"), 5, 0, S("12345"), 0, 0, S("abcdefghij"));
- test(S("abcdefghij"), 5, 0, S("12345"), 0, 1, S("abcde1fghij"));
- test(S("abcdefghij"), 5, 0, S("12345"), 0, 2, S("abcde12fghij"));
- test(S("abcdefghij"), 5, 0, S("12345"), 0, 4, S("abcde1234fghij"));
- test(S("abcdefghij"), 5, 0, S("12345"), 0, 5, S("abcde12345fghij"));
- test(S("abcdefghij"), 5, 0, S("12345"), 0, 6, S("abcde12345fghij"));
- test(S("abcdefghij"), 5, 0, S("12345"), 1, 0, S("abcdefghij"));
- test(S("abcdefghij"), 5, 0, S("12345"), 1, 1, S("abcde2fghij"));
- test(S("abcdefghij"), 5, 0, S("12345"), 1, 2, S("abcde23fghij"));
- test(S("abcdefghij"), 5, 0, S("12345"), 1, 3, S("abcde234fghij"));
- test(S("abcdefghij"), 5, 0, S("12345"), 1, 4, S("abcde2345fghij"));
- test(S("abcdefghij"), 5, 0, S("12345"), 1, 5, S("abcde2345fghij"));
- test(S("abcdefghij"), 5, 0, S("12345"), 2, 0, S("abcdefghij"));
- test(S("abcdefghij"), 5, 0, S("12345"), 2, 1, S("abcde3fghij"));
- test(S("abcdefghij"), 5, 0, S("12345"), 2, 2, S("abcde34fghij"));
- test(S("abcdefghij"), 5, 0, S("12345"), 2, 3, S("abcde345fghij"));
- test(S("abcdefghij"), 5, 0, S("12345"), 2, 4, S("abcde345fghij"));
- test(S("abcdefghij"), 5, 0, S("12345"), 4, 0, S("abcdefghij"));
- test(S("abcdefghij"), 5, 0, S("12345"), 4, 1, S("abcde5fghij"));
- test(S("abcdefghij"), 5, 0, S("12345"), 4, 2, S("abcde5fghij"));
- test(S("abcdefghij"), 5, 0, S("12345"), 5, 0, S("abcdefghij"));
- test(S("abcdefghij"), 5, 0, S("12345"), 5, 1, S("abcdefghij"));
- test(S("abcdefghij"), 5, 0, S("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghij"), 5, 0, S("1234567890"), 0, 0, S("abcdefghij"));
- test(S("abcdefghij"), 5, 0, S("1234567890"), 0, 1, S("abcde1fghij"));
- test(S("abcdefghij"), 5, 0, S("1234567890"), 0, 5, S("abcde12345fghij"));
- test(S("abcdefghij"), 5, 0, S("1234567890"), 0, 9, S("abcde123456789fghij"));
- test(S("abcdefghij"), 5, 0, S("1234567890"), 0, 10, S("abcde1234567890fghij"));
- test(S("abcdefghij"), 5, 0, S("1234567890"), 0, 11, S("abcde1234567890fghij"));
- test(S("abcdefghij"), 5, 0, S("1234567890"), 1, 0, S("abcdefghij"));
- test(S("abcdefghij"), 5, 0, S("1234567890"), 1, 1, S("abcde2fghij"));
- test(S("abcdefghij"), 5, 0, S("1234567890"), 1, 4, S("abcde2345fghij"));
- test(S("abcdefghij"), 5, 0, S("1234567890"), 1, 8, S("abcde23456789fghij"));
- test(S("abcdefghij"), 5, 0, S("1234567890"), 1, 9, S("abcde234567890fghij"));
- test(S("abcdefghij"), 5, 0, S("1234567890"), 1, 10, S("abcde234567890fghij"));
- test(S("abcdefghij"), 5, 0, S("1234567890"), 5, 0, S("abcdefghij"));
- test(S("abcdefghij"), 5, 0, S("1234567890"), 5, 1, S("abcde6fghij"));
- test(S("abcdefghij"), 5, 0, S("1234567890"), 5, 2, S("abcde67fghij"));
- test(S("abcdefghij"), 5, 0, S("1234567890"), 5, 4, S("abcde6789fghij"));
- test(S("abcdefghij"), 5, 0, S("1234567890"), 5, 5, S("abcde67890fghij"));
- test(S("abcdefghij"), 5, 0, S("1234567890"), 5, 6, S("abcde67890fghij"));
- test(S("abcdefghij"), 5, 0, S("1234567890"), 9, 0, S("abcdefghij"));
- test(S("abcdefghij"), 5, 0, S("1234567890"), 9, 1, S("abcde0fghij"));
- test(S("abcdefghij"), 5, 0, S("1234567890"), 9, 2, S("abcde0fghij"));
- test(S("abcdefghij"), 5, 0, S("1234567890"), 10, 0, S("abcdefghij"));
- test(S("abcdefghij"), 5, 0, S("1234567890"), 10, 1, S("abcdefghij"));
- test(S("abcdefghij"), 5, 0, S("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghij"), 5, 0, S("12345678901234567890"), 0, 0, S("abcdefghij"));
- test(S("abcdefghij"), 5, 0, S("12345678901234567890"), 0, 1, S("abcde1fghij"));
- test(S("abcdefghij"), 5, 0, S("12345678901234567890"), 0, 10, S("abcde1234567890fghij"));
- test(S("abcdefghij"), 5, 0, S("12345678901234567890"), 0, 19, S("abcde1234567890123456789fghij"));
- test(S("abcdefghij"), 5, 0, S("12345678901234567890"), 0, 20, S("abcde12345678901234567890fghij"));
- test(S("abcdefghij"), 5, 0, S("12345678901234567890"), 0, 21, S("abcde12345678901234567890fghij"));
- test(S("abcdefghij"), 5, 0, S("12345678901234567890"), 1, 0, S("abcdefghij"));
- test(S("abcdefghij"), 5, 0, S("12345678901234567890"), 1, 1, S("abcde2fghij"));
- test(S("abcdefghij"), 5, 0, S("12345678901234567890"), 1, 9, S("abcde234567890fghij"));
- test(S("abcdefghij"), 5, 0, S("12345678901234567890"), 1, 18, S("abcde234567890123456789fghij"));
- test(S("abcdefghij"), 5, 0, S("12345678901234567890"), 1, 19, S("abcde2345678901234567890fghij"));
- test(S("abcdefghij"), 5, 0, S("12345678901234567890"), 1, 20, S("abcde2345678901234567890fghij"));
- test(S("abcdefghij"), 5, 0, S("12345678901234567890"), 10, 0, S("abcdefghij"));
- test(S("abcdefghij"), 5, 0, S("12345678901234567890"), 10, 1, S("abcde1fghij"));
- test(S("abcdefghij"), 5, 0, S("12345678901234567890"), 10, 5, S("abcde12345fghij"));
- test(S("abcdefghij"), 5, 0, S("12345678901234567890"), 10, 9, S("abcde123456789fghij"));
- test(S("abcdefghij"), 5, 0, S("12345678901234567890"), 10, 10, S("abcde1234567890fghij"));
- test(S("abcdefghij"), 5, 0, S("12345678901234567890"), 10, 11, S("abcde1234567890fghij"));
- test(S("abcdefghij"), 5, 0, S("12345678901234567890"), 19, 0, S("abcdefghij"));
- test(S("abcdefghij"), 5, 0, S("12345678901234567890"), 19, 1, S("abcde0fghij"));
- test(S("abcdefghij"), 5, 0, S("12345678901234567890"), 19, 2, S("abcde0fghij"));
- test(S("abcdefghij"), 5, 0, S("12345678901234567890"), 20, 0, S("abcdefghij"));
- test(S("abcdefghij"), 5, 0, S("12345678901234567890"), 20, 1, S("abcdefghij"));
- test(S("abcdefghij"), 5, 0, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghij"), 5, 1, S(""), 0, 0, S("abcdeghij"));
- test(S("abcdefghij"), 5, 1, S(""), 0, 1, S("abcdeghij"));
- test(S("abcdefghij"), 5, 1, S(""), 1, 0, S("can't happen"));
- test(S("abcdefghij"), 5, 1, S("12345"), 0, 0, S("abcdeghij"));
- test(S("abcdefghij"), 5, 1, S("12345"), 0, 1, S("abcde1ghij"));
- test(S("abcdefghij"), 5, 1, S("12345"), 0, 2, S("abcde12ghij"));
- test(S("abcdefghij"), 5, 1, S("12345"), 0, 4, S("abcde1234ghij"));
- test(S("abcdefghij"), 5, 1, S("12345"), 0, 5, S("abcde12345ghij"));
- test(S("abcdefghij"), 5, 1, S("12345"), 0, 6, S("abcde12345ghij"));
- test(S("abcdefghij"), 5, 1, S("12345"), 1, 0, S("abcdeghij"));
- test(S("abcdefghij"), 5, 1, S("12345"), 1, 1, S("abcde2ghij"));
- test(S("abcdefghij"), 5, 1, S("12345"), 1, 2, S("abcde23ghij"));
- test(S("abcdefghij"), 5, 1, S("12345"), 1, 3, S("abcde234ghij"));
- test(S("abcdefghij"), 5, 1, S("12345"), 1, 4, S("abcde2345ghij"));
+TEST_CONSTEXPR_CXX20 bool test28() {
+ test(S("abcdefghij"), 1, 10, S("12345678901234567890"), 10, 0, S("a"));
+ test(S("abcdefghij"), 1, 10, S("12345678901234567890"), 10, 1, S("a1"));
+ test(S("abcdefghij"), 1, 10, S("12345678901234567890"), 10, 5, S("a12345"));
+ test(S("abcdefghij"), 1, 10, S("12345678901234567890"), 10, 9, S("a123456789"));
+ test(S("abcdefghij"), 1, 10, S("12345678901234567890"), 10, 10, S("a1234567890"));
+ test(S("abcdefghij"), 1, 10, S("12345678901234567890"), 10, 11, S("a1234567890"));
+ test(S("abcdefghij"), 1, 10, S("12345678901234567890"), 19, 0, S("a"));
+ test(S("abcdefghij"), 1, 10, S("12345678901234567890"), 19, 1, S("a0"));
+ test(S("abcdefghij"), 1, 10, S("12345678901234567890"), 19, 2, S("a0"));
+ test(S("abcdefghij"), 1, 10, S("12345678901234567890"), 20, 0, S("a"));
+ test(S("abcdefghij"), 1, 10, S("12345678901234567890"), 20, 1, S("a"));
+ test(S("abcdefghij"), 1, 10, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghij"), 5, 0, S(""), 0, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 5, 0, S(""), 0, 1, S("abcdefghij"));
+ test(S("abcdefghij"), 5, 0, S(""), 1, 0, S("can't happen"));
+ test(S("abcdefghij"), 5, 0, S("12345"), 0, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 5, 0, S("12345"), 0, 1, S("abcde1fghij"));
+ test(S("abcdefghij"), 5, 0, S("12345"), 0, 2, S("abcde12fghij"));
+ test(S("abcdefghij"), 5, 0, S("12345"), 0, 4, S("abcde1234fghij"));
+ test(S("abcdefghij"), 5, 0, S("12345"), 0, 5, S("abcde12345fghij"));
+ test(S("abcdefghij"), 5, 0, S("12345"), 0, 6, S("abcde12345fghij"));
+ test(S("abcdefghij"), 5, 0, S("12345"), 1, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 5, 0, S("12345"), 1, 1, S("abcde2fghij"));
+ test(S("abcdefghij"), 5, 0, S("12345"), 1, 2, S("abcde23fghij"));
+ test(S("abcdefghij"), 5, 0, S("12345"), 1, 3, S("abcde234fghij"));
+ test(S("abcdefghij"), 5, 0, S("12345"), 1, 4, S("abcde2345fghij"));
+ test(S("abcdefghij"), 5, 0, S("12345"), 1, 5, S("abcde2345fghij"));
+ test(S("abcdefghij"), 5, 0, S("12345"), 2, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 5, 0, S("12345"), 2, 1, S("abcde3fghij"));
+ test(S("abcdefghij"), 5, 0, S("12345"), 2, 2, S("abcde34fghij"));
+ test(S("abcdefghij"), 5, 0, S("12345"), 2, 3, S("abcde345fghij"));
+ test(S("abcdefghij"), 5, 0, S("12345"), 2, 4, S("abcde345fghij"));
+ test(S("abcdefghij"), 5, 0, S("12345"), 4, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 5, 0, S("12345"), 4, 1, S("abcde5fghij"));
+ test(S("abcdefghij"), 5, 0, S("12345"), 4, 2, S("abcde5fghij"));
+ test(S("abcdefghij"), 5, 0, S("12345"), 5, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 5, 0, S("12345"), 5, 1, S("abcdefghij"));
+ test(S("abcdefghij"), 5, 0, S("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghij"), 5, 0, S("1234567890"), 0, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 5, 0, S("1234567890"), 0, 1, S("abcde1fghij"));
+ test(S("abcdefghij"), 5, 0, S("1234567890"), 0, 5, S("abcde12345fghij"));
+ test(S("abcdefghij"), 5, 0, S("1234567890"), 0, 9, S("abcde123456789fghij"));
+ test(S("abcdefghij"), 5, 0, S("1234567890"), 0, 10, S("abcde1234567890fghij"));
+ test(S("abcdefghij"), 5, 0, S("1234567890"), 0, 11, S("abcde1234567890fghij"));
+ test(S("abcdefghij"), 5, 0, S("1234567890"), 1, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 5, 0, S("1234567890"), 1, 1, S("abcde2fghij"));
+ test(S("abcdefghij"), 5, 0, S("1234567890"), 1, 4, S("abcde2345fghij"));
+ test(S("abcdefghij"), 5, 0, S("1234567890"), 1, 8, S("abcde23456789fghij"));
+ test(S("abcdefghij"), 5, 0, S("1234567890"), 1, 9, S("abcde234567890fghij"));
+ test(S("abcdefghij"), 5, 0, S("1234567890"), 1, 10, S("abcde234567890fghij"));
+ test(S("abcdefghij"), 5, 0, S("1234567890"), 5, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 5, 0, S("1234567890"), 5, 1, S("abcde6fghij"));
+ test(S("abcdefghij"), 5, 0, S("1234567890"), 5, 2, S("abcde67fghij"));
+ test(S("abcdefghij"), 5, 0, S("1234567890"), 5, 4, S("abcde6789fghij"));
+ test(S("abcdefghij"), 5, 0, S("1234567890"), 5, 5, S("abcde67890fghij"));
+ test(S("abcdefghij"), 5, 0, S("1234567890"), 5, 6, S("abcde67890fghij"));
+ test(S("abcdefghij"), 5, 0, S("1234567890"), 9, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 5, 0, S("1234567890"), 9, 1, S("abcde0fghij"));
+ test(S("abcdefghij"), 5, 0, S("1234567890"), 9, 2, S("abcde0fghij"));
+ test(S("abcdefghij"), 5, 0, S("1234567890"), 10, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 5, 0, S("1234567890"), 10, 1, S("abcdefghij"));
+ test(S("abcdefghij"), 5, 0, S("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghij"), 5, 0, S("12345678901234567890"), 0, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 5, 0, S("12345678901234567890"), 0, 1, S("abcde1fghij"));
+ test(S("abcdefghij"), 5, 0, S("12345678901234567890"), 0, 10, S("abcde1234567890fghij"));
+ test(S("abcdefghij"), 5, 0, S("12345678901234567890"), 0, 19, S("abcde1234567890123456789fghij"));
+ test(S("abcdefghij"), 5, 0, S("12345678901234567890"), 0, 20, S("abcde12345678901234567890fghij"));
+ test(S("abcdefghij"), 5, 0, S("12345678901234567890"), 0, 21, S("abcde12345678901234567890fghij"));
+ test(S("abcdefghij"), 5, 0, S("12345678901234567890"), 1, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 5, 0, S("12345678901234567890"), 1, 1, S("abcde2fghij"));
+ test(S("abcdefghij"), 5, 0, S("12345678901234567890"), 1, 9, S("abcde234567890fghij"));
+ test(S("abcdefghij"), 5, 0, S("12345678901234567890"), 1, 18, S("abcde234567890123456789fghij"));
+ test(S("abcdefghij"), 5, 0, S("12345678901234567890"), 1, 19, S("abcde2345678901234567890fghij"));
+ test(S("abcdefghij"), 5, 0, S("12345678901234567890"), 1, 20, S("abcde2345678901234567890fghij"));
+ test(S("abcdefghij"), 5, 0, S("12345678901234567890"), 10, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 5, 0, S("12345678901234567890"), 10, 1, S("abcde1fghij"));
+ test(S("abcdefghij"), 5, 0, S("12345678901234567890"), 10, 5, S("abcde12345fghij"));
+ test(S("abcdefghij"), 5, 0, S("12345678901234567890"), 10, 9, S("abcde123456789fghij"));
+ test(S("abcdefghij"), 5, 0, S("12345678901234567890"), 10, 10, S("abcde1234567890fghij"));
+ test(S("abcdefghij"), 5, 0, S("12345678901234567890"), 10, 11, S("abcde1234567890fghij"));
+ test(S("abcdefghij"), 5, 0, S("12345678901234567890"), 19, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 5, 0, S("12345678901234567890"), 19, 1, S("abcde0fghij"));
+ test(S("abcdefghij"), 5, 0, S("12345678901234567890"), 19, 2, S("abcde0fghij"));
+ test(S("abcdefghij"), 5, 0, S("12345678901234567890"), 20, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 5, 0, S("12345678901234567890"), 20, 1, S("abcdefghij"));
+ test(S("abcdefghij"), 5, 0, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghij"), 5, 1, S(""), 0, 0, S("abcdeghij"));
+ test(S("abcdefghij"), 5, 1, S(""), 0, 1, S("abcdeghij"));
+ test(S("abcdefghij"), 5, 1, S(""), 1, 0, S("can't happen"));
+ test(S("abcdefghij"), 5, 1, S("12345"), 0, 0, S("abcdeghij"));
+ test(S("abcdefghij"), 5, 1, S("12345"), 0, 1, S("abcde1ghij"));
+ test(S("abcdefghij"), 5, 1, S("12345"), 0, 2, S("abcde12ghij"));
+ test(S("abcdefghij"), 5, 1, S("12345"), 0, 4, S("abcde1234ghij"));
+ test(S("abcdefghij"), 5, 1, S("12345"), 0, 5, S("abcde12345ghij"));
+ test(S("abcdefghij"), 5, 1, S("12345"), 0, 6, S("abcde12345ghij"));
+ test(S("abcdefghij"), 5, 1, S("12345"), 1, 0, S("abcdeghij"));
+ test(S("abcdefghij"), 5, 1, S("12345"), 1, 1, S("abcde2ghij"));
+ test(S("abcdefghij"), 5, 1, S("12345"), 1, 2, S("abcde23ghij"));
+ test(S("abcdefghij"), 5, 1, S("12345"), 1, 3, S("abcde234ghij"));
+ test(S("abcdefghij"), 5, 1, S("12345"), 1, 4, S("abcde2345ghij"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test29()
-{
- test(S("abcdefghij"), 5, 1, S("12345"), 1, 5, S("abcde2345ghij"));
- test(S("abcdefghij"), 5, 1, S("12345"), 2, 0, S("abcdeghij"));
- test(S("abcdefghij"), 5, 1, S("12345"), 2, 1, S("abcde3ghij"));
- test(S("abcdefghij"), 5, 1, S("12345"), 2, 2, S("abcde34ghij"));
- test(S("abcdefghij"), 5, 1, S("12345"), 2, 3, S("abcde345ghij"));
- test(S("abcdefghij"), 5, 1, S("12345"), 2, 4, S("abcde345ghij"));
- test(S("abcdefghij"), 5, 1, S("12345"), 4, 0, S("abcdeghij"));
- test(S("abcdefghij"), 5, 1, S("12345"), 4, 1, S("abcde5ghij"));
- test(S("abcdefghij"), 5, 1, S("12345"), 4, 2, S("abcde5ghij"));
- test(S("abcdefghij"), 5, 1, S("12345"), 5, 0, S("abcdeghij"));
- test(S("abcdefghij"), 5, 1, S("12345"), 5, 1, S("abcdeghij"));
- test(S("abcdefghij"), 5, 1, S("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghij"), 5, 1, S("1234567890"), 0, 0, S("abcdeghij"));
- test(S("abcdefghij"), 5, 1, S("1234567890"), 0, 1, S("abcde1ghij"));
- test(S("abcdefghij"), 5, 1, S("1234567890"), 0, 5, S("abcde12345ghij"));
- test(S("abcdefghij"), 5, 1, S("1234567890"), 0, 9, S("abcde123456789ghij"));
- test(S("abcdefghij"), 5, 1, S("1234567890"), 0, 10, S("abcde1234567890ghij"));
- test(S("abcdefghij"), 5, 1, S("1234567890"), 0, 11, S("abcde1234567890ghij"));
- test(S("abcdefghij"), 5, 1, S("1234567890"), 1, 0, S("abcdeghij"));
- test(S("abcdefghij"), 5, 1, S("1234567890"), 1, 1, S("abcde2ghij"));
- test(S("abcdefghij"), 5, 1, S("1234567890"), 1, 4, S("abcde2345ghij"));
- test(S("abcdefghij"), 5, 1, S("1234567890"), 1, 8, S("abcde23456789ghij"));
- test(S("abcdefghij"), 5, 1, S("1234567890"), 1, 9, S("abcde234567890ghij"));
- test(S("abcdefghij"), 5, 1, S("1234567890"), 1, 10, S("abcde234567890ghij"));
- test(S("abcdefghij"), 5, 1, S("1234567890"), 5, 0, S("abcdeghij"));
- test(S("abcdefghij"), 5, 1, S("1234567890"), 5, 1, S("abcde6ghij"));
- test(S("abcdefghij"), 5, 1, S("1234567890"), 5, 2, S("abcde67ghij"));
- test(S("abcdefghij"), 5, 1, S("1234567890"), 5, 4, S("abcde6789ghij"));
- test(S("abcdefghij"), 5, 1, S("1234567890"), 5, 5, S("abcde67890ghij"));
- test(S("abcdefghij"), 5, 1, S("1234567890"), 5, 6, S("abcde67890ghij"));
- test(S("abcdefghij"), 5, 1, S("1234567890"), 9, 0, S("abcdeghij"));
- test(S("abcdefghij"), 5, 1, S("1234567890"), 9, 1, S("abcde0ghij"));
- test(S("abcdefghij"), 5, 1, S("1234567890"), 9, 2, S("abcde0ghij"));
- test(S("abcdefghij"), 5, 1, S("1234567890"), 10, 0, S("abcdeghij"));
- test(S("abcdefghij"), 5, 1, S("1234567890"), 10, 1, S("abcdeghij"));
- test(S("abcdefghij"), 5, 1, S("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghij"), 5, 1, S("12345678901234567890"), 0, 0, S("abcdeghij"));
- test(S("abcdefghij"), 5, 1, S("12345678901234567890"), 0, 1, S("abcde1ghij"));
- test(S("abcdefghij"), 5, 1, S("12345678901234567890"), 0, 10, S("abcde1234567890ghij"));
- test(S("abcdefghij"), 5, 1, S("12345678901234567890"), 0, 19, S("abcde1234567890123456789ghij"));
- test(S("abcdefghij"), 5, 1, S("12345678901234567890"), 0, 20, S("abcde12345678901234567890ghij"));
- test(S("abcdefghij"), 5, 1, S("12345678901234567890"), 0, 21, S("abcde12345678901234567890ghij"));
- test(S("abcdefghij"), 5, 1, S("12345678901234567890"), 1, 0, S("abcdeghij"));
- test(S("abcdefghij"), 5, 1, S("12345678901234567890"), 1, 1, S("abcde2ghij"));
- test(S("abcdefghij"), 5, 1, S("12345678901234567890"), 1, 9, S("abcde234567890ghij"));
- test(S("abcdefghij"), 5, 1, S("12345678901234567890"), 1, 18, S("abcde234567890123456789ghij"));
- test(S("abcdefghij"), 5, 1, S("12345678901234567890"), 1, 19, S("abcde2345678901234567890ghij"));
- test(S("abcdefghij"), 5, 1, S("12345678901234567890"), 1, 20, S("abcde2345678901234567890ghij"));
- test(S("abcdefghij"), 5, 1, S("12345678901234567890"), 10, 0, S("abcdeghij"));
- test(S("abcdefghij"), 5, 1, S("12345678901234567890"), 10, 1, S("abcde1ghij"));
- test(S("abcdefghij"), 5, 1, S("12345678901234567890"), 10, 5, S("abcde12345ghij"));
- test(S("abcdefghij"), 5, 1, S("12345678901234567890"), 10, 9, S("abcde123456789ghij"));
- test(S("abcdefghij"), 5, 1, S("12345678901234567890"), 10, 10, S("abcde1234567890ghij"));
- test(S("abcdefghij"), 5, 1, S("12345678901234567890"), 10, 11, S("abcde1234567890ghij"));
- test(S("abcdefghij"), 5, 1, S("12345678901234567890"), 19, 0, S("abcdeghij"));
- test(S("abcdefghij"), 5, 1, S("12345678901234567890"), 19, 1, S("abcde0ghij"));
- test(S("abcdefghij"), 5, 1, S("12345678901234567890"), 19, 2, S("abcde0ghij"));
- test(S("abcdefghij"), 5, 1, S("12345678901234567890"), 20, 0, S("abcdeghij"));
- test(S("abcdefghij"), 5, 1, S("12345678901234567890"), 20, 1, S("abcdeghij"));
- test(S("abcdefghij"), 5, 1, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghij"), 5, 2, S(""), 0, 0, S("abcdehij"));
- test(S("abcdefghij"), 5, 2, S(""), 0, 1, S("abcdehij"));
- test(S("abcdefghij"), 5, 2, S(""), 1, 0, S("can't happen"));
- test(S("abcdefghij"), 5, 2, S("12345"), 0, 0, S("abcdehij"));
- test(S("abcdefghij"), 5, 2, S("12345"), 0, 1, S("abcde1hij"));
- test(S("abcdefghij"), 5, 2, S("12345"), 0, 2, S("abcde12hij"));
- test(S("abcdefghij"), 5, 2, S("12345"), 0, 4, S("abcde1234hij"));
- test(S("abcdefghij"), 5, 2, S("12345"), 0, 5, S("abcde12345hij"));
- test(S("abcdefghij"), 5, 2, S("12345"), 0, 6, S("abcde12345hij"));
- test(S("abcdefghij"), 5, 2, S("12345"), 1, 0, S("abcdehij"));
- test(S("abcdefghij"), 5, 2, S("12345"), 1, 1, S("abcde2hij"));
- test(S("abcdefghij"), 5, 2, S("12345"), 1, 2, S("abcde23hij"));
- test(S("abcdefghij"), 5, 2, S("12345"), 1, 3, S("abcde234hij"));
- test(S("abcdefghij"), 5, 2, S("12345"), 1, 4, S("abcde2345hij"));
- test(S("abcdefghij"), 5, 2, S("12345"), 1, 5, S("abcde2345hij"));
- test(S("abcdefghij"), 5, 2, S("12345"), 2, 0, S("abcdehij"));
- test(S("abcdefghij"), 5, 2, S("12345"), 2, 1, S("abcde3hij"));
- test(S("abcdefghij"), 5, 2, S("12345"), 2, 2, S("abcde34hij"));
- test(S("abcdefghij"), 5, 2, S("12345"), 2, 3, S("abcde345hij"));
- test(S("abcdefghij"), 5, 2, S("12345"), 2, 4, S("abcde345hij"));
- test(S("abcdefghij"), 5, 2, S("12345"), 4, 0, S("abcdehij"));
- test(S("abcdefghij"), 5, 2, S("12345"), 4, 1, S("abcde5hij"));
- test(S("abcdefghij"), 5, 2, S("12345"), 4, 2, S("abcde5hij"));
- test(S("abcdefghij"), 5, 2, S("12345"), 5, 0, S("abcdehij"));
- test(S("abcdefghij"), 5, 2, S("12345"), 5, 1, S("abcdehij"));
- test(S("abcdefghij"), 5, 2, S("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghij"), 5, 2, S("1234567890"), 0, 0, S("abcdehij"));
- test(S("abcdefghij"), 5, 2, S("1234567890"), 0, 1, S("abcde1hij"));
- test(S("abcdefghij"), 5, 2, S("1234567890"), 0, 5, S("abcde12345hij"));
- test(S("abcdefghij"), 5, 2, S("1234567890"), 0, 9, S("abcde123456789hij"));
- test(S("abcdefghij"), 5, 2, S("1234567890"), 0, 10, S("abcde1234567890hij"));
- test(S("abcdefghij"), 5, 2, S("1234567890"), 0, 11, S("abcde1234567890hij"));
- test(S("abcdefghij"), 5, 2, S("1234567890"), 1, 0, S("abcdehij"));
- test(S("abcdefghij"), 5, 2, S("1234567890"), 1, 1, S("abcde2hij"));
- test(S("abcdefghij"), 5, 2, S("1234567890"), 1, 4, S("abcde2345hij"));
- test(S("abcdefghij"), 5, 2, S("1234567890"), 1, 8, S("abcde23456789hij"));
- test(S("abcdefghij"), 5, 2, S("1234567890"), 1, 9, S("abcde234567890hij"));
- test(S("abcdefghij"), 5, 2, S("1234567890"), 1, 10, S("abcde234567890hij"));
- test(S("abcdefghij"), 5, 2, S("1234567890"), 5, 0, S("abcdehij"));
- test(S("abcdefghij"), 5, 2, S("1234567890"), 5, 1, S("abcde6hij"));
+TEST_CONSTEXPR_CXX20 bool test29() {
+ test(S("abcdefghij"), 5, 1, S("12345"), 1, 5, S("abcde2345ghij"));
+ test(S("abcdefghij"), 5, 1, S("12345"), 2, 0, S("abcdeghij"));
+ test(S("abcdefghij"), 5, 1, S("12345"), 2, 1, S("abcde3ghij"));
+ test(S("abcdefghij"), 5, 1, S("12345"), 2, 2, S("abcde34ghij"));
+ test(S("abcdefghij"), 5, 1, S("12345"), 2, 3, S("abcde345ghij"));
+ test(S("abcdefghij"), 5, 1, S("12345"), 2, 4, S("abcde345ghij"));
+ test(S("abcdefghij"), 5, 1, S("12345"), 4, 0, S("abcdeghij"));
+ test(S("abcdefghij"), 5, 1, S("12345"), 4, 1, S("abcde5ghij"));
+ test(S("abcdefghij"), 5, 1, S("12345"), 4, 2, S("abcde5ghij"));
+ test(S("abcdefghij"), 5, 1, S("12345"), 5, 0, S("abcdeghij"));
+ test(S("abcdefghij"), 5, 1, S("12345"), 5, 1, S("abcdeghij"));
+ test(S("abcdefghij"), 5, 1, S("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghij"), 5, 1, S("1234567890"), 0, 0, S("abcdeghij"));
+ test(S("abcdefghij"), 5, 1, S("1234567890"), 0, 1, S("abcde1ghij"));
+ test(S("abcdefghij"), 5, 1, S("1234567890"), 0, 5, S("abcde12345ghij"));
+ test(S("abcdefghij"), 5, 1, S("1234567890"), 0, 9, S("abcde123456789ghij"));
+ test(S("abcdefghij"), 5, 1, S("1234567890"), 0, 10, S("abcde1234567890ghij"));
+ test(S("abcdefghij"), 5, 1, S("1234567890"), 0, 11, S("abcde1234567890ghij"));
+ test(S("abcdefghij"), 5, 1, S("1234567890"), 1, 0, S("abcdeghij"));
+ test(S("abcdefghij"), 5, 1, S("1234567890"), 1, 1, S("abcde2ghij"));
+ test(S("abcdefghij"), 5, 1, S("1234567890"), 1, 4, S("abcde2345ghij"));
+ test(S("abcdefghij"), 5, 1, S("1234567890"), 1, 8, S("abcde23456789ghij"));
+ test(S("abcdefghij"), 5, 1, S("1234567890"), 1, 9, S("abcde234567890ghij"));
+ test(S("abcdefghij"), 5, 1, S("1234567890"), 1, 10, S("abcde234567890ghij"));
+ test(S("abcdefghij"), 5, 1, S("1234567890"), 5, 0, S("abcdeghij"));
+ test(S("abcdefghij"), 5, 1, S("1234567890"), 5, 1, S("abcde6ghij"));
+ test(S("abcdefghij"), 5, 1, S("1234567890"), 5, 2, S("abcde67ghij"));
+ test(S("abcdefghij"), 5, 1, S("1234567890"), 5, 4, S("abcde6789ghij"));
+ test(S("abcdefghij"), 5, 1, S("1234567890"), 5, 5, S("abcde67890ghij"));
+ test(S("abcdefghij"), 5, 1, S("1234567890"), 5, 6, S("abcde67890ghij"));
+ test(S("abcdefghij"), 5, 1, S("1234567890"), 9, 0, S("abcdeghij"));
+ test(S("abcdefghij"), 5, 1, S("1234567890"), 9, 1, S("abcde0ghij"));
+ test(S("abcdefghij"), 5, 1, S("1234567890"), 9, 2, S("abcde0ghij"));
+ test(S("abcdefghij"), 5, 1, S("1234567890"), 10, 0, S("abcdeghij"));
+ test(S("abcdefghij"), 5, 1, S("1234567890"), 10, 1, S("abcdeghij"));
+ test(S("abcdefghij"), 5, 1, S("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghij"), 5, 1, S("12345678901234567890"), 0, 0, S("abcdeghij"));
+ test(S("abcdefghij"), 5, 1, S("12345678901234567890"), 0, 1, S("abcde1ghij"));
+ test(S("abcdefghij"), 5, 1, S("12345678901234567890"), 0, 10, S("abcde1234567890ghij"));
+ test(S("abcdefghij"), 5, 1, S("12345678901234567890"), 0, 19, S("abcde1234567890123456789ghij"));
+ test(S("abcdefghij"), 5, 1, S("12345678901234567890"), 0, 20, S("abcde12345678901234567890ghij"));
+ test(S("abcdefghij"), 5, 1, S("12345678901234567890"), 0, 21, S("abcde12345678901234567890ghij"));
+ test(S("abcdefghij"), 5, 1, S("12345678901234567890"), 1, 0, S("abcdeghij"));
+ test(S("abcdefghij"), 5, 1, S("12345678901234567890"), 1, 1, S("abcde2ghij"));
+ test(S("abcdefghij"), 5, 1, S("12345678901234567890"), 1, 9, S("abcde234567890ghij"));
+ test(S("abcdefghij"), 5, 1, S("12345678901234567890"), 1, 18, S("abcde234567890123456789ghij"));
+ test(S("abcdefghij"), 5, 1, S("12345678901234567890"), 1, 19, S("abcde2345678901234567890ghij"));
+ test(S("abcdefghij"), 5, 1, S("12345678901234567890"), 1, 20, S("abcde2345678901234567890ghij"));
+ test(S("abcdefghij"), 5, 1, S("12345678901234567890"), 10, 0, S("abcdeghij"));
+ test(S("abcdefghij"), 5, 1, S("12345678901234567890"), 10, 1, S("abcde1ghij"));
+ test(S("abcdefghij"), 5, 1, S("12345678901234567890"), 10, 5, S("abcde12345ghij"));
+ test(S("abcdefghij"), 5, 1, S("12345678901234567890"), 10, 9, S("abcde123456789ghij"));
+ test(S("abcdefghij"), 5, 1, S("12345678901234567890"), 10, 10, S("abcde1234567890ghij"));
+ test(S("abcdefghij"), 5, 1, S("12345678901234567890"), 10, 11, S("abcde1234567890ghij"));
+ test(S("abcdefghij"), 5, 1, S("12345678901234567890"), 19, 0, S("abcdeghij"));
+ test(S("abcdefghij"), 5, 1, S("12345678901234567890"), 19, 1, S("abcde0ghij"));
+ test(S("abcdefghij"), 5, 1, S("12345678901234567890"), 19, 2, S("abcde0ghij"));
+ test(S("abcdefghij"), 5, 1, S("12345678901234567890"), 20, 0, S("abcdeghij"));
+ test(S("abcdefghij"), 5, 1, S("12345678901234567890"), 20, 1, S("abcdeghij"));
+ test(S("abcdefghij"), 5, 1, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghij"), 5, 2, S(""), 0, 0, S("abcdehij"));
+ test(S("abcdefghij"), 5, 2, S(""), 0, 1, S("abcdehij"));
+ test(S("abcdefghij"), 5, 2, S(""), 1, 0, S("can't happen"));
+ test(S("abcdefghij"), 5, 2, S("12345"), 0, 0, S("abcdehij"));
+ test(S("abcdefghij"), 5, 2, S("12345"), 0, 1, S("abcde1hij"));
+ test(S("abcdefghij"), 5, 2, S("12345"), 0, 2, S("abcde12hij"));
+ test(S("abcdefghij"), 5, 2, S("12345"), 0, 4, S("abcde1234hij"));
+ test(S("abcdefghij"), 5, 2, S("12345"), 0, 5, S("abcde12345hij"));
+ test(S("abcdefghij"), 5, 2, S("12345"), 0, 6, S("abcde12345hij"));
+ test(S("abcdefghij"), 5, 2, S("12345"), 1, 0, S("abcdehij"));
+ test(S("abcdefghij"), 5, 2, S("12345"), 1, 1, S("abcde2hij"));
+ test(S("abcdefghij"), 5, 2, S("12345"), 1, 2, S("abcde23hij"));
+ test(S("abcdefghij"), 5, 2, S("12345"), 1, 3, S("abcde234hij"));
+ test(S("abcdefghij"), 5, 2, S("12345"), 1, 4, S("abcde2345hij"));
+ test(S("abcdefghij"), 5, 2, S("12345"), 1, 5, S("abcde2345hij"));
+ test(S("abcdefghij"), 5, 2, S("12345"), 2, 0, S("abcdehij"));
+ test(S("abcdefghij"), 5, 2, S("12345"), 2, 1, S("abcde3hij"));
+ test(S("abcdefghij"), 5, 2, S("12345"), 2, 2, S("abcde34hij"));
+ test(S("abcdefghij"), 5, 2, S("12345"), 2, 3, S("abcde345hij"));
+ test(S("abcdefghij"), 5, 2, S("12345"), 2, 4, S("abcde345hij"));
+ test(S("abcdefghij"), 5, 2, S("12345"), 4, 0, S("abcdehij"));
+ test(S("abcdefghij"), 5, 2, S("12345"), 4, 1, S("abcde5hij"));
+ test(S("abcdefghij"), 5, 2, S("12345"), 4, 2, S("abcde5hij"));
+ test(S("abcdefghij"), 5, 2, S("12345"), 5, 0, S("abcdehij"));
+ test(S("abcdefghij"), 5, 2, S("12345"), 5, 1, S("abcdehij"));
+ test(S("abcdefghij"), 5, 2, S("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghij"), 5, 2, S("1234567890"), 0, 0, S("abcdehij"));
+ test(S("abcdefghij"), 5, 2, S("1234567890"), 0, 1, S("abcde1hij"));
+ test(S("abcdefghij"), 5, 2, S("1234567890"), 0, 5, S("abcde12345hij"));
+ test(S("abcdefghij"), 5, 2, S("1234567890"), 0, 9, S("abcde123456789hij"));
+ test(S("abcdefghij"), 5, 2, S("1234567890"), 0, 10, S("abcde1234567890hij"));
+ test(S("abcdefghij"), 5, 2, S("1234567890"), 0, 11, S("abcde1234567890hij"));
+ test(S("abcdefghij"), 5, 2, S("1234567890"), 1, 0, S("abcdehij"));
+ test(S("abcdefghij"), 5, 2, S("1234567890"), 1, 1, S("abcde2hij"));
+ test(S("abcdefghij"), 5, 2, S("1234567890"), 1, 4, S("abcde2345hij"));
+ test(S("abcdefghij"), 5, 2, S("1234567890"), 1, 8, S("abcde23456789hij"));
+ test(S("abcdefghij"), 5, 2, S("1234567890"), 1, 9, S("abcde234567890hij"));
+ test(S("abcdefghij"), 5, 2, S("1234567890"), 1, 10, S("abcde234567890hij"));
+ test(S("abcdefghij"), 5, 2, S("1234567890"), 5, 0, S("abcdehij"));
+ test(S("abcdefghij"), 5, 2, S("1234567890"), 5, 1, S("abcde6hij"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test30()
-{
- test(S("abcdefghij"), 5, 2, S("1234567890"), 5, 2, S("abcde67hij"));
- test(S("abcdefghij"), 5, 2, S("1234567890"), 5, 4, S("abcde6789hij"));
- test(S("abcdefghij"), 5, 2, S("1234567890"), 5, 5, S("abcde67890hij"));
- test(S("abcdefghij"), 5, 2, S("1234567890"), 5, 6, S("abcde67890hij"));
- test(S("abcdefghij"), 5, 2, S("1234567890"), 9, 0, S("abcdehij"));
- test(S("abcdefghij"), 5, 2, S("1234567890"), 9, 1, S("abcde0hij"));
- test(S("abcdefghij"), 5, 2, S("1234567890"), 9, 2, S("abcde0hij"));
- test(S("abcdefghij"), 5, 2, S("1234567890"), 10, 0, S("abcdehij"));
- test(S("abcdefghij"), 5, 2, S("1234567890"), 10, 1, S("abcdehij"));
- test(S("abcdefghij"), 5, 2, S("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghij"), 5, 2, S("12345678901234567890"), 0, 0, S("abcdehij"));
- test(S("abcdefghij"), 5, 2, S("12345678901234567890"), 0, 1, S("abcde1hij"));
- test(S("abcdefghij"), 5, 2, S("12345678901234567890"), 0, 10, S("abcde1234567890hij"));
- test(S("abcdefghij"), 5, 2, S("12345678901234567890"), 0, 19, S("abcde1234567890123456789hij"));
- test(S("abcdefghij"), 5, 2, S("12345678901234567890"), 0, 20, S("abcde12345678901234567890hij"));
- test(S("abcdefghij"), 5, 2, S("12345678901234567890"), 0, 21, S("abcde12345678901234567890hij"));
- test(S("abcdefghij"), 5, 2, S("12345678901234567890"), 1, 0, S("abcdehij"));
- test(S("abcdefghij"), 5, 2, S("12345678901234567890"), 1, 1, S("abcde2hij"));
- test(S("abcdefghij"), 5, 2, S("12345678901234567890"), 1, 9, S("abcde234567890hij"));
- test(S("abcdefghij"), 5, 2, S("12345678901234567890"), 1, 18, S("abcde234567890123456789hij"));
- test(S("abcdefghij"), 5, 2, S("12345678901234567890"), 1, 19, S("abcde2345678901234567890hij"));
- test(S("abcdefghij"), 5, 2, S("12345678901234567890"), 1, 20, S("abcde2345678901234567890hij"));
- test(S("abcdefghij"), 5, 2, S("12345678901234567890"), 10, 0, S("abcdehij"));
- test(S("abcdefghij"), 5, 2, S("12345678901234567890"), 10, 1, S("abcde1hij"));
- test(S("abcdefghij"), 5, 2, S("12345678901234567890"), 10, 5, S("abcde12345hij"));
- test(S("abcdefghij"), 5, 2, S("12345678901234567890"), 10, 9, S("abcde123456789hij"));
- test(S("abcdefghij"), 5, 2, S("12345678901234567890"), 10, 10, S("abcde1234567890hij"));
- test(S("abcdefghij"), 5, 2, S("12345678901234567890"), 10, 11, S("abcde1234567890hij"));
- test(S("abcdefghij"), 5, 2, S("12345678901234567890"), 19, 0, S("abcdehij"));
- test(S("abcdefghij"), 5, 2, S("12345678901234567890"), 19, 1, S("abcde0hij"));
- test(S("abcdefghij"), 5, 2, S("12345678901234567890"), 19, 2, S("abcde0hij"));
- test(S("abcdefghij"), 5, 2, S("12345678901234567890"), 20, 0, S("abcdehij"));
- test(S("abcdefghij"), 5, 2, S("12345678901234567890"), 20, 1, S("abcdehij"));
- test(S("abcdefghij"), 5, 2, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghij"), 5, 4, S(""), 0, 0, S("abcdej"));
- test(S("abcdefghij"), 5, 4, S(""), 0, 1, S("abcdej"));
- test(S("abcdefghij"), 5, 4, S(""), 1, 0, S("can't happen"));
- test(S("abcdefghij"), 5, 4, S("12345"), 0, 0, S("abcdej"));
- test(S("abcdefghij"), 5, 4, S("12345"), 0, 1, S("abcde1j"));
- test(S("abcdefghij"), 5, 4, S("12345"), 0, 2, S("abcde12j"));
- test(S("abcdefghij"), 5, 4, S("12345"), 0, 4, S("abcde1234j"));
- test(S("abcdefghij"), 5, 4, S("12345"), 0, 5, S("abcde12345j"));
- test(S("abcdefghij"), 5, 4, S("12345"), 0, 6, S("abcde12345j"));
- test(S("abcdefghij"), 5, 4, S("12345"), 1, 0, S("abcdej"));
- test(S("abcdefghij"), 5, 4, S("12345"), 1, 1, S("abcde2j"));
- test(S("abcdefghij"), 5, 4, S("12345"), 1, 2, S("abcde23j"));
- test(S("abcdefghij"), 5, 4, S("12345"), 1, 3, S("abcde234j"));
- test(S("abcdefghij"), 5, 4, S("12345"), 1, 4, S("abcde2345j"));
- test(S("abcdefghij"), 5, 4, S("12345"), 1, 5, S("abcde2345j"));
- test(S("abcdefghij"), 5, 4, S("12345"), 2, 0, S("abcdej"));
- test(S("abcdefghij"), 5, 4, S("12345"), 2, 1, S("abcde3j"));
- test(S("abcdefghij"), 5, 4, S("12345"), 2, 2, S("abcde34j"));
- test(S("abcdefghij"), 5, 4, S("12345"), 2, 3, S("abcde345j"));
- test(S("abcdefghij"), 5, 4, S("12345"), 2, 4, S("abcde345j"));
- test(S("abcdefghij"), 5, 4, S("12345"), 4, 0, S("abcdej"));
- test(S("abcdefghij"), 5, 4, S("12345"), 4, 1, S("abcde5j"));
- test(S("abcdefghij"), 5, 4, S("12345"), 4, 2, S("abcde5j"));
- test(S("abcdefghij"), 5, 4, S("12345"), 5, 0, S("abcdej"));
- test(S("abcdefghij"), 5, 4, S("12345"), 5, 1, S("abcdej"));
- test(S("abcdefghij"), 5, 4, S("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghij"), 5, 4, S("1234567890"), 0, 0, S("abcdej"));
- test(S("abcdefghij"), 5, 4, S("1234567890"), 0, 1, S("abcde1j"));
- test(S("abcdefghij"), 5, 4, S("1234567890"), 0, 5, S("abcde12345j"));
- test(S("abcdefghij"), 5, 4, S("1234567890"), 0, 9, S("abcde123456789j"));
- test(S("abcdefghij"), 5, 4, S("1234567890"), 0, 10, S("abcde1234567890j"));
- test(S("abcdefghij"), 5, 4, S("1234567890"), 0, 11, S("abcde1234567890j"));
- test(S("abcdefghij"), 5, 4, S("1234567890"), 1, 0, S("abcdej"));
- test(S("abcdefghij"), 5, 4, S("1234567890"), 1, 1, S("abcde2j"));
- test(S("abcdefghij"), 5, 4, S("1234567890"), 1, 4, S("abcde2345j"));
- test(S("abcdefghij"), 5, 4, S("1234567890"), 1, 8, S("abcde23456789j"));
- test(S("abcdefghij"), 5, 4, S("1234567890"), 1, 9, S("abcde234567890j"));
- test(S("abcdefghij"), 5, 4, S("1234567890"), 1, 10, S("abcde234567890j"));
- test(S("abcdefghij"), 5, 4, S("1234567890"), 5, 0, S("abcdej"));
- test(S("abcdefghij"), 5, 4, S("1234567890"), 5, 1, S("abcde6j"));
- test(S("abcdefghij"), 5, 4, S("1234567890"), 5, 2, S("abcde67j"));
- test(S("abcdefghij"), 5, 4, S("1234567890"), 5, 4, S("abcde6789j"));
- test(S("abcdefghij"), 5, 4, S("1234567890"), 5, 5, S("abcde67890j"));
- test(S("abcdefghij"), 5, 4, S("1234567890"), 5, 6, S("abcde67890j"));
- test(S("abcdefghij"), 5, 4, S("1234567890"), 9, 0, S("abcdej"));
- test(S("abcdefghij"), 5, 4, S("1234567890"), 9, 1, S("abcde0j"));
- test(S("abcdefghij"), 5, 4, S("1234567890"), 9, 2, S("abcde0j"));
- test(S("abcdefghij"), 5, 4, S("1234567890"), 10, 0, S("abcdej"));
- test(S("abcdefghij"), 5, 4, S("1234567890"), 10, 1, S("abcdej"));
- test(S("abcdefghij"), 5, 4, S("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghij"), 5, 4, S("12345678901234567890"), 0, 0, S("abcdej"));
- test(S("abcdefghij"), 5, 4, S("12345678901234567890"), 0, 1, S("abcde1j"));
- test(S("abcdefghij"), 5, 4, S("12345678901234567890"), 0, 10, S("abcde1234567890j"));
- test(S("abcdefghij"), 5, 4, S("12345678901234567890"), 0, 19, S("abcde1234567890123456789j"));
- test(S("abcdefghij"), 5, 4, S("12345678901234567890"), 0, 20, S("abcde12345678901234567890j"));
- test(S("abcdefghij"), 5, 4, S("12345678901234567890"), 0, 21, S("abcde12345678901234567890j"));
- test(S("abcdefghij"), 5, 4, S("12345678901234567890"), 1, 0, S("abcdej"));
- test(S("abcdefghij"), 5, 4, S("12345678901234567890"), 1, 1, S("abcde2j"));
- test(S("abcdefghij"), 5, 4, S("12345678901234567890"), 1, 9, S("abcde234567890j"));
- test(S("abcdefghij"), 5, 4, S("12345678901234567890"), 1, 18, S("abcde234567890123456789j"));
- test(S("abcdefghij"), 5, 4, S("12345678901234567890"), 1, 19, S("abcde2345678901234567890j"));
- test(S("abcdefghij"), 5, 4, S("12345678901234567890"), 1, 20, S("abcde2345678901234567890j"));
- test(S("abcdefghij"), 5, 4, S("12345678901234567890"), 10, 0, S("abcdej"));
- test(S("abcdefghij"), 5, 4, S("12345678901234567890"), 10, 1, S("abcde1j"));
- test(S("abcdefghij"), 5, 4, S("12345678901234567890"), 10, 5, S("abcde12345j"));
- test(S("abcdefghij"), 5, 4, S("12345678901234567890"), 10, 9, S("abcde123456789j"));
+TEST_CONSTEXPR_CXX20 bool test30() {
+ test(S("abcdefghij"), 5, 2, S("1234567890"), 5, 2, S("abcde67hij"));
+ test(S("abcdefghij"), 5, 2, S("1234567890"), 5, 4, S("abcde6789hij"));
+ test(S("abcdefghij"), 5, 2, S("1234567890"), 5, 5, S("abcde67890hij"));
+ test(S("abcdefghij"), 5, 2, S("1234567890"), 5, 6, S("abcde67890hij"));
+ test(S("abcdefghij"), 5, 2, S("1234567890"), 9, 0, S("abcdehij"));
+ test(S("abcdefghij"), 5, 2, S("1234567890"), 9, 1, S("abcde0hij"));
+ test(S("abcdefghij"), 5, 2, S("1234567890"), 9, 2, S("abcde0hij"));
+ test(S("abcdefghij"), 5, 2, S("1234567890"), 10, 0, S("abcdehij"));
+ test(S("abcdefghij"), 5, 2, S("1234567890"), 10, 1, S("abcdehij"));
+ test(S("abcdefghij"), 5, 2, S("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghij"), 5, 2, S("12345678901234567890"), 0, 0, S("abcdehij"));
+ test(S("abcdefghij"), 5, 2, S("12345678901234567890"), 0, 1, S("abcde1hij"));
+ test(S("abcdefghij"), 5, 2, S("12345678901234567890"), 0, 10, S("abcde1234567890hij"));
+ test(S("abcdefghij"), 5, 2, S("12345678901234567890"), 0, 19, S("abcde1234567890123456789hij"));
+ test(S("abcdefghij"), 5, 2, S("12345678901234567890"), 0, 20, S("abcde12345678901234567890hij"));
+ test(S("abcdefghij"), 5, 2, S("12345678901234567890"), 0, 21, S("abcde12345678901234567890hij"));
+ test(S("abcdefghij"), 5, 2, S("12345678901234567890"), 1, 0, S("abcdehij"));
+ test(S("abcdefghij"), 5, 2, S("12345678901234567890"), 1, 1, S("abcde2hij"));
+ test(S("abcdefghij"), 5, 2, S("12345678901234567890"), 1, 9, S("abcde234567890hij"));
+ test(S("abcdefghij"), 5, 2, S("12345678901234567890"), 1, 18, S("abcde234567890123456789hij"));
+ test(S("abcdefghij"), 5, 2, S("12345678901234567890"), 1, 19, S("abcde2345678901234567890hij"));
+ test(S("abcdefghij"), 5, 2, S("12345678901234567890"), 1, 20, S("abcde2345678901234567890hij"));
+ test(S("abcdefghij"), 5, 2, S("12345678901234567890"), 10, 0, S("abcdehij"));
+ test(S("abcdefghij"), 5, 2, S("12345678901234567890"), 10, 1, S("abcde1hij"));
+ test(S("abcdefghij"), 5, 2, S("12345678901234567890"), 10, 5, S("abcde12345hij"));
+ test(S("abcdefghij"), 5, 2, S("12345678901234567890"), 10, 9, S("abcde123456789hij"));
+ test(S("abcdefghij"), 5, 2, S("12345678901234567890"), 10, 10, S("abcde1234567890hij"));
+ test(S("abcdefghij"), 5, 2, S("12345678901234567890"), 10, 11, S("abcde1234567890hij"));
+ test(S("abcdefghij"), 5, 2, S("12345678901234567890"), 19, 0, S("abcdehij"));
+ test(S("abcdefghij"), 5, 2, S("12345678901234567890"), 19, 1, S("abcde0hij"));
+ test(S("abcdefghij"), 5, 2, S("12345678901234567890"), 19, 2, S("abcde0hij"));
+ test(S("abcdefghij"), 5, 2, S("12345678901234567890"), 20, 0, S("abcdehij"));
+ test(S("abcdefghij"), 5, 2, S("12345678901234567890"), 20, 1, S("abcdehij"));
+ test(S("abcdefghij"), 5, 2, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghij"), 5, 4, S(""), 0, 0, S("abcdej"));
+ test(S("abcdefghij"), 5, 4, S(""), 0, 1, S("abcdej"));
+ test(S("abcdefghij"), 5, 4, S(""), 1, 0, S("can't happen"));
+ test(S("abcdefghij"), 5, 4, S("12345"), 0, 0, S("abcdej"));
+ test(S("abcdefghij"), 5, 4, S("12345"), 0, 1, S("abcde1j"));
+ test(S("abcdefghij"), 5, 4, S("12345"), 0, 2, S("abcde12j"));
+ test(S("abcdefghij"), 5, 4, S("12345"), 0, 4, S("abcde1234j"));
+ test(S("abcdefghij"), 5, 4, S("12345"), 0, 5, S("abcde12345j"));
+ test(S("abcdefghij"), 5, 4, S("12345"), 0, 6, S("abcde12345j"));
+ test(S("abcdefghij"), 5, 4, S("12345"), 1, 0, S("abcdej"));
+ test(S("abcdefghij"), 5, 4, S("12345"), 1, 1, S("abcde2j"));
+ test(S("abcdefghij"), 5, 4, S("12345"), 1, 2, S("abcde23j"));
+ test(S("abcdefghij"), 5, 4, S("12345"), 1, 3, S("abcde234j"));
+ test(S("abcdefghij"), 5, 4, S("12345"), 1, 4, S("abcde2345j"));
+ test(S("abcdefghij"), 5, 4, S("12345"), 1, 5, S("abcde2345j"));
+ test(S("abcdefghij"), 5, 4, S("12345"), 2, 0, S("abcdej"));
+ test(S("abcdefghij"), 5, 4, S("12345"), 2, 1, S("abcde3j"));
+ test(S("abcdefghij"), 5, 4, S("12345"), 2, 2, S("abcde34j"));
+ test(S("abcdefghij"), 5, 4, S("12345"), 2, 3, S("abcde345j"));
+ test(S("abcdefghij"), 5, 4, S("12345"), 2, 4, S("abcde345j"));
+ test(S("abcdefghij"), 5, 4, S("12345"), 4, 0, S("abcdej"));
+ test(S("abcdefghij"), 5, 4, S("12345"), 4, 1, S("abcde5j"));
+ test(S("abcdefghij"), 5, 4, S("12345"), 4, 2, S("abcde5j"));
+ test(S("abcdefghij"), 5, 4, S("12345"), 5, 0, S("abcdej"));
+ test(S("abcdefghij"), 5, 4, S("12345"), 5, 1, S("abcdej"));
+ test(S("abcdefghij"), 5, 4, S("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghij"), 5, 4, S("1234567890"), 0, 0, S("abcdej"));
+ test(S("abcdefghij"), 5, 4, S("1234567890"), 0, 1, S("abcde1j"));
+ test(S("abcdefghij"), 5, 4, S("1234567890"), 0, 5, S("abcde12345j"));
+ test(S("abcdefghij"), 5, 4, S("1234567890"), 0, 9, S("abcde123456789j"));
+ test(S("abcdefghij"), 5, 4, S("1234567890"), 0, 10, S("abcde1234567890j"));
+ test(S("abcdefghij"), 5, 4, S("1234567890"), 0, 11, S("abcde1234567890j"));
+ test(S("abcdefghij"), 5, 4, S("1234567890"), 1, 0, S("abcdej"));
+ test(S("abcdefghij"), 5, 4, S("1234567890"), 1, 1, S("abcde2j"));
+ test(S("abcdefghij"), 5, 4, S("1234567890"), 1, 4, S("abcde2345j"));
+ test(S("abcdefghij"), 5, 4, S("1234567890"), 1, 8, S("abcde23456789j"));
+ test(S("abcdefghij"), 5, 4, S("1234567890"), 1, 9, S("abcde234567890j"));
+ test(S("abcdefghij"), 5, 4, S("1234567890"), 1, 10, S("abcde234567890j"));
+ test(S("abcdefghij"), 5, 4, S("1234567890"), 5, 0, S("abcdej"));
+ test(S("abcdefghij"), 5, 4, S("1234567890"), 5, 1, S("abcde6j"));
+ test(S("abcdefghij"), 5, 4, S("1234567890"), 5, 2, S("abcde67j"));
+ test(S("abcdefghij"), 5, 4, S("1234567890"), 5, 4, S("abcde6789j"));
+ test(S("abcdefghij"), 5, 4, S("1234567890"), 5, 5, S("abcde67890j"));
+ test(S("abcdefghij"), 5, 4, S("1234567890"), 5, 6, S("abcde67890j"));
+ test(S("abcdefghij"), 5, 4, S("1234567890"), 9, 0, S("abcdej"));
+ test(S("abcdefghij"), 5, 4, S("1234567890"), 9, 1, S("abcde0j"));
+ test(S("abcdefghij"), 5, 4, S("1234567890"), 9, 2, S("abcde0j"));
+ test(S("abcdefghij"), 5, 4, S("1234567890"), 10, 0, S("abcdej"));
+ test(S("abcdefghij"), 5, 4, S("1234567890"), 10, 1, S("abcdej"));
+ test(S("abcdefghij"), 5, 4, S("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghij"), 5, 4, S("12345678901234567890"), 0, 0, S("abcdej"));
+ test(S("abcdefghij"), 5, 4, S("12345678901234567890"), 0, 1, S("abcde1j"));
+ test(S("abcdefghij"), 5, 4, S("12345678901234567890"), 0, 10, S("abcde1234567890j"));
+ test(S("abcdefghij"), 5, 4, S("12345678901234567890"), 0, 19, S("abcde1234567890123456789j"));
+ test(S("abcdefghij"), 5, 4, S("12345678901234567890"), 0, 20, S("abcde12345678901234567890j"));
+ test(S("abcdefghij"), 5, 4, S("12345678901234567890"), 0, 21, S("abcde12345678901234567890j"));
+ test(S("abcdefghij"), 5, 4, S("12345678901234567890"), 1, 0, S("abcdej"));
+ test(S("abcdefghij"), 5, 4, S("12345678901234567890"), 1, 1, S("abcde2j"));
+ test(S("abcdefghij"), 5, 4, S("12345678901234567890"), 1, 9, S("abcde234567890j"));
+ test(S("abcdefghij"), 5, 4, S("12345678901234567890"), 1, 18, S("abcde234567890123456789j"));
+ test(S("abcdefghij"), 5, 4, S("12345678901234567890"), 1, 19, S("abcde2345678901234567890j"));
+ test(S("abcdefghij"), 5, 4, S("12345678901234567890"), 1, 20, S("abcde2345678901234567890j"));
+ test(S("abcdefghij"), 5, 4, S("12345678901234567890"), 10, 0, S("abcdej"));
+ test(S("abcdefghij"), 5, 4, S("12345678901234567890"), 10, 1, S("abcde1j"));
+ test(S("abcdefghij"), 5, 4, S("12345678901234567890"), 10, 5, S("abcde12345j"));
+ test(S("abcdefghij"), 5, 4, S("12345678901234567890"), 10, 9, S("abcde123456789j"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test31()
-{
- test(S("abcdefghij"), 5, 4, S("12345678901234567890"), 10, 10, S("abcde1234567890j"));
- test(S("abcdefghij"), 5, 4, S("12345678901234567890"), 10, 11, S("abcde1234567890j"));
- test(S("abcdefghij"), 5, 4, S("12345678901234567890"), 19, 0, S("abcdej"));
- test(S("abcdefghij"), 5, 4, S("12345678901234567890"), 19, 1, S("abcde0j"));
- test(S("abcdefghij"), 5, 4, S("12345678901234567890"), 19, 2, S("abcde0j"));
- test(S("abcdefghij"), 5, 4, S("12345678901234567890"), 20, 0, S("abcdej"));
- test(S("abcdefghij"), 5, 4, S("12345678901234567890"), 20, 1, S("abcdej"));
- test(S("abcdefghij"), 5, 4, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghij"), 5, 5, S(""), 0, 0, S("abcde"));
- test(S("abcdefghij"), 5, 5, S(""), 0, 1, S("abcde"));
- test(S("abcdefghij"), 5, 5, S(""), 1, 0, S("can't happen"));
- test(S("abcdefghij"), 5, 5, S("12345"), 0, 0, S("abcde"));
- test(S("abcdefghij"), 5, 5, S("12345"), 0, 1, S("abcde1"));
- test(S("abcdefghij"), 5, 5, S("12345"), 0, 2, S("abcde12"));
- test(S("abcdefghij"), 5, 5, S("12345"), 0, 4, S("abcde1234"));
- test(S("abcdefghij"), 5, 5, S("12345"), 0, 5, S("abcde12345"));
- test(S("abcdefghij"), 5, 5, S("12345"), 0, 6, S("abcde12345"));
- test(S("abcdefghij"), 5, 5, S("12345"), 1, 0, S("abcde"));
- test(S("abcdefghij"), 5, 5, S("12345"), 1, 1, S("abcde2"));
- test(S("abcdefghij"), 5, 5, S("12345"), 1, 2, S("abcde23"));
- test(S("abcdefghij"), 5, 5, S("12345"), 1, 3, S("abcde234"));
- test(S("abcdefghij"), 5, 5, S("12345"), 1, 4, S("abcde2345"));
- test(S("abcdefghij"), 5, 5, S("12345"), 1, 5, S("abcde2345"));
- test(S("abcdefghij"), 5, 5, S("12345"), 2, 0, S("abcde"));
- test(S("abcdefghij"), 5, 5, S("12345"), 2, 1, S("abcde3"));
- test(S("abcdefghij"), 5, 5, S("12345"), 2, 2, S("abcde34"));
- test(S("abcdefghij"), 5, 5, S("12345"), 2, 3, S("abcde345"));
- test(S("abcdefghij"), 5, 5, S("12345"), 2, 4, S("abcde345"));
- test(S("abcdefghij"), 5, 5, S("12345"), 4, 0, S("abcde"));
- test(S("abcdefghij"), 5, 5, S("12345"), 4, 1, S("abcde5"));
- test(S("abcdefghij"), 5, 5, S("12345"), 4, 2, S("abcde5"));
- test(S("abcdefghij"), 5, 5, S("12345"), 5, 0, S("abcde"));
- test(S("abcdefghij"), 5, 5, S("12345"), 5, 1, S("abcde"));
- test(S("abcdefghij"), 5, 5, S("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghij"), 5, 5, S("1234567890"), 0, 0, S("abcde"));
- test(S("abcdefghij"), 5, 5, S("1234567890"), 0, 1, S("abcde1"));
- test(S("abcdefghij"), 5, 5, S("1234567890"), 0, 5, S("abcde12345"));
- test(S("abcdefghij"), 5, 5, S("1234567890"), 0, 9, S("abcde123456789"));
- test(S("abcdefghij"), 5, 5, S("1234567890"), 0, 10, S("abcde1234567890"));
- test(S("abcdefghij"), 5, 5, S("1234567890"), 0, 11, S("abcde1234567890"));
- test(S("abcdefghij"), 5, 5, S("1234567890"), 1, 0, S("abcde"));
- test(S("abcdefghij"), 5, 5, S("1234567890"), 1, 1, S("abcde2"));
- test(S("abcdefghij"), 5, 5, S("1234567890"), 1, 4, S("abcde2345"));
- test(S("abcdefghij"), 5, 5, S("1234567890"), 1, 8, S("abcde23456789"));
- test(S("abcdefghij"), 5, 5, S("1234567890"), 1, 9, S("abcde234567890"));
- test(S("abcdefghij"), 5, 5, S("1234567890"), 1, 10, S("abcde234567890"));
- test(S("abcdefghij"), 5, 5, S("1234567890"), 5, 0, S("abcde"));
- test(S("abcdefghij"), 5, 5, S("1234567890"), 5, 1, S("abcde6"));
- test(S("abcdefghij"), 5, 5, S("1234567890"), 5, 2, S("abcde67"));
- test(S("abcdefghij"), 5, 5, S("1234567890"), 5, 4, S("abcde6789"));
- test(S("abcdefghij"), 5, 5, S("1234567890"), 5, 5, S("abcde67890"));
- test(S("abcdefghij"), 5, 5, S("1234567890"), 5, 6, S("abcde67890"));
- test(S("abcdefghij"), 5, 5, S("1234567890"), 9, 0, S("abcde"));
- test(S("abcdefghij"), 5, 5, S("1234567890"), 9, 1, S("abcde0"));
- test(S("abcdefghij"), 5, 5, S("1234567890"), 9, 2, S("abcde0"));
- test(S("abcdefghij"), 5, 5, S("1234567890"), 10, 0, S("abcde"));
- test(S("abcdefghij"), 5, 5, S("1234567890"), 10, 1, S("abcde"));
- test(S("abcdefghij"), 5, 5, S("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghij"), 5, 5, S("12345678901234567890"), 0, 0, S("abcde"));
- test(S("abcdefghij"), 5, 5, S("12345678901234567890"), 0, 1, S("abcde1"));
- test(S("abcdefghij"), 5, 5, S("12345678901234567890"), 0, 10, S("abcde1234567890"));
- test(S("abcdefghij"), 5, 5, S("12345678901234567890"), 0, 19, S("abcde1234567890123456789"));
- test(S("abcdefghij"), 5, 5, S("12345678901234567890"), 0, 20, S("abcde12345678901234567890"));
- test(S("abcdefghij"), 5, 5, S("12345678901234567890"), 0, 21, S("abcde12345678901234567890"));
- test(S("abcdefghij"), 5, 5, S("12345678901234567890"), 1, 0, S("abcde"));
- test(S("abcdefghij"), 5, 5, S("12345678901234567890"), 1, 1, S("abcde2"));
- test(S("abcdefghij"), 5, 5, S("12345678901234567890"), 1, 9, S("abcde234567890"));
- test(S("abcdefghij"), 5, 5, S("12345678901234567890"), 1, 18, S("abcde234567890123456789"));
- test(S("abcdefghij"), 5, 5, S("12345678901234567890"), 1, 19, S("abcde2345678901234567890"));
- test(S("abcdefghij"), 5, 5, S("12345678901234567890"), 1, 20, S("abcde2345678901234567890"));
- test(S("abcdefghij"), 5, 5, S("12345678901234567890"), 10, 0, S("abcde"));
- test(S("abcdefghij"), 5, 5, S("12345678901234567890"), 10, 1, S("abcde1"));
- test(S("abcdefghij"), 5, 5, S("12345678901234567890"), 10, 5, S("abcde12345"));
- test(S("abcdefghij"), 5, 5, S("12345678901234567890"), 10, 9, S("abcde123456789"));
- test(S("abcdefghij"), 5, 5, S("12345678901234567890"), 10, 10, S("abcde1234567890"));
- test(S("abcdefghij"), 5, 5, S("12345678901234567890"), 10, 11, S("abcde1234567890"));
- test(S("abcdefghij"), 5, 5, S("12345678901234567890"), 19, 0, S("abcde"));
- test(S("abcdefghij"), 5, 5, S("12345678901234567890"), 19, 1, S("abcde0"));
- test(S("abcdefghij"), 5, 5, S("12345678901234567890"), 19, 2, S("abcde0"));
- test(S("abcdefghij"), 5, 5, S("12345678901234567890"), 20, 0, S("abcde"));
- test(S("abcdefghij"), 5, 5, S("12345678901234567890"), 20, 1, S("abcde"));
- test(S("abcdefghij"), 5, 5, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghij"), 5, 6, S(""), 0, 0, S("abcde"));
- test(S("abcdefghij"), 5, 6, S(""), 0, 1, S("abcde"));
- test(S("abcdefghij"), 5, 6, S(""), 1, 0, S("can't happen"));
- test(S("abcdefghij"), 5, 6, S("12345"), 0, 0, S("abcde"));
- test(S("abcdefghij"), 5, 6, S("12345"), 0, 1, S("abcde1"));
- test(S("abcdefghij"), 5, 6, S("12345"), 0, 2, S("abcde12"));
- test(S("abcdefghij"), 5, 6, S("12345"), 0, 4, S("abcde1234"));
- test(S("abcdefghij"), 5, 6, S("12345"), 0, 5, S("abcde12345"));
- test(S("abcdefghij"), 5, 6, S("12345"), 0, 6, S("abcde12345"));
- test(S("abcdefghij"), 5, 6, S("12345"), 1, 0, S("abcde"));
- test(S("abcdefghij"), 5, 6, S("12345"), 1, 1, S("abcde2"));
- test(S("abcdefghij"), 5, 6, S("12345"), 1, 2, S("abcde23"));
- test(S("abcdefghij"), 5, 6, S("12345"), 1, 3, S("abcde234"));
- test(S("abcdefghij"), 5, 6, S("12345"), 1, 4, S("abcde2345"));
- test(S("abcdefghij"), 5, 6, S("12345"), 1, 5, S("abcde2345"));
- test(S("abcdefghij"), 5, 6, S("12345"), 2, 0, S("abcde"));
- test(S("abcdefghij"), 5, 6, S("12345"), 2, 1, S("abcde3"));
- test(S("abcdefghij"), 5, 6, S("12345"), 2, 2, S("abcde34"));
+TEST_CONSTEXPR_CXX20 bool test31() {
+ test(S("abcdefghij"), 5, 4, S("12345678901234567890"), 10, 10, S("abcde1234567890j"));
+ test(S("abcdefghij"), 5, 4, S("12345678901234567890"), 10, 11, S("abcde1234567890j"));
+ test(S("abcdefghij"), 5, 4, S("12345678901234567890"), 19, 0, S("abcdej"));
+ test(S("abcdefghij"), 5, 4, S("12345678901234567890"), 19, 1, S("abcde0j"));
+ test(S("abcdefghij"), 5, 4, S("12345678901234567890"), 19, 2, S("abcde0j"));
+ test(S("abcdefghij"), 5, 4, S("12345678901234567890"), 20, 0, S("abcdej"));
+ test(S("abcdefghij"), 5, 4, S("12345678901234567890"), 20, 1, S("abcdej"));
+ test(S("abcdefghij"), 5, 4, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghij"), 5, 5, S(""), 0, 0, S("abcde"));
+ test(S("abcdefghij"), 5, 5, S(""), 0, 1, S("abcde"));
+ test(S("abcdefghij"), 5, 5, S(""), 1, 0, S("can't happen"));
+ test(S("abcdefghij"), 5, 5, S("12345"), 0, 0, S("abcde"));
+ test(S("abcdefghij"), 5, 5, S("12345"), 0, 1, S("abcde1"));
+ test(S("abcdefghij"), 5, 5, S("12345"), 0, 2, S("abcde12"));
+ test(S("abcdefghij"), 5, 5, S("12345"), 0, 4, S("abcde1234"));
+ test(S("abcdefghij"), 5, 5, S("12345"), 0, 5, S("abcde12345"));
+ test(S("abcdefghij"), 5, 5, S("12345"), 0, 6, S("abcde12345"));
+ test(S("abcdefghij"), 5, 5, S("12345"), 1, 0, S("abcde"));
+ test(S("abcdefghij"), 5, 5, S("12345"), 1, 1, S("abcde2"));
+ test(S("abcdefghij"), 5, 5, S("12345"), 1, 2, S("abcde23"));
+ test(S("abcdefghij"), 5, 5, S("12345"), 1, 3, S("abcde234"));
+ test(S("abcdefghij"), 5, 5, S("12345"), 1, 4, S("abcde2345"));
+ test(S("abcdefghij"), 5, 5, S("12345"), 1, 5, S("abcde2345"));
+ test(S("abcdefghij"), 5, 5, S("12345"), 2, 0, S("abcde"));
+ test(S("abcdefghij"), 5, 5, S("12345"), 2, 1, S("abcde3"));
+ test(S("abcdefghij"), 5, 5, S("12345"), 2, 2, S("abcde34"));
+ test(S("abcdefghij"), 5, 5, S("12345"), 2, 3, S("abcde345"));
+ test(S("abcdefghij"), 5, 5, S("12345"), 2, 4, S("abcde345"));
+ test(S("abcdefghij"), 5, 5, S("12345"), 4, 0, S("abcde"));
+ test(S("abcdefghij"), 5, 5, S("12345"), 4, 1, S("abcde5"));
+ test(S("abcdefghij"), 5, 5, S("12345"), 4, 2, S("abcde5"));
+ test(S("abcdefghij"), 5, 5, S("12345"), 5, 0, S("abcde"));
+ test(S("abcdefghij"), 5, 5, S("12345"), 5, 1, S("abcde"));
+ test(S("abcdefghij"), 5, 5, S("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghij"), 5, 5, S("1234567890"), 0, 0, S("abcde"));
+ test(S("abcdefghij"), 5, 5, S("1234567890"), 0, 1, S("abcde1"));
+ test(S("abcdefghij"), 5, 5, S("1234567890"), 0, 5, S("abcde12345"));
+ test(S("abcdefghij"), 5, 5, S("1234567890"), 0, 9, S("abcde123456789"));
+ test(S("abcdefghij"), 5, 5, S("1234567890"), 0, 10, S("abcde1234567890"));
+ test(S("abcdefghij"), 5, 5, S("1234567890"), 0, 11, S("abcde1234567890"));
+ test(S("abcdefghij"), 5, 5, S("1234567890"), 1, 0, S("abcde"));
+ test(S("abcdefghij"), 5, 5, S("1234567890"), 1, 1, S("abcde2"));
+ test(S("abcdefghij"), 5, 5, S("1234567890"), 1, 4, S("abcde2345"));
+ test(S("abcdefghij"), 5, 5, S("1234567890"), 1, 8, S("abcde23456789"));
+ test(S("abcdefghij"), 5, 5, S("1234567890"), 1, 9, S("abcde234567890"));
+ test(S("abcdefghij"), 5, 5, S("1234567890"), 1, 10, S("abcde234567890"));
+ test(S("abcdefghij"), 5, 5, S("1234567890"), 5, 0, S("abcde"));
+ test(S("abcdefghij"), 5, 5, S("1234567890"), 5, 1, S("abcde6"));
+ test(S("abcdefghij"), 5, 5, S("1234567890"), 5, 2, S("abcde67"));
+ test(S("abcdefghij"), 5, 5, S("1234567890"), 5, 4, S("abcde6789"));
+ test(S("abcdefghij"), 5, 5, S("1234567890"), 5, 5, S("abcde67890"));
+ test(S("abcdefghij"), 5, 5, S("1234567890"), 5, 6, S("abcde67890"));
+ test(S("abcdefghij"), 5, 5, S("1234567890"), 9, 0, S("abcde"));
+ test(S("abcdefghij"), 5, 5, S("1234567890"), 9, 1, S("abcde0"));
+ test(S("abcdefghij"), 5, 5, S("1234567890"), 9, 2, S("abcde0"));
+ test(S("abcdefghij"), 5, 5, S("1234567890"), 10, 0, S("abcde"));
+ test(S("abcdefghij"), 5, 5, S("1234567890"), 10, 1, S("abcde"));
+ test(S("abcdefghij"), 5, 5, S("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghij"), 5, 5, S("12345678901234567890"), 0, 0, S("abcde"));
+ test(S("abcdefghij"), 5, 5, S("12345678901234567890"), 0, 1, S("abcde1"));
+ test(S("abcdefghij"), 5, 5, S("12345678901234567890"), 0, 10, S("abcde1234567890"));
+ test(S("abcdefghij"), 5, 5, S("12345678901234567890"), 0, 19, S("abcde1234567890123456789"));
+ test(S("abcdefghij"), 5, 5, S("12345678901234567890"), 0, 20, S("abcde12345678901234567890"));
+ test(S("abcdefghij"), 5, 5, S("12345678901234567890"), 0, 21, S("abcde12345678901234567890"));
+ test(S("abcdefghij"), 5, 5, S("12345678901234567890"), 1, 0, S("abcde"));
+ test(S("abcdefghij"), 5, 5, S("12345678901234567890"), 1, 1, S("abcde2"));
+ test(S("abcdefghij"), 5, 5, S("12345678901234567890"), 1, 9, S("abcde234567890"));
+ test(S("abcdefghij"), 5, 5, S("12345678901234567890"), 1, 18, S("abcde234567890123456789"));
+ test(S("abcdefghij"), 5, 5, S("12345678901234567890"), 1, 19, S("abcde2345678901234567890"));
+ test(S("abcdefghij"), 5, 5, S("12345678901234567890"), 1, 20, S("abcde2345678901234567890"));
+ test(S("abcdefghij"), 5, 5, S("12345678901234567890"), 10, 0, S("abcde"));
+ test(S("abcdefghij"), 5, 5, S("12345678901234567890"), 10, 1, S("abcde1"));
+ test(S("abcdefghij"), 5, 5, S("12345678901234567890"), 10, 5, S("abcde12345"));
+ test(S("abcdefghij"), 5, 5, S("12345678901234567890"), 10, 9, S("abcde123456789"));
+ test(S("abcdefghij"), 5, 5, S("12345678901234567890"), 10, 10, S("abcde1234567890"));
+ test(S("abcdefghij"), 5, 5, S("12345678901234567890"), 10, 11, S("abcde1234567890"));
+ test(S("abcdefghij"), 5, 5, S("12345678901234567890"), 19, 0, S("abcde"));
+ test(S("abcdefghij"), 5, 5, S("12345678901234567890"), 19, 1, S("abcde0"));
+ test(S("abcdefghij"), 5, 5, S("12345678901234567890"), 19, 2, S("abcde0"));
+ test(S("abcdefghij"), 5, 5, S("12345678901234567890"), 20, 0, S("abcde"));
+ test(S("abcdefghij"), 5, 5, S("12345678901234567890"), 20, 1, S("abcde"));
+ test(S("abcdefghij"), 5, 5, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghij"), 5, 6, S(""), 0, 0, S("abcde"));
+ test(S("abcdefghij"), 5, 6, S(""), 0, 1, S("abcde"));
+ test(S("abcdefghij"), 5, 6, S(""), 1, 0, S("can't happen"));
+ test(S("abcdefghij"), 5, 6, S("12345"), 0, 0, S("abcde"));
+ test(S("abcdefghij"), 5, 6, S("12345"), 0, 1, S("abcde1"));
+ test(S("abcdefghij"), 5, 6, S("12345"), 0, 2, S("abcde12"));
+ test(S("abcdefghij"), 5, 6, S("12345"), 0, 4, S("abcde1234"));
+ test(S("abcdefghij"), 5, 6, S("12345"), 0, 5, S("abcde12345"));
+ test(S("abcdefghij"), 5, 6, S("12345"), 0, 6, S("abcde12345"));
+ test(S("abcdefghij"), 5, 6, S("12345"), 1, 0, S("abcde"));
+ test(S("abcdefghij"), 5, 6, S("12345"), 1, 1, S("abcde2"));
+ test(S("abcdefghij"), 5, 6, S("12345"), 1, 2, S("abcde23"));
+ test(S("abcdefghij"), 5, 6, S("12345"), 1, 3, S("abcde234"));
+ test(S("abcdefghij"), 5, 6, S("12345"), 1, 4, S("abcde2345"));
+ test(S("abcdefghij"), 5, 6, S("12345"), 1, 5, S("abcde2345"));
+ test(S("abcdefghij"), 5, 6, S("12345"), 2, 0, S("abcde"));
+ test(S("abcdefghij"), 5, 6, S("12345"), 2, 1, S("abcde3"));
+ test(S("abcdefghij"), 5, 6, S("12345"), 2, 2, S("abcde34"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test32()
-{
- test(S("abcdefghij"), 5, 6, S("12345"), 2, 3, S("abcde345"));
- test(S("abcdefghij"), 5, 6, S("12345"), 2, 4, S("abcde345"));
- test(S("abcdefghij"), 5, 6, S("12345"), 4, 0, S("abcde"));
- test(S("abcdefghij"), 5, 6, S("12345"), 4, 1, S("abcde5"));
- test(S("abcdefghij"), 5, 6, S("12345"), 4, 2, S("abcde5"));
- test(S("abcdefghij"), 5, 6, S("12345"), 5, 0, S("abcde"));
- test(S("abcdefghij"), 5, 6, S("12345"), 5, 1, S("abcde"));
- test(S("abcdefghij"), 5, 6, S("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghij"), 5, 6, S("1234567890"), 0, 0, S("abcde"));
- test(S("abcdefghij"), 5, 6, S("1234567890"), 0, 1, S("abcde1"));
- test(S("abcdefghij"), 5, 6, S("1234567890"), 0, 5, S("abcde12345"));
- test(S("abcdefghij"), 5, 6, S("1234567890"), 0, 9, S("abcde123456789"));
- test(S("abcdefghij"), 5, 6, S("1234567890"), 0, 10, S("abcde1234567890"));
- test(S("abcdefghij"), 5, 6, S("1234567890"), 0, 11, S("abcde1234567890"));
- test(S("abcdefghij"), 5, 6, S("1234567890"), 1, 0, S("abcde"));
- test(S("abcdefghij"), 5, 6, S("1234567890"), 1, 1, S("abcde2"));
- test(S("abcdefghij"), 5, 6, S("1234567890"), 1, 4, S("abcde2345"));
- test(S("abcdefghij"), 5, 6, S("1234567890"), 1, 8, S("abcde23456789"));
- test(S("abcdefghij"), 5, 6, S("1234567890"), 1, 9, S("abcde234567890"));
- test(S("abcdefghij"), 5, 6, S("1234567890"), 1, 10, S("abcde234567890"));
- test(S("abcdefghij"), 5, 6, S("1234567890"), 5, 0, S("abcde"));
- test(S("abcdefghij"), 5, 6, S("1234567890"), 5, 1, S("abcde6"));
- test(S("abcdefghij"), 5, 6, S("1234567890"), 5, 2, S("abcde67"));
- test(S("abcdefghij"), 5, 6, S("1234567890"), 5, 4, S("abcde6789"));
- test(S("abcdefghij"), 5, 6, S("1234567890"), 5, 5, S("abcde67890"));
- test(S("abcdefghij"), 5, 6, S("1234567890"), 5, 6, S("abcde67890"));
- test(S("abcdefghij"), 5, 6, S("1234567890"), 9, 0, S("abcde"));
- test(S("abcdefghij"), 5, 6, S("1234567890"), 9, 1, S("abcde0"));
- test(S("abcdefghij"), 5, 6, S("1234567890"), 9, 2, S("abcde0"));
- test(S("abcdefghij"), 5, 6, S("1234567890"), 10, 0, S("abcde"));
- test(S("abcdefghij"), 5, 6, S("1234567890"), 10, 1, S("abcde"));
- test(S("abcdefghij"), 5, 6, S("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghij"), 5, 6, S("12345678901234567890"), 0, 0, S("abcde"));
- test(S("abcdefghij"), 5, 6, S("12345678901234567890"), 0, 1, S("abcde1"));
- test(S("abcdefghij"), 5, 6, S("12345678901234567890"), 0, 10, S("abcde1234567890"));
- test(S("abcdefghij"), 5, 6, S("12345678901234567890"), 0, 19, S("abcde1234567890123456789"));
- test(S("abcdefghij"), 5, 6, S("12345678901234567890"), 0, 20, S("abcde12345678901234567890"));
- test(S("abcdefghij"), 5, 6, S("12345678901234567890"), 0, 21, S("abcde12345678901234567890"));
- test(S("abcdefghij"), 5, 6, S("12345678901234567890"), 1, 0, S("abcde"));
- test(S("abcdefghij"), 5, 6, S("12345678901234567890"), 1, 1, S("abcde2"));
- test(S("abcdefghij"), 5, 6, S("12345678901234567890"), 1, 9, S("abcde234567890"));
- test(S("abcdefghij"), 5, 6, S("12345678901234567890"), 1, 18, S("abcde234567890123456789"));
- test(S("abcdefghij"), 5, 6, S("12345678901234567890"), 1, 19, S("abcde2345678901234567890"));
- test(S("abcdefghij"), 5, 6, S("12345678901234567890"), 1, 20, S("abcde2345678901234567890"));
- test(S("abcdefghij"), 5, 6, S("12345678901234567890"), 10, 0, S("abcde"));
- test(S("abcdefghij"), 5, 6, S("12345678901234567890"), 10, 1, S("abcde1"));
- test(S("abcdefghij"), 5, 6, S("12345678901234567890"), 10, 5, S("abcde12345"));
- test(S("abcdefghij"), 5, 6, S("12345678901234567890"), 10, 9, S("abcde123456789"));
- test(S("abcdefghij"), 5, 6, S("12345678901234567890"), 10, 10, S("abcde1234567890"));
- test(S("abcdefghij"), 5, 6, S("12345678901234567890"), 10, 11, S("abcde1234567890"));
- test(S("abcdefghij"), 5, 6, S("12345678901234567890"), 19, 0, S("abcde"));
- test(S("abcdefghij"), 5, 6, S("12345678901234567890"), 19, 1, S("abcde0"));
- test(S("abcdefghij"), 5, 6, S("12345678901234567890"), 19, 2, S("abcde0"));
- test(S("abcdefghij"), 5, 6, S("12345678901234567890"), 20, 0, S("abcde"));
- test(S("abcdefghij"), 5, 6, S("12345678901234567890"), 20, 1, S("abcde"));
- test(S("abcdefghij"), 5, 6, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghij"), 9, 0, S(""), 0, 0, S("abcdefghij"));
- test(S("abcdefghij"), 9, 0, S(""), 0, 1, S("abcdefghij"));
- test(S("abcdefghij"), 9, 0, S(""), 1, 0, S("can't happen"));
- test(S("abcdefghij"), 9, 0, S("12345"), 0, 0, S("abcdefghij"));
- test(S("abcdefghij"), 9, 0, S("12345"), 0, 1, S("abcdefghi1j"));
- test(S("abcdefghij"), 9, 0, S("12345"), 0, 2, S("abcdefghi12j"));
- test(S("abcdefghij"), 9, 0, S("12345"), 0, 4, S("abcdefghi1234j"));
- test(S("abcdefghij"), 9, 0, S("12345"), 0, 5, S("abcdefghi12345j"));
- test(S("abcdefghij"), 9, 0, S("12345"), 0, 6, S("abcdefghi12345j"));
- test(S("abcdefghij"), 9, 0, S("12345"), 1, 0, S("abcdefghij"));
- test(S("abcdefghij"), 9, 0, S("12345"), 1, 1, S("abcdefghi2j"));
- test(S("abcdefghij"), 9, 0, S("12345"), 1, 2, S("abcdefghi23j"));
- test(S("abcdefghij"), 9, 0, S("12345"), 1, 3, S("abcdefghi234j"));
- test(S("abcdefghij"), 9, 0, S("12345"), 1, 4, S("abcdefghi2345j"));
- test(S("abcdefghij"), 9, 0, S("12345"), 1, 5, S("abcdefghi2345j"));
- test(S("abcdefghij"), 9, 0, S("12345"), 2, 0, S("abcdefghij"));
- test(S("abcdefghij"), 9, 0, S("12345"), 2, 1, S("abcdefghi3j"));
- test(S("abcdefghij"), 9, 0, S("12345"), 2, 2, S("abcdefghi34j"));
- test(S("abcdefghij"), 9, 0, S("12345"), 2, 3, S("abcdefghi345j"));
- test(S("abcdefghij"), 9, 0, S("12345"), 2, 4, S("abcdefghi345j"));
- test(S("abcdefghij"), 9, 0, S("12345"), 4, 0, S("abcdefghij"));
- test(S("abcdefghij"), 9, 0, S("12345"), 4, 1, S("abcdefghi5j"));
- test(S("abcdefghij"), 9, 0, S("12345"), 4, 2, S("abcdefghi5j"));
- test(S("abcdefghij"), 9, 0, S("12345"), 5, 0, S("abcdefghij"));
- test(S("abcdefghij"), 9, 0, S("12345"), 5, 1, S("abcdefghij"));
- test(S("abcdefghij"), 9, 0, S("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghij"), 9, 0, S("1234567890"), 0, 0, S("abcdefghij"));
- test(S("abcdefghij"), 9, 0, S("1234567890"), 0, 1, S("abcdefghi1j"));
- test(S("abcdefghij"), 9, 0, S("1234567890"), 0, 5, S("abcdefghi12345j"));
- test(S("abcdefghij"), 9, 0, S("1234567890"), 0, 9, S("abcdefghi123456789j"));
- test(S("abcdefghij"), 9, 0, S("1234567890"), 0, 10, S("abcdefghi1234567890j"));
- test(S("abcdefghij"), 9, 0, S("1234567890"), 0, 11, S("abcdefghi1234567890j"));
- test(S("abcdefghij"), 9, 0, S("1234567890"), 1, 0, S("abcdefghij"));
- test(S("abcdefghij"), 9, 0, S("1234567890"), 1, 1, S("abcdefghi2j"));
- test(S("abcdefghij"), 9, 0, S("1234567890"), 1, 4, S("abcdefghi2345j"));
- test(S("abcdefghij"), 9, 0, S("1234567890"), 1, 8, S("abcdefghi23456789j"));
- test(S("abcdefghij"), 9, 0, S("1234567890"), 1, 9, S("abcdefghi234567890j"));
- test(S("abcdefghij"), 9, 0, S("1234567890"), 1, 10, S("abcdefghi234567890j"));
- test(S("abcdefghij"), 9, 0, S("1234567890"), 5, 0, S("abcdefghij"));
- test(S("abcdefghij"), 9, 0, S("1234567890"), 5, 1, S("abcdefghi6j"));
- test(S("abcdefghij"), 9, 0, S("1234567890"), 5, 2, S("abcdefghi67j"));
- test(S("abcdefghij"), 9, 0, S("1234567890"), 5, 4, S("abcdefghi6789j"));
- test(S("abcdefghij"), 9, 0, S("1234567890"), 5, 5, S("abcdefghi67890j"));
- test(S("abcdefghij"), 9, 0, S("1234567890"), 5, 6, S("abcdefghi67890j"));
+TEST_CONSTEXPR_CXX20 bool test32() {
+ test(S("abcdefghij"), 5, 6, S("12345"), 2, 3, S("abcde345"));
+ test(S("abcdefghij"), 5, 6, S("12345"), 2, 4, S("abcde345"));
+ test(S("abcdefghij"), 5, 6, S("12345"), 4, 0, S("abcde"));
+ test(S("abcdefghij"), 5, 6, S("12345"), 4, 1, S("abcde5"));
+ test(S("abcdefghij"), 5, 6, S("12345"), 4, 2, S("abcde5"));
+ test(S("abcdefghij"), 5, 6, S("12345"), 5, 0, S("abcde"));
+ test(S("abcdefghij"), 5, 6, S("12345"), 5, 1, S("abcde"));
+ test(S("abcdefghij"), 5, 6, S("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghij"), 5, 6, S("1234567890"), 0, 0, S("abcde"));
+ test(S("abcdefghij"), 5, 6, S("1234567890"), 0, 1, S("abcde1"));
+ test(S("abcdefghij"), 5, 6, S("1234567890"), 0, 5, S("abcde12345"));
+ test(S("abcdefghij"), 5, 6, S("1234567890"), 0, 9, S("abcde123456789"));
+ test(S("abcdefghij"), 5, 6, S("1234567890"), 0, 10, S("abcde1234567890"));
+ test(S("abcdefghij"), 5, 6, S("1234567890"), 0, 11, S("abcde1234567890"));
+ test(S("abcdefghij"), 5, 6, S("1234567890"), 1, 0, S("abcde"));
+ test(S("abcdefghij"), 5, 6, S("1234567890"), 1, 1, S("abcde2"));
+ test(S("abcdefghij"), 5, 6, S("1234567890"), 1, 4, S("abcde2345"));
+ test(S("abcdefghij"), 5, 6, S("1234567890"), 1, 8, S("abcde23456789"));
+ test(S("abcdefghij"), 5, 6, S("1234567890"), 1, 9, S("abcde234567890"));
+ test(S("abcdefghij"), 5, 6, S("1234567890"), 1, 10, S("abcde234567890"));
+ test(S("abcdefghij"), 5, 6, S("1234567890"), 5, 0, S("abcde"));
+ test(S("abcdefghij"), 5, 6, S("1234567890"), 5, 1, S("abcde6"));
+ test(S("abcdefghij"), 5, 6, S("1234567890"), 5, 2, S("abcde67"));
+ test(S("abcdefghij"), 5, 6, S("1234567890"), 5, 4, S("abcde6789"));
+ test(S("abcdefghij"), 5, 6, S("1234567890"), 5, 5, S("abcde67890"));
+ test(S("abcdefghij"), 5, 6, S("1234567890"), 5, 6, S("abcde67890"));
+ test(S("abcdefghij"), 5, 6, S("1234567890"), 9, 0, S("abcde"));
+ test(S("abcdefghij"), 5, 6, S("1234567890"), 9, 1, S("abcde0"));
+ test(S("abcdefghij"), 5, 6, S("1234567890"), 9, 2, S("abcde0"));
+ test(S("abcdefghij"), 5, 6, S("1234567890"), 10, 0, S("abcde"));
+ test(S("abcdefghij"), 5, 6, S("1234567890"), 10, 1, S("abcde"));
+ test(S("abcdefghij"), 5, 6, S("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghij"), 5, 6, S("12345678901234567890"), 0, 0, S("abcde"));
+ test(S("abcdefghij"), 5, 6, S("12345678901234567890"), 0, 1, S("abcde1"));
+ test(S("abcdefghij"), 5, 6, S("12345678901234567890"), 0, 10, S("abcde1234567890"));
+ test(S("abcdefghij"), 5, 6, S("12345678901234567890"), 0, 19, S("abcde1234567890123456789"));
+ test(S("abcdefghij"), 5, 6, S("12345678901234567890"), 0, 20, S("abcde12345678901234567890"));
+ test(S("abcdefghij"), 5, 6, S("12345678901234567890"), 0, 21, S("abcde12345678901234567890"));
+ test(S("abcdefghij"), 5, 6, S("12345678901234567890"), 1, 0, S("abcde"));
+ test(S("abcdefghij"), 5, 6, S("12345678901234567890"), 1, 1, S("abcde2"));
+ test(S("abcdefghij"), 5, 6, S("12345678901234567890"), 1, 9, S("abcde234567890"));
+ test(S("abcdefghij"), 5, 6, S("12345678901234567890"), 1, 18, S("abcde234567890123456789"));
+ test(S("abcdefghij"), 5, 6, S("12345678901234567890"), 1, 19, S("abcde2345678901234567890"));
+ test(S("abcdefghij"), 5, 6, S("12345678901234567890"), 1, 20, S("abcde2345678901234567890"));
+ test(S("abcdefghij"), 5, 6, S("12345678901234567890"), 10, 0, S("abcde"));
+ test(S("abcdefghij"), 5, 6, S("12345678901234567890"), 10, 1, S("abcde1"));
+ test(S("abcdefghij"), 5, 6, S("12345678901234567890"), 10, 5, S("abcde12345"));
+ test(S("abcdefghij"), 5, 6, S("12345678901234567890"), 10, 9, S("abcde123456789"));
+ test(S("abcdefghij"), 5, 6, S("12345678901234567890"), 10, 10, S("abcde1234567890"));
+ test(S("abcdefghij"), 5, 6, S("12345678901234567890"), 10, 11, S("abcde1234567890"));
+ test(S("abcdefghij"), 5, 6, S("12345678901234567890"), 19, 0, S("abcde"));
+ test(S("abcdefghij"), 5, 6, S("12345678901234567890"), 19, 1, S("abcde0"));
+ test(S("abcdefghij"), 5, 6, S("12345678901234567890"), 19, 2, S("abcde0"));
+ test(S("abcdefghij"), 5, 6, S("12345678901234567890"), 20, 0, S("abcde"));
+ test(S("abcdefghij"), 5, 6, S("12345678901234567890"), 20, 1, S("abcde"));
+ test(S("abcdefghij"), 5, 6, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghij"), 9, 0, S(""), 0, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 9, 0, S(""), 0, 1, S("abcdefghij"));
+ test(S("abcdefghij"), 9, 0, S(""), 1, 0, S("can't happen"));
+ test(S("abcdefghij"), 9, 0, S("12345"), 0, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 9, 0, S("12345"), 0, 1, S("abcdefghi1j"));
+ test(S("abcdefghij"), 9, 0, S("12345"), 0, 2, S("abcdefghi12j"));
+ test(S("abcdefghij"), 9, 0, S("12345"), 0, 4, S("abcdefghi1234j"));
+ test(S("abcdefghij"), 9, 0, S("12345"), 0, 5, S("abcdefghi12345j"));
+ test(S("abcdefghij"), 9, 0, S("12345"), 0, 6, S("abcdefghi12345j"));
+ test(S("abcdefghij"), 9, 0, S("12345"), 1, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 9, 0, S("12345"), 1, 1, S("abcdefghi2j"));
+ test(S("abcdefghij"), 9, 0, S("12345"), 1, 2, S("abcdefghi23j"));
+ test(S("abcdefghij"), 9, 0, S("12345"), 1, 3, S("abcdefghi234j"));
+ test(S("abcdefghij"), 9, 0, S("12345"), 1, 4, S("abcdefghi2345j"));
+ test(S("abcdefghij"), 9, 0, S("12345"), 1, 5, S("abcdefghi2345j"));
+ test(S("abcdefghij"), 9, 0, S("12345"), 2, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 9, 0, S("12345"), 2, 1, S("abcdefghi3j"));
+ test(S("abcdefghij"), 9, 0, S("12345"), 2, 2, S("abcdefghi34j"));
+ test(S("abcdefghij"), 9, 0, S("12345"), 2, 3, S("abcdefghi345j"));
+ test(S("abcdefghij"), 9, 0, S("12345"), 2, 4, S("abcdefghi345j"));
+ test(S("abcdefghij"), 9, 0, S("12345"), 4, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 9, 0, S("12345"), 4, 1, S("abcdefghi5j"));
+ test(S("abcdefghij"), 9, 0, S("12345"), 4, 2, S("abcdefghi5j"));
+ test(S("abcdefghij"), 9, 0, S("12345"), 5, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 9, 0, S("12345"), 5, 1, S("abcdefghij"));
+ test(S("abcdefghij"), 9, 0, S("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghij"), 9, 0, S("1234567890"), 0, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 9, 0, S("1234567890"), 0, 1, S("abcdefghi1j"));
+ test(S("abcdefghij"), 9, 0, S("1234567890"), 0, 5, S("abcdefghi12345j"));
+ test(S("abcdefghij"), 9, 0, S("1234567890"), 0, 9, S("abcdefghi123456789j"));
+ test(S("abcdefghij"), 9, 0, S("1234567890"), 0, 10, S("abcdefghi1234567890j"));
+ test(S("abcdefghij"), 9, 0, S("1234567890"), 0, 11, S("abcdefghi1234567890j"));
+ test(S("abcdefghij"), 9, 0, S("1234567890"), 1, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 9, 0, S("1234567890"), 1, 1, S("abcdefghi2j"));
+ test(S("abcdefghij"), 9, 0, S("1234567890"), 1, 4, S("abcdefghi2345j"));
+ test(S("abcdefghij"), 9, 0, S("1234567890"), 1, 8, S("abcdefghi23456789j"));
+ test(S("abcdefghij"), 9, 0, S("1234567890"), 1, 9, S("abcdefghi234567890j"));
+ test(S("abcdefghij"), 9, 0, S("1234567890"), 1, 10, S("abcdefghi234567890j"));
+ test(S("abcdefghij"), 9, 0, S("1234567890"), 5, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 9, 0, S("1234567890"), 5, 1, S("abcdefghi6j"));
+ test(S("abcdefghij"), 9, 0, S("1234567890"), 5, 2, S("abcdefghi67j"));
+ test(S("abcdefghij"), 9, 0, S("1234567890"), 5, 4, S("abcdefghi6789j"));
+ test(S("abcdefghij"), 9, 0, S("1234567890"), 5, 5, S("abcdefghi67890j"));
+ test(S("abcdefghij"), 9, 0, S("1234567890"), 5, 6, S("abcdefghi67890j"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test33()
-{
- test(S("abcdefghij"), 9, 0, S("1234567890"), 9, 0, S("abcdefghij"));
- test(S("abcdefghij"), 9, 0, S("1234567890"), 9, 1, S("abcdefghi0j"));
- test(S("abcdefghij"), 9, 0, S("1234567890"), 9, 2, S("abcdefghi0j"));
- test(S("abcdefghij"), 9, 0, S("1234567890"), 10, 0, S("abcdefghij"));
- test(S("abcdefghij"), 9, 0, S("1234567890"), 10, 1, S("abcdefghij"));
- test(S("abcdefghij"), 9, 0, S("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghij"), 9, 0, S("12345678901234567890"), 0, 0, S("abcdefghij"));
- test(S("abcdefghij"), 9, 0, S("12345678901234567890"), 0, 1, S("abcdefghi1j"));
- test(S("abcdefghij"), 9, 0, S("12345678901234567890"), 0, 10, S("abcdefghi1234567890j"));
- test(S("abcdefghij"), 9, 0, S("12345678901234567890"), 0, 19, S("abcdefghi1234567890123456789j"));
- test(S("abcdefghij"), 9, 0, S("12345678901234567890"), 0, 20, S("abcdefghi12345678901234567890j"));
- test(S("abcdefghij"), 9, 0, S("12345678901234567890"), 0, 21, S("abcdefghi12345678901234567890j"));
- test(S("abcdefghij"), 9, 0, S("12345678901234567890"), 1, 0, S("abcdefghij"));
- test(S("abcdefghij"), 9, 0, S("12345678901234567890"), 1, 1, S("abcdefghi2j"));
- test(S("abcdefghij"), 9, 0, S("12345678901234567890"), 1, 9, S("abcdefghi234567890j"));
- test(S("abcdefghij"), 9, 0, S("12345678901234567890"), 1, 18, S("abcdefghi234567890123456789j"));
- test(S("abcdefghij"), 9, 0, S("12345678901234567890"), 1, 19, S("abcdefghi2345678901234567890j"));
- test(S("abcdefghij"), 9, 0, S("12345678901234567890"), 1, 20, S("abcdefghi2345678901234567890j"));
- test(S("abcdefghij"), 9, 0, S("12345678901234567890"), 10, 0, S("abcdefghij"));
- test(S("abcdefghij"), 9, 0, S("12345678901234567890"), 10, 1, S("abcdefghi1j"));
- test(S("abcdefghij"), 9, 0, S("12345678901234567890"), 10, 5, S("abcdefghi12345j"));
- test(S("abcdefghij"), 9, 0, S("12345678901234567890"), 10, 9, S("abcdefghi123456789j"));
- test(S("abcdefghij"), 9, 0, S("12345678901234567890"), 10, 10, S("abcdefghi1234567890j"));
- test(S("abcdefghij"), 9, 0, S("12345678901234567890"), 10, 11, S("abcdefghi1234567890j"));
- test(S("abcdefghij"), 9, 0, S("12345678901234567890"), 19, 0, S("abcdefghij"));
- test(S("abcdefghij"), 9, 0, S("12345678901234567890"), 19, 1, S("abcdefghi0j"));
- test(S("abcdefghij"), 9, 0, S("12345678901234567890"), 19, 2, S("abcdefghi0j"));
- test(S("abcdefghij"), 9, 0, S("12345678901234567890"), 20, 0, S("abcdefghij"));
- test(S("abcdefghij"), 9, 0, S("12345678901234567890"), 20, 1, S("abcdefghij"));
- test(S("abcdefghij"), 9, 0, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghij"), 9, 1, S(""), 0, 0, S("abcdefghi"));
- test(S("abcdefghij"), 9, 1, S(""), 0, 1, S("abcdefghi"));
- test(S("abcdefghij"), 9, 1, S(""), 1, 0, S("can't happen"));
- test(S("abcdefghij"), 9, 1, S("12345"), 0, 0, S("abcdefghi"));
- test(S("abcdefghij"), 9, 1, S("12345"), 0, 1, S("abcdefghi1"));
- test(S("abcdefghij"), 9, 1, S("12345"), 0, 2, S("abcdefghi12"));
- test(S("abcdefghij"), 9, 1, S("12345"), 0, 4, S("abcdefghi1234"));
- test(S("abcdefghij"), 9, 1, S("12345"), 0, 5, S("abcdefghi12345"));
- test(S("abcdefghij"), 9, 1, S("12345"), 0, 6, S("abcdefghi12345"));
- test(S("abcdefghij"), 9, 1, S("12345"), 1, 0, S("abcdefghi"));
- test(S("abcdefghij"), 9, 1, S("12345"), 1, 1, S("abcdefghi2"));
- test(S("abcdefghij"), 9, 1, S("12345"), 1, 2, S("abcdefghi23"));
- test(S("abcdefghij"), 9, 1, S("12345"), 1, 3, S("abcdefghi234"));
- test(S("abcdefghij"), 9, 1, S("12345"), 1, 4, S("abcdefghi2345"));
- test(S("abcdefghij"), 9, 1, S("12345"), 1, 5, S("abcdefghi2345"));
- test(S("abcdefghij"), 9, 1, S("12345"), 2, 0, S("abcdefghi"));
- test(S("abcdefghij"), 9, 1, S("12345"), 2, 1, S("abcdefghi3"));
- test(S("abcdefghij"), 9, 1, S("12345"), 2, 2, S("abcdefghi34"));
- test(S("abcdefghij"), 9, 1, S("12345"), 2, 3, S("abcdefghi345"));
- test(S("abcdefghij"), 9, 1, S("12345"), 2, 4, S("abcdefghi345"));
- test(S("abcdefghij"), 9, 1, S("12345"), 4, 0, S("abcdefghi"));
- test(S("abcdefghij"), 9, 1, S("12345"), 4, 1, S("abcdefghi5"));
- test(S("abcdefghij"), 9, 1, S("12345"), 4, 2, S("abcdefghi5"));
- test(S("abcdefghij"), 9, 1, S("12345"), 5, 0, S("abcdefghi"));
- test(S("abcdefghij"), 9, 1, S("12345"), 5, 1, S("abcdefghi"));
- test(S("abcdefghij"), 9, 1, S("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghij"), 9, 1, S("1234567890"), 0, 0, S("abcdefghi"));
- test(S("abcdefghij"), 9, 1, S("1234567890"), 0, 1, S("abcdefghi1"));
- test(S("abcdefghij"), 9, 1, S("1234567890"), 0, 5, S("abcdefghi12345"));
- test(S("abcdefghij"), 9, 1, S("1234567890"), 0, 9, S("abcdefghi123456789"));
- test(S("abcdefghij"), 9, 1, S("1234567890"), 0, 10, S("abcdefghi1234567890"));
- test(S("abcdefghij"), 9, 1, S("1234567890"), 0, 11, S("abcdefghi1234567890"));
- test(S("abcdefghij"), 9, 1, S("1234567890"), 1, 0, S("abcdefghi"));
- test(S("abcdefghij"), 9, 1, S("1234567890"), 1, 1, S("abcdefghi2"));
- test(S("abcdefghij"), 9, 1, S("1234567890"), 1, 4, S("abcdefghi2345"));
- test(S("abcdefghij"), 9, 1, S("1234567890"), 1, 8, S("abcdefghi23456789"));
- test(S("abcdefghij"), 9, 1, S("1234567890"), 1, 9, S("abcdefghi234567890"));
- test(S("abcdefghij"), 9, 1, S("1234567890"), 1, 10, S("abcdefghi234567890"));
- test(S("abcdefghij"), 9, 1, S("1234567890"), 5, 0, S("abcdefghi"));
- test(S("abcdefghij"), 9, 1, S("1234567890"), 5, 1, S("abcdefghi6"));
- test(S("abcdefghij"), 9, 1, S("1234567890"), 5, 2, S("abcdefghi67"));
- test(S("abcdefghij"), 9, 1, S("1234567890"), 5, 4, S("abcdefghi6789"));
- test(S("abcdefghij"), 9, 1, S("1234567890"), 5, 5, S("abcdefghi67890"));
- test(S("abcdefghij"), 9, 1, S("1234567890"), 5, 6, S("abcdefghi67890"));
- test(S("abcdefghij"), 9, 1, S("1234567890"), 9, 0, S("abcdefghi"));
- test(S("abcdefghij"), 9, 1, S("1234567890"), 9, 1, S("abcdefghi0"));
- test(S("abcdefghij"), 9, 1, S("1234567890"), 9, 2, S("abcdefghi0"));
- test(S("abcdefghij"), 9, 1, S("1234567890"), 10, 0, S("abcdefghi"));
- test(S("abcdefghij"), 9, 1, S("1234567890"), 10, 1, S("abcdefghi"));
- test(S("abcdefghij"), 9, 1, S("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghij"), 9, 1, S("12345678901234567890"), 0, 0, S("abcdefghi"));
- test(S("abcdefghij"), 9, 1, S("12345678901234567890"), 0, 1, S("abcdefghi1"));
- test(S("abcdefghij"), 9, 1, S("12345678901234567890"), 0, 10, S("abcdefghi1234567890"));
- test(S("abcdefghij"), 9, 1, S("12345678901234567890"), 0, 19, S("abcdefghi1234567890123456789"));
- test(S("abcdefghij"), 9, 1, S("12345678901234567890"), 0, 20, S("abcdefghi12345678901234567890"));
- test(S("abcdefghij"), 9, 1, S("12345678901234567890"), 0, 21, S("abcdefghi12345678901234567890"));
- test(S("abcdefghij"), 9, 1, S("12345678901234567890"), 1, 0, S("abcdefghi"));
- test(S("abcdefghij"), 9, 1, S("12345678901234567890"), 1, 1, S("abcdefghi2"));
- test(S("abcdefghij"), 9, 1, S("12345678901234567890"), 1, 9, S("abcdefghi234567890"));
- test(S("abcdefghij"), 9, 1, S("12345678901234567890"), 1, 18, S("abcdefghi234567890123456789"));
- test(S("abcdefghij"), 9, 1, S("12345678901234567890"), 1, 19, S("abcdefghi2345678901234567890"));
- test(S("abcdefghij"), 9, 1, S("12345678901234567890"), 1, 20, S("abcdefghi2345678901234567890"));
- test(S("abcdefghij"), 9, 1, S("12345678901234567890"), 10, 0, S("abcdefghi"));
- test(S("abcdefghij"), 9, 1, S("12345678901234567890"), 10, 1, S("abcdefghi1"));
- test(S("abcdefghij"), 9, 1, S("12345678901234567890"), 10, 5, S("abcdefghi12345"));
- test(S("abcdefghij"), 9, 1, S("12345678901234567890"), 10, 9, S("abcdefghi123456789"));
- test(S("abcdefghij"), 9, 1, S("12345678901234567890"), 10, 10, S("abcdefghi1234567890"));
- test(S("abcdefghij"), 9, 1, S("12345678901234567890"), 10, 11, S("abcdefghi1234567890"));
- test(S("abcdefghij"), 9, 1, S("12345678901234567890"), 19, 0, S("abcdefghi"));
- test(S("abcdefghij"), 9, 1, S("12345678901234567890"), 19, 1, S("abcdefghi0"));
+TEST_CONSTEXPR_CXX20 bool test33() {
+ test(S("abcdefghij"), 9, 0, S("1234567890"), 9, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 9, 0, S("1234567890"), 9, 1, S("abcdefghi0j"));
+ test(S("abcdefghij"), 9, 0, S("1234567890"), 9, 2, S("abcdefghi0j"));
+ test(S("abcdefghij"), 9, 0, S("1234567890"), 10, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 9, 0, S("1234567890"), 10, 1, S("abcdefghij"));
+ test(S("abcdefghij"), 9, 0, S("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghij"), 9, 0, S("12345678901234567890"), 0, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 9, 0, S("12345678901234567890"), 0, 1, S("abcdefghi1j"));
+ test(S("abcdefghij"), 9, 0, S("12345678901234567890"), 0, 10, S("abcdefghi1234567890j"));
+ test(S("abcdefghij"), 9, 0, S("12345678901234567890"), 0, 19, S("abcdefghi1234567890123456789j"));
+ test(S("abcdefghij"), 9, 0, S("12345678901234567890"), 0, 20, S("abcdefghi12345678901234567890j"));
+ test(S("abcdefghij"), 9, 0, S("12345678901234567890"), 0, 21, S("abcdefghi12345678901234567890j"));
+ test(S("abcdefghij"), 9, 0, S("12345678901234567890"), 1, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 9, 0, S("12345678901234567890"), 1, 1, S("abcdefghi2j"));
+ test(S("abcdefghij"), 9, 0, S("12345678901234567890"), 1, 9, S("abcdefghi234567890j"));
+ test(S("abcdefghij"), 9, 0, S("12345678901234567890"), 1, 18, S("abcdefghi234567890123456789j"));
+ test(S("abcdefghij"), 9, 0, S("12345678901234567890"), 1, 19, S("abcdefghi2345678901234567890j"));
+ test(S("abcdefghij"), 9, 0, S("12345678901234567890"), 1, 20, S("abcdefghi2345678901234567890j"));
+ test(S("abcdefghij"), 9, 0, S("12345678901234567890"), 10, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 9, 0, S("12345678901234567890"), 10, 1, S("abcdefghi1j"));
+ test(S("abcdefghij"), 9, 0, S("12345678901234567890"), 10, 5, S("abcdefghi12345j"));
+ test(S("abcdefghij"), 9, 0, S("12345678901234567890"), 10, 9, S("abcdefghi123456789j"));
+ test(S("abcdefghij"), 9, 0, S("12345678901234567890"), 10, 10, S("abcdefghi1234567890j"));
+ test(S("abcdefghij"), 9, 0, S("12345678901234567890"), 10, 11, S("abcdefghi1234567890j"));
+ test(S("abcdefghij"), 9, 0, S("12345678901234567890"), 19, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 9, 0, S("12345678901234567890"), 19, 1, S("abcdefghi0j"));
+ test(S("abcdefghij"), 9, 0, S("12345678901234567890"), 19, 2, S("abcdefghi0j"));
+ test(S("abcdefghij"), 9, 0, S("12345678901234567890"), 20, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 9, 0, S("12345678901234567890"), 20, 1, S("abcdefghij"));
+ test(S("abcdefghij"), 9, 0, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghij"), 9, 1, S(""), 0, 0, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 1, S(""), 0, 1, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 1, S(""), 1, 0, S("can't happen"));
+ test(S("abcdefghij"), 9, 1, S("12345"), 0, 0, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 1, S("12345"), 0, 1, S("abcdefghi1"));
+ test(S("abcdefghij"), 9, 1, S("12345"), 0, 2, S("abcdefghi12"));
+ test(S("abcdefghij"), 9, 1, S("12345"), 0, 4, S("abcdefghi1234"));
+ test(S("abcdefghij"), 9, 1, S("12345"), 0, 5, S("abcdefghi12345"));
+ test(S("abcdefghij"), 9, 1, S("12345"), 0, 6, S("abcdefghi12345"));
+ test(S("abcdefghij"), 9, 1, S("12345"), 1, 0, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 1, S("12345"), 1, 1, S("abcdefghi2"));
+ test(S("abcdefghij"), 9, 1, S("12345"), 1, 2, S("abcdefghi23"));
+ test(S("abcdefghij"), 9, 1, S("12345"), 1, 3, S("abcdefghi234"));
+ test(S("abcdefghij"), 9, 1, S("12345"), 1, 4, S("abcdefghi2345"));
+ test(S("abcdefghij"), 9, 1, S("12345"), 1, 5, S("abcdefghi2345"));
+ test(S("abcdefghij"), 9, 1, S("12345"), 2, 0, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 1, S("12345"), 2, 1, S("abcdefghi3"));
+ test(S("abcdefghij"), 9, 1, S("12345"), 2, 2, S("abcdefghi34"));
+ test(S("abcdefghij"), 9, 1, S("12345"), 2, 3, S("abcdefghi345"));
+ test(S("abcdefghij"), 9, 1, S("12345"), 2, 4, S("abcdefghi345"));
+ test(S("abcdefghij"), 9, 1, S("12345"), 4, 0, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 1, S("12345"), 4, 1, S("abcdefghi5"));
+ test(S("abcdefghij"), 9, 1, S("12345"), 4, 2, S("abcdefghi5"));
+ test(S("abcdefghij"), 9, 1, S("12345"), 5, 0, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 1, S("12345"), 5, 1, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 1, S("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghij"), 9, 1, S("1234567890"), 0, 0, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 1, S("1234567890"), 0, 1, S("abcdefghi1"));
+ test(S("abcdefghij"), 9, 1, S("1234567890"), 0, 5, S("abcdefghi12345"));
+ test(S("abcdefghij"), 9, 1, S("1234567890"), 0, 9, S("abcdefghi123456789"));
+ test(S("abcdefghij"), 9, 1, S("1234567890"), 0, 10, S("abcdefghi1234567890"));
+ test(S("abcdefghij"), 9, 1, S("1234567890"), 0, 11, S("abcdefghi1234567890"));
+ test(S("abcdefghij"), 9, 1, S("1234567890"), 1, 0, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 1, S("1234567890"), 1, 1, S("abcdefghi2"));
+ test(S("abcdefghij"), 9, 1, S("1234567890"), 1, 4, S("abcdefghi2345"));
+ test(S("abcdefghij"), 9, 1, S("1234567890"), 1, 8, S("abcdefghi23456789"));
+ test(S("abcdefghij"), 9, 1, S("1234567890"), 1, 9, S("abcdefghi234567890"));
+ test(S("abcdefghij"), 9, 1, S("1234567890"), 1, 10, S("abcdefghi234567890"));
+ test(S("abcdefghij"), 9, 1, S("1234567890"), 5, 0, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 1, S("1234567890"), 5, 1, S("abcdefghi6"));
+ test(S("abcdefghij"), 9, 1, S("1234567890"), 5, 2, S("abcdefghi67"));
+ test(S("abcdefghij"), 9, 1, S("1234567890"), 5, 4, S("abcdefghi6789"));
+ test(S("abcdefghij"), 9, 1, S("1234567890"), 5, 5, S("abcdefghi67890"));
+ test(S("abcdefghij"), 9, 1, S("1234567890"), 5, 6, S("abcdefghi67890"));
+ test(S("abcdefghij"), 9, 1, S("1234567890"), 9, 0, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 1, S("1234567890"), 9, 1, S("abcdefghi0"));
+ test(S("abcdefghij"), 9, 1, S("1234567890"), 9, 2, S("abcdefghi0"));
+ test(S("abcdefghij"), 9, 1, S("1234567890"), 10, 0, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 1, S("1234567890"), 10, 1, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 1, S("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghij"), 9, 1, S("12345678901234567890"), 0, 0, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 1, S("12345678901234567890"), 0, 1, S("abcdefghi1"));
+ test(S("abcdefghij"), 9, 1, S("12345678901234567890"), 0, 10, S("abcdefghi1234567890"));
+ test(S("abcdefghij"), 9, 1, S("12345678901234567890"), 0, 19, S("abcdefghi1234567890123456789"));
+ test(S("abcdefghij"), 9, 1, S("12345678901234567890"), 0, 20, S("abcdefghi12345678901234567890"));
+ test(S("abcdefghij"), 9, 1, S("12345678901234567890"), 0, 21, S("abcdefghi12345678901234567890"));
+ test(S("abcdefghij"), 9, 1, S("12345678901234567890"), 1, 0, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 1, S("12345678901234567890"), 1, 1, S("abcdefghi2"));
+ test(S("abcdefghij"), 9, 1, S("12345678901234567890"), 1, 9, S("abcdefghi234567890"));
+ test(S("abcdefghij"), 9, 1, S("12345678901234567890"), 1, 18, S("abcdefghi234567890123456789"));
+ test(S("abcdefghij"), 9, 1, S("12345678901234567890"), 1, 19, S("abcdefghi2345678901234567890"));
+ test(S("abcdefghij"), 9, 1, S("12345678901234567890"), 1, 20, S("abcdefghi2345678901234567890"));
+ test(S("abcdefghij"), 9, 1, S("12345678901234567890"), 10, 0, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 1, S("12345678901234567890"), 10, 1, S("abcdefghi1"));
+ test(S("abcdefghij"), 9, 1, S("12345678901234567890"), 10, 5, S("abcdefghi12345"));
+ test(S("abcdefghij"), 9, 1, S("12345678901234567890"), 10, 9, S("abcdefghi123456789"));
+ test(S("abcdefghij"), 9, 1, S("12345678901234567890"), 10, 10, S("abcdefghi1234567890"));
+ test(S("abcdefghij"), 9, 1, S("12345678901234567890"), 10, 11, S("abcdefghi1234567890"));
+ test(S("abcdefghij"), 9, 1, S("12345678901234567890"), 19, 0, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 1, S("12345678901234567890"), 19, 1, S("abcdefghi0"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test34()
-{
- test(S("abcdefghij"), 9, 1, S("12345678901234567890"), 19, 2, S("abcdefghi0"));
- test(S("abcdefghij"), 9, 1, S("12345678901234567890"), 20, 0, S("abcdefghi"));
- test(S("abcdefghij"), 9, 1, S("12345678901234567890"), 20, 1, S("abcdefghi"));
- test(S("abcdefghij"), 9, 1, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghij"), 9, 2, S(""), 0, 0, S("abcdefghi"));
- test(S("abcdefghij"), 9, 2, S(""), 0, 1, S("abcdefghi"));
- test(S("abcdefghij"), 9, 2, S(""), 1, 0, S("can't happen"));
- test(S("abcdefghij"), 9, 2, S("12345"), 0, 0, S("abcdefghi"));
- test(S("abcdefghij"), 9, 2, S("12345"), 0, 1, S("abcdefghi1"));
- test(S("abcdefghij"), 9, 2, S("12345"), 0, 2, S("abcdefghi12"));
- test(S("abcdefghij"), 9, 2, S("12345"), 0, 4, S("abcdefghi1234"));
- test(S("abcdefghij"), 9, 2, S("12345"), 0, 5, S("abcdefghi12345"));
- test(S("abcdefghij"), 9, 2, S("12345"), 0, 6, S("abcdefghi12345"));
- test(S("abcdefghij"), 9, 2, S("12345"), 1, 0, S("abcdefghi"));
- test(S("abcdefghij"), 9, 2, S("12345"), 1, 1, S("abcdefghi2"));
- test(S("abcdefghij"), 9, 2, S("12345"), 1, 2, S("abcdefghi23"));
- test(S("abcdefghij"), 9, 2, S("12345"), 1, 3, S("abcdefghi234"));
- test(S("abcdefghij"), 9, 2, S("12345"), 1, 4, S("abcdefghi2345"));
- test(S("abcdefghij"), 9, 2, S("12345"), 1, 5, S("abcdefghi2345"));
- test(S("abcdefghij"), 9, 2, S("12345"), 2, 0, S("abcdefghi"));
- test(S("abcdefghij"), 9, 2, S("12345"), 2, 1, S("abcdefghi3"));
- test(S("abcdefghij"), 9, 2, S("12345"), 2, 2, S("abcdefghi34"));
- test(S("abcdefghij"), 9, 2, S("12345"), 2, 3, S("abcdefghi345"));
- test(S("abcdefghij"), 9, 2, S("12345"), 2, 4, S("abcdefghi345"));
- test(S("abcdefghij"), 9, 2, S("12345"), 4, 0, S("abcdefghi"));
- test(S("abcdefghij"), 9, 2, S("12345"), 4, 1, S("abcdefghi5"));
- test(S("abcdefghij"), 9, 2, S("12345"), 4, 2, S("abcdefghi5"));
- test(S("abcdefghij"), 9, 2, S("12345"), 5, 0, S("abcdefghi"));
- test(S("abcdefghij"), 9, 2, S("12345"), 5, 1, S("abcdefghi"));
- test(S("abcdefghij"), 9, 2, S("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghij"), 9, 2, S("1234567890"), 0, 0, S("abcdefghi"));
- test(S("abcdefghij"), 9, 2, S("1234567890"), 0, 1, S("abcdefghi1"));
- test(S("abcdefghij"), 9, 2, S("1234567890"), 0, 5, S("abcdefghi12345"));
- test(S("abcdefghij"), 9, 2, S("1234567890"), 0, 9, S("abcdefghi123456789"));
- test(S("abcdefghij"), 9, 2, S("1234567890"), 0, 10, S("abcdefghi1234567890"));
- test(S("abcdefghij"), 9, 2, S("1234567890"), 0, 11, S("abcdefghi1234567890"));
- test(S("abcdefghij"), 9, 2, S("1234567890"), 1, 0, S("abcdefghi"));
- test(S("abcdefghij"), 9, 2, S("1234567890"), 1, 1, S("abcdefghi2"));
- test(S("abcdefghij"), 9, 2, S("1234567890"), 1, 4, S("abcdefghi2345"));
- test(S("abcdefghij"), 9, 2, S("1234567890"), 1, 8, S("abcdefghi23456789"));
- test(S("abcdefghij"), 9, 2, S("1234567890"), 1, 9, S("abcdefghi234567890"));
- test(S("abcdefghij"), 9, 2, S("1234567890"), 1, 10, S("abcdefghi234567890"));
- test(S("abcdefghij"), 9, 2, S("1234567890"), 5, 0, S("abcdefghi"));
- test(S("abcdefghij"), 9, 2, S("1234567890"), 5, 1, S("abcdefghi6"));
- test(S("abcdefghij"), 9, 2, S("1234567890"), 5, 2, S("abcdefghi67"));
- test(S("abcdefghij"), 9, 2, S("1234567890"), 5, 4, S("abcdefghi6789"));
- test(S("abcdefghij"), 9, 2, S("1234567890"), 5, 5, S("abcdefghi67890"));
- test(S("abcdefghij"), 9, 2, S("1234567890"), 5, 6, S("abcdefghi67890"));
- test(S("abcdefghij"), 9, 2, S("1234567890"), 9, 0, S("abcdefghi"));
- test(S("abcdefghij"), 9, 2, S("1234567890"), 9, 1, S("abcdefghi0"));
- test(S("abcdefghij"), 9, 2, S("1234567890"), 9, 2, S("abcdefghi0"));
- test(S("abcdefghij"), 9, 2, S("1234567890"), 10, 0, S("abcdefghi"));
- test(S("abcdefghij"), 9, 2, S("1234567890"), 10, 1, S("abcdefghi"));
- test(S("abcdefghij"), 9, 2, S("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghij"), 9, 2, S("12345678901234567890"), 0, 0, S("abcdefghi"));
- test(S("abcdefghij"), 9, 2, S("12345678901234567890"), 0, 1, S("abcdefghi1"));
- test(S("abcdefghij"), 9, 2, S("12345678901234567890"), 0, 10, S("abcdefghi1234567890"));
- test(S("abcdefghij"), 9, 2, S("12345678901234567890"), 0, 19, S("abcdefghi1234567890123456789"));
- test(S("abcdefghij"), 9, 2, S("12345678901234567890"), 0, 20, S("abcdefghi12345678901234567890"));
- test(S("abcdefghij"), 9, 2, S("12345678901234567890"), 0, 21, S("abcdefghi12345678901234567890"));
- test(S("abcdefghij"), 9, 2, S("12345678901234567890"), 1, 0, S("abcdefghi"));
- test(S("abcdefghij"), 9, 2, S("12345678901234567890"), 1, 1, S("abcdefghi2"));
- test(S("abcdefghij"), 9, 2, S("12345678901234567890"), 1, 9, S("abcdefghi234567890"));
- test(S("abcdefghij"), 9, 2, S("12345678901234567890"), 1, 18, S("abcdefghi234567890123456789"));
- test(S("abcdefghij"), 9, 2, S("12345678901234567890"), 1, 19, S("abcdefghi2345678901234567890"));
- test(S("abcdefghij"), 9, 2, S("12345678901234567890"), 1, 20, S("abcdefghi2345678901234567890"));
- test(S("abcdefghij"), 9, 2, S("12345678901234567890"), 10, 0, S("abcdefghi"));
- test(S("abcdefghij"), 9, 2, S("12345678901234567890"), 10, 1, S("abcdefghi1"));
- test(S("abcdefghij"), 9, 2, S("12345678901234567890"), 10, 5, S("abcdefghi12345"));
- test(S("abcdefghij"), 9, 2, S("12345678901234567890"), 10, 9, S("abcdefghi123456789"));
- test(S("abcdefghij"), 9, 2, S("12345678901234567890"), 10, 10, S("abcdefghi1234567890"));
- test(S("abcdefghij"), 9, 2, S("12345678901234567890"), 10, 11, S("abcdefghi1234567890"));
- test(S("abcdefghij"), 9, 2, S("12345678901234567890"), 19, 0, S("abcdefghi"));
- test(S("abcdefghij"), 9, 2, S("12345678901234567890"), 19, 1, S("abcdefghi0"));
- test(S("abcdefghij"), 9, 2, S("12345678901234567890"), 19, 2, S("abcdefghi0"));
- test(S("abcdefghij"), 9, 2, S("12345678901234567890"), 20, 0, S("abcdefghi"));
- test(S("abcdefghij"), 9, 2, S("12345678901234567890"), 20, 1, S("abcdefghi"));
- test(S("abcdefghij"), 9, 2, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghij"), 10, 0, S(""), 0, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, 0, S(""), 0, 1, S("abcdefghij"));
- test(S("abcdefghij"), 10, 0, S(""), 1, 0, S("can't happen"));
- test(S("abcdefghij"), 10, 0, S("12345"), 0, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, 0, S("12345"), 0, 1, S("abcdefghij1"));
- test(S("abcdefghij"), 10, 0, S("12345"), 0, 2, S("abcdefghij12"));
- test(S("abcdefghij"), 10, 0, S("12345"), 0, 4, S("abcdefghij1234"));
- test(S("abcdefghij"), 10, 0, S("12345"), 0, 5, S("abcdefghij12345"));
- test(S("abcdefghij"), 10, 0, S("12345"), 0, 6, S("abcdefghij12345"));
- test(S("abcdefghij"), 10, 0, S("12345"), 1, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, 0, S("12345"), 1, 1, S("abcdefghij2"));
- test(S("abcdefghij"), 10, 0, S("12345"), 1, 2, S("abcdefghij23"));
- test(S("abcdefghij"), 10, 0, S("12345"), 1, 3, S("abcdefghij234"));
- test(S("abcdefghij"), 10, 0, S("12345"), 1, 4, S("abcdefghij2345"));
- test(S("abcdefghij"), 10, 0, S("12345"), 1, 5, S("abcdefghij2345"));
- test(S("abcdefghij"), 10, 0, S("12345"), 2, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, 0, S("12345"), 2, 1, S("abcdefghij3"));
- test(S("abcdefghij"), 10, 0, S("12345"), 2, 2, S("abcdefghij34"));
- test(S("abcdefghij"), 10, 0, S("12345"), 2, 3, S("abcdefghij345"));
- test(S("abcdefghij"), 10, 0, S("12345"), 2, 4, S("abcdefghij345"));
- test(S("abcdefghij"), 10, 0, S("12345"), 4, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, 0, S("12345"), 4, 1, S("abcdefghij5"));
+TEST_CONSTEXPR_CXX20 bool test34() {
+ test(S("abcdefghij"), 9, 1, S("12345678901234567890"), 19, 2, S("abcdefghi0"));
+ test(S("abcdefghij"), 9, 1, S("12345678901234567890"), 20, 0, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 1, S("12345678901234567890"), 20, 1, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 1, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghij"), 9, 2, S(""), 0, 0, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 2, S(""), 0, 1, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 2, S(""), 1, 0, S("can't happen"));
+ test(S("abcdefghij"), 9, 2, S("12345"), 0, 0, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 2, S("12345"), 0, 1, S("abcdefghi1"));
+ test(S("abcdefghij"), 9, 2, S("12345"), 0, 2, S("abcdefghi12"));
+ test(S("abcdefghij"), 9, 2, S("12345"), 0, 4, S("abcdefghi1234"));
+ test(S("abcdefghij"), 9, 2, S("12345"), 0, 5, S("abcdefghi12345"));
+ test(S("abcdefghij"), 9, 2, S("12345"), 0, 6, S("abcdefghi12345"));
+ test(S("abcdefghij"), 9, 2, S("12345"), 1, 0, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 2, S("12345"), 1, 1, S("abcdefghi2"));
+ test(S("abcdefghij"), 9, 2, S("12345"), 1, 2, S("abcdefghi23"));
+ test(S("abcdefghij"), 9, 2, S("12345"), 1, 3, S("abcdefghi234"));
+ test(S("abcdefghij"), 9, 2, S("12345"), 1, 4, S("abcdefghi2345"));
+ test(S("abcdefghij"), 9, 2, S("12345"), 1, 5, S("abcdefghi2345"));
+ test(S("abcdefghij"), 9, 2, S("12345"), 2, 0, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 2, S("12345"), 2, 1, S("abcdefghi3"));
+ test(S("abcdefghij"), 9, 2, S("12345"), 2, 2, S("abcdefghi34"));
+ test(S("abcdefghij"), 9, 2, S("12345"), 2, 3, S("abcdefghi345"));
+ test(S("abcdefghij"), 9, 2, S("12345"), 2, 4, S("abcdefghi345"));
+ test(S("abcdefghij"), 9, 2, S("12345"), 4, 0, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 2, S("12345"), 4, 1, S("abcdefghi5"));
+ test(S("abcdefghij"), 9, 2, S("12345"), 4, 2, S("abcdefghi5"));
+ test(S("abcdefghij"), 9, 2, S("12345"), 5, 0, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 2, S("12345"), 5, 1, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 2, S("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghij"), 9, 2, S("1234567890"), 0, 0, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 2, S("1234567890"), 0, 1, S("abcdefghi1"));
+ test(S("abcdefghij"), 9, 2, S("1234567890"), 0, 5, S("abcdefghi12345"));
+ test(S("abcdefghij"), 9, 2, S("1234567890"), 0, 9, S("abcdefghi123456789"));
+ test(S("abcdefghij"), 9, 2, S("1234567890"), 0, 10, S("abcdefghi1234567890"));
+ test(S("abcdefghij"), 9, 2, S("1234567890"), 0, 11, S("abcdefghi1234567890"));
+ test(S("abcdefghij"), 9, 2, S("1234567890"), 1, 0, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 2, S("1234567890"), 1, 1, S("abcdefghi2"));
+ test(S("abcdefghij"), 9, 2, S("1234567890"), 1, 4, S("abcdefghi2345"));
+ test(S("abcdefghij"), 9, 2, S("1234567890"), 1, 8, S("abcdefghi23456789"));
+ test(S("abcdefghij"), 9, 2, S("1234567890"), 1, 9, S("abcdefghi234567890"));
+ test(S("abcdefghij"), 9, 2, S("1234567890"), 1, 10, S("abcdefghi234567890"));
+ test(S("abcdefghij"), 9, 2, S("1234567890"), 5, 0, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 2, S("1234567890"), 5, 1, S("abcdefghi6"));
+ test(S("abcdefghij"), 9, 2, S("1234567890"), 5, 2, S("abcdefghi67"));
+ test(S("abcdefghij"), 9, 2, S("1234567890"), 5, 4, S("abcdefghi6789"));
+ test(S("abcdefghij"), 9, 2, S("1234567890"), 5, 5, S("abcdefghi67890"));
+ test(S("abcdefghij"), 9, 2, S("1234567890"), 5, 6, S("abcdefghi67890"));
+ test(S("abcdefghij"), 9, 2, S("1234567890"), 9, 0, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 2, S("1234567890"), 9, 1, S("abcdefghi0"));
+ test(S("abcdefghij"), 9, 2, S("1234567890"), 9, 2, S("abcdefghi0"));
+ test(S("abcdefghij"), 9, 2, S("1234567890"), 10, 0, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 2, S("1234567890"), 10, 1, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 2, S("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghij"), 9, 2, S("12345678901234567890"), 0, 0, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 2, S("12345678901234567890"), 0, 1, S("abcdefghi1"));
+ test(S("abcdefghij"), 9, 2, S("12345678901234567890"), 0, 10, S("abcdefghi1234567890"));
+ test(S("abcdefghij"), 9, 2, S("12345678901234567890"), 0, 19, S("abcdefghi1234567890123456789"));
+ test(S("abcdefghij"), 9, 2, S("12345678901234567890"), 0, 20, S("abcdefghi12345678901234567890"));
+ test(S("abcdefghij"), 9, 2, S("12345678901234567890"), 0, 21, S("abcdefghi12345678901234567890"));
+ test(S("abcdefghij"), 9, 2, S("12345678901234567890"), 1, 0, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 2, S("12345678901234567890"), 1, 1, S("abcdefghi2"));
+ test(S("abcdefghij"), 9, 2, S("12345678901234567890"), 1, 9, S("abcdefghi234567890"));
+ test(S("abcdefghij"), 9, 2, S("12345678901234567890"), 1, 18, S("abcdefghi234567890123456789"));
+ test(S("abcdefghij"), 9, 2, S("12345678901234567890"), 1, 19, S("abcdefghi2345678901234567890"));
+ test(S("abcdefghij"), 9, 2, S("12345678901234567890"), 1, 20, S("abcdefghi2345678901234567890"));
+ test(S("abcdefghij"), 9, 2, S("12345678901234567890"), 10, 0, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 2, S("12345678901234567890"), 10, 1, S("abcdefghi1"));
+ test(S("abcdefghij"), 9, 2, S("12345678901234567890"), 10, 5, S("abcdefghi12345"));
+ test(S("abcdefghij"), 9, 2, S("12345678901234567890"), 10, 9, S("abcdefghi123456789"));
+ test(S("abcdefghij"), 9, 2, S("12345678901234567890"), 10, 10, S("abcdefghi1234567890"));
+ test(S("abcdefghij"), 9, 2, S("12345678901234567890"), 10, 11, S("abcdefghi1234567890"));
+ test(S("abcdefghij"), 9, 2, S("12345678901234567890"), 19, 0, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 2, S("12345678901234567890"), 19, 1, S("abcdefghi0"));
+ test(S("abcdefghij"), 9, 2, S("12345678901234567890"), 19, 2, S("abcdefghi0"));
+ test(S("abcdefghij"), 9, 2, S("12345678901234567890"), 20, 0, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 2, S("12345678901234567890"), 20, 1, S("abcdefghi"));
+ test(S("abcdefghij"), 9, 2, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghij"), 10, 0, S(""), 0, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 0, S(""), 0, 1, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 0, S(""), 1, 0, S("can't happen"));
+ test(S("abcdefghij"), 10, 0, S("12345"), 0, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 0, S("12345"), 0, 1, S("abcdefghij1"));
+ test(S("abcdefghij"), 10, 0, S("12345"), 0, 2, S("abcdefghij12"));
+ test(S("abcdefghij"), 10, 0, S("12345"), 0, 4, S("abcdefghij1234"));
+ test(S("abcdefghij"), 10, 0, S("12345"), 0, 5, S("abcdefghij12345"));
+ test(S("abcdefghij"), 10, 0, S("12345"), 0, 6, S("abcdefghij12345"));
+ test(S("abcdefghij"), 10, 0, S("12345"), 1, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 0, S("12345"), 1, 1, S("abcdefghij2"));
+ test(S("abcdefghij"), 10, 0, S("12345"), 1, 2, S("abcdefghij23"));
+ test(S("abcdefghij"), 10, 0, S("12345"), 1, 3, S("abcdefghij234"));
+ test(S("abcdefghij"), 10, 0, S("12345"), 1, 4, S("abcdefghij2345"));
+ test(S("abcdefghij"), 10, 0, S("12345"), 1, 5, S("abcdefghij2345"));
+ test(S("abcdefghij"), 10, 0, S("12345"), 2, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 0, S("12345"), 2, 1, S("abcdefghij3"));
+ test(S("abcdefghij"), 10, 0, S("12345"), 2, 2, S("abcdefghij34"));
+ test(S("abcdefghij"), 10, 0, S("12345"), 2, 3, S("abcdefghij345"));
+ test(S("abcdefghij"), 10, 0, S("12345"), 2, 4, S("abcdefghij345"));
+ test(S("abcdefghij"), 10, 0, S("12345"), 4, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 0, S("12345"), 4, 1, S("abcdefghij5"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test35()
-{
- test(S("abcdefghij"), 10, 0, S("12345"), 4, 2, S("abcdefghij5"));
- test(S("abcdefghij"), 10, 0, S("12345"), 5, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, 0, S("12345"), 5, 1, S("abcdefghij"));
- test(S("abcdefghij"), 10, 0, S("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghij"), 10, 0, S("1234567890"), 0, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, 0, S("1234567890"), 0, 1, S("abcdefghij1"));
- test(S("abcdefghij"), 10, 0, S("1234567890"), 0, 5, S("abcdefghij12345"));
- test(S("abcdefghij"), 10, 0, S("1234567890"), 0, 9, S("abcdefghij123456789"));
- test(S("abcdefghij"), 10, 0, S("1234567890"), 0, 10, S("abcdefghij1234567890"));
- test(S("abcdefghij"), 10, 0, S("1234567890"), 0, 11, S("abcdefghij1234567890"));
- test(S("abcdefghij"), 10, 0, S("1234567890"), 1, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, 0, S("1234567890"), 1, 1, S("abcdefghij2"));
- test(S("abcdefghij"), 10, 0, S("1234567890"), 1, 4, S("abcdefghij2345"));
- test(S("abcdefghij"), 10, 0, S("1234567890"), 1, 8, S("abcdefghij23456789"));
- test(S("abcdefghij"), 10, 0, S("1234567890"), 1, 9, S("abcdefghij234567890"));
- test(S("abcdefghij"), 10, 0, S("1234567890"), 1, 10, S("abcdefghij234567890"));
- test(S("abcdefghij"), 10, 0, S("1234567890"), 5, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, 0, S("1234567890"), 5, 1, S("abcdefghij6"));
- test(S("abcdefghij"), 10, 0, S("1234567890"), 5, 2, S("abcdefghij67"));
- test(S("abcdefghij"), 10, 0, S("1234567890"), 5, 4, S("abcdefghij6789"));
- test(S("abcdefghij"), 10, 0, S("1234567890"), 5, 5, S("abcdefghij67890"));
- test(S("abcdefghij"), 10, 0, S("1234567890"), 5, 6, S("abcdefghij67890"));
- test(S("abcdefghij"), 10, 0, S("1234567890"), 9, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, 0, S("1234567890"), 9, 1, S("abcdefghij0"));
- test(S("abcdefghij"), 10, 0, S("1234567890"), 9, 2, S("abcdefghij0"));
- test(S("abcdefghij"), 10, 0, S("1234567890"), 10, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, 0, S("1234567890"), 10, 1, S("abcdefghij"));
- test(S("abcdefghij"), 10, 0, S("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghij"), 10, 0, S("12345678901234567890"), 0, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, 0, S("12345678901234567890"), 0, 1, S("abcdefghij1"));
- test(S("abcdefghij"), 10, 0, S("12345678901234567890"), 0, 10, S("abcdefghij1234567890"));
- test(S("abcdefghij"), 10, 0, S("12345678901234567890"), 0, 19, S("abcdefghij1234567890123456789"));
- test(S("abcdefghij"), 10, 0, S("12345678901234567890"), 0, 20, S("abcdefghij12345678901234567890"));
- test(S("abcdefghij"), 10, 0, S("12345678901234567890"), 0, 21, S("abcdefghij12345678901234567890"));
- test(S("abcdefghij"), 10, 0, S("12345678901234567890"), 1, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, 0, S("12345678901234567890"), 1, 1, S("abcdefghij2"));
- test(S("abcdefghij"), 10, 0, S("12345678901234567890"), 1, 9, S("abcdefghij234567890"));
- test(S("abcdefghij"), 10, 0, S("12345678901234567890"), 1, 18, S("abcdefghij234567890123456789"));
- test(S("abcdefghij"), 10, 0, S("12345678901234567890"), 1, 19, S("abcdefghij2345678901234567890"));
- test(S("abcdefghij"), 10, 0, S("12345678901234567890"), 1, 20, S("abcdefghij2345678901234567890"));
- test(S("abcdefghij"), 10, 0, S("12345678901234567890"), 10, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, 0, S("12345678901234567890"), 10, 1, S("abcdefghij1"));
- test(S("abcdefghij"), 10, 0, S("12345678901234567890"), 10, 5, S("abcdefghij12345"));
- test(S("abcdefghij"), 10, 0, S("12345678901234567890"), 10, 9, S("abcdefghij123456789"));
- test(S("abcdefghij"), 10, 0, S("12345678901234567890"), 10, 10, S("abcdefghij1234567890"));
- test(S("abcdefghij"), 10, 0, S("12345678901234567890"), 10, 11, S("abcdefghij1234567890"));
- test(S("abcdefghij"), 10, 0, S("12345678901234567890"), 19, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, 0, S("12345678901234567890"), 19, 1, S("abcdefghij0"));
- test(S("abcdefghij"), 10, 0, S("12345678901234567890"), 19, 2, S("abcdefghij0"));
- test(S("abcdefghij"), 10, 0, S("12345678901234567890"), 20, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, 0, S("12345678901234567890"), 20, 1, S("abcdefghij"));
- test(S("abcdefghij"), 10, 0, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghij"), 10, 1, S(""), 0, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, 1, S(""), 0, 1, S("abcdefghij"));
- test(S("abcdefghij"), 10, 1, S(""), 1, 0, S("can't happen"));
- test(S("abcdefghij"), 10, 1, S("12345"), 0, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, 1, S("12345"), 0, 1, S("abcdefghij1"));
- test(S("abcdefghij"), 10, 1, S("12345"), 0, 2, S("abcdefghij12"));
- test(S("abcdefghij"), 10, 1, S("12345"), 0, 4, S("abcdefghij1234"));
- test(S("abcdefghij"), 10, 1, S("12345"), 0, 5, S("abcdefghij12345"));
- test(S("abcdefghij"), 10, 1, S("12345"), 0, 6, S("abcdefghij12345"));
- test(S("abcdefghij"), 10, 1, S("12345"), 1, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, 1, S("12345"), 1, 1, S("abcdefghij2"));
- test(S("abcdefghij"), 10, 1, S("12345"), 1, 2, S("abcdefghij23"));
- test(S("abcdefghij"), 10, 1, S("12345"), 1, 3, S("abcdefghij234"));
- test(S("abcdefghij"), 10, 1, S("12345"), 1, 4, S("abcdefghij2345"));
- test(S("abcdefghij"), 10, 1, S("12345"), 1, 5, S("abcdefghij2345"));
- test(S("abcdefghij"), 10, 1, S("12345"), 2, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, 1, S("12345"), 2, 1, S("abcdefghij3"));
- test(S("abcdefghij"), 10, 1, S("12345"), 2, 2, S("abcdefghij34"));
- test(S("abcdefghij"), 10, 1, S("12345"), 2, 3, S("abcdefghij345"));
- test(S("abcdefghij"), 10, 1, S("12345"), 2, 4, S("abcdefghij345"));
- test(S("abcdefghij"), 10, 1, S("12345"), 4, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, 1, S("12345"), 4, 1, S("abcdefghij5"));
- test(S("abcdefghij"), 10, 1, S("12345"), 4, 2, S("abcdefghij5"));
- test(S("abcdefghij"), 10, 1, S("12345"), 5, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, 1, S("12345"), 5, 1, S("abcdefghij"));
- test(S("abcdefghij"), 10, 1, S("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghij"), 10, 1, S("1234567890"), 0, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, 1, S("1234567890"), 0, 1, S("abcdefghij1"));
- test(S("abcdefghij"), 10, 1, S("1234567890"), 0, 5, S("abcdefghij12345"));
- test(S("abcdefghij"), 10, 1, S("1234567890"), 0, 9, S("abcdefghij123456789"));
- test(S("abcdefghij"), 10, 1, S("1234567890"), 0, 10, S("abcdefghij1234567890"));
- test(S("abcdefghij"), 10, 1, S("1234567890"), 0, 11, S("abcdefghij1234567890"));
- test(S("abcdefghij"), 10, 1, S("1234567890"), 1, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, 1, S("1234567890"), 1, 1, S("abcdefghij2"));
- test(S("abcdefghij"), 10, 1, S("1234567890"), 1, 4, S("abcdefghij2345"));
- test(S("abcdefghij"), 10, 1, S("1234567890"), 1, 8, S("abcdefghij23456789"));
- test(S("abcdefghij"), 10, 1, S("1234567890"), 1, 9, S("abcdefghij234567890"));
- test(S("abcdefghij"), 10, 1, S("1234567890"), 1, 10, S("abcdefghij234567890"));
- test(S("abcdefghij"), 10, 1, S("1234567890"), 5, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, 1, S("1234567890"), 5, 1, S("abcdefghij6"));
- test(S("abcdefghij"), 10, 1, S("1234567890"), 5, 2, S("abcdefghij67"));
- test(S("abcdefghij"), 10, 1, S("1234567890"), 5, 4, S("abcdefghij6789"));
- test(S("abcdefghij"), 10, 1, S("1234567890"), 5, 5, S("abcdefghij67890"));
- test(S("abcdefghij"), 10, 1, S("1234567890"), 5, 6, S("abcdefghij67890"));
- test(S("abcdefghij"), 10, 1, S("1234567890"), 9, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, 1, S("1234567890"), 9, 1, S("abcdefghij0"));
- test(S("abcdefghij"), 10, 1, S("1234567890"), 9, 2, S("abcdefghij0"));
- test(S("abcdefghij"), 10, 1, S("1234567890"), 10, 0, S("abcdefghij"));
+TEST_CONSTEXPR_CXX20 bool test35() {
+ test(S("abcdefghij"), 10, 0, S("12345"), 4, 2, S("abcdefghij5"));
+ test(S("abcdefghij"), 10, 0, S("12345"), 5, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 0, S("12345"), 5, 1, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 0, S("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghij"), 10, 0, S("1234567890"), 0, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 0, S("1234567890"), 0, 1, S("abcdefghij1"));
+ test(S("abcdefghij"), 10, 0, S("1234567890"), 0, 5, S("abcdefghij12345"));
+ test(S("abcdefghij"), 10, 0, S("1234567890"), 0, 9, S("abcdefghij123456789"));
+ test(S("abcdefghij"), 10, 0, S("1234567890"), 0, 10, S("abcdefghij1234567890"));
+ test(S("abcdefghij"), 10, 0, S("1234567890"), 0, 11, S("abcdefghij1234567890"));
+ test(S("abcdefghij"), 10, 0, S("1234567890"), 1, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 0, S("1234567890"), 1, 1, S("abcdefghij2"));
+ test(S("abcdefghij"), 10, 0, S("1234567890"), 1, 4, S("abcdefghij2345"));
+ test(S("abcdefghij"), 10, 0, S("1234567890"), 1, 8, S("abcdefghij23456789"));
+ test(S("abcdefghij"), 10, 0, S("1234567890"), 1, 9, S("abcdefghij234567890"));
+ test(S("abcdefghij"), 10, 0, S("1234567890"), 1, 10, S("abcdefghij234567890"));
+ test(S("abcdefghij"), 10, 0, S("1234567890"), 5, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 0, S("1234567890"), 5, 1, S("abcdefghij6"));
+ test(S("abcdefghij"), 10, 0, S("1234567890"), 5, 2, S("abcdefghij67"));
+ test(S("abcdefghij"), 10, 0, S("1234567890"), 5, 4, S("abcdefghij6789"));
+ test(S("abcdefghij"), 10, 0, S("1234567890"), 5, 5, S("abcdefghij67890"));
+ test(S("abcdefghij"), 10, 0, S("1234567890"), 5, 6, S("abcdefghij67890"));
+ test(S("abcdefghij"), 10, 0, S("1234567890"), 9, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 0, S("1234567890"), 9, 1, S("abcdefghij0"));
+ test(S("abcdefghij"), 10, 0, S("1234567890"), 9, 2, S("abcdefghij0"));
+ test(S("abcdefghij"), 10, 0, S("1234567890"), 10, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 0, S("1234567890"), 10, 1, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 0, S("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghij"), 10, 0, S("12345678901234567890"), 0, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 0, S("12345678901234567890"), 0, 1, S("abcdefghij1"));
+ test(S("abcdefghij"), 10, 0, S("12345678901234567890"), 0, 10, S("abcdefghij1234567890"));
+ test(S("abcdefghij"), 10, 0, S("12345678901234567890"), 0, 19, S("abcdefghij1234567890123456789"));
+ test(S("abcdefghij"), 10, 0, S("12345678901234567890"), 0, 20, S("abcdefghij12345678901234567890"));
+ test(S("abcdefghij"), 10, 0, S("12345678901234567890"), 0, 21, S("abcdefghij12345678901234567890"));
+ test(S("abcdefghij"), 10, 0, S("12345678901234567890"), 1, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 0, S("12345678901234567890"), 1, 1, S("abcdefghij2"));
+ test(S("abcdefghij"), 10, 0, S("12345678901234567890"), 1, 9, S("abcdefghij234567890"));
+ test(S("abcdefghij"), 10, 0, S("12345678901234567890"), 1, 18, S("abcdefghij234567890123456789"));
+ test(S("abcdefghij"), 10, 0, S("12345678901234567890"), 1, 19, S("abcdefghij2345678901234567890"));
+ test(S("abcdefghij"), 10, 0, S("12345678901234567890"), 1, 20, S("abcdefghij2345678901234567890"));
+ test(S("abcdefghij"), 10, 0, S("12345678901234567890"), 10, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 0, S("12345678901234567890"), 10, 1, S("abcdefghij1"));
+ test(S("abcdefghij"), 10, 0, S("12345678901234567890"), 10, 5, S("abcdefghij12345"));
+ test(S("abcdefghij"), 10, 0, S("12345678901234567890"), 10, 9, S("abcdefghij123456789"));
+ test(S("abcdefghij"), 10, 0, S("12345678901234567890"), 10, 10, S("abcdefghij1234567890"));
+ test(S("abcdefghij"), 10, 0, S("12345678901234567890"), 10, 11, S("abcdefghij1234567890"));
+ test(S("abcdefghij"), 10, 0, S("12345678901234567890"), 19, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 0, S("12345678901234567890"), 19, 1, S("abcdefghij0"));
+ test(S("abcdefghij"), 10, 0, S("12345678901234567890"), 19, 2, S("abcdefghij0"));
+ test(S("abcdefghij"), 10, 0, S("12345678901234567890"), 20, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 0, S("12345678901234567890"), 20, 1, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 0, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghij"), 10, 1, S(""), 0, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 1, S(""), 0, 1, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 1, S(""), 1, 0, S("can't happen"));
+ test(S("abcdefghij"), 10, 1, S("12345"), 0, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 1, S("12345"), 0, 1, S("abcdefghij1"));
+ test(S("abcdefghij"), 10, 1, S("12345"), 0, 2, S("abcdefghij12"));
+ test(S("abcdefghij"), 10, 1, S("12345"), 0, 4, S("abcdefghij1234"));
+ test(S("abcdefghij"), 10, 1, S("12345"), 0, 5, S("abcdefghij12345"));
+ test(S("abcdefghij"), 10, 1, S("12345"), 0, 6, S("abcdefghij12345"));
+ test(S("abcdefghij"), 10, 1, S("12345"), 1, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 1, S("12345"), 1, 1, S("abcdefghij2"));
+ test(S("abcdefghij"), 10, 1, S("12345"), 1, 2, S("abcdefghij23"));
+ test(S("abcdefghij"), 10, 1, S("12345"), 1, 3, S("abcdefghij234"));
+ test(S("abcdefghij"), 10, 1, S("12345"), 1, 4, S("abcdefghij2345"));
+ test(S("abcdefghij"), 10, 1, S("12345"), 1, 5, S("abcdefghij2345"));
+ test(S("abcdefghij"), 10, 1, S("12345"), 2, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 1, S("12345"), 2, 1, S("abcdefghij3"));
+ test(S("abcdefghij"), 10, 1, S("12345"), 2, 2, S("abcdefghij34"));
+ test(S("abcdefghij"), 10, 1, S("12345"), 2, 3, S("abcdefghij345"));
+ test(S("abcdefghij"), 10, 1, S("12345"), 2, 4, S("abcdefghij345"));
+ test(S("abcdefghij"), 10, 1, S("12345"), 4, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 1, S("12345"), 4, 1, S("abcdefghij5"));
+ test(S("abcdefghij"), 10, 1, S("12345"), 4, 2, S("abcdefghij5"));
+ test(S("abcdefghij"), 10, 1, S("12345"), 5, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 1, S("12345"), 5, 1, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 1, S("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghij"), 10, 1, S("1234567890"), 0, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 1, S("1234567890"), 0, 1, S("abcdefghij1"));
+ test(S("abcdefghij"), 10, 1, S("1234567890"), 0, 5, S("abcdefghij12345"));
+ test(S("abcdefghij"), 10, 1, S("1234567890"), 0, 9, S("abcdefghij123456789"));
+ test(S("abcdefghij"), 10, 1, S("1234567890"), 0, 10, S("abcdefghij1234567890"));
+ test(S("abcdefghij"), 10, 1, S("1234567890"), 0, 11, S("abcdefghij1234567890"));
+ test(S("abcdefghij"), 10, 1, S("1234567890"), 1, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 1, S("1234567890"), 1, 1, S("abcdefghij2"));
+ test(S("abcdefghij"), 10, 1, S("1234567890"), 1, 4, S("abcdefghij2345"));
+ test(S("abcdefghij"), 10, 1, S("1234567890"), 1, 8, S("abcdefghij23456789"));
+ test(S("abcdefghij"), 10, 1, S("1234567890"), 1, 9, S("abcdefghij234567890"));
+ test(S("abcdefghij"), 10, 1, S("1234567890"), 1, 10, S("abcdefghij234567890"));
+ test(S("abcdefghij"), 10, 1, S("1234567890"), 5, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 1, S("1234567890"), 5, 1, S("abcdefghij6"));
+ test(S("abcdefghij"), 10, 1, S("1234567890"), 5, 2, S("abcdefghij67"));
+ test(S("abcdefghij"), 10, 1, S("1234567890"), 5, 4, S("abcdefghij6789"));
+ test(S("abcdefghij"), 10, 1, S("1234567890"), 5, 5, S("abcdefghij67890"));
+ test(S("abcdefghij"), 10, 1, S("1234567890"), 5, 6, S("abcdefghij67890"));
+ test(S("abcdefghij"), 10, 1, S("1234567890"), 9, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 1, S("1234567890"), 9, 1, S("abcdefghij0"));
+ test(S("abcdefghij"), 10, 1, S("1234567890"), 9, 2, S("abcdefghij0"));
+ test(S("abcdefghij"), 10, 1, S("1234567890"), 10, 0, S("abcdefghij"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test36()
-{
- test(S("abcdefghij"), 10, 1, S("1234567890"), 10, 1, S("abcdefghij"));
- test(S("abcdefghij"), 10, 1, S("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghij"), 10, 1, S("12345678901234567890"), 0, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, 1, S("12345678901234567890"), 0, 1, S("abcdefghij1"));
- test(S("abcdefghij"), 10, 1, S("12345678901234567890"), 0, 10, S("abcdefghij1234567890"));
- test(S("abcdefghij"), 10, 1, S("12345678901234567890"), 0, 19, S("abcdefghij1234567890123456789"));
- test(S("abcdefghij"), 10, 1, S("12345678901234567890"), 0, 20, S("abcdefghij12345678901234567890"));
- test(S("abcdefghij"), 10, 1, S("12345678901234567890"), 0, 21, S("abcdefghij12345678901234567890"));
- test(S("abcdefghij"), 10, 1, S("12345678901234567890"), 1, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, 1, S("12345678901234567890"), 1, 1, S("abcdefghij2"));
- test(S("abcdefghij"), 10, 1, S("12345678901234567890"), 1, 9, S("abcdefghij234567890"));
- test(S("abcdefghij"), 10, 1, S("12345678901234567890"), 1, 18, S("abcdefghij234567890123456789"));
- test(S("abcdefghij"), 10, 1, S("12345678901234567890"), 1, 19, S("abcdefghij2345678901234567890"));
- test(S("abcdefghij"), 10, 1, S("12345678901234567890"), 1, 20, S("abcdefghij2345678901234567890"));
- test(S("abcdefghij"), 10, 1, S("12345678901234567890"), 10, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, 1, S("12345678901234567890"), 10, 1, S("abcdefghij1"));
- test(S("abcdefghij"), 10, 1, S("12345678901234567890"), 10, 5, S("abcdefghij12345"));
- test(S("abcdefghij"), 10, 1, S("12345678901234567890"), 10, 9, S("abcdefghij123456789"));
- test(S("abcdefghij"), 10, 1, S("12345678901234567890"), 10, 10, S("abcdefghij1234567890"));
- test(S("abcdefghij"), 10, 1, S("12345678901234567890"), 10, 11, S("abcdefghij1234567890"));
- test(S("abcdefghij"), 10, 1, S("12345678901234567890"), 19, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, 1, S("12345678901234567890"), 19, 1, S("abcdefghij0"));
- test(S("abcdefghij"), 10, 1, S("12345678901234567890"), 19, 2, S("abcdefghij0"));
- test(S("abcdefghij"), 10, 1, S("12345678901234567890"), 20, 0, S("abcdefghij"));
- test(S("abcdefghij"), 10, 1, S("12345678901234567890"), 20, 1, S("abcdefghij"));
- test(S("abcdefghij"), 10, 1, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghij"), 11, 0, S(""), 0, 0, S("can't happen"));
- test(S("abcdefghij"), 11, 0, S(""), 0, 1, S("can't happen"));
- test(S("abcdefghij"), 11, 0, S(""), 1, 0, S("can't happen"));
- test(S("abcdefghij"), 11, 0, S("12345"), 0, 0, S("can't happen"));
- test(S("abcdefghij"), 11, 0, S("12345"), 0, 1, S("can't happen"));
- test(S("abcdefghij"), 11, 0, S("12345"), 0, 2, S("can't happen"));
- test(S("abcdefghij"), 11, 0, S("12345"), 0, 4, S("can't happen"));
- test(S("abcdefghij"), 11, 0, S("12345"), 0, 5, S("can't happen"));
- test(S("abcdefghij"), 11, 0, S("12345"), 0, 6, S("can't happen"));
- test(S("abcdefghij"), 11, 0, S("12345"), 1, 0, S("can't happen"));
- test(S("abcdefghij"), 11, 0, S("12345"), 1, 1, S("can't happen"));
- test(S("abcdefghij"), 11, 0, S("12345"), 1, 2, S("can't happen"));
- test(S("abcdefghij"), 11, 0, S("12345"), 1, 3, S("can't happen"));
- test(S("abcdefghij"), 11, 0, S("12345"), 1, 4, S("can't happen"));
- test(S("abcdefghij"), 11, 0, S("12345"), 1, 5, S("can't happen"));
- test(S("abcdefghij"), 11, 0, S("12345"), 2, 0, S("can't happen"));
- test(S("abcdefghij"), 11, 0, S("12345"), 2, 1, S("can't happen"));
- test(S("abcdefghij"), 11, 0, S("12345"), 2, 2, S("can't happen"));
- test(S("abcdefghij"), 11, 0, S("12345"), 2, 3, S("can't happen"));
- test(S("abcdefghij"), 11, 0, S("12345"), 2, 4, S("can't happen"));
- test(S("abcdefghij"), 11, 0, S("12345"), 4, 0, S("can't happen"));
- test(S("abcdefghij"), 11, 0, S("12345"), 4, 1, S("can't happen"));
- test(S("abcdefghij"), 11, 0, S("12345"), 4, 2, S("can't happen"));
- test(S("abcdefghij"), 11, 0, S("12345"), 5, 0, S("can't happen"));
- test(S("abcdefghij"), 11, 0, S("12345"), 5, 1, S("can't happen"));
- test(S("abcdefghij"), 11, 0, S("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghij"), 11, 0, S("1234567890"), 0, 0, S("can't happen"));
- test(S("abcdefghij"), 11, 0, S("1234567890"), 0, 1, S("can't happen"));
- test(S("abcdefghij"), 11, 0, S("1234567890"), 0, 5, S("can't happen"));
- test(S("abcdefghij"), 11, 0, S("1234567890"), 0, 9, S("can't happen"));
- test(S("abcdefghij"), 11, 0, S("1234567890"), 0, 10, S("can't happen"));
- test(S("abcdefghij"), 11, 0, S("1234567890"), 0, 11, S("can't happen"));
- test(S("abcdefghij"), 11, 0, S("1234567890"), 1, 0, S("can't happen"));
- test(S("abcdefghij"), 11, 0, S("1234567890"), 1, 1, S("can't happen"));
- test(S("abcdefghij"), 11, 0, S("1234567890"), 1, 4, S("can't happen"));
- test(S("abcdefghij"), 11, 0, S("1234567890"), 1, 8, S("can't happen"));
- test(S("abcdefghij"), 11, 0, S("1234567890"), 1, 9, S("can't happen"));
- test(S("abcdefghij"), 11, 0, S("1234567890"), 1, 10, S("can't happen"));
- test(S("abcdefghij"), 11, 0, S("1234567890"), 5, 0, S("can't happen"));
- test(S("abcdefghij"), 11, 0, S("1234567890"), 5, 1, S("can't happen"));
- test(S("abcdefghij"), 11, 0, S("1234567890"), 5, 2, S("can't happen"));
- test(S("abcdefghij"), 11, 0, S("1234567890"), 5, 4, S("can't happen"));
- test(S("abcdefghij"), 11, 0, S("1234567890"), 5, 5, S("can't happen"));
- test(S("abcdefghij"), 11, 0, S("1234567890"), 5, 6, S("can't happen"));
- test(S("abcdefghij"), 11, 0, S("1234567890"), 9, 0, S("can't happen"));
- test(S("abcdefghij"), 11, 0, S("1234567890"), 9, 1, S("can't happen"));
- test(S("abcdefghij"), 11, 0, S("1234567890"), 9, 2, S("can't happen"));
- test(S("abcdefghij"), 11, 0, S("1234567890"), 10, 0, S("can't happen"));
- test(S("abcdefghij"), 11, 0, S("1234567890"), 10, 1, S("can't happen"));
- test(S("abcdefghij"), 11, 0, S("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghij"), 11, 0, S("12345678901234567890"), 0, 0, S("can't happen"));
- test(S("abcdefghij"), 11, 0, S("12345678901234567890"), 0, 1, S("can't happen"));
- test(S("abcdefghij"), 11, 0, S("12345678901234567890"), 0, 10, S("can't happen"));
- test(S("abcdefghij"), 11, 0, S("12345678901234567890"), 0, 19, S("can't happen"));
- test(S("abcdefghij"), 11, 0, S("12345678901234567890"), 0, 20, S("can't happen"));
- test(S("abcdefghij"), 11, 0, S("12345678901234567890"), 0, 21, S("can't happen"));
- test(S("abcdefghij"), 11, 0, S("12345678901234567890"), 1, 0, S("can't happen"));
- test(S("abcdefghij"), 11, 0, S("12345678901234567890"), 1, 1, S("can't happen"));
- test(S("abcdefghij"), 11, 0, S("12345678901234567890"), 1, 9, S("can't happen"));
- test(S("abcdefghij"), 11, 0, S("12345678901234567890"), 1, 18, S("can't happen"));
- test(S("abcdefghij"), 11, 0, S("12345678901234567890"), 1, 19, S("can't happen"));
- test(S("abcdefghij"), 11, 0, S("12345678901234567890"), 1, 20, S("can't happen"));
- test(S("abcdefghij"), 11, 0, S("12345678901234567890"), 10, 0, S("can't happen"));
- test(S("abcdefghij"), 11, 0, S("12345678901234567890"), 10, 1, S("can't happen"));
- test(S("abcdefghij"), 11, 0, S("12345678901234567890"), 10, 5, S("can't happen"));
- test(S("abcdefghij"), 11, 0, S("12345678901234567890"), 10, 9, S("can't happen"));
- test(S("abcdefghij"), 11, 0, S("12345678901234567890"), 10, 10, S("can't happen"));
- test(S("abcdefghij"), 11, 0, S("12345678901234567890"), 10, 11, S("can't happen"));
- test(S("abcdefghij"), 11, 0, S("12345678901234567890"), 19, 0, S("can't happen"));
- test(S("abcdefghij"), 11, 0, S("12345678901234567890"), 19, 1, S("can't happen"));
- test(S("abcdefghij"), 11, 0, S("12345678901234567890"), 19, 2, S("can't happen"));
- test(S("abcdefghij"), 11, 0, S("12345678901234567890"), 20, 0, S("can't happen"));
- test(S("abcdefghij"), 11, 0, S("12345678901234567890"), 20, 1, S("can't happen"));
- test(S("abcdefghij"), 11, 0, S("12345678901234567890"), 21, 0, S("can't happen"));
+TEST_CONSTEXPR_CXX20 bool test36() {
+ test(S("abcdefghij"), 10, 1, S("1234567890"), 10, 1, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 1, S("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghij"), 10, 1, S("12345678901234567890"), 0, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 1, S("12345678901234567890"), 0, 1, S("abcdefghij1"));
+ test(S("abcdefghij"), 10, 1, S("12345678901234567890"), 0, 10, S("abcdefghij1234567890"));
+ test(S("abcdefghij"), 10, 1, S("12345678901234567890"), 0, 19, S("abcdefghij1234567890123456789"));
+ test(S("abcdefghij"), 10, 1, S("12345678901234567890"), 0, 20, S("abcdefghij12345678901234567890"));
+ test(S("abcdefghij"), 10, 1, S("12345678901234567890"), 0, 21, S("abcdefghij12345678901234567890"));
+ test(S("abcdefghij"), 10, 1, S("12345678901234567890"), 1, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 1, S("12345678901234567890"), 1, 1, S("abcdefghij2"));
+ test(S("abcdefghij"), 10, 1, S("12345678901234567890"), 1, 9, S("abcdefghij234567890"));
+ test(S("abcdefghij"), 10, 1, S("12345678901234567890"), 1, 18, S("abcdefghij234567890123456789"));
+ test(S("abcdefghij"), 10, 1, S("12345678901234567890"), 1, 19, S("abcdefghij2345678901234567890"));
+ test(S("abcdefghij"), 10, 1, S("12345678901234567890"), 1, 20, S("abcdefghij2345678901234567890"));
+ test(S("abcdefghij"), 10, 1, S("12345678901234567890"), 10, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 1, S("12345678901234567890"), 10, 1, S("abcdefghij1"));
+ test(S("abcdefghij"), 10, 1, S("12345678901234567890"), 10, 5, S("abcdefghij12345"));
+ test(S("abcdefghij"), 10, 1, S("12345678901234567890"), 10, 9, S("abcdefghij123456789"));
+ test(S("abcdefghij"), 10, 1, S("12345678901234567890"), 10, 10, S("abcdefghij1234567890"));
+ test(S("abcdefghij"), 10, 1, S("12345678901234567890"), 10, 11, S("abcdefghij1234567890"));
+ test(S("abcdefghij"), 10, 1, S("12345678901234567890"), 19, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 1, S("12345678901234567890"), 19, 1, S("abcdefghij0"));
+ test(S("abcdefghij"), 10, 1, S("12345678901234567890"), 19, 2, S("abcdefghij0"));
+ test(S("abcdefghij"), 10, 1, S("12345678901234567890"), 20, 0, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 1, S("12345678901234567890"), 20, 1, S("abcdefghij"));
+ test(S("abcdefghij"), 10, 1, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, S(""), 0, 0, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, S(""), 0, 1, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, S(""), 1, 0, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, S("12345"), 0, 0, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, S("12345"), 0, 1, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, S("12345"), 0, 2, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, S("12345"), 0, 4, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, S("12345"), 0, 5, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, S("12345"), 0, 6, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, S("12345"), 1, 0, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, S("12345"), 1, 1, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, S("12345"), 1, 2, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, S("12345"), 1, 3, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, S("12345"), 1, 4, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, S("12345"), 1, 5, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, S("12345"), 2, 0, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, S("12345"), 2, 1, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, S("12345"), 2, 2, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, S("12345"), 2, 3, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, S("12345"), 2, 4, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, S("12345"), 4, 0, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, S("12345"), 4, 1, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, S("12345"), 4, 2, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, S("12345"), 5, 0, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, S("12345"), 5, 1, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, S("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, S("1234567890"), 0, 0, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, S("1234567890"), 0, 1, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, S("1234567890"), 0, 5, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, S("1234567890"), 0, 9, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, S("1234567890"), 0, 10, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, S("1234567890"), 0, 11, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, S("1234567890"), 1, 0, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, S("1234567890"), 1, 1, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, S("1234567890"), 1, 4, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, S("1234567890"), 1, 8, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, S("1234567890"), 1, 9, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, S("1234567890"), 1, 10, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, S("1234567890"), 5, 0, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, S("1234567890"), 5, 1, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, S("1234567890"), 5, 2, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, S("1234567890"), 5, 4, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, S("1234567890"), 5, 5, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, S("1234567890"), 5, 6, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, S("1234567890"), 9, 0, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, S("1234567890"), 9, 1, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, S("1234567890"), 9, 2, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, S("1234567890"), 10, 0, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, S("1234567890"), 10, 1, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, S("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, S("12345678901234567890"), 0, 0, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, S("12345678901234567890"), 0, 1, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, S("12345678901234567890"), 0, 10, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, S("12345678901234567890"), 0, 19, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, S("12345678901234567890"), 0, 20, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, S("12345678901234567890"), 0, 21, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, S("12345678901234567890"), 1, 0, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, S("12345678901234567890"), 1, 1, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, S("12345678901234567890"), 1, 9, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, S("12345678901234567890"), 1, 18, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, S("12345678901234567890"), 1, 19, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, S("12345678901234567890"), 1, 20, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, S("12345678901234567890"), 10, 0, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, S("12345678901234567890"), 10, 1, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, S("12345678901234567890"), 10, 5, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, S("12345678901234567890"), 10, 9, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, S("12345678901234567890"), 10, 10, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, S("12345678901234567890"), 10, 11, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, S("12345678901234567890"), 19, 0, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, S("12345678901234567890"), 19, 1, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, S("12345678901234567890"), 19, 2, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, S("12345678901234567890"), 20, 0, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, S("12345678901234567890"), 20, 1, S("can't happen"));
+ test(S("abcdefghij"), 11, 0, S("12345678901234567890"), 21, 0, S("can't happen"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test37()
-{
- test(S("abcdefghijklmnopqrst"), 0, 0, S(""), 0, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, S(""), 0, 1, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, S(""), 1, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 0, 0, S("12345"), 0, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, S("12345"), 0, 1, S("1abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, S("12345"), 0, 2, S("12abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, S("12345"), 0, 4, S("1234abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, S("12345"), 0, 5, S("12345abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, S("12345"), 0, 6, S("12345abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, S("12345"), 1, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, S("12345"), 1, 1, S("2abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, S("12345"), 1, 2, S("23abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, S("12345"), 1, 3, S("234abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, S("12345"), 1, 4, S("2345abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, S("12345"), 1, 5, S("2345abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, S("12345"), 2, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, S("12345"), 2, 1, S("3abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, S("12345"), 2, 2, S("34abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, S("12345"), 2, 3, S("345abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, S("12345"), 2, 4, S("345abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, S("12345"), 4, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, S("12345"), 4, 1, S("5abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, S("12345"), 4, 2, S("5abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, S("12345"), 5, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, S("12345"), 5, 1, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, S("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 0, 0, S("1234567890"), 0, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, S("1234567890"), 0, 1, S("1abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, S("1234567890"), 0, 5, S("12345abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, S("1234567890"), 0, 9, S("123456789abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, S("1234567890"), 0, 10, S("1234567890abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, S("1234567890"), 0, 11, S("1234567890abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, S("1234567890"), 1, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, S("1234567890"), 1, 1, S("2abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, S("1234567890"), 1, 4, S("2345abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, S("1234567890"), 1, 8, S("23456789abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, S("1234567890"), 1, 9, S("234567890abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, S("1234567890"), 1, 10, S("234567890abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, S("1234567890"), 5, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, S("1234567890"), 5, 1, S("6abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, S("1234567890"), 5, 2, S("67abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, S("1234567890"), 5, 4, S("6789abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, S("1234567890"), 5, 5, S("67890abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, S("1234567890"), 5, 6, S("67890abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, S("1234567890"), 9, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, S("1234567890"), 9, 1, S("0abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, S("1234567890"), 9, 2, S("0abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, S("1234567890"), 10, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, S("1234567890"), 10, 1, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, S("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 0, 0, S("12345678901234567890"), 0, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, S("12345678901234567890"), 0, 1, S("1abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, S("12345678901234567890"), 0, 10, S("1234567890abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, S("12345678901234567890"), 0, 19, S("1234567890123456789abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, S("12345678901234567890"), 0, 20, S("12345678901234567890abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, S("12345678901234567890"), 0, 21, S("12345678901234567890abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, S("12345678901234567890"), 1, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, S("12345678901234567890"), 1, 1, S("2abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, S("12345678901234567890"), 1, 9, S("234567890abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, S("12345678901234567890"), 1, 18, S("234567890123456789abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, S("12345678901234567890"), 1, 19, S("2345678901234567890abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, S("12345678901234567890"), 1, 20, S("2345678901234567890abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, S("12345678901234567890"), 10, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, S("12345678901234567890"), 10, 1, S("1abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, S("12345678901234567890"), 10, 5, S("12345abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, S("12345678901234567890"), 10, 9, S("123456789abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, S("12345678901234567890"), 10, 10, S("1234567890abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, S("12345678901234567890"), 10, 11, S("1234567890abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, S("12345678901234567890"), 19, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, S("12345678901234567890"), 19, 1, S("0abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, S("12345678901234567890"), 19, 2, S("0abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, S("12345678901234567890"), 20, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, S("12345678901234567890"), 20, 1, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 0, 1, S(""), 0, 0, S("bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, S(""), 0, 1, S("bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, S(""), 1, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 0, 1, S("12345"), 0, 0, S("bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, S("12345"), 0, 1, S("1bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, S("12345"), 0, 2, S("12bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, S("12345"), 0, 4, S("1234bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, S("12345"), 0, 5, S("12345bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, S("12345"), 0, 6, S("12345bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, S("12345"), 1, 0, S("bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, S("12345"), 1, 1, S("2bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, S("12345"), 1, 2, S("23bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, S("12345"), 1, 3, S("234bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, S("12345"), 1, 4, S("2345bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, S("12345"), 1, 5, S("2345bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, S("12345"), 2, 0, S("bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, S("12345"), 2, 1, S("3bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, S("12345"), 2, 2, S("34bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, S("12345"), 2, 3, S("345bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, S("12345"), 2, 4, S("345bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, S("12345"), 4, 0, S("bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, S("12345"), 4, 1, S("5bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, S("12345"), 4, 2, S("5bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, S("12345"), 5, 0, S("bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, S("12345"), 5, 1, S("bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, S("12345"), 6, 0, S("can't happen"));
+TEST_CONSTEXPR_CXX20 bool test37() {
+ test(S("abcdefghijklmnopqrst"), 0, 0, S(""), 0, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, S(""), 0, 1, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, S(""), 1, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("12345"), 0, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("12345"), 0, 1, S("1abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("12345"), 0, 2, S("12abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("12345"), 0, 4, S("1234abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("12345"), 0, 5, S("12345abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("12345"), 0, 6, S("12345abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("12345"), 1, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("12345"), 1, 1, S("2abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("12345"), 1, 2, S("23abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("12345"), 1, 3, S("234abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("12345"), 1, 4, S("2345abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("12345"), 1, 5, S("2345abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("12345"), 2, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("12345"), 2, 1, S("3abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("12345"), 2, 2, S("34abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("12345"), 2, 3, S("345abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("12345"), 2, 4, S("345abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("12345"), 4, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("12345"), 4, 1, S("5abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("12345"), 4, 2, S("5abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("12345"), 5, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("12345"), 5, 1, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("1234567890"), 0, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("1234567890"), 0, 1, S("1abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("1234567890"), 0, 5, S("12345abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("1234567890"), 0, 9, S("123456789abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("1234567890"), 0, 10, S("1234567890abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("1234567890"), 0, 11, S("1234567890abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("1234567890"), 1, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("1234567890"), 1, 1, S("2abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("1234567890"), 1, 4, S("2345abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("1234567890"), 1, 8, S("23456789abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("1234567890"), 1, 9, S("234567890abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("1234567890"), 1, 10, S("234567890abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("1234567890"), 5, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("1234567890"), 5, 1, S("6abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("1234567890"), 5, 2, S("67abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("1234567890"), 5, 4, S("6789abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("1234567890"), 5, 5, S("67890abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("1234567890"), 5, 6, S("67890abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("1234567890"), 9, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("1234567890"), 9, 1, S("0abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("1234567890"), 9, 2, S("0abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("1234567890"), 10, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("1234567890"), 10, 1, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("12345678901234567890"), 0, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("12345678901234567890"), 0, 1, S("1abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("12345678901234567890"), 0, 10, S("1234567890abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("12345678901234567890"), 0, 19, S("1234567890123456789abcdefghijklmnopqrst"));
+ test(
+ S("abcdefghijklmnopqrst"), 0, 0, S("12345678901234567890"), 0, 20, S("12345678901234567890abcdefghijklmnopqrst"));
+ test(
+ S("abcdefghijklmnopqrst"), 0, 0, S("12345678901234567890"), 0, 21, S("12345678901234567890abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("12345678901234567890"), 1, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("12345678901234567890"), 1, 1, S("2abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("12345678901234567890"), 1, 9, S("234567890abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("12345678901234567890"), 1, 18, S("234567890123456789abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("12345678901234567890"), 1, 19, S("2345678901234567890abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("12345678901234567890"), 1, 20, S("2345678901234567890abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("12345678901234567890"), 10, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("12345678901234567890"), 10, 1, S("1abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("12345678901234567890"), 10, 5, S("12345abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("12345678901234567890"), 10, 9, S("123456789abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("12345678901234567890"), 10, 10, S("1234567890abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("12345678901234567890"), 10, 11, S("1234567890abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("12345678901234567890"), 19, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("12345678901234567890"), 19, 1, S("0abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("12345678901234567890"), 19, 2, S("0abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("12345678901234567890"), 20, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("12345678901234567890"), 20, 1, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, S(""), 0, 0, S("bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, S(""), 0, 1, S("bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, S(""), 1, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("12345"), 0, 0, S("bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("12345"), 0, 1, S("1bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("12345"), 0, 2, S("12bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("12345"), 0, 4, S("1234bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("12345"), 0, 5, S("12345bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("12345"), 0, 6, S("12345bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("12345"), 1, 0, S("bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("12345"), 1, 1, S("2bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("12345"), 1, 2, S("23bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("12345"), 1, 3, S("234bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("12345"), 1, 4, S("2345bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("12345"), 1, 5, S("2345bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("12345"), 2, 0, S("bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("12345"), 2, 1, S("3bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("12345"), 2, 2, S("34bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("12345"), 2, 3, S("345bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("12345"), 2, 4, S("345bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("12345"), 4, 0, S("bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("12345"), 4, 1, S("5bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("12345"), 4, 2, S("5bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("12345"), 5, 0, S("bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("12345"), 5, 1, S("bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("12345"), 6, 0, S("can't happen"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test38()
-{
- test(S("abcdefghijklmnopqrst"), 0, 1, S("1234567890"), 0, 0, S("bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, S("1234567890"), 0, 1, S("1bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, S("1234567890"), 0, 5, S("12345bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, S("1234567890"), 0, 9, S("123456789bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, S("1234567890"), 0, 10, S("1234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, S("1234567890"), 0, 11, S("1234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, S("1234567890"), 1, 0, S("bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, S("1234567890"), 1, 1, S("2bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, S("1234567890"), 1, 4, S("2345bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, S("1234567890"), 1, 8, S("23456789bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, S("1234567890"), 1, 9, S("234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, S("1234567890"), 1, 10, S("234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, S("1234567890"), 5, 0, S("bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, S("1234567890"), 5, 1, S("6bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, S("1234567890"), 5, 2, S("67bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, S("1234567890"), 5, 4, S("6789bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, S("1234567890"), 5, 5, S("67890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, S("1234567890"), 5, 6, S("67890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, S("1234567890"), 9, 0, S("bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, S("1234567890"), 9, 1, S("0bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, S("1234567890"), 9, 2, S("0bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, S("1234567890"), 10, 0, S("bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, S("1234567890"), 10, 1, S("bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, S("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 0, 1, S("12345678901234567890"), 0, 0, S("bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, S("12345678901234567890"), 0, 1, S("1bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, S("12345678901234567890"), 0, 10, S("1234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, S("12345678901234567890"), 0, 19, S("1234567890123456789bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, S("12345678901234567890"), 0, 20, S("12345678901234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, S("12345678901234567890"), 0, 21, S("12345678901234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, S("12345678901234567890"), 1, 0, S("bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, S("12345678901234567890"), 1, 1, S("2bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, S("12345678901234567890"), 1, 9, S("234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, S("12345678901234567890"), 1, 18, S("234567890123456789bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, S("12345678901234567890"), 1, 19, S("2345678901234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, S("12345678901234567890"), 1, 20, S("2345678901234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, S("12345678901234567890"), 10, 0, S("bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, S("12345678901234567890"), 10, 1, S("1bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, S("12345678901234567890"), 10, 5, S("12345bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, S("12345678901234567890"), 10, 9, S("123456789bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, S("12345678901234567890"), 10, 10, S("1234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, S("12345678901234567890"), 10, 11, S("1234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, S("12345678901234567890"), 19, 0, S("bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, S("12345678901234567890"), 19, 1, S("0bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, S("12345678901234567890"), 19, 2, S("0bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, S("12345678901234567890"), 20, 0, S("bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, S("12345678901234567890"), 20, 1, S("bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 0, 10, S(""), 0, 0, S("klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, S(""), 0, 1, S("klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, S(""), 1, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 0, 10, S("12345"), 0, 0, S("klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, S("12345"), 0, 1, S("1klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, S("12345"), 0, 2, S("12klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, S("12345"), 0, 4, S("1234klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, S("12345"), 0, 5, S("12345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, S("12345"), 0, 6, S("12345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, S("12345"), 1, 0, S("klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, S("12345"), 1, 1, S("2klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, S("12345"), 1, 2, S("23klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, S("12345"), 1, 3, S("234klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, S("12345"), 1, 4, S("2345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, S("12345"), 1, 5, S("2345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, S("12345"), 2, 0, S("klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, S("12345"), 2, 1, S("3klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, S("12345"), 2, 2, S("34klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, S("12345"), 2, 3, S("345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, S("12345"), 2, 4, S("345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, S("12345"), 4, 0, S("klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, S("12345"), 4, 1, S("5klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, S("12345"), 4, 2, S("5klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, S("12345"), 5, 0, S("klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, S("12345"), 5, 1, S("klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, S("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 0, 10, S("1234567890"), 0, 0, S("klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, S("1234567890"), 0, 1, S("1klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, S("1234567890"), 0, 5, S("12345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, S("1234567890"), 0, 9, S("123456789klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, S("1234567890"), 0, 10, S("1234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, S("1234567890"), 0, 11, S("1234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, S("1234567890"), 1, 0, S("klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, S("1234567890"), 1, 1, S("2klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, S("1234567890"), 1, 4, S("2345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, S("1234567890"), 1, 8, S("23456789klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, S("1234567890"), 1, 9, S("234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, S("1234567890"), 1, 10, S("234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, S("1234567890"), 5, 0, S("klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, S("1234567890"), 5, 1, S("6klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, S("1234567890"), 5, 2, S("67klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, S("1234567890"), 5, 4, S("6789klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, S("1234567890"), 5, 5, S("67890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, S("1234567890"), 5, 6, S("67890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, S("1234567890"), 9, 0, S("klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, S("1234567890"), 9, 1, S("0klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, S("1234567890"), 9, 2, S("0klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, S("1234567890"), 10, 0, S("klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, S("1234567890"), 10, 1, S("klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, S("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 0, 10, S("12345678901234567890"), 0, 0, S("klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, S("12345678901234567890"), 0, 1, S("1klmnopqrst"));
+TEST_CONSTEXPR_CXX20 bool test38() {
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("1234567890"), 0, 0, S("bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("1234567890"), 0, 1, S("1bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("1234567890"), 0, 5, S("12345bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("1234567890"), 0, 9, S("123456789bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("1234567890"), 0, 10, S("1234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("1234567890"), 0, 11, S("1234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("1234567890"), 1, 0, S("bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("1234567890"), 1, 1, S("2bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("1234567890"), 1, 4, S("2345bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("1234567890"), 1, 8, S("23456789bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("1234567890"), 1, 9, S("234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("1234567890"), 1, 10, S("234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("1234567890"), 5, 0, S("bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("1234567890"), 5, 1, S("6bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("1234567890"), 5, 2, S("67bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("1234567890"), 5, 4, S("6789bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("1234567890"), 5, 5, S("67890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("1234567890"), 5, 6, S("67890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("1234567890"), 9, 0, S("bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("1234567890"), 9, 1, S("0bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("1234567890"), 9, 2, S("0bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("1234567890"), 10, 0, S("bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("1234567890"), 10, 1, S("bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("12345678901234567890"), 0, 0, S("bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("12345678901234567890"), 0, 1, S("1bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("12345678901234567890"), 0, 10, S("1234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("12345678901234567890"), 0, 19, S("1234567890123456789bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("12345678901234567890"), 0, 20, S("12345678901234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("12345678901234567890"), 0, 21, S("12345678901234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("12345678901234567890"), 1, 0, S("bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("12345678901234567890"), 1, 1, S("2bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("12345678901234567890"), 1, 9, S("234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("12345678901234567890"), 1, 18, S("234567890123456789bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("12345678901234567890"), 1, 19, S("2345678901234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("12345678901234567890"), 1, 20, S("2345678901234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("12345678901234567890"), 10, 0, S("bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("12345678901234567890"), 10, 1, S("1bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("12345678901234567890"), 10, 5, S("12345bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("12345678901234567890"), 10, 9, S("123456789bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("12345678901234567890"), 10, 10, S("1234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("12345678901234567890"), 10, 11, S("1234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("12345678901234567890"), 19, 0, S("bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("12345678901234567890"), 19, 1, S("0bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("12345678901234567890"), 19, 2, S("0bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("12345678901234567890"), 20, 0, S("bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("12345678901234567890"), 20, 1, S("bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, S(""), 0, 0, S("klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, S(""), 0, 1, S("klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, S(""), 1, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("12345"), 0, 0, S("klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("12345"), 0, 1, S("1klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("12345"), 0, 2, S("12klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("12345"), 0, 4, S("1234klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("12345"), 0, 5, S("12345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("12345"), 0, 6, S("12345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("12345"), 1, 0, S("klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("12345"), 1, 1, S("2klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("12345"), 1, 2, S("23klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("12345"), 1, 3, S("234klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("12345"), 1, 4, S("2345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("12345"), 1, 5, S("2345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("12345"), 2, 0, S("klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("12345"), 2, 1, S("3klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("12345"), 2, 2, S("34klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("12345"), 2, 3, S("345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("12345"), 2, 4, S("345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("12345"), 4, 0, S("klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("12345"), 4, 1, S("5klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("12345"), 4, 2, S("5klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("12345"), 5, 0, S("klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("12345"), 5, 1, S("klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("1234567890"), 0, 0, S("klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("1234567890"), 0, 1, S("1klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("1234567890"), 0, 5, S("12345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("1234567890"), 0, 9, S("123456789klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("1234567890"), 0, 10, S("1234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("1234567890"), 0, 11, S("1234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("1234567890"), 1, 0, S("klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("1234567890"), 1, 1, S("2klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("1234567890"), 1, 4, S("2345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("1234567890"), 1, 8, S("23456789klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("1234567890"), 1, 9, S("234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("1234567890"), 1, 10, S("234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("1234567890"), 5, 0, S("klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("1234567890"), 5, 1, S("6klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("1234567890"), 5, 2, S("67klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("1234567890"), 5, 4, S("6789klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("1234567890"), 5, 5, S("67890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("1234567890"), 5, 6, S("67890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("1234567890"), 9, 0, S("klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("1234567890"), 9, 1, S("0klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("1234567890"), 9, 2, S("0klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("1234567890"), 10, 0, S("klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("1234567890"), 10, 1, S("klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("12345678901234567890"), 0, 0, S("klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("12345678901234567890"), 0, 1, S("1klmnopqrst"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test39()
-{
- test(S("abcdefghijklmnopqrst"), 0, 10, S("12345678901234567890"), 0, 10, S("1234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, S("12345678901234567890"), 0, 19, S("1234567890123456789klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, S("12345678901234567890"), 0, 20, S("12345678901234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, S("12345678901234567890"), 0, 21, S("12345678901234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, S("12345678901234567890"), 1, 0, S("klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, S("12345678901234567890"), 1, 1, S("2klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, S("12345678901234567890"), 1, 9, S("234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, S("12345678901234567890"), 1, 18, S("234567890123456789klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, S("12345678901234567890"), 1, 19, S("2345678901234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, S("12345678901234567890"), 1, 20, S("2345678901234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, S("12345678901234567890"), 10, 0, S("klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, S("12345678901234567890"), 10, 1, S("1klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, S("12345678901234567890"), 10, 5, S("12345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, S("12345678901234567890"), 10, 9, S("123456789klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, S("12345678901234567890"), 10, 10, S("1234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, S("12345678901234567890"), 10, 11, S("1234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, S("12345678901234567890"), 19, 0, S("klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, S("12345678901234567890"), 19, 1, S("0klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, S("12345678901234567890"), 19, 2, S("0klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, S("12345678901234567890"), 20, 0, S("klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, S("12345678901234567890"), 20, 1, S("klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 0, 19, S(""), 0, 0, S("t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, S(""), 0, 1, S("t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, S(""), 1, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 0, 19, S("12345"), 0, 0, S("t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, S("12345"), 0, 1, S("1t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, S("12345"), 0, 2, S("12t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, S("12345"), 0, 4, S("1234t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, S("12345"), 0, 5, S("12345t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, S("12345"), 0, 6, S("12345t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, S("12345"), 1, 0, S("t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, S("12345"), 1, 1, S("2t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, S("12345"), 1, 2, S("23t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, S("12345"), 1, 3, S("234t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, S("12345"), 1, 4, S("2345t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, S("12345"), 1, 5, S("2345t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, S("12345"), 2, 0, S("t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, S("12345"), 2, 1, S("3t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, S("12345"), 2, 2, S("34t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, S("12345"), 2, 3, S("345t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, S("12345"), 2, 4, S("345t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, S("12345"), 4, 0, S("t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, S("12345"), 4, 1, S("5t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, S("12345"), 4, 2, S("5t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, S("12345"), 5, 0, S("t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, S("12345"), 5, 1, S("t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, S("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 0, 19, S("1234567890"), 0, 0, S("t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, S("1234567890"), 0, 1, S("1t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, S("1234567890"), 0, 5, S("12345t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, S("1234567890"), 0, 9, S("123456789t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, S("1234567890"), 0, 10, S("1234567890t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, S("1234567890"), 0, 11, S("1234567890t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, S("1234567890"), 1, 0, S("t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, S("1234567890"), 1, 1, S("2t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, S("1234567890"), 1, 4, S("2345t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, S("1234567890"), 1, 8, S("23456789t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, S("1234567890"), 1, 9, S("234567890t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, S("1234567890"), 1, 10, S("234567890t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, S("1234567890"), 5, 0, S("t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, S("1234567890"), 5, 1, S("6t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, S("1234567890"), 5, 2, S("67t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, S("1234567890"), 5, 4, S("6789t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, S("1234567890"), 5, 5, S("67890t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, S("1234567890"), 5, 6, S("67890t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, S("1234567890"), 9, 0, S("t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, S("1234567890"), 9, 1, S("0t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, S("1234567890"), 9, 2, S("0t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, S("1234567890"), 10, 0, S("t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, S("1234567890"), 10, 1, S("t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, S("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 0, 19, S("12345678901234567890"), 0, 0, S("t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, S("12345678901234567890"), 0, 1, S("1t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, S("12345678901234567890"), 0, 10, S("1234567890t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, S("12345678901234567890"), 0, 19, S("1234567890123456789t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, S("12345678901234567890"), 0, 20, S("12345678901234567890t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, S("12345678901234567890"), 0, 21, S("12345678901234567890t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, S("12345678901234567890"), 1, 0, S("t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, S("12345678901234567890"), 1, 1, S("2t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, S("12345678901234567890"), 1, 9, S("234567890t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, S("12345678901234567890"), 1, 18, S("234567890123456789t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, S("12345678901234567890"), 1, 19, S("2345678901234567890t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, S("12345678901234567890"), 1, 20, S("2345678901234567890t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, S("12345678901234567890"), 10, 0, S("t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, S("12345678901234567890"), 10, 1, S("1t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, S("12345678901234567890"), 10, 5, S("12345t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, S("12345678901234567890"), 10, 9, S("123456789t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, S("12345678901234567890"), 10, 10, S("1234567890t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, S("12345678901234567890"), 10, 11, S("1234567890t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, S("12345678901234567890"), 19, 0, S("t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, S("12345678901234567890"), 19, 1, S("0t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, S("12345678901234567890"), 19, 2, S("0t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, S("12345678901234567890"), 20, 0, S("t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, S("12345678901234567890"), 20, 1, S("t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 0, 20, S(""), 0, 0, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 20, S(""), 0, 1, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 20, S(""), 1, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 0, 20, S("12345"), 0, 0, S(""));
+TEST_CONSTEXPR_CXX20 bool test39() {
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("12345678901234567890"), 0, 10, S("1234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("12345678901234567890"), 0, 19, S("1234567890123456789klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("12345678901234567890"), 0, 20, S("12345678901234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("12345678901234567890"), 0, 21, S("12345678901234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("12345678901234567890"), 1, 0, S("klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("12345678901234567890"), 1, 1, S("2klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("12345678901234567890"), 1, 9, S("234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("12345678901234567890"), 1, 18, S("234567890123456789klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("12345678901234567890"), 1, 19, S("2345678901234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("12345678901234567890"), 1, 20, S("2345678901234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("12345678901234567890"), 10, 0, S("klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("12345678901234567890"), 10, 1, S("1klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("12345678901234567890"), 10, 5, S("12345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("12345678901234567890"), 10, 9, S("123456789klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("12345678901234567890"), 10, 10, S("1234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("12345678901234567890"), 10, 11, S("1234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("12345678901234567890"), 19, 0, S("klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("12345678901234567890"), 19, 1, S("0klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("12345678901234567890"), 19, 2, S("0klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("12345678901234567890"), 20, 0, S("klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("12345678901234567890"), 20, 1, S("klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, S(""), 0, 0, S("t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, S(""), 0, 1, S("t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, S(""), 1, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("12345"), 0, 0, S("t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("12345"), 0, 1, S("1t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("12345"), 0, 2, S("12t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("12345"), 0, 4, S("1234t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("12345"), 0, 5, S("12345t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("12345"), 0, 6, S("12345t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("12345"), 1, 0, S("t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("12345"), 1, 1, S("2t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("12345"), 1, 2, S("23t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("12345"), 1, 3, S("234t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("12345"), 1, 4, S("2345t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("12345"), 1, 5, S("2345t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("12345"), 2, 0, S("t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("12345"), 2, 1, S("3t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("12345"), 2, 2, S("34t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("12345"), 2, 3, S("345t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("12345"), 2, 4, S("345t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("12345"), 4, 0, S("t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("12345"), 4, 1, S("5t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("12345"), 4, 2, S("5t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("12345"), 5, 0, S("t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("12345"), 5, 1, S("t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("1234567890"), 0, 0, S("t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("1234567890"), 0, 1, S("1t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("1234567890"), 0, 5, S("12345t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("1234567890"), 0, 9, S("123456789t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("1234567890"), 0, 10, S("1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("1234567890"), 0, 11, S("1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("1234567890"), 1, 0, S("t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("1234567890"), 1, 1, S("2t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("1234567890"), 1, 4, S("2345t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("1234567890"), 1, 8, S("23456789t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("1234567890"), 1, 9, S("234567890t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("1234567890"), 1, 10, S("234567890t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("1234567890"), 5, 0, S("t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("1234567890"), 5, 1, S("6t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("1234567890"), 5, 2, S("67t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("1234567890"), 5, 4, S("6789t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("1234567890"), 5, 5, S("67890t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("1234567890"), 5, 6, S("67890t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("1234567890"), 9, 0, S("t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("1234567890"), 9, 1, S("0t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("1234567890"), 9, 2, S("0t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("1234567890"), 10, 0, S("t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("1234567890"), 10, 1, S("t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("12345678901234567890"), 0, 0, S("t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("12345678901234567890"), 0, 1, S("1t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("12345678901234567890"), 0, 10, S("1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("12345678901234567890"), 0, 19, S("1234567890123456789t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("12345678901234567890"), 0, 20, S("12345678901234567890t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("12345678901234567890"), 0, 21, S("12345678901234567890t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("12345678901234567890"), 1, 0, S("t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("12345678901234567890"), 1, 1, S("2t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("12345678901234567890"), 1, 9, S("234567890t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("12345678901234567890"), 1, 18, S("234567890123456789t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("12345678901234567890"), 1, 19, S("2345678901234567890t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("12345678901234567890"), 1, 20, S("2345678901234567890t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("12345678901234567890"), 10, 0, S("t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("12345678901234567890"), 10, 1, S("1t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("12345678901234567890"), 10, 5, S("12345t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("12345678901234567890"), 10, 9, S("123456789t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("12345678901234567890"), 10, 10, S("1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("12345678901234567890"), 10, 11, S("1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("12345678901234567890"), 19, 0, S("t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("12345678901234567890"), 19, 1, S("0t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("12345678901234567890"), 19, 2, S("0t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("12345678901234567890"), 20, 0, S("t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("12345678901234567890"), 20, 1, S("t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, S(""), 0, 0, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 20, S(""), 0, 1, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 20, S(""), 1, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("12345"), 0, 0, S(""));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test40()
-{
- test(S("abcdefghijklmnopqrst"), 0, 20, S("12345"), 0, 1, S("1"));
- test(S("abcdefghijklmnopqrst"), 0, 20, S("12345"), 0, 2, S("12"));
- test(S("abcdefghijklmnopqrst"), 0, 20, S("12345"), 0, 4, S("1234"));
- test(S("abcdefghijklmnopqrst"), 0, 20, S("12345"), 0, 5, S("12345"));
- test(S("abcdefghijklmnopqrst"), 0, 20, S("12345"), 0, 6, S("12345"));
- test(S("abcdefghijklmnopqrst"), 0, 20, S("12345"), 1, 0, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 20, S("12345"), 1, 1, S("2"));
- test(S("abcdefghijklmnopqrst"), 0, 20, S("12345"), 1, 2, S("23"));
- test(S("abcdefghijklmnopqrst"), 0, 20, S("12345"), 1, 3, S("234"));
- test(S("abcdefghijklmnopqrst"), 0, 20, S("12345"), 1, 4, S("2345"));
- test(S("abcdefghijklmnopqrst"), 0, 20, S("12345"), 1, 5, S("2345"));
- test(S("abcdefghijklmnopqrst"), 0, 20, S("12345"), 2, 0, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 20, S("12345"), 2, 1, S("3"));
- test(S("abcdefghijklmnopqrst"), 0, 20, S("12345"), 2, 2, S("34"));
- test(S("abcdefghijklmnopqrst"), 0, 20, S("12345"), 2, 3, S("345"));
- test(S("abcdefghijklmnopqrst"), 0, 20, S("12345"), 2, 4, S("345"));
- test(S("abcdefghijklmnopqrst"), 0, 20, S("12345"), 4, 0, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 20, S("12345"), 4, 1, S("5"));
- test(S("abcdefghijklmnopqrst"), 0, 20, S("12345"), 4, 2, S("5"));
- test(S("abcdefghijklmnopqrst"), 0, 20, S("12345"), 5, 0, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 20, S("12345"), 5, 1, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 20, S("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 0, 20, S("1234567890"), 0, 0, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 20, S("1234567890"), 0, 1, S("1"));
- test(S("abcdefghijklmnopqrst"), 0, 20, S("1234567890"), 0, 5, S("12345"));
- test(S("abcdefghijklmnopqrst"), 0, 20, S("1234567890"), 0, 9, S("123456789"));
- test(S("abcdefghijklmnopqrst"), 0, 20, S("1234567890"), 0, 10, S("1234567890"));
- test(S("abcdefghijklmnopqrst"), 0, 20, S("1234567890"), 0, 11, S("1234567890"));
- test(S("abcdefghijklmnopqrst"), 0, 20, S("1234567890"), 1, 0, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 20, S("1234567890"), 1, 1, S("2"));
- test(S("abcdefghijklmnopqrst"), 0, 20, S("1234567890"), 1, 4, S("2345"));
- test(S("abcdefghijklmnopqrst"), 0, 20, S("1234567890"), 1, 8, S("23456789"));
- test(S("abcdefghijklmnopqrst"), 0, 20, S("1234567890"), 1, 9, S("234567890"));
- test(S("abcdefghijklmnopqrst"), 0, 20, S("1234567890"), 1, 10, S("234567890"));
- test(S("abcdefghijklmnopqrst"), 0, 20, S("1234567890"), 5, 0, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 20, S("1234567890"), 5, 1, S("6"));
- test(S("abcdefghijklmnopqrst"), 0, 20, S("1234567890"), 5, 2, S("67"));
- test(S("abcdefghijklmnopqrst"), 0, 20, S("1234567890"), 5, 4, S("6789"));
- test(S("abcdefghijklmnopqrst"), 0, 20, S("1234567890"), 5, 5, S("67890"));
- test(S("abcdefghijklmnopqrst"), 0, 20, S("1234567890"), 5, 6, S("67890"));
- test(S("abcdefghijklmnopqrst"), 0, 20, S("1234567890"), 9, 0, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 20, S("1234567890"), 9, 1, S("0"));
- test(S("abcdefghijklmnopqrst"), 0, 20, S("1234567890"), 9, 2, S("0"));
- test(S("abcdefghijklmnopqrst"), 0, 20, S("1234567890"), 10, 0, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 20, S("1234567890"), 10, 1, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 20, S("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 0, 20, S("12345678901234567890"), 0, 0, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 20, S("12345678901234567890"), 0, 1, S("1"));
- test(S("abcdefghijklmnopqrst"), 0, 20, S("12345678901234567890"), 0, 10, S("1234567890"));
- test(S("abcdefghijklmnopqrst"), 0, 20, S("12345678901234567890"), 0, 19, S("1234567890123456789"));
- test(S("abcdefghijklmnopqrst"), 0, 20, S("12345678901234567890"), 0, 20, S("12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 0, 20, S("12345678901234567890"), 0, 21, S("12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 0, 20, S("12345678901234567890"), 1, 0, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 20, S("12345678901234567890"), 1, 1, S("2"));
- test(S("abcdefghijklmnopqrst"), 0, 20, S("12345678901234567890"), 1, 9, S("234567890"));
- test(S("abcdefghijklmnopqrst"), 0, 20, S("12345678901234567890"), 1, 18, S("234567890123456789"));
- test(S("abcdefghijklmnopqrst"), 0, 20, S("12345678901234567890"), 1, 19, S("2345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 0, 20, S("12345678901234567890"), 1, 20, S("2345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 0, 20, S("12345678901234567890"), 10, 0, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 20, S("12345678901234567890"), 10, 1, S("1"));
- test(S("abcdefghijklmnopqrst"), 0, 20, S("12345678901234567890"), 10, 5, S("12345"));
- test(S("abcdefghijklmnopqrst"), 0, 20, S("12345678901234567890"), 10, 9, S("123456789"));
- test(S("abcdefghijklmnopqrst"), 0, 20, S("12345678901234567890"), 10, 10, S("1234567890"));
- test(S("abcdefghijklmnopqrst"), 0, 20, S("12345678901234567890"), 10, 11, S("1234567890"));
- test(S("abcdefghijklmnopqrst"), 0, 20, S("12345678901234567890"), 19, 0, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 20, S("12345678901234567890"), 19, 1, S("0"));
- test(S("abcdefghijklmnopqrst"), 0, 20, S("12345678901234567890"), 19, 2, S("0"));
- test(S("abcdefghijklmnopqrst"), 0, 20, S("12345678901234567890"), 20, 0, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 20, S("12345678901234567890"), 20, 1, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 20, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 0, 21, S(""), 0, 0, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 21, S(""), 0, 1, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 21, S(""), 1, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 0, 21, S("12345"), 0, 0, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 21, S("12345"), 0, 1, S("1"));
- test(S("abcdefghijklmnopqrst"), 0, 21, S("12345"), 0, 2, S("12"));
- test(S("abcdefghijklmnopqrst"), 0, 21, S("12345"), 0, 4, S("1234"));
- test(S("abcdefghijklmnopqrst"), 0, 21, S("12345"), 0, 5, S("12345"));
- test(S("abcdefghijklmnopqrst"), 0, 21, S("12345"), 0, 6, S("12345"));
- test(S("abcdefghijklmnopqrst"), 0, 21, S("12345"), 1, 0, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 21, S("12345"), 1, 1, S("2"));
- test(S("abcdefghijklmnopqrst"), 0, 21, S("12345"), 1, 2, S("23"));
- test(S("abcdefghijklmnopqrst"), 0, 21, S("12345"), 1, 3, S("234"));
- test(S("abcdefghijklmnopqrst"), 0, 21, S("12345"), 1, 4, S("2345"));
- test(S("abcdefghijklmnopqrst"), 0, 21, S("12345"), 1, 5, S("2345"));
- test(S("abcdefghijklmnopqrst"), 0, 21, S("12345"), 2, 0, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 21, S("12345"), 2, 1, S("3"));
- test(S("abcdefghijklmnopqrst"), 0, 21, S("12345"), 2, 2, S("34"));
- test(S("abcdefghijklmnopqrst"), 0, 21, S("12345"), 2, 3, S("345"));
- test(S("abcdefghijklmnopqrst"), 0, 21, S("12345"), 2, 4, S("345"));
- test(S("abcdefghijklmnopqrst"), 0, 21, S("12345"), 4, 0, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 21, S("12345"), 4, 1, S("5"));
- test(S("abcdefghijklmnopqrst"), 0, 21, S("12345"), 4, 2, S("5"));
- test(S("abcdefghijklmnopqrst"), 0, 21, S("12345"), 5, 0, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 21, S("12345"), 5, 1, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 21, S("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 0, 21, S("1234567890"), 0, 0, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 21, S("1234567890"), 0, 1, S("1"));
- test(S("abcdefghijklmnopqrst"), 0, 21, S("1234567890"), 0, 5, S("12345"));
- test(S("abcdefghijklmnopqrst"), 0, 21, S("1234567890"), 0, 9, S("123456789"));
+TEST_CONSTEXPR_CXX20 bool test40() {
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("12345"), 0, 1, S("1"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("12345"), 0, 2, S("12"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("12345"), 0, 4, S("1234"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("12345"), 0, 5, S("12345"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("12345"), 0, 6, S("12345"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("12345"), 1, 0, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("12345"), 1, 1, S("2"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("12345"), 1, 2, S("23"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("12345"), 1, 3, S("234"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("12345"), 1, 4, S("2345"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("12345"), 1, 5, S("2345"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("12345"), 2, 0, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("12345"), 2, 1, S("3"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("12345"), 2, 2, S("34"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("12345"), 2, 3, S("345"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("12345"), 2, 4, S("345"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("12345"), 4, 0, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("12345"), 4, 1, S("5"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("12345"), 4, 2, S("5"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("12345"), 5, 0, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("12345"), 5, 1, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("1234567890"), 0, 0, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("1234567890"), 0, 1, S("1"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("1234567890"), 0, 5, S("12345"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("1234567890"), 0, 9, S("123456789"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("1234567890"), 0, 10, S("1234567890"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("1234567890"), 0, 11, S("1234567890"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("1234567890"), 1, 0, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("1234567890"), 1, 1, S("2"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("1234567890"), 1, 4, S("2345"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("1234567890"), 1, 8, S("23456789"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("1234567890"), 1, 9, S("234567890"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("1234567890"), 1, 10, S("234567890"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("1234567890"), 5, 0, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("1234567890"), 5, 1, S("6"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("1234567890"), 5, 2, S("67"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("1234567890"), 5, 4, S("6789"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("1234567890"), 5, 5, S("67890"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("1234567890"), 5, 6, S("67890"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("1234567890"), 9, 0, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("1234567890"), 9, 1, S("0"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("1234567890"), 9, 2, S("0"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("1234567890"), 10, 0, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("1234567890"), 10, 1, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("12345678901234567890"), 0, 0, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("12345678901234567890"), 0, 1, S("1"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("12345678901234567890"), 0, 10, S("1234567890"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("12345678901234567890"), 0, 19, S("1234567890123456789"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("12345678901234567890"), 0, 20, S("12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("12345678901234567890"), 0, 21, S("12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("12345678901234567890"), 1, 0, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("12345678901234567890"), 1, 1, S("2"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("12345678901234567890"), 1, 9, S("234567890"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("12345678901234567890"), 1, 18, S("234567890123456789"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("12345678901234567890"), 1, 19, S("2345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("12345678901234567890"), 1, 20, S("2345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("12345678901234567890"), 10, 0, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("12345678901234567890"), 10, 1, S("1"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("12345678901234567890"), 10, 5, S("12345"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("12345678901234567890"), 10, 9, S("123456789"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("12345678901234567890"), 10, 10, S("1234567890"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("12345678901234567890"), 10, 11, S("1234567890"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("12345678901234567890"), 19, 0, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("12345678901234567890"), 19, 1, S("0"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("12345678901234567890"), 19, 2, S("0"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("12345678901234567890"), 20, 0, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("12345678901234567890"), 20, 1, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, S(""), 0, 0, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 21, S(""), 0, 1, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 21, S(""), 1, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("12345"), 0, 0, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("12345"), 0, 1, S("1"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("12345"), 0, 2, S("12"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("12345"), 0, 4, S("1234"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("12345"), 0, 5, S("12345"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("12345"), 0, 6, S("12345"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("12345"), 1, 0, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("12345"), 1, 1, S("2"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("12345"), 1, 2, S("23"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("12345"), 1, 3, S("234"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("12345"), 1, 4, S("2345"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("12345"), 1, 5, S("2345"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("12345"), 2, 0, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("12345"), 2, 1, S("3"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("12345"), 2, 2, S("34"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("12345"), 2, 3, S("345"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("12345"), 2, 4, S("345"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("12345"), 4, 0, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("12345"), 4, 1, S("5"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("12345"), 4, 2, S("5"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("12345"), 5, 0, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("12345"), 5, 1, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("1234567890"), 0, 0, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("1234567890"), 0, 1, S("1"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("1234567890"), 0, 5, S("12345"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("1234567890"), 0, 9, S("123456789"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test41()
-{
- test(S("abcdefghijklmnopqrst"), 0, 21, S("1234567890"), 0, 10, S("1234567890"));
- test(S("abcdefghijklmnopqrst"), 0, 21, S("1234567890"), 0, 11, S("1234567890"));
- test(S("abcdefghijklmnopqrst"), 0, 21, S("1234567890"), 1, 0, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 21, S("1234567890"), 1, 1, S("2"));
- test(S("abcdefghijklmnopqrst"), 0, 21, S("1234567890"), 1, 4, S("2345"));
- test(S("abcdefghijklmnopqrst"), 0, 21, S("1234567890"), 1, 8, S("23456789"));
- test(S("abcdefghijklmnopqrst"), 0, 21, S("1234567890"), 1, 9, S("234567890"));
- test(S("abcdefghijklmnopqrst"), 0, 21, S("1234567890"), 1, 10, S("234567890"));
- test(S("abcdefghijklmnopqrst"), 0, 21, S("1234567890"), 5, 0, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 21, S("1234567890"), 5, 1, S("6"));
- test(S("abcdefghijklmnopqrst"), 0, 21, S("1234567890"), 5, 2, S("67"));
- test(S("abcdefghijklmnopqrst"), 0, 21, S("1234567890"), 5, 4, S("6789"));
- test(S("abcdefghijklmnopqrst"), 0, 21, S("1234567890"), 5, 5, S("67890"));
- test(S("abcdefghijklmnopqrst"), 0, 21, S("1234567890"), 5, 6, S("67890"));
- test(S("abcdefghijklmnopqrst"), 0, 21, S("1234567890"), 9, 0, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 21, S("1234567890"), 9, 1, S("0"));
- test(S("abcdefghijklmnopqrst"), 0, 21, S("1234567890"), 9, 2, S("0"));
- test(S("abcdefghijklmnopqrst"), 0, 21, S("1234567890"), 10, 0, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 21, S("1234567890"), 10, 1, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 21, S("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 0, 21, S("12345678901234567890"), 0, 0, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 21, S("12345678901234567890"), 0, 1, S("1"));
- test(S("abcdefghijklmnopqrst"), 0, 21, S("12345678901234567890"), 0, 10, S("1234567890"));
- test(S("abcdefghijklmnopqrst"), 0, 21, S("12345678901234567890"), 0, 19, S("1234567890123456789"));
- test(S("abcdefghijklmnopqrst"), 0, 21, S("12345678901234567890"), 0, 20, S("12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 0, 21, S("12345678901234567890"), 0, 21, S("12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 0, 21, S("12345678901234567890"), 1, 0, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 21, S("12345678901234567890"), 1, 1, S("2"));
- test(S("abcdefghijklmnopqrst"), 0, 21, S("12345678901234567890"), 1, 9, S("234567890"));
- test(S("abcdefghijklmnopqrst"), 0, 21, S("12345678901234567890"), 1, 18, S("234567890123456789"));
- test(S("abcdefghijklmnopqrst"), 0, 21, S("12345678901234567890"), 1, 19, S("2345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 0, 21, S("12345678901234567890"), 1, 20, S("2345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 0, 21, S("12345678901234567890"), 10, 0, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 21, S("12345678901234567890"), 10, 1, S("1"));
- test(S("abcdefghijklmnopqrst"), 0, 21, S("12345678901234567890"), 10, 5, S("12345"));
- test(S("abcdefghijklmnopqrst"), 0, 21, S("12345678901234567890"), 10, 9, S("123456789"));
- test(S("abcdefghijklmnopqrst"), 0, 21, S("12345678901234567890"), 10, 10, S("1234567890"));
- test(S("abcdefghijklmnopqrst"), 0, 21, S("12345678901234567890"), 10, 11, S("1234567890"));
- test(S("abcdefghijklmnopqrst"), 0, 21, S("12345678901234567890"), 19, 0, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 21, S("12345678901234567890"), 19, 1, S("0"));
- test(S("abcdefghijklmnopqrst"), 0, 21, S("12345678901234567890"), 19, 2, S("0"));
- test(S("abcdefghijklmnopqrst"), 0, 21, S("12345678901234567890"), 20, 0, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 21, S("12345678901234567890"), 20, 1, S(""));
- test(S("abcdefghijklmnopqrst"), 0, 21, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 1, 0, S(""), 0, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, S(""), 0, 1, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, S(""), 1, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 1, 0, S("12345"), 0, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, S("12345"), 0, 1, S("a1bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, S("12345"), 0, 2, S("a12bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, S("12345"), 0, 4, S("a1234bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, S("12345"), 0, 5, S("a12345bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, S("12345"), 0, 6, S("a12345bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, S("12345"), 1, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, S("12345"), 1, 1, S("a2bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, S("12345"), 1, 2, S("a23bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, S("12345"), 1, 3, S("a234bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, S("12345"), 1, 4, S("a2345bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, S("12345"), 1, 5, S("a2345bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, S("12345"), 2, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, S("12345"), 2, 1, S("a3bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, S("12345"), 2, 2, S("a34bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, S("12345"), 2, 3, S("a345bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, S("12345"), 2, 4, S("a345bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, S("12345"), 4, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, S("12345"), 4, 1, S("a5bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, S("12345"), 4, 2, S("a5bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, S("12345"), 5, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, S("12345"), 5, 1, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, S("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 1, 0, S("1234567890"), 0, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, S("1234567890"), 0, 1, S("a1bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, S("1234567890"), 0, 5, S("a12345bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, S("1234567890"), 0, 9, S("a123456789bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, S("1234567890"), 0, 10, S("a1234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, S("1234567890"), 0, 11, S("a1234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, S("1234567890"), 1, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, S("1234567890"), 1, 1, S("a2bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, S("1234567890"), 1, 4, S("a2345bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, S("1234567890"), 1, 8, S("a23456789bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, S("1234567890"), 1, 9, S("a234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, S("1234567890"), 1, 10, S("a234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, S("1234567890"), 5, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, S("1234567890"), 5, 1, S("a6bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, S("1234567890"), 5, 2, S("a67bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, S("1234567890"), 5, 4, S("a6789bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, S("1234567890"), 5, 5, S("a67890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, S("1234567890"), 5, 6, S("a67890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, S("1234567890"), 9, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, S("1234567890"), 9, 1, S("a0bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, S("1234567890"), 9, 2, S("a0bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, S("1234567890"), 10, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, S("1234567890"), 10, 1, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, S("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 1, 0, S("12345678901234567890"), 0, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, S("12345678901234567890"), 0, 1, S("a1bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, S("12345678901234567890"), 0, 10, S("a1234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, S("12345678901234567890"), 0, 19, S("a1234567890123456789bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, S("12345678901234567890"), 0, 20, S("a12345678901234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, S("12345678901234567890"), 0, 21, S("a12345678901234567890bcdefghijklmnopqrst"));
+TEST_CONSTEXPR_CXX20 bool test41() {
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("1234567890"), 0, 10, S("1234567890"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("1234567890"), 0, 11, S("1234567890"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("1234567890"), 1, 0, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("1234567890"), 1, 1, S("2"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("1234567890"), 1, 4, S("2345"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("1234567890"), 1, 8, S("23456789"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("1234567890"), 1, 9, S("234567890"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("1234567890"), 1, 10, S("234567890"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("1234567890"), 5, 0, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("1234567890"), 5, 1, S("6"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("1234567890"), 5, 2, S("67"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("1234567890"), 5, 4, S("6789"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("1234567890"), 5, 5, S("67890"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("1234567890"), 5, 6, S("67890"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("1234567890"), 9, 0, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("1234567890"), 9, 1, S("0"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("1234567890"), 9, 2, S("0"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("1234567890"), 10, 0, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("1234567890"), 10, 1, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("12345678901234567890"), 0, 0, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("12345678901234567890"), 0, 1, S("1"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("12345678901234567890"), 0, 10, S("1234567890"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("12345678901234567890"), 0, 19, S("1234567890123456789"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("12345678901234567890"), 0, 20, S("12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("12345678901234567890"), 0, 21, S("12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("12345678901234567890"), 1, 0, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("12345678901234567890"), 1, 1, S("2"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("12345678901234567890"), 1, 9, S("234567890"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("12345678901234567890"), 1, 18, S("234567890123456789"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("12345678901234567890"), 1, 19, S("2345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("12345678901234567890"), 1, 20, S("2345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("12345678901234567890"), 10, 0, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("12345678901234567890"), 10, 1, S("1"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("12345678901234567890"), 10, 5, S("12345"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("12345678901234567890"), 10, 9, S("123456789"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("12345678901234567890"), 10, 10, S("1234567890"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("12345678901234567890"), 10, 11, S("1234567890"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("12345678901234567890"), 19, 0, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("12345678901234567890"), 19, 1, S("0"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("12345678901234567890"), 19, 2, S("0"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("12345678901234567890"), 20, 0, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("12345678901234567890"), 20, 1, S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, S(""), 0, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, S(""), 0, 1, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, S(""), 1, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("12345"), 0, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("12345"), 0, 1, S("a1bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("12345"), 0, 2, S("a12bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("12345"), 0, 4, S("a1234bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("12345"), 0, 5, S("a12345bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("12345"), 0, 6, S("a12345bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("12345"), 1, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("12345"), 1, 1, S("a2bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("12345"), 1, 2, S("a23bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("12345"), 1, 3, S("a234bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("12345"), 1, 4, S("a2345bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("12345"), 1, 5, S("a2345bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("12345"), 2, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("12345"), 2, 1, S("a3bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("12345"), 2, 2, S("a34bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("12345"), 2, 3, S("a345bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("12345"), 2, 4, S("a345bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("12345"), 4, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("12345"), 4, 1, S("a5bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("12345"), 4, 2, S("a5bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("12345"), 5, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("12345"), 5, 1, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("1234567890"), 0, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("1234567890"), 0, 1, S("a1bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("1234567890"), 0, 5, S("a12345bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("1234567890"), 0, 9, S("a123456789bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("1234567890"), 0, 10, S("a1234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("1234567890"), 0, 11, S("a1234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("1234567890"), 1, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("1234567890"), 1, 1, S("a2bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("1234567890"), 1, 4, S("a2345bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("1234567890"), 1, 8, S("a23456789bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("1234567890"), 1, 9, S("a234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("1234567890"), 1, 10, S("a234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("1234567890"), 5, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("1234567890"), 5, 1, S("a6bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("1234567890"), 5, 2, S("a67bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("1234567890"), 5, 4, S("a6789bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("1234567890"), 5, 5, S("a67890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("1234567890"), 5, 6, S("a67890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("1234567890"), 9, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("1234567890"), 9, 1, S("a0bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("1234567890"), 9, 2, S("a0bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("1234567890"), 10, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("1234567890"), 10, 1, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("12345678901234567890"), 0, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("12345678901234567890"), 0, 1, S("a1bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("12345678901234567890"), 0, 10, S("a1234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("12345678901234567890"), 0, 19, S("a1234567890123456789bcdefghijklmnopqrst"));
+ test(
+ S("abcdefghijklmnopqrst"), 1, 0, S("12345678901234567890"), 0, 20, S("a12345678901234567890bcdefghijklmnopqrst"));
+ test(
+ S("abcdefghijklmnopqrst"), 1, 0, S("12345678901234567890"), 0, 21, S("a12345678901234567890bcdefghijklmnopqrst"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test42()
-{
- test(S("abcdefghijklmnopqrst"), 1, 0, S("12345678901234567890"), 1, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, S("12345678901234567890"), 1, 1, S("a2bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, S("12345678901234567890"), 1, 9, S("a234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, S("12345678901234567890"), 1, 18, S("a234567890123456789bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, S("12345678901234567890"), 1, 19, S("a2345678901234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, S("12345678901234567890"), 1, 20, S("a2345678901234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, S("12345678901234567890"), 10, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, S("12345678901234567890"), 10, 1, S("a1bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, S("12345678901234567890"), 10, 5, S("a12345bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, S("12345678901234567890"), 10, 9, S("a123456789bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, S("12345678901234567890"), 10, 10, S("a1234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, S("12345678901234567890"), 10, 11, S("a1234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, S("12345678901234567890"), 19, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, S("12345678901234567890"), 19, 1, S("a0bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, S("12345678901234567890"), 19, 2, S("a0bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, S("12345678901234567890"), 20, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, S("12345678901234567890"), 20, 1, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 1, 1, S(""), 0, 0, S("acdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, S(""), 0, 1, S("acdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, S(""), 1, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 1, 1, S("12345"), 0, 0, S("acdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, S("12345"), 0, 1, S("a1cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, S("12345"), 0, 2, S("a12cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, S("12345"), 0, 4, S("a1234cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, S("12345"), 0, 5, S("a12345cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, S("12345"), 0, 6, S("a12345cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, S("12345"), 1, 0, S("acdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, S("12345"), 1, 1, S("a2cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, S("12345"), 1, 2, S("a23cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, S("12345"), 1, 3, S("a234cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, S("12345"), 1, 4, S("a2345cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, S("12345"), 1, 5, S("a2345cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, S("12345"), 2, 0, S("acdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, S("12345"), 2, 1, S("a3cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, S("12345"), 2, 2, S("a34cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, S("12345"), 2, 3, S("a345cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, S("12345"), 2, 4, S("a345cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, S("12345"), 4, 0, S("acdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, S("12345"), 4, 1, S("a5cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, S("12345"), 4, 2, S("a5cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, S("12345"), 5, 0, S("acdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, S("12345"), 5, 1, S("acdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, S("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 1, 1, S("1234567890"), 0, 0, S("acdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, S("1234567890"), 0, 1, S("a1cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, S("1234567890"), 0, 5, S("a12345cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, S("1234567890"), 0, 9, S("a123456789cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, S("1234567890"), 0, 10, S("a1234567890cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, S("1234567890"), 0, 11, S("a1234567890cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, S("1234567890"), 1, 0, S("acdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, S("1234567890"), 1, 1, S("a2cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, S("1234567890"), 1, 4, S("a2345cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, S("1234567890"), 1, 8, S("a23456789cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, S("1234567890"), 1, 9, S("a234567890cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, S("1234567890"), 1, 10, S("a234567890cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, S("1234567890"), 5, 0, S("acdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, S("1234567890"), 5, 1, S("a6cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, S("1234567890"), 5, 2, S("a67cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, S("1234567890"), 5, 4, S("a6789cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, S("1234567890"), 5, 5, S("a67890cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, S("1234567890"), 5, 6, S("a67890cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, S("1234567890"), 9, 0, S("acdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, S("1234567890"), 9, 1, S("a0cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, S("1234567890"), 9, 2, S("a0cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, S("1234567890"), 10, 0, S("acdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, S("1234567890"), 10, 1, S("acdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, S("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 1, 1, S("12345678901234567890"), 0, 0, S("acdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, S("12345678901234567890"), 0, 1, S("a1cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, S("12345678901234567890"), 0, 10, S("a1234567890cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, S("12345678901234567890"), 0, 19, S("a1234567890123456789cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, S("12345678901234567890"), 0, 20, S("a12345678901234567890cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, S("12345678901234567890"), 0, 21, S("a12345678901234567890cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, S("12345678901234567890"), 1, 0, S("acdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, S("12345678901234567890"), 1, 1, S("a2cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, S("12345678901234567890"), 1, 9, S("a234567890cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, S("12345678901234567890"), 1, 18, S("a234567890123456789cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, S("12345678901234567890"), 1, 19, S("a2345678901234567890cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, S("12345678901234567890"), 1, 20, S("a2345678901234567890cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, S("12345678901234567890"), 10, 0, S("acdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, S("12345678901234567890"), 10, 1, S("a1cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, S("12345678901234567890"), 10, 5, S("a12345cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, S("12345678901234567890"), 10, 9, S("a123456789cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, S("12345678901234567890"), 10, 10, S("a1234567890cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, S("12345678901234567890"), 10, 11, S("a1234567890cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, S("12345678901234567890"), 19, 0, S("acdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, S("12345678901234567890"), 19, 1, S("a0cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, S("12345678901234567890"), 19, 2, S("a0cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, S("12345678901234567890"), 20, 0, S("acdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, S("12345678901234567890"), 20, 1, S("acdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 1, 9, S(""), 0, 0, S("aklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, S(""), 0, 1, S("aklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, S(""), 1, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 1, 9, S("12345"), 0, 0, S("aklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, S("12345"), 0, 1, S("a1klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, S("12345"), 0, 2, S("a12klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, S("12345"), 0, 4, S("a1234klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, S("12345"), 0, 5, S("a12345klmnopqrst"));
+TEST_CONSTEXPR_CXX20 bool test42() {
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("12345678901234567890"), 1, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("12345678901234567890"), 1, 1, S("a2bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("12345678901234567890"), 1, 9, S("a234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("12345678901234567890"), 1, 18, S("a234567890123456789bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("12345678901234567890"), 1, 19, S("a2345678901234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("12345678901234567890"), 1, 20, S("a2345678901234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("12345678901234567890"), 10, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("12345678901234567890"), 10, 1, S("a1bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("12345678901234567890"), 10, 5, S("a12345bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("12345678901234567890"), 10, 9, S("a123456789bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("12345678901234567890"), 10, 10, S("a1234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("12345678901234567890"), 10, 11, S("a1234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("12345678901234567890"), 19, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("12345678901234567890"), 19, 1, S("a0bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("12345678901234567890"), 19, 2, S("a0bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("12345678901234567890"), 20, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("12345678901234567890"), 20, 1, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, S(""), 0, 0, S("acdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, S(""), 0, 1, S("acdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, S(""), 1, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("12345"), 0, 0, S("acdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("12345"), 0, 1, S("a1cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("12345"), 0, 2, S("a12cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("12345"), 0, 4, S("a1234cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("12345"), 0, 5, S("a12345cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("12345"), 0, 6, S("a12345cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("12345"), 1, 0, S("acdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("12345"), 1, 1, S("a2cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("12345"), 1, 2, S("a23cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("12345"), 1, 3, S("a234cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("12345"), 1, 4, S("a2345cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("12345"), 1, 5, S("a2345cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("12345"), 2, 0, S("acdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("12345"), 2, 1, S("a3cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("12345"), 2, 2, S("a34cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("12345"), 2, 3, S("a345cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("12345"), 2, 4, S("a345cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("12345"), 4, 0, S("acdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("12345"), 4, 1, S("a5cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("12345"), 4, 2, S("a5cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("12345"), 5, 0, S("acdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("12345"), 5, 1, S("acdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("1234567890"), 0, 0, S("acdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("1234567890"), 0, 1, S("a1cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("1234567890"), 0, 5, S("a12345cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("1234567890"), 0, 9, S("a123456789cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("1234567890"), 0, 10, S("a1234567890cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("1234567890"), 0, 11, S("a1234567890cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("1234567890"), 1, 0, S("acdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("1234567890"), 1, 1, S("a2cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("1234567890"), 1, 4, S("a2345cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("1234567890"), 1, 8, S("a23456789cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("1234567890"), 1, 9, S("a234567890cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("1234567890"), 1, 10, S("a234567890cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("1234567890"), 5, 0, S("acdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("1234567890"), 5, 1, S("a6cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("1234567890"), 5, 2, S("a67cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("1234567890"), 5, 4, S("a6789cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("1234567890"), 5, 5, S("a67890cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("1234567890"), 5, 6, S("a67890cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("1234567890"), 9, 0, S("acdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("1234567890"), 9, 1, S("a0cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("1234567890"), 9, 2, S("a0cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("1234567890"), 10, 0, S("acdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("1234567890"), 10, 1, S("acdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("12345678901234567890"), 0, 0, S("acdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("12345678901234567890"), 0, 1, S("a1cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("12345678901234567890"), 0, 10, S("a1234567890cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("12345678901234567890"), 0, 19, S("a1234567890123456789cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("12345678901234567890"), 0, 20, S("a12345678901234567890cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("12345678901234567890"), 0, 21, S("a12345678901234567890cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("12345678901234567890"), 1, 0, S("acdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("12345678901234567890"), 1, 1, S("a2cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("12345678901234567890"), 1, 9, S("a234567890cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("12345678901234567890"), 1, 18, S("a234567890123456789cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("12345678901234567890"), 1, 19, S("a2345678901234567890cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("12345678901234567890"), 1, 20, S("a2345678901234567890cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("12345678901234567890"), 10, 0, S("acdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("12345678901234567890"), 10, 1, S("a1cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("12345678901234567890"), 10, 5, S("a12345cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("12345678901234567890"), 10, 9, S("a123456789cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("12345678901234567890"), 10, 10, S("a1234567890cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("12345678901234567890"), 10, 11, S("a1234567890cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("12345678901234567890"), 19, 0, S("acdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("12345678901234567890"), 19, 1, S("a0cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("12345678901234567890"), 19, 2, S("a0cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("12345678901234567890"), 20, 0, S("acdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("12345678901234567890"), 20, 1, S("acdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, S(""), 0, 0, S("aklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, S(""), 0, 1, S("aklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, S(""), 1, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("12345"), 0, 0, S("aklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("12345"), 0, 1, S("a1klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("12345"), 0, 2, S("a12klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("12345"), 0, 4, S("a1234klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("12345"), 0, 5, S("a12345klmnopqrst"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test43()
-{
- test(S("abcdefghijklmnopqrst"), 1, 9, S("12345"), 0, 6, S("a12345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, S("12345"), 1, 0, S("aklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, S("12345"), 1, 1, S("a2klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, S("12345"), 1, 2, S("a23klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, S("12345"), 1, 3, S("a234klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, S("12345"), 1, 4, S("a2345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, S("12345"), 1, 5, S("a2345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, S("12345"), 2, 0, S("aklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, S("12345"), 2, 1, S("a3klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, S("12345"), 2, 2, S("a34klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, S("12345"), 2, 3, S("a345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, S("12345"), 2, 4, S("a345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, S("12345"), 4, 0, S("aklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, S("12345"), 4, 1, S("a5klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, S("12345"), 4, 2, S("a5klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, S("12345"), 5, 0, S("aklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, S("12345"), 5, 1, S("aklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, S("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 1, 9, S("1234567890"), 0, 0, S("aklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, S("1234567890"), 0, 1, S("a1klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, S("1234567890"), 0, 5, S("a12345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, S("1234567890"), 0, 9, S("a123456789klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, S("1234567890"), 0, 10, S("a1234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, S("1234567890"), 0, 11, S("a1234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, S("1234567890"), 1, 0, S("aklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, S("1234567890"), 1, 1, S("a2klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, S("1234567890"), 1, 4, S("a2345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, S("1234567890"), 1, 8, S("a23456789klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, S("1234567890"), 1, 9, S("a234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, S("1234567890"), 1, 10, S("a234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, S("1234567890"), 5, 0, S("aklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, S("1234567890"), 5, 1, S("a6klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, S("1234567890"), 5, 2, S("a67klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, S("1234567890"), 5, 4, S("a6789klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, S("1234567890"), 5, 5, S("a67890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, S("1234567890"), 5, 6, S("a67890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, S("1234567890"), 9, 0, S("aklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, S("1234567890"), 9, 1, S("a0klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, S("1234567890"), 9, 2, S("a0klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, S("1234567890"), 10, 0, S("aklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, S("1234567890"), 10, 1, S("aklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, S("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 1, 9, S("12345678901234567890"), 0, 0, S("aklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, S("12345678901234567890"), 0, 1, S("a1klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, S("12345678901234567890"), 0, 10, S("a1234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, S("12345678901234567890"), 0, 19, S("a1234567890123456789klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, S("12345678901234567890"), 0, 20, S("a12345678901234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, S("12345678901234567890"), 0, 21, S("a12345678901234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, S("12345678901234567890"), 1, 0, S("aklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, S("12345678901234567890"), 1, 1, S("a2klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, S("12345678901234567890"), 1, 9, S("a234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, S("12345678901234567890"), 1, 18, S("a234567890123456789klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, S("12345678901234567890"), 1, 19, S("a2345678901234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, S("12345678901234567890"), 1, 20, S("a2345678901234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, S("12345678901234567890"), 10, 0, S("aklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, S("12345678901234567890"), 10, 1, S("a1klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, S("12345678901234567890"), 10, 5, S("a12345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, S("12345678901234567890"), 10, 9, S("a123456789klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, S("12345678901234567890"), 10, 10, S("a1234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, S("12345678901234567890"), 10, 11, S("a1234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, S("12345678901234567890"), 19, 0, S("aklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, S("12345678901234567890"), 19, 1, S("a0klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, S("12345678901234567890"), 19, 2, S("a0klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, S("12345678901234567890"), 20, 0, S("aklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, S("12345678901234567890"), 20, 1, S("aklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 1, 18, S(""), 0, 0, S("at"));
- test(S("abcdefghijklmnopqrst"), 1, 18, S(""), 0, 1, S("at"));
- test(S("abcdefghijklmnopqrst"), 1, 18, S(""), 1, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 1, 18, S("12345"), 0, 0, S("at"));
- test(S("abcdefghijklmnopqrst"), 1, 18, S("12345"), 0, 1, S("a1t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, S("12345"), 0, 2, S("a12t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, S("12345"), 0, 4, S("a1234t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, S("12345"), 0, 5, S("a12345t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, S("12345"), 0, 6, S("a12345t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, S("12345"), 1, 0, S("at"));
- test(S("abcdefghijklmnopqrst"), 1, 18, S("12345"), 1, 1, S("a2t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, S("12345"), 1, 2, S("a23t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, S("12345"), 1, 3, S("a234t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, S("12345"), 1, 4, S("a2345t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, S("12345"), 1, 5, S("a2345t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, S("12345"), 2, 0, S("at"));
- test(S("abcdefghijklmnopqrst"), 1, 18, S("12345"), 2, 1, S("a3t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, S("12345"), 2, 2, S("a34t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, S("12345"), 2, 3, S("a345t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, S("12345"), 2, 4, S("a345t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, S("12345"), 4, 0, S("at"));
- test(S("abcdefghijklmnopqrst"), 1, 18, S("12345"), 4, 1, S("a5t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, S("12345"), 4, 2, S("a5t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, S("12345"), 5, 0, S("at"));
- test(S("abcdefghijklmnopqrst"), 1, 18, S("12345"), 5, 1, S("at"));
- test(S("abcdefghijklmnopqrst"), 1, 18, S("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 1, 18, S("1234567890"), 0, 0, S("at"));
- test(S("abcdefghijklmnopqrst"), 1, 18, S("1234567890"), 0, 1, S("a1t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, S("1234567890"), 0, 5, S("a12345t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, S("1234567890"), 0, 9, S("a123456789t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, S("1234567890"), 0, 10, S("a1234567890t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, S("1234567890"), 0, 11, S("a1234567890t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, S("1234567890"), 1, 0, S("at"));
- test(S("abcdefghijklmnopqrst"), 1, 18, S("1234567890"), 1, 1, S("a2t"));
+TEST_CONSTEXPR_CXX20 bool test43() {
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("12345"), 0, 6, S("a12345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("12345"), 1, 0, S("aklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("12345"), 1, 1, S("a2klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("12345"), 1, 2, S("a23klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("12345"), 1, 3, S("a234klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("12345"), 1, 4, S("a2345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("12345"), 1, 5, S("a2345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("12345"), 2, 0, S("aklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("12345"), 2, 1, S("a3klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("12345"), 2, 2, S("a34klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("12345"), 2, 3, S("a345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("12345"), 2, 4, S("a345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("12345"), 4, 0, S("aklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("12345"), 4, 1, S("a5klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("12345"), 4, 2, S("a5klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("12345"), 5, 0, S("aklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("12345"), 5, 1, S("aklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("1234567890"), 0, 0, S("aklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("1234567890"), 0, 1, S("a1klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("1234567890"), 0, 5, S("a12345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("1234567890"), 0, 9, S("a123456789klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("1234567890"), 0, 10, S("a1234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("1234567890"), 0, 11, S("a1234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("1234567890"), 1, 0, S("aklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("1234567890"), 1, 1, S("a2klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("1234567890"), 1, 4, S("a2345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("1234567890"), 1, 8, S("a23456789klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("1234567890"), 1, 9, S("a234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("1234567890"), 1, 10, S("a234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("1234567890"), 5, 0, S("aklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("1234567890"), 5, 1, S("a6klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("1234567890"), 5, 2, S("a67klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("1234567890"), 5, 4, S("a6789klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("1234567890"), 5, 5, S("a67890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("1234567890"), 5, 6, S("a67890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("1234567890"), 9, 0, S("aklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("1234567890"), 9, 1, S("a0klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("1234567890"), 9, 2, S("a0klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("1234567890"), 10, 0, S("aklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("1234567890"), 10, 1, S("aklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("12345678901234567890"), 0, 0, S("aklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("12345678901234567890"), 0, 1, S("a1klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("12345678901234567890"), 0, 10, S("a1234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("12345678901234567890"), 0, 19, S("a1234567890123456789klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("12345678901234567890"), 0, 20, S("a12345678901234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("12345678901234567890"), 0, 21, S("a12345678901234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("12345678901234567890"), 1, 0, S("aklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("12345678901234567890"), 1, 1, S("a2klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("12345678901234567890"), 1, 9, S("a234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("12345678901234567890"), 1, 18, S("a234567890123456789klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("12345678901234567890"), 1, 19, S("a2345678901234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("12345678901234567890"), 1, 20, S("a2345678901234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("12345678901234567890"), 10, 0, S("aklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("12345678901234567890"), 10, 1, S("a1klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("12345678901234567890"), 10, 5, S("a12345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("12345678901234567890"), 10, 9, S("a123456789klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("12345678901234567890"), 10, 10, S("a1234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("12345678901234567890"), 10, 11, S("a1234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("12345678901234567890"), 19, 0, S("aklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("12345678901234567890"), 19, 1, S("a0klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("12345678901234567890"), 19, 2, S("a0klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("12345678901234567890"), 20, 0, S("aklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("12345678901234567890"), 20, 1, S("aklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, S(""), 0, 0, S("at"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, S(""), 0, 1, S("at"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, S(""), 1, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("12345"), 0, 0, S("at"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("12345"), 0, 1, S("a1t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("12345"), 0, 2, S("a12t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("12345"), 0, 4, S("a1234t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("12345"), 0, 5, S("a12345t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("12345"), 0, 6, S("a12345t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("12345"), 1, 0, S("at"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("12345"), 1, 1, S("a2t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("12345"), 1, 2, S("a23t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("12345"), 1, 3, S("a234t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("12345"), 1, 4, S("a2345t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("12345"), 1, 5, S("a2345t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("12345"), 2, 0, S("at"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("12345"), 2, 1, S("a3t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("12345"), 2, 2, S("a34t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("12345"), 2, 3, S("a345t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("12345"), 2, 4, S("a345t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("12345"), 4, 0, S("at"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("12345"), 4, 1, S("a5t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("12345"), 4, 2, S("a5t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("12345"), 5, 0, S("at"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("12345"), 5, 1, S("at"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("1234567890"), 0, 0, S("at"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("1234567890"), 0, 1, S("a1t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("1234567890"), 0, 5, S("a12345t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("1234567890"), 0, 9, S("a123456789t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("1234567890"), 0, 10, S("a1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("1234567890"), 0, 11, S("a1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("1234567890"), 1, 0, S("at"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("1234567890"), 1, 1, S("a2t"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test44()
-{
- test(S("abcdefghijklmnopqrst"), 1, 18, S("1234567890"), 1, 4, S("a2345t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, S("1234567890"), 1, 8, S("a23456789t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, S("1234567890"), 1, 9, S("a234567890t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, S("1234567890"), 1, 10, S("a234567890t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, S("1234567890"), 5, 0, S("at"));
- test(S("abcdefghijklmnopqrst"), 1, 18, S("1234567890"), 5, 1, S("a6t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, S("1234567890"), 5, 2, S("a67t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, S("1234567890"), 5, 4, S("a6789t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, S("1234567890"), 5, 5, S("a67890t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, S("1234567890"), 5, 6, S("a67890t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, S("1234567890"), 9, 0, S("at"));
- test(S("abcdefghijklmnopqrst"), 1, 18, S("1234567890"), 9, 1, S("a0t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, S("1234567890"), 9, 2, S("a0t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, S("1234567890"), 10, 0, S("at"));
- test(S("abcdefghijklmnopqrst"), 1, 18, S("1234567890"), 10, 1, S("at"));
- test(S("abcdefghijklmnopqrst"), 1, 18, S("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 1, 18, S("12345678901234567890"), 0, 0, S("at"));
- test(S("abcdefghijklmnopqrst"), 1, 18, S("12345678901234567890"), 0, 1, S("a1t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, S("12345678901234567890"), 0, 10, S("a1234567890t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, S("12345678901234567890"), 0, 19, S("a1234567890123456789t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, S("12345678901234567890"), 0, 20, S("a12345678901234567890t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, S("12345678901234567890"), 0, 21, S("a12345678901234567890t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, S("12345678901234567890"), 1, 0, S("at"));
- test(S("abcdefghijklmnopqrst"), 1, 18, S("12345678901234567890"), 1, 1, S("a2t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, S("12345678901234567890"), 1, 9, S("a234567890t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, S("12345678901234567890"), 1, 18, S("a234567890123456789t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, S("12345678901234567890"), 1, 19, S("a2345678901234567890t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, S("12345678901234567890"), 1, 20, S("a2345678901234567890t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, S("12345678901234567890"), 10, 0, S("at"));
- test(S("abcdefghijklmnopqrst"), 1, 18, S("12345678901234567890"), 10, 1, S("a1t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, S("12345678901234567890"), 10, 5, S("a12345t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, S("12345678901234567890"), 10, 9, S("a123456789t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, S("12345678901234567890"), 10, 10, S("a1234567890t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, S("12345678901234567890"), 10, 11, S("a1234567890t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, S("12345678901234567890"), 19, 0, S("at"));
- test(S("abcdefghijklmnopqrst"), 1, 18, S("12345678901234567890"), 19, 1, S("a0t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, S("12345678901234567890"), 19, 2, S("a0t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, S("12345678901234567890"), 20, 0, S("at"));
- test(S("abcdefghijklmnopqrst"), 1, 18, S("12345678901234567890"), 20, 1, S("at"));
- test(S("abcdefghijklmnopqrst"), 1, 18, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 1, 19, S(""), 0, 0, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 19, S(""), 0, 1, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 19, S(""), 1, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 1, 19, S("12345"), 0, 0, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 19, S("12345"), 0, 1, S("a1"));
- test(S("abcdefghijklmnopqrst"), 1, 19, S("12345"), 0, 2, S("a12"));
- test(S("abcdefghijklmnopqrst"), 1, 19, S("12345"), 0, 4, S("a1234"));
- test(S("abcdefghijklmnopqrst"), 1, 19, S("12345"), 0, 5, S("a12345"));
- test(S("abcdefghijklmnopqrst"), 1, 19, S("12345"), 0, 6, S("a12345"));
- test(S("abcdefghijklmnopqrst"), 1, 19, S("12345"), 1, 0, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 19, S("12345"), 1, 1, S("a2"));
- test(S("abcdefghijklmnopqrst"), 1, 19, S("12345"), 1, 2, S("a23"));
- test(S("abcdefghijklmnopqrst"), 1, 19, S("12345"), 1, 3, S("a234"));
- test(S("abcdefghijklmnopqrst"), 1, 19, S("12345"), 1, 4, S("a2345"));
- test(S("abcdefghijklmnopqrst"), 1, 19, S("12345"), 1, 5, S("a2345"));
- test(S("abcdefghijklmnopqrst"), 1, 19, S("12345"), 2, 0, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 19, S("12345"), 2, 1, S("a3"));
- test(S("abcdefghijklmnopqrst"), 1, 19, S("12345"), 2, 2, S("a34"));
- test(S("abcdefghijklmnopqrst"), 1, 19, S("12345"), 2, 3, S("a345"));
- test(S("abcdefghijklmnopqrst"), 1, 19, S("12345"), 2, 4, S("a345"));
- test(S("abcdefghijklmnopqrst"), 1, 19, S("12345"), 4, 0, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 19, S("12345"), 4, 1, S("a5"));
- test(S("abcdefghijklmnopqrst"), 1, 19, S("12345"), 4, 2, S("a5"));
- test(S("abcdefghijklmnopqrst"), 1, 19, S("12345"), 5, 0, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 19, S("12345"), 5, 1, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 19, S("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 1, 19, S("1234567890"), 0, 0, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 19, S("1234567890"), 0, 1, S("a1"));
- test(S("abcdefghijklmnopqrst"), 1, 19, S("1234567890"), 0, 5, S("a12345"));
- test(S("abcdefghijklmnopqrst"), 1, 19, S("1234567890"), 0, 9, S("a123456789"));
- test(S("abcdefghijklmnopqrst"), 1, 19, S("1234567890"), 0, 10, S("a1234567890"));
- test(S("abcdefghijklmnopqrst"), 1, 19, S("1234567890"), 0, 11, S("a1234567890"));
- test(S("abcdefghijklmnopqrst"), 1, 19, S("1234567890"), 1, 0, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 19, S("1234567890"), 1, 1, S("a2"));
- test(S("abcdefghijklmnopqrst"), 1, 19, S("1234567890"), 1, 4, S("a2345"));
- test(S("abcdefghijklmnopqrst"), 1, 19, S("1234567890"), 1, 8, S("a23456789"));
- test(S("abcdefghijklmnopqrst"), 1, 19, S("1234567890"), 1, 9, S("a234567890"));
- test(S("abcdefghijklmnopqrst"), 1, 19, S("1234567890"), 1, 10, S("a234567890"));
- test(S("abcdefghijklmnopqrst"), 1, 19, S("1234567890"), 5, 0, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 19, S("1234567890"), 5, 1, S("a6"));
- test(S("abcdefghijklmnopqrst"), 1, 19, S("1234567890"), 5, 2, S("a67"));
- test(S("abcdefghijklmnopqrst"), 1, 19, S("1234567890"), 5, 4, S("a6789"));
- test(S("abcdefghijklmnopqrst"), 1, 19, S("1234567890"), 5, 5, S("a67890"));
- test(S("abcdefghijklmnopqrst"), 1, 19, S("1234567890"), 5, 6, S("a67890"));
- test(S("abcdefghijklmnopqrst"), 1, 19, S("1234567890"), 9, 0, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 19, S("1234567890"), 9, 1, S("a0"));
- test(S("abcdefghijklmnopqrst"), 1, 19, S("1234567890"), 9, 2, S("a0"));
- test(S("abcdefghijklmnopqrst"), 1, 19, S("1234567890"), 10, 0, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 19, S("1234567890"), 10, 1, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 19, S("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 1, 19, S("12345678901234567890"), 0, 0, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 19, S("12345678901234567890"), 0, 1, S("a1"));
- test(S("abcdefghijklmnopqrst"), 1, 19, S("12345678901234567890"), 0, 10, S("a1234567890"));
- test(S("abcdefghijklmnopqrst"), 1, 19, S("12345678901234567890"), 0, 19, S("a1234567890123456789"));
- test(S("abcdefghijklmnopqrst"), 1, 19, S("12345678901234567890"), 0, 20, S("a12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 1, 19, S("12345678901234567890"), 0, 21, S("a12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 1, 19, S("12345678901234567890"), 1, 0, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 19, S("12345678901234567890"), 1, 1, S("a2"));
- test(S("abcdefghijklmnopqrst"), 1, 19, S("12345678901234567890"), 1, 9, S("a234567890"));
- test(S("abcdefghijklmnopqrst"), 1, 19, S("12345678901234567890"), 1, 18, S("a234567890123456789"));
+TEST_CONSTEXPR_CXX20 bool test44() {
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("1234567890"), 1, 4, S("a2345t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("1234567890"), 1, 8, S("a23456789t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("1234567890"), 1, 9, S("a234567890t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("1234567890"), 1, 10, S("a234567890t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("1234567890"), 5, 0, S("at"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("1234567890"), 5, 1, S("a6t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("1234567890"), 5, 2, S("a67t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("1234567890"), 5, 4, S("a6789t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("1234567890"), 5, 5, S("a67890t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("1234567890"), 5, 6, S("a67890t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("1234567890"), 9, 0, S("at"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("1234567890"), 9, 1, S("a0t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("1234567890"), 9, 2, S("a0t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("1234567890"), 10, 0, S("at"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("1234567890"), 10, 1, S("at"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("12345678901234567890"), 0, 0, S("at"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("12345678901234567890"), 0, 1, S("a1t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("12345678901234567890"), 0, 10, S("a1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("12345678901234567890"), 0, 19, S("a1234567890123456789t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("12345678901234567890"), 0, 20, S("a12345678901234567890t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("12345678901234567890"), 0, 21, S("a12345678901234567890t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("12345678901234567890"), 1, 0, S("at"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("12345678901234567890"), 1, 1, S("a2t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("12345678901234567890"), 1, 9, S("a234567890t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("12345678901234567890"), 1, 18, S("a234567890123456789t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("12345678901234567890"), 1, 19, S("a2345678901234567890t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("12345678901234567890"), 1, 20, S("a2345678901234567890t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("12345678901234567890"), 10, 0, S("at"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("12345678901234567890"), 10, 1, S("a1t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("12345678901234567890"), 10, 5, S("a12345t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("12345678901234567890"), 10, 9, S("a123456789t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("12345678901234567890"), 10, 10, S("a1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("12345678901234567890"), 10, 11, S("a1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("12345678901234567890"), 19, 0, S("at"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("12345678901234567890"), 19, 1, S("a0t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("12345678901234567890"), 19, 2, S("a0t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("12345678901234567890"), 20, 0, S("at"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("12345678901234567890"), 20, 1, S("at"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, S(""), 0, 0, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, S(""), 0, 1, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, S(""), 1, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("12345"), 0, 0, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("12345"), 0, 1, S("a1"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("12345"), 0, 2, S("a12"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("12345"), 0, 4, S("a1234"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("12345"), 0, 5, S("a12345"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("12345"), 0, 6, S("a12345"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("12345"), 1, 0, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("12345"), 1, 1, S("a2"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("12345"), 1, 2, S("a23"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("12345"), 1, 3, S("a234"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("12345"), 1, 4, S("a2345"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("12345"), 1, 5, S("a2345"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("12345"), 2, 0, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("12345"), 2, 1, S("a3"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("12345"), 2, 2, S("a34"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("12345"), 2, 3, S("a345"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("12345"), 2, 4, S("a345"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("12345"), 4, 0, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("12345"), 4, 1, S("a5"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("12345"), 4, 2, S("a5"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("12345"), 5, 0, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("12345"), 5, 1, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("1234567890"), 0, 0, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("1234567890"), 0, 1, S("a1"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("1234567890"), 0, 5, S("a12345"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("1234567890"), 0, 9, S("a123456789"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("1234567890"), 0, 10, S("a1234567890"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("1234567890"), 0, 11, S("a1234567890"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("1234567890"), 1, 0, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("1234567890"), 1, 1, S("a2"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("1234567890"), 1, 4, S("a2345"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("1234567890"), 1, 8, S("a23456789"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("1234567890"), 1, 9, S("a234567890"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("1234567890"), 1, 10, S("a234567890"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("1234567890"), 5, 0, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("1234567890"), 5, 1, S("a6"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("1234567890"), 5, 2, S("a67"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("1234567890"), 5, 4, S("a6789"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("1234567890"), 5, 5, S("a67890"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("1234567890"), 5, 6, S("a67890"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("1234567890"), 9, 0, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("1234567890"), 9, 1, S("a0"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("1234567890"), 9, 2, S("a0"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("1234567890"), 10, 0, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("1234567890"), 10, 1, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("12345678901234567890"), 0, 0, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("12345678901234567890"), 0, 1, S("a1"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("12345678901234567890"), 0, 10, S("a1234567890"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("12345678901234567890"), 0, 19, S("a1234567890123456789"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("12345678901234567890"), 0, 20, S("a12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("12345678901234567890"), 0, 21, S("a12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("12345678901234567890"), 1, 0, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("12345678901234567890"), 1, 1, S("a2"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("12345678901234567890"), 1, 9, S("a234567890"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("12345678901234567890"), 1, 18, S("a234567890123456789"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test45()
-{
- test(S("abcdefghijklmnopqrst"), 1, 19, S("12345678901234567890"), 1, 19, S("a2345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 1, 19, S("12345678901234567890"), 1, 20, S("a2345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 1, 19, S("12345678901234567890"), 10, 0, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 19, S("12345678901234567890"), 10, 1, S("a1"));
- test(S("abcdefghijklmnopqrst"), 1, 19, S("12345678901234567890"), 10, 5, S("a12345"));
- test(S("abcdefghijklmnopqrst"), 1, 19, S("12345678901234567890"), 10, 9, S("a123456789"));
- test(S("abcdefghijklmnopqrst"), 1, 19, S("12345678901234567890"), 10, 10, S("a1234567890"));
- test(S("abcdefghijklmnopqrst"), 1, 19, S("12345678901234567890"), 10, 11, S("a1234567890"));
- test(S("abcdefghijklmnopqrst"), 1, 19, S("12345678901234567890"), 19, 0, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 19, S("12345678901234567890"), 19, 1, S("a0"));
- test(S("abcdefghijklmnopqrst"), 1, 19, S("12345678901234567890"), 19, 2, S("a0"));
- test(S("abcdefghijklmnopqrst"), 1, 19, S("12345678901234567890"), 20, 0, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 19, S("12345678901234567890"), 20, 1, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 19, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 1, 20, S(""), 0, 0, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 20, S(""), 0, 1, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 20, S(""), 1, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 1, 20, S("12345"), 0, 0, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 20, S("12345"), 0, 1, S("a1"));
- test(S("abcdefghijklmnopqrst"), 1, 20, S("12345"), 0, 2, S("a12"));
- test(S("abcdefghijklmnopqrst"), 1, 20, S("12345"), 0, 4, S("a1234"));
- test(S("abcdefghijklmnopqrst"), 1, 20, S("12345"), 0, 5, S("a12345"));
- test(S("abcdefghijklmnopqrst"), 1, 20, S("12345"), 0, 6, S("a12345"));
- test(S("abcdefghijklmnopqrst"), 1, 20, S("12345"), 1, 0, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 20, S("12345"), 1, 1, S("a2"));
- test(S("abcdefghijklmnopqrst"), 1, 20, S("12345"), 1, 2, S("a23"));
- test(S("abcdefghijklmnopqrst"), 1, 20, S("12345"), 1, 3, S("a234"));
- test(S("abcdefghijklmnopqrst"), 1, 20, S("12345"), 1, 4, S("a2345"));
- test(S("abcdefghijklmnopqrst"), 1, 20, S("12345"), 1, 5, S("a2345"));
- test(S("abcdefghijklmnopqrst"), 1, 20, S("12345"), 2, 0, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 20, S("12345"), 2, 1, S("a3"));
- test(S("abcdefghijklmnopqrst"), 1, 20, S("12345"), 2, 2, S("a34"));
- test(S("abcdefghijklmnopqrst"), 1, 20, S("12345"), 2, 3, S("a345"));
- test(S("abcdefghijklmnopqrst"), 1, 20, S("12345"), 2, 4, S("a345"));
- test(S("abcdefghijklmnopqrst"), 1, 20, S("12345"), 4, 0, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 20, S("12345"), 4, 1, S("a5"));
- test(S("abcdefghijklmnopqrst"), 1, 20, S("12345"), 4, 2, S("a5"));
- test(S("abcdefghijklmnopqrst"), 1, 20, S("12345"), 5, 0, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 20, S("12345"), 5, 1, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 20, S("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 1, 20, S("1234567890"), 0, 0, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 20, S("1234567890"), 0, 1, S("a1"));
- test(S("abcdefghijklmnopqrst"), 1, 20, S("1234567890"), 0, 5, S("a12345"));
- test(S("abcdefghijklmnopqrst"), 1, 20, S("1234567890"), 0, 9, S("a123456789"));
- test(S("abcdefghijklmnopqrst"), 1, 20, S("1234567890"), 0, 10, S("a1234567890"));
- test(S("abcdefghijklmnopqrst"), 1, 20, S("1234567890"), 0, 11, S("a1234567890"));
- test(S("abcdefghijklmnopqrst"), 1, 20, S("1234567890"), 1, 0, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 20, S("1234567890"), 1, 1, S("a2"));
- test(S("abcdefghijklmnopqrst"), 1, 20, S("1234567890"), 1, 4, S("a2345"));
- test(S("abcdefghijklmnopqrst"), 1, 20, S("1234567890"), 1, 8, S("a23456789"));
- test(S("abcdefghijklmnopqrst"), 1, 20, S("1234567890"), 1, 9, S("a234567890"));
- test(S("abcdefghijklmnopqrst"), 1, 20, S("1234567890"), 1, 10, S("a234567890"));
- test(S("abcdefghijklmnopqrst"), 1, 20, S("1234567890"), 5, 0, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 20, S("1234567890"), 5, 1, S("a6"));
- test(S("abcdefghijklmnopqrst"), 1, 20, S("1234567890"), 5, 2, S("a67"));
- test(S("abcdefghijklmnopqrst"), 1, 20, S("1234567890"), 5, 4, S("a6789"));
- test(S("abcdefghijklmnopqrst"), 1, 20, S("1234567890"), 5, 5, S("a67890"));
- test(S("abcdefghijklmnopqrst"), 1, 20, S("1234567890"), 5, 6, S("a67890"));
- test(S("abcdefghijklmnopqrst"), 1, 20, S("1234567890"), 9, 0, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 20, S("1234567890"), 9, 1, S("a0"));
- test(S("abcdefghijklmnopqrst"), 1, 20, S("1234567890"), 9, 2, S("a0"));
- test(S("abcdefghijklmnopqrst"), 1, 20, S("1234567890"), 10, 0, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 20, S("1234567890"), 10, 1, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 20, S("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 1, 20, S("12345678901234567890"), 0, 0, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 20, S("12345678901234567890"), 0, 1, S("a1"));
- test(S("abcdefghijklmnopqrst"), 1, 20, S("12345678901234567890"), 0, 10, S("a1234567890"));
- test(S("abcdefghijklmnopqrst"), 1, 20, S("12345678901234567890"), 0, 19, S("a1234567890123456789"));
- test(S("abcdefghijklmnopqrst"), 1, 20, S("12345678901234567890"), 0, 20, S("a12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 1, 20, S("12345678901234567890"), 0, 21, S("a12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 1, 20, S("12345678901234567890"), 1, 0, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 20, S("12345678901234567890"), 1, 1, S("a2"));
- test(S("abcdefghijklmnopqrst"), 1, 20, S("12345678901234567890"), 1, 9, S("a234567890"));
- test(S("abcdefghijklmnopqrst"), 1, 20, S("12345678901234567890"), 1, 18, S("a234567890123456789"));
- test(S("abcdefghijklmnopqrst"), 1, 20, S("12345678901234567890"), 1, 19, S("a2345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 1, 20, S("12345678901234567890"), 1, 20, S("a2345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 1, 20, S("12345678901234567890"), 10, 0, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 20, S("12345678901234567890"), 10, 1, S("a1"));
- test(S("abcdefghijklmnopqrst"), 1, 20, S("12345678901234567890"), 10, 5, S("a12345"));
- test(S("abcdefghijklmnopqrst"), 1, 20, S("12345678901234567890"), 10, 9, S("a123456789"));
- test(S("abcdefghijklmnopqrst"), 1, 20, S("12345678901234567890"), 10, 10, S("a1234567890"));
- test(S("abcdefghijklmnopqrst"), 1, 20, S("12345678901234567890"), 10, 11, S("a1234567890"));
- test(S("abcdefghijklmnopqrst"), 1, 20, S("12345678901234567890"), 19, 0, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 20, S("12345678901234567890"), 19, 1, S("a0"));
- test(S("abcdefghijklmnopqrst"), 1, 20, S("12345678901234567890"), 19, 2, S("a0"));
- test(S("abcdefghijklmnopqrst"), 1, 20, S("12345678901234567890"), 20, 0, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 20, S("12345678901234567890"), 20, 1, S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 20, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 10, 0, S(""), 0, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, S(""), 0, 1, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, S(""), 1, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 10, 0, S("12345"), 0, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, S("12345"), 0, 1, S("abcdefghij1klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, S("12345"), 0, 2, S("abcdefghij12klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, S("12345"), 0, 4, S("abcdefghij1234klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, S("12345"), 0, 5, S("abcdefghij12345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, S("12345"), 0, 6, S("abcdefghij12345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, S("12345"), 1, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, S("12345"), 1, 1, S("abcdefghij2klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, S("12345"), 1, 2, S("abcdefghij23klmnopqrst"));
+TEST_CONSTEXPR_CXX20 bool test45() {
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("12345678901234567890"), 1, 19, S("a2345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("12345678901234567890"), 1, 20, S("a2345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("12345678901234567890"), 10, 0, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("12345678901234567890"), 10, 1, S("a1"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("12345678901234567890"), 10, 5, S("a12345"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("12345678901234567890"), 10, 9, S("a123456789"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("12345678901234567890"), 10, 10, S("a1234567890"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("12345678901234567890"), 10, 11, S("a1234567890"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("12345678901234567890"), 19, 0, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("12345678901234567890"), 19, 1, S("a0"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("12345678901234567890"), 19, 2, S("a0"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("12345678901234567890"), 20, 0, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("12345678901234567890"), 20, 1, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, S(""), 0, 0, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, S(""), 0, 1, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, S(""), 1, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("12345"), 0, 0, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("12345"), 0, 1, S("a1"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("12345"), 0, 2, S("a12"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("12345"), 0, 4, S("a1234"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("12345"), 0, 5, S("a12345"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("12345"), 0, 6, S("a12345"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("12345"), 1, 0, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("12345"), 1, 1, S("a2"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("12345"), 1, 2, S("a23"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("12345"), 1, 3, S("a234"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("12345"), 1, 4, S("a2345"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("12345"), 1, 5, S("a2345"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("12345"), 2, 0, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("12345"), 2, 1, S("a3"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("12345"), 2, 2, S("a34"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("12345"), 2, 3, S("a345"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("12345"), 2, 4, S("a345"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("12345"), 4, 0, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("12345"), 4, 1, S("a5"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("12345"), 4, 2, S("a5"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("12345"), 5, 0, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("12345"), 5, 1, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("1234567890"), 0, 0, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("1234567890"), 0, 1, S("a1"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("1234567890"), 0, 5, S("a12345"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("1234567890"), 0, 9, S("a123456789"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("1234567890"), 0, 10, S("a1234567890"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("1234567890"), 0, 11, S("a1234567890"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("1234567890"), 1, 0, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("1234567890"), 1, 1, S("a2"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("1234567890"), 1, 4, S("a2345"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("1234567890"), 1, 8, S("a23456789"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("1234567890"), 1, 9, S("a234567890"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("1234567890"), 1, 10, S("a234567890"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("1234567890"), 5, 0, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("1234567890"), 5, 1, S("a6"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("1234567890"), 5, 2, S("a67"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("1234567890"), 5, 4, S("a6789"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("1234567890"), 5, 5, S("a67890"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("1234567890"), 5, 6, S("a67890"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("1234567890"), 9, 0, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("1234567890"), 9, 1, S("a0"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("1234567890"), 9, 2, S("a0"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("1234567890"), 10, 0, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("1234567890"), 10, 1, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("12345678901234567890"), 0, 0, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("12345678901234567890"), 0, 1, S("a1"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("12345678901234567890"), 0, 10, S("a1234567890"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("12345678901234567890"), 0, 19, S("a1234567890123456789"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("12345678901234567890"), 0, 20, S("a12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("12345678901234567890"), 0, 21, S("a12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("12345678901234567890"), 1, 0, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("12345678901234567890"), 1, 1, S("a2"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("12345678901234567890"), 1, 9, S("a234567890"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("12345678901234567890"), 1, 18, S("a234567890123456789"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("12345678901234567890"), 1, 19, S("a2345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("12345678901234567890"), 1, 20, S("a2345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("12345678901234567890"), 10, 0, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("12345678901234567890"), 10, 1, S("a1"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("12345678901234567890"), 10, 5, S("a12345"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("12345678901234567890"), 10, 9, S("a123456789"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("12345678901234567890"), 10, 10, S("a1234567890"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("12345678901234567890"), 10, 11, S("a1234567890"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("12345678901234567890"), 19, 0, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("12345678901234567890"), 19, 1, S("a0"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("12345678901234567890"), 19, 2, S("a0"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("12345678901234567890"), 20, 0, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("12345678901234567890"), 20, 1, S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, S(""), 0, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, S(""), 0, 1, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, S(""), 1, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("12345"), 0, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("12345"), 0, 1, S("abcdefghij1klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("12345"), 0, 2, S("abcdefghij12klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("12345"), 0, 4, S("abcdefghij1234klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("12345"), 0, 5, S("abcdefghij12345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("12345"), 0, 6, S("abcdefghij12345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("12345"), 1, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("12345"), 1, 1, S("abcdefghij2klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("12345"), 1, 2, S("abcdefghij23klmnopqrst"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test46()
-{
- test(S("abcdefghijklmnopqrst"), 10, 0, S("12345"), 1, 3, S("abcdefghij234klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, S("12345"), 1, 4, S("abcdefghij2345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, S("12345"), 1, 5, S("abcdefghij2345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, S("12345"), 2, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, S("12345"), 2, 1, S("abcdefghij3klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, S("12345"), 2, 2, S("abcdefghij34klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, S("12345"), 2, 3, S("abcdefghij345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, S("12345"), 2, 4, S("abcdefghij345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, S("12345"), 4, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, S("12345"), 4, 1, S("abcdefghij5klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, S("12345"), 4, 2, S("abcdefghij5klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, S("12345"), 5, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, S("12345"), 5, 1, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, S("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 10, 0, S("1234567890"), 0, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, S("1234567890"), 0, 1, S("abcdefghij1klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, S("1234567890"), 0, 5, S("abcdefghij12345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, S("1234567890"), 0, 9, S("abcdefghij123456789klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, S("1234567890"), 0, 10, S("abcdefghij1234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, S("1234567890"), 0, 11, S("abcdefghij1234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, S("1234567890"), 1, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, S("1234567890"), 1, 1, S("abcdefghij2klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, S("1234567890"), 1, 4, S("abcdefghij2345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, S("1234567890"), 1, 8, S("abcdefghij23456789klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, S("1234567890"), 1, 9, S("abcdefghij234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, S("1234567890"), 1, 10, S("abcdefghij234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, S("1234567890"), 5, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, S("1234567890"), 5, 1, S("abcdefghij6klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, S("1234567890"), 5, 2, S("abcdefghij67klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, S("1234567890"), 5, 4, S("abcdefghij6789klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, S("1234567890"), 5, 5, S("abcdefghij67890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, S("1234567890"), 5, 6, S("abcdefghij67890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, S("1234567890"), 9, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, S("1234567890"), 9, 1, S("abcdefghij0klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, S("1234567890"), 9, 2, S("abcdefghij0klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, S("1234567890"), 10, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, S("1234567890"), 10, 1, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, S("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 10, 0, S("12345678901234567890"), 0, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, S("12345678901234567890"), 0, 1, S("abcdefghij1klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, S("12345678901234567890"), 0, 10, S("abcdefghij1234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, S("12345678901234567890"), 0, 19, S("abcdefghij1234567890123456789klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, S("12345678901234567890"), 0, 20, S("abcdefghij12345678901234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, S("12345678901234567890"), 0, 21, S("abcdefghij12345678901234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, S("12345678901234567890"), 1, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, S("12345678901234567890"), 1, 1, S("abcdefghij2klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, S("12345678901234567890"), 1, 9, S("abcdefghij234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, S("12345678901234567890"), 1, 18, S("abcdefghij234567890123456789klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, S("12345678901234567890"), 1, 19, S("abcdefghij2345678901234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, S("12345678901234567890"), 1, 20, S("abcdefghij2345678901234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, S("12345678901234567890"), 10, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, S("12345678901234567890"), 10, 1, S("abcdefghij1klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, S("12345678901234567890"), 10, 5, S("abcdefghij12345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, S("12345678901234567890"), 10, 9, S("abcdefghij123456789klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, S("12345678901234567890"), 10, 10, S("abcdefghij1234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, S("12345678901234567890"), 10, 11, S("abcdefghij1234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, S("12345678901234567890"), 19, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, S("12345678901234567890"), 19, 1, S("abcdefghij0klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, S("12345678901234567890"), 19, 2, S("abcdefghij0klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, S("12345678901234567890"), 20, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, S("12345678901234567890"), 20, 1, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 10, 1, S(""), 0, 0, S("abcdefghijlmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, S(""), 0, 1, S("abcdefghijlmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, S(""), 1, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 10, 1, S("12345"), 0, 0, S("abcdefghijlmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, S("12345"), 0, 1, S("abcdefghij1lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, S("12345"), 0, 2, S("abcdefghij12lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, S("12345"), 0, 4, S("abcdefghij1234lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, S("12345"), 0, 5, S("abcdefghij12345lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, S("12345"), 0, 6, S("abcdefghij12345lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, S("12345"), 1, 0, S("abcdefghijlmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, S("12345"), 1, 1, S("abcdefghij2lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, S("12345"), 1, 2, S("abcdefghij23lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, S("12345"), 1, 3, S("abcdefghij234lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, S("12345"), 1, 4, S("abcdefghij2345lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, S("12345"), 1, 5, S("abcdefghij2345lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, S("12345"), 2, 0, S("abcdefghijlmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, S("12345"), 2, 1, S("abcdefghij3lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, S("12345"), 2, 2, S("abcdefghij34lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, S("12345"), 2, 3, S("abcdefghij345lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, S("12345"), 2, 4, S("abcdefghij345lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, S("12345"), 4, 0, S("abcdefghijlmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, S("12345"), 4, 1, S("abcdefghij5lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, S("12345"), 4, 2, S("abcdefghij5lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, S("12345"), 5, 0, S("abcdefghijlmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, S("12345"), 5, 1, S("abcdefghijlmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, S("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 10, 1, S("1234567890"), 0, 0, S("abcdefghijlmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, S("1234567890"), 0, 1, S("abcdefghij1lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, S("1234567890"), 0, 5, S("abcdefghij12345lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, S("1234567890"), 0, 9, S("abcdefghij123456789lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, S("1234567890"), 0, 10, S("abcdefghij1234567890lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, S("1234567890"), 0, 11, S("abcdefghij1234567890lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, S("1234567890"), 1, 0, S("abcdefghijlmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, S("1234567890"), 1, 1, S("abcdefghij2lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, S("1234567890"), 1, 4, S("abcdefghij2345lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, S("1234567890"), 1, 8, S("abcdefghij23456789lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, S("1234567890"), 1, 9, S("abcdefghij234567890lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, S("1234567890"), 1, 10, S("abcdefghij234567890lmnopqrst"));
+TEST_CONSTEXPR_CXX20 bool test46() {
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("12345"), 1, 3, S("abcdefghij234klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("12345"), 1, 4, S("abcdefghij2345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("12345"), 1, 5, S("abcdefghij2345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("12345"), 2, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("12345"), 2, 1, S("abcdefghij3klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("12345"), 2, 2, S("abcdefghij34klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("12345"), 2, 3, S("abcdefghij345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("12345"), 2, 4, S("abcdefghij345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("12345"), 4, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("12345"), 4, 1, S("abcdefghij5klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("12345"), 4, 2, S("abcdefghij5klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("12345"), 5, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("12345"), 5, 1, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("1234567890"), 0, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("1234567890"), 0, 1, S("abcdefghij1klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("1234567890"), 0, 5, S("abcdefghij12345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("1234567890"), 0, 9, S("abcdefghij123456789klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("1234567890"), 0, 10, S("abcdefghij1234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("1234567890"), 0, 11, S("abcdefghij1234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("1234567890"), 1, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("1234567890"), 1, 1, S("abcdefghij2klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("1234567890"), 1, 4, S("abcdefghij2345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("1234567890"), 1, 8, S("abcdefghij23456789klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("1234567890"), 1, 9, S("abcdefghij234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("1234567890"), 1, 10, S("abcdefghij234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("1234567890"), 5, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("1234567890"), 5, 1, S("abcdefghij6klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("1234567890"), 5, 2, S("abcdefghij67klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("1234567890"), 5, 4, S("abcdefghij6789klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("1234567890"), 5, 5, S("abcdefghij67890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("1234567890"), 5, 6, S("abcdefghij67890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("1234567890"), 9, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("1234567890"), 9, 1, S("abcdefghij0klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("1234567890"), 9, 2, S("abcdefghij0klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("1234567890"), 10, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("1234567890"), 10, 1, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("12345678901234567890"), 0, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("12345678901234567890"), 0, 1, S("abcdefghij1klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("12345678901234567890"), 0, 10, S("abcdefghij1234567890klmnopqrst"));
+ test(
+ S("abcdefghijklmnopqrst"), 10, 0, S("12345678901234567890"), 0, 19, S("abcdefghij1234567890123456789klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"),
+ 10,
+ 0,
+ S("12345678901234567890"),
+ 0,
+ 20,
+ S("abcdefghij12345678901234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"),
+ 10,
+ 0,
+ S("12345678901234567890"),
+ 0,
+ 21,
+ S("abcdefghij12345678901234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("12345678901234567890"), 1, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("12345678901234567890"), 1, 1, S("abcdefghij2klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("12345678901234567890"), 1, 9, S("abcdefghij234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("12345678901234567890"), 1, 18, S("abcdefghij234567890123456789klmnopqrst"));
+ test(
+ S("abcdefghijklmnopqrst"), 10, 0, S("12345678901234567890"), 1, 19, S("abcdefghij2345678901234567890klmnopqrst"));
+ test(
+ S("abcdefghijklmnopqrst"), 10, 0, S("12345678901234567890"), 1, 20, S("abcdefghij2345678901234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("12345678901234567890"), 10, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("12345678901234567890"), 10, 1, S("abcdefghij1klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("12345678901234567890"), 10, 5, S("abcdefghij12345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("12345678901234567890"), 10, 9, S("abcdefghij123456789klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("12345678901234567890"), 10, 10, S("abcdefghij1234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("12345678901234567890"), 10, 11, S("abcdefghij1234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("12345678901234567890"), 19, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("12345678901234567890"), 19, 1, S("abcdefghij0klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("12345678901234567890"), 19, 2, S("abcdefghij0klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("12345678901234567890"), 20, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("12345678901234567890"), 20, 1, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, S(""), 0, 0, S("abcdefghijlmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, S(""), 0, 1, S("abcdefghijlmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, S(""), 1, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("12345"), 0, 0, S("abcdefghijlmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("12345"), 0, 1, S("abcdefghij1lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("12345"), 0, 2, S("abcdefghij12lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("12345"), 0, 4, S("abcdefghij1234lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("12345"), 0, 5, S("abcdefghij12345lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("12345"), 0, 6, S("abcdefghij12345lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("12345"), 1, 0, S("abcdefghijlmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("12345"), 1, 1, S("abcdefghij2lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("12345"), 1, 2, S("abcdefghij23lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("12345"), 1, 3, S("abcdefghij234lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("12345"), 1, 4, S("abcdefghij2345lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("12345"), 1, 5, S("abcdefghij2345lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("12345"), 2, 0, S("abcdefghijlmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("12345"), 2, 1, S("abcdefghij3lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("12345"), 2, 2, S("abcdefghij34lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("12345"), 2, 3, S("abcdefghij345lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("12345"), 2, 4, S("abcdefghij345lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("12345"), 4, 0, S("abcdefghijlmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("12345"), 4, 1, S("abcdefghij5lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("12345"), 4, 2, S("abcdefghij5lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("12345"), 5, 0, S("abcdefghijlmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("12345"), 5, 1, S("abcdefghijlmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("1234567890"), 0, 0, S("abcdefghijlmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("1234567890"), 0, 1, S("abcdefghij1lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("1234567890"), 0, 5, S("abcdefghij12345lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("1234567890"), 0, 9, S("abcdefghij123456789lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("1234567890"), 0, 10, S("abcdefghij1234567890lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("1234567890"), 0, 11, S("abcdefghij1234567890lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("1234567890"), 1, 0, S("abcdefghijlmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("1234567890"), 1, 1, S("abcdefghij2lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("1234567890"), 1, 4, S("abcdefghij2345lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("1234567890"), 1, 8, S("abcdefghij23456789lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("1234567890"), 1, 9, S("abcdefghij234567890lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("1234567890"), 1, 10, S("abcdefghij234567890lmnopqrst"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test47()
-{
- test(S("abcdefghijklmnopqrst"), 10, 1, S("1234567890"), 5, 0, S("abcdefghijlmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, S("1234567890"), 5, 1, S("abcdefghij6lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, S("1234567890"), 5, 2, S("abcdefghij67lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, S("1234567890"), 5, 4, S("abcdefghij6789lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, S("1234567890"), 5, 5, S("abcdefghij67890lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, S("1234567890"), 5, 6, S("abcdefghij67890lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, S("1234567890"), 9, 0, S("abcdefghijlmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, S("1234567890"), 9, 1, S("abcdefghij0lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, S("1234567890"), 9, 2, S("abcdefghij0lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, S("1234567890"), 10, 0, S("abcdefghijlmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, S("1234567890"), 10, 1, S("abcdefghijlmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, S("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 10, 1, S("12345678901234567890"), 0, 0, S("abcdefghijlmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, S("12345678901234567890"), 0, 1, S("abcdefghij1lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, S("12345678901234567890"), 0, 10, S("abcdefghij1234567890lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, S("12345678901234567890"), 0, 19, S("abcdefghij1234567890123456789lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, S("12345678901234567890"), 0, 20, S("abcdefghij12345678901234567890lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, S("12345678901234567890"), 0, 21, S("abcdefghij12345678901234567890lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, S("12345678901234567890"), 1, 0, S("abcdefghijlmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, S("12345678901234567890"), 1, 1, S("abcdefghij2lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, S("12345678901234567890"), 1, 9, S("abcdefghij234567890lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, S("12345678901234567890"), 1, 18, S("abcdefghij234567890123456789lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, S("12345678901234567890"), 1, 19, S("abcdefghij2345678901234567890lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, S("12345678901234567890"), 1, 20, S("abcdefghij2345678901234567890lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, S("12345678901234567890"), 10, 0, S("abcdefghijlmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, S("12345678901234567890"), 10, 1, S("abcdefghij1lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, S("12345678901234567890"), 10, 5, S("abcdefghij12345lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, S("12345678901234567890"), 10, 9, S("abcdefghij123456789lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, S("12345678901234567890"), 10, 10, S("abcdefghij1234567890lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, S("12345678901234567890"), 10, 11, S("abcdefghij1234567890lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, S("12345678901234567890"), 19, 0, S("abcdefghijlmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, S("12345678901234567890"), 19, 1, S("abcdefghij0lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, S("12345678901234567890"), 19, 2, S("abcdefghij0lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, S("12345678901234567890"), 20, 0, S("abcdefghijlmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, S("12345678901234567890"), 20, 1, S("abcdefghijlmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 10, 5, S(""), 0, 0, S("abcdefghijpqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, S(""), 0, 1, S("abcdefghijpqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, S(""), 1, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 10, 5, S("12345"), 0, 0, S("abcdefghijpqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, S("12345"), 0, 1, S("abcdefghij1pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, S("12345"), 0, 2, S("abcdefghij12pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, S("12345"), 0, 4, S("abcdefghij1234pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, S("12345"), 0, 5, S("abcdefghij12345pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, S("12345"), 0, 6, S("abcdefghij12345pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, S("12345"), 1, 0, S("abcdefghijpqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, S("12345"), 1, 1, S("abcdefghij2pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, S("12345"), 1, 2, S("abcdefghij23pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, S("12345"), 1, 3, S("abcdefghij234pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, S("12345"), 1, 4, S("abcdefghij2345pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, S("12345"), 1, 5, S("abcdefghij2345pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, S("12345"), 2, 0, S("abcdefghijpqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, S("12345"), 2, 1, S("abcdefghij3pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, S("12345"), 2, 2, S("abcdefghij34pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, S("12345"), 2, 3, S("abcdefghij345pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, S("12345"), 2, 4, S("abcdefghij345pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, S("12345"), 4, 0, S("abcdefghijpqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, S("12345"), 4, 1, S("abcdefghij5pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, S("12345"), 4, 2, S("abcdefghij5pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, S("12345"), 5, 0, S("abcdefghijpqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, S("12345"), 5, 1, S("abcdefghijpqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, S("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 10, 5, S("1234567890"), 0, 0, S("abcdefghijpqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, S("1234567890"), 0, 1, S("abcdefghij1pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, S("1234567890"), 0, 5, S("abcdefghij12345pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, S("1234567890"), 0, 9, S("abcdefghij123456789pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, S("1234567890"), 0, 10, S("abcdefghij1234567890pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, S("1234567890"), 0, 11, S("abcdefghij1234567890pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, S("1234567890"), 1, 0, S("abcdefghijpqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, S("1234567890"), 1, 1, S("abcdefghij2pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, S("1234567890"), 1, 4, S("abcdefghij2345pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, S("1234567890"), 1, 8, S("abcdefghij23456789pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, S("1234567890"), 1, 9, S("abcdefghij234567890pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, S("1234567890"), 1, 10, S("abcdefghij234567890pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, S("1234567890"), 5, 0, S("abcdefghijpqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, S("1234567890"), 5, 1, S("abcdefghij6pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, S("1234567890"), 5, 2, S("abcdefghij67pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, S("1234567890"), 5, 4, S("abcdefghij6789pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, S("1234567890"), 5, 5, S("abcdefghij67890pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, S("1234567890"), 5, 6, S("abcdefghij67890pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, S("1234567890"), 9, 0, S("abcdefghijpqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, S("1234567890"), 9, 1, S("abcdefghij0pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, S("1234567890"), 9, 2, S("abcdefghij0pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, S("1234567890"), 10, 0, S("abcdefghijpqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, S("1234567890"), 10, 1, S("abcdefghijpqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, S("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 10, 5, S("12345678901234567890"), 0, 0, S("abcdefghijpqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, S("12345678901234567890"), 0, 1, S("abcdefghij1pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, S("12345678901234567890"), 0, 10, S("abcdefghij1234567890pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, S("12345678901234567890"), 0, 19, S("abcdefghij1234567890123456789pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, S("12345678901234567890"), 0, 20, S("abcdefghij12345678901234567890pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, S("12345678901234567890"), 0, 21, S("abcdefghij12345678901234567890pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, S("12345678901234567890"), 1, 0, S("abcdefghijpqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, S("12345678901234567890"), 1, 1, S("abcdefghij2pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, S("12345678901234567890"), 1, 9, S("abcdefghij234567890pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, S("12345678901234567890"), 1, 18, S("abcdefghij234567890123456789pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, S("12345678901234567890"), 1, 19, S("abcdefghij2345678901234567890pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, S("12345678901234567890"), 1, 20, S("abcdefghij2345678901234567890pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, S("12345678901234567890"), 10, 0, S("abcdefghijpqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, S("12345678901234567890"), 10, 1, S("abcdefghij1pqrst"));
+TEST_CONSTEXPR_CXX20 bool test47() {
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("1234567890"), 5, 0, S("abcdefghijlmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("1234567890"), 5, 1, S("abcdefghij6lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("1234567890"), 5, 2, S("abcdefghij67lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("1234567890"), 5, 4, S("abcdefghij6789lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("1234567890"), 5, 5, S("abcdefghij67890lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("1234567890"), 5, 6, S("abcdefghij67890lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("1234567890"), 9, 0, S("abcdefghijlmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("1234567890"), 9, 1, S("abcdefghij0lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("1234567890"), 9, 2, S("abcdefghij0lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("1234567890"), 10, 0, S("abcdefghijlmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("1234567890"), 10, 1, S("abcdefghijlmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("12345678901234567890"), 0, 0, S("abcdefghijlmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("12345678901234567890"), 0, 1, S("abcdefghij1lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("12345678901234567890"), 0, 10, S("abcdefghij1234567890lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("12345678901234567890"), 0, 19, S("abcdefghij1234567890123456789lmnopqrst"));
+ test(
+ S("abcdefghijklmnopqrst"), 10, 1, S("12345678901234567890"), 0, 20, S("abcdefghij12345678901234567890lmnopqrst"));
+ test(
+ S("abcdefghijklmnopqrst"), 10, 1, S("12345678901234567890"), 0, 21, S("abcdefghij12345678901234567890lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("12345678901234567890"), 1, 0, S("abcdefghijlmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("12345678901234567890"), 1, 1, S("abcdefghij2lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("12345678901234567890"), 1, 9, S("abcdefghij234567890lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("12345678901234567890"), 1, 18, S("abcdefghij234567890123456789lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("12345678901234567890"), 1, 19, S("abcdefghij2345678901234567890lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("12345678901234567890"), 1, 20, S("abcdefghij2345678901234567890lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("12345678901234567890"), 10, 0, S("abcdefghijlmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("12345678901234567890"), 10, 1, S("abcdefghij1lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("12345678901234567890"), 10, 5, S("abcdefghij12345lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("12345678901234567890"), 10, 9, S("abcdefghij123456789lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("12345678901234567890"), 10, 10, S("abcdefghij1234567890lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("12345678901234567890"), 10, 11, S("abcdefghij1234567890lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("12345678901234567890"), 19, 0, S("abcdefghijlmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("12345678901234567890"), 19, 1, S("abcdefghij0lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("12345678901234567890"), 19, 2, S("abcdefghij0lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("12345678901234567890"), 20, 0, S("abcdefghijlmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("12345678901234567890"), 20, 1, S("abcdefghijlmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, S(""), 0, 0, S("abcdefghijpqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, S(""), 0, 1, S("abcdefghijpqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, S(""), 1, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("12345"), 0, 0, S("abcdefghijpqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("12345"), 0, 1, S("abcdefghij1pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("12345"), 0, 2, S("abcdefghij12pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("12345"), 0, 4, S("abcdefghij1234pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("12345"), 0, 5, S("abcdefghij12345pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("12345"), 0, 6, S("abcdefghij12345pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("12345"), 1, 0, S("abcdefghijpqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("12345"), 1, 1, S("abcdefghij2pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("12345"), 1, 2, S("abcdefghij23pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("12345"), 1, 3, S("abcdefghij234pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("12345"), 1, 4, S("abcdefghij2345pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("12345"), 1, 5, S("abcdefghij2345pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("12345"), 2, 0, S("abcdefghijpqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("12345"), 2, 1, S("abcdefghij3pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("12345"), 2, 2, S("abcdefghij34pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("12345"), 2, 3, S("abcdefghij345pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("12345"), 2, 4, S("abcdefghij345pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("12345"), 4, 0, S("abcdefghijpqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("12345"), 4, 1, S("abcdefghij5pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("12345"), 4, 2, S("abcdefghij5pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("12345"), 5, 0, S("abcdefghijpqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("12345"), 5, 1, S("abcdefghijpqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("1234567890"), 0, 0, S("abcdefghijpqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("1234567890"), 0, 1, S("abcdefghij1pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("1234567890"), 0, 5, S("abcdefghij12345pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("1234567890"), 0, 9, S("abcdefghij123456789pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("1234567890"), 0, 10, S("abcdefghij1234567890pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("1234567890"), 0, 11, S("abcdefghij1234567890pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("1234567890"), 1, 0, S("abcdefghijpqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("1234567890"), 1, 1, S("abcdefghij2pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("1234567890"), 1, 4, S("abcdefghij2345pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("1234567890"), 1, 8, S("abcdefghij23456789pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("1234567890"), 1, 9, S("abcdefghij234567890pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("1234567890"), 1, 10, S("abcdefghij234567890pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("1234567890"), 5, 0, S("abcdefghijpqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("1234567890"), 5, 1, S("abcdefghij6pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("1234567890"), 5, 2, S("abcdefghij67pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("1234567890"), 5, 4, S("abcdefghij6789pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("1234567890"), 5, 5, S("abcdefghij67890pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("1234567890"), 5, 6, S("abcdefghij67890pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("1234567890"), 9, 0, S("abcdefghijpqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("1234567890"), 9, 1, S("abcdefghij0pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("1234567890"), 9, 2, S("abcdefghij0pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("1234567890"), 10, 0, S("abcdefghijpqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("1234567890"), 10, 1, S("abcdefghijpqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("12345678901234567890"), 0, 0, S("abcdefghijpqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("12345678901234567890"), 0, 1, S("abcdefghij1pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("12345678901234567890"), 0, 10, S("abcdefghij1234567890pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("12345678901234567890"), 0, 19, S("abcdefghij1234567890123456789pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("12345678901234567890"), 0, 20, S("abcdefghij12345678901234567890pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("12345678901234567890"), 0, 21, S("abcdefghij12345678901234567890pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("12345678901234567890"), 1, 0, S("abcdefghijpqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("12345678901234567890"), 1, 1, S("abcdefghij2pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("12345678901234567890"), 1, 9, S("abcdefghij234567890pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("12345678901234567890"), 1, 18, S("abcdefghij234567890123456789pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("12345678901234567890"), 1, 19, S("abcdefghij2345678901234567890pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("12345678901234567890"), 1, 20, S("abcdefghij2345678901234567890pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("12345678901234567890"), 10, 0, S("abcdefghijpqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("12345678901234567890"), 10, 1, S("abcdefghij1pqrst"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test48()
-{
- test(S("abcdefghijklmnopqrst"), 10, 5, S("12345678901234567890"), 10, 5, S("abcdefghij12345pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, S("12345678901234567890"), 10, 9, S("abcdefghij123456789pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, S("12345678901234567890"), 10, 10, S("abcdefghij1234567890pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, S("12345678901234567890"), 10, 11, S("abcdefghij1234567890pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, S("12345678901234567890"), 19, 0, S("abcdefghijpqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, S("12345678901234567890"), 19, 1, S("abcdefghij0pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, S("12345678901234567890"), 19, 2, S("abcdefghij0pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, S("12345678901234567890"), 20, 0, S("abcdefghijpqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, S("12345678901234567890"), 20, 1, S("abcdefghijpqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 10, 9, S(""), 0, 0, S("abcdefghijt"));
- test(S("abcdefghijklmnopqrst"), 10, 9, S(""), 0, 1, S("abcdefghijt"));
- test(S("abcdefghijklmnopqrst"), 10, 9, S(""), 1, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 10, 9, S("12345"), 0, 0, S("abcdefghijt"));
- test(S("abcdefghijklmnopqrst"), 10, 9, S("12345"), 0, 1, S("abcdefghij1t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, S("12345"), 0, 2, S("abcdefghij12t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, S("12345"), 0, 4, S("abcdefghij1234t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, S("12345"), 0, 5, S("abcdefghij12345t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, S("12345"), 0, 6, S("abcdefghij12345t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, S("12345"), 1, 0, S("abcdefghijt"));
- test(S("abcdefghijklmnopqrst"), 10, 9, S("12345"), 1, 1, S("abcdefghij2t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, S("12345"), 1, 2, S("abcdefghij23t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, S("12345"), 1, 3, S("abcdefghij234t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, S("12345"), 1, 4, S("abcdefghij2345t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, S("12345"), 1, 5, S("abcdefghij2345t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, S("12345"), 2, 0, S("abcdefghijt"));
- test(S("abcdefghijklmnopqrst"), 10, 9, S("12345"), 2, 1, S("abcdefghij3t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, S("12345"), 2, 2, S("abcdefghij34t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, S("12345"), 2, 3, S("abcdefghij345t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, S("12345"), 2, 4, S("abcdefghij345t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, S("12345"), 4, 0, S("abcdefghijt"));
- test(S("abcdefghijklmnopqrst"), 10, 9, S("12345"), 4, 1, S("abcdefghij5t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, S("12345"), 4, 2, S("abcdefghij5t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, S("12345"), 5, 0, S("abcdefghijt"));
- test(S("abcdefghijklmnopqrst"), 10, 9, S("12345"), 5, 1, S("abcdefghijt"));
- test(S("abcdefghijklmnopqrst"), 10, 9, S("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 10, 9, S("1234567890"), 0, 0, S("abcdefghijt"));
- test(S("abcdefghijklmnopqrst"), 10, 9, S("1234567890"), 0, 1, S("abcdefghij1t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, S("1234567890"), 0, 5, S("abcdefghij12345t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, S("1234567890"), 0, 9, S("abcdefghij123456789t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, S("1234567890"), 0, 10, S("abcdefghij1234567890t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, S("1234567890"), 0, 11, S("abcdefghij1234567890t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, S("1234567890"), 1, 0, S("abcdefghijt"));
- test(S("abcdefghijklmnopqrst"), 10, 9, S("1234567890"), 1, 1, S("abcdefghij2t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, S("1234567890"), 1, 4, S("abcdefghij2345t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, S("1234567890"), 1, 8, S("abcdefghij23456789t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, S("1234567890"), 1, 9, S("abcdefghij234567890t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, S("1234567890"), 1, 10, S("abcdefghij234567890t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, S("1234567890"), 5, 0, S("abcdefghijt"));
- test(S("abcdefghijklmnopqrst"), 10, 9, S("1234567890"), 5, 1, S("abcdefghij6t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, S("1234567890"), 5, 2, S("abcdefghij67t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, S("1234567890"), 5, 4, S("abcdefghij6789t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, S("1234567890"), 5, 5, S("abcdefghij67890t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, S("1234567890"), 5, 6, S("abcdefghij67890t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, S("1234567890"), 9, 0, S("abcdefghijt"));
- test(S("abcdefghijklmnopqrst"), 10, 9, S("1234567890"), 9, 1, S("abcdefghij0t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, S("1234567890"), 9, 2, S("abcdefghij0t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, S("1234567890"), 10, 0, S("abcdefghijt"));
- test(S("abcdefghijklmnopqrst"), 10, 9, S("1234567890"), 10, 1, S("abcdefghijt"));
- test(S("abcdefghijklmnopqrst"), 10, 9, S("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 10, 9, S("12345678901234567890"), 0, 0, S("abcdefghijt"));
- test(S("abcdefghijklmnopqrst"), 10, 9, S("12345678901234567890"), 0, 1, S("abcdefghij1t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, S("12345678901234567890"), 0, 10, S("abcdefghij1234567890t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, S("12345678901234567890"), 0, 19, S("abcdefghij1234567890123456789t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, S("12345678901234567890"), 0, 20, S("abcdefghij12345678901234567890t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, S("12345678901234567890"), 0, 21, S("abcdefghij12345678901234567890t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, S("12345678901234567890"), 1, 0, S("abcdefghijt"));
- test(S("abcdefghijklmnopqrst"), 10, 9, S("12345678901234567890"), 1, 1, S("abcdefghij2t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, S("12345678901234567890"), 1, 9, S("abcdefghij234567890t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, S("12345678901234567890"), 1, 18, S("abcdefghij234567890123456789t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, S("12345678901234567890"), 1, 19, S("abcdefghij2345678901234567890t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, S("12345678901234567890"), 1, 20, S("abcdefghij2345678901234567890t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, S("12345678901234567890"), 10, 0, S("abcdefghijt"));
- test(S("abcdefghijklmnopqrst"), 10, 9, S("12345678901234567890"), 10, 1, S("abcdefghij1t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, S("12345678901234567890"), 10, 5, S("abcdefghij12345t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, S("12345678901234567890"), 10, 9, S("abcdefghij123456789t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, S("12345678901234567890"), 10, 10, S("abcdefghij1234567890t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, S("12345678901234567890"), 10, 11, S("abcdefghij1234567890t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, S("12345678901234567890"), 19, 0, S("abcdefghijt"));
- test(S("abcdefghijklmnopqrst"), 10, 9, S("12345678901234567890"), 19, 1, S("abcdefghij0t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, S("12345678901234567890"), 19, 2, S("abcdefghij0t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, S("12345678901234567890"), 20, 0, S("abcdefghijt"));
- test(S("abcdefghijklmnopqrst"), 10, 9, S("12345678901234567890"), 20, 1, S("abcdefghijt"));
- test(S("abcdefghijklmnopqrst"), 10, 9, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 10, 10, S(""), 0, 0, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 10, S(""), 0, 1, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 10, S(""), 1, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 10, 10, S("12345"), 0, 0, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 10, S("12345"), 0, 1, S("abcdefghij1"));
- test(S("abcdefghijklmnopqrst"), 10, 10, S("12345"), 0, 2, S("abcdefghij12"));
- test(S("abcdefghijklmnopqrst"), 10, 10, S("12345"), 0, 4, S("abcdefghij1234"));
- test(S("abcdefghijklmnopqrst"), 10, 10, S("12345"), 0, 5, S("abcdefghij12345"));
- test(S("abcdefghijklmnopqrst"), 10, 10, S("12345"), 0, 6, S("abcdefghij12345"));
- test(S("abcdefghijklmnopqrst"), 10, 10, S("12345"), 1, 0, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 10, S("12345"), 1, 1, S("abcdefghij2"));
- test(S("abcdefghijklmnopqrst"), 10, 10, S("12345"), 1, 2, S("abcdefghij23"));
- test(S("abcdefghijklmnopqrst"), 10, 10, S("12345"), 1, 3, S("abcdefghij234"));
- test(S("abcdefghijklmnopqrst"), 10, 10, S("12345"), 1, 4, S("abcdefghij2345"));
- test(S("abcdefghijklmnopqrst"), 10, 10, S("12345"), 1, 5, S("abcdefghij2345"));
- test(S("abcdefghijklmnopqrst"), 10, 10, S("12345"), 2, 0, S("abcdefghij"));
+TEST_CONSTEXPR_CXX20 bool test48() {
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("12345678901234567890"), 10, 5, S("abcdefghij12345pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("12345678901234567890"), 10, 9, S("abcdefghij123456789pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("12345678901234567890"), 10, 10, S("abcdefghij1234567890pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("12345678901234567890"), 10, 11, S("abcdefghij1234567890pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("12345678901234567890"), 19, 0, S("abcdefghijpqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("12345678901234567890"), 19, 1, S("abcdefghij0pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("12345678901234567890"), 19, 2, S("abcdefghij0pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("12345678901234567890"), 20, 0, S("abcdefghijpqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("12345678901234567890"), 20, 1, S("abcdefghijpqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, S(""), 0, 0, S("abcdefghijt"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, S(""), 0, 1, S("abcdefghijt"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, S(""), 1, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("12345"), 0, 0, S("abcdefghijt"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("12345"), 0, 1, S("abcdefghij1t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("12345"), 0, 2, S("abcdefghij12t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("12345"), 0, 4, S("abcdefghij1234t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("12345"), 0, 5, S("abcdefghij12345t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("12345"), 0, 6, S("abcdefghij12345t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("12345"), 1, 0, S("abcdefghijt"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("12345"), 1, 1, S("abcdefghij2t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("12345"), 1, 2, S("abcdefghij23t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("12345"), 1, 3, S("abcdefghij234t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("12345"), 1, 4, S("abcdefghij2345t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("12345"), 1, 5, S("abcdefghij2345t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("12345"), 2, 0, S("abcdefghijt"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("12345"), 2, 1, S("abcdefghij3t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("12345"), 2, 2, S("abcdefghij34t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("12345"), 2, 3, S("abcdefghij345t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("12345"), 2, 4, S("abcdefghij345t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("12345"), 4, 0, S("abcdefghijt"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("12345"), 4, 1, S("abcdefghij5t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("12345"), 4, 2, S("abcdefghij5t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("12345"), 5, 0, S("abcdefghijt"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("12345"), 5, 1, S("abcdefghijt"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("1234567890"), 0, 0, S("abcdefghijt"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("1234567890"), 0, 1, S("abcdefghij1t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("1234567890"), 0, 5, S("abcdefghij12345t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("1234567890"), 0, 9, S("abcdefghij123456789t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("1234567890"), 0, 10, S("abcdefghij1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("1234567890"), 0, 11, S("abcdefghij1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("1234567890"), 1, 0, S("abcdefghijt"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("1234567890"), 1, 1, S("abcdefghij2t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("1234567890"), 1, 4, S("abcdefghij2345t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("1234567890"), 1, 8, S("abcdefghij23456789t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("1234567890"), 1, 9, S("abcdefghij234567890t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("1234567890"), 1, 10, S("abcdefghij234567890t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("1234567890"), 5, 0, S("abcdefghijt"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("1234567890"), 5, 1, S("abcdefghij6t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("1234567890"), 5, 2, S("abcdefghij67t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("1234567890"), 5, 4, S("abcdefghij6789t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("1234567890"), 5, 5, S("abcdefghij67890t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("1234567890"), 5, 6, S("abcdefghij67890t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("1234567890"), 9, 0, S("abcdefghijt"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("1234567890"), 9, 1, S("abcdefghij0t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("1234567890"), 9, 2, S("abcdefghij0t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("1234567890"), 10, 0, S("abcdefghijt"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("1234567890"), 10, 1, S("abcdefghijt"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("12345678901234567890"), 0, 0, S("abcdefghijt"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("12345678901234567890"), 0, 1, S("abcdefghij1t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("12345678901234567890"), 0, 10, S("abcdefghij1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("12345678901234567890"), 0, 19, S("abcdefghij1234567890123456789t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("12345678901234567890"), 0, 20, S("abcdefghij12345678901234567890t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("12345678901234567890"), 0, 21, S("abcdefghij12345678901234567890t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("12345678901234567890"), 1, 0, S("abcdefghijt"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("12345678901234567890"), 1, 1, S("abcdefghij2t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("12345678901234567890"), 1, 9, S("abcdefghij234567890t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("12345678901234567890"), 1, 18, S("abcdefghij234567890123456789t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("12345678901234567890"), 1, 19, S("abcdefghij2345678901234567890t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("12345678901234567890"), 1, 20, S("abcdefghij2345678901234567890t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("12345678901234567890"), 10, 0, S("abcdefghijt"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("12345678901234567890"), 10, 1, S("abcdefghij1t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("12345678901234567890"), 10, 5, S("abcdefghij12345t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("12345678901234567890"), 10, 9, S("abcdefghij123456789t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("12345678901234567890"), 10, 10, S("abcdefghij1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("12345678901234567890"), 10, 11, S("abcdefghij1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("12345678901234567890"), 19, 0, S("abcdefghijt"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("12345678901234567890"), 19, 1, S("abcdefghij0t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("12345678901234567890"), 19, 2, S("abcdefghij0t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("12345678901234567890"), 20, 0, S("abcdefghijt"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("12345678901234567890"), 20, 1, S("abcdefghijt"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, S(""), 0, 0, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, S(""), 0, 1, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, S(""), 1, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("12345"), 0, 0, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("12345"), 0, 1, S("abcdefghij1"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("12345"), 0, 2, S("abcdefghij12"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("12345"), 0, 4, S("abcdefghij1234"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("12345"), 0, 5, S("abcdefghij12345"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("12345"), 0, 6, S("abcdefghij12345"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("12345"), 1, 0, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("12345"), 1, 1, S("abcdefghij2"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("12345"), 1, 2, S("abcdefghij23"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("12345"), 1, 3, S("abcdefghij234"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("12345"), 1, 4, S("abcdefghij2345"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("12345"), 1, 5, S("abcdefghij2345"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("12345"), 2, 0, S("abcdefghij"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test49()
-{
- test(S("abcdefghijklmnopqrst"), 10, 10, S("12345"), 2, 1, S("abcdefghij3"));
- test(S("abcdefghijklmnopqrst"), 10, 10, S("12345"), 2, 2, S("abcdefghij34"));
- test(S("abcdefghijklmnopqrst"), 10, 10, S("12345"), 2, 3, S("abcdefghij345"));
- test(S("abcdefghijklmnopqrst"), 10, 10, S("12345"), 2, 4, S("abcdefghij345"));
- test(S("abcdefghijklmnopqrst"), 10, 10, S("12345"), 4, 0, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 10, S("12345"), 4, 1, S("abcdefghij5"));
- test(S("abcdefghijklmnopqrst"), 10, 10, S("12345"), 4, 2, S("abcdefghij5"));
- test(S("abcdefghijklmnopqrst"), 10, 10, S("12345"), 5, 0, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 10, S("12345"), 5, 1, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 10, S("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 10, 10, S("1234567890"), 0, 0, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 10, S("1234567890"), 0, 1, S("abcdefghij1"));
- test(S("abcdefghijklmnopqrst"), 10, 10, S("1234567890"), 0, 5, S("abcdefghij12345"));
- test(S("abcdefghijklmnopqrst"), 10, 10, S("1234567890"), 0, 9, S("abcdefghij123456789"));
- test(S("abcdefghijklmnopqrst"), 10, 10, S("1234567890"), 0, 10, S("abcdefghij1234567890"));
- test(S("abcdefghijklmnopqrst"), 10, 10, S("1234567890"), 0, 11, S("abcdefghij1234567890"));
- test(S("abcdefghijklmnopqrst"), 10, 10, S("1234567890"), 1, 0, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 10, S("1234567890"), 1, 1, S("abcdefghij2"));
- test(S("abcdefghijklmnopqrst"), 10, 10, S("1234567890"), 1, 4, S("abcdefghij2345"));
- test(S("abcdefghijklmnopqrst"), 10, 10, S("1234567890"), 1, 8, S("abcdefghij23456789"));
- test(S("abcdefghijklmnopqrst"), 10, 10, S("1234567890"), 1, 9, S("abcdefghij234567890"));
- test(S("abcdefghijklmnopqrst"), 10, 10, S("1234567890"), 1, 10, S("abcdefghij234567890"));
- test(S("abcdefghijklmnopqrst"), 10, 10, S("1234567890"), 5, 0, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 10, S("1234567890"), 5, 1, S("abcdefghij6"));
- test(S("abcdefghijklmnopqrst"), 10, 10, S("1234567890"), 5, 2, S("abcdefghij67"));
- test(S("abcdefghijklmnopqrst"), 10, 10, S("1234567890"), 5, 4, S("abcdefghij6789"));
- test(S("abcdefghijklmnopqrst"), 10, 10, S("1234567890"), 5, 5, S("abcdefghij67890"));
- test(S("abcdefghijklmnopqrst"), 10, 10, S("1234567890"), 5, 6, S("abcdefghij67890"));
- test(S("abcdefghijklmnopqrst"), 10, 10, S("1234567890"), 9, 0, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 10, S("1234567890"), 9, 1, S("abcdefghij0"));
- test(S("abcdefghijklmnopqrst"), 10, 10, S("1234567890"), 9, 2, S("abcdefghij0"));
- test(S("abcdefghijklmnopqrst"), 10, 10, S("1234567890"), 10, 0, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 10, S("1234567890"), 10, 1, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 10, S("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 10, 10, S("12345678901234567890"), 0, 0, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 10, S("12345678901234567890"), 0, 1, S("abcdefghij1"));
- test(S("abcdefghijklmnopqrst"), 10, 10, S("12345678901234567890"), 0, 10, S("abcdefghij1234567890"));
- test(S("abcdefghijklmnopqrst"), 10, 10, S("12345678901234567890"), 0, 19, S("abcdefghij1234567890123456789"));
- test(S("abcdefghijklmnopqrst"), 10, 10, S("12345678901234567890"), 0, 20, S("abcdefghij12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 10, 10, S("12345678901234567890"), 0, 21, S("abcdefghij12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 10, 10, S("12345678901234567890"), 1, 0, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 10, S("12345678901234567890"), 1, 1, S("abcdefghij2"));
- test(S("abcdefghijklmnopqrst"), 10, 10, S("12345678901234567890"), 1, 9, S("abcdefghij234567890"));
- test(S("abcdefghijklmnopqrst"), 10, 10, S("12345678901234567890"), 1, 18, S("abcdefghij234567890123456789"));
- test(S("abcdefghijklmnopqrst"), 10, 10, S("12345678901234567890"), 1, 19, S("abcdefghij2345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 10, 10, S("12345678901234567890"), 1, 20, S("abcdefghij2345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 10, 10, S("12345678901234567890"), 10, 0, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 10, S("12345678901234567890"), 10, 1, S("abcdefghij1"));
- test(S("abcdefghijklmnopqrst"), 10, 10, S("12345678901234567890"), 10, 5, S("abcdefghij12345"));
- test(S("abcdefghijklmnopqrst"), 10, 10, S("12345678901234567890"), 10, 9, S("abcdefghij123456789"));
- test(S("abcdefghijklmnopqrst"), 10, 10, S("12345678901234567890"), 10, 10, S("abcdefghij1234567890"));
- test(S("abcdefghijklmnopqrst"), 10, 10, S("12345678901234567890"), 10, 11, S("abcdefghij1234567890"));
- test(S("abcdefghijklmnopqrst"), 10, 10, S("12345678901234567890"), 19, 0, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 10, S("12345678901234567890"), 19, 1, S("abcdefghij0"));
- test(S("abcdefghijklmnopqrst"), 10, 10, S("12345678901234567890"), 19, 2, S("abcdefghij0"));
- test(S("abcdefghijklmnopqrst"), 10, 10, S("12345678901234567890"), 20, 0, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 10, S("12345678901234567890"), 20, 1, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 10, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 10, 11, S(""), 0, 0, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 11, S(""), 0, 1, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 11, S(""), 1, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 10, 11, S("12345"), 0, 0, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 11, S("12345"), 0, 1, S("abcdefghij1"));
- test(S("abcdefghijklmnopqrst"), 10, 11, S("12345"), 0, 2, S("abcdefghij12"));
- test(S("abcdefghijklmnopqrst"), 10, 11, S("12345"), 0, 4, S("abcdefghij1234"));
- test(S("abcdefghijklmnopqrst"), 10, 11, S("12345"), 0, 5, S("abcdefghij12345"));
- test(S("abcdefghijklmnopqrst"), 10, 11, S("12345"), 0, 6, S("abcdefghij12345"));
- test(S("abcdefghijklmnopqrst"), 10, 11, S("12345"), 1, 0, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 11, S("12345"), 1, 1, S("abcdefghij2"));
- test(S("abcdefghijklmnopqrst"), 10, 11, S("12345"), 1, 2, S("abcdefghij23"));
- test(S("abcdefghijklmnopqrst"), 10, 11, S("12345"), 1, 3, S("abcdefghij234"));
- test(S("abcdefghijklmnopqrst"), 10, 11, S("12345"), 1, 4, S("abcdefghij2345"));
- test(S("abcdefghijklmnopqrst"), 10, 11, S("12345"), 1, 5, S("abcdefghij2345"));
- test(S("abcdefghijklmnopqrst"), 10, 11, S("12345"), 2, 0, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 11, S("12345"), 2, 1, S("abcdefghij3"));
- test(S("abcdefghijklmnopqrst"), 10, 11, S("12345"), 2, 2, S("abcdefghij34"));
- test(S("abcdefghijklmnopqrst"), 10, 11, S("12345"), 2, 3, S("abcdefghij345"));
- test(S("abcdefghijklmnopqrst"), 10, 11, S("12345"), 2, 4, S("abcdefghij345"));
- test(S("abcdefghijklmnopqrst"), 10, 11, S("12345"), 4, 0, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 11, S("12345"), 4, 1, S("abcdefghij5"));
- test(S("abcdefghijklmnopqrst"), 10, 11, S("12345"), 4, 2, S("abcdefghij5"));
- test(S("abcdefghijklmnopqrst"), 10, 11, S("12345"), 5, 0, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 11, S("12345"), 5, 1, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 11, S("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 10, 11, S("1234567890"), 0, 0, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 11, S("1234567890"), 0, 1, S("abcdefghij1"));
- test(S("abcdefghijklmnopqrst"), 10, 11, S("1234567890"), 0, 5, S("abcdefghij12345"));
- test(S("abcdefghijklmnopqrst"), 10, 11, S("1234567890"), 0, 9, S("abcdefghij123456789"));
- test(S("abcdefghijklmnopqrst"), 10, 11, S("1234567890"), 0, 10, S("abcdefghij1234567890"));
- test(S("abcdefghijklmnopqrst"), 10, 11, S("1234567890"), 0, 11, S("abcdefghij1234567890"));
- test(S("abcdefghijklmnopqrst"), 10, 11, S("1234567890"), 1, 0, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 11, S("1234567890"), 1, 1, S("abcdefghij2"));
- test(S("abcdefghijklmnopqrst"), 10, 11, S("1234567890"), 1, 4, S("abcdefghij2345"));
- test(S("abcdefghijklmnopqrst"), 10, 11, S("1234567890"), 1, 8, S("abcdefghij23456789"));
- test(S("abcdefghijklmnopqrst"), 10, 11, S("1234567890"), 1, 9, S("abcdefghij234567890"));
- test(S("abcdefghijklmnopqrst"), 10, 11, S("1234567890"), 1, 10, S("abcdefghij234567890"));
- test(S("abcdefghijklmnopqrst"), 10, 11, S("1234567890"), 5, 0, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 11, S("1234567890"), 5, 1, S("abcdefghij6"));
- test(S("abcdefghijklmnopqrst"), 10, 11, S("1234567890"), 5, 2, S("abcdefghij67"));
- test(S("abcdefghijklmnopqrst"), 10, 11, S("1234567890"), 5, 4, S("abcdefghij6789"));
+TEST_CONSTEXPR_CXX20 bool test49() {
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("12345"), 2, 1, S("abcdefghij3"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("12345"), 2, 2, S("abcdefghij34"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("12345"), 2, 3, S("abcdefghij345"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("12345"), 2, 4, S("abcdefghij345"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("12345"), 4, 0, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("12345"), 4, 1, S("abcdefghij5"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("12345"), 4, 2, S("abcdefghij5"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("12345"), 5, 0, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("12345"), 5, 1, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("1234567890"), 0, 0, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("1234567890"), 0, 1, S("abcdefghij1"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("1234567890"), 0, 5, S("abcdefghij12345"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("1234567890"), 0, 9, S("abcdefghij123456789"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("1234567890"), 0, 10, S("abcdefghij1234567890"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("1234567890"), 0, 11, S("abcdefghij1234567890"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("1234567890"), 1, 0, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("1234567890"), 1, 1, S("abcdefghij2"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("1234567890"), 1, 4, S("abcdefghij2345"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("1234567890"), 1, 8, S("abcdefghij23456789"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("1234567890"), 1, 9, S("abcdefghij234567890"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("1234567890"), 1, 10, S("abcdefghij234567890"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("1234567890"), 5, 0, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("1234567890"), 5, 1, S("abcdefghij6"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("1234567890"), 5, 2, S("abcdefghij67"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("1234567890"), 5, 4, S("abcdefghij6789"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("1234567890"), 5, 5, S("abcdefghij67890"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("1234567890"), 5, 6, S("abcdefghij67890"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("1234567890"), 9, 0, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("1234567890"), 9, 1, S("abcdefghij0"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("1234567890"), 9, 2, S("abcdefghij0"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("1234567890"), 10, 0, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("1234567890"), 10, 1, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("12345678901234567890"), 0, 0, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("12345678901234567890"), 0, 1, S("abcdefghij1"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("12345678901234567890"), 0, 10, S("abcdefghij1234567890"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("12345678901234567890"), 0, 19, S("abcdefghij1234567890123456789"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("12345678901234567890"), 0, 20, S("abcdefghij12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("12345678901234567890"), 0, 21, S("abcdefghij12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("12345678901234567890"), 1, 0, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("12345678901234567890"), 1, 1, S("abcdefghij2"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("12345678901234567890"), 1, 9, S("abcdefghij234567890"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("12345678901234567890"), 1, 18, S("abcdefghij234567890123456789"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("12345678901234567890"), 1, 19, S("abcdefghij2345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("12345678901234567890"), 1, 20, S("abcdefghij2345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("12345678901234567890"), 10, 0, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("12345678901234567890"), 10, 1, S("abcdefghij1"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("12345678901234567890"), 10, 5, S("abcdefghij12345"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("12345678901234567890"), 10, 9, S("abcdefghij123456789"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("12345678901234567890"), 10, 10, S("abcdefghij1234567890"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("12345678901234567890"), 10, 11, S("abcdefghij1234567890"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("12345678901234567890"), 19, 0, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("12345678901234567890"), 19, 1, S("abcdefghij0"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("12345678901234567890"), 19, 2, S("abcdefghij0"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("12345678901234567890"), 20, 0, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("12345678901234567890"), 20, 1, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, S(""), 0, 0, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, S(""), 0, 1, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, S(""), 1, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("12345"), 0, 0, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("12345"), 0, 1, S("abcdefghij1"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("12345"), 0, 2, S("abcdefghij12"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("12345"), 0, 4, S("abcdefghij1234"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("12345"), 0, 5, S("abcdefghij12345"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("12345"), 0, 6, S("abcdefghij12345"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("12345"), 1, 0, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("12345"), 1, 1, S("abcdefghij2"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("12345"), 1, 2, S("abcdefghij23"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("12345"), 1, 3, S("abcdefghij234"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("12345"), 1, 4, S("abcdefghij2345"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("12345"), 1, 5, S("abcdefghij2345"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("12345"), 2, 0, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("12345"), 2, 1, S("abcdefghij3"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("12345"), 2, 2, S("abcdefghij34"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("12345"), 2, 3, S("abcdefghij345"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("12345"), 2, 4, S("abcdefghij345"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("12345"), 4, 0, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("12345"), 4, 1, S("abcdefghij5"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("12345"), 4, 2, S("abcdefghij5"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("12345"), 5, 0, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("12345"), 5, 1, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("1234567890"), 0, 0, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("1234567890"), 0, 1, S("abcdefghij1"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("1234567890"), 0, 5, S("abcdefghij12345"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("1234567890"), 0, 9, S("abcdefghij123456789"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("1234567890"), 0, 10, S("abcdefghij1234567890"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("1234567890"), 0, 11, S("abcdefghij1234567890"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("1234567890"), 1, 0, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("1234567890"), 1, 1, S("abcdefghij2"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("1234567890"), 1, 4, S("abcdefghij2345"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("1234567890"), 1, 8, S("abcdefghij23456789"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("1234567890"), 1, 9, S("abcdefghij234567890"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("1234567890"), 1, 10, S("abcdefghij234567890"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("1234567890"), 5, 0, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("1234567890"), 5, 1, S("abcdefghij6"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("1234567890"), 5, 2, S("abcdefghij67"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("1234567890"), 5, 4, S("abcdefghij6789"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test50()
-{
- test(S("abcdefghijklmnopqrst"), 10, 11, S("1234567890"), 5, 5, S("abcdefghij67890"));
- test(S("abcdefghijklmnopqrst"), 10, 11, S("1234567890"), 5, 6, S("abcdefghij67890"));
- test(S("abcdefghijklmnopqrst"), 10, 11, S("1234567890"), 9, 0, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 11, S("1234567890"), 9, 1, S("abcdefghij0"));
- test(S("abcdefghijklmnopqrst"), 10, 11, S("1234567890"), 9, 2, S("abcdefghij0"));
- test(S("abcdefghijklmnopqrst"), 10, 11, S("1234567890"), 10, 0, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 11, S("1234567890"), 10, 1, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 11, S("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 10, 11, S("12345678901234567890"), 0, 0, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 11, S("12345678901234567890"), 0, 1, S("abcdefghij1"));
- test(S("abcdefghijklmnopqrst"), 10, 11, S("12345678901234567890"), 0, 10, S("abcdefghij1234567890"));
- test(S("abcdefghijklmnopqrst"), 10, 11, S("12345678901234567890"), 0, 19, S("abcdefghij1234567890123456789"));
- test(S("abcdefghijklmnopqrst"), 10, 11, S("12345678901234567890"), 0, 20, S("abcdefghij12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 10, 11, S("12345678901234567890"), 0, 21, S("abcdefghij12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 10, 11, S("12345678901234567890"), 1, 0, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 11, S("12345678901234567890"), 1, 1, S("abcdefghij2"));
- test(S("abcdefghijklmnopqrst"), 10, 11, S("12345678901234567890"), 1, 9, S("abcdefghij234567890"));
- test(S("abcdefghijklmnopqrst"), 10, 11, S("12345678901234567890"), 1, 18, S("abcdefghij234567890123456789"));
- test(S("abcdefghijklmnopqrst"), 10, 11, S("12345678901234567890"), 1, 19, S("abcdefghij2345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 10, 11, S("12345678901234567890"), 1, 20, S("abcdefghij2345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 10, 11, S("12345678901234567890"), 10, 0, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 11, S("12345678901234567890"), 10, 1, S("abcdefghij1"));
- test(S("abcdefghijklmnopqrst"), 10, 11, S("12345678901234567890"), 10, 5, S("abcdefghij12345"));
- test(S("abcdefghijklmnopqrst"), 10, 11, S("12345678901234567890"), 10, 9, S("abcdefghij123456789"));
- test(S("abcdefghijklmnopqrst"), 10, 11, S("12345678901234567890"), 10, 10, S("abcdefghij1234567890"));
- test(S("abcdefghijklmnopqrst"), 10, 11, S("12345678901234567890"), 10, 11, S("abcdefghij1234567890"));
- test(S("abcdefghijklmnopqrst"), 10, 11, S("12345678901234567890"), 19, 0, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 11, S("12345678901234567890"), 19, 1, S("abcdefghij0"));
- test(S("abcdefghijklmnopqrst"), 10, 11, S("12345678901234567890"), 19, 2, S("abcdefghij0"));
- test(S("abcdefghijklmnopqrst"), 10, 11, S("12345678901234567890"), 20, 0, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 11, S("12345678901234567890"), 20, 1, S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 11, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 19, 0, S(""), 0, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, 0, S(""), 0, 1, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, 0, S(""), 1, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 19, 0, S("12345"), 0, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, 0, S("12345"), 0, 1, S("abcdefghijklmnopqrs1t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, S("12345"), 0, 2, S("abcdefghijklmnopqrs12t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, S("12345"), 0, 4, S("abcdefghijklmnopqrs1234t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, S("12345"), 0, 5, S("abcdefghijklmnopqrs12345t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, S("12345"), 0, 6, S("abcdefghijklmnopqrs12345t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, S("12345"), 1, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, 0, S("12345"), 1, 1, S("abcdefghijklmnopqrs2t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, S("12345"), 1, 2, S("abcdefghijklmnopqrs23t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, S("12345"), 1, 3, S("abcdefghijklmnopqrs234t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, S("12345"), 1, 4, S("abcdefghijklmnopqrs2345t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, S("12345"), 1, 5, S("abcdefghijklmnopqrs2345t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, S("12345"), 2, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, 0, S("12345"), 2, 1, S("abcdefghijklmnopqrs3t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, S("12345"), 2, 2, S("abcdefghijklmnopqrs34t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, S("12345"), 2, 3, S("abcdefghijklmnopqrs345t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, S("12345"), 2, 4, S("abcdefghijklmnopqrs345t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, S("12345"), 4, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, 0, S("12345"), 4, 1, S("abcdefghijklmnopqrs5t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, S("12345"), 4, 2, S("abcdefghijklmnopqrs5t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, S("12345"), 5, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, 0, S("12345"), 5, 1, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, 0, S("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 19, 0, S("1234567890"), 0, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, 0, S("1234567890"), 0, 1, S("abcdefghijklmnopqrs1t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, S("1234567890"), 0, 5, S("abcdefghijklmnopqrs12345t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, S("1234567890"), 0, 9, S("abcdefghijklmnopqrs123456789t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, S("1234567890"), 0, 10, S("abcdefghijklmnopqrs1234567890t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, S("1234567890"), 0, 11, S("abcdefghijklmnopqrs1234567890t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, S("1234567890"), 1, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, 0, S("1234567890"), 1, 1, S("abcdefghijklmnopqrs2t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, S("1234567890"), 1, 4, S("abcdefghijklmnopqrs2345t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, S("1234567890"), 1, 8, S("abcdefghijklmnopqrs23456789t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, S("1234567890"), 1, 9, S("abcdefghijklmnopqrs234567890t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, S("1234567890"), 1, 10, S("abcdefghijklmnopqrs234567890t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, S("1234567890"), 5, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, 0, S("1234567890"), 5, 1, S("abcdefghijklmnopqrs6t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, S("1234567890"), 5, 2, S("abcdefghijklmnopqrs67t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, S("1234567890"), 5, 4, S("abcdefghijklmnopqrs6789t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, S("1234567890"), 5, 5, S("abcdefghijklmnopqrs67890t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, S("1234567890"), 5, 6, S("abcdefghijklmnopqrs67890t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, S("1234567890"), 9, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, 0, S("1234567890"), 9, 1, S("abcdefghijklmnopqrs0t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, S("1234567890"), 9, 2, S("abcdefghijklmnopqrs0t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, S("1234567890"), 10, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, 0, S("1234567890"), 10, 1, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, 0, S("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 19, 0, S("12345678901234567890"), 0, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, 0, S("12345678901234567890"), 0, 1, S("abcdefghijklmnopqrs1t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, S("12345678901234567890"), 0, 10, S("abcdefghijklmnopqrs1234567890t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, S("12345678901234567890"), 0, 19, S("abcdefghijklmnopqrs1234567890123456789t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, S("12345678901234567890"), 0, 20, S("abcdefghijklmnopqrs12345678901234567890t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, S("12345678901234567890"), 0, 21, S("abcdefghijklmnopqrs12345678901234567890t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, S("12345678901234567890"), 1, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, 0, S("12345678901234567890"), 1, 1, S("abcdefghijklmnopqrs2t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, S("12345678901234567890"), 1, 9, S("abcdefghijklmnopqrs234567890t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, S("12345678901234567890"), 1, 18, S("abcdefghijklmnopqrs234567890123456789t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, S("12345678901234567890"), 1, 19, S("abcdefghijklmnopqrs2345678901234567890t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, S("12345678901234567890"), 1, 20, S("abcdefghijklmnopqrs2345678901234567890t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, S("12345678901234567890"), 10, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, 0, S("12345678901234567890"), 10, 1, S("abcdefghijklmnopqrs1t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, S("12345678901234567890"), 10, 5, S("abcdefghijklmnopqrs12345t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, S("12345678901234567890"), 10, 9, S("abcdefghijklmnopqrs123456789t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, S("12345678901234567890"), 10, 10, S("abcdefghijklmnopqrs1234567890t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, S("12345678901234567890"), 10, 11, S("abcdefghijklmnopqrs1234567890t"));
+TEST_CONSTEXPR_CXX20 bool test50() {
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("1234567890"), 5, 5, S("abcdefghij67890"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("1234567890"), 5, 6, S("abcdefghij67890"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("1234567890"), 9, 0, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("1234567890"), 9, 1, S("abcdefghij0"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("1234567890"), 9, 2, S("abcdefghij0"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("1234567890"), 10, 0, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("1234567890"), 10, 1, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("12345678901234567890"), 0, 0, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("12345678901234567890"), 0, 1, S("abcdefghij1"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("12345678901234567890"), 0, 10, S("abcdefghij1234567890"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("12345678901234567890"), 0, 19, S("abcdefghij1234567890123456789"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("12345678901234567890"), 0, 20, S("abcdefghij12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("12345678901234567890"), 0, 21, S("abcdefghij12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("12345678901234567890"), 1, 0, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("12345678901234567890"), 1, 1, S("abcdefghij2"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("12345678901234567890"), 1, 9, S("abcdefghij234567890"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("12345678901234567890"), 1, 18, S("abcdefghij234567890123456789"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("12345678901234567890"), 1, 19, S("abcdefghij2345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("12345678901234567890"), 1, 20, S("abcdefghij2345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("12345678901234567890"), 10, 0, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("12345678901234567890"), 10, 1, S("abcdefghij1"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("12345678901234567890"), 10, 5, S("abcdefghij12345"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("12345678901234567890"), 10, 9, S("abcdefghij123456789"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("12345678901234567890"), 10, 10, S("abcdefghij1234567890"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("12345678901234567890"), 10, 11, S("abcdefghij1234567890"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("12345678901234567890"), 19, 0, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("12345678901234567890"), 19, 1, S("abcdefghij0"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("12345678901234567890"), 19, 2, S("abcdefghij0"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("12345678901234567890"), 20, 0, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("12345678901234567890"), 20, 1, S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, S(""), 0, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, S(""), 0, 1, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, S(""), 1, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("12345"), 0, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("12345"), 0, 1, S("abcdefghijklmnopqrs1t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("12345"), 0, 2, S("abcdefghijklmnopqrs12t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("12345"), 0, 4, S("abcdefghijklmnopqrs1234t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("12345"), 0, 5, S("abcdefghijklmnopqrs12345t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("12345"), 0, 6, S("abcdefghijklmnopqrs12345t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("12345"), 1, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("12345"), 1, 1, S("abcdefghijklmnopqrs2t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("12345"), 1, 2, S("abcdefghijklmnopqrs23t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("12345"), 1, 3, S("abcdefghijklmnopqrs234t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("12345"), 1, 4, S("abcdefghijklmnopqrs2345t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("12345"), 1, 5, S("abcdefghijklmnopqrs2345t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("12345"), 2, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("12345"), 2, 1, S("abcdefghijklmnopqrs3t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("12345"), 2, 2, S("abcdefghijklmnopqrs34t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("12345"), 2, 3, S("abcdefghijklmnopqrs345t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("12345"), 2, 4, S("abcdefghijklmnopqrs345t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("12345"), 4, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("12345"), 4, 1, S("abcdefghijklmnopqrs5t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("12345"), 4, 2, S("abcdefghijklmnopqrs5t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("12345"), 5, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("12345"), 5, 1, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("1234567890"), 0, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("1234567890"), 0, 1, S("abcdefghijklmnopqrs1t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("1234567890"), 0, 5, S("abcdefghijklmnopqrs12345t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("1234567890"), 0, 9, S("abcdefghijklmnopqrs123456789t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("1234567890"), 0, 10, S("abcdefghijklmnopqrs1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("1234567890"), 0, 11, S("abcdefghijklmnopqrs1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("1234567890"), 1, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("1234567890"), 1, 1, S("abcdefghijklmnopqrs2t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("1234567890"), 1, 4, S("abcdefghijklmnopqrs2345t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("1234567890"), 1, 8, S("abcdefghijklmnopqrs23456789t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("1234567890"), 1, 9, S("abcdefghijklmnopqrs234567890t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("1234567890"), 1, 10, S("abcdefghijklmnopqrs234567890t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("1234567890"), 5, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("1234567890"), 5, 1, S("abcdefghijklmnopqrs6t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("1234567890"), 5, 2, S("abcdefghijklmnopqrs67t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("1234567890"), 5, 4, S("abcdefghijklmnopqrs6789t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("1234567890"), 5, 5, S("abcdefghijklmnopqrs67890t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("1234567890"), 5, 6, S("abcdefghijklmnopqrs67890t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("1234567890"), 9, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("1234567890"), 9, 1, S("abcdefghijklmnopqrs0t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("1234567890"), 9, 2, S("abcdefghijklmnopqrs0t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("1234567890"), 10, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("1234567890"), 10, 1, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("12345678901234567890"), 0, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("12345678901234567890"), 0, 1, S("abcdefghijklmnopqrs1t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("12345678901234567890"), 0, 10, S("abcdefghijklmnopqrs1234567890t"));
+ test(
+ S("abcdefghijklmnopqrst"), 19, 0, S("12345678901234567890"), 0, 19, S("abcdefghijklmnopqrs1234567890123456789t"));
+ test(S("abcdefghijklmnopqrst"),
+ 19,
+ 0,
+ S("12345678901234567890"),
+ 0,
+ 20,
+ S("abcdefghijklmnopqrs12345678901234567890t"));
+ test(S("abcdefghijklmnopqrst"),
+ 19,
+ 0,
+ S("12345678901234567890"),
+ 0,
+ 21,
+ S("abcdefghijklmnopqrs12345678901234567890t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("12345678901234567890"), 1, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("12345678901234567890"), 1, 1, S("abcdefghijklmnopqrs2t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("12345678901234567890"), 1, 9, S("abcdefghijklmnopqrs234567890t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("12345678901234567890"), 1, 18, S("abcdefghijklmnopqrs234567890123456789t"));
+ test(
+ S("abcdefghijklmnopqrst"), 19, 0, S("12345678901234567890"), 1, 19, S("abcdefghijklmnopqrs2345678901234567890t"));
+ test(
+ S("abcdefghijklmnopqrst"), 19, 0, S("12345678901234567890"), 1, 20, S("abcdefghijklmnopqrs2345678901234567890t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("12345678901234567890"), 10, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("12345678901234567890"), 10, 1, S("abcdefghijklmnopqrs1t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("12345678901234567890"), 10, 5, S("abcdefghijklmnopqrs12345t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("12345678901234567890"), 10, 9, S("abcdefghijklmnopqrs123456789t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("12345678901234567890"), 10, 10, S("abcdefghijklmnopqrs1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("12345678901234567890"), 10, 11, S("abcdefghijklmnopqrs1234567890t"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test51()
-{
- test(S("abcdefghijklmnopqrst"), 19, 0, S("12345678901234567890"), 19, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, 0, S("12345678901234567890"), 19, 1, S("abcdefghijklmnopqrs0t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, S("12345678901234567890"), 19, 2, S("abcdefghijklmnopqrs0t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, S("12345678901234567890"), 20, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, 0, S("12345678901234567890"), 20, 1, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, 0, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 19, 1, S(""), 0, 0, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 1, S(""), 0, 1, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 1, S(""), 1, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 19, 1, S("12345"), 0, 0, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 1, S("12345"), 0, 1, S("abcdefghijklmnopqrs1"));
- test(S("abcdefghijklmnopqrst"), 19, 1, S("12345"), 0, 2, S("abcdefghijklmnopqrs12"));
- test(S("abcdefghijklmnopqrst"), 19, 1, S("12345"), 0, 4, S("abcdefghijklmnopqrs1234"));
- test(S("abcdefghijklmnopqrst"), 19, 1, S("12345"), 0, 5, S("abcdefghijklmnopqrs12345"));
- test(S("abcdefghijklmnopqrst"), 19, 1, S("12345"), 0, 6, S("abcdefghijklmnopqrs12345"));
- test(S("abcdefghijklmnopqrst"), 19, 1, S("12345"), 1, 0, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 1, S("12345"), 1, 1, S("abcdefghijklmnopqrs2"));
- test(S("abcdefghijklmnopqrst"), 19, 1, S("12345"), 1, 2, S("abcdefghijklmnopqrs23"));
- test(S("abcdefghijklmnopqrst"), 19, 1, S("12345"), 1, 3, S("abcdefghijklmnopqrs234"));
- test(S("abcdefghijklmnopqrst"), 19, 1, S("12345"), 1, 4, S("abcdefghijklmnopqrs2345"));
- test(S("abcdefghijklmnopqrst"), 19, 1, S("12345"), 1, 5, S("abcdefghijklmnopqrs2345"));
- test(S("abcdefghijklmnopqrst"), 19, 1, S("12345"), 2, 0, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 1, S("12345"), 2, 1, S("abcdefghijklmnopqrs3"));
- test(S("abcdefghijklmnopqrst"), 19, 1, S("12345"), 2, 2, S("abcdefghijklmnopqrs34"));
- test(S("abcdefghijklmnopqrst"), 19, 1, S("12345"), 2, 3, S("abcdefghijklmnopqrs345"));
- test(S("abcdefghijklmnopqrst"), 19, 1, S("12345"), 2, 4, S("abcdefghijklmnopqrs345"));
- test(S("abcdefghijklmnopqrst"), 19, 1, S("12345"), 4, 0, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 1, S("12345"), 4, 1, S("abcdefghijklmnopqrs5"));
- test(S("abcdefghijklmnopqrst"), 19, 1, S("12345"), 4, 2, S("abcdefghijklmnopqrs5"));
- test(S("abcdefghijklmnopqrst"), 19, 1, S("12345"), 5, 0, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 1, S("12345"), 5, 1, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 1, S("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 19, 1, S("1234567890"), 0, 0, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 1, S("1234567890"), 0, 1, S("abcdefghijklmnopqrs1"));
- test(S("abcdefghijklmnopqrst"), 19, 1, S("1234567890"), 0, 5, S("abcdefghijklmnopqrs12345"));
- test(S("abcdefghijklmnopqrst"), 19, 1, S("1234567890"), 0, 9, S("abcdefghijklmnopqrs123456789"));
- test(S("abcdefghijklmnopqrst"), 19, 1, S("1234567890"), 0, 10, S("abcdefghijklmnopqrs1234567890"));
- test(S("abcdefghijklmnopqrst"), 19, 1, S("1234567890"), 0, 11, S("abcdefghijklmnopqrs1234567890"));
- test(S("abcdefghijklmnopqrst"), 19, 1, S("1234567890"), 1, 0, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 1, S("1234567890"), 1, 1, S("abcdefghijklmnopqrs2"));
- test(S("abcdefghijklmnopqrst"), 19, 1, S("1234567890"), 1, 4, S("abcdefghijklmnopqrs2345"));
- test(S("abcdefghijklmnopqrst"), 19, 1, S("1234567890"), 1, 8, S("abcdefghijklmnopqrs23456789"));
- test(S("abcdefghijklmnopqrst"), 19, 1, S("1234567890"), 1, 9, S("abcdefghijklmnopqrs234567890"));
- test(S("abcdefghijklmnopqrst"), 19, 1, S("1234567890"), 1, 10, S("abcdefghijklmnopqrs234567890"));
- test(S("abcdefghijklmnopqrst"), 19, 1, S("1234567890"), 5, 0, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 1, S("1234567890"), 5, 1, S("abcdefghijklmnopqrs6"));
- test(S("abcdefghijklmnopqrst"), 19, 1, S("1234567890"), 5, 2, S("abcdefghijklmnopqrs67"));
- test(S("abcdefghijklmnopqrst"), 19, 1, S("1234567890"), 5, 4, S("abcdefghijklmnopqrs6789"));
- test(S("abcdefghijklmnopqrst"), 19, 1, S("1234567890"), 5, 5, S("abcdefghijklmnopqrs67890"));
- test(S("abcdefghijklmnopqrst"), 19, 1, S("1234567890"), 5, 6, S("abcdefghijklmnopqrs67890"));
- test(S("abcdefghijklmnopqrst"), 19, 1, S("1234567890"), 9, 0, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 1, S("1234567890"), 9, 1, S("abcdefghijklmnopqrs0"));
- test(S("abcdefghijklmnopqrst"), 19, 1, S("1234567890"), 9, 2, S("abcdefghijklmnopqrs0"));
- test(S("abcdefghijklmnopqrst"), 19, 1, S("1234567890"), 10, 0, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 1, S("1234567890"), 10, 1, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 1, S("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 19, 1, S("12345678901234567890"), 0, 0, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 1, S("12345678901234567890"), 0, 1, S("abcdefghijklmnopqrs1"));
- test(S("abcdefghijklmnopqrst"), 19, 1, S("12345678901234567890"), 0, 10, S("abcdefghijklmnopqrs1234567890"));
- test(S("abcdefghijklmnopqrst"), 19, 1, S("12345678901234567890"), 0, 19, S("abcdefghijklmnopqrs1234567890123456789"));
- test(S("abcdefghijklmnopqrst"), 19, 1, S("12345678901234567890"), 0, 20, S("abcdefghijklmnopqrs12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 19, 1, S("12345678901234567890"), 0, 21, S("abcdefghijklmnopqrs12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 19, 1, S("12345678901234567890"), 1, 0, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 1, S("12345678901234567890"), 1, 1, S("abcdefghijklmnopqrs2"));
- test(S("abcdefghijklmnopqrst"), 19, 1, S("12345678901234567890"), 1, 9, S("abcdefghijklmnopqrs234567890"));
- test(S("abcdefghijklmnopqrst"), 19, 1, S("12345678901234567890"), 1, 18, S("abcdefghijklmnopqrs234567890123456789"));
- test(S("abcdefghijklmnopqrst"), 19, 1, S("12345678901234567890"), 1, 19, S("abcdefghijklmnopqrs2345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 19, 1, S("12345678901234567890"), 1, 20, S("abcdefghijklmnopqrs2345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 19, 1, S("12345678901234567890"), 10, 0, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 1, S("12345678901234567890"), 10, 1, S("abcdefghijklmnopqrs1"));
- test(S("abcdefghijklmnopqrst"), 19, 1, S("12345678901234567890"), 10, 5, S("abcdefghijklmnopqrs12345"));
- test(S("abcdefghijklmnopqrst"), 19, 1, S("12345678901234567890"), 10, 9, S("abcdefghijklmnopqrs123456789"));
- test(S("abcdefghijklmnopqrst"), 19, 1, S("12345678901234567890"), 10, 10, S("abcdefghijklmnopqrs1234567890"));
- test(S("abcdefghijklmnopqrst"), 19, 1, S("12345678901234567890"), 10, 11, S("abcdefghijklmnopqrs1234567890"));
- test(S("abcdefghijklmnopqrst"), 19, 1, S("12345678901234567890"), 19, 0, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 1, S("12345678901234567890"), 19, 1, S("abcdefghijklmnopqrs0"));
- test(S("abcdefghijklmnopqrst"), 19, 1, S("12345678901234567890"), 19, 2, S("abcdefghijklmnopqrs0"));
- test(S("abcdefghijklmnopqrst"), 19, 1, S("12345678901234567890"), 20, 0, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 1, S("12345678901234567890"), 20, 1, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 1, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 19, 2, S(""), 0, 0, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 2, S(""), 0, 1, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 2, S(""), 1, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 19, 2, S("12345"), 0, 0, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 2, S("12345"), 0, 1, S("abcdefghijklmnopqrs1"));
- test(S("abcdefghijklmnopqrst"), 19, 2, S("12345"), 0, 2, S("abcdefghijklmnopqrs12"));
- test(S("abcdefghijklmnopqrst"), 19, 2, S("12345"), 0, 4, S("abcdefghijklmnopqrs1234"));
- test(S("abcdefghijklmnopqrst"), 19, 2, S("12345"), 0, 5, S("abcdefghijklmnopqrs12345"));
- test(S("abcdefghijklmnopqrst"), 19, 2, S("12345"), 0, 6, S("abcdefghijklmnopqrs12345"));
- test(S("abcdefghijklmnopqrst"), 19, 2, S("12345"), 1, 0, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 2, S("12345"), 1, 1, S("abcdefghijklmnopqrs2"));
- test(S("abcdefghijklmnopqrst"), 19, 2, S("12345"), 1, 2, S("abcdefghijklmnopqrs23"));
- test(S("abcdefghijklmnopqrst"), 19, 2, S("12345"), 1, 3, S("abcdefghijklmnopqrs234"));
- test(S("abcdefghijklmnopqrst"), 19, 2, S("12345"), 1, 4, S("abcdefghijklmnopqrs2345"));
- test(S("abcdefghijklmnopqrst"), 19, 2, S("12345"), 1, 5, S("abcdefghijklmnopqrs2345"));
- test(S("abcdefghijklmnopqrst"), 19, 2, S("12345"), 2, 0, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 2, S("12345"), 2, 1, S("abcdefghijklmnopqrs3"));
- test(S("abcdefghijklmnopqrst"), 19, 2, S("12345"), 2, 2, S("abcdefghijklmnopqrs34"));
- test(S("abcdefghijklmnopqrst"), 19, 2, S("12345"), 2, 3, S("abcdefghijklmnopqrs345"));
- test(S("abcdefghijklmnopqrst"), 19, 2, S("12345"), 2, 4, S("abcdefghijklmnopqrs345"));
+TEST_CONSTEXPR_CXX20 bool test51() {
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("12345678901234567890"), 19, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("12345678901234567890"), 19, 1, S("abcdefghijklmnopqrs0t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("12345678901234567890"), 19, 2, S("abcdefghijklmnopqrs0t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("12345678901234567890"), 20, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("12345678901234567890"), 20, 1, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, S(""), 0, 0, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, S(""), 0, 1, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, S(""), 1, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("12345"), 0, 0, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("12345"), 0, 1, S("abcdefghijklmnopqrs1"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("12345"), 0, 2, S("abcdefghijklmnopqrs12"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("12345"), 0, 4, S("abcdefghijklmnopqrs1234"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("12345"), 0, 5, S("abcdefghijklmnopqrs12345"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("12345"), 0, 6, S("abcdefghijklmnopqrs12345"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("12345"), 1, 0, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("12345"), 1, 1, S("abcdefghijklmnopqrs2"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("12345"), 1, 2, S("abcdefghijklmnopqrs23"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("12345"), 1, 3, S("abcdefghijklmnopqrs234"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("12345"), 1, 4, S("abcdefghijklmnopqrs2345"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("12345"), 1, 5, S("abcdefghijklmnopqrs2345"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("12345"), 2, 0, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("12345"), 2, 1, S("abcdefghijklmnopqrs3"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("12345"), 2, 2, S("abcdefghijklmnopqrs34"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("12345"), 2, 3, S("abcdefghijklmnopqrs345"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("12345"), 2, 4, S("abcdefghijklmnopqrs345"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("12345"), 4, 0, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("12345"), 4, 1, S("abcdefghijklmnopqrs5"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("12345"), 4, 2, S("abcdefghijklmnopqrs5"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("12345"), 5, 0, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("12345"), 5, 1, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("1234567890"), 0, 0, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("1234567890"), 0, 1, S("abcdefghijklmnopqrs1"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("1234567890"), 0, 5, S("abcdefghijklmnopqrs12345"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("1234567890"), 0, 9, S("abcdefghijklmnopqrs123456789"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("1234567890"), 0, 10, S("abcdefghijklmnopqrs1234567890"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("1234567890"), 0, 11, S("abcdefghijklmnopqrs1234567890"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("1234567890"), 1, 0, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("1234567890"), 1, 1, S("abcdefghijklmnopqrs2"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("1234567890"), 1, 4, S("abcdefghijklmnopqrs2345"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("1234567890"), 1, 8, S("abcdefghijklmnopqrs23456789"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("1234567890"), 1, 9, S("abcdefghijklmnopqrs234567890"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("1234567890"), 1, 10, S("abcdefghijklmnopqrs234567890"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("1234567890"), 5, 0, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("1234567890"), 5, 1, S("abcdefghijklmnopqrs6"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("1234567890"), 5, 2, S("abcdefghijklmnopqrs67"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("1234567890"), 5, 4, S("abcdefghijklmnopqrs6789"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("1234567890"), 5, 5, S("abcdefghijklmnopqrs67890"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("1234567890"), 5, 6, S("abcdefghijklmnopqrs67890"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("1234567890"), 9, 0, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("1234567890"), 9, 1, S("abcdefghijklmnopqrs0"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("1234567890"), 9, 2, S("abcdefghijklmnopqrs0"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("1234567890"), 10, 0, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("1234567890"), 10, 1, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("12345678901234567890"), 0, 0, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("12345678901234567890"), 0, 1, S("abcdefghijklmnopqrs1"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("12345678901234567890"), 0, 10, S("abcdefghijklmnopqrs1234567890"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("12345678901234567890"), 0, 19, S("abcdefghijklmnopqrs1234567890123456789"));
+ test(
+ S("abcdefghijklmnopqrst"), 19, 1, S("12345678901234567890"), 0, 20, S("abcdefghijklmnopqrs12345678901234567890"));
+ test(
+ S("abcdefghijklmnopqrst"), 19, 1, S("12345678901234567890"), 0, 21, S("abcdefghijklmnopqrs12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("12345678901234567890"), 1, 0, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("12345678901234567890"), 1, 1, S("abcdefghijklmnopqrs2"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("12345678901234567890"), 1, 9, S("abcdefghijklmnopqrs234567890"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("12345678901234567890"), 1, 18, S("abcdefghijklmnopqrs234567890123456789"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("12345678901234567890"), 1, 19, S("abcdefghijklmnopqrs2345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("12345678901234567890"), 1, 20, S("abcdefghijklmnopqrs2345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("12345678901234567890"), 10, 0, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("12345678901234567890"), 10, 1, S("abcdefghijklmnopqrs1"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("12345678901234567890"), 10, 5, S("abcdefghijklmnopqrs12345"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("12345678901234567890"), 10, 9, S("abcdefghijklmnopqrs123456789"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("12345678901234567890"), 10, 10, S("abcdefghijklmnopqrs1234567890"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("12345678901234567890"), 10, 11, S("abcdefghijklmnopqrs1234567890"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("12345678901234567890"), 19, 0, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("12345678901234567890"), 19, 1, S("abcdefghijklmnopqrs0"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("12345678901234567890"), 19, 2, S("abcdefghijklmnopqrs0"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("12345678901234567890"), 20, 0, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("12345678901234567890"), 20, 1, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, S(""), 0, 0, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, S(""), 0, 1, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, S(""), 1, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("12345"), 0, 0, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("12345"), 0, 1, S("abcdefghijklmnopqrs1"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("12345"), 0, 2, S("abcdefghijklmnopqrs12"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("12345"), 0, 4, S("abcdefghijklmnopqrs1234"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("12345"), 0, 5, S("abcdefghijklmnopqrs12345"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("12345"), 0, 6, S("abcdefghijklmnopqrs12345"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("12345"), 1, 0, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("12345"), 1, 1, S("abcdefghijklmnopqrs2"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("12345"), 1, 2, S("abcdefghijklmnopqrs23"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("12345"), 1, 3, S("abcdefghijklmnopqrs234"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("12345"), 1, 4, S("abcdefghijklmnopqrs2345"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("12345"), 1, 5, S("abcdefghijklmnopqrs2345"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("12345"), 2, 0, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("12345"), 2, 1, S("abcdefghijklmnopqrs3"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("12345"), 2, 2, S("abcdefghijklmnopqrs34"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("12345"), 2, 3, S("abcdefghijklmnopqrs345"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("12345"), 2, 4, S("abcdefghijklmnopqrs345"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test52()
-{
- test(S("abcdefghijklmnopqrst"), 19, 2, S("12345"), 4, 0, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 2, S("12345"), 4, 1, S("abcdefghijklmnopqrs5"));
- test(S("abcdefghijklmnopqrst"), 19, 2, S("12345"), 4, 2, S("abcdefghijklmnopqrs5"));
- test(S("abcdefghijklmnopqrst"), 19, 2, S("12345"), 5, 0, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 2, S("12345"), 5, 1, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 2, S("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 19, 2, S("1234567890"), 0, 0, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 2, S("1234567890"), 0, 1, S("abcdefghijklmnopqrs1"));
- test(S("abcdefghijklmnopqrst"), 19, 2, S("1234567890"), 0, 5, S("abcdefghijklmnopqrs12345"));
- test(S("abcdefghijklmnopqrst"), 19, 2, S("1234567890"), 0, 9, S("abcdefghijklmnopqrs123456789"));
- test(S("abcdefghijklmnopqrst"), 19, 2, S("1234567890"), 0, 10, S("abcdefghijklmnopqrs1234567890"));
- test(S("abcdefghijklmnopqrst"), 19, 2, S("1234567890"), 0, 11, S("abcdefghijklmnopqrs1234567890"));
- test(S("abcdefghijklmnopqrst"), 19, 2, S("1234567890"), 1, 0, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 2, S("1234567890"), 1, 1, S("abcdefghijklmnopqrs2"));
- test(S("abcdefghijklmnopqrst"), 19, 2, S("1234567890"), 1, 4, S("abcdefghijklmnopqrs2345"));
- test(S("abcdefghijklmnopqrst"), 19, 2, S("1234567890"), 1, 8, S("abcdefghijklmnopqrs23456789"));
- test(S("abcdefghijklmnopqrst"), 19, 2, S("1234567890"), 1, 9, S("abcdefghijklmnopqrs234567890"));
- test(S("abcdefghijklmnopqrst"), 19, 2, S("1234567890"), 1, 10, S("abcdefghijklmnopqrs234567890"));
- test(S("abcdefghijklmnopqrst"), 19, 2, S("1234567890"), 5, 0, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 2, S("1234567890"), 5, 1, S("abcdefghijklmnopqrs6"));
- test(S("abcdefghijklmnopqrst"), 19, 2, S("1234567890"), 5, 2, S("abcdefghijklmnopqrs67"));
- test(S("abcdefghijklmnopqrst"), 19, 2, S("1234567890"), 5, 4, S("abcdefghijklmnopqrs6789"));
- test(S("abcdefghijklmnopqrst"), 19, 2, S("1234567890"), 5, 5, S("abcdefghijklmnopqrs67890"));
- test(S("abcdefghijklmnopqrst"), 19, 2, S("1234567890"), 5, 6, S("abcdefghijklmnopqrs67890"));
- test(S("abcdefghijklmnopqrst"), 19, 2, S("1234567890"), 9, 0, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 2, S("1234567890"), 9, 1, S("abcdefghijklmnopqrs0"));
- test(S("abcdefghijklmnopqrst"), 19, 2, S("1234567890"), 9, 2, S("abcdefghijklmnopqrs0"));
- test(S("abcdefghijklmnopqrst"), 19, 2, S("1234567890"), 10, 0, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 2, S("1234567890"), 10, 1, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 2, S("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 19, 2, S("12345678901234567890"), 0, 0, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 2, S("12345678901234567890"), 0, 1, S("abcdefghijklmnopqrs1"));
- test(S("abcdefghijklmnopqrst"), 19, 2, S("12345678901234567890"), 0, 10, S("abcdefghijklmnopqrs1234567890"));
- test(S("abcdefghijklmnopqrst"), 19, 2, S("12345678901234567890"), 0, 19, S("abcdefghijklmnopqrs1234567890123456789"));
- test(S("abcdefghijklmnopqrst"), 19, 2, S("12345678901234567890"), 0, 20, S("abcdefghijklmnopqrs12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 19, 2, S("12345678901234567890"), 0, 21, S("abcdefghijklmnopqrs12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 19, 2, S("12345678901234567890"), 1, 0, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 2, S("12345678901234567890"), 1, 1, S("abcdefghijklmnopqrs2"));
- test(S("abcdefghijklmnopqrst"), 19, 2, S("12345678901234567890"), 1, 9, S("abcdefghijklmnopqrs234567890"));
- test(S("abcdefghijklmnopqrst"), 19, 2, S("12345678901234567890"), 1, 18, S("abcdefghijklmnopqrs234567890123456789"));
- test(S("abcdefghijklmnopqrst"), 19, 2, S("12345678901234567890"), 1, 19, S("abcdefghijklmnopqrs2345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 19, 2, S("12345678901234567890"), 1, 20, S("abcdefghijklmnopqrs2345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 19, 2, S("12345678901234567890"), 10, 0, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 2, S("12345678901234567890"), 10, 1, S("abcdefghijklmnopqrs1"));
- test(S("abcdefghijklmnopqrst"), 19, 2, S("12345678901234567890"), 10, 5, S("abcdefghijklmnopqrs12345"));
- test(S("abcdefghijklmnopqrst"), 19, 2, S("12345678901234567890"), 10, 9, S("abcdefghijklmnopqrs123456789"));
- test(S("abcdefghijklmnopqrst"), 19, 2, S("12345678901234567890"), 10, 10, S("abcdefghijklmnopqrs1234567890"));
- test(S("abcdefghijklmnopqrst"), 19, 2, S("12345678901234567890"), 10, 11, S("abcdefghijklmnopqrs1234567890"));
- test(S("abcdefghijklmnopqrst"), 19, 2, S("12345678901234567890"), 19, 0, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 2, S("12345678901234567890"), 19, 1, S("abcdefghijklmnopqrs0"));
- test(S("abcdefghijklmnopqrst"), 19, 2, S("12345678901234567890"), 19, 2, S("abcdefghijklmnopqrs0"));
- test(S("abcdefghijklmnopqrst"), 19, 2, S("12345678901234567890"), 20, 0, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 2, S("12345678901234567890"), 20, 1, S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 2, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 20, 0, S(""), 0, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 0, S(""), 0, 1, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 0, S(""), 1, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 20, 0, S("12345"), 0, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 0, S("12345"), 0, 1, S("abcdefghijklmnopqrst1"));
- test(S("abcdefghijklmnopqrst"), 20, 0, S("12345"), 0, 2, S("abcdefghijklmnopqrst12"));
- test(S("abcdefghijklmnopqrst"), 20, 0, S("12345"), 0, 4, S("abcdefghijklmnopqrst1234"));
- test(S("abcdefghijklmnopqrst"), 20, 0, S("12345"), 0, 5, S("abcdefghijklmnopqrst12345"));
- test(S("abcdefghijklmnopqrst"), 20, 0, S("12345"), 0, 6, S("abcdefghijklmnopqrst12345"));
- test(S("abcdefghijklmnopqrst"), 20, 0, S("12345"), 1, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 0, S("12345"), 1, 1, S("abcdefghijklmnopqrst2"));
- test(S("abcdefghijklmnopqrst"), 20, 0, S("12345"), 1, 2, S("abcdefghijklmnopqrst23"));
- test(S("abcdefghijklmnopqrst"), 20, 0, S("12345"), 1, 3, S("abcdefghijklmnopqrst234"));
- test(S("abcdefghijklmnopqrst"), 20, 0, S("12345"), 1, 4, S("abcdefghijklmnopqrst2345"));
- test(S("abcdefghijklmnopqrst"), 20, 0, S("12345"), 1, 5, S("abcdefghijklmnopqrst2345"));
- test(S("abcdefghijklmnopqrst"), 20, 0, S("12345"), 2, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 0, S("12345"), 2, 1, S("abcdefghijklmnopqrst3"));
- test(S("abcdefghijklmnopqrst"), 20, 0, S("12345"), 2, 2, S("abcdefghijklmnopqrst34"));
- test(S("abcdefghijklmnopqrst"), 20, 0, S("12345"), 2, 3, S("abcdefghijklmnopqrst345"));
- test(S("abcdefghijklmnopqrst"), 20, 0, S("12345"), 2, 4, S("abcdefghijklmnopqrst345"));
- test(S("abcdefghijklmnopqrst"), 20, 0, S("12345"), 4, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 0, S("12345"), 4, 1, S("abcdefghijklmnopqrst5"));
- test(S("abcdefghijklmnopqrst"), 20, 0, S("12345"), 4, 2, S("abcdefghijklmnopqrst5"));
- test(S("abcdefghijklmnopqrst"), 20, 0, S("12345"), 5, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 0, S("12345"), 5, 1, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 0, S("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 20, 0, S("1234567890"), 0, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 0, S("1234567890"), 0, 1, S("abcdefghijklmnopqrst1"));
- test(S("abcdefghijklmnopqrst"), 20, 0, S("1234567890"), 0, 5, S("abcdefghijklmnopqrst12345"));
- test(S("abcdefghijklmnopqrst"), 20, 0, S("1234567890"), 0, 9, S("abcdefghijklmnopqrst123456789"));
- test(S("abcdefghijklmnopqrst"), 20, 0, S("1234567890"), 0, 10, S("abcdefghijklmnopqrst1234567890"));
- test(S("abcdefghijklmnopqrst"), 20, 0, S("1234567890"), 0, 11, S("abcdefghijklmnopqrst1234567890"));
- test(S("abcdefghijklmnopqrst"), 20, 0, S("1234567890"), 1, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 0, S("1234567890"), 1, 1, S("abcdefghijklmnopqrst2"));
- test(S("abcdefghijklmnopqrst"), 20, 0, S("1234567890"), 1, 4, S("abcdefghijklmnopqrst2345"));
- test(S("abcdefghijklmnopqrst"), 20, 0, S("1234567890"), 1, 8, S("abcdefghijklmnopqrst23456789"));
- test(S("abcdefghijklmnopqrst"), 20, 0, S("1234567890"), 1, 9, S("abcdefghijklmnopqrst234567890"));
- test(S("abcdefghijklmnopqrst"), 20, 0, S("1234567890"), 1, 10, S("abcdefghijklmnopqrst234567890"));
- test(S("abcdefghijklmnopqrst"), 20, 0, S("1234567890"), 5, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 0, S("1234567890"), 5, 1, S("abcdefghijklmnopqrst6"));
- test(S("abcdefghijklmnopqrst"), 20, 0, S("1234567890"), 5, 2, S("abcdefghijklmnopqrst67"));
- test(S("abcdefghijklmnopqrst"), 20, 0, S("1234567890"), 5, 4, S("abcdefghijklmnopqrst6789"));
- test(S("abcdefghijklmnopqrst"), 20, 0, S("1234567890"), 5, 5, S("abcdefghijklmnopqrst67890"));
- test(S("abcdefghijklmnopqrst"), 20, 0, S("1234567890"), 5, 6, S("abcdefghijklmnopqrst67890"));
- test(S("abcdefghijklmnopqrst"), 20, 0, S("1234567890"), 9, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 0, S("1234567890"), 9, 1, S("abcdefghijklmnopqrst0"));
+TEST_CONSTEXPR_CXX20 bool test52() {
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("12345"), 4, 0, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("12345"), 4, 1, S("abcdefghijklmnopqrs5"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("12345"), 4, 2, S("abcdefghijklmnopqrs5"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("12345"), 5, 0, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("12345"), 5, 1, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("1234567890"), 0, 0, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("1234567890"), 0, 1, S("abcdefghijklmnopqrs1"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("1234567890"), 0, 5, S("abcdefghijklmnopqrs12345"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("1234567890"), 0, 9, S("abcdefghijklmnopqrs123456789"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("1234567890"), 0, 10, S("abcdefghijklmnopqrs1234567890"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("1234567890"), 0, 11, S("abcdefghijklmnopqrs1234567890"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("1234567890"), 1, 0, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("1234567890"), 1, 1, S("abcdefghijklmnopqrs2"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("1234567890"), 1, 4, S("abcdefghijklmnopqrs2345"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("1234567890"), 1, 8, S("abcdefghijklmnopqrs23456789"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("1234567890"), 1, 9, S("abcdefghijklmnopqrs234567890"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("1234567890"), 1, 10, S("abcdefghijklmnopqrs234567890"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("1234567890"), 5, 0, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("1234567890"), 5, 1, S("abcdefghijklmnopqrs6"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("1234567890"), 5, 2, S("abcdefghijklmnopqrs67"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("1234567890"), 5, 4, S("abcdefghijklmnopqrs6789"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("1234567890"), 5, 5, S("abcdefghijklmnopqrs67890"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("1234567890"), 5, 6, S("abcdefghijklmnopqrs67890"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("1234567890"), 9, 0, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("1234567890"), 9, 1, S("abcdefghijklmnopqrs0"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("1234567890"), 9, 2, S("abcdefghijklmnopqrs0"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("1234567890"), 10, 0, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("1234567890"), 10, 1, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("12345678901234567890"), 0, 0, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("12345678901234567890"), 0, 1, S("abcdefghijklmnopqrs1"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("12345678901234567890"), 0, 10, S("abcdefghijklmnopqrs1234567890"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("12345678901234567890"), 0, 19, S("abcdefghijklmnopqrs1234567890123456789"));
+ test(
+ S("abcdefghijklmnopqrst"), 19, 2, S("12345678901234567890"), 0, 20, S("abcdefghijklmnopqrs12345678901234567890"));
+ test(
+ S("abcdefghijklmnopqrst"), 19, 2, S("12345678901234567890"), 0, 21, S("abcdefghijklmnopqrs12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("12345678901234567890"), 1, 0, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("12345678901234567890"), 1, 1, S("abcdefghijklmnopqrs2"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("12345678901234567890"), 1, 9, S("abcdefghijklmnopqrs234567890"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("12345678901234567890"), 1, 18, S("abcdefghijklmnopqrs234567890123456789"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("12345678901234567890"), 1, 19, S("abcdefghijklmnopqrs2345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("12345678901234567890"), 1, 20, S("abcdefghijklmnopqrs2345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("12345678901234567890"), 10, 0, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("12345678901234567890"), 10, 1, S("abcdefghijklmnopqrs1"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("12345678901234567890"), 10, 5, S("abcdefghijklmnopqrs12345"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("12345678901234567890"), 10, 9, S("abcdefghijklmnopqrs123456789"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("12345678901234567890"), 10, 10, S("abcdefghijklmnopqrs1234567890"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("12345678901234567890"), 10, 11, S("abcdefghijklmnopqrs1234567890"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("12345678901234567890"), 19, 0, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("12345678901234567890"), 19, 1, S("abcdefghijklmnopqrs0"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("12345678901234567890"), 19, 2, S("abcdefghijklmnopqrs0"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("12345678901234567890"), 20, 0, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("12345678901234567890"), 20, 1, S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, S(""), 0, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, S(""), 0, 1, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, S(""), 1, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("12345"), 0, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("12345"), 0, 1, S("abcdefghijklmnopqrst1"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("12345"), 0, 2, S("abcdefghijklmnopqrst12"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("12345"), 0, 4, S("abcdefghijklmnopqrst1234"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("12345"), 0, 5, S("abcdefghijklmnopqrst12345"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("12345"), 0, 6, S("abcdefghijklmnopqrst12345"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("12345"), 1, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("12345"), 1, 1, S("abcdefghijklmnopqrst2"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("12345"), 1, 2, S("abcdefghijklmnopqrst23"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("12345"), 1, 3, S("abcdefghijklmnopqrst234"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("12345"), 1, 4, S("abcdefghijklmnopqrst2345"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("12345"), 1, 5, S("abcdefghijklmnopqrst2345"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("12345"), 2, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("12345"), 2, 1, S("abcdefghijklmnopqrst3"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("12345"), 2, 2, S("abcdefghijklmnopqrst34"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("12345"), 2, 3, S("abcdefghijklmnopqrst345"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("12345"), 2, 4, S("abcdefghijklmnopqrst345"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("12345"), 4, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("12345"), 4, 1, S("abcdefghijklmnopqrst5"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("12345"), 4, 2, S("abcdefghijklmnopqrst5"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("12345"), 5, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("12345"), 5, 1, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("1234567890"), 0, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("1234567890"), 0, 1, S("abcdefghijklmnopqrst1"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("1234567890"), 0, 5, S("abcdefghijklmnopqrst12345"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("1234567890"), 0, 9, S("abcdefghijklmnopqrst123456789"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("1234567890"), 0, 10, S("abcdefghijklmnopqrst1234567890"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("1234567890"), 0, 11, S("abcdefghijklmnopqrst1234567890"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("1234567890"), 1, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("1234567890"), 1, 1, S("abcdefghijklmnopqrst2"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("1234567890"), 1, 4, S("abcdefghijklmnopqrst2345"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("1234567890"), 1, 8, S("abcdefghijklmnopqrst23456789"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("1234567890"), 1, 9, S("abcdefghijklmnopqrst234567890"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("1234567890"), 1, 10, S("abcdefghijklmnopqrst234567890"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("1234567890"), 5, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("1234567890"), 5, 1, S("abcdefghijklmnopqrst6"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("1234567890"), 5, 2, S("abcdefghijklmnopqrst67"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("1234567890"), 5, 4, S("abcdefghijklmnopqrst6789"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("1234567890"), 5, 5, S("abcdefghijklmnopqrst67890"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("1234567890"), 5, 6, S("abcdefghijklmnopqrst67890"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("1234567890"), 9, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("1234567890"), 9, 1, S("abcdefghijklmnopqrst0"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test53()
-{
- test(S("abcdefghijklmnopqrst"), 20, 0, S("1234567890"), 9, 2, S("abcdefghijklmnopqrst0"));
- test(S("abcdefghijklmnopqrst"), 20, 0, S("1234567890"), 10, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 0, S("1234567890"), 10, 1, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 0, S("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 20, 0, S("12345678901234567890"), 0, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 0, S("12345678901234567890"), 0, 1, S("abcdefghijklmnopqrst1"));
- test(S("abcdefghijklmnopqrst"), 20, 0, S("12345678901234567890"), 0, 10, S("abcdefghijklmnopqrst1234567890"));
- test(S("abcdefghijklmnopqrst"), 20, 0, S("12345678901234567890"), 0, 19, S("abcdefghijklmnopqrst1234567890123456789"));
- test(S("abcdefghijklmnopqrst"), 20, 0, S("12345678901234567890"), 0, 20, S("abcdefghijklmnopqrst12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 20, 0, S("12345678901234567890"), 0, 21, S("abcdefghijklmnopqrst12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 20, 0, S("12345678901234567890"), 1, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 0, S("12345678901234567890"), 1, 1, S("abcdefghijklmnopqrst2"));
- test(S("abcdefghijklmnopqrst"), 20, 0, S("12345678901234567890"), 1, 9, S("abcdefghijklmnopqrst234567890"));
- test(S("abcdefghijklmnopqrst"), 20, 0, S("12345678901234567890"), 1, 18, S("abcdefghijklmnopqrst234567890123456789"));
- test(S("abcdefghijklmnopqrst"), 20, 0, S("12345678901234567890"), 1, 19, S("abcdefghijklmnopqrst2345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 20, 0, S("12345678901234567890"), 1, 20, S("abcdefghijklmnopqrst2345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 20, 0, S("12345678901234567890"), 10, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 0, S("12345678901234567890"), 10, 1, S("abcdefghijklmnopqrst1"));
- test(S("abcdefghijklmnopqrst"), 20, 0, S("12345678901234567890"), 10, 5, S("abcdefghijklmnopqrst12345"));
- test(S("abcdefghijklmnopqrst"), 20, 0, S("12345678901234567890"), 10, 9, S("abcdefghijklmnopqrst123456789"));
- test(S("abcdefghijklmnopqrst"), 20, 0, S("12345678901234567890"), 10, 10, S("abcdefghijklmnopqrst1234567890"));
- test(S("abcdefghijklmnopqrst"), 20, 0, S("12345678901234567890"), 10, 11, S("abcdefghijklmnopqrst1234567890"));
- test(S("abcdefghijklmnopqrst"), 20, 0, S("12345678901234567890"), 19, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 0, S("12345678901234567890"), 19, 1, S("abcdefghijklmnopqrst0"));
- test(S("abcdefghijklmnopqrst"), 20, 0, S("12345678901234567890"), 19, 2, S("abcdefghijklmnopqrst0"));
- test(S("abcdefghijklmnopqrst"), 20, 0, S("12345678901234567890"), 20, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 0, S("12345678901234567890"), 20, 1, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 0, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 20, 1, S(""), 0, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 1, S(""), 0, 1, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 1, S(""), 1, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 20, 1, S("12345"), 0, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 1, S("12345"), 0, 1, S("abcdefghijklmnopqrst1"));
- test(S("abcdefghijklmnopqrst"), 20, 1, S("12345"), 0, 2, S("abcdefghijklmnopqrst12"));
- test(S("abcdefghijklmnopqrst"), 20, 1, S("12345"), 0, 4, S("abcdefghijklmnopqrst1234"));
- test(S("abcdefghijklmnopqrst"), 20, 1, S("12345"), 0, 5, S("abcdefghijklmnopqrst12345"));
- test(S("abcdefghijklmnopqrst"), 20, 1, S("12345"), 0, 6, S("abcdefghijklmnopqrst12345"));
- test(S("abcdefghijklmnopqrst"), 20, 1, S("12345"), 1, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 1, S("12345"), 1, 1, S("abcdefghijklmnopqrst2"));
- test(S("abcdefghijklmnopqrst"), 20, 1, S("12345"), 1, 2, S("abcdefghijklmnopqrst23"));
- test(S("abcdefghijklmnopqrst"), 20, 1, S("12345"), 1, 3, S("abcdefghijklmnopqrst234"));
- test(S("abcdefghijklmnopqrst"), 20, 1, S("12345"), 1, 4, S("abcdefghijklmnopqrst2345"));
- test(S("abcdefghijklmnopqrst"), 20, 1, S("12345"), 1, 5, S("abcdefghijklmnopqrst2345"));
- test(S("abcdefghijklmnopqrst"), 20, 1, S("12345"), 2, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 1, S("12345"), 2, 1, S("abcdefghijklmnopqrst3"));
- test(S("abcdefghijklmnopqrst"), 20, 1, S("12345"), 2, 2, S("abcdefghijklmnopqrst34"));
- test(S("abcdefghijklmnopqrst"), 20, 1, S("12345"), 2, 3, S("abcdefghijklmnopqrst345"));
- test(S("abcdefghijklmnopqrst"), 20, 1, S("12345"), 2, 4, S("abcdefghijklmnopqrst345"));
- test(S("abcdefghijklmnopqrst"), 20, 1, S("12345"), 4, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 1, S("12345"), 4, 1, S("abcdefghijklmnopqrst5"));
- test(S("abcdefghijklmnopqrst"), 20, 1, S("12345"), 4, 2, S("abcdefghijklmnopqrst5"));
- test(S("abcdefghijklmnopqrst"), 20, 1, S("12345"), 5, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 1, S("12345"), 5, 1, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 1, S("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 20, 1, S("1234567890"), 0, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 1, S("1234567890"), 0, 1, S("abcdefghijklmnopqrst1"));
- test(S("abcdefghijklmnopqrst"), 20, 1, S("1234567890"), 0, 5, S("abcdefghijklmnopqrst12345"));
- test(S("abcdefghijklmnopqrst"), 20, 1, S("1234567890"), 0, 9, S("abcdefghijklmnopqrst123456789"));
- test(S("abcdefghijklmnopqrst"), 20, 1, S("1234567890"), 0, 10, S("abcdefghijklmnopqrst1234567890"));
- test(S("abcdefghijklmnopqrst"), 20, 1, S("1234567890"), 0, 11, S("abcdefghijklmnopqrst1234567890"));
- test(S("abcdefghijklmnopqrst"), 20, 1, S("1234567890"), 1, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 1, S("1234567890"), 1, 1, S("abcdefghijklmnopqrst2"));
- test(S("abcdefghijklmnopqrst"), 20, 1, S("1234567890"), 1, 4, S("abcdefghijklmnopqrst2345"));
- test(S("abcdefghijklmnopqrst"), 20, 1, S("1234567890"), 1, 8, S("abcdefghijklmnopqrst23456789"));
- test(S("abcdefghijklmnopqrst"), 20, 1, S("1234567890"), 1, 9, S("abcdefghijklmnopqrst234567890"));
- test(S("abcdefghijklmnopqrst"), 20, 1, S("1234567890"), 1, 10, S("abcdefghijklmnopqrst234567890"));
- test(S("abcdefghijklmnopqrst"), 20, 1, S("1234567890"), 5, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 1, S("1234567890"), 5, 1, S("abcdefghijklmnopqrst6"));
- test(S("abcdefghijklmnopqrst"), 20, 1, S("1234567890"), 5, 2, S("abcdefghijklmnopqrst67"));
- test(S("abcdefghijklmnopqrst"), 20, 1, S("1234567890"), 5, 4, S("abcdefghijklmnopqrst6789"));
- test(S("abcdefghijklmnopqrst"), 20, 1, S("1234567890"), 5, 5, S("abcdefghijklmnopqrst67890"));
- test(S("abcdefghijklmnopqrst"), 20, 1, S("1234567890"), 5, 6, S("abcdefghijklmnopqrst67890"));
- test(S("abcdefghijklmnopqrst"), 20, 1, S("1234567890"), 9, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 1, S("1234567890"), 9, 1, S("abcdefghijklmnopqrst0"));
- test(S("abcdefghijklmnopqrst"), 20, 1, S("1234567890"), 9, 2, S("abcdefghijklmnopqrst0"));
- test(S("abcdefghijklmnopqrst"), 20, 1, S("1234567890"), 10, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 1, S("1234567890"), 10, 1, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 1, S("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 20, 1, S("12345678901234567890"), 0, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 1, S("12345678901234567890"), 0, 1, S("abcdefghijklmnopqrst1"));
- test(S("abcdefghijklmnopqrst"), 20, 1, S("12345678901234567890"), 0, 10, S("abcdefghijklmnopqrst1234567890"));
- test(S("abcdefghijklmnopqrst"), 20, 1, S("12345678901234567890"), 0, 19, S("abcdefghijklmnopqrst1234567890123456789"));
- test(S("abcdefghijklmnopqrst"), 20, 1, S("12345678901234567890"), 0, 20, S("abcdefghijklmnopqrst12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 20, 1, S("12345678901234567890"), 0, 21, S("abcdefghijklmnopqrst12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 20, 1, S("12345678901234567890"), 1, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 1, S("12345678901234567890"), 1, 1, S("abcdefghijklmnopqrst2"));
- test(S("abcdefghijklmnopqrst"), 20, 1, S("12345678901234567890"), 1, 9, S("abcdefghijklmnopqrst234567890"));
- test(S("abcdefghijklmnopqrst"), 20, 1, S("12345678901234567890"), 1, 18, S("abcdefghijklmnopqrst234567890123456789"));
- test(S("abcdefghijklmnopqrst"), 20, 1, S("12345678901234567890"), 1, 19, S("abcdefghijklmnopqrst2345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 20, 1, S("12345678901234567890"), 1, 20, S("abcdefghijklmnopqrst2345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 20, 1, S("12345678901234567890"), 10, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 1, S("12345678901234567890"), 10, 1, S("abcdefghijklmnopqrst1"));
- test(S("abcdefghijklmnopqrst"), 20, 1, S("12345678901234567890"), 10, 5, S("abcdefghijklmnopqrst12345"));
- test(S("abcdefghijklmnopqrst"), 20, 1, S("12345678901234567890"), 10, 9, S("abcdefghijklmnopqrst123456789"));
- test(S("abcdefghijklmnopqrst"), 20, 1, S("12345678901234567890"), 10, 10, S("abcdefghijklmnopqrst1234567890"));
- test(S("abcdefghijklmnopqrst"), 20, 1, S("12345678901234567890"), 10, 11, S("abcdefghijklmnopqrst1234567890"));
- test(S("abcdefghijklmnopqrst"), 20, 1, S("12345678901234567890"), 19, 0, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 1, S("12345678901234567890"), 19, 1, S("abcdefghijklmnopqrst0"));
- test(S("abcdefghijklmnopqrst"), 20, 1, S("12345678901234567890"), 19, 2, S("abcdefghijklmnopqrst0"));
- test(S("abcdefghijklmnopqrst"), 20, 1, S("12345678901234567890"), 20, 0, S("abcdefghijklmnopqrst"));
+TEST_CONSTEXPR_CXX20 bool test53() {
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("1234567890"), 9, 2, S("abcdefghijklmnopqrst0"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("1234567890"), 10, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("1234567890"), 10, 1, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("12345678901234567890"), 0, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("12345678901234567890"), 0, 1, S("abcdefghijklmnopqrst1"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("12345678901234567890"), 0, 10, S("abcdefghijklmnopqrst1234567890"));
+ test(
+ S("abcdefghijklmnopqrst"), 20, 0, S("12345678901234567890"), 0, 19, S("abcdefghijklmnopqrst1234567890123456789"));
+ test(S("abcdefghijklmnopqrst"),
+ 20,
+ 0,
+ S("12345678901234567890"),
+ 0,
+ 20,
+ S("abcdefghijklmnopqrst12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"),
+ 20,
+ 0,
+ S("12345678901234567890"),
+ 0,
+ 21,
+ S("abcdefghijklmnopqrst12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("12345678901234567890"), 1, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("12345678901234567890"), 1, 1, S("abcdefghijklmnopqrst2"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("12345678901234567890"), 1, 9, S("abcdefghijklmnopqrst234567890"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("12345678901234567890"), 1, 18, S("abcdefghijklmnopqrst234567890123456789"));
+ test(
+ S("abcdefghijklmnopqrst"), 20, 0, S("12345678901234567890"), 1, 19, S("abcdefghijklmnopqrst2345678901234567890"));
+ test(
+ S("abcdefghijklmnopqrst"), 20, 0, S("12345678901234567890"), 1, 20, S("abcdefghijklmnopqrst2345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("12345678901234567890"), 10, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("12345678901234567890"), 10, 1, S("abcdefghijklmnopqrst1"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("12345678901234567890"), 10, 5, S("abcdefghijklmnopqrst12345"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("12345678901234567890"), 10, 9, S("abcdefghijklmnopqrst123456789"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("12345678901234567890"), 10, 10, S("abcdefghijklmnopqrst1234567890"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("12345678901234567890"), 10, 11, S("abcdefghijklmnopqrst1234567890"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("12345678901234567890"), 19, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("12345678901234567890"), 19, 1, S("abcdefghijklmnopqrst0"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("12345678901234567890"), 19, 2, S("abcdefghijklmnopqrst0"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("12345678901234567890"), 20, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("12345678901234567890"), 20, 1, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, S(""), 0, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, S(""), 0, 1, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, S(""), 1, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("12345"), 0, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("12345"), 0, 1, S("abcdefghijklmnopqrst1"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("12345"), 0, 2, S("abcdefghijklmnopqrst12"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("12345"), 0, 4, S("abcdefghijklmnopqrst1234"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("12345"), 0, 5, S("abcdefghijklmnopqrst12345"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("12345"), 0, 6, S("abcdefghijklmnopqrst12345"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("12345"), 1, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("12345"), 1, 1, S("abcdefghijklmnopqrst2"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("12345"), 1, 2, S("abcdefghijklmnopqrst23"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("12345"), 1, 3, S("abcdefghijklmnopqrst234"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("12345"), 1, 4, S("abcdefghijklmnopqrst2345"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("12345"), 1, 5, S("abcdefghijklmnopqrst2345"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("12345"), 2, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("12345"), 2, 1, S("abcdefghijklmnopqrst3"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("12345"), 2, 2, S("abcdefghijklmnopqrst34"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("12345"), 2, 3, S("abcdefghijklmnopqrst345"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("12345"), 2, 4, S("abcdefghijklmnopqrst345"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("12345"), 4, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("12345"), 4, 1, S("abcdefghijklmnopqrst5"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("12345"), 4, 2, S("abcdefghijklmnopqrst5"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("12345"), 5, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("12345"), 5, 1, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("1234567890"), 0, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("1234567890"), 0, 1, S("abcdefghijklmnopqrst1"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("1234567890"), 0, 5, S("abcdefghijklmnopqrst12345"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("1234567890"), 0, 9, S("abcdefghijklmnopqrst123456789"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("1234567890"), 0, 10, S("abcdefghijklmnopqrst1234567890"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("1234567890"), 0, 11, S("abcdefghijklmnopqrst1234567890"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("1234567890"), 1, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("1234567890"), 1, 1, S("abcdefghijklmnopqrst2"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("1234567890"), 1, 4, S("abcdefghijklmnopqrst2345"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("1234567890"), 1, 8, S("abcdefghijklmnopqrst23456789"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("1234567890"), 1, 9, S("abcdefghijklmnopqrst234567890"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("1234567890"), 1, 10, S("abcdefghijklmnopqrst234567890"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("1234567890"), 5, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("1234567890"), 5, 1, S("abcdefghijklmnopqrst6"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("1234567890"), 5, 2, S("abcdefghijklmnopqrst67"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("1234567890"), 5, 4, S("abcdefghijklmnopqrst6789"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("1234567890"), 5, 5, S("abcdefghijklmnopqrst67890"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("1234567890"), 5, 6, S("abcdefghijklmnopqrst67890"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("1234567890"), 9, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("1234567890"), 9, 1, S("abcdefghijklmnopqrst0"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("1234567890"), 9, 2, S("abcdefghijklmnopqrst0"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("1234567890"), 10, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("1234567890"), 10, 1, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("12345678901234567890"), 0, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("12345678901234567890"), 0, 1, S("abcdefghijklmnopqrst1"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("12345678901234567890"), 0, 10, S("abcdefghijklmnopqrst1234567890"));
+ test(
+ S("abcdefghijklmnopqrst"), 20, 1, S("12345678901234567890"), 0, 19, S("abcdefghijklmnopqrst1234567890123456789"));
+ test(S("abcdefghijklmnopqrst"),
+ 20,
+ 1,
+ S("12345678901234567890"),
+ 0,
+ 20,
+ S("abcdefghijklmnopqrst12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"),
+ 20,
+ 1,
+ S("12345678901234567890"),
+ 0,
+ 21,
+ S("abcdefghijklmnopqrst12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("12345678901234567890"), 1, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("12345678901234567890"), 1, 1, S("abcdefghijklmnopqrst2"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("12345678901234567890"), 1, 9, S("abcdefghijklmnopqrst234567890"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("12345678901234567890"), 1, 18, S("abcdefghijklmnopqrst234567890123456789"));
+ test(
+ S("abcdefghijklmnopqrst"), 20, 1, S("12345678901234567890"), 1, 19, S("abcdefghijklmnopqrst2345678901234567890"));
+ test(
+ S("abcdefghijklmnopqrst"), 20, 1, S("12345678901234567890"), 1, 20, S("abcdefghijklmnopqrst2345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("12345678901234567890"), 10, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("12345678901234567890"), 10, 1, S("abcdefghijklmnopqrst1"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("12345678901234567890"), 10, 5, S("abcdefghijklmnopqrst12345"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("12345678901234567890"), 10, 9, S("abcdefghijklmnopqrst123456789"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("12345678901234567890"), 10, 10, S("abcdefghijklmnopqrst1234567890"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("12345678901234567890"), 10, 11, S("abcdefghijklmnopqrst1234567890"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("12345678901234567890"), 19, 0, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("12345678901234567890"), 19, 1, S("abcdefghijklmnopqrst0"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("12345678901234567890"), 19, 2, S("abcdefghijklmnopqrst0"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("12345678901234567890"), 20, 0, S("abcdefghijklmnopqrst"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test54()
-{
- test(S("abcdefghijklmnopqrst"), 20, 1, S("12345678901234567890"), 20, 1, S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 1, S("12345678901234567890"), 21, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, S(""), 0, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, S(""), 0, 1, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, S(""), 1, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, S("12345"), 0, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, S("12345"), 0, 1, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, S("12345"), 0, 2, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, S("12345"), 0, 4, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, S("12345"), 0, 5, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, S("12345"), 0, 6, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, S("12345"), 1, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, S("12345"), 1, 1, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, S("12345"), 1, 2, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, S("12345"), 1, 3, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, S("12345"), 1, 4, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, S("12345"), 1, 5, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, S("12345"), 2, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, S("12345"), 2, 1, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, S("12345"), 2, 2, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, S("12345"), 2, 3, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, S("12345"), 2, 4, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, S("12345"), 4, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, S("12345"), 4, 1, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, S("12345"), 4, 2, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, S("12345"), 5, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, S("12345"), 5, 1, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, S("12345"), 6, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, S("1234567890"), 0, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, S("1234567890"), 0, 1, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, S("1234567890"), 0, 5, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, S("1234567890"), 0, 9, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, S("1234567890"), 0, 10, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, S("1234567890"), 0, 11, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, S("1234567890"), 1, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, S("1234567890"), 1, 1, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, S("1234567890"), 1, 4, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, S("1234567890"), 1, 8, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, S("1234567890"), 1, 9, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, S("1234567890"), 1, 10, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, S("1234567890"), 5, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, S("1234567890"), 5, 1, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, S("1234567890"), 5, 2, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, S("1234567890"), 5, 4, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, S("1234567890"), 5, 5, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, S("1234567890"), 5, 6, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, S("1234567890"), 9, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, S("1234567890"), 9, 1, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, S("1234567890"), 9, 2, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, S("1234567890"), 10, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, S("1234567890"), 10, 1, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, S("1234567890"), 11, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, S("12345678901234567890"), 0, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, S("12345678901234567890"), 0, 1, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, S("12345678901234567890"), 0, 10, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, S("12345678901234567890"), 0, 19, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, S("12345678901234567890"), 0, 20, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, S("12345678901234567890"), 0, 21, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, S("12345678901234567890"), 1, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, S("12345678901234567890"), 1, 1, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, S("12345678901234567890"), 1, 9, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, S("12345678901234567890"), 1, 18, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, S("12345678901234567890"), 1, 19, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, S("12345678901234567890"), 1, 20, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, S("12345678901234567890"), 10, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, S("12345678901234567890"), 10, 1, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, S("12345678901234567890"), 10, 5, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, S("12345678901234567890"), 10, 9, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, S("12345678901234567890"), 10, 10, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, S("12345678901234567890"), 10, 11, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, S("12345678901234567890"), 19, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, S("12345678901234567890"), 19, 1, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, S("12345678901234567890"), 19, 2, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, S("12345678901234567890"), 20, 0, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, S("12345678901234567890"), 20, 1, S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, S("12345678901234567890"), 21, 0, S("can't happen"));
+TEST_CONSTEXPR_CXX20 bool test54() {
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("12345678901234567890"), 20, 1, S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("12345678901234567890"), 21, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, S(""), 0, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, S(""), 0, 1, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, S(""), 1, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("12345"), 0, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("12345"), 0, 1, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("12345"), 0, 2, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("12345"), 0, 4, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("12345"), 0, 5, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("12345"), 0, 6, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("12345"), 1, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("12345"), 1, 1, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("12345"), 1, 2, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("12345"), 1, 3, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("12345"), 1, 4, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("12345"), 1, 5, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("12345"), 2, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("12345"), 2, 1, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("12345"), 2, 2, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("12345"), 2, 3, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("12345"), 2, 4, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("12345"), 4, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("12345"), 4, 1, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("12345"), 4, 2, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("12345"), 5, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("12345"), 5, 1, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("12345"), 6, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("1234567890"), 0, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("1234567890"), 0, 1, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("1234567890"), 0, 5, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("1234567890"), 0, 9, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("1234567890"), 0, 10, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("1234567890"), 0, 11, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("1234567890"), 1, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("1234567890"), 1, 1, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("1234567890"), 1, 4, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("1234567890"), 1, 8, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("1234567890"), 1, 9, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("1234567890"), 1, 10, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("1234567890"), 5, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("1234567890"), 5, 1, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("1234567890"), 5, 2, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("1234567890"), 5, 4, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("1234567890"), 5, 5, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("1234567890"), 5, 6, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("1234567890"), 9, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("1234567890"), 9, 1, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("1234567890"), 9, 2, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("1234567890"), 10, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("1234567890"), 10, 1, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("1234567890"), 11, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("12345678901234567890"), 0, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("12345678901234567890"), 0, 1, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("12345678901234567890"), 0, 10, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("12345678901234567890"), 0, 19, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("12345678901234567890"), 0, 20, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("12345678901234567890"), 0, 21, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("12345678901234567890"), 1, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("12345678901234567890"), 1, 1, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("12345678901234567890"), 1, 9, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("12345678901234567890"), 1, 18, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("12345678901234567890"), 1, 19, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("12345678901234567890"), 1, 20, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("12345678901234567890"), 10, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("12345678901234567890"), 10, 1, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("12345678901234567890"), 10, 5, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("12345678901234567890"), 10, 9, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("12345678901234567890"), 10, 10, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("12345678901234567890"), 10, 11, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("12345678901234567890"), 19, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("12345678901234567890"), 19, 1, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("12345678901234567890"), 19, 2, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("12345678901234567890"), 20, 0, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("12345678901234567890"), 20, 1, S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("12345678901234567890"), 21, 0, S("can't happen"));
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test55()
-{
- test_npos(S("abcdefghij"), 9, 1, S("12345678901234567890"), 10, S("abcdefghi1234567890"));
- test_npos(S("abcdefghij"), 9, 1, S("12345678901234567890"), 19, S("abcdefghi0"));
- test_npos(S("abcdefghij"), 9, 1, S("12345678901234567890"), 20, S("abcdefghi"));
- test_npos(S("abcdefghij"), 9, 1, S("12345678901234567890"), 20, S("abcdefghi"));
- test_npos(S("abcdefghij"), 9, 1, S("12345678901234567890"), 21, S("can't happen"));
- test_npos(S("abcdefghij"), 9, 2, S(""), 0, S("abcdefghi"));
- test_npos(S("abcdefghij"), 9, 2, S(""), 1, S("can't happen"));
- test_npos(S("abcdefghij"), 9, 2, S("12345"), 0, S("abcdefghi12345"));
- test_npos(S("abcdefghij"), 9, 2, S("12345"), 1, S("abcdefghi2345"));
- test_npos(S("abcdefghij"), 9, 2, S("12345"), 2, S("abcdefghi345"));
- test_npos(S("abcdefghij"), 9, 2, S("12345"), 4, S("abcdefghi5"));
- test_npos(S("abcdefghij"), 9, 2, S("12345"), 5, S("abcdefghi"));
- test_npos(S("abcdefghij"), 9, 2, S("12345"), 6, S("can't happen"));
+TEST_CONSTEXPR_CXX20 bool test55() {
+ test_npos(S("abcdefghij"), 9, 1, S("12345678901234567890"), 10, S("abcdefghi1234567890"));
+ test_npos(S("abcdefghij"), 9, 1, S("12345678901234567890"), 19, S("abcdefghi0"));
+ test_npos(S("abcdefghij"), 9, 1, S("12345678901234567890"), 20, S("abcdefghi"));
+ test_npos(S("abcdefghij"), 9, 1, S("12345678901234567890"), 20, S("abcdefghi"));
+ test_npos(S("abcdefghij"), 9, 1, S("12345678901234567890"), 21, S("can't happen"));
+ test_npos(S("abcdefghij"), 9, 2, S(""), 0, S("abcdefghi"));
+ test_npos(S("abcdefghij"), 9, 2, S(""), 1, S("can't happen"));
+ test_npos(S("abcdefghij"), 9, 2, S("12345"), 0, S("abcdefghi12345"));
+ test_npos(S("abcdefghij"), 9, 2, S("12345"), 1, S("abcdefghi2345"));
+ test_npos(S("abcdefghij"), 9, 2, S("12345"), 2, S("abcdefghi345"));
+ test_npos(S("abcdefghij"), 9, 2, S("12345"), 4, S("abcdefghi5"));
+ test_npos(S("abcdefghij"), 9, 2, S("12345"), 5, S("abcdefghi"));
+ test_npos(S("abcdefghij"), 9, 2, S("12345"), 6, S("can't happen"));
- return true;
+ return true;
}
template <class S>
@@ -6092,8 +6095,7 @@ void test() {
#endif
}
-int main(int, char**)
-{
+int main(int, char**) {
test<std::string>();
#if TEST_STD_VER >= 11
test<std::basic_string<char, std::char_traits<char>, min_allocator<char>>>();
diff --git a/libcxx/test/std/strings/basic.string/string.modifiers/string_replace/size_size_string_view.pass.cpp b/libcxx/test/std/strings/basic.string/string.modifiers/string_replace/size_size_string_view.pass.cpp
index fb22f84fa686e7a..1e9965511f14a3d 100644
--- a/libcxx/test/std/strings/basic.string/string.modifiers/string_replace/size_size_string_view.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.modifiers/string_replace/size_size_string_view.pass.cpp
@@ -20,352 +20,342 @@
#include "min_allocator.h"
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 void
-test(S s, typename S::size_type pos1, typename S::size_type n1, SV sv, S expected)
-{
- const typename S::size_type old_size = s.size();
- S s0 = s;
- if (pos1 <= old_size)
- {
- s.replace(pos1, n1, sv);
- LIBCPP_ASSERT(s.__invariants());
- assert(s == expected);
- typename S::size_type xlen = std::min(n1, old_size - pos1);
- typename S::size_type rlen = sv.size();
- assert(s.size() == old_size - xlen + rlen);
- }
+TEST_CONSTEXPR_CXX20 void test(S s, typename S::size_type pos1, typename S::size_type n1, SV sv, S expected) {
+ const typename S::size_type old_size = s.size();
+ S s0 = s;
+ if (pos1 <= old_size) {
+ s.replace(pos1, n1, sv);
+ LIBCPP_ASSERT(s.__invariants());
+ assert(s == expected);
+ typename S::size_type xlen = std::min(n1, old_size - pos1);
+ typename S::size_type rlen = sv.size();
+ assert(s.size() == old_size - xlen + rlen);
+ }
#ifndef TEST_HAS_NO_EXCEPTIONS
- else if (!TEST_IS_CONSTANT_EVALUATED)
- {
- try
- {
- s.replace(pos1, n1, sv);
- assert(false);
- }
- catch (std::out_of_range&)
- {
- assert(pos1 > old_size);
- assert(s == s0);
- }
+ else if (!TEST_IS_CONSTANT_EVALUATED) {
+ try {
+ s.replace(pos1, n1, sv);
+ assert(false);
+ } catch (std::out_of_range&) {
+ assert(pos1 > old_size);
+ assert(s == s0);
}
+ }
#endif
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test0()
-{
- test(S(""), 0, 0, SV(""), S(""));
- test(S(""), 0, 0, SV("12345"), S("12345"));
- test(S(""), 0, 0, SV("1234567890"), S("1234567890"));
- test(S(""), 0, 0, SV("12345678901234567890"), S("12345678901234567890"));
- test(S(""), 0, 1, SV(""), S(""));
- test(S(""), 0, 1, SV("12345"), S("12345"));
- test(S(""), 0, 1, SV("1234567890"), S("1234567890"));
- test(S(""), 0, 1, SV("12345678901234567890"), S("12345678901234567890"));
- test(S(""), 1, 0, SV(""), S("can't happen"));
- test(S(""), 1, 0, SV("12345"), S("can't happen"));
- test(S(""), 1, 0, SV("1234567890"), S("can't happen"));
- test(S(""), 1, 0, SV("12345678901234567890"), S("can't happen"));
- test(S("abcde"), 0, 0, SV(""), S("abcde"));
- test(S("abcde"), 0, 0, SV("12345"), S("12345abcde"));
- test(S("abcde"), 0, 0, SV("1234567890"), S("1234567890abcde"));
- test(S("abcde"), 0, 0, SV("12345678901234567890"), S("12345678901234567890abcde"));
- test(S("abcde"), 0, 1, SV(""), S("bcde"));
- test(S("abcde"), 0, 1, SV("12345"), S("12345bcde"));
- test(S("abcde"), 0, 1, SV("1234567890"), S("1234567890bcde"));
- test(S("abcde"), 0, 1, SV("12345678901234567890"), S("12345678901234567890bcde"));
- test(S("abcde"), 0, 2, SV(""), S("cde"));
- test(S("abcde"), 0, 2, SV("12345"), S("12345cde"));
- test(S("abcde"), 0, 2, SV("1234567890"), S("1234567890cde"));
- test(S("abcde"), 0, 2, SV("12345678901234567890"), S("12345678901234567890cde"));
- test(S("abcde"), 0, 4, SV(""), S("e"));
- test(S("abcde"), 0, 4, SV("12345"), S("12345e"));
- test(S("abcde"), 0, 4, SV("1234567890"), S("1234567890e"));
- test(S("abcde"), 0, 4, SV("12345678901234567890"), S("12345678901234567890e"));
- test(S("abcde"), 0, 5, SV(""), S(""));
- test(S("abcde"), 0, 5, SV("12345"), S("12345"));
- test(S("abcde"), 0, 5, SV("1234567890"), S("1234567890"));
- test(S("abcde"), 0, 5, SV("12345678901234567890"), S("12345678901234567890"));
- test(S("abcde"), 0, 6, SV(""), S(""));
- test(S("abcde"), 0, 6, SV("12345"), S("12345"));
- test(S("abcde"), 0, 6, SV("1234567890"), S("1234567890"));
- test(S("abcde"), 0, 6, SV("12345678901234567890"), S("12345678901234567890"));
- test(S("abcde"), 1, 0, SV(""), S("abcde"));
- test(S("abcde"), 1, 0, SV("12345"), S("a12345bcde"));
- test(S("abcde"), 1, 0, SV("1234567890"), S("a1234567890bcde"));
- test(S("abcde"), 1, 0, SV("12345678901234567890"), S("a12345678901234567890bcde"));
- test(S("abcde"), 1, 1, SV(""), S("acde"));
- test(S("abcde"), 1, 1, SV("12345"), S("a12345cde"));
- test(S("abcde"), 1, 1, SV("1234567890"), S("a1234567890cde"));
- test(S("abcde"), 1, 1, SV("12345678901234567890"), S("a12345678901234567890cde"));
- test(S("abcde"), 1, 2, SV(""), S("ade"));
- test(S("abcde"), 1, 2, SV("12345"), S("a12345de"));
- test(S("abcde"), 1, 2, SV("1234567890"), S("a1234567890de"));
- test(S("abcde"), 1, 2, SV("12345678901234567890"), S("a12345678901234567890de"));
- test(S("abcde"), 1, 3, SV(""), S("ae"));
- test(S("abcde"), 1, 3, SV("12345"), S("a12345e"));
- test(S("abcde"), 1, 3, SV("1234567890"), S("a1234567890e"));
- test(S("abcde"), 1, 3, SV("12345678901234567890"), S("a12345678901234567890e"));
- test(S("abcde"), 1, 4, SV(""), S("a"));
- test(S("abcde"), 1, 4, SV("12345"), S("a12345"));
- test(S("abcde"), 1, 4, SV("1234567890"), S("a1234567890"));
- test(S("abcde"), 1, 4, SV("12345678901234567890"), S("a12345678901234567890"));
- test(S("abcde"), 1, 5, SV(""), S("a"));
- test(S("abcde"), 1, 5, SV("12345"), S("a12345"));
- test(S("abcde"), 1, 5, SV("1234567890"), S("a1234567890"));
- test(S("abcde"), 1, 5, SV("12345678901234567890"), S("a12345678901234567890"));
- test(S("abcde"), 2, 0, SV(""), S("abcde"));
- test(S("abcde"), 2, 0, SV("12345"), S("ab12345cde"));
- test(S("abcde"), 2, 0, SV("1234567890"), S("ab1234567890cde"));
- test(S("abcde"), 2, 0, SV("12345678901234567890"), S("ab12345678901234567890cde"));
- test(S("abcde"), 2, 1, SV(""), S("abde"));
- test(S("abcde"), 2, 1, SV("12345"), S("ab12345de"));
- test(S("abcde"), 2, 1, SV("1234567890"), S("ab1234567890de"));
- test(S("abcde"), 2, 1, SV("12345678901234567890"), S("ab12345678901234567890de"));
- test(S("abcde"), 2, 2, SV(""), S("abe"));
- test(S("abcde"), 2, 2, SV("12345"), S("ab12345e"));
- test(S("abcde"), 2, 2, SV("1234567890"), S("ab1234567890e"));
- test(S("abcde"), 2, 2, SV("12345678901234567890"), S("ab12345678901234567890e"));
- test(S("abcde"), 2, 3, SV(""), S("ab"));
- test(S("abcde"), 2, 3, SV("12345"), S("ab12345"));
- test(S("abcde"), 2, 3, SV("1234567890"), S("ab1234567890"));
- test(S("abcde"), 2, 3, SV("12345678901234567890"), S("ab12345678901234567890"));
- test(S("abcde"), 2, 4, SV(""), S("ab"));
- test(S("abcde"), 2, 4, SV("12345"), S("ab12345"));
- test(S("abcde"), 2, 4, SV("1234567890"), S("ab1234567890"));
- test(S("abcde"), 2, 4, SV("12345678901234567890"), S("ab12345678901234567890"));
- test(S("abcde"), 4, 0, SV(""), S("abcde"));
- test(S("abcde"), 4, 0, SV("12345"), S("abcd12345e"));
- test(S("abcde"), 4, 0, SV("1234567890"), S("abcd1234567890e"));
- test(S("abcde"), 4, 0, SV("12345678901234567890"), S("abcd12345678901234567890e"));
- test(S("abcde"), 4, 1, SV(""), S("abcd"));
- test(S("abcde"), 4, 1, SV("12345"), S("abcd12345"));
- test(S("abcde"), 4, 1, SV("1234567890"), S("abcd1234567890"));
- test(S("abcde"), 4, 1, SV("12345678901234567890"), S("abcd12345678901234567890"));
- test(S("abcde"), 4, 2, SV(""), S("abcd"));
- test(S("abcde"), 4, 2, SV("12345"), S("abcd12345"));
- test(S("abcde"), 4, 2, SV("1234567890"), S("abcd1234567890"));
- test(S("abcde"), 4, 2, SV("12345678901234567890"), S("abcd12345678901234567890"));
- test(S("abcde"), 5, 0, SV(""), S("abcde"));
- test(S("abcde"), 5, 0, SV("12345"), S("abcde12345"));
- test(S("abcde"), 5, 0, SV("1234567890"), S("abcde1234567890"));
- test(S("abcde"), 5, 0, SV("12345678901234567890"), S("abcde12345678901234567890"));
- test(S("abcde"), 5, 1, SV(""), S("abcde"));
- test(S("abcde"), 5, 1, SV("12345"), S("abcde12345"));
- test(S("abcde"), 5, 1, SV("1234567890"), S("abcde1234567890"));
- test(S("abcde"), 5, 1, SV("12345678901234567890"), S("abcde12345678901234567890"));
+TEST_CONSTEXPR_CXX20 bool test0() {
+ test(S(""), 0, 0, SV(""), S(""));
+ test(S(""), 0, 0, SV("12345"), S("12345"));
+ test(S(""), 0, 0, SV("1234567890"), S("1234567890"));
+ test(S(""), 0, 0, SV("12345678901234567890"), S("12345678901234567890"));
+ test(S(""), 0, 1, SV(""), S(""));
+ test(S(""), 0, 1, SV("12345"), S("12345"));
+ test(S(""), 0, 1, SV("1234567890"), S("1234567890"));
+ test(S(""), 0, 1, SV("12345678901234567890"), S("12345678901234567890"));
+ test(S(""), 1, 0, SV(""), S("can't happen"));
+ test(S(""), 1, 0, SV("12345"), S("can't happen"));
+ test(S(""), 1, 0, SV("1234567890"), S("can't happen"));
+ test(S(""), 1, 0, SV("12345678901234567890"), S("can't happen"));
+ test(S("abcde"), 0, 0, SV(""), S("abcde"));
+ test(S("abcde"), 0, 0, SV("12345"), S("12345abcde"));
+ test(S("abcde"), 0, 0, SV("1234567890"), S("1234567890abcde"));
+ test(S("abcde"), 0, 0, SV("12345678901234567890"), S("12345678901234567890abcde"));
+ test(S("abcde"), 0, 1, SV(""), S("bcde"));
+ test(S("abcde"), 0, 1, SV("12345"), S("12345bcde"));
+ test(S("abcde"), 0, 1, SV("1234567890"), S("1234567890bcde"));
+ test(S("abcde"), 0, 1, SV("12345678901234567890"), S("12345678901234567890bcde"));
+ test(S("abcde"), 0, 2, SV(""), S("cde"));
+ test(S("abcde"), 0, 2, SV("12345"), S("12345cde"));
+ test(S("abcde"), 0, 2, SV("1234567890"), S("1234567890cde"));
+ test(S("abcde"), 0, 2, SV("12345678901234567890"), S("12345678901234567890cde"));
+ test(S("abcde"), 0, 4, SV(""), S("e"));
+ test(S("abcde"), 0, 4, SV("12345"), S("12345e"));
+ test(S("abcde"), 0, 4, SV("1234567890"), S("1234567890e"));
+ test(S("abcde"), 0, 4, SV("12345678901234567890"), S("12345678901234567890e"));
+ test(S("abcde"), 0, 5, SV(""), S(""));
+ test(S("abcde"), 0, 5, SV("12345"), S("12345"));
+ test(S("abcde"), 0, 5, SV("1234567890"), S("1234567890"));
+ test(S("abcde"), 0, 5, SV("12345678901234567890"), S("12345678901234567890"));
+ test(S("abcde"), 0, 6, SV(""), S(""));
+ test(S("abcde"), 0, 6, SV("12345"), S("12345"));
+ test(S("abcde"), 0, 6, SV("1234567890"), S("1234567890"));
+ test(S("abcde"), 0, 6, SV("12345678901234567890"), S("12345678901234567890"));
+ test(S("abcde"), 1, 0, SV(""), S("abcde"));
+ test(S("abcde"), 1, 0, SV("12345"), S("a12345bcde"));
+ test(S("abcde"), 1, 0, SV("1234567890"), S("a1234567890bcde"));
+ test(S("abcde"), 1, 0, SV("12345678901234567890"), S("a12345678901234567890bcde"));
+ test(S("abcde"), 1, 1, SV(""), S("acde"));
+ test(S("abcde"), 1, 1, SV("12345"), S("a12345cde"));
+ test(S("abcde"), 1, 1, SV("1234567890"), S("a1234567890cde"));
+ test(S("abcde"), 1, 1, SV("12345678901234567890"), S("a12345678901234567890cde"));
+ test(S("abcde"), 1, 2, SV(""), S("ade"));
+ test(S("abcde"), 1, 2, SV("12345"), S("a12345de"));
+ test(S("abcde"), 1, 2, SV("1234567890"), S("a1234567890de"));
+ test(S("abcde"), 1, 2, SV("12345678901234567890"), S("a12345678901234567890de"));
+ test(S("abcde"), 1, 3, SV(""), S("ae"));
+ test(S("abcde"), 1, 3, SV("12345"), S("a12345e"));
+ test(S("abcde"), 1, 3, SV("1234567890"), S("a1234567890e"));
+ test(S("abcde"), 1, 3, SV("12345678901234567890"), S("a12345678901234567890e"));
+ test(S("abcde"), 1, 4, SV(""), S("a"));
+ test(S("abcde"), 1, 4, SV("12345"), S("a12345"));
+ test(S("abcde"), 1, 4, SV("1234567890"), S("a1234567890"));
+ test(S("abcde"), 1, 4, SV("12345678901234567890"), S("a12345678901234567890"));
+ test(S("abcde"), 1, 5, SV(""), S("a"));
+ test(S("abcde"), 1, 5, SV("12345"), S("a12345"));
+ test(S("abcde"), 1, 5, SV("1234567890"), S("a1234567890"));
+ test(S("abcde"), 1, 5, SV("12345678901234567890"), S("a12345678901234567890"));
+ test(S("abcde"), 2, 0, SV(""), S("abcde"));
+ test(S("abcde"), 2, 0, SV("12345"), S("ab12345cde"));
+ test(S("abcde"), 2, 0, SV("1234567890"), S("ab1234567890cde"));
+ test(S("abcde"), 2, 0, SV("12345678901234567890"), S("ab12345678901234567890cde"));
+ test(S("abcde"), 2, 1, SV(""), S("abde"));
+ test(S("abcde"), 2, 1, SV("12345"), S("ab12345de"));
+ test(S("abcde"), 2, 1, SV("1234567890"), S("ab1234567890de"));
+ test(S("abcde"), 2, 1, SV("12345678901234567890"), S("ab12345678901234567890de"));
+ test(S("abcde"), 2, 2, SV(""), S("abe"));
+ test(S("abcde"), 2, 2, SV("12345"), S("ab12345e"));
+ test(S("abcde"), 2, 2, SV("1234567890"), S("ab1234567890e"));
+ test(S("abcde"), 2, 2, SV("12345678901234567890"), S("ab12345678901234567890e"));
+ test(S("abcde"), 2, 3, SV(""), S("ab"));
+ test(S("abcde"), 2, 3, SV("12345"), S("ab12345"));
+ test(S("abcde"), 2, 3, SV("1234567890"), S("ab1234567890"));
+ test(S("abcde"), 2, 3, SV("12345678901234567890"), S("ab12345678901234567890"));
+ test(S("abcde"), 2, 4, SV(""), S("ab"));
+ test(S("abcde"), 2, 4, SV("12345"), S("ab12345"));
+ test(S("abcde"), 2, 4, SV("1234567890"), S("ab1234567890"));
+ test(S("abcde"), 2, 4, SV("12345678901234567890"), S("ab12345678901234567890"));
+ test(S("abcde"), 4, 0, SV(""), S("abcde"));
+ test(S("abcde"), 4, 0, SV("12345"), S("abcd12345e"));
+ test(S("abcde"), 4, 0, SV("1234567890"), S("abcd1234567890e"));
+ test(S("abcde"), 4, 0, SV("12345678901234567890"), S("abcd12345678901234567890e"));
+ test(S("abcde"), 4, 1, SV(""), S("abcd"));
+ test(S("abcde"), 4, 1, SV("12345"), S("abcd12345"));
+ test(S("abcde"), 4, 1, SV("1234567890"), S("abcd1234567890"));
+ test(S("abcde"), 4, 1, SV("12345678901234567890"), S("abcd12345678901234567890"));
+ test(S("abcde"), 4, 2, SV(""), S("abcd"));
+ test(S("abcde"), 4, 2, SV("12345"), S("abcd12345"));
+ test(S("abcde"), 4, 2, SV("1234567890"), S("abcd1234567890"));
+ test(S("abcde"), 4, 2, SV("12345678901234567890"), S("abcd12345678901234567890"));
+ test(S("abcde"), 5, 0, SV(""), S("abcde"));
+ test(S("abcde"), 5, 0, SV("12345"), S("abcde12345"));
+ test(S("abcde"), 5, 0, SV("1234567890"), S("abcde1234567890"));
+ test(S("abcde"), 5, 0, SV("12345678901234567890"), S("abcde12345678901234567890"));
+ test(S("abcde"), 5, 1, SV(""), S("abcde"));
+ test(S("abcde"), 5, 1, SV("12345"), S("abcde12345"));
+ test(S("abcde"), 5, 1, SV("1234567890"), S("abcde1234567890"));
+ test(S("abcde"), 5, 1, SV("12345678901234567890"), S("abcde12345678901234567890"));
- return true;
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test1()
-{
- test(S("abcde"), 6, 0, SV(""), S("can't happen"));
- test(S("abcde"), 6, 0, SV("12345"), S("can't happen"));
- test(S("abcde"), 6, 0, SV("1234567890"), S("can't happen"));
- test(S("abcde"), 6, 0, SV("12345678901234567890"), S("can't happen"));
- test(S("abcdefghij"), 0, 0, SV(""), S("abcdefghij"));
- test(S("abcdefghij"), 0, 0, SV("12345"), S("12345abcdefghij"));
- test(S("abcdefghij"), 0, 0, SV("1234567890"), S("1234567890abcdefghij"));
- test(S("abcdefghij"), 0, 0, SV("12345678901234567890"), S("12345678901234567890abcdefghij"));
- test(S("abcdefghij"), 0, 1, SV(""), S("bcdefghij"));
- test(S("abcdefghij"), 0, 1, SV("12345"), S("12345bcdefghij"));
- test(S("abcdefghij"), 0, 1, SV("1234567890"), S("1234567890bcdefghij"));
- test(S("abcdefghij"), 0, 1, SV("12345678901234567890"), S("12345678901234567890bcdefghij"));
- test(S("abcdefghij"), 0, 5, SV(""), S("fghij"));
- test(S("abcdefghij"), 0, 5, SV("12345"), S("12345fghij"));
- test(S("abcdefghij"), 0, 5, SV("1234567890"), S("1234567890fghij"));
- test(S("abcdefghij"), 0, 5, SV("12345678901234567890"), S("12345678901234567890fghij"));
- test(S("abcdefghij"), 0, 9, SV(""), S("j"));
- test(S("abcdefghij"), 0, 9, SV("12345"), S("12345j"));
- test(S("abcdefghij"), 0, 9, SV("1234567890"), S("1234567890j"));
- test(S("abcdefghij"), 0, 9, SV("12345678901234567890"), S("12345678901234567890j"));
- test(S("abcdefghij"), 0, 10, SV(""), S(""));
- test(S("abcdefghij"), 0, 10, SV("12345"), S("12345"));
- test(S("abcdefghij"), 0, 10, SV("1234567890"), S("1234567890"));
- test(S("abcdefghij"), 0, 10, SV("12345678901234567890"), S("12345678901234567890"));
- test(S("abcdefghij"), 0, 11, SV(""), S(""));
- test(S("abcdefghij"), 0, 11, SV("12345"), S("12345"));
- test(S("abcdefghij"), 0, 11, SV("1234567890"), S("1234567890"));
- test(S("abcdefghij"), 0, 11, SV("12345678901234567890"), S("12345678901234567890"));
- test(S("abcdefghij"), 1, 0, SV(""), S("abcdefghij"));
- test(S("abcdefghij"), 1, 0, SV("12345"), S("a12345bcdefghij"));
- test(S("abcdefghij"), 1, 0, SV("1234567890"), S("a1234567890bcdefghij"));
- test(S("abcdefghij"), 1, 0, SV("12345678901234567890"), S("a12345678901234567890bcdefghij"));
- test(S("abcdefghij"), 1, 1, SV(""), S("acdefghij"));
- test(S("abcdefghij"), 1, 1, SV("12345"), S("a12345cdefghij"));
- test(S("abcdefghij"), 1, 1, SV("1234567890"), S("a1234567890cdefghij"));
- test(S("abcdefghij"), 1, 1, SV("12345678901234567890"), S("a12345678901234567890cdefghij"));
- test(S("abcdefghij"), 1, 4, SV(""), S("afghij"));
- test(S("abcdefghij"), 1, 4, SV("12345"), S("a12345fghij"));
- test(S("abcdefghij"), 1, 4, SV("1234567890"), S("a1234567890fghij"));
- test(S("abcdefghij"), 1, 4, SV("12345678901234567890"), S("a12345678901234567890fghij"));
- test(S("abcdefghij"), 1, 8, SV(""), S("aj"));
- test(S("abcdefghij"), 1, 8, SV("12345"), S("a12345j"));
- test(S("abcdefghij"), 1, 8, SV("1234567890"), S("a1234567890j"));
- test(S("abcdefghij"), 1, 8, SV("12345678901234567890"), S("a12345678901234567890j"));
- test(S("abcdefghij"), 1, 9, SV(""), S("a"));
- test(S("abcdefghij"), 1, 9, SV("12345"), S("a12345"));
- test(S("abcdefghij"), 1, 9, SV("1234567890"), S("a1234567890"));
- test(S("abcdefghij"), 1, 9, SV("12345678901234567890"), S("a12345678901234567890"));
- test(S("abcdefghij"), 1, 10, SV(""), S("a"));
- test(S("abcdefghij"), 1, 10, SV("12345"), S("a12345"));
- test(S("abcdefghij"), 1, 10, SV("1234567890"), S("a1234567890"));
- test(S("abcdefghij"), 1, 10, SV("12345678901234567890"), S("a12345678901234567890"));
- test(S("abcdefghij"), 5, 0, SV(""), S("abcdefghij"));
- test(S("abcdefghij"), 5, 0, SV("12345"), S("abcde12345fghij"));
- test(S("abcdefghij"), 5, 0, SV("1234567890"), S("abcde1234567890fghij"));
- test(S("abcdefghij"), 5, 0, SV("12345678901234567890"), S("abcde12345678901234567890fghij"));
- test(S("abcdefghij"), 5, 1, SV(""), S("abcdeghij"));
- test(S("abcdefghij"), 5, 1, SV("12345"), S("abcde12345ghij"));
- test(S("abcdefghij"), 5, 1, SV("1234567890"), S("abcde1234567890ghij"));
- test(S("abcdefghij"), 5, 1, SV("12345678901234567890"), S("abcde12345678901234567890ghij"));
- test(S("abcdefghij"), 5, 2, SV(""), S("abcdehij"));
- test(S("abcdefghij"), 5, 2, SV("12345"), S("abcde12345hij"));
- test(S("abcdefghij"), 5, 2, SV("1234567890"), S("abcde1234567890hij"));
- test(S("abcdefghij"), 5, 2, SV("12345678901234567890"), S("abcde12345678901234567890hij"));
- test(S("abcdefghij"), 5, 4, SV(""), S("abcdej"));
- test(S("abcdefghij"), 5, 4, SV("12345"), S("abcde12345j"));
- test(S("abcdefghij"), 5, 4, SV("1234567890"), S("abcde1234567890j"));
- test(S("abcdefghij"), 5, 4, SV("12345678901234567890"), S("abcde12345678901234567890j"));
- test(S("abcdefghij"), 5, 5, SV(""), S("abcde"));
- test(S("abcdefghij"), 5, 5, SV("12345"), S("abcde12345"));
- test(S("abcdefghij"), 5, 5, SV("1234567890"), S("abcde1234567890"));
- test(S("abcdefghij"), 5, 5, SV("12345678901234567890"), S("abcde12345678901234567890"));
- test(S("abcdefghij"), 5, 6, SV(""), S("abcde"));
- test(S("abcdefghij"), 5, 6, SV("12345"), S("abcde12345"));
- test(S("abcdefghij"), 5, 6, SV("1234567890"), S("abcde1234567890"));
- test(S("abcdefghij"), 5, 6, SV("12345678901234567890"), S("abcde12345678901234567890"));
- test(S("abcdefghij"), 9, 0, SV(""), S("abcdefghij"));
- test(S("abcdefghij"), 9, 0, SV("12345"), S("abcdefghi12345j"));
- test(S("abcdefghij"), 9, 0, SV("1234567890"), S("abcdefghi1234567890j"));
- test(S("abcdefghij"), 9, 0, SV("12345678901234567890"), S("abcdefghi12345678901234567890j"));
- test(S("abcdefghij"), 9, 1, SV(""), S("abcdefghi"));
- test(S("abcdefghij"), 9, 1, SV("12345"), S("abcdefghi12345"));
- test(S("abcdefghij"), 9, 1, SV("1234567890"), S("abcdefghi1234567890"));
- test(S("abcdefghij"), 9, 1, SV("12345678901234567890"), S("abcdefghi12345678901234567890"));
- test(S("abcdefghij"), 9, 2, SV(""), S("abcdefghi"));
- test(S("abcdefghij"), 9, 2, SV("12345"), S("abcdefghi12345"));
- test(S("abcdefghij"), 9, 2, SV("1234567890"), S("abcdefghi1234567890"));
- test(S("abcdefghij"), 9, 2, SV("12345678901234567890"), S("abcdefghi12345678901234567890"));
- test(S("abcdefghij"), 10, 0, SV(""), S("abcdefghij"));
- test(S("abcdefghij"), 10, 0, SV("12345"), S("abcdefghij12345"));
- test(S("abcdefghij"), 10, 0, SV("1234567890"), S("abcdefghij1234567890"));
- test(S("abcdefghij"), 10, 0, SV("12345678901234567890"), S("abcdefghij12345678901234567890"));
- test(S("abcdefghij"), 10, 1, SV(""), S("abcdefghij"));
- test(S("abcdefghij"), 10, 1, SV("12345"), S("abcdefghij12345"));
- test(S("abcdefghij"), 10, 1, SV("1234567890"), S("abcdefghij1234567890"));
- test(S("abcdefghij"), 10, 1, SV("12345678901234567890"), S("abcdefghij12345678901234567890"));
- test(S("abcdefghij"), 11, 0, SV(""), S("can't happen"));
- test(S("abcdefghij"), 11, 0, SV("12345"), S("can't happen"));
- test(S("abcdefghij"), 11, 0, SV("1234567890"), S("can't happen"));
- test(S("abcdefghij"), 11, 0, SV("12345678901234567890"), S("can't happen"));
+TEST_CONSTEXPR_CXX20 bool test1() {
+ test(S("abcde"), 6, 0, SV(""), S("can't happen"));
+ test(S("abcde"), 6, 0, SV("12345"), S("can't happen"));
+ test(S("abcde"), 6, 0, SV("1234567890"), S("can't happen"));
+ test(S("abcde"), 6, 0, SV("12345678901234567890"), S("can't happen"));
+ test(S("abcdefghij"), 0, 0, SV(""), S("abcdefghij"));
+ test(S("abcdefghij"), 0, 0, SV("12345"), S("12345abcdefghij"));
+ test(S("abcdefghij"), 0, 0, SV("1234567890"), S("1234567890abcdefghij"));
+ test(S("abcdefghij"), 0, 0, SV("12345678901234567890"), S("12345678901234567890abcdefghij"));
+ test(S("abcdefghij"), 0, 1, SV(""), S("bcdefghij"));
+ test(S("abcdefghij"), 0, 1, SV("12345"), S("12345bcdefghij"));
+ test(S("abcdefghij"), 0, 1, SV("1234567890"), S("1234567890bcdefghij"));
+ test(S("abcdefghij"), 0, 1, SV("12345678901234567890"), S("12345678901234567890bcdefghij"));
+ test(S("abcdefghij"), 0, 5, SV(""), S("fghij"));
+ test(S("abcdefghij"), 0, 5, SV("12345"), S("12345fghij"));
+ test(S("abcdefghij"), 0, 5, SV("1234567890"), S("1234567890fghij"));
+ test(S("abcdefghij"), 0, 5, SV("12345678901234567890"), S("12345678901234567890fghij"));
+ test(S("abcdefghij"), 0, 9, SV(""), S("j"));
+ test(S("abcdefghij"), 0, 9, SV("12345"), S("12345j"));
+ test(S("abcdefghij"), 0, 9, SV("1234567890"), S("1234567890j"));
+ test(S("abcdefghij"), 0, 9, SV("12345678901234567890"), S("12345678901234567890j"));
+ test(S("abcdefghij"), 0, 10, SV(""), S(""));
+ test(S("abcdefghij"), 0, 10, SV("12345"), S("12345"));
+ test(S("abcdefghij"), 0, 10, SV("1234567890"), S("1234567890"));
+ test(S("abcdefghij"), 0, 10, SV("12345678901234567890"), S("12345678901234567890"));
+ test(S("abcdefghij"), 0, 11, SV(""), S(""));
+ test(S("abcdefghij"), 0, 11, SV("12345"), S("12345"));
+ test(S("abcdefghij"), 0, 11, SV("1234567890"), S("1234567890"));
+ test(S("abcdefghij"), 0, 11, SV("12345678901234567890"), S("12345678901234567890"));
+ test(S("abcdefghij"), 1, 0, SV(""), S("abcdefghij"));
+ test(S("abcdefghij"), 1, 0, SV("12345"), S("a12345bcdefghij"));
+ test(S("abcdefghij"), 1, 0, SV("1234567890"), S("a1234567890bcdefghij"));
+ test(S("abcdefghij"), 1, 0, SV("12345678901234567890"), S("a12345678901234567890bcdefghij"));
+ test(S("abcdefghij"), 1, 1, SV(""), S("acdefghij"));
+ test(S("abcdefghij"), 1, 1, SV("12345"), S("a12345cdefghij"));
+ test(S("abcdefghij"), 1, 1, SV("1234567890"), S("a1234567890cdefghij"));
+ test(S("abcdefghij"), 1, 1, SV("12345678901234567890"), S("a12345678901234567890cdefghij"));
+ test(S("abcdefghij"), 1, 4, SV(""), S("afghij"));
+ test(S("abcdefghij"), 1, 4, SV("12345"), S("a12345fghij"));
+ test(S("abcdefghij"), 1, 4, SV("1234567890"), S("a1234567890fghij"));
+ test(S("abcdefghij"), 1, 4, SV("12345678901234567890"), S("a12345678901234567890fghij"));
+ test(S("abcdefghij"), 1, 8, SV(""), S("aj"));
+ test(S("abcdefghij"), 1, 8, SV("12345"), S("a12345j"));
+ test(S("abcdefghij"), 1, 8, SV("1234567890"), S("a1234567890j"));
+ test(S("abcdefghij"), 1, 8, SV("12345678901234567890"), S("a12345678901234567890j"));
+ test(S("abcdefghij"), 1, 9, SV(""), S("a"));
+ test(S("abcdefghij"), 1, 9, SV("12345"), S("a12345"));
+ test(S("abcdefghij"), 1, 9, SV("1234567890"), S("a1234567890"));
+ test(S("abcdefghij"), 1, 9, SV("12345678901234567890"), S("a12345678901234567890"));
+ test(S("abcdefghij"), 1, 10, SV(""), S("a"));
+ test(S("abcdefghij"), 1, 10, SV("12345"), S("a12345"));
+ test(S("abcdefghij"), 1, 10, SV("1234567890"), S("a1234567890"));
+ test(S("abcdefghij"), 1, 10, SV("12345678901234567890"), S("a12345678901234567890"));
+ test(S("abcdefghij"), 5, 0, SV(""), S("abcdefghij"));
+ test(S("abcdefghij"), 5, 0, SV("12345"), S("abcde12345fghij"));
+ test(S("abcdefghij"), 5, 0, SV("1234567890"), S("abcde1234567890fghij"));
+ test(S("abcdefghij"), 5, 0, SV("12345678901234567890"), S("abcde12345678901234567890fghij"));
+ test(S("abcdefghij"), 5, 1, SV(""), S("abcdeghij"));
+ test(S("abcdefghij"), 5, 1, SV("12345"), S("abcde12345ghij"));
+ test(S("abcdefghij"), 5, 1, SV("1234567890"), S("abcde1234567890ghij"));
+ test(S("abcdefghij"), 5, 1, SV("12345678901234567890"), S("abcde12345678901234567890ghij"));
+ test(S("abcdefghij"), 5, 2, SV(""), S("abcdehij"));
+ test(S("abcdefghij"), 5, 2, SV("12345"), S("abcde12345hij"));
+ test(S("abcdefghij"), 5, 2, SV("1234567890"), S("abcde1234567890hij"));
+ test(S("abcdefghij"), 5, 2, SV("12345678901234567890"), S("abcde12345678901234567890hij"));
+ test(S("abcdefghij"), 5, 4, SV(""), S("abcdej"));
+ test(S("abcdefghij"), 5, 4, SV("12345"), S("abcde12345j"));
+ test(S("abcdefghij"), 5, 4, SV("1234567890"), S("abcde1234567890j"));
+ test(S("abcdefghij"), 5, 4, SV("12345678901234567890"), S("abcde12345678901234567890j"));
+ test(S("abcdefghij"), 5, 5, SV(""), S("abcde"));
+ test(S("abcdefghij"), 5, 5, SV("12345"), S("abcde12345"));
+ test(S("abcdefghij"), 5, 5, SV("1234567890"), S("abcde1234567890"));
+ test(S("abcdefghij"), 5, 5, SV("12345678901234567890"), S("abcde12345678901234567890"));
+ test(S("abcdefghij"), 5, 6, SV(""), S("abcde"));
+ test(S("abcdefghij"), 5, 6, SV("12345"), S("abcde12345"));
+ test(S("abcdefghij"), 5, 6, SV("1234567890"), S("abcde1234567890"));
+ test(S("abcdefghij"), 5, 6, SV("12345678901234567890"), S("abcde12345678901234567890"));
+ test(S("abcdefghij"), 9, 0, SV(""), S("abcdefghij"));
+ test(S("abcdefghij"), 9, 0, SV("12345"), S("abcdefghi12345j"));
+ test(S("abcdefghij"), 9, 0, SV("1234567890"), S("abcdefghi1234567890j"));
+ test(S("abcdefghij"), 9, 0, SV("12345678901234567890"), S("abcdefghi12345678901234567890j"));
+ test(S("abcdefghij"), 9, 1, SV(""), S("abcdefghi"));
+ test(S("abcdefghij"), 9, 1, SV("12345"), S("abcdefghi12345"));
+ test(S("abcdefghij"), 9, 1, SV("1234567890"), S("abcdefghi1234567890"));
+ test(S("abcdefghij"), 9, 1, SV("12345678901234567890"), S("abcdefghi12345678901234567890"));
+ test(S("abcdefghij"), 9, 2, SV(""), S("abcdefghi"));
+ test(S("abcdefghij"), 9, 2, SV("12345"), S("abcdefghi12345"));
+ test(S("abcdefghij"), 9, 2, SV("1234567890"), S("abcdefghi1234567890"));
+ test(S("abcdefghij"), 9, 2, SV("12345678901234567890"), S("abcdefghi12345678901234567890"));
+ test(S("abcdefghij"), 10, 0, SV(""), S("abcdefghij"));
+ test(S("abcdefghij"), 10, 0, SV("12345"), S("abcdefghij12345"));
+ test(S("abcdefghij"), 10, 0, SV("1234567890"), S("abcdefghij1234567890"));
+ test(S("abcdefghij"), 10, 0, SV("12345678901234567890"), S("abcdefghij12345678901234567890"));
+ test(S("abcdefghij"), 10, 1, SV(""), S("abcdefghij"));
+ test(S("abcdefghij"), 10, 1, SV("12345"), S("abcdefghij12345"));
+ test(S("abcdefghij"), 10, 1, SV("1234567890"), S("abcdefghij1234567890"));
+ test(S("abcdefghij"), 10, 1, SV("12345678901234567890"), S("abcdefghij12345678901234567890"));
+ test(S("abcdefghij"), 11, 0, SV(""), S("can't happen"));
+ test(S("abcdefghij"), 11, 0, SV("12345"), S("can't happen"));
+ test(S("abcdefghij"), 11, 0, SV("1234567890"), S("can't happen"));
+ test(S("abcdefghij"), 11, 0, SV("12345678901234567890"), S("can't happen"));
- return true;
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test2()
-{
- test(S("abcdefghijklmnopqrst"), 0, 0, SV(""), S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345"), S("12345abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("1234567890"), S("1234567890abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345678901234567890"), S("12345678901234567890abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, SV(""), S("bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345"), S("12345bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("1234567890"), S("1234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345678901234567890"), S("12345678901234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, SV(""), S("klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345"), S("12345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("1234567890"), S("1234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345678901234567890"), S("12345678901234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 0, 19, SV(""), S("t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345"), S("12345t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("1234567890"), S("1234567890t"));
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345678901234567890"), S("12345678901234567890t"));
- test(S("abcdefghijklmnopqrst"), 0, 20, SV(""), S(""));
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345"), S("12345"));
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("1234567890"), S("1234567890"));
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345678901234567890"), S("12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 0, 21, SV(""), S(""));
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345"), S("12345"));
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("1234567890"), S("1234567890"));
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345678901234567890"), S("12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 1, 0, SV(""), S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345"), S("a12345bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("1234567890"), S("a1234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345678901234567890"), S("a12345678901234567890bcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, SV(""), S("acdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345"), S("a12345cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("1234567890"), S("a1234567890cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345678901234567890"), S("a12345678901234567890cdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, SV(""), S("aklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345"), S("a12345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("1234567890"), S("a1234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345678901234567890"), S("a12345678901234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 1, 18, SV(""), S("at"));
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345"), S("a12345t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("1234567890"), S("a1234567890t"));
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345678901234567890"), S("a12345678901234567890t"));
- test(S("abcdefghijklmnopqrst"), 1, 19, SV(""), S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345"), S("a12345"));
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("1234567890"), S("a1234567890"));
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345678901234567890"), S("a12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 1, 20, SV(""), S("a"));
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345"), S("a12345"));
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("1234567890"), S("a1234567890"));
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345678901234567890"), S("a12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 10, 0, SV(""), S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345"), S("abcdefghij12345klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("1234567890"), S("abcdefghij1234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345678901234567890"), S("abcdefghij12345678901234567890klmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, SV(""), S("abcdefghijlmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345"), S("abcdefghij12345lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("1234567890"), S("abcdefghij1234567890lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345678901234567890"), S("abcdefghij12345678901234567890lmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, SV(""), S("abcdefghijpqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345"), S("abcdefghij12345pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("1234567890"), S("abcdefghij1234567890pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345678901234567890"), S("abcdefghij12345678901234567890pqrst"));
- test(S("abcdefghijklmnopqrst"), 10, 9, SV(""), S("abcdefghijt"));
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345"), S("abcdefghij12345t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("1234567890"), S("abcdefghij1234567890t"));
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345678901234567890"), S("abcdefghij12345678901234567890t"));
- test(S("abcdefghijklmnopqrst"), 10, 10, SV(""), S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345"), S("abcdefghij12345"));
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("1234567890"), S("abcdefghij1234567890"));
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345678901234567890"), S("abcdefghij12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 10, 11, SV(""), S("abcdefghij"));
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345"), S("abcdefghij12345"));
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("1234567890"), S("abcdefghij1234567890"));
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345678901234567890"), S("abcdefghij12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 19, 0, SV(""), S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345"), S("abcdefghijklmnopqrs12345t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("1234567890"), S("abcdefghijklmnopqrs1234567890t"));
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345678901234567890"), S("abcdefghijklmnopqrs12345678901234567890t"));
- test(S("abcdefghijklmnopqrst"), 19, 1, SV(""), S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345"), S("abcdefghijklmnopqrs12345"));
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("1234567890"), S("abcdefghijklmnopqrs1234567890"));
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345678901234567890"), S("abcdefghijklmnopqrs12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 19, 2, SV(""), S("abcdefghijklmnopqrs"));
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345"), S("abcdefghijklmnopqrs12345"));
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("1234567890"), S("abcdefghijklmnopqrs1234567890"));
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345678901234567890"), S("abcdefghijklmnopqrs12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 20, 0, SV(""), S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345"), S("abcdefghijklmnopqrst12345"));
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("1234567890"), S("abcdefghijklmnopqrst1234567890"));
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345678901234567890"), S("abcdefghijklmnopqrst12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 20, 1, SV(""), S("abcdefghijklmnopqrst"));
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345"), S("abcdefghijklmnopqrst12345"));
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("1234567890"), S("abcdefghijklmnopqrst1234567890"));
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345678901234567890"), S("abcdefghijklmnopqrst12345678901234567890"));
- test(S("abcdefghijklmnopqrst"), 21, 0, SV(""), S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345"), S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("1234567890"), S("can't happen"));
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345678901234567890"), S("can't happen"));
+TEST_CONSTEXPR_CXX20 bool test2() {
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV(""), S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345"), S("12345abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("1234567890"), S("1234567890abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("12345678901234567890"), S("12345678901234567890abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV(""), S("bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345"), S("12345bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("1234567890"), S("1234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("12345678901234567890"), S("12345678901234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV(""), S("klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345"), S("12345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("1234567890"), S("1234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("12345678901234567890"), S("12345678901234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV(""), S("t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345"), S("12345t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("1234567890"), S("1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("12345678901234567890"), S("12345678901234567890t"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV(""), S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345"), S("12345"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("1234567890"), S("1234567890"));
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("12345678901234567890"), S("12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV(""), S(""));
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345"), S("12345"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("1234567890"), S("1234567890"));
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("12345678901234567890"), S("12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV(""), S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345"), S("a12345bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("1234567890"), S("a1234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("12345678901234567890"), S("a12345678901234567890bcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV(""), S("acdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345"), S("a12345cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("1234567890"), S("a1234567890cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("12345678901234567890"), S("a12345678901234567890cdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV(""), S("aklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345"), S("a12345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("1234567890"), S("a1234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("12345678901234567890"), S("a12345678901234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV(""), S("at"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345"), S("a12345t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("1234567890"), S("a1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("12345678901234567890"), S("a12345678901234567890t"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV(""), S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345"), S("a12345"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("1234567890"), S("a1234567890"));
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("12345678901234567890"), S("a12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV(""), S("a"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345"), S("a12345"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("1234567890"), S("a1234567890"));
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("12345678901234567890"), S("a12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV(""), S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345"), S("abcdefghij12345klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("1234567890"), S("abcdefghij1234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("12345678901234567890"), S("abcdefghij12345678901234567890klmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV(""), S("abcdefghijlmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345"), S("abcdefghij12345lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("1234567890"), S("abcdefghij1234567890lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("12345678901234567890"), S("abcdefghij12345678901234567890lmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV(""), S("abcdefghijpqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345"), S("abcdefghij12345pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("1234567890"), S("abcdefghij1234567890pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("12345678901234567890"), S("abcdefghij12345678901234567890pqrst"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV(""), S("abcdefghijt"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345"), S("abcdefghij12345t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("1234567890"), S("abcdefghij1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("12345678901234567890"), S("abcdefghij12345678901234567890t"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV(""), S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345"), S("abcdefghij12345"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("1234567890"), S("abcdefghij1234567890"));
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("12345678901234567890"), S("abcdefghij12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV(""), S("abcdefghij"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345"), S("abcdefghij12345"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("1234567890"), S("abcdefghij1234567890"));
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("12345678901234567890"), S("abcdefghij12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV(""), S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345"), S("abcdefghijklmnopqrs12345t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("1234567890"), S("abcdefghijklmnopqrs1234567890t"));
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("12345678901234567890"), S("abcdefghijklmnopqrs12345678901234567890t"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV(""), S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345"), S("abcdefghijklmnopqrs12345"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("1234567890"), S("abcdefghijklmnopqrs1234567890"));
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("12345678901234567890"), S("abcdefghijklmnopqrs12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV(""), S("abcdefghijklmnopqrs"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345"), S("abcdefghijklmnopqrs12345"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("1234567890"), S("abcdefghijklmnopqrs1234567890"));
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("12345678901234567890"), S("abcdefghijklmnopqrs12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV(""), S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345"), S("abcdefghijklmnopqrst12345"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("1234567890"), S("abcdefghijklmnopqrst1234567890"));
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("12345678901234567890"), S("abcdefghijklmnopqrst12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV(""), S("abcdefghijklmnopqrst"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345"), S("abcdefghijklmnopqrst12345"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("1234567890"), S("abcdefghijklmnopqrst1234567890"));
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("12345678901234567890"), S("abcdefghijklmnopqrst12345678901234567890"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV(""), S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345"), S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("1234567890"), S("can't happen"));
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("12345678901234567890"), S("can't happen"));
- return true;
+ return true;
}
template <class S>
@@ -383,8 +373,7 @@ void test() {
}
}
-int main(int, char**)
-{
+int main(int, char**) {
test<std::string>();
#if TEST_STD_VER >= 11
test<std::basic_string<char, std::char_traits<char>, min_allocator<char>>>();
diff --git a/libcxx/test/std/strings/basic.string/string.modifiers/string_swap/swap.pass.cpp b/libcxx/test/std/strings/basic.string/string.modifiers/string_swap/swap.pass.cpp
index f11b7a09718ae5d..3d9ec016bcfbd3a 100644
--- a/libcxx/test/std/strings/basic.string/string.modifiers/string_swap/swap.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.modifiers/string_swap/swap.pass.cpp
@@ -19,16 +19,14 @@
#include "min_allocator.h"
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(S s1, S s2)
-{
- S s1_ = s1;
- S s2_ = s2;
- s1.swap(s2);
- LIBCPP_ASSERT(s1.__invariants());
- LIBCPP_ASSERT(s2.__invariants());
- assert(s1 == s2_);
- assert(s2 == s1_);
+TEST_CONSTEXPR_CXX20 void test(S s1, S s2) {
+ S s1_ = s1;
+ S s2_ = s2;
+ s1.swap(s2);
+ LIBCPP_ASSERT(s1.__invariants());
+ LIBCPP_ASSERT(s2.__invariants());
+ assert(s1 == s2_);
+ assert(s2 == s1_);
}
template <class S>
@@ -60,8 +58,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.nonmembers/string.io/get_line.pass.cpp b/libcxx/test/std/strings/basic.string/string.nonmembers/string.io/get_line.pass.cpp
index aa00fc90d192b1c..1a1981fe89f4644 100644
--- a/libcxx/test/std/strings/basic.string/string.nonmembers/string.io/get_line.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.nonmembers/string.io/get_line.pass.cpp
@@ -20,151 +20,150 @@
#include "min_allocator.h"
#include "test_macros.h"
-int main(int, char**)
-{
- {
- std::istringstream in(" abc\n def\n ghij");
- std::string s("initial text");
- std::getline(in, s);
- assert(in.good());
- assert(s == " abc");
- std::getline(in, s);
- assert(in.good());
- assert(s == " def");
- std::getline(in, s);
- assert(in.eof());
- assert(s == " ghij");
- }
+int main(int, char**) {
+ {
+ std::istringstream in(" abc\n def\n ghij");
+ std::string s("initial text");
+ std::getline(in, s);
+ assert(in.good());
+ assert(s == " abc");
+ std::getline(in, s);
+ assert(in.good());
+ assert(s == " def");
+ std::getline(in, s);
+ assert(in.eof());
+ assert(s == " ghij");
+ }
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- {
- std::wistringstream in(L" abc\n def\n ghij");
- std::wstring s(L"initial text");
- std::getline(in, s);
- assert(in.good());
- assert(s == L" abc");
- std::getline(in, s);
- assert(in.good());
- assert(s == L" def");
- std::getline(in, s);
- assert(in.eof());
- assert(s == L" ghij");
- }
+ {
+ std::wistringstream in(L" abc\n def\n ghij");
+ std::wstring s(L"initial text");
+ std::getline(in, s);
+ assert(in.good());
+ assert(s == L" abc");
+ std::getline(in, s);
+ assert(in.good());
+ assert(s == L" def");
+ std::getline(in, s);
+ assert(in.eof());
+ assert(s == L" ghij");
+ }
#endif
#if TEST_STD_VER >= 11
- {
- typedef std::basic_string<char, std::char_traits<char>, min_allocator<char>> S;
- std::istringstream in(" abc\n def\n ghij");
- S s("initial text");
- std::getline(in, s);
- assert(in.good());
- assert(s == " abc");
- std::getline(in, s);
- assert(in.good());
- assert(s == " def");
- std::getline(in, s);
- assert(in.eof());
- assert(s == " ghij");
- }
-#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- {
- typedef std::basic_string<wchar_t, std::char_traits<wchar_t>, min_allocator<wchar_t>> S;
- std::wistringstream in(L" abc\n def\n ghij");
- S s(L"initial text");
- std::getline(in, s);
- assert(in.good());
- assert(s == L" abc");
- std::getline(in, s);
- assert(in.good());
- assert(s == L" def");
- std::getline(in, s);
- assert(in.eof());
- assert(s == L" ghij");
- }
-#endif // TEST_HAS_NO_WIDE_CHARACTERS
-#endif // TEST_STD_VER >= 11
+ {
+ typedef std::basic_string<char, std::char_traits<char>, min_allocator<char>> S;
+ std::istringstream in(" abc\n def\n ghij");
+ S s("initial text");
+ std::getline(in, s);
+ assert(in.good());
+ assert(s == " abc");
+ std::getline(in, s);
+ assert(in.good());
+ assert(s == " def");
+ std::getline(in, s);
+ assert(in.eof());
+ assert(s == " ghij");
+ }
+# ifndef TEST_HAS_NO_WIDE_CHARACTERS
+ {
+ typedef std::basic_string<wchar_t, std::char_traits<wchar_t>, min_allocator<wchar_t>> S;
+ std::wistringstream in(L" abc\n def\n ghij");
+ S s(L"initial text");
+ std::getline(in, s);
+ assert(in.good());
+ assert(s == L" abc");
+ std::getline(in, s);
+ assert(in.good());
+ assert(s == L" def");
+ std::getline(in, s);
+ assert(in.eof());
+ assert(s == L" ghij");
+ }
+# endif // TEST_HAS_NO_WIDE_CHARACTERS
+#endif // TEST_STD_VER >= 11
#ifndef TEST_HAS_NO_EXCEPTIONS
- {
- std::basic_stringbuf<char> sb("hello");
- std::basic_istream<char> is(&sb);
- is.exceptions(std::ios_base::eofbit);
-
- std::basic_string<char> s;
- bool threw = false;
- try {
- std::getline(is, s);
- } catch (std::ios::failure const&) {
- threw = true;
- }
+ {
+ std::basic_stringbuf<char> sb("hello");
+ std::basic_istream<char> is(&sb);
+ is.exceptions(std::ios_base::eofbit);
- assert(!is.bad());
- assert(!is.fail());
- assert( is.eof());
- assert(threw);
- assert(s == "hello");
+ std::basic_string<char> s;
+ bool threw = false;
+ try {
+ std::getline(is, s);
+ } catch (std::ios::failure const&) {
+ threw = true;
}
-#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- {
- std::basic_stringbuf<wchar_t> sb(L"hello");
- std::basic_istream<wchar_t> is(&sb);
- is.exceptions(std::ios_base::eofbit);
- std::basic_string<wchar_t> s;
- bool threw = false;
- try {
- std::getline(is, s);
- } catch (std::ios::failure const&) {
- threw = true;
- }
+ assert(!is.bad());
+ assert(!is.fail());
+ assert(is.eof());
+ assert(threw);
+ assert(s == "hello");
+ }
+# ifndef TEST_HAS_NO_WIDE_CHARACTERS
+ {
+ std::basic_stringbuf<wchar_t> sb(L"hello");
+ std::basic_istream<wchar_t> is(&sb);
+ is.exceptions(std::ios_base::eofbit);
- assert(!is.bad());
- assert(!is.fail());
- assert( is.eof());
- assert(threw);
- assert(s == L"hello");
+ std::basic_string<wchar_t> s;
+ bool threw = false;
+ try {
+ std::getline(is, s);
+ } catch (std::ios::failure const&) {
+ threw = true;
}
-#endif
- {
- std::basic_stringbuf<char> sb;
- std::basic_istream<char> is(&sb);
- is.exceptions(std::ios_base::failbit);
+ assert(!is.bad());
+ assert(!is.fail());
+ assert(is.eof());
+ assert(threw);
+ assert(s == L"hello");
+ }
+# endif
- std::basic_string<char> s;
- bool threw = false;
- try {
- std::getline(is, s);
- } catch (std::ios::failure const&) {
- threw = true;
- }
+ {
+ std::basic_stringbuf<char> sb;
+ std::basic_istream<char> is(&sb);
+ is.exceptions(std::ios_base::failbit);
- assert(!is.bad());
- assert( is.fail());
- assert( is.eof());
- assert(threw);
- assert(s == "");
+ std::basic_string<char> s;
+ bool threw = false;
+ try {
+ std::getline(is, s);
+ } catch (std::ios::failure const&) {
+ threw = true;
}
-#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- {
- std::basic_stringbuf<wchar_t> sb;
- std::basic_istream<wchar_t> is(&sb);
- is.exceptions(std::ios_base::failbit);
- std::basic_string<wchar_t> s;
- bool threw = false;
- try {
- std::getline(is, s);
- } catch (std::ios::failure const&) {
- threw = true;
- }
+ assert(!is.bad());
+ assert(is.fail());
+ assert(is.eof());
+ assert(threw);
+ assert(s == "");
+ }
+# ifndef TEST_HAS_NO_WIDE_CHARACTERS
+ {
+ std::basic_stringbuf<wchar_t> sb;
+ std::basic_istream<wchar_t> is(&sb);
+ is.exceptions(std::ios_base::failbit);
- assert(!is.bad());
- assert( is.fail());
- assert( is.eof());
- assert(threw);
- assert(s == L"");
+ std::basic_string<wchar_t> s;
+ bool threw = false;
+ try {
+ std::getline(is, s);
+ } catch (std::ios::failure const&) {
+ threw = true;
}
-#endif
+
+ assert(!is.bad());
+ assert(is.fail());
+ assert(is.eof());
+ assert(threw);
+ assert(s == L"");
+ }
+# endif
#endif // TEST_HAS_NO_EXCEPTIONS
- return 0;
+ return 0;
}
diff --git a/libcxx/test/std/strings/basic.string/string.nonmembers/string.io/get_line_delim.pass.cpp b/libcxx/test/std/strings/basic.string/string.nonmembers/string.io/get_line_delim.pass.cpp
index 189979409c406fd..00abd249f15d302 100644
--- a/libcxx/test/std/strings/basic.string/string.nonmembers/string.io/get_line_delim.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.nonmembers/string.io/get_line_delim.pass.cpp
@@ -20,162 +20,161 @@
#include "min_allocator.h"
#include "test_macros.h"
-int main(int, char**)
-{
- {
- std::istringstream in(" abc* def** ghij");
- std::string s("initial text");
- std::getline(in, s, '*');
- assert(in.good());
- assert(s == " abc");
- std::getline(in, s, '*');
- assert(in.good());
- assert(s == " def");
- std::getline(in, s, '*');
- assert(in.good());
- assert(s == "");
- std::getline(in, s, '*');
- assert(in.eof());
- assert(s == " ghij");
- }
+int main(int, char**) {
+ {
+ std::istringstream in(" abc* def** ghij");
+ std::string s("initial text");
+ std::getline(in, s, '*');
+ assert(in.good());
+ assert(s == " abc");
+ std::getline(in, s, '*');
+ assert(in.good());
+ assert(s == " def");
+ std::getline(in, s, '*');
+ assert(in.good());
+ assert(s == "");
+ std::getline(in, s, '*');
+ assert(in.eof());
+ assert(s == " ghij");
+ }
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- {
- std::wistringstream in(L" abc* def** ghij");
- std::wstring s(L"initial text");
- std::getline(in, s, L'*');
- assert(in.good());
- assert(s == L" abc");
- std::getline(in, s, L'*');
- assert(in.good());
- assert(s == L" def");
- std::getline(in, s, L'*');
- assert(in.good());
- assert(s == L"");
- std::getline(in, s, L'*');
- assert(in.eof());
- assert(s == L" ghij");
- }
+ {
+ std::wistringstream in(L" abc* def** ghij");
+ std::wstring s(L"initial text");
+ std::getline(in, s, L'*');
+ assert(in.good());
+ assert(s == L" abc");
+ std::getline(in, s, L'*');
+ assert(in.good());
+ assert(s == L" def");
+ std::getline(in, s, L'*');
+ assert(in.good());
+ assert(s == L"");
+ std::getline(in, s, L'*');
+ assert(in.eof());
+ assert(s == L" ghij");
+ }
#endif
#if TEST_STD_VER >= 11
- {
- typedef std::basic_string<char, std::char_traits<char>, min_allocator<char>> S;
- std::istringstream in(" abc* def** ghij");
- S s("initial text");
- std::getline(in, s, '*');
- assert(in.good());
- assert(s == " abc");
- std::getline(in, s, '*');
- assert(in.good());
- assert(s == " def");
- std::getline(in, s, '*');
- assert(in.good());
- assert(s == "");
- std::getline(in, s, '*');
- assert(in.eof());
- assert(s == " ghij");
- }
-#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- {
- typedef std::basic_string<wchar_t, std::char_traits<wchar_t>, min_allocator<wchar_t>> S;
- std::wistringstream in(L" abc* def** ghij");
- S s(L"initial text");
- std::getline(in, s, L'*');
- assert(in.good());
- assert(s == L" abc");
- std::getline(in, s, L'*');
- assert(in.good());
- assert(s == L" def");
- std::getline(in, s, L'*');
- assert(in.good());
- assert(s == L"");
- std::getline(in, s, L'*');
- assert(in.eof());
- assert(s == L" ghij");
- }
-#endif // TEST_HAS_NO_WIDE_CHARACTERS
-#endif // TEST_STD_VER >= 11
+ {
+ typedef std::basic_string<char, std::char_traits<char>, min_allocator<char>> S;
+ std::istringstream in(" abc* def** ghij");
+ S s("initial text");
+ std::getline(in, s, '*');
+ assert(in.good());
+ assert(s == " abc");
+ std::getline(in, s, '*');
+ assert(in.good());
+ assert(s == " def");
+ std::getline(in, s, '*');
+ assert(in.good());
+ assert(s == "");
+ std::getline(in, s, '*');
+ assert(in.eof());
+ assert(s == " ghij");
+ }
+# ifndef TEST_HAS_NO_WIDE_CHARACTERS
+ {
+ typedef std::basic_string<wchar_t, std::char_traits<wchar_t>, min_allocator<wchar_t>> S;
+ std::wistringstream in(L" abc* def** ghij");
+ S s(L"initial text");
+ std::getline(in, s, L'*');
+ assert(in.good());
+ assert(s == L" abc");
+ std::getline(in, s, L'*');
+ assert(in.good());
+ assert(s == L" def");
+ std::getline(in, s, L'*');
+ assert(in.good());
+ assert(s == L"");
+ std::getline(in, s, L'*');
+ assert(in.eof());
+ assert(s == L" ghij");
+ }
+# endif // TEST_HAS_NO_WIDE_CHARACTERS
+#endif // TEST_STD_VER >= 11
#ifndef TEST_HAS_NO_EXCEPTIONS
- {
- std::basic_stringbuf<char> sb("hello");
- std::basic_istream<char> is(&sb);
- is.exceptions(std::ios::eofbit);
+ {
+ std::basic_stringbuf<char> sb("hello");
+ std::basic_istream<char> is(&sb);
+ is.exceptions(std::ios::eofbit);
- std::basic_string<char> s;
- bool threw = false;
- try {
- std::getline(is, s, '\n');
- } catch (std::ios::failure const&) {
- threw = true;
- }
-
- assert(!is.bad());
- assert(!is.fail());
- assert( is.eof());
- assert(threw);
- assert(s == "hello");
+ std::basic_string<char> s;
+ bool threw = false;
+ try {
+ std::getline(is, s, '\n');
+ } catch (std::ios::failure const&) {
+ threw = true;
}
-#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- {
- std::basic_stringbuf<wchar_t> sb(L"hello");
- std::basic_istream<wchar_t> is(&sb);
- is.exceptions(std::ios::eofbit);
- std::basic_string<wchar_t> s;
- bool threw = false;
- try {
- std::getline(is, s, L'\n');
- } catch (std::ios::failure const&) {
- threw = true;
- }
+ assert(!is.bad());
+ assert(!is.fail());
+ assert(is.eof());
+ assert(threw);
+ assert(s == "hello");
+ }
+# ifndef TEST_HAS_NO_WIDE_CHARACTERS
+ {
+ std::basic_stringbuf<wchar_t> sb(L"hello");
+ std::basic_istream<wchar_t> is(&sb);
+ is.exceptions(std::ios::eofbit);
- assert(!is.bad());
- assert(!is.fail());
- assert( is.eof());
- assert(threw);
- assert(s == L"hello");
+ std::basic_string<wchar_t> s;
+ bool threw = false;
+ try {
+ std::getline(is, s, L'\n');
+ } catch (std::ios::failure const&) {
+ threw = true;
}
-#endif // TEST_HAS_NO_WIDE_CHARACTERS
- {
- std::basic_stringbuf<char> sb;
- std::basic_istream<char> is(&sb);
- is.exceptions(std::ios::failbit);
- std::basic_string<char> s;
- bool threw = false;
- try {
- std::getline(is, s, '\n');
- } catch (std::ios::failure const&) {
- threw = true;
- }
+ assert(!is.bad());
+ assert(!is.fail());
+ assert(is.eof());
+ assert(threw);
+ assert(s == L"hello");
+ }
+# endif // TEST_HAS_NO_WIDE_CHARACTERS
+ {
+ std::basic_stringbuf<char> sb;
+ std::basic_istream<char> is(&sb);
+ is.exceptions(std::ios::failbit);
- assert(!is.bad());
- assert( is.fail());
- assert( is.eof());
- assert(threw);
- assert(s == "");
+ std::basic_string<char> s;
+ bool threw = false;
+ try {
+ std::getline(is, s, '\n');
+ } catch (std::ios::failure const&) {
+ threw = true;
}
-#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- {
- std::basic_stringbuf<wchar_t> sb;
- std::basic_istream<wchar_t> is(&sb);
- is.exceptions(std::ios::failbit);
- std::basic_string<wchar_t> s;
- bool threw = false;
- try {
- std::getline(is, s, L'\n');
- } catch (std::ios::failure const&) {
- threw = true;
- }
+ assert(!is.bad());
+ assert(is.fail());
+ assert(is.eof());
+ assert(threw);
+ assert(s == "");
+ }
+# ifndef TEST_HAS_NO_WIDE_CHARACTERS
+ {
+ std::basic_stringbuf<wchar_t> sb;
+ std::basic_istream<wchar_t> is(&sb);
+ is.exceptions(std::ios::failbit);
- assert(!is.bad());
- assert( is.fail());
- assert( is.eof());
- assert(threw);
- assert(s == L"");
+ std::basic_string<wchar_t> s;
+ bool threw = false;
+ try {
+ std::getline(is, s, L'\n');
+ } catch (std::ios::failure const&) {
+ threw = true;
}
-#endif // TEST_HAS_NO_WIDE_CHARACTERS
-#endif // TEST_HAS_NO_EXCEPTIONS
- return 0;
+ assert(!is.bad());
+ assert(is.fail());
+ assert(is.eof());
+ assert(threw);
+ assert(s == L"");
+ }
+# endif // TEST_HAS_NO_WIDE_CHARACTERS
+#endif // TEST_HAS_NO_EXCEPTIONS
+
+ return 0;
}
diff --git a/libcxx/test/std/strings/basic.string/string.nonmembers/string.io/get_line_delim_rv.pass.cpp b/libcxx/test/std/strings/basic.string/string.nonmembers/string.io/get_line_delim_rv.pass.cpp
index 8e14148207b25c3..f195d0aebe5efb2 100644
--- a/libcxx/test/std/strings/basic.string/string.nonmembers/string.io/get_line_delim_rv.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.nonmembers/string.io/get_line_delim_rv.pass.cpp
@@ -20,33 +20,32 @@
#include "test_macros.h"
#include "min_allocator.h"
-int main(int, char**)
-{
- {
- std::string s("initial text");
- std::getline(std::istringstream(" abc* def* ghij"), s, '*');
- assert(s == " abc");
- }
+int main(int, char**) {
+ {
+ std::string s("initial text");
+ std::getline(std::istringstream(" abc* def* ghij"), s, '*');
+ assert(s == " abc");
+ }
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- {
- std::wstring s(L"initial text");
- std::getline(std::wistringstream(L" abc* def* ghij"), s, L'*');
- assert(s == L" abc");
- }
+ {
+ std::wstring s(L"initial text");
+ std::getline(std::wistringstream(L" abc* def* ghij"), s, L'*');
+ assert(s == L" abc");
+ }
#endif
- {
- typedef std::basic_string<char, std::char_traits<char>, min_allocator<char> > S;
- S s("initial text");
- std::getline(std::istringstream(" abc* def* ghij"), s, '*');
- assert(s == " abc");
- }
+ {
+ typedef std::basic_string<char, std::char_traits<char>, min_allocator<char> > S;
+ S s("initial text");
+ std::getline(std::istringstream(" abc* def* ghij"), s, '*');
+ assert(s == " abc");
+ }
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- {
- typedef std::basic_string<wchar_t, std::char_traits<wchar_t>, min_allocator<wchar_t> > S;
- S s(L"initial text");
- std::getline(std::wistringstream(L" abc* def* ghij"), s, L'*');
- assert(s == L" abc");
- }
+ {
+ typedef std::basic_string<wchar_t, std::char_traits<wchar_t>, min_allocator<wchar_t> > S;
+ S s(L"initial text");
+ std::getline(std::wistringstream(L" abc* def* ghij"), s, L'*');
+ assert(s == L" abc");
+ }
#endif
return 0;
diff --git a/libcxx/test/std/strings/basic.string/string.nonmembers/string.io/get_line_rv.pass.cpp b/libcxx/test/std/strings/basic.string/string.nonmembers/string.io/get_line_rv.pass.cpp
index 146b56285f94cae..57802a08f1001ea 100644
--- a/libcxx/test/std/strings/basic.string/string.nonmembers/string.io/get_line_rv.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.nonmembers/string.io/get_line_rv.pass.cpp
@@ -20,33 +20,32 @@
#include "test_macros.h"
#include "min_allocator.h"
-int main(int, char**)
-{
- {
- std::string s("initial text");
- std::getline(std::istringstream(" abc\n def\n ghij"), s);
- assert(s == " abc");
- }
+int main(int, char**) {
+ {
+ std::string s("initial text");
+ std::getline(std::istringstream(" abc\n def\n ghij"), s);
+ assert(s == " abc");
+ }
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- {
- std::wstring s(L"initial text");
- std::getline(std::wistringstream(L" abc\n def\n ghij"), s);
- assert(s == L" abc");
- }
+ {
+ std::wstring s(L"initial text");
+ std::getline(std::wistringstream(L" abc\n def\n ghij"), s);
+ assert(s == L" abc");
+ }
#endif
- {
- typedef std::basic_string<char, std::char_traits<char>, min_allocator<char> > S;
- S s("initial text");
- std::getline(std::istringstream(" abc\n def\n ghij"), s);
- assert(s == " abc");
- }
+ {
+ typedef std::basic_string<char, std::char_traits<char>, min_allocator<char> > S;
+ S s("initial text");
+ std::getline(std::istringstream(" abc\n def\n ghij"), s);
+ assert(s == " abc");
+ }
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- {
- typedef std::basic_string<wchar_t, std::char_traits<wchar_t>, min_allocator<wchar_t> > S;
- S s(L"initial text");
- std::getline(std::wistringstream(L" abc\n def\n ghij"), s);
- assert(s == L" abc");
- }
+ {
+ typedef std::basic_string<wchar_t, std::char_traits<wchar_t>, min_allocator<wchar_t> > S;
+ S s(L"initial text");
+ std::getline(std::wistringstream(L" abc\n def\n ghij"), s);
+ assert(s == L" abc");
+ }
#endif
return 0;
diff --git a/libcxx/test/std/strings/basic.string/string.nonmembers/string.io/lit.local.cfg b/libcxx/test/std/strings/basic.string/string.nonmembers/string.io/lit.local.cfg
index 42a86f7728f02e0..bc4efe19911e6f0 100644
--- a/libcxx/test/std/strings/basic.string/string.nonmembers/string.io/lit.local.cfg
+++ b/libcxx/test/std/strings/basic.string/string.nonmembers/string.io/lit.local.cfg
@@ -1,3 +1,3 @@
-# These std::string functions require iostreams, which requires localization
-if "no-localization" in config.available_features:
- config.unsupported = True
+#These std::string functions require iostreams, which requires localization
+if
+"no-localization" in config.available_features : config.unsupported = True
diff --git a/libcxx/test/std/strings/basic.string/string.nonmembers/string.io/stream_extract.pass.cpp b/libcxx/test/std/strings/basic.string/string.nonmembers/string.io/stream_extract.pass.cpp
index 686b7a97e4f2d7e..b5d0184c78f85df 100644
--- a/libcxx/test/std/strings/basic.string/string.nonmembers/string.io/stream_extract.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.nonmembers/string.io/stream_extract.pass.cpp
@@ -20,142 +20,141 @@
#include "min_allocator.h"
#include "test_macros.h"
-int main(int, char**)
-{
- {
- std::istringstream in("a bc defghij");
- std::string s("initial text");
- in >> s;
- assert(in.good());
- assert(s == "a");
- assert(in.peek() == ' ');
- in >> s;
- assert(in.good());
- assert(s == "bc");
- assert(in.peek() == ' ');
- in.width(3);
- in >> s;
- assert(in.good());
- assert(s == "def");
- assert(in.peek() == 'g');
- in >> s;
- assert(in.eof());
- assert(s == "ghij");
- in >> s;
- assert(in.fail());
- }
+int main(int, char**) {
+ {
+ std::istringstream in("a bc defghij");
+ std::string s("initial text");
+ in >> s;
+ assert(in.good());
+ assert(s == "a");
+ assert(in.peek() == ' ');
+ in >> s;
+ assert(in.good());
+ assert(s == "bc");
+ assert(in.peek() == ' ');
+ in.width(3);
+ in >> s;
+ assert(in.good());
+ assert(s == "def");
+ assert(in.peek() == 'g');
+ in >> s;
+ assert(in.eof());
+ assert(s == "ghij");
+ in >> s;
+ assert(in.fail());
+ }
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- {
- std::wistringstream in(L"a bc defghij");
- std::wstring s(L"initial text");
- in >> s;
- assert(in.good());
- assert(s == L"a");
- assert(in.peek() == L' ');
- in >> s;
- assert(in.good());
- assert(s == L"bc");
- assert(in.peek() == L' ');
- in.width(3);
- in >> s;
- assert(in.good());
- assert(s == L"def");
- assert(in.peek() == L'g');
- in >> s;
- assert(in.eof());
- assert(s == L"ghij");
- in >> s;
- assert(in.fail());
- }
+ {
+ std::wistringstream in(L"a bc defghij");
+ std::wstring s(L"initial text");
+ in >> s;
+ assert(in.good());
+ assert(s == L"a");
+ assert(in.peek() == L' ');
+ in >> s;
+ assert(in.good());
+ assert(s == L"bc");
+ assert(in.peek() == L' ');
+ in.width(3);
+ in >> s;
+ assert(in.good());
+ assert(s == L"def");
+ assert(in.peek() == L'g');
+ in >> s;
+ assert(in.eof());
+ assert(s == L"ghij");
+ in >> s;
+ assert(in.fail());
+ }
#endif
#ifndef TEST_HAS_NO_EXCEPTIONS
- {
- std::stringbuf sb;
- std::istream is(&sb);
- is.exceptions(std::ios::failbit);
+ {
+ std::stringbuf sb;
+ std::istream is(&sb);
+ is.exceptions(std::ios::failbit);
- bool threw = false;
- try {
- std::string s;
- is >> s;
- } catch (std::ios::failure const&) {
- threw = true;
- }
-
- assert(!is.bad());
- assert(is.fail());
- assert(is.eof());
- assert(threw);
+ bool threw = false;
+ try {
+ std::string s;
+ is >> s;
+ } catch (std::ios::failure const&) {
+ threw = true;
}
- {
- std::stringbuf sb;
- std::istream is(&sb);
- is.exceptions(std::ios::eofbit);
- bool threw = false;
- try {
- std::string s;
- is >> s;
- } catch (std::ios::failure const&) {
- threw = true;
- }
+ assert(!is.bad());
+ assert(is.fail());
+ assert(is.eof());
+ assert(threw);
+ }
+ {
+ std::stringbuf sb;
+ std::istream is(&sb);
+ is.exceptions(std::ios::eofbit);
- assert(!is.bad());
- assert(is.fail());
- assert(is.eof());
- assert(threw);
+ bool threw = false;
+ try {
+ std::string s;
+ is >> s;
+ } catch (std::ios::failure const&) {
+ threw = true;
}
+
+ assert(!is.bad());
+ assert(is.fail());
+ assert(is.eof());
+ assert(threw);
+ }
#endif // TEST_HAS_NO_EXCEPTIONS
#if TEST_STD_VER >= 11
- {
- typedef std::basic_string<char, std::char_traits<char>, min_allocator<char>> S;
- std::istringstream in("a bc defghij");
- S s("initial text");
- in >> s;
- assert(in.good());
- assert(s == "a");
- assert(in.peek() == ' ');
- in >> s;
- assert(in.good());
- assert(s == "bc");
- assert(in.peek() == ' ');
- in.width(3);
- in >> s;
- assert(in.good());
- assert(s == "def");
- assert(in.peek() == 'g');
- in >> s;
- assert(in.eof());
- assert(s == "ghij");
- in >> s;
- assert(in.fail());
- }
-#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- {
- typedef std::basic_string<wchar_t, std::char_traits<wchar_t>, min_allocator<wchar_t>> S;
- std::wistringstream in(L"a bc defghij");
- S s(L"initial text");
- in >> s;
- assert(in.good());
- assert(s == L"a");
- assert(in.peek() == L' ');
- in >> s;
- assert(in.good());
- assert(s == L"bc");
- assert(in.peek() == L' ');
- in.width(3);
- in >> s;
- assert(in.good());
- assert(s == L"def");
- assert(in.peek() == L'g');
- in >> s;
- assert(in.eof());
- assert(s == L"ghij");
- in >> s;
- assert(in.fail());
- }
-#endif // TEST_HAS_NO_WIDE_CHARACTERS
-#endif // TEST_STD_VER >= 11
+ {
+ typedef std::basic_string<char, std::char_traits<char>, min_allocator<char>> S;
+ std::istringstream in("a bc defghij");
+ S s("initial text");
+ in >> s;
+ assert(in.good());
+ assert(s == "a");
+ assert(in.peek() == ' ');
+ in >> s;
+ assert(in.good());
+ assert(s == "bc");
+ assert(in.peek() == ' ');
+ in.width(3);
+ in >> s;
+ assert(in.good());
+ assert(s == "def");
+ assert(in.peek() == 'g');
+ in >> s;
+ assert(in.eof());
+ assert(s == "ghij");
+ in >> s;
+ assert(in.fail());
+ }
+# ifndef TEST_HAS_NO_WIDE_CHARACTERS
+ {
+ typedef std::basic_string<wchar_t, std::char_traits<wchar_t>, min_allocator<wchar_t>> S;
+ std::wistringstream in(L"a bc defghij");
+ S s(L"initial text");
+ in >> s;
+ assert(in.good());
+ assert(s == L"a");
+ assert(in.peek() == L' ');
+ in >> s;
+ assert(in.good());
+ assert(s == L"bc");
+ assert(in.peek() == L' ');
+ in.width(3);
+ in >> s;
+ assert(in.good());
+ assert(s == L"def");
+ assert(in.peek() == L'g');
+ in >> s;
+ assert(in.eof());
+ assert(s == L"ghij");
+ in >> s;
+ assert(in.fail());
+ }
+# endif // TEST_HAS_NO_WIDE_CHARACTERS
+#endif // TEST_STD_VER >= 11
return 0;
}
diff --git a/libcxx/test/std/strings/basic.string/string.nonmembers/string.io/stream_insert.pass.cpp b/libcxx/test/std/strings/basic.string/string.nonmembers/string.io/stream_insert.pass.cpp
index d2b289084455aa9..ae6cb3d2e92ab6c 100644
--- a/libcxx/test/std/strings/basic.string/string.nonmembers/string.io/stream_insert.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.nonmembers/string.io/stream_insert.pass.cpp
@@ -20,78 +20,77 @@
#include "test_macros.h"
#include "min_allocator.h"
-int main(int, char**)
-{
- {
- std::ostringstream out;
- std::string s("some text");
- out << s;
- assert(out.good());
- assert(s == out.str());
- }
- {
- std::ostringstream out;
- std::string s("some text");
- out.width(12);
- out << s;
- assert(out.good());
- assert(" " + s == out.str());
- }
+int main(int, char**) {
+ {
+ std::ostringstream out;
+ std::string s("some text");
+ out << s;
+ assert(out.good());
+ assert(s == out.str());
+ }
+ {
+ std::ostringstream out;
+ std::string s("some text");
+ out.width(12);
+ out << s;
+ assert(out.good());
+ assert(" " + s == out.str());
+ }
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- {
- std::wostringstream out;
- std::wstring s(L"some text");
- out << s;
- assert(out.good());
- assert(s == out.str());
- }
- {
- std::wostringstream out;
- std::wstring s(L"some text");
- out.width(12);
- out << s;
- assert(out.good());
- assert(L" " + s == out.str());
- }
+ {
+ std::wostringstream out;
+ std::wstring s(L"some text");
+ out << s;
+ assert(out.good());
+ assert(s == out.str());
+ }
+ {
+ std::wostringstream out;
+ std::wstring s(L"some text");
+ out.width(12);
+ out << s;
+ assert(out.good());
+ assert(L" " + s == out.str());
+ }
#endif
#if TEST_STD_VER >= 11
- {
- typedef std::basic_string<char, std::char_traits<char>, min_allocator<char>> S;
- std::basic_ostringstream<S::value_type, S::traits_type, S::allocator_type> out;
- S s("some text");
- out << s;
- assert(out.good());
- assert(s == out.str());
- }
- {
- typedef std::basic_string<char, std::char_traits<char>, min_allocator<char>> S;
- std::basic_ostringstream<S::value_type, S::traits_type, S::allocator_type> out;
- S s("some text");
- out.width(12);
- out << s;
- assert(out.good());
- assert(" " + s == out.str());
- }
-#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- {
- typedef std::basic_string<wchar_t, std::char_traits<wchar_t>, min_allocator<wchar_t>> S;
- std::basic_ostringstream<S::value_type, S::traits_type, S::allocator_type> out;
- S s(L"some text");
- out << s;
- assert(out.good());
- assert(s == out.str());
- }
- {
- typedef std::basic_string<wchar_t, std::char_traits<wchar_t>, min_allocator<wchar_t>> S;
- std::basic_ostringstream<S::value_type, S::traits_type, S::allocator_type> out;
- S s(L"some text");
- out.width(12);
- out << s;
- assert(out.good());
- assert(L" " + s == out.str());
- }
-#endif // TEST_HAS_NO_WIDE_CHARACTERS
-#endif // TEST_STD_VER >= 11
+ {
+ typedef std::basic_string<char, std::char_traits<char>, min_allocator<char>> S;
+ std::basic_ostringstream<S::value_type, S::traits_type, S::allocator_type> out;
+ S s("some text");
+ out << s;
+ assert(out.good());
+ assert(s == out.str());
+ }
+ {
+ typedef std::basic_string<char, std::char_traits<char>, min_allocator<char>> S;
+ std::basic_ostringstream<S::value_type, S::traits_type, S::allocator_type> out;
+ S s("some text");
+ out.width(12);
+ out << s;
+ assert(out.good());
+ assert(" " + s == out.str());
+ }
+# ifndef TEST_HAS_NO_WIDE_CHARACTERS
+ {
+ typedef std::basic_string<wchar_t, std::char_traits<wchar_t>, min_allocator<wchar_t>> S;
+ std::basic_ostringstream<S::value_type, S::traits_type, S::allocator_type> out;
+ S s(L"some text");
+ out << s;
+ assert(out.good());
+ assert(s == out.str());
+ }
+ {
+ typedef std::basic_string<wchar_t, std::char_traits<wchar_t>, min_allocator<wchar_t>> S;
+ std::basic_ostringstream<S::value_type, S::traits_type, S::allocator_type> out;
+ S s(L"some text");
+ out.width(12);
+ out << s;
+ assert(out.good());
+ assert(L" " + s == out.str());
+ }
+# endif // TEST_HAS_NO_WIDE_CHARACTERS
+#endif // TEST_STD_VER >= 11
return 0;
}
diff --git a/libcxx/test/std/strings/basic.string/string.nonmembers/string.special/swap.pass.cpp b/libcxx/test/std/strings/basic.string/string.nonmembers/string.special/swap.pass.cpp
index 0425cd5b468c994..8dc8c70fb36cfc7 100644
--- a/libcxx/test/std/strings/basic.string/string.nonmembers/string.special/swap.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.nonmembers/string.special/swap.pass.cpp
@@ -21,16 +21,14 @@
#include "min_allocator.h"
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(S s1, S s2)
-{
- S s1_ = s1;
- S s2_ = s2;
- swap(s1, s2);
- LIBCPP_ASSERT(s1.__invariants());
- LIBCPP_ASSERT(s2.__invariants());
- assert(s1 == s2_);
- assert(s2 == s1_);
+TEST_CONSTEXPR_CXX20 void test(S s1, S s2) {
+ S s1_ = s1;
+ S s2_ = s2;
+ swap(s1, s2);
+ LIBCPP_ASSERT(s1.__invariants());
+ LIBCPP_ASSERT(s2.__invariants());
+ assert(s1 == s2_);
+ assert(s2 == s1_);
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -78,8 +76,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.nonmembers/string.special/swap_noexcept.pass.cpp b/libcxx/test/std/strings/basic.string/string.nonmembers/string.special/swap_noexcept.pass.cpp
index 9a5513b90c11126..e3465400fbae48a 100644
--- a/libcxx/test/std/strings/basic.string/string.nonmembers/string.special/swap_noexcept.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.nonmembers/string.special/swap_noexcept.pass.cpp
@@ -28,58 +28,55 @@
#include "test_allocator.h"
template <class T>
-struct some_alloc
-{
- typedef T value_type;
+struct some_alloc {
+ typedef T value_type;
- some_alloc() {}
- some_alloc(const some_alloc&);
- T *allocate(std::size_t);
- void deallocate(void*, unsigned) {}
- typedef std::true_type propagate_on_container_swap;
+ some_alloc() {}
+ some_alloc(const some_alloc&);
+ T* allocate(std::size_t);
+ void deallocate(void*, unsigned) {}
+ typedef std::true_type propagate_on_container_swap;
};
template <class T>
-struct some_alloc2
-{
- typedef T value_type;
+struct some_alloc2 {
+ typedef T value_type;
- some_alloc2() {}
- some_alloc2(const some_alloc2&);
- T *allocate(std::size_t);
- void deallocate(void*, unsigned) {}
+ some_alloc2() {}
+ some_alloc2(const some_alloc2&);
+ T* allocate(std::size_t);
+ void deallocate(void*, unsigned) {}
- typedef std::false_type propagate_on_container_swap;
- typedef std::true_type is_always_equal;
+ typedef std::false_type propagate_on_container_swap;
+ typedef std::true_type is_always_equal;
};
-int main(int, char**)
-{
- {
- typedef std::string C;
- static_assert(noexcept(swap(std::declval<C&>(), std::declval<C&>())), "");
- }
+int main(int, char**) {
+ {
+ typedef std::string C;
+ static_assert(noexcept(swap(std::declval<C&>(), std::declval<C&>())), "");
+ }
#if defined(_LIBCPP_VERSION)
- {
- typedef std::basic_string<char, std::char_traits<char>, test_allocator<char>> C;
- static_assert(noexcept(swap(std::declval<C&>(), std::declval<C&>())), "");
- }
+ {
+ typedef std::basic_string<char, std::char_traits<char>, test_allocator<char>> C;
+ static_assert(noexcept(swap(std::declval<C&>(), std::declval<C&>())), "");
+ }
#endif // _LIBCPP_VERSION
- {
- typedef std::basic_string<char, std::char_traits<char>, some_alloc<char>> C;
+ {
+ typedef std::basic_string<char, std::char_traits<char>, some_alloc<char>> C;
#if TEST_STD_VER >= 14
// In C++14, if POCS is set, swapping the allocator is required not to throw
- static_assert( noexcept(swap(std::declval<C&>(), std::declval<C&>())), "");
+ static_assert(noexcept(swap(std::declval<C&>(), std::declval<C&>())), "");
#else
- static_assert(!noexcept(swap(std::declval<C&>(), std::declval<C&>())), "");
+ static_assert(!noexcept(swap(std::declval<C&>(), std::declval<C&>())), "");
#endif
- }
+ }
#if TEST_STD_VER >= 14
- {
- typedef std::basic_string<char, std::char_traits<char>, some_alloc2<char>> C;
+ {
+ typedef std::basic_string<char, std::char_traits<char>, some_alloc2<char>> C;
// if the allocators are always equal, then the swap can be noexcept
- static_assert( noexcept(swap(std::declval<C&>(), std::declval<C&>())), "");
- }
+ static_assert(noexcept(swap(std::declval<C&>(), std::declval<C&>())), "");
+ }
#endif
return 0;
diff --git a/libcxx/test/std/strings/basic.string/string.nonmembers/string_op!=/pointer_string.pass.cpp b/libcxx/test/std/strings/basic.string/string.nonmembers/string_op!=/pointer_string.pass.cpp
index bb1580d4f10f657..11cfcfcf4299570 100644
--- a/libcxx/test/std/strings/basic.string/string.nonmembers/string_op!=/pointer_string.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.nonmembers/string_op!=/pointer_string.pass.cpp
@@ -18,10 +18,8 @@
#include "min_allocator.h"
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(const typename S::value_type* lhs, const S& rhs, bool x)
-{
- assert((lhs != rhs) == x);
+TEST_CONSTEXPR_CXX20 void test(const typename S::value_type* lhs, const S& rhs, bool x) {
+ assert((lhs != rhs) == x);
}
template <class S>
@@ -53,8 +51,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.nonmembers/string_op!=/string_pointer.pass.cpp b/libcxx/test/std/strings/basic.string/string.nonmembers/string_op!=/string_pointer.pass.cpp
index f2f51e251818720..c04c06243cd258b 100644
--- a/libcxx/test/std/strings/basic.string/string.nonmembers/string_op!=/string_pointer.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.nonmembers/string_op!=/string_pointer.pass.cpp
@@ -18,10 +18,8 @@
#include "min_allocator.h"
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(const S& lhs, const typename S::value_type* rhs, bool x)
-{
- assert((lhs != rhs) == x);
+TEST_CONSTEXPR_CXX20 void test(const S& lhs, const typename S::value_type* rhs, bool x) {
+ assert((lhs != rhs) == x);
}
template <class S>
@@ -53,8 +51,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.nonmembers/string_op!=/string_string.pass.cpp b/libcxx/test/std/strings/basic.string/string.nonmembers/string_op!=/string_string.pass.cpp
index 2f74920ee3b784b..881770e421bb04c 100644
--- a/libcxx/test/std/strings/basic.string/string.nonmembers/string_op!=/string_string.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.nonmembers/string_op!=/string_string.pass.cpp
@@ -19,10 +19,8 @@
#include "min_allocator.h"
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(const S& lhs, const S& rhs, bool x)
-{
- assert((lhs != rhs) == x);
+TEST_CONSTEXPR_CXX20 void test(const S& lhs, const S& rhs, bool x) {
+ assert((lhs != rhs) == x);
}
template <class S>
@@ -54,8 +52,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.nonmembers/string_op!=/string_string_view.pass.cpp b/libcxx/test/std/strings/basic.string/string.nonmembers/string_op!=/string_string_view.pass.cpp
index 744c883e34e0ef8..1595ec501f4e90c 100644
--- a/libcxx/test/std/strings/basic.string/string.nonmembers/string_op!=/string_string_view.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.nonmembers/string_op!=/string_string_view.pass.cpp
@@ -17,10 +17,8 @@
#include "min_allocator.h"
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 void
-test(const S& lhs, SV rhs, bool x)
-{
- assert((lhs != rhs) == x);
+TEST_CONSTEXPR_CXX20 void test(const S& lhs, SV rhs, bool x) {
+ assert((lhs != rhs) == x);
}
template <class S>
@@ -53,8 +51,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.nonmembers/string_op!=/string_view_string.pass.cpp b/libcxx/test/std/strings/basic.string/string.nonmembers/string_op!=/string_view_string.pass.cpp
index 7f5bb20cc638912..246b98bc5e107cf 100644
--- a/libcxx/test/std/strings/basic.string/string.nonmembers/string_op!=/string_view_string.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.nonmembers/string_op!=/string_view_string.pass.cpp
@@ -17,10 +17,8 @@
#include "min_allocator.h"
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 void
-test(SV lhs, const S& rhs, bool x)
-{
- assert((lhs != rhs) == x);
+TEST_CONSTEXPR_CXX20 void test(SV lhs, const S& rhs, bool x) {
+ assert((lhs != rhs) == x);
}
template <class S>
@@ -53,8 +51,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/allocator_propagation.pass.cpp b/libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/allocator_propagation.pass.cpp
index 1918bcf8cedf6d5..2fe0bbd3c8f5a1e 100644
--- a/libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/allocator_propagation.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/allocator_propagation.pass.cpp
@@ -196,9 +196,9 @@ int main(int, char**) {
#endif
#if TEST_STD_VER > 17
static_assert(test<char>());
-#ifndef TEST_HAS_NO_WIDE_CHARACTERS
+# ifndef TEST_HAS_NO_WIDE_CHARACTERS
static_assert(test<wchar_t>());
-#endif
+# endif
#endif
return 0;
diff --git a/libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/char_string.pass.cpp b/libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/char_string.pass.cpp
index 8229d57aa01ab97..da06df99a13797a 100644
--- a/libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/char_string.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/char_string.pass.cpp
@@ -52,9 +52,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
test1('a', S("12345678901234567890"), S("a12345678901234567890"));
}
{
- typedef std::basic_string<char, std::char_traits<char>,
- min_allocator<char> >
- S;
+ typedef std::basic_string<char, std::char_traits<char>, min_allocator<char> > S;
test0('a', S(""), S("a"));
test0('a', S("12345"), S("a12345"));
test0('a', S("1234567890"), S("a1234567890"));
diff --git a/libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/pointer_string.pass.cpp b/libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/pointer_string.pass.cpp
index a54024e4af09e73..0dc5a06b1ac0836 100644
--- a/libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/pointer_string.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/pointer_string.pass.cpp
@@ -49,14 +49,11 @@ TEST_CONSTEXPR_CXX20 bool test() {
test0("abcdefghij", S(""), S("abcdefghij"));
test0("abcdefghij", S("12345"), S("abcdefghij12345"));
test0("abcdefghij", S("1234567890"), S("abcdefghij1234567890"));
- test0("abcdefghij", S("12345678901234567890"),
- S("abcdefghij12345678901234567890"));
+ test0("abcdefghij", S("12345678901234567890"), S("abcdefghij12345678901234567890"));
test0("abcdefghijklmnopqrst", S(""), S("abcdefghijklmnopqrst"));
test0("abcdefghijklmnopqrst", S("12345"), S("abcdefghijklmnopqrst12345"));
- test0("abcdefghijklmnopqrst", S("1234567890"),
- S("abcdefghijklmnopqrst1234567890"));
- test0("abcdefghijklmnopqrst", S("12345678901234567890"),
- S("abcdefghijklmnopqrst12345678901234567890"));
+ test0("abcdefghijklmnopqrst", S("1234567890"), S("abcdefghijklmnopqrst1234567890"));
+ test0("abcdefghijklmnopqrst", S("12345678901234567890"), S("abcdefghijklmnopqrst12345678901234567890"));
}
#if TEST_STD_VER >= 11
@@ -73,19 +70,14 @@ TEST_CONSTEXPR_CXX20 bool test() {
test1("abcdefghij", S(""), S("abcdefghij"));
test1("abcdefghij", S("12345"), S("abcdefghij12345"));
test1("abcdefghij", S("1234567890"), S("abcdefghij1234567890"));
- test1("abcdefghij", S("12345678901234567890"),
- S("abcdefghij12345678901234567890"));
+ test1("abcdefghij", S("12345678901234567890"), S("abcdefghij12345678901234567890"));
test1("abcdefghijklmnopqrst", S(""), S("abcdefghijklmnopqrst"));
test1("abcdefghijklmnopqrst", S("12345"), S("abcdefghijklmnopqrst12345"));
- test1("abcdefghijklmnopqrst", S("1234567890"),
- S("abcdefghijklmnopqrst1234567890"));
- test1("abcdefghijklmnopqrst", S("12345678901234567890"),
- S("abcdefghijklmnopqrst12345678901234567890"));
+ test1("abcdefghijklmnopqrst", S("1234567890"), S("abcdefghijklmnopqrst1234567890"));
+ test1("abcdefghijklmnopqrst", S("12345678901234567890"), S("abcdefghijklmnopqrst12345678901234567890"));
}
{
- typedef std::basic_string<char, std::char_traits<char>,
- min_allocator<char> >
- S;
+ typedef std::basic_string<char, std::char_traits<char>, min_allocator<char> > S;
test0("", S(""), S(""));
test0("", S("12345"), S("12345"));
test0("", S("1234567890"), S("1234567890"));
@@ -97,14 +89,11 @@ TEST_CONSTEXPR_CXX20 bool test() {
test0("abcdefghij", S(""), S("abcdefghij"));
test0("abcdefghij", S("12345"), S("abcdefghij12345"));
test0("abcdefghij", S("1234567890"), S("abcdefghij1234567890"));
- test0("abcdefghij", S("12345678901234567890"),
- S("abcdefghij12345678901234567890"));
+ test0("abcdefghij", S("12345678901234567890"), S("abcdefghij12345678901234567890"));
test0("abcdefghijklmnopqrst", S(""), S("abcdefghijklmnopqrst"));
test0("abcdefghijklmnopqrst", S("12345"), S("abcdefghijklmnopqrst12345"));
- test0("abcdefghijklmnopqrst", S("1234567890"),
- S("abcdefghijklmnopqrst1234567890"));
- test0("abcdefghijklmnopqrst", S("12345678901234567890"),
- S("abcdefghijklmnopqrst12345678901234567890"));
+ test0("abcdefghijklmnopqrst", S("1234567890"), S("abcdefghijklmnopqrst1234567890"));
+ test0("abcdefghijklmnopqrst", S("12345678901234567890"), S("abcdefghijklmnopqrst12345678901234567890"));
test1("", S(""), S(""));
test1("", S("12345"), S("12345"));
@@ -117,14 +106,11 @@ TEST_CONSTEXPR_CXX20 bool test() {
test1("abcdefghij", S(""), S("abcdefghij"));
test1("abcdefghij", S("12345"), S("abcdefghij12345"));
test1("abcdefghij", S("1234567890"), S("abcdefghij1234567890"));
- test1("abcdefghij", S("12345678901234567890"),
- S("abcdefghij12345678901234567890"));
+ test1("abcdefghij", S("12345678901234567890"), S("abcdefghij12345678901234567890"));
test1("abcdefghijklmnopqrst", S(""), S("abcdefghijklmnopqrst"));
test1("abcdefghijklmnopqrst", S("12345"), S("abcdefghijklmnopqrst12345"));
- test1("abcdefghijklmnopqrst", S("1234567890"),
- S("abcdefghijklmnopqrst1234567890"));
- test1("abcdefghijklmnopqrst", S("12345678901234567890"),
- S("abcdefghijklmnopqrst12345678901234567890"));
+ test1("abcdefghijklmnopqrst", S("1234567890"), S("abcdefghijklmnopqrst1234567890"));
+ test1("abcdefghijklmnopqrst", S("12345678901234567890"), S("abcdefghijklmnopqrst12345678901234567890"));
}
#endif
diff --git a/libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/string_char.pass.cpp b/libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/string_char.pass.cpp
index 920f6b43c515689..bc6ac71ec95d926 100644
--- a/libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/string_char.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/string_char.pass.cpp
@@ -52,9 +52,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
test1(S("abcdefghijklmnopqrst"), '1', S("abcdefghijklmnopqrst1"));
}
{
- typedef std::basic_string<char, std::char_traits<char>,
- min_allocator<char> >
- S;
+ typedef std::basic_string<char, std::char_traits<char>, min_allocator<char> > S;
test0(S(""), '1', S("1"));
test0(S("abcde"), '1', S("abcde1"));
test0(S("abcdefghij"), '1', S("abcdefghij1"));
diff --git a/libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/string_pointer.pass.cpp b/libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/string_pointer.pass.cpp
index ca0b3bf8e540751..d3f229343611912 100644
--- a/libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/string_pointer.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/string_pointer.pass.cpp
@@ -49,14 +49,11 @@ TEST_CONSTEXPR_CXX20 bool test() {
test0(S("abcdefghij"), "", S("abcdefghij"));
test0(S("abcdefghij"), "12345", S("abcdefghij12345"));
test0(S("abcdefghij"), "1234567890", S("abcdefghij1234567890"));
- test0(S("abcdefghij"), "12345678901234567890",
- S("abcdefghij12345678901234567890"));
+ test0(S("abcdefghij"), "12345678901234567890", S("abcdefghij12345678901234567890"));
test0(S("abcdefghijklmnopqrst"), "", S("abcdefghijklmnopqrst"));
test0(S("abcdefghijklmnopqrst"), "12345", S("abcdefghijklmnopqrst12345"));
- test0(S("abcdefghijklmnopqrst"), "1234567890",
- S("abcdefghijklmnopqrst1234567890"));
- test0(S("abcdefghijklmnopqrst"), "12345678901234567890",
- S("abcdefghijklmnopqrst12345678901234567890"));
+ test0(S("abcdefghijklmnopqrst"), "1234567890", S("abcdefghijklmnopqrst1234567890"));
+ test0(S("abcdefghijklmnopqrst"), "12345678901234567890", S("abcdefghijklmnopqrst12345678901234567890"));
}
#if TEST_STD_VER >= 11
{
@@ -72,19 +69,14 @@ TEST_CONSTEXPR_CXX20 bool test() {
test1(S("abcdefghij"), "", S("abcdefghij"));
test1(S("abcdefghij"), "12345", S("abcdefghij12345"));
test1(S("abcdefghij"), "1234567890", S("abcdefghij1234567890"));
- test1(S("abcdefghij"), "12345678901234567890",
- S("abcdefghij12345678901234567890"));
+ test1(S("abcdefghij"), "12345678901234567890", S("abcdefghij12345678901234567890"));
test1(S("abcdefghijklmnopqrst"), "", S("abcdefghijklmnopqrst"));
test1(S("abcdefghijklmnopqrst"), "12345", S("abcdefghijklmnopqrst12345"));
- test1(S("abcdefghijklmnopqrst"), "1234567890",
- S("abcdefghijklmnopqrst1234567890"));
- test1(S("abcdefghijklmnopqrst"), "12345678901234567890",
- S("abcdefghijklmnopqrst12345678901234567890"));
+ test1(S("abcdefghijklmnopqrst"), "1234567890", S("abcdefghijklmnopqrst1234567890"));
+ test1(S("abcdefghijklmnopqrst"), "12345678901234567890", S("abcdefghijklmnopqrst12345678901234567890"));
}
{
- typedef std::basic_string<char, std::char_traits<char>,
- min_allocator<char> >
- S;
+ typedef std::basic_string<char, std::char_traits<char>, min_allocator<char> > S;
test0(S(""), "", S(""));
test0(S(""), "12345", S("12345"));
test0(S(""), "1234567890", S("1234567890"));
@@ -96,14 +88,11 @@ TEST_CONSTEXPR_CXX20 bool test() {
test0(S("abcdefghij"), "", S("abcdefghij"));
test0(S("abcdefghij"), "12345", S("abcdefghij12345"));
test0(S("abcdefghij"), "1234567890", S("abcdefghij1234567890"));
- test0(S("abcdefghij"), "12345678901234567890",
- S("abcdefghij12345678901234567890"));
+ test0(S("abcdefghij"), "12345678901234567890", S("abcdefghij12345678901234567890"));
test0(S("abcdefghijklmnopqrst"), "", S("abcdefghijklmnopqrst"));
test0(S("abcdefghijklmnopqrst"), "12345", S("abcdefghijklmnopqrst12345"));
- test0(S("abcdefghijklmnopqrst"), "1234567890",
- S("abcdefghijklmnopqrst1234567890"));
- test0(S("abcdefghijklmnopqrst"), "12345678901234567890",
- S("abcdefghijklmnopqrst12345678901234567890"));
+ test0(S("abcdefghijklmnopqrst"), "1234567890", S("abcdefghijklmnopqrst1234567890"));
+ test0(S("abcdefghijklmnopqrst"), "12345678901234567890", S("abcdefghijklmnopqrst12345678901234567890"));
test1(S(""), "", S(""));
test1(S(""), "12345", S("12345"));
@@ -116,14 +105,11 @@ TEST_CONSTEXPR_CXX20 bool test() {
test1(S("abcdefghij"), "", S("abcdefghij"));
test1(S("abcdefghij"), "12345", S("abcdefghij12345"));
test1(S("abcdefghij"), "1234567890", S("abcdefghij1234567890"));
- test1(S("abcdefghij"), "12345678901234567890",
- S("abcdefghij12345678901234567890"));
+ test1(S("abcdefghij"), "12345678901234567890", S("abcdefghij12345678901234567890"));
test1(S("abcdefghijklmnopqrst"), "", S("abcdefghijklmnopqrst"));
test1(S("abcdefghijklmnopqrst"), "12345", S("abcdefghijklmnopqrst12345"));
- test1(S("abcdefghijklmnopqrst"), "1234567890",
- S("abcdefghijklmnopqrst1234567890"));
- test1(S("abcdefghijklmnopqrst"), "12345678901234567890",
- S("abcdefghijklmnopqrst12345678901234567890"));
+ test1(S("abcdefghijklmnopqrst"), "1234567890", S("abcdefghijklmnopqrst1234567890"));
+ test1(S("abcdefghijklmnopqrst"), "12345678901234567890", S("abcdefghijklmnopqrst12345678901234567890"));
}
#endif
diff --git a/libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/string_string.pass.cpp b/libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/string_string.pass.cpp
index 7597c62a27a6eb5..fe03ba1e7c2725f 100644
--- a/libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/string_string.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/string_string.pass.cpp
@@ -67,20 +67,15 @@ TEST_CONSTEXPR_CXX20 bool test() {
test0(S("abcde"), S(""), S("abcde"));
test0(S("abcde"), S("12345"), S("abcde12345"));
test0(S("abcde"), S("1234567890"), S("abcde1234567890"));
- test0(S("abcde"), S("12345678901234567890"),
- S("abcde12345678901234567890"));
+ test0(S("abcde"), S("12345678901234567890"), S("abcde12345678901234567890"));
test0(S("abcdefghij"), S(""), S("abcdefghij"));
test0(S("abcdefghij"), S("12345"), S("abcdefghij12345"));
test0(S("abcdefghij"), S("1234567890"), S("abcdefghij1234567890"));
- test0(S("abcdefghij"), S("12345678901234567890"),
- S("abcdefghij12345678901234567890"));
+ test0(S("abcdefghij"), S("12345678901234567890"), S("abcdefghij12345678901234567890"));
test0(S("abcdefghijklmnopqrst"), S(""), S("abcdefghijklmnopqrst"));
- test0(S("abcdefghijklmnopqrst"), S("12345"),
- S("abcdefghijklmnopqrst12345"));
- test0(S("abcdefghijklmnopqrst"), S("1234567890"),
- S("abcdefghijklmnopqrst1234567890"));
- test0(S("abcdefghijklmnopqrst"), S("12345678901234567890"),
- S("abcdefghijklmnopqrst12345678901234567890"));
+ test0(S("abcdefghijklmnopqrst"), S("12345"), S("abcdefghijklmnopqrst12345"));
+ test0(S("abcdefghijklmnopqrst"), S("1234567890"), S("abcdefghijklmnopqrst1234567890"));
+ test0(S("abcdefghijklmnopqrst"), S("12345678901234567890"), S("abcdefghijklmnopqrst12345678901234567890"));
}
#if TEST_STD_VER >= 11
{
@@ -92,20 +87,15 @@ TEST_CONSTEXPR_CXX20 bool test() {
test1(S("abcde"), S(""), S("abcde"));
test1(S("abcde"), S("12345"), S("abcde12345"));
test1(S("abcde"), S("1234567890"), S("abcde1234567890"));
- test1(S("abcde"), S("12345678901234567890"),
- S("abcde12345678901234567890"));
+ test1(S("abcde"), S("12345678901234567890"), S("abcde12345678901234567890"));
test1(S("abcdefghij"), S(""), S("abcdefghij"));
test1(S("abcdefghij"), S("12345"), S("abcdefghij12345"));
test1(S("abcdefghij"), S("1234567890"), S("abcdefghij1234567890"));
- test1(S("abcdefghij"), S("12345678901234567890"),
- S("abcdefghij12345678901234567890"));
+ test1(S("abcdefghij"), S("12345678901234567890"), S("abcdefghij12345678901234567890"));
test1(S("abcdefghijklmnopqrst"), S(""), S("abcdefghijklmnopqrst"));
- test1(S("abcdefghijklmnopqrst"), S("12345"),
- S("abcdefghijklmnopqrst12345"));
- test1(S("abcdefghijklmnopqrst"), S("1234567890"),
- S("abcdefghijklmnopqrst1234567890"));
- test1(S("abcdefghijklmnopqrst"), S("12345678901234567890"),
- S("abcdefghijklmnopqrst12345678901234567890"));
+ test1(S("abcdefghijklmnopqrst"), S("12345"), S("abcdefghijklmnopqrst12345"));
+ test1(S("abcdefghijklmnopqrst"), S("1234567890"), S("abcdefghijklmnopqrst1234567890"));
+ test1(S("abcdefghijklmnopqrst"), S("12345678901234567890"), S("abcdefghijklmnopqrst12345678901234567890"));
test2(S(""), S(""), S(""));
test2(S(""), S("12345"), S("12345"));
@@ -114,20 +104,15 @@ TEST_CONSTEXPR_CXX20 bool test() {
test2(S("abcde"), S(""), S("abcde"));
test2(S("abcde"), S("12345"), S("abcde12345"));
test2(S("abcde"), S("1234567890"), S("abcde1234567890"));
- test2(S("abcde"), S("12345678901234567890"),
- S("abcde12345678901234567890"));
+ test2(S("abcde"), S("12345678901234567890"), S("abcde12345678901234567890"));
test2(S("abcdefghij"), S(""), S("abcdefghij"));
test2(S("abcdefghij"), S("12345"), S("abcdefghij12345"));
test2(S("abcdefghij"), S("1234567890"), S("abcdefghij1234567890"));
- test2(S("abcdefghij"), S("12345678901234567890"),
- S("abcdefghij12345678901234567890"));
+ test2(S("abcdefghij"), S("12345678901234567890"), S("abcdefghij12345678901234567890"));
test2(S("abcdefghijklmnopqrst"), S(""), S("abcdefghijklmnopqrst"));
- test2(S("abcdefghijklmnopqrst"), S("12345"),
- S("abcdefghijklmnopqrst12345"));
- test2(S("abcdefghijklmnopqrst"), S("1234567890"),
- S("abcdefghijklmnopqrst1234567890"));
- test2(S("abcdefghijklmnopqrst"), S("12345678901234567890"),
- S("abcdefghijklmnopqrst12345678901234567890"));
+ test2(S("abcdefghijklmnopqrst"), S("12345"), S("abcdefghijklmnopqrst12345"));
+ test2(S("abcdefghijklmnopqrst"), S("1234567890"), S("abcdefghijklmnopqrst1234567890"));
+ test2(S("abcdefghijklmnopqrst"), S("12345678901234567890"), S("abcdefghijklmnopqrst12345678901234567890"));
test3(S(""), S(""), S(""));
test3(S(""), S("12345"), S("12345"));
@@ -136,25 +121,18 @@ TEST_CONSTEXPR_CXX20 bool test() {
test3(S("abcde"), S(""), S("abcde"));
test3(S("abcde"), S("12345"), S("abcde12345"));
test3(S("abcde"), S("1234567890"), S("abcde1234567890"));
- test3(S("abcde"), S("12345678901234567890"),
- S("abcde12345678901234567890"));
+ test3(S("abcde"), S("12345678901234567890"), S("abcde12345678901234567890"));
test3(S("abcdefghij"), S(""), S("abcdefghij"));
test3(S("abcdefghij"), S("12345"), S("abcdefghij12345"));
test3(S("abcdefghij"), S("1234567890"), S("abcdefghij1234567890"));
- test3(S("abcdefghij"), S("12345678901234567890"),
- S("abcdefghij12345678901234567890"));
+ test3(S("abcdefghij"), S("12345678901234567890"), S("abcdefghij12345678901234567890"));
test3(S("abcdefghijklmnopqrst"), S(""), S("abcdefghijklmnopqrst"));
- test3(S("abcdefghijklmnopqrst"), S("12345"),
- S("abcdefghijklmnopqrst12345"));
- test3(S("abcdefghijklmnopqrst"), S("1234567890"),
- S("abcdefghijklmnopqrst1234567890"));
- test3(S("abcdefghijklmnopqrst"), S("12345678901234567890"),
- S("abcdefghijklmnopqrst12345678901234567890"));
+ test3(S("abcdefghijklmnopqrst"), S("12345"), S("abcdefghijklmnopqrst12345"));
+ test3(S("abcdefghijklmnopqrst"), S("1234567890"), S("abcdefghijklmnopqrst1234567890"));
+ test3(S("abcdefghijklmnopqrst"), S("12345678901234567890"), S("abcdefghijklmnopqrst12345678901234567890"));
}
{
- typedef std::basic_string<char, std::char_traits<char>,
- min_allocator<char> >
- S;
+ typedef std::basic_string<char, std::char_traits<char>, min_allocator<char> > S;
test0(S(""), S(""), S(""));
test0(S(""), S("12345"), S("12345"));
test0(S(""), S("1234567890"), S("1234567890"));
@@ -162,20 +140,15 @@ TEST_CONSTEXPR_CXX20 bool test() {
test0(S("abcde"), S(""), S("abcde"));
test0(S("abcde"), S("12345"), S("abcde12345"));
test0(S("abcde"), S("1234567890"), S("abcde1234567890"));
- test0(S("abcde"), S("12345678901234567890"),
- S("abcde12345678901234567890"));
+ test0(S("abcde"), S("12345678901234567890"), S("abcde12345678901234567890"));
test0(S("abcdefghij"), S(""), S("abcdefghij"));
test0(S("abcdefghij"), S("12345"), S("abcdefghij12345"));
test0(S("abcdefghij"), S("1234567890"), S("abcdefghij1234567890"));
- test0(S("abcdefghij"), S("12345678901234567890"),
- S("abcdefghij12345678901234567890"));
+ test0(S("abcdefghij"), S("12345678901234567890"), S("abcdefghij12345678901234567890"));
test0(S("abcdefghijklmnopqrst"), S(""), S("abcdefghijklmnopqrst"));
- test0(S("abcdefghijklmnopqrst"), S("12345"),
- S("abcdefghijklmnopqrst12345"));
- test0(S("abcdefghijklmnopqrst"), S("1234567890"),
- S("abcdefghijklmnopqrst1234567890"));
- test0(S("abcdefghijklmnopqrst"), S("12345678901234567890"),
- S("abcdefghijklmnopqrst12345678901234567890"));
+ test0(S("abcdefghijklmnopqrst"), S("12345"), S("abcdefghijklmnopqrst12345"));
+ test0(S("abcdefghijklmnopqrst"), S("1234567890"), S("abcdefghijklmnopqrst1234567890"));
+ test0(S("abcdefghijklmnopqrst"), S("12345678901234567890"), S("abcdefghijklmnopqrst12345678901234567890"));
test1(S(""), S(""), S(""));
test1(S(""), S("12345"), S("12345"));
@@ -184,20 +157,15 @@ TEST_CONSTEXPR_CXX20 bool test() {
test1(S("abcde"), S(""), S("abcde"));
test1(S("abcde"), S("12345"), S("abcde12345"));
test1(S("abcde"), S("1234567890"), S("abcde1234567890"));
- test1(S("abcde"), S("12345678901234567890"),
- S("abcde12345678901234567890"));
+ test1(S("abcde"), S("12345678901234567890"), S("abcde12345678901234567890"));
test1(S("abcdefghij"), S(""), S("abcdefghij"));
test1(S("abcdefghij"), S("12345"), S("abcdefghij12345"));
test1(S("abcdefghij"), S("1234567890"), S("abcdefghij1234567890"));
- test1(S("abcdefghij"), S("12345678901234567890"),
- S("abcdefghij12345678901234567890"));
+ test1(S("abcdefghij"), S("12345678901234567890"), S("abcdefghij12345678901234567890"));
test1(S("abcdefghijklmnopqrst"), S(""), S("abcdefghijklmnopqrst"));
- test1(S("abcdefghijklmnopqrst"), S("12345"),
- S("abcdefghijklmnopqrst12345"));
- test1(S("abcdefghijklmnopqrst"), S("1234567890"),
- S("abcdefghijklmnopqrst1234567890"));
- test1(S("abcdefghijklmnopqrst"), S("12345678901234567890"),
- S("abcdefghijklmnopqrst12345678901234567890"));
+ test1(S("abcdefghijklmnopqrst"), S("12345"), S("abcdefghijklmnopqrst12345"));
+ test1(S("abcdefghijklmnopqrst"), S("1234567890"), S("abcdefghijklmnopqrst1234567890"));
+ test1(S("abcdefghijklmnopqrst"), S("12345678901234567890"), S("abcdefghijklmnopqrst12345678901234567890"));
test2(S(""), S(""), S(""));
test2(S(""), S("12345"), S("12345"));
@@ -206,20 +174,15 @@ TEST_CONSTEXPR_CXX20 bool test() {
test2(S("abcde"), S(""), S("abcde"));
test2(S("abcde"), S("12345"), S("abcde12345"));
test2(S("abcde"), S("1234567890"), S("abcde1234567890"));
- test2(S("abcde"), S("12345678901234567890"),
- S("abcde12345678901234567890"));
+ test2(S("abcde"), S("12345678901234567890"), S("abcde12345678901234567890"));
test2(S("abcdefghij"), S(""), S("abcdefghij"));
test2(S("abcdefghij"), S("12345"), S("abcdefghij12345"));
test2(S("abcdefghij"), S("1234567890"), S("abcdefghij1234567890"));
- test2(S("abcdefghij"), S("12345678901234567890"),
- S("abcdefghij12345678901234567890"));
+ test2(S("abcdefghij"), S("12345678901234567890"), S("abcdefghij12345678901234567890"));
test2(S("abcdefghijklmnopqrst"), S(""), S("abcdefghijklmnopqrst"));
- test2(S("abcdefghijklmnopqrst"), S("12345"),
- S("abcdefghijklmnopqrst12345"));
- test2(S("abcdefghijklmnopqrst"), S("1234567890"),
- S("abcdefghijklmnopqrst1234567890"));
- test2(S("abcdefghijklmnopqrst"), S("12345678901234567890"),
- S("abcdefghijklmnopqrst12345678901234567890"));
+ test2(S("abcdefghijklmnopqrst"), S("12345"), S("abcdefghijklmnopqrst12345"));
+ test2(S("abcdefghijklmnopqrst"), S("1234567890"), S("abcdefghijklmnopqrst1234567890"));
+ test2(S("abcdefghijklmnopqrst"), S("12345678901234567890"), S("abcdefghijklmnopqrst12345678901234567890"));
test3(S(""), S(""), S(""));
test3(S(""), S("12345"), S("12345"));
@@ -228,20 +191,15 @@ TEST_CONSTEXPR_CXX20 bool test() {
test3(S("abcde"), S(""), S("abcde"));
test3(S("abcde"), S("12345"), S("abcde12345"));
test3(S("abcde"), S("1234567890"), S("abcde1234567890"));
- test3(S("abcde"), S("12345678901234567890"),
- S("abcde12345678901234567890"));
+ test3(S("abcde"), S("12345678901234567890"), S("abcde12345678901234567890"));
test3(S("abcdefghij"), S(""), S("abcdefghij"));
test3(S("abcdefghij"), S("12345"), S("abcdefghij12345"));
test3(S("abcdefghij"), S("1234567890"), S("abcdefghij1234567890"));
- test3(S("abcdefghij"), S("12345678901234567890"),
- S("abcdefghij12345678901234567890"));
+ test3(S("abcdefghij"), S("12345678901234567890"), S("abcdefghij12345678901234567890"));
test3(S("abcdefghijklmnopqrst"), S(""), S("abcdefghijklmnopqrst"));
- test3(S("abcdefghijklmnopqrst"), S("12345"),
- S("abcdefghijklmnopqrst12345"));
- test3(S("abcdefghijklmnopqrst"), S("1234567890"),
- S("abcdefghijklmnopqrst1234567890"));
- test3(S("abcdefghijklmnopqrst"), S("12345678901234567890"),
- S("abcdefghijklmnopqrst12345678901234567890"));
+ test3(S("abcdefghijklmnopqrst"), S("12345"), S("abcdefghijklmnopqrst12345"));
+ test3(S("abcdefghijklmnopqrst"), S("1234567890"), S("abcdefghijklmnopqrst1234567890"));
+ test3(S("abcdefghijklmnopqrst"), S("12345678901234567890"), S("abcdefghijklmnopqrst12345678901234567890"));
}
#endif // TEST_STD_VER >= 11
diff --git a/libcxx/test/std/strings/basic.string/string.nonmembers/string_operator==/pointer_string.pass.cpp b/libcxx/test/std/strings/basic.string/string.nonmembers/string_operator==/pointer_string.pass.cpp
index 32ad033f827f5cc..9b0072405df6a48 100644
--- a/libcxx/test/std/strings/basic.string/string.nonmembers/string_operator==/pointer_string.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.nonmembers/string_operator==/pointer_string.pass.cpp
@@ -18,10 +18,8 @@
#include "min_allocator.h"
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(const typename S::value_type* lhs, const S& rhs, bool x)
-{
- assert((lhs == rhs) == x);
+TEST_CONSTEXPR_CXX20 void test(const typename S::value_type* lhs, const S& rhs, bool x) {
+ assert((lhs == rhs) == x);
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -69,8 +67,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.nonmembers/string_operator==/string_pointer.pass.cpp b/libcxx/test/std/strings/basic.string/string.nonmembers/string_operator==/string_pointer.pass.cpp
index 2b38fd8f915e800..54021af1d11a95d 100644
--- a/libcxx/test/std/strings/basic.string/string.nonmembers/string_operator==/string_pointer.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.nonmembers/string_operator==/string_pointer.pass.cpp
@@ -18,10 +18,8 @@
#include "min_allocator.h"
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(const S& lhs, const typename S::value_type* rhs, bool x)
-{
- assert((lhs == rhs) == x);
+TEST_CONSTEXPR_CXX20 void test(const S& lhs, const typename S::value_type* rhs, bool x) {
+ assert((lhs == rhs) == x);
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -69,8 +67,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.nonmembers/string_operator==/string_string.pass.cpp b/libcxx/test/std/strings/basic.string/string.nonmembers/string_operator==/string_string.pass.cpp
index bbc0b153699eb26..7cac0dfb76632fc 100644
--- a/libcxx/test/std/strings/basic.string/string.nonmembers/string_operator==/string_string.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.nonmembers/string_operator==/string_string.pass.cpp
@@ -19,10 +19,8 @@
#include "min_allocator.h"
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(const S& lhs, const S& rhs, bool x)
-{
- assert((lhs == rhs) == x);
+TEST_CONSTEXPR_CXX20 void test(const S& lhs, const S& rhs, bool x) {
+ assert((lhs == rhs) == x);
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -70,8 +68,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.nonmembers/string_operator==/string_string_view.pass.cpp b/libcxx/test/std/strings/basic.string/string.nonmembers/string_operator==/string_string_view.pass.cpp
index 4ef18a836b339c2..e151735cdd56a7a 100644
--- a/libcxx/test/std/strings/basic.string/string.nonmembers/string_operator==/string_string_view.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.nonmembers/string_operator==/string_string_view.pass.cpp
@@ -17,10 +17,8 @@
#include "min_allocator.h"
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 void
-test(const S& lhs, SV rhs, bool x)
-{
- assert((lhs == rhs) == x);
+TEST_CONSTEXPR_CXX20 void test(const S& lhs, SV rhs, bool x) {
+ assert((lhs == rhs) == x);
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -46,7 +44,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
}
#if TEST_STD_VER >= 11
{
- typedef std::basic_string <char, std::char_traits<char>, min_allocator<char>> S;
+ typedef std::basic_string<char, std::char_traits<char>, min_allocator<char>> S;
typedef std::basic_string_view<char, std::char_traits<char>> SV;
test(S(""), SV(""), true);
test(S(""), SV("abcde"), false);
@@ -70,8 +68,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.nonmembers/string_operator==/string_view_string.pass.cpp b/libcxx/test/std/strings/basic.string/string.nonmembers/string_operator==/string_view_string.pass.cpp
index ef741d9113053a8..bd386eae6ce8ec7 100644
--- a/libcxx/test/std/strings/basic.string/string.nonmembers/string_operator==/string_view_string.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.nonmembers/string_operator==/string_view_string.pass.cpp
@@ -17,10 +17,8 @@
#include "min_allocator.h"
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 void
-test(SV lhs, const S& rhs, bool x)
-{
- assert((lhs == rhs) == x);
+TEST_CONSTEXPR_CXX20 void test(SV lhs, const S& rhs, bool x) {
+ assert((lhs == rhs) == x);
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -70,8 +68,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt/pointer_string.pass.cpp b/libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt/pointer_string.pass.cpp
index 60b473c61dd5e61..66c97d7e814f231 100644
--- a/libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt/pointer_string.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt/pointer_string.pass.cpp
@@ -18,10 +18,8 @@
#include "min_allocator.h"
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(const typename S::value_type* lhs, const S& rhs, bool x)
-{
- assert((lhs > rhs) == x);
+TEST_CONSTEXPR_CXX20 void test(const typename S::value_type* lhs, const S& rhs, bool x) {
+ assert((lhs > rhs) == x);
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -69,8 +67,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt/string_pointer.pass.cpp b/libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt/string_pointer.pass.cpp
index 2ec254528b8f8e5..1f7fb5d26ec9052 100644
--- a/libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt/string_pointer.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt/string_pointer.pass.cpp
@@ -18,10 +18,8 @@
#include "min_allocator.h"
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(const S& lhs, const typename S::value_type* rhs, bool x)
-{
- assert((lhs > rhs) == x);
+TEST_CONSTEXPR_CXX20 void test(const S& lhs, const typename S::value_type* rhs, bool x) {
+ assert((lhs > rhs) == x);
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -69,8 +67,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt/string_string.pass.cpp b/libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt/string_string.pass.cpp
index 95bb8760fd8ba38..51070fd938f9683 100644
--- a/libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt/string_string.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt/string_string.pass.cpp
@@ -19,10 +19,8 @@
#include "min_allocator.h"
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(const S& lhs, const S& rhs, bool x)
-{
- assert((lhs > rhs) == x);
+TEST_CONSTEXPR_CXX20 void test(const S& lhs, const S& rhs, bool x) {
+ assert((lhs > rhs) == x);
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -70,8 +68,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt/string_string_view.pass.cpp b/libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt/string_string_view.pass.cpp
index f5767ca8fe56ed9..ed5d308c4521d63 100644
--- a/libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt/string_string_view.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt/string_string_view.pass.cpp
@@ -17,10 +17,8 @@
#include "min_allocator.h"
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 void
-test(const S& lhs, SV rhs, bool x)
-{
- assert((lhs > rhs) == x);
+TEST_CONSTEXPR_CXX20 void test(const S& lhs, SV rhs, bool x) {
+ assert((lhs > rhs) == x);
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -46,7 +44,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
}
#if TEST_STD_VER >= 11
{
- typedef std::basic_string <char, std::char_traits<char>, min_allocator<char>> S;
+ typedef std::basic_string<char, std::char_traits<char>, min_allocator<char>> S;
typedef std::basic_string_view<char, std::char_traits<char>> SV;
test(S(""), SV(""), false);
test(S(""), SV("abcde"), false);
@@ -70,8 +68,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt/string_view_string.pass.cpp b/libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt/string_view_string.pass.cpp
index 5e549a83d4c1c40..be508abd37e8a33 100644
--- a/libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt/string_view_string.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt/string_view_string.pass.cpp
@@ -17,10 +17,8 @@
#include "min_allocator.h"
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 void
-test(SV lhs, const S& rhs, bool x)
-{
- assert((lhs > rhs) == x);
+TEST_CONSTEXPR_CXX20 void test(SV lhs, const S& rhs, bool x) {
+ assert((lhs > rhs) == x);
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -46,7 +44,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
}
#if TEST_STD_VER >= 11
{
- typedef std::basic_string <char, std::char_traits<char>, min_allocator<char>> S;
+ typedef std::basic_string<char, std::char_traits<char>, min_allocator<char>> S;
typedef std::basic_string_view<char, std::char_traits<char>> SV;
test(SV(""), S(""), false);
test(SV(""), S("abcde"), false);
@@ -70,8 +68,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt=/pointer_string.pass.cpp b/libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt=/pointer_string.pass.cpp
index fdf1c9ae0587580..b65da02351e6d98 100644
--- a/libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt=/pointer_string.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt=/pointer_string.pass.cpp
@@ -18,10 +18,8 @@
#include "min_allocator.h"
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(const typename S::value_type* lhs, const S& rhs, bool x)
-{
- assert((lhs >= rhs) == x);
+TEST_CONSTEXPR_CXX20 void test(const typename S::value_type* lhs, const S& rhs, bool x) {
+ assert((lhs >= rhs) == x);
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -69,8 +67,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt=/string_pointer.pass.cpp b/libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt=/string_pointer.pass.cpp
index 279f91fe3503cfb..2bb008c730848ab 100644
--- a/libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt=/string_pointer.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt=/string_pointer.pass.cpp
@@ -18,10 +18,8 @@
#include "min_allocator.h"
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(const S& lhs, const typename S::value_type* rhs, bool x)
-{
- assert((lhs >= rhs) == x);
+TEST_CONSTEXPR_CXX20 void test(const S& lhs, const typename S::value_type* rhs, bool x) {
+ assert((lhs >= rhs) == x);
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -69,8 +67,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt=/string_string.pass.cpp b/libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt=/string_string.pass.cpp
index e952ab5be9135c0..9e42ab587387578 100644
--- a/libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt=/string_string.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt=/string_string.pass.cpp
@@ -19,10 +19,8 @@
#include "min_allocator.h"
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(const S& lhs, const S& rhs, bool x)
-{
- assert((lhs >= rhs) == x);
+TEST_CONSTEXPR_CXX20 void test(const S& lhs, const S& rhs, bool x) {
+ assert((lhs >= rhs) == x);
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -70,8 +68,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt=/string_string_view.pass.cpp b/libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt=/string_string_view.pass.cpp
index fa7404c576b22db..aa43fe9ac291244 100644
--- a/libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt=/string_string_view.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt=/string_string_view.pass.cpp
@@ -17,10 +17,8 @@
#include "min_allocator.h"
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 void
-test(const S& lhs, SV rhs, bool x)
-{
- assert((lhs >= rhs) == x);
+TEST_CONSTEXPR_CXX20 void test(const S& lhs, SV rhs, bool x) {
+ assert((lhs >= rhs) == x);
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -70,8 +68,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt=/string_view_string.pass.cpp b/libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt=/string_view_string.pass.cpp
index 850fc3a6c195f43..e42a387de765107 100644
--- a/libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt=/string_view_string.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt=/string_view_string.pass.cpp
@@ -17,10 +17,8 @@
#include "min_allocator.h"
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 void
-test(SV lhs, const S& rhs, bool x)
-{
- assert((lhs >= rhs) == x);
+TEST_CONSTEXPR_CXX20 void test(SV lhs, const S& rhs, bool x) {
+ assert((lhs >= rhs) == x);
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -70,8 +68,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt/pointer_string.pass.cpp b/libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt/pointer_string.pass.cpp
index 7bab5f6bb2054ca..06e4f28efc508a5 100644
--- a/libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt/pointer_string.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt/pointer_string.pass.cpp
@@ -18,10 +18,8 @@
#include "min_allocator.h"
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(const typename S::value_type* lhs, const S& rhs, bool x)
-{
- assert((lhs < rhs) == x);
+TEST_CONSTEXPR_CXX20 void test(const typename S::value_type* lhs, const S& rhs, bool x) {
+ assert((lhs < rhs) == x);
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -69,8 +67,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt/string_pointer.pass.cpp b/libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt/string_pointer.pass.cpp
index 0e5ae95acd06c15..d489ed3fc8c0ceb 100644
--- a/libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt/string_pointer.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt/string_pointer.pass.cpp
@@ -18,10 +18,8 @@
#include "min_allocator.h"
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(const S& lhs, const typename S::value_type* rhs, bool x)
-{
- assert((lhs < rhs) == x);
+TEST_CONSTEXPR_CXX20 void test(const S& lhs, const typename S::value_type* rhs, bool x) {
+ assert((lhs < rhs) == x);
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -69,8 +67,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt/string_string.pass.cpp b/libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt/string_string.pass.cpp
index 3955ae48f989001..fcf7d4df541eb45 100644
--- a/libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt/string_string.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt/string_string.pass.cpp
@@ -19,10 +19,8 @@
#include "min_allocator.h"
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(const S& lhs, const S& rhs, bool x)
-{
- assert((lhs < rhs) == x);
+TEST_CONSTEXPR_CXX20 void test(const S& lhs, const S& rhs, bool x) {
+ assert((lhs < rhs) == x);
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -70,8 +68,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt/string_string_view.pass.cpp b/libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt/string_string_view.pass.cpp
index e04d6874a24f857..0c728a975215935 100644
--- a/libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt/string_string_view.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt/string_string_view.pass.cpp
@@ -17,10 +17,8 @@
#include "min_allocator.h"
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 void
-test(const S& lhs, SV rhs, bool x)
-{
- assert((lhs < rhs) == x);
+TEST_CONSTEXPR_CXX20 void test(const S& lhs, SV rhs, bool x) {
+ assert((lhs < rhs) == x);
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -70,8 +68,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt/string_view_string.pass.cpp b/libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt/string_view_string.pass.cpp
index 0babe40dc6777d4..7cc8a2a9dead1c8 100644
--- a/libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt/string_view_string.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt/string_view_string.pass.cpp
@@ -17,10 +17,8 @@
#include "min_allocator.h"
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 void
-test(SV lhs, const S& rhs, bool x)
-{
- assert((lhs < rhs) == x);
+TEST_CONSTEXPR_CXX20 void test(SV lhs, const S& rhs, bool x) {
+ assert((lhs < rhs) == x);
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -70,8 +68,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt=/pointer_string.pass.cpp b/libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt=/pointer_string.pass.cpp
index 0ea10d60706a088..1242431248eb52e 100644
--- a/libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt=/pointer_string.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt=/pointer_string.pass.cpp
@@ -18,10 +18,8 @@
#include "min_allocator.h"
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(const typename S::value_type* lhs, const S& rhs, bool x)
-{
- assert((lhs <= rhs) == x);
+TEST_CONSTEXPR_CXX20 void test(const typename S::value_type* lhs, const S& rhs, bool x) {
+ assert((lhs <= rhs) == x);
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -69,8 +67,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt=/string_pointer.pass.cpp b/libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt=/string_pointer.pass.cpp
index 38155cd0538f560..8107c3c25fd410c 100644
--- a/libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt=/string_pointer.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt=/string_pointer.pass.cpp
@@ -18,10 +18,8 @@
#include "min_allocator.h"
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(const S& lhs, const typename S::value_type* rhs, bool x)
-{
- assert((lhs <= rhs) == x);
+TEST_CONSTEXPR_CXX20 void test(const S& lhs, const typename S::value_type* rhs, bool x) {
+ assert((lhs <= rhs) == x);
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -69,8 +67,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt=/string_string.pass.cpp b/libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt=/string_string.pass.cpp
index 9555697a6e3979d..508e8bdb7853c45 100644
--- a/libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt=/string_string.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt=/string_string.pass.cpp
@@ -19,10 +19,8 @@
#include "min_allocator.h"
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(const S& lhs, const S& rhs, bool x)
-{
- assert((lhs <= rhs) == x);
+TEST_CONSTEXPR_CXX20 void test(const S& lhs, const S& rhs, bool x) {
+ assert((lhs <= rhs) == x);
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -70,8 +68,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt=/string_string_view.pass.cpp b/libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt=/string_string_view.pass.cpp
index d7465723e1a4d26..e9ea2fb8f444088 100644
--- a/libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt=/string_string_view.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt=/string_string_view.pass.cpp
@@ -17,10 +17,8 @@
#include "min_allocator.h"
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 void
-test(const S& lhs, SV rhs, bool x)
-{
- assert((lhs <= rhs) == x);
+TEST_CONSTEXPR_CXX20 void test(const S& lhs, SV rhs, bool x) {
+ assert((lhs <= rhs) == x);
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -70,8 +68,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt=/string_view_string.pass.cpp b/libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt=/string_view_string.pass.cpp
index bf60796be8a69df..b46e0b2b1373f21 100644
--- a/libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt=/string_view_string.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt=/string_view_string.pass.cpp
@@ -17,10 +17,8 @@
#include "min_allocator.h"
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 void
-test(SV lhs, const S& rhs, bool x)
-{
- assert((lhs <= rhs) == x);
+TEST_CONSTEXPR_CXX20 void test(SV lhs, const S& rhs, bool x) {
+ assert((lhs <= rhs) == x);
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -70,8 +68,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.ops/string.accessors/c_str.pass.cpp b/libcxx/test/std/strings/basic.string/string.ops/string.accessors/c_str.pass.cpp
index 8a96f38cab1768a..0fcdc02124588fd 100644
--- a/libcxx/test/std/strings/basic.string/string.ops/string.accessors/c_str.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.ops/string.accessors/c_str.pass.cpp
@@ -17,18 +17,14 @@
#include "min_allocator.h"
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(const S& s)
-{
- typedef typename S::traits_type T;
- const typename S::value_type* str = s.c_str();
- if (s.size() > 0)
- {
- assert(T::compare(str, &s[0], s.size()) == 0);
- assert(T::eq(str[s.size()], typename S::value_type()));
- }
- else
- assert(T::eq(str[0], typename S::value_type()));
+TEST_CONSTEXPR_CXX20 void test(const S& s) {
+ typedef typename S::traits_type T;
+ const typename S::value_type* str = s.c_str();
+ if (s.size() > 0) {
+ assert(T::compare(str, &s[0], s.size()) == 0);
+ assert(T::eq(str[s.size()], typename S::value_type()));
+ } else
+ assert(T::eq(str[0], typename S::value_type()));
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -52,8 +48,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.ops/string.accessors/data.pass.cpp b/libcxx/test/std/strings/basic.string/string.ops/string.accessors/data.pass.cpp
index 11ff56af1c7ae74..3d7c8c8f4cb430d 100644
--- a/libcxx/test/std/strings/basic.string/string.ops/string.accessors/data.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.ops/string.accessors/data.pass.cpp
@@ -18,33 +18,25 @@
#include "min_allocator.h"
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test_const(const S& s)
-{
- typedef typename S::traits_type T;
- const typename S::value_type* str = s.data();
- if (s.size() > 0)
- {
- assert(T::compare(str, &s[0], s.size()) == 0);
- assert(T::eq(str[s.size()], typename S::value_type()));
- }
- else
- assert(T::eq(str[0], typename S::value_type()));
+TEST_CONSTEXPR_CXX20 void test_const(const S& s) {
+ typedef typename S::traits_type T;
+ const typename S::value_type* str = s.data();
+ if (s.size() > 0) {
+ assert(T::compare(str, &s[0], s.size()) == 0);
+ assert(T::eq(str[s.size()], typename S::value_type()));
+ } else
+ assert(T::eq(str[0], typename S::value_type()));
}
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test_nonconst(S& s)
-{
- typedef typename S::traits_type T;
- typename S::value_type* str = s.data();
- if (s.size() > 0)
- {
- assert(T::compare(str, &s[0], s.size()) == 0);
- assert(T::eq(str[s.size()], typename S::value_type()));
- }
- else
- assert(T::eq(str[0], typename S::value_type()));
+TEST_CONSTEXPR_CXX20 void test_nonconst(S& s) {
+ typedef typename S::traits_type T;
+ typename S::value_type* str = s.data();
+ if (s.size() > 0) {
+ assert(T::compare(str, &s[0], s.size()) == 0);
+ assert(T::eq(str[s.size()], typename S::value_type()));
+ } else
+ assert(T::eq(str[0], typename S::value_type()));
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -67,18 +59,21 @@ TEST_CONSTEXPR_CXX20 bool test() {
#if TEST_STD_VER > 14
{
typedef std::string S;
- S s1(""); test_nonconst(s1);
- S s2("abcde"); test_nonconst(s2);
- S s3("abcdefghij"); test_nonconst(s3);
- S s4("abcdefghijklmnopqrst"); test_nonconst(s4);
+ S s1("");
+ test_nonconst(s1);
+ S s2("abcde");
+ test_nonconst(s2);
+ S s3("abcdefghij");
+ test_nonconst(s3);
+ S s4("abcdefghijklmnopqrst");
+ test_nonconst(s4);
}
#endif
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.ops/string.accessors/get_allocator.pass.cpp b/libcxx/test/std/strings/basic.string/string.ops/string.accessors/get_allocator.pass.cpp
index 6eed6961f7d1d6c..819e4a046d6fd16 100644
--- a/libcxx/test/std/strings/basic.string/string.ops/string.accessors/get_allocator.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.ops/string.accessors/get_allocator.pass.cpp
@@ -18,10 +18,8 @@
#include "min_allocator.h"
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(const S& s, const typename S::allocator_type& a)
-{
- assert(s.get_allocator() == a);
+TEST_CONSTEXPR_CXX20 void test(const S& s, const typename S::allocator_type& a) {
+ assert(s.get_allocator() == a);
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -47,8 +45,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.ops/string_compare/pointer.pass.cpp b/libcxx/test/std/strings/basic.string/string.ops/string_compare/pointer.pass.cpp
index 0863b4b15099f84..dbabaac65050405 100644
--- a/libcxx/test/std/strings/basic.string/string.ops/string_compare/pointer.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.ops/string_compare/pointer.pass.cpp
@@ -16,21 +16,18 @@
#include "test_macros.h"
#include "min_allocator.h"
-TEST_CONSTEXPR_CXX20 int sign(int x)
-{
- if (x == 0)
- return 0;
- if (x < 0)
- return -1;
- return 1;
+TEST_CONSTEXPR_CXX20 int sign(int x) {
+ if (x == 0)
+ return 0;
+ if (x < 0)
+ return -1;
+ return 1;
}
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(const S& s, const typename S::value_type* str, int x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.compare(str));
- assert(sign(s.compare(str)) == sign(x));
+TEST_CONSTEXPR_CXX20 void test(const S& s, const typename S::value_type* str, int x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.compare(str));
+ assert(sign(s.compare(str)) == sign(x));
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -78,8 +75,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.ops/string_compare/size_size_T_size_size.pass.cpp b/libcxx/test/std/strings/basic.string/string.ops/string_compare/size_size_T_size_size.pass.cpp
index 9b39d33656c9f26..49916cbd56f9944 100644
--- a/libcxx/test/std/strings/basic.string/string.ops/string_compare/size_size_T_size_size.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.ops/string_compare/size_size_T_size_size.pass.cpp
@@ -22,5958 +22,5895 @@
#include "test_macros.h"
-TEST_CONSTEXPR_CXX20 int sign(int x)
-{
- if (x == 0)
- return 0;
- if (x < 0)
- return -1;
- return 1;
+TEST_CONSTEXPR_CXX20 int sign(int x) {
+ if (x == 0)
+ return 0;
+ if (x < 0)
+ return -1;
+ return 1;
}
template <class S, class SV>
TEST_CONSTEXPR_CXX20 void
-test(const S& s, typename S::size_type pos1, typename S::size_type n1,
- SV sv, typename S::size_type pos2, typename S::size_type n2, int x)
-{
- static_assert((!std::is_same<S, SV>::value), "");
- if (pos1 <= s.size() && pos2 <= sv.size())
- assert(sign(s.compare(pos1, n1, sv, pos2, n2)) == sign(x));
+test(const S& s,
+ typename S::size_type pos1,
+ typename S::size_type n1,
+ SV sv,
+ typename S::size_type pos2,
+ typename S::size_type n2,
+ int x) {
+ static_assert((!std::is_same<S, SV>::value), "");
+ if (pos1 <= s.size() && pos2 <= sv.size())
+ assert(sign(s.compare(pos1, n1, sv, pos2, n2)) == sign(x));
#ifndef TEST_HAS_NO_EXCEPTIONS
- else if (!TEST_IS_CONSTANT_EVALUATED)
- {
- try
- {
- TEST_IGNORE_NODISCARD s.compare(pos1, n1, sv, pos2, n2);
- assert(false);
- }
- catch (const std::out_of_range&)
- {
- assert(pos1 > s.size() || pos2 > sv.size());
- }
+ else if (!TEST_IS_CONSTANT_EVALUATED) {
+ try {
+ TEST_IGNORE_NODISCARD s.compare(pos1, n1, sv, pos2, n2);
+ assert(false);
+ } catch (const std::out_of_range&) {
+ assert(pos1 > s.size() || pos2 > sv.size());
}
+ }
#endif
}
template <class S, class SV>
TEST_CONSTEXPR_CXX20 void
-test_npos(const S& s, typename S::size_type pos1, typename S::size_type n1,
- SV sv, typename S::size_type pos2, int x)
-{
- static_assert((!std::is_same<S, SV>::value), "");
- if (pos1 <= s.size() && pos2 <= sv.size())
- assert(sign(s.compare(pos1, n1, sv, pos2)) == sign(x));
+test_npos(const S& s, typename S::size_type pos1, typename S::size_type n1, SV sv, typename S::size_type pos2, int x) {
+ static_assert((!std::is_same<S, SV>::value), "");
+ if (pos1 <= s.size() && pos2 <= sv.size())
+ assert(sign(s.compare(pos1, n1, sv, pos2)) == sign(x));
#ifndef TEST_HAS_NO_EXCEPTIONS
- else if (!TEST_IS_CONSTANT_EVALUATED)
- {
- try
- {
- TEST_IGNORE_NODISCARD s.compare(pos1, n1, sv, pos2);
- assert(false);
- }
- catch (const std::out_of_range&)
- {
- assert(pos1 > s.size() || pos2 > sv.size());
- }
+ else if (!TEST_IS_CONSTANT_EVALUATED) {
+ try {
+ TEST_IGNORE_NODISCARD s.compare(pos1, n1, sv, pos2);
+ assert(false);
+ } catch (const std::out_of_range&) {
+ assert(pos1 > s.size() || pos2 > sv.size());
}
+ }
#endif
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test0()
-{
- test(S(""), 0, 0, SV(""), 0, 0, 0);
- test(S(""), 0, 0, SV(""), 0, 1, 0);
- test(S(""), 0, 0, SV(""), 1, 0, 0);
- test(S(""), 0, 0, SV("abcde"), 0, 0, 0);
- test(S(""), 0, 0, SV("abcde"), 0, 1, -1);
- test(S(""), 0, 0, SV("abcde"), 0, 2, -2);
- test(S(""), 0, 0, SV("abcde"), 0, 4, -4);
- test(S(""), 0, 0, SV("abcde"), 0, 5, -5);
- test(S(""), 0, 0, SV("abcde"), 0, 6, -5);
- test(S(""), 0, 0, SV("abcde"), 1, 0, 0);
- test(S(""), 0, 0, SV("abcde"), 1, 1, -1);
- test(S(""), 0, 0, SV("abcde"), 1, 2, -2);
- test(S(""), 0, 0, SV("abcde"), 1, 3, -3);
- test(S(""), 0, 0, SV("abcde"), 1, 4, -4);
- test(S(""), 0, 0, SV("abcde"), 1, 5, -4);
- test(S(""), 0, 0, SV("abcde"), 2, 0, 0);
- test(S(""), 0, 0, SV("abcde"), 2, 1, -1);
- test(S(""), 0, 0, SV("abcde"), 2, 2, -2);
- test(S(""), 0, 0, SV("abcde"), 2, 3, -3);
- test(S(""), 0, 0, SV("abcde"), 2, 4, -3);
- test(S(""), 0, 0, SV("abcde"), 4, 0, 0);
- test(S(""), 0, 0, SV("abcde"), 4, 1, -1);
- test(S(""), 0, 0, SV("abcde"), 4, 2, -1);
- test(S(""), 0, 0, SV("abcde"), 5, 0, 0);
- test(S(""), 0, 0, SV("abcde"), 5, 1, 0);
- test(S(""), 0, 0, SV("abcde"), 6, 0, 0);
- test(S(""), 0, 0, SV("abcdefghij"), 0, 0, 0);
- test(S(""), 0, 0, SV("abcdefghij"), 0, 1, -1);
- test(S(""), 0, 0, SV("abcdefghij"), 0, 5, -5);
- test(S(""), 0, 0, SV("abcdefghij"), 0, 9, -9);
- test(S(""), 0, 0, SV("abcdefghij"), 0, 10, -10);
- test(S(""), 0, 0, SV("abcdefghij"), 0, 11, -10);
- test(S(""), 0, 0, SV("abcdefghij"), 1, 0, 0);
- test(S(""), 0, 0, SV("abcdefghij"), 1, 1, -1);
- test(S(""), 0, 0, SV("abcdefghij"), 1, 4, -4);
- test(S(""), 0, 0, SV("abcdefghij"), 1, 8, -8);
- test(S(""), 0, 0, SV("abcdefghij"), 1, 9, -9);
- test(S(""), 0, 0, SV("abcdefghij"), 1, 10, -9);
- test(S(""), 0, 0, SV("abcdefghij"), 5, 0, 0);
- test(S(""), 0, 0, SV("abcdefghij"), 5, 1, -1);
- test(S(""), 0, 0, SV("abcdefghij"), 5, 2, -2);
- test(S(""), 0, 0, SV("abcdefghij"), 5, 4, -4);
- test(S(""), 0, 0, SV("abcdefghij"), 5, 5, -5);
- test(S(""), 0, 0, SV("abcdefghij"), 5, 6, -5);
- test(S(""), 0, 0, SV("abcdefghij"), 9, 0, 0);
- test(S(""), 0, 0, SV("abcdefghij"), 9, 1, -1);
- test(S(""), 0, 0, SV("abcdefghij"), 9, 2, -1);
- test(S(""), 0, 0, SV("abcdefghij"), 10, 0, 0);
- test(S(""), 0, 0, SV("abcdefghij"), 10, 1, 0);
- test(S(""), 0, 0, SV("abcdefghij"), 11, 0, 0);
- test(S(""), 0, 0, SV("abcdefghijklmnopqrst"), 0, 0, 0);
- test(S(""), 0, 0, SV("abcdefghijklmnopqrst"), 0, 1, -1);
- test(S(""), 0, 0, SV("abcdefghijklmnopqrst"), 0, 10, -10);
- test(S(""), 0, 0, SV("abcdefghijklmnopqrst"), 0, 19, -19);
- test(S(""), 0, 0, SV("abcdefghijklmnopqrst"), 0, 20, -20);
- test(S(""), 0, 0, SV("abcdefghijklmnopqrst"), 0, 21, -20);
- test(S(""), 0, 0, SV("abcdefghijklmnopqrst"), 1, 0, 0);
- test(S(""), 0, 0, SV("abcdefghijklmnopqrst"), 1, 1, -1);
- test(S(""), 0, 0, SV("abcdefghijklmnopqrst"), 1, 9, -9);
- test(S(""), 0, 0, SV("abcdefghijklmnopqrst"), 1, 18, -18);
- test(S(""), 0, 0, SV("abcdefghijklmnopqrst"), 1, 19, -19);
- test(S(""), 0, 0, SV("abcdefghijklmnopqrst"), 1, 20, -19);
- test(S(""), 0, 0, SV("abcdefghijklmnopqrst"), 10, 0, 0);
- test(S(""), 0, 0, SV("abcdefghijklmnopqrst"), 10, 1, -1);
- test(S(""), 0, 0, SV("abcdefghijklmnopqrst"), 10, 5, -5);
- test(S(""), 0, 0, SV("abcdefghijklmnopqrst"), 10, 9, -9);
- test(S(""), 0, 0, SV("abcdefghijklmnopqrst"), 10, 10, -10);
- test(S(""), 0, 0, SV("abcdefghijklmnopqrst"), 10, 11, -10);
- test(S(""), 0, 0, SV("abcdefghijklmnopqrst"), 19, 0, 0);
- test(S(""), 0, 0, SV("abcdefghijklmnopqrst"), 19, 1, -1);
- test(S(""), 0, 0, SV("abcdefghijklmnopqrst"), 19, 2, -1);
- test(S(""), 0, 0, SV("abcdefghijklmnopqrst"), 20, 0, 0);
- test(S(""), 0, 0, SV("abcdefghijklmnopqrst"), 20, 1, 0);
- test(S(""), 0, 0, SV("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S(""), 0, 1, SV(""), 0, 0, 0);
- test(S(""), 0, 1, SV(""), 0, 1, 0);
- test(S(""), 0, 1, SV(""), 1, 0, 0);
- test(S(""), 0, 1, SV("abcde"), 0, 0, 0);
- test(S(""), 0, 1, SV("abcde"), 0, 1, -1);
- test(S(""), 0, 1, SV("abcde"), 0, 2, -2);
- test(S(""), 0, 1, SV("abcde"), 0, 4, -4);
- test(S(""), 0, 1, SV("abcde"), 0, 5, -5);
- test(S(""), 0, 1, SV("abcde"), 0, 6, -5);
- test(S(""), 0, 1, SV("abcde"), 1, 0, 0);
- test(S(""), 0, 1, SV("abcde"), 1, 1, -1);
- test(S(""), 0, 1, SV("abcde"), 1, 2, -2);
- test(S(""), 0, 1, SV("abcde"), 1, 3, -3);
- test(S(""), 0, 1, SV("abcde"), 1, 4, -4);
- test(S(""), 0, 1, SV("abcde"), 1, 5, -4);
- test(S(""), 0, 1, SV("abcde"), 2, 0, 0);
- test(S(""), 0, 1, SV("abcde"), 2, 1, -1);
- test(S(""), 0, 1, SV("abcde"), 2, 2, -2);
- test(S(""), 0, 1, SV("abcde"), 2, 3, -3);
- test(S(""), 0, 1, SV("abcde"), 2, 4, -3);
- test(S(""), 0, 1, SV("abcde"), 4, 0, 0);
- test(S(""), 0, 1, SV("abcde"), 4, 1, -1);
- test(S(""), 0, 1, SV("abcde"), 4, 2, -1);
- test(S(""), 0, 1, SV("abcde"), 5, 0, 0);
- test(S(""), 0, 1, SV("abcde"), 5, 1, 0);
- test(S(""), 0, 1, SV("abcde"), 6, 0, 0);
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test0() {
+ test(S(""), 0, 0, SV(""), 0, 0, 0);
+ test(S(""), 0, 0, SV(""), 0, 1, 0);
+ test(S(""), 0, 0, SV(""), 1, 0, 0);
+ test(S(""), 0, 0, SV("abcde"), 0, 0, 0);
+ test(S(""), 0, 0, SV("abcde"), 0, 1, -1);
+ test(S(""), 0, 0, SV("abcde"), 0, 2, -2);
+ test(S(""), 0, 0, SV("abcde"), 0, 4, -4);
+ test(S(""), 0, 0, SV("abcde"), 0, 5, -5);
+ test(S(""), 0, 0, SV("abcde"), 0, 6, -5);
+ test(S(""), 0, 0, SV("abcde"), 1, 0, 0);
+ test(S(""), 0, 0, SV("abcde"), 1, 1, -1);
+ test(S(""), 0, 0, SV("abcde"), 1, 2, -2);
+ test(S(""), 0, 0, SV("abcde"), 1, 3, -3);
+ test(S(""), 0, 0, SV("abcde"), 1, 4, -4);
+ test(S(""), 0, 0, SV("abcde"), 1, 5, -4);
+ test(S(""), 0, 0, SV("abcde"), 2, 0, 0);
+ test(S(""), 0, 0, SV("abcde"), 2, 1, -1);
+ test(S(""), 0, 0, SV("abcde"), 2, 2, -2);
+ test(S(""), 0, 0, SV("abcde"), 2, 3, -3);
+ test(S(""), 0, 0, SV("abcde"), 2, 4, -3);
+ test(S(""), 0, 0, SV("abcde"), 4, 0, 0);
+ test(S(""), 0, 0, SV("abcde"), 4, 1, -1);
+ test(S(""), 0, 0, SV("abcde"), 4, 2, -1);
+ test(S(""), 0, 0, SV("abcde"), 5, 0, 0);
+ test(S(""), 0, 0, SV("abcde"), 5, 1, 0);
+ test(S(""), 0, 0, SV("abcde"), 6, 0, 0);
+ test(S(""), 0, 0, SV("abcdefghij"), 0, 0, 0);
+ test(S(""), 0, 0, SV("abcdefghij"), 0, 1, -1);
+ test(S(""), 0, 0, SV("abcdefghij"), 0, 5, -5);
+ test(S(""), 0, 0, SV("abcdefghij"), 0, 9, -9);
+ test(S(""), 0, 0, SV("abcdefghij"), 0, 10, -10);
+ test(S(""), 0, 0, SV("abcdefghij"), 0, 11, -10);
+ test(S(""), 0, 0, SV("abcdefghij"), 1, 0, 0);
+ test(S(""), 0, 0, SV("abcdefghij"), 1, 1, -1);
+ test(S(""), 0, 0, SV("abcdefghij"), 1, 4, -4);
+ test(S(""), 0, 0, SV("abcdefghij"), 1, 8, -8);
+ test(S(""), 0, 0, SV("abcdefghij"), 1, 9, -9);
+ test(S(""), 0, 0, SV("abcdefghij"), 1, 10, -9);
+ test(S(""), 0, 0, SV("abcdefghij"), 5, 0, 0);
+ test(S(""), 0, 0, SV("abcdefghij"), 5, 1, -1);
+ test(S(""), 0, 0, SV("abcdefghij"), 5, 2, -2);
+ test(S(""), 0, 0, SV("abcdefghij"), 5, 4, -4);
+ test(S(""), 0, 0, SV("abcdefghij"), 5, 5, -5);
+ test(S(""), 0, 0, SV("abcdefghij"), 5, 6, -5);
+ test(S(""), 0, 0, SV("abcdefghij"), 9, 0, 0);
+ test(S(""), 0, 0, SV("abcdefghij"), 9, 1, -1);
+ test(S(""), 0, 0, SV("abcdefghij"), 9, 2, -1);
+ test(S(""), 0, 0, SV("abcdefghij"), 10, 0, 0);
+ test(S(""), 0, 0, SV("abcdefghij"), 10, 1, 0);
+ test(S(""), 0, 0, SV("abcdefghij"), 11, 0, 0);
+ test(S(""), 0, 0, SV("abcdefghijklmnopqrst"), 0, 0, 0);
+ test(S(""), 0, 0, SV("abcdefghijklmnopqrst"), 0, 1, -1);
+ test(S(""), 0, 0, SV("abcdefghijklmnopqrst"), 0, 10, -10);
+ test(S(""), 0, 0, SV("abcdefghijklmnopqrst"), 0, 19, -19);
+ test(S(""), 0, 0, SV("abcdefghijklmnopqrst"), 0, 20, -20);
+ test(S(""), 0, 0, SV("abcdefghijklmnopqrst"), 0, 21, -20);
+ test(S(""), 0, 0, SV("abcdefghijklmnopqrst"), 1, 0, 0);
+ test(S(""), 0, 0, SV("abcdefghijklmnopqrst"), 1, 1, -1);
+ test(S(""), 0, 0, SV("abcdefghijklmnopqrst"), 1, 9, -9);
+ test(S(""), 0, 0, SV("abcdefghijklmnopqrst"), 1, 18, -18);
+ test(S(""), 0, 0, SV("abcdefghijklmnopqrst"), 1, 19, -19);
+ test(S(""), 0, 0, SV("abcdefghijklmnopqrst"), 1, 20, -19);
+ test(S(""), 0, 0, SV("abcdefghijklmnopqrst"), 10, 0, 0);
+ test(S(""), 0, 0, SV("abcdefghijklmnopqrst"), 10, 1, -1);
+ test(S(""), 0, 0, SV("abcdefghijklmnopqrst"), 10, 5, -5);
+ test(S(""), 0, 0, SV("abcdefghijklmnopqrst"), 10, 9, -9);
+ test(S(""), 0, 0, SV("abcdefghijklmnopqrst"), 10, 10, -10);
+ test(S(""), 0, 0, SV("abcdefghijklmnopqrst"), 10, 11, -10);
+ test(S(""), 0, 0, SV("abcdefghijklmnopqrst"), 19, 0, 0);
+ test(S(""), 0, 0, SV("abcdefghijklmnopqrst"), 19, 1, -1);
+ test(S(""), 0, 0, SV("abcdefghijklmnopqrst"), 19, 2, -1);
+ test(S(""), 0, 0, SV("abcdefghijklmnopqrst"), 20, 0, 0);
+ test(S(""), 0, 0, SV("abcdefghijklmnopqrst"), 20, 1, 0);
+ test(S(""), 0, 0, SV("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S(""), 0, 1, SV(""), 0, 0, 0);
+ test(S(""), 0, 1, SV(""), 0, 1, 0);
+ test(S(""), 0, 1, SV(""), 1, 0, 0);
+ test(S(""), 0, 1, SV("abcde"), 0, 0, 0);
+ test(S(""), 0, 1, SV("abcde"), 0, 1, -1);
+ test(S(""), 0, 1, SV("abcde"), 0, 2, -2);
+ test(S(""), 0, 1, SV("abcde"), 0, 4, -4);
+ test(S(""), 0, 1, SV("abcde"), 0, 5, -5);
+ test(S(""), 0, 1, SV("abcde"), 0, 6, -5);
+ test(S(""), 0, 1, SV("abcde"), 1, 0, 0);
+ test(S(""), 0, 1, SV("abcde"), 1, 1, -1);
+ test(S(""), 0, 1, SV("abcde"), 1, 2, -2);
+ test(S(""), 0, 1, SV("abcde"), 1, 3, -3);
+ test(S(""), 0, 1, SV("abcde"), 1, 4, -4);
+ test(S(""), 0, 1, SV("abcde"), 1, 5, -4);
+ test(S(""), 0, 1, SV("abcde"), 2, 0, 0);
+ test(S(""), 0, 1, SV("abcde"), 2, 1, -1);
+ test(S(""), 0, 1, SV("abcde"), 2, 2, -2);
+ test(S(""), 0, 1, SV("abcde"), 2, 3, -3);
+ test(S(""), 0, 1, SV("abcde"), 2, 4, -3);
+ test(S(""), 0, 1, SV("abcde"), 4, 0, 0);
+ test(S(""), 0, 1, SV("abcde"), 4, 1, -1);
+ test(S(""), 0, 1, SV("abcde"), 4, 2, -1);
+ test(S(""), 0, 1, SV("abcde"), 5, 0, 0);
+ test(S(""), 0, 1, SV("abcde"), 5, 1, 0);
+ test(S(""), 0, 1, SV("abcde"), 6, 0, 0);
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test1()
-{
- test(S(""), 0, 1, SV("abcdefghij"), 0, 0, 0);
- test(S(""), 0, 1, SV("abcdefghij"), 0, 1, -1);
- test(S(""), 0, 1, SV("abcdefghij"), 0, 5, -5);
- test(S(""), 0, 1, SV("abcdefghij"), 0, 9, -9);
- test(S(""), 0, 1, SV("abcdefghij"), 0, 10, -10);
- test(S(""), 0, 1, SV("abcdefghij"), 0, 11, -10);
- test(S(""), 0, 1, SV("abcdefghij"), 1, 0, 0);
- test(S(""), 0, 1, SV("abcdefghij"), 1, 1, -1);
- test(S(""), 0, 1, SV("abcdefghij"), 1, 4, -4);
- test(S(""), 0, 1, SV("abcdefghij"), 1, 8, -8);
- test(S(""), 0, 1, SV("abcdefghij"), 1, 9, -9);
- test(S(""), 0, 1, SV("abcdefghij"), 1, 10, -9);
- test(S(""), 0, 1, SV("abcdefghij"), 5, 0, 0);
- test(S(""), 0, 1, SV("abcdefghij"), 5, 1, -1);
- test(S(""), 0, 1, SV("abcdefghij"), 5, 2, -2);
- test(S(""), 0, 1, SV("abcdefghij"), 5, 4, -4);
- test(S(""), 0, 1, SV("abcdefghij"), 5, 5, -5);
- test(S(""), 0, 1, SV("abcdefghij"), 5, 6, -5);
- test(S(""), 0, 1, SV("abcdefghij"), 9, 0, 0);
- test(S(""), 0, 1, SV("abcdefghij"), 9, 1, -1);
- test(S(""), 0, 1, SV("abcdefghij"), 9, 2, -1);
- test(S(""), 0, 1, SV("abcdefghij"), 10, 0, 0);
- test(S(""), 0, 1, SV("abcdefghij"), 10, 1, 0);
- test(S(""), 0, 1, SV("abcdefghij"), 11, 0, 0);
- test(S(""), 0, 1, SV("abcdefghijklmnopqrst"), 0, 0, 0);
- test(S(""), 0, 1, SV("abcdefghijklmnopqrst"), 0, 1, -1);
- test(S(""), 0, 1, SV("abcdefghijklmnopqrst"), 0, 10, -10);
- test(S(""), 0, 1, SV("abcdefghijklmnopqrst"), 0, 19, -19);
- test(S(""), 0, 1, SV("abcdefghijklmnopqrst"), 0, 20, -20);
- test(S(""), 0, 1, SV("abcdefghijklmnopqrst"), 0, 21, -20);
- test(S(""), 0, 1, SV("abcdefghijklmnopqrst"), 1, 0, 0);
- test(S(""), 0, 1, SV("abcdefghijklmnopqrst"), 1, 1, -1);
- test(S(""), 0, 1, SV("abcdefghijklmnopqrst"), 1, 9, -9);
- test(S(""), 0, 1, SV("abcdefghijklmnopqrst"), 1, 18, -18);
- test(S(""), 0, 1, SV("abcdefghijklmnopqrst"), 1, 19, -19);
- test(S(""), 0, 1, SV("abcdefghijklmnopqrst"), 1, 20, -19);
- test(S(""), 0, 1, SV("abcdefghijklmnopqrst"), 10, 0, 0);
- test(S(""), 0, 1, SV("abcdefghijklmnopqrst"), 10, 1, -1);
- test(S(""), 0, 1, SV("abcdefghijklmnopqrst"), 10, 5, -5);
- test(S(""), 0, 1, SV("abcdefghijklmnopqrst"), 10, 9, -9);
- test(S(""), 0, 1, SV("abcdefghijklmnopqrst"), 10, 10, -10);
- test(S(""), 0, 1, SV("abcdefghijklmnopqrst"), 10, 11, -10);
- test(S(""), 0, 1, SV("abcdefghijklmnopqrst"), 19, 0, 0);
- test(S(""), 0, 1, SV("abcdefghijklmnopqrst"), 19, 1, -1);
- test(S(""), 0, 1, SV("abcdefghijklmnopqrst"), 19, 2, -1);
- test(S(""), 0, 1, SV("abcdefghijklmnopqrst"), 20, 0, 0);
- test(S(""), 0, 1, SV("abcdefghijklmnopqrst"), 20, 1, 0);
- test(S(""), 0, 1, SV("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S(""), 1, 0, SV(""), 0, 0, 0);
- test(S(""), 1, 0, SV(""), 0, 1, 0);
- test(S(""), 1, 0, SV(""), 1, 0, 0);
- test(S(""), 1, 0, SV("abcde"), 0, 0, 0);
- test(S(""), 1, 0, SV("abcde"), 0, 1, 0);
- test(S(""), 1, 0, SV("abcde"), 0, 2, 0);
- test(S(""), 1, 0, SV("abcde"), 0, 4, 0);
- test(S(""), 1, 0, SV("abcde"), 0, 5, 0);
- test(S(""), 1, 0, SV("abcde"), 0, 6, 0);
- test(S(""), 1, 0, SV("abcde"), 1, 0, 0);
- test(S(""), 1, 0, SV("abcde"), 1, 1, 0);
- test(S(""), 1, 0, SV("abcde"), 1, 2, 0);
- test(S(""), 1, 0, SV("abcde"), 1, 3, 0);
- test(S(""), 1, 0, SV("abcde"), 1, 4, 0);
- test(S(""), 1, 0, SV("abcde"), 1, 5, 0);
- test(S(""), 1, 0, SV("abcde"), 2, 0, 0);
- test(S(""), 1, 0, SV("abcde"), 2, 1, 0);
- test(S(""), 1, 0, SV("abcde"), 2, 2, 0);
- test(S(""), 1, 0, SV("abcde"), 2, 3, 0);
- test(S(""), 1, 0, SV("abcde"), 2, 4, 0);
- test(S(""), 1, 0, SV("abcde"), 4, 0, 0);
- test(S(""), 1, 0, SV("abcde"), 4, 1, 0);
- test(S(""), 1, 0, SV("abcde"), 4, 2, 0);
- test(S(""), 1, 0, SV("abcde"), 5, 0, 0);
- test(S(""), 1, 0, SV("abcde"), 5, 1, 0);
- test(S(""), 1, 0, SV("abcde"), 6, 0, 0);
- test(S(""), 1, 0, SV("abcdefghij"), 0, 0, 0);
- test(S(""), 1, 0, SV("abcdefghij"), 0, 1, 0);
- test(S(""), 1, 0, SV("abcdefghij"), 0, 5, 0);
- test(S(""), 1, 0, SV("abcdefghij"), 0, 9, 0);
- test(S(""), 1, 0, SV("abcdefghij"), 0, 10, 0);
- test(S(""), 1, 0, SV("abcdefghij"), 0, 11, 0);
- test(S(""), 1, 0, SV("abcdefghij"), 1, 0, 0);
- test(S(""), 1, 0, SV("abcdefghij"), 1, 1, 0);
- test(S(""), 1, 0, SV("abcdefghij"), 1, 4, 0);
- test(S(""), 1, 0, SV("abcdefghij"), 1, 8, 0);
- test(S(""), 1, 0, SV("abcdefghij"), 1, 9, 0);
- test(S(""), 1, 0, SV("abcdefghij"), 1, 10, 0);
- test(S(""), 1, 0, SV("abcdefghij"), 5, 0, 0);
- test(S(""), 1, 0, SV("abcdefghij"), 5, 1, 0);
- test(S(""), 1, 0, SV("abcdefghij"), 5, 2, 0);
- test(S(""), 1, 0, SV("abcdefghij"), 5, 4, 0);
- test(S(""), 1, 0, SV("abcdefghij"), 5, 5, 0);
- test(S(""), 1, 0, SV("abcdefghij"), 5, 6, 0);
- test(S(""), 1, 0, SV("abcdefghij"), 9, 0, 0);
- test(S(""), 1, 0, SV("abcdefghij"), 9, 1, 0);
- test(S(""), 1, 0, SV("abcdefghij"), 9, 2, 0);
- test(S(""), 1, 0, SV("abcdefghij"), 10, 0, 0);
- test(S(""), 1, 0, SV("abcdefghij"), 10, 1, 0);
- test(S(""), 1, 0, SV("abcdefghij"), 11, 0, 0);
- test(S(""), 1, 0, SV("abcdefghijklmnopqrst"), 0, 0, 0);
- test(S(""), 1, 0, SV("abcdefghijklmnopqrst"), 0, 1, 0);
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test1() {
+ test(S(""), 0, 1, SV("abcdefghij"), 0, 0, 0);
+ test(S(""), 0, 1, SV("abcdefghij"), 0, 1, -1);
+ test(S(""), 0, 1, SV("abcdefghij"), 0, 5, -5);
+ test(S(""), 0, 1, SV("abcdefghij"), 0, 9, -9);
+ test(S(""), 0, 1, SV("abcdefghij"), 0, 10, -10);
+ test(S(""), 0, 1, SV("abcdefghij"), 0, 11, -10);
+ test(S(""), 0, 1, SV("abcdefghij"), 1, 0, 0);
+ test(S(""), 0, 1, SV("abcdefghij"), 1, 1, -1);
+ test(S(""), 0, 1, SV("abcdefghij"), 1, 4, -4);
+ test(S(""), 0, 1, SV("abcdefghij"), 1, 8, -8);
+ test(S(""), 0, 1, SV("abcdefghij"), 1, 9, -9);
+ test(S(""), 0, 1, SV("abcdefghij"), 1, 10, -9);
+ test(S(""), 0, 1, SV("abcdefghij"), 5, 0, 0);
+ test(S(""), 0, 1, SV("abcdefghij"), 5, 1, -1);
+ test(S(""), 0, 1, SV("abcdefghij"), 5, 2, -2);
+ test(S(""), 0, 1, SV("abcdefghij"), 5, 4, -4);
+ test(S(""), 0, 1, SV("abcdefghij"), 5, 5, -5);
+ test(S(""), 0, 1, SV("abcdefghij"), 5, 6, -5);
+ test(S(""), 0, 1, SV("abcdefghij"), 9, 0, 0);
+ test(S(""), 0, 1, SV("abcdefghij"), 9, 1, -1);
+ test(S(""), 0, 1, SV("abcdefghij"), 9, 2, -1);
+ test(S(""), 0, 1, SV("abcdefghij"), 10, 0, 0);
+ test(S(""), 0, 1, SV("abcdefghij"), 10, 1, 0);
+ test(S(""), 0, 1, SV("abcdefghij"), 11, 0, 0);
+ test(S(""), 0, 1, SV("abcdefghijklmnopqrst"), 0, 0, 0);
+ test(S(""), 0, 1, SV("abcdefghijklmnopqrst"), 0, 1, -1);
+ test(S(""), 0, 1, SV("abcdefghijklmnopqrst"), 0, 10, -10);
+ test(S(""), 0, 1, SV("abcdefghijklmnopqrst"), 0, 19, -19);
+ test(S(""), 0, 1, SV("abcdefghijklmnopqrst"), 0, 20, -20);
+ test(S(""), 0, 1, SV("abcdefghijklmnopqrst"), 0, 21, -20);
+ test(S(""), 0, 1, SV("abcdefghijklmnopqrst"), 1, 0, 0);
+ test(S(""), 0, 1, SV("abcdefghijklmnopqrst"), 1, 1, -1);
+ test(S(""), 0, 1, SV("abcdefghijklmnopqrst"), 1, 9, -9);
+ test(S(""), 0, 1, SV("abcdefghijklmnopqrst"), 1, 18, -18);
+ test(S(""), 0, 1, SV("abcdefghijklmnopqrst"), 1, 19, -19);
+ test(S(""), 0, 1, SV("abcdefghijklmnopqrst"), 1, 20, -19);
+ test(S(""), 0, 1, SV("abcdefghijklmnopqrst"), 10, 0, 0);
+ test(S(""), 0, 1, SV("abcdefghijklmnopqrst"), 10, 1, -1);
+ test(S(""), 0, 1, SV("abcdefghijklmnopqrst"), 10, 5, -5);
+ test(S(""), 0, 1, SV("abcdefghijklmnopqrst"), 10, 9, -9);
+ test(S(""), 0, 1, SV("abcdefghijklmnopqrst"), 10, 10, -10);
+ test(S(""), 0, 1, SV("abcdefghijklmnopqrst"), 10, 11, -10);
+ test(S(""), 0, 1, SV("abcdefghijklmnopqrst"), 19, 0, 0);
+ test(S(""), 0, 1, SV("abcdefghijklmnopqrst"), 19, 1, -1);
+ test(S(""), 0, 1, SV("abcdefghijklmnopqrst"), 19, 2, -1);
+ test(S(""), 0, 1, SV("abcdefghijklmnopqrst"), 20, 0, 0);
+ test(S(""), 0, 1, SV("abcdefghijklmnopqrst"), 20, 1, 0);
+ test(S(""), 0, 1, SV("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S(""), 1, 0, SV(""), 0, 0, 0);
+ test(S(""), 1, 0, SV(""), 0, 1, 0);
+ test(S(""), 1, 0, SV(""), 1, 0, 0);
+ test(S(""), 1, 0, SV("abcde"), 0, 0, 0);
+ test(S(""), 1, 0, SV("abcde"), 0, 1, 0);
+ test(S(""), 1, 0, SV("abcde"), 0, 2, 0);
+ test(S(""), 1, 0, SV("abcde"), 0, 4, 0);
+ test(S(""), 1, 0, SV("abcde"), 0, 5, 0);
+ test(S(""), 1, 0, SV("abcde"), 0, 6, 0);
+ test(S(""), 1, 0, SV("abcde"), 1, 0, 0);
+ test(S(""), 1, 0, SV("abcde"), 1, 1, 0);
+ test(S(""), 1, 0, SV("abcde"), 1, 2, 0);
+ test(S(""), 1, 0, SV("abcde"), 1, 3, 0);
+ test(S(""), 1, 0, SV("abcde"), 1, 4, 0);
+ test(S(""), 1, 0, SV("abcde"), 1, 5, 0);
+ test(S(""), 1, 0, SV("abcde"), 2, 0, 0);
+ test(S(""), 1, 0, SV("abcde"), 2, 1, 0);
+ test(S(""), 1, 0, SV("abcde"), 2, 2, 0);
+ test(S(""), 1, 0, SV("abcde"), 2, 3, 0);
+ test(S(""), 1, 0, SV("abcde"), 2, 4, 0);
+ test(S(""), 1, 0, SV("abcde"), 4, 0, 0);
+ test(S(""), 1, 0, SV("abcde"), 4, 1, 0);
+ test(S(""), 1, 0, SV("abcde"), 4, 2, 0);
+ test(S(""), 1, 0, SV("abcde"), 5, 0, 0);
+ test(S(""), 1, 0, SV("abcde"), 5, 1, 0);
+ test(S(""), 1, 0, SV("abcde"), 6, 0, 0);
+ test(S(""), 1, 0, SV("abcdefghij"), 0, 0, 0);
+ test(S(""), 1, 0, SV("abcdefghij"), 0, 1, 0);
+ test(S(""), 1, 0, SV("abcdefghij"), 0, 5, 0);
+ test(S(""), 1, 0, SV("abcdefghij"), 0, 9, 0);
+ test(S(""), 1, 0, SV("abcdefghij"), 0, 10, 0);
+ test(S(""), 1, 0, SV("abcdefghij"), 0, 11, 0);
+ test(S(""), 1, 0, SV("abcdefghij"), 1, 0, 0);
+ test(S(""), 1, 0, SV("abcdefghij"), 1, 1, 0);
+ test(S(""), 1, 0, SV("abcdefghij"), 1, 4, 0);
+ test(S(""), 1, 0, SV("abcdefghij"), 1, 8, 0);
+ test(S(""), 1, 0, SV("abcdefghij"), 1, 9, 0);
+ test(S(""), 1, 0, SV("abcdefghij"), 1, 10, 0);
+ test(S(""), 1, 0, SV("abcdefghij"), 5, 0, 0);
+ test(S(""), 1, 0, SV("abcdefghij"), 5, 1, 0);
+ test(S(""), 1, 0, SV("abcdefghij"), 5, 2, 0);
+ test(S(""), 1, 0, SV("abcdefghij"), 5, 4, 0);
+ test(S(""), 1, 0, SV("abcdefghij"), 5, 5, 0);
+ test(S(""), 1, 0, SV("abcdefghij"), 5, 6, 0);
+ test(S(""), 1, 0, SV("abcdefghij"), 9, 0, 0);
+ test(S(""), 1, 0, SV("abcdefghij"), 9, 1, 0);
+ test(S(""), 1, 0, SV("abcdefghij"), 9, 2, 0);
+ test(S(""), 1, 0, SV("abcdefghij"), 10, 0, 0);
+ test(S(""), 1, 0, SV("abcdefghij"), 10, 1, 0);
+ test(S(""), 1, 0, SV("abcdefghij"), 11, 0, 0);
+ test(S(""), 1, 0, SV("abcdefghijklmnopqrst"), 0, 0, 0);
+ test(S(""), 1, 0, SV("abcdefghijklmnopqrst"), 0, 1, 0);
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test2()
-{
- test(S(""), 1, 0, SV("abcdefghijklmnopqrst"), 0, 10, 0);
- test(S(""), 1, 0, SV("abcdefghijklmnopqrst"), 0, 19, 0);
- test(S(""), 1, 0, SV("abcdefghijklmnopqrst"), 0, 20, 0);
- test(S(""), 1, 0, SV("abcdefghijklmnopqrst"), 0, 21, 0);
- test(S(""), 1, 0, SV("abcdefghijklmnopqrst"), 1, 0, 0);
- test(S(""), 1, 0, SV("abcdefghijklmnopqrst"), 1, 1, 0);
- test(S(""), 1, 0, SV("abcdefghijklmnopqrst"), 1, 9, 0);
- test(S(""), 1, 0, SV("abcdefghijklmnopqrst"), 1, 18, 0);
- test(S(""), 1, 0, SV("abcdefghijklmnopqrst"), 1, 19, 0);
- test(S(""), 1, 0, SV("abcdefghijklmnopqrst"), 1, 20, 0);
- test(S(""), 1, 0, SV("abcdefghijklmnopqrst"), 10, 0, 0);
- test(S(""), 1, 0, SV("abcdefghijklmnopqrst"), 10, 1, 0);
- test(S(""), 1, 0, SV("abcdefghijklmnopqrst"), 10, 5, 0);
- test(S(""), 1, 0, SV("abcdefghijklmnopqrst"), 10, 9, 0);
- test(S(""), 1, 0, SV("abcdefghijklmnopqrst"), 10, 10, 0);
- test(S(""), 1, 0, SV("abcdefghijklmnopqrst"), 10, 11, 0);
- test(S(""), 1, 0, SV("abcdefghijklmnopqrst"), 19, 0, 0);
- test(S(""), 1, 0, SV("abcdefghijklmnopqrst"), 19, 1, 0);
- test(S(""), 1, 0, SV("abcdefghijklmnopqrst"), 19, 2, 0);
- test(S(""), 1, 0, SV("abcdefghijklmnopqrst"), 20, 0, 0);
- test(S(""), 1, 0, SV("abcdefghijklmnopqrst"), 20, 1, 0);
- test(S(""), 1, 0, SV("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcde"), 0, 0, SV(""), 0, 0, 0);
- test(S("abcde"), 0, 0, SV(""), 0, 1, 0);
- test(S("abcde"), 0, 0, SV(""), 1, 0, 0);
- test(S("abcde"), 0, 0, SV("abcde"), 0, 0, 0);
- test(S("abcde"), 0, 0, SV("abcde"), 0, 1, -1);
- test(S("abcde"), 0, 0, SV("abcde"), 0, 2, -2);
- test(S("abcde"), 0, 0, SV("abcde"), 0, 4, -4);
- test(S("abcde"), 0, 0, SV("abcde"), 0, 5, -5);
- test(S("abcde"), 0, 0, SV("abcde"), 0, 6, -5);
- test(S("abcde"), 0, 0, SV("abcde"), 1, 0, 0);
- test(S("abcde"), 0, 0, SV("abcde"), 1, 1, -1);
- test(S("abcde"), 0, 0, SV("abcde"), 1, 2, -2);
- test(S("abcde"), 0, 0, SV("abcde"), 1, 3, -3);
- test(S("abcde"), 0, 0, SV("abcde"), 1, 4, -4);
- test(S("abcde"), 0, 0, SV("abcde"), 1, 5, -4);
- test(S("abcde"), 0, 0, SV("abcde"), 2, 0, 0);
- test(S("abcde"), 0, 0, SV("abcde"), 2, 1, -1);
- test(S("abcde"), 0, 0, SV("abcde"), 2, 2, -2);
- test(S("abcde"), 0, 0, SV("abcde"), 2, 3, -3);
- test(S("abcde"), 0, 0, SV("abcde"), 2, 4, -3);
- test(S("abcde"), 0, 0, SV("abcde"), 4, 0, 0);
- test(S("abcde"), 0, 0, SV("abcde"), 4, 1, -1);
- test(S("abcde"), 0, 0, SV("abcde"), 4, 2, -1);
- test(S("abcde"), 0, 0, SV("abcde"), 5, 0, 0);
- test(S("abcde"), 0, 0, SV("abcde"), 5, 1, 0);
- test(S("abcde"), 0, 0, SV("abcde"), 6, 0, 0);
- test(S("abcde"), 0, 0, SV("abcdefghij"), 0, 0, 0);
- test(S("abcde"), 0, 0, SV("abcdefghij"), 0, 1, -1);
- test(S("abcde"), 0, 0, SV("abcdefghij"), 0, 5, -5);
- test(S("abcde"), 0, 0, SV("abcdefghij"), 0, 9, -9);
- test(S("abcde"), 0, 0, SV("abcdefghij"), 0, 10, -10);
- test(S("abcde"), 0, 0, SV("abcdefghij"), 0, 11, -10);
- test(S("abcde"), 0, 0, SV("abcdefghij"), 1, 0, 0);
- test(S("abcde"), 0, 0, SV("abcdefghij"), 1, 1, -1);
- test(S("abcde"), 0, 0, SV("abcdefghij"), 1, 4, -4);
- test(S("abcde"), 0, 0, SV("abcdefghij"), 1, 8, -8);
- test(S("abcde"), 0, 0, SV("abcdefghij"), 1, 9, -9);
- test(S("abcde"), 0, 0, SV("abcdefghij"), 1, 10, -9);
- test(S("abcde"), 0, 0, SV("abcdefghij"), 5, 0, 0);
- test(S("abcde"), 0, 0, SV("abcdefghij"), 5, 1, -1);
- test(S("abcde"), 0, 0, SV("abcdefghij"), 5, 2, -2);
- test(S("abcde"), 0, 0, SV("abcdefghij"), 5, 4, -4);
- test(S("abcde"), 0, 0, SV("abcdefghij"), 5, 5, -5);
- test(S("abcde"), 0, 0, SV("abcdefghij"), 5, 6, -5);
- test(S("abcde"), 0, 0, SV("abcdefghij"), 9, 0, 0);
- test(S("abcde"), 0, 0, SV("abcdefghij"), 9, 1, -1);
- test(S("abcde"), 0, 0, SV("abcdefghij"), 9, 2, -1);
- test(S("abcde"), 0, 0, SV("abcdefghij"), 10, 0, 0);
- test(S("abcde"), 0, 0, SV("abcdefghij"), 10, 1, 0);
- test(S("abcde"), 0, 0, SV("abcdefghij"), 11, 0, 0);
- test(S("abcde"), 0, 0, SV("abcdefghijklmnopqrst"), 0, 0, 0);
- test(S("abcde"), 0, 0, SV("abcdefghijklmnopqrst"), 0, 1, -1);
- test(S("abcde"), 0, 0, SV("abcdefghijklmnopqrst"), 0, 10, -10);
- test(S("abcde"), 0, 0, SV("abcdefghijklmnopqrst"), 0, 19, -19);
- test(S("abcde"), 0, 0, SV("abcdefghijklmnopqrst"), 0, 20, -20);
- test(S("abcde"), 0, 0, SV("abcdefghijklmnopqrst"), 0, 21, -20);
- test(S("abcde"), 0, 0, SV("abcdefghijklmnopqrst"), 1, 0, 0);
- test(S("abcde"), 0, 0, SV("abcdefghijklmnopqrst"), 1, 1, -1);
- test(S("abcde"), 0, 0, SV("abcdefghijklmnopqrst"), 1, 9, -9);
- test(S("abcde"), 0, 0, SV("abcdefghijklmnopqrst"), 1, 18, -18);
- test(S("abcde"), 0, 0, SV("abcdefghijklmnopqrst"), 1, 19, -19);
- test(S("abcde"), 0, 0, SV("abcdefghijklmnopqrst"), 1, 20, -19);
- test(S("abcde"), 0, 0, SV("abcdefghijklmnopqrst"), 10, 0, 0);
- test(S("abcde"), 0, 0, SV("abcdefghijklmnopqrst"), 10, 1, -1);
- test(S("abcde"), 0, 0, SV("abcdefghijklmnopqrst"), 10, 5, -5);
- test(S("abcde"), 0, 0, SV("abcdefghijklmnopqrst"), 10, 9, -9);
- test(S("abcde"), 0, 0, SV("abcdefghijklmnopqrst"), 10, 10, -10);
- test(S("abcde"), 0, 0, SV("abcdefghijklmnopqrst"), 10, 11, -10);
- test(S("abcde"), 0, 0, SV("abcdefghijklmnopqrst"), 19, 0, 0);
- test(S("abcde"), 0, 0, SV("abcdefghijklmnopqrst"), 19, 1, -1);
- test(S("abcde"), 0, 0, SV("abcdefghijklmnopqrst"), 19, 2, -1);
- test(S("abcde"), 0, 0, SV("abcdefghijklmnopqrst"), 20, 0, 0);
- test(S("abcde"), 0, 0, SV("abcdefghijklmnopqrst"), 20, 1, 0);
- test(S("abcde"), 0, 0, SV("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcde"), 0, 1, SV(""), 0, 0, 1);
- test(S("abcde"), 0, 1, SV(""), 0, 1, 1);
- test(S("abcde"), 0, 1, SV(""), 1, 0, 0);
- test(S("abcde"), 0, 1, SV("abcde"), 0, 0, 1);
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test2() {
+ test(S(""), 1, 0, SV("abcdefghijklmnopqrst"), 0, 10, 0);
+ test(S(""), 1, 0, SV("abcdefghijklmnopqrst"), 0, 19, 0);
+ test(S(""), 1, 0, SV("abcdefghijklmnopqrst"), 0, 20, 0);
+ test(S(""), 1, 0, SV("abcdefghijklmnopqrst"), 0, 21, 0);
+ test(S(""), 1, 0, SV("abcdefghijklmnopqrst"), 1, 0, 0);
+ test(S(""), 1, 0, SV("abcdefghijklmnopqrst"), 1, 1, 0);
+ test(S(""), 1, 0, SV("abcdefghijklmnopqrst"), 1, 9, 0);
+ test(S(""), 1, 0, SV("abcdefghijklmnopqrst"), 1, 18, 0);
+ test(S(""), 1, 0, SV("abcdefghijklmnopqrst"), 1, 19, 0);
+ test(S(""), 1, 0, SV("abcdefghijklmnopqrst"), 1, 20, 0);
+ test(S(""), 1, 0, SV("abcdefghijklmnopqrst"), 10, 0, 0);
+ test(S(""), 1, 0, SV("abcdefghijklmnopqrst"), 10, 1, 0);
+ test(S(""), 1, 0, SV("abcdefghijklmnopqrst"), 10, 5, 0);
+ test(S(""), 1, 0, SV("abcdefghijklmnopqrst"), 10, 9, 0);
+ test(S(""), 1, 0, SV("abcdefghijklmnopqrst"), 10, 10, 0);
+ test(S(""), 1, 0, SV("abcdefghijklmnopqrst"), 10, 11, 0);
+ test(S(""), 1, 0, SV("abcdefghijklmnopqrst"), 19, 0, 0);
+ test(S(""), 1, 0, SV("abcdefghijklmnopqrst"), 19, 1, 0);
+ test(S(""), 1, 0, SV("abcdefghijklmnopqrst"), 19, 2, 0);
+ test(S(""), 1, 0, SV("abcdefghijklmnopqrst"), 20, 0, 0);
+ test(S(""), 1, 0, SV("abcdefghijklmnopqrst"), 20, 1, 0);
+ test(S(""), 1, 0, SV("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcde"), 0, 0, SV(""), 0, 0, 0);
+ test(S("abcde"), 0, 0, SV(""), 0, 1, 0);
+ test(S("abcde"), 0, 0, SV(""), 1, 0, 0);
+ test(S("abcde"), 0, 0, SV("abcde"), 0, 0, 0);
+ test(S("abcde"), 0, 0, SV("abcde"), 0, 1, -1);
+ test(S("abcde"), 0, 0, SV("abcde"), 0, 2, -2);
+ test(S("abcde"), 0, 0, SV("abcde"), 0, 4, -4);
+ test(S("abcde"), 0, 0, SV("abcde"), 0, 5, -5);
+ test(S("abcde"), 0, 0, SV("abcde"), 0, 6, -5);
+ test(S("abcde"), 0, 0, SV("abcde"), 1, 0, 0);
+ test(S("abcde"), 0, 0, SV("abcde"), 1, 1, -1);
+ test(S("abcde"), 0, 0, SV("abcde"), 1, 2, -2);
+ test(S("abcde"), 0, 0, SV("abcde"), 1, 3, -3);
+ test(S("abcde"), 0, 0, SV("abcde"), 1, 4, -4);
+ test(S("abcde"), 0, 0, SV("abcde"), 1, 5, -4);
+ test(S("abcde"), 0, 0, SV("abcde"), 2, 0, 0);
+ test(S("abcde"), 0, 0, SV("abcde"), 2, 1, -1);
+ test(S("abcde"), 0, 0, SV("abcde"), 2, 2, -2);
+ test(S("abcde"), 0, 0, SV("abcde"), 2, 3, -3);
+ test(S("abcde"), 0, 0, SV("abcde"), 2, 4, -3);
+ test(S("abcde"), 0, 0, SV("abcde"), 4, 0, 0);
+ test(S("abcde"), 0, 0, SV("abcde"), 4, 1, -1);
+ test(S("abcde"), 0, 0, SV("abcde"), 4, 2, -1);
+ test(S("abcde"), 0, 0, SV("abcde"), 5, 0, 0);
+ test(S("abcde"), 0, 0, SV("abcde"), 5, 1, 0);
+ test(S("abcde"), 0, 0, SV("abcde"), 6, 0, 0);
+ test(S("abcde"), 0, 0, SV("abcdefghij"), 0, 0, 0);
+ test(S("abcde"), 0, 0, SV("abcdefghij"), 0, 1, -1);
+ test(S("abcde"), 0, 0, SV("abcdefghij"), 0, 5, -5);
+ test(S("abcde"), 0, 0, SV("abcdefghij"), 0, 9, -9);
+ test(S("abcde"), 0, 0, SV("abcdefghij"), 0, 10, -10);
+ test(S("abcde"), 0, 0, SV("abcdefghij"), 0, 11, -10);
+ test(S("abcde"), 0, 0, SV("abcdefghij"), 1, 0, 0);
+ test(S("abcde"), 0, 0, SV("abcdefghij"), 1, 1, -1);
+ test(S("abcde"), 0, 0, SV("abcdefghij"), 1, 4, -4);
+ test(S("abcde"), 0, 0, SV("abcdefghij"), 1, 8, -8);
+ test(S("abcde"), 0, 0, SV("abcdefghij"), 1, 9, -9);
+ test(S("abcde"), 0, 0, SV("abcdefghij"), 1, 10, -9);
+ test(S("abcde"), 0, 0, SV("abcdefghij"), 5, 0, 0);
+ test(S("abcde"), 0, 0, SV("abcdefghij"), 5, 1, -1);
+ test(S("abcde"), 0, 0, SV("abcdefghij"), 5, 2, -2);
+ test(S("abcde"), 0, 0, SV("abcdefghij"), 5, 4, -4);
+ test(S("abcde"), 0, 0, SV("abcdefghij"), 5, 5, -5);
+ test(S("abcde"), 0, 0, SV("abcdefghij"), 5, 6, -5);
+ test(S("abcde"), 0, 0, SV("abcdefghij"), 9, 0, 0);
+ test(S("abcde"), 0, 0, SV("abcdefghij"), 9, 1, -1);
+ test(S("abcde"), 0, 0, SV("abcdefghij"), 9, 2, -1);
+ test(S("abcde"), 0, 0, SV("abcdefghij"), 10, 0, 0);
+ test(S("abcde"), 0, 0, SV("abcdefghij"), 10, 1, 0);
+ test(S("abcde"), 0, 0, SV("abcdefghij"), 11, 0, 0);
+ test(S("abcde"), 0, 0, SV("abcdefghijklmnopqrst"), 0, 0, 0);
+ test(S("abcde"), 0, 0, SV("abcdefghijklmnopqrst"), 0, 1, -1);
+ test(S("abcde"), 0, 0, SV("abcdefghijklmnopqrst"), 0, 10, -10);
+ test(S("abcde"), 0, 0, SV("abcdefghijklmnopqrst"), 0, 19, -19);
+ test(S("abcde"), 0, 0, SV("abcdefghijklmnopqrst"), 0, 20, -20);
+ test(S("abcde"), 0, 0, SV("abcdefghijklmnopqrst"), 0, 21, -20);
+ test(S("abcde"), 0, 0, SV("abcdefghijklmnopqrst"), 1, 0, 0);
+ test(S("abcde"), 0, 0, SV("abcdefghijklmnopqrst"), 1, 1, -1);
+ test(S("abcde"), 0, 0, SV("abcdefghijklmnopqrst"), 1, 9, -9);
+ test(S("abcde"), 0, 0, SV("abcdefghijklmnopqrst"), 1, 18, -18);
+ test(S("abcde"), 0, 0, SV("abcdefghijklmnopqrst"), 1, 19, -19);
+ test(S("abcde"), 0, 0, SV("abcdefghijklmnopqrst"), 1, 20, -19);
+ test(S("abcde"), 0, 0, SV("abcdefghijklmnopqrst"), 10, 0, 0);
+ test(S("abcde"), 0, 0, SV("abcdefghijklmnopqrst"), 10, 1, -1);
+ test(S("abcde"), 0, 0, SV("abcdefghijklmnopqrst"), 10, 5, -5);
+ test(S("abcde"), 0, 0, SV("abcdefghijklmnopqrst"), 10, 9, -9);
+ test(S("abcde"), 0, 0, SV("abcdefghijklmnopqrst"), 10, 10, -10);
+ test(S("abcde"), 0, 0, SV("abcdefghijklmnopqrst"), 10, 11, -10);
+ test(S("abcde"), 0, 0, SV("abcdefghijklmnopqrst"), 19, 0, 0);
+ test(S("abcde"), 0, 0, SV("abcdefghijklmnopqrst"), 19, 1, -1);
+ test(S("abcde"), 0, 0, SV("abcdefghijklmnopqrst"), 19, 2, -1);
+ test(S("abcde"), 0, 0, SV("abcdefghijklmnopqrst"), 20, 0, 0);
+ test(S("abcde"), 0, 0, SV("abcdefghijklmnopqrst"), 20, 1, 0);
+ test(S("abcde"), 0, 0, SV("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcde"), 0, 1, SV(""), 0, 0, 1);
+ test(S("abcde"), 0, 1, SV(""), 0, 1, 1);
+ test(S("abcde"), 0, 1, SV(""), 1, 0, 0);
+ test(S("abcde"), 0, 1, SV("abcde"), 0, 0, 1);
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test3()
-{
- test(S("abcde"), 0, 1, SV("abcde"), 0, 1, 0);
- test(S("abcde"), 0, 1, SV("abcde"), 0, 2, -1);
- test(S("abcde"), 0, 1, SV("abcde"), 0, 4, -3);
- test(S("abcde"), 0, 1, SV("abcde"), 0, 5, -4);
- test(S("abcde"), 0, 1, SV("abcde"), 0, 6, -4);
- test(S("abcde"), 0, 1, SV("abcde"), 1, 0, 1);
- test(S("abcde"), 0, 1, SV("abcde"), 1, 1, -1);
- test(S("abcde"), 0, 1, SV("abcde"), 1, 2, -1);
- test(S("abcde"), 0, 1, SV("abcde"), 1, 3, -1);
- test(S("abcde"), 0, 1, SV("abcde"), 1, 4, -1);
- test(S("abcde"), 0, 1, SV("abcde"), 1, 5, -1);
- test(S("abcde"), 0, 1, SV("abcde"), 2, 0, 1);
- test(S("abcde"), 0, 1, SV("abcde"), 2, 1, -2);
- test(S("abcde"), 0, 1, SV("abcde"), 2, 2, -2);
- test(S("abcde"), 0, 1, SV("abcde"), 2, 3, -2);
- test(S("abcde"), 0, 1, SV("abcde"), 2, 4, -2);
- test(S("abcde"), 0, 1, SV("abcde"), 4, 0, 1);
- test(S("abcde"), 0, 1, SV("abcde"), 4, 1, -4);
- test(S("abcde"), 0, 1, SV("abcde"), 4, 2, -4);
- test(S("abcde"), 0, 1, SV("abcde"), 5, 0, 1);
- test(S("abcde"), 0, 1, SV("abcde"), 5, 1, 1);
- test(S("abcde"), 0, 1, SV("abcde"), 6, 0, 0);
- test(S("abcde"), 0, 1, SV("abcdefghij"), 0, 0, 1);
- test(S("abcde"), 0, 1, SV("abcdefghij"), 0, 1, 0);
- test(S("abcde"), 0, 1, SV("abcdefghij"), 0, 5, -4);
- test(S("abcde"), 0, 1, SV("abcdefghij"), 0, 9, -8);
- test(S("abcde"), 0, 1, SV("abcdefghij"), 0, 10, -9);
- test(S("abcde"), 0, 1, SV("abcdefghij"), 0, 11, -9);
- test(S("abcde"), 0, 1, SV("abcdefghij"), 1, 0, 1);
- test(S("abcde"), 0, 1, SV("abcdefghij"), 1, 1, -1);
- test(S("abcde"), 0, 1, SV("abcdefghij"), 1, 4, -1);
- test(S("abcde"), 0, 1, SV("abcdefghij"), 1, 8, -1);
- test(S("abcde"), 0, 1, SV("abcdefghij"), 1, 9, -1);
- test(S("abcde"), 0, 1, SV("abcdefghij"), 1, 10, -1);
- test(S("abcde"), 0, 1, SV("abcdefghij"), 5, 0, 1);
- test(S("abcde"), 0, 1, SV("abcdefghij"), 5, 1, -5);
- test(S("abcde"), 0, 1, SV("abcdefghij"), 5, 2, -5);
- test(S("abcde"), 0, 1, SV("abcdefghij"), 5, 4, -5);
- test(S("abcde"), 0, 1, SV("abcdefghij"), 5, 5, -5);
- test(S("abcde"), 0, 1, SV("abcdefghij"), 5, 6, -5);
- test(S("abcde"), 0, 1, SV("abcdefghij"), 9, 0, 1);
- test(S("abcde"), 0, 1, SV("abcdefghij"), 9, 1, -9);
- test(S("abcde"), 0, 1, SV("abcdefghij"), 9, 2, -9);
- test(S("abcde"), 0, 1, SV("abcdefghij"), 10, 0, 1);
- test(S("abcde"), 0, 1, SV("abcdefghij"), 10, 1, 1);
- test(S("abcde"), 0, 1, SV("abcdefghij"), 11, 0, 0);
- test(S("abcde"), 0, 1, SV("abcdefghijklmnopqrst"), 0, 0, 1);
- test(S("abcde"), 0, 1, SV("abcdefghijklmnopqrst"), 0, 1, 0);
- test(S("abcde"), 0, 1, SV("abcdefghijklmnopqrst"), 0, 10, -9);
- test(S("abcde"), 0, 1, SV("abcdefghijklmnopqrst"), 0, 19, -18);
- test(S("abcde"), 0, 1, SV("abcdefghijklmnopqrst"), 0, 20, -19);
- test(S("abcde"), 0, 1, SV("abcdefghijklmnopqrst"), 0, 21, -19);
- test(S("abcde"), 0, 1, SV("abcdefghijklmnopqrst"), 1, 0, 1);
- test(S("abcde"), 0, 1, SV("abcdefghijklmnopqrst"), 1, 1, -1);
- test(S("abcde"), 0, 1, SV("abcdefghijklmnopqrst"), 1, 9, -1);
- test(S("abcde"), 0, 1, SV("abcdefghijklmnopqrst"), 1, 18, -1);
- test(S("abcde"), 0, 1, SV("abcdefghijklmnopqrst"), 1, 19, -1);
- test(S("abcde"), 0, 1, SV("abcdefghijklmnopqrst"), 1, 20, -1);
- test(S("abcde"), 0, 1, SV("abcdefghijklmnopqrst"), 10, 0, 1);
- test(S("abcde"), 0, 1, SV("abcdefghijklmnopqrst"), 10, 1, -10);
- test(S("abcde"), 0, 1, SV("abcdefghijklmnopqrst"), 10, 5, -10);
- test(S("abcde"), 0, 1, SV("abcdefghijklmnopqrst"), 10, 9, -10);
- test(S("abcde"), 0, 1, SV("abcdefghijklmnopqrst"), 10, 10, -10);
- test(S("abcde"), 0, 1, SV("abcdefghijklmnopqrst"), 10, 11, -10);
- test(S("abcde"), 0, 1, SV("abcdefghijklmnopqrst"), 19, 0, 1);
- test(S("abcde"), 0, 1, SV("abcdefghijklmnopqrst"), 19, 1, -19);
- test(S("abcde"), 0, 1, SV("abcdefghijklmnopqrst"), 19, 2, -19);
- test(S("abcde"), 0, 1, SV("abcdefghijklmnopqrst"), 20, 0, 1);
- test(S("abcde"), 0, 1, SV("abcdefghijklmnopqrst"), 20, 1, 1);
- test(S("abcde"), 0, 1, SV("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcde"), 0, 2, SV(""), 0, 0, 2);
- test(S("abcde"), 0, 2, SV(""), 0, 1, 2);
- test(S("abcde"), 0, 2, SV(""), 1, 0, 0);
- test(S("abcde"), 0, 2, SV("abcde"), 0, 0, 2);
- test(S("abcde"), 0, 2, SV("abcde"), 0, 1, 1);
- test(S("abcde"), 0, 2, SV("abcde"), 0, 2, 0);
- test(S("abcde"), 0, 2, SV("abcde"), 0, 4, -2);
- test(S("abcde"), 0, 2, SV("abcde"), 0, 5, -3);
- test(S("abcde"), 0, 2, SV("abcde"), 0, 6, -3);
- test(S("abcde"), 0, 2, SV("abcde"), 1, 0, 2);
- test(S("abcde"), 0, 2, SV("abcde"), 1, 1, -1);
- test(S("abcde"), 0, 2, SV("abcde"), 1, 2, -1);
- test(S("abcde"), 0, 2, SV("abcde"), 1, 3, -1);
- test(S("abcde"), 0, 2, SV("abcde"), 1, 4, -1);
- test(S("abcde"), 0, 2, SV("abcde"), 1, 5, -1);
- test(S("abcde"), 0, 2, SV("abcde"), 2, 0, 2);
- test(S("abcde"), 0, 2, SV("abcde"), 2, 1, -2);
- test(S("abcde"), 0, 2, SV("abcde"), 2, 2, -2);
- test(S("abcde"), 0, 2, SV("abcde"), 2, 3, -2);
- test(S("abcde"), 0, 2, SV("abcde"), 2, 4, -2);
- test(S("abcde"), 0, 2, SV("abcde"), 4, 0, 2);
- test(S("abcde"), 0, 2, SV("abcde"), 4, 1, -4);
- test(S("abcde"), 0, 2, SV("abcde"), 4, 2, -4);
- test(S("abcde"), 0, 2, SV("abcde"), 5, 0, 2);
- test(S("abcde"), 0, 2, SV("abcde"), 5, 1, 2);
- test(S("abcde"), 0, 2, SV("abcde"), 6, 0, 0);
- test(S("abcde"), 0, 2, SV("abcdefghij"), 0, 0, 2);
- test(S("abcde"), 0, 2, SV("abcdefghij"), 0, 1, 1);
- test(S("abcde"), 0, 2, SV("abcdefghij"), 0, 5, -3);
- test(S("abcde"), 0, 2, SV("abcdefghij"), 0, 9, -7);
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test3() {
+ test(S("abcde"), 0, 1, SV("abcde"), 0, 1, 0);
+ test(S("abcde"), 0, 1, SV("abcde"), 0, 2, -1);
+ test(S("abcde"), 0, 1, SV("abcde"), 0, 4, -3);
+ test(S("abcde"), 0, 1, SV("abcde"), 0, 5, -4);
+ test(S("abcde"), 0, 1, SV("abcde"), 0, 6, -4);
+ test(S("abcde"), 0, 1, SV("abcde"), 1, 0, 1);
+ test(S("abcde"), 0, 1, SV("abcde"), 1, 1, -1);
+ test(S("abcde"), 0, 1, SV("abcde"), 1, 2, -1);
+ test(S("abcde"), 0, 1, SV("abcde"), 1, 3, -1);
+ test(S("abcde"), 0, 1, SV("abcde"), 1, 4, -1);
+ test(S("abcde"), 0, 1, SV("abcde"), 1, 5, -1);
+ test(S("abcde"), 0, 1, SV("abcde"), 2, 0, 1);
+ test(S("abcde"), 0, 1, SV("abcde"), 2, 1, -2);
+ test(S("abcde"), 0, 1, SV("abcde"), 2, 2, -2);
+ test(S("abcde"), 0, 1, SV("abcde"), 2, 3, -2);
+ test(S("abcde"), 0, 1, SV("abcde"), 2, 4, -2);
+ test(S("abcde"), 0, 1, SV("abcde"), 4, 0, 1);
+ test(S("abcde"), 0, 1, SV("abcde"), 4, 1, -4);
+ test(S("abcde"), 0, 1, SV("abcde"), 4, 2, -4);
+ test(S("abcde"), 0, 1, SV("abcde"), 5, 0, 1);
+ test(S("abcde"), 0, 1, SV("abcde"), 5, 1, 1);
+ test(S("abcde"), 0, 1, SV("abcde"), 6, 0, 0);
+ test(S("abcde"), 0, 1, SV("abcdefghij"), 0, 0, 1);
+ test(S("abcde"), 0, 1, SV("abcdefghij"), 0, 1, 0);
+ test(S("abcde"), 0, 1, SV("abcdefghij"), 0, 5, -4);
+ test(S("abcde"), 0, 1, SV("abcdefghij"), 0, 9, -8);
+ test(S("abcde"), 0, 1, SV("abcdefghij"), 0, 10, -9);
+ test(S("abcde"), 0, 1, SV("abcdefghij"), 0, 11, -9);
+ test(S("abcde"), 0, 1, SV("abcdefghij"), 1, 0, 1);
+ test(S("abcde"), 0, 1, SV("abcdefghij"), 1, 1, -1);
+ test(S("abcde"), 0, 1, SV("abcdefghij"), 1, 4, -1);
+ test(S("abcde"), 0, 1, SV("abcdefghij"), 1, 8, -1);
+ test(S("abcde"), 0, 1, SV("abcdefghij"), 1, 9, -1);
+ test(S("abcde"), 0, 1, SV("abcdefghij"), 1, 10, -1);
+ test(S("abcde"), 0, 1, SV("abcdefghij"), 5, 0, 1);
+ test(S("abcde"), 0, 1, SV("abcdefghij"), 5, 1, -5);
+ test(S("abcde"), 0, 1, SV("abcdefghij"), 5, 2, -5);
+ test(S("abcde"), 0, 1, SV("abcdefghij"), 5, 4, -5);
+ test(S("abcde"), 0, 1, SV("abcdefghij"), 5, 5, -5);
+ test(S("abcde"), 0, 1, SV("abcdefghij"), 5, 6, -5);
+ test(S("abcde"), 0, 1, SV("abcdefghij"), 9, 0, 1);
+ test(S("abcde"), 0, 1, SV("abcdefghij"), 9, 1, -9);
+ test(S("abcde"), 0, 1, SV("abcdefghij"), 9, 2, -9);
+ test(S("abcde"), 0, 1, SV("abcdefghij"), 10, 0, 1);
+ test(S("abcde"), 0, 1, SV("abcdefghij"), 10, 1, 1);
+ test(S("abcde"), 0, 1, SV("abcdefghij"), 11, 0, 0);
+ test(S("abcde"), 0, 1, SV("abcdefghijklmnopqrst"), 0, 0, 1);
+ test(S("abcde"), 0, 1, SV("abcdefghijklmnopqrst"), 0, 1, 0);
+ test(S("abcde"), 0, 1, SV("abcdefghijklmnopqrst"), 0, 10, -9);
+ test(S("abcde"), 0, 1, SV("abcdefghijklmnopqrst"), 0, 19, -18);
+ test(S("abcde"), 0, 1, SV("abcdefghijklmnopqrst"), 0, 20, -19);
+ test(S("abcde"), 0, 1, SV("abcdefghijklmnopqrst"), 0, 21, -19);
+ test(S("abcde"), 0, 1, SV("abcdefghijklmnopqrst"), 1, 0, 1);
+ test(S("abcde"), 0, 1, SV("abcdefghijklmnopqrst"), 1, 1, -1);
+ test(S("abcde"), 0, 1, SV("abcdefghijklmnopqrst"), 1, 9, -1);
+ test(S("abcde"), 0, 1, SV("abcdefghijklmnopqrst"), 1, 18, -1);
+ test(S("abcde"), 0, 1, SV("abcdefghijklmnopqrst"), 1, 19, -1);
+ test(S("abcde"), 0, 1, SV("abcdefghijklmnopqrst"), 1, 20, -1);
+ test(S("abcde"), 0, 1, SV("abcdefghijklmnopqrst"), 10, 0, 1);
+ test(S("abcde"), 0, 1, SV("abcdefghijklmnopqrst"), 10, 1, -10);
+ test(S("abcde"), 0, 1, SV("abcdefghijklmnopqrst"), 10, 5, -10);
+ test(S("abcde"), 0, 1, SV("abcdefghijklmnopqrst"), 10, 9, -10);
+ test(S("abcde"), 0, 1, SV("abcdefghijklmnopqrst"), 10, 10, -10);
+ test(S("abcde"), 0, 1, SV("abcdefghijklmnopqrst"), 10, 11, -10);
+ test(S("abcde"), 0, 1, SV("abcdefghijklmnopqrst"), 19, 0, 1);
+ test(S("abcde"), 0, 1, SV("abcdefghijklmnopqrst"), 19, 1, -19);
+ test(S("abcde"), 0, 1, SV("abcdefghijklmnopqrst"), 19, 2, -19);
+ test(S("abcde"), 0, 1, SV("abcdefghijklmnopqrst"), 20, 0, 1);
+ test(S("abcde"), 0, 1, SV("abcdefghijklmnopqrst"), 20, 1, 1);
+ test(S("abcde"), 0, 1, SV("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcde"), 0, 2, SV(""), 0, 0, 2);
+ test(S("abcde"), 0, 2, SV(""), 0, 1, 2);
+ test(S("abcde"), 0, 2, SV(""), 1, 0, 0);
+ test(S("abcde"), 0, 2, SV("abcde"), 0, 0, 2);
+ test(S("abcde"), 0, 2, SV("abcde"), 0, 1, 1);
+ test(S("abcde"), 0, 2, SV("abcde"), 0, 2, 0);
+ test(S("abcde"), 0, 2, SV("abcde"), 0, 4, -2);
+ test(S("abcde"), 0, 2, SV("abcde"), 0, 5, -3);
+ test(S("abcde"), 0, 2, SV("abcde"), 0, 6, -3);
+ test(S("abcde"), 0, 2, SV("abcde"), 1, 0, 2);
+ test(S("abcde"), 0, 2, SV("abcde"), 1, 1, -1);
+ test(S("abcde"), 0, 2, SV("abcde"), 1, 2, -1);
+ test(S("abcde"), 0, 2, SV("abcde"), 1, 3, -1);
+ test(S("abcde"), 0, 2, SV("abcde"), 1, 4, -1);
+ test(S("abcde"), 0, 2, SV("abcde"), 1, 5, -1);
+ test(S("abcde"), 0, 2, SV("abcde"), 2, 0, 2);
+ test(S("abcde"), 0, 2, SV("abcde"), 2, 1, -2);
+ test(S("abcde"), 0, 2, SV("abcde"), 2, 2, -2);
+ test(S("abcde"), 0, 2, SV("abcde"), 2, 3, -2);
+ test(S("abcde"), 0, 2, SV("abcde"), 2, 4, -2);
+ test(S("abcde"), 0, 2, SV("abcde"), 4, 0, 2);
+ test(S("abcde"), 0, 2, SV("abcde"), 4, 1, -4);
+ test(S("abcde"), 0, 2, SV("abcde"), 4, 2, -4);
+ test(S("abcde"), 0, 2, SV("abcde"), 5, 0, 2);
+ test(S("abcde"), 0, 2, SV("abcde"), 5, 1, 2);
+ test(S("abcde"), 0, 2, SV("abcde"), 6, 0, 0);
+ test(S("abcde"), 0, 2, SV("abcdefghij"), 0, 0, 2);
+ test(S("abcde"), 0, 2, SV("abcdefghij"), 0, 1, 1);
+ test(S("abcde"), 0, 2, SV("abcdefghij"), 0, 5, -3);
+ test(S("abcde"), 0, 2, SV("abcdefghij"), 0, 9, -7);
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test4()
-{
- test(S("abcde"), 0, 2, SV("abcdefghij"), 0, 10, -8);
- test(S("abcde"), 0, 2, SV("abcdefghij"), 0, 11, -8);
- test(S("abcde"), 0, 2, SV("abcdefghij"), 1, 0, 2);
- test(S("abcde"), 0, 2, SV("abcdefghij"), 1, 1, -1);
- test(S("abcde"), 0, 2, SV("abcdefghij"), 1, 4, -1);
- test(S("abcde"), 0, 2, SV("abcdefghij"), 1, 8, -1);
- test(S("abcde"), 0, 2, SV("abcdefghij"), 1, 9, -1);
- test(S("abcde"), 0, 2, SV("abcdefghij"), 1, 10, -1);
- test(S("abcde"), 0, 2, SV("abcdefghij"), 5, 0, 2);
- test(S("abcde"), 0, 2, SV("abcdefghij"), 5, 1, -5);
- test(S("abcde"), 0, 2, SV("abcdefghij"), 5, 2, -5);
- test(S("abcde"), 0, 2, SV("abcdefghij"), 5, 4, -5);
- test(S("abcde"), 0, 2, SV("abcdefghij"), 5, 5, -5);
- test(S("abcde"), 0, 2, SV("abcdefghij"), 5, 6, -5);
- test(S("abcde"), 0, 2, SV("abcdefghij"), 9, 0, 2);
- test(S("abcde"), 0, 2, SV("abcdefghij"), 9, 1, -9);
- test(S("abcde"), 0, 2, SV("abcdefghij"), 9, 2, -9);
- test(S("abcde"), 0, 2, SV("abcdefghij"), 10, 0, 2);
- test(S("abcde"), 0, 2, SV("abcdefghij"), 10, 1, 2);
- test(S("abcde"), 0, 2, SV("abcdefghij"), 11, 0, 0);
- test(S("abcde"), 0, 2, SV("abcdefghijklmnopqrst"), 0, 0, 2);
- test(S("abcde"), 0, 2, SV("abcdefghijklmnopqrst"), 0, 1, 1);
- test(S("abcde"), 0, 2, SV("abcdefghijklmnopqrst"), 0, 10, -8);
- test(S("abcde"), 0, 2, SV("abcdefghijklmnopqrst"), 0, 19, -17);
- test(S("abcde"), 0, 2, SV("abcdefghijklmnopqrst"), 0, 20, -18);
- test(S("abcde"), 0, 2, SV("abcdefghijklmnopqrst"), 0, 21, -18);
- test(S("abcde"), 0, 2, SV("abcdefghijklmnopqrst"), 1, 0, 2);
- test(S("abcde"), 0, 2, SV("abcdefghijklmnopqrst"), 1, 1, -1);
- test(S("abcde"), 0, 2, SV("abcdefghijklmnopqrst"), 1, 9, -1);
- test(S("abcde"), 0, 2, SV("abcdefghijklmnopqrst"), 1, 18, -1);
- test(S("abcde"), 0, 2, SV("abcdefghijklmnopqrst"), 1, 19, -1);
- test(S("abcde"), 0, 2, SV("abcdefghijklmnopqrst"), 1, 20, -1);
- test(S("abcde"), 0, 2, SV("abcdefghijklmnopqrst"), 10, 0, 2);
- test(S("abcde"), 0, 2, SV("abcdefghijklmnopqrst"), 10, 1, -10);
- test(S("abcde"), 0, 2, SV("abcdefghijklmnopqrst"), 10, 5, -10);
- test(S("abcde"), 0, 2, SV("abcdefghijklmnopqrst"), 10, 9, -10);
- test(S("abcde"), 0, 2, SV("abcdefghijklmnopqrst"), 10, 10, -10);
- test(S("abcde"), 0, 2, SV("abcdefghijklmnopqrst"), 10, 11, -10);
- test(S("abcde"), 0, 2, SV("abcdefghijklmnopqrst"), 19, 0, 2);
- test(S("abcde"), 0, 2, SV("abcdefghijklmnopqrst"), 19, 1, -19);
- test(S("abcde"), 0, 2, SV("abcdefghijklmnopqrst"), 19, 2, -19);
- test(S("abcde"), 0, 2, SV("abcdefghijklmnopqrst"), 20, 0, 2);
- test(S("abcde"), 0, 2, SV("abcdefghijklmnopqrst"), 20, 1, 2);
- test(S("abcde"), 0, 2, SV("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcde"), 0, 4, SV(""), 0, 0, 4);
- test(S("abcde"), 0, 4, SV(""), 0, 1, 4);
- test(S("abcde"), 0, 4, SV(""), 1, 0, 0);
- test(S("abcde"), 0, 4, SV("abcde"), 0, 0, 4);
- test(S("abcde"), 0, 4, SV("abcde"), 0, 1, 3);
- test(S("abcde"), 0, 4, SV("abcde"), 0, 2, 2);
- test(S("abcde"), 0, 4, SV("abcde"), 0, 4, 0);
- test(S("abcde"), 0, 4, SV("abcde"), 0, 5, -1);
- test(S("abcde"), 0, 4, SV("abcde"), 0, 6, -1);
- test(S("abcde"), 0, 4, SV("abcde"), 1, 0, 4);
- test(S("abcde"), 0, 4, SV("abcde"), 1, 1, -1);
- test(S("abcde"), 0, 4, SV("abcde"), 1, 2, -1);
- test(S("abcde"), 0, 4, SV("abcde"), 1, 3, -1);
- test(S("abcde"), 0, 4, SV("abcde"), 1, 4, -1);
- test(S("abcde"), 0, 4, SV("abcde"), 1, 5, -1);
- test(S("abcde"), 0, 4, SV("abcde"), 2, 0, 4);
- test(S("abcde"), 0, 4, SV("abcde"), 2, 1, -2);
- test(S("abcde"), 0, 4, SV("abcde"), 2, 2, -2);
- test(S("abcde"), 0, 4, SV("abcde"), 2, 3, -2);
- test(S("abcde"), 0, 4, SV("abcde"), 2, 4, -2);
- test(S("abcde"), 0, 4, SV("abcde"), 4, 0, 4);
- test(S("abcde"), 0, 4, SV("abcde"), 4, 1, -4);
- test(S("abcde"), 0, 4, SV("abcde"), 4, 2, -4);
- test(S("abcde"), 0, 4, SV("abcde"), 5, 0, 4);
- test(S("abcde"), 0, 4, SV("abcde"), 5, 1, 4);
- test(S("abcde"), 0, 4, SV("abcde"), 6, 0, 0);
- test(S("abcde"), 0, 4, SV("abcdefghij"), 0, 0, 4);
- test(S("abcde"), 0, 4, SV("abcdefghij"), 0, 1, 3);
- test(S("abcde"), 0, 4, SV("abcdefghij"), 0, 5, -1);
- test(S("abcde"), 0, 4, SV("abcdefghij"), 0, 9, -5);
- test(S("abcde"), 0, 4, SV("abcdefghij"), 0, 10, -6);
- test(S("abcde"), 0, 4, SV("abcdefghij"), 0, 11, -6);
- test(S("abcde"), 0, 4, SV("abcdefghij"), 1, 0, 4);
- test(S("abcde"), 0, 4, SV("abcdefghij"), 1, 1, -1);
- test(S("abcde"), 0, 4, SV("abcdefghij"), 1, 4, -1);
- test(S("abcde"), 0, 4, SV("abcdefghij"), 1, 8, -1);
- test(S("abcde"), 0, 4, SV("abcdefghij"), 1, 9, -1);
- test(S("abcde"), 0, 4, SV("abcdefghij"), 1, 10, -1);
- test(S("abcde"), 0, 4, SV("abcdefghij"), 5, 0, 4);
- test(S("abcde"), 0, 4, SV("abcdefghij"), 5, 1, -5);
- test(S("abcde"), 0, 4, SV("abcdefghij"), 5, 2, -5);
- test(S("abcde"), 0, 4, SV("abcdefghij"), 5, 4, -5);
- test(S("abcde"), 0, 4, SV("abcdefghij"), 5, 5, -5);
- test(S("abcde"), 0, 4, SV("abcdefghij"), 5, 6, -5);
- test(S("abcde"), 0, 4, SV("abcdefghij"), 9, 0, 4);
- test(S("abcde"), 0, 4, SV("abcdefghij"), 9, 1, -9);
- test(S("abcde"), 0, 4, SV("abcdefghij"), 9, 2, -9);
- test(S("abcde"), 0, 4, SV("abcdefghij"), 10, 0, 4);
- test(S("abcde"), 0, 4, SV("abcdefghij"), 10, 1, 4);
- test(S("abcde"), 0, 4, SV("abcdefghij"), 11, 0, 0);
- test(S("abcde"), 0, 4, SV("abcdefghijklmnopqrst"), 0, 0, 4);
- test(S("abcde"), 0, 4, SV("abcdefghijklmnopqrst"), 0, 1, 3);
- test(S("abcde"), 0, 4, SV("abcdefghijklmnopqrst"), 0, 10, -6);
- test(S("abcde"), 0, 4, SV("abcdefghijklmnopqrst"), 0, 19, -15);
- test(S("abcde"), 0, 4, SV("abcdefghijklmnopqrst"), 0, 20, -16);
- test(S("abcde"), 0, 4, SV("abcdefghijklmnopqrst"), 0, 21, -16);
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test4() {
+ test(S("abcde"), 0, 2, SV("abcdefghij"), 0, 10, -8);
+ test(S("abcde"), 0, 2, SV("abcdefghij"), 0, 11, -8);
+ test(S("abcde"), 0, 2, SV("abcdefghij"), 1, 0, 2);
+ test(S("abcde"), 0, 2, SV("abcdefghij"), 1, 1, -1);
+ test(S("abcde"), 0, 2, SV("abcdefghij"), 1, 4, -1);
+ test(S("abcde"), 0, 2, SV("abcdefghij"), 1, 8, -1);
+ test(S("abcde"), 0, 2, SV("abcdefghij"), 1, 9, -1);
+ test(S("abcde"), 0, 2, SV("abcdefghij"), 1, 10, -1);
+ test(S("abcde"), 0, 2, SV("abcdefghij"), 5, 0, 2);
+ test(S("abcde"), 0, 2, SV("abcdefghij"), 5, 1, -5);
+ test(S("abcde"), 0, 2, SV("abcdefghij"), 5, 2, -5);
+ test(S("abcde"), 0, 2, SV("abcdefghij"), 5, 4, -5);
+ test(S("abcde"), 0, 2, SV("abcdefghij"), 5, 5, -5);
+ test(S("abcde"), 0, 2, SV("abcdefghij"), 5, 6, -5);
+ test(S("abcde"), 0, 2, SV("abcdefghij"), 9, 0, 2);
+ test(S("abcde"), 0, 2, SV("abcdefghij"), 9, 1, -9);
+ test(S("abcde"), 0, 2, SV("abcdefghij"), 9, 2, -9);
+ test(S("abcde"), 0, 2, SV("abcdefghij"), 10, 0, 2);
+ test(S("abcde"), 0, 2, SV("abcdefghij"), 10, 1, 2);
+ test(S("abcde"), 0, 2, SV("abcdefghij"), 11, 0, 0);
+ test(S("abcde"), 0, 2, SV("abcdefghijklmnopqrst"), 0, 0, 2);
+ test(S("abcde"), 0, 2, SV("abcdefghijklmnopqrst"), 0, 1, 1);
+ test(S("abcde"), 0, 2, SV("abcdefghijklmnopqrst"), 0, 10, -8);
+ test(S("abcde"), 0, 2, SV("abcdefghijklmnopqrst"), 0, 19, -17);
+ test(S("abcde"), 0, 2, SV("abcdefghijklmnopqrst"), 0, 20, -18);
+ test(S("abcde"), 0, 2, SV("abcdefghijklmnopqrst"), 0, 21, -18);
+ test(S("abcde"), 0, 2, SV("abcdefghijklmnopqrst"), 1, 0, 2);
+ test(S("abcde"), 0, 2, SV("abcdefghijklmnopqrst"), 1, 1, -1);
+ test(S("abcde"), 0, 2, SV("abcdefghijklmnopqrst"), 1, 9, -1);
+ test(S("abcde"), 0, 2, SV("abcdefghijklmnopqrst"), 1, 18, -1);
+ test(S("abcde"), 0, 2, SV("abcdefghijklmnopqrst"), 1, 19, -1);
+ test(S("abcde"), 0, 2, SV("abcdefghijklmnopqrst"), 1, 20, -1);
+ test(S("abcde"), 0, 2, SV("abcdefghijklmnopqrst"), 10, 0, 2);
+ test(S("abcde"), 0, 2, SV("abcdefghijklmnopqrst"), 10, 1, -10);
+ test(S("abcde"), 0, 2, SV("abcdefghijklmnopqrst"), 10, 5, -10);
+ test(S("abcde"), 0, 2, SV("abcdefghijklmnopqrst"), 10, 9, -10);
+ test(S("abcde"), 0, 2, SV("abcdefghijklmnopqrst"), 10, 10, -10);
+ test(S("abcde"), 0, 2, SV("abcdefghijklmnopqrst"), 10, 11, -10);
+ test(S("abcde"), 0, 2, SV("abcdefghijklmnopqrst"), 19, 0, 2);
+ test(S("abcde"), 0, 2, SV("abcdefghijklmnopqrst"), 19, 1, -19);
+ test(S("abcde"), 0, 2, SV("abcdefghijklmnopqrst"), 19, 2, -19);
+ test(S("abcde"), 0, 2, SV("abcdefghijklmnopqrst"), 20, 0, 2);
+ test(S("abcde"), 0, 2, SV("abcdefghijklmnopqrst"), 20, 1, 2);
+ test(S("abcde"), 0, 2, SV("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcde"), 0, 4, SV(""), 0, 0, 4);
+ test(S("abcde"), 0, 4, SV(""), 0, 1, 4);
+ test(S("abcde"), 0, 4, SV(""), 1, 0, 0);
+ test(S("abcde"), 0, 4, SV("abcde"), 0, 0, 4);
+ test(S("abcde"), 0, 4, SV("abcde"), 0, 1, 3);
+ test(S("abcde"), 0, 4, SV("abcde"), 0, 2, 2);
+ test(S("abcde"), 0, 4, SV("abcde"), 0, 4, 0);
+ test(S("abcde"), 0, 4, SV("abcde"), 0, 5, -1);
+ test(S("abcde"), 0, 4, SV("abcde"), 0, 6, -1);
+ test(S("abcde"), 0, 4, SV("abcde"), 1, 0, 4);
+ test(S("abcde"), 0, 4, SV("abcde"), 1, 1, -1);
+ test(S("abcde"), 0, 4, SV("abcde"), 1, 2, -1);
+ test(S("abcde"), 0, 4, SV("abcde"), 1, 3, -1);
+ test(S("abcde"), 0, 4, SV("abcde"), 1, 4, -1);
+ test(S("abcde"), 0, 4, SV("abcde"), 1, 5, -1);
+ test(S("abcde"), 0, 4, SV("abcde"), 2, 0, 4);
+ test(S("abcde"), 0, 4, SV("abcde"), 2, 1, -2);
+ test(S("abcde"), 0, 4, SV("abcde"), 2, 2, -2);
+ test(S("abcde"), 0, 4, SV("abcde"), 2, 3, -2);
+ test(S("abcde"), 0, 4, SV("abcde"), 2, 4, -2);
+ test(S("abcde"), 0, 4, SV("abcde"), 4, 0, 4);
+ test(S("abcde"), 0, 4, SV("abcde"), 4, 1, -4);
+ test(S("abcde"), 0, 4, SV("abcde"), 4, 2, -4);
+ test(S("abcde"), 0, 4, SV("abcde"), 5, 0, 4);
+ test(S("abcde"), 0, 4, SV("abcde"), 5, 1, 4);
+ test(S("abcde"), 0, 4, SV("abcde"), 6, 0, 0);
+ test(S("abcde"), 0, 4, SV("abcdefghij"), 0, 0, 4);
+ test(S("abcde"), 0, 4, SV("abcdefghij"), 0, 1, 3);
+ test(S("abcde"), 0, 4, SV("abcdefghij"), 0, 5, -1);
+ test(S("abcde"), 0, 4, SV("abcdefghij"), 0, 9, -5);
+ test(S("abcde"), 0, 4, SV("abcdefghij"), 0, 10, -6);
+ test(S("abcde"), 0, 4, SV("abcdefghij"), 0, 11, -6);
+ test(S("abcde"), 0, 4, SV("abcdefghij"), 1, 0, 4);
+ test(S("abcde"), 0, 4, SV("abcdefghij"), 1, 1, -1);
+ test(S("abcde"), 0, 4, SV("abcdefghij"), 1, 4, -1);
+ test(S("abcde"), 0, 4, SV("abcdefghij"), 1, 8, -1);
+ test(S("abcde"), 0, 4, SV("abcdefghij"), 1, 9, -1);
+ test(S("abcde"), 0, 4, SV("abcdefghij"), 1, 10, -1);
+ test(S("abcde"), 0, 4, SV("abcdefghij"), 5, 0, 4);
+ test(S("abcde"), 0, 4, SV("abcdefghij"), 5, 1, -5);
+ test(S("abcde"), 0, 4, SV("abcdefghij"), 5, 2, -5);
+ test(S("abcde"), 0, 4, SV("abcdefghij"), 5, 4, -5);
+ test(S("abcde"), 0, 4, SV("abcdefghij"), 5, 5, -5);
+ test(S("abcde"), 0, 4, SV("abcdefghij"), 5, 6, -5);
+ test(S("abcde"), 0, 4, SV("abcdefghij"), 9, 0, 4);
+ test(S("abcde"), 0, 4, SV("abcdefghij"), 9, 1, -9);
+ test(S("abcde"), 0, 4, SV("abcdefghij"), 9, 2, -9);
+ test(S("abcde"), 0, 4, SV("abcdefghij"), 10, 0, 4);
+ test(S("abcde"), 0, 4, SV("abcdefghij"), 10, 1, 4);
+ test(S("abcde"), 0, 4, SV("abcdefghij"), 11, 0, 0);
+ test(S("abcde"), 0, 4, SV("abcdefghijklmnopqrst"), 0, 0, 4);
+ test(S("abcde"), 0, 4, SV("abcdefghijklmnopqrst"), 0, 1, 3);
+ test(S("abcde"), 0, 4, SV("abcdefghijklmnopqrst"), 0, 10, -6);
+ test(S("abcde"), 0, 4, SV("abcdefghijklmnopqrst"), 0, 19, -15);
+ test(S("abcde"), 0, 4, SV("abcdefghijklmnopqrst"), 0, 20, -16);
+ test(S("abcde"), 0, 4, SV("abcdefghijklmnopqrst"), 0, 21, -16);
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test5()
-{
- test(S("abcde"), 0, 4, SV("abcdefghijklmnopqrst"), 1, 0, 4);
- test(S("abcde"), 0, 4, SV("abcdefghijklmnopqrst"), 1, 1, -1);
- test(S("abcde"), 0, 4, SV("abcdefghijklmnopqrst"), 1, 9, -1);
- test(S("abcde"), 0, 4, SV("abcdefghijklmnopqrst"), 1, 18, -1);
- test(S("abcde"), 0, 4, SV("abcdefghijklmnopqrst"), 1, 19, -1);
- test(S("abcde"), 0, 4, SV("abcdefghijklmnopqrst"), 1, 20, -1);
- test(S("abcde"), 0, 4, SV("abcdefghijklmnopqrst"), 10, 0, 4);
- test(S("abcde"), 0, 4, SV("abcdefghijklmnopqrst"), 10, 1, -10);
- test(S("abcde"), 0, 4, SV("abcdefghijklmnopqrst"), 10, 5, -10);
- test(S("abcde"), 0, 4, SV("abcdefghijklmnopqrst"), 10, 9, -10);
- test(S("abcde"), 0, 4, SV("abcdefghijklmnopqrst"), 10, 10, -10);
- test(S("abcde"), 0, 4, SV("abcdefghijklmnopqrst"), 10, 11, -10);
- test(S("abcde"), 0, 4, SV("abcdefghijklmnopqrst"), 19, 0, 4);
- test(S("abcde"), 0, 4, SV("abcdefghijklmnopqrst"), 19, 1, -19);
- test(S("abcde"), 0, 4, SV("abcdefghijklmnopqrst"), 19, 2, -19);
- test(S("abcde"), 0, 4, SV("abcdefghijklmnopqrst"), 20, 0, 4);
- test(S("abcde"), 0, 4, SV("abcdefghijklmnopqrst"), 20, 1, 4);
- test(S("abcde"), 0, 4, SV("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcde"), 0, 5, SV(""), 0, 0, 5);
- test(S("abcde"), 0, 5, SV(""), 0, 1, 5);
- test(S("abcde"), 0, 5, SV(""), 1, 0, 0);
- test(S("abcde"), 0, 5, SV("abcde"), 0, 0, 5);
- test(S("abcde"), 0, 5, SV("abcde"), 0, 1, 4);
- test(S("abcde"), 0, 5, SV("abcde"), 0, 2, 3);
- test(S("abcde"), 0, 5, SV("abcde"), 0, 4, 1);
- test(S("abcde"), 0, 5, SV("abcde"), 0, 5, 0);
- test(S("abcde"), 0, 5, SV("abcde"), 0, 6, 0);
- test(S("abcde"), 0, 5, SV("abcde"), 1, 0, 5);
- test(S("abcde"), 0, 5, SV("abcde"), 1, 1, -1);
- test(S("abcde"), 0, 5, SV("abcde"), 1, 2, -1);
- test(S("abcde"), 0, 5, SV("abcde"), 1, 3, -1);
- test(S("abcde"), 0, 5, SV("abcde"), 1, 4, -1);
- test(S("abcde"), 0, 5, SV("abcde"), 1, 5, -1);
- test(S("abcde"), 0, 5, SV("abcde"), 2, 0, 5);
- test(S("abcde"), 0, 5, SV("abcde"), 2, 1, -2);
- test(S("abcde"), 0, 5, SV("abcde"), 2, 2, -2);
- test(S("abcde"), 0, 5, SV("abcde"), 2, 3, -2);
- test(S("abcde"), 0, 5, SV("abcde"), 2, 4, -2);
- test(S("abcde"), 0, 5, SV("abcde"), 4, 0, 5);
- test(S("abcde"), 0, 5, SV("abcde"), 4, 1, -4);
- test(S("abcde"), 0, 5, SV("abcde"), 4, 2, -4);
- test(S("abcde"), 0, 5, SV("abcde"), 5, 0, 5);
- test(S("abcde"), 0, 5, SV("abcde"), 5, 1, 5);
- test(S("abcde"), 0, 5, SV("abcde"), 6, 0, 0);
- test(S("abcde"), 0, 5, SV("abcdefghij"), 0, 0, 5);
- test(S("abcde"), 0, 5, SV("abcdefghij"), 0, 1, 4);
- test(S("abcde"), 0, 5, SV("abcdefghij"), 0, 5, 0);
- test(S("abcde"), 0, 5, SV("abcdefghij"), 0, 9, -4);
- test(S("abcde"), 0, 5, SV("abcdefghij"), 0, 10, -5);
- test(S("abcde"), 0, 5, SV("abcdefghij"), 0, 11, -5);
- test(S("abcde"), 0, 5, SV("abcdefghij"), 1, 0, 5);
- test(S("abcde"), 0, 5, SV("abcdefghij"), 1, 1, -1);
- test(S("abcde"), 0, 5, SV("abcdefghij"), 1, 4, -1);
- test(S("abcde"), 0, 5, SV("abcdefghij"), 1, 8, -1);
- test(S("abcde"), 0, 5, SV("abcdefghij"), 1, 9, -1);
- test(S("abcde"), 0, 5, SV("abcdefghij"), 1, 10, -1);
- test(S("abcde"), 0, 5, SV("abcdefghij"), 5, 0, 5);
- test(S("abcde"), 0, 5, SV("abcdefghij"), 5, 1, -5);
- test(S("abcde"), 0, 5, SV("abcdefghij"), 5, 2, -5);
- test(S("abcde"), 0, 5, SV("abcdefghij"), 5, 4, -5);
- test(S("abcde"), 0, 5, SV("abcdefghij"), 5, 5, -5);
- test(S("abcde"), 0, 5, SV("abcdefghij"), 5, 6, -5);
- test(S("abcde"), 0, 5, SV("abcdefghij"), 9, 0, 5);
- test(S("abcde"), 0, 5, SV("abcdefghij"), 9, 1, -9);
- test(S("abcde"), 0, 5, SV("abcdefghij"), 9, 2, -9);
- test(S("abcde"), 0, 5, SV("abcdefghij"), 10, 0, 5);
- test(S("abcde"), 0, 5, SV("abcdefghij"), 10, 1, 5);
- test(S("abcde"), 0, 5, SV("abcdefghij"), 11, 0, 0);
- test(S("abcde"), 0, 5, SV("abcdefghijklmnopqrst"), 0, 0, 5);
- test(S("abcde"), 0, 5, SV("abcdefghijklmnopqrst"), 0, 1, 4);
- test(S("abcde"), 0, 5, SV("abcdefghijklmnopqrst"), 0, 10, -5);
- test(S("abcde"), 0, 5, SV("abcdefghijklmnopqrst"), 0, 19, -14);
- test(S("abcde"), 0, 5, SV("abcdefghijklmnopqrst"), 0, 20, -15);
- test(S("abcde"), 0, 5, SV("abcdefghijklmnopqrst"), 0, 21, -15);
- test(S("abcde"), 0, 5, SV("abcdefghijklmnopqrst"), 1, 0, 5);
- test(S("abcde"), 0, 5, SV("abcdefghijklmnopqrst"), 1, 1, -1);
- test(S("abcde"), 0, 5, SV("abcdefghijklmnopqrst"), 1, 9, -1);
- test(S("abcde"), 0, 5, SV("abcdefghijklmnopqrst"), 1, 18, -1);
- test(S("abcde"), 0, 5, SV("abcdefghijklmnopqrst"), 1, 19, -1);
- test(S("abcde"), 0, 5, SV("abcdefghijklmnopqrst"), 1, 20, -1);
- test(S("abcde"), 0, 5, SV("abcdefghijklmnopqrst"), 10, 0, 5);
- test(S("abcde"), 0, 5, SV("abcdefghijklmnopqrst"), 10, 1, -10);
- test(S("abcde"), 0, 5, SV("abcdefghijklmnopqrst"), 10, 5, -10);
- test(S("abcde"), 0, 5, SV("abcdefghijklmnopqrst"), 10, 9, -10);
- test(S("abcde"), 0, 5, SV("abcdefghijklmnopqrst"), 10, 10, -10);
- test(S("abcde"), 0, 5, SV("abcdefghijklmnopqrst"), 10, 11, -10);
- test(S("abcde"), 0, 5, SV("abcdefghijklmnopqrst"), 19, 0, 5);
- test(S("abcde"), 0, 5, SV("abcdefghijklmnopqrst"), 19, 1, -19);
- test(S("abcde"), 0, 5, SV("abcdefghijklmnopqrst"), 19, 2, -19);
- test(S("abcde"), 0, 5, SV("abcdefghijklmnopqrst"), 20, 0, 5);
- test(S("abcde"), 0, 5, SV("abcdefghijklmnopqrst"), 20, 1, 5);
- test(S("abcde"), 0, 5, SV("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcde"), 0, 6, SV(""), 0, 0, 5);
- test(S("abcde"), 0, 6, SV(""), 0, 1, 5);
- test(S("abcde"), 0, 6, SV(""), 1, 0, 0);
- test(S("abcde"), 0, 6, SV("abcde"), 0, 0, 5);
- test(S("abcde"), 0, 6, SV("abcde"), 0, 1, 4);
- test(S("abcde"), 0, 6, SV("abcde"), 0, 2, 3);
- test(S("abcde"), 0, 6, SV("abcde"), 0, 4, 1);
- test(S("abcde"), 0, 6, SV("abcde"), 0, 5, 0);
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test5() {
+ test(S("abcde"), 0, 4, SV("abcdefghijklmnopqrst"), 1, 0, 4);
+ test(S("abcde"), 0, 4, SV("abcdefghijklmnopqrst"), 1, 1, -1);
+ test(S("abcde"), 0, 4, SV("abcdefghijklmnopqrst"), 1, 9, -1);
+ test(S("abcde"), 0, 4, SV("abcdefghijklmnopqrst"), 1, 18, -1);
+ test(S("abcde"), 0, 4, SV("abcdefghijklmnopqrst"), 1, 19, -1);
+ test(S("abcde"), 0, 4, SV("abcdefghijklmnopqrst"), 1, 20, -1);
+ test(S("abcde"), 0, 4, SV("abcdefghijklmnopqrst"), 10, 0, 4);
+ test(S("abcde"), 0, 4, SV("abcdefghijklmnopqrst"), 10, 1, -10);
+ test(S("abcde"), 0, 4, SV("abcdefghijklmnopqrst"), 10, 5, -10);
+ test(S("abcde"), 0, 4, SV("abcdefghijklmnopqrst"), 10, 9, -10);
+ test(S("abcde"), 0, 4, SV("abcdefghijklmnopqrst"), 10, 10, -10);
+ test(S("abcde"), 0, 4, SV("abcdefghijklmnopqrst"), 10, 11, -10);
+ test(S("abcde"), 0, 4, SV("abcdefghijklmnopqrst"), 19, 0, 4);
+ test(S("abcde"), 0, 4, SV("abcdefghijklmnopqrst"), 19, 1, -19);
+ test(S("abcde"), 0, 4, SV("abcdefghijklmnopqrst"), 19, 2, -19);
+ test(S("abcde"), 0, 4, SV("abcdefghijklmnopqrst"), 20, 0, 4);
+ test(S("abcde"), 0, 4, SV("abcdefghijklmnopqrst"), 20, 1, 4);
+ test(S("abcde"), 0, 4, SV("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcde"), 0, 5, SV(""), 0, 0, 5);
+ test(S("abcde"), 0, 5, SV(""), 0, 1, 5);
+ test(S("abcde"), 0, 5, SV(""), 1, 0, 0);
+ test(S("abcde"), 0, 5, SV("abcde"), 0, 0, 5);
+ test(S("abcde"), 0, 5, SV("abcde"), 0, 1, 4);
+ test(S("abcde"), 0, 5, SV("abcde"), 0, 2, 3);
+ test(S("abcde"), 0, 5, SV("abcde"), 0, 4, 1);
+ test(S("abcde"), 0, 5, SV("abcde"), 0, 5, 0);
+ test(S("abcde"), 0, 5, SV("abcde"), 0, 6, 0);
+ test(S("abcde"), 0, 5, SV("abcde"), 1, 0, 5);
+ test(S("abcde"), 0, 5, SV("abcde"), 1, 1, -1);
+ test(S("abcde"), 0, 5, SV("abcde"), 1, 2, -1);
+ test(S("abcde"), 0, 5, SV("abcde"), 1, 3, -1);
+ test(S("abcde"), 0, 5, SV("abcde"), 1, 4, -1);
+ test(S("abcde"), 0, 5, SV("abcde"), 1, 5, -1);
+ test(S("abcde"), 0, 5, SV("abcde"), 2, 0, 5);
+ test(S("abcde"), 0, 5, SV("abcde"), 2, 1, -2);
+ test(S("abcde"), 0, 5, SV("abcde"), 2, 2, -2);
+ test(S("abcde"), 0, 5, SV("abcde"), 2, 3, -2);
+ test(S("abcde"), 0, 5, SV("abcde"), 2, 4, -2);
+ test(S("abcde"), 0, 5, SV("abcde"), 4, 0, 5);
+ test(S("abcde"), 0, 5, SV("abcde"), 4, 1, -4);
+ test(S("abcde"), 0, 5, SV("abcde"), 4, 2, -4);
+ test(S("abcde"), 0, 5, SV("abcde"), 5, 0, 5);
+ test(S("abcde"), 0, 5, SV("abcde"), 5, 1, 5);
+ test(S("abcde"), 0, 5, SV("abcde"), 6, 0, 0);
+ test(S("abcde"), 0, 5, SV("abcdefghij"), 0, 0, 5);
+ test(S("abcde"), 0, 5, SV("abcdefghij"), 0, 1, 4);
+ test(S("abcde"), 0, 5, SV("abcdefghij"), 0, 5, 0);
+ test(S("abcde"), 0, 5, SV("abcdefghij"), 0, 9, -4);
+ test(S("abcde"), 0, 5, SV("abcdefghij"), 0, 10, -5);
+ test(S("abcde"), 0, 5, SV("abcdefghij"), 0, 11, -5);
+ test(S("abcde"), 0, 5, SV("abcdefghij"), 1, 0, 5);
+ test(S("abcde"), 0, 5, SV("abcdefghij"), 1, 1, -1);
+ test(S("abcde"), 0, 5, SV("abcdefghij"), 1, 4, -1);
+ test(S("abcde"), 0, 5, SV("abcdefghij"), 1, 8, -1);
+ test(S("abcde"), 0, 5, SV("abcdefghij"), 1, 9, -1);
+ test(S("abcde"), 0, 5, SV("abcdefghij"), 1, 10, -1);
+ test(S("abcde"), 0, 5, SV("abcdefghij"), 5, 0, 5);
+ test(S("abcde"), 0, 5, SV("abcdefghij"), 5, 1, -5);
+ test(S("abcde"), 0, 5, SV("abcdefghij"), 5, 2, -5);
+ test(S("abcde"), 0, 5, SV("abcdefghij"), 5, 4, -5);
+ test(S("abcde"), 0, 5, SV("abcdefghij"), 5, 5, -5);
+ test(S("abcde"), 0, 5, SV("abcdefghij"), 5, 6, -5);
+ test(S("abcde"), 0, 5, SV("abcdefghij"), 9, 0, 5);
+ test(S("abcde"), 0, 5, SV("abcdefghij"), 9, 1, -9);
+ test(S("abcde"), 0, 5, SV("abcdefghij"), 9, 2, -9);
+ test(S("abcde"), 0, 5, SV("abcdefghij"), 10, 0, 5);
+ test(S("abcde"), 0, 5, SV("abcdefghij"), 10, 1, 5);
+ test(S("abcde"), 0, 5, SV("abcdefghij"), 11, 0, 0);
+ test(S("abcde"), 0, 5, SV("abcdefghijklmnopqrst"), 0, 0, 5);
+ test(S("abcde"), 0, 5, SV("abcdefghijklmnopqrst"), 0, 1, 4);
+ test(S("abcde"), 0, 5, SV("abcdefghijklmnopqrst"), 0, 10, -5);
+ test(S("abcde"), 0, 5, SV("abcdefghijklmnopqrst"), 0, 19, -14);
+ test(S("abcde"), 0, 5, SV("abcdefghijklmnopqrst"), 0, 20, -15);
+ test(S("abcde"), 0, 5, SV("abcdefghijklmnopqrst"), 0, 21, -15);
+ test(S("abcde"), 0, 5, SV("abcdefghijklmnopqrst"), 1, 0, 5);
+ test(S("abcde"), 0, 5, SV("abcdefghijklmnopqrst"), 1, 1, -1);
+ test(S("abcde"), 0, 5, SV("abcdefghijklmnopqrst"), 1, 9, -1);
+ test(S("abcde"), 0, 5, SV("abcdefghijklmnopqrst"), 1, 18, -1);
+ test(S("abcde"), 0, 5, SV("abcdefghijklmnopqrst"), 1, 19, -1);
+ test(S("abcde"), 0, 5, SV("abcdefghijklmnopqrst"), 1, 20, -1);
+ test(S("abcde"), 0, 5, SV("abcdefghijklmnopqrst"), 10, 0, 5);
+ test(S("abcde"), 0, 5, SV("abcdefghijklmnopqrst"), 10, 1, -10);
+ test(S("abcde"), 0, 5, SV("abcdefghijklmnopqrst"), 10, 5, -10);
+ test(S("abcde"), 0, 5, SV("abcdefghijklmnopqrst"), 10, 9, -10);
+ test(S("abcde"), 0, 5, SV("abcdefghijklmnopqrst"), 10, 10, -10);
+ test(S("abcde"), 0, 5, SV("abcdefghijklmnopqrst"), 10, 11, -10);
+ test(S("abcde"), 0, 5, SV("abcdefghijklmnopqrst"), 19, 0, 5);
+ test(S("abcde"), 0, 5, SV("abcdefghijklmnopqrst"), 19, 1, -19);
+ test(S("abcde"), 0, 5, SV("abcdefghijklmnopqrst"), 19, 2, -19);
+ test(S("abcde"), 0, 5, SV("abcdefghijklmnopqrst"), 20, 0, 5);
+ test(S("abcde"), 0, 5, SV("abcdefghijklmnopqrst"), 20, 1, 5);
+ test(S("abcde"), 0, 5, SV("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcde"), 0, 6, SV(""), 0, 0, 5);
+ test(S("abcde"), 0, 6, SV(""), 0, 1, 5);
+ test(S("abcde"), 0, 6, SV(""), 1, 0, 0);
+ test(S("abcde"), 0, 6, SV("abcde"), 0, 0, 5);
+ test(S("abcde"), 0, 6, SV("abcde"), 0, 1, 4);
+ test(S("abcde"), 0, 6, SV("abcde"), 0, 2, 3);
+ test(S("abcde"), 0, 6, SV("abcde"), 0, 4, 1);
+ test(S("abcde"), 0, 6, SV("abcde"), 0, 5, 0);
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test6()
-{
- test(S("abcde"), 0, 6, SV("abcde"), 0, 6, 0);
- test(S("abcde"), 0, 6, SV("abcde"), 1, 0, 5);
- test(S("abcde"), 0, 6, SV("abcde"), 1, 1, -1);
- test(S("abcde"), 0, 6, SV("abcde"), 1, 2, -1);
- test(S("abcde"), 0, 6, SV("abcde"), 1, 3, -1);
- test(S("abcde"), 0, 6, SV("abcde"), 1, 4, -1);
- test(S("abcde"), 0, 6, SV("abcde"), 1, 5, -1);
- test(S("abcde"), 0, 6, SV("abcde"), 2, 0, 5);
- test(S("abcde"), 0, 6, SV("abcde"), 2, 1, -2);
- test(S("abcde"), 0, 6, SV("abcde"), 2, 2, -2);
- test(S("abcde"), 0, 6, SV("abcde"), 2, 3, -2);
- test(S("abcde"), 0, 6, SV("abcde"), 2, 4, -2);
- test(S("abcde"), 0, 6, SV("abcde"), 4, 0, 5);
- test(S("abcde"), 0, 6, SV("abcde"), 4, 1, -4);
- test(S("abcde"), 0, 6, SV("abcde"), 4, 2, -4);
- test(S("abcde"), 0, 6, SV("abcde"), 5, 0, 5);
- test(S("abcde"), 0, 6, SV("abcde"), 5, 1, 5);
- test(S("abcde"), 0, 6, SV("abcde"), 6, 0, 0);
- test(S("abcde"), 0, 6, SV("abcdefghij"), 0, 0, 5);
- test(S("abcde"), 0, 6, SV("abcdefghij"), 0, 1, 4);
- test(S("abcde"), 0, 6, SV("abcdefghij"), 0, 5, 0);
- test(S("abcde"), 0, 6, SV("abcdefghij"), 0, 9, -4);
- test(S("abcde"), 0, 6, SV("abcdefghij"), 0, 10, -5);
- test(S("abcde"), 0, 6, SV("abcdefghij"), 0, 11, -5);
- test(S("abcde"), 0, 6, SV("abcdefghij"), 1, 0, 5);
- test(S("abcde"), 0, 6, SV("abcdefghij"), 1, 1, -1);
- test(S("abcde"), 0, 6, SV("abcdefghij"), 1, 4, -1);
- test(S("abcde"), 0, 6, SV("abcdefghij"), 1, 8, -1);
- test(S("abcde"), 0, 6, SV("abcdefghij"), 1, 9, -1);
- test(S("abcde"), 0, 6, SV("abcdefghij"), 1, 10, -1);
- test(S("abcde"), 0, 6, SV("abcdefghij"), 5, 0, 5);
- test(S("abcde"), 0, 6, SV("abcdefghij"), 5, 1, -5);
- test(S("abcde"), 0, 6, SV("abcdefghij"), 5, 2, -5);
- test(S("abcde"), 0, 6, SV("abcdefghij"), 5, 4, -5);
- test(S("abcde"), 0, 6, SV("abcdefghij"), 5, 5, -5);
- test(S("abcde"), 0, 6, SV("abcdefghij"), 5, 6, -5);
- test(S("abcde"), 0, 6, SV("abcdefghij"), 9, 0, 5);
- test(S("abcde"), 0, 6, SV("abcdefghij"), 9, 1, -9);
- test(S("abcde"), 0, 6, SV("abcdefghij"), 9, 2, -9);
- test(S("abcde"), 0, 6, SV("abcdefghij"), 10, 0, 5);
- test(S("abcde"), 0, 6, SV("abcdefghij"), 10, 1, 5);
- test(S("abcde"), 0, 6, SV("abcdefghij"), 11, 0, 0);
- test(S("abcde"), 0, 6, SV("abcdefghijklmnopqrst"), 0, 0, 5);
- test(S("abcde"), 0, 6, SV("abcdefghijklmnopqrst"), 0, 1, 4);
- test(S("abcde"), 0, 6, SV("abcdefghijklmnopqrst"), 0, 10, -5);
- test(S("abcde"), 0, 6, SV("abcdefghijklmnopqrst"), 0, 19, -14);
- test(S("abcde"), 0, 6, SV("abcdefghijklmnopqrst"), 0, 20, -15);
- test(S("abcde"), 0, 6, SV("abcdefghijklmnopqrst"), 0, 21, -15);
- test(S("abcde"), 0, 6, SV("abcdefghijklmnopqrst"), 1, 0, 5);
- test(S("abcde"), 0, 6, SV("abcdefghijklmnopqrst"), 1, 1, -1);
- test(S("abcde"), 0, 6, SV("abcdefghijklmnopqrst"), 1, 9, -1);
- test(S("abcde"), 0, 6, SV("abcdefghijklmnopqrst"), 1, 18, -1);
- test(S("abcde"), 0, 6, SV("abcdefghijklmnopqrst"), 1, 19, -1);
- test(S("abcde"), 0, 6, SV("abcdefghijklmnopqrst"), 1, 20, -1);
- test(S("abcde"), 0, 6, SV("abcdefghijklmnopqrst"), 10, 0, 5);
- test(S("abcde"), 0, 6, SV("abcdefghijklmnopqrst"), 10, 1, -10);
- test(S("abcde"), 0, 6, SV("abcdefghijklmnopqrst"), 10, 5, -10);
- test(S("abcde"), 0, 6, SV("abcdefghijklmnopqrst"), 10, 9, -10);
- test(S("abcde"), 0, 6, SV("abcdefghijklmnopqrst"), 10, 10, -10);
- test(S("abcde"), 0, 6, SV("abcdefghijklmnopqrst"), 10, 11, -10);
- test(S("abcde"), 0, 6, SV("abcdefghijklmnopqrst"), 19, 0, 5);
- test(S("abcde"), 0, 6, SV("abcdefghijklmnopqrst"), 19, 1, -19);
- test(S("abcde"), 0, 6, SV("abcdefghijklmnopqrst"), 19, 2, -19);
- test(S("abcde"), 0, 6, SV("abcdefghijklmnopqrst"), 20, 0, 5);
- test(S("abcde"), 0, 6, SV("abcdefghijklmnopqrst"), 20, 1, 5);
- test(S("abcde"), 0, 6, SV("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcde"), 1, 0, SV(""), 0, 0, 0);
- test(S("abcde"), 1, 0, SV(""), 0, 1, 0);
- test(S("abcde"), 1, 0, SV(""), 1, 0, 0);
- test(S("abcde"), 1, 0, SV("abcde"), 0, 0, 0);
- test(S("abcde"), 1, 0, SV("abcde"), 0, 1, -1);
- test(S("abcde"), 1, 0, SV("abcde"), 0, 2, -2);
- test(S("abcde"), 1, 0, SV("abcde"), 0, 4, -4);
- test(S("abcde"), 1, 0, SV("abcde"), 0, 5, -5);
- test(S("abcde"), 1, 0, SV("abcde"), 0, 6, -5);
- test(S("abcde"), 1, 0, SV("abcde"), 1, 0, 0);
- test(S("abcde"), 1, 0, SV("abcde"), 1, 1, -1);
- test(S("abcde"), 1, 0, SV("abcde"), 1, 2, -2);
- test(S("abcde"), 1, 0, SV("abcde"), 1, 3, -3);
- test(S("abcde"), 1, 0, SV("abcde"), 1, 4, -4);
- test(S("abcde"), 1, 0, SV("abcde"), 1, 5, -4);
- test(S("abcde"), 1, 0, SV("abcde"), 2, 0, 0);
- test(S("abcde"), 1, 0, SV("abcde"), 2, 1, -1);
- test(S("abcde"), 1, 0, SV("abcde"), 2, 2, -2);
- test(S("abcde"), 1, 0, SV("abcde"), 2, 3, -3);
- test(S("abcde"), 1, 0, SV("abcde"), 2, 4, -3);
- test(S("abcde"), 1, 0, SV("abcde"), 4, 0, 0);
- test(S("abcde"), 1, 0, SV("abcde"), 4, 1, -1);
- test(S("abcde"), 1, 0, SV("abcde"), 4, 2, -1);
- test(S("abcde"), 1, 0, SV("abcde"), 5, 0, 0);
- test(S("abcde"), 1, 0, SV("abcde"), 5, 1, 0);
- test(S("abcde"), 1, 0, SV("abcde"), 6, 0, 0);
- test(S("abcde"), 1, 0, SV("abcdefghij"), 0, 0, 0);
- test(S("abcde"), 1, 0, SV("abcdefghij"), 0, 1, -1);
- test(S("abcde"), 1, 0, SV("abcdefghij"), 0, 5, -5);
- test(S("abcde"), 1, 0, SV("abcdefghij"), 0, 9, -9);
- test(S("abcde"), 1, 0, SV("abcdefghij"), 0, 10, -10);
- test(S("abcde"), 1, 0, SV("abcdefghij"), 0, 11, -10);
- test(S("abcde"), 1, 0, SV("abcdefghij"), 1, 0, 0);
- test(S("abcde"), 1, 0, SV("abcdefghij"), 1, 1, -1);
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test6() {
+ test(S("abcde"), 0, 6, SV("abcde"), 0, 6, 0);
+ test(S("abcde"), 0, 6, SV("abcde"), 1, 0, 5);
+ test(S("abcde"), 0, 6, SV("abcde"), 1, 1, -1);
+ test(S("abcde"), 0, 6, SV("abcde"), 1, 2, -1);
+ test(S("abcde"), 0, 6, SV("abcde"), 1, 3, -1);
+ test(S("abcde"), 0, 6, SV("abcde"), 1, 4, -1);
+ test(S("abcde"), 0, 6, SV("abcde"), 1, 5, -1);
+ test(S("abcde"), 0, 6, SV("abcde"), 2, 0, 5);
+ test(S("abcde"), 0, 6, SV("abcde"), 2, 1, -2);
+ test(S("abcde"), 0, 6, SV("abcde"), 2, 2, -2);
+ test(S("abcde"), 0, 6, SV("abcde"), 2, 3, -2);
+ test(S("abcde"), 0, 6, SV("abcde"), 2, 4, -2);
+ test(S("abcde"), 0, 6, SV("abcde"), 4, 0, 5);
+ test(S("abcde"), 0, 6, SV("abcde"), 4, 1, -4);
+ test(S("abcde"), 0, 6, SV("abcde"), 4, 2, -4);
+ test(S("abcde"), 0, 6, SV("abcde"), 5, 0, 5);
+ test(S("abcde"), 0, 6, SV("abcde"), 5, 1, 5);
+ test(S("abcde"), 0, 6, SV("abcde"), 6, 0, 0);
+ test(S("abcde"), 0, 6, SV("abcdefghij"), 0, 0, 5);
+ test(S("abcde"), 0, 6, SV("abcdefghij"), 0, 1, 4);
+ test(S("abcde"), 0, 6, SV("abcdefghij"), 0, 5, 0);
+ test(S("abcde"), 0, 6, SV("abcdefghij"), 0, 9, -4);
+ test(S("abcde"), 0, 6, SV("abcdefghij"), 0, 10, -5);
+ test(S("abcde"), 0, 6, SV("abcdefghij"), 0, 11, -5);
+ test(S("abcde"), 0, 6, SV("abcdefghij"), 1, 0, 5);
+ test(S("abcde"), 0, 6, SV("abcdefghij"), 1, 1, -1);
+ test(S("abcde"), 0, 6, SV("abcdefghij"), 1, 4, -1);
+ test(S("abcde"), 0, 6, SV("abcdefghij"), 1, 8, -1);
+ test(S("abcde"), 0, 6, SV("abcdefghij"), 1, 9, -1);
+ test(S("abcde"), 0, 6, SV("abcdefghij"), 1, 10, -1);
+ test(S("abcde"), 0, 6, SV("abcdefghij"), 5, 0, 5);
+ test(S("abcde"), 0, 6, SV("abcdefghij"), 5, 1, -5);
+ test(S("abcde"), 0, 6, SV("abcdefghij"), 5, 2, -5);
+ test(S("abcde"), 0, 6, SV("abcdefghij"), 5, 4, -5);
+ test(S("abcde"), 0, 6, SV("abcdefghij"), 5, 5, -5);
+ test(S("abcde"), 0, 6, SV("abcdefghij"), 5, 6, -5);
+ test(S("abcde"), 0, 6, SV("abcdefghij"), 9, 0, 5);
+ test(S("abcde"), 0, 6, SV("abcdefghij"), 9, 1, -9);
+ test(S("abcde"), 0, 6, SV("abcdefghij"), 9, 2, -9);
+ test(S("abcde"), 0, 6, SV("abcdefghij"), 10, 0, 5);
+ test(S("abcde"), 0, 6, SV("abcdefghij"), 10, 1, 5);
+ test(S("abcde"), 0, 6, SV("abcdefghij"), 11, 0, 0);
+ test(S("abcde"), 0, 6, SV("abcdefghijklmnopqrst"), 0, 0, 5);
+ test(S("abcde"), 0, 6, SV("abcdefghijklmnopqrst"), 0, 1, 4);
+ test(S("abcde"), 0, 6, SV("abcdefghijklmnopqrst"), 0, 10, -5);
+ test(S("abcde"), 0, 6, SV("abcdefghijklmnopqrst"), 0, 19, -14);
+ test(S("abcde"), 0, 6, SV("abcdefghijklmnopqrst"), 0, 20, -15);
+ test(S("abcde"), 0, 6, SV("abcdefghijklmnopqrst"), 0, 21, -15);
+ test(S("abcde"), 0, 6, SV("abcdefghijklmnopqrst"), 1, 0, 5);
+ test(S("abcde"), 0, 6, SV("abcdefghijklmnopqrst"), 1, 1, -1);
+ test(S("abcde"), 0, 6, SV("abcdefghijklmnopqrst"), 1, 9, -1);
+ test(S("abcde"), 0, 6, SV("abcdefghijklmnopqrst"), 1, 18, -1);
+ test(S("abcde"), 0, 6, SV("abcdefghijklmnopqrst"), 1, 19, -1);
+ test(S("abcde"), 0, 6, SV("abcdefghijklmnopqrst"), 1, 20, -1);
+ test(S("abcde"), 0, 6, SV("abcdefghijklmnopqrst"), 10, 0, 5);
+ test(S("abcde"), 0, 6, SV("abcdefghijklmnopqrst"), 10, 1, -10);
+ test(S("abcde"), 0, 6, SV("abcdefghijklmnopqrst"), 10, 5, -10);
+ test(S("abcde"), 0, 6, SV("abcdefghijklmnopqrst"), 10, 9, -10);
+ test(S("abcde"), 0, 6, SV("abcdefghijklmnopqrst"), 10, 10, -10);
+ test(S("abcde"), 0, 6, SV("abcdefghijklmnopqrst"), 10, 11, -10);
+ test(S("abcde"), 0, 6, SV("abcdefghijklmnopqrst"), 19, 0, 5);
+ test(S("abcde"), 0, 6, SV("abcdefghijklmnopqrst"), 19, 1, -19);
+ test(S("abcde"), 0, 6, SV("abcdefghijklmnopqrst"), 19, 2, -19);
+ test(S("abcde"), 0, 6, SV("abcdefghijklmnopqrst"), 20, 0, 5);
+ test(S("abcde"), 0, 6, SV("abcdefghijklmnopqrst"), 20, 1, 5);
+ test(S("abcde"), 0, 6, SV("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcde"), 1, 0, SV(""), 0, 0, 0);
+ test(S("abcde"), 1, 0, SV(""), 0, 1, 0);
+ test(S("abcde"), 1, 0, SV(""), 1, 0, 0);
+ test(S("abcde"), 1, 0, SV("abcde"), 0, 0, 0);
+ test(S("abcde"), 1, 0, SV("abcde"), 0, 1, -1);
+ test(S("abcde"), 1, 0, SV("abcde"), 0, 2, -2);
+ test(S("abcde"), 1, 0, SV("abcde"), 0, 4, -4);
+ test(S("abcde"), 1, 0, SV("abcde"), 0, 5, -5);
+ test(S("abcde"), 1, 0, SV("abcde"), 0, 6, -5);
+ test(S("abcde"), 1, 0, SV("abcde"), 1, 0, 0);
+ test(S("abcde"), 1, 0, SV("abcde"), 1, 1, -1);
+ test(S("abcde"), 1, 0, SV("abcde"), 1, 2, -2);
+ test(S("abcde"), 1, 0, SV("abcde"), 1, 3, -3);
+ test(S("abcde"), 1, 0, SV("abcde"), 1, 4, -4);
+ test(S("abcde"), 1, 0, SV("abcde"), 1, 5, -4);
+ test(S("abcde"), 1, 0, SV("abcde"), 2, 0, 0);
+ test(S("abcde"), 1, 0, SV("abcde"), 2, 1, -1);
+ test(S("abcde"), 1, 0, SV("abcde"), 2, 2, -2);
+ test(S("abcde"), 1, 0, SV("abcde"), 2, 3, -3);
+ test(S("abcde"), 1, 0, SV("abcde"), 2, 4, -3);
+ test(S("abcde"), 1, 0, SV("abcde"), 4, 0, 0);
+ test(S("abcde"), 1, 0, SV("abcde"), 4, 1, -1);
+ test(S("abcde"), 1, 0, SV("abcde"), 4, 2, -1);
+ test(S("abcde"), 1, 0, SV("abcde"), 5, 0, 0);
+ test(S("abcde"), 1, 0, SV("abcde"), 5, 1, 0);
+ test(S("abcde"), 1, 0, SV("abcde"), 6, 0, 0);
+ test(S("abcde"), 1, 0, SV("abcdefghij"), 0, 0, 0);
+ test(S("abcde"), 1, 0, SV("abcdefghij"), 0, 1, -1);
+ test(S("abcde"), 1, 0, SV("abcdefghij"), 0, 5, -5);
+ test(S("abcde"), 1, 0, SV("abcdefghij"), 0, 9, -9);
+ test(S("abcde"), 1, 0, SV("abcdefghij"), 0, 10, -10);
+ test(S("abcde"), 1, 0, SV("abcdefghij"), 0, 11, -10);
+ test(S("abcde"), 1, 0, SV("abcdefghij"), 1, 0, 0);
+ test(S("abcde"), 1, 0, SV("abcdefghij"), 1, 1, -1);
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test7()
-{
- test(S("abcde"), 1, 0, SV("abcdefghij"), 1, 4, -4);
- test(S("abcde"), 1, 0, SV("abcdefghij"), 1, 8, -8);
- test(S("abcde"), 1, 0, SV("abcdefghij"), 1, 9, -9);
- test(S("abcde"), 1, 0, SV("abcdefghij"), 1, 10, -9);
- test(S("abcde"), 1, 0, SV("abcdefghij"), 5, 0, 0);
- test(S("abcde"), 1, 0, SV("abcdefghij"), 5, 1, -1);
- test(S("abcde"), 1, 0, SV("abcdefghij"), 5, 2, -2);
- test(S("abcde"), 1, 0, SV("abcdefghij"), 5, 4, -4);
- test(S("abcde"), 1, 0, SV("abcdefghij"), 5, 5, -5);
- test(S("abcde"), 1, 0, SV("abcdefghij"), 5, 6, -5);
- test(S("abcde"), 1, 0, SV("abcdefghij"), 9, 0, 0);
- test(S("abcde"), 1, 0, SV("abcdefghij"), 9, 1, -1);
- test(S("abcde"), 1, 0, SV("abcdefghij"), 9, 2, -1);
- test(S("abcde"), 1, 0, SV("abcdefghij"), 10, 0, 0);
- test(S("abcde"), 1, 0, SV("abcdefghij"), 10, 1, 0);
- test(S("abcde"), 1, 0, SV("abcdefghij"), 11, 0, 0);
- test(S("abcde"), 1, 0, SV("abcdefghijklmnopqrst"), 0, 0, 0);
- test(S("abcde"), 1, 0, SV("abcdefghijklmnopqrst"), 0, 1, -1);
- test(S("abcde"), 1, 0, SV("abcdefghijklmnopqrst"), 0, 10, -10);
- test(S("abcde"), 1, 0, SV("abcdefghijklmnopqrst"), 0, 19, -19);
- test(S("abcde"), 1, 0, SV("abcdefghijklmnopqrst"), 0, 20, -20);
- test(S("abcde"), 1, 0, SV("abcdefghijklmnopqrst"), 0, 21, -20);
- test(S("abcde"), 1, 0, SV("abcdefghijklmnopqrst"), 1, 0, 0);
- test(S("abcde"), 1, 0, SV("abcdefghijklmnopqrst"), 1, 1, -1);
- test(S("abcde"), 1, 0, SV("abcdefghijklmnopqrst"), 1, 9, -9);
- test(S("abcde"), 1, 0, SV("abcdefghijklmnopqrst"), 1, 18, -18);
- test(S("abcde"), 1, 0, SV("abcdefghijklmnopqrst"), 1, 19, -19);
- test(S("abcde"), 1, 0, SV("abcdefghijklmnopqrst"), 1, 20, -19);
- test(S("abcde"), 1, 0, SV("abcdefghijklmnopqrst"), 10, 0, 0);
- test(S("abcde"), 1, 0, SV("abcdefghijklmnopqrst"), 10, 1, -1);
- test(S("abcde"), 1, 0, SV("abcdefghijklmnopqrst"), 10, 5, -5);
- test(S("abcde"), 1, 0, SV("abcdefghijklmnopqrst"), 10, 9, -9);
- test(S("abcde"), 1, 0, SV("abcdefghijklmnopqrst"), 10, 10, -10);
- test(S("abcde"), 1, 0, SV("abcdefghijklmnopqrst"), 10, 11, -10);
- test(S("abcde"), 1, 0, SV("abcdefghijklmnopqrst"), 19, 0, 0);
- test(S("abcde"), 1, 0, SV("abcdefghijklmnopqrst"), 19, 1, -1);
- test(S("abcde"), 1, 0, SV("abcdefghijklmnopqrst"), 19, 2, -1);
- test(S("abcde"), 1, 0, SV("abcdefghijklmnopqrst"), 20, 0, 0);
- test(S("abcde"), 1, 0, SV("abcdefghijklmnopqrst"), 20, 1, 0);
- test(S("abcde"), 1, 0, SV("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcde"), 1, 1, SV(""), 0, 0, 1);
- test(S("abcde"), 1, 1, SV(""), 0, 1, 1);
- test(S("abcde"), 1, 1, SV(""), 1, 0, 0);
- test(S("abcde"), 1, 1, SV("abcde"), 0, 0, 1);
- test(S("abcde"), 1, 1, SV("abcde"), 0, 1, 1);
- test(S("abcde"), 1, 1, SV("abcde"), 0, 2, 1);
- test(S("abcde"), 1, 1, SV("abcde"), 0, 4, 1);
- test(S("abcde"), 1, 1, SV("abcde"), 0, 5, 1);
- test(S("abcde"), 1, 1, SV("abcde"), 0, 6, 1);
- test(S("abcde"), 1, 1, SV("abcde"), 1, 0, 1);
- test(S("abcde"), 1, 1, SV("abcde"), 1, 1, 0);
- test(S("abcde"), 1, 1, SV("abcde"), 1, 2, -1);
- test(S("abcde"), 1, 1, SV("abcde"), 1, 3, -2);
- test(S("abcde"), 1, 1, SV("abcde"), 1, 4, -3);
- test(S("abcde"), 1, 1, SV("abcde"), 1, 5, -3);
- test(S("abcde"), 1, 1, SV("abcde"), 2, 0, 1);
- test(S("abcde"), 1, 1, SV("abcde"), 2, 1, -1);
- test(S("abcde"), 1, 1, SV("abcde"), 2, 2, -1);
- test(S("abcde"), 1, 1, SV("abcde"), 2, 3, -1);
- test(S("abcde"), 1, 1, SV("abcde"), 2, 4, -1);
- test(S("abcde"), 1, 1, SV("abcde"), 4, 0, 1);
- test(S("abcde"), 1, 1, SV("abcde"), 4, 1, -3);
- test(S("abcde"), 1, 1, SV("abcde"), 4, 2, -3);
- test(S("abcde"), 1, 1, SV("abcde"), 5, 0, 1);
- test(S("abcde"), 1, 1, SV("abcde"), 5, 1, 1);
- test(S("abcde"), 1, 1, SV("abcde"), 6, 0, 0);
- test(S("abcde"), 1, 1, SV("abcdefghij"), 0, 0, 1);
- test(S("abcde"), 1, 1, SV("abcdefghij"), 0, 1, 1);
- test(S("abcde"), 1, 1, SV("abcdefghij"), 0, 5, 1);
- test(S("abcde"), 1, 1, SV("abcdefghij"), 0, 9, 1);
- test(S("abcde"), 1, 1, SV("abcdefghij"), 0, 10, 1);
- test(S("abcde"), 1, 1, SV("abcdefghij"), 0, 11, 1);
- test(S("abcde"), 1, 1, SV("abcdefghij"), 1, 0, 1);
- test(S("abcde"), 1, 1, SV("abcdefghij"), 1, 1, 0);
- test(S("abcde"), 1, 1, SV("abcdefghij"), 1, 4, -3);
- test(S("abcde"), 1, 1, SV("abcdefghij"), 1, 8, -7);
- test(S("abcde"), 1, 1, SV("abcdefghij"), 1, 9, -8);
- test(S("abcde"), 1, 1, SV("abcdefghij"), 1, 10, -8);
- test(S("abcde"), 1, 1, SV("abcdefghij"), 5, 0, 1);
- test(S("abcde"), 1, 1, SV("abcdefghij"), 5, 1, -4);
- test(S("abcde"), 1, 1, SV("abcdefghij"), 5, 2, -4);
- test(S("abcde"), 1, 1, SV("abcdefghij"), 5, 4, -4);
- test(S("abcde"), 1, 1, SV("abcdefghij"), 5, 5, -4);
- test(S("abcde"), 1, 1, SV("abcdefghij"), 5, 6, -4);
- test(S("abcde"), 1, 1, SV("abcdefghij"), 9, 0, 1);
- test(S("abcde"), 1, 1, SV("abcdefghij"), 9, 1, -8);
- test(S("abcde"), 1, 1, SV("abcdefghij"), 9, 2, -8);
- test(S("abcde"), 1, 1, SV("abcdefghij"), 10, 0, 1);
- test(S("abcde"), 1, 1, SV("abcdefghij"), 10, 1, 1);
- test(S("abcde"), 1, 1, SV("abcdefghij"), 11, 0, 0);
- test(S("abcde"), 1, 1, SV("abcdefghijklmnopqrst"), 0, 0, 1);
- test(S("abcde"), 1, 1, SV("abcdefghijklmnopqrst"), 0, 1, 1);
- test(S("abcde"), 1, 1, SV("abcdefghijklmnopqrst"), 0, 10, 1);
- test(S("abcde"), 1, 1, SV("abcdefghijklmnopqrst"), 0, 19, 1);
- test(S("abcde"), 1, 1, SV("abcdefghijklmnopqrst"), 0, 20, 1);
- test(S("abcde"), 1, 1, SV("abcdefghijklmnopqrst"), 0, 21, 1);
- test(S("abcde"), 1, 1, SV("abcdefghijklmnopqrst"), 1, 0, 1);
- test(S("abcde"), 1, 1, SV("abcdefghijklmnopqrst"), 1, 1, 0);
- test(S("abcde"), 1, 1, SV("abcdefghijklmnopqrst"), 1, 9, -8);
- test(S("abcde"), 1, 1, SV("abcdefghijklmnopqrst"), 1, 18, -17);
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test7() {
+ test(S("abcde"), 1, 0, SV("abcdefghij"), 1, 4, -4);
+ test(S("abcde"), 1, 0, SV("abcdefghij"), 1, 8, -8);
+ test(S("abcde"), 1, 0, SV("abcdefghij"), 1, 9, -9);
+ test(S("abcde"), 1, 0, SV("abcdefghij"), 1, 10, -9);
+ test(S("abcde"), 1, 0, SV("abcdefghij"), 5, 0, 0);
+ test(S("abcde"), 1, 0, SV("abcdefghij"), 5, 1, -1);
+ test(S("abcde"), 1, 0, SV("abcdefghij"), 5, 2, -2);
+ test(S("abcde"), 1, 0, SV("abcdefghij"), 5, 4, -4);
+ test(S("abcde"), 1, 0, SV("abcdefghij"), 5, 5, -5);
+ test(S("abcde"), 1, 0, SV("abcdefghij"), 5, 6, -5);
+ test(S("abcde"), 1, 0, SV("abcdefghij"), 9, 0, 0);
+ test(S("abcde"), 1, 0, SV("abcdefghij"), 9, 1, -1);
+ test(S("abcde"), 1, 0, SV("abcdefghij"), 9, 2, -1);
+ test(S("abcde"), 1, 0, SV("abcdefghij"), 10, 0, 0);
+ test(S("abcde"), 1, 0, SV("abcdefghij"), 10, 1, 0);
+ test(S("abcde"), 1, 0, SV("abcdefghij"), 11, 0, 0);
+ test(S("abcde"), 1, 0, SV("abcdefghijklmnopqrst"), 0, 0, 0);
+ test(S("abcde"), 1, 0, SV("abcdefghijklmnopqrst"), 0, 1, -1);
+ test(S("abcde"), 1, 0, SV("abcdefghijklmnopqrst"), 0, 10, -10);
+ test(S("abcde"), 1, 0, SV("abcdefghijklmnopqrst"), 0, 19, -19);
+ test(S("abcde"), 1, 0, SV("abcdefghijklmnopqrst"), 0, 20, -20);
+ test(S("abcde"), 1, 0, SV("abcdefghijklmnopqrst"), 0, 21, -20);
+ test(S("abcde"), 1, 0, SV("abcdefghijklmnopqrst"), 1, 0, 0);
+ test(S("abcde"), 1, 0, SV("abcdefghijklmnopqrst"), 1, 1, -1);
+ test(S("abcde"), 1, 0, SV("abcdefghijklmnopqrst"), 1, 9, -9);
+ test(S("abcde"), 1, 0, SV("abcdefghijklmnopqrst"), 1, 18, -18);
+ test(S("abcde"), 1, 0, SV("abcdefghijklmnopqrst"), 1, 19, -19);
+ test(S("abcde"), 1, 0, SV("abcdefghijklmnopqrst"), 1, 20, -19);
+ test(S("abcde"), 1, 0, SV("abcdefghijklmnopqrst"), 10, 0, 0);
+ test(S("abcde"), 1, 0, SV("abcdefghijklmnopqrst"), 10, 1, -1);
+ test(S("abcde"), 1, 0, SV("abcdefghijklmnopqrst"), 10, 5, -5);
+ test(S("abcde"), 1, 0, SV("abcdefghijklmnopqrst"), 10, 9, -9);
+ test(S("abcde"), 1, 0, SV("abcdefghijklmnopqrst"), 10, 10, -10);
+ test(S("abcde"), 1, 0, SV("abcdefghijklmnopqrst"), 10, 11, -10);
+ test(S("abcde"), 1, 0, SV("abcdefghijklmnopqrst"), 19, 0, 0);
+ test(S("abcde"), 1, 0, SV("abcdefghijklmnopqrst"), 19, 1, -1);
+ test(S("abcde"), 1, 0, SV("abcdefghijklmnopqrst"), 19, 2, -1);
+ test(S("abcde"), 1, 0, SV("abcdefghijklmnopqrst"), 20, 0, 0);
+ test(S("abcde"), 1, 0, SV("abcdefghijklmnopqrst"), 20, 1, 0);
+ test(S("abcde"), 1, 0, SV("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcde"), 1, 1, SV(""), 0, 0, 1);
+ test(S("abcde"), 1, 1, SV(""), 0, 1, 1);
+ test(S("abcde"), 1, 1, SV(""), 1, 0, 0);
+ test(S("abcde"), 1, 1, SV("abcde"), 0, 0, 1);
+ test(S("abcde"), 1, 1, SV("abcde"), 0, 1, 1);
+ test(S("abcde"), 1, 1, SV("abcde"), 0, 2, 1);
+ test(S("abcde"), 1, 1, SV("abcde"), 0, 4, 1);
+ test(S("abcde"), 1, 1, SV("abcde"), 0, 5, 1);
+ test(S("abcde"), 1, 1, SV("abcde"), 0, 6, 1);
+ test(S("abcde"), 1, 1, SV("abcde"), 1, 0, 1);
+ test(S("abcde"), 1, 1, SV("abcde"), 1, 1, 0);
+ test(S("abcde"), 1, 1, SV("abcde"), 1, 2, -1);
+ test(S("abcde"), 1, 1, SV("abcde"), 1, 3, -2);
+ test(S("abcde"), 1, 1, SV("abcde"), 1, 4, -3);
+ test(S("abcde"), 1, 1, SV("abcde"), 1, 5, -3);
+ test(S("abcde"), 1, 1, SV("abcde"), 2, 0, 1);
+ test(S("abcde"), 1, 1, SV("abcde"), 2, 1, -1);
+ test(S("abcde"), 1, 1, SV("abcde"), 2, 2, -1);
+ test(S("abcde"), 1, 1, SV("abcde"), 2, 3, -1);
+ test(S("abcde"), 1, 1, SV("abcde"), 2, 4, -1);
+ test(S("abcde"), 1, 1, SV("abcde"), 4, 0, 1);
+ test(S("abcde"), 1, 1, SV("abcde"), 4, 1, -3);
+ test(S("abcde"), 1, 1, SV("abcde"), 4, 2, -3);
+ test(S("abcde"), 1, 1, SV("abcde"), 5, 0, 1);
+ test(S("abcde"), 1, 1, SV("abcde"), 5, 1, 1);
+ test(S("abcde"), 1, 1, SV("abcde"), 6, 0, 0);
+ test(S("abcde"), 1, 1, SV("abcdefghij"), 0, 0, 1);
+ test(S("abcde"), 1, 1, SV("abcdefghij"), 0, 1, 1);
+ test(S("abcde"), 1, 1, SV("abcdefghij"), 0, 5, 1);
+ test(S("abcde"), 1, 1, SV("abcdefghij"), 0, 9, 1);
+ test(S("abcde"), 1, 1, SV("abcdefghij"), 0, 10, 1);
+ test(S("abcde"), 1, 1, SV("abcdefghij"), 0, 11, 1);
+ test(S("abcde"), 1, 1, SV("abcdefghij"), 1, 0, 1);
+ test(S("abcde"), 1, 1, SV("abcdefghij"), 1, 1, 0);
+ test(S("abcde"), 1, 1, SV("abcdefghij"), 1, 4, -3);
+ test(S("abcde"), 1, 1, SV("abcdefghij"), 1, 8, -7);
+ test(S("abcde"), 1, 1, SV("abcdefghij"), 1, 9, -8);
+ test(S("abcde"), 1, 1, SV("abcdefghij"), 1, 10, -8);
+ test(S("abcde"), 1, 1, SV("abcdefghij"), 5, 0, 1);
+ test(S("abcde"), 1, 1, SV("abcdefghij"), 5, 1, -4);
+ test(S("abcde"), 1, 1, SV("abcdefghij"), 5, 2, -4);
+ test(S("abcde"), 1, 1, SV("abcdefghij"), 5, 4, -4);
+ test(S("abcde"), 1, 1, SV("abcdefghij"), 5, 5, -4);
+ test(S("abcde"), 1, 1, SV("abcdefghij"), 5, 6, -4);
+ test(S("abcde"), 1, 1, SV("abcdefghij"), 9, 0, 1);
+ test(S("abcde"), 1, 1, SV("abcdefghij"), 9, 1, -8);
+ test(S("abcde"), 1, 1, SV("abcdefghij"), 9, 2, -8);
+ test(S("abcde"), 1, 1, SV("abcdefghij"), 10, 0, 1);
+ test(S("abcde"), 1, 1, SV("abcdefghij"), 10, 1, 1);
+ test(S("abcde"), 1, 1, SV("abcdefghij"), 11, 0, 0);
+ test(S("abcde"), 1, 1, SV("abcdefghijklmnopqrst"), 0, 0, 1);
+ test(S("abcde"), 1, 1, SV("abcdefghijklmnopqrst"), 0, 1, 1);
+ test(S("abcde"), 1, 1, SV("abcdefghijklmnopqrst"), 0, 10, 1);
+ test(S("abcde"), 1, 1, SV("abcdefghijklmnopqrst"), 0, 19, 1);
+ test(S("abcde"), 1, 1, SV("abcdefghijklmnopqrst"), 0, 20, 1);
+ test(S("abcde"), 1, 1, SV("abcdefghijklmnopqrst"), 0, 21, 1);
+ test(S("abcde"), 1, 1, SV("abcdefghijklmnopqrst"), 1, 0, 1);
+ test(S("abcde"), 1, 1, SV("abcdefghijklmnopqrst"), 1, 1, 0);
+ test(S("abcde"), 1, 1, SV("abcdefghijklmnopqrst"), 1, 9, -8);
+ test(S("abcde"), 1, 1, SV("abcdefghijklmnopqrst"), 1, 18, -17);
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test8()
-{
- test(S("abcde"), 1, 1, SV("abcdefghijklmnopqrst"), 1, 19, -18);
- test(S("abcde"), 1, 1, SV("abcdefghijklmnopqrst"), 1, 20, -18);
- test(S("abcde"), 1, 1, SV("abcdefghijklmnopqrst"), 10, 0, 1);
- test(S("abcde"), 1, 1, SV("abcdefghijklmnopqrst"), 10, 1, -9);
- test(S("abcde"), 1, 1, SV("abcdefghijklmnopqrst"), 10, 5, -9);
- test(S("abcde"), 1, 1, SV("abcdefghijklmnopqrst"), 10, 9, -9);
- test(S("abcde"), 1, 1, SV("abcdefghijklmnopqrst"), 10, 10, -9);
- test(S("abcde"), 1, 1, SV("abcdefghijklmnopqrst"), 10, 11, -9);
- test(S("abcde"), 1, 1, SV("abcdefghijklmnopqrst"), 19, 0, 1);
- test(S("abcde"), 1, 1, SV("abcdefghijklmnopqrst"), 19, 1, -18);
- test(S("abcde"), 1, 1, SV("abcdefghijklmnopqrst"), 19, 2, -18);
- test(S("abcde"), 1, 1, SV("abcdefghijklmnopqrst"), 20, 0, 1);
- test(S("abcde"), 1, 1, SV("abcdefghijklmnopqrst"), 20, 1, 1);
- test(S("abcde"), 1, 1, SV("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcde"), 1, 2, SV(""), 0, 0, 2);
- test(S("abcde"), 1, 2, SV(""), 0, 1, 2);
- test(S("abcde"), 1, 2, SV(""), 1, 0, 0);
- test(S("abcde"), 1, 2, SV("abcde"), 0, 0, 2);
- test(S("abcde"), 1, 2, SV("abcde"), 0, 1, 1);
- test(S("abcde"), 1, 2, SV("abcde"), 0, 2, 1);
- test(S("abcde"), 1, 2, SV("abcde"), 0, 4, 1);
- test(S("abcde"), 1, 2, SV("abcde"), 0, 5, 1);
- test(S("abcde"), 1, 2, SV("abcde"), 0, 6, 1);
- test(S("abcde"), 1, 2, SV("abcde"), 1, 0, 2);
- test(S("abcde"), 1, 2, SV("abcde"), 1, 1, 1);
- test(S("abcde"), 1, 2, SV("abcde"), 1, 2, 0);
- test(S("abcde"), 1, 2, SV("abcde"), 1, 3, -1);
- test(S("abcde"), 1, 2, SV("abcde"), 1, 4, -2);
- test(S("abcde"), 1, 2, SV("abcde"), 1, 5, -2);
- test(S("abcde"), 1, 2, SV("abcde"), 2, 0, 2);
- test(S("abcde"), 1, 2, SV("abcde"), 2, 1, -1);
- test(S("abcde"), 1, 2, SV("abcde"), 2, 2, -1);
- test(S("abcde"), 1, 2, SV("abcde"), 2, 3, -1);
- test(S("abcde"), 1, 2, SV("abcde"), 2, 4, -1);
- test(S("abcde"), 1, 2, SV("abcde"), 4, 0, 2);
- test(S("abcde"), 1, 2, SV("abcde"), 4, 1, -3);
- test(S("abcde"), 1, 2, SV("abcde"), 4, 2, -3);
- test(S("abcde"), 1, 2, SV("abcde"), 5, 0, 2);
- test(S("abcde"), 1, 2, SV("abcde"), 5, 1, 2);
- test(S("abcde"), 1, 2, SV("abcde"), 6, 0, 0);
- test(S("abcde"), 1, 2, SV("abcdefghij"), 0, 0, 2);
- test(S("abcde"), 1, 2, SV("abcdefghij"), 0, 1, 1);
- test(S("abcde"), 1, 2, SV("abcdefghij"), 0, 5, 1);
- test(S("abcde"), 1, 2, SV("abcdefghij"), 0, 9, 1);
- test(S("abcde"), 1, 2, SV("abcdefghij"), 0, 10, 1);
- test(S("abcde"), 1, 2, SV("abcdefghij"), 0, 11, 1);
- test(S("abcde"), 1, 2, SV("abcdefghij"), 1, 0, 2);
- test(S("abcde"), 1, 2, SV("abcdefghij"), 1, 1, 1);
- test(S("abcde"), 1, 2, SV("abcdefghij"), 1, 4, -2);
- test(S("abcde"), 1, 2, SV("abcdefghij"), 1, 8, -6);
- test(S("abcde"), 1, 2, SV("abcdefghij"), 1, 9, -7);
- test(S("abcde"), 1, 2, SV("abcdefghij"), 1, 10, -7);
- test(S("abcde"), 1, 2, SV("abcdefghij"), 5, 0, 2);
- test(S("abcde"), 1, 2, SV("abcdefghij"), 5, 1, -4);
- test(S("abcde"), 1, 2, SV("abcdefghij"), 5, 2, -4);
- test(S("abcde"), 1, 2, SV("abcdefghij"), 5, 4, -4);
- test(S("abcde"), 1, 2, SV("abcdefghij"), 5, 5, -4);
- test(S("abcde"), 1, 2, SV("abcdefghij"), 5, 6, -4);
- test(S("abcde"), 1, 2, SV("abcdefghij"), 9, 0, 2);
- test(S("abcde"), 1, 2, SV("abcdefghij"), 9, 1, -8);
- test(S("abcde"), 1, 2, SV("abcdefghij"), 9, 2, -8);
- test(S("abcde"), 1, 2, SV("abcdefghij"), 10, 0, 2);
- test(S("abcde"), 1, 2, SV("abcdefghij"), 10, 1, 2);
- test(S("abcde"), 1, 2, SV("abcdefghij"), 11, 0, 0);
- test(S("abcde"), 1, 2, SV("abcdefghijklmnopqrst"), 0, 0, 2);
- test(S("abcde"), 1, 2, SV("abcdefghijklmnopqrst"), 0, 1, 1);
- test(S("abcde"), 1, 2, SV("abcdefghijklmnopqrst"), 0, 10, 1);
- test(S("abcde"), 1, 2, SV("abcdefghijklmnopqrst"), 0, 19, 1);
- test(S("abcde"), 1, 2, SV("abcdefghijklmnopqrst"), 0, 20, 1);
- test(S("abcde"), 1, 2, SV("abcdefghijklmnopqrst"), 0, 21, 1);
- test(S("abcde"), 1, 2, SV("abcdefghijklmnopqrst"), 1, 0, 2);
- test(S("abcde"), 1, 2, SV("abcdefghijklmnopqrst"), 1, 1, 1);
- test(S("abcde"), 1, 2, SV("abcdefghijklmnopqrst"), 1, 9, -7);
- test(S("abcde"), 1, 2, SV("abcdefghijklmnopqrst"), 1, 18, -16);
- test(S("abcde"), 1, 2, SV("abcdefghijklmnopqrst"), 1, 19, -17);
- test(S("abcde"), 1, 2, SV("abcdefghijklmnopqrst"), 1, 20, -17);
- test(S("abcde"), 1, 2, SV("abcdefghijklmnopqrst"), 10, 0, 2);
- test(S("abcde"), 1, 2, SV("abcdefghijklmnopqrst"), 10, 1, -9);
- test(S("abcde"), 1, 2, SV("abcdefghijklmnopqrst"), 10, 5, -9);
- test(S("abcde"), 1, 2, SV("abcdefghijklmnopqrst"), 10, 9, -9);
- test(S("abcde"), 1, 2, SV("abcdefghijklmnopqrst"), 10, 10, -9);
- test(S("abcde"), 1, 2, SV("abcdefghijklmnopqrst"), 10, 11, -9);
- test(S("abcde"), 1, 2, SV("abcdefghijklmnopqrst"), 19, 0, 2);
- test(S("abcde"), 1, 2, SV("abcdefghijklmnopqrst"), 19, 1, -18);
- test(S("abcde"), 1, 2, SV("abcdefghijklmnopqrst"), 19, 2, -18);
- test(S("abcde"), 1, 2, SV("abcdefghijklmnopqrst"), 20, 0, 2);
- test(S("abcde"), 1, 2, SV("abcdefghijklmnopqrst"), 20, 1, 2);
- test(S("abcde"), 1, 2, SV("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcde"), 1, 3, SV(""), 0, 0, 3);
- test(S("abcde"), 1, 3, SV(""), 0, 1, 3);
- test(S("abcde"), 1, 3, SV(""), 1, 0, 0);
- test(S("abcde"), 1, 3, SV("abcde"), 0, 0, 3);
- test(S("abcde"), 1, 3, SV("abcde"), 0, 1, 1);
- test(S("abcde"), 1, 3, SV("abcde"), 0, 2, 1);
- test(S("abcde"), 1, 3, SV("abcde"), 0, 4, 1);
- test(S("abcde"), 1, 3, SV("abcde"), 0, 5, 1);
- test(S("abcde"), 1, 3, SV("abcde"), 0, 6, 1);
- test(S("abcde"), 1, 3, SV("abcde"), 1, 0, 3);
- test(S("abcde"), 1, 3, SV("abcde"), 1, 1, 2);
- test(S("abcde"), 1, 3, SV("abcde"), 1, 2, 1);
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test8() {
+ test(S("abcde"), 1, 1, SV("abcdefghijklmnopqrst"), 1, 19, -18);
+ test(S("abcde"), 1, 1, SV("abcdefghijklmnopqrst"), 1, 20, -18);
+ test(S("abcde"), 1, 1, SV("abcdefghijklmnopqrst"), 10, 0, 1);
+ test(S("abcde"), 1, 1, SV("abcdefghijklmnopqrst"), 10, 1, -9);
+ test(S("abcde"), 1, 1, SV("abcdefghijklmnopqrst"), 10, 5, -9);
+ test(S("abcde"), 1, 1, SV("abcdefghijklmnopqrst"), 10, 9, -9);
+ test(S("abcde"), 1, 1, SV("abcdefghijklmnopqrst"), 10, 10, -9);
+ test(S("abcde"), 1, 1, SV("abcdefghijklmnopqrst"), 10, 11, -9);
+ test(S("abcde"), 1, 1, SV("abcdefghijklmnopqrst"), 19, 0, 1);
+ test(S("abcde"), 1, 1, SV("abcdefghijklmnopqrst"), 19, 1, -18);
+ test(S("abcde"), 1, 1, SV("abcdefghijklmnopqrst"), 19, 2, -18);
+ test(S("abcde"), 1, 1, SV("abcdefghijklmnopqrst"), 20, 0, 1);
+ test(S("abcde"), 1, 1, SV("abcdefghijklmnopqrst"), 20, 1, 1);
+ test(S("abcde"), 1, 1, SV("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcde"), 1, 2, SV(""), 0, 0, 2);
+ test(S("abcde"), 1, 2, SV(""), 0, 1, 2);
+ test(S("abcde"), 1, 2, SV(""), 1, 0, 0);
+ test(S("abcde"), 1, 2, SV("abcde"), 0, 0, 2);
+ test(S("abcde"), 1, 2, SV("abcde"), 0, 1, 1);
+ test(S("abcde"), 1, 2, SV("abcde"), 0, 2, 1);
+ test(S("abcde"), 1, 2, SV("abcde"), 0, 4, 1);
+ test(S("abcde"), 1, 2, SV("abcde"), 0, 5, 1);
+ test(S("abcde"), 1, 2, SV("abcde"), 0, 6, 1);
+ test(S("abcde"), 1, 2, SV("abcde"), 1, 0, 2);
+ test(S("abcde"), 1, 2, SV("abcde"), 1, 1, 1);
+ test(S("abcde"), 1, 2, SV("abcde"), 1, 2, 0);
+ test(S("abcde"), 1, 2, SV("abcde"), 1, 3, -1);
+ test(S("abcde"), 1, 2, SV("abcde"), 1, 4, -2);
+ test(S("abcde"), 1, 2, SV("abcde"), 1, 5, -2);
+ test(S("abcde"), 1, 2, SV("abcde"), 2, 0, 2);
+ test(S("abcde"), 1, 2, SV("abcde"), 2, 1, -1);
+ test(S("abcde"), 1, 2, SV("abcde"), 2, 2, -1);
+ test(S("abcde"), 1, 2, SV("abcde"), 2, 3, -1);
+ test(S("abcde"), 1, 2, SV("abcde"), 2, 4, -1);
+ test(S("abcde"), 1, 2, SV("abcde"), 4, 0, 2);
+ test(S("abcde"), 1, 2, SV("abcde"), 4, 1, -3);
+ test(S("abcde"), 1, 2, SV("abcde"), 4, 2, -3);
+ test(S("abcde"), 1, 2, SV("abcde"), 5, 0, 2);
+ test(S("abcde"), 1, 2, SV("abcde"), 5, 1, 2);
+ test(S("abcde"), 1, 2, SV("abcde"), 6, 0, 0);
+ test(S("abcde"), 1, 2, SV("abcdefghij"), 0, 0, 2);
+ test(S("abcde"), 1, 2, SV("abcdefghij"), 0, 1, 1);
+ test(S("abcde"), 1, 2, SV("abcdefghij"), 0, 5, 1);
+ test(S("abcde"), 1, 2, SV("abcdefghij"), 0, 9, 1);
+ test(S("abcde"), 1, 2, SV("abcdefghij"), 0, 10, 1);
+ test(S("abcde"), 1, 2, SV("abcdefghij"), 0, 11, 1);
+ test(S("abcde"), 1, 2, SV("abcdefghij"), 1, 0, 2);
+ test(S("abcde"), 1, 2, SV("abcdefghij"), 1, 1, 1);
+ test(S("abcde"), 1, 2, SV("abcdefghij"), 1, 4, -2);
+ test(S("abcde"), 1, 2, SV("abcdefghij"), 1, 8, -6);
+ test(S("abcde"), 1, 2, SV("abcdefghij"), 1, 9, -7);
+ test(S("abcde"), 1, 2, SV("abcdefghij"), 1, 10, -7);
+ test(S("abcde"), 1, 2, SV("abcdefghij"), 5, 0, 2);
+ test(S("abcde"), 1, 2, SV("abcdefghij"), 5, 1, -4);
+ test(S("abcde"), 1, 2, SV("abcdefghij"), 5, 2, -4);
+ test(S("abcde"), 1, 2, SV("abcdefghij"), 5, 4, -4);
+ test(S("abcde"), 1, 2, SV("abcdefghij"), 5, 5, -4);
+ test(S("abcde"), 1, 2, SV("abcdefghij"), 5, 6, -4);
+ test(S("abcde"), 1, 2, SV("abcdefghij"), 9, 0, 2);
+ test(S("abcde"), 1, 2, SV("abcdefghij"), 9, 1, -8);
+ test(S("abcde"), 1, 2, SV("abcdefghij"), 9, 2, -8);
+ test(S("abcde"), 1, 2, SV("abcdefghij"), 10, 0, 2);
+ test(S("abcde"), 1, 2, SV("abcdefghij"), 10, 1, 2);
+ test(S("abcde"), 1, 2, SV("abcdefghij"), 11, 0, 0);
+ test(S("abcde"), 1, 2, SV("abcdefghijklmnopqrst"), 0, 0, 2);
+ test(S("abcde"), 1, 2, SV("abcdefghijklmnopqrst"), 0, 1, 1);
+ test(S("abcde"), 1, 2, SV("abcdefghijklmnopqrst"), 0, 10, 1);
+ test(S("abcde"), 1, 2, SV("abcdefghijklmnopqrst"), 0, 19, 1);
+ test(S("abcde"), 1, 2, SV("abcdefghijklmnopqrst"), 0, 20, 1);
+ test(S("abcde"), 1, 2, SV("abcdefghijklmnopqrst"), 0, 21, 1);
+ test(S("abcde"), 1, 2, SV("abcdefghijklmnopqrst"), 1, 0, 2);
+ test(S("abcde"), 1, 2, SV("abcdefghijklmnopqrst"), 1, 1, 1);
+ test(S("abcde"), 1, 2, SV("abcdefghijklmnopqrst"), 1, 9, -7);
+ test(S("abcde"), 1, 2, SV("abcdefghijklmnopqrst"), 1, 18, -16);
+ test(S("abcde"), 1, 2, SV("abcdefghijklmnopqrst"), 1, 19, -17);
+ test(S("abcde"), 1, 2, SV("abcdefghijklmnopqrst"), 1, 20, -17);
+ test(S("abcde"), 1, 2, SV("abcdefghijklmnopqrst"), 10, 0, 2);
+ test(S("abcde"), 1, 2, SV("abcdefghijklmnopqrst"), 10, 1, -9);
+ test(S("abcde"), 1, 2, SV("abcdefghijklmnopqrst"), 10, 5, -9);
+ test(S("abcde"), 1, 2, SV("abcdefghijklmnopqrst"), 10, 9, -9);
+ test(S("abcde"), 1, 2, SV("abcdefghijklmnopqrst"), 10, 10, -9);
+ test(S("abcde"), 1, 2, SV("abcdefghijklmnopqrst"), 10, 11, -9);
+ test(S("abcde"), 1, 2, SV("abcdefghijklmnopqrst"), 19, 0, 2);
+ test(S("abcde"), 1, 2, SV("abcdefghijklmnopqrst"), 19, 1, -18);
+ test(S("abcde"), 1, 2, SV("abcdefghijklmnopqrst"), 19, 2, -18);
+ test(S("abcde"), 1, 2, SV("abcdefghijklmnopqrst"), 20, 0, 2);
+ test(S("abcde"), 1, 2, SV("abcdefghijklmnopqrst"), 20, 1, 2);
+ test(S("abcde"), 1, 2, SV("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcde"), 1, 3, SV(""), 0, 0, 3);
+ test(S("abcde"), 1, 3, SV(""), 0, 1, 3);
+ test(S("abcde"), 1, 3, SV(""), 1, 0, 0);
+ test(S("abcde"), 1, 3, SV("abcde"), 0, 0, 3);
+ test(S("abcde"), 1, 3, SV("abcde"), 0, 1, 1);
+ test(S("abcde"), 1, 3, SV("abcde"), 0, 2, 1);
+ test(S("abcde"), 1, 3, SV("abcde"), 0, 4, 1);
+ test(S("abcde"), 1, 3, SV("abcde"), 0, 5, 1);
+ test(S("abcde"), 1, 3, SV("abcde"), 0, 6, 1);
+ test(S("abcde"), 1, 3, SV("abcde"), 1, 0, 3);
+ test(S("abcde"), 1, 3, SV("abcde"), 1, 1, 2);
+ test(S("abcde"), 1, 3, SV("abcde"), 1, 2, 1);
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test9()
-{
- test(S("abcde"), 1, 3, SV("abcde"), 1, 3, 0);
- test(S("abcde"), 1, 3, SV("abcde"), 1, 4, -1);
- test(S("abcde"), 1, 3, SV("abcde"), 1, 5, -1);
- test(S("abcde"), 1, 3, SV("abcde"), 2, 0, 3);
- test(S("abcde"), 1, 3, SV("abcde"), 2, 1, -1);
- test(S("abcde"), 1, 3, SV("abcde"), 2, 2, -1);
- test(S("abcde"), 1, 3, SV("abcde"), 2, 3, -1);
- test(S("abcde"), 1, 3, SV("abcde"), 2, 4, -1);
- test(S("abcde"), 1, 3, SV("abcde"), 4, 0, 3);
- test(S("abcde"), 1, 3, SV("abcde"), 4, 1, -3);
- test(S("abcde"), 1, 3, SV("abcde"), 4, 2, -3);
- test(S("abcde"), 1, 3, SV("abcde"), 5, 0, 3);
- test(S("abcde"), 1, 3, SV("abcde"), 5, 1, 3);
- test(S("abcde"), 1, 3, SV("abcde"), 6, 0, 0);
- test(S("abcde"), 1, 3, SV("abcdefghij"), 0, 0, 3);
- test(S("abcde"), 1, 3, SV("abcdefghij"), 0, 1, 1);
- test(S("abcde"), 1, 3, SV("abcdefghij"), 0, 5, 1);
- test(S("abcde"), 1, 3, SV("abcdefghij"), 0, 9, 1);
- test(S("abcde"), 1, 3, SV("abcdefghij"), 0, 10, 1);
- test(S("abcde"), 1, 3, SV("abcdefghij"), 0, 11, 1);
- test(S("abcde"), 1, 3, SV("abcdefghij"), 1, 0, 3);
- test(S("abcde"), 1, 3, SV("abcdefghij"), 1, 1, 2);
- test(S("abcde"), 1, 3, SV("abcdefghij"), 1, 4, -1);
- test(S("abcde"), 1, 3, SV("abcdefghij"), 1, 8, -5);
- test(S("abcde"), 1, 3, SV("abcdefghij"), 1, 9, -6);
- test(S("abcde"), 1, 3, SV("abcdefghij"), 1, 10, -6);
- test(S("abcde"), 1, 3, SV("abcdefghij"), 5, 0, 3);
- test(S("abcde"), 1, 3, SV("abcdefghij"), 5, 1, -4);
- test(S("abcde"), 1, 3, SV("abcdefghij"), 5, 2, -4);
- test(S("abcde"), 1, 3, SV("abcdefghij"), 5, 4, -4);
- test(S("abcde"), 1, 3, SV("abcdefghij"), 5, 5, -4);
- test(S("abcde"), 1, 3, SV("abcdefghij"), 5, 6, -4);
- test(S("abcde"), 1, 3, SV("abcdefghij"), 9, 0, 3);
- test(S("abcde"), 1, 3, SV("abcdefghij"), 9, 1, -8);
- test(S("abcde"), 1, 3, SV("abcdefghij"), 9, 2, -8);
- test(S("abcde"), 1, 3, SV("abcdefghij"), 10, 0, 3);
- test(S("abcde"), 1, 3, SV("abcdefghij"), 10, 1, 3);
- test(S("abcde"), 1, 3, SV("abcdefghij"), 11, 0, 0);
- test(S("abcde"), 1, 3, SV("abcdefghijklmnopqrst"), 0, 0, 3);
- test(S("abcde"), 1, 3, SV("abcdefghijklmnopqrst"), 0, 1, 1);
- test(S("abcde"), 1, 3, SV("abcdefghijklmnopqrst"), 0, 10, 1);
- test(S("abcde"), 1, 3, SV("abcdefghijklmnopqrst"), 0, 19, 1);
- test(S("abcde"), 1, 3, SV("abcdefghijklmnopqrst"), 0, 20, 1);
- test(S("abcde"), 1, 3, SV("abcdefghijklmnopqrst"), 0, 21, 1);
- test(S("abcde"), 1, 3, SV("abcdefghijklmnopqrst"), 1, 0, 3);
- test(S("abcde"), 1, 3, SV("abcdefghijklmnopqrst"), 1, 1, 2);
- test(S("abcde"), 1, 3, SV("abcdefghijklmnopqrst"), 1, 9, -6);
- test(S("abcde"), 1, 3, SV("abcdefghijklmnopqrst"), 1, 18, -15);
- test(S("abcde"), 1, 3, SV("abcdefghijklmnopqrst"), 1, 19, -16);
- test(S("abcde"), 1, 3, SV("abcdefghijklmnopqrst"), 1, 20, -16);
- test(S("abcde"), 1, 3, SV("abcdefghijklmnopqrst"), 10, 0, 3);
- test(S("abcde"), 1, 3, SV("abcdefghijklmnopqrst"), 10, 1, -9);
- test(S("abcde"), 1, 3, SV("abcdefghijklmnopqrst"), 10, 5, -9);
- test(S("abcde"), 1, 3, SV("abcdefghijklmnopqrst"), 10, 9, -9);
- test(S("abcde"), 1, 3, SV("abcdefghijklmnopqrst"), 10, 10, -9);
- test(S("abcde"), 1, 3, SV("abcdefghijklmnopqrst"), 10, 11, -9);
- test(S("abcde"), 1, 3, SV("abcdefghijklmnopqrst"), 19, 0, 3);
- test(S("abcde"), 1, 3, SV("abcdefghijklmnopqrst"), 19, 1, -18);
- test(S("abcde"), 1, 3, SV("abcdefghijklmnopqrst"), 19, 2, -18);
- test(S("abcde"), 1, 3, SV("abcdefghijklmnopqrst"), 20, 0, 3);
- test(S("abcde"), 1, 3, SV("abcdefghijklmnopqrst"), 20, 1, 3);
- test(S("abcde"), 1, 3, SV("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcde"), 1, 4, SV(""), 0, 0, 4);
- test(S("abcde"), 1, 4, SV(""), 0, 1, 4);
- test(S("abcde"), 1, 4, SV(""), 1, 0, 0);
- test(S("abcde"), 1, 4, SV("abcde"), 0, 0, 4);
- test(S("abcde"), 1, 4, SV("abcde"), 0, 1, 1);
- test(S("abcde"), 1, 4, SV("abcde"), 0, 2, 1);
- test(S("abcde"), 1, 4, SV("abcde"), 0, 4, 1);
- test(S("abcde"), 1, 4, SV("abcde"), 0, 5, 1);
- test(S("abcde"), 1, 4, SV("abcde"), 0, 6, 1);
- test(S("abcde"), 1, 4, SV("abcde"), 1, 0, 4);
- test(S("abcde"), 1, 4, SV("abcde"), 1, 1, 3);
- test(S("abcde"), 1, 4, SV("abcde"), 1, 2, 2);
- test(S("abcde"), 1, 4, SV("abcde"), 1, 3, 1);
- test(S("abcde"), 1, 4, SV("abcde"), 1, 4, 0);
- test(S("abcde"), 1, 4, SV("abcde"), 1, 5, 0);
- test(S("abcde"), 1, 4, SV("abcde"), 2, 0, 4);
- test(S("abcde"), 1, 4, SV("abcde"), 2, 1, -1);
- test(S("abcde"), 1, 4, SV("abcde"), 2, 2, -1);
- test(S("abcde"), 1, 4, SV("abcde"), 2, 3, -1);
- test(S("abcde"), 1, 4, SV("abcde"), 2, 4, -1);
- test(S("abcde"), 1, 4, SV("abcde"), 4, 0, 4);
- test(S("abcde"), 1, 4, SV("abcde"), 4, 1, -3);
- test(S("abcde"), 1, 4, SV("abcde"), 4, 2, -3);
- test(S("abcde"), 1, 4, SV("abcde"), 5, 0, 4);
- test(S("abcde"), 1, 4, SV("abcde"), 5, 1, 4);
- test(S("abcde"), 1, 4, SV("abcde"), 6, 0, 0);
- test(S("abcde"), 1, 4, SV("abcdefghij"), 0, 0, 4);
- test(S("abcde"), 1, 4, SV("abcdefghij"), 0, 1, 1);
- test(S("abcde"), 1, 4, SV("abcdefghij"), 0, 5, 1);
- test(S("abcde"), 1, 4, SV("abcdefghij"), 0, 9, 1);
- test(S("abcde"), 1, 4, SV("abcdefghij"), 0, 10, 1);
- test(S("abcde"), 1, 4, SV("abcdefghij"), 0, 11, 1);
- test(S("abcde"), 1, 4, SV("abcdefghij"), 1, 0, 4);
- test(S("abcde"), 1, 4, SV("abcdefghij"), 1, 1, 3);
- test(S("abcde"), 1, 4, SV("abcdefghij"), 1, 4, 0);
- test(S("abcde"), 1, 4, SV("abcdefghij"), 1, 8, -4);
- test(S("abcde"), 1, 4, SV("abcdefghij"), 1, 9, -5);
- test(S("abcde"), 1, 4, SV("abcdefghij"), 1, 10, -5);
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test9() {
+ test(S("abcde"), 1, 3, SV("abcde"), 1, 3, 0);
+ test(S("abcde"), 1, 3, SV("abcde"), 1, 4, -1);
+ test(S("abcde"), 1, 3, SV("abcde"), 1, 5, -1);
+ test(S("abcde"), 1, 3, SV("abcde"), 2, 0, 3);
+ test(S("abcde"), 1, 3, SV("abcde"), 2, 1, -1);
+ test(S("abcde"), 1, 3, SV("abcde"), 2, 2, -1);
+ test(S("abcde"), 1, 3, SV("abcde"), 2, 3, -1);
+ test(S("abcde"), 1, 3, SV("abcde"), 2, 4, -1);
+ test(S("abcde"), 1, 3, SV("abcde"), 4, 0, 3);
+ test(S("abcde"), 1, 3, SV("abcde"), 4, 1, -3);
+ test(S("abcde"), 1, 3, SV("abcde"), 4, 2, -3);
+ test(S("abcde"), 1, 3, SV("abcde"), 5, 0, 3);
+ test(S("abcde"), 1, 3, SV("abcde"), 5, 1, 3);
+ test(S("abcde"), 1, 3, SV("abcde"), 6, 0, 0);
+ test(S("abcde"), 1, 3, SV("abcdefghij"), 0, 0, 3);
+ test(S("abcde"), 1, 3, SV("abcdefghij"), 0, 1, 1);
+ test(S("abcde"), 1, 3, SV("abcdefghij"), 0, 5, 1);
+ test(S("abcde"), 1, 3, SV("abcdefghij"), 0, 9, 1);
+ test(S("abcde"), 1, 3, SV("abcdefghij"), 0, 10, 1);
+ test(S("abcde"), 1, 3, SV("abcdefghij"), 0, 11, 1);
+ test(S("abcde"), 1, 3, SV("abcdefghij"), 1, 0, 3);
+ test(S("abcde"), 1, 3, SV("abcdefghij"), 1, 1, 2);
+ test(S("abcde"), 1, 3, SV("abcdefghij"), 1, 4, -1);
+ test(S("abcde"), 1, 3, SV("abcdefghij"), 1, 8, -5);
+ test(S("abcde"), 1, 3, SV("abcdefghij"), 1, 9, -6);
+ test(S("abcde"), 1, 3, SV("abcdefghij"), 1, 10, -6);
+ test(S("abcde"), 1, 3, SV("abcdefghij"), 5, 0, 3);
+ test(S("abcde"), 1, 3, SV("abcdefghij"), 5, 1, -4);
+ test(S("abcde"), 1, 3, SV("abcdefghij"), 5, 2, -4);
+ test(S("abcde"), 1, 3, SV("abcdefghij"), 5, 4, -4);
+ test(S("abcde"), 1, 3, SV("abcdefghij"), 5, 5, -4);
+ test(S("abcde"), 1, 3, SV("abcdefghij"), 5, 6, -4);
+ test(S("abcde"), 1, 3, SV("abcdefghij"), 9, 0, 3);
+ test(S("abcde"), 1, 3, SV("abcdefghij"), 9, 1, -8);
+ test(S("abcde"), 1, 3, SV("abcdefghij"), 9, 2, -8);
+ test(S("abcde"), 1, 3, SV("abcdefghij"), 10, 0, 3);
+ test(S("abcde"), 1, 3, SV("abcdefghij"), 10, 1, 3);
+ test(S("abcde"), 1, 3, SV("abcdefghij"), 11, 0, 0);
+ test(S("abcde"), 1, 3, SV("abcdefghijklmnopqrst"), 0, 0, 3);
+ test(S("abcde"), 1, 3, SV("abcdefghijklmnopqrst"), 0, 1, 1);
+ test(S("abcde"), 1, 3, SV("abcdefghijklmnopqrst"), 0, 10, 1);
+ test(S("abcde"), 1, 3, SV("abcdefghijklmnopqrst"), 0, 19, 1);
+ test(S("abcde"), 1, 3, SV("abcdefghijklmnopqrst"), 0, 20, 1);
+ test(S("abcde"), 1, 3, SV("abcdefghijklmnopqrst"), 0, 21, 1);
+ test(S("abcde"), 1, 3, SV("abcdefghijklmnopqrst"), 1, 0, 3);
+ test(S("abcde"), 1, 3, SV("abcdefghijklmnopqrst"), 1, 1, 2);
+ test(S("abcde"), 1, 3, SV("abcdefghijklmnopqrst"), 1, 9, -6);
+ test(S("abcde"), 1, 3, SV("abcdefghijklmnopqrst"), 1, 18, -15);
+ test(S("abcde"), 1, 3, SV("abcdefghijklmnopqrst"), 1, 19, -16);
+ test(S("abcde"), 1, 3, SV("abcdefghijklmnopqrst"), 1, 20, -16);
+ test(S("abcde"), 1, 3, SV("abcdefghijklmnopqrst"), 10, 0, 3);
+ test(S("abcde"), 1, 3, SV("abcdefghijklmnopqrst"), 10, 1, -9);
+ test(S("abcde"), 1, 3, SV("abcdefghijklmnopqrst"), 10, 5, -9);
+ test(S("abcde"), 1, 3, SV("abcdefghijklmnopqrst"), 10, 9, -9);
+ test(S("abcde"), 1, 3, SV("abcdefghijklmnopqrst"), 10, 10, -9);
+ test(S("abcde"), 1, 3, SV("abcdefghijklmnopqrst"), 10, 11, -9);
+ test(S("abcde"), 1, 3, SV("abcdefghijklmnopqrst"), 19, 0, 3);
+ test(S("abcde"), 1, 3, SV("abcdefghijklmnopqrst"), 19, 1, -18);
+ test(S("abcde"), 1, 3, SV("abcdefghijklmnopqrst"), 19, 2, -18);
+ test(S("abcde"), 1, 3, SV("abcdefghijklmnopqrst"), 20, 0, 3);
+ test(S("abcde"), 1, 3, SV("abcdefghijklmnopqrst"), 20, 1, 3);
+ test(S("abcde"), 1, 3, SV("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcde"), 1, 4, SV(""), 0, 0, 4);
+ test(S("abcde"), 1, 4, SV(""), 0, 1, 4);
+ test(S("abcde"), 1, 4, SV(""), 1, 0, 0);
+ test(S("abcde"), 1, 4, SV("abcde"), 0, 0, 4);
+ test(S("abcde"), 1, 4, SV("abcde"), 0, 1, 1);
+ test(S("abcde"), 1, 4, SV("abcde"), 0, 2, 1);
+ test(S("abcde"), 1, 4, SV("abcde"), 0, 4, 1);
+ test(S("abcde"), 1, 4, SV("abcde"), 0, 5, 1);
+ test(S("abcde"), 1, 4, SV("abcde"), 0, 6, 1);
+ test(S("abcde"), 1, 4, SV("abcde"), 1, 0, 4);
+ test(S("abcde"), 1, 4, SV("abcde"), 1, 1, 3);
+ test(S("abcde"), 1, 4, SV("abcde"), 1, 2, 2);
+ test(S("abcde"), 1, 4, SV("abcde"), 1, 3, 1);
+ test(S("abcde"), 1, 4, SV("abcde"), 1, 4, 0);
+ test(S("abcde"), 1, 4, SV("abcde"), 1, 5, 0);
+ test(S("abcde"), 1, 4, SV("abcde"), 2, 0, 4);
+ test(S("abcde"), 1, 4, SV("abcde"), 2, 1, -1);
+ test(S("abcde"), 1, 4, SV("abcde"), 2, 2, -1);
+ test(S("abcde"), 1, 4, SV("abcde"), 2, 3, -1);
+ test(S("abcde"), 1, 4, SV("abcde"), 2, 4, -1);
+ test(S("abcde"), 1, 4, SV("abcde"), 4, 0, 4);
+ test(S("abcde"), 1, 4, SV("abcde"), 4, 1, -3);
+ test(S("abcde"), 1, 4, SV("abcde"), 4, 2, -3);
+ test(S("abcde"), 1, 4, SV("abcde"), 5, 0, 4);
+ test(S("abcde"), 1, 4, SV("abcde"), 5, 1, 4);
+ test(S("abcde"), 1, 4, SV("abcde"), 6, 0, 0);
+ test(S("abcde"), 1, 4, SV("abcdefghij"), 0, 0, 4);
+ test(S("abcde"), 1, 4, SV("abcdefghij"), 0, 1, 1);
+ test(S("abcde"), 1, 4, SV("abcdefghij"), 0, 5, 1);
+ test(S("abcde"), 1, 4, SV("abcdefghij"), 0, 9, 1);
+ test(S("abcde"), 1, 4, SV("abcdefghij"), 0, 10, 1);
+ test(S("abcde"), 1, 4, SV("abcdefghij"), 0, 11, 1);
+ test(S("abcde"), 1, 4, SV("abcdefghij"), 1, 0, 4);
+ test(S("abcde"), 1, 4, SV("abcdefghij"), 1, 1, 3);
+ test(S("abcde"), 1, 4, SV("abcdefghij"), 1, 4, 0);
+ test(S("abcde"), 1, 4, SV("abcdefghij"), 1, 8, -4);
+ test(S("abcde"), 1, 4, SV("abcdefghij"), 1, 9, -5);
+ test(S("abcde"), 1, 4, SV("abcdefghij"), 1, 10, -5);
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test10()
-{
- test(S("abcde"), 1, 4, SV("abcdefghij"), 5, 0, 4);
- test(S("abcde"), 1, 4, SV("abcdefghij"), 5, 1, -4);
- test(S("abcde"), 1, 4, SV("abcdefghij"), 5, 2, -4);
- test(S("abcde"), 1, 4, SV("abcdefghij"), 5, 4, -4);
- test(S("abcde"), 1, 4, SV("abcdefghij"), 5, 5, -4);
- test(S("abcde"), 1, 4, SV("abcdefghij"), 5, 6, -4);
- test(S("abcde"), 1, 4, SV("abcdefghij"), 9, 0, 4);
- test(S("abcde"), 1, 4, SV("abcdefghij"), 9, 1, -8);
- test(S("abcde"), 1, 4, SV("abcdefghij"), 9, 2, -8);
- test(S("abcde"), 1, 4, SV("abcdefghij"), 10, 0, 4);
- test(S("abcde"), 1, 4, SV("abcdefghij"), 10, 1, 4);
- test(S("abcde"), 1, 4, SV("abcdefghij"), 11, 0, 0);
- test(S("abcde"), 1, 4, SV("abcdefghijklmnopqrst"), 0, 0, 4);
- test(S("abcde"), 1, 4, SV("abcdefghijklmnopqrst"), 0, 1, 1);
- test(S("abcde"), 1, 4, SV("abcdefghijklmnopqrst"), 0, 10, 1);
- test(S("abcde"), 1, 4, SV("abcdefghijklmnopqrst"), 0, 19, 1);
- test(S("abcde"), 1, 4, SV("abcdefghijklmnopqrst"), 0, 20, 1);
- test(S("abcde"), 1, 4, SV("abcdefghijklmnopqrst"), 0, 21, 1);
- test(S("abcde"), 1, 4, SV("abcdefghijklmnopqrst"), 1, 0, 4);
- test(S("abcde"), 1, 4, SV("abcdefghijklmnopqrst"), 1, 1, 3);
- test(S("abcde"), 1, 4, SV("abcdefghijklmnopqrst"), 1, 9, -5);
- test(S("abcde"), 1, 4, SV("abcdefghijklmnopqrst"), 1, 18, -14);
- test(S("abcde"), 1, 4, SV("abcdefghijklmnopqrst"), 1, 19, -15);
- test(S("abcde"), 1, 4, SV("abcdefghijklmnopqrst"), 1, 20, -15);
- test(S("abcde"), 1, 4, SV("abcdefghijklmnopqrst"), 10, 0, 4);
- test(S("abcde"), 1, 4, SV("abcdefghijklmnopqrst"), 10, 1, -9);
- test(S("abcde"), 1, 4, SV("abcdefghijklmnopqrst"), 10, 5, -9);
- test(S("abcde"), 1, 4, SV("abcdefghijklmnopqrst"), 10, 9, -9);
- test(S("abcde"), 1, 4, SV("abcdefghijklmnopqrst"), 10, 10, -9);
- test(S("abcde"), 1, 4, SV("abcdefghijklmnopqrst"), 10, 11, -9);
- test(S("abcde"), 1, 4, SV("abcdefghijklmnopqrst"), 19, 0, 4);
- test(S("abcde"), 1, 4, SV("abcdefghijklmnopqrst"), 19, 1, -18);
- test(S("abcde"), 1, 4, SV("abcdefghijklmnopqrst"), 19, 2, -18);
- test(S("abcde"), 1, 4, SV("abcdefghijklmnopqrst"), 20, 0, 4);
- test(S("abcde"), 1, 4, SV("abcdefghijklmnopqrst"), 20, 1, 4);
- test(S("abcde"), 1, 4, SV("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcde"), 1, 5, SV(""), 0, 0, 4);
- test(S("abcde"), 1, 5, SV(""), 0, 1, 4);
- test(S("abcde"), 1, 5, SV(""), 1, 0, 0);
- test(S("abcde"), 1, 5, SV("abcde"), 0, 0, 4);
- test(S("abcde"), 1, 5, SV("abcde"), 0, 1, 1);
- test(S("abcde"), 1, 5, SV("abcde"), 0, 2, 1);
- test(S("abcde"), 1, 5, SV("abcde"), 0, 4, 1);
- test(S("abcde"), 1, 5, SV("abcde"), 0, 5, 1);
- test(S("abcde"), 1, 5, SV("abcde"), 0, 6, 1);
- test(S("abcde"), 1, 5, SV("abcde"), 1, 0, 4);
- test(S("abcde"), 1, 5, SV("abcde"), 1, 1, 3);
- test(S("abcde"), 1, 5, SV("abcde"), 1, 2, 2);
- test(S("abcde"), 1, 5, SV("abcde"), 1, 3, 1);
- test(S("abcde"), 1, 5, SV("abcde"), 1, 4, 0);
- test(S("abcde"), 1, 5, SV("abcde"), 1, 5, 0);
- test(S("abcde"), 1, 5, SV("abcde"), 2, 0, 4);
- test(S("abcde"), 1, 5, SV("abcde"), 2, 1, -1);
- test(S("abcde"), 1, 5, SV("abcde"), 2, 2, -1);
- test(S("abcde"), 1, 5, SV("abcde"), 2, 3, -1);
- test(S("abcde"), 1, 5, SV("abcde"), 2, 4, -1);
- test(S("abcde"), 1, 5, SV("abcde"), 4, 0, 4);
- test(S("abcde"), 1, 5, SV("abcde"), 4, 1, -3);
- test(S("abcde"), 1, 5, SV("abcde"), 4, 2, -3);
- test(S("abcde"), 1, 5, SV("abcde"), 5, 0, 4);
- test(S("abcde"), 1, 5, SV("abcde"), 5, 1, 4);
- test(S("abcde"), 1, 5, SV("abcde"), 6, 0, 0);
- test(S("abcde"), 1, 5, SV("abcdefghij"), 0, 0, 4);
- test(S("abcde"), 1, 5, SV("abcdefghij"), 0, 1, 1);
- test(S("abcde"), 1, 5, SV("abcdefghij"), 0, 5, 1);
- test(S("abcde"), 1, 5, SV("abcdefghij"), 0, 9, 1);
- test(S("abcde"), 1, 5, SV("abcdefghij"), 0, 10, 1);
- test(S("abcde"), 1, 5, SV("abcdefghij"), 0, 11, 1);
- test(S("abcde"), 1, 5, SV("abcdefghij"), 1, 0, 4);
- test(S("abcde"), 1, 5, SV("abcdefghij"), 1, 1, 3);
- test(S("abcde"), 1, 5, SV("abcdefghij"), 1, 4, 0);
- test(S("abcde"), 1, 5, SV("abcdefghij"), 1, 8, -4);
- test(S("abcde"), 1, 5, SV("abcdefghij"), 1, 9, -5);
- test(S("abcde"), 1, 5, SV("abcdefghij"), 1, 10, -5);
- test(S("abcde"), 1, 5, SV("abcdefghij"), 5, 0, 4);
- test(S("abcde"), 1, 5, SV("abcdefghij"), 5, 1, -4);
- test(S("abcde"), 1, 5, SV("abcdefghij"), 5, 2, -4);
- test(S("abcde"), 1, 5, SV("abcdefghij"), 5, 4, -4);
- test(S("abcde"), 1, 5, SV("abcdefghij"), 5, 5, -4);
- test(S("abcde"), 1, 5, SV("abcdefghij"), 5, 6, -4);
- test(S("abcde"), 1, 5, SV("abcdefghij"), 9, 0, 4);
- test(S("abcde"), 1, 5, SV("abcdefghij"), 9, 1, -8);
- test(S("abcde"), 1, 5, SV("abcdefghij"), 9, 2, -8);
- test(S("abcde"), 1, 5, SV("abcdefghij"), 10, 0, 4);
- test(S("abcde"), 1, 5, SV("abcdefghij"), 10, 1, 4);
- test(S("abcde"), 1, 5, SV("abcdefghij"), 11, 0, 0);
- test(S("abcde"), 1, 5, SV("abcdefghijklmnopqrst"), 0, 0, 4);
- test(S("abcde"), 1, 5, SV("abcdefghijklmnopqrst"), 0, 1, 1);
- test(S("abcde"), 1, 5, SV("abcdefghijklmnopqrst"), 0, 10, 1);
- test(S("abcde"), 1, 5, SV("abcdefghijklmnopqrst"), 0, 19, 1);
- test(S("abcde"), 1, 5, SV("abcdefghijklmnopqrst"), 0, 20, 1);
- test(S("abcde"), 1, 5, SV("abcdefghijklmnopqrst"), 0, 21, 1);
- test(S("abcde"), 1, 5, SV("abcdefghijklmnopqrst"), 1, 0, 4);
- test(S("abcde"), 1, 5, SV("abcdefghijklmnopqrst"), 1, 1, 3);
- test(S("abcde"), 1, 5, SV("abcdefghijklmnopqrst"), 1, 9, -5);
- test(S("abcde"), 1, 5, SV("abcdefghijklmnopqrst"), 1, 18, -14);
- test(S("abcde"), 1, 5, SV("abcdefghijklmnopqrst"), 1, 19, -15);
- test(S("abcde"), 1, 5, SV("abcdefghijklmnopqrst"), 1, 20, -15);
- test(S("abcde"), 1, 5, SV("abcdefghijklmnopqrst"), 10, 0, 4);
- test(S("abcde"), 1, 5, SV("abcdefghijklmnopqrst"), 10, 1, -9);
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test10() {
+ test(S("abcde"), 1, 4, SV("abcdefghij"), 5, 0, 4);
+ test(S("abcde"), 1, 4, SV("abcdefghij"), 5, 1, -4);
+ test(S("abcde"), 1, 4, SV("abcdefghij"), 5, 2, -4);
+ test(S("abcde"), 1, 4, SV("abcdefghij"), 5, 4, -4);
+ test(S("abcde"), 1, 4, SV("abcdefghij"), 5, 5, -4);
+ test(S("abcde"), 1, 4, SV("abcdefghij"), 5, 6, -4);
+ test(S("abcde"), 1, 4, SV("abcdefghij"), 9, 0, 4);
+ test(S("abcde"), 1, 4, SV("abcdefghij"), 9, 1, -8);
+ test(S("abcde"), 1, 4, SV("abcdefghij"), 9, 2, -8);
+ test(S("abcde"), 1, 4, SV("abcdefghij"), 10, 0, 4);
+ test(S("abcde"), 1, 4, SV("abcdefghij"), 10, 1, 4);
+ test(S("abcde"), 1, 4, SV("abcdefghij"), 11, 0, 0);
+ test(S("abcde"), 1, 4, SV("abcdefghijklmnopqrst"), 0, 0, 4);
+ test(S("abcde"), 1, 4, SV("abcdefghijklmnopqrst"), 0, 1, 1);
+ test(S("abcde"), 1, 4, SV("abcdefghijklmnopqrst"), 0, 10, 1);
+ test(S("abcde"), 1, 4, SV("abcdefghijklmnopqrst"), 0, 19, 1);
+ test(S("abcde"), 1, 4, SV("abcdefghijklmnopqrst"), 0, 20, 1);
+ test(S("abcde"), 1, 4, SV("abcdefghijklmnopqrst"), 0, 21, 1);
+ test(S("abcde"), 1, 4, SV("abcdefghijklmnopqrst"), 1, 0, 4);
+ test(S("abcde"), 1, 4, SV("abcdefghijklmnopqrst"), 1, 1, 3);
+ test(S("abcde"), 1, 4, SV("abcdefghijklmnopqrst"), 1, 9, -5);
+ test(S("abcde"), 1, 4, SV("abcdefghijklmnopqrst"), 1, 18, -14);
+ test(S("abcde"), 1, 4, SV("abcdefghijklmnopqrst"), 1, 19, -15);
+ test(S("abcde"), 1, 4, SV("abcdefghijklmnopqrst"), 1, 20, -15);
+ test(S("abcde"), 1, 4, SV("abcdefghijklmnopqrst"), 10, 0, 4);
+ test(S("abcde"), 1, 4, SV("abcdefghijklmnopqrst"), 10, 1, -9);
+ test(S("abcde"), 1, 4, SV("abcdefghijklmnopqrst"), 10, 5, -9);
+ test(S("abcde"), 1, 4, SV("abcdefghijklmnopqrst"), 10, 9, -9);
+ test(S("abcde"), 1, 4, SV("abcdefghijklmnopqrst"), 10, 10, -9);
+ test(S("abcde"), 1, 4, SV("abcdefghijklmnopqrst"), 10, 11, -9);
+ test(S("abcde"), 1, 4, SV("abcdefghijklmnopqrst"), 19, 0, 4);
+ test(S("abcde"), 1, 4, SV("abcdefghijklmnopqrst"), 19, 1, -18);
+ test(S("abcde"), 1, 4, SV("abcdefghijklmnopqrst"), 19, 2, -18);
+ test(S("abcde"), 1, 4, SV("abcdefghijklmnopqrst"), 20, 0, 4);
+ test(S("abcde"), 1, 4, SV("abcdefghijklmnopqrst"), 20, 1, 4);
+ test(S("abcde"), 1, 4, SV("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcde"), 1, 5, SV(""), 0, 0, 4);
+ test(S("abcde"), 1, 5, SV(""), 0, 1, 4);
+ test(S("abcde"), 1, 5, SV(""), 1, 0, 0);
+ test(S("abcde"), 1, 5, SV("abcde"), 0, 0, 4);
+ test(S("abcde"), 1, 5, SV("abcde"), 0, 1, 1);
+ test(S("abcde"), 1, 5, SV("abcde"), 0, 2, 1);
+ test(S("abcde"), 1, 5, SV("abcde"), 0, 4, 1);
+ test(S("abcde"), 1, 5, SV("abcde"), 0, 5, 1);
+ test(S("abcde"), 1, 5, SV("abcde"), 0, 6, 1);
+ test(S("abcde"), 1, 5, SV("abcde"), 1, 0, 4);
+ test(S("abcde"), 1, 5, SV("abcde"), 1, 1, 3);
+ test(S("abcde"), 1, 5, SV("abcde"), 1, 2, 2);
+ test(S("abcde"), 1, 5, SV("abcde"), 1, 3, 1);
+ test(S("abcde"), 1, 5, SV("abcde"), 1, 4, 0);
+ test(S("abcde"), 1, 5, SV("abcde"), 1, 5, 0);
+ test(S("abcde"), 1, 5, SV("abcde"), 2, 0, 4);
+ test(S("abcde"), 1, 5, SV("abcde"), 2, 1, -1);
+ test(S("abcde"), 1, 5, SV("abcde"), 2, 2, -1);
+ test(S("abcde"), 1, 5, SV("abcde"), 2, 3, -1);
+ test(S("abcde"), 1, 5, SV("abcde"), 2, 4, -1);
+ test(S("abcde"), 1, 5, SV("abcde"), 4, 0, 4);
+ test(S("abcde"), 1, 5, SV("abcde"), 4, 1, -3);
+ test(S("abcde"), 1, 5, SV("abcde"), 4, 2, -3);
+ test(S("abcde"), 1, 5, SV("abcde"), 5, 0, 4);
+ test(S("abcde"), 1, 5, SV("abcde"), 5, 1, 4);
+ test(S("abcde"), 1, 5, SV("abcde"), 6, 0, 0);
+ test(S("abcde"), 1, 5, SV("abcdefghij"), 0, 0, 4);
+ test(S("abcde"), 1, 5, SV("abcdefghij"), 0, 1, 1);
+ test(S("abcde"), 1, 5, SV("abcdefghij"), 0, 5, 1);
+ test(S("abcde"), 1, 5, SV("abcdefghij"), 0, 9, 1);
+ test(S("abcde"), 1, 5, SV("abcdefghij"), 0, 10, 1);
+ test(S("abcde"), 1, 5, SV("abcdefghij"), 0, 11, 1);
+ test(S("abcde"), 1, 5, SV("abcdefghij"), 1, 0, 4);
+ test(S("abcde"), 1, 5, SV("abcdefghij"), 1, 1, 3);
+ test(S("abcde"), 1, 5, SV("abcdefghij"), 1, 4, 0);
+ test(S("abcde"), 1, 5, SV("abcdefghij"), 1, 8, -4);
+ test(S("abcde"), 1, 5, SV("abcdefghij"), 1, 9, -5);
+ test(S("abcde"), 1, 5, SV("abcdefghij"), 1, 10, -5);
+ test(S("abcde"), 1, 5, SV("abcdefghij"), 5, 0, 4);
+ test(S("abcde"), 1, 5, SV("abcdefghij"), 5, 1, -4);
+ test(S("abcde"), 1, 5, SV("abcdefghij"), 5, 2, -4);
+ test(S("abcde"), 1, 5, SV("abcdefghij"), 5, 4, -4);
+ test(S("abcde"), 1, 5, SV("abcdefghij"), 5, 5, -4);
+ test(S("abcde"), 1, 5, SV("abcdefghij"), 5, 6, -4);
+ test(S("abcde"), 1, 5, SV("abcdefghij"), 9, 0, 4);
+ test(S("abcde"), 1, 5, SV("abcdefghij"), 9, 1, -8);
+ test(S("abcde"), 1, 5, SV("abcdefghij"), 9, 2, -8);
+ test(S("abcde"), 1, 5, SV("abcdefghij"), 10, 0, 4);
+ test(S("abcde"), 1, 5, SV("abcdefghij"), 10, 1, 4);
+ test(S("abcde"), 1, 5, SV("abcdefghij"), 11, 0, 0);
+ test(S("abcde"), 1, 5, SV("abcdefghijklmnopqrst"), 0, 0, 4);
+ test(S("abcde"), 1, 5, SV("abcdefghijklmnopqrst"), 0, 1, 1);
+ test(S("abcde"), 1, 5, SV("abcdefghijklmnopqrst"), 0, 10, 1);
+ test(S("abcde"), 1, 5, SV("abcdefghijklmnopqrst"), 0, 19, 1);
+ test(S("abcde"), 1, 5, SV("abcdefghijklmnopqrst"), 0, 20, 1);
+ test(S("abcde"), 1, 5, SV("abcdefghijklmnopqrst"), 0, 21, 1);
+ test(S("abcde"), 1, 5, SV("abcdefghijklmnopqrst"), 1, 0, 4);
+ test(S("abcde"), 1, 5, SV("abcdefghijklmnopqrst"), 1, 1, 3);
+ test(S("abcde"), 1, 5, SV("abcdefghijklmnopqrst"), 1, 9, -5);
+ test(S("abcde"), 1, 5, SV("abcdefghijklmnopqrst"), 1, 18, -14);
+ test(S("abcde"), 1, 5, SV("abcdefghijklmnopqrst"), 1, 19, -15);
+ test(S("abcde"), 1, 5, SV("abcdefghijklmnopqrst"), 1, 20, -15);
+ test(S("abcde"), 1, 5, SV("abcdefghijklmnopqrst"), 10, 0, 4);
+ test(S("abcde"), 1, 5, SV("abcdefghijklmnopqrst"), 10, 1, -9);
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test11()
-{
- test(S("abcde"), 1, 5, SV("abcdefghijklmnopqrst"), 10, 5, -9);
- test(S("abcde"), 1, 5, SV("abcdefghijklmnopqrst"), 10, 9, -9);
- test(S("abcde"), 1, 5, SV("abcdefghijklmnopqrst"), 10, 10, -9);
- test(S("abcde"), 1, 5, SV("abcdefghijklmnopqrst"), 10, 11, -9);
- test(S("abcde"), 1, 5, SV("abcdefghijklmnopqrst"), 19, 0, 4);
- test(S("abcde"), 1, 5, SV("abcdefghijklmnopqrst"), 19, 1, -18);
- test(S("abcde"), 1, 5, SV("abcdefghijklmnopqrst"), 19, 2, -18);
- test(S("abcde"), 1, 5, SV("abcdefghijklmnopqrst"), 20, 0, 4);
- test(S("abcde"), 1, 5, SV("abcdefghijklmnopqrst"), 20, 1, 4);
- test(S("abcde"), 1, 5, SV("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcde"), 2, 0, SV(""), 0, 0, 0);
- test(S("abcde"), 2, 0, SV(""), 0, 1, 0);
- test(S("abcde"), 2, 0, SV(""), 1, 0, 0);
- test(S("abcde"), 2, 0, SV("abcde"), 0, 0, 0);
- test(S("abcde"), 2, 0, SV("abcde"), 0, 1, -1);
- test(S("abcde"), 2, 0, SV("abcde"), 0, 2, -2);
- test(S("abcde"), 2, 0, SV("abcde"), 0, 4, -4);
- test(S("abcde"), 2, 0, SV("abcde"), 0, 5, -5);
- test(S("abcde"), 2, 0, SV("abcde"), 0, 6, -5);
- test(S("abcde"), 2, 0, SV("abcde"), 1, 0, 0);
- test(S("abcde"), 2, 0, SV("abcde"), 1, 1, -1);
- test(S("abcde"), 2, 0, SV("abcde"), 1, 2, -2);
- test(S("abcde"), 2, 0, SV("abcde"), 1, 3, -3);
- test(S("abcde"), 2, 0, SV("abcde"), 1, 4, -4);
- test(S("abcde"), 2, 0, SV("abcde"), 1, 5, -4);
- test(S("abcde"), 2, 0, SV("abcde"), 2, 0, 0);
- test(S("abcde"), 2, 0, SV("abcde"), 2, 1, -1);
- test(S("abcde"), 2, 0, SV("abcde"), 2, 2, -2);
- test(S("abcde"), 2, 0, SV("abcde"), 2, 3, -3);
- test(S("abcde"), 2, 0, SV("abcde"), 2, 4, -3);
- test(S("abcde"), 2, 0, SV("abcde"), 4, 0, 0);
- test(S("abcde"), 2, 0, SV("abcde"), 4, 1, -1);
- test(S("abcde"), 2, 0, SV("abcde"), 4, 2, -1);
- test(S("abcde"), 2, 0, SV("abcde"), 5, 0, 0);
- test(S("abcde"), 2, 0, SV("abcde"), 5, 1, 0);
- test(S("abcde"), 2, 0, SV("abcde"), 6, 0, 0);
- test(S("abcde"), 2, 0, SV("abcdefghij"), 0, 0, 0);
- test(S("abcde"), 2, 0, SV("abcdefghij"), 0, 1, -1);
- test(S("abcde"), 2, 0, SV("abcdefghij"), 0, 5, -5);
- test(S("abcde"), 2, 0, SV("abcdefghij"), 0, 9, -9);
- test(S("abcde"), 2, 0, SV("abcdefghij"), 0, 10, -10);
- test(S("abcde"), 2, 0, SV("abcdefghij"), 0, 11, -10);
- test(S("abcde"), 2, 0, SV("abcdefghij"), 1, 0, 0);
- test(S("abcde"), 2, 0, SV("abcdefghij"), 1, 1, -1);
- test(S("abcde"), 2, 0, SV("abcdefghij"), 1, 4, -4);
- test(S("abcde"), 2, 0, SV("abcdefghij"), 1, 8, -8);
- test(S("abcde"), 2, 0, SV("abcdefghij"), 1, 9, -9);
- test(S("abcde"), 2, 0, SV("abcdefghij"), 1, 10, -9);
- test(S("abcde"), 2, 0, SV("abcdefghij"), 5, 0, 0);
- test(S("abcde"), 2, 0, SV("abcdefghij"), 5, 1, -1);
- test(S("abcde"), 2, 0, SV("abcdefghij"), 5, 2, -2);
- test(S("abcde"), 2, 0, SV("abcdefghij"), 5, 4, -4);
- test(S("abcde"), 2, 0, SV("abcdefghij"), 5, 5, -5);
- test(S("abcde"), 2, 0, SV("abcdefghij"), 5, 6, -5);
- test(S("abcde"), 2, 0, SV("abcdefghij"), 9, 0, 0);
- test(S("abcde"), 2, 0, SV("abcdefghij"), 9, 1, -1);
- test(S("abcde"), 2, 0, SV("abcdefghij"), 9, 2, -1);
- test(S("abcde"), 2, 0, SV("abcdefghij"), 10, 0, 0);
- test(S("abcde"), 2, 0, SV("abcdefghij"), 10, 1, 0);
- test(S("abcde"), 2, 0, SV("abcdefghij"), 11, 0, 0);
- test(S("abcde"), 2, 0, SV("abcdefghijklmnopqrst"), 0, 0, 0);
- test(S("abcde"), 2, 0, SV("abcdefghijklmnopqrst"), 0, 1, -1);
- test(S("abcde"), 2, 0, SV("abcdefghijklmnopqrst"), 0, 10, -10);
- test(S("abcde"), 2, 0, SV("abcdefghijklmnopqrst"), 0, 19, -19);
- test(S("abcde"), 2, 0, SV("abcdefghijklmnopqrst"), 0, 20, -20);
- test(S("abcde"), 2, 0, SV("abcdefghijklmnopqrst"), 0, 21, -20);
- test(S("abcde"), 2, 0, SV("abcdefghijklmnopqrst"), 1, 0, 0);
- test(S("abcde"), 2, 0, SV("abcdefghijklmnopqrst"), 1, 1, -1);
- test(S("abcde"), 2, 0, SV("abcdefghijklmnopqrst"), 1, 9, -9);
- test(S("abcde"), 2, 0, SV("abcdefghijklmnopqrst"), 1, 18, -18);
- test(S("abcde"), 2, 0, SV("abcdefghijklmnopqrst"), 1, 19, -19);
- test(S("abcde"), 2, 0, SV("abcdefghijklmnopqrst"), 1, 20, -19);
- test(S("abcde"), 2, 0, SV("abcdefghijklmnopqrst"), 10, 0, 0);
- test(S("abcde"), 2, 0, SV("abcdefghijklmnopqrst"), 10, 1, -1);
- test(S("abcde"), 2, 0, SV("abcdefghijklmnopqrst"), 10, 5, -5);
- test(S("abcde"), 2, 0, SV("abcdefghijklmnopqrst"), 10, 9, -9);
- test(S("abcde"), 2, 0, SV("abcdefghijklmnopqrst"), 10, 10, -10);
- test(S("abcde"), 2, 0, SV("abcdefghijklmnopqrst"), 10, 11, -10);
- test(S("abcde"), 2, 0, SV("abcdefghijklmnopqrst"), 19, 0, 0);
- test(S("abcde"), 2, 0, SV("abcdefghijklmnopqrst"), 19, 1, -1);
- test(S("abcde"), 2, 0, SV("abcdefghijklmnopqrst"), 19, 2, -1);
- test(S("abcde"), 2, 0, SV("abcdefghijklmnopqrst"), 20, 0, 0);
- test(S("abcde"), 2, 0, SV("abcdefghijklmnopqrst"), 20, 1, 0);
- test(S("abcde"), 2, 0, SV("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcde"), 2, 1, SV(""), 0, 0, 1);
- test(S("abcde"), 2, 1, SV(""), 0, 1, 1);
- test(S("abcde"), 2, 1, SV(""), 1, 0, 0);
- test(S("abcde"), 2, 1, SV("abcde"), 0, 0, 1);
- test(S("abcde"), 2, 1, SV("abcde"), 0, 1, 2);
- test(S("abcde"), 2, 1, SV("abcde"), 0, 2, 2);
- test(S("abcde"), 2, 1, SV("abcde"), 0, 4, 2);
- test(S("abcde"), 2, 1, SV("abcde"), 0, 5, 2);
- test(S("abcde"), 2, 1, SV("abcde"), 0, 6, 2);
- test(S("abcde"), 2, 1, SV("abcde"), 1, 0, 1);
- test(S("abcde"), 2, 1, SV("abcde"), 1, 1, 1);
- test(S("abcde"), 2, 1, SV("abcde"), 1, 2, 1);
- test(S("abcde"), 2, 1, SV("abcde"), 1, 3, 1);
- test(S("abcde"), 2, 1, SV("abcde"), 1, 4, 1);
- test(S("abcde"), 2, 1, SV("abcde"), 1, 5, 1);
- test(S("abcde"), 2, 1, SV("abcde"), 2, 0, 1);
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test11() {
+ test(S("abcde"), 1, 5, SV("abcdefghijklmnopqrst"), 10, 5, -9);
+ test(S("abcde"), 1, 5, SV("abcdefghijklmnopqrst"), 10, 9, -9);
+ test(S("abcde"), 1, 5, SV("abcdefghijklmnopqrst"), 10, 10, -9);
+ test(S("abcde"), 1, 5, SV("abcdefghijklmnopqrst"), 10, 11, -9);
+ test(S("abcde"), 1, 5, SV("abcdefghijklmnopqrst"), 19, 0, 4);
+ test(S("abcde"), 1, 5, SV("abcdefghijklmnopqrst"), 19, 1, -18);
+ test(S("abcde"), 1, 5, SV("abcdefghijklmnopqrst"), 19, 2, -18);
+ test(S("abcde"), 1, 5, SV("abcdefghijklmnopqrst"), 20, 0, 4);
+ test(S("abcde"), 1, 5, SV("abcdefghijklmnopqrst"), 20, 1, 4);
+ test(S("abcde"), 1, 5, SV("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcde"), 2, 0, SV(""), 0, 0, 0);
+ test(S("abcde"), 2, 0, SV(""), 0, 1, 0);
+ test(S("abcde"), 2, 0, SV(""), 1, 0, 0);
+ test(S("abcde"), 2, 0, SV("abcde"), 0, 0, 0);
+ test(S("abcde"), 2, 0, SV("abcde"), 0, 1, -1);
+ test(S("abcde"), 2, 0, SV("abcde"), 0, 2, -2);
+ test(S("abcde"), 2, 0, SV("abcde"), 0, 4, -4);
+ test(S("abcde"), 2, 0, SV("abcde"), 0, 5, -5);
+ test(S("abcde"), 2, 0, SV("abcde"), 0, 6, -5);
+ test(S("abcde"), 2, 0, SV("abcde"), 1, 0, 0);
+ test(S("abcde"), 2, 0, SV("abcde"), 1, 1, -1);
+ test(S("abcde"), 2, 0, SV("abcde"), 1, 2, -2);
+ test(S("abcde"), 2, 0, SV("abcde"), 1, 3, -3);
+ test(S("abcde"), 2, 0, SV("abcde"), 1, 4, -4);
+ test(S("abcde"), 2, 0, SV("abcde"), 1, 5, -4);
+ test(S("abcde"), 2, 0, SV("abcde"), 2, 0, 0);
+ test(S("abcde"), 2, 0, SV("abcde"), 2, 1, -1);
+ test(S("abcde"), 2, 0, SV("abcde"), 2, 2, -2);
+ test(S("abcde"), 2, 0, SV("abcde"), 2, 3, -3);
+ test(S("abcde"), 2, 0, SV("abcde"), 2, 4, -3);
+ test(S("abcde"), 2, 0, SV("abcde"), 4, 0, 0);
+ test(S("abcde"), 2, 0, SV("abcde"), 4, 1, -1);
+ test(S("abcde"), 2, 0, SV("abcde"), 4, 2, -1);
+ test(S("abcde"), 2, 0, SV("abcde"), 5, 0, 0);
+ test(S("abcde"), 2, 0, SV("abcde"), 5, 1, 0);
+ test(S("abcde"), 2, 0, SV("abcde"), 6, 0, 0);
+ test(S("abcde"), 2, 0, SV("abcdefghij"), 0, 0, 0);
+ test(S("abcde"), 2, 0, SV("abcdefghij"), 0, 1, -1);
+ test(S("abcde"), 2, 0, SV("abcdefghij"), 0, 5, -5);
+ test(S("abcde"), 2, 0, SV("abcdefghij"), 0, 9, -9);
+ test(S("abcde"), 2, 0, SV("abcdefghij"), 0, 10, -10);
+ test(S("abcde"), 2, 0, SV("abcdefghij"), 0, 11, -10);
+ test(S("abcde"), 2, 0, SV("abcdefghij"), 1, 0, 0);
+ test(S("abcde"), 2, 0, SV("abcdefghij"), 1, 1, -1);
+ test(S("abcde"), 2, 0, SV("abcdefghij"), 1, 4, -4);
+ test(S("abcde"), 2, 0, SV("abcdefghij"), 1, 8, -8);
+ test(S("abcde"), 2, 0, SV("abcdefghij"), 1, 9, -9);
+ test(S("abcde"), 2, 0, SV("abcdefghij"), 1, 10, -9);
+ test(S("abcde"), 2, 0, SV("abcdefghij"), 5, 0, 0);
+ test(S("abcde"), 2, 0, SV("abcdefghij"), 5, 1, -1);
+ test(S("abcde"), 2, 0, SV("abcdefghij"), 5, 2, -2);
+ test(S("abcde"), 2, 0, SV("abcdefghij"), 5, 4, -4);
+ test(S("abcde"), 2, 0, SV("abcdefghij"), 5, 5, -5);
+ test(S("abcde"), 2, 0, SV("abcdefghij"), 5, 6, -5);
+ test(S("abcde"), 2, 0, SV("abcdefghij"), 9, 0, 0);
+ test(S("abcde"), 2, 0, SV("abcdefghij"), 9, 1, -1);
+ test(S("abcde"), 2, 0, SV("abcdefghij"), 9, 2, -1);
+ test(S("abcde"), 2, 0, SV("abcdefghij"), 10, 0, 0);
+ test(S("abcde"), 2, 0, SV("abcdefghij"), 10, 1, 0);
+ test(S("abcde"), 2, 0, SV("abcdefghij"), 11, 0, 0);
+ test(S("abcde"), 2, 0, SV("abcdefghijklmnopqrst"), 0, 0, 0);
+ test(S("abcde"), 2, 0, SV("abcdefghijklmnopqrst"), 0, 1, -1);
+ test(S("abcde"), 2, 0, SV("abcdefghijklmnopqrst"), 0, 10, -10);
+ test(S("abcde"), 2, 0, SV("abcdefghijklmnopqrst"), 0, 19, -19);
+ test(S("abcde"), 2, 0, SV("abcdefghijklmnopqrst"), 0, 20, -20);
+ test(S("abcde"), 2, 0, SV("abcdefghijklmnopqrst"), 0, 21, -20);
+ test(S("abcde"), 2, 0, SV("abcdefghijklmnopqrst"), 1, 0, 0);
+ test(S("abcde"), 2, 0, SV("abcdefghijklmnopqrst"), 1, 1, -1);
+ test(S("abcde"), 2, 0, SV("abcdefghijklmnopqrst"), 1, 9, -9);
+ test(S("abcde"), 2, 0, SV("abcdefghijklmnopqrst"), 1, 18, -18);
+ test(S("abcde"), 2, 0, SV("abcdefghijklmnopqrst"), 1, 19, -19);
+ test(S("abcde"), 2, 0, SV("abcdefghijklmnopqrst"), 1, 20, -19);
+ test(S("abcde"), 2, 0, SV("abcdefghijklmnopqrst"), 10, 0, 0);
+ test(S("abcde"), 2, 0, SV("abcdefghijklmnopqrst"), 10, 1, -1);
+ test(S("abcde"), 2, 0, SV("abcdefghijklmnopqrst"), 10, 5, -5);
+ test(S("abcde"), 2, 0, SV("abcdefghijklmnopqrst"), 10, 9, -9);
+ test(S("abcde"), 2, 0, SV("abcdefghijklmnopqrst"), 10, 10, -10);
+ test(S("abcde"), 2, 0, SV("abcdefghijklmnopqrst"), 10, 11, -10);
+ test(S("abcde"), 2, 0, SV("abcdefghijklmnopqrst"), 19, 0, 0);
+ test(S("abcde"), 2, 0, SV("abcdefghijklmnopqrst"), 19, 1, -1);
+ test(S("abcde"), 2, 0, SV("abcdefghijklmnopqrst"), 19, 2, -1);
+ test(S("abcde"), 2, 0, SV("abcdefghijklmnopqrst"), 20, 0, 0);
+ test(S("abcde"), 2, 0, SV("abcdefghijklmnopqrst"), 20, 1, 0);
+ test(S("abcde"), 2, 0, SV("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcde"), 2, 1, SV(""), 0, 0, 1);
+ test(S("abcde"), 2, 1, SV(""), 0, 1, 1);
+ test(S("abcde"), 2, 1, SV(""), 1, 0, 0);
+ test(S("abcde"), 2, 1, SV("abcde"), 0, 0, 1);
+ test(S("abcde"), 2, 1, SV("abcde"), 0, 1, 2);
+ test(S("abcde"), 2, 1, SV("abcde"), 0, 2, 2);
+ test(S("abcde"), 2, 1, SV("abcde"), 0, 4, 2);
+ test(S("abcde"), 2, 1, SV("abcde"), 0, 5, 2);
+ test(S("abcde"), 2, 1, SV("abcde"), 0, 6, 2);
+ test(S("abcde"), 2, 1, SV("abcde"), 1, 0, 1);
+ test(S("abcde"), 2, 1, SV("abcde"), 1, 1, 1);
+ test(S("abcde"), 2, 1, SV("abcde"), 1, 2, 1);
+ test(S("abcde"), 2, 1, SV("abcde"), 1, 3, 1);
+ test(S("abcde"), 2, 1, SV("abcde"), 1, 4, 1);
+ test(S("abcde"), 2, 1, SV("abcde"), 1, 5, 1);
+ test(S("abcde"), 2, 1, SV("abcde"), 2, 0, 1);
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test12()
-{
- test(S("abcde"), 2, 1, SV("abcde"), 2, 1, 0);
- test(S("abcde"), 2, 1, SV("abcde"), 2, 2, -1);
- test(S("abcde"), 2, 1, SV("abcde"), 2, 3, -2);
- test(S("abcde"), 2, 1, SV("abcde"), 2, 4, -2);
- test(S("abcde"), 2, 1, SV("abcde"), 4, 0, 1);
- test(S("abcde"), 2, 1, SV("abcde"), 4, 1, -2);
- test(S("abcde"), 2, 1, SV("abcde"), 4, 2, -2);
- test(S("abcde"), 2, 1, SV("abcde"), 5, 0, 1);
- test(S("abcde"), 2, 1, SV("abcde"), 5, 1, 1);
- test(S("abcde"), 2, 1, SV("abcde"), 6, 0, 0);
- test(S("abcde"), 2, 1, SV("abcdefghij"), 0, 0, 1);
- test(S("abcde"), 2, 1, SV("abcdefghij"), 0, 1, 2);
- test(S("abcde"), 2, 1, SV("abcdefghij"), 0, 5, 2);
- test(S("abcde"), 2, 1, SV("abcdefghij"), 0, 9, 2);
- test(S("abcde"), 2, 1, SV("abcdefghij"), 0, 10, 2);
- test(S("abcde"), 2, 1, SV("abcdefghij"), 0, 11, 2);
- test(S("abcde"), 2, 1, SV("abcdefghij"), 1, 0, 1);
- test(S("abcde"), 2, 1, SV("abcdefghij"), 1, 1, 1);
- test(S("abcde"), 2, 1, SV("abcdefghij"), 1, 4, 1);
- test(S("abcde"), 2, 1, SV("abcdefghij"), 1, 8, 1);
- test(S("abcde"), 2, 1, SV("abcdefghij"), 1, 9, 1);
- test(S("abcde"), 2, 1, SV("abcdefghij"), 1, 10, 1);
- test(S("abcde"), 2, 1, SV("abcdefghij"), 5, 0, 1);
- test(S("abcde"), 2, 1, SV("abcdefghij"), 5, 1, -3);
- test(S("abcde"), 2, 1, SV("abcdefghij"), 5, 2, -3);
- test(S("abcde"), 2, 1, SV("abcdefghij"), 5, 4, -3);
- test(S("abcde"), 2, 1, SV("abcdefghij"), 5, 5, -3);
- test(S("abcde"), 2, 1, SV("abcdefghij"), 5, 6, -3);
- test(S("abcde"), 2, 1, SV("abcdefghij"), 9, 0, 1);
- test(S("abcde"), 2, 1, SV("abcdefghij"), 9, 1, -7);
- test(S("abcde"), 2, 1, SV("abcdefghij"), 9, 2, -7);
- test(S("abcde"), 2, 1, SV("abcdefghij"), 10, 0, 1);
- test(S("abcde"), 2, 1, SV("abcdefghij"), 10, 1, 1);
- test(S("abcde"), 2, 1, SV("abcdefghij"), 11, 0, 0);
- test(S("abcde"), 2, 1, SV("abcdefghijklmnopqrst"), 0, 0, 1);
- test(S("abcde"), 2, 1, SV("abcdefghijklmnopqrst"), 0, 1, 2);
- test(S("abcde"), 2, 1, SV("abcdefghijklmnopqrst"), 0, 10, 2);
- test(S("abcde"), 2, 1, SV("abcdefghijklmnopqrst"), 0, 19, 2);
- test(S("abcde"), 2, 1, SV("abcdefghijklmnopqrst"), 0, 20, 2);
- test(S("abcde"), 2, 1, SV("abcdefghijklmnopqrst"), 0, 21, 2);
- test(S("abcde"), 2, 1, SV("abcdefghijklmnopqrst"), 1, 0, 1);
- test(S("abcde"), 2, 1, SV("abcdefghijklmnopqrst"), 1, 1, 1);
- test(S("abcde"), 2, 1, SV("abcdefghijklmnopqrst"), 1, 9, 1);
- test(S("abcde"), 2, 1, SV("abcdefghijklmnopqrst"), 1, 18, 1);
- test(S("abcde"), 2, 1, SV("abcdefghijklmnopqrst"), 1, 19, 1);
- test(S("abcde"), 2, 1, SV("abcdefghijklmnopqrst"), 1, 20, 1);
- test(S("abcde"), 2, 1, SV("abcdefghijklmnopqrst"), 10, 0, 1);
- test(S("abcde"), 2, 1, SV("abcdefghijklmnopqrst"), 10, 1, -8);
- test(S("abcde"), 2, 1, SV("abcdefghijklmnopqrst"), 10, 5, -8);
- test(S("abcde"), 2, 1, SV("abcdefghijklmnopqrst"), 10, 9, -8);
- test(S("abcde"), 2, 1, SV("abcdefghijklmnopqrst"), 10, 10, -8);
- test(S("abcde"), 2, 1, SV("abcdefghijklmnopqrst"), 10, 11, -8);
- test(S("abcde"), 2, 1, SV("abcdefghijklmnopqrst"), 19, 0, 1);
- test(S("abcde"), 2, 1, SV("abcdefghijklmnopqrst"), 19, 1, -17);
- test(S("abcde"), 2, 1, SV("abcdefghijklmnopqrst"), 19, 2, -17);
- test(S("abcde"), 2, 1, SV("abcdefghijklmnopqrst"), 20, 0, 1);
- test(S("abcde"), 2, 1, SV("abcdefghijklmnopqrst"), 20, 1, 1);
- test(S("abcde"), 2, 1, SV("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcde"), 2, 2, SV(""), 0, 0, 2);
- test(S("abcde"), 2, 2, SV(""), 0, 1, 2);
- test(S("abcde"), 2, 2, SV(""), 1, 0, 0);
- test(S("abcde"), 2, 2, SV("abcde"), 0, 0, 2);
- test(S("abcde"), 2, 2, SV("abcde"), 0, 1, 2);
- test(S("abcde"), 2, 2, SV("abcde"), 0, 2, 2);
- test(S("abcde"), 2, 2, SV("abcde"), 0, 4, 2);
- test(S("abcde"), 2, 2, SV("abcde"), 0, 5, 2);
- test(S("abcde"), 2, 2, SV("abcde"), 0, 6, 2);
- test(S("abcde"), 2, 2, SV("abcde"), 1, 0, 2);
- test(S("abcde"), 2, 2, SV("abcde"), 1, 1, 1);
- test(S("abcde"), 2, 2, SV("abcde"), 1, 2, 1);
- test(S("abcde"), 2, 2, SV("abcde"), 1, 3, 1);
- test(S("abcde"), 2, 2, SV("abcde"), 1, 4, 1);
- test(S("abcde"), 2, 2, SV("abcde"), 1, 5, 1);
- test(S("abcde"), 2, 2, SV("abcde"), 2, 0, 2);
- test(S("abcde"), 2, 2, SV("abcde"), 2, 1, 1);
- test(S("abcde"), 2, 2, SV("abcde"), 2, 2, 0);
- test(S("abcde"), 2, 2, SV("abcde"), 2, 3, -1);
- test(S("abcde"), 2, 2, SV("abcde"), 2, 4, -1);
- test(S("abcde"), 2, 2, SV("abcde"), 4, 0, 2);
- test(S("abcde"), 2, 2, SV("abcde"), 4, 1, -2);
- test(S("abcde"), 2, 2, SV("abcde"), 4, 2, -2);
- test(S("abcde"), 2, 2, SV("abcde"), 5, 0, 2);
- test(S("abcde"), 2, 2, SV("abcde"), 5, 1, 2);
- test(S("abcde"), 2, 2, SV("abcde"), 6, 0, 0);
- test(S("abcde"), 2, 2, SV("abcdefghij"), 0, 0, 2);
- test(S("abcde"), 2, 2, SV("abcdefghij"), 0, 1, 2);
- test(S("abcde"), 2, 2, SV("abcdefghij"), 0, 5, 2);
- test(S("abcde"), 2, 2, SV("abcdefghij"), 0, 9, 2);
- test(S("abcde"), 2, 2, SV("abcdefghij"), 0, 10, 2);
- test(S("abcde"), 2, 2, SV("abcdefghij"), 0, 11, 2);
- test(S("abcde"), 2, 2, SV("abcdefghij"), 1, 0, 2);
- test(S("abcde"), 2, 2, SV("abcdefghij"), 1, 1, 1);
- test(S("abcde"), 2, 2, SV("abcdefghij"), 1, 4, 1);
- test(S("abcde"), 2, 2, SV("abcdefghij"), 1, 8, 1);
- test(S("abcde"), 2, 2, SV("abcdefghij"), 1, 9, 1);
- test(S("abcde"), 2, 2, SV("abcdefghij"), 1, 10, 1);
- test(S("abcde"), 2, 2, SV("abcdefghij"), 5, 0, 2);
- test(S("abcde"), 2, 2, SV("abcdefghij"), 5, 1, -3);
- test(S("abcde"), 2, 2, SV("abcdefghij"), 5, 2, -3);
- test(S("abcde"), 2, 2, SV("abcdefghij"), 5, 4, -3);
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test12() {
+ test(S("abcde"), 2, 1, SV("abcde"), 2, 1, 0);
+ test(S("abcde"), 2, 1, SV("abcde"), 2, 2, -1);
+ test(S("abcde"), 2, 1, SV("abcde"), 2, 3, -2);
+ test(S("abcde"), 2, 1, SV("abcde"), 2, 4, -2);
+ test(S("abcde"), 2, 1, SV("abcde"), 4, 0, 1);
+ test(S("abcde"), 2, 1, SV("abcde"), 4, 1, -2);
+ test(S("abcde"), 2, 1, SV("abcde"), 4, 2, -2);
+ test(S("abcde"), 2, 1, SV("abcde"), 5, 0, 1);
+ test(S("abcde"), 2, 1, SV("abcde"), 5, 1, 1);
+ test(S("abcde"), 2, 1, SV("abcde"), 6, 0, 0);
+ test(S("abcde"), 2, 1, SV("abcdefghij"), 0, 0, 1);
+ test(S("abcde"), 2, 1, SV("abcdefghij"), 0, 1, 2);
+ test(S("abcde"), 2, 1, SV("abcdefghij"), 0, 5, 2);
+ test(S("abcde"), 2, 1, SV("abcdefghij"), 0, 9, 2);
+ test(S("abcde"), 2, 1, SV("abcdefghij"), 0, 10, 2);
+ test(S("abcde"), 2, 1, SV("abcdefghij"), 0, 11, 2);
+ test(S("abcde"), 2, 1, SV("abcdefghij"), 1, 0, 1);
+ test(S("abcde"), 2, 1, SV("abcdefghij"), 1, 1, 1);
+ test(S("abcde"), 2, 1, SV("abcdefghij"), 1, 4, 1);
+ test(S("abcde"), 2, 1, SV("abcdefghij"), 1, 8, 1);
+ test(S("abcde"), 2, 1, SV("abcdefghij"), 1, 9, 1);
+ test(S("abcde"), 2, 1, SV("abcdefghij"), 1, 10, 1);
+ test(S("abcde"), 2, 1, SV("abcdefghij"), 5, 0, 1);
+ test(S("abcde"), 2, 1, SV("abcdefghij"), 5, 1, -3);
+ test(S("abcde"), 2, 1, SV("abcdefghij"), 5, 2, -3);
+ test(S("abcde"), 2, 1, SV("abcdefghij"), 5, 4, -3);
+ test(S("abcde"), 2, 1, SV("abcdefghij"), 5, 5, -3);
+ test(S("abcde"), 2, 1, SV("abcdefghij"), 5, 6, -3);
+ test(S("abcde"), 2, 1, SV("abcdefghij"), 9, 0, 1);
+ test(S("abcde"), 2, 1, SV("abcdefghij"), 9, 1, -7);
+ test(S("abcde"), 2, 1, SV("abcdefghij"), 9, 2, -7);
+ test(S("abcde"), 2, 1, SV("abcdefghij"), 10, 0, 1);
+ test(S("abcde"), 2, 1, SV("abcdefghij"), 10, 1, 1);
+ test(S("abcde"), 2, 1, SV("abcdefghij"), 11, 0, 0);
+ test(S("abcde"), 2, 1, SV("abcdefghijklmnopqrst"), 0, 0, 1);
+ test(S("abcde"), 2, 1, SV("abcdefghijklmnopqrst"), 0, 1, 2);
+ test(S("abcde"), 2, 1, SV("abcdefghijklmnopqrst"), 0, 10, 2);
+ test(S("abcde"), 2, 1, SV("abcdefghijklmnopqrst"), 0, 19, 2);
+ test(S("abcde"), 2, 1, SV("abcdefghijklmnopqrst"), 0, 20, 2);
+ test(S("abcde"), 2, 1, SV("abcdefghijklmnopqrst"), 0, 21, 2);
+ test(S("abcde"), 2, 1, SV("abcdefghijklmnopqrst"), 1, 0, 1);
+ test(S("abcde"), 2, 1, SV("abcdefghijklmnopqrst"), 1, 1, 1);
+ test(S("abcde"), 2, 1, SV("abcdefghijklmnopqrst"), 1, 9, 1);
+ test(S("abcde"), 2, 1, SV("abcdefghijklmnopqrst"), 1, 18, 1);
+ test(S("abcde"), 2, 1, SV("abcdefghijklmnopqrst"), 1, 19, 1);
+ test(S("abcde"), 2, 1, SV("abcdefghijklmnopqrst"), 1, 20, 1);
+ test(S("abcde"), 2, 1, SV("abcdefghijklmnopqrst"), 10, 0, 1);
+ test(S("abcde"), 2, 1, SV("abcdefghijklmnopqrst"), 10, 1, -8);
+ test(S("abcde"), 2, 1, SV("abcdefghijklmnopqrst"), 10, 5, -8);
+ test(S("abcde"), 2, 1, SV("abcdefghijklmnopqrst"), 10, 9, -8);
+ test(S("abcde"), 2, 1, SV("abcdefghijklmnopqrst"), 10, 10, -8);
+ test(S("abcde"), 2, 1, SV("abcdefghijklmnopqrst"), 10, 11, -8);
+ test(S("abcde"), 2, 1, SV("abcdefghijklmnopqrst"), 19, 0, 1);
+ test(S("abcde"), 2, 1, SV("abcdefghijklmnopqrst"), 19, 1, -17);
+ test(S("abcde"), 2, 1, SV("abcdefghijklmnopqrst"), 19, 2, -17);
+ test(S("abcde"), 2, 1, SV("abcdefghijklmnopqrst"), 20, 0, 1);
+ test(S("abcde"), 2, 1, SV("abcdefghijklmnopqrst"), 20, 1, 1);
+ test(S("abcde"), 2, 1, SV("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcde"), 2, 2, SV(""), 0, 0, 2);
+ test(S("abcde"), 2, 2, SV(""), 0, 1, 2);
+ test(S("abcde"), 2, 2, SV(""), 1, 0, 0);
+ test(S("abcde"), 2, 2, SV("abcde"), 0, 0, 2);
+ test(S("abcde"), 2, 2, SV("abcde"), 0, 1, 2);
+ test(S("abcde"), 2, 2, SV("abcde"), 0, 2, 2);
+ test(S("abcde"), 2, 2, SV("abcde"), 0, 4, 2);
+ test(S("abcde"), 2, 2, SV("abcde"), 0, 5, 2);
+ test(S("abcde"), 2, 2, SV("abcde"), 0, 6, 2);
+ test(S("abcde"), 2, 2, SV("abcde"), 1, 0, 2);
+ test(S("abcde"), 2, 2, SV("abcde"), 1, 1, 1);
+ test(S("abcde"), 2, 2, SV("abcde"), 1, 2, 1);
+ test(S("abcde"), 2, 2, SV("abcde"), 1, 3, 1);
+ test(S("abcde"), 2, 2, SV("abcde"), 1, 4, 1);
+ test(S("abcde"), 2, 2, SV("abcde"), 1, 5, 1);
+ test(S("abcde"), 2, 2, SV("abcde"), 2, 0, 2);
+ test(S("abcde"), 2, 2, SV("abcde"), 2, 1, 1);
+ test(S("abcde"), 2, 2, SV("abcde"), 2, 2, 0);
+ test(S("abcde"), 2, 2, SV("abcde"), 2, 3, -1);
+ test(S("abcde"), 2, 2, SV("abcde"), 2, 4, -1);
+ test(S("abcde"), 2, 2, SV("abcde"), 4, 0, 2);
+ test(S("abcde"), 2, 2, SV("abcde"), 4, 1, -2);
+ test(S("abcde"), 2, 2, SV("abcde"), 4, 2, -2);
+ test(S("abcde"), 2, 2, SV("abcde"), 5, 0, 2);
+ test(S("abcde"), 2, 2, SV("abcde"), 5, 1, 2);
+ test(S("abcde"), 2, 2, SV("abcde"), 6, 0, 0);
+ test(S("abcde"), 2, 2, SV("abcdefghij"), 0, 0, 2);
+ test(S("abcde"), 2, 2, SV("abcdefghij"), 0, 1, 2);
+ test(S("abcde"), 2, 2, SV("abcdefghij"), 0, 5, 2);
+ test(S("abcde"), 2, 2, SV("abcdefghij"), 0, 9, 2);
+ test(S("abcde"), 2, 2, SV("abcdefghij"), 0, 10, 2);
+ test(S("abcde"), 2, 2, SV("abcdefghij"), 0, 11, 2);
+ test(S("abcde"), 2, 2, SV("abcdefghij"), 1, 0, 2);
+ test(S("abcde"), 2, 2, SV("abcdefghij"), 1, 1, 1);
+ test(S("abcde"), 2, 2, SV("abcdefghij"), 1, 4, 1);
+ test(S("abcde"), 2, 2, SV("abcdefghij"), 1, 8, 1);
+ test(S("abcde"), 2, 2, SV("abcdefghij"), 1, 9, 1);
+ test(S("abcde"), 2, 2, SV("abcdefghij"), 1, 10, 1);
+ test(S("abcde"), 2, 2, SV("abcdefghij"), 5, 0, 2);
+ test(S("abcde"), 2, 2, SV("abcdefghij"), 5, 1, -3);
+ test(S("abcde"), 2, 2, SV("abcdefghij"), 5, 2, -3);
+ test(S("abcde"), 2, 2, SV("abcdefghij"), 5, 4, -3);
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test13()
-{
- test(S("abcde"), 2, 2, SV("abcdefghij"), 5, 5, -3);
- test(S("abcde"), 2, 2, SV("abcdefghij"), 5, 6, -3);
- test(S("abcde"), 2, 2, SV("abcdefghij"), 9, 0, 2);
- test(S("abcde"), 2, 2, SV("abcdefghij"), 9, 1, -7);
- test(S("abcde"), 2, 2, SV("abcdefghij"), 9, 2, -7);
- test(S("abcde"), 2, 2, SV("abcdefghij"), 10, 0, 2);
- test(S("abcde"), 2, 2, SV("abcdefghij"), 10, 1, 2);
- test(S("abcde"), 2, 2, SV("abcdefghij"), 11, 0, 0);
- test(S("abcde"), 2, 2, SV("abcdefghijklmnopqrst"), 0, 0, 2);
- test(S("abcde"), 2, 2, SV("abcdefghijklmnopqrst"), 0, 1, 2);
- test(S("abcde"), 2, 2, SV("abcdefghijklmnopqrst"), 0, 10, 2);
- test(S("abcde"), 2, 2, SV("abcdefghijklmnopqrst"), 0, 19, 2);
- test(S("abcde"), 2, 2, SV("abcdefghijklmnopqrst"), 0, 20, 2);
- test(S("abcde"), 2, 2, SV("abcdefghijklmnopqrst"), 0, 21, 2);
- test(S("abcde"), 2, 2, SV("abcdefghijklmnopqrst"), 1, 0, 2);
- test(S("abcde"), 2, 2, SV("abcdefghijklmnopqrst"), 1, 1, 1);
- test(S("abcde"), 2, 2, SV("abcdefghijklmnopqrst"), 1, 9, 1);
- test(S("abcde"), 2, 2, SV("abcdefghijklmnopqrst"), 1, 18, 1);
- test(S("abcde"), 2, 2, SV("abcdefghijklmnopqrst"), 1, 19, 1);
- test(S("abcde"), 2, 2, SV("abcdefghijklmnopqrst"), 1, 20, 1);
- test(S("abcde"), 2, 2, SV("abcdefghijklmnopqrst"), 10, 0, 2);
- test(S("abcde"), 2, 2, SV("abcdefghijklmnopqrst"), 10, 1, -8);
- test(S("abcde"), 2, 2, SV("abcdefghijklmnopqrst"), 10, 5, -8);
- test(S("abcde"), 2, 2, SV("abcdefghijklmnopqrst"), 10, 9, -8);
- test(S("abcde"), 2, 2, SV("abcdefghijklmnopqrst"), 10, 10, -8);
- test(S("abcde"), 2, 2, SV("abcdefghijklmnopqrst"), 10, 11, -8);
- test(S("abcde"), 2, 2, SV("abcdefghijklmnopqrst"), 19, 0, 2);
- test(S("abcde"), 2, 2, SV("abcdefghijklmnopqrst"), 19, 1, -17);
- test(S("abcde"), 2, 2, SV("abcdefghijklmnopqrst"), 19, 2, -17);
- test(S("abcde"), 2, 2, SV("abcdefghijklmnopqrst"), 20, 0, 2);
- test(S("abcde"), 2, 2, SV("abcdefghijklmnopqrst"), 20, 1, 2);
- test(S("abcde"), 2, 2, SV("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcde"), 2, 3, SV(""), 0, 0, 3);
- test(S("abcde"), 2, 3, SV(""), 0, 1, 3);
- test(S("abcde"), 2, 3, SV(""), 1, 0, 0);
- test(S("abcde"), 2, 3, SV("abcde"), 0, 0, 3);
- test(S("abcde"), 2, 3, SV("abcde"), 0, 1, 2);
- test(S("abcde"), 2, 3, SV("abcde"), 0, 2, 2);
- test(S("abcde"), 2, 3, SV("abcde"), 0, 4, 2);
- test(S("abcde"), 2, 3, SV("abcde"), 0, 5, 2);
- test(S("abcde"), 2, 3, SV("abcde"), 0, 6, 2);
- test(S("abcde"), 2, 3, SV("abcde"), 1, 0, 3);
- test(S("abcde"), 2, 3, SV("abcde"), 1, 1, 1);
- test(S("abcde"), 2, 3, SV("abcde"), 1, 2, 1);
- test(S("abcde"), 2, 3, SV("abcde"), 1, 3, 1);
- test(S("abcde"), 2, 3, SV("abcde"), 1, 4, 1);
- test(S("abcde"), 2, 3, SV("abcde"), 1, 5, 1);
- test(S("abcde"), 2, 3, SV("abcde"), 2, 0, 3);
- test(S("abcde"), 2, 3, SV("abcde"), 2, 1, 2);
- test(S("abcde"), 2, 3, SV("abcde"), 2, 2, 1);
- test(S("abcde"), 2, 3, SV("abcde"), 2, 3, 0);
- test(S("abcde"), 2, 3, SV("abcde"), 2, 4, 0);
- test(S("abcde"), 2, 3, SV("abcde"), 4, 0, 3);
- test(S("abcde"), 2, 3, SV("abcde"), 4, 1, -2);
- test(S("abcde"), 2, 3, SV("abcde"), 4, 2, -2);
- test(S("abcde"), 2, 3, SV("abcde"), 5, 0, 3);
- test(S("abcde"), 2, 3, SV("abcde"), 5, 1, 3);
- test(S("abcde"), 2, 3, SV("abcde"), 6, 0, 0);
- test(S("abcde"), 2, 3, SV("abcdefghij"), 0, 0, 3);
- test(S("abcde"), 2, 3, SV("abcdefghij"), 0, 1, 2);
- test(S("abcde"), 2, 3, SV("abcdefghij"), 0, 5, 2);
- test(S("abcde"), 2, 3, SV("abcdefghij"), 0, 9, 2);
- test(S("abcde"), 2, 3, SV("abcdefghij"), 0, 10, 2);
- test(S("abcde"), 2, 3, SV("abcdefghij"), 0, 11, 2);
- test(S("abcde"), 2, 3, SV("abcdefghij"), 1, 0, 3);
- test(S("abcde"), 2, 3, SV("abcdefghij"), 1, 1, 1);
- test(S("abcde"), 2, 3, SV("abcdefghij"), 1, 4, 1);
- test(S("abcde"), 2, 3, SV("abcdefghij"), 1, 8, 1);
- test(S("abcde"), 2, 3, SV("abcdefghij"), 1, 9, 1);
- test(S("abcde"), 2, 3, SV("abcdefghij"), 1, 10, 1);
- test(S("abcde"), 2, 3, SV("abcdefghij"), 5, 0, 3);
- test(S("abcde"), 2, 3, SV("abcdefghij"), 5, 1, -3);
- test(S("abcde"), 2, 3, SV("abcdefghij"), 5, 2, -3);
- test(S("abcde"), 2, 3, SV("abcdefghij"), 5, 4, -3);
- test(S("abcde"), 2, 3, SV("abcdefghij"), 5, 5, -3);
- test(S("abcde"), 2, 3, SV("abcdefghij"), 5, 6, -3);
- test(S("abcde"), 2, 3, SV("abcdefghij"), 9, 0, 3);
- test(S("abcde"), 2, 3, SV("abcdefghij"), 9, 1, -7);
- test(S("abcde"), 2, 3, SV("abcdefghij"), 9, 2, -7);
- test(S("abcde"), 2, 3, SV("abcdefghij"), 10, 0, 3);
- test(S("abcde"), 2, 3, SV("abcdefghij"), 10, 1, 3);
- test(S("abcde"), 2, 3, SV("abcdefghij"), 11, 0, 0);
- test(S("abcde"), 2, 3, SV("abcdefghijklmnopqrst"), 0, 0, 3);
- test(S("abcde"), 2, 3, SV("abcdefghijklmnopqrst"), 0, 1, 2);
- test(S("abcde"), 2, 3, SV("abcdefghijklmnopqrst"), 0, 10, 2);
- test(S("abcde"), 2, 3, SV("abcdefghijklmnopqrst"), 0, 19, 2);
- test(S("abcde"), 2, 3, SV("abcdefghijklmnopqrst"), 0, 20, 2);
- test(S("abcde"), 2, 3, SV("abcdefghijklmnopqrst"), 0, 21, 2);
- test(S("abcde"), 2, 3, SV("abcdefghijklmnopqrst"), 1, 0, 3);
- test(S("abcde"), 2, 3, SV("abcdefghijklmnopqrst"), 1, 1, 1);
- test(S("abcde"), 2, 3, SV("abcdefghijklmnopqrst"), 1, 9, 1);
- test(S("abcde"), 2, 3, SV("abcdefghijklmnopqrst"), 1, 18, 1);
- test(S("abcde"), 2, 3, SV("abcdefghijklmnopqrst"), 1, 19, 1);
- test(S("abcde"), 2, 3, SV("abcdefghijklmnopqrst"), 1, 20, 1);
- test(S("abcde"), 2, 3, SV("abcdefghijklmnopqrst"), 10, 0, 3);
- test(S("abcde"), 2, 3, SV("abcdefghijklmnopqrst"), 10, 1, -8);
- test(S("abcde"), 2, 3, SV("abcdefghijklmnopqrst"), 10, 5, -8);
- test(S("abcde"), 2, 3, SV("abcdefghijklmnopqrst"), 10, 9, -8);
- test(S("abcde"), 2, 3, SV("abcdefghijklmnopqrst"), 10, 10, -8);
- test(S("abcde"), 2, 3, SV("abcdefghijklmnopqrst"), 10, 11, -8);
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test13() {
+ test(S("abcde"), 2, 2, SV("abcdefghij"), 5, 5, -3);
+ test(S("abcde"), 2, 2, SV("abcdefghij"), 5, 6, -3);
+ test(S("abcde"), 2, 2, SV("abcdefghij"), 9, 0, 2);
+ test(S("abcde"), 2, 2, SV("abcdefghij"), 9, 1, -7);
+ test(S("abcde"), 2, 2, SV("abcdefghij"), 9, 2, -7);
+ test(S("abcde"), 2, 2, SV("abcdefghij"), 10, 0, 2);
+ test(S("abcde"), 2, 2, SV("abcdefghij"), 10, 1, 2);
+ test(S("abcde"), 2, 2, SV("abcdefghij"), 11, 0, 0);
+ test(S("abcde"), 2, 2, SV("abcdefghijklmnopqrst"), 0, 0, 2);
+ test(S("abcde"), 2, 2, SV("abcdefghijklmnopqrst"), 0, 1, 2);
+ test(S("abcde"), 2, 2, SV("abcdefghijklmnopqrst"), 0, 10, 2);
+ test(S("abcde"), 2, 2, SV("abcdefghijklmnopqrst"), 0, 19, 2);
+ test(S("abcde"), 2, 2, SV("abcdefghijklmnopqrst"), 0, 20, 2);
+ test(S("abcde"), 2, 2, SV("abcdefghijklmnopqrst"), 0, 21, 2);
+ test(S("abcde"), 2, 2, SV("abcdefghijklmnopqrst"), 1, 0, 2);
+ test(S("abcde"), 2, 2, SV("abcdefghijklmnopqrst"), 1, 1, 1);
+ test(S("abcde"), 2, 2, SV("abcdefghijklmnopqrst"), 1, 9, 1);
+ test(S("abcde"), 2, 2, SV("abcdefghijklmnopqrst"), 1, 18, 1);
+ test(S("abcde"), 2, 2, SV("abcdefghijklmnopqrst"), 1, 19, 1);
+ test(S("abcde"), 2, 2, SV("abcdefghijklmnopqrst"), 1, 20, 1);
+ test(S("abcde"), 2, 2, SV("abcdefghijklmnopqrst"), 10, 0, 2);
+ test(S("abcde"), 2, 2, SV("abcdefghijklmnopqrst"), 10, 1, -8);
+ test(S("abcde"), 2, 2, SV("abcdefghijklmnopqrst"), 10, 5, -8);
+ test(S("abcde"), 2, 2, SV("abcdefghijklmnopqrst"), 10, 9, -8);
+ test(S("abcde"), 2, 2, SV("abcdefghijklmnopqrst"), 10, 10, -8);
+ test(S("abcde"), 2, 2, SV("abcdefghijklmnopqrst"), 10, 11, -8);
+ test(S("abcde"), 2, 2, SV("abcdefghijklmnopqrst"), 19, 0, 2);
+ test(S("abcde"), 2, 2, SV("abcdefghijklmnopqrst"), 19, 1, -17);
+ test(S("abcde"), 2, 2, SV("abcdefghijklmnopqrst"), 19, 2, -17);
+ test(S("abcde"), 2, 2, SV("abcdefghijklmnopqrst"), 20, 0, 2);
+ test(S("abcde"), 2, 2, SV("abcdefghijklmnopqrst"), 20, 1, 2);
+ test(S("abcde"), 2, 2, SV("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcde"), 2, 3, SV(""), 0, 0, 3);
+ test(S("abcde"), 2, 3, SV(""), 0, 1, 3);
+ test(S("abcde"), 2, 3, SV(""), 1, 0, 0);
+ test(S("abcde"), 2, 3, SV("abcde"), 0, 0, 3);
+ test(S("abcde"), 2, 3, SV("abcde"), 0, 1, 2);
+ test(S("abcde"), 2, 3, SV("abcde"), 0, 2, 2);
+ test(S("abcde"), 2, 3, SV("abcde"), 0, 4, 2);
+ test(S("abcde"), 2, 3, SV("abcde"), 0, 5, 2);
+ test(S("abcde"), 2, 3, SV("abcde"), 0, 6, 2);
+ test(S("abcde"), 2, 3, SV("abcde"), 1, 0, 3);
+ test(S("abcde"), 2, 3, SV("abcde"), 1, 1, 1);
+ test(S("abcde"), 2, 3, SV("abcde"), 1, 2, 1);
+ test(S("abcde"), 2, 3, SV("abcde"), 1, 3, 1);
+ test(S("abcde"), 2, 3, SV("abcde"), 1, 4, 1);
+ test(S("abcde"), 2, 3, SV("abcde"), 1, 5, 1);
+ test(S("abcde"), 2, 3, SV("abcde"), 2, 0, 3);
+ test(S("abcde"), 2, 3, SV("abcde"), 2, 1, 2);
+ test(S("abcde"), 2, 3, SV("abcde"), 2, 2, 1);
+ test(S("abcde"), 2, 3, SV("abcde"), 2, 3, 0);
+ test(S("abcde"), 2, 3, SV("abcde"), 2, 4, 0);
+ test(S("abcde"), 2, 3, SV("abcde"), 4, 0, 3);
+ test(S("abcde"), 2, 3, SV("abcde"), 4, 1, -2);
+ test(S("abcde"), 2, 3, SV("abcde"), 4, 2, -2);
+ test(S("abcde"), 2, 3, SV("abcde"), 5, 0, 3);
+ test(S("abcde"), 2, 3, SV("abcde"), 5, 1, 3);
+ test(S("abcde"), 2, 3, SV("abcde"), 6, 0, 0);
+ test(S("abcde"), 2, 3, SV("abcdefghij"), 0, 0, 3);
+ test(S("abcde"), 2, 3, SV("abcdefghij"), 0, 1, 2);
+ test(S("abcde"), 2, 3, SV("abcdefghij"), 0, 5, 2);
+ test(S("abcde"), 2, 3, SV("abcdefghij"), 0, 9, 2);
+ test(S("abcde"), 2, 3, SV("abcdefghij"), 0, 10, 2);
+ test(S("abcde"), 2, 3, SV("abcdefghij"), 0, 11, 2);
+ test(S("abcde"), 2, 3, SV("abcdefghij"), 1, 0, 3);
+ test(S("abcde"), 2, 3, SV("abcdefghij"), 1, 1, 1);
+ test(S("abcde"), 2, 3, SV("abcdefghij"), 1, 4, 1);
+ test(S("abcde"), 2, 3, SV("abcdefghij"), 1, 8, 1);
+ test(S("abcde"), 2, 3, SV("abcdefghij"), 1, 9, 1);
+ test(S("abcde"), 2, 3, SV("abcdefghij"), 1, 10, 1);
+ test(S("abcde"), 2, 3, SV("abcdefghij"), 5, 0, 3);
+ test(S("abcde"), 2, 3, SV("abcdefghij"), 5, 1, -3);
+ test(S("abcde"), 2, 3, SV("abcdefghij"), 5, 2, -3);
+ test(S("abcde"), 2, 3, SV("abcdefghij"), 5, 4, -3);
+ test(S("abcde"), 2, 3, SV("abcdefghij"), 5, 5, -3);
+ test(S("abcde"), 2, 3, SV("abcdefghij"), 5, 6, -3);
+ test(S("abcde"), 2, 3, SV("abcdefghij"), 9, 0, 3);
+ test(S("abcde"), 2, 3, SV("abcdefghij"), 9, 1, -7);
+ test(S("abcde"), 2, 3, SV("abcdefghij"), 9, 2, -7);
+ test(S("abcde"), 2, 3, SV("abcdefghij"), 10, 0, 3);
+ test(S("abcde"), 2, 3, SV("abcdefghij"), 10, 1, 3);
+ test(S("abcde"), 2, 3, SV("abcdefghij"), 11, 0, 0);
+ test(S("abcde"), 2, 3, SV("abcdefghijklmnopqrst"), 0, 0, 3);
+ test(S("abcde"), 2, 3, SV("abcdefghijklmnopqrst"), 0, 1, 2);
+ test(S("abcde"), 2, 3, SV("abcdefghijklmnopqrst"), 0, 10, 2);
+ test(S("abcde"), 2, 3, SV("abcdefghijklmnopqrst"), 0, 19, 2);
+ test(S("abcde"), 2, 3, SV("abcdefghijklmnopqrst"), 0, 20, 2);
+ test(S("abcde"), 2, 3, SV("abcdefghijklmnopqrst"), 0, 21, 2);
+ test(S("abcde"), 2, 3, SV("abcdefghijklmnopqrst"), 1, 0, 3);
+ test(S("abcde"), 2, 3, SV("abcdefghijklmnopqrst"), 1, 1, 1);
+ test(S("abcde"), 2, 3, SV("abcdefghijklmnopqrst"), 1, 9, 1);
+ test(S("abcde"), 2, 3, SV("abcdefghijklmnopqrst"), 1, 18, 1);
+ test(S("abcde"), 2, 3, SV("abcdefghijklmnopqrst"), 1, 19, 1);
+ test(S("abcde"), 2, 3, SV("abcdefghijklmnopqrst"), 1, 20, 1);
+ test(S("abcde"), 2, 3, SV("abcdefghijklmnopqrst"), 10, 0, 3);
+ test(S("abcde"), 2, 3, SV("abcdefghijklmnopqrst"), 10, 1, -8);
+ test(S("abcde"), 2, 3, SV("abcdefghijklmnopqrst"), 10, 5, -8);
+ test(S("abcde"), 2, 3, SV("abcdefghijklmnopqrst"), 10, 9, -8);
+ test(S("abcde"), 2, 3, SV("abcdefghijklmnopqrst"), 10, 10, -8);
+ test(S("abcde"), 2, 3, SV("abcdefghijklmnopqrst"), 10, 11, -8);
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test14()
-{
- test(S("abcde"), 2, 3, SV("abcdefghijklmnopqrst"), 19, 0, 3);
- test(S("abcde"), 2, 3, SV("abcdefghijklmnopqrst"), 19, 1, -17);
- test(S("abcde"), 2, 3, SV("abcdefghijklmnopqrst"), 19, 2, -17);
- test(S("abcde"), 2, 3, SV("abcdefghijklmnopqrst"), 20, 0, 3);
- test(S("abcde"), 2, 3, SV("abcdefghijklmnopqrst"), 20, 1, 3);
- test(S("abcde"), 2, 3, SV("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcde"), 2, 4, SV(""), 0, 0, 3);
- test(S("abcde"), 2, 4, SV(""), 0, 1, 3);
- test(S("abcde"), 2, 4, SV(""), 1, 0, 0);
- test(S("abcde"), 2, 4, SV("abcde"), 0, 0, 3);
- test(S("abcde"), 2, 4, SV("abcde"), 0, 1, 2);
- test(S("abcde"), 2, 4, SV("abcde"), 0, 2, 2);
- test(S("abcde"), 2, 4, SV("abcde"), 0, 4, 2);
- test(S("abcde"), 2, 4, SV("abcde"), 0, 5, 2);
- test(S("abcde"), 2, 4, SV("abcde"), 0, 6, 2);
- test(S("abcde"), 2, 4, SV("abcde"), 1, 0, 3);
- test(S("abcde"), 2, 4, SV("abcde"), 1, 1, 1);
- test(S("abcde"), 2, 4, SV("abcde"), 1, 2, 1);
- test(S("abcde"), 2, 4, SV("abcde"), 1, 3, 1);
- test(S("abcde"), 2, 4, SV("abcde"), 1, 4, 1);
- test(S("abcde"), 2, 4, SV("abcde"), 1, 5, 1);
- test(S("abcde"), 2, 4, SV("abcde"), 2, 0, 3);
- test(S("abcde"), 2, 4, SV("abcde"), 2, 1, 2);
- test(S("abcde"), 2, 4, SV("abcde"), 2, 2, 1);
- test(S("abcde"), 2, 4, SV("abcde"), 2, 3, 0);
- test(S("abcde"), 2, 4, SV("abcde"), 2, 4, 0);
- test(S("abcde"), 2, 4, SV("abcde"), 4, 0, 3);
- test(S("abcde"), 2, 4, SV("abcde"), 4, 1, -2);
- test(S("abcde"), 2, 4, SV("abcde"), 4, 2, -2);
- test(S("abcde"), 2, 4, SV("abcde"), 5, 0, 3);
- test(S("abcde"), 2, 4, SV("abcde"), 5, 1, 3);
- test(S("abcde"), 2, 4, SV("abcde"), 6, 0, 0);
- test(S("abcde"), 2, 4, SV("abcdefghij"), 0, 0, 3);
- test(S("abcde"), 2, 4, SV("abcdefghij"), 0, 1, 2);
- test(S("abcde"), 2, 4, SV("abcdefghij"), 0, 5, 2);
- test(S("abcde"), 2, 4, SV("abcdefghij"), 0, 9, 2);
- test(S("abcde"), 2, 4, SV("abcdefghij"), 0, 10, 2);
- test(S("abcde"), 2, 4, SV("abcdefghij"), 0, 11, 2);
- test(S("abcde"), 2, 4, SV("abcdefghij"), 1, 0, 3);
- test(S("abcde"), 2, 4, SV("abcdefghij"), 1, 1, 1);
- test(S("abcde"), 2, 4, SV("abcdefghij"), 1, 4, 1);
- test(S("abcde"), 2, 4, SV("abcdefghij"), 1, 8, 1);
- test(S("abcde"), 2, 4, SV("abcdefghij"), 1, 9, 1);
- test(S("abcde"), 2, 4, SV("abcdefghij"), 1, 10, 1);
- test(S("abcde"), 2, 4, SV("abcdefghij"), 5, 0, 3);
- test(S("abcde"), 2, 4, SV("abcdefghij"), 5, 1, -3);
- test(S("abcde"), 2, 4, SV("abcdefghij"), 5, 2, -3);
- test(S("abcde"), 2, 4, SV("abcdefghij"), 5, 4, -3);
- test(S("abcde"), 2, 4, SV("abcdefghij"), 5, 5, -3);
- test(S("abcde"), 2, 4, SV("abcdefghij"), 5, 6, -3);
- test(S("abcde"), 2, 4, SV("abcdefghij"), 9, 0, 3);
- test(S("abcde"), 2, 4, SV("abcdefghij"), 9, 1, -7);
- test(S("abcde"), 2, 4, SV("abcdefghij"), 9, 2, -7);
- test(S("abcde"), 2, 4, SV("abcdefghij"), 10, 0, 3);
- test(S("abcde"), 2, 4, SV("abcdefghij"), 10, 1, 3);
- test(S("abcde"), 2, 4, SV("abcdefghij"), 11, 0, 0);
- test(S("abcde"), 2, 4, SV("abcdefghijklmnopqrst"), 0, 0, 3);
- test(S("abcde"), 2, 4, SV("abcdefghijklmnopqrst"), 0, 1, 2);
- test(S("abcde"), 2, 4, SV("abcdefghijklmnopqrst"), 0, 10, 2);
- test(S("abcde"), 2, 4, SV("abcdefghijklmnopqrst"), 0, 19, 2);
- test(S("abcde"), 2, 4, SV("abcdefghijklmnopqrst"), 0, 20, 2);
- test(S("abcde"), 2, 4, SV("abcdefghijklmnopqrst"), 0, 21, 2);
- test(S("abcde"), 2, 4, SV("abcdefghijklmnopqrst"), 1, 0, 3);
- test(S("abcde"), 2, 4, SV("abcdefghijklmnopqrst"), 1, 1, 1);
- test(S("abcde"), 2, 4, SV("abcdefghijklmnopqrst"), 1, 9, 1);
- test(S("abcde"), 2, 4, SV("abcdefghijklmnopqrst"), 1, 18, 1);
- test(S("abcde"), 2, 4, SV("abcdefghijklmnopqrst"), 1, 19, 1);
- test(S("abcde"), 2, 4, SV("abcdefghijklmnopqrst"), 1, 20, 1);
- test(S("abcde"), 2, 4, SV("abcdefghijklmnopqrst"), 10, 0, 3);
- test(S("abcde"), 2, 4, SV("abcdefghijklmnopqrst"), 10, 1, -8);
- test(S("abcde"), 2, 4, SV("abcdefghijklmnopqrst"), 10, 5, -8);
- test(S("abcde"), 2, 4, SV("abcdefghijklmnopqrst"), 10, 9, -8);
- test(S("abcde"), 2, 4, SV("abcdefghijklmnopqrst"), 10, 10, -8);
- test(S("abcde"), 2, 4, SV("abcdefghijklmnopqrst"), 10, 11, -8);
- test(S("abcde"), 2, 4, SV("abcdefghijklmnopqrst"), 19, 0, 3);
- test(S("abcde"), 2, 4, SV("abcdefghijklmnopqrst"), 19, 1, -17);
- test(S("abcde"), 2, 4, SV("abcdefghijklmnopqrst"), 19, 2, -17);
- test(S("abcde"), 2, 4, SV("abcdefghijklmnopqrst"), 20, 0, 3);
- test(S("abcde"), 2, 4, SV("abcdefghijklmnopqrst"), 20, 1, 3);
- test(S("abcde"), 2, 4, SV("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcde"), 4, 0, SV(""), 0, 0, 0);
- test(S("abcde"), 4, 0, SV(""), 0, 1, 0);
- test(S("abcde"), 4, 0, SV(""), 1, 0, 0);
- test(S("abcde"), 4, 0, SV("abcde"), 0, 0, 0);
- test(S("abcde"), 4, 0, SV("abcde"), 0, 1, -1);
- test(S("abcde"), 4, 0, SV("abcde"), 0, 2, -2);
- test(S("abcde"), 4, 0, SV("abcde"), 0, 4, -4);
- test(S("abcde"), 4, 0, SV("abcde"), 0, 5, -5);
- test(S("abcde"), 4, 0, SV("abcde"), 0, 6, -5);
- test(S("abcde"), 4, 0, SV("abcde"), 1, 0, 0);
- test(S("abcde"), 4, 0, SV("abcde"), 1, 1, -1);
- test(S("abcde"), 4, 0, SV("abcde"), 1, 2, -2);
- test(S("abcde"), 4, 0, SV("abcde"), 1, 3, -3);
- test(S("abcde"), 4, 0, SV("abcde"), 1, 4, -4);
- test(S("abcde"), 4, 0, SV("abcde"), 1, 5, -4);
- test(S("abcde"), 4, 0, SV("abcde"), 2, 0, 0);
- test(S("abcde"), 4, 0, SV("abcde"), 2, 1, -1);
- test(S("abcde"), 4, 0, SV("abcde"), 2, 2, -2);
- test(S("abcde"), 4, 0, SV("abcde"), 2, 3, -3);
- test(S("abcde"), 4, 0, SV("abcde"), 2, 4, -3);
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test14() {
+ test(S("abcde"), 2, 3, SV("abcdefghijklmnopqrst"), 19, 0, 3);
+ test(S("abcde"), 2, 3, SV("abcdefghijklmnopqrst"), 19, 1, -17);
+ test(S("abcde"), 2, 3, SV("abcdefghijklmnopqrst"), 19, 2, -17);
+ test(S("abcde"), 2, 3, SV("abcdefghijklmnopqrst"), 20, 0, 3);
+ test(S("abcde"), 2, 3, SV("abcdefghijklmnopqrst"), 20, 1, 3);
+ test(S("abcde"), 2, 3, SV("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcde"), 2, 4, SV(""), 0, 0, 3);
+ test(S("abcde"), 2, 4, SV(""), 0, 1, 3);
+ test(S("abcde"), 2, 4, SV(""), 1, 0, 0);
+ test(S("abcde"), 2, 4, SV("abcde"), 0, 0, 3);
+ test(S("abcde"), 2, 4, SV("abcde"), 0, 1, 2);
+ test(S("abcde"), 2, 4, SV("abcde"), 0, 2, 2);
+ test(S("abcde"), 2, 4, SV("abcde"), 0, 4, 2);
+ test(S("abcde"), 2, 4, SV("abcde"), 0, 5, 2);
+ test(S("abcde"), 2, 4, SV("abcde"), 0, 6, 2);
+ test(S("abcde"), 2, 4, SV("abcde"), 1, 0, 3);
+ test(S("abcde"), 2, 4, SV("abcde"), 1, 1, 1);
+ test(S("abcde"), 2, 4, SV("abcde"), 1, 2, 1);
+ test(S("abcde"), 2, 4, SV("abcde"), 1, 3, 1);
+ test(S("abcde"), 2, 4, SV("abcde"), 1, 4, 1);
+ test(S("abcde"), 2, 4, SV("abcde"), 1, 5, 1);
+ test(S("abcde"), 2, 4, SV("abcde"), 2, 0, 3);
+ test(S("abcde"), 2, 4, SV("abcde"), 2, 1, 2);
+ test(S("abcde"), 2, 4, SV("abcde"), 2, 2, 1);
+ test(S("abcde"), 2, 4, SV("abcde"), 2, 3, 0);
+ test(S("abcde"), 2, 4, SV("abcde"), 2, 4, 0);
+ test(S("abcde"), 2, 4, SV("abcde"), 4, 0, 3);
+ test(S("abcde"), 2, 4, SV("abcde"), 4, 1, -2);
+ test(S("abcde"), 2, 4, SV("abcde"), 4, 2, -2);
+ test(S("abcde"), 2, 4, SV("abcde"), 5, 0, 3);
+ test(S("abcde"), 2, 4, SV("abcde"), 5, 1, 3);
+ test(S("abcde"), 2, 4, SV("abcde"), 6, 0, 0);
+ test(S("abcde"), 2, 4, SV("abcdefghij"), 0, 0, 3);
+ test(S("abcde"), 2, 4, SV("abcdefghij"), 0, 1, 2);
+ test(S("abcde"), 2, 4, SV("abcdefghij"), 0, 5, 2);
+ test(S("abcde"), 2, 4, SV("abcdefghij"), 0, 9, 2);
+ test(S("abcde"), 2, 4, SV("abcdefghij"), 0, 10, 2);
+ test(S("abcde"), 2, 4, SV("abcdefghij"), 0, 11, 2);
+ test(S("abcde"), 2, 4, SV("abcdefghij"), 1, 0, 3);
+ test(S("abcde"), 2, 4, SV("abcdefghij"), 1, 1, 1);
+ test(S("abcde"), 2, 4, SV("abcdefghij"), 1, 4, 1);
+ test(S("abcde"), 2, 4, SV("abcdefghij"), 1, 8, 1);
+ test(S("abcde"), 2, 4, SV("abcdefghij"), 1, 9, 1);
+ test(S("abcde"), 2, 4, SV("abcdefghij"), 1, 10, 1);
+ test(S("abcde"), 2, 4, SV("abcdefghij"), 5, 0, 3);
+ test(S("abcde"), 2, 4, SV("abcdefghij"), 5, 1, -3);
+ test(S("abcde"), 2, 4, SV("abcdefghij"), 5, 2, -3);
+ test(S("abcde"), 2, 4, SV("abcdefghij"), 5, 4, -3);
+ test(S("abcde"), 2, 4, SV("abcdefghij"), 5, 5, -3);
+ test(S("abcde"), 2, 4, SV("abcdefghij"), 5, 6, -3);
+ test(S("abcde"), 2, 4, SV("abcdefghij"), 9, 0, 3);
+ test(S("abcde"), 2, 4, SV("abcdefghij"), 9, 1, -7);
+ test(S("abcde"), 2, 4, SV("abcdefghij"), 9, 2, -7);
+ test(S("abcde"), 2, 4, SV("abcdefghij"), 10, 0, 3);
+ test(S("abcde"), 2, 4, SV("abcdefghij"), 10, 1, 3);
+ test(S("abcde"), 2, 4, SV("abcdefghij"), 11, 0, 0);
+ test(S("abcde"), 2, 4, SV("abcdefghijklmnopqrst"), 0, 0, 3);
+ test(S("abcde"), 2, 4, SV("abcdefghijklmnopqrst"), 0, 1, 2);
+ test(S("abcde"), 2, 4, SV("abcdefghijklmnopqrst"), 0, 10, 2);
+ test(S("abcde"), 2, 4, SV("abcdefghijklmnopqrst"), 0, 19, 2);
+ test(S("abcde"), 2, 4, SV("abcdefghijklmnopqrst"), 0, 20, 2);
+ test(S("abcde"), 2, 4, SV("abcdefghijklmnopqrst"), 0, 21, 2);
+ test(S("abcde"), 2, 4, SV("abcdefghijklmnopqrst"), 1, 0, 3);
+ test(S("abcde"), 2, 4, SV("abcdefghijklmnopqrst"), 1, 1, 1);
+ test(S("abcde"), 2, 4, SV("abcdefghijklmnopqrst"), 1, 9, 1);
+ test(S("abcde"), 2, 4, SV("abcdefghijklmnopqrst"), 1, 18, 1);
+ test(S("abcde"), 2, 4, SV("abcdefghijklmnopqrst"), 1, 19, 1);
+ test(S("abcde"), 2, 4, SV("abcdefghijklmnopqrst"), 1, 20, 1);
+ test(S("abcde"), 2, 4, SV("abcdefghijklmnopqrst"), 10, 0, 3);
+ test(S("abcde"), 2, 4, SV("abcdefghijklmnopqrst"), 10, 1, -8);
+ test(S("abcde"), 2, 4, SV("abcdefghijklmnopqrst"), 10, 5, -8);
+ test(S("abcde"), 2, 4, SV("abcdefghijklmnopqrst"), 10, 9, -8);
+ test(S("abcde"), 2, 4, SV("abcdefghijklmnopqrst"), 10, 10, -8);
+ test(S("abcde"), 2, 4, SV("abcdefghijklmnopqrst"), 10, 11, -8);
+ test(S("abcde"), 2, 4, SV("abcdefghijklmnopqrst"), 19, 0, 3);
+ test(S("abcde"), 2, 4, SV("abcdefghijklmnopqrst"), 19, 1, -17);
+ test(S("abcde"), 2, 4, SV("abcdefghijklmnopqrst"), 19, 2, -17);
+ test(S("abcde"), 2, 4, SV("abcdefghijklmnopqrst"), 20, 0, 3);
+ test(S("abcde"), 2, 4, SV("abcdefghijklmnopqrst"), 20, 1, 3);
+ test(S("abcde"), 2, 4, SV("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcde"), 4, 0, SV(""), 0, 0, 0);
+ test(S("abcde"), 4, 0, SV(""), 0, 1, 0);
+ test(S("abcde"), 4, 0, SV(""), 1, 0, 0);
+ test(S("abcde"), 4, 0, SV("abcde"), 0, 0, 0);
+ test(S("abcde"), 4, 0, SV("abcde"), 0, 1, -1);
+ test(S("abcde"), 4, 0, SV("abcde"), 0, 2, -2);
+ test(S("abcde"), 4, 0, SV("abcde"), 0, 4, -4);
+ test(S("abcde"), 4, 0, SV("abcde"), 0, 5, -5);
+ test(S("abcde"), 4, 0, SV("abcde"), 0, 6, -5);
+ test(S("abcde"), 4, 0, SV("abcde"), 1, 0, 0);
+ test(S("abcde"), 4, 0, SV("abcde"), 1, 1, -1);
+ test(S("abcde"), 4, 0, SV("abcde"), 1, 2, -2);
+ test(S("abcde"), 4, 0, SV("abcde"), 1, 3, -3);
+ test(S("abcde"), 4, 0, SV("abcde"), 1, 4, -4);
+ test(S("abcde"), 4, 0, SV("abcde"), 1, 5, -4);
+ test(S("abcde"), 4, 0, SV("abcde"), 2, 0, 0);
+ test(S("abcde"), 4, 0, SV("abcde"), 2, 1, -1);
+ test(S("abcde"), 4, 0, SV("abcde"), 2, 2, -2);
+ test(S("abcde"), 4, 0, SV("abcde"), 2, 3, -3);
+ test(S("abcde"), 4, 0, SV("abcde"), 2, 4, -3);
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test15()
-{
- test(S("abcde"), 4, 0, SV("abcde"), 4, 0, 0);
- test(S("abcde"), 4, 0, SV("abcde"), 4, 1, -1);
- test(S("abcde"), 4, 0, SV("abcde"), 4, 2, -1);
- test(S("abcde"), 4, 0, SV("abcde"), 5, 0, 0);
- test(S("abcde"), 4, 0, SV("abcde"), 5, 1, 0);
- test(S("abcde"), 4, 0, SV("abcde"), 6, 0, 0);
- test(S("abcde"), 4, 0, SV("abcdefghij"), 0, 0, 0);
- test(S("abcde"), 4, 0, SV("abcdefghij"), 0, 1, -1);
- test(S("abcde"), 4, 0, SV("abcdefghij"), 0, 5, -5);
- test(S("abcde"), 4, 0, SV("abcdefghij"), 0, 9, -9);
- test(S("abcde"), 4, 0, SV("abcdefghij"), 0, 10, -10);
- test(S("abcde"), 4, 0, SV("abcdefghij"), 0, 11, -10);
- test(S("abcde"), 4, 0, SV("abcdefghij"), 1, 0, 0);
- test(S("abcde"), 4, 0, SV("abcdefghij"), 1, 1, -1);
- test(S("abcde"), 4, 0, SV("abcdefghij"), 1, 4, -4);
- test(S("abcde"), 4, 0, SV("abcdefghij"), 1, 8, -8);
- test(S("abcde"), 4, 0, SV("abcdefghij"), 1, 9, -9);
- test(S("abcde"), 4, 0, SV("abcdefghij"), 1, 10, -9);
- test(S("abcde"), 4, 0, SV("abcdefghij"), 5, 0, 0);
- test(S("abcde"), 4, 0, SV("abcdefghij"), 5, 1, -1);
- test(S("abcde"), 4, 0, SV("abcdefghij"), 5, 2, -2);
- test(S("abcde"), 4, 0, SV("abcdefghij"), 5, 4, -4);
- test(S("abcde"), 4, 0, SV("abcdefghij"), 5, 5, -5);
- test(S("abcde"), 4, 0, SV("abcdefghij"), 5, 6, -5);
- test(S("abcde"), 4, 0, SV("abcdefghij"), 9, 0, 0);
- test(S("abcde"), 4, 0, SV("abcdefghij"), 9, 1, -1);
- test(S("abcde"), 4, 0, SV("abcdefghij"), 9, 2, -1);
- test(S("abcde"), 4, 0, SV("abcdefghij"), 10, 0, 0);
- test(S("abcde"), 4, 0, SV("abcdefghij"), 10, 1, 0);
- test(S("abcde"), 4, 0, SV("abcdefghij"), 11, 0, 0);
- test(S("abcde"), 4, 0, SV("abcdefghijklmnopqrst"), 0, 0, 0);
- test(S("abcde"), 4, 0, SV("abcdefghijklmnopqrst"), 0, 1, -1);
- test(S("abcde"), 4, 0, SV("abcdefghijklmnopqrst"), 0, 10, -10);
- test(S("abcde"), 4, 0, SV("abcdefghijklmnopqrst"), 0, 19, -19);
- test(S("abcde"), 4, 0, SV("abcdefghijklmnopqrst"), 0, 20, -20);
- test(S("abcde"), 4, 0, SV("abcdefghijklmnopqrst"), 0, 21, -20);
- test(S("abcde"), 4, 0, SV("abcdefghijklmnopqrst"), 1, 0, 0);
- test(S("abcde"), 4, 0, SV("abcdefghijklmnopqrst"), 1, 1, -1);
- test(S("abcde"), 4, 0, SV("abcdefghijklmnopqrst"), 1, 9, -9);
- test(S("abcde"), 4, 0, SV("abcdefghijklmnopqrst"), 1, 18, -18);
- test(S("abcde"), 4, 0, SV("abcdefghijklmnopqrst"), 1, 19, -19);
- test(S("abcde"), 4, 0, SV("abcdefghijklmnopqrst"), 1, 20, -19);
- test(S("abcde"), 4, 0, SV("abcdefghijklmnopqrst"), 10, 0, 0);
- test(S("abcde"), 4, 0, SV("abcdefghijklmnopqrst"), 10, 1, -1);
- test(S("abcde"), 4, 0, SV("abcdefghijklmnopqrst"), 10, 5, -5);
- test(S("abcde"), 4, 0, SV("abcdefghijklmnopqrst"), 10, 9, -9);
- test(S("abcde"), 4, 0, SV("abcdefghijklmnopqrst"), 10, 10, -10);
- test(S("abcde"), 4, 0, SV("abcdefghijklmnopqrst"), 10, 11, -10);
- test(S("abcde"), 4, 0, SV("abcdefghijklmnopqrst"), 19, 0, 0);
- test(S("abcde"), 4, 0, SV("abcdefghijklmnopqrst"), 19, 1, -1);
- test(S("abcde"), 4, 0, SV("abcdefghijklmnopqrst"), 19, 2, -1);
- test(S("abcde"), 4, 0, SV("abcdefghijklmnopqrst"), 20, 0, 0);
- test(S("abcde"), 4, 0, SV("abcdefghijklmnopqrst"), 20, 1, 0);
- test(S("abcde"), 4, 0, SV("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcde"), 4, 1, SV(""), 0, 0, 1);
- test(S("abcde"), 4, 1, SV(""), 0, 1, 1);
- test(S("abcde"), 4, 1, SV(""), 1, 0, 0);
- test(S("abcde"), 4, 1, SV("abcde"), 0, 0, 1);
- test(S("abcde"), 4, 1, SV("abcde"), 0, 1, 4);
- test(S("abcde"), 4, 1, SV("abcde"), 0, 2, 4);
- test(S("abcde"), 4, 1, SV("abcde"), 0, 4, 4);
- test(S("abcde"), 4, 1, SV("abcde"), 0, 5, 4);
- test(S("abcde"), 4, 1, SV("abcde"), 0, 6, 4);
- test(S("abcde"), 4, 1, SV("abcde"), 1, 0, 1);
- test(S("abcde"), 4, 1, SV("abcde"), 1, 1, 3);
- test(S("abcde"), 4, 1, SV("abcde"), 1, 2, 3);
- test(S("abcde"), 4, 1, SV("abcde"), 1, 3, 3);
- test(S("abcde"), 4, 1, SV("abcde"), 1, 4, 3);
- test(S("abcde"), 4, 1, SV("abcde"), 1, 5, 3);
- test(S("abcde"), 4, 1, SV("abcde"), 2, 0, 1);
- test(S("abcde"), 4, 1, SV("abcde"), 2, 1, 2);
- test(S("abcde"), 4, 1, SV("abcde"), 2, 2, 2);
- test(S("abcde"), 4, 1, SV("abcde"), 2, 3, 2);
- test(S("abcde"), 4, 1, SV("abcde"), 2, 4, 2);
- test(S("abcde"), 4, 1, SV("abcde"), 4, 0, 1);
- test(S("abcde"), 4, 1, SV("abcde"), 4, 1, 0);
- test(S("abcde"), 4, 1, SV("abcde"), 4, 2, 0);
- test(S("abcde"), 4, 1, SV("abcde"), 5, 0, 1);
- test(S("abcde"), 4, 1, SV("abcde"), 5, 1, 1);
- test(S("abcde"), 4, 1, SV("abcde"), 6, 0, 0);
- test(S("abcde"), 4, 1, SV("abcdefghij"), 0, 0, 1);
- test(S("abcde"), 4, 1, SV("abcdefghij"), 0, 1, 4);
- test(S("abcde"), 4, 1, SV("abcdefghij"), 0, 5, 4);
- test(S("abcde"), 4, 1, SV("abcdefghij"), 0, 9, 4);
- test(S("abcde"), 4, 1, SV("abcdefghij"), 0, 10, 4);
- test(S("abcde"), 4, 1, SV("abcdefghij"), 0, 11, 4);
- test(S("abcde"), 4, 1, SV("abcdefghij"), 1, 0, 1);
- test(S("abcde"), 4, 1, SV("abcdefghij"), 1, 1, 3);
- test(S("abcde"), 4, 1, SV("abcdefghij"), 1, 4, 3);
- test(S("abcde"), 4, 1, SV("abcdefghij"), 1, 8, 3);
- test(S("abcde"), 4, 1, SV("abcdefghij"), 1, 9, 3);
- test(S("abcde"), 4, 1, SV("abcdefghij"), 1, 10, 3);
- test(S("abcde"), 4, 1, SV("abcdefghij"), 5, 0, 1);
- test(S("abcde"), 4, 1, SV("abcdefghij"), 5, 1, -1);
- test(S("abcde"), 4, 1, SV("abcdefghij"), 5, 2, -1);
- test(S("abcde"), 4, 1, SV("abcdefghij"), 5, 4, -1);
- test(S("abcde"), 4, 1, SV("abcdefghij"), 5, 5, -1);
- test(S("abcde"), 4, 1, SV("abcdefghij"), 5, 6, -1);
- test(S("abcde"), 4, 1, SV("abcdefghij"), 9, 0, 1);
- test(S("abcde"), 4, 1, SV("abcdefghij"), 9, 1, -5);
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test15() {
+ test(S("abcde"), 4, 0, SV("abcde"), 4, 0, 0);
+ test(S("abcde"), 4, 0, SV("abcde"), 4, 1, -1);
+ test(S("abcde"), 4, 0, SV("abcde"), 4, 2, -1);
+ test(S("abcde"), 4, 0, SV("abcde"), 5, 0, 0);
+ test(S("abcde"), 4, 0, SV("abcde"), 5, 1, 0);
+ test(S("abcde"), 4, 0, SV("abcde"), 6, 0, 0);
+ test(S("abcde"), 4, 0, SV("abcdefghij"), 0, 0, 0);
+ test(S("abcde"), 4, 0, SV("abcdefghij"), 0, 1, -1);
+ test(S("abcde"), 4, 0, SV("abcdefghij"), 0, 5, -5);
+ test(S("abcde"), 4, 0, SV("abcdefghij"), 0, 9, -9);
+ test(S("abcde"), 4, 0, SV("abcdefghij"), 0, 10, -10);
+ test(S("abcde"), 4, 0, SV("abcdefghij"), 0, 11, -10);
+ test(S("abcde"), 4, 0, SV("abcdefghij"), 1, 0, 0);
+ test(S("abcde"), 4, 0, SV("abcdefghij"), 1, 1, -1);
+ test(S("abcde"), 4, 0, SV("abcdefghij"), 1, 4, -4);
+ test(S("abcde"), 4, 0, SV("abcdefghij"), 1, 8, -8);
+ test(S("abcde"), 4, 0, SV("abcdefghij"), 1, 9, -9);
+ test(S("abcde"), 4, 0, SV("abcdefghij"), 1, 10, -9);
+ test(S("abcde"), 4, 0, SV("abcdefghij"), 5, 0, 0);
+ test(S("abcde"), 4, 0, SV("abcdefghij"), 5, 1, -1);
+ test(S("abcde"), 4, 0, SV("abcdefghij"), 5, 2, -2);
+ test(S("abcde"), 4, 0, SV("abcdefghij"), 5, 4, -4);
+ test(S("abcde"), 4, 0, SV("abcdefghij"), 5, 5, -5);
+ test(S("abcde"), 4, 0, SV("abcdefghij"), 5, 6, -5);
+ test(S("abcde"), 4, 0, SV("abcdefghij"), 9, 0, 0);
+ test(S("abcde"), 4, 0, SV("abcdefghij"), 9, 1, -1);
+ test(S("abcde"), 4, 0, SV("abcdefghij"), 9, 2, -1);
+ test(S("abcde"), 4, 0, SV("abcdefghij"), 10, 0, 0);
+ test(S("abcde"), 4, 0, SV("abcdefghij"), 10, 1, 0);
+ test(S("abcde"), 4, 0, SV("abcdefghij"), 11, 0, 0);
+ test(S("abcde"), 4, 0, SV("abcdefghijklmnopqrst"), 0, 0, 0);
+ test(S("abcde"), 4, 0, SV("abcdefghijklmnopqrst"), 0, 1, -1);
+ test(S("abcde"), 4, 0, SV("abcdefghijklmnopqrst"), 0, 10, -10);
+ test(S("abcde"), 4, 0, SV("abcdefghijklmnopqrst"), 0, 19, -19);
+ test(S("abcde"), 4, 0, SV("abcdefghijklmnopqrst"), 0, 20, -20);
+ test(S("abcde"), 4, 0, SV("abcdefghijklmnopqrst"), 0, 21, -20);
+ test(S("abcde"), 4, 0, SV("abcdefghijklmnopqrst"), 1, 0, 0);
+ test(S("abcde"), 4, 0, SV("abcdefghijklmnopqrst"), 1, 1, -1);
+ test(S("abcde"), 4, 0, SV("abcdefghijklmnopqrst"), 1, 9, -9);
+ test(S("abcde"), 4, 0, SV("abcdefghijklmnopqrst"), 1, 18, -18);
+ test(S("abcde"), 4, 0, SV("abcdefghijklmnopqrst"), 1, 19, -19);
+ test(S("abcde"), 4, 0, SV("abcdefghijklmnopqrst"), 1, 20, -19);
+ test(S("abcde"), 4, 0, SV("abcdefghijklmnopqrst"), 10, 0, 0);
+ test(S("abcde"), 4, 0, SV("abcdefghijklmnopqrst"), 10, 1, -1);
+ test(S("abcde"), 4, 0, SV("abcdefghijklmnopqrst"), 10, 5, -5);
+ test(S("abcde"), 4, 0, SV("abcdefghijklmnopqrst"), 10, 9, -9);
+ test(S("abcde"), 4, 0, SV("abcdefghijklmnopqrst"), 10, 10, -10);
+ test(S("abcde"), 4, 0, SV("abcdefghijklmnopqrst"), 10, 11, -10);
+ test(S("abcde"), 4, 0, SV("abcdefghijklmnopqrst"), 19, 0, 0);
+ test(S("abcde"), 4, 0, SV("abcdefghijklmnopqrst"), 19, 1, -1);
+ test(S("abcde"), 4, 0, SV("abcdefghijklmnopqrst"), 19, 2, -1);
+ test(S("abcde"), 4, 0, SV("abcdefghijklmnopqrst"), 20, 0, 0);
+ test(S("abcde"), 4, 0, SV("abcdefghijklmnopqrst"), 20, 1, 0);
+ test(S("abcde"), 4, 0, SV("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcde"), 4, 1, SV(""), 0, 0, 1);
+ test(S("abcde"), 4, 1, SV(""), 0, 1, 1);
+ test(S("abcde"), 4, 1, SV(""), 1, 0, 0);
+ test(S("abcde"), 4, 1, SV("abcde"), 0, 0, 1);
+ test(S("abcde"), 4, 1, SV("abcde"), 0, 1, 4);
+ test(S("abcde"), 4, 1, SV("abcde"), 0, 2, 4);
+ test(S("abcde"), 4, 1, SV("abcde"), 0, 4, 4);
+ test(S("abcde"), 4, 1, SV("abcde"), 0, 5, 4);
+ test(S("abcde"), 4, 1, SV("abcde"), 0, 6, 4);
+ test(S("abcde"), 4, 1, SV("abcde"), 1, 0, 1);
+ test(S("abcde"), 4, 1, SV("abcde"), 1, 1, 3);
+ test(S("abcde"), 4, 1, SV("abcde"), 1, 2, 3);
+ test(S("abcde"), 4, 1, SV("abcde"), 1, 3, 3);
+ test(S("abcde"), 4, 1, SV("abcde"), 1, 4, 3);
+ test(S("abcde"), 4, 1, SV("abcde"), 1, 5, 3);
+ test(S("abcde"), 4, 1, SV("abcde"), 2, 0, 1);
+ test(S("abcde"), 4, 1, SV("abcde"), 2, 1, 2);
+ test(S("abcde"), 4, 1, SV("abcde"), 2, 2, 2);
+ test(S("abcde"), 4, 1, SV("abcde"), 2, 3, 2);
+ test(S("abcde"), 4, 1, SV("abcde"), 2, 4, 2);
+ test(S("abcde"), 4, 1, SV("abcde"), 4, 0, 1);
+ test(S("abcde"), 4, 1, SV("abcde"), 4, 1, 0);
+ test(S("abcde"), 4, 1, SV("abcde"), 4, 2, 0);
+ test(S("abcde"), 4, 1, SV("abcde"), 5, 0, 1);
+ test(S("abcde"), 4, 1, SV("abcde"), 5, 1, 1);
+ test(S("abcde"), 4, 1, SV("abcde"), 6, 0, 0);
+ test(S("abcde"), 4, 1, SV("abcdefghij"), 0, 0, 1);
+ test(S("abcde"), 4, 1, SV("abcdefghij"), 0, 1, 4);
+ test(S("abcde"), 4, 1, SV("abcdefghij"), 0, 5, 4);
+ test(S("abcde"), 4, 1, SV("abcdefghij"), 0, 9, 4);
+ test(S("abcde"), 4, 1, SV("abcdefghij"), 0, 10, 4);
+ test(S("abcde"), 4, 1, SV("abcdefghij"), 0, 11, 4);
+ test(S("abcde"), 4, 1, SV("abcdefghij"), 1, 0, 1);
+ test(S("abcde"), 4, 1, SV("abcdefghij"), 1, 1, 3);
+ test(S("abcde"), 4, 1, SV("abcdefghij"), 1, 4, 3);
+ test(S("abcde"), 4, 1, SV("abcdefghij"), 1, 8, 3);
+ test(S("abcde"), 4, 1, SV("abcdefghij"), 1, 9, 3);
+ test(S("abcde"), 4, 1, SV("abcdefghij"), 1, 10, 3);
+ test(S("abcde"), 4, 1, SV("abcdefghij"), 5, 0, 1);
+ test(S("abcde"), 4, 1, SV("abcdefghij"), 5, 1, -1);
+ test(S("abcde"), 4, 1, SV("abcdefghij"), 5, 2, -1);
+ test(S("abcde"), 4, 1, SV("abcdefghij"), 5, 4, -1);
+ test(S("abcde"), 4, 1, SV("abcdefghij"), 5, 5, -1);
+ test(S("abcde"), 4, 1, SV("abcdefghij"), 5, 6, -1);
+ test(S("abcde"), 4, 1, SV("abcdefghij"), 9, 0, 1);
+ test(S("abcde"), 4, 1, SV("abcdefghij"), 9, 1, -5);
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test16()
-{
- test(S("abcde"), 4, 1, SV("abcdefghij"), 9, 2, -5);
- test(S("abcde"), 4, 1, SV("abcdefghij"), 10, 0, 1);
- test(S("abcde"), 4, 1, SV("abcdefghij"), 10, 1, 1);
- test(S("abcde"), 4, 1, SV("abcdefghij"), 11, 0, 0);
- test(S("abcde"), 4, 1, SV("abcdefghijklmnopqrst"), 0, 0, 1);
- test(S("abcde"), 4, 1, SV("abcdefghijklmnopqrst"), 0, 1, 4);
- test(S("abcde"), 4, 1, SV("abcdefghijklmnopqrst"), 0, 10, 4);
- test(S("abcde"), 4, 1, SV("abcdefghijklmnopqrst"), 0, 19, 4);
- test(S("abcde"), 4, 1, SV("abcdefghijklmnopqrst"), 0, 20, 4);
- test(S("abcde"), 4, 1, SV("abcdefghijklmnopqrst"), 0, 21, 4);
- test(S("abcde"), 4, 1, SV("abcdefghijklmnopqrst"), 1, 0, 1);
- test(S("abcde"), 4, 1, SV("abcdefghijklmnopqrst"), 1, 1, 3);
- test(S("abcde"), 4, 1, SV("abcdefghijklmnopqrst"), 1, 9, 3);
- test(S("abcde"), 4, 1, SV("abcdefghijklmnopqrst"), 1, 18, 3);
- test(S("abcde"), 4, 1, SV("abcdefghijklmnopqrst"), 1, 19, 3);
- test(S("abcde"), 4, 1, SV("abcdefghijklmnopqrst"), 1, 20, 3);
- test(S("abcde"), 4, 1, SV("abcdefghijklmnopqrst"), 10, 0, 1);
- test(S("abcde"), 4, 1, SV("abcdefghijklmnopqrst"), 10, 1, -6);
- test(S("abcde"), 4, 1, SV("abcdefghijklmnopqrst"), 10, 5, -6);
- test(S("abcde"), 4, 1, SV("abcdefghijklmnopqrst"), 10, 9, -6);
- test(S("abcde"), 4, 1, SV("abcdefghijklmnopqrst"), 10, 10, -6);
- test(S("abcde"), 4, 1, SV("abcdefghijklmnopqrst"), 10, 11, -6);
- test(S("abcde"), 4, 1, SV("abcdefghijklmnopqrst"), 19, 0, 1);
- test(S("abcde"), 4, 1, SV("abcdefghijklmnopqrst"), 19, 1, -15);
- test(S("abcde"), 4, 1, SV("abcdefghijklmnopqrst"), 19, 2, -15);
- test(S("abcde"), 4, 1, SV("abcdefghijklmnopqrst"), 20, 0, 1);
- test(S("abcde"), 4, 1, SV("abcdefghijklmnopqrst"), 20, 1, 1);
- test(S("abcde"), 4, 1, SV("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcde"), 4, 2, SV(""), 0, 0, 1);
- test(S("abcde"), 4, 2, SV(""), 0, 1, 1);
- test(S("abcde"), 4, 2, SV(""), 1, 0, 0);
- test(S("abcde"), 4, 2, SV("abcde"), 0, 0, 1);
- test(S("abcde"), 4, 2, SV("abcde"), 0, 1, 4);
- test(S("abcde"), 4, 2, SV("abcde"), 0, 2, 4);
- test(S("abcde"), 4, 2, SV("abcde"), 0, 4, 4);
- test(S("abcde"), 4, 2, SV("abcde"), 0, 5, 4);
- test(S("abcde"), 4, 2, SV("abcde"), 0, 6, 4);
- test(S("abcde"), 4, 2, SV("abcde"), 1, 0, 1);
- test(S("abcde"), 4, 2, SV("abcde"), 1, 1, 3);
- test(S("abcde"), 4, 2, SV("abcde"), 1, 2, 3);
- test(S("abcde"), 4, 2, SV("abcde"), 1, 3, 3);
- test(S("abcde"), 4, 2, SV("abcde"), 1, 4, 3);
- test(S("abcde"), 4, 2, SV("abcde"), 1, 5, 3);
- test(S("abcde"), 4, 2, SV("abcde"), 2, 0, 1);
- test(S("abcde"), 4, 2, SV("abcde"), 2, 1, 2);
- test(S("abcde"), 4, 2, SV("abcde"), 2, 2, 2);
- test(S("abcde"), 4, 2, SV("abcde"), 2, 3, 2);
- test(S("abcde"), 4, 2, SV("abcde"), 2, 4, 2);
- test(S("abcde"), 4, 2, SV("abcde"), 4, 0, 1);
- test(S("abcde"), 4, 2, SV("abcde"), 4, 1, 0);
- test(S("abcde"), 4, 2, SV("abcde"), 4, 2, 0);
- test(S("abcde"), 4, 2, SV("abcde"), 5, 0, 1);
- test(S("abcde"), 4, 2, SV("abcde"), 5, 1, 1);
- test(S("abcde"), 4, 2, SV("abcde"), 6, 0, 0);
- test(S("abcde"), 4, 2, SV("abcdefghij"), 0, 0, 1);
- test(S("abcde"), 4, 2, SV("abcdefghij"), 0, 1, 4);
- test(S("abcde"), 4, 2, SV("abcdefghij"), 0, 5, 4);
- test(S("abcde"), 4, 2, SV("abcdefghij"), 0, 9, 4);
- test(S("abcde"), 4, 2, SV("abcdefghij"), 0, 10, 4);
- test(S("abcde"), 4, 2, SV("abcdefghij"), 0, 11, 4);
- test(S("abcde"), 4, 2, SV("abcdefghij"), 1, 0, 1);
- test(S("abcde"), 4, 2, SV("abcdefghij"), 1, 1, 3);
- test(S("abcde"), 4, 2, SV("abcdefghij"), 1, 4, 3);
- test(S("abcde"), 4, 2, SV("abcdefghij"), 1, 8, 3);
- test(S("abcde"), 4, 2, SV("abcdefghij"), 1, 9, 3);
- test(S("abcde"), 4, 2, SV("abcdefghij"), 1, 10, 3);
- test(S("abcde"), 4, 2, SV("abcdefghij"), 5, 0, 1);
- test(S("abcde"), 4, 2, SV("abcdefghij"), 5, 1, -1);
- test(S("abcde"), 4, 2, SV("abcdefghij"), 5, 2, -1);
- test(S("abcde"), 4, 2, SV("abcdefghij"), 5, 4, -1);
- test(S("abcde"), 4, 2, SV("abcdefghij"), 5, 5, -1);
- test(S("abcde"), 4, 2, SV("abcdefghij"), 5, 6, -1);
- test(S("abcde"), 4, 2, SV("abcdefghij"), 9, 0, 1);
- test(S("abcde"), 4, 2, SV("abcdefghij"), 9, 1, -5);
- test(S("abcde"), 4, 2, SV("abcdefghij"), 9, 2, -5);
- test(S("abcde"), 4, 2, SV("abcdefghij"), 10, 0, 1);
- test(S("abcde"), 4, 2, SV("abcdefghij"), 10, 1, 1);
- test(S("abcde"), 4, 2, SV("abcdefghij"), 11, 0, 0);
- test(S("abcde"), 4, 2, SV("abcdefghijklmnopqrst"), 0, 0, 1);
- test(S("abcde"), 4, 2, SV("abcdefghijklmnopqrst"), 0, 1, 4);
- test(S("abcde"), 4, 2, SV("abcdefghijklmnopqrst"), 0, 10, 4);
- test(S("abcde"), 4, 2, SV("abcdefghijklmnopqrst"), 0, 19, 4);
- test(S("abcde"), 4, 2, SV("abcdefghijklmnopqrst"), 0, 20, 4);
- test(S("abcde"), 4, 2, SV("abcdefghijklmnopqrst"), 0, 21, 4);
- test(S("abcde"), 4, 2, SV("abcdefghijklmnopqrst"), 1, 0, 1);
- test(S("abcde"), 4, 2, SV("abcdefghijklmnopqrst"), 1, 1, 3);
- test(S("abcde"), 4, 2, SV("abcdefghijklmnopqrst"), 1, 9, 3);
- test(S("abcde"), 4, 2, SV("abcdefghijklmnopqrst"), 1, 18, 3);
- test(S("abcde"), 4, 2, SV("abcdefghijklmnopqrst"), 1, 19, 3);
- test(S("abcde"), 4, 2, SV("abcdefghijklmnopqrst"), 1, 20, 3);
- test(S("abcde"), 4, 2, SV("abcdefghijklmnopqrst"), 10, 0, 1);
- test(S("abcde"), 4, 2, SV("abcdefghijklmnopqrst"), 10, 1, -6);
- test(S("abcde"), 4, 2, SV("abcdefghijklmnopqrst"), 10, 5, -6);
- test(S("abcde"), 4, 2, SV("abcdefghijklmnopqrst"), 10, 9, -6);
- test(S("abcde"), 4, 2, SV("abcdefghijklmnopqrst"), 10, 10, -6);
- test(S("abcde"), 4, 2, SV("abcdefghijklmnopqrst"), 10, 11, -6);
- test(S("abcde"), 4, 2, SV("abcdefghijklmnopqrst"), 19, 0, 1);
- test(S("abcde"), 4, 2, SV("abcdefghijklmnopqrst"), 19, 1, -15);
- test(S("abcde"), 4, 2, SV("abcdefghijklmnopqrst"), 19, 2, -15);
- test(S("abcde"), 4, 2, SV("abcdefghijklmnopqrst"), 20, 0, 1);
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test16() {
+ test(S("abcde"), 4, 1, SV("abcdefghij"), 9, 2, -5);
+ test(S("abcde"), 4, 1, SV("abcdefghij"), 10, 0, 1);
+ test(S("abcde"), 4, 1, SV("abcdefghij"), 10, 1, 1);
+ test(S("abcde"), 4, 1, SV("abcdefghij"), 11, 0, 0);
+ test(S("abcde"), 4, 1, SV("abcdefghijklmnopqrst"), 0, 0, 1);
+ test(S("abcde"), 4, 1, SV("abcdefghijklmnopqrst"), 0, 1, 4);
+ test(S("abcde"), 4, 1, SV("abcdefghijklmnopqrst"), 0, 10, 4);
+ test(S("abcde"), 4, 1, SV("abcdefghijklmnopqrst"), 0, 19, 4);
+ test(S("abcde"), 4, 1, SV("abcdefghijklmnopqrst"), 0, 20, 4);
+ test(S("abcde"), 4, 1, SV("abcdefghijklmnopqrst"), 0, 21, 4);
+ test(S("abcde"), 4, 1, SV("abcdefghijklmnopqrst"), 1, 0, 1);
+ test(S("abcde"), 4, 1, SV("abcdefghijklmnopqrst"), 1, 1, 3);
+ test(S("abcde"), 4, 1, SV("abcdefghijklmnopqrst"), 1, 9, 3);
+ test(S("abcde"), 4, 1, SV("abcdefghijklmnopqrst"), 1, 18, 3);
+ test(S("abcde"), 4, 1, SV("abcdefghijklmnopqrst"), 1, 19, 3);
+ test(S("abcde"), 4, 1, SV("abcdefghijklmnopqrst"), 1, 20, 3);
+ test(S("abcde"), 4, 1, SV("abcdefghijklmnopqrst"), 10, 0, 1);
+ test(S("abcde"), 4, 1, SV("abcdefghijklmnopqrst"), 10, 1, -6);
+ test(S("abcde"), 4, 1, SV("abcdefghijklmnopqrst"), 10, 5, -6);
+ test(S("abcde"), 4, 1, SV("abcdefghijklmnopqrst"), 10, 9, -6);
+ test(S("abcde"), 4, 1, SV("abcdefghijklmnopqrst"), 10, 10, -6);
+ test(S("abcde"), 4, 1, SV("abcdefghijklmnopqrst"), 10, 11, -6);
+ test(S("abcde"), 4, 1, SV("abcdefghijklmnopqrst"), 19, 0, 1);
+ test(S("abcde"), 4, 1, SV("abcdefghijklmnopqrst"), 19, 1, -15);
+ test(S("abcde"), 4, 1, SV("abcdefghijklmnopqrst"), 19, 2, -15);
+ test(S("abcde"), 4, 1, SV("abcdefghijklmnopqrst"), 20, 0, 1);
+ test(S("abcde"), 4, 1, SV("abcdefghijklmnopqrst"), 20, 1, 1);
+ test(S("abcde"), 4, 1, SV("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcde"), 4, 2, SV(""), 0, 0, 1);
+ test(S("abcde"), 4, 2, SV(""), 0, 1, 1);
+ test(S("abcde"), 4, 2, SV(""), 1, 0, 0);
+ test(S("abcde"), 4, 2, SV("abcde"), 0, 0, 1);
+ test(S("abcde"), 4, 2, SV("abcde"), 0, 1, 4);
+ test(S("abcde"), 4, 2, SV("abcde"), 0, 2, 4);
+ test(S("abcde"), 4, 2, SV("abcde"), 0, 4, 4);
+ test(S("abcde"), 4, 2, SV("abcde"), 0, 5, 4);
+ test(S("abcde"), 4, 2, SV("abcde"), 0, 6, 4);
+ test(S("abcde"), 4, 2, SV("abcde"), 1, 0, 1);
+ test(S("abcde"), 4, 2, SV("abcde"), 1, 1, 3);
+ test(S("abcde"), 4, 2, SV("abcde"), 1, 2, 3);
+ test(S("abcde"), 4, 2, SV("abcde"), 1, 3, 3);
+ test(S("abcde"), 4, 2, SV("abcde"), 1, 4, 3);
+ test(S("abcde"), 4, 2, SV("abcde"), 1, 5, 3);
+ test(S("abcde"), 4, 2, SV("abcde"), 2, 0, 1);
+ test(S("abcde"), 4, 2, SV("abcde"), 2, 1, 2);
+ test(S("abcde"), 4, 2, SV("abcde"), 2, 2, 2);
+ test(S("abcde"), 4, 2, SV("abcde"), 2, 3, 2);
+ test(S("abcde"), 4, 2, SV("abcde"), 2, 4, 2);
+ test(S("abcde"), 4, 2, SV("abcde"), 4, 0, 1);
+ test(S("abcde"), 4, 2, SV("abcde"), 4, 1, 0);
+ test(S("abcde"), 4, 2, SV("abcde"), 4, 2, 0);
+ test(S("abcde"), 4, 2, SV("abcde"), 5, 0, 1);
+ test(S("abcde"), 4, 2, SV("abcde"), 5, 1, 1);
+ test(S("abcde"), 4, 2, SV("abcde"), 6, 0, 0);
+ test(S("abcde"), 4, 2, SV("abcdefghij"), 0, 0, 1);
+ test(S("abcde"), 4, 2, SV("abcdefghij"), 0, 1, 4);
+ test(S("abcde"), 4, 2, SV("abcdefghij"), 0, 5, 4);
+ test(S("abcde"), 4, 2, SV("abcdefghij"), 0, 9, 4);
+ test(S("abcde"), 4, 2, SV("abcdefghij"), 0, 10, 4);
+ test(S("abcde"), 4, 2, SV("abcdefghij"), 0, 11, 4);
+ test(S("abcde"), 4, 2, SV("abcdefghij"), 1, 0, 1);
+ test(S("abcde"), 4, 2, SV("abcdefghij"), 1, 1, 3);
+ test(S("abcde"), 4, 2, SV("abcdefghij"), 1, 4, 3);
+ test(S("abcde"), 4, 2, SV("abcdefghij"), 1, 8, 3);
+ test(S("abcde"), 4, 2, SV("abcdefghij"), 1, 9, 3);
+ test(S("abcde"), 4, 2, SV("abcdefghij"), 1, 10, 3);
+ test(S("abcde"), 4, 2, SV("abcdefghij"), 5, 0, 1);
+ test(S("abcde"), 4, 2, SV("abcdefghij"), 5, 1, -1);
+ test(S("abcde"), 4, 2, SV("abcdefghij"), 5, 2, -1);
+ test(S("abcde"), 4, 2, SV("abcdefghij"), 5, 4, -1);
+ test(S("abcde"), 4, 2, SV("abcdefghij"), 5, 5, -1);
+ test(S("abcde"), 4, 2, SV("abcdefghij"), 5, 6, -1);
+ test(S("abcde"), 4, 2, SV("abcdefghij"), 9, 0, 1);
+ test(S("abcde"), 4, 2, SV("abcdefghij"), 9, 1, -5);
+ test(S("abcde"), 4, 2, SV("abcdefghij"), 9, 2, -5);
+ test(S("abcde"), 4, 2, SV("abcdefghij"), 10, 0, 1);
+ test(S("abcde"), 4, 2, SV("abcdefghij"), 10, 1, 1);
+ test(S("abcde"), 4, 2, SV("abcdefghij"), 11, 0, 0);
+ test(S("abcde"), 4, 2, SV("abcdefghijklmnopqrst"), 0, 0, 1);
+ test(S("abcde"), 4, 2, SV("abcdefghijklmnopqrst"), 0, 1, 4);
+ test(S("abcde"), 4, 2, SV("abcdefghijklmnopqrst"), 0, 10, 4);
+ test(S("abcde"), 4, 2, SV("abcdefghijklmnopqrst"), 0, 19, 4);
+ test(S("abcde"), 4, 2, SV("abcdefghijklmnopqrst"), 0, 20, 4);
+ test(S("abcde"), 4, 2, SV("abcdefghijklmnopqrst"), 0, 21, 4);
+ test(S("abcde"), 4, 2, SV("abcdefghijklmnopqrst"), 1, 0, 1);
+ test(S("abcde"), 4, 2, SV("abcdefghijklmnopqrst"), 1, 1, 3);
+ test(S("abcde"), 4, 2, SV("abcdefghijklmnopqrst"), 1, 9, 3);
+ test(S("abcde"), 4, 2, SV("abcdefghijklmnopqrst"), 1, 18, 3);
+ test(S("abcde"), 4, 2, SV("abcdefghijklmnopqrst"), 1, 19, 3);
+ test(S("abcde"), 4, 2, SV("abcdefghijklmnopqrst"), 1, 20, 3);
+ test(S("abcde"), 4, 2, SV("abcdefghijklmnopqrst"), 10, 0, 1);
+ test(S("abcde"), 4, 2, SV("abcdefghijklmnopqrst"), 10, 1, -6);
+ test(S("abcde"), 4, 2, SV("abcdefghijklmnopqrst"), 10, 5, -6);
+ test(S("abcde"), 4, 2, SV("abcdefghijklmnopqrst"), 10, 9, -6);
+ test(S("abcde"), 4, 2, SV("abcdefghijklmnopqrst"), 10, 10, -6);
+ test(S("abcde"), 4, 2, SV("abcdefghijklmnopqrst"), 10, 11, -6);
+ test(S("abcde"), 4, 2, SV("abcdefghijklmnopqrst"), 19, 0, 1);
+ test(S("abcde"), 4, 2, SV("abcdefghijklmnopqrst"), 19, 1, -15);
+ test(S("abcde"), 4, 2, SV("abcdefghijklmnopqrst"), 19, 2, -15);
+ test(S("abcde"), 4, 2, SV("abcdefghijklmnopqrst"), 20, 0, 1);
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test17()
-{
- test(S("abcde"), 4, 2, SV("abcdefghijklmnopqrst"), 20, 1, 1);
- test(S("abcde"), 4, 2, SV("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcde"), 5, 0, SV(""), 0, 0, 0);
- test(S("abcde"), 5, 0, SV(""), 0, 1, 0);
- test(S("abcde"), 5, 0, SV(""), 1, 0, 0);
- test(S("abcde"), 5, 0, SV("abcde"), 0, 0, 0);
- test(S("abcde"), 5, 0, SV("abcde"), 0, 1, -1);
- test(S("abcde"), 5, 0, SV("abcde"), 0, 2, -2);
- test(S("abcde"), 5, 0, SV("abcde"), 0, 4, -4);
- test(S("abcde"), 5, 0, SV("abcde"), 0, 5, -5);
- test(S("abcde"), 5, 0, SV("abcde"), 0, 6, -5);
- test(S("abcde"), 5, 0, SV("abcde"), 1, 0, 0);
- test(S("abcde"), 5, 0, SV("abcde"), 1, 1, -1);
- test(S("abcde"), 5, 0, SV("abcde"), 1, 2, -2);
- test(S("abcde"), 5, 0, SV("abcde"), 1, 3, -3);
- test(S("abcde"), 5, 0, SV("abcde"), 1, 4, -4);
- test(S("abcde"), 5, 0, SV("abcde"), 1, 5, -4);
- test(S("abcde"), 5, 0, SV("abcde"), 2, 0, 0);
- test(S("abcde"), 5, 0, SV("abcde"), 2, 1, -1);
- test(S("abcde"), 5, 0, SV("abcde"), 2, 2, -2);
- test(S("abcde"), 5, 0, SV("abcde"), 2, 3, -3);
- test(S("abcde"), 5, 0, SV("abcde"), 2, 4, -3);
- test(S("abcde"), 5, 0, SV("abcde"), 4, 0, 0);
- test(S("abcde"), 5, 0, SV("abcde"), 4, 1, -1);
- test(S("abcde"), 5, 0, SV("abcde"), 4, 2, -1);
- test(S("abcde"), 5, 0, SV("abcde"), 5, 0, 0);
- test(S("abcde"), 5, 0, SV("abcde"), 5, 1, 0);
- test(S("abcde"), 5, 0, SV("abcde"), 6, 0, 0);
- test(S("abcde"), 5, 0, SV("abcdefghij"), 0, 0, 0);
- test(S("abcde"), 5, 0, SV("abcdefghij"), 0, 1, -1);
- test(S("abcde"), 5, 0, SV("abcdefghij"), 0, 5, -5);
- test(S("abcde"), 5, 0, SV("abcdefghij"), 0, 9, -9);
- test(S("abcde"), 5, 0, SV("abcdefghij"), 0, 10, -10);
- test(S("abcde"), 5, 0, SV("abcdefghij"), 0, 11, -10);
- test(S("abcde"), 5, 0, SV("abcdefghij"), 1, 0, 0);
- test(S("abcde"), 5, 0, SV("abcdefghij"), 1, 1, -1);
- test(S("abcde"), 5, 0, SV("abcdefghij"), 1, 4, -4);
- test(S("abcde"), 5, 0, SV("abcdefghij"), 1, 8, -8);
- test(S("abcde"), 5, 0, SV("abcdefghij"), 1, 9, -9);
- test(S("abcde"), 5, 0, SV("abcdefghij"), 1, 10, -9);
- test(S("abcde"), 5, 0, SV("abcdefghij"), 5, 0, 0);
- test(S("abcde"), 5, 0, SV("abcdefghij"), 5, 1, -1);
- test(S("abcde"), 5, 0, SV("abcdefghij"), 5, 2, -2);
- test(S("abcde"), 5, 0, SV("abcdefghij"), 5, 4, -4);
- test(S("abcde"), 5, 0, SV("abcdefghij"), 5, 5, -5);
- test(S("abcde"), 5, 0, SV("abcdefghij"), 5, 6, -5);
- test(S("abcde"), 5, 0, SV("abcdefghij"), 9, 0, 0);
- test(S("abcde"), 5, 0, SV("abcdefghij"), 9, 1, -1);
- test(S("abcde"), 5, 0, SV("abcdefghij"), 9, 2, -1);
- test(S("abcde"), 5, 0, SV("abcdefghij"), 10, 0, 0);
- test(S("abcde"), 5, 0, SV("abcdefghij"), 10, 1, 0);
- test(S("abcde"), 5, 0, SV("abcdefghij"), 11, 0, 0);
- test(S("abcde"), 5, 0, SV("abcdefghijklmnopqrst"), 0, 0, 0);
- test(S("abcde"), 5, 0, SV("abcdefghijklmnopqrst"), 0, 1, -1);
- test(S("abcde"), 5, 0, SV("abcdefghijklmnopqrst"), 0, 10, -10);
- test(S("abcde"), 5, 0, SV("abcdefghijklmnopqrst"), 0, 19, -19);
- test(S("abcde"), 5, 0, SV("abcdefghijklmnopqrst"), 0, 20, -20);
- test(S("abcde"), 5, 0, SV("abcdefghijklmnopqrst"), 0, 21, -20);
- test(S("abcde"), 5, 0, SV("abcdefghijklmnopqrst"), 1, 0, 0);
- test(S("abcde"), 5, 0, SV("abcdefghijklmnopqrst"), 1, 1, -1);
- test(S("abcde"), 5, 0, SV("abcdefghijklmnopqrst"), 1, 9, -9);
- test(S("abcde"), 5, 0, SV("abcdefghijklmnopqrst"), 1, 18, -18);
- test(S("abcde"), 5, 0, SV("abcdefghijklmnopqrst"), 1, 19, -19);
- test(S("abcde"), 5, 0, SV("abcdefghijklmnopqrst"), 1, 20, -19);
- test(S("abcde"), 5, 0, SV("abcdefghijklmnopqrst"), 10, 0, 0);
- test(S("abcde"), 5, 0, SV("abcdefghijklmnopqrst"), 10, 1, -1);
- test(S("abcde"), 5, 0, SV("abcdefghijklmnopqrst"), 10, 5, -5);
- test(S("abcde"), 5, 0, SV("abcdefghijklmnopqrst"), 10, 9, -9);
- test(S("abcde"), 5, 0, SV("abcdefghijklmnopqrst"), 10, 10, -10);
- test(S("abcde"), 5, 0, SV("abcdefghijklmnopqrst"), 10, 11, -10);
- test(S("abcde"), 5, 0, SV("abcdefghijklmnopqrst"), 19, 0, 0);
- test(S("abcde"), 5, 0, SV("abcdefghijklmnopqrst"), 19, 1, -1);
- test(S("abcde"), 5, 0, SV("abcdefghijklmnopqrst"), 19, 2, -1);
- test(S("abcde"), 5, 0, SV("abcdefghijklmnopqrst"), 20, 0, 0);
- test(S("abcde"), 5, 0, SV("abcdefghijklmnopqrst"), 20, 1, 0);
- test(S("abcde"), 5, 0, SV("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcde"), 5, 1, SV(""), 0, 0, 0);
- test(S("abcde"), 5, 1, SV(""), 0, 1, 0);
- test(S("abcde"), 5, 1, SV(""), 1, 0, 0);
- test(S("abcde"), 5, 1, SV("abcde"), 0, 0, 0);
- test(S("abcde"), 5, 1, SV("abcde"), 0, 1, -1);
- test(S("abcde"), 5, 1, SV("abcde"), 0, 2, -2);
- test(S("abcde"), 5, 1, SV("abcde"), 0, 4, -4);
- test(S("abcde"), 5, 1, SV("abcde"), 0, 5, -5);
- test(S("abcde"), 5, 1, SV("abcde"), 0, 6, -5);
- test(S("abcde"), 5, 1, SV("abcde"), 1, 0, 0);
- test(S("abcde"), 5, 1, SV("abcde"), 1, 1, -1);
- test(S("abcde"), 5, 1, SV("abcde"), 1, 2, -2);
- test(S("abcde"), 5, 1, SV("abcde"), 1, 3, -3);
- test(S("abcde"), 5, 1, SV("abcde"), 1, 4, -4);
- test(S("abcde"), 5, 1, SV("abcde"), 1, 5, -4);
- test(S("abcde"), 5, 1, SV("abcde"), 2, 0, 0);
- test(S("abcde"), 5, 1, SV("abcde"), 2, 1, -1);
- test(S("abcde"), 5, 1, SV("abcde"), 2, 2, -2);
- test(S("abcde"), 5, 1, SV("abcde"), 2, 3, -3);
- test(S("abcde"), 5, 1, SV("abcde"), 2, 4, -3);
- test(S("abcde"), 5, 1, SV("abcde"), 4, 0, 0);
- test(S("abcde"), 5, 1, SV("abcde"), 4, 1, -1);
- test(S("abcde"), 5, 1, SV("abcde"), 4, 2, -1);
- test(S("abcde"), 5, 1, SV("abcde"), 5, 0, 0);
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test17() {
+ test(S("abcde"), 4, 2, SV("abcdefghijklmnopqrst"), 20, 1, 1);
+ test(S("abcde"), 4, 2, SV("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcde"), 5, 0, SV(""), 0, 0, 0);
+ test(S("abcde"), 5, 0, SV(""), 0, 1, 0);
+ test(S("abcde"), 5, 0, SV(""), 1, 0, 0);
+ test(S("abcde"), 5, 0, SV("abcde"), 0, 0, 0);
+ test(S("abcde"), 5, 0, SV("abcde"), 0, 1, -1);
+ test(S("abcde"), 5, 0, SV("abcde"), 0, 2, -2);
+ test(S("abcde"), 5, 0, SV("abcde"), 0, 4, -4);
+ test(S("abcde"), 5, 0, SV("abcde"), 0, 5, -5);
+ test(S("abcde"), 5, 0, SV("abcde"), 0, 6, -5);
+ test(S("abcde"), 5, 0, SV("abcde"), 1, 0, 0);
+ test(S("abcde"), 5, 0, SV("abcde"), 1, 1, -1);
+ test(S("abcde"), 5, 0, SV("abcde"), 1, 2, -2);
+ test(S("abcde"), 5, 0, SV("abcde"), 1, 3, -3);
+ test(S("abcde"), 5, 0, SV("abcde"), 1, 4, -4);
+ test(S("abcde"), 5, 0, SV("abcde"), 1, 5, -4);
+ test(S("abcde"), 5, 0, SV("abcde"), 2, 0, 0);
+ test(S("abcde"), 5, 0, SV("abcde"), 2, 1, -1);
+ test(S("abcde"), 5, 0, SV("abcde"), 2, 2, -2);
+ test(S("abcde"), 5, 0, SV("abcde"), 2, 3, -3);
+ test(S("abcde"), 5, 0, SV("abcde"), 2, 4, -3);
+ test(S("abcde"), 5, 0, SV("abcde"), 4, 0, 0);
+ test(S("abcde"), 5, 0, SV("abcde"), 4, 1, -1);
+ test(S("abcde"), 5, 0, SV("abcde"), 4, 2, -1);
+ test(S("abcde"), 5, 0, SV("abcde"), 5, 0, 0);
+ test(S("abcde"), 5, 0, SV("abcde"), 5, 1, 0);
+ test(S("abcde"), 5, 0, SV("abcde"), 6, 0, 0);
+ test(S("abcde"), 5, 0, SV("abcdefghij"), 0, 0, 0);
+ test(S("abcde"), 5, 0, SV("abcdefghij"), 0, 1, -1);
+ test(S("abcde"), 5, 0, SV("abcdefghij"), 0, 5, -5);
+ test(S("abcde"), 5, 0, SV("abcdefghij"), 0, 9, -9);
+ test(S("abcde"), 5, 0, SV("abcdefghij"), 0, 10, -10);
+ test(S("abcde"), 5, 0, SV("abcdefghij"), 0, 11, -10);
+ test(S("abcde"), 5, 0, SV("abcdefghij"), 1, 0, 0);
+ test(S("abcde"), 5, 0, SV("abcdefghij"), 1, 1, -1);
+ test(S("abcde"), 5, 0, SV("abcdefghij"), 1, 4, -4);
+ test(S("abcde"), 5, 0, SV("abcdefghij"), 1, 8, -8);
+ test(S("abcde"), 5, 0, SV("abcdefghij"), 1, 9, -9);
+ test(S("abcde"), 5, 0, SV("abcdefghij"), 1, 10, -9);
+ test(S("abcde"), 5, 0, SV("abcdefghij"), 5, 0, 0);
+ test(S("abcde"), 5, 0, SV("abcdefghij"), 5, 1, -1);
+ test(S("abcde"), 5, 0, SV("abcdefghij"), 5, 2, -2);
+ test(S("abcde"), 5, 0, SV("abcdefghij"), 5, 4, -4);
+ test(S("abcde"), 5, 0, SV("abcdefghij"), 5, 5, -5);
+ test(S("abcde"), 5, 0, SV("abcdefghij"), 5, 6, -5);
+ test(S("abcde"), 5, 0, SV("abcdefghij"), 9, 0, 0);
+ test(S("abcde"), 5, 0, SV("abcdefghij"), 9, 1, -1);
+ test(S("abcde"), 5, 0, SV("abcdefghij"), 9, 2, -1);
+ test(S("abcde"), 5, 0, SV("abcdefghij"), 10, 0, 0);
+ test(S("abcde"), 5, 0, SV("abcdefghij"), 10, 1, 0);
+ test(S("abcde"), 5, 0, SV("abcdefghij"), 11, 0, 0);
+ test(S("abcde"), 5, 0, SV("abcdefghijklmnopqrst"), 0, 0, 0);
+ test(S("abcde"), 5, 0, SV("abcdefghijklmnopqrst"), 0, 1, -1);
+ test(S("abcde"), 5, 0, SV("abcdefghijklmnopqrst"), 0, 10, -10);
+ test(S("abcde"), 5, 0, SV("abcdefghijklmnopqrst"), 0, 19, -19);
+ test(S("abcde"), 5, 0, SV("abcdefghijklmnopqrst"), 0, 20, -20);
+ test(S("abcde"), 5, 0, SV("abcdefghijklmnopqrst"), 0, 21, -20);
+ test(S("abcde"), 5, 0, SV("abcdefghijklmnopqrst"), 1, 0, 0);
+ test(S("abcde"), 5, 0, SV("abcdefghijklmnopqrst"), 1, 1, -1);
+ test(S("abcde"), 5, 0, SV("abcdefghijklmnopqrst"), 1, 9, -9);
+ test(S("abcde"), 5, 0, SV("abcdefghijklmnopqrst"), 1, 18, -18);
+ test(S("abcde"), 5, 0, SV("abcdefghijklmnopqrst"), 1, 19, -19);
+ test(S("abcde"), 5, 0, SV("abcdefghijklmnopqrst"), 1, 20, -19);
+ test(S("abcde"), 5, 0, SV("abcdefghijklmnopqrst"), 10, 0, 0);
+ test(S("abcde"), 5, 0, SV("abcdefghijklmnopqrst"), 10, 1, -1);
+ test(S("abcde"), 5, 0, SV("abcdefghijklmnopqrst"), 10, 5, -5);
+ test(S("abcde"), 5, 0, SV("abcdefghijklmnopqrst"), 10, 9, -9);
+ test(S("abcde"), 5, 0, SV("abcdefghijklmnopqrst"), 10, 10, -10);
+ test(S("abcde"), 5, 0, SV("abcdefghijklmnopqrst"), 10, 11, -10);
+ test(S("abcde"), 5, 0, SV("abcdefghijklmnopqrst"), 19, 0, 0);
+ test(S("abcde"), 5, 0, SV("abcdefghijklmnopqrst"), 19, 1, -1);
+ test(S("abcde"), 5, 0, SV("abcdefghijklmnopqrst"), 19, 2, -1);
+ test(S("abcde"), 5, 0, SV("abcdefghijklmnopqrst"), 20, 0, 0);
+ test(S("abcde"), 5, 0, SV("abcdefghijklmnopqrst"), 20, 1, 0);
+ test(S("abcde"), 5, 0, SV("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcde"), 5, 1, SV(""), 0, 0, 0);
+ test(S("abcde"), 5, 1, SV(""), 0, 1, 0);
+ test(S("abcde"), 5, 1, SV(""), 1, 0, 0);
+ test(S("abcde"), 5, 1, SV("abcde"), 0, 0, 0);
+ test(S("abcde"), 5, 1, SV("abcde"), 0, 1, -1);
+ test(S("abcde"), 5, 1, SV("abcde"), 0, 2, -2);
+ test(S("abcde"), 5, 1, SV("abcde"), 0, 4, -4);
+ test(S("abcde"), 5, 1, SV("abcde"), 0, 5, -5);
+ test(S("abcde"), 5, 1, SV("abcde"), 0, 6, -5);
+ test(S("abcde"), 5, 1, SV("abcde"), 1, 0, 0);
+ test(S("abcde"), 5, 1, SV("abcde"), 1, 1, -1);
+ test(S("abcde"), 5, 1, SV("abcde"), 1, 2, -2);
+ test(S("abcde"), 5, 1, SV("abcde"), 1, 3, -3);
+ test(S("abcde"), 5, 1, SV("abcde"), 1, 4, -4);
+ test(S("abcde"), 5, 1, SV("abcde"), 1, 5, -4);
+ test(S("abcde"), 5, 1, SV("abcde"), 2, 0, 0);
+ test(S("abcde"), 5, 1, SV("abcde"), 2, 1, -1);
+ test(S("abcde"), 5, 1, SV("abcde"), 2, 2, -2);
+ test(S("abcde"), 5, 1, SV("abcde"), 2, 3, -3);
+ test(S("abcde"), 5, 1, SV("abcde"), 2, 4, -3);
+ test(S("abcde"), 5, 1, SV("abcde"), 4, 0, 0);
+ test(S("abcde"), 5, 1, SV("abcde"), 4, 1, -1);
+ test(S("abcde"), 5, 1, SV("abcde"), 4, 2, -1);
+ test(S("abcde"), 5, 1, SV("abcde"), 5, 0, 0);
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test18()
-{
- test(S("abcde"), 5, 1, SV("abcde"), 5, 1, 0);
- test(S("abcde"), 5, 1, SV("abcde"), 6, 0, 0);
- test(S("abcde"), 5, 1, SV("abcdefghij"), 0, 0, 0);
- test(S("abcde"), 5, 1, SV("abcdefghij"), 0, 1, -1);
- test(S("abcde"), 5, 1, SV("abcdefghij"), 0, 5, -5);
- test(S("abcde"), 5, 1, SV("abcdefghij"), 0, 9, -9);
- test(S("abcde"), 5, 1, SV("abcdefghij"), 0, 10, -10);
- test(S("abcde"), 5, 1, SV("abcdefghij"), 0, 11, -10);
- test(S("abcde"), 5, 1, SV("abcdefghij"), 1, 0, 0);
- test(S("abcde"), 5, 1, SV("abcdefghij"), 1, 1, -1);
- test(S("abcde"), 5, 1, SV("abcdefghij"), 1, 4, -4);
- test(S("abcde"), 5, 1, SV("abcdefghij"), 1, 8, -8);
- test(S("abcde"), 5, 1, SV("abcdefghij"), 1, 9, -9);
- test(S("abcde"), 5, 1, SV("abcdefghij"), 1, 10, -9);
- test(S("abcde"), 5, 1, SV("abcdefghij"), 5, 0, 0);
- test(S("abcde"), 5, 1, SV("abcdefghij"), 5, 1, -1);
- test(S("abcde"), 5, 1, SV("abcdefghij"), 5, 2, -2);
- test(S("abcde"), 5, 1, SV("abcdefghij"), 5, 4, -4);
- test(S("abcde"), 5, 1, SV("abcdefghij"), 5, 5, -5);
- test(S("abcde"), 5, 1, SV("abcdefghij"), 5, 6, -5);
- test(S("abcde"), 5, 1, SV("abcdefghij"), 9, 0, 0);
- test(S("abcde"), 5, 1, SV("abcdefghij"), 9, 1, -1);
- test(S("abcde"), 5, 1, SV("abcdefghij"), 9, 2, -1);
- test(S("abcde"), 5, 1, SV("abcdefghij"), 10, 0, 0);
- test(S("abcde"), 5, 1, SV("abcdefghij"), 10, 1, 0);
- test(S("abcde"), 5, 1, SV("abcdefghij"), 11, 0, 0);
- test(S("abcde"), 5, 1, SV("abcdefghijklmnopqrst"), 0, 0, 0);
- test(S("abcde"), 5, 1, SV("abcdefghijklmnopqrst"), 0, 1, -1);
- test(S("abcde"), 5, 1, SV("abcdefghijklmnopqrst"), 0, 10, -10);
- test(S("abcde"), 5, 1, SV("abcdefghijklmnopqrst"), 0, 19, -19);
- test(S("abcde"), 5, 1, SV("abcdefghijklmnopqrst"), 0, 20, -20);
- test(S("abcde"), 5, 1, SV("abcdefghijklmnopqrst"), 0, 21, -20);
- test(S("abcde"), 5, 1, SV("abcdefghijklmnopqrst"), 1, 0, 0);
- test(S("abcde"), 5, 1, SV("abcdefghijklmnopqrst"), 1, 1, -1);
- test(S("abcde"), 5, 1, SV("abcdefghijklmnopqrst"), 1, 9, -9);
- test(S("abcde"), 5, 1, SV("abcdefghijklmnopqrst"), 1, 18, -18);
- test(S("abcde"), 5, 1, SV("abcdefghijklmnopqrst"), 1, 19, -19);
- test(S("abcde"), 5, 1, SV("abcdefghijklmnopqrst"), 1, 20, -19);
- test(S("abcde"), 5, 1, SV("abcdefghijklmnopqrst"), 10, 0, 0);
- test(S("abcde"), 5, 1, SV("abcdefghijklmnopqrst"), 10, 1, -1);
- test(S("abcde"), 5, 1, SV("abcdefghijklmnopqrst"), 10, 5, -5);
- test(S("abcde"), 5, 1, SV("abcdefghijklmnopqrst"), 10, 9, -9);
- test(S("abcde"), 5, 1, SV("abcdefghijklmnopqrst"), 10, 10, -10);
- test(S("abcde"), 5, 1, SV("abcdefghijklmnopqrst"), 10, 11, -10);
- test(S("abcde"), 5, 1, SV("abcdefghijklmnopqrst"), 19, 0, 0);
- test(S("abcde"), 5, 1, SV("abcdefghijklmnopqrst"), 19, 1, -1);
- test(S("abcde"), 5, 1, SV("abcdefghijklmnopqrst"), 19, 2, -1);
- test(S("abcde"), 5, 1, SV("abcdefghijklmnopqrst"), 20, 0, 0);
- test(S("abcde"), 5, 1, SV("abcdefghijklmnopqrst"), 20, 1, 0);
- test(S("abcde"), 5, 1, SV("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcde"), 6, 0, SV(""), 0, 0, 0);
- test(S("abcde"), 6, 0, SV(""), 0, 1, 0);
- test(S("abcde"), 6, 0, SV(""), 1, 0, 0);
- test(S("abcde"), 6, 0, SV("abcde"), 0, 0, 0);
- test(S("abcde"), 6, 0, SV("abcde"), 0, 1, 0);
- test(S("abcde"), 6, 0, SV("abcde"), 0, 2, 0);
- test(S("abcde"), 6, 0, SV("abcde"), 0, 4, 0);
- test(S("abcde"), 6, 0, SV("abcde"), 0, 5, 0);
- test(S("abcde"), 6, 0, SV("abcde"), 0, 6, 0);
- test(S("abcde"), 6, 0, SV("abcde"), 1, 0, 0);
- test(S("abcde"), 6, 0, SV("abcde"), 1, 1, 0);
- test(S("abcde"), 6, 0, SV("abcde"), 1, 2, 0);
- test(S("abcde"), 6, 0, SV("abcde"), 1, 3, 0);
- test(S("abcde"), 6, 0, SV("abcde"), 1, 4, 0);
- test(S("abcde"), 6, 0, SV("abcde"), 1, 5, 0);
- test(S("abcde"), 6, 0, SV("abcde"), 2, 0, 0);
- test(S("abcde"), 6, 0, SV("abcde"), 2, 1, 0);
- test(S("abcde"), 6, 0, SV("abcde"), 2, 2, 0);
- test(S("abcde"), 6, 0, SV("abcde"), 2, 3, 0);
- test(S("abcde"), 6, 0, SV("abcde"), 2, 4, 0);
- test(S("abcde"), 6, 0, SV("abcde"), 4, 0, 0);
- test(S("abcde"), 6, 0, SV("abcde"), 4, 1, 0);
- test(S("abcde"), 6, 0, SV("abcde"), 4, 2, 0);
- test(S("abcde"), 6, 0, SV("abcde"), 5, 0, 0);
- test(S("abcde"), 6, 0, SV("abcde"), 5, 1, 0);
- test(S("abcde"), 6, 0, SV("abcde"), 6, 0, 0);
- test(S("abcde"), 6, 0, SV("abcdefghij"), 0, 0, 0);
- test(S("abcde"), 6, 0, SV("abcdefghij"), 0, 1, 0);
- test(S("abcde"), 6, 0, SV("abcdefghij"), 0, 5, 0);
- test(S("abcde"), 6, 0, SV("abcdefghij"), 0, 9, 0);
- test(S("abcde"), 6, 0, SV("abcdefghij"), 0, 10, 0);
- test(S("abcde"), 6, 0, SV("abcdefghij"), 0, 11, 0);
- test(S("abcde"), 6, 0, SV("abcdefghij"), 1, 0, 0);
- test(S("abcde"), 6, 0, SV("abcdefghij"), 1, 1, 0);
- test(S("abcde"), 6, 0, SV("abcdefghij"), 1, 4, 0);
- test(S("abcde"), 6, 0, SV("abcdefghij"), 1, 8, 0);
- test(S("abcde"), 6, 0, SV("abcdefghij"), 1, 9, 0);
- test(S("abcde"), 6, 0, SV("abcdefghij"), 1, 10, 0);
- test(S("abcde"), 6, 0, SV("abcdefghij"), 5, 0, 0);
- test(S("abcde"), 6, 0, SV("abcdefghij"), 5, 1, 0);
- test(S("abcde"), 6, 0, SV("abcdefghij"), 5, 2, 0);
- test(S("abcde"), 6, 0, SV("abcdefghij"), 5, 4, 0);
- test(S("abcde"), 6, 0, SV("abcdefghij"), 5, 5, 0);
- test(S("abcde"), 6, 0, SV("abcdefghij"), 5, 6, 0);
- test(S("abcde"), 6, 0, SV("abcdefghij"), 9, 0, 0);
- test(S("abcde"), 6, 0, SV("abcdefghij"), 9, 1, 0);
- test(S("abcde"), 6, 0, SV("abcdefghij"), 9, 2, 0);
- test(S("abcde"), 6, 0, SV("abcdefghij"), 10, 0, 0);
- test(S("abcde"), 6, 0, SV("abcdefghij"), 10, 1, 0);
- test(S("abcde"), 6, 0, SV("abcdefghij"), 11, 0, 0);
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test18() {
+ test(S("abcde"), 5, 1, SV("abcde"), 5, 1, 0);
+ test(S("abcde"), 5, 1, SV("abcde"), 6, 0, 0);
+ test(S("abcde"), 5, 1, SV("abcdefghij"), 0, 0, 0);
+ test(S("abcde"), 5, 1, SV("abcdefghij"), 0, 1, -1);
+ test(S("abcde"), 5, 1, SV("abcdefghij"), 0, 5, -5);
+ test(S("abcde"), 5, 1, SV("abcdefghij"), 0, 9, -9);
+ test(S("abcde"), 5, 1, SV("abcdefghij"), 0, 10, -10);
+ test(S("abcde"), 5, 1, SV("abcdefghij"), 0, 11, -10);
+ test(S("abcde"), 5, 1, SV("abcdefghij"), 1, 0, 0);
+ test(S("abcde"), 5, 1, SV("abcdefghij"), 1, 1, -1);
+ test(S("abcde"), 5, 1, SV("abcdefghij"), 1, 4, -4);
+ test(S("abcde"), 5, 1, SV("abcdefghij"), 1, 8, -8);
+ test(S("abcde"), 5, 1, SV("abcdefghij"), 1, 9, -9);
+ test(S("abcde"), 5, 1, SV("abcdefghij"), 1, 10, -9);
+ test(S("abcde"), 5, 1, SV("abcdefghij"), 5, 0, 0);
+ test(S("abcde"), 5, 1, SV("abcdefghij"), 5, 1, -1);
+ test(S("abcde"), 5, 1, SV("abcdefghij"), 5, 2, -2);
+ test(S("abcde"), 5, 1, SV("abcdefghij"), 5, 4, -4);
+ test(S("abcde"), 5, 1, SV("abcdefghij"), 5, 5, -5);
+ test(S("abcde"), 5, 1, SV("abcdefghij"), 5, 6, -5);
+ test(S("abcde"), 5, 1, SV("abcdefghij"), 9, 0, 0);
+ test(S("abcde"), 5, 1, SV("abcdefghij"), 9, 1, -1);
+ test(S("abcde"), 5, 1, SV("abcdefghij"), 9, 2, -1);
+ test(S("abcde"), 5, 1, SV("abcdefghij"), 10, 0, 0);
+ test(S("abcde"), 5, 1, SV("abcdefghij"), 10, 1, 0);
+ test(S("abcde"), 5, 1, SV("abcdefghij"), 11, 0, 0);
+ test(S("abcde"), 5, 1, SV("abcdefghijklmnopqrst"), 0, 0, 0);
+ test(S("abcde"), 5, 1, SV("abcdefghijklmnopqrst"), 0, 1, -1);
+ test(S("abcde"), 5, 1, SV("abcdefghijklmnopqrst"), 0, 10, -10);
+ test(S("abcde"), 5, 1, SV("abcdefghijklmnopqrst"), 0, 19, -19);
+ test(S("abcde"), 5, 1, SV("abcdefghijklmnopqrst"), 0, 20, -20);
+ test(S("abcde"), 5, 1, SV("abcdefghijklmnopqrst"), 0, 21, -20);
+ test(S("abcde"), 5, 1, SV("abcdefghijklmnopqrst"), 1, 0, 0);
+ test(S("abcde"), 5, 1, SV("abcdefghijklmnopqrst"), 1, 1, -1);
+ test(S("abcde"), 5, 1, SV("abcdefghijklmnopqrst"), 1, 9, -9);
+ test(S("abcde"), 5, 1, SV("abcdefghijklmnopqrst"), 1, 18, -18);
+ test(S("abcde"), 5, 1, SV("abcdefghijklmnopqrst"), 1, 19, -19);
+ test(S("abcde"), 5, 1, SV("abcdefghijklmnopqrst"), 1, 20, -19);
+ test(S("abcde"), 5, 1, SV("abcdefghijklmnopqrst"), 10, 0, 0);
+ test(S("abcde"), 5, 1, SV("abcdefghijklmnopqrst"), 10, 1, -1);
+ test(S("abcde"), 5, 1, SV("abcdefghijklmnopqrst"), 10, 5, -5);
+ test(S("abcde"), 5, 1, SV("abcdefghijklmnopqrst"), 10, 9, -9);
+ test(S("abcde"), 5, 1, SV("abcdefghijklmnopqrst"), 10, 10, -10);
+ test(S("abcde"), 5, 1, SV("abcdefghijklmnopqrst"), 10, 11, -10);
+ test(S("abcde"), 5, 1, SV("abcdefghijklmnopqrst"), 19, 0, 0);
+ test(S("abcde"), 5, 1, SV("abcdefghijklmnopqrst"), 19, 1, -1);
+ test(S("abcde"), 5, 1, SV("abcdefghijklmnopqrst"), 19, 2, -1);
+ test(S("abcde"), 5, 1, SV("abcdefghijklmnopqrst"), 20, 0, 0);
+ test(S("abcde"), 5, 1, SV("abcdefghijklmnopqrst"), 20, 1, 0);
+ test(S("abcde"), 5, 1, SV("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcde"), 6, 0, SV(""), 0, 0, 0);
+ test(S("abcde"), 6, 0, SV(""), 0, 1, 0);
+ test(S("abcde"), 6, 0, SV(""), 1, 0, 0);
+ test(S("abcde"), 6, 0, SV("abcde"), 0, 0, 0);
+ test(S("abcde"), 6, 0, SV("abcde"), 0, 1, 0);
+ test(S("abcde"), 6, 0, SV("abcde"), 0, 2, 0);
+ test(S("abcde"), 6, 0, SV("abcde"), 0, 4, 0);
+ test(S("abcde"), 6, 0, SV("abcde"), 0, 5, 0);
+ test(S("abcde"), 6, 0, SV("abcde"), 0, 6, 0);
+ test(S("abcde"), 6, 0, SV("abcde"), 1, 0, 0);
+ test(S("abcde"), 6, 0, SV("abcde"), 1, 1, 0);
+ test(S("abcde"), 6, 0, SV("abcde"), 1, 2, 0);
+ test(S("abcde"), 6, 0, SV("abcde"), 1, 3, 0);
+ test(S("abcde"), 6, 0, SV("abcde"), 1, 4, 0);
+ test(S("abcde"), 6, 0, SV("abcde"), 1, 5, 0);
+ test(S("abcde"), 6, 0, SV("abcde"), 2, 0, 0);
+ test(S("abcde"), 6, 0, SV("abcde"), 2, 1, 0);
+ test(S("abcde"), 6, 0, SV("abcde"), 2, 2, 0);
+ test(S("abcde"), 6, 0, SV("abcde"), 2, 3, 0);
+ test(S("abcde"), 6, 0, SV("abcde"), 2, 4, 0);
+ test(S("abcde"), 6, 0, SV("abcde"), 4, 0, 0);
+ test(S("abcde"), 6, 0, SV("abcde"), 4, 1, 0);
+ test(S("abcde"), 6, 0, SV("abcde"), 4, 2, 0);
+ test(S("abcde"), 6, 0, SV("abcde"), 5, 0, 0);
+ test(S("abcde"), 6, 0, SV("abcde"), 5, 1, 0);
+ test(S("abcde"), 6, 0, SV("abcde"), 6, 0, 0);
+ test(S("abcde"), 6, 0, SV("abcdefghij"), 0, 0, 0);
+ test(S("abcde"), 6, 0, SV("abcdefghij"), 0, 1, 0);
+ test(S("abcde"), 6, 0, SV("abcdefghij"), 0, 5, 0);
+ test(S("abcde"), 6, 0, SV("abcdefghij"), 0, 9, 0);
+ test(S("abcde"), 6, 0, SV("abcdefghij"), 0, 10, 0);
+ test(S("abcde"), 6, 0, SV("abcdefghij"), 0, 11, 0);
+ test(S("abcde"), 6, 0, SV("abcdefghij"), 1, 0, 0);
+ test(S("abcde"), 6, 0, SV("abcdefghij"), 1, 1, 0);
+ test(S("abcde"), 6, 0, SV("abcdefghij"), 1, 4, 0);
+ test(S("abcde"), 6, 0, SV("abcdefghij"), 1, 8, 0);
+ test(S("abcde"), 6, 0, SV("abcdefghij"), 1, 9, 0);
+ test(S("abcde"), 6, 0, SV("abcdefghij"), 1, 10, 0);
+ test(S("abcde"), 6, 0, SV("abcdefghij"), 5, 0, 0);
+ test(S("abcde"), 6, 0, SV("abcdefghij"), 5, 1, 0);
+ test(S("abcde"), 6, 0, SV("abcdefghij"), 5, 2, 0);
+ test(S("abcde"), 6, 0, SV("abcdefghij"), 5, 4, 0);
+ test(S("abcde"), 6, 0, SV("abcdefghij"), 5, 5, 0);
+ test(S("abcde"), 6, 0, SV("abcdefghij"), 5, 6, 0);
+ test(S("abcde"), 6, 0, SV("abcdefghij"), 9, 0, 0);
+ test(S("abcde"), 6, 0, SV("abcdefghij"), 9, 1, 0);
+ test(S("abcde"), 6, 0, SV("abcdefghij"), 9, 2, 0);
+ test(S("abcde"), 6, 0, SV("abcdefghij"), 10, 0, 0);
+ test(S("abcde"), 6, 0, SV("abcdefghij"), 10, 1, 0);
+ test(S("abcde"), 6, 0, SV("abcdefghij"), 11, 0, 0);
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test19()
-{
- test(S("abcde"), 6, 0, SV("abcdefghijklmnopqrst"), 0, 0, 0);
- test(S("abcde"), 6, 0, SV("abcdefghijklmnopqrst"), 0, 1, 0);
- test(S("abcde"), 6, 0, SV("abcdefghijklmnopqrst"), 0, 10, 0);
- test(S("abcde"), 6, 0, SV("abcdefghijklmnopqrst"), 0, 19, 0);
- test(S("abcde"), 6, 0, SV("abcdefghijklmnopqrst"), 0, 20, 0);
- test(S("abcde"), 6, 0, SV("abcdefghijklmnopqrst"), 0, 21, 0);
- test(S("abcde"), 6, 0, SV("abcdefghijklmnopqrst"), 1, 0, 0);
- test(S("abcde"), 6, 0, SV("abcdefghijklmnopqrst"), 1, 1, 0);
- test(S("abcde"), 6, 0, SV("abcdefghijklmnopqrst"), 1, 9, 0);
- test(S("abcde"), 6, 0, SV("abcdefghijklmnopqrst"), 1, 18, 0);
- test(S("abcde"), 6, 0, SV("abcdefghijklmnopqrst"), 1, 19, 0);
- test(S("abcde"), 6, 0, SV("abcdefghijklmnopqrst"), 1, 20, 0);
- test(S("abcde"), 6, 0, SV("abcdefghijklmnopqrst"), 10, 0, 0);
- test(S("abcde"), 6, 0, SV("abcdefghijklmnopqrst"), 10, 1, 0);
- test(S("abcde"), 6, 0, SV("abcdefghijklmnopqrst"), 10, 5, 0);
- test(S("abcde"), 6, 0, SV("abcdefghijklmnopqrst"), 10, 9, 0);
- test(S("abcde"), 6, 0, SV("abcdefghijklmnopqrst"), 10, 10, 0);
- test(S("abcde"), 6, 0, SV("abcdefghijklmnopqrst"), 10, 11, 0);
- test(S("abcde"), 6, 0, SV("abcdefghijklmnopqrst"), 19, 0, 0);
- test(S("abcde"), 6, 0, SV("abcdefghijklmnopqrst"), 19, 1, 0);
- test(S("abcde"), 6, 0, SV("abcdefghijklmnopqrst"), 19, 2, 0);
- test(S("abcde"), 6, 0, SV("abcdefghijklmnopqrst"), 20, 0, 0);
- test(S("abcde"), 6, 0, SV("abcdefghijklmnopqrst"), 20, 1, 0);
- test(S("abcde"), 6, 0, SV("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghij"), 0, 0, SV(""), 0, 0, 0);
- test(S("abcdefghij"), 0, 0, SV(""), 0, 1, 0);
- test(S("abcdefghij"), 0, 0, SV(""), 1, 0, 0);
- test(S("abcdefghij"), 0, 0, SV("abcde"), 0, 0, 0);
- test(S("abcdefghij"), 0, 0, SV("abcde"), 0, 1, -1);
- test(S("abcdefghij"), 0, 0, SV("abcde"), 0, 2, -2);
- test(S("abcdefghij"), 0, 0, SV("abcde"), 0, 4, -4);
- test(S("abcdefghij"), 0, 0, SV("abcde"), 0, 5, -5);
- test(S("abcdefghij"), 0, 0, SV("abcde"), 0, 6, -5);
- test(S("abcdefghij"), 0, 0, SV("abcde"), 1, 0, 0);
- test(S("abcdefghij"), 0, 0, SV("abcde"), 1, 1, -1);
- test(S("abcdefghij"), 0, 0, SV("abcde"), 1, 2, -2);
- test(S("abcdefghij"), 0, 0, SV("abcde"), 1, 3, -3);
- test(S("abcdefghij"), 0, 0, SV("abcde"), 1, 4, -4);
- test(S("abcdefghij"), 0, 0, SV("abcde"), 1, 5, -4);
- test(S("abcdefghij"), 0, 0, SV("abcde"), 2, 0, 0);
- test(S("abcdefghij"), 0, 0, SV("abcde"), 2, 1, -1);
- test(S("abcdefghij"), 0, 0, SV("abcde"), 2, 2, -2);
- test(S("abcdefghij"), 0, 0, SV("abcde"), 2, 3, -3);
- test(S("abcdefghij"), 0, 0, SV("abcde"), 2, 4, -3);
- test(S("abcdefghij"), 0, 0, SV("abcde"), 4, 0, 0);
- test(S("abcdefghij"), 0, 0, SV("abcde"), 4, 1, -1);
- test(S("abcdefghij"), 0, 0, SV("abcde"), 4, 2, -1);
- test(S("abcdefghij"), 0, 0, SV("abcde"), 5, 0, 0);
- test(S("abcdefghij"), 0, 0, SV("abcde"), 5, 1, 0);
- test(S("abcdefghij"), 0, 0, SV("abcde"), 6, 0, 0);
- test(S("abcdefghij"), 0, 0, SV("abcdefghij"), 0, 0, 0);
- test(S("abcdefghij"), 0, 0, SV("abcdefghij"), 0, 1, -1);
- test(S("abcdefghij"), 0, 0, SV("abcdefghij"), 0, 5, -5);
- test(S("abcdefghij"), 0, 0, SV("abcdefghij"), 0, 9, -9);
- test(S("abcdefghij"), 0, 0, SV("abcdefghij"), 0, 10, -10);
- test(S("abcdefghij"), 0, 0, SV("abcdefghij"), 0, 11, -10);
- test(S("abcdefghij"), 0, 0, SV("abcdefghij"), 1, 0, 0);
- test(S("abcdefghij"), 0, 0, SV("abcdefghij"), 1, 1, -1);
- test(S("abcdefghij"), 0, 0, SV("abcdefghij"), 1, 4, -4);
- test(S("abcdefghij"), 0, 0, SV("abcdefghij"), 1, 8, -8);
- test(S("abcdefghij"), 0, 0, SV("abcdefghij"), 1, 9, -9);
- test(S("abcdefghij"), 0, 0, SV("abcdefghij"), 1, 10, -9);
- test(S("abcdefghij"), 0, 0, SV("abcdefghij"), 5, 0, 0);
- test(S("abcdefghij"), 0, 0, SV("abcdefghij"), 5, 1, -1);
- test(S("abcdefghij"), 0, 0, SV("abcdefghij"), 5, 2, -2);
- test(S("abcdefghij"), 0, 0, SV("abcdefghij"), 5, 4, -4);
- test(S("abcdefghij"), 0, 0, SV("abcdefghij"), 5, 5, -5);
- test(S("abcdefghij"), 0, 0, SV("abcdefghij"), 5, 6, -5);
- test(S("abcdefghij"), 0, 0, SV("abcdefghij"), 9, 0, 0);
- test(S("abcdefghij"), 0, 0, SV("abcdefghij"), 9, 1, -1);
- test(S("abcdefghij"), 0, 0, SV("abcdefghij"), 9, 2, -1);
- test(S("abcdefghij"), 0, 0, SV("abcdefghij"), 10, 0, 0);
- test(S("abcdefghij"), 0, 0, SV("abcdefghij"), 10, 1, 0);
- test(S("abcdefghij"), 0, 0, SV("abcdefghij"), 11, 0, 0);
- test(S("abcdefghij"), 0, 0, SV("abcdefghijklmnopqrst"), 0, 0, 0);
- test(S("abcdefghij"), 0, 0, SV("abcdefghijklmnopqrst"), 0, 1, -1);
- test(S("abcdefghij"), 0, 0, SV("abcdefghijklmnopqrst"), 0, 10, -10);
- test(S("abcdefghij"), 0, 0, SV("abcdefghijklmnopqrst"), 0, 19, -19);
- test(S("abcdefghij"), 0, 0, SV("abcdefghijklmnopqrst"), 0, 20, -20);
- test(S("abcdefghij"), 0, 0, SV("abcdefghijklmnopqrst"), 0, 21, -20);
- test(S("abcdefghij"), 0, 0, SV("abcdefghijklmnopqrst"), 1, 0, 0);
- test(S("abcdefghij"), 0, 0, SV("abcdefghijklmnopqrst"), 1, 1, -1);
- test(S("abcdefghij"), 0, 0, SV("abcdefghijklmnopqrst"), 1, 9, -9);
- test(S("abcdefghij"), 0, 0, SV("abcdefghijklmnopqrst"), 1, 18, -18);
- test(S("abcdefghij"), 0, 0, SV("abcdefghijklmnopqrst"), 1, 19, -19);
- test(S("abcdefghij"), 0, 0, SV("abcdefghijklmnopqrst"), 1, 20, -19);
- test(S("abcdefghij"), 0, 0, SV("abcdefghijklmnopqrst"), 10, 0, 0);
- test(S("abcdefghij"), 0, 0, SV("abcdefghijklmnopqrst"), 10, 1, -1);
- test(S("abcdefghij"), 0, 0, SV("abcdefghijklmnopqrst"), 10, 5, -5);
- test(S("abcdefghij"), 0, 0, SV("abcdefghijklmnopqrst"), 10, 9, -9);
- test(S("abcdefghij"), 0, 0, SV("abcdefghijklmnopqrst"), 10, 10, -10);
- test(S("abcdefghij"), 0, 0, SV("abcdefghijklmnopqrst"), 10, 11, -10);
- test(S("abcdefghij"), 0, 0, SV("abcdefghijklmnopqrst"), 19, 0, 0);
- test(S("abcdefghij"), 0, 0, SV("abcdefghijklmnopqrst"), 19, 1, -1);
- test(S("abcdefghij"), 0, 0, SV("abcdefghijklmnopqrst"), 19, 2, -1);
- test(S("abcdefghij"), 0, 0, SV("abcdefghijklmnopqrst"), 20, 0, 0);
- test(S("abcdefghij"), 0, 0, SV("abcdefghijklmnopqrst"), 20, 1, 0);
- test(S("abcdefghij"), 0, 0, SV("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghij"), 0, 1, SV(""), 0, 0, 1);
- test(S("abcdefghij"), 0, 1, SV(""), 0, 1, 1);
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test19() {
+ test(S("abcde"), 6, 0, SV("abcdefghijklmnopqrst"), 0, 0, 0);
+ test(S("abcde"), 6, 0, SV("abcdefghijklmnopqrst"), 0, 1, 0);
+ test(S("abcde"), 6, 0, SV("abcdefghijklmnopqrst"), 0, 10, 0);
+ test(S("abcde"), 6, 0, SV("abcdefghijklmnopqrst"), 0, 19, 0);
+ test(S("abcde"), 6, 0, SV("abcdefghijklmnopqrst"), 0, 20, 0);
+ test(S("abcde"), 6, 0, SV("abcdefghijklmnopqrst"), 0, 21, 0);
+ test(S("abcde"), 6, 0, SV("abcdefghijklmnopqrst"), 1, 0, 0);
+ test(S("abcde"), 6, 0, SV("abcdefghijklmnopqrst"), 1, 1, 0);
+ test(S("abcde"), 6, 0, SV("abcdefghijklmnopqrst"), 1, 9, 0);
+ test(S("abcde"), 6, 0, SV("abcdefghijklmnopqrst"), 1, 18, 0);
+ test(S("abcde"), 6, 0, SV("abcdefghijklmnopqrst"), 1, 19, 0);
+ test(S("abcde"), 6, 0, SV("abcdefghijklmnopqrst"), 1, 20, 0);
+ test(S("abcde"), 6, 0, SV("abcdefghijklmnopqrst"), 10, 0, 0);
+ test(S("abcde"), 6, 0, SV("abcdefghijklmnopqrst"), 10, 1, 0);
+ test(S("abcde"), 6, 0, SV("abcdefghijklmnopqrst"), 10, 5, 0);
+ test(S("abcde"), 6, 0, SV("abcdefghijklmnopqrst"), 10, 9, 0);
+ test(S("abcde"), 6, 0, SV("abcdefghijklmnopqrst"), 10, 10, 0);
+ test(S("abcde"), 6, 0, SV("abcdefghijklmnopqrst"), 10, 11, 0);
+ test(S("abcde"), 6, 0, SV("abcdefghijklmnopqrst"), 19, 0, 0);
+ test(S("abcde"), 6, 0, SV("abcdefghijklmnopqrst"), 19, 1, 0);
+ test(S("abcde"), 6, 0, SV("abcdefghijklmnopqrst"), 19, 2, 0);
+ test(S("abcde"), 6, 0, SV("abcdefghijklmnopqrst"), 20, 0, 0);
+ test(S("abcde"), 6, 0, SV("abcdefghijklmnopqrst"), 20, 1, 0);
+ test(S("abcde"), 6, 0, SV("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghij"), 0, 0, SV(""), 0, 0, 0);
+ test(S("abcdefghij"), 0, 0, SV(""), 0, 1, 0);
+ test(S("abcdefghij"), 0, 0, SV(""), 1, 0, 0);
+ test(S("abcdefghij"), 0, 0, SV("abcde"), 0, 0, 0);
+ test(S("abcdefghij"), 0, 0, SV("abcde"), 0, 1, -1);
+ test(S("abcdefghij"), 0, 0, SV("abcde"), 0, 2, -2);
+ test(S("abcdefghij"), 0, 0, SV("abcde"), 0, 4, -4);
+ test(S("abcdefghij"), 0, 0, SV("abcde"), 0, 5, -5);
+ test(S("abcdefghij"), 0, 0, SV("abcde"), 0, 6, -5);
+ test(S("abcdefghij"), 0, 0, SV("abcde"), 1, 0, 0);
+ test(S("abcdefghij"), 0, 0, SV("abcde"), 1, 1, -1);
+ test(S("abcdefghij"), 0, 0, SV("abcde"), 1, 2, -2);
+ test(S("abcdefghij"), 0, 0, SV("abcde"), 1, 3, -3);
+ test(S("abcdefghij"), 0, 0, SV("abcde"), 1, 4, -4);
+ test(S("abcdefghij"), 0, 0, SV("abcde"), 1, 5, -4);
+ test(S("abcdefghij"), 0, 0, SV("abcde"), 2, 0, 0);
+ test(S("abcdefghij"), 0, 0, SV("abcde"), 2, 1, -1);
+ test(S("abcdefghij"), 0, 0, SV("abcde"), 2, 2, -2);
+ test(S("abcdefghij"), 0, 0, SV("abcde"), 2, 3, -3);
+ test(S("abcdefghij"), 0, 0, SV("abcde"), 2, 4, -3);
+ test(S("abcdefghij"), 0, 0, SV("abcde"), 4, 0, 0);
+ test(S("abcdefghij"), 0, 0, SV("abcde"), 4, 1, -1);
+ test(S("abcdefghij"), 0, 0, SV("abcde"), 4, 2, -1);
+ test(S("abcdefghij"), 0, 0, SV("abcde"), 5, 0, 0);
+ test(S("abcdefghij"), 0, 0, SV("abcde"), 5, 1, 0);
+ test(S("abcdefghij"), 0, 0, SV("abcde"), 6, 0, 0);
+ test(S("abcdefghij"), 0, 0, SV("abcdefghij"), 0, 0, 0);
+ test(S("abcdefghij"), 0, 0, SV("abcdefghij"), 0, 1, -1);
+ test(S("abcdefghij"), 0, 0, SV("abcdefghij"), 0, 5, -5);
+ test(S("abcdefghij"), 0, 0, SV("abcdefghij"), 0, 9, -9);
+ test(S("abcdefghij"), 0, 0, SV("abcdefghij"), 0, 10, -10);
+ test(S("abcdefghij"), 0, 0, SV("abcdefghij"), 0, 11, -10);
+ test(S("abcdefghij"), 0, 0, SV("abcdefghij"), 1, 0, 0);
+ test(S("abcdefghij"), 0, 0, SV("abcdefghij"), 1, 1, -1);
+ test(S("abcdefghij"), 0, 0, SV("abcdefghij"), 1, 4, -4);
+ test(S("abcdefghij"), 0, 0, SV("abcdefghij"), 1, 8, -8);
+ test(S("abcdefghij"), 0, 0, SV("abcdefghij"), 1, 9, -9);
+ test(S("abcdefghij"), 0, 0, SV("abcdefghij"), 1, 10, -9);
+ test(S("abcdefghij"), 0, 0, SV("abcdefghij"), 5, 0, 0);
+ test(S("abcdefghij"), 0, 0, SV("abcdefghij"), 5, 1, -1);
+ test(S("abcdefghij"), 0, 0, SV("abcdefghij"), 5, 2, -2);
+ test(S("abcdefghij"), 0, 0, SV("abcdefghij"), 5, 4, -4);
+ test(S("abcdefghij"), 0, 0, SV("abcdefghij"), 5, 5, -5);
+ test(S("abcdefghij"), 0, 0, SV("abcdefghij"), 5, 6, -5);
+ test(S("abcdefghij"), 0, 0, SV("abcdefghij"), 9, 0, 0);
+ test(S("abcdefghij"), 0, 0, SV("abcdefghij"), 9, 1, -1);
+ test(S("abcdefghij"), 0, 0, SV("abcdefghij"), 9, 2, -1);
+ test(S("abcdefghij"), 0, 0, SV("abcdefghij"), 10, 0, 0);
+ test(S("abcdefghij"), 0, 0, SV("abcdefghij"), 10, 1, 0);
+ test(S("abcdefghij"), 0, 0, SV("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghij"), 0, 0, SV("abcdefghijklmnopqrst"), 0, 0, 0);
+ test(S("abcdefghij"), 0, 0, SV("abcdefghijklmnopqrst"), 0, 1, -1);
+ test(S("abcdefghij"), 0, 0, SV("abcdefghijklmnopqrst"), 0, 10, -10);
+ test(S("abcdefghij"), 0, 0, SV("abcdefghijklmnopqrst"), 0, 19, -19);
+ test(S("abcdefghij"), 0, 0, SV("abcdefghijklmnopqrst"), 0, 20, -20);
+ test(S("abcdefghij"), 0, 0, SV("abcdefghijklmnopqrst"), 0, 21, -20);
+ test(S("abcdefghij"), 0, 0, SV("abcdefghijklmnopqrst"), 1, 0, 0);
+ test(S("abcdefghij"), 0, 0, SV("abcdefghijklmnopqrst"), 1, 1, -1);
+ test(S("abcdefghij"), 0, 0, SV("abcdefghijklmnopqrst"), 1, 9, -9);
+ test(S("abcdefghij"), 0, 0, SV("abcdefghijklmnopqrst"), 1, 18, -18);
+ test(S("abcdefghij"), 0, 0, SV("abcdefghijklmnopqrst"), 1, 19, -19);
+ test(S("abcdefghij"), 0, 0, SV("abcdefghijklmnopqrst"), 1, 20, -19);
+ test(S("abcdefghij"), 0, 0, SV("abcdefghijklmnopqrst"), 10, 0, 0);
+ test(S("abcdefghij"), 0, 0, SV("abcdefghijklmnopqrst"), 10, 1, -1);
+ test(S("abcdefghij"), 0, 0, SV("abcdefghijklmnopqrst"), 10, 5, -5);
+ test(S("abcdefghij"), 0, 0, SV("abcdefghijklmnopqrst"), 10, 9, -9);
+ test(S("abcdefghij"), 0, 0, SV("abcdefghijklmnopqrst"), 10, 10, -10);
+ test(S("abcdefghij"), 0, 0, SV("abcdefghijklmnopqrst"), 10, 11, -10);
+ test(S("abcdefghij"), 0, 0, SV("abcdefghijklmnopqrst"), 19, 0, 0);
+ test(S("abcdefghij"), 0, 0, SV("abcdefghijklmnopqrst"), 19, 1, -1);
+ test(S("abcdefghij"), 0, 0, SV("abcdefghijklmnopqrst"), 19, 2, -1);
+ test(S("abcdefghij"), 0, 0, SV("abcdefghijklmnopqrst"), 20, 0, 0);
+ test(S("abcdefghij"), 0, 0, SV("abcdefghijklmnopqrst"), 20, 1, 0);
+ test(S("abcdefghij"), 0, 0, SV("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghij"), 0, 1, SV(""), 0, 0, 1);
+ test(S("abcdefghij"), 0, 1, SV(""), 0, 1, 1);
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test20()
-{
- test(S("abcdefghij"), 0, 1, SV(""), 1, 0, 0);
- test(S("abcdefghij"), 0, 1, SV("abcde"), 0, 0, 1);
- test(S("abcdefghij"), 0, 1, SV("abcde"), 0, 1, 0);
- test(S("abcdefghij"), 0, 1, SV("abcde"), 0, 2, -1);
- test(S("abcdefghij"), 0, 1, SV("abcde"), 0, 4, -3);
- test(S("abcdefghij"), 0, 1, SV("abcde"), 0, 5, -4);
- test(S("abcdefghij"), 0, 1, SV("abcde"), 0, 6, -4);
- test(S("abcdefghij"), 0, 1, SV("abcde"), 1, 0, 1);
- test(S("abcdefghij"), 0, 1, SV("abcde"), 1, 1, -1);
- test(S("abcdefghij"), 0, 1, SV("abcde"), 1, 2, -1);
- test(S("abcdefghij"), 0, 1, SV("abcde"), 1, 3, -1);
- test(S("abcdefghij"), 0, 1, SV("abcde"), 1, 4, -1);
- test(S("abcdefghij"), 0, 1, SV("abcde"), 1, 5, -1);
- test(S("abcdefghij"), 0, 1, SV("abcde"), 2, 0, 1);
- test(S("abcdefghij"), 0, 1, SV("abcde"), 2, 1, -2);
- test(S("abcdefghij"), 0, 1, SV("abcde"), 2, 2, -2);
- test(S("abcdefghij"), 0, 1, SV("abcde"), 2, 3, -2);
- test(S("abcdefghij"), 0, 1, SV("abcde"), 2, 4, -2);
- test(S("abcdefghij"), 0, 1, SV("abcde"), 4, 0, 1);
- test(S("abcdefghij"), 0, 1, SV("abcde"), 4, 1, -4);
- test(S("abcdefghij"), 0, 1, SV("abcde"), 4, 2, -4);
- test(S("abcdefghij"), 0, 1, SV("abcde"), 5, 0, 1);
- test(S("abcdefghij"), 0, 1, SV("abcde"), 5, 1, 1);
- test(S("abcdefghij"), 0, 1, SV("abcde"), 6, 0, 0);
- test(S("abcdefghij"), 0, 1, SV("abcdefghij"), 0, 0, 1);
- test(S("abcdefghij"), 0, 1, SV("abcdefghij"), 0, 1, 0);
- test(S("abcdefghij"), 0, 1, SV("abcdefghij"), 0, 5, -4);
- test(S("abcdefghij"), 0, 1, SV("abcdefghij"), 0, 9, -8);
- test(S("abcdefghij"), 0, 1, SV("abcdefghij"), 0, 10, -9);
- test(S("abcdefghij"), 0, 1, SV("abcdefghij"), 0, 11, -9);
- test(S("abcdefghij"), 0, 1, SV("abcdefghij"), 1, 0, 1);
- test(S("abcdefghij"), 0, 1, SV("abcdefghij"), 1, 1, -1);
- test(S("abcdefghij"), 0, 1, SV("abcdefghij"), 1, 4, -1);
- test(S("abcdefghij"), 0, 1, SV("abcdefghij"), 1, 8, -1);
- test(S("abcdefghij"), 0, 1, SV("abcdefghij"), 1, 9, -1);
- test(S("abcdefghij"), 0, 1, SV("abcdefghij"), 1, 10, -1);
- test(S("abcdefghij"), 0, 1, SV("abcdefghij"), 5, 0, 1);
- test(S("abcdefghij"), 0, 1, SV("abcdefghij"), 5, 1, -5);
- test(S("abcdefghij"), 0, 1, SV("abcdefghij"), 5, 2, -5);
- test(S("abcdefghij"), 0, 1, SV("abcdefghij"), 5, 4, -5);
- test(S("abcdefghij"), 0, 1, SV("abcdefghij"), 5, 5, -5);
- test(S("abcdefghij"), 0, 1, SV("abcdefghij"), 5, 6, -5);
- test(S("abcdefghij"), 0, 1, SV("abcdefghij"), 9, 0, 1);
- test(S("abcdefghij"), 0, 1, SV("abcdefghij"), 9, 1, -9);
- test(S("abcdefghij"), 0, 1, SV("abcdefghij"), 9, 2, -9);
- test(S("abcdefghij"), 0, 1, SV("abcdefghij"), 10, 0, 1);
- test(S("abcdefghij"), 0, 1, SV("abcdefghij"), 10, 1, 1);
- test(S("abcdefghij"), 0, 1, SV("abcdefghij"), 11, 0, 0);
- test(S("abcdefghij"), 0, 1, SV("abcdefghijklmnopqrst"), 0, 0, 1);
- test(S("abcdefghij"), 0, 1, SV("abcdefghijklmnopqrst"), 0, 1, 0);
- test(S("abcdefghij"), 0, 1, SV("abcdefghijklmnopqrst"), 0, 10, -9);
- test(S("abcdefghij"), 0, 1, SV("abcdefghijklmnopqrst"), 0, 19, -18);
- test(S("abcdefghij"), 0, 1, SV("abcdefghijklmnopqrst"), 0, 20, -19);
- test(S("abcdefghij"), 0, 1, SV("abcdefghijklmnopqrst"), 0, 21, -19);
- test(S("abcdefghij"), 0, 1, SV("abcdefghijklmnopqrst"), 1, 0, 1);
- test(S("abcdefghij"), 0, 1, SV("abcdefghijklmnopqrst"), 1, 1, -1);
- test(S("abcdefghij"), 0, 1, SV("abcdefghijklmnopqrst"), 1, 9, -1);
- test(S("abcdefghij"), 0, 1, SV("abcdefghijklmnopqrst"), 1, 18, -1);
- test(S("abcdefghij"), 0, 1, SV("abcdefghijklmnopqrst"), 1, 19, -1);
- test(S("abcdefghij"), 0, 1, SV("abcdefghijklmnopqrst"), 1, 20, -1);
- test(S("abcdefghij"), 0, 1, SV("abcdefghijklmnopqrst"), 10, 0, 1);
- test(S("abcdefghij"), 0, 1, SV("abcdefghijklmnopqrst"), 10, 1, -10);
- test(S("abcdefghij"), 0, 1, SV("abcdefghijklmnopqrst"), 10, 5, -10);
- test(S("abcdefghij"), 0, 1, SV("abcdefghijklmnopqrst"), 10, 9, -10);
- test(S("abcdefghij"), 0, 1, SV("abcdefghijklmnopqrst"), 10, 10, -10);
- test(S("abcdefghij"), 0, 1, SV("abcdefghijklmnopqrst"), 10, 11, -10);
- test(S("abcdefghij"), 0, 1, SV("abcdefghijklmnopqrst"), 19, 0, 1);
- test(S("abcdefghij"), 0, 1, SV("abcdefghijklmnopqrst"), 19, 1, -19);
- test(S("abcdefghij"), 0, 1, SV("abcdefghijklmnopqrst"), 19, 2, -19);
- test(S("abcdefghij"), 0, 1, SV("abcdefghijklmnopqrst"), 20, 0, 1);
- test(S("abcdefghij"), 0, 1, SV("abcdefghijklmnopqrst"), 20, 1, 1);
- test(S("abcdefghij"), 0, 1, SV("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghij"), 0, 5, SV(""), 0, 0, 5);
- test(S("abcdefghij"), 0, 5, SV(""), 0, 1, 5);
- test(S("abcdefghij"), 0, 5, SV(""), 1, 0, 0);
- test(S("abcdefghij"), 0, 5, SV("abcde"), 0, 0, 5);
- test(S("abcdefghij"), 0, 5, SV("abcde"), 0, 1, 4);
- test(S("abcdefghij"), 0, 5, SV("abcde"), 0, 2, 3);
- test(S("abcdefghij"), 0, 5, SV("abcde"), 0, 4, 1);
- test(S("abcdefghij"), 0, 5, SV("abcde"), 0, 5, 0);
- test(S("abcdefghij"), 0, 5, SV("abcde"), 0, 6, 0);
- test(S("abcdefghij"), 0, 5, SV("abcde"), 1, 0, 5);
- test(S("abcdefghij"), 0, 5, SV("abcde"), 1, 1, -1);
- test(S("abcdefghij"), 0, 5, SV("abcde"), 1, 2, -1);
- test(S("abcdefghij"), 0, 5, SV("abcde"), 1, 3, -1);
- test(S("abcdefghij"), 0, 5, SV("abcde"), 1, 4, -1);
- test(S("abcdefghij"), 0, 5, SV("abcde"), 1, 5, -1);
- test(S("abcdefghij"), 0, 5, SV("abcde"), 2, 0, 5);
- test(S("abcdefghij"), 0, 5, SV("abcde"), 2, 1, -2);
- test(S("abcdefghij"), 0, 5, SV("abcde"), 2, 2, -2);
- test(S("abcdefghij"), 0, 5, SV("abcde"), 2, 3, -2);
- test(S("abcdefghij"), 0, 5, SV("abcde"), 2, 4, -2);
- test(S("abcdefghij"), 0, 5, SV("abcde"), 4, 0, 5);
- test(S("abcdefghij"), 0, 5, SV("abcde"), 4, 1, -4);
- test(S("abcdefghij"), 0, 5, SV("abcde"), 4, 2, -4);
- test(S("abcdefghij"), 0, 5, SV("abcde"), 5, 0, 5);
- test(S("abcdefghij"), 0, 5, SV("abcde"), 5, 1, 5);
- test(S("abcdefghij"), 0, 5, SV("abcde"), 6, 0, 0);
- test(S("abcdefghij"), 0, 5, SV("abcdefghij"), 0, 0, 5);
- test(S("abcdefghij"), 0, 5, SV("abcdefghij"), 0, 1, 4);
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test20() {
+ test(S("abcdefghij"), 0, 1, SV(""), 1, 0, 0);
+ test(S("abcdefghij"), 0, 1, SV("abcde"), 0, 0, 1);
+ test(S("abcdefghij"), 0, 1, SV("abcde"), 0, 1, 0);
+ test(S("abcdefghij"), 0, 1, SV("abcde"), 0, 2, -1);
+ test(S("abcdefghij"), 0, 1, SV("abcde"), 0, 4, -3);
+ test(S("abcdefghij"), 0, 1, SV("abcde"), 0, 5, -4);
+ test(S("abcdefghij"), 0, 1, SV("abcde"), 0, 6, -4);
+ test(S("abcdefghij"), 0, 1, SV("abcde"), 1, 0, 1);
+ test(S("abcdefghij"), 0, 1, SV("abcde"), 1, 1, -1);
+ test(S("abcdefghij"), 0, 1, SV("abcde"), 1, 2, -1);
+ test(S("abcdefghij"), 0, 1, SV("abcde"), 1, 3, -1);
+ test(S("abcdefghij"), 0, 1, SV("abcde"), 1, 4, -1);
+ test(S("abcdefghij"), 0, 1, SV("abcde"), 1, 5, -1);
+ test(S("abcdefghij"), 0, 1, SV("abcde"), 2, 0, 1);
+ test(S("abcdefghij"), 0, 1, SV("abcde"), 2, 1, -2);
+ test(S("abcdefghij"), 0, 1, SV("abcde"), 2, 2, -2);
+ test(S("abcdefghij"), 0, 1, SV("abcde"), 2, 3, -2);
+ test(S("abcdefghij"), 0, 1, SV("abcde"), 2, 4, -2);
+ test(S("abcdefghij"), 0, 1, SV("abcde"), 4, 0, 1);
+ test(S("abcdefghij"), 0, 1, SV("abcde"), 4, 1, -4);
+ test(S("abcdefghij"), 0, 1, SV("abcde"), 4, 2, -4);
+ test(S("abcdefghij"), 0, 1, SV("abcde"), 5, 0, 1);
+ test(S("abcdefghij"), 0, 1, SV("abcde"), 5, 1, 1);
+ test(S("abcdefghij"), 0, 1, SV("abcde"), 6, 0, 0);
+ test(S("abcdefghij"), 0, 1, SV("abcdefghij"), 0, 0, 1);
+ test(S("abcdefghij"), 0, 1, SV("abcdefghij"), 0, 1, 0);
+ test(S("abcdefghij"), 0, 1, SV("abcdefghij"), 0, 5, -4);
+ test(S("abcdefghij"), 0, 1, SV("abcdefghij"), 0, 9, -8);
+ test(S("abcdefghij"), 0, 1, SV("abcdefghij"), 0, 10, -9);
+ test(S("abcdefghij"), 0, 1, SV("abcdefghij"), 0, 11, -9);
+ test(S("abcdefghij"), 0, 1, SV("abcdefghij"), 1, 0, 1);
+ test(S("abcdefghij"), 0, 1, SV("abcdefghij"), 1, 1, -1);
+ test(S("abcdefghij"), 0, 1, SV("abcdefghij"), 1, 4, -1);
+ test(S("abcdefghij"), 0, 1, SV("abcdefghij"), 1, 8, -1);
+ test(S("abcdefghij"), 0, 1, SV("abcdefghij"), 1, 9, -1);
+ test(S("abcdefghij"), 0, 1, SV("abcdefghij"), 1, 10, -1);
+ test(S("abcdefghij"), 0, 1, SV("abcdefghij"), 5, 0, 1);
+ test(S("abcdefghij"), 0, 1, SV("abcdefghij"), 5, 1, -5);
+ test(S("abcdefghij"), 0, 1, SV("abcdefghij"), 5, 2, -5);
+ test(S("abcdefghij"), 0, 1, SV("abcdefghij"), 5, 4, -5);
+ test(S("abcdefghij"), 0, 1, SV("abcdefghij"), 5, 5, -5);
+ test(S("abcdefghij"), 0, 1, SV("abcdefghij"), 5, 6, -5);
+ test(S("abcdefghij"), 0, 1, SV("abcdefghij"), 9, 0, 1);
+ test(S("abcdefghij"), 0, 1, SV("abcdefghij"), 9, 1, -9);
+ test(S("abcdefghij"), 0, 1, SV("abcdefghij"), 9, 2, -9);
+ test(S("abcdefghij"), 0, 1, SV("abcdefghij"), 10, 0, 1);
+ test(S("abcdefghij"), 0, 1, SV("abcdefghij"), 10, 1, 1);
+ test(S("abcdefghij"), 0, 1, SV("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghij"), 0, 1, SV("abcdefghijklmnopqrst"), 0, 0, 1);
+ test(S("abcdefghij"), 0, 1, SV("abcdefghijklmnopqrst"), 0, 1, 0);
+ test(S("abcdefghij"), 0, 1, SV("abcdefghijklmnopqrst"), 0, 10, -9);
+ test(S("abcdefghij"), 0, 1, SV("abcdefghijklmnopqrst"), 0, 19, -18);
+ test(S("abcdefghij"), 0, 1, SV("abcdefghijklmnopqrst"), 0, 20, -19);
+ test(S("abcdefghij"), 0, 1, SV("abcdefghijklmnopqrst"), 0, 21, -19);
+ test(S("abcdefghij"), 0, 1, SV("abcdefghijklmnopqrst"), 1, 0, 1);
+ test(S("abcdefghij"), 0, 1, SV("abcdefghijklmnopqrst"), 1, 1, -1);
+ test(S("abcdefghij"), 0, 1, SV("abcdefghijklmnopqrst"), 1, 9, -1);
+ test(S("abcdefghij"), 0, 1, SV("abcdefghijklmnopqrst"), 1, 18, -1);
+ test(S("abcdefghij"), 0, 1, SV("abcdefghijklmnopqrst"), 1, 19, -1);
+ test(S("abcdefghij"), 0, 1, SV("abcdefghijklmnopqrst"), 1, 20, -1);
+ test(S("abcdefghij"), 0, 1, SV("abcdefghijklmnopqrst"), 10, 0, 1);
+ test(S("abcdefghij"), 0, 1, SV("abcdefghijklmnopqrst"), 10, 1, -10);
+ test(S("abcdefghij"), 0, 1, SV("abcdefghijklmnopqrst"), 10, 5, -10);
+ test(S("abcdefghij"), 0, 1, SV("abcdefghijklmnopqrst"), 10, 9, -10);
+ test(S("abcdefghij"), 0, 1, SV("abcdefghijklmnopqrst"), 10, 10, -10);
+ test(S("abcdefghij"), 0, 1, SV("abcdefghijklmnopqrst"), 10, 11, -10);
+ test(S("abcdefghij"), 0, 1, SV("abcdefghijklmnopqrst"), 19, 0, 1);
+ test(S("abcdefghij"), 0, 1, SV("abcdefghijklmnopqrst"), 19, 1, -19);
+ test(S("abcdefghij"), 0, 1, SV("abcdefghijklmnopqrst"), 19, 2, -19);
+ test(S("abcdefghij"), 0, 1, SV("abcdefghijklmnopqrst"), 20, 0, 1);
+ test(S("abcdefghij"), 0, 1, SV("abcdefghijklmnopqrst"), 20, 1, 1);
+ test(S("abcdefghij"), 0, 1, SV("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghij"), 0, 5, SV(""), 0, 0, 5);
+ test(S("abcdefghij"), 0, 5, SV(""), 0, 1, 5);
+ test(S("abcdefghij"), 0, 5, SV(""), 1, 0, 0);
+ test(S("abcdefghij"), 0, 5, SV("abcde"), 0, 0, 5);
+ test(S("abcdefghij"), 0, 5, SV("abcde"), 0, 1, 4);
+ test(S("abcdefghij"), 0, 5, SV("abcde"), 0, 2, 3);
+ test(S("abcdefghij"), 0, 5, SV("abcde"), 0, 4, 1);
+ test(S("abcdefghij"), 0, 5, SV("abcde"), 0, 5, 0);
+ test(S("abcdefghij"), 0, 5, SV("abcde"), 0, 6, 0);
+ test(S("abcdefghij"), 0, 5, SV("abcde"), 1, 0, 5);
+ test(S("abcdefghij"), 0, 5, SV("abcde"), 1, 1, -1);
+ test(S("abcdefghij"), 0, 5, SV("abcde"), 1, 2, -1);
+ test(S("abcdefghij"), 0, 5, SV("abcde"), 1, 3, -1);
+ test(S("abcdefghij"), 0, 5, SV("abcde"), 1, 4, -1);
+ test(S("abcdefghij"), 0, 5, SV("abcde"), 1, 5, -1);
+ test(S("abcdefghij"), 0, 5, SV("abcde"), 2, 0, 5);
+ test(S("abcdefghij"), 0, 5, SV("abcde"), 2, 1, -2);
+ test(S("abcdefghij"), 0, 5, SV("abcde"), 2, 2, -2);
+ test(S("abcdefghij"), 0, 5, SV("abcde"), 2, 3, -2);
+ test(S("abcdefghij"), 0, 5, SV("abcde"), 2, 4, -2);
+ test(S("abcdefghij"), 0, 5, SV("abcde"), 4, 0, 5);
+ test(S("abcdefghij"), 0, 5, SV("abcde"), 4, 1, -4);
+ test(S("abcdefghij"), 0, 5, SV("abcde"), 4, 2, -4);
+ test(S("abcdefghij"), 0, 5, SV("abcde"), 5, 0, 5);
+ test(S("abcdefghij"), 0, 5, SV("abcde"), 5, 1, 5);
+ test(S("abcdefghij"), 0, 5, SV("abcde"), 6, 0, 0);
+ test(S("abcdefghij"), 0, 5, SV("abcdefghij"), 0, 0, 5);
+ test(S("abcdefghij"), 0, 5, SV("abcdefghij"), 0, 1, 4);
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test21()
-{
- test(S("abcdefghij"), 0, 5, SV("abcdefghij"), 0, 5, 0);
- test(S("abcdefghij"), 0, 5, SV("abcdefghij"), 0, 9, -4);
- test(S("abcdefghij"), 0, 5, SV("abcdefghij"), 0, 10, -5);
- test(S("abcdefghij"), 0, 5, SV("abcdefghij"), 0, 11, -5);
- test(S("abcdefghij"), 0, 5, SV("abcdefghij"), 1, 0, 5);
- test(S("abcdefghij"), 0, 5, SV("abcdefghij"), 1, 1, -1);
- test(S("abcdefghij"), 0, 5, SV("abcdefghij"), 1, 4, -1);
- test(S("abcdefghij"), 0, 5, SV("abcdefghij"), 1, 8, -1);
- test(S("abcdefghij"), 0, 5, SV("abcdefghij"), 1, 9, -1);
- test(S("abcdefghij"), 0, 5, SV("abcdefghij"), 1, 10, -1);
- test(S("abcdefghij"), 0, 5, SV("abcdefghij"), 5, 0, 5);
- test(S("abcdefghij"), 0, 5, SV("abcdefghij"), 5, 1, -5);
- test(S("abcdefghij"), 0, 5, SV("abcdefghij"), 5, 2, -5);
- test(S("abcdefghij"), 0, 5, SV("abcdefghij"), 5, 4, -5);
- test(S("abcdefghij"), 0, 5, SV("abcdefghij"), 5, 5, -5);
- test(S("abcdefghij"), 0, 5, SV("abcdefghij"), 5, 6, -5);
- test(S("abcdefghij"), 0, 5, SV("abcdefghij"), 9, 0, 5);
- test(S("abcdefghij"), 0, 5, SV("abcdefghij"), 9, 1, -9);
- test(S("abcdefghij"), 0, 5, SV("abcdefghij"), 9, 2, -9);
- test(S("abcdefghij"), 0, 5, SV("abcdefghij"), 10, 0, 5);
- test(S("abcdefghij"), 0, 5, SV("abcdefghij"), 10, 1, 5);
- test(S("abcdefghij"), 0, 5, SV("abcdefghij"), 11, 0, 0);
- test(S("abcdefghij"), 0, 5, SV("abcdefghijklmnopqrst"), 0, 0, 5);
- test(S("abcdefghij"), 0, 5, SV("abcdefghijklmnopqrst"), 0, 1, 4);
- test(S("abcdefghij"), 0, 5, SV("abcdefghijklmnopqrst"), 0, 10, -5);
- test(S("abcdefghij"), 0, 5, SV("abcdefghijklmnopqrst"), 0, 19, -14);
- test(S("abcdefghij"), 0, 5, SV("abcdefghijklmnopqrst"), 0, 20, -15);
- test(S("abcdefghij"), 0, 5, SV("abcdefghijklmnopqrst"), 0, 21, -15);
- test(S("abcdefghij"), 0, 5, SV("abcdefghijklmnopqrst"), 1, 0, 5);
- test(S("abcdefghij"), 0, 5, SV("abcdefghijklmnopqrst"), 1, 1, -1);
- test(S("abcdefghij"), 0, 5, SV("abcdefghijklmnopqrst"), 1, 9, -1);
- test(S("abcdefghij"), 0, 5, SV("abcdefghijklmnopqrst"), 1, 18, -1);
- test(S("abcdefghij"), 0, 5, SV("abcdefghijklmnopqrst"), 1, 19, -1);
- test(S("abcdefghij"), 0, 5, SV("abcdefghijklmnopqrst"), 1, 20, -1);
- test(S("abcdefghij"), 0, 5, SV("abcdefghijklmnopqrst"), 10, 0, 5);
- test(S("abcdefghij"), 0, 5, SV("abcdefghijklmnopqrst"), 10, 1, -10);
- test(S("abcdefghij"), 0, 5, SV("abcdefghijklmnopqrst"), 10, 5, -10);
- test(S("abcdefghij"), 0, 5, SV("abcdefghijklmnopqrst"), 10, 9, -10);
- test(S("abcdefghij"), 0, 5, SV("abcdefghijklmnopqrst"), 10, 10, -10);
- test(S("abcdefghij"), 0, 5, SV("abcdefghijklmnopqrst"), 10, 11, -10);
- test(S("abcdefghij"), 0, 5, SV("abcdefghijklmnopqrst"), 19, 0, 5);
- test(S("abcdefghij"), 0, 5, SV("abcdefghijklmnopqrst"), 19, 1, -19);
- test(S("abcdefghij"), 0, 5, SV("abcdefghijklmnopqrst"), 19, 2, -19);
- test(S("abcdefghij"), 0, 5, SV("abcdefghijklmnopqrst"), 20, 0, 5);
- test(S("abcdefghij"), 0, 5, SV("abcdefghijklmnopqrst"), 20, 1, 5);
- test(S("abcdefghij"), 0, 5, SV("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghij"), 0, 9, SV(""), 0, 0, 9);
- test(S("abcdefghij"), 0, 9, SV(""), 0, 1, 9);
- test(S("abcdefghij"), 0, 9, SV(""), 1, 0, 0);
- test(S("abcdefghij"), 0, 9, SV("abcde"), 0, 0, 9);
- test(S("abcdefghij"), 0, 9, SV("abcde"), 0, 1, 8);
- test(S("abcdefghij"), 0, 9, SV("abcde"), 0, 2, 7);
- test(S("abcdefghij"), 0, 9, SV("abcde"), 0, 4, 5);
- test(S("abcdefghij"), 0, 9, SV("abcde"), 0, 5, 4);
- test(S("abcdefghij"), 0, 9, SV("abcde"), 0, 6, 4);
- test(S("abcdefghij"), 0, 9, SV("abcde"), 1, 0, 9);
- test(S("abcdefghij"), 0, 9, SV("abcde"), 1, 1, -1);
- test(S("abcdefghij"), 0, 9, SV("abcde"), 1, 2, -1);
- test(S("abcdefghij"), 0, 9, SV("abcde"), 1, 3, -1);
- test(S("abcdefghij"), 0, 9, SV("abcde"), 1, 4, -1);
- test(S("abcdefghij"), 0, 9, SV("abcde"), 1, 5, -1);
- test(S("abcdefghij"), 0, 9, SV("abcde"), 2, 0, 9);
- test(S("abcdefghij"), 0, 9, SV("abcde"), 2, 1, -2);
- test(S("abcdefghij"), 0, 9, SV("abcde"), 2, 2, -2);
- test(S("abcdefghij"), 0, 9, SV("abcde"), 2, 3, -2);
- test(S("abcdefghij"), 0, 9, SV("abcde"), 2, 4, -2);
- test(S("abcdefghij"), 0, 9, SV("abcde"), 4, 0, 9);
- test(S("abcdefghij"), 0, 9, SV("abcde"), 4, 1, -4);
- test(S("abcdefghij"), 0, 9, SV("abcde"), 4, 2, -4);
- test(S("abcdefghij"), 0, 9, SV("abcde"), 5, 0, 9);
- test(S("abcdefghij"), 0, 9, SV("abcde"), 5, 1, 9);
- test(S("abcdefghij"), 0, 9, SV("abcde"), 6, 0, 0);
- test(S("abcdefghij"), 0, 9, SV("abcdefghij"), 0, 0, 9);
- test(S("abcdefghij"), 0, 9, SV("abcdefghij"), 0, 1, 8);
- test(S("abcdefghij"), 0, 9, SV("abcdefghij"), 0, 5, 4);
- test(S("abcdefghij"), 0, 9, SV("abcdefghij"), 0, 9, 0);
- test(S("abcdefghij"), 0, 9, SV("abcdefghij"), 0, 10, -1);
- test(S("abcdefghij"), 0, 9, SV("abcdefghij"), 0, 11, -1);
- test(S("abcdefghij"), 0, 9, SV("abcdefghij"), 1, 0, 9);
- test(S("abcdefghij"), 0, 9, SV("abcdefghij"), 1, 1, -1);
- test(S("abcdefghij"), 0, 9, SV("abcdefghij"), 1, 4, -1);
- test(S("abcdefghij"), 0, 9, SV("abcdefghij"), 1, 8, -1);
- test(S("abcdefghij"), 0, 9, SV("abcdefghij"), 1, 9, -1);
- test(S("abcdefghij"), 0, 9, SV("abcdefghij"), 1, 10, -1);
- test(S("abcdefghij"), 0, 9, SV("abcdefghij"), 5, 0, 9);
- test(S("abcdefghij"), 0, 9, SV("abcdefghij"), 5, 1, -5);
- test(S("abcdefghij"), 0, 9, SV("abcdefghij"), 5, 2, -5);
- test(S("abcdefghij"), 0, 9, SV("abcdefghij"), 5, 4, -5);
- test(S("abcdefghij"), 0, 9, SV("abcdefghij"), 5, 5, -5);
- test(S("abcdefghij"), 0, 9, SV("abcdefghij"), 5, 6, -5);
- test(S("abcdefghij"), 0, 9, SV("abcdefghij"), 9, 0, 9);
- test(S("abcdefghij"), 0, 9, SV("abcdefghij"), 9, 1, -9);
- test(S("abcdefghij"), 0, 9, SV("abcdefghij"), 9, 2, -9);
- test(S("abcdefghij"), 0, 9, SV("abcdefghij"), 10, 0, 9);
- test(S("abcdefghij"), 0, 9, SV("abcdefghij"), 10, 1, 9);
- test(S("abcdefghij"), 0, 9, SV("abcdefghij"), 11, 0, 0);
- test(S("abcdefghij"), 0, 9, SV("abcdefghijklmnopqrst"), 0, 0, 9);
- test(S("abcdefghij"), 0, 9, SV("abcdefghijklmnopqrst"), 0, 1, 8);
- test(S("abcdefghij"), 0, 9, SV("abcdefghijklmnopqrst"), 0, 10, -1);
- test(S("abcdefghij"), 0, 9, SV("abcdefghijklmnopqrst"), 0, 19, -10);
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test21() {
+ test(S("abcdefghij"), 0, 5, SV("abcdefghij"), 0, 5, 0);
+ test(S("abcdefghij"), 0, 5, SV("abcdefghij"), 0, 9, -4);
+ test(S("abcdefghij"), 0, 5, SV("abcdefghij"), 0, 10, -5);
+ test(S("abcdefghij"), 0, 5, SV("abcdefghij"), 0, 11, -5);
+ test(S("abcdefghij"), 0, 5, SV("abcdefghij"), 1, 0, 5);
+ test(S("abcdefghij"), 0, 5, SV("abcdefghij"), 1, 1, -1);
+ test(S("abcdefghij"), 0, 5, SV("abcdefghij"), 1, 4, -1);
+ test(S("abcdefghij"), 0, 5, SV("abcdefghij"), 1, 8, -1);
+ test(S("abcdefghij"), 0, 5, SV("abcdefghij"), 1, 9, -1);
+ test(S("abcdefghij"), 0, 5, SV("abcdefghij"), 1, 10, -1);
+ test(S("abcdefghij"), 0, 5, SV("abcdefghij"), 5, 0, 5);
+ test(S("abcdefghij"), 0, 5, SV("abcdefghij"), 5, 1, -5);
+ test(S("abcdefghij"), 0, 5, SV("abcdefghij"), 5, 2, -5);
+ test(S("abcdefghij"), 0, 5, SV("abcdefghij"), 5, 4, -5);
+ test(S("abcdefghij"), 0, 5, SV("abcdefghij"), 5, 5, -5);
+ test(S("abcdefghij"), 0, 5, SV("abcdefghij"), 5, 6, -5);
+ test(S("abcdefghij"), 0, 5, SV("abcdefghij"), 9, 0, 5);
+ test(S("abcdefghij"), 0, 5, SV("abcdefghij"), 9, 1, -9);
+ test(S("abcdefghij"), 0, 5, SV("abcdefghij"), 9, 2, -9);
+ test(S("abcdefghij"), 0, 5, SV("abcdefghij"), 10, 0, 5);
+ test(S("abcdefghij"), 0, 5, SV("abcdefghij"), 10, 1, 5);
+ test(S("abcdefghij"), 0, 5, SV("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghij"), 0, 5, SV("abcdefghijklmnopqrst"), 0, 0, 5);
+ test(S("abcdefghij"), 0, 5, SV("abcdefghijklmnopqrst"), 0, 1, 4);
+ test(S("abcdefghij"), 0, 5, SV("abcdefghijklmnopqrst"), 0, 10, -5);
+ test(S("abcdefghij"), 0, 5, SV("abcdefghijklmnopqrst"), 0, 19, -14);
+ test(S("abcdefghij"), 0, 5, SV("abcdefghijklmnopqrst"), 0, 20, -15);
+ test(S("abcdefghij"), 0, 5, SV("abcdefghijklmnopqrst"), 0, 21, -15);
+ test(S("abcdefghij"), 0, 5, SV("abcdefghijklmnopqrst"), 1, 0, 5);
+ test(S("abcdefghij"), 0, 5, SV("abcdefghijklmnopqrst"), 1, 1, -1);
+ test(S("abcdefghij"), 0, 5, SV("abcdefghijklmnopqrst"), 1, 9, -1);
+ test(S("abcdefghij"), 0, 5, SV("abcdefghijklmnopqrst"), 1, 18, -1);
+ test(S("abcdefghij"), 0, 5, SV("abcdefghijklmnopqrst"), 1, 19, -1);
+ test(S("abcdefghij"), 0, 5, SV("abcdefghijklmnopqrst"), 1, 20, -1);
+ test(S("abcdefghij"), 0, 5, SV("abcdefghijklmnopqrst"), 10, 0, 5);
+ test(S("abcdefghij"), 0, 5, SV("abcdefghijklmnopqrst"), 10, 1, -10);
+ test(S("abcdefghij"), 0, 5, SV("abcdefghijklmnopqrst"), 10, 5, -10);
+ test(S("abcdefghij"), 0, 5, SV("abcdefghijklmnopqrst"), 10, 9, -10);
+ test(S("abcdefghij"), 0, 5, SV("abcdefghijklmnopqrst"), 10, 10, -10);
+ test(S("abcdefghij"), 0, 5, SV("abcdefghijklmnopqrst"), 10, 11, -10);
+ test(S("abcdefghij"), 0, 5, SV("abcdefghijklmnopqrst"), 19, 0, 5);
+ test(S("abcdefghij"), 0, 5, SV("abcdefghijklmnopqrst"), 19, 1, -19);
+ test(S("abcdefghij"), 0, 5, SV("abcdefghijklmnopqrst"), 19, 2, -19);
+ test(S("abcdefghij"), 0, 5, SV("abcdefghijklmnopqrst"), 20, 0, 5);
+ test(S("abcdefghij"), 0, 5, SV("abcdefghijklmnopqrst"), 20, 1, 5);
+ test(S("abcdefghij"), 0, 5, SV("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghij"), 0, 9, SV(""), 0, 0, 9);
+ test(S("abcdefghij"), 0, 9, SV(""), 0, 1, 9);
+ test(S("abcdefghij"), 0, 9, SV(""), 1, 0, 0);
+ test(S("abcdefghij"), 0, 9, SV("abcde"), 0, 0, 9);
+ test(S("abcdefghij"), 0, 9, SV("abcde"), 0, 1, 8);
+ test(S("abcdefghij"), 0, 9, SV("abcde"), 0, 2, 7);
+ test(S("abcdefghij"), 0, 9, SV("abcde"), 0, 4, 5);
+ test(S("abcdefghij"), 0, 9, SV("abcde"), 0, 5, 4);
+ test(S("abcdefghij"), 0, 9, SV("abcde"), 0, 6, 4);
+ test(S("abcdefghij"), 0, 9, SV("abcde"), 1, 0, 9);
+ test(S("abcdefghij"), 0, 9, SV("abcde"), 1, 1, -1);
+ test(S("abcdefghij"), 0, 9, SV("abcde"), 1, 2, -1);
+ test(S("abcdefghij"), 0, 9, SV("abcde"), 1, 3, -1);
+ test(S("abcdefghij"), 0, 9, SV("abcde"), 1, 4, -1);
+ test(S("abcdefghij"), 0, 9, SV("abcde"), 1, 5, -1);
+ test(S("abcdefghij"), 0, 9, SV("abcde"), 2, 0, 9);
+ test(S("abcdefghij"), 0, 9, SV("abcde"), 2, 1, -2);
+ test(S("abcdefghij"), 0, 9, SV("abcde"), 2, 2, -2);
+ test(S("abcdefghij"), 0, 9, SV("abcde"), 2, 3, -2);
+ test(S("abcdefghij"), 0, 9, SV("abcde"), 2, 4, -2);
+ test(S("abcdefghij"), 0, 9, SV("abcde"), 4, 0, 9);
+ test(S("abcdefghij"), 0, 9, SV("abcde"), 4, 1, -4);
+ test(S("abcdefghij"), 0, 9, SV("abcde"), 4, 2, -4);
+ test(S("abcdefghij"), 0, 9, SV("abcde"), 5, 0, 9);
+ test(S("abcdefghij"), 0, 9, SV("abcde"), 5, 1, 9);
+ test(S("abcdefghij"), 0, 9, SV("abcde"), 6, 0, 0);
+ test(S("abcdefghij"), 0, 9, SV("abcdefghij"), 0, 0, 9);
+ test(S("abcdefghij"), 0, 9, SV("abcdefghij"), 0, 1, 8);
+ test(S("abcdefghij"), 0, 9, SV("abcdefghij"), 0, 5, 4);
+ test(S("abcdefghij"), 0, 9, SV("abcdefghij"), 0, 9, 0);
+ test(S("abcdefghij"), 0, 9, SV("abcdefghij"), 0, 10, -1);
+ test(S("abcdefghij"), 0, 9, SV("abcdefghij"), 0, 11, -1);
+ test(S("abcdefghij"), 0, 9, SV("abcdefghij"), 1, 0, 9);
+ test(S("abcdefghij"), 0, 9, SV("abcdefghij"), 1, 1, -1);
+ test(S("abcdefghij"), 0, 9, SV("abcdefghij"), 1, 4, -1);
+ test(S("abcdefghij"), 0, 9, SV("abcdefghij"), 1, 8, -1);
+ test(S("abcdefghij"), 0, 9, SV("abcdefghij"), 1, 9, -1);
+ test(S("abcdefghij"), 0, 9, SV("abcdefghij"), 1, 10, -1);
+ test(S("abcdefghij"), 0, 9, SV("abcdefghij"), 5, 0, 9);
+ test(S("abcdefghij"), 0, 9, SV("abcdefghij"), 5, 1, -5);
+ test(S("abcdefghij"), 0, 9, SV("abcdefghij"), 5, 2, -5);
+ test(S("abcdefghij"), 0, 9, SV("abcdefghij"), 5, 4, -5);
+ test(S("abcdefghij"), 0, 9, SV("abcdefghij"), 5, 5, -5);
+ test(S("abcdefghij"), 0, 9, SV("abcdefghij"), 5, 6, -5);
+ test(S("abcdefghij"), 0, 9, SV("abcdefghij"), 9, 0, 9);
+ test(S("abcdefghij"), 0, 9, SV("abcdefghij"), 9, 1, -9);
+ test(S("abcdefghij"), 0, 9, SV("abcdefghij"), 9, 2, -9);
+ test(S("abcdefghij"), 0, 9, SV("abcdefghij"), 10, 0, 9);
+ test(S("abcdefghij"), 0, 9, SV("abcdefghij"), 10, 1, 9);
+ test(S("abcdefghij"), 0, 9, SV("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghij"), 0, 9, SV("abcdefghijklmnopqrst"), 0, 0, 9);
+ test(S("abcdefghij"), 0, 9, SV("abcdefghijklmnopqrst"), 0, 1, 8);
+ test(S("abcdefghij"), 0, 9, SV("abcdefghijklmnopqrst"), 0, 10, -1);
+ test(S("abcdefghij"), 0, 9, SV("abcdefghijklmnopqrst"), 0, 19, -10);
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test22()
-{
- test(S("abcdefghij"), 0, 9, SV("abcdefghijklmnopqrst"), 0, 20, -11);
- test(S("abcdefghij"), 0, 9, SV("abcdefghijklmnopqrst"), 0, 21, -11);
- test(S("abcdefghij"), 0, 9, SV("abcdefghijklmnopqrst"), 1, 0, 9);
- test(S("abcdefghij"), 0, 9, SV("abcdefghijklmnopqrst"), 1, 1, -1);
- test(S("abcdefghij"), 0, 9, SV("abcdefghijklmnopqrst"), 1, 9, -1);
- test(S("abcdefghij"), 0, 9, SV("abcdefghijklmnopqrst"), 1, 18, -1);
- test(S("abcdefghij"), 0, 9, SV("abcdefghijklmnopqrst"), 1, 19, -1);
- test(S("abcdefghij"), 0, 9, SV("abcdefghijklmnopqrst"), 1, 20, -1);
- test(S("abcdefghij"), 0, 9, SV("abcdefghijklmnopqrst"), 10, 0, 9);
- test(S("abcdefghij"), 0, 9, SV("abcdefghijklmnopqrst"), 10, 1, -10);
- test(S("abcdefghij"), 0, 9, SV("abcdefghijklmnopqrst"), 10, 5, -10);
- test(S("abcdefghij"), 0, 9, SV("abcdefghijklmnopqrst"), 10, 9, -10);
- test(S("abcdefghij"), 0, 9, SV("abcdefghijklmnopqrst"), 10, 10, -10);
- test(S("abcdefghij"), 0, 9, SV("abcdefghijklmnopqrst"), 10, 11, -10);
- test(S("abcdefghij"), 0, 9, SV("abcdefghijklmnopqrst"), 19, 0, 9);
- test(S("abcdefghij"), 0, 9, SV("abcdefghijklmnopqrst"), 19, 1, -19);
- test(S("abcdefghij"), 0, 9, SV("abcdefghijklmnopqrst"), 19, 2, -19);
- test(S("abcdefghij"), 0, 9, SV("abcdefghijklmnopqrst"), 20, 0, 9);
- test(S("abcdefghij"), 0, 9, SV("abcdefghijklmnopqrst"), 20, 1, 9);
- test(S("abcdefghij"), 0, 9, SV("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghij"), 0, 10, SV(""), 0, 0, 10);
- test(S("abcdefghij"), 0, 10, SV(""), 0, 1, 10);
- test(S("abcdefghij"), 0, 10, SV(""), 1, 0, 0);
- test(S("abcdefghij"), 0, 10, SV("abcde"), 0, 0, 10);
- test(S("abcdefghij"), 0, 10, SV("abcde"), 0, 1, 9);
- test(S("abcdefghij"), 0, 10, SV("abcde"), 0, 2, 8);
- test(S("abcdefghij"), 0, 10, SV("abcde"), 0, 4, 6);
- test(S("abcdefghij"), 0, 10, SV("abcde"), 0, 5, 5);
- test(S("abcdefghij"), 0, 10, SV("abcde"), 0, 6, 5);
- test(S("abcdefghij"), 0, 10, SV("abcde"), 1, 0, 10);
- test(S("abcdefghij"), 0, 10, SV("abcde"), 1, 1, -1);
- test(S("abcdefghij"), 0, 10, SV("abcde"), 1, 2, -1);
- test(S("abcdefghij"), 0, 10, SV("abcde"), 1, 3, -1);
- test(S("abcdefghij"), 0, 10, SV("abcde"), 1, 4, -1);
- test(S("abcdefghij"), 0, 10, SV("abcde"), 1, 5, -1);
- test(S("abcdefghij"), 0, 10, SV("abcde"), 2, 0, 10);
- test(S("abcdefghij"), 0, 10, SV("abcde"), 2, 1, -2);
- test(S("abcdefghij"), 0, 10, SV("abcde"), 2, 2, -2);
- test(S("abcdefghij"), 0, 10, SV("abcde"), 2, 3, -2);
- test(S("abcdefghij"), 0, 10, SV("abcde"), 2, 4, -2);
- test(S("abcdefghij"), 0, 10, SV("abcde"), 4, 0, 10);
- test(S("abcdefghij"), 0, 10, SV("abcde"), 4, 1, -4);
- test(S("abcdefghij"), 0, 10, SV("abcde"), 4, 2, -4);
- test(S("abcdefghij"), 0, 10, SV("abcde"), 5, 0, 10);
- test(S("abcdefghij"), 0, 10, SV("abcde"), 5, 1, 10);
- test(S("abcdefghij"), 0, 10, SV("abcde"), 6, 0, 0);
- test(S("abcdefghij"), 0, 10, SV("abcdefghij"), 0, 0, 10);
- test(S("abcdefghij"), 0, 10, SV("abcdefghij"), 0, 1, 9);
- test(S("abcdefghij"), 0, 10, SV("abcdefghij"), 0, 5, 5);
- test(S("abcdefghij"), 0, 10, SV("abcdefghij"), 0, 9, 1);
- test(S("abcdefghij"), 0, 10, SV("abcdefghij"), 0, 10, 0);
- test(S("abcdefghij"), 0, 10, SV("abcdefghij"), 0, 11, 0);
- test(S("abcdefghij"), 0, 10, SV("abcdefghij"), 1, 0, 10);
- test(S("abcdefghij"), 0, 10, SV("abcdefghij"), 1, 1, -1);
- test(S("abcdefghij"), 0, 10, SV("abcdefghij"), 1, 4, -1);
- test(S("abcdefghij"), 0, 10, SV("abcdefghij"), 1, 8, -1);
- test(S("abcdefghij"), 0, 10, SV("abcdefghij"), 1, 9, -1);
- test(S("abcdefghij"), 0, 10, SV("abcdefghij"), 1, 10, -1);
- test(S("abcdefghij"), 0, 10, SV("abcdefghij"), 5, 0, 10);
- test(S("abcdefghij"), 0, 10, SV("abcdefghij"), 5, 1, -5);
- test(S("abcdefghij"), 0, 10, SV("abcdefghij"), 5, 2, -5);
- test(S("abcdefghij"), 0, 10, SV("abcdefghij"), 5, 4, -5);
- test(S("abcdefghij"), 0, 10, SV("abcdefghij"), 5, 5, -5);
- test(S("abcdefghij"), 0, 10, SV("abcdefghij"), 5, 6, -5);
- test(S("abcdefghij"), 0, 10, SV("abcdefghij"), 9, 0, 10);
- test(S("abcdefghij"), 0, 10, SV("abcdefghij"), 9, 1, -9);
- test(S("abcdefghij"), 0, 10, SV("abcdefghij"), 9, 2, -9);
- test(S("abcdefghij"), 0, 10, SV("abcdefghij"), 10, 0, 10);
- test(S("abcdefghij"), 0, 10, SV("abcdefghij"), 10, 1, 10);
- test(S("abcdefghij"), 0, 10, SV("abcdefghij"), 11, 0, 0);
- test(S("abcdefghij"), 0, 10, SV("abcdefghijklmnopqrst"), 0, 0, 10);
- test(S("abcdefghij"), 0, 10, SV("abcdefghijklmnopqrst"), 0, 1, 9);
- test(S("abcdefghij"), 0, 10, SV("abcdefghijklmnopqrst"), 0, 10, 0);
- test(S("abcdefghij"), 0, 10, SV("abcdefghijklmnopqrst"), 0, 19, -9);
- test(S("abcdefghij"), 0, 10, SV("abcdefghijklmnopqrst"), 0, 20, -10);
- test(S("abcdefghij"), 0, 10, SV("abcdefghijklmnopqrst"), 0, 21, -10);
- test(S("abcdefghij"), 0, 10, SV("abcdefghijklmnopqrst"), 1, 0, 10);
- test(S("abcdefghij"), 0, 10, SV("abcdefghijklmnopqrst"), 1, 1, -1);
- test(S("abcdefghij"), 0, 10, SV("abcdefghijklmnopqrst"), 1, 9, -1);
- test(S("abcdefghij"), 0, 10, SV("abcdefghijklmnopqrst"), 1, 18, -1);
- test(S("abcdefghij"), 0, 10, SV("abcdefghijklmnopqrst"), 1, 19, -1);
- test(S("abcdefghij"), 0, 10, SV("abcdefghijklmnopqrst"), 1, 20, -1);
- test(S("abcdefghij"), 0, 10, SV("abcdefghijklmnopqrst"), 10, 0, 10);
- test(S("abcdefghij"), 0, 10, SV("abcdefghijklmnopqrst"), 10, 1, -10);
- test(S("abcdefghij"), 0, 10, SV("abcdefghijklmnopqrst"), 10, 5, -10);
- test(S("abcdefghij"), 0, 10, SV("abcdefghijklmnopqrst"), 10, 9, -10);
- test(S("abcdefghij"), 0, 10, SV("abcdefghijklmnopqrst"), 10, 10, -10);
- test(S("abcdefghij"), 0, 10, SV("abcdefghijklmnopqrst"), 10, 11, -10);
- test(S("abcdefghij"), 0, 10, SV("abcdefghijklmnopqrst"), 19, 0, 10);
- test(S("abcdefghij"), 0, 10, SV("abcdefghijklmnopqrst"), 19, 1, -19);
- test(S("abcdefghij"), 0, 10, SV("abcdefghijklmnopqrst"), 19, 2, -19);
- test(S("abcdefghij"), 0, 10, SV("abcdefghijklmnopqrst"), 20, 0, 10);
- test(S("abcdefghij"), 0, 10, SV("abcdefghijklmnopqrst"), 20, 1, 10);
- test(S("abcdefghij"), 0, 10, SV("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghij"), 0, 11, SV(""), 0, 0, 10);
- test(S("abcdefghij"), 0, 11, SV(""), 0, 1, 10);
- test(S("abcdefghij"), 0, 11, SV(""), 1, 0, 0);
- test(S("abcdefghij"), 0, 11, SV("abcde"), 0, 0, 10);
- test(S("abcdefghij"), 0, 11, SV("abcde"), 0, 1, 9);
- test(S("abcdefghij"), 0, 11, SV("abcde"), 0, 2, 8);
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test22() {
+ test(S("abcdefghij"), 0, 9, SV("abcdefghijklmnopqrst"), 0, 20, -11);
+ test(S("abcdefghij"), 0, 9, SV("abcdefghijklmnopqrst"), 0, 21, -11);
+ test(S("abcdefghij"), 0, 9, SV("abcdefghijklmnopqrst"), 1, 0, 9);
+ test(S("abcdefghij"), 0, 9, SV("abcdefghijklmnopqrst"), 1, 1, -1);
+ test(S("abcdefghij"), 0, 9, SV("abcdefghijklmnopqrst"), 1, 9, -1);
+ test(S("abcdefghij"), 0, 9, SV("abcdefghijklmnopqrst"), 1, 18, -1);
+ test(S("abcdefghij"), 0, 9, SV("abcdefghijklmnopqrst"), 1, 19, -1);
+ test(S("abcdefghij"), 0, 9, SV("abcdefghijklmnopqrst"), 1, 20, -1);
+ test(S("abcdefghij"), 0, 9, SV("abcdefghijklmnopqrst"), 10, 0, 9);
+ test(S("abcdefghij"), 0, 9, SV("abcdefghijklmnopqrst"), 10, 1, -10);
+ test(S("abcdefghij"), 0, 9, SV("abcdefghijklmnopqrst"), 10, 5, -10);
+ test(S("abcdefghij"), 0, 9, SV("abcdefghijklmnopqrst"), 10, 9, -10);
+ test(S("abcdefghij"), 0, 9, SV("abcdefghijklmnopqrst"), 10, 10, -10);
+ test(S("abcdefghij"), 0, 9, SV("abcdefghijklmnopqrst"), 10, 11, -10);
+ test(S("abcdefghij"), 0, 9, SV("abcdefghijklmnopqrst"), 19, 0, 9);
+ test(S("abcdefghij"), 0, 9, SV("abcdefghijklmnopqrst"), 19, 1, -19);
+ test(S("abcdefghij"), 0, 9, SV("abcdefghijklmnopqrst"), 19, 2, -19);
+ test(S("abcdefghij"), 0, 9, SV("abcdefghijklmnopqrst"), 20, 0, 9);
+ test(S("abcdefghij"), 0, 9, SV("abcdefghijklmnopqrst"), 20, 1, 9);
+ test(S("abcdefghij"), 0, 9, SV("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghij"), 0, 10, SV(""), 0, 0, 10);
+ test(S("abcdefghij"), 0, 10, SV(""), 0, 1, 10);
+ test(S("abcdefghij"), 0, 10, SV(""), 1, 0, 0);
+ test(S("abcdefghij"), 0, 10, SV("abcde"), 0, 0, 10);
+ test(S("abcdefghij"), 0, 10, SV("abcde"), 0, 1, 9);
+ test(S("abcdefghij"), 0, 10, SV("abcde"), 0, 2, 8);
+ test(S("abcdefghij"), 0, 10, SV("abcde"), 0, 4, 6);
+ test(S("abcdefghij"), 0, 10, SV("abcde"), 0, 5, 5);
+ test(S("abcdefghij"), 0, 10, SV("abcde"), 0, 6, 5);
+ test(S("abcdefghij"), 0, 10, SV("abcde"), 1, 0, 10);
+ test(S("abcdefghij"), 0, 10, SV("abcde"), 1, 1, -1);
+ test(S("abcdefghij"), 0, 10, SV("abcde"), 1, 2, -1);
+ test(S("abcdefghij"), 0, 10, SV("abcde"), 1, 3, -1);
+ test(S("abcdefghij"), 0, 10, SV("abcde"), 1, 4, -1);
+ test(S("abcdefghij"), 0, 10, SV("abcde"), 1, 5, -1);
+ test(S("abcdefghij"), 0, 10, SV("abcde"), 2, 0, 10);
+ test(S("abcdefghij"), 0, 10, SV("abcde"), 2, 1, -2);
+ test(S("abcdefghij"), 0, 10, SV("abcde"), 2, 2, -2);
+ test(S("abcdefghij"), 0, 10, SV("abcde"), 2, 3, -2);
+ test(S("abcdefghij"), 0, 10, SV("abcde"), 2, 4, -2);
+ test(S("abcdefghij"), 0, 10, SV("abcde"), 4, 0, 10);
+ test(S("abcdefghij"), 0, 10, SV("abcde"), 4, 1, -4);
+ test(S("abcdefghij"), 0, 10, SV("abcde"), 4, 2, -4);
+ test(S("abcdefghij"), 0, 10, SV("abcde"), 5, 0, 10);
+ test(S("abcdefghij"), 0, 10, SV("abcde"), 5, 1, 10);
+ test(S("abcdefghij"), 0, 10, SV("abcde"), 6, 0, 0);
+ test(S("abcdefghij"), 0, 10, SV("abcdefghij"), 0, 0, 10);
+ test(S("abcdefghij"), 0, 10, SV("abcdefghij"), 0, 1, 9);
+ test(S("abcdefghij"), 0, 10, SV("abcdefghij"), 0, 5, 5);
+ test(S("abcdefghij"), 0, 10, SV("abcdefghij"), 0, 9, 1);
+ test(S("abcdefghij"), 0, 10, SV("abcdefghij"), 0, 10, 0);
+ test(S("abcdefghij"), 0, 10, SV("abcdefghij"), 0, 11, 0);
+ test(S("abcdefghij"), 0, 10, SV("abcdefghij"), 1, 0, 10);
+ test(S("abcdefghij"), 0, 10, SV("abcdefghij"), 1, 1, -1);
+ test(S("abcdefghij"), 0, 10, SV("abcdefghij"), 1, 4, -1);
+ test(S("abcdefghij"), 0, 10, SV("abcdefghij"), 1, 8, -1);
+ test(S("abcdefghij"), 0, 10, SV("abcdefghij"), 1, 9, -1);
+ test(S("abcdefghij"), 0, 10, SV("abcdefghij"), 1, 10, -1);
+ test(S("abcdefghij"), 0, 10, SV("abcdefghij"), 5, 0, 10);
+ test(S("abcdefghij"), 0, 10, SV("abcdefghij"), 5, 1, -5);
+ test(S("abcdefghij"), 0, 10, SV("abcdefghij"), 5, 2, -5);
+ test(S("abcdefghij"), 0, 10, SV("abcdefghij"), 5, 4, -5);
+ test(S("abcdefghij"), 0, 10, SV("abcdefghij"), 5, 5, -5);
+ test(S("abcdefghij"), 0, 10, SV("abcdefghij"), 5, 6, -5);
+ test(S("abcdefghij"), 0, 10, SV("abcdefghij"), 9, 0, 10);
+ test(S("abcdefghij"), 0, 10, SV("abcdefghij"), 9, 1, -9);
+ test(S("abcdefghij"), 0, 10, SV("abcdefghij"), 9, 2, -9);
+ test(S("abcdefghij"), 0, 10, SV("abcdefghij"), 10, 0, 10);
+ test(S("abcdefghij"), 0, 10, SV("abcdefghij"), 10, 1, 10);
+ test(S("abcdefghij"), 0, 10, SV("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghij"), 0, 10, SV("abcdefghijklmnopqrst"), 0, 0, 10);
+ test(S("abcdefghij"), 0, 10, SV("abcdefghijklmnopqrst"), 0, 1, 9);
+ test(S("abcdefghij"), 0, 10, SV("abcdefghijklmnopqrst"), 0, 10, 0);
+ test(S("abcdefghij"), 0, 10, SV("abcdefghijklmnopqrst"), 0, 19, -9);
+ test(S("abcdefghij"), 0, 10, SV("abcdefghijklmnopqrst"), 0, 20, -10);
+ test(S("abcdefghij"), 0, 10, SV("abcdefghijklmnopqrst"), 0, 21, -10);
+ test(S("abcdefghij"), 0, 10, SV("abcdefghijklmnopqrst"), 1, 0, 10);
+ test(S("abcdefghij"), 0, 10, SV("abcdefghijklmnopqrst"), 1, 1, -1);
+ test(S("abcdefghij"), 0, 10, SV("abcdefghijklmnopqrst"), 1, 9, -1);
+ test(S("abcdefghij"), 0, 10, SV("abcdefghijklmnopqrst"), 1, 18, -1);
+ test(S("abcdefghij"), 0, 10, SV("abcdefghijklmnopqrst"), 1, 19, -1);
+ test(S("abcdefghij"), 0, 10, SV("abcdefghijklmnopqrst"), 1, 20, -1);
+ test(S("abcdefghij"), 0, 10, SV("abcdefghijklmnopqrst"), 10, 0, 10);
+ test(S("abcdefghij"), 0, 10, SV("abcdefghijklmnopqrst"), 10, 1, -10);
+ test(S("abcdefghij"), 0, 10, SV("abcdefghijklmnopqrst"), 10, 5, -10);
+ test(S("abcdefghij"), 0, 10, SV("abcdefghijklmnopqrst"), 10, 9, -10);
+ test(S("abcdefghij"), 0, 10, SV("abcdefghijklmnopqrst"), 10, 10, -10);
+ test(S("abcdefghij"), 0, 10, SV("abcdefghijklmnopqrst"), 10, 11, -10);
+ test(S("abcdefghij"), 0, 10, SV("abcdefghijklmnopqrst"), 19, 0, 10);
+ test(S("abcdefghij"), 0, 10, SV("abcdefghijklmnopqrst"), 19, 1, -19);
+ test(S("abcdefghij"), 0, 10, SV("abcdefghijklmnopqrst"), 19, 2, -19);
+ test(S("abcdefghij"), 0, 10, SV("abcdefghijklmnopqrst"), 20, 0, 10);
+ test(S("abcdefghij"), 0, 10, SV("abcdefghijklmnopqrst"), 20, 1, 10);
+ test(S("abcdefghij"), 0, 10, SV("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghij"), 0, 11, SV(""), 0, 0, 10);
+ test(S("abcdefghij"), 0, 11, SV(""), 0, 1, 10);
+ test(S("abcdefghij"), 0, 11, SV(""), 1, 0, 0);
+ test(S("abcdefghij"), 0, 11, SV("abcde"), 0, 0, 10);
+ test(S("abcdefghij"), 0, 11, SV("abcde"), 0, 1, 9);
+ test(S("abcdefghij"), 0, 11, SV("abcde"), 0, 2, 8);
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test23()
-{
- test(S("abcdefghij"), 0, 11, SV("abcde"), 0, 4, 6);
- test(S("abcdefghij"), 0, 11, SV("abcde"), 0, 5, 5);
- test(S("abcdefghij"), 0, 11, SV("abcde"), 0, 6, 5);
- test(S("abcdefghij"), 0, 11, SV("abcde"), 1, 0, 10);
- test(S("abcdefghij"), 0, 11, SV("abcde"), 1, 1, -1);
- test(S("abcdefghij"), 0, 11, SV("abcde"), 1, 2, -1);
- test(S("abcdefghij"), 0, 11, SV("abcde"), 1, 3, -1);
- test(S("abcdefghij"), 0, 11, SV("abcde"), 1, 4, -1);
- test(S("abcdefghij"), 0, 11, SV("abcde"), 1, 5, -1);
- test(S("abcdefghij"), 0, 11, SV("abcde"), 2, 0, 10);
- test(S("abcdefghij"), 0, 11, SV("abcde"), 2, 1, -2);
- test(S("abcdefghij"), 0, 11, SV("abcde"), 2, 2, -2);
- test(S("abcdefghij"), 0, 11, SV("abcde"), 2, 3, -2);
- test(S("abcdefghij"), 0, 11, SV("abcde"), 2, 4, -2);
- test(S("abcdefghij"), 0, 11, SV("abcde"), 4, 0, 10);
- test(S("abcdefghij"), 0, 11, SV("abcde"), 4, 1, -4);
- test(S("abcdefghij"), 0, 11, SV("abcde"), 4, 2, -4);
- test(S("abcdefghij"), 0, 11, SV("abcde"), 5, 0, 10);
- test(S("abcdefghij"), 0, 11, SV("abcde"), 5, 1, 10);
- test(S("abcdefghij"), 0, 11, SV("abcde"), 6, 0, 0);
- test(S("abcdefghij"), 0, 11, SV("abcdefghij"), 0, 0, 10);
- test(S("abcdefghij"), 0, 11, SV("abcdefghij"), 0, 1, 9);
- test(S("abcdefghij"), 0, 11, SV("abcdefghij"), 0, 5, 5);
- test(S("abcdefghij"), 0, 11, SV("abcdefghij"), 0, 9, 1);
- test(S("abcdefghij"), 0, 11, SV("abcdefghij"), 0, 10, 0);
- test(S("abcdefghij"), 0, 11, SV("abcdefghij"), 0, 11, 0);
- test(S("abcdefghij"), 0, 11, SV("abcdefghij"), 1, 0, 10);
- test(S("abcdefghij"), 0, 11, SV("abcdefghij"), 1, 1, -1);
- test(S("abcdefghij"), 0, 11, SV("abcdefghij"), 1, 4, -1);
- test(S("abcdefghij"), 0, 11, SV("abcdefghij"), 1, 8, -1);
- test(S("abcdefghij"), 0, 11, SV("abcdefghij"), 1, 9, -1);
- test(S("abcdefghij"), 0, 11, SV("abcdefghij"), 1, 10, -1);
- test(S("abcdefghij"), 0, 11, SV("abcdefghij"), 5, 0, 10);
- test(S("abcdefghij"), 0, 11, SV("abcdefghij"), 5, 1, -5);
- test(S("abcdefghij"), 0, 11, SV("abcdefghij"), 5, 2, -5);
- test(S("abcdefghij"), 0, 11, SV("abcdefghij"), 5, 4, -5);
- test(S("abcdefghij"), 0, 11, SV("abcdefghij"), 5, 5, -5);
- test(S("abcdefghij"), 0, 11, SV("abcdefghij"), 5, 6, -5);
- test(S("abcdefghij"), 0, 11, SV("abcdefghij"), 9, 0, 10);
- test(S("abcdefghij"), 0, 11, SV("abcdefghij"), 9, 1, -9);
- test(S("abcdefghij"), 0, 11, SV("abcdefghij"), 9, 2, -9);
- test(S("abcdefghij"), 0, 11, SV("abcdefghij"), 10, 0, 10);
- test(S("abcdefghij"), 0, 11, SV("abcdefghij"), 10, 1, 10);
- test(S("abcdefghij"), 0, 11, SV("abcdefghij"), 11, 0, 0);
- test(S("abcdefghij"), 0, 11, SV("abcdefghijklmnopqrst"), 0, 0, 10);
- test(S("abcdefghij"), 0, 11, SV("abcdefghijklmnopqrst"), 0, 1, 9);
- test(S("abcdefghij"), 0, 11, SV("abcdefghijklmnopqrst"), 0, 10, 0);
- test(S("abcdefghij"), 0, 11, SV("abcdefghijklmnopqrst"), 0, 19, -9);
- test(S("abcdefghij"), 0, 11, SV("abcdefghijklmnopqrst"), 0, 20, -10);
- test(S("abcdefghij"), 0, 11, SV("abcdefghijklmnopqrst"), 0, 21, -10);
- test(S("abcdefghij"), 0, 11, SV("abcdefghijklmnopqrst"), 1, 0, 10);
- test(S("abcdefghij"), 0, 11, SV("abcdefghijklmnopqrst"), 1, 1, -1);
- test(S("abcdefghij"), 0, 11, SV("abcdefghijklmnopqrst"), 1, 9, -1);
- test(S("abcdefghij"), 0, 11, SV("abcdefghijklmnopqrst"), 1, 18, -1);
- test(S("abcdefghij"), 0, 11, SV("abcdefghijklmnopqrst"), 1, 19, -1);
- test(S("abcdefghij"), 0, 11, SV("abcdefghijklmnopqrst"), 1, 20, -1);
- test(S("abcdefghij"), 0, 11, SV("abcdefghijklmnopqrst"), 10, 0, 10);
- test(S("abcdefghij"), 0, 11, SV("abcdefghijklmnopqrst"), 10, 1, -10);
- test(S("abcdefghij"), 0, 11, SV("abcdefghijklmnopqrst"), 10, 5, -10);
- test(S("abcdefghij"), 0, 11, SV("abcdefghijklmnopqrst"), 10, 9, -10);
- test(S("abcdefghij"), 0, 11, SV("abcdefghijklmnopqrst"), 10, 10, -10);
- test(S("abcdefghij"), 0, 11, SV("abcdefghijklmnopqrst"), 10, 11, -10);
- test(S("abcdefghij"), 0, 11, SV("abcdefghijklmnopqrst"), 19, 0, 10);
- test(S("abcdefghij"), 0, 11, SV("abcdefghijklmnopqrst"), 19, 1, -19);
- test(S("abcdefghij"), 0, 11, SV("abcdefghijklmnopqrst"), 19, 2, -19);
- test(S("abcdefghij"), 0, 11, SV("abcdefghijklmnopqrst"), 20, 0, 10);
- test(S("abcdefghij"), 0, 11, SV("abcdefghijklmnopqrst"), 20, 1, 10);
- test(S("abcdefghij"), 0, 11, SV("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghij"), 1, 0, SV(""), 0, 0, 0);
- test(S("abcdefghij"), 1, 0, SV(""), 0, 1, 0);
- test(S("abcdefghij"), 1, 0, SV(""), 1, 0, 0);
- test(S("abcdefghij"), 1, 0, SV("abcde"), 0, 0, 0);
- test(S("abcdefghij"), 1, 0, SV("abcde"), 0, 1, -1);
- test(S("abcdefghij"), 1, 0, SV("abcde"), 0, 2, -2);
- test(S("abcdefghij"), 1, 0, SV("abcde"), 0, 4, -4);
- test(S("abcdefghij"), 1, 0, SV("abcde"), 0, 5, -5);
- test(S("abcdefghij"), 1, 0, SV("abcde"), 0, 6, -5);
- test(S("abcdefghij"), 1, 0, SV("abcde"), 1, 0, 0);
- test(S("abcdefghij"), 1, 0, SV("abcde"), 1, 1, -1);
- test(S("abcdefghij"), 1, 0, SV("abcde"), 1, 2, -2);
- test(S("abcdefghij"), 1, 0, SV("abcde"), 1, 3, -3);
- test(S("abcdefghij"), 1, 0, SV("abcde"), 1, 4, -4);
- test(S("abcdefghij"), 1, 0, SV("abcde"), 1, 5, -4);
- test(S("abcdefghij"), 1, 0, SV("abcde"), 2, 0, 0);
- test(S("abcdefghij"), 1, 0, SV("abcde"), 2, 1, -1);
- test(S("abcdefghij"), 1, 0, SV("abcde"), 2, 2, -2);
- test(S("abcdefghij"), 1, 0, SV("abcde"), 2, 3, -3);
- test(S("abcdefghij"), 1, 0, SV("abcde"), 2, 4, -3);
- test(S("abcdefghij"), 1, 0, SV("abcde"), 4, 0, 0);
- test(S("abcdefghij"), 1, 0, SV("abcde"), 4, 1, -1);
- test(S("abcdefghij"), 1, 0, SV("abcde"), 4, 2, -1);
- test(S("abcdefghij"), 1, 0, SV("abcde"), 5, 0, 0);
- test(S("abcdefghij"), 1, 0, SV("abcde"), 5, 1, 0);
- test(S("abcdefghij"), 1, 0, SV("abcde"), 6, 0, 0);
- test(S("abcdefghij"), 1, 0, SV("abcdefghij"), 0, 0, 0);
- test(S("abcdefghij"), 1, 0, SV("abcdefghij"), 0, 1, -1);
- test(S("abcdefghij"), 1, 0, SV("abcdefghij"), 0, 5, -5);
- test(S("abcdefghij"), 1, 0, SV("abcdefghij"), 0, 9, -9);
- test(S("abcdefghij"), 1, 0, SV("abcdefghij"), 0, 10, -10);
- test(S("abcdefghij"), 1, 0, SV("abcdefghij"), 0, 11, -10);
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test23() {
+ test(S("abcdefghij"), 0, 11, SV("abcde"), 0, 4, 6);
+ test(S("abcdefghij"), 0, 11, SV("abcde"), 0, 5, 5);
+ test(S("abcdefghij"), 0, 11, SV("abcde"), 0, 6, 5);
+ test(S("abcdefghij"), 0, 11, SV("abcde"), 1, 0, 10);
+ test(S("abcdefghij"), 0, 11, SV("abcde"), 1, 1, -1);
+ test(S("abcdefghij"), 0, 11, SV("abcde"), 1, 2, -1);
+ test(S("abcdefghij"), 0, 11, SV("abcde"), 1, 3, -1);
+ test(S("abcdefghij"), 0, 11, SV("abcde"), 1, 4, -1);
+ test(S("abcdefghij"), 0, 11, SV("abcde"), 1, 5, -1);
+ test(S("abcdefghij"), 0, 11, SV("abcde"), 2, 0, 10);
+ test(S("abcdefghij"), 0, 11, SV("abcde"), 2, 1, -2);
+ test(S("abcdefghij"), 0, 11, SV("abcde"), 2, 2, -2);
+ test(S("abcdefghij"), 0, 11, SV("abcde"), 2, 3, -2);
+ test(S("abcdefghij"), 0, 11, SV("abcde"), 2, 4, -2);
+ test(S("abcdefghij"), 0, 11, SV("abcde"), 4, 0, 10);
+ test(S("abcdefghij"), 0, 11, SV("abcde"), 4, 1, -4);
+ test(S("abcdefghij"), 0, 11, SV("abcde"), 4, 2, -4);
+ test(S("abcdefghij"), 0, 11, SV("abcde"), 5, 0, 10);
+ test(S("abcdefghij"), 0, 11, SV("abcde"), 5, 1, 10);
+ test(S("abcdefghij"), 0, 11, SV("abcde"), 6, 0, 0);
+ test(S("abcdefghij"), 0, 11, SV("abcdefghij"), 0, 0, 10);
+ test(S("abcdefghij"), 0, 11, SV("abcdefghij"), 0, 1, 9);
+ test(S("abcdefghij"), 0, 11, SV("abcdefghij"), 0, 5, 5);
+ test(S("abcdefghij"), 0, 11, SV("abcdefghij"), 0, 9, 1);
+ test(S("abcdefghij"), 0, 11, SV("abcdefghij"), 0, 10, 0);
+ test(S("abcdefghij"), 0, 11, SV("abcdefghij"), 0, 11, 0);
+ test(S("abcdefghij"), 0, 11, SV("abcdefghij"), 1, 0, 10);
+ test(S("abcdefghij"), 0, 11, SV("abcdefghij"), 1, 1, -1);
+ test(S("abcdefghij"), 0, 11, SV("abcdefghij"), 1, 4, -1);
+ test(S("abcdefghij"), 0, 11, SV("abcdefghij"), 1, 8, -1);
+ test(S("abcdefghij"), 0, 11, SV("abcdefghij"), 1, 9, -1);
+ test(S("abcdefghij"), 0, 11, SV("abcdefghij"), 1, 10, -1);
+ test(S("abcdefghij"), 0, 11, SV("abcdefghij"), 5, 0, 10);
+ test(S("abcdefghij"), 0, 11, SV("abcdefghij"), 5, 1, -5);
+ test(S("abcdefghij"), 0, 11, SV("abcdefghij"), 5, 2, -5);
+ test(S("abcdefghij"), 0, 11, SV("abcdefghij"), 5, 4, -5);
+ test(S("abcdefghij"), 0, 11, SV("abcdefghij"), 5, 5, -5);
+ test(S("abcdefghij"), 0, 11, SV("abcdefghij"), 5, 6, -5);
+ test(S("abcdefghij"), 0, 11, SV("abcdefghij"), 9, 0, 10);
+ test(S("abcdefghij"), 0, 11, SV("abcdefghij"), 9, 1, -9);
+ test(S("abcdefghij"), 0, 11, SV("abcdefghij"), 9, 2, -9);
+ test(S("abcdefghij"), 0, 11, SV("abcdefghij"), 10, 0, 10);
+ test(S("abcdefghij"), 0, 11, SV("abcdefghij"), 10, 1, 10);
+ test(S("abcdefghij"), 0, 11, SV("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghij"), 0, 11, SV("abcdefghijklmnopqrst"), 0, 0, 10);
+ test(S("abcdefghij"), 0, 11, SV("abcdefghijklmnopqrst"), 0, 1, 9);
+ test(S("abcdefghij"), 0, 11, SV("abcdefghijklmnopqrst"), 0, 10, 0);
+ test(S("abcdefghij"), 0, 11, SV("abcdefghijklmnopqrst"), 0, 19, -9);
+ test(S("abcdefghij"), 0, 11, SV("abcdefghijklmnopqrst"), 0, 20, -10);
+ test(S("abcdefghij"), 0, 11, SV("abcdefghijklmnopqrst"), 0, 21, -10);
+ test(S("abcdefghij"), 0, 11, SV("abcdefghijklmnopqrst"), 1, 0, 10);
+ test(S("abcdefghij"), 0, 11, SV("abcdefghijklmnopqrst"), 1, 1, -1);
+ test(S("abcdefghij"), 0, 11, SV("abcdefghijklmnopqrst"), 1, 9, -1);
+ test(S("abcdefghij"), 0, 11, SV("abcdefghijklmnopqrst"), 1, 18, -1);
+ test(S("abcdefghij"), 0, 11, SV("abcdefghijklmnopqrst"), 1, 19, -1);
+ test(S("abcdefghij"), 0, 11, SV("abcdefghijklmnopqrst"), 1, 20, -1);
+ test(S("abcdefghij"), 0, 11, SV("abcdefghijklmnopqrst"), 10, 0, 10);
+ test(S("abcdefghij"), 0, 11, SV("abcdefghijklmnopqrst"), 10, 1, -10);
+ test(S("abcdefghij"), 0, 11, SV("abcdefghijklmnopqrst"), 10, 5, -10);
+ test(S("abcdefghij"), 0, 11, SV("abcdefghijklmnopqrst"), 10, 9, -10);
+ test(S("abcdefghij"), 0, 11, SV("abcdefghijklmnopqrst"), 10, 10, -10);
+ test(S("abcdefghij"), 0, 11, SV("abcdefghijklmnopqrst"), 10, 11, -10);
+ test(S("abcdefghij"), 0, 11, SV("abcdefghijklmnopqrst"), 19, 0, 10);
+ test(S("abcdefghij"), 0, 11, SV("abcdefghijklmnopqrst"), 19, 1, -19);
+ test(S("abcdefghij"), 0, 11, SV("abcdefghijklmnopqrst"), 19, 2, -19);
+ test(S("abcdefghij"), 0, 11, SV("abcdefghijklmnopqrst"), 20, 0, 10);
+ test(S("abcdefghij"), 0, 11, SV("abcdefghijklmnopqrst"), 20, 1, 10);
+ test(S("abcdefghij"), 0, 11, SV("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghij"), 1, 0, SV(""), 0, 0, 0);
+ test(S("abcdefghij"), 1, 0, SV(""), 0, 1, 0);
+ test(S("abcdefghij"), 1, 0, SV(""), 1, 0, 0);
+ test(S("abcdefghij"), 1, 0, SV("abcde"), 0, 0, 0);
+ test(S("abcdefghij"), 1, 0, SV("abcde"), 0, 1, -1);
+ test(S("abcdefghij"), 1, 0, SV("abcde"), 0, 2, -2);
+ test(S("abcdefghij"), 1, 0, SV("abcde"), 0, 4, -4);
+ test(S("abcdefghij"), 1, 0, SV("abcde"), 0, 5, -5);
+ test(S("abcdefghij"), 1, 0, SV("abcde"), 0, 6, -5);
+ test(S("abcdefghij"), 1, 0, SV("abcde"), 1, 0, 0);
+ test(S("abcdefghij"), 1, 0, SV("abcde"), 1, 1, -1);
+ test(S("abcdefghij"), 1, 0, SV("abcde"), 1, 2, -2);
+ test(S("abcdefghij"), 1, 0, SV("abcde"), 1, 3, -3);
+ test(S("abcdefghij"), 1, 0, SV("abcde"), 1, 4, -4);
+ test(S("abcdefghij"), 1, 0, SV("abcde"), 1, 5, -4);
+ test(S("abcdefghij"), 1, 0, SV("abcde"), 2, 0, 0);
+ test(S("abcdefghij"), 1, 0, SV("abcde"), 2, 1, -1);
+ test(S("abcdefghij"), 1, 0, SV("abcde"), 2, 2, -2);
+ test(S("abcdefghij"), 1, 0, SV("abcde"), 2, 3, -3);
+ test(S("abcdefghij"), 1, 0, SV("abcde"), 2, 4, -3);
+ test(S("abcdefghij"), 1, 0, SV("abcde"), 4, 0, 0);
+ test(S("abcdefghij"), 1, 0, SV("abcde"), 4, 1, -1);
+ test(S("abcdefghij"), 1, 0, SV("abcde"), 4, 2, -1);
+ test(S("abcdefghij"), 1, 0, SV("abcde"), 5, 0, 0);
+ test(S("abcdefghij"), 1, 0, SV("abcde"), 5, 1, 0);
+ test(S("abcdefghij"), 1, 0, SV("abcde"), 6, 0, 0);
+ test(S("abcdefghij"), 1, 0, SV("abcdefghij"), 0, 0, 0);
+ test(S("abcdefghij"), 1, 0, SV("abcdefghij"), 0, 1, -1);
+ test(S("abcdefghij"), 1, 0, SV("abcdefghij"), 0, 5, -5);
+ test(S("abcdefghij"), 1, 0, SV("abcdefghij"), 0, 9, -9);
+ test(S("abcdefghij"), 1, 0, SV("abcdefghij"), 0, 10, -10);
+ test(S("abcdefghij"), 1, 0, SV("abcdefghij"), 0, 11, -10);
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test24()
-{
- test(S("abcdefghij"), 1, 0, SV("abcdefghij"), 1, 0, 0);
- test(S("abcdefghij"), 1, 0, SV("abcdefghij"), 1, 1, -1);
- test(S("abcdefghij"), 1, 0, SV("abcdefghij"), 1, 4, -4);
- test(S("abcdefghij"), 1, 0, SV("abcdefghij"), 1, 8, -8);
- test(S("abcdefghij"), 1, 0, SV("abcdefghij"), 1, 9, -9);
- test(S("abcdefghij"), 1, 0, SV("abcdefghij"), 1, 10, -9);
- test(S("abcdefghij"), 1, 0, SV("abcdefghij"), 5, 0, 0);
- test(S("abcdefghij"), 1, 0, SV("abcdefghij"), 5, 1, -1);
- test(S("abcdefghij"), 1, 0, SV("abcdefghij"), 5, 2, -2);
- test(S("abcdefghij"), 1, 0, SV("abcdefghij"), 5, 4, -4);
- test(S("abcdefghij"), 1, 0, SV("abcdefghij"), 5, 5, -5);
- test(S("abcdefghij"), 1, 0, SV("abcdefghij"), 5, 6, -5);
- test(S("abcdefghij"), 1, 0, SV("abcdefghij"), 9, 0, 0);
- test(S("abcdefghij"), 1, 0, SV("abcdefghij"), 9, 1, -1);
- test(S("abcdefghij"), 1, 0, SV("abcdefghij"), 9, 2, -1);
- test(S("abcdefghij"), 1, 0, SV("abcdefghij"), 10, 0, 0);
- test(S("abcdefghij"), 1, 0, SV("abcdefghij"), 10, 1, 0);
- test(S("abcdefghij"), 1, 0, SV("abcdefghij"), 11, 0, 0);
- test(S("abcdefghij"), 1, 0, SV("abcdefghijklmnopqrst"), 0, 0, 0);
- test(S("abcdefghij"), 1, 0, SV("abcdefghijklmnopqrst"), 0, 1, -1);
- test(S("abcdefghij"), 1, 0, SV("abcdefghijklmnopqrst"), 0, 10, -10);
- test(S("abcdefghij"), 1, 0, SV("abcdefghijklmnopqrst"), 0, 19, -19);
- test(S("abcdefghij"), 1, 0, SV("abcdefghijklmnopqrst"), 0, 20, -20);
- test(S("abcdefghij"), 1, 0, SV("abcdefghijklmnopqrst"), 0, 21, -20);
- test(S("abcdefghij"), 1, 0, SV("abcdefghijklmnopqrst"), 1, 0, 0);
- test(S("abcdefghij"), 1, 0, SV("abcdefghijklmnopqrst"), 1, 1, -1);
- test(S("abcdefghij"), 1, 0, SV("abcdefghijklmnopqrst"), 1, 9, -9);
- test(S("abcdefghij"), 1, 0, SV("abcdefghijklmnopqrst"), 1, 18, -18);
- test(S("abcdefghij"), 1, 0, SV("abcdefghijklmnopqrst"), 1, 19, -19);
- test(S("abcdefghij"), 1, 0, SV("abcdefghijklmnopqrst"), 1, 20, -19);
- test(S("abcdefghij"), 1, 0, SV("abcdefghijklmnopqrst"), 10, 0, 0);
- test(S("abcdefghij"), 1, 0, SV("abcdefghijklmnopqrst"), 10, 1, -1);
- test(S("abcdefghij"), 1, 0, SV("abcdefghijklmnopqrst"), 10, 5, -5);
- test(S("abcdefghij"), 1, 0, SV("abcdefghijklmnopqrst"), 10, 9, -9);
- test(S("abcdefghij"), 1, 0, SV("abcdefghijklmnopqrst"), 10, 10, -10);
- test(S("abcdefghij"), 1, 0, SV("abcdefghijklmnopqrst"), 10, 11, -10);
- test(S("abcdefghij"), 1, 0, SV("abcdefghijklmnopqrst"), 19, 0, 0);
- test(S("abcdefghij"), 1, 0, SV("abcdefghijklmnopqrst"), 19, 1, -1);
- test(S("abcdefghij"), 1, 0, SV("abcdefghijklmnopqrst"), 19, 2, -1);
- test(S("abcdefghij"), 1, 0, SV("abcdefghijklmnopqrst"), 20, 0, 0);
- test(S("abcdefghij"), 1, 0, SV("abcdefghijklmnopqrst"), 20, 1, 0);
- test(S("abcdefghij"), 1, 0, SV("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghij"), 1, 1, SV(""), 0, 0, 1);
- test(S("abcdefghij"), 1, 1, SV(""), 0, 1, 1);
- test(S("abcdefghij"), 1, 1, SV(""), 1, 0, 0);
- test(S("abcdefghij"), 1, 1, SV("abcde"), 0, 0, 1);
- test(S("abcdefghij"), 1, 1, SV("abcde"), 0, 1, 1);
- test(S("abcdefghij"), 1, 1, SV("abcde"), 0, 2, 1);
- test(S("abcdefghij"), 1, 1, SV("abcde"), 0, 4, 1);
- test(S("abcdefghij"), 1, 1, SV("abcde"), 0, 5, 1);
- test(S("abcdefghij"), 1, 1, SV("abcde"), 0, 6, 1);
- test(S("abcdefghij"), 1, 1, SV("abcde"), 1, 0, 1);
- test(S("abcdefghij"), 1, 1, SV("abcde"), 1, 1, 0);
- test(S("abcdefghij"), 1, 1, SV("abcde"), 1, 2, -1);
- test(S("abcdefghij"), 1, 1, SV("abcde"), 1, 3, -2);
- test(S("abcdefghij"), 1, 1, SV("abcde"), 1, 4, -3);
- test(S("abcdefghij"), 1, 1, SV("abcde"), 1, 5, -3);
- test(S("abcdefghij"), 1, 1, SV("abcde"), 2, 0, 1);
- test(S("abcdefghij"), 1, 1, SV("abcde"), 2, 1, -1);
- test(S("abcdefghij"), 1, 1, SV("abcde"), 2, 2, -1);
- test(S("abcdefghij"), 1, 1, SV("abcde"), 2, 3, -1);
- test(S("abcdefghij"), 1, 1, SV("abcde"), 2, 4, -1);
- test(S("abcdefghij"), 1, 1, SV("abcde"), 4, 0, 1);
- test(S("abcdefghij"), 1, 1, SV("abcde"), 4, 1, -3);
- test(S("abcdefghij"), 1, 1, SV("abcde"), 4, 2, -3);
- test(S("abcdefghij"), 1, 1, SV("abcde"), 5, 0, 1);
- test(S("abcdefghij"), 1, 1, SV("abcde"), 5, 1, 1);
- test(S("abcdefghij"), 1, 1, SV("abcde"), 6, 0, 0);
- test(S("abcdefghij"), 1, 1, SV("abcdefghij"), 0, 0, 1);
- test(S("abcdefghij"), 1, 1, SV("abcdefghij"), 0, 1, 1);
- test(S("abcdefghij"), 1, 1, SV("abcdefghij"), 0, 5, 1);
- test(S("abcdefghij"), 1, 1, SV("abcdefghij"), 0, 9, 1);
- test(S("abcdefghij"), 1, 1, SV("abcdefghij"), 0, 10, 1);
- test(S("abcdefghij"), 1, 1, SV("abcdefghij"), 0, 11, 1);
- test(S("abcdefghij"), 1, 1, SV("abcdefghij"), 1, 0, 1);
- test(S("abcdefghij"), 1, 1, SV("abcdefghij"), 1, 1, 0);
- test(S("abcdefghij"), 1, 1, SV("abcdefghij"), 1, 4, -3);
- test(S("abcdefghij"), 1, 1, SV("abcdefghij"), 1, 8, -7);
- test(S("abcdefghij"), 1, 1, SV("abcdefghij"), 1, 9, -8);
- test(S("abcdefghij"), 1, 1, SV("abcdefghij"), 1, 10, -8);
- test(S("abcdefghij"), 1, 1, SV("abcdefghij"), 5, 0, 1);
- test(S("abcdefghij"), 1, 1, SV("abcdefghij"), 5, 1, -4);
- test(S("abcdefghij"), 1, 1, SV("abcdefghij"), 5, 2, -4);
- test(S("abcdefghij"), 1, 1, SV("abcdefghij"), 5, 4, -4);
- test(S("abcdefghij"), 1, 1, SV("abcdefghij"), 5, 5, -4);
- test(S("abcdefghij"), 1, 1, SV("abcdefghij"), 5, 6, -4);
- test(S("abcdefghij"), 1, 1, SV("abcdefghij"), 9, 0, 1);
- test(S("abcdefghij"), 1, 1, SV("abcdefghij"), 9, 1, -8);
- test(S("abcdefghij"), 1, 1, SV("abcdefghij"), 9, 2, -8);
- test(S("abcdefghij"), 1, 1, SV("abcdefghij"), 10, 0, 1);
- test(S("abcdefghij"), 1, 1, SV("abcdefghij"), 10, 1, 1);
- test(S("abcdefghij"), 1, 1, SV("abcdefghij"), 11, 0, 0);
- test(S("abcdefghij"), 1, 1, SV("abcdefghijklmnopqrst"), 0, 0, 1);
- test(S("abcdefghij"), 1, 1, SV("abcdefghijklmnopqrst"), 0, 1, 1);
- test(S("abcdefghij"), 1, 1, SV("abcdefghijklmnopqrst"), 0, 10, 1);
- test(S("abcdefghij"), 1, 1, SV("abcdefghijklmnopqrst"), 0, 19, 1);
- test(S("abcdefghij"), 1, 1, SV("abcdefghijklmnopqrst"), 0, 20, 1);
- test(S("abcdefghij"), 1, 1, SV("abcdefghijklmnopqrst"), 0, 21, 1);
- test(S("abcdefghij"), 1, 1, SV("abcdefghijklmnopqrst"), 1, 0, 1);
- test(S("abcdefghij"), 1, 1, SV("abcdefghijklmnopqrst"), 1, 1, 0);
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test24() {
+ test(S("abcdefghij"), 1, 0, SV("abcdefghij"), 1, 0, 0);
+ test(S("abcdefghij"), 1, 0, SV("abcdefghij"), 1, 1, -1);
+ test(S("abcdefghij"), 1, 0, SV("abcdefghij"), 1, 4, -4);
+ test(S("abcdefghij"), 1, 0, SV("abcdefghij"), 1, 8, -8);
+ test(S("abcdefghij"), 1, 0, SV("abcdefghij"), 1, 9, -9);
+ test(S("abcdefghij"), 1, 0, SV("abcdefghij"), 1, 10, -9);
+ test(S("abcdefghij"), 1, 0, SV("abcdefghij"), 5, 0, 0);
+ test(S("abcdefghij"), 1, 0, SV("abcdefghij"), 5, 1, -1);
+ test(S("abcdefghij"), 1, 0, SV("abcdefghij"), 5, 2, -2);
+ test(S("abcdefghij"), 1, 0, SV("abcdefghij"), 5, 4, -4);
+ test(S("abcdefghij"), 1, 0, SV("abcdefghij"), 5, 5, -5);
+ test(S("abcdefghij"), 1, 0, SV("abcdefghij"), 5, 6, -5);
+ test(S("abcdefghij"), 1, 0, SV("abcdefghij"), 9, 0, 0);
+ test(S("abcdefghij"), 1, 0, SV("abcdefghij"), 9, 1, -1);
+ test(S("abcdefghij"), 1, 0, SV("abcdefghij"), 9, 2, -1);
+ test(S("abcdefghij"), 1, 0, SV("abcdefghij"), 10, 0, 0);
+ test(S("abcdefghij"), 1, 0, SV("abcdefghij"), 10, 1, 0);
+ test(S("abcdefghij"), 1, 0, SV("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghij"), 1, 0, SV("abcdefghijklmnopqrst"), 0, 0, 0);
+ test(S("abcdefghij"), 1, 0, SV("abcdefghijklmnopqrst"), 0, 1, -1);
+ test(S("abcdefghij"), 1, 0, SV("abcdefghijklmnopqrst"), 0, 10, -10);
+ test(S("abcdefghij"), 1, 0, SV("abcdefghijklmnopqrst"), 0, 19, -19);
+ test(S("abcdefghij"), 1, 0, SV("abcdefghijklmnopqrst"), 0, 20, -20);
+ test(S("abcdefghij"), 1, 0, SV("abcdefghijklmnopqrst"), 0, 21, -20);
+ test(S("abcdefghij"), 1, 0, SV("abcdefghijklmnopqrst"), 1, 0, 0);
+ test(S("abcdefghij"), 1, 0, SV("abcdefghijklmnopqrst"), 1, 1, -1);
+ test(S("abcdefghij"), 1, 0, SV("abcdefghijklmnopqrst"), 1, 9, -9);
+ test(S("abcdefghij"), 1, 0, SV("abcdefghijklmnopqrst"), 1, 18, -18);
+ test(S("abcdefghij"), 1, 0, SV("abcdefghijklmnopqrst"), 1, 19, -19);
+ test(S("abcdefghij"), 1, 0, SV("abcdefghijklmnopqrst"), 1, 20, -19);
+ test(S("abcdefghij"), 1, 0, SV("abcdefghijklmnopqrst"), 10, 0, 0);
+ test(S("abcdefghij"), 1, 0, SV("abcdefghijklmnopqrst"), 10, 1, -1);
+ test(S("abcdefghij"), 1, 0, SV("abcdefghijklmnopqrst"), 10, 5, -5);
+ test(S("abcdefghij"), 1, 0, SV("abcdefghijklmnopqrst"), 10, 9, -9);
+ test(S("abcdefghij"), 1, 0, SV("abcdefghijklmnopqrst"), 10, 10, -10);
+ test(S("abcdefghij"), 1, 0, SV("abcdefghijklmnopqrst"), 10, 11, -10);
+ test(S("abcdefghij"), 1, 0, SV("abcdefghijklmnopqrst"), 19, 0, 0);
+ test(S("abcdefghij"), 1, 0, SV("abcdefghijklmnopqrst"), 19, 1, -1);
+ test(S("abcdefghij"), 1, 0, SV("abcdefghijklmnopqrst"), 19, 2, -1);
+ test(S("abcdefghij"), 1, 0, SV("abcdefghijklmnopqrst"), 20, 0, 0);
+ test(S("abcdefghij"), 1, 0, SV("abcdefghijklmnopqrst"), 20, 1, 0);
+ test(S("abcdefghij"), 1, 0, SV("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghij"), 1, 1, SV(""), 0, 0, 1);
+ test(S("abcdefghij"), 1, 1, SV(""), 0, 1, 1);
+ test(S("abcdefghij"), 1, 1, SV(""), 1, 0, 0);
+ test(S("abcdefghij"), 1, 1, SV("abcde"), 0, 0, 1);
+ test(S("abcdefghij"), 1, 1, SV("abcde"), 0, 1, 1);
+ test(S("abcdefghij"), 1, 1, SV("abcde"), 0, 2, 1);
+ test(S("abcdefghij"), 1, 1, SV("abcde"), 0, 4, 1);
+ test(S("abcdefghij"), 1, 1, SV("abcde"), 0, 5, 1);
+ test(S("abcdefghij"), 1, 1, SV("abcde"), 0, 6, 1);
+ test(S("abcdefghij"), 1, 1, SV("abcde"), 1, 0, 1);
+ test(S("abcdefghij"), 1, 1, SV("abcde"), 1, 1, 0);
+ test(S("abcdefghij"), 1, 1, SV("abcde"), 1, 2, -1);
+ test(S("abcdefghij"), 1, 1, SV("abcde"), 1, 3, -2);
+ test(S("abcdefghij"), 1, 1, SV("abcde"), 1, 4, -3);
+ test(S("abcdefghij"), 1, 1, SV("abcde"), 1, 5, -3);
+ test(S("abcdefghij"), 1, 1, SV("abcde"), 2, 0, 1);
+ test(S("abcdefghij"), 1, 1, SV("abcde"), 2, 1, -1);
+ test(S("abcdefghij"), 1, 1, SV("abcde"), 2, 2, -1);
+ test(S("abcdefghij"), 1, 1, SV("abcde"), 2, 3, -1);
+ test(S("abcdefghij"), 1, 1, SV("abcde"), 2, 4, -1);
+ test(S("abcdefghij"), 1, 1, SV("abcde"), 4, 0, 1);
+ test(S("abcdefghij"), 1, 1, SV("abcde"), 4, 1, -3);
+ test(S("abcdefghij"), 1, 1, SV("abcde"), 4, 2, -3);
+ test(S("abcdefghij"), 1, 1, SV("abcde"), 5, 0, 1);
+ test(S("abcdefghij"), 1, 1, SV("abcde"), 5, 1, 1);
+ test(S("abcdefghij"), 1, 1, SV("abcde"), 6, 0, 0);
+ test(S("abcdefghij"), 1, 1, SV("abcdefghij"), 0, 0, 1);
+ test(S("abcdefghij"), 1, 1, SV("abcdefghij"), 0, 1, 1);
+ test(S("abcdefghij"), 1, 1, SV("abcdefghij"), 0, 5, 1);
+ test(S("abcdefghij"), 1, 1, SV("abcdefghij"), 0, 9, 1);
+ test(S("abcdefghij"), 1, 1, SV("abcdefghij"), 0, 10, 1);
+ test(S("abcdefghij"), 1, 1, SV("abcdefghij"), 0, 11, 1);
+ test(S("abcdefghij"), 1, 1, SV("abcdefghij"), 1, 0, 1);
+ test(S("abcdefghij"), 1, 1, SV("abcdefghij"), 1, 1, 0);
+ test(S("abcdefghij"), 1, 1, SV("abcdefghij"), 1, 4, -3);
+ test(S("abcdefghij"), 1, 1, SV("abcdefghij"), 1, 8, -7);
+ test(S("abcdefghij"), 1, 1, SV("abcdefghij"), 1, 9, -8);
+ test(S("abcdefghij"), 1, 1, SV("abcdefghij"), 1, 10, -8);
+ test(S("abcdefghij"), 1, 1, SV("abcdefghij"), 5, 0, 1);
+ test(S("abcdefghij"), 1, 1, SV("abcdefghij"), 5, 1, -4);
+ test(S("abcdefghij"), 1, 1, SV("abcdefghij"), 5, 2, -4);
+ test(S("abcdefghij"), 1, 1, SV("abcdefghij"), 5, 4, -4);
+ test(S("abcdefghij"), 1, 1, SV("abcdefghij"), 5, 5, -4);
+ test(S("abcdefghij"), 1, 1, SV("abcdefghij"), 5, 6, -4);
+ test(S("abcdefghij"), 1, 1, SV("abcdefghij"), 9, 0, 1);
+ test(S("abcdefghij"), 1, 1, SV("abcdefghij"), 9, 1, -8);
+ test(S("abcdefghij"), 1, 1, SV("abcdefghij"), 9, 2, -8);
+ test(S("abcdefghij"), 1, 1, SV("abcdefghij"), 10, 0, 1);
+ test(S("abcdefghij"), 1, 1, SV("abcdefghij"), 10, 1, 1);
+ test(S("abcdefghij"), 1, 1, SV("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghij"), 1, 1, SV("abcdefghijklmnopqrst"), 0, 0, 1);
+ test(S("abcdefghij"), 1, 1, SV("abcdefghijklmnopqrst"), 0, 1, 1);
+ test(S("abcdefghij"), 1, 1, SV("abcdefghijklmnopqrst"), 0, 10, 1);
+ test(S("abcdefghij"), 1, 1, SV("abcdefghijklmnopqrst"), 0, 19, 1);
+ test(S("abcdefghij"), 1, 1, SV("abcdefghijklmnopqrst"), 0, 20, 1);
+ test(S("abcdefghij"), 1, 1, SV("abcdefghijklmnopqrst"), 0, 21, 1);
+ test(S("abcdefghij"), 1, 1, SV("abcdefghijklmnopqrst"), 1, 0, 1);
+ test(S("abcdefghij"), 1, 1, SV("abcdefghijklmnopqrst"), 1, 1, 0);
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test25()
-{
- test(S("abcdefghij"), 1, 1, SV("abcdefghijklmnopqrst"), 1, 9, -8);
- test(S("abcdefghij"), 1, 1, SV("abcdefghijklmnopqrst"), 1, 18, -17);
- test(S("abcdefghij"), 1, 1, SV("abcdefghijklmnopqrst"), 1, 19, -18);
- test(S("abcdefghij"), 1, 1, SV("abcdefghijklmnopqrst"), 1, 20, -18);
- test(S("abcdefghij"), 1, 1, SV("abcdefghijklmnopqrst"), 10, 0, 1);
- test(S("abcdefghij"), 1, 1, SV("abcdefghijklmnopqrst"), 10, 1, -9);
- test(S("abcdefghij"), 1, 1, SV("abcdefghijklmnopqrst"), 10, 5, -9);
- test(S("abcdefghij"), 1, 1, SV("abcdefghijklmnopqrst"), 10, 9, -9);
- test(S("abcdefghij"), 1, 1, SV("abcdefghijklmnopqrst"), 10, 10, -9);
- test(S("abcdefghij"), 1, 1, SV("abcdefghijklmnopqrst"), 10, 11, -9);
- test(S("abcdefghij"), 1, 1, SV("abcdefghijklmnopqrst"), 19, 0, 1);
- test(S("abcdefghij"), 1, 1, SV("abcdefghijklmnopqrst"), 19, 1, -18);
- test(S("abcdefghij"), 1, 1, SV("abcdefghijklmnopqrst"), 19, 2, -18);
- test(S("abcdefghij"), 1, 1, SV("abcdefghijklmnopqrst"), 20, 0, 1);
- test(S("abcdefghij"), 1, 1, SV("abcdefghijklmnopqrst"), 20, 1, 1);
- test(S("abcdefghij"), 1, 1, SV("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghij"), 1, 4, SV(""), 0, 0, 4);
- test(S("abcdefghij"), 1, 4, SV(""), 0, 1, 4);
- test(S("abcdefghij"), 1, 4, SV(""), 1, 0, 0);
- test(S("abcdefghij"), 1, 4, SV("abcde"), 0, 0, 4);
- test(S("abcdefghij"), 1, 4, SV("abcde"), 0, 1, 1);
- test(S("abcdefghij"), 1, 4, SV("abcde"), 0, 2, 1);
- test(S("abcdefghij"), 1, 4, SV("abcde"), 0, 4, 1);
- test(S("abcdefghij"), 1, 4, SV("abcde"), 0, 5, 1);
- test(S("abcdefghij"), 1, 4, SV("abcde"), 0, 6, 1);
- test(S("abcdefghij"), 1, 4, SV("abcde"), 1, 0, 4);
- test(S("abcdefghij"), 1, 4, SV("abcde"), 1, 1, 3);
- test(S("abcdefghij"), 1, 4, SV("abcde"), 1, 2, 2);
- test(S("abcdefghij"), 1, 4, SV("abcde"), 1, 3, 1);
- test(S("abcdefghij"), 1, 4, SV("abcde"), 1, 4, 0);
- test(S("abcdefghij"), 1, 4, SV("abcde"), 1, 5, 0);
- test(S("abcdefghij"), 1, 4, SV("abcde"), 2, 0, 4);
- test(S("abcdefghij"), 1, 4, SV("abcde"), 2, 1, -1);
- test(S("abcdefghij"), 1, 4, SV("abcde"), 2, 2, -1);
- test(S("abcdefghij"), 1, 4, SV("abcde"), 2, 3, -1);
- test(S("abcdefghij"), 1, 4, SV("abcde"), 2, 4, -1);
- test(S("abcdefghij"), 1, 4, SV("abcde"), 4, 0, 4);
- test(S("abcdefghij"), 1, 4, SV("abcde"), 4, 1, -3);
- test(S("abcdefghij"), 1, 4, SV("abcde"), 4, 2, -3);
- test(S("abcdefghij"), 1, 4, SV("abcde"), 5, 0, 4);
- test(S("abcdefghij"), 1, 4, SV("abcde"), 5, 1, 4);
- test(S("abcdefghij"), 1, 4, SV("abcde"), 6, 0, 0);
- test(S("abcdefghij"), 1, 4, SV("abcdefghij"), 0, 0, 4);
- test(S("abcdefghij"), 1, 4, SV("abcdefghij"), 0, 1, 1);
- test(S("abcdefghij"), 1, 4, SV("abcdefghij"), 0, 5, 1);
- test(S("abcdefghij"), 1, 4, SV("abcdefghij"), 0, 9, 1);
- test(S("abcdefghij"), 1, 4, SV("abcdefghij"), 0, 10, 1);
- test(S("abcdefghij"), 1, 4, SV("abcdefghij"), 0, 11, 1);
- test(S("abcdefghij"), 1, 4, SV("abcdefghij"), 1, 0, 4);
- test(S("abcdefghij"), 1, 4, SV("abcdefghij"), 1, 1, 3);
- test(S("abcdefghij"), 1, 4, SV("abcdefghij"), 1, 4, 0);
- test(S("abcdefghij"), 1, 4, SV("abcdefghij"), 1, 8, -4);
- test(S("abcdefghij"), 1, 4, SV("abcdefghij"), 1, 9, -5);
- test(S("abcdefghij"), 1, 4, SV("abcdefghij"), 1, 10, -5);
- test(S("abcdefghij"), 1, 4, SV("abcdefghij"), 5, 0, 4);
- test(S("abcdefghij"), 1, 4, SV("abcdefghij"), 5, 1, -4);
- test(S("abcdefghij"), 1, 4, SV("abcdefghij"), 5, 2, -4);
- test(S("abcdefghij"), 1, 4, SV("abcdefghij"), 5, 4, -4);
- test(S("abcdefghij"), 1, 4, SV("abcdefghij"), 5, 5, -4);
- test(S("abcdefghij"), 1, 4, SV("abcdefghij"), 5, 6, -4);
- test(S("abcdefghij"), 1, 4, SV("abcdefghij"), 9, 0, 4);
- test(S("abcdefghij"), 1, 4, SV("abcdefghij"), 9, 1, -8);
- test(S("abcdefghij"), 1, 4, SV("abcdefghij"), 9, 2, -8);
- test(S("abcdefghij"), 1, 4, SV("abcdefghij"), 10, 0, 4);
- test(S("abcdefghij"), 1, 4, SV("abcdefghij"), 10, 1, 4);
- test(S("abcdefghij"), 1, 4, SV("abcdefghij"), 11, 0, 0);
- test(S("abcdefghij"), 1, 4, SV("abcdefghijklmnopqrst"), 0, 0, 4);
- test(S("abcdefghij"), 1, 4, SV("abcdefghijklmnopqrst"), 0, 1, 1);
- test(S("abcdefghij"), 1, 4, SV("abcdefghijklmnopqrst"), 0, 10, 1);
- test(S("abcdefghij"), 1, 4, SV("abcdefghijklmnopqrst"), 0, 19, 1);
- test(S("abcdefghij"), 1, 4, SV("abcdefghijklmnopqrst"), 0, 20, 1);
- test(S("abcdefghij"), 1, 4, SV("abcdefghijklmnopqrst"), 0, 21, 1);
- test(S("abcdefghij"), 1, 4, SV("abcdefghijklmnopqrst"), 1, 0, 4);
- test(S("abcdefghij"), 1, 4, SV("abcdefghijklmnopqrst"), 1, 1, 3);
- test(S("abcdefghij"), 1, 4, SV("abcdefghijklmnopqrst"), 1, 9, -5);
- test(S("abcdefghij"), 1, 4, SV("abcdefghijklmnopqrst"), 1, 18, -14);
- test(S("abcdefghij"), 1, 4, SV("abcdefghijklmnopqrst"), 1, 19, -15);
- test(S("abcdefghij"), 1, 4, SV("abcdefghijklmnopqrst"), 1, 20, -15);
- test(S("abcdefghij"), 1, 4, SV("abcdefghijklmnopqrst"), 10, 0, 4);
- test(S("abcdefghij"), 1, 4, SV("abcdefghijklmnopqrst"), 10, 1, -9);
- test(S("abcdefghij"), 1, 4, SV("abcdefghijklmnopqrst"), 10, 5, -9);
- test(S("abcdefghij"), 1, 4, SV("abcdefghijklmnopqrst"), 10, 9, -9);
- test(S("abcdefghij"), 1, 4, SV("abcdefghijklmnopqrst"), 10, 10, -9);
- test(S("abcdefghij"), 1, 4, SV("abcdefghijklmnopqrst"), 10, 11, -9);
- test(S("abcdefghij"), 1, 4, SV("abcdefghijklmnopqrst"), 19, 0, 4);
- test(S("abcdefghij"), 1, 4, SV("abcdefghijklmnopqrst"), 19, 1, -18);
- test(S("abcdefghij"), 1, 4, SV("abcdefghijklmnopqrst"), 19, 2, -18);
- test(S("abcdefghij"), 1, 4, SV("abcdefghijklmnopqrst"), 20, 0, 4);
- test(S("abcdefghij"), 1, 4, SV("abcdefghijklmnopqrst"), 20, 1, 4);
- test(S("abcdefghij"), 1, 4, SV("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghij"), 1, 8, SV(""), 0, 0, 8);
- test(S("abcdefghij"), 1, 8, SV(""), 0, 1, 8);
- test(S("abcdefghij"), 1, 8, SV(""), 1, 0, 0);
- test(S("abcdefghij"), 1, 8, SV("abcde"), 0, 0, 8);
- test(S("abcdefghij"), 1, 8, SV("abcde"), 0, 1, 1);
- test(S("abcdefghij"), 1, 8, SV("abcde"), 0, 2, 1);
- test(S("abcdefghij"), 1, 8, SV("abcde"), 0, 4, 1);
- test(S("abcdefghij"), 1, 8, SV("abcde"), 0, 5, 1);
- test(S("abcdefghij"), 1, 8, SV("abcde"), 0, 6, 1);
- test(S("abcdefghij"), 1, 8, SV("abcde"), 1, 0, 8);
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test25() {
+ test(S("abcdefghij"), 1, 1, SV("abcdefghijklmnopqrst"), 1, 9, -8);
+ test(S("abcdefghij"), 1, 1, SV("abcdefghijklmnopqrst"), 1, 18, -17);
+ test(S("abcdefghij"), 1, 1, SV("abcdefghijklmnopqrst"), 1, 19, -18);
+ test(S("abcdefghij"), 1, 1, SV("abcdefghijklmnopqrst"), 1, 20, -18);
+ test(S("abcdefghij"), 1, 1, SV("abcdefghijklmnopqrst"), 10, 0, 1);
+ test(S("abcdefghij"), 1, 1, SV("abcdefghijklmnopqrst"), 10, 1, -9);
+ test(S("abcdefghij"), 1, 1, SV("abcdefghijklmnopqrst"), 10, 5, -9);
+ test(S("abcdefghij"), 1, 1, SV("abcdefghijklmnopqrst"), 10, 9, -9);
+ test(S("abcdefghij"), 1, 1, SV("abcdefghijklmnopqrst"), 10, 10, -9);
+ test(S("abcdefghij"), 1, 1, SV("abcdefghijklmnopqrst"), 10, 11, -9);
+ test(S("abcdefghij"), 1, 1, SV("abcdefghijklmnopqrst"), 19, 0, 1);
+ test(S("abcdefghij"), 1, 1, SV("abcdefghijklmnopqrst"), 19, 1, -18);
+ test(S("abcdefghij"), 1, 1, SV("abcdefghijklmnopqrst"), 19, 2, -18);
+ test(S("abcdefghij"), 1, 1, SV("abcdefghijklmnopqrst"), 20, 0, 1);
+ test(S("abcdefghij"), 1, 1, SV("abcdefghijklmnopqrst"), 20, 1, 1);
+ test(S("abcdefghij"), 1, 1, SV("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghij"), 1, 4, SV(""), 0, 0, 4);
+ test(S("abcdefghij"), 1, 4, SV(""), 0, 1, 4);
+ test(S("abcdefghij"), 1, 4, SV(""), 1, 0, 0);
+ test(S("abcdefghij"), 1, 4, SV("abcde"), 0, 0, 4);
+ test(S("abcdefghij"), 1, 4, SV("abcde"), 0, 1, 1);
+ test(S("abcdefghij"), 1, 4, SV("abcde"), 0, 2, 1);
+ test(S("abcdefghij"), 1, 4, SV("abcde"), 0, 4, 1);
+ test(S("abcdefghij"), 1, 4, SV("abcde"), 0, 5, 1);
+ test(S("abcdefghij"), 1, 4, SV("abcde"), 0, 6, 1);
+ test(S("abcdefghij"), 1, 4, SV("abcde"), 1, 0, 4);
+ test(S("abcdefghij"), 1, 4, SV("abcde"), 1, 1, 3);
+ test(S("abcdefghij"), 1, 4, SV("abcde"), 1, 2, 2);
+ test(S("abcdefghij"), 1, 4, SV("abcde"), 1, 3, 1);
+ test(S("abcdefghij"), 1, 4, SV("abcde"), 1, 4, 0);
+ test(S("abcdefghij"), 1, 4, SV("abcde"), 1, 5, 0);
+ test(S("abcdefghij"), 1, 4, SV("abcde"), 2, 0, 4);
+ test(S("abcdefghij"), 1, 4, SV("abcde"), 2, 1, -1);
+ test(S("abcdefghij"), 1, 4, SV("abcde"), 2, 2, -1);
+ test(S("abcdefghij"), 1, 4, SV("abcde"), 2, 3, -1);
+ test(S("abcdefghij"), 1, 4, SV("abcde"), 2, 4, -1);
+ test(S("abcdefghij"), 1, 4, SV("abcde"), 4, 0, 4);
+ test(S("abcdefghij"), 1, 4, SV("abcde"), 4, 1, -3);
+ test(S("abcdefghij"), 1, 4, SV("abcde"), 4, 2, -3);
+ test(S("abcdefghij"), 1, 4, SV("abcde"), 5, 0, 4);
+ test(S("abcdefghij"), 1, 4, SV("abcde"), 5, 1, 4);
+ test(S("abcdefghij"), 1, 4, SV("abcde"), 6, 0, 0);
+ test(S("abcdefghij"), 1, 4, SV("abcdefghij"), 0, 0, 4);
+ test(S("abcdefghij"), 1, 4, SV("abcdefghij"), 0, 1, 1);
+ test(S("abcdefghij"), 1, 4, SV("abcdefghij"), 0, 5, 1);
+ test(S("abcdefghij"), 1, 4, SV("abcdefghij"), 0, 9, 1);
+ test(S("abcdefghij"), 1, 4, SV("abcdefghij"), 0, 10, 1);
+ test(S("abcdefghij"), 1, 4, SV("abcdefghij"), 0, 11, 1);
+ test(S("abcdefghij"), 1, 4, SV("abcdefghij"), 1, 0, 4);
+ test(S("abcdefghij"), 1, 4, SV("abcdefghij"), 1, 1, 3);
+ test(S("abcdefghij"), 1, 4, SV("abcdefghij"), 1, 4, 0);
+ test(S("abcdefghij"), 1, 4, SV("abcdefghij"), 1, 8, -4);
+ test(S("abcdefghij"), 1, 4, SV("abcdefghij"), 1, 9, -5);
+ test(S("abcdefghij"), 1, 4, SV("abcdefghij"), 1, 10, -5);
+ test(S("abcdefghij"), 1, 4, SV("abcdefghij"), 5, 0, 4);
+ test(S("abcdefghij"), 1, 4, SV("abcdefghij"), 5, 1, -4);
+ test(S("abcdefghij"), 1, 4, SV("abcdefghij"), 5, 2, -4);
+ test(S("abcdefghij"), 1, 4, SV("abcdefghij"), 5, 4, -4);
+ test(S("abcdefghij"), 1, 4, SV("abcdefghij"), 5, 5, -4);
+ test(S("abcdefghij"), 1, 4, SV("abcdefghij"), 5, 6, -4);
+ test(S("abcdefghij"), 1, 4, SV("abcdefghij"), 9, 0, 4);
+ test(S("abcdefghij"), 1, 4, SV("abcdefghij"), 9, 1, -8);
+ test(S("abcdefghij"), 1, 4, SV("abcdefghij"), 9, 2, -8);
+ test(S("abcdefghij"), 1, 4, SV("abcdefghij"), 10, 0, 4);
+ test(S("abcdefghij"), 1, 4, SV("abcdefghij"), 10, 1, 4);
+ test(S("abcdefghij"), 1, 4, SV("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghij"), 1, 4, SV("abcdefghijklmnopqrst"), 0, 0, 4);
+ test(S("abcdefghij"), 1, 4, SV("abcdefghijklmnopqrst"), 0, 1, 1);
+ test(S("abcdefghij"), 1, 4, SV("abcdefghijklmnopqrst"), 0, 10, 1);
+ test(S("abcdefghij"), 1, 4, SV("abcdefghijklmnopqrst"), 0, 19, 1);
+ test(S("abcdefghij"), 1, 4, SV("abcdefghijklmnopqrst"), 0, 20, 1);
+ test(S("abcdefghij"), 1, 4, SV("abcdefghijklmnopqrst"), 0, 21, 1);
+ test(S("abcdefghij"), 1, 4, SV("abcdefghijklmnopqrst"), 1, 0, 4);
+ test(S("abcdefghij"), 1, 4, SV("abcdefghijklmnopqrst"), 1, 1, 3);
+ test(S("abcdefghij"), 1, 4, SV("abcdefghijklmnopqrst"), 1, 9, -5);
+ test(S("abcdefghij"), 1, 4, SV("abcdefghijklmnopqrst"), 1, 18, -14);
+ test(S("abcdefghij"), 1, 4, SV("abcdefghijklmnopqrst"), 1, 19, -15);
+ test(S("abcdefghij"), 1, 4, SV("abcdefghijklmnopqrst"), 1, 20, -15);
+ test(S("abcdefghij"), 1, 4, SV("abcdefghijklmnopqrst"), 10, 0, 4);
+ test(S("abcdefghij"), 1, 4, SV("abcdefghijklmnopqrst"), 10, 1, -9);
+ test(S("abcdefghij"), 1, 4, SV("abcdefghijklmnopqrst"), 10, 5, -9);
+ test(S("abcdefghij"), 1, 4, SV("abcdefghijklmnopqrst"), 10, 9, -9);
+ test(S("abcdefghij"), 1, 4, SV("abcdefghijklmnopqrst"), 10, 10, -9);
+ test(S("abcdefghij"), 1, 4, SV("abcdefghijklmnopqrst"), 10, 11, -9);
+ test(S("abcdefghij"), 1, 4, SV("abcdefghijklmnopqrst"), 19, 0, 4);
+ test(S("abcdefghij"), 1, 4, SV("abcdefghijklmnopqrst"), 19, 1, -18);
+ test(S("abcdefghij"), 1, 4, SV("abcdefghijklmnopqrst"), 19, 2, -18);
+ test(S("abcdefghij"), 1, 4, SV("abcdefghijklmnopqrst"), 20, 0, 4);
+ test(S("abcdefghij"), 1, 4, SV("abcdefghijklmnopqrst"), 20, 1, 4);
+ test(S("abcdefghij"), 1, 4, SV("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghij"), 1, 8, SV(""), 0, 0, 8);
+ test(S("abcdefghij"), 1, 8, SV(""), 0, 1, 8);
+ test(S("abcdefghij"), 1, 8, SV(""), 1, 0, 0);
+ test(S("abcdefghij"), 1, 8, SV("abcde"), 0, 0, 8);
+ test(S("abcdefghij"), 1, 8, SV("abcde"), 0, 1, 1);
+ test(S("abcdefghij"), 1, 8, SV("abcde"), 0, 2, 1);
+ test(S("abcdefghij"), 1, 8, SV("abcde"), 0, 4, 1);
+ test(S("abcdefghij"), 1, 8, SV("abcde"), 0, 5, 1);
+ test(S("abcdefghij"), 1, 8, SV("abcde"), 0, 6, 1);
+ test(S("abcdefghij"), 1, 8, SV("abcde"), 1, 0, 8);
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test26()
-{
- test(S("abcdefghij"), 1, 8, SV("abcde"), 1, 1, 7);
- test(S("abcdefghij"), 1, 8, SV("abcde"), 1, 2, 6);
- test(S("abcdefghij"), 1, 8, SV("abcde"), 1, 3, 5);
- test(S("abcdefghij"), 1, 8, SV("abcde"), 1, 4, 4);
- test(S("abcdefghij"), 1, 8, SV("abcde"), 1, 5, 4);
- test(S("abcdefghij"), 1, 8, SV("abcde"), 2, 0, 8);
- test(S("abcdefghij"), 1, 8, SV("abcde"), 2, 1, -1);
- test(S("abcdefghij"), 1, 8, SV("abcde"), 2, 2, -1);
- test(S("abcdefghij"), 1, 8, SV("abcde"), 2, 3, -1);
- test(S("abcdefghij"), 1, 8, SV("abcde"), 2, 4, -1);
- test(S("abcdefghij"), 1, 8, SV("abcde"), 4, 0, 8);
- test(S("abcdefghij"), 1, 8, SV("abcde"), 4, 1, -3);
- test(S("abcdefghij"), 1, 8, SV("abcde"), 4, 2, -3);
- test(S("abcdefghij"), 1, 8, SV("abcde"), 5, 0, 8);
- test(S("abcdefghij"), 1, 8, SV("abcde"), 5, 1, 8);
- test(S("abcdefghij"), 1, 8, SV("abcde"), 6, 0, 0);
- test(S("abcdefghij"), 1, 8, SV("abcdefghij"), 0, 0, 8);
- test(S("abcdefghij"), 1, 8, SV("abcdefghij"), 0, 1, 1);
- test(S("abcdefghij"), 1, 8, SV("abcdefghij"), 0, 5, 1);
- test(S("abcdefghij"), 1, 8, SV("abcdefghij"), 0, 9, 1);
- test(S("abcdefghij"), 1, 8, SV("abcdefghij"), 0, 10, 1);
- test(S("abcdefghij"), 1, 8, SV("abcdefghij"), 0, 11, 1);
- test(S("abcdefghij"), 1, 8, SV("abcdefghij"), 1, 0, 8);
- test(S("abcdefghij"), 1, 8, SV("abcdefghij"), 1, 1, 7);
- test(S("abcdefghij"), 1, 8, SV("abcdefghij"), 1, 4, 4);
- test(S("abcdefghij"), 1, 8, SV("abcdefghij"), 1, 8, 0);
- test(S("abcdefghij"), 1, 8, SV("abcdefghij"), 1, 9, -1);
- test(S("abcdefghij"), 1, 8, SV("abcdefghij"), 1, 10, -1);
- test(S("abcdefghij"), 1, 8, SV("abcdefghij"), 5, 0, 8);
- test(S("abcdefghij"), 1, 8, SV("abcdefghij"), 5, 1, -4);
- test(S("abcdefghij"), 1, 8, SV("abcdefghij"), 5, 2, -4);
- test(S("abcdefghij"), 1, 8, SV("abcdefghij"), 5, 4, -4);
- test(S("abcdefghij"), 1, 8, SV("abcdefghij"), 5, 5, -4);
- test(S("abcdefghij"), 1, 8, SV("abcdefghij"), 5, 6, -4);
- test(S("abcdefghij"), 1, 8, SV("abcdefghij"), 9, 0, 8);
- test(S("abcdefghij"), 1, 8, SV("abcdefghij"), 9, 1, -8);
- test(S("abcdefghij"), 1, 8, SV("abcdefghij"), 9, 2, -8);
- test(S("abcdefghij"), 1, 8, SV("abcdefghij"), 10, 0, 8);
- test(S("abcdefghij"), 1, 8, SV("abcdefghij"), 10, 1, 8);
- test(S("abcdefghij"), 1, 8, SV("abcdefghij"), 11, 0, 0);
- test(S("abcdefghij"), 1, 8, SV("abcdefghijklmnopqrst"), 0, 0, 8);
- test(S("abcdefghij"), 1, 8, SV("abcdefghijklmnopqrst"), 0, 1, 1);
- test(S("abcdefghij"), 1, 8, SV("abcdefghijklmnopqrst"), 0, 10, 1);
- test(S("abcdefghij"), 1, 8, SV("abcdefghijklmnopqrst"), 0, 19, 1);
- test(S("abcdefghij"), 1, 8, SV("abcdefghijklmnopqrst"), 0, 20, 1);
- test(S("abcdefghij"), 1, 8, SV("abcdefghijklmnopqrst"), 0, 21, 1);
- test(S("abcdefghij"), 1, 8, SV("abcdefghijklmnopqrst"), 1, 0, 8);
- test(S("abcdefghij"), 1, 8, SV("abcdefghijklmnopqrst"), 1, 1, 7);
- test(S("abcdefghij"), 1, 8, SV("abcdefghijklmnopqrst"), 1, 9, -1);
- test(S("abcdefghij"), 1, 8, SV("abcdefghijklmnopqrst"), 1, 18, -10);
- test(S("abcdefghij"), 1, 8, SV("abcdefghijklmnopqrst"), 1, 19, -11);
- test(S("abcdefghij"), 1, 8, SV("abcdefghijklmnopqrst"), 1, 20, -11);
- test(S("abcdefghij"), 1, 8, SV("abcdefghijklmnopqrst"), 10, 0, 8);
- test(S("abcdefghij"), 1, 8, SV("abcdefghijklmnopqrst"), 10, 1, -9);
- test(S("abcdefghij"), 1, 8, SV("abcdefghijklmnopqrst"), 10, 5, -9);
- test(S("abcdefghij"), 1, 8, SV("abcdefghijklmnopqrst"), 10, 9, -9);
- test(S("abcdefghij"), 1, 8, SV("abcdefghijklmnopqrst"), 10, 10, -9);
- test(S("abcdefghij"), 1, 8, SV("abcdefghijklmnopqrst"), 10, 11, -9);
- test(S("abcdefghij"), 1, 8, SV("abcdefghijklmnopqrst"), 19, 0, 8);
- test(S("abcdefghij"), 1, 8, SV("abcdefghijklmnopqrst"), 19, 1, -18);
- test(S("abcdefghij"), 1, 8, SV("abcdefghijklmnopqrst"), 19, 2, -18);
- test(S("abcdefghij"), 1, 8, SV("abcdefghijklmnopqrst"), 20, 0, 8);
- test(S("abcdefghij"), 1, 8, SV("abcdefghijklmnopqrst"), 20, 1, 8);
- test(S("abcdefghij"), 1, 8, SV("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghij"), 1, 9, SV(""), 0, 0, 9);
- test(S("abcdefghij"), 1, 9, SV(""), 0, 1, 9);
- test(S("abcdefghij"), 1, 9, SV(""), 1, 0, 0);
- test(S("abcdefghij"), 1, 9, SV("abcde"), 0, 0, 9);
- test(S("abcdefghij"), 1, 9, SV("abcde"), 0, 1, 1);
- test(S("abcdefghij"), 1, 9, SV("abcde"), 0, 2, 1);
- test(S("abcdefghij"), 1, 9, SV("abcde"), 0, 4, 1);
- test(S("abcdefghij"), 1, 9, SV("abcde"), 0, 5, 1);
- test(S("abcdefghij"), 1, 9, SV("abcde"), 0, 6, 1);
- test(S("abcdefghij"), 1, 9, SV("abcde"), 1, 0, 9);
- test(S("abcdefghij"), 1, 9, SV("abcde"), 1, 1, 8);
- test(S("abcdefghij"), 1, 9, SV("abcde"), 1, 2, 7);
- test(S("abcdefghij"), 1, 9, SV("abcde"), 1, 3, 6);
- test(S("abcdefghij"), 1, 9, SV("abcde"), 1, 4, 5);
- test(S("abcdefghij"), 1, 9, SV("abcde"), 1, 5, 5);
- test(S("abcdefghij"), 1, 9, SV("abcde"), 2, 0, 9);
- test(S("abcdefghij"), 1, 9, SV("abcde"), 2, 1, -1);
- test(S("abcdefghij"), 1, 9, SV("abcde"), 2, 2, -1);
- test(S("abcdefghij"), 1, 9, SV("abcde"), 2, 3, -1);
- test(S("abcdefghij"), 1, 9, SV("abcde"), 2, 4, -1);
- test(S("abcdefghij"), 1, 9, SV("abcde"), 4, 0, 9);
- test(S("abcdefghij"), 1, 9, SV("abcde"), 4, 1, -3);
- test(S("abcdefghij"), 1, 9, SV("abcde"), 4, 2, -3);
- test(S("abcdefghij"), 1, 9, SV("abcde"), 5, 0, 9);
- test(S("abcdefghij"), 1, 9, SV("abcde"), 5, 1, 9);
- test(S("abcdefghij"), 1, 9, SV("abcde"), 6, 0, 0);
- test(S("abcdefghij"), 1, 9, SV("abcdefghij"), 0, 0, 9);
- test(S("abcdefghij"), 1, 9, SV("abcdefghij"), 0, 1, 1);
- test(S("abcdefghij"), 1, 9, SV("abcdefghij"), 0, 5, 1);
- test(S("abcdefghij"), 1, 9, SV("abcdefghij"), 0, 9, 1);
- test(S("abcdefghij"), 1, 9, SV("abcdefghij"), 0, 10, 1);
- test(S("abcdefghij"), 1, 9, SV("abcdefghij"), 0, 11, 1);
- test(S("abcdefghij"), 1, 9, SV("abcdefghij"), 1, 0, 9);
- test(S("abcdefghij"), 1, 9, SV("abcdefghij"), 1, 1, 8);
- test(S("abcdefghij"), 1, 9, SV("abcdefghij"), 1, 4, 5);
- test(S("abcdefghij"), 1, 9, SV("abcdefghij"), 1, 8, 1);
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test26() {
+ test(S("abcdefghij"), 1, 8, SV("abcde"), 1, 1, 7);
+ test(S("abcdefghij"), 1, 8, SV("abcde"), 1, 2, 6);
+ test(S("abcdefghij"), 1, 8, SV("abcde"), 1, 3, 5);
+ test(S("abcdefghij"), 1, 8, SV("abcde"), 1, 4, 4);
+ test(S("abcdefghij"), 1, 8, SV("abcde"), 1, 5, 4);
+ test(S("abcdefghij"), 1, 8, SV("abcde"), 2, 0, 8);
+ test(S("abcdefghij"), 1, 8, SV("abcde"), 2, 1, -1);
+ test(S("abcdefghij"), 1, 8, SV("abcde"), 2, 2, -1);
+ test(S("abcdefghij"), 1, 8, SV("abcde"), 2, 3, -1);
+ test(S("abcdefghij"), 1, 8, SV("abcde"), 2, 4, -1);
+ test(S("abcdefghij"), 1, 8, SV("abcde"), 4, 0, 8);
+ test(S("abcdefghij"), 1, 8, SV("abcde"), 4, 1, -3);
+ test(S("abcdefghij"), 1, 8, SV("abcde"), 4, 2, -3);
+ test(S("abcdefghij"), 1, 8, SV("abcde"), 5, 0, 8);
+ test(S("abcdefghij"), 1, 8, SV("abcde"), 5, 1, 8);
+ test(S("abcdefghij"), 1, 8, SV("abcde"), 6, 0, 0);
+ test(S("abcdefghij"), 1, 8, SV("abcdefghij"), 0, 0, 8);
+ test(S("abcdefghij"), 1, 8, SV("abcdefghij"), 0, 1, 1);
+ test(S("abcdefghij"), 1, 8, SV("abcdefghij"), 0, 5, 1);
+ test(S("abcdefghij"), 1, 8, SV("abcdefghij"), 0, 9, 1);
+ test(S("abcdefghij"), 1, 8, SV("abcdefghij"), 0, 10, 1);
+ test(S("abcdefghij"), 1, 8, SV("abcdefghij"), 0, 11, 1);
+ test(S("abcdefghij"), 1, 8, SV("abcdefghij"), 1, 0, 8);
+ test(S("abcdefghij"), 1, 8, SV("abcdefghij"), 1, 1, 7);
+ test(S("abcdefghij"), 1, 8, SV("abcdefghij"), 1, 4, 4);
+ test(S("abcdefghij"), 1, 8, SV("abcdefghij"), 1, 8, 0);
+ test(S("abcdefghij"), 1, 8, SV("abcdefghij"), 1, 9, -1);
+ test(S("abcdefghij"), 1, 8, SV("abcdefghij"), 1, 10, -1);
+ test(S("abcdefghij"), 1, 8, SV("abcdefghij"), 5, 0, 8);
+ test(S("abcdefghij"), 1, 8, SV("abcdefghij"), 5, 1, -4);
+ test(S("abcdefghij"), 1, 8, SV("abcdefghij"), 5, 2, -4);
+ test(S("abcdefghij"), 1, 8, SV("abcdefghij"), 5, 4, -4);
+ test(S("abcdefghij"), 1, 8, SV("abcdefghij"), 5, 5, -4);
+ test(S("abcdefghij"), 1, 8, SV("abcdefghij"), 5, 6, -4);
+ test(S("abcdefghij"), 1, 8, SV("abcdefghij"), 9, 0, 8);
+ test(S("abcdefghij"), 1, 8, SV("abcdefghij"), 9, 1, -8);
+ test(S("abcdefghij"), 1, 8, SV("abcdefghij"), 9, 2, -8);
+ test(S("abcdefghij"), 1, 8, SV("abcdefghij"), 10, 0, 8);
+ test(S("abcdefghij"), 1, 8, SV("abcdefghij"), 10, 1, 8);
+ test(S("abcdefghij"), 1, 8, SV("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghij"), 1, 8, SV("abcdefghijklmnopqrst"), 0, 0, 8);
+ test(S("abcdefghij"), 1, 8, SV("abcdefghijklmnopqrst"), 0, 1, 1);
+ test(S("abcdefghij"), 1, 8, SV("abcdefghijklmnopqrst"), 0, 10, 1);
+ test(S("abcdefghij"), 1, 8, SV("abcdefghijklmnopqrst"), 0, 19, 1);
+ test(S("abcdefghij"), 1, 8, SV("abcdefghijklmnopqrst"), 0, 20, 1);
+ test(S("abcdefghij"), 1, 8, SV("abcdefghijklmnopqrst"), 0, 21, 1);
+ test(S("abcdefghij"), 1, 8, SV("abcdefghijklmnopqrst"), 1, 0, 8);
+ test(S("abcdefghij"), 1, 8, SV("abcdefghijklmnopqrst"), 1, 1, 7);
+ test(S("abcdefghij"), 1, 8, SV("abcdefghijklmnopqrst"), 1, 9, -1);
+ test(S("abcdefghij"), 1, 8, SV("abcdefghijklmnopqrst"), 1, 18, -10);
+ test(S("abcdefghij"), 1, 8, SV("abcdefghijklmnopqrst"), 1, 19, -11);
+ test(S("abcdefghij"), 1, 8, SV("abcdefghijklmnopqrst"), 1, 20, -11);
+ test(S("abcdefghij"), 1, 8, SV("abcdefghijklmnopqrst"), 10, 0, 8);
+ test(S("abcdefghij"), 1, 8, SV("abcdefghijklmnopqrst"), 10, 1, -9);
+ test(S("abcdefghij"), 1, 8, SV("abcdefghijklmnopqrst"), 10, 5, -9);
+ test(S("abcdefghij"), 1, 8, SV("abcdefghijklmnopqrst"), 10, 9, -9);
+ test(S("abcdefghij"), 1, 8, SV("abcdefghijklmnopqrst"), 10, 10, -9);
+ test(S("abcdefghij"), 1, 8, SV("abcdefghijklmnopqrst"), 10, 11, -9);
+ test(S("abcdefghij"), 1, 8, SV("abcdefghijklmnopqrst"), 19, 0, 8);
+ test(S("abcdefghij"), 1, 8, SV("abcdefghijklmnopqrst"), 19, 1, -18);
+ test(S("abcdefghij"), 1, 8, SV("abcdefghijklmnopqrst"), 19, 2, -18);
+ test(S("abcdefghij"), 1, 8, SV("abcdefghijklmnopqrst"), 20, 0, 8);
+ test(S("abcdefghij"), 1, 8, SV("abcdefghijklmnopqrst"), 20, 1, 8);
+ test(S("abcdefghij"), 1, 8, SV("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghij"), 1, 9, SV(""), 0, 0, 9);
+ test(S("abcdefghij"), 1, 9, SV(""), 0, 1, 9);
+ test(S("abcdefghij"), 1, 9, SV(""), 1, 0, 0);
+ test(S("abcdefghij"), 1, 9, SV("abcde"), 0, 0, 9);
+ test(S("abcdefghij"), 1, 9, SV("abcde"), 0, 1, 1);
+ test(S("abcdefghij"), 1, 9, SV("abcde"), 0, 2, 1);
+ test(S("abcdefghij"), 1, 9, SV("abcde"), 0, 4, 1);
+ test(S("abcdefghij"), 1, 9, SV("abcde"), 0, 5, 1);
+ test(S("abcdefghij"), 1, 9, SV("abcde"), 0, 6, 1);
+ test(S("abcdefghij"), 1, 9, SV("abcde"), 1, 0, 9);
+ test(S("abcdefghij"), 1, 9, SV("abcde"), 1, 1, 8);
+ test(S("abcdefghij"), 1, 9, SV("abcde"), 1, 2, 7);
+ test(S("abcdefghij"), 1, 9, SV("abcde"), 1, 3, 6);
+ test(S("abcdefghij"), 1, 9, SV("abcde"), 1, 4, 5);
+ test(S("abcdefghij"), 1, 9, SV("abcde"), 1, 5, 5);
+ test(S("abcdefghij"), 1, 9, SV("abcde"), 2, 0, 9);
+ test(S("abcdefghij"), 1, 9, SV("abcde"), 2, 1, -1);
+ test(S("abcdefghij"), 1, 9, SV("abcde"), 2, 2, -1);
+ test(S("abcdefghij"), 1, 9, SV("abcde"), 2, 3, -1);
+ test(S("abcdefghij"), 1, 9, SV("abcde"), 2, 4, -1);
+ test(S("abcdefghij"), 1, 9, SV("abcde"), 4, 0, 9);
+ test(S("abcdefghij"), 1, 9, SV("abcde"), 4, 1, -3);
+ test(S("abcdefghij"), 1, 9, SV("abcde"), 4, 2, -3);
+ test(S("abcdefghij"), 1, 9, SV("abcde"), 5, 0, 9);
+ test(S("abcdefghij"), 1, 9, SV("abcde"), 5, 1, 9);
+ test(S("abcdefghij"), 1, 9, SV("abcde"), 6, 0, 0);
+ test(S("abcdefghij"), 1, 9, SV("abcdefghij"), 0, 0, 9);
+ test(S("abcdefghij"), 1, 9, SV("abcdefghij"), 0, 1, 1);
+ test(S("abcdefghij"), 1, 9, SV("abcdefghij"), 0, 5, 1);
+ test(S("abcdefghij"), 1, 9, SV("abcdefghij"), 0, 9, 1);
+ test(S("abcdefghij"), 1, 9, SV("abcdefghij"), 0, 10, 1);
+ test(S("abcdefghij"), 1, 9, SV("abcdefghij"), 0, 11, 1);
+ test(S("abcdefghij"), 1, 9, SV("abcdefghij"), 1, 0, 9);
+ test(S("abcdefghij"), 1, 9, SV("abcdefghij"), 1, 1, 8);
+ test(S("abcdefghij"), 1, 9, SV("abcdefghij"), 1, 4, 5);
+ test(S("abcdefghij"), 1, 9, SV("abcdefghij"), 1, 8, 1);
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test27()
-{
- test(S("abcdefghij"), 1, 9, SV("abcdefghij"), 1, 9, 0);
- test(S("abcdefghij"), 1, 9, SV("abcdefghij"), 1, 10, 0);
- test(S("abcdefghij"), 1, 9, SV("abcdefghij"), 5, 0, 9);
- test(S("abcdefghij"), 1, 9, SV("abcdefghij"), 5, 1, -4);
- test(S("abcdefghij"), 1, 9, SV("abcdefghij"), 5, 2, -4);
- test(S("abcdefghij"), 1, 9, SV("abcdefghij"), 5, 4, -4);
- test(S("abcdefghij"), 1, 9, SV("abcdefghij"), 5, 5, -4);
- test(S("abcdefghij"), 1, 9, SV("abcdefghij"), 5, 6, -4);
- test(S("abcdefghij"), 1, 9, SV("abcdefghij"), 9, 0, 9);
- test(S("abcdefghij"), 1, 9, SV("abcdefghij"), 9, 1, -8);
- test(S("abcdefghij"), 1, 9, SV("abcdefghij"), 9, 2, -8);
- test(S("abcdefghij"), 1, 9, SV("abcdefghij"), 10, 0, 9);
- test(S("abcdefghij"), 1, 9, SV("abcdefghij"), 10, 1, 9);
- test(S("abcdefghij"), 1, 9, SV("abcdefghij"), 11, 0, 0);
- test(S("abcdefghij"), 1, 9, SV("abcdefghijklmnopqrst"), 0, 0, 9);
- test(S("abcdefghij"), 1, 9, SV("abcdefghijklmnopqrst"), 0, 1, 1);
- test(S("abcdefghij"), 1, 9, SV("abcdefghijklmnopqrst"), 0, 10, 1);
- test(S("abcdefghij"), 1, 9, SV("abcdefghijklmnopqrst"), 0, 19, 1);
- test(S("abcdefghij"), 1, 9, SV("abcdefghijklmnopqrst"), 0, 20, 1);
- test(S("abcdefghij"), 1, 9, SV("abcdefghijklmnopqrst"), 0, 21, 1);
- test(S("abcdefghij"), 1, 9, SV("abcdefghijklmnopqrst"), 1, 0, 9);
- test(S("abcdefghij"), 1, 9, SV("abcdefghijklmnopqrst"), 1, 1, 8);
- test(S("abcdefghij"), 1, 9, SV("abcdefghijklmnopqrst"), 1, 9, 0);
- test(S("abcdefghij"), 1, 9, SV("abcdefghijklmnopqrst"), 1, 18, -9);
- test(S("abcdefghij"), 1, 9, SV("abcdefghijklmnopqrst"), 1, 19, -10);
- test(S("abcdefghij"), 1, 9, SV("abcdefghijklmnopqrst"), 1, 20, -10);
- test(S("abcdefghij"), 1, 9, SV("abcdefghijklmnopqrst"), 10, 0, 9);
- test(S("abcdefghij"), 1, 9, SV("abcdefghijklmnopqrst"), 10, 1, -9);
- test(S("abcdefghij"), 1, 9, SV("abcdefghijklmnopqrst"), 10, 5, -9);
- test(S("abcdefghij"), 1, 9, SV("abcdefghijklmnopqrst"), 10, 9, -9);
- test(S("abcdefghij"), 1, 9, SV("abcdefghijklmnopqrst"), 10, 10, -9);
- test(S("abcdefghij"), 1, 9, SV("abcdefghijklmnopqrst"), 10, 11, -9);
- test(S("abcdefghij"), 1, 9, SV("abcdefghijklmnopqrst"), 19, 0, 9);
- test(S("abcdefghij"), 1, 9, SV("abcdefghijklmnopqrst"), 19, 1, -18);
- test(S("abcdefghij"), 1, 9, SV("abcdefghijklmnopqrst"), 19, 2, -18);
- test(S("abcdefghij"), 1, 9, SV("abcdefghijklmnopqrst"), 20, 0, 9);
- test(S("abcdefghij"), 1, 9, SV("abcdefghijklmnopqrst"), 20, 1, 9);
- test(S("abcdefghij"), 1, 9, SV("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghij"), 1, 10, SV(""), 0, 0, 9);
- test(S("abcdefghij"), 1, 10, SV(""), 0, 1, 9);
- test(S("abcdefghij"), 1, 10, SV(""), 1, 0, 0);
- test(S("abcdefghij"), 1, 10, SV("abcde"), 0, 0, 9);
- test(S("abcdefghij"), 1, 10, SV("abcde"), 0, 1, 1);
- test(S("abcdefghij"), 1, 10, SV("abcde"), 0, 2, 1);
- test(S("abcdefghij"), 1, 10, SV("abcde"), 0, 4, 1);
- test(S("abcdefghij"), 1, 10, SV("abcde"), 0, 5, 1);
- test(S("abcdefghij"), 1, 10, SV("abcde"), 0, 6, 1);
- test(S("abcdefghij"), 1, 10, SV("abcde"), 1, 0, 9);
- test(S("abcdefghij"), 1, 10, SV("abcde"), 1, 1, 8);
- test(S("abcdefghij"), 1, 10, SV("abcde"), 1, 2, 7);
- test(S("abcdefghij"), 1, 10, SV("abcde"), 1, 3, 6);
- test(S("abcdefghij"), 1, 10, SV("abcde"), 1, 4, 5);
- test(S("abcdefghij"), 1, 10, SV("abcde"), 1, 5, 5);
- test(S("abcdefghij"), 1, 10, SV("abcde"), 2, 0, 9);
- test(S("abcdefghij"), 1, 10, SV("abcde"), 2, 1, -1);
- test(S("abcdefghij"), 1, 10, SV("abcde"), 2, 2, -1);
- test(S("abcdefghij"), 1, 10, SV("abcde"), 2, 3, -1);
- test(S("abcdefghij"), 1, 10, SV("abcde"), 2, 4, -1);
- test(S("abcdefghij"), 1, 10, SV("abcde"), 4, 0, 9);
- test(S("abcdefghij"), 1, 10, SV("abcde"), 4, 1, -3);
- test(S("abcdefghij"), 1, 10, SV("abcde"), 4, 2, -3);
- test(S("abcdefghij"), 1, 10, SV("abcde"), 5, 0, 9);
- test(S("abcdefghij"), 1, 10, SV("abcde"), 5, 1, 9);
- test(S("abcdefghij"), 1, 10, SV("abcde"), 6, 0, 0);
- test(S("abcdefghij"), 1, 10, SV("abcdefghij"), 0, 0, 9);
- test(S("abcdefghij"), 1, 10, SV("abcdefghij"), 0, 1, 1);
- test(S("abcdefghij"), 1, 10, SV("abcdefghij"), 0, 5, 1);
- test(S("abcdefghij"), 1, 10, SV("abcdefghij"), 0, 9, 1);
- test(S("abcdefghij"), 1, 10, SV("abcdefghij"), 0, 10, 1);
- test(S("abcdefghij"), 1, 10, SV("abcdefghij"), 0, 11, 1);
- test(S("abcdefghij"), 1, 10, SV("abcdefghij"), 1, 0, 9);
- test(S("abcdefghij"), 1, 10, SV("abcdefghij"), 1, 1, 8);
- test(S("abcdefghij"), 1, 10, SV("abcdefghij"), 1, 4, 5);
- test(S("abcdefghij"), 1, 10, SV("abcdefghij"), 1, 8, 1);
- test(S("abcdefghij"), 1, 10, SV("abcdefghij"), 1, 9, 0);
- test(S("abcdefghij"), 1, 10, SV("abcdefghij"), 1, 10, 0);
- test(S("abcdefghij"), 1, 10, SV("abcdefghij"), 5, 0, 9);
- test(S("abcdefghij"), 1, 10, SV("abcdefghij"), 5, 1, -4);
- test(S("abcdefghij"), 1, 10, SV("abcdefghij"), 5, 2, -4);
- test(S("abcdefghij"), 1, 10, SV("abcdefghij"), 5, 4, -4);
- test(S("abcdefghij"), 1, 10, SV("abcdefghij"), 5, 5, -4);
- test(S("abcdefghij"), 1, 10, SV("abcdefghij"), 5, 6, -4);
- test(S("abcdefghij"), 1, 10, SV("abcdefghij"), 9, 0, 9);
- test(S("abcdefghij"), 1, 10, SV("abcdefghij"), 9, 1, -8);
- test(S("abcdefghij"), 1, 10, SV("abcdefghij"), 9, 2, -8);
- test(S("abcdefghij"), 1, 10, SV("abcdefghij"), 10, 0, 9);
- test(S("abcdefghij"), 1, 10, SV("abcdefghij"), 10, 1, 9);
- test(S("abcdefghij"), 1, 10, SV("abcdefghij"), 11, 0, 0);
- test(S("abcdefghij"), 1, 10, SV("abcdefghijklmnopqrst"), 0, 0, 9);
- test(S("abcdefghij"), 1, 10, SV("abcdefghijklmnopqrst"), 0, 1, 1);
- test(S("abcdefghij"), 1, 10, SV("abcdefghijklmnopqrst"), 0, 10, 1);
- test(S("abcdefghij"), 1, 10, SV("abcdefghijklmnopqrst"), 0, 19, 1);
- test(S("abcdefghij"), 1, 10, SV("abcdefghijklmnopqrst"), 0, 20, 1);
- test(S("abcdefghij"), 1, 10, SV("abcdefghijklmnopqrst"), 0, 21, 1);
- test(S("abcdefghij"), 1, 10, SV("abcdefghijklmnopqrst"), 1, 0, 9);
- test(S("abcdefghij"), 1, 10, SV("abcdefghijklmnopqrst"), 1, 1, 8);
- test(S("abcdefghij"), 1, 10, SV("abcdefghijklmnopqrst"), 1, 9, 0);
- test(S("abcdefghij"), 1, 10, SV("abcdefghijklmnopqrst"), 1, 18, -9);
- test(S("abcdefghij"), 1, 10, SV("abcdefghijklmnopqrst"), 1, 19, -10);
- test(S("abcdefghij"), 1, 10, SV("abcdefghijklmnopqrst"), 1, 20, -10);
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test27() {
+ test(S("abcdefghij"), 1, 9, SV("abcdefghij"), 1, 9, 0);
+ test(S("abcdefghij"), 1, 9, SV("abcdefghij"), 1, 10, 0);
+ test(S("abcdefghij"), 1, 9, SV("abcdefghij"), 5, 0, 9);
+ test(S("abcdefghij"), 1, 9, SV("abcdefghij"), 5, 1, -4);
+ test(S("abcdefghij"), 1, 9, SV("abcdefghij"), 5, 2, -4);
+ test(S("abcdefghij"), 1, 9, SV("abcdefghij"), 5, 4, -4);
+ test(S("abcdefghij"), 1, 9, SV("abcdefghij"), 5, 5, -4);
+ test(S("abcdefghij"), 1, 9, SV("abcdefghij"), 5, 6, -4);
+ test(S("abcdefghij"), 1, 9, SV("abcdefghij"), 9, 0, 9);
+ test(S("abcdefghij"), 1, 9, SV("abcdefghij"), 9, 1, -8);
+ test(S("abcdefghij"), 1, 9, SV("abcdefghij"), 9, 2, -8);
+ test(S("abcdefghij"), 1, 9, SV("abcdefghij"), 10, 0, 9);
+ test(S("abcdefghij"), 1, 9, SV("abcdefghij"), 10, 1, 9);
+ test(S("abcdefghij"), 1, 9, SV("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghij"), 1, 9, SV("abcdefghijklmnopqrst"), 0, 0, 9);
+ test(S("abcdefghij"), 1, 9, SV("abcdefghijklmnopqrst"), 0, 1, 1);
+ test(S("abcdefghij"), 1, 9, SV("abcdefghijklmnopqrst"), 0, 10, 1);
+ test(S("abcdefghij"), 1, 9, SV("abcdefghijklmnopqrst"), 0, 19, 1);
+ test(S("abcdefghij"), 1, 9, SV("abcdefghijklmnopqrst"), 0, 20, 1);
+ test(S("abcdefghij"), 1, 9, SV("abcdefghijklmnopqrst"), 0, 21, 1);
+ test(S("abcdefghij"), 1, 9, SV("abcdefghijklmnopqrst"), 1, 0, 9);
+ test(S("abcdefghij"), 1, 9, SV("abcdefghijklmnopqrst"), 1, 1, 8);
+ test(S("abcdefghij"), 1, 9, SV("abcdefghijklmnopqrst"), 1, 9, 0);
+ test(S("abcdefghij"), 1, 9, SV("abcdefghijklmnopqrst"), 1, 18, -9);
+ test(S("abcdefghij"), 1, 9, SV("abcdefghijklmnopqrst"), 1, 19, -10);
+ test(S("abcdefghij"), 1, 9, SV("abcdefghijklmnopqrst"), 1, 20, -10);
+ test(S("abcdefghij"), 1, 9, SV("abcdefghijklmnopqrst"), 10, 0, 9);
+ test(S("abcdefghij"), 1, 9, SV("abcdefghijklmnopqrst"), 10, 1, -9);
+ test(S("abcdefghij"), 1, 9, SV("abcdefghijklmnopqrst"), 10, 5, -9);
+ test(S("abcdefghij"), 1, 9, SV("abcdefghijklmnopqrst"), 10, 9, -9);
+ test(S("abcdefghij"), 1, 9, SV("abcdefghijklmnopqrst"), 10, 10, -9);
+ test(S("abcdefghij"), 1, 9, SV("abcdefghijklmnopqrst"), 10, 11, -9);
+ test(S("abcdefghij"), 1, 9, SV("abcdefghijklmnopqrst"), 19, 0, 9);
+ test(S("abcdefghij"), 1, 9, SV("abcdefghijklmnopqrst"), 19, 1, -18);
+ test(S("abcdefghij"), 1, 9, SV("abcdefghijklmnopqrst"), 19, 2, -18);
+ test(S("abcdefghij"), 1, 9, SV("abcdefghijklmnopqrst"), 20, 0, 9);
+ test(S("abcdefghij"), 1, 9, SV("abcdefghijklmnopqrst"), 20, 1, 9);
+ test(S("abcdefghij"), 1, 9, SV("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghij"), 1, 10, SV(""), 0, 0, 9);
+ test(S("abcdefghij"), 1, 10, SV(""), 0, 1, 9);
+ test(S("abcdefghij"), 1, 10, SV(""), 1, 0, 0);
+ test(S("abcdefghij"), 1, 10, SV("abcde"), 0, 0, 9);
+ test(S("abcdefghij"), 1, 10, SV("abcde"), 0, 1, 1);
+ test(S("abcdefghij"), 1, 10, SV("abcde"), 0, 2, 1);
+ test(S("abcdefghij"), 1, 10, SV("abcde"), 0, 4, 1);
+ test(S("abcdefghij"), 1, 10, SV("abcde"), 0, 5, 1);
+ test(S("abcdefghij"), 1, 10, SV("abcde"), 0, 6, 1);
+ test(S("abcdefghij"), 1, 10, SV("abcde"), 1, 0, 9);
+ test(S("abcdefghij"), 1, 10, SV("abcde"), 1, 1, 8);
+ test(S("abcdefghij"), 1, 10, SV("abcde"), 1, 2, 7);
+ test(S("abcdefghij"), 1, 10, SV("abcde"), 1, 3, 6);
+ test(S("abcdefghij"), 1, 10, SV("abcde"), 1, 4, 5);
+ test(S("abcdefghij"), 1, 10, SV("abcde"), 1, 5, 5);
+ test(S("abcdefghij"), 1, 10, SV("abcde"), 2, 0, 9);
+ test(S("abcdefghij"), 1, 10, SV("abcde"), 2, 1, -1);
+ test(S("abcdefghij"), 1, 10, SV("abcde"), 2, 2, -1);
+ test(S("abcdefghij"), 1, 10, SV("abcde"), 2, 3, -1);
+ test(S("abcdefghij"), 1, 10, SV("abcde"), 2, 4, -1);
+ test(S("abcdefghij"), 1, 10, SV("abcde"), 4, 0, 9);
+ test(S("abcdefghij"), 1, 10, SV("abcde"), 4, 1, -3);
+ test(S("abcdefghij"), 1, 10, SV("abcde"), 4, 2, -3);
+ test(S("abcdefghij"), 1, 10, SV("abcde"), 5, 0, 9);
+ test(S("abcdefghij"), 1, 10, SV("abcde"), 5, 1, 9);
+ test(S("abcdefghij"), 1, 10, SV("abcde"), 6, 0, 0);
+ test(S("abcdefghij"), 1, 10, SV("abcdefghij"), 0, 0, 9);
+ test(S("abcdefghij"), 1, 10, SV("abcdefghij"), 0, 1, 1);
+ test(S("abcdefghij"), 1, 10, SV("abcdefghij"), 0, 5, 1);
+ test(S("abcdefghij"), 1, 10, SV("abcdefghij"), 0, 9, 1);
+ test(S("abcdefghij"), 1, 10, SV("abcdefghij"), 0, 10, 1);
+ test(S("abcdefghij"), 1, 10, SV("abcdefghij"), 0, 11, 1);
+ test(S("abcdefghij"), 1, 10, SV("abcdefghij"), 1, 0, 9);
+ test(S("abcdefghij"), 1, 10, SV("abcdefghij"), 1, 1, 8);
+ test(S("abcdefghij"), 1, 10, SV("abcdefghij"), 1, 4, 5);
+ test(S("abcdefghij"), 1, 10, SV("abcdefghij"), 1, 8, 1);
+ test(S("abcdefghij"), 1, 10, SV("abcdefghij"), 1, 9, 0);
+ test(S("abcdefghij"), 1, 10, SV("abcdefghij"), 1, 10, 0);
+ test(S("abcdefghij"), 1, 10, SV("abcdefghij"), 5, 0, 9);
+ test(S("abcdefghij"), 1, 10, SV("abcdefghij"), 5, 1, -4);
+ test(S("abcdefghij"), 1, 10, SV("abcdefghij"), 5, 2, -4);
+ test(S("abcdefghij"), 1, 10, SV("abcdefghij"), 5, 4, -4);
+ test(S("abcdefghij"), 1, 10, SV("abcdefghij"), 5, 5, -4);
+ test(S("abcdefghij"), 1, 10, SV("abcdefghij"), 5, 6, -4);
+ test(S("abcdefghij"), 1, 10, SV("abcdefghij"), 9, 0, 9);
+ test(S("abcdefghij"), 1, 10, SV("abcdefghij"), 9, 1, -8);
+ test(S("abcdefghij"), 1, 10, SV("abcdefghij"), 9, 2, -8);
+ test(S("abcdefghij"), 1, 10, SV("abcdefghij"), 10, 0, 9);
+ test(S("abcdefghij"), 1, 10, SV("abcdefghij"), 10, 1, 9);
+ test(S("abcdefghij"), 1, 10, SV("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghij"), 1, 10, SV("abcdefghijklmnopqrst"), 0, 0, 9);
+ test(S("abcdefghij"), 1, 10, SV("abcdefghijklmnopqrst"), 0, 1, 1);
+ test(S("abcdefghij"), 1, 10, SV("abcdefghijklmnopqrst"), 0, 10, 1);
+ test(S("abcdefghij"), 1, 10, SV("abcdefghijklmnopqrst"), 0, 19, 1);
+ test(S("abcdefghij"), 1, 10, SV("abcdefghijklmnopqrst"), 0, 20, 1);
+ test(S("abcdefghij"), 1, 10, SV("abcdefghijklmnopqrst"), 0, 21, 1);
+ test(S("abcdefghij"), 1, 10, SV("abcdefghijklmnopqrst"), 1, 0, 9);
+ test(S("abcdefghij"), 1, 10, SV("abcdefghijklmnopqrst"), 1, 1, 8);
+ test(S("abcdefghij"), 1, 10, SV("abcdefghijklmnopqrst"), 1, 9, 0);
+ test(S("abcdefghij"), 1, 10, SV("abcdefghijklmnopqrst"), 1, 18, -9);
+ test(S("abcdefghij"), 1, 10, SV("abcdefghijklmnopqrst"), 1, 19, -10);
+ test(S("abcdefghij"), 1, 10, SV("abcdefghijklmnopqrst"), 1, 20, -10);
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test28()
-{
- test(S("abcdefghij"), 1, 10, SV("abcdefghijklmnopqrst"), 10, 0, 9);
- test(S("abcdefghij"), 1, 10, SV("abcdefghijklmnopqrst"), 10, 1, -9);
- test(S("abcdefghij"), 1, 10, SV("abcdefghijklmnopqrst"), 10, 5, -9);
- test(S("abcdefghij"), 1, 10, SV("abcdefghijklmnopqrst"), 10, 9, -9);
- test(S("abcdefghij"), 1, 10, SV("abcdefghijklmnopqrst"), 10, 10, -9);
- test(S("abcdefghij"), 1, 10, SV("abcdefghijklmnopqrst"), 10, 11, -9);
- test(S("abcdefghij"), 1, 10, SV("abcdefghijklmnopqrst"), 19, 0, 9);
- test(S("abcdefghij"), 1, 10, SV("abcdefghijklmnopqrst"), 19, 1, -18);
- test(S("abcdefghij"), 1, 10, SV("abcdefghijklmnopqrst"), 19, 2, -18);
- test(S("abcdefghij"), 1, 10, SV("abcdefghijklmnopqrst"), 20, 0, 9);
- test(S("abcdefghij"), 1, 10, SV("abcdefghijklmnopqrst"), 20, 1, 9);
- test(S("abcdefghij"), 1, 10, SV("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghij"), 5, 0, SV(""), 0, 0, 0);
- test(S("abcdefghij"), 5, 0, SV(""), 0, 1, 0);
- test(S("abcdefghij"), 5, 0, SV(""), 1, 0, 0);
- test(S("abcdefghij"), 5, 0, SV("abcde"), 0, 0, 0);
- test(S("abcdefghij"), 5, 0, SV("abcde"), 0, 1, -1);
- test(S("abcdefghij"), 5, 0, SV("abcde"), 0, 2, -2);
- test(S("abcdefghij"), 5, 0, SV("abcde"), 0, 4, -4);
- test(S("abcdefghij"), 5, 0, SV("abcde"), 0, 5, -5);
- test(S("abcdefghij"), 5, 0, SV("abcde"), 0, 6, -5);
- test(S("abcdefghij"), 5, 0, SV("abcde"), 1, 0, 0);
- test(S("abcdefghij"), 5, 0, SV("abcde"), 1, 1, -1);
- test(S("abcdefghij"), 5, 0, SV("abcde"), 1, 2, -2);
- test(S("abcdefghij"), 5, 0, SV("abcde"), 1, 3, -3);
- test(S("abcdefghij"), 5, 0, SV("abcde"), 1, 4, -4);
- test(S("abcdefghij"), 5, 0, SV("abcde"), 1, 5, -4);
- test(S("abcdefghij"), 5, 0, SV("abcde"), 2, 0, 0);
- test(S("abcdefghij"), 5, 0, SV("abcde"), 2, 1, -1);
- test(S("abcdefghij"), 5, 0, SV("abcde"), 2, 2, -2);
- test(S("abcdefghij"), 5, 0, SV("abcde"), 2, 3, -3);
- test(S("abcdefghij"), 5, 0, SV("abcde"), 2, 4, -3);
- test(S("abcdefghij"), 5, 0, SV("abcde"), 4, 0, 0);
- test(S("abcdefghij"), 5, 0, SV("abcde"), 4, 1, -1);
- test(S("abcdefghij"), 5, 0, SV("abcde"), 4, 2, -1);
- test(S("abcdefghij"), 5, 0, SV("abcde"), 5, 0, 0);
- test(S("abcdefghij"), 5, 0, SV("abcde"), 5, 1, 0);
- test(S("abcdefghij"), 5, 0, SV("abcde"), 6, 0, 0);
- test(S("abcdefghij"), 5, 0, SV("abcdefghij"), 0, 0, 0);
- test(S("abcdefghij"), 5, 0, SV("abcdefghij"), 0, 1, -1);
- test(S("abcdefghij"), 5, 0, SV("abcdefghij"), 0, 5, -5);
- test(S("abcdefghij"), 5, 0, SV("abcdefghij"), 0, 9, -9);
- test(S("abcdefghij"), 5, 0, SV("abcdefghij"), 0, 10, -10);
- test(S("abcdefghij"), 5, 0, SV("abcdefghij"), 0, 11, -10);
- test(S("abcdefghij"), 5, 0, SV("abcdefghij"), 1, 0, 0);
- test(S("abcdefghij"), 5, 0, SV("abcdefghij"), 1, 1, -1);
- test(S("abcdefghij"), 5, 0, SV("abcdefghij"), 1, 4, -4);
- test(S("abcdefghij"), 5, 0, SV("abcdefghij"), 1, 8, -8);
- test(S("abcdefghij"), 5, 0, SV("abcdefghij"), 1, 9, -9);
- test(S("abcdefghij"), 5, 0, SV("abcdefghij"), 1, 10, -9);
- test(S("abcdefghij"), 5, 0, SV("abcdefghij"), 5, 0, 0);
- test(S("abcdefghij"), 5, 0, SV("abcdefghij"), 5, 1, -1);
- test(S("abcdefghij"), 5, 0, SV("abcdefghij"), 5, 2, -2);
- test(S("abcdefghij"), 5, 0, SV("abcdefghij"), 5, 4, -4);
- test(S("abcdefghij"), 5, 0, SV("abcdefghij"), 5, 5, -5);
- test(S("abcdefghij"), 5, 0, SV("abcdefghij"), 5, 6, -5);
- test(S("abcdefghij"), 5, 0, SV("abcdefghij"), 9, 0, 0);
- test(S("abcdefghij"), 5, 0, SV("abcdefghij"), 9, 1, -1);
- test(S("abcdefghij"), 5, 0, SV("abcdefghij"), 9, 2, -1);
- test(S("abcdefghij"), 5, 0, SV("abcdefghij"), 10, 0, 0);
- test(S("abcdefghij"), 5, 0, SV("abcdefghij"), 10, 1, 0);
- test(S("abcdefghij"), 5, 0, SV("abcdefghij"), 11, 0, 0);
- test(S("abcdefghij"), 5, 0, SV("abcdefghijklmnopqrst"), 0, 0, 0);
- test(S("abcdefghij"), 5, 0, SV("abcdefghijklmnopqrst"), 0, 1, -1);
- test(S("abcdefghij"), 5, 0, SV("abcdefghijklmnopqrst"), 0, 10, -10);
- test(S("abcdefghij"), 5, 0, SV("abcdefghijklmnopqrst"), 0, 19, -19);
- test(S("abcdefghij"), 5, 0, SV("abcdefghijklmnopqrst"), 0, 20, -20);
- test(S("abcdefghij"), 5, 0, SV("abcdefghijklmnopqrst"), 0, 21, -20);
- test(S("abcdefghij"), 5, 0, SV("abcdefghijklmnopqrst"), 1, 0, 0);
- test(S("abcdefghij"), 5, 0, SV("abcdefghijklmnopqrst"), 1, 1, -1);
- test(S("abcdefghij"), 5, 0, SV("abcdefghijklmnopqrst"), 1, 9, -9);
- test(S("abcdefghij"), 5, 0, SV("abcdefghijklmnopqrst"), 1, 18, -18);
- test(S("abcdefghij"), 5, 0, SV("abcdefghijklmnopqrst"), 1, 19, -19);
- test(S("abcdefghij"), 5, 0, SV("abcdefghijklmnopqrst"), 1, 20, -19);
- test(S("abcdefghij"), 5, 0, SV("abcdefghijklmnopqrst"), 10, 0, 0);
- test(S("abcdefghij"), 5, 0, SV("abcdefghijklmnopqrst"), 10, 1, -1);
- test(S("abcdefghij"), 5, 0, SV("abcdefghijklmnopqrst"), 10, 5, -5);
- test(S("abcdefghij"), 5, 0, SV("abcdefghijklmnopqrst"), 10, 9, -9);
- test(S("abcdefghij"), 5, 0, SV("abcdefghijklmnopqrst"), 10, 10, -10);
- test(S("abcdefghij"), 5, 0, SV("abcdefghijklmnopqrst"), 10, 11, -10);
- test(S("abcdefghij"), 5, 0, SV("abcdefghijklmnopqrst"), 19, 0, 0);
- test(S("abcdefghij"), 5, 0, SV("abcdefghijklmnopqrst"), 19, 1, -1);
- test(S("abcdefghij"), 5, 0, SV("abcdefghijklmnopqrst"), 19, 2, -1);
- test(S("abcdefghij"), 5, 0, SV("abcdefghijklmnopqrst"), 20, 0, 0);
- test(S("abcdefghij"), 5, 0, SV("abcdefghijklmnopqrst"), 20, 1, 0);
- test(S("abcdefghij"), 5, 0, SV("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghij"), 5, 1, SV(""), 0, 0, 1);
- test(S("abcdefghij"), 5, 1, SV(""), 0, 1, 1);
- test(S("abcdefghij"), 5, 1, SV(""), 1, 0, 0);
- test(S("abcdefghij"), 5, 1, SV("abcde"), 0, 0, 1);
- test(S("abcdefghij"), 5, 1, SV("abcde"), 0, 1, 5);
- test(S("abcdefghij"), 5, 1, SV("abcde"), 0, 2, 5);
- test(S("abcdefghij"), 5, 1, SV("abcde"), 0, 4, 5);
- test(S("abcdefghij"), 5, 1, SV("abcde"), 0, 5, 5);
- test(S("abcdefghij"), 5, 1, SV("abcde"), 0, 6, 5);
- test(S("abcdefghij"), 5, 1, SV("abcde"), 1, 0, 1);
- test(S("abcdefghij"), 5, 1, SV("abcde"), 1, 1, 4);
- test(S("abcdefghij"), 5, 1, SV("abcde"), 1, 2, 4);
- test(S("abcdefghij"), 5, 1, SV("abcde"), 1, 3, 4);
- test(S("abcdefghij"), 5, 1, SV("abcde"), 1, 4, 4);
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test28() {
+ test(S("abcdefghij"), 1, 10, SV("abcdefghijklmnopqrst"), 10, 0, 9);
+ test(S("abcdefghij"), 1, 10, SV("abcdefghijklmnopqrst"), 10, 1, -9);
+ test(S("abcdefghij"), 1, 10, SV("abcdefghijklmnopqrst"), 10, 5, -9);
+ test(S("abcdefghij"), 1, 10, SV("abcdefghijklmnopqrst"), 10, 9, -9);
+ test(S("abcdefghij"), 1, 10, SV("abcdefghijklmnopqrst"), 10, 10, -9);
+ test(S("abcdefghij"), 1, 10, SV("abcdefghijklmnopqrst"), 10, 11, -9);
+ test(S("abcdefghij"), 1, 10, SV("abcdefghijklmnopqrst"), 19, 0, 9);
+ test(S("abcdefghij"), 1, 10, SV("abcdefghijklmnopqrst"), 19, 1, -18);
+ test(S("abcdefghij"), 1, 10, SV("abcdefghijklmnopqrst"), 19, 2, -18);
+ test(S("abcdefghij"), 1, 10, SV("abcdefghijklmnopqrst"), 20, 0, 9);
+ test(S("abcdefghij"), 1, 10, SV("abcdefghijklmnopqrst"), 20, 1, 9);
+ test(S("abcdefghij"), 1, 10, SV("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghij"), 5, 0, SV(""), 0, 0, 0);
+ test(S("abcdefghij"), 5, 0, SV(""), 0, 1, 0);
+ test(S("abcdefghij"), 5, 0, SV(""), 1, 0, 0);
+ test(S("abcdefghij"), 5, 0, SV("abcde"), 0, 0, 0);
+ test(S("abcdefghij"), 5, 0, SV("abcde"), 0, 1, -1);
+ test(S("abcdefghij"), 5, 0, SV("abcde"), 0, 2, -2);
+ test(S("abcdefghij"), 5, 0, SV("abcde"), 0, 4, -4);
+ test(S("abcdefghij"), 5, 0, SV("abcde"), 0, 5, -5);
+ test(S("abcdefghij"), 5, 0, SV("abcde"), 0, 6, -5);
+ test(S("abcdefghij"), 5, 0, SV("abcde"), 1, 0, 0);
+ test(S("abcdefghij"), 5, 0, SV("abcde"), 1, 1, -1);
+ test(S("abcdefghij"), 5, 0, SV("abcde"), 1, 2, -2);
+ test(S("abcdefghij"), 5, 0, SV("abcde"), 1, 3, -3);
+ test(S("abcdefghij"), 5, 0, SV("abcde"), 1, 4, -4);
+ test(S("abcdefghij"), 5, 0, SV("abcde"), 1, 5, -4);
+ test(S("abcdefghij"), 5, 0, SV("abcde"), 2, 0, 0);
+ test(S("abcdefghij"), 5, 0, SV("abcde"), 2, 1, -1);
+ test(S("abcdefghij"), 5, 0, SV("abcde"), 2, 2, -2);
+ test(S("abcdefghij"), 5, 0, SV("abcde"), 2, 3, -3);
+ test(S("abcdefghij"), 5, 0, SV("abcde"), 2, 4, -3);
+ test(S("abcdefghij"), 5, 0, SV("abcde"), 4, 0, 0);
+ test(S("abcdefghij"), 5, 0, SV("abcde"), 4, 1, -1);
+ test(S("abcdefghij"), 5, 0, SV("abcde"), 4, 2, -1);
+ test(S("abcdefghij"), 5, 0, SV("abcde"), 5, 0, 0);
+ test(S("abcdefghij"), 5, 0, SV("abcde"), 5, 1, 0);
+ test(S("abcdefghij"), 5, 0, SV("abcde"), 6, 0, 0);
+ test(S("abcdefghij"), 5, 0, SV("abcdefghij"), 0, 0, 0);
+ test(S("abcdefghij"), 5, 0, SV("abcdefghij"), 0, 1, -1);
+ test(S("abcdefghij"), 5, 0, SV("abcdefghij"), 0, 5, -5);
+ test(S("abcdefghij"), 5, 0, SV("abcdefghij"), 0, 9, -9);
+ test(S("abcdefghij"), 5, 0, SV("abcdefghij"), 0, 10, -10);
+ test(S("abcdefghij"), 5, 0, SV("abcdefghij"), 0, 11, -10);
+ test(S("abcdefghij"), 5, 0, SV("abcdefghij"), 1, 0, 0);
+ test(S("abcdefghij"), 5, 0, SV("abcdefghij"), 1, 1, -1);
+ test(S("abcdefghij"), 5, 0, SV("abcdefghij"), 1, 4, -4);
+ test(S("abcdefghij"), 5, 0, SV("abcdefghij"), 1, 8, -8);
+ test(S("abcdefghij"), 5, 0, SV("abcdefghij"), 1, 9, -9);
+ test(S("abcdefghij"), 5, 0, SV("abcdefghij"), 1, 10, -9);
+ test(S("abcdefghij"), 5, 0, SV("abcdefghij"), 5, 0, 0);
+ test(S("abcdefghij"), 5, 0, SV("abcdefghij"), 5, 1, -1);
+ test(S("abcdefghij"), 5, 0, SV("abcdefghij"), 5, 2, -2);
+ test(S("abcdefghij"), 5, 0, SV("abcdefghij"), 5, 4, -4);
+ test(S("abcdefghij"), 5, 0, SV("abcdefghij"), 5, 5, -5);
+ test(S("abcdefghij"), 5, 0, SV("abcdefghij"), 5, 6, -5);
+ test(S("abcdefghij"), 5, 0, SV("abcdefghij"), 9, 0, 0);
+ test(S("abcdefghij"), 5, 0, SV("abcdefghij"), 9, 1, -1);
+ test(S("abcdefghij"), 5, 0, SV("abcdefghij"), 9, 2, -1);
+ test(S("abcdefghij"), 5, 0, SV("abcdefghij"), 10, 0, 0);
+ test(S("abcdefghij"), 5, 0, SV("abcdefghij"), 10, 1, 0);
+ test(S("abcdefghij"), 5, 0, SV("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghij"), 5, 0, SV("abcdefghijklmnopqrst"), 0, 0, 0);
+ test(S("abcdefghij"), 5, 0, SV("abcdefghijklmnopqrst"), 0, 1, -1);
+ test(S("abcdefghij"), 5, 0, SV("abcdefghijklmnopqrst"), 0, 10, -10);
+ test(S("abcdefghij"), 5, 0, SV("abcdefghijklmnopqrst"), 0, 19, -19);
+ test(S("abcdefghij"), 5, 0, SV("abcdefghijklmnopqrst"), 0, 20, -20);
+ test(S("abcdefghij"), 5, 0, SV("abcdefghijklmnopqrst"), 0, 21, -20);
+ test(S("abcdefghij"), 5, 0, SV("abcdefghijklmnopqrst"), 1, 0, 0);
+ test(S("abcdefghij"), 5, 0, SV("abcdefghijklmnopqrst"), 1, 1, -1);
+ test(S("abcdefghij"), 5, 0, SV("abcdefghijklmnopqrst"), 1, 9, -9);
+ test(S("abcdefghij"), 5, 0, SV("abcdefghijklmnopqrst"), 1, 18, -18);
+ test(S("abcdefghij"), 5, 0, SV("abcdefghijklmnopqrst"), 1, 19, -19);
+ test(S("abcdefghij"), 5, 0, SV("abcdefghijklmnopqrst"), 1, 20, -19);
+ test(S("abcdefghij"), 5, 0, SV("abcdefghijklmnopqrst"), 10, 0, 0);
+ test(S("abcdefghij"), 5, 0, SV("abcdefghijklmnopqrst"), 10, 1, -1);
+ test(S("abcdefghij"), 5, 0, SV("abcdefghijklmnopqrst"), 10, 5, -5);
+ test(S("abcdefghij"), 5, 0, SV("abcdefghijklmnopqrst"), 10, 9, -9);
+ test(S("abcdefghij"), 5, 0, SV("abcdefghijklmnopqrst"), 10, 10, -10);
+ test(S("abcdefghij"), 5, 0, SV("abcdefghijklmnopqrst"), 10, 11, -10);
+ test(S("abcdefghij"), 5, 0, SV("abcdefghijklmnopqrst"), 19, 0, 0);
+ test(S("abcdefghij"), 5, 0, SV("abcdefghijklmnopqrst"), 19, 1, -1);
+ test(S("abcdefghij"), 5, 0, SV("abcdefghijklmnopqrst"), 19, 2, -1);
+ test(S("abcdefghij"), 5, 0, SV("abcdefghijklmnopqrst"), 20, 0, 0);
+ test(S("abcdefghij"), 5, 0, SV("abcdefghijklmnopqrst"), 20, 1, 0);
+ test(S("abcdefghij"), 5, 0, SV("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghij"), 5, 1, SV(""), 0, 0, 1);
+ test(S("abcdefghij"), 5, 1, SV(""), 0, 1, 1);
+ test(S("abcdefghij"), 5, 1, SV(""), 1, 0, 0);
+ test(S("abcdefghij"), 5, 1, SV("abcde"), 0, 0, 1);
+ test(S("abcdefghij"), 5, 1, SV("abcde"), 0, 1, 5);
+ test(S("abcdefghij"), 5, 1, SV("abcde"), 0, 2, 5);
+ test(S("abcdefghij"), 5, 1, SV("abcde"), 0, 4, 5);
+ test(S("abcdefghij"), 5, 1, SV("abcde"), 0, 5, 5);
+ test(S("abcdefghij"), 5, 1, SV("abcde"), 0, 6, 5);
+ test(S("abcdefghij"), 5, 1, SV("abcde"), 1, 0, 1);
+ test(S("abcdefghij"), 5, 1, SV("abcde"), 1, 1, 4);
+ test(S("abcdefghij"), 5, 1, SV("abcde"), 1, 2, 4);
+ test(S("abcdefghij"), 5, 1, SV("abcde"), 1, 3, 4);
+ test(S("abcdefghij"), 5, 1, SV("abcde"), 1, 4, 4);
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test29()
-{
- test(S("abcdefghij"), 5, 1, SV("abcde"), 1, 5, 4);
- test(S("abcdefghij"), 5, 1, SV("abcde"), 2, 0, 1);
- test(S("abcdefghij"), 5, 1, SV("abcde"), 2, 1, 3);
- test(S("abcdefghij"), 5, 1, SV("abcde"), 2, 2, 3);
- test(S("abcdefghij"), 5, 1, SV("abcde"), 2, 3, 3);
- test(S("abcdefghij"), 5, 1, SV("abcde"), 2, 4, 3);
- test(S("abcdefghij"), 5, 1, SV("abcde"), 4, 0, 1);
- test(S("abcdefghij"), 5, 1, SV("abcde"), 4, 1, 1);
- test(S("abcdefghij"), 5, 1, SV("abcde"), 4, 2, 1);
- test(S("abcdefghij"), 5, 1, SV("abcde"), 5, 0, 1);
- test(S("abcdefghij"), 5, 1, SV("abcde"), 5, 1, 1);
- test(S("abcdefghij"), 5, 1, SV("abcde"), 6, 0, 0);
- test(S("abcdefghij"), 5, 1, SV("abcdefghij"), 0, 0, 1);
- test(S("abcdefghij"), 5, 1, SV("abcdefghij"), 0, 1, 5);
- test(S("abcdefghij"), 5, 1, SV("abcdefghij"), 0, 5, 5);
- test(S("abcdefghij"), 5, 1, SV("abcdefghij"), 0, 9, 5);
- test(S("abcdefghij"), 5, 1, SV("abcdefghij"), 0, 10, 5);
- test(S("abcdefghij"), 5, 1, SV("abcdefghij"), 0, 11, 5);
- test(S("abcdefghij"), 5, 1, SV("abcdefghij"), 1, 0, 1);
- test(S("abcdefghij"), 5, 1, SV("abcdefghij"), 1, 1, 4);
- test(S("abcdefghij"), 5, 1, SV("abcdefghij"), 1, 4, 4);
- test(S("abcdefghij"), 5, 1, SV("abcdefghij"), 1, 8, 4);
- test(S("abcdefghij"), 5, 1, SV("abcdefghij"), 1, 9, 4);
- test(S("abcdefghij"), 5, 1, SV("abcdefghij"), 1, 10, 4);
- test(S("abcdefghij"), 5, 1, SV("abcdefghij"), 5, 0, 1);
- test(S("abcdefghij"), 5, 1, SV("abcdefghij"), 5, 1, 0);
- test(S("abcdefghij"), 5, 1, SV("abcdefghij"), 5, 2, -1);
- test(S("abcdefghij"), 5, 1, SV("abcdefghij"), 5, 4, -3);
- test(S("abcdefghij"), 5, 1, SV("abcdefghij"), 5, 5, -4);
- test(S("abcdefghij"), 5, 1, SV("abcdefghij"), 5, 6, -4);
- test(S("abcdefghij"), 5, 1, SV("abcdefghij"), 9, 0, 1);
- test(S("abcdefghij"), 5, 1, SV("abcdefghij"), 9, 1, -4);
- test(S("abcdefghij"), 5, 1, SV("abcdefghij"), 9, 2, -4);
- test(S("abcdefghij"), 5, 1, SV("abcdefghij"), 10, 0, 1);
- test(S("abcdefghij"), 5, 1, SV("abcdefghij"), 10, 1, 1);
- test(S("abcdefghij"), 5, 1, SV("abcdefghij"), 11, 0, 0);
- test(S("abcdefghij"), 5, 1, SV("abcdefghijklmnopqrst"), 0, 0, 1);
- test(S("abcdefghij"), 5, 1, SV("abcdefghijklmnopqrst"), 0, 1, 5);
- test(S("abcdefghij"), 5, 1, SV("abcdefghijklmnopqrst"), 0, 10, 5);
- test(S("abcdefghij"), 5, 1, SV("abcdefghijklmnopqrst"), 0, 19, 5);
- test(S("abcdefghij"), 5, 1, SV("abcdefghijklmnopqrst"), 0, 20, 5);
- test(S("abcdefghij"), 5, 1, SV("abcdefghijklmnopqrst"), 0, 21, 5);
- test(S("abcdefghij"), 5, 1, SV("abcdefghijklmnopqrst"), 1, 0, 1);
- test(S("abcdefghij"), 5, 1, SV("abcdefghijklmnopqrst"), 1, 1, 4);
- test(S("abcdefghij"), 5, 1, SV("abcdefghijklmnopqrst"), 1, 9, 4);
- test(S("abcdefghij"), 5, 1, SV("abcdefghijklmnopqrst"), 1, 18, 4);
- test(S("abcdefghij"), 5, 1, SV("abcdefghijklmnopqrst"), 1, 19, 4);
- test(S("abcdefghij"), 5, 1, SV("abcdefghijklmnopqrst"), 1, 20, 4);
- test(S("abcdefghij"), 5, 1, SV("abcdefghijklmnopqrst"), 10, 0, 1);
- test(S("abcdefghij"), 5, 1, SV("abcdefghijklmnopqrst"), 10, 1, -5);
- test(S("abcdefghij"), 5, 1, SV("abcdefghijklmnopqrst"), 10, 5, -5);
- test(S("abcdefghij"), 5, 1, SV("abcdefghijklmnopqrst"), 10, 9, -5);
- test(S("abcdefghij"), 5, 1, SV("abcdefghijklmnopqrst"), 10, 10, -5);
- test(S("abcdefghij"), 5, 1, SV("abcdefghijklmnopqrst"), 10, 11, -5);
- test(S("abcdefghij"), 5, 1, SV("abcdefghijklmnopqrst"), 19, 0, 1);
- test(S("abcdefghij"), 5, 1, SV("abcdefghijklmnopqrst"), 19, 1, -14);
- test(S("abcdefghij"), 5, 1, SV("abcdefghijklmnopqrst"), 19, 2, -14);
- test(S("abcdefghij"), 5, 1, SV("abcdefghijklmnopqrst"), 20, 0, 1);
- test(S("abcdefghij"), 5, 1, SV("abcdefghijklmnopqrst"), 20, 1, 1);
- test(S("abcdefghij"), 5, 1, SV("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghij"), 5, 2, SV(""), 0, 0, 2);
- test(S("abcdefghij"), 5, 2, SV(""), 0, 1, 2);
- test(S("abcdefghij"), 5, 2, SV(""), 1, 0, 0);
- test(S("abcdefghij"), 5, 2, SV("abcde"), 0, 0, 2);
- test(S("abcdefghij"), 5, 2, SV("abcde"), 0, 1, 5);
- test(S("abcdefghij"), 5, 2, SV("abcde"), 0, 2, 5);
- test(S("abcdefghij"), 5, 2, SV("abcde"), 0, 4, 5);
- test(S("abcdefghij"), 5, 2, SV("abcde"), 0, 5, 5);
- test(S("abcdefghij"), 5, 2, SV("abcde"), 0, 6, 5);
- test(S("abcdefghij"), 5, 2, SV("abcde"), 1, 0, 2);
- test(S("abcdefghij"), 5, 2, SV("abcde"), 1, 1, 4);
- test(S("abcdefghij"), 5, 2, SV("abcde"), 1, 2, 4);
- test(S("abcdefghij"), 5, 2, SV("abcde"), 1, 3, 4);
- test(S("abcdefghij"), 5, 2, SV("abcde"), 1, 4, 4);
- test(S("abcdefghij"), 5, 2, SV("abcde"), 1, 5, 4);
- test(S("abcdefghij"), 5, 2, SV("abcde"), 2, 0, 2);
- test(S("abcdefghij"), 5, 2, SV("abcde"), 2, 1, 3);
- test(S("abcdefghij"), 5, 2, SV("abcde"), 2, 2, 3);
- test(S("abcdefghij"), 5, 2, SV("abcde"), 2, 3, 3);
- test(S("abcdefghij"), 5, 2, SV("abcde"), 2, 4, 3);
- test(S("abcdefghij"), 5, 2, SV("abcde"), 4, 0, 2);
- test(S("abcdefghij"), 5, 2, SV("abcde"), 4, 1, 1);
- test(S("abcdefghij"), 5, 2, SV("abcde"), 4, 2, 1);
- test(S("abcdefghij"), 5, 2, SV("abcde"), 5, 0, 2);
- test(S("abcdefghij"), 5, 2, SV("abcde"), 5, 1, 2);
- test(S("abcdefghij"), 5, 2, SV("abcde"), 6, 0, 0);
- test(S("abcdefghij"), 5, 2, SV("abcdefghij"), 0, 0, 2);
- test(S("abcdefghij"), 5, 2, SV("abcdefghij"), 0, 1, 5);
- test(S("abcdefghij"), 5, 2, SV("abcdefghij"), 0, 5, 5);
- test(S("abcdefghij"), 5, 2, SV("abcdefghij"), 0, 9, 5);
- test(S("abcdefghij"), 5, 2, SV("abcdefghij"), 0, 10, 5);
- test(S("abcdefghij"), 5, 2, SV("abcdefghij"), 0, 11, 5);
- test(S("abcdefghij"), 5, 2, SV("abcdefghij"), 1, 0, 2);
- test(S("abcdefghij"), 5, 2, SV("abcdefghij"), 1, 1, 4);
- test(S("abcdefghij"), 5, 2, SV("abcdefghij"), 1, 4, 4);
- test(S("abcdefghij"), 5, 2, SV("abcdefghij"), 1, 8, 4);
- test(S("abcdefghij"), 5, 2, SV("abcdefghij"), 1, 9, 4);
- test(S("abcdefghij"), 5, 2, SV("abcdefghij"), 1, 10, 4);
- test(S("abcdefghij"), 5, 2, SV("abcdefghij"), 5, 0, 2);
- test(S("abcdefghij"), 5, 2, SV("abcdefghij"), 5, 1, 1);
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test29() {
+ test(S("abcdefghij"), 5, 1, SV("abcde"), 1, 5, 4);
+ test(S("abcdefghij"), 5, 1, SV("abcde"), 2, 0, 1);
+ test(S("abcdefghij"), 5, 1, SV("abcde"), 2, 1, 3);
+ test(S("abcdefghij"), 5, 1, SV("abcde"), 2, 2, 3);
+ test(S("abcdefghij"), 5, 1, SV("abcde"), 2, 3, 3);
+ test(S("abcdefghij"), 5, 1, SV("abcde"), 2, 4, 3);
+ test(S("abcdefghij"), 5, 1, SV("abcde"), 4, 0, 1);
+ test(S("abcdefghij"), 5, 1, SV("abcde"), 4, 1, 1);
+ test(S("abcdefghij"), 5, 1, SV("abcde"), 4, 2, 1);
+ test(S("abcdefghij"), 5, 1, SV("abcde"), 5, 0, 1);
+ test(S("abcdefghij"), 5, 1, SV("abcde"), 5, 1, 1);
+ test(S("abcdefghij"), 5, 1, SV("abcde"), 6, 0, 0);
+ test(S("abcdefghij"), 5, 1, SV("abcdefghij"), 0, 0, 1);
+ test(S("abcdefghij"), 5, 1, SV("abcdefghij"), 0, 1, 5);
+ test(S("abcdefghij"), 5, 1, SV("abcdefghij"), 0, 5, 5);
+ test(S("abcdefghij"), 5, 1, SV("abcdefghij"), 0, 9, 5);
+ test(S("abcdefghij"), 5, 1, SV("abcdefghij"), 0, 10, 5);
+ test(S("abcdefghij"), 5, 1, SV("abcdefghij"), 0, 11, 5);
+ test(S("abcdefghij"), 5, 1, SV("abcdefghij"), 1, 0, 1);
+ test(S("abcdefghij"), 5, 1, SV("abcdefghij"), 1, 1, 4);
+ test(S("abcdefghij"), 5, 1, SV("abcdefghij"), 1, 4, 4);
+ test(S("abcdefghij"), 5, 1, SV("abcdefghij"), 1, 8, 4);
+ test(S("abcdefghij"), 5, 1, SV("abcdefghij"), 1, 9, 4);
+ test(S("abcdefghij"), 5, 1, SV("abcdefghij"), 1, 10, 4);
+ test(S("abcdefghij"), 5, 1, SV("abcdefghij"), 5, 0, 1);
+ test(S("abcdefghij"), 5, 1, SV("abcdefghij"), 5, 1, 0);
+ test(S("abcdefghij"), 5, 1, SV("abcdefghij"), 5, 2, -1);
+ test(S("abcdefghij"), 5, 1, SV("abcdefghij"), 5, 4, -3);
+ test(S("abcdefghij"), 5, 1, SV("abcdefghij"), 5, 5, -4);
+ test(S("abcdefghij"), 5, 1, SV("abcdefghij"), 5, 6, -4);
+ test(S("abcdefghij"), 5, 1, SV("abcdefghij"), 9, 0, 1);
+ test(S("abcdefghij"), 5, 1, SV("abcdefghij"), 9, 1, -4);
+ test(S("abcdefghij"), 5, 1, SV("abcdefghij"), 9, 2, -4);
+ test(S("abcdefghij"), 5, 1, SV("abcdefghij"), 10, 0, 1);
+ test(S("abcdefghij"), 5, 1, SV("abcdefghij"), 10, 1, 1);
+ test(S("abcdefghij"), 5, 1, SV("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghij"), 5, 1, SV("abcdefghijklmnopqrst"), 0, 0, 1);
+ test(S("abcdefghij"), 5, 1, SV("abcdefghijklmnopqrst"), 0, 1, 5);
+ test(S("abcdefghij"), 5, 1, SV("abcdefghijklmnopqrst"), 0, 10, 5);
+ test(S("abcdefghij"), 5, 1, SV("abcdefghijklmnopqrst"), 0, 19, 5);
+ test(S("abcdefghij"), 5, 1, SV("abcdefghijklmnopqrst"), 0, 20, 5);
+ test(S("abcdefghij"), 5, 1, SV("abcdefghijklmnopqrst"), 0, 21, 5);
+ test(S("abcdefghij"), 5, 1, SV("abcdefghijklmnopqrst"), 1, 0, 1);
+ test(S("abcdefghij"), 5, 1, SV("abcdefghijklmnopqrst"), 1, 1, 4);
+ test(S("abcdefghij"), 5, 1, SV("abcdefghijklmnopqrst"), 1, 9, 4);
+ test(S("abcdefghij"), 5, 1, SV("abcdefghijklmnopqrst"), 1, 18, 4);
+ test(S("abcdefghij"), 5, 1, SV("abcdefghijklmnopqrst"), 1, 19, 4);
+ test(S("abcdefghij"), 5, 1, SV("abcdefghijklmnopqrst"), 1, 20, 4);
+ test(S("abcdefghij"), 5, 1, SV("abcdefghijklmnopqrst"), 10, 0, 1);
+ test(S("abcdefghij"), 5, 1, SV("abcdefghijklmnopqrst"), 10, 1, -5);
+ test(S("abcdefghij"), 5, 1, SV("abcdefghijklmnopqrst"), 10, 5, -5);
+ test(S("abcdefghij"), 5, 1, SV("abcdefghijklmnopqrst"), 10, 9, -5);
+ test(S("abcdefghij"), 5, 1, SV("abcdefghijklmnopqrst"), 10, 10, -5);
+ test(S("abcdefghij"), 5, 1, SV("abcdefghijklmnopqrst"), 10, 11, -5);
+ test(S("abcdefghij"), 5, 1, SV("abcdefghijklmnopqrst"), 19, 0, 1);
+ test(S("abcdefghij"), 5, 1, SV("abcdefghijklmnopqrst"), 19, 1, -14);
+ test(S("abcdefghij"), 5, 1, SV("abcdefghijklmnopqrst"), 19, 2, -14);
+ test(S("abcdefghij"), 5, 1, SV("abcdefghijklmnopqrst"), 20, 0, 1);
+ test(S("abcdefghij"), 5, 1, SV("abcdefghijklmnopqrst"), 20, 1, 1);
+ test(S("abcdefghij"), 5, 1, SV("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghij"), 5, 2, SV(""), 0, 0, 2);
+ test(S("abcdefghij"), 5, 2, SV(""), 0, 1, 2);
+ test(S("abcdefghij"), 5, 2, SV(""), 1, 0, 0);
+ test(S("abcdefghij"), 5, 2, SV("abcde"), 0, 0, 2);
+ test(S("abcdefghij"), 5, 2, SV("abcde"), 0, 1, 5);
+ test(S("abcdefghij"), 5, 2, SV("abcde"), 0, 2, 5);
+ test(S("abcdefghij"), 5, 2, SV("abcde"), 0, 4, 5);
+ test(S("abcdefghij"), 5, 2, SV("abcde"), 0, 5, 5);
+ test(S("abcdefghij"), 5, 2, SV("abcde"), 0, 6, 5);
+ test(S("abcdefghij"), 5, 2, SV("abcde"), 1, 0, 2);
+ test(S("abcdefghij"), 5, 2, SV("abcde"), 1, 1, 4);
+ test(S("abcdefghij"), 5, 2, SV("abcde"), 1, 2, 4);
+ test(S("abcdefghij"), 5, 2, SV("abcde"), 1, 3, 4);
+ test(S("abcdefghij"), 5, 2, SV("abcde"), 1, 4, 4);
+ test(S("abcdefghij"), 5, 2, SV("abcde"), 1, 5, 4);
+ test(S("abcdefghij"), 5, 2, SV("abcde"), 2, 0, 2);
+ test(S("abcdefghij"), 5, 2, SV("abcde"), 2, 1, 3);
+ test(S("abcdefghij"), 5, 2, SV("abcde"), 2, 2, 3);
+ test(S("abcdefghij"), 5, 2, SV("abcde"), 2, 3, 3);
+ test(S("abcdefghij"), 5, 2, SV("abcde"), 2, 4, 3);
+ test(S("abcdefghij"), 5, 2, SV("abcde"), 4, 0, 2);
+ test(S("abcdefghij"), 5, 2, SV("abcde"), 4, 1, 1);
+ test(S("abcdefghij"), 5, 2, SV("abcde"), 4, 2, 1);
+ test(S("abcdefghij"), 5, 2, SV("abcde"), 5, 0, 2);
+ test(S("abcdefghij"), 5, 2, SV("abcde"), 5, 1, 2);
+ test(S("abcdefghij"), 5, 2, SV("abcde"), 6, 0, 0);
+ test(S("abcdefghij"), 5, 2, SV("abcdefghij"), 0, 0, 2);
+ test(S("abcdefghij"), 5, 2, SV("abcdefghij"), 0, 1, 5);
+ test(S("abcdefghij"), 5, 2, SV("abcdefghij"), 0, 5, 5);
+ test(S("abcdefghij"), 5, 2, SV("abcdefghij"), 0, 9, 5);
+ test(S("abcdefghij"), 5, 2, SV("abcdefghij"), 0, 10, 5);
+ test(S("abcdefghij"), 5, 2, SV("abcdefghij"), 0, 11, 5);
+ test(S("abcdefghij"), 5, 2, SV("abcdefghij"), 1, 0, 2);
+ test(S("abcdefghij"), 5, 2, SV("abcdefghij"), 1, 1, 4);
+ test(S("abcdefghij"), 5, 2, SV("abcdefghij"), 1, 4, 4);
+ test(S("abcdefghij"), 5, 2, SV("abcdefghij"), 1, 8, 4);
+ test(S("abcdefghij"), 5, 2, SV("abcdefghij"), 1, 9, 4);
+ test(S("abcdefghij"), 5, 2, SV("abcdefghij"), 1, 10, 4);
+ test(S("abcdefghij"), 5, 2, SV("abcdefghij"), 5, 0, 2);
+ test(S("abcdefghij"), 5, 2, SV("abcdefghij"), 5, 1, 1);
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test30()
-{
- test(S("abcdefghij"), 5, 2, SV("abcdefghij"), 5, 2, 0);
- test(S("abcdefghij"), 5, 2, SV("abcdefghij"), 5, 4, -2);
- test(S("abcdefghij"), 5, 2, SV("abcdefghij"), 5, 5, -3);
- test(S("abcdefghij"), 5, 2, SV("abcdefghij"), 5, 6, -3);
- test(S("abcdefghij"), 5, 2, SV("abcdefghij"), 9, 0, 2);
- test(S("abcdefghij"), 5, 2, SV("abcdefghij"), 9, 1, -4);
- test(S("abcdefghij"), 5, 2, SV("abcdefghij"), 9, 2, -4);
- test(S("abcdefghij"), 5, 2, SV("abcdefghij"), 10, 0, 2);
- test(S("abcdefghij"), 5, 2, SV("abcdefghij"), 10, 1, 2);
- test(S("abcdefghij"), 5, 2, SV("abcdefghij"), 11, 0, 0);
- test(S("abcdefghij"), 5, 2, SV("abcdefghijklmnopqrst"), 0, 0, 2);
- test(S("abcdefghij"), 5, 2, SV("abcdefghijklmnopqrst"), 0, 1, 5);
- test(S("abcdefghij"), 5, 2, SV("abcdefghijklmnopqrst"), 0, 10, 5);
- test(S("abcdefghij"), 5, 2, SV("abcdefghijklmnopqrst"), 0, 19, 5);
- test(S("abcdefghij"), 5, 2, SV("abcdefghijklmnopqrst"), 0, 20, 5);
- test(S("abcdefghij"), 5, 2, SV("abcdefghijklmnopqrst"), 0, 21, 5);
- test(S("abcdefghij"), 5, 2, SV("abcdefghijklmnopqrst"), 1, 0, 2);
- test(S("abcdefghij"), 5, 2, SV("abcdefghijklmnopqrst"), 1, 1, 4);
- test(S("abcdefghij"), 5, 2, SV("abcdefghijklmnopqrst"), 1, 9, 4);
- test(S("abcdefghij"), 5, 2, SV("abcdefghijklmnopqrst"), 1, 18, 4);
- test(S("abcdefghij"), 5, 2, SV("abcdefghijklmnopqrst"), 1, 19, 4);
- test(S("abcdefghij"), 5, 2, SV("abcdefghijklmnopqrst"), 1, 20, 4);
- test(S("abcdefghij"), 5, 2, SV("abcdefghijklmnopqrst"), 10, 0, 2);
- test(S("abcdefghij"), 5, 2, SV("abcdefghijklmnopqrst"), 10, 1, -5);
- test(S("abcdefghij"), 5, 2, SV("abcdefghijklmnopqrst"), 10, 5, -5);
- test(S("abcdefghij"), 5, 2, SV("abcdefghijklmnopqrst"), 10, 9, -5);
- test(S("abcdefghij"), 5, 2, SV("abcdefghijklmnopqrst"), 10, 10, -5);
- test(S("abcdefghij"), 5, 2, SV("abcdefghijklmnopqrst"), 10, 11, -5);
- test(S("abcdefghij"), 5, 2, SV("abcdefghijklmnopqrst"), 19, 0, 2);
- test(S("abcdefghij"), 5, 2, SV("abcdefghijklmnopqrst"), 19, 1, -14);
- test(S("abcdefghij"), 5, 2, SV("abcdefghijklmnopqrst"), 19, 2, -14);
- test(S("abcdefghij"), 5, 2, SV("abcdefghijklmnopqrst"), 20, 0, 2);
- test(S("abcdefghij"), 5, 2, SV("abcdefghijklmnopqrst"), 20, 1, 2);
- test(S("abcdefghij"), 5, 2, SV("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghij"), 5, 4, SV(""), 0, 0, 4);
- test(S("abcdefghij"), 5, 4, SV(""), 0, 1, 4);
- test(S("abcdefghij"), 5, 4, SV(""), 1, 0, 0);
- test(S("abcdefghij"), 5, 4, SV("abcde"), 0, 0, 4);
- test(S("abcdefghij"), 5, 4, SV("abcde"), 0, 1, 5);
- test(S("abcdefghij"), 5, 4, SV("abcde"), 0, 2, 5);
- test(S("abcdefghij"), 5, 4, SV("abcde"), 0, 4, 5);
- test(S("abcdefghij"), 5, 4, SV("abcde"), 0, 5, 5);
- test(S("abcdefghij"), 5, 4, SV("abcde"), 0, 6, 5);
- test(S("abcdefghij"), 5, 4, SV("abcde"), 1, 0, 4);
- test(S("abcdefghij"), 5, 4, SV("abcde"), 1, 1, 4);
- test(S("abcdefghij"), 5, 4, SV("abcde"), 1, 2, 4);
- test(S("abcdefghij"), 5, 4, SV("abcde"), 1, 3, 4);
- test(S("abcdefghij"), 5, 4, SV("abcde"), 1, 4, 4);
- test(S("abcdefghij"), 5, 4, SV("abcde"), 1, 5, 4);
- test(S("abcdefghij"), 5, 4, SV("abcde"), 2, 0, 4);
- test(S("abcdefghij"), 5, 4, SV("abcde"), 2, 1, 3);
- test(S("abcdefghij"), 5, 4, SV("abcde"), 2, 2, 3);
- test(S("abcdefghij"), 5, 4, SV("abcde"), 2, 3, 3);
- test(S("abcdefghij"), 5, 4, SV("abcde"), 2, 4, 3);
- test(S("abcdefghij"), 5, 4, SV("abcde"), 4, 0, 4);
- test(S("abcdefghij"), 5, 4, SV("abcde"), 4, 1, 1);
- test(S("abcdefghij"), 5, 4, SV("abcde"), 4, 2, 1);
- test(S("abcdefghij"), 5, 4, SV("abcde"), 5, 0, 4);
- test(S("abcdefghij"), 5, 4, SV("abcde"), 5, 1, 4);
- test(S("abcdefghij"), 5, 4, SV("abcde"), 6, 0, 0);
- test(S("abcdefghij"), 5, 4, SV("abcdefghij"), 0, 0, 4);
- test(S("abcdefghij"), 5, 4, SV("abcdefghij"), 0, 1, 5);
- test(S("abcdefghij"), 5, 4, SV("abcdefghij"), 0, 5, 5);
- test(S("abcdefghij"), 5, 4, SV("abcdefghij"), 0, 9, 5);
- test(S("abcdefghij"), 5, 4, SV("abcdefghij"), 0, 10, 5);
- test(S("abcdefghij"), 5, 4, SV("abcdefghij"), 0, 11, 5);
- test(S("abcdefghij"), 5, 4, SV("abcdefghij"), 1, 0, 4);
- test(S("abcdefghij"), 5, 4, SV("abcdefghij"), 1, 1, 4);
- test(S("abcdefghij"), 5, 4, SV("abcdefghij"), 1, 4, 4);
- test(S("abcdefghij"), 5, 4, SV("abcdefghij"), 1, 8, 4);
- test(S("abcdefghij"), 5, 4, SV("abcdefghij"), 1, 9, 4);
- test(S("abcdefghij"), 5, 4, SV("abcdefghij"), 1, 10, 4);
- test(S("abcdefghij"), 5, 4, SV("abcdefghij"), 5, 0, 4);
- test(S("abcdefghij"), 5, 4, SV("abcdefghij"), 5, 1, 3);
- test(S("abcdefghij"), 5, 4, SV("abcdefghij"), 5, 2, 2);
- test(S("abcdefghij"), 5, 4, SV("abcdefghij"), 5, 4, 0);
- test(S("abcdefghij"), 5, 4, SV("abcdefghij"), 5, 5, -1);
- test(S("abcdefghij"), 5, 4, SV("abcdefghij"), 5, 6, -1);
- test(S("abcdefghij"), 5, 4, SV("abcdefghij"), 9, 0, 4);
- test(S("abcdefghij"), 5, 4, SV("abcdefghij"), 9, 1, -4);
- test(S("abcdefghij"), 5, 4, SV("abcdefghij"), 9, 2, -4);
- test(S("abcdefghij"), 5, 4, SV("abcdefghij"), 10, 0, 4);
- test(S("abcdefghij"), 5, 4, SV("abcdefghij"), 10, 1, 4);
- test(S("abcdefghij"), 5, 4, SV("abcdefghij"), 11, 0, 0);
- test(S("abcdefghij"), 5, 4, SV("abcdefghijklmnopqrst"), 0, 0, 4);
- test(S("abcdefghij"), 5, 4, SV("abcdefghijklmnopqrst"), 0, 1, 5);
- test(S("abcdefghij"), 5, 4, SV("abcdefghijklmnopqrst"), 0, 10, 5);
- test(S("abcdefghij"), 5, 4, SV("abcdefghijklmnopqrst"), 0, 19, 5);
- test(S("abcdefghij"), 5, 4, SV("abcdefghijklmnopqrst"), 0, 20, 5);
- test(S("abcdefghij"), 5, 4, SV("abcdefghijklmnopqrst"), 0, 21, 5);
- test(S("abcdefghij"), 5, 4, SV("abcdefghijklmnopqrst"), 1, 0, 4);
- test(S("abcdefghij"), 5, 4, SV("abcdefghijklmnopqrst"), 1, 1, 4);
- test(S("abcdefghij"), 5, 4, SV("abcdefghijklmnopqrst"), 1, 9, 4);
- test(S("abcdefghij"), 5, 4, SV("abcdefghijklmnopqrst"), 1, 18, 4);
- test(S("abcdefghij"), 5, 4, SV("abcdefghijklmnopqrst"), 1, 19, 4);
- test(S("abcdefghij"), 5, 4, SV("abcdefghijklmnopqrst"), 1, 20, 4);
- test(S("abcdefghij"), 5, 4, SV("abcdefghijklmnopqrst"), 10, 0, 4);
- test(S("abcdefghij"), 5, 4, SV("abcdefghijklmnopqrst"), 10, 1, -5);
- test(S("abcdefghij"), 5, 4, SV("abcdefghijklmnopqrst"), 10, 5, -5);
- test(S("abcdefghij"), 5, 4, SV("abcdefghijklmnopqrst"), 10, 9, -5);
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test30() {
+ test(S("abcdefghij"), 5, 2, SV("abcdefghij"), 5, 2, 0);
+ test(S("abcdefghij"), 5, 2, SV("abcdefghij"), 5, 4, -2);
+ test(S("abcdefghij"), 5, 2, SV("abcdefghij"), 5, 5, -3);
+ test(S("abcdefghij"), 5, 2, SV("abcdefghij"), 5, 6, -3);
+ test(S("abcdefghij"), 5, 2, SV("abcdefghij"), 9, 0, 2);
+ test(S("abcdefghij"), 5, 2, SV("abcdefghij"), 9, 1, -4);
+ test(S("abcdefghij"), 5, 2, SV("abcdefghij"), 9, 2, -4);
+ test(S("abcdefghij"), 5, 2, SV("abcdefghij"), 10, 0, 2);
+ test(S("abcdefghij"), 5, 2, SV("abcdefghij"), 10, 1, 2);
+ test(S("abcdefghij"), 5, 2, SV("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghij"), 5, 2, SV("abcdefghijklmnopqrst"), 0, 0, 2);
+ test(S("abcdefghij"), 5, 2, SV("abcdefghijklmnopqrst"), 0, 1, 5);
+ test(S("abcdefghij"), 5, 2, SV("abcdefghijklmnopqrst"), 0, 10, 5);
+ test(S("abcdefghij"), 5, 2, SV("abcdefghijklmnopqrst"), 0, 19, 5);
+ test(S("abcdefghij"), 5, 2, SV("abcdefghijklmnopqrst"), 0, 20, 5);
+ test(S("abcdefghij"), 5, 2, SV("abcdefghijklmnopqrst"), 0, 21, 5);
+ test(S("abcdefghij"), 5, 2, SV("abcdefghijklmnopqrst"), 1, 0, 2);
+ test(S("abcdefghij"), 5, 2, SV("abcdefghijklmnopqrst"), 1, 1, 4);
+ test(S("abcdefghij"), 5, 2, SV("abcdefghijklmnopqrst"), 1, 9, 4);
+ test(S("abcdefghij"), 5, 2, SV("abcdefghijklmnopqrst"), 1, 18, 4);
+ test(S("abcdefghij"), 5, 2, SV("abcdefghijklmnopqrst"), 1, 19, 4);
+ test(S("abcdefghij"), 5, 2, SV("abcdefghijklmnopqrst"), 1, 20, 4);
+ test(S("abcdefghij"), 5, 2, SV("abcdefghijklmnopqrst"), 10, 0, 2);
+ test(S("abcdefghij"), 5, 2, SV("abcdefghijklmnopqrst"), 10, 1, -5);
+ test(S("abcdefghij"), 5, 2, SV("abcdefghijklmnopqrst"), 10, 5, -5);
+ test(S("abcdefghij"), 5, 2, SV("abcdefghijklmnopqrst"), 10, 9, -5);
+ test(S("abcdefghij"), 5, 2, SV("abcdefghijklmnopqrst"), 10, 10, -5);
+ test(S("abcdefghij"), 5, 2, SV("abcdefghijklmnopqrst"), 10, 11, -5);
+ test(S("abcdefghij"), 5, 2, SV("abcdefghijklmnopqrst"), 19, 0, 2);
+ test(S("abcdefghij"), 5, 2, SV("abcdefghijklmnopqrst"), 19, 1, -14);
+ test(S("abcdefghij"), 5, 2, SV("abcdefghijklmnopqrst"), 19, 2, -14);
+ test(S("abcdefghij"), 5, 2, SV("abcdefghijklmnopqrst"), 20, 0, 2);
+ test(S("abcdefghij"), 5, 2, SV("abcdefghijklmnopqrst"), 20, 1, 2);
+ test(S("abcdefghij"), 5, 2, SV("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghij"), 5, 4, SV(""), 0, 0, 4);
+ test(S("abcdefghij"), 5, 4, SV(""), 0, 1, 4);
+ test(S("abcdefghij"), 5, 4, SV(""), 1, 0, 0);
+ test(S("abcdefghij"), 5, 4, SV("abcde"), 0, 0, 4);
+ test(S("abcdefghij"), 5, 4, SV("abcde"), 0, 1, 5);
+ test(S("abcdefghij"), 5, 4, SV("abcde"), 0, 2, 5);
+ test(S("abcdefghij"), 5, 4, SV("abcde"), 0, 4, 5);
+ test(S("abcdefghij"), 5, 4, SV("abcde"), 0, 5, 5);
+ test(S("abcdefghij"), 5, 4, SV("abcde"), 0, 6, 5);
+ test(S("abcdefghij"), 5, 4, SV("abcde"), 1, 0, 4);
+ test(S("abcdefghij"), 5, 4, SV("abcde"), 1, 1, 4);
+ test(S("abcdefghij"), 5, 4, SV("abcde"), 1, 2, 4);
+ test(S("abcdefghij"), 5, 4, SV("abcde"), 1, 3, 4);
+ test(S("abcdefghij"), 5, 4, SV("abcde"), 1, 4, 4);
+ test(S("abcdefghij"), 5, 4, SV("abcde"), 1, 5, 4);
+ test(S("abcdefghij"), 5, 4, SV("abcde"), 2, 0, 4);
+ test(S("abcdefghij"), 5, 4, SV("abcde"), 2, 1, 3);
+ test(S("abcdefghij"), 5, 4, SV("abcde"), 2, 2, 3);
+ test(S("abcdefghij"), 5, 4, SV("abcde"), 2, 3, 3);
+ test(S("abcdefghij"), 5, 4, SV("abcde"), 2, 4, 3);
+ test(S("abcdefghij"), 5, 4, SV("abcde"), 4, 0, 4);
+ test(S("abcdefghij"), 5, 4, SV("abcde"), 4, 1, 1);
+ test(S("abcdefghij"), 5, 4, SV("abcde"), 4, 2, 1);
+ test(S("abcdefghij"), 5, 4, SV("abcde"), 5, 0, 4);
+ test(S("abcdefghij"), 5, 4, SV("abcde"), 5, 1, 4);
+ test(S("abcdefghij"), 5, 4, SV("abcde"), 6, 0, 0);
+ test(S("abcdefghij"), 5, 4, SV("abcdefghij"), 0, 0, 4);
+ test(S("abcdefghij"), 5, 4, SV("abcdefghij"), 0, 1, 5);
+ test(S("abcdefghij"), 5, 4, SV("abcdefghij"), 0, 5, 5);
+ test(S("abcdefghij"), 5, 4, SV("abcdefghij"), 0, 9, 5);
+ test(S("abcdefghij"), 5, 4, SV("abcdefghij"), 0, 10, 5);
+ test(S("abcdefghij"), 5, 4, SV("abcdefghij"), 0, 11, 5);
+ test(S("abcdefghij"), 5, 4, SV("abcdefghij"), 1, 0, 4);
+ test(S("abcdefghij"), 5, 4, SV("abcdefghij"), 1, 1, 4);
+ test(S("abcdefghij"), 5, 4, SV("abcdefghij"), 1, 4, 4);
+ test(S("abcdefghij"), 5, 4, SV("abcdefghij"), 1, 8, 4);
+ test(S("abcdefghij"), 5, 4, SV("abcdefghij"), 1, 9, 4);
+ test(S("abcdefghij"), 5, 4, SV("abcdefghij"), 1, 10, 4);
+ test(S("abcdefghij"), 5, 4, SV("abcdefghij"), 5, 0, 4);
+ test(S("abcdefghij"), 5, 4, SV("abcdefghij"), 5, 1, 3);
+ test(S("abcdefghij"), 5, 4, SV("abcdefghij"), 5, 2, 2);
+ test(S("abcdefghij"), 5, 4, SV("abcdefghij"), 5, 4, 0);
+ test(S("abcdefghij"), 5, 4, SV("abcdefghij"), 5, 5, -1);
+ test(S("abcdefghij"), 5, 4, SV("abcdefghij"), 5, 6, -1);
+ test(S("abcdefghij"), 5, 4, SV("abcdefghij"), 9, 0, 4);
+ test(S("abcdefghij"), 5, 4, SV("abcdefghij"), 9, 1, -4);
+ test(S("abcdefghij"), 5, 4, SV("abcdefghij"), 9, 2, -4);
+ test(S("abcdefghij"), 5, 4, SV("abcdefghij"), 10, 0, 4);
+ test(S("abcdefghij"), 5, 4, SV("abcdefghij"), 10, 1, 4);
+ test(S("abcdefghij"), 5, 4, SV("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghij"), 5, 4, SV("abcdefghijklmnopqrst"), 0, 0, 4);
+ test(S("abcdefghij"), 5, 4, SV("abcdefghijklmnopqrst"), 0, 1, 5);
+ test(S("abcdefghij"), 5, 4, SV("abcdefghijklmnopqrst"), 0, 10, 5);
+ test(S("abcdefghij"), 5, 4, SV("abcdefghijklmnopqrst"), 0, 19, 5);
+ test(S("abcdefghij"), 5, 4, SV("abcdefghijklmnopqrst"), 0, 20, 5);
+ test(S("abcdefghij"), 5, 4, SV("abcdefghijklmnopqrst"), 0, 21, 5);
+ test(S("abcdefghij"), 5, 4, SV("abcdefghijklmnopqrst"), 1, 0, 4);
+ test(S("abcdefghij"), 5, 4, SV("abcdefghijklmnopqrst"), 1, 1, 4);
+ test(S("abcdefghij"), 5, 4, SV("abcdefghijklmnopqrst"), 1, 9, 4);
+ test(S("abcdefghij"), 5, 4, SV("abcdefghijklmnopqrst"), 1, 18, 4);
+ test(S("abcdefghij"), 5, 4, SV("abcdefghijklmnopqrst"), 1, 19, 4);
+ test(S("abcdefghij"), 5, 4, SV("abcdefghijklmnopqrst"), 1, 20, 4);
+ test(S("abcdefghij"), 5, 4, SV("abcdefghijklmnopqrst"), 10, 0, 4);
+ test(S("abcdefghij"), 5, 4, SV("abcdefghijklmnopqrst"), 10, 1, -5);
+ test(S("abcdefghij"), 5, 4, SV("abcdefghijklmnopqrst"), 10, 5, -5);
+ test(S("abcdefghij"), 5, 4, SV("abcdefghijklmnopqrst"), 10, 9, -5);
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test31()
-{
- test(S("abcdefghij"), 5, 4, SV("abcdefghijklmnopqrst"), 10, 10, -5);
- test(S("abcdefghij"), 5, 4, SV("abcdefghijklmnopqrst"), 10, 11, -5);
- test(S("abcdefghij"), 5, 4, SV("abcdefghijklmnopqrst"), 19, 0, 4);
- test(S("abcdefghij"), 5, 4, SV("abcdefghijklmnopqrst"), 19, 1, -14);
- test(S("abcdefghij"), 5, 4, SV("abcdefghijklmnopqrst"), 19, 2, -14);
- test(S("abcdefghij"), 5, 4, SV("abcdefghijklmnopqrst"), 20, 0, 4);
- test(S("abcdefghij"), 5, 4, SV("abcdefghijklmnopqrst"), 20, 1, 4);
- test(S("abcdefghij"), 5, 4, SV("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghij"), 5, 5, SV(""), 0, 0, 5);
- test(S("abcdefghij"), 5, 5, SV(""), 0, 1, 5);
- test(S("abcdefghij"), 5, 5, SV(""), 1, 0, 0);
- test(S("abcdefghij"), 5, 5, SV("abcde"), 0, 0, 5);
- test(S("abcdefghij"), 5, 5, SV("abcde"), 0, 1, 5);
- test(S("abcdefghij"), 5, 5, SV("abcde"), 0, 2, 5);
- test(S("abcdefghij"), 5, 5, SV("abcde"), 0, 4, 5);
- test(S("abcdefghij"), 5, 5, SV("abcde"), 0, 5, 5);
- test(S("abcdefghij"), 5, 5, SV("abcde"), 0, 6, 5);
- test(S("abcdefghij"), 5, 5, SV("abcde"), 1, 0, 5);
- test(S("abcdefghij"), 5, 5, SV("abcde"), 1, 1, 4);
- test(S("abcdefghij"), 5, 5, SV("abcde"), 1, 2, 4);
- test(S("abcdefghij"), 5, 5, SV("abcde"), 1, 3, 4);
- test(S("abcdefghij"), 5, 5, SV("abcde"), 1, 4, 4);
- test(S("abcdefghij"), 5, 5, SV("abcde"), 1, 5, 4);
- test(S("abcdefghij"), 5, 5, SV("abcde"), 2, 0, 5);
- test(S("abcdefghij"), 5, 5, SV("abcde"), 2, 1, 3);
- test(S("abcdefghij"), 5, 5, SV("abcde"), 2, 2, 3);
- test(S("abcdefghij"), 5, 5, SV("abcde"), 2, 3, 3);
- test(S("abcdefghij"), 5, 5, SV("abcde"), 2, 4, 3);
- test(S("abcdefghij"), 5, 5, SV("abcde"), 4, 0, 5);
- test(S("abcdefghij"), 5, 5, SV("abcde"), 4, 1, 1);
- test(S("abcdefghij"), 5, 5, SV("abcde"), 4, 2, 1);
- test(S("abcdefghij"), 5, 5, SV("abcde"), 5, 0, 5);
- test(S("abcdefghij"), 5, 5, SV("abcde"), 5, 1, 5);
- test(S("abcdefghij"), 5, 5, SV("abcde"), 6, 0, 0);
- test(S("abcdefghij"), 5, 5, SV("abcdefghij"), 0, 0, 5);
- test(S("abcdefghij"), 5, 5, SV("abcdefghij"), 0, 1, 5);
- test(S("abcdefghij"), 5, 5, SV("abcdefghij"), 0, 5, 5);
- test(S("abcdefghij"), 5, 5, SV("abcdefghij"), 0, 9, 5);
- test(S("abcdefghij"), 5, 5, SV("abcdefghij"), 0, 10, 5);
- test(S("abcdefghij"), 5, 5, SV("abcdefghij"), 0, 11, 5);
- test(S("abcdefghij"), 5, 5, SV("abcdefghij"), 1, 0, 5);
- test(S("abcdefghij"), 5, 5, SV("abcdefghij"), 1, 1, 4);
- test(S("abcdefghij"), 5, 5, SV("abcdefghij"), 1, 4, 4);
- test(S("abcdefghij"), 5, 5, SV("abcdefghij"), 1, 8, 4);
- test(S("abcdefghij"), 5, 5, SV("abcdefghij"), 1, 9, 4);
- test(S("abcdefghij"), 5, 5, SV("abcdefghij"), 1, 10, 4);
- test(S("abcdefghij"), 5, 5, SV("abcdefghij"), 5, 0, 5);
- test(S("abcdefghij"), 5, 5, SV("abcdefghij"), 5, 1, 4);
- test(S("abcdefghij"), 5, 5, SV("abcdefghij"), 5, 2, 3);
- test(S("abcdefghij"), 5, 5, SV("abcdefghij"), 5, 4, 1);
- test(S("abcdefghij"), 5, 5, SV("abcdefghij"), 5, 5, 0);
- test(S("abcdefghij"), 5, 5, SV("abcdefghij"), 5, 6, 0);
- test(S("abcdefghij"), 5, 5, SV("abcdefghij"), 9, 0, 5);
- test(S("abcdefghij"), 5, 5, SV("abcdefghij"), 9, 1, -4);
- test(S("abcdefghij"), 5, 5, SV("abcdefghij"), 9, 2, -4);
- test(S("abcdefghij"), 5, 5, SV("abcdefghij"), 10, 0, 5);
- test(S("abcdefghij"), 5, 5, SV("abcdefghij"), 10, 1, 5);
- test(S("abcdefghij"), 5, 5, SV("abcdefghij"), 11, 0, 0);
- test(S("abcdefghij"), 5, 5, SV("abcdefghijklmnopqrst"), 0, 0, 5);
- test(S("abcdefghij"), 5, 5, SV("abcdefghijklmnopqrst"), 0, 1, 5);
- test(S("abcdefghij"), 5, 5, SV("abcdefghijklmnopqrst"), 0, 10, 5);
- test(S("abcdefghij"), 5, 5, SV("abcdefghijklmnopqrst"), 0, 19, 5);
- test(S("abcdefghij"), 5, 5, SV("abcdefghijklmnopqrst"), 0, 20, 5);
- test(S("abcdefghij"), 5, 5, SV("abcdefghijklmnopqrst"), 0, 21, 5);
- test(S("abcdefghij"), 5, 5, SV("abcdefghijklmnopqrst"), 1, 0, 5);
- test(S("abcdefghij"), 5, 5, SV("abcdefghijklmnopqrst"), 1, 1, 4);
- test(S("abcdefghij"), 5, 5, SV("abcdefghijklmnopqrst"), 1, 9, 4);
- test(S("abcdefghij"), 5, 5, SV("abcdefghijklmnopqrst"), 1, 18, 4);
- test(S("abcdefghij"), 5, 5, SV("abcdefghijklmnopqrst"), 1, 19, 4);
- test(S("abcdefghij"), 5, 5, SV("abcdefghijklmnopqrst"), 1, 20, 4);
- test(S("abcdefghij"), 5, 5, SV("abcdefghijklmnopqrst"), 10, 0, 5);
- test(S("abcdefghij"), 5, 5, SV("abcdefghijklmnopqrst"), 10, 1, -5);
- test(S("abcdefghij"), 5, 5, SV("abcdefghijklmnopqrst"), 10, 5, -5);
- test(S("abcdefghij"), 5, 5, SV("abcdefghijklmnopqrst"), 10, 9, -5);
- test(S("abcdefghij"), 5, 5, SV("abcdefghijklmnopqrst"), 10, 10, -5);
- test(S("abcdefghij"), 5, 5, SV("abcdefghijklmnopqrst"), 10, 11, -5);
- test(S("abcdefghij"), 5, 5, SV("abcdefghijklmnopqrst"), 19, 0, 5);
- test(S("abcdefghij"), 5, 5, SV("abcdefghijklmnopqrst"), 19, 1, -14);
- test(S("abcdefghij"), 5, 5, SV("abcdefghijklmnopqrst"), 19, 2, -14);
- test(S("abcdefghij"), 5, 5, SV("abcdefghijklmnopqrst"), 20, 0, 5);
- test(S("abcdefghij"), 5, 5, SV("abcdefghijklmnopqrst"), 20, 1, 5);
- test(S("abcdefghij"), 5, 5, SV("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghij"), 5, 6, SV(""), 0, 0, 5);
- test(S("abcdefghij"), 5, 6, SV(""), 0, 1, 5);
- test(S("abcdefghij"), 5, 6, SV(""), 1, 0, 0);
- test(S("abcdefghij"), 5, 6, SV("abcde"), 0, 0, 5);
- test(S("abcdefghij"), 5, 6, SV("abcde"), 0, 1, 5);
- test(S("abcdefghij"), 5, 6, SV("abcde"), 0, 2, 5);
- test(S("abcdefghij"), 5, 6, SV("abcde"), 0, 4, 5);
- test(S("abcdefghij"), 5, 6, SV("abcde"), 0, 5, 5);
- test(S("abcdefghij"), 5, 6, SV("abcde"), 0, 6, 5);
- test(S("abcdefghij"), 5, 6, SV("abcde"), 1, 0, 5);
- test(S("abcdefghij"), 5, 6, SV("abcde"), 1, 1, 4);
- test(S("abcdefghij"), 5, 6, SV("abcde"), 1, 2, 4);
- test(S("abcdefghij"), 5, 6, SV("abcde"), 1, 3, 4);
- test(S("abcdefghij"), 5, 6, SV("abcde"), 1, 4, 4);
- test(S("abcdefghij"), 5, 6, SV("abcde"), 1, 5, 4);
- test(S("abcdefghij"), 5, 6, SV("abcde"), 2, 0, 5);
- test(S("abcdefghij"), 5, 6, SV("abcde"), 2, 1, 3);
- test(S("abcdefghij"), 5, 6, SV("abcde"), 2, 2, 3);
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test31() {
+ test(S("abcdefghij"), 5, 4, SV("abcdefghijklmnopqrst"), 10, 10, -5);
+ test(S("abcdefghij"), 5, 4, SV("abcdefghijklmnopqrst"), 10, 11, -5);
+ test(S("abcdefghij"), 5, 4, SV("abcdefghijklmnopqrst"), 19, 0, 4);
+ test(S("abcdefghij"), 5, 4, SV("abcdefghijklmnopqrst"), 19, 1, -14);
+ test(S("abcdefghij"), 5, 4, SV("abcdefghijklmnopqrst"), 19, 2, -14);
+ test(S("abcdefghij"), 5, 4, SV("abcdefghijklmnopqrst"), 20, 0, 4);
+ test(S("abcdefghij"), 5, 4, SV("abcdefghijklmnopqrst"), 20, 1, 4);
+ test(S("abcdefghij"), 5, 4, SV("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghij"), 5, 5, SV(""), 0, 0, 5);
+ test(S("abcdefghij"), 5, 5, SV(""), 0, 1, 5);
+ test(S("abcdefghij"), 5, 5, SV(""), 1, 0, 0);
+ test(S("abcdefghij"), 5, 5, SV("abcde"), 0, 0, 5);
+ test(S("abcdefghij"), 5, 5, SV("abcde"), 0, 1, 5);
+ test(S("abcdefghij"), 5, 5, SV("abcde"), 0, 2, 5);
+ test(S("abcdefghij"), 5, 5, SV("abcde"), 0, 4, 5);
+ test(S("abcdefghij"), 5, 5, SV("abcde"), 0, 5, 5);
+ test(S("abcdefghij"), 5, 5, SV("abcde"), 0, 6, 5);
+ test(S("abcdefghij"), 5, 5, SV("abcde"), 1, 0, 5);
+ test(S("abcdefghij"), 5, 5, SV("abcde"), 1, 1, 4);
+ test(S("abcdefghij"), 5, 5, SV("abcde"), 1, 2, 4);
+ test(S("abcdefghij"), 5, 5, SV("abcde"), 1, 3, 4);
+ test(S("abcdefghij"), 5, 5, SV("abcde"), 1, 4, 4);
+ test(S("abcdefghij"), 5, 5, SV("abcde"), 1, 5, 4);
+ test(S("abcdefghij"), 5, 5, SV("abcde"), 2, 0, 5);
+ test(S("abcdefghij"), 5, 5, SV("abcde"), 2, 1, 3);
+ test(S("abcdefghij"), 5, 5, SV("abcde"), 2, 2, 3);
+ test(S("abcdefghij"), 5, 5, SV("abcde"), 2, 3, 3);
+ test(S("abcdefghij"), 5, 5, SV("abcde"), 2, 4, 3);
+ test(S("abcdefghij"), 5, 5, SV("abcde"), 4, 0, 5);
+ test(S("abcdefghij"), 5, 5, SV("abcde"), 4, 1, 1);
+ test(S("abcdefghij"), 5, 5, SV("abcde"), 4, 2, 1);
+ test(S("abcdefghij"), 5, 5, SV("abcde"), 5, 0, 5);
+ test(S("abcdefghij"), 5, 5, SV("abcde"), 5, 1, 5);
+ test(S("abcdefghij"), 5, 5, SV("abcde"), 6, 0, 0);
+ test(S("abcdefghij"), 5, 5, SV("abcdefghij"), 0, 0, 5);
+ test(S("abcdefghij"), 5, 5, SV("abcdefghij"), 0, 1, 5);
+ test(S("abcdefghij"), 5, 5, SV("abcdefghij"), 0, 5, 5);
+ test(S("abcdefghij"), 5, 5, SV("abcdefghij"), 0, 9, 5);
+ test(S("abcdefghij"), 5, 5, SV("abcdefghij"), 0, 10, 5);
+ test(S("abcdefghij"), 5, 5, SV("abcdefghij"), 0, 11, 5);
+ test(S("abcdefghij"), 5, 5, SV("abcdefghij"), 1, 0, 5);
+ test(S("abcdefghij"), 5, 5, SV("abcdefghij"), 1, 1, 4);
+ test(S("abcdefghij"), 5, 5, SV("abcdefghij"), 1, 4, 4);
+ test(S("abcdefghij"), 5, 5, SV("abcdefghij"), 1, 8, 4);
+ test(S("abcdefghij"), 5, 5, SV("abcdefghij"), 1, 9, 4);
+ test(S("abcdefghij"), 5, 5, SV("abcdefghij"), 1, 10, 4);
+ test(S("abcdefghij"), 5, 5, SV("abcdefghij"), 5, 0, 5);
+ test(S("abcdefghij"), 5, 5, SV("abcdefghij"), 5, 1, 4);
+ test(S("abcdefghij"), 5, 5, SV("abcdefghij"), 5, 2, 3);
+ test(S("abcdefghij"), 5, 5, SV("abcdefghij"), 5, 4, 1);
+ test(S("abcdefghij"), 5, 5, SV("abcdefghij"), 5, 5, 0);
+ test(S("abcdefghij"), 5, 5, SV("abcdefghij"), 5, 6, 0);
+ test(S("abcdefghij"), 5, 5, SV("abcdefghij"), 9, 0, 5);
+ test(S("abcdefghij"), 5, 5, SV("abcdefghij"), 9, 1, -4);
+ test(S("abcdefghij"), 5, 5, SV("abcdefghij"), 9, 2, -4);
+ test(S("abcdefghij"), 5, 5, SV("abcdefghij"), 10, 0, 5);
+ test(S("abcdefghij"), 5, 5, SV("abcdefghij"), 10, 1, 5);
+ test(S("abcdefghij"), 5, 5, SV("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghij"), 5, 5, SV("abcdefghijklmnopqrst"), 0, 0, 5);
+ test(S("abcdefghij"), 5, 5, SV("abcdefghijklmnopqrst"), 0, 1, 5);
+ test(S("abcdefghij"), 5, 5, SV("abcdefghijklmnopqrst"), 0, 10, 5);
+ test(S("abcdefghij"), 5, 5, SV("abcdefghijklmnopqrst"), 0, 19, 5);
+ test(S("abcdefghij"), 5, 5, SV("abcdefghijklmnopqrst"), 0, 20, 5);
+ test(S("abcdefghij"), 5, 5, SV("abcdefghijklmnopqrst"), 0, 21, 5);
+ test(S("abcdefghij"), 5, 5, SV("abcdefghijklmnopqrst"), 1, 0, 5);
+ test(S("abcdefghij"), 5, 5, SV("abcdefghijklmnopqrst"), 1, 1, 4);
+ test(S("abcdefghij"), 5, 5, SV("abcdefghijklmnopqrst"), 1, 9, 4);
+ test(S("abcdefghij"), 5, 5, SV("abcdefghijklmnopqrst"), 1, 18, 4);
+ test(S("abcdefghij"), 5, 5, SV("abcdefghijklmnopqrst"), 1, 19, 4);
+ test(S("abcdefghij"), 5, 5, SV("abcdefghijklmnopqrst"), 1, 20, 4);
+ test(S("abcdefghij"), 5, 5, SV("abcdefghijklmnopqrst"), 10, 0, 5);
+ test(S("abcdefghij"), 5, 5, SV("abcdefghijklmnopqrst"), 10, 1, -5);
+ test(S("abcdefghij"), 5, 5, SV("abcdefghijklmnopqrst"), 10, 5, -5);
+ test(S("abcdefghij"), 5, 5, SV("abcdefghijklmnopqrst"), 10, 9, -5);
+ test(S("abcdefghij"), 5, 5, SV("abcdefghijklmnopqrst"), 10, 10, -5);
+ test(S("abcdefghij"), 5, 5, SV("abcdefghijklmnopqrst"), 10, 11, -5);
+ test(S("abcdefghij"), 5, 5, SV("abcdefghijklmnopqrst"), 19, 0, 5);
+ test(S("abcdefghij"), 5, 5, SV("abcdefghijklmnopqrst"), 19, 1, -14);
+ test(S("abcdefghij"), 5, 5, SV("abcdefghijklmnopqrst"), 19, 2, -14);
+ test(S("abcdefghij"), 5, 5, SV("abcdefghijklmnopqrst"), 20, 0, 5);
+ test(S("abcdefghij"), 5, 5, SV("abcdefghijklmnopqrst"), 20, 1, 5);
+ test(S("abcdefghij"), 5, 5, SV("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghij"), 5, 6, SV(""), 0, 0, 5);
+ test(S("abcdefghij"), 5, 6, SV(""), 0, 1, 5);
+ test(S("abcdefghij"), 5, 6, SV(""), 1, 0, 0);
+ test(S("abcdefghij"), 5, 6, SV("abcde"), 0, 0, 5);
+ test(S("abcdefghij"), 5, 6, SV("abcde"), 0, 1, 5);
+ test(S("abcdefghij"), 5, 6, SV("abcde"), 0, 2, 5);
+ test(S("abcdefghij"), 5, 6, SV("abcde"), 0, 4, 5);
+ test(S("abcdefghij"), 5, 6, SV("abcde"), 0, 5, 5);
+ test(S("abcdefghij"), 5, 6, SV("abcde"), 0, 6, 5);
+ test(S("abcdefghij"), 5, 6, SV("abcde"), 1, 0, 5);
+ test(S("abcdefghij"), 5, 6, SV("abcde"), 1, 1, 4);
+ test(S("abcdefghij"), 5, 6, SV("abcde"), 1, 2, 4);
+ test(S("abcdefghij"), 5, 6, SV("abcde"), 1, 3, 4);
+ test(S("abcdefghij"), 5, 6, SV("abcde"), 1, 4, 4);
+ test(S("abcdefghij"), 5, 6, SV("abcde"), 1, 5, 4);
+ test(S("abcdefghij"), 5, 6, SV("abcde"), 2, 0, 5);
+ test(S("abcdefghij"), 5, 6, SV("abcde"), 2, 1, 3);
+ test(S("abcdefghij"), 5, 6, SV("abcde"), 2, 2, 3);
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test32()
-{
- test(S("abcdefghij"), 5, 6, SV("abcde"), 2, 3, 3);
- test(S("abcdefghij"), 5, 6, SV("abcde"), 2, 4, 3);
- test(S("abcdefghij"), 5, 6, SV("abcde"), 4, 0, 5);
- test(S("abcdefghij"), 5, 6, SV("abcde"), 4, 1, 1);
- test(S("abcdefghij"), 5, 6, SV("abcde"), 4, 2, 1);
- test(S("abcdefghij"), 5, 6, SV("abcde"), 5, 0, 5);
- test(S("abcdefghij"), 5, 6, SV("abcde"), 5, 1, 5);
- test(S("abcdefghij"), 5, 6, SV("abcde"), 6, 0, 0);
- test(S("abcdefghij"), 5, 6, SV("abcdefghij"), 0, 0, 5);
- test(S("abcdefghij"), 5, 6, SV("abcdefghij"), 0, 1, 5);
- test(S("abcdefghij"), 5, 6, SV("abcdefghij"), 0, 5, 5);
- test(S("abcdefghij"), 5, 6, SV("abcdefghij"), 0, 9, 5);
- test(S("abcdefghij"), 5, 6, SV("abcdefghij"), 0, 10, 5);
- test(S("abcdefghij"), 5, 6, SV("abcdefghij"), 0, 11, 5);
- test(S("abcdefghij"), 5, 6, SV("abcdefghij"), 1, 0, 5);
- test(S("abcdefghij"), 5, 6, SV("abcdefghij"), 1, 1, 4);
- test(S("abcdefghij"), 5, 6, SV("abcdefghij"), 1, 4, 4);
- test(S("abcdefghij"), 5, 6, SV("abcdefghij"), 1, 8, 4);
- test(S("abcdefghij"), 5, 6, SV("abcdefghij"), 1, 9, 4);
- test(S("abcdefghij"), 5, 6, SV("abcdefghij"), 1, 10, 4);
- test(S("abcdefghij"), 5, 6, SV("abcdefghij"), 5, 0, 5);
- test(S("abcdefghij"), 5, 6, SV("abcdefghij"), 5, 1, 4);
- test(S("abcdefghij"), 5, 6, SV("abcdefghij"), 5, 2, 3);
- test(S("abcdefghij"), 5, 6, SV("abcdefghij"), 5, 4, 1);
- test(S("abcdefghij"), 5, 6, SV("abcdefghij"), 5, 5, 0);
- test(S("abcdefghij"), 5, 6, SV("abcdefghij"), 5, 6, 0);
- test(S("abcdefghij"), 5, 6, SV("abcdefghij"), 9, 0, 5);
- test(S("abcdefghij"), 5, 6, SV("abcdefghij"), 9, 1, -4);
- test(S("abcdefghij"), 5, 6, SV("abcdefghij"), 9, 2, -4);
- test(S("abcdefghij"), 5, 6, SV("abcdefghij"), 10, 0, 5);
- test(S("abcdefghij"), 5, 6, SV("abcdefghij"), 10, 1, 5);
- test(S("abcdefghij"), 5, 6, SV("abcdefghij"), 11, 0, 0);
- test(S("abcdefghij"), 5, 6, SV("abcdefghijklmnopqrst"), 0, 0, 5);
- test(S("abcdefghij"), 5, 6, SV("abcdefghijklmnopqrst"), 0, 1, 5);
- test(S("abcdefghij"), 5, 6, SV("abcdefghijklmnopqrst"), 0, 10, 5);
- test(S("abcdefghij"), 5, 6, SV("abcdefghijklmnopqrst"), 0, 19, 5);
- test(S("abcdefghij"), 5, 6, SV("abcdefghijklmnopqrst"), 0, 20, 5);
- test(S("abcdefghij"), 5, 6, SV("abcdefghijklmnopqrst"), 0, 21, 5);
- test(S("abcdefghij"), 5, 6, SV("abcdefghijklmnopqrst"), 1, 0, 5);
- test(S("abcdefghij"), 5, 6, SV("abcdefghijklmnopqrst"), 1, 1, 4);
- test(S("abcdefghij"), 5, 6, SV("abcdefghijklmnopqrst"), 1, 9, 4);
- test(S("abcdefghij"), 5, 6, SV("abcdefghijklmnopqrst"), 1, 18, 4);
- test(S("abcdefghij"), 5, 6, SV("abcdefghijklmnopqrst"), 1, 19, 4);
- test(S("abcdefghij"), 5, 6, SV("abcdefghijklmnopqrst"), 1, 20, 4);
- test(S("abcdefghij"), 5, 6, SV("abcdefghijklmnopqrst"), 10, 0, 5);
- test(S("abcdefghij"), 5, 6, SV("abcdefghijklmnopqrst"), 10, 1, -5);
- test(S("abcdefghij"), 5, 6, SV("abcdefghijklmnopqrst"), 10, 5, -5);
- test(S("abcdefghij"), 5, 6, SV("abcdefghijklmnopqrst"), 10, 9, -5);
- test(S("abcdefghij"), 5, 6, SV("abcdefghijklmnopqrst"), 10, 10, -5);
- test(S("abcdefghij"), 5, 6, SV("abcdefghijklmnopqrst"), 10, 11, -5);
- test(S("abcdefghij"), 5, 6, SV("abcdefghijklmnopqrst"), 19, 0, 5);
- test(S("abcdefghij"), 5, 6, SV("abcdefghijklmnopqrst"), 19, 1, -14);
- test(S("abcdefghij"), 5, 6, SV("abcdefghijklmnopqrst"), 19, 2, -14);
- test(S("abcdefghij"), 5, 6, SV("abcdefghijklmnopqrst"), 20, 0, 5);
- test(S("abcdefghij"), 5, 6, SV("abcdefghijklmnopqrst"), 20, 1, 5);
- test(S("abcdefghij"), 5, 6, SV("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghij"), 9, 0, SV(""), 0, 0, 0);
- test(S("abcdefghij"), 9, 0, SV(""), 0, 1, 0);
- test(S("abcdefghij"), 9, 0, SV(""), 1, 0, 0);
- test(S("abcdefghij"), 9, 0, SV("abcde"), 0, 0, 0);
- test(S("abcdefghij"), 9, 0, SV("abcde"), 0, 1, -1);
- test(S("abcdefghij"), 9, 0, SV("abcde"), 0, 2, -2);
- test(S("abcdefghij"), 9, 0, SV("abcde"), 0, 4, -4);
- test(S("abcdefghij"), 9, 0, SV("abcde"), 0, 5, -5);
- test(S("abcdefghij"), 9, 0, SV("abcde"), 0, 6, -5);
- test(S("abcdefghij"), 9, 0, SV("abcde"), 1, 0, 0);
- test(S("abcdefghij"), 9, 0, SV("abcde"), 1, 1, -1);
- test(S("abcdefghij"), 9, 0, SV("abcde"), 1, 2, -2);
- test(S("abcdefghij"), 9, 0, SV("abcde"), 1, 3, -3);
- test(S("abcdefghij"), 9, 0, SV("abcde"), 1, 4, -4);
- test(S("abcdefghij"), 9, 0, SV("abcde"), 1, 5, -4);
- test(S("abcdefghij"), 9, 0, SV("abcde"), 2, 0, 0);
- test(S("abcdefghij"), 9, 0, SV("abcde"), 2, 1, -1);
- test(S("abcdefghij"), 9, 0, SV("abcde"), 2, 2, -2);
- test(S("abcdefghij"), 9, 0, SV("abcde"), 2, 3, -3);
- test(S("abcdefghij"), 9, 0, SV("abcde"), 2, 4, -3);
- test(S("abcdefghij"), 9, 0, SV("abcde"), 4, 0, 0);
- test(S("abcdefghij"), 9, 0, SV("abcde"), 4, 1, -1);
- test(S("abcdefghij"), 9, 0, SV("abcde"), 4, 2, -1);
- test(S("abcdefghij"), 9, 0, SV("abcde"), 5, 0, 0);
- test(S("abcdefghij"), 9, 0, SV("abcde"), 5, 1, 0);
- test(S("abcdefghij"), 9, 0, SV("abcde"), 6, 0, 0);
- test(S("abcdefghij"), 9, 0, SV("abcdefghij"), 0, 0, 0);
- test(S("abcdefghij"), 9, 0, SV("abcdefghij"), 0, 1, -1);
- test(S("abcdefghij"), 9, 0, SV("abcdefghij"), 0, 5, -5);
- test(S("abcdefghij"), 9, 0, SV("abcdefghij"), 0, 9, -9);
- test(S("abcdefghij"), 9, 0, SV("abcdefghij"), 0, 10, -10);
- test(S("abcdefghij"), 9, 0, SV("abcdefghij"), 0, 11, -10);
- test(S("abcdefghij"), 9, 0, SV("abcdefghij"), 1, 0, 0);
- test(S("abcdefghij"), 9, 0, SV("abcdefghij"), 1, 1, -1);
- test(S("abcdefghij"), 9, 0, SV("abcdefghij"), 1, 4, -4);
- test(S("abcdefghij"), 9, 0, SV("abcdefghij"), 1, 8, -8);
- test(S("abcdefghij"), 9, 0, SV("abcdefghij"), 1, 9, -9);
- test(S("abcdefghij"), 9, 0, SV("abcdefghij"), 1, 10, -9);
- test(S("abcdefghij"), 9, 0, SV("abcdefghij"), 5, 0, 0);
- test(S("abcdefghij"), 9, 0, SV("abcdefghij"), 5, 1, -1);
- test(S("abcdefghij"), 9, 0, SV("abcdefghij"), 5, 2, -2);
- test(S("abcdefghij"), 9, 0, SV("abcdefghij"), 5, 4, -4);
- test(S("abcdefghij"), 9, 0, SV("abcdefghij"), 5, 5, -5);
- test(S("abcdefghij"), 9, 0, SV("abcdefghij"), 5, 6, -5);
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test32() {
+ test(S("abcdefghij"), 5, 6, SV("abcde"), 2, 3, 3);
+ test(S("abcdefghij"), 5, 6, SV("abcde"), 2, 4, 3);
+ test(S("abcdefghij"), 5, 6, SV("abcde"), 4, 0, 5);
+ test(S("abcdefghij"), 5, 6, SV("abcde"), 4, 1, 1);
+ test(S("abcdefghij"), 5, 6, SV("abcde"), 4, 2, 1);
+ test(S("abcdefghij"), 5, 6, SV("abcde"), 5, 0, 5);
+ test(S("abcdefghij"), 5, 6, SV("abcde"), 5, 1, 5);
+ test(S("abcdefghij"), 5, 6, SV("abcde"), 6, 0, 0);
+ test(S("abcdefghij"), 5, 6, SV("abcdefghij"), 0, 0, 5);
+ test(S("abcdefghij"), 5, 6, SV("abcdefghij"), 0, 1, 5);
+ test(S("abcdefghij"), 5, 6, SV("abcdefghij"), 0, 5, 5);
+ test(S("abcdefghij"), 5, 6, SV("abcdefghij"), 0, 9, 5);
+ test(S("abcdefghij"), 5, 6, SV("abcdefghij"), 0, 10, 5);
+ test(S("abcdefghij"), 5, 6, SV("abcdefghij"), 0, 11, 5);
+ test(S("abcdefghij"), 5, 6, SV("abcdefghij"), 1, 0, 5);
+ test(S("abcdefghij"), 5, 6, SV("abcdefghij"), 1, 1, 4);
+ test(S("abcdefghij"), 5, 6, SV("abcdefghij"), 1, 4, 4);
+ test(S("abcdefghij"), 5, 6, SV("abcdefghij"), 1, 8, 4);
+ test(S("abcdefghij"), 5, 6, SV("abcdefghij"), 1, 9, 4);
+ test(S("abcdefghij"), 5, 6, SV("abcdefghij"), 1, 10, 4);
+ test(S("abcdefghij"), 5, 6, SV("abcdefghij"), 5, 0, 5);
+ test(S("abcdefghij"), 5, 6, SV("abcdefghij"), 5, 1, 4);
+ test(S("abcdefghij"), 5, 6, SV("abcdefghij"), 5, 2, 3);
+ test(S("abcdefghij"), 5, 6, SV("abcdefghij"), 5, 4, 1);
+ test(S("abcdefghij"), 5, 6, SV("abcdefghij"), 5, 5, 0);
+ test(S("abcdefghij"), 5, 6, SV("abcdefghij"), 5, 6, 0);
+ test(S("abcdefghij"), 5, 6, SV("abcdefghij"), 9, 0, 5);
+ test(S("abcdefghij"), 5, 6, SV("abcdefghij"), 9, 1, -4);
+ test(S("abcdefghij"), 5, 6, SV("abcdefghij"), 9, 2, -4);
+ test(S("abcdefghij"), 5, 6, SV("abcdefghij"), 10, 0, 5);
+ test(S("abcdefghij"), 5, 6, SV("abcdefghij"), 10, 1, 5);
+ test(S("abcdefghij"), 5, 6, SV("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghij"), 5, 6, SV("abcdefghijklmnopqrst"), 0, 0, 5);
+ test(S("abcdefghij"), 5, 6, SV("abcdefghijklmnopqrst"), 0, 1, 5);
+ test(S("abcdefghij"), 5, 6, SV("abcdefghijklmnopqrst"), 0, 10, 5);
+ test(S("abcdefghij"), 5, 6, SV("abcdefghijklmnopqrst"), 0, 19, 5);
+ test(S("abcdefghij"), 5, 6, SV("abcdefghijklmnopqrst"), 0, 20, 5);
+ test(S("abcdefghij"), 5, 6, SV("abcdefghijklmnopqrst"), 0, 21, 5);
+ test(S("abcdefghij"), 5, 6, SV("abcdefghijklmnopqrst"), 1, 0, 5);
+ test(S("abcdefghij"), 5, 6, SV("abcdefghijklmnopqrst"), 1, 1, 4);
+ test(S("abcdefghij"), 5, 6, SV("abcdefghijklmnopqrst"), 1, 9, 4);
+ test(S("abcdefghij"), 5, 6, SV("abcdefghijklmnopqrst"), 1, 18, 4);
+ test(S("abcdefghij"), 5, 6, SV("abcdefghijklmnopqrst"), 1, 19, 4);
+ test(S("abcdefghij"), 5, 6, SV("abcdefghijklmnopqrst"), 1, 20, 4);
+ test(S("abcdefghij"), 5, 6, SV("abcdefghijklmnopqrst"), 10, 0, 5);
+ test(S("abcdefghij"), 5, 6, SV("abcdefghijklmnopqrst"), 10, 1, -5);
+ test(S("abcdefghij"), 5, 6, SV("abcdefghijklmnopqrst"), 10, 5, -5);
+ test(S("abcdefghij"), 5, 6, SV("abcdefghijklmnopqrst"), 10, 9, -5);
+ test(S("abcdefghij"), 5, 6, SV("abcdefghijklmnopqrst"), 10, 10, -5);
+ test(S("abcdefghij"), 5, 6, SV("abcdefghijklmnopqrst"), 10, 11, -5);
+ test(S("abcdefghij"), 5, 6, SV("abcdefghijklmnopqrst"), 19, 0, 5);
+ test(S("abcdefghij"), 5, 6, SV("abcdefghijklmnopqrst"), 19, 1, -14);
+ test(S("abcdefghij"), 5, 6, SV("abcdefghijklmnopqrst"), 19, 2, -14);
+ test(S("abcdefghij"), 5, 6, SV("abcdefghijklmnopqrst"), 20, 0, 5);
+ test(S("abcdefghij"), 5, 6, SV("abcdefghijklmnopqrst"), 20, 1, 5);
+ test(S("abcdefghij"), 5, 6, SV("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghij"), 9, 0, SV(""), 0, 0, 0);
+ test(S("abcdefghij"), 9, 0, SV(""), 0, 1, 0);
+ test(S("abcdefghij"), 9, 0, SV(""), 1, 0, 0);
+ test(S("abcdefghij"), 9, 0, SV("abcde"), 0, 0, 0);
+ test(S("abcdefghij"), 9, 0, SV("abcde"), 0, 1, -1);
+ test(S("abcdefghij"), 9, 0, SV("abcde"), 0, 2, -2);
+ test(S("abcdefghij"), 9, 0, SV("abcde"), 0, 4, -4);
+ test(S("abcdefghij"), 9, 0, SV("abcde"), 0, 5, -5);
+ test(S("abcdefghij"), 9, 0, SV("abcde"), 0, 6, -5);
+ test(S("abcdefghij"), 9, 0, SV("abcde"), 1, 0, 0);
+ test(S("abcdefghij"), 9, 0, SV("abcde"), 1, 1, -1);
+ test(S("abcdefghij"), 9, 0, SV("abcde"), 1, 2, -2);
+ test(S("abcdefghij"), 9, 0, SV("abcde"), 1, 3, -3);
+ test(S("abcdefghij"), 9, 0, SV("abcde"), 1, 4, -4);
+ test(S("abcdefghij"), 9, 0, SV("abcde"), 1, 5, -4);
+ test(S("abcdefghij"), 9, 0, SV("abcde"), 2, 0, 0);
+ test(S("abcdefghij"), 9, 0, SV("abcde"), 2, 1, -1);
+ test(S("abcdefghij"), 9, 0, SV("abcde"), 2, 2, -2);
+ test(S("abcdefghij"), 9, 0, SV("abcde"), 2, 3, -3);
+ test(S("abcdefghij"), 9, 0, SV("abcde"), 2, 4, -3);
+ test(S("abcdefghij"), 9, 0, SV("abcde"), 4, 0, 0);
+ test(S("abcdefghij"), 9, 0, SV("abcde"), 4, 1, -1);
+ test(S("abcdefghij"), 9, 0, SV("abcde"), 4, 2, -1);
+ test(S("abcdefghij"), 9, 0, SV("abcde"), 5, 0, 0);
+ test(S("abcdefghij"), 9, 0, SV("abcde"), 5, 1, 0);
+ test(S("abcdefghij"), 9, 0, SV("abcde"), 6, 0, 0);
+ test(S("abcdefghij"), 9, 0, SV("abcdefghij"), 0, 0, 0);
+ test(S("abcdefghij"), 9, 0, SV("abcdefghij"), 0, 1, -1);
+ test(S("abcdefghij"), 9, 0, SV("abcdefghij"), 0, 5, -5);
+ test(S("abcdefghij"), 9, 0, SV("abcdefghij"), 0, 9, -9);
+ test(S("abcdefghij"), 9, 0, SV("abcdefghij"), 0, 10, -10);
+ test(S("abcdefghij"), 9, 0, SV("abcdefghij"), 0, 11, -10);
+ test(S("abcdefghij"), 9, 0, SV("abcdefghij"), 1, 0, 0);
+ test(S("abcdefghij"), 9, 0, SV("abcdefghij"), 1, 1, -1);
+ test(S("abcdefghij"), 9, 0, SV("abcdefghij"), 1, 4, -4);
+ test(S("abcdefghij"), 9, 0, SV("abcdefghij"), 1, 8, -8);
+ test(S("abcdefghij"), 9, 0, SV("abcdefghij"), 1, 9, -9);
+ test(S("abcdefghij"), 9, 0, SV("abcdefghij"), 1, 10, -9);
+ test(S("abcdefghij"), 9, 0, SV("abcdefghij"), 5, 0, 0);
+ test(S("abcdefghij"), 9, 0, SV("abcdefghij"), 5, 1, -1);
+ test(S("abcdefghij"), 9, 0, SV("abcdefghij"), 5, 2, -2);
+ test(S("abcdefghij"), 9, 0, SV("abcdefghij"), 5, 4, -4);
+ test(S("abcdefghij"), 9, 0, SV("abcdefghij"), 5, 5, -5);
+ test(S("abcdefghij"), 9, 0, SV("abcdefghij"), 5, 6, -5);
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test33()
-{
- test(S("abcdefghij"), 9, 0, SV("abcdefghij"), 9, 0, 0);
- test(S("abcdefghij"), 9, 0, SV("abcdefghij"), 9, 1, -1);
- test(S("abcdefghij"), 9, 0, SV("abcdefghij"), 9, 2, -1);
- test(S("abcdefghij"), 9, 0, SV("abcdefghij"), 10, 0, 0);
- test(S("abcdefghij"), 9, 0, SV("abcdefghij"), 10, 1, 0);
- test(S("abcdefghij"), 9, 0, SV("abcdefghij"), 11, 0, 0);
- test(S("abcdefghij"), 9, 0, SV("abcdefghijklmnopqrst"), 0, 0, 0);
- test(S("abcdefghij"), 9, 0, SV("abcdefghijklmnopqrst"), 0, 1, -1);
- test(S("abcdefghij"), 9, 0, SV("abcdefghijklmnopqrst"), 0, 10, -10);
- test(S("abcdefghij"), 9, 0, SV("abcdefghijklmnopqrst"), 0, 19, -19);
- test(S("abcdefghij"), 9, 0, SV("abcdefghijklmnopqrst"), 0, 20, -20);
- test(S("abcdefghij"), 9, 0, SV("abcdefghijklmnopqrst"), 0, 21, -20);
- test(S("abcdefghij"), 9, 0, SV("abcdefghijklmnopqrst"), 1, 0, 0);
- test(S("abcdefghij"), 9, 0, SV("abcdefghijklmnopqrst"), 1, 1, -1);
- test(S("abcdefghij"), 9, 0, SV("abcdefghijklmnopqrst"), 1, 9, -9);
- test(S("abcdefghij"), 9, 0, SV("abcdefghijklmnopqrst"), 1, 18, -18);
- test(S("abcdefghij"), 9, 0, SV("abcdefghijklmnopqrst"), 1, 19, -19);
- test(S("abcdefghij"), 9, 0, SV("abcdefghijklmnopqrst"), 1, 20, -19);
- test(S("abcdefghij"), 9, 0, SV("abcdefghijklmnopqrst"), 10, 0, 0);
- test(S("abcdefghij"), 9, 0, SV("abcdefghijklmnopqrst"), 10, 1, -1);
- test(S("abcdefghij"), 9, 0, SV("abcdefghijklmnopqrst"), 10, 5, -5);
- test(S("abcdefghij"), 9, 0, SV("abcdefghijklmnopqrst"), 10, 9, -9);
- test(S("abcdefghij"), 9, 0, SV("abcdefghijklmnopqrst"), 10, 10, -10);
- test(S("abcdefghij"), 9, 0, SV("abcdefghijklmnopqrst"), 10, 11, -10);
- test(S("abcdefghij"), 9, 0, SV("abcdefghijklmnopqrst"), 19, 0, 0);
- test(S("abcdefghij"), 9, 0, SV("abcdefghijklmnopqrst"), 19, 1, -1);
- test(S("abcdefghij"), 9, 0, SV("abcdefghijklmnopqrst"), 19, 2, -1);
- test(S("abcdefghij"), 9, 0, SV("abcdefghijklmnopqrst"), 20, 0, 0);
- test(S("abcdefghij"), 9, 0, SV("abcdefghijklmnopqrst"), 20, 1, 0);
- test(S("abcdefghij"), 9, 0, SV("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghij"), 9, 1, SV(""), 0, 0, 1);
- test(S("abcdefghij"), 9, 1, SV(""), 0, 1, 1);
- test(S("abcdefghij"), 9, 1, SV(""), 1, 0, 0);
- test(S("abcdefghij"), 9, 1, SV("abcde"), 0, 0, 1);
- test(S("abcdefghij"), 9, 1, SV("abcde"), 0, 1, 9);
- test(S("abcdefghij"), 9, 1, SV("abcde"), 0, 2, 9);
- test(S("abcdefghij"), 9, 1, SV("abcde"), 0, 4, 9);
- test(S("abcdefghij"), 9, 1, SV("abcde"), 0, 5, 9);
- test(S("abcdefghij"), 9, 1, SV("abcde"), 0, 6, 9);
- test(S("abcdefghij"), 9, 1, SV("abcde"), 1, 0, 1);
- test(S("abcdefghij"), 9, 1, SV("abcde"), 1, 1, 8);
- test(S("abcdefghij"), 9, 1, SV("abcde"), 1, 2, 8);
- test(S("abcdefghij"), 9, 1, SV("abcde"), 1, 3, 8);
- test(S("abcdefghij"), 9, 1, SV("abcde"), 1, 4, 8);
- test(S("abcdefghij"), 9, 1, SV("abcde"), 1, 5, 8);
- test(S("abcdefghij"), 9, 1, SV("abcde"), 2, 0, 1);
- test(S("abcdefghij"), 9, 1, SV("abcde"), 2, 1, 7);
- test(S("abcdefghij"), 9, 1, SV("abcde"), 2, 2, 7);
- test(S("abcdefghij"), 9, 1, SV("abcde"), 2, 3, 7);
- test(S("abcdefghij"), 9, 1, SV("abcde"), 2, 4, 7);
- test(S("abcdefghij"), 9, 1, SV("abcde"), 4, 0, 1);
- test(S("abcdefghij"), 9, 1, SV("abcde"), 4, 1, 5);
- test(S("abcdefghij"), 9, 1, SV("abcde"), 4, 2, 5);
- test(S("abcdefghij"), 9, 1, SV("abcde"), 5, 0, 1);
- test(S("abcdefghij"), 9, 1, SV("abcde"), 5, 1, 1);
- test(S("abcdefghij"), 9, 1, SV("abcde"), 6, 0, 0);
- test(S("abcdefghij"), 9, 1, SV("abcdefghij"), 0, 0, 1);
- test(S("abcdefghij"), 9, 1, SV("abcdefghij"), 0, 1, 9);
- test(S("abcdefghij"), 9, 1, SV("abcdefghij"), 0, 5, 9);
- test(S("abcdefghij"), 9, 1, SV("abcdefghij"), 0, 9, 9);
- test(S("abcdefghij"), 9, 1, SV("abcdefghij"), 0, 10, 9);
- test(S("abcdefghij"), 9, 1, SV("abcdefghij"), 0, 11, 9);
- test(S("abcdefghij"), 9, 1, SV("abcdefghij"), 1, 0, 1);
- test(S("abcdefghij"), 9, 1, SV("abcdefghij"), 1, 1, 8);
- test(S("abcdefghij"), 9, 1, SV("abcdefghij"), 1, 4, 8);
- test(S("abcdefghij"), 9, 1, SV("abcdefghij"), 1, 8, 8);
- test(S("abcdefghij"), 9, 1, SV("abcdefghij"), 1, 9, 8);
- test(S("abcdefghij"), 9, 1, SV("abcdefghij"), 1, 10, 8);
- test(S("abcdefghij"), 9, 1, SV("abcdefghij"), 5, 0, 1);
- test(S("abcdefghij"), 9, 1, SV("abcdefghij"), 5, 1, 4);
- test(S("abcdefghij"), 9, 1, SV("abcdefghij"), 5, 2, 4);
- test(S("abcdefghij"), 9, 1, SV("abcdefghij"), 5, 4, 4);
- test(S("abcdefghij"), 9, 1, SV("abcdefghij"), 5, 5, 4);
- test(S("abcdefghij"), 9, 1, SV("abcdefghij"), 5, 6, 4);
- test(S("abcdefghij"), 9, 1, SV("abcdefghij"), 9, 0, 1);
- test(S("abcdefghij"), 9, 1, SV("abcdefghij"), 9, 1, 0);
- test(S("abcdefghij"), 9, 1, SV("abcdefghij"), 9, 2, 0);
- test(S("abcdefghij"), 9, 1, SV("abcdefghij"), 10, 0, 1);
- test(S("abcdefghij"), 9, 1, SV("abcdefghij"), 10, 1, 1);
- test(S("abcdefghij"), 9, 1, SV("abcdefghij"), 11, 0, 0);
- test(S("abcdefghij"), 9, 1, SV("abcdefghijklmnopqrst"), 0, 0, 1);
- test(S("abcdefghij"), 9, 1, SV("abcdefghijklmnopqrst"), 0, 1, 9);
- test(S("abcdefghij"), 9, 1, SV("abcdefghijklmnopqrst"), 0, 10, 9);
- test(S("abcdefghij"), 9, 1, SV("abcdefghijklmnopqrst"), 0, 19, 9);
- test(S("abcdefghij"), 9, 1, SV("abcdefghijklmnopqrst"), 0, 20, 9);
- test(S("abcdefghij"), 9, 1, SV("abcdefghijklmnopqrst"), 0, 21, 9);
- test(S("abcdefghij"), 9, 1, SV("abcdefghijklmnopqrst"), 1, 0, 1);
- test(S("abcdefghij"), 9, 1, SV("abcdefghijklmnopqrst"), 1, 1, 8);
- test(S("abcdefghij"), 9, 1, SV("abcdefghijklmnopqrst"), 1, 9, 8);
- test(S("abcdefghij"), 9, 1, SV("abcdefghijklmnopqrst"), 1, 18, 8);
- test(S("abcdefghij"), 9, 1, SV("abcdefghijklmnopqrst"), 1, 19, 8);
- test(S("abcdefghij"), 9, 1, SV("abcdefghijklmnopqrst"), 1, 20, 8);
- test(S("abcdefghij"), 9, 1, SV("abcdefghijklmnopqrst"), 10, 0, 1);
- test(S("abcdefghij"), 9, 1, SV("abcdefghijklmnopqrst"), 10, 1, -1);
- test(S("abcdefghij"), 9, 1, SV("abcdefghijklmnopqrst"), 10, 5, -1);
- test(S("abcdefghij"), 9, 1, SV("abcdefghijklmnopqrst"), 10, 9, -1);
- test(S("abcdefghij"), 9, 1, SV("abcdefghijklmnopqrst"), 10, 10, -1);
- test(S("abcdefghij"), 9, 1, SV("abcdefghijklmnopqrst"), 10, 11, -1);
- test(S("abcdefghij"), 9, 1, SV("abcdefghijklmnopqrst"), 19, 0, 1);
- test(S("abcdefghij"), 9, 1, SV("abcdefghijklmnopqrst"), 19, 1, -10);
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test33() {
+ test(S("abcdefghij"), 9, 0, SV("abcdefghij"), 9, 0, 0);
+ test(S("abcdefghij"), 9, 0, SV("abcdefghij"), 9, 1, -1);
+ test(S("abcdefghij"), 9, 0, SV("abcdefghij"), 9, 2, -1);
+ test(S("abcdefghij"), 9, 0, SV("abcdefghij"), 10, 0, 0);
+ test(S("abcdefghij"), 9, 0, SV("abcdefghij"), 10, 1, 0);
+ test(S("abcdefghij"), 9, 0, SV("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghij"), 9, 0, SV("abcdefghijklmnopqrst"), 0, 0, 0);
+ test(S("abcdefghij"), 9, 0, SV("abcdefghijklmnopqrst"), 0, 1, -1);
+ test(S("abcdefghij"), 9, 0, SV("abcdefghijklmnopqrst"), 0, 10, -10);
+ test(S("abcdefghij"), 9, 0, SV("abcdefghijklmnopqrst"), 0, 19, -19);
+ test(S("abcdefghij"), 9, 0, SV("abcdefghijklmnopqrst"), 0, 20, -20);
+ test(S("abcdefghij"), 9, 0, SV("abcdefghijklmnopqrst"), 0, 21, -20);
+ test(S("abcdefghij"), 9, 0, SV("abcdefghijklmnopqrst"), 1, 0, 0);
+ test(S("abcdefghij"), 9, 0, SV("abcdefghijklmnopqrst"), 1, 1, -1);
+ test(S("abcdefghij"), 9, 0, SV("abcdefghijklmnopqrst"), 1, 9, -9);
+ test(S("abcdefghij"), 9, 0, SV("abcdefghijklmnopqrst"), 1, 18, -18);
+ test(S("abcdefghij"), 9, 0, SV("abcdefghijklmnopqrst"), 1, 19, -19);
+ test(S("abcdefghij"), 9, 0, SV("abcdefghijklmnopqrst"), 1, 20, -19);
+ test(S("abcdefghij"), 9, 0, SV("abcdefghijklmnopqrst"), 10, 0, 0);
+ test(S("abcdefghij"), 9, 0, SV("abcdefghijklmnopqrst"), 10, 1, -1);
+ test(S("abcdefghij"), 9, 0, SV("abcdefghijklmnopqrst"), 10, 5, -5);
+ test(S("abcdefghij"), 9, 0, SV("abcdefghijklmnopqrst"), 10, 9, -9);
+ test(S("abcdefghij"), 9, 0, SV("abcdefghijklmnopqrst"), 10, 10, -10);
+ test(S("abcdefghij"), 9, 0, SV("abcdefghijklmnopqrst"), 10, 11, -10);
+ test(S("abcdefghij"), 9, 0, SV("abcdefghijklmnopqrst"), 19, 0, 0);
+ test(S("abcdefghij"), 9, 0, SV("abcdefghijklmnopqrst"), 19, 1, -1);
+ test(S("abcdefghij"), 9, 0, SV("abcdefghijklmnopqrst"), 19, 2, -1);
+ test(S("abcdefghij"), 9, 0, SV("abcdefghijklmnopqrst"), 20, 0, 0);
+ test(S("abcdefghij"), 9, 0, SV("abcdefghijklmnopqrst"), 20, 1, 0);
+ test(S("abcdefghij"), 9, 0, SV("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghij"), 9, 1, SV(""), 0, 0, 1);
+ test(S("abcdefghij"), 9, 1, SV(""), 0, 1, 1);
+ test(S("abcdefghij"), 9, 1, SV(""), 1, 0, 0);
+ test(S("abcdefghij"), 9, 1, SV("abcde"), 0, 0, 1);
+ test(S("abcdefghij"), 9, 1, SV("abcde"), 0, 1, 9);
+ test(S("abcdefghij"), 9, 1, SV("abcde"), 0, 2, 9);
+ test(S("abcdefghij"), 9, 1, SV("abcde"), 0, 4, 9);
+ test(S("abcdefghij"), 9, 1, SV("abcde"), 0, 5, 9);
+ test(S("abcdefghij"), 9, 1, SV("abcde"), 0, 6, 9);
+ test(S("abcdefghij"), 9, 1, SV("abcde"), 1, 0, 1);
+ test(S("abcdefghij"), 9, 1, SV("abcde"), 1, 1, 8);
+ test(S("abcdefghij"), 9, 1, SV("abcde"), 1, 2, 8);
+ test(S("abcdefghij"), 9, 1, SV("abcde"), 1, 3, 8);
+ test(S("abcdefghij"), 9, 1, SV("abcde"), 1, 4, 8);
+ test(S("abcdefghij"), 9, 1, SV("abcde"), 1, 5, 8);
+ test(S("abcdefghij"), 9, 1, SV("abcde"), 2, 0, 1);
+ test(S("abcdefghij"), 9, 1, SV("abcde"), 2, 1, 7);
+ test(S("abcdefghij"), 9, 1, SV("abcde"), 2, 2, 7);
+ test(S("abcdefghij"), 9, 1, SV("abcde"), 2, 3, 7);
+ test(S("abcdefghij"), 9, 1, SV("abcde"), 2, 4, 7);
+ test(S("abcdefghij"), 9, 1, SV("abcde"), 4, 0, 1);
+ test(S("abcdefghij"), 9, 1, SV("abcde"), 4, 1, 5);
+ test(S("abcdefghij"), 9, 1, SV("abcde"), 4, 2, 5);
+ test(S("abcdefghij"), 9, 1, SV("abcde"), 5, 0, 1);
+ test(S("abcdefghij"), 9, 1, SV("abcde"), 5, 1, 1);
+ test(S("abcdefghij"), 9, 1, SV("abcde"), 6, 0, 0);
+ test(S("abcdefghij"), 9, 1, SV("abcdefghij"), 0, 0, 1);
+ test(S("abcdefghij"), 9, 1, SV("abcdefghij"), 0, 1, 9);
+ test(S("abcdefghij"), 9, 1, SV("abcdefghij"), 0, 5, 9);
+ test(S("abcdefghij"), 9, 1, SV("abcdefghij"), 0, 9, 9);
+ test(S("abcdefghij"), 9, 1, SV("abcdefghij"), 0, 10, 9);
+ test(S("abcdefghij"), 9, 1, SV("abcdefghij"), 0, 11, 9);
+ test(S("abcdefghij"), 9, 1, SV("abcdefghij"), 1, 0, 1);
+ test(S("abcdefghij"), 9, 1, SV("abcdefghij"), 1, 1, 8);
+ test(S("abcdefghij"), 9, 1, SV("abcdefghij"), 1, 4, 8);
+ test(S("abcdefghij"), 9, 1, SV("abcdefghij"), 1, 8, 8);
+ test(S("abcdefghij"), 9, 1, SV("abcdefghij"), 1, 9, 8);
+ test(S("abcdefghij"), 9, 1, SV("abcdefghij"), 1, 10, 8);
+ test(S("abcdefghij"), 9, 1, SV("abcdefghij"), 5, 0, 1);
+ test(S("abcdefghij"), 9, 1, SV("abcdefghij"), 5, 1, 4);
+ test(S("abcdefghij"), 9, 1, SV("abcdefghij"), 5, 2, 4);
+ test(S("abcdefghij"), 9, 1, SV("abcdefghij"), 5, 4, 4);
+ test(S("abcdefghij"), 9, 1, SV("abcdefghij"), 5, 5, 4);
+ test(S("abcdefghij"), 9, 1, SV("abcdefghij"), 5, 6, 4);
+ test(S("abcdefghij"), 9, 1, SV("abcdefghij"), 9, 0, 1);
+ test(S("abcdefghij"), 9, 1, SV("abcdefghij"), 9, 1, 0);
+ test(S("abcdefghij"), 9, 1, SV("abcdefghij"), 9, 2, 0);
+ test(S("abcdefghij"), 9, 1, SV("abcdefghij"), 10, 0, 1);
+ test(S("abcdefghij"), 9, 1, SV("abcdefghij"), 10, 1, 1);
+ test(S("abcdefghij"), 9, 1, SV("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghij"), 9, 1, SV("abcdefghijklmnopqrst"), 0, 0, 1);
+ test(S("abcdefghij"), 9, 1, SV("abcdefghijklmnopqrst"), 0, 1, 9);
+ test(S("abcdefghij"), 9, 1, SV("abcdefghijklmnopqrst"), 0, 10, 9);
+ test(S("abcdefghij"), 9, 1, SV("abcdefghijklmnopqrst"), 0, 19, 9);
+ test(S("abcdefghij"), 9, 1, SV("abcdefghijklmnopqrst"), 0, 20, 9);
+ test(S("abcdefghij"), 9, 1, SV("abcdefghijklmnopqrst"), 0, 21, 9);
+ test(S("abcdefghij"), 9, 1, SV("abcdefghijklmnopqrst"), 1, 0, 1);
+ test(S("abcdefghij"), 9, 1, SV("abcdefghijklmnopqrst"), 1, 1, 8);
+ test(S("abcdefghij"), 9, 1, SV("abcdefghijklmnopqrst"), 1, 9, 8);
+ test(S("abcdefghij"), 9, 1, SV("abcdefghijklmnopqrst"), 1, 18, 8);
+ test(S("abcdefghij"), 9, 1, SV("abcdefghijklmnopqrst"), 1, 19, 8);
+ test(S("abcdefghij"), 9, 1, SV("abcdefghijklmnopqrst"), 1, 20, 8);
+ test(S("abcdefghij"), 9, 1, SV("abcdefghijklmnopqrst"), 10, 0, 1);
+ test(S("abcdefghij"), 9, 1, SV("abcdefghijklmnopqrst"), 10, 1, -1);
+ test(S("abcdefghij"), 9, 1, SV("abcdefghijklmnopqrst"), 10, 5, -1);
+ test(S("abcdefghij"), 9, 1, SV("abcdefghijklmnopqrst"), 10, 9, -1);
+ test(S("abcdefghij"), 9, 1, SV("abcdefghijklmnopqrst"), 10, 10, -1);
+ test(S("abcdefghij"), 9, 1, SV("abcdefghijklmnopqrst"), 10, 11, -1);
+ test(S("abcdefghij"), 9, 1, SV("abcdefghijklmnopqrst"), 19, 0, 1);
+ test(S("abcdefghij"), 9, 1, SV("abcdefghijklmnopqrst"), 19, 1, -10);
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test34()
-{
- test(S("abcdefghij"), 9, 1, SV("abcdefghijklmnopqrst"), 19, 2, -10);
- test(S("abcdefghij"), 9, 1, SV("abcdefghijklmnopqrst"), 20, 0, 1);
- test(S("abcdefghij"), 9, 1, SV("abcdefghijklmnopqrst"), 20, 1, 1);
- test(S("abcdefghij"), 9, 1, SV("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghij"), 9, 2, SV(""), 0, 0, 1);
- test(S("abcdefghij"), 9, 2, SV(""), 0, 1, 1);
- test(S("abcdefghij"), 9, 2, SV(""), 1, 0, 0);
- test(S("abcdefghij"), 9, 2, SV("abcde"), 0, 0, 1);
- test(S("abcdefghij"), 9, 2, SV("abcde"), 0, 1, 9);
- test(S("abcdefghij"), 9, 2, SV("abcde"), 0, 2, 9);
- test(S("abcdefghij"), 9, 2, SV("abcde"), 0, 4, 9);
- test(S("abcdefghij"), 9, 2, SV("abcde"), 0, 5, 9);
- test(S("abcdefghij"), 9, 2, SV("abcde"), 0, 6, 9);
- test(S("abcdefghij"), 9, 2, SV("abcde"), 1, 0, 1);
- test(S("abcdefghij"), 9, 2, SV("abcde"), 1, 1, 8);
- test(S("abcdefghij"), 9, 2, SV("abcde"), 1, 2, 8);
- test(S("abcdefghij"), 9, 2, SV("abcde"), 1, 3, 8);
- test(S("abcdefghij"), 9, 2, SV("abcde"), 1, 4, 8);
- test(S("abcdefghij"), 9, 2, SV("abcde"), 1, 5, 8);
- test(S("abcdefghij"), 9, 2, SV("abcde"), 2, 0, 1);
- test(S("abcdefghij"), 9, 2, SV("abcde"), 2, 1, 7);
- test(S("abcdefghij"), 9, 2, SV("abcde"), 2, 2, 7);
- test(S("abcdefghij"), 9, 2, SV("abcde"), 2, 3, 7);
- test(S("abcdefghij"), 9, 2, SV("abcde"), 2, 4, 7);
- test(S("abcdefghij"), 9, 2, SV("abcde"), 4, 0, 1);
- test(S("abcdefghij"), 9, 2, SV("abcde"), 4, 1, 5);
- test(S("abcdefghij"), 9, 2, SV("abcde"), 4, 2, 5);
- test(S("abcdefghij"), 9, 2, SV("abcde"), 5, 0, 1);
- test(S("abcdefghij"), 9, 2, SV("abcde"), 5, 1, 1);
- test(S("abcdefghij"), 9, 2, SV("abcde"), 6, 0, 0);
- test(S("abcdefghij"), 9, 2, SV("abcdefghij"), 0, 0, 1);
- test(S("abcdefghij"), 9, 2, SV("abcdefghij"), 0, 1, 9);
- test(S("abcdefghij"), 9, 2, SV("abcdefghij"), 0, 5, 9);
- test(S("abcdefghij"), 9, 2, SV("abcdefghij"), 0, 9, 9);
- test(S("abcdefghij"), 9, 2, SV("abcdefghij"), 0, 10, 9);
- test(S("abcdefghij"), 9, 2, SV("abcdefghij"), 0, 11, 9);
- test(S("abcdefghij"), 9, 2, SV("abcdefghij"), 1, 0, 1);
- test(S("abcdefghij"), 9, 2, SV("abcdefghij"), 1, 1, 8);
- test(S("abcdefghij"), 9, 2, SV("abcdefghij"), 1, 4, 8);
- test(S("abcdefghij"), 9, 2, SV("abcdefghij"), 1, 8, 8);
- test(S("abcdefghij"), 9, 2, SV("abcdefghij"), 1, 9, 8);
- test(S("abcdefghij"), 9, 2, SV("abcdefghij"), 1, 10, 8);
- test(S("abcdefghij"), 9, 2, SV("abcdefghij"), 5, 0, 1);
- test(S("abcdefghij"), 9, 2, SV("abcdefghij"), 5, 1, 4);
- test(S("abcdefghij"), 9, 2, SV("abcdefghij"), 5, 2, 4);
- test(S("abcdefghij"), 9, 2, SV("abcdefghij"), 5, 4, 4);
- test(S("abcdefghij"), 9, 2, SV("abcdefghij"), 5, 5, 4);
- test(S("abcdefghij"), 9, 2, SV("abcdefghij"), 5, 6, 4);
- test(S("abcdefghij"), 9, 2, SV("abcdefghij"), 9, 0, 1);
- test(S("abcdefghij"), 9, 2, SV("abcdefghij"), 9, 1, 0);
- test(S("abcdefghij"), 9, 2, SV("abcdefghij"), 9, 2, 0);
- test(S("abcdefghij"), 9, 2, SV("abcdefghij"), 10, 0, 1);
- test(S("abcdefghij"), 9, 2, SV("abcdefghij"), 10, 1, 1);
- test(S("abcdefghij"), 9, 2, SV("abcdefghij"), 11, 0, 0);
- test(S("abcdefghij"), 9, 2, SV("abcdefghijklmnopqrst"), 0, 0, 1);
- test(S("abcdefghij"), 9, 2, SV("abcdefghijklmnopqrst"), 0, 1, 9);
- test(S("abcdefghij"), 9, 2, SV("abcdefghijklmnopqrst"), 0, 10, 9);
- test(S("abcdefghij"), 9, 2, SV("abcdefghijklmnopqrst"), 0, 19, 9);
- test(S("abcdefghij"), 9, 2, SV("abcdefghijklmnopqrst"), 0, 20, 9);
- test(S("abcdefghij"), 9, 2, SV("abcdefghijklmnopqrst"), 0, 21, 9);
- test(S("abcdefghij"), 9, 2, SV("abcdefghijklmnopqrst"), 1, 0, 1);
- test(S("abcdefghij"), 9, 2, SV("abcdefghijklmnopqrst"), 1, 1, 8);
- test(S("abcdefghij"), 9, 2, SV("abcdefghijklmnopqrst"), 1, 9, 8);
- test(S("abcdefghij"), 9, 2, SV("abcdefghijklmnopqrst"), 1, 18, 8);
- test(S("abcdefghij"), 9, 2, SV("abcdefghijklmnopqrst"), 1, 19, 8);
- test(S("abcdefghij"), 9, 2, SV("abcdefghijklmnopqrst"), 1, 20, 8);
- test(S("abcdefghij"), 9, 2, SV("abcdefghijklmnopqrst"), 10, 0, 1);
- test(S("abcdefghij"), 9, 2, SV("abcdefghijklmnopqrst"), 10, 1, -1);
- test(S("abcdefghij"), 9, 2, SV("abcdefghijklmnopqrst"), 10, 5, -1);
- test(S("abcdefghij"), 9, 2, SV("abcdefghijklmnopqrst"), 10, 9, -1);
- test(S("abcdefghij"), 9, 2, SV("abcdefghijklmnopqrst"), 10, 10, -1);
- test(S("abcdefghij"), 9, 2, SV("abcdefghijklmnopqrst"), 10, 11, -1);
- test(S("abcdefghij"), 9, 2, SV("abcdefghijklmnopqrst"), 19, 0, 1);
- test(S("abcdefghij"), 9, 2, SV("abcdefghijklmnopqrst"), 19, 1, -10);
- test(S("abcdefghij"), 9, 2, SV("abcdefghijklmnopqrst"), 19, 2, -10);
- test(S("abcdefghij"), 9, 2, SV("abcdefghijklmnopqrst"), 20, 0, 1);
- test(S("abcdefghij"), 9, 2, SV("abcdefghijklmnopqrst"), 20, 1, 1);
- test(S("abcdefghij"), 9, 2, SV("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghij"), 10, 0, SV(""), 0, 0, 0);
- test(S("abcdefghij"), 10, 0, SV(""), 0, 1, 0);
- test(S("abcdefghij"), 10, 0, SV(""), 1, 0, 0);
- test(S("abcdefghij"), 10, 0, SV("abcde"), 0, 0, 0);
- test(S("abcdefghij"), 10, 0, SV("abcde"), 0, 1, -1);
- test(S("abcdefghij"), 10, 0, SV("abcde"), 0, 2, -2);
- test(S("abcdefghij"), 10, 0, SV("abcde"), 0, 4, -4);
- test(S("abcdefghij"), 10, 0, SV("abcde"), 0, 5, -5);
- test(S("abcdefghij"), 10, 0, SV("abcde"), 0, 6, -5);
- test(S("abcdefghij"), 10, 0, SV("abcde"), 1, 0, 0);
- test(S("abcdefghij"), 10, 0, SV("abcde"), 1, 1, -1);
- test(S("abcdefghij"), 10, 0, SV("abcde"), 1, 2, -2);
- test(S("abcdefghij"), 10, 0, SV("abcde"), 1, 3, -3);
- test(S("abcdefghij"), 10, 0, SV("abcde"), 1, 4, -4);
- test(S("abcdefghij"), 10, 0, SV("abcde"), 1, 5, -4);
- test(S("abcdefghij"), 10, 0, SV("abcde"), 2, 0, 0);
- test(S("abcdefghij"), 10, 0, SV("abcde"), 2, 1, -1);
- test(S("abcdefghij"), 10, 0, SV("abcde"), 2, 2, -2);
- test(S("abcdefghij"), 10, 0, SV("abcde"), 2, 3, -3);
- test(S("abcdefghij"), 10, 0, SV("abcde"), 2, 4, -3);
- test(S("abcdefghij"), 10, 0, SV("abcde"), 4, 0, 0);
- test(S("abcdefghij"), 10, 0, SV("abcde"), 4, 1, -1);
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test34() {
+ test(S("abcdefghij"), 9, 1, SV("abcdefghijklmnopqrst"), 19, 2, -10);
+ test(S("abcdefghij"), 9, 1, SV("abcdefghijklmnopqrst"), 20, 0, 1);
+ test(S("abcdefghij"), 9, 1, SV("abcdefghijklmnopqrst"), 20, 1, 1);
+ test(S("abcdefghij"), 9, 1, SV("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghij"), 9, 2, SV(""), 0, 0, 1);
+ test(S("abcdefghij"), 9, 2, SV(""), 0, 1, 1);
+ test(S("abcdefghij"), 9, 2, SV(""), 1, 0, 0);
+ test(S("abcdefghij"), 9, 2, SV("abcde"), 0, 0, 1);
+ test(S("abcdefghij"), 9, 2, SV("abcde"), 0, 1, 9);
+ test(S("abcdefghij"), 9, 2, SV("abcde"), 0, 2, 9);
+ test(S("abcdefghij"), 9, 2, SV("abcde"), 0, 4, 9);
+ test(S("abcdefghij"), 9, 2, SV("abcde"), 0, 5, 9);
+ test(S("abcdefghij"), 9, 2, SV("abcde"), 0, 6, 9);
+ test(S("abcdefghij"), 9, 2, SV("abcde"), 1, 0, 1);
+ test(S("abcdefghij"), 9, 2, SV("abcde"), 1, 1, 8);
+ test(S("abcdefghij"), 9, 2, SV("abcde"), 1, 2, 8);
+ test(S("abcdefghij"), 9, 2, SV("abcde"), 1, 3, 8);
+ test(S("abcdefghij"), 9, 2, SV("abcde"), 1, 4, 8);
+ test(S("abcdefghij"), 9, 2, SV("abcde"), 1, 5, 8);
+ test(S("abcdefghij"), 9, 2, SV("abcde"), 2, 0, 1);
+ test(S("abcdefghij"), 9, 2, SV("abcde"), 2, 1, 7);
+ test(S("abcdefghij"), 9, 2, SV("abcde"), 2, 2, 7);
+ test(S("abcdefghij"), 9, 2, SV("abcde"), 2, 3, 7);
+ test(S("abcdefghij"), 9, 2, SV("abcde"), 2, 4, 7);
+ test(S("abcdefghij"), 9, 2, SV("abcde"), 4, 0, 1);
+ test(S("abcdefghij"), 9, 2, SV("abcde"), 4, 1, 5);
+ test(S("abcdefghij"), 9, 2, SV("abcde"), 4, 2, 5);
+ test(S("abcdefghij"), 9, 2, SV("abcde"), 5, 0, 1);
+ test(S("abcdefghij"), 9, 2, SV("abcde"), 5, 1, 1);
+ test(S("abcdefghij"), 9, 2, SV("abcde"), 6, 0, 0);
+ test(S("abcdefghij"), 9, 2, SV("abcdefghij"), 0, 0, 1);
+ test(S("abcdefghij"), 9, 2, SV("abcdefghij"), 0, 1, 9);
+ test(S("abcdefghij"), 9, 2, SV("abcdefghij"), 0, 5, 9);
+ test(S("abcdefghij"), 9, 2, SV("abcdefghij"), 0, 9, 9);
+ test(S("abcdefghij"), 9, 2, SV("abcdefghij"), 0, 10, 9);
+ test(S("abcdefghij"), 9, 2, SV("abcdefghij"), 0, 11, 9);
+ test(S("abcdefghij"), 9, 2, SV("abcdefghij"), 1, 0, 1);
+ test(S("abcdefghij"), 9, 2, SV("abcdefghij"), 1, 1, 8);
+ test(S("abcdefghij"), 9, 2, SV("abcdefghij"), 1, 4, 8);
+ test(S("abcdefghij"), 9, 2, SV("abcdefghij"), 1, 8, 8);
+ test(S("abcdefghij"), 9, 2, SV("abcdefghij"), 1, 9, 8);
+ test(S("abcdefghij"), 9, 2, SV("abcdefghij"), 1, 10, 8);
+ test(S("abcdefghij"), 9, 2, SV("abcdefghij"), 5, 0, 1);
+ test(S("abcdefghij"), 9, 2, SV("abcdefghij"), 5, 1, 4);
+ test(S("abcdefghij"), 9, 2, SV("abcdefghij"), 5, 2, 4);
+ test(S("abcdefghij"), 9, 2, SV("abcdefghij"), 5, 4, 4);
+ test(S("abcdefghij"), 9, 2, SV("abcdefghij"), 5, 5, 4);
+ test(S("abcdefghij"), 9, 2, SV("abcdefghij"), 5, 6, 4);
+ test(S("abcdefghij"), 9, 2, SV("abcdefghij"), 9, 0, 1);
+ test(S("abcdefghij"), 9, 2, SV("abcdefghij"), 9, 1, 0);
+ test(S("abcdefghij"), 9, 2, SV("abcdefghij"), 9, 2, 0);
+ test(S("abcdefghij"), 9, 2, SV("abcdefghij"), 10, 0, 1);
+ test(S("abcdefghij"), 9, 2, SV("abcdefghij"), 10, 1, 1);
+ test(S("abcdefghij"), 9, 2, SV("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghij"), 9, 2, SV("abcdefghijklmnopqrst"), 0, 0, 1);
+ test(S("abcdefghij"), 9, 2, SV("abcdefghijklmnopqrst"), 0, 1, 9);
+ test(S("abcdefghij"), 9, 2, SV("abcdefghijklmnopqrst"), 0, 10, 9);
+ test(S("abcdefghij"), 9, 2, SV("abcdefghijklmnopqrst"), 0, 19, 9);
+ test(S("abcdefghij"), 9, 2, SV("abcdefghijklmnopqrst"), 0, 20, 9);
+ test(S("abcdefghij"), 9, 2, SV("abcdefghijklmnopqrst"), 0, 21, 9);
+ test(S("abcdefghij"), 9, 2, SV("abcdefghijklmnopqrst"), 1, 0, 1);
+ test(S("abcdefghij"), 9, 2, SV("abcdefghijklmnopqrst"), 1, 1, 8);
+ test(S("abcdefghij"), 9, 2, SV("abcdefghijklmnopqrst"), 1, 9, 8);
+ test(S("abcdefghij"), 9, 2, SV("abcdefghijklmnopqrst"), 1, 18, 8);
+ test(S("abcdefghij"), 9, 2, SV("abcdefghijklmnopqrst"), 1, 19, 8);
+ test(S("abcdefghij"), 9, 2, SV("abcdefghijklmnopqrst"), 1, 20, 8);
+ test(S("abcdefghij"), 9, 2, SV("abcdefghijklmnopqrst"), 10, 0, 1);
+ test(S("abcdefghij"), 9, 2, SV("abcdefghijklmnopqrst"), 10, 1, -1);
+ test(S("abcdefghij"), 9, 2, SV("abcdefghijklmnopqrst"), 10, 5, -1);
+ test(S("abcdefghij"), 9, 2, SV("abcdefghijklmnopqrst"), 10, 9, -1);
+ test(S("abcdefghij"), 9, 2, SV("abcdefghijklmnopqrst"), 10, 10, -1);
+ test(S("abcdefghij"), 9, 2, SV("abcdefghijklmnopqrst"), 10, 11, -1);
+ test(S("abcdefghij"), 9, 2, SV("abcdefghijklmnopqrst"), 19, 0, 1);
+ test(S("abcdefghij"), 9, 2, SV("abcdefghijklmnopqrst"), 19, 1, -10);
+ test(S("abcdefghij"), 9, 2, SV("abcdefghijklmnopqrst"), 19, 2, -10);
+ test(S("abcdefghij"), 9, 2, SV("abcdefghijklmnopqrst"), 20, 0, 1);
+ test(S("abcdefghij"), 9, 2, SV("abcdefghijklmnopqrst"), 20, 1, 1);
+ test(S("abcdefghij"), 9, 2, SV("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghij"), 10, 0, SV(""), 0, 0, 0);
+ test(S("abcdefghij"), 10, 0, SV(""), 0, 1, 0);
+ test(S("abcdefghij"), 10, 0, SV(""), 1, 0, 0);
+ test(S("abcdefghij"), 10, 0, SV("abcde"), 0, 0, 0);
+ test(S("abcdefghij"), 10, 0, SV("abcde"), 0, 1, -1);
+ test(S("abcdefghij"), 10, 0, SV("abcde"), 0, 2, -2);
+ test(S("abcdefghij"), 10, 0, SV("abcde"), 0, 4, -4);
+ test(S("abcdefghij"), 10, 0, SV("abcde"), 0, 5, -5);
+ test(S("abcdefghij"), 10, 0, SV("abcde"), 0, 6, -5);
+ test(S("abcdefghij"), 10, 0, SV("abcde"), 1, 0, 0);
+ test(S("abcdefghij"), 10, 0, SV("abcde"), 1, 1, -1);
+ test(S("abcdefghij"), 10, 0, SV("abcde"), 1, 2, -2);
+ test(S("abcdefghij"), 10, 0, SV("abcde"), 1, 3, -3);
+ test(S("abcdefghij"), 10, 0, SV("abcde"), 1, 4, -4);
+ test(S("abcdefghij"), 10, 0, SV("abcde"), 1, 5, -4);
+ test(S("abcdefghij"), 10, 0, SV("abcde"), 2, 0, 0);
+ test(S("abcdefghij"), 10, 0, SV("abcde"), 2, 1, -1);
+ test(S("abcdefghij"), 10, 0, SV("abcde"), 2, 2, -2);
+ test(S("abcdefghij"), 10, 0, SV("abcde"), 2, 3, -3);
+ test(S("abcdefghij"), 10, 0, SV("abcde"), 2, 4, -3);
+ test(S("abcdefghij"), 10, 0, SV("abcde"), 4, 0, 0);
+ test(S("abcdefghij"), 10, 0, SV("abcde"), 4, 1, -1);
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test35()
-{
- test(S("abcdefghij"), 10, 0, SV("abcde"), 4, 2, -1);
- test(S("abcdefghij"), 10, 0, SV("abcde"), 5, 0, 0);
- test(S("abcdefghij"), 10, 0, SV("abcde"), 5, 1, 0);
- test(S("abcdefghij"), 10, 0, SV("abcde"), 6, 0, 0);
- test(S("abcdefghij"), 10, 0, SV("abcdefghij"), 0, 0, 0);
- test(S("abcdefghij"), 10, 0, SV("abcdefghij"), 0, 1, -1);
- test(S("abcdefghij"), 10, 0, SV("abcdefghij"), 0, 5, -5);
- test(S("abcdefghij"), 10, 0, SV("abcdefghij"), 0, 9, -9);
- test(S("abcdefghij"), 10, 0, SV("abcdefghij"), 0, 10, -10);
- test(S("abcdefghij"), 10, 0, SV("abcdefghij"), 0, 11, -10);
- test(S("abcdefghij"), 10, 0, SV("abcdefghij"), 1, 0, 0);
- test(S("abcdefghij"), 10, 0, SV("abcdefghij"), 1, 1, -1);
- test(S("abcdefghij"), 10, 0, SV("abcdefghij"), 1, 4, -4);
- test(S("abcdefghij"), 10, 0, SV("abcdefghij"), 1, 8, -8);
- test(S("abcdefghij"), 10, 0, SV("abcdefghij"), 1, 9, -9);
- test(S("abcdefghij"), 10, 0, SV("abcdefghij"), 1, 10, -9);
- test(S("abcdefghij"), 10, 0, SV("abcdefghij"), 5, 0, 0);
- test(S("abcdefghij"), 10, 0, SV("abcdefghij"), 5, 1, -1);
- test(S("abcdefghij"), 10, 0, SV("abcdefghij"), 5, 2, -2);
- test(S("abcdefghij"), 10, 0, SV("abcdefghij"), 5, 4, -4);
- test(S("abcdefghij"), 10, 0, SV("abcdefghij"), 5, 5, -5);
- test(S("abcdefghij"), 10, 0, SV("abcdefghij"), 5, 6, -5);
- test(S("abcdefghij"), 10, 0, SV("abcdefghij"), 9, 0, 0);
- test(S("abcdefghij"), 10, 0, SV("abcdefghij"), 9, 1, -1);
- test(S("abcdefghij"), 10, 0, SV("abcdefghij"), 9, 2, -1);
- test(S("abcdefghij"), 10, 0, SV("abcdefghij"), 10, 0, 0);
- test(S("abcdefghij"), 10, 0, SV("abcdefghij"), 10, 1, 0);
- test(S("abcdefghij"), 10, 0, SV("abcdefghij"), 11, 0, 0);
- test(S("abcdefghij"), 10, 0, SV("abcdefghijklmnopqrst"), 0, 0, 0);
- test(S("abcdefghij"), 10, 0, SV("abcdefghijklmnopqrst"), 0, 1, -1);
- test(S("abcdefghij"), 10, 0, SV("abcdefghijklmnopqrst"), 0, 10, -10);
- test(S("abcdefghij"), 10, 0, SV("abcdefghijklmnopqrst"), 0, 19, -19);
- test(S("abcdefghij"), 10, 0, SV("abcdefghijklmnopqrst"), 0, 20, -20);
- test(S("abcdefghij"), 10, 0, SV("abcdefghijklmnopqrst"), 0, 21, -20);
- test(S("abcdefghij"), 10, 0, SV("abcdefghijklmnopqrst"), 1, 0, 0);
- test(S("abcdefghij"), 10, 0, SV("abcdefghijklmnopqrst"), 1, 1, -1);
- test(S("abcdefghij"), 10, 0, SV("abcdefghijklmnopqrst"), 1, 9, -9);
- test(S("abcdefghij"), 10, 0, SV("abcdefghijklmnopqrst"), 1, 18, -18);
- test(S("abcdefghij"), 10, 0, SV("abcdefghijklmnopqrst"), 1, 19, -19);
- test(S("abcdefghij"), 10, 0, SV("abcdefghijklmnopqrst"), 1, 20, -19);
- test(S("abcdefghij"), 10, 0, SV("abcdefghijklmnopqrst"), 10, 0, 0);
- test(S("abcdefghij"), 10, 0, SV("abcdefghijklmnopqrst"), 10, 1, -1);
- test(S("abcdefghij"), 10, 0, SV("abcdefghijklmnopqrst"), 10, 5, -5);
- test(S("abcdefghij"), 10, 0, SV("abcdefghijklmnopqrst"), 10, 9, -9);
- test(S("abcdefghij"), 10, 0, SV("abcdefghijklmnopqrst"), 10, 10, -10);
- test(S("abcdefghij"), 10, 0, SV("abcdefghijklmnopqrst"), 10, 11, -10);
- test(S("abcdefghij"), 10, 0, SV("abcdefghijklmnopqrst"), 19, 0, 0);
- test(S("abcdefghij"), 10, 0, SV("abcdefghijklmnopqrst"), 19, 1, -1);
- test(S("abcdefghij"), 10, 0, SV("abcdefghijklmnopqrst"), 19, 2, -1);
- test(S("abcdefghij"), 10, 0, SV("abcdefghijklmnopqrst"), 20, 0, 0);
- test(S("abcdefghij"), 10, 0, SV("abcdefghijklmnopqrst"), 20, 1, 0);
- test(S("abcdefghij"), 10, 0, SV("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghij"), 10, 1, SV(""), 0, 0, 0);
- test(S("abcdefghij"), 10, 1, SV(""), 0, 1, 0);
- test(S("abcdefghij"), 10, 1, SV(""), 1, 0, 0);
- test(S("abcdefghij"), 10, 1, SV("abcde"), 0, 0, 0);
- test(S("abcdefghij"), 10, 1, SV("abcde"), 0, 1, -1);
- test(S("abcdefghij"), 10, 1, SV("abcde"), 0, 2, -2);
- test(S("abcdefghij"), 10, 1, SV("abcde"), 0, 4, -4);
- test(S("abcdefghij"), 10, 1, SV("abcde"), 0, 5, -5);
- test(S("abcdefghij"), 10, 1, SV("abcde"), 0, 6, -5);
- test(S("abcdefghij"), 10, 1, SV("abcde"), 1, 0, 0);
- test(S("abcdefghij"), 10, 1, SV("abcde"), 1, 1, -1);
- test(S("abcdefghij"), 10, 1, SV("abcde"), 1, 2, -2);
- test(S("abcdefghij"), 10, 1, SV("abcde"), 1, 3, -3);
- test(S("abcdefghij"), 10, 1, SV("abcde"), 1, 4, -4);
- test(S("abcdefghij"), 10, 1, SV("abcde"), 1, 5, -4);
- test(S("abcdefghij"), 10, 1, SV("abcde"), 2, 0, 0);
- test(S("abcdefghij"), 10, 1, SV("abcde"), 2, 1, -1);
- test(S("abcdefghij"), 10, 1, SV("abcde"), 2, 2, -2);
- test(S("abcdefghij"), 10, 1, SV("abcde"), 2, 3, -3);
- test(S("abcdefghij"), 10, 1, SV("abcde"), 2, 4, -3);
- test(S("abcdefghij"), 10, 1, SV("abcde"), 4, 0, 0);
- test(S("abcdefghij"), 10, 1, SV("abcde"), 4, 1, -1);
- test(S("abcdefghij"), 10, 1, SV("abcde"), 4, 2, -1);
- test(S("abcdefghij"), 10, 1, SV("abcde"), 5, 0, 0);
- test(S("abcdefghij"), 10, 1, SV("abcde"), 5, 1, 0);
- test(S("abcdefghij"), 10, 1, SV("abcde"), 6, 0, 0);
- test(S("abcdefghij"), 10, 1, SV("abcdefghij"), 0, 0, 0);
- test(S("abcdefghij"), 10, 1, SV("abcdefghij"), 0, 1, -1);
- test(S("abcdefghij"), 10, 1, SV("abcdefghij"), 0, 5, -5);
- test(S("abcdefghij"), 10, 1, SV("abcdefghij"), 0, 9, -9);
- test(S("abcdefghij"), 10, 1, SV("abcdefghij"), 0, 10, -10);
- test(S("abcdefghij"), 10, 1, SV("abcdefghij"), 0, 11, -10);
- test(S("abcdefghij"), 10, 1, SV("abcdefghij"), 1, 0, 0);
- test(S("abcdefghij"), 10, 1, SV("abcdefghij"), 1, 1, -1);
- test(S("abcdefghij"), 10, 1, SV("abcdefghij"), 1, 4, -4);
- test(S("abcdefghij"), 10, 1, SV("abcdefghij"), 1, 8, -8);
- test(S("abcdefghij"), 10, 1, SV("abcdefghij"), 1, 9, -9);
- test(S("abcdefghij"), 10, 1, SV("abcdefghij"), 1, 10, -9);
- test(S("abcdefghij"), 10, 1, SV("abcdefghij"), 5, 0, 0);
- test(S("abcdefghij"), 10, 1, SV("abcdefghij"), 5, 1, -1);
- test(S("abcdefghij"), 10, 1, SV("abcdefghij"), 5, 2, -2);
- test(S("abcdefghij"), 10, 1, SV("abcdefghij"), 5, 4, -4);
- test(S("abcdefghij"), 10, 1, SV("abcdefghij"), 5, 5, -5);
- test(S("abcdefghij"), 10, 1, SV("abcdefghij"), 5, 6, -5);
- test(S("abcdefghij"), 10, 1, SV("abcdefghij"), 9, 0, 0);
- test(S("abcdefghij"), 10, 1, SV("abcdefghij"), 9, 1, -1);
- test(S("abcdefghij"), 10, 1, SV("abcdefghij"), 9, 2, -1);
- test(S("abcdefghij"), 10, 1, SV("abcdefghij"), 10, 0, 0);
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test35() {
+ test(S("abcdefghij"), 10, 0, SV("abcde"), 4, 2, -1);
+ test(S("abcdefghij"), 10, 0, SV("abcde"), 5, 0, 0);
+ test(S("abcdefghij"), 10, 0, SV("abcde"), 5, 1, 0);
+ test(S("abcdefghij"), 10, 0, SV("abcde"), 6, 0, 0);
+ test(S("abcdefghij"), 10, 0, SV("abcdefghij"), 0, 0, 0);
+ test(S("abcdefghij"), 10, 0, SV("abcdefghij"), 0, 1, -1);
+ test(S("abcdefghij"), 10, 0, SV("abcdefghij"), 0, 5, -5);
+ test(S("abcdefghij"), 10, 0, SV("abcdefghij"), 0, 9, -9);
+ test(S("abcdefghij"), 10, 0, SV("abcdefghij"), 0, 10, -10);
+ test(S("abcdefghij"), 10, 0, SV("abcdefghij"), 0, 11, -10);
+ test(S("abcdefghij"), 10, 0, SV("abcdefghij"), 1, 0, 0);
+ test(S("abcdefghij"), 10, 0, SV("abcdefghij"), 1, 1, -1);
+ test(S("abcdefghij"), 10, 0, SV("abcdefghij"), 1, 4, -4);
+ test(S("abcdefghij"), 10, 0, SV("abcdefghij"), 1, 8, -8);
+ test(S("abcdefghij"), 10, 0, SV("abcdefghij"), 1, 9, -9);
+ test(S("abcdefghij"), 10, 0, SV("abcdefghij"), 1, 10, -9);
+ test(S("abcdefghij"), 10, 0, SV("abcdefghij"), 5, 0, 0);
+ test(S("abcdefghij"), 10, 0, SV("abcdefghij"), 5, 1, -1);
+ test(S("abcdefghij"), 10, 0, SV("abcdefghij"), 5, 2, -2);
+ test(S("abcdefghij"), 10, 0, SV("abcdefghij"), 5, 4, -4);
+ test(S("abcdefghij"), 10, 0, SV("abcdefghij"), 5, 5, -5);
+ test(S("abcdefghij"), 10, 0, SV("abcdefghij"), 5, 6, -5);
+ test(S("abcdefghij"), 10, 0, SV("abcdefghij"), 9, 0, 0);
+ test(S("abcdefghij"), 10, 0, SV("abcdefghij"), 9, 1, -1);
+ test(S("abcdefghij"), 10, 0, SV("abcdefghij"), 9, 2, -1);
+ test(S("abcdefghij"), 10, 0, SV("abcdefghij"), 10, 0, 0);
+ test(S("abcdefghij"), 10, 0, SV("abcdefghij"), 10, 1, 0);
+ test(S("abcdefghij"), 10, 0, SV("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghij"), 10, 0, SV("abcdefghijklmnopqrst"), 0, 0, 0);
+ test(S("abcdefghij"), 10, 0, SV("abcdefghijklmnopqrst"), 0, 1, -1);
+ test(S("abcdefghij"), 10, 0, SV("abcdefghijklmnopqrst"), 0, 10, -10);
+ test(S("abcdefghij"), 10, 0, SV("abcdefghijklmnopqrst"), 0, 19, -19);
+ test(S("abcdefghij"), 10, 0, SV("abcdefghijklmnopqrst"), 0, 20, -20);
+ test(S("abcdefghij"), 10, 0, SV("abcdefghijklmnopqrst"), 0, 21, -20);
+ test(S("abcdefghij"), 10, 0, SV("abcdefghijklmnopqrst"), 1, 0, 0);
+ test(S("abcdefghij"), 10, 0, SV("abcdefghijklmnopqrst"), 1, 1, -1);
+ test(S("abcdefghij"), 10, 0, SV("abcdefghijklmnopqrst"), 1, 9, -9);
+ test(S("abcdefghij"), 10, 0, SV("abcdefghijklmnopqrst"), 1, 18, -18);
+ test(S("abcdefghij"), 10, 0, SV("abcdefghijklmnopqrst"), 1, 19, -19);
+ test(S("abcdefghij"), 10, 0, SV("abcdefghijklmnopqrst"), 1, 20, -19);
+ test(S("abcdefghij"), 10, 0, SV("abcdefghijklmnopqrst"), 10, 0, 0);
+ test(S("abcdefghij"), 10, 0, SV("abcdefghijklmnopqrst"), 10, 1, -1);
+ test(S("abcdefghij"), 10, 0, SV("abcdefghijklmnopqrst"), 10, 5, -5);
+ test(S("abcdefghij"), 10, 0, SV("abcdefghijklmnopqrst"), 10, 9, -9);
+ test(S("abcdefghij"), 10, 0, SV("abcdefghijklmnopqrst"), 10, 10, -10);
+ test(S("abcdefghij"), 10, 0, SV("abcdefghijklmnopqrst"), 10, 11, -10);
+ test(S("abcdefghij"), 10, 0, SV("abcdefghijklmnopqrst"), 19, 0, 0);
+ test(S("abcdefghij"), 10, 0, SV("abcdefghijklmnopqrst"), 19, 1, -1);
+ test(S("abcdefghij"), 10, 0, SV("abcdefghijklmnopqrst"), 19, 2, -1);
+ test(S("abcdefghij"), 10, 0, SV("abcdefghijklmnopqrst"), 20, 0, 0);
+ test(S("abcdefghij"), 10, 0, SV("abcdefghijklmnopqrst"), 20, 1, 0);
+ test(S("abcdefghij"), 10, 0, SV("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghij"), 10, 1, SV(""), 0, 0, 0);
+ test(S("abcdefghij"), 10, 1, SV(""), 0, 1, 0);
+ test(S("abcdefghij"), 10, 1, SV(""), 1, 0, 0);
+ test(S("abcdefghij"), 10, 1, SV("abcde"), 0, 0, 0);
+ test(S("abcdefghij"), 10, 1, SV("abcde"), 0, 1, -1);
+ test(S("abcdefghij"), 10, 1, SV("abcde"), 0, 2, -2);
+ test(S("abcdefghij"), 10, 1, SV("abcde"), 0, 4, -4);
+ test(S("abcdefghij"), 10, 1, SV("abcde"), 0, 5, -5);
+ test(S("abcdefghij"), 10, 1, SV("abcde"), 0, 6, -5);
+ test(S("abcdefghij"), 10, 1, SV("abcde"), 1, 0, 0);
+ test(S("abcdefghij"), 10, 1, SV("abcde"), 1, 1, -1);
+ test(S("abcdefghij"), 10, 1, SV("abcde"), 1, 2, -2);
+ test(S("abcdefghij"), 10, 1, SV("abcde"), 1, 3, -3);
+ test(S("abcdefghij"), 10, 1, SV("abcde"), 1, 4, -4);
+ test(S("abcdefghij"), 10, 1, SV("abcde"), 1, 5, -4);
+ test(S("abcdefghij"), 10, 1, SV("abcde"), 2, 0, 0);
+ test(S("abcdefghij"), 10, 1, SV("abcde"), 2, 1, -1);
+ test(S("abcdefghij"), 10, 1, SV("abcde"), 2, 2, -2);
+ test(S("abcdefghij"), 10, 1, SV("abcde"), 2, 3, -3);
+ test(S("abcdefghij"), 10, 1, SV("abcde"), 2, 4, -3);
+ test(S("abcdefghij"), 10, 1, SV("abcde"), 4, 0, 0);
+ test(S("abcdefghij"), 10, 1, SV("abcde"), 4, 1, -1);
+ test(S("abcdefghij"), 10, 1, SV("abcde"), 4, 2, -1);
+ test(S("abcdefghij"), 10, 1, SV("abcde"), 5, 0, 0);
+ test(S("abcdefghij"), 10, 1, SV("abcde"), 5, 1, 0);
+ test(S("abcdefghij"), 10, 1, SV("abcde"), 6, 0, 0);
+ test(S("abcdefghij"), 10, 1, SV("abcdefghij"), 0, 0, 0);
+ test(S("abcdefghij"), 10, 1, SV("abcdefghij"), 0, 1, -1);
+ test(S("abcdefghij"), 10, 1, SV("abcdefghij"), 0, 5, -5);
+ test(S("abcdefghij"), 10, 1, SV("abcdefghij"), 0, 9, -9);
+ test(S("abcdefghij"), 10, 1, SV("abcdefghij"), 0, 10, -10);
+ test(S("abcdefghij"), 10, 1, SV("abcdefghij"), 0, 11, -10);
+ test(S("abcdefghij"), 10, 1, SV("abcdefghij"), 1, 0, 0);
+ test(S("abcdefghij"), 10, 1, SV("abcdefghij"), 1, 1, -1);
+ test(S("abcdefghij"), 10, 1, SV("abcdefghij"), 1, 4, -4);
+ test(S("abcdefghij"), 10, 1, SV("abcdefghij"), 1, 8, -8);
+ test(S("abcdefghij"), 10, 1, SV("abcdefghij"), 1, 9, -9);
+ test(S("abcdefghij"), 10, 1, SV("abcdefghij"), 1, 10, -9);
+ test(S("abcdefghij"), 10, 1, SV("abcdefghij"), 5, 0, 0);
+ test(S("abcdefghij"), 10, 1, SV("abcdefghij"), 5, 1, -1);
+ test(S("abcdefghij"), 10, 1, SV("abcdefghij"), 5, 2, -2);
+ test(S("abcdefghij"), 10, 1, SV("abcdefghij"), 5, 4, -4);
+ test(S("abcdefghij"), 10, 1, SV("abcdefghij"), 5, 5, -5);
+ test(S("abcdefghij"), 10, 1, SV("abcdefghij"), 5, 6, -5);
+ test(S("abcdefghij"), 10, 1, SV("abcdefghij"), 9, 0, 0);
+ test(S("abcdefghij"), 10, 1, SV("abcdefghij"), 9, 1, -1);
+ test(S("abcdefghij"), 10, 1, SV("abcdefghij"), 9, 2, -1);
+ test(S("abcdefghij"), 10, 1, SV("abcdefghij"), 10, 0, 0);
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test36()
-{
- test(S("abcdefghij"), 10, 1, SV("abcdefghij"), 10, 1, 0);
- test(S("abcdefghij"), 10, 1, SV("abcdefghij"), 11, 0, 0);
- test(S("abcdefghij"), 10, 1, SV("abcdefghijklmnopqrst"), 0, 0, 0);
- test(S("abcdefghij"), 10, 1, SV("abcdefghijklmnopqrst"), 0, 1, -1);
- test(S("abcdefghij"), 10, 1, SV("abcdefghijklmnopqrst"), 0, 10, -10);
- test(S("abcdefghij"), 10, 1, SV("abcdefghijklmnopqrst"), 0, 19, -19);
- test(S("abcdefghij"), 10, 1, SV("abcdefghijklmnopqrst"), 0, 20, -20);
- test(S("abcdefghij"), 10, 1, SV("abcdefghijklmnopqrst"), 0, 21, -20);
- test(S("abcdefghij"), 10, 1, SV("abcdefghijklmnopqrst"), 1, 0, 0);
- test(S("abcdefghij"), 10, 1, SV("abcdefghijklmnopqrst"), 1, 1, -1);
- test(S("abcdefghij"), 10, 1, SV("abcdefghijklmnopqrst"), 1, 9, -9);
- test(S("abcdefghij"), 10, 1, SV("abcdefghijklmnopqrst"), 1, 18, -18);
- test(S("abcdefghij"), 10, 1, SV("abcdefghijklmnopqrst"), 1, 19, -19);
- test(S("abcdefghij"), 10, 1, SV("abcdefghijklmnopqrst"), 1, 20, -19);
- test(S("abcdefghij"), 10, 1, SV("abcdefghijklmnopqrst"), 10, 0, 0);
- test(S("abcdefghij"), 10, 1, SV("abcdefghijklmnopqrst"), 10, 1, -1);
- test(S("abcdefghij"), 10, 1, SV("abcdefghijklmnopqrst"), 10, 5, -5);
- test(S("abcdefghij"), 10, 1, SV("abcdefghijklmnopqrst"), 10, 9, -9);
- test(S("abcdefghij"), 10, 1, SV("abcdefghijklmnopqrst"), 10, 10, -10);
- test(S("abcdefghij"), 10, 1, SV("abcdefghijklmnopqrst"), 10, 11, -10);
- test(S("abcdefghij"), 10, 1, SV("abcdefghijklmnopqrst"), 19, 0, 0);
- test(S("abcdefghij"), 10, 1, SV("abcdefghijklmnopqrst"), 19, 1, -1);
- test(S("abcdefghij"), 10, 1, SV("abcdefghijklmnopqrst"), 19, 2, -1);
- test(S("abcdefghij"), 10, 1, SV("abcdefghijklmnopqrst"), 20, 0, 0);
- test(S("abcdefghij"), 10, 1, SV("abcdefghijklmnopqrst"), 20, 1, 0);
- test(S("abcdefghij"), 10, 1, SV("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghij"), 11, 0, SV(""), 0, 0, 0);
- test(S("abcdefghij"), 11, 0, SV(""), 0, 1, 0);
- test(S("abcdefghij"), 11, 0, SV(""), 1, 0, 0);
- test(S("abcdefghij"), 11, 0, SV("abcde"), 0, 0, 0);
- test(S("abcdefghij"), 11, 0, SV("abcde"), 0, 1, 0);
- test(S("abcdefghij"), 11, 0, SV("abcde"), 0, 2, 0);
- test(S("abcdefghij"), 11, 0, SV("abcde"), 0, 4, 0);
- test(S("abcdefghij"), 11, 0, SV("abcde"), 0, 5, 0);
- test(S("abcdefghij"), 11, 0, SV("abcde"), 0, 6, 0);
- test(S("abcdefghij"), 11, 0, SV("abcde"), 1, 0, 0);
- test(S("abcdefghij"), 11, 0, SV("abcde"), 1, 1, 0);
- test(S("abcdefghij"), 11, 0, SV("abcde"), 1, 2, 0);
- test(S("abcdefghij"), 11, 0, SV("abcde"), 1, 3, 0);
- test(S("abcdefghij"), 11, 0, SV("abcde"), 1, 4, 0);
- test(S("abcdefghij"), 11, 0, SV("abcde"), 1, 5, 0);
- test(S("abcdefghij"), 11, 0, SV("abcde"), 2, 0, 0);
- test(S("abcdefghij"), 11, 0, SV("abcde"), 2, 1, 0);
- test(S("abcdefghij"), 11, 0, SV("abcde"), 2, 2, 0);
- test(S("abcdefghij"), 11, 0, SV("abcde"), 2, 3, 0);
- test(S("abcdefghij"), 11, 0, SV("abcde"), 2, 4, 0);
- test(S("abcdefghij"), 11, 0, SV("abcde"), 4, 0, 0);
- test(S("abcdefghij"), 11, 0, SV("abcde"), 4, 1, 0);
- test(S("abcdefghij"), 11, 0, SV("abcde"), 4, 2, 0);
- test(S("abcdefghij"), 11, 0, SV("abcde"), 5, 0, 0);
- test(S("abcdefghij"), 11, 0, SV("abcde"), 5, 1, 0);
- test(S("abcdefghij"), 11, 0, SV("abcde"), 6, 0, 0);
- test(S("abcdefghij"), 11, 0, SV("abcdefghij"), 0, 0, 0);
- test(S("abcdefghij"), 11, 0, SV("abcdefghij"), 0, 1, 0);
- test(S("abcdefghij"), 11, 0, SV("abcdefghij"), 0, 5, 0);
- test(S("abcdefghij"), 11, 0, SV("abcdefghij"), 0, 9, 0);
- test(S("abcdefghij"), 11, 0, SV("abcdefghij"), 0, 10, 0);
- test(S("abcdefghij"), 11, 0, SV("abcdefghij"), 0, 11, 0);
- test(S("abcdefghij"), 11, 0, SV("abcdefghij"), 1, 0, 0);
- test(S("abcdefghij"), 11, 0, SV("abcdefghij"), 1, 1, 0);
- test(S("abcdefghij"), 11, 0, SV("abcdefghij"), 1, 4, 0);
- test(S("abcdefghij"), 11, 0, SV("abcdefghij"), 1, 8, 0);
- test(S("abcdefghij"), 11, 0, SV("abcdefghij"), 1, 9, 0);
- test(S("abcdefghij"), 11, 0, SV("abcdefghij"), 1, 10, 0);
- test(S("abcdefghij"), 11, 0, SV("abcdefghij"), 5, 0, 0);
- test(S("abcdefghij"), 11, 0, SV("abcdefghij"), 5, 1, 0);
- test(S("abcdefghij"), 11, 0, SV("abcdefghij"), 5, 2, 0);
- test(S("abcdefghij"), 11, 0, SV("abcdefghij"), 5, 4, 0);
- test(S("abcdefghij"), 11, 0, SV("abcdefghij"), 5, 5, 0);
- test(S("abcdefghij"), 11, 0, SV("abcdefghij"), 5, 6, 0);
- test(S("abcdefghij"), 11, 0, SV("abcdefghij"), 9, 0, 0);
- test(S("abcdefghij"), 11, 0, SV("abcdefghij"), 9, 1, 0);
- test(S("abcdefghij"), 11, 0, SV("abcdefghij"), 9, 2, 0);
- test(S("abcdefghij"), 11, 0, SV("abcdefghij"), 10, 0, 0);
- test(S("abcdefghij"), 11, 0, SV("abcdefghij"), 10, 1, 0);
- test(S("abcdefghij"), 11, 0, SV("abcdefghij"), 11, 0, 0);
- test(S("abcdefghij"), 11, 0, SV("abcdefghijklmnopqrst"), 0, 0, 0);
- test(S("abcdefghij"), 11, 0, SV("abcdefghijklmnopqrst"), 0, 1, 0);
- test(S("abcdefghij"), 11, 0, SV("abcdefghijklmnopqrst"), 0, 10, 0);
- test(S("abcdefghij"), 11, 0, SV("abcdefghijklmnopqrst"), 0, 19, 0);
- test(S("abcdefghij"), 11, 0, SV("abcdefghijklmnopqrst"), 0, 20, 0);
- test(S("abcdefghij"), 11, 0, SV("abcdefghijklmnopqrst"), 0, 21, 0);
- test(S("abcdefghij"), 11, 0, SV("abcdefghijklmnopqrst"), 1, 0, 0);
- test(S("abcdefghij"), 11, 0, SV("abcdefghijklmnopqrst"), 1, 1, 0);
- test(S("abcdefghij"), 11, 0, SV("abcdefghijklmnopqrst"), 1, 9, 0);
- test(S("abcdefghij"), 11, 0, SV("abcdefghijklmnopqrst"), 1, 18, 0);
- test(S("abcdefghij"), 11, 0, SV("abcdefghijklmnopqrst"), 1, 19, 0);
- test(S("abcdefghij"), 11, 0, SV("abcdefghijklmnopqrst"), 1, 20, 0);
- test(S("abcdefghij"), 11, 0, SV("abcdefghijklmnopqrst"), 10, 0, 0);
- test(S("abcdefghij"), 11, 0, SV("abcdefghijklmnopqrst"), 10, 1, 0);
- test(S("abcdefghij"), 11, 0, SV("abcdefghijklmnopqrst"), 10, 5, 0);
- test(S("abcdefghij"), 11, 0, SV("abcdefghijklmnopqrst"), 10, 9, 0);
- test(S("abcdefghij"), 11, 0, SV("abcdefghijklmnopqrst"), 10, 10, 0);
- test(S("abcdefghij"), 11, 0, SV("abcdefghijklmnopqrst"), 10, 11, 0);
- test(S("abcdefghij"), 11, 0, SV("abcdefghijklmnopqrst"), 19, 0, 0);
- test(S("abcdefghij"), 11, 0, SV("abcdefghijklmnopqrst"), 19, 1, 0);
- test(S("abcdefghij"), 11, 0, SV("abcdefghijklmnopqrst"), 19, 2, 0);
- test(S("abcdefghij"), 11, 0, SV("abcdefghijklmnopqrst"), 20, 0, 0);
- test(S("abcdefghij"), 11, 0, SV("abcdefghijklmnopqrst"), 20, 1, 0);
- test(S("abcdefghij"), 11, 0, SV("abcdefghijklmnopqrst"), 21, 0, 0);
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test36() {
+ test(S("abcdefghij"), 10, 1, SV("abcdefghij"), 10, 1, 0);
+ test(S("abcdefghij"), 10, 1, SV("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghij"), 10, 1, SV("abcdefghijklmnopqrst"), 0, 0, 0);
+ test(S("abcdefghij"), 10, 1, SV("abcdefghijklmnopqrst"), 0, 1, -1);
+ test(S("abcdefghij"), 10, 1, SV("abcdefghijklmnopqrst"), 0, 10, -10);
+ test(S("abcdefghij"), 10, 1, SV("abcdefghijklmnopqrst"), 0, 19, -19);
+ test(S("abcdefghij"), 10, 1, SV("abcdefghijklmnopqrst"), 0, 20, -20);
+ test(S("abcdefghij"), 10, 1, SV("abcdefghijklmnopqrst"), 0, 21, -20);
+ test(S("abcdefghij"), 10, 1, SV("abcdefghijklmnopqrst"), 1, 0, 0);
+ test(S("abcdefghij"), 10, 1, SV("abcdefghijklmnopqrst"), 1, 1, -1);
+ test(S("abcdefghij"), 10, 1, SV("abcdefghijklmnopqrst"), 1, 9, -9);
+ test(S("abcdefghij"), 10, 1, SV("abcdefghijklmnopqrst"), 1, 18, -18);
+ test(S("abcdefghij"), 10, 1, SV("abcdefghijklmnopqrst"), 1, 19, -19);
+ test(S("abcdefghij"), 10, 1, SV("abcdefghijklmnopqrst"), 1, 20, -19);
+ test(S("abcdefghij"), 10, 1, SV("abcdefghijklmnopqrst"), 10, 0, 0);
+ test(S("abcdefghij"), 10, 1, SV("abcdefghijklmnopqrst"), 10, 1, -1);
+ test(S("abcdefghij"), 10, 1, SV("abcdefghijklmnopqrst"), 10, 5, -5);
+ test(S("abcdefghij"), 10, 1, SV("abcdefghijklmnopqrst"), 10, 9, -9);
+ test(S("abcdefghij"), 10, 1, SV("abcdefghijklmnopqrst"), 10, 10, -10);
+ test(S("abcdefghij"), 10, 1, SV("abcdefghijklmnopqrst"), 10, 11, -10);
+ test(S("abcdefghij"), 10, 1, SV("abcdefghijklmnopqrst"), 19, 0, 0);
+ test(S("abcdefghij"), 10, 1, SV("abcdefghijklmnopqrst"), 19, 1, -1);
+ test(S("abcdefghij"), 10, 1, SV("abcdefghijklmnopqrst"), 19, 2, -1);
+ test(S("abcdefghij"), 10, 1, SV("abcdefghijklmnopqrst"), 20, 0, 0);
+ test(S("abcdefghij"), 10, 1, SV("abcdefghijklmnopqrst"), 20, 1, 0);
+ test(S("abcdefghij"), 10, 1, SV("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghij"), 11, 0, SV(""), 0, 0, 0);
+ test(S("abcdefghij"), 11, 0, SV(""), 0, 1, 0);
+ test(S("abcdefghij"), 11, 0, SV(""), 1, 0, 0);
+ test(S("abcdefghij"), 11, 0, SV("abcde"), 0, 0, 0);
+ test(S("abcdefghij"), 11, 0, SV("abcde"), 0, 1, 0);
+ test(S("abcdefghij"), 11, 0, SV("abcde"), 0, 2, 0);
+ test(S("abcdefghij"), 11, 0, SV("abcde"), 0, 4, 0);
+ test(S("abcdefghij"), 11, 0, SV("abcde"), 0, 5, 0);
+ test(S("abcdefghij"), 11, 0, SV("abcde"), 0, 6, 0);
+ test(S("abcdefghij"), 11, 0, SV("abcde"), 1, 0, 0);
+ test(S("abcdefghij"), 11, 0, SV("abcde"), 1, 1, 0);
+ test(S("abcdefghij"), 11, 0, SV("abcde"), 1, 2, 0);
+ test(S("abcdefghij"), 11, 0, SV("abcde"), 1, 3, 0);
+ test(S("abcdefghij"), 11, 0, SV("abcde"), 1, 4, 0);
+ test(S("abcdefghij"), 11, 0, SV("abcde"), 1, 5, 0);
+ test(S("abcdefghij"), 11, 0, SV("abcde"), 2, 0, 0);
+ test(S("abcdefghij"), 11, 0, SV("abcde"), 2, 1, 0);
+ test(S("abcdefghij"), 11, 0, SV("abcde"), 2, 2, 0);
+ test(S("abcdefghij"), 11, 0, SV("abcde"), 2, 3, 0);
+ test(S("abcdefghij"), 11, 0, SV("abcde"), 2, 4, 0);
+ test(S("abcdefghij"), 11, 0, SV("abcde"), 4, 0, 0);
+ test(S("abcdefghij"), 11, 0, SV("abcde"), 4, 1, 0);
+ test(S("abcdefghij"), 11, 0, SV("abcde"), 4, 2, 0);
+ test(S("abcdefghij"), 11, 0, SV("abcde"), 5, 0, 0);
+ test(S("abcdefghij"), 11, 0, SV("abcde"), 5, 1, 0);
+ test(S("abcdefghij"), 11, 0, SV("abcde"), 6, 0, 0);
+ test(S("abcdefghij"), 11, 0, SV("abcdefghij"), 0, 0, 0);
+ test(S("abcdefghij"), 11, 0, SV("abcdefghij"), 0, 1, 0);
+ test(S("abcdefghij"), 11, 0, SV("abcdefghij"), 0, 5, 0);
+ test(S("abcdefghij"), 11, 0, SV("abcdefghij"), 0, 9, 0);
+ test(S("abcdefghij"), 11, 0, SV("abcdefghij"), 0, 10, 0);
+ test(S("abcdefghij"), 11, 0, SV("abcdefghij"), 0, 11, 0);
+ test(S("abcdefghij"), 11, 0, SV("abcdefghij"), 1, 0, 0);
+ test(S("abcdefghij"), 11, 0, SV("abcdefghij"), 1, 1, 0);
+ test(S("abcdefghij"), 11, 0, SV("abcdefghij"), 1, 4, 0);
+ test(S("abcdefghij"), 11, 0, SV("abcdefghij"), 1, 8, 0);
+ test(S("abcdefghij"), 11, 0, SV("abcdefghij"), 1, 9, 0);
+ test(S("abcdefghij"), 11, 0, SV("abcdefghij"), 1, 10, 0);
+ test(S("abcdefghij"), 11, 0, SV("abcdefghij"), 5, 0, 0);
+ test(S("abcdefghij"), 11, 0, SV("abcdefghij"), 5, 1, 0);
+ test(S("abcdefghij"), 11, 0, SV("abcdefghij"), 5, 2, 0);
+ test(S("abcdefghij"), 11, 0, SV("abcdefghij"), 5, 4, 0);
+ test(S("abcdefghij"), 11, 0, SV("abcdefghij"), 5, 5, 0);
+ test(S("abcdefghij"), 11, 0, SV("abcdefghij"), 5, 6, 0);
+ test(S("abcdefghij"), 11, 0, SV("abcdefghij"), 9, 0, 0);
+ test(S("abcdefghij"), 11, 0, SV("abcdefghij"), 9, 1, 0);
+ test(S("abcdefghij"), 11, 0, SV("abcdefghij"), 9, 2, 0);
+ test(S("abcdefghij"), 11, 0, SV("abcdefghij"), 10, 0, 0);
+ test(S("abcdefghij"), 11, 0, SV("abcdefghij"), 10, 1, 0);
+ test(S("abcdefghij"), 11, 0, SV("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghij"), 11, 0, SV("abcdefghijklmnopqrst"), 0, 0, 0);
+ test(S("abcdefghij"), 11, 0, SV("abcdefghijklmnopqrst"), 0, 1, 0);
+ test(S("abcdefghij"), 11, 0, SV("abcdefghijklmnopqrst"), 0, 10, 0);
+ test(S("abcdefghij"), 11, 0, SV("abcdefghijklmnopqrst"), 0, 19, 0);
+ test(S("abcdefghij"), 11, 0, SV("abcdefghijklmnopqrst"), 0, 20, 0);
+ test(S("abcdefghij"), 11, 0, SV("abcdefghijklmnopqrst"), 0, 21, 0);
+ test(S("abcdefghij"), 11, 0, SV("abcdefghijklmnopqrst"), 1, 0, 0);
+ test(S("abcdefghij"), 11, 0, SV("abcdefghijklmnopqrst"), 1, 1, 0);
+ test(S("abcdefghij"), 11, 0, SV("abcdefghijklmnopqrst"), 1, 9, 0);
+ test(S("abcdefghij"), 11, 0, SV("abcdefghijklmnopqrst"), 1, 18, 0);
+ test(S("abcdefghij"), 11, 0, SV("abcdefghijklmnopqrst"), 1, 19, 0);
+ test(S("abcdefghij"), 11, 0, SV("abcdefghijklmnopqrst"), 1, 20, 0);
+ test(S("abcdefghij"), 11, 0, SV("abcdefghijklmnopqrst"), 10, 0, 0);
+ test(S("abcdefghij"), 11, 0, SV("abcdefghijklmnopqrst"), 10, 1, 0);
+ test(S("abcdefghij"), 11, 0, SV("abcdefghijklmnopqrst"), 10, 5, 0);
+ test(S("abcdefghij"), 11, 0, SV("abcdefghijklmnopqrst"), 10, 9, 0);
+ test(S("abcdefghij"), 11, 0, SV("abcdefghijklmnopqrst"), 10, 10, 0);
+ test(S("abcdefghij"), 11, 0, SV("abcdefghijklmnopqrst"), 10, 11, 0);
+ test(S("abcdefghij"), 11, 0, SV("abcdefghijklmnopqrst"), 19, 0, 0);
+ test(S("abcdefghij"), 11, 0, SV("abcdefghijklmnopqrst"), 19, 1, 0);
+ test(S("abcdefghij"), 11, 0, SV("abcdefghijklmnopqrst"), 19, 2, 0);
+ test(S("abcdefghij"), 11, 0, SV("abcdefghijklmnopqrst"), 20, 0, 0);
+ test(S("abcdefghij"), 11, 0, SV("abcdefghijklmnopqrst"), 20, 1, 0);
+ test(S("abcdefghij"), 11, 0, SV("abcdefghijklmnopqrst"), 21, 0, 0);
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test37()
-{
- test(S("abcdefghijklmnopqrst"), 0, 0, SV(""), 0, 0, 0);
- test(S("abcdefghijklmnopqrst"), 0, 0, SV(""), 0, 1, 0);
- test(S("abcdefghijklmnopqrst"), 0, 0, SV(""), 1, 0, 0);
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcde"), 0, 0, 0);
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcde"), 0, 1, -1);
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcde"), 0, 2, -2);
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcde"), 0, 4, -4);
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcde"), 0, 5, -5);
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcde"), 0, 6, -5);
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcde"), 1, 0, 0);
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcde"), 1, 1, -1);
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcde"), 1, 2, -2);
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcde"), 1, 3, -3);
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcde"), 1, 4, -4);
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcde"), 1, 5, -4);
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcde"), 2, 0, 0);
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcde"), 2, 1, -1);
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcde"), 2, 2, -2);
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcde"), 2, 3, -3);
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcde"), 2, 4, -3);
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcde"), 4, 0, 0);
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcde"), 4, 1, -1);
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcde"), 4, 2, -1);
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcde"), 5, 0, 0);
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcde"), 5, 1, 0);
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcde"), 6, 0, 0);
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghij"), 0, 0, 0);
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghij"), 0, 1, -1);
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghij"), 0, 5, -5);
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghij"), 0, 9, -9);
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghij"), 0, 10, -10);
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghij"), 0, 11, -10);
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghij"), 1, 0, 0);
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghij"), 1, 1, -1);
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghij"), 1, 4, -4);
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghij"), 1, 8, -8);
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghij"), 1, 9, -9);
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghij"), 1, 10, -9);
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghij"), 5, 0, 0);
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghij"), 5, 1, -1);
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghij"), 5, 2, -2);
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghij"), 5, 4, -4);
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghij"), 5, 5, -5);
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghij"), 5, 6, -5);
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghij"), 9, 0, 0);
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghij"), 9, 1, -1);
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghij"), 9, 2, -1);
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghij"), 10, 0, 0);
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghij"), 10, 1, 0);
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghij"), 11, 0, 0);
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghijklmnopqrst"), 0, 0, 0);
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghijklmnopqrst"), 0, 1, -1);
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghijklmnopqrst"), 0, 10, -10);
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghijklmnopqrst"), 0, 19, -19);
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghijklmnopqrst"), 0, 20, -20);
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghijklmnopqrst"), 0, 21, -20);
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghijklmnopqrst"), 1, 0, 0);
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghijklmnopqrst"), 1, 1, -1);
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghijklmnopqrst"), 1, 9, -9);
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghijklmnopqrst"), 1, 18, -18);
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghijklmnopqrst"), 1, 19, -19);
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghijklmnopqrst"), 1, 20, -19);
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghijklmnopqrst"), 10, 0, 0);
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghijklmnopqrst"), 10, 1, -1);
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghijklmnopqrst"), 10, 5, -5);
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghijklmnopqrst"), 10, 9, -9);
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghijklmnopqrst"), 10, 10, -10);
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghijklmnopqrst"), 10, 11, -10);
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghijklmnopqrst"), 19, 0, 0);
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghijklmnopqrst"), 19, 1, -1);
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghijklmnopqrst"), 19, 2, -1);
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghijklmnopqrst"), 20, 0, 0);
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghijklmnopqrst"), 20, 1, 0);
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghijklmnopqrst"), 0, 1, SV(""), 0, 0, 1);
- test(S("abcdefghijklmnopqrst"), 0, 1, SV(""), 0, 1, 1);
- test(S("abcdefghijklmnopqrst"), 0, 1, SV(""), 1, 0, 0);
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcde"), 0, 0, 1);
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcde"), 0, 1, 0);
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcde"), 0, 2, -1);
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcde"), 0, 4, -3);
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcde"), 0, 5, -4);
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcde"), 0, 6, -4);
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcde"), 1, 0, 1);
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcde"), 1, 1, -1);
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcde"), 1, 2, -1);
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcde"), 1, 3, -1);
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcde"), 1, 4, -1);
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcde"), 1, 5, -1);
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcde"), 2, 0, 1);
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcde"), 2, 1, -2);
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcde"), 2, 2, -2);
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcde"), 2, 3, -2);
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcde"), 2, 4, -2);
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcde"), 4, 0, 1);
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcde"), 4, 1, -4);
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcde"), 4, 2, -4);
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcde"), 5, 0, 1);
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcde"), 5, 1, 1);
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcde"), 6, 0, 0);
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test37() {
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV(""), 0, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV(""), 0, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV(""), 1, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcde"), 0, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcde"), 0, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcde"), 0, 2, -2);
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcde"), 0, 4, -4);
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcde"), 0, 5, -5);
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcde"), 0, 6, -5);
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcde"), 1, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcde"), 1, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcde"), 1, 2, -2);
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcde"), 1, 3, -3);
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcde"), 1, 4, -4);
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcde"), 1, 5, -4);
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcde"), 2, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcde"), 2, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcde"), 2, 2, -2);
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcde"), 2, 3, -3);
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcde"), 2, 4, -3);
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcde"), 4, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcde"), 4, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcde"), 4, 2, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcde"), 5, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcde"), 5, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcde"), 6, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghij"), 0, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghij"), 0, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghij"), 0, 5, -5);
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghij"), 0, 9, -9);
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghij"), 0, 10, -10);
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghij"), 0, 11, -10);
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghij"), 1, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghij"), 1, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghij"), 1, 4, -4);
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghij"), 1, 8, -8);
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghij"), 1, 9, -9);
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghij"), 1, 10, -9);
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghij"), 5, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghij"), 5, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghij"), 5, 2, -2);
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghij"), 5, 4, -4);
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghij"), 5, 5, -5);
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghij"), 5, 6, -5);
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghij"), 9, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghij"), 9, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghij"), 9, 2, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghij"), 10, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghij"), 10, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghijklmnopqrst"), 0, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghijklmnopqrst"), 0, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghijklmnopqrst"), 0, 10, -10);
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghijklmnopqrst"), 0, 19, -19);
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghijklmnopqrst"), 0, 20, -20);
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghijklmnopqrst"), 0, 21, -20);
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghijklmnopqrst"), 1, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghijklmnopqrst"), 1, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghijklmnopqrst"), 1, 9, -9);
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghijklmnopqrst"), 1, 18, -18);
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghijklmnopqrst"), 1, 19, -19);
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghijklmnopqrst"), 1, 20, -19);
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghijklmnopqrst"), 10, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghijklmnopqrst"), 10, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghijklmnopqrst"), 10, 5, -5);
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghijklmnopqrst"), 10, 9, -9);
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghijklmnopqrst"), 10, 10, -10);
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghijklmnopqrst"), 10, 11, -10);
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghijklmnopqrst"), 19, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghijklmnopqrst"), 19, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghijklmnopqrst"), 19, 2, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghijklmnopqrst"), 20, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghijklmnopqrst"), 20, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV(""), 0, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV(""), 0, 1, 1);
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV(""), 1, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcde"), 0, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcde"), 0, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcde"), 0, 2, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcde"), 0, 4, -3);
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcde"), 0, 5, -4);
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcde"), 0, 6, -4);
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcde"), 1, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcde"), 1, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcde"), 1, 2, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcde"), 1, 3, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcde"), 1, 4, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcde"), 1, 5, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcde"), 2, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcde"), 2, 1, -2);
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcde"), 2, 2, -2);
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcde"), 2, 3, -2);
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcde"), 2, 4, -2);
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcde"), 4, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcde"), 4, 1, -4);
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcde"), 4, 2, -4);
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcde"), 5, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcde"), 5, 1, 1);
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcde"), 6, 0, 0);
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test38()
-{
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghij"), 0, 0, 1);
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghij"), 0, 1, 0);
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghij"), 0, 5, -4);
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghij"), 0, 9, -8);
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghij"), 0, 10, -9);
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghij"), 0, 11, -9);
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghij"), 1, 0, 1);
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghij"), 1, 1, -1);
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghij"), 1, 4, -1);
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghij"), 1, 8, -1);
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghij"), 1, 9, -1);
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghij"), 1, 10, -1);
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghij"), 5, 0, 1);
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghij"), 5, 1, -5);
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghij"), 5, 2, -5);
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghij"), 5, 4, -5);
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghij"), 5, 5, -5);
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghij"), 5, 6, -5);
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghij"), 9, 0, 1);
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghij"), 9, 1, -9);
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghij"), 9, 2, -9);
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghij"), 10, 0, 1);
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghij"), 10, 1, 1);
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghij"), 11, 0, 0);
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghijklmnopqrst"), 0, 0, 1);
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghijklmnopqrst"), 0, 1, 0);
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghijklmnopqrst"), 0, 10, -9);
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghijklmnopqrst"), 0, 19, -18);
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghijklmnopqrst"), 0, 20, -19);
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghijklmnopqrst"), 0, 21, -19);
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghijklmnopqrst"), 1, 0, 1);
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghijklmnopqrst"), 1, 1, -1);
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghijklmnopqrst"), 1, 9, -1);
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghijklmnopqrst"), 1, 18, -1);
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghijklmnopqrst"), 1, 19, -1);
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghijklmnopqrst"), 1, 20, -1);
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghijklmnopqrst"), 10, 0, 1);
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghijklmnopqrst"), 10, 1, -10);
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghijklmnopqrst"), 10, 5, -10);
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghijklmnopqrst"), 10, 9, -10);
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghijklmnopqrst"), 10, 10, -10);
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghijklmnopqrst"), 10, 11, -10);
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghijklmnopqrst"), 19, 0, 1);
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghijklmnopqrst"), 19, 1, -19);
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghijklmnopqrst"), 19, 2, -19);
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghijklmnopqrst"), 20, 0, 1);
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghijklmnopqrst"), 20, 1, 1);
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghijklmnopqrst"), 0, 10, SV(""), 0, 0, 10);
- test(S("abcdefghijklmnopqrst"), 0, 10, SV(""), 0, 1, 10);
- test(S("abcdefghijklmnopqrst"), 0, 10, SV(""), 1, 0, 0);
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcde"), 0, 0, 10);
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcde"), 0, 1, 9);
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcde"), 0, 2, 8);
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcde"), 0, 4, 6);
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcde"), 0, 5, 5);
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcde"), 0, 6, 5);
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcde"), 1, 0, 10);
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcde"), 1, 1, -1);
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcde"), 1, 2, -1);
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcde"), 1, 3, -1);
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcde"), 1, 4, -1);
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcde"), 1, 5, -1);
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcde"), 2, 0, 10);
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcde"), 2, 1, -2);
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcde"), 2, 2, -2);
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcde"), 2, 3, -2);
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcde"), 2, 4, -2);
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcde"), 4, 0, 10);
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcde"), 4, 1, -4);
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcde"), 4, 2, -4);
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcde"), 5, 0, 10);
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcde"), 5, 1, 10);
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcde"), 6, 0, 0);
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghij"), 0, 0, 10);
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghij"), 0, 1, 9);
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghij"), 0, 5, 5);
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghij"), 0, 9, 1);
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghij"), 0, 10, 0);
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghij"), 0, 11, 0);
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghij"), 1, 0, 10);
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghij"), 1, 1, -1);
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghij"), 1, 4, -1);
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghij"), 1, 8, -1);
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghij"), 1, 9, -1);
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghij"), 1, 10, -1);
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghij"), 5, 0, 10);
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghij"), 5, 1, -5);
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghij"), 5, 2, -5);
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghij"), 5, 4, -5);
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghij"), 5, 5, -5);
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghij"), 5, 6, -5);
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghij"), 9, 0, 10);
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghij"), 9, 1, -9);
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghij"), 9, 2, -9);
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghij"), 10, 0, 10);
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghij"), 10, 1, 10);
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghij"), 11, 0, 0);
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghijklmnopqrst"), 0, 0, 10);
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghijklmnopqrst"), 0, 1, 9);
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test38() {
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghij"), 0, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghij"), 0, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghij"), 0, 5, -4);
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghij"), 0, 9, -8);
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghij"), 0, 10, -9);
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghij"), 0, 11, -9);
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghij"), 1, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghij"), 1, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghij"), 1, 4, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghij"), 1, 8, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghij"), 1, 9, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghij"), 1, 10, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghij"), 5, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghij"), 5, 1, -5);
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghij"), 5, 2, -5);
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghij"), 5, 4, -5);
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghij"), 5, 5, -5);
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghij"), 5, 6, -5);
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghij"), 9, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghij"), 9, 1, -9);
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghij"), 9, 2, -9);
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghij"), 10, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghij"), 10, 1, 1);
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghijklmnopqrst"), 0, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghijklmnopqrst"), 0, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghijklmnopqrst"), 0, 10, -9);
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghijklmnopqrst"), 0, 19, -18);
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghijklmnopqrst"), 0, 20, -19);
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghijklmnopqrst"), 0, 21, -19);
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghijklmnopqrst"), 1, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghijklmnopqrst"), 1, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghijklmnopqrst"), 1, 9, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghijklmnopqrst"), 1, 18, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghijklmnopqrst"), 1, 19, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghijklmnopqrst"), 1, 20, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghijklmnopqrst"), 10, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghijklmnopqrst"), 10, 1, -10);
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghijklmnopqrst"), 10, 5, -10);
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghijklmnopqrst"), 10, 9, -10);
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghijklmnopqrst"), 10, 10, -10);
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghijklmnopqrst"), 10, 11, -10);
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghijklmnopqrst"), 19, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghijklmnopqrst"), 19, 1, -19);
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghijklmnopqrst"), 19, 2, -19);
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghijklmnopqrst"), 20, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghijklmnopqrst"), 20, 1, 1);
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV(""), 0, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV(""), 0, 1, 10);
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV(""), 1, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcde"), 0, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcde"), 0, 1, 9);
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcde"), 0, 2, 8);
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcde"), 0, 4, 6);
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcde"), 0, 5, 5);
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcde"), 0, 6, 5);
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcde"), 1, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcde"), 1, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcde"), 1, 2, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcde"), 1, 3, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcde"), 1, 4, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcde"), 1, 5, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcde"), 2, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcde"), 2, 1, -2);
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcde"), 2, 2, -2);
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcde"), 2, 3, -2);
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcde"), 2, 4, -2);
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcde"), 4, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcde"), 4, 1, -4);
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcde"), 4, 2, -4);
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcde"), 5, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcde"), 5, 1, 10);
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcde"), 6, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghij"), 0, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghij"), 0, 1, 9);
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghij"), 0, 5, 5);
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghij"), 0, 9, 1);
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghij"), 0, 10, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghij"), 0, 11, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghij"), 1, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghij"), 1, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghij"), 1, 4, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghij"), 1, 8, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghij"), 1, 9, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghij"), 1, 10, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghij"), 5, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghij"), 5, 1, -5);
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghij"), 5, 2, -5);
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghij"), 5, 4, -5);
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghij"), 5, 5, -5);
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghij"), 5, 6, -5);
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghij"), 9, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghij"), 9, 1, -9);
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghij"), 9, 2, -9);
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghij"), 10, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghij"), 10, 1, 10);
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghijklmnopqrst"), 0, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghijklmnopqrst"), 0, 1, 9);
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test39()
-{
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghijklmnopqrst"), 0, 10, 0);
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghijklmnopqrst"), 0, 19, -9);
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghijklmnopqrst"), 0, 20, -10);
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghijklmnopqrst"), 0, 21, -10);
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghijklmnopqrst"), 1, 0, 10);
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghijklmnopqrst"), 1, 1, -1);
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghijklmnopqrst"), 1, 9, -1);
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghijklmnopqrst"), 1, 18, -1);
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghijklmnopqrst"), 1, 19, -1);
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghijklmnopqrst"), 1, 20, -1);
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghijklmnopqrst"), 10, 0, 10);
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghijklmnopqrst"), 10, 1, -10);
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghijklmnopqrst"), 10, 5, -10);
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghijklmnopqrst"), 10, 9, -10);
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghijklmnopqrst"), 10, 10, -10);
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghijklmnopqrst"), 10, 11, -10);
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghijklmnopqrst"), 19, 0, 10);
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghijklmnopqrst"), 19, 1, -19);
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghijklmnopqrst"), 19, 2, -19);
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghijklmnopqrst"), 20, 0, 10);
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghijklmnopqrst"), 20, 1, 10);
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghijklmnopqrst"), 0, 19, SV(""), 0, 0, 19);
- test(S("abcdefghijklmnopqrst"), 0, 19, SV(""), 0, 1, 19);
- test(S("abcdefghijklmnopqrst"), 0, 19, SV(""), 1, 0, 0);
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcde"), 0, 0, 19);
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcde"), 0, 1, 18);
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcde"), 0, 2, 17);
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcde"), 0, 4, 15);
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcde"), 0, 5, 14);
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcde"), 0, 6, 14);
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcde"), 1, 0, 19);
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcde"), 1, 1, -1);
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcde"), 1, 2, -1);
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcde"), 1, 3, -1);
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcde"), 1, 4, -1);
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcde"), 1, 5, -1);
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcde"), 2, 0, 19);
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcde"), 2, 1, -2);
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcde"), 2, 2, -2);
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcde"), 2, 3, -2);
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcde"), 2, 4, -2);
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcde"), 4, 0, 19);
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcde"), 4, 1, -4);
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcde"), 4, 2, -4);
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcde"), 5, 0, 19);
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcde"), 5, 1, 19);
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcde"), 6, 0, 0);
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghij"), 0, 0, 19);
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghij"), 0, 1, 18);
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghij"), 0, 5, 14);
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghij"), 0, 9, 10);
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghij"), 0, 10, 9);
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghij"), 0, 11, 9);
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghij"), 1, 0, 19);
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghij"), 1, 1, -1);
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghij"), 1, 4, -1);
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghij"), 1, 8, -1);
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghij"), 1, 9, -1);
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghij"), 1, 10, -1);
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghij"), 5, 0, 19);
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghij"), 5, 1, -5);
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghij"), 5, 2, -5);
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghij"), 5, 4, -5);
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghij"), 5, 5, -5);
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghij"), 5, 6, -5);
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghij"), 9, 0, 19);
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghij"), 9, 1, -9);
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghij"), 9, 2, -9);
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghij"), 10, 0, 19);
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghij"), 10, 1, 19);
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghij"), 11, 0, 0);
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghijklmnopqrst"), 0, 0, 19);
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghijklmnopqrst"), 0, 1, 18);
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghijklmnopqrst"), 0, 10, 9);
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghijklmnopqrst"), 0, 19, 0);
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghijklmnopqrst"), 0, 20, -1);
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghijklmnopqrst"), 0, 21, -1);
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghijklmnopqrst"), 1, 0, 19);
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghijklmnopqrst"), 1, 1, -1);
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghijklmnopqrst"), 1, 9, -1);
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghijklmnopqrst"), 1, 18, -1);
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghijklmnopqrst"), 1, 19, -1);
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghijklmnopqrst"), 1, 20, -1);
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghijklmnopqrst"), 10, 0, 19);
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghijklmnopqrst"), 10, 1, -10);
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghijklmnopqrst"), 10, 5, -10);
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghijklmnopqrst"), 10, 9, -10);
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghijklmnopqrst"), 10, 10, -10);
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghijklmnopqrst"), 10, 11, -10);
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghijklmnopqrst"), 19, 0, 19);
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghijklmnopqrst"), 19, 1, -19);
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghijklmnopqrst"), 19, 2, -19);
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghijklmnopqrst"), 20, 0, 19);
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghijklmnopqrst"), 20, 1, 19);
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghijklmnopqrst"), 0, 20, SV(""), 0, 0, 20);
- test(S("abcdefghijklmnopqrst"), 0, 20, SV(""), 0, 1, 20);
- test(S("abcdefghijklmnopqrst"), 0, 20, SV(""), 1, 0, 0);
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcde"), 0, 0, 20);
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test39() {
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghijklmnopqrst"), 0, 10, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghijklmnopqrst"), 0, 19, -9);
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghijklmnopqrst"), 0, 20, -10);
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghijklmnopqrst"), 0, 21, -10);
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghijklmnopqrst"), 1, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghijklmnopqrst"), 1, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghijklmnopqrst"), 1, 9, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghijklmnopqrst"), 1, 18, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghijklmnopqrst"), 1, 19, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghijklmnopqrst"), 1, 20, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghijklmnopqrst"), 10, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghijklmnopqrst"), 10, 1, -10);
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghijklmnopqrst"), 10, 5, -10);
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghijklmnopqrst"), 10, 9, -10);
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghijklmnopqrst"), 10, 10, -10);
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghijklmnopqrst"), 10, 11, -10);
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghijklmnopqrst"), 19, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghijklmnopqrst"), 19, 1, -19);
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghijklmnopqrst"), 19, 2, -19);
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghijklmnopqrst"), 20, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghijklmnopqrst"), 20, 1, 10);
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV(""), 0, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV(""), 0, 1, 19);
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV(""), 1, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcde"), 0, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcde"), 0, 1, 18);
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcde"), 0, 2, 17);
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcde"), 0, 4, 15);
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcde"), 0, 5, 14);
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcde"), 0, 6, 14);
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcde"), 1, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcde"), 1, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcde"), 1, 2, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcde"), 1, 3, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcde"), 1, 4, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcde"), 1, 5, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcde"), 2, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcde"), 2, 1, -2);
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcde"), 2, 2, -2);
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcde"), 2, 3, -2);
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcde"), 2, 4, -2);
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcde"), 4, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcde"), 4, 1, -4);
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcde"), 4, 2, -4);
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcde"), 5, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcde"), 5, 1, 19);
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcde"), 6, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghij"), 0, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghij"), 0, 1, 18);
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghij"), 0, 5, 14);
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghij"), 0, 9, 10);
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghij"), 0, 10, 9);
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghij"), 0, 11, 9);
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghij"), 1, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghij"), 1, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghij"), 1, 4, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghij"), 1, 8, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghij"), 1, 9, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghij"), 1, 10, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghij"), 5, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghij"), 5, 1, -5);
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghij"), 5, 2, -5);
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghij"), 5, 4, -5);
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghij"), 5, 5, -5);
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghij"), 5, 6, -5);
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghij"), 9, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghij"), 9, 1, -9);
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghij"), 9, 2, -9);
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghij"), 10, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghij"), 10, 1, 19);
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghijklmnopqrst"), 0, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghijklmnopqrst"), 0, 1, 18);
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghijklmnopqrst"), 0, 10, 9);
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghijklmnopqrst"), 0, 19, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghijklmnopqrst"), 0, 20, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghijklmnopqrst"), 0, 21, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghijklmnopqrst"), 1, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghijklmnopqrst"), 1, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghijklmnopqrst"), 1, 9, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghijklmnopqrst"), 1, 18, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghijklmnopqrst"), 1, 19, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghijklmnopqrst"), 1, 20, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghijklmnopqrst"), 10, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghijklmnopqrst"), 10, 1, -10);
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghijklmnopqrst"), 10, 5, -10);
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghijklmnopqrst"), 10, 9, -10);
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghijklmnopqrst"), 10, 10, -10);
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghijklmnopqrst"), 10, 11, -10);
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghijklmnopqrst"), 19, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghijklmnopqrst"), 19, 1, -19);
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghijklmnopqrst"), 19, 2, -19);
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghijklmnopqrst"), 20, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghijklmnopqrst"), 20, 1, 19);
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV(""), 0, 0, 20);
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV(""), 0, 1, 20);
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV(""), 1, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcde"), 0, 0, 20);
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test40()
-{
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcde"), 0, 1, 19);
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcde"), 0, 2, 18);
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcde"), 0, 4, 16);
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcde"), 0, 5, 15);
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcde"), 0, 6, 15);
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcde"), 1, 0, 20);
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcde"), 1, 1, -1);
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcde"), 1, 2, -1);
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcde"), 1, 3, -1);
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcde"), 1, 4, -1);
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcde"), 1, 5, -1);
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcde"), 2, 0, 20);
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcde"), 2, 1, -2);
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcde"), 2, 2, -2);
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcde"), 2, 3, -2);
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcde"), 2, 4, -2);
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcde"), 4, 0, 20);
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcde"), 4, 1, -4);
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcde"), 4, 2, -4);
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcde"), 5, 0, 20);
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcde"), 5, 1, 20);
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcde"), 6, 0, 0);
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghij"), 0, 0, 20);
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghij"), 0, 1, 19);
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghij"), 0, 5, 15);
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghij"), 0, 9, 11);
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghij"), 0, 10, 10);
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghij"), 0, 11, 10);
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghij"), 1, 0, 20);
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghij"), 1, 1, -1);
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghij"), 1, 4, -1);
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghij"), 1, 8, -1);
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghij"), 1, 9, -1);
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghij"), 1, 10, -1);
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghij"), 5, 0, 20);
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghij"), 5, 1, -5);
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghij"), 5, 2, -5);
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghij"), 5, 4, -5);
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghij"), 5, 5, -5);
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghij"), 5, 6, -5);
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghij"), 9, 0, 20);
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghij"), 9, 1, -9);
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghij"), 9, 2, -9);
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghij"), 10, 0, 20);
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghij"), 10, 1, 20);
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghij"), 11, 0, 0);
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghijklmnopqrst"), 0, 0, 20);
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghijklmnopqrst"), 0, 1, 19);
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghijklmnopqrst"), 0, 10, 10);
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghijklmnopqrst"), 0, 19, 1);
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghijklmnopqrst"), 0, 20, 0);
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghijklmnopqrst"), 0, 21, 0);
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghijklmnopqrst"), 1, 0, 20);
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghijklmnopqrst"), 1, 1, -1);
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghijklmnopqrst"), 1, 9, -1);
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghijklmnopqrst"), 1, 18, -1);
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghijklmnopqrst"), 1, 19, -1);
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghijklmnopqrst"), 1, 20, -1);
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghijklmnopqrst"), 10, 0, 20);
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghijklmnopqrst"), 10, 1, -10);
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghijklmnopqrst"), 10, 5, -10);
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghijklmnopqrst"), 10, 9, -10);
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghijklmnopqrst"), 10, 10, -10);
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghijklmnopqrst"), 10, 11, -10);
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghijklmnopqrst"), 19, 0, 20);
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghijklmnopqrst"), 19, 1, -19);
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghijklmnopqrst"), 19, 2, -19);
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghijklmnopqrst"), 20, 0, 20);
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghijklmnopqrst"), 20, 1, 20);
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghijklmnopqrst"), 0, 21, SV(""), 0, 0, 20);
- test(S("abcdefghijklmnopqrst"), 0, 21, SV(""), 0, 1, 20);
- test(S("abcdefghijklmnopqrst"), 0, 21, SV(""), 1, 0, 0);
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcde"), 0, 0, 20);
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcde"), 0, 1, 19);
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcde"), 0, 2, 18);
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcde"), 0, 4, 16);
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcde"), 0, 5, 15);
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcde"), 0, 6, 15);
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcde"), 1, 0, 20);
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcde"), 1, 1, -1);
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcde"), 1, 2, -1);
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcde"), 1, 3, -1);
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcde"), 1, 4, -1);
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcde"), 1, 5, -1);
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcde"), 2, 0, 20);
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcde"), 2, 1, -2);
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcde"), 2, 2, -2);
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcde"), 2, 3, -2);
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcde"), 2, 4, -2);
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcde"), 4, 0, 20);
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcde"), 4, 1, -4);
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcde"), 4, 2, -4);
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcde"), 5, 0, 20);
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcde"), 5, 1, 20);
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcde"), 6, 0, 0);
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghij"), 0, 0, 20);
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghij"), 0, 1, 19);
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghij"), 0, 5, 15);
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghij"), 0, 9, 11);
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test40() {
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcde"), 0, 1, 19);
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcde"), 0, 2, 18);
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcde"), 0, 4, 16);
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcde"), 0, 5, 15);
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcde"), 0, 6, 15);
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcde"), 1, 0, 20);
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcde"), 1, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcde"), 1, 2, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcde"), 1, 3, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcde"), 1, 4, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcde"), 1, 5, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcde"), 2, 0, 20);
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcde"), 2, 1, -2);
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcde"), 2, 2, -2);
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcde"), 2, 3, -2);
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcde"), 2, 4, -2);
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcde"), 4, 0, 20);
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcde"), 4, 1, -4);
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcde"), 4, 2, -4);
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcde"), 5, 0, 20);
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcde"), 5, 1, 20);
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcde"), 6, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghij"), 0, 0, 20);
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghij"), 0, 1, 19);
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghij"), 0, 5, 15);
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghij"), 0, 9, 11);
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghij"), 0, 10, 10);
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghij"), 0, 11, 10);
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghij"), 1, 0, 20);
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghij"), 1, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghij"), 1, 4, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghij"), 1, 8, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghij"), 1, 9, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghij"), 1, 10, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghij"), 5, 0, 20);
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghij"), 5, 1, -5);
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghij"), 5, 2, -5);
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghij"), 5, 4, -5);
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghij"), 5, 5, -5);
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghij"), 5, 6, -5);
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghij"), 9, 0, 20);
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghij"), 9, 1, -9);
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghij"), 9, 2, -9);
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghij"), 10, 0, 20);
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghij"), 10, 1, 20);
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghijklmnopqrst"), 0, 0, 20);
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghijklmnopqrst"), 0, 1, 19);
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghijklmnopqrst"), 0, 10, 10);
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghijklmnopqrst"), 0, 19, 1);
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghijklmnopqrst"), 0, 20, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghijklmnopqrst"), 0, 21, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghijklmnopqrst"), 1, 0, 20);
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghijklmnopqrst"), 1, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghijklmnopqrst"), 1, 9, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghijklmnopqrst"), 1, 18, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghijklmnopqrst"), 1, 19, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghijklmnopqrst"), 1, 20, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghijklmnopqrst"), 10, 0, 20);
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghijklmnopqrst"), 10, 1, -10);
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghijklmnopqrst"), 10, 5, -10);
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghijklmnopqrst"), 10, 9, -10);
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghijklmnopqrst"), 10, 10, -10);
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghijklmnopqrst"), 10, 11, -10);
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghijklmnopqrst"), 19, 0, 20);
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghijklmnopqrst"), 19, 1, -19);
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghijklmnopqrst"), 19, 2, -19);
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghijklmnopqrst"), 20, 0, 20);
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghijklmnopqrst"), 20, 1, 20);
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV(""), 0, 0, 20);
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV(""), 0, 1, 20);
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV(""), 1, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcde"), 0, 0, 20);
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcde"), 0, 1, 19);
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcde"), 0, 2, 18);
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcde"), 0, 4, 16);
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcde"), 0, 5, 15);
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcde"), 0, 6, 15);
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcde"), 1, 0, 20);
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcde"), 1, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcde"), 1, 2, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcde"), 1, 3, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcde"), 1, 4, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcde"), 1, 5, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcde"), 2, 0, 20);
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcde"), 2, 1, -2);
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcde"), 2, 2, -2);
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcde"), 2, 3, -2);
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcde"), 2, 4, -2);
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcde"), 4, 0, 20);
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcde"), 4, 1, -4);
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcde"), 4, 2, -4);
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcde"), 5, 0, 20);
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcde"), 5, 1, 20);
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcde"), 6, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghij"), 0, 0, 20);
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghij"), 0, 1, 19);
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghij"), 0, 5, 15);
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghij"), 0, 9, 11);
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test41()
-{
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghij"), 0, 10, 10);
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghij"), 0, 11, 10);
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghij"), 1, 0, 20);
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghij"), 1, 1, -1);
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghij"), 1, 4, -1);
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghij"), 1, 8, -1);
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghij"), 1, 9, -1);
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghij"), 1, 10, -1);
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghij"), 5, 0, 20);
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghij"), 5, 1, -5);
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghij"), 5, 2, -5);
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghij"), 5, 4, -5);
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghij"), 5, 5, -5);
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghij"), 5, 6, -5);
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghij"), 9, 0, 20);
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghij"), 9, 1, -9);
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghij"), 9, 2, -9);
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghij"), 10, 0, 20);
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghij"), 10, 1, 20);
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghij"), 11, 0, 0);
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghijklmnopqrst"), 0, 0, 20);
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghijklmnopqrst"), 0, 1, 19);
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghijklmnopqrst"), 0, 10, 10);
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghijklmnopqrst"), 0, 19, 1);
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghijklmnopqrst"), 0, 20, 0);
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghijklmnopqrst"), 0, 21, 0);
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghijklmnopqrst"), 1, 0, 20);
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghijklmnopqrst"), 1, 1, -1);
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghijklmnopqrst"), 1, 9, -1);
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghijklmnopqrst"), 1, 18, -1);
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghijklmnopqrst"), 1, 19, -1);
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghijklmnopqrst"), 1, 20, -1);
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghijklmnopqrst"), 10, 0, 20);
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghijklmnopqrst"), 10, 1, -10);
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghijklmnopqrst"), 10, 5, -10);
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghijklmnopqrst"), 10, 9, -10);
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghijklmnopqrst"), 10, 10, -10);
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghijklmnopqrst"), 10, 11, -10);
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghijklmnopqrst"), 19, 0, 20);
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghijklmnopqrst"), 19, 1, -19);
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghijklmnopqrst"), 19, 2, -19);
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghijklmnopqrst"), 20, 0, 20);
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghijklmnopqrst"), 20, 1, 20);
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghijklmnopqrst"), 1, 0, SV(""), 0, 0, 0);
- test(S("abcdefghijklmnopqrst"), 1, 0, SV(""), 0, 1, 0);
- test(S("abcdefghijklmnopqrst"), 1, 0, SV(""), 1, 0, 0);
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcde"), 0, 0, 0);
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcde"), 0, 1, -1);
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcde"), 0, 2, -2);
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcde"), 0, 4, -4);
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcde"), 0, 5, -5);
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcde"), 0, 6, -5);
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcde"), 1, 0, 0);
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcde"), 1, 1, -1);
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcde"), 1, 2, -2);
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcde"), 1, 3, -3);
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcde"), 1, 4, -4);
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcde"), 1, 5, -4);
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcde"), 2, 0, 0);
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcde"), 2, 1, -1);
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcde"), 2, 2, -2);
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcde"), 2, 3, -3);
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcde"), 2, 4, -3);
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcde"), 4, 0, 0);
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcde"), 4, 1, -1);
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcde"), 4, 2, -1);
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcde"), 5, 0, 0);
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcde"), 5, 1, 0);
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcde"), 6, 0, 0);
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghij"), 0, 0, 0);
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghij"), 0, 1, -1);
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghij"), 0, 5, -5);
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghij"), 0, 9, -9);
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghij"), 0, 10, -10);
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghij"), 0, 11, -10);
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghij"), 1, 0, 0);
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghij"), 1, 1, -1);
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghij"), 1, 4, -4);
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghij"), 1, 8, -8);
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghij"), 1, 9, -9);
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghij"), 1, 10, -9);
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghij"), 5, 0, 0);
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghij"), 5, 1, -1);
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghij"), 5, 2, -2);
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghij"), 5, 4, -4);
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghij"), 5, 5, -5);
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghij"), 5, 6, -5);
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghij"), 9, 0, 0);
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghij"), 9, 1, -1);
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghij"), 9, 2, -1);
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghij"), 10, 0, 0);
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghij"), 10, 1, 0);
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghij"), 11, 0, 0);
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghijklmnopqrst"), 0, 0, 0);
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghijklmnopqrst"), 0, 1, -1);
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghijklmnopqrst"), 0, 10, -10);
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghijklmnopqrst"), 0, 19, -19);
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghijklmnopqrst"), 0, 20, -20);
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghijklmnopqrst"), 0, 21, -20);
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test41() {
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghij"), 0, 10, 10);
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghij"), 0, 11, 10);
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghij"), 1, 0, 20);
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghij"), 1, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghij"), 1, 4, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghij"), 1, 8, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghij"), 1, 9, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghij"), 1, 10, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghij"), 5, 0, 20);
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghij"), 5, 1, -5);
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghij"), 5, 2, -5);
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghij"), 5, 4, -5);
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghij"), 5, 5, -5);
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghij"), 5, 6, -5);
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghij"), 9, 0, 20);
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghij"), 9, 1, -9);
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghij"), 9, 2, -9);
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghij"), 10, 0, 20);
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghij"), 10, 1, 20);
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghijklmnopqrst"), 0, 0, 20);
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghijklmnopqrst"), 0, 1, 19);
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghijklmnopqrst"), 0, 10, 10);
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghijklmnopqrst"), 0, 19, 1);
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghijklmnopqrst"), 0, 20, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghijklmnopqrst"), 0, 21, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghijklmnopqrst"), 1, 0, 20);
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghijklmnopqrst"), 1, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghijklmnopqrst"), 1, 9, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghijklmnopqrst"), 1, 18, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghijklmnopqrst"), 1, 19, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghijklmnopqrst"), 1, 20, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghijklmnopqrst"), 10, 0, 20);
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghijklmnopqrst"), 10, 1, -10);
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghijklmnopqrst"), 10, 5, -10);
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghijklmnopqrst"), 10, 9, -10);
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghijklmnopqrst"), 10, 10, -10);
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghijklmnopqrst"), 10, 11, -10);
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghijklmnopqrst"), 19, 0, 20);
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghijklmnopqrst"), 19, 1, -19);
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghijklmnopqrst"), 19, 2, -19);
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghijklmnopqrst"), 20, 0, 20);
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghijklmnopqrst"), 20, 1, 20);
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV(""), 0, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV(""), 0, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV(""), 1, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcde"), 0, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcde"), 0, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcde"), 0, 2, -2);
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcde"), 0, 4, -4);
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcde"), 0, 5, -5);
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcde"), 0, 6, -5);
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcde"), 1, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcde"), 1, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcde"), 1, 2, -2);
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcde"), 1, 3, -3);
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcde"), 1, 4, -4);
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcde"), 1, 5, -4);
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcde"), 2, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcde"), 2, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcde"), 2, 2, -2);
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcde"), 2, 3, -3);
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcde"), 2, 4, -3);
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcde"), 4, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcde"), 4, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcde"), 4, 2, -1);
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcde"), 5, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcde"), 5, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcde"), 6, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghij"), 0, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghij"), 0, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghij"), 0, 5, -5);
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghij"), 0, 9, -9);
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghij"), 0, 10, -10);
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghij"), 0, 11, -10);
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghij"), 1, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghij"), 1, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghij"), 1, 4, -4);
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghij"), 1, 8, -8);
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghij"), 1, 9, -9);
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghij"), 1, 10, -9);
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghij"), 5, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghij"), 5, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghij"), 5, 2, -2);
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghij"), 5, 4, -4);
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghij"), 5, 5, -5);
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghij"), 5, 6, -5);
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghij"), 9, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghij"), 9, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghij"), 9, 2, -1);
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghij"), 10, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghij"), 10, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghijklmnopqrst"), 0, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghijklmnopqrst"), 0, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghijklmnopqrst"), 0, 10, -10);
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghijklmnopqrst"), 0, 19, -19);
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghijklmnopqrst"), 0, 20, -20);
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghijklmnopqrst"), 0, 21, -20);
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test42()
-{
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghijklmnopqrst"), 1, 0, 0);
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghijklmnopqrst"), 1, 1, -1);
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghijklmnopqrst"), 1, 9, -9);
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghijklmnopqrst"), 1, 18, -18);
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghijklmnopqrst"), 1, 19, -19);
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghijklmnopqrst"), 1, 20, -19);
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghijklmnopqrst"), 10, 0, 0);
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghijklmnopqrst"), 10, 1, -1);
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghijklmnopqrst"), 10, 5, -5);
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghijklmnopqrst"), 10, 9, -9);
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghijklmnopqrst"), 10, 10, -10);
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghijklmnopqrst"), 10, 11, -10);
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghijklmnopqrst"), 19, 0, 0);
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghijklmnopqrst"), 19, 1, -1);
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghijklmnopqrst"), 19, 2, -1);
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghijklmnopqrst"), 20, 0, 0);
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghijklmnopqrst"), 20, 1, 0);
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghijklmnopqrst"), 1, 1, SV(""), 0, 0, 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, SV(""), 0, 1, 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, SV(""), 1, 0, 0);
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcde"), 0, 0, 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcde"), 0, 1, 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcde"), 0, 2, 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcde"), 0, 4, 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcde"), 0, 5, 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcde"), 0, 6, 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcde"), 1, 0, 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcde"), 1, 1, 0);
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcde"), 1, 2, -1);
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcde"), 1, 3, -2);
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcde"), 1, 4, -3);
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcde"), 1, 5, -3);
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcde"), 2, 0, 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcde"), 2, 1, -1);
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcde"), 2, 2, -1);
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcde"), 2, 3, -1);
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcde"), 2, 4, -1);
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcde"), 4, 0, 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcde"), 4, 1, -3);
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcde"), 4, 2, -3);
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcde"), 5, 0, 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcde"), 5, 1, 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcde"), 6, 0, 0);
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghij"), 0, 0, 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghij"), 0, 1, 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghij"), 0, 5, 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghij"), 0, 9, 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghij"), 0, 10, 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghij"), 0, 11, 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghij"), 1, 0, 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghij"), 1, 1, 0);
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghij"), 1, 4, -3);
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghij"), 1, 8, -7);
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghij"), 1, 9, -8);
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghij"), 1, 10, -8);
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghij"), 5, 0, 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghij"), 5, 1, -4);
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghij"), 5, 2, -4);
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghij"), 5, 4, -4);
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghij"), 5, 5, -4);
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghij"), 5, 6, -4);
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghij"), 9, 0, 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghij"), 9, 1, -8);
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghij"), 9, 2, -8);
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghij"), 10, 0, 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghij"), 10, 1, 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghij"), 11, 0, 0);
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghijklmnopqrst"), 0, 0, 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghijklmnopqrst"), 0, 1, 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghijklmnopqrst"), 0, 10, 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghijklmnopqrst"), 0, 19, 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghijklmnopqrst"), 0, 20, 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghijklmnopqrst"), 0, 21, 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghijklmnopqrst"), 1, 0, 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghijklmnopqrst"), 1, 1, 0);
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghijklmnopqrst"), 1, 9, -8);
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghijklmnopqrst"), 1, 18, -17);
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghijklmnopqrst"), 1, 19, -18);
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghijklmnopqrst"), 1, 20, -18);
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghijklmnopqrst"), 10, 0, 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghijklmnopqrst"), 10, 1, -9);
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghijklmnopqrst"), 10, 5, -9);
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghijklmnopqrst"), 10, 9, -9);
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghijklmnopqrst"), 10, 10, -9);
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghijklmnopqrst"), 10, 11, -9);
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghijklmnopqrst"), 19, 0, 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghijklmnopqrst"), 19, 1, -18);
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghijklmnopqrst"), 19, 2, -18);
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghijklmnopqrst"), 20, 0, 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghijklmnopqrst"), 20, 1, 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghijklmnopqrst"), 1, 9, SV(""), 0, 0, 9);
- test(S("abcdefghijklmnopqrst"), 1, 9, SV(""), 0, 1, 9);
- test(S("abcdefghijklmnopqrst"), 1, 9, SV(""), 1, 0, 0);
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcde"), 0, 0, 9);
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcde"), 0, 1, 1);
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcde"), 0, 2, 1);
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcde"), 0, 4, 1);
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcde"), 0, 5, 1);
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test42() {
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghijklmnopqrst"), 1, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghijklmnopqrst"), 1, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghijklmnopqrst"), 1, 9, -9);
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghijklmnopqrst"), 1, 18, -18);
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghijklmnopqrst"), 1, 19, -19);
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghijklmnopqrst"), 1, 20, -19);
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghijklmnopqrst"), 10, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghijklmnopqrst"), 10, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghijklmnopqrst"), 10, 5, -5);
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghijklmnopqrst"), 10, 9, -9);
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghijklmnopqrst"), 10, 10, -10);
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghijklmnopqrst"), 10, 11, -10);
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghijklmnopqrst"), 19, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghijklmnopqrst"), 19, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghijklmnopqrst"), 19, 2, -1);
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghijklmnopqrst"), 20, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghijklmnopqrst"), 20, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV(""), 0, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV(""), 0, 1, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV(""), 1, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcde"), 0, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcde"), 0, 1, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcde"), 0, 2, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcde"), 0, 4, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcde"), 0, 5, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcde"), 0, 6, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcde"), 1, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcde"), 1, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcde"), 1, 2, -1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcde"), 1, 3, -2);
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcde"), 1, 4, -3);
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcde"), 1, 5, -3);
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcde"), 2, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcde"), 2, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcde"), 2, 2, -1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcde"), 2, 3, -1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcde"), 2, 4, -1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcde"), 4, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcde"), 4, 1, -3);
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcde"), 4, 2, -3);
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcde"), 5, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcde"), 5, 1, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcde"), 6, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghij"), 0, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghij"), 0, 1, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghij"), 0, 5, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghij"), 0, 9, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghij"), 0, 10, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghij"), 0, 11, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghij"), 1, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghij"), 1, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghij"), 1, 4, -3);
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghij"), 1, 8, -7);
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghij"), 1, 9, -8);
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghij"), 1, 10, -8);
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghij"), 5, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghij"), 5, 1, -4);
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghij"), 5, 2, -4);
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghij"), 5, 4, -4);
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghij"), 5, 5, -4);
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghij"), 5, 6, -4);
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghij"), 9, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghij"), 9, 1, -8);
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghij"), 9, 2, -8);
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghij"), 10, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghij"), 10, 1, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghijklmnopqrst"), 0, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghijklmnopqrst"), 0, 1, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghijklmnopqrst"), 0, 10, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghijklmnopqrst"), 0, 19, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghijklmnopqrst"), 0, 20, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghijklmnopqrst"), 0, 21, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghijklmnopqrst"), 1, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghijklmnopqrst"), 1, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghijklmnopqrst"), 1, 9, -8);
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghijklmnopqrst"), 1, 18, -17);
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghijklmnopqrst"), 1, 19, -18);
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghijklmnopqrst"), 1, 20, -18);
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghijklmnopqrst"), 10, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghijklmnopqrst"), 10, 1, -9);
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghijklmnopqrst"), 10, 5, -9);
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghijklmnopqrst"), 10, 9, -9);
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghijklmnopqrst"), 10, 10, -9);
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghijklmnopqrst"), 10, 11, -9);
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghijklmnopqrst"), 19, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghijklmnopqrst"), 19, 1, -18);
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghijklmnopqrst"), 19, 2, -18);
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghijklmnopqrst"), 20, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghijklmnopqrst"), 20, 1, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV(""), 0, 0, 9);
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV(""), 0, 1, 9);
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV(""), 1, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcde"), 0, 0, 9);
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcde"), 0, 1, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcde"), 0, 2, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcde"), 0, 4, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcde"), 0, 5, 1);
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test43()
-{
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcde"), 0, 6, 1);
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcde"), 1, 0, 9);
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcde"), 1, 1, 8);
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcde"), 1, 2, 7);
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcde"), 1, 3, 6);
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcde"), 1, 4, 5);
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcde"), 1, 5, 5);
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcde"), 2, 0, 9);
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcde"), 2, 1, -1);
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcde"), 2, 2, -1);
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcde"), 2, 3, -1);
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcde"), 2, 4, -1);
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcde"), 4, 0, 9);
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcde"), 4, 1, -3);
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcde"), 4, 2, -3);
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcde"), 5, 0, 9);
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcde"), 5, 1, 9);
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcde"), 6, 0, 0);
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghij"), 0, 0, 9);
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghij"), 0, 1, 1);
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghij"), 0, 5, 1);
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghij"), 0, 9, 1);
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghij"), 0, 10, 1);
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghij"), 0, 11, 1);
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghij"), 1, 0, 9);
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghij"), 1, 1, 8);
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghij"), 1, 4, 5);
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghij"), 1, 8, 1);
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghij"), 1, 9, 0);
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghij"), 1, 10, 0);
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghij"), 5, 0, 9);
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghij"), 5, 1, -4);
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghij"), 5, 2, -4);
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghij"), 5, 4, -4);
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghij"), 5, 5, -4);
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghij"), 5, 6, -4);
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghij"), 9, 0, 9);
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghij"), 9, 1, -8);
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghij"), 9, 2, -8);
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghij"), 10, 0, 9);
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghij"), 10, 1, 9);
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghij"), 11, 0, 0);
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghijklmnopqrst"), 0, 0, 9);
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghijklmnopqrst"), 0, 1, 1);
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghijklmnopqrst"), 0, 10, 1);
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghijklmnopqrst"), 0, 19, 1);
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghijklmnopqrst"), 0, 20, 1);
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghijklmnopqrst"), 0, 21, 1);
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghijklmnopqrst"), 1, 0, 9);
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghijklmnopqrst"), 1, 1, 8);
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghijklmnopqrst"), 1, 9, 0);
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghijklmnopqrst"), 1, 18, -9);
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghijklmnopqrst"), 1, 19, -10);
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghijklmnopqrst"), 1, 20, -10);
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghijklmnopqrst"), 10, 0, 9);
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghijklmnopqrst"), 10, 1, -9);
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghijklmnopqrst"), 10, 5, -9);
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghijklmnopqrst"), 10, 9, -9);
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghijklmnopqrst"), 10, 10, -9);
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghijklmnopqrst"), 10, 11, -9);
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghijklmnopqrst"), 19, 0, 9);
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghijklmnopqrst"), 19, 1, -18);
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghijklmnopqrst"), 19, 2, -18);
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghijklmnopqrst"), 20, 0, 9);
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghijklmnopqrst"), 20, 1, 9);
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghijklmnopqrst"), 1, 18, SV(""), 0, 0, 18);
- test(S("abcdefghijklmnopqrst"), 1, 18, SV(""), 0, 1, 18);
- test(S("abcdefghijklmnopqrst"), 1, 18, SV(""), 1, 0, 0);
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcde"), 0, 0, 18);
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcde"), 0, 1, 1);
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcde"), 0, 2, 1);
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcde"), 0, 4, 1);
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcde"), 0, 5, 1);
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcde"), 0, 6, 1);
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcde"), 1, 0, 18);
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcde"), 1, 1, 17);
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcde"), 1, 2, 16);
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcde"), 1, 3, 15);
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcde"), 1, 4, 14);
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcde"), 1, 5, 14);
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcde"), 2, 0, 18);
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcde"), 2, 1, -1);
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcde"), 2, 2, -1);
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcde"), 2, 3, -1);
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcde"), 2, 4, -1);
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcde"), 4, 0, 18);
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcde"), 4, 1, -3);
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcde"), 4, 2, -3);
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcde"), 5, 0, 18);
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcde"), 5, 1, 18);
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcde"), 6, 0, 0);
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghij"), 0, 0, 18);
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghij"), 0, 1, 1);
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghij"), 0, 5, 1);
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghij"), 0, 9, 1);
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghij"), 0, 10, 1);
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghij"), 0, 11, 1);
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghij"), 1, 0, 18);
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghij"), 1, 1, 17);
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test43() {
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcde"), 0, 6, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcde"), 1, 0, 9);
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcde"), 1, 1, 8);
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcde"), 1, 2, 7);
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcde"), 1, 3, 6);
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcde"), 1, 4, 5);
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcde"), 1, 5, 5);
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcde"), 2, 0, 9);
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcde"), 2, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcde"), 2, 2, -1);
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcde"), 2, 3, -1);
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcde"), 2, 4, -1);
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcde"), 4, 0, 9);
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcde"), 4, 1, -3);
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcde"), 4, 2, -3);
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcde"), 5, 0, 9);
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcde"), 5, 1, 9);
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcde"), 6, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghij"), 0, 0, 9);
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghij"), 0, 1, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghij"), 0, 5, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghij"), 0, 9, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghij"), 0, 10, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghij"), 0, 11, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghij"), 1, 0, 9);
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghij"), 1, 1, 8);
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghij"), 1, 4, 5);
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghij"), 1, 8, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghij"), 1, 9, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghij"), 1, 10, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghij"), 5, 0, 9);
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghij"), 5, 1, -4);
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghij"), 5, 2, -4);
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghij"), 5, 4, -4);
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghij"), 5, 5, -4);
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghij"), 5, 6, -4);
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghij"), 9, 0, 9);
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghij"), 9, 1, -8);
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghij"), 9, 2, -8);
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghij"), 10, 0, 9);
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghij"), 10, 1, 9);
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghijklmnopqrst"), 0, 0, 9);
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghijklmnopqrst"), 0, 1, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghijklmnopqrst"), 0, 10, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghijklmnopqrst"), 0, 19, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghijklmnopqrst"), 0, 20, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghijklmnopqrst"), 0, 21, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghijklmnopqrst"), 1, 0, 9);
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghijklmnopqrst"), 1, 1, 8);
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghijklmnopqrst"), 1, 9, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghijklmnopqrst"), 1, 18, -9);
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghijklmnopqrst"), 1, 19, -10);
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghijklmnopqrst"), 1, 20, -10);
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghijklmnopqrst"), 10, 0, 9);
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghijklmnopqrst"), 10, 1, -9);
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghijklmnopqrst"), 10, 5, -9);
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghijklmnopqrst"), 10, 9, -9);
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghijklmnopqrst"), 10, 10, -9);
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghijklmnopqrst"), 10, 11, -9);
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghijklmnopqrst"), 19, 0, 9);
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghijklmnopqrst"), 19, 1, -18);
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghijklmnopqrst"), 19, 2, -18);
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghijklmnopqrst"), 20, 0, 9);
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghijklmnopqrst"), 20, 1, 9);
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV(""), 0, 0, 18);
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV(""), 0, 1, 18);
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV(""), 1, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcde"), 0, 0, 18);
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcde"), 0, 1, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcde"), 0, 2, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcde"), 0, 4, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcde"), 0, 5, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcde"), 0, 6, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcde"), 1, 0, 18);
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcde"), 1, 1, 17);
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcde"), 1, 2, 16);
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcde"), 1, 3, 15);
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcde"), 1, 4, 14);
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcde"), 1, 5, 14);
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcde"), 2, 0, 18);
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcde"), 2, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcde"), 2, 2, -1);
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcde"), 2, 3, -1);
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcde"), 2, 4, -1);
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcde"), 4, 0, 18);
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcde"), 4, 1, -3);
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcde"), 4, 2, -3);
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcde"), 5, 0, 18);
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcde"), 5, 1, 18);
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcde"), 6, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghij"), 0, 0, 18);
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghij"), 0, 1, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghij"), 0, 5, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghij"), 0, 9, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghij"), 0, 10, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghij"), 0, 11, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghij"), 1, 0, 18);
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghij"), 1, 1, 17);
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test44()
-{
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghij"), 1, 4, 14);
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghij"), 1, 8, 10);
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghij"), 1, 9, 9);
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghij"), 1, 10, 9);
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghij"), 5, 0, 18);
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghij"), 5, 1, -4);
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghij"), 5, 2, -4);
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghij"), 5, 4, -4);
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghij"), 5, 5, -4);
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghij"), 5, 6, -4);
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghij"), 9, 0, 18);
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghij"), 9, 1, -8);
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghij"), 9, 2, -8);
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghij"), 10, 0, 18);
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghij"), 10, 1, 18);
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghij"), 11, 0, 0);
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghijklmnopqrst"), 0, 0, 18);
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghijklmnopqrst"), 0, 1, 1);
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghijklmnopqrst"), 0, 10, 1);
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghijklmnopqrst"), 0, 19, 1);
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghijklmnopqrst"), 0, 20, 1);
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghijklmnopqrst"), 0, 21, 1);
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghijklmnopqrst"), 1, 0, 18);
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghijklmnopqrst"), 1, 1, 17);
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghijklmnopqrst"), 1, 9, 9);
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghijklmnopqrst"), 1, 18, 0);
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghijklmnopqrst"), 1, 19, -1);
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghijklmnopqrst"), 1, 20, -1);
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghijklmnopqrst"), 10, 0, 18);
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghijklmnopqrst"), 10, 1, -9);
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghijklmnopqrst"), 10, 5, -9);
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghijklmnopqrst"), 10, 9, -9);
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghijklmnopqrst"), 10, 10, -9);
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghijklmnopqrst"), 10, 11, -9);
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghijklmnopqrst"), 19, 0, 18);
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghijklmnopqrst"), 19, 1, -18);
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghijklmnopqrst"), 19, 2, -18);
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghijklmnopqrst"), 20, 0, 18);
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghijklmnopqrst"), 20, 1, 18);
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghijklmnopqrst"), 1, 19, SV(""), 0, 0, 19);
- test(S("abcdefghijklmnopqrst"), 1, 19, SV(""), 0, 1, 19);
- test(S("abcdefghijklmnopqrst"), 1, 19, SV(""), 1, 0, 0);
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcde"), 0, 0, 19);
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcde"), 0, 1, 1);
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcde"), 0, 2, 1);
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcde"), 0, 4, 1);
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcde"), 0, 5, 1);
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcde"), 0, 6, 1);
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcde"), 1, 0, 19);
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcde"), 1, 1, 18);
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcde"), 1, 2, 17);
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcde"), 1, 3, 16);
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcde"), 1, 4, 15);
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcde"), 1, 5, 15);
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcde"), 2, 0, 19);
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcde"), 2, 1, -1);
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcde"), 2, 2, -1);
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcde"), 2, 3, -1);
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcde"), 2, 4, -1);
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcde"), 4, 0, 19);
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcde"), 4, 1, -3);
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcde"), 4, 2, -3);
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcde"), 5, 0, 19);
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcde"), 5, 1, 19);
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcde"), 6, 0, 0);
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghij"), 0, 0, 19);
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghij"), 0, 1, 1);
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghij"), 0, 5, 1);
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghij"), 0, 9, 1);
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghij"), 0, 10, 1);
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghij"), 0, 11, 1);
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghij"), 1, 0, 19);
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghij"), 1, 1, 18);
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghij"), 1, 4, 15);
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghij"), 1, 8, 11);
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghij"), 1, 9, 10);
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghij"), 1, 10, 10);
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghij"), 5, 0, 19);
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghij"), 5, 1, -4);
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghij"), 5, 2, -4);
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghij"), 5, 4, -4);
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghij"), 5, 5, -4);
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghij"), 5, 6, -4);
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghij"), 9, 0, 19);
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghij"), 9, 1, -8);
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghij"), 9, 2, -8);
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghij"), 10, 0, 19);
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghij"), 10, 1, 19);
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghij"), 11, 0, 0);
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghijklmnopqrst"), 0, 0, 19);
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghijklmnopqrst"), 0, 1, 1);
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghijklmnopqrst"), 0, 10, 1);
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghijklmnopqrst"), 0, 19, 1);
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghijklmnopqrst"), 0, 20, 1);
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghijklmnopqrst"), 0, 21, 1);
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghijklmnopqrst"), 1, 0, 19);
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghijklmnopqrst"), 1, 1, 18);
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghijklmnopqrst"), 1, 9, 10);
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghijklmnopqrst"), 1, 18, 1);
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test44() {
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghij"), 1, 4, 14);
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghij"), 1, 8, 10);
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghij"), 1, 9, 9);
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghij"), 1, 10, 9);
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghij"), 5, 0, 18);
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghij"), 5, 1, -4);
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghij"), 5, 2, -4);
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghij"), 5, 4, -4);
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghij"), 5, 5, -4);
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghij"), 5, 6, -4);
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghij"), 9, 0, 18);
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghij"), 9, 1, -8);
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghij"), 9, 2, -8);
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghij"), 10, 0, 18);
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghij"), 10, 1, 18);
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghijklmnopqrst"), 0, 0, 18);
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghijklmnopqrst"), 0, 1, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghijklmnopqrst"), 0, 10, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghijklmnopqrst"), 0, 19, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghijklmnopqrst"), 0, 20, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghijklmnopqrst"), 0, 21, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghijklmnopqrst"), 1, 0, 18);
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghijklmnopqrst"), 1, 1, 17);
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghijklmnopqrst"), 1, 9, 9);
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghijklmnopqrst"), 1, 18, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghijklmnopqrst"), 1, 19, -1);
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghijklmnopqrst"), 1, 20, -1);
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghijklmnopqrst"), 10, 0, 18);
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghijklmnopqrst"), 10, 1, -9);
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghijklmnopqrst"), 10, 5, -9);
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghijklmnopqrst"), 10, 9, -9);
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghijklmnopqrst"), 10, 10, -9);
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghijklmnopqrst"), 10, 11, -9);
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghijklmnopqrst"), 19, 0, 18);
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghijklmnopqrst"), 19, 1, -18);
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghijklmnopqrst"), 19, 2, -18);
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghijklmnopqrst"), 20, 0, 18);
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghijklmnopqrst"), 20, 1, 18);
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV(""), 0, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV(""), 0, 1, 19);
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV(""), 1, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcde"), 0, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcde"), 0, 1, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcde"), 0, 2, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcde"), 0, 4, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcde"), 0, 5, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcde"), 0, 6, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcde"), 1, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcde"), 1, 1, 18);
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcde"), 1, 2, 17);
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcde"), 1, 3, 16);
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcde"), 1, 4, 15);
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcde"), 1, 5, 15);
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcde"), 2, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcde"), 2, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcde"), 2, 2, -1);
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcde"), 2, 3, -1);
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcde"), 2, 4, -1);
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcde"), 4, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcde"), 4, 1, -3);
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcde"), 4, 2, -3);
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcde"), 5, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcde"), 5, 1, 19);
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcde"), 6, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghij"), 0, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghij"), 0, 1, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghij"), 0, 5, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghij"), 0, 9, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghij"), 0, 10, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghij"), 0, 11, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghij"), 1, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghij"), 1, 1, 18);
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghij"), 1, 4, 15);
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghij"), 1, 8, 11);
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghij"), 1, 9, 10);
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghij"), 1, 10, 10);
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghij"), 5, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghij"), 5, 1, -4);
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghij"), 5, 2, -4);
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghij"), 5, 4, -4);
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghij"), 5, 5, -4);
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghij"), 5, 6, -4);
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghij"), 9, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghij"), 9, 1, -8);
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghij"), 9, 2, -8);
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghij"), 10, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghij"), 10, 1, 19);
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghijklmnopqrst"), 0, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghijklmnopqrst"), 0, 1, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghijklmnopqrst"), 0, 10, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghijklmnopqrst"), 0, 19, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghijklmnopqrst"), 0, 20, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghijklmnopqrst"), 0, 21, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghijklmnopqrst"), 1, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghijklmnopqrst"), 1, 1, 18);
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghijklmnopqrst"), 1, 9, 10);
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghijklmnopqrst"), 1, 18, 1);
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test45()
-{
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghijklmnopqrst"), 1, 19, 0);
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghijklmnopqrst"), 1, 20, 0);
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghijklmnopqrst"), 10, 0, 19);
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghijklmnopqrst"), 10, 1, -9);
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghijklmnopqrst"), 10, 5, -9);
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghijklmnopqrst"), 10, 9, -9);
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghijklmnopqrst"), 10, 10, -9);
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghijklmnopqrst"), 10, 11, -9);
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghijklmnopqrst"), 19, 0, 19);
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghijklmnopqrst"), 19, 1, -18);
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghijklmnopqrst"), 19, 2, -18);
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghijklmnopqrst"), 20, 0, 19);
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghijklmnopqrst"), 20, 1, 19);
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghijklmnopqrst"), 1, 20, SV(""), 0, 0, 19);
- test(S("abcdefghijklmnopqrst"), 1, 20, SV(""), 0, 1, 19);
- test(S("abcdefghijklmnopqrst"), 1, 20, SV(""), 1, 0, 0);
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcde"), 0, 0, 19);
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcde"), 0, 1, 1);
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcde"), 0, 2, 1);
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcde"), 0, 4, 1);
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcde"), 0, 5, 1);
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcde"), 0, 6, 1);
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcde"), 1, 0, 19);
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcde"), 1, 1, 18);
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcde"), 1, 2, 17);
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcde"), 1, 3, 16);
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcde"), 1, 4, 15);
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcde"), 1, 5, 15);
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcde"), 2, 0, 19);
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcde"), 2, 1, -1);
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcde"), 2, 2, -1);
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcde"), 2, 3, -1);
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcde"), 2, 4, -1);
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcde"), 4, 0, 19);
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcde"), 4, 1, -3);
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcde"), 4, 2, -3);
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcde"), 5, 0, 19);
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcde"), 5, 1, 19);
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcde"), 6, 0, 0);
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghij"), 0, 0, 19);
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghij"), 0, 1, 1);
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghij"), 0, 5, 1);
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghij"), 0, 9, 1);
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghij"), 0, 10, 1);
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghij"), 0, 11, 1);
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghij"), 1, 0, 19);
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghij"), 1, 1, 18);
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghij"), 1, 4, 15);
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghij"), 1, 8, 11);
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghij"), 1, 9, 10);
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghij"), 1, 10, 10);
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghij"), 5, 0, 19);
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghij"), 5, 1, -4);
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghij"), 5, 2, -4);
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghij"), 5, 4, -4);
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghij"), 5, 5, -4);
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghij"), 5, 6, -4);
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghij"), 9, 0, 19);
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghij"), 9, 1, -8);
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghij"), 9, 2, -8);
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghij"), 10, 0, 19);
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghij"), 10, 1, 19);
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghij"), 11, 0, 0);
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghijklmnopqrst"), 0, 0, 19);
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghijklmnopqrst"), 0, 1, 1);
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghijklmnopqrst"), 0, 10, 1);
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghijklmnopqrst"), 0, 19, 1);
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghijklmnopqrst"), 0, 20, 1);
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghijklmnopqrst"), 0, 21, 1);
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghijklmnopqrst"), 1, 0, 19);
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghijklmnopqrst"), 1, 1, 18);
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghijklmnopqrst"), 1, 9, 10);
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghijklmnopqrst"), 1, 18, 1);
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghijklmnopqrst"), 1, 19, 0);
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghijklmnopqrst"), 1, 20, 0);
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghijklmnopqrst"), 10, 0, 19);
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghijklmnopqrst"), 10, 1, -9);
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghijklmnopqrst"), 10, 5, -9);
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghijklmnopqrst"), 10, 9, -9);
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghijklmnopqrst"), 10, 10, -9);
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghijklmnopqrst"), 10, 11, -9);
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghijklmnopqrst"), 19, 0, 19);
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghijklmnopqrst"), 19, 1, -18);
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghijklmnopqrst"), 19, 2, -18);
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghijklmnopqrst"), 20, 0, 19);
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghijklmnopqrst"), 20, 1, 19);
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghijklmnopqrst"), 10, 0, SV(""), 0, 0, 0);
- test(S("abcdefghijklmnopqrst"), 10, 0, SV(""), 0, 1, 0);
- test(S("abcdefghijklmnopqrst"), 10, 0, SV(""), 1, 0, 0);
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcde"), 0, 0, 0);
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcde"), 0, 1, -1);
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcde"), 0, 2, -2);
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcde"), 0, 4, -4);
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcde"), 0, 5, -5);
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcde"), 0, 6, -5);
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcde"), 1, 0, 0);
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcde"), 1, 1, -1);
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcde"), 1, 2, -2);
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test45() {
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghijklmnopqrst"), 1, 19, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghijklmnopqrst"), 1, 20, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghijklmnopqrst"), 10, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghijklmnopqrst"), 10, 1, -9);
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghijklmnopqrst"), 10, 5, -9);
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghijklmnopqrst"), 10, 9, -9);
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghijklmnopqrst"), 10, 10, -9);
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghijklmnopqrst"), 10, 11, -9);
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghijklmnopqrst"), 19, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghijklmnopqrst"), 19, 1, -18);
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghijklmnopqrst"), 19, 2, -18);
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghijklmnopqrst"), 20, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghijklmnopqrst"), 20, 1, 19);
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV(""), 0, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV(""), 0, 1, 19);
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV(""), 1, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcde"), 0, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcde"), 0, 1, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcde"), 0, 2, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcde"), 0, 4, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcde"), 0, 5, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcde"), 0, 6, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcde"), 1, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcde"), 1, 1, 18);
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcde"), 1, 2, 17);
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcde"), 1, 3, 16);
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcde"), 1, 4, 15);
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcde"), 1, 5, 15);
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcde"), 2, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcde"), 2, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcde"), 2, 2, -1);
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcde"), 2, 3, -1);
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcde"), 2, 4, -1);
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcde"), 4, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcde"), 4, 1, -3);
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcde"), 4, 2, -3);
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcde"), 5, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcde"), 5, 1, 19);
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcde"), 6, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghij"), 0, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghij"), 0, 1, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghij"), 0, 5, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghij"), 0, 9, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghij"), 0, 10, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghij"), 0, 11, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghij"), 1, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghij"), 1, 1, 18);
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghij"), 1, 4, 15);
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghij"), 1, 8, 11);
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghij"), 1, 9, 10);
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghij"), 1, 10, 10);
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghij"), 5, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghij"), 5, 1, -4);
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghij"), 5, 2, -4);
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghij"), 5, 4, -4);
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghij"), 5, 5, -4);
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghij"), 5, 6, -4);
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghij"), 9, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghij"), 9, 1, -8);
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghij"), 9, 2, -8);
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghij"), 10, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghij"), 10, 1, 19);
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghijklmnopqrst"), 0, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghijklmnopqrst"), 0, 1, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghijklmnopqrst"), 0, 10, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghijklmnopqrst"), 0, 19, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghijklmnopqrst"), 0, 20, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghijklmnopqrst"), 0, 21, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghijklmnopqrst"), 1, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghijklmnopqrst"), 1, 1, 18);
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghijklmnopqrst"), 1, 9, 10);
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghijklmnopqrst"), 1, 18, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghijklmnopqrst"), 1, 19, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghijklmnopqrst"), 1, 20, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghijklmnopqrst"), 10, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghijklmnopqrst"), 10, 1, -9);
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghijklmnopqrst"), 10, 5, -9);
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghijklmnopqrst"), 10, 9, -9);
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghijklmnopqrst"), 10, 10, -9);
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghijklmnopqrst"), 10, 11, -9);
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghijklmnopqrst"), 19, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghijklmnopqrst"), 19, 1, -18);
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghijklmnopqrst"), 19, 2, -18);
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghijklmnopqrst"), 20, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghijklmnopqrst"), 20, 1, 19);
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV(""), 0, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV(""), 0, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV(""), 1, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcde"), 0, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcde"), 0, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcde"), 0, 2, -2);
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcde"), 0, 4, -4);
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcde"), 0, 5, -5);
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcde"), 0, 6, -5);
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcde"), 1, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcde"), 1, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcde"), 1, 2, -2);
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test46()
-{
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcde"), 1, 3, -3);
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcde"), 1, 4, -4);
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcde"), 1, 5, -4);
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcde"), 2, 0, 0);
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcde"), 2, 1, -1);
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcde"), 2, 2, -2);
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcde"), 2, 3, -3);
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcde"), 2, 4, -3);
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcde"), 4, 0, 0);
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcde"), 4, 1, -1);
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcde"), 4, 2, -1);
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcde"), 5, 0, 0);
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcde"), 5, 1, 0);
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcde"), 6, 0, 0);
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghij"), 0, 0, 0);
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghij"), 0, 1, -1);
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghij"), 0, 5, -5);
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghij"), 0, 9, -9);
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghij"), 0, 10, -10);
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghij"), 0, 11, -10);
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghij"), 1, 0, 0);
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghij"), 1, 1, -1);
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghij"), 1, 4, -4);
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghij"), 1, 8, -8);
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghij"), 1, 9, -9);
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghij"), 1, 10, -9);
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghij"), 5, 0, 0);
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghij"), 5, 1, -1);
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghij"), 5, 2, -2);
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghij"), 5, 4, -4);
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghij"), 5, 5, -5);
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghij"), 5, 6, -5);
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghij"), 9, 0, 0);
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghij"), 9, 1, -1);
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghij"), 9, 2, -1);
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghij"), 10, 0, 0);
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghij"), 10, 1, 0);
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghij"), 11, 0, 0);
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghijklmnopqrst"), 0, 0, 0);
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghijklmnopqrst"), 0, 1, -1);
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghijklmnopqrst"), 0, 10, -10);
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghijklmnopqrst"), 0, 19, -19);
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghijklmnopqrst"), 0, 20, -20);
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghijklmnopqrst"), 0, 21, -20);
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghijklmnopqrst"), 1, 0, 0);
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghijklmnopqrst"), 1, 1, -1);
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghijklmnopqrst"), 1, 9, -9);
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghijklmnopqrst"), 1, 18, -18);
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghijklmnopqrst"), 1, 19, -19);
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghijklmnopqrst"), 1, 20, -19);
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghijklmnopqrst"), 10, 0, 0);
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghijklmnopqrst"), 10, 1, -1);
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghijklmnopqrst"), 10, 5, -5);
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghijklmnopqrst"), 10, 9, -9);
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghijklmnopqrst"), 10, 10, -10);
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghijklmnopqrst"), 10, 11, -10);
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghijklmnopqrst"), 19, 0, 0);
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghijklmnopqrst"), 19, 1, -1);
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghijklmnopqrst"), 19, 2, -1);
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghijklmnopqrst"), 20, 0, 0);
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghijklmnopqrst"), 20, 1, 0);
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghijklmnopqrst"), 10, 1, SV(""), 0, 0, 1);
- test(S("abcdefghijklmnopqrst"), 10, 1, SV(""), 0, 1, 1);
- test(S("abcdefghijklmnopqrst"), 10, 1, SV(""), 1, 0, 0);
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcde"), 0, 0, 1);
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcde"), 0, 1, 10);
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcde"), 0, 2, 10);
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcde"), 0, 4, 10);
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcde"), 0, 5, 10);
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcde"), 0, 6, 10);
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcde"), 1, 0, 1);
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcde"), 1, 1, 9);
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcde"), 1, 2, 9);
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcde"), 1, 3, 9);
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcde"), 1, 4, 9);
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcde"), 1, 5, 9);
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcde"), 2, 0, 1);
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcde"), 2, 1, 8);
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcde"), 2, 2, 8);
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcde"), 2, 3, 8);
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcde"), 2, 4, 8);
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcde"), 4, 0, 1);
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcde"), 4, 1, 6);
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcde"), 4, 2, 6);
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcde"), 5, 0, 1);
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcde"), 5, 1, 1);
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcde"), 6, 0, 0);
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghij"), 0, 0, 1);
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghij"), 0, 1, 10);
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghij"), 0, 5, 10);
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghij"), 0, 9, 10);
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghij"), 0, 10, 10);
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghij"), 0, 11, 10);
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghij"), 1, 0, 1);
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghij"), 1, 1, 9);
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghij"), 1, 4, 9);
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghij"), 1, 8, 9);
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghij"), 1, 9, 9);
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghij"), 1, 10, 9);
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test46() {
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcde"), 1, 3, -3);
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcde"), 1, 4, -4);
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcde"), 1, 5, -4);
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcde"), 2, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcde"), 2, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcde"), 2, 2, -2);
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcde"), 2, 3, -3);
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcde"), 2, 4, -3);
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcde"), 4, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcde"), 4, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcde"), 4, 2, -1);
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcde"), 5, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcde"), 5, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcde"), 6, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghij"), 0, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghij"), 0, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghij"), 0, 5, -5);
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghij"), 0, 9, -9);
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghij"), 0, 10, -10);
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghij"), 0, 11, -10);
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghij"), 1, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghij"), 1, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghij"), 1, 4, -4);
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghij"), 1, 8, -8);
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghij"), 1, 9, -9);
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghij"), 1, 10, -9);
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghij"), 5, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghij"), 5, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghij"), 5, 2, -2);
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghij"), 5, 4, -4);
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghij"), 5, 5, -5);
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghij"), 5, 6, -5);
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghij"), 9, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghij"), 9, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghij"), 9, 2, -1);
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghij"), 10, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghij"), 10, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghijklmnopqrst"), 0, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghijklmnopqrst"), 0, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghijklmnopqrst"), 0, 10, -10);
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghijklmnopqrst"), 0, 19, -19);
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghijklmnopqrst"), 0, 20, -20);
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghijklmnopqrst"), 0, 21, -20);
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghijklmnopqrst"), 1, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghijklmnopqrst"), 1, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghijklmnopqrst"), 1, 9, -9);
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghijklmnopqrst"), 1, 18, -18);
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghijklmnopqrst"), 1, 19, -19);
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghijklmnopqrst"), 1, 20, -19);
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghijklmnopqrst"), 10, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghijklmnopqrst"), 10, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghijklmnopqrst"), 10, 5, -5);
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghijklmnopqrst"), 10, 9, -9);
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghijklmnopqrst"), 10, 10, -10);
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghijklmnopqrst"), 10, 11, -10);
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghijklmnopqrst"), 19, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghijklmnopqrst"), 19, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghijklmnopqrst"), 19, 2, -1);
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghijklmnopqrst"), 20, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghijklmnopqrst"), 20, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV(""), 0, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV(""), 0, 1, 1);
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV(""), 1, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcde"), 0, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcde"), 0, 1, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcde"), 0, 2, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcde"), 0, 4, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcde"), 0, 5, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcde"), 0, 6, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcde"), 1, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcde"), 1, 1, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcde"), 1, 2, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcde"), 1, 3, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcde"), 1, 4, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcde"), 1, 5, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcde"), 2, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcde"), 2, 1, 8);
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcde"), 2, 2, 8);
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcde"), 2, 3, 8);
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcde"), 2, 4, 8);
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcde"), 4, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcde"), 4, 1, 6);
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcde"), 4, 2, 6);
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcde"), 5, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcde"), 5, 1, 1);
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcde"), 6, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghij"), 0, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghij"), 0, 1, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghij"), 0, 5, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghij"), 0, 9, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghij"), 0, 10, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghij"), 0, 11, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghij"), 1, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghij"), 1, 1, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghij"), 1, 4, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghij"), 1, 8, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghij"), 1, 9, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghij"), 1, 10, 9);
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test47()
-{
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghij"), 5, 0, 1);
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghij"), 5, 1, 5);
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghij"), 5, 2, 5);
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghij"), 5, 4, 5);
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghij"), 5, 5, 5);
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghij"), 5, 6, 5);
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghij"), 9, 0, 1);
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghij"), 9, 1, 1);
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghij"), 9, 2, 1);
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghij"), 10, 0, 1);
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghij"), 10, 1, 1);
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghij"), 11, 0, 0);
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghijklmnopqrst"), 0, 0, 1);
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghijklmnopqrst"), 0, 1, 10);
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghijklmnopqrst"), 0, 10, 10);
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghijklmnopqrst"), 0, 19, 10);
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghijklmnopqrst"), 0, 20, 10);
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghijklmnopqrst"), 0, 21, 10);
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghijklmnopqrst"), 1, 0, 1);
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghijklmnopqrst"), 1, 1, 9);
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghijklmnopqrst"), 1, 9, 9);
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghijklmnopqrst"), 1, 18, 9);
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghijklmnopqrst"), 1, 19, 9);
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghijklmnopqrst"), 1, 20, 9);
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghijklmnopqrst"), 10, 0, 1);
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghijklmnopqrst"), 10, 1, 0);
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghijklmnopqrst"), 10, 5, -4);
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghijklmnopqrst"), 10, 9, -8);
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghijklmnopqrst"), 10, 10, -9);
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghijklmnopqrst"), 10, 11, -9);
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghijklmnopqrst"), 19, 0, 1);
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghijklmnopqrst"), 19, 1, -9);
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghijklmnopqrst"), 19, 2, -9);
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghijklmnopqrst"), 20, 0, 1);
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghijklmnopqrst"), 20, 1, 1);
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghijklmnopqrst"), 10, 5, SV(""), 0, 0, 5);
- test(S("abcdefghijklmnopqrst"), 10, 5, SV(""), 0, 1, 5);
- test(S("abcdefghijklmnopqrst"), 10, 5, SV(""), 1, 0, 0);
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcde"), 0, 0, 5);
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcde"), 0, 1, 10);
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcde"), 0, 2, 10);
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcde"), 0, 4, 10);
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcde"), 0, 5, 10);
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcde"), 0, 6, 10);
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcde"), 1, 0, 5);
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcde"), 1, 1, 9);
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcde"), 1, 2, 9);
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcde"), 1, 3, 9);
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcde"), 1, 4, 9);
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcde"), 1, 5, 9);
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcde"), 2, 0, 5);
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcde"), 2, 1, 8);
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcde"), 2, 2, 8);
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcde"), 2, 3, 8);
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcde"), 2, 4, 8);
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcde"), 4, 0, 5);
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcde"), 4, 1, 6);
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcde"), 4, 2, 6);
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcde"), 5, 0, 5);
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcde"), 5, 1, 5);
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcde"), 6, 0, 0);
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghij"), 0, 0, 5);
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghij"), 0, 1, 10);
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghij"), 0, 5, 10);
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghij"), 0, 9, 10);
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghij"), 0, 10, 10);
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghij"), 0, 11, 10);
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghij"), 1, 0, 5);
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghij"), 1, 1, 9);
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghij"), 1, 4, 9);
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghij"), 1, 8, 9);
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghij"), 1, 9, 9);
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghij"), 1, 10, 9);
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghij"), 5, 0, 5);
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghij"), 5, 1, 5);
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghij"), 5, 2, 5);
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghij"), 5, 4, 5);
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghij"), 5, 5, 5);
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghij"), 5, 6, 5);
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghij"), 9, 0, 5);
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghij"), 9, 1, 1);
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghij"), 9, 2, 1);
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghij"), 10, 0, 5);
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghij"), 10, 1, 5);
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghij"), 11, 0, 0);
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghijklmnopqrst"), 0, 0, 5);
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghijklmnopqrst"), 0, 1, 10);
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghijklmnopqrst"), 0, 10, 10);
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghijklmnopqrst"), 0, 19, 10);
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghijklmnopqrst"), 0, 20, 10);
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghijklmnopqrst"), 0, 21, 10);
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghijklmnopqrst"), 1, 0, 5);
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghijklmnopqrst"), 1, 1, 9);
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghijklmnopqrst"), 1, 9, 9);
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghijklmnopqrst"), 1, 18, 9);
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghijklmnopqrst"), 1, 19, 9);
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghijklmnopqrst"), 1, 20, 9);
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghijklmnopqrst"), 10, 0, 5);
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghijklmnopqrst"), 10, 1, 4);
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test47() {
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghij"), 5, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghij"), 5, 1, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghij"), 5, 2, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghij"), 5, 4, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghij"), 5, 5, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghij"), 5, 6, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghij"), 9, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghij"), 9, 1, 1);
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghij"), 9, 2, 1);
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghij"), 10, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghij"), 10, 1, 1);
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghijklmnopqrst"), 0, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghijklmnopqrst"), 0, 1, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghijklmnopqrst"), 0, 10, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghijklmnopqrst"), 0, 19, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghijklmnopqrst"), 0, 20, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghijklmnopqrst"), 0, 21, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghijklmnopqrst"), 1, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghijklmnopqrst"), 1, 1, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghijklmnopqrst"), 1, 9, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghijklmnopqrst"), 1, 18, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghijklmnopqrst"), 1, 19, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghijklmnopqrst"), 1, 20, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghijklmnopqrst"), 10, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghijklmnopqrst"), 10, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghijklmnopqrst"), 10, 5, -4);
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghijklmnopqrst"), 10, 9, -8);
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghijklmnopqrst"), 10, 10, -9);
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghijklmnopqrst"), 10, 11, -9);
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghijklmnopqrst"), 19, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghijklmnopqrst"), 19, 1, -9);
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghijklmnopqrst"), 19, 2, -9);
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghijklmnopqrst"), 20, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghijklmnopqrst"), 20, 1, 1);
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV(""), 0, 0, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV(""), 0, 1, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV(""), 1, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcde"), 0, 0, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcde"), 0, 1, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcde"), 0, 2, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcde"), 0, 4, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcde"), 0, 5, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcde"), 0, 6, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcde"), 1, 0, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcde"), 1, 1, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcde"), 1, 2, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcde"), 1, 3, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcde"), 1, 4, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcde"), 1, 5, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcde"), 2, 0, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcde"), 2, 1, 8);
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcde"), 2, 2, 8);
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcde"), 2, 3, 8);
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcde"), 2, 4, 8);
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcde"), 4, 0, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcde"), 4, 1, 6);
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcde"), 4, 2, 6);
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcde"), 5, 0, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcde"), 5, 1, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcde"), 6, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghij"), 0, 0, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghij"), 0, 1, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghij"), 0, 5, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghij"), 0, 9, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghij"), 0, 10, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghij"), 0, 11, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghij"), 1, 0, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghij"), 1, 1, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghij"), 1, 4, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghij"), 1, 8, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghij"), 1, 9, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghij"), 1, 10, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghij"), 5, 0, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghij"), 5, 1, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghij"), 5, 2, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghij"), 5, 4, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghij"), 5, 5, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghij"), 5, 6, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghij"), 9, 0, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghij"), 9, 1, 1);
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghij"), 9, 2, 1);
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghij"), 10, 0, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghij"), 10, 1, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghijklmnopqrst"), 0, 0, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghijklmnopqrst"), 0, 1, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghijklmnopqrst"), 0, 10, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghijklmnopqrst"), 0, 19, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghijklmnopqrst"), 0, 20, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghijklmnopqrst"), 0, 21, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghijklmnopqrst"), 1, 0, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghijklmnopqrst"), 1, 1, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghijklmnopqrst"), 1, 9, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghijklmnopqrst"), 1, 18, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghijklmnopqrst"), 1, 19, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghijklmnopqrst"), 1, 20, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghijklmnopqrst"), 10, 0, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghijklmnopqrst"), 10, 1, 4);
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test48()
-{
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghijklmnopqrst"), 10, 5, 0);
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghijklmnopqrst"), 10, 9, -4);
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghijklmnopqrst"), 10, 10, -5);
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghijklmnopqrst"), 10, 11, -5);
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghijklmnopqrst"), 19, 0, 5);
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghijklmnopqrst"), 19, 1, -9);
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghijklmnopqrst"), 19, 2, -9);
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghijklmnopqrst"), 20, 0, 5);
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghijklmnopqrst"), 20, 1, 5);
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghijklmnopqrst"), 10, 9, SV(""), 0, 0, 9);
- test(S("abcdefghijklmnopqrst"), 10, 9, SV(""), 0, 1, 9);
- test(S("abcdefghijklmnopqrst"), 10, 9, SV(""), 1, 0, 0);
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcde"), 0, 0, 9);
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcde"), 0, 1, 10);
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcde"), 0, 2, 10);
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcde"), 0, 4, 10);
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcde"), 0, 5, 10);
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcde"), 0, 6, 10);
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcde"), 1, 0, 9);
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcde"), 1, 1, 9);
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcde"), 1, 2, 9);
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcde"), 1, 3, 9);
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcde"), 1, 4, 9);
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcde"), 1, 5, 9);
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcde"), 2, 0, 9);
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcde"), 2, 1, 8);
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcde"), 2, 2, 8);
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcde"), 2, 3, 8);
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcde"), 2, 4, 8);
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcde"), 4, 0, 9);
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcde"), 4, 1, 6);
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcde"), 4, 2, 6);
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcde"), 5, 0, 9);
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcde"), 5, 1, 9);
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcde"), 6, 0, 0);
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghij"), 0, 0, 9);
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghij"), 0, 1, 10);
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghij"), 0, 5, 10);
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghij"), 0, 9, 10);
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghij"), 0, 10, 10);
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghij"), 0, 11, 10);
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghij"), 1, 0, 9);
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghij"), 1, 1, 9);
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghij"), 1, 4, 9);
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghij"), 1, 8, 9);
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghij"), 1, 9, 9);
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghij"), 1, 10, 9);
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghij"), 5, 0, 9);
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghij"), 5, 1, 5);
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghij"), 5, 2, 5);
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghij"), 5, 4, 5);
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghij"), 5, 5, 5);
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghij"), 5, 6, 5);
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghij"), 9, 0, 9);
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghij"), 9, 1, 1);
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghij"), 9, 2, 1);
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghij"), 10, 0, 9);
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghij"), 10, 1, 9);
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghij"), 11, 0, 0);
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghijklmnopqrst"), 0, 0, 9);
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghijklmnopqrst"), 0, 1, 10);
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghijklmnopqrst"), 0, 10, 10);
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghijklmnopqrst"), 0, 19, 10);
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghijklmnopqrst"), 0, 20, 10);
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghijklmnopqrst"), 0, 21, 10);
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghijklmnopqrst"), 1, 0, 9);
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghijklmnopqrst"), 1, 1, 9);
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghijklmnopqrst"), 1, 9, 9);
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghijklmnopqrst"), 1, 18, 9);
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghijklmnopqrst"), 1, 19, 9);
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghijklmnopqrst"), 1, 20, 9);
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghijklmnopqrst"), 10, 0, 9);
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghijklmnopqrst"), 10, 1, 8);
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghijklmnopqrst"), 10, 5, 4);
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghijklmnopqrst"), 10, 9, 0);
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghijklmnopqrst"), 10, 10, -1);
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghijklmnopqrst"), 10, 11, -1);
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghijklmnopqrst"), 19, 0, 9);
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghijklmnopqrst"), 19, 1, -9);
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghijklmnopqrst"), 19, 2, -9);
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghijklmnopqrst"), 20, 0, 9);
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghijklmnopqrst"), 20, 1, 9);
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghijklmnopqrst"), 10, 10, SV(""), 0, 0, 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, SV(""), 0, 1, 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, SV(""), 1, 0, 0);
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcde"), 0, 0, 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcde"), 0, 1, 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcde"), 0, 2, 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcde"), 0, 4, 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcde"), 0, 5, 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcde"), 0, 6, 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcde"), 1, 0, 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcde"), 1, 1, 9);
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcde"), 1, 2, 9);
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcde"), 1, 3, 9);
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcde"), 1, 4, 9);
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcde"), 1, 5, 9);
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcde"), 2, 0, 10);
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test48() {
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghijklmnopqrst"), 10, 5, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghijklmnopqrst"), 10, 9, -4);
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghijklmnopqrst"), 10, 10, -5);
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghijklmnopqrst"), 10, 11, -5);
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghijklmnopqrst"), 19, 0, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghijklmnopqrst"), 19, 1, -9);
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghijklmnopqrst"), 19, 2, -9);
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghijklmnopqrst"), 20, 0, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghijklmnopqrst"), 20, 1, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV(""), 0, 0, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV(""), 0, 1, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV(""), 1, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcde"), 0, 0, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcde"), 0, 1, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcde"), 0, 2, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcde"), 0, 4, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcde"), 0, 5, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcde"), 0, 6, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcde"), 1, 0, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcde"), 1, 1, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcde"), 1, 2, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcde"), 1, 3, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcde"), 1, 4, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcde"), 1, 5, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcde"), 2, 0, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcde"), 2, 1, 8);
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcde"), 2, 2, 8);
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcde"), 2, 3, 8);
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcde"), 2, 4, 8);
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcde"), 4, 0, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcde"), 4, 1, 6);
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcde"), 4, 2, 6);
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcde"), 5, 0, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcde"), 5, 1, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcde"), 6, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghij"), 0, 0, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghij"), 0, 1, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghij"), 0, 5, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghij"), 0, 9, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghij"), 0, 10, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghij"), 0, 11, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghij"), 1, 0, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghij"), 1, 1, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghij"), 1, 4, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghij"), 1, 8, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghij"), 1, 9, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghij"), 1, 10, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghij"), 5, 0, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghij"), 5, 1, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghij"), 5, 2, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghij"), 5, 4, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghij"), 5, 5, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghij"), 5, 6, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghij"), 9, 0, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghij"), 9, 1, 1);
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghij"), 9, 2, 1);
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghij"), 10, 0, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghij"), 10, 1, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghijklmnopqrst"), 0, 0, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghijklmnopqrst"), 0, 1, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghijklmnopqrst"), 0, 10, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghijklmnopqrst"), 0, 19, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghijklmnopqrst"), 0, 20, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghijklmnopqrst"), 0, 21, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghijklmnopqrst"), 1, 0, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghijklmnopqrst"), 1, 1, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghijklmnopqrst"), 1, 9, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghijklmnopqrst"), 1, 18, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghijklmnopqrst"), 1, 19, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghijklmnopqrst"), 1, 20, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghijklmnopqrst"), 10, 0, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghijklmnopqrst"), 10, 1, 8);
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghijklmnopqrst"), 10, 5, 4);
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghijklmnopqrst"), 10, 9, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghijklmnopqrst"), 10, 10, -1);
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghijklmnopqrst"), 10, 11, -1);
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghijklmnopqrst"), 19, 0, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghijklmnopqrst"), 19, 1, -9);
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghijklmnopqrst"), 19, 2, -9);
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghijklmnopqrst"), 20, 0, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghijklmnopqrst"), 20, 1, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV(""), 0, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV(""), 0, 1, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV(""), 1, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcde"), 0, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcde"), 0, 1, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcde"), 0, 2, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcde"), 0, 4, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcde"), 0, 5, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcde"), 0, 6, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcde"), 1, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcde"), 1, 1, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcde"), 1, 2, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcde"), 1, 3, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcde"), 1, 4, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcde"), 1, 5, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcde"), 2, 0, 10);
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test49()
-{
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcde"), 2, 1, 8);
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcde"), 2, 2, 8);
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcde"), 2, 3, 8);
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcde"), 2, 4, 8);
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcde"), 4, 0, 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcde"), 4, 1, 6);
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcde"), 4, 2, 6);
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcde"), 5, 0, 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcde"), 5, 1, 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcde"), 6, 0, 0);
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghij"), 0, 0, 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghij"), 0, 1, 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghij"), 0, 5, 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghij"), 0, 9, 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghij"), 0, 10, 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghij"), 0, 11, 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghij"), 1, 0, 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghij"), 1, 1, 9);
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghij"), 1, 4, 9);
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghij"), 1, 8, 9);
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghij"), 1, 9, 9);
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghij"), 1, 10, 9);
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghij"), 5, 0, 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghij"), 5, 1, 5);
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghij"), 5, 2, 5);
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghij"), 5, 4, 5);
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghij"), 5, 5, 5);
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghij"), 5, 6, 5);
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghij"), 9, 0, 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghij"), 9, 1, 1);
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghij"), 9, 2, 1);
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghij"), 10, 0, 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghij"), 10, 1, 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghij"), 11, 0, 0);
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghijklmnopqrst"), 0, 0, 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghijklmnopqrst"), 0, 1, 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghijklmnopqrst"), 0, 10, 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghijklmnopqrst"), 0, 19, 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghijklmnopqrst"), 0, 20, 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghijklmnopqrst"), 0, 21, 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghijklmnopqrst"), 1, 0, 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghijklmnopqrst"), 1, 1, 9);
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghijklmnopqrst"), 1, 9, 9);
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghijklmnopqrst"), 1, 18, 9);
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghijklmnopqrst"), 1, 19, 9);
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghijklmnopqrst"), 1, 20, 9);
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghijklmnopqrst"), 10, 0, 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghijklmnopqrst"), 10, 1, 9);
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghijklmnopqrst"), 10, 5, 5);
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghijklmnopqrst"), 10, 9, 1);
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghijklmnopqrst"), 10, 10, 0);
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghijklmnopqrst"), 10, 11, 0);
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghijklmnopqrst"), 19, 0, 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghijklmnopqrst"), 19, 1, -9);
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghijklmnopqrst"), 19, 2, -9);
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghijklmnopqrst"), 20, 0, 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghijklmnopqrst"), 20, 1, 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghijklmnopqrst"), 10, 11, SV(""), 0, 0, 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, SV(""), 0, 1, 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, SV(""), 1, 0, 0);
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcde"), 0, 0, 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcde"), 0, 1, 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcde"), 0, 2, 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcde"), 0, 4, 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcde"), 0, 5, 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcde"), 0, 6, 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcde"), 1, 0, 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcde"), 1, 1, 9);
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcde"), 1, 2, 9);
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcde"), 1, 3, 9);
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcde"), 1, 4, 9);
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcde"), 1, 5, 9);
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcde"), 2, 0, 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcde"), 2, 1, 8);
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcde"), 2, 2, 8);
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcde"), 2, 3, 8);
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcde"), 2, 4, 8);
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcde"), 4, 0, 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcde"), 4, 1, 6);
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcde"), 4, 2, 6);
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcde"), 5, 0, 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcde"), 5, 1, 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcde"), 6, 0, 0);
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghij"), 0, 0, 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghij"), 0, 1, 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghij"), 0, 5, 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghij"), 0, 9, 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghij"), 0, 10, 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghij"), 0, 11, 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghij"), 1, 0, 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghij"), 1, 1, 9);
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghij"), 1, 4, 9);
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghij"), 1, 8, 9);
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghij"), 1, 9, 9);
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghij"), 1, 10, 9);
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghij"), 5, 0, 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghij"), 5, 1, 5);
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghij"), 5, 2, 5);
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghij"), 5, 4, 5);
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test49() {
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcde"), 2, 1, 8);
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcde"), 2, 2, 8);
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcde"), 2, 3, 8);
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcde"), 2, 4, 8);
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcde"), 4, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcde"), 4, 1, 6);
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcde"), 4, 2, 6);
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcde"), 5, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcde"), 5, 1, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcde"), 6, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghij"), 0, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghij"), 0, 1, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghij"), 0, 5, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghij"), 0, 9, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghij"), 0, 10, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghij"), 0, 11, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghij"), 1, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghij"), 1, 1, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghij"), 1, 4, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghij"), 1, 8, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghij"), 1, 9, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghij"), 1, 10, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghij"), 5, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghij"), 5, 1, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghij"), 5, 2, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghij"), 5, 4, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghij"), 5, 5, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghij"), 5, 6, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghij"), 9, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghij"), 9, 1, 1);
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghij"), 9, 2, 1);
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghij"), 10, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghij"), 10, 1, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghijklmnopqrst"), 0, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghijklmnopqrst"), 0, 1, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghijklmnopqrst"), 0, 10, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghijklmnopqrst"), 0, 19, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghijklmnopqrst"), 0, 20, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghijklmnopqrst"), 0, 21, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghijklmnopqrst"), 1, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghijklmnopqrst"), 1, 1, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghijklmnopqrst"), 1, 9, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghijklmnopqrst"), 1, 18, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghijklmnopqrst"), 1, 19, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghijklmnopqrst"), 1, 20, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghijklmnopqrst"), 10, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghijklmnopqrst"), 10, 1, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghijklmnopqrst"), 10, 5, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghijklmnopqrst"), 10, 9, 1);
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghijklmnopqrst"), 10, 10, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghijklmnopqrst"), 10, 11, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghijklmnopqrst"), 19, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghijklmnopqrst"), 19, 1, -9);
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghijklmnopqrst"), 19, 2, -9);
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghijklmnopqrst"), 20, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghijklmnopqrst"), 20, 1, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV(""), 0, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV(""), 0, 1, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV(""), 1, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcde"), 0, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcde"), 0, 1, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcde"), 0, 2, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcde"), 0, 4, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcde"), 0, 5, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcde"), 0, 6, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcde"), 1, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcde"), 1, 1, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcde"), 1, 2, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcde"), 1, 3, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcde"), 1, 4, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcde"), 1, 5, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcde"), 2, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcde"), 2, 1, 8);
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcde"), 2, 2, 8);
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcde"), 2, 3, 8);
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcde"), 2, 4, 8);
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcde"), 4, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcde"), 4, 1, 6);
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcde"), 4, 2, 6);
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcde"), 5, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcde"), 5, 1, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcde"), 6, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghij"), 0, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghij"), 0, 1, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghij"), 0, 5, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghij"), 0, 9, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghij"), 0, 10, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghij"), 0, 11, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghij"), 1, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghij"), 1, 1, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghij"), 1, 4, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghij"), 1, 8, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghij"), 1, 9, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghij"), 1, 10, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghij"), 5, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghij"), 5, 1, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghij"), 5, 2, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghij"), 5, 4, 5);
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test50()
-{
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghij"), 5, 5, 5);
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghij"), 5, 6, 5);
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghij"), 9, 0, 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghij"), 9, 1, 1);
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghij"), 9, 2, 1);
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghij"), 10, 0, 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghij"), 10, 1, 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghij"), 11, 0, 0);
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghijklmnopqrst"), 0, 0, 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghijklmnopqrst"), 0, 1, 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghijklmnopqrst"), 0, 10, 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghijklmnopqrst"), 0, 19, 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghijklmnopqrst"), 0, 20, 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghijklmnopqrst"), 0, 21, 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghijklmnopqrst"), 1, 0, 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghijklmnopqrst"), 1, 1, 9);
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghijklmnopqrst"), 1, 9, 9);
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghijklmnopqrst"), 1, 18, 9);
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghijklmnopqrst"), 1, 19, 9);
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghijklmnopqrst"), 1, 20, 9);
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghijklmnopqrst"), 10, 0, 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghijklmnopqrst"), 10, 1, 9);
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghijklmnopqrst"), 10, 5, 5);
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghijklmnopqrst"), 10, 9, 1);
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghijklmnopqrst"), 10, 10, 0);
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghijklmnopqrst"), 10, 11, 0);
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghijklmnopqrst"), 19, 0, 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghijklmnopqrst"), 19, 1, -9);
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghijklmnopqrst"), 19, 2, -9);
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghijklmnopqrst"), 20, 0, 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghijklmnopqrst"), 20, 1, 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghijklmnopqrst"), 19, 0, SV(""), 0, 0, 0);
- test(S("abcdefghijklmnopqrst"), 19, 0, SV(""), 0, 1, 0);
- test(S("abcdefghijklmnopqrst"), 19, 0, SV(""), 1, 0, 0);
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcde"), 0, 0, 0);
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcde"), 0, 1, -1);
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcde"), 0, 2, -2);
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcde"), 0, 4, -4);
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcde"), 0, 5, -5);
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcde"), 0, 6, -5);
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcde"), 1, 0, 0);
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcde"), 1, 1, -1);
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcde"), 1, 2, -2);
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcde"), 1, 3, -3);
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcde"), 1, 4, -4);
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcde"), 1, 5, -4);
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcde"), 2, 0, 0);
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcde"), 2, 1, -1);
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcde"), 2, 2, -2);
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcde"), 2, 3, -3);
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcde"), 2, 4, -3);
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcde"), 4, 0, 0);
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcde"), 4, 1, -1);
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcde"), 4, 2, -1);
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcde"), 5, 0, 0);
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcde"), 5, 1, 0);
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcde"), 6, 0, 0);
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghij"), 0, 0, 0);
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghij"), 0, 1, -1);
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghij"), 0, 5, -5);
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghij"), 0, 9, -9);
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghij"), 0, 10, -10);
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghij"), 0, 11, -10);
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghij"), 1, 0, 0);
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghij"), 1, 1, -1);
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghij"), 1, 4, -4);
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghij"), 1, 8, -8);
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghij"), 1, 9, -9);
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghij"), 1, 10, -9);
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghij"), 5, 0, 0);
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghij"), 5, 1, -1);
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghij"), 5, 2, -2);
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghij"), 5, 4, -4);
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghij"), 5, 5, -5);
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghij"), 5, 6, -5);
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghij"), 9, 0, 0);
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghij"), 9, 1, -1);
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghij"), 9, 2, -1);
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghij"), 10, 0, 0);
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghij"), 10, 1, 0);
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghij"), 11, 0, 0);
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghijklmnopqrst"), 0, 0, 0);
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghijklmnopqrst"), 0, 1, -1);
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghijklmnopqrst"), 0, 10, -10);
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghijklmnopqrst"), 0, 19, -19);
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghijklmnopqrst"), 0, 20, -20);
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghijklmnopqrst"), 0, 21, -20);
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghijklmnopqrst"), 1, 0, 0);
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghijklmnopqrst"), 1, 1, -1);
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghijklmnopqrst"), 1, 9, -9);
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghijklmnopqrst"), 1, 18, -18);
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghijklmnopqrst"), 1, 19, -19);
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghijklmnopqrst"), 1, 20, -19);
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghijklmnopqrst"), 10, 0, 0);
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghijklmnopqrst"), 10, 1, -1);
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghijklmnopqrst"), 10, 5, -5);
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghijklmnopqrst"), 10, 9, -9);
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghijklmnopqrst"), 10, 10, -10);
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghijklmnopqrst"), 10, 11, -10);
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test50() {
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghij"), 5, 5, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghij"), 5, 6, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghij"), 9, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghij"), 9, 1, 1);
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghij"), 9, 2, 1);
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghij"), 10, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghij"), 10, 1, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghijklmnopqrst"), 0, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghijklmnopqrst"), 0, 1, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghijklmnopqrst"), 0, 10, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghijklmnopqrst"), 0, 19, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghijklmnopqrst"), 0, 20, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghijklmnopqrst"), 0, 21, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghijklmnopqrst"), 1, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghijklmnopqrst"), 1, 1, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghijklmnopqrst"), 1, 9, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghijklmnopqrst"), 1, 18, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghijklmnopqrst"), 1, 19, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghijklmnopqrst"), 1, 20, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghijklmnopqrst"), 10, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghijklmnopqrst"), 10, 1, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghijklmnopqrst"), 10, 5, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghijklmnopqrst"), 10, 9, 1);
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghijklmnopqrst"), 10, 10, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghijklmnopqrst"), 10, 11, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghijklmnopqrst"), 19, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghijklmnopqrst"), 19, 1, -9);
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghijklmnopqrst"), 19, 2, -9);
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghijklmnopqrst"), 20, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghijklmnopqrst"), 20, 1, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV(""), 0, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV(""), 0, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV(""), 1, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcde"), 0, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcde"), 0, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcde"), 0, 2, -2);
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcde"), 0, 4, -4);
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcde"), 0, 5, -5);
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcde"), 0, 6, -5);
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcde"), 1, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcde"), 1, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcde"), 1, 2, -2);
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcde"), 1, 3, -3);
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcde"), 1, 4, -4);
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcde"), 1, 5, -4);
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcde"), 2, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcde"), 2, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcde"), 2, 2, -2);
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcde"), 2, 3, -3);
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcde"), 2, 4, -3);
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcde"), 4, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcde"), 4, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcde"), 4, 2, -1);
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcde"), 5, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcde"), 5, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcde"), 6, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghij"), 0, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghij"), 0, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghij"), 0, 5, -5);
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghij"), 0, 9, -9);
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghij"), 0, 10, -10);
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghij"), 0, 11, -10);
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghij"), 1, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghij"), 1, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghij"), 1, 4, -4);
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghij"), 1, 8, -8);
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghij"), 1, 9, -9);
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghij"), 1, 10, -9);
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghij"), 5, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghij"), 5, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghij"), 5, 2, -2);
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghij"), 5, 4, -4);
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghij"), 5, 5, -5);
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghij"), 5, 6, -5);
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghij"), 9, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghij"), 9, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghij"), 9, 2, -1);
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghij"), 10, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghij"), 10, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghijklmnopqrst"), 0, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghijklmnopqrst"), 0, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghijklmnopqrst"), 0, 10, -10);
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghijklmnopqrst"), 0, 19, -19);
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghijklmnopqrst"), 0, 20, -20);
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghijklmnopqrst"), 0, 21, -20);
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghijklmnopqrst"), 1, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghijklmnopqrst"), 1, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghijklmnopqrst"), 1, 9, -9);
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghijklmnopqrst"), 1, 18, -18);
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghijklmnopqrst"), 1, 19, -19);
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghijklmnopqrst"), 1, 20, -19);
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghijklmnopqrst"), 10, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghijklmnopqrst"), 10, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghijklmnopqrst"), 10, 5, -5);
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghijklmnopqrst"), 10, 9, -9);
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghijklmnopqrst"), 10, 10, -10);
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghijklmnopqrst"), 10, 11, -10);
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test51()
-{
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghijklmnopqrst"), 19, 0, 0);
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghijklmnopqrst"), 19, 1, -1);
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghijklmnopqrst"), 19, 2, -1);
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghijklmnopqrst"), 20, 0, 0);
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghijklmnopqrst"), 20, 1, 0);
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghijklmnopqrst"), 19, 1, SV(""), 0, 0, 1);
- test(S("abcdefghijklmnopqrst"), 19, 1, SV(""), 0, 1, 1);
- test(S("abcdefghijklmnopqrst"), 19, 1, SV(""), 1, 0, 0);
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcde"), 0, 0, 1);
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcde"), 0, 1, 19);
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcde"), 0, 2, 19);
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcde"), 0, 4, 19);
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcde"), 0, 5, 19);
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcde"), 0, 6, 19);
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcde"), 1, 0, 1);
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcde"), 1, 1, 18);
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcde"), 1, 2, 18);
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcde"), 1, 3, 18);
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcde"), 1, 4, 18);
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcde"), 1, 5, 18);
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcde"), 2, 0, 1);
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcde"), 2, 1, 17);
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcde"), 2, 2, 17);
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcde"), 2, 3, 17);
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcde"), 2, 4, 17);
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcde"), 4, 0, 1);
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcde"), 4, 1, 15);
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcde"), 4, 2, 15);
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcde"), 5, 0, 1);
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcde"), 5, 1, 1);
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcde"), 6, 0, 0);
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghij"), 0, 0, 1);
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghij"), 0, 1, 19);
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghij"), 0, 5, 19);
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghij"), 0, 9, 19);
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghij"), 0, 10, 19);
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghij"), 0, 11, 19);
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghij"), 1, 0, 1);
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghij"), 1, 1, 18);
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghij"), 1, 4, 18);
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghij"), 1, 8, 18);
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghij"), 1, 9, 18);
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghij"), 1, 10, 18);
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghij"), 5, 0, 1);
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghij"), 5, 1, 14);
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghij"), 5, 2, 14);
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghij"), 5, 4, 14);
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghij"), 5, 5, 14);
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghij"), 5, 6, 14);
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghij"), 9, 0, 1);
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghij"), 9, 1, 10);
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghij"), 9, 2, 10);
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghij"), 10, 0, 1);
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghij"), 10, 1, 1);
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghij"), 11, 0, 0);
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghijklmnopqrst"), 0, 0, 1);
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghijklmnopqrst"), 0, 1, 19);
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghijklmnopqrst"), 0, 10, 19);
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghijklmnopqrst"), 0, 19, 19);
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghijklmnopqrst"), 0, 20, 19);
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghijklmnopqrst"), 0, 21, 19);
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghijklmnopqrst"), 1, 0, 1);
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghijklmnopqrst"), 1, 1, 18);
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghijklmnopqrst"), 1, 9, 18);
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghijklmnopqrst"), 1, 18, 18);
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghijklmnopqrst"), 1, 19, 18);
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghijklmnopqrst"), 1, 20, 18);
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghijklmnopqrst"), 10, 0, 1);
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghijklmnopqrst"), 10, 1, 9);
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghijklmnopqrst"), 10, 5, 9);
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghijklmnopqrst"), 10, 9, 9);
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghijklmnopqrst"), 10, 10, 9);
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghijklmnopqrst"), 10, 11, 9);
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghijklmnopqrst"), 19, 0, 1);
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghijklmnopqrst"), 19, 1, 0);
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghijklmnopqrst"), 19, 2, 0);
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghijklmnopqrst"), 20, 0, 1);
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghijklmnopqrst"), 20, 1, 1);
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghijklmnopqrst"), 19, 2, SV(""), 0, 0, 1);
- test(S("abcdefghijklmnopqrst"), 19, 2, SV(""), 0, 1, 1);
- test(S("abcdefghijklmnopqrst"), 19, 2, SV(""), 1, 0, 0);
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcde"), 0, 0, 1);
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcde"), 0, 1, 19);
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcde"), 0, 2, 19);
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcde"), 0, 4, 19);
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcde"), 0, 5, 19);
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcde"), 0, 6, 19);
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcde"), 1, 0, 1);
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcde"), 1, 1, 18);
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcde"), 1, 2, 18);
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcde"), 1, 3, 18);
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcde"), 1, 4, 18);
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcde"), 1, 5, 18);
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcde"), 2, 0, 1);
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcde"), 2, 1, 17);
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcde"), 2, 2, 17);
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcde"), 2, 3, 17);
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcde"), 2, 4, 17);
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test51() {
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghijklmnopqrst"), 19, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghijklmnopqrst"), 19, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghijklmnopqrst"), 19, 2, -1);
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghijklmnopqrst"), 20, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghijklmnopqrst"), 20, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV(""), 0, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV(""), 0, 1, 1);
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV(""), 1, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcde"), 0, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcde"), 0, 1, 19);
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcde"), 0, 2, 19);
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcde"), 0, 4, 19);
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcde"), 0, 5, 19);
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcde"), 0, 6, 19);
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcde"), 1, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcde"), 1, 1, 18);
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcde"), 1, 2, 18);
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcde"), 1, 3, 18);
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcde"), 1, 4, 18);
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcde"), 1, 5, 18);
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcde"), 2, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcde"), 2, 1, 17);
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcde"), 2, 2, 17);
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcde"), 2, 3, 17);
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcde"), 2, 4, 17);
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcde"), 4, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcde"), 4, 1, 15);
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcde"), 4, 2, 15);
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcde"), 5, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcde"), 5, 1, 1);
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcde"), 6, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghij"), 0, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghij"), 0, 1, 19);
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghij"), 0, 5, 19);
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghij"), 0, 9, 19);
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghij"), 0, 10, 19);
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghij"), 0, 11, 19);
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghij"), 1, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghij"), 1, 1, 18);
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghij"), 1, 4, 18);
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghij"), 1, 8, 18);
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghij"), 1, 9, 18);
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghij"), 1, 10, 18);
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghij"), 5, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghij"), 5, 1, 14);
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghij"), 5, 2, 14);
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghij"), 5, 4, 14);
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghij"), 5, 5, 14);
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghij"), 5, 6, 14);
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghij"), 9, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghij"), 9, 1, 10);
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghij"), 9, 2, 10);
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghij"), 10, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghij"), 10, 1, 1);
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghijklmnopqrst"), 0, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghijklmnopqrst"), 0, 1, 19);
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghijklmnopqrst"), 0, 10, 19);
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghijklmnopqrst"), 0, 19, 19);
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghijklmnopqrst"), 0, 20, 19);
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghijklmnopqrst"), 0, 21, 19);
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghijklmnopqrst"), 1, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghijklmnopqrst"), 1, 1, 18);
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghijklmnopqrst"), 1, 9, 18);
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghijklmnopqrst"), 1, 18, 18);
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghijklmnopqrst"), 1, 19, 18);
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghijklmnopqrst"), 1, 20, 18);
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghijklmnopqrst"), 10, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghijklmnopqrst"), 10, 1, 9);
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghijklmnopqrst"), 10, 5, 9);
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghijklmnopqrst"), 10, 9, 9);
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghijklmnopqrst"), 10, 10, 9);
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghijklmnopqrst"), 10, 11, 9);
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghijklmnopqrst"), 19, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghijklmnopqrst"), 19, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghijklmnopqrst"), 19, 2, 0);
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghijklmnopqrst"), 20, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghijklmnopqrst"), 20, 1, 1);
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV(""), 0, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV(""), 0, 1, 1);
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV(""), 1, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcde"), 0, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcde"), 0, 1, 19);
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcde"), 0, 2, 19);
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcde"), 0, 4, 19);
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcde"), 0, 5, 19);
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcde"), 0, 6, 19);
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcde"), 1, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcde"), 1, 1, 18);
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcde"), 1, 2, 18);
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcde"), 1, 3, 18);
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcde"), 1, 4, 18);
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcde"), 1, 5, 18);
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcde"), 2, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcde"), 2, 1, 17);
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcde"), 2, 2, 17);
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcde"), 2, 3, 17);
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcde"), 2, 4, 17);
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test52()
-{
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcde"), 4, 0, 1);
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcde"), 4, 1, 15);
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcde"), 4, 2, 15);
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcde"), 5, 0, 1);
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcde"), 5, 1, 1);
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcde"), 6, 0, 0);
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghij"), 0, 0, 1);
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghij"), 0, 1, 19);
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghij"), 0, 5, 19);
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghij"), 0, 9, 19);
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghij"), 0, 10, 19);
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghij"), 0, 11, 19);
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghij"), 1, 0, 1);
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghij"), 1, 1, 18);
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghij"), 1, 4, 18);
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghij"), 1, 8, 18);
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghij"), 1, 9, 18);
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghij"), 1, 10, 18);
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghij"), 5, 0, 1);
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghij"), 5, 1, 14);
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghij"), 5, 2, 14);
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghij"), 5, 4, 14);
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghij"), 5, 5, 14);
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghij"), 5, 6, 14);
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghij"), 9, 0, 1);
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghij"), 9, 1, 10);
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghij"), 9, 2, 10);
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghij"), 10, 0, 1);
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghij"), 10, 1, 1);
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghij"), 11, 0, 0);
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghijklmnopqrst"), 0, 0, 1);
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghijklmnopqrst"), 0, 1, 19);
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghijklmnopqrst"), 0, 10, 19);
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghijklmnopqrst"), 0, 19, 19);
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghijklmnopqrst"), 0, 20, 19);
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghijklmnopqrst"), 0, 21, 19);
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghijklmnopqrst"), 1, 0, 1);
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghijklmnopqrst"), 1, 1, 18);
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghijklmnopqrst"), 1, 9, 18);
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghijklmnopqrst"), 1, 18, 18);
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghijklmnopqrst"), 1, 19, 18);
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghijklmnopqrst"), 1, 20, 18);
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghijklmnopqrst"), 10, 0, 1);
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghijklmnopqrst"), 10, 1, 9);
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghijklmnopqrst"), 10, 5, 9);
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghijklmnopqrst"), 10, 9, 9);
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghijklmnopqrst"), 10, 10, 9);
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghijklmnopqrst"), 10, 11, 9);
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghijklmnopqrst"), 19, 0, 1);
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghijklmnopqrst"), 19, 1, 0);
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghijklmnopqrst"), 19, 2, 0);
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghijklmnopqrst"), 20, 0, 1);
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghijklmnopqrst"), 20, 1, 1);
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghijklmnopqrst"), 20, 0, SV(""), 0, 0, 0);
- test(S("abcdefghijklmnopqrst"), 20, 0, SV(""), 0, 1, 0);
- test(S("abcdefghijklmnopqrst"), 20, 0, SV(""), 1, 0, 0);
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcde"), 0, 0, 0);
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcde"), 0, 1, -1);
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcde"), 0, 2, -2);
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcde"), 0, 4, -4);
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcde"), 0, 5, -5);
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcde"), 0, 6, -5);
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcde"), 1, 0, 0);
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcde"), 1, 1, -1);
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcde"), 1, 2, -2);
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcde"), 1, 3, -3);
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcde"), 1, 4, -4);
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcde"), 1, 5, -4);
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcde"), 2, 0, 0);
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcde"), 2, 1, -1);
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcde"), 2, 2, -2);
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcde"), 2, 3, -3);
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcde"), 2, 4, -3);
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcde"), 4, 0, 0);
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcde"), 4, 1, -1);
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcde"), 4, 2, -1);
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcde"), 5, 0, 0);
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcde"), 5, 1, 0);
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcde"), 6, 0, 0);
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghij"), 0, 0, 0);
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghij"), 0, 1, -1);
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghij"), 0, 5, -5);
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghij"), 0, 9, -9);
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghij"), 0, 10, -10);
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghij"), 0, 11, -10);
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghij"), 1, 0, 0);
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghij"), 1, 1, -1);
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghij"), 1, 4, -4);
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghij"), 1, 8, -8);
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghij"), 1, 9, -9);
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghij"), 1, 10, -9);
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghij"), 5, 0, 0);
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghij"), 5, 1, -1);
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghij"), 5, 2, -2);
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghij"), 5, 4, -4);
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghij"), 5, 5, -5);
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghij"), 5, 6, -5);
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghij"), 9, 0, 0);
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghij"), 9, 1, -1);
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test52() {
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcde"), 4, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcde"), 4, 1, 15);
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcde"), 4, 2, 15);
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcde"), 5, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcde"), 5, 1, 1);
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcde"), 6, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghij"), 0, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghij"), 0, 1, 19);
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghij"), 0, 5, 19);
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghij"), 0, 9, 19);
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghij"), 0, 10, 19);
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghij"), 0, 11, 19);
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghij"), 1, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghij"), 1, 1, 18);
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghij"), 1, 4, 18);
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghij"), 1, 8, 18);
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghij"), 1, 9, 18);
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghij"), 1, 10, 18);
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghij"), 5, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghij"), 5, 1, 14);
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghij"), 5, 2, 14);
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghij"), 5, 4, 14);
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghij"), 5, 5, 14);
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghij"), 5, 6, 14);
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghij"), 9, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghij"), 9, 1, 10);
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghij"), 9, 2, 10);
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghij"), 10, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghij"), 10, 1, 1);
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghijklmnopqrst"), 0, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghijklmnopqrst"), 0, 1, 19);
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghijklmnopqrst"), 0, 10, 19);
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghijklmnopqrst"), 0, 19, 19);
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghijklmnopqrst"), 0, 20, 19);
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghijklmnopqrst"), 0, 21, 19);
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghijklmnopqrst"), 1, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghijklmnopqrst"), 1, 1, 18);
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghijklmnopqrst"), 1, 9, 18);
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghijklmnopqrst"), 1, 18, 18);
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghijklmnopqrst"), 1, 19, 18);
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghijklmnopqrst"), 1, 20, 18);
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghijklmnopqrst"), 10, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghijklmnopqrst"), 10, 1, 9);
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghijklmnopqrst"), 10, 5, 9);
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghijklmnopqrst"), 10, 9, 9);
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghijklmnopqrst"), 10, 10, 9);
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghijklmnopqrst"), 10, 11, 9);
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghijklmnopqrst"), 19, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghijklmnopqrst"), 19, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghijklmnopqrst"), 19, 2, 0);
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghijklmnopqrst"), 20, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghijklmnopqrst"), 20, 1, 1);
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV(""), 0, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV(""), 0, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV(""), 1, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcde"), 0, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcde"), 0, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcde"), 0, 2, -2);
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcde"), 0, 4, -4);
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcde"), 0, 5, -5);
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcde"), 0, 6, -5);
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcde"), 1, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcde"), 1, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcde"), 1, 2, -2);
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcde"), 1, 3, -3);
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcde"), 1, 4, -4);
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcde"), 1, 5, -4);
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcde"), 2, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcde"), 2, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcde"), 2, 2, -2);
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcde"), 2, 3, -3);
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcde"), 2, 4, -3);
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcde"), 4, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcde"), 4, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcde"), 4, 2, -1);
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcde"), 5, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcde"), 5, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcde"), 6, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghij"), 0, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghij"), 0, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghij"), 0, 5, -5);
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghij"), 0, 9, -9);
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghij"), 0, 10, -10);
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghij"), 0, 11, -10);
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghij"), 1, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghij"), 1, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghij"), 1, 4, -4);
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghij"), 1, 8, -8);
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghij"), 1, 9, -9);
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghij"), 1, 10, -9);
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghij"), 5, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghij"), 5, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghij"), 5, 2, -2);
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghij"), 5, 4, -4);
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghij"), 5, 5, -5);
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghij"), 5, 6, -5);
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghij"), 9, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghij"), 9, 1, -1);
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test53()
-{
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghij"), 9, 2, -1);
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghij"), 10, 0, 0);
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghij"), 10, 1, 0);
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghij"), 11, 0, 0);
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghijklmnopqrst"), 0, 0, 0);
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghijklmnopqrst"), 0, 1, -1);
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghijklmnopqrst"), 0, 10, -10);
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghijklmnopqrst"), 0, 19, -19);
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghijklmnopqrst"), 0, 20, -20);
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghijklmnopqrst"), 0, 21, -20);
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghijklmnopqrst"), 1, 0, 0);
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghijklmnopqrst"), 1, 1, -1);
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghijklmnopqrst"), 1, 9, -9);
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghijklmnopqrst"), 1, 18, -18);
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghijklmnopqrst"), 1, 19, -19);
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghijklmnopqrst"), 1, 20, -19);
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghijklmnopqrst"), 10, 0, 0);
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghijklmnopqrst"), 10, 1, -1);
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghijklmnopqrst"), 10, 5, -5);
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghijklmnopqrst"), 10, 9, -9);
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghijklmnopqrst"), 10, 10, -10);
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghijklmnopqrst"), 10, 11, -10);
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghijklmnopqrst"), 19, 0, 0);
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghijklmnopqrst"), 19, 1, -1);
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghijklmnopqrst"), 19, 2, -1);
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghijklmnopqrst"), 20, 0, 0);
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghijklmnopqrst"), 20, 1, 0);
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghijklmnopqrst"), 20, 1, SV(""), 0, 0, 0);
- test(S("abcdefghijklmnopqrst"), 20, 1, SV(""), 0, 1, 0);
- test(S("abcdefghijklmnopqrst"), 20, 1, SV(""), 1, 0, 0);
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcde"), 0, 0, 0);
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcde"), 0, 1, -1);
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcde"), 0, 2, -2);
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcde"), 0, 4, -4);
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcde"), 0, 5, -5);
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcde"), 0, 6, -5);
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcde"), 1, 0, 0);
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcde"), 1, 1, -1);
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcde"), 1, 2, -2);
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcde"), 1, 3, -3);
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcde"), 1, 4, -4);
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcde"), 1, 5, -4);
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcde"), 2, 0, 0);
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcde"), 2, 1, -1);
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcde"), 2, 2, -2);
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcde"), 2, 3, -3);
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcde"), 2, 4, -3);
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcde"), 4, 0, 0);
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcde"), 4, 1, -1);
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcde"), 4, 2, -1);
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcde"), 5, 0, 0);
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcde"), 5, 1, 0);
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcde"), 6, 0, 0);
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghij"), 0, 0, 0);
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghij"), 0, 1, -1);
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghij"), 0, 5, -5);
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghij"), 0, 9, -9);
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghij"), 0, 10, -10);
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghij"), 0, 11, -10);
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghij"), 1, 0, 0);
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghij"), 1, 1, -1);
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghij"), 1, 4, -4);
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghij"), 1, 8, -8);
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghij"), 1, 9, -9);
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghij"), 1, 10, -9);
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghij"), 5, 0, 0);
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghij"), 5, 1, -1);
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghij"), 5, 2, -2);
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghij"), 5, 4, -4);
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghij"), 5, 5, -5);
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghij"), 5, 6, -5);
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghij"), 9, 0, 0);
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghij"), 9, 1, -1);
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghij"), 9, 2, -1);
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghij"), 10, 0, 0);
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghij"), 10, 1, 0);
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghij"), 11, 0, 0);
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghijklmnopqrst"), 0, 0, 0);
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghijklmnopqrst"), 0, 1, -1);
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghijklmnopqrst"), 0, 10, -10);
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghijklmnopqrst"), 0, 19, -19);
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghijklmnopqrst"), 0, 20, -20);
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghijklmnopqrst"), 0, 21, -20);
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghijklmnopqrst"), 1, 0, 0);
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghijklmnopqrst"), 1, 1, -1);
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghijklmnopqrst"), 1, 9, -9);
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghijklmnopqrst"), 1, 18, -18);
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghijklmnopqrst"), 1, 19, -19);
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghijklmnopqrst"), 1, 20, -19);
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghijklmnopqrst"), 10, 0, 0);
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghijklmnopqrst"), 10, 1, -1);
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghijklmnopqrst"), 10, 5, -5);
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghijklmnopqrst"), 10, 9, -9);
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghijklmnopqrst"), 10, 10, -10);
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghijklmnopqrst"), 10, 11, -10);
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghijklmnopqrst"), 19, 0, 0);
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghijklmnopqrst"), 19, 1, -1);
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghijklmnopqrst"), 19, 2, -1);
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghijklmnopqrst"), 20, 0, 0);
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test53() {
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghij"), 9, 2, -1);
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghij"), 10, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghij"), 10, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghijklmnopqrst"), 0, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghijklmnopqrst"), 0, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghijklmnopqrst"), 0, 10, -10);
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghijklmnopqrst"), 0, 19, -19);
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghijklmnopqrst"), 0, 20, -20);
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghijklmnopqrst"), 0, 21, -20);
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghijklmnopqrst"), 1, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghijklmnopqrst"), 1, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghijklmnopqrst"), 1, 9, -9);
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghijklmnopqrst"), 1, 18, -18);
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghijklmnopqrst"), 1, 19, -19);
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghijklmnopqrst"), 1, 20, -19);
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghijklmnopqrst"), 10, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghijklmnopqrst"), 10, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghijklmnopqrst"), 10, 5, -5);
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghijklmnopqrst"), 10, 9, -9);
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghijklmnopqrst"), 10, 10, -10);
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghijklmnopqrst"), 10, 11, -10);
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghijklmnopqrst"), 19, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghijklmnopqrst"), 19, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghijklmnopqrst"), 19, 2, -1);
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghijklmnopqrst"), 20, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghijklmnopqrst"), 20, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV(""), 0, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV(""), 0, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV(""), 1, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcde"), 0, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcde"), 0, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcde"), 0, 2, -2);
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcde"), 0, 4, -4);
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcde"), 0, 5, -5);
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcde"), 0, 6, -5);
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcde"), 1, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcde"), 1, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcde"), 1, 2, -2);
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcde"), 1, 3, -3);
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcde"), 1, 4, -4);
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcde"), 1, 5, -4);
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcde"), 2, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcde"), 2, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcde"), 2, 2, -2);
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcde"), 2, 3, -3);
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcde"), 2, 4, -3);
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcde"), 4, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcde"), 4, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcde"), 4, 2, -1);
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcde"), 5, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcde"), 5, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcde"), 6, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghij"), 0, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghij"), 0, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghij"), 0, 5, -5);
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghij"), 0, 9, -9);
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghij"), 0, 10, -10);
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghij"), 0, 11, -10);
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghij"), 1, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghij"), 1, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghij"), 1, 4, -4);
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghij"), 1, 8, -8);
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghij"), 1, 9, -9);
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghij"), 1, 10, -9);
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghij"), 5, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghij"), 5, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghij"), 5, 2, -2);
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghij"), 5, 4, -4);
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghij"), 5, 5, -5);
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghij"), 5, 6, -5);
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghij"), 9, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghij"), 9, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghij"), 9, 2, -1);
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghij"), 10, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghij"), 10, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghijklmnopqrst"), 0, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghijklmnopqrst"), 0, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghijklmnopqrst"), 0, 10, -10);
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghijklmnopqrst"), 0, 19, -19);
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghijklmnopqrst"), 0, 20, -20);
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghijklmnopqrst"), 0, 21, -20);
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghijklmnopqrst"), 1, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghijklmnopqrst"), 1, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghijklmnopqrst"), 1, 9, -9);
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghijklmnopqrst"), 1, 18, -18);
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghijklmnopqrst"), 1, 19, -19);
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghijklmnopqrst"), 1, 20, -19);
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghijklmnopqrst"), 10, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghijklmnopqrst"), 10, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghijklmnopqrst"), 10, 5, -5);
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghijklmnopqrst"), 10, 9, -9);
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghijklmnopqrst"), 10, 10, -10);
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghijklmnopqrst"), 10, 11, -10);
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghijklmnopqrst"), 19, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghijklmnopqrst"), 19, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghijklmnopqrst"), 19, 2, -1);
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghijklmnopqrst"), 20, 0, 0);
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test54()
-{
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghijklmnopqrst"), 20, 1, 0);
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, SV(""), 0, 0, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, SV(""), 0, 1, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, SV(""), 1, 0, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcde"), 0, 0, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcde"), 0, 1, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcde"), 0, 2, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcde"), 0, 4, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcde"), 0, 5, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcde"), 0, 6, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcde"), 1, 0, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcde"), 1, 1, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcde"), 1, 2, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcde"), 1, 3, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcde"), 1, 4, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcde"), 1, 5, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcde"), 2, 0, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcde"), 2, 1, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcde"), 2, 2, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcde"), 2, 3, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcde"), 2, 4, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcde"), 4, 0, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcde"), 4, 1, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcde"), 4, 2, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcde"), 5, 0, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcde"), 5, 1, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcde"), 6, 0, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghij"), 0, 0, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghij"), 0, 1, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghij"), 0, 5, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghij"), 0, 9, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghij"), 0, 10, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghij"), 0, 11, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghij"), 1, 0, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghij"), 1, 1, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghij"), 1, 4, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghij"), 1, 8, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghij"), 1, 9, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghij"), 1, 10, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghij"), 5, 0, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghij"), 5, 1, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghij"), 5, 2, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghij"), 5, 4, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghij"), 5, 5, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghij"), 5, 6, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghij"), 9, 0, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghij"), 9, 1, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghij"), 9, 2, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghij"), 10, 0, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghij"), 10, 1, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghij"), 11, 0, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghijklmnopqrst"), 0, 0, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghijklmnopqrst"), 0, 1, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghijklmnopqrst"), 0, 10, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghijklmnopqrst"), 0, 19, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghijklmnopqrst"), 0, 20, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghijklmnopqrst"), 0, 21, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghijklmnopqrst"), 1, 0, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghijklmnopqrst"), 1, 1, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghijklmnopqrst"), 1, 9, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghijklmnopqrst"), 1, 18, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghijklmnopqrst"), 1, 19, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghijklmnopqrst"), 1, 20, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghijklmnopqrst"), 10, 0, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghijklmnopqrst"), 10, 1, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghijklmnopqrst"), 10, 5, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghijklmnopqrst"), 10, 9, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghijklmnopqrst"), 10, 10, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghijklmnopqrst"), 10, 11, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghijklmnopqrst"), 19, 0, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghijklmnopqrst"), 19, 1, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghijklmnopqrst"), 19, 2, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghijklmnopqrst"), 20, 0, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghijklmnopqrst"), 20, 1, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghijklmnopqrst"), 21, 0, 0);
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test54() {
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghijklmnopqrst"), 20, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV(""), 0, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV(""), 0, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV(""), 1, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcde"), 0, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcde"), 0, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcde"), 0, 2, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcde"), 0, 4, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcde"), 0, 5, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcde"), 0, 6, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcde"), 1, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcde"), 1, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcde"), 1, 2, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcde"), 1, 3, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcde"), 1, 4, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcde"), 1, 5, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcde"), 2, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcde"), 2, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcde"), 2, 2, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcde"), 2, 3, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcde"), 2, 4, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcde"), 4, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcde"), 4, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcde"), 4, 2, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcde"), 5, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcde"), 5, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcde"), 6, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghij"), 0, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghij"), 0, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghij"), 0, 5, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghij"), 0, 9, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghij"), 0, 10, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghij"), 0, 11, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghij"), 1, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghij"), 1, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghij"), 1, 4, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghij"), 1, 8, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghij"), 1, 9, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghij"), 1, 10, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghij"), 5, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghij"), 5, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghij"), 5, 2, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghij"), 5, 4, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghij"), 5, 5, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghij"), 5, 6, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghij"), 9, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghij"), 9, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghij"), 9, 2, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghij"), 10, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghij"), 10, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghijklmnopqrst"), 0, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghijklmnopqrst"), 0, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghijklmnopqrst"), 0, 10, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghijklmnopqrst"), 0, 19, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghijklmnopqrst"), 0, 20, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghijklmnopqrst"), 0, 21, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghijklmnopqrst"), 1, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghijklmnopqrst"), 1, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghijklmnopqrst"), 1, 9, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghijklmnopqrst"), 1, 18, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghijklmnopqrst"), 1, 19, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghijklmnopqrst"), 1, 20, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghijklmnopqrst"), 10, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghijklmnopqrst"), 10, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghijklmnopqrst"), 10, 5, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghijklmnopqrst"), 10, 9, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghijklmnopqrst"), 10, 10, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghijklmnopqrst"), 10, 11, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghijklmnopqrst"), 19, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghijklmnopqrst"), 19, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghijklmnopqrst"), 19, 2, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghijklmnopqrst"), 20, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghijklmnopqrst"), 20, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghijklmnopqrst"), 21, 0, 0);
+
+ return true;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 bool test55()
-{
- test_npos(S(""), 0, 0, SV(""), 0, 0);
- test_npos(S(""), 0, 0, SV("abcde"), 0, -5);
- test_npos(S("abcde"), 0, 0, SV("abcdefghij"), 0, -10);
- test_npos(S("abcde"), 0, 0, SV("abcdefghij"), 1, -9);
- test_npos(S("abcde"), 0, 0, SV("abcdefghij"), 5, -5);
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test55() {
+ test_npos(S(""), 0, 0, SV(""), 0, 0);
+ test_npos(S(""), 0, 0, SV("abcde"), 0, -5);
+ test_npos(S("abcde"), 0, 0, SV("abcdefghij"), 0, -10);
+ test_npos(S("abcde"), 0, 0, SV("abcdefghij"), 1, -9);
+ test_npos(S("abcde"), 0, 0, SV("abcdefghij"), 5, -5);
+
+ return true;
}
template <class S, class SV>
TEST_CONSTEXPR_CXX20 bool test56() {
- S s = "MNOP";
- SV sv = "CDEF";
+ S s = "MNOP";
+ SV sv = "CDEF";
char arr[] = "MNOP";
-// calls compare(pos, n1, const char *, 0)
+ // calls compare(pos, n1, const char *, 0)
assert(s.compare(0, 4, "QRST", 0) > 0);
-// calls compare(pos, n1, string("QRST"), 0, npos)
+ // calls compare(pos, n1, string("QRST"), 0, npos)
assert(s.compare(0, 4, "QRST", 0, std::string::npos) < 0);
-// calls compare(pos, n1, T, 0, npos)
+ // calls compare(pos, n1, T, 0, npos)
assert(s.compare(0, 4, sv, 0) > 0);
-// calls compare(pos, n1, T, 0, npos)
+ // calls compare(pos, n1, T, 0, npos)
assert(s.compare(0, 4, sv, 0, std::string::npos) > 0);
-// calls compare(pos, n1, const char *, 0)
+ // calls compare(pos, n1, const char *, 0)
assert(s.compare(0, 4, arr, 0) > 0);
-// calls compare(size, size, string(arr), 0, npos)
+ // calls compare(size, size, string(arr), 0, npos)
assert(s.compare(0, 4, arr, 0, std::string::npos) == 0);
return true;
@@ -6100,8 +6037,7 @@ void test() {
#endif
}
-int main(int, char**)
-{
+int main(int, char**) {
test<std::string, std::string_view>();
#if TEST_STD_VER >= 11
test<std::basic_string<char, std::char_traits<char>, min_allocator<char>>,
diff --git a/libcxx/test/std/strings/basic.string/string.ops/string_compare/size_size_pointer.pass.cpp b/libcxx/test/std/strings/basic.string/string.ops/string_compare/size_size_pointer.pass.cpp
index 0e0856b4c096c66..46d55ae56bdec95 100644
--- a/libcxx/test/std/strings/basic.string/string.ops/string_compare/size_size_pointer.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.ops/string_compare/size_size_pointer.pass.cpp
@@ -18,347 +18,337 @@
#include "test_macros.h"
-TEST_CONSTEXPR_CXX20 int sign(int x)
-{
- if (x == 0)
- return 0;
- if (x < 0)
- return -1;
- return 1;
+TEST_CONSTEXPR_CXX20 int sign(int x) {
+ if (x == 0)
+ return 0;
+ if (x < 0)
+ return -1;
+ return 1;
}
template <class S>
TEST_CONSTEXPR_CXX20 void
-test(const S& s, typename S::size_type pos1, typename S::size_type n1,
- const typename S::value_type* str, int x)
-{
- if (pos1 <= s.size())
- assert(sign(s.compare(pos1, n1, str)) == sign(x));
+test(const S& s, typename S::size_type pos1, typename S::size_type n1, const typename S::value_type* str, int x) {
+ if (pos1 <= s.size())
+ assert(sign(s.compare(pos1, n1, str)) == sign(x));
#ifndef TEST_HAS_NO_EXCEPTIONS
- else if (!TEST_IS_CONSTANT_EVALUATED)
- {
- try
- {
- TEST_IGNORE_NODISCARD s.compare(pos1, n1, str);
- assert(false);
- }
- catch (std::out_of_range&)
- {
- assert(pos1 > s.size());
- }
+ else if (!TEST_IS_CONSTANT_EVALUATED) {
+ try {
+ TEST_IGNORE_NODISCARD s.compare(pos1, n1, str);
+ assert(false);
+ } catch (std::out_of_range&) {
+ assert(pos1 > s.size());
}
+ }
#endif
}
template <class S>
-TEST_CONSTEXPR_CXX20 void test0()
-{
- test(S(""), 0, 0, "", 0);
- test(S(""), 0, 0, "abcde", -5);
- test(S(""), 0, 0, "abcdefghij", -10);
- test(S(""), 0, 0, "abcdefghijklmnopqrst", -20);
- test(S(""), 0, 1, "", 0);
- test(S(""), 0, 1, "abcde", -5);
- test(S(""), 0, 1, "abcdefghij", -10);
- test(S(""), 0, 1, "abcdefghijklmnopqrst", -20);
- test(S(""), 1, 0, "", 0);
- test(S(""), 1, 0, "abcde", 0);
- test(S(""), 1, 0, "abcdefghij", 0);
- test(S(""), 1, 0, "abcdefghijklmnopqrst", 0);
- test(S("abcde"), 0, 0, "", 0);
- test(S("abcde"), 0, 0, "abcde", -5);
- test(S("abcde"), 0, 0, "abcdefghij", -10);
- test(S("abcde"), 0, 0, "abcdefghijklmnopqrst", -20);
- test(S("abcde"), 0, 1, "", 1);
- test(S("abcde"), 0, 1, "abcde", -4);
- test(S("abcde"), 0, 1, "abcdefghij", -9);
- test(S("abcde"), 0, 1, "abcdefghijklmnopqrst", -19);
- test(S("abcde"), 0, 2, "", 2);
- test(S("abcde"), 0, 2, "abcde", -3);
- test(S("abcde"), 0, 2, "abcdefghij", -8);
- test(S("abcde"), 0, 2, "abcdefghijklmnopqrst", -18);
- test(S("abcde"), 0, 4, "", 4);
- test(S("abcde"), 0, 4, "abcde", -1);
- test(S("abcde"), 0, 4, "abcdefghij", -6);
- test(S("abcde"), 0, 4, "abcdefghijklmnopqrst", -16);
- test(S("abcde"), 0, 5, "", 5);
- test(S("abcde"), 0, 5, "abcde", 0);
- test(S("abcde"), 0, 5, "abcdefghij", -5);
- test(S("abcde"), 0, 5, "abcdefghijklmnopqrst", -15);
- test(S("abcde"), 0, 6, "", 5);
- test(S("abcde"), 0, 6, "abcde", 0);
- test(S("abcde"), 0, 6, "abcdefghij", -5);
- test(S("abcde"), 0, 6, "abcdefghijklmnopqrst", -15);
- test(S("abcde"), 1, 0, "", 0);
- test(S("abcde"), 1, 0, "abcde", -5);
- test(S("abcde"), 1, 0, "abcdefghij", -10);
- test(S("abcde"), 1, 0, "abcdefghijklmnopqrst", -20);
- test(S("abcde"), 1, 1, "", 1);
- test(S("abcde"), 1, 1, "abcde", 1);
- test(S("abcde"), 1, 1, "abcdefghij", 1);
- test(S("abcde"), 1, 1, "abcdefghijklmnopqrst", 1);
- test(S("abcde"), 1, 2, "", 2);
- test(S("abcde"), 1, 2, "abcde", 1);
- test(S("abcde"), 1, 2, "abcdefghij", 1);
- test(S("abcde"), 1, 2, "abcdefghijklmnopqrst", 1);
- test(S("abcde"), 1, 3, "", 3);
- test(S("abcde"), 1, 3, "abcde", 1);
- test(S("abcde"), 1, 3, "abcdefghij", 1);
- test(S("abcde"), 1, 3, "abcdefghijklmnopqrst", 1);
- test(S("abcde"), 1, 4, "", 4);
- test(S("abcde"), 1, 4, "abcde", 1);
- test(S("abcde"), 1, 4, "abcdefghij", 1);
- test(S("abcde"), 1, 4, "abcdefghijklmnopqrst", 1);
- test(S("abcde"), 1, 5, "", 4);
- test(S("abcde"), 1, 5, "abcde", 1);
- test(S("abcde"), 1, 5, "abcdefghij", 1);
- test(S("abcde"), 1, 5, "abcdefghijklmnopqrst", 1);
- test(S("abcde"), 2, 0, "", 0);
- test(S("abcde"), 2, 0, "abcde", -5);
- test(S("abcde"), 2, 0, "abcdefghij", -10);
- test(S("abcde"), 2, 0, "abcdefghijklmnopqrst", -20);
- test(S("abcde"), 2, 1, "", 1);
- test(S("abcde"), 2, 1, "abcde", 2);
- test(S("abcde"), 2, 1, "abcdefghij", 2);
- test(S("abcde"), 2, 1, "abcdefghijklmnopqrst", 2);
- test(S("abcde"), 2, 2, "", 2);
- test(S("abcde"), 2, 2, "abcde", 2);
- test(S("abcde"), 2, 2, "abcdefghij", 2);
- test(S("abcde"), 2, 2, "abcdefghijklmnopqrst", 2);
- test(S("abcde"), 2, 3, "", 3);
- test(S("abcde"), 2, 3, "abcde", 2);
- test(S("abcde"), 2, 3, "abcdefghij", 2);
- test(S("abcde"), 2, 3, "abcdefghijklmnopqrst", 2);
- test(S("abcde"), 2, 4, "", 3);
- test(S("abcde"), 2, 4, "abcde", 2);
- test(S("abcde"), 2, 4, "abcdefghij", 2);
- test(S("abcde"), 2, 4, "abcdefghijklmnopqrst", 2);
- test(S("abcde"), 4, 0, "", 0);
- test(S("abcde"), 4, 0, "abcde", -5);
- test(S("abcde"), 4, 0, "abcdefghij", -10);
- test(S("abcde"), 4, 0, "abcdefghijklmnopqrst", -20);
- test(S("abcde"), 4, 1, "", 1);
- test(S("abcde"), 4, 1, "abcde", 4);
- test(S("abcde"), 4, 1, "abcdefghij", 4);
- test(S("abcde"), 4, 1, "abcdefghijklmnopqrst", 4);
- test(S("abcde"), 4, 2, "", 1);
- test(S("abcde"), 4, 2, "abcde", 4);
- test(S("abcde"), 4, 2, "abcdefghij", 4);
- test(S("abcde"), 4, 2, "abcdefghijklmnopqrst", 4);
- test(S("abcde"), 5, 0, "", 0);
- test(S("abcde"), 5, 0, "abcde", -5);
- test(S("abcde"), 5, 0, "abcdefghij", -10);
- test(S("abcde"), 5, 0, "abcdefghijklmnopqrst", -20);
- test(S("abcde"), 5, 1, "", 0);
- test(S("abcde"), 5, 1, "abcde", -5);
- test(S("abcde"), 5, 1, "abcdefghij", -10);
- test(S("abcde"), 5, 1, "abcdefghijklmnopqrst", -20);
+TEST_CONSTEXPR_CXX20 void test0() {
+ test(S(""), 0, 0, "", 0);
+ test(S(""), 0, 0, "abcde", -5);
+ test(S(""), 0, 0, "abcdefghij", -10);
+ test(S(""), 0, 0, "abcdefghijklmnopqrst", -20);
+ test(S(""), 0, 1, "", 0);
+ test(S(""), 0, 1, "abcde", -5);
+ test(S(""), 0, 1, "abcdefghij", -10);
+ test(S(""), 0, 1, "abcdefghijklmnopqrst", -20);
+ test(S(""), 1, 0, "", 0);
+ test(S(""), 1, 0, "abcde", 0);
+ test(S(""), 1, 0, "abcdefghij", 0);
+ test(S(""), 1, 0, "abcdefghijklmnopqrst", 0);
+ test(S("abcde"), 0, 0, "", 0);
+ test(S("abcde"), 0, 0, "abcde", -5);
+ test(S("abcde"), 0, 0, "abcdefghij", -10);
+ test(S("abcde"), 0, 0, "abcdefghijklmnopqrst", -20);
+ test(S("abcde"), 0, 1, "", 1);
+ test(S("abcde"), 0, 1, "abcde", -4);
+ test(S("abcde"), 0, 1, "abcdefghij", -9);
+ test(S("abcde"), 0, 1, "abcdefghijklmnopqrst", -19);
+ test(S("abcde"), 0, 2, "", 2);
+ test(S("abcde"), 0, 2, "abcde", -3);
+ test(S("abcde"), 0, 2, "abcdefghij", -8);
+ test(S("abcde"), 0, 2, "abcdefghijklmnopqrst", -18);
+ test(S("abcde"), 0, 4, "", 4);
+ test(S("abcde"), 0, 4, "abcde", -1);
+ test(S("abcde"), 0, 4, "abcdefghij", -6);
+ test(S("abcde"), 0, 4, "abcdefghijklmnopqrst", -16);
+ test(S("abcde"), 0, 5, "", 5);
+ test(S("abcde"), 0, 5, "abcde", 0);
+ test(S("abcde"), 0, 5, "abcdefghij", -5);
+ test(S("abcde"), 0, 5, "abcdefghijklmnopqrst", -15);
+ test(S("abcde"), 0, 6, "", 5);
+ test(S("abcde"), 0, 6, "abcde", 0);
+ test(S("abcde"), 0, 6, "abcdefghij", -5);
+ test(S("abcde"), 0, 6, "abcdefghijklmnopqrst", -15);
+ test(S("abcde"), 1, 0, "", 0);
+ test(S("abcde"), 1, 0, "abcde", -5);
+ test(S("abcde"), 1, 0, "abcdefghij", -10);
+ test(S("abcde"), 1, 0, "abcdefghijklmnopqrst", -20);
+ test(S("abcde"), 1, 1, "", 1);
+ test(S("abcde"), 1, 1, "abcde", 1);
+ test(S("abcde"), 1, 1, "abcdefghij", 1);
+ test(S("abcde"), 1, 1, "abcdefghijklmnopqrst", 1);
+ test(S("abcde"), 1, 2, "", 2);
+ test(S("abcde"), 1, 2, "abcde", 1);
+ test(S("abcde"), 1, 2, "abcdefghij", 1);
+ test(S("abcde"), 1, 2, "abcdefghijklmnopqrst", 1);
+ test(S("abcde"), 1, 3, "", 3);
+ test(S("abcde"), 1, 3, "abcde", 1);
+ test(S("abcde"), 1, 3, "abcdefghij", 1);
+ test(S("abcde"), 1, 3, "abcdefghijklmnopqrst", 1);
+ test(S("abcde"), 1, 4, "", 4);
+ test(S("abcde"), 1, 4, "abcde", 1);
+ test(S("abcde"), 1, 4, "abcdefghij", 1);
+ test(S("abcde"), 1, 4, "abcdefghijklmnopqrst", 1);
+ test(S("abcde"), 1, 5, "", 4);
+ test(S("abcde"), 1, 5, "abcde", 1);
+ test(S("abcde"), 1, 5, "abcdefghij", 1);
+ test(S("abcde"), 1, 5, "abcdefghijklmnopqrst", 1);
+ test(S("abcde"), 2, 0, "", 0);
+ test(S("abcde"), 2, 0, "abcde", -5);
+ test(S("abcde"), 2, 0, "abcdefghij", -10);
+ test(S("abcde"), 2, 0, "abcdefghijklmnopqrst", -20);
+ test(S("abcde"), 2, 1, "", 1);
+ test(S("abcde"), 2, 1, "abcde", 2);
+ test(S("abcde"), 2, 1, "abcdefghij", 2);
+ test(S("abcde"), 2, 1, "abcdefghijklmnopqrst", 2);
+ test(S("abcde"), 2, 2, "", 2);
+ test(S("abcde"), 2, 2, "abcde", 2);
+ test(S("abcde"), 2, 2, "abcdefghij", 2);
+ test(S("abcde"), 2, 2, "abcdefghijklmnopqrst", 2);
+ test(S("abcde"), 2, 3, "", 3);
+ test(S("abcde"), 2, 3, "abcde", 2);
+ test(S("abcde"), 2, 3, "abcdefghij", 2);
+ test(S("abcde"), 2, 3, "abcdefghijklmnopqrst", 2);
+ test(S("abcde"), 2, 4, "", 3);
+ test(S("abcde"), 2, 4, "abcde", 2);
+ test(S("abcde"), 2, 4, "abcdefghij", 2);
+ test(S("abcde"), 2, 4, "abcdefghijklmnopqrst", 2);
+ test(S("abcde"), 4, 0, "", 0);
+ test(S("abcde"), 4, 0, "abcde", -5);
+ test(S("abcde"), 4, 0, "abcdefghij", -10);
+ test(S("abcde"), 4, 0, "abcdefghijklmnopqrst", -20);
+ test(S("abcde"), 4, 1, "", 1);
+ test(S("abcde"), 4, 1, "abcde", 4);
+ test(S("abcde"), 4, 1, "abcdefghij", 4);
+ test(S("abcde"), 4, 1, "abcdefghijklmnopqrst", 4);
+ test(S("abcde"), 4, 2, "", 1);
+ test(S("abcde"), 4, 2, "abcde", 4);
+ test(S("abcde"), 4, 2, "abcdefghij", 4);
+ test(S("abcde"), 4, 2, "abcdefghijklmnopqrst", 4);
+ test(S("abcde"), 5, 0, "", 0);
+ test(S("abcde"), 5, 0, "abcde", -5);
+ test(S("abcde"), 5, 0, "abcdefghij", -10);
+ test(S("abcde"), 5, 0, "abcdefghijklmnopqrst", -20);
+ test(S("abcde"), 5, 1, "", 0);
+ test(S("abcde"), 5, 1, "abcde", -5);
+ test(S("abcde"), 5, 1, "abcdefghij", -10);
+ test(S("abcde"), 5, 1, "abcdefghijklmnopqrst", -20);
}
template <class S>
-TEST_CONSTEXPR_CXX20 void test1()
-{
- test(S("abcde"), 6, 0, "", 0);
- test(S("abcde"), 6, 0, "abcde", 0);
- test(S("abcde"), 6, 0, "abcdefghij", 0);
- test(S("abcde"), 6, 0, "abcdefghijklmnopqrst", 0);
- test(S("abcdefghij"), 0, 0, "", 0);
- test(S("abcdefghij"), 0, 0, "abcde", -5);
- test(S("abcdefghij"), 0, 0, "abcdefghij", -10);
- test(S("abcdefghij"), 0, 0, "abcdefghijklmnopqrst", -20);
- test(S("abcdefghij"), 0, 1, "", 1);
- test(S("abcdefghij"), 0, 1, "abcde", -4);
- test(S("abcdefghij"), 0, 1, "abcdefghij", -9);
- test(S("abcdefghij"), 0, 1, "abcdefghijklmnopqrst", -19);
- test(S("abcdefghij"), 0, 5, "", 5);
- test(S("abcdefghij"), 0, 5, "abcde", 0);
- test(S("abcdefghij"), 0, 5, "abcdefghij", -5);
- test(S("abcdefghij"), 0, 5, "abcdefghijklmnopqrst", -15);
- test(S("abcdefghij"), 0, 9, "", 9);
- test(S("abcdefghij"), 0, 9, "abcde", 4);
- test(S("abcdefghij"), 0, 9, "abcdefghij", -1);
- test(S("abcdefghij"), 0, 9, "abcdefghijklmnopqrst", -11);
- test(S("abcdefghij"), 0, 10, "", 10);
- test(S("abcdefghij"), 0, 10, "abcde", 5);
- test(S("abcdefghij"), 0, 10, "abcdefghij", 0);
- test(S("abcdefghij"), 0, 10, "abcdefghijklmnopqrst", -10);
- test(S("abcdefghij"), 0, 11, "", 10);
- test(S("abcdefghij"), 0, 11, "abcde", 5);
- test(S("abcdefghij"), 0, 11, "abcdefghij", 0);
- test(S("abcdefghij"), 0, 11, "abcdefghijklmnopqrst", -10);
- test(S("abcdefghij"), 1, 0, "", 0);
- test(S("abcdefghij"), 1, 0, "abcde", -5);
- test(S("abcdefghij"), 1, 0, "abcdefghij", -10);
- test(S("abcdefghij"), 1, 0, "abcdefghijklmnopqrst", -20);
- test(S("abcdefghij"), 1, 1, "", 1);
- test(S("abcdefghij"), 1, 1, "abcde", 1);
- test(S("abcdefghij"), 1, 1, "abcdefghij", 1);
- test(S("abcdefghij"), 1, 1, "abcdefghijklmnopqrst", 1);
- test(S("abcdefghij"), 1, 4, "", 4);
- test(S("abcdefghij"), 1, 4, "abcde", 1);
- test(S("abcdefghij"), 1, 4, "abcdefghij", 1);
- test(S("abcdefghij"), 1, 4, "abcdefghijklmnopqrst", 1);
- test(S("abcdefghij"), 1, 8, "", 8);
- test(S("abcdefghij"), 1, 8, "abcde", 1);
- test(S("abcdefghij"), 1, 8, "abcdefghij", 1);
- test(S("abcdefghij"), 1, 8, "abcdefghijklmnopqrst", 1);
- test(S("abcdefghij"), 1, 9, "", 9);
- test(S("abcdefghij"), 1, 9, "abcde", 1);
- test(S("abcdefghij"), 1, 9, "abcdefghij", 1);
- test(S("abcdefghij"), 1, 9, "abcdefghijklmnopqrst", 1);
- test(S("abcdefghij"), 1, 10, "", 9);
- test(S("abcdefghij"), 1, 10, "abcde", 1);
- test(S("abcdefghij"), 1, 10, "abcdefghij", 1);
- test(S("abcdefghij"), 1, 10, "abcdefghijklmnopqrst", 1);
- test(S("abcdefghij"), 5, 0, "", 0);
- test(S("abcdefghij"), 5, 0, "abcde", -5);
- test(S("abcdefghij"), 5, 0, "abcdefghij", -10);
- test(S("abcdefghij"), 5, 0, "abcdefghijklmnopqrst", -20);
- test(S("abcdefghij"), 5, 1, "", 1);
- test(S("abcdefghij"), 5, 1, "abcde", 5);
- test(S("abcdefghij"), 5, 1, "abcdefghij", 5);
- test(S("abcdefghij"), 5, 1, "abcdefghijklmnopqrst", 5);
- test(S("abcdefghij"), 5, 2, "", 2);
- test(S("abcdefghij"), 5, 2, "abcde", 5);
- test(S("abcdefghij"), 5, 2, "abcdefghij", 5);
- test(S("abcdefghij"), 5, 2, "abcdefghijklmnopqrst", 5);
- test(S("abcdefghij"), 5, 4, "", 4);
- test(S("abcdefghij"), 5, 4, "abcde", 5);
- test(S("abcdefghij"), 5, 4, "abcdefghij", 5);
- test(S("abcdefghij"), 5, 4, "abcdefghijklmnopqrst", 5);
- test(S("abcdefghij"), 5, 5, "", 5);
- test(S("abcdefghij"), 5, 5, "abcde", 5);
- test(S("abcdefghij"), 5, 5, "abcdefghij", 5);
- test(S("abcdefghij"), 5, 5, "abcdefghijklmnopqrst", 5);
- test(S("abcdefghij"), 5, 6, "", 5);
- test(S("abcdefghij"), 5, 6, "abcde", 5);
- test(S("abcdefghij"), 5, 6, "abcdefghij", 5);
- test(S("abcdefghij"), 5, 6, "abcdefghijklmnopqrst", 5);
- test(S("abcdefghij"), 9, 0, "", 0);
- test(S("abcdefghij"), 9, 0, "abcde", -5);
- test(S("abcdefghij"), 9, 0, "abcdefghij", -10);
- test(S("abcdefghij"), 9, 0, "abcdefghijklmnopqrst", -20);
- test(S("abcdefghij"), 9, 1, "", 1);
- test(S("abcdefghij"), 9, 1, "abcde", 9);
- test(S("abcdefghij"), 9, 1, "abcdefghij", 9);
- test(S("abcdefghij"), 9, 1, "abcdefghijklmnopqrst", 9);
- test(S("abcdefghij"), 9, 2, "", 1);
- test(S("abcdefghij"), 9, 2, "abcde", 9);
- test(S("abcdefghij"), 9, 2, "abcdefghij", 9);
- test(S("abcdefghij"), 9, 2, "abcdefghijklmnopqrst", 9);
- test(S("abcdefghij"), 10, 0, "", 0);
- test(S("abcdefghij"), 10, 0, "abcde", -5);
- test(S("abcdefghij"), 10, 0, "abcdefghij", -10);
- test(S("abcdefghij"), 10, 0, "abcdefghijklmnopqrst", -20);
- test(S("abcdefghij"), 10, 1, "", 0);
- test(S("abcdefghij"), 10, 1, "abcde", -5);
- test(S("abcdefghij"), 10, 1, "abcdefghij", -10);
- test(S("abcdefghij"), 10, 1, "abcdefghijklmnopqrst", -20);
- test(S("abcdefghij"), 11, 0, "", 0);
- test(S("abcdefghij"), 11, 0, "abcde", 0);
- test(S("abcdefghij"), 11, 0, "abcdefghij", 0);
- test(S("abcdefghij"), 11, 0, "abcdefghijklmnopqrst", 0);
+TEST_CONSTEXPR_CXX20 void test1() {
+ test(S("abcde"), 6, 0, "", 0);
+ test(S("abcde"), 6, 0, "abcde", 0);
+ test(S("abcde"), 6, 0, "abcdefghij", 0);
+ test(S("abcde"), 6, 0, "abcdefghijklmnopqrst", 0);
+ test(S("abcdefghij"), 0, 0, "", 0);
+ test(S("abcdefghij"), 0, 0, "abcde", -5);
+ test(S("abcdefghij"), 0, 0, "abcdefghij", -10);
+ test(S("abcdefghij"), 0, 0, "abcdefghijklmnopqrst", -20);
+ test(S("abcdefghij"), 0, 1, "", 1);
+ test(S("abcdefghij"), 0, 1, "abcde", -4);
+ test(S("abcdefghij"), 0, 1, "abcdefghij", -9);
+ test(S("abcdefghij"), 0, 1, "abcdefghijklmnopqrst", -19);
+ test(S("abcdefghij"), 0, 5, "", 5);
+ test(S("abcdefghij"), 0, 5, "abcde", 0);
+ test(S("abcdefghij"), 0, 5, "abcdefghij", -5);
+ test(S("abcdefghij"), 0, 5, "abcdefghijklmnopqrst", -15);
+ test(S("abcdefghij"), 0, 9, "", 9);
+ test(S("abcdefghij"), 0, 9, "abcde", 4);
+ test(S("abcdefghij"), 0, 9, "abcdefghij", -1);
+ test(S("abcdefghij"), 0, 9, "abcdefghijklmnopqrst", -11);
+ test(S("abcdefghij"), 0, 10, "", 10);
+ test(S("abcdefghij"), 0, 10, "abcde", 5);
+ test(S("abcdefghij"), 0, 10, "abcdefghij", 0);
+ test(S("abcdefghij"), 0, 10, "abcdefghijklmnopqrst", -10);
+ test(S("abcdefghij"), 0, 11, "", 10);
+ test(S("abcdefghij"), 0, 11, "abcde", 5);
+ test(S("abcdefghij"), 0, 11, "abcdefghij", 0);
+ test(S("abcdefghij"), 0, 11, "abcdefghijklmnopqrst", -10);
+ test(S("abcdefghij"), 1, 0, "", 0);
+ test(S("abcdefghij"), 1, 0, "abcde", -5);
+ test(S("abcdefghij"), 1, 0, "abcdefghij", -10);
+ test(S("abcdefghij"), 1, 0, "abcdefghijklmnopqrst", -20);
+ test(S("abcdefghij"), 1, 1, "", 1);
+ test(S("abcdefghij"), 1, 1, "abcde", 1);
+ test(S("abcdefghij"), 1, 1, "abcdefghij", 1);
+ test(S("abcdefghij"), 1, 1, "abcdefghijklmnopqrst", 1);
+ test(S("abcdefghij"), 1, 4, "", 4);
+ test(S("abcdefghij"), 1, 4, "abcde", 1);
+ test(S("abcdefghij"), 1, 4, "abcdefghij", 1);
+ test(S("abcdefghij"), 1, 4, "abcdefghijklmnopqrst", 1);
+ test(S("abcdefghij"), 1, 8, "", 8);
+ test(S("abcdefghij"), 1, 8, "abcde", 1);
+ test(S("abcdefghij"), 1, 8, "abcdefghij", 1);
+ test(S("abcdefghij"), 1, 8, "abcdefghijklmnopqrst", 1);
+ test(S("abcdefghij"), 1, 9, "", 9);
+ test(S("abcdefghij"), 1, 9, "abcde", 1);
+ test(S("abcdefghij"), 1, 9, "abcdefghij", 1);
+ test(S("abcdefghij"), 1, 9, "abcdefghijklmnopqrst", 1);
+ test(S("abcdefghij"), 1, 10, "", 9);
+ test(S("abcdefghij"), 1, 10, "abcde", 1);
+ test(S("abcdefghij"), 1, 10, "abcdefghij", 1);
+ test(S("abcdefghij"), 1, 10, "abcdefghijklmnopqrst", 1);
+ test(S("abcdefghij"), 5, 0, "", 0);
+ test(S("abcdefghij"), 5, 0, "abcde", -5);
+ test(S("abcdefghij"), 5, 0, "abcdefghij", -10);
+ test(S("abcdefghij"), 5, 0, "abcdefghijklmnopqrst", -20);
+ test(S("abcdefghij"), 5, 1, "", 1);
+ test(S("abcdefghij"), 5, 1, "abcde", 5);
+ test(S("abcdefghij"), 5, 1, "abcdefghij", 5);
+ test(S("abcdefghij"), 5, 1, "abcdefghijklmnopqrst", 5);
+ test(S("abcdefghij"), 5, 2, "", 2);
+ test(S("abcdefghij"), 5, 2, "abcde", 5);
+ test(S("abcdefghij"), 5, 2, "abcdefghij", 5);
+ test(S("abcdefghij"), 5, 2, "abcdefghijklmnopqrst", 5);
+ test(S("abcdefghij"), 5, 4, "", 4);
+ test(S("abcdefghij"), 5, 4, "abcde", 5);
+ test(S("abcdefghij"), 5, 4, "abcdefghij", 5);
+ test(S("abcdefghij"), 5, 4, "abcdefghijklmnopqrst", 5);
+ test(S("abcdefghij"), 5, 5, "", 5);
+ test(S("abcdefghij"), 5, 5, "abcde", 5);
+ test(S("abcdefghij"), 5, 5, "abcdefghij", 5);
+ test(S("abcdefghij"), 5, 5, "abcdefghijklmnopqrst", 5);
+ test(S("abcdefghij"), 5, 6, "", 5);
+ test(S("abcdefghij"), 5, 6, "abcde", 5);
+ test(S("abcdefghij"), 5, 6, "abcdefghij", 5);
+ test(S("abcdefghij"), 5, 6, "abcdefghijklmnopqrst", 5);
+ test(S("abcdefghij"), 9, 0, "", 0);
+ test(S("abcdefghij"), 9, 0, "abcde", -5);
+ test(S("abcdefghij"), 9, 0, "abcdefghij", -10);
+ test(S("abcdefghij"), 9, 0, "abcdefghijklmnopqrst", -20);
+ test(S("abcdefghij"), 9, 1, "", 1);
+ test(S("abcdefghij"), 9, 1, "abcde", 9);
+ test(S("abcdefghij"), 9, 1, "abcdefghij", 9);
+ test(S("abcdefghij"), 9, 1, "abcdefghijklmnopqrst", 9);
+ test(S("abcdefghij"), 9, 2, "", 1);
+ test(S("abcdefghij"), 9, 2, "abcde", 9);
+ test(S("abcdefghij"), 9, 2, "abcdefghij", 9);
+ test(S("abcdefghij"), 9, 2, "abcdefghijklmnopqrst", 9);
+ test(S("abcdefghij"), 10, 0, "", 0);
+ test(S("abcdefghij"), 10, 0, "abcde", -5);
+ test(S("abcdefghij"), 10, 0, "abcdefghij", -10);
+ test(S("abcdefghij"), 10, 0, "abcdefghijklmnopqrst", -20);
+ test(S("abcdefghij"), 10, 1, "", 0);
+ test(S("abcdefghij"), 10, 1, "abcde", -5);
+ test(S("abcdefghij"), 10, 1, "abcdefghij", -10);
+ test(S("abcdefghij"), 10, 1, "abcdefghijklmnopqrst", -20);
+ test(S("abcdefghij"), 11, 0, "", 0);
+ test(S("abcdefghij"), 11, 0, "abcde", 0);
+ test(S("abcdefghij"), 11, 0, "abcdefghij", 0);
+ test(S("abcdefghij"), 11, 0, "abcdefghijklmnopqrst", 0);
}
template <class S>
-TEST_CONSTEXPR_CXX20 void test2()
-{
- test(S("abcdefghijklmnopqrst"), 0, 0, "", 0);
- test(S("abcdefghijklmnopqrst"), 0, 0, "abcde", -5);
- test(S("abcdefghijklmnopqrst"), 0, 0, "abcdefghij", -10);
- test(S("abcdefghijklmnopqrst"), 0, 0, "abcdefghijklmnopqrst", -20);
- test(S("abcdefghijklmnopqrst"), 0, 1, "", 1);
- test(S("abcdefghijklmnopqrst"), 0, 1, "abcde", -4);
- test(S("abcdefghijklmnopqrst"), 0, 1, "abcdefghij", -9);
- test(S("abcdefghijklmnopqrst"), 0, 1, "abcdefghijklmnopqrst", -19);
- test(S("abcdefghijklmnopqrst"), 0, 10, "", 10);
- test(S("abcdefghijklmnopqrst"), 0, 10, "abcde", 5);
- test(S("abcdefghijklmnopqrst"), 0, 10, "abcdefghij", 0);
- test(S("abcdefghijklmnopqrst"), 0, 10, "abcdefghijklmnopqrst", -10);
- test(S("abcdefghijklmnopqrst"), 0, 19, "", 19);
- test(S("abcdefghijklmnopqrst"), 0, 19, "abcde", 14);
- test(S("abcdefghijklmnopqrst"), 0, 19, "abcdefghij", 9);
- test(S("abcdefghijklmnopqrst"), 0, 19, "abcdefghijklmnopqrst", -1);
- test(S("abcdefghijklmnopqrst"), 0, 20, "", 20);
- test(S("abcdefghijklmnopqrst"), 0, 20, "abcde", 15);
- test(S("abcdefghijklmnopqrst"), 0, 20, "abcdefghij", 10);
- test(S("abcdefghijklmnopqrst"), 0, 20, "abcdefghijklmnopqrst", 0);
- test(S("abcdefghijklmnopqrst"), 0, 21, "", 20);
- test(S("abcdefghijklmnopqrst"), 0, 21, "abcde", 15);
- test(S("abcdefghijklmnopqrst"), 0, 21, "abcdefghij", 10);
- test(S("abcdefghijklmnopqrst"), 0, 21, "abcdefghijklmnopqrst", 0);
- test(S("abcdefghijklmnopqrst"), 1, 0, "", 0);
- test(S("abcdefghijklmnopqrst"), 1, 0, "abcde", -5);
- test(S("abcdefghijklmnopqrst"), 1, 0, "abcdefghij", -10);
- test(S("abcdefghijklmnopqrst"), 1, 0, "abcdefghijklmnopqrst", -20);
- test(S("abcdefghijklmnopqrst"), 1, 1, "", 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, "abcde", 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, "abcdefghij", 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, "abcdefghijklmnopqrst", 1);
- test(S("abcdefghijklmnopqrst"), 1, 9, "", 9);
- test(S("abcdefghijklmnopqrst"), 1, 9, "abcde", 1);
- test(S("abcdefghijklmnopqrst"), 1, 9, "abcdefghij", 1);
- test(S("abcdefghijklmnopqrst"), 1, 9, "abcdefghijklmnopqrst", 1);
- test(S("abcdefghijklmnopqrst"), 1, 18, "", 18);
- test(S("abcdefghijklmnopqrst"), 1, 18, "abcde", 1);
- test(S("abcdefghijklmnopqrst"), 1, 18, "abcdefghij", 1);
- test(S("abcdefghijklmnopqrst"), 1, 18, "abcdefghijklmnopqrst", 1);
- test(S("abcdefghijklmnopqrst"), 1, 19, "", 19);
- test(S("abcdefghijklmnopqrst"), 1, 19, "abcde", 1);
- test(S("abcdefghijklmnopqrst"), 1, 19, "abcdefghij", 1);
- test(S("abcdefghijklmnopqrst"), 1, 19, "abcdefghijklmnopqrst", 1);
- test(S("abcdefghijklmnopqrst"), 1, 20, "", 19);
- test(S("abcdefghijklmnopqrst"), 1, 20, "abcde", 1);
- test(S("abcdefghijklmnopqrst"), 1, 20, "abcdefghij", 1);
- test(S("abcdefghijklmnopqrst"), 1, 20, "abcdefghijklmnopqrst", 1);
- test(S("abcdefghijklmnopqrst"), 10, 0, "", 0);
- test(S("abcdefghijklmnopqrst"), 10, 0, "abcde", -5);
- test(S("abcdefghijklmnopqrst"), 10, 0, "abcdefghij", -10);
- test(S("abcdefghijklmnopqrst"), 10, 0, "abcdefghijklmnopqrst", -20);
- test(S("abcdefghijklmnopqrst"), 10, 1, "", 1);
- test(S("abcdefghijklmnopqrst"), 10, 1, "abcde", 10);
- test(S("abcdefghijklmnopqrst"), 10, 1, "abcdefghij", 10);
- test(S("abcdefghijklmnopqrst"), 10, 1, "abcdefghijklmnopqrst", 10);
- test(S("abcdefghijklmnopqrst"), 10, 5, "", 5);
- test(S("abcdefghijklmnopqrst"), 10, 5, "abcde", 10);
- test(S("abcdefghijklmnopqrst"), 10, 5, "abcdefghij", 10);
- test(S("abcdefghijklmnopqrst"), 10, 5, "abcdefghijklmnopqrst", 10);
- test(S("abcdefghijklmnopqrst"), 10, 9, "", 9);
- test(S("abcdefghijklmnopqrst"), 10, 9, "abcde", 10);
- test(S("abcdefghijklmnopqrst"), 10, 9, "abcdefghij", 10);
- test(S("abcdefghijklmnopqrst"), 10, 9, "abcdefghijklmnopqrst", 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, "", 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, "abcde", 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, "abcdefghij", 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, "abcdefghijklmnopqrst", 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, "", 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, "abcde", 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, "abcdefghij", 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, "abcdefghijklmnopqrst", 10);
- test(S("abcdefghijklmnopqrst"), 19, 0, "", 0);
- test(S("abcdefghijklmnopqrst"), 19, 0, "abcde", -5);
- test(S("abcdefghijklmnopqrst"), 19, 0, "abcdefghij", -10);
- test(S("abcdefghijklmnopqrst"), 19, 0, "abcdefghijklmnopqrst", -20);
- test(S("abcdefghijklmnopqrst"), 19, 1, "", 1);
- test(S("abcdefghijklmnopqrst"), 19, 1, "abcde", 19);
- test(S("abcdefghijklmnopqrst"), 19, 1, "abcdefghij", 19);
- test(S("abcdefghijklmnopqrst"), 19, 1, "abcdefghijklmnopqrst", 19);
- test(S("abcdefghijklmnopqrst"), 19, 2, "", 1);
- test(S("abcdefghijklmnopqrst"), 19, 2, "abcde", 19);
- test(S("abcdefghijklmnopqrst"), 19, 2, "abcdefghij", 19);
- test(S("abcdefghijklmnopqrst"), 19, 2, "abcdefghijklmnopqrst", 19);
- test(S("abcdefghijklmnopqrst"), 20, 0, "", 0);
- test(S("abcdefghijklmnopqrst"), 20, 0, "abcde", -5);
- test(S("abcdefghijklmnopqrst"), 20, 0, "abcdefghij", -10);
- test(S("abcdefghijklmnopqrst"), 20, 0, "abcdefghijklmnopqrst", -20);
- test(S("abcdefghijklmnopqrst"), 20, 1, "", 0);
- test(S("abcdefghijklmnopqrst"), 20, 1, "abcde", -5);
- test(S("abcdefghijklmnopqrst"), 20, 1, "abcdefghij", -10);
- test(S("abcdefghijklmnopqrst"), 20, 1, "abcdefghijklmnopqrst", -20);
- test(S("abcdefghijklmnopqrst"), 21, 0, "", 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, "abcde", 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, "abcdefghij", 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, "abcdefghijklmnopqrst", 0);
+TEST_CONSTEXPR_CXX20 void test2() {
+ test(S("abcdefghijklmnopqrst"), 0, 0, "", 0);
+ test(S("abcdefghijklmnopqrst"), 0, 0, "abcde", -5);
+ test(S("abcdefghijklmnopqrst"), 0, 0, "abcdefghij", -10);
+ test(S("abcdefghijklmnopqrst"), 0, 0, "abcdefghijklmnopqrst", -20);
+ test(S("abcdefghijklmnopqrst"), 0, 1, "", 1);
+ test(S("abcdefghijklmnopqrst"), 0, 1, "abcde", -4);
+ test(S("abcdefghijklmnopqrst"), 0, 1, "abcdefghij", -9);
+ test(S("abcdefghijklmnopqrst"), 0, 1, "abcdefghijklmnopqrst", -19);
+ test(S("abcdefghijklmnopqrst"), 0, 10, "", 10);
+ test(S("abcdefghijklmnopqrst"), 0, 10, "abcde", 5);
+ test(S("abcdefghijklmnopqrst"), 0, 10, "abcdefghij", 0);
+ test(S("abcdefghijklmnopqrst"), 0, 10, "abcdefghijklmnopqrst", -10);
+ test(S("abcdefghijklmnopqrst"), 0, 19, "", 19);
+ test(S("abcdefghijklmnopqrst"), 0, 19, "abcde", 14);
+ test(S("abcdefghijklmnopqrst"), 0, 19, "abcdefghij", 9);
+ test(S("abcdefghijklmnopqrst"), 0, 19, "abcdefghijklmnopqrst", -1);
+ test(S("abcdefghijklmnopqrst"), 0, 20, "", 20);
+ test(S("abcdefghijklmnopqrst"), 0, 20, "abcde", 15);
+ test(S("abcdefghijklmnopqrst"), 0, 20, "abcdefghij", 10);
+ test(S("abcdefghijklmnopqrst"), 0, 20, "abcdefghijklmnopqrst", 0);
+ test(S("abcdefghijklmnopqrst"), 0, 21, "", 20);
+ test(S("abcdefghijklmnopqrst"), 0, 21, "abcde", 15);
+ test(S("abcdefghijklmnopqrst"), 0, 21, "abcdefghij", 10);
+ test(S("abcdefghijklmnopqrst"), 0, 21, "abcdefghijklmnopqrst", 0);
+ test(S("abcdefghijklmnopqrst"), 1, 0, "", 0);
+ test(S("abcdefghijklmnopqrst"), 1, 0, "abcde", -5);
+ test(S("abcdefghijklmnopqrst"), 1, 0, "abcdefghij", -10);
+ test(S("abcdefghijklmnopqrst"), 1, 0, "abcdefghijklmnopqrst", -20);
+ test(S("abcdefghijklmnopqrst"), 1, 1, "", 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, "abcde", 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, "abcdefghij", 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, "abcdefghijklmnopqrst", 1);
+ test(S("abcdefghijklmnopqrst"), 1, 9, "", 9);
+ test(S("abcdefghijklmnopqrst"), 1, 9, "abcde", 1);
+ test(S("abcdefghijklmnopqrst"), 1, 9, "abcdefghij", 1);
+ test(S("abcdefghijklmnopqrst"), 1, 9, "abcdefghijklmnopqrst", 1);
+ test(S("abcdefghijklmnopqrst"), 1, 18, "", 18);
+ test(S("abcdefghijklmnopqrst"), 1, 18, "abcde", 1);
+ test(S("abcdefghijklmnopqrst"), 1, 18, "abcdefghij", 1);
+ test(S("abcdefghijklmnopqrst"), 1, 18, "abcdefghijklmnopqrst", 1);
+ test(S("abcdefghijklmnopqrst"), 1, 19, "", 19);
+ test(S("abcdefghijklmnopqrst"), 1, 19, "abcde", 1);
+ test(S("abcdefghijklmnopqrst"), 1, 19, "abcdefghij", 1);
+ test(S("abcdefghijklmnopqrst"), 1, 19, "abcdefghijklmnopqrst", 1);
+ test(S("abcdefghijklmnopqrst"), 1, 20, "", 19);
+ test(S("abcdefghijklmnopqrst"), 1, 20, "abcde", 1);
+ test(S("abcdefghijklmnopqrst"), 1, 20, "abcdefghij", 1);
+ test(S("abcdefghijklmnopqrst"), 1, 20, "abcdefghijklmnopqrst", 1);
+ test(S("abcdefghijklmnopqrst"), 10, 0, "", 0);
+ test(S("abcdefghijklmnopqrst"), 10, 0, "abcde", -5);
+ test(S("abcdefghijklmnopqrst"), 10, 0, "abcdefghij", -10);
+ test(S("abcdefghijklmnopqrst"), 10, 0, "abcdefghijklmnopqrst", -20);
+ test(S("abcdefghijklmnopqrst"), 10, 1, "", 1);
+ test(S("abcdefghijklmnopqrst"), 10, 1, "abcde", 10);
+ test(S("abcdefghijklmnopqrst"), 10, 1, "abcdefghij", 10);
+ test(S("abcdefghijklmnopqrst"), 10, 1, "abcdefghijklmnopqrst", 10);
+ test(S("abcdefghijklmnopqrst"), 10, 5, "", 5);
+ test(S("abcdefghijklmnopqrst"), 10, 5, "abcde", 10);
+ test(S("abcdefghijklmnopqrst"), 10, 5, "abcdefghij", 10);
+ test(S("abcdefghijklmnopqrst"), 10, 5, "abcdefghijklmnopqrst", 10);
+ test(S("abcdefghijklmnopqrst"), 10, 9, "", 9);
+ test(S("abcdefghijklmnopqrst"), 10, 9, "abcde", 10);
+ test(S("abcdefghijklmnopqrst"), 10, 9, "abcdefghij", 10);
+ test(S("abcdefghijklmnopqrst"), 10, 9, "abcdefghijklmnopqrst", 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, "", 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, "abcde", 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, "abcdefghij", 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, "abcdefghijklmnopqrst", 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, "", 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, "abcde", 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, "abcdefghij", 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, "abcdefghijklmnopqrst", 10);
+ test(S("abcdefghijklmnopqrst"), 19, 0, "", 0);
+ test(S("abcdefghijklmnopqrst"), 19, 0, "abcde", -5);
+ test(S("abcdefghijklmnopqrst"), 19, 0, "abcdefghij", -10);
+ test(S("abcdefghijklmnopqrst"), 19, 0, "abcdefghijklmnopqrst", -20);
+ test(S("abcdefghijklmnopqrst"), 19, 1, "", 1);
+ test(S("abcdefghijklmnopqrst"), 19, 1, "abcde", 19);
+ test(S("abcdefghijklmnopqrst"), 19, 1, "abcdefghij", 19);
+ test(S("abcdefghijklmnopqrst"), 19, 1, "abcdefghijklmnopqrst", 19);
+ test(S("abcdefghijklmnopqrst"), 19, 2, "", 1);
+ test(S("abcdefghijklmnopqrst"), 19, 2, "abcde", 19);
+ test(S("abcdefghijklmnopqrst"), 19, 2, "abcdefghij", 19);
+ test(S("abcdefghijklmnopqrst"), 19, 2, "abcdefghijklmnopqrst", 19);
+ test(S("abcdefghijklmnopqrst"), 20, 0, "", 0);
+ test(S("abcdefghijklmnopqrst"), 20, 0, "abcde", -5);
+ test(S("abcdefghijklmnopqrst"), 20, 0, "abcdefghij", -10);
+ test(S("abcdefghijklmnopqrst"), 20, 0, "abcdefghijklmnopqrst", -20);
+ test(S("abcdefghijklmnopqrst"), 20, 1, "", 0);
+ test(S("abcdefghijklmnopqrst"), 20, 1, "abcde", -5);
+ test(S("abcdefghijklmnopqrst"), 20, 1, "abcdefghij", -10);
+ test(S("abcdefghijklmnopqrst"), 20, 1, "abcdefghijklmnopqrst", -20);
+ test(S("abcdefghijklmnopqrst"), 21, 0, "", 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, "abcde", 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, "abcdefghij", 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, "abcdefghijklmnopqrst", 0);
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -380,8 +370,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.ops/string_compare/size_size_pointer_size.pass.cpp b/libcxx/test/std/strings/basic.string/string.ops/string_compare/size_size_pointer_size.pass.cpp
index 5bc00fd1ac5e067..aba230d92e18248 100644
--- a/libcxx/test/std/strings/basic.string/string.ops/string_compare/size_size_pointer_size.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.ops/string_compare/size_size_pointer_size.pass.cpp
@@ -18,1304 +18,1290 @@
#include "test_macros.h"
-TEST_CONSTEXPR_CXX20 int sign(int x)
-{
- if (x == 0)
- return 0;
- if (x < 0)
- return -1;
- return 1;
+TEST_CONSTEXPR_CXX20 int sign(int x) {
+ if (x == 0)
+ return 0;
+ if (x < 0)
+ return -1;
+ return 1;
}
template <class S>
TEST_CONSTEXPR_CXX20 void
-test(const S& s, typename S::size_type pos, typename S::size_type n1,
- const typename S::value_type* str, typename S::size_type n2, int x)
-{
- if (pos <= s.size())
- assert(sign(s.compare(pos, n1, str, n2)) == sign(x));
+test(const S& s,
+ typename S::size_type pos,
+ typename S::size_type n1,
+ const typename S::value_type* str,
+ typename S::size_type n2,
+ int x) {
+ if (pos <= s.size())
+ assert(sign(s.compare(pos, n1, str, n2)) == sign(x));
#ifndef TEST_HAS_NO_EXCEPTIONS
- else if (!TEST_IS_CONSTANT_EVALUATED)
- {
- try
- {
- TEST_IGNORE_NODISCARD s.compare(pos, n1, str, n2);
- assert(false);
- }
- catch (std::out_of_range&)
- {
- assert(pos > s.size());
- }
+ else if (!TEST_IS_CONSTANT_EVALUATED) {
+ try {
+ TEST_IGNORE_NODISCARD s.compare(pos, n1, str, n2);
+ assert(false);
+ } catch (std::out_of_range&) {
+ assert(pos > s.size());
}
+ }
#endif
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test0()
-{
- test(S(""), 0, 0, "", 0, 0);
- test(S(""), 0, 0, "abcde", 0, 0);
- test(S(""), 0, 0, "abcde", 1, -1);
- test(S(""), 0, 0, "abcde", 2, -2);
- test(S(""), 0, 0, "abcde", 4, -4);
- test(S(""), 0, 0, "abcde", 5, -5);
- test(S(""), 0, 0, "abcdefghij", 0, 0);
- test(S(""), 0, 0, "abcdefghij", 1, -1);
- test(S(""), 0, 0, "abcdefghij", 5, -5);
- test(S(""), 0, 0, "abcdefghij", 9, -9);
- test(S(""), 0, 0, "abcdefghij", 10, -10);
- test(S(""), 0, 0, "abcdefghijklmnopqrst", 0, 0);
- test(S(""), 0, 0, "abcdefghijklmnopqrst", 1, -1);
- test(S(""), 0, 0, "abcdefghijklmnopqrst", 10, -10);
- test(S(""), 0, 0, "abcdefghijklmnopqrst", 19, -19);
- test(S(""), 0, 0, "abcdefghijklmnopqrst", 20, -20);
- test(S(""), 0, 1, "", 0, 0);
- test(S(""), 0, 1, "abcde", 0, 0);
- test(S(""), 0, 1, "abcde", 1, -1);
- test(S(""), 0, 1, "abcde", 2, -2);
- test(S(""), 0, 1, "abcde", 4, -4);
- test(S(""), 0, 1, "abcde", 5, -5);
- test(S(""), 0, 1, "abcdefghij", 0, 0);
- test(S(""), 0, 1, "abcdefghij", 1, -1);
- test(S(""), 0, 1, "abcdefghij", 5, -5);
- test(S(""), 0, 1, "abcdefghij", 9, -9);
- test(S(""), 0, 1, "abcdefghij", 10, -10);
- test(S(""), 0, 1, "abcdefghijklmnopqrst", 0, 0);
- test(S(""), 0, 1, "abcdefghijklmnopqrst", 1, -1);
- test(S(""), 0, 1, "abcdefghijklmnopqrst", 10, -10);
- test(S(""), 0, 1, "abcdefghijklmnopqrst", 19, -19);
- test(S(""), 0, 1, "abcdefghijklmnopqrst", 20, -20);
- test(S(""), 1, 0, "", 0, 0);
- test(S(""), 1, 0, "abcde", 0, 0);
- test(S(""), 1, 0, "abcde", 1, 0);
- test(S(""), 1, 0, "abcde", 2, 0);
- test(S(""), 1, 0, "abcde", 4, 0);
- test(S(""), 1, 0, "abcde", 5, 0);
- test(S(""), 1, 0, "abcdefghij", 0, 0);
- test(S(""), 1, 0, "abcdefghij", 1, 0);
- test(S(""), 1, 0, "abcdefghij", 5, 0);
- test(S(""), 1, 0, "abcdefghij", 9, 0);
- test(S(""), 1, 0, "abcdefghij", 10, 0);
- test(S(""), 1, 0, "abcdefghijklmnopqrst", 0, 0);
- test(S(""), 1, 0, "abcdefghijklmnopqrst", 1, 0);
- test(S(""), 1, 0, "abcdefghijklmnopqrst", 10, 0);
- test(S(""), 1, 0, "abcdefghijklmnopqrst", 19, 0);
- test(S(""), 1, 0, "abcdefghijklmnopqrst", 20, 0);
- test(S("abcde"), 0, 0, "", 0, 0);
- test(S("abcde"), 0, 0, "abcde", 0, 0);
- test(S("abcde"), 0, 0, "abcde", 1, -1);
- test(S("abcde"), 0, 0, "abcde", 2, -2);
- test(S("abcde"), 0, 0, "abcde", 4, -4);
- test(S("abcde"), 0, 0, "abcde", 5, -5);
- test(S("abcde"), 0, 0, "abcdefghij", 0, 0);
- test(S("abcde"), 0, 0, "abcdefghij", 1, -1);
- test(S("abcde"), 0, 0, "abcdefghij", 5, -5);
- test(S("abcde"), 0, 0, "abcdefghij", 9, -9);
- test(S("abcde"), 0, 0, "abcdefghij", 10, -10);
- test(S("abcde"), 0, 0, "abcdefghijklmnopqrst", 0, 0);
- test(S("abcde"), 0, 0, "abcdefghijklmnopqrst", 1, -1);
- test(S("abcde"), 0, 0, "abcdefghijklmnopqrst", 10, -10);
- test(S("abcde"), 0, 0, "abcdefghijklmnopqrst", 19, -19);
- test(S("abcde"), 0, 0, "abcdefghijklmnopqrst", 20, -20);
- test(S("abcde"), 0, 1, "", 0, 1);
- test(S("abcde"), 0, 1, "abcde", 0, 1);
- test(S("abcde"), 0, 1, "abcde", 1, 0);
- test(S("abcde"), 0, 1, "abcde", 2, -1);
- test(S("abcde"), 0, 1, "abcde", 4, -3);
- test(S("abcde"), 0, 1, "abcde", 5, -4);
- test(S("abcde"), 0, 1, "abcdefghij", 0, 1);
- test(S("abcde"), 0, 1, "abcdefghij", 1, 0);
- test(S("abcde"), 0, 1, "abcdefghij", 5, -4);
- test(S("abcde"), 0, 1, "abcdefghij", 9, -8);
- test(S("abcde"), 0, 1, "abcdefghij", 10, -9);
- test(S("abcde"), 0, 1, "abcdefghijklmnopqrst", 0, 1);
- test(S("abcde"), 0, 1, "abcdefghijklmnopqrst", 1, 0);
- test(S("abcde"), 0, 1, "abcdefghijklmnopqrst", 10, -9);
- test(S("abcde"), 0, 1, "abcdefghijklmnopqrst", 19, -18);
- test(S("abcde"), 0, 1, "abcdefghijklmnopqrst", 20, -19);
- test(S("abcde"), 0, 2, "", 0, 2);
- test(S("abcde"), 0, 2, "abcde", 0, 2);
- test(S("abcde"), 0, 2, "abcde", 1, 1);
- test(S("abcde"), 0, 2, "abcde", 2, 0);
- test(S("abcde"), 0, 2, "abcde", 4, -2);
- test(S("abcde"), 0, 2, "abcde", 5, -3);
- test(S("abcde"), 0, 2, "abcdefghij", 0, 2);
- test(S("abcde"), 0, 2, "abcdefghij", 1, 1);
- test(S("abcde"), 0, 2, "abcdefghij", 5, -3);
- test(S("abcde"), 0, 2, "abcdefghij", 9, -7);
- test(S("abcde"), 0, 2, "abcdefghij", 10, -8);
- test(S("abcde"), 0, 2, "abcdefghijklmnopqrst", 0, 2);
- test(S("abcde"), 0, 2, "abcdefghijklmnopqrst", 1, 1);
- test(S("abcde"), 0, 2, "abcdefghijklmnopqrst", 10, -8);
- test(S("abcde"), 0, 2, "abcdefghijklmnopqrst", 19, -17);
- test(S("abcde"), 0, 2, "abcdefghijklmnopqrst", 20, -18);
- test(S("abcde"), 0, 4, "", 0, 4);
- test(S("abcde"), 0, 4, "abcde", 0, 4);
- test(S("abcde"), 0, 4, "abcde", 1, 3);
- test(S("abcde"), 0, 4, "abcde", 2, 2);
+TEST_CONSTEXPR_CXX20 bool test0() {
+ test(S(""), 0, 0, "", 0, 0);
+ test(S(""), 0, 0, "abcde", 0, 0);
+ test(S(""), 0, 0, "abcde", 1, -1);
+ test(S(""), 0, 0, "abcde", 2, -2);
+ test(S(""), 0, 0, "abcde", 4, -4);
+ test(S(""), 0, 0, "abcde", 5, -5);
+ test(S(""), 0, 0, "abcdefghij", 0, 0);
+ test(S(""), 0, 0, "abcdefghij", 1, -1);
+ test(S(""), 0, 0, "abcdefghij", 5, -5);
+ test(S(""), 0, 0, "abcdefghij", 9, -9);
+ test(S(""), 0, 0, "abcdefghij", 10, -10);
+ test(S(""), 0, 0, "abcdefghijklmnopqrst", 0, 0);
+ test(S(""), 0, 0, "abcdefghijklmnopqrst", 1, -1);
+ test(S(""), 0, 0, "abcdefghijklmnopqrst", 10, -10);
+ test(S(""), 0, 0, "abcdefghijklmnopqrst", 19, -19);
+ test(S(""), 0, 0, "abcdefghijklmnopqrst", 20, -20);
+ test(S(""), 0, 1, "", 0, 0);
+ test(S(""), 0, 1, "abcde", 0, 0);
+ test(S(""), 0, 1, "abcde", 1, -1);
+ test(S(""), 0, 1, "abcde", 2, -2);
+ test(S(""), 0, 1, "abcde", 4, -4);
+ test(S(""), 0, 1, "abcde", 5, -5);
+ test(S(""), 0, 1, "abcdefghij", 0, 0);
+ test(S(""), 0, 1, "abcdefghij", 1, -1);
+ test(S(""), 0, 1, "abcdefghij", 5, -5);
+ test(S(""), 0, 1, "abcdefghij", 9, -9);
+ test(S(""), 0, 1, "abcdefghij", 10, -10);
+ test(S(""), 0, 1, "abcdefghijklmnopqrst", 0, 0);
+ test(S(""), 0, 1, "abcdefghijklmnopqrst", 1, -1);
+ test(S(""), 0, 1, "abcdefghijklmnopqrst", 10, -10);
+ test(S(""), 0, 1, "abcdefghijklmnopqrst", 19, -19);
+ test(S(""), 0, 1, "abcdefghijklmnopqrst", 20, -20);
+ test(S(""), 1, 0, "", 0, 0);
+ test(S(""), 1, 0, "abcde", 0, 0);
+ test(S(""), 1, 0, "abcde", 1, 0);
+ test(S(""), 1, 0, "abcde", 2, 0);
+ test(S(""), 1, 0, "abcde", 4, 0);
+ test(S(""), 1, 0, "abcde", 5, 0);
+ test(S(""), 1, 0, "abcdefghij", 0, 0);
+ test(S(""), 1, 0, "abcdefghij", 1, 0);
+ test(S(""), 1, 0, "abcdefghij", 5, 0);
+ test(S(""), 1, 0, "abcdefghij", 9, 0);
+ test(S(""), 1, 0, "abcdefghij", 10, 0);
+ test(S(""), 1, 0, "abcdefghijklmnopqrst", 0, 0);
+ test(S(""), 1, 0, "abcdefghijklmnopqrst", 1, 0);
+ test(S(""), 1, 0, "abcdefghijklmnopqrst", 10, 0);
+ test(S(""), 1, 0, "abcdefghijklmnopqrst", 19, 0);
+ test(S(""), 1, 0, "abcdefghijklmnopqrst", 20, 0);
+ test(S("abcde"), 0, 0, "", 0, 0);
+ test(S("abcde"), 0, 0, "abcde", 0, 0);
+ test(S("abcde"), 0, 0, "abcde", 1, -1);
+ test(S("abcde"), 0, 0, "abcde", 2, -2);
+ test(S("abcde"), 0, 0, "abcde", 4, -4);
+ test(S("abcde"), 0, 0, "abcde", 5, -5);
+ test(S("abcde"), 0, 0, "abcdefghij", 0, 0);
+ test(S("abcde"), 0, 0, "abcdefghij", 1, -1);
+ test(S("abcde"), 0, 0, "abcdefghij", 5, -5);
+ test(S("abcde"), 0, 0, "abcdefghij", 9, -9);
+ test(S("abcde"), 0, 0, "abcdefghij", 10, -10);
+ test(S("abcde"), 0, 0, "abcdefghijklmnopqrst", 0, 0);
+ test(S("abcde"), 0, 0, "abcdefghijklmnopqrst", 1, -1);
+ test(S("abcde"), 0, 0, "abcdefghijklmnopqrst", 10, -10);
+ test(S("abcde"), 0, 0, "abcdefghijklmnopqrst", 19, -19);
+ test(S("abcde"), 0, 0, "abcdefghijklmnopqrst", 20, -20);
+ test(S("abcde"), 0, 1, "", 0, 1);
+ test(S("abcde"), 0, 1, "abcde", 0, 1);
+ test(S("abcde"), 0, 1, "abcde", 1, 0);
+ test(S("abcde"), 0, 1, "abcde", 2, -1);
+ test(S("abcde"), 0, 1, "abcde", 4, -3);
+ test(S("abcde"), 0, 1, "abcde", 5, -4);
+ test(S("abcde"), 0, 1, "abcdefghij", 0, 1);
+ test(S("abcde"), 0, 1, "abcdefghij", 1, 0);
+ test(S("abcde"), 0, 1, "abcdefghij", 5, -4);
+ test(S("abcde"), 0, 1, "abcdefghij", 9, -8);
+ test(S("abcde"), 0, 1, "abcdefghij", 10, -9);
+ test(S("abcde"), 0, 1, "abcdefghijklmnopqrst", 0, 1);
+ test(S("abcde"), 0, 1, "abcdefghijklmnopqrst", 1, 0);
+ test(S("abcde"), 0, 1, "abcdefghijklmnopqrst", 10, -9);
+ test(S("abcde"), 0, 1, "abcdefghijklmnopqrst", 19, -18);
+ test(S("abcde"), 0, 1, "abcdefghijklmnopqrst", 20, -19);
+ test(S("abcde"), 0, 2, "", 0, 2);
+ test(S("abcde"), 0, 2, "abcde", 0, 2);
+ test(S("abcde"), 0, 2, "abcde", 1, 1);
+ test(S("abcde"), 0, 2, "abcde", 2, 0);
+ test(S("abcde"), 0, 2, "abcde", 4, -2);
+ test(S("abcde"), 0, 2, "abcde", 5, -3);
+ test(S("abcde"), 0, 2, "abcdefghij", 0, 2);
+ test(S("abcde"), 0, 2, "abcdefghij", 1, 1);
+ test(S("abcde"), 0, 2, "abcdefghij", 5, -3);
+ test(S("abcde"), 0, 2, "abcdefghij", 9, -7);
+ test(S("abcde"), 0, 2, "abcdefghij", 10, -8);
+ test(S("abcde"), 0, 2, "abcdefghijklmnopqrst", 0, 2);
+ test(S("abcde"), 0, 2, "abcdefghijklmnopqrst", 1, 1);
+ test(S("abcde"), 0, 2, "abcdefghijklmnopqrst", 10, -8);
+ test(S("abcde"), 0, 2, "abcdefghijklmnopqrst", 19, -17);
+ test(S("abcde"), 0, 2, "abcdefghijklmnopqrst", 20, -18);
+ test(S("abcde"), 0, 4, "", 0, 4);
+ test(S("abcde"), 0, 4, "abcde", 0, 4);
+ test(S("abcde"), 0, 4, "abcde", 1, 3);
+ test(S("abcde"), 0, 4, "abcde", 2, 2);
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test1()
-{
- test(S("abcde"), 0, 4, "abcde", 4, 0);
- test(S("abcde"), 0, 4, "abcde", 5, -1);
- test(S("abcde"), 0, 4, "abcdefghij", 0, 4);
- test(S("abcde"), 0, 4, "abcdefghij", 1, 3);
- test(S("abcde"), 0, 4, "abcdefghij", 5, -1);
- test(S("abcde"), 0, 4, "abcdefghij", 9, -5);
- test(S("abcde"), 0, 4, "abcdefghij", 10, -6);
- test(S("abcde"), 0, 4, "abcdefghijklmnopqrst", 0, 4);
- test(S("abcde"), 0, 4, "abcdefghijklmnopqrst", 1, 3);
- test(S("abcde"), 0, 4, "abcdefghijklmnopqrst", 10, -6);
- test(S("abcde"), 0, 4, "abcdefghijklmnopqrst", 19, -15);
- test(S("abcde"), 0, 4, "abcdefghijklmnopqrst", 20, -16);
- test(S("abcde"), 0, 5, "", 0, 5);
- test(S("abcde"), 0, 5, "abcde", 0, 5);
- test(S("abcde"), 0, 5, "abcde", 1, 4);
- test(S("abcde"), 0, 5, "abcde", 2, 3);
- test(S("abcde"), 0, 5, "abcde", 4, 1);
- test(S("abcde"), 0, 5, "abcde", 5, 0);
- test(S("abcde"), 0, 5, "abcdefghij", 0, 5);
- test(S("abcde"), 0, 5, "abcdefghij", 1, 4);
- test(S("abcde"), 0, 5, "abcdefghij", 5, 0);
- test(S("abcde"), 0, 5, "abcdefghij", 9, -4);
- test(S("abcde"), 0, 5, "abcdefghij", 10, -5);
- test(S("abcde"), 0, 5, "abcdefghijklmnopqrst", 0, 5);
- test(S("abcde"), 0, 5, "abcdefghijklmnopqrst", 1, 4);
- test(S("abcde"), 0, 5, "abcdefghijklmnopqrst", 10, -5);
- test(S("abcde"), 0, 5, "abcdefghijklmnopqrst", 19, -14);
- test(S("abcde"), 0, 5, "abcdefghijklmnopqrst", 20, -15);
- test(S("abcde"), 0, 6, "", 0, 5);
- test(S("abcde"), 0, 6, "abcde", 0, 5);
- test(S("abcde"), 0, 6, "abcde", 1, 4);
- test(S("abcde"), 0, 6, "abcde", 2, 3);
- test(S("abcde"), 0, 6, "abcde", 4, 1);
- test(S("abcde"), 0, 6, "abcde", 5, 0);
- test(S("abcde"), 0, 6, "abcdefghij", 0, 5);
- test(S("abcde"), 0, 6, "abcdefghij", 1, 4);
- test(S("abcde"), 0, 6, "abcdefghij", 5, 0);
- test(S("abcde"), 0, 6, "abcdefghij", 9, -4);
- test(S("abcde"), 0, 6, "abcdefghij", 10, -5);
- test(S("abcde"), 0, 6, "abcdefghijklmnopqrst", 0, 5);
- test(S("abcde"), 0, 6, "abcdefghijklmnopqrst", 1, 4);
- test(S("abcde"), 0, 6, "abcdefghijklmnopqrst", 10, -5);
- test(S("abcde"), 0, 6, "abcdefghijklmnopqrst", 19, -14);
- test(S("abcde"), 0, 6, "abcdefghijklmnopqrst", 20, -15);
- test(S("abcde"), 1, 0, "", 0, 0);
- test(S("abcde"), 1, 0, "abcde", 0, 0);
- test(S("abcde"), 1, 0, "abcde", 1, -1);
- test(S("abcde"), 1, 0, "abcde", 2, -2);
- test(S("abcde"), 1, 0, "abcde", 4, -4);
- test(S("abcde"), 1, 0, "abcde", 5, -5);
- test(S("abcde"), 1, 0, "abcdefghij", 0, 0);
- test(S("abcde"), 1, 0, "abcdefghij", 1, -1);
- test(S("abcde"), 1, 0, "abcdefghij", 5, -5);
- test(S("abcde"), 1, 0, "abcdefghij", 9, -9);
- test(S("abcde"), 1, 0, "abcdefghij", 10, -10);
- test(S("abcde"), 1, 0, "abcdefghijklmnopqrst", 0, 0);
- test(S("abcde"), 1, 0, "abcdefghijklmnopqrst", 1, -1);
- test(S("abcde"), 1, 0, "abcdefghijklmnopqrst", 10, -10);
- test(S("abcde"), 1, 0, "abcdefghijklmnopqrst", 19, -19);
- test(S("abcde"), 1, 0, "abcdefghijklmnopqrst", 20, -20);
- test(S("abcde"), 1, 1, "", 0, 1);
- test(S("abcde"), 1, 1, "abcde", 0, 1);
- test(S("abcde"), 1, 1, "abcde", 1, 1);
- test(S("abcde"), 1, 1, "abcde", 2, 1);
- test(S("abcde"), 1, 1, "abcde", 4, 1);
- test(S("abcde"), 1, 1, "abcde", 5, 1);
- test(S("abcde"), 1, 1, "abcdefghij", 0, 1);
- test(S("abcde"), 1, 1, "abcdefghij", 1, 1);
- test(S("abcde"), 1, 1, "abcdefghij", 5, 1);
- test(S("abcde"), 1, 1, "abcdefghij", 9, 1);
- test(S("abcde"), 1, 1, "abcdefghij", 10, 1);
- test(S("abcde"), 1, 1, "abcdefghijklmnopqrst", 0, 1);
- test(S("abcde"), 1, 1, "abcdefghijklmnopqrst", 1, 1);
- test(S("abcde"), 1, 1, "abcdefghijklmnopqrst", 10, 1);
- test(S("abcde"), 1, 1, "abcdefghijklmnopqrst", 19, 1);
- test(S("abcde"), 1, 1, "abcdefghijklmnopqrst", 20, 1);
- test(S("abcde"), 1, 2, "", 0, 2);
- test(S("abcde"), 1, 2, "abcde", 0, 2);
- test(S("abcde"), 1, 2, "abcde", 1, 1);
- test(S("abcde"), 1, 2, "abcde", 2, 1);
- test(S("abcde"), 1, 2, "abcde", 4, 1);
- test(S("abcde"), 1, 2, "abcde", 5, 1);
- test(S("abcde"), 1, 2, "abcdefghij", 0, 2);
- test(S("abcde"), 1, 2, "abcdefghij", 1, 1);
- test(S("abcde"), 1, 2, "abcdefghij", 5, 1);
- test(S("abcde"), 1, 2, "abcdefghij", 9, 1);
- test(S("abcde"), 1, 2, "abcdefghij", 10, 1);
- test(S("abcde"), 1, 2, "abcdefghijklmnopqrst", 0, 2);
- test(S("abcde"), 1, 2, "abcdefghijklmnopqrst", 1, 1);
- test(S("abcde"), 1, 2, "abcdefghijklmnopqrst", 10, 1);
- test(S("abcde"), 1, 2, "abcdefghijklmnopqrst", 19, 1);
- test(S("abcde"), 1, 2, "abcdefghijklmnopqrst", 20, 1);
- test(S("abcde"), 1, 3, "", 0, 3);
- test(S("abcde"), 1, 3, "abcde", 0, 3);
- test(S("abcde"), 1, 3, "abcde", 1, 1);
- test(S("abcde"), 1, 3, "abcde", 2, 1);
- test(S("abcde"), 1, 3, "abcde", 4, 1);
- test(S("abcde"), 1, 3, "abcde", 5, 1);
- test(S("abcde"), 1, 3, "abcdefghij", 0, 3);
- test(S("abcde"), 1, 3, "abcdefghij", 1, 1);
+TEST_CONSTEXPR_CXX20 bool test1() {
+ test(S("abcde"), 0, 4, "abcde", 4, 0);
+ test(S("abcde"), 0, 4, "abcde", 5, -1);
+ test(S("abcde"), 0, 4, "abcdefghij", 0, 4);
+ test(S("abcde"), 0, 4, "abcdefghij", 1, 3);
+ test(S("abcde"), 0, 4, "abcdefghij", 5, -1);
+ test(S("abcde"), 0, 4, "abcdefghij", 9, -5);
+ test(S("abcde"), 0, 4, "abcdefghij", 10, -6);
+ test(S("abcde"), 0, 4, "abcdefghijklmnopqrst", 0, 4);
+ test(S("abcde"), 0, 4, "abcdefghijklmnopqrst", 1, 3);
+ test(S("abcde"), 0, 4, "abcdefghijklmnopqrst", 10, -6);
+ test(S("abcde"), 0, 4, "abcdefghijklmnopqrst", 19, -15);
+ test(S("abcde"), 0, 4, "abcdefghijklmnopqrst", 20, -16);
+ test(S("abcde"), 0, 5, "", 0, 5);
+ test(S("abcde"), 0, 5, "abcde", 0, 5);
+ test(S("abcde"), 0, 5, "abcde", 1, 4);
+ test(S("abcde"), 0, 5, "abcde", 2, 3);
+ test(S("abcde"), 0, 5, "abcde", 4, 1);
+ test(S("abcde"), 0, 5, "abcde", 5, 0);
+ test(S("abcde"), 0, 5, "abcdefghij", 0, 5);
+ test(S("abcde"), 0, 5, "abcdefghij", 1, 4);
+ test(S("abcde"), 0, 5, "abcdefghij", 5, 0);
+ test(S("abcde"), 0, 5, "abcdefghij", 9, -4);
+ test(S("abcde"), 0, 5, "abcdefghij", 10, -5);
+ test(S("abcde"), 0, 5, "abcdefghijklmnopqrst", 0, 5);
+ test(S("abcde"), 0, 5, "abcdefghijklmnopqrst", 1, 4);
+ test(S("abcde"), 0, 5, "abcdefghijklmnopqrst", 10, -5);
+ test(S("abcde"), 0, 5, "abcdefghijklmnopqrst", 19, -14);
+ test(S("abcde"), 0, 5, "abcdefghijklmnopqrst", 20, -15);
+ test(S("abcde"), 0, 6, "", 0, 5);
+ test(S("abcde"), 0, 6, "abcde", 0, 5);
+ test(S("abcde"), 0, 6, "abcde", 1, 4);
+ test(S("abcde"), 0, 6, "abcde", 2, 3);
+ test(S("abcde"), 0, 6, "abcde", 4, 1);
+ test(S("abcde"), 0, 6, "abcde", 5, 0);
+ test(S("abcde"), 0, 6, "abcdefghij", 0, 5);
+ test(S("abcde"), 0, 6, "abcdefghij", 1, 4);
+ test(S("abcde"), 0, 6, "abcdefghij", 5, 0);
+ test(S("abcde"), 0, 6, "abcdefghij", 9, -4);
+ test(S("abcde"), 0, 6, "abcdefghij", 10, -5);
+ test(S("abcde"), 0, 6, "abcdefghijklmnopqrst", 0, 5);
+ test(S("abcde"), 0, 6, "abcdefghijklmnopqrst", 1, 4);
+ test(S("abcde"), 0, 6, "abcdefghijklmnopqrst", 10, -5);
+ test(S("abcde"), 0, 6, "abcdefghijklmnopqrst", 19, -14);
+ test(S("abcde"), 0, 6, "abcdefghijklmnopqrst", 20, -15);
+ test(S("abcde"), 1, 0, "", 0, 0);
+ test(S("abcde"), 1, 0, "abcde", 0, 0);
+ test(S("abcde"), 1, 0, "abcde", 1, -1);
+ test(S("abcde"), 1, 0, "abcde", 2, -2);
+ test(S("abcde"), 1, 0, "abcde", 4, -4);
+ test(S("abcde"), 1, 0, "abcde", 5, -5);
+ test(S("abcde"), 1, 0, "abcdefghij", 0, 0);
+ test(S("abcde"), 1, 0, "abcdefghij", 1, -1);
+ test(S("abcde"), 1, 0, "abcdefghij", 5, -5);
+ test(S("abcde"), 1, 0, "abcdefghij", 9, -9);
+ test(S("abcde"), 1, 0, "abcdefghij", 10, -10);
+ test(S("abcde"), 1, 0, "abcdefghijklmnopqrst", 0, 0);
+ test(S("abcde"), 1, 0, "abcdefghijklmnopqrst", 1, -1);
+ test(S("abcde"), 1, 0, "abcdefghijklmnopqrst", 10, -10);
+ test(S("abcde"), 1, 0, "abcdefghijklmnopqrst", 19, -19);
+ test(S("abcde"), 1, 0, "abcdefghijklmnopqrst", 20, -20);
+ test(S("abcde"), 1, 1, "", 0, 1);
+ test(S("abcde"), 1, 1, "abcde", 0, 1);
+ test(S("abcde"), 1, 1, "abcde", 1, 1);
+ test(S("abcde"), 1, 1, "abcde", 2, 1);
+ test(S("abcde"), 1, 1, "abcde", 4, 1);
+ test(S("abcde"), 1, 1, "abcde", 5, 1);
+ test(S("abcde"), 1, 1, "abcdefghij", 0, 1);
+ test(S("abcde"), 1, 1, "abcdefghij", 1, 1);
+ test(S("abcde"), 1, 1, "abcdefghij", 5, 1);
+ test(S("abcde"), 1, 1, "abcdefghij", 9, 1);
+ test(S("abcde"), 1, 1, "abcdefghij", 10, 1);
+ test(S("abcde"), 1, 1, "abcdefghijklmnopqrst", 0, 1);
+ test(S("abcde"), 1, 1, "abcdefghijklmnopqrst", 1, 1);
+ test(S("abcde"), 1, 1, "abcdefghijklmnopqrst", 10, 1);
+ test(S("abcde"), 1, 1, "abcdefghijklmnopqrst", 19, 1);
+ test(S("abcde"), 1, 1, "abcdefghijklmnopqrst", 20, 1);
+ test(S("abcde"), 1, 2, "", 0, 2);
+ test(S("abcde"), 1, 2, "abcde", 0, 2);
+ test(S("abcde"), 1, 2, "abcde", 1, 1);
+ test(S("abcde"), 1, 2, "abcde", 2, 1);
+ test(S("abcde"), 1, 2, "abcde", 4, 1);
+ test(S("abcde"), 1, 2, "abcde", 5, 1);
+ test(S("abcde"), 1, 2, "abcdefghij", 0, 2);
+ test(S("abcde"), 1, 2, "abcdefghij", 1, 1);
+ test(S("abcde"), 1, 2, "abcdefghij", 5, 1);
+ test(S("abcde"), 1, 2, "abcdefghij", 9, 1);
+ test(S("abcde"), 1, 2, "abcdefghij", 10, 1);
+ test(S("abcde"), 1, 2, "abcdefghijklmnopqrst", 0, 2);
+ test(S("abcde"), 1, 2, "abcdefghijklmnopqrst", 1, 1);
+ test(S("abcde"), 1, 2, "abcdefghijklmnopqrst", 10, 1);
+ test(S("abcde"), 1, 2, "abcdefghijklmnopqrst", 19, 1);
+ test(S("abcde"), 1, 2, "abcdefghijklmnopqrst", 20, 1);
+ test(S("abcde"), 1, 3, "", 0, 3);
+ test(S("abcde"), 1, 3, "abcde", 0, 3);
+ test(S("abcde"), 1, 3, "abcde", 1, 1);
+ test(S("abcde"), 1, 3, "abcde", 2, 1);
+ test(S("abcde"), 1, 3, "abcde", 4, 1);
+ test(S("abcde"), 1, 3, "abcde", 5, 1);
+ test(S("abcde"), 1, 3, "abcdefghij", 0, 3);
+ test(S("abcde"), 1, 3, "abcdefghij", 1, 1);
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test2()
-{
- test(S("abcde"), 1, 3, "abcdefghij", 5, 1);
- test(S("abcde"), 1, 3, "abcdefghij", 9, 1);
- test(S("abcde"), 1, 3, "abcdefghij", 10, 1);
- test(S("abcde"), 1, 3, "abcdefghijklmnopqrst", 0, 3);
- test(S("abcde"), 1, 3, "abcdefghijklmnopqrst", 1, 1);
- test(S("abcde"), 1, 3, "abcdefghijklmnopqrst", 10, 1);
- test(S("abcde"), 1, 3, "abcdefghijklmnopqrst", 19, 1);
- test(S("abcde"), 1, 3, "abcdefghijklmnopqrst", 20, 1);
- test(S("abcde"), 1, 4, "", 0, 4);
- test(S("abcde"), 1, 4, "abcde", 0, 4);
- test(S("abcde"), 1, 4, "abcde", 1, 1);
- test(S("abcde"), 1, 4, "abcde", 2, 1);
- test(S("abcde"), 1, 4, "abcde", 4, 1);
- test(S("abcde"), 1, 4, "abcde", 5, 1);
- test(S("abcde"), 1, 4, "abcdefghij", 0, 4);
- test(S("abcde"), 1, 4, "abcdefghij", 1, 1);
- test(S("abcde"), 1, 4, "abcdefghij", 5, 1);
- test(S("abcde"), 1, 4, "abcdefghij", 9, 1);
- test(S("abcde"), 1, 4, "abcdefghij", 10, 1);
- test(S("abcde"), 1, 4, "abcdefghijklmnopqrst", 0, 4);
- test(S("abcde"), 1, 4, "abcdefghijklmnopqrst", 1, 1);
- test(S("abcde"), 1, 4, "abcdefghijklmnopqrst", 10, 1);
- test(S("abcde"), 1, 4, "abcdefghijklmnopqrst", 19, 1);
- test(S("abcde"), 1, 4, "abcdefghijklmnopqrst", 20, 1);
- test(S("abcde"), 1, 5, "", 0, 4);
- test(S("abcde"), 1, 5, "abcde", 0, 4);
- test(S("abcde"), 1, 5, "abcde", 1, 1);
- test(S("abcde"), 1, 5, "abcde", 2, 1);
- test(S("abcde"), 1, 5, "abcde", 4, 1);
- test(S("abcde"), 1, 5, "abcde", 5, 1);
- test(S("abcde"), 1, 5, "abcdefghij", 0, 4);
- test(S("abcde"), 1, 5, "abcdefghij", 1, 1);
- test(S("abcde"), 1, 5, "abcdefghij", 5, 1);
- test(S("abcde"), 1, 5, "abcdefghij", 9, 1);
- test(S("abcde"), 1, 5, "abcdefghij", 10, 1);
- test(S("abcde"), 1, 5, "abcdefghijklmnopqrst", 0, 4);
- test(S("abcde"), 1, 5, "abcdefghijklmnopqrst", 1, 1);
- test(S("abcde"), 1, 5, "abcdefghijklmnopqrst", 10, 1);
- test(S("abcde"), 1, 5, "abcdefghijklmnopqrst", 19, 1);
- test(S("abcde"), 1, 5, "abcdefghijklmnopqrst", 20, 1);
- test(S("abcde"), 2, 0, "", 0, 0);
- test(S("abcde"), 2, 0, "abcde", 0, 0);
- test(S("abcde"), 2, 0, "abcde", 1, -1);
- test(S("abcde"), 2, 0, "abcde", 2, -2);
- test(S("abcde"), 2, 0, "abcde", 4, -4);
- test(S("abcde"), 2, 0, "abcde", 5, -5);
- test(S("abcde"), 2, 0, "abcdefghij", 0, 0);
- test(S("abcde"), 2, 0, "abcdefghij", 1, -1);
- test(S("abcde"), 2, 0, "abcdefghij", 5, -5);
- test(S("abcde"), 2, 0, "abcdefghij", 9, -9);
- test(S("abcde"), 2, 0, "abcdefghij", 10, -10);
- test(S("abcde"), 2, 0, "abcdefghijklmnopqrst", 0, 0);
- test(S("abcde"), 2, 0, "abcdefghijklmnopqrst", 1, -1);
- test(S("abcde"), 2, 0, "abcdefghijklmnopqrst", 10, -10);
- test(S("abcde"), 2, 0, "abcdefghijklmnopqrst", 19, -19);
- test(S("abcde"), 2, 0, "abcdefghijklmnopqrst", 20, -20);
- test(S("abcde"), 2, 1, "", 0, 1);
- test(S("abcde"), 2, 1, "abcde", 0, 1);
- test(S("abcde"), 2, 1, "abcde", 1, 2);
- test(S("abcde"), 2, 1, "abcde", 2, 2);
- test(S("abcde"), 2, 1, "abcde", 4, 2);
- test(S("abcde"), 2, 1, "abcde", 5, 2);
- test(S("abcde"), 2, 1, "abcdefghij", 0, 1);
- test(S("abcde"), 2, 1, "abcdefghij", 1, 2);
- test(S("abcde"), 2, 1, "abcdefghij", 5, 2);
- test(S("abcde"), 2, 1, "abcdefghij", 9, 2);
- test(S("abcde"), 2, 1, "abcdefghij", 10, 2);
- test(S("abcde"), 2, 1, "abcdefghijklmnopqrst", 0, 1);
- test(S("abcde"), 2, 1, "abcdefghijklmnopqrst", 1, 2);
- test(S("abcde"), 2, 1, "abcdefghijklmnopqrst", 10, 2);
- test(S("abcde"), 2, 1, "abcdefghijklmnopqrst", 19, 2);
- test(S("abcde"), 2, 1, "abcdefghijklmnopqrst", 20, 2);
- test(S("abcde"), 2, 2, "", 0, 2);
- test(S("abcde"), 2, 2, "abcde", 0, 2);
- test(S("abcde"), 2, 2, "abcde", 1, 2);
- test(S("abcde"), 2, 2, "abcde", 2, 2);
- test(S("abcde"), 2, 2, "abcde", 4, 2);
- test(S("abcde"), 2, 2, "abcde", 5, 2);
- test(S("abcde"), 2, 2, "abcdefghij", 0, 2);
- test(S("abcde"), 2, 2, "abcdefghij", 1, 2);
- test(S("abcde"), 2, 2, "abcdefghij", 5, 2);
- test(S("abcde"), 2, 2, "abcdefghij", 9, 2);
- test(S("abcde"), 2, 2, "abcdefghij", 10, 2);
- test(S("abcde"), 2, 2, "abcdefghijklmnopqrst", 0, 2);
- test(S("abcde"), 2, 2, "abcdefghijklmnopqrst", 1, 2);
- test(S("abcde"), 2, 2, "abcdefghijklmnopqrst", 10, 2);
- test(S("abcde"), 2, 2, "abcdefghijklmnopqrst", 19, 2);
- test(S("abcde"), 2, 2, "abcdefghijklmnopqrst", 20, 2);
- test(S("abcde"), 2, 3, "", 0, 3);
- test(S("abcde"), 2, 3, "abcde", 0, 3);
- test(S("abcde"), 2, 3, "abcde", 1, 2);
- test(S("abcde"), 2, 3, "abcde", 2, 2);
- test(S("abcde"), 2, 3, "abcde", 4, 2);
- test(S("abcde"), 2, 3, "abcde", 5, 2);
- test(S("abcde"), 2, 3, "abcdefghij", 0, 3);
- test(S("abcde"), 2, 3, "abcdefghij", 1, 2);
- test(S("abcde"), 2, 3, "abcdefghij", 5, 2);
- test(S("abcde"), 2, 3, "abcdefghij", 9, 2);
- test(S("abcde"), 2, 3, "abcdefghij", 10, 2);
- test(S("abcde"), 2, 3, "abcdefghijklmnopqrst", 0, 3);
+TEST_CONSTEXPR_CXX20 bool test2() {
+ test(S("abcde"), 1, 3, "abcdefghij", 5, 1);
+ test(S("abcde"), 1, 3, "abcdefghij", 9, 1);
+ test(S("abcde"), 1, 3, "abcdefghij", 10, 1);
+ test(S("abcde"), 1, 3, "abcdefghijklmnopqrst", 0, 3);
+ test(S("abcde"), 1, 3, "abcdefghijklmnopqrst", 1, 1);
+ test(S("abcde"), 1, 3, "abcdefghijklmnopqrst", 10, 1);
+ test(S("abcde"), 1, 3, "abcdefghijklmnopqrst", 19, 1);
+ test(S("abcde"), 1, 3, "abcdefghijklmnopqrst", 20, 1);
+ test(S("abcde"), 1, 4, "", 0, 4);
+ test(S("abcde"), 1, 4, "abcde", 0, 4);
+ test(S("abcde"), 1, 4, "abcde", 1, 1);
+ test(S("abcde"), 1, 4, "abcde", 2, 1);
+ test(S("abcde"), 1, 4, "abcde", 4, 1);
+ test(S("abcde"), 1, 4, "abcde", 5, 1);
+ test(S("abcde"), 1, 4, "abcdefghij", 0, 4);
+ test(S("abcde"), 1, 4, "abcdefghij", 1, 1);
+ test(S("abcde"), 1, 4, "abcdefghij", 5, 1);
+ test(S("abcde"), 1, 4, "abcdefghij", 9, 1);
+ test(S("abcde"), 1, 4, "abcdefghij", 10, 1);
+ test(S("abcde"), 1, 4, "abcdefghijklmnopqrst", 0, 4);
+ test(S("abcde"), 1, 4, "abcdefghijklmnopqrst", 1, 1);
+ test(S("abcde"), 1, 4, "abcdefghijklmnopqrst", 10, 1);
+ test(S("abcde"), 1, 4, "abcdefghijklmnopqrst", 19, 1);
+ test(S("abcde"), 1, 4, "abcdefghijklmnopqrst", 20, 1);
+ test(S("abcde"), 1, 5, "", 0, 4);
+ test(S("abcde"), 1, 5, "abcde", 0, 4);
+ test(S("abcde"), 1, 5, "abcde", 1, 1);
+ test(S("abcde"), 1, 5, "abcde", 2, 1);
+ test(S("abcde"), 1, 5, "abcde", 4, 1);
+ test(S("abcde"), 1, 5, "abcde", 5, 1);
+ test(S("abcde"), 1, 5, "abcdefghij", 0, 4);
+ test(S("abcde"), 1, 5, "abcdefghij", 1, 1);
+ test(S("abcde"), 1, 5, "abcdefghij", 5, 1);
+ test(S("abcde"), 1, 5, "abcdefghij", 9, 1);
+ test(S("abcde"), 1, 5, "abcdefghij", 10, 1);
+ test(S("abcde"), 1, 5, "abcdefghijklmnopqrst", 0, 4);
+ test(S("abcde"), 1, 5, "abcdefghijklmnopqrst", 1, 1);
+ test(S("abcde"), 1, 5, "abcdefghijklmnopqrst", 10, 1);
+ test(S("abcde"), 1, 5, "abcdefghijklmnopqrst", 19, 1);
+ test(S("abcde"), 1, 5, "abcdefghijklmnopqrst", 20, 1);
+ test(S("abcde"), 2, 0, "", 0, 0);
+ test(S("abcde"), 2, 0, "abcde", 0, 0);
+ test(S("abcde"), 2, 0, "abcde", 1, -1);
+ test(S("abcde"), 2, 0, "abcde", 2, -2);
+ test(S("abcde"), 2, 0, "abcde", 4, -4);
+ test(S("abcde"), 2, 0, "abcde", 5, -5);
+ test(S("abcde"), 2, 0, "abcdefghij", 0, 0);
+ test(S("abcde"), 2, 0, "abcdefghij", 1, -1);
+ test(S("abcde"), 2, 0, "abcdefghij", 5, -5);
+ test(S("abcde"), 2, 0, "abcdefghij", 9, -9);
+ test(S("abcde"), 2, 0, "abcdefghij", 10, -10);
+ test(S("abcde"), 2, 0, "abcdefghijklmnopqrst", 0, 0);
+ test(S("abcde"), 2, 0, "abcdefghijklmnopqrst", 1, -1);
+ test(S("abcde"), 2, 0, "abcdefghijklmnopqrst", 10, -10);
+ test(S("abcde"), 2, 0, "abcdefghijklmnopqrst", 19, -19);
+ test(S("abcde"), 2, 0, "abcdefghijklmnopqrst", 20, -20);
+ test(S("abcde"), 2, 1, "", 0, 1);
+ test(S("abcde"), 2, 1, "abcde", 0, 1);
+ test(S("abcde"), 2, 1, "abcde", 1, 2);
+ test(S("abcde"), 2, 1, "abcde", 2, 2);
+ test(S("abcde"), 2, 1, "abcde", 4, 2);
+ test(S("abcde"), 2, 1, "abcde", 5, 2);
+ test(S("abcde"), 2, 1, "abcdefghij", 0, 1);
+ test(S("abcde"), 2, 1, "abcdefghij", 1, 2);
+ test(S("abcde"), 2, 1, "abcdefghij", 5, 2);
+ test(S("abcde"), 2, 1, "abcdefghij", 9, 2);
+ test(S("abcde"), 2, 1, "abcdefghij", 10, 2);
+ test(S("abcde"), 2, 1, "abcdefghijklmnopqrst", 0, 1);
+ test(S("abcde"), 2, 1, "abcdefghijklmnopqrst", 1, 2);
+ test(S("abcde"), 2, 1, "abcdefghijklmnopqrst", 10, 2);
+ test(S("abcde"), 2, 1, "abcdefghijklmnopqrst", 19, 2);
+ test(S("abcde"), 2, 1, "abcdefghijklmnopqrst", 20, 2);
+ test(S("abcde"), 2, 2, "", 0, 2);
+ test(S("abcde"), 2, 2, "abcde", 0, 2);
+ test(S("abcde"), 2, 2, "abcde", 1, 2);
+ test(S("abcde"), 2, 2, "abcde", 2, 2);
+ test(S("abcde"), 2, 2, "abcde", 4, 2);
+ test(S("abcde"), 2, 2, "abcde", 5, 2);
+ test(S("abcde"), 2, 2, "abcdefghij", 0, 2);
+ test(S("abcde"), 2, 2, "abcdefghij", 1, 2);
+ test(S("abcde"), 2, 2, "abcdefghij", 5, 2);
+ test(S("abcde"), 2, 2, "abcdefghij", 9, 2);
+ test(S("abcde"), 2, 2, "abcdefghij", 10, 2);
+ test(S("abcde"), 2, 2, "abcdefghijklmnopqrst", 0, 2);
+ test(S("abcde"), 2, 2, "abcdefghijklmnopqrst", 1, 2);
+ test(S("abcde"), 2, 2, "abcdefghijklmnopqrst", 10, 2);
+ test(S("abcde"), 2, 2, "abcdefghijklmnopqrst", 19, 2);
+ test(S("abcde"), 2, 2, "abcdefghijklmnopqrst", 20, 2);
+ test(S("abcde"), 2, 3, "", 0, 3);
+ test(S("abcde"), 2, 3, "abcde", 0, 3);
+ test(S("abcde"), 2, 3, "abcde", 1, 2);
+ test(S("abcde"), 2, 3, "abcde", 2, 2);
+ test(S("abcde"), 2, 3, "abcde", 4, 2);
+ test(S("abcde"), 2, 3, "abcde", 5, 2);
+ test(S("abcde"), 2, 3, "abcdefghij", 0, 3);
+ test(S("abcde"), 2, 3, "abcdefghij", 1, 2);
+ test(S("abcde"), 2, 3, "abcdefghij", 5, 2);
+ test(S("abcde"), 2, 3, "abcdefghij", 9, 2);
+ test(S("abcde"), 2, 3, "abcdefghij", 10, 2);
+ test(S("abcde"), 2, 3, "abcdefghijklmnopqrst", 0, 3);
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test3()
-{
- test(S("abcde"), 2, 3, "abcdefghijklmnopqrst", 1, 2);
- test(S("abcde"), 2, 3, "abcdefghijklmnopqrst", 10, 2);
- test(S("abcde"), 2, 3, "abcdefghijklmnopqrst", 19, 2);
- test(S("abcde"), 2, 3, "abcdefghijklmnopqrst", 20, 2);
- test(S("abcde"), 2, 4, "", 0, 3);
- test(S("abcde"), 2, 4, "abcde", 0, 3);
- test(S("abcde"), 2, 4, "abcde", 1, 2);
- test(S("abcde"), 2, 4, "abcde", 2, 2);
- test(S("abcde"), 2, 4, "abcde", 4, 2);
- test(S("abcde"), 2, 4, "abcde", 5, 2);
- test(S("abcde"), 2, 4, "abcdefghij", 0, 3);
- test(S("abcde"), 2, 4, "abcdefghij", 1, 2);
- test(S("abcde"), 2, 4, "abcdefghij", 5, 2);
- test(S("abcde"), 2, 4, "abcdefghij", 9, 2);
- test(S("abcde"), 2, 4, "abcdefghij", 10, 2);
- test(S("abcde"), 2, 4, "abcdefghijklmnopqrst", 0, 3);
- test(S("abcde"), 2, 4, "abcdefghijklmnopqrst", 1, 2);
- test(S("abcde"), 2, 4, "abcdefghijklmnopqrst", 10, 2);
- test(S("abcde"), 2, 4, "abcdefghijklmnopqrst", 19, 2);
- test(S("abcde"), 2, 4, "abcdefghijklmnopqrst", 20, 2);
- test(S("abcde"), 4, 0, "", 0, 0);
- test(S("abcde"), 4, 0, "abcde", 0, 0);
- test(S("abcde"), 4, 0, "abcde", 1, -1);
- test(S("abcde"), 4, 0, "abcde", 2, -2);
- test(S("abcde"), 4, 0, "abcde", 4, -4);
- test(S("abcde"), 4, 0, "abcde", 5, -5);
- test(S("abcde"), 4, 0, "abcdefghij", 0, 0);
- test(S("abcde"), 4, 0, "abcdefghij", 1, -1);
- test(S("abcde"), 4, 0, "abcdefghij", 5, -5);
- test(S("abcde"), 4, 0, "abcdefghij", 9, -9);
- test(S("abcde"), 4, 0, "abcdefghij", 10, -10);
- test(S("abcde"), 4, 0, "abcdefghijklmnopqrst", 0, 0);
- test(S("abcde"), 4, 0, "abcdefghijklmnopqrst", 1, -1);
- test(S("abcde"), 4, 0, "abcdefghijklmnopqrst", 10, -10);
- test(S("abcde"), 4, 0, "abcdefghijklmnopqrst", 19, -19);
- test(S("abcde"), 4, 0, "abcdefghijklmnopqrst", 20, -20);
- test(S("abcde"), 4, 1, "", 0, 1);
- test(S("abcde"), 4, 1, "abcde", 0, 1);
- test(S("abcde"), 4, 1, "abcde", 1, 4);
- test(S("abcde"), 4, 1, "abcde", 2, 4);
- test(S("abcde"), 4, 1, "abcde", 4, 4);
- test(S("abcde"), 4, 1, "abcde", 5, 4);
- test(S("abcde"), 4, 1, "abcdefghij", 0, 1);
- test(S("abcde"), 4, 1, "abcdefghij", 1, 4);
- test(S("abcde"), 4, 1, "abcdefghij", 5, 4);
- test(S("abcde"), 4, 1, "abcdefghij", 9, 4);
- test(S("abcde"), 4, 1, "abcdefghij", 10, 4);
- test(S("abcde"), 4, 1, "abcdefghijklmnopqrst", 0, 1);
- test(S("abcde"), 4, 1, "abcdefghijklmnopqrst", 1, 4);
- test(S("abcde"), 4, 1, "abcdefghijklmnopqrst", 10, 4);
- test(S("abcde"), 4, 1, "abcdefghijklmnopqrst", 19, 4);
- test(S("abcde"), 4, 1, "abcdefghijklmnopqrst", 20, 4);
- test(S("abcde"), 4, 2, "", 0, 1);
- test(S("abcde"), 4, 2, "abcde", 0, 1);
- test(S("abcde"), 4, 2, "abcde", 1, 4);
- test(S("abcde"), 4, 2, "abcde", 2, 4);
- test(S("abcde"), 4, 2, "abcde", 4, 4);
- test(S("abcde"), 4, 2, "abcde", 5, 4);
- test(S("abcde"), 4, 2, "abcdefghij", 0, 1);
- test(S("abcde"), 4, 2, "abcdefghij", 1, 4);
- test(S("abcde"), 4, 2, "abcdefghij", 5, 4);
- test(S("abcde"), 4, 2, "abcdefghij", 9, 4);
- test(S("abcde"), 4, 2, "abcdefghij", 10, 4);
- test(S("abcde"), 4, 2, "abcdefghijklmnopqrst", 0, 1);
- test(S("abcde"), 4, 2, "abcdefghijklmnopqrst", 1, 4);
- test(S("abcde"), 4, 2, "abcdefghijklmnopqrst", 10, 4);
- test(S("abcde"), 4, 2, "abcdefghijklmnopqrst", 19, 4);
- test(S("abcde"), 4, 2, "abcdefghijklmnopqrst", 20, 4);
- test(S("abcde"), 5, 0, "", 0, 0);
- test(S("abcde"), 5, 0, "abcde", 0, 0);
- test(S("abcde"), 5, 0, "abcde", 1, -1);
- test(S("abcde"), 5, 0, "abcde", 2, -2);
- test(S("abcde"), 5, 0, "abcde", 4, -4);
- test(S("abcde"), 5, 0, "abcde", 5, -5);
- test(S("abcde"), 5, 0, "abcdefghij", 0, 0);
- test(S("abcde"), 5, 0, "abcdefghij", 1, -1);
- test(S("abcde"), 5, 0, "abcdefghij", 5, -5);
- test(S("abcde"), 5, 0, "abcdefghij", 9, -9);
- test(S("abcde"), 5, 0, "abcdefghij", 10, -10);
- test(S("abcde"), 5, 0, "abcdefghijklmnopqrst", 0, 0);
- test(S("abcde"), 5, 0, "abcdefghijklmnopqrst", 1, -1);
- test(S("abcde"), 5, 0, "abcdefghijklmnopqrst", 10, -10);
- test(S("abcde"), 5, 0, "abcdefghijklmnopqrst", 19, -19);
- test(S("abcde"), 5, 0, "abcdefghijklmnopqrst", 20, -20);
- test(S("abcde"), 5, 1, "", 0, 0);
- test(S("abcde"), 5, 1, "abcde", 0, 0);
- test(S("abcde"), 5, 1, "abcde", 1, -1);
- test(S("abcde"), 5, 1, "abcde", 2, -2);
- test(S("abcde"), 5, 1, "abcde", 4, -4);
- test(S("abcde"), 5, 1, "abcde", 5, -5);
- test(S("abcde"), 5, 1, "abcdefghij", 0, 0);
- test(S("abcde"), 5, 1, "abcdefghij", 1, -1);
- test(S("abcde"), 5, 1, "abcdefghij", 5, -5);
- test(S("abcde"), 5, 1, "abcdefghij", 9, -9);
- test(S("abcde"), 5, 1, "abcdefghij", 10, -10);
- test(S("abcde"), 5, 1, "abcdefghijklmnopqrst", 0, 0);
- test(S("abcde"), 5, 1, "abcdefghijklmnopqrst", 1, -1);
- test(S("abcde"), 5, 1, "abcdefghijklmnopqrst", 10, -10);
- test(S("abcde"), 5, 1, "abcdefghijklmnopqrst", 19, -19);
- test(S("abcde"), 5, 1, "abcdefghijklmnopqrst", 20, -20);
+TEST_CONSTEXPR_CXX20 bool test3() {
+ test(S("abcde"), 2, 3, "abcdefghijklmnopqrst", 1, 2);
+ test(S("abcde"), 2, 3, "abcdefghijklmnopqrst", 10, 2);
+ test(S("abcde"), 2, 3, "abcdefghijklmnopqrst", 19, 2);
+ test(S("abcde"), 2, 3, "abcdefghijklmnopqrst", 20, 2);
+ test(S("abcde"), 2, 4, "", 0, 3);
+ test(S("abcde"), 2, 4, "abcde", 0, 3);
+ test(S("abcde"), 2, 4, "abcde", 1, 2);
+ test(S("abcde"), 2, 4, "abcde", 2, 2);
+ test(S("abcde"), 2, 4, "abcde", 4, 2);
+ test(S("abcde"), 2, 4, "abcde", 5, 2);
+ test(S("abcde"), 2, 4, "abcdefghij", 0, 3);
+ test(S("abcde"), 2, 4, "abcdefghij", 1, 2);
+ test(S("abcde"), 2, 4, "abcdefghij", 5, 2);
+ test(S("abcde"), 2, 4, "abcdefghij", 9, 2);
+ test(S("abcde"), 2, 4, "abcdefghij", 10, 2);
+ test(S("abcde"), 2, 4, "abcdefghijklmnopqrst", 0, 3);
+ test(S("abcde"), 2, 4, "abcdefghijklmnopqrst", 1, 2);
+ test(S("abcde"), 2, 4, "abcdefghijklmnopqrst", 10, 2);
+ test(S("abcde"), 2, 4, "abcdefghijklmnopqrst", 19, 2);
+ test(S("abcde"), 2, 4, "abcdefghijklmnopqrst", 20, 2);
+ test(S("abcde"), 4, 0, "", 0, 0);
+ test(S("abcde"), 4, 0, "abcde", 0, 0);
+ test(S("abcde"), 4, 0, "abcde", 1, -1);
+ test(S("abcde"), 4, 0, "abcde", 2, -2);
+ test(S("abcde"), 4, 0, "abcde", 4, -4);
+ test(S("abcde"), 4, 0, "abcde", 5, -5);
+ test(S("abcde"), 4, 0, "abcdefghij", 0, 0);
+ test(S("abcde"), 4, 0, "abcdefghij", 1, -1);
+ test(S("abcde"), 4, 0, "abcdefghij", 5, -5);
+ test(S("abcde"), 4, 0, "abcdefghij", 9, -9);
+ test(S("abcde"), 4, 0, "abcdefghij", 10, -10);
+ test(S("abcde"), 4, 0, "abcdefghijklmnopqrst", 0, 0);
+ test(S("abcde"), 4, 0, "abcdefghijklmnopqrst", 1, -1);
+ test(S("abcde"), 4, 0, "abcdefghijklmnopqrst", 10, -10);
+ test(S("abcde"), 4, 0, "abcdefghijklmnopqrst", 19, -19);
+ test(S("abcde"), 4, 0, "abcdefghijklmnopqrst", 20, -20);
+ test(S("abcde"), 4, 1, "", 0, 1);
+ test(S("abcde"), 4, 1, "abcde", 0, 1);
+ test(S("abcde"), 4, 1, "abcde", 1, 4);
+ test(S("abcde"), 4, 1, "abcde", 2, 4);
+ test(S("abcde"), 4, 1, "abcde", 4, 4);
+ test(S("abcde"), 4, 1, "abcde", 5, 4);
+ test(S("abcde"), 4, 1, "abcdefghij", 0, 1);
+ test(S("abcde"), 4, 1, "abcdefghij", 1, 4);
+ test(S("abcde"), 4, 1, "abcdefghij", 5, 4);
+ test(S("abcde"), 4, 1, "abcdefghij", 9, 4);
+ test(S("abcde"), 4, 1, "abcdefghij", 10, 4);
+ test(S("abcde"), 4, 1, "abcdefghijklmnopqrst", 0, 1);
+ test(S("abcde"), 4, 1, "abcdefghijklmnopqrst", 1, 4);
+ test(S("abcde"), 4, 1, "abcdefghijklmnopqrst", 10, 4);
+ test(S("abcde"), 4, 1, "abcdefghijklmnopqrst", 19, 4);
+ test(S("abcde"), 4, 1, "abcdefghijklmnopqrst", 20, 4);
+ test(S("abcde"), 4, 2, "", 0, 1);
+ test(S("abcde"), 4, 2, "abcde", 0, 1);
+ test(S("abcde"), 4, 2, "abcde", 1, 4);
+ test(S("abcde"), 4, 2, "abcde", 2, 4);
+ test(S("abcde"), 4, 2, "abcde", 4, 4);
+ test(S("abcde"), 4, 2, "abcde", 5, 4);
+ test(S("abcde"), 4, 2, "abcdefghij", 0, 1);
+ test(S("abcde"), 4, 2, "abcdefghij", 1, 4);
+ test(S("abcde"), 4, 2, "abcdefghij", 5, 4);
+ test(S("abcde"), 4, 2, "abcdefghij", 9, 4);
+ test(S("abcde"), 4, 2, "abcdefghij", 10, 4);
+ test(S("abcde"), 4, 2, "abcdefghijklmnopqrst", 0, 1);
+ test(S("abcde"), 4, 2, "abcdefghijklmnopqrst", 1, 4);
+ test(S("abcde"), 4, 2, "abcdefghijklmnopqrst", 10, 4);
+ test(S("abcde"), 4, 2, "abcdefghijklmnopqrst", 19, 4);
+ test(S("abcde"), 4, 2, "abcdefghijklmnopqrst", 20, 4);
+ test(S("abcde"), 5, 0, "", 0, 0);
+ test(S("abcde"), 5, 0, "abcde", 0, 0);
+ test(S("abcde"), 5, 0, "abcde", 1, -1);
+ test(S("abcde"), 5, 0, "abcde", 2, -2);
+ test(S("abcde"), 5, 0, "abcde", 4, -4);
+ test(S("abcde"), 5, 0, "abcde", 5, -5);
+ test(S("abcde"), 5, 0, "abcdefghij", 0, 0);
+ test(S("abcde"), 5, 0, "abcdefghij", 1, -1);
+ test(S("abcde"), 5, 0, "abcdefghij", 5, -5);
+ test(S("abcde"), 5, 0, "abcdefghij", 9, -9);
+ test(S("abcde"), 5, 0, "abcdefghij", 10, -10);
+ test(S("abcde"), 5, 0, "abcdefghijklmnopqrst", 0, 0);
+ test(S("abcde"), 5, 0, "abcdefghijklmnopqrst", 1, -1);
+ test(S("abcde"), 5, 0, "abcdefghijklmnopqrst", 10, -10);
+ test(S("abcde"), 5, 0, "abcdefghijklmnopqrst", 19, -19);
+ test(S("abcde"), 5, 0, "abcdefghijklmnopqrst", 20, -20);
+ test(S("abcde"), 5, 1, "", 0, 0);
+ test(S("abcde"), 5, 1, "abcde", 0, 0);
+ test(S("abcde"), 5, 1, "abcde", 1, -1);
+ test(S("abcde"), 5, 1, "abcde", 2, -2);
+ test(S("abcde"), 5, 1, "abcde", 4, -4);
+ test(S("abcde"), 5, 1, "abcde", 5, -5);
+ test(S("abcde"), 5, 1, "abcdefghij", 0, 0);
+ test(S("abcde"), 5, 1, "abcdefghij", 1, -1);
+ test(S("abcde"), 5, 1, "abcdefghij", 5, -5);
+ test(S("abcde"), 5, 1, "abcdefghij", 9, -9);
+ test(S("abcde"), 5, 1, "abcdefghij", 10, -10);
+ test(S("abcde"), 5, 1, "abcdefghijklmnopqrst", 0, 0);
+ test(S("abcde"), 5, 1, "abcdefghijklmnopqrst", 1, -1);
+ test(S("abcde"), 5, 1, "abcdefghijklmnopqrst", 10, -10);
+ test(S("abcde"), 5, 1, "abcdefghijklmnopqrst", 19, -19);
+ test(S("abcde"), 5, 1, "abcdefghijklmnopqrst", 20, -20);
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test4()
-{
- test(S("abcde"), 6, 0, "", 0, 0);
- test(S("abcde"), 6, 0, "abcde", 0, 0);
- test(S("abcde"), 6, 0, "abcde", 1, 0);
- test(S("abcde"), 6, 0, "abcde", 2, 0);
- test(S("abcde"), 6, 0, "abcde", 4, 0);
- test(S("abcde"), 6, 0, "abcde", 5, 0);
- test(S("abcde"), 6, 0, "abcdefghij", 0, 0);
- test(S("abcde"), 6, 0, "abcdefghij", 1, 0);
- test(S("abcde"), 6, 0, "abcdefghij", 5, 0);
- test(S("abcde"), 6, 0, "abcdefghij", 9, 0);
- test(S("abcde"), 6, 0, "abcdefghij", 10, 0);
- test(S("abcde"), 6, 0, "abcdefghijklmnopqrst", 0, 0);
- test(S("abcde"), 6, 0, "abcdefghijklmnopqrst", 1, 0);
- test(S("abcde"), 6, 0, "abcdefghijklmnopqrst", 10, 0);
- test(S("abcde"), 6, 0, "abcdefghijklmnopqrst", 19, 0);
- test(S("abcde"), 6, 0, "abcdefghijklmnopqrst", 20, 0);
- test(S("abcdefghij"), 0, 0, "", 0, 0);
- test(S("abcdefghij"), 0, 0, "abcde", 0, 0);
- test(S("abcdefghij"), 0, 0, "abcde", 1, -1);
- test(S("abcdefghij"), 0, 0, "abcde", 2, -2);
- test(S("abcdefghij"), 0, 0, "abcde", 4, -4);
- test(S("abcdefghij"), 0, 0, "abcde", 5, -5);
- test(S("abcdefghij"), 0, 0, "abcdefghij", 0, 0);
- test(S("abcdefghij"), 0, 0, "abcdefghij", 1, -1);
- test(S("abcdefghij"), 0, 0, "abcdefghij", 5, -5);
- test(S("abcdefghij"), 0, 0, "abcdefghij", 9, -9);
- test(S("abcdefghij"), 0, 0, "abcdefghij", 10, -10);
- test(S("abcdefghij"), 0, 0, "abcdefghijklmnopqrst", 0, 0);
- test(S("abcdefghij"), 0, 0, "abcdefghijklmnopqrst", 1, -1);
- test(S("abcdefghij"), 0, 0, "abcdefghijklmnopqrst", 10, -10);
- test(S("abcdefghij"), 0, 0, "abcdefghijklmnopqrst", 19, -19);
- test(S("abcdefghij"), 0, 0, "abcdefghijklmnopqrst", 20, -20);
- test(S("abcdefghij"), 0, 1, "", 0, 1);
- test(S("abcdefghij"), 0, 1, "abcde", 0, 1);
- test(S("abcdefghij"), 0, 1, "abcde", 1, 0);
- test(S("abcdefghij"), 0, 1, "abcde", 2, -1);
- test(S("abcdefghij"), 0, 1, "abcde", 4, -3);
- test(S("abcdefghij"), 0, 1, "abcde", 5, -4);
- test(S("abcdefghij"), 0, 1, "abcdefghij", 0, 1);
- test(S("abcdefghij"), 0, 1, "abcdefghij", 1, 0);
- test(S("abcdefghij"), 0, 1, "abcdefghij", 5, -4);
- test(S("abcdefghij"), 0, 1, "abcdefghij", 9, -8);
- test(S("abcdefghij"), 0, 1, "abcdefghij", 10, -9);
- test(S("abcdefghij"), 0, 1, "abcdefghijklmnopqrst", 0, 1);
- test(S("abcdefghij"), 0, 1, "abcdefghijklmnopqrst", 1, 0);
- test(S("abcdefghij"), 0, 1, "abcdefghijklmnopqrst", 10, -9);
- test(S("abcdefghij"), 0, 1, "abcdefghijklmnopqrst", 19, -18);
- test(S("abcdefghij"), 0, 1, "abcdefghijklmnopqrst", 20, -19);
- test(S("abcdefghij"), 0, 5, "", 0, 5);
- test(S("abcdefghij"), 0, 5, "abcde", 0, 5);
- test(S("abcdefghij"), 0, 5, "abcde", 1, 4);
- test(S("abcdefghij"), 0, 5, "abcde", 2, 3);
- test(S("abcdefghij"), 0, 5, "abcde", 4, 1);
- test(S("abcdefghij"), 0, 5, "abcde", 5, 0);
- test(S("abcdefghij"), 0, 5, "abcdefghij", 0, 5);
- test(S("abcdefghij"), 0, 5, "abcdefghij", 1, 4);
- test(S("abcdefghij"), 0, 5, "abcdefghij", 5, 0);
- test(S("abcdefghij"), 0, 5, "abcdefghij", 9, -4);
- test(S("abcdefghij"), 0, 5, "abcdefghij", 10, -5);
- test(S("abcdefghij"), 0, 5, "abcdefghijklmnopqrst", 0, 5);
- test(S("abcdefghij"), 0, 5, "abcdefghijklmnopqrst", 1, 4);
- test(S("abcdefghij"), 0, 5, "abcdefghijklmnopqrst", 10, -5);
- test(S("abcdefghij"), 0, 5, "abcdefghijklmnopqrst", 19, -14);
- test(S("abcdefghij"), 0, 5, "abcdefghijklmnopqrst", 20, -15);
- test(S("abcdefghij"), 0, 9, "", 0, 9);
- test(S("abcdefghij"), 0, 9, "abcde", 0, 9);
- test(S("abcdefghij"), 0, 9, "abcde", 1, 8);
- test(S("abcdefghij"), 0, 9, "abcde", 2, 7);
- test(S("abcdefghij"), 0, 9, "abcde", 4, 5);
- test(S("abcdefghij"), 0, 9, "abcde", 5, 4);
- test(S("abcdefghij"), 0, 9, "abcdefghij", 0, 9);
- test(S("abcdefghij"), 0, 9, "abcdefghij", 1, 8);
- test(S("abcdefghij"), 0, 9, "abcdefghij", 5, 4);
- test(S("abcdefghij"), 0, 9, "abcdefghij", 9, 0);
- test(S("abcdefghij"), 0, 9, "abcdefghij", 10, -1);
- test(S("abcdefghij"), 0, 9, "abcdefghijklmnopqrst", 0, 9);
- test(S("abcdefghij"), 0, 9, "abcdefghijklmnopqrst", 1, 8);
- test(S("abcdefghij"), 0, 9, "abcdefghijklmnopqrst", 10, -1);
- test(S("abcdefghij"), 0, 9, "abcdefghijklmnopqrst", 19, -10);
- test(S("abcdefghij"), 0, 9, "abcdefghijklmnopqrst", 20, -11);
- test(S("abcdefghij"), 0, 10, "", 0, 10);
- test(S("abcdefghij"), 0, 10, "abcde", 0, 10);
- test(S("abcdefghij"), 0, 10, "abcde", 1, 9);
- test(S("abcdefghij"), 0, 10, "abcde", 2, 8);
- test(S("abcdefghij"), 0, 10, "abcde", 4, 6);
- test(S("abcdefghij"), 0, 10, "abcde", 5, 5);
- test(S("abcdefghij"), 0, 10, "abcdefghij", 0, 10);
- test(S("abcdefghij"), 0, 10, "abcdefghij", 1, 9);
- test(S("abcdefghij"), 0, 10, "abcdefghij", 5, 5);
- test(S("abcdefghij"), 0, 10, "abcdefghij", 9, 1);
- test(S("abcdefghij"), 0, 10, "abcdefghij", 10, 0);
- test(S("abcdefghij"), 0, 10, "abcdefghijklmnopqrst", 0, 10);
- test(S("abcdefghij"), 0, 10, "abcdefghijklmnopqrst", 1, 9);
- test(S("abcdefghij"), 0, 10, "abcdefghijklmnopqrst", 10, 0);
- test(S("abcdefghij"), 0, 10, "abcdefghijklmnopqrst", 19, -9);
- test(S("abcdefghij"), 0, 10, "abcdefghijklmnopqrst", 20, -10);
- test(S("abcdefghij"), 0, 11, "", 0, 10);
- test(S("abcdefghij"), 0, 11, "abcde", 0, 10);
- test(S("abcdefghij"), 0, 11, "abcde", 1, 9);
- test(S("abcdefghij"), 0, 11, "abcde", 2, 8);
+TEST_CONSTEXPR_CXX20 bool test4() {
+ test(S("abcde"), 6, 0, "", 0, 0);
+ test(S("abcde"), 6, 0, "abcde", 0, 0);
+ test(S("abcde"), 6, 0, "abcde", 1, 0);
+ test(S("abcde"), 6, 0, "abcde", 2, 0);
+ test(S("abcde"), 6, 0, "abcde", 4, 0);
+ test(S("abcde"), 6, 0, "abcde", 5, 0);
+ test(S("abcde"), 6, 0, "abcdefghij", 0, 0);
+ test(S("abcde"), 6, 0, "abcdefghij", 1, 0);
+ test(S("abcde"), 6, 0, "abcdefghij", 5, 0);
+ test(S("abcde"), 6, 0, "abcdefghij", 9, 0);
+ test(S("abcde"), 6, 0, "abcdefghij", 10, 0);
+ test(S("abcde"), 6, 0, "abcdefghijklmnopqrst", 0, 0);
+ test(S("abcde"), 6, 0, "abcdefghijklmnopqrst", 1, 0);
+ test(S("abcde"), 6, 0, "abcdefghijklmnopqrst", 10, 0);
+ test(S("abcde"), 6, 0, "abcdefghijklmnopqrst", 19, 0);
+ test(S("abcde"), 6, 0, "abcdefghijklmnopqrst", 20, 0);
+ test(S("abcdefghij"), 0, 0, "", 0, 0);
+ test(S("abcdefghij"), 0, 0, "abcde", 0, 0);
+ test(S("abcdefghij"), 0, 0, "abcde", 1, -1);
+ test(S("abcdefghij"), 0, 0, "abcde", 2, -2);
+ test(S("abcdefghij"), 0, 0, "abcde", 4, -4);
+ test(S("abcdefghij"), 0, 0, "abcde", 5, -5);
+ test(S("abcdefghij"), 0, 0, "abcdefghij", 0, 0);
+ test(S("abcdefghij"), 0, 0, "abcdefghij", 1, -1);
+ test(S("abcdefghij"), 0, 0, "abcdefghij", 5, -5);
+ test(S("abcdefghij"), 0, 0, "abcdefghij", 9, -9);
+ test(S("abcdefghij"), 0, 0, "abcdefghij", 10, -10);
+ test(S("abcdefghij"), 0, 0, "abcdefghijklmnopqrst", 0, 0);
+ test(S("abcdefghij"), 0, 0, "abcdefghijklmnopqrst", 1, -1);
+ test(S("abcdefghij"), 0, 0, "abcdefghijklmnopqrst", 10, -10);
+ test(S("abcdefghij"), 0, 0, "abcdefghijklmnopqrst", 19, -19);
+ test(S("abcdefghij"), 0, 0, "abcdefghijklmnopqrst", 20, -20);
+ test(S("abcdefghij"), 0, 1, "", 0, 1);
+ test(S("abcdefghij"), 0, 1, "abcde", 0, 1);
+ test(S("abcdefghij"), 0, 1, "abcde", 1, 0);
+ test(S("abcdefghij"), 0, 1, "abcde", 2, -1);
+ test(S("abcdefghij"), 0, 1, "abcde", 4, -3);
+ test(S("abcdefghij"), 0, 1, "abcde", 5, -4);
+ test(S("abcdefghij"), 0, 1, "abcdefghij", 0, 1);
+ test(S("abcdefghij"), 0, 1, "abcdefghij", 1, 0);
+ test(S("abcdefghij"), 0, 1, "abcdefghij", 5, -4);
+ test(S("abcdefghij"), 0, 1, "abcdefghij", 9, -8);
+ test(S("abcdefghij"), 0, 1, "abcdefghij", 10, -9);
+ test(S("abcdefghij"), 0, 1, "abcdefghijklmnopqrst", 0, 1);
+ test(S("abcdefghij"), 0, 1, "abcdefghijklmnopqrst", 1, 0);
+ test(S("abcdefghij"), 0, 1, "abcdefghijklmnopqrst", 10, -9);
+ test(S("abcdefghij"), 0, 1, "abcdefghijklmnopqrst", 19, -18);
+ test(S("abcdefghij"), 0, 1, "abcdefghijklmnopqrst", 20, -19);
+ test(S("abcdefghij"), 0, 5, "", 0, 5);
+ test(S("abcdefghij"), 0, 5, "abcde", 0, 5);
+ test(S("abcdefghij"), 0, 5, "abcde", 1, 4);
+ test(S("abcdefghij"), 0, 5, "abcde", 2, 3);
+ test(S("abcdefghij"), 0, 5, "abcde", 4, 1);
+ test(S("abcdefghij"), 0, 5, "abcde", 5, 0);
+ test(S("abcdefghij"), 0, 5, "abcdefghij", 0, 5);
+ test(S("abcdefghij"), 0, 5, "abcdefghij", 1, 4);
+ test(S("abcdefghij"), 0, 5, "abcdefghij", 5, 0);
+ test(S("abcdefghij"), 0, 5, "abcdefghij", 9, -4);
+ test(S("abcdefghij"), 0, 5, "abcdefghij", 10, -5);
+ test(S("abcdefghij"), 0, 5, "abcdefghijklmnopqrst", 0, 5);
+ test(S("abcdefghij"), 0, 5, "abcdefghijklmnopqrst", 1, 4);
+ test(S("abcdefghij"), 0, 5, "abcdefghijklmnopqrst", 10, -5);
+ test(S("abcdefghij"), 0, 5, "abcdefghijklmnopqrst", 19, -14);
+ test(S("abcdefghij"), 0, 5, "abcdefghijklmnopqrst", 20, -15);
+ test(S("abcdefghij"), 0, 9, "", 0, 9);
+ test(S("abcdefghij"), 0, 9, "abcde", 0, 9);
+ test(S("abcdefghij"), 0, 9, "abcde", 1, 8);
+ test(S("abcdefghij"), 0, 9, "abcde", 2, 7);
+ test(S("abcdefghij"), 0, 9, "abcde", 4, 5);
+ test(S("abcdefghij"), 0, 9, "abcde", 5, 4);
+ test(S("abcdefghij"), 0, 9, "abcdefghij", 0, 9);
+ test(S("abcdefghij"), 0, 9, "abcdefghij", 1, 8);
+ test(S("abcdefghij"), 0, 9, "abcdefghij", 5, 4);
+ test(S("abcdefghij"), 0, 9, "abcdefghij", 9, 0);
+ test(S("abcdefghij"), 0, 9, "abcdefghij", 10, -1);
+ test(S("abcdefghij"), 0, 9, "abcdefghijklmnopqrst", 0, 9);
+ test(S("abcdefghij"), 0, 9, "abcdefghijklmnopqrst", 1, 8);
+ test(S("abcdefghij"), 0, 9, "abcdefghijklmnopqrst", 10, -1);
+ test(S("abcdefghij"), 0, 9, "abcdefghijklmnopqrst", 19, -10);
+ test(S("abcdefghij"), 0, 9, "abcdefghijklmnopqrst", 20, -11);
+ test(S("abcdefghij"), 0, 10, "", 0, 10);
+ test(S("abcdefghij"), 0, 10, "abcde", 0, 10);
+ test(S("abcdefghij"), 0, 10, "abcde", 1, 9);
+ test(S("abcdefghij"), 0, 10, "abcde", 2, 8);
+ test(S("abcdefghij"), 0, 10, "abcde", 4, 6);
+ test(S("abcdefghij"), 0, 10, "abcde", 5, 5);
+ test(S("abcdefghij"), 0, 10, "abcdefghij", 0, 10);
+ test(S("abcdefghij"), 0, 10, "abcdefghij", 1, 9);
+ test(S("abcdefghij"), 0, 10, "abcdefghij", 5, 5);
+ test(S("abcdefghij"), 0, 10, "abcdefghij", 9, 1);
+ test(S("abcdefghij"), 0, 10, "abcdefghij", 10, 0);
+ test(S("abcdefghij"), 0, 10, "abcdefghijklmnopqrst", 0, 10);
+ test(S("abcdefghij"), 0, 10, "abcdefghijklmnopqrst", 1, 9);
+ test(S("abcdefghij"), 0, 10, "abcdefghijklmnopqrst", 10, 0);
+ test(S("abcdefghij"), 0, 10, "abcdefghijklmnopqrst", 19, -9);
+ test(S("abcdefghij"), 0, 10, "abcdefghijklmnopqrst", 20, -10);
+ test(S("abcdefghij"), 0, 11, "", 0, 10);
+ test(S("abcdefghij"), 0, 11, "abcde", 0, 10);
+ test(S("abcdefghij"), 0, 11, "abcde", 1, 9);
+ test(S("abcdefghij"), 0, 11, "abcde", 2, 8);
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test5()
-{
- test(S("abcdefghij"), 0, 11, "abcde", 4, 6);
- test(S("abcdefghij"), 0, 11, "abcde", 5, 5);
- test(S("abcdefghij"), 0, 11, "abcdefghij", 0, 10);
- test(S("abcdefghij"), 0, 11, "abcdefghij", 1, 9);
- test(S("abcdefghij"), 0, 11, "abcdefghij", 5, 5);
- test(S("abcdefghij"), 0, 11, "abcdefghij", 9, 1);
- test(S("abcdefghij"), 0, 11, "abcdefghij", 10, 0);
- test(S("abcdefghij"), 0, 11, "abcdefghijklmnopqrst", 0, 10);
- test(S("abcdefghij"), 0, 11, "abcdefghijklmnopqrst", 1, 9);
- test(S("abcdefghij"), 0, 11, "abcdefghijklmnopqrst", 10, 0);
- test(S("abcdefghij"), 0, 11, "abcdefghijklmnopqrst", 19, -9);
- test(S("abcdefghij"), 0, 11, "abcdefghijklmnopqrst", 20, -10);
- test(S("abcdefghij"), 1, 0, "", 0, 0);
- test(S("abcdefghij"), 1, 0, "abcde", 0, 0);
- test(S("abcdefghij"), 1, 0, "abcde", 1, -1);
- test(S("abcdefghij"), 1, 0, "abcde", 2, -2);
- test(S("abcdefghij"), 1, 0, "abcde", 4, -4);
- test(S("abcdefghij"), 1, 0, "abcde", 5, -5);
- test(S("abcdefghij"), 1, 0, "abcdefghij", 0, 0);
- test(S("abcdefghij"), 1, 0, "abcdefghij", 1, -1);
- test(S("abcdefghij"), 1, 0, "abcdefghij", 5, -5);
- test(S("abcdefghij"), 1, 0, "abcdefghij", 9, -9);
- test(S("abcdefghij"), 1, 0, "abcdefghij", 10, -10);
- test(S("abcdefghij"), 1, 0, "abcdefghijklmnopqrst", 0, 0);
- test(S("abcdefghij"), 1, 0, "abcdefghijklmnopqrst", 1, -1);
- test(S("abcdefghij"), 1, 0, "abcdefghijklmnopqrst", 10, -10);
- test(S("abcdefghij"), 1, 0, "abcdefghijklmnopqrst", 19, -19);
- test(S("abcdefghij"), 1, 0, "abcdefghijklmnopqrst", 20, -20);
- test(S("abcdefghij"), 1, 1, "", 0, 1);
- test(S("abcdefghij"), 1, 1, "abcde", 0, 1);
- test(S("abcdefghij"), 1, 1, "abcde", 1, 1);
- test(S("abcdefghij"), 1, 1, "abcde", 2, 1);
- test(S("abcdefghij"), 1, 1, "abcde", 4, 1);
- test(S("abcdefghij"), 1, 1, "abcde", 5, 1);
- test(S("abcdefghij"), 1, 1, "abcdefghij", 0, 1);
- test(S("abcdefghij"), 1, 1, "abcdefghij", 1, 1);
- test(S("abcdefghij"), 1, 1, "abcdefghij", 5, 1);
- test(S("abcdefghij"), 1, 1, "abcdefghij", 9, 1);
- test(S("abcdefghij"), 1, 1, "abcdefghij", 10, 1);
- test(S("abcdefghij"), 1, 1, "abcdefghijklmnopqrst", 0, 1);
- test(S("abcdefghij"), 1, 1, "abcdefghijklmnopqrst", 1, 1);
- test(S("abcdefghij"), 1, 1, "abcdefghijklmnopqrst", 10, 1);
- test(S("abcdefghij"), 1, 1, "abcdefghijklmnopqrst", 19, 1);
- test(S("abcdefghij"), 1, 1, "abcdefghijklmnopqrst", 20, 1);
- test(S("abcdefghij"), 1, 4, "", 0, 4);
- test(S("abcdefghij"), 1, 4, "abcde", 0, 4);
- test(S("abcdefghij"), 1, 4, "abcde", 1, 1);
- test(S("abcdefghij"), 1, 4, "abcde", 2, 1);
- test(S("abcdefghij"), 1, 4, "abcde", 4, 1);
- test(S("abcdefghij"), 1, 4, "abcde", 5, 1);
- test(S("abcdefghij"), 1, 4, "abcdefghij", 0, 4);
- test(S("abcdefghij"), 1, 4, "abcdefghij", 1, 1);
- test(S("abcdefghij"), 1, 4, "abcdefghij", 5, 1);
- test(S("abcdefghij"), 1, 4, "abcdefghij", 9, 1);
- test(S("abcdefghij"), 1, 4, "abcdefghij", 10, 1);
- test(S("abcdefghij"), 1, 4, "abcdefghijklmnopqrst", 0, 4);
- test(S("abcdefghij"), 1, 4, "abcdefghijklmnopqrst", 1, 1);
- test(S("abcdefghij"), 1, 4, "abcdefghijklmnopqrst", 10, 1);
- test(S("abcdefghij"), 1, 4, "abcdefghijklmnopqrst", 19, 1);
- test(S("abcdefghij"), 1, 4, "abcdefghijklmnopqrst", 20, 1);
- test(S("abcdefghij"), 1, 8, "", 0, 8);
- test(S("abcdefghij"), 1, 8, "abcde", 0, 8);
- test(S("abcdefghij"), 1, 8, "abcde", 1, 1);
- test(S("abcdefghij"), 1, 8, "abcde", 2, 1);
- test(S("abcdefghij"), 1, 8, "abcde", 4, 1);
- test(S("abcdefghij"), 1, 8, "abcde", 5, 1);
- test(S("abcdefghij"), 1, 8, "abcdefghij", 0, 8);
- test(S("abcdefghij"), 1, 8, "abcdefghij", 1, 1);
- test(S("abcdefghij"), 1, 8, "abcdefghij", 5, 1);
- test(S("abcdefghij"), 1, 8, "abcdefghij", 9, 1);
- test(S("abcdefghij"), 1, 8, "abcdefghij", 10, 1);
- test(S("abcdefghij"), 1, 8, "abcdefghijklmnopqrst", 0, 8);
- test(S("abcdefghij"), 1, 8, "abcdefghijklmnopqrst", 1, 1);
- test(S("abcdefghij"), 1, 8, "abcdefghijklmnopqrst", 10, 1);
- test(S("abcdefghij"), 1, 8, "abcdefghijklmnopqrst", 19, 1);
- test(S("abcdefghij"), 1, 8, "abcdefghijklmnopqrst", 20, 1);
- test(S("abcdefghij"), 1, 9, "", 0, 9);
- test(S("abcdefghij"), 1, 9, "abcde", 0, 9);
- test(S("abcdefghij"), 1, 9, "abcde", 1, 1);
- test(S("abcdefghij"), 1, 9, "abcde", 2, 1);
- test(S("abcdefghij"), 1, 9, "abcde", 4, 1);
- test(S("abcdefghij"), 1, 9, "abcde", 5, 1);
- test(S("abcdefghij"), 1, 9, "abcdefghij", 0, 9);
- test(S("abcdefghij"), 1, 9, "abcdefghij", 1, 1);
- test(S("abcdefghij"), 1, 9, "abcdefghij", 5, 1);
- test(S("abcdefghij"), 1, 9, "abcdefghij", 9, 1);
- test(S("abcdefghij"), 1, 9, "abcdefghij", 10, 1);
- test(S("abcdefghij"), 1, 9, "abcdefghijklmnopqrst", 0, 9);
- test(S("abcdefghij"), 1, 9, "abcdefghijklmnopqrst", 1, 1);
- test(S("abcdefghij"), 1, 9, "abcdefghijklmnopqrst", 10, 1);
- test(S("abcdefghij"), 1, 9, "abcdefghijklmnopqrst", 19, 1);
- test(S("abcdefghij"), 1, 9, "abcdefghijklmnopqrst", 20, 1);
- test(S("abcdefghij"), 1, 10, "", 0, 9);
- test(S("abcdefghij"), 1, 10, "abcde", 0, 9);
- test(S("abcdefghij"), 1, 10, "abcde", 1, 1);
- test(S("abcdefghij"), 1, 10, "abcde", 2, 1);
- test(S("abcdefghij"), 1, 10, "abcde", 4, 1);
- test(S("abcdefghij"), 1, 10, "abcde", 5, 1);
- test(S("abcdefghij"), 1, 10, "abcdefghij", 0, 9);
- test(S("abcdefghij"), 1, 10, "abcdefghij", 1, 1);
+TEST_CONSTEXPR_CXX20 bool test5() {
+ test(S("abcdefghij"), 0, 11, "abcde", 4, 6);
+ test(S("abcdefghij"), 0, 11, "abcde", 5, 5);
+ test(S("abcdefghij"), 0, 11, "abcdefghij", 0, 10);
+ test(S("abcdefghij"), 0, 11, "abcdefghij", 1, 9);
+ test(S("abcdefghij"), 0, 11, "abcdefghij", 5, 5);
+ test(S("abcdefghij"), 0, 11, "abcdefghij", 9, 1);
+ test(S("abcdefghij"), 0, 11, "abcdefghij", 10, 0);
+ test(S("abcdefghij"), 0, 11, "abcdefghijklmnopqrst", 0, 10);
+ test(S("abcdefghij"), 0, 11, "abcdefghijklmnopqrst", 1, 9);
+ test(S("abcdefghij"), 0, 11, "abcdefghijklmnopqrst", 10, 0);
+ test(S("abcdefghij"), 0, 11, "abcdefghijklmnopqrst", 19, -9);
+ test(S("abcdefghij"), 0, 11, "abcdefghijklmnopqrst", 20, -10);
+ test(S("abcdefghij"), 1, 0, "", 0, 0);
+ test(S("abcdefghij"), 1, 0, "abcde", 0, 0);
+ test(S("abcdefghij"), 1, 0, "abcde", 1, -1);
+ test(S("abcdefghij"), 1, 0, "abcde", 2, -2);
+ test(S("abcdefghij"), 1, 0, "abcde", 4, -4);
+ test(S("abcdefghij"), 1, 0, "abcde", 5, -5);
+ test(S("abcdefghij"), 1, 0, "abcdefghij", 0, 0);
+ test(S("abcdefghij"), 1, 0, "abcdefghij", 1, -1);
+ test(S("abcdefghij"), 1, 0, "abcdefghij", 5, -5);
+ test(S("abcdefghij"), 1, 0, "abcdefghij", 9, -9);
+ test(S("abcdefghij"), 1, 0, "abcdefghij", 10, -10);
+ test(S("abcdefghij"), 1, 0, "abcdefghijklmnopqrst", 0, 0);
+ test(S("abcdefghij"), 1, 0, "abcdefghijklmnopqrst", 1, -1);
+ test(S("abcdefghij"), 1, 0, "abcdefghijklmnopqrst", 10, -10);
+ test(S("abcdefghij"), 1, 0, "abcdefghijklmnopqrst", 19, -19);
+ test(S("abcdefghij"), 1, 0, "abcdefghijklmnopqrst", 20, -20);
+ test(S("abcdefghij"), 1, 1, "", 0, 1);
+ test(S("abcdefghij"), 1, 1, "abcde", 0, 1);
+ test(S("abcdefghij"), 1, 1, "abcde", 1, 1);
+ test(S("abcdefghij"), 1, 1, "abcde", 2, 1);
+ test(S("abcdefghij"), 1, 1, "abcde", 4, 1);
+ test(S("abcdefghij"), 1, 1, "abcde", 5, 1);
+ test(S("abcdefghij"), 1, 1, "abcdefghij", 0, 1);
+ test(S("abcdefghij"), 1, 1, "abcdefghij", 1, 1);
+ test(S("abcdefghij"), 1, 1, "abcdefghij", 5, 1);
+ test(S("abcdefghij"), 1, 1, "abcdefghij", 9, 1);
+ test(S("abcdefghij"), 1, 1, "abcdefghij", 10, 1);
+ test(S("abcdefghij"), 1, 1, "abcdefghijklmnopqrst", 0, 1);
+ test(S("abcdefghij"), 1, 1, "abcdefghijklmnopqrst", 1, 1);
+ test(S("abcdefghij"), 1, 1, "abcdefghijklmnopqrst", 10, 1);
+ test(S("abcdefghij"), 1, 1, "abcdefghijklmnopqrst", 19, 1);
+ test(S("abcdefghij"), 1, 1, "abcdefghijklmnopqrst", 20, 1);
+ test(S("abcdefghij"), 1, 4, "", 0, 4);
+ test(S("abcdefghij"), 1, 4, "abcde", 0, 4);
+ test(S("abcdefghij"), 1, 4, "abcde", 1, 1);
+ test(S("abcdefghij"), 1, 4, "abcde", 2, 1);
+ test(S("abcdefghij"), 1, 4, "abcde", 4, 1);
+ test(S("abcdefghij"), 1, 4, "abcde", 5, 1);
+ test(S("abcdefghij"), 1, 4, "abcdefghij", 0, 4);
+ test(S("abcdefghij"), 1, 4, "abcdefghij", 1, 1);
+ test(S("abcdefghij"), 1, 4, "abcdefghij", 5, 1);
+ test(S("abcdefghij"), 1, 4, "abcdefghij", 9, 1);
+ test(S("abcdefghij"), 1, 4, "abcdefghij", 10, 1);
+ test(S("abcdefghij"), 1, 4, "abcdefghijklmnopqrst", 0, 4);
+ test(S("abcdefghij"), 1, 4, "abcdefghijklmnopqrst", 1, 1);
+ test(S("abcdefghij"), 1, 4, "abcdefghijklmnopqrst", 10, 1);
+ test(S("abcdefghij"), 1, 4, "abcdefghijklmnopqrst", 19, 1);
+ test(S("abcdefghij"), 1, 4, "abcdefghijklmnopqrst", 20, 1);
+ test(S("abcdefghij"), 1, 8, "", 0, 8);
+ test(S("abcdefghij"), 1, 8, "abcde", 0, 8);
+ test(S("abcdefghij"), 1, 8, "abcde", 1, 1);
+ test(S("abcdefghij"), 1, 8, "abcde", 2, 1);
+ test(S("abcdefghij"), 1, 8, "abcde", 4, 1);
+ test(S("abcdefghij"), 1, 8, "abcde", 5, 1);
+ test(S("abcdefghij"), 1, 8, "abcdefghij", 0, 8);
+ test(S("abcdefghij"), 1, 8, "abcdefghij", 1, 1);
+ test(S("abcdefghij"), 1, 8, "abcdefghij", 5, 1);
+ test(S("abcdefghij"), 1, 8, "abcdefghij", 9, 1);
+ test(S("abcdefghij"), 1, 8, "abcdefghij", 10, 1);
+ test(S("abcdefghij"), 1, 8, "abcdefghijklmnopqrst", 0, 8);
+ test(S("abcdefghij"), 1, 8, "abcdefghijklmnopqrst", 1, 1);
+ test(S("abcdefghij"), 1, 8, "abcdefghijklmnopqrst", 10, 1);
+ test(S("abcdefghij"), 1, 8, "abcdefghijklmnopqrst", 19, 1);
+ test(S("abcdefghij"), 1, 8, "abcdefghijklmnopqrst", 20, 1);
+ test(S("abcdefghij"), 1, 9, "", 0, 9);
+ test(S("abcdefghij"), 1, 9, "abcde", 0, 9);
+ test(S("abcdefghij"), 1, 9, "abcde", 1, 1);
+ test(S("abcdefghij"), 1, 9, "abcde", 2, 1);
+ test(S("abcdefghij"), 1, 9, "abcde", 4, 1);
+ test(S("abcdefghij"), 1, 9, "abcde", 5, 1);
+ test(S("abcdefghij"), 1, 9, "abcdefghij", 0, 9);
+ test(S("abcdefghij"), 1, 9, "abcdefghij", 1, 1);
+ test(S("abcdefghij"), 1, 9, "abcdefghij", 5, 1);
+ test(S("abcdefghij"), 1, 9, "abcdefghij", 9, 1);
+ test(S("abcdefghij"), 1, 9, "abcdefghij", 10, 1);
+ test(S("abcdefghij"), 1, 9, "abcdefghijklmnopqrst", 0, 9);
+ test(S("abcdefghij"), 1, 9, "abcdefghijklmnopqrst", 1, 1);
+ test(S("abcdefghij"), 1, 9, "abcdefghijklmnopqrst", 10, 1);
+ test(S("abcdefghij"), 1, 9, "abcdefghijklmnopqrst", 19, 1);
+ test(S("abcdefghij"), 1, 9, "abcdefghijklmnopqrst", 20, 1);
+ test(S("abcdefghij"), 1, 10, "", 0, 9);
+ test(S("abcdefghij"), 1, 10, "abcde", 0, 9);
+ test(S("abcdefghij"), 1, 10, "abcde", 1, 1);
+ test(S("abcdefghij"), 1, 10, "abcde", 2, 1);
+ test(S("abcdefghij"), 1, 10, "abcde", 4, 1);
+ test(S("abcdefghij"), 1, 10, "abcde", 5, 1);
+ test(S("abcdefghij"), 1, 10, "abcdefghij", 0, 9);
+ test(S("abcdefghij"), 1, 10, "abcdefghij", 1, 1);
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test6()
-{
- test(S("abcdefghij"), 1, 10, "abcdefghij", 5, 1);
- test(S("abcdefghij"), 1, 10, "abcdefghij", 9, 1);
- test(S("abcdefghij"), 1, 10, "abcdefghij", 10, 1);
- test(S("abcdefghij"), 1, 10, "abcdefghijklmnopqrst", 0, 9);
- test(S("abcdefghij"), 1, 10, "abcdefghijklmnopqrst", 1, 1);
- test(S("abcdefghij"), 1, 10, "abcdefghijklmnopqrst", 10, 1);
- test(S("abcdefghij"), 1, 10, "abcdefghijklmnopqrst", 19, 1);
- test(S("abcdefghij"), 1, 10, "abcdefghijklmnopqrst", 20, 1);
- test(S("abcdefghij"), 5, 0, "", 0, 0);
- test(S("abcdefghij"), 5, 0, "abcde", 0, 0);
- test(S("abcdefghij"), 5, 0, "abcde", 1, -1);
- test(S("abcdefghij"), 5, 0, "abcde", 2, -2);
- test(S("abcdefghij"), 5, 0, "abcde", 4, -4);
- test(S("abcdefghij"), 5, 0, "abcde", 5, -5);
- test(S("abcdefghij"), 5, 0, "abcdefghij", 0, 0);
- test(S("abcdefghij"), 5, 0, "abcdefghij", 1, -1);
- test(S("abcdefghij"), 5, 0, "abcdefghij", 5, -5);
- test(S("abcdefghij"), 5, 0, "abcdefghij", 9, -9);
- test(S("abcdefghij"), 5, 0, "abcdefghij", 10, -10);
- test(S("abcdefghij"), 5, 0, "abcdefghijklmnopqrst", 0, 0);
- test(S("abcdefghij"), 5, 0, "abcdefghijklmnopqrst", 1, -1);
- test(S("abcdefghij"), 5, 0, "abcdefghijklmnopqrst", 10, -10);
- test(S("abcdefghij"), 5, 0, "abcdefghijklmnopqrst", 19, -19);
- test(S("abcdefghij"), 5, 0, "abcdefghijklmnopqrst", 20, -20);
- test(S("abcdefghij"), 5, 1, "", 0, 1);
- test(S("abcdefghij"), 5, 1, "abcde", 0, 1);
- test(S("abcdefghij"), 5, 1, "abcde", 1, 5);
- test(S("abcdefghij"), 5, 1, "abcde", 2, 5);
- test(S("abcdefghij"), 5, 1, "abcde", 4, 5);
- test(S("abcdefghij"), 5, 1, "abcde", 5, 5);
- test(S("abcdefghij"), 5, 1, "abcdefghij", 0, 1);
- test(S("abcdefghij"), 5, 1, "abcdefghij", 1, 5);
- test(S("abcdefghij"), 5, 1, "abcdefghij", 5, 5);
- test(S("abcdefghij"), 5, 1, "abcdefghij", 9, 5);
- test(S("abcdefghij"), 5, 1, "abcdefghij", 10, 5);
- test(S("abcdefghij"), 5, 1, "abcdefghijklmnopqrst", 0, 1);
- test(S("abcdefghij"), 5, 1, "abcdefghijklmnopqrst", 1, 5);
- test(S("abcdefghij"), 5, 1, "abcdefghijklmnopqrst", 10, 5);
- test(S("abcdefghij"), 5, 1, "abcdefghijklmnopqrst", 19, 5);
- test(S("abcdefghij"), 5, 1, "abcdefghijklmnopqrst", 20, 5);
- test(S("abcdefghij"), 5, 2, "", 0, 2);
- test(S("abcdefghij"), 5, 2, "abcde", 0, 2);
- test(S("abcdefghij"), 5, 2, "abcde", 1, 5);
- test(S("abcdefghij"), 5, 2, "abcde", 2, 5);
- test(S("abcdefghij"), 5, 2, "abcde", 4, 5);
- test(S("abcdefghij"), 5, 2, "abcde", 5, 5);
- test(S("abcdefghij"), 5, 2, "abcdefghij", 0, 2);
- test(S("abcdefghij"), 5, 2, "abcdefghij", 1, 5);
- test(S("abcdefghij"), 5, 2, "abcdefghij", 5, 5);
- test(S("abcdefghij"), 5, 2, "abcdefghij", 9, 5);
- test(S("abcdefghij"), 5, 2, "abcdefghij", 10, 5);
- test(S("abcdefghij"), 5, 2, "abcdefghijklmnopqrst", 0, 2);
- test(S("abcdefghij"), 5, 2, "abcdefghijklmnopqrst", 1, 5);
- test(S("abcdefghij"), 5, 2, "abcdefghijklmnopqrst", 10, 5);
- test(S("abcdefghij"), 5, 2, "abcdefghijklmnopqrst", 19, 5);
- test(S("abcdefghij"), 5, 2, "abcdefghijklmnopqrst", 20, 5);
- test(S("abcdefghij"), 5, 4, "", 0, 4);
- test(S("abcdefghij"), 5, 4, "abcde", 0, 4);
- test(S("abcdefghij"), 5, 4, "abcde", 1, 5);
- test(S("abcdefghij"), 5, 4, "abcde", 2, 5);
- test(S("abcdefghij"), 5, 4, "abcde", 4, 5);
- test(S("abcdefghij"), 5, 4, "abcde", 5, 5);
- test(S("abcdefghij"), 5, 4, "abcdefghij", 0, 4);
- test(S("abcdefghij"), 5, 4, "abcdefghij", 1, 5);
- test(S("abcdefghij"), 5, 4, "abcdefghij", 5, 5);
- test(S("abcdefghij"), 5, 4, "abcdefghij", 9, 5);
- test(S("abcdefghij"), 5, 4, "abcdefghij", 10, 5);
- test(S("abcdefghij"), 5, 4, "abcdefghijklmnopqrst", 0, 4);
- test(S("abcdefghij"), 5, 4, "abcdefghijklmnopqrst", 1, 5);
- test(S("abcdefghij"), 5, 4, "abcdefghijklmnopqrst", 10, 5);
- test(S("abcdefghij"), 5, 4, "abcdefghijklmnopqrst", 19, 5);
- test(S("abcdefghij"), 5, 4, "abcdefghijklmnopqrst", 20, 5);
- test(S("abcdefghij"), 5, 5, "", 0, 5);
- test(S("abcdefghij"), 5, 5, "abcde", 0, 5);
- test(S("abcdefghij"), 5, 5, "abcde", 1, 5);
- test(S("abcdefghij"), 5, 5, "abcde", 2, 5);
- test(S("abcdefghij"), 5, 5, "abcde", 4, 5);
- test(S("abcdefghij"), 5, 5, "abcde", 5, 5);
- test(S("abcdefghij"), 5, 5, "abcdefghij", 0, 5);
- test(S("abcdefghij"), 5, 5, "abcdefghij", 1, 5);
- test(S("abcdefghij"), 5, 5, "abcdefghij", 5, 5);
- test(S("abcdefghij"), 5, 5, "abcdefghij", 9, 5);
- test(S("abcdefghij"), 5, 5, "abcdefghij", 10, 5);
- test(S("abcdefghij"), 5, 5, "abcdefghijklmnopqrst", 0, 5);
- test(S("abcdefghij"), 5, 5, "abcdefghijklmnopqrst", 1, 5);
- test(S("abcdefghij"), 5, 5, "abcdefghijklmnopqrst", 10, 5);
- test(S("abcdefghij"), 5, 5, "abcdefghijklmnopqrst", 19, 5);
- test(S("abcdefghij"), 5, 5, "abcdefghijklmnopqrst", 20, 5);
- test(S("abcdefghij"), 5, 6, "", 0, 5);
- test(S("abcdefghij"), 5, 6, "abcde", 0, 5);
- test(S("abcdefghij"), 5, 6, "abcde", 1, 5);
- test(S("abcdefghij"), 5, 6, "abcde", 2, 5);
- test(S("abcdefghij"), 5, 6, "abcde", 4, 5);
- test(S("abcdefghij"), 5, 6, "abcde", 5, 5);
- test(S("abcdefghij"), 5, 6, "abcdefghij", 0, 5);
- test(S("abcdefghij"), 5, 6, "abcdefghij", 1, 5);
- test(S("abcdefghij"), 5, 6, "abcdefghij", 5, 5);
- test(S("abcdefghij"), 5, 6, "abcdefghij", 9, 5);
- test(S("abcdefghij"), 5, 6, "abcdefghij", 10, 5);
- test(S("abcdefghij"), 5, 6, "abcdefghijklmnopqrst", 0, 5);
+TEST_CONSTEXPR_CXX20 bool test6() {
+ test(S("abcdefghij"), 1, 10, "abcdefghij", 5, 1);
+ test(S("abcdefghij"), 1, 10, "abcdefghij", 9, 1);
+ test(S("abcdefghij"), 1, 10, "abcdefghij", 10, 1);
+ test(S("abcdefghij"), 1, 10, "abcdefghijklmnopqrst", 0, 9);
+ test(S("abcdefghij"), 1, 10, "abcdefghijklmnopqrst", 1, 1);
+ test(S("abcdefghij"), 1, 10, "abcdefghijklmnopqrst", 10, 1);
+ test(S("abcdefghij"), 1, 10, "abcdefghijklmnopqrst", 19, 1);
+ test(S("abcdefghij"), 1, 10, "abcdefghijklmnopqrst", 20, 1);
+ test(S("abcdefghij"), 5, 0, "", 0, 0);
+ test(S("abcdefghij"), 5, 0, "abcde", 0, 0);
+ test(S("abcdefghij"), 5, 0, "abcde", 1, -1);
+ test(S("abcdefghij"), 5, 0, "abcde", 2, -2);
+ test(S("abcdefghij"), 5, 0, "abcde", 4, -4);
+ test(S("abcdefghij"), 5, 0, "abcde", 5, -5);
+ test(S("abcdefghij"), 5, 0, "abcdefghij", 0, 0);
+ test(S("abcdefghij"), 5, 0, "abcdefghij", 1, -1);
+ test(S("abcdefghij"), 5, 0, "abcdefghij", 5, -5);
+ test(S("abcdefghij"), 5, 0, "abcdefghij", 9, -9);
+ test(S("abcdefghij"), 5, 0, "abcdefghij", 10, -10);
+ test(S("abcdefghij"), 5, 0, "abcdefghijklmnopqrst", 0, 0);
+ test(S("abcdefghij"), 5, 0, "abcdefghijklmnopqrst", 1, -1);
+ test(S("abcdefghij"), 5, 0, "abcdefghijklmnopqrst", 10, -10);
+ test(S("abcdefghij"), 5, 0, "abcdefghijklmnopqrst", 19, -19);
+ test(S("abcdefghij"), 5, 0, "abcdefghijklmnopqrst", 20, -20);
+ test(S("abcdefghij"), 5, 1, "", 0, 1);
+ test(S("abcdefghij"), 5, 1, "abcde", 0, 1);
+ test(S("abcdefghij"), 5, 1, "abcde", 1, 5);
+ test(S("abcdefghij"), 5, 1, "abcde", 2, 5);
+ test(S("abcdefghij"), 5, 1, "abcde", 4, 5);
+ test(S("abcdefghij"), 5, 1, "abcde", 5, 5);
+ test(S("abcdefghij"), 5, 1, "abcdefghij", 0, 1);
+ test(S("abcdefghij"), 5, 1, "abcdefghij", 1, 5);
+ test(S("abcdefghij"), 5, 1, "abcdefghij", 5, 5);
+ test(S("abcdefghij"), 5, 1, "abcdefghij", 9, 5);
+ test(S("abcdefghij"), 5, 1, "abcdefghij", 10, 5);
+ test(S("abcdefghij"), 5, 1, "abcdefghijklmnopqrst", 0, 1);
+ test(S("abcdefghij"), 5, 1, "abcdefghijklmnopqrst", 1, 5);
+ test(S("abcdefghij"), 5, 1, "abcdefghijklmnopqrst", 10, 5);
+ test(S("abcdefghij"), 5, 1, "abcdefghijklmnopqrst", 19, 5);
+ test(S("abcdefghij"), 5, 1, "abcdefghijklmnopqrst", 20, 5);
+ test(S("abcdefghij"), 5, 2, "", 0, 2);
+ test(S("abcdefghij"), 5, 2, "abcde", 0, 2);
+ test(S("abcdefghij"), 5, 2, "abcde", 1, 5);
+ test(S("abcdefghij"), 5, 2, "abcde", 2, 5);
+ test(S("abcdefghij"), 5, 2, "abcde", 4, 5);
+ test(S("abcdefghij"), 5, 2, "abcde", 5, 5);
+ test(S("abcdefghij"), 5, 2, "abcdefghij", 0, 2);
+ test(S("abcdefghij"), 5, 2, "abcdefghij", 1, 5);
+ test(S("abcdefghij"), 5, 2, "abcdefghij", 5, 5);
+ test(S("abcdefghij"), 5, 2, "abcdefghij", 9, 5);
+ test(S("abcdefghij"), 5, 2, "abcdefghij", 10, 5);
+ test(S("abcdefghij"), 5, 2, "abcdefghijklmnopqrst", 0, 2);
+ test(S("abcdefghij"), 5, 2, "abcdefghijklmnopqrst", 1, 5);
+ test(S("abcdefghij"), 5, 2, "abcdefghijklmnopqrst", 10, 5);
+ test(S("abcdefghij"), 5, 2, "abcdefghijklmnopqrst", 19, 5);
+ test(S("abcdefghij"), 5, 2, "abcdefghijklmnopqrst", 20, 5);
+ test(S("abcdefghij"), 5, 4, "", 0, 4);
+ test(S("abcdefghij"), 5, 4, "abcde", 0, 4);
+ test(S("abcdefghij"), 5, 4, "abcde", 1, 5);
+ test(S("abcdefghij"), 5, 4, "abcde", 2, 5);
+ test(S("abcdefghij"), 5, 4, "abcde", 4, 5);
+ test(S("abcdefghij"), 5, 4, "abcde", 5, 5);
+ test(S("abcdefghij"), 5, 4, "abcdefghij", 0, 4);
+ test(S("abcdefghij"), 5, 4, "abcdefghij", 1, 5);
+ test(S("abcdefghij"), 5, 4, "abcdefghij", 5, 5);
+ test(S("abcdefghij"), 5, 4, "abcdefghij", 9, 5);
+ test(S("abcdefghij"), 5, 4, "abcdefghij", 10, 5);
+ test(S("abcdefghij"), 5, 4, "abcdefghijklmnopqrst", 0, 4);
+ test(S("abcdefghij"), 5, 4, "abcdefghijklmnopqrst", 1, 5);
+ test(S("abcdefghij"), 5, 4, "abcdefghijklmnopqrst", 10, 5);
+ test(S("abcdefghij"), 5, 4, "abcdefghijklmnopqrst", 19, 5);
+ test(S("abcdefghij"), 5, 4, "abcdefghijklmnopqrst", 20, 5);
+ test(S("abcdefghij"), 5, 5, "", 0, 5);
+ test(S("abcdefghij"), 5, 5, "abcde", 0, 5);
+ test(S("abcdefghij"), 5, 5, "abcde", 1, 5);
+ test(S("abcdefghij"), 5, 5, "abcde", 2, 5);
+ test(S("abcdefghij"), 5, 5, "abcde", 4, 5);
+ test(S("abcdefghij"), 5, 5, "abcde", 5, 5);
+ test(S("abcdefghij"), 5, 5, "abcdefghij", 0, 5);
+ test(S("abcdefghij"), 5, 5, "abcdefghij", 1, 5);
+ test(S("abcdefghij"), 5, 5, "abcdefghij", 5, 5);
+ test(S("abcdefghij"), 5, 5, "abcdefghij", 9, 5);
+ test(S("abcdefghij"), 5, 5, "abcdefghij", 10, 5);
+ test(S("abcdefghij"), 5, 5, "abcdefghijklmnopqrst", 0, 5);
+ test(S("abcdefghij"), 5, 5, "abcdefghijklmnopqrst", 1, 5);
+ test(S("abcdefghij"), 5, 5, "abcdefghijklmnopqrst", 10, 5);
+ test(S("abcdefghij"), 5, 5, "abcdefghijklmnopqrst", 19, 5);
+ test(S("abcdefghij"), 5, 5, "abcdefghijklmnopqrst", 20, 5);
+ test(S("abcdefghij"), 5, 6, "", 0, 5);
+ test(S("abcdefghij"), 5, 6, "abcde", 0, 5);
+ test(S("abcdefghij"), 5, 6, "abcde", 1, 5);
+ test(S("abcdefghij"), 5, 6, "abcde", 2, 5);
+ test(S("abcdefghij"), 5, 6, "abcde", 4, 5);
+ test(S("abcdefghij"), 5, 6, "abcde", 5, 5);
+ test(S("abcdefghij"), 5, 6, "abcdefghij", 0, 5);
+ test(S("abcdefghij"), 5, 6, "abcdefghij", 1, 5);
+ test(S("abcdefghij"), 5, 6, "abcdefghij", 5, 5);
+ test(S("abcdefghij"), 5, 6, "abcdefghij", 9, 5);
+ test(S("abcdefghij"), 5, 6, "abcdefghij", 10, 5);
+ test(S("abcdefghij"), 5, 6, "abcdefghijklmnopqrst", 0, 5);
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test7()
-{
- test(S("abcdefghij"), 5, 6, "abcdefghijklmnopqrst", 1, 5);
- test(S("abcdefghij"), 5, 6, "abcdefghijklmnopqrst", 10, 5);
- test(S("abcdefghij"), 5, 6, "abcdefghijklmnopqrst", 19, 5);
- test(S("abcdefghij"), 5, 6, "abcdefghijklmnopqrst", 20, 5);
- test(S("abcdefghij"), 9, 0, "", 0, 0);
- test(S("abcdefghij"), 9, 0, "abcde", 0, 0);
- test(S("abcdefghij"), 9, 0, "abcde", 1, -1);
- test(S("abcdefghij"), 9, 0, "abcde", 2, -2);
- test(S("abcdefghij"), 9, 0, "abcde", 4, -4);
- test(S("abcdefghij"), 9, 0, "abcde", 5, -5);
- test(S("abcdefghij"), 9, 0, "abcdefghij", 0, 0);
- test(S("abcdefghij"), 9, 0, "abcdefghij", 1, -1);
- test(S("abcdefghij"), 9, 0, "abcdefghij", 5, -5);
- test(S("abcdefghij"), 9, 0, "abcdefghij", 9, -9);
- test(S("abcdefghij"), 9, 0, "abcdefghij", 10, -10);
- test(S("abcdefghij"), 9, 0, "abcdefghijklmnopqrst", 0, 0);
- test(S("abcdefghij"), 9, 0, "abcdefghijklmnopqrst", 1, -1);
- test(S("abcdefghij"), 9, 0, "abcdefghijklmnopqrst", 10, -10);
- test(S("abcdefghij"), 9, 0, "abcdefghijklmnopqrst", 19, -19);
- test(S("abcdefghij"), 9, 0, "abcdefghijklmnopqrst", 20, -20);
- test(S("abcdefghij"), 9, 1, "", 0, 1);
- test(S("abcdefghij"), 9, 1, "abcde", 0, 1);
- test(S("abcdefghij"), 9, 1, "abcde", 1, 9);
- test(S("abcdefghij"), 9, 1, "abcde", 2, 9);
- test(S("abcdefghij"), 9, 1, "abcde", 4, 9);
- test(S("abcdefghij"), 9, 1, "abcde", 5, 9);
- test(S("abcdefghij"), 9, 1, "abcdefghij", 0, 1);
- test(S("abcdefghij"), 9, 1, "abcdefghij", 1, 9);
- test(S("abcdefghij"), 9, 1, "abcdefghij", 5, 9);
- test(S("abcdefghij"), 9, 1, "abcdefghij", 9, 9);
- test(S("abcdefghij"), 9, 1, "abcdefghij", 10, 9);
- test(S("abcdefghij"), 9, 1, "abcdefghijklmnopqrst", 0, 1);
- test(S("abcdefghij"), 9, 1, "abcdefghijklmnopqrst", 1, 9);
- test(S("abcdefghij"), 9, 1, "abcdefghijklmnopqrst", 10, 9);
- test(S("abcdefghij"), 9, 1, "abcdefghijklmnopqrst", 19, 9);
- test(S("abcdefghij"), 9, 1, "abcdefghijklmnopqrst", 20, 9);
- test(S("abcdefghij"), 9, 2, "", 0, 1);
- test(S("abcdefghij"), 9, 2, "abcde", 0, 1);
- test(S("abcdefghij"), 9, 2, "abcde", 1, 9);
- test(S("abcdefghij"), 9, 2, "abcde", 2, 9);
- test(S("abcdefghij"), 9, 2, "abcde", 4, 9);
- test(S("abcdefghij"), 9, 2, "abcde", 5, 9);
- test(S("abcdefghij"), 9, 2, "abcdefghij", 0, 1);
- test(S("abcdefghij"), 9, 2, "abcdefghij", 1, 9);
- test(S("abcdefghij"), 9, 2, "abcdefghij", 5, 9);
- test(S("abcdefghij"), 9, 2, "abcdefghij", 9, 9);
- test(S("abcdefghij"), 9, 2, "abcdefghij", 10, 9);
- test(S("abcdefghij"), 9, 2, "abcdefghijklmnopqrst", 0, 1);
- test(S("abcdefghij"), 9, 2, "abcdefghijklmnopqrst", 1, 9);
- test(S("abcdefghij"), 9, 2, "abcdefghijklmnopqrst", 10, 9);
- test(S("abcdefghij"), 9, 2, "abcdefghijklmnopqrst", 19, 9);
- test(S("abcdefghij"), 9, 2, "abcdefghijklmnopqrst", 20, 9);
- test(S("abcdefghij"), 10, 0, "", 0, 0);
- test(S("abcdefghij"), 10, 0, "abcde", 0, 0);
- test(S("abcdefghij"), 10, 0, "abcde", 1, -1);
- test(S("abcdefghij"), 10, 0, "abcde", 2, -2);
- test(S("abcdefghij"), 10, 0, "abcde", 4, -4);
- test(S("abcdefghij"), 10, 0, "abcde", 5, -5);
- test(S("abcdefghij"), 10, 0, "abcdefghij", 0, 0);
- test(S("abcdefghij"), 10, 0, "abcdefghij", 1, -1);
- test(S("abcdefghij"), 10, 0, "abcdefghij", 5, -5);
- test(S("abcdefghij"), 10, 0, "abcdefghij", 9, -9);
- test(S("abcdefghij"), 10, 0, "abcdefghij", 10, -10);
- test(S("abcdefghij"), 10, 0, "abcdefghijklmnopqrst", 0, 0);
- test(S("abcdefghij"), 10, 0, "abcdefghijklmnopqrst", 1, -1);
- test(S("abcdefghij"), 10, 0, "abcdefghijklmnopqrst", 10, -10);
- test(S("abcdefghij"), 10, 0, "abcdefghijklmnopqrst", 19, -19);
- test(S("abcdefghij"), 10, 0, "abcdefghijklmnopqrst", 20, -20);
- test(S("abcdefghij"), 10, 1, "", 0, 0);
- test(S("abcdefghij"), 10, 1, "abcde", 0, 0);
- test(S("abcdefghij"), 10, 1, "abcde", 1, -1);
- test(S("abcdefghij"), 10, 1, "abcde", 2, -2);
- test(S("abcdefghij"), 10, 1, "abcde", 4, -4);
- test(S("abcdefghij"), 10, 1, "abcde", 5, -5);
- test(S("abcdefghij"), 10, 1, "abcdefghij", 0, 0);
- test(S("abcdefghij"), 10, 1, "abcdefghij", 1, -1);
- test(S("abcdefghij"), 10, 1, "abcdefghij", 5, -5);
- test(S("abcdefghij"), 10, 1, "abcdefghij", 9, -9);
- test(S("abcdefghij"), 10, 1, "abcdefghij", 10, -10);
- test(S("abcdefghij"), 10, 1, "abcdefghijklmnopqrst", 0, 0);
- test(S("abcdefghij"), 10, 1, "abcdefghijklmnopqrst", 1, -1);
- test(S("abcdefghij"), 10, 1, "abcdefghijklmnopqrst", 10, -10);
- test(S("abcdefghij"), 10, 1, "abcdefghijklmnopqrst", 19, -19);
- test(S("abcdefghij"), 10, 1, "abcdefghijklmnopqrst", 20, -20);
- test(S("abcdefghij"), 11, 0, "", 0, 0);
- test(S("abcdefghij"), 11, 0, "abcde", 0, 0);
- test(S("abcdefghij"), 11, 0, "abcde", 1, 0);
- test(S("abcdefghij"), 11, 0, "abcde", 2, 0);
- test(S("abcdefghij"), 11, 0, "abcde", 4, 0);
- test(S("abcdefghij"), 11, 0, "abcde", 5, 0);
- test(S("abcdefghij"), 11, 0, "abcdefghij", 0, 0);
- test(S("abcdefghij"), 11, 0, "abcdefghij", 1, 0);
- test(S("abcdefghij"), 11, 0, "abcdefghij", 5, 0);
- test(S("abcdefghij"), 11, 0, "abcdefghij", 9, 0);
- test(S("abcdefghij"), 11, 0, "abcdefghij", 10, 0);
- test(S("abcdefghij"), 11, 0, "abcdefghijklmnopqrst", 0, 0);
- test(S("abcdefghij"), 11, 0, "abcdefghijklmnopqrst", 1, 0);
- test(S("abcdefghij"), 11, 0, "abcdefghijklmnopqrst", 10, 0);
- test(S("abcdefghij"), 11, 0, "abcdefghijklmnopqrst", 19, 0);
- test(S("abcdefghij"), 11, 0, "abcdefghijklmnopqrst", 20, 0);
+TEST_CONSTEXPR_CXX20 bool test7() {
+ test(S("abcdefghij"), 5, 6, "abcdefghijklmnopqrst", 1, 5);
+ test(S("abcdefghij"), 5, 6, "abcdefghijklmnopqrst", 10, 5);
+ test(S("abcdefghij"), 5, 6, "abcdefghijklmnopqrst", 19, 5);
+ test(S("abcdefghij"), 5, 6, "abcdefghijklmnopqrst", 20, 5);
+ test(S("abcdefghij"), 9, 0, "", 0, 0);
+ test(S("abcdefghij"), 9, 0, "abcde", 0, 0);
+ test(S("abcdefghij"), 9, 0, "abcde", 1, -1);
+ test(S("abcdefghij"), 9, 0, "abcde", 2, -2);
+ test(S("abcdefghij"), 9, 0, "abcde", 4, -4);
+ test(S("abcdefghij"), 9, 0, "abcde", 5, -5);
+ test(S("abcdefghij"), 9, 0, "abcdefghij", 0, 0);
+ test(S("abcdefghij"), 9, 0, "abcdefghij", 1, -1);
+ test(S("abcdefghij"), 9, 0, "abcdefghij", 5, -5);
+ test(S("abcdefghij"), 9, 0, "abcdefghij", 9, -9);
+ test(S("abcdefghij"), 9, 0, "abcdefghij", 10, -10);
+ test(S("abcdefghij"), 9, 0, "abcdefghijklmnopqrst", 0, 0);
+ test(S("abcdefghij"), 9, 0, "abcdefghijklmnopqrst", 1, -1);
+ test(S("abcdefghij"), 9, 0, "abcdefghijklmnopqrst", 10, -10);
+ test(S("abcdefghij"), 9, 0, "abcdefghijklmnopqrst", 19, -19);
+ test(S("abcdefghij"), 9, 0, "abcdefghijklmnopqrst", 20, -20);
+ test(S("abcdefghij"), 9, 1, "", 0, 1);
+ test(S("abcdefghij"), 9, 1, "abcde", 0, 1);
+ test(S("abcdefghij"), 9, 1, "abcde", 1, 9);
+ test(S("abcdefghij"), 9, 1, "abcde", 2, 9);
+ test(S("abcdefghij"), 9, 1, "abcde", 4, 9);
+ test(S("abcdefghij"), 9, 1, "abcde", 5, 9);
+ test(S("abcdefghij"), 9, 1, "abcdefghij", 0, 1);
+ test(S("abcdefghij"), 9, 1, "abcdefghij", 1, 9);
+ test(S("abcdefghij"), 9, 1, "abcdefghij", 5, 9);
+ test(S("abcdefghij"), 9, 1, "abcdefghij", 9, 9);
+ test(S("abcdefghij"), 9, 1, "abcdefghij", 10, 9);
+ test(S("abcdefghij"), 9, 1, "abcdefghijklmnopqrst", 0, 1);
+ test(S("abcdefghij"), 9, 1, "abcdefghijklmnopqrst", 1, 9);
+ test(S("abcdefghij"), 9, 1, "abcdefghijklmnopqrst", 10, 9);
+ test(S("abcdefghij"), 9, 1, "abcdefghijklmnopqrst", 19, 9);
+ test(S("abcdefghij"), 9, 1, "abcdefghijklmnopqrst", 20, 9);
+ test(S("abcdefghij"), 9, 2, "", 0, 1);
+ test(S("abcdefghij"), 9, 2, "abcde", 0, 1);
+ test(S("abcdefghij"), 9, 2, "abcde", 1, 9);
+ test(S("abcdefghij"), 9, 2, "abcde", 2, 9);
+ test(S("abcdefghij"), 9, 2, "abcde", 4, 9);
+ test(S("abcdefghij"), 9, 2, "abcde", 5, 9);
+ test(S("abcdefghij"), 9, 2, "abcdefghij", 0, 1);
+ test(S("abcdefghij"), 9, 2, "abcdefghij", 1, 9);
+ test(S("abcdefghij"), 9, 2, "abcdefghij", 5, 9);
+ test(S("abcdefghij"), 9, 2, "abcdefghij", 9, 9);
+ test(S("abcdefghij"), 9, 2, "abcdefghij", 10, 9);
+ test(S("abcdefghij"), 9, 2, "abcdefghijklmnopqrst", 0, 1);
+ test(S("abcdefghij"), 9, 2, "abcdefghijklmnopqrst", 1, 9);
+ test(S("abcdefghij"), 9, 2, "abcdefghijklmnopqrst", 10, 9);
+ test(S("abcdefghij"), 9, 2, "abcdefghijklmnopqrst", 19, 9);
+ test(S("abcdefghij"), 9, 2, "abcdefghijklmnopqrst", 20, 9);
+ test(S("abcdefghij"), 10, 0, "", 0, 0);
+ test(S("abcdefghij"), 10, 0, "abcde", 0, 0);
+ test(S("abcdefghij"), 10, 0, "abcde", 1, -1);
+ test(S("abcdefghij"), 10, 0, "abcde", 2, -2);
+ test(S("abcdefghij"), 10, 0, "abcde", 4, -4);
+ test(S("abcdefghij"), 10, 0, "abcde", 5, -5);
+ test(S("abcdefghij"), 10, 0, "abcdefghij", 0, 0);
+ test(S("abcdefghij"), 10, 0, "abcdefghij", 1, -1);
+ test(S("abcdefghij"), 10, 0, "abcdefghij", 5, -5);
+ test(S("abcdefghij"), 10, 0, "abcdefghij", 9, -9);
+ test(S("abcdefghij"), 10, 0, "abcdefghij", 10, -10);
+ test(S("abcdefghij"), 10, 0, "abcdefghijklmnopqrst", 0, 0);
+ test(S("abcdefghij"), 10, 0, "abcdefghijklmnopqrst", 1, -1);
+ test(S("abcdefghij"), 10, 0, "abcdefghijklmnopqrst", 10, -10);
+ test(S("abcdefghij"), 10, 0, "abcdefghijklmnopqrst", 19, -19);
+ test(S("abcdefghij"), 10, 0, "abcdefghijklmnopqrst", 20, -20);
+ test(S("abcdefghij"), 10, 1, "", 0, 0);
+ test(S("abcdefghij"), 10, 1, "abcde", 0, 0);
+ test(S("abcdefghij"), 10, 1, "abcde", 1, -1);
+ test(S("abcdefghij"), 10, 1, "abcde", 2, -2);
+ test(S("abcdefghij"), 10, 1, "abcde", 4, -4);
+ test(S("abcdefghij"), 10, 1, "abcde", 5, -5);
+ test(S("abcdefghij"), 10, 1, "abcdefghij", 0, 0);
+ test(S("abcdefghij"), 10, 1, "abcdefghij", 1, -1);
+ test(S("abcdefghij"), 10, 1, "abcdefghij", 5, -5);
+ test(S("abcdefghij"), 10, 1, "abcdefghij", 9, -9);
+ test(S("abcdefghij"), 10, 1, "abcdefghij", 10, -10);
+ test(S("abcdefghij"), 10, 1, "abcdefghijklmnopqrst", 0, 0);
+ test(S("abcdefghij"), 10, 1, "abcdefghijklmnopqrst", 1, -1);
+ test(S("abcdefghij"), 10, 1, "abcdefghijklmnopqrst", 10, -10);
+ test(S("abcdefghij"), 10, 1, "abcdefghijklmnopqrst", 19, -19);
+ test(S("abcdefghij"), 10, 1, "abcdefghijklmnopqrst", 20, -20);
+ test(S("abcdefghij"), 11, 0, "", 0, 0);
+ test(S("abcdefghij"), 11, 0, "abcde", 0, 0);
+ test(S("abcdefghij"), 11, 0, "abcde", 1, 0);
+ test(S("abcdefghij"), 11, 0, "abcde", 2, 0);
+ test(S("abcdefghij"), 11, 0, "abcde", 4, 0);
+ test(S("abcdefghij"), 11, 0, "abcde", 5, 0);
+ test(S("abcdefghij"), 11, 0, "abcdefghij", 0, 0);
+ test(S("abcdefghij"), 11, 0, "abcdefghij", 1, 0);
+ test(S("abcdefghij"), 11, 0, "abcdefghij", 5, 0);
+ test(S("abcdefghij"), 11, 0, "abcdefghij", 9, 0);
+ test(S("abcdefghij"), 11, 0, "abcdefghij", 10, 0);
+ test(S("abcdefghij"), 11, 0, "abcdefghijklmnopqrst", 0, 0);
+ test(S("abcdefghij"), 11, 0, "abcdefghijklmnopqrst", 1, 0);
+ test(S("abcdefghij"), 11, 0, "abcdefghijklmnopqrst", 10, 0);
+ test(S("abcdefghij"), 11, 0, "abcdefghijklmnopqrst", 19, 0);
+ test(S("abcdefghij"), 11, 0, "abcdefghijklmnopqrst", 20, 0);
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test8()
-{
- test(S("abcdefghijklmnopqrst"), 0, 0, "", 0, 0);
- test(S("abcdefghijklmnopqrst"), 0, 0, "abcde", 0, 0);
- test(S("abcdefghijklmnopqrst"), 0, 0, "abcde", 1, -1);
- test(S("abcdefghijklmnopqrst"), 0, 0, "abcde", 2, -2);
- test(S("abcdefghijklmnopqrst"), 0, 0, "abcde", 4, -4);
- test(S("abcdefghijklmnopqrst"), 0, 0, "abcde", 5, -5);
- test(S("abcdefghijklmnopqrst"), 0, 0, "abcdefghij", 0, 0);
- test(S("abcdefghijklmnopqrst"), 0, 0, "abcdefghij", 1, -1);
- test(S("abcdefghijklmnopqrst"), 0, 0, "abcdefghij", 5, -5);
- test(S("abcdefghijklmnopqrst"), 0, 0, "abcdefghij", 9, -9);
- test(S("abcdefghijklmnopqrst"), 0, 0, "abcdefghij", 10, -10);
- test(S("abcdefghijklmnopqrst"), 0, 0, "abcdefghijklmnopqrst", 0, 0);
- test(S("abcdefghijklmnopqrst"), 0, 0, "abcdefghijklmnopqrst", 1, -1);
- test(S("abcdefghijklmnopqrst"), 0, 0, "abcdefghijklmnopqrst", 10, -10);
- test(S("abcdefghijklmnopqrst"), 0, 0, "abcdefghijklmnopqrst", 19, -19);
- test(S("abcdefghijklmnopqrst"), 0, 0, "abcdefghijklmnopqrst", 20, -20);
- test(S("abcdefghijklmnopqrst"), 0, 1, "", 0, 1);
- test(S("abcdefghijklmnopqrst"), 0, 1, "abcde", 0, 1);
- test(S("abcdefghijklmnopqrst"), 0, 1, "abcde", 1, 0);
- test(S("abcdefghijklmnopqrst"), 0, 1, "abcde", 2, -1);
- test(S("abcdefghijklmnopqrst"), 0, 1, "abcde", 4, -3);
- test(S("abcdefghijklmnopqrst"), 0, 1, "abcde", 5, -4);
- test(S("abcdefghijklmnopqrst"), 0, 1, "abcdefghij", 0, 1);
- test(S("abcdefghijklmnopqrst"), 0, 1, "abcdefghij", 1, 0);
- test(S("abcdefghijklmnopqrst"), 0, 1, "abcdefghij", 5, -4);
- test(S("abcdefghijklmnopqrst"), 0, 1, "abcdefghij", 9, -8);
- test(S("abcdefghijklmnopqrst"), 0, 1, "abcdefghij", 10, -9);
- test(S("abcdefghijklmnopqrst"), 0, 1, "abcdefghijklmnopqrst", 0, 1);
- test(S("abcdefghijklmnopqrst"), 0, 1, "abcdefghijklmnopqrst", 1, 0);
- test(S("abcdefghijklmnopqrst"), 0, 1, "abcdefghijklmnopqrst", 10, -9);
- test(S("abcdefghijklmnopqrst"), 0, 1, "abcdefghijklmnopqrst", 19, -18);
- test(S("abcdefghijklmnopqrst"), 0, 1, "abcdefghijklmnopqrst", 20, -19);
- test(S("abcdefghijklmnopqrst"), 0, 10, "", 0, 10);
- test(S("abcdefghijklmnopqrst"), 0, 10, "abcde", 0, 10);
- test(S("abcdefghijklmnopqrst"), 0, 10, "abcde", 1, 9);
- test(S("abcdefghijklmnopqrst"), 0, 10, "abcde", 2, 8);
- test(S("abcdefghijklmnopqrst"), 0, 10, "abcde", 4, 6);
- test(S("abcdefghijklmnopqrst"), 0, 10, "abcde", 5, 5);
- test(S("abcdefghijklmnopqrst"), 0, 10, "abcdefghij", 0, 10);
- test(S("abcdefghijklmnopqrst"), 0, 10, "abcdefghij", 1, 9);
- test(S("abcdefghijklmnopqrst"), 0, 10, "abcdefghij", 5, 5);
- test(S("abcdefghijklmnopqrst"), 0, 10, "abcdefghij", 9, 1);
- test(S("abcdefghijklmnopqrst"), 0, 10, "abcdefghij", 10, 0);
- test(S("abcdefghijklmnopqrst"), 0, 10, "abcdefghijklmnopqrst", 0, 10);
- test(S("abcdefghijklmnopqrst"), 0, 10, "abcdefghijklmnopqrst", 1, 9);
- test(S("abcdefghijklmnopqrst"), 0, 10, "abcdefghijklmnopqrst", 10, 0);
- test(S("abcdefghijklmnopqrst"), 0, 10, "abcdefghijklmnopqrst", 19, -9);
- test(S("abcdefghijklmnopqrst"), 0, 10, "abcdefghijklmnopqrst", 20, -10);
- test(S("abcdefghijklmnopqrst"), 0, 19, "", 0, 19);
- test(S("abcdefghijklmnopqrst"), 0, 19, "abcde", 0, 19);
- test(S("abcdefghijklmnopqrst"), 0, 19, "abcde", 1, 18);
- test(S("abcdefghijklmnopqrst"), 0, 19, "abcde", 2, 17);
- test(S("abcdefghijklmnopqrst"), 0, 19, "abcde", 4, 15);
- test(S("abcdefghijklmnopqrst"), 0, 19, "abcde", 5, 14);
- test(S("abcdefghijklmnopqrst"), 0, 19, "abcdefghij", 0, 19);
- test(S("abcdefghijklmnopqrst"), 0, 19, "abcdefghij", 1, 18);
- test(S("abcdefghijklmnopqrst"), 0, 19, "abcdefghij", 5, 14);
- test(S("abcdefghijklmnopqrst"), 0, 19, "abcdefghij", 9, 10);
- test(S("abcdefghijklmnopqrst"), 0, 19, "abcdefghij", 10, 9);
- test(S("abcdefghijklmnopqrst"), 0, 19, "abcdefghijklmnopqrst", 0, 19);
- test(S("abcdefghijklmnopqrst"), 0, 19, "abcdefghijklmnopqrst", 1, 18);
- test(S("abcdefghijklmnopqrst"), 0, 19, "abcdefghijklmnopqrst", 10, 9);
- test(S("abcdefghijklmnopqrst"), 0, 19, "abcdefghijklmnopqrst", 19, 0);
- test(S("abcdefghijklmnopqrst"), 0, 19, "abcdefghijklmnopqrst", 20, -1);
- test(S("abcdefghijklmnopqrst"), 0, 20, "", 0, 20);
- test(S("abcdefghijklmnopqrst"), 0, 20, "abcde", 0, 20);
- test(S("abcdefghijklmnopqrst"), 0, 20, "abcde", 1, 19);
- test(S("abcdefghijklmnopqrst"), 0, 20, "abcde", 2, 18);
- test(S("abcdefghijklmnopqrst"), 0, 20, "abcde", 4, 16);
- test(S("abcdefghijklmnopqrst"), 0, 20, "abcde", 5, 15);
- test(S("abcdefghijklmnopqrst"), 0, 20, "abcdefghij", 0, 20);
- test(S("abcdefghijklmnopqrst"), 0, 20, "abcdefghij", 1, 19);
- test(S("abcdefghijklmnopqrst"), 0, 20, "abcdefghij", 5, 15);
- test(S("abcdefghijklmnopqrst"), 0, 20, "abcdefghij", 9, 11);
- test(S("abcdefghijklmnopqrst"), 0, 20, "abcdefghij", 10, 10);
- test(S("abcdefghijklmnopqrst"), 0, 20, "abcdefghijklmnopqrst", 0, 20);
- test(S("abcdefghijklmnopqrst"), 0, 20, "abcdefghijklmnopqrst", 1, 19);
- test(S("abcdefghijklmnopqrst"), 0, 20, "abcdefghijklmnopqrst", 10, 10);
- test(S("abcdefghijklmnopqrst"), 0, 20, "abcdefghijklmnopqrst", 19, 1);
- test(S("abcdefghijklmnopqrst"), 0, 20, "abcdefghijklmnopqrst", 20, 0);
- test(S("abcdefghijklmnopqrst"), 0, 21, "", 0, 20);
- test(S("abcdefghijklmnopqrst"), 0, 21, "abcde", 0, 20);
- test(S("abcdefghijklmnopqrst"), 0, 21, "abcde", 1, 19);
- test(S("abcdefghijklmnopqrst"), 0, 21, "abcde", 2, 18);
- test(S("abcdefghijklmnopqrst"), 0, 21, "abcde", 4, 16);
- test(S("abcdefghijklmnopqrst"), 0, 21, "abcde", 5, 15);
- test(S("abcdefghijklmnopqrst"), 0, 21, "abcdefghij", 0, 20);
- test(S("abcdefghijklmnopqrst"), 0, 21, "abcdefghij", 1, 19);
- test(S("abcdefghijklmnopqrst"), 0, 21, "abcdefghij", 5, 15);
- test(S("abcdefghijklmnopqrst"), 0, 21, "abcdefghij", 9, 11);
- test(S("abcdefghijklmnopqrst"), 0, 21, "abcdefghij", 10, 10);
- test(S("abcdefghijklmnopqrst"), 0, 21, "abcdefghijklmnopqrst", 0, 20);
- test(S("abcdefghijklmnopqrst"), 0, 21, "abcdefghijklmnopqrst", 1, 19);
- test(S("abcdefghijklmnopqrst"), 0, 21, "abcdefghijklmnopqrst", 10, 10);
- test(S("abcdefghijklmnopqrst"), 0, 21, "abcdefghijklmnopqrst", 19, 1);
- test(S("abcdefghijklmnopqrst"), 0, 21, "abcdefghijklmnopqrst", 20, 0);
- test(S("abcdefghijklmnopqrst"), 1, 0, "", 0, 0);
- test(S("abcdefghijklmnopqrst"), 1, 0, "abcde", 0, 0);
- test(S("abcdefghijklmnopqrst"), 1, 0, "abcde", 1, -1);
- test(S("abcdefghijklmnopqrst"), 1, 0, "abcde", 2, -2);
+TEST_CONSTEXPR_CXX20 bool test8() {
+ test(S("abcdefghijklmnopqrst"), 0, 0, "", 0, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 0, "abcde", 0, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 0, "abcde", 1, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 0, "abcde", 2, -2);
+ test(S("abcdefghijklmnopqrst"), 0, 0, "abcde", 4, -4);
+ test(S("abcdefghijklmnopqrst"), 0, 0, "abcde", 5, -5);
+ test(S("abcdefghijklmnopqrst"), 0, 0, "abcdefghij", 0, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 0, "abcdefghij", 1, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 0, "abcdefghij", 5, -5);
+ test(S("abcdefghijklmnopqrst"), 0, 0, "abcdefghij", 9, -9);
+ test(S("abcdefghijklmnopqrst"), 0, 0, "abcdefghij", 10, -10);
+ test(S("abcdefghijklmnopqrst"), 0, 0, "abcdefghijklmnopqrst", 0, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 0, "abcdefghijklmnopqrst", 1, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 0, "abcdefghijklmnopqrst", 10, -10);
+ test(S("abcdefghijklmnopqrst"), 0, 0, "abcdefghijklmnopqrst", 19, -19);
+ test(S("abcdefghijklmnopqrst"), 0, 0, "abcdefghijklmnopqrst", 20, -20);
+ test(S("abcdefghijklmnopqrst"), 0, 1, "", 0, 1);
+ test(S("abcdefghijklmnopqrst"), 0, 1, "abcde", 0, 1);
+ test(S("abcdefghijklmnopqrst"), 0, 1, "abcde", 1, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 1, "abcde", 2, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 1, "abcde", 4, -3);
+ test(S("abcdefghijklmnopqrst"), 0, 1, "abcde", 5, -4);
+ test(S("abcdefghijklmnopqrst"), 0, 1, "abcdefghij", 0, 1);
+ test(S("abcdefghijklmnopqrst"), 0, 1, "abcdefghij", 1, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 1, "abcdefghij", 5, -4);
+ test(S("abcdefghijklmnopqrst"), 0, 1, "abcdefghij", 9, -8);
+ test(S("abcdefghijklmnopqrst"), 0, 1, "abcdefghij", 10, -9);
+ test(S("abcdefghijklmnopqrst"), 0, 1, "abcdefghijklmnopqrst", 0, 1);
+ test(S("abcdefghijklmnopqrst"), 0, 1, "abcdefghijklmnopqrst", 1, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 1, "abcdefghijklmnopqrst", 10, -9);
+ test(S("abcdefghijklmnopqrst"), 0, 1, "abcdefghijklmnopqrst", 19, -18);
+ test(S("abcdefghijklmnopqrst"), 0, 1, "abcdefghijklmnopqrst", 20, -19);
+ test(S("abcdefghijklmnopqrst"), 0, 10, "", 0, 10);
+ test(S("abcdefghijklmnopqrst"), 0, 10, "abcde", 0, 10);
+ test(S("abcdefghijklmnopqrst"), 0, 10, "abcde", 1, 9);
+ test(S("abcdefghijklmnopqrst"), 0, 10, "abcde", 2, 8);
+ test(S("abcdefghijklmnopqrst"), 0, 10, "abcde", 4, 6);
+ test(S("abcdefghijklmnopqrst"), 0, 10, "abcde", 5, 5);
+ test(S("abcdefghijklmnopqrst"), 0, 10, "abcdefghij", 0, 10);
+ test(S("abcdefghijklmnopqrst"), 0, 10, "abcdefghij", 1, 9);
+ test(S("abcdefghijklmnopqrst"), 0, 10, "abcdefghij", 5, 5);
+ test(S("abcdefghijklmnopqrst"), 0, 10, "abcdefghij", 9, 1);
+ test(S("abcdefghijklmnopqrst"), 0, 10, "abcdefghij", 10, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 10, "abcdefghijklmnopqrst", 0, 10);
+ test(S("abcdefghijklmnopqrst"), 0, 10, "abcdefghijklmnopqrst", 1, 9);
+ test(S("abcdefghijklmnopqrst"), 0, 10, "abcdefghijklmnopqrst", 10, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 10, "abcdefghijklmnopqrst", 19, -9);
+ test(S("abcdefghijklmnopqrst"), 0, 10, "abcdefghijklmnopqrst", 20, -10);
+ test(S("abcdefghijklmnopqrst"), 0, 19, "", 0, 19);
+ test(S("abcdefghijklmnopqrst"), 0, 19, "abcde", 0, 19);
+ test(S("abcdefghijklmnopqrst"), 0, 19, "abcde", 1, 18);
+ test(S("abcdefghijklmnopqrst"), 0, 19, "abcde", 2, 17);
+ test(S("abcdefghijklmnopqrst"), 0, 19, "abcde", 4, 15);
+ test(S("abcdefghijklmnopqrst"), 0, 19, "abcde", 5, 14);
+ test(S("abcdefghijklmnopqrst"), 0, 19, "abcdefghij", 0, 19);
+ test(S("abcdefghijklmnopqrst"), 0, 19, "abcdefghij", 1, 18);
+ test(S("abcdefghijklmnopqrst"), 0, 19, "abcdefghij", 5, 14);
+ test(S("abcdefghijklmnopqrst"), 0, 19, "abcdefghij", 9, 10);
+ test(S("abcdefghijklmnopqrst"), 0, 19, "abcdefghij", 10, 9);
+ test(S("abcdefghijklmnopqrst"), 0, 19, "abcdefghijklmnopqrst", 0, 19);
+ test(S("abcdefghijklmnopqrst"), 0, 19, "abcdefghijklmnopqrst", 1, 18);
+ test(S("abcdefghijklmnopqrst"), 0, 19, "abcdefghijklmnopqrst", 10, 9);
+ test(S("abcdefghijklmnopqrst"), 0, 19, "abcdefghijklmnopqrst", 19, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 19, "abcdefghijklmnopqrst", 20, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 20, "", 0, 20);
+ test(S("abcdefghijklmnopqrst"), 0, 20, "abcde", 0, 20);
+ test(S("abcdefghijklmnopqrst"), 0, 20, "abcde", 1, 19);
+ test(S("abcdefghijklmnopqrst"), 0, 20, "abcde", 2, 18);
+ test(S("abcdefghijklmnopqrst"), 0, 20, "abcde", 4, 16);
+ test(S("abcdefghijklmnopqrst"), 0, 20, "abcde", 5, 15);
+ test(S("abcdefghijklmnopqrst"), 0, 20, "abcdefghij", 0, 20);
+ test(S("abcdefghijklmnopqrst"), 0, 20, "abcdefghij", 1, 19);
+ test(S("abcdefghijklmnopqrst"), 0, 20, "abcdefghij", 5, 15);
+ test(S("abcdefghijklmnopqrst"), 0, 20, "abcdefghij", 9, 11);
+ test(S("abcdefghijklmnopqrst"), 0, 20, "abcdefghij", 10, 10);
+ test(S("abcdefghijklmnopqrst"), 0, 20, "abcdefghijklmnopqrst", 0, 20);
+ test(S("abcdefghijklmnopqrst"), 0, 20, "abcdefghijklmnopqrst", 1, 19);
+ test(S("abcdefghijklmnopqrst"), 0, 20, "abcdefghijklmnopqrst", 10, 10);
+ test(S("abcdefghijklmnopqrst"), 0, 20, "abcdefghijklmnopqrst", 19, 1);
+ test(S("abcdefghijklmnopqrst"), 0, 20, "abcdefghijklmnopqrst", 20, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 21, "", 0, 20);
+ test(S("abcdefghijklmnopqrst"), 0, 21, "abcde", 0, 20);
+ test(S("abcdefghijklmnopqrst"), 0, 21, "abcde", 1, 19);
+ test(S("abcdefghijklmnopqrst"), 0, 21, "abcde", 2, 18);
+ test(S("abcdefghijklmnopqrst"), 0, 21, "abcde", 4, 16);
+ test(S("abcdefghijklmnopqrst"), 0, 21, "abcde", 5, 15);
+ test(S("abcdefghijklmnopqrst"), 0, 21, "abcdefghij", 0, 20);
+ test(S("abcdefghijklmnopqrst"), 0, 21, "abcdefghij", 1, 19);
+ test(S("abcdefghijklmnopqrst"), 0, 21, "abcdefghij", 5, 15);
+ test(S("abcdefghijklmnopqrst"), 0, 21, "abcdefghij", 9, 11);
+ test(S("abcdefghijklmnopqrst"), 0, 21, "abcdefghij", 10, 10);
+ test(S("abcdefghijklmnopqrst"), 0, 21, "abcdefghijklmnopqrst", 0, 20);
+ test(S("abcdefghijklmnopqrst"), 0, 21, "abcdefghijklmnopqrst", 1, 19);
+ test(S("abcdefghijklmnopqrst"), 0, 21, "abcdefghijklmnopqrst", 10, 10);
+ test(S("abcdefghijklmnopqrst"), 0, 21, "abcdefghijklmnopqrst", 19, 1);
+ test(S("abcdefghijklmnopqrst"), 0, 21, "abcdefghijklmnopqrst", 20, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 0, "", 0, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 0, "abcde", 0, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 0, "abcde", 1, -1);
+ test(S("abcdefghijklmnopqrst"), 1, 0, "abcde", 2, -2);
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test9()
-{
- test(S("abcdefghijklmnopqrst"), 1, 0, "abcde", 4, -4);
- test(S("abcdefghijklmnopqrst"), 1, 0, "abcde", 5, -5);
- test(S("abcdefghijklmnopqrst"), 1, 0, "abcdefghij", 0, 0);
- test(S("abcdefghijklmnopqrst"), 1, 0, "abcdefghij", 1, -1);
- test(S("abcdefghijklmnopqrst"), 1, 0, "abcdefghij", 5, -5);
- test(S("abcdefghijklmnopqrst"), 1, 0, "abcdefghij", 9, -9);
- test(S("abcdefghijklmnopqrst"), 1, 0, "abcdefghij", 10, -10);
- test(S("abcdefghijklmnopqrst"), 1, 0, "abcdefghijklmnopqrst", 0, 0);
- test(S("abcdefghijklmnopqrst"), 1, 0, "abcdefghijklmnopqrst", 1, -1);
- test(S("abcdefghijklmnopqrst"), 1, 0, "abcdefghijklmnopqrst", 10, -10);
- test(S("abcdefghijklmnopqrst"), 1, 0, "abcdefghijklmnopqrst", 19, -19);
- test(S("abcdefghijklmnopqrst"), 1, 0, "abcdefghijklmnopqrst", 20, -20);
- test(S("abcdefghijklmnopqrst"), 1, 1, "", 0, 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, "abcde", 0, 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, "abcde", 1, 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, "abcde", 2, 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, "abcde", 4, 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, "abcde", 5, 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, "abcdefghij", 0, 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, "abcdefghij", 1, 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, "abcdefghij", 5, 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, "abcdefghij", 9, 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, "abcdefghij", 10, 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, "abcdefghijklmnopqrst", 0, 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, "abcdefghijklmnopqrst", 1, 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, "abcdefghijklmnopqrst", 10, 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, "abcdefghijklmnopqrst", 19, 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, "abcdefghijklmnopqrst", 20, 1);
- test(S("abcdefghijklmnopqrst"), 1, 9, "", 0, 9);
- test(S("abcdefghijklmnopqrst"), 1, 9, "abcde", 0, 9);
- test(S("abcdefghijklmnopqrst"), 1, 9, "abcde", 1, 1);
- test(S("abcdefghijklmnopqrst"), 1, 9, "abcde", 2, 1);
- test(S("abcdefghijklmnopqrst"), 1, 9, "abcde", 4, 1);
- test(S("abcdefghijklmnopqrst"), 1, 9, "abcde", 5, 1);
- test(S("abcdefghijklmnopqrst"), 1, 9, "abcdefghij", 0, 9);
- test(S("abcdefghijklmnopqrst"), 1, 9, "abcdefghij", 1, 1);
- test(S("abcdefghijklmnopqrst"), 1, 9, "abcdefghij", 5, 1);
- test(S("abcdefghijklmnopqrst"), 1, 9, "abcdefghij", 9, 1);
- test(S("abcdefghijklmnopqrst"), 1, 9, "abcdefghij", 10, 1);
- test(S("abcdefghijklmnopqrst"), 1, 9, "abcdefghijklmnopqrst", 0, 9);
- test(S("abcdefghijklmnopqrst"), 1, 9, "abcdefghijklmnopqrst", 1, 1);
- test(S("abcdefghijklmnopqrst"), 1, 9, "abcdefghijklmnopqrst", 10, 1);
- test(S("abcdefghijklmnopqrst"), 1, 9, "abcdefghijklmnopqrst", 19, 1);
- test(S("abcdefghijklmnopqrst"), 1, 9, "abcdefghijklmnopqrst", 20, 1);
- test(S("abcdefghijklmnopqrst"), 1, 18, "", 0, 18);
- test(S("abcdefghijklmnopqrst"), 1, 18, "abcde", 0, 18);
- test(S("abcdefghijklmnopqrst"), 1, 18, "abcde", 1, 1);
- test(S("abcdefghijklmnopqrst"), 1, 18, "abcde", 2, 1);
- test(S("abcdefghijklmnopqrst"), 1, 18, "abcde", 4, 1);
- test(S("abcdefghijklmnopqrst"), 1, 18, "abcde", 5, 1);
- test(S("abcdefghijklmnopqrst"), 1, 18, "abcdefghij", 0, 18);
- test(S("abcdefghijklmnopqrst"), 1, 18, "abcdefghij", 1, 1);
- test(S("abcdefghijklmnopqrst"), 1, 18, "abcdefghij", 5, 1);
- test(S("abcdefghijklmnopqrst"), 1, 18, "abcdefghij", 9, 1);
- test(S("abcdefghijklmnopqrst"), 1, 18, "abcdefghij", 10, 1);
- test(S("abcdefghijklmnopqrst"), 1, 18, "abcdefghijklmnopqrst", 0, 18);
- test(S("abcdefghijklmnopqrst"), 1, 18, "abcdefghijklmnopqrst", 1, 1);
- test(S("abcdefghijklmnopqrst"), 1, 18, "abcdefghijklmnopqrst", 10, 1);
- test(S("abcdefghijklmnopqrst"), 1, 18, "abcdefghijklmnopqrst", 19, 1);
- test(S("abcdefghijklmnopqrst"), 1, 18, "abcdefghijklmnopqrst", 20, 1);
- test(S("abcdefghijklmnopqrst"), 1, 19, "", 0, 19);
- test(S("abcdefghijklmnopqrst"), 1, 19, "abcde", 0, 19);
- test(S("abcdefghijklmnopqrst"), 1, 19, "abcde", 1, 1);
- test(S("abcdefghijklmnopqrst"), 1, 19, "abcde", 2, 1);
- test(S("abcdefghijklmnopqrst"), 1, 19, "abcde", 4, 1);
- test(S("abcdefghijklmnopqrst"), 1, 19, "abcde", 5, 1);
- test(S("abcdefghijklmnopqrst"), 1, 19, "abcdefghij", 0, 19);
- test(S("abcdefghijklmnopqrst"), 1, 19, "abcdefghij", 1, 1);
- test(S("abcdefghijklmnopqrst"), 1, 19, "abcdefghij", 5, 1);
- test(S("abcdefghijklmnopqrst"), 1, 19, "abcdefghij", 9, 1);
- test(S("abcdefghijklmnopqrst"), 1, 19, "abcdefghij", 10, 1);
- test(S("abcdefghijklmnopqrst"), 1, 19, "abcdefghijklmnopqrst", 0, 19);
- test(S("abcdefghijklmnopqrst"), 1, 19, "abcdefghijklmnopqrst", 1, 1);
- test(S("abcdefghijklmnopqrst"), 1, 19, "abcdefghijklmnopqrst", 10, 1);
- test(S("abcdefghijklmnopqrst"), 1, 19, "abcdefghijklmnopqrst", 19, 1);
- test(S("abcdefghijklmnopqrst"), 1, 19, "abcdefghijklmnopqrst", 20, 1);
- test(S("abcdefghijklmnopqrst"), 1, 20, "", 0, 19);
- test(S("abcdefghijklmnopqrst"), 1, 20, "abcde", 0, 19);
- test(S("abcdefghijklmnopqrst"), 1, 20, "abcde", 1, 1);
- test(S("abcdefghijklmnopqrst"), 1, 20, "abcde", 2, 1);
- test(S("abcdefghijklmnopqrst"), 1, 20, "abcde", 4, 1);
- test(S("abcdefghijklmnopqrst"), 1, 20, "abcde", 5, 1);
- test(S("abcdefghijklmnopqrst"), 1, 20, "abcdefghij", 0, 19);
- test(S("abcdefghijklmnopqrst"), 1, 20, "abcdefghij", 1, 1);
- test(S("abcdefghijklmnopqrst"), 1, 20, "abcdefghij", 5, 1);
- test(S("abcdefghijklmnopqrst"), 1, 20, "abcdefghij", 9, 1);
- test(S("abcdefghijklmnopqrst"), 1, 20, "abcdefghij", 10, 1);
- test(S("abcdefghijklmnopqrst"), 1, 20, "abcdefghijklmnopqrst", 0, 19);
- test(S("abcdefghijklmnopqrst"), 1, 20, "abcdefghijklmnopqrst", 1, 1);
- test(S("abcdefghijklmnopqrst"), 1, 20, "abcdefghijklmnopqrst", 10, 1);
- test(S("abcdefghijklmnopqrst"), 1, 20, "abcdefghijklmnopqrst", 19, 1);
- test(S("abcdefghijklmnopqrst"), 1, 20, "abcdefghijklmnopqrst", 20, 1);
- test(S("abcdefghijklmnopqrst"), 10, 0, "", 0, 0);
- test(S("abcdefghijklmnopqrst"), 10, 0, "abcde", 0, 0);
- test(S("abcdefghijklmnopqrst"), 10, 0, "abcde", 1, -1);
- test(S("abcdefghijklmnopqrst"), 10, 0, "abcde", 2, -2);
- test(S("abcdefghijklmnopqrst"), 10, 0, "abcde", 4, -4);
- test(S("abcdefghijklmnopqrst"), 10, 0, "abcde", 5, -5);
- test(S("abcdefghijklmnopqrst"), 10, 0, "abcdefghij", 0, 0);
- test(S("abcdefghijklmnopqrst"), 10, 0, "abcdefghij", 1, -1);
+TEST_CONSTEXPR_CXX20 bool test9() {
+ test(S("abcdefghijklmnopqrst"), 1, 0, "abcde", 4, -4);
+ test(S("abcdefghijklmnopqrst"), 1, 0, "abcde", 5, -5);
+ test(S("abcdefghijklmnopqrst"), 1, 0, "abcdefghij", 0, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 0, "abcdefghij", 1, -1);
+ test(S("abcdefghijklmnopqrst"), 1, 0, "abcdefghij", 5, -5);
+ test(S("abcdefghijklmnopqrst"), 1, 0, "abcdefghij", 9, -9);
+ test(S("abcdefghijklmnopqrst"), 1, 0, "abcdefghij", 10, -10);
+ test(S("abcdefghijklmnopqrst"), 1, 0, "abcdefghijklmnopqrst", 0, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 0, "abcdefghijklmnopqrst", 1, -1);
+ test(S("abcdefghijklmnopqrst"), 1, 0, "abcdefghijklmnopqrst", 10, -10);
+ test(S("abcdefghijklmnopqrst"), 1, 0, "abcdefghijklmnopqrst", 19, -19);
+ test(S("abcdefghijklmnopqrst"), 1, 0, "abcdefghijklmnopqrst", 20, -20);
+ test(S("abcdefghijklmnopqrst"), 1, 1, "", 0, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, "abcde", 0, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, "abcde", 1, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, "abcde", 2, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, "abcde", 4, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, "abcde", 5, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, "abcdefghij", 0, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, "abcdefghij", 1, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, "abcdefghij", 5, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, "abcdefghij", 9, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, "abcdefghij", 10, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, "abcdefghijklmnopqrst", 0, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, "abcdefghijklmnopqrst", 1, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, "abcdefghijklmnopqrst", 10, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, "abcdefghijklmnopqrst", 19, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, "abcdefghijklmnopqrst", 20, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 9, "", 0, 9);
+ test(S("abcdefghijklmnopqrst"), 1, 9, "abcde", 0, 9);
+ test(S("abcdefghijklmnopqrst"), 1, 9, "abcde", 1, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 9, "abcde", 2, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 9, "abcde", 4, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 9, "abcde", 5, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 9, "abcdefghij", 0, 9);
+ test(S("abcdefghijklmnopqrst"), 1, 9, "abcdefghij", 1, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 9, "abcdefghij", 5, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 9, "abcdefghij", 9, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 9, "abcdefghij", 10, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 9, "abcdefghijklmnopqrst", 0, 9);
+ test(S("abcdefghijklmnopqrst"), 1, 9, "abcdefghijklmnopqrst", 1, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 9, "abcdefghijklmnopqrst", 10, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 9, "abcdefghijklmnopqrst", 19, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 9, "abcdefghijklmnopqrst", 20, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 18, "", 0, 18);
+ test(S("abcdefghijklmnopqrst"), 1, 18, "abcde", 0, 18);
+ test(S("abcdefghijklmnopqrst"), 1, 18, "abcde", 1, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 18, "abcde", 2, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 18, "abcde", 4, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 18, "abcde", 5, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 18, "abcdefghij", 0, 18);
+ test(S("abcdefghijklmnopqrst"), 1, 18, "abcdefghij", 1, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 18, "abcdefghij", 5, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 18, "abcdefghij", 9, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 18, "abcdefghij", 10, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 18, "abcdefghijklmnopqrst", 0, 18);
+ test(S("abcdefghijklmnopqrst"), 1, 18, "abcdefghijklmnopqrst", 1, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 18, "abcdefghijklmnopqrst", 10, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 18, "abcdefghijklmnopqrst", 19, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 18, "abcdefghijklmnopqrst", 20, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 19, "", 0, 19);
+ test(S("abcdefghijklmnopqrst"), 1, 19, "abcde", 0, 19);
+ test(S("abcdefghijklmnopqrst"), 1, 19, "abcde", 1, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 19, "abcde", 2, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 19, "abcde", 4, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 19, "abcde", 5, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 19, "abcdefghij", 0, 19);
+ test(S("abcdefghijklmnopqrst"), 1, 19, "abcdefghij", 1, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 19, "abcdefghij", 5, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 19, "abcdefghij", 9, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 19, "abcdefghij", 10, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 19, "abcdefghijklmnopqrst", 0, 19);
+ test(S("abcdefghijklmnopqrst"), 1, 19, "abcdefghijklmnopqrst", 1, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 19, "abcdefghijklmnopqrst", 10, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 19, "abcdefghijklmnopqrst", 19, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 19, "abcdefghijklmnopqrst", 20, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 20, "", 0, 19);
+ test(S("abcdefghijklmnopqrst"), 1, 20, "abcde", 0, 19);
+ test(S("abcdefghijklmnopqrst"), 1, 20, "abcde", 1, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 20, "abcde", 2, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 20, "abcde", 4, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 20, "abcde", 5, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 20, "abcdefghij", 0, 19);
+ test(S("abcdefghijklmnopqrst"), 1, 20, "abcdefghij", 1, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 20, "abcdefghij", 5, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 20, "abcdefghij", 9, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 20, "abcdefghij", 10, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 20, "abcdefghijklmnopqrst", 0, 19);
+ test(S("abcdefghijklmnopqrst"), 1, 20, "abcdefghijklmnopqrst", 1, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 20, "abcdefghijklmnopqrst", 10, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 20, "abcdefghijklmnopqrst", 19, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 20, "abcdefghijklmnopqrst", 20, 1);
+ test(S("abcdefghijklmnopqrst"), 10, 0, "", 0, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 0, "abcde", 0, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 0, "abcde", 1, -1);
+ test(S("abcdefghijklmnopqrst"), 10, 0, "abcde", 2, -2);
+ test(S("abcdefghijklmnopqrst"), 10, 0, "abcde", 4, -4);
+ test(S("abcdefghijklmnopqrst"), 10, 0, "abcde", 5, -5);
+ test(S("abcdefghijklmnopqrst"), 10, 0, "abcdefghij", 0, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 0, "abcdefghij", 1, -1);
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test10()
-{
- test(S("abcdefghijklmnopqrst"), 10, 0, "abcdefghij", 5, -5);
- test(S("abcdefghijklmnopqrst"), 10, 0, "abcdefghij", 9, -9);
- test(S("abcdefghijklmnopqrst"), 10, 0, "abcdefghij", 10, -10);
- test(S("abcdefghijklmnopqrst"), 10, 0, "abcdefghijklmnopqrst", 0, 0);
- test(S("abcdefghijklmnopqrst"), 10, 0, "abcdefghijklmnopqrst", 1, -1);
- test(S("abcdefghijklmnopqrst"), 10, 0, "abcdefghijklmnopqrst", 10, -10);
- test(S("abcdefghijklmnopqrst"), 10, 0, "abcdefghijklmnopqrst", 19, -19);
- test(S("abcdefghijklmnopqrst"), 10, 0, "abcdefghijklmnopqrst", 20, -20);
- test(S("abcdefghijklmnopqrst"), 10, 1, "", 0, 1);
- test(S("abcdefghijklmnopqrst"), 10, 1, "abcde", 0, 1);
- test(S("abcdefghijklmnopqrst"), 10, 1, "abcde", 1, 10);
- test(S("abcdefghijklmnopqrst"), 10, 1, "abcde", 2, 10);
- test(S("abcdefghijklmnopqrst"), 10, 1, "abcde", 4, 10);
- test(S("abcdefghijklmnopqrst"), 10, 1, "abcde", 5, 10);
- test(S("abcdefghijklmnopqrst"), 10, 1, "abcdefghij", 0, 1);
- test(S("abcdefghijklmnopqrst"), 10, 1, "abcdefghij", 1, 10);
- test(S("abcdefghijklmnopqrst"), 10, 1, "abcdefghij", 5, 10);
- test(S("abcdefghijklmnopqrst"), 10, 1, "abcdefghij", 9, 10);
- test(S("abcdefghijklmnopqrst"), 10, 1, "abcdefghij", 10, 10);
- test(S("abcdefghijklmnopqrst"), 10, 1, "abcdefghijklmnopqrst", 0, 1);
- test(S("abcdefghijklmnopqrst"), 10, 1, "abcdefghijklmnopqrst", 1, 10);
- test(S("abcdefghijklmnopqrst"), 10, 1, "abcdefghijklmnopqrst", 10, 10);
- test(S("abcdefghijklmnopqrst"), 10, 1, "abcdefghijklmnopqrst", 19, 10);
- test(S("abcdefghijklmnopqrst"), 10, 1, "abcdefghijklmnopqrst", 20, 10);
- test(S("abcdefghijklmnopqrst"), 10, 5, "", 0, 5);
- test(S("abcdefghijklmnopqrst"), 10, 5, "abcde", 0, 5);
- test(S("abcdefghijklmnopqrst"), 10, 5, "abcde", 1, 10);
- test(S("abcdefghijklmnopqrst"), 10, 5, "abcde", 2, 10);
- test(S("abcdefghijklmnopqrst"), 10, 5, "abcde", 4, 10);
- test(S("abcdefghijklmnopqrst"), 10, 5, "abcde", 5, 10);
- test(S("abcdefghijklmnopqrst"), 10, 5, "abcdefghij", 0, 5);
- test(S("abcdefghijklmnopqrst"), 10, 5, "abcdefghij", 1, 10);
- test(S("abcdefghijklmnopqrst"), 10, 5, "abcdefghij", 5, 10);
- test(S("abcdefghijklmnopqrst"), 10, 5, "abcdefghij", 9, 10);
- test(S("abcdefghijklmnopqrst"), 10, 5, "abcdefghij", 10, 10);
- test(S("abcdefghijklmnopqrst"), 10, 5, "abcdefghijklmnopqrst", 0, 5);
- test(S("abcdefghijklmnopqrst"), 10, 5, "abcdefghijklmnopqrst", 1, 10);
- test(S("abcdefghijklmnopqrst"), 10, 5, "abcdefghijklmnopqrst", 10, 10);
- test(S("abcdefghijklmnopqrst"), 10, 5, "abcdefghijklmnopqrst", 19, 10);
- test(S("abcdefghijklmnopqrst"), 10, 5, "abcdefghijklmnopqrst", 20, 10);
- test(S("abcdefghijklmnopqrst"), 10, 9, "", 0, 9);
- test(S("abcdefghijklmnopqrst"), 10, 9, "abcde", 0, 9);
- test(S("abcdefghijklmnopqrst"), 10, 9, "abcde", 1, 10);
- test(S("abcdefghijklmnopqrst"), 10, 9, "abcde", 2, 10);
- test(S("abcdefghijklmnopqrst"), 10, 9, "abcde", 4, 10);
- test(S("abcdefghijklmnopqrst"), 10, 9, "abcde", 5, 10);
- test(S("abcdefghijklmnopqrst"), 10, 9, "abcdefghij", 0, 9);
- test(S("abcdefghijklmnopqrst"), 10, 9, "abcdefghij", 1, 10);
- test(S("abcdefghijklmnopqrst"), 10, 9, "abcdefghij", 5, 10);
- test(S("abcdefghijklmnopqrst"), 10, 9, "abcdefghij", 9, 10);
- test(S("abcdefghijklmnopqrst"), 10, 9, "abcdefghij", 10, 10);
- test(S("abcdefghijklmnopqrst"), 10, 9, "abcdefghijklmnopqrst", 0, 9);
- test(S("abcdefghijklmnopqrst"), 10, 9, "abcdefghijklmnopqrst", 1, 10);
- test(S("abcdefghijklmnopqrst"), 10, 9, "abcdefghijklmnopqrst", 10, 10);
- test(S("abcdefghijklmnopqrst"), 10, 9, "abcdefghijklmnopqrst", 19, 10);
- test(S("abcdefghijklmnopqrst"), 10, 9, "abcdefghijklmnopqrst", 20, 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, "", 0, 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, "abcde", 0, 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, "abcde", 1, 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, "abcde", 2, 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, "abcde", 4, 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, "abcde", 5, 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, "abcdefghij", 0, 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, "abcdefghij", 1, 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, "abcdefghij", 5, 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, "abcdefghij", 9, 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, "abcdefghij", 10, 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, "abcdefghijklmnopqrst", 0, 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, "abcdefghijklmnopqrst", 1, 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, "abcdefghijklmnopqrst", 10, 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, "abcdefghijklmnopqrst", 19, 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, "abcdefghijklmnopqrst", 20, 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, "", 0, 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, "abcde", 0, 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, "abcde", 1, 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, "abcde", 2, 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, "abcde", 4, 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, "abcde", 5, 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, "abcdefghij", 0, 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, "abcdefghij", 1, 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, "abcdefghij", 5, 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, "abcdefghij", 9, 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, "abcdefghij", 10, 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, "abcdefghijklmnopqrst", 0, 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, "abcdefghijklmnopqrst", 1, 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, "abcdefghijklmnopqrst", 10, 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, "abcdefghijklmnopqrst", 19, 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, "abcdefghijklmnopqrst", 20, 10);
- test(S("abcdefghijklmnopqrst"), 19, 0, "", 0, 0);
- test(S("abcdefghijklmnopqrst"), 19, 0, "abcde", 0, 0);
- test(S("abcdefghijklmnopqrst"), 19, 0, "abcde", 1, -1);
- test(S("abcdefghijklmnopqrst"), 19, 0, "abcde", 2, -2);
- test(S("abcdefghijklmnopqrst"), 19, 0, "abcde", 4, -4);
- test(S("abcdefghijklmnopqrst"), 19, 0, "abcde", 5, -5);
- test(S("abcdefghijklmnopqrst"), 19, 0, "abcdefghij", 0, 0);
- test(S("abcdefghijklmnopqrst"), 19, 0, "abcdefghij", 1, -1);
- test(S("abcdefghijklmnopqrst"), 19, 0, "abcdefghij", 5, -5);
- test(S("abcdefghijklmnopqrst"), 19, 0, "abcdefghij", 9, -9);
- test(S("abcdefghijklmnopqrst"), 19, 0, "abcdefghij", 10, -10);
- test(S("abcdefghijklmnopqrst"), 19, 0, "abcdefghijklmnopqrst", 0, 0);
+TEST_CONSTEXPR_CXX20 bool test10() {
+ test(S("abcdefghijklmnopqrst"), 10, 0, "abcdefghij", 5, -5);
+ test(S("abcdefghijklmnopqrst"), 10, 0, "abcdefghij", 9, -9);
+ test(S("abcdefghijklmnopqrst"), 10, 0, "abcdefghij", 10, -10);
+ test(S("abcdefghijklmnopqrst"), 10, 0, "abcdefghijklmnopqrst", 0, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 0, "abcdefghijklmnopqrst", 1, -1);
+ test(S("abcdefghijklmnopqrst"), 10, 0, "abcdefghijklmnopqrst", 10, -10);
+ test(S("abcdefghijklmnopqrst"), 10, 0, "abcdefghijklmnopqrst", 19, -19);
+ test(S("abcdefghijklmnopqrst"), 10, 0, "abcdefghijklmnopqrst", 20, -20);
+ test(S("abcdefghijklmnopqrst"), 10, 1, "", 0, 1);
+ test(S("abcdefghijklmnopqrst"), 10, 1, "abcde", 0, 1);
+ test(S("abcdefghijklmnopqrst"), 10, 1, "abcde", 1, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 1, "abcde", 2, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 1, "abcde", 4, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 1, "abcde", 5, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 1, "abcdefghij", 0, 1);
+ test(S("abcdefghijklmnopqrst"), 10, 1, "abcdefghij", 1, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 1, "abcdefghij", 5, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 1, "abcdefghij", 9, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 1, "abcdefghij", 10, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 1, "abcdefghijklmnopqrst", 0, 1);
+ test(S("abcdefghijklmnopqrst"), 10, 1, "abcdefghijklmnopqrst", 1, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 1, "abcdefghijklmnopqrst", 10, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 1, "abcdefghijklmnopqrst", 19, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 1, "abcdefghijklmnopqrst", 20, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 5, "", 0, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 5, "abcde", 0, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 5, "abcde", 1, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 5, "abcde", 2, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 5, "abcde", 4, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 5, "abcde", 5, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 5, "abcdefghij", 0, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 5, "abcdefghij", 1, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 5, "abcdefghij", 5, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 5, "abcdefghij", 9, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 5, "abcdefghij", 10, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 5, "abcdefghijklmnopqrst", 0, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 5, "abcdefghijklmnopqrst", 1, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 5, "abcdefghijklmnopqrst", 10, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 5, "abcdefghijklmnopqrst", 19, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 5, "abcdefghijklmnopqrst", 20, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 9, "", 0, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 9, "abcde", 0, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 9, "abcde", 1, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 9, "abcde", 2, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 9, "abcde", 4, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 9, "abcde", 5, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 9, "abcdefghij", 0, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 9, "abcdefghij", 1, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 9, "abcdefghij", 5, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 9, "abcdefghij", 9, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 9, "abcdefghij", 10, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 9, "abcdefghijklmnopqrst", 0, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 9, "abcdefghijklmnopqrst", 1, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 9, "abcdefghijklmnopqrst", 10, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 9, "abcdefghijklmnopqrst", 19, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 9, "abcdefghijklmnopqrst", 20, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, "", 0, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, "abcde", 0, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, "abcde", 1, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, "abcde", 2, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, "abcde", 4, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, "abcde", 5, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, "abcdefghij", 0, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, "abcdefghij", 1, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, "abcdefghij", 5, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, "abcdefghij", 9, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, "abcdefghij", 10, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, "abcdefghijklmnopqrst", 0, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, "abcdefghijklmnopqrst", 1, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, "abcdefghijklmnopqrst", 10, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, "abcdefghijklmnopqrst", 19, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, "abcdefghijklmnopqrst", 20, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, "", 0, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, "abcde", 0, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, "abcde", 1, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, "abcde", 2, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, "abcde", 4, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, "abcde", 5, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, "abcdefghij", 0, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, "abcdefghij", 1, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, "abcdefghij", 5, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, "abcdefghij", 9, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, "abcdefghij", 10, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, "abcdefghijklmnopqrst", 0, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, "abcdefghijklmnopqrst", 1, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, "abcdefghijklmnopqrst", 10, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, "abcdefghijklmnopqrst", 19, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, "abcdefghijklmnopqrst", 20, 10);
+ test(S("abcdefghijklmnopqrst"), 19, 0, "", 0, 0);
+ test(S("abcdefghijklmnopqrst"), 19, 0, "abcde", 0, 0);
+ test(S("abcdefghijklmnopqrst"), 19, 0, "abcde", 1, -1);
+ test(S("abcdefghijklmnopqrst"), 19, 0, "abcde", 2, -2);
+ test(S("abcdefghijklmnopqrst"), 19, 0, "abcde", 4, -4);
+ test(S("abcdefghijklmnopqrst"), 19, 0, "abcde", 5, -5);
+ test(S("abcdefghijklmnopqrst"), 19, 0, "abcdefghij", 0, 0);
+ test(S("abcdefghijklmnopqrst"), 19, 0, "abcdefghij", 1, -1);
+ test(S("abcdefghijklmnopqrst"), 19, 0, "abcdefghij", 5, -5);
+ test(S("abcdefghijklmnopqrst"), 19, 0, "abcdefghij", 9, -9);
+ test(S("abcdefghijklmnopqrst"), 19, 0, "abcdefghij", 10, -10);
+ test(S("abcdefghijklmnopqrst"), 19, 0, "abcdefghijklmnopqrst", 0, 0);
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test11()
-{
- test(S("abcdefghijklmnopqrst"), 19, 0, "abcdefghijklmnopqrst", 1, -1);
- test(S("abcdefghijklmnopqrst"), 19, 0, "abcdefghijklmnopqrst", 10, -10);
- test(S("abcdefghijklmnopqrst"), 19, 0, "abcdefghijklmnopqrst", 19, -19);
- test(S("abcdefghijklmnopqrst"), 19, 0, "abcdefghijklmnopqrst", 20, -20);
- test(S("abcdefghijklmnopqrst"), 19, 1, "", 0, 1);
- test(S("abcdefghijklmnopqrst"), 19, 1, "abcde", 0, 1);
- test(S("abcdefghijklmnopqrst"), 19, 1, "abcde", 1, 19);
- test(S("abcdefghijklmnopqrst"), 19, 1, "abcde", 2, 19);
- test(S("abcdefghijklmnopqrst"), 19, 1, "abcde", 4, 19);
- test(S("abcdefghijklmnopqrst"), 19, 1, "abcde", 5, 19);
- test(S("abcdefghijklmnopqrst"), 19, 1, "abcdefghij", 0, 1);
- test(S("abcdefghijklmnopqrst"), 19, 1, "abcdefghij", 1, 19);
- test(S("abcdefghijklmnopqrst"), 19, 1, "abcdefghij", 5, 19);
- test(S("abcdefghijklmnopqrst"), 19, 1, "abcdefghij", 9, 19);
- test(S("abcdefghijklmnopqrst"), 19, 1, "abcdefghij", 10, 19);
- test(S("abcdefghijklmnopqrst"), 19, 1, "abcdefghijklmnopqrst", 0, 1);
- test(S("abcdefghijklmnopqrst"), 19, 1, "abcdefghijklmnopqrst", 1, 19);
- test(S("abcdefghijklmnopqrst"), 19, 1, "abcdefghijklmnopqrst", 10, 19);
- test(S("abcdefghijklmnopqrst"), 19, 1, "abcdefghijklmnopqrst", 19, 19);
- test(S("abcdefghijklmnopqrst"), 19, 1, "abcdefghijklmnopqrst", 20, 19);
- test(S("abcdefghijklmnopqrst"), 19, 2, "", 0, 1);
- test(S("abcdefghijklmnopqrst"), 19, 2, "abcde", 0, 1);
- test(S("abcdefghijklmnopqrst"), 19, 2, "abcde", 1, 19);
- test(S("abcdefghijklmnopqrst"), 19, 2, "abcde", 2, 19);
- test(S("abcdefghijklmnopqrst"), 19, 2, "abcde", 4, 19);
- test(S("abcdefghijklmnopqrst"), 19, 2, "abcde", 5, 19);
- test(S("abcdefghijklmnopqrst"), 19, 2, "abcdefghij", 0, 1);
- test(S("abcdefghijklmnopqrst"), 19, 2, "abcdefghij", 1, 19);
- test(S("abcdefghijklmnopqrst"), 19, 2, "abcdefghij", 5, 19);
- test(S("abcdefghijklmnopqrst"), 19, 2, "abcdefghij", 9, 19);
- test(S("abcdefghijklmnopqrst"), 19, 2, "abcdefghij", 10, 19);
- test(S("abcdefghijklmnopqrst"), 19, 2, "abcdefghijklmnopqrst", 0, 1);
- test(S("abcdefghijklmnopqrst"), 19, 2, "abcdefghijklmnopqrst", 1, 19);
- test(S("abcdefghijklmnopqrst"), 19, 2, "abcdefghijklmnopqrst", 10, 19);
- test(S("abcdefghijklmnopqrst"), 19, 2, "abcdefghijklmnopqrst", 19, 19);
- test(S("abcdefghijklmnopqrst"), 19, 2, "abcdefghijklmnopqrst", 20, 19);
- test(S("abcdefghijklmnopqrst"), 20, 0, "", 0, 0);
- test(S("abcdefghijklmnopqrst"), 20, 0, "abcde", 0, 0);
- test(S("abcdefghijklmnopqrst"), 20, 0, "abcde", 1, -1);
- test(S("abcdefghijklmnopqrst"), 20, 0, "abcde", 2, -2);
- test(S("abcdefghijklmnopqrst"), 20, 0, "abcde", 4, -4);
- test(S("abcdefghijklmnopqrst"), 20, 0, "abcde", 5, -5);
- test(S("abcdefghijklmnopqrst"), 20, 0, "abcdefghij", 0, 0);
- test(S("abcdefghijklmnopqrst"), 20, 0, "abcdefghij", 1, -1);
- test(S("abcdefghijklmnopqrst"), 20, 0, "abcdefghij", 5, -5);
- test(S("abcdefghijklmnopqrst"), 20, 0, "abcdefghij", 9, -9);
- test(S("abcdefghijklmnopqrst"), 20, 0, "abcdefghij", 10, -10);
- test(S("abcdefghijklmnopqrst"), 20, 0, "abcdefghijklmnopqrst", 0, 0);
- test(S("abcdefghijklmnopqrst"), 20, 0, "abcdefghijklmnopqrst", 1, -1);
- test(S("abcdefghijklmnopqrst"), 20, 0, "abcdefghijklmnopqrst", 10, -10);
- test(S("abcdefghijklmnopqrst"), 20, 0, "abcdefghijklmnopqrst", 19, -19);
- test(S("abcdefghijklmnopqrst"), 20, 0, "abcdefghijklmnopqrst", 20, -20);
- test(S("abcdefghijklmnopqrst"), 20, 1, "", 0, 0);
- test(S("abcdefghijklmnopqrst"), 20, 1, "abcde", 0, 0);
- test(S("abcdefghijklmnopqrst"), 20, 1, "abcde", 1, -1);
- test(S("abcdefghijklmnopqrst"), 20, 1, "abcde", 2, -2);
- test(S("abcdefghijklmnopqrst"), 20, 1, "abcde", 4, -4);
- test(S("abcdefghijklmnopqrst"), 20, 1, "abcde", 5, -5);
- test(S("abcdefghijklmnopqrst"), 20, 1, "abcdefghij", 0, 0);
- test(S("abcdefghijklmnopqrst"), 20, 1, "abcdefghij", 1, -1);
- test(S("abcdefghijklmnopqrst"), 20, 1, "abcdefghij", 5, -5);
- test(S("abcdefghijklmnopqrst"), 20, 1, "abcdefghij", 9, -9);
- test(S("abcdefghijklmnopqrst"), 20, 1, "abcdefghij", 10, -10);
- test(S("abcdefghijklmnopqrst"), 20, 1, "abcdefghijklmnopqrst", 0, 0);
- test(S("abcdefghijklmnopqrst"), 20, 1, "abcdefghijklmnopqrst", 1, -1);
- test(S("abcdefghijklmnopqrst"), 20, 1, "abcdefghijklmnopqrst", 10, -10);
- test(S("abcdefghijklmnopqrst"), 20, 1, "abcdefghijklmnopqrst", 19, -19);
- test(S("abcdefghijklmnopqrst"), 20, 1, "abcdefghijklmnopqrst", 20, -20);
- test(S("abcdefghijklmnopqrst"), 21, 0, "", 0, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, "abcde", 0, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, "abcde", 1, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, "abcde", 2, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, "abcde", 4, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, "abcde", 5, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, "abcdefghij", 0, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, "abcdefghij", 1, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, "abcdefghij", 5, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, "abcdefghij", 9, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, "abcdefghij", 10, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, "abcdefghijklmnopqrst", 0, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, "abcdefghijklmnopqrst", 1, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, "abcdefghijklmnopqrst", 10, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, "abcdefghijklmnopqrst", 19, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, "abcdefghijklmnopqrst", 20, 0);
+TEST_CONSTEXPR_CXX20 bool test11() {
+ test(S("abcdefghijklmnopqrst"), 19, 0, "abcdefghijklmnopqrst", 1, -1);
+ test(S("abcdefghijklmnopqrst"), 19, 0, "abcdefghijklmnopqrst", 10, -10);
+ test(S("abcdefghijklmnopqrst"), 19, 0, "abcdefghijklmnopqrst", 19, -19);
+ test(S("abcdefghijklmnopqrst"), 19, 0, "abcdefghijklmnopqrst", 20, -20);
+ test(S("abcdefghijklmnopqrst"), 19, 1, "", 0, 1);
+ test(S("abcdefghijklmnopqrst"), 19, 1, "abcde", 0, 1);
+ test(S("abcdefghijklmnopqrst"), 19, 1, "abcde", 1, 19);
+ test(S("abcdefghijklmnopqrst"), 19, 1, "abcde", 2, 19);
+ test(S("abcdefghijklmnopqrst"), 19, 1, "abcde", 4, 19);
+ test(S("abcdefghijklmnopqrst"), 19, 1, "abcde", 5, 19);
+ test(S("abcdefghijklmnopqrst"), 19, 1, "abcdefghij", 0, 1);
+ test(S("abcdefghijklmnopqrst"), 19, 1, "abcdefghij", 1, 19);
+ test(S("abcdefghijklmnopqrst"), 19, 1, "abcdefghij", 5, 19);
+ test(S("abcdefghijklmnopqrst"), 19, 1, "abcdefghij", 9, 19);
+ test(S("abcdefghijklmnopqrst"), 19, 1, "abcdefghij", 10, 19);
+ test(S("abcdefghijklmnopqrst"), 19, 1, "abcdefghijklmnopqrst", 0, 1);
+ test(S("abcdefghijklmnopqrst"), 19, 1, "abcdefghijklmnopqrst", 1, 19);
+ test(S("abcdefghijklmnopqrst"), 19, 1, "abcdefghijklmnopqrst", 10, 19);
+ test(S("abcdefghijklmnopqrst"), 19, 1, "abcdefghijklmnopqrst", 19, 19);
+ test(S("abcdefghijklmnopqrst"), 19, 1, "abcdefghijklmnopqrst", 20, 19);
+ test(S("abcdefghijklmnopqrst"), 19, 2, "", 0, 1);
+ test(S("abcdefghijklmnopqrst"), 19, 2, "abcde", 0, 1);
+ test(S("abcdefghijklmnopqrst"), 19, 2, "abcde", 1, 19);
+ test(S("abcdefghijklmnopqrst"), 19, 2, "abcde", 2, 19);
+ test(S("abcdefghijklmnopqrst"), 19, 2, "abcde", 4, 19);
+ test(S("abcdefghijklmnopqrst"), 19, 2, "abcde", 5, 19);
+ test(S("abcdefghijklmnopqrst"), 19, 2, "abcdefghij", 0, 1);
+ test(S("abcdefghijklmnopqrst"), 19, 2, "abcdefghij", 1, 19);
+ test(S("abcdefghijklmnopqrst"), 19, 2, "abcdefghij", 5, 19);
+ test(S("abcdefghijklmnopqrst"), 19, 2, "abcdefghij", 9, 19);
+ test(S("abcdefghijklmnopqrst"), 19, 2, "abcdefghij", 10, 19);
+ test(S("abcdefghijklmnopqrst"), 19, 2, "abcdefghijklmnopqrst", 0, 1);
+ test(S("abcdefghijklmnopqrst"), 19, 2, "abcdefghijklmnopqrst", 1, 19);
+ test(S("abcdefghijklmnopqrst"), 19, 2, "abcdefghijklmnopqrst", 10, 19);
+ test(S("abcdefghijklmnopqrst"), 19, 2, "abcdefghijklmnopqrst", 19, 19);
+ test(S("abcdefghijklmnopqrst"), 19, 2, "abcdefghijklmnopqrst", 20, 19);
+ test(S("abcdefghijklmnopqrst"), 20, 0, "", 0, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 0, "abcde", 0, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 0, "abcde", 1, -1);
+ test(S("abcdefghijklmnopqrst"), 20, 0, "abcde", 2, -2);
+ test(S("abcdefghijklmnopqrst"), 20, 0, "abcde", 4, -4);
+ test(S("abcdefghijklmnopqrst"), 20, 0, "abcde", 5, -5);
+ test(S("abcdefghijklmnopqrst"), 20, 0, "abcdefghij", 0, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 0, "abcdefghij", 1, -1);
+ test(S("abcdefghijklmnopqrst"), 20, 0, "abcdefghij", 5, -5);
+ test(S("abcdefghijklmnopqrst"), 20, 0, "abcdefghij", 9, -9);
+ test(S("abcdefghijklmnopqrst"), 20, 0, "abcdefghij", 10, -10);
+ test(S("abcdefghijklmnopqrst"), 20, 0, "abcdefghijklmnopqrst", 0, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 0, "abcdefghijklmnopqrst", 1, -1);
+ test(S("abcdefghijklmnopqrst"), 20, 0, "abcdefghijklmnopqrst", 10, -10);
+ test(S("abcdefghijklmnopqrst"), 20, 0, "abcdefghijklmnopqrst", 19, -19);
+ test(S("abcdefghijklmnopqrst"), 20, 0, "abcdefghijklmnopqrst", 20, -20);
+ test(S("abcdefghijklmnopqrst"), 20, 1, "", 0, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 1, "abcde", 0, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 1, "abcde", 1, -1);
+ test(S("abcdefghijklmnopqrst"), 20, 1, "abcde", 2, -2);
+ test(S("abcdefghijklmnopqrst"), 20, 1, "abcde", 4, -4);
+ test(S("abcdefghijklmnopqrst"), 20, 1, "abcde", 5, -5);
+ test(S("abcdefghijklmnopqrst"), 20, 1, "abcdefghij", 0, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 1, "abcdefghij", 1, -1);
+ test(S("abcdefghijklmnopqrst"), 20, 1, "abcdefghij", 5, -5);
+ test(S("abcdefghijklmnopqrst"), 20, 1, "abcdefghij", 9, -9);
+ test(S("abcdefghijklmnopqrst"), 20, 1, "abcdefghij", 10, -10);
+ test(S("abcdefghijklmnopqrst"), 20, 1, "abcdefghijklmnopqrst", 0, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 1, "abcdefghijklmnopqrst", 1, -1);
+ test(S("abcdefghijklmnopqrst"), 20, 1, "abcdefghijklmnopqrst", 10, -10);
+ test(S("abcdefghijklmnopqrst"), 20, 1, "abcdefghijklmnopqrst", 19, -19);
+ test(S("abcdefghijklmnopqrst"), 20, 1, "abcdefghijklmnopqrst", 20, -20);
+ test(S("abcdefghijklmnopqrst"), 21, 0, "", 0, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, "abcde", 0, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, "abcde", 1, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, "abcde", 2, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, "abcde", 4, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, "abcde", 5, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, "abcdefghij", 0, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, "abcdefghij", 1, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, "abcdefghij", 5, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, "abcdefghij", 9, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, "abcdefghij", 10, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, "abcdefghijklmnopqrst", 0, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, "abcdefghijklmnopqrst", 1, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, "abcdefghijklmnopqrst", 10, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, "abcdefghijklmnopqrst", 19, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, "abcdefghijklmnopqrst", 20, 0);
- return true;
+ return true;
}
template <class S>
@@ -1349,8 +1335,7 @@ void test() {
#endif
}
-int main(int, char**)
-{
+int main(int, char**) {
test<std::string>();
#if TEST_STD_VER >= 11
test<std::basic_string<char, std::char_traits<char>, min_allocator<char>>>();
diff --git a/libcxx/test/std/strings/basic.string/string.ops/string_compare/size_size_string.pass.cpp b/libcxx/test/std/strings/basic.string/string.ops/string_compare/size_size_string.pass.cpp
index e3b5756b4e97417..c3a7d0d500e1e66 100644
--- a/libcxx/test/std/strings/basic.string/string.ops/string_compare/size_size_string.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.ops/string_compare/size_size_string.pass.cpp
@@ -17,347 +17,336 @@
#include "test_macros.h"
#include "min_allocator.h"
-TEST_CONSTEXPR_CXX20 int sign(int x)
-{
- if (x == 0)
- return 0;
- if (x < 0)
- return -1;
- return 1;
+TEST_CONSTEXPR_CXX20 int sign(int x) {
+ if (x == 0)
+ return 0;
+ if (x < 0)
+ return -1;
+ return 1;
}
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(const S& s, typename S::size_type pos1, typename S::size_type n1,
- const S& str, int x)
-{
- if (pos1 <= s.size())
- assert(sign(s.compare(pos1, n1, str)) == sign(x));
+TEST_CONSTEXPR_CXX20 void test(const S& s, typename S::size_type pos1, typename S::size_type n1, const S& str, int x) {
+ if (pos1 <= s.size())
+ assert(sign(s.compare(pos1, n1, str)) == sign(x));
#ifndef TEST_HAS_NO_EXCEPTIONS
- else if (!TEST_IS_CONSTANT_EVALUATED)
- {
- try
- {
- TEST_IGNORE_NODISCARD s.compare(pos1, n1, str);
- assert(false);
- }
- catch (std::out_of_range&)
- {
- assert(pos1 > s.size());
- }
+ else if (!TEST_IS_CONSTANT_EVALUATED) {
+ try {
+ TEST_IGNORE_NODISCARD s.compare(pos1, n1, str);
+ assert(false);
+ } catch (std::out_of_range&) {
+ assert(pos1 > s.size());
}
+ }
#endif
}
template <class S>
-TEST_CONSTEXPR_CXX20 void test0()
-{
- test(S(""), 0, 0, S(""), 0);
- test(S(""), 0, 0, S("abcde"), -5);
- test(S(""), 0, 0, S("abcdefghij"), -10);
- test(S(""), 0, 0, S("abcdefghijklmnopqrst"), -20);
- test(S(""), 0, 1, S(""), 0);
- test(S(""), 0, 1, S("abcde"), -5);
- test(S(""), 0, 1, S("abcdefghij"), -10);
- test(S(""), 0, 1, S("abcdefghijklmnopqrst"), -20);
- test(S(""), 1, 0, S(""), 0);
- test(S(""), 1, 0, S("abcde"), 0);
- test(S(""), 1, 0, S("abcdefghij"), 0);
- test(S(""), 1, 0, S("abcdefghijklmnopqrst"), 0);
- test(S("abcde"), 0, 0, S(""), 0);
- test(S("abcde"), 0, 0, S("abcde"), -5);
- test(S("abcde"), 0, 0, S("abcdefghij"), -10);
- test(S("abcde"), 0, 0, S("abcdefghijklmnopqrst"), -20);
- test(S("abcde"), 0, 1, S(""), 1);
- test(S("abcde"), 0, 1, S("abcde"), -4);
- test(S("abcde"), 0, 1, S("abcdefghij"), -9);
- test(S("abcde"), 0, 1, S("abcdefghijklmnopqrst"), -19);
- test(S("abcde"), 0, 2, S(""), 2);
- test(S("abcde"), 0, 2, S("abcde"), -3);
- test(S("abcde"), 0, 2, S("abcdefghij"), -8);
- test(S("abcde"), 0, 2, S("abcdefghijklmnopqrst"), -18);
- test(S("abcde"), 0, 4, S(""), 4);
- test(S("abcde"), 0, 4, S("abcde"), -1);
- test(S("abcde"), 0, 4, S("abcdefghij"), -6);
- test(S("abcde"), 0, 4, S("abcdefghijklmnopqrst"), -16);
- test(S("abcde"), 0, 5, S(""), 5);
- test(S("abcde"), 0, 5, S("abcde"), 0);
- test(S("abcde"), 0, 5, S("abcdefghij"), -5);
- test(S("abcde"), 0, 5, S("abcdefghijklmnopqrst"), -15);
- test(S("abcde"), 0, 6, S(""), 5);
- test(S("abcde"), 0, 6, S("abcde"), 0);
- test(S("abcde"), 0, 6, S("abcdefghij"), -5);
- test(S("abcde"), 0, 6, S("abcdefghijklmnopqrst"), -15);
- test(S("abcde"), 1, 0, S(""), 0);
- test(S("abcde"), 1, 0, S("abcde"), -5);
- test(S("abcde"), 1, 0, S("abcdefghij"), -10);
- test(S("abcde"), 1, 0, S("abcdefghijklmnopqrst"), -20);
- test(S("abcde"), 1, 1, S(""), 1);
- test(S("abcde"), 1, 1, S("abcde"), 1);
- test(S("abcde"), 1, 1, S("abcdefghij"), 1);
- test(S("abcde"), 1, 1, S("abcdefghijklmnopqrst"), 1);
- test(S("abcde"), 1, 2, S(""), 2);
- test(S("abcde"), 1, 2, S("abcde"), 1);
- test(S("abcde"), 1, 2, S("abcdefghij"), 1);
- test(S("abcde"), 1, 2, S("abcdefghijklmnopqrst"), 1);
- test(S("abcde"), 1, 3, S(""), 3);
- test(S("abcde"), 1, 3, S("abcde"), 1);
- test(S("abcde"), 1, 3, S("abcdefghij"), 1);
- test(S("abcde"), 1, 3, S("abcdefghijklmnopqrst"), 1);
- test(S("abcde"), 1, 4, S(""), 4);
- test(S("abcde"), 1, 4, S("abcde"), 1);
- test(S("abcde"), 1, 4, S("abcdefghij"), 1);
- test(S("abcde"), 1, 4, S("abcdefghijklmnopqrst"), 1);
- test(S("abcde"), 1, 5, S(""), 4);
- test(S("abcde"), 1, 5, S("abcde"), 1);
- test(S("abcde"), 1, 5, S("abcdefghij"), 1);
- test(S("abcde"), 1, 5, S("abcdefghijklmnopqrst"), 1);
- test(S("abcde"), 2, 0, S(""), 0);
- test(S("abcde"), 2, 0, S("abcde"), -5);
- test(S("abcde"), 2, 0, S("abcdefghij"), -10);
- test(S("abcde"), 2, 0, S("abcdefghijklmnopqrst"), -20);
- test(S("abcde"), 2, 1, S(""), 1);
- test(S("abcde"), 2, 1, S("abcde"), 2);
- test(S("abcde"), 2, 1, S("abcdefghij"), 2);
- test(S("abcde"), 2, 1, S("abcdefghijklmnopqrst"), 2);
- test(S("abcde"), 2, 2, S(""), 2);
- test(S("abcde"), 2, 2, S("abcde"), 2);
- test(S("abcde"), 2, 2, S("abcdefghij"), 2);
- test(S("abcde"), 2, 2, S("abcdefghijklmnopqrst"), 2);
- test(S("abcde"), 2, 3, S(""), 3);
- test(S("abcde"), 2, 3, S("abcde"), 2);
- test(S("abcde"), 2, 3, S("abcdefghij"), 2);
- test(S("abcde"), 2, 3, S("abcdefghijklmnopqrst"), 2);
- test(S("abcde"), 2, 4, S(""), 3);
- test(S("abcde"), 2, 4, S("abcde"), 2);
- test(S("abcde"), 2, 4, S("abcdefghij"), 2);
- test(S("abcde"), 2, 4, S("abcdefghijklmnopqrst"), 2);
- test(S("abcde"), 4, 0, S(""), 0);
- test(S("abcde"), 4, 0, S("abcde"), -5);
- test(S("abcde"), 4, 0, S("abcdefghij"), -10);
- test(S("abcde"), 4, 0, S("abcdefghijklmnopqrst"), -20);
- test(S("abcde"), 4, 1, S(""), 1);
- test(S("abcde"), 4, 1, S("abcde"), 4);
- test(S("abcde"), 4, 1, S("abcdefghij"), 4);
- test(S("abcde"), 4, 1, S("abcdefghijklmnopqrst"), 4);
- test(S("abcde"), 4, 2, S(""), 1);
- test(S("abcde"), 4, 2, S("abcde"), 4);
- test(S("abcde"), 4, 2, S("abcdefghij"), 4);
- test(S("abcde"), 4, 2, S("abcdefghijklmnopqrst"), 4);
- test(S("abcde"), 5, 0, S(""), 0);
- test(S("abcde"), 5, 0, S("abcde"), -5);
- test(S("abcde"), 5, 0, S("abcdefghij"), -10);
- test(S("abcde"), 5, 0, S("abcdefghijklmnopqrst"), -20);
- test(S("abcde"), 5, 1, S(""), 0);
- test(S("abcde"), 5, 1, S("abcde"), -5);
- test(S("abcde"), 5, 1, S("abcdefghij"), -10);
- test(S("abcde"), 5, 1, S("abcdefghijklmnopqrst"), -20);
+TEST_CONSTEXPR_CXX20 void test0() {
+ test(S(""), 0, 0, S(""), 0);
+ test(S(""), 0, 0, S("abcde"), -5);
+ test(S(""), 0, 0, S("abcdefghij"), -10);
+ test(S(""), 0, 0, S("abcdefghijklmnopqrst"), -20);
+ test(S(""), 0, 1, S(""), 0);
+ test(S(""), 0, 1, S("abcde"), -5);
+ test(S(""), 0, 1, S("abcdefghij"), -10);
+ test(S(""), 0, 1, S("abcdefghijklmnopqrst"), -20);
+ test(S(""), 1, 0, S(""), 0);
+ test(S(""), 1, 0, S("abcde"), 0);
+ test(S(""), 1, 0, S("abcdefghij"), 0);
+ test(S(""), 1, 0, S("abcdefghijklmnopqrst"), 0);
+ test(S("abcde"), 0, 0, S(""), 0);
+ test(S("abcde"), 0, 0, S("abcde"), -5);
+ test(S("abcde"), 0, 0, S("abcdefghij"), -10);
+ test(S("abcde"), 0, 0, S("abcdefghijklmnopqrst"), -20);
+ test(S("abcde"), 0, 1, S(""), 1);
+ test(S("abcde"), 0, 1, S("abcde"), -4);
+ test(S("abcde"), 0, 1, S("abcdefghij"), -9);
+ test(S("abcde"), 0, 1, S("abcdefghijklmnopqrst"), -19);
+ test(S("abcde"), 0, 2, S(""), 2);
+ test(S("abcde"), 0, 2, S("abcde"), -3);
+ test(S("abcde"), 0, 2, S("abcdefghij"), -8);
+ test(S("abcde"), 0, 2, S("abcdefghijklmnopqrst"), -18);
+ test(S("abcde"), 0, 4, S(""), 4);
+ test(S("abcde"), 0, 4, S("abcde"), -1);
+ test(S("abcde"), 0, 4, S("abcdefghij"), -6);
+ test(S("abcde"), 0, 4, S("abcdefghijklmnopqrst"), -16);
+ test(S("abcde"), 0, 5, S(""), 5);
+ test(S("abcde"), 0, 5, S("abcde"), 0);
+ test(S("abcde"), 0, 5, S("abcdefghij"), -5);
+ test(S("abcde"), 0, 5, S("abcdefghijklmnopqrst"), -15);
+ test(S("abcde"), 0, 6, S(""), 5);
+ test(S("abcde"), 0, 6, S("abcde"), 0);
+ test(S("abcde"), 0, 6, S("abcdefghij"), -5);
+ test(S("abcde"), 0, 6, S("abcdefghijklmnopqrst"), -15);
+ test(S("abcde"), 1, 0, S(""), 0);
+ test(S("abcde"), 1, 0, S("abcde"), -5);
+ test(S("abcde"), 1, 0, S("abcdefghij"), -10);
+ test(S("abcde"), 1, 0, S("abcdefghijklmnopqrst"), -20);
+ test(S("abcde"), 1, 1, S(""), 1);
+ test(S("abcde"), 1, 1, S("abcde"), 1);
+ test(S("abcde"), 1, 1, S("abcdefghij"), 1);
+ test(S("abcde"), 1, 1, S("abcdefghijklmnopqrst"), 1);
+ test(S("abcde"), 1, 2, S(""), 2);
+ test(S("abcde"), 1, 2, S("abcde"), 1);
+ test(S("abcde"), 1, 2, S("abcdefghij"), 1);
+ test(S("abcde"), 1, 2, S("abcdefghijklmnopqrst"), 1);
+ test(S("abcde"), 1, 3, S(""), 3);
+ test(S("abcde"), 1, 3, S("abcde"), 1);
+ test(S("abcde"), 1, 3, S("abcdefghij"), 1);
+ test(S("abcde"), 1, 3, S("abcdefghijklmnopqrst"), 1);
+ test(S("abcde"), 1, 4, S(""), 4);
+ test(S("abcde"), 1, 4, S("abcde"), 1);
+ test(S("abcde"), 1, 4, S("abcdefghij"), 1);
+ test(S("abcde"), 1, 4, S("abcdefghijklmnopqrst"), 1);
+ test(S("abcde"), 1, 5, S(""), 4);
+ test(S("abcde"), 1, 5, S("abcde"), 1);
+ test(S("abcde"), 1, 5, S("abcdefghij"), 1);
+ test(S("abcde"), 1, 5, S("abcdefghijklmnopqrst"), 1);
+ test(S("abcde"), 2, 0, S(""), 0);
+ test(S("abcde"), 2, 0, S("abcde"), -5);
+ test(S("abcde"), 2, 0, S("abcdefghij"), -10);
+ test(S("abcde"), 2, 0, S("abcdefghijklmnopqrst"), -20);
+ test(S("abcde"), 2, 1, S(""), 1);
+ test(S("abcde"), 2, 1, S("abcde"), 2);
+ test(S("abcde"), 2, 1, S("abcdefghij"), 2);
+ test(S("abcde"), 2, 1, S("abcdefghijklmnopqrst"), 2);
+ test(S("abcde"), 2, 2, S(""), 2);
+ test(S("abcde"), 2, 2, S("abcde"), 2);
+ test(S("abcde"), 2, 2, S("abcdefghij"), 2);
+ test(S("abcde"), 2, 2, S("abcdefghijklmnopqrst"), 2);
+ test(S("abcde"), 2, 3, S(""), 3);
+ test(S("abcde"), 2, 3, S("abcde"), 2);
+ test(S("abcde"), 2, 3, S("abcdefghij"), 2);
+ test(S("abcde"), 2, 3, S("abcdefghijklmnopqrst"), 2);
+ test(S("abcde"), 2, 4, S(""), 3);
+ test(S("abcde"), 2, 4, S("abcde"), 2);
+ test(S("abcde"), 2, 4, S("abcdefghij"), 2);
+ test(S("abcde"), 2, 4, S("abcdefghijklmnopqrst"), 2);
+ test(S("abcde"), 4, 0, S(""), 0);
+ test(S("abcde"), 4, 0, S("abcde"), -5);
+ test(S("abcde"), 4, 0, S("abcdefghij"), -10);
+ test(S("abcde"), 4, 0, S("abcdefghijklmnopqrst"), -20);
+ test(S("abcde"), 4, 1, S(""), 1);
+ test(S("abcde"), 4, 1, S("abcde"), 4);
+ test(S("abcde"), 4, 1, S("abcdefghij"), 4);
+ test(S("abcde"), 4, 1, S("abcdefghijklmnopqrst"), 4);
+ test(S("abcde"), 4, 2, S(""), 1);
+ test(S("abcde"), 4, 2, S("abcde"), 4);
+ test(S("abcde"), 4, 2, S("abcdefghij"), 4);
+ test(S("abcde"), 4, 2, S("abcdefghijklmnopqrst"), 4);
+ test(S("abcde"), 5, 0, S(""), 0);
+ test(S("abcde"), 5, 0, S("abcde"), -5);
+ test(S("abcde"), 5, 0, S("abcdefghij"), -10);
+ test(S("abcde"), 5, 0, S("abcdefghijklmnopqrst"), -20);
+ test(S("abcde"), 5, 1, S(""), 0);
+ test(S("abcde"), 5, 1, S("abcde"), -5);
+ test(S("abcde"), 5, 1, S("abcdefghij"), -10);
+ test(S("abcde"), 5, 1, S("abcdefghijklmnopqrst"), -20);
}
template <class S>
-TEST_CONSTEXPR_CXX20 void test1()
-{
- test(S("abcde"), 6, 0, S(""), 0);
- test(S("abcde"), 6, 0, S("abcde"), 0);
- test(S("abcde"), 6, 0, S("abcdefghij"), 0);
- test(S("abcde"), 6, 0, S("abcdefghijklmnopqrst"), 0);
- test(S("abcdefghij"), 0, 0, S(""), 0);
- test(S("abcdefghij"), 0, 0, S("abcde"), -5);
- test(S("abcdefghij"), 0, 0, S("abcdefghij"), -10);
- test(S("abcdefghij"), 0, 0, S("abcdefghijklmnopqrst"), -20);
- test(S("abcdefghij"), 0, 1, S(""), 1);
- test(S("abcdefghij"), 0, 1, S("abcde"), -4);
- test(S("abcdefghij"), 0, 1, S("abcdefghij"), -9);
- test(S("abcdefghij"), 0, 1, S("abcdefghijklmnopqrst"), -19);
- test(S("abcdefghij"), 0, 5, S(""), 5);
- test(S("abcdefghij"), 0, 5, S("abcde"), 0);
- test(S("abcdefghij"), 0, 5, S("abcdefghij"), -5);
- test(S("abcdefghij"), 0, 5, S("abcdefghijklmnopqrst"), -15);
- test(S("abcdefghij"), 0, 9, S(""), 9);
- test(S("abcdefghij"), 0, 9, S("abcde"), 4);
- test(S("abcdefghij"), 0, 9, S("abcdefghij"), -1);
- test(S("abcdefghij"), 0, 9, S("abcdefghijklmnopqrst"), -11);
- test(S("abcdefghij"), 0, 10, S(""), 10);
- test(S("abcdefghij"), 0, 10, S("abcde"), 5);
- test(S("abcdefghij"), 0, 10, S("abcdefghij"), 0);
- test(S("abcdefghij"), 0, 10, S("abcdefghijklmnopqrst"), -10);
- test(S("abcdefghij"), 0, 11, S(""), 10);
- test(S("abcdefghij"), 0, 11, S("abcde"), 5);
- test(S("abcdefghij"), 0, 11, S("abcdefghij"), 0);
- test(S("abcdefghij"), 0, 11, S("abcdefghijklmnopqrst"), -10);
- test(S("abcdefghij"), 1, 0, S(""), 0);
- test(S("abcdefghij"), 1, 0, S("abcde"), -5);
- test(S("abcdefghij"), 1, 0, S("abcdefghij"), -10);
- test(S("abcdefghij"), 1, 0, S("abcdefghijklmnopqrst"), -20);
- test(S("abcdefghij"), 1, 1, S(""), 1);
- test(S("abcdefghij"), 1, 1, S("abcde"), 1);
- test(S("abcdefghij"), 1, 1, S("abcdefghij"), 1);
- test(S("abcdefghij"), 1, 1, S("abcdefghijklmnopqrst"), 1);
- test(S("abcdefghij"), 1, 4, S(""), 4);
- test(S("abcdefghij"), 1, 4, S("abcde"), 1);
- test(S("abcdefghij"), 1, 4, S("abcdefghij"), 1);
- test(S("abcdefghij"), 1, 4, S("abcdefghijklmnopqrst"), 1);
- test(S("abcdefghij"), 1, 8, S(""), 8);
- test(S("abcdefghij"), 1, 8, S("abcde"), 1);
- test(S("abcdefghij"), 1, 8, S("abcdefghij"), 1);
- test(S("abcdefghij"), 1, 8, S("abcdefghijklmnopqrst"), 1);
- test(S("abcdefghij"), 1, 9, S(""), 9);
- test(S("abcdefghij"), 1, 9, S("abcde"), 1);
- test(S("abcdefghij"), 1, 9, S("abcdefghij"), 1);
- test(S("abcdefghij"), 1, 9, S("abcdefghijklmnopqrst"), 1);
- test(S("abcdefghij"), 1, 10, S(""), 9);
- test(S("abcdefghij"), 1, 10, S("abcde"), 1);
- test(S("abcdefghij"), 1, 10, S("abcdefghij"), 1);
- test(S("abcdefghij"), 1, 10, S("abcdefghijklmnopqrst"), 1);
- test(S("abcdefghij"), 5, 0, S(""), 0);
- test(S("abcdefghij"), 5, 0, S("abcde"), -5);
- test(S("abcdefghij"), 5, 0, S("abcdefghij"), -10);
- test(S("abcdefghij"), 5, 0, S("abcdefghijklmnopqrst"), -20);
- test(S("abcdefghij"), 5, 1, S(""), 1);
- test(S("abcdefghij"), 5, 1, S("abcde"), 5);
- test(S("abcdefghij"), 5, 1, S("abcdefghij"), 5);
- test(S("abcdefghij"), 5, 1, S("abcdefghijklmnopqrst"), 5);
- test(S("abcdefghij"), 5, 2, S(""), 2);
- test(S("abcdefghij"), 5, 2, S("abcde"), 5);
- test(S("abcdefghij"), 5, 2, S("abcdefghij"), 5);
- test(S("abcdefghij"), 5, 2, S("abcdefghijklmnopqrst"), 5);
- test(S("abcdefghij"), 5, 4, S(""), 4);
- test(S("abcdefghij"), 5, 4, S("abcde"), 5);
- test(S("abcdefghij"), 5, 4, S("abcdefghij"), 5);
- test(S("abcdefghij"), 5, 4, S("abcdefghijklmnopqrst"), 5);
- test(S("abcdefghij"), 5, 5, S(""), 5);
- test(S("abcdefghij"), 5, 5, S("abcde"), 5);
- test(S("abcdefghij"), 5, 5, S("abcdefghij"), 5);
- test(S("abcdefghij"), 5, 5, S("abcdefghijklmnopqrst"), 5);
- test(S("abcdefghij"), 5, 6, S(""), 5);
- test(S("abcdefghij"), 5, 6, S("abcde"), 5);
- test(S("abcdefghij"), 5, 6, S("abcdefghij"), 5);
- test(S("abcdefghij"), 5, 6, S("abcdefghijklmnopqrst"), 5);
- test(S("abcdefghij"), 9, 0, S(""), 0);
- test(S("abcdefghij"), 9, 0, S("abcde"), -5);
- test(S("abcdefghij"), 9, 0, S("abcdefghij"), -10);
- test(S("abcdefghij"), 9, 0, S("abcdefghijklmnopqrst"), -20);
- test(S("abcdefghij"), 9, 1, S(""), 1);
- test(S("abcdefghij"), 9, 1, S("abcde"), 9);
- test(S("abcdefghij"), 9, 1, S("abcdefghij"), 9);
- test(S("abcdefghij"), 9, 1, S("abcdefghijklmnopqrst"), 9);
- test(S("abcdefghij"), 9, 2, S(""), 1);
- test(S("abcdefghij"), 9, 2, S("abcde"), 9);
- test(S("abcdefghij"), 9, 2, S("abcdefghij"), 9);
- test(S("abcdefghij"), 9, 2, S("abcdefghijklmnopqrst"), 9);
- test(S("abcdefghij"), 10, 0, S(""), 0);
- test(S("abcdefghij"), 10, 0, S("abcde"), -5);
- test(S("abcdefghij"), 10, 0, S("abcdefghij"), -10);
- test(S("abcdefghij"), 10, 0, S("abcdefghijklmnopqrst"), -20);
- test(S("abcdefghij"), 10, 1, S(""), 0);
- test(S("abcdefghij"), 10, 1, S("abcde"), -5);
- test(S("abcdefghij"), 10, 1, S("abcdefghij"), -10);
- test(S("abcdefghij"), 10, 1, S("abcdefghijklmnopqrst"), -20);
- test(S("abcdefghij"), 11, 0, S(""), 0);
- test(S("abcdefghij"), 11, 0, S("abcde"), 0);
- test(S("abcdefghij"), 11, 0, S("abcdefghij"), 0);
- test(S("abcdefghij"), 11, 0, S("abcdefghijklmnopqrst"), 0);
+TEST_CONSTEXPR_CXX20 void test1() {
+ test(S("abcde"), 6, 0, S(""), 0);
+ test(S("abcde"), 6, 0, S("abcde"), 0);
+ test(S("abcde"), 6, 0, S("abcdefghij"), 0);
+ test(S("abcde"), 6, 0, S("abcdefghijklmnopqrst"), 0);
+ test(S("abcdefghij"), 0, 0, S(""), 0);
+ test(S("abcdefghij"), 0, 0, S("abcde"), -5);
+ test(S("abcdefghij"), 0, 0, S("abcdefghij"), -10);
+ test(S("abcdefghij"), 0, 0, S("abcdefghijklmnopqrst"), -20);
+ test(S("abcdefghij"), 0, 1, S(""), 1);
+ test(S("abcdefghij"), 0, 1, S("abcde"), -4);
+ test(S("abcdefghij"), 0, 1, S("abcdefghij"), -9);
+ test(S("abcdefghij"), 0, 1, S("abcdefghijklmnopqrst"), -19);
+ test(S("abcdefghij"), 0, 5, S(""), 5);
+ test(S("abcdefghij"), 0, 5, S("abcde"), 0);
+ test(S("abcdefghij"), 0, 5, S("abcdefghij"), -5);
+ test(S("abcdefghij"), 0, 5, S("abcdefghijklmnopqrst"), -15);
+ test(S("abcdefghij"), 0, 9, S(""), 9);
+ test(S("abcdefghij"), 0, 9, S("abcde"), 4);
+ test(S("abcdefghij"), 0, 9, S("abcdefghij"), -1);
+ test(S("abcdefghij"), 0, 9, S("abcdefghijklmnopqrst"), -11);
+ test(S("abcdefghij"), 0, 10, S(""), 10);
+ test(S("abcdefghij"), 0, 10, S("abcde"), 5);
+ test(S("abcdefghij"), 0, 10, S("abcdefghij"), 0);
+ test(S("abcdefghij"), 0, 10, S("abcdefghijklmnopqrst"), -10);
+ test(S("abcdefghij"), 0, 11, S(""), 10);
+ test(S("abcdefghij"), 0, 11, S("abcde"), 5);
+ test(S("abcdefghij"), 0, 11, S("abcdefghij"), 0);
+ test(S("abcdefghij"), 0, 11, S("abcdefghijklmnopqrst"), -10);
+ test(S("abcdefghij"), 1, 0, S(""), 0);
+ test(S("abcdefghij"), 1, 0, S("abcde"), -5);
+ test(S("abcdefghij"), 1, 0, S("abcdefghij"), -10);
+ test(S("abcdefghij"), 1, 0, S("abcdefghijklmnopqrst"), -20);
+ test(S("abcdefghij"), 1, 1, S(""), 1);
+ test(S("abcdefghij"), 1, 1, S("abcde"), 1);
+ test(S("abcdefghij"), 1, 1, S("abcdefghij"), 1);
+ test(S("abcdefghij"), 1, 1, S("abcdefghijklmnopqrst"), 1);
+ test(S("abcdefghij"), 1, 4, S(""), 4);
+ test(S("abcdefghij"), 1, 4, S("abcde"), 1);
+ test(S("abcdefghij"), 1, 4, S("abcdefghij"), 1);
+ test(S("abcdefghij"), 1, 4, S("abcdefghijklmnopqrst"), 1);
+ test(S("abcdefghij"), 1, 8, S(""), 8);
+ test(S("abcdefghij"), 1, 8, S("abcde"), 1);
+ test(S("abcdefghij"), 1, 8, S("abcdefghij"), 1);
+ test(S("abcdefghij"), 1, 8, S("abcdefghijklmnopqrst"), 1);
+ test(S("abcdefghij"), 1, 9, S(""), 9);
+ test(S("abcdefghij"), 1, 9, S("abcde"), 1);
+ test(S("abcdefghij"), 1, 9, S("abcdefghij"), 1);
+ test(S("abcdefghij"), 1, 9, S("abcdefghijklmnopqrst"), 1);
+ test(S("abcdefghij"), 1, 10, S(""), 9);
+ test(S("abcdefghij"), 1, 10, S("abcde"), 1);
+ test(S("abcdefghij"), 1, 10, S("abcdefghij"), 1);
+ test(S("abcdefghij"), 1, 10, S("abcdefghijklmnopqrst"), 1);
+ test(S("abcdefghij"), 5, 0, S(""), 0);
+ test(S("abcdefghij"), 5, 0, S("abcde"), -5);
+ test(S("abcdefghij"), 5, 0, S("abcdefghij"), -10);
+ test(S("abcdefghij"), 5, 0, S("abcdefghijklmnopqrst"), -20);
+ test(S("abcdefghij"), 5, 1, S(""), 1);
+ test(S("abcdefghij"), 5, 1, S("abcde"), 5);
+ test(S("abcdefghij"), 5, 1, S("abcdefghij"), 5);
+ test(S("abcdefghij"), 5, 1, S("abcdefghijklmnopqrst"), 5);
+ test(S("abcdefghij"), 5, 2, S(""), 2);
+ test(S("abcdefghij"), 5, 2, S("abcde"), 5);
+ test(S("abcdefghij"), 5, 2, S("abcdefghij"), 5);
+ test(S("abcdefghij"), 5, 2, S("abcdefghijklmnopqrst"), 5);
+ test(S("abcdefghij"), 5, 4, S(""), 4);
+ test(S("abcdefghij"), 5, 4, S("abcde"), 5);
+ test(S("abcdefghij"), 5, 4, S("abcdefghij"), 5);
+ test(S("abcdefghij"), 5, 4, S("abcdefghijklmnopqrst"), 5);
+ test(S("abcdefghij"), 5, 5, S(""), 5);
+ test(S("abcdefghij"), 5, 5, S("abcde"), 5);
+ test(S("abcdefghij"), 5, 5, S("abcdefghij"), 5);
+ test(S("abcdefghij"), 5, 5, S("abcdefghijklmnopqrst"), 5);
+ test(S("abcdefghij"), 5, 6, S(""), 5);
+ test(S("abcdefghij"), 5, 6, S("abcde"), 5);
+ test(S("abcdefghij"), 5, 6, S("abcdefghij"), 5);
+ test(S("abcdefghij"), 5, 6, S("abcdefghijklmnopqrst"), 5);
+ test(S("abcdefghij"), 9, 0, S(""), 0);
+ test(S("abcdefghij"), 9, 0, S("abcde"), -5);
+ test(S("abcdefghij"), 9, 0, S("abcdefghij"), -10);
+ test(S("abcdefghij"), 9, 0, S("abcdefghijklmnopqrst"), -20);
+ test(S("abcdefghij"), 9, 1, S(""), 1);
+ test(S("abcdefghij"), 9, 1, S("abcde"), 9);
+ test(S("abcdefghij"), 9, 1, S("abcdefghij"), 9);
+ test(S("abcdefghij"), 9, 1, S("abcdefghijklmnopqrst"), 9);
+ test(S("abcdefghij"), 9, 2, S(""), 1);
+ test(S("abcdefghij"), 9, 2, S("abcde"), 9);
+ test(S("abcdefghij"), 9, 2, S("abcdefghij"), 9);
+ test(S("abcdefghij"), 9, 2, S("abcdefghijklmnopqrst"), 9);
+ test(S("abcdefghij"), 10, 0, S(""), 0);
+ test(S("abcdefghij"), 10, 0, S("abcde"), -5);
+ test(S("abcdefghij"), 10, 0, S("abcdefghij"), -10);
+ test(S("abcdefghij"), 10, 0, S("abcdefghijklmnopqrst"), -20);
+ test(S("abcdefghij"), 10, 1, S(""), 0);
+ test(S("abcdefghij"), 10, 1, S("abcde"), -5);
+ test(S("abcdefghij"), 10, 1, S("abcdefghij"), -10);
+ test(S("abcdefghij"), 10, 1, S("abcdefghijklmnopqrst"), -20);
+ test(S("abcdefghij"), 11, 0, S(""), 0);
+ test(S("abcdefghij"), 11, 0, S("abcde"), 0);
+ test(S("abcdefghij"), 11, 0, S("abcdefghij"), 0);
+ test(S("abcdefghij"), 11, 0, S("abcdefghijklmnopqrst"), 0);
}
template <class S>
-TEST_CONSTEXPR_CXX20 void test2()
-{
- test(S("abcdefghijklmnopqrst"), 0, 0, S(""), 0);
- test(S("abcdefghijklmnopqrst"), 0, 0, S("abcde"), -5);
- test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghij"), -10);
- test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghijklmnopqrst"), -20);
- test(S("abcdefghijklmnopqrst"), 0, 1, S(""), 1);
- test(S("abcdefghijklmnopqrst"), 0, 1, S("abcde"), -4);
- test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghij"), -9);
- test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghijklmnopqrst"), -19);
- test(S("abcdefghijklmnopqrst"), 0, 10, S(""), 10);
- test(S("abcdefghijklmnopqrst"), 0, 10, S("abcde"), 5);
- test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghij"), 0);
- test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghijklmnopqrst"), -10);
- test(S("abcdefghijklmnopqrst"), 0, 19, S(""), 19);
- test(S("abcdefghijklmnopqrst"), 0, 19, S("abcde"), 14);
- test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghij"), 9);
- test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghijklmnopqrst"), -1);
- test(S("abcdefghijklmnopqrst"), 0, 20, S(""), 20);
- test(S("abcdefghijklmnopqrst"), 0, 20, S("abcde"), 15);
- test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghij"), 10);
- test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghijklmnopqrst"), 0);
- test(S("abcdefghijklmnopqrst"), 0, 21, S(""), 20);
- test(S("abcdefghijklmnopqrst"), 0, 21, S("abcde"), 15);
- test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghij"), 10);
- test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghijklmnopqrst"), 0);
- test(S("abcdefghijklmnopqrst"), 1, 0, S(""), 0);
- test(S("abcdefghijklmnopqrst"), 1, 0, S("abcde"), -5);
- test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghij"), -10);
- test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghijklmnopqrst"), -20);
- test(S("abcdefghijklmnopqrst"), 1, 1, S(""), 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, S("abcde"), 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghij"), 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghijklmnopqrst"), 1);
- test(S("abcdefghijklmnopqrst"), 1, 9, S(""), 9);
- test(S("abcdefghijklmnopqrst"), 1, 9, S("abcde"), 1);
- test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghij"), 1);
- test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghijklmnopqrst"), 1);
- test(S("abcdefghijklmnopqrst"), 1, 18, S(""), 18);
- test(S("abcdefghijklmnopqrst"), 1, 18, S("abcde"), 1);
- test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghij"), 1);
- test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghijklmnopqrst"), 1);
- test(S("abcdefghijklmnopqrst"), 1, 19, S(""), 19);
- test(S("abcdefghijklmnopqrst"), 1, 19, S("abcde"), 1);
- test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghij"), 1);
- test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghijklmnopqrst"), 1);
- test(S("abcdefghijklmnopqrst"), 1, 20, S(""), 19);
- test(S("abcdefghijklmnopqrst"), 1, 20, S("abcde"), 1);
- test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghij"), 1);
- test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghijklmnopqrst"), 1);
- test(S("abcdefghijklmnopqrst"), 10, 0, S(""), 0);
- test(S("abcdefghijklmnopqrst"), 10, 0, S("abcde"), -5);
- test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghij"), -10);
- test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghijklmnopqrst"), -20);
- test(S("abcdefghijklmnopqrst"), 10, 1, S(""), 1);
- test(S("abcdefghijklmnopqrst"), 10, 1, S("abcde"), 10);
- test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghij"), 10);
- test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghijklmnopqrst"), 10);
- test(S("abcdefghijklmnopqrst"), 10, 5, S(""), 5);
- test(S("abcdefghijklmnopqrst"), 10, 5, S("abcde"), 10);
- test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghij"), 10);
- test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghijklmnopqrst"), 10);
- test(S("abcdefghijklmnopqrst"), 10, 9, S(""), 9);
- test(S("abcdefghijklmnopqrst"), 10, 9, S("abcde"), 10);
- test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghij"), 10);
- test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghijklmnopqrst"), 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, S(""), 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, S("abcde"), 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghij"), 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghijklmnopqrst"), 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, S(""), 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, S("abcde"), 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghij"), 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghijklmnopqrst"), 10);
- test(S("abcdefghijklmnopqrst"), 19, 0, S(""), 0);
- test(S("abcdefghijklmnopqrst"), 19, 0, S("abcde"), -5);
- test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghij"), -10);
- test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghijklmnopqrst"), -20);
- test(S("abcdefghijklmnopqrst"), 19, 1, S(""), 1);
- test(S("abcdefghijklmnopqrst"), 19, 1, S("abcde"), 19);
- test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghij"), 19);
- test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghijklmnopqrst"), 19);
- test(S("abcdefghijklmnopqrst"), 19, 2, S(""), 1);
- test(S("abcdefghijklmnopqrst"), 19, 2, S("abcde"), 19);
- test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghij"), 19);
- test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghijklmnopqrst"), 19);
- test(S("abcdefghijklmnopqrst"), 20, 0, S(""), 0);
- test(S("abcdefghijklmnopqrst"), 20, 0, S("abcde"), -5);
- test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghij"), -10);
- test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghijklmnopqrst"), -20);
- test(S("abcdefghijklmnopqrst"), 20, 1, S(""), 0);
- test(S("abcdefghijklmnopqrst"), 20, 1, S("abcde"), -5);
- test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghij"), -10);
- test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghijklmnopqrst"), -20);
- test(S("abcdefghijklmnopqrst"), 21, 0, S(""), 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, S("abcde"), 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghij"), 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghijklmnopqrst"), 0);
+TEST_CONSTEXPR_CXX20 void test2() {
+ test(S("abcdefghijklmnopqrst"), 0, 0, S(""), 0);
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("abcde"), -5);
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghij"), -10);
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghijklmnopqrst"), -20);
+ test(S("abcdefghijklmnopqrst"), 0, 1, S(""), 1);
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("abcde"), -4);
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghij"), -9);
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghijklmnopqrst"), -19);
+ test(S("abcdefghijklmnopqrst"), 0, 10, S(""), 10);
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("abcde"), 5);
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghij"), 0);
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghijklmnopqrst"), -10);
+ test(S("abcdefghijklmnopqrst"), 0, 19, S(""), 19);
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("abcde"), 14);
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghij"), 9);
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghijklmnopqrst"), -1);
+ test(S("abcdefghijklmnopqrst"), 0, 20, S(""), 20);
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("abcde"), 15);
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghij"), 10);
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghijklmnopqrst"), 0);
+ test(S("abcdefghijklmnopqrst"), 0, 21, S(""), 20);
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("abcde"), 15);
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghij"), 10);
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghijklmnopqrst"), 0);
+ test(S("abcdefghijklmnopqrst"), 1, 0, S(""), 0);
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("abcde"), -5);
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghij"), -10);
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghijklmnopqrst"), -20);
+ test(S("abcdefghijklmnopqrst"), 1, 1, S(""), 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("abcde"), 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghij"), 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghijklmnopqrst"), 1);
+ test(S("abcdefghijklmnopqrst"), 1, 9, S(""), 9);
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("abcde"), 1);
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghij"), 1);
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghijklmnopqrst"), 1);
+ test(S("abcdefghijklmnopqrst"), 1, 18, S(""), 18);
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("abcde"), 1);
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghij"), 1);
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghijklmnopqrst"), 1);
+ test(S("abcdefghijklmnopqrst"), 1, 19, S(""), 19);
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("abcde"), 1);
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghij"), 1);
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghijklmnopqrst"), 1);
+ test(S("abcdefghijklmnopqrst"), 1, 20, S(""), 19);
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("abcde"), 1);
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghij"), 1);
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghijklmnopqrst"), 1);
+ test(S("abcdefghijklmnopqrst"), 10, 0, S(""), 0);
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("abcde"), -5);
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghij"), -10);
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghijklmnopqrst"), -20);
+ test(S("abcdefghijklmnopqrst"), 10, 1, S(""), 1);
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("abcde"), 10);
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghij"), 10);
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghijklmnopqrst"), 10);
+ test(S("abcdefghijklmnopqrst"), 10, 5, S(""), 5);
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("abcde"), 10);
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghij"), 10);
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghijklmnopqrst"), 10);
+ test(S("abcdefghijklmnopqrst"), 10, 9, S(""), 9);
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("abcde"), 10);
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghij"), 10);
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghijklmnopqrst"), 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, S(""), 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("abcde"), 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghij"), 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghijklmnopqrst"), 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, S(""), 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("abcde"), 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghij"), 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghijklmnopqrst"), 10);
+ test(S("abcdefghijklmnopqrst"), 19, 0, S(""), 0);
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("abcde"), -5);
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghij"), -10);
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghijklmnopqrst"), -20);
+ test(S("abcdefghijklmnopqrst"), 19, 1, S(""), 1);
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("abcde"), 19);
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghij"), 19);
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghijklmnopqrst"), 19);
+ test(S("abcdefghijklmnopqrst"), 19, 2, S(""), 1);
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("abcde"), 19);
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghij"), 19);
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghijklmnopqrst"), 19);
+ test(S("abcdefghijklmnopqrst"), 20, 0, S(""), 0);
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("abcde"), -5);
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghij"), -10);
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghijklmnopqrst"), -20);
+ test(S("abcdefghijklmnopqrst"), 20, 1, S(""), 0);
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("abcde"), -5);
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghij"), -10);
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghijklmnopqrst"), -20);
+ test(S("abcdefghijklmnopqrst"), 21, 0, S(""), 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("abcde"), 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghij"), 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghijklmnopqrst"), 0);
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -386,8 +375,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.ops/string_compare/size_size_string_size_size.pass.cpp b/libcxx/test/std/strings/basic.string/string.ops/string_compare/size_size_string_size_size.pass.cpp
index 33d780e695a577c..f5d70b93c979f94 100644
--- a/libcxx/test/std/strings/basic.string/string.ops/string_compare/size_size_string_size_size.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.ops/string_compare/size_size_string_size_size.pass.cpp
@@ -22,5932 +22,5869 @@
#include "test_macros.h"
-TEST_CONSTEXPR_CXX20 int sign(int x)
-{
- if (x == 0)
- return 0;
- if (x < 0)
- return -1;
- return 1;
+TEST_CONSTEXPR_CXX20 int sign(int x) {
+ if (x == 0)
+ return 0;
+ if (x < 0)
+ return -1;
+ return 1;
}
template <class S>
TEST_CONSTEXPR_CXX20 void
-test(const S& s, typename S::size_type pos1, typename S::size_type n1,
- const S& str, typename S::size_type pos2, typename S::size_type n2, int x)
-{
- if (pos1 <= s.size() && pos2 <= str.size())
- assert(sign(s.compare(pos1, n1, str, pos2, n2)) == sign(x));
+test(const S& s,
+ typename S::size_type pos1,
+ typename S::size_type n1,
+ const S& str,
+ typename S::size_type pos2,
+ typename S::size_type n2,
+ int x) {
+ if (pos1 <= s.size() && pos2 <= str.size())
+ assert(sign(s.compare(pos1, n1, str, pos2, n2)) == sign(x));
#ifndef TEST_HAS_NO_EXCEPTIONS
- else if (!TEST_IS_CONSTANT_EVALUATED)
- {
- try
- {
- TEST_IGNORE_NODISCARD s.compare(pos1, n1, str, pos2, n2);
- assert(false);
- }
- catch (const std::out_of_range&)
- {
- assert(pos1 > s.size() || pos2 > str.size());
- }
+ else if (!TEST_IS_CONSTANT_EVALUATED) {
+ try {
+ TEST_IGNORE_NODISCARD s.compare(pos1, n1, str, pos2, n2);
+ assert(false);
+ } catch (const std::out_of_range&) {
+ assert(pos1 > s.size() || pos2 > str.size());
}
+ }
#endif
}
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test_npos(const S& s, typename S::size_type pos1, typename S::size_type n1,
- const S& str, typename S::size_type pos2, int x)
-{
- if (pos1 <= s.size() && pos2 <= str.size())
- assert(sign(s.compare(pos1, n1, str, pos2)) == sign(x));
+TEST_CONSTEXPR_CXX20 void test_npos(
+ const S& s, typename S::size_type pos1, typename S::size_type n1, const S& str, typename S::size_type pos2, int x) {
+ if (pos1 <= s.size() && pos2 <= str.size())
+ assert(sign(s.compare(pos1, n1, str, pos2)) == sign(x));
#ifndef TEST_HAS_NO_EXCEPTIONS
- else if (!TEST_IS_CONSTANT_EVALUATED)
- {
- try
- {
- TEST_IGNORE_NODISCARD s.compare(pos1, n1, str, pos2);
- assert(false);
- }
- catch (const std::out_of_range&)
- {
- assert(pos1 > s.size() || pos2 > str.size());
- }
+ else if (!TEST_IS_CONSTANT_EVALUATED) {
+ try {
+ TEST_IGNORE_NODISCARD s.compare(pos1, n1, str, pos2);
+ assert(false);
+ } catch (const std::out_of_range&) {
+ assert(pos1 > s.size() || pos2 > str.size());
}
+ }
#endif
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test0()
-{
- test(S(""), 0, 0, S(""), 0, 0, 0);
- test(S(""), 0, 0, S(""), 0, 1, 0);
- test(S(""), 0, 0, S(""), 1, 0, 0);
- test(S(""), 0, 0, S("abcde"), 0, 0, 0);
- test(S(""), 0, 0, S("abcde"), 0, 1, -1);
- test(S(""), 0, 0, S("abcde"), 0, 2, -2);
- test(S(""), 0, 0, S("abcde"), 0, 4, -4);
- test(S(""), 0, 0, S("abcde"), 0, 5, -5);
- test(S(""), 0, 0, S("abcde"), 0, 6, -5);
- test(S(""), 0, 0, S("abcde"), 1, 0, 0);
- test(S(""), 0, 0, S("abcde"), 1, 1, -1);
- test(S(""), 0, 0, S("abcde"), 1, 2, -2);
- test(S(""), 0, 0, S("abcde"), 1, 3, -3);
- test(S(""), 0, 0, S("abcde"), 1, 4, -4);
- test(S(""), 0, 0, S("abcde"), 1, 5, -4);
- test(S(""), 0, 0, S("abcde"), 2, 0, 0);
- test(S(""), 0, 0, S("abcde"), 2, 1, -1);
- test(S(""), 0, 0, S("abcde"), 2, 2, -2);
- test(S(""), 0, 0, S("abcde"), 2, 3, -3);
- test(S(""), 0, 0, S("abcde"), 2, 4, -3);
- test(S(""), 0, 0, S("abcde"), 4, 0, 0);
- test(S(""), 0, 0, S("abcde"), 4, 1, -1);
- test(S(""), 0, 0, S("abcde"), 4, 2, -1);
- test(S(""), 0, 0, S("abcde"), 5, 0, 0);
- test(S(""), 0, 0, S("abcde"), 5, 1, 0);
- test(S(""), 0, 0, S("abcde"), 6, 0, 0);
- test(S(""), 0, 0, S("abcdefghij"), 0, 0, 0);
- test(S(""), 0, 0, S("abcdefghij"), 0, 1, -1);
- test(S(""), 0, 0, S("abcdefghij"), 0, 5, -5);
- test(S(""), 0, 0, S("abcdefghij"), 0, 9, -9);
- test(S(""), 0, 0, S("abcdefghij"), 0, 10, -10);
- test(S(""), 0, 0, S("abcdefghij"), 0, 11, -10);
- test(S(""), 0, 0, S("abcdefghij"), 1, 0, 0);
- test(S(""), 0, 0, S("abcdefghij"), 1, 1, -1);
- test(S(""), 0, 0, S("abcdefghij"), 1, 4, -4);
- test(S(""), 0, 0, S("abcdefghij"), 1, 8, -8);
- test(S(""), 0, 0, S("abcdefghij"), 1, 9, -9);
- test(S(""), 0, 0, S("abcdefghij"), 1, 10, -9);
- test(S(""), 0, 0, S("abcdefghij"), 5, 0, 0);
- test(S(""), 0, 0, S("abcdefghij"), 5, 1, -1);
- test(S(""), 0, 0, S("abcdefghij"), 5, 2, -2);
- test(S(""), 0, 0, S("abcdefghij"), 5, 4, -4);
- test(S(""), 0, 0, S("abcdefghij"), 5, 5, -5);
- test(S(""), 0, 0, S("abcdefghij"), 5, 6, -5);
- test(S(""), 0, 0, S("abcdefghij"), 9, 0, 0);
- test(S(""), 0, 0, S("abcdefghij"), 9, 1, -1);
- test(S(""), 0, 0, S("abcdefghij"), 9, 2, -1);
- test(S(""), 0, 0, S("abcdefghij"), 10, 0, 0);
- test(S(""), 0, 0, S("abcdefghij"), 10, 1, 0);
- test(S(""), 0, 0, S("abcdefghij"), 11, 0, 0);
- test(S(""), 0, 0, S("abcdefghijklmnopqrst"), 0, 0, 0);
- test(S(""), 0, 0, S("abcdefghijklmnopqrst"), 0, 1, -1);
- test(S(""), 0, 0, S("abcdefghijklmnopqrst"), 0, 10, -10);
- test(S(""), 0, 0, S("abcdefghijklmnopqrst"), 0, 19, -19);
- test(S(""), 0, 0, S("abcdefghijklmnopqrst"), 0, 20, -20);
- test(S(""), 0, 0, S("abcdefghijklmnopqrst"), 0, 21, -20);
- test(S(""), 0, 0, S("abcdefghijklmnopqrst"), 1, 0, 0);
- test(S(""), 0, 0, S("abcdefghijklmnopqrst"), 1, 1, -1);
- test(S(""), 0, 0, S("abcdefghijklmnopqrst"), 1, 9, -9);
- test(S(""), 0, 0, S("abcdefghijklmnopqrst"), 1, 18, -18);
- test(S(""), 0, 0, S("abcdefghijklmnopqrst"), 1, 19, -19);
- test(S(""), 0, 0, S("abcdefghijklmnopqrst"), 1, 20, -19);
- test(S(""), 0, 0, S("abcdefghijklmnopqrst"), 10, 0, 0);
- test(S(""), 0, 0, S("abcdefghijklmnopqrst"), 10, 1, -1);
- test(S(""), 0, 0, S("abcdefghijklmnopqrst"), 10, 5, -5);
- test(S(""), 0, 0, S("abcdefghijklmnopqrst"), 10, 9, -9);
- test(S(""), 0, 0, S("abcdefghijklmnopqrst"), 10, 10, -10);
- test(S(""), 0, 0, S("abcdefghijklmnopqrst"), 10, 11, -10);
- test(S(""), 0, 0, S("abcdefghijklmnopqrst"), 19, 0, 0);
- test(S(""), 0, 0, S("abcdefghijklmnopqrst"), 19, 1, -1);
- test(S(""), 0, 0, S("abcdefghijklmnopqrst"), 19, 2, -1);
- test(S(""), 0, 0, S("abcdefghijklmnopqrst"), 20, 0, 0);
- test(S(""), 0, 0, S("abcdefghijklmnopqrst"), 20, 1, 0);
- test(S(""), 0, 0, S("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S(""), 0, 1, S(""), 0, 0, 0);
- test(S(""), 0, 1, S(""), 0, 1, 0);
- test(S(""), 0, 1, S(""), 1, 0, 0);
- test(S(""), 0, 1, S("abcde"), 0, 0, 0);
- test(S(""), 0, 1, S("abcde"), 0, 1, -1);
- test(S(""), 0, 1, S("abcde"), 0, 2, -2);
- test(S(""), 0, 1, S("abcde"), 0, 4, -4);
- test(S(""), 0, 1, S("abcde"), 0, 5, -5);
- test(S(""), 0, 1, S("abcde"), 0, 6, -5);
- test(S(""), 0, 1, S("abcde"), 1, 0, 0);
- test(S(""), 0, 1, S("abcde"), 1, 1, -1);
- test(S(""), 0, 1, S("abcde"), 1, 2, -2);
- test(S(""), 0, 1, S("abcde"), 1, 3, -3);
- test(S(""), 0, 1, S("abcde"), 1, 4, -4);
- test(S(""), 0, 1, S("abcde"), 1, 5, -4);
- test(S(""), 0, 1, S("abcde"), 2, 0, 0);
- test(S(""), 0, 1, S("abcde"), 2, 1, -1);
- test(S(""), 0, 1, S("abcde"), 2, 2, -2);
- test(S(""), 0, 1, S("abcde"), 2, 3, -3);
- test(S(""), 0, 1, S("abcde"), 2, 4, -3);
- test(S(""), 0, 1, S("abcde"), 4, 0, 0);
- test(S(""), 0, 1, S("abcde"), 4, 1, -1);
- test(S(""), 0, 1, S("abcde"), 4, 2, -1);
- test(S(""), 0, 1, S("abcde"), 5, 0, 0);
- test(S(""), 0, 1, S("abcde"), 5, 1, 0);
- test(S(""), 0, 1, S("abcde"), 6, 0, 0);
+TEST_CONSTEXPR_CXX20 bool test0() {
+ test(S(""), 0, 0, S(""), 0, 0, 0);
+ test(S(""), 0, 0, S(""), 0, 1, 0);
+ test(S(""), 0, 0, S(""), 1, 0, 0);
+ test(S(""), 0, 0, S("abcde"), 0, 0, 0);
+ test(S(""), 0, 0, S("abcde"), 0, 1, -1);
+ test(S(""), 0, 0, S("abcde"), 0, 2, -2);
+ test(S(""), 0, 0, S("abcde"), 0, 4, -4);
+ test(S(""), 0, 0, S("abcde"), 0, 5, -5);
+ test(S(""), 0, 0, S("abcde"), 0, 6, -5);
+ test(S(""), 0, 0, S("abcde"), 1, 0, 0);
+ test(S(""), 0, 0, S("abcde"), 1, 1, -1);
+ test(S(""), 0, 0, S("abcde"), 1, 2, -2);
+ test(S(""), 0, 0, S("abcde"), 1, 3, -3);
+ test(S(""), 0, 0, S("abcde"), 1, 4, -4);
+ test(S(""), 0, 0, S("abcde"), 1, 5, -4);
+ test(S(""), 0, 0, S("abcde"), 2, 0, 0);
+ test(S(""), 0, 0, S("abcde"), 2, 1, -1);
+ test(S(""), 0, 0, S("abcde"), 2, 2, -2);
+ test(S(""), 0, 0, S("abcde"), 2, 3, -3);
+ test(S(""), 0, 0, S("abcde"), 2, 4, -3);
+ test(S(""), 0, 0, S("abcde"), 4, 0, 0);
+ test(S(""), 0, 0, S("abcde"), 4, 1, -1);
+ test(S(""), 0, 0, S("abcde"), 4, 2, -1);
+ test(S(""), 0, 0, S("abcde"), 5, 0, 0);
+ test(S(""), 0, 0, S("abcde"), 5, 1, 0);
+ test(S(""), 0, 0, S("abcde"), 6, 0, 0);
+ test(S(""), 0, 0, S("abcdefghij"), 0, 0, 0);
+ test(S(""), 0, 0, S("abcdefghij"), 0, 1, -1);
+ test(S(""), 0, 0, S("abcdefghij"), 0, 5, -5);
+ test(S(""), 0, 0, S("abcdefghij"), 0, 9, -9);
+ test(S(""), 0, 0, S("abcdefghij"), 0, 10, -10);
+ test(S(""), 0, 0, S("abcdefghij"), 0, 11, -10);
+ test(S(""), 0, 0, S("abcdefghij"), 1, 0, 0);
+ test(S(""), 0, 0, S("abcdefghij"), 1, 1, -1);
+ test(S(""), 0, 0, S("abcdefghij"), 1, 4, -4);
+ test(S(""), 0, 0, S("abcdefghij"), 1, 8, -8);
+ test(S(""), 0, 0, S("abcdefghij"), 1, 9, -9);
+ test(S(""), 0, 0, S("abcdefghij"), 1, 10, -9);
+ test(S(""), 0, 0, S("abcdefghij"), 5, 0, 0);
+ test(S(""), 0, 0, S("abcdefghij"), 5, 1, -1);
+ test(S(""), 0, 0, S("abcdefghij"), 5, 2, -2);
+ test(S(""), 0, 0, S("abcdefghij"), 5, 4, -4);
+ test(S(""), 0, 0, S("abcdefghij"), 5, 5, -5);
+ test(S(""), 0, 0, S("abcdefghij"), 5, 6, -5);
+ test(S(""), 0, 0, S("abcdefghij"), 9, 0, 0);
+ test(S(""), 0, 0, S("abcdefghij"), 9, 1, -1);
+ test(S(""), 0, 0, S("abcdefghij"), 9, 2, -1);
+ test(S(""), 0, 0, S("abcdefghij"), 10, 0, 0);
+ test(S(""), 0, 0, S("abcdefghij"), 10, 1, 0);
+ test(S(""), 0, 0, S("abcdefghij"), 11, 0, 0);
+ test(S(""), 0, 0, S("abcdefghijklmnopqrst"), 0, 0, 0);
+ test(S(""), 0, 0, S("abcdefghijklmnopqrst"), 0, 1, -1);
+ test(S(""), 0, 0, S("abcdefghijklmnopqrst"), 0, 10, -10);
+ test(S(""), 0, 0, S("abcdefghijklmnopqrst"), 0, 19, -19);
+ test(S(""), 0, 0, S("abcdefghijklmnopqrst"), 0, 20, -20);
+ test(S(""), 0, 0, S("abcdefghijklmnopqrst"), 0, 21, -20);
+ test(S(""), 0, 0, S("abcdefghijklmnopqrst"), 1, 0, 0);
+ test(S(""), 0, 0, S("abcdefghijklmnopqrst"), 1, 1, -1);
+ test(S(""), 0, 0, S("abcdefghijklmnopqrst"), 1, 9, -9);
+ test(S(""), 0, 0, S("abcdefghijklmnopqrst"), 1, 18, -18);
+ test(S(""), 0, 0, S("abcdefghijklmnopqrst"), 1, 19, -19);
+ test(S(""), 0, 0, S("abcdefghijklmnopqrst"), 1, 20, -19);
+ test(S(""), 0, 0, S("abcdefghijklmnopqrst"), 10, 0, 0);
+ test(S(""), 0, 0, S("abcdefghijklmnopqrst"), 10, 1, -1);
+ test(S(""), 0, 0, S("abcdefghijklmnopqrst"), 10, 5, -5);
+ test(S(""), 0, 0, S("abcdefghijklmnopqrst"), 10, 9, -9);
+ test(S(""), 0, 0, S("abcdefghijklmnopqrst"), 10, 10, -10);
+ test(S(""), 0, 0, S("abcdefghijklmnopqrst"), 10, 11, -10);
+ test(S(""), 0, 0, S("abcdefghijklmnopqrst"), 19, 0, 0);
+ test(S(""), 0, 0, S("abcdefghijklmnopqrst"), 19, 1, -1);
+ test(S(""), 0, 0, S("abcdefghijklmnopqrst"), 19, 2, -1);
+ test(S(""), 0, 0, S("abcdefghijklmnopqrst"), 20, 0, 0);
+ test(S(""), 0, 0, S("abcdefghijklmnopqrst"), 20, 1, 0);
+ test(S(""), 0, 0, S("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S(""), 0, 1, S(""), 0, 0, 0);
+ test(S(""), 0, 1, S(""), 0, 1, 0);
+ test(S(""), 0, 1, S(""), 1, 0, 0);
+ test(S(""), 0, 1, S("abcde"), 0, 0, 0);
+ test(S(""), 0, 1, S("abcde"), 0, 1, -1);
+ test(S(""), 0, 1, S("abcde"), 0, 2, -2);
+ test(S(""), 0, 1, S("abcde"), 0, 4, -4);
+ test(S(""), 0, 1, S("abcde"), 0, 5, -5);
+ test(S(""), 0, 1, S("abcde"), 0, 6, -5);
+ test(S(""), 0, 1, S("abcde"), 1, 0, 0);
+ test(S(""), 0, 1, S("abcde"), 1, 1, -1);
+ test(S(""), 0, 1, S("abcde"), 1, 2, -2);
+ test(S(""), 0, 1, S("abcde"), 1, 3, -3);
+ test(S(""), 0, 1, S("abcde"), 1, 4, -4);
+ test(S(""), 0, 1, S("abcde"), 1, 5, -4);
+ test(S(""), 0, 1, S("abcde"), 2, 0, 0);
+ test(S(""), 0, 1, S("abcde"), 2, 1, -1);
+ test(S(""), 0, 1, S("abcde"), 2, 2, -2);
+ test(S(""), 0, 1, S("abcde"), 2, 3, -3);
+ test(S(""), 0, 1, S("abcde"), 2, 4, -3);
+ test(S(""), 0, 1, S("abcde"), 4, 0, 0);
+ test(S(""), 0, 1, S("abcde"), 4, 1, -1);
+ test(S(""), 0, 1, S("abcde"), 4, 2, -1);
+ test(S(""), 0, 1, S("abcde"), 5, 0, 0);
+ test(S(""), 0, 1, S("abcde"), 5, 1, 0);
+ test(S(""), 0, 1, S("abcde"), 6, 0, 0);
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test1()
-{
- test(S(""), 0, 1, S("abcdefghij"), 0, 0, 0);
- test(S(""), 0, 1, S("abcdefghij"), 0, 1, -1);
- test(S(""), 0, 1, S("abcdefghij"), 0, 5, -5);
- test(S(""), 0, 1, S("abcdefghij"), 0, 9, -9);
- test(S(""), 0, 1, S("abcdefghij"), 0, 10, -10);
- test(S(""), 0, 1, S("abcdefghij"), 0, 11, -10);
- test(S(""), 0, 1, S("abcdefghij"), 1, 0, 0);
- test(S(""), 0, 1, S("abcdefghij"), 1, 1, -1);
- test(S(""), 0, 1, S("abcdefghij"), 1, 4, -4);
- test(S(""), 0, 1, S("abcdefghij"), 1, 8, -8);
- test(S(""), 0, 1, S("abcdefghij"), 1, 9, -9);
- test(S(""), 0, 1, S("abcdefghij"), 1, 10, -9);
- test(S(""), 0, 1, S("abcdefghij"), 5, 0, 0);
- test(S(""), 0, 1, S("abcdefghij"), 5, 1, -1);
- test(S(""), 0, 1, S("abcdefghij"), 5, 2, -2);
- test(S(""), 0, 1, S("abcdefghij"), 5, 4, -4);
- test(S(""), 0, 1, S("abcdefghij"), 5, 5, -5);
- test(S(""), 0, 1, S("abcdefghij"), 5, 6, -5);
- test(S(""), 0, 1, S("abcdefghij"), 9, 0, 0);
- test(S(""), 0, 1, S("abcdefghij"), 9, 1, -1);
- test(S(""), 0, 1, S("abcdefghij"), 9, 2, -1);
- test(S(""), 0, 1, S("abcdefghij"), 10, 0, 0);
- test(S(""), 0, 1, S("abcdefghij"), 10, 1, 0);
- test(S(""), 0, 1, S("abcdefghij"), 11, 0, 0);
- test(S(""), 0, 1, S("abcdefghijklmnopqrst"), 0, 0, 0);
- test(S(""), 0, 1, S("abcdefghijklmnopqrst"), 0, 1, -1);
- test(S(""), 0, 1, S("abcdefghijklmnopqrst"), 0, 10, -10);
- test(S(""), 0, 1, S("abcdefghijklmnopqrst"), 0, 19, -19);
- test(S(""), 0, 1, S("abcdefghijklmnopqrst"), 0, 20, -20);
- test(S(""), 0, 1, S("abcdefghijklmnopqrst"), 0, 21, -20);
- test(S(""), 0, 1, S("abcdefghijklmnopqrst"), 1, 0, 0);
- test(S(""), 0, 1, S("abcdefghijklmnopqrst"), 1, 1, -1);
- test(S(""), 0, 1, S("abcdefghijklmnopqrst"), 1, 9, -9);
- test(S(""), 0, 1, S("abcdefghijklmnopqrst"), 1, 18, -18);
- test(S(""), 0, 1, S("abcdefghijklmnopqrst"), 1, 19, -19);
- test(S(""), 0, 1, S("abcdefghijklmnopqrst"), 1, 20, -19);
- test(S(""), 0, 1, S("abcdefghijklmnopqrst"), 10, 0, 0);
- test(S(""), 0, 1, S("abcdefghijklmnopqrst"), 10, 1, -1);
- test(S(""), 0, 1, S("abcdefghijklmnopqrst"), 10, 5, -5);
- test(S(""), 0, 1, S("abcdefghijklmnopqrst"), 10, 9, -9);
- test(S(""), 0, 1, S("abcdefghijklmnopqrst"), 10, 10, -10);
- test(S(""), 0, 1, S("abcdefghijklmnopqrst"), 10, 11, -10);
- test(S(""), 0, 1, S("abcdefghijklmnopqrst"), 19, 0, 0);
- test(S(""), 0, 1, S("abcdefghijklmnopqrst"), 19, 1, -1);
- test(S(""), 0, 1, S("abcdefghijklmnopqrst"), 19, 2, -1);
- test(S(""), 0, 1, S("abcdefghijklmnopqrst"), 20, 0, 0);
- test(S(""), 0, 1, S("abcdefghijklmnopqrst"), 20, 1, 0);
- test(S(""), 0, 1, S("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S(""), 1, 0, S(""), 0, 0, 0);
- test(S(""), 1, 0, S(""), 0, 1, 0);
- test(S(""), 1, 0, S(""), 1, 0, 0);
- test(S(""), 1, 0, S("abcde"), 0, 0, 0);
- test(S(""), 1, 0, S("abcde"), 0, 1, 0);
- test(S(""), 1, 0, S("abcde"), 0, 2, 0);
- test(S(""), 1, 0, S("abcde"), 0, 4, 0);
- test(S(""), 1, 0, S("abcde"), 0, 5, 0);
- test(S(""), 1, 0, S("abcde"), 0, 6, 0);
- test(S(""), 1, 0, S("abcde"), 1, 0, 0);
- test(S(""), 1, 0, S("abcde"), 1, 1, 0);
- test(S(""), 1, 0, S("abcde"), 1, 2, 0);
- test(S(""), 1, 0, S("abcde"), 1, 3, 0);
- test(S(""), 1, 0, S("abcde"), 1, 4, 0);
- test(S(""), 1, 0, S("abcde"), 1, 5, 0);
- test(S(""), 1, 0, S("abcde"), 2, 0, 0);
- test(S(""), 1, 0, S("abcde"), 2, 1, 0);
- test(S(""), 1, 0, S("abcde"), 2, 2, 0);
- test(S(""), 1, 0, S("abcde"), 2, 3, 0);
- test(S(""), 1, 0, S("abcde"), 2, 4, 0);
- test(S(""), 1, 0, S("abcde"), 4, 0, 0);
- test(S(""), 1, 0, S("abcde"), 4, 1, 0);
- test(S(""), 1, 0, S("abcde"), 4, 2, 0);
- test(S(""), 1, 0, S("abcde"), 5, 0, 0);
- test(S(""), 1, 0, S("abcde"), 5, 1, 0);
- test(S(""), 1, 0, S("abcde"), 6, 0, 0);
- test(S(""), 1, 0, S("abcdefghij"), 0, 0, 0);
- test(S(""), 1, 0, S("abcdefghij"), 0, 1, 0);
- test(S(""), 1, 0, S("abcdefghij"), 0, 5, 0);
- test(S(""), 1, 0, S("abcdefghij"), 0, 9, 0);
- test(S(""), 1, 0, S("abcdefghij"), 0, 10, 0);
- test(S(""), 1, 0, S("abcdefghij"), 0, 11, 0);
- test(S(""), 1, 0, S("abcdefghij"), 1, 0, 0);
- test(S(""), 1, 0, S("abcdefghij"), 1, 1, 0);
- test(S(""), 1, 0, S("abcdefghij"), 1, 4, 0);
- test(S(""), 1, 0, S("abcdefghij"), 1, 8, 0);
- test(S(""), 1, 0, S("abcdefghij"), 1, 9, 0);
- test(S(""), 1, 0, S("abcdefghij"), 1, 10, 0);
- test(S(""), 1, 0, S("abcdefghij"), 5, 0, 0);
- test(S(""), 1, 0, S("abcdefghij"), 5, 1, 0);
- test(S(""), 1, 0, S("abcdefghij"), 5, 2, 0);
- test(S(""), 1, 0, S("abcdefghij"), 5, 4, 0);
- test(S(""), 1, 0, S("abcdefghij"), 5, 5, 0);
- test(S(""), 1, 0, S("abcdefghij"), 5, 6, 0);
- test(S(""), 1, 0, S("abcdefghij"), 9, 0, 0);
- test(S(""), 1, 0, S("abcdefghij"), 9, 1, 0);
- test(S(""), 1, 0, S("abcdefghij"), 9, 2, 0);
- test(S(""), 1, 0, S("abcdefghij"), 10, 0, 0);
- test(S(""), 1, 0, S("abcdefghij"), 10, 1, 0);
- test(S(""), 1, 0, S("abcdefghij"), 11, 0, 0);
- test(S(""), 1, 0, S("abcdefghijklmnopqrst"), 0, 0, 0);
- test(S(""), 1, 0, S("abcdefghijklmnopqrst"), 0, 1, 0);
+TEST_CONSTEXPR_CXX20 bool test1() {
+ test(S(""), 0, 1, S("abcdefghij"), 0, 0, 0);
+ test(S(""), 0, 1, S("abcdefghij"), 0, 1, -1);
+ test(S(""), 0, 1, S("abcdefghij"), 0, 5, -5);
+ test(S(""), 0, 1, S("abcdefghij"), 0, 9, -9);
+ test(S(""), 0, 1, S("abcdefghij"), 0, 10, -10);
+ test(S(""), 0, 1, S("abcdefghij"), 0, 11, -10);
+ test(S(""), 0, 1, S("abcdefghij"), 1, 0, 0);
+ test(S(""), 0, 1, S("abcdefghij"), 1, 1, -1);
+ test(S(""), 0, 1, S("abcdefghij"), 1, 4, -4);
+ test(S(""), 0, 1, S("abcdefghij"), 1, 8, -8);
+ test(S(""), 0, 1, S("abcdefghij"), 1, 9, -9);
+ test(S(""), 0, 1, S("abcdefghij"), 1, 10, -9);
+ test(S(""), 0, 1, S("abcdefghij"), 5, 0, 0);
+ test(S(""), 0, 1, S("abcdefghij"), 5, 1, -1);
+ test(S(""), 0, 1, S("abcdefghij"), 5, 2, -2);
+ test(S(""), 0, 1, S("abcdefghij"), 5, 4, -4);
+ test(S(""), 0, 1, S("abcdefghij"), 5, 5, -5);
+ test(S(""), 0, 1, S("abcdefghij"), 5, 6, -5);
+ test(S(""), 0, 1, S("abcdefghij"), 9, 0, 0);
+ test(S(""), 0, 1, S("abcdefghij"), 9, 1, -1);
+ test(S(""), 0, 1, S("abcdefghij"), 9, 2, -1);
+ test(S(""), 0, 1, S("abcdefghij"), 10, 0, 0);
+ test(S(""), 0, 1, S("abcdefghij"), 10, 1, 0);
+ test(S(""), 0, 1, S("abcdefghij"), 11, 0, 0);
+ test(S(""), 0, 1, S("abcdefghijklmnopqrst"), 0, 0, 0);
+ test(S(""), 0, 1, S("abcdefghijklmnopqrst"), 0, 1, -1);
+ test(S(""), 0, 1, S("abcdefghijklmnopqrst"), 0, 10, -10);
+ test(S(""), 0, 1, S("abcdefghijklmnopqrst"), 0, 19, -19);
+ test(S(""), 0, 1, S("abcdefghijklmnopqrst"), 0, 20, -20);
+ test(S(""), 0, 1, S("abcdefghijklmnopqrst"), 0, 21, -20);
+ test(S(""), 0, 1, S("abcdefghijklmnopqrst"), 1, 0, 0);
+ test(S(""), 0, 1, S("abcdefghijklmnopqrst"), 1, 1, -1);
+ test(S(""), 0, 1, S("abcdefghijklmnopqrst"), 1, 9, -9);
+ test(S(""), 0, 1, S("abcdefghijklmnopqrst"), 1, 18, -18);
+ test(S(""), 0, 1, S("abcdefghijklmnopqrst"), 1, 19, -19);
+ test(S(""), 0, 1, S("abcdefghijklmnopqrst"), 1, 20, -19);
+ test(S(""), 0, 1, S("abcdefghijklmnopqrst"), 10, 0, 0);
+ test(S(""), 0, 1, S("abcdefghijklmnopqrst"), 10, 1, -1);
+ test(S(""), 0, 1, S("abcdefghijklmnopqrst"), 10, 5, -5);
+ test(S(""), 0, 1, S("abcdefghijklmnopqrst"), 10, 9, -9);
+ test(S(""), 0, 1, S("abcdefghijklmnopqrst"), 10, 10, -10);
+ test(S(""), 0, 1, S("abcdefghijklmnopqrst"), 10, 11, -10);
+ test(S(""), 0, 1, S("abcdefghijklmnopqrst"), 19, 0, 0);
+ test(S(""), 0, 1, S("abcdefghijklmnopqrst"), 19, 1, -1);
+ test(S(""), 0, 1, S("abcdefghijklmnopqrst"), 19, 2, -1);
+ test(S(""), 0, 1, S("abcdefghijklmnopqrst"), 20, 0, 0);
+ test(S(""), 0, 1, S("abcdefghijklmnopqrst"), 20, 1, 0);
+ test(S(""), 0, 1, S("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S(""), 1, 0, S(""), 0, 0, 0);
+ test(S(""), 1, 0, S(""), 0, 1, 0);
+ test(S(""), 1, 0, S(""), 1, 0, 0);
+ test(S(""), 1, 0, S("abcde"), 0, 0, 0);
+ test(S(""), 1, 0, S("abcde"), 0, 1, 0);
+ test(S(""), 1, 0, S("abcde"), 0, 2, 0);
+ test(S(""), 1, 0, S("abcde"), 0, 4, 0);
+ test(S(""), 1, 0, S("abcde"), 0, 5, 0);
+ test(S(""), 1, 0, S("abcde"), 0, 6, 0);
+ test(S(""), 1, 0, S("abcde"), 1, 0, 0);
+ test(S(""), 1, 0, S("abcde"), 1, 1, 0);
+ test(S(""), 1, 0, S("abcde"), 1, 2, 0);
+ test(S(""), 1, 0, S("abcde"), 1, 3, 0);
+ test(S(""), 1, 0, S("abcde"), 1, 4, 0);
+ test(S(""), 1, 0, S("abcde"), 1, 5, 0);
+ test(S(""), 1, 0, S("abcde"), 2, 0, 0);
+ test(S(""), 1, 0, S("abcde"), 2, 1, 0);
+ test(S(""), 1, 0, S("abcde"), 2, 2, 0);
+ test(S(""), 1, 0, S("abcde"), 2, 3, 0);
+ test(S(""), 1, 0, S("abcde"), 2, 4, 0);
+ test(S(""), 1, 0, S("abcde"), 4, 0, 0);
+ test(S(""), 1, 0, S("abcde"), 4, 1, 0);
+ test(S(""), 1, 0, S("abcde"), 4, 2, 0);
+ test(S(""), 1, 0, S("abcde"), 5, 0, 0);
+ test(S(""), 1, 0, S("abcde"), 5, 1, 0);
+ test(S(""), 1, 0, S("abcde"), 6, 0, 0);
+ test(S(""), 1, 0, S("abcdefghij"), 0, 0, 0);
+ test(S(""), 1, 0, S("abcdefghij"), 0, 1, 0);
+ test(S(""), 1, 0, S("abcdefghij"), 0, 5, 0);
+ test(S(""), 1, 0, S("abcdefghij"), 0, 9, 0);
+ test(S(""), 1, 0, S("abcdefghij"), 0, 10, 0);
+ test(S(""), 1, 0, S("abcdefghij"), 0, 11, 0);
+ test(S(""), 1, 0, S("abcdefghij"), 1, 0, 0);
+ test(S(""), 1, 0, S("abcdefghij"), 1, 1, 0);
+ test(S(""), 1, 0, S("abcdefghij"), 1, 4, 0);
+ test(S(""), 1, 0, S("abcdefghij"), 1, 8, 0);
+ test(S(""), 1, 0, S("abcdefghij"), 1, 9, 0);
+ test(S(""), 1, 0, S("abcdefghij"), 1, 10, 0);
+ test(S(""), 1, 0, S("abcdefghij"), 5, 0, 0);
+ test(S(""), 1, 0, S("abcdefghij"), 5, 1, 0);
+ test(S(""), 1, 0, S("abcdefghij"), 5, 2, 0);
+ test(S(""), 1, 0, S("abcdefghij"), 5, 4, 0);
+ test(S(""), 1, 0, S("abcdefghij"), 5, 5, 0);
+ test(S(""), 1, 0, S("abcdefghij"), 5, 6, 0);
+ test(S(""), 1, 0, S("abcdefghij"), 9, 0, 0);
+ test(S(""), 1, 0, S("abcdefghij"), 9, 1, 0);
+ test(S(""), 1, 0, S("abcdefghij"), 9, 2, 0);
+ test(S(""), 1, 0, S("abcdefghij"), 10, 0, 0);
+ test(S(""), 1, 0, S("abcdefghij"), 10, 1, 0);
+ test(S(""), 1, 0, S("abcdefghij"), 11, 0, 0);
+ test(S(""), 1, 0, S("abcdefghijklmnopqrst"), 0, 0, 0);
+ test(S(""), 1, 0, S("abcdefghijklmnopqrst"), 0, 1, 0);
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test2()
-{
- test(S(""), 1, 0, S("abcdefghijklmnopqrst"), 0, 10, 0);
- test(S(""), 1, 0, S("abcdefghijklmnopqrst"), 0, 19, 0);
- test(S(""), 1, 0, S("abcdefghijklmnopqrst"), 0, 20, 0);
- test(S(""), 1, 0, S("abcdefghijklmnopqrst"), 0, 21, 0);
- test(S(""), 1, 0, S("abcdefghijklmnopqrst"), 1, 0, 0);
- test(S(""), 1, 0, S("abcdefghijklmnopqrst"), 1, 1, 0);
- test(S(""), 1, 0, S("abcdefghijklmnopqrst"), 1, 9, 0);
- test(S(""), 1, 0, S("abcdefghijklmnopqrst"), 1, 18, 0);
- test(S(""), 1, 0, S("abcdefghijklmnopqrst"), 1, 19, 0);
- test(S(""), 1, 0, S("abcdefghijklmnopqrst"), 1, 20, 0);
- test(S(""), 1, 0, S("abcdefghijklmnopqrst"), 10, 0, 0);
- test(S(""), 1, 0, S("abcdefghijklmnopqrst"), 10, 1, 0);
- test(S(""), 1, 0, S("abcdefghijklmnopqrst"), 10, 5, 0);
- test(S(""), 1, 0, S("abcdefghijklmnopqrst"), 10, 9, 0);
- test(S(""), 1, 0, S("abcdefghijklmnopqrst"), 10, 10, 0);
- test(S(""), 1, 0, S("abcdefghijklmnopqrst"), 10, 11, 0);
- test(S(""), 1, 0, S("abcdefghijklmnopqrst"), 19, 0, 0);
- test(S(""), 1, 0, S("abcdefghijklmnopqrst"), 19, 1, 0);
- test(S(""), 1, 0, S("abcdefghijklmnopqrst"), 19, 2, 0);
- test(S(""), 1, 0, S("abcdefghijklmnopqrst"), 20, 0, 0);
- test(S(""), 1, 0, S("abcdefghijklmnopqrst"), 20, 1, 0);
- test(S(""), 1, 0, S("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcde"), 0, 0, S(""), 0, 0, 0);
- test(S("abcde"), 0, 0, S(""), 0, 1, 0);
- test(S("abcde"), 0, 0, S(""), 1, 0, 0);
- test(S("abcde"), 0, 0, S("abcde"), 0, 0, 0);
- test(S("abcde"), 0, 0, S("abcde"), 0, 1, -1);
- test(S("abcde"), 0, 0, S("abcde"), 0, 2, -2);
- test(S("abcde"), 0, 0, S("abcde"), 0, 4, -4);
- test(S("abcde"), 0, 0, S("abcde"), 0, 5, -5);
- test(S("abcde"), 0, 0, S("abcde"), 0, 6, -5);
- test(S("abcde"), 0, 0, S("abcde"), 1, 0, 0);
- test(S("abcde"), 0, 0, S("abcde"), 1, 1, -1);
- test(S("abcde"), 0, 0, S("abcde"), 1, 2, -2);
- test(S("abcde"), 0, 0, S("abcde"), 1, 3, -3);
- test(S("abcde"), 0, 0, S("abcde"), 1, 4, -4);
- test(S("abcde"), 0, 0, S("abcde"), 1, 5, -4);
- test(S("abcde"), 0, 0, S("abcde"), 2, 0, 0);
- test(S("abcde"), 0, 0, S("abcde"), 2, 1, -1);
- test(S("abcde"), 0, 0, S("abcde"), 2, 2, -2);
- test(S("abcde"), 0, 0, S("abcde"), 2, 3, -3);
- test(S("abcde"), 0, 0, S("abcde"), 2, 4, -3);
- test(S("abcde"), 0, 0, S("abcde"), 4, 0, 0);
- test(S("abcde"), 0, 0, S("abcde"), 4, 1, -1);
- test(S("abcde"), 0, 0, S("abcde"), 4, 2, -1);
- test(S("abcde"), 0, 0, S("abcde"), 5, 0, 0);
- test(S("abcde"), 0, 0, S("abcde"), 5, 1, 0);
- test(S("abcde"), 0, 0, S("abcde"), 6, 0, 0);
- test(S("abcde"), 0, 0, S("abcdefghij"), 0, 0, 0);
- test(S("abcde"), 0, 0, S("abcdefghij"), 0, 1, -1);
- test(S("abcde"), 0, 0, S("abcdefghij"), 0, 5, -5);
- test(S("abcde"), 0, 0, S("abcdefghij"), 0, 9, -9);
- test(S("abcde"), 0, 0, S("abcdefghij"), 0, 10, -10);
- test(S("abcde"), 0, 0, S("abcdefghij"), 0, 11, -10);
- test(S("abcde"), 0, 0, S("abcdefghij"), 1, 0, 0);
- test(S("abcde"), 0, 0, S("abcdefghij"), 1, 1, -1);
- test(S("abcde"), 0, 0, S("abcdefghij"), 1, 4, -4);
- test(S("abcde"), 0, 0, S("abcdefghij"), 1, 8, -8);
- test(S("abcde"), 0, 0, S("abcdefghij"), 1, 9, -9);
- test(S("abcde"), 0, 0, S("abcdefghij"), 1, 10, -9);
- test(S("abcde"), 0, 0, S("abcdefghij"), 5, 0, 0);
- test(S("abcde"), 0, 0, S("abcdefghij"), 5, 1, -1);
- test(S("abcde"), 0, 0, S("abcdefghij"), 5, 2, -2);
- test(S("abcde"), 0, 0, S("abcdefghij"), 5, 4, -4);
- test(S("abcde"), 0, 0, S("abcdefghij"), 5, 5, -5);
- test(S("abcde"), 0, 0, S("abcdefghij"), 5, 6, -5);
- test(S("abcde"), 0, 0, S("abcdefghij"), 9, 0, 0);
- test(S("abcde"), 0, 0, S("abcdefghij"), 9, 1, -1);
- test(S("abcde"), 0, 0, S("abcdefghij"), 9, 2, -1);
- test(S("abcde"), 0, 0, S("abcdefghij"), 10, 0, 0);
- test(S("abcde"), 0, 0, S("abcdefghij"), 10, 1, 0);
- test(S("abcde"), 0, 0, S("abcdefghij"), 11, 0, 0);
- test(S("abcde"), 0, 0, S("abcdefghijklmnopqrst"), 0, 0, 0);
- test(S("abcde"), 0, 0, S("abcdefghijklmnopqrst"), 0, 1, -1);
- test(S("abcde"), 0, 0, S("abcdefghijklmnopqrst"), 0, 10, -10);
- test(S("abcde"), 0, 0, S("abcdefghijklmnopqrst"), 0, 19, -19);
- test(S("abcde"), 0, 0, S("abcdefghijklmnopqrst"), 0, 20, -20);
- test(S("abcde"), 0, 0, S("abcdefghijklmnopqrst"), 0, 21, -20);
- test(S("abcde"), 0, 0, S("abcdefghijklmnopqrst"), 1, 0, 0);
- test(S("abcde"), 0, 0, S("abcdefghijklmnopqrst"), 1, 1, -1);
- test(S("abcde"), 0, 0, S("abcdefghijklmnopqrst"), 1, 9, -9);
- test(S("abcde"), 0, 0, S("abcdefghijklmnopqrst"), 1, 18, -18);
- test(S("abcde"), 0, 0, S("abcdefghijklmnopqrst"), 1, 19, -19);
- test(S("abcde"), 0, 0, S("abcdefghijklmnopqrst"), 1, 20, -19);
- test(S("abcde"), 0, 0, S("abcdefghijklmnopqrst"), 10, 0, 0);
- test(S("abcde"), 0, 0, S("abcdefghijklmnopqrst"), 10, 1, -1);
- test(S("abcde"), 0, 0, S("abcdefghijklmnopqrst"), 10, 5, -5);
- test(S("abcde"), 0, 0, S("abcdefghijklmnopqrst"), 10, 9, -9);
- test(S("abcde"), 0, 0, S("abcdefghijklmnopqrst"), 10, 10, -10);
- test(S("abcde"), 0, 0, S("abcdefghijklmnopqrst"), 10, 11, -10);
- test(S("abcde"), 0, 0, S("abcdefghijklmnopqrst"), 19, 0, 0);
- test(S("abcde"), 0, 0, S("abcdefghijklmnopqrst"), 19, 1, -1);
- test(S("abcde"), 0, 0, S("abcdefghijklmnopqrst"), 19, 2, -1);
- test(S("abcde"), 0, 0, S("abcdefghijklmnopqrst"), 20, 0, 0);
- test(S("abcde"), 0, 0, S("abcdefghijklmnopqrst"), 20, 1, 0);
- test(S("abcde"), 0, 0, S("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcde"), 0, 1, S(""), 0, 0, 1);
- test(S("abcde"), 0, 1, S(""), 0, 1, 1);
- test(S("abcde"), 0, 1, S(""), 1, 0, 0);
- test(S("abcde"), 0, 1, S("abcde"), 0, 0, 1);
+TEST_CONSTEXPR_CXX20 bool test2() {
+ test(S(""), 1, 0, S("abcdefghijklmnopqrst"), 0, 10, 0);
+ test(S(""), 1, 0, S("abcdefghijklmnopqrst"), 0, 19, 0);
+ test(S(""), 1, 0, S("abcdefghijklmnopqrst"), 0, 20, 0);
+ test(S(""), 1, 0, S("abcdefghijklmnopqrst"), 0, 21, 0);
+ test(S(""), 1, 0, S("abcdefghijklmnopqrst"), 1, 0, 0);
+ test(S(""), 1, 0, S("abcdefghijklmnopqrst"), 1, 1, 0);
+ test(S(""), 1, 0, S("abcdefghijklmnopqrst"), 1, 9, 0);
+ test(S(""), 1, 0, S("abcdefghijklmnopqrst"), 1, 18, 0);
+ test(S(""), 1, 0, S("abcdefghijklmnopqrst"), 1, 19, 0);
+ test(S(""), 1, 0, S("abcdefghijklmnopqrst"), 1, 20, 0);
+ test(S(""), 1, 0, S("abcdefghijklmnopqrst"), 10, 0, 0);
+ test(S(""), 1, 0, S("abcdefghijklmnopqrst"), 10, 1, 0);
+ test(S(""), 1, 0, S("abcdefghijklmnopqrst"), 10, 5, 0);
+ test(S(""), 1, 0, S("abcdefghijklmnopqrst"), 10, 9, 0);
+ test(S(""), 1, 0, S("abcdefghijklmnopqrst"), 10, 10, 0);
+ test(S(""), 1, 0, S("abcdefghijklmnopqrst"), 10, 11, 0);
+ test(S(""), 1, 0, S("abcdefghijklmnopqrst"), 19, 0, 0);
+ test(S(""), 1, 0, S("abcdefghijklmnopqrst"), 19, 1, 0);
+ test(S(""), 1, 0, S("abcdefghijklmnopqrst"), 19, 2, 0);
+ test(S(""), 1, 0, S("abcdefghijklmnopqrst"), 20, 0, 0);
+ test(S(""), 1, 0, S("abcdefghijklmnopqrst"), 20, 1, 0);
+ test(S(""), 1, 0, S("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcde"), 0, 0, S(""), 0, 0, 0);
+ test(S("abcde"), 0, 0, S(""), 0, 1, 0);
+ test(S("abcde"), 0, 0, S(""), 1, 0, 0);
+ test(S("abcde"), 0, 0, S("abcde"), 0, 0, 0);
+ test(S("abcde"), 0, 0, S("abcde"), 0, 1, -1);
+ test(S("abcde"), 0, 0, S("abcde"), 0, 2, -2);
+ test(S("abcde"), 0, 0, S("abcde"), 0, 4, -4);
+ test(S("abcde"), 0, 0, S("abcde"), 0, 5, -5);
+ test(S("abcde"), 0, 0, S("abcde"), 0, 6, -5);
+ test(S("abcde"), 0, 0, S("abcde"), 1, 0, 0);
+ test(S("abcde"), 0, 0, S("abcde"), 1, 1, -1);
+ test(S("abcde"), 0, 0, S("abcde"), 1, 2, -2);
+ test(S("abcde"), 0, 0, S("abcde"), 1, 3, -3);
+ test(S("abcde"), 0, 0, S("abcde"), 1, 4, -4);
+ test(S("abcde"), 0, 0, S("abcde"), 1, 5, -4);
+ test(S("abcde"), 0, 0, S("abcde"), 2, 0, 0);
+ test(S("abcde"), 0, 0, S("abcde"), 2, 1, -1);
+ test(S("abcde"), 0, 0, S("abcde"), 2, 2, -2);
+ test(S("abcde"), 0, 0, S("abcde"), 2, 3, -3);
+ test(S("abcde"), 0, 0, S("abcde"), 2, 4, -3);
+ test(S("abcde"), 0, 0, S("abcde"), 4, 0, 0);
+ test(S("abcde"), 0, 0, S("abcde"), 4, 1, -1);
+ test(S("abcde"), 0, 0, S("abcde"), 4, 2, -1);
+ test(S("abcde"), 0, 0, S("abcde"), 5, 0, 0);
+ test(S("abcde"), 0, 0, S("abcde"), 5, 1, 0);
+ test(S("abcde"), 0, 0, S("abcde"), 6, 0, 0);
+ test(S("abcde"), 0, 0, S("abcdefghij"), 0, 0, 0);
+ test(S("abcde"), 0, 0, S("abcdefghij"), 0, 1, -1);
+ test(S("abcde"), 0, 0, S("abcdefghij"), 0, 5, -5);
+ test(S("abcde"), 0, 0, S("abcdefghij"), 0, 9, -9);
+ test(S("abcde"), 0, 0, S("abcdefghij"), 0, 10, -10);
+ test(S("abcde"), 0, 0, S("abcdefghij"), 0, 11, -10);
+ test(S("abcde"), 0, 0, S("abcdefghij"), 1, 0, 0);
+ test(S("abcde"), 0, 0, S("abcdefghij"), 1, 1, -1);
+ test(S("abcde"), 0, 0, S("abcdefghij"), 1, 4, -4);
+ test(S("abcde"), 0, 0, S("abcdefghij"), 1, 8, -8);
+ test(S("abcde"), 0, 0, S("abcdefghij"), 1, 9, -9);
+ test(S("abcde"), 0, 0, S("abcdefghij"), 1, 10, -9);
+ test(S("abcde"), 0, 0, S("abcdefghij"), 5, 0, 0);
+ test(S("abcde"), 0, 0, S("abcdefghij"), 5, 1, -1);
+ test(S("abcde"), 0, 0, S("abcdefghij"), 5, 2, -2);
+ test(S("abcde"), 0, 0, S("abcdefghij"), 5, 4, -4);
+ test(S("abcde"), 0, 0, S("abcdefghij"), 5, 5, -5);
+ test(S("abcde"), 0, 0, S("abcdefghij"), 5, 6, -5);
+ test(S("abcde"), 0, 0, S("abcdefghij"), 9, 0, 0);
+ test(S("abcde"), 0, 0, S("abcdefghij"), 9, 1, -1);
+ test(S("abcde"), 0, 0, S("abcdefghij"), 9, 2, -1);
+ test(S("abcde"), 0, 0, S("abcdefghij"), 10, 0, 0);
+ test(S("abcde"), 0, 0, S("abcdefghij"), 10, 1, 0);
+ test(S("abcde"), 0, 0, S("abcdefghij"), 11, 0, 0);
+ test(S("abcde"), 0, 0, S("abcdefghijklmnopqrst"), 0, 0, 0);
+ test(S("abcde"), 0, 0, S("abcdefghijklmnopqrst"), 0, 1, -1);
+ test(S("abcde"), 0, 0, S("abcdefghijklmnopqrst"), 0, 10, -10);
+ test(S("abcde"), 0, 0, S("abcdefghijklmnopqrst"), 0, 19, -19);
+ test(S("abcde"), 0, 0, S("abcdefghijklmnopqrst"), 0, 20, -20);
+ test(S("abcde"), 0, 0, S("abcdefghijklmnopqrst"), 0, 21, -20);
+ test(S("abcde"), 0, 0, S("abcdefghijklmnopqrst"), 1, 0, 0);
+ test(S("abcde"), 0, 0, S("abcdefghijklmnopqrst"), 1, 1, -1);
+ test(S("abcde"), 0, 0, S("abcdefghijklmnopqrst"), 1, 9, -9);
+ test(S("abcde"), 0, 0, S("abcdefghijklmnopqrst"), 1, 18, -18);
+ test(S("abcde"), 0, 0, S("abcdefghijklmnopqrst"), 1, 19, -19);
+ test(S("abcde"), 0, 0, S("abcdefghijklmnopqrst"), 1, 20, -19);
+ test(S("abcde"), 0, 0, S("abcdefghijklmnopqrst"), 10, 0, 0);
+ test(S("abcde"), 0, 0, S("abcdefghijklmnopqrst"), 10, 1, -1);
+ test(S("abcde"), 0, 0, S("abcdefghijklmnopqrst"), 10, 5, -5);
+ test(S("abcde"), 0, 0, S("abcdefghijklmnopqrst"), 10, 9, -9);
+ test(S("abcde"), 0, 0, S("abcdefghijklmnopqrst"), 10, 10, -10);
+ test(S("abcde"), 0, 0, S("abcdefghijklmnopqrst"), 10, 11, -10);
+ test(S("abcde"), 0, 0, S("abcdefghijklmnopqrst"), 19, 0, 0);
+ test(S("abcde"), 0, 0, S("abcdefghijklmnopqrst"), 19, 1, -1);
+ test(S("abcde"), 0, 0, S("abcdefghijklmnopqrst"), 19, 2, -1);
+ test(S("abcde"), 0, 0, S("abcdefghijklmnopqrst"), 20, 0, 0);
+ test(S("abcde"), 0, 0, S("abcdefghijklmnopqrst"), 20, 1, 0);
+ test(S("abcde"), 0, 0, S("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcde"), 0, 1, S(""), 0, 0, 1);
+ test(S("abcde"), 0, 1, S(""), 0, 1, 1);
+ test(S("abcde"), 0, 1, S(""), 1, 0, 0);
+ test(S("abcde"), 0, 1, S("abcde"), 0, 0, 1);
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test3()
-{
- test(S("abcde"), 0, 1, S("abcde"), 0, 1, 0);
- test(S("abcde"), 0, 1, S("abcde"), 0, 2, -1);
- test(S("abcde"), 0, 1, S("abcde"), 0, 4, -3);
- test(S("abcde"), 0, 1, S("abcde"), 0, 5, -4);
- test(S("abcde"), 0, 1, S("abcde"), 0, 6, -4);
- test(S("abcde"), 0, 1, S("abcde"), 1, 0, 1);
- test(S("abcde"), 0, 1, S("abcde"), 1, 1, -1);
- test(S("abcde"), 0, 1, S("abcde"), 1, 2, -1);
- test(S("abcde"), 0, 1, S("abcde"), 1, 3, -1);
- test(S("abcde"), 0, 1, S("abcde"), 1, 4, -1);
- test(S("abcde"), 0, 1, S("abcde"), 1, 5, -1);
- test(S("abcde"), 0, 1, S("abcde"), 2, 0, 1);
- test(S("abcde"), 0, 1, S("abcde"), 2, 1, -2);
- test(S("abcde"), 0, 1, S("abcde"), 2, 2, -2);
- test(S("abcde"), 0, 1, S("abcde"), 2, 3, -2);
- test(S("abcde"), 0, 1, S("abcde"), 2, 4, -2);
- test(S("abcde"), 0, 1, S("abcde"), 4, 0, 1);
- test(S("abcde"), 0, 1, S("abcde"), 4, 1, -4);
- test(S("abcde"), 0, 1, S("abcde"), 4, 2, -4);
- test(S("abcde"), 0, 1, S("abcde"), 5, 0, 1);
- test(S("abcde"), 0, 1, S("abcde"), 5, 1, 1);
- test(S("abcde"), 0, 1, S("abcde"), 6, 0, 0);
- test(S("abcde"), 0, 1, S("abcdefghij"), 0, 0, 1);
- test(S("abcde"), 0, 1, S("abcdefghij"), 0, 1, 0);
- test(S("abcde"), 0, 1, S("abcdefghij"), 0, 5, -4);
- test(S("abcde"), 0, 1, S("abcdefghij"), 0, 9, -8);
- test(S("abcde"), 0, 1, S("abcdefghij"), 0, 10, -9);
- test(S("abcde"), 0, 1, S("abcdefghij"), 0, 11, -9);
- test(S("abcde"), 0, 1, S("abcdefghij"), 1, 0, 1);
- test(S("abcde"), 0, 1, S("abcdefghij"), 1, 1, -1);
- test(S("abcde"), 0, 1, S("abcdefghij"), 1, 4, -1);
- test(S("abcde"), 0, 1, S("abcdefghij"), 1, 8, -1);
- test(S("abcde"), 0, 1, S("abcdefghij"), 1, 9, -1);
- test(S("abcde"), 0, 1, S("abcdefghij"), 1, 10, -1);
- test(S("abcde"), 0, 1, S("abcdefghij"), 5, 0, 1);
- test(S("abcde"), 0, 1, S("abcdefghij"), 5, 1, -5);
- test(S("abcde"), 0, 1, S("abcdefghij"), 5, 2, -5);
- test(S("abcde"), 0, 1, S("abcdefghij"), 5, 4, -5);
- test(S("abcde"), 0, 1, S("abcdefghij"), 5, 5, -5);
- test(S("abcde"), 0, 1, S("abcdefghij"), 5, 6, -5);
- test(S("abcde"), 0, 1, S("abcdefghij"), 9, 0, 1);
- test(S("abcde"), 0, 1, S("abcdefghij"), 9, 1, -9);
- test(S("abcde"), 0, 1, S("abcdefghij"), 9, 2, -9);
- test(S("abcde"), 0, 1, S("abcdefghij"), 10, 0, 1);
- test(S("abcde"), 0, 1, S("abcdefghij"), 10, 1, 1);
- test(S("abcde"), 0, 1, S("abcdefghij"), 11, 0, 0);
- test(S("abcde"), 0, 1, S("abcdefghijklmnopqrst"), 0, 0, 1);
- test(S("abcde"), 0, 1, S("abcdefghijklmnopqrst"), 0, 1, 0);
- test(S("abcde"), 0, 1, S("abcdefghijklmnopqrst"), 0, 10, -9);
- test(S("abcde"), 0, 1, S("abcdefghijklmnopqrst"), 0, 19, -18);
- test(S("abcde"), 0, 1, S("abcdefghijklmnopqrst"), 0, 20, -19);
- test(S("abcde"), 0, 1, S("abcdefghijklmnopqrst"), 0, 21, -19);
- test(S("abcde"), 0, 1, S("abcdefghijklmnopqrst"), 1, 0, 1);
- test(S("abcde"), 0, 1, S("abcdefghijklmnopqrst"), 1, 1, -1);
- test(S("abcde"), 0, 1, S("abcdefghijklmnopqrst"), 1, 9, -1);
- test(S("abcde"), 0, 1, S("abcdefghijklmnopqrst"), 1, 18, -1);
- test(S("abcde"), 0, 1, S("abcdefghijklmnopqrst"), 1, 19, -1);
- test(S("abcde"), 0, 1, S("abcdefghijklmnopqrst"), 1, 20, -1);
- test(S("abcde"), 0, 1, S("abcdefghijklmnopqrst"), 10, 0, 1);
- test(S("abcde"), 0, 1, S("abcdefghijklmnopqrst"), 10, 1, -10);
- test(S("abcde"), 0, 1, S("abcdefghijklmnopqrst"), 10, 5, -10);
- test(S("abcde"), 0, 1, S("abcdefghijklmnopqrst"), 10, 9, -10);
- test(S("abcde"), 0, 1, S("abcdefghijklmnopqrst"), 10, 10, -10);
- test(S("abcde"), 0, 1, S("abcdefghijklmnopqrst"), 10, 11, -10);
- test(S("abcde"), 0, 1, S("abcdefghijklmnopqrst"), 19, 0, 1);
- test(S("abcde"), 0, 1, S("abcdefghijklmnopqrst"), 19, 1, -19);
- test(S("abcde"), 0, 1, S("abcdefghijklmnopqrst"), 19, 2, -19);
- test(S("abcde"), 0, 1, S("abcdefghijklmnopqrst"), 20, 0, 1);
- test(S("abcde"), 0, 1, S("abcdefghijklmnopqrst"), 20, 1, 1);
- test(S("abcde"), 0, 1, S("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcde"), 0, 2, S(""), 0, 0, 2);
- test(S("abcde"), 0, 2, S(""), 0, 1, 2);
- test(S("abcde"), 0, 2, S(""), 1, 0, 0);
- test(S("abcde"), 0, 2, S("abcde"), 0, 0, 2);
- test(S("abcde"), 0, 2, S("abcde"), 0, 1, 1);
- test(S("abcde"), 0, 2, S("abcde"), 0, 2, 0);
- test(S("abcde"), 0, 2, S("abcde"), 0, 4, -2);
- test(S("abcde"), 0, 2, S("abcde"), 0, 5, -3);
- test(S("abcde"), 0, 2, S("abcde"), 0, 6, -3);
- test(S("abcde"), 0, 2, S("abcde"), 1, 0, 2);
- test(S("abcde"), 0, 2, S("abcde"), 1, 1, -1);
- test(S("abcde"), 0, 2, S("abcde"), 1, 2, -1);
- test(S("abcde"), 0, 2, S("abcde"), 1, 3, -1);
- test(S("abcde"), 0, 2, S("abcde"), 1, 4, -1);
- test(S("abcde"), 0, 2, S("abcde"), 1, 5, -1);
- test(S("abcde"), 0, 2, S("abcde"), 2, 0, 2);
- test(S("abcde"), 0, 2, S("abcde"), 2, 1, -2);
- test(S("abcde"), 0, 2, S("abcde"), 2, 2, -2);
- test(S("abcde"), 0, 2, S("abcde"), 2, 3, -2);
- test(S("abcde"), 0, 2, S("abcde"), 2, 4, -2);
- test(S("abcde"), 0, 2, S("abcde"), 4, 0, 2);
- test(S("abcde"), 0, 2, S("abcde"), 4, 1, -4);
- test(S("abcde"), 0, 2, S("abcde"), 4, 2, -4);
- test(S("abcde"), 0, 2, S("abcde"), 5, 0, 2);
- test(S("abcde"), 0, 2, S("abcde"), 5, 1, 2);
- test(S("abcde"), 0, 2, S("abcde"), 6, 0, 0);
- test(S("abcde"), 0, 2, S("abcdefghij"), 0, 0, 2);
- test(S("abcde"), 0, 2, S("abcdefghij"), 0, 1, 1);
- test(S("abcde"), 0, 2, S("abcdefghij"), 0, 5, -3);
- test(S("abcde"), 0, 2, S("abcdefghij"), 0, 9, -7);
+TEST_CONSTEXPR_CXX20 bool test3() {
+ test(S("abcde"), 0, 1, S("abcde"), 0, 1, 0);
+ test(S("abcde"), 0, 1, S("abcde"), 0, 2, -1);
+ test(S("abcde"), 0, 1, S("abcde"), 0, 4, -3);
+ test(S("abcde"), 0, 1, S("abcde"), 0, 5, -4);
+ test(S("abcde"), 0, 1, S("abcde"), 0, 6, -4);
+ test(S("abcde"), 0, 1, S("abcde"), 1, 0, 1);
+ test(S("abcde"), 0, 1, S("abcde"), 1, 1, -1);
+ test(S("abcde"), 0, 1, S("abcde"), 1, 2, -1);
+ test(S("abcde"), 0, 1, S("abcde"), 1, 3, -1);
+ test(S("abcde"), 0, 1, S("abcde"), 1, 4, -1);
+ test(S("abcde"), 0, 1, S("abcde"), 1, 5, -1);
+ test(S("abcde"), 0, 1, S("abcde"), 2, 0, 1);
+ test(S("abcde"), 0, 1, S("abcde"), 2, 1, -2);
+ test(S("abcde"), 0, 1, S("abcde"), 2, 2, -2);
+ test(S("abcde"), 0, 1, S("abcde"), 2, 3, -2);
+ test(S("abcde"), 0, 1, S("abcde"), 2, 4, -2);
+ test(S("abcde"), 0, 1, S("abcde"), 4, 0, 1);
+ test(S("abcde"), 0, 1, S("abcde"), 4, 1, -4);
+ test(S("abcde"), 0, 1, S("abcde"), 4, 2, -4);
+ test(S("abcde"), 0, 1, S("abcde"), 5, 0, 1);
+ test(S("abcde"), 0, 1, S("abcde"), 5, 1, 1);
+ test(S("abcde"), 0, 1, S("abcde"), 6, 0, 0);
+ test(S("abcde"), 0, 1, S("abcdefghij"), 0, 0, 1);
+ test(S("abcde"), 0, 1, S("abcdefghij"), 0, 1, 0);
+ test(S("abcde"), 0, 1, S("abcdefghij"), 0, 5, -4);
+ test(S("abcde"), 0, 1, S("abcdefghij"), 0, 9, -8);
+ test(S("abcde"), 0, 1, S("abcdefghij"), 0, 10, -9);
+ test(S("abcde"), 0, 1, S("abcdefghij"), 0, 11, -9);
+ test(S("abcde"), 0, 1, S("abcdefghij"), 1, 0, 1);
+ test(S("abcde"), 0, 1, S("abcdefghij"), 1, 1, -1);
+ test(S("abcde"), 0, 1, S("abcdefghij"), 1, 4, -1);
+ test(S("abcde"), 0, 1, S("abcdefghij"), 1, 8, -1);
+ test(S("abcde"), 0, 1, S("abcdefghij"), 1, 9, -1);
+ test(S("abcde"), 0, 1, S("abcdefghij"), 1, 10, -1);
+ test(S("abcde"), 0, 1, S("abcdefghij"), 5, 0, 1);
+ test(S("abcde"), 0, 1, S("abcdefghij"), 5, 1, -5);
+ test(S("abcde"), 0, 1, S("abcdefghij"), 5, 2, -5);
+ test(S("abcde"), 0, 1, S("abcdefghij"), 5, 4, -5);
+ test(S("abcde"), 0, 1, S("abcdefghij"), 5, 5, -5);
+ test(S("abcde"), 0, 1, S("abcdefghij"), 5, 6, -5);
+ test(S("abcde"), 0, 1, S("abcdefghij"), 9, 0, 1);
+ test(S("abcde"), 0, 1, S("abcdefghij"), 9, 1, -9);
+ test(S("abcde"), 0, 1, S("abcdefghij"), 9, 2, -9);
+ test(S("abcde"), 0, 1, S("abcdefghij"), 10, 0, 1);
+ test(S("abcde"), 0, 1, S("abcdefghij"), 10, 1, 1);
+ test(S("abcde"), 0, 1, S("abcdefghij"), 11, 0, 0);
+ test(S("abcde"), 0, 1, S("abcdefghijklmnopqrst"), 0, 0, 1);
+ test(S("abcde"), 0, 1, S("abcdefghijklmnopqrst"), 0, 1, 0);
+ test(S("abcde"), 0, 1, S("abcdefghijklmnopqrst"), 0, 10, -9);
+ test(S("abcde"), 0, 1, S("abcdefghijklmnopqrst"), 0, 19, -18);
+ test(S("abcde"), 0, 1, S("abcdefghijklmnopqrst"), 0, 20, -19);
+ test(S("abcde"), 0, 1, S("abcdefghijklmnopqrst"), 0, 21, -19);
+ test(S("abcde"), 0, 1, S("abcdefghijklmnopqrst"), 1, 0, 1);
+ test(S("abcde"), 0, 1, S("abcdefghijklmnopqrst"), 1, 1, -1);
+ test(S("abcde"), 0, 1, S("abcdefghijklmnopqrst"), 1, 9, -1);
+ test(S("abcde"), 0, 1, S("abcdefghijklmnopqrst"), 1, 18, -1);
+ test(S("abcde"), 0, 1, S("abcdefghijklmnopqrst"), 1, 19, -1);
+ test(S("abcde"), 0, 1, S("abcdefghijklmnopqrst"), 1, 20, -1);
+ test(S("abcde"), 0, 1, S("abcdefghijklmnopqrst"), 10, 0, 1);
+ test(S("abcde"), 0, 1, S("abcdefghijklmnopqrst"), 10, 1, -10);
+ test(S("abcde"), 0, 1, S("abcdefghijklmnopqrst"), 10, 5, -10);
+ test(S("abcde"), 0, 1, S("abcdefghijklmnopqrst"), 10, 9, -10);
+ test(S("abcde"), 0, 1, S("abcdefghijklmnopqrst"), 10, 10, -10);
+ test(S("abcde"), 0, 1, S("abcdefghijklmnopqrst"), 10, 11, -10);
+ test(S("abcde"), 0, 1, S("abcdefghijklmnopqrst"), 19, 0, 1);
+ test(S("abcde"), 0, 1, S("abcdefghijklmnopqrst"), 19, 1, -19);
+ test(S("abcde"), 0, 1, S("abcdefghijklmnopqrst"), 19, 2, -19);
+ test(S("abcde"), 0, 1, S("abcdefghijklmnopqrst"), 20, 0, 1);
+ test(S("abcde"), 0, 1, S("abcdefghijklmnopqrst"), 20, 1, 1);
+ test(S("abcde"), 0, 1, S("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcde"), 0, 2, S(""), 0, 0, 2);
+ test(S("abcde"), 0, 2, S(""), 0, 1, 2);
+ test(S("abcde"), 0, 2, S(""), 1, 0, 0);
+ test(S("abcde"), 0, 2, S("abcde"), 0, 0, 2);
+ test(S("abcde"), 0, 2, S("abcde"), 0, 1, 1);
+ test(S("abcde"), 0, 2, S("abcde"), 0, 2, 0);
+ test(S("abcde"), 0, 2, S("abcde"), 0, 4, -2);
+ test(S("abcde"), 0, 2, S("abcde"), 0, 5, -3);
+ test(S("abcde"), 0, 2, S("abcde"), 0, 6, -3);
+ test(S("abcde"), 0, 2, S("abcde"), 1, 0, 2);
+ test(S("abcde"), 0, 2, S("abcde"), 1, 1, -1);
+ test(S("abcde"), 0, 2, S("abcde"), 1, 2, -1);
+ test(S("abcde"), 0, 2, S("abcde"), 1, 3, -1);
+ test(S("abcde"), 0, 2, S("abcde"), 1, 4, -1);
+ test(S("abcde"), 0, 2, S("abcde"), 1, 5, -1);
+ test(S("abcde"), 0, 2, S("abcde"), 2, 0, 2);
+ test(S("abcde"), 0, 2, S("abcde"), 2, 1, -2);
+ test(S("abcde"), 0, 2, S("abcde"), 2, 2, -2);
+ test(S("abcde"), 0, 2, S("abcde"), 2, 3, -2);
+ test(S("abcde"), 0, 2, S("abcde"), 2, 4, -2);
+ test(S("abcde"), 0, 2, S("abcde"), 4, 0, 2);
+ test(S("abcde"), 0, 2, S("abcde"), 4, 1, -4);
+ test(S("abcde"), 0, 2, S("abcde"), 4, 2, -4);
+ test(S("abcde"), 0, 2, S("abcde"), 5, 0, 2);
+ test(S("abcde"), 0, 2, S("abcde"), 5, 1, 2);
+ test(S("abcde"), 0, 2, S("abcde"), 6, 0, 0);
+ test(S("abcde"), 0, 2, S("abcdefghij"), 0, 0, 2);
+ test(S("abcde"), 0, 2, S("abcdefghij"), 0, 1, 1);
+ test(S("abcde"), 0, 2, S("abcdefghij"), 0, 5, -3);
+ test(S("abcde"), 0, 2, S("abcdefghij"), 0, 9, -7);
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test4()
-{
- test(S("abcde"), 0, 2, S("abcdefghij"), 0, 10, -8);
- test(S("abcde"), 0, 2, S("abcdefghij"), 0, 11, -8);
- test(S("abcde"), 0, 2, S("abcdefghij"), 1, 0, 2);
- test(S("abcde"), 0, 2, S("abcdefghij"), 1, 1, -1);
- test(S("abcde"), 0, 2, S("abcdefghij"), 1, 4, -1);
- test(S("abcde"), 0, 2, S("abcdefghij"), 1, 8, -1);
- test(S("abcde"), 0, 2, S("abcdefghij"), 1, 9, -1);
- test(S("abcde"), 0, 2, S("abcdefghij"), 1, 10, -1);
- test(S("abcde"), 0, 2, S("abcdefghij"), 5, 0, 2);
- test(S("abcde"), 0, 2, S("abcdefghij"), 5, 1, -5);
- test(S("abcde"), 0, 2, S("abcdefghij"), 5, 2, -5);
- test(S("abcde"), 0, 2, S("abcdefghij"), 5, 4, -5);
- test(S("abcde"), 0, 2, S("abcdefghij"), 5, 5, -5);
- test(S("abcde"), 0, 2, S("abcdefghij"), 5, 6, -5);
- test(S("abcde"), 0, 2, S("abcdefghij"), 9, 0, 2);
- test(S("abcde"), 0, 2, S("abcdefghij"), 9, 1, -9);
- test(S("abcde"), 0, 2, S("abcdefghij"), 9, 2, -9);
- test(S("abcde"), 0, 2, S("abcdefghij"), 10, 0, 2);
- test(S("abcde"), 0, 2, S("abcdefghij"), 10, 1, 2);
- test(S("abcde"), 0, 2, S("abcdefghij"), 11, 0, 0);
- test(S("abcde"), 0, 2, S("abcdefghijklmnopqrst"), 0, 0, 2);
- test(S("abcde"), 0, 2, S("abcdefghijklmnopqrst"), 0, 1, 1);
- test(S("abcde"), 0, 2, S("abcdefghijklmnopqrst"), 0, 10, -8);
- test(S("abcde"), 0, 2, S("abcdefghijklmnopqrst"), 0, 19, -17);
- test(S("abcde"), 0, 2, S("abcdefghijklmnopqrst"), 0, 20, -18);
- test(S("abcde"), 0, 2, S("abcdefghijklmnopqrst"), 0, 21, -18);
- test(S("abcde"), 0, 2, S("abcdefghijklmnopqrst"), 1, 0, 2);
- test(S("abcde"), 0, 2, S("abcdefghijklmnopqrst"), 1, 1, -1);
- test(S("abcde"), 0, 2, S("abcdefghijklmnopqrst"), 1, 9, -1);
- test(S("abcde"), 0, 2, S("abcdefghijklmnopqrst"), 1, 18, -1);
- test(S("abcde"), 0, 2, S("abcdefghijklmnopqrst"), 1, 19, -1);
- test(S("abcde"), 0, 2, S("abcdefghijklmnopqrst"), 1, 20, -1);
- test(S("abcde"), 0, 2, S("abcdefghijklmnopqrst"), 10, 0, 2);
- test(S("abcde"), 0, 2, S("abcdefghijklmnopqrst"), 10, 1, -10);
- test(S("abcde"), 0, 2, S("abcdefghijklmnopqrst"), 10, 5, -10);
- test(S("abcde"), 0, 2, S("abcdefghijklmnopqrst"), 10, 9, -10);
- test(S("abcde"), 0, 2, S("abcdefghijklmnopqrst"), 10, 10, -10);
- test(S("abcde"), 0, 2, S("abcdefghijklmnopqrst"), 10, 11, -10);
- test(S("abcde"), 0, 2, S("abcdefghijklmnopqrst"), 19, 0, 2);
- test(S("abcde"), 0, 2, S("abcdefghijklmnopqrst"), 19, 1, -19);
- test(S("abcde"), 0, 2, S("abcdefghijklmnopqrst"), 19, 2, -19);
- test(S("abcde"), 0, 2, S("abcdefghijklmnopqrst"), 20, 0, 2);
- test(S("abcde"), 0, 2, S("abcdefghijklmnopqrst"), 20, 1, 2);
- test(S("abcde"), 0, 2, S("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcde"), 0, 4, S(""), 0, 0, 4);
- test(S("abcde"), 0, 4, S(""), 0, 1, 4);
- test(S("abcde"), 0, 4, S(""), 1, 0, 0);
- test(S("abcde"), 0, 4, S("abcde"), 0, 0, 4);
- test(S("abcde"), 0, 4, S("abcde"), 0, 1, 3);
- test(S("abcde"), 0, 4, S("abcde"), 0, 2, 2);
- test(S("abcde"), 0, 4, S("abcde"), 0, 4, 0);
- test(S("abcde"), 0, 4, S("abcde"), 0, 5, -1);
- test(S("abcde"), 0, 4, S("abcde"), 0, 6, -1);
- test(S("abcde"), 0, 4, S("abcde"), 1, 0, 4);
- test(S("abcde"), 0, 4, S("abcde"), 1, 1, -1);
- test(S("abcde"), 0, 4, S("abcde"), 1, 2, -1);
- test(S("abcde"), 0, 4, S("abcde"), 1, 3, -1);
- test(S("abcde"), 0, 4, S("abcde"), 1, 4, -1);
- test(S("abcde"), 0, 4, S("abcde"), 1, 5, -1);
- test(S("abcde"), 0, 4, S("abcde"), 2, 0, 4);
- test(S("abcde"), 0, 4, S("abcde"), 2, 1, -2);
- test(S("abcde"), 0, 4, S("abcde"), 2, 2, -2);
- test(S("abcde"), 0, 4, S("abcde"), 2, 3, -2);
- test(S("abcde"), 0, 4, S("abcde"), 2, 4, -2);
- test(S("abcde"), 0, 4, S("abcde"), 4, 0, 4);
- test(S("abcde"), 0, 4, S("abcde"), 4, 1, -4);
- test(S("abcde"), 0, 4, S("abcde"), 4, 2, -4);
- test(S("abcde"), 0, 4, S("abcde"), 5, 0, 4);
- test(S("abcde"), 0, 4, S("abcde"), 5, 1, 4);
- test(S("abcde"), 0, 4, S("abcde"), 6, 0, 0);
- test(S("abcde"), 0, 4, S("abcdefghij"), 0, 0, 4);
- test(S("abcde"), 0, 4, S("abcdefghij"), 0, 1, 3);
- test(S("abcde"), 0, 4, S("abcdefghij"), 0, 5, -1);
- test(S("abcde"), 0, 4, S("abcdefghij"), 0, 9, -5);
- test(S("abcde"), 0, 4, S("abcdefghij"), 0, 10, -6);
- test(S("abcde"), 0, 4, S("abcdefghij"), 0, 11, -6);
- test(S("abcde"), 0, 4, S("abcdefghij"), 1, 0, 4);
- test(S("abcde"), 0, 4, S("abcdefghij"), 1, 1, -1);
- test(S("abcde"), 0, 4, S("abcdefghij"), 1, 4, -1);
- test(S("abcde"), 0, 4, S("abcdefghij"), 1, 8, -1);
- test(S("abcde"), 0, 4, S("abcdefghij"), 1, 9, -1);
- test(S("abcde"), 0, 4, S("abcdefghij"), 1, 10, -1);
- test(S("abcde"), 0, 4, S("abcdefghij"), 5, 0, 4);
- test(S("abcde"), 0, 4, S("abcdefghij"), 5, 1, -5);
- test(S("abcde"), 0, 4, S("abcdefghij"), 5, 2, -5);
- test(S("abcde"), 0, 4, S("abcdefghij"), 5, 4, -5);
- test(S("abcde"), 0, 4, S("abcdefghij"), 5, 5, -5);
- test(S("abcde"), 0, 4, S("abcdefghij"), 5, 6, -5);
- test(S("abcde"), 0, 4, S("abcdefghij"), 9, 0, 4);
- test(S("abcde"), 0, 4, S("abcdefghij"), 9, 1, -9);
- test(S("abcde"), 0, 4, S("abcdefghij"), 9, 2, -9);
- test(S("abcde"), 0, 4, S("abcdefghij"), 10, 0, 4);
- test(S("abcde"), 0, 4, S("abcdefghij"), 10, 1, 4);
- test(S("abcde"), 0, 4, S("abcdefghij"), 11, 0, 0);
- test(S("abcde"), 0, 4, S("abcdefghijklmnopqrst"), 0, 0, 4);
- test(S("abcde"), 0, 4, S("abcdefghijklmnopqrst"), 0, 1, 3);
- test(S("abcde"), 0, 4, S("abcdefghijklmnopqrst"), 0, 10, -6);
- test(S("abcde"), 0, 4, S("abcdefghijklmnopqrst"), 0, 19, -15);
- test(S("abcde"), 0, 4, S("abcdefghijklmnopqrst"), 0, 20, -16);
- test(S("abcde"), 0, 4, S("abcdefghijklmnopqrst"), 0, 21, -16);
+TEST_CONSTEXPR_CXX20 bool test4() {
+ test(S("abcde"), 0, 2, S("abcdefghij"), 0, 10, -8);
+ test(S("abcde"), 0, 2, S("abcdefghij"), 0, 11, -8);
+ test(S("abcde"), 0, 2, S("abcdefghij"), 1, 0, 2);
+ test(S("abcde"), 0, 2, S("abcdefghij"), 1, 1, -1);
+ test(S("abcde"), 0, 2, S("abcdefghij"), 1, 4, -1);
+ test(S("abcde"), 0, 2, S("abcdefghij"), 1, 8, -1);
+ test(S("abcde"), 0, 2, S("abcdefghij"), 1, 9, -1);
+ test(S("abcde"), 0, 2, S("abcdefghij"), 1, 10, -1);
+ test(S("abcde"), 0, 2, S("abcdefghij"), 5, 0, 2);
+ test(S("abcde"), 0, 2, S("abcdefghij"), 5, 1, -5);
+ test(S("abcde"), 0, 2, S("abcdefghij"), 5, 2, -5);
+ test(S("abcde"), 0, 2, S("abcdefghij"), 5, 4, -5);
+ test(S("abcde"), 0, 2, S("abcdefghij"), 5, 5, -5);
+ test(S("abcde"), 0, 2, S("abcdefghij"), 5, 6, -5);
+ test(S("abcde"), 0, 2, S("abcdefghij"), 9, 0, 2);
+ test(S("abcde"), 0, 2, S("abcdefghij"), 9, 1, -9);
+ test(S("abcde"), 0, 2, S("abcdefghij"), 9, 2, -9);
+ test(S("abcde"), 0, 2, S("abcdefghij"), 10, 0, 2);
+ test(S("abcde"), 0, 2, S("abcdefghij"), 10, 1, 2);
+ test(S("abcde"), 0, 2, S("abcdefghij"), 11, 0, 0);
+ test(S("abcde"), 0, 2, S("abcdefghijklmnopqrst"), 0, 0, 2);
+ test(S("abcde"), 0, 2, S("abcdefghijklmnopqrst"), 0, 1, 1);
+ test(S("abcde"), 0, 2, S("abcdefghijklmnopqrst"), 0, 10, -8);
+ test(S("abcde"), 0, 2, S("abcdefghijklmnopqrst"), 0, 19, -17);
+ test(S("abcde"), 0, 2, S("abcdefghijklmnopqrst"), 0, 20, -18);
+ test(S("abcde"), 0, 2, S("abcdefghijklmnopqrst"), 0, 21, -18);
+ test(S("abcde"), 0, 2, S("abcdefghijklmnopqrst"), 1, 0, 2);
+ test(S("abcde"), 0, 2, S("abcdefghijklmnopqrst"), 1, 1, -1);
+ test(S("abcde"), 0, 2, S("abcdefghijklmnopqrst"), 1, 9, -1);
+ test(S("abcde"), 0, 2, S("abcdefghijklmnopqrst"), 1, 18, -1);
+ test(S("abcde"), 0, 2, S("abcdefghijklmnopqrst"), 1, 19, -1);
+ test(S("abcde"), 0, 2, S("abcdefghijklmnopqrst"), 1, 20, -1);
+ test(S("abcde"), 0, 2, S("abcdefghijklmnopqrst"), 10, 0, 2);
+ test(S("abcde"), 0, 2, S("abcdefghijklmnopqrst"), 10, 1, -10);
+ test(S("abcde"), 0, 2, S("abcdefghijklmnopqrst"), 10, 5, -10);
+ test(S("abcde"), 0, 2, S("abcdefghijklmnopqrst"), 10, 9, -10);
+ test(S("abcde"), 0, 2, S("abcdefghijklmnopqrst"), 10, 10, -10);
+ test(S("abcde"), 0, 2, S("abcdefghijklmnopqrst"), 10, 11, -10);
+ test(S("abcde"), 0, 2, S("abcdefghijklmnopqrst"), 19, 0, 2);
+ test(S("abcde"), 0, 2, S("abcdefghijklmnopqrst"), 19, 1, -19);
+ test(S("abcde"), 0, 2, S("abcdefghijklmnopqrst"), 19, 2, -19);
+ test(S("abcde"), 0, 2, S("abcdefghijklmnopqrst"), 20, 0, 2);
+ test(S("abcde"), 0, 2, S("abcdefghijklmnopqrst"), 20, 1, 2);
+ test(S("abcde"), 0, 2, S("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcde"), 0, 4, S(""), 0, 0, 4);
+ test(S("abcde"), 0, 4, S(""), 0, 1, 4);
+ test(S("abcde"), 0, 4, S(""), 1, 0, 0);
+ test(S("abcde"), 0, 4, S("abcde"), 0, 0, 4);
+ test(S("abcde"), 0, 4, S("abcde"), 0, 1, 3);
+ test(S("abcde"), 0, 4, S("abcde"), 0, 2, 2);
+ test(S("abcde"), 0, 4, S("abcde"), 0, 4, 0);
+ test(S("abcde"), 0, 4, S("abcde"), 0, 5, -1);
+ test(S("abcde"), 0, 4, S("abcde"), 0, 6, -1);
+ test(S("abcde"), 0, 4, S("abcde"), 1, 0, 4);
+ test(S("abcde"), 0, 4, S("abcde"), 1, 1, -1);
+ test(S("abcde"), 0, 4, S("abcde"), 1, 2, -1);
+ test(S("abcde"), 0, 4, S("abcde"), 1, 3, -1);
+ test(S("abcde"), 0, 4, S("abcde"), 1, 4, -1);
+ test(S("abcde"), 0, 4, S("abcde"), 1, 5, -1);
+ test(S("abcde"), 0, 4, S("abcde"), 2, 0, 4);
+ test(S("abcde"), 0, 4, S("abcde"), 2, 1, -2);
+ test(S("abcde"), 0, 4, S("abcde"), 2, 2, -2);
+ test(S("abcde"), 0, 4, S("abcde"), 2, 3, -2);
+ test(S("abcde"), 0, 4, S("abcde"), 2, 4, -2);
+ test(S("abcde"), 0, 4, S("abcde"), 4, 0, 4);
+ test(S("abcde"), 0, 4, S("abcde"), 4, 1, -4);
+ test(S("abcde"), 0, 4, S("abcde"), 4, 2, -4);
+ test(S("abcde"), 0, 4, S("abcde"), 5, 0, 4);
+ test(S("abcde"), 0, 4, S("abcde"), 5, 1, 4);
+ test(S("abcde"), 0, 4, S("abcde"), 6, 0, 0);
+ test(S("abcde"), 0, 4, S("abcdefghij"), 0, 0, 4);
+ test(S("abcde"), 0, 4, S("abcdefghij"), 0, 1, 3);
+ test(S("abcde"), 0, 4, S("abcdefghij"), 0, 5, -1);
+ test(S("abcde"), 0, 4, S("abcdefghij"), 0, 9, -5);
+ test(S("abcde"), 0, 4, S("abcdefghij"), 0, 10, -6);
+ test(S("abcde"), 0, 4, S("abcdefghij"), 0, 11, -6);
+ test(S("abcde"), 0, 4, S("abcdefghij"), 1, 0, 4);
+ test(S("abcde"), 0, 4, S("abcdefghij"), 1, 1, -1);
+ test(S("abcde"), 0, 4, S("abcdefghij"), 1, 4, -1);
+ test(S("abcde"), 0, 4, S("abcdefghij"), 1, 8, -1);
+ test(S("abcde"), 0, 4, S("abcdefghij"), 1, 9, -1);
+ test(S("abcde"), 0, 4, S("abcdefghij"), 1, 10, -1);
+ test(S("abcde"), 0, 4, S("abcdefghij"), 5, 0, 4);
+ test(S("abcde"), 0, 4, S("abcdefghij"), 5, 1, -5);
+ test(S("abcde"), 0, 4, S("abcdefghij"), 5, 2, -5);
+ test(S("abcde"), 0, 4, S("abcdefghij"), 5, 4, -5);
+ test(S("abcde"), 0, 4, S("abcdefghij"), 5, 5, -5);
+ test(S("abcde"), 0, 4, S("abcdefghij"), 5, 6, -5);
+ test(S("abcde"), 0, 4, S("abcdefghij"), 9, 0, 4);
+ test(S("abcde"), 0, 4, S("abcdefghij"), 9, 1, -9);
+ test(S("abcde"), 0, 4, S("abcdefghij"), 9, 2, -9);
+ test(S("abcde"), 0, 4, S("abcdefghij"), 10, 0, 4);
+ test(S("abcde"), 0, 4, S("abcdefghij"), 10, 1, 4);
+ test(S("abcde"), 0, 4, S("abcdefghij"), 11, 0, 0);
+ test(S("abcde"), 0, 4, S("abcdefghijklmnopqrst"), 0, 0, 4);
+ test(S("abcde"), 0, 4, S("abcdefghijklmnopqrst"), 0, 1, 3);
+ test(S("abcde"), 0, 4, S("abcdefghijklmnopqrst"), 0, 10, -6);
+ test(S("abcde"), 0, 4, S("abcdefghijklmnopqrst"), 0, 19, -15);
+ test(S("abcde"), 0, 4, S("abcdefghijklmnopqrst"), 0, 20, -16);
+ test(S("abcde"), 0, 4, S("abcdefghijklmnopqrst"), 0, 21, -16);
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test5()
-{
- test(S("abcde"), 0, 4, S("abcdefghijklmnopqrst"), 1, 0, 4);
- test(S("abcde"), 0, 4, S("abcdefghijklmnopqrst"), 1, 1, -1);
- test(S("abcde"), 0, 4, S("abcdefghijklmnopqrst"), 1, 9, -1);
- test(S("abcde"), 0, 4, S("abcdefghijklmnopqrst"), 1, 18, -1);
- test(S("abcde"), 0, 4, S("abcdefghijklmnopqrst"), 1, 19, -1);
- test(S("abcde"), 0, 4, S("abcdefghijklmnopqrst"), 1, 20, -1);
- test(S("abcde"), 0, 4, S("abcdefghijklmnopqrst"), 10, 0, 4);
- test(S("abcde"), 0, 4, S("abcdefghijklmnopqrst"), 10, 1, -10);
- test(S("abcde"), 0, 4, S("abcdefghijklmnopqrst"), 10, 5, -10);
- test(S("abcde"), 0, 4, S("abcdefghijklmnopqrst"), 10, 9, -10);
- test(S("abcde"), 0, 4, S("abcdefghijklmnopqrst"), 10, 10, -10);
- test(S("abcde"), 0, 4, S("abcdefghijklmnopqrst"), 10, 11, -10);
- test(S("abcde"), 0, 4, S("abcdefghijklmnopqrst"), 19, 0, 4);
- test(S("abcde"), 0, 4, S("abcdefghijklmnopqrst"), 19, 1, -19);
- test(S("abcde"), 0, 4, S("abcdefghijklmnopqrst"), 19, 2, -19);
- test(S("abcde"), 0, 4, S("abcdefghijklmnopqrst"), 20, 0, 4);
- test(S("abcde"), 0, 4, S("abcdefghijklmnopqrst"), 20, 1, 4);
- test(S("abcde"), 0, 4, S("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcde"), 0, 5, S(""), 0, 0, 5);
- test(S("abcde"), 0, 5, S(""), 0, 1, 5);
- test(S("abcde"), 0, 5, S(""), 1, 0, 0);
- test(S("abcde"), 0, 5, S("abcde"), 0, 0, 5);
- test(S("abcde"), 0, 5, S("abcde"), 0, 1, 4);
- test(S("abcde"), 0, 5, S("abcde"), 0, 2, 3);
- test(S("abcde"), 0, 5, S("abcde"), 0, 4, 1);
- test(S("abcde"), 0, 5, S("abcde"), 0, 5, 0);
- test(S("abcde"), 0, 5, S("abcde"), 0, 6, 0);
- test(S("abcde"), 0, 5, S("abcde"), 1, 0, 5);
- test(S("abcde"), 0, 5, S("abcde"), 1, 1, -1);
- test(S("abcde"), 0, 5, S("abcde"), 1, 2, -1);
- test(S("abcde"), 0, 5, S("abcde"), 1, 3, -1);
- test(S("abcde"), 0, 5, S("abcde"), 1, 4, -1);
- test(S("abcde"), 0, 5, S("abcde"), 1, 5, -1);
- test(S("abcde"), 0, 5, S("abcde"), 2, 0, 5);
- test(S("abcde"), 0, 5, S("abcde"), 2, 1, -2);
- test(S("abcde"), 0, 5, S("abcde"), 2, 2, -2);
- test(S("abcde"), 0, 5, S("abcde"), 2, 3, -2);
- test(S("abcde"), 0, 5, S("abcde"), 2, 4, -2);
- test(S("abcde"), 0, 5, S("abcde"), 4, 0, 5);
- test(S("abcde"), 0, 5, S("abcde"), 4, 1, -4);
- test(S("abcde"), 0, 5, S("abcde"), 4, 2, -4);
- test(S("abcde"), 0, 5, S("abcde"), 5, 0, 5);
- test(S("abcde"), 0, 5, S("abcde"), 5, 1, 5);
- test(S("abcde"), 0, 5, S("abcde"), 6, 0, 0);
- test(S("abcde"), 0, 5, S("abcdefghij"), 0, 0, 5);
- test(S("abcde"), 0, 5, S("abcdefghij"), 0, 1, 4);
- test(S("abcde"), 0, 5, S("abcdefghij"), 0, 5, 0);
- test(S("abcde"), 0, 5, S("abcdefghij"), 0, 9, -4);
- test(S("abcde"), 0, 5, S("abcdefghij"), 0, 10, -5);
- test(S("abcde"), 0, 5, S("abcdefghij"), 0, 11, -5);
- test(S("abcde"), 0, 5, S("abcdefghij"), 1, 0, 5);
- test(S("abcde"), 0, 5, S("abcdefghij"), 1, 1, -1);
- test(S("abcde"), 0, 5, S("abcdefghij"), 1, 4, -1);
- test(S("abcde"), 0, 5, S("abcdefghij"), 1, 8, -1);
- test(S("abcde"), 0, 5, S("abcdefghij"), 1, 9, -1);
- test(S("abcde"), 0, 5, S("abcdefghij"), 1, 10, -1);
- test(S("abcde"), 0, 5, S("abcdefghij"), 5, 0, 5);
- test(S("abcde"), 0, 5, S("abcdefghij"), 5, 1, -5);
- test(S("abcde"), 0, 5, S("abcdefghij"), 5, 2, -5);
- test(S("abcde"), 0, 5, S("abcdefghij"), 5, 4, -5);
- test(S("abcde"), 0, 5, S("abcdefghij"), 5, 5, -5);
- test(S("abcde"), 0, 5, S("abcdefghij"), 5, 6, -5);
- test(S("abcde"), 0, 5, S("abcdefghij"), 9, 0, 5);
- test(S("abcde"), 0, 5, S("abcdefghij"), 9, 1, -9);
- test(S("abcde"), 0, 5, S("abcdefghij"), 9, 2, -9);
- test(S("abcde"), 0, 5, S("abcdefghij"), 10, 0, 5);
- test(S("abcde"), 0, 5, S("abcdefghij"), 10, 1, 5);
- test(S("abcde"), 0, 5, S("abcdefghij"), 11, 0, 0);
- test(S("abcde"), 0, 5, S("abcdefghijklmnopqrst"), 0, 0, 5);
- test(S("abcde"), 0, 5, S("abcdefghijklmnopqrst"), 0, 1, 4);
- test(S("abcde"), 0, 5, S("abcdefghijklmnopqrst"), 0, 10, -5);
- test(S("abcde"), 0, 5, S("abcdefghijklmnopqrst"), 0, 19, -14);
- test(S("abcde"), 0, 5, S("abcdefghijklmnopqrst"), 0, 20, -15);
- test(S("abcde"), 0, 5, S("abcdefghijklmnopqrst"), 0, 21, -15);
- test(S("abcde"), 0, 5, S("abcdefghijklmnopqrst"), 1, 0, 5);
- test(S("abcde"), 0, 5, S("abcdefghijklmnopqrst"), 1, 1, -1);
- test(S("abcde"), 0, 5, S("abcdefghijklmnopqrst"), 1, 9, -1);
- test(S("abcde"), 0, 5, S("abcdefghijklmnopqrst"), 1, 18, -1);
- test(S("abcde"), 0, 5, S("abcdefghijklmnopqrst"), 1, 19, -1);
- test(S("abcde"), 0, 5, S("abcdefghijklmnopqrst"), 1, 20, -1);
- test(S("abcde"), 0, 5, S("abcdefghijklmnopqrst"), 10, 0, 5);
- test(S("abcde"), 0, 5, S("abcdefghijklmnopqrst"), 10, 1, -10);
- test(S("abcde"), 0, 5, S("abcdefghijklmnopqrst"), 10, 5, -10);
- test(S("abcde"), 0, 5, S("abcdefghijklmnopqrst"), 10, 9, -10);
- test(S("abcde"), 0, 5, S("abcdefghijklmnopqrst"), 10, 10, -10);
- test(S("abcde"), 0, 5, S("abcdefghijklmnopqrst"), 10, 11, -10);
- test(S("abcde"), 0, 5, S("abcdefghijklmnopqrst"), 19, 0, 5);
- test(S("abcde"), 0, 5, S("abcdefghijklmnopqrst"), 19, 1, -19);
- test(S("abcde"), 0, 5, S("abcdefghijklmnopqrst"), 19, 2, -19);
- test(S("abcde"), 0, 5, S("abcdefghijklmnopqrst"), 20, 0, 5);
- test(S("abcde"), 0, 5, S("abcdefghijklmnopqrst"), 20, 1, 5);
- test(S("abcde"), 0, 5, S("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcde"), 0, 6, S(""), 0, 0, 5);
- test(S("abcde"), 0, 6, S(""), 0, 1, 5);
- test(S("abcde"), 0, 6, S(""), 1, 0, 0);
- test(S("abcde"), 0, 6, S("abcde"), 0, 0, 5);
- test(S("abcde"), 0, 6, S("abcde"), 0, 1, 4);
- test(S("abcde"), 0, 6, S("abcde"), 0, 2, 3);
- test(S("abcde"), 0, 6, S("abcde"), 0, 4, 1);
- test(S("abcde"), 0, 6, S("abcde"), 0, 5, 0);
+TEST_CONSTEXPR_CXX20 bool test5() {
+ test(S("abcde"), 0, 4, S("abcdefghijklmnopqrst"), 1, 0, 4);
+ test(S("abcde"), 0, 4, S("abcdefghijklmnopqrst"), 1, 1, -1);
+ test(S("abcde"), 0, 4, S("abcdefghijklmnopqrst"), 1, 9, -1);
+ test(S("abcde"), 0, 4, S("abcdefghijklmnopqrst"), 1, 18, -1);
+ test(S("abcde"), 0, 4, S("abcdefghijklmnopqrst"), 1, 19, -1);
+ test(S("abcde"), 0, 4, S("abcdefghijklmnopqrst"), 1, 20, -1);
+ test(S("abcde"), 0, 4, S("abcdefghijklmnopqrst"), 10, 0, 4);
+ test(S("abcde"), 0, 4, S("abcdefghijklmnopqrst"), 10, 1, -10);
+ test(S("abcde"), 0, 4, S("abcdefghijklmnopqrst"), 10, 5, -10);
+ test(S("abcde"), 0, 4, S("abcdefghijklmnopqrst"), 10, 9, -10);
+ test(S("abcde"), 0, 4, S("abcdefghijklmnopqrst"), 10, 10, -10);
+ test(S("abcde"), 0, 4, S("abcdefghijklmnopqrst"), 10, 11, -10);
+ test(S("abcde"), 0, 4, S("abcdefghijklmnopqrst"), 19, 0, 4);
+ test(S("abcde"), 0, 4, S("abcdefghijklmnopqrst"), 19, 1, -19);
+ test(S("abcde"), 0, 4, S("abcdefghijklmnopqrst"), 19, 2, -19);
+ test(S("abcde"), 0, 4, S("abcdefghijklmnopqrst"), 20, 0, 4);
+ test(S("abcde"), 0, 4, S("abcdefghijklmnopqrst"), 20, 1, 4);
+ test(S("abcde"), 0, 4, S("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcde"), 0, 5, S(""), 0, 0, 5);
+ test(S("abcde"), 0, 5, S(""), 0, 1, 5);
+ test(S("abcde"), 0, 5, S(""), 1, 0, 0);
+ test(S("abcde"), 0, 5, S("abcde"), 0, 0, 5);
+ test(S("abcde"), 0, 5, S("abcde"), 0, 1, 4);
+ test(S("abcde"), 0, 5, S("abcde"), 0, 2, 3);
+ test(S("abcde"), 0, 5, S("abcde"), 0, 4, 1);
+ test(S("abcde"), 0, 5, S("abcde"), 0, 5, 0);
+ test(S("abcde"), 0, 5, S("abcde"), 0, 6, 0);
+ test(S("abcde"), 0, 5, S("abcde"), 1, 0, 5);
+ test(S("abcde"), 0, 5, S("abcde"), 1, 1, -1);
+ test(S("abcde"), 0, 5, S("abcde"), 1, 2, -1);
+ test(S("abcde"), 0, 5, S("abcde"), 1, 3, -1);
+ test(S("abcde"), 0, 5, S("abcde"), 1, 4, -1);
+ test(S("abcde"), 0, 5, S("abcde"), 1, 5, -1);
+ test(S("abcde"), 0, 5, S("abcde"), 2, 0, 5);
+ test(S("abcde"), 0, 5, S("abcde"), 2, 1, -2);
+ test(S("abcde"), 0, 5, S("abcde"), 2, 2, -2);
+ test(S("abcde"), 0, 5, S("abcde"), 2, 3, -2);
+ test(S("abcde"), 0, 5, S("abcde"), 2, 4, -2);
+ test(S("abcde"), 0, 5, S("abcde"), 4, 0, 5);
+ test(S("abcde"), 0, 5, S("abcde"), 4, 1, -4);
+ test(S("abcde"), 0, 5, S("abcde"), 4, 2, -4);
+ test(S("abcde"), 0, 5, S("abcde"), 5, 0, 5);
+ test(S("abcde"), 0, 5, S("abcde"), 5, 1, 5);
+ test(S("abcde"), 0, 5, S("abcde"), 6, 0, 0);
+ test(S("abcde"), 0, 5, S("abcdefghij"), 0, 0, 5);
+ test(S("abcde"), 0, 5, S("abcdefghij"), 0, 1, 4);
+ test(S("abcde"), 0, 5, S("abcdefghij"), 0, 5, 0);
+ test(S("abcde"), 0, 5, S("abcdefghij"), 0, 9, -4);
+ test(S("abcde"), 0, 5, S("abcdefghij"), 0, 10, -5);
+ test(S("abcde"), 0, 5, S("abcdefghij"), 0, 11, -5);
+ test(S("abcde"), 0, 5, S("abcdefghij"), 1, 0, 5);
+ test(S("abcde"), 0, 5, S("abcdefghij"), 1, 1, -1);
+ test(S("abcde"), 0, 5, S("abcdefghij"), 1, 4, -1);
+ test(S("abcde"), 0, 5, S("abcdefghij"), 1, 8, -1);
+ test(S("abcde"), 0, 5, S("abcdefghij"), 1, 9, -1);
+ test(S("abcde"), 0, 5, S("abcdefghij"), 1, 10, -1);
+ test(S("abcde"), 0, 5, S("abcdefghij"), 5, 0, 5);
+ test(S("abcde"), 0, 5, S("abcdefghij"), 5, 1, -5);
+ test(S("abcde"), 0, 5, S("abcdefghij"), 5, 2, -5);
+ test(S("abcde"), 0, 5, S("abcdefghij"), 5, 4, -5);
+ test(S("abcde"), 0, 5, S("abcdefghij"), 5, 5, -5);
+ test(S("abcde"), 0, 5, S("abcdefghij"), 5, 6, -5);
+ test(S("abcde"), 0, 5, S("abcdefghij"), 9, 0, 5);
+ test(S("abcde"), 0, 5, S("abcdefghij"), 9, 1, -9);
+ test(S("abcde"), 0, 5, S("abcdefghij"), 9, 2, -9);
+ test(S("abcde"), 0, 5, S("abcdefghij"), 10, 0, 5);
+ test(S("abcde"), 0, 5, S("abcdefghij"), 10, 1, 5);
+ test(S("abcde"), 0, 5, S("abcdefghij"), 11, 0, 0);
+ test(S("abcde"), 0, 5, S("abcdefghijklmnopqrst"), 0, 0, 5);
+ test(S("abcde"), 0, 5, S("abcdefghijklmnopqrst"), 0, 1, 4);
+ test(S("abcde"), 0, 5, S("abcdefghijklmnopqrst"), 0, 10, -5);
+ test(S("abcde"), 0, 5, S("abcdefghijklmnopqrst"), 0, 19, -14);
+ test(S("abcde"), 0, 5, S("abcdefghijklmnopqrst"), 0, 20, -15);
+ test(S("abcde"), 0, 5, S("abcdefghijklmnopqrst"), 0, 21, -15);
+ test(S("abcde"), 0, 5, S("abcdefghijklmnopqrst"), 1, 0, 5);
+ test(S("abcde"), 0, 5, S("abcdefghijklmnopqrst"), 1, 1, -1);
+ test(S("abcde"), 0, 5, S("abcdefghijklmnopqrst"), 1, 9, -1);
+ test(S("abcde"), 0, 5, S("abcdefghijklmnopqrst"), 1, 18, -1);
+ test(S("abcde"), 0, 5, S("abcdefghijklmnopqrst"), 1, 19, -1);
+ test(S("abcde"), 0, 5, S("abcdefghijklmnopqrst"), 1, 20, -1);
+ test(S("abcde"), 0, 5, S("abcdefghijklmnopqrst"), 10, 0, 5);
+ test(S("abcde"), 0, 5, S("abcdefghijklmnopqrst"), 10, 1, -10);
+ test(S("abcde"), 0, 5, S("abcdefghijklmnopqrst"), 10, 5, -10);
+ test(S("abcde"), 0, 5, S("abcdefghijklmnopqrst"), 10, 9, -10);
+ test(S("abcde"), 0, 5, S("abcdefghijklmnopqrst"), 10, 10, -10);
+ test(S("abcde"), 0, 5, S("abcdefghijklmnopqrst"), 10, 11, -10);
+ test(S("abcde"), 0, 5, S("abcdefghijklmnopqrst"), 19, 0, 5);
+ test(S("abcde"), 0, 5, S("abcdefghijklmnopqrst"), 19, 1, -19);
+ test(S("abcde"), 0, 5, S("abcdefghijklmnopqrst"), 19, 2, -19);
+ test(S("abcde"), 0, 5, S("abcdefghijklmnopqrst"), 20, 0, 5);
+ test(S("abcde"), 0, 5, S("abcdefghijklmnopqrst"), 20, 1, 5);
+ test(S("abcde"), 0, 5, S("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcde"), 0, 6, S(""), 0, 0, 5);
+ test(S("abcde"), 0, 6, S(""), 0, 1, 5);
+ test(S("abcde"), 0, 6, S(""), 1, 0, 0);
+ test(S("abcde"), 0, 6, S("abcde"), 0, 0, 5);
+ test(S("abcde"), 0, 6, S("abcde"), 0, 1, 4);
+ test(S("abcde"), 0, 6, S("abcde"), 0, 2, 3);
+ test(S("abcde"), 0, 6, S("abcde"), 0, 4, 1);
+ test(S("abcde"), 0, 6, S("abcde"), 0, 5, 0);
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test6()
-{
- test(S("abcde"), 0, 6, S("abcde"), 0, 6, 0);
- test(S("abcde"), 0, 6, S("abcde"), 1, 0, 5);
- test(S("abcde"), 0, 6, S("abcde"), 1, 1, -1);
- test(S("abcde"), 0, 6, S("abcde"), 1, 2, -1);
- test(S("abcde"), 0, 6, S("abcde"), 1, 3, -1);
- test(S("abcde"), 0, 6, S("abcde"), 1, 4, -1);
- test(S("abcde"), 0, 6, S("abcde"), 1, 5, -1);
- test(S("abcde"), 0, 6, S("abcde"), 2, 0, 5);
- test(S("abcde"), 0, 6, S("abcde"), 2, 1, -2);
- test(S("abcde"), 0, 6, S("abcde"), 2, 2, -2);
- test(S("abcde"), 0, 6, S("abcde"), 2, 3, -2);
- test(S("abcde"), 0, 6, S("abcde"), 2, 4, -2);
- test(S("abcde"), 0, 6, S("abcde"), 4, 0, 5);
- test(S("abcde"), 0, 6, S("abcde"), 4, 1, -4);
- test(S("abcde"), 0, 6, S("abcde"), 4, 2, -4);
- test(S("abcde"), 0, 6, S("abcde"), 5, 0, 5);
- test(S("abcde"), 0, 6, S("abcde"), 5, 1, 5);
- test(S("abcde"), 0, 6, S("abcde"), 6, 0, 0);
- test(S("abcde"), 0, 6, S("abcdefghij"), 0, 0, 5);
- test(S("abcde"), 0, 6, S("abcdefghij"), 0, 1, 4);
- test(S("abcde"), 0, 6, S("abcdefghij"), 0, 5, 0);
- test(S("abcde"), 0, 6, S("abcdefghij"), 0, 9, -4);
- test(S("abcde"), 0, 6, S("abcdefghij"), 0, 10, -5);
- test(S("abcde"), 0, 6, S("abcdefghij"), 0, 11, -5);
- test(S("abcde"), 0, 6, S("abcdefghij"), 1, 0, 5);
- test(S("abcde"), 0, 6, S("abcdefghij"), 1, 1, -1);
- test(S("abcde"), 0, 6, S("abcdefghij"), 1, 4, -1);
- test(S("abcde"), 0, 6, S("abcdefghij"), 1, 8, -1);
- test(S("abcde"), 0, 6, S("abcdefghij"), 1, 9, -1);
- test(S("abcde"), 0, 6, S("abcdefghij"), 1, 10, -1);
- test(S("abcde"), 0, 6, S("abcdefghij"), 5, 0, 5);
- test(S("abcde"), 0, 6, S("abcdefghij"), 5, 1, -5);
- test(S("abcde"), 0, 6, S("abcdefghij"), 5, 2, -5);
- test(S("abcde"), 0, 6, S("abcdefghij"), 5, 4, -5);
- test(S("abcde"), 0, 6, S("abcdefghij"), 5, 5, -5);
- test(S("abcde"), 0, 6, S("abcdefghij"), 5, 6, -5);
- test(S("abcde"), 0, 6, S("abcdefghij"), 9, 0, 5);
- test(S("abcde"), 0, 6, S("abcdefghij"), 9, 1, -9);
- test(S("abcde"), 0, 6, S("abcdefghij"), 9, 2, -9);
- test(S("abcde"), 0, 6, S("abcdefghij"), 10, 0, 5);
- test(S("abcde"), 0, 6, S("abcdefghij"), 10, 1, 5);
- test(S("abcde"), 0, 6, S("abcdefghij"), 11, 0, 0);
- test(S("abcde"), 0, 6, S("abcdefghijklmnopqrst"), 0, 0, 5);
- test(S("abcde"), 0, 6, S("abcdefghijklmnopqrst"), 0, 1, 4);
- test(S("abcde"), 0, 6, S("abcdefghijklmnopqrst"), 0, 10, -5);
- test(S("abcde"), 0, 6, S("abcdefghijklmnopqrst"), 0, 19, -14);
- test(S("abcde"), 0, 6, S("abcdefghijklmnopqrst"), 0, 20, -15);
- test(S("abcde"), 0, 6, S("abcdefghijklmnopqrst"), 0, 21, -15);
- test(S("abcde"), 0, 6, S("abcdefghijklmnopqrst"), 1, 0, 5);
- test(S("abcde"), 0, 6, S("abcdefghijklmnopqrst"), 1, 1, -1);
- test(S("abcde"), 0, 6, S("abcdefghijklmnopqrst"), 1, 9, -1);
- test(S("abcde"), 0, 6, S("abcdefghijklmnopqrst"), 1, 18, -1);
- test(S("abcde"), 0, 6, S("abcdefghijklmnopqrst"), 1, 19, -1);
- test(S("abcde"), 0, 6, S("abcdefghijklmnopqrst"), 1, 20, -1);
- test(S("abcde"), 0, 6, S("abcdefghijklmnopqrst"), 10, 0, 5);
- test(S("abcde"), 0, 6, S("abcdefghijklmnopqrst"), 10, 1, -10);
- test(S("abcde"), 0, 6, S("abcdefghijklmnopqrst"), 10, 5, -10);
- test(S("abcde"), 0, 6, S("abcdefghijklmnopqrst"), 10, 9, -10);
- test(S("abcde"), 0, 6, S("abcdefghijklmnopqrst"), 10, 10, -10);
- test(S("abcde"), 0, 6, S("abcdefghijklmnopqrst"), 10, 11, -10);
- test(S("abcde"), 0, 6, S("abcdefghijklmnopqrst"), 19, 0, 5);
- test(S("abcde"), 0, 6, S("abcdefghijklmnopqrst"), 19, 1, -19);
- test(S("abcde"), 0, 6, S("abcdefghijklmnopqrst"), 19, 2, -19);
- test(S("abcde"), 0, 6, S("abcdefghijklmnopqrst"), 20, 0, 5);
- test(S("abcde"), 0, 6, S("abcdefghijklmnopqrst"), 20, 1, 5);
- test(S("abcde"), 0, 6, S("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcde"), 1, 0, S(""), 0, 0, 0);
- test(S("abcde"), 1, 0, S(""), 0, 1, 0);
- test(S("abcde"), 1, 0, S(""), 1, 0, 0);
- test(S("abcde"), 1, 0, S("abcde"), 0, 0, 0);
- test(S("abcde"), 1, 0, S("abcde"), 0, 1, -1);
- test(S("abcde"), 1, 0, S("abcde"), 0, 2, -2);
- test(S("abcde"), 1, 0, S("abcde"), 0, 4, -4);
- test(S("abcde"), 1, 0, S("abcde"), 0, 5, -5);
- test(S("abcde"), 1, 0, S("abcde"), 0, 6, -5);
- test(S("abcde"), 1, 0, S("abcde"), 1, 0, 0);
- test(S("abcde"), 1, 0, S("abcde"), 1, 1, -1);
- test(S("abcde"), 1, 0, S("abcde"), 1, 2, -2);
- test(S("abcde"), 1, 0, S("abcde"), 1, 3, -3);
- test(S("abcde"), 1, 0, S("abcde"), 1, 4, -4);
- test(S("abcde"), 1, 0, S("abcde"), 1, 5, -4);
- test(S("abcde"), 1, 0, S("abcde"), 2, 0, 0);
- test(S("abcde"), 1, 0, S("abcde"), 2, 1, -1);
- test(S("abcde"), 1, 0, S("abcde"), 2, 2, -2);
- test(S("abcde"), 1, 0, S("abcde"), 2, 3, -3);
- test(S("abcde"), 1, 0, S("abcde"), 2, 4, -3);
- test(S("abcde"), 1, 0, S("abcde"), 4, 0, 0);
- test(S("abcde"), 1, 0, S("abcde"), 4, 1, -1);
- test(S("abcde"), 1, 0, S("abcde"), 4, 2, -1);
- test(S("abcde"), 1, 0, S("abcde"), 5, 0, 0);
- test(S("abcde"), 1, 0, S("abcde"), 5, 1, 0);
- test(S("abcde"), 1, 0, S("abcde"), 6, 0, 0);
- test(S("abcde"), 1, 0, S("abcdefghij"), 0, 0, 0);
- test(S("abcde"), 1, 0, S("abcdefghij"), 0, 1, -1);
- test(S("abcde"), 1, 0, S("abcdefghij"), 0, 5, -5);
- test(S("abcde"), 1, 0, S("abcdefghij"), 0, 9, -9);
- test(S("abcde"), 1, 0, S("abcdefghij"), 0, 10, -10);
- test(S("abcde"), 1, 0, S("abcdefghij"), 0, 11, -10);
- test(S("abcde"), 1, 0, S("abcdefghij"), 1, 0, 0);
- test(S("abcde"), 1, 0, S("abcdefghij"), 1, 1, -1);
+TEST_CONSTEXPR_CXX20 bool test6() {
+ test(S("abcde"), 0, 6, S("abcde"), 0, 6, 0);
+ test(S("abcde"), 0, 6, S("abcde"), 1, 0, 5);
+ test(S("abcde"), 0, 6, S("abcde"), 1, 1, -1);
+ test(S("abcde"), 0, 6, S("abcde"), 1, 2, -1);
+ test(S("abcde"), 0, 6, S("abcde"), 1, 3, -1);
+ test(S("abcde"), 0, 6, S("abcde"), 1, 4, -1);
+ test(S("abcde"), 0, 6, S("abcde"), 1, 5, -1);
+ test(S("abcde"), 0, 6, S("abcde"), 2, 0, 5);
+ test(S("abcde"), 0, 6, S("abcde"), 2, 1, -2);
+ test(S("abcde"), 0, 6, S("abcde"), 2, 2, -2);
+ test(S("abcde"), 0, 6, S("abcde"), 2, 3, -2);
+ test(S("abcde"), 0, 6, S("abcde"), 2, 4, -2);
+ test(S("abcde"), 0, 6, S("abcde"), 4, 0, 5);
+ test(S("abcde"), 0, 6, S("abcde"), 4, 1, -4);
+ test(S("abcde"), 0, 6, S("abcde"), 4, 2, -4);
+ test(S("abcde"), 0, 6, S("abcde"), 5, 0, 5);
+ test(S("abcde"), 0, 6, S("abcde"), 5, 1, 5);
+ test(S("abcde"), 0, 6, S("abcde"), 6, 0, 0);
+ test(S("abcde"), 0, 6, S("abcdefghij"), 0, 0, 5);
+ test(S("abcde"), 0, 6, S("abcdefghij"), 0, 1, 4);
+ test(S("abcde"), 0, 6, S("abcdefghij"), 0, 5, 0);
+ test(S("abcde"), 0, 6, S("abcdefghij"), 0, 9, -4);
+ test(S("abcde"), 0, 6, S("abcdefghij"), 0, 10, -5);
+ test(S("abcde"), 0, 6, S("abcdefghij"), 0, 11, -5);
+ test(S("abcde"), 0, 6, S("abcdefghij"), 1, 0, 5);
+ test(S("abcde"), 0, 6, S("abcdefghij"), 1, 1, -1);
+ test(S("abcde"), 0, 6, S("abcdefghij"), 1, 4, -1);
+ test(S("abcde"), 0, 6, S("abcdefghij"), 1, 8, -1);
+ test(S("abcde"), 0, 6, S("abcdefghij"), 1, 9, -1);
+ test(S("abcde"), 0, 6, S("abcdefghij"), 1, 10, -1);
+ test(S("abcde"), 0, 6, S("abcdefghij"), 5, 0, 5);
+ test(S("abcde"), 0, 6, S("abcdefghij"), 5, 1, -5);
+ test(S("abcde"), 0, 6, S("abcdefghij"), 5, 2, -5);
+ test(S("abcde"), 0, 6, S("abcdefghij"), 5, 4, -5);
+ test(S("abcde"), 0, 6, S("abcdefghij"), 5, 5, -5);
+ test(S("abcde"), 0, 6, S("abcdefghij"), 5, 6, -5);
+ test(S("abcde"), 0, 6, S("abcdefghij"), 9, 0, 5);
+ test(S("abcde"), 0, 6, S("abcdefghij"), 9, 1, -9);
+ test(S("abcde"), 0, 6, S("abcdefghij"), 9, 2, -9);
+ test(S("abcde"), 0, 6, S("abcdefghij"), 10, 0, 5);
+ test(S("abcde"), 0, 6, S("abcdefghij"), 10, 1, 5);
+ test(S("abcde"), 0, 6, S("abcdefghij"), 11, 0, 0);
+ test(S("abcde"), 0, 6, S("abcdefghijklmnopqrst"), 0, 0, 5);
+ test(S("abcde"), 0, 6, S("abcdefghijklmnopqrst"), 0, 1, 4);
+ test(S("abcde"), 0, 6, S("abcdefghijklmnopqrst"), 0, 10, -5);
+ test(S("abcde"), 0, 6, S("abcdefghijklmnopqrst"), 0, 19, -14);
+ test(S("abcde"), 0, 6, S("abcdefghijklmnopqrst"), 0, 20, -15);
+ test(S("abcde"), 0, 6, S("abcdefghijklmnopqrst"), 0, 21, -15);
+ test(S("abcde"), 0, 6, S("abcdefghijklmnopqrst"), 1, 0, 5);
+ test(S("abcde"), 0, 6, S("abcdefghijklmnopqrst"), 1, 1, -1);
+ test(S("abcde"), 0, 6, S("abcdefghijklmnopqrst"), 1, 9, -1);
+ test(S("abcde"), 0, 6, S("abcdefghijklmnopqrst"), 1, 18, -1);
+ test(S("abcde"), 0, 6, S("abcdefghijklmnopqrst"), 1, 19, -1);
+ test(S("abcde"), 0, 6, S("abcdefghijklmnopqrst"), 1, 20, -1);
+ test(S("abcde"), 0, 6, S("abcdefghijklmnopqrst"), 10, 0, 5);
+ test(S("abcde"), 0, 6, S("abcdefghijklmnopqrst"), 10, 1, -10);
+ test(S("abcde"), 0, 6, S("abcdefghijklmnopqrst"), 10, 5, -10);
+ test(S("abcde"), 0, 6, S("abcdefghijklmnopqrst"), 10, 9, -10);
+ test(S("abcde"), 0, 6, S("abcdefghijklmnopqrst"), 10, 10, -10);
+ test(S("abcde"), 0, 6, S("abcdefghijklmnopqrst"), 10, 11, -10);
+ test(S("abcde"), 0, 6, S("abcdefghijklmnopqrst"), 19, 0, 5);
+ test(S("abcde"), 0, 6, S("abcdefghijklmnopqrst"), 19, 1, -19);
+ test(S("abcde"), 0, 6, S("abcdefghijklmnopqrst"), 19, 2, -19);
+ test(S("abcde"), 0, 6, S("abcdefghijklmnopqrst"), 20, 0, 5);
+ test(S("abcde"), 0, 6, S("abcdefghijklmnopqrst"), 20, 1, 5);
+ test(S("abcde"), 0, 6, S("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcde"), 1, 0, S(""), 0, 0, 0);
+ test(S("abcde"), 1, 0, S(""), 0, 1, 0);
+ test(S("abcde"), 1, 0, S(""), 1, 0, 0);
+ test(S("abcde"), 1, 0, S("abcde"), 0, 0, 0);
+ test(S("abcde"), 1, 0, S("abcde"), 0, 1, -1);
+ test(S("abcde"), 1, 0, S("abcde"), 0, 2, -2);
+ test(S("abcde"), 1, 0, S("abcde"), 0, 4, -4);
+ test(S("abcde"), 1, 0, S("abcde"), 0, 5, -5);
+ test(S("abcde"), 1, 0, S("abcde"), 0, 6, -5);
+ test(S("abcde"), 1, 0, S("abcde"), 1, 0, 0);
+ test(S("abcde"), 1, 0, S("abcde"), 1, 1, -1);
+ test(S("abcde"), 1, 0, S("abcde"), 1, 2, -2);
+ test(S("abcde"), 1, 0, S("abcde"), 1, 3, -3);
+ test(S("abcde"), 1, 0, S("abcde"), 1, 4, -4);
+ test(S("abcde"), 1, 0, S("abcde"), 1, 5, -4);
+ test(S("abcde"), 1, 0, S("abcde"), 2, 0, 0);
+ test(S("abcde"), 1, 0, S("abcde"), 2, 1, -1);
+ test(S("abcde"), 1, 0, S("abcde"), 2, 2, -2);
+ test(S("abcde"), 1, 0, S("abcde"), 2, 3, -3);
+ test(S("abcde"), 1, 0, S("abcde"), 2, 4, -3);
+ test(S("abcde"), 1, 0, S("abcde"), 4, 0, 0);
+ test(S("abcde"), 1, 0, S("abcde"), 4, 1, -1);
+ test(S("abcde"), 1, 0, S("abcde"), 4, 2, -1);
+ test(S("abcde"), 1, 0, S("abcde"), 5, 0, 0);
+ test(S("abcde"), 1, 0, S("abcde"), 5, 1, 0);
+ test(S("abcde"), 1, 0, S("abcde"), 6, 0, 0);
+ test(S("abcde"), 1, 0, S("abcdefghij"), 0, 0, 0);
+ test(S("abcde"), 1, 0, S("abcdefghij"), 0, 1, -1);
+ test(S("abcde"), 1, 0, S("abcdefghij"), 0, 5, -5);
+ test(S("abcde"), 1, 0, S("abcdefghij"), 0, 9, -9);
+ test(S("abcde"), 1, 0, S("abcdefghij"), 0, 10, -10);
+ test(S("abcde"), 1, 0, S("abcdefghij"), 0, 11, -10);
+ test(S("abcde"), 1, 0, S("abcdefghij"), 1, 0, 0);
+ test(S("abcde"), 1, 0, S("abcdefghij"), 1, 1, -1);
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test7()
-{
- test(S("abcde"), 1, 0, S("abcdefghij"), 1, 4, -4);
- test(S("abcde"), 1, 0, S("abcdefghij"), 1, 8, -8);
- test(S("abcde"), 1, 0, S("abcdefghij"), 1, 9, -9);
- test(S("abcde"), 1, 0, S("abcdefghij"), 1, 10, -9);
- test(S("abcde"), 1, 0, S("abcdefghij"), 5, 0, 0);
- test(S("abcde"), 1, 0, S("abcdefghij"), 5, 1, -1);
- test(S("abcde"), 1, 0, S("abcdefghij"), 5, 2, -2);
- test(S("abcde"), 1, 0, S("abcdefghij"), 5, 4, -4);
- test(S("abcde"), 1, 0, S("abcdefghij"), 5, 5, -5);
- test(S("abcde"), 1, 0, S("abcdefghij"), 5, 6, -5);
- test(S("abcde"), 1, 0, S("abcdefghij"), 9, 0, 0);
- test(S("abcde"), 1, 0, S("abcdefghij"), 9, 1, -1);
- test(S("abcde"), 1, 0, S("abcdefghij"), 9, 2, -1);
- test(S("abcde"), 1, 0, S("abcdefghij"), 10, 0, 0);
- test(S("abcde"), 1, 0, S("abcdefghij"), 10, 1, 0);
- test(S("abcde"), 1, 0, S("abcdefghij"), 11, 0, 0);
- test(S("abcde"), 1, 0, S("abcdefghijklmnopqrst"), 0, 0, 0);
- test(S("abcde"), 1, 0, S("abcdefghijklmnopqrst"), 0, 1, -1);
- test(S("abcde"), 1, 0, S("abcdefghijklmnopqrst"), 0, 10, -10);
- test(S("abcde"), 1, 0, S("abcdefghijklmnopqrst"), 0, 19, -19);
- test(S("abcde"), 1, 0, S("abcdefghijklmnopqrst"), 0, 20, -20);
- test(S("abcde"), 1, 0, S("abcdefghijklmnopqrst"), 0, 21, -20);
- test(S("abcde"), 1, 0, S("abcdefghijklmnopqrst"), 1, 0, 0);
- test(S("abcde"), 1, 0, S("abcdefghijklmnopqrst"), 1, 1, -1);
- test(S("abcde"), 1, 0, S("abcdefghijklmnopqrst"), 1, 9, -9);
- test(S("abcde"), 1, 0, S("abcdefghijklmnopqrst"), 1, 18, -18);
- test(S("abcde"), 1, 0, S("abcdefghijklmnopqrst"), 1, 19, -19);
- test(S("abcde"), 1, 0, S("abcdefghijklmnopqrst"), 1, 20, -19);
- test(S("abcde"), 1, 0, S("abcdefghijklmnopqrst"), 10, 0, 0);
- test(S("abcde"), 1, 0, S("abcdefghijklmnopqrst"), 10, 1, -1);
- test(S("abcde"), 1, 0, S("abcdefghijklmnopqrst"), 10, 5, -5);
- test(S("abcde"), 1, 0, S("abcdefghijklmnopqrst"), 10, 9, -9);
- test(S("abcde"), 1, 0, S("abcdefghijklmnopqrst"), 10, 10, -10);
- test(S("abcde"), 1, 0, S("abcdefghijklmnopqrst"), 10, 11, -10);
- test(S("abcde"), 1, 0, S("abcdefghijklmnopqrst"), 19, 0, 0);
- test(S("abcde"), 1, 0, S("abcdefghijklmnopqrst"), 19, 1, -1);
- test(S("abcde"), 1, 0, S("abcdefghijklmnopqrst"), 19, 2, -1);
- test(S("abcde"), 1, 0, S("abcdefghijklmnopqrst"), 20, 0, 0);
- test(S("abcde"), 1, 0, S("abcdefghijklmnopqrst"), 20, 1, 0);
- test(S("abcde"), 1, 0, S("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcde"), 1, 1, S(""), 0, 0, 1);
- test(S("abcde"), 1, 1, S(""), 0, 1, 1);
- test(S("abcde"), 1, 1, S(""), 1, 0, 0);
- test(S("abcde"), 1, 1, S("abcde"), 0, 0, 1);
- test(S("abcde"), 1, 1, S("abcde"), 0, 1, 1);
- test(S("abcde"), 1, 1, S("abcde"), 0, 2, 1);
- test(S("abcde"), 1, 1, S("abcde"), 0, 4, 1);
- test(S("abcde"), 1, 1, S("abcde"), 0, 5, 1);
- test(S("abcde"), 1, 1, S("abcde"), 0, 6, 1);
- test(S("abcde"), 1, 1, S("abcde"), 1, 0, 1);
- test(S("abcde"), 1, 1, S("abcde"), 1, 1, 0);
- test(S("abcde"), 1, 1, S("abcde"), 1, 2, -1);
- test(S("abcde"), 1, 1, S("abcde"), 1, 3, -2);
- test(S("abcde"), 1, 1, S("abcde"), 1, 4, -3);
- test(S("abcde"), 1, 1, S("abcde"), 1, 5, -3);
- test(S("abcde"), 1, 1, S("abcde"), 2, 0, 1);
- test(S("abcde"), 1, 1, S("abcde"), 2, 1, -1);
- test(S("abcde"), 1, 1, S("abcde"), 2, 2, -1);
- test(S("abcde"), 1, 1, S("abcde"), 2, 3, -1);
- test(S("abcde"), 1, 1, S("abcde"), 2, 4, -1);
- test(S("abcde"), 1, 1, S("abcde"), 4, 0, 1);
- test(S("abcde"), 1, 1, S("abcde"), 4, 1, -3);
- test(S("abcde"), 1, 1, S("abcde"), 4, 2, -3);
- test(S("abcde"), 1, 1, S("abcde"), 5, 0, 1);
- test(S("abcde"), 1, 1, S("abcde"), 5, 1, 1);
- test(S("abcde"), 1, 1, S("abcde"), 6, 0, 0);
- test(S("abcde"), 1, 1, S("abcdefghij"), 0, 0, 1);
- test(S("abcde"), 1, 1, S("abcdefghij"), 0, 1, 1);
- test(S("abcde"), 1, 1, S("abcdefghij"), 0, 5, 1);
- test(S("abcde"), 1, 1, S("abcdefghij"), 0, 9, 1);
- test(S("abcde"), 1, 1, S("abcdefghij"), 0, 10, 1);
- test(S("abcde"), 1, 1, S("abcdefghij"), 0, 11, 1);
- test(S("abcde"), 1, 1, S("abcdefghij"), 1, 0, 1);
- test(S("abcde"), 1, 1, S("abcdefghij"), 1, 1, 0);
- test(S("abcde"), 1, 1, S("abcdefghij"), 1, 4, -3);
- test(S("abcde"), 1, 1, S("abcdefghij"), 1, 8, -7);
- test(S("abcde"), 1, 1, S("abcdefghij"), 1, 9, -8);
- test(S("abcde"), 1, 1, S("abcdefghij"), 1, 10, -8);
- test(S("abcde"), 1, 1, S("abcdefghij"), 5, 0, 1);
- test(S("abcde"), 1, 1, S("abcdefghij"), 5, 1, -4);
- test(S("abcde"), 1, 1, S("abcdefghij"), 5, 2, -4);
- test(S("abcde"), 1, 1, S("abcdefghij"), 5, 4, -4);
- test(S("abcde"), 1, 1, S("abcdefghij"), 5, 5, -4);
- test(S("abcde"), 1, 1, S("abcdefghij"), 5, 6, -4);
- test(S("abcde"), 1, 1, S("abcdefghij"), 9, 0, 1);
- test(S("abcde"), 1, 1, S("abcdefghij"), 9, 1, -8);
- test(S("abcde"), 1, 1, S("abcdefghij"), 9, 2, -8);
- test(S("abcde"), 1, 1, S("abcdefghij"), 10, 0, 1);
- test(S("abcde"), 1, 1, S("abcdefghij"), 10, 1, 1);
- test(S("abcde"), 1, 1, S("abcdefghij"), 11, 0, 0);
- test(S("abcde"), 1, 1, S("abcdefghijklmnopqrst"), 0, 0, 1);
- test(S("abcde"), 1, 1, S("abcdefghijklmnopqrst"), 0, 1, 1);
- test(S("abcde"), 1, 1, S("abcdefghijklmnopqrst"), 0, 10, 1);
- test(S("abcde"), 1, 1, S("abcdefghijklmnopqrst"), 0, 19, 1);
- test(S("abcde"), 1, 1, S("abcdefghijklmnopqrst"), 0, 20, 1);
- test(S("abcde"), 1, 1, S("abcdefghijklmnopqrst"), 0, 21, 1);
- test(S("abcde"), 1, 1, S("abcdefghijklmnopqrst"), 1, 0, 1);
- test(S("abcde"), 1, 1, S("abcdefghijklmnopqrst"), 1, 1, 0);
- test(S("abcde"), 1, 1, S("abcdefghijklmnopqrst"), 1, 9, -8);
- test(S("abcde"), 1, 1, S("abcdefghijklmnopqrst"), 1, 18, -17);
+TEST_CONSTEXPR_CXX20 bool test7() {
+ test(S("abcde"), 1, 0, S("abcdefghij"), 1, 4, -4);
+ test(S("abcde"), 1, 0, S("abcdefghij"), 1, 8, -8);
+ test(S("abcde"), 1, 0, S("abcdefghij"), 1, 9, -9);
+ test(S("abcde"), 1, 0, S("abcdefghij"), 1, 10, -9);
+ test(S("abcde"), 1, 0, S("abcdefghij"), 5, 0, 0);
+ test(S("abcde"), 1, 0, S("abcdefghij"), 5, 1, -1);
+ test(S("abcde"), 1, 0, S("abcdefghij"), 5, 2, -2);
+ test(S("abcde"), 1, 0, S("abcdefghij"), 5, 4, -4);
+ test(S("abcde"), 1, 0, S("abcdefghij"), 5, 5, -5);
+ test(S("abcde"), 1, 0, S("abcdefghij"), 5, 6, -5);
+ test(S("abcde"), 1, 0, S("abcdefghij"), 9, 0, 0);
+ test(S("abcde"), 1, 0, S("abcdefghij"), 9, 1, -1);
+ test(S("abcde"), 1, 0, S("abcdefghij"), 9, 2, -1);
+ test(S("abcde"), 1, 0, S("abcdefghij"), 10, 0, 0);
+ test(S("abcde"), 1, 0, S("abcdefghij"), 10, 1, 0);
+ test(S("abcde"), 1, 0, S("abcdefghij"), 11, 0, 0);
+ test(S("abcde"), 1, 0, S("abcdefghijklmnopqrst"), 0, 0, 0);
+ test(S("abcde"), 1, 0, S("abcdefghijklmnopqrst"), 0, 1, -1);
+ test(S("abcde"), 1, 0, S("abcdefghijklmnopqrst"), 0, 10, -10);
+ test(S("abcde"), 1, 0, S("abcdefghijklmnopqrst"), 0, 19, -19);
+ test(S("abcde"), 1, 0, S("abcdefghijklmnopqrst"), 0, 20, -20);
+ test(S("abcde"), 1, 0, S("abcdefghijklmnopqrst"), 0, 21, -20);
+ test(S("abcde"), 1, 0, S("abcdefghijklmnopqrst"), 1, 0, 0);
+ test(S("abcde"), 1, 0, S("abcdefghijklmnopqrst"), 1, 1, -1);
+ test(S("abcde"), 1, 0, S("abcdefghijklmnopqrst"), 1, 9, -9);
+ test(S("abcde"), 1, 0, S("abcdefghijklmnopqrst"), 1, 18, -18);
+ test(S("abcde"), 1, 0, S("abcdefghijklmnopqrst"), 1, 19, -19);
+ test(S("abcde"), 1, 0, S("abcdefghijklmnopqrst"), 1, 20, -19);
+ test(S("abcde"), 1, 0, S("abcdefghijklmnopqrst"), 10, 0, 0);
+ test(S("abcde"), 1, 0, S("abcdefghijklmnopqrst"), 10, 1, -1);
+ test(S("abcde"), 1, 0, S("abcdefghijklmnopqrst"), 10, 5, -5);
+ test(S("abcde"), 1, 0, S("abcdefghijklmnopqrst"), 10, 9, -9);
+ test(S("abcde"), 1, 0, S("abcdefghijklmnopqrst"), 10, 10, -10);
+ test(S("abcde"), 1, 0, S("abcdefghijklmnopqrst"), 10, 11, -10);
+ test(S("abcde"), 1, 0, S("abcdefghijklmnopqrst"), 19, 0, 0);
+ test(S("abcde"), 1, 0, S("abcdefghijklmnopqrst"), 19, 1, -1);
+ test(S("abcde"), 1, 0, S("abcdefghijklmnopqrst"), 19, 2, -1);
+ test(S("abcde"), 1, 0, S("abcdefghijklmnopqrst"), 20, 0, 0);
+ test(S("abcde"), 1, 0, S("abcdefghijklmnopqrst"), 20, 1, 0);
+ test(S("abcde"), 1, 0, S("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcde"), 1, 1, S(""), 0, 0, 1);
+ test(S("abcde"), 1, 1, S(""), 0, 1, 1);
+ test(S("abcde"), 1, 1, S(""), 1, 0, 0);
+ test(S("abcde"), 1, 1, S("abcde"), 0, 0, 1);
+ test(S("abcde"), 1, 1, S("abcde"), 0, 1, 1);
+ test(S("abcde"), 1, 1, S("abcde"), 0, 2, 1);
+ test(S("abcde"), 1, 1, S("abcde"), 0, 4, 1);
+ test(S("abcde"), 1, 1, S("abcde"), 0, 5, 1);
+ test(S("abcde"), 1, 1, S("abcde"), 0, 6, 1);
+ test(S("abcde"), 1, 1, S("abcde"), 1, 0, 1);
+ test(S("abcde"), 1, 1, S("abcde"), 1, 1, 0);
+ test(S("abcde"), 1, 1, S("abcde"), 1, 2, -1);
+ test(S("abcde"), 1, 1, S("abcde"), 1, 3, -2);
+ test(S("abcde"), 1, 1, S("abcde"), 1, 4, -3);
+ test(S("abcde"), 1, 1, S("abcde"), 1, 5, -3);
+ test(S("abcde"), 1, 1, S("abcde"), 2, 0, 1);
+ test(S("abcde"), 1, 1, S("abcde"), 2, 1, -1);
+ test(S("abcde"), 1, 1, S("abcde"), 2, 2, -1);
+ test(S("abcde"), 1, 1, S("abcde"), 2, 3, -1);
+ test(S("abcde"), 1, 1, S("abcde"), 2, 4, -1);
+ test(S("abcde"), 1, 1, S("abcde"), 4, 0, 1);
+ test(S("abcde"), 1, 1, S("abcde"), 4, 1, -3);
+ test(S("abcde"), 1, 1, S("abcde"), 4, 2, -3);
+ test(S("abcde"), 1, 1, S("abcde"), 5, 0, 1);
+ test(S("abcde"), 1, 1, S("abcde"), 5, 1, 1);
+ test(S("abcde"), 1, 1, S("abcde"), 6, 0, 0);
+ test(S("abcde"), 1, 1, S("abcdefghij"), 0, 0, 1);
+ test(S("abcde"), 1, 1, S("abcdefghij"), 0, 1, 1);
+ test(S("abcde"), 1, 1, S("abcdefghij"), 0, 5, 1);
+ test(S("abcde"), 1, 1, S("abcdefghij"), 0, 9, 1);
+ test(S("abcde"), 1, 1, S("abcdefghij"), 0, 10, 1);
+ test(S("abcde"), 1, 1, S("abcdefghij"), 0, 11, 1);
+ test(S("abcde"), 1, 1, S("abcdefghij"), 1, 0, 1);
+ test(S("abcde"), 1, 1, S("abcdefghij"), 1, 1, 0);
+ test(S("abcde"), 1, 1, S("abcdefghij"), 1, 4, -3);
+ test(S("abcde"), 1, 1, S("abcdefghij"), 1, 8, -7);
+ test(S("abcde"), 1, 1, S("abcdefghij"), 1, 9, -8);
+ test(S("abcde"), 1, 1, S("abcdefghij"), 1, 10, -8);
+ test(S("abcde"), 1, 1, S("abcdefghij"), 5, 0, 1);
+ test(S("abcde"), 1, 1, S("abcdefghij"), 5, 1, -4);
+ test(S("abcde"), 1, 1, S("abcdefghij"), 5, 2, -4);
+ test(S("abcde"), 1, 1, S("abcdefghij"), 5, 4, -4);
+ test(S("abcde"), 1, 1, S("abcdefghij"), 5, 5, -4);
+ test(S("abcde"), 1, 1, S("abcdefghij"), 5, 6, -4);
+ test(S("abcde"), 1, 1, S("abcdefghij"), 9, 0, 1);
+ test(S("abcde"), 1, 1, S("abcdefghij"), 9, 1, -8);
+ test(S("abcde"), 1, 1, S("abcdefghij"), 9, 2, -8);
+ test(S("abcde"), 1, 1, S("abcdefghij"), 10, 0, 1);
+ test(S("abcde"), 1, 1, S("abcdefghij"), 10, 1, 1);
+ test(S("abcde"), 1, 1, S("abcdefghij"), 11, 0, 0);
+ test(S("abcde"), 1, 1, S("abcdefghijklmnopqrst"), 0, 0, 1);
+ test(S("abcde"), 1, 1, S("abcdefghijklmnopqrst"), 0, 1, 1);
+ test(S("abcde"), 1, 1, S("abcdefghijklmnopqrst"), 0, 10, 1);
+ test(S("abcde"), 1, 1, S("abcdefghijklmnopqrst"), 0, 19, 1);
+ test(S("abcde"), 1, 1, S("abcdefghijklmnopqrst"), 0, 20, 1);
+ test(S("abcde"), 1, 1, S("abcdefghijklmnopqrst"), 0, 21, 1);
+ test(S("abcde"), 1, 1, S("abcdefghijklmnopqrst"), 1, 0, 1);
+ test(S("abcde"), 1, 1, S("abcdefghijklmnopqrst"), 1, 1, 0);
+ test(S("abcde"), 1, 1, S("abcdefghijklmnopqrst"), 1, 9, -8);
+ test(S("abcde"), 1, 1, S("abcdefghijklmnopqrst"), 1, 18, -17);
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test8()
-{
- test(S("abcde"), 1, 1, S("abcdefghijklmnopqrst"), 1, 19, -18);
- test(S("abcde"), 1, 1, S("abcdefghijklmnopqrst"), 1, 20, -18);
- test(S("abcde"), 1, 1, S("abcdefghijklmnopqrst"), 10, 0, 1);
- test(S("abcde"), 1, 1, S("abcdefghijklmnopqrst"), 10, 1, -9);
- test(S("abcde"), 1, 1, S("abcdefghijklmnopqrst"), 10, 5, -9);
- test(S("abcde"), 1, 1, S("abcdefghijklmnopqrst"), 10, 9, -9);
- test(S("abcde"), 1, 1, S("abcdefghijklmnopqrst"), 10, 10, -9);
- test(S("abcde"), 1, 1, S("abcdefghijklmnopqrst"), 10, 11, -9);
- test(S("abcde"), 1, 1, S("abcdefghijklmnopqrst"), 19, 0, 1);
- test(S("abcde"), 1, 1, S("abcdefghijklmnopqrst"), 19, 1, -18);
- test(S("abcde"), 1, 1, S("abcdefghijklmnopqrst"), 19, 2, -18);
- test(S("abcde"), 1, 1, S("abcdefghijklmnopqrst"), 20, 0, 1);
- test(S("abcde"), 1, 1, S("abcdefghijklmnopqrst"), 20, 1, 1);
- test(S("abcde"), 1, 1, S("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcde"), 1, 2, S(""), 0, 0, 2);
- test(S("abcde"), 1, 2, S(""), 0, 1, 2);
- test(S("abcde"), 1, 2, S(""), 1, 0, 0);
- test(S("abcde"), 1, 2, S("abcde"), 0, 0, 2);
- test(S("abcde"), 1, 2, S("abcde"), 0, 1, 1);
- test(S("abcde"), 1, 2, S("abcde"), 0, 2, 1);
- test(S("abcde"), 1, 2, S("abcde"), 0, 4, 1);
- test(S("abcde"), 1, 2, S("abcde"), 0, 5, 1);
- test(S("abcde"), 1, 2, S("abcde"), 0, 6, 1);
- test(S("abcde"), 1, 2, S("abcde"), 1, 0, 2);
- test(S("abcde"), 1, 2, S("abcde"), 1, 1, 1);
- test(S("abcde"), 1, 2, S("abcde"), 1, 2, 0);
- test(S("abcde"), 1, 2, S("abcde"), 1, 3, -1);
- test(S("abcde"), 1, 2, S("abcde"), 1, 4, -2);
- test(S("abcde"), 1, 2, S("abcde"), 1, 5, -2);
- test(S("abcde"), 1, 2, S("abcde"), 2, 0, 2);
- test(S("abcde"), 1, 2, S("abcde"), 2, 1, -1);
- test(S("abcde"), 1, 2, S("abcde"), 2, 2, -1);
- test(S("abcde"), 1, 2, S("abcde"), 2, 3, -1);
- test(S("abcde"), 1, 2, S("abcde"), 2, 4, -1);
- test(S("abcde"), 1, 2, S("abcde"), 4, 0, 2);
- test(S("abcde"), 1, 2, S("abcde"), 4, 1, -3);
- test(S("abcde"), 1, 2, S("abcde"), 4, 2, -3);
- test(S("abcde"), 1, 2, S("abcde"), 5, 0, 2);
- test(S("abcde"), 1, 2, S("abcde"), 5, 1, 2);
- test(S("abcde"), 1, 2, S("abcde"), 6, 0, 0);
- test(S("abcde"), 1, 2, S("abcdefghij"), 0, 0, 2);
- test(S("abcde"), 1, 2, S("abcdefghij"), 0, 1, 1);
- test(S("abcde"), 1, 2, S("abcdefghij"), 0, 5, 1);
- test(S("abcde"), 1, 2, S("abcdefghij"), 0, 9, 1);
- test(S("abcde"), 1, 2, S("abcdefghij"), 0, 10, 1);
- test(S("abcde"), 1, 2, S("abcdefghij"), 0, 11, 1);
- test(S("abcde"), 1, 2, S("abcdefghij"), 1, 0, 2);
- test(S("abcde"), 1, 2, S("abcdefghij"), 1, 1, 1);
- test(S("abcde"), 1, 2, S("abcdefghij"), 1, 4, -2);
- test(S("abcde"), 1, 2, S("abcdefghij"), 1, 8, -6);
- test(S("abcde"), 1, 2, S("abcdefghij"), 1, 9, -7);
- test(S("abcde"), 1, 2, S("abcdefghij"), 1, 10, -7);
- test(S("abcde"), 1, 2, S("abcdefghij"), 5, 0, 2);
- test(S("abcde"), 1, 2, S("abcdefghij"), 5, 1, -4);
- test(S("abcde"), 1, 2, S("abcdefghij"), 5, 2, -4);
- test(S("abcde"), 1, 2, S("abcdefghij"), 5, 4, -4);
- test(S("abcde"), 1, 2, S("abcdefghij"), 5, 5, -4);
- test(S("abcde"), 1, 2, S("abcdefghij"), 5, 6, -4);
- test(S("abcde"), 1, 2, S("abcdefghij"), 9, 0, 2);
- test(S("abcde"), 1, 2, S("abcdefghij"), 9, 1, -8);
- test(S("abcde"), 1, 2, S("abcdefghij"), 9, 2, -8);
- test(S("abcde"), 1, 2, S("abcdefghij"), 10, 0, 2);
- test(S("abcde"), 1, 2, S("abcdefghij"), 10, 1, 2);
- test(S("abcde"), 1, 2, S("abcdefghij"), 11, 0, 0);
- test(S("abcde"), 1, 2, S("abcdefghijklmnopqrst"), 0, 0, 2);
- test(S("abcde"), 1, 2, S("abcdefghijklmnopqrst"), 0, 1, 1);
- test(S("abcde"), 1, 2, S("abcdefghijklmnopqrst"), 0, 10, 1);
- test(S("abcde"), 1, 2, S("abcdefghijklmnopqrst"), 0, 19, 1);
- test(S("abcde"), 1, 2, S("abcdefghijklmnopqrst"), 0, 20, 1);
- test(S("abcde"), 1, 2, S("abcdefghijklmnopqrst"), 0, 21, 1);
- test(S("abcde"), 1, 2, S("abcdefghijklmnopqrst"), 1, 0, 2);
- test(S("abcde"), 1, 2, S("abcdefghijklmnopqrst"), 1, 1, 1);
- test(S("abcde"), 1, 2, S("abcdefghijklmnopqrst"), 1, 9, -7);
- test(S("abcde"), 1, 2, S("abcdefghijklmnopqrst"), 1, 18, -16);
- test(S("abcde"), 1, 2, S("abcdefghijklmnopqrst"), 1, 19, -17);
- test(S("abcde"), 1, 2, S("abcdefghijklmnopqrst"), 1, 20, -17);
- test(S("abcde"), 1, 2, S("abcdefghijklmnopqrst"), 10, 0, 2);
- test(S("abcde"), 1, 2, S("abcdefghijklmnopqrst"), 10, 1, -9);
- test(S("abcde"), 1, 2, S("abcdefghijklmnopqrst"), 10, 5, -9);
- test(S("abcde"), 1, 2, S("abcdefghijklmnopqrst"), 10, 9, -9);
- test(S("abcde"), 1, 2, S("abcdefghijklmnopqrst"), 10, 10, -9);
- test(S("abcde"), 1, 2, S("abcdefghijklmnopqrst"), 10, 11, -9);
- test(S("abcde"), 1, 2, S("abcdefghijklmnopqrst"), 19, 0, 2);
- test(S("abcde"), 1, 2, S("abcdefghijklmnopqrst"), 19, 1, -18);
- test(S("abcde"), 1, 2, S("abcdefghijklmnopqrst"), 19, 2, -18);
- test(S("abcde"), 1, 2, S("abcdefghijklmnopqrst"), 20, 0, 2);
- test(S("abcde"), 1, 2, S("abcdefghijklmnopqrst"), 20, 1, 2);
- test(S("abcde"), 1, 2, S("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcde"), 1, 3, S(""), 0, 0, 3);
- test(S("abcde"), 1, 3, S(""), 0, 1, 3);
- test(S("abcde"), 1, 3, S(""), 1, 0, 0);
- test(S("abcde"), 1, 3, S("abcde"), 0, 0, 3);
- test(S("abcde"), 1, 3, S("abcde"), 0, 1, 1);
- test(S("abcde"), 1, 3, S("abcde"), 0, 2, 1);
- test(S("abcde"), 1, 3, S("abcde"), 0, 4, 1);
- test(S("abcde"), 1, 3, S("abcde"), 0, 5, 1);
- test(S("abcde"), 1, 3, S("abcde"), 0, 6, 1);
- test(S("abcde"), 1, 3, S("abcde"), 1, 0, 3);
- test(S("abcde"), 1, 3, S("abcde"), 1, 1, 2);
- test(S("abcde"), 1, 3, S("abcde"), 1, 2, 1);
+TEST_CONSTEXPR_CXX20 bool test8() {
+ test(S("abcde"), 1, 1, S("abcdefghijklmnopqrst"), 1, 19, -18);
+ test(S("abcde"), 1, 1, S("abcdefghijklmnopqrst"), 1, 20, -18);
+ test(S("abcde"), 1, 1, S("abcdefghijklmnopqrst"), 10, 0, 1);
+ test(S("abcde"), 1, 1, S("abcdefghijklmnopqrst"), 10, 1, -9);
+ test(S("abcde"), 1, 1, S("abcdefghijklmnopqrst"), 10, 5, -9);
+ test(S("abcde"), 1, 1, S("abcdefghijklmnopqrst"), 10, 9, -9);
+ test(S("abcde"), 1, 1, S("abcdefghijklmnopqrst"), 10, 10, -9);
+ test(S("abcde"), 1, 1, S("abcdefghijklmnopqrst"), 10, 11, -9);
+ test(S("abcde"), 1, 1, S("abcdefghijklmnopqrst"), 19, 0, 1);
+ test(S("abcde"), 1, 1, S("abcdefghijklmnopqrst"), 19, 1, -18);
+ test(S("abcde"), 1, 1, S("abcdefghijklmnopqrst"), 19, 2, -18);
+ test(S("abcde"), 1, 1, S("abcdefghijklmnopqrst"), 20, 0, 1);
+ test(S("abcde"), 1, 1, S("abcdefghijklmnopqrst"), 20, 1, 1);
+ test(S("abcde"), 1, 1, S("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcde"), 1, 2, S(""), 0, 0, 2);
+ test(S("abcde"), 1, 2, S(""), 0, 1, 2);
+ test(S("abcde"), 1, 2, S(""), 1, 0, 0);
+ test(S("abcde"), 1, 2, S("abcde"), 0, 0, 2);
+ test(S("abcde"), 1, 2, S("abcde"), 0, 1, 1);
+ test(S("abcde"), 1, 2, S("abcde"), 0, 2, 1);
+ test(S("abcde"), 1, 2, S("abcde"), 0, 4, 1);
+ test(S("abcde"), 1, 2, S("abcde"), 0, 5, 1);
+ test(S("abcde"), 1, 2, S("abcde"), 0, 6, 1);
+ test(S("abcde"), 1, 2, S("abcde"), 1, 0, 2);
+ test(S("abcde"), 1, 2, S("abcde"), 1, 1, 1);
+ test(S("abcde"), 1, 2, S("abcde"), 1, 2, 0);
+ test(S("abcde"), 1, 2, S("abcde"), 1, 3, -1);
+ test(S("abcde"), 1, 2, S("abcde"), 1, 4, -2);
+ test(S("abcde"), 1, 2, S("abcde"), 1, 5, -2);
+ test(S("abcde"), 1, 2, S("abcde"), 2, 0, 2);
+ test(S("abcde"), 1, 2, S("abcde"), 2, 1, -1);
+ test(S("abcde"), 1, 2, S("abcde"), 2, 2, -1);
+ test(S("abcde"), 1, 2, S("abcde"), 2, 3, -1);
+ test(S("abcde"), 1, 2, S("abcde"), 2, 4, -1);
+ test(S("abcde"), 1, 2, S("abcde"), 4, 0, 2);
+ test(S("abcde"), 1, 2, S("abcde"), 4, 1, -3);
+ test(S("abcde"), 1, 2, S("abcde"), 4, 2, -3);
+ test(S("abcde"), 1, 2, S("abcde"), 5, 0, 2);
+ test(S("abcde"), 1, 2, S("abcde"), 5, 1, 2);
+ test(S("abcde"), 1, 2, S("abcde"), 6, 0, 0);
+ test(S("abcde"), 1, 2, S("abcdefghij"), 0, 0, 2);
+ test(S("abcde"), 1, 2, S("abcdefghij"), 0, 1, 1);
+ test(S("abcde"), 1, 2, S("abcdefghij"), 0, 5, 1);
+ test(S("abcde"), 1, 2, S("abcdefghij"), 0, 9, 1);
+ test(S("abcde"), 1, 2, S("abcdefghij"), 0, 10, 1);
+ test(S("abcde"), 1, 2, S("abcdefghij"), 0, 11, 1);
+ test(S("abcde"), 1, 2, S("abcdefghij"), 1, 0, 2);
+ test(S("abcde"), 1, 2, S("abcdefghij"), 1, 1, 1);
+ test(S("abcde"), 1, 2, S("abcdefghij"), 1, 4, -2);
+ test(S("abcde"), 1, 2, S("abcdefghij"), 1, 8, -6);
+ test(S("abcde"), 1, 2, S("abcdefghij"), 1, 9, -7);
+ test(S("abcde"), 1, 2, S("abcdefghij"), 1, 10, -7);
+ test(S("abcde"), 1, 2, S("abcdefghij"), 5, 0, 2);
+ test(S("abcde"), 1, 2, S("abcdefghij"), 5, 1, -4);
+ test(S("abcde"), 1, 2, S("abcdefghij"), 5, 2, -4);
+ test(S("abcde"), 1, 2, S("abcdefghij"), 5, 4, -4);
+ test(S("abcde"), 1, 2, S("abcdefghij"), 5, 5, -4);
+ test(S("abcde"), 1, 2, S("abcdefghij"), 5, 6, -4);
+ test(S("abcde"), 1, 2, S("abcdefghij"), 9, 0, 2);
+ test(S("abcde"), 1, 2, S("abcdefghij"), 9, 1, -8);
+ test(S("abcde"), 1, 2, S("abcdefghij"), 9, 2, -8);
+ test(S("abcde"), 1, 2, S("abcdefghij"), 10, 0, 2);
+ test(S("abcde"), 1, 2, S("abcdefghij"), 10, 1, 2);
+ test(S("abcde"), 1, 2, S("abcdefghij"), 11, 0, 0);
+ test(S("abcde"), 1, 2, S("abcdefghijklmnopqrst"), 0, 0, 2);
+ test(S("abcde"), 1, 2, S("abcdefghijklmnopqrst"), 0, 1, 1);
+ test(S("abcde"), 1, 2, S("abcdefghijklmnopqrst"), 0, 10, 1);
+ test(S("abcde"), 1, 2, S("abcdefghijklmnopqrst"), 0, 19, 1);
+ test(S("abcde"), 1, 2, S("abcdefghijklmnopqrst"), 0, 20, 1);
+ test(S("abcde"), 1, 2, S("abcdefghijklmnopqrst"), 0, 21, 1);
+ test(S("abcde"), 1, 2, S("abcdefghijklmnopqrst"), 1, 0, 2);
+ test(S("abcde"), 1, 2, S("abcdefghijklmnopqrst"), 1, 1, 1);
+ test(S("abcde"), 1, 2, S("abcdefghijklmnopqrst"), 1, 9, -7);
+ test(S("abcde"), 1, 2, S("abcdefghijklmnopqrst"), 1, 18, -16);
+ test(S("abcde"), 1, 2, S("abcdefghijklmnopqrst"), 1, 19, -17);
+ test(S("abcde"), 1, 2, S("abcdefghijklmnopqrst"), 1, 20, -17);
+ test(S("abcde"), 1, 2, S("abcdefghijklmnopqrst"), 10, 0, 2);
+ test(S("abcde"), 1, 2, S("abcdefghijklmnopqrst"), 10, 1, -9);
+ test(S("abcde"), 1, 2, S("abcdefghijklmnopqrst"), 10, 5, -9);
+ test(S("abcde"), 1, 2, S("abcdefghijklmnopqrst"), 10, 9, -9);
+ test(S("abcde"), 1, 2, S("abcdefghijklmnopqrst"), 10, 10, -9);
+ test(S("abcde"), 1, 2, S("abcdefghijklmnopqrst"), 10, 11, -9);
+ test(S("abcde"), 1, 2, S("abcdefghijklmnopqrst"), 19, 0, 2);
+ test(S("abcde"), 1, 2, S("abcdefghijklmnopqrst"), 19, 1, -18);
+ test(S("abcde"), 1, 2, S("abcdefghijklmnopqrst"), 19, 2, -18);
+ test(S("abcde"), 1, 2, S("abcdefghijklmnopqrst"), 20, 0, 2);
+ test(S("abcde"), 1, 2, S("abcdefghijklmnopqrst"), 20, 1, 2);
+ test(S("abcde"), 1, 2, S("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcde"), 1, 3, S(""), 0, 0, 3);
+ test(S("abcde"), 1, 3, S(""), 0, 1, 3);
+ test(S("abcde"), 1, 3, S(""), 1, 0, 0);
+ test(S("abcde"), 1, 3, S("abcde"), 0, 0, 3);
+ test(S("abcde"), 1, 3, S("abcde"), 0, 1, 1);
+ test(S("abcde"), 1, 3, S("abcde"), 0, 2, 1);
+ test(S("abcde"), 1, 3, S("abcde"), 0, 4, 1);
+ test(S("abcde"), 1, 3, S("abcde"), 0, 5, 1);
+ test(S("abcde"), 1, 3, S("abcde"), 0, 6, 1);
+ test(S("abcde"), 1, 3, S("abcde"), 1, 0, 3);
+ test(S("abcde"), 1, 3, S("abcde"), 1, 1, 2);
+ test(S("abcde"), 1, 3, S("abcde"), 1, 2, 1);
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test9()
-{
- test(S("abcde"), 1, 3, S("abcde"), 1, 3, 0);
- test(S("abcde"), 1, 3, S("abcde"), 1, 4, -1);
- test(S("abcde"), 1, 3, S("abcde"), 1, 5, -1);
- test(S("abcde"), 1, 3, S("abcde"), 2, 0, 3);
- test(S("abcde"), 1, 3, S("abcde"), 2, 1, -1);
- test(S("abcde"), 1, 3, S("abcde"), 2, 2, -1);
- test(S("abcde"), 1, 3, S("abcde"), 2, 3, -1);
- test(S("abcde"), 1, 3, S("abcde"), 2, 4, -1);
- test(S("abcde"), 1, 3, S("abcde"), 4, 0, 3);
- test(S("abcde"), 1, 3, S("abcde"), 4, 1, -3);
- test(S("abcde"), 1, 3, S("abcde"), 4, 2, -3);
- test(S("abcde"), 1, 3, S("abcde"), 5, 0, 3);
- test(S("abcde"), 1, 3, S("abcde"), 5, 1, 3);
- test(S("abcde"), 1, 3, S("abcde"), 6, 0, 0);
- test(S("abcde"), 1, 3, S("abcdefghij"), 0, 0, 3);
- test(S("abcde"), 1, 3, S("abcdefghij"), 0, 1, 1);
- test(S("abcde"), 1, 3, S("abcdefghij"), 0, 5, 1);
- test(S("abcde"), 1, 3, S("abcdefghij"), 0, 9, 1);
- test(S("abcde"), 1, 3, S("abcdefghij"), 0, 10, 1);
- test(S("abcde"), 1, 3, S("abcdefghij"), 0, 11, 1);
- test(S("abcde"), 1, 3, S("abcdefghij"), 1, 0, 3);
- test(S("abcde"), 1, 3, S("abcdefghij"), 1, 1, 2);
- test(S("abcde"), 1, 3, S("abcdefghij"), 1, 4, -1);
- test(S("abcde"), 1, 3, S("abcdefghij"), 1, 8, -5);
- test(S("abcde"), 1, 3, S("abcdefghij"), 1, 9, -6);
- test(S("abcde"), 1, 3, S("abcdefghij"), 1, 10, -6);
- test(S("abcde"), 1, 3, S("abcdefghij"), 5, 0, 3);
- test(S("abcde"), 1, 3, S("abcdefghij"), 5, 1, -4);
- test(S("abcde"), 1, 3, S("abcdefghij"), 5, 2, -4);
- test(S("abcde"), 1, 3, S("abcdefghij"), 5, 4, -4);
- test(S("abcde"), 1, 3, S("abcdefghij"), 5, 5, -4);
- test(S("abcde"), 1, 3, S("abcdefghij"), 5, 6, -4);
- test(S("abcde"), 1, 3, S("abcdefghij"), 9, 0, 3);
- test(S("abcde"), 1, 3, S("abcdefghij"), 9, 1, -8);
- test(S("abcde"), 1, 3, S("abcdefghij"), 9, 2, -8);
- test(S("abcde"), 1, 3, S("abcdefghij"), 10, 0, 3);
- test(S("abcde"), 1, 3, S("abcdefghij"), 10, 1, 3);
- test(S("abcde"), 1, 3, S("abcdefghij"), 11, 0, 0);
- test(S("abcde"), 1, 3, S("abcdefghijklmnopqrst"), 0, 0, 3);
- test(S("abcde"), 1, 3, S("abcdefghijklmnopqrst"), 0, 1, 1);
- test(S("abcde"), 1, 3, S("abcdefghijklmnopqrst"), 0, 10, 1);
- test(S("abcde"), 1, 3, S("abcdefghijklmnopqrst"), 0, 19, 1);
- test(S("abcde"), 1, 3, S("abcdefghijklmnopqrst"), 0, 20, 1);
- test(S("abcde"), 1, 3, S("abcdefghijklmnopqrst"), 0, 21, 1);
- test(S("abcde"), 1, 3, S("abcdefghijklmnopqrst"), 1, 0, 3);
- test(S("abcde"), 1, 3, S("abcdefghijklmnopqrst"), 1, 1, 2);
- test(S("abcde"), 1, 3, S("abcdefghijklmnopqrst"), 1, 9, -6);
- test(S("abcde"), 1, 3, S("abcdefghijklmnopqrst"), 1, 18, -15);
- test(S("abcde"), 1, 3, S("abcdefghijklmnopqrst"), 1, 19, -16);
- test(S("abcde"), 1, 3, S("abcdefghijklmnopqrst"), 1, 20, -16);
- test(S("abcde"), 1, 3, S("abcdefghijklmnopqrst"), 10, 0, 3);
- test(S("abcde"), 1, 3, S("abcdefghijklmnopqrst"), 10, 1, -9);
- test(S("abcde"), 1, 3, S("abcdefghijklmnopqrst"), 10, 5, -9);
- test(S("abcde"), 1, 3, S("abcdefghijklmnopqrst"), 10, 9, -9);
- test(S("abcde"), 1, 3, S("abcdefghijklmnopqrst"), 10, 10, -9);
- test(S("abcde"), 1, 3, S("abcdefghijklmnopqrst"), 10, 11, -9);
- test(S("abcde"), 1, 3, S("abcdefghijklmnopqrst"), 19, 0, 3);
- test(S("abcde"), 1, 3, S("abcdefghijklmnopqrst"), 19, 1, -18);
- test(S("abcde"), 1, 3, S("abcdefghijklmnopqrst"), 19, 2, -18);
- test(S("abcde"), 1, 3, S("abcdefghijklmnopqrst"), 20, 0, 3);
- test(S("abcde"), 1, 3, S("abcdefghijklmnopqrst"), 20, 1, 3);
- test(S("abcde"), 1, 3, S("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcde"), 1, 4, S(""), 0, 0, 4);
- test(S("abcde"), 1, 4, S(""), 0, 1, 4);
- test(S("abcde"), 1, 4, S(""), 1, 0, 0);
- test(S("abcde"), 1, 4, S("abcde"), 0, 0, 4);
- test(S("abcde"), 1, 4, S("abcde"), 0, 1, 1);
- test(S("abcde"), 1, 4, S("abcde"), 0, 2, 1);
- test(S("abcde"), 1, 4, S("abcde"), 0, 4, 1);
- test(S("abcde"), 1, 4, S("abcde"), 0, 5, 1);
- test(S("abcde"), 1, 4, S("abcde"), 0, 6, 1);
- test(S("abcde"), 1, 4, S("abcde"), 1, 0, 4);
- test(S("abcde"), 1, 4, S("abcde"), 1, 1, 3);
- test(S("abcde"), 1, 4, S("abcde"), 1, 2, 2);
- test(S("abcde"), 1, 4, S("abcde"), 1, 3, 1);
- test(S("abcde"), 1, 4, S("abcde"), 1, 4, 0);
- test(S("abcde"), 1, 4, S("abcde"), 1, 5, 0);
- test(S("abcde"), 1, 4, S("abcde"), 2, 0, 4);
- test(S("abcde"), 1, 4, S("abcde"), 2, 1, -1);
- test(S("abcde"), 1, 4, S("abcde"), 2, 2, -1);
- test(S("abcde"), 1, 4, S("abcde"), 2, 3, -1);
- test(S("abcde"), 1, 4, S("abcde"), 2, 4, -1);
- test(S("abcde"), 1, 4, S("abcde"), 4, 0, 4);
- test(S("abcde"), 1, 4, S("abcde"), 4, 1, -3);
- test(S("abcde"), 1, 4, S("abcde"), 4, 2, -3);
- test(S("abcde"), 1, 4, S("abcde"), 5, 0, 4);
- test(S("abcde"), 1, 4, S("abcde"), 5, 1, 4);
- test(S("abcde"), 1, 4, S("abcde"), 6, 0, 0);
- test(S("abcde"), 1, 4, S("abcdefghij"), 0, 0, 4);
- test(S("abcde"), 1, 4, S("abcdefghij"), 0, 1, 1);
- test(S("abcde"), 1, 4, S("abcdefghij"), 0, 5, 1);
- test(S("abcde"), 1, 4, S("abcdefghij"), 0, 9, 1);
- test(S("abcde"), 1, 4, S("abcdefghij"), 0, 10, 1);
- test(S("abcde"), 1, 4, S("abcdefghij"), 0, 11, 1);
- test(S("abcde"), 1, 4, S("abcdefghij"), 1, 0, 4);
- test(S("abcde"), 1, 4, S("abcdefghij"), 1, 1, 3);
- test(S("abcde"), 1, 4, S("abcdefghij"), 1, 4, 0);
- test(S("abcde"), 1, 4, S("abcdefghij"), 1, 8, -4);
- test(S("abcde"), 1, 4, S("abcdefghij"), 1, 9, -5);
- test(S("abcde"), 1, 4, S("abcdefghij"), 1, 10, -5);
+TEST_CONSTEXPR_CXX20 bool test9() {
+ test(S("abcde"), 1, 3, S("abcde"), 1, 3, 0);
+ test(S("abcde"), 1, 3, S("abcde"), 1, 4, -1);
+ test(S("abcde"), 1, 3, S("abcde"), 1, 5, -1);
+ test(S("abcde"), 1, 3, S("abcde"), 2, 0, 3);
+ test(S("abcde"), 1, 3, S("abcde"), 2, 1, -1);
+ test(S("abcde"), 1, 3, S("abcde"), 2, 2, -1);
+ test(S("abcde"), 1, 3, S("abcde"), 2, 3, -1);
+ test(S("abcde"), 1, 3, S("abcde"), 2, 4, -1);
+ test(S("abcde"), 1, 3, S("abcde"), 4, 0, 3);
+ test(S("abcde"), 1, 3, S("abcde"), 4, 1, -3);
+ test(S("abcde"), 1, 3, S("abcde"), 4, 2, -3);
+ test(S("abcde"), 1, 3, S("abcde"), 5, 0, 3);
+ test(S("abcde"), 1, 3, S("abcde"), 5, 1, 3);
+ test(S("abcde"), 1, 3, S("abcde"), 6, 0, 0);
+ test(S("abcde"), 1, 3, S("abcdefghij"), 0, 0, 3);
+ test(S("abcde"), 1, 3, S("abcdefghij"), 0, 1, 1);
+ test(S("abcde"), 1, 3, S("abcdefghij"), 0, 5, 1);
+ test(S("abcde"), 1, 3, S("abcdefghij"), 0, 9, 1);
+ test(S("abcde"), 1, 3, S("abcdefghij"), 0, 10, 1);
+ test(S("abcde"), 1, 3, S("abcdefghij"), 0, 11, 1);
+ test(S("abcde"), 1, 3, S("abcdefghij"), 1, 0, 3);
+ test(S("abcde"), 1, 3, S("abcdefghij"), 1, 1, 2);
+ test(S("abcde"), 1, 3, S("abcdefghij"), 1, 4, -1);
+ test(S("abcde"), 1, 3, S("abcdefghij"), 1, 8, -5);
+ test(S("abcde"), 1, 3, S("abcdefghij"), 1, 9, -6);
+ test(S("abcde"), 1, 3, S("abcdefghij"), 1, 10, -6);
+ test(S("abcde"), 1, 3, S("abcdefghij"), 5, 0, 3);
+ test(S("abcde"), 1, 3, S("abcdefghij"), 5, 1, -4);
+ test(S("abcde"), 1, 3, S("abcdefghij"), 5, 2, -4);
+ test(S("abcde"), 1, 3, S("abcdefghij"), 5, 4, -4);
+ test(S("abcde"), 1, 3, S("abcdefghij"), 5, 5, -4);
+ test(S("abcde"), 1, 3, S("abcdefghij"), 5, 6, -4);
+ test(S("abcde"), 1, 3, S("abcdefghij"), 9, 0, 3);
+ test(S("abcde"), 1, 3, S("abcdefghij"), 9, 1, -8);
+ test(S("abcde"), 1, 3, S("abcdefghij"), 9, 2, -8);
+ test(S("abcde"), 1, 3, S("abcdefghij"), 10, 0, 3);
+ test(S("abcde"), 1, 3, S("abcdefghij"), 10, 1, 3);
+ test(S("abcde"), 1, 3, S("abcdefghij"), 11, 0, 0);
+ test(S("abcde"), 1, 3, S("abcdefghijklmnopqrst"), 0, 0, 3);
+ test(S("abcde"), 1, 3, S("abcdefghijklmnopqrst"), 0, 1, 1);
+ test(S("abcde"), 1, 3, S("abcdefghijklmnopqrst"), 0, 10, 1);
+ test(S("abcde"), 1, 3, S("abcdefghijklmnopqrst"), 0, 19, 1);
+ test(S("abcde"), 1, 3, S("abcdefghijklmnopqrst"), 0, 20, 1);
+ test(S("abcde"), 1, 3, S("abcdefghijklmnopqrst"), 0, 21, 1);
+ test(S("abcde"), 1, 3, S("abcdefghijklmnopqrst"), 1, 0, 3);
+ test(S("abcde"), 1, 3, S("abcdefghijklmnopqrst"), 1, 1, 2);
+ test(S("abcde"), 1, 3, S("abcdefghijklmnopqrst"), 1, 9, -6);
+ test(S("abcde"), 1, 3, S("abcdefghijklmnopqrst"), 1, 18, -15);
+ test(S("abcde"), 1, 3, S("abcdefghijklmnopqrst"), 1, 19, -16);
+ test(S("abcde"), 1, 3, S("abcdefghijklmnopqrst"), 1, 20, -16);
+ test(S("abcde"), 1, 3, S("abcdefghijklmnopqrst"), 10, 0, 3);
+ test(S("abcde"), 1, 3, S("abcdefghijklmnopqrst"), 10, 1, -9);
+ test(S("abcde"), 1, 3, S("abcdefghijklmnopqrst"), 10, 5, -9);
+ test(S("abcde"), 1, 3, S("abcdefghijklmnopqrst"), 10, 9, -9);
+ test(S("abcde"), 1, 3, S("abcdefghijklmnopqrst"), 10, 10, -9);
+ test(S("abcde"), 1, 3, S("abcdefghijklmnopqrst"), 10, 11, -9);
+ test(S("abcde"), 1, 3, S("abcdefghijklmnopqrst"), 19, 0, 3);
+ test(S("abcde"), 1, 3, S("abcdefghijklmnopqrst"), 19, 1, -18);
+ test(S("abcde"), 1, 3, S("abcdefghijklmnopqrst"), 19, 2, -18);
+ test(S("abcde"), 1, 3, S("abcdefghijklmnopqrst"), 20, 0, 3);
+ test(S("abcde"), 1, 3, S("abcdefghijklmnopqrst"), 20, 1, 3);
+ test(S("abcde"), 1, 3, S("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcde"), 1, 4, S(""), 0, 0, 4);
+ test(S("abcde"), 1, 4, S(""), 0, 1, 4);
+ test(S("abcde"), 1, 4, S(""), 1, 0, 0);
+ test(S("abcde"), 1, 4, S("abcde"), 0, 0, 4);
+ test(S("abcde"), 1, 4, S("abcde"), 0, 1, 1);
+ test(S("abcde"), 1, 4, S("abcde"), 0, 2, 1);
+ test(S("abcde"), 1, 4, S("abcde"), 0, 4, 1);
+ test(S("abcde"), 1, 4, S("abcde"), 0, 5, 1);
+ test(S("abcde"), 1, 4, S("abcde"), 0, 6, 1);
+ test(S("abcde"), 1, 4, S("abcde"), 1, 0, 4);
+ test(S("abcde"), 1, 4, S("abcde"), 1, 1, 3);
+ test(S("abcde"), 1, 4, S("abcde"), 1, 2, 2);
+ test(S("abcde"), 1, 4, S("abcde"), 1, 3, 1);
+ test(S("abcde"), 1, 4, S("abcde"), 1, 4, 0);
+ test(S("abcde"), 1, 4, S("abcde"), 1, 5, 0);
+ test(S("abcde"), 1, 4, S("abcde"), 2, 0, 4);
+ test(S("abcde"), 1, 4, S("abcde"), 2, 1, -1);
+ test(S("abcde"), 1, 4, S("abcde"), 2, 2, -1);
+ test(S("abcde"), 1, 4, S("abcde"), 2, 3, -1);
+ test(S("abcde"), 1, 4, S("abcde"), 2, 4, -1);
+ test(S("abcde"), 1, 4, S("abcde"), 4, 0, 4);
+ test(S("abcde"), 1, 4, S("abcde"), 4, 1, -3);
+ test(S("abcde"), 1, 4, S("abcde"), 4, 2, -3);
+ test(S("abcde"), 1, 4, S("abcde"), 5, 0, 4);
+ test(S("abcde"), 1, 4, S("abcde"), 5, 1, 4);
+ test(S("abcde"), 1, 4, S("abcde"), 6, 0, 0);
+ test(S("abcde"), 1, 4, S("abcdefghij"), 0, 0, 4);
+ test(S("abcde"), 1, 4, S("abcdefghij"), 0, 1, 1);
+ test(S("abcde"), 1, 4, S("abcdefghij"), 0, 5, 1);
+ test(S("abcde"), 1, 4, S("abcdefghij"), 0, 9, 1);
+ test(S("abcde"), 1, 4, S("abcdefghij"), 0, 10, 1);
+ test(S("abcde"), 1, 4, S("abcdefghij"), 0, 11, 1);
+ test(S("abcde"), 1, 4, S("abcdefghij"), 1, 0, 4);
+ test(S("abcde"), 1, 4, S("abcdefghij"), 1, 1, 3);
+ test(S("abcde"), 1, 4, S("abcdefghij"), 1, 4, 0);
+ test(S("abcde"), 1, 4, S("abcdefghij"), 1, 8, -4);
+ test(S("abcde"), 1, 4, S("abcdefghij"), 1, 9, -5);
+ test(S("abcde"), 1, 4, S("abcdefghij"), 1, 10, -5);
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test10()
-{
- test(S("abcde"), 1, 4, S("abcdefghij"), 5, 0, 4);
- test(S("abcde"), 1, 4, S("abcdefghij"), 5, 1, -4);
- test(S("abcde"), 1, 4, S("abcdefghij"), 5, 2, -4);
- test(S("abcde"), 1, 4, S("abcdefghij"), 5, 4, -4);
- test(S("abcde"), 1, 4, S("abcdefghij"), 5, 5, -4);
- test(S("abcde"), 1, 4, S("abcdefghij"), 5, 6, -4);
- test(S("abcde"), 1, 4, S("abcdefghij"), 9, 0, 4);
- test(S("abcde"), 1, 4, S("abcdefghij"), 9, 1, -8);
- test(S("abcde"), 1, 4, S("abcdefghij"), 9, 2, -8);
- test(S("abcde"), 1, 4, S("abcdefghij"), 10, 0, 4);
- test(S("abcde"), 1, 4, S("abcdefghij"), 10, 1, 4);
- test(S("abcde"), 1, 4, S("abcdefghij"), 11, 0, 0);
- test(S("abcde"), 1, 4, S("abcdefghijklmnopqrst"), 0, 0, 4);
- test(S("abcde"), 1, 4, S("abcdefghijklmnopqrst"), 0, 1, 1);
- test(S("abcde"), 1, 4, S("abcdefghijklmnopqrst"), 0, 10, 1);
- test(S("abcde"), 1, 4, S("abcdefghijklmnopqrst"), 0, 19, 1);
- test(S("abcde"), 1, 4, S("abcdefghijklmnopqrst"), 0, 20, 1);
- test(S("abcde"), 1, 4, S("abcdefghijklmnopqrst"), 0, 21, 1);
- test(S("abcde"), 1, 4, S("abcdefghijklmnopqrst"), 1, 0, 4);
- test(S("abcde"), 1, 4, S("abcdefghijklmnopqrst"), 1, 1, 3);
- test(S("abcde"), 1, 4, S("abcdefghijklmnopqrst"), 1, 9, -5);
- test(S("abcde"), 1, 4, S("abcdefghijklmnopqrst"), 1, 18, -14);
- test(S("abcde"), 1, 4, S("abcdefghijklmnopqrst"), 1, 19, -15);
- test(S("abcde"), 1, 4, S("abcdefghijklmnopqrst"), 1, 20, -15);
- test(S("abcde"), 1, 4, S("abcdefghijklmnopqrst"), 10, 0, 4);
- test(S("abcde"), 1, 4, S("abcdefghijklmnopqrst"), 10, 1, -9);
- test(S("abcde"), 1, 4, S("abcdefghijklmnopqrst"), 10, 5, -9);
- test(S("abcde"), 1, 4, S("abcdefghijklmnopqrst"), 10, 9, -9);
- test(S("abcde"), 1, 4, S("abcdefghijklmnopqrst"), 10, 10, -9);
- test(S("abcde"), 1, 4, S("abcdefghijklmnopqrst"), 10, 11, -9);
- test(S("abcde"), 1, 4, S("abcdefghijklmnopqrst"), 19, 0, 4);
- test(S("abcde"), 1, 4, S("abcdefghijklmnopqrst"), 19, 1, -18);
- test(S("abcde"), 1, 4, S("abcdefghijklmnopqrst"), 19, 2, -18);
- test(S("abcde"), 1, 4, S("abcdefghijklmnopqrst"), 20, 0, 4);
- test(S("abcde"), 1, 4, S("abcdefghijklmnopqrst"), 20, 1, 4);
- test(S("abcde"), 1, 4, S("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcde"), 1, 5, S(""), 0, 0, 4);
- test(S("abcde"), 1, 5, S(""), 0, 1, 4);
- test(S("abcde"), 1, 5, S(""), 1, 0, 0);
- test(S("abcde"), 1, 5, S("abcde"), 0, 0, 4);
- test(S("abcde"), 1, 5, S("abcde"), 0, 1, 1);
- test(S("abcde"), 1, 5, S("abcde"), 0, 2, 1);
- test(S("abcde"), 1, 5, S("abcde"), 0, 4, 1);
- test(S("abcde"), 1, 5, S("abcde"), 0, 5, 1);
- test(S("abcde"), 1, 5, S("abcde"), 0, 6, 1);
- test(S("abcde"), 1, 5, S("abcde"), 1, 0, 4);
- test(S("abcde"), 1, 5, S("abcde"), 1, 1, 3);
- test(S("abcde"), 1, 5, S("abcde"), 1, 2, 2);
- test(S("abcde"), 1, 5, S("abcde"), 1, 3, 1);
- test(S("abcde"), 1, 5, S("abcde"), 1, 4, 0);
- test(S("abcde"), 1, 5, S("abcde"), 1, 5, 0);
- test(S("abcde"), 1, 5, S("abcde"), 2, 0, 4);
- test(S("abcde"), 1, 5, S("abcde"), 2, 1, -1);
- test(S("abcde"), 1, 5, S("abcde"), 2, 2, -1);
- test(S("abcde"), 1, 5, S("abcde"), 2, 3, -1);
- test(S("abcde"), 1, 5, S("abcde"), 2, 4, -1);
- test(S("abcde"), 1, 5, S("abcde"), 4, 0, 4);
- test(S("abcde"), 1, 5, S("abcde"), 4, 1, -3);
- test(S("abcde"), 1, 5, S("abcde"), 4, 2, -3);
- test(S("abcde"), 1, 5, S("abcde"), 5, 0, 4);
- test(S("abcde"), 1, 5, S("abcde"), 5, 1, 4);
- test(S("abcde"), 1, 5, S("abcde"), 6, 0, 0);
- test(S("abcde"), 1, 5, S("abcdefghij"), 0, 0, 4);
- test(S("abcde"), 1, 5, S("abcdefghij"), 0, 1, 1);
- test(S("abcde"), 1, 5, S("abcdefghij"), 0, 5, 1);
- test(S("abcde"), 1, 5, S("abcdefghij"), 0, 9, 1);
- test(S("abcde"), 1, 5, S("abcdefghij"), 0, 10, 1);
- test(S("abcde"), 1, 5, S("abcdefghij"), 0, 11, 1);
- test(S("abcde"), 1, 5, S("abcdefghij"), 1, 0, 4);
- test(S("abcde"), 1, 5, S("abcdefghij"), 1, 1, 3);
- test(S("abcde"), 1, 5, S("abcdefghij"), 1, 4, 0);
- test(S("abcde"), 1, 5, S("abcdefghij"), 1, 8, -4);
- test(S("abcde"), 1, 5, S("abcdefghij"), 1, 9, -5);
- test(S("abcde"), 1, 5, S("abcdefghij"), 1, 10, -5);
- test(S("abcde"), 1, 5, S("abcdefghij"), 5, 0, 4);
- test(S("abcde"), 1, 5, S("abcdefghij"), 5, 1, -4);
- test(S("abcde"), 1, 5, S("abcdefghij"), 5, 2, -4);
- test(S("abcde"), 1, 5, S("abcdefghij"), 5, 4, -4);
- test(S("abcde"), 1, 5, S("abcdefghij"), 5, 5, -4);
- test(S("abcde"), 1, 5, S("abcdefghij"), 5, 6, -4);
- test(S("abcde"), 1, 5, S("abcdefghij"), 9, 0, 4);
- test(S("abcde"), 1, 5, S("abcdefghij"), 9, 1, -8);
- test(S("abcde"), 1, 5, S("abcdefghij"), 9, 2, -8);
- test(S("abcde"), 1, 5, S("abcdefghij"), 10, 0, 4);
- test(S("abcde"), 1, 5, S("abcdefghij"), 10, 1, 4);
- test(S("abcde"), 1, 5, S("abcdefghij"), 11, 0, 0);
- test(S("abcde"), 1, 5, S("abcdefghijklmnopqrst"), 0, 0, 4);
- test(S("abcde"), 1, 5, S("abcdefghijklmnopqrst"), 0, 1, 1);
- test(S("abcde"), 1, 5, S("abcdefghijklmnopqrst"), 0, 10, 1);
- test(S("abcde"), 1, 5, S("abcdefghijklmnopqrst"), 0, 19, 1);
- test(S("abcde"), 1, 5, S("abcdefghijklmnopqrst"), 0, 20, 1);
- test(S("abcde"), 1, 5, S("abcdefghijklmnopqrst"), 0, 21, 1);
- test(S("abcde"), 1, 5, S("abcdefghijklmnopqrst"), 1, 0, 4);
- test(S("abcde"), 1, 5, S("abcdefghijklmnopqrst"), 1, 1, 3);
- test(S("abcde"), 1, 5, S("abcdefghijklmnopqrst"), 1, 9, -5);
- test(S("abcde"), 1, 5, S("abcdefghijklmnopqrst"), 1, 18, -14);
- test(S("abcde"), 1, 5, S("abcdefghijklmnopqrst"), 1, 19, -15);
- test(S("abcde"), 1, 5, S("abcdefghijklmnopqrst"), 1, 20, -15);
- test(S("abcde"), 1, 5, S("abcdefghijklmnopqrst"), 10, 0, 4);
- test(S("abcde"), 1, 5, S("abcdefghijklmnopqrst"), 10, 1, -9);
+TEST_CONSTEXPR_CXX20 bool test10() {
+ test(S("abcde"), 1, 4, S("abcdefghij"), 5, 0, 4);
+ test(S("abcde"), 1, 4, S("abcdefghij"), 5, 1, -4);
+ test(S("abcde"), 1, 4, S("abcdefghij"), 5, 2, -4);
+ test(S("abcde"), 1, 4, S("abcdefghij"), 5, 4, -4);
+ test(S("abcde"), 1, 4, S("abcdefghij"), 5, 5, -4);
+ test(S("abcde"), 1, 4, S("abcdefghij"), 5, 6, -4);
+ test(S("abcde"), 1, 4, S("abcdefghij"), 9, 0, 4);
+ test(S("abcde"), 1, 4, S("abcdefghij"), 9, 1, -8);
+ test(S("abcde"), 1, 4, S("abcdefghij"), 9, 2, -8);
+ test(S("abcde"), 1, 4, S("abcdefghij"), 10, 0, 4);
+ test(S("abcde"), 1, 4, S("abcdefghij"), 10, 1, 4);
+ test(S("abcde"), 1, 4, S("abcdefghij"), 11, 0, 0);
+ test(S("abcde"), 1, 4, S("abcdefghijklmnopqrst"), 0, 0, 4);
+ test(S("abcde"), 1, 4, S("abcdefghijklmnopqrst"), 0, 1, 1);
+ test(S("abcde"), 1, 4, S("abcdefghijklmnopqrst"), 0, 10, 1);
+ test(S("abcde"), 1, 4, S("abcdefghijklmnopqrst"), 0, 19, 1);
+ test(S("abcde"), 1, 4, S("abcdefghijklmnopqrst"), 0, 20, 1);
+ test(S("abcde"), 1, 4, S("abcdefghijklmnopqrst"), 0, 21, 1);
+ test(S("abcde"), 1, 4, S("abcdefghijklmnopqrst"), 1, 0, 4);
+ test(S("abcde"), 1, 4, S("abcdefghijklmnopqrst"), 1, 1, 3);
+ test(S("abcde"), 1, 4, S("abcdefghijklmnopqrst"), 1, 9, -5);
+ test(S("abcde"), 1, 4, S("abcdefghijklmnopqrst"), 1, 18, -14);
+ test(S("abcde"), 1, 4, S("abcdefghijklmnopqrst"), 1, 19, -15);
+ test(S("abcde"), 1, 4, S("abcdefghijklmnopqrst"), 1, 20, -15);
+ test(S("abcde"), 1, 4, S("abcdefghijklmnopqrst"), 10, 0, 4);
+ test(S("abcde"), 1, 4, S("abcdefghijklmnopqrst"), 10, 1, -9);
+ test(S("abcde"), 1, 4, S("abcdefghijklmnopqrst"), 10, 5, -9);
+ test(S("abcde"), 1, 4, S("abcdefghijklmnopqrst"), 10, 9, -9);
+ test(S("abcde"), 1, 4, S("abcdefghijklmnopqrst"), 10, 10, -9);
+ test(S("abcde"), 1, 4, S("abcdefghijklmnopqrst"), 10, 11, -9);
+ test(S("abcde"), 1, 4, S("abcdefghijklmnopqrst"), 19, 0, 4);
+ test(S("abcde"), 1, 4, S("abcdefghijklmnopqrst"), 19, 1, -18);
+ test(S("abcde"), 1, 4, S("abcdefghijklmnopqrst"), 19, 2, -18);
+ test(S("abcde"), 1, 4, S("abcdefghijklmnopqrst"), 20, 0, 4);
+ test(S("abcde"), 1, 4, S("abcdefghijklmnopqrst"), 20, 1, 4);
+ test(S("abcde"), 1, 4, S("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcde"), 1, 5, S(""), 0, 0, 4);
+ test(S("abcde"), 1, 5, S(""), 0, 1, 4);
+ test(S("abcde"), 1, 5, S(""), 1, 0, 0);
+ test(S("abcde"), 1, 5, S("abcde"), 0, 0, 4);
+ test(S("abcde"), 1, 5, S("abcde"), 0, 1, 1);
+ test(S("abcde"), 1, 5, S("abcde"), 0, 2, 1);
+ test(S("abcde"), 1, 5, S("abcde"), 0, 4, 1);
+ test(S("abcde"), 1, 5, S("abcde"), 0, 5, 1);
+ test(S("abcde"), 1, 5, S("abcde"), 0, 6, 1);
+ test(S("abcde"), 1, 5, S("abcde"), 1, 0, 4);
+ test(S("abcde"), 1, 5, S("abcde"), 1, 1, 3);
+ test(S("abcde"), 1, 5, S("abcde"), 1, 2, 2);
+ test(S("abcde"), 1, 5, S("abcde"), 1, 3, 1);
+ test(S("abcde"), 1, 5, S("abcde"), 1, 4, 0);
+ test(S("abcde"), 1, 5, S("abcde"), 1, 5, 0);
+ test(S("abcde"), 1, 5, S("abcde"), 2, 0, 4);
+ test(S("abcde"), 1, 5, S("abcde"), 2, 1, -1);
+ test(S("abcde"), 1, 5, S("abcde"), 2, 2, -1);
+ test(S("abcde"), 1, 5, S("abcde"), 2, 3, -1);
+ test(S("abcde"), 1, 5, S("abcde"), 2, 4, -1);
+ test(S("abcde"), 1, 5, S("abcde"), 4, 0, 4);
+ test(S("abcde"), 1, 5, S("abcde"), 4, 1, -3);
+ test(S("abcde"), 1, 5, S("abcde"), 4, 2, -3);
+ test(S("abcde"), 1, 5, S("abcde"), 5, 0, 4);
+ test(S("abcde"), 1, 5, S("abcde"), 5, 1, 4);
+ test(S("abcde"), 1, 5, S("abcde"), 6, 0, 0);
+ test(S("abcde"), 1, 5, S("abcdefghij"), 0, 0, 4);
+ test(S("abcde"), 1, 5, S("abcdefghij"), 0, 1, 1);
+ test(S("abcde"), 1, 5, S("abcdefghij"), 0, 5, 1);
+ test(S("abcde"), 1, 5, S("abcdefghij"), 0, 9, 1);
+ test(S("abcde"), 1, 5, S("abcdefghij"), 0, 10, 1);
+ test(S("abcde"), 1, 5, S("abcdefghij"), 0, 11, 1);
+ test(S("abcde"), 1, 5, S("abcdefghij"), 1, 0, 4);
+ test(S("abcde"), 1, 5, S("abcdefghij"), 1, 1, 3);
+ test(S("abcde"), 1, 5, S("abcdefghij"), 1, 4, 0);
+ test(S("abcde"), 1, 5, S("abcdefghij"), 1, 8, -4);
+ test(S("abcde"), 1, 5, S("abcdefghij"), 1, 9, -5);
+ test(S("abcde"), 1, 5, S("abcdefghij"), 1, 10, -5);
+ test(S("abcde"), 1, 5, S("abcdefghij"), 5, 0, 4);
+ test(S("abcde"), 1, 5, S("abcdefghij"), 5, 1, -4);
+ test(S("abcde"), 1, 5, S("abcdefghij"), 5, 2, -4);
+ test(S("abcde"), 1, 5, S("abcdefghij"), 5, 4, -4);
+ test(S("abcde"), 1, 5, S("abcdefghij"), 5, 5, -4);
+ test(S("abcde"), 1, 5, S("abcdefghij"), 5, 6, -4);
+ test(S("abcde"), 1, 5, S("abcdefghij"), 9, 0, 4);
+ test(S("abcde"), 1, 5, S("abcdefghij"), 9, 1, -8);
+ test(S("abcde"), 1, 5, S("abcdefghij"), 9, 2, -8);
+ test(S("abcde"), 1, 5, S("abcdefghij"), 10, 0, 4);
+ test(S("abcde"), 1, 5, S("abcdefghij"), 10, 1, 4);
+ test(S("abcde"), 1, 5, S("abcdefghij"), 11, 0, 0);
+ test(S("abcde"), 1, 5, S("abcdefghijklmnopqrst"), 0, 0, 4);
+ test(S("abcde"), 1, 5, S("abcdefghijklmnopqrst"), 0, 1, 1);
+ test(S("abcde"), 1, 5, S("abcdefghijklmnopqrst"), 0, 10, 1);
+ test(S("abcde"), 1, 5, S("abcdefghijklmnopqrst"), 0, 19, 1);
+ test(S("abcde"), 1, 5, S("abcdefghijklmnopqrst"), 0, 20, 1);
+ test(S("abcde"), 1, 5, S("abcdefghijklmnopqrst"), 0, 21, 1);
+ test(S("abcde"), 1, 5, S("abcdefghijklmnopqrst"), 1, 0, 4);
+ test(S("abcde"), 1, 5, S("abcdefghijklmnopqrst"), 1, 1, 3);
+ test(S("abcde"), 1, 5, S("abcdefghijklmnopqrst"), 1, 9, -5);
+ test(S("abcde"), 1, 5, S("abcdefghijklmnopqrst"), 1, 18, -14);
+ test(S("abcde"), 1, 5, S("abcdefghijklmnopqrst"), 1, 19, -15);
+ test(S("abcde"), 1, 5, S("abcdefghijklmnopqrst"), 1, 20, -15);
+ test(S("abcde"), 1, 5, S("abcdefghijklmnopqrst"), 10, 0, 4);
+ test(S("abcde"), 1, 5, S("abcdefghijklmnopqrst"), 10, 1, -9);
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test11()
-{
- test(S("abcde"), 1, 5, S("abcdefghijklmnopqrst"), 10, 5, -9);
- test(S("abcde"), 1, 5, S("abcdefghijklmnopqrst"), 10, 9, -9);
- test(S("abcde"), 1, 5, S("abcdefghijklmnopqrst"), 10, 10, -9);
- test(S("abcde"), 1, 5, S("abcdefghijklmnopqrst"), 10, 11, -9);
- test(S("abcde"), 1, 5, S("abcdefghijklmnopqrst"), 19, 0, 4);
- test(S("abcde"), 1, 5, S("abcdefghijklmnopqrst"), 19, 1, -18);
- test(S("abcde"), 1, 5, S("abcdefghijklmnopqrst"), 19, 2, -18);
- test(S("abcde"), 1, 5, S("abcdefghijklmnopqrst"), 20, 0, 4);
- test(S("abcde"), 1, 5, S("abcdefghijklmnopqrst"), 20, 1, 4);
- test(S("abcde"), 1, 5, S("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcde"), 2, 0, S(""), 0, 0, 0);
- test(S("abcde"), 2, 0, S(""), 0, 1, 0);
- test(S("abcde"), 2, 0, S(""), 1, 0, 0);
- test(S("abcde"), 2, 0, S("abcde"), 0, 0, 0);
- test(S("abcde"), 2, 0, S("abcde"), 0, 1, -1);
- test(S("abcde"), 2, 0, S("abcde"), 0, 2, -2);
- test(S("abcde"), 2, 0, S("abcde"), 0, 4, -4);
- test(S("abcde"), 2, 0, S("abcde"), 0, 5, -5);
- test(S("abcde"), 2, 0, S("abcde"), 0, 6, -5);
- test(S("abcde"), 2, 0, S("abcde"), 1, 0, 0);
- test(S("abcde"), 2, 0, S("abcde"), 1, 1, -1);
- test(S("abcde"), 2, 0, S("abcde"), 1, 2, -2);
- test(S("abcde"), 2, 0, S("abcde"), 1, 3, -3);
- test(S("abcde"), 2, 0, S("abcde"), 1, 4, -4);
- test(S("abcde"), 2, 0, S("abcde"), 1, 5, -4);
- test(S("abcde"), 2, 0, S("abcde"), 2, 0, 0);
- test(S("abcde"), 2, 0, S("abcde"), 2, 1, -1);
- test(S("abcde"), 2, 0, S("abcde"), 2, 2, -2);
- test(S("abcde"), 2, 0, S("abcde"), 2, 3, -3);
- test(S("abcde"), 2, 0, S("abcde"), 2, 4, -3);
- test(S("abcde"), 2, 0, S("abcde"), 4, 0, 0);
- test(S("abcde"), 2, 0, S("abcde"), 4, 1, -1);
- test(S("abcde"), 2, 0, S("abcde"), 4, 2, -1);
- test(S("abcde"), 2, 0, S("abcde"), 5, 0, 0);
- test(S("abcde"), 2, 0, S("abcde"), 5, 1, 0);
- test(S("abcde"), 2, 0, S("abcde"), 6, 0, 0);
- test(S("abcde"), 2, 0, S("abcdefghij"), 0, 0, 0);
- test(S("abcde"), 2, 0, S("abcdefghij"), 0, 1, -1);
- test(S("abcde"), 2, 0, S("abcdefghij"), 0, 5, -5);
- test(S("abcde"), 2, 0, S("abcdefghij"), 0, 9, -9);
- test(S("abcde"), 2, 0, S("abcdefghij"), 0, 10, -10);
- test(S("abcde"), 2, 0, S("abcdefghij"), 0, 11, -10);
- test(S("abcde"), 2, 0, S("abcdefghij"), 1, 0, 0);
- test(S("abcde"), 2, 0, S("abcdefghij"), 1, 1, -1);
- test(S("abcde"), 2, 0, S("abcdefghij"), 1, 4, -4);
- test(S("abcde"), 2, 0, S("abcdefghij"), 1, 8, -8);
- test(S("abcde"), 2, 0, S("abcdefghij"), 1, 9, -9);
- test(S("abcde"), 2, 0, S("abcdefghij"), 1, 10, -9);
- test(S("abcde"), 2, 0, S("abcdefghij"), 5, 0, 0);
- test(S("abcde"), 2, 0, S("abcdefghij"), 5, 1, -1);
- test(S("abcde"), 2, 0, S("abcdefghij"), 5, 2, -2);
- test(S("abcde"), 2, 0, S("abcdefghij"), 5, 4, -4);
- test(S("abcde"), 2, 0, S("abcdefghij"), 5, 5, -5);
- test(S("abcde"), 2, 0, S("abcdefghij"), 5, 6, -5);
- test(S("abcde"), 2, 0, S("abcdefghij"), 9, 0, 0);
- test(S("abcde"), 2, 0, S("abcdefghij"), 9, 1, -1);
- test(S("abcde"), 2, 0, S("abcdefghij"), 9, 2, -1);
- test(S("abcde"), 2, 0, S("abcdefghij"), 10, 0, 0);
- test(S("abcde"), 2, 0, S("abcdefghij"), 10, 1, 0);
- test(S("abcde"), 2, 0, S("abcdefghij"), 11, 0, 0);
- test(S("abcde"), 2, 0, S("abcdefghijklmnopqrst"), 0, 0, 0);
- test(S("abcde"), 2, 0, S("abcdefghijklmnopqrst"), 0, 1, -1);
- test(S("abcde"), 2, 0, S("abcdefghijklmnopqrst"), 0, 10, -10);
- test(S("abcde"), 2, 0, S("abcdefghijklmnopqrst"), 0, 19, -19);
- test(S("abcde"), 2, 0, S("abcdefghijklmnopqrst"), 0, 20, -20);
- test(S("abcde"), 2, 0, S("abcdefghijklmnopqrst"), 0, 21, -20);
- test(S("abcde"), 2, 0, S("abcdefghijklmnopqrst"), 1, 0, 0);
- test(S("abcde"), 2, 0, S("abcdefghijklmnopqrst"), 1, 1, -1);
- test(S("abcde"), 2, 0, S("abcdefghijklmnopqrst"), 1, 9, -9);
- test(S("abcde"), 2, 0, S("abcdefghijklmnopqrst"), 1, 18, -18);
- test(S("abcde"), 2, 0, S("abcdefghijklmnopqrst"), 1, 19, -19);
- test(S("abcde"), 2, 0, S("abcdefghijklmnopqrst"), 1, 20, -19);
- test(S("abcde"), 2, 0, S("abcdefghijklmnopqrst"), 10, 0, 0);
- test(S("abcde"), 2, 0, S("abcdefghijklmnopqrst"), 10, 1, -1);
- test(S("abcde"), 2, 0, S("abcdefghijklmnopqrst"), 10, 5, -5);
- test(S("abcde"), 2, 0, S("abcdefghijklmnopqrst"), 10, 9, -9);
- test(S("abcde"), 2, 0, S("abcdefghijklmnopqrst"), 10, 10, -10);
- test(S("abcde"), 2, 0, S("abcdefghijklmnopqrst"), 10, 11, -10);
- test(S("abcde"), 2, 0, S("abcdefghijklmnopqrst"), 19, 0, 0);
- test(S("abcde"), 2, 0, S("abcdefghijklmnopqrst"), 19, 1, -1);
- test(S("abcde"), 2, 0, S("abcdefghijklmnopqrst"), 19, 2, -1);
- test(S("abcde"), 2, 0, S("abcdefghijklmnopqrst"), 20, 0, 0);
- test(S("abcde"), 2, 0, S("abcdefghijklmnopqrst"), 20, 1, 0);
- test(S("abcde"), 2, 0, S("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcde"), 2, 1, S(""), 0, 0, 1);
- test(S("abcde"), 2, 1, S(""), 0, 1, 1);
- test(S("abcde"), 2, 1, S(""), 1, 0, 0);
- test(S("abcde"), 2, 1, S("abcde"), 0, 0, 1);
- test(S("abcde"), 2, 1, S("abcde"), 0, 1, 2);
- test(S("abcde"), 2, 1, S("abcde"), 0, 2, 2);
- test(S("abcde"), 2, 1, S("abcde"), 0, 4, 2);
- test(S("abcde"), 2, 1, S("abcde"), 0, 5, 2);
- test(S("abcde"), 2, 1, S("abcde"), 0, 6, 2);
- test(S("abcde"), 2, 1, S("abcde"), 1, 0, 1);
- test(S("abcde"), 2, 1, S("abcde"), 1, 1, 1);
- test(S("abcde"), 2, 1, S("abcde"), 1, 2, 1);
- test(S("abcde"), 2, 1, S("abcde"), 1, 3, 1);
- test(S("abcde"), 2, 1, S("abcde"), 1, 4, 1);
- test(S("abcde"), 2, 1, S("abcde"), 1, 5, 1);
- test(S("abcde"), 2, 1, S("abcde"), 2, 0, 1);
+TEST_CONSTEXPR_CXX20 bool test11() {
+ test(S("abcde"), 1, 5, S("abcdefghijklmnopqrst"), 10, 5, -9);
+ test(S("abcde"), 1, 5, S("abcdefghijklmnopqrst"), 10, 9, -9);
+ test(S("abcde"), 1, 5, S("abcdefghijklmnopqrst"), 10, 10, -9);
+ test(S("abcde"), 1, 5, S("abcdefghijklmnopqrst"), 10, 11, -9);
+ test(S("abcde"), 1, 5, S("abcdefghijklmnopqrst"), 19, 0, 4);
+ test(S("abcde"), 1, 5, S("abcdefghijklmnopqrst"), 19, 1, -18);
+ test(S("abcde"), 1, 5, S("abcdefghijklmnopqrst"), 19, 2, -18);
+ test(S("abcde"), 1, 5, S("abcdefghijklmnopqrst"), 20, 0, 4);
+ test(S("abcde"), 1, 5, S("abcdefghijklmnopqrst"), 20, 1, 4);
+ test(S("abcde"), 1, 5, S("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcde"), 2, 0, S(""), 0, 0, 0);
+ test(S("abcde"), 2, 0, S(""), 0, 1, 0);
+ test(S("abcde"), 2, 0, S(""), 1, 0, 0);
+ test(S("abcde"), 2, 0, S("abcde"), 0, 0, 0);
+ test(S("abcde"), 2, 0, S("abcde"), 0, 1, -1);
+ test(S("abcde"), 2, 0, S("abcde"), 0, 2, -2);
+ test(S("abcde"), 2, 0, S("abcde"), 0, 4, -4);
+ test(S("abcde"), 2, 0, S("abcde"), 0, 5, -5);
+ test(S("abcde"), 2, 0, S("abcde"), 0, 6, -5);
+ test(S("abcde"), 2, 0, S("abcde"), 1, 0, 0);
+ test(S("abcde"), 2, 0, S("abcde"), 1, 1, -1);
+ test(S("abcde"), 2, 0, S("abcde"), 1, 2, -2);
+ test(S("abcde"), 2, 0, S("abcde"), 1, 3, -3);
+ test(S("abcde"), 2, 0, S("abcde"), 1, 4, -4);
+ test(S("abcde"), 2, 0, S("abcde"), 1, 5, -4);
+ test(S("abcde"), 2, 0, S("abcde"), 2, 0, 0);
+ test(S("abcde"), 2, 0, S("abcde"), 2, 1, -1);
+ test(S("abcde"), 2, 0, S("abcde"), 2, 2, -2);
+ test(S("abcde"), 2, 0, S("abcde"), 2, 3, -3);
+ test(S("abcde"), 2, 0, S("abcde"), 2, 4, -3);
+ test(S("abcde"), 2, 0, S("abcde"), 4, 0, 0);
+ test(S("abcde"), 2, 0, S("abcde"), 4, 1, -1);
+ test(S("abcde"), 2, 0, S("abcde"), 4, 2, -1);
+ test(S("abcde"), 2, 0, S("abcde"), 5, 0, 0);
+ test(S("abcde"), 2, 0, S("abcde"), 5, 1, 0);
+ test(S("abcde"), 2, 0, S("abcde"), 6, 0, 0);
+ test(S("abcde"), 2, 0, S("abcdefghij"), 0, 0, 0);
+ test(S("abcde"), 2, 0, S("abcdefghij"), 0, 1, -1);
+ test(S("abcde"), 2, 0, S("abcdefghij"), 0, 5, -5);
+ test(S("abcde"), 2, 0, S("abcdefghij"), 0, 9, -9);
+ test(S("abcde"), 2, 0, S("abcdefghij"), 0, 10, -10);
+ test(S("abcde"), 2, 0, S("abcdefghij"), 0, 11, -10);
+ test(S("abcde"), 2, 0, S("abcdefghij"), 1, 0, 0);
+ test(S("abcde"), 2, 0, S("abcdefghij"), 1, 1, -1);
+ test(S("abcde"), 2, 0, S("abcdefghij"), 1, 4, -4);
+ test(S("abcde"), 2, 0, S("abcdefghij"), 1, 8, -8);
+ test(S("abcde"), 2, 0, S("abcdefghij"), 1, 9, -9);
+ test(S("abcde"), 2, 0, S("abcdefghij"), 1, 10, -9);
+ test(S("abcde"), 2, 0, S("abcdefghij"), 5, 0, 0);
+ test(S("abcde"), 2, 0, S("abcdefghij"), 5, 1, -1);
+ test(S("abcde"), 2, 0, S("abcdefghij"), 5, 2, -2);
+ test(S("abcde"), 2, 0, S("abcdefghij"), 5, 4, -4);
+ test(S("abcde"), 2, 0, S("abcdefghij"), 5, 5, -5);
+ test(S("abcde"), 2, 0, S("abcdefghij"), 5, 6, -5);
+ test(S("abcde"), 2, 0, S("abcdefghij"), 9, 0, 0);
+ test(S("abcde"), 2, 0, S("abcdefghij"), 9, 1, -1);
+ test(S("abcde"), 2, 0, S("abcdefghij"), 9, 2, -1);
+ test(S("abcde"), 2, 0, S("abcdefghij"), 10, 0, 0);
+ test(S("abcde"), 2, 0, S("abcdefghij"), 10, 1, 0);
+ test(S("abcde"), 2, 0, S("abcdefghij"), 11, 0, 0);
+ test(S("abcde"), 2, 0, S("abcdefghijklmnopqrst"), 0, 0, 0);
+ test(S("abcde"), 2, 0, S("abcdefghijklmnopqrst"), 0, 1, -1);
+ test(S("abcde"), 2, 0, S("abcdefghijklmnopqrst"), 0, 10, -10);
+ test(S("abcde"), 2, 0, S("abcdefghijklmnopqrst"), 0, 19, -19);
+ test(S("abcde"), 2, 0, S("abcdefghijklmnopqrst"), 0, 20, -20);
+ test(S("abcde"), 2, 0, S("abcdefghijklmnopqrst"), 0, 21, -20);
+ test(S("abcde"), 2, 0, S("abcdefghijklmnopqrst"), 1, 0, 0);
+ test(S("abcde"), 2, 0, S("abcdefghijklmnopqrst"), 1, 1, -1);
+ test(S("abcde"), 2, 0, S("abcdefghijklmnopqrst"), 1, 9, -9);
+ test(S("abcde"), 2, 0, S("abcdefghijklmnopqrst"), 1, 18, -18);
+ test(S("abcde"), 2, 0, S("abcdefghijklmnopqrst"), 1, 19, -19);
+ test(S("abcde"), 2, 0, S("abcdefghijklmnopqrst"), 1, 20, -19);
+ test(S("abcde"), 2, 0, S("abcdefghijklmnopqrst"), 10, 0, 0);
+ test(S("abcde"), 2, 0, S("abcdefghijklmnopqrst"), 10, 1, -1);
+ test(S("abcde"), 2, 0, S("abcdefghijklmnopqrst"), 10, 5, -5);
+ test(S("abcde"), 2, 0, S("abcdefghijklmnopqrst"), 10, 9, -9);
+ test(S("abcde"), 2, 0, S("abcdefghijklmnopqrst"), 10, 10, -10);
+ test(S("abcde"), 2, 0, S("abcdefghijklmnopqrst"), 10, 11, -10);
+ test(S("abcde"), 2, 0, S("abcdefghijklmnopqrst"), 19, 0, 0);
+ test(S("abcde"), 2, 0, S("abcdefghijklmnopqrst"), 19, 1, -1);
+ test(S("abcde"), 2, 0, S("abcdefghijklmnopqrst"), 19, 2, -1);
+ test(S("abcde"), 2, 0, S("abcdefghijklmnopqrst"), 20, 0, 0);
+ test(S("abcde"), 2, 0, S("abcdefghijklmnopqrst"), 20, 1, 0);
+ test(S("abcde"), 2, 0, S("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcde"), 2, 1, S(""), 0, 0, 1);
+ test(S("abcde"), 2, 1, S(""), 0, 1, 1);
+ test(S("abcde"), 2, 1, S(""), 1, 0, 0);
+ test(S("abcde"), 2, 1, S("abcde"), 0, 0, 1);
+ test(S("abcde"), 2, 1, S("abcde"), 0, 1, 2);
+ test(S("abcde"), 2, 1, S("abcde"), 0, 2, 2);
+ test(S("abcde"), 2, 1, S("abcde"), 0, 4, 2);
+ test(S("abcde"), 2, 1, S("abcde"), 0, 5, 2);
+ test(S("abcde"), 2, 1, S("abcde"), 0, 6, 2);
+ test(S("abcde"), 2, 1, S("abcde"), 1, 0, 1);
+ test(S("abcde"), 2, 1, S("abcde"), 1, 1, 1);
+ test(S("abcde"), 2, 1, S("abcde"), 1, 2, 1);
+ test(S("abcde"), 2, 1, S("abcde"), 1, 3, 1);
+ test(S("abcde"), 2, 1, S("abcde"), 1, 4, 1);
+ test(S("abcde"), 2, 1, S("abcde"), 1, 5, 1);
+ test(S("abcde"), 2, 1, S("abcde"), 2, 0, 1);
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test12()
-{
- test(S("abcde"), 2, 1, S("abcde"), 2, 1, 0);
- test(S("abcde"), 2, 1, S("abcde"), 2, 2, -1);
- test(S("abcde"), 2, 1, S("abcde"), 2, 3, -2);
- test(S("abcde"), 2, 1, S("abcde"), 2, 4, -2);
- test(S("abcde"), 2, 1, S("abcde"), 4, 0, 1);
- test(S("abcde"), 2, 1, S("abcde"), 4, 1, -2);
- test(S("abcde"), 2, 1, S("abcde"), 4, 2, -2);
- test(S("abcde"), 2, 1, S("abcde"), 5, 0, 1);
- test(S("abcde"), 2, 1, S("abcde"), 5, 1, 1);
- test(S("abcde"), 2, 1, S("abcde"), 6, 0, 0);
- test(S("abcde"), 2, 1, S("abcdefghij"), 0, 0, 1);
- test(S("abcde"), 2, 1, S("abcdefghij"), 0, 1, 2);
- test(S("abcde"), 2, 1, S("abcdefghij"), 0, 5, 2);
- test(S("abcde"), 2, 1, S("abcdefghij"), 0, 9, 2);
- test(S("abcde"), 2, 1, S("abcdefghij"), 0, 10, 2);
- test(S("abcde"), 2, 1, S("abcdefghij"), 0, 11, 2);
- test(S("abcde"), 2, 1, S("abcdefghij"), 1, 0, 1);
- test(S("abcde"), 2, 1, S("abcdefghij"), 1, 1, 1);
- test(S("abcde"), 2, 1, S("abcdefghij"), 1, 4, 1);
- test(S("abcde"), 2, 1, S("abcdefghij"), 1, 8, 1);
- test(S("abcde"), 2, 1, S("abcdefghij"), 1, 9, 1);
- test(S("abcde"), 2, 1, S("abcdefghij"), 1, 10, 1);
- test(S("abcde"), 2, 1, S("abcdefghij"), 5, 0, 1);
- test(S("abcde"), 2, 1, S("abcdefghij"), 5, 1, -3);
- test(S("abcde"), 2, 1, S("abcdefghij"), 5, 2, -3);
- test(S("abcde"), 2, 1, S("abcdefghij"), 5, 4, -3);
- test(S("abcde"), 2, 1, S("abcdefghij"), 5, 5, -3);
- test(S("abcde"), 2, 1, S("abcdefghij"), 5, 6, -3);
- test(S("abcde"), 2, 1, S("abcdefghij"), 9, 0, 1);
- test(S("abcde"), 2, 1, S("abcdefghij"), 9, 1, -7);
- test(S("abcde"), 2, 1, S("abcdefghij"), 9, 2, -7);
- test(S("abcde"), 2, 1, S("abcdefghij"), 10, 0, 1);
- test(S("abcde"), 2, 1, S("abcdefghij"), 10, 1, 1);
- test(S("abcde"), 2, 1, S("abcdefghij"), 11, 0, 0);
- test(S("abcde"), 2, 1, S("abcdefghijklmnopqrst"), 0, 0, 1);
- test(S("abcde"), 2, 1, S("abcdefghijklmnopqrst"), 0, 1, 2);
- test(S("abcde"), 2, 1, S("abcdefghijklmnopqrst"), 0, 10, 2);
- test(S("abcde"), 2, 1, S("abcdefghijklmnopqrst"), 0, 19, 2);
- test(S("abcde"), 2, 1, S("abcdefghijklmnopqrst"), 0, 20, 2);
- test(S("abcde"), 2, 1, S("abcdefghijklmnopqrst"), 0, 21, 2);
- test(S("abcde"), 2, 1, S("abcdefghijklmnopqrst"), 1, 0, 1);
- test(S("abcde"), 2, 1, S("abcdefghijklmnopqrst"), 1, 1, 1);
- test(S("abcde"), 2, 1, S("abcdefghijklmnopqrst"), 1, 9, 1);
- test(S("abcde"), 2, 1, S("abcdefghijklmnopqrst"), 1, 18, 1);
- test(S("abcde"), 2, 1, S("abcdefghijklmnopqrst"), 1, 19, 1);
- test(S("abcde"), 2, 1, S("abcdefghijklmnopqrst"), 1, 20, 1);
- test(S("abcde"), 2, 1, S("abcdefghijklmnopqrst"), 10, 0, 1);
- test(S("abcde"), 2, 1, S("abcdefghijklmnopqrst"), 10, 1, -8);
- test(S("abcde"), 2, 1, S("abcdefghijklmnopqrst"), 10, 5, -8);
- test(S("abcde"), 2, 1, S("abcdefghijklmnopqrst"), 10, 9, -8);
- test(S("abcde"), 2, 1, S("abcdefghijklmnopqrst"), 10, 10, -8);
- test(S("abcde"), 2, 1, S("abcdefghijklmnopqrst"), 10, 11, -8);
- test(S("abcde"), 2, 1, S("abcdefghijklmnopqrst"), 19, 0, 1);
- test(S("abcde"), 2, 1, S("abcdefghijklmnopqrst"), 19, 1, -17);
- test(S("abcde"), 2, 1, S("abcdefghijklmnopqrst"), 19, 2, -17);
- test(S("abcde"), 2, 1, S("abcdefghijklmnopqrst"), 20, 0, 1);
- test(S("abcde"), 2, 1, S("abcdefghijklmnopqrst"), 20, 1, 1);
- test(S("abcde"), 2, 1, S("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcde"), 2, 2, S(""), 0, 0, 2);
- test(S("abcde"), 2, 2, S(""), 0, 1, 2);
- test(S("abcde"), 2, 2, S(""), 1, 0, 0);
- test(S("abcde"), 2, 2, S("abcde"), 0, 0, 2);
- test(S("abcde"), 2, 2, S("abcde"), 0, 1, 2);
- test(S("abcde"), 2, 2, S("abcde"), 0, 2, 2);
- test(S("abcde"), 2, 2, S("abcde"), 0, 4, 2);
- test(S("abcde"), 2, 2, S("abcde"), 0, 5, 2);
- test(S("abcde"), 2, 2, S("abcde"), 0, 6, 2);
- test(S("abcde"), 2, 2, S("abcde"), 1, 0, 2);
- test(S("abcde"), 2, 2, S("abcde"), 1, 1, 1);
- test(S("abcde"), 2, 2, S("abcde"), 1, 2, 1);
- test(S("abcde"), 2, 2, S("abcde"), 1, 3, 1);
- test(S("abcde"), 2, 2, S("abcde"), 1, 4, 1);
- test(S("abcde"), 2, 2, S("abcde"), 1, 5, 1);
- test(S("abcde"), 2, 2, S("abcde"), 2, 0, 2);
- test(S("abcde"), 2, 2, S("abcde"), 2, 1, 1);
- test(S("abcde"), 2, 2, S("abcde"), 2, 2, 0);
- test(S("abcde"), 2, 2, S("abcde"), 2, 3, -1);
- test(S("abcde"), 2, 2, S("abcde"), 2, 4, -1);
- test(S("abcde"), 2, 2, S("abcde"), 4, 0, 2);
- test(S("abcde"), 2, 2, S("abcde"), 4, 1, -2);
- test(S("abcde"), 2, 2, S("abcde"), 4, 2, -2);
- test(S("abcde"), 2, 2, S("abcde"), 5, 0, 2);
- test(S("abcde"), 2, 2, S("abcde"), 5, 1, 2);
- test(S("abcde"), 2, 2, S("abcde"), 6, 0, 0);
- test(S("abcde"), 2, 2, S("abcdefghij"), 0, 0, 2);
- test(S("abcde"), 2, 2, S("abcdefghij"), 0, 1, 2);
- test(S("abcde"), 2, 2, S("abcdefghij"), 0, 5, 2);
- test(S("abcde"), 2, 2, S("abcdefghij"), 0, 9, 2);
- test(S("abcde"), 2, 2, S("abcdefghij"), 0, 10, 2);
- test(S("abcde"), 2, 2, S("abcdefghij"), 0, 11, 2);
- test(S("abcde"), 2, 2, S("abcdefghij"), 1, 0, 2);
- test(S("abcde"), 2, 2, S("abcdefghij"), 1, 1, 1);
- test(S("abcde"), 2, 2, S("abcdefghij"), 1, 4, 1);
- test(S("abcde"), 2, 2, S("abcdefghij"), 1, 8, 1);
- test(S("abcde"), 2, 2, S("abcdefghij"), 1, 9, 1);
- test(S("abcde"), 2, 2, S("abcdefghij"), 1, 10, 1);
- test(S("abcde"), 2, 2, S("abcdefghij"), 5, 0, 2);
- test(S("abcde"), 2, 2, S("abcdefghij"), 5, 1, -3);
- test(S("abcde"), 2, 2, S("abcdefghij"), 5, 2, -3);
- test(S("abcde"), 2, 2, S("abcdefghij"), 5, 4, -3);
+TEST_CONSTEXPR_CXX20 bool test12() {
+ test(S("abcde"), 2, 1, S("abcde"), 2, 1, 0);
+ test(S("abcde"), 2, 1, S("abcde"), 2, 2, -1);
+ test(S("abcde"), 2, 1, S("abcde"), 2, 3, -2);
+ test(S("abcde"), 2, 1, S("abcde"), 2, 4, -2);
+ test(S("abcde"), 2, 1, S("abcde"), 4, 0, 1);
+ test(S("abcde"), 2, 1, S("abcde"), 4, 1, -2);
+ test(S("abcde"), 2, 1, S("abcde"), 4, 2, -2);
+ test(S("abcde"), 2, 1, S("abcde"), 5, 0, 1);
+ test(S("abcde"), 2, 1, S("abcde"), 5, 1, 1);
+ test(S("abcde"), 2, 1, S("abcde"), 6, 0, 0);
+ test(S("abcde"), 2, 1, S("abcdefghij"), 0, 0, 1);
+ test(S("abcde"), 2, 1, S("abcdefghij"), 0, 1, 2);
+ test(S("abcde"), 2, 1, S("abcdefghij"), 0, 5, 2);
+ test(S("abcde"), 2, 1, S("abcdefghij"), 0, 9, 2);
+ test(S("abcde"), 2, 1, S("abcdefghij"), 0, 10, 2);
+ test(S("abcde"), 2, 1, S("abcdefghij"), 0, 11, 2);
+ test(S("abcde"), 2, 1, S("abcdefghij"), 1, 0, 1);
+ test(S("abcde"), 2, 1, S("abcdefghij"), 1, 1, 1);
+ test(S("abcde"), 2, 1, S("abcdefghij"), 1, 4, 1);
+ test(S("abcde"), 2, 1, S("abcdefghij"), 1, 8, 1);
+ test(S("abcde"), 2, 1, S("abcdefghij"), 1, 9, 1);
+ test(S("abcde"), 2, 1, S("abcdefghij"), 1, 10, 1);
+ test(S("abcde"), 2, 1, S("abcdefghij"), 5, 0, 1);
+ test(S("abcde"), 2, 1, S("abcdefghij"), 5, 1, -3);
+ test(S("abcde"), 2, 1, S("abcdefghij"), 5, 2, -3);
+ test(S("abcde"), 2, 1, S("abcdefghij"), 5, 4, -3);
+ test(S("abcde"), 2, 1, S("abcdefghij"), 5, 5, -3);
+ test(S("abcde"), 2, 1, S("abcdefghij"), 5, 6, -3);
+ test(S("abcde"), 2, 1, S("abcdefghij"), 9, 0, 1);
+ test(S("abcde"), 2, 1, S("abcdefghij"), 9, 1, -7);
+ test(S("abcde"), 2, 1, S("abcdefghij"), 9, 2, -7);
+ test(S("abcde"), 2, 1, S("abcdefghij"), 10, 0, 1);
+ test(S("abcde"), 2, 1, S("abcdefghij"), 10, 1, 1);
+ test(S("abcde"), 2, 1, S("abcdefghij"), 11, 0, 0);
+ test(S("abcde"), 2, 1, S("abcdefghijklmnopqrst"), 0, 0, 1);
+ test(S("abcde"), 2, 1, S("abcdefghijklmnopqrst"), 0, 1, 2);
+ test(S("abcde"), 2, 1, S("abcdefghijklmnopqrst"), 0, 10, 2);
+ test(S("abcde"), 2, 1, S("abcdefghijklmnopqrst"), 0, 19, 2);
+ test(S("abcde"), 2, 1, S("abcdefghijklmnopqrst"), 0, 20, 2);
+ test(S("abcde"), 2, 1, S("abcdefghijklmnopqrst"), 0, 21, 2);
+ test(S("abcde"), 2, 1, S("abcdefghijklmnopqrst"), 1, 0, 1);
+ test(S("abcde"), 2, 1, S("abcdefghijklmnopqrst"), 1, 1, 1);
+ test(S("abcde"), 2, 1, S("abcdefghijklmnopqrst"), 1, 9, 1);
+ test(S("abcde"), 2, 1, S("abcdefghijklmnopqrst"), 1, 18, 1);
+ test(S("abcde"), 2, 1, S("abcdefghijklmnopqrst"), 1, 19, 1);
+ test(S("abcde"), 2, 1, S("abcdefghijklmnopqrst"), 1, 20, 1);
+ test(S("abcde"), 2, 1, S("abcdefghijklmnopqrst"), 10, 0, 1);
+ test(S("abcde"), 2, 1, S("abcdefghijklmnopqrst"), 10, 1, -8);
+ test(S("abcde"), 2, 1, S("abcdefghijklmnopqrst"), 10, 5, -8);
+ test(S("abcde"), 2, 1, S("abcdefghijklmnopqrst"), 10, 9, -8);
+ test(S("abcde"), 2, 1, S("abcdefghijklmnopqrst"), 10, 10, -8);
+ test(S("abcde"), 2, 1, S("abcdefghijklmnopqrst"), 10, 11, -8);
+ test(S("abcde"), 2, 1, S("abcdefghijklmnopqrst"), 19, 0, 1);
+ test(S("abcde"), 2, 1, S("abcdefghijklmnopqrst"), 19, 1, -17);
+ test(S("abcde"), 2, 1, S("abcdefghijklmnopqrst"), 19, 2, -17);
+ test(S("abcde"), 2, 1, S("abcdefghijklmnopqrst"), 20, 0, 1);
+ test(S("abcde"), 2, 1, S("abcdefghijklmnopqrst"), 20, 1, 1);
+ test(S("abcde"), 2, 1, S("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcde"), 2, 2, S(""), 0, 0, 2);
+ test(S("abcde"), 2, 2, S(""), 0, 1, 2);
+ test(S("abcde"), 2, 2, S(""), 1, 0, 0);
+ test(S("abcde"), 2, 2, S("abcde"), 0, 0, 2);
+ test(S("abcde"), 2, 2, S("abcde"), 0, 1, 2);
+ test(S("abcde"), 2, 2, S("abcde"), 0, 2, 2);
+ test(S("abcde"), 2, 2, S("abcde"), 0, 4, 2);
+ test(S("abcde"), 2, 2, S("abcde"), 0, 5, 2);
+ test(S("abcde"), 2, 2, S("abcde"), 0, 6, 2);
+ test(S("abcde"), 2, 2, S("abcde"), 1, 0, 2);
+ test(S("abcde"), 2, 2, S("abcde"), 1, 1, 1);
+ test(S("abcde"), 2, 2, S("abcde"), 1, 2, 1);
+ test(S("abcde"), 2, 2, S("abcde"), 1, 3, 1);
+ test(S("abcde"), 2, 2, S("abcde"), 1, 4, 1);
+ test(S("abcde"), 2, 2, S("abcde"), 1, 5, 1);
+ test(S("abcde"), 2, 2, S("abcde"), 2, 0, 2);
+ test(S("abcde"), 2, 2, S("abcde"), 2, 1, 1);
+ test(S("abcde"), 2, 2, S("abcde"), 2, 2, 0);
+ test(S("abcde"), 2, 2, S("abcde"), 2, 3, -1);
+ test(S("abcde"), 2, 2, S("abcde"), 2, 4, -1);
+ test(S("abcde"), 2, 2, S("abcde"), 4, 0, 2);
+ test(S("abcde"), 2, 2, S("abcde"), 4, 1, -2);
+ test(S("abcde"), 2, 2, S("abcde"), 4, 2, -2);
+ test(S("abcde"), 2, 2, S("abcde"), 5, 0, 2);
+ test(S("abcde"), 2, 2, S("abcde"), 5, 1, 2);
+ test(S("abcde"), 2, 2, S("abcde"), 6, 0, 0);
+ test(S("abcde"), 2, 2, S("abcdefghij"), 0, 0, 2);
+ test(S("abcde"), 2, 2, S("abcdefghij"), 0, 1, 2);
+ test(S("abcde"), 2, 2, S("abcdefghij"), 0, 5, 2);
+ test(S("abcde"), 2, 2, S("abcdefghij"), 0, 9, 2);
+ test(S("abcde"), 2, 2, S("abcdefghij"), 0, 10, 2);
+ test(S("abcde"), 2, 2, S("abcdefghij"), 0, 11, 2);
+ test(S("abcde"), 2, 2, S("abcdefghij"), 1, 0, 2);
+ test(S("abcde"), 2, 2, S("abcdefghij"), 1, 1, 1);
+ test(S("abcde"), 2, 2, S("abcdefghij"), 1, 4, 1);
+ test(S("abcde"), 2, 2, S("abcdefghij"), 1, 8, 1);
+ test(S("abcde"), 2, 2, S("abcdefghij"), 1, 9, 1);
+ test(S("abcde"), 2, 2, S("abcdefghij"), 1, 10, 1);
+ test(S("abcde"), 2, 2, S("abcdefghij"), 5, 0, 2);
+ test(S("abcde"), 2, 2, S("abcdefghij"), 5, 1, -3);
+ test(S("abcde"), 2, 2, S("abcdefghij"), 5, 2, -3);
+ test(S("abcde"), 2, 2, S("abcdefghij"), 5, 4, -3);
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test13()
-{
- test(S("abcde"), 2, 2, S("abcdefghij"), 5, 5, -3);
- test(S("abcde"), 2, 2, S("abcdefghij"), 5, 6, -3);
- test(S("abcde"), 2, 2, S("abcdefghij"), 9, 0, 2);
- test(S("abcde"), 2, 2, S("abcdefghij"), 9, 1, -7);
- test(S("abcde"), 2, 2, S("abcdefghij"), 9, 2, -7);
- test(S("abcde"), 2, 2, S("abcdefghij"), 10, 0, 2);
- test(S("abcde"), 2, 2, S("abcdefghij"), 10, 1, 2);
- test(S("abcde"), 2, 2, S("abcdefghij"), 11, 0, 0);
- test(S("abcde"), 2, 2, S("abcdefghijklmnopqrst"), 0, 0, 2);
- test(S("abcde"), 2, 2, S("abcdefghijklmnopqrst"), 0, 1, 2);
- test(S("abcde"), 2, 2, S("abcdefghijklmnopqrst"), 0, 10, 2);
- test(S("abcde"), 2, 2, S("abcdefghijklmnopqrst"), 0, 19, 2);
- test(S("abcde"), 2, 2, S("abcdefghijklmnopqrst"), 0, 20, 2);
- test(S("abcde"), 2, 2, S("abcdefghijklmnopqrst"), 0, 21, 2);
- test(S("abcde"), 2, 2, S("abcdefghijklmnopqrst"), 1, 0, 2);
- test(S("abcde"), 2, 2, S("abcdefghijklmnopqrst"), 1, 1, 1);
- test(S("abcde"), 2, 2, S("abcdefghijklmnopqrst"), 1, 9, 1);
- test(S("abcde"), 2, 2, S("abcdefghijklmnopqrst"), 1, 18, 1);
- test(S("abcde"), 2, 2, S("abcdefghijklmnopqrst"), 1, 19, 1);
- test(S("abcde"), 2, 2, S("abcdefghijklmnopqrst"), 1, 20, 1);
- test(S("abcde"), 2, 2, S("abcdefghijklmnopqrst"), 10, 0, 2);
- test(S("abcde"), 2, 2, S("abcdefghijklmnopqrst"), 10, 1, -8);
- test(S("abcde"), 2, 2, S("abcdefghijklmnopqrst"), 10, 5, -8);
- test(S("abcde"), 2, 2, S("abcdefghijklmnopqrst"), 10, 9, -8);
- test(S("abcde"), 2, 2, S("abcdefghijklmnopqrst"), 10, 10, -8);
- test(S("abcde"), 2, 2, S("abcdefghijklmnopqrst"), 10, 11, -8);
- test(S("abcde"), 2, 2, S("abcdefghijklmnopqrst"), 19, 0, 2);
- test(S("abcde"), 2, 2, S("abcdefghijklmnopqrst"), 19, 1, -17);
- test(S("abcde"), 2, 2, S("abcdefghijklmnopqrst"), 19, 2, -17);
- test(S("abcde"), 2, 2, S("abcdefghijklmnopqrst"), 20, 0, 2);
- test(S("abcde"), 2, 2, S("abcdefghijklmnopqrst"), 20, 1, 2);
- test(S("abcde"), 2, 2, S("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcde"), 2, 3, S(""), 0, 0, 3);
- test(S("abcde"), 2, 3, S(""), 0, 1, 3);
- test(S("abcde"), 2, 3, S(""), 1, 0, 0);
- test(S("abcde"), 2, 3, S("abcde"), 0, 0, 3);
- test(S("abcde"), 2, 3, S("abcde"), 0, 1, 2);
- test(S("abcde"), 2, 3, S("abcde"), 0, 2, 2);
- test(S("abcde"), 2, 3, S("abcde"), 0, 4, 2);
- test(S("abcde"), 2, 3, S("abcde"), 0, 5, 2);
- test(S("abcde"), 2, 3, S("abcde"), 0, 6, 2);
- test(S("abcde"), 2, 3, S("abcde"), 1, 0, 3);
- test(S("abcde"), 2, 3, S("abcde"), 1, 1, 1);
- test(S("abcde"), 2, 3, S("abcde"), 1, 2, 1);
- test(S("abcde"), 2, 3, S("abcde"), 1, 3, 1);
- test(S("abcde"), 2, 3, S("abcde"), 1, 4, 1);
- test(S("abcde"), 2, 3, S("abcde"), 1, 5, 1);
- test(S("abcde"), 2, 3, S("abcde"), 2, 0, 3);
- test(S("abcde"), 2, 3, S("abcde"), 2, 1, 2);
- test(S("abcde"), 2, 3, S("abcde"), 2, 2, 1);
- test(S("abcde"), 2, 3, S("abcde"), 2, 3, 0);
- test(S("abcde"), 2, 3, S("abcde"), 2, 4, 0);
- test(S("abcde"), 2, 3, S("abcde"), 4, 0, 3);
- test(S("abcde"), 2, 3, S("abcde"), 4, 1, -2);
- test(S("abcde"), 2, 3, S("abcde"), 4, 2, -2);
- test(S("abcde"), 2, 3, S("abcde"), 5, 0, 3);
- test(S("abcde"), 2, 3, S("abcde"), 5, 1, 3);
- test(S("abcde"), 2, 3, S("abcde"), 6, 0, 0);
- test(S("abcde"), 2, 3, S("abcdefghij"), 0, 0, 3);
- test(S("abcde"), 2, 3, S("abcdefghij"), 0, 1, 2);
- test(S("abcde"), 2, 3, S("abcdefghij"), 0, 5, 2);
- test(S("abcde"), 2, 3, S("abcdefghij"), 0, 9, 2);
- test(S("abcde"), 2, 3, S("abcdefghij"), 0, 10, 2);
- test(S("abcde"), 2, 3, S("abcdefghij"), 0, 11, 2);
- test(S("abcde"), 2, 3, S("abcdefghij"), 1, 0, 3);
- test(S("abcde"), 2, 3, S("abcdefghij"), 1, 1, 1);
- test(S("abcde"), 2, 3, S("abcdefghij"), 1, 4, 1);
- test(S("abcde"), 2, 3, S("abcdefghij"), 1, 8, 1);
- test(S("abcde"), 2, 3, S("abcdefghij"), 1, 9, 1);
- test(S("abcde"), 2, 3, S("abcdefghij"), 1, 10, 1);
- test(S("abcde"), 2, 3, S("abcdefghij"), 5, 0, 3);
- test(S("abcde"), 2, 3, S("abcdefghij"), 5, 1, -3);
- test(S("abcde"), 2, 3, S("abcdefghij"), 5, 2, -3);
- test(S("abcde"), 2, 3, S("abcdefghij"), 5, 4, -3);
- test(S("abcde"), 2, 3, S("abcdefghij"), 5, 5, -3);
- test(S("abcde"), 2, 3, S("abcdefghij"), 5, 6, -3);
- test(S("abcde"), 2, 3, S("abcdefghij"), 9, 0, 3);
- test(S("abcde"), 2, 3, S("abcdefghij"), 9, 1, -7);
- test(S("abcde"), 2, 3, S("abcdefghij"), 9, 2, -7);
- test(S("abcde"), 2, 3, S("abcdefghij"), 10, 0, 3);
- test(S("abcde"), 2, 3, S("abcdefghij"), 10, 1, 3);
- test(S("abcde"), 2, 3, S("abcdefghij"), 11, 0, 0);
- test(S("abcde"), 2, 3, S("abcdefghijklmnopqrst"), 0, 0, 3);
- test(S("abcde"), 2, 3, S("abcdefghijklmnopqrst"), 0, 1, 2);
- test(S("abcde"), 2, 3, S("abcdefghijklmnopqrst"), 0, 10, 2);
- test(S("abcde"), 2, 3, S("abcdefghijklmnopqrst"), 0, 19, 2);
- test(S("abcde"), 2, 3, S("abcdefghijklmnopqrst"), 0, 20, 2);
- test(S("abcde"), 2, 3, S("abcdefghijklmnopqrst"), 0, 21, 2);
- test(S("abcde"), 2, 3, S("abcdefghijklmnopqrst"), 1, 0, 3);
- test(S("abcde"), 2, 3, S("abcdefghijklmnopqrst"), 1, 1, 1);
- test(S("abcde"), 2, 3, S("abcdefghijklmnopqrst"), 1, 9, 1);
- test(S("abcde"), 2, 3, S("abcdefghijklmnopqrst"), 1, 18, 1);
- test(S("abcde"), 2, 3, S("abcdefghijklmnopqrst"), 1, 19, 1);
- test(S("abcde"), 2, 3, S("abcdefghijklmnopqrst"), 1, 20, 1);
- test(S("abcde"), 2, 3, S("abcdefghijklmnopqrst"), 10, 0, 3);
- test(S("abcde"), 2, 3, S("abcdefghijklmnopqrst"), 10, 1, -8);
- test(S("abcde"), 2, 3, S("abcdefghijklmnopqrst"), 10, 5, -8);
- test(S("abcde"), 2, 3, S("abcdefghijklmnopqrst"), 10, 9, -8);
- test(S("abcde"), 2, 3, S("abcdefghijklmnopqrst"), 10, 10, -8);
- test(S("abcde"), 2, 3, S("abcdefghijklmnopqrst"), 10, 11, -8);
+TEST_CONSTEXPR_CXX20 bool test13() {
+ test(S("abcde"), 2, 2, S("abcdefghij"), 5, 5, -3);
+ test(S("abcde"), 2, 2, S("abcdefghij"), 5, 6, -3);
+ test(S("abcde"), 2, 2, S("abcdefghij"), 9, 0, 2);
+ test(S("abcde"), 2, 2, S("abcdefghij"), 9, 1, -7);
+ test(S("abcde"), 2, 2, S("abcdefghij"), 9, 2, -7);
+ test(S("abcde"), 2, 2, S("abcdefghij"), 10, 0, 2);
+ test(S("abcde"), 2, 2, S("abcdefghij"), 10, 1, 2);
+ test(S("abcde"), 2, 2, S("abcdefghij"), 11, 0, 0);
+ test(S("abcde"), 2, 2, S("abcdefghijklmnopqrst"), 0, 0, 2);
+ test(S("abcde"), 2, 2, S("abcdefghijklmnopqrst"), 0, 1, 2);
+ test(S("abcde"), 2, 2, S("abcdefghijklmnopqrst"), 0, 10, 2);
+ test(S("abcde"), 2, 2, S("abcdefghijklmnopqrst"), 0, 19, 2);
+ test(S("abcde"), 2, 2, S("abcdefghijklmnopqrst"), 0, 20, 2);
+ test(S("abcde"), 2, 2, S("abcdefghijklmnopqrst"), 0, 21, 2);
+ test(S("abcde"), 2, 2, S("abcdefghijklmnopqrst"), 1, 0, 2);
+ test(S("abcde"), 2, 2, S("abcdefghijklmnopqrst"), 1, 1, 1);
+ test(S("abcde"), 2, 2, S("abcdefghijklmnopqrst"), 1, 9, 1);
+ test(S("abcde"), 2, 2, S("abcdefghijklmnopqrst"), 1, 18, 1);
+ test(S("abcde"), 2, 2, S("abcdefghijklmnopqrst"), 1, 19, 1);
+ test(S("abcde"), 2, 2, S("abcdefghijklmnopqrst"), 1, 20, 1);
+ test(S("abcde"), 2, 2, S("abcdefghijklmnopqrst"), 10, 0, 2);
+ test(S("abcde"), 2, 2, S("abcdefghijklmnopqrst"), 10, 1, -8);
+ test(S("abcde"), 2, 2, S("abcdefghijklmnopqrst"), 10, 5, -8);
+ test(S("abcde"), 2, 2, S("abcdefghijklmnopqrst"), 10, 9, -8);
+ test(S("abcde"), 2, 2, S("abcdefghijklmnopqrst"), 10, 10, -8);
+ test(S("abcde"), 2, 2, S("abcdefghijklmnopqrst"), 10, 11, -8);
+ test(S("abcde"), 2, 2, S("abcdefghijklmnopqrst"), 19, 0, 2);
+ test(S("abcde"), 2, 2, S("abcdefghijklmnopqrst"), 19, 1, -17);
+ test(S("abcde"), 2, 2, S("abcdefghijklmnopqrst"), 19, 2, -17);
+ test(S("abcde"), 2, 2, S("abcdefghijklmnopqrst"), 20, 0, 2);
+ test(S("abcde"), 2, 2, S("abcdefghijklmnopqrst"), 20, 1, 2);
+ test(S("abcde"), 2, 2, S("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcde"), 2, 3, S(""), 0, 0, 3);
+ test(S("abcde"), 2, 3, S(""), 0, 1, 3);
+ test(S("abcde"), 2, 3, S(""), 1, 0, 0);
+ test(S("abcde"), 2, 3, S("abcde"), 0, 0, 3);
+ test(S("abcde"), 2, 3, S("abcde"), 0, 1, 2);
+ test(S("abcde"), 2, 3, S("abcde"), 0, 2, 2);
+ test(S("abcde"), 2, 3, S("abcde"), 0, 4, 2);
+ test(S("abcde"), 2, 3, S("abcde"), 0, 5, 2);
+ test(S("abcde"), 2, 3, S("abcde"), 0, 6, 2);
+ test(S("abcde"), 2, 3, S("abcde"), 1, 0, 3);
+ test(S("abcde"), 2, 3, S("abcde"), 1, 1, 1);
+ test(S("abcde"), 2, 3, S("abcde"), 1, 2, 1);
+ test(S("abcde"), 2, 3, S("abcde"), 1, 3, 1);
+ test(S("abcde"), 2, 3, S("abcde"), 1, 4, 1);
+ test(S("abcde"), 2, 3, S("abcde"), 1, 5, 1);
+ test(S("abcde"), 2, 3, S("abcde"), 2, 0, 3);
+ test(S("abcde"), 2, 3, S("abcde"), 2, 1, 2);
+ test(S("abcde"), 2, 3, S("abcde"), 2, 2, 1);
+ test(S("abcde"), 2, 3, S("abcde"), 2, 3, 0);
+ test(S("abcde"), 2, 3, S("abcde"), 2, 4, 0);
+ test(S("abcde"), 2, 3, S("abcde"), 4, 0, 3);
+ test(S("abcde"), 2, 3, S("abcde"), 4, 1, -2);
+ test(S("abcde"), 2, 3, S("abcde"), 4, 2, -2);
+ test(S("abcde"), 2, 3, S("abcde"), 5, 0, 3);
+ test(S("abcde"), 2, 3, S("abcde"), 5, 1, 3);
+ test(S("abcde"), 2, 3, S("abcde"), 6, 0, 0);
+ test(S("abcde"), 2, 3, S("abcdefghij"), 0, 0, 3);
+ test(S("abcde"), 2, 3, S("abcdefghij"), 0, 1, 2);
+ test(S("abcde"), 2, 3, S("abcdefghij"), 0, 5, 2);
+ test(S("abcde"), 2, 3, S("abcdefghij"), 0, 9, 2);
+ test(S("abcde"), 2, 3, S("abcdefghij"), 0, 10, 2);
+ test(S("abcde"), 2, 3, S("abcdefghij"), 0, 11, 2);
+ test(S("abcde"), 2, 3, S("abcdefghij"), 1, 0, 3);
+ test(S("abcde"), 2, 3, S("abcdefghij"), 1, 1, 1);
+ test(S("abcde"), 2, 3, S("abcdefghij"), 1, 4, 1);
+ test(S("abcde"), 2, 3, S("abcdefghij"), 1, 8, 1);
+ test(S("abcde"), 2, 3, S("abcdefghij"), 1, 9, 1);
+ test(S("abcde"), 2, 3, S("abcdefghij"), 1, 10, 1);
+ test(S("abcde"), 2, 3, S("abcdefghij"), 5, 0, 3);
+ test(S("abcde"), 2, 3, S("abcdefghij"), 5, 1, -3);
+ test(S("abcde"), 2, 3, S("abcdefghij"), 5, 2, -3);
+ test(S("abcde"), 2, 3, S("abcdefghij"), 5, 4, -3);
+ test(S("abcde"), 2, 3, S("abcdefghij"), 5, 5, -3);
+ test(S("abcde"), 2, 3, S("abcdefghij"), 5, 6, -3);
+ test(S("abcde"), 2, 3, S("abcdefghij"), 9, 0, 3);
+ test(S("abcde"), 2, 3, S("abcdefghij"), 9, 1, -7);
+ test(S("abcde"), 2, 3, S("abcdefghij"), 9, 2, -7);
+ test(S("abcde"), 2, 3, S("abcdefghij"), 10, 0, 3);
+ test(S("abcde"), 2, 3, S("abcdefghij"), 10, 1, 3);
+ test(S("abcde"), 2, 3, S("abcdefghij"), 11, 0, 0);
+ test(S("abcde"), 2, 3, S("abcdefghijklmnopqrst"), 0, 0, 3);
+ test(S("abcde"), 2, 3, S("abcdefghijklmnopqrst"), 0, 1, 2);
+ test(S("abcde"), 2, 3, S("abcdefghijklmnopqrst"), 0, 10, 2);
+ test(S("abcde"), 2, 3, S("abcdefghijklmnopqrst"), 0, 19, 2);
+ test(S("abcde"), 2, 3, S("abcdefghijklmnopqrst"), 0, 20, 2);
+ test(S("abcde"), 2, 3, S("abcdefghijklmnopqrst"), 0, 21, 2);
+ test(S("abcde"), 2, 3, S("abcdefghijklmnopqrst"), 1, 0, 3);
+ test(S("abcde"), 2, 3, S("abcdefghijklmnopqrst"), 1, 1, 1);
+ test(S("abcde"), 2, 3, S("abcdefghijklmnopqrst"), 1, 9, 1);
+ test(S("abcde"), 2, 3, S("abcdefghijklmnopqrst"), 1, 18, 1);
+ test(S("abcde"), 2, 3, S("abcdefghijklmnopqrst"), 1, 19, 1);
+ test(S("abcde"), 2, 3, S("abcdefghijklmnopqrst"), 1, 20, 1);
+ test(S("abcde"), 2, 3, S("abcdefghijklmnopqrst"), 10, 0, 3);
+ test(S("abcde"), 2, 3, S("abcdefghijklmnopqrst"), 10, 1, -8);
+ test(S("abcde"), 2, 3, S("abcdefghijklmnopqrst"), 10, 5, -8);
+ test(S("abcde"), 2, 3, S("abcdefghijklmnopqrst"), 10, 9, -8);
+ test(S("abcde"), 2, 3, S("abcdefghijklmnopqrst"), 10, 10, -8);
+ test(S("abcde"), 2, 3, S("abcdefghijklmnopqrst"), 10, 11, -8);
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test14()
-{
- test(S("abcde"), 2, 3, S("abcdefghijklmnopqrst"), 19, 0, 3);
- test(S("abcde"), 2, 3, S("abcdefghijklmnopqrst"), 19, 1, -17);
- test(S("abcde"), 2, 3, S("abcdefghijklmnopqrst"), 19, 2, -17);
- test(S("abcde"), 2, 3, S("abcdefghijklmnopqrst"), 20, 0, 3);
- test(S("abcde"), 2, 3, S("abcdefghijklmnopqrst"), 20, 1, 3);
- test(S("abcde"), 2, 3, S("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcde"), 2, 4, S(""), 0, 0, 3);
- test(S("abcde"), 2, 4, S(""), 0, 1, 3);
- test(S("abcde"), 2, 4, S(""), 1, 0, 0);
- test(S("abcde"), 2, 4, S("abcde"), 0, 0, 3);
- test(S("abcde"), 2, 4, S("abcde"), 0, 1, 2);
- test(S("abcde"), 2, 4, S("abcde"), 0, 2, 2);
- test(S("abcde"), 2, 4, S("abcde"), 0, 4, 2);
- test(S("abcde"), 2, 4, S("abcde"), 0, 5, 2);
- test(S("abcde"), 2, 4, S("abcde"), 0, 6, 2);
- test(S("abcde"), 2, 4, S("abcde"), 1, 0, 3);
- test(S("abcde"), 2, 4, S("abcde"), 1, 1, 1);
- test(S("abcde"), 2, 4, S("abcde"), 1, 2, 1);
- test(S("abcde"), 2, 4, S("abcde"), 1, 3, 1);
- test(S("abcde"), 2, 4, S("abcde"), 1, 4, 1);
- test(S("abcde"), 2, 4, S("abcde"), 1, 5, 1);
- test(S("abcde"), 2, 4, S("abcde"), 2, 0, 3);
- test(S("abcde"), 2, 4, S("abcde"), 2, 1, 2);
- test(S("abcde"), 2, 4, S("abcde"), 2, 2, 1);
- test(S("abcde"), 2, 4, S("abcde"), 2, 3, 0);
- test(S("abcde"), 2, 4, S("abcde"), 2, 4, 0);
- test(S("abcde"), 2, 4, S("abcde"), 4, 0, 3);
- test(S("abcde"), 2, 4, S("abcde"), 4, 1, -2);
- test(S("abcde"), 2, 4, S("abcde"), 4, 2, -2);
- test(S("abcde"), 2, 4, S("abcde"), 5, 0, 3);
- test(S("abcde"), 2, 4, S("abcde"), 5, 1, 3);
- test(S("abcde"), 2, 4, S("abcde"), 6, 0, 0);
- test(S("abcde"), 2, 4, S("abcdefghij"), 0, 0, 3);
- test(S("abcde"), 2, 4, S("abcdefghij"), 0, 1, 2);
- test(S("abcde"), 2, 4, S("abcdefghij"), 0, 5, 2);
- test(S("abcde"), 2, 4, S("abcdefghij"), 0, 9, 2);
- test(S("abcde"), 2, 4, S("abcdefghij"), 0, 10, 2);
- test(S("abcde"), 2, 4, S("abcdefghij"), 0, 11, 2);
- test(S("abcde"), 2, 4, S("abcdefghij"), 1, 0, 3);
- test(S("abcde"), 2, 4, S("abcdefghij"), 1, 1, 1);
- test(S("abcde"), 2, 4, S("abcdefghij"), 1, 4, 1);
- test(S("abcde"), 2, 4, S("abcdefghij"), 1, 8, 1);
- test(S("abcde"), 2, 4, S("abcdefghij"), 1, 9, 1);
- test(S("abcde"), 2, 4, S("abcdefghij"), 1, 10, 1);
- test(S("abcde"), 2, 4, S("abcdefghij"), 5, 0, 3);
- test(S("abcde"), 2, 4, S("abcdefghij"), 5, 1, -3);
- test(S("abcde"), 2, 4, S("abcdefghij"), 5, 2, -3);
- test(S("abcde"), 2, 4, S("abcdefghij"), 5, 4, -3);
- test(S("abcde"), 2, 4, S("abcdefghij"), 5, 5, -3);
- test(S("abcde"), 2, 4, S("abcdefghij"), 5, 6, -3);
- test(S("abcde"), 2, 4, S("abcdefghij"), 9, 0, 3);
- test(S("abcde"), 2, 4, S("abcdefghij"), 9, 1, -7);
- test(S("abcde"), 2, 4, S("abcdefghij"), 9, 2, -7);
- test(S("abcde"), 2, 4, S("abcdefghij"), 10, 0, 3);
- test(S("abcde"), 2, 4, S("abcdefghij"), 10, 1, 3);
- test(S("abcde"), 2, 4, S("abcdefghij"), 11, 0, 0);
- test(S("abcde"), 2, 4, S("abcdefghijklmnopqrst"), 0, 0, 3);
- test(S("abcde"), 2, 4, S("abcdefghijklmnopqrst"), 0, 1, 2);
- test(S("abcde"), 2, 4, S("abcdefghijklmnopqrst"), 0, 10, 2);
- test(S("abcde"), 2, 4, S("abcdefghijklmnopqrst"), 0, 19, 2);
- test(S("abcde"), 2, 4, S("abcdefghijklmnopqrst"), 0, 20, 2);
- test(S("abcde"), 2, 4, S("abcdefghijklmnopqrst"), 0, 21, 2);
- test(S("abcde"), 2, 4, S("abcdefghijklmnopqrst"), 1, 0, 3);
- test(S("abcde"), 2, 4, S("abcdefghijklmnopqrst"), 1, 1, 1);
- test(S("abcde"), 2, 4, S("abcdefghijklmnopqrst"), 1, 9, 1);
- test(S("abcde"), 2, 4, S("abcdefghijklmnopqrst"), 1, 18, 1);
- test(S("abcde"), 2, 4, S("abcdefghijklmnopqrst"), 1, 19, 1);
- test(S("abcde"), 2, 4, S("abcdefghijklmnopqrst"), 1, 20, 1);
- test(S("abcde"), 2, 4, S("abcdefghijklmnopqrst"), 10, 0, 3);
- test(S("abcde"), 2, 4, S("abcdefghijklmnopqrst"), 10, 1, -8);
- test(S("abcde"), 2, 4, S("abcdefghijklmnopqrst"), 10, 5, -8);
- test(S("abcde"), 2, 4, S("abcdefghijklmnopqrst"), 10, 9, -8);
- test(S("abcde"), 2, 4, S("abcdefghijklmnopqrst"), 10, 10, -8);
- test(S("abcde"), 2, 4, S("abcdefghijklmnopqrst"), 10, 11, -8);
- test(S("abcde"), 2, 4, S("abcdefghijklmnopqrst"), 19, 0, 3);
- test(S("abcde"), 2, 4, S("abcdefghijklmnopqrst"), 19, 1, -17);
- test(S("abcde"), 2, 4, S("abcdefghijklmnopqrst"), 19, 2, -17);
- test(S("abcde"), 2, 4, S("abcdefghijklmnopqrst"), 20, 0, 3);
- test(S("abcde"), 2, 4, S("abcdefghijklmnopqrst"), 20, 1, 3);
- test(S("abcde"), 2, 4, S("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcde"), 4, 0, S(""), 0, 0, 0);
- test(S("abcde"), 4, 0, S(""), 0, 1, 0);
- test(S("abcde"), 4, 0, S(""), 1, 0, 0);
- test(S("abcde"), 4, 0, S("abcde"), 0, 0, 0);
- test(S("abcde"), 4, 0, S("abcde"), 0, 1, -1);
- test(S("abcde"), 4, 0, S("abcde"), 0, 2, -2);
- test(S("abcde"), 4, 0, S("abcde"), 0, 4, -4);
- test(S("abcde"), 4, 0, S("abcde"), 0, 5, -5);
- test(S("abcde"), 4, 0, S("abcde"), 0, 6, -5);
- test(S("abcde"), 4, 0, S("abcde"), 1, 0, 0);
- test(S("abcde"), 4, 0, S("abcde"), 1, 1, -1);
- test(S("abcde"), 4, 0, S("abcde"), 1, 2, -2);
- test(S("abcde"), 4, 0, S("abcde"), 1, 3, -3);
- test(S("abcde"), 4, 0, S("abcde"), 1, 4, -4);
- test(S("abcde"), 4, 0, S("abcde"), 1, 5, -4);
- test(S("abcde"), 4, 0, S("abcde"), 2, 0, 0);
- test(S("abcde"), 4, 0, S("abcde"), 2, 1, -1);
- test(S("abcde"), 4, 0, S("abcde"), 2, 2, -2);
- test(S("abcde"), 4, 0, S("abcde"), 2, 3, -3);
- test(S("abcde"), 4, 0, S("abcde"), 2, 4, -3);
+TEST_CONSTEXPR_CXX20 bool test14() {
+ test(S("abcde"), 2, 3, S("abcdefghijklmnopqrst"), 19, 0, 3);
+ test(S("abcde"), 2, 3, S("abcdefghijklmnopqrst"), 19, 1, -17);
+ test(S("abcde"), 2, 3, S("abcdefghijklmnopqrst"), 19, 2, -17);
+ test(S("abcde"), 2, 3, S("abcdefghijklmnopqrst"), 20, 0, 3);
+ test(S("abcde"), 2, 3, S("abcdefghijklmnopqrst"), 20, 1, 3);
+ test(S("abcde"), 2, 3, S("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcde"), 2, 4, S(""), 0, 0, 3);
+ test(S("abcde"), 2, 4, S(""), 0, 1, 3);
+ test(S("abcde"), 2, 4, S(""), 1, 0, 0);
+ test(S("abcde"), 2, 4, S("abcde"), 0, 0, 3);
+ test(S("abcde"), 2, 4, S("abcde"), 0, 1, 2);
+ test(S("abcde"), 2, 4, S("abcde"), 0, 2, 2);
+ test(S("abcde"), 2, 4, S("abcde"), 0, 4, 2);
+ test(S("abcde"), 2, 4, S("abcde"), 0, 5, 2);
+ test(S("abcde"), 2, 4, S("abcde"), 0, 6, 2);
+ test(S("abcde"), 2, 4, S("abcde"), 1, 0, 3);
+ test(S("abcde"), 2, 4, S("abcde"), 1, 1, 1);
+ test(S("abcde"), 2, 4, S("abcde"), 1, 2, 1);
+ test(S("abcde"), 2, 4, S("abcde"), 1, 3, 1);
+ test(S("abcde"), 2, 4, S("abcde"), 1, 4, 1);
+ test(S("abcde"), 2, 4, S("abcde"), 1, 5, 1);
+ test(S("abcde"), 2, 4, S("abcde"), 2, 0, 3);
+ test(S("abcde"), 2, 4, S("abcde"), 2, 1, 2);
+ test(S("abcde"), 2, 4, S("abcde"), 2, 2, 1);
+ test(S("abcde"), 2, 4, S("abcde"), 2, 3, 0);
+ test(S("abcde"), 2, 4, S("abcde"), 2, 4, 0);
+ test(S("abcde"), 2, 4, S("abcde"), 4, 0, 3);
+ test(S("abcde"), 2, 4, S("abcde"), 4, 1, -2);
+ test(S("abcde"), 2, 4, S("abcde"), 4, 2, -2);
+ test(S("abcde"), 2, 4, S("abcde"), 5, 0, 3);
+ test(S("abcde"), 2, 4, S("abcde"), 5, 1, 3);
+ test(S("abcde"), 2, 4, S("abcde"), 6, 0, 0);
+ test(S("abcde"), 2, 4, S("abcdefghij"), 0, 0, 3);
+ test(S("abcde"), 2, 4, S("abcdefghij"), 0, 1, 2);
+ test(S("abcde"), 2, 4, S("abcdefghij"), 0, 5, 2);
+ test(S("abcde"), 2, 4, S("abcdefghij"), 0, 9, 2);
+ test(S("abcde"), 2, 4, S("abcdefghij"), 0, 10, 2);
+ test(S("abcde"), 2, 4, S("abcdefghij"), 0, 11, 2);
+ test(S("abcde"), 2, 4, S("abcdefghij"), 1, 0, 3);
+ test(S("abcde"), 2, 4, S("abcdefghij"), 1, 1, 1);
+ test(S("abcde"), 2, 4, S("abcdefghij"), 1, 4, 1);
+ test(S("abcde"), 2, 4, S("abcdefghij"), 1, 8, 1);
+ test(S("abcde"), 2, 4, S("abcdefghij"), 1, 9, 1);
+ test(S("abcde"), 2, 4, S("abcdefghij"), 1, 10, 1);
+ test(S("abcde"), 2, 4, S("abcdefghij"), 5, 0, 3);
+ test(S("abcde"), 2, 4, S("abcdefghij"), 5, 1, -3);
+ test(S("abcde"), 2, 4, S("abcdefghij"), 5, 2, -3);
+ test(S("abcde"), 2, 4, S("abcdefghij"), 5, 4, -3);
+ test(S("abcde"), 2, 4, S("abcdefghij"), 5, 5, -3);
+ test(S("abcde"), 2, 4, S("abcdefghij"), 5, 6, -3);
+ test(S("abcde"), 2, 4, S("abcdefghij"), 9, 0, 3);
+ test(S("abcde"), 2, 4, S("abcdefghij"), 9, 1, -7);
+ test(S("abcde"), 2, 4, S("abcdefghij"), 9, 2, -7);
+ test(S("abcde"), 2, 4, S("abcdefghij"), 10, 0, 3);
+ test(S("abcde"), 2, 4, S("abcdefghij"), 10, 1, 3);
+ test(S("abcde"), 2, 4, S("abcdefghij"), 11, 0, 0);
+ test(S("abcde"), 2, 4, S("abcdefghijklmnopqrst"), 0, 0, 3);
+ test(S("abcde"), 2, 4, S("abcdefghijklmnopqrst"), 0, 1, 2);
+ test(S("abcde"), 2, 4, S("abcdefghijklmnopqrst"), 0, 10, 2);
+ test(S("abcde"), 2, 4, S("abcdefghijklmnopqrst"), 0, 19, 2);
+ test(S("abcde"), 2, 4, S("abcdefghijklmnopqrst"), 0, 20, 2);
+ test(S("abcde"), 2, 4, S("abcdefghijklmnopqrst"), 0, 21, 2);
+ test(S("abcde"), 2, 4, S("abcdefghijklmnopqrst"), 1, 0, 3);
+ test(S("abcde"), 2, 4, S("abcdefghijklmnopqrst"), 1, 1, 1);
+ test(S("abcde"), 2, 4, S("abcdefghijklmnopqrst"), 1, 9, 1);
+ test(S("abcde"), 2, 4, S("abcdefghijklmnopqrst"), 1, 18, 1);
+ test(S("abcde"), 2, 4, S("abcdefghijklmnopqrst"), 1, 19, 1);
+ test(S("abcde"), 2, 4, S("abcdefghijklmnopqrst"), 1, 20, 1);
+ test(S("abcde"), 2, 4, S("abcdefghijklmnopqrst"), 10, 0, 3);
+ test(S("abcde"), 2, 4, S("abcdefghijklmnopqrst"), 10, 1, -8);
+ test(S("abcde"), 2, 4, S("abcdefghijklmnopqrst"), 10, 5, -8);
+ test(S("abcde"), 2, 4, S("abcdefghijklmnopqrst"), 10, 9, -8);
+ test(S("abcde"), 2, 4, S("abcdefghijklmnopqrst"), 10, 10, -8);
+ test(S("abcde"), 2, 4, S("abcdefghijklmnopqrst"), 10, 11, -8);
+ test(S("abcde"), 2, 4, S("abcdefghijklmnopqrst"), 19, 0, 3);
+ test(S("abcde"), 2, 4, S("abcdefghijklmnopqrst"), 19, 1, -17);
+ test(S("abcde"), 2, 4, S("abcdefghijklmnopqrst"), 19, 2, -17);
+ test(S("abcde"), 2, 4, S("abcdefghijklmnopqrst"), 20, 0, 3);
+ test(S("abcde"), 2, 4, S("abcdefghijklmnopqrst"), 20, 1, 3);
+ test(S("abcde"), 2, 4, S("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcde"), 4, 0, S(""), 0, 0, 0);
+ test(S("abcde"), 4, 0, S(""), 0, 1, 0);
+ test(S("abcde"), 4, 0, S(""), 1, 0, 0);
+ test(S("abcde"), 4, 0, S("abcde"), 0, 0, 0);
+ test(S("abcde"), 4, 0, S("abcde"), 0, 1, -1);
+ test(S("abcde"), 4, 0, S("abcde"), 0, 2, -2);
+ test(S("abcde"), 4, 0, S("abcde"), 0, 4, -4);
+ test(S("abcde"), 4, 0, S("abcde"), 0, 5, -5);
+ test(S("abcde"), 4, 0, S("abcde"), 0, 6, -5);
+ test(S("abcde"), 4, 0, S("abcde"), 1, 0, 0);
+ test(S("abcde"), 4, 0, S("abcde"), 1, 1, -1);
+ test(S("abcde"), 4, 0, S("abcde"), 1, 2, -2);
+ test(S("abcde"), 4, 0, S("abcde"), 1, 3, -3);
+ test(S("abcde"), 4, 0, S("abcde"), 1, 4, -4);
+ test(S("abcde"), 4, 0, S("abcde"), 1, 5, -4);
+ test(S("abcde"), 4, 0, S("abcde"), 2, 0, 0);
+ test(S("abcde"), 4, 0, S("abcde"), 2, 1, -1);
+ test(S("abcde"), 4, 0, S("abcde"), 2, 2, -2);
+ test(S("abcde"), 4, 0, S("abcde"), 2, 3, -3);
+ test(S("abcde"), 4, 0, S("abcde"), 2, 4, -3);
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test15()
-{
- test(S("abcde"), 4, 0, S("abcde"), 4, 0, 0);
- test(S("abcde"), 4, 0, S("abcde"), 4, 1, -1);
- test(S("abcde"), 4, 0, S("abcde"), 4, 2, -1);
- test(S("abcde"), 4, 0, S("abcde"), 5, 0, 0);
- test(S("abcde"), 4, 0, S("abcde"), 5, 1, 0);
- test(S("abcde"), 4, 0, S("abcde"), 6, 0, 0);
- test(S("abcde"), 4, 0, S("abcdefghij"), 0, 0, 0);
- test(S("abcde"), 4, 0, S("abcdefghij"), 0, 1, -1);
- test(S("abcde"), 4, 0, S("abcdefghij"), 0, 5, -5);
- test(S("abcde"), 4, 0, S("abcdefghij"), 0, 9, -9);
- test(S("abcde"), 4, 0, S("abcdefghij"), 0, 10, -10);
- test(S("abcde"), 4, 0, S("abcdefghij"), 0, 11, -10);
- test(S("abcde"), 4, 0, S("abcdefghij"), 1, 0, 0);
- test(S("abcde"), 4, 0, S("abcdefghij"), 1, 1, -1);
- test(S("abcde"), 4, 0, S("abcdefghij"), 1, 4, -4);
- test(S("abcde"), 4, 0, S("abcdefghij"), 1, 8, -8);
- test(S("abcde"), 4, 0, S("abcdefghij"), 1, 9, -9);
- test(S("abcde"), 4, 0, S("abcdefghij"), 1, 10, -9);
- test(S("abcde"), 4, 0, S("abcdefghij"), 5, 0, 0);
- test(S("abcde"), 4, 0, S("abcdefghij"), 5, 1, -1);
- test(S("abcde"), 4, 0, S("abcdefghij"), 5, 2, -2);
- test(S("abcde"), 4, 0, S("abcdefghij"), 5, 4, -4);
- test(S("abcde"), 4, 0, S("abcdefghij"), 5, 5, -5);
- test(S("abcde"), 4, 0, S("abcdefghij"), 5, 6, -5);
- test(S("abcde"), 4, 0, S("abcdefghij"), 9, 0, 0);
- test(S("abcde"), 4, 0, S("abcdefghij"), 9, 1, -1);
- test(S("abcde"), 4, 0, S("abcdefghij"), 9, 2, -1);
- test(S("abcde"), 4, 0, S("abcdefghij"), 10, 0, 0);
- test(S("abcde"), 4, 0, S("abcdefghij"), 10, 1, 0);
- test(S("abcde"), 4, 0, S("abcdefghij"), 11, 0, 0);
- test(S("abcde"), 4, 0, S("abcdefghijklmnopqrst"), 0, 0, 0);
- test(S("abcde"), 4, 0, S("abcdefghijklmnopqrst"), 0, 1, -1);
- test(S("abcde"), 4, 0, S("abcdefghijklmnopqrst"), 0, 10, -10);
- test(S("abcde"), 4, 0, S("abcdefghijklmnopqrst"), 0, 19, -19);
- test(S("abcde"), 4, 0, S("abcdefghijklmnopqrst"), 0, 20, -20);
- test(S("abcde"), 4, 0, S("abcdefghijklmnopqrst"), 0, 21, -20);
- test(S("abcde"), 4, 0, S("abcdefghijklmnopqrst"), 1, 0, 0);
- test(S("abcde"), 4, 0, S("abcdefghijklmnopqrst"), 1, 1, -1);
- test(S("abcde"), 4, 0, S("abcdefghijklmnopqrst"), 1, 9, -9);
- test(S("abcde"), 4, 0, S("abcdefghijklmnopqrst"), 1, 18, -18);
- test(S("abcde"), 4, 0, S("abcdefghijklmnopqrst"), 1, 19, -19);
- test(S("abcde"), 4, 0, S("abcdefghijklmnopqrst"), 1, 20, -19);
- test(S("abcde"), 4, 0, S("abcdefghijklmnopqrst"), 10, 0, 0);
- test(S("abcde"), 4, 0, S("abcdefghijklmnopqrst"), 10, 1, -1);
- test(S("abcde"), 4, 0, S("abcdefghijklmnopqrst"), 10, 5, -5);
- test(S("abcde"), 4, 0, S("abcdefghijklmnopqrst"), 10, 9, -9);
- test(S("abcde"), 4, 0, S("abcdefghijklmnopqrst"), 10, 10, -10);
- test(S("abcde"), 4, 0, S("abcdefghijklmnopqrst"), 10, 11, -10);
- test(S("abcde"), 4, 0, S("abcdefghijklmnopqrst"), 19, 0, 0);
- test(S("abcde"), 4, 0, S("abcdefghijklmnopqrst"), 19, 1, -1);
- test(S("abcde"), 4, 0, S("abcdefghijklmnopqrst"), 19, 2, -1);
- test(S("abcde"), 4, 0, S("abcdefghijklmnopqrst"), 20, 0, 0);
- test(S("abcde"), 4, 0, S("abcdefghijklmnopqrst"), 20, 1, 0);
- test(S("abcde"), 4, 0, S("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcde"), 4, 1, S(""), 0, 0, 1);
- test(S("abcde"), 4, 1, S(""), 0, 1, 1);
- test(S("abcde"), 4, 1, S(""), 1, 0, 0);
- test(S("abcde"), 4, 1, S("abcde"), 0, 0, 1);
- test(S("abcde"), 4, 1, S("abcde"), 0, 1, 4);
- test(S("abcde"), 4, 1, S("abcde"), 0, 2, 4);
- test(S("abcde"), 4, 1, S("abcde"), 0, 4, 4);
- test(S("abcde"), 4, 1, S("abcde"), 0, 5, 4);
- test(S("abcde"), 4, 1, S("abcde"), 0, 6, 4);
- test(S("abcde"), 4, 1, S("abcde"), 1, 0, 1);
- test(S("abcde"), 4, 1, S("abcde"), 1, 1, 3);
- test(S("abcde"), 4, 1, S("abcde"), 1, 2, 3);
- test(S("abcde"), 4, 1, S("abcde"), 1, 3, 3);
- test(S("abcde"), 4, 1, S("abcde"), 1, 4, 3);
- test(S("abcde"), 4, 1, S("abcde"), 1, 5, 3);
- test(S("abcde"), 4, 1, S("abcde"), 2, 0, 1);
- test(S("abcde"), 4, 1, S("abcde"), 2, 1, 2);
- test(S("abcde"), 4, 1, S("abcde"), 2, 2, 2);
- test(S("abcde"), 4, 1, S("abcde"), 2, 3, 2);
- test(S("abcde"), 4, 1, S("abcde"), 2, 4, 2);
- test(S("abcde"), 4, 1, S("abcde"), 4, 0, 1);
- test(S("abcde"), 4, 1, S("abcde"), 4, 1, 0);
- test(S("abcde"), 4, 1, S("abcde"), 4, 2, 0);
- test(S("abcde"), 4, 1, S("abcde"), 5, 0, 1);
- test(S("abcde"), 4, 1, S("abcde"), 5, 1, 1);
- test(S("abcde"), 4, 1, S("abcde"), 6, 0, 0);
- test(S("abcde"), 4, 1, S("abcdefghij"), 0, 0, 1);
- test(S("abcde"), 4, 1, S("abcdefghij"), 0, 1, 4);
- test(S("abcde"), 4, 1, S("abcdefghij"), 0, 5, 4);
- test(S("abcde"), 4, 1, S("abcdefghij"), 0, 9, 4);
- test(S("abcde"), 4, 1, S("abcdefghij"), 0, 10, 4);
- test(S("abcde"), 4, 1, S("abcdefghij"), 0, 11, 4);
- test(S("abcde"), 4, 1, S("abcdefghij"), 1, 0, 1);
- test(S("abcde"), 4, 1, S("abcdefghij"), 1, 1, 3);
- test(S("abcde"), 4, 1, S("abcdefghij"), 1, 4, 3);
- test(S("abcde"), 4, 1, S("abcdefghij"), 1, 8, 3);
- test(S("abcde"), 4, 1, S("abcdefghij"), 1, 9, 3);
- test(S("abcde"), 4, 1, S("abcdefghij"), 1, 10, 3);
- test(S("abcde"), 4, 1, S("abcdefghij"), 5, 0, 1);
- test(S("abcde"), 4, 1, S("abcdefghij"), 5, 1, -1);
- test(S("abcde"), 4, 1, S("abcdefghij"), 5, 2, -1);
- test(S("abcde"), 4, 1, S("abcdefghij"), 5, 4, -1);
- test(S("abcde"), 4, 1, S("abcdefghij"), 5, 5, -1);
- test(S("abcde"), 4, 1, S("abcdefghij"), 5, 6, -1);
- test(S("abcde"), 4, 1, S("abcdefghij"), 9, 0, 1);
- test(S("abcde"), 4, 1, S("abcdefghij"), 9, 1, -5);
+TEST_CONSTEXPR_CXX20 bool test15() {
+ test(S("abcde"), 4, 0, S("abcde"), 4, 0, 0);
+ test(S("abcde"), 4, 0, S("abcde"), 4, 1, -1);
+ test(S("abcde"), 4, 0, S("abcde"), 4, 2, -1);
+ test(S("abcde"), 4, 0, S("abcde"), 5, 0, 0);
+ test(S("abcde"), 4, 0, S("abcde"), 5, 1, 0);
+ test(S("abcde"), 4, 0, S("abcde"), 6, 0, 0);
+ test(S("abcde"), 4, 0, S("abcdefghij"), 0, 0, 0);
+ test(S("abcde"), 4, 0, S("abcdefghij"), 0, 1, -1);
+ test(S("abcde"), 4, 0, S("abcdefghij"), 0, 5, -5);
+ test(S("abcde"), 4, 0, S("abcdefghij"), 0, 9, -9);
+ test(S("abcde"), 4, 0, S("abcdefghij"), 0, 10, -10);
+ test(S("abcde"), 4, 0, S("abcdefghij"), 0, 11, -10);
+ test(S("abcde"), 4, 0, S("abcdefghij"), 1, 0, 0);
+ test(S("abcde"), 4, 0, S("abcdefghij"), 1, 1, -1);
+ test(S("abcde"), 4, 0, S("abcdefghij"), 1, 4, -4);
+ test(S("abcde"), 4, 0, S("abcdefghij"), 1, 8, -8);
+ test(S("abcde"), 4, 0, S("abcdefghij"), 1, 9, -9);
+ test(S("abcde"), 4, 0, S("abcdefghij"), 1, 10, -9);
+ test(S("abcde"), 4, 0, S("abcdefghij"), 5, 0, 0);
+ test(S("abcde"), 4, 0, S("abcdefghij"), 5, 1, -1);
+ test(S("abcde"), 4, 0, S("abcdefghij"), 5, 2, -2);
+ test(S("abcde"), 4, 0, S("abcdefghij"), 5, 4, -4);
+ test(S("abcde"), 4, 0, S("abcdefghij"), 5, 5, -5);
+ test(S("abcde"), 4, 0, S("abcdefghij"), 5, 6, -5);
+ test(S("abcde"), 4, 0, S("abcdefghij"), 9, 0, 0);
+ test(S("abcde"), 4, 0, S("abcdefghij"), 9, 1, -1);
+ test(S("abcde"), 4, 0, S("abcdefghij"), 9, 2, -1);
+ test(S("abcde"), 4, 0, S("abcdefghij"), 10, 0, 0);
+ test(S("abcde"), 4, 0, S("abcdefghij"), 10, 1, 0);
+ test(S("abcde"), 4, 0, S("abcdefghij"), 11, 0, 0);
+ test(S("abcde"), 4, 0, S("abcdefghijklmnopqrst"), 0, 0, 0);
+ test(S("abcde"), 4, 0, S("abcdefghijklmnopqrst"), 0, 1, -1);
+ test(S("abcde"), 4, 0, S("abcdefghijklmnopqrst"), 0, 10, -10);
+ test(S("abcde"), 4, 0, S("abcdefghijklmnopqrst"), 0, 19, -19);
+ test(S("abcde"), 4, 0, S("abcdefghijklmnopqrst"), 0, 20, -20);
+ test(S("abcde"), 4, 0, S("abcdefghijklmnopqrst"), 0, 21, -20);
+ test(S("abcde"), 4, 0, S("abcdefghijklmnopqrst"), 1, 0, 0);
+ test(S("abcde"), 4, 0, S("abcdefghijklmnopqrst"), 1, 1, -1);
+ test(S("abcde"), 4, 0, S("abcdefghijklmnopqrst"), 1, 9, -9);
+ test(S("abcde"), 4, 0, S("abcdefghijklmnopqrst"), 1, 18, -18);
+ test(S("abcde"), 4, 0, S("abcdefghijklmnopqrst"), 1, 19, -19);
+ test(S("abcde"), 4, 0, S("abcdefghijklmnopqrst"), 1, 20, -19);
+ test(S("abcde"), 4, 0, S("abcdefghijklmnopqrst"), 10, 0, 0);
+ test(S("abcde"), 4, 0, S("abcdefghijklmnopqrst"), 10, 1, -1);
+ test(S("abcde"), 4, 0, S("abcdefghijklmnopqrst"), 10, 5, -5);
+ test(S("abcde"), 4, 0, S("abcdefghijklmnopqrst"), 10, 9, -9);
+ test(S("abcde"), 4, 0, S("abcdefghijklmnopqrst"), 10, 10, -10);
+ test(S("abcde"), 4, 0, S("abcdefghijklmnopqrst"), 10, 11, -10);
+ test(S("abcde"), 4, 0, S("abcdefghijklmnopqrst"), 19, 0, 0);
+ test(S("abcde"), 4, 0, S("abcdefghijklmnopqrst"), 19, 1, -1);
+ test(S("abcde"), 4, 0, S("abcdefghijklmnopqrst"), 19, 2, -1);
+ test(S("abcde"), 4, 0, S("abcdefghijklmnopqrst"), 20, 0, 0);
+ test(S("abcde"), 4, 0, S("abcdefghijklmnopqrst"), 20, 1, 0);
+ test(S("abcde"), 4, 0, S("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcde"), 4, 1, S(""), 0, 0, 1);
+ test(S("abcde"), 4, 1, S(""), 0, 1, 1);
+ test(S("abcde"), 4, 1, S(""), 1, 0, 0);
+ test(S("abcde"), 4, 1, S("abcde"), 0, 0, 1);
+ test(S("abcde"), 4, 1, S("abcde"), 0, 1, 4);
+ test(S("abcde"), 4, 1, S("abcde"), 0, 2, 4);
+ test(S("abcde"), 4, 1, S("abcde"), 0, 4, 4);
+ test(S("abcde"), 4, 1, S("abcde"), 0, 5, 4);
+ test(S("abcde"), 4, 1, S("abcde"), 0, 6, 4);
+ test(S("abcde"), 4, 1, S("abcde"), 1, 0, 1);
+ test(S("abcde"), 4, 1, S("abcde"), 1, 1, 3);
+ test(S("abcde"), 4, 1, S("abcde"), 1, 2, 3);
+ test(S("abcde"), 4, 1, S("abcde"), 1, 3, 3);
+ test(S("abcde"), 4, 1, S("abcde"), 1, 4, 3);
+ test(S("abcde"), 4, 1, S("abcde"), 1, 5, 3);
+ test(S("abcde"), 4, 1, S("abcde"), 2, 0, 1);
+ test(S("abcde"), 4, 1, S("abcde"), 2, 1, 2);
+ test(S("abcde"), 4, 1, S("abcde"), 2, 2, 2);
+ test(S("abcde"), 4, 1, S("abcde"), 2, 3, 2);
+ test(S("abcde"), 4, 1, S("abcde"), 2, 4, 2);
+ test(S("abcde"), 4, 1, S("abcde"), 4, 0, 1);
+ test(S("abcde"), 4, 1, S("abcde"), 4, 1, 0);
+ test(S("abcde"), 4, 1, S("abcde"), 4, 2, 0);
+ test(S("abcde"), 4, 1, S("abcde"), 5, 0, 1);
+ test(S("abcde"), 4, 1, S("abcde"), 5, 1, 1);
+ test(S("abcde"), 4, 1, S("abcde"), 6, 0, 0);
+ test(S("abcde"), 4, 1, S("abcdefghij"), 0, 0, 1);
+ test(S("abcde"), 4, 1, S("abcdefghij"), 0, 1, 4);
+ test(S("abcde"), 4, 1, S("abcdefghij"), 0, 5, 4);
+ test(S("abcde"), 4, 1, S("abcdefghij"), 0, 9, 4);
+ test(S("abcde"), 4, 1, S("abcdefghij"), 0, 10, 4);
+ test(S("abcde"), 4, 1, S("abcdefghij"), 0, 11, 4);
+ test(S("abcde"), 4, 1, S("abcdefghij"), 1, 0, 1);
+ test(S("abcde"), 4, 1, S("abcdefghij"), 1, 1, 3);
+ test(S("abcde"), 4, 1, S("abcdefghij"), 1, 4, 3);
+ test(S("abcde"), 4, 1, S("abcdefghij"), 1, 8, 3);
+ test(S("abcde"), 4, 1, S("abcdefghij"), 1, 9, 3);
+ test(S("abcde"), 4, 1, S("abcdefghij"), 1, 10, 3);
+ test(S("abcde"), 4, 1, S("abcdefghij"), 5, 0, 1);
+ test(S("abcde"), 4, 1, S("abcdefghij"), 5, 1, -1);
+ test(S("abcde"), 4, 1, S("abcdefghij"), 5, 2, -1);
+ test(S("abcde"), 4, 1, S("abcdefghij"), 5, 4, -1);
+ test(S("abcde"), 4, 1, S("abcdefghij"), 5, 5, -1);
+ test(S("abcde"), 4, 1, S("abcdefghij"), 5, 6, -1);
+ test(S("abcde"), 4, 1, S("abcdefghij"), 9, 0, 1);
+ test(S("abcde"), 4, 1, S("abcdefghij"), 9, 1, -5);
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test16()
-{
- test(S("abcde"), 4, 1, S("abcdefghij"), 9, 2, -5);
- test(S("abcde"), 4, 1, S("abcdefghij"), 10, 0, 1);
- test(S("abcde"), 4, 1, S("abcdefghij"), 10, 1, 1);
- test(S("abcde"), 4, 1, S("abcdefghij"), 11, 0, 0);
- test(S("abcde"), 4, 1, S("abcdefghijklmnopqrst"), 0, 0, 1);
- test(S("abcde"), 4, 1, S("abcdefghijklmnopqrst"), 0, 1, 4);
- test(S("abcde"), 4, 1, S("abcdefghijklmnopqrst"), 0, 10, 4);
- test(S("abcde"), 4, 1, S("abcdefghijklmnopqrst"), 0, 19, 4);
- test(S("abcde"), 4, 1, S("abcdefghijklmnopqrst"), 0, 20, 4);
- test(S("abcde"), 4, 1, S("abcdefghijklmnopqrst"), 0, 21, 4);
- test(S("abcde"), 4, 1, S("abcdefghijklmnopqrst"), 1, 0, 1);
- test(S("abcde"), 4, 1, S("abcdefghijklmnopqrst"), 1, 1, 3);
- test(S("abcde"), 4, 1, S("abcdefghijklmnopqrst"), 1, 9, 3);
- test(S("abcde"), 4, 1, S("abcdefghijklmnopqrst"), 1, 18, 3);
- test(S("abcde"), 4, 1, S("abcdefghijklmnopqrst"), 1, 19, 3);
- test(S("abcde"), 4, 1, S("abcdefghijklmnopqrst"), 1, 20, 3);
- test(S("abcde"), 4, 1, S("abcdefghijklmnopqrst"), 10, 0, 1);
- test(S("abcde"), 4, 1, S("abcdefghijklmnopqrst"), 10, 1, -6);
- test(S("abcde"), 4, 1, S("abcdefghijklmnopqrst"), 10, 5, -6);
- test(S("abcde"), 4, 1, S("abcdefghijklmnopqrst"), 10, 9, -6);
- test(S("abcde"), 4, 1, S("abcdefghijklmnopqrst"), 10, 10, -6);
- test(S("abcde"), 4, 1, S("abcdefghijklmnopqrst"), 10, 11, -6);
- test(S("abcde"), 4, 1, S("abcdefghijklmnopqrst"), 19, 0, 1);
- test(S("abcde"), 4, 1, S("abcdefghijklmnopqrst"), 19, 1, -15);
- test(S("abcde"), 4, 1, S("abcdefghijklmnopqrst"), 19, 2, -15);
- test(S("abcde"), 4, 1, S("abcdefghijklmnopqrst"), 20, 0, 1);
- test(S("abcde"), 4, 1, S("abcdefghijklmnopqrst"), 20, 1, 1);
- test(S("abcde"), 4, 1, S("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcde"), 4, 2, S(""), 0, 0, 1);
- test(S("abcde"), 4, 2, S(""), 0, 1, 1);
- test(S("abcde"), 4, 2, S(""), 1, 0, 0);
- test(S("abcde"), 4, 2, S("abcde"), 0, 0, 1);
- test(S("abcde"), 4, 2, S("abcde"), 0, 1, 4);
- test(S("abcde"), 4, 2, S("abcde"), 0, 2, 4);
- test(S("abcde"), 4, 2, S("abcde"), 0, 4, 4);
- test(S("abcde"), 4, 2, S("abcde"), 0, 5, 4);
- test(S("abcde"), 4, 2, S("abcde"), 0, 6, 4);
- test(S("abcde"), 4, 2, S("abcde"), 1, 0, 1);
- test(S("abcde"), 4, 2, S("abcde"), 1, 1, 3);
- test(S("abcde"), 4, 2, S("abcde"), 1, 2, 3);
- test(S("abcde"), 4, 2, S("abcde"), 1, 3, 3);
- test(S("abcde"), 4, 2, S("abcde"), 1, 4, 3);
- test(S("abcde"), 4, 2, S("abcde"), 1, 5, 3);
- test(S("abcde"), 4, 2, S("abcde"), 2, 0, 1);
- test(S("abcde"), 4, 2, S("abcde"), 2, 1, 2);
- test(S("abcde"), 4, 2, S("abcde"), 2, 2, 2);
- test(S("abcde"), 4, 2, S("abcde"), 2, 3, 2);
- test(S("abcde"), 4, 2, S("abcde"), 2, 4, 2);
- test(S("abcde"), 4, 2, S("abcde"), 4, 0, 1);
- test(S("abcde"), 4, 2, S("abcde"), 4, 1, 0);
- test(S("abcde"), 4, 2, S("abcde"), 4, 2, 0);
- test(S("abcde"), 4, 2, S("abcde"), 5, 0, 1);
- test(S("abcde"), 4, 2, S("abcde"), 5, 1, 1);
- test(S("abcde"), 4, 2, S("abcde"), 6, 0, 0);
- test(S("abcde"), 4, 2, S("abcdefghij"), 0, 0, 1);
- test(S("abcde"), 4, 2, S("abcdefghij"), 0, 1, 4);
- test(S("abcde"), 4, 2, S("abcdefghij"), 0, 5, 4);
- test(S("abcde"), 4, 2, S("abcdefghij"), 0, 9, 4);
- test(S("abcde"), 4, 2, S("abcdefghij"), 0, 10, 4);
- test(S("abcde"), 4, 2, S("abcdefghij"), 0, 11, 4);
- test(S("abcde"), 4, 2, S("abcdefghij"), 1, 0, 1);
- test(S("abcde"), 4, 2, S("abcdefghij"), 1, 1, 3);
- test(S("abcde"), 4, 2, S("abcdefghij"), 1, 4, 3);
- test(S("abcde"), 4, 2, S("abcdefghij"), 1, 8, 3);
- test(S("abcde"), 4, 2, S("abcdefghij"), 1, 9, 3);
- test(S("abcde"), 4, 2, S("abcdefghij"), 1, 10, 3);
- test(S("abcde"), 4, 2, S("abcdefghij"), 5, 0, 1);
- test(S("abcde"), 4, 2, S("abcdefghij"), 5, 1, -1);
- test(S("abcde"), 4, 2, S("abcdefghij"), 5, 2, -1);
- test(S("abcde"), 4, 2, S("abcdefghij"), 5, 4, -1);
- test(S("abcde"), 4, 2, S("abcdefghij"), 5, 5, -1);
- test(S("abcde"), 4, 2, S("abcdefghij"), 5, 6, -1);
- test(S("abcde"), 4, 2, S("abcdefghij"), 9, 0, 1);
- test(S("abcde"), 4, 2, S("abcdefghij"), 9, 1, -5);
- test(S("abcde"), 4, 2, S("abcdefghij"), 9, 2, -5);
- test(S("abcde"), 4, 2, S("abcdefghij"), 10, 0, 1);
- test(S("abcde"), 4, 2, S("abcdefghij"), 10, 1, 1);
- test(S("abcde"), 4, 2, S("abcdefghij"), 11, 0, 0);
- test(S("abcde"), 4, 2, S("abcdefghijklmnopqrst"), 0, 0, 1);
- test(S("abcde"), 4, 2, S("abcdefghijklmnopqrst"), 0, 1, 4);
- test(S("abcde"), 4, 2, S("abcdefghijklmnopqrst"), 0, 10, 4);
- test(S("abcde"), 4, 2, S("abcdefghijklmnopqrst"), 0, 19, 4);
- test(S("abcde"), 4, 2, S("abcdefghijklmnopqrst"), 0, 20, 4);
- test(S("abcde"), 4, 2, S("abcdefghijklmnopqrst"), 0, 21, 4);
- test(S("abcde"), 4, 2, S("abcdefghijklmnopqrst"), 1, 0, 1);
- test(S("abcde"), 4, 2, S("abcdefghijklmnopqrst"), 1, 1, 3);
- test(S("abcde"), 4, 2, S("abcdefghijklmnopqrst"), 1, 9, 3);
- test(S("abcde"), 4, 2, S("abcdefghijklmnopqrst"), 1, 18, 3);
- test(S("abcde"), 4, 2, S("abcdefghijklmnopqrst"), 1, 19, 3);
- test(S("abcde"), 4, 2, S("abcdefghijklmnopqrst"), 1, 20, 3);
- test(S("abcde"), 4, 2, S("abcdefghijklmnopqrst"), 10, 0, 1);
- test(S("abcde"), 4, 2, S("abcdefghijklmnopqrst"), 10, 1, -6);
- test(S("abcde"), 4, 2, S("abcdefghijklmnopqrst"), 10, 5, -6);
- test(S("abcde"), 4, 2, S("abcdefghijklmnopqrst"), 10, 9, -6);
- test(S("abcde"), 4, 2, S("abcdefghijklmnopqrst"), 10, 10, -6);
- test(S("abcde"), 4, 2, S("abcdefghijklmnopqrst"), 10, 11, -6);
- test(S("abcde"), 4, 2, S("abcdefghijklmnopqrst"), 19, 0, 1);
- test(S("abcde"), 4, 2, S("abcdefghijklmnopqrst"), 19, 1, -15);
- test(S("abcde"), 4, 2, S("abcdefghijklmnopqrst"), 19, 2, -15);
- test(S("abcde"), 4, 2, S("abcdefghijklmnopqrst"), 20, 0, 1);
+TEST_CONSTEXPR_CXX20 bool test16() {
+ test(S("abcde"), 4, 1, S("abcdefghij"), 9, 2, -5);
+ test(S("abcde"), 4, 1, S("abcdefghij"), 10, 0, 1);
+ test(S("abcde"), 4, 1, S("abcdefghij"), 10, 1, 1);
+ test(S("abcde"), 4, 1, S("abcdefghij"), 11, 0, 0);
+ test(S("abcde"), 4, 1, S("abcdefghijklmnopqrst"), 0, 0, 1);
+ test(S("abcde"), 4, 1, S("abcdefghijklmnopqrst"), 0, 1, 4);
+ test(S("abcde"), 4, 1, S("abcdefghijklmnopqrst"), 0, 10, 4);
+ test(S("abcde"), 4, 1, S("abcdefghijklmnopqrst"), 0, 19, 4);
+ test(S("abcde"), 4, 1, S("abcdefghijklmnopqrst"), 0, 20, 4);
+ test(S("abcde"), 4, 1, S("abcdefghijklmnopqrst"), 0, 21, 4);
+ test(S("abcde"), 4, 1, S("abcdefghijklmnopqrst"), 1, 0, 1);
+ test(S("abcde"), 4, 1, S("abcdefghijklmnopqrst"), 1, 1, 3);
+ test(S("abcde"), 4, 1, S("abcdefghijklmnopqrst"), 1, 9, 3);
+ test(S("abcde"), 4, 1, S("abcdefghijklmnopqrst"), 1, 18, 3);
+ test(S("abcde"), 4, 1, S("abcdefghijklmnopqrst"), 1, 19, 3);
+ test(S("abcde"), 4, 1, S("abcdefghijklmnopqrst"), 1, 20, 3);
+ test(S("abcde"), 4, 1, S("abcdefghijklmnopqrst"), 10, 0, 1);
+ test(S("abcde"), 4, 1, S("abcdefghijklmnopqrst"), 10, 1, -6);
+ test(S("abcde"), 4, 1, S("abcdefghijklmnopqrst"), 10, 5, -6);
+ test(S("abcde"), 4, 1, S("abcdefghijklmnopqrst"), 10, 9, -6);
+ test(S("abcde"), 4, 1, S("abcdefghijklmnopqrst"), 10, 10, -6);
+ test(S("abcde"), 4, 1, S("abcdefghijklmnopqrst"), 10, 11, -6);
+ test(S("abcde"), 4, 1, S("abcdefghijklmnopqrst"), 19, 0, 1);
+ test(S("abcde"), 4, 1, S("abcdefghijklmnopqrst"), 19, 1, -15);
+ test(S("abcde"), 4, 1, S("abcdefghijklmnopqrst"), 19, 2, -15);
+ test(S("abcde"), 4, 1, S("abcdefghijklmnopqrst"), 20, 0, 1);
+ test(S("abcde"), 4, 1, S("abcdefghijklmnopqrst"), 20, 1, 1);
+ test(S("abcde"), 4, 1, S("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcde"), 4, 2, S(""), 0, 0, 1);
+ test(S("abcde"), 4, 2, S(""), 0, 1, 1);
+ test(S("abcde"), 4, 2, S(""), 1, 0, 0);
+ test(S("abcde"), 4, 2, S("abcde"), 0, 0, 1);
+ test(S("abcde"), 4, 2, S("abcde"), 0, 1, 4);
+ test(S("abcde"), 4, 2, S("abcde"), 0, 2, 4);
+ test(S("abcde"), 4, 2, S("abcde"), 0, 4, 4);
+ test(S("abcde"), 4, 2, S("abcde"), 0, 5, 4);
+ test(S("abcde"), 4, 2, S("abcde"), 0, 6, 4);
+ test(S("abcde"), 4, 2, S("abcde"), 1, 0, 1);
+ test(S("abcde"), 4, 2, S("abcde"), 1, 1, 3);
+ test(S("abcde"), 4, 2, S("abcde"), 1, 2, 3);
+ test(S("abcde"), 4, 2, S("abcde"), 1, 3, 3);
+ test(S("abcde"), 4, 2, S("abcde"), 1, 4, 3);
+ test(S("abcde"), 4, 2, S("abcde"), 1, 5, 3);
+ test(S("abcde"), 4, 2, S("abcde"), 2, 0, 1);
+ test(S("abcde"), 4, 2, S("abcde"), 2, 1, 2);
+ test(S("abcde"), 4, 2, S("abcde"), 2, 2, 2);
+ test(S("abcde"), 4, 2, S("abcde"), 2, 3, 2);
+ test(S("abcde"), 4, 2, S("abcde"), 2, 4, 2);
+ test(S("abcde"), 4, 2, S("abcde"), 4, 0, 1);
+ test(S("abcde"), 4, 2, S("abcde"), 4, 1, 0);
+ test(S("abcde"), 4, 2, S("abcde"), 4, 2, 0);
+ test(S("abcde"), 4, 2, S("abcde"), 5, 0, 1);
+ test(S("abcde"), 4, 2, S("abcde"), 5, 1, 1);
+ test(S("abcde"), 4, 2, S("abcde"), 6, 0, 0);
+ test(S("abcde"), 4, 2, S("abcdefghij"), 0, 0, 1);
+ test(S("abcde"), 4, 2, S("abcdefghij"), 0, 1, 4);
+ test(S("abcde"), 4, 2, S("abcdefghij"), 0, 5, 4);
+ test(S("abcde"), 4, 2, S("abcdefghij"), 0, 9, 4);
+ test(S("abcde"), 4, 2, S("abcdefghij"), 0, 10, 4);
+ test(S("abcde"), 4, 2, S("abcdefghij"), 0, 11, 4);
+ test(S("abcde"), 4, 2, S("abcdefghij"), 1, 0, 1);
+ test(S("abcde"), 4, 2, S("abcdefghij"), 1, 1, 3);
+ test(S("abcde"), 4, 2, S("abcdefghij"), 1, 4, 3);
+ test(S("abcde"), 4, 2, S("abcdefghij"), 1, 8, 3);
+ test(S("abcde"), 4, 2, S("abcdefghij"), 1, 9, 3);
+ test(S("abcde"), 4, 2, S("abcdefghij"), 1, 10, 3);
+ test(S("abcde"), 4, 2, S("abcdefghij"), 5, 0, 1);
+ test(S("abcde"), 4, 2, S("abcdefghij"), 5, 1, -1);
+ test(S("abcde"), 4, 2, S("abcdefghij"), 5, 2, -1);
+ test(S("abcde"), 4, 2, S("abcdefghij"), 5, 4, -1);
+ test(S("abcde"), 4, 2, S("abcdefghij"), 5, 5, -1);
+ test(S("abcde"), 4, 2, S("abcdefghij"), 5, 6, -1);
+ test(S("abcde"), 4, 2, S("abcdefghij"), 9, 0, 1);
+ test(S("abcde"), 4, 2, S("abcdefghij"), 9, 1, -5);
+ test(S("abcde"), 4, 2, S("abcdefghij"), 9, 2, -5);
+ test(S("abcde"), 4, 2, S("abcdefghij"), 10, 0, 1);
+ test(S("abcde"), 4, 2, S("abcdefghij"), 10, 1, 1);
+ test(S("abcde"), 4, 2, S("abcdefghij"), 11, 0, 0);
+ test(S("abcde"), 4, 2, S("abcdefghijklmnopqrst"), 0, 0, 1);
+ test(S("abcde"), 4, 2, S("abcdefghijklmnopqrst"), 0, 1, 4);
+ test(S("abcde"), 4, 2, S("abcdefghijklmnopqrst"), 0, 10, 4);
+ test(S("abcde"), 4, 2, S("abcdefghijklmnopqrst"), 0, 19, 4);
+ test(S("abcde"), 4, 2, S("abcdefghijklmnopqrst"), 0, 20, 4);
+ test(S("abcde"), 4, 2, S("abcdefghijklmnopqrst"), 0, 21, 4);
+ test(S("abcde"), 4, 2, S("abcdefghijklmnopqrst"), 1, 0, 1);
+ test(S("abcde"), 4, 2, S("abcdefghijklmnopqrst"), 1, 1, 3);
+ test(S("abcde"), 4, 2, S("abcdefghijklmnopqrst"), 1, 9, 3);
+ test(S("abcde"), 4, 2, S("abcdefghijklmnopqrst"), 1, 18, 3);
+ test(S("abcde"), 4, 2, S("abcdefghijklmnopqrst"), 1, 19, 3);
+ test(S("abcde"), 4, 2, S("abcdefghijklmnopqrst"), 1, 20, 3);
+ test(S("abcde"), 4, 2, S("abcdefghijklmnopqrst"), 10, 0, 1);
+ test(S("abcde"), 4, 2, S("abcdefghijklmnopqrst"), 10, 1, -6);
+ test(S("abcde"), 4, 2, S("abcdefghijklmnopqrst"), 10, 5, -6);
+ test(S("abcde"), 4, 2, S("abcdefghijklmnopqrst"), 10, 9, -6);
+ test(S("abcde"), 4, 2, S("abcdefghijklmnopqrst"), 10, 10, -6);
+ test(S("abcde"), 4, 2, S("abcdefghijklmnopqrst"), 10, 11, -6);
+ test(S("abcde"), 4, 2, S("abcdefghijklmnopqrst"), 19, 0, 1);
+ test(S("abcde"), 4, 2, S("abcdefghijklmnopqrst"), 19, 1, -15);
+ test(S("abcde"), 4, 2, S("abcdefghijklmnopqrst"), 19, 2, -15);
+ test(S("abcde"), 4, 2, S("abcdefghijklmnopqrst"), 20, 0, 1);
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test17()
-{
- test(S("abcde"), 4, 2, S("abcdefghijklmnopqrst"), 20, 1, 1);
- test(S("abcde"), 4, 2, S("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcde"), 5, 0, S(""), 0, 0, 0);
- test(S("abcde"), 5, 0, S(""), 0, 1, 0);
- test(S("abcde"), 5, 0, S(""), 1, 0, 0);
- test(S("abcde"), 5, 0, S("abcde"), 0, 0, 0);
- test(S("abcde"), 5, 0, S("abcde"), 0, 1, -1);
- test(S("abcde"), 5, 0, S("abcde"), 0, 2, -2);
- test(S("abcde"), 5, 0, S("abcde"), 0, 4, -4);
- test(S("abcde"), 5, 0, S("abcde"), 0, 5, -5);
- test(S("abcde"), 5, 0, S("abcde"), 0, 6, -5);
- test(S("abcde"), 5, 0, S("abcde"), 1, 0, 0);
- test(S("abcde"), 5, 0, S("abcde"), 1, 1, -1);
- test(S("abcde"), 5, 0, S("abcde"), 1, 2, -2);
- test(S("abcde"), 5, 0, S("abcde"), 1, 3, -3);
- test(S("abcde"), 5, 0, S("abcde"), 1, 4, -4);
- test(S("abcde"), 5, 0, S("abcde"), 1, 5, -4);
- test(S("abcde"), 5, 0, S("abcde"), 2, 0, 0);
- test(S("abcde"), 5, 0, S("abcde"), 2, 1, -1);
- test(S("abcde"), 5, 0, S("abcde"), 2, 2, -2);
- test(S("abcde"), 5, 0, S("abcde"), 2, 3, -3);
- test(S("abcde"), 5, 0, S("abcde"), 2, 4, -3);
- test(S("abcde"), 5, 0, S("abcde"), 4, 0, 0);
- test(S("abcde"), 5, 0, S("abcde"), 4, 1, -1);
- test(S("abcde"), 5, 0, S("abcde"), 4, 2, -1);
- test(S("abcde"), 5, 0, S("abcde"), 5, 0, 0);
- test(S("abcde"), 5, 0, S("abcde"), 5, 1, 0);
- test(S("abcde"), 5, 0, S("abcde"), 6, 0, 0);
- test(S("abcde"), 5, 0, S("abcdefghij"), 0, 0, 0);
- test(S("abcde"), 5, 0, S("abcdefghij"), 0, 1, -1);
- test(S("abcde"), 5, 0, S("abcdefghij"), 0, 5, -5);
- test(S("abcde"), 5, 0, S("abcdefghij"), 0, 9, -9);
- test(S("abcde"), 5, 0, S("abcdefghij"), 0, 10, -10);
- test(S("abcde"), 5, 0, S("abcdefghij"), 0, 11, -10);
- test(S("abcde"), 5, 0, S("abcdefghij"), 1, 0, 0);
- test(S("abcde"), 5, 0, S("abcdefghij"), 1, 1, -1);
- test(S("abcde"), 5, 0, S("abcdefghij"), 1, 4, -4);
- test(S("abcde"), 5, 0, S("abcdefghij"), 1, 8, -8);
- test(S("abcde"), 5, 0, S("abcdefghij"), 1, 9, -9);
- test(S("abcde"), 5, 0, S("abcdefghij"), 1, 10, -9);
- test(S("abcde"), 5, 0, S("abcdefghij"), 5, 0, 0);
- test(S("abcde"), 5, 0, S("abcdefghij"), 5, 1, -1);
- test(S("abcde"), 5, 0, S("abcdefghij"), 5, 2, -2);
- test(S("abcde"), 5, 0, S("abcdefghij"), 5, 4, -4);
- test(S("abcde"), 5, 0, S("abcdefghij"), 5, 5, -5);
- test(S("abcde"), 5, 0, S("abcdefghij"), 5, 6, -5);
- test(S("abcde"), 5, 0, S("abcdefghij"), 9, 0, 0);
- test(S("abcde"), 5, 0, S("abcdefghij"), 9, 1, -1);
- test(S("abcde"), 5, 0, S("abcdefghij"), 9, 2, -1);
- test(S("abcde"), 5, 0, S("abcdefghij"), 10, 0, 0);
- test(S("abcde"), 5, 0, S("abcdefghij"), 10, 1, 0);
- test(S("abcde"), 5, 0, S("abcdefghij"), 11, 0, 0);
- test(S("abcde"), 5, 0, S("abcdefghijklmnopqrst"), 0, 0, 0);
- test(S("abcde"), 5, 0, S("abcdefghijklmnopqrst"), 0, 1, -1);
- test(S("abcde"), 5, 0, S("abcdefghijklmnopqrst"), 0, 10, -10);
- test(S("abcde"), 5, 0, S("abcdefghijklmnopqrst"), 0, 19, -19);
- test(S("abcde"), 5, 0, S("abcdefghijklmnopqrst"), 0, 20, -20);
- test(S("abcde"), 5, 0, S("abcdefghijklmnopqrst"), 0, 21, -20);
- test(S("abcde"), 5, 0, S("abcdefghijklmnopqrst"), 1, 0, 0);
- test(S("abcde"), 5, 0, S("abcdefghijklmnopqrst"), 1, 1, -1);
- test(S("abcde"), 5, 0, S("abcdefghijklmnopqrst"), 1, 9, -9);
- test(S("abcde"), 5, 0, S("abcdefghijklmnopqrst"), 1, 18, -18);
- test(S("abcde"), 5, 0, S("abcdefghijklmnopqrst"), 1, 19, -19);
- test(S("abcde"), 5, 0, S("abcdefghijklmnopqrst"), 1, 20, -19);
- test(S("abcde"), 5, 0, S("abcdefghijklmnopqrst"), 10, 0, 0);
- test(S("abcde"), 5, 0, S("abcdefghijklmnopqrst"), 10, 1, -1);
- test(S("abcde"), 5, 0, S("abcdefghijklmnopqrst"), 10, 5, -5);
- test(S("abcde"), 5, 0, S("abcdefghijklmnopqrst"), 10, 9, -9);
- test(S("abcde"), 5, 0, S("abcdefghijklmnopqrst"), 10, 10, -10);
- test(S("abcde"), 5, 0, S("abcdefghijklmnopqrst"), 10, 11, -10);
- test(S("abcde"), 5, 0, S("abcdefghijklmnopqrst"), 19, 0, 0);
- test(S("abcde"), 5, 0, S("abcdefghijklmnopqrst"), 19, 1, -1);
- test(S("abcde"), 5, 0, S("abcdefghijklmnopqrst"), 19, 2, -1);
- test(S("abcde"), 5, 0, S("abcdefghijklmnopqrst"), 20, 0, 0);
- test(S("abcde"), 5, 0, S("abcdefghijklmnopqrst"), 20, 1, 0);
- test(S("abcde"), 5, 0, S("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcde"), 5, 1, S(""), 0, 0, 0);
- test(S("abcde"), 5, 1, S(""), 0, 1, 0);
- test(S("abcde"), 5, 1, S(""), 1, 0, 0);
- test(S("abcde"), 5, 1, S("abcde"), 0, 0, 0);
- test(S("abcde"), 5, 1, S("abcde"), 0, 1, -1);
- test(S("abcde"), 5, 1, S("abcde"), 0, 2, -2);
- test(S("abcde"), 5, 1, S("abcde"), 0, 4, -4);
- test(S("abcde"), 5, 1, S("abcde"), 0, 5, -5);
- test(S("abcde"), 5, 1, S("abcde"), 0, 6, -5);
- test(S("abcde"), 5, 1, S("abcde"), 1, 0, 0);
- test(S("abcde"), 5, 1, S("abcde"), 1, 1, -1);
- test(S("abcde"), 5, 1, S("abcde"), 1, 2, -2);
- test(S("abcde"), 5, 1, S("abcde"), 1, 3, -3);
- test(S("abcde"), 5, 1, S("abcde"), 1, 4, -4);
- test(S("abcde"), 5, 1, S("abcde"), 1, 5, -4);
- test(S("abcde"), 5, 1, S("abcde"), 2, 0, 0);
- test(S("abcde"), 5, 1, S("abcde"), 2, 1, -1);
- test(S("abcde"), 5, 1, S("abcde"), 2, 2, -2);
- test(S("abcde"), 5, 1, S("abcde"), 2, 3, -3);
- test(S("abcde"), 5, 1, S("abcde"), 2, 4, -3);
- test(S("abcde"), 5, 1, S("abcde"), 4, 0, 0);
- test(S("abcde"), 5, 1, S("abcde"), 4, 1, -1);
- test(S("abcde"), 5, 1, S("abcde"), 4, 2, -1);
- test(S("abcde"), 5, 1, S("abcde"), 5, 0, 0);
+TEST_CONSTEXPR_CXX20 bool test17() {
+ test(S("abcde"), 4, 2, S("abcdefghijklmnopqrst"), 20, 1, 1);
+ test(S("abcde"), 4, 2, S("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcde"), 5, 0, S(""), 0, 0, 0);
+ test(S("abcde"), 5, 0, S(""), 0, 1, 0);
+ test(S("abcde"), 5, 0, S(""), 1, 0, 0);
+ test(S("abcde"), 5, 0, S("abcde"), 0, 0, 0);
+ test(S("abcde"), 5, 0, S("abcde"), 0, 1, -1);
+ test(S("abcde"), 5, 0, S("abcde"), 0, 2, -2);
+ test(S("abcde"), 5, 0, S("abcde"), 0, 4, -4);
+ test(S("abcde"), 5, 0, S("abcde"), 0, 5, -5);
+ test(S("abcde"), 5, 0, S("abcde"), 0, 6, -5);
+ test(S("abcde"), 5, 0, S("abcde"), 1, 0, 0);
+ test(S("abcde"), 5, 0, S("abcde"), 1, 1, -1);
+ test(S("abcde"), 5, 0, S("abcde"), 1, 2, -2);
+ test(S("abcde"), 5, 0, S("abcde"), 1, 3, -3);
+ test(S("abcde"), 5, 0, S("abcde"), 1, 4, -4);
+ test(S("abcde"), 5, 0, S("abcde"), 1, 5, -4);
+ test(S("abcde"), 5, 0, S("abcde"), 2, 0, 0);
+ test(S("abcde"), 5, 0, S("abcde"), 2, 1, -1);
+ test(S("abcde"), 5, 0, S("abcde"), 2, 2, -2);
+ test(S("abcde"), 5, 0, S("abcde"), 2, 3, -3);
+ test(S("abcde"), 5, 0, S("abcde"), 2, 4, -3);
+ test(S("abcde"), 5, 0, S("abcde"), 4, 0, 0);
+ test(S("abcde"), 5, 0, S("abcde"), 4, 1, -1);
+ test(S("abcde"), 5, 0, S("abcde"), 4, 2, -1);
+ test(S("abcde"), 5, 0, S("abcde"), 5, 0, 0);
+ test(S("abcde"), 5, 0, S("abcde"), 5, 1, 0);
+ test(S("abcde"), 5, 0, S("abcde"), 6, 0, 0);
+ test(S("abcde"), 5, 0, S("abcdefghij"), 0, 0, 0);
+ test(S("abcde"), 5, 0, S("abcdefghij"), 0, 1, -1);
+ test(S("abcde"), 5, 0, S("abcdefghij"), 0, 5, -5);
+ test(S("abcde"), 5, 0, S("abcdefghij"), 0, 9, -9);
+ test(S("abcde"), 5, 0, S("abcdefghij"), 0, 10, -10);
+ test(S("abcde"), 5, 0, S("abcdefghij"), 0, 11, -10);
+ test(S("abcde"), 5, 0, S("abcdefghij"), 1, 0, 0);
+ test(S("abcde"), 5, 0, S("abcdefghij"), 1, 1, -1);
+ test(S("abcde"), 5, 0, S("abcdefghij"), 1, 4, -4);
+ test(S("abcde"), 5, 0, S("abcdefghij"), 1, 8, -8);
+ test(S("abcde"), 5, 0, S("abcdefghij"), 1, 9, -9);
+ test(S("abcde"), 5, 0, S("abcdefghij"), 1, 10, -9);
+ test(S("abcde"), 5, 0, S("abcdefghij"), 5, 0, 0);
+ test(S("abcde"), 5, 0, S("abcdefghij"), 5, 1, -1);
+ test(S("abcde"), 5, 0, S("abcdefghij"), 5, 2, -2);
+ test(S("abcde"), 5, 0, S("abcdefghij"), 5, 4, -4);
+ test(S("abcde"), 5, 0, S("abcdefghij"), 5, 5, -5);
+ test(S("abcde"), 5, 0, S("abcdefghij"), 5, 6, -5);
+ test(S("abcde"), 5, 0, S("abcdefghij"), 9, 0, 0);
+ test(S("abcde"), 5, 0, S("abcdefghij"), 9, 1, -1);
+ test(S("abcde"), 5, 0, S("abcdefghij"), 9, 2, -1);
+ test(S("abcde"), 5, 0, S("abcdefghij"), 10, 0, 0);
+ test(S("abcde"), 5, 0, S("abcdefghij"), 10, 1, 0);
+ test(S("abcde"), 5, 0, S("abcdefghij"), 11, 0, 0);
+ test(S("abcde"), 5, 0, S("abcdefghijklmnopqrst"), 0, 0, 0);
+ test(S("abcde"), 5, 0, S("abcdefghijklmnopqrst"), 0, 1, -1);
+ test(S("abcde"), 5, 0, S("abcdefghijklmnopqrst"), 0, 10, -10);
+ test(S("abcde"), 5, 0, S("abcdefghijklmnopqrst"), 0, 19, -19);
+ test(S("abcde"), 5, 0, S("abcdefghijklmnopqrst"), 0, 20, -20);
+ test(S("abcde"), 5, 0, S("abcdefghijklmnopqrst"), 0, 21, -20);
+ test(S("abcde"), 5, 0, S("abcdefghijklmnopqrst"), 1, 0, 0);
+ test(S("abcde"), 5, 0, S("abcdefghijklmnopqrst"), 1, 1, -1);
+ test(S("abcde"), 5, 0, S("abcdefghijklmnopqrst"), 1, 9, -9);
+ test(S("abcde"), 5, 0, S("abcdefghijklmnopqrst"), 1, 18, -18);
+ test(S("abcde"), 5, 0, S("abcdefghijklmnopqrst"), 1, 19, -19);
+ test(S("abcde"), 5, 0, S("abcdefghijklmnopqrst"), 1, 20, -19);
+ test(S("abcde"), 5, 0, S("abcdefghijklmnopqrst"), 10, 0, 0);
+ test(S("abcde"), 5, 0, S("abcdefghijklmnopqrst"), 10, 1, -1);
+ test(S("abcde"), 5, 0, S("abcdefghijklmnopqrst"), 10, 5, -5);
+ test(S("abcde"), 5, 0, S("abcdefghijklmnopqrst"), 10, 9, -9);
+ test(S("abcde"), 5, 0, S("abcdefghijklmnopqrst"), 10, 10, -10);
+ test(S("abcde"), 5, 0, S("abcdefghijklmnopqrst"), 10, 11, -10);
+ test(S("abcde"), 5, 0, S("abcdefghijklmnopqrst"), 19, 0, 0);
+ test(S("abcde"), 5, 0, S("abcdefghijklmnopqrst"), 19, 1, -1);
+ test(S("abcde"), 5, 0, S("abcdefghijklmnopqrst"), 19, 2, -1);
+ test(S("abcde"), 5, 0, S("abcdefghijklmnopqrst"), 20, 0, 0);
+ test(S("abcde"), 5, 0, S("abcdefghijklmnopqrst"), 20, 1, 0);
+ test(S("abcde"), 5, 0, S("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcde"), 5, 1, S(""), 0, 0, 0);
+ test(S("abcde"), 5, 1, S(""), 0, 1, 0);
+ test(S("abcde"), 5, 1, S(""), 1, 0, 0);
+ test(S("abcde"), 5, 1, S("abcde"), 0, 0, 0);
+ test(S("abcde"), 5, 1, S("abcde"), 0, 1, -1);
+ test(S("abcde"), 5, 1, S("abcde"), 0, 2, -2);
+ test(S("abcde"), 5, 1, S("abcde"), 0, 4, -4);
+ test(S("abcde"), 5, 1, S("abcde"), 0, 5, -5);
+ test(S("abcde"), 5, 1, S("abcde"), 0, 6, -5);
+ test(S("abcde"), 5, 1, S("abcde"), 1, 0, 0);
+ test(S("abcde"), 5, 1, S("abcde"), 1, 1, -1);
+ test(S("abcde"), 5, 1, S("abcde"), 1, 2, -2);
+ test(S("abcde"), 5, 1, S("abcde"), 1, 3, -3);
+ test(S("abcde"), 5, 1, S("abcde"), 1, 4, -4);
+ test(S("abcde"), 5, 1, S("abcde"), 1, 5, -4);
+ test(S("abcde"), 5, 1, S("abcde"), 2, 0, 0);
+ test(S("abcde"), 5, 1, S("abcde"), 2, 1, -1);
+ test(S("abcde"), 5, 1, S("abcde"), 2, 2, -2);
+ test(S("abcde"), 5, 1, S("abcde"), 2, 3, -3);
+ test(S("abcde"), 5, 1, S("abcde"), 2, 4, -3);
+ test(S("abcde"), 5, 1, S("abcde"), 4, 0, 0);
+ test(S("abcde"), 5, 1, S("abcde"), 4, 1, -1);
+ test(S("abcde"), 5, 1, S("abcde"), 4, 2, -1);
+ test(S("abcde"), 5, 1, S("abcde"), 5, 0, 0);
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test18()
-{
- test(S("abcde"), 5, 1, S("abcde"), 5, 1, 0);
- test(S("abcde"), 5, 1, S("abcde"), 6, 0, 0);
- test(S("abcde"), 5, 1, S("abcdefghij"), 0, 0, 0);
- test(S("abcde"), 5, 1, S("abcdefghij"), 0, 1, -1);
- test(S("abcde"), 5, 1, S("abcdefghij"), 0, 5, -5);
- test(S("abcde"), 5, 1, S("abcdefghij"), 0, 9, -9);
- test(S("abcde"), 5, 1, S("abcdefghij"), 0, 10, -10);
- test(S("abcde"), 5, 1, S("abcdefghij"), 0, 11, -10);
- test(S("abcde"), 5, 1, S("abcdefghij"), 1, 0, 0);
- test(S("abcde"), 5, 1, S("abcdefghij"), 1, 1, -1);
- test(S("abcde"), 5, 1, S("abcdefghij"), 1, 4, -4);
- test(S("abcde"), 5, 1, S("abcdefghij"), 1, 8, -8);
- test(S("abcde"), 5, 1, S("abcdefghij"), 1, 9, -9);
- test(S("abcde"), 5, 1, S("abcdefghij"), 1, 10, -9);
- test(S("abcde"), 5, 1, S("abcdefghij"), 5, 0, 0);
- test(S("abcde"), 5, 1, S("abcdefghij"), 5, 1, -1);
- test(S("abcde"), 5, 1, S("abcdefghij"), 5, 2, -2);
- test(S("abcde"), 5, 1, S("abcdefghij"), 5, 4, -4);
- test(S("abcde"), 5, 1, S("abcdefghij"), 5, 5, -5);
- test(S("abcde"), 5, 1, S("abcdefghij"), 5, 6, -5);
- test(S("abcde"), 5, 1, S("abcdefghij"), 9, 0, 0);
- test(S("abcde"), 5, 1, S("abcdefghij"), 9, 1, -1);
- test(S("abcde"), 5, 1, S("abcdefghij"), 9, 2, -1);
- test(S("abcde"), 5, 1, S("abcdefghij"), 10, 0, 0);
- test(S("abcde"), 5, 1, S("abcdefghij"), 10, 1, 0);
- test(S("abcde"), 5, 1, S("abcdefghij"), 11, 0, 0);
- test(S("abcde"), 5, 1, S("abcdefghijklmnopqrst"), 0, 0, 0);
- test(S("abcde"), 5, 1, S("abcdefghijklmnopqrst"), 0, 1, -1);
- test(S("abcde"), 5, 1, S("abcdefghijklmnopqrst"), 0, 10, -10);
- test(S("abcde"), 5, 1, S("abcdefghijklmnopqrst"), 0, 19, -19);
- test(S("abcde"), 5, 1, S("abcdefghijklmnopqrst"), 0, 20, -20);
- test(S("abcde"), 5, 1, S("abcdefghijklmnopqrst"), 0, 21, -20);
- test(S("abcde"), 5, 1, S("abcdefghijklmnopqrst"), 1, 0, 0);
- test(S("abcde"), 5, 1, S("abcdefghijklmnopqrst"), 1, 1, -1);
- test(S("abcde"), 5, 1, S("abcdefghijklmnopqrst"), 1, 9, -9);
- test(S("abcde"), 5, 1, S("abcdefghijklmnopqrst"), 1, 18, -18);
- test(S("abcde"), 5, 1, S("abcdefghijklmnopqrst"), 1, 19, -19);
- test(S("abcde"), 5, 1, S("abcdefghijklmnopqrst"), 1, 20, -19);
- test(S("abcde"), 5, 1, S("abcdefghijklmnopqrst"), 10, 0, 0);
- test(S("abcde"), 5, 1, S("abcdefghijklmnopqrst"), 10, 1, -1);
- test(S("abcde"), 5, 1, S("abcdefghijklmnopqrst"), 10, 5, -5);
- test(S("abcde"), 5, 1, S("abcdefghijklmnopqrst"), 10, 9, -9);
- test(S("abcde"), 5, 1, S("abcdefghijklmnopqrst"), 10, 10, -10);
- test(S("abcde"), 5, 1, S("abcdefghijklmnopqrst"), 10, 11, -10);
- test(S("abcde"), 5, 1, S("abcdefghijklmnopqrst"), 19, 0, 0);
- test(S("abcde"), 5, 1, S("abcdefghijklmnopqrst"), 19, 1, -1);
- test(S("abcde"), 5, 1, S("abcdefghijklmnopqrst"), 19, 2, -1);
- test(S("abcde"), 5, 1, S("abcdefghijklmnopqrst"), 20, 0, 0);
- test(S("abcde"), 5, 1, S("abcdefghijklmnopqrst"), 20, 1, 0);
- test(S("abcde"), 5, 1, S("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcde"), 6, 0, S(""), 0, 0, 0);
- test(S("abcde"), 6, 0, S(""), 0, 1, 0);
- test(S("abcde"), 6, 0, S(""), 1, 0, 0);
- test(S("abcde"), 6, 0, S("abcde"), 0, 0, 0);
- test(S("abcde"), 6, 0, S("abcde"), 0, 1, 0);
- test(S("abcde"), 6, 0, S("abcde"), 0, 2, 0);
- test(S("abcde"), 6, 0, S("abcde"), 0, 4, 0);
- test(S("abcde"), 6, 0, S("abcde"), 0, 5, 0);
- test(S("abcde"), 6, 0, S("abcde"), 0, 6, 0);
- test(S("abcde"), 6, 0, S("abcde"), 1, 0, 0);
- test(S("abcde"), 6, 0, S("abcde"), 1, 1, 0);
- test(S("abcde"), 6, 0, S("abcde"), 1, 2, 0);
- test(S("abcde"), 6, 0, S("abcde"), 1, 3, 0);
- test(S("abcde"), 6, 0, S("abcde"), 1, 4, 0);
- test(S("abcde"), 6, 0, S("abcde"), 1, 5, 0);
- test(S("abcde"), 6, 0, S("abcde"), 2, 0, 0);
- test(S("abcde"), 6, 0, S("abcde"), 2, 1, 0);
- test(S("abcde"), 6, 0, S("abcde"), 2, 2, 0);
- test(S("abcde"), 6, 0, S("abcde"), 2, 3, 0);
- test(S("abcde"), 6, 0, S("abcde"), 2, 4, 0);
- test(S("abcde"), 6, 0, S("abcde"), 4, 0, 0);
- test(S("abcde"), 6, 0, S("abcde"), 4, 1, 0);
- test(S("abcde"), 6, 0, S("abcde"), 4, 2, 0);
- test(S("abcde"), 6, 0, S("abcde"), 5, 0, 0);
- test(S("abcde"), 6, 0, S("abcde"), 5, 1, 0);
- test(S("abcde"), 6, 0, S("abcde"), 6, 0, 0);
- test(S("abcde"), 6, 0, S("abcdefghij"), 0, 0, 0);
- test(S("abcde"), 6, 0, S("abcdefghij"), 0, 1, 0);
- test(S("abcde"), 6, 0, S("abcdefghij"), 0, 5, 0);
- test(S("abcde"), 6, 0, S("abcdefghij"), 0, 9, 0);
- test(S("abcde"), 6, 0, S("abcdefghij"), 0, 10, 0);
- test(S("abcde"), 6, 0, S("abcdefghij"), 0, 11, 0);
- test(S("abcde"), 6, 0, S("abcdefghij"), 1, 0, 0);
- test(S("abcde"), 6, 0, S("abcdefghij"), 1, 1, 0);
- test(S("abcde"), 6, 0, S("abcdefghij"), 1, 4, 0);
- test(S("abcde"), 6, 0, S("abcdefghij"), 1, 8, 0);
- test(S("abcde"), 6, 0, S("abcdefghij"), 1, 9, 0);
- test(S("abcde"), 6, 0, S("abcdefghij"), 1, 10, 0);
- test(S("abcde"), 6, 0, S("abcdefghij"), 5, 0, 0);
- test(S("abcde"), 6, 0, S("abcdefghij"), 5, 1, 0);
- test(S("abcde"), 6, 0, S("abcdefghij"), 5, 2, 0);
- test(S("abcde"), 6, 0, S("abcdefghij"), 5, 4, 0);
- test(S("abcde"), 6, 0, S("abcdefghij"), 5, 5, 0);
- test(S("abcde"), 6, 0, S("abcdefghij"), 5, 6, 0);
- test(S("abcde"), 6, 0, S("abcdefghij"), 9, 0, 0);
- test(S("abcde"), 6, 0, S("abcdefghij"), 9, 1, 0);
- test(S("abcde"), 6, 0, S("abcdefghij"), 9, 2, 0);
- test(S("abcde"), 6, 0, S("abcdefghij"), 10, 0, 0);
- test(S("abcde"), 6, 0, S("abcdefghij"), 10, 1, 0);
- test(S("abcde"), 6, 0, S("abcdefghij"), 11, 0, 0);
+TEST_CONSTEXPR_CXX20 bool test18() {
+ test(S("abcde"), 5, 1, S("abcde"), 5, 1, 0);
+ test(S("abcde"), 5, 1, S("abcde"), 6, 0, 0);
+ test(S("abcde"), 5, 1, S("abcdefghij"), 0, 0, 0);
+ test(S("abcde"), 5, 1, S("abcdefghij"), 0, 1, -1);
+ test(S("abcde"), 5, 1, S("abcdefghij"), 0, 5, -5);
+ test(S("abcde"), 5, 1, S("abcdefghij"), 0, 9, -9);
+ test(S("abcde"), 5, 1, S("abcdefghij"), 0, 10, -10);
+ test(S("abcde"), 5, 1, S("abcdefghij"), 0, 11, -10);
+ test(S("abcde"), 5, 1, S("abcdefghij"), 1, 0, 0);
+ test(S("abcde"), 5, 1, S("abcdefghij"), 1, 1, -1);
+ test(S("abcde"), 5, 1, S("abcdefghij"), 1, 4, -4);
+ test(S("abcde"), 5, 1, S("abcdefghij"), 1, 8, -8);
+ test(S("abcde"), 5, 1, S("abcdefghij"), 1, 9, -9);
+ test(S("abcde"), 5, 1, S("abcdefghij"), 1, 10, -9);
+ test(S("abcde"), 5, 1, S("abcdefghij"), 5, 0, 0);
+ test(S("abcde"), 5, 1, S("abcdefghij"), 5, 1, -1);
+ test(S("abcde"), 5, 1, S("abcdefghij"), 5, 2, -2);
+ test(S("abcde"), 5, 1, S("abcdefghij"), 5, 4, -4);
+ test(S("abcde"), 5, 1, S("abcdefghij"), 5, 5, -5);
+ test(S("abcde"), 5, 1, S("abcdefghij"), 5, 6, -5);
+ test(S("abcde"), 5, 1, S("abcdefghij"), 9, 0, 0);
+ test(S("abcde"), 5, 1, S("abcdefghij"), 9, 1, -1);
+ test(S("abcde"), 5, 1, S("abcdefghij"), 9, 2, -1);
+ test(S("abcde"), 5, 1, S("abcdefghij"), 10, 0, 0);
+ test(S("abcde"), 5, 1, S("abcdefghij"), 10, 1, 0);
+ test(S("abcde"), 5, 1, S("abcdefghij"), 11, 0, 0);
+ test(S("abcde"), 5, 1, S("abcdefghijklmnopqrst"), 0, 0, 0);
+ test(S("abcde"), 5, 1, S("abcdefghijklmnopqrst"), 0, 1, -1);
+ test(S("abcde"), 5, 1, S("abcdefghijklmnopqrst"), 0, 10, -10);
+ test(S("abcde"), 5, 1, S("abcdefghijklmnopqrst"), 0, 19, -19);
+ test(S("abcde"), 5, 1, S("abcdefghijklmnopqrst"), 0, 20, -20);
+ test(S("abcde"), 5, 1, S("abcdefghijklmnopqrst"), 0, 21, -20);
+ test(S("abcde"), 5, 1, S("abcdefghijklmnopqrst"), 1, 0, 0);
+ test(S("abcde"), 5, 1, S("abcdefghijklmnopqrst"), 1, 1, -1);
+ test(S("abcde"), 5, 1, S("abcdefghijklmnopqrst"), 1, 9, -9);
+ test(S("abcde"), 5, 1, S("abcdefghijklmnopqrst"), 1, 18, -18);
+ test(S("abcde"), 5, 1, S("abcdefghijklmnopqrst"), 1, 19, -19);
+ test(S("abcde"), 5, 1, S("abcdefghijklmnopqrst"), 1, 20, -19);
+ test(S("abcde"), 5, 1, S("abcdefghijklmnopqrst"), 10, 0, 0);
+ test(S("abcde"), 5, 1, S("abcdefghijklmnopqrst"), 10, 1, -1);
+ test(S("abcde"), 5, 1, S("abcdefghijklmnopqrst"), 10, 5, -5);
+ test(S("abcde"), 5, 1, S("abcdefghijklmnopqrst"), 10, 9, -9);
+ test(S("abcde"), 5, 1, S("abcdefghijklmnopqrst"), 10, 10, -10);
+ test(S("abcde"), 5, 1, S("abcdefghijklmnopqrst"), 10, 11, -10);
+ test(S("abcde"), 5, 1, S("abcdefghijklmnopqrst"), 19, 0, 0);
+ test(S("abcde"), 5, 1, S("abcdefghijklmnopqrst"), 19, 1, -1);
+ test(S("abcde"), 5, 1, S("abcdefghijklmnopqrst"), 19, 2, -1);
+ test(S("abcde"), 5, 1, S("abcdefghijklmnopqrst"), 20, 0, 0);
+ test(S("abcde"), 5, 1, S("abcdefghijklmnopqrst"), 20, 1, 0);
+ test(S("abcde"), 5, 1, S("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcde"), 6, 0, S(""), 0, 0, 0);
+ test(S("abcde"), 6, 0, S(""), 0, 1, 0);
+ test(S("abcde"), 6, 0, S(""), 1, 0, 0);
+ test(S("abcde"), 6, 0, S("abcde"), 0, 0, 0);
+ test(S("abcde"), 6, 0, S("abcde"), 0, 1, 0);
+ test(S("abcde"), 6, 0, S("abcde"), 0, 2, 0);
+ test(S("abcde"), 6, 0, S("abcde"), 0, 4, 0);
+ test(S("abcde"), 6, 0, S("abcde"), 0, 5, 0);
+ test(S("abcde"), 6, 0, S("abcde"), 0, 6, 0);
+ test(S("abcde"), 6, 0, S("abcde"), 1, 0, 0);
+ test(S("abcde"), 6, 0, S("abcde"), 1, 1, 0);
+ test(S("abcde"), 6, 0, S("abcde"), 1, 2, 0);
+ test(S("abcde"), 6, 0, S("abcde"), 1, 3, 0);
+ test(S("abcde"), 6, 0, S("abcde"), 1, 4, 0);
+ test(S("abcde"), 6, 0, S("abcde"), 1, 5, 0);
+ test(S("abcde"), 6, 0, S("abcde"), 2, 0, 0);
+ test(S("abcde"), 6, 0, S("abcde"), 2, 1, 0);
+ test(S("abcde"), 6, 0, S("abcde"), 2, 2, 0);
+ test(S("abcde"), 6, 0, S("abcde"), 2, 3, 0);
+ test(S("abcde"), 6, 0, S("abcde"), 2, 4, 0);
+ test(S("abcde"), 6, 0, S("abcde"), 4, 0, 0);
+ test(S("abcde"), 6, 0, S("abcde"), 4, 1, 0);
+ test(S("abcde"), 6, 0, S("abcde"), 4, 2, 0);
+ test(S("abcde"), 6, 0, S("abcde"), 5, 0, 0);
+ test(S("abcde"), 6, 0, S("abcde"), 5, 1, 0);
+ test(S("abcde"), 6, 0, S("abcde"), 6, 0, 0);
+ test(S("abcde"), 6, 0, S("abcdefghij"), 0, 0, 0);
+ test(S("abcde"), 6, 0, S("abcdefghij"), 0, 1, 0);
+ test(S("abcde"), 6, 0, S("abcdefghij"), 0, 5, 0);
+ test(S("abcde"), 6, 0, S("abcdefghij"), 0, 9, 0);
+ test(S("abcde"), 6, 0, S("abcdefghij"), 0, 10, 0);
+ test(S("abcde"), 6, 0, S("abcdefghij"), 0, 11, 0);
+ test(S("abcde"), 6, 0, S("abcdefghij"), 1, 0, 0);
+ test(S("abcde"), 6, 0, S("abcdefghij"), 1, 1, 0);
+ test(S("abcde"), 6, 0, S("abcdefghij"), 1, 4, 0);
+ test(S("abcde"), 6, 0, S("abcdefghij"), 1, 8, 0);
+ test(S("abcde"), 6, 0, S("abcdefghij"), 1, 9, 0);
+ test(S("abcde"), 6, 0, S("abcdefghij"), 1, 10, 0);
+ test(S("abcde"), 6, 0, S("abcdefghij"), 5, 0, 0);
+ test(S("abcde"), 6, 0, S("abcdefghij"), 5, 1, 0);
+ test(S("abcde"), 6, 0, S("abcdefghij"), 5, 2, 0);
+ test(S("abcde"), 6, 0, S("abcdefghij"), 5, 4, 0);
+ test(S("abcde"), 6, 0, S("abcdefghij"), 5, 5, 0);
+ test(S("abcde"), 6, 0, S("abcdefghij"), 5, 6, 0);
+ test(S("abcde"), 6, 0, S("abcdefghij"), 9, 0, 0);
+ test(S("abcde"), 6, 0, S("abcdefghij"), 9, 1, 0);
+ test(S("abcde"), 6, 0, S("abcdefghij"), 9, 2, 0);
+ test(S("abcde"), 6, 0, S("abcdefghij"), 10, 0, 0);
+ test(S("abcde"), 6, 0, S("abcdefghij"), 10, 1, 0);
+ test(S("abcde"), 6, 0, S("abcdefghij"), 11, 0, 0);
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test19()
-{
- test(S("abcde"), 6, 0, S("abcdefghijklmnopqrst"), 0, 0, 0);
- test(S("abcde"), 6, 0, S("abcdefghijklmnopqrst"), 0, 1, 0);
- test(S("abcde"), 6, 0, S("abcdefghijklmnopqrst"), 0, 10, 0);
- test(S("abcde"), 6, 0, S("abcdefghijklmnopqrst"), 0, 19, 0);
- test(S("abcde"), 6, 0, S("abcdefghijklmnopqrst"), 0, 20, 0);
- test(S("abcde"), 6, 0, S("abcdefghijklmnopqrst"), 0, 21, 0);
- test(S("abcde"), 6, 0, S("abcdefghijklmnopqrst"), 1, 0, 0);
- test(S("abcde"), 6, 0, S("abcdefghijklmnopqrst"), 1, 1, 0);
- test(S("abcde"), 6, 0, S("abcdefghijklmnopqrst"), 1, 9, 0);
- test(S("abcde"), 6, 0, S("abcdefghijklmnopqrst"), 1, 18, 0);
- test(S("abcde"), 6, 0, S("abcdefghijklmnopqrst"), 1, 19, 0);
- test(S("abcde"), 6, 0, S("abcdefghijklmnopqrst"), 1, 20, 0);
- test(S("abcde"), 6, 0, S("abcdefghijklmnopqrst"), 10, 0, 0);
- test(S("abcde"), 6, 0, S("abcdefghijklmnopqrst"), 10, 1, 0);
- test(S("abcde"), 6, 0, S("abcdefghijklmnopqrst"), 10, 5, 0);
- test(S("abcde"), 6, 0, S("abcdefghijklmnopqrst"), 10, 9, 0);
- test(S("abcde"), 6, 0, S("abcdefghijklmnopqrst"), 10, 10, 0);
- test(S("abcde"), 6, 0, S("abcdefghijklmnopqrst"), 10, 11, 0);
- test(S("abcde"), 6, 0, S("abcdefghijklmnopqrst"), 19, 0, 0);
- test(S("abcde"), 6, 0, S("abcdefghijklmnopqrst"), 19, 1, 0);
- test(S("abcde"), 6, 0, S("abcdefghijklmnopqrst"), 19, 2, 0);
- test(S("abcde"), 6, 0, S("abcdefghijklmnopqrst"), 20, 0, 0);
- test(S("abcde"), 6, 0, S("abcdefghijklmnopqrst"), 20, 1, 0);
- test(S("abcde"), 6, 0, S("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghij"), 0, 0, S(""), 0, 0, 0);
- test(S("abcdefghij"), 0, 0, S(""), 0, 1, 0);
- test(S("abcdefghij"), 0, 0, S(""), 1, 0, 0);
- test(S("abcdefghij"), 0, 0, S("abcde"), 0, 0, 0);
- test(S("abcdefghij"), 0, 0, S("abcde"), 0, 1, -1);
- test(S("abcdefghij"), 0, 0, S("abcde"), 0, 2, -2);
- test(S("abcdefghij"), 0, 0, S("abcde"), 0, 4, -4);
- test(S("abcdefghij"), 0, 0, S("abcde"), 0, 5, -5);
- test(S("abcdefghij"), 0, 0, S("abcde"), 0, 6, -5);
- test(S("abcdefghij"), 0, 0, S("abcde"), 1, 0, 0);
- test(S("abcdefghij"), 0, 0, S("abcde"), 1, 1, -1);
- test(S("abcdefghij"), 0, 0, S("abcde"), 1, 2, -2);
- test(S("abcdefghij"), 0, 0, S("abcde"), 1, 3, -3);
- test(S("abcdefghij"), 0, 0, S("abcde"), 1, 4, -4);
- test(S("abcdefghij"), 0, 0, S("abcde"), 1, 5, -4);
- test(S("abcdefghij"), 0, 0, S("abcde"), 2, 0, 0);
- test(S("abcdefghij"), 0, 0, S("abcde"), 2, 1, -1);
- test(S("abcdefghij"), 0, 0, S("abcde"), 2, 2, -2);
- test(S("abcdefghij"), 0, 0, S("abcde"), 2, 3, -3);
- test(S("abcdefghij"), 0, 0, S("abcde"), 2, 4, -3);
- test(S("abcdefghij"), 0, 0, S("abcde"), 4, 0, 0);
- test(S("abcdefghij"), 0, 0, S("abcde"), 4, 1, -1);
- test(S("abcdefghij"), 0, 0, S("abcde"), 4, 2, -1);
- test(S("abcdefghij"), 0, 0, S("abcde"), 5, 0, 0);
- test(S("abcdefghij"), 0, 0, S("abcde"), 5, 1, 0);
- test(S("abcdefghij"), 0, 0, S("abcde"), 6, 0, 0);
- test(S("abcdefghij"), 0, 0, S("abcdefghij"), 0, 0, 0);
- test(S("abcdefghij"), 0, 0, S("abcdefghij"), 0, 1, -1);
- test(S("abcdefghij"), 0, 0, S("abcdefghij"), 0, 5, -5);
- test(S("abcdefghij"), 0, 0, S("abcdefghij"), 0, 9, -9);
- test(S("abcdefghij"), 0, 0, S("abcdefghij"), 0, 10, -10);
- test(S("abcdefghij"), 0, 0, S("abcdefghij"), 0, 11, -10);
- test(S("abcdefghij"), 0, 0, S("abcdefghij"), 1, 0, 0);
- test(S("abcdefghij"), 0, 0, S("abcdefghij"), 1, 1, -1);
- test(S("abcdefghij"), 0, 0, S("abcdefghij"), 1, 4, -4);
- test(S("abcdefghij"), 0, 0, S("abcdefghij"), 1, 8, -8);
- test(S("abcdefghij"), 0, 0, S("abcdefghij"), 1, 9, -9);
- test(S("abcdefghij"), 0, 0, S("abcdefghij"), 1, 10, -9);
- test(S("abcdefghij"), 0, 0, S("abcdefghij"), 5, 0, 0);
- test(S("abcdefghij"), 0, 0, S("abcdefghij"), 5, 1, -1);
- test(S("abcdefghij"), 0, 0, S("abcdefghij"), 5, 2, -2);
- test(S("abcdefghij"), 0, 0, S("abcdefghij"), 5, 4, -4);
- test(S("abcdefghij"), 0, 0, S("abcdefghij"), 5, 5, -5);
- test(S("abcdefghij"), 0, 0, S("abcdefghij"), 5, 6, -5);
- test(S("abcdefghij"), 0, 0, S("abcdefghij"), 9, 0, 0);
- test(S("abcdefghij"), 0, 0, S("abcdefghij"), 9, 1, -1);
- test(S("abcdefghij"), 0, 0, S("abcdefghij"), 9, 2, -1);
- test(S("abcdefghij"), 0, 0, S("abcdefghij"), 10, 0, 0);
- test(S("abcdefghij"), 0, 0, S("abcdefghij"), 10, 1, 0);
- test(S("abcdefghij"), 0, 0, S("abcdefghij"), 11, 0, 0);
- test(S("abcdefghij"), 0, 0, S("abcdefghijklmnopqrst"), 0, 0, 0);
- test(S("abcdefghij"), 0, 0, S("abcdefghijklmnopqrst"), 0, 1, -1);
- test(S("abcdefghij"), 0, 0, S("abcdefghijklmnopqrst"), 0, 10, -10);
- test(S("abcdefghij"), 0, 0, S("abcdefghijklmnopqrst"), 0, 19, -19);
- test(S("abcdefghij"), 0, 0, S("abcdefghijklmnopqrst"), 0, 20, -20);
- test(S("abcdefghij"), 0, 0, S("abcdefghijklmnopqrst"), 0, 21, -20);
- test(S("abcdefghij"), 0, 0, S("abcdefghijklmnopqrst"), 1, 0, 0);
- test(S("abcdefghij"), 0, 0, S("abcdefghijklmnopqrst"), 1, 1, -1);
- test(S("abcdefghij"), 0, 0, S("abcdefghijklmnopqrst"), 1, 9, -9);
- test(S("abcdefghij"), 0, 0, S("abcdefghijklmnopqrst"), 1, 18, -18);
- test(S("abcdefghij"), 0, 0, S("abcdefghijklmnopqrst"), 1, 19, -19);
- test(S("abcdefghij"), 0, 0, S("abcdefghijklmnopqrst"), 1, 20, -19);
- test(S("abcdefghij"), 0, 0, S("abcdefghijklmnopqrst"), 10, 0, 0);
- test(S("abcdefghij"), 0, 0, S("abcdefghijklmnopqrst"), 10, 1, -1);
- test(S("abcdefghij"), 0, 0, S("abcdefghijklmnopqrst"), 10, 5, -5);
- test(S("abcdefghij"), 0, 0, S("abcdefghijklmnopqrst"), 10, 9, -9);
- test(S("abcdefghij"), 0, 0, S("abcdefghijklmnopqrst"), 10, 10, -10);
- test(S("abcdefghij"), 0, 0, S("abcdefghijklmnopqrst"), 10, 11, -10);
- test(S("abcdefghij"), 0, 0, S("abcdefghijklmnopqrst"), 19, 0, 0);
- test(S("abcdefghij"), 0, 0, S("abcdefghijklmnopqrst"), 19, 1, -1);
- test(S("abcdefghij"), 0, 0, S("abcdefghijklmnopqrst"), 19, 2, -1);
- test(S("abcdefghij"), 0, 0, S("abcdefghijklmnopqrst"), 20, 0, 0);
- test(S("abcdefghij"), 0, 0, S("abcdefghijklmnopqrst"), 20, 1, 0);
- test(S("abcdefghij"), 0, 0, S("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghij"), 0, 1, S(""), 0, 0, 1);
- test(S("abcdefghij"), 0, 1, S(""), 0, 1, 1);
+TEST_CONSTEXPR_CXX20 bool test19() {
+ test(S("abcde"), 6, 0, S("abcdefghijklmnopqrst"), 0, 0, 0);
+ test(S("abcde"), 6, 0, S("abcdefghijklmnopqrst"), 0, 1, 0);
+ test(S("abcde"), 6, 0, S("abcdefghijklmnopqrst"), 0, 10, 0);
+ test(S("abcde"), 6, 0, S("abcdefghijklmnopqrst"), 0, 19, 0);
+ test(S("abcde"), 6, 0, S("abcdefghijklmnopqrst"), 0, 20, 0);
+ test(S("abcde"), 6, 0, S("abcdefghijklmnopqrst"), 0, 21, 0);
+ test(S("abcde"), 6, 0, S("abcdefghijklmnopqrst"), 1, 0, 0);
+ test(S("abcde"), 6, 0, S("abcdefghijklmnopqrst"), 1, 1, 0);
+ test(S("abcde"), 6, 0, S("abcdefghijklmnopqrst"), 1, 9, 0);
+ test(S("abcde"), 6, 0, S("abcdefghijklmnopqrst"), 1, 18, 0);
+ test(S("abcde"), 6, 0, S("abcdefghijklmnopqrst"), 1, 19, 0);
+ test(S("abcde"), 6, 0, S("abcdefghijklmnopqrst"), 1, 20, 0);
+ test(S("abcde"), 6, 0, S("abcdefghijklmnopqrst"), 10, 0, 0);
+ test(S("abcde"), 6, 0, S("abcdefghijklmnopqrst"), 10, 1, 0);
+ test(S("abcde"), 6, 0, S("abcdefghijklmnopqrst"), 10, 5, 0);
+ test(S("abcde"), 6, 0, S("abcdefghijklmnopqrst"), 10, 9, 0);
+ test(S("abcde"), 6, 0, S("abcdefghijklmnopqrst"), 10, 10, 0);
+ test(S("abcde"), 6, 0, S("abcdefghijklmnopqrst"), 10, 11, 0);
+ test(S("abcde"), 6, 0, S("abcdefghijklmnopqrst"), 19, 0, 0);
+ test(S("abcde"), 6, 0, S("abcdefghijklmnopqrst"), 19, 1, 0);
+ test(S("abcde"), 6, 0, S("abcdefghijklmnopqrst"), 19, 2, 0);
+ test(S("abcde"), 6, 0, S("abcdefghijklmnopqrst"), 20, 0, 0);
+ test(S("abcde"), 6, 0, S("abcdefghijklmnopqrst"), 20, 1, 0);
+ test(S("abcde"), 6, 0, S("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghij"), 0, 0, S(""), 0, 0, 0);
+ test(S("abcdefghij"), 0, 0, S(""), 0, 1, 0);
+ test(S("abcdefghij"), 0, 0, S(""), 1, 0, 0);
+ test(S("abcdefghij"), 0, 0, S("abcde"), 0, 0, 0);
+ test(S("abcdefghij"), 0, 0, S("abcde"), 0, 1, -1);
+ test(S("abcdefghij"), 0, 0, S("abcde"), 0, 2, -2);
+ test(S("abcdefghij"), 0, 0, S("abcde"), 0, 4, -4);
+ test(S("abcdefghij"), 0, 0, S("abcde"), 0, 5, -5);
+ test(S("abcdefghij"), 0, 0, S("abcde"), 0, 6, -5);
+ test(S("abcdefghij"), 0, 0, S("abcde"), 1, 0, 0);
+ test(S("abcdefghij"), 0, 0, S("abcde"), 1, 1, -1);
+ test(S("abcdefghij"), 0, 0, S("abcde"), 1, 2, -2);
+ test(S("abcdefghij"), 0, 0, S("abcde"), 1, 3, -3);
+ test(S("abcdefghij"), 0, 0, S("abcde"), 1, 4, -4);
+ test(S("abcdefghij"), 0, 0, S("abcde"), 1, 5, -4);
+ test(S("abcdefghij"), 0, 0, S("abcde"), 2, 0, 0);
+ test(S("abcdefghij"), 0, 0, S("abcde"), 2, 1, -1);
+ test(S("abcdefghij"), 0, 0, S("abcde"), 2, 2, -2);
+ test(S("abcdefghij"), 0, 0, S("abcde"), 2, 3, -3);
+ test(S("abcdefghij"), 0, 0, S("abcde"), 2, 4, -3);
+ test(S("abcdefghij"), 0, 0, S("abcde"), 4, 0, 0);
+ test(S("abcdefghij"), 0, 0, S("abcde"), 4, 1, -1);
+ test(S("abcdefghij"), 0, 0, S("abcde"), 4, 2, -1);
+ test(S("abcdefghij"), 0, 0, S("abcde"), 5, 0, 0);
+ test(S("abcdefghij"), 0, 0, S("abcde"), 5, 1, 0);
+ test(S("abcdefghij"), 0, 0, S("abcde"), 6, 0, 0);
+ test(S("abcdefghij"), 0, 0, S("abcdefghij"), 0, 0, 0);
+ test(S("abcdefghij"), 0, 0, S("abcdefghij"), 0, 1, -1);
+ test(S("abcdefghij"), 0, 0, S("abcdefghij"), 0, 5, -5);
+ test(S("abcdefghij"), 0, 0, S("abcdefghij"), 0, 9, -9);
+ test(S("abcdefghij"), 0, 0, S("abcdefghij"), 0, 10, -10);
+ test(S("abcdefghij"), 0, 0, S("abcdefghij"), 0, 11, -10);
+ test(S("abcdefghij"), 0, 0, S("abcdefghij"), 1, 0, 0);
+ test(S("abcdefghij"), 0, 0, S("abcdefghij"), 1, 1, -1);
+ test(S("abcdefghij"), 0, 0, S("abcdefghij"), 1, 4, -4);
+ test(S("abcdefghij"), 0, 0, S("abcdefghij"), 1, 8, -8);
+ test(S("abcdefghij"), 0, 0, S("abcdefghij"), 1, 9, -9);
+ test(S("abcdefghij"), 0, 0, S("abcdefghij"), 1, 10, -9);
+ test(S("abcdefghij"), 0, 0, S("abcdefghij"), 5, 0, 0);
+ test(S("abcdefghij"), 0, 0, S("abcdefghij"), 5, 1, -1);
+ test(S("abcdefghij"), 0, 0, S("abcdefghij"), 5, 2, -2);
+ test(S("abcdefghij"), 0, 0, S("abcdefghij"), 5, 4, -4);
+ test(S("abcdefghij"), 0, 0, S("abcdefghij"), 5, 5, -5);
+ test(S("abcdefghij"), 0, 0, S("abcdefghij"), 5, 6, -5);
+ test(S("abcdefghij"), 0, 0, S("abcdefghij"), 9, 0, 0);
+ test(S("abcdefghij"), 0, 0, S("abcdefghij"), 9, 1, -1);
+ test(S("abcdefghij"), 0, 0, S("abcdefghij"), 9, 2, -1);
+ test(S("abcdefghij"), 0, 0, S("abcdefghij"), 10, 0, 0);
+ test(S("abcdefghij"), 0, 0, S("abcdefghij"), 10, 1, 0);
+ test(S("abcdefghij"), 0, 0, S("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghij"), 0, 0, S("abcdefghijklmnopqrst"), 0, 0, 0);
+ test(S("abcdefghij"), 0, 0, S("abcdefghijklmnopqrst"), 0, 1, -1);
+ test(S("abcdefghij"), 0, 0, S("abcdefghijklmnopqrst"), 0, 10, -10);
+ test(S("abcdefghij"), 0, 0, S("abcdefghijklmnopqrst"), 0, 19, -19);
+ test(S("abcdefghij"), 0, 0, S("abcdefghijklmnopqrst"), 0, 20, -20);
+ test(S("abcdefghij"), 0, 0, S("abcdefghijklmnopqrst"), 0, 21, -20);
+ test(S("abcdefghij"), 0, 0, S("abcdefghijklmnopqrst"), 1, 0, 0);
+ test(S("abcdefghij"), 0, 0, S("abcdefghijklmnopqrst"), 1, 1, -1);
+ test(S("abcdefghij"), 0, 0, S("abcdefghijklmnopqrst"), 1, 9, -9);
+ test(S("abcdefghij"), 0, 0, S("abcdefghijklmnopqrst"), 1, 18, -18);
+ test(S("abcdefghij"), 0, 0, S("abcdefghijklmnopqrst"), 1, 19, -19);
+ test(S("abcdefghij"), 0, 0, S("abcdefghijklmnopqrst"), 1, 20, -19);
+ test(S("abcdefghij"), 0, 0, S("abcdefghijklmnopqrst"), 10, 0, 0);
+ test(S("abcdefghij"), 0, 0, S("abcdefghijklmnopqrst"), 10, 1, -1);
+ test(S("abcdefghij"), 0, 0, S("abcdefghijklmnopqrst"), 10, 5, -5);
+ test(S("abcdefghij"), 0, 0, S("abcdefghijklmnopqrst"), 10, 9, -9);
+ test(S("abcdefghij"), 0, 0, S("abcdefghijklmnopqrst"), 10, 10, -10);
+ test(S("abcdefghij"), 0, 0, S("abcdefghijklmnopqrst"), 10, 11, -10);
+ test(S("abcdefghij"), 0, 0, S("abcdefghijklmnopqrst"), 19, 0, 0);
+ test(S("abcdefghij"), 0, 0, S("abcdefghijklmnopqrst"), 19, 1, -1);
+ test(S("abcdefghij"), 0, 0, S("abcdefghijklmnopqrst"), 19, 2, -1);
+ test(S("abcdefghij"), 0, 0, S("abcdefghijklmnopqrst"), 20, 0, 0);
+ test(S("abcdefghij"), 0, 0, S("abcdefghijklmnopqrst"), 20, 1, 0);
+ test(S("abcdefghij"), 0, 0, S("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghij"), 0, 1, S(""), 0, 0, 1);
+ test(S("abcdefghij"), 0, 1, S(""), 0, 1, 1);
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test20()
-{
- test(S("abcdefghij"), 0, 1, S(""), 1, 0, 0);
- test(S("abcdefghij"), 0, 1, S("abcde"), 0, 0, 1);
- test(S("abcdefghij"), 0, 1, S("abcde"), 0, 1, 0);
- test(S("abcdefghij"), 0, 1, S("abcde"), 0, 2, -1);
- test(S("abcdefghij"), 0, 1, S("abcde"), 0, 4, -3);
- test(S("abcdefghij"), 0, 1, S("abcde"), 0, 5, -4);
- test(S("abcdefghij"), 0, 1, S("abcde"), 0, 6, -4);
- test(S("abcdefghij"), 0, 1, S("abcde"), 1, 0, 1);
- test(S("abcdefghij"), 0, 1, S("abcde"), 1, 1, -1);
- test(S("abcdefghij"), 0, 1, S("abcde"), 1, 2, -1);
- test(S("abcdefghij"), 0, 1, S("abcde"), 1, 3, -1);
- test(S("abcdefghij"), 0, 1, S("abcde"), 1, 4, -1);
- test(S("abcdefghij"), 0, 1, S("abcde"), 1, 5, -1);
- test(S("abcdefghij"), 0, 1, S("abcde"), 2, 0, 1);
- test(S("abcdefghij"), 0, 1, S("abcde"), 2, 1, -2);
- test(S("abcdefghij"), 0, 1, S("abcde"), 2, 2, -2);
- test(S("abcdefghij"), 0, 1, S("abcde"), 2, 3, -2);
- test(S("abcdefghij"), 0, 1, S("abcde"), 2, 4, -2);
- test(S("abcdefghij"), 0, 1, S("abcde"), 4, 0, 1);
- test(S("abcdefghij"), 0, 1, S("abcde"), 4, 1, -4);
- test(S("abcdefghij"), 0, 1, S("abcde"), 4, 2, -4);
- test(S("abcdefghij"), 0, 1, S("abcde"), 5, 0, 1);
- test(S("abcdefghij"), 0, 1, S("abcde"), 5, 1, 1);
- test(S("abcdefghij"), 0, 1, S("abcde"), 6, 0, 0);
- test(S("abcdefghij"), 0, 1, S("abcdefghij"), 0, 0, 1);
- test(S("abcdefghij"), 0, 1, S("abcdefghij"), 0, 1, 0);
- test(S("abcdefghij"), 0, 1, S("abcdefghij"), 0, 5, -4);
- test(S("abcdefghij"), 0, 1, S("abcdefghij"), 0, 9, -8);
- test(S("abcdefghij"), 0, 1, S("abcdefghij"), 0, 10, -9);
- test(S("abcdefghij"), 0, 1, S("abcdefghij"), 0, 11, -9);
- test(S("abcdefghij"), 0, 1, S("abcdefghij"), 1, 0, 1);
- test(S("abcdefghij"), 0, 1, S("abcdefghij"), 1, 1, -1);
- test(S("abcdefghij"), 0, 1, S("abcdefghij"), 1, 4, -1);
- test(S("abcdefghij"), 0, 1, S("abcdefghij"), 1, 8, -1);
- test(S("abcdefghij"), 0, 1, S("abcdefghij"), 1, 9, -1);
- test(S("abcdefghij"), 0, 1, S("abcdefghij"), 1, 10, -1);
- test(S("abcdefghij"), 0, 1, S("abcdefghij"), 5, 0, 1);
- test(S("abcdefghij"), 0, 1, S("abcdefghij"), 5, 1, -5);
- test(S("abcdefghij"), 0, 1, S("abcdefghij"), 5, 2, -5);
- test(S("abcdefghij"), 0, 1, S("abcdefghij"), 5, 4, -5);
- test(S("abcdefghij"), 0, 1, S("abcdefghij"), 5, 5, -5);
- test(S("abcdefghij"), 0, 1, S("abcdefghij"), 5, 6, -5);
- test(S("abcdefghij"), 0, 1, S("abcdefghij"), 9, 0, 1);
- test(S("abcdefghij"), 0, 1, S("abcdefghij"), 9, 1, -9);
- test(S("abcdefghij"), 0, 1, S("abcdefghij"), 9, 2, -9);
- test(S("abcdefghij"), 0, 1, S("abcdefghij"), 10, 0, 1);
- test(S("abcdefghij"), 0, 1, S("abcdefghij"), 10, 1, 1);
- test(S("abcdefghij"), 0, 1, S("abcdefghij"), 11, 0, 0);
- test(S("abcdefghij"), 0, 1, S("abcdefghijklmnopqrst"), 0, 0, 1);
- test(S("abcdefghij"), 0, 1, S("abcdefghijklmnopqrst"), 0, 1, 0);
- test(S("abcdefghij"), 0, 1, S("abcdefghijklmnopqrst"), 0, 10, -9);
- test(S("abcdefghij"), 0, 1, S("abcdefghijklmnopqrst"), 0, 19, -18);
- test(S("abcdefghij"), 0, 1, S("abcdefghijklmnopqrst"), 0, 20, -19);
- test(S("abcdefghij"), 0, 1, S("abcdefghijklmnopqrst"), 0, 21, -19);
- test(S("abcdefghij"), 0, 1, S("abcdefghijklmnopqrst"), 1, 0, 1);
- test(S("abcdefghij"), 0, 1, S("abcdefghijklmnopqrst"), 1, 1, -1);
- test(S("abcdefghij"), 0, 1, S("abcdefghijklmnopqrst"), 1, 9, -1);
- test(S("abcdefghij"), 0, 1, S("abcdefghijklmnopqrst"), 1, 18, -1);
- test(S("abcdefghij"), 0, 1, S("abcdefghijklmnopqrst"), 1, 19, -1);
- test(S("abcdefghij"), 0, 1, S("abcdefghijklmnopqrst"), 1, 20, -1);
- test(S("abcdefghij"), 0, 1, S("abcdefghijklmnopqrst"), 10, 0, 1);
- test(S("abcdefghij"), 0, 1, S("abcdefghijklmnopqrst"), 10, 1, -10);
- test(S("abcdefghij"), 0, 1, S("abcdefghijklmnopqrst"), 10, 5, -10);
- test(S("abcdefghij"), 0, 1, S("abcdefghijklmnopqrst"), 10, 9, -10);
- test(S("abcdefghij"), 0, 1, S("abcdefghijklmnopqrst"), 10, 10, -10);
- test(S("abcdefghij"), 0, 1, S("abcdefghijklmnopqrst"), 10, 11, -10);
- test(S("abcdefghij"), 0, 1, S("abcdefghijklmnopqrst"), 19, 0, 1);
- test(S("abcdefghij"), 0, 1, S("abcdefghijklmnopqrst"), 19, 1, -19);
- test(S("abcdefghij"), 0, 1, S("abcdefghijklmnopqrst"), 19, 2, -19);
- test(S("abcdefghij"), 0, 1, S("abcdefghijklmnopqrst"), 20, 0, 1);
- test(S("abcdefghij"), 0, 1, S("abcdefghijklmnopqrst"), 20, 1, 1);
- test(S("abcdefghij"), 0, 1, S("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghij"), 0, 5, S(""), 0, 0, 5);
- test(S("abcdefghij"), 0, 5, S(""), 0, 1, 5);
- test(S("abcdefghij"), 0, 5, S(""), 1, 0, 0);
- test(S("abcdefghij"), 0, 5, S("abcde"), 0, 0, 5);
- test(S("abcdefghij"), 0, 5, S("abcde"), 0, 1, 4);
- test(S("abcdefghij"), 0, 5, S("abcde"), 0, 2, 3);
- test(S("abcdefghij"), 0, 5, S("abcde"), 0, 4, 1);
- test(S("abcdefghij"), 0, 5, S("abcde"), 0, 5, 0);
- test(S("abcdefghij"), 0, 5, S("abcde"), 0, 6, 0);
- test(S("abcdefghij"), 0, 5, S("abcde"), 1, 0, 5);
- test(S("abcdefghij"), 0, 5, S("abcde"), 1, 1, -1);
- test(S("abcdefghij"), 0, 5, S("abcde"), 1, 2, -1);
- test(S("abcdefghij"), 0, 5, S("abcde"), 1, 3, -1);
- test(S("abcdefghij"), 0, 5, S("abcde"), 1, 4, -1);
- test(S("abcdefghij"), 0, 5, S("abcde"), 1, 5, -1);
- test(S("abcdefghij"), 0, 5, S("abcde"), 2, 0, 5);
- test(S("abcdefghij"), 0, 5, S("abcde"), 2, 1, -2);
- test(S("abcdefghij"), 0, 5, S("abcde"), 2, 2, -2);
- test(S("abcdefghij"), 0, 5, S("abcde"), 2, 3, -2);
- test(S("abcdefghij"), 0, 5, S("abcde"), 2, 4, -2);
- test(S("abcdefghij"), 0, 5, S("abcde"), 4, 0, 5);
- test(S("abcdefghij"), 0, 5, S("abcde"), 4, 1, -4);
- test(S("abcdefghij"), 0, 5, S("abcde"), 4, 2, -4);
- test(S("abcdefghij"), 0, 5, S("abcde"), 5, 0, 5);
- test(S("abcdefghij"), 0, 5, S("abcde"), 5, 1, 5);
- test(S("abcdefghij"), 0, 5, S("abcde"), 6, 0, 0);
- test(S("abcdefghij"), 0, 5, S("abcdefghij"), 0, 0, 5);
- test(S("abcdefghij"), 0, 5, S("abcdefghij"), 0, 1, 4);
+TEST_CONSTEXPR_CXX20 bool test20() {
+ test(S("abcdefghij"), 0, 1, S(""), 1, 0, 0);
+ test(S("abcdefghij"), 0, 1, S("abcde"), 0, 0, 1);
+ test(S("abcdefghij"), 0, 1, S("abcde"), 0, 1, 0);
+ test(S("abcdefghij"), 0, 1, S("abcde"), 0, 2, -1);
+ test(S("abcdefghij"), 0, 1, S("abcde"), 0, 4, -3);
+ test(S("abcdefghij"), 0, 1, S("abcde"), 0, 5, -4);
+ test(S("abcdefghij"), 0, 1, S("abcde"), 0, 6, -4);
+ test(S("abcdefghij"), 0, 1, S("abcde"), 1, 0, 1);
+ test(S("abcdefghij"), 0, 1, S("abcde"), 1, 1, -1);
+ test(S("abcdefghij"), 0, 1, S("abcde"), 1, 2, -1);
+ test(S("abcdefghij"), 0, 1, S("abcde"), 1, 3, -1);
+ test(S("abcdefghij"), 0, 1, S("abcde"), 1, 4, -1);
+ test(S("abcdefghij"), 0, 1, S("abcde"), 1, 5, -1);
+ test(S("abcdefghij"), 0, 1, S("abcde"), 2, 0, 1);
+ test(S("abcdefghij"), 0, 1, S("abcde"), 2, 1, -2);
+ test(S("abcdefghij"), 0, 1, S("abcde"), 2, 2, -2);
+ test(S("abcdefghij"), 0, 1, S("abcde"), 2, 3, -2);
+ test(S("abcdefghij"), 0, 1, S("abcde"), 2, 4, -2);
+ test(S("abcdefghij"), 0, 1, S("abcde"), 4, 0, 1);
+ test(S("abcdefghij"), 0, 1, S("abcde"), 4, 1, -4);
+ test(S("abcdefghij"), 0, 1, S("abcde"), 4, 2, -4);
+ test(S("abcdefghij"), 0, 1, S("abcde"), 5, 0, 1);
+ test(S("abcdefghij"), 0, 1, S("abcde"), 5, 1, 1);
+ test(S("abcdefghij"), 0, 1, S("abcde"), 6, 0, 0);
+ test(S("abcdefghij"), 0, 1, S("abcdefghij"), 0, 0, 1);
+ test(S("abcdefghij"), 0, 1, S("abcdefghij"), 0, 1, 0);
+ test(S("abcdefghij"), 0, 1, S("abcdefghij"), 0, 5, -4);
+ test(S("abcdefghij"), 0, 1, S("abcdefghij"), 0, 9, -8);
+ test(S("abcdefghij"), 0, 1, S("abcdefghij"), 0, 10, -9);
+ test(S("abcdefghij"), 0, 1, S("abcdefghij"), 0, 11, -9);
+ test(S("abcdefghij"), 0, 1, S("abcdefghij"), 1, 0, 1);
+ test(S("abcdefghij"), 0, 1, S("abcdefghij"), 1, 1, -1);
+ test(S("abcdefghij"), 0, 1, S("abcdefghij"), 1, 4, -1);
+ test(S("abcdefghij"), 0, 1, S("abcdefghij"), 1, 8, -1);
+ test(S("abcdefghij"), 0, 1, S("abcdefghij"), 1, 9, -1);
+ test(S("abcdefghij"), 0, 1, S("abcdefghij"), 1, 10, -1);
+ test(S("abcdefghij"), 0, 1, S("abcdefghij"), 5, 0, 1);
+ test(S("abcdefghij"), 0, 1, S("abcdefghij"), 5, 1, -5);
+ test(S("abcdefghij"), 0, 1, S("abcdefghij"), 5, 2, -5);
+ test(S("abcdefghij"), 0, 1, S("abcdefghij"), 5, 4, -5);
+ test(S("abcdefghij"), 0, 1, S("abcdefghij"), 5, 5, -5);
+ test(S("abcdefghij"), 0, 1, S("abcdefghij"), 5, 6, -5);
+ test(S("abcdefghij"), 0, 1, S("abcdefghij"), 9, 0, 1);
+ test(S("abcdefghij"), 0, 1, S("abcdefghij"), 9, 1, -9);
+ test(S("abcdefghij"), 0, 1, S("abcdefghij"), 9, 2, -9);
+ test(S("abcdefghij"), 0, 1, S("abcdefghij"), 10, 0, 1);
+ test(S("abcdefghij"), 0, 1, S("abcdefghij"), 10, 1, 1);
+ test(S("abcdefghij"), 0, 1, S("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghij"), 0, 1, S("abcdefghijklmnopqrst"), 0, 0, 1);
+ test(S("abcdefghij"), 0, 1, S("abcdefghijklmnopqrst"), 0, 1, 0);
+ test(S("abcdefghij"), 0, 1, S("abcdefghijklmnopqrst"), 0, 10, -9);
+ test(S("abcdefghij"), 0, 1, S("abcdefghijklmnopqrst"), 0, 19, -18);
+ test(S("abcdefghij"), 0, 1, S("abcdefghijklmnopqrst"), 0, 20, -19);
+ test(S("abcdefghij"), 0, 1, S("abcdefghijklmnopqrst"), 0, 21, -19);
+ test(S("abcdefghij"), 0, 1, S("abcdefghijklmnopqrst"), 1, 0, 1);
+ test(S("abcdefghij"), 0, 1, S("abcdefghijklmnopqrst"), 1, 1, -1);
+ test(S("abcdefghij"), 0, 1, S("abcdefghijklmnopqrst"), 1, 9, -1);
+ test(S("abcdefghij"), 0, 1, S("abcdefghijklmnopqrst"), 1, 18, -1);
+ test(S("abcdefghij"), 0, 1, S("abcdefghijklmnopqrst"), 1, 19, -1);
+ test(S("abcdefghij"), 0, 1, S("abcdefghijklmnopqrst"), 1, 20, -1);
+ test(S("abcdefghij"), 0, 1, S("abcdefghijklmnopqrst"), 10, 0, 1);
+ test(S("abcdefghij"), 0, 1, S("abcdefghijklmnopqrst"), 10, 1, -10);
+ test(S("abcdefghij"), 0, 1, S("abcdefghijklmnopqrst"), 10, 5, -10);
+ test(S("abcdefghij"), 0, 1, S("abcdefghijklmnopqrst"), 10, 9, -10);
+ test(S("abcdefghij"), 0, 1, S("abcdefghijklmnopqrst"), 10, 10, -10);
+ test(S("abcdefghij"), 0, 1, S("abcdefghijklmnopqrst"), 10, 11, -10);
+ test(S("abcdefghij"), 0, 1, S("abcdefghijklmnopqrst"), 19, 0, 1);
+ test(S("abcdefghij"), 0, 1, S("abcdefghijklmnopqrst"), 19, 1, -19);
+ test(S("abcdefghij"), 0, 1, S("abcdefghijklmnopqrst"), 19, 2, -19);
+ test(S("abcdefghij"), 0, 1, S("abcdefghijklmnopqrst"), 20, 0, 1);
+ test(S("abcdefghij"), 0, 1, S("abcdefghijklmnopqrst"), 20, 1, 1);
+ test(S("abcdefghij"), 0, 1, S("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghij"), 0, 5, S(""), 0, 0, 5);
+ test(S("abcdefghij"), 0, 5, S(""), 0, 1, 5);
+ test(S("abcdefghij"), 0, 5, S(""), 1, 0, 0);
+ test(S("abcdefghij"), 0, 5, S("abcde"), 0, 0, 5);
+ test(S("abcdefghij"), 0, 5, S("abcde"), 0, 1, 4);
+ test(S("abcdefghij"), 0, 5, S("abcde"), 0, 2, 3);
+ test(S("abcdefghij"), 0, 5, S("abcde"), 0, 4, 1);
+ test(S("abcdefghij"), 0, 5, S("abcde"), 0, 5, 0);
+ test(S("abcdefghij"), 0, 5, S("abcde"), 0, 6, 0);
+ test(S("abcdefghij"), 0, 5, S("abcde"), 1, 0, 5);
+ test(S("abcdefghij"), 0, 5, S("abcde"), 1, 1, -1);
+ test(S("abcdefghij"), 0, 5, S("abcde"), 1, 2, -1);
+ test(S("abcdefghij"), 0, 5, S("abcde"), 1, 3, -1);
+ test(S("abcdefghij"), 0, 5, S("abcde"), 1, 4, -1);
+ test(S("abcdefghij"), 0, 5, S("abcde"), 1, 5, -1);
+ test(S("abcdefghij"), 0, 5, S("abcde"), 2, 0, 5);
+ test(S("abcdefghij"), 0, 5, S("abcde"), 2, 1, -2);
+ test(S("abcdefghij"), 0, 5, S("abcde"), 2, 2, -2);
+ test(S("abcdefghij"), 0, 5, S("abcde"), 2, 3, -2);
+ test(S("abcdefghij"), 0, 5, S("abcde"), 2, 4, -2);
+ test(S("abcdefghij"), 0, 5, S("abcde"), 4, 0, 5);
+ test(S("abcdefghij"), 0, 5, S("abcde"), 4, 1, -4);
+ test(S("abcdefghij"), 0, 5, S("abcde"), 4, 2, -4);
+ test(S("abcdefghij"), 0, 5, S("abcde"), 5, 0, 5);
+ test(S("abcdefghij"), 0, 5, S("abcde"), 5, 1, 5);
+ test(S("abcdefghij"), 0, 5, S("abcde"), 6, 0, 0);
+ test(S("abcdefghij"), 0, 5, S("abcdefghij"), 0, 0, 5);
+ test(S("abcdefghij"), 0, 5, S("abcdefghij"), 0, 1, 4);
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test21()
-{
- test(S("abcdefghij"), 0, 5, S("abcdefghij"), 0, 5, 0);
- test(S("abcdefghij"), 0, 5, S("abcdefghij"), 0, 9, -4);
- test(S("abcdefghij"), 0, 5, S("abcdefghij"), 0, 10, -5);
- test(S("abcdefghij"), 0, 5, S("abcdefghij"), 0, 11, -5);
- test(S("abcdefghij"), 0, 5, S("abcdefghij"), 1, 0, 5);
- test(S("abcdefghij"), 0, 5, S("abcdefghij"), 1, 1, -1);
- test(S("abcdefghij"), 0, 5, S("abcdefghij"), 1, 4, -1);
- test(S("abcdefghij"), 0, 5, S("abcdefghij"), 1, 8, -1);
- test(S("abcdefghij"), 0, 5, S("abcdefghij"), 1, 9, -1);
- test(S("abcdefghij"), 0, 5, S("abcdefghij"), 1, 10, -1);
- test(S("abcdefghij"), 0, 5, S("abcdefghij"), 5, 0, 5);
- test(S("abcdefghij"), 0, 5, S("abcdefghij"), 5, 1, -5);
- test(S("abcdefghij"), 0, 5, S("abcdefghij"), 5, 2, -5);
- test(S("abcdefghij"), 0, 5, S("abcdefghij"), 5, 4, -5);
- test(S("abcdefghij"), 0, 5, S("abcdefghij"), 5, 5, -5);
- test(S("abcdefghij"), 0, 5, S("abcdefghij"), 5, 6, -5);
- test(S("abcdefghij"), 0, 5, S("abcdefghij"), 9, 0, 5);
- test(S("abcdefghij"), 0, 5, S("abcdefghij"), 9, 1, -9);
- test(S("abcdefghij"), 0, 5, S("abcdefghij"), 9, 2, -9);
- test(S("abcdefghij"), 0, 5, S("abcdefghij"), 10, 0, 5);
- test(S("abcdefghij"), 0, 5, S("abcdefghij"), 10, 1, 5);
- test(S("abcdefghij"), 0, 5, S("abcdefghij"), 11, 0, 0);
- test(S("abcdefghij"), 0, 5, S("abcdefghijklmnopqrst"), 0, 0, 5);
- test(S("abcdefghij"), 0, 5, S("abcdefghijklmnopqrst"), 0, 1, 4);
- test(S("abcdefghij"), 0, 5, S("abcdefghijklmnopqrst"), 0, 10, -5);
- test(S("abcdefghij"), 0, 5, S("abcdefghijklmnopqrst"), 0, 19, -14);
- test(S("abcdefghij"), 0, 5, S("abcdefghijklmnopqrst"), 0, 20, -15);
- test(S("abcdefghij"), 0, 5, S("abcdefghijklmnopqrst"), 0, 21, -15);
- test(S("abcdefghij"), 0, 5, S("abcdefghijklmnopqrst"), 1, 0, 5);
- test(S("abcdefghij"), 0, 5, S("abcdefghijklmnopqrst"), 1, 1, -1);
- test(S("abcdefghij"), 0, 5, S("abcdefghijklmnopqrst"), 1, 9, -1);
- test(S("abcdefghij"), 0, 5, S("abcdefghijklmnopqrst"), 1, 18, -1);
- test(S("abcdefghij"), 0, 5, S("abcdefghijklmnopqrst"), 1, 19, -1);
- test(S("abcdefghij"), 0, 5, S("abcdefghijklmnopqrst"), 1, 20, -1);
- test(S("abcdefghij"), 0, 5, S("abcdefghijklmnopqrst"), 10, 0, 5);
- test(S("abcdefghij"), 0, 5, S("abcdefghijklmnopqrst"), 10, 1, -10);
- test(S("abcdefghij"), 0, 5, S("abcdefghijklmnopqrst"), 10, 5, -10);
- test(S("abcdefghij"), 0, 5, S("abcdefghijklmnopqrst"), 10, 9, -10);
- test(S("abcdefghij"), 0, 5, S("abcdefghijklmnopqrst"), 10, 10, -10);
- test(S("abcdefghij"), 0, 5, S("abcdefghijklmnopqrst"), 10, 11, -10);
- test(S("abcdefghij"), 0, 5, S("abcdefghijklmnopqrst"), 19, 0, 5);
- test(S("abcdefghij"), 0, 5, S("abcdefghijklmnopqrst"), 19, 1, -19);
- test(S("abcdefghij"), 0, 5, S("abcdefghijklmnopqrst"), 19, 2, -19);
- test(S("abcdefghij"), 0, 5, S("abcdefghijklmnopqrst"), 20, 0, 5);
- test(S("abcdefghij"), 0, 5, S("abcdefghijklmnopqrst"), 20, 1, 5);
- test(S("abcdefghij"), 0, 5, S("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghij"), 0, 9, S(""), 0, 0, 9);
- test(S("abcdefghij"), 0, 9, S(""), 0, 1, 9);
- test(S("abcdefghij"), 0, 9, S(""), 1, 0, 0);
- test(S("abcdefghij"), 0, 9, S("abcde"), 0, 0, 9);
- test(S("abcdefghij"), 0, 9, S("abcde"), 0, 1, 8);
- test(S("abcdefghij"), 0, 9, S("abcde"), 0, 2, 7);
- test(S("abcdefghij"), 0, 9, S("abcde"), 0, 4, 5);
- test(S("abcdefghij"), 0, 9, S("abcde"), 0, 5, 4);
- test(S("abcdefghij"), 0, 9, S("abcde"), 0, 6, 4);
- test(S("abcdefghij"), 0, 9, S("abcde"), 1, 0, 9);
- test(S("abcdefghij"), 0, 9, S("abcde"), 1, 1, -1);
- test(S("abcdefghij"), 0, 9, S("abcde"), 1, 2, -1);
- test(S("abcdefghij"), 0, 9, S("abcde"), 1, 3, -1);
- test(S("abcdefghij"), 0, 9, S("abcde"), 1, 4, -1);
- test(S("abcdefghij"), 0, 9, S("abcde"), 1, 5, -1);
- test(S("abcdefghij"), 0, 9, S("abcde"), 2, 0, 9);
- test(S("abcdefghij"), 0, 9, S("abcde"), 2, 1, -2);
- test(S("abcdefghij"), 0, 9, S("abcde"), 2, 2, -2);
- test(S("abcdefghij"), 0, 9, S("abcde"), 2, 3, -2);
- test(S("abcdefghij"), 0, 9, S("abcde"), 2, 4, -2);
- test(S("abcdefghij"), 0, 9, S("abcde"), 4, 0, 9);
- test(S("abcdefghij"), 0, 9, S("abcde"), 4, 1, -4);
- test(S("abcdefghij"), 0, 9, S("abcde"), 4, 2, -4);
- test(S("abcdefghij"), 0, 9, S("abcde"), 5, 0, 9);
- test(S("abcdefghij"), 0, 9, S("abcde"), 5, 1, 9);
- test(S("abcdefghij"), 0, 9, S("abcde"), 6, 0, 0);
- test(S("abcdefghij"), 0, 9, S("abcdefghij"), 0, 0, 9);
- test(S("abcdefghij"), 0, 9, S("abcdefghij"), 0, 1, 8);
- test(S("abcdefghij"), 0, 9, S("abcdefghij"), 0, 5, 4);
- test(S("abcdefghij"), 0, 9, S("abcdefghij"), 0, 9, 0);
- test(S("abcdefghij"), 0, 9, S("abcdefghij"), 0, 10, -1);
- test(S("abcdefghij"), 0, 9, S("abcdefghij"), 0, 11, -1);
- test(S("abcdefghij"), 0, 9, S("abcdefghij"), 1, 0, 9);
- test(S("abcdefghij"), 0, 9, S("abcdefghij"), 1, 1, -1);
- test(S("abcdefghij"), 0, 9, S("abcdefghij"), 1, 4, -1);
- test(S("abcdefghij"), 0, 9, S("abcdefghij"), 1, 8, -1);
- test(S("abcdefghij"), 0, 9, S("abcdefghij"), 1, 9, -1);
- test(S("abcdefghij"), 0, 9, S("abcdefghij"), 1, 10, -1);
- test(S("abcdefghij"), 0, 9, S("abcdefghij"), 5, 0, 9);
- test(S("abcdefghij"), 0, 9, S("abcdefghij"), 5, 1, -5);
- test(S("abcdefghij"), 0, 9, S("abcdefghij"), 5, 2, -5);
- test(S("abcdefghij"), 0, 9, S("abcdefghij"), 5, 4, -5);
- test(S("abcdefghij"), 0, 9, S("abcdefghij"), 5, 5, -5);
- test(S("abcdefghij"), 0, 9, S("abcdefghij"), 5, 6, -5);
- test(S("abcdefghij"), 0, 9, S("abcdefghij"), 9, 0, 9);
- test(S("abcdefghij"), 0, 9, S("abcdefghij"), 9, 1, -9);
- test(S("abcdefghij"), 0, 9, S("abcdefghij"), 9, 2, -9);
- test(S("abcdefghij"), 0, 9, S("abcdefghij"), 10, 0, 9);
- test(S("abcdefghij"), 0, 9, S("abcdefghij"), 10, 1, 9);
- test(S("abcdefghij"), 0, 9, S("abcdefghij"), 11, 0, 0);
- test(S("abcdefghij"), 0, 9, S("abcdefghijklmnopqrst"), 0, 0, 9);
- test(S("abcdefghij"), 0, 9, S("abcdefghijklmnopqrst"), 0, 1, 8);
- test(S("abcdefghij"), 0, 9, S("abcdefghijklmnopqrst"), 0, 10, -1);
- test(S("abcdefghij"), 0, 9, S("abcdefghijklmnopqrst"), 0, 19, -10);
+TEST_CONSTEXPR_CXX20 bool test21() {
+ test(S("abcdefghij"), 0, 5, S("abcdefghij"), 0, 5, 0);
+ test(S("abcdefghij"), 0, 5, S("abcdefghij"), 0, 9, -4);
+ test(S("abcdefghij"), 0, 5, S("abcdefghij"), 0, 10, -5);
+ test(S("abcdefghij"), 0, 5, S("abcdefghij"), 0, 11, -5);
+ test(S("abcdefghij"), 0, 5, S("abcdefghij"), 1, 0, 5);
+ test(S("abcdefghij"), 0, 5, S("abcdefghij"), 1, 1, -1);
+ test(S("abcdefghij"), 0, 5, S("abcdefghij"), 1, 4, -1);
+ test(S("abcdefghij"), 0, 5, S("abcdefghij"), 1, 8, -1);
+ test(S("abcdefghij"), 0, 5, S("abcdefghij"), 1, 9, -1);
+ test(S("abcdefghij"), 0, 5, S("abcdefghij"), 1, 10, -1);
+ test(S("abcdefghij"), 0, 5, S("abcdefghij"), 5, 0, 5);
+ test(S("abcdefghij"), 0, 5, S("abcdefghij"), 5, 1, -5);
+ test(S("abcdefghij"), 0, 5, S("abcdefghij"), 5, 2, -5);
+ test(S("abcdefghij"), 0, 5, S("abcdefghij"), 5, 4, -5);
+ test(S("abcdefghij"), 0, 5, S("abcdefghij"), 5, 5, -5);
+ test(S("abcdefghij"), 0, 5, S("abcdefghij"), 5, 6, -5);
+ test(S("abcdefghij"), 0, 5, S("abcdefghij"), 9, 0, 5);
+ test(S("abcdefghij"), 0, 5, S("abcdefghij"), 9, 1, -9);
+ test(S("abcdefghij"), 0, 5, S("abcdefghij"), 9, 2, -9);
+ test(S("abcdefghij"), 0, 5, S("abcdefghij"), 10, 0, 5);
+ test(S("abcdefghij"), 0, 5, S("abcdefghij"), 10, 1, 5);
+ test(S("abcdefghij"), 0, 5, S("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghij"), 0, 5, S("abcdefghijklmnopqrst"), 0, 0, 5);
+ test(S("abcdefghij"), 0, 5, S("abcdefghijklmnopqrst"), 0, 1, 4);
+ test(S("abcdefghij"), 0, 5, S("abcdefghijklmnopqrst"), 0, 10, -5);
+ test(S("abcdefghij"), 0, 5, S("abcdefghijklmnopqrst"), 0, 19, -14);
+ test(S("abcdefghij"), 0, 5, S("abcdefghijklmnopqrst"), 0, 20, -15);
+ test(S("abcdefghij"), 0, 5, S("abcdefghijklmnopqrst"), 0, 21, -15);
+ test(S("abcdefghij"), 0, 5, S("abcdefghijklmnopqrst"), 1, 0, 5);
+ test(S("abcdefghij"), 0, 5, S("abcdefghijklmnopqrst"), 1, 1, -1);
+ test(S("abcdefghij"), 0, 5, S("abcdefghijklmnopqrst"), 1, 9, -1);
+ test(S("abcdefghij"), 0, 5, S("abcdefghijklmnopqrst"), 1, 18, -1);
+ test(S("abcdefghij"), 0, 5, S("abcdefghijklmnopqrst"), 1, 19, -1);
+ test(S("abcdefghij"), 0, 5, S("abcdefghijklmnopqrst"), 1, 20, -1);
+ test(S("abcdefghij"), 0, 5, S("abcdefghijklmnopqrst"), 10, 0, 5);
+ test(S("abcdefghij"), 0, 5, S("abcdefghijklmnopqrst"), 10, 1, -10);
+ test(S("abcdefghij"), 0, 5, S("abcdefghijklmnopqrst"), 10, 5, -10);
+ test(S("abcdefghij"), 0, 5, S("abcdefghijklmnopqrst"), 10, 9, -10);
+ test(S("abcdefghij"), 0, 5, S("abcdefghijklmnopqrst"), 10, 10, -10);
+ test(S("abcdefghij"), 0, 5, S("abcdefghijklmnopqrst"), 10, 11, -10);
+ test(S("abcdefghij"), 0, 5, S("abcdefghijklmnopqrst"), 19, 0, 5);
+ test(S("abcdefghij"), 0, 5, S("abcdefghijklmnopqrst"), 19, 1, -19);
+ test(S("abcdefghij"), 0, 5, S("abcdefghijklmnopqrst"), 19, 2, -19);
+ test(S("abcdefghij"), 0, 5, S("abcdefghijklmnopqrst"), 20, 0, 5);
+ test(S("abcdefghij"), 0, 5, S("abcdefghijklmnopqrst"), 20, 1, 5);
+ test(S("abcdefghij"), 0, 5, S("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghij"), 0, 9, S(""), 0, 0, 9);
+ test(S("abcdefghij"), 0, 9, S(""), 0, 1, 9);
+ test(S("abcdefghij"), 0, 9, S(""), 1, 0, 0);
+ test(S("abcdefghij"), 0, 9, S("abcde"), 0, 0, 9);
+ test(S("abcdefghij"), 0, 9, S("abcde"), 0, 1, 8);
+ test(S("abcdefghij"), 0, 9, S("abcde"), 0, 2, 7);
+ test(S("abcdefghij"), 0, 9, S("abcde"), 0, 4, 5);
+ test(S("abcdefghij"), 0, 9, S("abcde"), 0, 5, 4);
+ test(S("abcdefghij"), 0, 9, S("abcde"), 0, 6, 4);
+ test(S("abcdefghij"), 0, 9, S("abcde"), 1, 0, 9);
+ test(S("abcdefghij"), 0, 9, S("abcde"), 1, 1, -1);
+ test(S("abcdefghij"), 0, 9, S("abcde"), 1, 2, -1);
+ test(S("abcdefghij"), 0, 9, S("abcde"), 1, 3, -1);
+ test(S("abcdefghij"), 0, 9, S("abcde"), 1, 4, -1);
+ test(S("abcdefghij"), 0, 9, S("abcde"), 1, 5, -1);
+ test(S("abcdefghij"), 0, 9, S("abcde"), 2, 0, 9);
+ test(S("abcdefghij"), 0, 9, S("abcde"), 2, 1, -2);
+ test(S("abcdefghij"), 0, 9, S("abcde"), 2, 2, -2);
+ test(S("abcdefghij"), 0, 9, S("abcde"), 2, 3, -2);
+ test(S("abcdefghij"), 0, 9, S("abcde"), 2, 4, -2);
+ test(S("abcdefghij"), 0, 9, S("abcde"), 4, 0, 9);
+ test(S("abcdefghij"), 0, 9, S("abcde"), 4, 1, -4);
+ test(S("abcdefghij"), 0, 9, S("abcde"), 4, 2, -4);
+ test(S("abcdefghij"), 0, 9, S("abcde"), 5, 0, 9);
+ test(S("abcdefghij"), 0, 9, S("abcde"), 5, 1, 9);
+ test(S("abcdefghij"), 0, 9, S("abcde"), 6, 0, 0);
+ test(S("abcdefghij"), 0, 9, S("abcdefghij"), 0, 0, 9);
+ test(S("abcdefghij"), 0, 9, S("abcdefghij"), 0, 1, 8);
+ test(S("abcdefghij"), 0, 9, S("abcdefghij"), 0, 5, 4);
+ test(S("abcdefghij"), 0, 9, S("abcdefghij"), 0, 9, 0);
+ test(S("abcdefghij"), 0, 9, S("abcdefghij"), 0, 10, -1);
+ test(S("abcdefghij"), 0, 9, S("abcdefghij"), 0, 11, -1);
+ test(S("abcdefghij"), 0, 9, S("abcdefghij"), 1, 0, 9);
+ test(S("abcdefghij"), 0, 9, S("abcdefghij"), 1, 1, -1);
+ test(S("abcdefghij"), 0, 9, S("abcdefghij"), 1, 4, -1);
+ test(S("abcdefghij"), 0, 9, S("abcdefghij"), 1, 8, -1);
+ test(S("abcdefghij"), 0, 9, S("abcdefghij"), 1, 9, -1);
+ test(S("abcdefghij"), 0, 9, S("abcdefghij"), 1, 10, -1);
+ test(S("abcdefghij"), 0, 9, S("abcdefghij"), 5, 0, 9);
+ test(S("abcdefghij"), 0, 9, S("abcdefghij"), 5, 1, -5);
+ test(S("abcdefghij"), 0, 9, S("abcdefghij"), 5, 2, -5);
+ test(S("abcdefghij"), 0, 9, S("abcdefghij"), 5, 4, -5);
+ test(S("abcdefghij"), 0, 9, S("abcdefghij"), 5, 5, -5);
+ test(S("abcdefghij"), 0, 9, S("abcdefghij"), 5, 6, -5);
+ test(S("abcdefghij"), 0, 9, S("abcdefghij"), 9, 0, 9);
+ test(S("abcdefghij"), 0, 9, S("abcdefghij"), 9, 1, -9);
+ test(S("abcdefghij"), 0, 9, S("abcdefghij"), 9, 2, -9);
+ test(S("abcdefghij"), 0, 9, S("abcdefghij"), 10, 0, 9);
+ test(S("abcdefghij"), 0, 9, S("abcdefghij"), 10, 1, 9);
+ test(S("abcdefghij"), 0, 9, S("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghij"), 0, 9, S("abcdefghijklmnopqrst"), 0, 0, 9);
+ test(S("abcdefghij"), 0, 9, S("abcdefghijklmnopqrst"), 0, 1, 8);
+ test(S("abcdefghij"), 0, 9, S("abcdefghijklmnopqrst"), 0, 10, -1);
+ test(S("abcdefghij"), 0, 9, S("abcdefghijklmnopqrst"), 0, 19, -10);
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test22()
-{
- test(S("abcdefghij"), 0, 9, S("abcdefghijklmnopqrst"), 0, 20, -11);
- test(S("abcdefghij"), 0, 9, S("abcdefghijklmnopqrst"), 0, 21, -11);
- test(S("abcdefghij"), 0, 9, S("abcdefghijklmnopqrst"), 1, 0, 9);
- test(S("abcdefghij"), 0, 9, S("abcdefghijklmnopqrst"), 1, 1, -1);
- test(S("abcdefghij"), 0, 9, S("abcdefghijklmnopqrst"), 1, 9, -1);
- test(S("abcdefghij"), 0, 9, S("abcdefghijklmnopqrst"), 1, 18, -1);
- test(S("abcdefghij"), 0, 9, S("abcdefghijklmnopqrst"), 1, 19, -1);
- test(S("abcdefghij"), 0, 9, S("abcdefghijklmnopqrst"), 1, 20, -1);
- test(S("abcdefghij"), 0, 9, S("abcdefghijklmnopqrst"), 10, 0, 9);
- test(S("abcdefghij"), 0, 9, S("abcdefghijklmnopqrst"), 10, 1, -10);
- test(S("abcdefghij"), 0, 9, S("abcdefghijklmnopqrst"), 10, 5, -10);
- test(S("abcdefghij"), 0, 9, S("abcdefghijklmnopqrst"), 10, 9, -10);
- test(S("abcdefghij"), 0, 9, S("abcdefghijklmnopqrst"), 10, 10, -10);
- test(S("abcdefghij"), 0, 9, S("abcdefghijklmnopqrst"), 10, 11, -10);
- test(S("abcdefghij"), 0, 9, S("abcdefghijklmnopqrst"), 19, 0, 9);
- test(S("abcdefghij"), 0, 9, S("abcdefghijklmnopqrst"), 19, 1, -19);
- test(S("abcdefghij"), 0, 9, S("abcdefghijklmnopqrst"), 19, 2, -19);
- test(S("abcdefghij"), 0, 9, S("abcdefghijklmnopqrst"), 20, 0, 9);
- test(S("abcdefghij"), 0, 9, S("abcdefghijklmnopqrst"), 20, 1, 9);
- test(S("abcdefghij"), 0, 9, S("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghij"), 0, 10, S(""), 0, 0, 10);
- test(S("abcdefghij"), 0, 10, S(""), 0, 1, 10);
- test(S("abcdefghij"), 0, 10, S(""), 1, 0, 0);
- test(S("abcdefghij"), 0, 10, S("abcde"), 0, 0, 10);
- test(S("abcdefghij"), 0, 10, S("abcde"), 0, 1, 9);
- test(S("abcdefghij"), 0, 10, S("abcde"), 0, 2, 8);
- test(S("abcdefghij"), 0, 10, S("abcde"), 0, 4, 6);
- test(S("abcdefghij"), 0, 10, S("abcde"), 0, 5, 5);
- test(S("abcdefghij"), 0, 10, S("abcde"), 0, 6, 5);
- test(S("abcdefghij"), 0, 10, S("abcde"), 1, 0, 10);
- test(S("abcdefghij"), 0, 10, S("abcde"), 1, 1, -1);
- test(S("abcdefghij"), 0, 10, S("abcde"), 1, 2, -1);
- test(S("abcdefghij"), 0, 10, S("abcde"), 1, 3, -1);
- test(S("abcdefghij"), 0, 10, S("abcde"), 1, 4, -1);
- test(S("abcdefghij"), 0, 10, S("abcde"), 1, 5, -1);
- test(S("abcdefghij"), 0, 10, S("abcde"), 2, 0, 10);
- test(S("abcdefghij"), 0, 10, S("abcde"), 2, 1, -2);
- test(S("abcdefghij"), 0, 10, S("abcde"), 2, 2, -2);
- test(S("abcdefghij"), 0, 10, S("abcde"), 2, 3, -2);
- test(S("abcdefghij"), 0, 10, S("abcde"), 2, 4, -2);
- test(S("abcdefghij"), 0, 10, S("abcde"), 4, 0, 10);
- test(S("abcdefghij"), 0, 10, S("abcde"), 4, 1, -4);
- test(S("abcdefghij"), 0, 10, S("abcde"), 4, 2, -4);
- test(S("abcdefghij"), 0, 10, S("abcde"), 5, 0, 10);
- test(S("abcdefghij"), 0, 10, S("abcde"), 5, 1, 10);
- test(S("abcdefghij"), 0, 10, S("abcde"), 6, 0, 0);
- test(S("abcdefghij"), 0, 10, S("abcdefghij"), 0, 0, 10);
- test(S("abcdefghij"), 0, 10, S("abcdefghij"), 0, 1, 9);
- test(S("abcdefghij"), 0, 10, S("abcdefghij"), 0, 5, 5);
- test(S("abcdefghij"), 0, 10, S("abcdefghij"), 0, 9, 1);
- test(S("abcdefghij"), 0, 10, S("abcdefghij"), 0, 10, 0);
- test(S("abcdefghij"), 0, 10, S("abcdefghij"), 0, 11, 0);
- test(S("abcdefghij"), 0, 10, S("abcdefghij"), 1, 0, 10);
- test(S("abcdefghij"), 0, 10, S("abcdefghij"), 1, 1, -1);
- test(S("abcdefghij"), 0, 10, S("abcdefghij"), 1, 4, -1);
- test(S("abcdefghij"), 0, 10, S("abcdefghij"), 1, 8, -1);
- test(S("abcdefghij"), 0, 10, S("abcdefghij"), 1, 9, -1);
- test(S("abcdefghij"), 0, 10, S("abcdefghij"), 1, 10, -1);
- test(S("abcdefghij"), 0, 10, S("abcdefghij"), 5, 0, 10);
- test(S("abcdefghij"), 0, 10, S("abcdefghij"), 5, 1, -5);
- test(S("abcdefghij"), 0, 10, S("abcdefghij"), 5, 2, -5);
- test(S("abcdefghij"), 0, 10, S("abcdefghij"), 5, 4, -5);
- test(S("abcdefghij"), 0, 10, S("abcdefghij"), 5, 5, -5);
- test(S("abcdefghij"), 0, 10, S("abcdefghij"), 5, 6, -5);
- test(S("abcdefghij"), 0, 10, S("abcdefghij"), 9, 0, 10);
- test(S("abcdefghij"), 0, 10, S("abcdefghij"), 9, 1, -9);
- test(S("abcdefghij"), 0, 10, S("abcdefghij"), 9, 2, -9);
- test(S("abcdefghij"), 0, 10, S("abcdefghij"), 10, 0, 10);
- test(S("abcdefghij"), 0, 10, S("abcdefghij"), 10, 1, 10);
- test(S("abcdefghij"), 0, 10, S("abcdefghij"), 11, 0, 0);
- test(S("abcdefghij"), 0, 10, S("abcdefghijklmnopqrst"), 0, 0, 10);
- test(S("abcdefghij"), 0, 10, S("abcdefghijklmnopqrst"), 0, 1, 9);
- test(S("abcdefghij"), 0, 10, S("abcdefghijklmnopqrst"), 0, 10, 0);
- test(S("abcdefghij"), 0, 10, S("abcdefghijklmnopqrst"), 0, 19, -9);
- test(S("abcdefghij"), 0, 10, S("abcdefghijklmnopqrst"), 0, 20, -10);
- test(S("abcdefghij"), 0, 10, S("abcdefghijklmnopqrst"), 0, 21, -10);
- test(S("abcdefghij"), 0, 10, S("abcdefghijklmnopqrst"), 1, 0, 10);
- test(S("abcdefghij"), 0, 10, S("abcdefghijklmnopqrst"), 1, 1, -1);
- test(S("abcdefghij"), 0, 10, S("abcdefghijklmnopqrst"), 1, 9, -1);
- test(S("abcdefghij"), 0, 10, S("abcdefghijklmnopqrst"), 1, 18, -1);
- test(S("abcdefghij"), 0, 10, S("abcdefghijklmnopqrst"), 1, 19, -1);
- test(S("abcdefghij"), 0, 10, S("abcdefghijklmnopqrst"), 1, 20, -1);
- test(S("abcdefghij"), 0, 10, S("abcdefghijklmnopqrst"), 10, 0, 10);
- test(S("abcdefghij"), 0, 10, S("abcdefghijklmnopqrst"), 10, 1, -10);
- test(S("abcdefghij"), 0, 10, S("abcdefghijklmnopqrst"), 10, 5, -10);
- test(S("abcdefghij"), 0, 10, S("abcdefghijklmnopqrst"), 10, 9, -10);
- test(S("abcdefghij"), 0, 10, S("abcdefghijklmnopqrst"), 10, 10, -10);
- test(S("abcdefghij"), 0, 10, S("abcdefghijklmnopqrst"), 10, 11, -10);
- test(S("abcdefghij"), 0, 10, S("abcdefghijklmnopqrst"), 19, 0, 10);
- test(S("abcdefghij"), 0, 10, S("abcdefghijklmnopqrst"), 19, 1, -19);
- test(S("abcdefghij"), 0, 10, S("abcdefghijklmnopqrst"), 19, 2, -19);
- test(S("abcdefghij"), 0, 10, S("abcdefghijklmnopqrst"), 20, 0, 10);
- test(S("abcdefghij"), 0, 10, S("abcdefghijklmnopqrst"), 20, 1, 10);
- test(S("abcdefghij"), 0, 10, S("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghij"), 0, 11, S(""), 0, 0, 10);
- test(S("abcdefghij"), 0, 11, S(""), 0, 1, 10);
- test(S("abcdefghij"), 0, 11, S(""), 1, 0, 0);
- test(S("abcdefghij"), 0, 11, S("abcde"), 0, 0, 10);
- test(S("abcdefghij"), 0, 11, S("abcde"), 0, 1, 9);
- test(S("abcdefghij"), 0, 11, S("abcde"), 0, 2, 8);
+TEST_CONSTEXPR_CXX20 bool test22() {
+ test(S("abcdefghij"), 0, 9, S("abcdefghijklmnopqrst"), 0, 20, -11);
+ test(S("abcdefghij"), 0, 9, S("abcdefghijklmnopqrst"), 0, 21, -11);
+ test(S("abcdefghij"), 0, 9, S("abcdefghijklmnopqrst"), 1, 0, 9);
+ test(S("abcdefghij"), 0, 9, S("abcdefghijklmnopqrst"), 1, 1, -1);
+ test(S("abcdefghij"), 0, 9, S("abcdefghijklmnopqrst"), 1, 9, -1);
+ test(S("abcdefghij"), 0, 9, S("abcdefghijklmnopqrst"), 1, 18, -1);
+ test(S("abcdefghij"), 0, 9, S("abcdefghijklmnopqrst"), 1, 19, -1);
+ test(S("abcdefghij"), 0, 9, S("abcdefghijklmnopqrst"), 1, 20, -1);
+ test(S("abcdefghij"), 0, 9, S("abcdefghijklmnopqrst"), 10, 0, 9);
+ test(S("abcdefghij"), 0, 9, S("abcdefghijklmnopqrst"), 10, 1, -10);
+ test(S("abcdefghij"), 0, 9, S("abcdefghijklmnopqrst"), 10, 5, -10);
+ test(S("abcdefghij"), 0, 9, S("abcdefghijklmnopqrst"), 10, 9, -10);
+ test(S("abcdefghij"), 0, 9, S("abcdefghijklmnopqrst"), 10, 10, -10);
+ test(S("abcdefghij"), 0, 9, S("abcdefghijklmnopqrst"), 10, 11, -10);
+ test(S("abcdefghij"), 0, 9, S("abcdefghijklmnopqrst"), 19, 0, 9);
+ test(S("abcdefghij"), 0, 9, S("abcdefghijklmnopqrst"), 19, 1, -19);
+ test(S("abcdefghij"), 0, 9, S("abcdefghijklmnopqrst"), 19, 2, -19);
+ test(S("abcdefghij"), 0, 9, S("abcdefghijklmnopqrst"), 20, 0, 9);
+ test(S("abcdefghij"), 0, 9, S("abcdefghijklmnopqrst"), 20, 1, 9);
+ test(S("abcdefghij"), 0, 9, S("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghij"), 0, 10, S(""), 0, 0, 10);
+ test(S("abcdefghij"), 0, 10, S(""), 0, 1, 10);
+ test(S("abcdefghij"), 0, 10, S(""), 1, 0, 0);
+ test(S("abcdefghij"), 0, 10, S("abcde"), 0, 0, 10);
+ test(S("abcdefghij"), 0, 10, S("abcde"), 0, 1, 9);
+ test(S("abcdefghij"), 0, 10, S("abcde"), 0, 2, 8);
+ test(S("abcdefghij"), 0, 10, S("abcde"), 0, 4, 6);
+ test(S("abcdefghij"), 0, 10, S("abcde"), 0, 5, 5);
+ test(S("abcdefghij"), 0, 10, S("abcde"), 0, 6, 5);
+ test(S("abcdefghij"), 0, 10, S("abcde"), 1, 0, 10);
+ test(S("abcdefghij"), 0, 10, S("abcde"), 1, 1, -1);
+ test(S("abcdefghij"), 0, 10, S("abcde"), 1, 2, -1);
+ test(S("abcdefghij"), 0, 10, S("abcde"), 1, 3, -1);
+ test(S("abcdefghij"), 0, 10, S("abcde"), 1, 4, -1);
+ test(S("abcdefghij"), 0, 10, S("abcde"), 1, 5, -1);
+ test(S("abcdefghij"), 0, 10, S("abcde"), 2, 0, 10);
+ test(S("abcdefghij"), 0, 10, S("abcde"), 2, 1, -2);
+ test(S("abcdefghij"), 0, 10, S("abcde"), 2, 2, -2);
+ test(S("abcdefghij"), 0, 10, S("abcde"), 2, 3, -2);
+ test(S("abcdefghij"), 0, 10, S("abcde"), 2, 4, -2);
+ test(S("abcdefghij"), 0, 10, S("abcde"), 4, 0, 10);
+ test(S("abcdefghij"), 0, 10, S("abcde"), 4, 1, -4);
+ test(S("abcdefghij"), 0, 10, S("abcde"), 4, 2, -4);
+ test(S("abcdefghij"), 0, 10, S("abcde"), 5, 0, 10);
+ test(S("abcdefghij"), 0, 10, S("abcde"), 5, 1, 10);
+ test(S("abcdefghij"), 0, 10, S("abcde"), 6, 0, 0);
+ test(S("abcdefghij"), 0, 10, S("abcdefghij"), 0, 0, 10);
+ test(S("abcdefghij"), 0, 10, S("abcdefghij"), 0, 1, 9);
+ test(S("abcdefghij"), 0, 10, S("abcdefghij"), 0, 5, 5);
+ test(S("abcdefghij"), 0, 10, S("abcdefghij"), 0, 9, 1);
+ test(S("abcdefghij"), 0, 10, S("abcdefghij"), 0, 10, 0);
+ test(S("abcdefghij"), 0, 10, S("abcdefghij"), 0, 11, 0);
+ test(S("abcdefghij"), 0, 10, S("abcdefghij"), 1, 0, 10);
+ test(S("abcdefghij"), 0, 10, S("abcdefghij"), 1, 1, -1);
+ test(S("abcdefghij"), 0, 10, S("abcdefghij"), 1, 4, -1);
+ test(S("abcdefghij"), 0, 10, S("abcdefghij"), 1, 8, -1);
+ test(S("abcdefghij"), 0, 10, S("abcdefghij"), 1, 9, -1);
+ test(S("abcdefghij"), 0, 10, S("abcdefghij"), 1, 10, -1);
+ test(S("abcdefghij"), 0, 10, S("abcdefghij"), 5, 0, 10);
+ test(S("abcdefghij"), 0, 10, S("abcdefghij"), 5, 1, -5);
+ test(S("abcdefghij"), 0, 10, S("abcdefghij"), 5, 2, -5);
+ test(S("abcdefghij"), 0, 10, S("abcdefghij"), 5, 4, -5);
+ test(S("abcdefghij"), 0, 10, S("abcdefghij"), 5, 5, -5);
+ test(S("abcdefghij"), 0, 10, S("abcdefghij"), 5, 6, -5);
+ test(S("abcdefghij"), 0, 10, S("abcdefghij"), 9, 0, 10);
+ test(S("abcdefghij"), 0, 10, S("abcdefghij"), 9, 1, -9);
+ test(S("abcdefghij"), 0, 10, S("abcdefghij"), 9, 2, -9);
+ test(S("abcdefghij"), 0, 10, S("abcdefghij"), 10, 0, 10);
+ test(S("abcdefghij"), 0, 10, S("abcdefghij"), 10, 1, 10);
+ test(S("abcdefghij"), 0, 10, S("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghij"), 0, 10, S("abcdefghijklmnopqrst"), 0, 0, 10);
+ test(S("abcdefghij"), 0, 10, S("abcdefghijklmnopqrst"), 0, 1, 9);
+ test(S("abcdefghij"), 0, 10, S("abcdefghijklmnopqrst"), 0, 10, 0);
+ test(S("abcdefghij"), 0, 10, S("abcdefghijklmnopqrst"), 0, 19, -9);
+ test(S("abcdefghij"), 0, 10, S("abcdefghijklmnopqrst"), 0, 20, -10);
+ test(S("abcdefghij"), 0, 10, S("abcdefghijklmnopqrst"), 0, 21, -10);
+ test(S("abcdefghij"), 0, 10, S("abcdefghijklmnopqrst"), 1, 0, 10);
+ test(S("abcdefghij"), 0, 10, S("abcdefghijklmnopqrst"), 1, 1, -1);
+ test(S("abcdefghij"), 0, 10, S("abcdefghijklmnopqrst"), 1, 9, -1);
+ test(S("abcdefghij"), 0, 10, S("abcdefghijklmnopqrst"), 1, 18, -1);
+ test(S("abcdefghij"), 0, 10, S("abcdefghijklmnopqrst"), 1, 19, -1);
+ test(S("abcdefghij"), 0, 10, S("abcdefghijklmnopqrst"), 1, 20, -1);
+ test(S("abcdefghij"), 0, 10, S("abcdefghijklmnopqrst"), 10, 0, 10);
+ test(S("abcdefghij"), 0, 10, S("abcdefghijklmnopqrst"), 10, 1, -10);
+ test(S("abcdefghij"), 0, 10, S("abcdefghijklmnopqrst"), 10, 5, -10);
+ test(S("abcdefghij"), 0, 10, S("abcdefghijklmnopqrst"), 10, 9, -10);
+ test(S("abcdefghij"), 0, 10, S("abcdefghijklmnopqrst"), 10, 10, -10);
+ test(S("abcdefghij"), 0, 10, S("abcdefghijklmnopqrst"), 10, 11, -10);
+ test(S("abcdefghij"), 0, 10, S("abcdefghijklmnopqrst"), 19, 0, 10);
+ test(S("abcdefghij"), 0, 10, S("abcdefghijklmnopqrst"), 19, 1, -19);
+ test(S("abcdefghij"), 0, 10, S("abcdefghijklmnopqrst"), 19, 2, -19);
+ test(S("abcdefghij"), 0, 10, S("abcdefghijklmnopqrst"), 20, 0, 10);
+ test(S("abcdefghij"), 0, 10, S("abcdefghijklmnopqrst"), 20, 1, 10);
+ test(S("abcdefghij"), 0, 10, S("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghij"), 0, 11, S(""), 0, 0, 10);
+ test(S("abcdefghij"), 0, 11, S(""), 0, 1, 10);
+ test(S("abcdefghij"), 0, 11, S(""), 1, 0, 0);
+ test(S("abcdefghij"), 0, 11, S("abcde"), 0, 0, 10);
+ test(S("abcdefghij"), 0, 11, S("abcde"), 0, 1, 9);
+ test(S("abcdefghij"), 0, 11, S("abcde"), 0, 2, 8);
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test23()
-{
- test(S("abcdefghij"), 0, 11, S("abcde"), 0, 4, 6);
- test(S("abcdefghij"), 0, 11, S("abcde"), 0, 5, 5);
- test(S("abcdefghij"), 0, 11, S("abcde"), 0, 6, 5);
- test(S("abcdefghij"), 0, 11, S("abcde"), 1, 0, 10);
- test(S("abcdefghij"), 0, 11, S("abcde"), 1, 1, -1);
- test(S("abcdefghij"), 0, 11, S("abcde"), 1, 2, -1);
- test(S("abcdefghij"), 0, 11, S("abcde"), 1, 3, -1);
- test(S("abcdefghij"), 0, 11, S("abcde"), 1, 4, -1);
- test(S("abcdefghij"), 0, 11, S("abcde"), 1, 5, -1);
- test(S("abcdefghij"), 0, 11, S("abcde"), 2, 0, 10);
- test(S("abcdefghij"), 0, 11, S("abcde"), 2, 1, -2);
- test(S("abcdefghij"), 0, 11, S("abcde"), 2, 2, -2);
- test(S("abcdefghij"), 0, 11, S("abcde"), 2, 3, -2);
- test(S("abcdefghij"), 0, 11, S("abcde"), 2, 4, -2);
- test(S("abcdefghij"), 0, 11, S("abcde"), 4, 0, 10);
- test(S("abcdefghij"), 0, 11, S("abcde"), 4, 1, -4);
- test(S("abcdefghij"), 0, 11, S("abcde"), 4, 2, -4);
- test(S("abcdefghij"), 0, 11, S("abcde"), 5, 0, 10);
- test(S("abcdefghij"), 0, 11, S("abcde"), 5, 1, 10);
- test(S("abcdefghij"), 0, 11, S("abcde"), 6, 0, 0);
- test(S("abcdefghij"), 0, 11, S("abcdefghij"), 0, 0, 10);
- test(S("abcdefghij"), 0, 11, S("abcdefghij"), 0, 1, 9);
- test(S("abcdefghij"), 0, 11, S("abcdefghij"), 0, 5, 5);
- test(S("abcdefghij"), 0, 11, S("abcdefghij"), 0, 9, 1);
- test(S("abcdefghij"), 0, 11, S("abcdefghij"), 0, 10, 0);
- test(S("abcdefghij"), 0, 11, S("abcdefghij"), 0, 11, 0);
- test(S("abcdefghij"), 0, 11, S("abcdefghij"), 1, 0, 10);
- test(S("abcdefghij"), 0, 11, S("abcdefghij"), 1, 1, -1);
- test(S("abcdefghij"), 0, 11, S("abcdefghij"), 1, 4, -1);
- test(S("abcdefghij"), 0, 11, S("abcdefghij"), 1, 8, -1);
- test(S("abcdefghij"), 0, 11, S("abcdefghij"), 1, 9, -1);
- test(S("abcdefghij"), 0, 11, S("abcdefghij"), 1, 10, -1);
- test(S("abcdefghij"), 0, 11, S("abcdefghij"), 5, 0, 10);
- test(S("abcdefghij"), 0, 11, S("abcdefghij"), 5, 1, -5);
- test(S("abcdefghij"), 0, 11, S("abcdefghij"), 5, 2, -5);
- test(S("abcdefghij"), 0, 11, S("abcdefghij"), 5, 4, -5);
- test(S("abcdefghij"), 0, 11, S("abcdefghij"), 5, 5, -5);
- test(S("abcdefghij"), 0, 11, S("abcdefghij"), 5, 6, -5);
- test(S("abcdefghij"), 0, 11, S("abcdefghij"), 9, 0, 10);
- test(S("abcdefghij"), 0, 11, S("abcdefghij"), 9, 1, -9);
- test(S("abcdefghij"), 0, 11, S("abcdefghij"), 9, 2, -9);
- test(S("abcdefghij"), 0, 11, S("abcdefghij"), 10, 0, 10);
- test(S("abcdefghij"), 0, 11, S("abcdefghij"), 10, 1, 10);
- test(S("abcdefghij"), 0, 11, S("abcdefghij"), 11, 0, 0);
- test(S("abcdefghij"), 0, 11, S("abcdefghijklmnopqrst"), 0, 0, 10);
- test(S("abcdefghij"), 0, 11, S("abcdefghijklmnopqrst"), 0, 1, 9);
- test(S("abcdefghij"), 0, 11, S("abcdefghijklmnopqrst"), 0, 10, 0);
- test(S("abcdefghij"), 0, 11, S("abcdefghijklmnopqrst"), 0, 19, -9);
- test(S("abcdefghij"), 0, 11, S("abcdefghijklmnopqrst"), 0, 20, -10);
- test(S("abcdefghij"), 0, 11, S("abcdefghijklmnopqrst"), 0, 21, -10);
- test(S("abcdefghij"), 0, 11, S("abcdefghijklmnopqrst"), 1, 0, 10);
- test(S("abcdefghij"), 0, 11, S("abcdefghijklmnopqrst"), 1, 1, -1);
- test(S("abcdefghij"), 0, 11, S("abcdefghijklmnopqrst"), 1, 9, -1);
- test(S("abcdefghij"), 0, 11, S("abcdefghijklmnopqrst"), 1, 18, -1);
- test(S("abcdefghij"), 0, 11, S("abcdefghijklmnopqrst"), 1, 19, -1);
- test(S("abcdefghij"), 0, 11, S("abcdefghijklmnopqrst"), 1, 20, -1);
- test(S("abcdefghij"), 0, 11, S("abcdefghijklmnopqrst"), 10, 0, 10);
- test(S("abcdefghij"), 0, 11, S("abcdefghijklmnopqrst"), 10, 1, -10);
- test(S("abcdefghij"), 0, 11, S("abcdefghijklmnopqrst"), 10, 5, -10);
- test(S("abcdefghij"), 0, 11, S("abcdefghijklmnopqrst"), 10, 9, -10);
- test(S("abcdefghij"), 0, 11, S("abcdefghijklmnopqrst"), 10, 10, -10);
- test(S("abcdefghij"), 0, 11, S("abcdefghijklmnopqrst"), 10, 11, -10);
- test(S("abcdefghij"), 0, 11, S("abcdefghijklmnopqrst"), 19, 0, 10);
- test(S("abcdefghij"), 0, 11, S("abcdefghijklmnopqrst"), 19, 1, -19);
- test(S("abcdefghij"), 0, 11, S("abcdefghijklmnopqrst"), 19, 2, -19);
- test(S("abcdefghij"), 0, 11, S("abcdefghijklmnopqrst"), 20, 0, 10);
- test(S("abcdefghij"), 0, 11, S("abcdefghijklmnopqrst"), 20, 1, 10);
- test(S("abcdefghij"), 0, 11, S("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghij"), 1, 0, S(""), 0, 0, 0);
- test(S("abcdefghij"), 1, 0, S(""), 0, 1, 0);
- test(S("abcdefghij"), 1, 0, S(""), 1, 0, 0);
- test(S("abcdefghij"), 1, 0, S("abcde"), 0, 0, 0);
- test(S("abcdefghij"), 1, 0, S("abcde"), 0, 1, -1);
- test(S("abcdefghij"), 1, 0, S("abcde"), 0, 2, -2);
- test(S("abcdefghij"), 1, 0, S("abcde"), 0, 4, -4);
- test(S("abcdefghij"), 1, 0, S("abcde"), 0, 5, -5);
- test(S("abcdefghij"), 1, 0, S("abcde"), 0, 6, -5);
- test(S("abcdefghij"), 1, 0, S("abcde"), 1, 0, 0);
- test(S("abcdefghij"), 1, 0, S("abcde"), 1, 1, -1);
- test(S("abcdefghij"), 1, 0, S("abcde"), 1, 2, -2);
- test(S("abcdefghij"), 1, 0, S("abcde"), 1, 3, -3);
- test(S("abcdefghij"), 1, 0, S("abcde"), 1, 4, -4);
- test(S("abcdefghij"), 1, 0, S("abcde"), 1, 5, -4);
- test(S("abcdefghij"), 1, 0, S("abcde"), 2, 0, 0);
- test(S("abcdefghij"), 1, 0, S("abcde"), 2, 1, -1);
- test(S("abcdefghij"), 1, 0, S("abcde"), 2, 2, -2);
- test(S("abcdefghij"), 1, 0, S("abcde"), 2, 3, -3);
- test(S("abcdefghij"), 1, 0, S("abcde"), 2, 4, -3);
- test(S("abcdefghij"), 1, 0, S("abcde"), 4, 0, 0);
- test(S("abcdefghij"), 1, 0, S("abcde"), 4, 1, -1);
- test(S("abcdefghij"), 1, 0, S("abcde"), 4, 2, -1);
- test(S("abcdefghij"), 1, 0, S("abcde"), 5, 0, 0);
- test(S("abcdefghij"), 1, 0, S("abcde"), 5, 1, 0);
- test(S("abcdefghij"), 1, 0, S("abcde"), 6, 0, 0);
- test(S("abcdefghij"), 1, 0, S("abcdefghij"), 0, 0, 0);
- test(S("abcdefghij"), 1, 0, S("abcdefghij"), 0, 1, -1);
- test(S("abcdefghij"), 1, 0, S("abcdefghij"), 0, 5, -5);
- test(S("abcdefghij"), 1, 0, S("abcdefghij"), 0, 9, -9);
- test(S("abcdefghij"), 1, 0, S("abcdefghij"), 0, 10, -10);
- test(S("abcdefghij"), 1, 0, S("abcdefghij"), 0, 11, -10);
+TEST_CONSTEXPR_CXX20 bool test23() {
+ test(S("abcdefghij"), 0, 11, S("abcde"), 0, 4, 6);
+ test(S("abcdefghij"), 0, 11, S("abcde"), 0, 5, 5);
+ test(S("abcdefghij"), 0, 11, S("abcde"), 0, 6, 5);
+ test(S("abcdefghij"), 0, 11, S("abcde"), 1, 0, 10);
+ test(S("abcdefghij"), 0, 11, S("abcde"), 1, 1, -1);
+ test(S("abcdefghij"), 0, 11, S("abcde"), 1, 2, -1);
+ test(S("abcdefghij"), 0, 11, S("abcde"), 1, 3, -1);
+ test(S("abcdefghij"), 0, 11, S("abcde"), 1, 4, -1);
+ test(S("abcdefghij"), 0, 11, S("abcde"), 1, 5, -1);
+ test(S("abcdefghij"), 0, 11, S("abcde"), 2, 0, 10);
+ test(S("abcdefghij"), 0, 11, S("abcde"), 2, 1, -2);
+ test(S("abcdefghij"), 0, 11, S("abcde"), 2, 2, -2);
+ test(S("abcdefghij"), 0, 11, S("abcde"), 2, 3, -2);
+ test(S("abcdefghij"), 0, 11, S("abcde"), 2, 4, -2);
+ test(S("abcdefghij"), 0, 11, S("abcde"), 4, 0, 10);
+ test(S("abcdefghij"), 0, 11, S("abcde"), 4, 1, -4);
+ test(S("abcdefghij"), 0, 11, S("abcde"), 4, 2, -4);
+ test(S("abcdefghij"), 0, 11, S("abcde"), 5, 0, 10);
+ test(S("abcdefghij"), 0, 11, S("abcde"), 5, 1, 10);
+ test(S("abcdefghij"), 0, 11, S("abcde"), 6, 0, 0);
+ test(S("abcdefghij"), 0, 11, S("abcdefghij"), 0, 0, 10);
+ test(S("abcdefghij"), 0, 11, S("abcdefghij"), 0, 1, 9);
+ test(S("abcdefghij"), 0, 11, S("abcdefghij"), 0, 5, 5);
+ test(S("abcdefghij"), 0, 11, S("abcdefghij"), 0, 9, 1);
+ test(S("abcdefghij"), 0, 11, S("abcdefghij"), 0, 10, 0);
+ test(S("abcdefghij"), 0, 11, S("abcdefghij"), 0, 11, 0);
+ test(S("abcdefghij"), 0, 11, S("abcdefghij"), 1, 0, 10);
+ test(S("abcdefghij"), 0, 11, S("abcdefghij"), 1, 1, -1);
+ test(S("abcdefghij"), 0, 11, S("abcdefghij"), 1, 4, -1);
+ test(S("abcdefghij"), 0, 11, S("abcdefghij"), 1, 8, -1);
+ test(S("abcdefghij"), 0, 11, S("abcdefghij"), 1, 9, -1);
+ test(S("abcdefghij"), 0, 11, S("abcdefghij"), 1, 10, -1);
+ test(S("abcdefghij"), 0, 11, S("abcdefghij"), 5, 0, 10);
+ test(S("abcdefghij"), 0, 11, S("abcdefghij"), 5, 1, -5);
+ test(S("abcdefghij"), 0, 11, S("abcdefghij"), 5, 2, -5);
+ test(S("abcdefghij"), 0, 11, S("abcdefghij"), 5, 4, -5);
+ test(S("abcdefghij"), 0, 11, S("abcdefghij"), 5, 5, -5);
+ test(S("abcdefghij"), 0, 11, S("abcdefghij"), 5, 6, -5);
+ test(S("abcdefghij"), 0, 11, S("abcdefghij"), 9, 0, 10);
+ test(S("abcdefghij"), 0, 11, S("abcdefghij"), 9, 1, -9);
+ test(S("abcdefghij"), 0, 11, S("abcdefghij"), 9, 2, -9);
+ test(S("abcdefghij"), 0, 11, S("abcdefghij"), 10, 0, 10);
+ test(S("abcdefghij"), 0, 11, S("abcdefghij"), 10, 1, 10);
+ test(S("abcdefghij"), 0, 11, S("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghij"), 0, 11, S("abcdefghijklmnopqrst"), 0, 0, 10);
+ test(S("abcdefghij"), 0, 11, S("abcdefghijklmnopqrst"), 0, 1, 9);
+ test(S("abcdefghij"), 0, 11, S("abcdefghijklmnopqrst"), 0, 10, 0);
+ test(S("abcdefghij"), 0, 11, S("abcdefghijklmnopqrst"), 0, 19, -9);
+ test(S("abcdefghij"), 0, 11, S("abcdefghijklmnopqrst"), 0, 20, -10);
+ test(S("abcdefghij"), 0, 11, S("abcdefghijklmnopqrst"), 0, 21, -10);
+ test(S("abcdefghij"), 0, 11, S("abcdefghijklmnopqrst"), 1, 0, 10);
+ test(S("abcdefghij"), 0, 11, S("abcdefghijklmnopqrst"), 1, 1, -1);
+ test(S("abcdefghij"), 0, 11, S("abcdefghijklmnopqrst"), 1, 9, -1);
+ test(S("abcdefghij"), 0, 11, S("abcdefghijklmnopqrst"), 1, 18, -1);
+ test(S("abcdefghij"), 0, 11, S("abcdefghijklmnopqrst"), 1, 19, -1);
+ test(S("abcdefghij"), 0, 11, S("abcdefghijklmnopqrst"), 1, 20, -1);
+ test(S("abcdefghij"), 0, 11, S("abcdefghijklmnopqrst"), 10, 0, 10);
+ test(S("abcdefghij"), 0, 11, S("abcdefghijklmnopqrst"), 10, 1, -10);
+ test(S("abcdefghij"), 0, 11, S("abcdefghijklmnopqrst"), 10, 5, -10);
+ test(S("abcdefghij"), 0, 11, S("abcdefghijklmnopqrst"), 10, 9, -10);
+ test(S("abcdefghij"), 0, 11, S("abcdefghijklmnopqrst"), 10, 10, -10);
+ test(S("abcdefghij"), 0, 11, S("abcdefghijklmnopqrst"), 10, 11, -10);
+ test(S("abcdefghij"), 0, 11, S("abcdefghijklmnopqrst"), 19, 0, 10);
+ test(S("abcdefghij"), 0, 11, S("abcdefghijklmnopqrst"), 19, 1, -19);
+ test(S("abcdefghij"), 0, 11, S("abcdefghijklmnopqrst"), 19, 2, -19);
+ test(S("abcdefghij"), 0, 11, S("abcdefghijklmnopqrst"), 20, 0, 10);
+ test(S("abcdefghij"), 0, 11, S("abcdefghijklmnopqrst"), 20, 1, 10);
+ test(S("abcdefghij"), 0, 11, S("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghij"), 1, 0, S(""), 0, 0, 0);
+ test(S("abcdefghij"), 1, 0, S(""), 0, 1, 0);
+ test(S("abcdefghij"), 1, 0, S(""), 1, 0, 0);
+ test(S("abcdefghij"), 1, 0, S("abcde"), 0, 0, 0);
+ test(S("abcdefghij"), 1, 0, S("abcde"), 0, 1, -1);
+ test(S("abcdefghij"), 1, 0, S("abcde"), 0, 2, -2);
+ test(S("abcdefghij"), 1, 0, S("abcde"), 0, 4, -4);
+ test(S("abcdefghij"), 1, 0, S("abcde"), 0, 5, -5);
+ test(S("abcdefghij"), 1, 0, S("abcde"), 0, 6, -5);
+ test(S("abcdefghij"), 1, 0, S("abcde"), 1, 0, 0);
+ test(S("abcdefghij"), 1, 0, S("abcde"), 1, 1, -1);
+ test(S("abcdefghij"), 1, 0, S("abcde"), 1, 2, -2);
+ test(S("abcdefghij"), 1, 0, S("abcde"), 1, 3, -3);
+ test(S("abcdefghij"), 1, 0, S("abcde"), 1, 4, -4);
+ test(S("abcdefghij"), 1, 0, S("abcde"), 1, 5, -4);
+ test(S("abcdefghij"), 1, 0, S("abcde"), 2, 0, 0);
+ test(S("abcdefghij"), 1, 0, S("abcde"), 2, 1, -1);
+ test(S("abcdefghij"), 1, 0, S("abcde"), 2, 2, -2);
+ test(S("abcdefghij"), 1, 0, S("abcde"), 2, 3, -3);
+ test(S("abcdefghij"), 1, 0, S("abcde"), 2, 4, -3);
+ test(S("abcdefghij"), 1, 0, S("abcde"), 4, 0, 0);
+ test(S("abcdefghij"), 1, 0, S("abcde"), 4, 1, -1);
+ test(S("abcdefghij"), 1, 0, S("abcde"), 4, 2, -1);
+ test(S("abcdefghij"), 1, 0, S("abcde"), 5, 0, 0);
+ test(S("abcdefghij"), 1, 0, S("abcde"), 5, 1, 0);
+ test(S("abcdefghij"), 1, 0, S("abcde"), 6, 0, 0);
+ test(S("abcdefghij"), 1, 0, S("abcdefghij"), 0, 0, 0);
+ test(S("abcdefghij"), 1, 0, S("abcdefghij"), 0, 1, -1);
+ test(S("abcdefghij"), 1, 0, S("abcdefghij"), 0, 5, -5);
+ test(S("abcdefghij"), 1, 0, S("abcdefghij"), 0, 9, -9);
+ test(S("abcdefghij"), 1, 0, S("abcdefghij"), 0, 10, -10);
+ test(S("abcdefghij"), 1, 0, S("abcdefghij"), 0, 11, -10);
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test24()
-{
- test(S("abcdefghij"), 1, 0, S("abcdefghij"), 1, 0, 0);
- test(S("abcdefghij"), 1, 0, S("abcdefghij"), 1, 1, -1);
- test(S("abcdefghij"), 1, 0, S("abcdefghij"), 1, 4, -4);
- test(S("abcdefghij"), 1, 0, S("abcdefghij"), 1, 8, -8);
- test(S("abcdefghij"), 1, 0, S("abcdefghij"), 1, 9, -9);
- test(S("abcdefghij"), 1, 0, S("abcdefghij"), 1, 10, -9);
- test(S("abcdefghij"), 1, 0, S("abcdefghij"), 5, 0, 0);
- test(S("abcdefghij"), 1, 0, S("abcdefghij"), 5, 1, -1);
- test(S("abcdefghij"), 1, 0, S("abcdefghij"), 5, 2, -2);
- test(S("abcdefghij"), 1, 0, S("abcdefghij"), 5, 4, -4);
- test(S("abcdefghij"), 1, 0, S("abcdefghij"), 5, 5, -5);
- test(S("abcdefghij"), 1, 0, S("abcdefghij"), 5, 6, -5);
- test(S("abcdefghij"), 1, 0, S("abcdefghij"), 9, 0, 0);
- test(S("abcdefghij"), 1, 0, S("abcdefghij"), 9, 1, -1);
- test(S("abcdefghij"), 1, 0, S("abcdefghij"), 9, 2, -1);
- test(S("abcdefghij"), 1, 0, S("abcdefghij"), 10, 0, 0);
- test(S("abcdefghij"), 1, 0, S("abcdefghij"), 10, 1, 0);
- test(S("abcdefghij"), 1, 0, S("abcdefghij"), 11, 0, 0);
- test(S("abcdefghij"), 1, 0, S("abcdefghijklmnopqrst"), 0, 0, 0);
- test(S("abcdefghij"), 1, 0, S("abcdefghijklmnopqrst"), 0, 1, -1);
- test(S("abcdefghij"), 1, 0, S("abcdefghijklmnopqrst"), 0, 10, -10);
- test(S("abcdefghij"), 1, 0, S("abcdefghijklmnopqrst"), 0, 19, -19);
- test(S("abcdefghij"), 1, 0, S("abcdefghijklmnopqrst"), 0, 20, -20);
- test(S("abcdefghij"), 1, 0, S("abcdefghijklmnopqrst"), 0, 21, -20);
- test(S("abcdefghij"), 1, 0, S("abcdefghijklmnopqrst"), 1, 0, 0);
- test(S("abcdefghij"), 1, 0, S("abcdefghijklmnopqrst"), 1, 1, -1);
- test(S("abcdefghij"), 1, 0, S("abcdefghijklmnopqrst"), 1, 9, -9);
- test(S("abcdefghij"), 1, 0, S("abcdefghijklmnopqrst"), 1, 18, -18);
- test(S("abcdefghij"), 1, 0, S("abcdefghijklmnopqrst"), 1, 19, -19);
- test(S("abcdefghij"), 1, 0, S("abcdefghijklmnopqrst"), 1, 20, -19);
- test(S("abcdefghij"), 1, 0, S("abcdefghijklmnopqrst"), 10, 0, 0);
- test(S("abcdefghij"), 1, 0, S("abcdefghijklmnopqrst"), 10, 1, -1);
- test(S("abcdefghij"), 1, 0, S("abcdefghijklmnopqrst"), 10, 5, -5);
- test(S("abcdefghij"), 1, 0, S("abcdefghijklmnopqrst"), 10, 9, -9);
- test(S("abcdefghij"), 1, 0, S("abcdefghijklmnopqrst"), 10, 10, -10);
- test(S("abcdefghij"), 1, 0, S("abcdefghijklmnopqrst"), 10, 11, -10);
- test(S("abcdefghij"), 1, 0, S("abcdefghijklmnopqrst"), 19, 0, 0);
- test(S("abcdefghij"), 1, 0, S("abcdefghijklmnopqrst"), 19, 1, -1);
- test(S("abcdefghij"), 1, 0, S("abcdefghijklmnopqrst"), 19, 2, -1);
- test(S("abcdefghij"), 1, 0, S("abcdefghijklmnopqrst"), 20, 0, 0);
- test(S("abcdefghij"), 1, 0, S("abcdefghijklmnopqrst"), 20, 1, 0);
- test(S("abcdefghij"), 1, 0, S("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghij"), 1, 1, S(""), 0, 0, 1);
- test(S("abcdefghij"), 1, 1, S(""), 0, 1, 1);
- test(S("abcdefghij"), 1, 1, S(""), 1, 0, 0);
- test(S("abcdefghij"), 1, 1, S("abcde"), 0, 0, 1);
- test(S("abcdefghij"), 1, 1, S("abcde"), 0, 1, 1);
- test(S("abcdefghij"), 1, 1, S("abcde"), 0, 2, 1);
- test(S("abcdefghij"), 1, 1, S("abcde"), 0, 4, 1);
- test(S("abcdefghij"), 1, 1, S("abcde"), 0, 5, 1);
- test(S("abcdefghij"), 1, 1, S("abcde"), 0, 6, 1);
- test(S("abcdefghij"), 1, 1, S("abcde"), 1, 0, 1);
- test(S("abcdefghij"), 1, 1, S("abcde"), 1, 1, 0);
- test(S("abcdefghij"), 1, 1, S("abcde"), 1, 2, -1);
- test(S("abcdefghij"), 1, 1, S("abcde"), 1, 3, -2);
- test(S("abcdefghij"), 1, 1, S("abcde"), 1, 4, -3);
- test(S("abcdefghij"), 1, 1, S("abcde"), 1, 5, -3);
- test(S("abcdefghij"), 1, 1, S("abcde"), 2, 0, 1);
- test(S("abcdefghij"), 1, 1, S("abcde"), 2, 1, -1);
- test(S("abcdefghij"), 1, 1, S("abcde"), 2, 2, -1);
- test(S("abcdefghij"), 1, 1, S("abcde"), 2, 3, -1);
- test(S("abcdefghij"), 1, 1, S("abcde"), 2, 4, -1);
- test(S("abcdefghij"), 1, 1, S("abcde"), 4, 0, 1);
- test(S("abcdefghij"), 1, 1, S("abcde"), 4, 1, -3);
- test(S("abcdefghij"), 1, 1, S("abcde"), 4, 2, -3);
- test(S("abcdefghij"), 1, 1, S("abcde"), 5, 0, 1);
- test(S("abcdefghij"), 1, 1, S("abcde"), 5, 1, 1);
- test(S("abcdefghij"), 1, 1, S("abcde"), 6, 0, 0);
- test(S("abcdefghij"), 1, 1, S("abcdefghij"), 0, 0, 1);
- test(S("abcdefghij"), 1, 1, S("abcdefghij"), 0, 1, 1);
- test(S("abcdefghij"), 1, 1, S("abcdefghij"), 0, 5, 1);
- test(S("abcdefghij"), 1, 1, S("abcdefghij"), 0, 9, 1);
- test(S("abcdefghij"), 1, 1, S("abcdefghij"), 0, 10, 1);
- test(S("abcdefghij"), 1, 1, S("abcdefghij"), 0, 11, 1);
- test(S("abcdefghij"), 1, 1, S("abcdefghij"), 1, 0, 1);
- test(S("abcdefghij"), 1, 1, S("abcdefghij"), 1, 1, 0);
- test(S("abcdefghij"), 1, 1, S("abcdefghij"), 1, 4, -3);
- test(S("abcdefghij"), 1, 1, S("abcdefghij"), 1, 8, -7);
- test(S("abcdefghij"), 1, 1, S("abcdefghij"), 1, 9, -8);
- test(S("abcdefghij"), 1, 1, S("abcdefghij"), 1, 10, -8);
- test(S("abcdefghij"), 1, 1, S("abcdefghij"), 5, 0, 1);
- test(S("abcdefghij"), 1, 1, S("abcdefghij"), 5, 1, -4);
- test(S("abcdefghij"), 1, 1, S("abcdefghij"), 5, 2, -4);
- test(S("abcdefghij"), 1, 1, S("abcdefghij"), 5, 4, -4);
- test(S("abcdefghij"), 1, 1, S("abcdefghij"), 5, 5, -4);
- test(S("abcdefghij"), 1, 1, S("abcdefghij"), 5, 6, -4);
- test(S("abcdefghij"), 1, 1, S("abcdefghij"), 9, 0, 1);
- test(S("abcdefghij"), 1, 1, S("abcdefghij"), 9, 1, -8);
- test(S("abcdefghij"), 1, 1, S("abcdefghij"), 9, 2, -8);
- test(S("abcdefghij"), 1, 1, S("abcdefghij"), 10, 0, 1);
- test(S("abcdefghij"), 1, 1, S("abcdefghij"), 10, 1, 1);
- test(S("abcdefghij"), 1, 1, S("abcdefghij"), 11, 0, 0);
- test(S("abcdefghij"), 1, 1, S("abcdefghijklmnopqrst"), 0, 0, 1);
- test(S("abcdefghij"), 1, 1, S("abcdefghijklmnopqrst"), 0, 1, 1);
- test(S("abcdefghij"), 1, 1, S("abcdefghijklmnopqrst"), 0, 10, 1);
- test(S("abcdefghij"), 1, 1, S("abcdefghijklmnopqrst"), 0, 19, 1);
- test(S("abcdefghij"), 1, 1, S("abcdefghijklmnopqrst"), 0, 20, 1);
- test(S("abcdefghij"), 1, 1, S("abcdefghijklmnopqrst"), 0, 21, 1);
- test(S("abcdefghij"), 1, 1, S("abcdefghijklmnopqrst"), 1, 0, 1);
- test(S("abcdefghij"), 1, 1, S("abcdefghijklmnopqrst"), 1, 1, 0);
+TEST_CONSTEXPR_CXX20 bool test24() {
+ test(S("abcdefghij"), 1, 0, S("abcdefghij"), 1, 0, 0);
+ test(S("abcdefghij"), 1, 0, S("abcdefghij"), 1, 1, -1);
+ test(S("abcdefghij"), 1, 0, S("abcdefghij"), 1, 4, -4);
+ test(S("abcdefghij"), 1, 0, S("abcdefghij"), 1, 8, -8);
+ test(S("abcdefghij"), 1, 0, S("abcdefghij"), 1, 9, -9);
+ test(S("abcdefghij"), 1, 0, S("abcdefghij"), 1, 10, -9);
+ test(S("abcdefghij"), 1, 0, S("abcdefghij"), 5, 0, 0);
+ test(S("abcdefghij"), 1, 0, S("abcdefghij"), 5, 1, -1);
+ test(S("abcdefghij"), 1, 0, S("abcdefghij"), 5, 2, -2);
+ test(S("abcdefghij"), 1, 0, S("abcdefghij"), 5, 4, -4);
+ test(S("abcdefghij"), 1, 0, S("abcdefghij"), 5, 5, -5);
+ test(S("abcdefghij"), 1, 0, S("abcdefghij"), 5, 6, -5);
+ test(S("abcdefghij"), 1, 0, S("abcdefghij"), 9, 0, 0);
+ test(S("abcdefghij"), 1, 0, S("abcdefghij"), 9, 1, -1);
+ test(S("abcdefghij"), 1, 0, S("abcdefghij"), 9, 2, -1);
+ test(S("abcdefghij"), 1, 0, S("abcdefghij"), 10, 0, 0);
+ test(S("abcdefghij"), 1, 0, S("abcdefghij"), 10, 1, 0);
+ test(S("abcdefghij"), 1, 0, S("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghij"), 1, 0, S("abcdefghijklmnopqrst"), 0, 0, 0);
+ test(S("abcdefghij"), 1, 0, S("abcdefghijklmnopqrst"), 0, 1, -1);
+ test(S("abcdefghij"), 1, 0, S("abcdefghijklmnopqrst"), 0, 10, -10);
+ test(S("abcdefghij"), 1, 0, S("abcdefghijklmnopqrst"), 0, 19, -19);
+ test(S("abcdefghij"), 1, 0, S("abcdefghijklmnopqrst"), 0, 20, -20);
+ test(S("abcdefghij"), 1, 0, S("abcdefghijklmnopqrst"), 0, 21, -20);
+ test(S("abcdefghij"), 1, 0, S("abcdefghijklmnopqrst"), 1, 0, 0);
+ test(S("abcdefghij"), 1, 0, S("abcdefghijklmnopqrst"), 1, 1, -1);
+ test(S("abcdefghij"), 1, 0, S("abcdefghijklmnopqrst"), 1, 9, -9);
+ test(S("abcdefghij"), 1, 0, S("abcdefghijklmnopqrst"), 1, 18, -18);
+ test(S("abcdefghij"), 1, 0, S("abcdefghijklmnopqrst"), 1, 19, -19);
+ test(S("abcdefghij"), 1, 0, S("abcdefghijklmnopqrst"), 1, 20, -19);
+ test(S("abcdefghij"), 1, 0, S("abcdefghijklmnopqrst"), 10, 0, 0);
+ test(S("abcdefghij"), 1, 0, S("abcdefghijklmnopqrst"), 10, 1, -1);
+ test(S("abcdefghij"), 1, 0, S("abcdefghijklmnopqrst"), 10, 5, -5);
+ test(S("abcdefghij"), 1, 0, S("abcdefghijklmnopqrst"), 10, 9, -9);
+ test(S("abcdefghij"), 1, 0, S("abcdefghijklmnopqrst"), 10, 10, -10);
+ test(S("abcdefghij"), 1, 0, S("abcdefghijklmnopqrst"), 10, 11, -10);
+ test(S("abcdefghij"), 1, 0, S("abcdefghijklmnopqrst"), 19, 0, 0);
+ test(S("abcdefghij"), 1, 0, S("abcdefghijklmnopqrst"), 19, 1, -1);
+ test(S("abcdefghij"), 1, 0, S("abcdefghijklmnopqrst"), 19, 2, -1);
+ test(S("abcdefghij"), 1, 0, S("abcdefghijklmnopqrst"), 20, 0, 0);
+ test(S("abcdefghij"), 1, 0, S("abcdefghijklmnopqrst"), 20, 1, 0);
+ test(S("abcdefghij"), 1, 0, S("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghij"), 1, 1, S(""), 0, 0, 1);
+ test(S("abcdefghij"), 1, 1, S(""), 0, 1, 1);
+ test(S("abcdefghij"), 1, 1, S(""), 1, 0, 0);
+ test(S("abcdefghij"), 1, 1, S("abcde"), 0, 0, 1);
+ test(S("abcdefghij"), 1, 1, S("abcde"), 0, 1, 1);
+ test(S("abcdefghij"), 1, 1, S("abcde"), 0, 2, 1);
+ test(S("abcdefghij"), 1, 1, S("abcde"), 0, 4, 1);
+ test(S("abcdefghij"), 1, 1, S("abcde"), 0, 5, 1);
+ test(S("abcdefghij"), 1, 1, S("abcde"), 0, 6, 1);
+ test(S("abcdefghij"), 1, 1, S("abcde"), 1, 0, 1);
+ test(S("abcdefghij"), 1, 1, S("abcde"), 1, 1, 0);
+ test(S("abcdefghij"), 1, 1, S("abcde"), 1, 2, -1);
+ test(S("abcdefghij"), 1, 1, S("abcde"), 1, 3, -2);
+ test(S("abcdefghij"), 1, 1, S("abcde"), 1, 4, -3);
+ test(S("abcdefghij"), 1, 1, S("abcde"), 1, 5, -3);
+ test(S("abcdefghij"), 1, 1, S("abcde"), 2, 0, 1);
+ test(S("abcdefghij"), 1, 1, S("abcde"), 2, 1, -1);
+ test(S("abcdefghij"), 1, 1, S("abcde"), 2, 2, -1);
+ test(S("abcdefghij"), 1, 1, S("abcde"), 2, 3, -1);
+ test(S("abcdefghij"), 1, 1, S("abcde"), 2, 4, -1);
+ test(S("abcdefghij"), 1, 1, S("abcde"), 4, 0, 1);
+ test(S("abcdefghij"), 1, 1, S("abcde"), 4, 1, -3);
+ test(S("abcdefghij"), 1, 1, S("abcde"), 4, 2, -3);
+ test(S("abcdefghij"), 1, 1, S("abcde"), 5, 0, 1);
+ test(S("abcdefghij"), 1, 1, S("abcde"), 5, 1, 1);
+ test(S("abcdefghij"), 1, 1, S("abcde"), 6, 0, 0);
+ test(S("abcdefghij"), 1, 1, S("abcdefghij"), 0, 0, 1);
+ test(S("abcdefghij"), 1, 1, S("abcdefghij"), 0, 1, 1);
+ test(S("abcdefghij"), 1, 1, S("abcdefghij"), 0, 5, 1);
+ test(S("abcdefghij"), 1, 1, S("abcdefghij"), 0, 9, 1);
+ test(S("abcdefghij"), 1, 1, S("abcdefghij"), 0, 10, 1);
+ test(S("abcdefghij"), 1, 1, S("abcdefghij"), 0, 11, 1);
+ test(S("abcdefghij"), 1, 1, S("abcdefghij"), 1, 0, 1);
+ test(S("abcdefghij"), 1, 1, S("abcdefghij"), 1, 1, 0);
+ test(S("abcdefghij"), 1, 1, S("abcdefghij"), 1, 4, -3);
+ test(S("abcdefghij"), 1, 1, S("abcdefghij"), 1, 8, -7);
+ test(S("abcdefghij"), 1, 1, S("abcdefghij"), 1, 9, -8);
+ test(S("abcdefghij"), 1, 1, S("abcdefghij"), 1, 10, -8);
+ test(S("abcdefghij"), 1, 1, S("abcdefghij"), 5, 0, 1);
+ test(S("abcdefghij"), 1, 1, S("abcdefghij"), 5, 1, -4);
+ test(S("abcdefghij"), 1, 1, S("abcdefghij"), 5, 2, -4);
+ test(S("abcdefghij"), 1, 1, S("abcdefghij"), 5, 4, -4);
+ test(S("abcdefghij"), 1, 1, S("abcdefghij"), 5, 5, -4);
+ test(S("abcdefghij"), 1, 1, S("abcdefghij"), 5, 6, -4);
+ test(S("abcdefghij"), 1, 1, S("abcdefghij"), 9, 0, 1);
+ test(S("abcdefghij"), 1, 1, S("abcdefghij"), 9, 1, -8);
+ test(S("abcdefghij"), 1, 1, S("abcdefghij"), 9, 2, -8);
+ test(S("abcdefghij"), 1, 1, S("abcdefghij"), 10, 0, 1);
+ test(S("abcdefghij"), 1, 1, S("abcdefghij"), 10, 1, 1);
+ test(S("abcdefghij"), 1, 1, S("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghij"), 1, 1, S("abcdefghijklmnopqrst"), 0, 0, 1);
+ test(S("abcdefghij"), 1, 1, S("abcdefghijklmnopqrst"), 0, 1, 1);
+ test(S("abcdefghij"), 1, 1, S("abcdefghijklmnopqrst"), 0, 10, 1);
+ test(S("abcdefghij"), 1, 1, S("abcdefghijklmnopqrst"), 0, 19, 1);
+ test(S("abcdefghij"), 1, 1, S("abcdefghijklmnopqrst"), 0, 20, 1);
+ test(S("abcdefghij"), 1, 1, S("abcdefghijklmnopqrst"), 0, 21, 1);
+ test(S("abcdefghij"), 1, 1, S("abcdefghijklmnopqrst"), 1, 0, 1);
+ test(S("abcdefghij"), 1, 1, S("abcdefghijklmnopqrst"), 1, 1, 0);
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test25()
-{
- test(S("abcdefghij"), 1, 1, S("abcdefghijklmnopqrst"), 1, 9, -8);
- test(S("abcdefghij"), 1, 1, S("abcdefghijklmnopqrst"), 1, 18, -17);
- test(S("abcdefghij"), 1, 1, S("abcdefghijklmnopqrst"), 1, 19, -18);
- test(S("abcdefghij"), 1, 1, S("abcdefghijklmnopqrst"), 1, 20, -18);
- test(S("abcdefghij"), 1, 1, S("abcdefghijklmnopqrst"), 10, 0, 1);
- test(S("abcdefghij"), 1, 1, S("abcdefghijklmnopqrst"), 10, 1, -9);
- test(S("abcdefghij"), 1, 1, S("abcdefghijklmnopqrst"), 10, 5, -9);
- test(S("abcdefghij"), 1, 1, S("abcdefghijklmnopqrst"), 10, 9, -9);
- test(S("abcdefghij"), 1, 1, S("abcdefghijklmnopqrst"), 10, 10, -9);
- test(S("abcdefghij"), 1, 1, S("abcdefghijklmnopqrst"), 10, 11, -9);
- test(S("abcdefghij"), 1, 1, S("abcdefghijklmnopqrst"), 19, 0, 1);
- test(S("abcdefghij"), 1, 1, S("abcdefghijklmnopqrst"), 19, 1, -18);
- test(S("abcdefghij"), 1, 1, S("abcdefghijklmnopqrst"), 19, 2, -18);
- test(S("abcdefghij"), 1, 1, S("abcdefghijklmnopqrst"), 20, 0, 1);
- test(S("abcdefghij"), 1, 1, S("abcdefghijklmnopqrst"), 20, 1, 1);
- test(S("abcdefghij"), 1, 1, S("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghij"), 1, 4, S(""), 0, 0, 4);
- test(S("abcdefghij"), 1, 4, S(""), 0, 1, 4);
- test(S("abcdefghij"), 1, 4, S(""), 1, 0, 0);
- test(S("abcdefghij"), 1, 4, S("abcde"), 0, 0, 4);
- test(S("abcdefghij"), 1, 4, S("abcde"), 0, 1, 1);
- test(S("abcdefghij"), 1, 4, S("abcde"), 0, 2, 1);
- test(S("abcdefghij"), 1, 4, S("abcde"), 0, 4, 1);
- test(S("abcdefghij"), 1, 4, S("abcde"), 0, 5, 1);
- test(S("abcdefghij"), 1, 4, S("abcde"), 0, 6, 1);
- test(S("abcdefghij"), 1, 4, S("abcde"), 1, 0, 4);
- test(S("abcdefghij"), 1, 4, S("abcde"), 1, 1, 3);
- test(S("abcdefghij"), 1, 4, S("abcde"), 1, 2, 2);
- test(S("abcdefghij"), 1, 4, S("abcde"), 1, 3, 1);
- test(S("abcdefghij"), 1, 4, S("abcde"), 1, 4, 0);
- test(S("abcdefghij"), 1, 4, S("abcde"), 1, 5, 0);
- test(S("abcdefghij"), 1, 4, S("abcde"), 2, 0, 4);
- test(S("abcdefghij"), 1, 4, S("abcde"), 2, 1, -1);
- test(S("abcdefghij"), 1, 4, S("abcde"), 2, 2, -1);
- test(S("abcdefghij"), 1, 4, S("abcde"), 2, 3, -1);
- test(S("abcdefghij"), 1, 4, S("abcde"), 2, 4, -1);
- test(S("abcdefghij"), 1, 4, S("abcde"), 4, 0, 4);
- test(S("abcdefghij"), 1, 4, S("abcde"), 4, 1, -3);
- test(S("abcdefghij"), 1, 4, S("abcde"), 4, 2, -3);
- test(S("abcdefghij"), 1, 4, S("abcde"), 5, 0, 4);
- test(S("abcdefghij"), 1, 4, S("abcde"), 5, 1, 4);
- test(S("abcdefghij"), 1, 4, S("abcde"), 6, 0, 0);
- test(S("abcdefghij"), 1, 4, S("abcdefghij"), 0, 0, 4);
- test(S("abcdefghij"), 1, 4, S("abcdefghij"), 0, 1, 1);
- test(S("abcdefghij"), 1, 4, S("abcdefghij"), 0, 5, 1);
- test(S("abcdefghij"), 1, 4, S("abcdefghij"), 0, 9, 1);
- test(S("abcdefghij"), 1, 4, S("abcdefghij"), 0, 10, 1);
- test(S("abcdefghij"), 1, 4, S("abcdefghij"), 0, 11, 1);
- test(S("abcdefghij"), 1, 4, S("abcdefghij"), 1, 0, 4);
- test(S("abcdefghij"), 1, 4, S("abcdefghij"), 1, 1, 3);
- test(S("abcdefghij"), 1, 4, S("abcdefghij"), 1, 4, 0);
- test(S("abcdefghij"), 1, 4, S("abcdefghij"), 1, 8, -4);
- test(S("abcdefghij"), 1, 4, S("abcdefghij"), 1, 9, -5);
- test(S("abcdefghij"), 1, 4, S("abcdefghij"), 1, 10, -5);
- test(S("abcdefghij"), 1, 4, S("abcdefghij"), 5, 0, 4);
- test(S("abcdefghij"), 1, 4, S("abcdefghij"), 5, 1, -4);
- test(S("abcdefghij"), 1, 4, S("abcdefghij"), 5, 2, -4);
- test(S("abcdefghij"), 1, 4, S("abcdefghij"), 5, 4, -4);
- test(S("abcdefghij"), 1, 4, S("abcdefghij"), 5, 5, -4);
- test(S("abcdefghij"), 1, 4, S("abcdefghij"), 5, 6, -4);
- test(S("abcdefghij"), 1, 4, S("abcdefghij"), 9, 0, 4);
- test(S("abcdefghij"), 1, 4, S("abcdefghij"), 9, 1, -8);
- test(S("abcdefghij"), 1, 4, S("abcdefghij"), 9, 2, -8);
- test(S("abcdefghij"), 1, 4, S("abcdefghij"), 10, 0, 4);
- test(S("abcdefghij"), 1, 4, S("abcdefghij"), 10, 1, 4);
- test(S("abcdefghij"), 1, 4, S("abcdefghij"), 11, 0, 0);
- test(S("abcdefghij"), 1, 4, S("abcdefghijklmnopqrst"), 0, 0, 4);
- test(S("abcdefghij"), 1, 4, S("abcdefghijklmnopqrst"), 0, 1, 1);
- test(S("abcdefghij"), 1, 4, S("abcdefghijklmnopqrst"), 0, 10, 1);
- test(S("abcdefghij"), 1, 4, S("abcdefghijklmnopqrst"), 0, 19, 1);
- test(S("abcdefghij"), 1, 4, S("abcdefghijklmnopqrst"), 0, 20, 1);
- test(S("abcdefghij"), 1, 4, S("abcdefghijklmnopqrst"), 0, 21, 1);
- test(S("abcdefghij"), 1, 4, S("abcdefghijklmnopqrst"), 1, 0, 4);
- test(S("abcdefghij"), 1, 4, S("abcdefghijklmnopqrst"), 1, 1, 3);
- test(S("abcdefghij"), 1, 4, S("abcdefghijklmnopqrst"), 1, 9, -5);
- test(S("abcdefghij"), 1, 4, S("abcdefghijklmnopqrst"), 1, 18, -14);
- test(S("abcdefghij"), 1, 4, S("abcdefghijklmnopqrst"), 1, 19, -15);
- test(S("abcdefghij"), 1, 4, S("abcdefghijklmnopqrst"), 1, 20, -15);
- test(S("abcdefghij"), 1, 4, S("abcdefghijklmnopqrst"), 10, 0, 4);
- test(S("abcdefghij"), 1, 4, S("abcdefghijklmnopqrst"), 10, 1, -9);
- test(S("abcdefghij"), 1, 4, S("abcdefghijklmnopqrst"), 10, 5, -9);
- test(S("abcdefghij"), 1, 4, S("abcdefghijklmnopqrst"), 10, 9, -9);
- test(S("abcdefghij"), 1, 4, S("abcdefghijklmnopqrst"), 10, 10, -9);
- test(S("abcdefghij"), 1, 4, S("abcdefghijklmnopqrst"), 10, 11, -9);
- test(S("abcdefghij"), 1, 4, S("abcdefghijklmnopqrst"), 19, 0, 4);
- test(S("abcdefghij"), 1, 4, S("abcdefghijklmnopqrst"), 19, 1, -18);
- test(S("abcdefghij"), 1, 4, S("abcdefghijklmnopqrst"), 19, 2, -18);
- test(S("abcdefghij"), 1, 4, S("abcdefghijklmnopqrst"), 20, 0, 4);
- test(S("abcdefghij"), 1, 4, S("abcdefghijklmnopqrst"), 20, 1, 4);
- test(S("abcdefghij"), 1, 4, S("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghij"), 1, 8, S(""), 0, 0, 8);
- test(S("abcdefghij"), 1, 8, S(""), 0, 1, 8);
- test(S("abcdefghij"), 1, 8, S(""), 1, 0, 0);
- test(S("abcdefghij"), 1, 8, S("abcde"), 0, 0, 8);
- test(S("abcdefghij"), 1, 8, S("abcde"), 0, 1, 1);
- test(S("abcdefghij"), 1, 8, S("abcde"), 0, 2, 1);
- test(S("abcdefghij"), 1, 8, S("abcde"), 0, 4, 1);
- test(S("abcdefghij"), 1, 8, S("abcde"), 0, 5, 1);
- test(S("abcdefghij"), 1, 8, S("abcde"), 0, 6, 1);
- test(S("abcdefghij"), 1, 8, S("abcde"), 1, 0, 8);
+TEST_CONSTEXPR_CXX20 bool test25() {
+ test(S("abcdefghij"), 1, 1, S("abcdefghijklmnopqrst"), 1, 9, -8);
+ test(S("abcdefghij"), 1, 1, S("abcdefghijklmnopqrst"), 1, 18, -17);
+ test(S("abcdefghij"), 1, 1, S("abcdefghijklmnopqrst"), 1, 19, -18);
+ test(S("abcdefghij"), 1, 1, S("abcdefghijklmnopqrst"), 1, 20, -18);
+ test(S("abcdefghij"), 1, 1, S("abcdefghijklmnopqrst"), 10, 0, 1);
+ test(S("abcdefghij"), 1, 1, S("abcdefghijklmnopqrst"), 10, 1, -9);
+ test(S("abcdefghij"), 1, 1, S("abcdefghijklmnopqrst"), 10, 5, -9);
+ test(S("abcdefghij"), 1, 1, S("abcdefghijklmnopqrst"), 10, 9, -9);
+ test(S("abcdefghij"), 1, 1, S("abcdefghijklmnopqrst"), 10, 10, -9);
+ test(S("abcdefghij"), 1, 1, S("abcdefghijklmnopqrst"), 10, 11, -9);
+ test(S("abcdefghij"), 1, 1, S("abcdefghijklmnopqrst"), 19, 0, 1);
+ test(S("abcdefghij"), 1, 1, S("abcdefghijklmnopqrst"), 19, 1, -18);
+ test(S("abcdefghij"), 1, 1, S("abcdefghijklmnopqrst"), 19, 2, -18);
+ test(S("abcdefghij"), 1, 1, S("abcdefghijklmnopqrst"), 20, 0, 1);
+ test(S("abcdefghij"), 1, 1, S("abcdefghijklmnopqrst"), 20, 1, 1);
+ test(S("abcdefghij"), 1, 1, S("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghij"), 1, 4, S(""), 0, 0, 4);
+ test(S("abcdefghij"), 1, 4, S(""), 0, 1, 4);
+ test(S("abcdefghij"), 1, 4, S(""), 1, 0, 0);
+ test(S("abcdefghij"), 1, 4, S("abcde"), 0, 0, 4);
+ test(S("abcdefghij"), 1, 4, S("abcde"), 0, 1, 1);
+ test(S("abcdefghij"), 1, 4, S("abcde"), 0, 2, 1);
+ test(S("abcdefghij"), 1, 4, S("abcde"), 0, 4, 1);
+ test(S("abcdefghij"), 1, 4, S("abcde"), 0, 5, 1);
+ test(S("abcdefghij"), 1, 4, S("abcde"), 0, 6, 1);
+ test(S("abcdefghij"), 1, 4, S("abcde"), 1, 0, 4);
+ test(S("abcdefghij"), 1, 4, S("abcde"), 1, 1, 3);
+ test(S("abcdefghij"), 1, 4, S("abcde"), 1, 2, 2);
+ test(S("abcdefghij"), 1, 4, S("abcde"), 1, 3, 1);
+ test(S("abcdefghij"), 1, 4, S("abcde"), 1, 4, 0);
+ test(S("abcdefghij"), 1, 4, S("abcde"), 1, 5, 0);
+ test(S("abcdefghij"), 1, 4, S("abcde"), 2, 0, 4);
+ test(S("abcdefghij"), 1, 4, S("abcde"), 2, 1, -1);
+ test(S("abcdefghij"), 1, 4, S("abcde"), 2, 2, -1);
+ test(S("abcdefghij"), 1, 4, S("abcde"), 2, 3, -1);
+ test(S("abcdefghij"), 1, 4, S("abcde"), 2, 4, -1);
+ test(S("abcdefghij"), 1, 4, S("abcde"), 4, 0, 4);
+ test(S("abcdefghij"), 1, 4, S("abcde"), 4, 1, -3);
+ test(S("abcdefghij"), 1, 4, S("abcde"), 4, 2, -3);
+ test(S("abcdefghij"), 1, 4, S("abcde"), 5, 0, 4);
+ test(S("abcdefghij"), 1, 4, S("abcde"), 5, 1, 4);
+ test(S("abcdefghij"), 1, 4, S("abcde"), 6, 0, 0);
+ test(S("abcdefghij"), 1, 4, S("abcdefghij"), 0, 0, 4);
+ test(S("abcdefghij"), 1, 4, S("abcdefghij"), 0, 1, 1);
+ test(S("abcdefghij"), 1, 4, S("abcdefghij"), 0, 5, 1);
+ test(S("abcdefghij"), 1, 4, S("abcdefghij"), 0, 9, 1);
+ test(S("abcdefghij"), 1, 4, S("abcdefghij"), 0, 10, 1);
+ test(S("abcdefghij"), 1, 4, S("abcdefghij"), 0, 11, 1);
+ test(S("abcdefghij"), 1, 4, S("abcdefghij"), 1, 0, 4);
+ test(S("abcdefghij"), 1, 4, S("abcdefghij"), 1, 1, 3);
+ test(S("abcdefghij"), 1, 4, S("abcdefghij"), 1, 4, 0);
+ test(S("abcdefghij"), 1, 4, S("abcdefghij"), 1, 8, -4);
+ test(S("abcdefghij"), 1, 4, S("abcdefghij"), 1, 9, -5);
+ test(S("abcdefghij"), 1, 4, S("abcdefghij"), 1, 10, -5);
+ test(S("abcdefghij"), 1, 4, S("abcdefghij"), 5, 0, 4);
+ test(S("abcdefghij"), 1, 4, S("abcdefghij"), 5, 1, -4);
+ test(S("abcdefghij"), 1, 4, S("abcdefghij"), 5, 2, -4);
+ test(S("abcdefghij"), 1, 4, S("abcdefghij"), 5, 4, -4);
+ test(S("abcdefghij"), 1, 4, S("abcdefghij"), 5, 5, -4);
+ test(S("abcdefghij"), 1, 4, S("abcdefghij"), 5, 6, -4);
+ test(S("abcdefghij"), 1, 4, S("abcdefghij"), 9, 0, 4);
+ test(S("abcdefghij"), 1, 4, S("abcdefghij"), 9, 1, -8);
+ test(S("abcdefghij"), 1, 4, S("abcdefghij"), 9, 2, -8);
+ test(S("abcdefghij"), 1, 4, S("abcdefghij"), 10, 0, 4);
+ test(S("abcdefghij"), 1, 4, S("abcdefghij"), 10, 1, 4);
+ test(S("abcdefghij"), 1, 4, S("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghij"), 1, 4, S("abcdefghijklmnopqrst"), 0, 0, 4);
+ test(S("abcdefghij"), 1, 4, S("abcdefghijklmnopqrst"), 0, 1, 1);
+ test(S("abcdefghij"), 1, 4, S("abcdefghijklmnopqrst"), 0, 10, 1);
+ test(S("abcdefghij"), 1, 4, S("abcdefghijklmnopqrst"), 0, 19, 1);
+ test(S("abcdefghij"), 1, 4, S("abcdefghijklmnopqrst"), 0, 20, 1);
+ test(S("abcdefghij"), 1, 4, S("abcdefghijklmnopqrst"), 0, 21, 1);
+ test(S("abcdefghij"), 1, 4, S("abcdefghijklmnopqrst"), 1, 0, 4);
+ test(S("abcdefghij"), 1, 4, S("abcdefghijklmnopqrst"), 1, 1, 3);
+ test(S("abcdefghij"), 1, 4, S("abcdefghijklmnopqrst"), 1, 9, -5);
+ test(S("abcdefghij"), 1, 4, S("abcdefghijklmnopqrst"), 1, 18, -14);
+ test(S("abcdefghij"), 1, 4, S("abcdefghijklmnopqrst"), 1, 19, -15);
+ test(S("abcdefghij"), 1, 4, S("abcdefghijklmnopqrst"), 1, 20, -15);
+ test(S("abcdefghij"), 1, 4, S("abcdefghijklmnopqrst"), 10, 0, 4);
+ test(S("abcdefghij"), 1, 4, S("abcdefghijklmnopqrst"), 10, 1, -9);
+ test(S("abcdefghij"), 1, 4, S("abcdefghijklmnopqrst"), 10, 5, -9);
+ test(S("abcdefghij"), 1, 4, S("abcdefghijklmnopqrst"), 10, 9, -9);
+ test(S("abcdefghij"), 1, 4, S("abcdefghijklmnopqrst"), 10, 10, -9);
+ test(S("abcdefghij"), 1, 4, S("abcdefghijklmnopqrst"), 10, 11, -9);
+ test(S("abcdefghij"), 1, 4, S("abcdefghijklmnopqrst"), 19, 0, 4);
+ test(S("abcdefghij"), 1, 4, S("abcdefghijklmnopqrst"), 19, 1, -18);
+ test(S("abcdefghij"), 1, 4, S("abcdefghijklmnopqrst"), 19, 2, -18);
+ test(S("abcdefghij"), 1, 4, S("abcdefghijklmnopqrst"), 20, 0, 4);
+ test(S("abcdefghij"), 1, 4, S("abcdefghijklmnopqrst"), 20, 1, 4);
+ test(S("abcdefghij"), 1, 4, S("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghij"), 1, 8, S(""), 0, 0, 8);
+ test(S("abcdefghij"), 1, 8, S(""), 0, 1, 8);
+ test(S("abcdefghij"), 1, 8, S(""), 1, 0, 0);
+ test(S("abcdefghij"), 1, 8, S("abcde"), 0, 0, 8);
+ test(S("abcdefghij"), 1, 8, S("abcde"), 0, 1, 1);
+ test(S("abcdefghij"), 1, 8, S("abcde"), 0, 2, 1);
+ test(S("abcdefghij"), 1, 8, S("abcde"), 0, 4, 1);
+ test(S("abcdefghij"), 1, 8, S("abcde"), 0, 5, 1);
+ test(S("abcdefghij"), 1, 8, S("abcde"), 0, 6, 1);
+ test(S("abcdefghij"), 1, 8, S("abcde"), 1, 0, 8);
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test26()
-{
- test(S("abcdefghij"), 1, 8, S("abcde"), 1, 1, 7);
- test(S("abcdefghij"), 1, 8, S("abcde"), 1, 2, 6);
- test(S("abcdefghij"), 1, 8, S("abcde"), 1, 3, 5);
- test(S("abcdefghij"), 1, 8, S("abcde"), 1, 4, 4);
- test(S("abcdefghij"), 1, 8, S("abcde"), 1, 5, 4);
- test(S("abcdefghij"), 1, 8, S("abcde"), 2, 0, 8);
- test(S("abcdefghij"), 1, 8, S("abcde"), 2, 1, -1);
- test(S("abcdefghij"), 1, 8, S("abcde"), 2, 2, -1);
- test(S("abcdefghij"), 1, 8, S("abcde"), 2, 3, -1);
- test(S("abcdefghij"), 1, 8, S("abcde"), 2, 4, -1);
- test(S("abcdefghij"), 1, 8, S("abcde"), 4, 0, 8);
- test(S("abcdefghij"), 1, 8, S("abcde"), 4, 1, -3);
- test(S("abcdefghij"), 1, 8, S("abcde"), 4, 2, -3);
- test(S("abcdefghij"), 1, 8, S("abcde"), 5, 0, 8);
- test(S("abcdefghij"), 1, 8, S("abcde"), 5, 1, 8);
- test(S("abcdefghij"), 1, 8, S("abcde"), 6, 0, 0);
- test(S("abcdefghij"), 1, 8, S("abcdefghij"), 0, 0, 8);
- test(S("abcdefghij"), 1, 8, S("abcdefghij"), 0, 1, 1);
- test(S("abcdefghij"), 1, 8, S("abcdefghij"), 0, 5, 1);
- test(S("abcdefghij"), 1, 8, S("abcdefghij"), 0, 9, 1);
- test(S("abcdefghij"), 1, 8, S("abcdefghij"), 0, 10, 1);
- test(S("abcdefghij"), 1, 8, S("abcdefghij"), 0, 11, 1);
- test(S("abcdefghij"), 1, 8, S("abcdefghij"), 1, 0, 8);
- test(S("abcdefghij"), 1, 8, S("abcdefghij"), 1, 1, 7);
- test(S("abcdefghij"), 1, 8, S("abcdefghij"), 1, 4, 4);
- test(S("abcdefghij"), 1, 8, S("abcdefghij"), 1, 8, 0);
- test(S("abcdefghij"), 1, 8, S("abcdefghij"), 1, 9, -1);
- test(S("abcdefghij"), 1, 8, S("abcdefghij"), 1, 10, -1);
- test(S("abcdefghij"), 1, 8, S("abcdefghij"), 5, 0, 8);
- test(S("abcdefghij"), 1, 8, S("abcdefghij"), 5, 1, -4);
- test(S("abcdefghij"), 1, 8, S("abcdefghij"), 5, 2, -4);
- test(S("abcdefghij"), 1, 8, S("abcdefghij"), 5, 4, -4);
- test(S("abcdefghij"), 1, 8, S("abcdefghij"), 5, 5, -4);
- test(S("abcdefghij"), 1, 8, S("abcdefghij"), 5, 6, -4);
- test(S("abcdefghij"), 1, 8, S("abcdefghij"), 9, 0, 8);
- test(S("abcdefghij"), 1, 8, S("abcdefghij"), 9, 1, -8);
- test(S("abcdefghij"), 1, 8, S("abcdefghij"), 9, 2, -8);
- test(S("abcdefghij"), 1, 8, S("abcdefghij"), 10, 0, 8);
- test(S("abcdefghij"), 1, 8, S("abcdefghij"), 10, 1, 8);
- test(S("abcdefghij"), 1, 8, S("abcdefghij"), 11, 0, 0);
- test(S("abcdefghij"), 1, 8, S("abcdefghijklmnopqrst"), 0, 0, 8);
- test(S("abcdefghij"), 1, 8, S("abcdefghijklmnopqrst"), 0, 1, 1);
- test(S("abcdefghij"), 1, 8, S("abcdefghijklmnopqrst"), 0, 10, 1);
- test(S("abcdefghij"), 1, 8, S("abcdefghijklmnopqrst"), 0, 19, 1);
- test(S("abcdefghij"), 1, 8, S("abcdefghijklmnopqrst"), 0, 20, 1);
- test(S("abcdefghij"), 1, 8, S("abcdefghijklmnopqrst"), 0, 21, 1);
- test(S("abcdefghij"), 1, 8, S("abcdefghijklmnopqrst"), 1, 0, 8);
- test(S("abcdefghij"), 1, 8, S("abcdefghijklmnopqrst"), 1, 1, 7);
- test(S("abcdefghij"), 1, 8, S("abcdefghijklmnopqrst"), 1, 9, -1);
- test(S("abcdefghij"), 1, 8, S("abcdefghijklmnopqrst"), 1, 18, -10);
- test(S("abcdefghij"), 1, 8, S("abcdefghijklmnopqrst"), 1, 19, -11);
- test(S("abcdefghij"), 1, 8, S("abcdefghijklmnopqrst"), 1, 20, -11);
- test(S("abcdefghij"), 1, 8, S("abcdefghijklmnopqrst"), 10, 0, 8);
- test(S("abcdefghij"), 1, 8, S("abcdefghijklmnopqrst"), 10, 1, -9);
- test(S("abcdefghij"), 1, 8, S("abcdefghijklmnopqrst"), 10, 5, -9);
- test(S("abcdefghij"), 1, 8, S("abcdefghijklmnopqrst"), 10, 9, -9);
- test(S("abcdefghij"), 1, 8, S("abcdefghijklmnopqrst"), 10, 10, -9);
- test(S("abcdefghij"), 1, 8, S("abcdefghijklmnopqrst"), 10, 11, -9);
- test(S("abcdefghij"), 1, 8, S("abcdefghijklmnopqrst"), 19, 0, 8);
- test(S("abcdefghij"), 1, 8, S("abcdefghijklmnopqrst"), 19, 1, -18);
- test(S("abcdefghij"), 1, 8, S("abcdefghijklmnopqrst"), 19, 2, -18);
- test(S("abcdefghij"), 1, 8, S("abcdefghijklmnopqrst"), 20, 0, 8);
- test(S("abcdefghij"), 1, 8, S("abcdefghijklmnopqrst"), 20, 1, 8);
- test(S("abcdefghij"), 1, 8, S("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghij"), 1, 9, S(""), 0, 0, 9);
- test(S("abcdefghij"), 1, 9, S(""), 0, 1, 9);
- test(S("abcdefghij"), 1, 9, S(""), 1, 0, 0);
- test(S("abcdefghij"), 1, 9, S("abcde"), 0, 0, 9);
- test(S("abcdefghij"), 1, 9, S("abcde"), 0, 1, 1);
- test(S("abcdefghij"), 1, 9, S("abcde"), 0, 2, 1);
- test(S("abcdefghij"), 1, 9, S("abcde"), 0, 4, 1);
- test(S("abcdefghij"), 1, 9, S("abcde"), 0, 5, 1);
- test(S("abcdefghij"), 1, 9, S("abcde"), 0, 6, 1);
- test(S("abcdefghij"), 1, 9, S("abcde"), 1, 0, 9);
- test(S("abcdefghij"), 1, 9, S("abcde"), 1, 1, 8);
- test(S("abcdefghij"), 1, 9, S("abcde"), 1, 2, 7);
- test(S("abcdefghij"), 1, 9, S("abcde"), 1, 3, 6);
- test(S("abcdefghij"), 1, 9, S("abcde"), 1, 4, 5);
- test(S("abcdefghij"), 1, 9, S("abcde"), 1, 5, 5);
- test(S("abcdefghij"), 1, 9, S("abcde"), 2, 0, 9);
- test(S("abcdefghij"), 1, 9, S("abcde"), 2, 1, -1);
- test(S("abcdefghij"), 1, 9, S("abcde"), 2, 2, -1);
- test(S("abcdefghij"), 1, 9, S("abcde"), 2, 3, -1);
- test(S("abcdefghij"), 1, 9, S("abcde"), 2, 4, -1);
- test(S("abcdefghij"), 1, 9, S("abcde"), 4, 0, 9);
- test(S("abcdefghij"), 1, 9, S("abcde"), 4, 1, -3);
- test(S("abcdefghij"), 1, 9, S("abcde"), 4, 2, -3);
- test(S("abcdefghij"), 1, 9, S("abcde"), 5, 0, 9);
- test(S("abcdefghij"), 1, 9, S("abcde"), 5, 1, 9);
- test(S("abcdefghij"), 1, 9, S("abcde"), 6, 0, 0);
- test(S("abcdefghij"), 1, 9, S("abcdefghij"), 0, 0, 9);
- test(S("abcdefghij"), 1, 9, S("abcdefghij"), 0, 1, 1);
- test(S("abcdefghij"), 1, 9, S("abcdefghij"), 0, 5, 1);
- test(S("abcdefghij"), 1, 9, S("abcdefghij"), 0, 9, 1);
- test(S("abcdefghij"), 1, 9, S("abcdefghij"), 0, 10, 1);
- test(S("abcdefghij"), 1, 9, S("abcdefghij"), 0, 11, 1);
- test(S("abcdefghij"), 1, 9, S("abcdefghij"), 1, 0, 9);
- test(S("abcdefghij"), 1, 9, S("abcdefghij"), 1, 1, 8);
- test(S("abcdefghij"), 1, 9, S("abcdefghij"), 1, 4, 5);
- test(S("abcdefghij"), 1, 9, S("abcdefghij"), 1, 8, 1);
+TEST_CONSTEXPR_CXX20 bool test26() {
+ test(S("abcdefghij"), 1, 8, S("abcde"), 1, 1, 7);
+ test(S("abcdefghij"), 1, 8, S("abcde"), 1, 2, 6);
+ test(S("abcdefghij"), 1, 8, S("abcde"), 1, 3, 5);
+ test(S("abcdefghij"), 1, 8, S("abcde"), 1, 4, 4);
+ test(S("abcdefghij"), 1, 8, S("abcde"), 1, 5, 4);
+ test(S("abcdefghij"), 1, 8, S("abcde"), 2, 0, 8);
+ test(S("abcdefghij"), 1, 8, S("abcde"), 2, 1, -1);
+ test(S("abcdefghij"), 1, 8, S("abcde"), 2, 2, -1);
+ test(S("abcdefghij"), 1, 8, S("abcde"), 2, 3, -1);
+ test(S("abcdefghij"), 1, 8, S("abcde"), 2, 4, -1);
+ test(S("abcdefghij"), 1, 8, S("abcde"), 4, 0, 8);
+ test(S("abcdefghij"), 1, 8, S("abcde"), 4, 1, -3);
+ test(S("abcdefghij"), 1, 8, S("abcde"), 4, 2, -3);
+ test(S("abcdefghij"), 1, 8, S("abcde"), 5, 0, 8);
+ test(S("abcdefghij"), 1, 8, S("abcde"), 5, 1, 8);
+ test(S("abcdefghij"), 1, 8, S("abcde"), 6, 0, 0);
+ test(S("abcdefghij"), 1, 8, S("abcdefghij"), 0, 0, 8);
+ test(S("abcdefghij"), 1, 8, S("abcdefghij"), 0, 1, 1);
+ test(S("abcdefghij"), 1, 8, S("abcdefghij"), 0, 5, 1);
+ test(S("abcdefghij"), 1, 8, S("abcdefghij"), 0, 9, 1);
+ test(S("abcdefghij"), 1, 8, S("abcdefghij"), 0, 10, 1);
+ test(S("abcdefghij"), 1, 8, S("abcdefghij"), 0, 11, 1);
+ test(S("abcdefghij"), 1, 8, S("abcdefghij"), 1, 0, 8);
+ test(S("abcdefghij"), 1, 8, S("abcdefghij"), 1, 1, 7);
+ test(S("abcdefghij"), 1, 8, S("abcdefghij"), 1, 4, 4);
+ test(S("abcdefghij"), 1, 8, S("abcdefghij"), 1, 8, 0);
+ test(S("abcdefghij"), 1, 8, S("abcdefghij"), 1, 9, -1);
+ test(S("abcdefghij"), 1, 8, S("abcdefghij"), 1, 10, -1);
+ test(S("abcdefghij"), 1, 8, S("abcdefghij"), 5, 0, 8);
+ test(S("abcdefghij"), 1, 8, S("abcdefghij"), 5, 1, -4);
+ test(S("abcdefghij"), 1, 8, S("abcdefghij"), 5, 2, -4);
+ test(S("abcdefghij"), 1, 8, S("abcdefghij"), 5, 4, -4);
+ test(S("abcdefghij"), 1, 8, S("abcdefghij"), 5, 5, -4);
+ test(S("abcdefghij"), 1, 8, S("abcdefghij"), 5, 6, -4);
+ test(S("abcdefghij"), 1, 8, S("abcdefghij"), 9, 0, 8);
+ test(S("abcdefghij"), 1, 8, S("abcdefghij"), 9, 1, -8);
+ test(S("abcdefghij"), 1, 8, S("abcdefghij"), 9, 2, -8);
+ test(S("abcdefghij"), 1, 8, S("abcdefghij"), 10, 0, 8);
+ test(S("abcdefghij"), 1, 8, S("abcdefghij"), 10, 1, 8);
+ test(S("abcdefghij"), 1, 8, S("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghij"), 1, 8, S("abcdefghijklmnopqrst"), 0, 0, 8);
+ test(S("abcdefghij"), 1, 8, S("abcdefghijklmnopqrst"), 0, 1, 1);
+ test(S("abcdefghij"), 1, 8, S("abcdefghijklmnopqrst"), 0, 10, 1);
+ test(S("abcdefghij"), 1, 8, S("abcdefghijklmnopqrst"), 0, 19, 1);
+ test(S("abcdefghij"), 1, 8, S("abcdefghijklmnopqrst"), 0, 20, 1);
+ test(S("abcdefghij"), 1, 8, S("abcdefghijklmnopqrst"), 0, 21, 1);
+ test(S("abcdefghij"), 1, 8, S("abcdefghijklmnopqrst"), 1, 0, 8);
+ test(S("abcdefghij"), 1, 8, S("abcdefghijklmnopqrst"), 1, 1, 7);
+ test(S("abcdefghij"), 1, 8, S("abcdefghijklmnopqrst"), 1, 9, -1);
+ test(S("abcdefghij"), 1, 8, S("abcdefghijklmnopqrst"), 1, 18, -10);
+ test(S("abcdefghij"), 1, 8, S("abcdefghijklmnopqrst"), 1, 19, -11);
+ test(S("abcdefghij"), 1, 8, S("abcdefghijklmnopqrst"), 1, 20, -11);
+ test(S("abcdefghij"), 1, 8, S("abcdefghijklmnopqrst"), 10, 0, 8);
+ test(S("abcdefghij"), 1, 8, S("abcdefghijklmnopqrst"), 10, 1, -9);
+ test(S("abcdefghij"), 1, 8, S("abcdefghijklmnopqrst"), 10, 5, -9);
+ test(S("abcdefghij"), 1, 8, S("abcdefghijklmnopqrst"), 10, 9, -9);
+ test(S("abcdefghij"), 1, 8, S("abcdefghijklmnopqrst"), 10, 10, -9);
+ test(S("abcdefghij"), 1, 8, S("abcdefghijklmnopqrst"), 10, 11, -9);
+ test(S("abcdefghij"), 1, 8, S("abcdefghijklmnopqrst"), 19, 0, 8);
+ test(S("abcdefghij"), 1, 8, S("abcdefghijklmnopqrst"), 19, 1, -18);
+ test(S("abcdefghij"), 1, 8, S("abcdefghijklmnopqrst"), 19, 2, -18);
+ test(S("abcdefghij"), 1, 8, S("abcdefghijklmnopqrst"), 20, 0, 8);
+ test(S("abcdefghij"), 1, 8, S("abcdefghijklmnopqrst"), 20, 1, 8);
+ test(S("abcdefghij"), 1, 8, S("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghij"), 1, 9, S(""), 0, 0, 9);
+ test(S("abcdefghij"), 1, 9, S(""), 0, 1, 9);
+ test(S("abcdefghij"), 1, 9, S(""), 1, 0, 0);
+ test(S("abcdefghij"), 1, 9, S("abcde"), 0, 0, 9);
+ test(S("abcdefghij"), 1, 9, S("abcde"), 0, 1, 1);
+ test(S("abcdefghij"), 1, 9, S("abcde"), 0, 2, 1);
+ test(S("abcdefghij"), 1, 9, S("abcde"), 0, 4, 1);
+ test(S("abcdefghij"), 1, 9, S("abcde"), 0, 5, 1);
+ test(S("abcdefghij"), 1, 9, S("abcde"), 0, 6, 1);
+ test(S("abcdefghij"), 1, 9, S("abcde"), 1, 0, 9);
+ test(S("abcdefghij"), 1, 9, S("abcde"), 1, 1, 8);
+ test(S("abcdefghij"), 1, 9, S("abcde"), 1, 2, 7);
+ test(S("abcdefghij"), 1, 9, S("abcde"), 1, 3, 6);
+ test(S("abcdefghij"), 1, 9, S("abcde"), 1, 4, 5);
+ test(S("abcdefghij"), 1, 9, S("abcde"), 1, 5, 5);
+ test(S("abcdefghij"), 1, 9, S("abcde"), 2, 0, 9);
+ test(S("abcdefghij"), 1, 9, S("abcde"), 2, 1, -1);
+ test(S("abcdefghij"), 1, 9, S("abcde"), 2, 2, -1);
+ test(S("abcdefghij"), 1, 9, S("abcde"), 2, 3, -1);
+ test(S("abcdefghij"), 1, 9, S("abcde"), 2, 4, -1);
+ test(S("abcdefghij"), 1, 9, S("abcde"), 4, 0, 9);
+ test(S("abcdefghij"), 1, 9, S("abcde"), 4, 1, -3);
+ test(S("abcdefghij"), 1, 9, S("abcde"), 4, 2, -3);
+ test(S("abcdefghij"), 1, 9, S("abcde"), 5, 0, 9);
+ test(S("abcdefghij"), 1, 9, S("abcde"), 5, 1, 9);
+ test(S("abcdefghij"), 1, 9, S("abcde"), 6, 0, 0);
+ test(S("abcdefghij"), 1, 9, S("abcdefghij"), 0, 0, 9);
+ test(S("abcdefghij"), 1, 9, S("abcdefghij"), 0, 1, 1);
+ test(S("abcdefghij"), 1, 9, S("abcdefghij"), 0, 5, 1);
+ test(S("abcdefghij"), 1, 9, S("abcdefghij"), 0, 9, 1);
+ test(S("abcdefghij"), 1, 9, S("abcdefghij"), 0, 10, 1);
+ test(S("abcdefghij"), 1, 9, S("abcdefghij"), 0, 11, 1);
+ test(S("abcdefghij"), 1, 9, S("abcdefghij"), 1, 0, 9);
+ test(S("abcdefghij"), 1, 9, S("abcdefghij"), 1, 1, 8);
+ test(S("abcdefghij"), 1, 9, S("abcdefghij"), 1, 4, 5);
+ test(S("abcdefghij"), 1, 9, S("abcdefghij"), 1, 8, 1);
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test27()
-{
- test(S("abcdefghij"), 1, 9, S("abcdefghij"), 1, 9, 0);
- test(S("abcdefghij"), 1, 9, S("abcdefghij"), 1, 10, 0);
- test(S("abcdefghij"), 1, 9, S("abcdefghij"), 5, 0, 9);
- test(S("abcdefghij"), 1, 9, S("abcdefghij"), 5, 1, -4);
- test(S("abcdefghij"), 1, 9, S("abcdefghij"), 5, 2, -4);
- test(S("abcdefghij"), 1, 9, S("abcdefghij"), 5, 4, -4);
- test(S("abcdefghij"), 1, 9, S("abcdefghij"), 5, 5, -4);
- test(S("abcdefghij"), 1, 9, S("abcdefghij"), 5, 6, -4);
- test(S("abcdefghij"), 1, 9, S("abcdefghij"), 9, 0, 9);
- test(S("abcdefghij"), 1, 9, S("abcdefghij"), 9, 1, -8);
- test(S("abcdefghij"), 1, 9, S("abcdefghij"), 9, 2, -8);
- test(S("abcdefghij"), 1, 9, S("abcdefghij"), 10, 0, 9);
- test(S("abcdefghij"), 1, 9, S("abcdefghij"), 10, 1, 9);
- test(S("abcdefghij"), 1, 9, S("abcdefghij"), 11, 0, 0);
- test(S("abcdefghij"), 1, 9, S("abcdefghijklmnopqrst"), 0, 0, 9);
- test(S("abcdefghij"), 1, 9, S("abcdefghijklmnopqrst"), 0, 1, 1);
- test(S("abcdefghij"), 1, 9, S("abcdefghijklmnopqrst"), 0, 10, 1);
- test(S("abcdefghij"), 1, 9, S("abcdefghijklmnopqrst"), 0, 19, 1);
- test(S("abcdefghij"), 1, 9, S("abcdefghijklmnopqrst"), 0, 20, 1);
- test(S("abcdefghij"), 1, 9, S("abcdefghijklmnopqrst"), 0, 21, 1);
- test(S("abcdefghij"), 1, 9, S("abcdefghijklmnopqrst"), 1, 0, 9);
- test(S("abcdefghij"), 1, 9, S("abcdefghijklmnopqrst"), 1, 1, 8);
- test(S("abcdefghij"), 1, 9, S("abcdefghijklmnopqrst"), 1, 9, 0);
- test(S("abcdefghij"), 1, 9, S("abcdefghijklmnopqrst"), 1, 18, -9);
- test(S("abcdefghij"), 1, 9, S("abcdefghijklmnopqrst"), 1, 19, -10);
- test(S("abcdefghij"), 1, 9, S("abcdefghijklmnopqrst"), 1, 20, -10);
- test(S("abcdefghij"), 1, 9, S("abcdefghijklmnopqrst"), 10, 0, 9);
- test(S("abcdefghij"), 1, 9, S("abcdefghijklmnopqrst"), 10, 1, -9);
- test(S("abcdefghij"), 1, 9, S("abcdefghijklmnopqrst"), 10, 5, -9);
- test(S("abcdefghij"), 1, 9, S("abcdefghijklmnopqrst"), 10, 9, -9);
- test(S("abcdefghij"), 1, 9, S("abcdefghijklmnopqrst"), 10, 10, -9);
- test(S("abcdefghij"), 1, 9, S("abcdefghijklmnopqrst"), 10, 11, -9);
- test(S("abcdefghij"), 1, 9, S("abcdefghijklmnopqrst"), 19, 0, 9);
- test(S("abcdefghij"), 1, 9, S("abcdefghijklmnopqrst"), 19, 1, -18);
- test(S("abcdefghij"), 1, 9, S("abcdefghijklmnopqrst"), 19, 2, -18);
- test(S("abcdefghij"), 1, 9, S("abcdefghijklmnopqrst"), 20, 0, 9);
- test(S("abcdefghij"), 1, 9, S("abcdefghijklmnopqrst"), 20, 1, 9);
- test(S("abcdefghij"), 1, 9, S("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghij"), 1, 10, S(""), 0, 0, 9);
- test(S("abcdefghij"), 1, 10, S(""), 0, 1, 9);
- test(S("abcdefghij"), 1, 10, S(""), 1, 0, 0);
- test(S("abcdefghij"), 1, 10, S("abcde"), 0, 0, 9);
- test(S("abcdefghij"), 1, 10, S("abcde"), 0, 1, 1);
- test(S("abcdefghij"), 1, 10, S("abcde"), 0, 2, 1);
- test(S("abcdefghij"), 1, 10, S("abcde"), 0, 4, 1);
- test(S("abcdefghij"), 1, 10, S("abcde"), 0, 5, 1);
- test(S("abcdefghij"), 1, 10, S("abcde"), 0, 6, 1);
- test(S("abcdefghij"), 1, 10, S("abcde"), 1, 0, 9);
- test(S("abcdefghij"), 1, 10, S("abcde"), 1, 1, 8);
- test(S("abcdefghij"), 1, 10, S("abcde"), 1, 2, 7);
- test(S("abcdefghij"), 1, 10, S("abcde"), 1, 3, 6);
- test(S("abcdefghij"), 1, 10, S("abcde"), 1, 4, 5);
- test(S("abcdefghij"), 1, 10, S("abcde"), 1, 5, 5);
- test(S("abcdefghij"), 1, 10, S("abcde"), 2, 0, 9);
- test(S("abcdefghij"), 1, 10, S("abcde"), 2, 1, -1);
- test(S("abcdefghij"), 1, 10, S("abcde"), 2, 2, -1);
- test(S("abcdefghij"), 1, 10, S("abcde"), 2, 3, -1);
- test(S("abcdefghij"), 1, 10, S("abcde"), 2, 4, -1);
- test(S("abcdefghij"), 1, 10, S("abcde"), 4, 0, 9);
- test(S("abcdefghij"), 1, 10, S("abcde"), 4, 1, -3);
- test(S("abcdefghij"), 1, 10, S("abcde"), 4, 2, -3);
- test(S("abcdefghij"), 1, 10, S("abcde"), 5, 0, 9);
- test(S("abcdefghij"), 1, 10, S("abcde"), 5, 1, 9);
- test(S("abcdefghij"), 1, 10, S("abcde"), 6, 0, 0);
- test(S("abcdefghij"), 1, 10, S("abcdefghij"), 0, 0, 9);
- test(S("abcdefghij"), 1, 10, S("abcdefghij"), 0, 1, 1);
- test(S("abcdefghij"), 1, 10, S("abcdefghij"), 0, 5, 1);
- test(S("abcdefghij"), 1, 10, S("abcdefghij"), 0, 9, 1);
- test(S("abcdefghij"), 1, 10, S("abcdefghij"), 0, 10, 1);
- test(S("abcdefghij"), 1, 10, S("abcdefghij"), 0, 11, 1);
- test(S("abcdefghij"), 1, 10, S("abcdefghij"), 1, 0, 9);
- test(S("abcdefghij"), 1, 10, S("abcdefghij"), 1, 1, 8);
- test(S("abcdefghij"), 1, 10, S("abcdefghij"), 1, 4, 5);
- test(S("abcdefghij"), 1, 10, S("abcdefghij"), 1, 8, 1);
- test(S("abcdefghij"), 1, 10, S("abcdefghij"), 1, 9, 0);
- test(S("abcdefghij"), 1, 10, S("abcdefghij"), 1, 10, 0);
- test(S("abcdefghij"), 1, 10, S("abcdefghij"), 5, 0, 9);
- test(S("abcdefghij"), 1, 10, S("abcdefghij"), 5, 1, -4);
- test(S("abcdefghij"), 1, 10, S("abcdefghij"), 5, 2, -4);
- test(S("abcdefghij"), 1, 10, S("abcdefghij"), 5, 4, -4);
- test(S("abcdefghij"), 1, 10, S("abcdefghij"), 5, 5, -4);
- test(S("abcdefghij"), 1, 10, S("abcdefghij"), 5, 6, -4);
- test(S("abcdefghij"), 1, 10, S("abcdefghij"), 9, 0, 9);
- test(S("abcdefghij"), 1, 10, S("abcdefghij"), 9, 1, -8);
- test(S("abcdefghij"), 1, 10, S("abcdefghij"), 9, 2, -8);
- test(S("abcdefghij"), 1, 10, S("abcdefghij"), 10, 0, 9);
- test(S("abcdefghij"), 1, 10, S("abcdefghij"), 10, 1, 9);
- test(S("abcdefghij"), 1, 10, S("abcdefghij"), 11, 0, 0);
- test(S("abcdefghij"), 1, 10, S("abcdefghijklmnopqrst"), 0, 0, 9);
- test(S("abcdefghij"), 1, 10, S("abcdefghijklmnopqrst"), 0, 1, 1);
- test(S("abcdefghij"), 1, 10, S("abcdefghijklmnopqrst"), 0, 10, 1);
- test(S("abcdefghij"), 1, 10, S("abcdefghijklmnopqrst"), 0, 19, 1);
- test(S("abcdefghij"), 1, 10, S("abcdefghijklmnopqrst"), 0, 20, 1);
- test(S("abcdefghij"), 1, 10, S("abcdefghijklmnopqrst"), 0, 21, 1);
- test(S("abcdefghij"), 1, 10, S("abcdefghijklmnopqrst"), 1, 0, 9);
- test(S("abcdefghij"), 1, 10, S("abcdefghijklmnopqrst"), 1, 1, 8);
- test(S("abcdefghij"), 1, 10, S("abcdefghijklmnopqrst"), 1, 9, 0);
- test(S("abcdefghij"), 1, 10, S("abcdefghijklmnopqrst"), 1, 18, -9);
- test(S("abcdefghij"), 1, 10, S("abcdefghijklmnopqrst"), 1, 19, -10);
- test(S("abcdefghij"), 1, 10, S("abcdefghijklmnopqrst"), 1, 20, -10);
+TEST_CONSTEXPR_CXX20 bool test27() {
+ test(S("abcdefghij"), 1, 9, S("abcdefghij"), 1, 9, 0);
+ test(S("abcdefghij"), 1, 9, S("abcdefghij"), 1, 10, 0);
+ test(S("abcdefghij"), 1, 9, S("abcdefghij"), 5, 0, 9);
+ test(S("abcdefghij"), 1, 9, S("abcdefghij"), 5, 1, -4);
+ test(S("abcdefghij"), 1, 9, S("abcdefghij"), 5, 2, -4);
+ test(S("abcdefghij"), 1, 9, S("abcdefghij"), 5, 4, -4);
+ test(S("abcdefghij"), 1, 9, S("abcdefghij"), 5, 5, -4);
+ test(S("abcdefghij"), 1, 9, S("abcdefghij"), 5, 6, -4);
+ test(S("abcdefghij"), 1, 9, S("abcdefghij"), 9, 0, 9);
+ test(S("abcdefghij"), 1, 9, S("abcdefghij"), 9, 1, -8);
+ test(S("abcdefghij"), 1, 9, S("abcdefghij"), 9, 2, -8);
+ test(S("abcdefghij"), 1, 9, S("abcdefghij"), 10, 0, 9);
+ test(S("abcdefghij"), 1, 9, S("abcdefghij"), 10, 1, 9);
+ test(S("abcdefghij"), 1, 9, S("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghij"), 1, 9, S("abcdefghijklmnopqrst"), 0, 0, 9);
+ test(S("abcdefghij"), 1, 9, S("abcdefghijklmnopqrst"), 0, 1, 1);
+ test(S("abcdefghij"), 1, 9, S("abcdefghijklmnopqrst"), 0, 10, 1);
+ test(S("abcdefghij"), 1, 9, S("abcdefghijklmnopqrst"), 0, 19, 1);
+ test(S("abcdefghij"), 1, 9, S("abcdefghijklmnopqrst"), 0, 20, 1);
+ test(S("abcdefghij"), 1, 9, S("abcdefghijklmnopqrst"), 0, 21, 1);
+ test(S("abcdefghij"), 1, 9, S("abcdefghijklmnopqrst"), 1, 0, 9);
+ test(S("abcdefghij"), 1, 9, S("abcdefghijklmnopqrst"), 1, 1, 8);
+ test(S("abcdefghij"), 1, 9, S("abcdefghijklmnopqrst"), 1, 9, 0);
+ test(S("abcdefghij"), 1, 9, S("abcdefghijklmnopqrst"), 1, 18, -9);
+ test(S("abcdefghij"), 1, 9, S("abcdefghijklmnopqrst"), 1, 19, -10);
+ test(S("abcdefghij"), 1, 9, S("abcdefghijklmnopqrst"), 1, 20, -10);
+ test(S("abcdefghij"), 1, 9, S("abcdefghijklmnopqrst"), 10, 0, 9);
+ test(S("abcdefghij"), 1, 9, S("abcdefghijklmnopqrst"), 10, 1, -9);
+ test(S("abcdefghij"), 1, 9, S("abcdefghijklmnopqrst"), 10, 5, -9);
+ test(S("abcdefghij"), 1, 9, S("abcdefghijklmnopqrst"), 10, 9, -9);
+ test(S("abcdefghij"), 1, 9, S("abcdefghijklmnopqrst"), 10, 10, -9);
+ test(S("abcdefghij"), 1, 9, S("abcdefghijklmnopqrst"), 10, 11, -9);
+ test(S("abcdefghij"), 1, 9, S("abcdefghijklmnopqrst"), 19, 0, 9);
+ test(S("abcdefghij"), 1, 9, S("abcdefghijklmnopqrst"), 19, 1, -18);
+ test(S("abcdefghij"), 1, 9, S("abcdefghijklmnopqrst"), 19, 2, -18);
+ test(S("abcdefghij"), 1, 9, S("abcdefghijklmnopqrst"), 20, 0, 9);
+ test(S("abcdefghij"), 1, 9, S("abcdefghijklmnopqrst"), 20, 1, 9);
+ test(S("abcdefghij"), 1, 9, S("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghij"), 1, 10, S(""), 0, 0, 9);
+ test(S("abcdefghij"), 1, 10, S(""), 0, 1, 9);
+ test(S("abcdefghij"), 1, 10, S(""), 1, 0, 0);
+ test(S("abcdefghij"), 1, 10, S("abcde"), 0, 0, 9);
+ test(S("abcdefghij"), 1, 10, S("abcde"), 0, 1, 1);
+ test(S("abcdefghij"), 1, 10, S("abcde"), 0, 2, 1);
+ test(S("abcdefghij"), 1, 10, S("abcde"), 0, 4, 1);
+ test(S("abcdefghij"), 1, 10, S("abcde"), 0, 5, 1);
+ test(S("abcdefghij"), 1, 10, S("abcde"), 0, 6, 1);
+ test(S("abcdefghij"), 1, 10, S("abcde"), 1, 0, 9);
+ test(S("abcdefghij"), 1, 10, S("abcde"), 1, 1, 8);
+ test(S("abcdefghij"), 1, 10, S("abcde"), 1, 2, 7);
+ test(S("abcdefghij"), 1, 10, S("abcde"), 1, 3, 6);
+ test(S("abcdefghij"), 1, 10, S("abcde"), 1, 4, 5);
+ test(S("abcdefghij"), 1, 10, S("abcde"), 1, 5, 5);
+ test(S("abcdefghij"), 1, 10, S("abcde"), 2, 0, 9);
+ test(S("abcdefghij"), 1, 10, S("abcde"), 2, 1, -1);
+ test(S("abcdefghij"), 1, 10, S("abcde"), 2, 2, -1);
+ test(S("abcdefghij"), 1, 10, S("abcde"), 2, 3, -1);
+ test(S("abcdefghij"), 1, 10, S("abcde"), 2, 4, -1);
+ test(S("abcdefghij"), 1, 10, S("abcde"), 4, 0, 9);
+ test(S("abcdefghij"), 1, 10, S("abcde"), 4, 1, -3);
+ test(S("abcdefghij"), 1, 10, S("abcde"), 4, 2, -3);
+ test(S("abcdefghij"), 1, 10, S("abcde"), 5, 0, 9);
+ test(S("abcdefghij"), 1, 10, S("abcde"), 5, 1, 9);
+ test(S("abcdefghij"), 1, 10, S("abcde"), 6, 0, 0);
+ test(S("abcdefghij"), 1, 10, S("abcdefghij"), 0, 0, 9);
+ test(S("abcdefghij"), 1, 10, S("abcdefghij"), 0, 1, 1);
+ test(S("abcdefghij"), 1, 10, S("abcdefghij"), 0, 5, 1);
+ test(S("abcdefghij"), 1, 10, S("abcdefghij"), 0, 9, 1);
+ test(S("abcdefghij"), 1, 10, S("abcdefghij"), 0, 10, 1);
+ test(S("abcdefghij"), 1, 10, S("abcdefghij"), 0, 11, 1);
+ test(S("abcdefghij"), 1, 10, S("abcdefghij"), 1, 0, 9);
+ test(S("abcdefghij"), 1, 10, S("abcdefghij"), 1, 1, 8);
+ test(S("abcdefghij"), 1, 10, S("abcdefghij"), 1, 4, 5);
+ test(S("abcdefghij"), 1, 10, S("abcdefghij"), 1, 8, 1);
+ test(S("abcdefghij"), 1, 10, S("abcdefghij"), 1, 9, 0);
+ test(S("abcdefghij"), 1, 10, S("abcdefghij"), 1, 10, 0);
+ test(S("abcdefghij"), 1, 10, S("abcdefghij"), 5, 0, 9);
+ test(S("abcdefghij"), 1, 10, S("abcdefghij"), 5, 1, -4);
+ test(S("abcdefghij"), 1, 10, S("abcdefghij"), 5, 2, -4);
+ test(S("abcdefghij"), 1, 10, S("abcdefghij"), 5, 4, -4);
+ test(S("abcdefghij"), 1, 10, S("abcdefghij"), 5, 5, -4);
+ test(S("abcdefghij"), 1, 10, S("abcdefghij"), 5, 6, -4);
+ test(S("abcdefghij"), 1, 10, S("abcdefghij"), 9, 0, 9);
+ test(S("abcdefghij"), 1, 10, S("abcdefghij"), 9, 1, -8);
+ test(S("abcdefghij"), 1, 10, S("abcdefghij"), 9, 2, -8);
+ test(S("abcdefghij"), 1, 10, S("abcdefghij"), 10, 0, 9);
+ test(S("abcdefghij"), 1, 10, S("abcdefghij"), 10, 1, 9);
+ test(S("abcdefghij"), 1, 10, S("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghij"), 1, 10, S("abcdefghijklmnopqrst"), 0, 0, 9);
+ test(S("abcdefghij"), 1, 10, S("abcdefghijklmnopqrst"), 0, 1, 1);
+ test(S("abcdefghij"), 1, 10, S("abcdefghijklmnopqrst"), 0, 10, 1);
+ test(S("abcdefghij"), 1, 10, S("abcdefghijklmnopqrst"), 0, 19, 1);
+ test(S("abcdefghij"), 1, 10, S("abcdefghijklmnopqrst"), 0, 20, 1);
+ test(S("abcdefghij"), 1, 10, S("abcdefghijklmnopqrst"), 0, 21, 1);
+ test(S("abcdefghij"), 1, 10, S("abcdefghijklmnopqrst"), 1, 0, 9);
+ test(S("abcdefghij"), 1, 10, S("abcdefghijklmnopqrst"), 1, 1, 8);
+ test(S("abcdefghij"), 1, 10, S("abcdefghijklmnopqrst"), 1, 9, 0);
+ test(S("abcdefghij"), 1, 10, S("abcdefghijklmnopqrst"), 1, 18, -9);
+ test(S("abcdefghij"), 1, 10, S("abcdefghijklmnopqrst"), 1, 19, -10);
+ test(S("abcdefghij"), 1, 10, S("abcdefghijklmnopqrst"), 1, 20, -10);
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test28()
-{
- test(S("abcdefghij"), 1, 10, S("abcdefghijklmnopqrst"), 10, 0, 9);
- test(S("abcdefghij"), 1, 10, S("abcdefghijklmnopqrst"), 10, 1, -9);
- test(S("abcdefghij"), 1, 10, S("abcdefghijklmnopqrst"), 10, 5, -9);
- test(S("abcdefghij"), 1, 10, S("abcdefghijklmnopqrst"), 10, 9, -9);
- test(S("abcdefghij"), 1, 10, S("abcdefghijklmnopqrst"), 10, 10, -9);
- test(S("abcdefghij"), 1, 10, S("abcdefghijklmnopqrst"), 10, 11, -9);
- test(S("abcdefghij"), 1, 10, S("abcdefghijklmnopqrst"), 19, 0, 9);
- test(S("abcdefghij"), 1, 10, S("abcdefghijklmnopqrst"), 19, 1, -18);
- test(S("abcdefghij"), 1, 10, S("abcdefghijklmnopqrst"), 19, 2, -18);
- test(S("abcdefghij"), 1, 10, S("abcdefghijklmnopqrst"), 20, 0, 9);
- test(S("abcdefghij"), 1, 10, S("abcdefghijklmnopqrst"), 20, 1, 9);
- test(S("abcdefghij"), 1, 10, S("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghij"), 5, 0, S(""), 0, 0, 0);
- test(S("abcdefghij"), 5, 0, S(""), 0, 1, 0);
- test(S("abcdefghij"), 5, 0, S(""), 1, 0, 0);
- test(S("abcdefghij"), 5, 0, S("abcde"), 0, 0, 0);
- test(S("abcdefghij"), 5, 0, S("abcde"), 0, 1, -1);
- test(S("abcdefghij"), 5, 0, S("abcde"), 0, 2, -2);
- test(S("abcdefghij"), 5, 0, S("abcde"), 0, 4, -4);
- test(S("abcdefghij"), 5, 0, S("abcde"), 0, 5, -5);
- test(S("abcdefghij"), 5, 0, S("abcde"), 0, 6, -5);
- test(S("abcdefghij"), 5, 0, S("abcde"), 1, 0, 0);
- test(S("abcdefghij"), 5, 0, S("abcde"), 1, 1, -1);
- test(S("abcdefghij"), 5, 0, S("abcde"), 1, 2, -2);
- test(S("abcdefghij"), 5, 0, S("abcde"), 1, 3, -3);
- test(S("abcdefghij"), 5, 0, S("abcde"), 1, 4, -4);
- test(S("abcdefghij"), 5, 0, S("abcde"), 1, 5, -4);
- test(S("abcdefghij"), 5, 0, S("abcde"), 2, 0, 0);
- test(S("abcdefghij"), 5, 0, S("abcde"), 2, 1, -1);
- test(S("abcdefghij"), 5, 0, S("abcde"), 2, 2, -2);
- test(S("abcdefghij"), 5, 0, S("abcde"), 2, 3, -3);
- test(S("abcdefghij"), 5, 0, S("abcde"), 2, 4, -3);
- test(S("abcdefghij"), 5, 0, S("abcde"), 4, 0, 0);
- test(S("abcdefghij"), 5, 0, S("abcde"), 4, 1, -1);
- test(S("abcdefghij"), 5, 0, S("abcde"), 4, 2, -1);
- test(S("abcdefghij"), 5, 0, S("abcde"), 5, 0, 0);
- test(S("abcdefghij"), 5, 0, S("abcde"), 5, 1, 0);
- test(S("abcdefghij"), 5, 0, S("abcde"), 6, 0, 0);
- test(S("abcdefghij"), 5, 0, S("abcdefghij"), 0, 0, 0);
- test(S("abcdefghij"), 5, 0, S("abcdefghij"), 0, 1, -1);
- test(S("abcdefghij"), 5, 0, S("abcdefghij"), 0, 5, -5);
- test(S("abcdefghij"), 5, 0, S("abcdefghij"), 0, 9, -9);
- test(S("abcdefghij"), 5, 0, S("abcdefghij"), 0, 10, -10);
- test(S("abcdefghij"), 5, 0, S("abcdefghij"), 0, 11, -10);
- test(S("abcdefghij"), 5, 0, S("abcdefghij"), 1, 0, 0);
- test(S("abcdefghij"), 5, 0, S("abcdefghij"), 1, 1, -1);
- test(S("abcdefghij"), 5, 0, S("abcdefghij"), 1, 4, -4);
- test(S("abcdefghij"), 5, 0, S("abcdefghij"), 1, 8, -8);
- test(S("abcdefghij"), 5, 0, S("abcdefghij"), 1, 9, -9);
- test(S("abcdefghij"), 5, 0, S("abcdefghij"), 1, 10, -9);
- test(S("abcdefghij"), 5, 0, S("abcdefghij"), 5, 0, 0);
- test(S("abcdefghij"), 5, 0, S("abcdefghij"), 5, 1, -1);
- test(S("abcdefghij"), 5, 0, S("abcdefghij"), 5, 2, -2);
- test(S("abcdefghij"), 5, 0, S("abcdefghij"), 5, 4, -4);
- test(S("abcdefghij"), 5, 0, S("abcdefghij"), 5, 5, -5);
- test(S("abcdefghij"), 5, 0, S("abcdefghij"), 5, 6, -5);
- test(S("abcdefghij"), 5, 0, S("abcdefghij"), 9, 0, 0);
- test(S("abcdefghij"), 5, 0, S("abcdefghij"), 9, 1, -1);
- test(S("abcdefghij"), 5, 0, S("abcdefghij"), 9, 2, -1);
- test(S("abcdefghij"), 5, 0, S("abcdefghij"), 10, 0, 0);
- test(S("abcdefghij"), 5, 0, S("abcdefghij"), 10, 1, 0);
- test(S("abcdefghij"), 5, 0, S("abcdefghij"), 11, 0, 0);
- test(S("abcdefghij"), 5, 0, S("abcdefghijklmnopqrst"), 0, 0, 0);
- test(S("abcdefghij"), 5, 0, S("abcdefghijklmnopqrst"), 0, 1, -1);
- test(S("abcdefghij"), 5, 0, S("abcdefghijklmnopqrst"), 0, 10, -10);
- test(S("abcdefghij"), 5, 0, S("abcdefghijklmnopqrst"), 0, 19, -19);
- test(S("abcdefghij"), 5, 0, S("abcdefghijklmnopqrst"), 0, 20, -20);
- test(S("abcdefghij"), 5, 0, S("abcdefghijklmnopqrst"), 0, 21, -20);
- test(S("abcdefghij"), 5, 0, S("abcdefghijklmnopqrst"), 1, 0, 0);
- test(S("abcdefghij"), 5, 0, S("abcdefghijklmnopqrst"), 1, 1, -1);
- test(S("abcdefghij"), 5, 0, S("abcdefghijklmnopqrst"), 1, 9, -9);
- test(S("abcdefghij"), 5, 0, S("abcdefghijklmnopqrst"), 1, 18, -18);
- test(S("abcdefghij"), 5, 0, S("abcdefghijklmnopqrst"), 1, 19, -19);
- test(S("abcdefghij"), 5, 0, S("abcdefghijklmnopqrst"), 1, 20, -19);
- test(S("abcdefghij"), 5, 0, S("abcdefghijklmnopqrst"), 10, 0, 0);
- test(S("abcdefghij"), 5, 0, S("abcdefghijklmnopqrst"), 10, 1, -1);
- test(S("abcdefghij"), 5, 0, S("abcdefghijklmnopqrst"), 10, 5, -5);
- test(S("abcdefghij"), 5, 0, S("abcdefghijklmnopqrst"), 10, 9, -9);
- test(S("abcdefghij"), 5, 0, S("abcdefghijklmnopqrst"), 10, 10, -10);
- test(S("abcdefghij"), 5, 0, S("abcdefghijklmnopqrst"), 10, 11, -10);
- test(S("abcdefghij"), 5, 0, S("abcdefghijklmnopqrst"), 19, 0, 0);
- test(S("abcdefghij"), 5, 0, S("abcdefghijklmnopqrst"), 19, 1, -1);
- test(S("abcdefghij"), 5, 0, S("abcdefghijklmnopqrst"), 19, 2, -1);
- test(S("abcdefghij"), 5, 0, S("abcdefghijklmnopqrst"), 20, 0, 0);
- test(S("abcdefghij"), 5, 0, S("abcdefghijklmnopqrst"), 20, 1, 0);
- test(S("abcdefghij"), 5, 0, S("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghij"), 5, 1, S(""), 0, 0, 1);
- test(S("abcdefghij"), 5, 1, S(""), 0, 1, 1);
- test(S("abcdefghij"), 5, 1, S(""), 1, 0, 0);
- test(S("abcdefghij"), 5, 1, S("abcde"), 0, 0, 1);
- test(S("abcdefghij"), 5, 1, S("abcde"), 0, 1, 5);
- test(S("abcdefghij"), 5, 1, S("abcde"), 0, 2, 5);
- test(S("abcdefghij"), 5, 1, S("abcde"), 0, 4, 5);
- test(S("abcdefghij"), 5, 1, S("abcde"), 0, 5, 5);
- test(S("abcdefghij"), 5, 1, S("abcde"), 0, 6, 5);
- test(S("abcdefghij"), 5, 1, S("abcde"), 1, 0, 1);
- test(S("abcdefghij"), 5, 1, S("abcde"), 1, 1, 4);
- test(S("abcdefghij"), 5, 1, S("abcde"), 1, 2, 4);
- test(S("abcdefghij"), 5, 1, S("abcde"), 1, 3, 4);
- test(S("abcdefghij"), 5, 1, S("abcde"), 1, 4, 4);
+TEST_CONSTEXPR_CXX20 bool test28() {
+ test(S("abcdefghij"), 1, 10, S("abcdefghijklmnopqrst"), 10, 0, 9);
+ test(S("abcdefghij"), 1, 10, S("abcdefghijklmnopqrst"), 10, 1, -9);
+ test(S("abcdefghij"), 1, 10, S("abcdefghijklmnopqrst"), 10, 5, -9);
+ test(S("abcdefghij"), 1, 10, S("abcdefghijklmnopqrst"), 10, 9, -9);
+ test(S("abcdefghij"), 1, 10, S("abcdefghijklmnopqrst"), 10, 10, -9);
+ test(S("abcdefghij"), 1, 10, S("abcdefghijklmnopqrst"), 10, 11, -9);
+ test(S("abcdefghij"), 1, 10, S("abcdefghijklmnopqrst"), 19, 0, 9);
+ test(S("abcdefghij"), 1, 10, S("abcdefghijklmnopqrst"), 19, 1, -18);
+ test(S("abcdefghij"), 1, 10, S("abcdefghijklmnopqrst"), 19, 2, -18);
+ test(S("abcdefghij"), 1, 10, S("abcdefghijklmnopqrst"), 20, 0, 9);
+ test(S("abcdefghij"), 1, 10, S("abcdefghijklmnopqrst"), 20, 1, 9);
+ test(S("abcdefghij"), 1, 10, S("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghij"), 5, 0, S(""), 0, 0, 0);
+ test(S("abcdefghij"), 5, 0, S(""), 0, 1, 0);
+ test(S("abcdefghij"), 5, 0, S(""), 1, 0, 0);
+ test(S("abcdefghij"), 5, 0, S("abcde"), 0, 0, 0);
+ test(S("abcdefghij"), 5, 0, S("abcde"), 0, 1, -1);
+ test(S("abcdefghij"), 5, 0, S("abcde"), 0, 2, -2);
+ test(S("abcdefghij"), 5, 0, S("abcde"), 0, 4, -4);
+ test(S("abcdefghij"), 5, 0, S("abcde"), 0, 5, -5);
+ test(S("abcdefghij"), 5, 0, S("abcde"), 0, 6, -5);
+ test(S("abcdefghij"), 5, 0, S("abcde"), 1, 0, 0);
+ test(S("abcdefghij"), 5, 0, S("abcde"), 1, 1, -1);
+ test(S("abcdefghij"), 5, 0, S("abcde"), 1, 2, -2);
+ test(S("abcdefghij"), 5, 0, S("abcde"), 1, 3, -3);
+ test(S("abcdefghij"), 5, 0, S("abcde"), 1, 4, -4);
+ test(S("abcdefghij"), 5, 0, S("abcde"), 1, 5, -4);
+ test(S("abcdefghij"), 5, 0, S("abcde"), 2, 0, 0);
+ test(S("abcdefghij"), 5, 0, S("abcde"), 2, 1, -1);
+ test(S("abcdefghij"), 5, 0, S("abcde"), 2, 2, -2);
+ test(S("abcdefghij"), 5, 0, S("abcde"), 2, 3, -3);
+ test(S("abcdefghij"), 5, 0, S("abcde"), 2, 4, -3);
+ test(S("abcdefghij"), 5, 0, S("abcde"), 4, 0, 0);
+ test(S("abcdefghij"), 5, 0, S("abcde"), 4, 1, -1);
+ test(S("abcdefghij"), 5, 0, S("abcde"), 4, 2, -1);
+ test(S("abcdefghij"), 5, 0, S("abcde"), 5, 0, 0);
+ test(S("abcdefghij"), 5, 0, S("abcde"), 5, 1, 0);
+ test(S("abcdefghij"), 5, 0, S("abcde"), 6, 0, 0);
+ test(S("abcdefghij"), 5, 0, S("abcdefghij"), 0, 0, 0);
+ test(S("abcdefghij"), 5, 0, S("abcdefghij"), 0, 1, -1);
+ test(S("abcdefghij"), 5, 0, S("abcdefghij"), 0, 5, -5);
+ test(S("abcdefghij"), 5, 0, S("abcdefghij"), 0, 9, -9);
+ test(S("abcdefghij"), 5, 0, S("abcdefghij"), 0, 10, -10);
+ test(S("abcdefghij"), 5, 0, S("abcdefghij"), 0, 11, -10);
+ test(S("abcdefghij"), 5, 0, S("abcdefghij"), 1, 0, 0);
+ test(S("abcdefghij"), 5, 0, S("abcdefghij"), 1, 1, -1);
+ test(S("abcdefghij"), 5, 0, S("abcdefghij"), 1, 4, -4);
+ test(S("abcdefghij"), 5, 0, S("abcdefghij"), 1, 8, -8);
+ test(S("abcdefghij"), 5, 0, S("abcdefghij"), 1, 9, -9);
+ test(S("abcdefghij"), 5, 0, S("abcdefghij"), 1, 10, -9);
+ test(S("abcdefghij"), 5, 0, S("abcdefghij"), 5, 0, 0);
+ test(S("abcdefghij"), 5, 0, S("abcdefghij"), 5, 1, -1);
+ test(S("abcdefghij"), 5, 0, S("abcdefghij"), 5, 2, -2);
+ test(S("abcdefghij"), 5, 0, S("abcdefghij"), 5, 4, -4);
+ test(S("abcdefghij"), 5, 0, S("abcdefghij"), 5, 5, -5);
+ test(S("abcdefghij"), 5, 0, S("abcdefghij"), 5, 6, -5);
+ test(S("abcdefghij"), 5, 0, S("abcdefghij"), 9, 0, 0);
+ test(S("abcdefghij"), 5, 0, S("abcdefghij"), 9, 1, -1);
+ test(S("abcdefghij"), 5, 0, S("abcdefghij"), 9, 2, -1);
+ test(S("abcdefghij"), 5, 0, S("abcdefghij"), 10, 0, 0);
+ test(S("abcdefghij"), 5, 0, S("abcdefghij"), 10, 1, 0);
+ test(S("abcdefghij"), 5, 0, S("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghij"), 5, 0, S("abcdefghijklmnopqrst"), 0, 0, 0);
+ test(S("abcdefghij"), 5, 0, S("abcdefghijklmnopqrst"), 0, 1, -1);
+ test(S("abcdefghij"), 5, 0, S("abcdefghijklmnopqrst"), 0, 10, -10);
+ test(S("abcdefghij"), 5, 0, S("abcdefghijklmnopqrst"), 0, 19, -19);
+ test(S("abcdefghij"), 5, 0, S("abcdefghijklmnopqrst"), 0, 20, -20);
+ test(S("abcdefghij"), 5, 0, S("abcdefghijklmnopqrst"), 0, 21, -20);
+ test(S("abcdefghij"), 5, 0, S("abcdefghijklmnopqrst"), 1, 0, 0);
+ test(S("abcdefghij"), 5, 0, S("abcdefghijklmnopqrst"), 1, 1, -1);
+ test(S("abcdefghij"), 5, 0, S("abcdefghijklmnopqrst"), 1, 9, -9);
+ test(S("abcdefghij"), 5, 0, S("abcdefghijklmnopqrst"), 1, 18, -18);
+ test(S("abcdefghij"), 5, 0, S("abcdefghijklmnopqrst"), 1, 19, -19);
+ test(S("abcdefghij"), 5, 0, S("abcdefghijklmnopqrst"), 1, 20, -19);
+ test(S("abcdefghij"), 5, 0, S("abcdefghijklmnopqrst"), 10, 0, 0);
+ test(S("abcdefghij"), 5, 0, S("abcdefghijklmnopqrst"), 10, 1, -1);
+ test(S("abcdefghij"), 5, 0, S("abcdefghijklmnopqrst"), 10, 5, -5);
+ test(S("abcdefghij"), 5, 0, S("abcdefghijklmnopqrst"), 10, 9, -9);
+ test(S("abcdefghij"), 5, 0, S("abcdefghijklmnopqrst"), 10, 10, -10);
+ test(S("abcdefghij"), 5, 0, S("abcdefghijklmnopqrst"), 10, 11, -10);
+ test(S("abcdefghij"), 5, 0, S("abcdefghijklmnopqrst"), 19, 0, 0);
+ test(S("abcdefghij"), 5, 0, S("abcdefghijklmnopqrst"), 19, 1, -1);
+ test(S("abcdefghij"), 5, 0, S("abcdefghijklmnopqrst"), 19, 2, -1);
+ test(S("abcdefghij"), 5, 0, S("abcdefghijklmnopqrst"), 20, 0, 0);
+ test(S("abcdefghij"), 5, 0, S("abcdefghijklmnopqrst"), 20, 1, 0);
+ test(S("abcdefghij"), 5, 0, S("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghij"), 5, 1, S(""), 0, 0, 1);
+ test(S("abcdefghij"), 5, 1, S(""), 0, 1, 1);
+ test(S("abcdefghij"), 5, 1, S(""), 1, 0, 0);
+ test(S("abcdefghij"), 5, 1, S("abcde"), 0, 0, 1);
+ test(S("abcdefghij"), 5, 1, S("abcde"), 0, 1, 5);
+ test(S("abcdefghij"), 5, 1, S("abcde"), 0, 2, 5);
+ test(S("abcdefghij"), 5, 1, S("abcde"), 0, 4, 5);
+ test(S("abcdefghij"), 5, 1, S("abcde"), 0, 5, 5);
+ test(S("abcdefghij"), 5, 1, S("abcde"), 0, 6, 5);
+ test(S("abcdefghij"), 5, 1, S("abcde"), 1, 0, 1);
+ test(S("abcdefghij"), 5, 1, S("abcde"), 1, 1, 4);
+ test(S("abcdefghij"), 5, 1, S("abcde"), 1, 2, 4);
+ test(S("abcdefghij"), 5, 1, S("abcde"), 1, 3, 4);
+ test(S("abcdefghij"), 5, 1, S("abcde"), 1, 4, 4);
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test29()
-{
- test(S("abcdefghij"), 5, 1, S("abcde"), 1, 5, 4);
- test(S("abcdefghij"), 5, 1, S("abcde"), 2, 0, 1);
- test(S("abcdefghij"), 5, 1, S("abcde"), 2, 1, 3);
- test(S("abcdefghij"), 5, 1, S("abcde"), 2, 2, 3);
- test(S("abcdefghij"), 5, 1, S("abcde"), 2, 3, 3);
- test(S("abcdefghij"), 5, 1, S("abcde"), 2, 4, 3);
- test(S("abcdefghij"), 5, 1, S("abcde"), 4, 0, 1);
- test(S("abcdefghij"), 5, 1, S("abcde"), 4, 1, 1);
- test(S("abcdefghij"), 5, 1, S("abcde"), 4, 2, 1);
- test(S("abcdefghij"), 5, 1, S("abcde"), 5, 0, 1);
- test(S("abcdefghij"), 5, 1, S("abcde"), 5, 1, 1);
- test(S("abcdefghij"), 5, 1, S("abcde"), 6, 0, 0);
- test(S("abcdefghij"), 5, 1, S("abcdefghij"), 0, 0, 1);
- test(S("abcdefghij"), 5, 1, S("abcdefghij"), 0, 1, 5);
- test(S("abcdefghij"), 5, 1, S("abcdefghij"), 0, 5, 5);
- test(S("abcdefghij"), 5, 1, S("abcdefghij"), 0, 9, 5);
- test(S("abcdefghij"), 5, 1, S("abcdefghij"), 0, 10, 5);
- test(S("abcdefghij"), 5, 1, S("abcdefghij"), 0, 11, 5);
- test(S("abcdefghij"), 5, 1, S("abcdefghij"), 1, 0, 1);
- test(S("abcdefghij"), 5, 1, S("abcdefghij"), 1, 1, 4);
- test(S("abcdefghij"), 5, 1, S("abcdefghij"), 1, 4, 4);
- test(S("abcdefghij"), 5, 1, S("abcdefghij"), 1, 8, 4);
- test(S("abcdefghij"), 5, 1, S("abcdefghij"), 1, 9, 4);
- test(S("abcdefghij"), 5, 1, S("abcdefghij"), 1, 10, 4);
- test(S("abcdefghij"), 5, 1, S("abcdefghij"), 5, 0, 1);
- test(S("abcdefghij"), 5, 1, S("abcdefghij"), 5, 1, 0);
- test(S("abcdefghij"), 5, 1, S("abcdefghij"), 5, 2, -1);
- test(S("abcdefghij"), 5, 1, S("abcdefghij"), 5, 4, -3);
- test(S("abcdefghij"), 5, 1, S("abcdefghij"), 5, 5, -4);
- test(S("abcdefghij"), 5, 1, S("abcdefghij"), 5, 6, -4);
- test(S("abcdefghij"), 5, 1, S("abcdefghij"), 9, 0, 1);
- test(S("abcdefghij"), 5, 1, S("abcdefghij"), 9, 1, -4);
- test(S("abcdefghij"), 5, 1, S("abcdefghij"), 9, 2, -4);
- test(S("abcdefghij"), 5, 1, S("abcdefghij"), 10, 0, 1);
- test(S("abcdefghij"), 5, 1, S("abcdefghij"), 10, 1, 1);
- test(S("abcdefghij"), 5, 1, S("abcdefghij"), 11, 0, 0);
- test(S("abcdefghij"), 5, 1, S("abcdefghijklmnopqrst"), 0, 0, 1);
- test(S("abcdefghij"), 5, 1, S("abcdefghijklmnopqrst"), 0, 1, 5);
- test(S("abcdefghij"), 5, 1, S("abcdefghijklmnopqrst"), 0, 10, 5);
- test(S("abcdefghij"), 5, 1, S("abcdefghijklmnopqrst"), 0, 19, 5);
- test(S("abcdefghij"), 5, 1, S("abcdefghijklmnopqrst"), 0, 20, 5);
- test(S("abcdefghij"), 5, 1, S("abcdefghijklmnopqrst"), 0, 21, 5);
- test(S("abcdefghij"), 5, 1, S("abcdefghijklmnopqrst"), 1, 0, 1);
- test(S("abcdefghij"), 5, 1, S("abcdefghijklmnopqrst"), 1, 1, 4);
- test(S("abcdefghij"), 5, 1, S("abcdefghijklmnopqrst"), 1, 9, 4);
- test(S("abcdefghij"), 5, 1, S("abcdefghijklmnopqrst"), 1, 18, 4);
- test(S("abcdefghij"), 5, 1, S("abcdefghijklmnopqrst"), 1, 19, 4);
- test(S("abcdefghij"), 5, 1, S("abcdefghijklmnopqrst"), 1, 20, 4);
- test(S("abcdefghij"), 5, 1, S("abcdefghijklmnopqrst"), 10, 0, 1);
- test(S("abcdefghij"), 5, 1, S("abcdefghijklmnopqrst"), 10, 1, -5);
- test(S("abcdefghij"), 5, 1, S("abcdefghijklmnopqrst"), 10, 5, -5);
- test(S("abcdefghij"), 5, 1, S("abcdefghijklmnopqrst"), 10, 9, -5);
- test(S("abcdefghij"), 5, 1, S("abcdefghijklmnopqrst"), 10, 10, -5);
- test(S("abcdefghij"), 5, 1, S("abcdefghijklmnopqrst"), 10, 11, -5);
- test(S("abcdefghij"), 5, 1, S("abcdefghijklmnopqrst"), 19, 0, 1);
- test(S("abcdefghij"), 5, 1, S("abcdefghijklmnopqrst"), 19, 1, -14);
- test(S("abcdefghij"), 5, 1, S("abcdefghijklmnopqrst"), 19, 2, -14);
- test(S("abcdefghij"), 5, 1, S("abcdefghijklmnopqrst"), 20, 0, 1);
- test(S("abcdefghij"), 5, 1, S("abcdefghijklmnopqrst"), 20, 1, 1);
- test(S("abcdefghij"), 5, 1, S("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghij"), 5, 2, S(""), 0, 0, 2);
- test(S("abcdefghij"), 5, 2, S(""), 0, 1, 2);
- test(S("abcdefghij"), 5, 2, S(""), 1, 0, 0);
- test(S("abcdefghij"), 5, 2, S("abcde"), 0, 0, 2);
- test(S("abcdefghij"), 5, 2, S("abcde"), 0, 1, 5);
- test(S("abcdefghij"), 5, 2, S("abcde"), 0, 2, 5);
- test(S("abcdefghij"), 5, 2, S("abcde"), 0, 4, 5);
- test(S("abcdefghij"), 5, 2, S("abcde"), 0, 5, 5);
- test(S("abcdefghij"), 5, 2, S("abcde"), 0, 6, 5);
- test(S("abcdefghij"), 5, 2, S("abcde"), 1, 0, 2);
- test(S("abcdefghij"), 5, 2, S("abcde"), 1, 1, 4);
- test(S("abcdefghij"), 5, 2, S("abcde"), 1, 2, 4);
- test(S("abcdefghij"), 5, 2, S("abcde"), 1, 3, 4);
- test(S("abcdefghij"), 5, 2, S("abcde"), 1, 4, 4);
- test(S("abcdefghij"), 5, 2, S("abcde"), 1, 5, 4);
- test(S("abcdefghij"), 5, 2, S("abcde"), 2, 0, 2);
- test(S("abcdefghij"), 5, 2, S("abcde"), 2, 1, 3);
- test(S("abcdefghij"), 5, 2, S("abcde"), 2, 2, 3);
- test(S("abcdefghij"), 5, 2, S("abcde"), 2, 3, 3);
- test(S("abcdefghij"), 5, 2, S("abcde"), 2, 4, 3);
- test(S("abcdefghij"), 5, 2, S("abcde"), 4, 0, 2);
- test(S("abcdefghij"), 5, 2, S("abcde"), 4, 1, 1);
- test(S("abcdefghij"), 5, 2, S("abcde"), 4, 2, 1);
- test(S("abcdefghij"), 5, 2, S("abcde"), 5, 0, 2);
- test(S("abcdefghij"), 5, 2, S("abcde"), 5, 1, 2);
- test(S("abcdefghij"), 5, 2, S("abcde"), 6, 0, 0);
- test(S("abcdefghij"), 5, 2, S("abcdefghij"), 0, 0, 2);
- test(S("abcdefghij"), 5, 2, S("abcdefghij"), 0, 1, 5);
- test(S("abcdefghij"), 5, 2, S("abcdefghij"), 0, 5, 5);
- test(S("abcdefghij"), 5, 2, S("abcdefghij"), 0, 9, 5);
- test(S("abcdefghij"), 5, 2, S("abcdefghij"), 0, 10, 5);
- test(S("abcdefghij"), 5, 2, S("abcdefghij"), 0, 11, 5);
- test(S("abcdefghij"), 5, 2, S("abcdefghij"), 1, 0, 2);
- test(S("abcdefghij"), 5, 2, S("abcdefghij"), 1, 1, 4);
- test(S("abcdefghij"), 5, 2, S("abcdefghij"), 1, 4, 4);
- test(S("abcdefghij"), 5, 2, S("abcdefghij"), 1, 8, 4);
- test(S("abcdefghij"), 5, 2, S("abcdefghij"), 1, 9, 4);
- test(S("abcdefghij"), 5, 2, S("abcdefghij"), 1, 10, 4);
- test(S("abcdefghij"), 5, 2, S("abcdefghij"), 5, 0, 2);
- test(S("abcdefghij"), 5, 2, S("abcdefghij"), 5, 1, 1);
+TEST_CONSTEXPR_CXX20 bool test29() {
+ test(S("abcdefghij"), 5, 1, S("abcde"), 1, 5, 4);
+ test(S("abcdefghij"), 5, 1, S("abcde"), 2, 0, 1);
+ test(S("abcdefghij"), 5, 1, S("abcde"), 2, 1, 3);
+ test(S("abcdefghij"), 5, 1, S("abcde"), 2, 2, 3);
+ test(S("abcdefghij"), 5, 1, S("abcde"), 2, 3, 3);
+ test(S("abcdefghij"), 5, 1, S("abcde"), 2, 4, 3);
+ test(S("abcdefghij"), 5, 1, S("abcde"), 4, 0, 1);
+ test(S("abcdefghij"), 5, 1, S("abcde"), 4, 1, 1);
+ test(S("abcdefghij"), 5, 1, S("abcde"), 4, 2, 1);
+ test(S("abcdefghij"), 5, 1, S("abcde"), 5, 0, 1);
+ test(S("abcdefghij"), 5, 1, S("abcde"), 5, 1, 1);
+ test(S("abcdefghij"), 5, 1, S("abcde"), 6, 0, 0);
+ test(S("abcdefghij"), 5, 1, S("abcdefghij"), 0, 0, 1);
+ test(S("abcdefghij"), 5, 1, S("abcdefghij"), 0, 1, 5);
+ test(S("abcdefghij"), 5, 1, S("abcdefghij"), 0, 5, 5);
+ test(S("abcdefghij"), 5, 1, S("abcdefghij"), 0, 9, 5);
+ test(S("abcdefghij"), 5, 1, S("abcdefghij"), 0, 10, 5);
+ test(S("abcdefghij"), 5, 1, S("abcdefghij"), 0, 11, 5);
+ test(S("abcdefghij"), 5, 1, S("abcdefghij"), 1, 0, 1);
+ test(S("abcdefghij"), 5, 1, S("abcdefghij"), 1, 1, 4);
+ test(S("abcdefghij"), 5, 1, S("abcdefghij"), 1, 4, 4);
+ test(S("abcdefghij"), 5, 1, S("abcdefghij"), 1, 8, 4);
+ test(S("abcdefghij"), 5, 1, S("abcdefghij"), 1, 9, 4);
+ test(S("abcdefghij"), 5, 1, S("abcdefghij"), 1, 10, 4);
+ test(S("abcdefghij"), 5, 1, S("abcdefghij"), 5, 0, 1);
+ test(S("abcdefghij"), 5, 1, S("abcdefghij"), 5, 1, 0);
+ test(S("abcdefghij"), 5, 1, S("abcdefghij"), 5, 2, -1);
+ test(S("abcdefghij"), 5, 1, S("abcdefghij"), 5, 4, -3);
+ test(S("abcdefghij"), 5, 1, S("abcdefghij"), 5, 5, -4);
+ test(S("abcdefghij"), 5, 1, S("abcdefghij"), 5, 6, -4);
+ test(S("abcdefghij"), 5, 1, S("abcdefghij"), 9, 0, 1);
+ test(S("abcdefghij"), 5, 1, S("abcdefghij"), 9, 1, -4);
+ test(S("abcdefghij"), 5, 1, S("abcdefghij"), 9, 2, -4);
+ test(S("abcdefghij"), 5, 1, S("abcdefghij"), 10, 0, 1);
+ test(S("abcdefghij"), 5, 1, S("abcdefghij"), 10, 1, 1);
+ test(S("abcdefghij"), 5, 1, S("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghij"), 5, 1, S("abcdefghijklmnopqrst"), 0, 0, 1);
+ test(S("abcdefghij"), 5, 1, S("abcdefghijklmnopqrst"), 0, 1, 5);
+ test(S("abcdefghij"), 5, 1, S("abcdefghijklmnopqrst"), 0, 10, 5);
+ test(S("abcdefghij"), 5, 1, S("abcdefghijklmnopqrst"), 0, 19, 5);
+ test(S("abcdefghij"), 5, 1, S("abcdefghijklmnopqrst"), 0, 20, 5);
+ test(S("abcdefghij"), 5, 1, S("abcdefghijklmnopqrst"), 0, 21, 5);
+ test(S("abcdefghij"), 5, 1, S("abcdefghijklmnopqrst"), 1, 0, 1);
+ test(S("abcdefghij"), 5, 1, S("abcdefghijklmnopqrst"), 1, 1, 4);
+ test(S("abcdefghij"), 5, 1, S("abcdefghijklmnopqrst"), 1, 9, 4);
+ test(S("abcdefghij"), 5, 1, S("abcdefghijklmnopqrst"), 1, 18, 4);
+ test(S("abcdefghij"), 5, 1, S("abcdefghijklmnopqrst"), 1, 19, 4);
+ test(S("abcdefghij"), 5, 1, S("abcdefghijklmnopqrst"), 1, 20, 4);
+ test(S("abcdefghij"), 5, 1, S("abcdefghijklmnopqrst"), 10, 0, 1);
+ test(S("abcdefghij"), 5, 1, S("abcdefghijklmnopqrst"), 10, 1, -5);
+ test(S("abcdefghij"), 5, 1, S("abcdefghijklmnopqrst"), 10, 5, -5);
+ test(S("abcdefghij"), 5, 1, S("abcdefghijklmnopqrst"), 10, 9, -5);
+ test(S("abcdefghij"), 5, 1, S("abcdefghijklmnopqrst"), 10, 10, -5);
+ test(S("abcdefghij"), 5, 1, S("abcdefghijklmnopqrst"), 10, 11, -5);
+ test(S("abcdefghij"), 5, 1, S("abcdefghijklmnopqrst"), 19, 0, 1);
+ test(S("abcdefghij"), 5, 1, S("abcdefghijklmnopqrst"), 19, 1, -14);
+ test(S("abcdefghij"), 5, 1, S("abcdefghijklmnopqrst"), 19, 2, -14);
+ test(S("abcdefghij"), 5, 1, S("abcdefghijklmnopqrst"), 20, 0, 1);
+ test(S("abcdefghij"), 5, 1, S("abcdefghijklmnopqrst"), 20, 1, 1);
+ test(S("abcdefghij"), 5, 1, S("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghij"), 5, 2, S(""), 0, 0, 2);
+ test(S("abcdefghij"), 5, 2, S(""), 0, 1, 2);
+ test(S("abcdefghij"), 5, 2, S(""), 1, 0, 0);
+ test(S("abcdefghij"), 5, 2, S("abcde"), 0, 0, 2);
+ test(S("abcdefghij"), 5, 2, S("abcde"), 0, 1, 5);
+ test(S("abcdefghij"), 5, 2, S("abcde"), 0, 2, 5);
+ test(S("abcdefghij"), 5, 2, S("abcde"), 0, 4, 5);
+ test(S("abcdefghij"), 5, 2, S("abcde"), 0, 5, 5);
+ test(S("abcdefghij"), 5, 2, S("abcde"), 0, 6, 5);
+ test(S("abcdefghij"), 5, 2, S("abcde"), 1, 0, 2);
+ test(S("abcdefghij"), 5, 2, S("abcde"), 1, 1, 4);
+ test(S("abcdefghij"), 5, 2, S("abcde"), 1, 2, 4);
+ test(S("abcdefghij"), 5, 2, S("abcde"), 1, 3, 4);
+ test(S("abcdefghij"), 5, 2, S("abcde"), 1, 4, 4);
+ test(S("abcdefghij"), 5, 2, S("abcde"), 1, 5, 4);
+ test(S("abcdefghij"), 5, 2, S("abcde"), 2, 0, 2);
+ test(S("abcdefghij"), 5, 2, S("abcde"), 2, 1, 3);
+ test(S("abcdefghij"), 5, 2, S("abcde"), 2, 2, 3);
+ test(S("abcdefghij"), 5, 2, S("abcde"), 2, 3, 3);
+ test(S("abcdefghij"), 5, 2, S("abcde"), 2, 4, 3);
+ test(S("abcdefghij"), 5, 2, S("abcde"), 4, 0, 2);
+ test(S("abcdefghij"), 5, 2, S("abcde"), 4, 1, 1);
+ test(S("abcdefghij"), 5, 2, S("abcde"), 4, 2, 1);
+ test(S("abcdefghij"), 5, 2, S("abcde"), 5, 0, 2);
+ test(S("abcdefghij"), 5, 2, S("abcde"), 5, 1, 2);
+ test(S("abcdefghij"), 5, 2, S("abcde"), 6, 0, 0);
+ test(S("abcdefghij"), 5, 2, S("abcdefghij"), 0, 0, 2);
+ test(S("abcdefghij"), 5, 2, S("abcdefghij"), 0, 1, 5);
+ test(S("abcdefghij"), 5, 2, S("abcdefghij"), 0, 5, 5);
+ test(S("abcdefghij"), 5, 2, S("abcdefghij"), 0, 9, 5);
+ test(S("abcdefghij"), 5, 2, S("abcdefghij"), 0, 10, 5);
+ test(S("abcdefghij"), 5, 2, S("abcdefghij"), 0, 11, 5);
+ test(S("abcdefghij"), 5, 2, S("abcdefghij"), 1, 0, 2);
+ test(S("abcdefghij"), 5, 2, S("abcdefghij"), 1, 1, 4);
+ test(S("abcdefghij"), 5, 2, S("abcdefghij"), 1, 4, 4);
+ test(S("abcdefghij"), 5, 2, S("abcdefghij"), 1, 8, 4);
+ test(S("abcdefghij"), 5, 2, S("abcdefghij"), 1, 9, 4);
+ test(S("abcdefghij"), 5, 2, S("abcdefghij"), 1, 10, 4);
+ test(S("abcdefghij"), 5, 2, S("abcdefghij"), 5, 0, 2);
+ test(S("abcdefghij"), 5, 2, S("abcdefghij"), 5, 1, 1);
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test30()
-{
- test(S("abcdefghij"), 5, 2, S("abcdefghij"), 5, 2, 0);
- test(S("abcdefghij"), 5, 2, S("abcdefghij"), 5, 4, -2);
- test(S("abcdefghij"), 5, 2, S("abcdefghij"), 5, 5, -3);
- test(S("abcdefghij"), 5, 2, S("abcdefghij"), 5, 6, -3);
- test(S("abcdefghij"), 5, 2, S("abcdefghij"), 9, 0, 2);
- test(S("abcdefghij"), 5, 2, S("abcdefghij"), 9, 1, -4);
- test(S("abcdefghij"), 5, 2, S("abcdefghij"), 9, 2, -4);
- test(S("abcdefghij"), 5, 2, S("abcdefghij"), 10, 0, 2);
- test(S("abcdefghij"), 5, 2, S("abcdefghij"), 10, 1, 2);
- test(S("abcdefghij"), 5, 2, S("abcdefghij"), 11, 0, 0);
- test(S("abcdefghij"), 5, 2, S("abcdefghijklmnopqrst"), 0, 0, 2);
- test(S("abcdefghij"), 5, 2, S("abcdefghijklmnopqrst"), 0, 1, 5);
- test(S("abcdefghij"), 5, 2, S("abcdefghijklmnopqrst"), 0, 10, 5);
- test(S("abcdefghij"), 5, 2, S("abcdefghijklmnopqrst"), 0, 19, 5);
- test(S("abcdefghij"), 5, 2, S("abcdefghijklmnopqrst"), 0, 20, 5);
- test(S("abcdefghij"), 5, 2, S("abcdefghijklmnopqrst"), 0, 21, 5);
- test(S("abcdefghij"), 5, 2, S("abcdefghijklmnopqrst"), 1, 0, 2);
- test(S("abcdefghij"), 5, 2, S("abcdefghijklmnopqrst"), 1, 1, 4);
- test(S("abcdefghij"), 5, 2, S("abcdefghijklmnopqrst"), 1, 9, 4);
- test(S("abcdefghij"), 5, 2, S("abcdefghijklmnopqrst"), 1, 18, 4);
- test(S("abcdefghij"), 5, 2, S("abcdefghijklmnopqrst"), 1, 19, 4);
- test(S("abcdefghij"), 5, 2, S("abcdefghijklmnopqrst"), 1, 20, 4);
- test(S("abcdefghij"), 5, 2, S("abcdefghijklmnopqrst"), 10, 0, 2);
- test(S("abcdefghij"), 5, 2, S("abcdefghijklmnopqrst"), 10, 1, -5);
- test(S("abcdefghij"), 5, 2, S("abcdefghijklmnopqrst"), 10, 5, -5);
- test(S("abcdefghij"), 5, 2, S("abcdefghijklmnopqrst"), 10, 9, -5);
- test(S("abcdefghij"), 5, 2, S("abcdefghijklmnopqrst"), 10, 10, -5);
- test(S("abcdefghij"), 5, 2, S("abcdefghijklmnopqrst"), 10, 11, -5);
- test(S("abcdefghij"), 5, 2, S("abcdefghijklmnopqrst"), 19, 0, 2);
- test(S("abcdefghij"), 5, 2, S("abcdefghijklmnopqrst"), 19, 1, -14);
- test(S("abcdefghij"), 5, 2, S("abcdefghijklmnopqrst"), 19, 2, -14);
- test(S("abcdefghij"), 5, 2, S("abcdefghijklmnopqrst"), 20, 0, 2);
- test(S("abcdefghij"), 5, 2, S("abcdefghijklmnopqrst"), 20, 1, 2);
- test(S("abcdefghij"), 5, 2, S("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghij"), 5, 4, S(""), 0, 0, 4);
- test(S("abcdefghij"), 5, 4, S(""), 0, 1, 4);
- test(S("abcdefghij"), 5, 4, S(""), 1, 0, 0);
- test(S("abcdefghij"), 5, 4, S("abcde"), 0, 0, 4);
- test(S("abcdefghij"), 5, 4, S("abcde"), 0, 1, 5);
- test(S("abcdefghij"), 5, 4, S("abcde"), 0, 2, 5);
- test(S("abcdefghij"), 5, 4, S("abcde"), 0, 4, 5);
- test(S("abcdefghij"), 5, 4, S("abcde"), 0, 5, 5);
- test(S("abcdefghij"), 5, 4, S("abcde"), 0, 6, 5);
- test(S("abcdefghij"), 5, 4, S("abcde"), 1, 0, 4);
- test(S("abcdefghij"), 5, 4, S("abcde"), 1, 1, 4);
- test(S("abcdefghij"), 5, 4, S("abcde"), 1, 2, 4);
- test(S("abcdefghij"), 5, 4, S("abcde"), 1, 3, 4);
- test(S("abcdefghij"), 5, 4, S("abcde"), 1, 4, 4);
- test(S("abcdefghij"), 5, 4, S("abcde"), 1, 5, 4);
- test(S("abcdefghij"), 5, 4, S("abcde"), 2, 0, 4);
- test(S("abcdefghij"), 5, 4, S("abcde"), 2, 1, 3);
- test(S("abcdefghij"), 5, 4, S("abcde"), 2, 2, 3);
- test(S("abcdefghij"), 5, 4, S("abcde"), 2, 3, 3);
- test(S("abcdefghij"), 5, 4, S("abcde"), 2, 4, 3);
- test(S("abcdefghij"), 5, 4, S("abcde"), 4, 0, 4);
- test(S("abcdefghij"), 5, 4, S("abcde"), 4, 1, 1);
- test(S("abcdefghij"), 5, 4, S("abcde"), 4, 2, 1);
- test(S("abcdefghij"), 5, 4, S("abcde"), 5, 0, 4);
- test(S("abcdefghij"), 5, 4, S("abcde"), 5, 1, 4);
- test(S("abcdefghij"), 5, 4, S("abcde"), 6, 0, 0);
- test(S("abcdefghij"), 5, 4, S("abcdefghij"), 0, 0, 4);
- test(S("abcdefghij"), 5, 4, S("abcdefghij"), 0, 1, 5);
- test(S("abcdefghij"), 5, 4, S("abcdefghij"), 0, 5, 5);
- test(S("abcdefghij"), 5, 4, S("abcdefghij"), 0, 9, 5);
- test(S("abcdefghij"), 5, 4, S("abcdefghij"), 0, 10, 5);
- test(S("abcdefghij"), 5, 4, S("abcdefghij"), 0, 11, 5);
- test(S("abcdefghij"), 5, 4, S("abcdefghij"), 1, 0, 4);
- test(S("abcdefghij"), 5, 4, S("abcdefghij"), 1, 1, 4);
- test(S("abcdefghij"), 5, 4, S("abcdefghij"), 1, 4, 4);
- test(S("abcdefghij"), 5, 4, S("abcdefghij"), 1, 8, 4);
- test(S("abcdefghij"), 5, 4, S("abcdefghij"), 1, 9, 4);
- test(S("abcdefghij"), 5, 4, S("abcdefghij"), 1, 10, 4);
- test(S("abcdefghij"), 5, 4, S("abcdefghij"), 5, 0, 4);
- test(S("abcdefghij"), 5, 4, S("abcdefghij"), 5, 1, 3);
- test(S("abcdefghij"), 5, 4, S("abcdefghij"), 5, 2, 2);
- test(S("abcdefghij"), 5, 4, S("abcdefghij"), 5, 4, 0);
- test(S("abcdefghij"), 5, 4, S("abcdefghij"), 5, 5, -1);
- test(S("abcdefghij"), 5, 4, S("abcdefghij"), 5, 6, -1);
- test(S("abcdefghij"), 5, 4, S("abcdefghij"), 9, 0, 4);
- test(S("abcdefghij"), 5, 4, S("abcdefghij"), 9, 1, -4);
- test(S("abcdefghij"), 5, 4, S("abcdefghij"), 9, 2, -4);
- test(S("abcdefghij"), 5, 4, S("abcdefghij"), 10, 0, 4);
- test(S("abcdefghij"), 5, 4, S("abcdefghij"), 10, 1, 4);
- test(S("abcdefghij"), 5, 4, S("abcdefghij"), 11, 0, 0);
- test(S("abcdefghij"), 5, 4, S("abcdefghijklmnopqrst"), 0, 0, 4);
- test(S("abcdefghij"), 5, 4, S("abcdefghijklmnopqrst"), 0, 1, 5);
- test(S("abcdefghij"), 5, 4, S("abcdefghijklmnopqrst"), 0, 10, 5);
- test(S("abcdefghij"), 5, 4, S("abcdefghijklmnopqrst"), 0, 19, 5);
- test(S("abcdefghij"), 5, 4, S("abcdefghijklmnopqrst"), 0, 20, 5);
- test(S("abcdefghij"), 5, 4, S("abcdefghijklmnopqrst"), 0, 21, 5);
- test(S("abcdefghij"), 5, 4, S("abcdefghijklmnopqrst"), 1, 0, 4);
- test(S("abcdefghij"), 5, 4, S("abcdefghijklmnopqrst"), 1, 1, 4);
- test(S("abcdefghij"), 5, 4, S("abcdefghijklmnopqrst"), 1, 9, 4);
- test(S("abcdefghij"), 5, 4, S("abcdefghijklmnopqrst"), 1, 18, 4);
- test(S("abcdefghij"), 5, 4, S("abcdefghijklmnopqrst"), 1, 19, 4);
- test(S("abcdefghij"), 5, 4, S("abcdefghijklmnopqrst"), 1, 20, 4);
- test(S("abcdefghij"), 5, 4, S("abcdefghijklmnopqrst"), 10, 0, 4);
- test(S("abcdefghij"), 5, 4, S("abcdefghijklmnopqrst"), 10, 1, -5);
- test(S("abcdefghij"), 5, 4, S("abcdefghijklmnopqrst"), 10, 5, -5);
- test(S("abcdefghij"), 5, 4, S("abcdefghijklmnopqrst"), 10, 9, -5);
+TEST_CONSTEXPR_CXX20 bool test30() {
+ test(S("abcdefghij"), 5, 2, S("abcdefghij"), 5, 2, 0);
+ test(S("abcdefghij"), 5, 2, S("abcdefghij"), 5, 4, -2);
+ test(S("abcdefghij"), 5, 2, S("abcdefghij"), 5, 5, -3);
+ test(S("abcdefghij"), 5, 2, S("abcdefghij"), 5, 6, -3);
+ test(S("abcdefghij"), 5, 2, S("abcdefghij"), 9, 0, 2);
+ test(S("abcdefghij"), 5, 2, S("abcdefghij"), 9, 1, -4);
+ test(S("abcdefghij"), 5, 2, S("abcdefghij"), 9, 2, -4);
+ test(S("abcdefghij"), 5, 2, S("abcdefghij"), 10, 0, 2);
+ test(S("abcdefghij"), 5, 2, S("abcdefghij"), 10, 1, 2);
+ test(S("abcdefghij"), 5, 2, S("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghij"), 5, 2, S("abcdefghijklmnopqrst"), 0, 0, 2);
+ test(S("abcdefghij"), 5, 2, S("abcdefghijklmnopqrst"), 0, 1, 5);
+ test(S("abcdefghij"), 5, 2, S("abcdefghijklmnopqrst"), 0, 10, 5);
+ test(S("abcdefghij"), 5, 2, S("abcdefghijklmnopqrst"), 0, 19, 5);
+ test(S("abcdefghij"), 5, 2, S("abcdefghijklmnopqrst"), 0, 20, 5);
+ test(S("abcdefghij"), 5, 2, S("abcdefghijklmnopqrst"), 0, 21, 5);
+ test(S("abcdefghij"), 5, 2, S("abcdefghijklmnopqrst"), 1, 0, 2);
+ test(S("abcdefghij"), 5, 2, S("abcdefghijklmnopqrst"), 1, 1, 4);
+ test(S("abcdefghij"), 5, 2, S("abcdefghijklmnopqrst"), 1, 9, 4);
+ test(S("abcdefghij"), 5, 2, S("abcdefghijklmnopqrst"), 1, 18, 4);
+ test(S("abcdefghij"), 5, 2, S("abcdefghijklmnopqrst"), 1, 19, 4);
+ test(S("abcdefghij"), 5, 2, S("abcdefghijklmnopqrst"), 1, 20, 4);
+ test(S("abcdefghij"), 5, 2, S("abcdefghijklmnopqrst"), 10, 0, 2);
+ test(S("abcdefghij"), 5, 2, S("abcdefghijklmnopqrst"), 10, 1, -5);
+ test(S("abcdefghij"), 5, 2, S("abcdefghijklmnopqrst"), 10, 5, -5);
+ test(S("abcdefghij"), 5, 2, S("abcdefghijklmnopqrst"), 10, 9, -5);
+ test(S("abcdefghij"), 5, 2, S("abcdefghijklmnopqrst"), 10, 10, -5);
+ test(S("abcdefghij"), 5, 2, S("abcdefghijklmnopqrst"), 10, 11, -5);
+ test(S("abcdefghij"), 5, 2, S("abcdefghijklmnopqrst"), 19, 0, 2);
+ test(S("abcdefghij"), 5, 2, S("abcdefghijklmnopqrst"), 19, 1, -14);
+ test(S("abcdefghij"), 5, 2, S("abcdefghijklmnopqrst"), 19, 2, -14);
+ test(S("abcdefghij"), 5, 2, S("abcdefghijklmnopqrst"), 20, 0, 2);
+ test(S("abcdefghij"), 5, 2, S("abcdefghijklmnopqrst"), 20, 1, 2);
+ test(S("abcdefghij"), 5, 2, S("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghij"), 5, 4, S(""), 0, 0, 4);
+ test(S("abcdefghij"), 5, 4, S(""), 0, 1, 4);
+ test(S("abcdefghij"), 5, 4, S(""), 1, 0, 0);
+ test(S("abcdefghij"), 5, 4, S("abcde"), 0, 0, 4);
+ test(S("abcdefghij"), 5, 4, S("abcde"), 0, 1, 5);
+ test(S("abcdefghij"), 5, 4, S("abcde"), 0, 2, 5);
+ test(S("abcdefghij"), 5, 4, S("abcde"), 0, 4, 5);
+ test(S("abcdefghij"), 5, 4, S("abcde"), 0, 5, 5);
+ test(S("abcdefghij"), 5, 4, S("abcde"), 0, 6, 5);
+ test(S("abcdefghij"), 5, 4, S("abcde"), 1, 0, 4);
+ test(S("abcdefghij"), 5, 4, S("abcde"), 1, 1, 4);
+ test(S("abcdefghij"), 5, 4, S("abcde"), 1, 2, 4);
+ test(S("abcdefghij"), 5, 4, S("abcde"), 1, 3, 4);
+ test(S("abcdefghij"), 5, 4, S("abcde"), 1, 4, 4);
+ test(S("abcdefghij"), 5, 4, S("abcde"), 1, 5, 4);
+ test(S("abcdefghij"), 5, 4, S("abcde"), 2, 0, 4);
+ test(S("abcdefghij"), 5, 4, S("abcde"), 2, 1, 3);
+ test(S("abcdefghij"), 5, 4, S("abcde"), 2, 2, 3);
+ test(S("abcdefghij"), 5, 4, S("abcde"), 2, 3, 3);
+ test(S("abcdefghij"), 5, 4, S("abcde"), 2, 4, 3);
+ test(S("abcdefghij"), 5, 4, S("abcde"), 4, 0, 4);
+ test(S("abcdefghij"), 5, 4, S("abcde"), 4, 1, 1);
+ test(S("abcdefghij"), 5, 4, S("abcde"), 4, 2, 1);
+ test(S("abcdefghij"), 5, 4, S("abcde"), 5, 0, 4);
+ test(S("abcdefghij"), 5, 4, S("abcde"), 5, 1, 4);
+ test(S("abcdefghij"), 5, 4, S("abcde"), 6, 0, 0);
+ test(S("abcdefghij"), 5, 4, S("abcdefghij"), 0, 0, 4);
+ test(S("abcdefghij"), 5, 4, S("abcdefghij"), 0, 1, 5);
+ test(S("abcdefghij"), 5, 4, S("abcdefghij"), 0, 5, 5);
+ test(S("abcdefghij"), 5, 4, S("abcdefghij"), 0, 9, 5);
+ test(S("abcdefghij"), 5, 4, S("abcdefghij"), 0, 10, 5);
+ test(S("abcdefghij"), 5, 4, S("abcdefghij"), 0, 11, 5);
+ test(S("abcdefghij"), 5, 4, S("abcdefghij"), 1, 0, 4);
+ test(S("abcdefghij"), 5, 4, S("abcdefghij"), 1, 1, 4);
+ test(S("abcdefghij"), 5, 4, S("abcdefghij"), 1, 4, 4);
+ test(S("abcdefghij"), 5, 4, S("abcdefghij"), 1, 8, 4);
+ test(S("abcdefghij"), 5, 4, S("abcdefghij"), 1, 9, 4);
+ test(S("abcdefghij"), 5, 4, S("abcdefghij"), 1, 10, 4);
+ test(S("abcdefghij"), 5, 4, S("abcdefghij"), 5, 0, 4);
+ test(S("abcdefghij"), 5, 4, S("abcdefghij"), 5, 1, 3);
+ test(S("abcdefghij"), 5, 4, S("abcdefghij"), 5, 2, 2);
+ test(S("abcdefghij"), 5, 4, S("abcdefghij"), 5, 4, 0);
+ test(S("abcdefghij"), 5, 4, S("abcdefghij"), 5, 5, -1);
+ test(S("abcdefghij"), 5, 4, S("abcdefghij"), 5, 6, -1);
+ test(S("abcdefghij"), 5, 4, S("abcdefghij"), 9, 0, 4);
+ test(S("abcdefghij"), 5, 4, S("abcdefghij"), 9, 1, -4);
+ test(S("abcdefghij"), 5, 4, S("abcdefghij"), 9, 2, -4);
+ test(S("abcdefghij"), 5, 4, S("abcdefghij"), 10, 0, 4);
+ test(S("abcdefghij"), 5, 4, S("abcdefghij"), 10, 1, 4);
+ test(S("abcdefghij"), 5, 4, S("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghij"), 5, 4, S("abcdefghijklmnopqrst"), 0, 0, 4);
+ test(S("abcdefghij"), 5, 4, S("abcdefghijklmnopqrst"), 0, 1, 5);
+ test(S("abcdefghij"), 5, 4, S("abcdefghijklmnopqrst"), 0, 10, 5);
+ test(S("abcdefghij"), 5, 4, S("abcdefghijklmnopqrst"), 0, 19, 5);
+ test(S("abcdefghij"), 5, 4, S("abcdefghijklmnopqrst"), 0, 20, 5);
+ test(S("abcdefghij"), 5, 4, S("abcdefghijklmnopqrst"), 0, 21, 5);
+ test(S("abcdefghij"), 5, 4, S("abcdefghijklmnopqrst"), 1, 0, 4);
+ test(S("abcdefghij"), 5, 4, S("abcdefghijklmnopqrst"), 1, 1, 4);
+ test(S("abcdefghij"), 5, 4, S("abcdefghijklmnopqrst"), 1, 9, 4);
+ test(S("abcdefghij"), 5, 4, S("abcdefghijklmnopqrst"), 1, 18, 4);
+ test(S("abcdefghij"), 5, 4, S("abcdefghijklmnopqrst"), 1, 19, 4);
+ test(S("abcdefghij"), 5, 4, S("abcdefghijklmnopqrst"), 1, 20, 4);
+ test(S("abcdefghij"), 5, 4, S("abcdefghijklmnopqrst"), 10, 0, 4);
+ test(S("abcdefghij"), 5, 4, S("abcdefghijklmnopqrst"), 10, 1, -5);
+ test(S("abcdefghij"), 5, 4, S("abcdefghijklmnopqrst"), 10, 5, -5);
+ test(S("abcdefghij"), 5, 4, S("abcdefghijklmnopqrst"), 10, 9, -5);
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test31()
-{
- test(S("abcdefghij"), 5, 4, S("abcdefghijklmnopqrst"), 10, 10, -5);
- test(S("abcdefghij"), 5, 4, S("abcdefghijklmnopqrst"), 10, 11, -5);
- test(S("abcdefghij"), 5, 4, S("abcdefghijklmnopqrst"), 19, 0, 4);
- test(S("abcdefghij"), 5, 4, S("abcdefghijklmnopqrst"), 19, 1, -14);
- test(S("abcdefghij"), 5, 4, S("abcdefghijklmnopqrst"), 19, 2, -14);
- test(S("abcdefghij"), 5, 4, S("abcdefghijklmnopqrst"), 20, 0, 4);
- test(S("abcdefghij"), 5, 4, S("abcdefghijklmnopqrst"), 20, 1, 4);
- test(S("abcdefghij"), 5, 4, S("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghij"), 5, 5, S(""), 0, 0, 5);
- test(S("abcdefghij"), 5, 5, S(""), 0, 1, 5);
- test(S("abcdefghij"), 5, 5, S(""), 1, 0, 0);
- test(S("abcdefghij"), 5, 5, S("abcde"), 0, 0, 5);
- test(S("abcdefghij"), 5, 5, S("abcde"), 0, 1, 5);
- test(S("abcdefghij"), 5, 5, S("abcde"), 0, 2, 5);
- test(S("abcdefghij"), 5, 5, S("abcde"), 0, 4, 5);
- test(S("abcdefghij"), 5, 5, S("abcde"), 0, 5, 5);
- test(S("abcdefghij"), 5, 5, S("abcde"), 0, 6, 5);
- test(S("abcdefghij"), 5, 5, S("abcde"), 1, 0, 5);
- test(S("abcdefghij"), 5, 5, S("abcde"), 1, 1, 4);
- test(S("abcdefghij"), 5, 5, S("abcde"), 1, 2, 4);
- test(S("abcdefghij"), 5, 5, S("abcde"), 1, 3, 4);
- test(S("abcdefghij"), 5, 5, S("abcde"), 1, 4, 4);
- test(S("abcdefghij"), 5, 5, S("abcde"), 1, 5, 4);
- test(S("abcdefghij"), 5, 5, S("abcde"), 2, 0, 5);
- test(S("abcdefghij"), 5, 5, S("abcde"), 2, 1, 3);
- test(S("abcdefghij"), 5, 5, S("abcde"), 2, 2, 3);
- test(S("abcdefghij"), 5, 5, S("abcde"), 2, 3, 3);
- test(S("abcdefghij"), 5, 5, S("abcde"), 2, 4, 3);
- test(S("abcdefghij"), 5, 5, S("abcde"), 4, 0, 5);
- test(S("abcdefghij"), 5, 5, S("abcde"), 4, 1, 1);
- test(S("abcdefghij"), 5, 5, S("abcde"), 4, 2, 1);
- test(S("abcdefghij"), 5, 5, S("abcde"), 5, 0, 5);
- test(S("abcdefghij"), 5, 5, S("abcde"), 5, 1, 5);
- test(S("abcdefghij"), 5, 5, S("abcde"), 6, 0, 0);
- test(S("abcdefghij"), 5, 5, S("abcdefghij"), 0, 0, 5);
- test(S("abcdefghij"), 5, 5, S("abcdefghij"), 0, 1, 5);
- test(S("abcdefghij"), 5, 5, S("abcdefghij"), 0, 5, 5);
- test(S("abcdefghij"), 5, 5, S("abcdefghij"), 0, 9, 5);
- test(S("abcdefghij"), 5, 5, S("abcdefghij"), 0, 10, 5);
- test(S("abcdefghij"), 5, 5, S("abcdefghij"), 0, 11, 5);
- test(S("abcdefghij"), 5, 5, S("abcdefghij"), 1, 0, 5);
- test(S("abcdefghij"), 5, 5, S("abcdefghij"), 1, 1, 4);
- test(S("abcdefghij"), 5, 5, S("abcdefghij"), 1, 4, 4);
- test(S("abcdefghij"), 5, 5, S("abcdefghij"), 1, 8, 4);
- test(S("abcdefghij"), 5, 5, S("abcdefghij"), 1, 9, 4);
- test(S("abcdefghij"), 5, 5, S("abcdefghij"), 1, 10, 4);
- test(S("abcdefghij"), 5, 5, S("abcdefghij"), 5, 0, 5);
- test(S("abcdefghij"), 5, 5, S("abcdefghij"), 5, 1, 4);
- test(S("abcdefghij"), 5, 5, S("abcdefghij"), 5, 2, 3);
- test(S("abcdefghij"), 5, 5, S("abcdefghij"), 5, 4, 1);
- test(S("abcdefghij"), 5, 5, S("abcdefghij"), 5, 5, 0);
- test(S("abcdefghij"), 5, 5, S("abcdefghij"), 5, 6, 0);
- test(S("abcdefghij"), 5, 5, S("abcdefghij"), 9, 0, 5);
- test(S("abcdefghij"), 5, 5, S("abcdefghij"), 9, 1, -4);
- test(S("abcdefghij"), 5, 5, S("abcdefghij"), 9, 2, -4);
- test(S("abcdefghij"), 5, 5, S("abcdefghij"), 10, 0, 5);
- test(S("abcdefghij"), 5, 5, S("abcdefghij"), 10, 1, 5);
- test(S("abcdefghij"), 5, 5, S("abcdefghij"), 11, 0, 0);
- test(S("abcdefghij"), 5, 5, S("abcdefghijklmnopqrst"), 0, 0, 5);
- test(S("abcdefghij"), 5, 5, S("abcdefghijklmnopqrst"), 0, 1, 5);
- test(S("abcdefghij"), 5, 5, S("abcdefghijklmnopqrst"), 0, 10, 5);
- test(S("abcdefghij"), 5, 5, S("abcdefghijklmnopqrst"), 0, 19, 5);
- test(S("abcdefghij"), 5, 5, S("abcdefghijklmnopqrst"), 0, 20, 5);
- test(S("abcdefghij"), 5, 5, S("abcdefghijklmnopqrst"), 0, 21, 5);
- test(S("abcdefghij"), 5, 5, S("abcdefghijklmnopqrst"), 1, 0, 5);
- test(S("abcdefghij"), 5, 5, S("abcdefghijklmnopqrst"), 1, 1, 4);
- test(S("abcdefghij"), 5, 5, S("abcdefghijklmnopqrst"), 1, 9, 4);
- test(S("abcdefghij"), 5, 5, S("abcdefghijklmnopqrst"), 1, 18, 4);
- test(S("abcdefghij"), 5, 5, S("abcdefghijklmnopqrst"), 1, 19, 4);
- test(S("abcdefghij"), 5, 5, S("abcdefghijklmnopqrst"), 1, 20, 4);
- test(S("abcdefghij"), 5, 5, S("abcdefghijklmnopqrst"), 10, 0, 5);
- test(S("abcdefghij"), 5, 5, S("abcdefghijklmnopqrst"), 10, 1, -5);
- test(S("abcdefghij"), 5, 5, S("abcdefghijklmnopqrst"), 10, 5, -5);
- test(S("abcdefghij"), 5, 5, S("abcdefghijklmnopqrst"), 10, 9, -5);
- test(S("abcdefghij"), 5, 5, S("abcdefghijklmnopqrst"), 10, 10, -5);
- test(S("abcdefghij"), 5, 5, S("abcdefghijklmnopqrst"), 10, 11, -5);
- test(S("abcdefghij"), 5, 5, S("abcdefghijklmnopqrst"), 19, 0, 5);
- test(S("abcdefghij"), 5, 5, S("abcdefghijklmnopqrst"), 19, 1, -14);
- test(S("abcdefghij"), 5, 5, S("abcdefghijklmnopqrst"), 19, 2, -14);
- test(S("abcdefghij"), 5, 5, S("abcdefghijklmnopqrst"), 20, 0, 5);
- test(S("abcdefghij"), 5, 5, S("abcdefghijklmnopqrst"), 20, 1, 5);
- test(S("abcdefghij"), 5, 5, S("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghij"), 5, 6, S(""), 0, 0, 5);
- test(S("abcdefghij"), 5, 6, S(""), 0, 1, 5);
- test(S("abcdefghij"), 5, 6, S(""), 1, 0, 0);
- test(S("abcdefghij"), 5, 6, S("abcde"), 0, 0, 5);
- test(S("abcdefghij"), 5, 6, S("abcde"), 0, 1, 5);
- test(S("abcdefghij"), 5, 6, S("abcde"), 0, 2, 5);
- test(S("abcdefghij"), 5, 6, S("abcde"), 0, 4, 5);
- test(S("abcdefghij"), 5, 6, S("abcde"), 0, 5, 5);
- test(S("abcdefghij"), 5, 6, S("abcde"), 0, 6, 5);
- test(S("abcdefghij"), 5, 6, S("abcde"), 1, 0, 5);
- test(S("abcdefghij"), 5, 6, S("abcde"), 1, 1, 4);
- test(S("abcdefghij"), 5, 6, S("abcde"), 1, 2, 4);
- test(S("abcdefghij"), 5, 6, S("abcde"), 1, 3, 4);
- test(S("abcdefghij"), 5, 6, S("abcde"), 1, 4, 4);
- test(S("abcdefghij"), 5, 6, S("abcde"), 1, 5, 4);
- test(S("abcdefghij"), 5, 6, S("abcde"), 2, 0, 5);
- test(S("abcdefghij"), 5, 6, S("abcde"), 2, 1, 3);
- test(S("abcdefghij"), 5, 6, S("abcde"), 2, 2, 3);
+TEST_CONSTEXPR_CXX20 bool test31() {
+ test(S("abcdefghij"), 5, 4, S("abcdefghijklmnopqrst"), 10, 10, -5);
+ test(S("abcdefghij"), 5, 4, S("abcdefghijklmnopqrst"), 10, 11, -5);
+ test(S("abcdefghij"), 5, 4, S("abcdefghijklmnopqrst"), 19, 0, 4);
+ test(S("abcdefghij"), 5, 4, S("abcdefghijklmnopqrst"), 19, 1, -14);
+ test(S("abcdefghij"), 5, 4, S("abcdefghijklmnopqrst"), 19, 2, -14);
+ test(S("abcdefghij"), 5, 4, S("abcdefghijklmnopqrst"), 20, 0, 4);
+ test(S("abcdefghij"), 5, 4, S("abcdefghijklmnopqrst"), 20, 1, 4);
+ test(S("abcdefghij"), 5, 4, S("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghij"), 5, 5, S(""), 0, 0, 5);
+ test(S("abcdefghij"), 5, 5, S(""), 0, 1, 5);
+ test(S("abcdefghij"), 5, 5, S(""), 1, 0, 0);
+ test(S("abcdefghij"), 5, 5, S("abcde"), 0, 0, 5);
+ test(S("abcdefghij"), 5, 5, S("abcde"), 0, 1, 5);
+ test(S("abcdefghij"), 5, 5, S("abcde"), 0, 2, 5);
+ test(S("abcdefghij"), 5, 5, S("abcde"), 0, 4, 5);
+ test(S("abcdefghij"), 5, 5, S("abcde"), 0, 5, 5);
+ test(S("abcdefghij"), 5, 5, S("abcde"), 0, 6, 5);
+ test(S("abcdefghij"), 5, 5, S("abcde"), 1, 0, 5);
+ test(S("abcdefghij"), 5, 5, S("abcde"), 1, 1, 4);
+ test(S("abcdefghij"), 5, 5, S("abcde"), 1, 2, 4);
+ test(S("abcdefghij"), 5, 5, S("abcde"), 1, 3, 4);
+ test(S("abcdefghij"), 5, 5, S("abcde"), 1, 4, 4);
+ test(S("abcdefghij"), 5, 5, S("abcde"), 1, 5, 4);
+ test(S("abcdefghij"), 5, 5, S("abcde"), 2, 0, 5);
+ test(S("abcdefghij"), 5, 5, S("abcde"), 2, 1, 3);
+ test(S("abcdefghij"), 5, 5, S("abcde"), 2, 2, 3);
+ test(S("abcdefghij"), 5, 5, S("abcde"), 2, 3, 3);
+ test(S("abcdefghij"), 5, 5, S("abcde"), 2, 4, 3);
+ test(S("abcdefghij"), 5, 5, S("abcde"), 4, 0, 5);
+ test(S("abcdefghij"), 5, 5, S("abcde"), 4, 1, 1);
+ test(S("abcdefghij"), 5, 5, S("abcde"), 4, 2, 1);
+ test(S("abcdefghij"), 5, 5, S("abcde"), 5, 0, 5);
+ test(S("abcdefghij"), 5, 5, S("abcde"), 5, 1, 5);
+ test(S("abcdefghij"), 5, 5, S("abcde"), 6, 0, 0);
+ test(S("abcdefghij"), 5, 5, S("abcdefghij"), 0, 0, 5);
+ test(S("abcdefghij"), 5, 5, S("abcdefghij"), 0, 1, 5);
+ test(S("abcdefghij"), 5, 5, S("abcdefghij"), 0, 5, 5);
+ test(S("abcdefghij"), 5, 5, S("abcdefghij"), 0, 9, 5);
+ test(S("abcdefghij"), 5, 5, S("abcdefghij"), 0, 10, 5);
+ test(S("abcdefghij"), 5, 5, S("abcdefghij"), 0, 11, 5);
+ test(S("abcdefghij"), 5, 5, S("abcdefghij"), 1, 0, 5);
+ test(S("abcdefghij"), 5, 5, S("abcdefghij"), 1, 1, 4);
+ test(S("abcdefghij"), 5, 5, S("abcdefghij"), 1, 4, 4);
+ test(S("abcdefghij"), 5, 5, S("abcdefghij"), 1, 8, 4);
+ test(S("abcdefghij"), 5, 5, S("abcdefghij"), 1, 9, 4);
+ test(S("abcdefghij"), 5, 5, S("abcdefghij"), 1, 10, 4);
+ test(S("abcdefghij"), 5, 5, S("abcdefghij"), 5, 0, 5);
+ test(S("abcdefghij"), 5, 5, S("abcdefghij"), 5, 1, 4);
+ test(S("abcdefghij"), 5, 5, S("abcdefghij"), 5, 2, 3);
+ test(S("abcdefghij"), 5, 5, S("abcdefghij"), 5, 4, 1);
+ test(S("abcdefghij"), 5, 5, S("abcdefghij"), 5, 5, 0);
+ test(S("abcdefghij"), 5, 5, S("abcdefghij"), 5, 6, 0);
+ test(S("abcdefghij"), 5, 5, S("abcdefghij"), 9, 0, 5);
+ test(S("abcdefghij"), 5, 5, S("abcdefghij"), 9, 1, -4);
+ test(S("abcdefghij"), 5, 5, S("abcdefghij"), 9, 2, -4);
+ test(S("abcdefghij"), 5, 5, S("abcdefghij"), 10, 0, 5);
+ test(S("abcdefghij"), 5, 5, S("abcdefghij"), 10, 1, 5);
+ test(S("abcdefghij"), 5, 5, S("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghij"), 5, 5, S("abcdefghijklmnopqrst"), 0, 0, 5);
+ test(S("abcdefghij"), 5, 5, S("abcdefghijklmnopqrst"), 0, 1, 5);
+ test(S("abcdefghij"), 5, 5, S("abcdefghijklmnopqrst"), 0, 10, 5);
+ test(S("abcdefghij"), 5, 5, S("abcdefghijklmnopqrst"), 0, 19, 5);
+ test(S("abcdefghij"), 5, 5, S("abcdefghijklmnopqrst"), 0, 20, 5);
+ test(S("abcdefghij"), 5, 5, S("abcdefghijklmnopqrst"), 0, 21, 5);
+ test(S("abcdefghij"), 5, 5, S("abcdefghijklmnopqrst"), 1, 0, 5);
+ test(S("abcdefghij"), 5, 5, S("abcdefghijklmnopqrst"), 1, 1, 4);
+ test(S("abcdefghij"), 5, 5, S("abcdefghijklmnopqrst"), 1, 9, 4);
+ test(S("abcdefghij"), 5, 5, S("abcdefghijklmnopqrst"), 1, 18, 4);
+ test(S("abcdefghij"), 5, 5, S("abcdefghijklmnopqrst"), 1, 19, 4);
+ test(S("abcdefghij"), 5, 5, S("abcdefghijklmnopqrst"), 1, 20, 4);
+ test(S("abcdefghij"), 5, 5, S("abcdefghijklmnopqrst"), 10, 0, 5);
+ test(S("abcdefghij"), 5, 5, S("abcdefghijklmnopqrst"), 10, 1, -5);
+ test(S("abcdefghij"), 5, 5, S("abcdefghijklmnopqrst"), 10, 5, -5);
+ test(S("abcdefghij"), 5, 5, S("abcdefghijklmnopqrst"), 10, 9, -5);
+ test(S("abcdefghij"), 5, 5, S("abcdefghijklmnopqrst"), 10, 10, -5);
+ test(S("abcdefghij"), 5, 5, S("abcdefghijklmnopqrst"), 10, 11, -5);
+ test(S("abcdefghij"), 5, 5, S("abcdefghijklmnopqrst"), 19, 0, 5);
+ test(S("abcdefghij"), 5, 5, S("abcdefghijklmnopqrst"), 19, 1, -14);
+ test(S("abcdefghij"), 5, 5, S("abcdefghijklmnopqrst"), 19, 2, -14);
+ test(S("abcdefghij"), 5, 5, S("abcdefghijklmnopqrst"), 20, 0, 5);
+ test(S("abcdefghij"), 5, 5, S("abcdefghijklmnopqrst"), 20, 1, 5);
+ test(S("abcdefghij"), 5, 5, S("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghij"), 5, 6, S(""), 0, 0, 5);
+ test(S("abcdefghij"), 5, 6, S(""), 0, 1, 5);
+ test(S("abcdefghij"), 5, 6, S(""), 1, 0, 0);
+ test(S("abcdefghij"), 5, 6, S("abcde"), 0, 0, 5);
+ test(S("abcdefghij"), 5, 6, S("abcde"), 0, 1, 5);
+ test(S("abcdefghij"), 5, 6, S("abcde"), 0, 2, 5);
+ test(S("abcdefghij"), 5, 6, S("abcde"), 0, 4, 5);
+ test(S("abcdefghij"), 5, 6, S("abcde"), 0, 5, 5);
+ test(S("abcdefghij"), 5, 6, S("abcde"), 0, 6, 5);
+ test(S("abcdefghij"), 5, 6, S("abcde"), 1, 0, 5);
+ test(S("abcdefghij"), 5, 6, S("abcde"), 1, 1, 4);
+ test(S("abcdefghij"), 5, 6, S("abcde"), 1, 2, 4);
+ test(S("abcdefghij"), 5, 6, S("abcde"), 1, 3, 4);
+ test(S("abcdefghij"), 5, 6, S("abcde"), 1, 4, 4);
+ test(S("abcdefghij"), 5, 6, S("abcde"), 1, 5, 4);
+ test(S("abcdefghij"), 5, 6, S("abcde"), 2, 0, 5);
+ test(S("abcdefghij"), 5, 6, S("abcde"), 2, 1, 3);
+ test(S("abcdefghij"), 5, 6, S("abcde"), 2, 2, 3);
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test32()
-{
- test(S("abcdefghij"), 5, 6, S("abcde"), 2, 3, 3);
- test(S("abcdefghij"), 5, 6, S("abcde"), 2, 4, 3);
- test(S("abcdefghij"), 5, 6, S("abcde"), 4, 0, 5);
- test(S("abcdefghij"), 5, 6, S("abcde"), 4, 1, 1);
- test(S("abcdefghij"), 5, 6, S("abcde"), 4, 2, 1);
- test(S("abcdefghij"), 5, 6, S("abcde"), 5, 0, 5);
- test(S("abcdefghij"), 5, 6, S("abcde"), 5, 1, 5);
- test(S("abcdefghij"), 5, 6, S("abcde"), 6, 0, 0);
- test(S("abcdefghij"), 5, 6, S("abcdefghij"), 0, 0, 5);
- test(S("abcdefghij"), 5, 6, S("abcdefghij"), 0, 1, 5);
- test(S("abcdefghij"), 5, 6, S("abcdefghij"), 0, 5, 5);
- test(S("abcdefghij"), 5, 6, S("abcdefghij"), 0, 9, 5);
- test(S("abcdefghij"), 5, 6, S("abcdefghij"), 0, 10, 5);
- test(S("abcdefghij"), 5, 6, S("abcdefghij"), 0, 11, 5);
- test(S("abcdefghij"), 5, 6, S("abcdefghij"), 1, 0, 5);
- test(S("abcdefghij"), 5, 6, S("abcdefghij"), 1, 1, 4);
- test(S("abcdefghij"), 5, 6, S("abcdefghij"), 1, 4, 4);
- test(S("abcdefghij"), 5, 6, S("abcdefghij"), 1, 8, 4);
- test(S("abcdefghij"), 5, 6, S("abcdefghij"), 1, 9, 4);
- test(S("abcdefghij"), 5, 6, S("abcdefghij"), 1, 10, 4);
- test(S("abcdefghij"), 5, 6, S("abcdefghij"), 5, 0, 5);
- test(S("abcdefghij"), 5, 6, S("abcdefghij"), 5, 1, 4);
- test(S("abcdefghij"), 5, 6, S("abcdefghij"), 5, 2, 3);
- test(S("abcdefghij"), 5, 6, S("abcdefghij"), 5, 4, 1);
- test(S("abcdefghij"), 5, 6, S("abcdefghij"), 5, 5, 0);
- test(S("abcdefghij"), 5, 6, S("abcdefghij"), 5, 6, 0);
- test(S("abcdefghij"), 5, 6, S("abcdefghij"), 9, 0, 5);
- test(S("abcdefghij"), 5, 6, S("abcdefghij"), 9, 1, -4);
- test(S("abcdefghij"), 5, 6, S("abcdefghij"), 9, 2, -4);
- test(S("abcdefghij"), 5, 6, S("abcdefghij"), 10, 0, 5);
- test(S("abcdefghij"), 5, 6, S("abcdefghij"), 10, 1, 5);
- test(S("abcdefghij"), 5, 6, S("abcdefghij"), 11, 0, 0);
- test(S("abcdefghij"), 5, 6, S("abcdefghijklmnopqrst"), 0, 0, 5);
- test(S("abcdefghij"), 5, 6, S("abcdefghijklmnopqrst"), 0, 1, 5);
- test(S("abcdefghij"), 5, 6, S("abcdefghijklmnopqrst"), 0, 10, 5);
- test(S("abcdefghij"), 5, 6, S("abcdefghijklmnopqrst"), 0, 19, 5);
- test(S("abcdefghij"), 5, 6, S("abcdefghijklmnopqrst"), 0, 20, 5);
- test(S("abcdefghij"), 5, 6, S("abcdefghijklmnopqrst"), 0, 21, 5);
- test(S("abcdefghij"), 5, 6, S("abcdefghijklmnopqrst"), 1, 0, 5);
- test(S("abcdefghij"), 5, 6, S("abcdefghijklmnopqrst"), 1, 1, 4);
- test(S("abcdefghij"), 5, 6, S("abcdefghijklmnopqrst"), 1, 9, 4);
- test(S("abcdefghij"), 5, 6, S("abcdefghijklmnopqrst"), 1, 18, 4);
- test(S("abcdefghij"), 5, 6, S("abcdefghijklmnopqrst"), 1, 19, 4);
- test(S("abcdefghij"), 5, 6, S("abcdefghijklmnopqrst"), 1, 20, 4);
- test(S("abcdefghij"), 5, 6, S("abcdefghijklmnopqrst"), 10, 0, 5);
- test(S("abcdefghij"), 5, 6, S("abcdefghijklmnopqrst"), 10, 1, -5);
- test(S("abcdefghij"), 5, 6, S("abcdefghijklmnopqrst"), 10, 5, -5);
- test(S("abcdefghij"), 5, 6, S("abcdefghijklmnopqrst"), 10, 9, -5);
- test(S("abcdefghij"), 5, 6, S("abcdefghijklmnopqrst"), 10, 10, -5);
- test(S("abcdefghij"), 5, 6, S("abcdefghijklmnopqrst"), 10, 11, -5);
- test(S("abcdefghij"), 5, 6, S("abcdefghijklmnopqrst"), 19, 0, 5);
- test(S("abcdefghij"), 5, 6, S("abcdefghijklmnopqrst"), 19, 1, -14);
- test(S("abcdefghij"), 5, 6, S("abcdefghijklmnopqrst"), 19, 2, -14);
- test(S("abcdefghij"), 5, 6, S("abcdefghijklmnopqrst"), 20, 0, 5);
- test(S("abcdefghij"), 5, 6, S("abcdefghijklmnopqrst"), 20, 1, 5);
- test(S("abcdefghij"), 5, 6, S("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghij"), 9, 0, S(""), 0, 0, 0);
- test(S("abcdefghij"), 9, 0, S(""), 0, 1, 0);
- test(S("abcdefghij"), 9, 0, S(""), 1, 0, 0);
- test(S("abcdefghij"), 9, 0, S("abcde"), 0, 0, 0);
- test(S("abcdefghij"), 9, 0, S("abcde"), 0, 1, -1);
- test(S("abcdefghij"), 9, 0, S("abcde"), 0, 2, -2);
- test(S("abcdefghij"), 9, 0, S("abcde"), 0, 4, -4);
- test(S("abcdefghij"), 9, 0, S("abcde"), 0, 5, -5);
- test(S("abcdefghij"), 9, 0, S("abcde"), 0, 6, -5);
- test(S("abcdefghij"), 9, 0, S("abcde"), 1, 0, 0);
- test(S("abcdefghij"), 9, 0, S("abcde"), 1, 1, -1);
- test(S("abcdefghij"), 9, 0, S("abcde"), 1, 2, -2);
- test(S("abcdefghij"), 9, 0, S("abcde"), 1, 3, -3);
- test(S("abcdefghij"), 9, 0, S("abcde"), 1, 4, -4);
- test(S("abcdefghij"), 9, 0, S("abcde"), 1, 5, -4);
- test(S("abcdefghij"), 9, 0, S("abcde"), 2, 0, 0);
- test(S("abcdefghij"), 9, 0, S("abcde"), 2, 1, -1);
- test(S("abcdefghij"), 9, 0, S("abcde"), 2, 2, -2);
- test(S("abcdefghij"), 9, 0, S("abcde"), 2, 3, -3);
- test(S("abcdefghij"), 9, 0, S("abcde"), 2, 4, -3);
- test(S("abcdefghij"), 9, 0, S("abcde"), 4, 0, 0);
- test(S("abcdefghij"), 9, 0, S("abcde"), 4, 1, -1);
- test(S("abcdefghij"), 9, 0, S("abcde"), 4, 2, -1);
- test(S("abcdefghij"), 9, 0, S("abcde"), 5, 0, 0);
- test(S("abcdefghij"), 9, 0, S("abcde"), 5, 1, 0);
- test(S("abcdefghij"), 9, 0, S("abcde"), 6, 0, 0);
- test(S("abcdefghij"), 9, 0, S("abcdefghij"), 0, 0, 0);
- test(S("abcdefghij"), 9, 0, S("abcdefghij"), 0, 1, -1);
- test(S("abcdefghij"), 9, 0, S("abcdefghij"), 0, 5, -5);
- test(S("abcdefghij"), 9, 0, S("abcdefghij"), 0, 9, -9);
- test(S("abcdefghij"), 9, 0, S("abcdefghij"), 0, 10, -10);
- test(S("abcdefghij"), 9, 0, S("abcdefghij"), 0, 11, -10);
- test(S("abcdefghij"), 9, 0, S("abcdefghij"), 1, 0, 0);
- test(S("abcdefghij"), 9, 0, S("abcdefghij"), 1, 1, -1);
- test(S("abcdefghij"), 9, 0, S("abcdefghij"), 1, 4, -4);
- test(S("abcdefghij"), 9, 0, S("abcdefghij"), 1, 8, -8);
- test(S("abcdefghij"), 9, 0, S("abcdefghij"), 1, 9, -9);
- test(S("abcdefghij"), 9, 0, S("abcdefghij"), 1, 10, -9);
- test(S("abcdefghij"), 9, 0, S("abcdefghij"), 5, 0, 0);
- test(S("abcdefghij"), 9, 0, S("abcdefghij"), 5, 1, -1);
- test(S("abcdefghij"), 9, 0, S("abcdefghij"), 5, 2, -2);
- test(S("abcdefghij"), 9, 0, S("abcdefghij"), 5, 4, -4);
- test(S("abcdefghij"), 9, 0, S("abcdefghij"), 5, 5, -5);
- test(S("abcdefghij"), 9, 0, S("abcdefghij"), 5, 6, -5);
+TEST_CONSTEXPR_CXX20 bool test32() {
+ test(S("abcdefghij"), 5, 6, S("abcde"), 2, 3, 3);
+ test(S("abcdefghij"), 5, 6, S("abcde"), 2, 4, 3);
+ test(S("abcdefghij"), 5, 6, S("abcde"), 4, 0, 5);
+ test(S("abcdefghij"), 5, 6, S("abcde"), 4, 1, 1);
+ test(S("abcdefghij"), 5, 6, S("abcde"), 4, 2, 1);
+ test(S("abcdefghij"), 5, 6, S("abcde"), 5, 0, 5);
+ test(S("abcdefghij"), 5, 6, S("abcde"), 5, 1, 5);
+ test(S("abcdefghij"), 5, 6, S("abcde"), 6, 0, 0);
+ test(S("abcdefghij"), 5, 6, S("abcdefghij"), 0, 0, 5);
+ test(S("abcdefghij"), 5, 6, S("abcdefghij"), 0, 1, 5);
+ test(S("abcdefghij"), 5, 6, S("abcdefghij"), 0, 5, 5);
+ test(S("abcdefghij"), 5, 6, S("abcdefghij"), 0, 9, 5);
+ test(S("abcdefghij"), 5, 6, S("abcdefghij"), 0, 10, 5);
+ test(S("abcdefghij"), 5, 6, S("abcdefghij"), 0, 11, 5);
+ test(S("abcdefghij"), 5, 6, S("abcdefghij"), 1, 0, 5);
+ test(S("abcdefghij"), 5, 6, S("abcdefghij"), 1, 1, 4);
+ test(S("abcdefghij"), 5, 6, S("abcdefghij"), 1, 4, 4);
+ test(S("abcdefghij"), 5, 6, S("abcdefghij"), 1, 8, 4);
+ test(S("abcdefghij"), 5, 6, S("abcdefghij"), 1, 9, 4);
+ test(S("abcdefghij"), 5, 6, S("abcdefghij"), 1, 10, 4);
+ test(S("abcdefghij"), 5, 6, S("abcdefghij"), 5, 0, 5);
+ test(S("abcdefghij"), 5, 6, S("abcdefghij"), 5, 1, 4);
+ test(S("abcdefghij"), 5, 6, S("abcdefghij"), 5, 2, 3);
+ test(S("abcdefghij"), 5, 6, S("abcdefghij"), 5, 4, 1);
+ test(S("abcdefghij"), 5, 6, S("abcdefghij"), 5, 5, 0);
+ test(S("abcdefghij"), 5, 6, S("abcdefghij"), 5, 6, 0);
+ test(S("abcdefghij"), 5, 6, S("abcdefghij"), 9, 0, 5);
+ test(S("abcdefghij"), 5, 6, S("abcdefghij"), 9, 1, -4);
+ test(S("abcdefghij"), 5, 6, S("abcdefghij"), 9, 2, -4);
+ test(S("abcdefghij"), 5, 6, S("abcdefghij"), 10, 0, 5);
+ test(S("abcdefghij"), 5, 6, S("abcdefghij"), 10, 1, 5);
+ test(S("abcdefghij"), 5, 6, S("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghij"), 5, 6, S("abcdefghijklmnopqrst"), 0, 0, 5);
+ test(S("abcdefghij"), 5, 6, S("abcdefghijklmnopqrst"), 0, 1, 5);
+ test(S("abcdefghij"), 5, 6, S("abcdefghijklmnopqrst"), 0, 10, 5);
+ test(S("abcdefghij"), 5, 6, S("abcdefghijklmnopqrst"), 0, 19, 5);
+ test(S("abcdefghij"), 5, 6, S("abcdefghijklmnopqrst"), 0, 20, 5);
+ test(S("abcdefghij"), 5, 6, S("abcdefghijklmnopqrst"), 0, 21, 5);
+ test(S("abcdefghij"), 5, 6, S("abcdefghijklmnopqrst"), 1, 0, 5);
+ test(S("abcdefghij"), 5, 6, S("abcdefghijklmnopqrst"), 1, 1, 4);
+ test(S("abcdefghij"), 5, 6, S("abcdefghijklmnopqrst"), 1, 9, 4);
+ test(S("abcdefghij"), 5, 6, S("abcdefghijklmnopqrst"), 1, 18, 4);
+ test(S("abcdefghij"), 5, 6, S("abcdefghijklmnopqrst"), 1, 19, 4);
+ test(S("abcdefghij"), 5, 6, S("abcdefghijklmnopqrst"), 1, 20, 4);
+ test(S("abcdefghij"), 5, 6, S("abcdefghijklmnopqrst"), 10, 0, 5);
+ test(S("abcdefghij"), 5, 6, S("abcdefghijklmnopqrst"), 10, 1, -5);
+ test(S("abcdefghij"), 5, 6, S("abcdefghijklmnopqrst"), 10, 5, -5);
+ test(S("abcdefghij"), 5, 6, S("abcdefghijklmnopqrst"), 10, 9, -5);
+ test(S("abcdefghij"), 5, 6, S("abcdefghijklmnopqrst"), 10, 10, -5);
+ test(S("abcdefghij"), 5, 6, S("abcdefghijklmnopqrst"), 10, 11, -5);
+ test(S("abcdefghij"), 5, 6, S("abcdefghijklmnopqrst"), 19, 0, 5);
+ test(S("abcdefghij"), 5, 6, S("abcdefghijklmnopqrst"), 19, 1, -14);
+ test(S("abcdefghij"), 5, 6, S("abcdefghijklmnopqrst"), 19, 2, -14);
+ test(S("abcdefghij"), 5, 6, S("abcdefghijklmnopqrst"), 20, 0, 5);
+ test(S("abcdefghij"), 5, 6, S("abcdefghijklmnopqrst"), 20, 1, 5);
+ test(S("abcdefghij"), 5, 6, S("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghij"), 9, 0, S(""), 0, 0, 0);
+ test(S("abcdefghij"), 9, 0, S(""), 0, 1, 0);
+ test(S("abcdefghij"), 9, 0, S(""), 1, 0, 0);
+ test(S("abcdefghij"), 9, 0, S("abcde"), 0, 0, 0);
+ test(S("abcdefghij"), 9, 0, S("abcde"), 0, 1, -1);
+ test(S("abcdefghij"), 9, 0, S("abcde"), 0, 2, -2);
+ test(S("abcdefghij"), 9, 0, S("abcde"), 0, 4, -4);
+ test(S("abcdefghij"), 9, 0, S("abcde"), 0, 5, -5);
+ test(S("abcdefghij"), 9, 0, S("abcde"), 0, 6, -5);
+ test(S("abcdefghij"), 9, 0, S("abcde"), 1, 0, 0);
+ test(S("abcdefghij"), 9, 0, S("abcde"), 1, 1, -1);
+ test(S("abcdefghij"), 9, 0, S("abcde"), 1, 2, -2);
+ test(S("abcdefghij"), 9, 0, S("abcde"), 1, 3, -3);
+ test(S("abcdefghij"), 9, 0, S("abcde"), 1, 4, -4);
+ test(S("abcdefghij"), 9, 0, S("abcde"), 1, 5, -4);
+ test(S("abcdefghij"), 9, 0, S("abcde"), 2, 0, 0);
+ test(S("abcdefghij"), 9, 0, S("abcde"), 2, 1, -1);
+ test(S("abcdefghij"), 9, 0, S("abcde"), 2, 2, -2);
+ test(S("abcdefghij"), 9, 0, S("abcde"), 2, 3, -3);
+ test(S("abcdefghij"), 9, 0, S("abcde"), 2, 4, -3);
+ test(S("abcdefghij"), 9, 0, S("abcde"), 4, 0, 0);
+ test(S("abcdefghij"), 9, 0, S("abcde"), 4, 1, -1);
+ test(S("abcdefghij"), 9, 0, S("abcde"), 4, 2, -1);
+ test(S("abcdefghij"), 9, 0, S("abcde"), 5, 0, 0);
+ test(S("abcdefghij"), 9, 0, S("abcde"), 5, 1, 0);
+ test(S("abcdefghij"), 9, 0, S("abcde"), 6, 0, 0);
+ test(S("abcdefghij"), 9, 0, S("abcdefghij"), 0, 0, 0);
+ test(S("abcdefghij"), 9, 0, S("abcdefghij"), 0, 1, -1);
+ test(S("abcdefghij"), 9, 0, S("abcdefghij"), 0, 5, -5);
+ test(S("abcdefghij"), 9, 0, S("abcdefghij"), 0, 9, -9);
+ test(S("abcdefghij"), 9, 0, S("abcdefghij"), 0, 10, -10);
+ test(S("abcdefghij"), 9, 0, S("abcdefghij"), 0, 11, -10);
+ test(S("abcdefghij"), 9, 0, S("abcdefghij"), 1, 0, 0);
+ test(S("abcdefghij"), 9, 0, S("abcdefghij"), 1, 1, -1);
+ test(S("abcdefghij"), 9, 0, S("abcdefghij"), 1, 4, -4);
+ test(S("abcdefghij"), 9, 0, S("abcdefghij"), 1, 8, -8);
+ test(S("abcdefghij"), 9, 0, S("abcdefghij"), 1, 9, -9);
+ test(S("abcdefghij"), 9, 0, S("abcdefghij"), 1, 10, -9);
+ test(S("abcdefghij"), 9, 0, S("abcdefghij"), 5, 0, 0);
+ test(S("abcdefghij"), 9, 0, S("abcdefghij"), 5, 1, -1);
+ test(S("abcdefghij"), 9, 0, S("abcdefghij"), 5, 2, -2);
+ test(S("abcdefghij"), 9, 0, S("abcdefghij"), 5, 4, -4);
+ test(S("abcdefghij"), 9, 0, S("abcdefghij"), 5, 5, -5);
+ test(S("abcdefghij"), 9, 0, S("abcdefghij"), 5, 6, -5);
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test33()
-{
- test(S("abcdefghij"), 9, 0, S("abcdefghij"), 9, 0, 0);
- test(S("abcdefghij"), 9, 0, S("abcdefghij"), 9, 1, -1);
- test(S("abcdefghij"), 9, 0, S("abcdefghij"), 9, 2, -1);
- test(S("abcdefghij"), 9, 0, S("abcdefghij"), 10, 0, 0);
- test(S("abcdefghij"), 9, 0, S("abcdefghij"), 10, 1, 0);
- test(S("abcdefghij"), 9, 0, S("abcdefghij"), 11, 0, 0);
- test(S("abcdefghij"), 9, 0, S("abcdefghijklmnopqrst"), 0, 0, 0);
- test(S("abcdefghij"), 9, 0, S("abcdefghijklmnopqrst"), 0, 1, -1);
- test(S("abcdefghij"), 9, 0, S("abcdefghijklmnopqrst"), 0, 10, -10);
- test(S("abcdefghij"), 9, 0, S("abcdefghijklmnopqrst"), 0, 19, -19);
- test(S("abcdefghij"), 9, 0, S("abcdefghijklmnopqrst"), 0, 20, -20);
- test(S("abcdefghij"), 9, 0, S("abcdefghijklmnopqrst"), 0, 21, -20);
- test(S("abcdefghij"), 9, 0, S("abcdefghijklmnopqrst"), 1, 0, 0);
- test(S("abcdefghij"), 9, 0, S("abcdefghijklmnopqrst"), 1, 1, -1);
- test(S("abcdefghij"), 9, 0, S("abcdefghijklmnopqrst"), 1, 9, -9);
- test(S("abcdefghij"), 9, 0, S("abcdefghijklmnopqrst"), 1, 18, -18);
- test(S("abcdefghij"), 9, 0, S("abcdefghijklmnopqrst"), 1, 19, -19);
- test(S("abcdefghij"), 9, 0, S("abcdefghijklmnopqrst"), 1, 20, -19);
- test(S("abcdefghij"), 9, 0, S("abcdefghijklmnopqrst"), 10, 0, 0);
- test(S("abcdefghij"), 9, 0, S("abcdefghijklmnopqrst"), 10, 1, -1);
- test(S("abcdefghij"), 9, 0, S("abcdefghijklmnopqrst"), 10, 5, -5);
- test(S("abcdefghij"), 9, 0, S("abcdefghijklmnopqrst"), 10, 9, -9);
- test(S("abcdefghij"), 9, 0, S("abcdefghijklmnopqrst"), 10, 10, -10);
- test(S("abcdefghij"), 9, 0, S("abcdefghijklmnopqrst"), 10, 11, -10);
- test(S("abcdefghij"), 9, 0, S("abcdefghijklmnopqrst"), 19, 0, 0);
- test(S("abcdefghij"), 9, 0, S("abcdefghijklmnopqrst"), 19, 1, -1);
- test(S("abcdefghij"), 9, 0, S("abcdefghijklmnopqrst"), 19, 2, -1);
- test(S("abcdefghij"), 9, 0, S("abcdefghijklmnopqrst"), 20, 0, 0);
- test(S("abcdefghij"), 9, 0, S("abcdefghijklmnopqrst"), 20, 1, 0);
- test(S("abcdefghij"), 9, 0, S("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghij"), 9, 1, S(""), 0, 0, 1);
- test(S("abcdefghij"), 9, 1, S(""), 0, 1, 1);
- test(S("abcdefghij"), 9, 1, S(""), 1, 0, 0);
- test(S("abcdefghij"), 9, 1, S("abcde"), 0, 0, 1);
- test(S("abcdefghij"), 9, 1, S("abcde"), 0, 1, 9);
- test(S("abcdefghij"), 9, 1, S("abcde"), 0, 2, 9);
- test(S("abcdefghij"), 9, 1, S("abcde"), 0, 4, 9);
- test(S("abcdefghij"), 9, 1, S("abcde"), 0, 5, 9);
- test(S("abcdefghij"), 9, 1, S("abcde"), 0, 6, 9);
- test(S("abcdefghij"), 9, 1, S("abcde"), 1, 0, 1);
- test(S("abcdefghij"), 9, 1, S("abcde"), 1, 1, 8);
- test(S("abcdefghij"), 9, 1, S("abcde"), 1, 2, 8);
- test(S("abcdefghij"), 9, 1, S("abcde"), 1, 3, 8);
- test(S("abcdefghij"), 9, 1, S("abcde"), 1, 4, 8);
- test(S("abcdefghij"), 9, 1, S("abcde"), 1, 5, 8);
- test(S("abcdefghij"), 9, 1, S("abcde"), 2, 0, 1);
- test(S("abcdefghij"), 9, 1, S("abcde"), 2, 1, 7);
- test(S("abcdefghij"), 9, 1, S("abcde"), 2, 2, 7);
- test(S("abcdefghij"), 9, 1, S("abcde"), 2, 3, 7);
- test(S("abcdefghij"), 9, 1, S("abcde"), 2, 4, 7);
- test(S("abcdefghij"), 9, 1, S("abcde"), 4, 0, 1);
- test(S("abcdefghij"), 9, 1, S("abcde"), 4, 1, 5);
- test(S("abcdefghij"), 9, 1, S("abcde"), 4, 2, 5);
- test(S("abcdefghij"), 9, 1, S("abcde"), 5, 0, 1);
- test(S("abcdefghij"), 9, 1, S("abcde"), 5, 1, 1);
- test(S("abcdefghij"), 9, 1, S("abcde"), 6, 0, 0);
- test(S("abcdefghij"), 9, 1, S("abcdefghij"), 0, 0, 1);
- test(S("abcdefghij"), 9, 1, S("abcdefghij"), 0, 1, 9);
- test(S("abcdefghij"), 9, 1, S("abcdefghij"), 0, 5, 9);
- test(S("abcdefghij"), 9, 1, S("abcdefghij"), 0, 9, 9);
- test(S("abcdefghij"), 9, 1, S("abcdefghij"), 0, 10, 9);
- test(S("abcdefghij"), 9, 1, S("abcdefghij"), 0, 11, 9);
- test(S("abcdefghij"), 9, 1, S("abcdefghij"), 1, 0, 1);
- test(S("abcdefghij"), 9, 1, S("abcdefghij"), 1, 1, 8);
- test(S("abcdefghij"), 9, 1, S("abcdefghij"), 1, 4, 8);
- test(S("abcdefghij"), 9, 1, S("abcdefghij"), 1, 8, 8);
- test(S("abcdefghij"), 9, 1, S("abcdefghij"), 1, 9, 8);
- test(S("abcdefghij"), 9, 1, S("abcdefghij"), 1, 10, 8);
- test(S("abcdefghij"), 9, 1, S("abcdefghij"), 5, 0, 1);
- test(S("abcdefghij"), 9, 1, S("abcdefghij"), 5, 1, 4);
- test(S("abcdefghij"), 9, 1, S("abcdefghij"), 5, 2, 4);
- test(S("abcdefghij"), 9, 1, S("abcdefghij"), 5, 4, 4);
- test(S("abcdefghij"), 9, 1, S("abcdefghij"), 5, 5, 4);
- test(S("abcdefghij"), 9, 1, S("abcdefghij"), 5, 6, 4);
- test(S("abcdefghij"), 9, 1, S("abcdefghij"), 9, 0, 1);
- test(S("abcdefghij"), 9, 1, S("abcdefghij"), 9, 1, 0);
- test(S("abcdefghij"), 9, 1, S("abcdefghij"), 9, 2, 0);
- test(S("abcdefghij"), 9, 1, S("abcdefghij"), 10, 0, 1);
- test(S("abcdefghij"), 9, 1, S("abcdefghij"), 10, 1, 1);
- test(S("abcdefghij"), 9, 1, S("abcdefghij"), 11, 0, 0);
- test(S("abcdefghij"), 9, 1, S("abcdefghijklmnopqrst"), 0, 0, 1);
- test(S("abcdefghij"), 9, 1, S("abcdefghijklmnopqrst"), 0, 1, 9);
- test(S("abcdefghij"), 9, 1, S("abcdefghijklmnopqrst"), 0, 10, 9);
- test(S("abcdefghij"), 9, 1, S("abcdefghijklmnopqrst"), 0, 19, 9);
- test(S("abcdefghij"), 9, 1, S("abcdefghijklmnopqrst"), 0, 20, 9);
- test(S("abcdefghij"), 9, 1, S("abcdefghijklmnopqrst"), 0, 21, 9);
- test(S("abcdefghij"), 9, 1, S("abcdefghijklmnopqrst"), 1, 0, 1);
- test(S("abcdefghij"), 9, 1, S("abcdefghijklmnopqrst"), 1, 1, 8);
- test(S("abcdefghij"), 9, 1, S("abcdefghijklmnopqrst"), 1, 9, 8);
- test(S("abcdefghij"), 9, 1, S("abcdefghijklmnopqrst"), 1, 18, 8);
- test(S("abcdefghij"), 9, 1, S("abcdefghijklmnopqrst"), 1, 19, 8);
- test(S("abcdefghij"), 9, 1, S("abcdefghijklmnopqrst"), 1, 20, 8);
- test(S("abcdefghij"), 9, 1, S("abcdefghijklmnopqrst"), 10, 0, 1);
- test(S("abcdefghij"), 9, 1, S("abcdefghijklmnopqrst"), 10, 1, -1);
- test(S("abcdefghij"), 9, 1, S("abcdefghijklmnopqrst"), 10, 5, -1);
- test(S("abcdefghij"), 9, 1, S("abcdefghijklmnopqrst"), 10, 9, -1);
- test(S("abcdefghij"), 9, 1, S("abcdefghijklmnopqrst"), 10, 10, -1);
- test(S("abcdefghij"), 9, 1, S("abcdefghijklmnopqrst"), 10, 11, -1);
- test(S("abcdefghij"), 9, 1, S("abcdefghijklmnopqrst"), 19, 0, 1);
- test(S("abcdefghij"), 9, 1, S("abcdefghijklmnopqrst"), 19, 1, -10);
+TEST_CONSTEXPR_CXX20 bool test33() {
+ test(S("abcdefghij"), 9, 0, S("abcdefghij"), 9, 0, 0);
+ test(S("abcdefghij"), 9, 0, S("abcdefghij"), 9, 1, -1);
+ test(S("abcdefghij"), 9, 0, S("abcdefghij"), 9, 2, -1);
+ test(S("abcdefghij"), 9, 0, S("abcdefghij"), 10, 0, 0);
+ test(S("abcdefghij"), 9, 0, S("abcdefghij"), 10, 1, 0);
+ test(S("abcdefghij"), 9, 0, S("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghij"), 9, 0, S("abcdefghijklmnopqrst"), 0, 0, 0);
+ test(S("abcdefghij"), 9, 0, S("abcdefghijklmnopqrst"), 0, 1, -1);
+ test(S("abcdefghij"), 9, 0, S("abcdefghijklmnopqrst"), 0, 10, -10);
+ test(S("abcdefghij"), 9, 0, S("abcdefghijklmnopqrst"), 0, 19, -19);
+ test(S("abcdefghij"), 9, 0, S("abcdefghijklmnopqrst"), 0, 20, -20);
+ test(S("abcdefghij"), 9, 0, S("abcdefghijklmnopqrst"), 0, 21, -20);
+ test(S("abcdefghij"), 9, 0, S("abcdefghijklmnopqrst"), 1, 0, 0);
+ test(S("abcdefghij"), 9, 0, S("abcdefghijklmnopqrst"), 1, 1, -1);
+ test(S("abcdefghij"), 9, 0, S("abcdefghijklmnopqrst"), 1, 9, -9);
+ test(S("abcdefghij"), 9, 0, S("abcdefghijklmnopqrst"), 1, 18, -18);
+ test(S("abcdefghij"), 9, 0, S("abcdefghijklmnopqrst"), 1, 19, -19);
+ test(S("abcdefghij"), 9, 0, S("abcdefghijklmnopqrst"), 1, 20, -19);
+ test(S("abcdefghij"), 9, 0, S("abcdefghijklmnopqrst"), 10, 0, 0);
+ test(S("abcdefghij"), 9, 0, S("abcdefghijklmnopqrst"), 10, 1, -1);
+ test(S("abcdefghij"), 9, 0, S("abcdefghijklmnopqrst"), 10, 5, -5);
+ test(S("abcdefghij"), 9, 0, S("abcdefghijklmnopqrst"), 10, 9, -9);
+ test(S("abcdefghij"), 9, 0, S("abcdefghijklmnopqrst"), 10, 10, -10);
+ test(S("abcdefghij"), 9, 0, S("abcdefghijklmnopqrst"), 10, 11, -10);
+ test(S("abcdefghij"), 9, 0, S("abcdefghijklmnopqrst"), 19, 0, 0);
+ test(S("abcdefghij"), 9, 0, S("abcdefghijklmnopqrst"), 19, 1, -1);
+ test(S("abcdefghij"), 9, 0, S("abcdefghijklmnopqrst"), 19, 2, -1);
+ test(S("abcdefghij"), 9, 0, S("abcdefghijklmnopqrst"), 20, 0, 0);
+ test(S("abcdefghij"), 9, 0, S("abcdefghijklmnopqrst"), 20, 1, 0);
+ test(S("abcdefghij"), 9, 0, S("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghij"), 9, 1, S(""), 0, 0, 1);
+ test(S("abcdefghij"), 9, 1, S(""), 0, 1, 1);
+ test(S("abcdefghij"), 9, 1, S(""), 1, 0, 0);
+ test(S("abcdefghij"), 9, 1, S("abcde"), 0, 0, 1);
+ test(S("abcdefghij"), 9, 1, S("abcde"), 0, 1, 9);
+ test(S("abcdefghij"), 9, 1, S("abcde"), 0, 2, 9);
+ test(S("abcdefghij"), 9, 1, S("abcde"), 0, 4, 9);
+ test(S("abcdefghij"), 9, 1, S("abcde"), 0, 5, 9);
+ test(S("abcdefghij"), 9, 1, S("abcde"), 0, 6, 9);
+ test(S("abcdefghij"), 9, 1, S("abcde"), 1, 0, 1);
+ test(S("abcdefghij"), 9, 1, S("abcde"), 1, 1, 8);
+ test(S("abcdefghij"), 9, 1, S("abcde"), 1, 2, 8);
+ test(S("abcdefghij"), 9, 1, S("abcde"), 1, 3, 8);
+ test(S("abcdefghij"), 9, 1, S("abcde"), 1, 4, 8);
+ test(S("abcdefghij"), 9, 1, S("abcde"), 1, 5, 8);
+ test(S("abcdefghij"), 9, 1, S("abcde"), 2, 0, 1);
+ test(S("abcdefghij"), 9, 1, S("abcde"), 2, 1, 7);
+ test(S("abcdefghij"), 9, 1, S("abcde"), 2, 2, 7);
+ test(S("abcdefghij"), 9, 1, S("abcde"), 2, 3, 7);
+ test(S("abcdefghij"), 9, 1, S("abcde"), 2, 4, 7);
+ test(S("abcdefghij"), 9, 1, S("abcde"), 4, 0, 1);
+ test(S("abcdefghij"), 9, 1, S("abcde"), 4, 1, 5);
+ test(S("abcdefghij"), 9, 1, S("abcde"), 4, 2, 5);
+ test(S("abcdefghij"), 9, 1, S("abcde"), 5, 0, 1);
+ test(S("abcdefghij"), 9, 1, S("abcde"), 5, 1, 1);
+ test(S("abcdefghij"), 9, 1, S("abcde"), 6, 0, 0);
+ test(S("abcdefghij"), 9, 1, S("abcdefghij"), 0, 0, 1);
+ test(S("abcdefghij"), 9, 1, S("abcdefghij"), 0, 1, 9);
+ test(S("abcdefghij"), 9, 1, S("abcdefghij"), 0, 5, 9);
+ test(S("abcdefghij"), 9, 1, S("abcdefghij"), 0, 9, 9);
+ test(S("abcdefghij"), 9, 1, S("abcdefghij"), 0, 10, 9);
+ test(S("abcdefghij"), 9, 1, S("abcdefghij"), 0, 11, 9);
+ test(S("abcdefghij"), 9, 1, S("abcdefghij"), 1, 0, 1);
+ test(S("abcdefghij"), 9, 1, S("abcdefghij"), 1, 1, 8);
+ test(S("abcdefghij"), 9, 1, S("abcdefghij"), 1, 4, 8);
+ test(S("abcdefghij"), 9, 1, S("abcdefghij"), 1, 8, 8);
+ test(S("abcdefghij"), 9, 1, S("abcdefghij"), 1, 9, 8);
+ test(S("abcdefghij"), 9, 1, S("abcdefghij"), 1, 10, 8);
+ test(S("abcdefghij"), 9, 1, S("abcdefghij"), 5, 0, 1);
+ test(S("abcdefghij"), 9, 1, S("abcdefghij"), 5, 1, 4);
+ test(S("abcdefghij"), 9, 1, S("abcdefghij"), 5, 2, 4);
+ test(S("abcdefghij"), 9, 1, S("abcdefghij"), 5, 4, 4);
+ test(S("abcdefghij"), 9, 1, S("abcdefghij"), 5, 5, 4);
+ test(S("abcdefghij"), 9, 1, S("abcdefghij"), 5, 6, 4);
+ test(S("abcdefghij"), 9, 1, S("abcdefghij"), 9, 0, 1);
+ test(S("abcdefghij"), 9, 1, S("abcdefghij"), 9, 1, 0);
+ test(S("abcdefghij"), 9, 1, S("abcdefghij"), 9, 2, 0);
+ test(S("abcdefghij"), 9, 1, S("abcdefghij"), 10, 0, 1);
+ test(S("abcdefghij"), 9, 1, S("abcdefghij"), 10, 1, 1);
+ test(S("abcdefghij"), 9, 1, S("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghij"), 9, 1, S("abcdefghijklmnopqrst"), 0, 0, 1);
+ test(S("abcdefghij"), 9, 1, S("abcdefghijklmnopqrst"), 0, 1, 9);
+ test(S("abcdefghij"), 9, 1, S("abcdefghijklmnopqrst"), 0, 10, 9);
+ test(S("abcdefghij"), 9, 1, S("abcdefghijklmnopqrst"), 0, 19, 9);
+ test(S("abcdefghij"), 9, 1, S("abcdefghijklmnopqrst"), 0, 20, 9);
+ test(S("abcdefghij"), 9, 1, S("abcdefghijklmnopqrst"), 0, 21, 9);
+ test(S("abcdefghij"), 9, 1, S("abcdefghijklmnopqrst"), 1, 0, 1);
+ test(S("abcdefghij"), 9, 1, S("abcdefghijklmnopqrst"), 1, 1, 8);
+ test(S("abcdefghij"), 9, 1, S("abcdefghijklmnopqrst"), 1, 9, 8);
+ test(S("abcdefghij"), 9, 1, S("abcdefghijklmnopqrst"), 1, 18, 8);
+ test(S("abcdefghij"), 9, 1, S("abcdefghijklmnopqrst"), 1, 19, 8);
+ test(S("abcdefghij"), 9, 1, S("abcdefghijklmnopqrst"), 1, 20, 8);
+ test(S("abcdefghij"), 9, 1, S("abcdefghijklmnopqrst"), 10, 0, 1);
+ test(S("abcdefghij"), 9, 1, S("abcdefghijklmnopqrst"), 10, 1, -1);
+ test(S("abcdefghij"), 9, 1, S("abcdefghijklmnopqrst"), 10, 5, -1);
+ test(S("abcdefghij"), 9, 1, S("abcdefghijklmnopqrst"), 10, 9, -1);
+ test(S("abcdefghij"), 9, 1, S("abcdefghijklmnopqrst"), 10, 10, -1);
+ test(S("abcdefghij"), 9, 1, S("abcdefghijklmnopqrst"), 10, 11, -1);
+ test(S("abcdefghij"), 9, 1, S("abcdefghijklmnopqrst"), 19, 0, 1);
+ test(S("abcdefghij"), 9, 1, S("abcdefghijklmnopqrst"), 19, 1, -10);
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test34()
-{
- test(S("abcdefghij"), 9, 1, S("abcdefghijklmnopqrst"), 19, 2, -10);
- test(S("abcdefghij"), 9, 1, S("abcdefghijklmnopqrst"), 20, 0, 1);
- test(S("abcdefghij"), 9, 1, S("abcdefghijklmnopqrst"), 20, 1, 1);
- test(S("abcdefghij"), 9, 1, S("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghij"), 9, 2, S(""), 0, 0, 1);
- test(S("abcdefghij"), 9, 2, S(""), 0, 1, 1);
- test(S("abcdefghij"), 9, 2, S(""), 1, 0, 0);
- test(S("abcdefghij"), 9, 2, S("abcde"), 0, 0, 1);
- test(S("abcdefghij"), 9, 2, S("abcde"), 0, 1, 9);
- test(S("abcdefghij"), 9, 2, S("abcde"), 0, 2, 9);
- test(S("abcdefghij"), 9, 2, S("abcde"), 0, 4, 9);
- test(S("abcdefghij"), 9, 2, S("abcde"), 0, 5, 9);
- test(S("abcdefghij"), 9, 2, S("abcde"), 0, 6, 9);
- test(S("abcdefghij"), 9, 2, S("abcde"), 1, 0, 1);
- test(S("abcdefghij"), 9, 2, S("abcde"), 1, 1, 8);
- test(S("abcdefghij"), 9, 2, S("abcde"), 1, 2, 8);
- test(S("abcdefghij"), 9, 2, S("abcde"), 1, 3, 8);
- test(S("abcdefghij"), 9, 2, S("abcde"), 1, 4, 8);
- test(S("abcdefghij"), 9, 2, S("abcde"), 1, 5, 8);
- test(S("abcdefghij"), 9, 2, S("abcde"), 2, 0, 1);
- test(S("abcdefghij"), 9, 2, S("abcde"), 2, 1, 7);
- test(S("abcdefghij"), 9, 2, S("abcde"), 2, 2, 7);
- test(S("abcdefghij"), 9, 2, S("abcde"), 2, 3, 7);
- test(S("abcdefghij"), 9, 2, S("abcde"), 2, 4, 7);
- test(S("abcdefghij"), 9, 2, S("abcde"), 4, 0, 1);
- test(S("abcdefghij"), 9, 2, S("abcde"), 4, 1, 5);
- test(S("abcdefghij"), 9, 2, S("abcde"), 4, 2, 5);
- test(S("abcdefghij"), 9, 2, S("abcde"), 5, 0, 1);
- test(S("abcdefghij"), 9, 2, S("abcde"), 5, 1, 1);
- test(S("abcdefghij"), 9, 2, S("abcde"), 6, 0, 0);
- test(S("abcdefghij"), 9, 2, S("abcdefghij"), 0, 0, 1);
- test(S("abcdefghij"), 9, 2, S("abcdefghij"), 0, 1, 9);
- test(S("abcdefghij"), 9, 2, S("abcdefghij"), 0, 5, 9);
- test(S("abcdefghij"), 9, 2, S("abcdefghij"), 0, 9, 9);
- test(S("abcdefghij"), 9, 2, S("abcdefghij"), 0, 10, 9);
- test(S("abcdefghij"), 9, 2, S("abcdefghij"), 0, 11, 9);
- test(S("abcdefghij"), 9, 2, S("abcdefghij"), 1, 0, 1);
- test(S("abcdefghij"), 9, 2, S("abcdefghij"), 1, 1, 8);
- test(S("abcdefghij"), 9, 2, S("abcdefghij"), 1, 4, 8);
- test(S("abcdefghij"), 9, 2, S("abcdefghij"), 1, 8, 8);
- test(S("abcdefghij"), 9, 2, S("abcdefghij"), 1, 9, 8);
- test(S("abcdefghij"), 9, 2, S("abcdefghij"), 1, 10, 8);
- test(S("abcdefghij"), 9, 2, S("abcdefghij"), 5, 0, 1);
- test(S("abcdefghij"), 9, 2, S("abcdefghij"), 5, 1, 4);
- test(S("abcdefghij"), 9, 2, S("abcdefghij"), 5, 2, 4);
- test(S("abcdefghij"), 9, 2, S("abcdefghij"), 5, 4, 4);
- test(S("abcdefghij"), 9, 2, S("abcdefghij"), 5, 5, 4);
- test(S("abcdefghij"), 9, 2, S("abcdefghij"), 5, 6, 4);
- test(S("abcdefghij"), 9, 2, S("abcdefghij"), 9, 0, 1);
- test(S("abcdefghij"), 9, 2, S("abcdefghij"), 9, 1, 0);
- test(S("abcdefghij"), 9, 2, S("abcdefghij"), 9, 2, 0);
- test(S("abcdefghij"), 9, 2, S("abcdefghij"), 10, 0, 1);
- test(S("abcdefghij"), 9, 2, S("abcdefghij"), 10, 1, 1);
- test(S("abcdefghij"), 9, 2, S("abcdefghij"), 11, 0, 0);
- test(S("abcdefghij"), 9, 2, S("abcdefghijklmnopqrst"), 0, 0, 1);
- test(S("abcdefghij"), 9, 2, S("abcdefghijklmnopqrst"), 0, 1, 9);
- test(S("abcdefghij"), 9, 2, S("abcdefghijklmnopqrst"), 0, 10, 9);
- test(S("abcdefghij"), 9, 2, S("abcdefghijklmnopqrst"), 0, 19, 9);
- test(S("abcdefghij"), 9, 2, S("abcdefghijklmnopqrst"), 0, 20, 9);
- test(S("abcdefghij"), 9, 2, S("abcdefghijklmnopqrst"), 0, 21, 9);
- test(S("abcdefghij"), 9, 2, S("abcdefghijklmnopqrst"), 1, 0, 1);
- test(S("abcdefghij"), 9, 2, S("abcdefghijklmnopqrst"), 1, 1, 8);
- test(S("abcdefghij"), 9, 2, S("abcdefghijklmnopqrst"), 1, 9, 8);
- test(S("abcdefghij"), 9, 2, S("abcdefghijklmnopqrst"), 1, 18, 8);
- test(S("abcdefghij"), 9, 2, S("abcdefghijklmnopqrst"), 1, 19, 8);
- test(S("abcdefghij"), 9, 2, S("abcdefghijklmnopqrst"), 1, 20, 8);
- test(S("abcdefghij"), 9, 2, S("abcdefghijklmnopqrst"), 10, 0, 1);
- test(S("abcdefghij"), 9, 2, S("abcdefghijklmnopqrst"), 10, 1, -1);
- test(S("abcdefghij"), 9, 2, S("abcdefghijklmnopqrst"), 10, 5, -1);
- test(S("abcdefghij"), 9, 2, S("abcdefghijklmnopqrst"), 10, 9, -1);
- test(S("abcdefghij"), 9, 2, S("abcdefghijklmnopqrst"), 10, 10, -1);
- test(S("abcdefghij"), 9, 2, S("abcdefghijklmnopqrst"), 10, 11, -1);
- test(S("abcdefghij"), 9, 2, S("abcdefghijklmnopqrst"), 19, 0, 1);
- test(S("abcdefghij"), 9, 2, S("abcdefghijklmnopqrst"), 19, 1, -10);
- test(S("abcdefghij"), 9, 2, S("abcdefghijklmnopqrst"), 19, 2, -10);
- test(S("abcdefghij"), 9, 2, S("abcdefghijklmnopqrst"), 20, 0, 1);
- test(S("abcdefghij"), 9, 2, S("abcdefghijklmnopqrst"), 20, 1, 1);
- test(S("abcdefghij"), 9, 2, S("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghij"), 10, 0, S(""), 0, 0, 0);
- test(S("abcdefghij"), 10, 0, S(""), 0, 1, 0);
- test(S("abcdefghij"), 10, 0, S(""), 1, 0, 0);
- test(S("abcdefghij"), 10, 0, S("abcde"), 0, 0, 0);
- test(S("abcdefghij"), 10, 0, S("abcde"), 0, 1, -1);
- test(S("abcdefghij"), 10, 0, S("abcde"), 0, 2, -2);
- test(S("abcdefghij"), 10, 0, S("abcde"), 0, 4, -4);
- test(S("abcdefghij"), 10, 0, S("abcde"), 0, 5, -5);
- test(S("abcdefghij"), 10, 0, S("abcde"), 0, 6, -5);
- test(S("abcdefghij"), 10, 0, S("abcde"), 1, 0, 0);
- test(S("abcdefghij"), 10, 0, S("abcde"), 1, 1, -1);
- test(S("abcdefghij"), 10, 0, S("abcde"), 1, 2, -2);
- test(S("abcdefghij"), 10, 0, S("abcde"), 1, 3, -3);
- test(S("abcdefghij"), 10, 0, S("abcde"), 1, 4, -4);
- test(S("abcdefghij"), 10, 0, S("abcde"), 1, 5, -4);
- test(S("abcdefghij"), 10, 0, S("abcde"), 2, 0, 0);
- test(S("abcdefghij"), 10, 0, S("abcde"), 2, 1, -1);
- test(S("abcdefghij"), 10, 0, S("abcde"), 2, 2, -2);
- test(S("abcdefghij"), 10, 0, S("abcde"), 2, 3, -3);
- test(S("abcdefghij"), 10, 0, S("abcde"), 2, 4, -3);
- test(S("abcdefghij"), 10, 0, S("abcde"), 4, 0, 0);
- test(S("abcdefghij"), 10, 0, S("abcde"), 4, 1, -1);
+TEST_CONSTEXPR_CXX20 bool test34() {
+ test(S("abcdefghij"), 9, 1, S("abcdefghijklmnopqrst"), 19, 2, -10);
+ test(S("abcdefghij"), 9, 1, S("abcdefghijklmnopqrst"), 20, 0, 1);
+ test(S("abcdefghij"), 9, 1, S("abcdefghijklmnopqrst"), 20, 1, 1);
+ test(S("abcdefghij"), 9, 1, S("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghij"), 9, 2, S(""), 0, 0, 1);
+ test(S("abcdefghij"), 9, 2, S(""), 0, 1, 1);
+ test(S("abcdefghij"), 9, 2, S(""), 1, 0, 0);
+ test(S("abcdefghij"), 9, 2, S("abcde"), 0, 0, 1);
+ test(S("abcdefghij"), 9, 2, S("abcde"), 0, 1, 9);
+ test(S("abcdefghij"), 9, 2, S("abcde"), 0, 2, 9);
+ test(S("abcdefghij"), 9, 2, S("abcde"), 0, 4, 9);
+ test(S("abcdefghij"), 9, 2, S("abcde"), 0, 5, 9);
+ test(S("abcdefghij"), 9, 2, S("abcde"), 0, 6, 9);
+ test(S("abcdefghij"), 9, 2, S("abcde"), 1, 0, 1);
+ test(S("abcdefghij"), 9, 2, S("abcde"), 1, 1, 8);
+ test(S("abcdefghij"), 9, 2, S("abcde"), 1, 2, 8);
+ test(S("abcdefghij"), 9, 2, S("abcde"), 1, 3, 8);
+ test(S("abcdefghij"), 9, 2, S("abcde"), 1, 4, 8);
+ test(S("abcdefghij"), 9, 2, S("abcde"), 1, 5, 8);
+ test(S("abcdefghij"), 9, 2, S("abcde"), 2, 0, 1);
+ test(S("abcdefghij"), 9, 2, S("abcde"), 2, 1, 7);
+ test(S("abcdefghij"), 9, 2, S("abcde"), 2, 2, 7);
+ test(S("abcdefghij"), 9, 2, S("abcde"), 2, 3, 7);
+ test(S("abcdefghij"), 9, 2, S("abcde"), 2, 4, 7);
+ test(S("abcdefghij"), 9, 2, S("abcde"), 4, 0, 1);
+ test(S("abcdefghij"), 9, 2, S("abcde"), 4, 1, 5);
+ test(S("abcdefghij"), 9, 2, S("abcde"), 4, 2, 5);
+ test(S("abcdefghij"), 9, 2, S("abcde"), 5, 0, 1);
+ test(S("abcdefghij"), 9, 2, S("abcde"), 5, 1, 1);
+ test(S("abcdefghij"), 9, 2, S("abcde"), 6, 0, 0);
+ test(S("abcdefghij"), 9, 2, S("abcdefghij"), 0, 0, 1);
+ test(S("abcdefghij"), 9, 2, S("abcdefghij"), 0, 1, 9);
+ test(S("abcdefghij"), 9, 2, S("abcdefghij"), 0, 5, 9);
+ test(S("abcdefghij"), 9, 2, S("abcdefghij"), 0, 9, 9);
+ test(S("abcdefghij"), 9, 2, S("abcdefghij"), 0, 10, 9);
+ test(S("abcdefghij"), 9, 2, S("abcdefghij"), 0, 11, 9);
+ test(S("abcdefghij"), 9, 2, S("abcdefghij"), 1, 0, 1);
+ test(S("abcdefghij"), 9, 2, S("abcdefghij"), 1, 1, 8);
+ test(S("abcdefghij"), 9, 2, S("abcdefghij"), 1, 4, 8);
+ test(S("abcdefghij"), 9, 2, S("abcdefghij"), 1, 8, 8);
+ test(S("abcdefghij"), 9, 2, S("abcdefghij"), 1, 9, 8);
+ test(S("abcdefghij"), 9, 2, S("abcdefghij"), 1, 10, 8);
+ test(S("abcdefghij"), 9, 2, S("abcdefghij"), 5, 0, 1);
+ test(S("abcdefghij"), 9, 2, S("abcdefghij"), 5, 1, 4);
+ test(S("abcdefghij"), 9, 2, S("abcdefghij"), 5, 2, 4);
+ test(S("abcdefghij"), 9, 2, S("abcdefghij"), 5, 4, 4);
+ test(S("abcdefghij"), 9, 2, S("abcdefghij"), 5, 5, 4);
+ test(S("abcdefghij"), 9, 2, S("abcdefghij"), 5, 6, 4);
+ test(S("abcdefghij"), 9, 2, S("abcdefghij"), 9, 0, 1);
+ test(S("abcdefghij"), 9, 2, S("abcdefghij"), 9, 1, 0);
+ test(S("abcdefghij"), 9, 2, S("abcdefghij"), 9, 2, 0);
+ test(S("abcdefghij"), 9, 2, S("abcdefghij"), 10, 0, 1);
+ test(S("abcdefghij"), 9, 2, S("abcdefghij"), 10, 1, 1);
+ test(S("abcdefghij"), 9, 2, S("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghij"), 9, 2, S("abcdefghijklmnopqrst"), 0, 0, 1);
+ test(S("abcdefghij"), 9, 2, S("abcdefghijklmnopqrst"), 0, 1, 9);
+ test(S("abcdefghij"), 9, 2, S("abcdefghijklmnopqrst"), 0, 10, 9);
+ test(S("abcdefghij"), 9, 2, S("abcdefghijklmnopqrst"), 0, 19, 9);
+ test(S("abcdefghij"), 9, 2, S("abcdefghijklmnopqrst"), 0, 20, 9);
+ test(S("abcdefghij"), 9, 2, S("abcdefghijklmnopqrst"), 0, 21, 9);
+ test(S("abcdefghij"), 9, 2, S("abcdefghijklmnopqrst"), 1, 0, 1);
+ test(S("abcdefghij"), 9, 2, S("abcdefghijklmnopqrst"), 1, 1, 8);
+ test(S("abcdefghij"), 9, 2, S("abcdefghijklmnopqrst"), 1, 9, 8);
+ test(S("abcdefghij"), 9, 2, S("abcdefghijklmnopqrst"), 1, 18, 8);
+ test(S("abcdefghij"), 9, 2, S("abcdefghijklmnopqrst"), 1, 19, 8);
+ test(S("abcdefghij"), 9, 2, S("abcdefghijklmnopqrst"), 1, 20, 8);
+ test(S("abcdefghij"), 9, 2, S("abcdefghijklmnopqrst"), 10, 0, 1);
+ test(S("abcdefghij"), 9, 2, S("abcdefghijklmnopqrst"), 10, 1, -1);
+ test(S("abcdefghij"), 9, 2, S("abcdefghijklmnopqrst"), 10, 5, -1);
+ test(S("abcdefghij"), 9, 2, S("abcdefghijklmnopqrst"), 10, 9, -1);
+ test(S("abcdefghij"), 9, 2, S("abcdefghijklmnopqrst"), 10, 10, -1);
+ test(S("abcdefghij"), 9, 2, S("abcdefghijklmnopqrst"), 10, 11, -1);
+ test(S("abcdefghij"), 9, 2, S("abcdefghijklmnopqrst"), 19, 0, 1);
+ test(S("abcdefghij"), 9, 2, S("abcdefghijklmnopqrst"), 19, 1, -10);
+ test(S("abcdefghij"), 9, 2, S("abcdefghijklmnopqrst"), 19, 2, -10);
+ test(S("abcdefghij"), 9, 2, S("abcdefghijklmnopqrst"), 20, 0, 1);
+ test(S("abcdefghij"), 9, 2, S("abcdefghijklmnopqrst"), 20, 1, 1);
+ test(S("abcdefghij"), 9, 2, S("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghij"), 10, 0, S(""), 0, 0, 0);
+ test(S("abcdefghij"), 10, 0, S(""), 0, 1, 0);
+ test(S("abcdefghij"), 10, 0, S(""), 1, 0, 0);
+ test(S("abcdefghij"), 10, 0, S("abcde"), 0, 0, 0);
+ test(S("abcdefghij"), 10, 0, S("abcde"), 0, 1, -1);
+ test(S("abcdefghij"), 10, 0, S("abcde"), 0, 2, -2);
+ test(S("abcdefghij"), 10, 0, S("abcde"), 0, 4, -4);
+ test(S("abcdefghij"), 10, 0, S("abcde"), 0, 5, -5);
+ test(S("abcdefghij"), 10, 0, S("abcde"), 0, 6, -5);
+ test(S("abcdefghij"), 10, 0, S("abcde"), 1, 0, 0);
+ test(S("abcdefghij"), 10, 0, S("abcde"), 1, 1, -1);
+ test(S("abcdefghij"), 10, 0, S("abcde"), 1, 2, -2);
+ test(S("abcdefghij"), 10, 0, S("abcde"), 1, 3, -3);
+ test(S("abcdefghij"), 10, 0, S("abcde"), 1, 4, -4);
+ test(S("abcdefghij"), 10, 0, S("abcde"), 1, 5, -4);
+ test(S("abcdefghij"), 10, 0, S("abcde"), 2, 0, 0);
+ test(S("abcdefghij"), 10, 0, S("abcde"), 2, 1, -1);
+ test(S("abcdefghij"), 10, 0, S("abcde"), 2, 2, -2);
+ test(S("abcdefghij"), 10, 0, S("abcde"), 2, 3, -3);
+ test(S("abcdefghij"), 10, 0, S("abcde"), 2, 4, -3);
+ test(S("abcdefghij"), 10, 0, S("abcde"), 4, 0, 0);
+ test(S("abcdefghij"), 10, 0, S("abcde"), 4, 1, -1);
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test35()
-{
- test(S("abcdefghij"), 10, 0, S("abcde"), 4, 2, -1);
- test(S("abcdefghij"), 10, 0, S("abcde"), 5, 0, 0);
- test(S("abcdefghij"), 10, 0, S("abcde"), 5, 1, 0);
- test(S("abcdefghij"), 10, 0, S("abcde"), 6, 0, 0);
- test(S("abcdefghij"), 10, 0, S("abcdefghij"), 0, 0, 0);
- test(S("abcdefghij"), 10, 0, S("abcdefghij"), 0, 1, -1);
- test(S("abcdefghij"), 10, 0, S("abcdefghij"), 0, 5, -5);
- test(S("abcdefghij"), 10, 0, S("abcdefghij"), 0, 9, -9);
- test(S("abcdefghij"), 10, 0, S("abcdefghij"), 0, 10, -10);
- test(S("abcdefghij"), 10, 0, S("abcdefghij"), 0, 11, -10);
- test(S("abcdefghij"), 10, 0, S("abcdefghij"), 1, 0, 0);
- test(S("abcdefghij"), 10, 0, S("abcdefghij"), 1, 1, -1);
- test(S("abcdefghij"), 10, 0, S("abcdefghij"), 1, 4, -4);
- test(S("abcdefghij"), 10, 0, S("abcdefghij"), 1, 8, -8);
- test(S("abcdefghij"), 10, 0, S("abcdefghij"), 1, 9, -9);
- test(S("abcdefghij"), 10, 0, S("abcdefghij"), 1, 10, -9);
- test(S("abcdefghij"), 10, 0, S("abcdefghij"), 5, 0, 0);
- test(S("abcdefghij"), 10, 0, S("abcdefghij"), 5, 1, -1);
- test(S("abcdefghij"), 10, 0, S("abcdefghij"), 5, 2, -2);
- test(S("abcdefghij"), 10, 0, S("abcdefghij"), 5, 4, -4);
- test(S("abcdefghij"), 10, 0, S("abcdefghij"), 5, 5, -5);
- test(S("abcdefghij"), 10, 0, S("abcdefghij"), 5, 6, -5);
- test(S("abcdefghij"), 10, 0, S("abcdefghij"), 9, 0, 0);
- test(S("abcdefghij"), 10, 0, S("abcdefghij"), 9, 1, -1);
- test(S("abcdefghij"), 10, 0, S("abcdefghij"), 9, 2, -1);
- test(S("abcdefghij"), 10, 0, S("abcdefghij"), 10, 0, 0);
- test(S("abcdefghij"), 10, 0, S("abcdefghij"), 10, 1, 0);
- test(S("abcdefghij"), 10, 0, S("abcdefghij"), 11, 0, 0);
- test(S("abcdefghij"), 10, 0, S("abcdefghijklmnopqrst"), 0, 0, 0);
- test(S("abcdefghij"), 10, 0, S("abcdefghijklmnopqrst"), 0, 1, -1);
- test(S("abcdefghij"), 10, 0, S("abcdefghijklmnopqrst"), 0, 10, -10);
- test(S("abcdefghij"), 10, 0, S("abcdefghijklmnopqrst"), 0, 19, -19);
- test(S("abcdefghij"), 10, 0, S("abcdefghijklmnopqrst"), 0, 20, -20);
- test(S("abcdefghij"), 10, 0, S("abcdefghijklmnopqrst"), 0, 21, -20);
- test(S("abcdefghij"), 10, 0, S("abcdefghijklmnopqrst"), 1, 0, 0);
- test(S("abcdefghij"), 10, 0, S("abcdefghijklmnopqrst"), 1, 1, -1);
- test(S("abcdefghij"), 10, 0, S("abcdefghijklmnopqrst"), 1, 9, -9);
- test(S("abcdefghij"), 10, 0, S("abcdefghijklmnopqrst"), 1, 18, -18);
- test(S("abcdefghij"), 10, 0, S("abcdefghijklmnopqrst"), 1, 19, -19);
- test(S("abcdefghij"), 10, 0, S("abcdefghijklmnopqrst"), 1, 20, -19);
- test(S("abcdefghij"), 10, 0, S("abcdefghijklmnopqrst"), 10, 0, 0);
- test(S("abcdefghij"), 10, 0, S("abcdefghijklmnopqrst"), 10, 1, -1);
- test(S("abcdefghij"), 10, 0, S("abcdefghijklmnopqrst"), 10, 5, -5);
- test(S("abcdefghij"), 10, 0, S("abcdefghijklmnopqrst"), 10, 9, -9);
- test(S("abcdefghij"), 10, 0, S("abcdefghijklmnopqrst"), 10, 10, -10);
- test(S("abcdefghij"), 10, 0, S("abcdefghijklmnopqrst"), 10, 11, -10);
- test(S("abcdefghij"), 10, 0, S("abcdefghijklmnopqrst"), 19, 0, 0);
- test(S("abcdefghij"), 10, 0, S("abcdefghijklmnopqrst"), 19, 1, -1);
- test(S("abcdefghij"), 10, 0, S("abcdefghijklmnopqrst"), 19, 2, -1);
- test(S("abcdefghij"), 10, 0, S("abcdefghijklmnopqrst"), 20, 0, 0);
- test(S("abcdefghij"), 10, 0, S("abcdefghijklmnopqrst"), 20, 1, 0);
- test(S("abcdefghij"), 10, 0, S("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghij"), 10, 1, S(""), 0, 0, 0);
- test(S("abcdefghij"), 10, 1, S(""), 0, 1, 0);
- test(S("abcdefghij"), 10, 1, S(""), 1, 0, 0);
- test(S("abcdefghij"), 10, 1, S("abcde"), 0, 0, 0);
- test(S("abcdefghij"), 10, 1, S("abcde"), 0, 1, -1);
- test(S("abcdefghij"), 10, 1, S("abcde"), 0, 2, -2);
- test(S("abcdefghij"), 10, 1, S("abcde"), 0, 4, -4);
- test(S("abcdefghij"), 10, 1, S("abcde"), 0, 5, -5);
- test(S("abcdefghij"), 10, 1, S("abcde"), 0, 6, -5);
- test(S("abcdefghij"), 10, 1, S("abcde"), 1, 0, 0);
- test(S("abcdefghij"), 10, 1, S("abcde"), 1, 1, -1);
- test(S("abcdefghij"), 10, 1, S("abcde"), 1, 2, -2);
- test(S("abcdefghij"), 10, 1, S("abcde"), 1, 3, -3);
- test(S("abcdefghij"), 10, 1, S("abcde"), 1, 4, -4);
- test(S("abcdefghij"), 10, 1, S("abcde"), 1, 5, -4);
- test(S("abcdefghij"), 10, 1, S("abcde"), 2, 0, 0);
- test(S("abcdefghij"), 10, 1, S("abcde"), 2, 1, -1);
- test(S("abcdefghij"), 10, 1, S("abcde"), 2, 2, -2);
- test(S("abcdefghij"), 10, 1, S("abcde"), 2, 3, -3);
- test(S("abcdefghij"), 10, 1, S("abcde"), 2, 4, -3);
- test(S("abcdefghij"), 10, 1, S("abcde"), 4, 0, 0);
- test(S("abcdefghij"), 10, 1, S("abcde"), 4, 1, -1);
- test(S("abcdefghij"), 10, 1, S("abcde"), 4, 2, -1);
- test(S("abcdefghij"), 10, 1, S("abcde"), 5, 0, 0);
- test(S("abcdefghij"), 10, 1, S("abcde"), 5, 1, 0);
- test(S("abcdefghij"), 10, 1, S("abcde"), 6, 0, 0);
- test(S("abcdefghij"), 10, 1, S("abcdefghij"), 0, 0, 0);
- test(S("abcdefghij"), 10, 1, S("abcdefghij"), 0, 1, -1);
- test(S("abcdefghij"), 10, 1, S("abcdefghij"), 0, 5, -5);
- test(S("abcdefghij"), 10, 1, S("abcdefghij"), 0, 9, -9);
- test(S("abcdefghij"), 10, 1, S("abcdefghij"), 0, 10, -10);
- test(S("abcdefghij"), 10, 1, S("abcdefghij"), 0, 11, -10);
- test(S("abcdefghij"), 10, 1, S("abcdefghij"), 1, 0, 0);
- test(S("abcdefghij"), 10, 1, S("abcdefghij"), 1, 1, -1);
- test(S("abcdefghij"), 10, 1, S("abcdefghij"), 1, 4, -4);
- test(S("abcdefghij"), 10, 1, S("abcdefghij"), 1, 8, -8);
- test(S("abcdefghij"), 10, 1, S("abcdefghij"), 1, 9, -9);
- test(S("abcdefghij"), 10, 1, S("abcdefghij"), 1, 10, -9);
- test(S("abcdefghij"), 10, 1, S("abcdefghij"), 5, 0, 0);
- test(S("abcdefghij"), 10, 1, S("abcdefghij"), 5, 1, -1);
- test(S("abcdefghij"), 10, 1, S("abcdefghij"), 5, 2, -2);
- test(S("abcdefghij"), 10, 1, S("abcdefghij"), 5, 4, -4);
- test(S("abcdefghij"), 10, 1, S("abcdefghij"), 5, 5, -5);
- test(S("abcdefghij"), 10, 1, S("abcdefghij"), 5, 6, -5);
- test(S("abcdefghij"), 10, 1, S("abcdefghij"), 9, 0, 0);
- test(S("abcdefghij"), 10, 1, S("abcdefghij"), 9, 1, -1);
- test(S("abcdefghij"), 10, 1, S("abcdefghij"), 9, 2, -1);
- test(S("abcdefghij"), 10, 1, S("abcdefghij"), 10, 0, 0);
+TEST_CONSTEXPR_CXX20 bool test35() {
+ test(S("abcdefghij"), 10, 0, S("abcde"), 4, 2, -1);
+ test(S("abcdefghij"), 10, 0, S("abcde"), 5, 0, 0);
+ test(S("abcdefghij"), 10, 0, S("abcde"), 5, 1, 0);
+ test(S("abcdefghij"), 10, 0, S("abcde"), 6, 0, 0);
+ test(S("abcdefghij"), 10, 0, S("abcdefghij"), 0, 0, 0);
+ test(S("abcdefghij"), 10, 0, S("abcdefghij"), 0, 1, -1);
+ test(S("abcdefghij"), 10, 0, S("abcdefghij"), 0, 5, -5);
+ test(S("abcdefghij"), 10, 0, S("abcdefghij"), 0, 9, -9);
+ test(S("abcdefghij"), 10, 0, S("abcdefghij"), 0, 10, -10);
+ test(S("abcdefghij"), 10, 0, S("abcdefghij"), 0, 11, -10);
+ test(S("abcdefghij"), 10, 0, S("abcdefghij"), 1, 0, 0);
+ test(S("abcdefghij"), 10, 0, S("abcdefghij"), 1, 1, -1);
+ test(S("abcdefghij"), 10, 0, S("abcdefghij"), 1, 4, -4);
+ test(S("abcdefghij"), 10, 0, S("abcdefghij"), 1, 8, -8);
+ test(S("abcdefghij"), 10, 0, S("abcdefghij"), 1, 9, -9);
+ test(S("abcdefghij"), 10, 0, S("abcdefghij"), 1, 10, -9);
+ test(S("abcdefghij"), 10, 0, S("abcdefghij"), 5, 0, 0);
+ test(S("abcdefghij"), 10, 0, S("abcdefghij"), 5, 1, -1);
+ test(S("abcdefghij"), 10, 0, S("abcdefghij"), 5, 2, -2);
+ test(S("abcdefghij"), 10, 0, S("abcdefghij"), 5, 4, -4);
+ test(S("abcdefghij"), 10, 0, S("abcdefghij"), 5, 5, -5);
+ test(S("abcdefghij"), 10, 0, S("abcdefghij"), 5, 6, -5);
+ test(S("abcdefghij"), 10, 0, S("abcdefghij"), 9, 0, 0);
+ test(S("abcdefghij"), 10, 0, S("abcdefghij"), 9, 1, -1);
+ test(S("abcdefghij"), 10, 0, S("abcdefghij"), 9, 2, -1);
+ test(S("abcdefghij"), 10, 0, S("abcdefghij"), 10, 0, 0);
+ test(S("abcdefghij"), 10, 0, S("abcdefghij"), 10, 1, 0);
+ test(S("abcdefghij"), 10, 0, S("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghij"), 10, 0, S("abcdefghijklmnopqrst"), 0, 0, 0);
+ test(S("abcdefghij"), 10, 0, S("abcdefghijklmnopqrst"), 0, 1, -1);
+ test(S("abcdefghij"), 10, 0, S("abcdefghijklmnopqrst"), 0, 10, -10);
+ test(S("abcdefghij"), 10, 0, S("abcdefghijklmnopqrst"), 0, 19, -19);
+ test(S("abcdefghij"), 10, 0, S("abcdefghijklmnopqrst"), 0, 20, -20);
+ test(S("abcdefghij"), 10, 0, S("abcdefghijklmnopqrst"), 0, 21, -20);
+ test(S("abcdefghij"), 10, 0, S("abcdefghijklmnopqrst"), 1, 0, 0);
+ test(S("abcdefghij"), 10, 0, S("abcdefghijklmnopqrst"), 1, 1, -1);
+ test(S("abcdefghij"), 10, 0, S("abcdefghijklmnopqrst"), 1, 9, -9);
+ test(S("abcdefghij"), 10, 0, S("abcdefghijklmnopqrst"), 1, 18, -18);
+ test(S("abcdefghij"), 10, 0, S("abcdefghijklmnopqrst"), 1, 19, -19);
+ test(S("abcdefghij"), 10, 0, S("abcdefghijklmnopqrst"), 1, 20, -19);
+ test(S("abcdefghij"), 10, 0, S("abcdefghijklmnopqrst"), 10, 0, 0);
+ test(S("abcdefghij"), 10, 0, S("abcdefghijklmnopqrst"), 10, 1, -1);
+ test(S("abcdefghij"), 10, 0, S("abcdefghijklmnopqrst"), 10, 5, -5);
+ test(S("abcdefghij"), 10, 0, S("abcdefghijklmnopqrst"), 10, 9, -9);
+ test(S("abcdefghij"), 10, 0, S("abcdefghijklmnopqrst"), 10, 10, -10);
+ test(S("abcdefghij"), 10, 0, S("abcdefghijklmnopqrst"), 10, 11, -10);
+ test(S("abcdefghij"), 10, 0, S("abcdefghijklmnopqrst"), 19, 0, 0);
+ test(S("abcdefghij"), 10, 0, S("abcdefghijklmnopqrst"), 19, 1, -1);
+ test(S("abcdefghij"), 10, 0, S("abcdefghijklmnopqrst"), 19, 2, -1);
+ test(S("abcdefghij"), 10, 0, S("abcdefghijklmnopqrst"), 20, 0, 0);
+ test(S("abcdefghij"), 10, 0, S("abcdefghijklmnopqrst"), 20, 1, 0);
+ test(S("abcdefghij"), 10, 0, S("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghij"), 10, 1, S(""), 0, 0, 0);
+ test(S("abcdefghij"), 10, 1, S(""), 0, 1, 0);
+ test(S("abcdefghij"), 10, 1, S(""), 1, 0, 0);
+ test(S("abcdefghij"), 10, 1, S("abcde"), 0, 0, 0);
+ test(S("abcdefghij"), 10, 1, S("abcde"), 0, 1, -1);
+ test(S("abcdefghij"), 10, 1, S("abcde"), 0, 2, -2);
+ test(S("abcdefghij"), 10, 1, S("abcde"), 0, 4, -4);
+ test(S("abcdefghij"), 10, 1, S("abcde"), 0, 5, -5);
+ test(S("abcdefghij"), 10, 1, S("abcde"), 0, 6, -5);
+ test(S("abcdefghij"), 10, 1, S("abcde"), 1, 0, 0);
+ test(S("abcdefghij"), 10, 1, S("abcde"), 1, 1, -1);
+ test(S("abcdefghij"), 10, 1, S("abcde"), 1, 2, -2);
+ test(S("abcdefghij"), 10, 1, S("abcde"), 1, 3, -3);
+ test(S("abcdefghij"), 10, 1, S("abcde"), 1, 4, -4);
+ test(S("abcdefghij"), 10, 1, S("abcde"), 1, 5, -4);
+ test(S("abcdefghij"), 10, 1, S("abcde"), 2, 0, 0);
+ test(S("abcdefghij"), 10, 1, S("abcde"), 2, 1, -1);
+ test(S("abcdefghij"), 10, 1, S("abcde"), 2, 2, -2);
+ test(S("abcdefghij"), 10, 1, S("abcde"), 2, 3, -3);
+ test(S("abcdefghij"), 10, 1, S("abcde"), 2, 4, -3);
+ test(S("abcdefghij"), 10, 1, S("abcde"), 4, 0, 0);
+ test(S("abcdefghij"), 10, 1, S("abcde"), 4, 1, -1);
+ test(S("abcdefghij"), 10, 1, S("abcde"), 4, 2, -1);
+ test(S("abcdefghij"), 10, 1, S("abcde"), 5, 0, 0);
+ test(S("abcdefghij"), 10, 1, S("abcde"), 5, 1, 0);
+ test(S("abcdefghij"), 10, 1, S("abcde"), 6, 0, 0);
+ test(S("abcdefghij"), 10, 1, S("abcdefghij"), 0, 0, 0);
+ test(S("abcdefghij"), 10, 1, S("abcdefghij"), 0, 1, -1);
+ test(S("abcdefghij"), 10, 1, S("abcdefghij"), 0, 5, -5);
+ test(S("abcdefghij"), 10, 1, S("abcdefghij"), 0, 9, -9);
+ test(S("abcdefghij"), 10, 1, S("abcdefghij"), 0, 10, -10);
+ test(S("abcdefghij"), 10, 1, S("abcdefghij"), 0, 11, -10);
+ test(S("abcdefghij"), 10, 1, S("abcdefghij"), 1, 0, 0);
+ test(S("abcdefghij"), 10, 1, S("abcdefghij"), 1, 1, -1);
+ test(S("abcdefghij"), 10, 1, S("abcdefghij"), 1, 4, -4);
+ test(S("abcdefghij"), 10, 1, S("abcdefghij"), 1, 8, -8);
+ test(S("abcdefghij"), 10, 1, S("abcdefghij"), 1, 9, -9);
+ test(S("abcdefghij"), 10, 1, S("abcdefghij"), 1, 10, -9);
+ test(S("abcdefghij"), 10, 1, S("abcdefghij"), 5, 0, 0);
+ test(S("abcdefghij"), 10, 1, S("abcdefghij"), 5, 1, -1);
+ test(S("abcdefghij"), 10, 1, S("abcdefghij"), 5, 2, -2);
+ test(S("abcdefghij"), 10, 1, S("abcdefghij"), 5, 4, -4);
+ test(S("abcdefghij"), 10, 1, S("abcdefghij"), 5, 5, -5);
+ test(S("abcdefghij"), 10, 1, S("abcdefghij"), 5, 6, -5);
+ test(S("abcdefghij"), 10, 1, S("abcdefghij"), 9, 0, 0);
+ test(S("abcdefghij"), 10, 1, S("abcdefghij"), 9, 1, -1);
+ test(S("abcdefghij"), 10, 1, S("abcdefghij"), 9, 2, -1);
+ test(S("abcdefghij"), 10, 1, S("abcdefghij"), 10, 0, 0);
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test36()
-{
- test(S("abcdefghij"), 10, 1, S("abcdefghij"), 10, 1, 0);
- test(S("abcdefghij"), 10, 1, S("abcdefghij"), 11, 0, 0);
- test(S("abcdefghij"), 10, 1, S("abcdefghijklmnopqrst"), 0, 0, 0);
- test(S("abcdefghij"), 10, 1, S("abcdefghijklmnopqrst"), 0, 1, -1);
- test(S("abcdefghij"), 10, 1, S("abcdefghijklmnopqrst"), 0, 10, -10);
- test(S("abcdefghij"), 10, 1, S("abcdefghijklmnopqrst"), 0, 19, -19);
- test(S("abcdefghij"), 10, 1, S("abcdefghijklmnopqrst"), 0, 20, -20);
- test(S("abcdefghij"), 10, 1, S("abcdefghijklmnopqrst"), 0, 21, -20);
- test(S("abcdefghij"), 10, 1, S("abcdefghijklmnopqrst"), 1, 0, 0);
- test(S("abcdefghij"), 10, 1, S("abcdefghijklmnopqrst"), 1, 1, -1);
- test(S("abcdefghij"), 10, 1, S("abcdefghijklmnopqrst"), 1, 9, -9);
- test(S("abcdefghij"), 10, 1, S("abcdefghijklmnopqrst"), 1, 18, -18);
- test(S("abcdefghij"), 10, 1, S("abcdefghijklmnopqrst"), 1, 19, -19);
- test(S("abcdefghij"), 10, 1, S("abcdefghijklmnopqrst"), 1, 20, -19);
- test(S("abcdefghij"), 10, 1, S("abcdefghijklmnopqrst"), 10, 0, 0);
- test(S("abcdefghij"), 10, 1, S("abcdefghijklmnopqrst"), 10, 1, -1);
- test(S("abcdefghij"), 10, 1, S("abcdefghijklmnopqrst"), 10, 5, -5);
- test(S("abcdefghij"), 10, 1, S("abcdefghijklmnopqrst"), 10, 9, -9);
- test(S("abcdefghij"), 10, 1, S("abcdefghijklmnopqrst"), 10, 10, -10);
- test(S("abcdefghij"), 10, 1, S("abcdefghijklmnopqrst"), 10, 11, -10);
- test(S("abcdefghij"), 10, 1, S("abcdefghijklmnopqrst"), 19, 0, 0);
- test(S("abcdefghij"), 10, 1, S("abcdefghijklmnopqrst"), 19, 1, -1);
- test(S("abcdefghij"), 10, 1, S("abcdefghijklmnopqrst"), 19, 2, -1);
- test(S("abcdefghij"), 10, 1, S("abcdefghijklmnopqrst"), 20, 0, 0);
- test(S("abcdefghij"), 10, 1, S("abcdefghijklmnopqrst"), 20, 1, 0);
- test(S("abcdefghij"), 10, 1, S("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghij"), 11, 0, S(""), 0, 0, 0);
- test(S("abcdefghij"), 11, 0, S(""), 0, 1, 0);
- test(S("abcdefghij"), 11, 0, S(""), 1, 0, 0);
- test(S("abcdefghij"), 11, 0, S("abcde"), 0, 0, 0);
- test(S("abcdefghij"), 11, 0, S("abcde"), 0, 1, 0);
- test(S("abcdefghij"), 11, 0, S("abcde"), 0, 2, 0);
- test(S("abcdefghij"), 11, 0, S("abcde"), 0, 4, 0);
- test(S("abcdefghij"), 11, 0, S("abcde"), 0, 5, 0);
- test(S("abcdefghij"), 11, 0, S("abcde"), 0, 6, 0);
- test(S("abcdefghij"), 11, 0, S("abcde"), 1, 0, 0);
- test(S("abcdefghij"), 11, 0, S("abcde"), 1, 1, 0);
- test(S("abcdefghij"), 11, 0, S("abcde"), 1, 2, 0);
- test(S("abcdefghij"), 11, 0, S("abcde"), 1, 3, 0);
- test(S("abcdefghij"), 11, 0, S("abcde"), 1, 4, 0);
- test(S("abcdefghij"), 11, 0, S("abcde"), 1, 5, 0);
- test(S("abcdefghij"), 11, 0, S("abcde"), 2, 0, 0);
- test(S("abcdefghij"), 11, 0, S("abcde"), 2, 1, 0);
- test(S("abcdefghij"), 11, 0, S("abcde"), 2, 2, 0);
- test(S("abcdefghij"), 11, 0, S("abcde"), 2, 3, 0);
- test(S("abcdefghij"), 11, 0, S("abcde"), 2, 4, 0);
- test(S("abcdefghij"), 11, 0, S("abcde"), 4, 0, 0);
- test(S("abcdefghij"), 11, 0, S("abcde"), 4, 1, 0);
- test(S("abcdefghij"), 11, 0, S("abcde"), 4, 2, 0);
- test(S("abcdefghij"), 11, 0, S("abcde"), 5, 0, 0);
- test(S("abcdefghij"), 11, 0, S("abcde"), 5, 1, 0);
- test(S("abcdefghij"), 11, 0, S("abcde"), 6, 0, 0);
- test(S("abcdefghij"), 11, 0, S("abcdefghij"), 0, 0, 0);
- test(S("abcdefghij"), 11, 0, S("abcdefghij"), 0, 1, 0);
- test(S("abcdefghij"), 11, 0, S("abcdefghij"), 0, 5, 0);
- test(S("abcdefghij"), 11, 0, S("abcdefghij"), 0, 9, 0);
- test(S("abcdefghij"), 11, 0, S("abcdefghij"), 0, 10, 0);
- test(S("abcdefghij"), 11, 0, S("abcdefghij"), 0, 11, 0);
- test(S("abcdefghij"), 11, 0, S("abcdefghij"), 1, 0, 0);
- test(S("abcdefghij"), 11, 0, S("abcdefghij"), 1, 1, 0);
- test(S("abcdefghij"), 11, 0, S("abcdefghij"), 1, 4, 0);
- test(S("abcdefghij"), 11, 0, S("abcdefghij"), 1, 8, 0);
- test(S("abcdefghij"), 11, 0, S("abcdefghij"), 1, 9, 0);
- test(S("abcdefghij"), 11, 0, S("abcdefghij"), 1, 10, 0);
- test(S("abcdefghij"), 11, 0, S("abcdefghij"), 5, 0, 0);
- test(S("abcdefghij"), 11, 0, S("abcdefghij"), 5, 1, 0);
- test(S("abcdefghij"), 11, 0, S("abcdefghij"), 5, 2, 0);
- test(S("abcdefghij"), 11, 0, S("abcdefghij"), 5, 4, 0);
- test(S("abcdefghij"), 11, 0, S("abcdefghij"), 5, 5, 0);
- test(S("abcdefghij"), 11, 0, S("abcdefghij"), 5, 6, 0);
- test(S("abcdefghij"), 11, 0, S("abcdefghij"), 9, 0, 0);
- test(S("abcdefghij"), 11, 0, S("abcdefghij"), 9, 1, 0);
- test(S("abcdefghij"), 11, 0, S("abcdefghij"), 9, 2, 0);
- test(S("abcdefghij"), 11, 0, S("abcdefghij"), 10, 0, 0);
- test(S("abcdefghij"), 11, 0, S("abcdefghij"), 10, 1, 0);
- test(S("abcdefghij"), 11, 0, S("abcdefghij"), 11, 0, 0);
- test(S("abcdefghij"), 11, 0, S("abcdefghijklmnopqrst"), 0, 0, 0);
- test(S("abcdefghij"), 11, 0, S("abcdefghijklmnopqrst"), 0, 1, 0);
- test(S("abcdefghij"), 11, 0, S("abcdefghijklmnopqrst"), 0, 10, 0);
- test(S("abcdefghij"), 11, 0, S("abcdefghijklmnopqrst"), 0, 19, 0);
- test(S("abcdefghij"), 11, 0, S("abcdefghijklmnopqrst"), 0, 20, 0);
- test(S("abcdefghij"), 11, 0, S("abcdefghijklmnopqrst"), 0, 21, 0);
- test(S("abcdefghij"), 11, 0, S("abcdefghijklmnopqrst"), 1, 0, 0);
- test(S("abcdefghij"), 11, 0, S("abcdefghijklmnopqrst"), 1, 1, 0);
- test(S("abcdefghij"), 11, 0, S("abcdefghijklmnopqrst"), 1, 9, 0);
- test(S("abcdefghij"), 11, 0, S("abcdefghijklmnopqrst"), 1, 18, 0);
- test(S("abcdefghij"), 11, 0, S("abcdefghijklmnopqrst"), 1, 19, 0);
- test(S("abcdefghij"), 11, 0, S("abcdefghijklmnopqrst"), 1, 20, 0);
- test(S("abcdefghij"), 11, 0, S("abcdefghijklmnopqrst"), 10, 0, 0);
- test(S("abcdefghij"), 11, 0, S("abcdefghijklmnopqrst"), 10, 1, 0);
- test(S("abcdefghij"), 11, 0, S("abcdefghijklmnopqrst"), 10, 5, 0);
- test(S("abcdefghij"), 11, 0, S("abcdefghijklmnopqrst"), 10, 9, 0);
- test(S("abcdefghij"), 11, 0, S("abcdefghijklmnopqrst"), 10, 10, 0);
- test(S("abcdefghij"), 11, 0, S("abcdefghijklmnopqrst"), 10, 11, 0);
- test(S("abcdefghij"), 11, 0, S("abcdefghijklmnopqrst"), 19, 0, 0);
- test(S("abcdefghij"), 11, 0, S("abcdefghijklmnopqrst"), 19, 1, 0);
- test(S("abcdefghij"), 11, 0, S("abcdefghijklmnopqrst"), 19, 2, 0);
- test(S("abcdefghij"), 11, 0, S("abcdefghijklmnopqrst"), 20, 0, 0);
- test(S("abcdefghij"), 11, 0, S("abcdefghijklmnopqrst"), 20, 1, 0);
- test(S("abcdefghij"), 11, 0, S("abcdefghijklmnopqrst"), 21, 0, 0);
+TEST_CONSTEXPR_CXX20 bool test36() {
+ test(S("abcdefghij"), 10, 1, S("abcdefghij"), 10, 1, 0);
+ test(S("abcdefghij"), 10, 1, S("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghij"), 10, 1, S("abcdefghijklmnopqrst"), 0, 0, 0);
+ test(S("abcdefghij"), 10, 1, S("abcdefghijklmnopqrst"), 0, 1, -1);
+ test(S("abcdefghij"), 10, 1, S("abcdefghijklmnopqrst"), 0, 10, -10);
+ test(S("abcdefghij"), 10, 1, S("abcdefghijklmnopqrst"), 0, 19, -19);
+ test(S("abcdefghij"), 10, 1, S("abcdefghijklmnopqrst"), 0, 20, -20);
+ test(S("abcdefghij"), 10, 1, S("abcdefghijklmnopqrst"), 0, 21, -20);
+ test(S("abcdefghij"), 10, 1, S("abcdefghijklmnopqrst"), 1, 0, 0);
+ test(S("abcdefghij"), 10, 1, S("abcdefghijklmnopqrst"), 1, 1, -1);
+ test(S("abcdefghij"), 10, 1, S("abcdefghijklmnopqrst"), 1, 9, -9);
+ test(S("abcdefghij"), 10, 1, S("abcdefghijklmnopqrst"), 1, 18, -18);
+ test(S("abcdefghij"), 10, 1, S("abcdefghijklmnopqrst"), 1, 19, -19);
+ test(S("abcdefghij"), 10, 1, S("abcdefghijklmnopqrst"), 1, 20, -19);
+ test(S("abcdefghij"), 10, 1, S("abcdefghijklmnopqrst"), 10, 0, 0);
+ test(S("abcdefghij"), 10, 1, S("abcdefghijklmnopqrst"), 10, 1, -1);
+ test(S("abcdefghij"), 10, 1, S("abcdefghijklmnopqrst"), 10, 5, -5);
+ test(S("abcdefghij"), 10, 1, S("abcdefghijklmnopqrst"), 10, 9, -9);
+ test(S("abcdefghij"), 10, 1, S("abcdefghijklmnopqrst"), 10, 10, -10);
+ test(S("abcdefghij"), 10, 1, S("abcdefghijklmnopqrst"), 10, 11, -10);
+ test(S("abcdefghij"), 10, 1, S("abcdefghijklmnopqrst"), 19, 0, 0);
+ test(S("abcdefghij"), 10, 1, S("abcdefghijklmnopqrst"), 19, 1, -1);
+ test(S("abcdefghij"), 10, 1, S("abcdefghijklmnopqrst"), 19, 2, -1);
+ test(S("abcdefghij"), 10, 1, S("abcdefghijklmnopqrst"), 20, 0, 0);
+ test(S("abcdefghij"), 10, 1, S("abcdefghijklmnopqrst"), 20, 1, 0);
+ test(S("abcdefghij"), 10, 1, S("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghij"), 11, 0, S(""), 0, 0, 0);
+ test(S("abcdefghij"), 11, 0, S(""), 0, 1, 0);
+ test(S("abcdefghij"), 11, 0, S(""), 1, 0, 0);
+ test(S("abcdefghij"), 11, 0, S("abcde"), 0, 0, 0);
+ test(S("abcdefghij"), 11, 0, S("abcde"), 0, 1, 0);
+ test(S("abcdefghij"), 11, 0, S("abcde"), 0, 2, 0);
+ test(S("abcdefghij"), 11, 0, S("abcde"), 0, 4, 0);
+ test(S("abcdefghij"), 11, 0, S("abcde"), 0, 5, 0);
+ test(S("abcdefghij"), 11, 0, S("abcde"), 0, 6, 0);
+ test(S("abcdefghij"), 11, 0, S("abcde"), 1, 0, 0);
+ test(S("abcdefghij"), 11, 0, S("abcde"), 1, 1, 0);
+ test(S("abcdefghij"), 11, 0, S("abcde"), 1, 2, 0);
+ test(S("abcdefghij"), 11, 0, S("abcde"), 1, 3, 0);
+ test(S("abcdefghij"), 11, 0, S("abcde"), 1, 4, 0);
+ test(S("abcdefghij"), 11, 0, S("abcde"), 1, 5, 0);
+ test(S("abcdefghij"), 11, 0, S("abcde"), 2, 0, 0);
+ test(S("abcdefghij"), 11, 0, S("abcde"), 2, 1, 0);
+ test(S("abcdefghij"), 11, 0, S("abcde"), 2, 2, 0);
+ test(S("abcdefghij"), 11, 0, S("abcde"), 2, 3, 0);
+ test(S("abcdefghij"), 11, 0, S("abcde"), 2, 4, 0);
+ test(S("abcdefghij"), 11, 0, S("abcde"), 4, 0, 0);
+ test(S("abcdefghij"), 11, 0, S("abcde"), 4, 1, 0);
+ test(S("abcdefghij"), 11, 0, S("abcde"), 4, 2, 0);
+ test(S("abcdefghij"), 11, 0, S("abcde"), 5, 0, 0);
+ test(S("abcdefghij"), 11, 0, S("abcde"), 5, 1, 0);
+ test(S("abcdefghij"), 11, 0, S("abcde"), 6, 0, 0);
+ test(S("abcdefghij"), 11, 0, S("abcdefghij"), 0, 0, 0);
+ test(S("abcdefghij"), 11, 0, S("abcdefghij"), 0, 1, 0);
+ test(S("abcdefghij"), 11, 0, S("abcdefghij"), 0, 5, 0);
+ test(S("abcdefghij"), 11, 0, S("abcdefghij"), 0, 9, 0);
+ test(S("abcdefghij"), 11, 0, S("abcdefghij"), 0, 10, 0);
+ test(S("abcdefghij"), 11, 0, S("abcdefghij"), 0, 11, 0);
+ test(S("abcdefghij"), 11, 0, S("abcdefghij"), 1, 0, 0);
+ test(S("abcdefghij"), 11, 0, S("abcdefghij"), 1, 1, 0);
+ test(S("abcdefghij"), 11, 0, S("abcdefghij"), 1, 4, 0);
+ test(S("abcdefghij"), 11, 0, S("abcdefghij"), 1, 8, 0);
+ test(S("abcdefghij"), 11, 0, S("abcdefghij"), 1, 9, 0);
+ test(S("abcdefghij"), 11, 0, S("abcdefghij"), 1, 10, 0);
+ test(S("abcdefghij"), 11, 0, S("abcdefghij"), 5, 0, 0);
+ test(S("abcdefghij"), 11, 0, S("abcdefghij"), 5, 1, 0);
+ test(S("abcdefghij"), 11, 0, S("abcdefghij"), 5, 2, 0);
+ test(S("abcdefghij"), 11, 0, S("abcdefghij"), 5, 4, 0);
+ test(S("abcdefghij"), 11, 0, S("abcdefghij"), 5, 5, 0);
+ test(S("abcdefghij"), 11, 0, S("abcdefghij"), 5, 6, 0);
+ test(S("abcdefghij"), 11, 0, S("abcdefghij"), 9, 0, 0);
+ test(S("abcdefghij"), 11, 0, S("abcdefghij"), 9, 1, 0);
+ test(S("abcdefghij"), 11, 0, S("abcdefghij"), 9, 2, 0);
+ test(S("abcdefghij"), 11, 0, S("abcdefghij"), 10, 0, 0);
+ test(S("abcdefghij"), 11, 0, S("abcdefghij"), 10, 1, 0);
+ test(S("abcdefghij"), 11, 0, S("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghij"), 11, 0, S("abcdefghijklmnopqrst"), 0, 0, 0);
+ test(S("abcdefghij"), 11, 0, S("abcdefghijklmnopqrst"), 0, 1, 0);
+ test(S("abcdefghij"), 11, 0, S("abcdefghijklmnopqrst"), 0, 10, 0);
+ test(S("abcdefghij"), 11, 0, S("abcdefghijklmnopqrst"), 0, 19, 0);
+ test(S("abcdefghij"), 11, 0, S("abcdefghijklmnopqrst"), 0, 20, 0);
+ test(S("abcdefghij"), 11, 0, S("abcdefghijklmnopqrst"), 0, 21, 0);
+ test(S("abcdefghij"), 11, 0, S("abcdefghijklmnopqrst"), 1, 0, 0);
+ test(S("abcdefghij"), 11, 0, S("abcdefghijklmnopqrst"), 1, 1, 0);
+ test(S("abcdefghij"), 11, 0, S("abcdefghijklmnopqrst"), 1, 9, 0);
+ test(S("abcdefghij"), 11, 0, S("abcdefghijklmnopqrst"), 1, 18, 0);
+ test(S("abcdefghij"), 11, 0, S("abcdefghijklmnopqrst"), 1, 19, 0);
+ test(S("abcdefghij"), 11, 0, S("abcdefghijklmnopqrst"), 1, 20, 0);
+ test(S("abcdefghij"), 11, 0, S("abcdefghijklmnopqrst"), 10, 0, 0);
+ test(S("abcdefghij"), 11, 0, S("abcdefghijklmnopqrst"), 10, 1, 0);
+ test(S("abcdefghij"), 11, 0, S("abcdefghijklmnopqrst"), 10, 5, 0);
+ test(S("abcdefghij"), 11, 0, S("abcdefghijklmnopqrst"), 10, 9, 0);
+ test(S("abcdefghij"), 11, 0, S("abcdefghijklmnopqrst"), 10, 10, 0);
+ test(S("abcdefghij"), 11, 0, S("abcdefghijklmnopqrst"), 10, 11, 0);
+ test(S("abcdefghij"), 11, 0, S("abcdefghijklmnopqrst"), 19, 0, 0);
+ test(S("abcdefghij"), 11, 0, S("abcdefghijklmnopqrst"), 19, 1, 0);
+ test(S("abcdefghij"), 11, 0, S("abcdefghijklmnopqrst"), 19, 2, 0);
+ test(S("abcdefghij"), 11, 0, S("abcdefghijklmnopqrst"), 20, 0, 0);
+ test(S("abcdefghij"), 11, 0, S("abcdefghijklmnopqrst"), 20, 1, 0);
+ test(S("abcdefghij"), 11, 0, S("abcdefghijklmnopqrst"), 21, 0, 0);
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test37()
-{
- test(S("abcdefghijklmnopqrst"), 0, 0, S(""), 0, 0, 0);
- test(S("abcdefghijklmnopqrst"), 0, 0, S(""), 0, 1, 0);
- test(S("abcdefghijklmnopqrst"), 0, 0, S(""), 1, 0, 0);
- test(S("abcdefghijklmnopqrst"), 0, 0, S("abcde"), 0, 0, 0);
- test(S("abcdefghijklmnopqrst"), 0, 0, S("abcde"), 0, 1, -1);
- test(S("abcdefghijklmnopqrst"), 0, 0, S("abcde"), 0, 2, -2);
- test(S("abcdefghijklmnopqrst"), 0, 0, S("abcde"), 0, 4, -4);
- test(S("abcdefghijklmnopqrst"), 0, 0, S("abcde"), 0, 5, -5);
- test(S("abcdefghijklmnopqrst"), 0, 0, S("abcde"), 0, 6, -5);
- test(S("abcdefghijklmnopqrst"), 0, 0, S("abcde"), 1, 0, 0);
- test(S("abcdefghijklmnopqrst"), 0, 0, S("abcde"), 1, 1, -1);
- test(S("abcdefghijklmnopqrst"), 0, 0, S("abcde"), 1, 2, -2);
- test(S("abcdefghijklmnopqrst"), 0, 0, S("abcde"), 1, 3, -3);
- test(S("abcdefghijklmnopqrst"), 0, 0, S("abcde"), 1, 4, -4);
- test(S("abcdefghijklmnopqrst"), 0, 0, S("abcde"), 1, 5, -4);
- test(S("abcdefghijklmnopqrst"), 0, 0, S("abcde"), 2, 0, 0);
- test(S("abcdefghijklmnopqrst"), 0, 0, S("abcde"), 2, 1, -1);
- test(S("abcdefghijklmnopqrst"), 0, 0, S("abcde"), 2, 2, -2);
- test(S("abcdefghijklmnopqrst"), 0, 0, S("abcde"), 2, 3, -3);
- test(S("abcdefghijklmnopqrst"), 0, 0, S("abcde"), 2, 4, -3);
- test(S("abcdefghijklmnopqrst"), 0, 0, S("abcde"), 4, 0, 0);
- test(S("abcdefghijklmnopqrst"), 0, 0, S("abcde"), 4, 1, -1);
- test(S("abcdefghijklmnopqrst"), 0, 0, S("abcde"), 4, 2, -1);
- test(S("abcdefghijklmnopqrst"), 0, 0, S("abcde"), 5, 0, 0);
- test(S("abcdefghijklmnopqrst"), 0, 0, S("abcde"), 5, 1, 0);
- test(S("abcdefghijklmnopqrst"), 0, 0, S("abcde"), 6, 0, 0);
- test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghij"), 0, 0, 0);
- test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghij"), 0, 1, -1);
- test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghij"), 0, 5, -5);
- test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghij"), 0, 9, -9);
- test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghij"), 0, 10, -10);
- test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghij"), 0, 11, -10);
- test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghij"), 1, 0, 0);
- test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghij"), 1, 1, -1);
- test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghij"), 1, 4, -4);
- test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghij"), 1, 8, -8);
- test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghij"), 1, 9, -9);
- test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghij"), 1, 10, -9);
- test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghij"), 5, 0, 0);
- test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghij"), 5, 1, -1);
- test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghij"), 5, 2, -2);
- test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghij"), 5, 4, -4);
- test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghij"), 5, 5, -5);
- test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghij"), 5, 6, -5);
- test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghij"), 9, 0, 0);
- test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghij"), 9, 1, -1);
- test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghij"), 9, 2, -1);
- test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghij"), 10, 0, 0);
- test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghij"), 10, 1, 0);
- test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghij"), 11, 0, 0);
- test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghijklmnopqrst"), 0, 0, 0);
- test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghijklmnopqrst"), 0, 1, -1);
- test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghijklmnopqrst"), 0, 10, -10);
- test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghijklmnopqrst"), 0, 19, -19);
- test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghijklmnopqrst"), 0, 20, -20);
- test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghijklmnopqrst"), 0, 21, -20);
- test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghijklmnopqrst"), 1, 0, 0);
- test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghijklmnopqrst"), 1, 1, -1);
- test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghijklmnopqrst"), 1, 9, -9);
- test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghijklmnopqrst"), 1, 18, -18);
- test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghijklmnopqrst"), 1, 19, -19);
- test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghijklmnopqrst"), 1, 20, -19);
- test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghijklmnopqrst"), 10, 0, 0);
- test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghijklmnopqrst"), 10, 1, -1);
- test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghijklmnopqrst"), 10, 5, -5);
- test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghijklmnopqrst"), 10, 9, -9);
- test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghijklmnopqrst"), 10, 10, -10);
- test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghijklmnopqrst"), 10, 11, -10);
- test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghijklmnopqrst"), 19, 0, 0);
- test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghijklmnopqrst"), 19, 1, -1);
- test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghijklmnopqrst"), 19, 2, -1);
- test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghijklmnopqrst"), 20, 0, 0);
- test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghijklmnopqrst"), 20, 1, 0);
- test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghijklmnopqrst"), 0, 1, S(""), 0, 0, 1);
- test(S("abcdefghijklmnopqrst"), 0, 1, S(""), 0, 1, 1);
- test(S("abcdefghijklmnopqrst"), 0, 1, S(""), 1, 0, 0);
- test(S("abcdefghijklmnopqrst"), 0, 1, S("abcde"), 0, 0, 1);
- test(S("abcdefghijklmnopqrst"), 0, 1, S("abcde"), 0, 1, 0);
- test(S("abcdefghijklmnopqrst"), 0, 1, S("abcde"), 0, 2, -1);
- test(S("abcdefghijklmnopqrst"), 0, 1, S("abcde"), 0, 4, -3);
- test(S("abcdefghijklmnopqrst"), 0, 1, S("abcde"), 0, 5, -4);
- test(S("abcdefghijklmnopqrst"), 0, 1, S("abcde"), 0, 6, -4);
- test(S("abcdefghijklmnopqrst"), 0, 1, S("abcde"), 1, 0, 1);
- test(S("abcdefghijklmnopqrst"), 0, 1, S("abcde"), 1, 1, -1);
- test(S("abcdefghijklmnopqrst"), 0, 1, S("abcde"), 1, 2, -1);
- test(S("abcdefghijklmnopqrst"), 0, 1, S("abcde"), 1, 3, -1);
- test(S("abcdefghijklmnopqrst"), 0, 1, S("abcde"), 1, 4, -1);
- test(S("abcdefghijklmnopqrst"), 0, 1, S("abcde"), 1, 5, -1);
- test(S("abcdefghijklmnopqrst"), 0, 1, S("abcde"), 2, 0, 1);
- test(S("abcdefghijklmnopqrst"), 0, 1, S("abcde"), 2, 1, -2);
- test(S("abcdefghijklmnopqrst"), 0, 1, S("abcde"), 2, 2, -2);
- test(S("abcdefghijklmnopqrst"), 0, 1, S("abcde"), 2, 3, -2);
- test(S("abcdefghijklmnopqrst"), 0, 1, S("abcde"), 2, 4, -2);
- test(S("abcdefghijklmnopqrst"), 0, 1, S("abcde"), 4, 0, 1);
- test(S("abcdefghijklmnopqrst"), 0, 1, S("abcde"), 4, 1, -4);
- test(S("abcdefghijklmnopqrst"), 0, 1, S("abcde"), 4, 2, -4);
- test(S("abcdefghijklmnopqrst"), 0, 1, S("abcde"), 5, 0, 1);
- test(S("abcdefghijklmnopqrst"), 0, 1, S("abcde"), 5, 1, 1);
- test(S("abcdefghijklmnopqrst"), 0, 1, S("abcde"), 6, 0, 0);
+TEST_CONSTEXPR_CXX20 bool test37() {
+ test(S("abcdefghijklmnopqrst"), 0, 0, S(""), 0, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 0, S(""), 0, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 0, S(""), 1, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("abcde"), 0, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("abcde"), 0, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("abcde"), 0, 2, -2);
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("abcde"), 0, 4, -4);
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("abcde"), 0, 5, -5);
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("abcde"), 0, 6, -5);
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("abcde"), 1, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("abcde"), 1, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("abcde"), 1, 2, -2);
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("abcde"), 1, 3, -3);
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("abcde"), 1, 4, -4);
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("abcde"), 1, 5, -4);
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("abcde"), 2, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("abcde"), 2, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("abcde"), 2, 2, -2);
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("abcde"), 2, 3, -3);
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("abcde"), 2, 4, -3);
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("abcde"), 4, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("abcde"), 4, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("abcde"), 4, 2, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("abcde"), 5, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("abcde"), 5, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("abcde"), 6, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghij"), 0, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghij"), 0, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghij"), 0, 5, -5);
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghij"), 0, 9, -9);
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghij"), 0, 10, -10);
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghij"), 0, 11, -10);
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghij"), 1, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghij"), 1, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghij"), 1, 4, -4);
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghij"), 1, 8, -8);
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghij"), 1, 9, -9);
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghij"), 1, 10, -9);
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghij"), 5, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghij"), 5, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghij"), 5, 2, -2);
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghij"), 5, 4, -4);
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghij"), 5, 5, -5);
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghij"), 5, 6, -5);
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghij"), 9, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghij"), 9, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghij"), 9, 2, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghij"), 10, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghij"), 10, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghijklmnopqrst"), 0, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghijklmnopqrst"), 0, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghijklmnopqrst"), 0, 10, -10);
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghijklmnopqrst"), 0, 19, -19);
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghijklmnopqrst"), 0, 20, -20);
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghijklmnopqrst"), 0, 21, -20);
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghijklmnopqrst"), 1, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghijklmnopqrst"), 1, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghijklmnopqrst"), 1, 9, -9);
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghijklmnopqrst"), 1, 18, -18);
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghijklmnopqrst"), 1, 19, -19);
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghijklmnopqrst"), 1, 20, -19);
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghijklmnopqrst"), 10, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghijklmnopqrst"), 10, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghijklmnopqrst"), 10, 5, -5);
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghijklmnopqrst"), 10, 9, -9);
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghijklmnopqrst"), 10, 10, -10);
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghijklmnopqrst"), 10, 11, -10);
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghijklmnopqrst"), 19, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghijklmnopqrst"), 19, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghijklmnopqrst"), 19, 2, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghijklmnopqrst"), 20, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghijklmnopqrst"), 20, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 0, S("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 1, S(""), 0, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 0, 1, S(""), 0, 1, 1);
+ test(S("abcdefghijklmnopqrst"), 0, 1, S(""), 1, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("abcde"), 0, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("abcde"), 0, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("abcde"), 0, 2, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("abcde"), 0, 4, -3);
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("abcde"), 0, 5, -4);
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("abcde"), 0, 6, -4);
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("abcde"), 1, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("abcde"), 1, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("abcde"), 1, 2, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("abcde"), 1, 3, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("abcde"), 1, 4, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("abcde"), 1, 5, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("abcde"), 2, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("abcde"), 2, 1, -2);
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("abcde"), 2, 2, -2);
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("abcde"), 2, 3, -2);
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("abcde"), 2, 4, -2);
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("abcde"), 4, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("abcde"), 4, 1, -4);
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("abcde"), 4, 2, -4);
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("abcde"), 5, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("abcde"), 5, 1, 1);
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("abcde"), 6, 0, 0);
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test38()
-{
- test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghij"), 0, 0, 1);
- test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghij"), 0, 1, 0);
- test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghij"), 0, 5, -4);
- test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghij"), 0, 9, -8);
- test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghij"), 0, 10, -9);
- test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghij"), 0, 11, -9);
- test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghij"), 1, 0, 1);
- test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghij"), 1, 1, -1);
- test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghij"), 1, 4, -1);
- test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghij"), 1, 8, -1);
- test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghij"), 1, 9, -1);
- test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghij"), 1, 10, -1);
- test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghij"), 5, 0, 1);
- test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghij"), 5, 1, -5);
- test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghij"), 5, 2, -5);
- test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghij"), 5, 4, -5);
- test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghij"), 5, 5, -5);
- test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghij"), 5, 6, -5);
- test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghij"), 9, 0, 1);
- test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghij"), 9, 1, -9);
- test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghij"), 9, 2, -9);
- test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghij"), 10, 0, 1);
- test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghij"), 10, 1, 1);
- test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghij"), 11, 0, 0);
- test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghijklmnopqrst"), 0, 0, 1);
- test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghijklmnopqrst"), 0, 1, 0);
- test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghijklmnopqrst"), 0, 10, -9);
- test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghijklmnopqrst"), 0, 19, -18);
- test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghijklmnopqrst"), 0, 20, -19);
- test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghijklmnopqrst"), 0, 21, -19);
- test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghijklmnopqrst"), 1, 0, 1);
- test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghijklmnopqrst"), 1, 1, -1);
- test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghijklmnopqrst"), 1, 9, -1);
- test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghijklmnopqrst"), 1, 18, -1);
- test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghijklmnopqrst"), 1, 19, -1);
- test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghijklmnopqrst"), 1, 20, -1);
- test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghijklmnopqrst"), 10, 0, 1);
- test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghijklmnopqrst"), 10, 1, -10);
- test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghijklmnopqrst"), 10, 5, -10);
- test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghijklmnopqrst"), 10, 9, -10);
- test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghijklmnopqrst"), 10, 10, -10);
- test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghijklmnopqrst"), 10, 11, -10);
- test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghijklmnopqrst"), 19, 0, 1);
- test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghijklmnopqrst"), 19, 1, -19);
- test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghijklmnopqrst"), 19, 2, -19);
- test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghijklmnopqrst"), 20, 0, 1);
- test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghijklmnopqrst"), 20, 1, 1);
- test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghijklmnopqrst"), 0, 10, S(""), 0, 0, 10);
- test(S("abcdefghijklmnopqrst"), 0, 10, S(""), 0, 1, 10);
- test(S("abcdefghijklmnopqrst"), 0, 10, S(""), 1, 0, 0);
- test(S("abcdefghijklmnopqrst"), 0, 10, S("abcde"), 0, 0, 10);
- test(S("abcdefghijklmnopqrst"), 0, 10, S("abcde"), 0, 1, 9);
- test(S("abcdefghijklmnopqrst"), 0, 10, S("abcde"), 0, 2, 8);
- test(S("abcdefghijklmnopqrst"), 0, 10, S("abcde"), 0, 4, 6);
- test(S("abcdefghijklmnopqrst"), 0, 10, S("abcde"), 0, 5, 5);
- test(S("abcdefghijklmnopqrst"), 0, 10, S("abcde"), 0, 6, 5);
- test(S("abcdefghijklmnopqrst"), 0, 10, S("abcde"), 1, 0, 10);
- test(S("abcdefghijklmnopqrst"), 0, 10, S("abcde"), 1, 1, -1);
- test(S("abcdefghijklmnopqrst"), 0, 10, S("abcde"), 1, 2, -1);
- test(S("abcdefghijklmnopqrst"), 0, 10, S("abcde"), 1, 3, -1);
- test(S("abcdefghijklmnopqrst"), 0, 10, S("abcde"), 1, 4, -1);
- test(S("abcdefghijklmnopqrst"), 0, 10, S("abcde"), 1, 5, -1);
- test(S("abcdefghijklmnopqrst"), 0, 10, S("abcde"), 2, 0, 10);
- test(S("abcdefghijklmnopqrst"), 0, 10, S("abcde"), 2, 1, -2);
- test(S("abcdefghijklmnopqrst"), 0, 10, S("abcde"), 2, 2, -2);
- test(S("abcdefghijklmnopqrst"), 0, 10, S("abcde"), 2, 3, -2);
- test(S("abcdefghijklmnopqrst"), 0, 10, S("abcde"), 2, 4, -2);
- test(S("abcdefghijklmnopqrst"), 0, 10, S("abcde"), 4, 0, 10);
- test(S("abcdefghijklmnopqrst"), 0, 10, S("abcde"), 4, 1, -4);
- test(S("abcdefghijklmnopqrst"), 0, 10, S("abcde"), 4, 2, -4);
- test(S("abcdefghijklmnopqrst"), 0, 10, S("abcde"), 5, 0, 10);
- test(S("abcdefghijklmnopqrst"), 0, 10, S("abcde"), 5, 1, 10);
- test(S("abcdefghijklmnopqrst"), 0, 10, S("abcde"), 6, 0, 0);
- test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghij"), 0, 0, 10);
- test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghij"), 0, 1, 9);
- test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghij"), 0, 5, 5);
- test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghij"), 0, 9, 1);
- test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghij"), 0, 10, 0);
- test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghij"), 0, 11, 0);
- test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghij"), 1, 0, 10);
- test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghij"), 1, 1, -1);
- test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghij"), 1, 4, -1);
- test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghij"), 1, 8, -1);
- test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghij"), 1, 9, -1);
- test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghij"), 1, 10, -1);
- test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghij"), 5, 0, 10);
- test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghij"), 5, 1, -5);
- test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghij"), 5, 2, -5);
- test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghij"), 5, 4, -5);
- test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghij"), 5, 5, -5);
- test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghij"), 5, 6, -5);
- test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghij"), 9, 0, 10);
- test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghij"), 9, 1, -9);
- test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghij"), 9, 2, -9);
- test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghij"), 10, 0, 10);
- test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghij"), 10, 1, 10);
- test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghij"), 11, 0, 0);
- test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghijklmnopqrst"), 0, 0, 10);
- test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghijklmnopqrst"), 0, 1, 9);
+TEST_CONSTEXPR_CXX20 bool test38() {
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghij"), 0, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghij"), 0, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghij"), 0, 5, -4);
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghij"), 0, 9, -8);
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghij"), 0, 10, -9);
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghij"), 0, 11, -9);
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghij"), 1, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghij"), 1, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghij"), 1, 4, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghij"), 1, 8, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghij"), 1, 9, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghij"), 1, 10, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghij"), 5, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghij"), 5, 1, -5);
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghij"), 5, 2, -5);
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghij"), 5, 4, -5);
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghij"), 5, 5, -5);
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghij"), 5, 6, -5);
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghij"), 9, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghij"), 9, 1, -9);
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghij"), 9, 2, -9);
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghij"), 10, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghij"), 10, 1, 1);
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghijklmnopqrst"), 0, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghijklmnopqrst"), 0, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghijklmnopqrst"), 0, 10, -9);
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghijklmnopqrst"), 0, 19, -18);
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghijklmnopqrst"), 0, 20, -19);
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghijklmnopqrst"), 0, 21, -19);
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghijklmnopqrst"), 1, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghijklmnopqrst"), 1, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghijklmnopqrst"), 1, 9, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghijklmnopqrst"), 1, 18, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghijklmnopqrst"), 1, 19, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghijklmnopqrst"), 1, 20, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghijklmnopqrst"), 10, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghijklmnopqrst"), 10, 1, -10);
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghijklmnopqrst"), 10, 5, -10);
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghijklmnopqrst"), 10, 9, -10);
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghijklmnopqrst"), 10, 10, -10);
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghijklmnopqrst"), 10, 11, -10);
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghijklmnopqrst"), 19, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghijklmnopqrst"), 19, 1, -19);
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghijklmnopqrst"), 19, 2, -19);
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghijklmnopqrst"), 20, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghijklmnopqrst"), 20, 1, 1);
+ test(S("abcdefghijklmnopqrst"), 0, 1, S("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 10, S(""), 0, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 0, 10, S(""), 0, 1, 10);
+ test(S("abcdefghijklmnopqrst"), 0, 10, S(""), 1, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("abcde"), 0, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("abcde"), 0, 1, 9);
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("abcde"), 0, 2, 8);
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("abcde"), 0, 4, 6);
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("abcde"), 0, 5, 5);
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("abcde"), 0, 6, 5);
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("abcde"), 1, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("abcde"), 1, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("abcde"), 1, 2, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("abcde"), 1, 3, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("abcde"), 1, 4, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("abcde"), 1, 5, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("abcde"), 2, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("abcde"), 2, 1, -2);
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("abcde"), 2, 2, -2);
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("abcde"), 2, 3, -2);
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("abcde"), 2, 4, -2);
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("abcde"), 4, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("abcde"), 4, 1, -4);
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("abcde"), 4, 2, -4);
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("abcde"), 5, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("abcde"), 5, 1, 10);
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("abcde"), 6, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghij"), 0, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghij"), 0, 1, 9);
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghij"), 0, 5, 5);
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghij"), 0, 9, 1);
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghij"), 0, 10, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghij"), 0, 11, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghij"), 1, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghij"), 1, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghij"), 1, 4, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghij"), 1, 8, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghij"), 1, 9, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghij"), 1, 10, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghij"), 5, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghij"), 5, 1, -5);
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghij"), 5, 2, -5);
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghij"), 5, 4, -5);
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghij"), 5, 5, -5);
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghij"), 5, 6, -5);
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghij"), 9, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghij"), 9, 1, -9);
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghij"), 9, 2, -9);
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghij"), 10, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghij"), 10, 1, 10);
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghijklmnopqrst"), 0, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghijklmnopqrst"), 0, 1, 9);
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test39()
-{
- test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghijklmnopqrst"), 0, 10, 0);
- test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghijklmnopqrst"), 0, 19, -9);
- test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghijklmnopqrst"), 0, 20, -10);
- test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghijklmnopqrst"), 0, 21, -10);
- test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghijklmnopqrst"), 1, 0, 10);
- test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghijklmnopqrst"), 1, 1, -1);
- test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghijklmnopqrst"), 1, 9, -1);
- test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghijklmnopqrst"), 1, 18, -1);
- test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghijklmnopqrst"), 1, 19, -1);
- test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghijklmnopqrst"), 1, 20, -1);
- test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghijklmnopqrst"), 10, 0, 10);
- test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghijklmnopqrst"), 10, 1, -10);
- test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghijklmnopqrst"), 10, 5, -10);
- test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghijklmnopqrst"), 10, 9, -10);
- test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghijklmnopqrst"), 10, 10, -10);
- test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghijklmnopqrst"), 10, 11, -10);
- test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghijklmnopqrst"), 19, 0, 10);
- test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghijklmnopqrst"), 19, 1, -19);
- test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghijklmnopqrst"), 19, 2, -19);
- test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghijklmnopqrst"), 20, 0, 10);
- test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghijklmnopqrst"), 20, 1, 10);
- test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghijklmnopqrst"), 0, 19, S(""), 0, 0, 19);
- test(S("abcdefghijklmnopqrst"), 0, 19, S(""), 0, 1, 19);
- test(S("abcdefghijklmnopqrst"), 0, 19, S(""), 1, 0, 0);
- test(S("abcdefghijklmnopqrst"), 0, 19, S("abcde"), 0, 0, 19);
- test(S("abcdefghijklmnopqrst"), 0, 19, S("abcde"), 0, 1, 18);
- test(S("abcdefghijklmnopqrst"), 0, 19, S("abcde"), 0, 2, 17);
- test(S("abcdefghijklmnopqrst"), 0, 19, S("abcde"), 0, 4, 15);
- test(S("abcdefghijklmnopqrst"), 0, 19, S("abcde"), 0, 5, 14);
- test(S("abcdefghijklmnopqrst"), 0, 19, S("abcde"), 0, 6, 14);
- test(S("abcdefghijklmnopqrst"), 0, 19, S("abcde"), 1, 0, 19);
- test(S("abcdefghijklmnopqrst"), 0, 19, S("abcde"), 1, 1, -1);
- test(S("abcdefghijklmnopqrst"), 0, 19, S("abcde"), 1, 2, -1);
- test(S("abcdefghijklmnopqrst"), 0, 19, S("abcde"), 1, 3, -1);
- test(S("abcdefghijklmnopqrst"), 0, 19, S("abcde"), 1, 4, -1);
- test(S("abcdefghijklmnopqrst"), 0, 19, S("abcde"), 1, 5, -1);
- test(S("abcdefghijklmnopqrst"), 0, 19, S("abcde"), 2, 0, 19);
- test(S("abcdefghijklmnopqrst"), 0, 19, S("abcde"), 2, 1, -2);
- test(S("abcdefghijklmnopqrst"), 0, 19, S("abcde"), 2, 2, -2);
- test(S("abcdefghijklmnopqrst"), 0, 19, S("abcde"), 2, 3, -2);
- test(S("abcdefghijklmnopqrst"), 0, 19, S("abcde"), 2, 4, -2);
- test(S("abcdefghijklmnopqrst"), 0, 19, S("abcde"), 4, 0, 19);
- test(S("abcdefghijklmnopqrst"), 0, 19, S("abcde"), 4, 1, -4);
- test(S("abcdefghijklmnopqrst"), 0, 19, S("abcde"), 4, 2, -4);
- test(S("abcdefghijklmnopqrst"), 0, 19, S("abcde"), 5, 0, 19);
- test(S("abcdefghijklmnopqrst"), 0, 19, S("abcde"), 5, 1, 19);
- test(S("abcdefghijklmnopqrst"), 0, 19, S("abcde"), 6, 0, 0);
- test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghij"), 0, 0, 19);
- test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghij"), 0, 1, 18);
- test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghij"), 0, 5, 14);
- test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghij"), 0, 9, 10);
- test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghij"), 0, 10, 9);
- test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghij"), 0, 11, 9);
- test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghij"), 1, 0, 19);
- test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghij"), 1, 1, -1);
- test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghij"), 1, 4, -1);
- test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghij"), 1, 8, -1);
- test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghij"), 1, 9, -1);
- test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghij"), 1, 10, -1);
- test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghij"), 5, 0, 19);
- test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghij"), 5, 1, -5);
- test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghij"), 5, 2, -5);
- test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghij"), 5, 4, -5);
- test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghij"), 5, 5, -5);
- test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghij"), 5, 6, -5);
- test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghij"), 9, 0, 19);
- test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghij"), 9, 1, -9);
- test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghij"), 9, 2, -9);
- test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghij"), 10, 0, 19);
- test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghij"), 10, 1, 19);
- test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghij"), 11, 0, 0);
- test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghijklmnopqrst"), 0, 0, 19);
- test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghijklmnopqrst"), 0, 1, 18);
- test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghijklmnopqrst"), 0, 10, 9);
- test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghijklmnopqrst"), 0, 19, 0);
- test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghijklmnopqrst"), 0, 20, -1);
- test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghijklmnopqrst"), 0, 21, -1);
- test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghijklmnopqrst"), 1, 0, 19);
- test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghijklmnopqrst"), 1, 1, -1);
- test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghijklmnopqrst"), 1, 9, -1);
- test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghijklmnopqrst"), 1, 18, -1);
- test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghijklmnopqrst"), 1, 19, -1);
- test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghijklmnopqrst"), 1, 20, -1);
- test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghijklmnopqrst"), 10, 0, 19);
- test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghijklmnopqrst"), 10, 1, -10);
- test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghijklmnopqrst"), 10, 5, -10);
- test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghijklmnopqrst"), 10, 9, -10);
- test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghijklmnopqrst"), 10, 10, -10);
- test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghijklmnopqrst"), 10, 11, -10);
- test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghijklmnopqrst"), 19, 0, 19);
- test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghijklmnopqrst"), 19, 1, -19);
- test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghijklmnopqrst"), 19, 2, -19);
- test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghijklmnopqrst"), 20, 0, 19);
- test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghijklmnopqrst"), 20, 1, 19);
- test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghijklmnopqrst"), 0, 20, S(""), 0, 0, 20);
- test(S("abcdefghijklmnopqrst"), 0, 20, S(""), 0, 1, 20);
- test(S("abcdefghijklmnopqrst"), 0, 20, S(""), 1, 0, 0);
- test(S("abcdefghijklmnopqrst"), 0, 20, S("abcde"), 0, 0, 20);
+TEST_CONSTEXPR_CXX20 bool test39() {
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghijklmnopqrst"), 0, 10, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghijklmnopqrst"), 0, 19, -9);
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghijklmnopqrst"), 0, 20, -10);
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghijklmnopqrst"), 0, 21, -10);
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghijklmnopqrst"), 1, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghijklmnopqrst"), 1, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghijklmnopqrst"), 1, 9, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghijklmnopqrst"), 1, 18, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghijklmnopqrst"), 1, 19, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghijklmnopqrst"), 1, 20, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghijklmnopqrst"), 10, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghijklmnopqrst"), 10, 1, -10);
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghijklmnopqrst"), 10, 5, -10);
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghijklmnopqrst"), 10, 9, -10);
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghijklmnopqrst"), 10, 10, -10);
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghijklmnopqrst"), 10, 11, -10);
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghijklmnopqrst"), 19, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghijklmnopqrst"), 19, 1, -19);
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghijklmnopqrst"), 19, 2, -19);
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghijklmnopqrst"), 20, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghijklmnopqrst"), 20, 1, 10);
+ test(S("abcdefghijklmnopqrst"), 0, 10, S("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 19, S(""), 0, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 0, 19, S(""), 0, 1, 19);
+ test(S("abcdefghijklmnopqrst"), 0, 19, S(""), 1, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("abcde"), 0, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("abcde"), 0, 1, 18);
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("abcde"), 0, 2, 17);
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("abcde"), 0, 4, 15);
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("abcde"), 0, 5, 14);
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("abcde"), 0, 6, 14);
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("abcde"), 1, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("abcde"), 1, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("abcde"), 1, 2, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("abcde"), 1, 3, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("abcde"), 1, 4, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("abcde"), 1, 5, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("abcde"), 2, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("abcde"), 2, 1, -2);
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("abcde"), 2, 2, -2);
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("abcde"), 2, 3, -2);
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("abcde"), 2, 4, -2);
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("abcde"), 4, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("abcde"), 4, 1, -4);
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("abcde"), 4, 2, -4);
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("abcde"), 5, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("abcde"), 5, 1, 19);
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("abcde"), 6, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghij"), 0, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghij"), 0, 1, 18);
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghij"), 0, 5, 14);
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghij"), 0, 9, 10);
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghij"), 0, 10, 9);
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghij"), 0, 11, 9);
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghij"), 1, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghij"), 1, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghij"), 1, 4, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghij"), 1, 8, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghij"), 1, 9, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghij"), 1, 10, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghij"), 5, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghij"), 5, 1, -5);
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghij"), 5, 2, -5);
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghij"), 5, 4, -5);
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghij"), 5, 5, -5);
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghij"), 5, 6, -5);
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghij"), 9, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghij"), 9, 1, -9);
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghij"), 9, 2, -9);
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghij"), 10, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghij"), 10, 1, 19);
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghijklmnopqrst"), 0, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghijklmnopqrst"), 0, 1, 18);
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghijklmnopqrst"), 0, 10, 9);
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghijklmnopqrst"), 0, 19, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghijklmnopqrst"), 0, 20, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghijklmnopqrst"), 0, 21, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghijklmnopqrst"), 1, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghijklmnopqrst"), 1, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghijklmnopqrst"), 1, 9, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghijklmnopqrst"), 1, 18, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghijklmnopqrst"), 1, 19, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghijklmnopqrst"), 1, 20, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghijklmnopqrst"), 10, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghijklmnopqrst"), 10, 1, -10);
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghijklmnopqrst"), 10, 5, -10);
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghijklmnopqrst"), 10, 9, -10);
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghijklmnopqrst"), 10, 10, -10);
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghijklmnopqrst"), 10, 11, -10);
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghijklmnopqrst"), 19, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghijklmnopqrst"), 19, 1, -19);
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghijklmnopqrst"), 19, 2, -19);
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghijklmnopqrst"), 20, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghijklmnopqrst"), 20, 1, 19);
+ test(S("abcdefghijklmnopqrst"), 0, 19, S("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 20, S(""), 0, 0, 20);
+ test(S("abcdefghijklmnopqrst"), 0, 20, S(""), 0, 1, 20);
+ test(S("abcdefghijklmnopqrst"), 0, 20, S(""), 1, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("abcde"), 0, 0, 20);
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test40()
-{
- test(S("abcdefghijklmnopqrst"), 0, 20, S("abcde"), 0, 1, 19);
- test(S("abcdefghijklmnopqrst"), 0, 20, S("abcde"), 0, 2, 18);
- test(S("abcdefghijklmnopqrst"), 0, 20, S("abcde"), 0, 4, 16);
- test(S("abcdefghijklmnopqrst"), 0, 20, S("abcde"), 0, 5, 15);
- test(S("abcdefghijklmnopqrst"), 0, 20, S("abcde"), 0, 6, 15);
- test(S("abcdefghijklmnopqrst"), 0, 20, S("abcde"), 1, 0, 20);
- test(S("abcdefghijklmnopqrst"), 0, 20, S("abcde"), 1, 1, -1);
- test(S("abcdefghijklmnopqrst"), 0, 20, S("abcde"), 1, 2, -1);
- test(S("abcdefghijklmnopqrst"), 0, 20, S("abcde"), 1, 3, -1);
- test(S("abcdefghijklmnopqrst"), 0, 20, S("abcde"), 1, 4, -1);
- test(S("abcdefghijklmnopqrst"), 0, 20, S("abcde"), 1, 5, -1);
- test(S("abcdefghijklmnopqrst"), 0, 20, S("abcde"), 2, 0, 20);
- test(S("abcdefghijklmnopqrst"), 0, 20, S("abcde"), 2, 1, -2);
- test(S("abcdefghijklmnopqrst"), 0, 20, S("abcde"), 2, 2, -2);
- test(S("abcdefghijklmnopqrst"), 0, 20, S("abcde"), 2, 3, -2);
- test(S("abcdefghijklmnopqrst"), 0, 20, S("abcde"), 2, 4, -2);
- test(S("abcdefghijklmnopqrst"), 0, 20, S("abcde"), 4, 0, 20);
- test(S("abcdefghijklmnopqrst"), 0, 20, S("abcde"), 4, 1, -4);
- test(S("abcdefghijklmnopqrst"), 0, 20, S("abcde"), 4, 2, -4);
- test(S("abcdefghijklmnopqrst"), 0, 20, S("abcde"), 5, 0, 20);
- test(S("abcdefghijklmnopqrst"), 0, 20, S("abcde"), 5, 1, 20);
- test(S("abcdefghijklmnopqrst"), 0, 20, S("abcde"), 6, 0, 0);
- test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghij"), 0, 0, 20);
- test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghij"), 0, 1, 19);
- test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghij"), 0, 5, 15);
- test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghij"), 0, 9, 11);
- test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghij"), 0, 10, 10);
- test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghij"), 0, 11, 10);
- test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghij"), 1, 0, 20);
- test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghij"), 1, 1, -1);
- test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghij"), 1, 4, -1);
- test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghij"), 1, 8, -1);
- test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghij"), 1, 9, -1);
- test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghij"), 1, 10, -1);
- test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghij"), 5, 0, 20);
- test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghij"), 5, 1, -5);
- test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghij"), 5, 2, -5);
- test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghij"), 5, 4, -5);
- test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghij"), 5, 5, -5);
- test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghij"), 5, 6, -5);
- test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghij"), 9, 0, 20);
- test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghij"), 9, 1, -9);
- test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghij"), 9, 2, -9);
- test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghij"), 10, 0, 20);
- test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghij"), 10, 1, 20);
- test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghij"), 11, 0, 0);
- test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghijklmnopqrst"), 0, 0, 20);
- test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghijklmnopqrst"), 0, 1, 19);
- test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghijklmnopqrst"), 0, 10, 10);
- test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghijklmnopqrst"), 0, 19, 1);
- test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghijklmnopqrst"), 0, 20, 0);
- test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghijklmnopqrst"), 0, 21, 0);
- test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghijklmnopqrst"), 1, 0, 20);
- test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghijklmnopqrst"), 1, 1, -1);
- test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghijklmnopqrst"), 1, 9, -1);
- test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghijklmnopqrst"), 1, 18, -1);
- test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghijklmnopqrst"), 1, 19, -1);
- test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghijklmnopqrst"), 1, 20, -1);
- test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghijklmnopqrst"), 10, 0, 20);
- test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghijklmnopqrst"), 10, 1, -10);
- test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghijklmnopqrst"), 10, 5, -10);
- test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghijklmnopqrst"), 10, 9, -10);
- test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghijklmnopqrst"), 10, 10, -10);
- test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghijklmnopqrst"), 10, 11, -10);
- test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghijklmnopqrst"), 19, 0, 20);
- test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghijklmnopqrst"), 19, 1, -19);
- test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghijklmnopqrst"), 19, 2, -19);
- test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghijklmnopqrst"), 20, 0, 20);
- test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghijklmnopqrst"), 20, 1, 20);
- test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghijklmnopqrst"), 0, 21, S(""), 0, 0, 20);
- test(S("abcdefghijklmnopqrst"), 0, 21, S(""), 0, 1, 20);
- test(S("abcdefghijklmnopqrst"), 0, 21, S(""), 1, 0, 0);
- test(S("abcdefghijklmnopqrst"), 0, 21, S("abcde"), 0, 0, 20);
- test(S("abcdefghijklmnopqrst"), 0, 21, S("abcde"), 0, 1, 19);
- test(S("abcdefghijklmnopqrst"), 0, 21, S("abcde"), 0, 2, 18);
- test(S("abcdefghijklmnopqrst"), 0, 21, S("abcde"), 0, 4, 16);
- test(S("abcdefghijklmnopqrst"), 0, 21, S("abcde"), 0, 5, 15);
- test(S("abcdefghijklmnopqrst"), 0, 21, S("abcde"), 0, 6, 15);
- test(S("abcdefghijklmnopqrst"), 0, 21, S("abcde"), 1, 0, 20);
- test(S("abcdefghijklmnopqrst"), 0, 21, S("abcde"), 1, 1, -1);
- test(S("abcdefghijklmnopqrst"), 0, 21, S("abcde"), 1, 2, -1);
- test(S("abcdefghijklmnopqrst"), 0, 21, S("abcde"), 1, 3, -1);
- test(S("abcdefghijklmnopqrst"), 0, 21, S("abcde"), 1, 4, -1);
- test(S("abcdefghijklmnopqrst"), 0, 21, S("abcde"), 1, 5, -1);
- test(S("abcdefghijklmnopqrst"), 0, 21, S("abcde"), 2, 0, 20);
- test(S("abcdefghijklmnopqrst"), 0, 21, S("abcde"), 2, 1, -2);
- test(S("abcdefghijklmnopqrst"), 0, 21, S("abcde"), 2, 2, -2);
- test(S("abcdefghijklmnopqrst"), 0, 21, S("abcde"), 2, 3, -2);
- test(S("abcdefghijklmnopqrst"), 0, 21, S("abcde"), 2, 4, -2);
- test(S("abcdefghijklmnopqrst"), 0, 21, S("abcde"), 4, 0, 20);
- test(S("abcdefghijklmnopqrst"), 0, 21, S("abcde"), 4, 1, -4);
- test(S("abcdefghijklmnopqrst"), 0, 21, S("abcde"), 4, 2, -4);
- test(S("abcdefghijklmnopqrst"), 0, 21, S("abcde"), 5, 0, 20);
- test(S("abcdefghijklmnopqrst"), 0, 21, S("abcde"), 5, 1, 20);
- test(S("abcdefghijklmnopqrst"), 0, 21, S("abcde"), 6, 0, 0);
- test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghij"), 0, 0, 20);
- test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghij"), 0, 1, 19);
- test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghij"), 0, 5, 15);
- test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghij"), 0, 9, 11);
+TEST_CONSTEXPR_CXX20 bool test40() {
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("abcde"), 0, 1, 19);
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("abcde"), 0, 2, 18);
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("abcde"), 0, 4, 16);
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("abcde"), 0, 5, 15);
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("abcde"), 0, 6, 15);
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("abcde"), 1, 0, 20);
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("abcde"), 1, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("abcde"), 1, 2, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("abcde"), 1, 3, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("abcde"), 1, 4, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("abcde"), 1, 5, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("abcde"), 2, 0, 20);
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("abcde"), 2, 1, -2);
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("abcde"), 2, 2, -2);
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("abcde"), 2, 3, -2);
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("abcde"), 2, 4, -2);
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("abcde"), 4, 0, 20);
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("abcde"), 4, 1, -4);
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("abcde"), 4, 2, -4);
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("abcde"), 5, 0, 20);
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("abcde"), 5, 1, 20);
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("abcde"), 6, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghij"), 0, 0, 20);
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghij"), 0, 1, 19);
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghij"), 0, 5, 15);
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghij"), 0, 9, 11);
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghij"), 0, 10, 10);
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghij"), 0, 11, 10);
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghij"), 1, 0, 20);
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghij"), 1, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghij"), 1, 4, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghij"), 1, 8, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghij"), 1, 9, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghij"), 1, 10, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghij"), 5, 0, 20);
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghij"), 5, 1, -5);
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghij"), 5, 2, -5);
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghij"), 5, 4, -5);
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghij"), 5, 5, -5);
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghij"), 5, 6, -5);
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghij"), 9, 0, 20);
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghij"), 9, 1, -9);
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghij"), 9, 2, -9);
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghij"), 10, 0, 20);
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghij"), 10, 1, 20);
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghijklmnopqrst"), 0, 0, 20);
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghijklmnopqrst"), 0, 1, 19);
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghijklmnopqrst"), 0, 10, 10);
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghijklmnopqrst"), 0, 19, 1);
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghijklmnopqrst"), 0, 20, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghijklmnopqrst"), 0, 21, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghijklmnopqrst"), 1, 0, 20);
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghijklmnopqrst"), 1, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghijklmnopqrst"), 1, 9, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghijklmnopqrst"), 1, 18, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghijklmnopqrst"), 1, 19, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghijklmnopqrst"), 1, 20, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghijklmnopqrst"), 10, 0, 20);
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghijklmnopqrst"), 10, 1, -10);
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghijklmnopqrst"), 10, 5, -10);
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghijklmnopqrst"), 10, 9, -10);
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghijklmnopqrst"), 10, 10, -10);
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghijklmnopqrst"), 10, 11, -10);
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghijklmnopqrst"), 19, 0, 20);
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghijklmnopqrst"), 19, 1, -19);
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghijklmnopqrst"), 19, 2, -19);
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghijklmnopqrst"), 20, 0, 20);
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghijklmnopqrst"), 20, 1, 20);
+ test(S("abcdefghijklmnopqrst"), 0, 20, S("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 21, S(""), 0, 0, 20);
+ test(S("abcdefghijklmnopqrst"), 0, 21, S(""), 0, 1, 20);
+ test(S("abcdefghijklmnopqrst"), 0, 21, S(""), 1, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("abcde"), 0, 0, 20);
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("abcde"), 0, 1, 19);
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("abcde"), 0, 2, 18);
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("abcde"), 0, 4, 16);
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("abcde"), 0, 5, 15);
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("abcde"), 0, 6, 15);
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("abcde"), 1, 0, 20);
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("abcde"), 1, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("abcde"), 1, 2, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("abcde"), 1, 3, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("abcde"), 1, 4, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("abcde"), 1, 5, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("abcde"), 2, 0, 20);
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("abcde"), 2, 1, -2);
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("abcde"), 2, 2, -2);
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("abcde"), 2, 3, -2);
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("abcde"), 2, 4, -2);
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("abcde"), 4, 0, 20);
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("abcde"), 4, 1, -4);
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("abcde"), 4, 2, -4);
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("abcde"), 5, 0, 20);
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("abcde"), 5, 1, 20);
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("abcde"), 6, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghij"), 0, 0, 20);
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghij"), 0, 1, 19);
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghij"), 0, 5, 15);
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghij"), 0, 9, 11);
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test41()
-{
- test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghij"), 0, 10, 10);
- test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghij"), 0, 11, 10);
- test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghij"), 1, 0, 20);
- test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghij"), 1, 1, -1);
- test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghij"), 1, 4, -1);
- test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghij"), 1, 8, -1);
- test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghij"), 1, 9, -1);
- test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghij"), 1, 10, -1);
- test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghij"), 5, 0, 20);
- test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghij"), 5, 1, -5);
- test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghij"), 5, 2, -5);
- test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghij"), 5, 4, -5);
- test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghij"), 5, 5, -5);
- test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghij"), 5, 6, -5);
- test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghij"), 9, 0, 20);
- test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghij"), 9, 1, -9);
- test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghij"), 9, 2, -9);
- test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghij"), 10, 0, 20);
- test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghij"), 10, 1, 20);
- test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghij"), 11, 0, 0);
- test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghijklmnopqrst"), 0, 0, 20);
- test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghijklmnopqrst"), 0, 1, 19);
- test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghijklmnopqrst"), 0, 10, 10);
- test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghijklmnopqrst"), 0, 19, 1);
- test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghijklmnopqrst"), 0, 20, 0);
- test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghijklmnopqrst"), 0, 21, 0);
- test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghijklmnopqrst"), 1, 0, 20);
- test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghijklmnopqrst"), 1, 1, -1);
- test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghijklmnopqrst"), 1, 9, -1);
- test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghijklmnopqrst"), 1, 18, -1);
- test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghijklmnopqrst"), 1, 19, -1);
- test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghijklmnopqrst"), 1, 20, -1);
- test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghijklmnopqrst"), 10, 0, 20);
- test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghijklmnopqrst"), 10, 1, -10);
- test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghijklmnopqrst"), 10, 5, -10);
- test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghijklmnopqrst"), 10, 9, -10);
- test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghijklmnopqrst"), 10, 10, -10);
- test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghijklmnopqrst"), 10, 11, -10);
- test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghijklmnopqrst"), 19, 0, 20);
- test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghijklmnopqrst"), 19, 1, -19);
- test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghijklmnopqrst"), 19, 2, -19);
- test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghijklmnopqrst"), 20, 0, 20);
- test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghijklmnopqrst"), 20, 1, 20);
- test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghijklmnopqrst"), 1, 0, S(""), 0, 0, 0);
- test(S("abcdefghijklmnopqrst"), 1, 0, S(""), 0, 1, 0);
- test(S("abcdefghijklmnopqrst"), 1, 0, S(""), 1, 0, 0);
- test(S("abcdefghijklmnopqrst"), 1, 0, S("abcde"), 0, 0, 0);
- test(S("abcdefghijklmnopqrst"), 1, 0, S("abcde"), 0, 1, -1);
- test(S("abcdefghijklmnopqrst"), 1, 0, S("abcde"), 0, 2, -2);
- test(S("abcdefghijklmnopqrst"), 1, 0, S("abcde"), 0, 4, -4);
- test(S("abcdefghijklmnopqrst"), 1, 0, S("abcde"), 0, 5, -5);
- test(S("abcdefghijklmnopqrst"), 1, 0, S("abcde"), 0, 6, -5);
- test(S("abcdefghijklmnopqrst"), 1, 0, S("abcde"), 1, 0, 0);
- test(S("abcdefghijklmnopqrst"), 1, 0, S("abcde"), 1, 1, -1);
- test(S("abcdefghijklmnopqrst"), 1, 0, S("abcde"), 1, 2, -2);
- test(S("abcdefghijklmnopqrst"), 1, 0, S("abcde"), 1, 3, -3);
- test(S("abcdefghijklmnopqrst"), 1, 0, S("abcde"), 1, 4, -4);
- test(S("abcdefghijklmnopqrst"), 1, 0, S("abcde"), 1, 5, -4);
- test(S("abcdefghijklmnopqrst"), 1, 0, S("abcde"), 2, 0, 0);
- test(S("abcdefghijklmnopqrst"), 1, 0, S("abcde"), 2, 1, -1);
- test(S("abcdefghijklmnopqrst"), 1, 0, S("abcde"), 2, 2, -2);
- test(S("abcdefghijklmnopqrst"), 1, 0, S("abcde"), 2, 3, -3);
- test(S("abcdefghijklmnopqrst"), 1, 0, S("abcde"), 2, 4, -3);
- test(S("abcdefghijklmnopqrst"), 1, 0, S("abcde"), 4, 0, 0);
- test(S("abcdefghijklmnopqrst"), 1, 0, S("abcde"), 4, 1, -1);
- test(S("abcdefghijklmnopqrst"), 1, 0, S("abcde"), 4, 2, -1);
- test(S("abcdefghijklmnopqrst"), 1, 0, S("abcde"), 5, 0, 0);
- test(S("abcdefghijklmnopqrst"), 1, 0, S("abcde"), 5, 1, 0);
- test(S("abcdefghijklmnopqrst"), 1, 0, S("abcde"), 6, 0, 0);
- test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghij"), 0, 0, 0);
- test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghij"), 0, 1, -1);
- test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghij"), 0, 5, -5);
- test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghij"), 0, 9, -9);
- test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghij"), 0, 10, -10);
- test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghij"), 0, 11, -10);
- test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghij"), 1, 0, 0);
- test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghij"), 1, 1, -1);
- test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghij"), 1, 4, -4);
- test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghij"), 1, 8, -8);
- test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghij"), 1, 9, -9);
- test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghij"), 1, 10, -9);
- test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghij"), 5, 0, 0);
- test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghij"), 5, 1, -1);
- test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghij"), 5, 2, -2);
- test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghij"), 5, 4, -4);
- test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghij"), 5, 5, -5);
- test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghij"), 5, 6, -5);
- test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghij"), 9, 0, 0);
- test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghij"), 9, 1, -1);
- test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghij"), 9, 2, -1);
- test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghij"), 10, 0, 0);
- test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghij"), 10, 1, 0);
- test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghij"), 11, 0, 0);
- test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghijklmnopqrst"), 0, 0, 0);
- test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghijklmnopqrst"), 0, 1, -1);
- test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghijklmnopqrst"), 0, 10, -10);
- test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghijklmnopqrst"), 0, 19, -19);
- test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghijklmnopqrst"), 0, 20, -20);
- test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghijklmnopqrst"), 0, 21, -20);
+TEST_CONSTEXPR_CXX20 bool test41() {
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghij"), 0, 10, 10);
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghij"), 0, 11, 10);
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghij"), 1, 0, 20);
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghij"), 1, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghij"), 1, 4, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghij"), 1, 8, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghij"), 1, 9, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghij"), 1, 10, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghij"), 5, 0, 20);
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghij"), 5, 1, -5);
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghij"), 5, 2, -5);
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghij"), 5, 4, -5);
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghij"), 5, 5, -5);
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghij"), 5, 6, -5);
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghij"), 9, 0, 20);
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghij"), 9, 1, -9);
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghij"), 9, 2, -9);
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghij"), 10, 0, 20);
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghij"), 10, 1, 20);
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghijklmnopqrst"), 0, 0, 20);
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghijklmnopqrst"), 0, 1, 19);
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghijklmnopqrst"), 0, 10, 10);
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghijklmnopqrst"), 0, 19, 1);
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghijklmnopqrst"), 0, 20, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghijklmnopqrst"), 0, 21, 0);
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghijklmnopqrst"), 1, 0, 20);
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghijklmnopqrst"), 1, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghijklmnopqrst"), 1, 9, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghijklmnopqrst"), 1, 18, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghijklmnopqrst"), 1, 19, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghijklmnopqrst"), 1, 20, -1);
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghijklmnopqrst"), 10, 0, 20);
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghijklmnopqrst"), 10, 1, -10);
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghijklmnopqrst"), 10, 5, -10);
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghijklmnopqrst"), 10, 9, -10);
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghijklmnopqrst"), 10, 10, -10);
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghijklmnopqrst"), 10, 11, -10);
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghijklmnopqrst"), 19, 0, 20);
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghijklmnopqrst"), 19, 1, -19);
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghijklmnopqrst"), 19, 2, -19);
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghijklmnopqrst"), 20, 0, 20);
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghijklmnopqrst"), 20, 1, 20);
+ test(S("abcdefghijklmnopqrst"), 0, 21, S("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 0, S(""), 0, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 0, S(""), 0, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 0, S(""), 1, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("abcde"), 0, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("abcde"), 0, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("abcde"), 0, 2, -2);
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("abcde"), 0, 4, -4);
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("abcde"), 0, 5, -5);
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("abcde"), 0, 6, -5);
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("abcde"), 1, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("abcde"), 1, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("abcde"), 1, 2, -2);
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("abcde"), 1, 3, -3);
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("abcde"), 1, 4, -4);
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("abcde"), 1, 5, -4);
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("abcde"), 2, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("abcde"), 2, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("abcde"), 2, 2, -2);
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("abcde"), 2, 3, -3);
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("abcde"), 2, 4, -3);
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("abcde"), 4, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("abcde"), 4, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("abcde"), 4, 2, -1);
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("abcde"), 5, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("abcde"), 5, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("abcde"), 6, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghij"), 0, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghij"), 0, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghij"), 0, 5, -5);
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghij"), 0, 9, -9);
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghij"), 0, 10, -10);
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghij"), 0, 11, -10);
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghij"), 1, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghij"), 1, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghij"), 1, 4, -4);
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghij"), 1, 8, -8);
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghij"), 1, 9, -9);
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghij"), 1, 10, -9);
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghij"), 5, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghij"), 5, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghij"), 5, 2, -2);
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghij"), 5, 4, -4);
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghij"), 5, 5, -5);
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghij"), 5, 6, -5);
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghij"), 9, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghij"), 9, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghij"), 9, 2, -1);
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghij"), 10, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghij"), 10, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghijklmnopqrst"), 0, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghijklmnopqrst"), 0, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghijklmnopqrst"), 0, 10, -10);
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghijklmnopqrst"), 0, 19, -19);
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghijklmnopqrst"), 0, 20, -20);
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghijklmnopqrst"), 0, 21, -20);
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test42()
-{
- test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghijklmnopqrst"), 1, 0, 0);
- test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghijklmnopqrst"), 1, 1, -1);
- test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghijklmnopqrst"), 1, 9, -9);
- test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghijklmnopqrst"), 1, 18, -18);
- test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghijklmnopqrst"), 1, 19, -19);
- test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghijklmnopqrst"), 1, 20, -19);
- test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghijklmnopqrst"), 10, 0, 0);
- test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghijklmnopqrst"), 10, 1, -1);
- test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghijklmnopqrst"), 10, 5, -5);
- test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghijklmnopqrst"), 10, 9, -9);
- test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghijklmnopqrst"), 10, 10, -10);
- test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghijklmnopqrst"), 10, 11, -10);
- test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghijklmnopqrst"), 19, 0, 0);
- test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghijklmnopqrst"), 19, 1, -1);
- test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghijklmnopqrst"), 19, 2, -1);
- test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghijklmnopqrst"), 20, 0, 0);
- test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghijklmnopqrst"), 20, 1, 0);
- test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghijklmnopqrst"), 1, 1, S(""), 0, 0, 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, S(""), 0, 1, 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, S(""), 1, 0, 0);
- test(S("abcdefghijklmnopqrst"), 1, 1, S("abcde"), 0, 0, 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, S("abcde"), 0, 1, 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, S("abcde"), 0, 2, 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, S("abcde"), 0, 4, 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, S("abcde"), 0, 5, 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, S("abcde"), 0, 6, 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, S("abcde"), 1, 0, 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, S("abcde"), 1, 1, 0);
- test(S("abcdefghijklmnopqrst"), 1, 1, S("abcde"), 1, 2, -1);
- test(S("abcdefghijklmnopqrst"), 1, 1, S("abcde"), 1, 3, -2);
- test(S("abcdefghijklmnopqrst"), 1, 1, S("abcde"), 1, 4, -3);
- test(S("abcdefghijklmnopqrst"), 1, 1, S("abcde"), 1, 5, -3);
- test(S("abcdefghijklmnopqrst"), 1, 1, S("abcde"), 2, 0, 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, S("abcde"), 2, 1, -1);
- test(S("abcdefghijklmnopqrst"), 1, 1, S("abcde"), 2, 2, -1);
- test(S("abcdefghijklmnopqrst"), 1, 1, S("abcde"), 2, 3, -1);
- test(S("abcdefghijklmnopqrst"), 1, 1, S("abcde"), 2, 4, -1);
- test(S("abcdefghijklmnopqrst"), 1, 1, S("abcde"), 4, 0, 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, S("abcde"), 4, 1, -3);
- test(S("abcdefghijklmnopqrst"), 1, 1, S("abcde"), 4, 2, -3);
- test(S("abcdefghijklmnopqrst"), 1, 1, S("abcde"), 5, 0, 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, S("abcde"), 5, 1, 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, S("abcde"), 6, 0, 0);
- test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghij"), 0, 0, 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghij"), 0, 1, 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghij"), 0, 5, 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghij"), 0, 9, 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghij"), 0, 10, 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghij"), 0, 11, 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghij"), 1, 0, 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghij"), 1, 1, 0);
- test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghij"), 1, 4, -3);
- test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghij"), 1, 8, -7);
- test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghij"), 1, 9, -8);
- test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghij"), 1, 10, -8);
- test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghij"), 5, 0, 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghij"), 5, 1, -4);
- test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghij"), 5, 2, -4);
- test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghij"), 5, 4, -4);
- test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghij"), 5, 5, -4);
- test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghij"), 5, 6, -4);
- test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghij"), 9, 0, 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghij"), 9, 1, -8);
- test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghij"), 9, 2, -8);
- test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghij"), 10, 0, 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghij"), 10, 1, 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghij"), 11, 0, 0);
- test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghijklmnopqrst"), 0, 0, 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghijklmnopqrst"), 0, 1, 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghijklmnopqrst"), 0, 10, 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghijklmnopqrst"), 0, 19, 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghijklmnopqrst"), 0, 20, 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghijklmnopqrst"), 0, 21, 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghijklmnopqrst"), 1, 0, 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghijklmnopqrst"), 1, 1, 0);
- test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghijklmnopqrst"), 1, 9, -8);
- test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghijklmnopqrst"), 1, 18, -17);
- test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghijklmnopqrst"), 1, 19, -18);
- test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghijklmnopqrst"), 1, 20, -18);
- test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghijklmnopqrst"), 10, 0, 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghijklmnopqrst"), 10, 1, -9);
- test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghijklmnopqrst"), 10, 5, -9);
- test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghijklmnopqrst"), 10, 9, -9);
- test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghijklmnopqrst"), 10, 10, -9);
- test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghijklmnopqrst"), 10, 11, -9);
- test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghijklmnopqrst"), 19, 0, 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghijklmnopqrst"), 19, 1, -18);
- test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghijklmnopqrst"), 19, 2, -18);
- test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghijklmnopqrst"), 20, 0, 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghijklmnopqrst"), 20, 1, 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghijklmnopqrst"), 1, 9, S(""), 0, 0, 9);
- test(S("abcdefghijklmnopqrst"), 1, 9, S(""), 0, 1, 9);
- test(S("abcdefghijklmnopqrst"), 1, 9, S(""), 1, 0, 0);
- test(S("abcdefghijklmnopqrst"), 1, 9, S("abcde"), 0, 0, 9);
- test(S("abcdefghijklmnopqrst"), 1, 9, S("abcde"), 0, 1, 1);
- test(S("abcdefghijklmnopqrst"), 1, 9, S("abcde"), 0, 2, 1);
- test(S("abcdefghijklmnopqrst"), 1, 9, S("abcde"), 0, 4, 1);
- test(S("abcdefghijklmnopqrst"), 1, 9, S("abcde"), 0, 5, 1);
+TEST_CONSTEXPR_CXX20 bool test42() {
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghijklmnopqrst"), 1, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghijklmnopqrst"), 1, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghijklmnopqrst"), 1, 9, -9);
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghijklmnopqrst"), 1, 18, -18);
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghijklmnopqrst"), 1, 19, -19);
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghijklmnopqrst"), 1, 20, -19);
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghijklmnopqrst"), 10, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghijklmnopqrst"), 10, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghijklmnopqrst"), 10, 5, -5);
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghijklmnopqrst"), 10, 9, -9);
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghijklmnopqrst"), 10, 10, -10);
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghijklmnopqrst"), 10, 11, -10);
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghijklmnopqrst"), 19, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghijklmnopqrst"), 19, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghijklmnopqrst"), 19, 2, -1);
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghijklmnopqrst"), 20, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghijklmnopqrst"), 20, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 0, S("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 1, S(""), 0, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, S(""), 0, 1, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, S(""), 1, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("abcde"), 0, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("abcde"), 0, 1, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("abcde"), 0, 2, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("abcde"), 0, 4, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("abcde"), 0, 5, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("abcde"), 0, 6, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("abcde"), 1, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("abcde"), 1, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("abcde"), 1, 2, -1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("abcde"), 1, 3, -2);
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("abcde"), 1, 4, -3);
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("abcde"), 1, 5, -3);
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("abcde"), 2, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("abcde"), 2, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("abcde"), 2, 2, -1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("abcde"), 2, 3, -1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("abcde"), 2, 4, -1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("abcde"), 4, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("abcde"), 4, 1, -3);
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("abcde"), 4, 2, -3);
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("abcde"), 5, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("abcde"), 5, 1, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("abcde"), 6, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghij"), 0, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghij"), 0, 1, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghij"), 0, 5, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghij"), 0, 9, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghij"), 0, 10, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghij"), 0, 11, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghij"), 1, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghij"), 1, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghij"), 1, 4, -3);
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghij"), 1, 8, -7);
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghij"), 1, 9, -8);
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghij"), 1, 10, -8);
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghij"), 5, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghij"), 5, 1, -4);
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghij"), 5, 2, -4);
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghij"), 5, 4, -4);
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghij"), 5, 5, -4);
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghij"), 5, 6, -4);
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghij"), 9, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghij"), 9, 1, -8);
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghij"), 9, 2, -8);
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghij"), 10, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghij"), 10, 1, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghijklmnopqrst"), 0, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghijklmnopqrst"), 0, 1, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghijklmnopqrst"), 0, 10, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghijklmnopqrst"), 0, 19, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghijklmnopqrst"), 0, 20, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghijklmnopqrst"), 0, 21, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghijklmnopqrst"), 1, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghijklmnopqrst"), 1, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghijklmnopqrst"), 1, 9, -8);
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghijklmnopqrst"), 1, 18, -17);
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghijklmnopqrst"), 1, 19, -18);
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghijklmnopqrst"), 1, 20, -18);
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghijklmnopqrst"), 10, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghijklmnopqrst"), 10, 1, -9);
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghijklmnopqrst"), 10, 5, -9);
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghijklmnopqrst"), 10, 9, -9);
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghijklmnopqrst"), 10, 10, -9);
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghijklmnopqrst"), 10, 11, -9);
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghijklmnopqrst"), 19, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghijklmnopqrst"), 19, 1, -18);
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghijklmnopqrst"), 19, 2, -18);
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghijklmnopqrst"), 20, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghijklmnopqrst"), 20, 1, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, S("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 9, S(""), 0, 0, 9);
+ test(S("abcdefghijklmnopqrst"), 1, 9, S(""), 0, 1, 9);
+ test(S("abcdefghijklmnopqrst"), 1, 9, S(""), 1, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("abcde"), 0, 0, 9);
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("abcde"), 0, 1, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("abcde"), 0, 2, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("abcde"), 0, 4, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("abcde"), 0, 5, 1);
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test43()
-{
- test(S("abcdefghijklmnopqrst"), 1, 9, S("abcde"), 0, 6, 1);
- test(S("abcdefghijklmnopqrst"), 1, 9, S("abcde"), 1, 0, 9);
- test(S("abcdefghijklmnopqrst"), 1, 9, S("abcde"), 1, 1, 8);
- test(S("abcdefghijklmnopqrst"), 1, 9, S("abcde"), 1, 2, 7);
- test(S("abcdefghijklmnopqrst"), 1, 9, S("abcde"), 1, 3, 6);
- test(S("abcdefghijklmnopqrst"), 1, 9, S("abcde"), 1, 4, 5);
- test(S("abcdefghijklmnopqrst"), 1, 9, S("abcde"), 1, 5, 5);
- test(S("abcdefghijklmnopqrst"), 1, 9, S("abcde"), 2, 0, 9);
- test(S("abcdefghijklmnopqrst"), 1, 9, S("abcde"), 2, 1, -1);
- test(S("abcdefghijklmnopqrst"), 1, 9, S("abcde"), 2, 2, -1);
- test(S("abcdefghijklmnopqrst"), 1, 9, S("abcde"), 2, 3, -1);
- test(S("abcdefghijklmnopqrst"), 1, 9, S("abcde"), 2, 4, -1);
- test(S("abcdefghijklmnopqrst"), 1, 9, S("abcde"), 4, 0, 9);
- test(S("abcdefghijklmnopqrst"), 1, 9, S("abcde"), 4, 1, -3);
- test(S("abcdefghijklmnopqrst"), 1, 9, S("abcde"), 4, 2, -3);
- test(S("abcdefghijklmnopqrst"), 1, 9, S("abcde"), 5, 0, 9);
- test(S("abcdefghijklmnopqrst"), 1, 9, S("abcde"), 5, 1, 9);
- test(S("abcdefghijklmnopqrst"), 1, 9, S("abcde"), 6, 0, 0);
- test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghij"), 0, 0, 9);
- test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghij"), 0, 1, 1);
- test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghij"), 0, 5, 1);
- test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghij"), 0, 9, 1);
- test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghij"), 0, 10, 1);
- test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghij"), 0, 11, 1);
- test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghij"), 1, 0, 9);
- test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghij"), 1, 1, 8);
- test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghij"), 1, 4, 5);
- test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghij"), 1, 8, 1);
- test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghij"), 1, 9, 0);
- test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghij"), 1, 10, 0);
- test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghij"), 5, 0, 9);
- test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghij"), 5, 1, -4);
- test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghij"), 5, 2, -4);
- test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghij"), 5, 4, -4);
- test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghij"), 5, 5, -4);
- test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghij"), 5, 6, -4);
- test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghij"), 9, 0, 9);
- test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghij"), 9, 1, -8);
- test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghij"), 9, 2, -8);
- test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghij"), 10, 0, 9);
- test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghij"), 10, 1, 9);
- test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghij"), 11, 0, 0);
- test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghijklmnopqrst"), 0, 0, 9);
- test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghijklmnopqrst"), 0, 1, 1);
- test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghijklmnopqrst"), 0, 10, 1);
- test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghijklmnopqrst"), 0, 19, 1);
- test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghijklmnopqrst"), 0, 20, 1);
- test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghijklmnopqrst"), 0, 21, 1);
- test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghijklmnopqrst"), 1, 0, 9);
- test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghijklmnopqrst"), 1, 1, 8);
- test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghijklmnopqrst"), 1, 9, 0);
- test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghijklmnopqrst"), 1, 18, -9);
- test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghijklmnopqrst"), 1, 19, -10);
- test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghijklmnopqrst"), 1, 20, -10);
- test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghijklmnopqrst"), 10, 0, 9);
- test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghijklmnopqrst"), 10, 1, -9);
- test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghijklmnopqrst"), 10, 5, -9);
- test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghijklmnopqrst"), 10, 9, -9);
- test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghijklmnopqrst"), 10, 10, -9);
- test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghijklmnopqrst"), 10, 11, -9);
- test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghijklmnopqrst"), 19, 0, 9);
- test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghijklmnopqrst"), 19, 1, -18);
- test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghijklmnopqrst"), 19, 2, -18);
- test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghijklmnopqrst"), 20, 0, 9);
- test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghijklmnopqrst"), 20, 1, 9);
- test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghijklmnopqrst"), 1, 18, S(""), 0, 0, 18);
- test(S("abcdefghijklmnopqrst"), 1, 18, S(""), 0, 1, 18);
- test(S("abcdefghijklmnopqrst"), 1, 18, S(""), 1, 0, 0);
- test(S("abcdefghijklmnopqrst"), 1, 18, S("abcde"), 0, 0, 18);
- test(S("abcdefghijklmnopqrst"), 1, 18, S("abcde"), 0, 1, 1);
- test(S("abcdefghijklmnopqrst"), 1, 18, S("abcde"), 0, 2, 1);
- test(S("abcdefghijklmnopqrst"), 1, 18, S("abcde"), 0, 4, 1);
- test(S("abcdefghijklmnopqrst"), 1, 18, S("abcde"), 0, 5, 1);
- test(S("abcdefghijklmnopqrst"), 1, 18, S("abcde"), 0, 6, 1);
- test(S("abcdefghijklmnopqrst"), 1, 18, S("abcde"), 1, 0, 18);
- test(S("abcdefghijklmnopqrst"), 1, 18, S("abcde"), 1, 1, 17);
- test(S("abcdefghijklmnopqrst"), 1, 18, S("abcde"), 1, 2, 16);
- test(S("abcdefghijklmnopqrst"), 1, 18, S("abcde"), 1, 3, 15);
- test(S("abcdefghijklmnopqrst"), 1, 18, S("abcde"), 1, 4, 14);
- test(S("abcdefghijklmnopqrst"), 1, 18, S("abcde"), 1, 5, 14);
- test(S("abcdefghijklmnopqrst"), 1, 18, S("abcde"), 2, 0, 18);
- test(S("abcdefghijklmnopqrst"), 1, 18, S("abcde"), 2, 1, -1);
- test(S("abcdefghijklmnopqrst"), 1, 18, S("abcde"), 2, 2, -1);
- test(S("abcdefghijklmnopqrst"), 1, 18, S("abcde"), 2, 3, -1);
- test(S("abcdefghijklmnopqrst"), 1, 18, S("abcde"), 2, 4, -1);
- test(S("abcdefghijklmnopqrst"), 1, 18, S("abcde"), 4, 0, 18);
- test(S("abcdefghijklmnopqrst"), 1, 18, S("abcde"), 4, 1, -3);
- test(S("abcdefghijklmnopqrst"), 1, 18, S("abcde"), 4, 2, -3);
- test(S("abcdefghijklmnopqrst"), 1, 18, S("abcde"), 5, 0, 18);
- test(S("abcdefghijklmnopqrst"), 1, 18, S("abcde"), 5, 1, 18);
- test(S("abcdefghijklmnopqrst"), 1, 18, S("abcde"), 6, 0, 0);
- test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghij"), 0, 0, 18);
- test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghij"), 0, 1, 1);
- test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghij"), 0, 5, 1);
- test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghij"), 0, 9, 1);
- test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghij"), 0, 10, 1);
- test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghij"), 0, 11, 1);
- test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghij"), 1, 0, 18);
- test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghij"), 1, 1, 17);
+TEST_CONSTEXPR_CXX20 bool test43() {
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("abcde"), 0, 6, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("abcde"), 1, 0, 9);
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("abcde"), 1, 1, 8);
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("abcde"), 1, 2, 7);
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("abcde"), 1, 3, 6);
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("abcde"), 1, 4, 5);
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("abcde"), 1, 5, 5);
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("abcde"), 2, 0, 9);
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("abcde"), 2, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("abcde"), 2, 2, -1);
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("abcde"), 2, 3, -1);
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("abcde"), 2, 4, -1);
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("abcde"), 4, 0, 9);
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("abcde"), 4, 1, -3);
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("abcde"), 4, 2, -3);
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("abcde"), 5, 0, 9);
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("abcde"), 5, 1, 9);
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("abcde"), 6, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghij"), 0, 0, 9);
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghij"), 0, 1, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghij"), 0, 5, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghij"), 0, 9, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghij"), 0, 10, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghij"), 0, 11, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghij"), 1, 0, 9);
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghij"), 1, 1, 8);
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghij"), 1, 4, 5);
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghij"), 1, 8, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghij"), 1, 9, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghij"), 1, 10, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghij"), 5, 0, 9);
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghij"), 5, 1, -4);
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghij"), 5, 2, -4);
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghij"), 5, 4, -4);
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghij"), 5, 5, -4);
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghij"), 5, 6, -4);
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghij"), 9, 0, 9);
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghij"), 9, 1, -8);
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghij"), 9, 2, -8);
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghij"), 10, 0, 9);
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghij"), 10, 1, 9);
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghijklmnopqrst"), 0, 0, 9);
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghijklmnopqrst"), 0, 1, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghijklmnopqrst"), 0, 10, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghijklmnopqrst"), 0, 19, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghijklmnopqrst"), 0, 20, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghijklmnopqrst"), 0, 21, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghijklmnopqrst"), 1, 0, 9);
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghijklmnopqrst"), 1, 1, 8);
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghijklmnopqrst"), 1, 9, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghijklmnopqrst"), 1, 18, -9);
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghijklmnopqrst"), 1, 19, -10);
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghijklmnopqrst"), 1, 20, -10);
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghijklmnopqrst"), 10, 0, 9);
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghijklmnopqrst"), 10, 1, -9);
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghijklmnopqrst"), 10, 5, -9);
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghijklmnopqrst"), 10, 9, -9);
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghijklmnopqrst"), 10, 10, -9);
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghijklmnopqrst"), 10, 11, -9);
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghijklmnopqrst"), 19, 0, 9);
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghijklmnopqrst"), 19, 1, -18);
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghijklmnopqrst"), 19, 2, -18);
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghijklmnopqrst"), 20, 0, 9);
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghijklmnopqrst"), 20, 1, 9);
+ test(S("abcdefghijklmnopqrst"), 1, 9, S("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 18, S(""), 0, 0, 18);
+ test(S("abcdefghijklmnopqrst"), 1, 18, S(""), 0, 1, 18);
+ test(S("abcdefghijklmnopqrst"), 1, 18, S(""), 1, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("abcde"), 0, 0, 18);
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("abcde"), 0, 1, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("abcde"), 0, 2, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("abcde"), 0, 4, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("abcde"), 0, 5, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("abcde"), 0, 6, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("abcde"), 1, 0, 18);
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("abcde"), 1, 1, 17);
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("abcde"), 1, 2, 16);
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("abcde"), 1, 3, 15);
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("abcde"), 1, 4, 14);
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("abcde"), 1, 5, 14);
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("abcde"), 2, 0, 18);
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("abcde"), 2, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("abcde"), 2, 2, -1);
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("abcde"), 2, 3, -1);
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("abcde"), 2, 4, -1);
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("abcde"), 4, 0, 18);
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("abcde"), 4, 1, -3);
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("abcde"), 4, 2, -3);
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("abcde"), 5, 0, 18);
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("abcde"), 5, 1, 18);
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("abcde"), 6, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghij"), 0, 0, 18);
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghij"), 0, 1, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghij"), 0, 5, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghij"), 0, 9, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghij"), 0, 10, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghij"), 0, 11, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghij"), 1, 0, 18);
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghij"), 1, 1, 17);
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test44()
-{
- test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghij"), 1, 4, 14);
- test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghij"), 1, 8, 10);
- test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghij"), 1, 9, 9);
- test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghij"), 1, 10, 9);
- test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghij"), 5, 0, 18);
- test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghij"), 5, 1, -4);
- test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghij"), 5, 2, -4);
- test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghij"), 5, 4, -4);
- test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghij"), 5, 5, -4);
- test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghij"), 5, 6, -4);
- test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghij"), 9, 0, 18);
- test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghij"), 9, 1, -8);
- test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghij"), 9, 2, -8);
- test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghij"), 10, 0, 18);
- test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghij"), 10, 1, 18);
- test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghij"), 11, 0, 0);
- test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghijklmnopqrst"), 0, 0, 18);
- test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghijklmnopqrst"), 0, 1, 1);
- test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghijklmnopqrst"), 0, 10, 1);
- test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghijklmnopqrst"), 0, 19, 1);
- test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghijklmnopqrst"), 0, 20, 1);
- test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghijklmnopqrst"), 0, 21, 1);
- test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghijklmnopqrst"), 1, 0, 18);
- test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghijklmnopqrst"), 1, 1, 17);
- test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghijklmnopqrst"), 1, 9, 9);
- test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghijklmnopqrst"), 1, 18, 0);
- test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghijklmnopqrst"), 1, 19, -1);
- test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghijklmnopqrst"), 1, 20, -1);
- test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghijklmnopqrst"), 10, 0, 18);
- test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghijklmnopqrst"), 10, 1, -9);
- test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghijklmnopqrst"), 10, 5, -9);
- test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghijklmnopqrst"), 10, 9, -9);
- test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghijklmnopqrst"), 10, 10, -9);
- test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghijklmnopqrst"), 10, 11, -9);
- test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghijklmnopqrst"), 19, 0, 18);
- test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghijklmnopqrst"), 19, 1, -18);
- test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghijklmnopqrst"), 19, 2, -18);
- test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghijklmnopqrst"), 20, 0, 18);
- test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghijklmnopqrst"), 20, 1, 18);
- test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghijklmnopqrst"), 1, 19, S(""), 0, 0, 19);
- test(S("abcdefghijklmnopqrst"), 1, 19, S(""), 0, 1, 19);
- test(S("abcdefghijklmnopqrst"), 1, 19, S(""), 1, 0, 0);
- test(S("abcdefghijklmnopqrst"), 1, 19, S("abcde"), 0, 0, 19);
- test(S("abcdefghijklmnopqrst"), 1, 19, S("abcde"), 0, 1, 1);
- test(S("abcdefghijklmnopqrst"), 1, 19, S("abcde"), 0, 2, 1);
- test(S("abcdefghijklmnopqrst"), 1, 19, S("abcde"), 0, 4, 1);
- test(S("abcdefghijklmnopqrst"), 1, 19, S("abcde"), 0, 5, 1);
- test(S("abcdefghijklmnopqrst"), 1, 19, S("abcde"), 0, 6, 1);
- test(S("abcdefghijklmnopqrst"), 1, 19, S("abcde"), 1, 0, 19);
- test(S("abcdefghijklmnopqrst"), 1, 19, S("abcde"), 1, 1, 18);
- test(S("abcdefghijklmnopqrst"), 1, 19, S("abcde"), 1, 2, 17);
- test(S("abcdefghijklmnopqrst"), 1, 19, S("abcde"), 1, 3, 16);
- test(S("abcdefghijklmnopqrst"), 1, 19, S("abcde"), 1, 4, 15);
- test(S("abcdefghijklmnopqrst"), 1, 19, S("abcde"), 1, 5, 15);
- test(S("abcdefghijklmnopqrst"), 1, 19, S("abcde"), 2, 0, 19);
- test(S("abcdefghijklmnopqrst"), 1, 19, S("abcde"), 2, 1, -1);
- test(S("abcdefghijklmnopqrst"), 1, 19, S("abcde"), 2, 2, -1);
- test(S("abcdefghijklmnopqrst"), 1, 19, S("abcde"), 2, 3, -1);
- test(S("abcdefghijklmnopqrst"), 1, 19, S("abcde"), 2, 4, -1);
- test(S("abcdefghijklmnopqrst"), 1, 19, S("abcde"), 4, 0, 19);
- test(S("abcdefghijklmnopqrst"), 1, 19, S("abcde"), 4, 1, -3);
- test(S("abcdefghijklmnopqrst"), 1, 19, S("abcde"), 4, 2, -3);
- test(S("abcdefghijklmnopqrst"), 1, 19, S("abcde"), 5, 0, 19);
- test(S("abcdefghijklmnopqrst"), 1, 19, S("abcde"), 5, 1, 19);
- test(S("abcdefghijklmnopqrst"), 1, 19, S("abcde"), 6, 0, 0);
- test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghij"), 0, 0, 19);
- test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghij"), 0, 1, 1);
- test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghij"), 0, 5, 1);
- test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghij"), 0, 9, 1);
- test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghij"), 0, 10, 1);
- test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghij"), 0, 11, 1);
- test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghij"), 1, 0, 19);
- test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghij"), 1, 1, 18);
- test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghij"), 1, 4, 15);
- test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghij"), 1, 8, 11);
- test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghij"), 1, 9, 10);
- test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghij"), 1, 10, 10);
- test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghij"), 5, 0, 19);
- test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghij"), 5, 1, -4);
- test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghij"), 5, 2, -4);
- test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghij"), 5, 4, -4);
- test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghij"), 5, 5, -4);
- test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghij"), 5, 6, -4);
- test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghij"), 9, 0, 19);
- test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghij"), 9, 1, -8);
- test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghij"), 9, 2, -8);
- test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghij"), 10, 0, 19);
- test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghij"), 10, 1, 19);
- test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghij"), 11, 0, 0);
- test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghijklmnopqrst"), 0, 0, 19);
- test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghijklmnopqrst"), 0, 1, 1);
- test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghijklmnopqrst"), 0, 10, 1);
- test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghijklmnopqrst"), 0, 19, 1);
- test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghijklmnopqrst"), 0, 20, 1);
- test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghijklmnopqrst"), 0, 21, 1);
- test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghijklmnopqrst"), 1, 0, 19);
- test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghijklmnopqrst"), 1, 1, 18);
- test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghijklmnopqrst"), 1, 9, 10);
- test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghijklmnopqrst"), 1, 18, 1);
+TEST_CONSTEXPR_CXX20 bool test44() {
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghij"), 1, 4, 14);
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghij"), 1, 8, 10);
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghij"), 1, 9, 9);
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghij"), 1, 10, 9);
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghij"), 5, 0, 18);
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghij"), 5, 1, -4);
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghij"), 5, 2, -4);
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghij"), 5, 4, -4);
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghij"), 5, 5, -4);
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghij"), 5, 6, -4);
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghij"), 9, 0, 18);
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghij"), 9, 1, -8);
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghij"), 9, 2, -8);
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghij"), 10, 0, 18);
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghij"), 10, 1, 18);
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghijklmnopqrst"), 0, 0, 18);
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghijklmnopqrst"), 0, 1, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghijklmnopqrst"), 0, 10, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghijklmnopqrst"), 0, 19, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghijklmnopqrst"), 0, 20, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghijklmnopqrst"), 0, 21, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghijklmnopqrst"), 1, 0, 18);
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghijklmnopqrst"), 1, 1, 17);
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghijklmnopqrst"), 1, 9, 9);
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghijklmnopqrst"), 1, 18, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghijklmnopqrst"), 1, 19, -1);
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghijklmnopqrst"), 1, 20, -1);
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghijklmnopqrst"), 10, 0, 18);
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghijklmnopqrst"), 10, 1, -9);
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghijklmnopqrst"), 10, 5, -9);
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghijklmnopqrst"), 10, 9, -9);
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghijklmnopqrst"), 10, 10, -9);
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghijklmnopqrst"), 10, 11, -9);
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghijklmnopqrst"), 19, 0, 18);
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghijklmnopqrst"), 19, 1, -18);
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghijklmnopqrst"), 19, 2, -18);
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghijklmnopqrst"), 20, 0, 18);
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghijklmnopqrst"), 20, 1, 18);
+ test(S("abcdefghijklmnopqrst"), 1, 18, S("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 19, S(""), 0, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 1, 19, S(""), 0, 1, 19);
+ test(S("abcdefghijklmnopqrst"), 1, 19, S(""), 1, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("abcde"), 0, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("abcde"), 0, 1, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("abcde"), 0, 2, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("abcde"), 0, 4, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("abcde"), 0, 5, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("abcde"), 0, 6, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("abcde"), 1, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("abcde"), 1, 1, 18);
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("abcde"), 1, 2, 17);
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("abcde"), 1, 3, 16);
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("abcde"), 1, 4, 15);
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("abcde"), 1, 5, 15);
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("abcde"), 2, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("abcde"), 2, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("abcde"), 2, 2, -1);
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("abcde"), 2, 3, -1);
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("abcde"), 2, 4, -1);
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("abcde"), 4, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("abcde"), 4, 1, -3);
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("abcde"), 4, 2, -3);
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("abcde"), 5, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("abcde"), 5, 1, 19);
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("abcde"), 6, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghij"), 0, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghij"), 0, 1, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghij"), 0, 5, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghij"), 0, 9, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghij"), 0, 10, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghij"), 0, 11, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghij"), 1, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghij"), 1, 1, 18);
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghij"), 1, 4, 15);
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghij"), 1, 8, 11);
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghij"), 1, 9, 10);
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghij"), 1, 10, 10);
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghij"), 5, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghij"), 5, 1, -4);
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghij"), 5, 2, -4);
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghij"), 5, 4, -4);
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghij"), 5, 5, -4);
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghij"), 5, 6, -4);
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghij"), 9, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghij"), 9, 1, -8);
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghij"), 9, 2, -8);
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghij"), 10, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghij"), 10, 1, 19);
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghijklmnopqrst"), 0, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghijklmnopqrst"), 0, 1, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghijklmnopqrst"), 0, 10, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghijklmnopqrst"), 0, 19, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghijklmnopqrst"), 0, 20, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghijklmnopqrst"), 0, 21, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghijklmnopqrst"), 1, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghijklmnopqrst"), 1, 1, 18);
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghijklmnopqrst"), 1, 9, 10);
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghijklmnopqrst"), 1, 18, 1);
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test45()
-{
- test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghijklmnopqrst"), 1, 19, 0);
- test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghijklmnopqrst"), 1, 20, 0);
- test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghijklmnopqrst"), 10, 0, 19);
- test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghijklmnopqrst"), 10, 1, -9);
- test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghijklmnopqrst"), 10, 5, -9);
- test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghijklmnopqrst"), 10, 9, -9);
- test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghijklmnopqrst"), 10, 10, -9);
- test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghijklmnopqrst"), 10, 11, -9);
- test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghijklmnopqrst"), 19, 0, 19);
- test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghijklmnopqrst"), 19, 1, -18);
- test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghijklmnopqrst"), 19, 2, -18);
- test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghijklmnopqrst"), 20, 0, 19);
- test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghijklmnopqrst"), 20, 1, 19);
- test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghijklmnopqrst"), 1, 20, S(""), 0, 0, 19);
- test(S("abcdefghijklmnopqrst"), 1, 20, S(""), 0, 1, 19);
- test(S("abcdefghijklmnopqrst"), 1, 20, S(""), 1, 0, 0);
- test(S("abcdefghijklmnopqrst"), 1, 20, S("abcde"), 0, 0, 19);
- test(S("abcdefghijklmnopqrst"), 1, 20, S("abcde"), 0, 1, 1);
- test(S("abcdefghijklmnopqrst"), 1, 20, S("abcde"), 0, 2, 1);
- test(S("abcdefghijklmnopqrst"), 1, 20, S("abcde"), 0, 4, 1);
- test(S("abcdefghijklmnopqrst"), 1, 20, S("abcde"), 0, 5, 1);
- test(S("abcdefghijklmnopqrst"), 1, 20, S("abcde"), 0, 6, 1);
- test(S("abcdefghijklmnopqrst"), 1, 20, S("abcde"), 1, 0, 19);
- test(S("abcdefghijklmnopqrst"), 1, 20, S("abcde"), 1, 1, 18);
- test(S("abcdefghijklmnopqrst"), 1, 20, S("abcde"), 1, 2, 17);
- test(S("abcdefghijklmnopqrst"), 1, 20, S("abcde"), 1, 3, 16);
- test(S("abcdefghijklmnopqrst"), 1, 20, S("abcde"), 1, 4, 15);
- test(S("abcdefghijklmnopqrst"), 1, 20, S("abcde"), 1, 5, 15);
- test(S("abcdefghijklmnopqrst"), 1, 20, S("abcde"), 2, 0, 19);
- test(S("abcdefghijklmnopqrst"), 1, 20, S("abcde"), 2, 1, -1);
- test(S("abcdefghijklmnopqrst"), 1, 20, S("abcde"), 2, 2, -1);
- test(S("abcdefghijklmnopqrst"), 1, 20, S("abcde"), 2, 3, -1);
- test(S("abcdefghijklmnopqrst"), 1, 20, S("abcde"), 2, 4, -1);
- test(S("abcdefghijklmnopqrst"), 1, 20, S("abcde"), 4, 0, 19);
- test(S("abcdefghijklmnopqrst"), 1, 20, S("abcde"), 4, 1, -3);
- test(S("abcdefghijklmnopqrst"), 1, 20, S("abcde"), 4, 2, -3);
- test(S("abcdefghijklmnopqrst"), 1, 20, S("abcde"), 5, 0, 19);
- test(S("abcdefghijklmnopqrst"), 1, 20, S("abcde"), 5, 1, 19);
- test(S("abcdefghijklmnopqrst"), 1, 20, S("abcde"), 6, 0, 0);
- test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghij"), 0, 0, 19);
- test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghij"), 0, 1, 1);
- test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghij"), 0, 5, 1);
- test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghij"), 0, 9, 1);
- test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghij"), 0, 10, 1);
- test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghij"), 0, 11, 1);
- test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghij"), 1, 0, 19);
- test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghij"), 1, 1, 18);
- test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghij"), 1, 4, 15);
- test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghij"), 1, 8, 11);
- test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghij"), 1, 9, 10);
- test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghij"), 1, 10, 10);
- test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghij"), 5, 0, 19);
- test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghij"), 5, 1, -4);
- test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghij"), 5, 2, -4);
- test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghij"), 5, 4, -4);
- test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghij"), 5, 5, -4);
- test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghij"), 5, 6, -4);
- test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghij"), 9, 0, 19);
- test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghij"), 9, 1, -8);
- test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghij"), 9, 2, -8);
- test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghij"), 10, 0, 19);
- test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghij"), 10, 1, 19);
- test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghij"), 11, 0, 0);
- test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghijklmnopqrst"), 0, 0, 19);
- test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghijklmnopqrst"), 0, 1, 1);
- test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghijklmnopqrst"), 0, 10, 1);
- test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghijklmnopqrst"), 0, 19, 1);
- test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghijklmnopqrst"), 0, 20, 1);
- test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghijklmnopqrst"), 0, 21, 1);
- test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghijklmnopqrst"), 1, 0, 19);
- test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghijklmnopqrst"), 1, 1, 18);
- test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghijklmnopqrst"), 1, 9, 10);
- test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghijklmnopqrst"), 1, 18, 1);
- test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghijklmnopqrst"), 1, 19, 0);
- test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghijklmnopqrst"), 1, 20, 0);
- test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghijklmnopqrst"), 10, 0, 19);
- test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghijklmnopqrst"), 10, 1, -9);
- test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghijklmnopqrst"), 10, 5, -9);
- test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghijklmnopqrst"), 10, 9, -9);
- test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghijklmnopqrst"), 10, 10, -9);
- test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghijklmnopqrst"), 10, 11, -9);
- test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghijklmnopqrst"), 19, 0, 19);
- test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghijklmnopqrst"), 19, 1, -18);
- test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghijklmnopqrst"), 19, 2, -18);
- test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghijklmnopqrst"), 20, 0, 19);
- test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghijklmnopqrst"), 20, 1, 19);
- test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghijklmnopqrst"), 10, 0, S(""), 0, 0, 0);
- test(S("abcdefghijklmnopqrst"), 10, 0, S(""), 0, 1, 0);
- test(S("abcdefghijklmnopqrst"), 10, 0, S(""), 1, 0, 0);
- test(S("abcdefghijklmnopqrst"), 10, 0, S("abcde"), 0, 0, 0);
- test(S("abcdefghijklmnopqrst"), 10, 0, S("abcde"), 0, 1, -1);
- test(S("abcdefghijklmnopqrst"), 10, 0, S("abcde"), 0, 2, -2);
- test(S("abcdefghijklmnopqrst"), 10, 0, S("abcde"), 0, 4, -4);
- test(S("abcdefghijklmnopqrst"), 10, 0, S("abcde"), 0, 5, -5);
- test(S("abcdefghijklmnopqrst"), 10, 0, S("abcde"), 0, 6, -5);
- test(S("abcdefghijklmnopqrst"), 10, 0, S("abcde"), 1, 0, 0);
- test(S("abcdefghijklmnopqrst"), 10, 0, S("abcde"), 1, 1, -1);
- test(S("abcdefghijklmnopqrst"), 10, 0, S("abcde"), 1, 2, -2);
+TEST_CONSTEXPR_CXX20 bool test45() {
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghijklmnopqrst"), 1, 19, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghijklmnopqrst"), 1, 20, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghijklmnopqrst"), 10, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghijklmnopqrst"), 10, 1, -9);
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghijklmnopqrst"), 10, 5, -9);
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghijklmnopqrst"), 10, 9, -9);
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghijklmnopqrst"), 10, 10, -9);
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghijklmnopqrst"), 10, 11, -9);
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghijklmnopqrst"), 19, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghijklmnopqrst"), 19, 1, -18);
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghijklmnopqrst"), 19, 2, -18);
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghijklmnopqrst"), 20, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghijklmnopqrst"), 20, 1, 19);
+ test(S("abcdefghijklmnopqrst"), 1, 19, S("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 20, S(""), 0, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 1, 20, S(""), 0, 1, 19);
+ test(S("abcdefghijklmnopqrst"), 1, 20, S(""), 1, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("abcde"), 0, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("abcde"), 0, 1, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("abcde"), 0, 2, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("abcde"), 0, 4, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("abcde"), 0, 5, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("abcde"), 0, 6, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("abcde"), 1, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("abcde"), 1, 1, 18);
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("abcde"), 1, 2, 17);
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("abcde"), 1, 3, 16);
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("abcde"), 1, 4, 15);
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("abcde"), 1, 5, 15);
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("abcde"), 2, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("abcde"), 2, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("abcde"), 2, 2, -1);
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("abcde"), 2, 3, -1);
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("abcde"), 2, 4, -1);
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("abcde"), 4, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("abcde"), 4, 1, -3);
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("abcde"), 4, 2, -3);
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("abcde"), 5, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("abcde"), 5, 1, 19);
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("abcde"), 6, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghij"), 0, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghij"), 0, 1, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghij"), 0, 5, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghij"), 0, 9, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghij"), 0, 10, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghij"), 0, 11, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghij"), 1, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghij"), 1, 1, 18);
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghij"), 1, 4, 15);
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghij"), 1, 8, 11);
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghij"), 1, 9, 10);
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghij"), 1, 10, 10);
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghij"), 5, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghij"), 5, 1, -4);
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghij"), 5, 2, -4);
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghij"), 5, 4, -4);
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghij"), 5, 5, -4);
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghij"), 5, 6, -4);
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghij"), 9, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghij"), 9, 1, -8);
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghij"), 9, 2, -8);
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghij"), 10, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghij"), 10, 1, 19);
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghijklmnopqrst"), 0, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghijklmnopqrst"), 0, 1, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghijklmnopqrst"), 0, 10, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghijklmnopqrst"), 0, 19, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghijklmnopqrst"), 0, 20, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghijklmnopqrst"), 0, 21, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghijklmnopqrst"), 1, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghijklmnopqrst"), 1, 1, 18);
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghijklmnopqrst"), 1, 9, 10);
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghijklmnopqrst"), 1, 18, 1);
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghijklmnopqrst"), 1, 19, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghijklmnopqrst"), 1, 20, 0);
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghijklmnopqrst"), 10, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghijklmnopqrst"), 10, 1, -9);
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghijklmnopqrst"), 10, 5, -9);
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghijklmnopqrst"), 10, 9, -9);
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghijklmnopqrst"), 10, 10, -9);
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghijklmnopqrst"), 10, 11, -9);
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghijklmnopqrst"), 19, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghijklmnopqrst"), 19, 1, -18);
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghijklmnopqrst"), 19, 2, -18);
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghijklmnopqrst"), 20, 0, 19);
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghijklmnopqrst"), 20, 1, 19);
+ test(S("abcdefghijklmnopqrst"), 1, 20, S("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 0, S(""), 0, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 0, S(""), 0, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 0, S(""), 1, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("abcde"), 0, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("abcde"), 0, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("abcde"), 0, 2, -2);
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("abcde"), 0, 4, -4);
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("abcde"), 0, 5, -5);
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("abcde"), 0, 6, -5);
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("abcde"), 1, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("abcde"), 1, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("abcde"), 1, 2, -2);
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test46()
-{
- test(S("abcdefghijklmnopqrst"), 10, 0, S("abcde"), 1, 3, -3);
- test(S("abcdefghijklmnopqrst"), 10, 0, S("abcde"), 1, 4, -4);
- test(S("abcdefghijklmnopqrst"), 10, 0, S("abcde"), 1, 5, -4);
- test(S("abcdefghijklmnopqrst"), 10, 0, S("abcde"), 2, 0, 0);
- test(S("abcdefghijklmnopqrst"), 10, 0, S("abcde"), 2, 1, -1);
- test(S("abcdefghijklmnopqrst"), 10, 0, S("abcde"), 2, 2, -2);
- test(S("abcdefghijklmnopqrst"), 10, 0, S("abcde"), 2, 3, -3);
- test(S("abcdefghijklmnopqrst"), 10, 0, S("abcde"), 2, 4, -3);
- test(S("abcdefghijklmnopqrst"), 10, 0, S("abcde"), 4, 0, 0);
- test(S("abcdefghijklmnopqrst"), 10, 0, S("abcde"), 4, 1, -1);
- test(S("abcdefghijklmnopqrst"), 10, 0, S("abcde"), 4, 2, -1);
- test(S("abcdefghijklmnopqrst"), 10, 0, S("abcde"), 5, 0, 0);
- test(S("abcdefghijklmnopqrst"), 10, 0, S("abcde"), 5, 1, 0);
- test(S("abcdefghijklmnopqrst"), 10, 0, S("abcde"), 6, 0, 0);
- test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghij"), 0, 0, 0);
- test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghij"), 0, 1, -1);
- test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghij"), 0, 5, -5);
- test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghij"), 0, 9, -9);
- test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghij"), 0, 10, -10);
- test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghij"), 0, 11, -10);
- test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghij"), 1, 0, 0);
- test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghij"), 1, 1, -1);
- test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghij"), 1, 4, -4);
- test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghij"), 1, 8, -8);
- test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghij"), 1, 9, -9);
- test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghij"), 1, 10, -9);
- test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghij"), 5, 0, 0);
- test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghij"), 5, 1, -1);
- test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghij"), 5, 2, -2);
- test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghij"), 5, 4, -4);
- test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghij"), 5, 5, -5);
- test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghij"), 5, 6, -5);
- test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghij"), 9, 0, 0);
- test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghij"), 9, 1, -1);
- test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghij"), 9, 2, -1);
- test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghij"), 10, 0, 0);
- test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghij"), 10, 1, 0);
- test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghij"), 11, 0, 0);
- test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghijklmnopqrst"), 0, 0, 0);
- test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghijklmnopqrst"), 0, 1, -1);
- test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghijklmnopqrst"), 0, 10, -10);
- test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghijklmnopqrst"), 0, 19, -19);
- test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghijklmnopqrst"), 0, 20, -20);
- test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghijklmnopqrst"), 0, 21, -20);
- test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghijklmnopqrst"), 1, 0, 0);
- test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghijklmnopqrst"), 1, 1, -1);
- test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghijklmnopqrst"), 1, 9, -9);
- test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghijklmnopqrst"), 1, 18, -18);
- test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghijklmnopqrst"), 1, 19, -19);
- test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghijklmnopqrst"), 1, 20, -19);
- test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghijklmnopqrst"), 10, 0, 0);
- test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghijklmnopqrst"), 10, 1, -1);
- test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghijklmnopqrst"), 10, 5, -5);
- test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghijklmnopqrst"), 10, 9, -9);
- test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghijklmnopqrst"), 10, 10, -10);
- test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghijklmnopqrst"), 10, 11, -10);
- test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghijklmnopqrst"), 19, 0, 0);
- test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghijklmnopqrst"), 19, 1, -1);
- test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghijklmnopqrst"), 19, 2, -1);
- test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghijklmnopqrst"), 20, 0, 0);
- test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghijklmnopqrst"), 20, 1, 0);
- test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghijklmnopqrst"), 10, 1, S(""), 0, 0, 1);
- test(S("abcdefghijklmnopqrst"), 10, 1, S(""), 0, 1, 1);
- test(S("abcdefghijklmnopqrst"), 10, 1, S(""), 1, 0, 0);
- test(S("abcdefghijklmnopqrst"), 10, 1, S("abcde"), 0, 0, 1);
- test(S("abcdefghijklmnopqrst"), 10, 1, S("abcde"), 0, 1, 10);
- test(S("abcdefghijklmnopqrst"), 10, 1, S("abcde"), 0, 2, 10);
- test(S("abcdefghijklmnopqrst"), 10, 1, S("abcde"), 0, 4, 10);
- test(S("abcdefghijklmnopqrst"), 10, 1, S("abcde"), 0, 5, 10);
- test(S("abcdefghijklmnopqrst"), 10, 1, S("abcde"), 0, 6, 10);
- test(S("abcdefghijklmnopqrst"), 10, 1, S("abcde"), 1, 0, 1);
- test(S("abcdefghijklmnopqrst"), 10, 1, S("abcde"), 1, 1, 9);
- test(S("abcdefghijklmnopqrst"), 10, 1, S("abcde"), 1, 2, 9);
- test(S("abcdefghijklmnopqrst"), 10, 1, S("abcde"), 1, 3, 9);
- test(S("abcdefghijklmnopqrst"), 10, 1, S("abcde"), 1, 4, 9);
- test(S("abcdefghijklmnopqrst"), 10, 1, S("abcde"), 1, 5, 9);
- test(S("abcdefghijklmnopqrst"), 10, 1, S("abcde"), 2, 0, 1);
- test(S("abcdefghijklmnopqrst"), 10, 1, S("abcde"), 2, 1, 8);
- test(S("abcdefghijklmnopqrst"), 10, 1, S("abcde"), 2, 2, 8);
- test(S("abcdefghijklmnopqrst"), 10, 1, S("abcde"), 2, 3, 8);
- test(S("abcdefghijklmnopqrst"), 10, 1, S("abcde"), 2, 4, 8);
- test(S("abcdefghijklmnopqrst"), 10, 1, S("abcde"), 4, 0, 1);
- test(S("abcdefghijklmnopqrst"), 10, 1, S("abcde"), 4, 1, 6);
- test(S("abcdefghijklmnopqrst"), 10, 1, S("abcde"), 4, 2, 6);
- test(S("abcdefghijklmnopqrst"), 10, 1, S("abcde"), 5, 0, 1);
- test(S("abcdefghijklmnopqrst"), 10, 1, S("abcde"), 5, 1, 1);
- test(S("abcdefghijklmnopqrst"), 10, 1, S("abcde"), 6, 0, 0);
- test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghij"), 0, 0, 1);
- test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghij"), 0, 1, 10);
- test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghij"), 0, 5, 10);
- test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghij"), 0, 9, 10);
- test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghij"), 0, 10, 10);
- test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghij"), 0, 11, 10);
- test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghij"), 1, 0, 1);
- test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghij"), 1, 1, 9);
- test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghij"), 1, 4, 9);
- test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghij"), 1, 8, 9);
- test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghij"), 1, 9, 9);
- test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghij"), 1, 10, 9);
+TEST_CONSTEXPR_CXX20 bool test46() {
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("abcde"), 1, 3, -3);
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("abcde"), 1, 4, -4);
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("abcde"), 1, 5, -4);
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("abcde"), 2, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("abcde"), 2, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("abcde"), 2, 2, -2);
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("abcde"), 2, 3, -3);
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("abcde"), 2, 4, -3);
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("abcde"), 4, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("abcde"), 4, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("abcde"), 4, 2, -1);
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("abcde"), 5, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("abcde"), 5, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("abcde"), 6, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghij"), 0, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghij"), 0, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghij"), 0, 5, -5);
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghij"), 0, 9, -9);
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghij"), 0, 10, -10);
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghij"), 0, 11, -10);
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghij"), 1, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghij"), 1, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghij"), 1, 4, -4);
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghij"), 1, 8, -8);
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghij"), 1, 9, -9);
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghij"), 1, 10, -9);
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghij"), 5, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghij"), 5, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghij"), 5, 2, -2);
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghij"), 5, 4, -4);
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghij"), 5, 5, -5);
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghij"), 5, 6, -5);
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghij"), 9, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghij"), 9, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghij"), 9, 2, -1);
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghij"), 10, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghij"), 10, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghijklmnopqrst"), 0, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghijklmnopqrst"), 0, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghijklmnopqrst"), 0, 10, -10);
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghijklmnopqrst"), 0, 19, -19);
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghijklmnopqrst"), 0, 20, -20);
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghijklmnopqrst"), 0, 21, -20);
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghijklmnopqrst"), 1, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghijklmnopqrst"), 1, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghijklmnopqrst"), 1, 9, -9);
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghijklmnopqrst"), 1, 18, -18);
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghijklmnopqrst"), 1, 19, -19);
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghijklmnopqrst"), 1, 20, -19);
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghijklmnopqrst"), 10, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghijklmnopqrst"), 10, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghijklmnopqrst"), 10, 5, -5);
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghijklmnopqrst"), 10, 9, -9);
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghijklmnopqrst"), 10, 10, -10);
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghijklmnopqrst"), 10, 11, -10);
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghijklmnopqrst"), 19, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghijklmnopqrst"), 19, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghijklmnopqrst"), 19, 2, -1);
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghijklmnopqrst"), 20, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghijklmnopqrst"), 20, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 0, S("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 1, S(""), 0, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 10, 1, S(""), 0, 1, 1);
+ test(S("abcdefghijklmnopqrst"), 10, 1, S(""), 1, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("abcde"), 0, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("abcde"), 0, 1, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("abcde"), 0, 2, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("abcde"), 0, 4, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("abcde"), 0, 5, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("abcde"), 0, 6, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("abcde"), 1, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("abcde"), 1, 1, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("abcde"), 1, 2, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("abcde"), 1, 3, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("abcde"), 1, 4, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("abcde"), 1, 5, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("abcde"), 2, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("abcde"), 2, 1, 8);
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("abcde"), 2, 2, 8);
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("abcde"), 2, 3, 8);
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("abcde"), 2, 4, 8);
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("abcde"), 4, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("abcde"), 4, 1, 6);
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("abcde"), 4, 2, 6);
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("abcde"), 5, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("abcde"), 5, 1, 1);
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("abcde"), 6, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghij"), 0, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghij"), 0, 1, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghij"), 0, 5, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghij"), 0, 9, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghij"), 0, 10, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghij"), 0, 11, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghij"), 1, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghij"), 1, 1, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghij"), 1, 4, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghij"), 1, 8, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghij"), 1, 9, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghij"), 1, 10, 9);
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test47()
-{
- test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghij"), 5, 0, 1);
- test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghij"), 5, 1, 5);
- test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghij"), 5, 2, 5);
- test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghij"), 5, 4, 5);
- test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghij"), 5, 5, 5);
- test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghij"), 5, 6, 5);
- test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghij"), 9, 0, 1);
- test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghij"), 9, 1, 1);
- test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghij"), 9, 2, 1);
- test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghij"), 10, 0, 1);
- test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghij"), 10, 1, 1);
- test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghij"), 11, 0, 0);
- test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghijklmnopqrst"), 0, 0, 1);
- test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghijklmnopqrst"), 0, 1, 10);
- test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghijklmnopqrst"), 0, 10, 10);
- test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghijklmnopqrst"), 0, 19, 10);
- test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghijklmnopqrst"), 0, 20, 10);
- test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghijklmnopqrst"), 0, 21, 10);
- test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghijklmnopqrst"), 1, 0, 1);
- test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghijklmnopqrst"), 1, 1, 9);
- test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghijklmnopqrst"), 1, 9, 9);
- test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghijklmnopqrst"), 1, 18, 9);
- test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghijklmnopqrst"), 1, 19, 9);
- test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghijklmnopqrst"), 1, 20, 9);
- test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghijklmnopqrst"), 10, 0, 1);
- test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghijklmnopqrst"), 10, 1, 0);
- test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghijklmnopqrst"), 10, 5, -4);
- test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghijklmnopqrst"), 10, 9, -8);
- test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghijklmnopqrst"), 10, 10, -9);
- test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghijklmnopqrst"), 10, 11, -9);
- test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghijklmnopqrst"), 19, 0, 1);
- test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghijklmnopqrst"), 19, 1, -9);
- test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghijklmnopqrst"), 19, 2, -9);
- test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghijklmnopqrst"), 20, 0, 1);
- test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghijklmnopqrst"), 20, 1, 1);
- test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghijklmnopqrst"), 10, 5, S(""), 0, 0, 5);
- test(S("abcdefghijklmnopqrst"), 10, 5, S(""), 0, 1, 5);
- test(S("abcdefghijklmnopqrst"), 10, 5, S(""), 1, 0, 0);
- test(S("abcdefghijklmnopqrst"), 10, 5, S("abcde"), 0, 0, 5);
- test(S("abcdefghijklmnopqrst"), 10, 5, S("abcde"), 0, 1, 10);
- test(S("abcdefghijklmnopqrst"), 10, 5, S("abcde"), 0, 2, 10);
- test(S("abcdefghijklmnopqrst"), 10, 5, S("abcde"), 0, 4, 10);
- test(S("abcdefghijklmnopqrst"), 10, 5, S("abcde"), 0, 5, 10);
- test(S("abcdefghijklmnopqrst"), 10, 5, S("abcde"), 0, 6, 10);
- test(S("abcdefghijklmnopqrst"), 10, 5, S("abcde"), 1, 0, 5);
- test(S("abcdefghijklmnopqrst"), 10, 5, S("abcde"), 1, 1, 9);
- test(S("abcdefghijklmnopqrst"), 10, 5, S("abcde"), 1, 2, 9);
- test(S("abcdefghijklmnopqrst"), 10, 5, S("abcde"), 1, 3, 9);
- test(S("abcdefghijklmnopqrst"), 10, 5, S("abcde"), 1, 4, 9);
- test(S("abcdefghijklmnopqrst"), 10, 5, S("abcde"), 1, 5, 9);
- test(S("abcdefghijklmnopqrst"), 10, 5, S("abcde"), 2, 0, 5);
- test(S("abcdefghijklmnopqrst"), 10, 5, S("abcde"), 2, 1, 8);
- test(S("abcdefghijklmnopqrst"), 10, 5, S("abcde"), 2, 2, 8);
- test(S("abcdefghijklmnopqrst"), 10, 5, S("abcde"), 2, 3, 8);
- test(S("abcdefghijklmnopqrst"), 10, 5, S("abcde"), 2, 4, 8);
- test(S("abcdefghijklmnopqrst"), 10, 5, S("abcde"), 4, 0, 5);
- test(S("abcdefghijklmnopqrst"), 10, 5, S("abcde"), 4, 1, 6);
- test(S("abcdefghijklmnopqrst"), 10, 5, S("abcde"), 4, 2, 6);
- test(S("abcdefghijklmnopqrst"), 10, 5, S("abcde"), 5, 0, 5);
- test(S("abcdefghijklmnopqrst"), 10, 5, S("abcde"), 5, 1, 5);
- test(S("abcdefghijklmnopqrst"), 10, 5, S("abcde"), 6, 0, 0);
- test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghij"), 0, 0, 5);
- test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghij"), 0, 1, 10);
- test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghij"), 0, 5, 10);
- test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghij"), 0, 9, 10);
- test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghij"), 0, 10, 10);
- test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghij"), 0, 11, 10);
- test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghij"), 1, 0, 5);
- test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghij"), 1, 1, 9);
- test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghij"), 1, 4, 9);
- test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghij"), 1, 8, 9);
- test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghij"), 1, 9, 9);
- test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghij"), 1, 10, 9);
- test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghij"), 5, 0, 5);
- test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghij"), 5, 1, 5);
- test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghij"), 5, 2, 5);
- test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghij"), 5, 4, 5);
- test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghij"), 5, 5, 5);
- test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghij"), 5, 6, 5);
- test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghij"), 9, 0, 5);
- test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghij"), 9, 1, 1);
- test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghij"), 9, 2, 1);
- test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghij"), 10, 0, 5);
- test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghij"), 10, 1, 5);
- test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghij"), 11, 0, 0);
- test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghijklmnopqrst"), 0, 0, 5);
- test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghijklmnopqrst"), 0, 1, 10);
- test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghijklmnopqrst"), 0, 10, 10);
- test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghijklmnopqrst"), 0, 19, 10);
- test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghijklmnopqrst"), 0, 20, 10);
- test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghijklmnopqrst"), 0, 21, 10);
- test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghijklmnopqrst"), 1, 0, 5);
- test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghijklmnopqrst"), 1, 1, 9);
- test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghijklmnopqrst"), 1, 9, 9);
- test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghijklmnopqrst"), 1, 18, 9);
- test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghijklmnopqrst"), 1, 19, 9);
- test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghijklmnopqrst"), 1, 20, 9);
- test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghijklmnopqrst"), 10, 0, 5);
- test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghijklmnopqrst"), 10, 1, 4);
+TEST_CONSTEXPR_CXX20 bool test47() {
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghij"), 5, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghij"), 5, 1, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghij"), 5, 2, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghij"), 5, 4, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghij"), 5, 5, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghij"), 5, 6, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghij"), 9, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghij"), 9, 1, 1);
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghij"), 9, 2, 1);
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghij"), 10, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghij"), 10, 1, 1);
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghijklmnopqrst"), 0, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghijklmnopqrst"), 0, 1, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghijklmnopqrst"), 0, 10, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghijklmnopqrst"), 0, 19, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghijklmnopqrst"), 0, 20, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghijklmnopqrst"), 0, 21, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghijklmnopqrst"), 1, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghijklmnopqrst"), 1, 1, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghijklmnopqrst"), 1, 9, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghijklmnopqrst"), 1, 18, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghijklmnopqrst"), 1, 19, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghijklmnopqrst"), 1, 20, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghijklmnopqrst"), 10, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghijklmnopqrst"), 10, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghijklmnopqrst"), 10, 5, -4);
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghijklmnopqrst"), 10, 9, -8);
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghijklmnopqrst"), 10, 10, -9);
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghijklmnopqrst"), 10, 11, -9);
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghijklmnopqrst"), 19, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghijklmnopqrst"), 19, 1, -9);
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghijklmnopqrst"), 19, 2, -9);
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghijklmnopqrst"), 20, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghijklmnopqrst"), 20, 1, 1);
+ test(S("abcdefghijklmnopqrst"), 10, 1, S("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 5, S(""), 0, 0, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 5, S(""), 0, 1, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 5, S(""), 1, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("abcde"), 0, 0, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("abcde"), 0, 1, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("abcde"), 0, 2, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("abcde"), 0, 4, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("abcde"), 0, 5, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("abcde"), 0, 6, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("abcde"), 1, 0, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("abcde"), 1, 1, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("abcde"), 1, 2, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("abcde"), 1, 3, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("abcde"), 1, 4, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("abcde"), 1, 5, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("abcde"), 2, 0, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("abcde"), 2, 1, 8);
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("abcde"), 2, 2, 8);
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("abcde"), 2, 3, 8);
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("abcde"), 2, 4, 8);
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("abcde"), 4, 0, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("abcde"), 4, 1, 6);
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("abcde"), 4, 2, 6);
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("abcde"), 5, 0, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("abcde"), 5, 1, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("abcde"), 6, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghij"), 0, 0, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghij"), 0, 1, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghij"), 0, 5, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghij"), 0, 9, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghij"), 0, 10, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghij"), 0, 11, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghij"), 1, 0, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghij"), 1, 1, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghij"), 1, 4, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghij"), 1, 8, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghij"), 1, 9, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghij"), 1, 10, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghij"), 5, 0, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghij"), 5, 1, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghij"), 5, 2, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghij"), 5, 4, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghij"), 5, 5, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghij"), 5, 6, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghij"), 9, 0, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghij"), 9, 1, 1);
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghij"), 9, 2, 1);
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghij"), 10, 0, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghij"), 10, 1, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghijklmnopqrst"), 0, 0, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghijklmnopqrst"), 0, 1, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghijklmnopqrst"), 0, 10, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghijklmnopqrst"), 0, 19, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghijklmnopqrst"), 0, 20, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghijklmnopqrst"), 0, 21, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghijklmnopqrst"), 1, 0, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghijklmnopqrst"), 1, 1, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghijklmnopqrst"), 1, 9, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghijklmnopqrst"), 1, 18, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghijklmnopqrst"), 1, 19, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghijklmnopqrst"), 1, 20, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghijklmnopqrst"), 10, 0, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghijklmnopqrst"), 10, 1, 4);
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test48()
-{
- test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghijklmnopqrst"), 10, 5, 0);
- test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghijklmnopqrst"), 10, 9, -4);
- test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghijklmnopqrst"), 10, 10, -5);
- test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghijklmnopqrst"), 10, 11, -5);
- test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghijklmnopqrst"), 19, 0, 5);
- test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghijklmnopqrst"), 19, 1, -9);
- test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghijklmnopqrst"), 19, 2, -9);
- test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghijklmnopqrst"), 20, 0, 5);
- test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghijklmnopqrst"), 20, 1, 5);
- test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghijklmnopqrst"), 10, 9, S(""), 0, 0, 9);
- test(S("abcdefghijklmnopqrst"), 10, 9, S(""), 0, 1, 9);
- test(S("abcdefghijklmnopqrst"), 10, 9, S(""), 1, 0, 0);
- test(S("abcdefghijklmnopqrst"), 10, 9, S("abcde"), 0, 0, 9);
- test(S("abcdefghijklmnopqrst"), 10, 9, S("abcde"), 0, 1, 10);
- test(S("abcdefghijklmnopqrst"), 10, 9, S("abcde"), 0, 2, 10);
- test(S("abcdefghijklmnopqrst"), 10, 9, S("abcde"), 0, 4, 10);
- test(S("abcdefghijklmnopqrst"), 10, 9, S("abcde"), 0, 5, 10);
- test(S("abcdefghijklmnopqrst"), 10, 9, S("abcde"), 0, 6, 10);
- test(S("abcdefghijklmnopqrst"), 10, 9, S("abcde"), 1, 0, 9);
- test(S("abcdefghijklmnopqrst"), 10, 9, S("abcde"), 1, 1, 9);
- test(S("abcdefghijklmnopqrst"), 10, 9, S("abcde"), 1, 2, 9);
- test(S("abcdefghijklmnopqrst"), 10, 9, S("abcde"), 1, 3, 9);
- test(S("abcdefghijklmnopqrst"), 10, 9, S("abcde"), 1, 4, 9);
- test(S("abcdefghijklmnopqrst"), 10, 9, S("abcde"), 1, 5, 9);
- test(S("abcdefghijklmnopqrst"), 10, 9, S("abcde"), 2, 0, 9);
- test(S("abcdefghijklmnopqrst"), 10, 9, S("abcde"), 2, 1, 8);
- test(S("abcdefghijklmnopqrst"), 10, 9, S("abcde"), 2, 2, 8);
- test(S("abcdefghijklmnopqrst"), 10, 9, S("abcde"), 2, 3, 8);
- test(S("abcdefghijklmnopqrst"), 10, 9, S("abcde"), 2, 4, 8);
- test(S("abcdefghijklmnopqrst"), 10, 9, S("abcde"), 4, 0, 9);
- test(S("abcdefghijklmnopqrst"), 10, 9, S("abcde"), 4, 1, 6);
- test(S("abcdefghijklmnopqrst"), 10, 9, S("abcde"), 4, 2, 6);
- test(S("abcdefghijklmnopqrst"), 10, 9, S("abcde"), 5, 0, 9);
- test(S("abcdefghijklmnopqrst"), 10, 9, S("abcde"), 5, 1, 9);
- test(S("abcdefghijklmnopqrst"), 10, 9, S("abcde"), 6, 0, 0);
- test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghij"), 0, 0, 9);
- test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghij"), 0, 1, 10);
- test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghij"), 0, 5, 10);
- test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghij"), 0, 9, 10);
- test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghij"), 0, 10, 10);
- test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghij"), 0, 11, 10);
- test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghij"), 1, 0, 9);
- test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghij"), 1, 1, 9);
- test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghij"), 1, 4, 9);
- test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghij"), 1, 8, 9);
- test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghij"), 1, 9, 9);
- test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghij"), 1, 10, 9);
- test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghij"), 5, 0, 9);
- test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghij"), 5, 1, 5);
- test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghij"), 5, 2, 5);
- test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghij"), 5, 4, 5);
- test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghij"), 5, 5, 5);
- test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghij"), 5, 6, 5);
- test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghij"), 9, 0, 9);
- test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghij"), 9, 1, 1);
- test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghij"), 9, 2, 1);
- test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghij"), 10, 0, 9);
- test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghij"), 10, 1, 9);
- test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghij"), 11, 0, 0);
- test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghijklmnopqrst"), 0, 0, 9);
- test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghijklmnopqrst"), 0, 1, 10);
- test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghijklmnopqrst"), 0, 10, 10);
- test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghijklmnopqrst"), 0, 19, 10);
- test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghijklmnopqrst"), 0, 20, 10);
- test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghijklmnopqrst"), 0, 21, 10);
- test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghijklmnopqrst"), 1, 0, 9);
- test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghijklmnopqrst"), 1, 1, 9);
- test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghijklmnopqrst"), 1, 9, 9);
- test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghijklmnopqrst"), 1, 18, 9);
- test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghijklmnopqrst"), 1, 19, 9);
- test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghijklmnopqrst"), 1, 20, 9);
- test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghijklmnopqrst"), 10, 0, 9);
- test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghijklmnopqrst"), 10, 1, 8);
- test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghijklmnopqrst"), 10, 5, 4);
- test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghijklmnopqrst"), 10, 9, 0);
- test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghijklmnopqrst"), 10, 10, -1);
- test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghijklmnopqrst"), 10, 11, -1);
- test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghijklmnopqrst"), 19, 0, 9);
- test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghijklmnopqrst"), 19, 1, -9);
- test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghijklmnopqrst"), 19, 2, -9);
- test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghijklmnopqrst"), 20, 0, 9);
- test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghijklmnopqrst"), 20, 1, 9);
- test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghijklmnopqrst"), 10, 10, S(""), 0, 0, 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, S(""), 0, 1, 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, S(""), 1, 0, 0);
- test(S("abcdefghijklmnopqrst"), 10, 10, S("abcde"), 0, 0, 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, S("abcde"), 0, 1, 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, S("abcde"), 0, 2, 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, S("abcde"), 0, 4, 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, S("abcde"), 0, 5, 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, S("abcde"), 0, 6, 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, S("abcde"), 1, 0, 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, S("abcde"), 1, 1, 9);
- test(S("abcdefghijklmnopqrst"), 10, 10, S("abcde"), 1, 2, 9);
- test(S("abcdefghijklmnopqrst"), 10, 10, S("abcde"), 1, 3, 9);
- test(S("abcdefghijklmnopqrst"), 10, 10, S("abcde"), 1, 4, 9);
- test(S("abcdefghijklmnopqrst"), 10, 10, S("abcde"), 1, 5, 9);
- test(S("abcdefghijklmnopqrst"), 10, 10, S("abcde"), 2, 0, 10);
+TEST_CONSTEXPR_CXX20 bool test48() {
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghijklmnopqrst"), 10, 5, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghijklmnopqrst"), 10, 9, -4);
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghijklmnopqrst"), 10, 10, -5);
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghijklmnopqrst"), 10, 11, -5);
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghijklmnopqrst"), 19, 0, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghijklmnopqrst"), 19, 1, -9);
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghijklmnopqrst"), 19, 2, -9);
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghijklmnopqrst"), 20, 0, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghijklmnopqrst"), 20, 1, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 5, S("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 9, S(""), 0, 0, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 9, S(""), 0, 1, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 9, S(""), 1, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("abcde"), 0, 0, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("abcde"), 0, 1, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("abcde"), 0, 2, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("abcde"), 0, 4, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("abcde"), 0, 5, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("abcde"), 0, 6, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("abcde"), 1, 0, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("abcde"), 1, 1, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("abcde"), 1, 2, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("abcde"), 1, 3, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("abcde"), 1, 4, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("abcde"), 1, 5, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("abcde"), 2, 0, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("abcde"), 2, 1, 8);
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("abcde"), 2, 2, 8);
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("abcde"), 2, 3, 8);
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("abcde"), 2, 4, 8);
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("abcde"), 4, 0, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("abcde"), 4, 1, 6);
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("abcde"), 4, 2, 6);
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("abcde"), 5, 0, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("abcde"), 5, 1, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("abcde"), 6, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghij"), 0, 0, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghij"), 0, 1, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghij"), 0, 5, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghij"), 0, 9, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghij"), 0, 10, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghij"), 0, 11, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghij"), 1, 0, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghij"), 1, 1, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghij"), 1, 4, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghij"), 1, 8, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghij"), 1, 9, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghij"), 1, 10, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghij"), 5, 0, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghij"), 5, 1, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghij"), 5, 2, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghij"), 5, 4, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghij"), 5, 5, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghij"), 5, 6, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghij"), 9, 0, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghij"), 9, 1, 1);
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghij"), 9, 2, 1);
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghij"), 10, 0, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghij"), 10, 1, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghijklmnopqrst"), 0, 0, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghijklmnopqrst"), 0, 1, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghijklmnopqrst"), 0, 10, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghijklmnopqrst"), 0, 19, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghijklmnopqrst"), 0, 20, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghijklmnopqrst"), 0, 21, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghijklmnopqrst"), 1, 0, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghijklmnopqrst"), 1, 1, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghijklmnopqrst"), 1, 9, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghijklmnopqrst"), 1, 18, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghijklmnopqrst"), 1, 19, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghijklmnopqrst"), 1, 20, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghijklmnopqrst"), 10, 0, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghijklmnopqrst"), 10, 1, 8);
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghijklmnopqrst"), 10, 5, 4);
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghijklmnopqrst"), 10, 9, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghijklmnopqrst"), 10, 10, -1);
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghijklmnopqrst"), 10, 11, -1);
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghijklmnopqrst"), 19, 0, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghijklmnopqrst"), 19, 1, -9);
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghijklmnopqrst"), 19, 2, -9);
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghijklmnopqrst"), 20, 0, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghijklmnopqrst"), 20, 1, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 9, S("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 10, S(""), 0, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, S(""), 0, 1, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, S(""), 1, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("abcde"), 0, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("abcde"), 0, 1, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("abcde"), 0, 2, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("abcde"), 0, 4, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("abcde"), 0, 5, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("abcde"), 0, 6, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("abcde"), 1, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("abcde"), 1, 1, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("abcde"), 1, 2, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("abcde"), 1, 3, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("abcde"), 1, 4, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("abcde"), 1, 5, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("abcde"), 2, 0, 10);
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test49()
-{
- test(S("abcdefghijklmnopqrst"), 10, 10, S("abcde"), 2, 1, 8);
- test(S("abcdefghijklmnopqrst"), 10, 10, S("abcde"), 2, 2, 8);
- test(S("abcdefghijklmnopqrst"), 10, 10, S("abcde"), 2, 3, 8);
- test(S("abcdefghijklmnopqrst"), 10, 10, S("abcde"), 2, 4, 8);
- test(S("abcdefghijklmnopqrst"), 10, 10, S("abcde"), 4, 0, 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, S("abcde"), 4, 1, 6);
- test(S("abcdefghijklmnopqrst"), 10, 10, S("abcde"), 4, 2, 6);
- test(S("abcdefghijklmnopqrst"), 10, 10, S("abcde"), 5, 0, 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, S("abcde"), 5, 1, 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, S("abcde"), 6, 0, 0);
- test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghij"), 0, 0, 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghij"), 0, 1, 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghij"), 0, 5, 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghij"), 0, 9, 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghij"), 0, 10, 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghij"), 0, 11, 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghij"), 1, 0, 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghij"), 1, 1, 9);
- test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghij"), 1, 4, 9);
- test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghij"), 1, 8, 9);
- test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghij"), 1, 9, 9);
- test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghij"), 1, 10, 9);
- test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghij"), 5, 0, 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghij"), 5, 1, 5);
- test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghij"), 5, 2, 5);
- test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghij"), 5, 4, 5);
- test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghij"), 5, 5, 5);
- test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghij"), 5, 6, 5);
- test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghij"), 9, 0, 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghij"), 9, 1, 1);
- test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghij"), 9, 2, 1);
- test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghij"), 10, 0, 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghij"), 10, 1, 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghij"), 11, 0, 0);
- test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghijklmnopqrst"), 0, 0, 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghijklmnopqrst"), 0, 1, 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghijklmnopqrst"), 0, 10, 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghijklmnopqrst"), 0, 19, 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghijklmnopqrst"), 0, 20, 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghijklmnopqrst"), 0, 21, 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghijklmnopqrst"), 1, 0, 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghijklmnopqrst"), 1, 1, 9);
- test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghijklmnopqrst"), 1, 9, 9);
- test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghijklmnopqrst"), 1, 18, 9);
- test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghijklmnopqrst"), 1, 19, 9);
- test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghijklmnopqrst"), 1, 20, 9);
- test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghijklmnopqrst"), 10, 0, 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghijklmnopqrst"), 10, 1, 9);
- test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghijklmnopqrst"), 10, 5, 5);
- test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghijklmnopqrst"), 10, 9, 1);
- test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghijklmnopqrst"), 10, 10, 0);
- test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghijklmnopqrst"), 10, 11, 0);
- test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghijklmnopqrst"), 19, 0, 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghijklmnopqrst"), 19, 1, -9);
- test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghijklmnopqrst"), 19, 2, -9);
- test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghijklmnopqrst"), 20, 0, 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghijklmnopqrst"), 20, 1, 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghijklmnopqrst"), 10, 11, S(""), 0, 0, 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, S(""), 0, 1, 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, S(""), 1, 0, 0);
- test(S("abcdefghijklmnopqrst"), 10, 11, S("abcde"), 0, 0, 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, S("abcde"), 0, 1, 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, S("abcde"), 0, 2, 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, S("abcde"), 0, 4, 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, S("abcde"), 0, 5, 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, S("abcde"), 0, 6, 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, S("abcde"), 1, 0, 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, S("abcde"), 1, 1, 9);
- test(S("abcdefghijklmnopqrst"), 10, 11, S("abcde"), 1, 2, 9);
- test(S("abcdefghijklmnopqrst"), 10, 11, S("abcde"), 1, 3, 9);
- test(S("abcdefghijklmnopqrst"), 10, 11, S("abcde"), 1, 4, 9);
- test(S("abcdefghijklmnopqrst"), 10, 11, S("abcde"), 1, 5, 9);
- test(S("abcdefghijklmnopqrst"), 10, 11, S("abcde"), 2, 0, 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, S("abcde"), 2, 1, 8);
- test(S("abcdefghijklmnopqrst"), 10, 11, S("abcde"), 2, 2, 8);
- test(S("abcdefghijklmnopqrst"), 10, 11, S("abcde"), 2, 3, 8);
- test(S("abcdefghijklmnopqrst"), 10, 11, S("abcde"), 2, 4, 8);
- test(S("abcdefghijklmnopqrst"), 10, 11, S("abcde"), 4, 0, 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, S("abcde"), 4, 1, 6);
- test(S("abcdefghijklmnopqrst"), 10, 11, S("abcde"), 4, 2, 6);
- test(S("abcdefghijklmnopqrst"), 10, 11, S("abcde"), 5, 0, 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, S("abcde"), 5, 1, 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, S("abcde"), 6, 0, 0);
- test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghij"), 0, 0, 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghij"), 0, 1, 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghij"), 0, 5, 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghij"), 0, 9, 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghij"), 0, 10, 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghij"), 0, 11, 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghij"), 1, 0, 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghij"), 1, 1, 9);
- test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghij"), 1, 4, 9);
- test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghij"), 1, 8, 9);
- test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghij"), 1, 9, 9);
- test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghij"), 1, 10, 9);
- test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghij"), 5, 0, 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghij"), 5, 1, 5);
- test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghij"), 5, 2, 5);
- test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghij"), 5, 4, 5);
+TEST_CONSTEXPR_CXX20 bool test49() {
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("abcde"), 2, 1, 8);
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("abcde"), 2, 2, 8);
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("abcde"), 2, 3, 8);
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("abcde"), 2, 4, 8);
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("abcde"), 4, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("abcde"), 4, 1, 6);
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("abcde"), 4, 2, 6);
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("abcde"), 5, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("abcde"), 5, 1, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("abcde"), 6, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghij"), 0, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghij"), 0, 1, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghij"), 0, 5, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghij"), 0, 9, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghij"), 0, 10, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghij"), 0, 11, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghij"), 1, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghij"), 1, 1, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghij"), 1, 4, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghij"), 1, 8, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghij"), 1, 9, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghij"), 1, 10, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghij"), 5, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghij"), 5, 1, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghij"), 5, 2, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghij"), 5, 4, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghij"), 5, 5, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghij"), 5, 6, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghij"), 9, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghij"), 9, 1, 1);
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghij"), 9, 2, 1);
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghij"), 10, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghij"), 10, 1, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghijklmnopqrst"), 0, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghijklmnopqrst"), 0, 1, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghijklmnopqrst"), 0, 10, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghijklmnopqrst"), 0, 19, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghijklmnopqrst"), 0, 20, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghijklmnopqrst"), 0, 21, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghijklmnopqrst"), 1, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghijklmnopqrst"), 1, 1, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghijklmnopqrst"), 1, 9, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghijklmnopqrst"), 1, 18, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghijklmnopqrst"), 1, 19, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghijklmnopqrst"), 1, 20, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghijklmnopqrst"), 10, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghijklmnopqrst"), 10, 1, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghijklmnopqrst"), 10, 5, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghijklmnopqrst"), 10, 9, 1);
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghijklmnopqrst"), 10, 10, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghijklmnopqrst"), 10, 11, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghijklmnopqrst"), 19, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghijklmnopqrst"), 19, 1, -9);
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghijklmnopqrst"), 19, 2, -9);
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghijklmnopqrst"), 20, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghijklmnopqrst"), 20, 1, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, S("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 11, S(""), 0, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, S(""), 0, 1, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, S(""), 1, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("abcde"), 0, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("abcde"), 0, 1, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("abcde"), 0, 2, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("abcde"), 0, 4, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("abcde"), 0, 5, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("abcde"), 0, 6, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("abcde"), 1, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("abcde"), 1, 1, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("abcde"), 1, 2, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("abcde"), 1, 3, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("abcde"), 1, 4, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("abcde"), 1, 5, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("abcde"), 2, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("abcde"), 2, 1, 8);
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("abcde"), 2, 2, 8);
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("abcde"), 2, 3, 8);
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("abcde"), 2, 4, 8);
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("abcde"), 4, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("abcde"), 4, 1, 6);
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("abcde"), 4, 2, 6);
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("abcde"), 5, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("abcde"), 5, 1, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("abcde"), 6, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghij"), 0, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghij"), 0, 1, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghij"), 0, 5, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghij"), 0, 9, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghij"), 0, 10, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghij"), 0, 11, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghij"), 1, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghij"), 1, 1, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghij"), 1, 4, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghij"), 1, 8, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghij"), 1, 9, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghij"), 1, 10, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghij"), 5, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghij"), 5, 1, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghij"), 5, 2, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghij"), 5, 4, 5);
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test50()
-{
- test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghij"), 5, 5, 5);
- test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghij"), 5, 6, 5);
- test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghij"), 9, 0, 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghij"), 9, 1, 1);
- test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghij"), 9, 2, 1);
- test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghij"), 10, 0, 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghij"), 10, 1, 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghij"), 11, 0, 0);
- test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghijklmnopqrst"), 0, 0, 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghijklmnopqrst"), 0, 1, 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghijklmnopqrst"), 0, 10, 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghijklmnopqrst"), 0, 19, 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghijklmnopqrst"), 0, 20, 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghijklmnopqrst"), 0, 21, 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghijklmnopqrst"), 1, 0, 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghijklmnopqrst"), 1, 1, 9);
- test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghijklmnopqrst"), 1, 9, 9);
- test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghijklmnopqrst"), 1, 18, 9);
- test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghijklmnopqrst"), 1, 19, 9);
- test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghijklmnopqrst"), 1, 20, 9);
- test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghijklmnopqrst"), 10, 0, 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghijklmnopqrst"), 10, 1, 9);
- test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghijklmnopqrst"), 10, 5, 5);
- test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghijklmnopqrst"), 10, 9, 1);
- test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghijklmnopqrst"), 10, 10, 0);
- test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghijklmnopqrst"), 10, 11, 0);
- test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghijklmnopqrst"), 19, 0, 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghijklmnopqrst"), 19, 1, -9);
- test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghijklmnopqrst"), 19, 2, -9);
- test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghijklmnopqrst"), 20, 0, 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghijklmnopqrst"), 20, 1, 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghijklmnopqrst"), 19, 0, S(""), 0, 0, 0);
- test(S("abcdefghijklmnopqrst"), 19, 0, S(""), 0, 1, 0);
- test(S("abcdefghijklmnopqrst"), 19, 0, S(""), 1, 0, 0);
- test(S("abcdefghijklmnopqrst"), 19, 0, S("abcde"), 0, 0, 0);
- test(S("abcdefghijklmnopqrst"), 19, 0, S("abcde"), 0, 1, -1);
- test(S("abcdefghijklmnopqrst"), 19, 0, S("abcde"), 0, 2, -2);
- test(S("abcdefghijklmnopqrst"), 19, 0, S("abcde"), 0, 4, -4);
- test(S("abcdefghijklmnopqrst"), 19, 0, S("abcde"), 0, 5, -5);
- test(S("abcdefghijklmnopqrst"), 19, 0, S("abcde"), 0, 6, -5);
- test(S("abcdefghijklmnopqrst"), 19, 0, S("abcde"), 1, 0, 0);
- test(S("abcdefghijklmnopqrst"), 19, 0, S("abcde"), 1, 1, -1);
- test(S("abcdefghijklmnopqrst"), 19, 0, S("abcde"), 1, 2, -2);
- test(S("abcdefghijklmnopqrst"), 19, 0, S("abcde"), 1, 3, -3);
- test(S("abcdefghijklmnopqrst"), 19, 0, S("abcde"), 1, 4, -4);
- test(S("abcdefghijklmnopqrst"), 19, 0, S("abcde"), 1, 5, -4);
- test(S("abcdefghijklmnopqrst"), 19, 0, S("abcde"), 2, 0, 0);
- test(S("abcdefghijklmnopqrst"), 19, 0, S("abcde"), 2, 1, -1);
- test(S("abcdefghijklmnopqrst"), 19, 0, S("abcde"), 2, 2, -2);
- test(S("abcdefghijklmnopqrst"), 19, 0, S("abcde"), 2, 3, -3);
- test(S("abcdefghijklmnopqrst"), 19, 0, S("abcde"), 2, 4, -3);
- test(S("abcdefghijklmnopqrst"), 19, 0, S("abcde"), 4, 0, 0);
- test(S("abcdefghijklmnopqrst"), 19, 0, S("abcde"), 4, 1, -1);
- test(S("abcdefghijklmnopqrst"), 19, 0, S("abcde"), 4, 2, -1);
- test(S("abcdefghijklmnopqrst"), 19, 0, S("abcde"), 5, 0, 0);
- test(S("abcdefghijklmnopqrst"), 19, 0, S("abcde"), 5, 1, 0);
- test(S("abcdefghijklmnopqrst"), 19, 0, S("abcde"), 6, 0, 0);
- test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghij"), 0, 0, 0);
- test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghij"), 0, 1, -1);
- test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghij"), 0, 5, -5);
- test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghij"), 0, 9, -9);
- test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghij"), 0, 10, -10);
- test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghij"), 0, 11, -10);
- test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghij"), 1, 0, 0);
- test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghij"), 1, 1, -1);
- test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghij"), 1, 4, -4);
- test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghij"), 1, 8, -8);
- test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghij"), 1, 9, -9);
- test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghij"), 1, 10, -9);
- test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghij"), 5, 0, 0);
- test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghij"), 5, 1, -1);
- test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghij"), 5, 2, -2);
- test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghij"), 5, 4, -4);
- test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghij"), 5, 5, -5);
- test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghij"), 5, 6, -5);
- test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghij"), 9, 0, 0);
- test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghij"), 9, 1, -1);
- test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghij"), 9, 2, -1);
- test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghij"), 10, 0, 0);
- test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghij"), 10, 1, 0);
- test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghij"), 11, 0, 0);
- test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghijklmnopqrst"), 0, 0, 0);
- test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghijklmnopqrst"), 0, 1, -1);
- test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghijklmnopqrst"), 0, 10, -10);
- test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghijklmnopqrst"), 0, 19, -19);
- test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghijklmnopqrst"), 0, 20, -20);
- test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghijklmnopqrst"), 0, 21, -20);
- test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghijklmnopqrst"), 1, 0, 0);
- test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghijklmnopqrst"), 1, 1, -1);
- test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghijklmnopqrst"), 1, 9, -9);
- test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghijklmnopqrst"), 1, 18, -18);
- test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghijklmnopqrst"), 1, 19, -19);
- test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghijklmnopqrst"), 1, 20, -19);
- test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghijklmnopqrst"), 10, 0, 0);
- test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghijklmnopqrst"), 10, 1, -1);
- test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghijklmnopqrst"), 10, 5, -5);
- test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghijklmnopqrst"), 10, 9, -9);
- test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghijklmnopqrst"), 10, 10, -10);
- test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghijklmnopqrst"), 10, 11, -10);
+TEST_CONSTEXPR_CXX20 bool test50() {
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghij"), 5, 5, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghij"), 5, 6, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghij"), 9, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghij"), 9, 1, 1);
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghij"), 9, 2, 1);
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghij"), 10, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghij"), 10, 1, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghijklmnopqrst"), 0, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghijklmnopqrst"), 0, 1, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghijklmnopqrst"), 0, 10, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghijklmnopqrst"), 0, 19, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghijklmnopqrst"), 0, 20, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghijklmnopqrst"), 0, 21, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghijklmnopqrst"), 1, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghijklmnopqrst"), 1, 1, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghijklmnopqrst"), 1, 9, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghijklmnopqrst"), 1, 18, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghijklmnopqrst"), 1, 19, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghijklmnopqrst"), 1, 20, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghijklmnopqrst"), 10, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghijklmnopqrst"), 10, 1, 9);
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghijklmnopqrst"), 10, 5, 5);
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghijklmnopqrst"), 10, 9, 1);
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghijklmnopqrst"), 10, 10, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghijklmnopqrst"), 10, 11, 0);
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghijklmnopqrst"), 19, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghijklmnopqrst"), 19, 1, -9);
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghijklmnopqrst"), 19, 2, -9);
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghijklmnopqrst"), 20, 0, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghijklmnopqrst"), 20, 1, 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, S("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 19, 0, S(""), 0, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 19, 0, S(""), 0, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 19, 0, S(""), 1, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("abcde"), 0, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("abcde"), 0, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("abcde"), 0, 2, -2);
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("abcde"), 0, 4, -4);
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("abcde"), 0, 5, -5);
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("abcde"), 0, 6, -5);
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("abcde"), 1, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("abcde"), 1, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("abcde"), 1, 2, -2);
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("abcde"), 1, 3, -3);
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("abcde"), 1, 4, -4);
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("abcde"), 1, 5, -4);
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("abcde"), 2, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("abcde"), 2, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("abcde"), 2, 2, -2);
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("abcde"), 2, 3, -3);
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("abcde"), 2, 4, -3);
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("abcde"), 4, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("abcde"), 4, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("abcde"), 4, 2, -1);
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("abcde"), 5, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("abcde"), 5, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("abcde"), 6, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghij"), 0, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghij"), 0, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghij"), 0, 5, -5);
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghij"), 0, 9, -9);
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghij"), 0, 10, -10);
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghij"), 0, 11, -10);
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghij"), 1, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghij"), 1, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghij"), 1, 4, -4);
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghij"), 1, 8, -8);
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghij"), 1, 9, -9);
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghij"), 1, 10, -9);
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghij"), 5, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghij"), 5, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghij"), 5, 2, -2);
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghij"), 5, 4, -4);
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghij"), 5, 5, -5);
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghij"), 5, 6, -5);
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghij"), 9, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghij"), 9, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghij"), 9, 2, -1);
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghij"), 10, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghij"), 10, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghijklmnopqrst"), 0, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghijklmnopqrst"), 0, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghijklmnopqrst"), 0, 10, -10);
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghijklmnopqrst"), 0, 19, -19);
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghijklmnopqrst"), 0, 20, -20);
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghijklmnopqrst"), 0, 21, -20);
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghijklmnopqrst"), 1, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghijklmnopqrst"), 1, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghijklmnopqrst"), 1, 9, -9);
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghijklmnopqrst"), 1, 18, -18);
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghijklmnopqrst"), 1, 19, -19);
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghijklmnopqrst"), 1, 20, -19);
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghijklmnopqrst"), 10, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghijklmnopqrst"), 10, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghijklmnopqrst"), 10, 5, -5);
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghijklmnopqrst"), 10, 9, -9);
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghijklmnopqrst"), 10, 10, -10);
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghijklmnopqrst"), 10, 11, -10);
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test51()
-{
- test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghijklmnopqrst"), 19, 0, 0);
- test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghijklmnopqrst"), 19, 1, -1);
- test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghijklmnopqrst"), 19, 2, -1);
- test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghijklmnopqrst"), 20, 0, 0);
- test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghijklmnopqrst"), 20, 1, 0);
- test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghijklmnopqrst"), 19, 1, S(""), 0, 0, 1);
- test(S("abcdefghijklmnopqrst"), 19, 1, S(""), 0, 1, 1);
- test(S("abcdefghijklmnopqrst"), 19, 1, S(""), 1, 0, 0);
- test(S("abcdefghijklmnopqrst"), 19, 1, S("abcde"), 0, 0, 1);
- test(S("abcdefghijklmnopqrst"), 19, 1, S("abcde"), 0, 1, 19);
- test(S("abcdefghijklmnopqrst"), 19, 1, S("abcde"), 0, 2, 19);
- test(S("abcdefghijklmnopqrst"), 19, 1, S("abcde"), 0, 4, 19);
- test(S("abcdefghijklmnopqrst"), 19, 1, S("abcde"), 0, 5, 19);
- test(S("abcdefghijklmnopqrst"), 19, 1, S("abcde"), 0, 6, 19);
- test(S("abcdefghijklmnopqrst"), 19, 1, S("abcde"), 1, 0, 1);
- test(S("abcdefghijklmnopqrst"), 19, 1, S("abcde"), 1, 1, 18);
- test(S("abcdefghijklmnopqrst"), 19, 1, S("abcde"), 1, 2, 18);
- test(S("abcdefghijklmnopqrst"), 19, 1, S("abcde"), 1, 3, 18);
- test(S("abcdefghijklmnopqrst"), 19, 1, S("abcde"), 1, 4, 18);
- test(S("abcdefghijklmnopqrst"), 19, 1, S("abcde"), 1, 5, 18);
- test(S("abcdefghijklmnopqrst"), 19, 1, S("abcde"), 2, 0, 1);
- test(S("abcdefghijklmnopqrst"), 19, 1, S("abcde"), 2, 1, 17);
- test(S("abcdefghijklmnopqrst"), 19, 1, S("abcde"), 2, 2, 17);
- test(S("abcdefghijklmnopqrst"), 19, 1, S("abcde"), 2, 3, 17);
- test(S("abcdefghijklmnopqrst"), 19, 1, S("abcde"), 2, 4, 17);
- test(S("abcdefghijklmnopqrst"), 19, 1, S("abcde"), 4, 0, 1);
- test(S("abcdefghijklmnopqrst"), 19, 1, S("abcde"), 4, 1, 15);
- test(S("abcdefghijklmnopqrst"), 19, 1, S("abcde"), 4, 2, 15);
- test(S("abcdefghijklmnopqrst"), 19, 1, S("abcde"), 5, 0, 1);
- test(S("abcdefghijklmnopqrst"), 19, 1, S("abcde"), 5, 1, 1);
- test(S("abcdefghijklmnopqrst"), 19, 1, S("abcde"), 6, 0, 0);
- test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghij"), 0, 0, 1);
- test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghij"), 0, 1, 19);
- test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghij"), 0, 5, 19);
- test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghij"), 0, 9, 19);
- test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghij"), 0, 10, 19);
- test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghij"), 0, 11, 19);
- test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghij"), 1, 0, 1);
- test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghij"), 1, 1, 18);
- test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghij"), 1, 4, 18);
- test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghij"), 1, 8, 18);
- test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghij"), 1, 9, 18);
- test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghij"), 1, 10, 18);
- test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghij"), 5, 0, 1);
- test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghij"), 5, 1, 14);
- test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghij"), 5, 2, 14);
- test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghij"), 5, 4, 14);
- test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghij"), 5, 5, 14);
- test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghij"), 5, 6, 14);
- test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghij"), 9, 0, 1);
- test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghij"), 9, 1, 10);
- test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghij"), 9, 2, 10);
- test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghij"), 10, 0, 1);
- test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghij"), 10, 1, 1);
- test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghij"), 11, 0, 0);
- test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghijklmnopqrst"), 0, 0, 1);
- test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghijklmnopqrst"), 0, 1, 19);
- test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghijklmnopqrst"), 0, 10, 19);
- test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghijklmnopqrst"), 0, 19, 19);
- test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghijklmnopqrst"), 0, 20, 19);
- test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghijklmnopqrst"), 0, 21, 19);
- test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghijklmnopqrst"), 1, 0, 1);
- test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghijklmnopqrst"), 1, 1, 18);
- test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghijklmnopqrst"), 1, 9, 18);
- test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghijklmnopqrst"), 1, 18, 18);
- test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghijklmnopqrst"), 1, 19, 18);
- test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghijklmnopqrst"), 1, 20, 18);
- test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghijklmnopqrst"), 10, 0, 1);
- test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghijklmnopqrst"), 10, 1, 9);
- test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghijklmnopqrst"), 10, 5, 9);
- test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghijklmnopqrst"), 10, 9, 9);
- test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghijklmnopqrst"), 10, 10, 9);
- test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghijklmnopqrst"), 10, 11, 9);
- test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghijklmnopqrst"), 19, 0, 1);
- test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghijklmnopqrst"), 19, 1, 0);
- test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghijklmnopqrst"), 19, 2, 0);
- test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghijklmnopqrst"), 20, 0, 1);
- test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghijklmnopqrst"), 20, 1, 1);
- test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghijklmnopqrst"), 19, 2, S(""), 0, 0, 1);
- test(S("abcdefghijklmnopqrst"), 19, 2, S(""), 0, 1, 1);
- test(S("abcdefghijklmnopqrst"), 19, 2, S(""), 1, 0, 0);
- test(S("abcdefghijklmnopqrst"), 19, 2, S("abcde"), 0, 0, 1);
- test(S("abcdefghijklmnopqrst"), 19, 2, S("abcde"), 0, 1, 19);
- test(S("abcdefghijklmnopqrst"), 19, 2, S("abcde"), 0, 2, 19);
- test(S("abcdefghijklmnopqrst"), 19, 2, S("abcde"), 0, 4, 19);
- test(S("abcdefghijklmnopqrst"), 19, 2, S("abcde"), 0, 5, 19);
- test(S("abcdefghijklmnopqrst"), 19, 2, S("abcde"), 0, 6, 19);
- test(S("abcdefghijklmnopqrst"), 19, 2, S("abcde"), 1, 0, 1);
- test(S("abcdefghijklmnopqrst"), 19, 2, S("abcde"), 1, 1, 18);
- test(S("abcdefghijklmnopqrst"), 19, 2, S("abcde"), 1, 2, 18);
- test(S("abcdefghijklmnopqrst"), 19, 2, S("abcde"), 1, 3, 18);
- test(S("abcdefghijklmnopqrst"), 19, 2, S("abcde"), 1, 4, 18);
- test(S("abcdefghijklmnopqrst"), 19, 2, S("abcde"), 1, 5, 18);
- test(S("abcdefghijklmnopqrst"), 19, 2, S("abcde"), 2, 0, 1);
- test(S("abcdefghijklmnopqrst"), 19, 2, S("abcde"), 2, 1, 17);
- test(S("abcdefghijklmnopqrst"), 19, 2, S("abcde"), 2, 2, 17);
- test(S("abcdefghijklmnopqrst"), 19, 2, S("abcde"), 2, 3, 17);
- test(S("abcdefghijklmnopqrst"), 19, 2, S("abcde"), 2, 4, 17);
+TEST_CONSTEXPR_CXX20 bool test51() {
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghijklmnopqrst"), 19, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghijklmnopqrst"), 19, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghijklmnopqrst"), 19, 2, -1);
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghijklmnopqrst"), 20, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghijklmnopqrst"), 20, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 19, 0, S("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 19, 1, S(""), 0, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 19, 1, S(""), 0, 1, 1);
+ test(S("abcdefghijklmnopqrst"), 19, 1, S(""), 1, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("abcde"), 0, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("abcde"), 0, 1, 19);
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("abcde"), 0, 2, 19);
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("abcde"), 0, 4, 19);
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("abcde"), 0, 5, 19);
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("abcde"), 0, 6, 19);
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("abcde"), 1, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("abcde"), 1, 1, 18);
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("abcde"), 1, 2, 18);
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("abcde"), 1, 3, 18);
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("abcde"), 1, 4, 18);
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("abcde"), 1, 5, 18);
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("abcde"), 2, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("abcde"), 2, 1, 17);
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("abcde"), 2, 2, 17);
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("abcde"), 2, 3, 17);
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("abcde"), 2, 4, 17);
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("abcde"), 4, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("abcde"), 4, 1, 15);
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("abcde"), 4, 2, 15);
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("abcde"), 5, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("abcde"), 5, 1, 1);
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("abcde"), 6, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghij"), 0, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghij"), 0, 1, 19);
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghij"), 0, 5, 19);
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghij"), 0, 9, 19);
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghij"), 0, 10, 19);
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghij"), 0, 11, 19);
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghij"), 1, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghij"), 1, 1, 18);
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghij"), 1, 4, 18);
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghij"), 1, 8, 18);
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghij"), 1, 9, 18);
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghij"), 1, 10, 18);
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghij"), 5, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghij"), 5, 1, 14);
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghij"), 5, 2, 14);
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghij"), 5, 4, 14);
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghij"), 5, 5, 14);
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghij"), 5, 6, 14);
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghij"), 9, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghij"), 9, 1, 10);
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghij"), 9, 2, 10);
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghij"), 10, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghij"), 10, 1, 1);
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghijklmnopqrst"), 0, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghijklmnopqrst"), 0, 1, 19);
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghijklmnopqrst"), 0, 10, 19);
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghijklmnopqrst"), 0, 19, 19);
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghijklmnopqrst"), 0, 20, 19);
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghijklmnopqrst"), 0, 21, 19);
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghijklmnopqrst"), 1, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghijklmnopqrst"), 1, 1, 18);
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghijklmnopqrst"), 1, 9, 18);
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghijklmnopqrst"), 1, 18, 18);
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghijklmnopqrst"), 1, 19, 18);
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghijklmnopqrst"), 1, 20, 18);
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghijklmnopqrst"), 10, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghijklmnopqrst"), 10, 1, 9);
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghijklmnopqrst"), 10, 5, 9);
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghijklmnopqrst"), 10, 9, 9);
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghijklmnopqrst"), 10, 10, 9);
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghijklmnopqrst"), 10, 11, 9);
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghijklmnopqrst"), 19, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghijklmnopqrst"), 19, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghijklmnopqrst"), 19, 2, 0);
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghijklmnopqrst"), 20, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghijklmnopqrst"), 20, 1, 1);
+ test(S("abcdefghijklmnopqrst"), 19, 1, S("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 19, 2, S(""), 0, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 19, 2, S(""), 0, 1, 1);
+ test(S("abcdefghijklmnopqrst"), 19, 2, S(""), 1, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("abcde"), 0, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("abcde"), 0, 1, 19);
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("abcde"), 0, 2, 19);
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("abcde"), 0, 4, 19);
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("abcde"), 0, 5, 19);
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("abcde"), 0, 6, 19);
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("abcde"), 1, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("abcde"), 1, 1, 18);
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("abcde"), 1, 2, 18);
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("abcde"), 1, 3, 18);
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("abcde"), 1, 4, 18);
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("abcde"), 1, 5, 18);
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("abcde"), 2, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("abcde"), 2, 1, 17);
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("abcde"), 2, 2, 17);
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("abcde"), 2, 3, 17);
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("abcde"), 2, 4, 17);
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test52()
-{
- test(S("abcdefghijklmnopqrst"), 19, 2, S("abcde"), 4, 0, 1);
- test(S("abcdefghijklmnopqrst"), 19, 2, S("abcde"), 4, 1, 15);
- test(S("abcdefghijklmnopqrst"), 19, 2, S("abcde"), 4, 2, 15);
- test(S("abcdefghijklmnopqrst"), 19, 2, S("abcde"), 5, 0, 1);
- test(S("abcdefghijklmnopqrst"), 19, 2, S("abcde"), 5, 1, 1);
- test(S("abcdefghijklmnopqrst"), 19, 2, S("abcde"), 6, 0, 0);
- test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghij"), 0, 0, 1);
- test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghij"), 0, 1, 19);
- test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghij"), 0, 5, 19);
- test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghij"), 0, 9, 19);
- test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghij"), 0, 10, 19);
- test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghij"), 0, 11, 19);
- test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghij"), 1, 0, 1);
- test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghij"), 1, 1, 18);
- test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghij"), 1, 4, 18);
- test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghij"), 1, 8, 18);
- test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghij"), 1, 9, 18);
- test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghij"), 1, 10, 18);
- test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghij"), 5, 0, 1);
- test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghij"), 5, 1, 14);
- test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghij"), 5, 2, 14);
- test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghij"), 5, 4, 14);
- test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghij"), 5, 5, 14);
- test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghij"), 5, 6, 14);
- test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghij"), 9, 0, 1);
- test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghij"), 9, 1, 10);
- test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghij"), 9, 2, 10);
- test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghij"), 10, 0, 1);
- test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghij"), 10, 1, 1);
- test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghij"), 11, 0, 0);
- test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghijklmnopqrst"), 0, 0, 1);
- test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghijklmnopqrst"), 0, 1, 19);
- test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghijklmnopqrst"), 0, 10, 19);
- test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghijklmnopqrst"), 0, 19, 19);
- test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghijklmnopqrst"), 0, 20, 19);
- test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghijklmnopqrst"), 0, 21, 19);
- test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghijklmnopqrst"), 1, 0, 1);
- test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghijklmnopqrst"), 1, 1, 18);
- test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghijklmnopqrst"), 1, 9, 18);
- test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghijklmnopqrst"), 1, 18, 18);
- test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghijklmnopqrst"), 1, 19, 18);
- test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghijklmnopqrst"), 1, 20, 18);
- test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghijklmnopqrst"), 10, 0, 1);
- test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghijklmnopqrst"), 10, 1, 9);
- test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghijklmnopqrst"), 10, 5, 9);
- test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghijklmnopqrst"), 10, 9, 9);
- test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghijklmnopqrst"), 10, 10, 9);
- test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghijklmnopqrst"), 10, 11, 9);
- test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghijklmnopqrst"), 19, 0, 1);
- test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghijklmnopqrst"), 19, 1, 0);
- test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghijklmnopqrst"), 19, 2, 0);
- test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghijklmnopqrst"), 20, 0, 1);
- test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghijklmnopqrst"), 20, 1, 1);
- test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghijklmnopqrst"), 20, 0, S(""), 0, 0, 0);
- test(S("abcdefghijklmnopqrst"), 20, 0, S(""), 0, 1, 0);
- test(S("abcdefghijklmnopqrst"), 20, 0, S(""), 1, 0, 0);
- test(S("abcdefghijklmnopqrst"), 20, 0, S("abcde"), 0, 0, 0);
- test(S("abcdefghijklmnopqrst"), 20, 0, S("abcde"), 0, 1, -1);
- test(S("abcdefghijklmnopqrst"), 20, 0, S("abcde"), 0, 2, -2);
- test(S("abcdefghijklmnopqrst"), 20, 0, S("abcde"), 0, 4, -4);
- test(S("abcdefghijklmnopqrst"), 20, 0, S("abcde"), 0, 5, -5);
- test(S("abcdefghijklmnopqrst"), 20, 0, S("abcde"), 0, 6, -5);
- test(S("abcdefghijklmnopqrst"), 20, 0, S("abcde"), 1, 0, 0);
- test(S("abcdefghijklmnopqrst"), 20, 0, S("abcde"), 1, 1, -1);
- test(S("abcdefghijklmnopqrst"), 20, 0, S("abcde"), 1, 2, -2);
- test(S("abcdefghijklmnopqrst"), 20, 0, S("abcde"), 1, 3, -3);
- test(S("abcdefghijklmnopqrst"), 20, 0, S("abcde"), 1, 4, -4);
- test(S("abcdefghijklmnopqrst"), 20, 0, S("abcde"), 1, 5, -4);
- test(S("abcdefghijklmnopqrst"), 20, 0, S("abcde"), 2, 0, 0);
- test(S("abcdefghijklmnopqrst"), 20, 0, S("abcde"), 2, 1, -1);
- test(S("abcdefghijklmnopqrst"), 20, 0, S("abcde"), 2, 2, -2);
- test(S("abcdefghijklmnopqrst"), 20, 0, S("abcde"), 2, 3, -3);
- test(S("abcdefghijklmnopqrst"), 20, 0, S("abcde"), 2, 4, -3);
- test(S("abcdefghijklmnopqrst"), 20, 0, S("abcde"), 4, 0, 0);
- test(S("abcdefghijklmnopqrst"), 20, 0, S("abcde"), 4, 1, -1);
- test(S("abcdefghijklmnopqrst"), 20, 0, S("abcde"), 4, 2, -1);
- test(S("abcdefghijklmnopqrst"), 20, 0, S("abcde"), 5, 0, 0);
- test(S("abcdefghijklmnopqrst"), 20, 0, S("abcde"), 5, 1, 0);
- test(S("abcdefghijklmnopqrst"), 20, 0, S("abcde"), 6, 0, 0);
- test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghij"), 0, 0, 0);
- test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghij"), 0, 1, -1);
- test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghij"), 0, 5, -5);
- test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghij"), 0, 9, -9);
- test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghij"), 0, 10, -10);
- test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghij"), 0, 11, -10);
- test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghij"), 1, 0, 0);
- test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghij"), 1, 1, -1);
- test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghij"), 1, 4, -4);
- test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghij"), 1, 8, -8);
- test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghij"), 1, 9, -9);
- test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghij"), 1, 10, -9);
- test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghij"), 5, 0, 0);
- test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghij"), 5, 1, -1);
- test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghij"), 5, 2, -2);
- test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghij"), 5, 4, -4);
- test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghij"), 5, 5, -5);
- test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghij"), 5, 6, -5);
- test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghij"), 9, 0, 0);
- test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghij"), 9, 1, -1);
+TEST_CONSTEXPR_CXX20 bool test52() {
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("abcde"), 4, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("abcde"), 4, 1, 15);
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("abcde"), 4, 2, 15);
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("abcde"), 5, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("abcde"), 5, 1, 1);
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("abcde"), 6, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghij"), 0, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghij"), 0, 1, 19);
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghij"), 0, 5, 19);
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghij"), 0, 9, 19);
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghij"), 0, 10, 19);
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghij"), 0, 11, 19);
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghij"), 1, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghij"), 1, 1, 18);
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghij"), 1, 4, 18);
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghij"), 1, 8, 18);
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghij"), 1, 9, 18);
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghij"), 1, 10, 18);
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghij"), 5, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghij"), 5, 1, 14);
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghij"), 5, 2, 14);
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghij"), 5, 4, 14);
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghij"), 5, 5, 14);
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghij"), 5, 6, 14);
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghij"), 9, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghij"), 9, 1, 10);
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghij"), 9, 2, 10);
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghij"), 10, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghij"), 10, 1, 1);
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghijklmnopqrst"), 0, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghijklmnopqrst"), 0, 1, 19);
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghijklmnopqrst"), 0, 10, 19);
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghijklmnopqrst"), 0, 19, 19);
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghijklmnopqrst"), 0, 20, 19);
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghijklmnopqrst"), 0, 21, 19);
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghijklmnopqrst"), 1, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghijklmnopqrst"), 1, 1, 18);
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghijklmnopqrst"), 1, 9, 18);
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghijklmnopqrst"), 1, 18, 18);
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghijklmnopqrst"), 1, 19, 18);
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghijklmnopqrst"), 1, 20, 18);
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghijklmnopqrst"), 10, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghijklmnopqrst"), 10, 1, 9);
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghijklmnopqrst"), 10, 5, 9);
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghijklmnopqrst"), 10, 9, 9);
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghijklmnopqrst"), 10, 10, 9);
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghijklmnopqrst"), 10, 11, 9);
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghijklmnopqrst"), 19, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghijklmnopqrst"), 19, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghijklmnopqrst"), 19, 2, 0);
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghijklmnopqrst"), 20, 0, 1);
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghijklmnopqrst"), 20, 1, 1);
+ test(S("abcdefghijklmnopqrst"), 19, 2, S("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 0, S(""), 0, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 0, S(""), 0, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 0, S(""), 1, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("abcde"), 0, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("abcde"), 0, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("abcde"), 0, 2, -2);
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("abcde"), 0, 4, -4);
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("abcde"), 0, 5, -5);
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("abcde"), 0, 6, -5);
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("abcde"), 1, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("abcde"), 1, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("abcde"), 1, 2, -2);
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("abcde"), 1, 3, -3);
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("abcde"), 1, 4, -4);
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("abcde"), 1, 5, -4);
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("abcde"), 2, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("abcde"), 2, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("abcde"), 2, 2, -2);
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("abcde"), 2, 3, -3);
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("abcde"), 2, 4, -3);
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("abcde"), 4, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("abcde"), 4, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("abcde"), 4, 2, -1);
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("abcde"), 5, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("abcde"), 5, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("abcde"), 6, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghij"), 0, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghij"), 0, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghij"), 0, 5, -5);
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghij"), 0, 9, -9);
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghij"), 0, 10, -10);
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghij"), 0, 11, -10);
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghij"), 1, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghij"), 1, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghij"), 1, 4, -4);
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghij"), 1, 8, -8);
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghij"), 1, 9, -9);
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghij"), 1, 10, -9);
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghij"), 5, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghij"), 5, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghij"), 5, 2, -2);
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghij"), 5, 4, -4);
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghij"), 5, 5, -5);
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghij"), 5, 6, -5);
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghij"), 9, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghij"), 9, 1, -1);
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test53()
-{
- test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghij"), 9, 2, -1);
- test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghij"), 10, 0, 0);
- test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghij"), 10, 1, 0);
- test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghij"), 11, 0, 0);
- test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghijklmnopqrst"), 0, 0, 0);
- test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghijklmnopqrst"), 0, 1, -1);
- test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghijklmnopqrst"), 0, 10, -10);
- test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghijklmnopqrst"), 0, 19, -19);
- test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghijklmnopqrst"), 0, 20, -20);
- test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghijklmnopqrst"), 0, 21, -20);
- test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghijklmnopqrst"), 1, 0, 0);
- test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghijklmnopqrst"), 1, 1, -1);
- test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghijklmnopqrst"), 1, 9, -9);
- test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghijklmnopqrst"), 1, 18, -18);
- test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghijklmnopqrst"), 1, 19, -19);
- test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghijklmnopqrst"), 1, 20, -19);
- test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghijklmnopqrst"), 10, 0, 0);
- test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghijklmnopqrst"), 10, 1, -1);
- test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghijklmnopqrst"), 10, 5, -5);
- test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghijklmnopqrst"), 10, 9, -9);
- test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghijklmnopqrst"), 10, 10, -10);
- test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghijklmnopqrst"), 10, 11, -10);
- test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghijklmnopqrst"), 19, 0, 0);
- test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghijklmnopqrst"), 19, 1, -1);
- test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghijklmnopqrst"), 19, 2, -1);
- test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghijklmnopqrst"), 20, 0, 0);
- test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghijklmnopqrst"), 20, 1, 0);
- test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghijklmnopqrst"), 20, 1, S(""), 0, 0, 0);
- test(S("abcdefghijklmnopqrst"), 20, 1, S(""), 0, 1, 0);
- test(S("abcdefghijklmnopqrst"), 20, 1, S(""), 1, 0, 0);
- test(S("abcdefghijklmnopqrst"), 20, 1, S("abcde"), 0, 0, 0);
- test(S("abcdefghijklmnopqrst"), 20, 1, S("abcde"), 0, 1, -1);
- test(S("abcdefghijklmnopqrst"), 20, 1, S("abcde"), 0, 2, -2);
- test(S("abcdefghijklmnopqrst"), 20, 1, S("abcde"), 0, 4, -4);
- test(S("abcdefghijklmnopqrst"), 20, 1, S("abcde"), 0, 5, -5);
- test(S("abcdefghijklmnopqrst"), 20, 1, S("abcde"), 0, 6, -5);
- test(S("abcdefghijklmnopqrst"), 20, 1, S("abcde"), 1, 0, 0);
- test(S("abcdefghijklmnopqrst"), 20, 1, S("abcde"), 1, 1, -1);
- test(S("abcdefghijklmnopqrst"), 20, 1, S("abcde"), 1, 2, -2);
- test(S("abcdefghijklmnopqrst"), 20, 1, S("abcde"), 1, 3, -3);
- test(S("abcdefghijklmnopqrst"), 20, 1, S("abcde"), 1, 4, -4);
- test(S("abcdefghijklmnopqrst"), 20, 1, S("abcde"), 1, 5, -4);
- test(S("abcdefghijklmnopqrst"), 20, 1, S("abcde"), 2, 0, 0);
- test(S("abcdefghijklmnopqrst"), 20, 1, S("abcde"), 2, 1, -1);
- test(S("abcdefghijklmnopqrst"), 20, 1, S("abcde"), 2, 2, -2);
- test(S("abcdefghijklmnopqrst"), 20, 1, S("abcde"), 2, 3, -3);
- test(S("abcdefghijklmnopqrst"), 20, 1, S("abcde"), 2, 4, -3);
- test(S("abcdefghijklmnopqrst"), 20, 1, S("abcde"), 4, 0, 0);
- test(S("abcdefghijklmnopqrst"), 20, 1, S("abcde"), 4, 1, -1);
- test(S("abcdefghijklmnopqrst"), 20, 1, S("abcde"), 4, 2, -1);
- test(S("abcdefghijklmnopqrst"), 20, 1, S("abcde"), 5, 0, 0);
- test(S("abcdefghijklmnopqrst"), 20, 1, S("abcde"), 5, 1, 0);
- test(S("abcdefghijklmnopqrst"), 20, 1, S("abcde"), 6, 0, 0);
- test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghij"), 0, 0, 0);
- test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghij"), 0, 1, -1);
- test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghij"), 0, 5, -5);
- test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghij"), 0, 9, -9);
- test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghij"), 0, 10, -10);
- test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghij"), 0, 11, -10);
- test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghij"), 1, 0, 0);
- test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghij"), 1, 1, -1);
- test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghij"), 1, 4, -4);
- test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghij"), 1, 8, -8);
- test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghij"), 1, 9, -9);
- test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghij"), 1, 10, -9);
- test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghij"), 5, 0, 0);
- test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghij"), 5, 1, -1);
- test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghij"), 5, 2, -2);
- test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghij"), 5, 4, -4);
- test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghij"), 5, 5, -5);
- test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghij"), 5, 6, -5);
- test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghij"), 9, 0, 0);
- test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghij"), 9, 1, -1);
- test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghij"), 9, 2, -1);
- test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghij"), 10, 0, 0);
- test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghij"), 10, 1, 0);
- test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghij"), 11, 0, 0);
- test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghijklmnopqrst"), 0, 0, 0);
- test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghijklmnopqrst"), 0, 1, -1);
- test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghijklmnopqrst"), 0, 10, -10);
- test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghijklmnopqrst"), 0, 19, -19);
- test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghijklmnopqrst"), 0, 20, -20);
- test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghijklmnopqrst"), 0, 21, -20);
- test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghijklmnopqrst"), 1, 0, 0);
- test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghijklmnopqrst"), 1, 1, -1);
- test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghijklmnopqrst"), 1, 9, -9);
- test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghijklmnopqrst"), 1, 18, -18);
- test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghijklmnopqrst"), 1, 19, -19);
- test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghijklmnopqrst"), 1, 20, -19);
- test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghijklmnopqrst"), 10, 0, 0);
- test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghijklmnopqrst"), 10, 1, -1);
- test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghijklmnopqrst"), 10, 5, -5);
- test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghijklmnopqrst"), 10, 9, -9);
- test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghijklmnopqrst"), 10, 10, -10);
- test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghijklmnopqrst"), 10, 11, -10);
- test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghijklmnopqrst"), 19, 0, 0);
- test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghijklmnopqrst"), 19, 1, -1);
- test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghijklmnopqrst"), 19, 2, -1);
- test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghijklmnopqrst"), 20, 0, 0);
+TEST_CONSTEXPR_CXX20 bool test53() {
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghij"), 9, 2, -1);
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghij"), 10, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghij"), 10, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghijklmnopqrst"), 0, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghijklmnopqrst"), 0, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghijklmnopqrst"), 0, 10, -10);
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghijklmnopqrst"), 0, 19, -19);
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghijklmnopqrst"), 0, 20, -20);
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghijklmnopqrst"), 0, 21, -20);
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghijklmnopqrst"), 1, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghijklmnopqrst"), 1, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghijklmnopqrst"), 1, 9, -9);
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghijklmnopqrst"), 1, 18, -18);
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghijklmnopqrst"), 1, 19, -19);
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghijklmnopqrst"), 1, 20, -19);
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghijklmnopqrst"), 10, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghijklmnopqrst"), 10, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghijklmnopqrst"), 10, 5, -5);
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghijklmnopqrst"), 10, 9, -9);
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghijklmnopqrst"), 10, 10, -10);
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghijklmnopqrst"), 10, 11, -10);
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghijklmnopqrst"), 19, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghijklmnopqrst"), 19, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghijklmnopqrst"), 19, 2, -1);
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghijklmnopqrst"), 20, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghijklmnopqrst"), 20, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 0, S("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 1, S(""), 0, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 1, S(""), 0, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 1, S(""), 1, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("abcde"), 0, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("abcde"), 0, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("abcde"), 0, 2, -2);
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("abcde"), 0, 4, -4);
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("abcde"), 0, 5, -5);
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("abcde"), 0, 6, -5);
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("abcde"), 1, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("abcde"), 1, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("abcde"), 1, 2, -2);
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("abcde"), 1, 3, -3);
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("abcde"), 1, 4, -4);
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("abcde"), 1, 5, -4);
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("abcde"), 2, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("abcde"), 2, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("abcde"), 2, 2, -2);
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("abcde"), 2, 3, -3);
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("abcde"), 2, 4, -3);
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("abcde"), 4, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("abcde"), 4, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("abcde"), 4, 2, -1);
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("abcde"), 5, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("abcde"), 5, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("abcde"), 6, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghij"), 0, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghij"), 0, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghij"), 0, 5, -5);
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghij"), 0, 9, -9);
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghij"), 0, 10, -10);
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghij"), 0, 11, -10);
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghij"), 1, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghij"), 1, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghij"), 1, 4, -4);
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghij"), 1, 8, -8);
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghij"), 1, 9, -9);
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghij"), 1, 10, -9);
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghij"), 5, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghij"), 5, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghij"), 5, 2, -2);
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghij"), 5, 4, -4);
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghij"), 5, 5, -5);
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghij"), 5, 6, -5);
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghij"), 9, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghij"), 9, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghij"), 9, 2, -1);
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghij"), 10, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghij"), 10, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghijklmnopqrst"), 0, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghijklmnopqrst"), 0, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghijklmnopqrst"), 0, 10, -10);
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghijklmnopqrst"), 0, 19, -19);
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghijklmnopqrst"), 0, 20, -20);
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghijklmnopqrst"), 0, 21, -20);
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghijklmnopqrst"), 1, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghijklmnopqrst"), 1, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghijklmnopqrst"), 1, 9, -9);
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghijklmnopqrst"), 1, 18, -18);
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghijklmnopqrst"), 1, 19, -19);
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghijklmnopqrst"), 1, 20, -19);
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghijklmnopqrst"), 10, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghijklmnopqrst"), 10, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghijklmnopqrst"), 10, 5, -5);
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghijklmnopqrst"), 10, 9, -9);
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghijklmnopqrst"), 10, 10, -10);
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghijklmnopqrst"), 10, 11, -10);
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghijklmnopqrst"), 19, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghijklmnopqrst"), 19, 1, -1);
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghijklmnopqrst"), 19, 2, -1);
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghijklmnopqrst"), 20, 0, 0);
- return true;
+ return true;
}
template <class S>
-TEST_CONSTEXPR_CXX20 bool test54()
-{
- test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghijklmnopqrst"), 20, 1, 0);
- test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghijklmnopqrst"), 21, 0, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, S(""), 0, 0, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, S(""), 0, 1, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, S(""), 1, 0, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, S("abcde"), 0, 0, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, S("abcde"), 0, 1, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, S("abcde"), 0, 2, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, S("abcde"), 0, 4, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, S("abcde"), 0, 5, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, S("abcde"), 0, 6, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, S("abcde"), 1, 0, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, S("abcde"), 1, 1, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, S("abcde"), 1, 2, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, S("abcde"), 1, 3, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, S("abcde"), 1, 4, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, S("abcde"), 1, 5, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, S("abcde"), 2, 0, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, S("abcde"), 2, 1, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, S("abcde"), 2, 2, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, S("abcde"), 2, 3, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, S("abcde"), 2, 4, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, S("abcde"), 4, 0, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, S("abcde"), 4, 1, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, S("abcde"), 4, 2, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, S("abcde"), 5, 0, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, S("abcde"), 5, 1, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, S("abcde"), 6, 0, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghij"), 0, 0, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghij"), 0, 1, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghij"), 0, 5, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghij"), 0, 9, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghij"), 0, 10, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghij"), 0, 11, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghij"), 1, 0, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghij"), 1, 1, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghij"), 1, 4, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghij"), 1, 8, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghij"), 1, 9, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghij"), 1, 10, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghij"), 5, 0, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghij"), 5, 1, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghij"), 5, 2, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghij"), 5, 4, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghij"), 5, 5, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghij"), 5, 6, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghij"), 9, 0, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghij"), 9, 1, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghij"), 9, 2, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghij"), 10, 0, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghij"), 10, 1, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghij"), 11, 0, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghijklmnopqrst"), 0, 0, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghijklmnopqrst"), 0, 1, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghijklmnopqrst"), 0, 10, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghijklmnopqrst"), 0, 19, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghijklmnopqrst"), 0, 20, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghijklmnopqrst"), 0, 21, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghijklmnopqrst"), 1, 0, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghijklmnopqrst"), 1, 1, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghijklmnopqrst"), 1, 9, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghijklmnopqrst"), 1, 18, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghijklmnopqrst"), 1, 19, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghijklmnopqrst"), 1, 20, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghijklmnopqrst"), 10, 0, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghijklmnopqrst"), 10, 1, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghijklmnopqrst"), 10, 5, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghijklmnopqrst"), 10, 9, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghijklmnopqrst"), 10, 10, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghijklmnopqrst"), 10, 11, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghijklmnopqrst"), 19, 0, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghijklmnopqrst"), 19, 1, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghijklmnopqrst"), 19, 2, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghijklmnopqrst"), 20, 0, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghijklmnopqrst"), 20, 1, 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghijklmnopqrst"), 21, 0, 0);
+TEST_CONSTEXPR_CXX20 bool test54() {
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghijklmnopqrst"), 20, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 20, 1, S("abcdefghijklmnopqrst"), 21, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, S(""), 0, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, S(""), 0, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, S(""), 1, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("abcde"), 0, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("abcde"), 0, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("abcde"), 0, 2, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("abcde"), 0, 4, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("abcde"), 0, 5, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("abcde"), 0, 6, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("abcde"), 1, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("abcde"), 1, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("abcde"), 1, 2, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("abcde"), 1, 3, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("abcde"), 1, 4, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("abcde"), 1, 5, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("abcde"), 2, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("abcde"), 2, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("abcde"), 2, 2, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("abcde"), 2, 3, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("abcde"), 2, 4, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("abcde"), 4, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("abcde"), 4, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("abcde"), 4, 2, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("abcde"), 5, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("abcde"), 5, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("abcde"), 6, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghij"), 0, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghij"), 0, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghij"), 0, 5, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghij"), 0, 9, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghij"), 0, 10, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghij"), 0, 11, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghij"), 1, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghij"), 1, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghij"), 1, 4, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghij"), 1, 8, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghij"), 1, 9, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghij"), 1, 10, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghij"), 5, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghij"), 5, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghij"), 5, 2, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghij"), 5, 4, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghij"), 5, 5, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghij"), 5, 6, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghij"), 9, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghij"), 9, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghij"), 9, 2, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghij"), 10, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghij"), 10, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghij"), 11, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghijklmnopqrst"), 0, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghijklmnopqrst"), 0, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghijklmnopqrst"), 0, 10, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghijklmnopqrst"), 0, 19, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghijklmnopqrst"), 0, 20, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghijklmnopqrst"), 0, 21, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghijklmnopqrst"), 1, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghijklmnopqrst"), 1, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghijklmnopqrst"), 1, 9, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghijklmnopqrst"), 1, 18, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghijklmnopqrst"), 1, 19, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghijklmnopqrst"), 1, 20, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghijklmnopqrst"), 10, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghijklmnopqrst"), 10, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghijklmnopqrst"), 10, 5, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghijklmnopqrst"), 10, 9, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghijklmnopqrst"), 10, 10, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghijklmnopqrst"), 10, 11, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghijklmnopqrst"), 19, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghijklmnopqrst"), 19, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghijklmnopqrst"), 19, 2, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghijklmnopqrst"), 20, 0, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghijklmnopqrst"), 20, 1, 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, S("abcdefghijklmnopqrst"), 21, 0, 0);
- return true;
+ return true;
}
-template<class S>
-TEST_CONSTEXPR_CXX20 bool test55()
-{
- test_npos(S(""), 0, 0, S(""), 0, 0);
- test_npos(S(""), 0, 0, S("abcde"), 0, -5);
- test_npos(S("abcde"), 0, 0, S("abcdefghij"), 0, -10);
- test_npos(S("abcde"), 0, 0, S("abcdefghij"), 1, -9);
- test_npos(S("abcde"), 0, 0, S("abcdefghij"), 5, -5);
+template <class S>
+TEST_CONSTEXPR_CXX20 bool test55() {
+ test_npos(S(""), 0, 0, S(""), 0, 0);
+ test_npos(S(""), 0, 0, S("abcde"), 0, -5);
+ test_npos(S("abcde"), 0, 0, S("abcdefghij"), 0, -10);
+ test_npos(S("abcde"), 0, 0, S("abcdefghij"), 1, -9);
+ test_npos(S("abcde"), 0, 0, S("abcdefghij"), 5, -5);
- return true;
+ return true;
}
template <class S>
@@ -6069,8 +6006,7 @@ void test() {
#endif
}
-int main(int, char**)
-{
+int main(int, char**) {
test<std::string>();
#if TEST_STD_VER >= 11
test<std::basic_string<char, std::char_traits<char>, min_allocator<char>>>();
diff --git a/libcxx/test/std/strings/basic.string/string.ops/string_compare/size_size_string_view.pass.cpp b/libcxx/test/std/strings/basic.string/string.ops/string_compare/size_size_string_view.pass.cpp
index 313b055c7ae7f27..80469814a15a052 100644
--- a/libcxx/test/std/strings/basic.string/string.ops/string_compare/size_size_string_view.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.ops/string_compare/size_size_string_view.pass.cpp
@@ -18,347 +18,336 @@
#include "test_macros.h"
-TEST_CONSTEXPR_CXX20 int sign(int x)
-{
- if (x == 0)
- return 0;
- if (x < 0)
- return -1;
- return 1;
+TEST_CONSTEXPR_CXX20 int sign(int x) {
+ if (x == 0)
+ return 0;
+ if (x < 0)
+ return -1;
+ return 1;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 void
-test(const S& s, typename S::size_type pos1, typename S::size_type n1,
- SV sv, int x)
-{
- if (pos1 <= s.size())
- assert(sign(s.compare(pos1, n1, sv)) == sign(x));
+TEST_CONSTEXPR_CXX20 void test(const S& s, typename S::size_type pos1, typename S::size_type n1, SV sv, int x) {
+ if (pos1 <= s.size())
+ assert(sign(s.compare(pos1, n1, sv)) == sign(x));
#ifndef TEST_HAS_NO_EXCEPTIONS
- else if (!TEST_IS_CONSTANT_EVALUATED)
- {
- try
- {
- TEST_IGNORE_NODISCARD s.compare(pos1, n1, sv);
- assert(false);
- }
- catch (std::out_of_range&)
- {
- assert(pos1 > s.size());
- }
+ else if (!TEST_IS_CONSTANT_EVALUATED) {
+ try {
+ TEST_IGNORE_NODISCARD s.compare(pos1, n1, sv);
+ assert(false);
+ } catch (std::out_of_range&) {
+ assert(pos1 > s.size());
}
+ }
#endif
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 void test0()
-{
- test(S(""), 0, 0, SV(""), 0);
- test(S(""), 0, 0, SV("abcde"), -5);
- test(S(""), 0, 0, SV("abcdefghij"), -10);
- test(S(""), 0, 0, SV("abcdefghijklmnopqrst"), -20);
- test(S(""), 0, 1, SV(""), 0);
- test(S(""), 0, 1, SV("abcde"), -5);
- test(S(""), 0, 1, SV("abcdefghij"), -10);
- test(S(""), 0, 1, SV("abcdefghijklmnopqrst"), -20);
- test(S(""), 1, 0, SV(""), 0);
- test(S(""), 1, 0, SV("abcde"), 0);
- test(S(""), 1, 0, SV("abcdefghij"), 0);
- test(S(""), 1, 0, SV("abcdefghijklmnopqrst"), 0);
- test(S("abcde"), 0, 0, SV(""), 0);
- test(S("abcde"), 0, 0, SV("abcde"), -5);
- test(S("abcde"), 0, 0, SV("abcdefghij"), -10);
- test(S("abcde"), 0, 0, SV("abcdefghijklmnopqrst"), -20);
- test(S("abcde"), 0, 1, SV(""), 1);
- test(S("abcde"), 0, 1, SV("abcde"), -4);
- test(S("abcde"), 0, 1, SV("abcdefghij"), -9);
- test(S("abcde"), 0, 1, SV("abcdefghijklmnopqrst"), -19);
- test(S("abcde"), 0, 2, SV(""), 2);
- test(S("abcde"), 0, 2, SV("abcde"), -3);
- test(S("abcde"), 0, 2, SV("abcdefghij"), -8);
- test(S("abcde"), 0, 2, SV("abcdefghijklmnopqrst"), -18);
- test(S("abcde"), 0, 4, SV(""), 4);
- test(S("abcde"), 0, 4, SV("abcde"), -1);
- test(S("abcde"), 0, 4, SV("abcdefghij"), -6);
- test(S("abcde"), 0, 4, SV("abcdefghijklmnopqrst"), -16);
- test(S("abcde"), 0, 5, SV(""), 5);
- test(S("abcde"), 0, 5, SV("abcde"), 0);
- test(S("abcde"), 0, 5, SV("abcdefghij"), -5);
- test(S("abcde"), 0, 5, SV("abcdefghijklmnopqrst"), -15);
- test(S("abcde"), 0, 6, SV(""), 5);
- test(S("abcde"), 0, 6, SV("abcde"), 0);
- test(S("abcde"), 0, 6, SV("abcdefghij"), -5);
- test(S("abcde"), 0, 6, SV("abcdefghijklmnopqrst"), -15);
- test(S("abcde"), 1, 0, SV(""), 0);
- test(S("abcde"), 1, 0, SV("abcde"), -5);
- test(S("abcde"), 1, 0, SV("abcdefghij"), -10);
- test(S("abcde"), 1, 0, SV("abcdefghijklmnopqrst"), -20);
- test(S("abcde"), 1, 1, SV(""), 1);
- test(S("abcde"), 1, 1, SV("abcde"), 1);
- test(S("abcde"), 1, 1, SV("abcdefghij"), 1);
- test(S("abcde"), 1, 1, SV("abcdefghijklmnopqrst"), 1);
- test(S("abcde"), 1, 2, SV(""), 2);
- test(S("abcde"), 1, 2, SV("abcde"), 1);
- test(S("abcde"), 1, 2, SV("abcdefghij"), 1);
- test(S("abcde"), 1, 2, SV("abcdefghijklmnopqrst"), 1);
- test(S("abcde"), 1, 3, SV(""), 3);
- test(S("abcde"), 1, 3, SV("abcde"), 1);
- test(S("abcde"), 1, 3, SV("abcdefghij"), 1);
- test(S("abcde"), 1, 3, SV("abcdefghijklmnopqrst"), 1);
- test(S("abcde"), 1, 4, SV(""), 4);
- test(S("abcde"), 1, 4, SV("abcde"), 1);
- test(S("abcde"), 1, 4, SV("abcdefghij"), 1);
- test(S("abcde"), 1, 4, SV("abcdefghijklmnopqrst"), 1);
- test(S("abcde"), 1, 5, SV(""), 4);
- test(S("abcde"), 1, 5, SV("abcde"), 1);
- test(S("abcde"), 1, 5, SV("abcdefghij"), 1);
- test(S("abcde"), 1, 5, SV("abcdefghijklmnopqrst"), 1);
- test(S("abcde"), 2, 0, SV(""), 0);
- test(S("abcde"), 2, 0, SV("abcde"), -5);
- test(S("abcde"), 2, 0, SV("abcdefghij"), -10);
- test(S("abcde"), 2, 0, SV("abcdefghijklmnopqrst"), -20);
- test(S("abcde"), 2, 1, SV(""), 1);
- test(S("abcde"), 2, 1, SV("abcde"), 2);
- test(S("abcde"), 2, 1, SV("abcdefghij"), 2);
- test(S("abcde"), 2, 1, SV("abcdefghijklmnopqrst"), 2);
- test(S("abcde"), 2, 2, SV(""), 2);
- test(S("abcde"), 2, 2, SV("abcde"), 2);
- test(S("abcde"), 2, 2, SV("abcdefghij"), 2);
- test(S("abcde"), 2, 2, SV("abcdefghijklmnopqrst"), 2);
- test(S("abcde"), 2, 3, SV(""), 3);
- test(S("abcde"), 2, 3, SV("abcde"), 2);
- test(S("abcde"), 2, 3, SV("abcdefghij"), 2);
- test(S("abcde"), 2, 3, SV("abcdefghijklmnopqrst"), 2);
- test(S("abcde"), 2, 4, SV(""), 3);
- test(S("abcde"), 2, 4, SV("abcde"), 2);
- test(S("abcde"), 2, 4, SV("abcdefghij"), 2);
- test(S("abcde"), 2, 4, SV("abcdefghijklmnopqrst"), 2);
- test(S("abcde"), 4, 0, SV(""), 0);
- test(S("abcde"), 4, 0, SV("abcde"), -5);
- test(S("abcde"), 4, 0, SV("abcdefghij"), -10);
- test(S("abcde"), 4, 0, SV("abcdefghijklmnopqrst"), -20);
- test(S("abcde"), 4, 1, SV(""), 1);
- test(S("abcde"), 4, 1, SV("abcde"), 4);
- test(S("abcde"), 4, 1, SV("abcdefghij"), 4);
- test(S("abcde"), 4, 1, SV("abcdefghijklmnopqrst"), 4);
- test(S("abcde"), 4, 2, SV(""), 1);
- test(S("abcde"), 4, 2, SV("abcde"), 4);
- test(S("abcde"), 4, 2, SV("abcdefghij"), 4);
- test(S("abcde"), 4, 2, SV("abcdefghijklmnopqrst"), 4);
- test(S("abcde"), 5, 0, SV(""), 0);
- test(S("abcde"), 5, 0, SV("abcde"), -5);
- test(S("abcde"), 5, 0, SV("abcdefghij"), -10);
- test(S("abcde"), 5, 0, SV("abcdefghijklmnopqrst"), -20);
- test(S("abcde"), 5, 1, SV(""), 0);
- test(S("abcde"), 5, 1, SV("abcde"), -5);
- test(S("abcde"), 5, 1, SV("abcdefghij"), -10);
- test(S("abcde"), 5, 1, SV("abcdefghijklmnopqrst"), -20);
+TEST_CONSTEXPR_CXX20 void test0() {
+ test(S(""), 0, 0, SV(""), 0);
+ test(S(""), 0, 0, SV("abcde"), -5);
+ test(S(""), 0, 0, SV("abcdefghij"), -10);
+ test(S(""), 0, 0, SV("abcdefghijklmnopqrst"), -20);
+ test(S(""), 0, 1, SV(""), 0);
+ test(S(""), 0, 1, SV("abcde"), -5);
+ test(S(""), 0, 1, SV("abcdefghij"), -10);
+ test(S(""), 0, 1, SV("abcdefghijklmnopqrst"), -20);
+ test(S(""), 1, 0, SV(""), 0);
+ test(S(""), 1, 0, SV("abcde"), 0);
+ test(S(""), 1, 0, SV("abcdefghij"), 0);
+ test(S(""), 1, 0, SV("abcdefghijklmnopqrst"), 0);
+ test(S("abcde"), 0, 0, SV(""), 0);
+ test(S("abcde"), 0, 0, SV("abcde"), -5);
+ test(S("abcde"), 0, 0, SV("abcdefghij"), -10);
+ test(S("abcde"), 0, 0, SV("abcdefghijklmnopqrst"), -20);
+ test(S("abcde"), 0, 1, SV(""), 1);
+ test(S("abcde"), 0, 1, SV("abcde"), -4);
+ test(S("abcde"), 0, 1, SV("abcdefghij"), -9);
+ test(S("abcde"), 0, 1, SV("abcdefghijklmnopqrst"), -19);
+ test(S("abcde"), 0, 2, SV(""), 2);
+ test(S("abcde"), 0, 2, SV("abcde"), -3);
+ test(S("abcde"), 0, 2, SV("abcdefghij"), -8);
+ test(S("abcde"), 0, 2, SV("abcdefghijklmnopqrst"), -18);
+ test(S("abcde"), 0, 4, SV(""), 4);
+ test(S("abcde"), 0, 4, SV("abcde"), -1);
+ test(S("abcde"), 0, 4, SV("abcdefghij"), -6);
+ test(S("abcde"), 0, 4, SV("abcdefghijklmnopqrst"), -16);
+ test(S("abcde"), 0, 5, SV(""), 5);
+ test(S("abcde"), 0, 5, SV("abcde"), 0);
+ test(S("abcde"), 0, 5, SV("abcdefghij"), -5);
+ test(S("abcde"), 0, 5, SV("abcdefghijklmnopqrst"), -15);
+ test(S("abcde"), 0, 6, SV(""), 5);
+ test(S("abcde"), 0, 6, SV("abcde"), 0);
+ test(S("abcde"), 0, 6, SV("abcdefghij"), -5);
+ test(S("abcde"), 0, 6, SV("abcdefghijklmnopqrst"), -15);
+ test(S("abcde"), 1, 0, SV(""), 0);
+ test(S("abcde"), 1, 0, SV("abcde"), -5);
+ test(S("abcde"), 1, 0, SV("abcdefghij"), -10);
+ test(S("abcde"), 1, 0, SV("abcdefghijklmnopqrst"), -20);
+ test(S("abcde"), 1, 1, SV(""), 1);
+ test(S("abcde"), 1, 1, SV("abcde"), 1);
+ test(S("abcde"), 1, 1, SV("abcdefghij"), 1);
+ test(S("abcde"), 1, 1, SV("abcdefghijklmnopqrst"), 1);
+ test(S("abcde"), 1, 2, SV(""), 2);
+ test(S("abcde"), 1, 2, SV("abcde"), 1);
+ test(S("abcde"), 1, 2, SV("abcdefghij"), 1);
+ test(S("abcde"), 1, 2, SV("abcdefghijklmnopqrst"), 1);
+ test(S("abcde"), 1, 3, SV(""), 3);
+ test(S("abcde"), 1, 3, SV("abcde"), 1);
+ test(S("abcde"), 1, 3, SV("abcdefghij"), 1);
+ test(S("abcde"), 1, 3, SV("abcdefghijklmnopqrst"), 1);
+ test(S("abcde"), 1, 4, SV(""), 4);
+ test(S("abcde"), 1, 4, SV("abcde"), 1);
+ test(S("abcde"), 1, 4, SV("abcdefghij"), 1);
+ test(S("abcde"), 1, 4, SV("abcdefghijklmnopqrst"), 1);
+ test(S("abcde"), 1, 5, SV(""), 4);
+ test(S("abcde"), 1, 5, SV("abcde"), 1);
+ test(S("abcde"), 1, 5, SV("abcdefghij"), 1);
+ test(S("abcde"), 1, 5, SV("abcdefghijklmnopqrst"), 1);
+ test(S("abcde"), 2, 0, SV(""), 0);
+ test(S("abcde"), 2, 0, SV("abcde"), -5);
+ test(S("abcde"), 2, 0, SV("abcdefghij"), -10);
+ test(S("abcde"), 2, 0, SV("abcdefghijklmnopqrst"), -20);
+ test(S("abcde"), 2, 1, SV(""), 1);
+ test(S("abcde"), 2, 1, SV("abcde"), 2);
+ test(S("abcde"), 2, 1, SV("abcdefghij"), 2);
+ test(S("abcde"), 2, 1, SV("abcdefghijklmnopqrst"), 2);
+ test(S("abcde"), 2, 2, SV(""), 2);
+ test(S("abcde"), 2, 2, SV("abcde"), 2);
+ test(S("abcde"), 2, 2, SV("abcdefghij"), 2);
+ test(S("abcde"), 2, 2, SV("abcdefghijklmnopqrst"), 2);
+ test(S("abcde"), 2, 3, SV(""), 3);
+ test(S("abcde"), 2, 3, SV("abcde"), 2);
+ test(S("abcde"), 2, 3, SV("abcdefghij"), 2);
+ test(S("abcde"), 2, 3, SV("abcdefghijklmnopqrst"), 2);
+ test(S("abcde"), 2, 4, SV(""), 3);
+ test(S("abcde"), 2, 4, SV("abcde"), 2);
+ test(S("abcde"), 2, 4, SV("abcdefghij"), 2);
+ test(S("abcde"), 2, 4, SV("abcdefghijklmnopqrst"), 2);
+ test(S("abcde"), 4, 0, SV(""), 0);
+ test(S("abcde"), 4, 0, SV("abcde"), -5);
+ test(S("abcde"), 4, 0, SV("abcdefghij"), -10);
+ test(S("abcde"), 4, 0, SV("abcdefghijklmnopqrst"), -20);
+ test(S("abcde"), 4, 1, SV(""), 1);
+ test(S("abcde"), 4, 1, SV("abcde"), 4);
+ test(S("abcde"), 4, 1, SV("abcdefghij"), 4);
+ test(S("abcde"), 4, 1, SV("abcdefghijklmnopqrst"), 4);
+ test(S("abcde"), 4, 2, SV(""), 1);
+ test(S("abcde"), 4, 2, SV("abcde"), 4);
+ test(S("abcde"), 4, 2, SV("abcdefghij"), 4);
+ test(S("abcde"), 4, 2, SV("abcdefghijklmnopqrst"), 4);
+ test(S("abcde"), 5, 0, SV(""), 0);
+ test(S("abcde"), 5, 0, SV("abcde"), -5);
+ test(S("abcde"), 5, 0, SV("abcdefghij"), -10);
+ test(S("abcde"), 5, 0, SV("abcdefghijklmnopqrst"), -20);
+ test(S("abcde"), 5, 1, SV(""), 0);
+ test(S("abcde"), 5, 1, SV("abcde"), -5);
+ test(S("abcde"), 5, 1, SV("abcdefghij"), -10);
+ test(S("abcde"), 5, 1, SV("abcdefghijklmnopqrst"), -20);
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 void test1()
-{
- test(S("abcde"), 6, 0, SV(""), 0);
- test(S("abcde"), 6, 0, SV("abcde"), 0);
- test(S("abcde"), 6, 0, SV("abcdefghij"), 0);
- test(S("abcde"), 6, 0, SV("abcdefghijklmnopqrst"), 0);
- test(S("abcdefghij"), 0, 0, SV(""), 0);
- test(S("abcdefghij"), 0, 0, SV("abcde"), -5);
- test(S("abcdefghij"), 0, 0, SV("abcdefghij"), -10);
- test(S("abcdefghij"), 0, 0, SV("abcdefghijklmnopqrst"), -20);
- test(S("abcdefghij"), 0, 1, SV(""), 1);
- test(S("abcdefghij"), 0, 1, SV("abcde"), -4);
- test(S("abcdefghij"), 0, 1, SV("abcdefghij"), -9);
- test(S("abcdefghij"), 0, 1, SV("abcdefghijklmnopqrst"), -19);
- test(S("abcdefghij"), 0, 5, SV(""), 5);
- test(S("abcdefghij"), 0, 5, SV("abcde"), 0);
- test(S("abcdefghij"), 0, 5, SV("abcdefghij"), -5);
- test(S("abcdefghij"), 0, 5, SV("abcdefghijklmnopqrst"), -15);
- test(S("abcdefghij"), 0, 9, SV(""), 9);
- test(S("abcdefghij"), 0, 9, SV("abcde"), 4);
- test(S("abcdefghij"), 0, 9, SV("abcdefghij"), -1);
- test(S("abcdefghij"), 0, 9, SV("abcdefghijklmnopqrst"), -11);
- test(S("abcdefghij"), 0, 10, SV(""), 10);
- test(S("abcdefghij"), 0, 10, SV("abcde"), 5);
- test(S("abcdefghij"), 0, 10, SV("abcdefghij"), 0);
- test(S("abcdefghij"), 0, 10, SV("abcdefghijklmnopqrst"), -10);
- test(S("abcdefghij"), 0, 11, SV(""), 10);
- test(S("abcdefghij"), 0, 11, SV("abcde"), 5);
- test(S("abcdefghij"), 0, 11, SV("abcdefghij"), 0);
- test(S("abcdefghij"), 0, 11, SV("abcdefghijklmnopqrst"), -10);
- test(S("abcdefghij"), 1, 0, SV(""), 0);
- test(S("abcdefghij"), 1, 0, SV("abcde"), -5);
- test(S("abcdefghij"), 1, 0, SV("abcdefghij"), -10);
- test(S("abcdefghij"), 1, 0, SV("abcdefghijklmnopqrst"), -20);
- test(S("abcdefghij"), 1, 1, SV(""), 1);
- test(S("abcdefghij"), 1, 1, SV("abcde"), 1);
- test(S("abcdefghij"), 1, 1, SV("abcdefghij"), 1);
- test(S("abcdefghij"), 1, 1, SV("abcdefghijklmnopqrst"), 1);
- test(S("abcdefghij"), 1, 4, SV(""), 4);
- test(S("abcdefghij"), 1, 4, SV("abcde"), 1);
- test(S("abcdefghij"), 1, 4, SV("abcdefghij"), 1);
- test(S("abcdefghij"), 1, 4, SV("abcdefghijklmnopqrst"), 1);
- test(S("abcdefghij"), 1, 8, SV(""), 8);
- test(S("abcdefghij"), 1, 8, SV("abcde"), 1);
- test(S("abcdefghij"), 1, 8, SV("abcdefghij"), 1);
- test(S("abcdefghij"), 1, 8, SV("abcdefghijklmnopqrst"), 1);
- test(S("abcdefghij"), 1, 9, SV(""), 9);
- test(S("abcdefghij"), 1, 9, SV("abcde"), 1);
- test(S("abcdefghij"), 1, 9, SV("abcdefghij"), 1);
- test(S("abcdefghij"), 1, 9, SV("abcdefghijklmnopqrst"), 1);
- test(S("abcdefghij"), 1, 10, SV(""), 9);
- test(S("abcdefghij"), 1, 10, SV("abcde"), 1);
- test(S("abcdefghij"), 1, 10, SV("abcdefghij"), 1);
- test(S("abcdefghij"), 1, 10, SV("abcdefghijklmnopqrst"), 1);
- test(S("abcdefghij"), 5, 0, SV(""), 0);
- test(S("abcdefghij"), 5, 0, SV("abcde"), -5);
- test(S("abcdefghij"), 5, 0, SV("abcdefghij"), -10);
- test(S("abcdefghij"), 5, 0, SV("abcdefghijklmnopqrst"), -20);
- test(S("abcdefghij"), 5, 1, SV(""), 1);
- test(S("abcdefghij"), 5, 1, SV("abcde"), 5);
- test(S("abcdefghij"), 5, 1, SV("abcdefghij"), 5);
- test(S("abcdefghij"), 5, 1, SV("abcdefghijklmnopqrst"), 5);
- test(S("abcdefghij"), 5, 2, SV(""), 2);
- test(S("abcdefghij"), 5, 2, SV("abcde"), 5);
- test(S("abcdefghij"), 5, 2, SV("abcdefghij"), 5);
- test(S("abcdefghij"), 5, 2, SV("abcdefghijklmnopqrst"), 5);
- test(S("abcdefghij"), 5, 4, SV(""), 4);
- test(S("abcdefghij"), 5, 4, SV("abcde"), 5);
- test(S("abcdefghij"), 5, 4, SV("abcdefghij"), 5);
- test(S("abcdefghij"), 5, 4, SV("abcdefghijklmnopqrst"), 5);
- test(S("abcdefghij"), 5, 5, SV(""), 5);
- test(S("abcdefghij"), 5, 5, SV("abcde"), 5);
- test(S("abcdefghij"), 5, 5, SV("abcdefghij"), 5);
- test(S("abcdefghij"), 5, 5, SV("abcdefghijklmnopqrst"), 5);
- test(S("abcdefghij"), 5, 6, SV(""), 5);
- test(S("abcdefghij"), 5, 6, SV("abcde"), 5);
- test(S("abcdefghij"), 5, 6, SV("abcdefghij"), 5);
- test(S("abcdefghij"), 5, 6, SV("abcdefghijklmnopqrst"), 5);
- test(S("abcdefghij"), 9, 0, SV(""), 0);
- test(S("abcdefghij"), 9, 0, SV("abcde"), -5);
- test(S("abcdefghij"), 9, 0, SV("abcdefghij"), -10);
- test(S("abcdefghij"), 9, 0, SV("abcdefghijklmnopqrst"), -20);
- test(S("abcdefghij"), 9, 1, SV(""), 1);
- test(S("abcdefghij"), 9, 1, SV("abcde"), 9);
- test(S("abcdefghij"), 9, 1, SV("abcdefghij"), 9);
- test(S("abcdefghij"), 9, 1, SV("abcdefghijklmnopqrst"), 9);
- test(S("abcdefghij"), 9, 2, SV(""), 1);
- test(S("abcdefghij"), 9, 2, SV("abcde"), 9);
- test(S("abcdefghij"), 9, 2, SV("abcdefghij"), 9);
- test(S("abcdefghij"), 9, 2, SV("abcdefghijklmnopqrst"), 9);
- test(S("abcdefghij"), 10, 0, SV(""), 0);
- test(S("abcdefghij"), 10, 0, SV("abcde"), -5);
- test(S("abcdefghij"), 10, 0, SV("abcdefghij"), -10);
- test(S("abcdefghij"), 10, 0, SV("abcdefghijklmnopqrst"), -20);
- test(S("abcdefghij"), 10, 1, SV(""), 0);
- test(S("abcdefghij"), 10, 1, SV("abcde"), -5);
- test(S("abcdefghij"), 10, 1, SV("abcdefghij"), -10);
- test(S("abcdefghij"), 10, 1, SV("abcdefghijklmnopqrst"), -20);
- test(S("abcdefghij"), 11, 0, SV(""), 0);
- test(S("abcdefghij"), 11, 0, SV("abcde"), 0);
- test(S("abcdefghij"), 11, 0, SV("abcdefghij"), 0);
- test(S("abcdefghij"), 11, 0, SV("abcdefghijklmnopqrst"), 0);
+TEST_CONSTEXPR_CXX20 void test1() {
+ test(S("abcde"), 6, 0, SV(""), 0);
+ test(S("abcde"), 6, 0, SV("abcde"), 0);
+ test(S("abcde"), 6, 0, SV("abcdefghij"), 0);
+ test(S("abcde"), 6, 0, SV("abcdefghijklmnopqrst"), 0);
+ test(S("abcdefghij"), 0, 0, SV(""), 0);
+ test(S("abcdefghij"), 0, 0, SV("abcde"), -5);
+ test(S("abcdefghij"), 0, 0, SV("abcdefghij"), -10);
+ test(S("abcdefghij"), 0, 0, SV("abcdefghijklmnopqrst"), -20);
+ test(S("abcdefghij"), 0, 1, SV(""), 1);
+ test(S("abcdefghij"), 0, 1, SV("abcde"), -4);
+ test(S("abcdefghij"), 0, 1, SV("abcdefghij"), -9);
+ test(S("abcdefghij"), 0, 1, SV("abcdefghijklmnopqrst"), -19);
+ test(S("abcdefghij"), 0, 5, SV(""), 5);
+ test(S("abcdefghij"), 0, 5, SV("abcde"), 0);
+ test(S("abcdefghij"), 0, 5, SV("abcdefghij"), -5);
+ test(S("abcdefghij"), 0, 5, SV("abcdefghijklmnopqrst"), -15);
+ test(S("abcdefghij"), 0, 9, SV(""), 9);
+ test(S("abcdefghij"), 0, 9, SV("abcde"), 4);
+ test(S("abcdefghij"), 0, 9, SV("abcdefghij"), -1);
+ test(S("abcdefghij"), 0, 9, SV("abcdefghijklmnopqrst"), -11);
+ test(S("abcdefghij"), 0, 10, SV(""), 10);
+ test(S("abcdefghij"), 0, 10, SV("abcde"), 5);
+ test(S("abcdefghij"), 0, 10, SV("abcdefghij"), 0);
+ test(S("abcdefghij"), 0, 10, SV("abcdefghijklmnopqrst"), -10);
+ test(S("abcdefghij"), 0, 11, SV(""), 10);
+ test(S("abcdefghij"), 0, 11, SV("abcde"), 5);
+ test(S("abcdefghij"), 0, 11, SV("abcdefghij"), 0);
+ test(S("abcdefghij"), 0, 11, SV("abcdefghijklmnopqrst"), -10);
+ test(S("abcdefghij"), 1, 0, SV(""), 0);
+ test(S("abcdefghij"), 1, 0, SV("abcde"), -5);
+ test(S("abcdefghij"), 1, 0, SV("abcdefghij"), -10);
+ test(S("abcdefghij"), 1, 0, SV("abcdefghijklmnopqrst"), -20);
+ test(S("abcdefghij"), 1, 1, SV(""), 1);
+ test(S("abcdefghij"), 1, 1, SV("abcde"), 1);
+ test(S("abcdefghij"), 1, 1, SV("abcdefghij"), 1);
+ test(S("abcdefghij"), 1, 1, SV("abcdefghijklmnopqrst"), 1);
+ test(S("abcdefghij"), 1, 4, SV(""), 4);
+ test(S("abcdefghij"), 1, 4, SV("abcde"), 1);
+ test(S("abcdefghij"), 1, 4, SV("abcdefghij"), 1);
+ test(S("abcdefghij"), 1, 4, SV("abcdefghijklmnopqrst"), 1);
+ test(S("abcdefghij"), 1, 8, SV(""), 8);
+ test(S("abcdefghij"), 1, 8, SV("abcde"), 1);
+ test(S("abcdefghij"), 1, 8, SV("abcdefghij"), 1);
+ test(S("abcdefghij"), 1, 8, SV("abcdefghijklmnopqrst"), 1);
+ test(S("abcdefghij"), 1, 9, SV(""), 9);
+ test(S("abcdefghij"), 1, 9, SV("abcde"), 1);
+ test(S("abcdefghij"), 1, 9, SV("abcdefghij"), 1);
+ test(S("abcdefghij"), 1, 9, SV("abcdefghijklmnopqrst"), 1);
+ test(S("abcdefghij"), 1, 10, SV(""), 9);
+ test(S("abcdefghij"), 1, 10, SV("abcde"), 1);
+ test(S("abcdefghij"), 1, 10, SV("abcdefghij"), 1);
+ test(S("abcdefghij"), 1, 10, SV("abcdefghijklmnopqrst"), 1);
+ test(S("abcdefghij"), 5, 0, SV(""), 0);
+ test(S("abcdefghij"), 5, 0, SV("abcde"), -5);
+ test(S("abcdefghij"), 5, 0, SV("abcdefghij"), -10);
+ test(S("abcdefghij"), 5, 0, SV("abcdefghijklmnopqrst"), -20);
+ test(S("abcdefghij"), 5, 1, SV(""), 1);
+ test(S("abcdefghij"), 5, 1, SV("abcde"), 5);
+ test(S("abcdefghij"), 5, 1, SV("abcdefghij"), 5);
+ test(S("abcdefghij"), 5, 1, SV("abcdefghijklmnopqrst"), 5);
+ test(S("abcdefghij"), 5, 2, SV(""), 2);
+ test(S("abcdefghij"), 5, 2, SV("abcde"), 5);
+ test(S("abcdefghij"), 5, 2, SV("abcdefghij"), 5);
+ test(S("abcdefghij"), 5, 2, SV("abcdefghijklmnopqrst"), 5);
+ test(S("abcdefghij"), 5, 4, SV(""), 4);
+ test(S("abcdefghij"), 5, 4, SV("abcde"), 5);
+ test(S("abcdefghij"), 5, 4, SV("abcdefghij"), 5);
+ test(S("abcdefghij"), 5, 4, SV("abcdefghijklmnopqrst"), 5);
+ test(S("abcdefghij"), 5, 5, SV(""), 5);
+ test(S("abcdefghij"), 5, 5, SV("abcde"), 5);
+ test(S("abcdefghij"), 5, 5, SV("abcdefghij"), 5);
+ test(S("abcdefghij"), 5, 5, SV("abcdefghijklmnopqrst"), 5);
+ test(S("abcdefghij"), 5, 6, SV(""), 5);
+ test(S("abcdefghij"), 5, 6, SV("abcde"), 5);
+ test(S("abcdefghij"), 5, 6, SV("abcdefghij"), 5);
+ test(S("abcdefghij"), 5, 6, SV("abcdefghijklmnopqrst"), 5);
+ test(S("abcdefghij"), 9, 0, SV(""), 0);
+ test(S("abcdefghij"), 9, 0, SV("abcde"), -5);
+ test(S("abcdefghij"), 9, 0, SV("abcdefghij"), -10);
+ test(S("abcdefghij"), 9, 0, SV("abcdefghijklmnopqrst"), -20);
+ test(S("abcdefghij"), 9, 1, SV(""), 1);
+ test(S("abcdefghij"), 9, 1, SV("abcde"), 9);
+ test(S("abcdefghij"), 9, 1, SV("abcdefghij"), 9);
+ test(S("abcdefghij"), 9, 1, SV("abcdefghijklmnopqrst"), 9);
+ test(S("abcdefghij"), 9, 2, SV(""), 1);
+ test(S("abcdefghij"), 9, 2, SV("abcde"), 9);
+ test(S("abcdefghij"), 9, 2, SV("abcdefghij"), 9);
+ test(S("abcdefghij"), 9, 2, SV("abcdefghijklmnopqrst"), 9);
+ test(S("abcdefghij"), 10, 0, SV(""), 0);
+ test(S("abcdefghij"), 10, 0, SV("abcde"), -5);
+ test(S("abcdefghij"), 10, 0, SV("abcdefghij"), -10);
+ test(S("abcdefghij"), 10, 0, SV("abcdefghijklmnopqrst"), -20);
+ test(S("abcdefghij"), 10, 1, SV(""), 0);
+ test(S("abcdefghij"), 10, 1, SV("abcde"), -5);
+ test(S("abcdefghij"), 10, 1, SV("abcdefghij"), -10);
+ test(S("abcdefghij"), 10, 1, SV("abcdefghijklmnopqrst"), -20);
+ test(S("abcdefghij"), 11, 0, SV(""), 0);
+ test(S("abcdefghij"), 11, 0, SV("abcde"), 0);
+ test(S("abcdefghij"), 11, 0, SV("abcdefghij"), 0);
+ test(S("abcdefghij"), 11, 0, SV("abcdefghijklmnopqrst"), 0);
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 void test2()
-{
- test(S("abcdefghijklmnopqrst"), 0, 0, SV(""), 0);
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcde"), -5);
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghij"), -10);
- test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghijklmnopqrst"), -20);
- test(S("abcdefghijklmnopqrst"), 0, 1, SV(""), 1);
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcde"), -4);
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghij"), -9);
- test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghijklmnopqrst"), -19);
- test(S("abcdefghijklmnopqrst"), 0, 10, SV(""), 10);
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcde"), 5);
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghij"), 0);
- test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghijklmnopqrst"), -10);
- test(S("abcdefghijklmnopqrst"), 0, 19, SV(""), 19);
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcde"), 14);
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghij"), 9);
- test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghijklmnopqrst"), -1);
- test(S("abcdefghijklmnopqrst"), 0, 20, SV(""), 20);
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcde"), 15);
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghij"), 10);
- test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghijklmnopqrst"), 0);
- test(S("abcdefghijklmnopqrst"), 0, 21, SV(""), 20);
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcde"), 15);
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghij"), 10);
- test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghijklmnopqrst"), 0);
- test(S("abcdefghijklmnopqrst"), 1, 0, SV(""), 0);
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcde"), -5);
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghij"), -10);
- test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghijklmnopqrst"), -20);
- test(S("abcdefghijklmnopqrst"), 1, 1, SV(""), 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcde"), 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghij"), 1);
- test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghijklmnopqrst"), 1);
- test(S("abcdefghijklmnopqrst"), 1, 9, SV(""), 9);
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcde"), 1);
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghij"), 1);
- test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghijklmnopqrst"), 1);
- test(S("abcdefghijklmnopqrst"), 1, 18, SV(""), 18);
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcde"), 1);
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghij"), 1);
- test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghijklmnopqrst"), 1);
- test(S("abcdefghijklmnopqrst"), 1, 19, SV(""), 19);
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcde"), 1);
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghij"), 1);
- test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghijklmnopqrst"), 1);
- test(S("abcdefghijklmnopqrst"), 1, 20, SV(""), 19);
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcde"), 1);
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghij"), 1);
- test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghijklmnopqrst"), 1);
- test(S("abcdefghijklmnopqrst"), 10, 0, SV(""), 0);
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcde"), -5);
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghij"), -10);
- test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghijklmnopqrst"), -20);
- test(S("abcdefghijklmnopqrst"), 10, 1, SV(""), 1);
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcde"), 10);
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghij"), 10);
- test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghijklmnopqrst"), 10);
- test(S("abcdefghijklmnopqrst"), 10, 5, SV(""), 5);
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcde"), 10);
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghij"), 10);
- test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghijklmnopqrst"), 10);
- test(S("abcdefghijklmnopqrst"), 10, 9, SV(""), 9);
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcde"), 10);
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghij"), 10);
- test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghijklmnopqrst"), 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, SV(""), 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcde"), 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghij"), 10);
- test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghijklmnopqrst"), 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, SV(""), 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcde"), 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghij"), 10);
- test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghijklmnopqrst"), 10);
- test(S("abcdefghijklmnopqrst"), 19, 0, SV(""), 0);
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcde"), -5);
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghij"), -10);
- test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghijklmnopqrst"), -20);
- test(S("abcdefghijklmnopqrst"), 19, 1, SV(""), 1);
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcde"), 19);
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghij"), 19);
- test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghijklmnopqrst"), 19);
- test(S("abcdefghijklmnopqrst"), 19, 2, SV(""), 1);
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcde"), 19);
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghij"), 19);
- test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghijklmnopqrst"), 19);
- test(S("abcdefghijklmnopqrst"), 20, 0, SV(""), 0);
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcde"), -5);
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghij"), -10);
- test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghijklmnopqrst"), -20);
- test(S("abcdefghijklmnopqrst"), 20, 1, SV(""), 0);
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcde"), -5);
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghij"), -10);
- test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghijklmnopqrst"), -20);
- test(S("abcdefghijklmnopqrst"), 21, 0, SV(""), 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcde"), 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghij"), 0);
- test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghijklmnopqrst"), 0);
+TEST_CONSTEXPR_CXX20 void test2() {
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV(""), 0);
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcde"), -5);
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghij"), -10);
+ test(S("abcdefghijklmnopqrst"), 0, 0, SV("abcdefghijklmnopqrst"), -20);
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV(""), 1);
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcde"), -4);
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghij"), -9);
+ test(S("abcdefghijklmnopqrst"), 0, 1, SV("abcdefghijklmnopqrst"), -19);
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV(""), 10);
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcde"), 5);
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghij"), 0);
+ test(S("abcdefghijklmnopqrst"), 0, 10, SV("abcdefghijklmnopqrst"), -10);
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV(""), 19);
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcde"), 14);
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghij"), 9);
+ test(S("abcdefghijklmnopqrst"), 0, 19, SV("abcdefghijklmnopqrst"), -1);
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV(""), 20);
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcde"), 15);
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghij"), 10);
+ test(S("abcdefghijklmnopqrst"), 0, 20, SV("abcdefghijklmnopqrst"), 0);
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV(""), 20);
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcde"), 15);
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghij"), 10);
+ test(S("abcdefghijklmnopqrst"), 0, 21, SV("abcdefghijklmnopqrst"), 0);
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV(""), 0);
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcde"), -5);
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghij"), -10);
+ test(S("abcdefghijklmnopqrst"), 1, 0, SV("abcdefghijklmnopqrst"), -20);
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV(""), 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcde"), 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghij"), 1);
+ test(S("abcdefghijklmnopqrst"), 1, 1, SV("abcdefghijklmnopqrst"), 1);
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV(""), 9);
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcde"), 1);
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghij"), 1);
+ test(S("abcdefghijklmnopqrst"), 1, 9, SV("abcdefghijklmnopqrst"), 1);
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV(""), 18);
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcde"), 1);
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghij"), 1);
+ test(S("abcdefghijklmnopqrst"), 1, 18, SV("abcdefghijklmnopqrst"), 1);
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV(""), 19);
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcde"), 1);
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghij"), 1);
+ test(S("abcdefghijklmnopqrst"), 1, 19, SV("abcdefghijklmnopqrst"), 1);
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV(""), 19);
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcde"), 1);
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghij"), 1);
+ test(S("abcdefghijklmnopqrst"), 1, 20, SV("abcdefghijklmnopqrst"), 1);
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV(""), 0);
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcde"), -5);
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghij"), -10);
+ test(S("abcdefghijklmnopqrst"), 10, 0, SV("abcdefghijklmnopqrst"), -20);
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV(""), 1);
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcde"), 10);
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghij"), 10);
+ test(S("abcdefghijklmnopqrst"), 10, 1, SV("abcdefghijklmnopqrst"), 10);
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV(""), 5);
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcde"), 10);
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghij"), 10);
+ test(S("abcdefghijklmnopqrst"), 10, 5, SV("abcdefghijklmnopqrst"), 10);
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV(""), 9);
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcde"), 10);
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghij"), 10);
+ test(S("abcdefghijklmnopqrst"), 10, 9, SV("abcdefghijklmnopqrst"), 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV(""), 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcde"), 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghij"), 10);
+ test(S("abcdefghijklmnopqrst"), 10, 10, SV("abcdefghijklmnopqrst"), 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV(""), 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcde"), 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghij"), 10);
+ test(S("abcdefghijklmnopqrst"), 10, 11, SV("abcdefghijklmnopqrst"), 10);
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV(""), 0);
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcde"), -5);
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghij"), -10);
+ test(S("abcdefghijklmnopqrst"), 19, 0, SV("abcdefghijklmnopqrst"), -20);
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV(""), 1);
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcde"), 19);
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghij"), 19);
+ test(S("abcdefghijklmnopqrst"), 19, 1, SV("abcdefghijklmnopqrst"), 19);
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV(""), 1);
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcde"), 19);
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghij"), 19);
+ test(S("abcdefghijklmnopqrst"), 19, 2, SV("abcdefghijklmnopqrst"), 19);
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV(""), 0);
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcde"), -5);
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghij"), -10);
+ test(S("abcdefghijklmnopqrst"), 20, 0, SV("abcdefghijklmnopqrst"), -20);
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV(""), 0);
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcde"), -5);
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghij"), -10);
+ test(S("abcdefghijklmnopqrst"), 20, 1, SV("abcdefghijklmnopqrst"), -20);
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV(""), 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcde"), 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghij"), 0);
+ test(S("abcdefghijklmnopqrst"), 21, 0, SV("abcdefghijklmnopqrst"), 0);
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -382,8 +371,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.ops/string_compare/string.pass.cpp b/libcxx/test/std/strings/basic.string/string.ops/string_compare/string.pass.cpp
index e81946e215bee95..f63cd5066585867 100644
--- a/libcxx/test/std/strings/basic.string/string.ops/string_compare/string.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.ops/string_compare/string.pass.cpp
@@ -16,21 +16,18 @@
#include "test_macros.h"
#include "min_allocator.h"
-TEST_CONSTEXPR_CXX20 int sign(int x)
-{
- if (x == 0)
- return 0;
- if (x < 0)
- return -1;
- return 1;
+TEST_CONSTEXPR_CXX20 int sign(int x) {
+ if (x == 0)
+ return 0;
+ if (x < 0)
+ return -1;
+ return 1;
}
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(const S& s, const S& str, int x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.compare(str));
- assert(sign(s.compare(str)) == sign(x));
+TEST_CONSTEXPR_CXX20 void test(const S& s, const S& str, int x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.compare(str));
+ assert(sign(s.compare(str)) == sign(x));
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -85,8 +82,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.ops/string_compare/string_view.pass.cpp b/libcxx/test/std/strings/basic.string/string.ops/string_compare/string_view.pass.cpp
index 72c0203a3ca2d21..2f97d4819772a49 100644
--- a/libcxx/test/std/strings/basic.string/string.ops/string_compare/string_view.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.ops/string_compare/string_view.pass.cpp
@@ -16,21 +16,18 @@
#include "test_macros.h"
#include "min_allocator.h"
-TEST_CONSTEXPR_CXX20 int sign(int x)
-{
- if (x == 0)
- return 0;
- if (x < 0)
- return -1;
- return 1;
+TEST_CONSTEXPR_CXX20 int sign(int x) {
+ if (x == 0)
+ return 0;
+ if (x < 0)
+ return -1;
+ return 1;
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 void
-test(const S& s, SV sv, int x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.compare(sv));
- assert(sign(s.compare(sv)) == sign(x));
+TEST_CONSTEXPR_CXX20 void test(const S& s, SV sv, int x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.compare(sv));
+ assert(sign(s.compare(sv)) == sign(x));
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -80,8 +77,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.ops/string_find.first.not.of/char_size.pass.cpp b/libcxx/test/std/strings/basic.string/string.ops/string_find.first.not.of/char_size.pass.cpp
index a2c42930175c87e..6fddd3629c6f73c 100644
--- a/libcxx/test/std/strings/basic.string/string.ops/string_find.first.not.of/char_size.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.ops/string_find.first.not.of/char_size.pass.cpp
@@ -18,23 +18,19 @@
template <class S>
TEST_CONSTEXPR_CXX20 void
-test(const S& s, typename S::value_type c, typename S::size_type pos,
- typename S::size_type x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.find_first_not_of(c, pos));
- assert(s.find_first_not_of(c, pos) == x);
- if (x != S::npos)
- assert(pos <= x && x < s.size());
+test(const S& s, typename S::value_type c, typename S::size_type pos, typename S::size_type x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.find_first_not_of(c, pos));
+ assert(s.find_first_not_of(c, pos) == x);
+ if (x != S::npos)
+ assert(pos <= x && x < s.size());
}
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(const S& s, typename S::value_type c, typename S::size_type x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.find_first_not_of(c));
- assert(s.find_first_not_of(c) == x);
- if (x != S::npos)
- assert(x < s.size());
+TEST_CONSTEXPR_CXX20 void test(const S& s, typename S::value_type c, typename S::size_type x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.find_first_not_of(c));
+ assert(s.find_first_not_of(c) == x);
+ if (x != S::npos)
+ assert(x < s.size());
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -104,8 +100,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.ops/string_find.first.not.of/pointer_size.pass.cpp b/libcxx/test/std/strings/basic.string/string.ops/string_find.first.not.of/pointer_size.pass.cpp
index 3fa13ef09e5e3ff..bc4f976d5adf5dd 100644
--- a/libcxx/test/std/strings/basic.string/string.ops/string_find.first.not.of/pointer_size.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.ops/string_find.first.not.of/pointer_size.pass.cpp
@@ -18,128 +18,122 @@
template <class S>
TEST_CONSTEXPR_CXX20 void
-test(const S& s, const typename S::value_type* str, typename S::size_type pos,
- typename S::size_type x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.find_first_not_of(str, pos));
- assert(s.find_first_not_of(str, pos) == x);
- if (x != S::npos)
- assert(pos <= x && x < s.size());
+test(const S& s, const typename S::value_type* str, typename S::size_type pos, typename S::size_type x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.find_first_not_of(str, pos));
+ assert(s.find_first_not_of(str, pos) == x);
+ if (x != S::npos)
+ assert(pos <= x && x < s.size());
}
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(const S& s, const typename S::value_type* str, typename S::size_type x)
-{
- assert(s.find_first_not_of(str) == x);
- if (x != S::npos)
- assert(x < s.size());
+TEST_CONSTEXPR_CXX20 void test(const S& s, const typename S::value_type* str, typename S::size_type x) {
+ assert(s.find_first_not_of(str) == x);
+ if (x != S::npos)
+ assert(x < s.size());
}
template <class S>
-TEST_CONSTEXPR_CXX20 void test0()
-{
- test(S(""), "", 0, S::npos);
- test(S(""), "laenf", 0, S::npos);
- test(S(""), "pqlnkmbdjo", 0, S::npos);
- test(S(""), "qkamfogpnljdcshbreti", 0, S::npos);
- test(S(""), "", 1, S::npos);
- test(S(""), "bjaht", 1, S::npos);
- test(S(""), "hjlcmgpket", 1, S::npos);
- test(S(""), "htaobedqikfplcgjsmrn", 1, S::npos);
- test(S("fodgq"), "", 0, 0);
- test(S("qanej"), "dfkap", 0, 0);
- test(S("clbao"), "ihqrfebgad", 0, 0);
- test(S("mekdn"), "ngtjfcalbseiqrphmkdo", 0, S::npos);
- test(S("srdfq"), "", 1, 1);
- test(S("oemth"), "ikcrq", 1, 1);
- test(S("cdaih"), "dmajblfhsg", 1, 3);
- test(S("qohtk"), "oqftjhdmkgsblacenirp", 1, S::npos);
- test(S("cshmd"), "", 2, 2);
- test(S("lhcdo"), "oebqi", 2, 2);
- test(S("qnsoh"), "kojhpmbsfe", 2, S::npos);
- test(S("pkrof"), "acbsjqogpltdkhinfrem", 2, S::npos);
- test(S("fmtsp"), "", 4, 4);
- test(S("khbpm"), "aobjd", 4, 4);
- test(S("pbsji"), "pcbahntsje", 4, 4);
- test(S("mprdj"), "fhepcrntkoagbmldqijs", 4, S::npos);
- test(S("eqmpa"), "", 5, S::npos);
- test(S("omigs"), "kocgb", 5, S::npos);
- test(S("onmje"), "fbslrjiqkm", 5, S::npos);
- test(S("oqmrj"), "jeidpcmalhfnqbgtrsko", 5, S::npos);
- test(S("schfa"), "", 6, S::npos);
- test(S("igdsc"), "qngpd", 6, S::npos);
- test(S("brqgo"), "rodhqklgmb", 6, S::npos);
- test(S("tnrph"), "thdjgafrlbkoiqcspmne", 6, S::npos);
- test(S("hcjitbfapl"), "", 0, 0);
- test(S("daiprenocl"), "ashjd", 0, 2);
- test(S("litpcfdghe"), "mgojkldsqh", 0, 1);
- test(S("aidjksrolc"), "imqnaghkfrdtlopbjesc", 0, S::npos);
- test(S("qpghtfbaji"), "", 1, 1);
- test(S("gfshlcmdjr"), "nadkh", 1, 1);
- test(S("nkodajteqp"), "ofdrqmkebl", 1, 4);
- test(S("gbmetiprqd"), "bdfjqgatlksriohemnpc", 1, S::npos);
- test(S("crnklpmegd"), "", 5, 5);
- test(S("jsbtafedoc"), "prqgn", 5, 5);
- test(S("qnmodrtkeb"), "pejafmnokr", 5, 6);
- test(S("cpebqsfmnj"), "odnqkgijrhabfmcestlp", 5, S::npos);
- test(S("lmofqdhpki"), "", 9, 9);
- test(S("hnefkqimca"), "rtjpa", 9, S::npos);
- test(S("drtasbgmfp"), "ktsrmnqagd", 9, 9);
- test(S("lsaijeqhtr"), "rtdhgcisbnmoaqkfpjle", 9, S::npos);
- test(S("elgofjmbrq"), "", 10, S::npos);
- test(S("mjqdgalkpc"), "dplqa", 10, S::npos);
- test(S("kthqnfcerm"), "dkacjoptns", 10, S::npos);
- test(S("dfsjhanorc"), "hqfimtrgnbekpdcsjalo", 10, S::npos);
- test(S("eqsgalomhb"), "", 11, S::npos);
- test(S("akiteljmoh"), "lofbc", 11, S::npos);
- test(S("hlbdfreqjo"), "astoegbfpn", 11, S::npos);
- test(S("taqobhlerg"), "pdgreqomsncafklhtibj", 11, S::npos);
- test(S("snafbdlghrjkpqtoceim"), "", 0, 0);
- test(S("aemtbrgcklhndjisfpoq"), "lbtqd", 0, 0);
- test(S("pnracgfkjdiholtbqsem"), "tboimldpjh", 0, 1);
- test(S("dicfltehbsgrmojnpkaq"), "slcerthdaiqjfnobgkpm", 0, S::npos);
- test(S("jlnkraeodhcspfgbqitm"), "", 1, 1);
- test(S("lhosrngtmfjikbqpcade"), "aqibs", 1, 1);
- test(S("rbtaqjhgkneisldpmfoc"), "gtfblmqinc", 1, 3);
- test(S("gpifsqlrdkbonjtmheca"), "mkqpbtdalgniorhfescj", 1, S::npos);
- test(S("hdpkobnsalmcfijregtq"), "", 10, 10);
- test(S("jtlshdgqaiprkbcoenfm"), "pblas", 10, 11);
- test(S("fkdrbqltsgmcoiphneaj"), "arosdhcfme", 10, 13);
- test(S("crsplifgtqedjohnabmk"), "blkhjeogicatqfnpdmsr", 10, S::npos);
- test(S("niptglfbosehkamrdqcj"), "", 19, 19);
- test(S("copqdhstbingamjfkler"), "djkqc", 19, 19);
- test(S("mrtaefilpdsgocnhqbjk"), "lgokshjtpb", 19, S::npos);
- test(S("kojatdhlcmigpbfrqnes"), "bqjhtkfepimcnsgrlado", 19, S::npos);
- test(S("eaintpchlqsbdgrkjofm"), "", 20, S::npos);
- test(S("gjnhidfsepkrtaqbmclo"), "nocfa", 20, S::npos);
- test(S("spocfaktqdbiejlhngmr"), "bgtajmiedc", 20, S::npos);
- test(S("rphmlekgfscndtaobiqj"), "lsckfnqgdahejiopbtmr", 20, S::npos);
- test(S("liatsqdoegkmfcnbhrpj"), "", 21, S::npos);
- test(S("binjagtfldkrspcomqeh"), "gfsrt", 21, S::npos);
- test(S("latkmisecnorjbfhqpdg"), "pfsocbhjtm", 21, S::npos);
- test(S("lecfratdjkhnsmqpoigb"), "tpflmdnoicjgkberhqsa", 21, S::npos);
+TEST_CONSTEXPR_CXX20 void test0() {
+ test(S(""), "", 0, S::npos);
+ test(S(""), "laenf", 0, S::npos);
+ test(S(""), "pqlnkmbdjo", 0, S::npos);
+ test(S(""), "qkamfogpnljdcshbreti", 0, S::npos);
+ test(S(""), "", 1, S::npos);
+ test(S(""), "bjaht", 1, S::npos);
+ test(S(""), "hjlcmgpket", 1, S::npos);
+ test(S(""), "htaobedqikfplcgjsmrn", 1, S::npos);
+ test(S("fodgq"), "", 0, 0);
+ test(S("qanej"), "dfkap", 0, 0);
+ test(S("clbao"), "ihqrfebgad", 0, 0);
+ test(S("mekdn"), "ngtjfcalbseiqrphmkdo", 0, S::npos);
+ test(S("srdfq"), "", 1, 1);
+ test(S("oemth"), "ikcrq", 1, 1);
+ test(S("cdaih"), "dmajblfhsg", 1, 3);
+ test(S("qohtk"), "oqftjhdmkgsblacenirp", 1, S::npos);
+ test(S("cshmd"), "", 2, 2);
+ test(S("lhcdo"), "oebqi", 2, 2);
+ test(S("qnsoh"), "kojhpmbsfe", 2, S::npos);
+ test(S("pkrof"), "acbsjqogpltdkhinfrem", 2, S::npos);
+ test(S("fmtsp"), "", 4, 4);
+ test(S("khbpm"), "aobjd", 4, 4);
+ test(S("pbsji"), "pcbahntsje", 4, 4);
+ test(S("mprdj"), "fhepcrntkoagbmldqijs", 4, S::npos);
+ test(S("eqmpa"), "", 5, S::npos);
+ test(S("omigs"), "kocgb", 5, S::npos);
+ test(S("onmje"), "fbslrjiqkm", 5, S::npos);
+ test(S("oqmrj"), "jeidpcmalhfnqbgtrsko", 5, S::npos);
+ test(S("schfa"), "", 6, S::npos);
+ test(S("igdsc"), "qngpd", 6, S::npos);
+ test(S("brqgo"), "rodhqklgmb", 6, S::npos);
+ test(S("tnrph"), "thdjgafrlbkoiqcspmne", 6, S::npos);
+ test(S("hcjitbfapl"), "", 0, 0);
+ test(S("daiprenocl"), "ashjd", 0, 2);
+ test(S("litpcfdghe"), "mgojkldsqh", 0, 1);
+ test(S("aidjksrolc"), "imqnaghkfrdtlopbjesc", 0, S::npos);
+ test(S("qpghtfbaji"), "", 1, 1);
+ test(S("gfshlcmdjr"), "nadkh", 1, 1);
+ test(S("nkodajteqp"), "ofdrqmkebl", 1, 4);
+ test(S("gbmetiprqd"), "bdfjqgatlksriohemnpc", 1, S::npos);
+ test(S("crnklpmegd"), "", 5, 5);
+ test(S("jsbtafedoc"), "prqgn", 5, 5);
+ test(S("qnmodrtkeb"), "pejafmnokr", 5, 6);
+ test(S("cpebqsfmnj"), "odnqkgijrhabfmcestlp", 5, S::npos);
+ test(S("lmofqdhpki"), "", 9, 9);
+ test(S("hnefkqimca"), "rtjpa", 9, S::npos);
+ test(S("drtasbgmfp"), "ktsrmnqagd", 9, 9);
+ test(S("lsaijeqhtr"), "rtdhgcisbnmoaqkfpjle", 9, S::npos);
+ test(S("elgofjmbrq"), "", 10, S::npos);
+ test(S("mjqdgalkpc"), "dplqa", 10, S::npos);
+ test(S("kthqnfcerm"), "dkacjoptns", 10, S::npos);
+ test(S("dfsjhanorc"), "hqfimtrgnbekpdcsjalo", 10, S::npos);
+ test(S("eqsgalomhb"), "", 11, S::npos);
+ test(S("akiteljmoh"), "lofbc", 11, S::npos);
+ test(S("hlbdfreqjo"), "astoegbfpn", 11, S::npos);
+ test(S("taqobhlerg"), "pdgreqomsncafklhtibj", 11, S::npos);
+ test(S("snafbdlghrjkpqtoceim"), "", 0, 0);
+ test(S("aemtbrgcklhndjisfpoq"), "lbtqd", 0, 0);
+ test(S("pnracgfkjdiholtbqsem"), "tboimldpjh", 0, 1);
+ test(S("dicfltehbsgrmojnpkaq"), "slcerthdaiqjfnobgkpm", 0, S::npos);
+ test(S("jlnkraeodhcspfgbqitm"), "", 1, 1);
+ test(S("lhosrngtmfjikbqpcade"), "aqibs", 1, 1);
+ test(S("rbtaqjhgkneisldpmfoc"), "gtfblmqinc", 1, 3);
+ test(S("gpifsqlrdkbonjtmheca"), "mkqpbtdalgniorhfescj", 1, S::npos);
+ test(S("hdpkobnsalmcfijregtq"), "", 10, 10);
+ test(S("jtlshdgqaiprkbcoenfm"), "pblas", 10, 11);
+ test(S("fkdrbqltsgmcoiphneaj"), "arosdhcfme", 10, 13);
+ test(S("crsplifgtqedjohnabmk"), "blkhjeogicatqfnpdmsr", 10, S::npos);
+ test(S("niptglfbosehkamrdqcj"), "", 19, 19);
+ test(S("copqdhstbingamjfkler"), "djkqc", 19, 19);
+ test(S("mrtaefilpdsgocnhqbjk"), "lgokshjtpb", 19, S::npos);
+ test(S("kojatdhlcmigpbfrqnes"), "bqjhtkfepimcnsgrlado", 19, S::npos);
+ test(S("eaintpchlqsbdgrkjofm"), "", 20, S::npos);
+ test(S("gjnhidfsepkrtaqbmclo"), "nocfa", 20, S::npos);
+ test(S("spocfaktqdbiejlhngmr"), "bgtajmiedc", 20, S::npos);
+ test(S("rphmlekgfscndtaobiqj"), "lsckfnqgdahejiopbtmr", 20, S::npos);
+ test(S("liatsqdoegkmfcnbhrpj"), "", 21, S::npos);
+ test(S("binjagtfldkrspcomqeh"), "gfsrt", 21, S::npos);
+ test(S("latkmisecnorjbfhqpdg"), "pfsocbhjtm", 21, S::npos);
+ test(S("lecfratdjkhnsmqpoigb"), "tpflmdnoicjgkberhqsa", 21, S::npos);
}
template <class S>
-TEST_CONSTEXPR_CXX20 void test1()
-{
- test(S(""), "", S::npos);
- test(S(""), "laenf", S::npos);
- test(S(""), "pqlnkmbdjo", S::npos);
- test(S(""), "qkamfogpnljdcshbreti", S::npos);
- test(S("nhmko"), "", 0);
- test(S("lahfb"), "irkhs", 0);
- test(S("gmfhd"), "kantesmpgj", 2);
- test(S("odaft"), "oknlrstdpiqmjbaghcfe", S::npos);
- test(S("eolhfgpjqk"), "", 0);
- test(S("nbatdlmekr"), "bnrpe", 2);
- test(S("jdmciepkaq"), "jtdaefblso", 2);
- test(S("hkbgspoflt"), "oselktgbcapndfjihrmq", S::npos);
- test(S("gprdcokbnjhlsfmtieqa"), "", 0);
- test(S("qjghlnftcaismkropdeb"), "bjaht", 0);
- test(S("pnalfrdtkqcmojiesbhg"), "hjlcmgpket", 1);
- test(S("pniotcfrhqsmgdkjbael"), "htaobedqikfplcgjsmrn", S::npos);
+TEST_CONSTEXPR_CXX20 void test1() {
+ test(S(""), "", S::npos);
+ test(S(""), "laenf", S::npos);
+ test(S(""), "pqlnkmbdjo", S::npos);
+ test(S(""), "qkamfogpnljdcshbreti", S::npos);
+ test(S("nhmko"), "", 0);
+ test(S("lahfb"), "irkhs", 0);
+ test(S("gmfhd"), "kantesmpgj", 2);
+ test(S("odaft"), "oknlrstdpiqmjbaghcfe", S::npos);
+ test(S("eolhfgpjqk"), "", 0);
+ test(S("nbatdlmekr"), "bnrpe", 2);
+ test(S("jdmciepkaq"), "jtdaefblso", 2);
+ test(S("hkbgspoflt"), "oselktgbcapndfjihrmq", S::npos);
+ test(S("gprdcokbnjhlsfmtieqa"), "", 0);
+ test(S("qjghlnftcaismkropdeb"), "bjaht", 0);
+ test(S("pnalfrdtkqcmojiesbhg"), "hjlcmgpket", 1);
+ test(S("pniotcfrhqsmgdkjbael"), "htaobedqikfplcgjsmrn", S::npos);
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -159,8 +153,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.ops/string_find.first.not.of/pointer_size_size.pass.cpp b/libcxx/test/std/strings/basic.string/string.ops/string_find.first.not.of/pointer_size_size.pass.cpp
index cdd22c95c3ea513..e567546596de865 100644
--- a/libcxx/test/std/strings/basic.string/string.ops/string_find.first.not.of/pointer_size_size.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.ops/string_find.first.not.of/pointer_size_size.pass.cpp
@@ -18,353 +18,351 @@
template <class S>
TEST_CONSTEXPR_CXX20 void
-test(const S& s, const typename S::value_type* str, typename S::size_type pos,
- typename S::size_type n, typename S::size_type x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.find_first_not_of(str, pos, n));
- assert(s.find_first_not_of(str, pos, n) == x);
- if (x != S::npos)
- assert(pos <= x && x < s.size());
+test(const S& s,
+ const typename S::value_type* str,
+ typename S::size_type pos,
+ typename S::size_type n,
+ typename S::size_type x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.find_first_not_of(str, pos, n));
+ assert(s.find_first_not_of(str, pos, n) == x);
+ if (x != S::npos)
+ assert(pos <= x && x < s.size());
}
template <class S>
-TEST_CONSTEXPR_CXX20 void test0()
-{
- test(S(""), "", 0, 0, S::npos);
- test(S(""), "irkhs", 0, 0, S::npos);
- test(S(""), "kante", 0, 1, S::npos);
- test(S(""), "oknlr", 0, 2, S::npos);
- test(S(""), "pcdro", 0, 4, S::npos);
- test(S(""), "bnrpe", 0, 5, S::npos);
- test(S(""), "jtdaefblso", 0, 0, S::npos);
- test(S(""), "oselktgbca", 0, 1, S::npos);
- test(S(""), "eqgaplhckj", 0, 5, S::npos);
- test(S(""), "bjahtcmnlp", 0, 9, S::npos);
- test(S(""), "hjlcmgpket", 0, 10, S::npos);
- test(S(""), "htaobedqikfplcgjsmrn", 0, 0, S::npos);
- test(S(""), "hpqiarojkcdlsgnmfetb", 0, 1, S::npos);
- test(S(""), "dfkaprhjloqetcsimnbg", 0, 10, S::npos);
- test(S(""), "ihqrfebgadntlpmjksoc", 0, 19, S::npos);
- test(S(""), "ngtjfcalbseiqrphmkdo", 0, 20, S::npos);
- test(S(""), "", 1, 0, S::npos);
- test(S(""), "lbtqd", 1, 0, S::npos);
- test(S(""), "tboim", 1, 1, S::npos);
- test(S(""), "slcer", 1, 2, S::npos);
- test(S(""), "cbjfs", 1, 4, S::npos);
- test(S(""), "aqibs", 1, 5, S::npos);
- test(S(""), "gtfblmqinc", 1, 0, S::npos);
- test(S(""), "mkqpbtdalg", 1, 1, S::npos);
- test(S(""), "kphatlimcd", 1, 5, S::npos);
- test(S(""), "pblasqogic", 1, 9, S::npos);
- test(S(""), "arosdhcfme", 1, 10, S::npos);
- test(S(""), "blkhjeogicatqfnpdmsr", 1, 0, S::npos);
- test(S(""), "bmhineprjcoadgstflqk", 1, 1, S::npos);
- test(S(""), "djkqcmetslnghpbarfoi", 1, 10, S::npos);
- test(S(""), "lgokshjtpbemarcdqnfi", 1, 19, S::npos);
- test(S(""), "bqjhtkfepimcnsgrlado", 1, 20, S::npos);
- test(S("eaint"), "", 0, 0, 0);
- test(S("binja"), "gfsrt", 0, 0, 0);
- test(S("latkm"), "pfsoc", 0, 1, 0);
- test(S("lecfr"), "tpflm", 0, 2, 0);
- test(S("eqkst"), "sgkec", 0, 4, 1);
- test(S("cdafr"), "romds", 0, 5, 0);
- test(S("prbhe"), "qhjistlgmr", 0, 0, 0);
- test(S("lbisk"), "pedfirsglo", 0, 1, 0);
- test(S("hrlpd"), "aqcoslgrmk", 0, 5, 0);
- test(S("ehmja"), "dabckmepqj", 0, 9, 1);
- test(S("mhqgd"), "pqscrjthli", 0, 10, 0);
- test(S("tgklq"), "kfphdcsjqmobliagtren", 0, 0, 0);
- test(S("bocjs"), "rokpefncljibsdhqtagm", 0, 1, 0);
- test(S("grbsd"), "afionmkphlebtcjqsgrd", 0, 10, 0);
- test(S("ofjqr"), "aenmqplidhkofrjbctsg", 0, 19, S::npos);
- test(S("btlfi"), "osjmbtcadhiklegrpqnf", 0, 20, S::npos);
- test(S("clrgb"), "", 1, 0, 1);
- test(S("tjmek"), "osmia", 1, 0, 1);
- test(S("bgstp"), "ckonl", 1, 1, 1);
- test(S("hstrk"), "ilcaj", 1, 2, 1);
- test(S("kmspj"), "lasiq", 1, 4, 1);
- test(S("tjboh"), "kfqmr", 1, 5, 1);
- test(S("ilbcj"), "klnitfaobg", 1, 0, 1);
- test(S("jkngf"), "gjhmdlqikp", 1, 1, 1);
- test(S("gfcql"), "skbgtahqej", 1, 5, 1);
- test(S("dqtlg"), "bjsdgtlpkf", 1, 9, 1);
- test(S("bthpg"), "bjgfmnlkio", 1, 10, 1);
- test(S("dgsnq"), "lbhepotfsjdqigcnamkr", 1, 0, 1);
- test(S("rmfhp"), "tebangckmpsrqdlfojhi", 1, 1, 1);
- test(S("jfdam"), "joflqbdkhtegimscpanr", 1, 10, 3);
- test(S("edapb"), "adpmcohetfbsrjinlqkg", 1, 19, S::npos);
- test(S("brfsm"), "iacldqjpfnogbsrhmetk", 1, 20, S::npos);
- test(S("ndrhl"), "", 2, 0, 2);
- test(S("mrecp"), "otkgb", 2, 0, 2);
- test(S("qlasf"), "cqsjl", 2, 1, 2);
- test(S("smaqd"), "dpifl", 2, 2, 2);
- test(S("hjeni"), "oapht", 2, 4, 2);
- test(S("ocmfj"), "cifts", 2, 5, 2);
- test(S("hmftq"), "nmsckbgalo", 2, 0, 2);
- test(S("fklad"), "tpksqhamle", 2, 1, 2);
- test(S("dirnm"), "tpdrchmkji", 2, 5, 3);
- test(S("hrgdc"), "ijagfkblst", 2, 9, 3);
- test(S("ifakg"), "kpocsignjb", 2, 10, 2);
- test(S("ebrgd"), "pecqtkjsnbdrialgmohf", 2, 0, 2);
- test(S("rcjml"), "aiortphfcmkjebgsndql", 2, 1, 2);
- test(S("peqmt"), "sdbkeamglhipojqftrcn", 2, 10, 2);
- test(S("frehn"), "ljqncehgmfktroapidbs", 2, 19, S::npos);
- test(S("tqolf"), "rtcfodilamkbenjghqps", 2, 20, S::npos);
- test(S("cjgao"), "", 4, 0, 4);
- test(S("kjplq"), "mabns", 4, 0, 4);
- test(S("herni"), "bdnrp", 4, 1, 4);
- test(S("tadrb"), "scidp", 4, 2, 4);
- test(S("pkfeo"), "agbjl", 4, 4, 4);
- test(S("hoser"), "jfmpr", 4, 5, S::npos);
- test(S("kgrsp"), "rbpefghsmj", 4, 0, 4);
- test(S("pgejb"), "apsfntdoqc", 4, 1, 4);
- test(S("thlnq"), "ndkjeisgcl", 4, 5, 4);
- test(S("nbmit"), "rnfpqatdeo", 4, 9, S::npos);
- test(S("jgmib"), "bntjlqrfik", 4, 10, S::npos);
- test(S("ncrfj"), "kcrtmpolnaqejghsfdbi", 4, 0, 4);
- test(S("ncsik"), "lobheanpkmqidsrtcfgj", 4, 1, 4);
- test(S("sgbfh"), "athdkljcnreqbgpmisof", 4, 10, S::npos);
- test(S("dktbn"), "qkdmjialrscpbhefgont", 4, 19, S::npos);
- test(S("fthqm"), "dmasojntqleribkgfchp", 4, 20, S::npos);
- test(S("klopi"), "", 5, 0, S::npos);
- test(S("dajhn"), "psthd", 5, 0, S::npos);
- test(S("jbgno"), "rpmjd", 5, 1, S::npos);
- test(S("hkjae"), "dfsmk", 5, 2, S::npos);
+TEST_CONSTEXPR_CXX20 void test0() {
+ test(S(""), "", 0, 0, S::npos);
+ test(S(""), "irkhs", 0, 0, S::npos);
+ test(S(""), "kante", 0, 1, S::npos);
+ test(S(""), "oknlr", 0, 2, S::npos);
+ test(S(""), "pcdro", 0, 4, S::npos);
+ test(S(""), "bnrpe", 0, 5, S::npos);
+ test(S(""), "jtdaefblso", 0, 0, S::npos);
+ test(S(""), "oselktgbca", 0, 1, S::npos);
+ test(S(""), "eqgaplhckj", 0, 5, S::npos);
+ test(S(""), "bjahtcmnlp", 0, 9, S::npos);
+ test(S(""), "hjlcmgpket", 0, 10, S::npos);
+ test(S(""), "htaobedqikfplcgjsmrn", 0, 0, S::npos);
+ test(S(""), "hpqiarojkcdlsgnmfetb", 0, 1, S::npos);
+ test(S(""), "dfkaprhjloqetcsimnbg", 0, 10, S::npos);
+ test(S(""), "ihqrfebgadntlpmjksoc", 0, 19, S::npos);
+ test(S(""), "ngtjfcalbseiqrphmkdo", 0, 20, S::npos);
+ test(S(""), "", 1, 0, S::npos);
+ test(S(""), "lbtqd", 1, 0, S::npos);
+ test(S(""), "tboim", 1, 1, S::npos);
+ test(S(""), "slcer", 1, 2, S::npos);
+ test(S(""), "cbjfs", 1, 4, S::npos);
+ test(S(""), "aqibs", 1, 5, S::npos);
+ test(S(""), "gtfblmqinc", 1, 0, S::npos);
+ test(S(""), "mkqpbtdalg", 1, 1, S::npos);
+ test(S(""), "kphatlimcd", 1, 5, S::npos);
+ test(S(""), "pblasqogic", 1, 9, S::npos);
+ test(S(""), "arosdhcfme", 1, 10, S::npos);
+ test(S(""), "blkhjeogicatqfnpdmsr", 1, 0, S::npos);
+ test(S(""), "bmhineprjcoadgstflqk", 1, 1, S::npos);
+ test(S(""), "djkqcmetslnghpbarfoi", 1, 10, S::npos);
+ test(S(""), "lgokshjtpbemarcdqnfi", 1, 19, S::npos);
+ test(S(""), "bqjhtkfepimcnsgrlado", 1, 20, S::npos);
+ test(S("eaint"), "", 0, 0, 0);
+ test(S("binja"), "gfsrt", 0, 0, 0);
+ test(S("latkm"), "pfsoc", 0, 1, 0);
+ test(S("lecfr"), "tpflm", 0, 2, 0);
+ test(S("eqkst"), "sgkec", 0, 4, 1);
+ test(S("cdafr"), "romds", 0, 5, 0);
+ test(S("prbhe"), "qhjistlgmr", 0, 0, 0);
+ test(S("lbisk"), "pedfirsglo", 0, 1, 0);
+ test(S("hrlpd"), "aqcoslgrmk", 0, 5, 0);
+ test(S("ehmja"), "dabckmepqj", 0, 9, 1);
+ test(S("mhqgd"), "pqscrjthli", 0, 10, 0);
+ test(S("tgklq"), "kfphdcsjqmobliagtren", 0, 0, 0);
+ test(S("bocjs"), "rokpefncljibsdhqtagm", 0, 1, 0);
+ test(S("grbsd"), "afionmkphlebtcjqsgrd", 0, 10, 0);
+ test(S("ofjqr"), "aenmqplidhkofrjbctsg", 0, 19, S::npos);
+ test(S("btlfi"), "osjmbtcadhiklegrpqnf", 0, 20, S::npos);
+ test(S("clrgb"), "", 1, 0, 1);
+ test(S("tjmek"), "osmia", 1, 0, 1);
+ test(S("bgstp"), "ckonl", 1, 1, 1);
+ test(S("hstrk"), "ilcaj", 1, 2, 1);
+ test(S("kmspj"), "lasiq", 1, 4, 1);
+ test(S("tjboh"), "kfqmr", 1, 5, 1);
+ test(S("ilbcj"), "klnitfaobg", 1, 0, 1);
+ test(S("jkngf"), "gjhmdlqikp", 1, 1, 1);
+ test(S("gfcql"), "skbgtahqej", 1, 5, 1);
+ test(S("dqtlg"), "bjsdgtlpkf", 1, 9, 1);
+ test(S("bthpg"), "bjgfmnlkio", 1, 10, 1);
+ test(S("dgsnq"), "lbhepotfsjdqigcnamkr", 1, 0, 1);
+ test(S("rmfhp"), "tebangckmpsrqdlfojhi", 1, 1, 1);
+ test(S("jfdam"), "joflqbdkhtegimscpanr", 1, 10, 3);
+ test(S("edapb"), "adpmcohetfbsrjinlqkg", 1, 19, S::npos);
+ test(S("brfsm"), "iacldqjpfnogbsrhmetk", 1, 20, S::npos);
+ test(S("ndrhl"), "", 2, 0, 2);
+ test(S("mrecp"), "otkgb", 2, 0, 2);
+ test(S("qlasf"), "cqsjl", 2, 1, 2);
+ test(S("smaqd"), "dpifl", 2, 2, 2);
+ test(S("hjeni"), "oapht", 2, 4, 2);
+ test(S("ocmfj"), "cifts", 2, 5, 2);
+ test(S("hmftq"), "nmsckbgalo", 2, 0, 2);
+ test(S("fklad"), "tpksqhamle", 2, 1, 2);
+ test(S("dirnm"), "tpdrchmkji", 2, 5, 3);
+ test(S("hrgdc"), "ijagfkblst", 2, 9, 3);
+ test(S("ifakg"), "kpocsignjb", 2, 10, 2);
+ test(S("ebrgd"), "pecqtkjsnbdrialgmohf", 2, 0, 2);
+ test(S("rcjml"), "aiortphfcmkjebgsndql", 2, 1, 2);
+ test(S("peqmt"), "sdbkeamglhipojqftrcn", 2, 10, 2);
+ test(S("frehn"), "ljqncehgmfktroapidbs", 2, 19, S::npos);
+ test(S("tqolf"), "rtcfodilamkbenjghqps", 2, 20, S::npos);
+ test(S("cjgao"), "", 4, 0, 4);
+ test(S("kjplq"), "mabns", 4, 0, 4);
+ test(S("herni"), "bdnrp", 4, 1, 4);
+ test(S("tadrb"), "scidp", 4, 2, 4);
+ test(S("pkfeo"), "agbjl", 4, 4, 4);
+ test(S("hoser"), "jfmpr", 4, 5, S::npos);
+ test(S("kgrsp"), "rbpefghsmj", 4, 0, 4);
+ test(S("pgejb"), "apsfntdoqc", 4, 1, 4);
+ test(S("thlnq"), "ndkjeisgcl", 4, 5, 4);
+ test(S("nbmit"), "rnfpqatdeo", 4, 9, S::npos);
+ test(S("jgmib"), "bntjlqrfik", 4, 10, S::npos);
+ test(S("ncrfj"), "kcrtmpolnaqejghsfdbi", 4, 0, 4);
+ test(S("ncsik"), "lobheanpkmqidsrtcfgj", 4, 1, 4);
+ test(S("sgbfh"), "athdkljcnreqbgpmisof", 4, 10, S::npos);
+ test(S("dktbn"), "qkdmjialrscpbhefgont", 4, 19, S::npos);
+ test(S("fthqm"), "dmasojntqleribkgfchp", 4, 20, S::npos);
+ test(S("klopi"), "", 5, 0, S::npos);
+ test(S("dajhn"), "psthd", 5, 0, S::npos);
+ test(S("jbgno"), "rpmjd", 5, 1, S::npos);
+ test(S("hkjae"), "dfsmk", 5, 2, S::npos);
}
template <class S>
-TEST_CONSTEXPR_CXX20 void test1()
-{
- test(S("gbhqo"), "skqne", 5, 4, S::npos);
- test(S("ktdor"), "kipnf", 5, 5, S::npos);
- test(S("ldprn"), "hmrnqdgifl", 5, 0, S::npos);
- test(S("egmjk"), "fsmjcdairn", 5, 1, S::npos);
- test(S("armql"), "pcdgltbrfj", 5, 5, S::npos);
- test(S("cdhjo"), "aekfctpirg", 5, 9, S::npos);
- test(S("jcons"), "ledihrsgpf", 5, 10, S::npos);
- test(S("cbrkp"), "mqcklahsbtirgopefndj", 5, 0, S::npos);
- test(S("fhgna"), "kmlthaoqgecrnpdbjfis", 5, 1, S::npos);
- test(S("ejfcd"), "sfhbamcdptojlkrenqgi", 5, 10, S::npos);
- test(S("kqjhe"), "pbniofmcedrkhlstgaqj", 5, 19, S::npos);
- test(S("pbdjl"), "mongjratcskbhqiepfdl", 5, 20, S::npos);
- test(S("gajqn"), "", 6, 0, S::npos);
- test(S("stedk"), "hrnat", 6, 0, S::npos);
- test(S("tjkaf"), "gsqdt", 6, 1, S::npos);
- test(S("dthpe"), "bspkd", 6, 2, S::npos);
- test(S("klhde"), "ohcmb", 6, 4, S::npos);
- test(S("bhlki"), "heatr", 6, 5, S::npos);
- test(S("lqmoh"), "pmblckedfn", 6, 0, S::npos);
- test(S("mtqin"), "aceqmsrbik", 6, 1, S::npos);
- test(S("dpqbr"), "lmbtdehjrn", 6, 5, S::npos);
- test(S("kdhmo"), "teqmcrlgib", 6, 9, S::npos);
- test(S("jblqp"), "njolbmspac", 6, 10, S::npos);
- test(S("qmjgl"), "pofnhidklamecrbqjgst", 6, 0, S::npos);
- test(S("rothp"), "jbhckmtgrqnosafedpli", 6, 1, S::npos);
- test(S("ghknq"), "dobntpmqklicsahgjerf", 6, 10, S::npos);
- test(S("eopfi"), "tpdshainjkbfoemlrgcq", 6, 19, S::npos);
- test(S("dsnmg"), "oldpfgeakrnitscbjmqh", 6, 20, S::npos);
- test(S("jnkrfhotgl"), "", 0, 0, 0);
- test(S("dltjfngbko"), "rqegt", 0, 0, 0);
- test(S("bmjlpkiqde"), "dashm", 0, 1, 0);
- test(S("skrflobnqm"), "jqirk", 0, 2, 0);
- test(S("jkpldtshrm"), "rckeg", 0, 4, 0);
- test(S("ghasdbnjqo"), "jscie", 0, 5, 0);
- test(S("igrkhpbqjt"), "efsphndliq", 0, 0, 0);
- test(S("ikthdgcamf"), "gdicosleja", 0, 1, 0);
- test(S("pcofgeniam"), "qcpjibosfl", 0, 5, 2);
- test(S("rlfjgesqhc"), "lrhmefnjcq", 0, 9, 4);
- test(S("itphbqsker"), "dtablcrseo", 0, 10, 0);
- test(S("skjafcirqm"), "apckjsftedbhgomrnilq", 0, 0, 0);
- test(S("tcqomarsfd"), "pcbrgflehjtiadnsokqm", 0, 1, 0);
- test(S("rocfeldqpk"), "nsiadegjklhobrmtqcpf", 0, 10, 0);
- test(S("cfpegndlkt"), "cpmajdqnolikhgsbretf", 0, 19, 1);
- test(S("fqbtnkeasj"), "jcflkntmgiqrphdosaeb", 0, 20, S::npos);
- test(S("shbcqnmoar"), "", 1, 0, 1);
- test(S("bdoshlmfin"), "ontrs", 1, 0, 1);
- test(S("khfrebnsgq"), "pfkna", 1, 1, 1);
- test(S("getcrsaoji"), "ekosa", 1, 2, 2);
- test(S("fjiknedcpq"), "anqhk", 1, 4, 1);
- test(S("tkejgnafrm"), "jekca", 1, 5, 4);
- test(S("jnakolqrde"), "ikemsjgacf", 1, 0, 1);
- test(S("lcjptsmgbe"), "arolgsjkhm", 1, 1, 1);
- test(S("itfsmcjorl"), "oftkbldhre", 1, 5, 3);
- test(S("omchkfrjea"), "gbkqdoeftl", 1, 9, 1);
- test(S("cigfqkated"), "sqcflrgtim", 1, 10, 5);
- test(S("tscenjikml"), "fmhbkislrjdpanogqcet", 1, 0, 1);
- test(S("qcpaemsinf"), "rnioadktqlgpbcjsmhef", 1, 1, 1);
- test(S("gltkojeipd"), "oakgtnldpsefihqmjcbr", 1, 10, 5);
- test(S("qistfrgnmp"), "gbnaelosidmcjqktfhpr", 1, 19, 5);
- test(S("bdnpfcqaem"), "akbripjhlosndcmqgfet", 1, 20, S::npos);
- test(S("ectnhskflp"), "", 5, 0, 5);
- test(S("fgtianblpq"), "pijag", 5, 0, 5);
- test(S("mfeqklirnh"), "jrckd", 5, 1, 5);
- test(S("astedncjhk"), "qcloh", 5, 2, 5);
- test(S("fhlqgcajbr"), "thlmp", 5, 4, 5);
- test(S("epfhocmdng"), "qidmo", 5, 5, 5);
- test(S("apcnsibger"), "lnegpsjqrd", 5, 0, 5);
- test(S("aqkocrbign"), "rjqdablmfs", 5, 1, 6);
- test(S("ijsmdtqgce"), "enkgpbsjaq", 5, 5, 5);
- test(S("clobgsrken"), "kdsgoaijfh", 5, 9, 6);
- test(S("jbhcfposld"), "trfqgmckbe", 5, 10, 5);
- test(S("oqnpblhide"), "igetsracjfkdnpoblhqm", 5, 0, 5);
- test(S("lroeasctif"), "nqctfaogirshlekbdjpm", 5, 1, 5);
- test(S("bpjlgmiedh"), "csehfgomljdqinbartkp", 5, 10, 6);
- test(S("pamkeoidrj"), "qahoegcmplkfsjbdnitr", 5, 19, 8);
- test(S("espogqbthk"), "dpteiajrqmsognhlfbkc", 5, 20, S::npos);
- test(S("shoiedtcjb"), "", 9, 0, 9);
- test(S("ebcinjgads"), "tqbnh", 9, 0, 9);
- test(S("dqmregkcfl"), "akmle", 9, 1, 9);
- test(S("ngcrieqajf"), "iqfkm", 9, 2, 9);
- test(S("qosmilgnjb"), "tqjsr", 9, 4, 9);
- test(S("ikabsjtdfl"), "jplqg", 9, 5, S::npos);
- test(S("ersmicafdh"), "oilnrbcgtj", 9, 0, 9);
- test(S("fdnplotmgh"), "morkglpesn", 9, 1, 9);
- test(S("fdbicojerm"), "dmicerngat", 9, 5, S::npos);
- test(S("mbtafndjcq"), "radgeskbtc", 9, 9, 9);
- test(S("mlenkpfdtc"), "ljikprsmqo", 9, 10, 9);
- test(S("ahlcifdqgs"), "trqihkcgsjamfdbolnpe", 9, 0, 9);
- test(S("bgjemaltks"), "lqmthbsrekajgnofcipd", 9, 1, 9);
- test(S("pdhslbqrfc"), "jtalmedribkgqsopcnfh", 9, 10, 9);
- test(S("dirhtsnjkc"), "spqfoiclmtagejbndkrh", 9, 19, S::npos);
- test(S("dlroktbcja"), "nmotklspigjrdhcfaebq", 9, 20, S::npos);
- test(S("ncjpmaekbs"), "", 10, 0, S::npos);
- test(S("hlbosgmrak"), "hpmsd", 10, 0, S::npos);
- test(S("pqfhsgilen"), "qnpor", 10, 1, S::npos);
- test(S("gqtjsbdckh"), "otdma", 10, 2, S::npos);
- test(S("cfkqpjlegi"), "efhjg", 10, 4, S::npos);
- test(S("beanrfodgj"), "odpte", 10, 5, S::npos);
- test(S("adtkqpbjfi"), "bctdgfmolr", 10, 0, S::npos);
- test(S("iomkfthagj"), "oaklidrbqg", 10, 1, S::npos);
+TEST_CONSTEXPR_CXX20 void test1() {
+ test(S("gbhqo"), "skqne", 5, 4, S::npos);
+ test(S("ktdor"), "kipnf", 5, 5, S::npos);
+ test(S("ldprn"), "hmrnqdgifl", 5, 0, S::npos);
+ test(S("egmjk"), "fsmjcdairn", 5, 1, S::npos);
+ test(S("armql"), "pcdgltbrfj", 5, 5, S::npos);
+ test(S("cdhjo"), "aekfctpirg", 5, 9, S::npos);
+ test(S("jcons"), "ledihrsgpf", 5, 10, S::npos);
+ test(S("cbrkp"), "mqcklahsbtirgopefndj", 5, 0, S::npos);
+ test(S("fhgna"), "kmlthaoqgecrnpdbjfis", 5, 1, S::npos);
+ test(S("ejfcd"), "sfhbamcdptojlkrenqgi", 5, 10, S::npos);
+ test(S("kqjhe"), "pbniofmcedrkhlstgaqj", 5, 19, S::npos);
+ test(S("pbdjl"), "mongjratcskbhqiepfdl", 5, 20, S::npos);
+ test(S("gajqn"), "", 6, 0, S::npos);
+ test(S("stedk"), "hrnat", 6, 0, S::npos);
+ test(S("tjkaf"), "gsqdt", 6, 1, S::npos);
+ test(S("dthpe"), "bspkd", 6, 2, S::npos);
+ test(S("klhde"), "ohcmb", 6, 4, S::npos);
+ test(S("bhlki"), "heatr", 6, 5, S::npos);
+ test(S("lqmoh"), "pmblckedfn", 6, 0, S::npos);
+ test(S("mtqin"), "aceqmsrbik", 6, 1, S::npos);
+ test(S("dpqbr"), "lmbtdehjrn", 6, 5, S::npos);
+ test(S("kdhmo"), "teqmcrlgib", 6, 9, S::npos);
+ test(S("jblqp"), "njolbmspac", 6, 10, S::npos);
+ test(S("qmjgl"), "pofnhidklamecrbqjgst", 6, 0, S::npos);
+ test(S("rothp"), "jbhckmtgrqnosafedpli", 6, 1, S::npos);
+ test(S("ghknq"), "dobntpmqklicsahgjerf", 6, 10, S::npos);
+ test(S("eopfi"), "tpdshainjkbfoemlrgcq", 6, 19, S::npos);
+ test(S("dsnmg"), "oldpfgeakrnitscbjmqh", 6, 20, S::npos);
+ test(S("jnkrfhotgl"), "", 0, 0, 0);
+ test(S("dltjfngbko"), "rqegt", 0, 0, 0);
+ test(S("bmjlpkiqde"), "dashm", 0, 1, 0);
+ test(S("skrflobnqm"), "jqirk", 0, 2, 0);
+ test(S("jkpldtshrm"), "rckeg", 0, 4, 0);
+ test(S("ghasdbnjqo"), "jscie", 0, 5, 0);
+ test(S("igrkhpbqjt"), "efsphndliq", 0, 0, 0);
+ test(S("ikthdgcamf"), "gdicosleja", 0, 1, 0);
+ test(S("pcofgeniam"), "qcpjibosfl", 0, 5, 2);
+ test(S("rlfjgesqhc"), "lrhmefnjcq", 0, 9, 4);
+ test(S("itphbqsker"), "dtablcrseo", 0, 10, 0);
+ test(S("skjafcirqm"), "apckjsftedbhgomrnilq", 0, 0, 0);
+ test(S("tcqomarsfd"), "pcbrgflehjtiadnsokqm", 0, 1, 0);
+ test(S("rocfeldqpk"), "nsiadegjklhobrmtqcpf", 0, 10, 0);
+ test(S("cfpegndlkt"), "cpmajdqnolikhgsbretf", 0, 19, 1);
+ test(S("fqbtnkeasj"), "jcflkntmgiqrphdosaeb", 0, 20, S::npos);
+ test(S("shbcqnmoar"), "", 1, 0, 1);
+ test(S("bdoshlmfin"), "ontrs", 1, 0, 1);
+ test(S("khfrebnsgq"), "pfkna", 1, 1, 1);
+ test(S("getcrsaoji"), "ekosa", 1, 2, 2);
+ test(S("fjiknedcpq"), "anqhk", 1, 4, 1);
+ test(S("tkejgnafrm"), "jekca", 1, 5, 4);
+ test(S("jnakolqrde"), "ikemsjgacf", 1, 0, 1);
+ test(S("lcjptsmgbe"), "arolgsjkhm", 1, 1, 1);
+ test(S("itfsmcjorl"), "oftkbldhre", 1, 5, 3);
+ test(S("omchkfrjea"), "gbkqdoeftl", 1, 9, 1);
+ test(S("cigfqkated"), "sqcflrgtim", 1, 10, 5);
+ test(S("tscenjikml"), "fmhbkislrjdpanogqcet", 1, 0, 1);
+ test(S("qcpaemsinf"), "rnioadktqlgpbcjsmhef", 1, 1, 1);
+ test(S("gltkojeipd"), "oakgtnldpsefihqmjcbr", 1, 10, 5);
+ test(S("qistfrgnmp"), "gbnaelosidmcjqktfhpr", 1, 19, 5);
+ test(S("bdnpfcqaem"), "akbripjhlosndcmqgfet", 1, 20, S::npos);
+ test(S("ectnhskflp"), "", 5, 0, 5);
+ test(S("fgtianblpq"), "pijag", 5, 0, 5);
+ test(S("mfeqklirnh"), "jrckd", 5, 1, 5);
+ test(S("astedncjhk"), "qcloh", 5, 2, 5);
+ test(S("fhlqgcajbr"), "thlmp", 5, 4, 5);
+ test(S("epfhocmdng"), "qidmo", 5, 5, 5);
+ test(S("apcnsibger"), "lnegpsjqrd", 5, 0, 5);
+ test(S("aqkocrbign"), "rjqdablmfs", 5, 1, 6);
+ test(S("ijsmdtqgce"), "enkgpbsjaq", 5, 5, 5);
+ test(S("clobgsrken"), "kdsgoaijfh", 5, 9, 6);
+ test(S("jbhcfposld"), "trfqgmckbe", 5, 10, 5);
+ test(S("oqnpblhide"), "igetsracjfkdnpoblhqm", 5, 0, 5);
+ test(S("lroeasctif"), "nqctfaogirshlekbdjpm", 5, 1, 5);
+ test(S("bpjlgmiedh"), "csehfgomljdqinbartkp", 5, 10, 6);
+ test(S("pamkeoidrj"), "qahoegcmplkfsjbdnitr", 5, 19, 8);
+ test(S("espogqbthk"), "dpteiajrqmsognhlfbkc", 5, 20, S::npos);
+ test(S("shoiedtcjb"), "", 9, 0, 9);
+ test(S("ebcinjgads"), "tqbnh", 9, 0, 9);
+ test(S("dqmregkcfl"), "akmle", 9, 1, 9);
+ test(S("ngcrieqajf"), "iqfkm", 9, 2, 9);
+ test(S("qosmilgnjb"), "tqjsr", 9, 4, 9);
+ test(S("ikabsjtdfl"), "jplqg", 9, 5, S::npos);
+ test(S("ersmicafdh"), "oilnrbcgtj", 9, 0, 9);
+ test(S("fdnplotmgh"), "morkglpesn", 9, 1, 9);
+ test(S("fdbicojerm"), "dmicerngat", 9, 5, S::npos);
+ test(S("mbtafndjcq"), "radgeskbtc", 9, 9, 9);
+ test(S("mlenkpfdtc"), "ljikprsmqo", 9, 10, 9);
+ test(S("ahlcifdqgs"), "trqihkcgsjamfdbolnpe", 9, 0, 9);
+ test(S("bgjemaltks"), "lqmthbsrekajgnofcipd", 9, 1, 9);
+ test(S("pdhslbqrfc"), "jtalmedribkgqsopcnfh", 9, 10, 9);
+ test(S("dirhtsnjkc"), "spqfoiclmtagejbndkrh", 9, 19, S::npos);
+ test(S("dlroktbcja"), "nmotklspigjrdhcfaebq", 9, 20, S::npos);
+ test(S("ncjpmaekbs"), "", 10, 0, S::npos);
+ test(S("hlbosgmrak"), "hpmsd", 10, 0, S::npos);
+ test(S("pqfhsgilen"), "qnpor", 10, 1, S::npos);
+ test(S("gqtjsbdckh"), "otdma", 10, 2, S::npos);
+ test(S("cfkqpjlegi"), "efhjg", 10, 4, S::npos);
+ test(S("beanrfodgj"), "odpte", 10, 5, S::npos);
+ test(S("adtkqpbjfi"), "bctdgfmolr", 10, 0, S::npos);
+ test(S("iomkfthagj"), "oaklidrbqg", 10, 1, S::npos);
}
template <class S>
-TEST_CONSTEXPR_CXX20 void test2()
-{
- test(S("sdpcilonqj"), "dnjfsagktr", 10, 5, S::npos);
- test(S("gtfbdkqeml"), "nejaktmiqg", 10, 9, S::npos);
- test(S("bmeqgcdorj"), "pjqonlebsf", 10, 10, S::npos);
- test(S("etqlcanmob"), "dshmnbtolcjepgaikfqr", 10, 0, S::npos);
- test(S("roqmkbdtia"), "iogfhpabtjkqlrnemcds", 10, 1, S::npos);
- test(S("kadsithljf"), "ngridfabjsecpqltkmoh", 10, 10, S::npos);
- test(S("sgtkpbfdmh"), "athmknplcgofrqejsdib", 10, 19, S::npos);
- test(S("qgmetnabkl"), "ldobhmqcafnjtkeisgrp", 10, 20, S::npos);
- test(S("cqjohampgd"), "", 11, 0, S::npos);
- test(S("hobitmpsan"), "aocjb", 11, 0, S::npos);
- test(S("tjehkpsalm"), "jbrnk", 11, 1, S::npos);
- test(S("ngfbojitcl"), "tqedg", 11, 2, S::npos);
- test(S("rcfkdbhgjo"), "nqskp", 11, 4, S::npos);
- test(S("qghptonrea"), "eaqkl", 11, 5, S::npos);
- test(S("hnprfgqjdl"), "reaoicljqm", 11, 0, S::npos);
- test(S("hlmgabenti"), "lsftgajqpm", 11, 1, S::npos);
- test(S("ofcjanmrbs"), "rlpfogmits", 11, 5, S::npos);
- test(S("jqedtkornm"), "shkncmiaqj", 11, 9, S::npos);
- test(S("rfedlasjmg"), "fpnatrhqgs", 11, 10, S::npos);
- test(S("talpqjsgkm"), "sjclemqhnpdbgikarfot", 11, 0, S::npos);
- test(S("lrkcbtqpie"), "otcmedjikgsfnqbrhpla", 11, 1, S::npos);
- test(S("cipogdskjf"), "bonsaefdqiprkhlgtjcm", 11, 10, S::npos);
- test(S("nqedcojahi"), "egpscmahijlfnkrodqtb", 11, 19, S::npos);
- test(S("hefnrkmctj"), "kmqbfepjthgilscrndoa", 11, 20, S::npos);
- test(S("atqirnmekfjolhpdsgcb"), "", 0, 0, 0);
- test(S("echfkmlpribjnqsaogtd"), "prboq", 0, 0, 0);
- test(S("qnhiftdgcleajbpkrosm"), "fjcqh", 0, 1, 0);
- test(S("chamfknorbedjitgslpq"), "fmosa", 0, 2, 0);
- test(S("njhqpibfmtlkaecdrgso"), "qdbok", 0, 4, 0);
- test(S("ebnghfsqkprmdcljoiat"), "amslg", 0, 5, 0);
- test(S("letjomsgihfrpqbkancd"), "smpltjneqb", 0, 0, 0);
- test(S("nblgoipcrqeaktshjdmf"), "flitskrnge", 0, 1, 0);
- test(S("cehkbngtjoiflqapsmrd"), "pgqihmlbef", 0, 5, 0);
- test(S("mignapfoklbhcqjetdrs"), "cfpdqjtgsb", 0, 9, 0);
- test(S("ceatbhlsqjgpnokfrmdi"), "htpsiaflom", 0, 10, 0);
- test(S("ocihkjgrdelpfnmastqb"), "kpjfiaceghsrdtlbnomq", 0, 0, 0);
- test(S("noelgschdtbrjfmiqkap"), "qhtbomidljgafneksprc", 0, 1, 0);
- test(S("dkclqfombepritjnghas"), "nhtjobkcefldimpsaqgr", 0, 10, 0);
- test(S("miklnresdgbhqcojftap"), "prabcjfqnoeskilmtgdh", 0, 19, 11);
- test(S("htbcigojaqmdkfrnlsep"), "dtrgmchilkasqoebfpjn", 0, 20, S::npos);
- test(S("febhmqtjanokscdirpgl"), "", 1, 0, 1);
- test(S("loakbsqjpcrdhftniegm"), "sqome", 1, 0, 1);
- test(S("reagphsqflbitdcjmkno"), "smfte", 1, 1, 1);
- test(S("jitlfrqemsdhkopncabg"), "ciboh", 1, 2, 2);
- test(S("mhtaepscdnrjqgbkifol"), "haois", 1, 4, 2);
- test(S("tocesrfmnglpbjihqadk"), "abfki", 1, 5, 1);
- test(S("lpfmctjrhdagneskbqoi"), "frdkocntmq", 1, 0, 1);
- test(S("lsmqaepkdhncirbtjfgo"), "oasbpedlnr", 1, 1, 1);
- test(S("epoiqmtldrabnkjhcfsg"), "kltqmhgand", 1, 5, 1);
- test(S("emgasrilpknqojhtbdcf"), "gdtfjchpmr", 1, 9, 3);
- test(S("hnfiagdpcklrjetqbsom"), "ponmcqblet", 1, 10, 2);
- test(S("nsdfebgajhmtricpoklq"), "sgphqdnofeiklatbcmjr", 1, 0, 1);
- test(S("atjgfsdlpobmeiqhncrk"), "ljqprsmigtfoneadckbh", 1, 1, 1);
- test(S("sitodfgnrejlahcbmqkp"), "ligeojhafnkmrcsqtbdp", 1, 10, 2);
- test(S("fraghmbiceknltjpqosd"), "lsimqfnjarbopedkhcgt", 1, 19, 13);
- test(S("pmafenlhqtdbkirjsogc"), "abedmfjlghniorcqptks", 1, 20, S::npos);
- test(S("pihgmoeqtnakrjslcbfd"), "", 10, 0, 10);
- test(S("gjdkeprctqblnhiafsom"), "hqtoa", 10, 0, 10);
- test(S("mkpnblfdsahrcqijteog"), "cahif", 10, 1, 10);
- test(S("gckarqnelodfjhmbptis"), "kehis", 10, 2, 10);
- test(S("gqpskidtbclomahnrjfe"), "kdlmh", 10, 4, 11);
- test(S("pkldjsqrfgitbhmaecno"), "paeql", 10, 5, 10);
- test(S("aftsijrbeklnmcdqhgop"), "aghoqiefnb", 10, 0, 10);
- test(S("mtlgdrhafjkbiepqnsoc"), "jrbqaikpdo", 10, 1, 10);
- test(S("pqgirnaefthokdmbsclj"), "smjonaeqcl", 10, 5, 10);
- test(S("kpdbgjmtherlsfcqoina"), "eqbdrkcfah", 10, 9, 11);
- test(S("jrlbothiknqmdgcfasep"), "kapmsienhf", 10, 10, 10);
- test(S("mjogldqferckabinptsh"), "jpqotrlenfcsbhkaimdg", 10, 0, 10);
- test(S("apoklnefbhmgqcdrisjt"), "jlbmhnfgtcqprikeados", 10, 1, 10);
- test(S("ifeopcnrjbhkdgatmqls"), "stgbhfmdaljnpqoicker", 10, 10, 11);
- test(S("ckqhaiesmjdnrgolbtpf"), "oihcetflbjagdsrkmqpn", 10, 19, 11);
- test(S("bnlgapfimcoterskqdjh"), "adtclebmnpjsrqfkigoh", 10, 20, S::npos);
- test(S("kgdlrobpmjcthqsafeni"), "", 19, 0, 19);
- test(S("dfkechomjapgnslbtqir"), "beafg", 19, 0, 19);
- test(S("rloadknfbqtgmhcsipje"), "iclat", 19, 1, 19);
- test(S("mgjhkolrnadqbpetcifs"), "rkhnf", 19, 2, 19);
- test(S("cmlfakiojdrgtbsphqen"), "clshq", 19, 4, 19);
- test(S("kghbfipeomsntdalrqjc"), "dtcoj", 19, 5, S::npos);
- test(S("eldiqckrnmtasbghjfpo"), "rqosnjmfth", 19, 0, 19);
- test(S("abqjcfedgotihlnspkrm"), "siatdfqglh", 19, 1, 19);
- test(S("qfbadrtjsimkolcenhpg"), "mrlshtpgjq", 19, 5, 19);
- test(S("abseghclkjqifmtodrnp"), "adlcskgqjt", 19, 9, 19);
- test(S("ibmsnlrjefhtdokacqpg"), "drshcjknaf", 19, 10, 19);
- test(S("mrkfciqjebaponsthldg"), "etsaqroinghpkjdlfcbm", 19, 0, 19);
- test(S("mjkticdeoqshpalrfbgn"), "sgepdnkqliambtrocfhj", 19, 1, 19);
- test(S("rqnoclbdejgiphtfsakm"), "nlmcjaqgbsortfdihkpe", 19, 10, S::npos);
- test(S("plkqbhmtfaeodjcrsing"), "racfnpmosldibqkghjet", 19, 19, S::npos);
- test(S("oegalhmstjrfickpbndq"), "fjhdsctkqeiolagrnmbp", 19, 20, S::npos);
- test(S("rdtgjcaohpblniekmsfq"), "", 20, 0, S::npos);
- test(S("ofkqbnjetrmsaidphglc"), "ejanp", 20, 0, S::npos);
- test(S("grkpahljcftesdmonqib"), "odife", 20, 1, S::npos);
- test(S("jimlgbhfqkteospardcn"), "okaqd", 20, 2, S::npos);
- test(S("gftenihpmslrjkqadcob"), "lcdbi", 20, 4, S::npos);
- test(S("bmhldogtckrfsanijepq"), "fsqbj", 20, 5, S::npos);
- test(S("nfqkrpjdesabgtlcmoih"), "bigdomnplq", 20, 0, S::npos);
- test(S("focalnrpiqmdkstehbjg"), "apiblotgcd", 20, 1, S::npos);
- test(S("rhqdspkmebiflcotnjga"), "acfhdenops", 20, 5, S::npos);
- test(S("rahdtmsckfboqlpniegj"), "jopdeamcrk", 20, 9, S::npos);
- test(S("fbkeiopclstmdqranjhg"), "trqncbkgmh", 20, 10, S::npos);
- test(S("lifhpdgmbconstjeqark"), "tomglrkencbsfjqpihda", 20, 0, S::npos);
+TEST_CONSTEXPR_CXX20 void test2() {
+ test(S("sdpcilonqj"), "dnjfsagktr", 10, 5, S::npos);
+ test(S("gtfbdkqeml"), "nejaktmiqg", 10, 9, S::npos);
+ test(S("bmeqgcdorj"), "pjqonlebsf", 10, 10, S::npos);
+ test(S("etqlcanmob"), "dshmnbtolcjepgaikfqr", 10, 0, S::npos);
+ test(S("roqmkbdtia"), "iogfhpabtjkqlrnemcds", 10, 1, S::npos);
+ test(S("kadsithljf"), "ngridfabjsecpqltkmoh", 10, 10, S::npos);
+ test(S("sgtkpbfdmh"), "athmknplcgofrqejsdib", 10, 19, S::npos);
+ test(S("qgmetnabkl"), "ldobhmqcafnjtkeisgrp", 10, 20, S::npos);
+ test(S("cqjohampgd"), "", 11, 0, S::npos);
+ test(S("hobitmpsan"), "aocjb", 11, 0, S::npos);
+ test(S("tjehkpsalm"), "jbrnk", 11, 1, S::npos);
+ test(S("ngfbojitcl"), "tqedg", 11, 2, S::npos);
+ test(S("rcfkdbhgjo"), "nqskp", 11, 4, S::npos);
+ test(S("qghptonrea"), "eaqkl", 11, 5, S::npos);
+ test(S("hnprfgqjdl"), "reaoicljqm", 11, 0, S::npos);
+ test(S("hlmgabenti"), "lsftgajqpm", 11, 1, S::npos);
+ test(S("ofcjanmrbs"), "rlpfogmits", 11, 5, S::npos);
+ test(S("jqedtkornm"), "shkncmiaqj", 11, 9, S::npos);
+ test(S("rfedlasjmg"), "fpnatrhqgs", 11, 10, S::npos);
+ test(S("talpqjsgkm"), "sjclemqhnpdbgikarfot", 11, 0, S::npos);
+ test(S("lrkcbtqpie"), "otcmedjikgsfnqbrhpla", 11, 1, S::npos);
+ test(S("cipogdskjf"), "bonsaefdqiprkhlgtjcm", 11, 10, S::npos);
+ test(S("nqedcojahi"), "egpscmahijlfnkrodqtb", 11, 19, S::npos);
+ test(S("hefnrkmctj"), "kmqbfepjthgilscrndoa", 11, 20, S::npos);
+ test(S("atqirnmekfjolhpdsgcb"), "", 0, 0, 0);
+ test(S("echfkmlpribjnqsaogtd"), "prboq", 0, 0, 0);
+ test(S("qnhiftdgcleajbpkrosm"), "fjcqh", 0, 1, 0);
+ test(S("chamfknorbedjitgslpq"), "fmosa", 0, 2, 0);
+ test(S("njhqpibfmtlkaecdrgso"), "qdbok", 0, 4, 0);
+ test(S("ebnghfsqkprmdcljoiat"), "amslg", 0, 5, 0);
+ test(S("letjomsgihfrpqbkancd"), "smpltjneqb", 0, 0, 0);
+ test(S("nblgoipcrqeaktshjdmf"), "flitskrnge", 0, 1, 0);
+ test(S("cehkbngtjoiflqapsmrd"), "pgqihmlbef", 0, 5, 0);
+ test(S("mignapfoklbhcqjetdrs"), "cfpdqjtgsb", 0, 9, 0);
+ test(S("ceatbhlsqjgpnokfrmdi"), "htpsiaflom", 0, 10, 0);
+ test(S("ocihkjgrdelpfnmastqb"), "kpjfiaceghsrdtlbnomq", 0, 0, 0);
+ test(S("noelgschdtbrjfmiqkap"), "qhtbomidljgafneksprc", 0, 1, 0);
+ test(S("dkclqfombepritjnghas"), "nhtjobkcefldimpsaqgr", 0, 10, 0);
+ test(S("miklnresdgbhqcojftap"), "prabcjfqnoeskilmtgdh", 0, 19, 11);
+ test(S("htbcigojaqmdkfrnlsep"), "dtrgmchilkasqoebfpjn", 0, 20, S::npos);
+ test(S("febhmqtjanokscdirpgl"), "", 1, 0, 1);
+ test(S("loakbsqjpcrdhftniegm"), "sqome", 1, 0, 1);
+ test(S("reagphsqflbitdcjmkno"), "smfte", 1, 1, 1);
+ test(S("jitlfrqemsdhkopncabg"), "ciboh", 1, 2, 2);
+ test(S("mhtaepscdnrjqgbkifol"), "haois", 1, 4, 2);
+ test(S("tocesrfmnglpbjihqadk"), "abfki", 1, 5, 1);
+ test(S("lpfmctjrhdagneskbqoi"), "frdkocntmq", 1, 0, 1);
+ test(S("lsmqaepkdhncirbtjfgo"), "oasbpedlnr", 1, 1, 1);
+ test(S("epoiqmtldrabnkjhcfsg"), "kltqmhgand", 1, 5, 1);
+ test(S("emgasrilpknqojhtbdcf"), "gdtfjchpmr", 1, 9, 3);
+ test(S("hnfiagdpcklrjetqbsom"), "ponmcqblet", 1, 10, 2);
+ test(S("nsdfebgajhmtricpoklq"), "sgphqdnofeiklatbcmjr", 1, 0, 1);
+ test(S("atjgfsdlpobmeiqhncrk"), "ljqprsmigtfoneadckbh", 1, 1, 1);
+ test(S("sitodfgnrejlahcbmqkp"), "ligeojhafnkmrcsqtbdp", 1, 10, 2);
+ test(S("fraghmbiceknltjpqosd"), "lsimqfnjarbopedkhcgt", 1, 19, 13);
+ test(S("pmafenlhqtdbkirjsogc"), "abedmfjlghniorcqptks", 1, 20, S::npos);
+ test(S("pihgmoeqtnakrjslcbfd"), "", 10, 0, 10);
+ test(S("gjdkeprctqblnhiafsom"), "hqtoa", 10, 0, 10);
+ test(S("mkpnblfdsahrcqijteog"), "cahif", 10, 1, 10);
+ test(S("gckarqnelodfjhmbptis"), "kehis", 10, 2, 10);
+ test(S("gqpskidtbclomahnrjfe"), "kdlmh", 10, 4, 11);
+ test(S("pkldjsqrfgitbhmaecno"), "paeql", 10, 5, 10);
+ test(S("aftsijrbeklnmcdqhgop"), "aghoqiefnb", 10, 0, 10);
+ test(S("mtlgdrhafjkbiepqnsoc"), "jrbqaikpdo", 10, 1, 10);
+ test(S("pqgirnaefthokdmbsclj"), "smjonaeqcl", 10, 5, 10);
+ test(S("kpdbgjmtherlsfcqoina"), "eqbdrkcfah", 10, 9, 11);
+ test(S("jrlbothiknqmdgcfasep"), "kapmsienhf", 10, 10, 10);
+ test(S("mjogldqferckabinptsh"), "jpqotrlenfcsbhkaimdg", 10, 0, 10);
+ test(S("apoklnefbhmgqcdrisjt"), "jlbmhnfgtcqprikeados", 10, 1, 10);
+ test(S("ifeopcnrjbhkdgatmqls"), "stgbhfmdaljnpqoicker", 10, 10, 11);
+ test(S("ckqhaiesmjdnrgolbtpf"), "oihcetflbjagdsrkmqpn", 10, 19, 11);
+ test(S("bnlgapfimcoterskqdjh"), "adtclebmnpjsrqfkigoh", 10, 20, S::npos);
+ test(S("kgdlrobpmjcthqsafeni"), "", 19, 0, 19);
+ test(S("dfkechomjapgnslbtqir"), "beafg", 19, 0, 19);
+ test(S("rloadknfbqtgmhcsipje"), "iclat", 19, 1, 19);
+ test(S("mgjhkolrnadqbpetcifs"), "rkhnf", 19, 2, 19);
+ test(S("cmlfakiojdrgtbsphqen"), "clshq", 19, 4, 19);
+ test(S("kghbfipeomsntdalrqjc"), "dtcoj", 19, 5, S::npos);
+ test(S("eldiqckrnmtasbghjfpo"), "rqosnjmfth", 19, 0, 19);
+ test(S("abqjcfedgotihlnspkrm"), "siatdfqglh", 19, 1, 19);
+ test(S("qfbadrtjsimkolcenhpg"), "mrlshtpgjq", 19, 5, 19);
+ test(S("abseghclkjqifmtodrnp"), "adlcskgqjt", 19, 9, 19);
+ test(S("ibmsnlrjefhtdokacqpg"), "drshcjknaf", 19, 10, 19);
+ test(S("mrkfciqjebaponsthldg"), "etsaqroinghpkjdlfcbm", 19, 0, 19);
+ test(S("mjkticdeoqshpalrfbgn"), "sgepdnkqliambtrocfhj", 19, 1, 19);
+ test(S("rqnoclbdejgiphtfsakm"), "nlmcjaqgbsortfdihkpe", 19, 10, S::npos);
+ test(S("plkqbhmtfaeodjcrsing"), "racfnpmosldibqkghjet", 19, 19, S::npos);
+ test(S("oegalhmstjrfickpbndq"), "fjhdsctkqeiolagrnmbp", 19, 20, S::npos);
+ test(S("rdtgjcaohpblniekmsfq"), "", 20, 0, S::npos);
+ test(S("ofkqbnjetrmsaidphglc"), "ejanp", 20, 0, S::npos);
+ test(S("grkpahljcftesdmonqib"), "odife", 20, 1, S::npos);
+ test(S("jimlgbhfqkteospardcn"), "okaqd", 20, 2, S::npos);
+ test(S("gftenihpmslrjkqadcob"), "lcdbi", 20, 4, S::npos);
+ test(S("bmhldogtckrfsanijepq"), "fsqbj", 20, 5, S::npos);
+ test(S("nfqkrpjdesabgtlcmoih"), "bigdomnplq", 20, 0, S::npos);
+ test(S("focalnrpiqmdkstehbjg"), "apiblotgcd", 20, 1, S::npos);
+ test(S("rhqdspkmebiflcotnjga"), "acfhdenops", 20, 5, S::npos);
+ test(S("rahdtmsckfboqlpniegj"), "jopdeamcrk", 20, 9, S::npos);
+ test(S("fbkeiopclstmdqranjhg"), "trqncbkgmh", 20, 10, S::npos);
+ test(S("lifhpdgmbconstjeqark"), "tomglrkencbsfjqpihda", 20, 0, S::npos);
}
template <class S>
-TEST_CONSTEXPR_CXX20 void test3()
-{
- test(S("pboqganrhedjmltsicfk"), "gbkhdnpoietfcmrslajq", 20, 1, S::npos);
- test(S("klchabsimetjnqgorfpd"), "rtfnmbsglkjaichoqedp", 20, 10, S::npos);
- test(S("sirfgmjqhctndbklaepo"), "ohkmdpfqbsacrtjnlgei", 20, 19, S::npos);
- test(S("rlbdsiceaonqjtfpghkm"), "dlbrteoisgphmkncajfq", 20, 20, S::npos);
- test(S("ecgdanriptblhjfqskom"), "", 21, 0, S::npos);
- test(S("fdmiarlpgcskbhoteqjn"), "sjrlo", 21, 0, S::npos);
- test(S("rlbstjqopignecmfadkh"), "qjpor", 21, 1, S::npos);
- test(S("grjpqmbshektdolcafni"), "odhfn", 21, 2, S::npos);
- test(S("sakfcohtqnibprjmlged"), "qtfin", 21, 4, S::npos);
- test(S("mjtdglasihqpocebrfkn"), "hpqfo", 21, 5, S::npos);
- test(S("okaplfrntghqbmeicsdj"), "fabmertkos", 21, 0, S::npos);
- test(S("sahngemrtcjidqbklfpo"), "brqtgkmaej", 21, 1, S::npos);
- test(S("dlmsipcnekhbgoaftqjr"), "nfrdeihsgl", 21, 5, S::npos);
- test(S("ahegrmqnoiklpfsdbcjt"), "hlfrosekpi", 21, 9, S::npos);
- test(S("hdsjbnmlegtkqripacof"), "atgbkrjdsm", 21, 10, S::npos);
- test(S("pcnedrfjihqbalkgtoms"), "blnrptjgqmaifsdkhoec", 21, 0, S::npos);
- test(S("qjidealmtpskrbfhocng"), "ctpmdahebfqjgknloris", 21, 1, S::npos);
- test(S("qeindtagmokpfhsclrbj"), "apnkeqthrmlbfodiscgj", 21, 10, S::npos);
- test(S("kpfegbjhsrnodltqciam"), "jdgictpframeoqlsbknh", 21, 19, S::npos);
- test(S("hnbrcplsjfgiktoedmaq"), "qprlsfojamgndekthibc", 21, 20, S::npos);
+TEST_CONSTEXPR_CXX20 void test3() {
+ test(S("pboqganrhedjmltsicfk"), "gbkhdnpoietfcmrslajq", 20, 1, S::npos);
+ test(S("klchabsimetjnqgorfpd"), "rtfnmbsglkjaichoqedp", 20, 10, S::npos);
+ test(S("sirfgmjqhctndbklaepo"), "ohkmdpfqbsacrtjnlgei", 20, 19, S::npos);
+ test(S("rlbdsiceaonqjtfpghkm"), "dlbrteoisgphmkncajfq", 20, 20, S::npos);
+ test(S("ecgdanriptblhjfqskom"), "", 21, 0, S::npos);
+ test(S("fdmiarlpgcskbhoteqjn"), "sjrlo", 21, 0, S::npos);
+ test(S("rlbstjqopignecmfadkh"), "qjpor", 21, 1, S::npos);
+ test(S("grjpqmbshektdolcafni"), "odhfn", 21, 2, S::npos);
+ test(S("sakfcohtqnibprjmlged"), "qtfin", 21, 4, S::npos);
+ test(S("mjtdglasihqpocebrfkn"), "hpqfo", 21, 5, S::npos);
+ test(S("okaplfrntghqbmeicsdj"), "fabmertkos", 21, 0, S::npos);
+ test(S("sahngemrtcjidqbklfpo"), "brqtgkmaej", 21, 1, S::npos);
+ test(S("dlmsipcnekhbgoaftqjr"), "nfrdeihsgl", 21, 5, S::npos);
+ test(S("ahegrmqnoiklpfsdbcjt"), "hlfrosekpi", 21, 9, S::npos);
+ test(S("hdsjbnmlegtkqripacof"), "atgbkrjdsm", 21, 10, S::npos);
+ test(S("pcnedrfjihqbalkgtoms"), "blnrptjgqmaifsdkhoec", 21, 0, S::npos);
+ test(S("qjidealmtpskrbfhocng"), "ctpmdahebfqjgknloris", 21, 1, S::npos);
+ test(S("qeindtagmokpfhsclrbj"), "apnkeqthrmlbfodiscgj", 21, 10, S::npos);
+ test(S("kpfegbjhsrnodltqciam"), "jdgictpframeoqlsbknh", 21, 19, S::npos);
+ test(S("hnbrcplsjfgiktoedmaq"), "qprlsfojamgndekthibc", 21, 20, S::npos);
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -388,8 +386,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.ops/string_find.first.not.of/string_size.pass.cpp b/libcxx/test/std/strings/basic.string/string.ops/string_find.first.not.of/string_size.pass.cpp
index df0273d594335fb..5a9bb039a3579ed 100644
--- a/libcxx/test/std/strings/basic.string/string.ops/string_find.first.not.of/string_size.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.ops/string_find.first.not.of/string_size.pass.cpp
@@ -17,129 +17,123 @@
#include "min_allocator.h"
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(const S& s, const S& str, typename S::size_type pos, typename S::size_type x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.find_first_not_of(str, pos));
- assert(s.find_first_not_of(str, pos) == x);
- if (x != S::npos)
- assert(pos <= x && x < s.size());
+TEST_CONSTEXPR_CXX20 void test(const S& s, const S& str, typename S::size_type pos, typename S::size_type x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.find_first_not_of(str, pos));
+ assert(s.find_first_not_of(str, pos) == x);
+ if (x != S::npos)
+ assert(pos <= x && x < s.size());
}
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(const S& s, const S& str, typename S::size_type x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.find_first_not_of(str));
- assert(s.find_first_not_of(str) == x);
- if (x != S::npos)
- assert(x < s.size());
+TEST_CONSTEXPR_CXX20 void test(const S& s, const S& str, typename S::size_type x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.find_first_not_of(str));
+ assert(s.find_first_not_of(str) == x);
+ if (x != S::npos)
+ assert(x < s.size());
}
template <class S>
-TEST_CONSTEXPR_CXX20 void test0()
-{
- test(S(""), S(""), 0, S::npos);
- test(S(""), S("laenf"), 0, S::npos);
- test(S(""), S("pqlnkmbdjo"), 0, S::npos);
- test(S(""), S("qkamfogpnljdcshbreti"), 0, S::npos);
- test(S(""), S(""), 1, S::npos);
- test(S(""), S("bjaht"), 1, S::npos);
- test(S(""), S("hjlcmgpket"), 1, S::npos);
- test(S(""), S("htaobedqikfplcgjsmrn"), 1, S::npos);
- test(S("fodgq"), S(""), 0, 0);
- test(S("qanej"), S("dfkap"), 0, 0);
- test(S("clbao"), S("ihqrfebgad"), 0, 0);
- test(S("mekdn"), S("ngtjfcalbseiqrphmkdo"), 0, S::npos);
- test(S("srdfq"), S(""), 1, 1);
- test(S("oemth"), S("ikcrq"), 1, 1);
- test(S("cdaih"), S("dmajblfhsg"), 1, 3);
- test(S("qohtk"), S("oqftjhdmkgsblacenirp"), 1, S::npos);
- test(S("cshmd"), S(""), 2, 2);
- test(S("lhcdo"), S("oebqi"), 2, 2);
- test(S("qnsoh"), S("kojhpmbsfe"), 2, S::npos);
- test(S("pkrof"), S("acbsjqogpltdkhinfrem"), 2, S::npos);
- test(S("fmtsp"), S(""), 4, 4);
- test(S("khbpm"), S("aobjd"), 4, 4);
- test(S("pbsji"), S("pcbahntsje"), 4, 4);
- test(S("mprdj"), S("fhepcrntkoagbmldqijs"), 4, S::npos);
- test(S("eqmpa"), S(""), 5, S::npos);
- test(S("omigs"), S("kocgb"), 5, S::npos);
- test(S("onmje"), S("fbslrjiqkm"), 5, S::npos);
- test(S("oqmrj"), S("jeidpcmalhfnqbgtrsko"), 5, S::npos);
- test(S("schfa"), S(""), 6, S::npos);
- test(S("igdsc"), S("qngpd"), 6, S::npos);
- test(S("brqgo"), S("rodhqklgmb"), 6, S::npos);
- test(S("tnrph"), S("thdjgafrlbkoiqcspmne"), 6, S::npos);
- test(S("hcjitbfapl"), S(""), 0, 0);
- test(S("daiprenocl"), S("ashjd"), 0, 2);
- test(S("litpcfdghe"), S("mgojkldsqh"), 0, 1);
- test(S("aidjksrolc"), S("imqnaghkfrdtlopbjesc"), 0, S::npos);
- test(S("qpghtfbaji"), S(""), 1, 1);
- test(S("gfshlcmdjr"), S("nadkh"), 1, 1);
- test(S("nkodajteqp"), S("ofdrqmkebl"), 1, 4);
- test(S("gbmetiprqd"), S("bdfjqgatlksriohemnpc"), 1, S::npos);
- test(S("crnklpmegd"), S(""), 5, 5);
- test(S("jsbtafedoc"), S("prqgn"), 5, 5);
- test(S("qnmodrtkeb"), S("pejafmnokr"), 5, 6);
- test(S("cpebqsfmnj"), S("odnqkgijrhabfmcestlp"), 5, S::npos);
- test(S("lmofqdhpki"), S(""), 9, 9);
- test(S("hnefkqimca"), S("rtjpa"), 9, S::npos);
- test(S("drtasbgmfp"), S("ktsrmnqagd"), 9, 9);
- test(S("lsaijeqhtr"), S("rtdhgcisbnmoaqkfpjle"), 9, S::npos);
- test(S("elgofjmbrq"), S(""), 10, S::npos);
- test(S("mjqdgalkpc"), S("dplqa"), 10, S::npos);
- test(S("kthqnfcerm"), S("dkacjoptns"), 10, S::npos);
- test(S("dfsjhanorc"), S("hqfimtrgnbekpdcsjalo"), 10, S::npos);
- test(S("eqsgalomhb"), S(""), 11, S::npos);
- test(S("akiteljmoh"), S("lofbc"), 11, S::npos);
- test(S("hlbdfreqjo"), S("astoegbfpn"), 11, S::npos);
- test(S("taqobhlerg"), S("pdgreqomsncafklhtibj"), 11, S::npos);
- test(S("snafbdlghrjkpqtoceim"), S(""), 0, 0);
- test(S("aemtbrgcklhndjisfpoq"), S("lbtqd"), 0, 0);
- test(S("pnracgfkjdiholtbqsem"), S("tboimldpjh"), 0, 1);
- test(S("dicfltehbsgrmojnpkaq"), S("slcerthdaiqjfnobgkpm"), 0, S::npos);
- test(S("jlnkraeodhcspfgbqitm"), S(""), 1, 1);
- test(S("lhosrngtmfjikbqpcade"), S("aqibs"), 1, 1);
- test(S("rbtaqjhgkneisldpmfoc"), S("gtfblmqinc"), 1, 3);
- test(S("gpifsqlrdkbonjtmheca"), S("mkqpbtdalgniorhfescj"), 1, S::npos);
- test(S("hdpkobnsalmcfijregtq"), S(""), 10, 10);
- test(S("jtlshdgqaiprkbcoenfm"), S("pblas"), 10, 11);
- test(S("fkdrbqltsgmcoiphneaj"), S("arosdhcfme"), 10, 13);
- test(S("crsplifgtqedjohnabmk"), S("blkhjeogicatqfnpdmsr"), 10, S::npos);
- test(S("niptglfbosehkamrdqcj"), S(""), 19, 19);
- test(S("copqdhstbingamjfkler"), S("djkqc"), 19, 19);
- test(S("mrtaefilpdsgocnhqbjk"), S("lgokshjtpb"), 19, S::npos);
- test(S("kojatdhlcmigpbfrqnes"), S("bqjhtkfepimcnsgrlado"), 19, S::npos);
- test(S("eaintpchlqsbdgrkjofm"), S(""), 20, S::npos);
- test(S("gjnhidfsepkrtaqbmclo"), S("nocfa"), 20, S::npos);
- test(S("spocfaktqdbiejlhngmr"), S("bgtajmiedc"), 20, S::npos);
- test(S("rphmlekgfscndtaobiqj"), S("lsckfnqgdahejiopbtmr"), 20, S::npos);
- test(S("liatsqdoegkmfcnbhrpj"), S(""), 21, S::npos);
- test(S("binjagtfldkrspcomqeh"), S("gfsrt"), 21, S::npos);
- test(S("latkmisecnorjbfhqpdg"), S("pfsocbhjtm"), 21, S::npos);
- test(S("lecfratdjkhnsmqpoigb"), S("tpflmdnoicjgkberhqsa"), 21, S::npos);
+TEST_CONSTEXPR_CXX20 void test0() {
+ test(S(""), S(""), 0, S::npos);
+ test(S(""), S("laenf"), 0, S::npos);
+ test(S(""), S("pqlnkmbdjo"), 0, S::npos);
+ test(S(""), S("qkamfogpnljdcshbreti"), 0, S::npos);
+ test(S(""), S(""), 1, S::npos);
+ test(S(""), S("bjaht"), 1, S::npos);
+ test(S(""), S("hjlcmgpket"), 1, S::npos);
+ test(S(""), S("htaobedqikfplcgjsmrn"), 1, S::npos);
+ test(S("fodgq"), S(""), 0, 0);
+ test(S("qanej"), S("dfkap"), 0, 0);
+ test(S("clbao"), S("ihqrfebgad"), 0, 0);
+ test(S("mekdn"), S("ngtjfcalbseiqrphmkdo"), 0, S::npos);
+ test(S("srdfq"), S(""), 1, 1);
+ test(S("oemth"), S("ikcrq"), 1, 1);
+ test(S("cdaih"), S("dmajblfhsg"), 1, 3);
+ test(S("qohtk"), S("oqftjhdmkgsblacenirp"), 1, S::npos);
+ test(S("cshmd"), S(""), 2, 2);
+ test(S("lhcdo"), S("oebqi"), 2, 2);
+ test(S("qnsoh"), S("kojhpmbsfe"), 2, S::npos);
+ test(S("pkrof"), S("acbsjqogpltdkhinfrem"), 2, S::npos);
+ test(S("fmtsp"), S(""), 4, 4);
+ test(S("khbpm"), S("aobjd"), 4, 4);
+ test(S("pbsji"), S("pcbahntsje"), 4, 4);
+ test(S("mprdj"), S("fhepcrntkoagbmldqijs"), 4, S::npos);
+ test(S("eqmpa"), S(""), 5, S::npos);
+ test(S("omigs"), S("kocgb"), 5, S::npos);
+ test(S("onmje"), S("fbslrjiqkm"), 5, S::npos);
+ test(S("oqmrj"), S("jeidpcmalhfnqbgtrsko"), 5, S::npos);
+ test(S("schfa"), S(""), 6, S::npos);
+ test(S("igdsc"), S("qngpd"), 6, S::npos);
+ test(S("brqgo"), S("rodhqklgmb"), 6, S::npos);
+ test(S("tnrph"), S("thdjgafrlbkoiqcspmne"), 6, S::npos);
+ test(S("hcjitbfapl"), S(""), 0, 0);
+ test(S("daiprenocl"), S("ashjd"), 0, 2);
+ test(S("litpcfdghe"), S("mgojkldsqh"), 0, 1);
+ test(S("aidjksrolc"), S("imqnaghkfrdtlopbjesc"), 0, S::npos);
+ test(S("qpghtfbaji"), S(""), 1, 1);
+ test(S("gfshlcmdjr"), S("nadkh"), 1, 1);
+ test(S("nkodajteqp"), S("ofdrqmkebl"), 1, 4);
+ test(S("gbmetiprqd"), S("bdfjqgatlksriohemnpc"), 1, S::npos);
+ test(S("crnklpmegd"), S(""), 5, 5);
+ test(S("jsbtafedoc"), S("prqgn"), 5, 5);
+ test(S("qnmodrtkeb"), S("pejafmnokr"), 5, 6);
+ test(S("cpebqsfmnj"), S("odnqkgijrhabfmcestlp"), 5, S::npos);
+ test(S("lmofqdhpki"), S(""), 9, 9);
+ test(S("hnefkqimca"), S("rtjpa"), 9, S::npos);
+ test(S("drtasbgmfp"), S("ktsrmnqagd"), 9, 9);
+ test(S("lsaijeqhtr"), S("rtdhgcisbnmoaqkfpjle"), 9, S::npos);
+ test(S("elgofjmbrq"), S(""), 10, S::npos);
+ test(S("mjqdgalkpc"), S("dplqa"), 10, S::npos);
+ test(S("kthqnfcerm"), S("dkacjoptns"), 10, S::npos);
+ test(S("dfsjhanorc"), S("hqfimtrgnbekpdcsjalo"), 10, S::npos);
+ test(S("eqsgalomhb"), S(""), 11, S::npos);
+ test(S("akiteljmoh"), S("lofbc"), 11, S::npos);
+ test(S("hlbdfreqjo"), S("astoegbfpn"), 11, S::npos);
+ test(S("taqobhlerg"), S("pdgreqomsncafklhtibj"), 11, S::npos);
+ test(S("snafbdlghrjkpqtoceim"), S(""), 0, 0);
+ test(S("aemtbrgcklhndjisfpoq"), S("lbtqd"), 0, 0);
+ test(S("pnracgfkjdiholtbqsem"), S("tboimldpjh"), 0, 1);
+ test(S("dicfltehbsgrmojnpkaq"), S("slcerthdaiqjfnobgkpm"), 0, S::npos);
+ test(S("jlnkraeodhcspfgbqitm"), S(""), 1, 1);
+ test(S("lhosrngtmfjikbqpcade"), S("aqibs"), 1, 1);
+ test(S("rbtaqjhgkneisldpmfoc"), S("gtfblmqinc"), 1, 3);
+ test(S("gpifsqlrdkbonjtmheca"), S("mkqpbtdalgniorhfescj"), 1, S::npos);
+ test(S("hdpkobnsalmcfijregtq"), S(""), 10, 10);
+ test(S("jtlshdgqaiprkbcoenfm"), S("pblas"), 10, 11);
+ test(S("fkdrbqltsgmcoiphneaj"), S("arosdhcfme"), 10, 13);
+ test(S("crsplifgtqedjohnabmk"), S("blkhjeogicatqfnpdmsr"), 10, S::npos);
+ test(S("niptglfbosehkamrdqcj"), S(""), 19, 19);
+ test(S("copqdhstbingamjfkler"), S("djkqc"), 19, 19);
+ test(S("mrtaefilpdsgocnhqbjk"), S("lgokshjtpb"), 19, S::npos);
+ test(S("kojatdhlcmigpbfrqnes"), S("bqjhtkfepimcnsgrlado"), 19, S::npos);
+ test(S("eaintpchlqsbdgrkjofm"), S(""), 20, S::npos);
+ test(S("gjnhidfsepkrtaqbmclo"), S("nocfa"), 20, S::npos);
+ test(S("spocfaktqdbiejlhngmr"), S("bgtajmiedc"), 20, S::npos);
+ test(S("rphmlekgfscndtaobiqj"), S("lsckfnqgdahejiopbtmr"), 20, S::npos);
+ test(S("liatsqdoegkmfcnbhrpj"), S(""), 21, S::npos);
+ test(S("binjagtfldkrspcomqeh"), S("gfsrt"), 21, S::npos);
+ test(S("latkmisecnorjbfhqpdg"), S("pfsocbhjtm"), 21, S::npos);
+ test(S("lecfratdjkhnsmqpoigb"), S("tpflmdnoicjgkberhqsa"), 21, S::npos);
}
template <class S>
-TEST_CONSTEXPR_CXX20 void test1()
-{
- test(S(""), S(""), S::npos);
- test(S(""), S("laenf"), S::npos);
- test(S(""), S("pqlnkmbdjo"), S::npos);
- test(S(""), S("qkamfogpnljdcshbreti"), S::npos);
- test(S("nhmko"), S(""), 0);
- test(S("lahfb"), S("irkhs"), 0);
- test(S("gmfhd"), S("kantesmpgj"), 2);
- test(S("odaft"), S("oknlrstdpiqmjbaghcfe"), S::npos);
- test(S("eolhfgpjqk"), S(""), 0);
- test(S("nbatdlmekr"), S("bnrpe"), 2);
- test(S("jdmciepkaq"), S("jtdaefblso"), 2);
- test(S("hkbgspoflt"), S("oselktgbcapndfjihrmq"), S::npos);
- test(S("gprdcokbnjhlsfmtieqa"), S(""), 0);
- test(S("qjghlnftcaismkropdeb"), S("bjaht"), 0);
- test(S("pnalfrdtkqcmojiesbhg"), S("hjlcmgpket"), 1);
- test(S("pniotcfrhqsmgdkjbael"), S("htaobedqikfplcgjsmrn"), S::npos);
+TEST_CONSTEXPR_CXX20 void test1() {
+ test(S(""), S(""), S::npos);
+ test(S(""), S("laenf"), S::npos);
+ test(S(""), S("pqlnkmbdjo"), S::npos);
+ test(S(""), S("qkamfogpnljdcshbreti"), S::npos);
+ test(S("nhmko"), S(""), 0);
+ test(S("lahfb"), S("irkhs"), 0);
+ test(S("gmfhd"), S("kantesmpgj"), 2);
+ test(S("odaft"), S("oknlrstdpiqmjbaghcfe"), S::npos);
+ test(S("eolhfgpjqk"), S(""), 0);
+ test(S("nbatdlmekr"), S("bnrpe"), 2);
+ test(S("jdmciepkaq"), S("jtdaefblso"), 2);
+ test(S("hkbgspoflt"), S("oselktgbcapndfjihrmq"), S::npos);
+ test(S("gprdcokbnjhlsfmtieqa"), S(""), 0);
+ test(S("qjghlnftcaismkropdeb"), S("bjaht"), 0);
+ test(S("pnalfrdtkqcmojiesbhg"), S("hjlcmgpket"), 1);
+ test(S("pniotcfrhqsmgdkjbael"), S("htaobedqikfplcgjsmrn"), S::npos);
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -166,8 +160,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.ops/string_find.first.not.of/string_view_size.pass.cpp b/libcxx/test/std/strings/basic.string/string.ops/string_find.first.not.of/string_view_size.pass.cpp
index ce5f765533c7462..98dfeafe8efc59c 100644
--- a/libcxx/test/std/strings/basic.string/string.ops/string_find.first.not.of/string_view_size.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.ops/string_find.first.not.of/string_view_size.pass.cpp
@@ -17,129 +17,123 @@
#include "min_allocator.h"
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 void
-test(const S& s, SV sv, typename S::size_type pos, typename S::size_type x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.find_first_not_of(sv, pos));
- assert(s.find_first_not_of(sv, pos) == x);
- if (x != S::npos)
- assert(pos <= x && x < s.size());
+TEST_CONSTEXPR_CXX20 void test(const S& s, SV sv, typename S::size_type pos, typename S::size_type x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.find_first_not_of(sv, pos));
+ assert(s.find_first_not_of(sv, pos) == x);
+ if (x != S::npos)
+ assert(pos <= x && x < s.size());
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 void
-test(const S& s, SV sv, typename S::size_type x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.find_first_not_of(sv));
- assert(s.find_first_not_of(sv) == x);
- if (x != S::npos)
- assert(x < s.size());
+TEST_CONSTEXPR_CXX20 void test(const S& s, SV sv, typename S::size_type x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.find_first_not_of(sv));
+ assert(s.find_first_not_of(sv) == x);
+ if (x != S::npos)
+ assert(x < s.size());
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 void test0()
-{
- test(S(""), SV(""), 0, S::npos);
- test(S(""), SV("laenf"), 0, S::npos);
- test(S(""), SV("pqlnkmbdjo"), 0, S::npos);
- test(S(""), SV("qkamfogpnljdcshbreti"), 0, S::npos);
- test(S(""), SV(""), 1, S::npos);
- test(S(""), SV("bjaht"), 1, S::npos);
- test(S(""), SV("hjlcmgpket"), 1, S::npos);
- test(S(""), SV("htaobedqikfplcgjsmrn"), 1, S::npos);
- test(S("fodgq"), SV(""), 0, 0);
- test(S("qanej"), SV("dfkap"), 0, 0);
- test(S("clbao"), SV("ihqrfebgad"), 0, 0);
- test(S("mekdn"), SV("ngtjfcalbseiqrphmkdo"), 0, S::npos);
- test(S("srdfq"), SV(""), 1, 1);
- test(S("oemth"), SV("ikcrq"), 1, 1);
- test(S("cdaih"), SV("dmajblfhsg"), 1, 3);
- test(S("qohtk"), SV("oqftjhdmkgsblacenirp"), 1, S::npos);
- test(S("cshmd"), SV(""), 2, 2);
- test(S("lhcdo"), SV("oebqi"), 2, 2);
- test(S("qnsoh"), SV("kojhpmbsfe"), 2, S::npos);
- test(S("pkrof"), SV("acbsjqogpltdkhinfrem"), 2, S::npos);
- test(S("fmtsp"), SV(""), 4, 4);
- test(S("khbpm"), SV("aobjd"), 4, 4);
- test(S("pbsji"), SV("pcbahntsje"), 4, 4);
- test(S("mprdj"), SV("fhepcrntkoagbmldqijs"), 4, S::npos);
- test(S("eqmpa"), SV(""), 5, S::npos);
- test(S("omigs"), SV("kocgb"), 5, S::npos);
- test(S("onmje"), SV("fbslrjiqkm"), 5, S::npos);
- test(S("oqmrj"), SV("jeidpcmalhfnqbgtrsko"), 5, S::npos);
- test(S("schfa"), SV(""), 6, S::npos);
- test(S("igdsc"), SV("qngpd"), 6, S::npos);
- test(S("brqgo"), SV("rodhqklgmb"), 6, S::npos);
- test(S("tnrph"), SV("thdjgafrlbkoiqcspmne"), 6, S::npos);
- test(S("hcjitbfapl"), SV(""), 0, 0);
- test(S("daiprenocl"), SV("ashjd"), 0, 2);
- test(S("litpcfdghe"), SV("mgojkldsqh"), 0, 1);
- test(S("aidjksrolc"), SV("imqnaghkfrdtlopbjesc"), 0, S::npos);
- test(S("qpghtfbaji"), SV(""), 1, 1);
- test(S("gfshlcmdjr"), SV("nadkh"), 1, 1);
- test(S("nkodajteqp"), SV("ofdrqmkebl"), 1, 4);
- test(S("gbmetiprqd"), SV("bdfjqgatlksriohemnpc"), 1, S::npos);
- test(S("crnklpmegd"), SV(""), 5, 5);
- test(S("jsbtafedoc"), SV("prqgn"), 5, 5);
- test(S("qnmodrtkeb"), SV("pejafmnokr"), 5, 6);
- test(S("cpebqsfmnj"), SV("odnqkgijrhabfmcestlp"), 5, S::npos);
- test(S("lmofqdhpki"), SV(""), 9, 9);
- test(S("hnefkqimca"), SV("rtjpa"), 9, S::npos);
- test(S("drtasbgmfp"), SV("ktsrmnqagd"), 9, 9);
- test(S("lsaijeqhtr"), SV("rtdhgcisbnmoaqkfpjle"), 9, S::npos);
- test(S("elgofjmbrq"), SV(""), 10, S::npos);
- test(S("mjqdgalkpc"), SV("dplqa"), 10, S::npos);
- test(S("kthqnfcerm"), SV("dkacjoptns"), 10, S::npos);
- test(S("dfsjhanorc"), SV("hqfimtrgnbekpdcsjalo"), 10, S::npos);
- test(S("eqsgalomhb"), SV(""), 11, S::npos);
- test(S("akiteljmoh"), SV("lofbc"), 11, S::npos);
- test(S("hlbdfreqjo"), SV("astoegbfpn"), 11, S::npos);
- test(S("taqobhlerg"), SV("pdgreqomsncafklhtibj"), 11, S::npos);
- test(S("snafbdlghrjkpqtoceim"), SV(""), 0, 0);
- test(S("aemtbrgcklhndjisfpoq"), SV("lbtqd"), 0, 0);
- test(S("pnracgfkjdiholtbqsem"), SV("tboimldpjh"), 0, 1);
- test(S("dicfltehbsgrmojnpkaq"), SV("slcerthdaiqjfnobgkpm"), 0, S::npos);
- test(S("jlnkraeodhcspfgbqitm"), SV(""), 1, 1);
- test(S("lhosrngtmfjikbqpcade"), SV("aqibs"), 1, 1);
- test(S("rbtaqjhgkneisldpmfoc"), SV("gtfblmqinc"), 1, 3);
- test(S("gpifsqlrdkbonjtmheca"), SV("mkqpbtdalgniorhfescj"), 1, S::npos);
- test(S("hdpkobnsalmcfijregtq"), SV(""), 10, 10);
- test(S("jtlshdgqaiprkbcoenfm"), SV("pblas"), 10, 11);
- test(S("fkdrbqltsgmcoiphneaj"), SV("arosdhcfme"), 10, 13);
- test(S("crsplifgtqedjohnabmk"), SV("blkhjeogicatqfnpdmsr"), 10, S::npos);
- test(S("niptglfbosehkamrdqcj"), SV(""), 19, 19);
- test(S("copqdhstbingamjfkler"), SV("djkqc"), 19, 19);
- test(S("mrtaefilpdsgocnhqbjk"), SV("lgokshjtpb"), 19, S::npos);
- test(S("kojatdhlcmigpbfrqnes"), SV("bqjhtkfepimcnsgrlado"), 19, S::npos);
- test(S("eaintpchlqsbdgrkjofm"), SV(""), 20, S::npos);
- test(S("gjnhidfsepkrtaqbmclo"), SV("nocfa"), 20, S::npos);
- test(S("spocfaktqdbiejlhngmr"), SV("bgtajmiedc"), 20, S::npos);
- test(S("rphmlekgfscndtaobiqj"), SV("lsckfnqgdahejiopbtmr"), 20, S::npos);
- test(S("liatsqdoegkmfcnbhrpj"), SV(""), 21, S::npos);
- test(S("binjagtfldkrspcomqeh"), SV("gfsrt"), 21, S::npos);
- test(S("latkmisecnorjbfhqpdg"), SV("pfsocbhjtm"), 21, S::npos);
- test(S("lecfratdjkhnsmqpoigb"), SV("tpflmdnoicjgkberhqsa"), 21, S::npos);
+TEST_CONSTEXPR_CXX20 void test0() {
+ test(S(""), SV(""), 0, S::npos);
+ test(S(""), SV("laenf"), 0, S::npos);
+ test(S(""), SV("pqlnkmbdjo"), 0, S::npos);
+ test(S(""), SV("qkamfogpnljdcshbreti"), 0, S::npos);
+ test(S(""), SV(""), 1, S::npos);
+ test(S(""), SV("bjaht"), 1, S::npos);
+ test(S(""), SV("hjlcmgpket"), 1, S::npos);
+ test(S(""), SV("htaobedqikfplcgjsmrn"), 1, S::npos);
+ test(S("fodgq"), SV(""), 0, 0);
+ test(S("qanej"), SV("dfkap"), 0, 0);
+ test(S("clbao"), SV("ihqrfebgad"), 0, 0);
+ test(S("mekdn"), SV("ngtjfcalbseiqrphmkdo"), 0, S::npos);
+ test(S("srdfq"), SV(""), 1, 1);
+ test(S("oemth"), SV("ikcrq"), 1, 1);
+ test(S("cdaih"), SV("dmajblfhsg"), 1, 3);
+ test(S("qohtk"), SV("oqftjhdmkgsblacenirp"), 1, S::npos);
+ test(S("cshmd"), SV(""), 2, 2);
+ test(S("lhcdo"), SV("oebqi"), 2, 2);
+ test(S("qnsoh"), SV("kojhpmbsfe"), 2, S::npos);
+ test(S("pkrof"), SV("acbsjqogpltdkhinfrem"), 2, S::npos);
+ test(S("fmtsp"), SV(""), 4, 4);
+ test(S("khbpm"), SV("aobjd"), 4, 4);
+ test(S("pbsji"), SV("pcbahntsje"), 4, 4);
+ test(S("mprdj"), SV("fhepcrntkoagbmldqijs"), 4, S::npos);
+ test(S("eqmpa"), SV(""), 5, S::npos);
+ test(S("omigs"), SV("kocgb"), 5, S::npos);
+ test(S("onmje"), SV("fbslrjiqkm"), 5, S::npos);
+ test(S("oqmrj"), SV("jeidpcmalhfnqbgtrsko"), 5, S::npos);
+ test(S("schfa"), SV(""), 6, S::npos);
+ test(S("igdsc"), SV("qngpd"), 6, S::npos);
+ test(S("brqgo"), SV("rodhqklgmb"), 6, S::npos);
+ test(S("tnrph"), SV("thdjgafrlbkoiqcspmne"), 6, S::npos);
+ test(S("hcjitbfapl"), SV(""), 0, 0);
+ test(S("daiprenocl"), SV("ashjd"), 0, 2);
+ test(S("litpcfdghe"), SV("mgojkldsqh"), 0, 1);
+ test(S("aidjksrolc"), SV("imqnaghkfrdtlopbjesc"), 0, S::npos);
+ test(S("qpghtfbaji"), SV(""), 1, 1);
+ test(S("gfshlcmdjr"), SV("nadkh"), 1, 1);
+ test(S("nkodajteqp"), SV("ofdrqmkebl"), 1, 4);
+ test(S("gbmetiprqd"), SV("bdfjqgatlksriohemnpc"), 1, S::npos);
+ test(S("crnklpmegd"), SV(""), 5, 5);
+ test(S("jsbtafedoc"), SV("prqgn"), 5, 5);
+ test(S("qnmodrtkeb"), SV("pejafmnokr"), 5, 6);
+ test(S("cpebqsfmnj"), SV("odnqkgijrhabfmcestlp"), 5, S::npos);
+ test(S("lmofqdhpki"), SV(""), 9, 9);
+ test(S("hnefkqimca"), SV("rtjpa"), 9, S::npos);
+ test(S("drtasbgmfp"), SV("ktsrmnqagd"), 9, 9);
+ test(S("lsaijeqhtr"), SV("rtdhgcisbnmoaqkfpjle"), 9, S::npos);
+ test(S("elgofjmbrq"), SV(""), 10, S::npos);
+ test(S("mjqdgalkpc"), SV("dplqa"), 10, S::npos);
+ test(S("kthqnfcerm"), SV("dkacjoptns"), 10, S::npos);
+ test(S("dfsjhanorc"), SV("hqfimtrgnbekpdcsjalo"), 10, S::npos);
+ test(S("eqsgalomhb"), SV(""), 11, S::npos);
+ test(S("akiteljmoh"), SV("lofbc"), 11, S::npos);
+ test(S("hlbdfreqjo"), SV("astoegbfpn"), 11, S::npos);
+ test(S("taqobhlerg"), SV("pdgreqomsncafklhtibj"), 11, S::npos);
+ test(S("snafbdlghrjkpqtoceim"), SV(""), 0, 0);
+ test(S("aemtbrgcklhndjisfpoq"), SV("lbtqd"), 0, 0);
+ test(S("pnracgfkjdiholtbqsem"), SV("tboimldpjh"), 0, 1);
+ test(S("dicfltehbsgrmojnpkaq"), SV("slcerthdaiqjfnobgkpm"), 0, S::npos);
+ test(S("jlnkraeodhcspfgbqitm"), SV(""), 1, 1);
+ test(S("lhosrngtmfjikbqpcade"), SV("aqibs"), 1, 1);
+ test(S("rbtaqjhgkneisldpmfoc"), SV("gtfblmqinc"), 1, 3);
+ test(S("gpifsqlrdkbonjtmheca"), SV("mkqpbtdalgniorhfescj"), 1, S::npos);
+ test(S("hdpkobnsalmcfijregtq"), SV(""), 10, 10);
+ test(S("jtlshdgqaiprkbcoenfm"), SV("pblas"), 10, 11);
+ test(S("fkdrbqltsgmcoiphneaj"), SV("arosdhcfme"), 10, 13);
+ test(S("crsplifgtqedjohnabmk"), SV("blkhjeogicatqfnpdmsr"), 10, S::npos);
+ test(S("niptglfbosehkamrdqcj"), SV(""), 19, 19);
+ test(S("copqdhstbingamjfkler"), SV("djkqc"), 19, 19);
+ test(S("mrtaefilpdsgocnhqbjk"), SV("lgokshjtpb"), 19, S::npos);
+ test(S("kojatdhlcmigpbfrqnes"), SV("bqjhtkfepimcnsgrlado"), 19, S::npos);
+ test(S("eaintpchlqsbdgrkjofm"), SV(""), 20, S::npos);
+ test(S("gjnhidfsepkrtaqbmclo"), SV("nocfa"), 20, S::npos);
+ test(S("spocfaktqdbiejlhngmr"), SV("bgtajmiedc"), 20, S::npos);
+ test(S("rphmlekgfscndtaobiqj"), SV("lsckfnqgdahejiopbtmr"), 20, S::npos);
+ test(S("liatsqdoegkmfcnbhrpj"), SV(""), 21, S::npos);
+ test(S("binjagtfldkrspcomqeh"), SV("gfsrt"), 21, S::npos);
+ test(S("latkmisecnorjbfhqpdg"), SV("pfsocbhjtm"), 21, S::npos);
+ test(S("lecfratdjkhnsmqpoigb"), SV("tpflmdnoicjgkberhqsa"), 21, S::npos);
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 void test1()
-{
- test(S(""), SV(""), S::npos);
- test(S(""), SV("laenf"), S::npos);
- test(S(""), SV("pqlnkmbdjo"), S::npos);
- test(S(""), SV("qkamfogpnljdcshbreti"), S::npos);
- test(S("nhmko"), SV(""), 0);
- test(S("lahfb"), SV("irkhs"), 0);
- test(S("gmfhd"), SV("kantesmpgj"), 2);
- test(S("odaft"), SV("oknlrstdpiqmjbaghcfe"), S::npos);
- test(S("eolhfgpjqk"), SV(""), 0);
- test(S("nbatdlmekr"), SV("bnrpe"), 2);
- test(S("jdmciepkaq"), SV("jtdaefblso"), 2);
- test(S("hkbgspoflt"), SV("oselktgbcapndfjihrmq"), S::npos);
- test(S("gprdcokbnjhlsfmtieqa"), SV(""), 0);
- test(S("qjghlnftcaismkropdeb"), SV("bjaht"), 0);
- test(S("pnalfrdtkqcmojiesbhg"), SV("hjlcmgpket"), 1);
- test(S("pniotcfrhqsmgdkjbael"), SV("htaobedqikfplcgjsmrn"), S::npos);
+TEST_CONSTEXPR_CXX20 void test1() {
+ test(S(""), SV(""), S::npos);
+ test(S(""), SV("laenf"), S::npos);
+ test(S(""), SV("pqlnkmbdjo"), S::npos);
+ test(S(""), SV("qkamfogpnljdcshbreti"), S::npos);
+ test(S("nhmko"), SV(""), 0);
+ test(S("lahfb"), SV("irkhs"), 0);
+ test(S("gmfhd"), SV("kantesmpgj"), 2);
+ test(S("odaft"), SV("oknlrstdpiqmjbaghcfe"), S::npos);
+ test(S("eolhfgpjqk"), SV(""), 0);
+ test(S("nbatdlmekr"), SV("bnrpe"), 2);
+ test(S("jdmciepkaq"), SV("jtdaefblso"), 2);
+ test(S("hkbgspoflt"), SV("oselktgbcapndfjihrmq"), S::npos);
+ test(S("gprdcokbnjhlsfmtieqa"), SV(""), 0);
+ test(S("qjghlnftcaismkropdeb"), SV("bjaht"), 0);
+ test(S("pnalfrdtkqcmojiesbhg"), SV("hjlcmgpket"), 1);
+ test(S("pniotcfrhqsmgdkjbael"), SV("htaobedqikfplcgjsmrn"), S::npos);
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -161,8 +155,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.ops/string_find.first.of/char_size.pass.cpp b/libcxx/test/std/strings/basic.string/string.ops/string_find.first.of/char_size.pass.cpp
index c1e81318d392e11..a6eafab0423891e 100644
--- a/libcxx/test/std/strings/basic.string/string.ops/string_find.first.of/char_size.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.ops/string_find.first.of/char_size.pass.cpp
@@ -18,23 +18,19 @@
template <class S>
TEST_CONSTEXPR_CXX20 void
-test(const S& s, typename S::value_type c, typename S::size_type pos,
- typename S::size_type x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.find_first_of(c, pos));
- assert(s.find_first_of(c, pos) == x);
- if (x != S::npos)
- assert(pos <= x && x < s.size());
+test(const S& s, typename S::value_type c, typename S::size_type pos, typename S::size_type x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.find_first_of(c, pos));
+ assert(s.find_first_of(c, pos) == x);
+ if (x != S::npos)
+ assert(pos <= x && x < s.size());
}
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(const S& s, typename S::value_type c, typename S::size_type x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.find_first_of(c));
- assert(s.find_first_of(c) == x);
- if (x != S::npos)
- assert(x < s.size());
+TEST_CONSTEXPR_CXX20 void test(const S& s, typename S::value_type c, typename S::size_type x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.find_first_of(c));
+ assert(s.find_first_of(c) == x);
+ if (x != S::npos)
+ assert(x < s.size());
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -100,8 +96,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.ops/string_find.first.of/pointer_size.pass.cpp b/libcxx/test/std/strings/basic.string/string.ops/string_find.first.of/pointer_size.pass.cpp
index aff18ad8fe9feda..faf9557a6efd974 100644
--- a/libcxx/test/std/strings/basic.string/string.ops/string_find.first.of/pointer_size.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.ops/string_find.first.of/pointer_size.pass.cpp
@@ -18,129 +18,123 @@
template <class S>
TEST_CONSTEXPR_CXX20 void
-test(const S& s, const typename S::value_type* str, typename S::size_type pos,
- typename S::size_type x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.find_first_of(str, pos));
- assert(s.find_first_of(str, pos) == x);
- if (x != S::npos)
- assert(pos <= x && x < s.size());
+test(const S& s, const typename S::value_type* str, typename S::size_type pos, typename S::size_type x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.find_first_of(str, pos));
+ assert(s.find_first_of(str, pos) == x);
+ if (x != S::npos)
+ assert(pos <= x && x < s.size());
}
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(const S& s, const typename S::value_type* str, typename S::size_type x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.find_first_of(str));
- assert(s.find_first_of(str) == x);
- if (x != S::npos)
- assert(x < s.size());
+TEST_CONSTEXPR_CXX20 void test(const S& s, const typename S::value_type* str, typename S::size_type x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.find_first_of(str));
+ assert(s.find_first_of(str) == x);
+ if (x != S::npos)
+ assert(x < s.size());
}
template <class S>
-TEST_CONSTEXPR_CXX20 void test0()
-{
- test(S(""), "", 0, S::npos);
- test(S(""), "laenf", 0, S::npos);
- test(S(""), "pqlnkmbdjo", 0, S::npos);
- test(S(""), "qkamfogpnljdcshbreti", 0, S::npos);
- test(S(""), "", 1, S::npos);
- test(S(""), "bjaht", 1, S::npos);
- test(S(""), "hjlcmgpket", 1, S::npos);
- test(S(""), "htaobedqikfplcgjsmrn", 1, S::npos);
- test(S("fodgq"), "", 0, S::npos);
- test(S("qanej"), "dfkap", 0, 1);
- test(S("clbao"), "ihqrfebgad", 0, 2);
- test(S("mekdn"), "ngtjfcalbseiqrphmkdo", 0, 0);
- test(S("srdfq"), "", 1, S::npos);
- test(S("oemth"), "ikcrq", 1, S::npos);
- test(S("cdaih"), "dmajblfhsg", 1, 1);
- test(S("qohtk"), "oqftjhdmkgsblacenirp", 1, 1);
- test(S("cshmd"), "", 2, S::npos);
- test(S("lhcdo"), "oebqi", 2, 4);
- test(S("qnsoh"), "kojhpmbsfe", 2, 2);
- test(S("pkrof"), "acbsjqogpltdkhinfrem", 2, 2);
- test(S("fmtsp"), "", 4, S::npos);
- test(S("khbpm"), "aobjd", 4, S::npos);
- test(S("pbsji"), "pcbahntsje", 4, S::npos);
- test(S("mprdj"), "fhepcrntkoagbmldqijs", 4, 4);
- test(S("eqmpa"), "", 5, S::npos);
- test(S("omigs"), "kocgb", 5, S::npos);
- test(S("onmje"), "fbslrjiqkm", 5, S::npos);
- test(S("oqmrj"), "jeidpcmalhfnqbgtrsko", 5, S::npos);
- test(S("schfa"), "", 6, S::npos);
- test(S("igdsc"), "qngpd", 6, S::npos);
- test(S("brqgo"), "rodhqklgmb", 6, S::npos);
- test(S("tnrph"), "thdjgafrlbkoiqcspmne", 6, S::npos);
- test(S("hcjitbfapl"), "", 0, S::npos);
- test(S("daiprenocl"), "ashjd", 0, 0);
- test(S("litpcfdghe"), "mgojkldsqh", 0, 0);
- test(S("aidjksrolc"), "imqnaghkfrdtlopbjesc", 0, 0);
- test(S("qpghtfbaji"), "", 1, S::npos);
- test(S("gfshlcmdjr"), "nadkh", 1, 3);
- test(S("nkodajteqp"), "ofdrqmkebl", 1, 1);
- test(S("gbmetiprqd"), "bdfjqgatlksriohemnpc", 1, 1);
- test(S("crnklpmegd"), "", 5, S::npos);
- test(S("jsbtafedoc"), "prqgn", 5, S::npos);
- test(S("qnmodrtkeb"), "pejafmnokr", 5, 5);
- test(S("cpebqsfmnj"), "odnqkgijrhabfmcestlp", 5, 5);
- test(S("lmofqdhpki"), "", 9, S::npos);
- test(S("hnefkqimca"), "rtjpa", 9, 9);
- test(S("drtasbgmfp"), "ktsrmnqagd", 9, S::npos);
- test(S("lsaijeqhtr"), "rtdhgcisbnmoaqkfpjle", 9, 9);
- test(S("elgofjmbrq"), "", 10, S::npos);
- test(S("mjqdgalkpc"), "dplqa", 10, S::npos);
- test(S("kthqnfcerm"), "dkacjoptns", 10, S::npos);
- test(S("dfsjhanorc"), "hqfimtrgnbekpdcsjalo", 10, S::npos);
- test(S("eqsgalomhb"), "", 11, S::npos);
- test(S("akiteljmoh"), "lofbc", 11, S::npos);
- test(S("hlbdfreqjo"), "astoegbfpn", 11, S::npos);
- test(S("taqobhlerg"), "pdgreqomsncafklhtibj", 11, S::npos);
- test(S("snafbdlghrjkpqtoceim"), "", 0, S::npos);
- test(S("aemtbrgcklhndjisfpoq"), "lbtqd", 0, 3);
- test(S("pnracgfkjdiholtbqsem"), "tboimldpjh", 0, 0);
- test(S("dicfltehbsgrmojnpkaq"), "slcerthdaiqjfnobgkpm", 0, 0);
- test(S("jlnkraeodhcspfgbqitm"), "", 1, S::npos);
- test(S("lhosrngtmfjikbqpcade"), "aqibs", 1, 3);
- test(S("rbtaqjhgkneisldpmfoc"), "gtfblmqinc", 1, 1);
- test(S("gpifsqlrdkbonjtmheca"), "mkqpbtdalgniorhfescj", 1, 1);
- test(S("hdpkobnsalmcfijregtq"), "", 10, S::npos);
- test(S("jtlshdgqaiprkbcoenfm"), "pblas", 10, 10);
- test(S("fkdrbqltsgmcoiphneaj"), "arosdhcfme", 10, 10);
- test(S("crsplifgtqedjohnabmk"), "blkhjeogicatqfnpdmsr", 10, 10);
- test(S("niptglfbosehkamrdqcj"), "", 19, S::npos);
- test(S("copqdhstbingamjfkler"), "djkqc", 19, S::npos);
- test(S("mrtaefilpdsgocnhqbjk"), "lgokshjtpb", 19, 19);
- test(S("kojatdhlcmigpbfrqnes"), "bqjhtkfepimcnsgrlado", 19, 19);
- test(S("eaintpchlqsbdgrkjofm"), "", 20, S::npos);
- test(S("gjnhidfsepkrtaqbmclo"), "nocfa", 20, S::npos);
- test(S("spocfaktqdbiejlhngmr"), "bgtajmiedc", 20, S::npos);
- test(S("rphmlekgfscndtaobiqj"), "lsckfnqgdahejiopbtmr", 20, S::npos);
- test(S("liatsqdoegkmfcnbhrpj"), "", 21, S::npos);
- test(S("binjagtfldkrspcomqeh"), "gfsrt", 21, S::npos);
- test(S("latkmisecnorjbfhqpdg"), "pfsocbhjtm", 21, S::npos);
- test(S("lecfratdjkhnsmqpoigb"), "tpflmdnoicjgkberhqsa", 21, S::npos);
+TEST_CONSTEXPR_CXX20 void test0() {
+ test(S(""), "", 0, S::npos);
+ test(S(""), "laenf", 0, S::npos);
+ test(S(""), "pqlnkmbdjo", 0, S::npos);
+ test(S(""), "qkamfogpnljdcshbreti", 0, S::npos);
+ test(S(""), "", 1, S::npos);
+ test(S(""), "bjaht", 1, S::npos);
+ test(S(""), "hjlcmgpket", 1, S::npos);
+ test(S(""), "htaobedqikfplcgjsmrn", 1, S::npos);
+ test(S("fodgq"), "", 0, S::npos);
+ test(S("qanej"), "dfkap", 0, 1);
+ test(S("clbao"), "ihqrfebgad", 0, 2);
+ test(S("mekdn"), "ngtjfcalbseiqrphmkdo", 0, 0);
+ test(S("srdfq"), "", 1, S::npos);
+ test(S("oemth"), "ikcrq", 1, S::npos);
+ test(S("cdaih"), "dmajblfhsg", 1, 1);
+ test(S("qohtk"), "oqftjhdmkgsblacenirp", 1, 1);
+ test(S("cshmd"), "", 2, S::npos);
+ test(S("lhcdo"), "oebqi", 2, 4);
+ test(S("qnsoh"), "kojhpmbsfe", 2, 2);
+ test(S("pkrof"), "acbsjqogpltdkhinfrem", 2, 2);
+ test(S("fmtsp"), "", 4, S::npos);
+ test(S("khbpm"), "aobjd", 4, S::npos);
+ test(S("pbsji"), "pcbahntsje", 4, S::npos);
+ test(S("mprdj"), "fhepcrntkoagbmldqijs", 4, 4);
+ test(S("eqmpa"), "", 5, S::npos);
+ test(S("omigs"), "kocgb", 5, S::npos);
+ test(S("onmje"), "fbslrjiqkm", 5, S::npos);
+ test(S("oqmrj"), "jeidpcmalhfnqbgtrsko", 5, S::npos);
+ test(S("schfa"), "", 6, S::npos);
+ test(S("igdsc"), "qngpd", 6, S::npos);
+ test(S("brqgo"), "rodhqklgmb", 6, S::npos);
+ test(S("tnrph"), "thdjgafrlbkoiqcspmne", 6, S::npos);
+ test(S("hcjitbfapl"), "", 0, S::npos);
+ test(S("daiprenocl"), "ashjd", 0, 0);
+ test(S("litpcfdghe"), "mgojkldsqh", 0, 0);
+ test(S("aidjksrolc"), "imqnaghkfrdtlopbjesc", 0, 0);
+ test(S("qpghtfbaji"), "", 1, S::npos);
+ test(S("gfshlcmdjr"), "nadkh", 1, 3);
+ test(S("nkodajteqp"), "ofdrqmkebl", 1, 1);
+ test(S("gbmetiprqd"), "bdfjqgatlksriohemnpc", 1, 1);
+ test(S("crnklpmegd"), "", 5, S::npos);
+ test(S("jsbtafedoc"), "prqgn", 5, S::npos);
+ test(S("qnmodrtkeb"), "pejafmnokr", 5, 5);
+ test(S("cpebqsfmnj"), "odnqkgijrhabfmcestlp", 5, 5);
+ test(S("lmofqdhpki"), "", 9, S::npos);
+ test(S("hnefkqimca"), "rtjpa", 9, 9);
+ test(S("drtasbgmfp"), "ktsrmnqagd", 9, S::npos);
+ test(S("lsaijeqhtr"), "rtdhgcisbnmoaqkfpjle", 9, 9);
+ test(S("elgofjmbrq"), "", 10, S::npos);
+ test(S("mjqdgalkpc"), "dplqa", 10, S::npos);
+ test(S("kthqnfcerm"), "dkacjoptns", 10, S::npos);
+ test(S("dfsjhanorc"), "hqfimtrgnbekpdcsjalo", 10, S::npos);
+ test(S("eqsgalomhb"), "", 11, S::npos);
+ test(S("akiteljmoh"), "lofbc", 11, S::npos);
+ test(S("hlbdfreqjo"), "astoegbfpn", 11, S::npos);
+ test(S("taqobhlerg"), "pdgreqomsncafklhtibj", 11, S::npos);
+ test(S("snafbdlghrjkpqtoceim"), "", 0, S::npos);
+ test(S("aemtbrgcklhndjisfpoq"), "lbtqd", 0, 3);
+ test(S("pnracgfkjdiholtbqsem"), "tboimldpjh", 0, 0);
+ test(S("dicfltehbsgrmojnpkaq"), "slcerthdaiqjfnobgkpm", 0, 0);
+ test(S("jlnkraeodhcspfgbqitm"), "", 1, S::npos);
+ test(S("lhosrngtmfjikbqpcade"), "aqibs", 1, 3);
+ test(S("rbtaqjhgkneisldpmfoc"), "gtfblmqinc", 1, 1);
+ test(S("gpifsqlrdkbonjtmheca"), "mkqpbtdalgniorhfescj", 1, 1);
+ test(S("hdpkobnsalmcfijregtq"), "", 10, S::npos);
+ test(S("jtlshdgqaiprkbcoenfm"), "pblas", 10, 10);
+ test(S("fkdrbqltsgmcoiphneaj"), "arosdhcfme", 10, 10);
+ test(S("crsplifgtqedjohnabmk"), "blkhjeogicatqfnpdmsr", 10, 10);
+ test(S("niptglfbosehkamrdqcj"), "", 19, S::npos);
+ test(S("copqdhstbingamjfkler"), "djkqc", 19, S::npos);
+ test(S("mrtaefilpdsgocnhqbjk"), "lgokshjtpb", 19, 19);
+ test(S("kojatdhlcmigpbfrqnes"), "bqjhtkfepimcnsgrlado", 19, 19);
+ test(S("eaintpchlqsbdgrkjofm"), "", 20, S::npos);
+ test(S("gjnhidfsepkrtaqbmclo"), "nocfa", 20, S::npos);
+ test(S("spocfaktqdbiejlhngmr"), "bgtajmiedc", 20, S::npos);
+ test(S("rphmlekgfscndtaobiqj"), "lsckfnqgdahejiopbtmr", 20, S::npos);
+ test(S("liatsqdoegkmfcnbhrpj"), "", 21, S::npos);
+ test(S("binjagtfldkrspcomqeh"), "gfsrt", 21, S::npos);
+ test(S("latkmisecnorjbfhqpdg"), "pfsocbhjtm", 21, S::npos);
+ test(S("lecfratdjkhnsmqpoigb"), "tpflmdnoicjgkberhqsa", 21, S::npos);
}
template <class S>
-TEST_CONSTEXPR_CXX20 void test1()
-{
- test(S(""), "", S::npos);
- test(S(""), "laenf", S::npos);
- test(S(""), "pqlnkmbdjo", S::npos);
- test(S(""), "qkamfogpnljdcshbreti", S::npos);
- test(S("nhmko"), "", S::npos);
- test(S("lahfb"), "irkhs", 2);
- test(S("gmfhd"), "kantesmpgj", 0);
- test(S("odaft"), "oknlrstdpiqmjbaghcfe", 0);
- test(S("eolhfgpjqk"), "", S::npos);
- test(S("nbatdlmekr"), "bnrpe", 0);
- test(S("jdmciepkaq"), "jtdaefblso", 0);
- test(S("hkbgspoflt"), "oselktgbcapndfjihrmq", 0);
- test(S("gprdcokbnjhlsfmtieqa"), "", S::npos);
- test(S("qjghlnftcaismkropdeb"), "bjaht", 1);
- test(S("pnalfrdtkqcmojiesbhg"), "hjlcmgpket", 0);
- test(S("pniotcfrhqsmgdkjbael"), "htaobedqikfplcgjsmrn", 0);
+TEST_CONSTEXPR_CXX20 void test1() {
+ test(S(""), "", S::npos);
+ test(S(""), "laenf", S::npos);
+ test(S(""), "pqlnkmbdjo", S::npos);
+ test(S(""), "qkamfogpnljdcshbreti", S::npos);
+ test(S("nhmko"), "", S::npos);
+ test(S("lahfb"), "irkhs", 2);
+ test(S("gmfhd"), "kantesmpgj", 0);
+ test(S("odaft"), "oknlrstdpiqmjbaghcfe", 0);
+ test(S("eolhfgpjqk"), "", S::npos);
+ test(S("nbatdlmekr"), "bnrpe", 0);
+ test(S("jdmciepkaq"), "jtdaefblso", 0);
+ test(S("hkbgspoflt"), "oselktgbcapndfjihrmq", 0);
+ test(S("gprdcokbnjhlsfmtieqa"), "", S::npos);
+ test(S("qjghlnftcaismkropdeb"), "bjaht", 1);
+ test(S("pnalfrdtkqcmojiesbhg"), "hjlcmgpket", 0);
+ test(S("pniotcfrhqsmgdkjbael"), "htaobedqikfplcgjsmrn", 0);
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -160,8 +154,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.ops/string_find.first.of/pointer_size_size.pass.cpp b/libcxx/test/std/strings/basic.string/string.ops/string_find.first.of/pointer_size_size.pass.cpp
index 816268d357caeb5..71a026b98e0870d 100644
--- a/libcxx/test/std/strings/basic.string/string.ops/string_find.first.of/pointer_size_size.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.ops/string_find.first.of/pointer_size_size.pass.cpp
@@ -18,353 +18,351 @@
template <class S>
TEST_CONSTEXPR_CXX20 void
-test(const S& s, const typename S::value_type* str, typename S::size_type pos,
- typename S::size_type n, typename S::size_type x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.find_first_of(str, pos, n));
- assert(s.find_first_of(str, pos, n) == x);
- if (x != S::npos)
- assert(pos <= x && x < s.size());
+test(const S& s,
+ const typename S::value_type* str,
+ typename S::size_type pos,
+ typename S::size_type n,
+ typename S::size_type x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.find_first_of(str, pos, n));
+ assert(s.find_first_of(str, pos, n) == x);
+ if (x != S::npos)
+ assert(pos <= x && x < s.size());
}
template <class S>
-TEST_CONSTEXPR_CXX20 void test0()
-{
- test(S(""), "", 0, 0, S::npos);
- test(S(""), "irkhs", 0, 0, S::npos);
- test(S(""), "kante", 0, 1, S::npos);
- test(S(""), "oknlr", 0, 2, S::npos);
- test(S(""), "pcdro", 0, 4, S::npos);
- test(S(""), "bnrpe", 0, 5, S::npos);
- test(S(""), "jtdaefblso", 0, 0, S::npos);
- test(S(""), "oselktgbca", 0, 1, S::npos);
- test(S(""), "eqgaplhckj", 0, 5, S::npos);
- test(S(""), "bjahtcmnlp", 0, 9, S::npos);
- test(S(""), "hjlcmgpket", 0, 10, S::npos);
- test(S(""), "htaobedqikfplcgjsmrn", 0, 0, S::npos);
- test(S(""), "hpqiarojkcdlsgnmfetb", 0, 1, S::npos);
- test(S(""), "dfkaprhjloqetcsimnbg", 0, 10, S::npos);
- test(S(""), "ihqrfebgadntlpmjksoc", 0, 19, S::npos);
- test(S(""), "ngtjfcalbseiqrphmkdo", 0, 20, S::npos);
- test(S(""), "", 1, 0, S::npos);
- test(S(""), "lbtqd", 1, 0, S::npos);
- test(S(""), "tboim", 1, 1, S::npos);
- test(S(""), "slcer", 1, 2, S::npos);
- test(S(""), "cbjfs", 1, 4, S::npos);
- test(S(""), "aqibs", 1, 5, S::npos);
- test(S(""), "gtfblmqinc", 1, 0, S::npos);
- test(S(""), "mkqpbtdalg", 1, 1, S::npos);
- test(S(""), "kphatlimcd", 1, 5, S::npos);
- test(S(""), "pblasqogic", 1, 9, S::npos);
- test(S(""), "arosdhcfme", 1, 10, S::npos);
- test(S(""), "blkhjeogicatqfnpdmsr", 1, 0, S::npos);
- test(S(""), "bmhineprjcoadgstflqk", 1, 1, S::npos);
- test(S(""), "djkqcmetslnghpbarfoi", 1, 10, S::npos);
- test(S(""), "lgokshjtpbemarcdqnfi", 1, 19, S::npos);
- test(S(""), "bqjhtkfepimcnsgrlado", 1, 20, S::npos);
- test(S("eaint"), "", 0, 0, S::npos);
- test(S("binja"), "gfsrt", 0, 0, S::npos);
- test(S("latkm"), "pfsoc", 0, 1, S::npos);
- test(S("lecfr"), "tpflm", 0, 2, S::npos);
- test(S("eqkst"), "sgkec", 0, 4, 0);
- test(S("cdafr"), "romds", 0, 5, 1);
- test(S("prbhe"), "qhjistlgmr", 0, 0, S::npos);
- test(S("lbisk"), "pedfirsglo", 0, 1, S::npos);
- test(S("hrlpd"), "aqcoslgrmk", 0, 5, S::npos);
- test(S("ehmja"), "dabckmepqj", 0, 9, 0);
- test(S("mhqgd"), "pqscrjthli", 0, 10, 1);
- test(S("tgklq"), "kfphdcsjqmobliagtren", 0, 0, S::npos);
- test(S("bocjs"), "rokpefncljibsdhqtagm", 0, 1, S::npos);
- test(S("grbsd"), "afionmkphlebtcjqsgrd", 0, 10, S::npos);
- test(S("ofjqr"), "aenmqplidhkofrjbctsg", 0, 19, 0);
- test(S("btlfi"), "osjmbtcadhiklegrpqnf", 0, 20, 0);
- test(S("clrgb"), "", 1, 0, S::npos);
- test(S("tjmek"), "osmia", 1, 0, S::npos);
- test(S("bgstp"), "ckonl", 1, 1, S::npos);
- test(S("hstrk"), "ilcaj", 1, 2, S::npos);
- test(S("kmspj"), "lasiq", 1, 4, 2);
- test(S("tjboh"), "kfqmr", 1, 5, S::npos);
- test(S("ilbcj"), "klnitfaobg", 1, 0, S::npos);
- test(S("jkngf"), "gjhmdlqikp", 1, 1, 3);
- test(S("gfcql"), "skbgtahqej", 1, 5, S::npos);
- test(S("dqtlg"), "bjsdgtlpkf", 1, 9, 2);
- test(S("bthpg"), "bjgfmnlkio", 1, 10, 4);
- test(S("dgsnq"), "lbhepotfsjdqigcnamkr", 1, 0, S::npos);
- test(S("rmfhp"), "tebangckmpsrqdlfojhi", 1, 1, S::npos);
- test(S("jfdam"), "joflqbdkhtegimscpanr", 1, 10, 1);
- test(S("edapb"), "adpmcohetfbsrjinlqkg", 1, 19, 1);
- test(S("brfsm"), "iacldqjpfnogbsrhmetk", 1, 20, 1);
- test(S("ndrhl"), "", 2, 0, S::npos);
- test(S("mrecp"), "otkgb", 2, 0, S::npos);
- test(S("qlasf"), "cqsjl", 2, 1, S::npos);
- test(S("smaqd"), "dpifl", 2, 2, 4);
- test(S("hjeni"), "oapht", 2, 4, S::npos);
- test(S("ocmfj"), "cifts", 2, 5, 3);
- test(S("hmftq"), "nmsckbgalo", 2, 0, S::npos);
- test(S("fklad"), "tpksqhamle", 2, 1, S::npos);
- test(S("dirnm"), "tpdrchmkji", 2, 5, 2);
- test(S("hrgdc"), "ijagfkblst", 2, 9, 2);
- test(S("ifakg"), "kpocsignjb", 2, 10, 3);
- test(S("ebrgd"), "pecqtkjsnbdrialgmohf", 2, 0, S::npos);
- test(S("rcjml"), "aiortphfcmkjebgsndql", 2, 1, S::npos);
- test(S("peqmt"), "sdbkeamglhipojqftrcn", 2, 10, 3);
- test(S("frehn"), "ljqncehgmfktroapidbs", 2, 19, 2);
- test(S("tqolf"), "rtcfodilamkbenjghqps", 2, 20, 2);
- test(S("cjgao"), "", 4, 0, S::npos);
- test(S("kjplq"), "mabns", 4, 0, S::npos);
- test(S("herni"), "bdnrp", 4, 1, S::npos);
- test(S("tadrb"), "scidp", 4, 2, S::npos);
- test(S("pkfeo"), "agbjl", 4, 4, S::npos);
- test(S("hoser"), "jfmpr", 4, 5, 4);
- test(S("kgrsp"), "rbpefghsmj", 4, 0, S::npos);
- test(S("pgejb"), "apsfntdoqc", 4, 1, S::npos);
- test(S("thlnq"), "ndkjeisgcl", 4, 5, S::npos);
- test(S("nbmit"), "rnfpqatdeo", 4, 9, 4);
- test(S("jgmib"), "bntjlqrfik", 4, 10, 4);
- test(S("ncrfj"), "kcrtmpolnaqejghsfdbi", 4, 0, S::npos);
- test(S("ncsik"), "lobheanpkmqidsrtcfgj", 4, 1, S::npos);
- test(S("sgbfh"), "athdkljcnreqbgpmisof", 4, 10, 4);
- test(S("dktbn"), "qkdmjialrscpbhefgont", 4, 19, 4);
- test(S("fthqm"), "dmasojntqleribkgfchp", 4, 20, 4);
- test(S("klopi"), "", 5, 0, S::npos);
- test(S("dajhn"), "psthd", 5, 0, S::npos);
- test(S("jbgno"), "rpmjd", 5, 1, S::npos);
- test(S("hkjae"), "dfsmk", 5, 2, S::npos);
+TEST_CONSTEXPR_CXX20 void test0() {
+ test(S(""), "", 0, 0, S::npos);
+ test(S(""), "irkhs", 0, 0, S::npos);
+ test(S(""), "kante", 0, 1, S::npos);
+ test(S(""), "oknlr", 0, 2, S::npos);
+ test(S(""), "pcdro", 0, 4, S::npos);
+ test(S(""), "bnrpe", 0, 5, S::npos);
+ test(S(""), "jtdaefblso", 0, 0, S::npos);
+ test(S(""), "oselktgbca", 0, 1, S::npos);
+ test(S(""), "eqgaplhckj", 0, 5, S::npos);
+ test(S(""), "bjahtcmnlp", 0, 9, S::npos);
+ test(S(""), "hjlcmgpket", 0, 10, S::npos);
+ test(S(""), "htaobedqikfplcgjsmrn", 0, 0, S::npos);
+ test(S(""), "hpqiarojkcdlsgnmfetb", 0, 1, S::npos);
+ test(S(""), "dfkaprhjloqetcsimnbg", 0, 10, S::npos);
+ test(S(""), "ihqrfebgadntlpmjksoc", 0, 19, S::npos);
+ test(S(""), "ngtjfcalbseiqrphmkdo", 0, 20, S::npos);
+ test(S(""), "", 1, 0, S::npos);
+ test(S(""), "lbtqd", 1, 0, S::npos);
+ test(S(""), "tboim", 1, 1, S::npos);
+ test(S(""), "slcer", 1, 2, S::npos);
+ test(S(""), "cbjfs", 1, 4, S::npos);
+ test(S(""), "aqibs", 1, 5, S::npos);
+ test(S(""), "gtfblmqinc", 1, 0, S::npos);
+ test(S(""), "mkqpbtdalg", 1, 1, S::npos);
+ test(S(""), "kphatlimcd", 1, 5, S::npos);
+ test(S(""), "pblasqogic", 1, 9, S::npos);
+ test(S(""), "arosdhcfme", 1, 10, S::npos);
+ test(S(""), "blkhjeogicatqfnpdmsr", 1, 0, S::npos);
+ test(S(""), "bmhineprjcoadgstflqk", 1, 1, S::npos);
+ test(S(""), "djkqcmetslnghpbarfoi", 1, 10, S::npos);
+ test(S(""), "lgokshjtpbemarcdqnfi", 1, 19, S::npos);
+ test(S(""), "bqjhtkfepimcnsgrlado", 1, 20, S::npos);
+ test(S("eaint"), "", 0, 0, S::npos);
+ test(S("binja"), "gfsrt", 0, 0, S::npos);
+ test(S("latkm"), "pfsoc", 0, 1, S::npos);
+ test(S("lecfr"), "tpflm", 0, 2, S::npos);
+ test(S("eqkst"), "sgkec", 0, 4, 0);
+ test(S("cdafr"), "romds", 0, 5, 1);
+ test(S("prbhe"), "qhjistlgmr", 0, 0, S::npos);
+ test(S("lbisk"), "pedfirsglo", 0, 1, S::npos);
+ test(S("hrlpd"), "aqcoslgrmk", 0, 5, S::npos);
+ test(S("ehmja"), "dabckmepqj", 0, 9, 0);
+ test(S("mhqgd"), "pqscrjthli", 0, 10, 1);
+ test(S("tgklq"), "kfphdcsjqmobliagtren", 0, 0, S::npos);
+ test(S("bocjs"), "rokpefncljibsdhqtagm", 0, 1, S::npos);
+ test(S("grbsd"), "afionmkphlebtcjqsgrd", 0, 10, S::npos);
+ test(S("ofjqr"), "aenmqplidhkofrjbctsg", 0, 19, 0);
+ test(S("btlfi"), "osjmbtcadhiklegrpqnf", 0, 20, 0);
+ test(S("clrgb"), "", 1, 0, S::npos);
+ test(S("tjmek"), "osmia", 1, 0, S::npos);
+ test(S("bgstp"), "ckonl", 1, 1, S::npos);
+ test(S("hstrk"), "ilcaj", 1, 2, S::npos);
+ test(S("kmspj"), "lasiq", 1, 4, 2);
+ test(S("tjboh"), "kfqmr", 1, 5, S::npos);
+ test(S("ilbcj"), "klnitfaobg", 1, 0, S::npos);
+ test(S("jkngf"), "gjhmdlqikp", 1, 1, 3);
+ test(S("gfcql"), "skbgtahqej", 1, 5, S::npos);
+ test(S("dqtlg"), "bjsdgtlpkf", 1, 9, 2);
+ test(S("bthpg"), "bjgfmnlkio", 1, 10, 4);
+ test(S("dgsnq"), "lbhepotfsjdqigcnamkr", 1, 0, S::npos);
+ test(S("rmfhp"), "tebangckmpsrqdlfojhi", 1, 1, S::npos);
+ test(S("jfdam"), "joflqbdkhtegimscpanr", 1, 10, 1);
+ test(S("edapb"), "adpmcohetfbsrjinlqkg", 1, 19, 1);
+ test(S("brfsm"), "iacldqjpfnogbsrhmetk", 1, 20, 1);
+ test(S("ndrhl"), "", 2, 0, S::npos);
+ test(S("mrecp"), "otkgb", 2, 0, S::npos);
+ test(S("qlasf"), "cqsjl", 2, 1, S::npos);
+ test(S("smaqd"), "dpifl", 2, 2, 4);
+ test(S("hjeni"), "oapht", 2, 4, S::npos);
+ test(S("ocmfj"), "cifts", 2, 5, 3);
+ test(S("hmftq"), "nmsckbgalo", 2, 0, S::npos);
+ test(S("fklad"), "tpksqhamle", 2, 1, S::npos);
+ test(S("dirnm"), "tpdrchmkji", 2, 5, 2);
+ test(S("hrgdc"), "ijagfkblst", 2, 9, 2);
+ test(S("ifakg"), "kpocsignjb", 2, 10, 3);
+ test(S("ebrgd"), "pecqtkjsnbdrialgmohf", 2, 0, S::npos);
+ test(S("rcjml"), "aiortphfcmkjebgsndql", 2, 1, S::npos);
+ test(S("peqmt"), "sdbkeamglhipojqftrcn", 2, 10, 3);
+ test(S("frehn"), "ljqncehgmfktroapidbs", 2, 19, 2);
+ test(S("tqolf"), "rtcfodilamkbenjghqps", 2, 20, 2);
+ test(S("cjgao"), "", 4, 0, S::npos);
+ test(S("kjplq"), "mabns", 4, 0, S::npos);
+ test(S("herni"), "bdnrp", 4, 1, S::npos);
+ test(S("tadrb"), "scidp", 4, 2, S::npos);
+ test(S("pkfeo"), "agbjl", 4, 4, S::npos);
+ test(S("hoser"), "jfmpr", 4, 5, 4);
+ test(S("kgrsp"), "rbpefghsmj", 4, 0, S::npos);
+ test(S("pgejb"), "apsfntdoqc", 4, 1, S::npos);
+ test(S("thlnq"), "ndkjeisgcl", 4, 5, S::npos);
+ test(S("nbmit"), "rnfpqatdeo", 4, 9, 4);
+ test(S("jgmib"), "bntjlqrfik", 4, 10, 4);
+ test(S("ncrfj"), "kcrtmpolnaqejghsfdbi", 4, 0, S::npos);
+ test(S("ncsik"), "lobheanpkmqidsrtcfgj", 4, 1, S::npos);
+ test(S("sgbfh"), "athdkljcnreqbgpmisof", 4, 10, 4);
+ test(S("dktbn"), "qkdmjialrscpbhefgont", 4, 19, 4);
+ test(S("fthqm"), "dmasojntqleribkgfchp", 4, 20, 4);
+ test(S("klopi"), "", 5, 0, S::npos);
+ test(S("dajhn"), "psthd", 5, 0, S::npos);
+ test(S("jbgno"), "rpmjd", 5, 1, S::npos);
+ test(S("hkjae"), "dfsmk", 5, 2, S::npos);
}
template <class S>
-TEST_CONSTEXPR_CXX20 void test1()
-{
- test(S("gbhqo"), "skqne", 5, 4, S::npos);
- test(S("ktdor"), "kipnf", 5, 5, S::npos);
- test(S("ldprn"), "hmrnqdgifl", 5, 0, S::npos);
- test(S("egmjk"), "fsmjcdairn", 5, 1, S::npos);
- test(S("armql"), "pcdgltbrfj", 5, 5, S::npos);
- test(S("cdhjo"), "aekfctpirg", 5, 9, S::npos);
- test(S("jcons"), "ledihrsgpf", 5, 10, S::npos);
- test(S("cbrkp"), "mqcklahsbtirgopefndj", 5, 0, S::npos);
- test(S("fhgna"), "kmlthaoqgecrnpdbjfis", 5, 1, S::npos);
- test(S("ejfcd"), "sfhbamcdptojlkrenqgi", 5, 10, S::npos);
- test(S("kqjhe"), "pbniofmcedrkhlstgaqj", 5, 19, S::npos);
- test(S("pbdjl"), "mongjratcskbhqiepfdl", 5, 20, S::npos);
- test(S("gajqn"), "", 6, 0, S::npos);
- test(S("stedk"), "hrnat", 6, 0, S::npos);
- test(S("tjkaf"), "gsqdt", 6, 1, S::npos);
- test(S("dthpe"), "bspkd", 6, 2, S::npos);
- test(S("klhde"), "ohcmb", 6, 4, S::npos);
- test(S("bhlki"), "heatr", 6, 5, S::npos);
- test(S("lqmoh"), "pmblckedfn", 6, 0, S::npos);
- test(S("mtqin"), "aceqmsrbik", 6, 1, S::npos);
- test(S("dpqbr"), "lmbtdehjrn", 6, 5, S::npos);
- test(S("kdhmo"), "teqmcrlgib", 6, 9, S::npos);
- test(S("jblqp"), "njolbmspac", 6, 10, S::npos);
- test(S("qmjgl"), "pofnhidklamecrbqjgst", 6, 0, S::npos);
- test(S("rothp"), "jbhckmtgrqnosafedpli", 6, 1, S::npos);
- test(S("ghknq"), "dobntpmqklicsahgjerf", 6, 10, S::npos);
- test(S("eopfi"), "tpdshainjkbfoemlrgcq", 6, 19, S::npos);
- test(S("dsnmg"), "oldpfgeakrnitscbjmqh", 6, 20, S::npos);
- test(S("jnkrfhotgl"), "", 0, 0, S::npos);
- test(S("dltjfngbko"), "rqegt", 0, 0, S::npos);
- test(S("bmjlpkiqde"), "dashm", 0, 1, 8);
- test(S("skrflobnqm"), "jqirk", 0, 2, 8);
- test(S("jkpldtshrm"), "rckeg", 0, 4, 1);
- test(S("ghasdbnjqo"), "jscie", 0, 5, 3);
- test(S("igrkhpbqjt"), "efsphndliq", 0, 0, S::npos);
- test(S("ikthdgcamf"), "gdicosleja", 0, 1, 5);
- test(S("pcofgeniam"), "qcpjibosfl", 0, 5, 0);
- test(S("rlfjgesqhc"), "lrhmefnjcq", 0, 9, 0);
- test(S("itphbqsker"), "dtablcrseo", 0, 10, 1);
- test(S("skjafcirqm"), "apckjsftedbhgomrnilq", 0, 0, S::npos);
- test(S("tcqomarsfd"), "pcbrgflehjtiadnsokqm", 0, 1, S::npos);
- test(S("rocfeldqpk"), "nsiadegjklhobrmtqcpf", 0, 10, 4);
- test(S("cfpegndlkt"), "cpmajdqnolikhgsbretf", 0, 19, 0);
- test(S("fqbtnkeasj"), "jcflkntmgiqrphdosaeb", 0, 20, 0);
- test(S("shbcqnmoar"), "", 1, 0, S::npos);
- test(S("bdoshlmfin"), "ontrs", 1, 0, S::npos);
- test(S("khfrebnsgq"), "pfkna", 1, 1, S::npos);
- test(S("getcrsaoji"), "ekosa", 1, 2, 1);
- test(S("fjiknedcpq"), "anqhk", 1, 4, 4);
- test(S("tkejgnafrm"), "jekca", 1, 5, 1);
- test(S("jnakolqrde"), "ikemsjgacf", 1, 0, S::npos);
- test(S("lcjptsmgbe"), "arolgsjkhm", 1, 1, S::npos);
- test(S("itfsmcjorl"), "oftkbldhre", 1, 5, 1);
- test(S("omchkfrjea"), "gbkqdoeftl", 1, 9, 4);
- test(S("cigfqkated"), "sqcflrgtim", 1, 10, 1);
- test(S("tscenjikml"), "fmhbkislrjdpanogqcet", 1, 0, S::npos);
- test(S("qcpaemsinf"), "rnioadktqlgpbcjsmhef", 1, 1, S::npos);
- test(S("gltkojeipd"), "oakgtnldpsefihqmjcbr", 1, 10, 1);
- test(S("qistfrgnmp"), "gbnaelosidmcjqktfhpr", 1, 19, 1);
- test(S("bdnpfcqaem"), "akbripjhlosndcmqgfet", 1, 20, 1);
- test(S("ectnhskflp"), "", 5, 0, S::npos);
- test(S("fgtianblpq"), "pijag", 5, 0, S::npos);
- test(S("mfeqklirnh"), "jrckd", 5, 1, S::npos);
- test(S("astedncjhk"), "qcloh", 5, 2, 6);
- test(S("fhlqgcajbr"), "thlmp", 5, 4, S::npos);
- test(S("epfhocmdng"), "qidmo", 5, 5, 6);
- test(S("apcnsibger"), "lnegpsjqrd", 5, 0, S::npos);
- test(S("aqkocrbign"), "rjqdablmfs", 5, 1, 5);
- test(S("ijsmdtqgce"), "enkgpbsjaq", 5, 5, 7);
- test(S("clobgsrken"), "kdsgoaijfh", 5, 9, 5);
- test(S("jbhcfposld"), "trfqgmckbe", 5, 10, S::npos);
- test(S("oqnpblhide"), "igetsracjfkdnpoblhqm", 5, 0, S::npos);
- test(S("lroeasctif"), "nqctfaogirshlekbdjpm", 5, 1, S::npos);
- test(S("bpjlgmiedh"), "csehfgomljdqinbartkp", 5, 10, 5);
- test(S("pamkeoidrj"), "qahoegcmplkfsjbdnitr", 5, 19, 5);
- test(S("espogqbthk"), "dpteiajrqmsognhlfbkc", 5, 20, 5);
- test(S("shoiedtcjb"), "", 9, 0, S::npos);
- test(S("ebcinjgads"), "tqbnh", 9, 0, S::npos);
- test(S("dqmregkcfl"), "akmle", 9, 1, S::npos);
- test(S("ngcrieqajf"), "iqfkm", 9, 2, S::npos);
- test(S("qosmilgnjb"), "tqjsr", 9, 4, S::npos);
- test(S("ikabsjtdfl"), "jplqg", 9, 5, 9);
- test(S("ersmicafdh"), "oilnrbcgtj", 9, 0, S::npos);
- test(S("fdnplotmgh"), "morkglpesn", 9, 1, S::npos);
- test(S("fdbicojerm"), "dmicerngat", 9, 5, 9);
- test(S("mbtafndjcq"), "radgeskbtc", 9, 9, S::npos);
- test(S("mlenkpfdtc"), "ljikprsmqo", 9, 10, S::npos);
- test(S("ahlcifdqgs"), "trqihkcgsjamfdbolnpe", 9, 0, S::npos);
- test(S("bgjemaltks"), "lqmthbsrekajgnofcipd", 9, 1, S::npos);
- test(S("pdhslbqrfc"), "jtalmedribkgqsopcnfh", 9, 10, S::npos);
- test(S("dirhtsnjkc"), "spqfoiclmtagejbndkrh", 9, 19, 9);
- test(S("dlroktbcja"), "nmotklspigjrdhcfaebq", 9, 20, 9);
- test(S("ncjpmaekbs"), "", 10, 0, S::npos);
- test(S("hlbosgmrak"), "hpmsd", 10, 0, S::npos);
- test(S("pqfhsgilen"), "qnpor", 10, 1, S::npos);
- test(S("gqtjsbdckh"), "otdma", 10, 2, S::npos);
- test(S("cfkqpjlegi"), "efhjg", 10, 4, S::npos);
- test(S("beanrfodgj"), "odpte", 10, 5, S::npos);
- test(S("adtkqpbjfi"), "bctdgfmolr", 10, 0, S::npos);
- test(S("iomkfthagj"), "oaklidrbqg", 10, 1, S::npos);
+TEST_CONSTEXPR_CXX20 void test1() {
+ test(S("gbhqo"), "skqne", 5, 4, S::npos);
+ test(S("ktdor"), "kipnf", 5, 5, S::npos);
+ test(S("ldprn"), "hmrnqdgifl", 5, 0, S::npos);
+ test(S("egmjk"), "fsmjcdairn", 5, 1, S::npos);
+ test(S("armql"), "pcdgltbrfj", 5, 5, S::npos);
+ test(S("cdhjo"), "aekfctpirg", 5, 9, S::npos);
+ test(S("jcons"), "ledihrsgpf", 5, 10, S::npos);
+ test(S("cbrkp"), "mqcklahsbtirgopefndj", 5, 0, S::npos);
+ test(S("fhgna"), "kmlthaoqgecrnpdbjfis", 5, 1, S::npos);
+ test(S("ejfcd"), "sfhbamcdptojlkrenqgi", 5, 10, S::npos);
+ test(S("kqjhe"), "pbniofmcedrkhlstgaqj", 5, 19, S::npos);
+ test(S("pbdjl"), "mongjratcskbhqiepfdl", 5, 20, S::npos);
+ test(S("gajqn"), "", 6, 0, S::npos);
+ test(S("stedk"), "hrnat", 6, 0, S::npos);
+ test(S("tjkaf"), "gsqdt", 6, 1, S::npos);
+ test(S("dthpe"), "bspkd", 6, 2, S::npos);
+ test(S("klhde"), "ohcmb", 6, 4, S::npos);
+ test(S("bhlki"), "heatr", 6, 5, S::npos);
+ test(S("lqmoh"), "pmblckedfn", 6, 0, S::npos);
+ test(S("mtqin"), "aceqmsrbik", 6, 1, S::npos);
+ test(S("dpqbr"), "lmbtdehjrn", 6, 5, S::npos);
+ test(S("kdhmo"), "teqmcrlgib", 6, 9, S::npos);
+ test(S("jblqp"), "njolbmspac", 6, 10, S::npos);
+ test(S("qmjgl"), "pofnhidklamecrbqjgst", 6, 0, S::npos);
+ test(S("rothp"), "jbhckmtgrqnosafedpli", 6, 1, S::npos);
+ test(S("ghknq"), "dobntpmqklicsahgjerf", 6, 10, S::npos);
+ test(S("eopfi"), "tpdshainjkbfoemlrgcq", 6, 19, S::npos);
+ test(S("dsnmg"), "oldpfgeakrnitscbjmqh", 6, 20, S::npos);
+ test(S("jnkrfhotgl"), "", 0, 0, S::npos);
+ test(S("dltjfngbko"), "rqegt", 0, 0, S::npos);
+ test(S("bmjlpkiqde"), "dashm", 0, 1, 8);
+ test(S("skrflobnqm"), "jqirk", 0, 2, 8);
+ test(S("jkpldtshrm"), "rckeg", 0, 4, 1);
+ test(S("ghasdbnjqo"), "jscie", 0, 5, 3);
+ test(S("igrkhpbqjt"), "efsphndliq", 0, 0, S::npos);
+ test(S("ikthdgcamf"), "gdicosleja", 0, 1, 5);
+ test(S("pcofgeniam"), "qcpjibosfl", 0, 5, 0);
+ test(S("rlfjgesqhc"), "lrhmefnjcq", 0, 9, 0);
+ test(S("itphbqsker"), "dtablcrseo", 0, 10, 1);
+ test(S("skjafcirqm"), "apckjsftedbhgomrnilq", 0, 0, S::npos);
+ test(S("tcqomarsfd"), "pcbrgflehjtiadnsokqm", 0, 1, S::npos);
+ test(S("rocfeldqpk"), "nsiadegjklhobrmtqcpf", 0, 10, 4);
+ test(S("cfpegndlkt"), "cpmajdqnolikhgsbretf", 0, 19, 0);
+ test(S("fqbtnkeasj"), "jcflkntmgiqrphdosaeb", 0, 20, 0);
+ test(S("shbcqnmoar"), "", 1, 0, S::npos);
+ test(S("bdoshlmfin"), "ontrs", 1, 0, S::npos);
+ test(S("khfrebnsgq"), "pfkna", 1, 1, S::npos);
+ test(S("getcrsaoji"), "ekosa", 1, 2, 1);
+ test(S("fjiknedcpq"), "anqhk", 1, 4, 4);
+ test(S("tkejgnafrm"), "jekca", 1, 5, 1);
+ test(S("jnakolqrde"), "ikemsjgacf", 1, 0, S::npos);
+ test(S("lcjptsmgbe"), "arolgsjkhm", 1, 1, S::npos);
+ test(S("itfsmcjorl"), "oftkbldhre", 1, 5, 1);
+ test(S("omchkfrjea"), "gbkqdoeftl", 1, 9, 4);
+ test(S("cigfqkated"), "sqcflrgtim", 1, 10, 1);
+ test(S("tscenjikml"), "fmhbkislrjdpanogqcet", 1, 0, S::npos);
+ test(S("qcpaemsinf"), "rnioadktqlgpbcjsmhef", 1, 1, S::npos);
+ test(S("gltkojeipd"), "oakgtnldpsefihqmjcbr", 1, 10, 1);
+ test(S("qistfrgnmp"), "gbnaelosidmcjqktfhpr", 1, 19, 1);
+ test(S("bdnpfcqaem"), "akbripjhlosndcmqgfet", 1, 20, 1);
+ test(S("ectnhskflp"), "", 5, 0, S::npos);
+ test(S("fgtianblpq"), "pijag", 5, 0, S::npos);
+ test(S("mfeqklirnh"), "jrckd", 5, 1, S::npos);
+ test(S("astedncjhk"), "qcloh", 5, 2, 6);
+ test(S("fhlqgcajbr"), "thlmp", 5, 4, S::npos);
+ test(S("epfhocmdng"), "qidmo", 5, 5, 6);
+ test(S("apcnsibger"), "lnegpsjqrd", 5, 0, S::npos);
+ test(S("aqkocrbign"), "rjqdablmfs", 5, 1, 5);
+ test(S("ijsmdtqgce"), "enkgpbsjaq", 5, 5, 7);
+ test(S("clobgsrken"), "kdsgoaijfh", 5, 9, 5);
+ test(S("jbhcfposld"), "trfqgmckbe", 5, 10, S::npos);
+ test(S("oqnpblhide"), "igetsracjfkdnpoblhqm", 5, 0, S::npos);
+ test(S("lroeasctif"), "nqctfaogirshlekbdjpm", 5, 1, S::npos);
+ test(S("bpjlgmiedh"), "csehfgomljdqinbartkp", 5, 10, 5);
+ test(S("pamkeoidrj"), "qahoegcmplkfsjbdnitr", 5, 19, 5);
+ test(S("espogqbthk"), "dpteiajrqmsognhlfbkc", 5, 20, 5);
+ test(S("shoiedtcjb"), "", 9, 0, S::npos);
+ test(S("ebcinjgads"), "tqbnh", 9, 0, S::npos);
+ test(S("dqmregkcfl"), "akmle", 9, 1, S::npos);
+ test(S("ngcrieqajf"), "iqfkm", 9, 2, S::npos);
+ test(S("qosmilgnjb"), "tqjsr", 9, 4, S::npos);
+ test(S("ikabsjtdfl"), "jplqg", 9, 5, 9);
+ test(S("ersmicafdh"), "oilnrbcgtj", 9, 0, S::npos);
+ test(S("fdnplotmgh"), "morkglpesn", 9, 1, S::npos);
+ test(S("fdbicojerm"), "dmicerngat", 9, 5, 9);
+ test(S("mbtafndjcq"), "radgeskbtc", 9, 9, S::npos);
+ test(S("mlenkpfdtc"), "ljikprsmqo", 9, 10, S::npos);
+ test(S("ahlcifdqgs"), "trqihkcgsjamfdbolnpe", 9, 0, S::npos);
+ test(S("bgjemaltks"), "lqmthbsrekajgnofcipd", 9, 1, S::npos);
+ test(S("pdhslbqrfc"), "jtalmedribkgqsopcnfh", 9, 10, S::npos);
+ test(S("dirhtsnjkc"), "spqfoiclmtagejbndkrh", 9, 19, 9);
+ test(S("dlroktbcja"), "nmotklspigjrdhcfaebq", 9, 20, 9);
+ test(S("ncjpmaekbs"), "", 10, 0, S::npos);
+ test(S("hlbosgmrak"), "hpmsd", 10, 0, S::npos);
+ test(S("pqfhsgilen"), "qnpor", 10, 1, S::npos);
+ test(S("gqtjsbdckh"), "otdma", 10, 2, S::npos);
+ test(S("cfkqpjlegi"), "efhjg", 10, 4, S::npos);
+ test(S("beanrfodgj"), "odpte", 10, 5, S::npos);
+ test(S("adtkqpbjfi"), "bctdgfmolr", 10, 0, S::npos);
+ test(S("iomkfthagj"), "oaklidrbqg", 10, 1, S::npos);
}
template <class S>
-TEST_CONSTEXPR_CXX20 void test2()
-{
- test(S("sdpcilonqj"), "dnjfsagktr", 10, 5, S::npos);
- test(S("gtfbdkqeml"), "nejaktmiqg", 10, 9, S::npos);
- test(S("bmeqgcdorj"), "pjqonlebsf", 10, 10, S::npos);
- test(S("etqlcanmob"), "dshmnbtolcjepgaikfqr", 10, 0, S::npos);
- test(S("roqmkbdtia"), "iogfhpabtjkqlrnemcds", 10, 1, S::npos);
- test(S("kadsithljf"), "ngridfabjsecpqltkmoh", 10, 10, S::npos);
- test(S("sgtkpbfdmh"), "athmknplcgofrqejsdib", 10, 19, S::npos);
- test(S("qgmetnabkl"), "ldobhmqcafnjtkeisgrp", 10, 20, S::npos);
- test(S("cqjohampgd"), "", 11, 0, S::npos);
- test(S("hobitmpsan"), "aocjb", 11, 0, S::npos);
- test(S("tjehkpsalm"), "jbrnk", 11, 1, S::npos);
- test(S("ngfbojitcl"), "tqedg", 11, 2, S::npos);
- test(S("rcfkdbhgjo"), "nqskp", 11, 4, S::npos);
- test(S("qghptonrea"), "eaqkl", 11, 5, S::npos);
- test(S("hnprfgqjdl"), "reaoicljqm", 11, 0, S::npos);
- test(S("hlmgabenti"), "lsftgajqpm", 11, 1, S::npos);
- test(S("ofcjanmrbs"), "rlpfogmits", 11, 5, S::npos);
- test(S("jqedtkornm"), "shkncmiaqj", 11, 9, S::npos);
- test(S("rfedlasjmg"), "fpnatrhqgs", 11, 10, S::npos);
- test(S("talpqjsgkm"), "sjclemqhnpdbgikarfot", 11, 0, S::npos);
- test(S("lrkcbtqpie"), "otcmedjikgsfnqbrhpla", 11, 1, S::npos);
- test(S("cipogdskjf"), "bonsaefdqiprkhlgtjcm", 11, 10, S::npos);
- test(S("nqedcojahi"), "egpscmahijlfnkrodqtb", 11, 19, S::npos);
- test(S("hefnrkmctj"), "kmqbfepjthgilscrndoa", 11, 20, S::npos);
- test(S("atqirnmekfjolhpdsgcb"), "", 0, 0, S::npos);
- test(S("echfkmlpribjnqsaogtd"), "prboq", 0, 0, S::npos);
- test(S("qnhiftdgcleajbpkrosm"), "fjcqh", 0, 1, 4);
- test(S("chamfknorbedjitgslpq"), "fmosa", 0, 2, 3);
- test(S("njhqpibfmtlkaecdrgso"), "qdbok", 0, 4, 3);
- test(S("ebnghfsqkprmdcljoiat"), "amslg", 0, 5, 3);
- test(S("letjomsgihfrpqbkancd"), "smpltjneqb", 0, 0, S::npos);
- test(S("nblgoipcrqeaktshjdmf"), "flitskrnge", 0, 1, 19);
- test(S("cehkbngtjoiflqapsmrd"), "pgqihmlbef", 0, 5, 2);
- test(S("mignapfoklbhcqjetdrs"), "cfpdqjtgsb", 0, 9, 2);
- test(S("ceatbhlsqjgpnokfrmdi"), "htpsiaflom", 0, 10, 2);
- test(S("ocihkjgrdelpfnmastqb"), "kpjfiaceghsrdtlbnomq", 0, 0, S::npos);
- test(S("noelgschdtbrjfmiqkap"), "qhtbomidljgafneksprc", 0, 1, 16);
- test(S("dkclqfombepritjnghas"), "nhtjobkcefldimpsaqgr", 0, 10, 1);
- test(S("miklnresdgbhqcojftap"), "prabcjfqnoeskilmtgdh", 0, 19, 0);
- test(S("htbcigojaqmdkfrnlsep"), "dtrgmchilkasqoebfpjn", 0, 20, 0);
- test(S("febhmqtjanokscdirpgl"), "", 1, 0, S::npos);
- test(S("loakbsqjpcrdhftniegm"), "sqome", 1, 0, S::npos);
- test(S("reagphsqflbitdcjmkno"), "smfte", 1, 1, 6);
- test(S("jitlfrqemsdhkopncabg"), "ciboh", 1, 2, 1);
- test(S("mhtaepscdnrjqgbkifol"), "haois", 1, 4, 1);
- test(S("tocesrfmnglpbjihqadk"), "abfki", 1, 5, 6);
- test(S("lpfmctjrhdagneskbqoi"), "frdkocntmq", 1, 0, S::npos);
- test(S("lsmqaepkdhncirbtjfgo"), "oasbpedlnr", 1, 1, 19);
- test(S("epoiqmtldrabnkjhcfsg"), "kltqmhgand", 1, 5, 4);
- test(S("emgasrilpknqojhtbdcf"), "gdtfjchpmr", 1, 9, 1);
- test(S("hnfiagdpcklrjetqbsom"), "ponmcqblet", 1, 10, 1);
- test(S("nsdfebgajhmtricpoklq"), "sgphqdnofeiklatbcmjr", 1, 0, S::npos);
- test(S("atjgfsdlpobmeiqhncrk"), "ljqprsmigtfoneadckbh", 1, 1, 7);
- test(S("sitodfgnrejlahcbmqkp"), "ligeojhafnkmrcsqtbdp", 1, 10, 1);
- test(S("fraghmbiceknltjpqosd"), "lsimqfnjarbopedkhcgt", 1, 19, 1);
- test(S("pmafenlhqtdbkirjsogc"), "abedmfjlghniorcqptks", 1, 20, 1);
- test(S("pihgmoeqtnakrjslcbfd"), "", 10, 0, S::npos);
- test(S("gjdkeprctqblnhiafsom"), "hqtoa", 10, 0, S::npos);
- test(S("mkpnblfdsahrcqijteog"), "cahif", 10, 1, 12);
- test(S("gckarqnelodfjhmbptis"), "kehis", 10, 2, S::npos);
- test(S("gqpskidtbclomahnrjfe"), "kdlmh", 10, 4, 10);
- test(S("pkldjsqrfgitbhmaecno"), "paeql", 10, 5, 15);
- test(S("aftsijrbeklnmcdqhgop"), "aghoqiefnb", 10, 0, S::npos);
- test(S("mtlgdrhafjkbiepqnsoc"), "jrbqaikpdo", 10, 1, S::npos);
- test(S("pqgirnaefthokdmbsclj"), "smjonaeqcl", 10, 5, 11);
- test(S("kpdbgjmtherlsfcqoina"), "eqbdrkcfah", 10, 9, 10);
- test(S("jrlbothiknqmdgcfasep"), "kapmsienhf", 10, 10, 11);
- test(S("mjogldqferckabinptsh"), "jpqotrlenfcsbhkaimdg", 10, 0, S::npos);
- test(S("apoklnefbhmgqcdrisjt"), "jlbmhnfgtcqprikeados", 10, 1, 18);
- test(S("ifeopcnrjbhkdgatmqls"), "stgbhfmdaljnpqoicker", 10, 10, 10);
- test(S("ckqhaiesmjdnrgolbtpf"), "oihcetflbjagdsrkmqpn", 10, 19, 10);
- test(S("bnlgapfimcoterskqdjh"), "adtclebmnpjsrqfkigoh", 10, 20, 10);
- test(S("kgdlrobpmjcthqsafeni"), "", 19, 0, S::npos);
- test(S("dfkechomjapgnslbtqir"), "beafg", 19, 0, S::npos);
- test(S("rloadknfbqtgmhcsipje"), "iclat", 19, 1, S::npos);
- test(S("mgjhkolrnadqbpetcifs"), "rkhnf", 19, 2, S::npos);
- test(S("cmlfakiojdrgtbsphqen"), "clshq", 19, 4, S::npos);
- test(S("kghbfipeomsntdalrqjc"), "dtcoj", 19, 5, 19);
- test(S("eldiqckrnmtasbghjfpo"), "rqosnjmfth", 19, 0, S::npos);
- test(S("abqjcfedgotihlnspkrm"), "siatdfqglh", 19, 1, S::npos);
- test(S("qfbadrtjsimkolcenhpg"), "mrlshtpgjq", 19, 5, S::npos);
- test(S("abseghclkjqifmtodrnp"), "adlcskgqjt", 19, 9, S::npos);
- test(S("ibmsnlrjefhtdokacqpg"), "drshcjknaf", 19, 10, S::npos);
- test(S("mrkfciqjebaponsthldg"), "etsaqroinghpkjdlfcbm", 19, 0, S::npos);
- test(S("mjkticdeoqshpalrfbgn"), "sgepdnkqliambtrocfhj", 19, 1, S::npos);
- test(S("rqnoclbdejgiphtfsakm"), "nlmcjaqgbsortfdihkpe", 19, 10, 19);
- test(S("plkqbhmtfaeodjcrsing"), "racfnpmosldibqkghjet", 19, 19, 19);
- test(S("oegalhmstjrfickpbndq"), "fjhdsctkqeiolagrnmbp", 19, 20, 19);
- test(S("rdtgjcaohpblniekmsfq"), "", 20, 0, S::npos);
- test(S("ofkqbnjetrmsaidphglc"), "ejanp", 20, 0, S::npos);
- test(S("grkpahljcftesdmonqib"), "odife", 20, 1, S::npos);
- test(S("jimlgbhfqkteospardcn"), "okaqd", 20, 2, S::npos);
- test(S("gftenihpmslrjkqadcob"), "lcdbi", 20, 4, S::npos);
- test(S("bmhldogtckrfsanijepq"), "fsqbj", 20, 5, S::npos);
- test(S("nfqkrpjdesabgtlcmoih"), "bigdomnplq", 20, 0, S::npos);
- test(S("focalnrpiqmdkstehbjg"), "apiblotgcd", 20, 1, S::npos);
- test(S("rhqdspkmebiflcotnjga"), "acfhdenops", 20, 5, S::npos);
- test(S("rahdtmsckfboqlpniegj"), "jopdeamcrk", 20, 9, S::npos);
- test(S("fbkeiopclstmdqranjhg"), "trqncbkgmh", 20, 10, S::npos);
- test(S("lifhpdgmbconstjeqark"), "tomglrkencbsfjqpihda", 20, 0, S::npos);
+TEST_CONSTEXPR_CXX20 void test2() {
+ test(S("sdpcilonqj"), "dnjfsagktr", 10, 5, S::npos);
+ test(S("gtfbdkqeml"), "nejaktmiqg", 10, 9, S::npos);
+ test(S("bmeqgcdorj"), "pjqonlebsf", 10, 10, S::npos);
+ test(S("etqlcanmob"), "dshmnbtolcjepgaikfqr", 10, 0, S::npos);
+ test(S("roqmkbdtia"), "iogfhpabtjkqlrnemcds", 10, 1, S::npos);
+ test(S("kadsithljf"), "ngridfabjsecpqltkmoh", 10, 10, S::npos);
+ test(S("sgtkpbfdmh"), "athmknplcgofrqejsdib", 10, 19, S::npos);
+ test(S("qgmetnabkl"), "ldobhmqcafnjtkeisgrp", 10, 20, S::npos);
+ test(S("cqjohampgd"), "", 11, 0, S::npos);
+ test(S("hobitmpsan"), "aocjb", 11, 0, S::npos);
+ test(S("tjehkpsalm"), "jbrnk", 11, 1, S::npos);
+ test(S("ngfbojitcl"), "tqedg", 11, 2, S::npos);
+ test(S("rcfkdbhgjo"), "nqskp", 11, 4, S::npos);
+ test(S("qghptonrea"), "eaqkl", 11, 5, S::npos);
+ test(S("hnprfgqjdl"), "reaoicljqm", 11, 0, S::npos);
+ test(S("hlmgabenti"), "lsftgajqpm", 11, 1, S::npos);
+ test(S("ofcjanmrbs"), "rlpfogmits", 11, 5, S::npos);
+ test(S("jqedtkornm"), "shkncmiaqj", 11, 9, S::npos);
+ test(S("rfedlasjmg"), "fpnatrhqgs", 11, 10, S::npos);
+ test(S("talpqjsgkm"), "sjclemqhnpdbgikarfot", 11, 0, S::npos);
+ test(S("lrkcbtqpie"), "otcmedjikgsfnqbrhpla", 11, 1, S::npos);
+ test(S("cipogdskjf"), "bonsaefdqiprkhlgtjcm", 11, 10, S::npos);
+ test(S("nqedcojahi"), "egpscmahijlfnkrodqtb", 11, 19, S::npos);
+ test(S("hefnrkmctj"), "kmqbfepjthgilscrndoa", 11, 20, S::npos);
+ test(S("atqirnmekfjolhpdsgcb"), "", 0, 0, S::npos);
+ test(S("echfkmlpribjnqsaogtd"), "prboq", 0, 0, S::npos);
+ test(S("qnhiftdgcleajbpkrosm"), "fjcqh", 0, 1, 4);
+ test(S("chamfknorbedjitgslpq"), "fmosa", 0, 2, 3);
+ test(S("njhqpibfmtlkaecdrgso"), "qdbok", 0, 4, 3);
+ test(S("ebnghfsqkprmdcljoiat"), "amslg", 0, 5, 3);
+ test(S("letjomsgihfrpqbkancd"), "smpltjneqb", 0, 0, S::npos);
+ test(S("nblgoipcrqeaktshjdmf"), "flitskrnge", 0, 1, 19);
+ test(S("cehkbngtjoiflqapsmrd"), "pgqihmlbef", 0, 5, 2);
+ test(S("mignapfoklbhcqjetdrs"), "cfpdqjtgsb", 0, 9, 2);
+ test(S("ceatbhlsqjgpnokfrmdi"), "htpsiaflom", 0, 10, 2);
+ test(S("ocihkjgrdelpfnmastqb"), "kpjfiaceghsrdtlbnomq", 0, 0, S::npos);
+ test(S("noelgschdtbrjfmiqkap"), "qhtbomidljgafneksprc", 0, 1, 16);
+ test(S("dkclqfombepritjnghas"), "nhtjobkcefldimpsaqgr", 0, 10, 1);
+ test(S("miklnresdgbhqcojftap"), "prabcjfqnoeskilmtgdh", 0, 19, 0);
+ test(S("htbcigojaqmdkfrnlsep"), "dtrgmchilkasqoebfpjn", 0, 20, 0);
+ test(S("febhmqtjanokscdirpgl"), "", 1, 0, S::npos);
+ test(S("loakbsqjpcrdhftniegm"), "sqome", 1, 0, S::npos);
+ test(S("reagphsqflbitdcjmkno"), "smfte", 1, 1, 6);
+ test(S("jitlfrqemsdhkopncabg"), "ciboh", 1, 2, 1);
+ test(S("mhtaepscdnrjqgbkifol"), "haois", 1, 4, 1);
+ test(S("tocesrfmnglpbjihqadk"), "abfki", 1, 5, 6);
+ test(S("lpfmctjrhdagneskbqoi"), "frdkocntmq", 1, 0, S::npos);
+ test(S("lsmqaepkdhncirbtjfgo"), "oasbpedlnr", 1, 1, 19);
+ test(S("epoiqmtldrabnkjhcfsg"), "kltqmhgand", 1, 5, 4);
+ test(S("emgasrilpknqojhtbdcf"), "gdtfjchpmr", 1, 9, 1);
+ test(S("hnfiagdpcklrjetqbsom"), "ponmcqblet", 1, 10, 1);
+ test(S("nsdfebgajhmtricpoklq"), "sgphqdnofeiklatbcmjr", 1, 0, S::npos);
+ test(S("atjgfsdlpobmeiqhncrk"), "ljqprsmigtfoneadckbh", 1, 1, 7);
+ test(S("sitodfgnrejlahcbmqkp"), "ligeojhafnkmrcsqtbdp", 1, 10, 1);
+ test(S("fraghmbiceknltjpqosd"), "lsimqfnjarbopedkhcgt", 1, 19, 1);
+ test(S("pmafenlhqtdbkirjsogc"), "abedmfjlghniorcqptks", 1, 20, 1);
+ test(S("pihgmoeqtnakrjslcbfd"), "", 10, 0, S::npos);
+ test(S("gjdkeprctqblnhiafsom"), "hqtoa", 10, 0, S::npos);
+ test(S("mkpnblfdsahrcqijteog"), "cahif", 10, 1, 12);
+ test(S("gckarqnelodfjhmbptis"), "kehis", 10, 2, S::npos);
+ test(S("gqpskidtbclomahnrjfe"), "kdlmh", 10, 4, 10);
+ test(S("pkldjsqrfgitbhmaecno"), "paeql", 10, 5, 15);
+ test(S("aftsijrbeklnmcdqhgop"), "aghoqiefnb", 10, 0, S::npos);
+ test(S("mtlgdrhafjkbiepqnsoc"), "jrbqaikpdo", 10, 1, S::npos);
+ test(S("pqgirnaefthokdmbsclj"), "smjonaeqcl", 10, 5, 11);
+ test(S("kpdbgjmtherlsfcqoina"), "eqbdrkcfah", 10, 9, 10);
+ test(S("jrlbothiknqmdgcfasep"), "kapmsienhf", 10, 10, 11);
+ test(S("mjogldqferckabinptsh"), "jpqotrlenfcsbhkaimdg", 10, 0, S::npos);
+ test(S("apoklnefbhmgqcdrisjt"), "jlbmhnfgtcqprikeados", 10, 1, 18);
+ test(S("ifeopcnrjbhkdgatmqls"), "stgbhfmdaljnpqoicker", 10, 10, 10);
+ test(S("ckqhaiesmjdnrgolbtpf"), "oihcetflbjagdsrkmqpn", 10, 19, 10);
+ test(S("bnlgapfimcoterskqdjh"), "adtclebmnpjsrqfkigoh", 10, 20, 10);
+ test(S("kgdlrobpmjcthqsafeni"), "", 19, 0, S::npos);
+ test(S("dfkechomjapgnslbtqir"), "beafg", 19, 0, S::npos);
+ test(S("rloadknfbqtgmhcsipje"), "iclat", 19, 1, S::npos);
+ test(S("mgjhkolrnadqbpetcifs"), "rkhnf", 19, 2, S::npos);
+ test(S("cmlfakiojdrgtbsphqen"), "clshq", 19, 4, S::npos);
+ test(S("kghbfipeomsntdalrqjc"), "dtcoj", 19, 5, 19);
+ test(S("eldiqckrnmtasbghjfpo"), "rqosnjmfth", 19, 0, S::npos);
+ test(S("abqjcfedgotihlnspkrm"), "siatdfqglh", 19, 1, S::npos);
+ test(S("qfbadrtjsimkolcenhpg"), "mrlshtpgjq", 19, 5, S::npos);
+ test(S("abseghclkjqifmtodrnp"), "adlcskgqjt", 19, 9, S::npos);
+ test(S("ibmsnlrjefhtdokacqpg"), "drshcjknaf", 19, 10, S::npos);
+ test(S("mrkfciqjebaponsthldg"), "etsaqroinghpkjdlfcbm", 19, 0, S::npos);
+ test(S("mjkticdeoqshpalrfbgn"), "sgepdnkqliambtrocfhj", 19, 1, S::npos);
+ test(S("rqnoclbdejgiphtfsakm"), "nlmcjaqgbsortfdihkpe", 19, 10, 19);
+ test(S("plkqbhmtfaeodjcrsing"), "racfnpmosldibqkghjet", 19, 19, 19);
+ test(S("oegalhmstjrfickpbndq"), "fjhdsctkqeiolagrnmbp", 19, 20, 19);
+ test(S("rdtgjcaohpblniekmsfq"), "", 20, 0, S::npos);
+ test(S("ofkqbnjetrmsaidphglc"), "ejanp", 20, 0, S::npos);
+ test(S("grkpahljcftesdmonqib"), "odife", 20, 1, S::npos);
+ test(S("jimlgbhfqkteospardcn"), "okaqd", 20, 2, S::npos);
+ test(S("gftenihpmslrjkqadcob"), "lcdbi", 20, 4, S::npos);
+ test(S("bmhldogtckrfsanijepq"), "fsqbj", 20, 5, S::npos);
+ test(S("nfqkrpjdesabgtlcmoih"), "bigdomnplq", 20, 0, S::npos);
+ test(S("focalnrpiqmdkstehbjg"), "apiblotgcd", 20, 1, S::npos);
+ test(S("rhqdspkmebiflcotnjga"), "acfhdenops", 20, 5, S::npos);
+ test(S("rahdtmsckfboqlpniegj"), "jopdeamcrk", 20, 9, S::npos);
+ test(S("fbkeiopclstmdqranjhg"), "trqncbkgmh", 20, 10, S::npos);
+ test(S("lifhpdgmbconstjeqark"), "tomglrkencbsfjqpihda", 20, 0, S::npos);
}
template <class S>
-TEST_CONSTEXPR_CXX20 void test3()
-{
- test(S("pboqganrhedjmltsicfk"), "gbkhdnpoietfcmrslajq", 20, 1, S::npos);
- test(S("klchabsimetjnqgorfpd"), "rtfnmbsglkjaichoqedp", 20, 10, S::npos);
- test(S("sirfgmjqhctndbklaepo"), "ohkmdpfqbsacrtjnlgei", 20, 19, S::npos);
- test(S("rlbdsiceaonqjtfpghkm"), "dlbrteoisgphmkncajfq", 20, 20, S::npos);
- test(S("ecgdanriptblhjfqskom"), "", 21, 0, S::npos);
- test(S("fdmiarlpgcskbhoteqjn"), "sjrlo", 21, 0, S::npos);
- test(S("rlbstjqopignecmfadkh"), "qjpor", 21, 1, S::npos);
- test(S("grjpqmbshektdolcafni"), "odhfn", 21, 2, S::npos);
- test(S("sakfcohtqnibprjmlged"), "qtfin", 21, 4, S::npos);
- test(S("mjtdglasihqpocebrfkn"), "hpqfo", 21, 5, S::npos);
- test(S("okaplfrntghqbmeicsdj"), "fabmertkos", 21, 0, S::npos);
- test(S("sahngemrtcjidqbklfpo"), "brqtgkmaej", 21, 1, S::npos);
- test(S("dlmsipcnekhbgoaftqjr"), "nfrdeihsgl", 21, 5, S::npos);
- test(S("ahegrmqnoiklpfsdbcjt"), "hlfrosekpi", 21, 9, S::npos);
- test(S("hdsjbnmlegtkqripacof"), "atgbkrjdsm", 21, 10, S::npos);
- test(S("pcnedrfjihqbalkgtoms"), "blnrptjgqmaifsdkhoec", 21, 0, S::npos);
- test(S("qjidealmtpskrbfhocng"), "ctpmdahebfqjgknloris", 21, 1, S::npos);
- test(S("qeindtagmokpfhsclrbj"), "apnkeqthrmlbfodiscgj", 21, 10, S::npos);
- test(S("kpfegbjhsrnodltqciam"), "jdgictpframeoqlsbknh", 21, 19, S::npos);
- test(S("hnbrcplsjfgiktoedmaq"), "qprlsfojamgndekthibc", 21, 20, S::npos);
+TEST_CONSTEXPR_CXX20 void test3() {
+ test(S("pboqganrhedjmltsicfk"), "gbkhdnpoietfcmrslajq", 20, 1, S::npos);
+ test(S("klchabsimetjnqgorfpd"), "rtfnmbsglkjaichoqedp", 20, 10, S::npos);
+ test(S("sirfgmjqhctndbklaepo"), "ohkmdpfqbsacrtjnlgei", 20, 19, S::npos);
+ test(S("rlbdsiceaonqjtfpghkm"), "dlbrteoisgphmkncajfq", 20, 20, S::npos);
+ test(S("ecgdanriptblhjfqskom"), "", 21, 0, S::npos);
+ test(S("fdmiarlpgcskbhoteqjn"), "sjrlo", 21, 0, S::npos);
+ test(S("rlbstjqopignecmfadkh"), "qjpor", 21, 1, S::npos);
+ test(S("grjpqmbshektdolcafni"), "odhfn", 21, 2, S::npos);
+ test(S("sakfcohtqnibprjmlged"), "qtfin", 21, 4, S::npos);
+ test(S("mjtdglasihqpocebrfkn"), "hpqfo", 21, 5, S::npos);
+ test(S("okaplfrntghqbmeicsdj"), "fabmertkos", 21, 0, S::npos);
+ test(S("sahngemrtcjidqbklfpo"), "brqtgkmaej", 21, 1, S::npos);
+ test(S("dlmsipcnekhbgoaftqjr"), "nfrdeihsgl", 21, 5, S::npos);
+ test(S("ahegrmqnoiklpfsdbcjt"), "hlfrosekpi", 21, 9, S::npos);
+ test(S("hdsjbnmlegtkqripacof"), "atgbkrjdsm", 21, 10, S::npos);
+ test(S("pcnedrfjihqbalkgtoms"), "blnrptjgqmaifsdkhoec", 21, 0, S::npos);
+ test(S("qjidealmtpskrbfhocng"), "ctpmdahebfqjgknloris", 21, 1, S::npos);
+ test(S("qeindtagmokpfhsclrbj"), "apnkeqthrmlbfodiscgj", 21, 10, S::npos);
+ test(S("kpfegbjhsrnodltqciam"), "jdgictpframeoqlsbknh", 21, 19, S::npos);
+ test(S("hnbrcplsjfgiktoedmaq"), "qprlsfojamgndekthibc", 21, 20, S::npos);
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -388,8 +386,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.ops/string_find.first.of/string_size.pass.cpp b/libcxx/test/std/strings/basic.string/string.ops/string_find.first.of/string_size.pass.cpp
index 68b5afc06a40d8a..f70a0018aa8afdd 100644
--- a/libcxx/test/std/strings/basic.string/string.ops/string_find.first.of/string_size.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.ops/string_find.first.of/string_size.pass.cpp
@@ -17,129 +17,123 @@
#include "min_allocator.h"
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(const S& s, const S& str, typename S::size_type pos, typename S::size_type x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.find_first_of(str, pos));
- assert(s.find_first_of(str, pos) == x);
- if (x != S::npos)
- assert(pos <= x && x < s.size());
+TEST_CONSTEXPR_CXX20 void test(const S& s, const S& str, typename S::size_type pos, typename S::size_type x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.find_first_of(str, pos));
+ assert(s.find_first_of(str, pos) == x);
+ if (x != S::npos)
+ assert(pos <= x && x < s.size());
}
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(const S& s, const S& str, typename S::size_type x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.find_first_of(str));
- assert(s.find_first_of(str) == x);
- if (x != S::npos)
- assert(x < s.size());
+TEST_CONSTEXPR_CXX20 void test(const S& s, const S& str, typename S::size_type x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.find_first_of(str));
+ assert(s.find_first_of(str) == x);
+ if (x != S::npos)
+ assert(x < s.size());
}
template <class S>
-TEST_CONSTEXPR_CXX20 void test0()
-{
- test(S(""), S(""), 0, S::npos);
- test(S(""), S("laenf"), 0, S::npos);
- test(S(""), S("pqlnkmbdjo"), 0, S::npos);
- test(S(""), S("qkamfogpnljdcshbreti"), 0, S::npos);
- test(S(""), S(""), 1, S::npos);
- test(S(""), S("bjaht"), 1, S::npos);
- test(S(""), S("hjlcmgpket"), 1, S::npos);
- test(S(""), S("htaobedqikfplcgjsmrn"), 1, S::npos);
- test(S("fodgq"), S(""), 0, S::npos);
- test(S("qanej"), S("dfkap"), 0, 1);
- test(S("clbao"), S("ihqrfebgad"), 0, 2);
- test(S("mekdn"), S("ngtjfcalbseiqrphmkdo"), 0, 0);
- test(S("srdfq"), S(""), 1, S::npos);
- test(S("oemth"), S("ikcrq"), 1, S::npos);
- test(S("cdaih"), S("dmajblfhsg"), 1, 1);
- test(S("qohtk"), S("oqftjhdmkgsblacenirp"), 1, 1);
- test(S("cshmd"), S(""), 2, S::npos);
- test(S("lhcdo"), S("oebqi"), 2, 4);
- test(S("qnsoh"), S("kojhpmbsfe"), 2, 2);
- test(S("pkrof"), S("acbsjqogpltdkhinfrem"), 2, 2);
- test(S("fmtsp"), S(""), 4, S::npos);
- test(S("khbpm"), S("aobjd"), 4, S::npos);
- test(S("pbsji"), S("pcbahntsje"), 4, S::npos);
- test(S("mprdj"), S("fhepcrntkoagbmldqijs"), 4, 4);
- test(S("eqmpa"), S(""), 5, S::npos);
- test(S("omigs"), S("kocgb"), 5, S::npos);
- test(S("onmje"), S("fbslrjiqkm"), 5, S::npos);
- test(S("oqmrj"), S("jeidpcmalhfnqbgtrsko"), 5, S::npos);
- test(S("schfa"), S(""), 6, S::npos);
- test(S("igdsc"), S("qngpd"), 6, S::npos);
- test(S("brqgo"), S("rodhqklgmb"), 6, S::npos);
- test(S("tnrph"), S("thdjgafrlbkoiqcspmne"), 6, S::npos);
- test(S("hcjitbfapl"), S(""), 0, S::npos);
- test(S("daiprenocl"), S("ashjd"), 0, 0);
- test(S("litpcfdghe"), S("mgojkldsqh"), 0, 0);
- test(S("aidjksrolc"), S("imqnaghkfrdtlopbjesc"), 0, 0);
- test(S("qpghtfbaji"), S(""), 1, S::npos);
- test(S("gfshlcmdjr"), S("nadkh"), 1, 3);
- test(S("nkodajteqp"), S("ofdrqmkebl"), 1, 1);
- test(S("gbmetiprqd"), S("bdfjqgatlksriohemnpc"), 1, 1);
- test(S("crnklpmegd"), S(""), 5, S::npos);
- test(S("jsbtafedoc"), S("prqgn"), 5, S::npos);
- test(S("qnmodrtkeb"), S("pejafmnokr"), 5, 5);
- test(S("cpebqsfmnj"), S("odnqkgijrhabfmcestlp"), 5, 5);
- test(S("lmofqdhpki"), S(""), 9, S::npos);
- test(S("hnefkqimca"), S("rtjpa"), 9, 9);
- test(S("drtasbgmfp"), S("ktsrmnqagd"), 9, S::npos);
- test(S("lsaijeqhtr"), S("rtdhgcisbnmoaqkfpjle"), 9, 9);
- test(S("elgofjmbrq"), S(""), 10, S::npos);
- test(S("mjqdgalkpc"), S("dplqa"), 10, S::npos);
- test(S("kthqnfcerm"), S("dkacjoptns"), 10, S::npos);
- test(S("dfsjhanorc"), S("hqfimtrgnbekpdcsjalo"), 10, S::npos);
- test(S("eqsgalomhb"), S(""), 11, S::npos);
- test(S("akiteljmoh"), S("lofbc"), 11, S::npos);
- test(S("hlbdfreqjo"), S("astoegbfpn"), 11, S::npos);
- test(S("taqobhlerg"), S("pdgreqomsncafklhtibj"), 11, S::npos);
- test(S("snafbdlghrjkpqtoceim"), S(""), 0, S::npos);
- test(S("aemtbrgcklhndjisfpoq"), S("lbtqd"), 0, 3);
- test(S("pnracgfkjdiholtbqsem"), S("tboimldpjh"), 0, 0);
- test(S("dicfltehbsgrmojnpkaq"), S("slcerthdaiqjfnobgkpm"), 0, 0);
- test(S("jlnkraeodhcspfgbqitm"), S(""), 1, S::npos);
- test(S("lhosrngtmfjikbqpcade"), S("aqibs"), 1, 3);
- test(S("rbtaqjhgkneisldpmfoc"), S("gtfblmqinc"), 1, 1);
- test(S("gpifsqlrdkbonjtmheca"), S("mkqpbtdalgniorhfescj"), 1, 1);
- test(S("hdpkobnsalmcfijregtq"), S(""), 10, S::npos);
- test(S("jtlshdgqaiprkbcoenfm"), S("pblas"), 10, 10);
- test(S("fkdrbqltsgmcoiphneaj"), S("arosdhcfme"), 10, 10);
- test(S("crsplifgtqedjohnabmk"), S("blkhjeogicatqfnpdmsr"), 10, 10);
- test(S("niptglfbosehkamrdqcj"), S(""), 19, S::npos);
- test(S("copqdhstbingamjfkler"), S("djkqc"), 19, S::npos);
- test(S("mrtaefilpdsgocnhqbjk"), S("lgokshjtpb"), 19, 19);
- test(S("kojatdhlcmigpbfrqnes"), S("bqjhtkfepimcnsgrlado"), 19, 19);
- test(S("eaintpchlqsbdgrkjofm"), S(""), 20, S::npos);
- test(S("gjnhidfsepkrtaqbmclo"), S("nocfa"), 20, S::npos);
- test(S("spocfaktqdbiejlhngmr"), S("bgtajmiedc"), 20, S::npos);
- test(S("rphmlekgfscndtaobiqj"), S("lsckfnqgdahejiopbtmr"), 20, S::npos);
- test(S("liatsqdoegkmfcnbhrpj"), S(""), 21, S::npos);
- test(S("binjagtfldkrspcomqeh"), S("gfsrt"), 21, S::npos);
- test(S("latkmisecnorjbfhqpdg"), S("pfsocbhjtm"), 21, S::npos);
- test(S("lecfratdjkhnsmqpoigb"), S("tpflmdnoicjgkberhqsa"), 21, S::npos);
+TEST_CONSTEXPR_CXX20 void test0() {
+ test(S(""), S(""), 0, S::npos);
+ test(S(""), S("laenf"), 0, S::npos);
+ test(S(""), S("pqlnkmbdjo"), 0, S::npos);
+ test(S(""), S("qkamfogpnljdcshbreti"), 0, S::npos);
+ test(S(""), S(""), 1, S::npos);
+ test(S(""), S("bjaht"), 1, S::npos);
+ test(S(""), S("hjlcmgpket"), 1, S::npos);
+ test(S(""), S("htaobedqikfplcgjsmrn"), 1, S::npos);
+ test(S("fodgq"), S(""), 0, S::npos);
+ test(S("qanej"), S("dfkap"), 0, 1);
+ test(S("clbao"), S("ihqrfebgad"), 0, 2);
+ test(S("mekdn"), S("ngtjfcalbseiqrphmkdo"), 0, 0);
+ test(S("srdfq"), S(""), 1, S::npos);
+ test(S("oemth"), S("ikcrq"), 1, S::npos);
+ test(S("cdaih"), S("dmajblfhsg"), 1, 1);
+ test(S("qohtk"), S("oqftjhdmkgsblacenirp"), 1, 1);
+ test(S("cshmd"), S(""), 2, S::npos);
+ test(S("lhcdo"), S("oebqi"), 2, 4);
+ test(S("qnsoh"), S("kojhpmbsfe"), 2, 2);
+ test(S("pkrof"), S("acbsjqogpltdkhinfrem"), 2, 2);
+ test(S("fmtsp"), S(""), 4, S::npos);
+ test(S("khbpm"), S("aobjd"), 4, S::npos);
+ test(S("pbsji"), S("pcbahntsje"), 4, S::npos);
+ test(S("mprdj"), S("fhepcrntkoagbmldqijs"), 4, 4);
+ test(S("eqmpa"), S(""), 5, S::npos);
+ test(S("omigs"), S("kocgb"), 5, S::npos);
+ test(S("onmje"), S("fbslrjiqkm"), 5, S::npos);
+ test(S("oqmrj"), S("jeidpcmalhfnqbgtrsko"), 5, S::npos);
+ test(S("schfa"), S(""), 6, S::npos);
+ test(S("igdsc"), S("qngpd"), 6, S::npos);
+ test(S("brqgo"), S("rodhqklgmb"), 6, S::npos);
+ test(S("tnrph"), S("thdjgafrlbkoiqcspmne"), 6, S::npos);
+ test(S("hcjitbfapl"), S(""), 0, S::npos);
+ test(S("daiprenocl"), S("ashjd"), 0, 0);
+ test(S("litpcfdghe"), S("mgojkldsqh"), 0, 0);
+ test(S("aidjksrolc"), S("imqnaghkfrdtlopbjesc"), 0, 0);
+ test(S("qpghtfbaji"), S(""), 1, S::npos);
+ test(S("gfshlcmdjr"), S("nadkh"), 1, 3);
+ test(S("nkodajteqp"), S("ofdrqmkebl"), 1, 1);
+ test(S("gbmetiprqd"), S("bdfjqgatlksriohemnpc"), 1, 1);
+ test(S("crnklpmegd"), S(""), 5, S::npos);
+ test(S("jsbtafedoc"), S("prqgn"), 5, S::npos);
+ test(S("qnmodrtkeb"), S("pejafmnokr"), 5, 5);
+ test(S("cpebqsfmnj"), S("odnqkgijrhabfmcestlp"), 5, 5);
+ test(S("lmofqdhpki"), S(""), 9, S::npos);
+ test(S("hnefkqimca"), S("rtjpa"), 9, 9);
+ test(S("drtasbgmfp"), S("ktsrmnqagd"), 9, S::npos);
+ test(S("lsaijeqhtr"), S("rtdhgcisbnmoaqkfpjle"), 9, 9);
+ test(S("elgofjmbrq"), S(""), 10, S::npos);
+ test(S("mjqdgalkpc"), S("dplqa"), 10, S::npos);
+ test(S("kthqnfcerm"), S("dkacjoptns"), 10, S::npos);
+ test(S("dfsjhanorc"), S("hqfimtrgnbekpdcsjalo"), 10, S::npos);
+ test(S("eqsgalomhb"), S(""), 11, S::npos);
+ test(S("akiteljmoh"), S("lofbc"), 11, S::npos);
+ test(S("hlbdfreqjo"), S("astoegbfpn"), 11, S::npos);
+ test(S("taqobhlerg"), S("pdgreqomsncafklhtibj"), 11, S::npos);
+ test(S("snafbdlghrjkpqtoceim"), S(""), 0, S::npos);
+ test(S("aemtbrgcklhndjisfpoq"), S("lbtqd"), 0, 3);
+ test(S("pnracgfkjdiholtbqsem"), S("tboimldpjh"), 0, 0);
+ test(S("dicfltehbsgrmojnpkaq"), S("slcerthdaiqjfnobgkpm"), 0, 0);
+ test(S("jlnkraeodhcspfgbqitm"), S(""), 1, S::npos);
+ test(S("lhosrngtmfjikbqpcade"), S("aqibs"), 1, 3);
+ test(S("rbtaqjhgkneisldpmfoc"), S("gtfblmqinc"), 1, 1);
+ test(S("gpifsqlrdkbonjtmheca"), S("mkqpbtdalgniorhfescj"), 1, 1);
+ test(S("hdpkobnsalmcfijregtq"), S(""), 10, S::npos);
+ test(S("jtlshdgqaiprkbcoenfm"), S("pblas"), 10, 10);
+ test(S("fkdrbqltsgmcoiphneaj"), S("arosdhcfme"), 10, 10);
+ test(S("crsplifgtqedjohnabmk"), S("blkhjeogicatqfnpdmsr"), 10, 10);
+ test(S("niptglfbosehkamrdqcj"), S(""), 19, S::npos);
+ test(S("copqdhstbingamjfkler"), S("djkqc"), 19, S::npos);
+ test(S("mrtaefilpdsgocnhqbjk"), S("lgokshjtpb"), 19, 19);
+ test(S("kojatdhlcmigpbfrqnes"), S("bqjhtkfepimcnsgrlado"), 19, 19);
+ test(S("eaintpchlqsbdgrkjofm"), S(""), 20, S::npos);
+ test(S("gjnhidfsepkrtaqbmclo"), S("nocfa"), 20, S::npos);
+ test(S("spocfaktqdbiejlhngmr"), S("bgtajmiedc"), 20, S::npos);
+ test(S("rphmlekgfscndtaobiqj"), S("lsckfnqgdahejiopbtmr"), 20, S::npos);
+ test(S("liatsqdoegkmfcnbhrpj"), S(""), 21, S::npos);
+ test(S("binjagtfldkrspcomqeh"), S("gfsrt"), 21, S::npos);
+ test(S("latkmisecnorjbfhqpdg"), S("pfsocbhjtm"), 21, S::npos);
+ test(S("lecfratdjkhnsmqpoigb"), S("tpflmdnoicjgkberhqsa"), 21, S::npos);
}
template <class S>
-TEST_CONSTEXPR_CXX20 void test1()
-{
- test(S(""), S(""), S::npos);
- test(S(""), S("laenf"), S::npos);
- test(S(""), S("pqlnkmbdjo"), S::npos);
- test(S(""), S("qkamfogpnljdcshbreti"), S::npos);
- test(S("nhmko"), S(""), S::npos);
- test(S("lahfb"), S("irkhs"), 2);
- test(S("gmfhd"), S("kantesmpgj"), 0);
- test(S("odaft"), S("oknlrstdpiqmjbaghcfe"), 0);
- test(S("eolhfgpjqk"), S(""), S::npos);
- test(S("nbatdlmekr"), S("bnrpe"), 0);
- test(S("jdmciepkaq"), S("jtdaefblso"), 0);
- test(S("hkbgspoflt"), S("oselktgbcapndfjihrmq"), 0);
- test(S("gprdcokbnjhlsfmtieqa"), S(""), S::npos);
- test(S("qjghlnftcaismkropdeb"), S("bjaht"), 1);
- test(S("pnalfrdtkqcmojiesbhg"), S("hjlcmgpket"), 0);
- test(S("pniotcfrhqsmgdkjbael"), S("htaobedqikfplcgjsmrn"), 0);
+TEST_CONSTEXPR_CXX20 void test1() {
+ test(S(""), S(""), S::npos);
+ test(S(""), S("laenf"), S::npos);
+ test(S(""), S("pqlnkmbdjo"), S::npos);
+ test(S(""), S("qkamfogpnljdcshbreti"), S::npos);
+ test(S("nhmko"), S(""), S::npos);
+ test(S("lahfb"), S("irkhs"), 2);
+ test(S("gmfhd"), S("kantesmpgj"), 0);
+ test(S("odaft"), S("oknlrstdpiqmjbaghcfe"), 0);
+ test(S("eolhfgpjqk"), S(""), S::npos);
+ test(S("nbatdlmekr"), S("bnrpe"), 0);
+ test(S("jdmciepkaq"), S("jtdaefblso"), 0);
+ test(S("hkbgspoflt"), S("oselktgbcapndfjihrmq"), 0);
+ test(S("gprdcokbnjhlsfmtieqa"), S(""), S::npos);
+ test(S("qjghlnftcaismkropdeb"), S("bjaht"), 1);
+ test(S("pnalfrdtkqcmojiesbhg"), S("hjlcmgpket"), 0);
+ test(S("pniotcfrhqsmgdkjbael"), S("htaobedqikfplcgjsmrn"), 0);
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -166,8 +160,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.ops/string_find.first.of/string_view_size.pass.cpp b/libcxx/test/std/strings/basic.string/string.ops/string_find.first.of/string_view_size.pass.cpp
index 50c6f7373f2200f..250da8e9f05a9be 100644
--- a/libcxx/test/std/strings/basic.string/string.ops/string_find.first.of/string_view_size.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.ops/string_find.first.of/string_view_size.pass.cpp
@@ -17,129 +17,123 @@
#include "min_allocator.h"
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 void
-test(const S& s, SV sv, typename S::size_type pos, typename S::size_type x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.find_first_of(sv, pos));
- assert(s.find_first_of(sv, pos) == x);
- if (x != S::npos)
- assert(pos <= x && x < s.size());
+TEST_CONSTEXPR_CXX20 void test(const S& s, SV sv, typename S::size_type pos, typename S::size_type x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.find_first_of(sv, pos));
+ assert(s.find_first_of(sv, pos) == x);
+ if (x != S::npos)
+ assert(pos <= x && x < s.size());
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 void
-test(const S& s, SV sv, typename S::size_type x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.find_first_of(sv));
- assert(s.find_first_of(sv) == x);
- if (x != S::npos)
- assert(x < s.size());
+TEST_CONSTEXPR_CXX20 void test(const S& s, SV sv, typename S::size_type x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.find_first_of(sv));
+ assert(s.find_first_of(sv) == x);
+ if (x != S::npos)
+ assert(x < s.size());
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 void test0()
-{
- test(S(""), SV(""), 0, S::npos);
- test(S(""), SV("laenf"), 0, S::npos);
- test(S(""), SV("pqlnkmbdjo"), 0, S::npos);
- test(S(""), SV("qkamfogpnljdcshbreti"), 0, S::npos);
- test(S(""), SV(""), 1, S::npos);
- test(S(""), SV("bjaht"), 1, S::npos);
- test(S(""), SV("hjlcmgpket"), 1, S::npos);
- test(S(""), SV("htaobedqikfplcgjsmrn"), 1, S::npos);
- test(S("fodgq"), SV(""), 0, S::npos);
- test(S("qanej"), SV("dfkap"), 0, 1);
- test(S("clbao"), SV("ihqrfebgad"), 0, 2);
- test(S("mekdn"), SV("ngtjfcalbseiqrphmkdo"), 0, 0);
- test(S("srdfq"), SV(""), 1, S::npos);
- test(S("oemth"), SV("ikcrq"), 1, S::npos);
- test(S("cdaih"), SV("dmajblfhsg"), 1, 1);
- test(S("qohtk"), SV("oqftjhdmkgsblacenirp"), 1, 1);
- test(S("cshmd"), SV(""), 2, S::npos);
- test(S("lhcdo"), SV("oebqi"), 2, 4);
- test(S("qnsoh"), SV("kojhpmbsfe"), 2, 2);
- test(S("pkrof"), SV("acbsjqogpltdkhinfrem"), 2, 2);
- test(S("fmtsp"), SV(""), 4, S::npos);
- test(S("khbpm"), SV("aobjd"), 4, S::npos);
- test(S("pbsji"), SV("pcbahntsje"), 4, S::npos);
- test(S("mprdj"), SV("fhepcrntkoagbmldqijs"), 4, 4);
- test(S("eqmpa"), SV(""), 5, S::npos);
- test(S("omigs"), SV("kocgb"), 5, S::npos);
- test(S("onmje"), SV("fbslrjiqkm"), 5, S::npos);
- test(S("oqmrj"), SV("jeidpcmalhfnqbgtrsko"), 5, S::npos);
- test(S("schfa"), SV(""), 6, S::npos);
- test(S("igdsc"), SV("qngpd"), 6, S::npos);
- test(S("brqgo"), SV("rodhqklgmb"), 6, S::npos);
- test(S("tnrph"), SV("thdjgafrlbkoiqcspmne"), 6, S::npos);
- test(S("hcjitbfapl"), SV(""), 0, S::npos);
- test(S("daiprenocl"), SV("ashjd"), 0, 0);
- test(S("litpcfdghe"), SV("mgojkldsqh"), 0, 0);
- test(S("aidjksrolc"), SV("imqnaghkfrdtlopbjesc"), 0, 0);
- test(S("qpghtfbaji"), SV(""), 1, S::npos);
- test(S("gfshlcmdjr"), SV("nadkh"), 1, 3);
- test(S("nkodajteqp"), SV("ofdrqmkebl"), 1, 1);
- test(S("gbmetiprqd"), SV("bdfjqgatlksriohemnpc"), 1, 1);
- test(S("crnklpmegd"), SV(""), 5, S::npos);
- test(S("jsbtafedoc"), SV("prqgn"), 5, S::npos);
- test(S("qnmodrtkeb"), SV("pejafmnokr"), 5, 5);
- test(S("cpebqsfmnj"), SV("odnqkgijrhabfmcestlp"), 5, 5);
- test(S("lmofqdhpki"), SV(""), 9, S::npos);
- test(S("hnefkqimca"), SV("rtjpa"), 9, 9);
- test(S("drtasbgmfp"), SV("ktsrmnqagd"), 9, S::npos);
- test(S("lsaijeqhtr"), SV("rtdhgcisbnmoaqkfpjle"), 9, 9);
- test(S("elgofjmbrq"), SV(""), 10, S::npos);
- test(S("mjqdgalkpc"), SV("dplqa"), 10, S::npos);
- test(S("kthqnfcerm"), SV("dkacjoptns"), 10, S::npos);
- test(S("dfsjhanorc"), SV("hqfimtrgnbekpdcsjalo"), 10, S::npos);
- test(S("eqsgalomhb"), SV(""), 11, S::npos);
- test(S("akiteljmoh"), SV("lofbc"), 11, S::npos);
- test(S("hlbdfreqjo"), SV("astoegbfpn"), 11, S::npos);
- test(S("taqobhlerg"), SV("pdgreqomsncafklhtibj"), 11, S::npos);
- test(S("snafbdlghrjkpqtoceim"), SV(""), 0, S::npos);
- test(S("aemtbrgcklhndjisfpoq"), SV("lbtqd"), 0, 3);
- test(S("pnracgfkjdiholtbqsem"), SV("tboimldpjh"), 0, 0);
- test(S("dicfltehbsgrmojnpkaq"), SV("slcerthdaiqjfnobgkpm"), 0, 0);
- test(S("jlnkraeodhcspfgbqitm"), SV(""), 1, S::npos);
- test(S("lhosrngtmfjikbqpcade"), SV("aqibs"), 1, 3);
- test(S("rbtaqjhgkneisldpmfoc"), SV("gtfblmqinc"), 1, 1);
- test(S("gpifsqlrdkbonjtmheca"), SV("mkqpbtdalgniorhfescj"), 1, 1);
- test(S("hdpkobnsalmcfijregtq"), SV(""), 10, S::npos);
- test(S("jtlshdgqaiprkbcoenfm"), SV("pblas"), 10, 10);
- test(S("fkdrbqltsgmcoiphneaj"), SV("arosdhcfme"), 10, 10);
- test(S("crsplifgtqedjohnabmk"), SV("blkhjeogicatqfnpdmsr"), 10, 10);
- test(S("niptglfbosehkamrdqcj"), SV(""), 19, S::npos);
- test(S("copqdhstbingamjfkler"), SV("djkqc"), 19, S::npos);
- test(S("mrtaefilpdsgocnhqbjk"), SV("lgokshjtpb"), 19, 19);
- test(S("kojatdhlcmigpbfrqnes"), SV("bqjhtkfepimcnsgrlado"), 19, 19);
- test(S("eaintpchlqsbdgrkjofm"), SV(""), 20, S::npos);
- test(S("gjnhidfsepkrtaqbmclo"), SV("nocfa"), 20, S::npos);
- test(S("spocfaktqdbiejlhngmr"), SV("bgtajmiedc"), 20, S::npos);
- test(S("rphmlekgfscndtaobiqj"), SV("lsckfnqgdahejiopbtmr"), 20, S::npos);
- test(S("liatsqdoegkmfcnbhrpj"), SV(""), 21, S::npos);
- test(S("binjagtfldkrspcomqeh"), SV("gfsrt"), 21, S::npos);
- test(S("latkmisecnorjbfhqpdg"), SV("pfsocbhjtm"), 21, S::npos);
- test(S("lecfratdjkhnsmqpoigb"), SV("tpflmdnoicjgkberhqsa"), 21, S::npos);
+TEST_CONSTEXPR_CXX20 void test0() {
+ test(S(""), SV(""), 0, S::npos);
+ test(S(""), SV("laenf"), 0, S::npos);
+ test(S(""), SV("pqlnkmbdjo"), 0, S::npos);
+ test(S(""), SV("qkamfogpnljdcshbreti"), 0, S::npos);
+ test(S(""), SV(""), 1, S::npos);
+ test(S(""), SV("bjaht"), 1, S::npos);
+ test(S(""), SV("hjlcmgpket"), 1, S::npos);
+ test(S(""), SV("htaobedqikfplcgjsmrn"), 1, S::npos);
+ test(S("fodgq"), SV(""), 0, S::npos);
+ test(S("qanej"), SV("dfkap"), 0, 1);
+ test(S("clbao"), SV("ihqrfebgad"), 0, 2);
+ test(S("mekdn"), SV("ngtjfcalbseiqrphmkdo"), 0, 0);
+ test(S("srdfq"), SV(""), 1, S::npos);
+ test(S("oemth"), SV("ikcrq"), 1, S::npos);
+ test(S("cdaih"), SV("dmajblfhsg"), 1, 1);
+ test(S("qohtk"), SV("oqftjhdmkgsblacenirp"), 1, 1);
+ test(S("cshmd"), SV(""), 2, S::npos);
+ test(S("lhcdo"), SV("oebqi"), 2, 4);
+ test(S("qnsoh"), SV("kojhpmbsfe"), 2, 2);
+ test(S("pkrof"), SV("acbsjqogpltdkhinfrem"), 2, 2);
+ test(S("fmtsp"), SV(""), 4, S::npos);
+ test(S("khbpm"), SV("aobjd"), 4, S::npos);
+ test(S("pbsji"), SV("pcbahntsje"), 4, S::npos);
+ test(S("mprdj"), SV("fhepcrntkoagbmldqijs"), 4, 4);
+ test(S("eqmpa"), SV(""), 5, S::npos);
+ test(S("omigs"), SV("kocgb"), 5, S::npos);
+ test(S("onmje"), SV("fbslrjiqkm"), 5, S::npos);
+ test(S("oqmrj"), SV("jeidpcmalhfnqbgtrsko"), 5, S::npos);
+ test(S("schfa"), SV(""), 6, S::npos);
+ test(S("igdsc"), SV("qngpd"), 6, S::npos);
+ test(S("brqgo"), SV("rodhqklgmb"), 6, S::npos);
+ test(S("tnrph"), SV("thdjgafrlbkoiqcspmne"), 6, S::npos);
+ test(S("hcjitbfapl"), SV(""), 0, S::npos);
+ test(S("daiprenocl"), SV("ashjd"), 0, 0);
+ test(S("litpcfdghe"), SV("mgojkldsqh"), 0, 0);
+ test(S("aidjksrolc"), SV("imqnaghkfrdtlopbjesc"), 0, 0);
+ test(S("qpghtfbaji"), SV(""), 1, S::npos);
+ test(S("gfshlcmdjr"), SV("nadkh"), 1, 3);
+ test(S("nkodajteqp"), SV("ofdrqmkebl"), 1, 1);
+ test(S("gbmetiprqd"), SV("bdfjqgatlksriohemnpc"), 1, 1);
+ test(S("crnklpmegd"), SV(""), 5, S::npos);
+ test(S("jsbtafedoc"), SV("prqgn"), 5, S::npos);
+ test(S("qnmodrtkeb"), SV("pejafmnokr"), 5, 5);
+ test(S("cpebqsfmnj"), SV("odnqkgijrhabfmcestlp"), 5, 5);
+ test(S("lmofqdhpki"), SV(""), 9, S::npos);
+ test(S("hnefkqimca"), SV("rtjpa"), 9, 9);
+ test(S("drtasbgmfp"), SV("ktsrmnqagd"), 9, S::npos);
+ test(S("lsaijeqhtr"), SV("rtdhgcisbnmoaqkfpjle"), 9, 9);
+ test(S("elgofjmbrq"), SV(""), 10, S::npos);
+ test(S("mjqdgalkpc"), SV("dplqa"), 10, S::npos);
+ test(S("kthqnfcerm"), SV("dkacjoptns"), 10, S::npos);
+ test(S("dfsjhanorc"), SV("hqfimtrgnbekpdcsjalo"), 10, S::npos);
+ test(S("eqsgalomhb"), SV(""), 11, S::npos);
+ test(S("akiteljmoh"), SV("lofbc"), 11, S::npos);
+ test(S("hlbdfreqjo"), SV("astoegbfpn"), 11, S::npos);
+ test(S("taqobhlerg"), SV("pdgreqomsncafklhtibj"), 11, S::npos);
+ test(S("snafbdlghrjkpqtoceim"), SV(""), 0, S::npos);
+ test(S("aemtbrgcklhndjisfpoq"), SV("lbtqd"), 0, 3);
+ test(S("pnracgfkjdiholtbqsem"), SV("tboimldpjh"), 0, 0);
+ test(S("dicfltehbsgrmojnpkaq"), SV("slcerthdaiqjfnobgkpm"), 0, 0);
+ test(S("jlnkraeodhcspfgbqitm"), SV(""), 1, S::npos);
+ test(S("lhosrngtmfjikbqpcade"), SV("aqibs"), 1, 3);
+ test(S("rbtaqjhgkneisldpmfoc"), SV("gtfblmqinc"), 1, 1);
+ test(S("gpifsqlrdkbonjtmheca"), SV("mkqpbtdalgniorhfescj"), 1, 1);
+ test(S("hdpkobnsalmcfijregtq"), SV(""), 10, S::npos);
+ test(S("jtlshdgqaiprkbcoenfm"), SV("pblas"), 10, 10);
+ test(S("fkdrbqltsgmcoiphneaj"), SV("arosdhcfme"), 10, 10);
+ test(S("crsplifgtqedjohnabmk"), SV("blkhjeogicatqfnpdmsr"), 10, 10);
+ test(S("niptglfbosehkamrdqcj"), SV(""), 19, S::npos);
+ test(S("copqdhstbingamjfkler"), SV("djkqc"), 19, S::npos);
+ test(S("mrtaefilpdsgocnhqbjk"), SV("lgokshjtpb"), 19, 19);
+ test(S("kojatdhlcmigpbfrqnes"), SV("bqjhtkfepimcnsgrlado"), 19, 19);
+ test(S("eaintpchlqsbdgrkjofm"), SV(""), 20, S::npos);
+ test(S("gjnhidfsepkrtaqbmclo"), SV("nocfa"), 20, S::npos);
+ test(S("spocfaktqdbiejlhngmr"), SV("bgtajmiedc"), 20, S::npos);
+ test(S("rphmlekgfscndtaobiqj"), SV("lsckfnqgdahejiopbtmr"), 20, S::npos);
+ test(S("liatsqdoegkmfcnbhrpj"), SV(""), 21, S::npos);
+ test(S("binjagtfldkrspcomqeh"), SV("gfsrt"), 21, S::npos);
+ test(S("latkmisecnorjbfhqpdg"), SV("pfsocbhjtm"), 21, S::npos);
+ test(S("lecfratdjkhnsmqpoigb"), SV("tpflmdnoicjgkberhqsa"), 21, S::npos);
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 void test1()
-{
- test(S(""), SV(""), S::npos);
- test(S(""), SV("laenf"), S::npos);
- test(S(""), SV("pqlnkmbdjo"), S::npos);
- test(S(""), SV("qkamfogpnljdcshbreti"), S::npos);
- test(S("nhmko"), SV(""), S::npos);
- test(S("lahfb"), SV("irkhs"), 2);
- test(S("gmfhd"), SV("kantesmpgj"), 0);
- test(S("odaft"), SV("oknlrstdpiqmjbaghcfe"), 0);
- test(S("eolhfgpjqk"), SV(""), S::npos);
- test(S("nbatdlmekr"), SV("bnrpe"), 0);
- test(S("jdmciepkaq"), SV("jtdaefblso"), 0);
- test(S("hkbgspoflt"), SV("oselktgbcapndfjihrmq"), 0);
- test(S("gprdcokbnjhlsfmtieqa"), SV(""), S::npos);
- test(S("qjghlnftcaismkropdeb"), SV("bjaht"), 1);
- test(S("pnalfrdtkqcmojiesbhg"), SV("hjlcmgpket"), 0);
- test(S("pniotcfrhqsmgdkjbael"), SV("htaobedqikfplcgjsmrn"), 0);
+TEST_CONSTEXPR_CXX20 void test1() {
+ test(S(""), SV(""), S::npos);
+ test(S(""), SV("laenf"), S::npos);
+ test(S(""), SV("pqlnkmbdjo"), S::npos);
+ test(S(""), SV("qkamfogpnljdcshbreti"), S::npos);
+ test(S("nhmko"), SV(""), S::npos);
+ test(S("lahfb"), SV("irkhs"), 2);
+ test(S("gmfhd"), SV("kantesmpgj"), 0);
+ test(S("odaft"), SV("oknlrstdpiqmjbaghcfe"), 0);
+ test(S("eolhfgpjqk"), SV(""), S::npos);
+ test(S("nbatdlmekr"), SV("bnrpe"), 0);
+ test(S("jdmciepkaq"), SV("jtdaefblso"), 0);
+ test(S("hkbgspoflt"), SV("oselktgbcapndfjihrmq"), 0);
+ test(S("gprdcokbnjhlsfmtieqa"), SV(""), S::npos);
+ test(S("qjghlnftcaismkropdeb"), SV("bjaht"), 1);
+ test(S("pnalfrdtkqcmojiesbhg"), SV("hjlcmgpket"), 0);
+ test(S("pniotcfrhqsmgdkjbael"), SV("htaobedqikfplcgjsmrn"), 0);
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -161,8 +155,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.ops/string_find.last.not.of/char_size.pass.cpp b/libcxx/test/std/strings/basic.string/string.ops/string_find.last.not.of/char_size.pass.cpp
index 8cd63887b856f77..e4cbe382d7808c1 100644
--- a/libcxx/test/std/strings/basic.string/string.ops/string_find.last.not.of/char_size.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.ops/string_find.last.not.of/char_size.pass.cpp
@@ -18,23 +18,19 @@
template <class S>
TEST_CONSTEXPR_CXX20 void
-test(const S& s, typename S::value_type c, typename S::size_type pos,
- typename S::size_type x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.find_last_not_of(c, pos));
- assert(s.find_last_not_of(c, pos) == x);
- if (x != S::npos)
- assert(x <= pos && x < s.size());
+test(const S& s, typename S::value_type c, typename S::size_type pos, typename S::size_type x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.find_last_not_of(c, pos));
+ assert(s.find_last_not_of(c, pos) == x);
+ if (x != S::npos)
+ assert(x <= pos && x < s.size());
}
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(const S& s, typename S::value_type c, typename S::size_type x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.find_last_not_of(c));
- assert(s.find_last_not_of(c) == x);
- if (x != S::npos)
- assert(x < s.size());
+TEST_CONSTEXPR_CXX20 void test(const S& s, typename S::value_type c, typename S::size_type x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.find_last_not_of(c));
+ assert(s.find_last_not_of(c) == x);
+ if (x != S::npos)
+ assert(x < s.size());
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -100,8 +96,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.ops/string_find.last.not.of/pointer_size.pass.cpp b/libcxx/test/std/strings/basic.string/string.ops/string_find.last.not.of/pointer_size.pass.cpp
index 0f4f75ef47a87cb..a2bdce68f307304 100644
--- a/libcxx/test/std/strings/basic.string/string.ops/string_find.last.not.of/pointer_size.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.ops/string_find.last.not.of/pointer_size.pass.cpp
@@ -18,129 +18,123 @@
template <class S>
TEST_CONSTEXPR_CXX20 void
-test(const S& s, const typename S::value_type* str, typename S::size_type pos,
- typename S::size_type x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.find_last_not_of(str, pos));
- assert(s.find_last_not_of(str, pos) == x);
- if (x != S::npos)
- assert(x <= pos && x < s.size());
+test(const S& s, const typename S::value_type* str, typename S::size_type pos, typename S::size_type x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.find_last_not_of(str, pos));
+ assert(s.find_last_not_of(str, pos) == x);
+ if (x != S::npos)
+ assert(x <= pos && x < s.size());
}
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(const S& s, const typename S::value_type* str, typename S::size_type x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.find_last_not_of(str));
- assert(s.find_last_not_of(str) == x);
- if (x != S::npos)
- assert(x < s.size());
+TEST_CONSTEXPR_CXX20 void test(const S& s, const typename S::value_type* str, typename S::size_type x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.find_last_not_of(str));
+ assert(s.find_last_not_of(str) == x);
+ if (x != S::npos)
+ assert(x < s.size());
}
template <class S>
-TEST_CONSTEXPR_CXX20 void test0()
-{
- test(S(""), "", 0, S::npos);
- test(S(""), "laenf", 0, S::npos);
- test(S(""), "pqlnkmbdjo", 0, S::npos);
- test(S(""), "qkamfogpnljdcshbreti", 0, S::npos);
- test(S(""), "", 1, S::npos);
- test(S(""), "bjaht", 1, S::npos);
- test(S(""), "hjlcmgpket", 1, S::npos);
- test(S(""), "htaobedqikfplcgjsmrn", 1, S::npos);
- test(S("fodgq"), "", 0, 0);
- test(S("qanej"), "dfkap", 0, 0);
- test(S("clbao"), "ihqrfebgad", 0, 0);
- test(S("mekdn"), "ngtjfcalbseiqrphmkdo", 0, S::npos);
- test(S("srdfq"), "", 1, 1);
- test(S("oemth"), "ikcrq", 1, 1);
- test(S("cdaih"), "dmajblfhsg", 1, 0);
- test(S("qohtk"), "oqftjhdmkgsblacenirp", 1, S::npos);
- test(S("cshmd"), "", 2, 2);
- test(S("lhcdo"), "oebqi", 2, 2);
- test(S("qnsoh"), "kojhpmbsfe", 2, 1);
- test(S("pkrof"), "acbsjqogpltdkhinfrem", 2, S::npos);
- test(S("fmtsp"), "", 4, 4);
- test(S("khbpm"), "aobjd", 4, 4);
- test(S("pbsji"), "pcbahntsje", 4, 4);
- test(S("mprdj"), "fhepcrntkoagbmldqijs", 4, S::npos);
- test(S("eqmpa"), "", 5, 4);
- test(S("omigs"), "kocgb", 5, 4);
- test(S("onmje"), "fbslrjiqkm", 5, 4);
- test(S("oqmrj"), "jeidpcmalhfnqbgtrsko", 5, S::npos);
- test(S("schfa"), "", 6, 4);
- test(S("igdsc"), "qngpd", 6, 4);
- test(S("brqgo"), "rodhqklgmb", 6, S::npos);
- test(S("tnrph"), "thdjgafrlbkoiqcspmne", 6, S::npos);
- test(S("hcjitbfapl"), "", 0, 0);
- test(S("daiprenocl"), "ashjd", 0, S::npos);
- test(S("litpcfdghe"), "mgojkldsqh", 0, S::npos);
- test(S("aidjksrolc"), "imqnaghkfrdtlopbjesc", 0, S::npos);
- test(S("qpghtfbaji"), "", 1, 1);
- test(S("gfshlcmdjr"), "nadkh", 1, 1);
- test(S("nkodajteqp"), "ofdrqmkebl", 1, 0);
- test(S("gbmetiprqd"), "bdfjqgatlksriohemnpc", 1, S::npos);
- test(S("crnklpmegd"), "", 5, 5);
- test(S("jsbtafedoc"), "prqgn", 5, 5);
- test(S("qnmodrtkeb"), "pejafmnokr", 5, 4);
- test(S("cpebqsfmnj"), "odnqkgijrhabfmcestlp", 5, S::npos);
- test(S("lmofqdhpki"), "", 9, 9);
- test(S("hnefkqimca"), "rtjpa", 9, 8);
- test(S("drtasbgmfp"), "ktsrmnqagd", 9, 9);
- test(S("lsaijeqhtr"), "rtdhgcisbnmoaqkfpjle", 9, S::npos);
- test(S("elgofjmbrq"), "", 10, 9);
- test(S("mjqdgalkpc"), "dplqa", 10, 9);
- test(S("kthqnfcerm"), "dkacjoptns", 10, 9);
- test(S("dfsjhanorc"), "hqfimtrgnbekpdcsjalo", 10, S::npos);
- test(S("eqsgalomhb"), "", 11, 9);
- test(S("akiteljmoh"), "lofbc", 11, 9);
- test(S("hlbdfreqjo"), "astoegbfpn", 11, 8);
- test(S("taqobhlerg"), "pdgreqomsncafklhtibj", 11, S::npos);
- test(S("snafbdlghrjkpqtoceim"), "", 0, 0);
- test(S("aemtbrgcklhndjisfpoq"), "lbtqd", 0, 0);
- test(S("pnracgfkjdiholtbqsem"), "tboimldpjh", 0, S::npos);
- test(S("dicfltehbsgrmojnpkaq"), "slcerthdaiqjfnobgkpm", 0, S::npos);
- test(S("jlnkraeodhcspfgbqitm"), "", 1, 1);
- test(S("lhosrngtmfjikbqpcade"), "aqibs", 1, 1);
- test(S("rbtaqjhgkneisldpmfoc"), "gtfblmqinc", 1, 0);
- test(S("gpifsqlrdkbonjtmheca"), "mkqpbtdalgniorhfescj", 1, S::npos);
- test(S("hdpkobnsalmcfijregtq"), "", 10, 10);
- test(S("jtlshdgqaiprkbcoenfm"), "pblas", 10, 9);
- test(S("fkdrbqltsgmcoiphneaj"), "arosdhcfme", 10, 9);
- test(S("crsplifgtqedjohnabmk"), "blkhjeogicatqfnpdmsr", 10, S::npos);
- test(S("niptglfbosehkamrdqcj"), "", 19, 19);
- test(S("copqdhstbingamjfkler"), "djkqc", 19, 19);
- test(S("mrtaefilpdsgocnhqbjk"), "lgokshjtpb", 19, 16);
- test(S("kojatdhlcmigpbfrqnes"), "bqjhtkfepimcnsgrlado", 19, S::npos);
- test(S("eaintpchlqsbdgrkjofm"), "", 20, 19);
- test(S("gjnhidfsepkrtaqbmclo"), "nocfa", 20, 18);
- test(S("spocfaktqdbiejlhngmr"), "bgtajmiedc", 20, 19);
- test(S("rphmlekgfscndtaobiqj"), "lsckfnqgdahejiopbtmr", 20, S::npos);
- test(S("liatsqdoegkmfcnbhrpj"), "", 21, 19);
- test(S("binjagtfldkrspcomqeh"), "gfsrt", 21, 19);
- test(S("latkmisecnorjbfhqpdg"), "pfsocbhjtm", 21, 19);
- test(S("lecfratdjkhnsmqpoigb"), "tpflmdnoicjgkberhqsa", 21, S::npos);
+TEST_CONSTEXPR_CXX20 void test0() {
+ test(S(""), "", 0, S::npos);
+ test(S(""), "laenf", 0, S::npos);
+ test(S(""), "pqlnkmbdjo", 0, S::npos);
+ test(S(""), "qkamfogpnljdcshbreti", 0, S::npos);
+ test(S(""), "", 1, S::npos);
+ test(S(""), "bjaht", 1, S::npos);
+ test(S(""), "hjlcmgpket", 1, S::npos);
+ test(S(""), "htaobedqikfplcgjsmrn", 1, S::npos);
+ test(S("fodgq"), "", 0, 0);
+ test(S("qanej"), "dfkap", 0, 0);
+ test(S("clbao"), "ihqrfebgad", 0, 0);
+ test(S("mekdn"), "ngtjfcalbseiqrphmkdo", 0, S::npos);
+ test(S("srdfq"), "", 1, 1);
+ test(S("oemth"), "ikcrq", 1, 1);
+ test(S("cdaih"), "dmajblfhsg", 1, 0);
+ test(S("qohtk"), "oqftjhdmkgsblacenirp", 1, S::npos);
+ test(S("cshmd"), "", 2, 2);
+ test(S("lhcdo"), "oebqi", 2, 2);
+ test(S("qnsoh"), "kojhpmbsfe", 2, 1);
+ test(S("pkrof"), "acbsjqogpltdkhinfrem", 2, S::npos);
+ test(S("fmtsp"), "", 4, 4);
+ test(S("khbpm"), "aobjd", 4, 4);
+ test(S("pbsji"), "pcbahntsje", 4, 4);
+ test(S("mprdj"), "fhepcrntkoagbmldqijs", 4, S::npos);
+ test(S("eqmpa"), "", 5, 4);
+ test(S("omigs"), "kocgb", 5, 4);
+ test(S("onmje"), "fbslrjiqkm", 5, 4);
+ test(S("oqmrj"), "jeidpcmalhfnqbgtrsko", 5, S::npos);
+ test(S("schfa"), "", 6, 4);
+ test(S("igdsc"), "qngpd", 6, 4);
+ test(S("brqgo"), "rodhqklgmb", 6, S::npos);
+ test(S("tnrph"), "thdjgafrlbkoiqcspmne", 6, S::npos);
+ test(S("hcjitbfapl"), "", 0, 0);
+ test(S("daiprenocl"), "ashjd", 0, S::npos);
+ test(S("litpcfdghe"), "mgojkldsqh", 0, S::npos);
+ test(S("aidjksrolc"), "imqnaghkfrdtlopbjesc", 0, S::npos);
+ test(S("qpghtfbaji"), "", 1, 1);
+ test(S("gfshlcmdjr"), "nadkh", 1, 1);
+ test(S("nkodajteqp"), "ofdrqmkebl", 1, 0);
+ test(S("gbmetiprqd"), "bdfjqgatlksriohemnpc", 1, S::npos);
+ test(S("crnklpmegd"), "", 5, 5);
+ test(S("jsbtafedoc"), "prqgn", 5, 5);
+ test(S("qnmodrtkeb"), "pejafmnokr", 5, 4);
+ test(S("cpebqsfmnj"), "odnqkgijrhabfmcestlp", 5, S::npos);
+ test(S("lmofqdhpki"), "", 9, 9);
+ test(S("hnefkqimca"), "rtjpa", 9, 8);
+ test(S("drtasbgmfp"), "ktsrmnqagd", 9, 9);
+ test(S("lsaijeqhtr"), "rtdhgcisbnmoaqkfpjle", 9, S::npos);
+ test(S("elgofjmbrq"), "", 10, 9);
+ test(S("mjqdgalkpc"), "dplqa", 10, 9);
+ test(S("kthqnfcerm"), "dkacjoptns", 10, 9);
+ test(S("dfsjhanorc"), "hqfimtrgnbekpdcsjalo", 10, S::npos);
+ test(S("eqsgalomhb"), "", 11, 9);
+ test(S("akiteljmoh"), "lofbc", 11, 9);
+ test(S("hlbdfreqjo"), "astoegbfpn", 11, 8);
+ test(S("taqobhlerg"), "pdgreqomsncafklhtibj", 11, S::npos);
+ test(S("snafbdlghrjkpqtoceim"), "", 0, 0);
+ test(S("aemtbrgcklhndjisfpoq"), "lbtqd", 0, 0);
+ test(S("pnracgfkjdiholtbqsem"), "tboimldpjh", 0, S::npos);
+ test(S("dicfltehbsgrmojnpkaq"), "slcerthdaiqjfnobgkpm", 0, S::npos);
+ test(S("jlnkraeodhcspfgbqitm"), "", 1, 1);
+ test(S("lhosrngtmfjikbqpcade"), "aqibs", 1, 1);
+ test(S("rbtaqjhgkneisldpmfoc"), "gtfblmqinc", 1, 0);
+ test(S("gpifsqlrdkbonjtmheca"), "mkqpbtdalgniorhfescj", 1, S::npos);
+ test(S("hdpkobnsalmcfijregtq"), "", 10, 10);
+ test(S("jtlshdgqaiprkbcoenfm"), "pblas", 10, 9);
+ test(S("fkdrbqltsgmcoiphneaj"), "arosdhcfme", 10, 9);
+ test(S("crsplifgtqedjohnabmk"), "blkhjeogicatqfnpdmsr", 10, S::npos);
+ test(S("niptglfbosehkamrdqcj"), "", 19, 19);
+ test(S("copqdhstbingamjfkler"), "djkqc", 19, 19);
+ test(S("mrtaefilpdsgocnhqbjk"), "lgokshjtpb", 19, 16);
+ test(S("kojatdhlcmigpbfrqnes"), "bqjhtkfepimcnsgrlado", 19, S::npos);
+ test(S("eaintpchlqsbdgrkjofm"), "", 20, 19);
+ test(S("gjnhidfsepkrtaqbmclo"), "nocfa", 20, 18);
+ test(S("spocfaktqdbiejlhngmr"), "bgtajmiedc", 20, 19);
+ test(S("rphmlekgfscndtaobiqj"), "lsckfnqgdahejiopbtmr", 20, S::npos);
+ test(S("liatsqdoegkmfcnbhrpj"), "", 21, 19);
+ test(S("binjagtfldkrspcomqeh"), "gfsrt", 21, 19);
+ test(S("latkmisecnorjbfhqpdg"), "pfsocbhjtm", 21, 19);
+ test(S("lecfratdjkhnsmqpoigb"), "tpflmdnoicjgkberhqsa", 21, S::npos);
}
template <class S>
-TEST_CONSTEXPR_CXX20 void test1()
-{
- test(S(""), "", S::npos);
- test(S(""), "laenf", S::npos);
- test(S(""), "pqlnkmbdjo", S::npos);
- test(S(""), "qkamfogpnljdcshbreti", S::npos);
- test(S("nhmko"), "", 4);
- test(S("lahfb"), "irkhs", 4);
- test(S("gmfhd"), "kantesmpgj", 4);
- test(S("odaft"), "oknlrstdpiqmjbaghcfe", S::npos);
- test(S("eolhfgpjqk"), "", 9);
- test(S("nbatdlmekr"), "bnrpe", 8);
- test(S("jdmciepkaq"), "jtdaefblso", 9);
- test(S("hkbgspoflt"), "oselktgbcapndfjihrmq", S::npos);
- test(S("gprdcokbnjhlsfmtieqa"), "", 19);
- test(S("qjghlnftcaismkropdeb"), "bjaht", 18);
- test(S("pnalfrdtkqcmojiesbhg"), "hjlcmgpket", 17);
- test(S("pniotcfrhqsmgdkjbael"), "htaobedqikfplcgjsmrn", S::npos);
+TEST_CONSTEXPR_CXX20 void test1() {
+ test(S(""), "", S::npos);
+ test(S(""), "laenf", S::npos);
+ test(S(""), "pqlnkmbdjo", S::npos);
+ test(S(""), "qkamfogpnljdcshbreti", S::npos);
+ test(S("nhmko"), "", 4);
+ test(S("lahfb"), "irkhs", 4);
+ test(S("gmfhd"), "kantesmpgj", 4);
+ test(S("odaft"), "oknlrstdpiqmjbaghcfe", S::npos);
+ test(S("eolhfgpjqk"), "", 9);
+ test(S("nbatdlmekr"), "bnrpe", 8);
+ test(S("jdmciepkaq"), "jtdaefblso", 9);
+ test(S("hkbgspoflt"), "oselktgbcapndfjihrmq", S::npos);
+ test(S("gprdcokbnjhlsfmtieqa"), "", 19);
+ test(S("qjghlnftcaismkropdeb"), "bjaht", 18);
+ test(S("pnalfrdtkqcmojiesbhg"), "hjlcmgpket", 17);
+ test(S("pniotcfrhqsmgdkjbael"), "htaobedqikfplcgjsmrn", S::npos);
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -160,8 +154,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.ops/string_find.last.not.of/pointer_size_size.pass.cpp b/libcxx/test/std/strings/basic.string/string.ops/string_find.last.not.of/pointer_size_size.pass.cpp
index eb3d825c06db42f..aa3204f9deb61d5 100644
--- a/libcxx/test/std/strings/basic.string/string.ops/string_find.last.not.of/pointer_size_size.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.ops/string_find.last.not.of/pointer_size_size.pass.cpp
@@ -18,353 +18,351 @@
template <class S>
TEST_CONSTEXPR_CXX20 void
-test(const S& s, const typename S::value_type* str, typename S::size_type pos,
- typename S::size_type n, typename S::size_type x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.find_last_not_of(str, pos, n));
- assert(s.find_last_not_of(str, pos, n) == x);
- if (x != S::npos)
- assert(x <= pos && x < s.size());
+test(const S& s,
+ const typename S::value_type* str,
+ typename S::size_type pos,
+ typename S::size_type n,
+ typename S::size_type x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.find_last_not_of(str, pos, n));
+ assert(s.find_last_not_of(str, pos, n) == x);
+ if (x != S::npos)
+ assert(x <= pos && x < s.size());
}
template <class S>
-TEST_CONSTEXPR_CXX20 void test0()
-{
- test(S(""), "", 0, 0, S::npos);
- test(S(""), "irkhs", 0, 0, S::npos);
- test(S(""), "kante", 0, 1, S::npos);
- test(S(""), "oknlr", 0, 2, S::npos);
- test(S(""), "pcdro", 0, 4, S::npos);
- test(S(""), "bnrpe", 0, 5, S::npos);
- test(S(""), "jtdaefblso", 0, 0, S::npos);
- test(S(""), "oselktgbca", 0, 1, S::npos);
- test(S(""), "eqgaplhckj", 0, 5, S::npos);
- test(S(""), "bjahtcmnlp", 0, 9, S::npos);
- test(S(""), "hjlcmgpket", 0, 10, S::npos);
- test(S(""), "htaobedqikfplcgjsmrn", 0, 0, S::npos);
- test(S(""), "hpqiarojkcdlsgnmfetb", 0, 1, S::npos);
- test(S(""), "dfkaprhjloqetcsimnbg", 0, 10, S::npos);
- test(S(""), "ihqrfebgadntlpmjksoc", 0, 19, S::npos);
- test(S(""), "ngtjfcalbseiqrphmkdo", 0, 20, S::npos);
- test(S(""), "", 1, 0, S::npos);
- test(S(""), "lbtqd", 1, 0, S::npos);
- test(S(""), "tboim", 1, 1, S::npos);
- test(S(""), "slcer", 1, 2, S::npos);
- test(S(""), "cbjfs", 1, 4, S::npos);
- test(S(""), "aqibs", 1, 5, S::npos);
- test(S(""), "gtfblmqinc", 1, 0, S::npos);
- test(S(""), "mkqpbtdalg", 1, 1, S::npos);
- test(S(""), "kphatlimcd", 1, 5, S::npos);
- test(S(""), "pblasqogic", 1, 9, S::npos);
- test(S(""), "arosdhcfme", 1, 10, S::npos);
- test(S(""), "blkhjeogicatqfnpdmsr", 1, 0, S::npos);
- test(S(""), "bmhineprjcoadgstflqk", 1, 1, S::npos);
- test(S(""), "djkqcmetslnghpbarfoi", 1, 10, S::npos);
- test(S(""), "lgokshjtpbemarcdqnfi", 1, 19, S::npos);
- test(S(""), "bqjhtkfepimcnsgrlado", 1, 20, S::npos);
- test(S("eaint"), "", 0, 0, 0);
- test(S("binja"), "gfsrt", 0, 0, 0);
- test(S("latkm"), "pfsoc", 0, 1, 0);
- test(S("lecfr"), "tpflm", 0, 2, 0);
- test(S("eqkst"), "sgkec", 0, 4, S::npos);
- test(S("cdafr"), "romds", 0, 5, 0);
- test(S("prbhe"), "qhjistlgmr", 0, 0, 0);
- test(S("lbisk"), "pedfirsglo", 0, 1, 0);
- test(S("hrlpd"), "aqcoslgrmk", 0, 5, 0);
- test(S("ehmja"), "dabckmepqj", 0, 9, S::npos);
- test(S("mhqgd"), "pqscrjthli", 0, 10, 0);
- test(S("tgklq"), "kfphdcsjqmobliagtren", 0, 0, 0);
- test(S("bocjs"), "rokpefncljibsdhqtagm", 0, 1, 0);
- test(S("grbsd"), "afionmkphlebtcjqsgrd", 0, 10, 0);
- test(S("ofjqr"), "aenmqplidhkofrjbctsg", 0, 19, S::npos);
- test(S("btlfi"), "osjmbtcadhiklegrpqnf", 0, 20, S::npos);
- test(S("clrgb"), "", 1, 0, 1);
- test(S("tjmek"), "osmia", 1, 0, 1);
- test(S("bgstp"), "ckonl", 1, 1, 1);
- test(S("hstrk"), "ilcaj", 1, 2, 1);
- test(S("kmspj"), "lasiq", 1, 4, 1);
- test(S("tjboh"), "kfqmr", 1, 5, 1);
- test(S("ilbcj"), "klnitfaobg", 1, 0, 1);
- test(S("jkngf"), "gjhmdlqikp", 1, 1, 1);
- test(S("gfcql"), "skbgtahqej", 1, 5, 1);
- test(S("dqtlg"), "bjsdgtlpkf", 1, 9, 1);
- test(S("bthpg"), "bjgfmnlkio", 1, 10, 1);
- test(S("dgsnq"), "lbhepotfsjdqigcnamkr", 1, 0, 1);
- test(S("rmfhp"), "tebangckmpsrqdlfojhi", 1, 1, 1);
- test(S("jfdam"), "joflqbdkhtegimscpanr", 1, 10, S::npos);
- test(S("edapb"), "adpmcohetfbsrjinlqkg", 1, 19, S::npos);
- test(S("brfsm"), "iacldqjpfnogbsrhmetk", 1, 20, S::npos);
- test(S("ndrhl"), "", 2, 0, 2);
- test(S("mrecp"), "otkgb", 2, 0, 2);
- test(S("qlasf"), "cqsjl", 2, 1, 2);
- test(S("smaqd"), "dpifl", 2, 2, 2);
- test(S("hjeni"), "oapht", 2, 4, 2);
- test(S("ocmfj"), "cifts", 2, 5, 2);
- test(S("hmftq"), "nmsckbgalo", 2, 0, 2);
- test(S("fklad"), "tpksqhamle", 2, 1, 2);
- test(S("dirnm"), "tpdrchmkji", 2, 5, 1);
- test(S("hrgdc"), "ijagfkblst", 2, 9, 1);
- test(S("ifakg"), "kpocsignjb", 2, 10, 2);
- test(S("ebrgd"), "pecqtkjsnbdrialgmohf", 2, 0, 2);
- test(S("rcjml"), "aiortphfcmkjebgsndql", 2, 1, 2);
- test(S("peqmt"), "sdbkeamglhipojqftrcn", 2, 10, 2);
- test(S("frehn"), "ljqncehgmfktroapidbs", 2, 19, S::npos);
- test(S("tqolf"), "rtcfodilamkbenjghqps", 2, 20, S::npos);
- test(S("cjgao"), "", 4, 0, 4);
- test(S("kjplq"), "mabns", 4, 0, 4);
- test(S("herni"), "bdnrp", 4, 1, 4);
- test(S("tadrb"), "scidp", 4, 2, 4);
- test(S("pkfeo"), "agbjl", 4, 4, 4);
- test(S("hoser"), "jfmpr", 4, 5, 3);
- test(S("kgrsp"), "rbpefghsmj", 4, 0, 4);
- test(S("pgejb"), "apsfntdoqc", 4, 1, 4);
- test(S("thlnq"), "ndkjeisgcl", 4, 5, 4);
- test(S("nbmit"), "rnfpqatdeo", 4, 9, 3);
- test(S("jgmib"), "bntjlqrfik", 4, 10, 2);
- test(S("ncrfj"), "kcrtmpolnaqejghsfdbi", 4, 0, 4);
- test(S("ncsik"), "lobheanpkmqidsrtcfgj", 4, 1, 4);
- test(S("sgbfh"), "athdkljcnreqbgpmisof", 4, 10, 3);
- test(S("dktbn"), "qkdmjialrscpbhefgont", 4, 19, 2);
- test(S("fthqm"), "dmasojntqleribkgfchp", 4, 20, S::npos);
- test(S("klopi"), "", 5, 0, 4);
- test(S("dajhn"), "psthd", 5, 0, 4);
- test(S("jbgno"), "rpmjd", 5, 1, 4);
- test(S("hkjae"), "dfsmk", 5, 2, 4);
+TEST_CONSTEXPR_CXX20 void test0() {
+ test(S(""), "", 0, 0, S::npos);
+ test(S(""), "irkhs", 0, 0, S::npos);
+ test(S(""), "kante", 0, 1, S::npos);
+ test(S(""), "oknlr", 0, 2, S::npos);
+ test(S(""), "pcdro", 0, 4, S::npos);
+ test(S(""), "bnrpe", 0, 5, S::npos);
+ test(S(""), "jtdaefblso", 0, 0, S::npos);
+ test(S(""), "oselktgbca", 0, 1, S::npos);
+ test(S(""), "eqgaplhckj", 0, 5, S::npos);
+ test(S(""), "bjahtcmnlp", 0, 9, S::npos);
+ test(S(""), "hjlcmgpket", 0, 10, S::npos);
+ test(S(""), "htaobedqikfplcgjsmrn", 0, 0, S::npos);
+ test(S(""), "hpqiarojkcdlsgnmfetb", 0, 1, S::npos);
+ test(S(""), "dfkaprhjloqetcsimnbg", 0, 10, S::npos);
+ test(S(""), "ihqrfebgadntlpmjksoc", 0, 19, S::npos);
+ test(S(""), "ngtjfcalbseiqrphmkdo", 0, 20, S::npos);
+ test(S(""), "", 1, 0, S::npos);
+ test(S(""), "lbtqd", 1, 0, S::npos);
+ test(S(""), "tboim", 1, 1, S::npos);
+ test(S(""), "slcer", 1, 2, S::npos);
+ test(S(""), "cbjfs", 1, 4, S::npos);
+ test(S(""), "aqibs", 1, 5, S::npos);
+ test(S(""), "gtfblmqinc", 1, 0, S::npos);
+ test(S(""), "mkqpbtdalg", 1, 1, S::npos);
+ test(S(""), "kphatlimcd", 1, 5, S::npos);
+ test(S(""), "pblasqogic", 1, 9, S::npos);
+ test(S(""), "arosdhcfme", 1, 10, S::npos);
+ test(S(""), "blkhjeogicatqfnpdmsr", 1, 0, S::npos);
+ test(S(""), "bmhineprjcoadgstflqk", 1, 1, S::npos);
+ test(S(""), "djkqcmetslnghpbarfoi", 1, 10, S::npos);
+ test(S(""), "lgokshjtpbemarcdqnfi", 1, 19, S::npos);
+ test(S(""), "bqjhtkfepimcnsgrlado", 1, 20, S::npos);
+ test(S("eaint"), "", 0, 0, 0);
+ test(S("binja"), "gfsrt", 0, 0, 0);
+ test(S("latkm"), "pfsoc", 0, 1, 0);
+ test(S("lecfr"), "tpflm", 0, 2, 0);
+ test(S("eqkst"), "sgkec", 0, 4, S::npos);
+ test(S("cdafr"), "romds", 0, 5, 0);
+ test(S("prbhe"), "qhjistlgmr", 0, 0, 0);
+ test(S("lbisk"), "pedfirsglo", 0, 1, 0);
+ test(S("hrlpd"), "aqcoslgrmk", 0, 5, 0);
+ test(S("ehmja"), "dabckmepqj", 0, 9, S::npos);
+ test(S("mhqgd"), "pqscrjthli", 0, 10, 0);
+ test(S("tgklq"), "kfphdcsjqmobliagtren", 0, 0, 0);
+ test(S("bocjs"), "rokpefncljibsdhqtagm", 0, 1, 0);
+ test(S("grbsd"), "afionmkphlebtcjqsgrd", 0, 10, 0);
+ test(S("ofjqr"), "aenmqplidhkofrjbctsg", 0, 19, S::npos);
+ test(S("btlfi"), "osjmbtcadhiklegrpqnf", 0, 20, S::npos);
+ test(S("clrgb"), "", 1, 0, 1);
+ test(S("tjmek"), "osmia", 1, 0, 1);
+ test(S("bgstp"), "ckonl", 1, 1, 1);
+ test(S("hstrk"), "ilcaj", 1, 2, 1);
+ test(S("kmspj"), "lasiq", 1, 4, 1);
+ test(S("tjboh"), "kfqmr", 1, 5, 1);
+ test(S("ilbcj"), "klnitfaobg", 1, 0, 1);
+ test(S("jkngf"), "gjhmdlqikp", 1, 1, 1);
+ test(S("gfcql"), "skbgtahqej", 1, 5, 1);
+ test(S("dqtlg"), "bjsdgtlpkf", 1, 9, 1);
+ test(S("bthpg"), "bjgfmnlkio", 1, 10, 1);
+ test(S("dgsnq"), "lbhepotfsjdqigcnamkr", 1, 0, 1);
+ test(S("rmfhp"), "tebangckmpsrqdlfojhi", 1, 1, 1);
+ test(S("jfdam"), "joflqbdkhtegimscpanr", 1, 10, S::npos);
+ test(S("edapb"), "adpmcohetfbsrjinlqkg", 1, 19, S::npos);
+ test(S("brfsm"), "iacldqjpfnogbsrhmetk", 1, 20, S::npos);
+ test(S("ndrhl"), "", 2, 0, 2);
+ test(S("mrecp"), "otkgb", 2, 0, 2);
+ test(S("qlasf"), "cqsjl", 2, 1, 2);
+ test(S("smaqd"), "dpifl", 2, 2, 2);
+ test(S("hjeni"), "oapht", 2, 4, 2);
+ test(S("ocmfj"), "cifts", 2, 5, 2);
+ test(S("hmftq"), "nmsckbgalo", 2, 0, 2);
+ test(S("fklad"), "tpksqhamle", 2, 1, 2);
+ test(S("dirnm"), "tpdrchmkji", 2, 5, 1);
+ test(S("hrgdc"), "ijagfkblst", 2, 9, 1);
+ test(S("ifakg"), "kpocsignjb", 2, 10, 2);
+ test(S("ebrgd"), "pecqtkjsnbdrialgmohf", 2, 0, 2);
+ test(S("rcjml"), "aiortphfcmkjebgsndql", 2, 1, 2);
+ test(S("peqmt"), "sdbkeamglhipojqftrcn", 2, 10, 2);
+ test(S("frehn"), "ljqncehgmfktroapidbs", 2, 19, S::npos);
+ test(S("tqolf"), "rtcfodilamkbenjghqps", 2, 20, S::npos);
+ test(S("cjgao"), "", 4, 0, 4);
+ test(S("kjplq"), "mabns", 4, 0, 4);
+ test(S("herni"), "bdnrp", 4, 1, 4);
+ test(S("tadrb"), "scidp", 4, 2, 4);
+ test(S("pkfeo"), "agbjl", 4, 4, 4);
+ test(S("hoser"), "jfmpr", 4, 5, 3);
+ test(S("kgrsp"), "rbpefghsmj", 4, 0, 4);
+ test(S("pgejb"), "apsfntdoqc", 4, 1, 4);
+ test(S("thlnq"), "ndkjeisgcl", 4, 5, 4);
+ test(S("nbmit"), "rnfpqatdeo", 4, 9, 3);
+ test(S("jgmib"), "bntjlqrfik", 4, 10, 2);
+ test(S("ncrfj"), "kcrtmpolnaqejghsfdbi", 4, 0, 4);
+ test(S("ncsik"), "lobheanpkmqidsrtcfgj", 4, 1, 4);
+ test(S("sgbfh"), "athdkljcnreqbgpmisof", 4, 10, 3);
+ test(S("dktbn"), "qkdmjialrscpbhefgont", 4, 19, 2);
+ test(S("fthqm"), "dmasojntqleribkgfchp", 4, 20, S::npos);
+ test(S("klopi"), "", 5, 0, 4);
+ test(S("dajhn"), "psthd", 5, 0, 4);
+ test(S("jbgno"), "rpmjd", 5, 1, 4);
+ test(S("hkjae"), "dfsmk", 5, 2, 4);
}
template <class S>
-TEST_CONSTEXPR_CXX20 void test1()
-{
- test(S("gbhqo"), "skqne", 5, 4, 4);
- test(S("ktdor"), "kipnf", 5, 5, 4);
- test(S("ldprn"), "hmrnqdgifl", 5, 0, 4);
- test(S("egmjk"), "fsmjcdairn", 5, 1, 4);
- test(S("armql"), "pcdgltbrfj", 5, 5, 3);
- test(S("cdhjo"), "aekfctpirg", 5, 9, 4);
- test(S("jcons"), "ledihrsgpf", 5, 10, 3);
- test(S("cbrkp"), "mqcklahsbtirgopefndj", 5, 0, 4);
- test(S("fhgna"), "kmlthaoqgecrnpdbjfis", 5, 1, 4);
- test(S("ejfcd"), "sfhbamcdptojlkrenqgi", 5, 10, 1);
- test(S("kqjhe"), "pbniofmcedrkhlstgaqj", 5, 19, 2);
- test(S("pbdjl"), "mongjratcskbhqiepfdl", 5, 20, S::npos);
- test(S("gajqn"), "", 6, 0, 4);
- test(S("stedk"), "hrnat", 6, 0, 4);
- test(S("tjkaf"), "gsqdt", 6, 1, 4);
- test(S("dthpe"), "bspkd", 6, 2, 4);
- test(S("klhde"), "ohcmb", 6, 4, 4);
- test(S("bhlki"), "heatr", 6, 5, 4);
- test(S("lqmoh"), "pmblckedfn", 6, 0, 4);
- test(S("mtqin"), "aceqmsrbik", 6, 1, 4);
- test(S("dpqbr"), "lmbtdehjrn", 6, 5, 4);
- test(S("kdhmo"), "teqmcrlgib", 6, 9, 4);
- test(S("jblqp"), "njolbmspac", 6, 10, 3);
- test(S("qmjgl"), "pofnhidklamecrbqjgst", 6, 0, 4);
- test(S("rothp"), "jbhckmtgrqnosafedpli", 6, 1, 4);
- test(S("ghknq"), "dobntpmqklicsahgjerf", 6, 10, 1);
- test(S("eopfi"), "tpdshainjkbfoemlrgcq", 6, 19, S::npos);
- test(S("dsnmg"), "oldpfgeakrnitscbjmqh", 6, 20, S::npos);
- test(S("jnkrfhotgl"), "", 0, 0, 0);
- test(S("dltjfngbko"), "rqegt", 0, 0, 0);
- test(S("bmjlpkiqde"), "dashm", 0, 1, 0);
- test(S("skrflobnqm"), "jqirk", 0, 2, 0);
- test(S("jkpldtshrm"), "rckeg", 0, 4, 0);
- test(S("ghasdbnjqo"), "jscie", 0, 5, 0);
- test(S("igrkhpbqjt"), "efsphndliq", 0, 0, 0);
- test(S("ikthdgcamf"), "gdicosleja", 0, 1, 0);
- test(S("pcofgeniam"), "qcpjibosfl", 0, 5, S::npos);
- test(S("rlfjgesqhc"), "lrhmefnjcq", 0, 9, S::npos);
- test(S("itphbqsker"), "dtablcrseo", 0, 10, 0);
- test(S("skjafcirqm"), "apckjsftedbhgomrnilq", 0, 0, 0);
- test(S("tcqomarsfd"), "pcbrgflehjtiadnsokqm", 0, 1, 0);
- test(S("rocfeldqpk"), "nsiadegjklhobrmtqcpf", 0, 10, 0);
- test(S("cfpegndlkt"), "cpmajdqnolikhgsbretf", 0, 19, S::npos);
- test(S("fqbtnkeasj"), "jcflkntmgiqrphdosaeb", 0, 20, S::npos);
- test(S("shbcqnmoar"), "", 1, 0, 1);
- test(S("bdoshlmfin"), "ontrs", 1, 0, 1);
- test(S("khfrebnsgq"), "pfkna", 1, 1, 1);
- test(S("getcrsaoji"), "ekosa", 1, 2, 0);
- test(S("fjiknedcpq"), "anqhk", 1, 4, 1);
- test(S("tkejgnafrm"), "jekca", 1, 5, 0);
- test(S("jnakolqrde"), "ikemsjgacf", 1, 0, 1);
- test(S("lcjptsmgbe"), "arolgsjkhm", 1, 1, 1);
- test(S("itfsmcjorl"), "oftkbldhre", 1, 5, 0);
- test(S("omchkfrjea"), "gbkqdoeftl", 1, 9, 1);
- test(S("cigfqkated"), "sqcflrgtim", 1, 10, S::npos);
- test(S("tscenjikml"), "fmhbkislrjdpanogqcet", 1, 0, 1);
- test(S("qcpaemsinf"), "rnioadktqlgpbcjsmhef", 1, 1, 1);
- test(S("gltkojeipd"), "oakgtnldpsefihqmjcbr", 1, 10, S::npos);
- test(S("qistfrgnmp"), "gbnaelosidmcjqktfhpr", 1, 19, S::npos);
- test(S("bdnpfcqaem"), "akbripjhlosndcmqgfet", 1, 20, S::npos);
- test(S("ectnhskflp"), "", 5, 0, 5);
- test(S("fgtianblpq"), "pijag", 5, 0, 5);
- test(S("mfeqklirnh"), "jrckd", 5, 1, 5);
- test(S("astedncjhk"), "qcloh", 5, 2, 5);
- test(S("fhlqgcajbr"), "thlmp", 5, 4, 5);
- test(S("epfhocmdng"), "qidmo", 5, 5, 5);
- test(S("apcnsibger"), "lnegpsjqrd", 5, 0, 5);
- test(S("aqkocrbign"), "rjqdablmfs", 5, 1, 4);
- test(S("ijsmdtqgce"), "enkgpbsjaq", 5, 5, 5);
- test(S("clobgsrken"), "kdsgoaijfh", 5, 9, 3);
- test(S("jbhcfposld"), "trfqgmckbe", 5, 10, 5);
- test(S("oqnpblhide"), "igetsracjfkdnpoblhqm", 5, 0, 5);
- test(S("lroeasctif"), "nqctfaogirshlekbdjpm", 5, 1, 5);
- test(S("bpjlgmiedh"), "csehfgomljdqinbartkp", 5, 10, 1);
- test(S("pamkeoidrj"), "qahoegcmplkfsjbdnitr", 5, 19, S::npos);
- test(S("espogqbthk"), "dpteiajrqmsognhlfbkc", 5, 20, S::npos);
- test(S("shoiedtcjb"), "", 9, 0, 9);
- test(S("ebcinjgads"), "tqbnh", 9, 0, 9);
- test(S("dqmregkcfl"), "akmle", 9, 1, 9);
- test(S("ngcrieqajf"), "iqfkm", 9, 2, 9);
- test(S("qosmilgnjb"), "tqjsr", 9, 4, 9);
- test(S("ikabsjtdfl"), "jplqg", 9, 5, 8);
- test(S("ersmicafdh"), "oilnrbcgtj", 9, 0, 9);
- test(S("fdnplotmgh"), "morkglpesn", 9, 1, 9);
- test(S("fdbicojerm"), "dmicerngat", 9, 5, 8);
- test(S("mbtafndjcq"), "radgeskbtc", 9, 9, 9);
- test(S("mlenkpfdtc"), "ljikprsmqo", 9, 10, 9);
- test(S("ahlcifdqgs"), "trqihkcgsjamfdbolnpe", 9, 0, 9);
- test(S("bgjemaltks"), "lqmthbsrekajgnofcipd", 9, 1, 9);
- test(S("pdhslbqrfc"), "jtalmedribkgqsopcnfh", 9, 10, 9);
- test(S("dirhtsnjkc"), "spqfoiclmtagejbndkrh", 9, 19, 3);
- test(S("dlroktbcja"), "nmotklspigjrdhcfaebq", 9, 20, S::npos);
- test(S("ncjpmaekbs"), "", 10, 0, 9);
- test(S("hlbosgmrak"), "hpmsd", 10, 0, 9);
- test(S("pqfhsgilen"), "qnpor", 10, 1, 9);
- test(S("gqtjsbdckh"), "otdma", 10, 2, 9);
- test(S("cfkqpjlegi"), "efhjg", 10, 4, 9);
- test(S("beanrfodgj"), "odpte", 10, 5, 9);
- test(S("adtkqpbjfi"), "bctdgfmolr", 10, 0, 9);
- test(S("iomkfthagj"), "oaklidrbqg", 10, 1, 9);
+TEST_CONSTEXPR_CXX20 void test1() {
+ test(S("gbhqo"), "skqne", 5, 4, 4);
+ test(S("ktdor"), "kipnf", 5, 5, 4);
+ test(S("ldprn"), "hmrnqdgifl", 5, 0, 4);
+ test(S("egmjk"), "fsmjcdairn", 5, 1, 4);
+ test(S("armql"), "pcdgltbrfj", 5, 5, 3);
+ test(S("cdhjo"), "aekfctpirg", 5, 9, 4);
+ test(S("jcons"), "ledihrsgpf", 5, 10, 3);
+ test(S("cbrkp"), "mqcklahsbtirgopefndj", 5, 0, 4);
+ test(S("fhgna"), "kmlthaoqgecrnpdbjfis", 5, 1, 4);
+ test(S("ejfcd"), "sfhbamcdptojlkrenqgi", 5, 10, 1);
+ test(S("kqjhe"), "pbniofmcedrkhlstgaqj", 5, 19, 2);
+ test(S("pbdjl"), "mongjratcskbhqiepfdl", 5, 20, S::npos);
+ test(S("gajqn"), "", 6, 0, 4);
+ test(S("stedk"), "hrnat", 6, 0, 4);
+ test(S("tjkaf"), "gsqdt", 6, 1, 4);
+ test(S("dthpe"), "bspkd", 6, 2, 4);
+ test(S("klhde"), "ohcmb", 6, 4, 4);
+ test(S("bhlki"), "heatr", 6, 5, 4);
+ test(S("lqmoh"), "pmblckedfn", 6, 0, 4);
+ test(S("mtqin"), "aceqmsrbik", 6, 1, 4);
+ test(S("dpqbr"), "lmbtdehjrn", 6, 5, 4);
+ test(S("kdhmo"), "teqmcrlgib", 6, 9, 4);
+ test(S("jblqp"), "njolbmspac", 6, 10, 3);
+ test(S("qmjgl"), "pofnhidklamecrbqjgst", 6, 0, 4);
+ test(S("rothp"), "jbhckmtgrqnosafedpli", 6, 1, 4);
+ test(S("ghknq"), "dobntpmqklicsahgjerf", 6, 10, 1);
+ test(S("eopfi"), "tpdshainjkbfoemlrgcq", 6, 19, S::npos);
+ test(S("dsnmg"), "oldpfgeakrnitscbjmqh", 6, 20, S::npos);
+ test(S("jnkrfhotgl"), "", 0, 0, 0);
+ test(S("dltjfngbko"), "rqegt", 0, 0, 0);
+ test(S("bmjlpkiqde"), "dashm", 0, 1, 0);
+ test(S("skrflobnqm"), "jqirk", 0, 2, 0);
+ test(S("jkpldtshrm"), "rckeg", 0, 4, 0);
+ test(S("ghasdbnjqo"), "jscie", 0, 5, 0);
+ test(S("igrkhpbqjt"), "efsphndliq", 0, 0, 0);
+ test(S("ikthdgcamf"), "gdicosleja", 0, 1, 0);
+ test(S("pcofgeniam"), "qcpjibosfl", 0, 5, S::npos);
+ test(S("rlfjgesqhc"), "lrhmefnjcq", 0, 9, S::npos);
+ test(S("itphbqsker"), "dtablcrseo", 0, 10, 0);
+ test(S("skjafcirqm"), "apckjsftedbhgomrnilq", 0, 0, 0);
+ test(S("tcqomarsfd"), "pcbrgflehjtiadnsokqm", 0, 1, 0);
+ test(S("rocfeldqpk"), "nsiadegjklhobrmtqcpf", 0, 10, 0);
+ test(S("cfpegndlkt"), "cpmajdqnolikhgsbretf", 0, 19, S::npos);
+ test(S("fqbtnkeasj"), "jcflkntmgiqrphdosaeb", 0, 20, S::npos);
+ test(S("shbcqnmoar"), "", 1, 0, 1);
+ test(S("bdoshlmfin"), "ontrs", 1, 0, 1);
+ test(S("khfrebnsgq"), "pfkna", 1, 1, 1);
+ test(S("getcrsaoji"), "ekosa", 1, 2, 0);
+ test(S("fjiknedcpq"), "anqhk", 1, 4, 1);
+ test(S("tkejgnafrm"), "jekca", 1, 5, 0);
+ test(S("jnakolqrde"), "ikemsjgacf", 1, 0, 1);
+ test(S("lcjptsmgbe"), "arolgsjkhm", 1, 1, 1);
+ test(S("itfsmcjorl"), "oftkbldhre", 1, 5, 0);
+ test(S("omchkfrjea"), "gbkqdoeftl", 1, 9, 1);
+ test(S("cigfqkated"), "sqcflrgtim", 1, 10, S::npos);
+ test(S("tscenjikml"), "fmhbkislrjdpanogqcet", 1, 0, 1);
+ test(S("qcpaemsinf"), "rnioadktqlgpbcjsmhef", 1, 1, 1);
+ test(S("gltkojeipd"), "oakgtnldpsefihqmjcbr", 1, 10, S::npos);
+ test(S("qistfrgnmp"), "gbnaelosidmcjqktfhpr", 1, 19, S::npos);
+ test(S("bdnpfcqaem"), "akbripjhlosndcmqgfet", 1, 20, S::npos);
+ test(S("ectnhskflp"), "", 5, 0, 5);
+ test(S("fgtianblpq"), "pijag", 5, 0, 5);
+ test(S("mfeqklirnh"), "jrckd", 5, 1, 5);
+ test(S("astedncjhk"), "qcloh", 5, 2, 5);
+ test(S("fhlqgcajbr"), "thlmp", 5, 4, 5);
+ test(S("epfhocmdng"), "qidmo", 5, 5, 5);
+ test(S("apcnsibger"), "lnegpsjqrd", 5, 0, 5);
+ test(S("aqkocrbign"), "rjqdablmfs", 5, 1, 4);
+ test(S("ijsmdtqgce"), "enkgpbsjaq", 5, 5, 5);
+ test(S("clobgsrken"), "kdsgoaijfh", 5, 9, 3);
+ test(S("jbhcfposld"), "trfqgmckbe", 5, 10, 5);
+ test(S("oqnpblhide"), "igetsracjfkdnpoblhqm", 5, 0, 5);
+ test(S("lroeasctif"), "nqctfaogirshlekbdjpm", 5, 1, 5);
+ test(S("bpjlgmiedh"), "csehfgomljdqinbartkp", 5, 10, 1);
+ test(S("pamkeoidrj"), "qahoegcmplkfsjbdnitr", 5, 19, S::npos);
+ test(S("espogqbthk"), "dpteiajrqmsognhlfbkc", 5, 20, S::npos);
+ test(S("shoiedtcjb"), "", 9, 0, 9);
+ test(S("ebcinjgads"), "tqbnh", 9, 0, 9);
+ test(S("dqmregkcfl"), "akmle", 9, 1, 9);
+ test(S("ngcrieqajf"), "iqfkm", 9, 2, 9);
+ test(S("qosmilgnjb"), "tqjsr", 9, 4, 9);
+ test(S("ikabsjtdfl"), "jplqg", 9, 5, 8);
+ test(S("ersmicafdh"), "oilnrbcgtj", 9, 0, 9);
+ test(S("fdnplotmgh"), "morkglpesn", 9, 1, 9);
+ test(S("fdbicojerm"), "dmicerngat", 9, 5, 8);
+ test(S("mbtafndjcq"), "radgeskbtc", 9, 9, 9);
+ test(S("mlenkpfdtc"), "ljikprsmqo", 9, 10, 9);
+ test(S("ahlcifdqgs"), "trqihkcgsjamfdbolnpe", 9, 0, 9);
+ test(S("bgjemaltks"), "lqmthbsrekajgnofcipd", 9, 1, 9);
+ test(S("pdhslbqrfc"), "jtalmedribkgqsopcnfh", 9, 10, 9);
+ test(S("dirhtsnjkc"), "spqfoiclmtagejbndkrh", 9, 19, 3);
+ test(S("dlroktbcja"), "nmotklspigjrdhcfaebq", 9, 20, S::npos);
+ test(S("ncjpmaekbs"), "", 10, 0, 9);
+ test(S("hlbosgmrak"), "hpmsd", 10, 0, 9);
+ test(S("pqfhsgilen"), "qnpor", 10, 1, 9);
+ test(S("gqtjsbdckh"), "otdma", 10, 2, 9);
+ test(S("cfkqpjlegi"), "efhjg", 10, 4, 9);
+ test(S("beanrfodgj"), "odpte", 10, 5, 9);
+ test(S("adtkqpbjfi"), "bctdgfmolr", 10, 0, 9);
+ test(S("iomkfthagj"), "oaklidrbqg", 10, 1, 9);
}
template <class S>
-TEST_CONSTEXPR_CXX20 void test2()
-{
- test(S("sdpcilonqj"), "dnjfsagktr", 10, 5, 8);
- test(S("gtfbdkqeml"), "nejaktmiqg", 10, 9, 9);
- test(S("bmeqgcdorj"), "pjqonlebsf", 10, 10, 8);
- test(S("etqlcanmob"), "dshmnbtolcjepgaikfqr", 10, 0, 9);
- test(S("roqmkbdtia"), "iogfhpabtjkqlrnemcds", 10, 1, 9);
- test(S("kadsithljf"), "ngridfabjsecpqltkmoh", 10, 10, 7);
- test(S("sgtkpbfdmh"), "athmknplcgofrqejsdib", 10, 19, 5);
- test(S("qgmetnabkl"), "ldobhmqcafnjtkeisgrp", 10, 20, S::npos);
- test(S("cqjohampgd"), "", 11, 0, 9);
- test(S("hobitmpsan"), "aocjb", 11, 0, 9);
- test(S("tjehkpsalm"), "jbrnk", 11, 1, 9);
- test(S("ngfbojitcl"), "tqedg", 11, 2, 9);
- test(S("rcfkdbhgjo"), "nqskp", 11, 4, 9);
- test(S("qghptonrea"), "eaqkl", 11, 5, 7);
- test(S("hnprfgqjdl"), "reaoicljqm", 11, 0, 9);
- test(S("hlmgabenti"), "lsftgajqpm", 11, 1, 9);
- test(S("ofcjanmrbs"), "rlpfogmits", 11, 5, 9);
- test(S("jqedtkornm"), "shkncmiaqj", 11, 9, 7);
- test(S("rfedlasjmg"), "fpnatrhqgs", 11, 10, 8);
- test(S("talpqjsgkm"), "sjclemqhnpdbgikarfot", 11, 0, 9);
- test(S("lrkcbtqpie"), "otcmedjikgsfnqbrhpla", 11, 1, 9);
- test(S("cipogdskjf"), "bonsaefdqiprkhlgtjcm", 11, 10, 8);
- test(S("nqedcojahi"), "egpscmahijlfnkrodqtb", 11, 19, S::npos);
- test(S("hefnrkmctj"), "kmqbfepjthgilscrndoa", 11, 20, S::npos);
- test(S("atqirnmekfjolhpdsgcb"), "", 0, 0, 0);
- test(S("echfkmlpribjnqsaogtd"), "prboq", 0, 0, 0);
- test(S("qnhiftdgcleajbpkrosm"), "fjcqh", 0, 1, 0);
- test(S("chamfknorbedjitgslpq"), "fmosa", 0, 2, 0);
- test(S("njhqpibfmtlkaecdrgso"), "qdbok", 0, 4, 0);
- test(S("ebnghfsqkprmdcljoiat"), "amslg", 0, 5, 0);
- test(S("letjomsgihfrpqbkancd"), "smpltjneqb", 0, 0, 0);
- test(S("nblgoipcrqeaktshjdmf"), "flitskrnge", 0, 1, 0);
- test(S("cehkbngtjoiflqapsmrd"), "pgqihmlbef", 0, 5, 0);
- test(S("mignapfoklbhcqjetdrs"), "cfpdqjtgsb", 0, 9, 0);
- test(S("ceatbhlsqjgpnokfrmdi"), "htpsiaflom", 0, 10, 0);
- test(S("ocihkjgrdelpfnmastqb"), "kpjfiaceghsrdtlbnomq", 0, 0, 0);
- test(S("noelgschdtbrjfmiqkap"), "qhtbomidljgafneksprc", 0, 1, 0);
- test(S("dkclqfombepritjnghas"), "nhtjobkcefldimpsaqgr", 0, 10, 0);
- test(S("miklnresdgbhqcojftap"), "prabcjfqnoeskilmtgdh", 0, 19, S::npos);
- test(S("htbcigojaqmdkfrnlsep"), "dtrgmchilkasqoebfpjn", 0, 20, S::npos);
- test(S("febhmqtjanokscdirpgl"), "", 1, 0, 1);
- test(S("loakbsqjpcrdhftniegm"), "sqome", 1, 0, 1);
- test(S("reagphsqflbitdcjmkno"), "smfte", 1, 1, 1);
- test(S("jitlfrqemsdhkopncabg"), "ciboh", 1, 2, 0);
- test(S("mhtaepscdnrjqgbkifol"), "haois", 1, 4, 0);
- test(S("tocesrfmnglpbjihqadk"), "abfki", 1, 5, 1);
- test(S("lpfmctjrhdagneskbqoi"), "frdkocntmq", 1, 0, 1);
- test(S("lsmqaepkdhncirbtjfgo"), "oasbpedlnr", 1, 1, 1);
- test(S("epoiqmtldrabnkjhcfsg"), "kltqmhgand", 1, 5, 1);
- test(S("emgasrilpknqojhtbdcf"), "gdtfjchpmr", 1, 9, 0);
- test(S("hnfiagdpcklrjetqbsom"), "ponmcqblet", 1, 10, 0);
- test(S("nsdfebgajhmtricpoklq"), "sgphqdnofeiklatbcmjr", 1, 0, 1);
- test(S("atjgfsdlpobmeiqhncrk"), "ljqprsmigtfoneadckbh", 1, 1, 1);
- test(S("sitodfgnrejlahcbmqkp"), "ligeojhafnkmrcsqtbdp", 1, 10, 0);
- test(S("fraghmbiceknltjpqosd"), "lsimqfnjarbopedkhcgt", 1, 19, S::npos);
- test(S("pmafenlhqtdbkirjsogc"), "abedmfjlghniorcqptks", 1, 20, S::npos);
- test(S("pihgmoeqtnakrjslcbfd"), "", 10, 0, 10);
- test(S("gjdkeprctqblnhiafsom"), "hqtoa", 10, 0, 10);
- test(S("mkpnblfdsahrcqijteog"), "cahif", 10, 1, 10);
- test(S("gckarqnelodfjhmbptis"), "kehis", 10, 2, 10);
- test(S("gqpskidtbclomahnrjfe"), "kdlmh", 10, 4, 9);
- test(S("pkldjsqrfgitbhmaecno"), "paeql", 10, 5, 10);
- test(S("aftsijrbeklnmcdqhgop"), "aghoqiefnb", 10, 0, 10);
- test(S("mtlgdrhafjkbiepqnsoc"), "jrbqaikpdo", 10, 1, 10);
- test(S("pqgirnaefthokdmbsclj"), "smjonaeqcl", 10, 5, 10);
- test(S("kpdbgjmtherlsfcqoina"), "eqbdrkcfah", 10, 9, 8);
- test(S("jrlbothiknqmdgcfasep"), "kapmsienhf", 10, 10, 10);
- test(S("mjogldqferckabinptsh"), "jpqotrlenfcsbhkaimdg", 10, 0, 10);
- test(S("apoklnefbhmgqcdrisjt"), "jlbmhnfgtcqprikeados", 10, 1, 10);
- test(S("ifeopcnrjbhkdgatmqls"), "stgbhfmdaljnpqoicker", 10, 10, 8);
- test(S("ckqhaiesmjdnrgolbtpf"), "oihcetflbjagdsrkmqpn", 10, 19, S::npos);
- test(S("bnlgapfimcoterskqdjh"), "adtclebmnpjsrqfkigoh", 10, 20, S::npos);
- test(S("kgdlrobpmjcthqsafeni"), "", 19, 0, 19);
- test(S("dfkechomjapgnslbtqir"), "beafg", 19, 0, 19);
- test(S("rloadknfbqtgmhcsipje"), "iclat", 19, 1, 19);
- test(S("mgjhkolrnadqbpetcifs"), "rkhnf", 19, 2, 19);
- test(S("cmlfakiojdrgtbsphqen"), "clshq", 19, 4, 19);
- test(S("kghbfipeomsntdalrqjc"), "dtcoj", 19, 5, 17);
- test(S("eldiqckrnmtasbghjfpo"), "rqosnjmfth", 19, 0, 19);
- test(S("abqjcfedgotihlnspkrm"), "siatdfqglh", 19, 1, 19);
- test(S("qfbadrtjsimkolcenhpg"), "mrlshtpgjq", 19, 5, 19);
- test(S("abseghclkjqifmtodrnp"), "adlcskgqjt", 19, 9, 19);
- test(S("ibmsnlrjefhtdokacqpg"), "drshcjknaf", 19, 10, 19);
- test(S("mrkfciqjebaponsthldg"), "etsaqroinghpkjdlfcbm", 19, 0, 19);
- test(S("mjkticdeoqshpalrfbgn"), "sgepdnkqliambtrocfhj", 19, 1, 19);
- test(S("rqnoclbdejgiphtfsakm"), "nlmcjaqgbsortfdihkpe", 19, 10, 18);
- test(S("plkqbhmtfaeodjcrsing"), "racfnpmosldibqkghjet", 19, 19, 7);
- test(S("oegalhmstjrfickpbndq"), "fjhdsctkqeiolagrnmbp", 19, 20, S::npos);
- test(S("rdtgjcaohpblniekmsfq"), "", 20, 0, 19);
- test(S("ofkqbnjetrmsaidphglc"), "ejanp", 20, 0, 19);
- test(S("grkpahljcftesdmonqib"), "odife", 20, 1, 19);
- test(S("jimlgbhfqkteospardcn"), "okaqd", 20, 2, 19);
- test(S("gftenihpmslrjkqadcob"), "lcdbi", 20, 4, 18);
- test(S("bmhldogtckrfsanijepq"), "fsqbj", 20, 5, 18);
- test(S("nfqkrpjdesabgtlcmoih"), "bigdomnplq", 20, 0, 19);
- test(S("focalnrpiqmdkstehbjg"), "apiblotgcd", 20, 1, 19);
- test(S("rhqdspkmebiflcotnjga"), "acfhdenops", 20, 5, 18);
- test(S("rahdtmsckfboqlpniegj"), "jopdeamcrk", 20, 9, 18);
- test(S("fbkeiopclstmdqranjhg"), "trqncbkgmh", 20, 10, 17);
- test(S("lifhpdgmbconstjeqark"), "tomglrkencbsfjqpihda", 20, 0, 19);
+TEST_CONSTEXPR_CXX20 void test2() {
+ test(S("sdpcilonqj"), "dnjfsagktr", 10, 5, 8);
+ test(S("gtfbdkqeml"), "nejaktmiqg", 10, 9, 9);
+ test(S("bmeqgcdorj"), "pjqonlebsf", 10, 10, 8);
+ test(S("etqlcanmob"), "dshmnbtolcjepgaikfqr", 10, 0, 9);
+ test(S("roqmkbdtia"), "iogfhpabtjkqlrnemcds", 10, 1, 9);
+ test(S("kadsithljf"), "ngridfabjsecpqltkmoh", 10, 10, 7);
+ test(S("sgtkpbfdmh"), "athmknplcgofrqejsdib", 10, 19, 5);
+ test(S("qgmetnabkl"), "ldobhmqcafnjtkeisgrp", 10, 20, S::npos);
+ test(S("cqjohampgd"), "", 11, 0, 9);
+ test(S("hobitmpsan"), "aocjb", 11, 0, 9);
+ test(S("tjehkpsalm"), "jbrnk", 11, 1, 9);
+ test(S("ngfbojitcl"), "tqedg", 11, 2, 9);
+ test(S("rcfkdbhgjo"), "nqskp", 11, 4, 9);
+ test(S("qghptonrea"), "eaqkl", 11, 5, 7);
+ test(S("hnprfgqjdl"), "reaoicljqm", 11, 0, 9);
+ test(S("hlmgabenti"), "lsftgajqpm", 11, 1, 9);
+ test(S("ofcjanmrbs"), "rlpfogmits", 11, 5, 9);
+ test(S("jqedtkornm"), "shkncmiaqj", 11, 9, 7);
+ test(S("rfedlasjmg"), "fpnatrhqgs", 11, 10, 8);
+ test(S("talpqjsgkm"), "sjclemqhnpdbgikarfot", 11, 0, 9);
+ test(S("lrkcbtqpie"), "otcmedjikgsfnqbrhpla", 11, 1, 9);
+ test(S("cipogdskjf"), "bonsaefdqiprkhlgtjcm", 11, 10, 8);
+ test(S("nqedcojahi"), "egpscmahijlfnkrodqtb", 11, 19, S::npos);
+ test(S("hefnrkmctj"), "kmqbfepjthgilscrndoa", 11, 20, S::npos);
+ test(S("atqirnmekfjolhpdsgcb"), "", 0, 0, 0);
+ test(S("echfkmlpribjnqsaogtd"), "prboq", 0, 0, 0);
+ test(S("qnhiftdgcleajbpkrosm"), "fjcqh", 0, 1, 0);
+ test(S("chamfknorbedjitgslpq"), "fmosa", 0, 2, 0);
+ test(S("njhqpibfmtlkaecdrgso"), "qdbok", 0, 4, 0);
+ test(S("ebnghfsqkprmdcljoiat"), "amslg", 0, 5, 0);
+ test(S("letjomsgihfrpqbkancd"), "smpltjneqb", 0, 0, 0);
+ test(S("nblgoipcrqeaktshjdmf"), "flitskrnge", 0, 1, 0);
+ test(S("cehkbngtjoiflqapsmrd"), "pgqihmlbef", 0, 5, 0);
+ test(S("mignapfoklbhcqjetdrs"), "cfpdqjtgsb", 0, 9, 0);
+ test(S("ceatbhlsqjgpnokfrmdi"), "htpsiaflom", 0, 10, 0);
+ test(S("ocihkjgrdelpfnmastqb"), "kpjfiaceghsrdtlbnomq", 0, 0, 0);
+ test(S("noelgschdtbrjfmiqkap"), "qhtbomidljgafneksprc", 0, 1, 0);
+ test(S("dkclqfombepritjnghas"), "nhtjobkcefldimpsaqgr", 0, 10, 0);
+ test(S("miklnresdgbhqcojftap"), "prabcjfqnoeskilmtgdh", 0, 19, S::npos);
+ test(S("htbcigojaqmdkfrnlsep"), "dtrgmchilkasqoebfpjn", 0, 20, S::npos);
+ test(S("febhmqtjanokscdirpgl"), "", 1, 0, 1);
+ test(S("loakbsqjpcrdhftniegm"), "sqome", 1, 0, 1);
+ test(S("reagphsqflbitdcjmkno"), "smfte", 1, 1, 1);
+ test(S("jitlfrqemsdhkopncabg"), "ciboh", 1, 2, 0);
+ test(S("mhtaepscdnrjqgbkifol"), "haois", 1, 4, 0);
+ test(S("tocesrfmnglpbjihqadk"), "abfki", 1, 5, 1);
+ test(S("lpfmctjrhdagneskbqoi"), "frdkocntmq", 1, 0, 1);
+ test(S("lsmqaepkdhncirbtjfgo"), "oasbpedlnr", 1, 1, 1);
+ test(S("epoiqmtldrabnkjhcfsg"), "kltqmhgand", 1, 5, 1);
+ test(S("emgasrilpknqojhtbdcf"), "gdtfjchpmr", 1, 9, 0);
+ test(S("hnfiagdpcklrjetqbsom"), "ponmcqblet", 1, 10, 0);
+ test(S("nsdfebgajhmtricpoklq"), "sgphqdnofeiklatbcmjr", 1, 0, 1);
+ test(S("atjgfsdlpobmeiqhncrk"), "ljqprsmigtfoneadckbh", 1, 1, 1);
+ test(S("sitodfgnrejlahcbmqkp"), "ligeojhafnkmrcsqtbdp", 1, 10, 0);
+ test(S("fraghmbiceknltjpqosd"), "lsimqfnjarbopedkhcgt", 1, 19, S::npos);
+ test(S("pmafenlhqtdbkirjsogc"), "abedmfjlghniorcqptks", 1, 20, S::npos);
+ test(S("pihgmoeqtnakrjslcbfd"), "", 10, 0, 10);
+ test(S("gjdkeprctqblnhiafsom"), "hqtoa", 10, 0, 10);
+ test(S("mkpnblfdsahrcqijteog"), "cahif", 10, 1, 10);
+ test(S("gckarqnelodfjhmbptis"), "kehis", 10, 2, 10);
+ test(S("gqpskidtbclomahnrjfe"), "kdlmh", 10, 4, 9);
+ test(S("pkldjsqrfgitbhmaecno"), "paeql", 10, 5, 10);
+ test(S("aftsijrbeklnmcdqhgop"), "aghoqiefnb", 10, 0, 10);
+ test(S("mtlgdrhafjkbiepqnsoc"), "jrbqaikpdo", 10, 1, 10);
+ test(S("pqgirnaefthokdmbsclj"), "smjonaeqcl", 10, 5, 10);
+ test(S("kpdbgjmtherlsfcqoina"), "eqbdrkcfah", 10, 9, 8);
+ test(S("jrlbothiknqmdgcfasep"), "kapmsienhf", 10, 10, 10);
+ test(S("mjogldqferckabinptsh"), "jpqotrlenfcsbhkaimdg", 10, 0, 10);
+ test(S("apoklnefbhmgqcdrisjt"), "jlbmhnfgtcqprikeados", 10, 1, 10);
+ test(S("ifeopcnrjbhkdgatmqls"), "stgbhfmdaljnpqoicker", 10, 10, 8);
+ test(S("ckqhaiesmjdnrgolbtpf"), "oihcetflbjagdsrkmqpn", 10, 19, S::npos);
+ test(S("bnlgapfimcoterskqdjh"), "adtclebmnpjsrqfkigoh", 10, 20, S::npos);
+ test(S("kgdlrobpmjcthqsafeni"), "", 19, 0, 19);
+ test(S("dfkechomjapgnslbtqir"), "beafg", 19, 0, 19);
+ test(S("rloadknfbqtgmhcsipje"), "iclat", 19, 1, 19);
+ test(S("mgjhkolrnadqbpetcifs"), "rkhnf", 19, 2, 19);
+ test(S("cmlfakiojdrgtbsphqen"), "clshq", 19, 4, 19);
+ test(S("kghbfipeomsntdalrqjc"), "dtcoj", 19, 5, 17);
+ test(S("eldiqckrnmtasbghjfpo"), "rqosnjmfth", 19, 0, 19);
+ test(S("abqjcfedgotihlnspkrm"), "siatdfqglh", 19, 1, 19);
+ test(S("qfbadrtjsimkolcenhpg"), "mrlshtpgjq", 19, 5, 19);
+ test(S("abseghclkjqifmtodrnp"), "adlcskgqjt", 19, 9, 19);
+ test(S("ibmsnlrjefhtdokacqpg"), "drshcjknaf", 19, 10, 19);
+ test(S("mrkfciqjebaponsthldg"), "etsaqroinghpkjdlfcbm", 19, 0, 19);
+ test(S("mjkticdeoqshpalrfbgn"), "sgepdnkqliambtrocfhj", 19, 1, 19);
+ test(S("rqnoclbdejgiphtfsakm"), "nlmcjaqgbsortfdihkpe", 19, 10, 18);
+ test(S("plkqbhmtfaeodjcrsing"), "racfnpmosldibqkghjet", 19, 19, 7);
+ test(S("oegalhmstjrfickpbndq"), "fjhdsctkqeiolagrnmbp", 19, 20, S::npos);
+ test(S("rdtgjcaohpblniekmsfq"), "", 20, 0, 19);
+ test(S("ofkqbnjetrmsaidphglc"), "ejanp", 20, 0, 19);
+ test(S("grkpahljcftesdmonqib"), "odife", 20, 1, 19);
+ test(S("jimlgbhfqkteospardcn"), "okaqd", 20, 2, 19);
+ test(S("gftenihpmslrjkqadcob"), "lcdbi", 20, 4, 18);
+ test(S("bmhldogtckrfsanijepq"), "fsqbj", 20, 5, 18);
+ test(S("nfqkrpjdesabgtlcmoih"), "bigdomnplq", 20, 0, 19);
+ test(S("focalnrpiqmdkstehbjg"), "apiblotgcd", 20, 1, 19);
+ test(S("rhqdspkmebiflcotnjga"), "acfhdenops", 20, 5, 18);
+ test(S("rahdtmsckfboqlpniegj"), "jopdeamcrk", 20, 9, 18);
+ test(S("fbkeiopclstmdqranjhg"), "trqncbkgmh", 20, 10, 17);
+ test(S("lifhpdgmbconstjeqark"), "tomglrkencbsfjqpihda", 20, 0, 19);
}
template <class S>
-TEST_CONSTEXPR_CXX20 void test3()
-{
- test(S("pboqganrhedjmltsicfk"), "gbkhdnpoietfcmrslajq", 20, 1, 19);
- test(S("klchabsimetjnqgorfpd"), "rtfnmbsglkjaichoqedp", 20, 10, 19);
- test(S("sirfgmjqhctndbklaepo"), "ohkmdpfqbsacrtjnlgei", 20, 19, 1);
- test(S("rlbdsiceaonqjtfpghkm"), "dlbrteoisgphmkncajfq", 20, 20, S::npos);
- test(S("ecgdanriptblhjfqskom"), "", 21, 0, 19);
- test(S("fdmiarlpgcskbhoteqjn"), "sjrlo", 21, 0, 19);
- test(S("rlbstjqopignecmfadkh"), "qjpor", 21, 1, 19);
- test(S("grjpqmbshektdolcafni"), "odhfn", 21, 2, 19);
- test(S("sakfcohtqnibprjmlged"), "qtfin", 21, 4, 19);
- test(S("mjtdglasihqpocebrfkn"), "hpqfo", 21, 5, 19);
- test(S("okaplfrntghqbmeicsdj"), "fabmertkos", 21, 0, 19);
- test(S("sahngemrtcjidqbklfpo"), "brqtgkmaej", 21, 1, 19);
- test(S("dlmsipcnekhbgoaftqjr"), "nfrdeihsgl", 21, 5, 18);
- test(S("ahegrmqnoiklpfsdbcjt"), "hlfrosekpi", 21, 9, 19);
- test(S("hdsjbnmlegtkqripacof"), "atgbkrjdsm", 21, 10, 19);
- test(S("pcnedrfjihqbalkgtoms"), "blnrptjgqmaifsdkhoec", 21, 0, 19);
- test(S("qjidealmtpskrbfhocng"), "ctpmdahebfqjgknloris", 21, 1, 19);
- test(S("qeindtagmokpfhsclrbj"), "apnkeqthrmlbfodiscgj", 21, 10, 19);
- test(S("kpfegbjhsrnodltqciam"), "jdgictpframeoqlsbknh", 21, 19, 7);
- test(S("hnbrcplsjfgiktoedmaq"), "qprlsfojamgndekthibc", 21, 20, S::npos);
+TEST_CONSTEXPR_CXX20 void test3() {
+ test(S("pboqganrhedjmltsicfk"), "gbkhdnpoietfcmrslajq", 20, 1, 19);
+ test(S("klchabsimetjnqgorfpd"), "rtfnmbsglkjaichoqedp", 20, 10, 19);
+ test(S("sirfgmjqhctndbklaepo"), "ohkmdpfqbsacrtjnlgei", 20, 19, 1);
+ test(S("rlbdsiceaonqjtfpghkm"), "dlbrteoisgphmkncajfq", 20, 20, S::npos);
+ test(S("ecgdanriptblhjfqskom"), "", 21, 0, 19);
+ test(S("fdmiarlpgcskbhoteqjn"), "sjrlo", 21, 0, 19);
+ test(S("rlbstjqopignecmfadkh"), "qjpor", 21, 1, 19);
+ test(S("grjpqmbshektdolcafni"), "odhfn", 21, 2, 19);
+ test(S("sakfcohtqnibprjmlged"), "qtfin", 21, 4, 19);
+ test(S("mjtdglasihqpocebrfkn"), "hpqfo", 21, 5, 19);
+ test(S("okaplfrntghqbmeicsdj"), "fabmertkos", 21, 0, 19);
+ test(S("sahngemrtcjidqbklfpo"), "brqtgkmaej", 21, 1, 19);
+ test(S("dlmsipcnekhbgoaftqjr"), "nfrdeihsgl", 21, 5, 18);
+ test(S("ahegrmqnoiklpfsdbcjt"), "hlfrosekpi", 21, 9, 19);
+ test(S("hdsjbnmlegtkqripacof"), "atgbkrjdsm", 21, 10, 19);
+ test(S("pcnedrfjihqbalkgtoms"), "blnrptjgqmaifsdkhoec", 21, 0, 19);
+ test(S("qjidealmtpskrbfhocng"), "ctpmdahebfqjgknloris", 21, 1, 19);
+ test(S("qeindtagmokpfhsclrbj"), "apnkeqthrmlbfodiscgj", 21, 10, 19);
+ test(S("kpfegbjhsrnodltqciam"), "jdgictpframeoqlsbknh", 21, 19, 7);
+ test(S("hnbrcplsjfgiktoedmaq"), "qprlsfojamgndekthibc", 21, 20, S::npos);
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -388,8 +386,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.ops/string_find.last.not.of/string_size.pass.cpp b/libcxx/test/std/strings/basic.string/string.ops/string_find.last.not.of/string_size.pass.cpp
index b228baa791b5ece..1ced857f0060766 100644
--- a/libcxx/test/std/strings/basic.string/string.ops/string_find.last.not.of/string_size.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.ops/string_find.last.not.of/string_size.pass.cpp
@@ -17,129 +17,123 @@
#include "min_allocator.h"
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(const S& s, const S& str, typename S::size_type pos, typename S::size_type x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.find_last_not_of(str, pos));
- assert(s.find_last_not_of(str, pos) == x);
- if (x != S::npos)
- assert(x <= pos && x < s.size());
+TEST_CONSTEXPR_CXX20 void test(const S& s, const S& str, typename S::size_type pos, typename S::size_type x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.find_last_not_of(str, pos));
+ assert(s.find_last_not_of(str, pos) == x);
+ if (x != S::npos)
+ assert(x <= pos && x < s.size());
}
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(const S& s, const S& str, typename S::size_type x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.find_last_not_of(str));
- assert(s.find_last_not_of(str) == x);
- if (x != S::npos)
- assert(x < s.size());
+TEST_CONSTEXPR_CXX20 void test(const S& s, const S& str, typename S::size_type x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.find_last_not_of(str));
+ assert(s.find_last_not_of(str) == x);
+ if (x != S::npos)
+ assert(x < s.size());
}
template <class S>
-TEST_CONSTEXPR_CXX20 void test0()
-{
- test(S(""), S(""), 0, S::npos);
- test(S(""), S("laenf"), 0, S::npos);
- test(S(""), S("pqlnkmbdjo"), 0, S::npos);
- test(S(""), S("qkamfogpnljdcshbreti"), 0, S::npos);
- test(S(""), S(""), 1, S::npos);
- test(S(""), S("bjaht"), 1, S::npos);
- test(S(""), S("hjlcmgpket"), 1, S::npos);
- test(S(""), S("htaobedqikfplcgjsmrn"), 1, S::npos);
- test(S("fodgq"), S(""), 0, 0);
- test(S("qanej"), S("dfkap"), 0, 0);
- test(S("clbao"), S("ihqrfebgad"), 0, 0);
- test(S("mekdn"), S("ngtjfcalbseiqrphmkdo"), 0, S::npos);
- test(S("srdfq"), S(""), 1, 1);
- test(S("oemth"), S("ikcrq"), 1, 1);
- test(S("cdaih"), S("dmajblfhsg"), 1, 0);
- test(S("qohtk"), S("oqftjhdmkgsblacenirp"), 1, S::npos);
- test(S("cshmd"), S(""), 2, 2);
- test(S("lhcdo"), S("oebqi"), 2, 2);
- test(S("qnsoh"), S("kojhpmbsfe"), 2, 1);
- test(S("pkrof"), S("acbsjqogpltdkhinfrem"), 2, S::npos);
- test(S("fmtsp"), S(""), 4, 4);
- test(S("khbpm"), S("aobjd"), 4, 4);
- test(S("pbsji"), S("pcbahntsje"), 4, 4);
- test(S("mprdj"), S("fhepcrntkoagbmldqijs"), 4, S::npos);
- test(S("eqmpa"), S(""), 5, 4);
- test(S("omigs"), S("kocgb"), 5, 4);
- test(S("onmje"), S("fbslrjiqkm"), 5, 4);
- test(S("oqmrj"), S("jeidpcmalhfnqbgtrsko"), 5, S::npos);
- test(S("schfa"), S(""), 6, 4);
- test(S("igdsc"), S("qngpd"), 6, 4);
- test(S("brqgo"), S("rodhqklgmb"), 6, S::npos);
- test(S("tnrph"), S("thdjgafrlbkoiqcspmne"), 6, S::npos);
- test(S("hcjitbfapl"), S(""), 0, 0);
- test(S("daiprenocl"), S("ashjd"), 0, S::npos);
- test(S("litpcfdghe"), S("mgojkldsqh"), 0, S::npos);
- test(S("aidjksrolc"), S("imqnaghkfrdtlopbjesc"), 0, S::npos);
- test(S("qpghtfbaji"), S(""), 1, 1);
- test(S("gfshlcmdjr"), S("nadkh"), 1, 1);
- test(S("nkodajteqp"), S("ofdrqmkebl"), 1, 0);
- test(S("gbmetiprqd"), S("bdfjqgatlksriohemnpc"), 1, S::npos);
- test(S("crnklpmegd"), S(""), 5, 5);
- test(S("jsbtafedoc"), S("prqgn"), 5, 5);
- test(S("qnmodrtkeb"), S("pejafmnokr"), 5, 4);
- test(S("cpebqsfmnj"), S("odnqkgijrhabfmcestlp"), 5, S::npos);
- test(S("lmofqdhpki"), S(""), 9, 9);
- test(S("hnefkqimca"), S("rtjpa"), 9, 8);
- test(S("drtasbgmfp"), S("ktsrmnqagd"), 9, 9);
- test(S("lsaijeqhtr"), S("rtdhgcisbnmoaqkfpjle"), 9, S::npos);
- test(S("elgofjmbrq"), S(""), 10, 9);
- test(S("mjqdgalkpc"), S("dplqa"), 10, 9);
- test(S("kthqnfcerm"), S("dkacjoptns"), 10, 9);
- test(S("dfsjhanorc"), S("hqfimtrgnbekpdcsjalo"), 10, S::npos);
- test(S("eqsgalomhb"), S(""), 11, 9);
- test(S("akiteljmoh"), S("lofbc"), 11, 9);
- test(S("hlbdfreqjo"), S("astoegbfpn"), 11, 8);
- test(S("taqobhlerg"), S("pdgreqomsncafklhtibj"), 11, S::npos);
- test(S("snafbdlghrjkpqtoceim"), S(""), 0, 0);
- test(S("aemtbrgcklhndjisfpoq"), S("lbtqd"), 0, 0);
- test(S("pnracgfkjdiholtbqsem"), S("tboimldpjh"), 0, S::npos);
- test(S("dicfltehbsgrmojnpkaq"), S("slcerthdaiqjfnobgkpm"), 0, S::npos);
- test(S("jlnkraeodhcspfgbqitm"), S(""), 1, 1);
- test(S("lhosrngtmfjikbqpcade"), S("aqibs"), 1, 1);
- test(S("rbtaqjhgkneisldpmfoc"), S("gtfblmqinc"), 1, 0);
- test(S("gpifsqlrdkbonjtmheca"), S("mkqpbtdalgniorhfescj"), 1, S::npos);
- test(S("hdpkobnsalmcfijregtq"), S(""), 10, 10);
- test(S("jtlshdgqaiprkbcoenfm"), S("pblas"), 10, 9);
- test(S("fkdrbqltsgmcoiphneaj"), S("arosdhcfme"), 10, 9);
- test(S("crsplifgtqedjohnabmk"), S("blkhjeogicatqfnpdmsr"), 10, S::npos);
- test(S("niptglfbosehkamrdqcj"), S(""), 19, 19);
- test(S("copqdhstbingamjfkler"), S("djkqc"), 19, 19);
- test(S("mrtaefilpdsgocnhqbjk"), S("lgokshjtpb"), 19, 16);
- test(S("kojatdhlcmigpbfrqnes"), S("bqjhtkfepimcnsgrlado"), 19, S::npos);
- test(S("eaintpchlqsbdgrkjofm"), S(""), 20, 19);
- test(S("gjnhidfsepkrtaqbmclo"), S("nocfa"), 20, 18);
- test(S("spocfaktqdbiejlhngmr"), S("bgtajmiedc"), 20, 19);
- test(S("rphmlekgfscndtaobiqj"), S("lsckfnqgdahejiopbtmr"), 20, S::npos);
- test(S("liatsqdoegkmfcnbhrpj"), S(""), 21, 19);
- test(S("binjagtfldkrspcomqeh"), S("gfsrt"), 21, 19);
- test(S("latkmisecnorjbfhqpdg"), S("pfsocbhjtm"), 21, 19);
- test(S("lecfratdjkhnsmqpoigb"), S("tpflmdnoicjgkberhqsa"), 21, S::npos);
+TEST_CONSTEXPR_CXX20 void test0() {
+ test(S(""), S(""), 0, S::npos);
+ test(S(""), S("laenf"), 0, S::npos);
+ test(S(""), S("pqlnkmbdjo"), 0, S::npos);
+ test(S(""), S("qkamfogpnljdcshbreti"), 0, S::npos);
+ test(S(""), S(""), 1, S::npos);
+ test(S(""), S("bjaht"), 1, S::npos);
+ test(S(""), S("hjlcmgpket"), 1, S::npos);
+ test(S(""), S("htaobedqikfplcgjsmrn"), 1, S::npos);
+ test(S("fodgq"), S(""), 0, 0);
+ test(S("qanej"), S("dfkap"), 0, 0);
+ test(S("clbao"), S("ihqrfebgad"), 0, 0);
+ test(S("mekdn"), S("ngtjfcalbseiqrphmkdo"), 0, S::npos);
+ test(S("srdfq"), S(""), 1, 1);
+ test(S("oemth"), S("ikcrq"), 1, 1);
+ test(S("cdaih"), S("dmajblfhsg"), 1, 0);
+ test(S("qohtk"), S("oqftjhdmkgsblacenirp"), 1, S::npos);
+ test(S("cshmd"), S(""), 2, 2);
+ test(S("lhcdo"), S("oebqi"), 2, 2);
+ test(S("qnsoh"), S("kojhpmbsfe"), 2, 1);
+ test(S("pkrof"), S("acbsjqogpltdkhinfrem"), 2, S::npos);
+ test(S("fmtsp"), S(""), 4, 4);
+ test(S("khbpm"), S("aobjd"), 4, 4);
+ test(S("pbsji"), S("pcbahntsje"), 4, 4);
+ test(S("mprdj"), S("fhepcrntkoagbmldqijs"), 4, S::npos);
+ test(S("eqmpa"), S(""), 5, 4);
+ test(S("omigs"), S("kocgb"), 5, 4);
+ test(S("onmje"), S("fbslrjiqkm"), 5, 4);
+ test(S("oqmrj"), S("jeidpcmalhfnqbgtrsko"), 5, S::npos);
+ test(S("schfa"), S(""), 6, 4);
+ test(S("igdsc"), S("qngpd"), 6, 4);
+ test(S("brqgo"), S("rodhqklgmb"), 6, S::npos);
+ test(S("tnrph"), S("thdjgafrlbkoiqcspmne"), 6, S::npos);
+ test(S("hcjitbfapl"), S(""), 0, 0);
+ test(S("daiprenocl"), S("ashjd"), 0, S::npos);
+ test(S("litpcfdghe"), S("mgojkldsqh"), 0, S::npos);
+ test(S("aidjksrolc"), S("imqnaghkfrdtlopbjesc"), 0, S::npos);
+ test(S("qpghtfbaji"), S(""), 1, 1);
+ test(S("gfshlcmdjr"), S("nadkh"), 1, 1);
+ test(S("nkodajteqp"), S("ofdrqmkebl"), 1, 0);
+ test(S("gbmetiprqd"), S("bdfjqgatlksriohemnpc"), 1, S::npos);
+ test(S("crnklpmegd"), S(""), 5, 5);
+ test(S("jsbtafedoc"), S("prqgn"), 5, 5);
+ test(S("qnmodrtkeb"), S("pejafmnokr"), 5, 4);
+ test(S("cpebqsfmnj"), S("odnqkgijrhabfmcestlp"), 5, S::npos);
+ test(S("lmofqdhpki"), S(""), 9, 9);
+ test(S("hnefkqimca"), S("rtjpa"), 9, 8);
+ test(S("drtasbgmfp"), S("ktsrmnqagd"), 9, 9);
+ test(S("lsaijeqhtr"), S("rtdhgcisbnmoaqkfpjle"), 9, S::npos);
+ test(S("elgofjmbrq"), S(""), 10, 9);
+ test(S("mjqdgalkpc"), S("dplqa"), 10, 9);
+ test(S("kthqnfcerm"), S("dkacjoptns"), 10, 9);
+ test(S("dfsjhanorc"), S("hqfimtrgnbekpdcsjalo"), 10, S::npos);
+ test(S("eqsgalomhb"), S(""), 11, 9);
+ test(S("akiteljmoh"), S("lofbc"), 11, 9);
+ test(S("hlbdfreqjo"), S("astoegbfpn"), 11, 8);
+ test(S("taqobhlerg"), S("pdgreqomsncafklhtibj"), 11, S::npos);
+ test(S("snafbdlghrjkpqtoceim"), S(""), 0, 0);
+ test(S("aemtbrgcklhndjisfpoq"), S("lbtqd"), 0, 0);
+ test(S("pnracgfkjdiholtbqsem"), S("tboimldpjh"), 0, S::npos);
+ test(S("dicfltehbsgrmojnpkaq"), S("slcerthdaiqjfnobgkpm"), 0, S::npos);
+ test(S("jlnkraeodhcspfgbqitm"), S(""), 1, 1);
+ test(S("lhosrngtmfjikbqpcade"), S("aqibs"), 1, 1);
+ test(S("rbtaqjhgkneisldpmfoc"), S("gtfblmqinc"), 1, 0);
+ test(S("gpifsqlrdkbonjtmheca"), S("mkqpbtdalgniorhfescj"), 1, S::npos);
+ test(S("hdpkobnsalmcfijregtq"), S(""), 10, 10);
+ test(S("jtlshdgqaiprkbcoenfm"), S("pblas"), 10, 9);
+ test(S("fkdrbqltsgmcoiphneaj"), S("arosdhcfme"), 10, 9);
+ test(S("crsplifgtqedjohnabmk"), S("blkhjeogicatqfnpdmsr"), 10, S::npos);
+ test(S("niptglfbosehkamrdqcj"), S(""), 19, 19);
+ test(S("copqdhstbingamjfkler"), S("djkqc"), 19, 19);
+ test(S("mrtaefilpdsgocnhqbjk"), S("lgokshjtpb"), 19, 16);
+ test(S("kojatdhlcmigpbfrqnes"), S("bqjhtkfepimcnsgrlado"), 19, S::npos);
+ test(S("eaintpchlqsbdgrkjofm"), S(""), 20, 19);
+ test(S("gjnhidfsepkrtaqbmclo"), S("nocfa"), 20, 18);
+ test(S("spocfaktqdbiejlhngmr"), S("bgtajmiedc"), 20, 19);
+ test(S("rphmlekgfscndtaobiqj"), S("lsckfnqgdahejiopbtmr"), 20, S::npos);
+ test(S("liatsqdoegkmfcnbhrpj"), S(""), 21, 19);
+ test(S("binjagtfldkrspcomqeh"), S("gfsrt"), 21, 19);
+ test(S("latkmisecnorjbfhqpdg"), S("pfsocbhjtm"), 21, 19);
+ test(S("lecfratdjkhnsmqpoigb"), S("tpflmdnoicjgkberhqsa"), 21, S::npos);
}
template <class S>
-TEST_CONSTEXPR_CXX20 void test1()
-{
- test(S(""), S(""), S::npos);
- test(S(""), S("laenf"), S::npos);
- test(S(""), S("pqlnkmbdjo"), S::npos);
- test(S(""), S("qkamfogpnljdcshbreti"), S::npos);
- test(S("nhmko"), S(""), 4);
- test(S("lahfb"), S("irkhs"), 4);
- test(S("gmfhd"), S("kantesmpgj"), 4);
- test(S("odaft"), S("oknlrstdpiqmjbaghcfe"), S::npos);
- test(S("eolhfgpjqk"), S(""), 9);
- test(S("nbatdlmekr"), S("bnrpe"), 8);
- test(S("jdmciepkaq"), S("jtdaefblso"), 9);
- test(S("hkbgspoflt"), S("oselktgbcapndfjihrmq"), S::npos);
- test(S("gprdcokbnjhlsfmtieqa"), S(""), 19);
- test(S("qjghlnftcaismkropdeb"), S("bjaht"), 18);
- test(S("pnalfrdtkqcmojiesbhg"), S("hjlcmgpket"), 17);
- test(S("pniotcfrhqsmgdkjbael"), S("htaobedqikfplcgjsmrn"), S::npos);
+TEST_CONSTEXPR_CXX20 void test1() {
+ test(S(""), S(""), S::npos);
+ test(S(""), S("laenf"), S::npos);
+ test(S(""), S("pqlnkmbdjo"), S::npos);
+ test(S(""), S("qkamfogpnljdcshbreti"), S::npos);
+ test(S("nhmko"), S(""), 4);
+ test(S("lahfb"), S("irkhs"), 4);
+ test(S("gmfhd"), S("kantesmpgj"), 4);
+ test(S("odaft"), S("oknlrstdpiqmjbaghcfe"), S::npos);
+ test(S("eolhfgpjqk"), S(""), 9);
+ test(S("nbatdlmekr"), S("bnrpe"), 8);
+ test(S("jdmciepkaq"), S("jtdaefblso"), 9);
+ test(S("hkbgspoflt"), S("oselktgbcapndfjihrmq"), S::npos);
+ test(S("gprdcokbnjhlsfmtieqa"), S(""), 19);
+ test(S("qjghlnftcaismkropdeb"), S("bjaht"), 18);
+ test(S("pnalfrdtkqcmojiesbhg"), S("hjlcmgpket"), 17);
+ test(S("pniotcfrhqsmgdkjbael"), S("htaobedqikfplcgjsmrn"), S::npos);
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -166,8 +160,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.ops/string_find.last.not.of/string_view_size.pass.cpp b/libcxx/test/std/strings/basic.string/string.ops/string_find.last.not.of/string_view_size.pass.cpp
index 07ab842b86258d6..28584aa573fc4f4 100644
--- a/libcxx/test/std/strings/basic.string/string.ops/string_find.last.not.of/string_view_size.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.ops/string_find.last.not.of/string_view_size.pass.cpp
@@ -17,129 +17,123 @@
#include "min_allocator.h"
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 void
-test(const S& s, SV sv, typename S::size_type pos, typename S::size_type x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.find_last_not_of(sv, pos));
- assert(s.find_last_not_of(sv, pos) == x);
- if (x != S::npos)
- assert(x <= pos && x < s.size());
+TEST_CONSTEXPR_CXX20 void test(const S& s, SV sv, typename S::size_type pos, typename S::size_type x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.find_last_not_of(sv, pos));
+ assert(s.find_last_not_of(sv, pos) == x);
+ if (x != S::npos)
+ assert(x <= pos && x < s.size());
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 void
-test(const S& s, SV sv, typename S::size_type x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.find_last_not_of(sv));
- assert(s.find_last_not_of(sv) == x);
- if (x != S::npos)
- assert(x < s.size());
+TEST_CONSTEXPR_CXX20 void test(const S& s, SV sv, typename S::size_type x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.find_last_not_of(sv));
+ assert(s.find_last_not_of(sv) == x);
+ if (x != S::npos)
+ assert(x < s.size());
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 void test0()
-{
- test(S(""), SV(""), 0, S::npos);
- test(S(""), SV("laenf"), 0, S::npos);
- test(S(""), SV("pqlnkmbdjo"), 0, S::npos);
- test(S(""), SV("qkamfogpnljdcshbreti"), 0, S::npos);
- test(S(""), SV(""), 1, S::npos);
- test(S(""), SV("bjaht"), 1, S::npos);
- test(S(""), SV("hjlcmgpket"), 1, S::npos);
- test(S(""), SV("htaobedqikfplcgjsmrn"), 1, S::npos);
- test(S("fodgq"), SV(""), 0, 0);
- test(S("qanej"), SV("dfkap"), 0, 0);
- test(S("clbao"), SV("ihqrfebgad"), 0, 0);
- test(S("mekdn"), SV("ngtjfcalbseiqrphmkdo"), 0, S::npos);
- test(S("srdfq"), SV(""), 1, 1);
- test(S("oemth"), SV("ikcrq"), 1, 1);
- test(S("cdaih"), SV("dmajblfhsg"), 1, 0);
- test(S("qohtk"), SV("oqftjhdmkgsblacenirp"), 1, S::npos);
- test(S("cshmd"), SV(""), 2, 2);
- test(S("lhcdo"), SV("oebqi"), 2, 2);
- test(S("qnsoh"), SV("kojhpmbsfe"), 2, 1);
- test(S("pkrof"), SV("acbsjqogpltdkhinfrem"), 2, S::npos);
- test(S("fmtsp"), SV(""), 4, 4);
- test(S("khbpm"), SV("aobjd"), 4, 4);
- test(S("pbsji"), SV("pcbahntsje"), 4, 4);
- test(S("mprdj"), SV("fhepcrntkoagbmldqijs"), 4, S::npos);
- test(S("eqmpa"), SV(""), 5, 4);
- test(S("omigs"), SV("kocgb"), 5, 4);
- test(S("onmje"), SV("fbslrjiqkm"), 5, 4);
- test(S("oqmrj"), SV("jeidpcmalhfnqbgtrsko"), 5, S::npos);
- test(S("schfa"), SV(""), 6, 4);
- test(S("igdsc"), SV("qngpd"), 6, 4);
- test(S("brqgo"), SV("rodhqklgmb"), 6, S::npos);
- test(S("tnrph"), SV("thdjgafrlbkoiqcspmne"), 6, S::npos);
- test(S("hcjitbfapl"), SV(""), 0, 0);
- test(S("daiprenocl"), SV("ashjd"), 0, S::npos);
- test(S("litpcfdghe"), SV("mgojkldsqh"), 0, S::npos);
- test(S("aidjksrolc"), SV("imqnaghkfrdtlopbjesc"), 0, S::npos);
- test(S("qpghtfbaji"), SV(""), 1, 1);
- test(S("gfshlcmdjr"), SV("nadkh"), 1, 1);
- test(S("nkodajteqp"), SV("ofdrqmkebl"), 1, 0);
- test(S("gbmetiprqd"), SV("bdfjqgatlksriohemnpc"), 1, S::npos);
- test(S("crnklpmegd"), SV(""), 5, 5);
- test(S("jsbtafedoc"), SV("prqgn"), 5, 5);
- test(S("qnmodrtkeb"), SV("pejafmnokr"), 5, 4);
- test(S("cpebqsfmnj"), SV("odnqkgijrhabfmcestlp"), 5, S::npos);
- test(S("lmofqdhpki"), SV(""), 9, 9);
- test(S("hnefkqimca"), SV("rtjpa"), 9, 8);
- test(S("drtasbgmfp"), SV("ktsrmnqagd"), 9, 9);
- test(S("lsaijeqhtr"), SV("rtdhgcisbnmoaqkfpjle"), 9, S::npos);
- test(S("elgofjmbrq"), SV(""), 10, 9);
- test(S("mjqdgalkpc"), SV("dplqa"), 10, 9);
- test(S("kthqnfcerm"), SV("dkacjoptns"), 10, 9);
- test(S("dfsjhanorc"), SV("hqfimtrgnbekpdcsjalo"), 10, S::npos);
- test(S("eqsgalomhb"), SV(""), 11, 9);
- test(S("akiteljmoh"), SV("lofbc"), 11, 9);
- test(S("hlbdfreqjo"), SV("astoegbfpn"), 11, 8);
- test(S("taqobhlerg"), SV("pdgreqomsncafklhtibj"), 11, S::npos);
- test(S("snafbdlghrjkpqtoceim"), SV(""), 0, 0);
- test(S("aemtbrgcklhndjisfpoq"), SV("lbtqd"), 0, 0);
- test(S("pnracgfkjdiholtbqsem"), SV("tboimldpjh"), 0, S::npos);
- test(S("dicfltehbsgrmojnpkaq"), SV("slcerthdaiqjfnobgkpm"), 0, S::npos);
- test(S("jlnkraeodhcspfgbqitm"), SV(""), 1, 1);
- test(S("lhosrngtmfjikbqpcade"), SV("aqibs"), 1, 1);
- test(S("rbtaqjhgkneisldpmfoc"), SV("gtfblmqinc"), 1, 0);
- test(S("gpifsqlrdkbonjtmheca"), SV("mkqpbtdalgniorhfescj"), 1, S::npos);
- test(S("hdpkobnsalmcfijregtq"), SV(""), 10, 10);
- test(S("jtlshdgqaiprkbcoenfm"), SV("pblas"), 10, 9);
- test(S("fkdrbqltsgmcoiphneaj"), SV("arosdhcfme"), 10, 9);
- test(S("crsplifgtqedjohnabmk"), SV("blkhjeogicatqfnpdmsr"), 10, S::npos);
- test(S("niptglfbosehkamrdqcj"), SV(""), 19, 19);
- test(S("copqdhstbingamjfkler"), SV("djkqc"), 19, 19);
- test(S("mrtaefilpdsgocnhqbjk"), SV("lgokshjtpb"), 19, 16);
- test(S("kojatdhlcmigpbfrqnes"), SV("bqjhtkfepimcnsgrlado"), 19, S::npos);
- test(S("eaintpchlqsbdgrkjofm"), SV(""), 20, 19);
- test(S("gjnhidfsepkrtaqbmclo"), SV("nocfa"), 20, 18);
- test(S("spocfaktqdbiejlhngmr"), SV("bgtajmiedc"), 20, 19);
- test(S("rphmlekgfscndtaobiqj"), SV("lsckfnqgdahejiopbtmr"), 20, S::npos);
- test(S("liatsqdoegkmfcnbhrpj"), SV(""), 21, 19);
- test(S("binjagtfldkrspcomqeh"), SV("gfsrt"), 21, 19);
- test(S("latkmisecnorjbfhqpdg"), SV("pfsocbhjtm"), 21, 19);
- test(S("lecfratdjkhnsmqpoigb"), SV("tpflmdnoicjgkberhqsa"), 21, S::npos);
+TEST_CONSTEXPR_CXX20 void test0() {
+ test(S(""), SV(""), 0, S::npos);
+ test(S(""), SV("laenf"), 0, S::npos);
+ test(S(""), SV("pqlnkmbdjo"), 0, S::npos);
+ test(S(""), SV("qkamfogpnljdcshbreti"), 0, S::npos);
+ test(S(""), SV(""), 1, S::npos);
+ test(S(""), SV("bjaht"), 1, S::npos);
+ test(S(""), SV("hjlcmgpket"), 1, S::npos);
+ test(S(""), SV("htaobedqikfplcgjsmrn"), 1, S::npos);
+ test(S("fodgq"), SV(""), 0, 0);
+ test(S("qanej"), SV("dfkap"), 0, 0);
+ test(S("clbao"), SV("ihqrfebgad"), 0, 0);
+ test(S("mekdn"), SV("ngtjfcalbseiqrphmkdo"), 0, S::npos);
+ test(S("srdfq"), SV(""), 1, 1);
+ test(S("oemth"), SV("ikcrq"), 1, 1);
+ test(S("cdaih"), SV("dmajblfhsg"), 1, 0);
+ test(S("qohtk"), SV("oqftjhdmkgsblacenirp"), 1, S::npos);
+ test(S("cshmd"), SV(""), 2, 2);
+ test(S("lhcdo"), SV("oebqi"), 2, 2);
+ test(S("qnsoh"), SV("kojhpmbsfe"), 2, 1);
+ test(S("pkrof"), SV("acbsjqogpltdkhinfrem"), 2, S::npos);
+ test(S("fmtsp"), SV(""), 4, 4);
+ test(S("khbpm"), SV("aobjd"), 4, 4);
+ test(S("pbsji"), SV("pcbahntsje"), 4, 4);
+ test(S("mprdj"), SV("fhepcrntkoagbmldqijs"), 4, S::npos);
+ test(S("eqmpa"), SV(""), 5, 4);
+ test(S("omigs"), SV("kocgb"), 5, 4);
+ test(S("onmje"), SV("fbslrjiqkm"), 5, 4);
+ test(S("oqmrj"), SV("jeidpcmalhfnqbgtrsko"), 5, S::npos);
+ test(S("schfa"), SV(""), 6, 4);
+ test(S("igdsc"), SV("qngpd"), 6, 4);
+ test(S("brqgo"), SV("rodhqklgmb"), 6, S::npos);
+ test(S("tnrph"), SV("thdjgafrlbkoiqcspmne"), 6, S::npos);
+ test(S("hcjitbfapl"), SV(""), 0, 0);
+ test(S("daiprenocl"), SV("ashjd"), 0, S::npos);
+ test(S("litpcfdghe"), SV("mgojkldsqh"), 0, S::npos);
+ test(S("aidjksrolc"), SV("imqnaghkfrdtlopbjesc"), 0, S::npos);
+ test(S("qpghtfbaji"), SV(""), 1, 1);
+ test(S("gfshlcmdjr"), SV("nadkh"), 1, 1);
+ test(S("nkodajteqp"), SV("ofdrqmkebl"), 1, 0);
+ test(S("gbmetiprqd"), SV("bdfjqgatlksriohemnpc"), 1, S::npos);
+ test(S("crnklpmegd"), SV(""), 5, 5);
+ test(S("jsbtafedoc"), SV("prqgn"), 5, 5);
+ test(S("qnmodrtkeb"), SV("pejafmnokr"), 5, 4);
+ test(S("cpebqsfmnj"), SV("odnqkgijrhabfmcestlp"), 5, S::npos);
+ test(S("lmofqdhpki"), SV(""), 9, 9);
+ test(S("hnefkqimca"), SV("rtjpa"), 9, 8);
+ test(S("drtasbgmfp"), SV("ktsrmnqagd"), 9, 9);
+ test(S("lsaijeqhtr"), SV("rtdhgcisbnmoaqkfpjle"), 9, S::npos);
+ test(S("elgofjmbrq"), SV(""), 10, 9);
+ test(S("mjqdgalkpc"), SV("dplqa"), 10, 9);
+ test(S("kthqnfcerm"), SV("dkacjoptns"), 10, 9);
+ test(S("dfsjhanorc"), SV("hqfimtrgnbekpdcsjalo"), 10, S::npos);
+ test(S("eqsgalomhb"), SV(""), 11, 9);
+ test(S("akiteljmoh"), SV("lofbc"), 11, 9);
+ test(S("hlbdfreqjo"), SV("astoegbfpn"), 11, 8);
+ test(S("taqobhlerg"), SV("pdgreqomsncafklhtibj"), 11, S::npos);
+ test(S("snafbdlghrjkpqtoceim"), SV(""), 0, 0);
+ test(S("aemtbrgcklhndjisfpoq"), SV("lbtqd"), 0, 0);
+ test(S("pnracgfkjdiholtbqsem"), SV("tboimldpjh"), 0, S::npos);
+ test(S("dicfltehbsgrmojnpkaq"), SV("slcerthdaiqjfnobgkpm"), 0, S::npos);
+ test(S("jlnkraeodhcspfgbqitm"), SV(""), 1, 1);
+ test(S("lhosrngtmfjikbqpcade"), SV("aqibs"), 1, 1);
+ test(S("rbtaqjhgkneisldpmfoc"), SV("gtfblmqinc"), 1, 0);
+ test(S("gpifsqlrdkbonjtmheca"), SV("mkqpbtdalgniorhfescj"), 1, S::npos);
+ test(S("hdpkobnsalmcfijregtq"), SV(""), 10, 10);
+ test(S("jtlshdgqaiprkbcoenfm"), SV("pblas"), 10, 9);
+ test(S("fkdrbqltsgmcoiphneaj"), SV("arosdhcfme"), 10, 9);
+ test(S("crsplifgtqedjohnabmk"), SV("blkhjeogicatqfnpdmsr"), 10, S::npos);
+ test(S("niptglfbosehkamrdqcj"), SV(""), 19, 19);
+ test(S("copqdhstbingamjfkler"), SV("djkqc"), 19, 19);
+ test(S("mrtaefilpdsgocnhqbjk"), SV("lgokshjtpb"), 19, 16);
+ test(S("kojatdhlcmigpbfrqnes"), SV("bqjhtkfepimcnsgrlado"), 19, S::npos);
+ test(S("eaintpchlqsbdgrkjofm"), SV(""), 20, 19);
+ test(S("gjnhidfsepkrtaqbmclo"), SV("nocfa"), 20, 18);
+ test(S("spocfaktqdbiejlhngmr"), SV("bgtajmiedc"), 20, 19);
+ test(S("rphmlekgfscndtaobiqj"), SV("lsckfnqgdahejiopbtmr"), 20, S::npos);
+ test(S("liatsqdoegkmfcnbhrpj"), SV(""), 21, 19);
+ test(S("binjagtfldkrspcomqeh"), SV("gfsrt"), 21, 19);
+ test(S("latkmisecnorjbfhqpdg"), SV("pfsocbhjtm"), 21, 19);
+ test(S("lecfratdjkhnsmqpoigb"), SV("tpflmdnoicjgkberhqsa"), 21, S::npos);
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 void test1()
-{
- test(S(""), SV(""), S::npos);
- test(S(""), SV("laenf"), S::npos);
- test(S(""), SV("pqlnkmbdjo"), S::npos);
- test(S(""), SV("qkamfogpnljdcshbreti"), S::npos);
- test(S("nhmko"), SV(""), 4);
- test(S("lahfb"), SV("irkhs"), 4);
- test(S("gmfhd"), SV("kantesmpgj"), 4);
- test(S("odaft"), SV("oknlrstdpiqmjbaghcfe"), S::npos);
- test(S("eolhfgpjqk"), SV(""), 9);
- test(S("nbatdlmekr"), SV("bnrpe"), 8);
- test(S("jdmciepkaq"), SV("jtdaefblso"), 9);
- test(S("hkbgspoflt"), SV("oselktgbcapndfjihrmq"), S::npos);
- test(S("gprdcokbnjhlsfmtieqa"), SV(""), 19);
- test(S("qjghlnftcaismkropdeb"), SV("bjaht"), 18);
- test(S("pnalfrdtkqcmojiesbhg"), SV("hjlcmgpket"), 17);
- test(S("pniotcfrhqsmgdkjbael"), SV("htaobedqikfplcgjsmrn"), S::npos);
+TEST_CONSTEXPR_CXX20 void test1() {
+ test(S(""), SV(""), S::npos);
+ test(S(""), SV("laenf"), S::npos);
+ test(S(""), SV("pqlnkmbdjo"), S::npos);
+ test(S(""), SV("qkamfogpnljdcshbreti"), S::npos);
+ test(S("nhmko"), SV(""), 4);
+ test(S("lahfb"), SV("irkhs"), 4);
+ test(S("gmfhd"), SV("kantesmpgj"), 4);
+ test(S("odaft"), SV("oknlrstdpiqmjbaghcfe"), S::npos);
+ test(S("eolhfgpjqk"), SV(""), 9);
+ test(S("nbatdlmekr"), SV("bnrpe"), 8);
+ test(S("jdmciepkaq"), SV("jtdaefblso"), 9);
+ test(S("hkbgspoflt"), SV("oselktgbcapndfjihrmq"), S::npos);
+ test(S("gprdcokbnjhlsfmtieqa"), SV(""), 19);
+ test(S("qjghlnftcaismkropdeb"), SV("bjaht"), 18);
+ test(S("pnalfrdtkqcmojiesbhg"), SV("hjlcmgpket"), 17);
+ test(S("pniotcfrhqsmgdkjbael"), SV("htaobedqikfplcgjsmrn"), S::npos);
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -151,18 +145,17 @@ TEST_CONSTEXPR_CXX20 bool test() {
}
#if TEST_STD_VER >= 11
{
- typedef std::basic_string<char, std::char_traits<char>, min_allocator<char>> S;
- typedef std::string_view SV;
- test0<S, SV>();
- test1<S, SV>();
+ typedef std::basic_string<char, std::char_traits<char>, min_allocator<char>> S;
+ typedef std::string_view SV;
+ test0<S, SV>();
+ test1<S, SV>();
}
#endif
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.ops/string_find.last.of/char_size.pass.cpp b/libcxx/test/std/strings/basic.string/string.ops/string_find.last.of/char_size.pass.cpp
index ee7283311dff988..50b90b9f392abb8 100644
--- a/libcxx/test/std/strings/basic.string/string.ops/string_find.last.of/char_size.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.ops/string_find.last.of/char_size.pass.cpp
@@ -18,23 +18,19 @@
template <class S>
TEST_CONSTEXPR_CXX20 void
-test(const S& s, typename S::value_type c, typename S::size_type pos,
- typename S::size_type x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.find_last_of(c, pos));
- assert(s.find_last_of(c, pos) == x);
- if (x != S::npos)
- assert(x <= pos && x < s.size());
+test(const S& s, typename S::value_type c, typename S::size_type pos, typename S::size_type x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.find_last_of(c, pos));
+ assert(s.find_last_of(c, pos) == x);
+ if (x != S::npos)
+ assert(x <= pos && x < s.size());
}
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(const S& s, typename S::value_type c, typename S::size_type x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.find_last_of(c));
- assert(s.find_last_of(c) == x);
- if (x != S::npos)
- assert(x < s.size());
+TEST_CONSTEXPR_CXX20 void test(const S& s, typename S::value_type c, typename S::size_type x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.find_last_of(c));
+ assert(s.find_last_of(c) == x);
+ if (x != S::npos)
+ assert(x < s.size());
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -100,8 +96,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.ops/string_find.last.of/pointer_size.pass.cpp b/libcxx/test/std/strings/basic.string/string.ops/string_find.last.of/pointer_size.pass.cpp
index 3a09beb719b552f..d3b843998e27b3f 100644
--- a/libcxx/test/std/strings/basic.string/string.ops/string_find.last.of/pointer_size.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.ops/string_find.last.of/pointer_size.pass.cpp
@@ -18,129 +18,123 @@
template <class S>
TEST_CONSTEXPR_CXX20 void
-test(const S& s, const typename S::value_type* str, typename S::size_type pos,
- typename S::size_type x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.find_last_of(str, pos));
- assert(s.find_last_of(str, pos) == x);
- if (x != S::npos)
- assert(x <= pos && x < s.size());
+test(const S& s, const typename S::value_type* str, typename S::size_type pos, typename S::size_type x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.find_last_of(str, pos));
+ assert(s.find_last_of(str, pos) == x);
+ if (x != S::npos)
+ assert(x <= pos && x < s.size());
}
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(const S& s, const typename S::value_type* str, typename S::size_type x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.find_last_of(str));
- assert(s.find_last_of(str) == x);
- if (x != S::npos)
- assert(x < s.size());
+TEST_CONSTEXPR_CXX20 void test(const S& s, const typename S::value_type* str, typename S::size_type x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.find_last_of(str));
+ assert(s.find_last_of(str) == x);
+ if (x != S::npos)
+ assert(x < s.size());
}
template <class S>
-TEST_CONSTEXPR_CXX20 void test0()
-{
- test(S(""), "", 0, S::npos);
- test(S(""), "laenf", 0, S::npos);
- test(S(""), "pqlnkmbdjo", 0, S::npos);
- test(S(""), "qkamfogpnljdcshbreti", 0, S::npos);
- test(S(""), "", 1, S::npos);
- test(S(""), "bjaht", 1, S::npos);
- test(S(""), "hjlcmgpket", 1, S::npos);
- test(S(""), "htaobedqikfplcgjsmrn", 1, S::npos);
- test(S("fodgq"), "", 0, S::npos);
- test(S("qanej"), "dfkap", 0, S::npos);
- test(S("clbao"), "ihqrfebgad", 0, S::npos);
- test(S("mekdn"), "ngtjfcalbseiqrphmkdo", 0, 0);
- test(S("srdfq"), "", 1, S::npos);
- test(S("oemth"), "ikcrq", 1, S::npos);
- test(S("cdaih"), "dmajblfhsg", 1, 1);
- test(S("qohtk"), "oqftjhdmkgsblacenirp", 1, 1);
- test(S("cshmd"), "", 2, S::npos);
- test(S("lhcdo"), "oebqi", 2, S::npos);
- test(S("qnsoh"), "kojhpmbsfe", 2, 2);
- test(S("pkrof"), "acbsjqogpltdkhinfrem", 2, 2);
- test(S("fmtsp"), "", 4, S::npos);
- test(S("khbpm"), "aobjd", 4, 2);
- test(S("pbsji"), "pcbahntsje", 4, 3);
- test(S("mprdj"), "fhepcrntkoagbmldqijs", 4, 4);
- test(S("eqmpa"), "", 5, S::npos);
- test(S("omigs"), "kocgb", 5, 3);
- test(S("onmje"), "fbslrjiqkm", 5, 3);
- test(S("oqmrj"), "jeidpcmalhfnqbgtrsko", 5, 4);
- test(S("schfa"), "", 6, S::npos);
- test(S("igdsc"), "qngpd", 6, 2);
- test(S("brqgo"), "rodhqklgmb", 6, 4);
- test(S("tnrph"), "thdjgafrlbkoiqcspmne", 6, 4);
- test(S("hcjitbfapl"), "", 0, S::npos);
- test(S("daiprenocl"), "ashjd", 0, 0);
- test(S("litpcfdghe"), "mgojkldsqh", 0, 0);
- test(S("aidjksrolc"), "imqnaghkfrdtlopbjesc", 0, 0);
- test(S("qpghtfbaji"), "", 1, S::npos);
- test(S("gfshlcmdjr"), "nadkh", 1, S::npos);
- test(S("nkodajteqp"), "ofdrqmkebl", 1, 1);
- test(S("gbmetiprqd"), "bdfjqgatlksriohemnpc", 1, 1);
- test(S("crnklpmegd"), "", 5, S::npos);
- test(S("jsbtafedoc"), "prqgn", 5, S::npos);
- test(S("qnmodrtkeb"), "pejafmnokr", 5, 5);
- test(S("cpebqsfmnj"), "odnqkgijrhabfmcestlp", 5, 5);
- test(S("lmofqdhpki"), "", 9, S::npos);
- test(S("hnefkqimca"), "rtjpa", 9, 9);
- test(S("drtasbgmfp"), "ktsrmnqagd", 9, 7);
- test(S("lsaijeqhtr"), "rtdhgcisbnmoaqkfpjle", 9, 9);
- test(S("elgofjmbrq"), "", 10, S::npos);
- test(S("mjqdgalkpc"), "dplqa", 10, 8);
- test(S("kthqnfcerm"), "dkacjoptns", 10, 6);
- test(S("dfsjhanorc"), "hqfimtrgnbekpdcsjalo", 10, 9);
- test(S("eqsgalomhb"), "", 11, S::npos);
- test(S("akiteljmoh"), "lofbc", 11, 8);
- test(S("hlbdfreqjo"), "astoegbfpn", 11, 9);
- test(S("taqobhlerg"), "pdgreqomsncafklhtibj", 11, 9);
- test(S("snafbdlghrjkpqtoceim"), "", 0, S::npos);
- test(S("aemtbrgcklhndjisfpoq"), "lbtqd", 0, S::npos);
- test(S("pnracgfkjdiholtbqsem"), "tboimldpjh", 0, 0);
- test(S("dicfltehbsgrmojnpkaq"), "slcerthdaiqjfnobgkpm", 0, 0);
- test(S("jlnkraeodhcspfgbqitm"), "", 1, S::npos);
- test(S("lhosrngtmfjikbqpcade"), "aqibs", 1, S::npos);
- test(S("rbtaqjhgkneisldpmfoc"), "gtfblmqinc", 1, 1);
- test(S("gpifsqlrdkbonjtmheca"), "mkqpbtdalgniorhfescj", 1, 1);
- test(S("hdpkobnsalmcfijregtq"), "", 10, S::npos);
- test(S("jtlshdgqaiprkbcoenfm"), "pblas", 10, 10);
- test(S("fkdrbqltsgmcoiphneaj"), "arosdhcfme", 10, 10);
- test(S("crsplifgtqedjohnabmk"), "blkhjeogicatqfnpdmsr", 10, 10);
- test(S("niptglfbosehkamrdqcj"), "", 19, S::npos);
- test(S("copqdhstbingamjfkler"), "djkqc", 19, 16);
- test(S("mrtaefilpdsgocnhqbjk"), "lgokshjtpb", 19, 19);
- test(S("kojatdhlcmigpbfrqnes"), "bqjhtkfepimcnsgrlado", 19, 19);
- test(S("eaintpchlqsbdgrkjofm"), "", 20, S::npos);
- test(S("gjnhidfsepkrtaqbmclo"), "nocfa", 20, 19);
- test(S("spocfaktqdbiejlhngmr"), "bgtajmiedc", 20, 18);
- test(S("rphmlekgfscndtaobiqj"), "lsckfnqgdahejiopbtmr", 20, 19);
- test(S("liatsqdoegkmfcnbhrpj"), "", 21, S::npos);
- test(S("binjagtfldkrspcomqeh"), "gfsrt", 21, 12);
- test(S("latkmisecnorjbfhqpdg"), "pfsocbhjtm", 21, 17);
- test(S("lecfratdjkhnsmqpoigb"), "tpflmdnoicjgkberhqsa", 21, 19);
+TEST_CONSTEXPR_CXX20 void test0() {
+ test(S(""), "", 0, S::npos);
+ test(S(""), "laenf", 0, S::npos);
+ test(S(""), "pqlnkmbdjo", 0, S::npos);
+ test(S(""), "qkamfogpnljdcshbreti", 0, S::npos);
+ test(S(""), "", 1, S::npos);
+ test(S(""), "bjaht", 1, S::npos);
+ test(S(""), "hjlcmgpket", 1, S::npos);
+ test(S(""), "htaobedqikfplcgjsmrn", 1, S::npos);
+ test(S("fodgq"), "", 0, S::npos);
+ test(S("qanej"), "dfkap", 0, S::npos);
+ test(S("clbao"), "ihqrfebgad", 0, S::npos);
+ test(S("mekdn"), "ngtjfcalbseiqrphmkdo", 0, 0);
+ test(S("srdfq"), "", 1, S::npos);
+ test(S("oemth"), "ikcrq", 1, S::npos);
+ test(S("cdaih"), "dmajblfhsg", 1, 1);
+ test(S("qohtk"), "oqftjhdmkgsblacenirp", 1, 1);
+ test(S("cshmd"), "", 2, S::npos);
+ test(S("lhcdo"), "oebqi", 2, S::npos);
+ test(S("qnsoh"), "kojhpmbsfe", 2, 2);
+ test(S("pkrof"), "acbsjqogpltdkhinfrem", 2, 2);
+ test(S("fmtsp"), "", 4, S::npos);
+ test(S("khbpm"), "aobjd", 4, 2);
+ test(S("pbsji"), "pcbahntsje", 4, 3);
+ test(S("mprdj"), "fhepcrntkoagbmldqijs", 4, 4);
+ test(S("eqmpa"), "", 5, S::npos);
+ test(S("omigs"), "kocgb", 5, 3);
+ test(S("onmje"), "fbslrjiqkm", 5, 3);
+ test(S("oqmrj"), "jeidpcmalhfnqbgtrsko", 5, 4);
+ test(S("schfa"), "", 6, S::npos);
+ test(S("igdsc"), "qngpd", 6, 2);
+ test(S("brqgo"), "rodhqklgmb", 6, 4);
+ test(S("tnrph"), "thdjgafrlbkoiqcspmne", 6, 4);
+ test(S("hcjitbfapl"), "", 0, S::npos);
+ test(S("daiprenocl"), "ashjd", 0, 0);
+ test(S("litpcfdghe"), "mgojkldsqh", 0, 0);
+ test(S("aidjksrolc"), "imqnaghkfrdtlopbjesc", 0, 0);
+ test(S("qpghtfbaji"), "", 1, S::npos);
+ test(S("gfshlcmdjr"), "nadkh", 1, S::npos);
+ test(S("nkodajteqp"), "ofdrqmkebl", 1, 1);
+ test(S("gbmetiprqd"), "bdfjqgatlksriohemnpc", 1, 1);
+ test(S("crnklpmegd"), "", 5, S::npos);
+ test(S("jsbtafedoc"), "prqgn", 5, S::npos);
+ test(S("qnmodrtkeb"), "pejafmnokr", 5, 5);
+ test(S("cpebqsfmnj"), "odnqkgijrhabfmcestlp", 5, 5);
+ test(S("lmofqdhpki"), "", 9, S::npos);
+ test(S("hnefkqimca"), "rtjpa", 9, 9);
+ test(S("drtasbgmfp"), "ktsrmnqagd", 9, 7);
+ test(S("lsaijeqhtr"), "rtdhgcisbnmoaqkfpjle", 9, 9);
+ test(S("elgofjmbrq"), "", 10, S::npos);
+ test(S("mjqdgalkpc"), "dplqa", 10, 8);
+ test(S("kthqnfcerm"), "dkacjoptns", 10, 6);
+ test(S("dfsjhanorc"), "hqfimtrgnbekpdcsjalo", 10, 9);
+ test(S("eqsgalomhb"), "", 11, S::npos);
+ test(S("akiteljmoh"), "lofbc", 11, 8);
+ test(S("hlbdfreqjo"), "astoegbfpn", 11, 9);
+ test(S("taqobhlerg"), "pdgreqomsncafklhtibj", 11, 9);
+ test(S("snafbdlghrjkpqtoceim"), "", 0, S::npos);
+ test(S("aemtbrgcklhndjisfpoq"), "lbtqd", 0, S::npos);
+ test(S("pnracgfkjdiholtbqsem"), "tboimldpjh", 0, 0);
+ test(S("dicfltehbsgrmojnpkaq"), "slcerthdaiqjfnobgkpm", 0, 0);
+ test(S("jlnkraeodhcspfgbqitm"), "", 1, S::npos);
+ test(S("lhosrngtmfjikbqpcade"), "aqibs", 1, S::npos);
+ test(S("rbtaqjhgkneisldpmfoc"), "gtfblmqinc", 1, 1);
+ test(S("gpifsqlrdkbonjtmheca"), "mkqpbtdalgniorhfescj", 1, 1);
+ test(S("hdpkobnsalmcfijregtq"), "", 10, S::npos);
+ test(S("jtlshdgqaiprkbcoenfm"), "pblas", 10, 10);
+ test(S("fkdrbqltsgmcoiphneaj"), "arosdhcfme", 10, 10);
+ test(S("crsplifgtqedjohnabmk"), "blkhjeogicatqfnpdmsr", 10, 10);
+ test(S("niptglfbosehkamrdqcj"), "", 19, S::npos);
+ test(S("copqdhstbingamjfkler"), "djkqc", 19, 16);
+ test(S("mrtaefilpdsgocnhqbjk"), "lgokshjtpb", 19, 19);
+ test(S("kojatdhlcmigpbfrqnes"), "bqjhtkfepimcnsgrlado", 19, 19);
+ test(S("eaintpchlqsbdgrkjofm"), "", 20, S::npos);
+ test(S("gjnhidfsepkrtaqbmclo"), "nocfa", 20, 19);
+ test(S("spocfaktqdbiejlhngmr"), "bgtajmiedc", 20, 18);
+ test(S("rphmlekgfscndtaobiqj"), "lsckfnqgdahejiopbtmr", 20, 19);
+ test(S("liatsqdoegkmfcnbhrpj"), "", 21, S::npos);
+ test(S("binjagtfldkrspcomqeh"), "gfsrt", 21, 12);
+ test(S("latkmisecnorjbfhqpdg"), "pfsocbhjtm", 21, 17);
+ test(S("lecfratdjkhnsmqpoigb"), "tpflmdnoicjgkberhqsa", 21, 19);
}
template <class S>
-TEST_CONSTEXPR_CXX20 void test1()
-{
- test(S(""), "", S::npos);
- test(S(""), "laenf", S::npos);
- test(S(""), "pqlnkmbdjo", S::npos);
- test(S(""), "qkamfogpnljdcshbreti", S::npos);
- test(S("nhmko"), "", S::npos);
- test(S("lahfb"), "irkhs", 2);
- test(S("gmfhd"), "kantesmpgj", 1);
- test(S("odaft"), "oknlrstdpiqmjbaghcfe", 4);
- test(S("eolhfgpjqk"), "", S::npos);
- test(S("nbatdlmekr"), "bnrpe", 9);
- test(S("jdmciepkaq"), "jtdaefblso", 8);
- test(S("hkbgspoflt"), "oselktgbcapndfjihrmq", 9);
- test(S("gprdcokbnjhlsfmtieqa"), "", S::npos);
- test(S("qjghlnftcaismkropdeb"), "bjaht", 19);
- test(S("pnalfrdtkqcmojiesbhg"), "hjlcmgpket", 19);
- test(S("pniotcfrhqsmgdkjbael"), "htaobedqikfplcgjsmrn", 19);
+TEST_CONSTEXPR_CXX20 void test1() {
+ test(S(""), "", S::npos);
+ test(S(""), "laenf", S::npos);
+ test(S(""), "pqlnkmbdjo", S::npos);
+ test(S(""), "qkamfogpnljdcshbreti", S::npos);
+ test(S("nhmko"), "", S::npos);
+ test(S("lahfb"), "irkhs", 2);
+ test(S("gmfhd"), "kantesmpgj", 1);
+ test(S("odaft"), "oknlrstdpiqmjbaghcfe", 4);
+ test(S("eolhfgpjqk"), "", S::npos);
+ test(S("nbatdlmekr"), "bnrpe", 9);
+ test(S("jdmciepkaq"), "jtdaefblso", 8);
+ test(S("hkbgspoflt"), "oselktgbcapndfjihrmq", 9);
+ test(S("gprdcokbnjhlsfmtieqa"), "", S::npos);
+ test(S("qjghlnftcaismkropdeb"), "bjaht", 19);
+ test(S("pnalfrdtkqcmojiesbhg"), "hjlcmgpket", 19);
+ test(S("pniotcfrhqsmgdkjbael"), "htaobedqikfplcgjsmrn", 19);
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -160,8 +154,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.ops/string_find.last.of/pointer_size_size.pass.cpp b/libcxx/test/std/strings/basic.string/string.ops/string_find.last.of/pointer_size_size.pass.cpp
index 5ab9ed57ccd0221..2c015bf17231a03 100644
--- a/libcxx/test/std/strings/basic.string/string.ops/string_find.last.of/pointer_size_size.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.ops/string_find.last.of/pointer_size_size.pass.cpp
@@ -18,353 +18,351 @@
template <class S>
TEST_CONSTEXPR_CXX20 void
-test(const S& s, const typename S::value_type* str, typename S::size_type pos,
- typename S::size_type n, typename S::size_type x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.find_last_of(str, pos, n));
- assert(s.find_last_of(str, pos, n) == x);
- if (x != S::npos)
- assert(x <= pos && x < s.size());
+test(const S& s,
+ const typename S::value_type* str,
+ typename S::size_type pos,
+ typename S::size_type n,
+ typename S::size_type x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.find_last_of(str, pos, n));
+ assert(s.find_last_of(str, pos, n) == x);
+ if (x != S::npos)
+ assert(x <= pos && x < s.size());
}
template <class S>
-TEST_CONSTEXPR_CXX20 void test0()
-{
- test(S(""), "", 0, 0, S::npos);
- test(S(""), "irkhs", 0, 0, S::npos);
- test(S(""), "kante", 0, 1, S::npos);
- test(S(""), "oknlr", 0, 2, S::npos);
- test(S(""), "pcdro", 0, 4, S::npos);
- test(S(""), "bnrpe", 0, 5, S::npos);
- test(S(""), "jtdaefblso", 0, 0, S::npos);
- test(S(""), "oselktgbca", 0, 1, S::npos);
- test(S(""), "eqgaplhckj", 0, 5, S::npos);
- test(S(""), "bjahtcmnlp", 0, 9, S::npos);
- test(S(""), "hjlcmgpket", 0, 10, S::npos);
- test(S(""), "htaobedqikfplcgjsmrn", 0, 0, S::npos);
- test(S(""), "hpqiarojkcdlsgnmfetb", 0, 1, S::npos);
- test(S(""), "dfkaprhjloqetcsimnbg", 0, 10, S::npos);
- test(S(""), "ihqrfebgadntlpmjksoc", 0, 19, S::npos);
- test(S(""), "ngtjfcalbseiqrphmkdo", 0, 20, S::npos);
- test(S(""), "", 1, 0, S::npos);
- test(S(""), "lbtqd", 1, 0, S::npos);
- test(S(""), "tboim", 1, 1, S::npos);
- test(S(""), "slcer", 1, 2, S::npos);
- test(S(""), "cbjfs", 1, 4, S::npos);
- test(S(""), "aqibs", 1, 5, S::npos);
- test(S(""), "gtfblmqinc", 1, 0, S::npos);
- test(S(""), "mkqpbtdalg", 1, 1, S::npos);
- test(S(""), "kphatlimcd", 1, 5, S::npos);
- test(S(""), "pblasqogic", 1, 9, S::npos);
- test(S(""), "arosdhcfme", 1, 10, S::npos);
- test(S(""), "blkhjeogicatqfnpdmsr", 1, 0, S::npos);
- test(S(""), "bmhineprjcoadgstflqk", 1, 1, S::npos);
- test(S(""), "djkqcmetslnghpbarfoi", 1, 10, S::npos);
- test(S(""), "lgokshjtpbemarcdqnfi", 1, 19, S::npos);
- test(S(""), "bqjhtkfepimcnsgrlado", 1, 20, S::npos);
- test(S("eaint"), "", 0, 0, S::npos);
- test(S("binja"), "gfsrt", 0, 0, S::npos);
- test(S("latkm"), "pfsoc", 0, 1, S::npos);
- test(S("lecfr"), "tpflm", 0, 2, S::npos);
- test(S("eqkst"), "sgkec", 0, 4, 0);
- test(S("cdafr"), "romds", 0, 5, S::npos);
- test(S("prbhe"), "qhjistlgmr", 0, 0, S::npos);
- test(S("lbisk"), "pedfirsglo", 0, 1, S::npos);
- test(S("hrlpd"), "aqcoslgrmk", 0, 5, S::npos);
- test(S("ehmja"), "dabckmepqj", 0, 9, 0);
- test(S("mhqgd"), "pqscrjthli", 0, 10, S::npos);
- test(S("tgklq"), "kfphdcsjqmobliagtren", 0, 0, S::npos);
- test(S("bocjs"), "rokpefncljibsdhqtagm", 0, 1, S::npos);
- test(S("grbsd"), "afionmkphlebtcjqsgrd", 0, 10, S::npos);
- test(S("ofjqr"), "aenmqplidhkofrjbctsg", 0, 19, 0);
- test(S("btlfi"), "osjmbtcadhiklegrpqnf", 0, 20, 0);
- test(S("clrgb"), "", 1, 0, S::npos);
- test(S("tjmek"), "osmia", 1, 0, S::npos);
- test(S("bgstp"), "ckonl", 1, 1, S::npos);
- test(S("hstrk"), "ilcaj", 1, 2, S::npos);
- test(S("kmspj"), "lasiq", 1, 4, S::npos);
- test(S("tjboh"), "kfqmr", 1, 5, S::npos);
- test(S("ilbcj"), "klnitfaobg", 1, 0, S::npos);
- test(S("jkngf"), "gjhmdlqikp", 1, 1, S::npos);
- test(S("gfcql"), "skbgtahqej", 1, 5, 0);
- test(S("dqtlg"), "bjsdgtlpkf", 1, 9, 0);
- test(S("bthpg"), "bjgfmnlkio", 1, 10, 0);
- test(S("dgsnq"), "lbhepotfsjdqigcnamkr", 1, 0, S::npos);
- test(S("rmfhp"), "tebangckmpsrqdlfojhi", 1, 1, S::npos);
- test(S("jfdam"), "joflqbdkhtegimscpanr", 1, 10, 1);
- test(S("edapb"), "adpmcohetfbsrjinlqkg", 1, 19, 1);
- test(S("brfsm"), "iacldqjpfnogbsrhmetk", 1, 20, 1);
- test(S("ndrhl"), "", 2, 0, S::npos);
- test(S("mrecp"), "otkgb", 2, 0, S::npos);
- test(S("qlasf"), "cqsjl", 2, 1, S::npos);
- test(S("smaqd"), "dpifl", 2, 2, S::npos);
- test(S("hjeni"), "oapht", 2, 4, 0);
- test(S("ocmfj"), "cifts", 2, 5, 1);
- test(S("hmftq"), "nmsckbgalo", 2, 0, S::npos);
- test(S("fklad"), "tpksqhamle", 2, 1, S::npos);
- test(S("dirnm"), "tpdrchmkji", 2, 5, 2);
- test(S("hrgdc"), "ijagfkblst", 2, 9, 2);
- test(S("ifakg"), "kpocsignjb", 2, 10, 0);
- test(S("ebrgd"), "pecqtkjsnbdrialgmohf", 2, 0, S::npos);
- test(S("rcjml"), "aiortphfcmkjebgsndql", 2, 1, S::npos);
- test(S("peqmt"), "sdbkeamglhipojqftrcn", 2, 10, 1);
- test(S("frehn"), "ljqncehgmfktroapidbs", 2, 19, 2);
- test(S("tqolf"), "rtcfodilamkbenjghqps", 2, 20, 2);
- test(S("cjgao"), "", 4, 0, S::npos);
- test(S("kjplq"), "mabns", 4, 0, S::npos);
- test(S("herni"), "bdnrp", 4, 1, S::npos);
- test(S("tadrb"), "scidp", 4, 2, S::npos);
- test(S("pkfeo"), "agbjl", 4, 4, S::npos);
- test(S("hoser"), "jfmpr", 4, 5, 4);
- test(S("kgrsp"), "rbpefghsmj", 4, 0, S::npos);
- test(S("pgejb"), "apsfntdoqc", 4, 1, S::npos);
- test(S("thlnq"), "ndkjeisgcl", 4, 5, 3);
- test(S("nbmit"), "rnfpqatdeo", 4, 9, 4);
- test(S("jgmib"), "bntjlqrfik", 4, 10, 4);
- test(S("ncrfj"), "kcrtmpolnaqejghsfdbi", 4, 0, S::npos);
- test(S("ncsik"), "lobheanpkmqidsrtcfgj", 4, 1, S::npos);
- test(S("sgbfh"), "athdkljcnreqbgpmisof", 4, 10, 4);
- test(S("dktbn"), "qkdmjialrscpbhefgont", 4, 19, 4);
- test(S("fthqm"), "dmasojntqleribkgfchp", 4, 20, 4);
- test(S("klopi"), "", 5, 0, S::npos);
- test(S("dajhn"), "psthd", 5, 0, S::npos);
- test(S("jbgno"), "rpmjd", 5, 1, S::npos);
- test(S("hkjae"), "dfsmk", 5, 2, S::npos);
+TEST_CONSTEXPR_CXX20 void test0() {
+ test(S(""), "", 0, 0, S::npos);
+ test(S(""), "irkhs", 0, 0, S::npos);
+ test(S(""), "kante", 0, 1, S::npos);
+ test(S(""), "oknlr", 0, 2, S::npos);
+ test(S(""), "pcdro", 0, 4, S::npos);
+ test(S(""), "bnrpe", 0, 5, S::npos);
+ test(S(""), "jtdaefblso", 0, 0, S::npos);
+ test(S(""), "oselktgbca", 0, 1, S::npos);
+ test(S(""), "eqgaplhckj", 0, 5, S::npos);
+ test(S(""), "bjahtcmnlp", 0, 9, S::npos);
+ test(S(""), "hjlcmgpket", 0, 10, S::npos);
+ test(S(""), "htaobedqikfplcgjsmrn", 0, 0, S::npos);
+ test(S(""), "hpqiarojkcdlsgnmfetb", 0, 1, S::npos);
+ test(S(""), "dfkaprhjloqetcsimnbg", 0, 10, S::npos);
+ test(S(""), "ihqrfebgadntlpmjksoc", 0, 19, S::npos);
+ test(S(""), "ngtjfcalbseiqrphmkdo", 0, 20, S::npos);
+ test(S(""), "", 1, 0, S::npos);
+ test(S(""), "lbtqd", 1, 0, S::npos);
+ test(S(""), "tboim", 1, 1, S::npos);
+ test(S(""), "slcer", 1, 2, S::npos);
+ test(S(""), "cbjfs", 1, 4, S::npos);
+ test(S(""), "aqibs", 1, 5, S::npos);
+ test(S(""), "gtfblmqinc", 1, 0, S::npos);
+ test(S(""), "mkqpbtdalg", 1, 1, S::npos);
+ test(S(""), "kphatlimcd", 1, 5, S::npos);
+ test(S(""), "pblasqogic", 1, 9, S::npos);
+ test(S(""), "arosdhcfme", 1, 10, S::npos);
+ test(S(""), "blkhjeogicatqfnpdmsr", 1, 0, S::npos);
+ test(S(""), "bmhineprjcoadgstflqk", 1, 1, S::npos);
+ test(S(""), "djkqcmetslnghpbarfoi", 1, 10, S::npos);
+ test(S(""), "lgokshjtpbemarcdqnfi", 1, 19, S::npos);
+ test(S(""), "bqjhtkfepimcnsgrlado", 1, 20, S::npos);
+ test(S("eaint"), "", 0, 0, S::npos);
+ test(S("binja"), "gfsrt", 0, 0, S::npos);
+ test(S("latkm"), "pfsoc", 0, 1, S::npos);
+ test(S("lecfr"), "tpflm", 0, 2, S::npos);
+ test(S("eqkst"), "sgkec", 0, 4, 0);
+ test(S("cdafr"), "romds", 0, 5, S::npos);
+ test(S("prbhe"), "qhjistlgmr", 0, 0, S::npos);
+ test(S("lbisk"), "pedfirsglo", 0, 1, S::npos);
+ test(S("hrlpd"), "aqcoslgrmk", 0, 5, S::npos);
+ test(S("ehmja"), "dabckmepqj", 0, 9, 0);
+ test(S("mhqgd"), "pqscrjthli", 0, 10, S::npos);
+ test(S("tgklq"), "kfphdcsjqmobliagtren", 0, 0, S::npos);
+ test(S("bocjs"), "rokpefncljibsdhqtagm", 0, 1, S::npos);
+ test(S("grbsd"), "afionmkphlebtcjqsgrd", 0, 10, S::npos);
+ test(S("ofjqr"), "aenmqplidhkofrjbctsg", 0, 19, 0);
+ test(S("btlfi"), "osjmbtcadhiklegrpqnf", 0, 20, 0);
+ test(S("clrgb"), "", 1, 0, S::npos);
+ test(S("tjmek"), "osmia", 1, 0, S::npos);
+ test(S("bgstp"), "ckonl", 1, 1, S::npos);
+ test(S("hstrk"), "ilcaj", 1, 2, S::npos);
+ test(S("kmspj"), "lasiq", 1, 4, S::npos);
+ test(S("tjboh"), "kfqmr", 1, 5, S::npos);
+ test(S("ilbcj"), "klnitfaobg", 1, 0, S::npos);
+ test(S("jkngf"), "gjhmdlqikp", 1, 1, S::npos);
+ test(S("gfcql"), "skbgtahqej", 1, 5, 0);
+ test(S("dqtlg"), "bjsdgtlpkf", 1, 9, 0);
+ test(S("bthpg"), "bjgfmnlkio", 1, 10, 0);
+ test(S("dgsnq"), "lbhepotfsjdqigcnamkr", 1, 0, S::npos);
+ test(S("rmfhp"), "tebangckmpsrqdlfojhi", 1, 1, S::npos);
+ test(S("jfdam"), "joflqbdkhtegimscpanr", 1, 10, 1);
+ test(S("edapb"), "adpmcohetfbsrjinlqkg", 1, 19, 1);
+ test(S("brfsm"), "iacldqjpfnogbsrhmetk", 1, 20, 1);
+ test(S("ndrhl"), "", 2, 0, S::npos);
+ test(S("mrecp"), "otkgb", 2, 0, S::npos);
+ test(S("qlasf"), "cqsjl", 2, 1, S::npos);
+ test(S("smaqd"), "dpifl", 2, 2, S::npos);
+ test(S("hjeni"), "oapht", 2, 4, 0);
+ test(S("ocmfj"), "cifts", 2, 5, 1);
+ test(S("hmftq"), "nmsckbgalo", 2, 0, S::npos);
+ test(S("fklad"), "tpksqhamle", 2, 1, S::npos);
+ test(S("dirnm"), "tpdrchmkji", 2, 5, 2);
+ test(S("hrgdc"), "ijagfkblst", 2, 9, 2);
+ test(S("ifakg"), "kpocsignjb", 2, 10, 0);
+ test(S("ebrgd"), "pecqtkjsnbdrialgmohf", 2, 0, S::npos);
+ test(S("rcjml"), "aiortphfcmkjebgsndql", 2, 1, S::npos);
+ test(S("peqmt"), "sdbkeamglhipojqftrcn", 2, 10, 1);
+ test(S("frehn"), "ljqncehgmfktroapidbs", 2, 19, 2);
+ test(S("tqolf"), "rtcfodilamkbenjghqps", 2, 20, 2);
+ test(S("cjgao"), "", 4, 0, S::npos);
+ test(S("kjplq"), "mabns", 4, 0, S::npos);
+ test(S("herni"), "bdnrp", 4, 1, S::npos);
+ test(S("tadrb"), "scidp", 4, 2, S::npos);
+ test(S("pkfeo"), "agbjl", 4, 4, S::npos);
+ test(S("hoser"), "jfmpr", 4, 5, 4);
+ test(S("kgrsp"), "rbpefghsmj", 4, 0, S::npos);
+ test(S("pgejb"), "apsfntdoqc", 4, 1, S::npos);
+ test(S("thlnq"), "ndkjeisgcl", 4, 5, 3);
+ test(S("nbmit"), "rnfpqatdeo", 4, 9, 4);
+ test(S("jgmib"), "bntjlqrfik", 4, 10, 4);
+ test(S("ncrfj"), "kcrtmpolnaqejghsfdbi", 4, 0, S::npos);
+ test(S("ncsik"), "lobheanpkmqidsrtcfgj", 4, 1, S::npos);
+ test(S("sgbfh"), "athdkljcnreqbgpmisof", 4, 10, 4);
+ test(S("dktbn"), "qkdmjialrscpbhefgont", 4, 19, 4);
+ test(S("fthqm"), "dmasojntqleribkgfchp", 4, 20, 4);
+ test(S("klopi"), "", 5, 0, S::npos);
+ test(S("dajhn"), "psthd", 5, 0, S::npos);
+ test(S("jbgno"), "rpmjd", 5, 1, S::npos);
+ test(S("hkjae"), "dfsmk", 5, 2, S::npos);
}
template <class S>
-TEST_CONSTEXPR_CXX20 void test1()
-{
- test(S("gbhqo"), "skqne", 5, 4, 3);
- test(S("ktdor"), "kipnf", 5, 5, 0);
- test(S("ldprn"), "hmrnqdgifl", 5, 0, S::npos);
- test(S("egmjk"), "fsmjcdairn", 5, 1, S::npos);
- test(S("armql"), "pcdgltbrfj", 5, 5, 4);
- test(S("cdhjo"), "aekfctpirg", 5, 9, 0);
- test(S("jcons"), "ledihrsgpf", 5, 10, 4);
- test(S("cbrkp"), "mqcklahsbtirgopefndj", 5, 0, S::npos);
- test(S("fhgna"), "kmlthaoqgecrnpdbjfis", 5, 1, S::npos);
- test(S("ejfcd"), "sfhbamcdptojlkrenqgi", 5, 10, 4);
- test(S("kqjhe"), "pbniofmcedrkhlstgaqj", 5, 19, 4);
- test(S("pbdjl"), "mongjratcskbhqiepfdl", 5, 20, 4);
- test(S("gajqn"), "", 6, 0, S::npos);
- test(S("stedk"), "hrnat", 6, 0, S::npos);
- test(S("tjkaf"), "gsqdt", 6, 1, S::npos);
- test(S("dthpe"), "bspkd", 6, 2, S::npos);
- test(S("klhde"), "ohcmb", 6, 4, 2);
- test(S("bhlki"), "heatr", 6, 5, 1);
- test(S("lqmoh"), "pmblckedfn", 6, 0, S::npos);
- test(S("mtqin"), "aceqmsrbik", 6, 1, S::npos);
- test(S("dpqbr"), "lmbtdehjrn", 6, 5, 3);
- test(S("kdhmo"), "teqmcrlgib", 6, 9, 3);
- test(S("jblqp"), "njolbmspac", 6, 10, 4);
- test(S("qmjgl"), "pofnhidklamecrbqjgst", 6, 0, S::npos);
- test(S("rothp"), "jbhckmtgrqnosafedpli", 6, 1, S::npos);
- test(S("ghknq"), "dobntpmqklicsahgjerf", 6, 10, 4);
- test(S("eopfi"), "tpdshainjkbfoemlrgcq", 6, 19, 4);
- test(S("dsnmg"), "oldpfgeakrnitscbjmqh", 6, 20, 4);
- test(S("jnkrfhotgl"), "", 0, 0, S::npos);
- test(S("dltjfngbko"), "rqegt", 0, 0, S::npos);
- test(S("bmjlpkiqde"), "dashm", 0, 1, S::npos);
- test(S("skrflobnqm"), "jqirk", 0, 2, S::npos);
- test(S("jkpldtshrm"), "rckeg", 0, 4, S::npos);
- test(S("ghasdbnjqo"), "jscie", 0, 5, S::npos);
- test(S("igrkhpbqjt"), "efsphndliq", 0, 0, S::npos);
- test(S("ikthdgcamf"), "gdicosleja", 0, 1, S::npos);
- test(S("pcofgeniam"), "qcpjibosfl", 0, 5, 0);
- test(S("rlfjgesqhc"), "lrhmefnjcq", 0, 9, 0);
- test(S("itphbqsker"), "dtablcrseo", 0, 10, S::npos);
- test(S("skjafcirqm"), "apckjsftedbhgomrnilq", 0, 0, S::npos);
- test(S("tcqomarsfd"), "pcbrgflehjtiadnsokqm", 0, 1, S::npos);
- test(S("rocfeldqpk"), "nsiadegjklhobrmtqcpf", 0, 10, S::npos);
- test(S("cfpegndlkt"), "cpmajdqnolikhgsbretf", 0, 19, 0);
- test(S("fqbtnkeasj"), "jcflkntmgiqrphdosaeb", 0, 20, 0);
- test(S("shbcqnmoar"), "", 1, 0, S::npos);
- test(S("bdoshlmfin"), "ontrs", 1, 0, S::npos);
- test(S("khfrebnsgq"), "pfkna", 1, 1, S::npos);
- test(S("getcrsaoji"), "ekosa", 1, 2, 1);
- test(S("fjiknedcpq"), "anqhk", 1, 4, S::npos);
- test(S("tkejgnafrm"), "jekca", 1, 5, 1);
- test(S("jnakolqrde"), "ikemsjgacf", 1, 0, S::npos);
- test(S("lcjptsmgbe"), "arolgsjkhm", 1, 1, S::npos);
- test(S("itfsmcjorl"), "oftkbldhre", 1, 5, 1);
- test(S("omchkfrjea"), "gbkqdoeftl", 1, 9, 0);
- test(S("cigfqkated"), "sqcflrgtim", 1, 10, 1);
- test(S("tscenjikml"), "fmhbkislrjdpanogqcet", 1, 0, S::npos);
- test(S("qcpaemsinf"), "rnioadktqlgpbcjsmhef", 1, 1, S::npos);
- test(S("gltkojeipd"), "oakgtnldpsefihqmjcbr", 1, 10, 1);
- test(S("qistfrgnmp"), "gbnaelosidmcjqktfhpr", 1, 19, 1);
- test(S("bdnpfcqaem"), "akbripjhlosndcmqgfet", 1, 20, 1);
- test(S("ectnhskflp"), "", 5, 0, S::npos);
- test(S("fgtianblpq"), "pijag", 5, 0, S::npos);
- test(S("mfeqklirnh"), "jrckd", 5, 1, S::npos);
- test(S("astedncjhk"), "qcloh", 5, 2, S::npos);
- test(S("fhlqgcajbr"), "thlmp", 5, 4, 2);
- test(S("epfhocmdng"), "qidmo", 5, 5, 4);
- test(S("apcnsibger"), "lnegpsjqrd", 5, 0, S::npos);
- test(S("aqkocrbign"), "rjqdablmfs", 5, 1, 5);
- test(S("ijsmdtqgce"), "enkgpbsjaq", 5, 5, S::npos);
- test(S("clobgsrken"), "kdsgoaijfh", 5, 9, 5);
- test(S("jbhcfposld"), "trfqgmckbe", 5, 10, 4);
- test(S("oqnpblhide"), "igetsracjfkdnpoblhqm", 5, 0, S::npos);
- test(S("lroeasctif"), "nqctfaogirshlekbdjpm", 5, 1, S::npos);
- test(S("bpjlgmiedh"), "csehfgomljdqinbartkp", 5, 10, 5);
- test(S("pamkeoidrj"), "qahoegcmplkfsjbdnitr", 5, 19, 5);
- test(S("espogqbthk"), "dpteiajrqmsognhlfbkc", 5, 20, 5);
- test(S("shoiedtcjb"), "", 9, 0, S::npos);
- test(S("ebcinjgads"), "tqbnh", 9, 0, S::npos);
- test(S("dqmregkcfl"), "akmle", 9, 1, S::npos);
- test(S("ngcrieqajf"), "iqfkm", 9, 2, 6);
- test(S("qosmilgnjb"), "tqjsr", 9, 4, 8);
- test(S("ikabsjtdfl"), "jplqg", 9, 5, 9);
- test(S("ersmicafdh"), "oilnrbcgtj", 9, 0, S::npos);
- test(S("fdnplotmgh"), "morkglpesn", 9, 1, 7);
- test(S("fdbicojerm"), "dmicerngat", 9, 5, 9);
- test(S("mbtafndjcq"), "radgeskbtc", 9, 9, 6);
- test(S("mlenkpfdtc"), "ljikprsmqo", 9, 10, 5);
- test(S("ahlcifdqgs"), "trqihkcgsjamfdbolnpe", 9, 0, S::npos);
- test(S("bgjemaltks"), "lqmthbsrekajgnofcipd", 9, 1, 6);
- test(S("pdhslbqrfc"), "jtalmedribkgqsopcnfh", 9, 10, 7);
- test(S("dirhtsnjkc"), "spqfoiclmtagejbndkrh", 9, 19, 9);
- test(S("dlroktbcja"), "nmotklspigjrdhcfaebq", 9, 20, 9);
- test(S("ncjpmaekbs"), "", 10, 0, S::npos);
- test(S("hlbosgmrak"), "hpmsd", 10, 0, S::npos);
- test(S("pqfhsgilen"), "qnpor", 10, 1, 1);
- test(S("gqtjsbdckh"), "otdma", 10, 2, 2);
- test(S("cfkqpjlegi"), "efhjg", 10, 4, 7);
- test(S("beanrfodgj"), "odpte", 10, 5, 7);
- test(S("adtkqpbjfi"), "bctdgfmolr", 10, 0, S::npos);
- test(S("iomkfthagj"), "oaklidrbqg", 10, 1, 1);
+TEST_CONSTEXPR_CXX20 void test1() {
+ test(S("gbhqo"), "skqne", 5, 4, 3);
+ test(S("ktdor"), "kipnf", 5, 5, 0);
+ test(S("ldprn"), "hmrnqdgifl", 5, 0, S::npos);
+ test(S("egmjk"), "fsmjcdairn", 5, 1, S::npos);
+ test(S("armql"), "pcdgltbrfj", 5, 5, 4);
+ test(S("cdhjo"), "aekfctpirg", 5, 9, 0);
+ test(S("jcons"), "ledihrsgpf", 5, 10, 4);
+ test(S("cbrkp"), "mqcklahsbtirgopefndj", 5, 0, S::npos);
+ test(S("fhgna"), "kmlthaoqgecrnpdbjfis", 5, 1, S::npos);
+ test(S("ejfcd"), "sfhbamcdptojlkrenqgi", 5, 10, 4);
+ test(S("kqjhe"), "pbniofmcedrkhlstgaqj", 5, 19, 4);
+ test(S("pbdjl"), "mongjratcskbhqiepfdl", 5, 20, 4);
+ test(S("gajqn"), "", 6, 0, S::npos);
+ test(S("stedk"), "hrnat", 6, 0, S::npos);
+ test(S("tjkaf"), "gsqdt", 6, 1, S::npos);
+ test(S("dthpe"), "bspkd", 6, 2, S::npos);
+ test(S("klhde"), "ohcmb", 6, 4, 2);
+ test(S("bhlki"), "heatr", 6, 5, 1);
+ test(S("lqmoh"), "pmblckedfn", 6, 0, S::npos);
+ test(S("mtqin"), "aceqmsrbik", 6, 1, S::npos);
+ test(S("dpqbr"), "lmbtdehjrn", 6, 5, 3);
+ test(S("kdhmo"), "teqmcrlgib", 6, 9, 3);
+ test(S("jblqp"), "njolbmspac", 6, 10, 4);
+ test(S("qmjgl"), "pofnhidklamecrbqjgst", 6, 0, S::npos);
+ test(S("rothp"), "jbhckmtgrqnosafedpli", 6, 1, S::npos);
+ test(S("ghknq"), "dobntpmqklicsahgjerf", 6, 10, 4);
+ test(S("eopfi"), "tpdshainjkbfoemlrgcq", 6, 19, 4);
+ test(S("dsnmg"), "oldpfgeakrnitscbjmqh", 6, 20, 4);
+ test(S("jnkrfhotgl"), "", 0, 0, S::npos);
+ test(S("dltjfngbko"), "rqegt", 0, 0, S::npos);
+ test(S("bmjlpkiqde"), "dashm", 0, 1, S::npos);
+ test(S("skrflobnqm"), "jqirk", 0, 2, S::npos);
+ test(S("jkpldtshrm"), "rckeg", 0, 4, S::npos);
+ test(S("ghasdbnjqo"), "jscie", 0, 5, S::npos);
+ test(S("igrkhpbqjt"), "efsphndliq", 0, 0, S::npos);
+ test(S("ikthdgcamf"), "gdicosleja", 0, 1, S::npos);
+ test(S("pcofgeniam"), "qcpjibosfl", 0, 5, 0);
+ test(S("rlfjgesqhc"), "lrhmefnjcq", 0, 9, 0);
+ test(S("itphbqsker"), "dtablcrseo", 0, 10, S::npos);
+ test(S("skjafcirqm"), "apckjsftedbhgomrnilq", 0, 0, S::npos);
+ test(S("tcqomarsfd"), "pcbrgflehjtiadnsokqm", 0, 1, S::npos);
+ test(S("rocfeldqpk"), "nsiadegjklhobrmtqcpf", 0, 10, S::npos);
+ test(S("cfpegndlkt"), "cpmajdqnolikhgsbretf", 0, 19, 0);
+ test(S("fqbtnkeasj"), "jcflkntmgiqrphdosaeb", 0, 20, 0);
+ test(S("shbcqnmoar"), "", 1, 0, S::npos);
+ test(S("bdoshlmfin"), "ontrs", 1, 0, S::npos);
+ test(S("khfrebnsgq"), "pfkna", 1, 1, S::npos);
+ test(S("getcrsaoji"), "ekosa", 1, 2, 1);
+ test(S("fjiknedcpq"), "anqhk", 1, 4, S::npos);
+ test(S("tkejgnafrm"), "jekca", 1, 5, 1);
+ test(S("jnakolqrde"), "ikemsjgacf", 1, 0, S::npos);
+ test(S("lcjptsmgbe"), "arolgsjkhm", 1, 1, S::npos);
+ test(S("itfsmcjorl"), "oftkbldhre", 1, 5, 1);
+ test(S("omchkfrjea"), "gbkqdoeftl", 1, 9, 0);
+ test(S("cigfqkated"), "sqcflrgtim", 1, 10, 1);
+ test(S("tscenjikml"), "fmhbkislrjdpanogqcet", 1, 0, S::npos);
+ test(S("qcpaemsinf"), "rnioadktqlgpbcjsmhef", 1, 1, S::npos);
+ test(S("gltkojeipd"), "oakgtnldpsefihqmjcbr", 1, 10, 1);
+ test(S("qistfrgnmp"), "gbnaelosidmcjqktfhpr", 1, 19, 1);
+ test(S("bdnpfcqaem"), "akbripjhlosndcmqgfet", 1, 20, 1);
+ test(S("ectnhskflp"), "", 5, 0, S::npos);
+ test(S("fgtianblpq"), "pijag", 5, 0, S::npos);
+ test(S("mfeqklirnh"), "jrckd", 5, 1, S::npos);
+ test(S("astedncjhk"), "qcloh", 5, 2, S::npos);
+ test(S("fhlqgcajbr"), "thlmp", 5, 4, 2);
+ test(S("epfhocmdng"), "qidmo", 5, 5, 4);
+ test(S("apcnsibger"), "lnegpsjqrd", 5, 0, S::npos);
+ test(S("aqkocrbign"), "rjqdablmfs", 5, 1, 5);
+ test(S("ijsmdtqgce"), "enkgpbsjaq", 5, 5, S::npos);
+ test(S("clobgsrken"), "kdsgoaijfh", 5, 9, 5);
+ test(S("jbhcfposld"), "trfqgmckbe", 5, 10, 4);
+ test(S("oqnpblhide"), "igetsracjfkdnpoblhqm", 5, 0, S::npos);
+ test(S("lroeasctif"), "nqctfaogirshlekbdjpm", 5, 1, S::npos);
+ test(S("bpjlgmiedh"), "csehfgomljdqinbartkp", 5, 10, 5);
+ test(S("pamkeoidrj"), "qahoegcmplkfsjbdnitr", 5, 19, 5);
+ test(S("espogqbthk"), "dpteiajrqmsognhlfbkc", 5, 20, 5);
+ test(S("shoiedtcjb"), "", 9, 0, S::npos);
+ test(S("ebcinjgads"), "tqbnh", 9, 0, S::npos);
+ test(S("dqmregkcfl"), "akmle", 9, 1, S::npos);
+ test(S("ngcrieqajf"), "iqfkm", 9, 2, 6);
+ test(S("qosmilgnjb"), "tqjsr", 9, 4, 8);
+ test(S("ikabsjtdfl"), "jplqg", 9, 5, 9);
+ test(S("ersmicafdh"), "oilnrbcgtj", 9, 0, S::npos);
+ test(S("fdnplotmgh"), "morkglpesn", 9, 1, 7);
+ test(S("fdbicojerm"), "dmicerngat", 9, 5, 9);
+ test(S("mbtafndjcq"), "radgeskbtc", 9, 9, 6);
+ test(S("mlenkpfdtc"), "ljikprsmqo", 9, 10, 5);
+ test(S("ahlcifdqgs"), "trqihkcgsjamfdbolnpe", 9, 0, S::npos);
+ test(S("bgjemaltks"), "lqmthbsrekajgnofcipd", 9, 1, 6);
+ test(S("pdhslbqrfc"), "jtalmedribkgqsopcnfh", 9, 10, 7);
+ test(S("dirhtsnjkc"), "spqfoiclmtagejbndkrh", 9, 19, 9);
+ test(S("dlroktbcja"), "nmotklspigjrdhcfaebq", 9, 20, 9);
+ test(S("ncjpmaekbs"), "", 10, 0, S::npos);
+ test(S("hlbosgmrak"), "hpmsd", 10, 0, S::npos);
+ test(S("pqfhsgilen"), "qnpor", 10, 1, 1);
+ test(S("gqtjsbdckh"), "otdma", 10, 2, 2);
+ test(S("cfkqpjlegi"), "efhjg", 10, 4, 7);
+ test(S("beanrfodgj"), "odpte", 10, 5, 7);
+ test(S("adtkqpbjfi"), "bctdgfmolr", 10, 0, S::npos);
+ test(S("iomkfthagj"), "oaklidrbqg", 10, 1, 1);
}
template <class S>
-TEST_CONSTEXPR_CXX20 void test2()
-{
- test(S("sdpcilonqj"), "dnjfsagktr", 10, 5, 9);
- test(S("gtfbdkqeml"), "nejaktmiqg", 10, 9, 8);
- test(S("bmeqgcdorj"), "pjqonlebsf", 10, 10, 9);
- test(S("etqlcanmob"), "dshmnbtolcjepgaikfqr", 10, 0, S::npos);
- test(S("roqmkbdtia"), "iogfhpabtjkqlrnemcds", 10, 1, 8);
- test(S("kadsithljf"), "ngridfabjsecpqltkmoh", 10, 10, 9);
- test(S("sgtkpbfdmh"), "athmknplcgofrqejsdib", 10, 19, 9);
- test(S("qgmetnabkl"), "ldobhmqcafnjtkeisgrp", 10, 20, 9);
- test(S("cqjohampgd"), "", 11, 0, S::npos);
- test(S("hobitmpsan"), "aocjb", 11, 0, S::npos);
- test(S("tjehkpsalm"), "jbrnk", 11, 1, 1);
- test(S("ngfbojitcl"), "tqedg", 11, 2, 7);
- test(S("rcfkdbhgjo"), "nqskp", 11, 4, 3);
- test(S("qghptonrea"), "eaqkl", 11, 5, 9);
- test(S("hnprfgqjdl"), "reaoicljqm", 11, 0, S::npos);
- test(S("hlmgabenti"), "lsftgajqpm", 11, 1, 1);
- test(S("ofcjanmrbs"), "rlpfogmits", 11, 5, 7);
- test(S("jqedtkornm"), "shkncmiaqj", 11, 9, 9);
- test(S("rfedlasjmg"), "fpnatrhqgs", 11, 10, 9);
- test(S("talpqjsgkm"), "sjclemqhnpdbgikarfot", 11, 0, S::npos);
- test(S("lrkcbtqpie"), "otcmedjikgsfnqbrhpla", 11, 1, S::npos);
- test(S("cipogdskjf"), "bonsaefdqiprkhlgtjcm", 11, 10, 9);
- test(S("nqedcojahi"), "egpscmahijlfnkrodqtb", 11, 19, 9);
- test(S("hefnrkmctj"), "kmqbfepjthgilscrndoa", 11, 20, 9);
- test(S("atqirnmekfjolhpdsgcb"), "", 0, 0, S::npos);
- test(S("echfkmlpribjnqsaogtd"), "prboq", 0, 0, S::npos);
- test(S("qnhiftdgcleajbpkrosm"), "fjcqh", 0, 1, S::npos);
- test(S("chamfknorbedjitgslpq"), "fmosa", 0, 2, S::npos);
- test(S("njhqpibfmtlkaecdrgso"), "qdbok", 0, 4, S::npos);
- test(S("ebnghfsqkprmdcljoiat"), "amslg", 0, 5, S::npos);
- test(S("letjomsgihfrpqbkancd"), "smpltjneqb", 0, 0, S::npos);
- test(S("nblgoipcrqeaktshjdmf"), "flitskrnge", 0, 1, S::npos);
- test(S("cehkbngtjoiflqapsmrd"), "pgqihmlbef", 0, 5, S::npos);
- test(S("mignapfoklbhcqjetdrs"), "cfpdqjtgsb", 0, 9, S::npos);
- test(S("ceatbhlsqjgpnokfrmdi"), "htpsiaflom", 0, 10, S::npos);
- test(S("ocihkjgrdelpfnmastqb"), "kpjfiaceghsrdtlbnomq", 0, 0, S::npos);
- test(S("noelgschdtbrjfmiqkap"), "qhtbomidljgafneksprc", 0, 1, S::npos);
- test(S("dkclqfombepritjnghas"), "nhtjobkcefldimpsaqgr", 0, 10, S::npos);
- test(S("miklnresdgbhqcojftap"), "prabcjfqnoeskilmtgdh", 0, 19, 0);
- test(S("htbcigojaqmdkfrnlsep"), "dtrgmchilkasqoebfpjn", 0, 20, 0);
- test(S("febhmqtjanokscdirpgl"), "", 1, 0, S::npos);
- test(S("loakbsqjpcrdhftniegm"), "sqome", 1, 0, S::npos);
- test(S("reagphsqflbitdcjmkno"), "smfte", 1, 1, S::npos);
- test(S("jitlfrqemsdhkopncabg"), "ciboh", 1, 2, 1);
- test(S("mhtaepscdnrjqgbkifol"), "haois", 1, 4, 1);
- test(S("tocesrfmnglpbjihqadk"), "abfki", 1, 5, S::npos);
- test(S("lpfmctjrhdagneskbqoi"), "frdkocntmq", 1, 0, S::npos);
- test(S("lsmqaepkdhncirbtjfgo"), "oasbpedlnr", 1, 1, S::npos);
- test(S("epoiqmtldrabnkjhcfsg"), "kltqmhgand", 1, 5, S::npos);
- test(S("emgasrilpknqojhtbdcf"), "gdtfjchpmr", 1, 9, 1);
- test(S("hnfiagdpcklrjetqbsom"), "ponmcqblet", 1, 10, 1);
- test(S("nsdfebgajhmtricpoklq"), "sgphqdnofeiklatbcmjr", 1, 0, S::npos);
- test(S("atjgfsdlpobmeiqhncrk"), "ljqprsmigtfoneadckbh", 1, 1, S::npos);
- test(S("sitodfgnrejlahcbmqkp"), "ligeojhafnkmrcsqtbdp", 1, 10, 1);
- test(S("fraghmbiceknltjpqosd"), "lsimqfnjarbopedkhcgt", 1, 19, 1);
- test(S("pmafenlhqtdbkirjsogc"), "abedmfjlghniorcqptks", 1, 20, 1);
- test(S("pihgmoeqtnakrjslcbfd"), "", 10, 0, S::npos);
- test(S("gjdkeprctqblnhiafsom"), "hqtoa", 10, 0, S::npos);
- test(S("mkpnblfdsahrcqijteog"), "cahif", 10, 1, S::npos);
- test(S("gckarqnelodfjhmbptis"), "kehis", 10, 2, 7);
- test(S("gqpskidtbclomahnrjfe"), "kdlmh", 10, 4, 10);
- test(S("pkldjsqrfgitbhmaecno"), "paeql", 10, 5, 6);
- test(S("aftsijrbeklnmcdqhgop"), "aghoqiefnb", 10, 0, S::npos);
- test(S("mtlgdrhafjkbiepqnsoc"), "jrbqaikpdo", 10, 1, 9);
- test(S("pqgirnaefthokdmbsclj"), "smjonaeqcl", 10, 5, 5);
- test(S("kpdbgjmtherlsfcqoina"), "eqbdrkcfah", 10, 9, 10);
- test(S("jrlbothiknqmdgcfasep"), "kapmsienhf", 10, 10, 9);
- test(S("mjogldqferckabinptsh"), "jpqotrlenfcsbhkaimdg", 10, 0, S::npos);
- test(S("apoklnefbhmgqcdrisjt"), "jlbmhnfgtcqprikeados", 10, 1, S::npos);
- test(S("ifeopcnrjbhkdgatmqls"), "stgbhfmdaljnpqoicker", 10, 10, 10);
- test(S("ckqhaiesmjdnrgolbtpf"), "oihcetflbjagdsrkmqpn", 10, 19, 10);
- test(S("bnlgapfimcoterskqdjh"), "adtclebmnpjsrqfkigoh", 10, 20, 10);
- test(S("kgdlrobpmjcthqsafeni"), "", 19, 0, S::npos);
- test(S("dfkechomjapgnslbtqir"), "beafg", 19, 0, S::npos);
- test(S("rloadknfbqtgmhcsipje"), "iclat", 19, 1, 16);
- test(S("mgjhkolrnadqbpetcifs"), "rkhnf", 19, 2, 7);
- test(S("cmlfakiojdrgtbsphqen"), "clshq", 19, 4, 16);
- test(S("kghbfipeomsntdalrqjc"), "dtcoj", 19, 5, 19);
- test(S("eldiqckrnmtasbghjfpo"), "rqosnjmfth", 19, 0, S::npos);
- test(S("abqjcfedgotihlnspkrm"), "siatdfqglh", 19, 1, 15);
- test(S("qfbadrtjsimkolcenhpg"), "mrlshtpgjq", 19, 5, 17);
- test(S("abseghclkjqifmtodrnp"), "adlcskgqjt", 19, 9, 16);
- test(S("ibmsnlrjefhtdokacqpg"), "drshcjknaf", 19, 10, 16);
- test(S("mrkfciqjebaponsthldg"), "etsaqroinghpkjdlfcbm", 19, 0, S::npos);
- test(S("mjkticdeoqshpalrfbgn"), "sgepdnkqliambtrocfhj", 19, 1, 10);
- test(S("rqnoclbdejgiphtfsakm"), "nlmcjaqgbsortfdihkpe", 19, 10, 19);
- test(S("plkqbhmtfaeodjcrsing"), "racfnpmosldibqkghjet", 19, 19, 19);
- test(S("oegalhmstjrfickpbndq"), "fjhdsctkqeiolagrnmbp", 19, 20, 19);
- test(S("rdtgjcaohpblniekmsfq"), "", 20, 0, S::npos);
- test(S("ofkqbnjetrmsaidphglc"), "ejanp", 20, 0, S::npos);
- test(S("grkpahljcftesdmonqib"), "odife", 20, 1, 15);
- test(S("jimlgbhfqkteospardcn"), "okaqd", 20, 2, 12);
- test(S("gftenihpmslrjkqadcob"), "lcdbi", 20, 4, 19);
- test(S("bmhldogtckrfsanijepq"), "fsqbj", 20, 5, 19);
- test(S("nfqkrpjdesabgtlcmoih"), "bigdomnplq", 20, 0, S::npos);
- test(S("focalnrpiqmdkstehbjg"), "apiblotgcd", 20, 1, 3);
- test(S("rhqdspkmebiflcotnjga"), "acfhdenops", 20, 5, 19);
- test(S("rahdtmsckfboqlpniegj"), "jopdeamcrk", 20, 9, 19);
- test(S("fbkeiopclstmdqranjhg"), "trqncbkgmh", 20, 10, 19);
- test(S("lifhpdgmbconstjeqark"), "tomglrkencbsfjqpihda", 20, 0, S::npos);
+TEST_CONSTEXPR_CXX20 void test2() {
+ test(S("sdpcilonqj"), "dnjfsagktr", 10, 5, 9);
+ test(S("gtfbdkqeml"), "nejaktmiqg", 10, 9, 8);
+ test(S("bmeqgcdorj"), "pjqonlebsf", 10, 10, 9);
+ test(S("etqlcanmob"), "dshmnbtolcjepgaikfqr", 10, 0, S::npos);
+ test(S("roqmkbdtia"), "iogfhpabtjkqlrnemcds", 10, 1, 8);
+ test(S("kadsithljf"), "ngridfabjsecpqltkmoh", 10, 10, 9);
+ test(S("sgtkpbfdmh"), "athmknplcgofrqejsdib", 10, 19, 9);
+ test(S("qgmetnabkl"), "ldobhmqcafnjtkeisgrp", 10, 20, 9);
+ test(S("cqjohampgd"), "", 11, 0, S::npos);
+ test(S("hobitmpsan"), "aocjb", 11, 0, S::npos);
+ test(S("tjehkpsalm"), "jbrnk", 11, 1, 1);
+ test(S("ngfbojitcl"), "tqedg", 11, 2, 7);
+ test(S("rcfkdbhgjo"), "nqskp", 11, 4, 3);
+ test(S("qghptonrea"), "eaqkl", 11, 5, 9);
+ test(S("hnprfgqjdl"), "reaoicljqm", 11, 0, S::npos);
+ test(S("hlmgabenti"), "lsftgajqpm", 11, 1, 1);
+ test(S("ofcjanmrbs"), "rlpfogmits", 11, 5, 7);
+ test(S("jqedtkornm"), "shkncmiaqj", 11, 9, 9);
+ test(S("rfedlasjmg"), "fpnatrhqgs", 11, 10, 9);
+ test(S("talpqjsgkm"), "sjclemqhnpdbgikarfot", 11, 0, S::npos);
+ test(S("lrkcbtqpie"), "otcmedjikgsfnqbrhpla", 11, 1, S::npos);
+ test(S("cipogdskjf"), "bonsaefdqiprkhlgtjcm", 11, 10, 9);
+ test(S("nqedcojahi"), "egpscmahijlfnkrodqtb", 11, 19, 9);
+ test(S("hefnrkmctj"), "kmqbfepjthgilscrndoa", 11, 20, 9);
+ test(S("atqirnmekfjolhpdsgcb"), "", 0, 0, S::npos);
+ test(S("echfkmlpribjnqsaogtd"), "prboq", 0, 0, S::npos);
+ test(S("qnhiftdgcleajbpkrosm"), "fjcqh", 0, 1, S::npos);
+ test(S("chamfknorbedjitgslpq"), "fmosa", 0, 2, S::npos);
+ test(S("njhqpibfmtlkaecdrgso"), "qdbok", 0, 4, S::npos);
+ test(S("ebnghfsqkprmdcljoiat"), "amslg", 0, 5, S::npos);
+ test(S("letjomsgihfrpqbkancd"), "smpltjneqb", 0, 0, S::npos);
+ test(S("nblgoipcrqeaktshjdmf"), "flitskrnge", 0, 1, S::npos);
+ test(S("cehkbngtjoiflqapsmrd"), "pgqihmlbef", 0, 5, S::npos);
+ test(S("mignapfoklbhcqjetdrs"), "cfpdqjtgsb", 0, 9, S::npos);
+ test(S("ceatbhlsqjgpnokfrmdi"), "htpsiaflom", 0, 10, S::npos);
+ test(S("ocihkjgrdelpfnmastqb"), "kpjfiaceghsrdtlbnomq", 0, 0, S::npos);
+ test(S("noelgschdtbrjfmiqkap"), "qhtbomidljgafneksprc", 0, 1, S::npos);
+ test(S("dkclqfombepritjnghas"), "nhtjobkcefldimpsaqgr", 0, 10, S::npos);
+ test(S("miklnresdgbhqcojftap"), "prabcjfqnoeskilmtgdh", 0, 19, 0);
+ test(S("htbcigojaqmdkfrnlsep"), "dtrgmchilkasqoebfpjn", 0, 20, 0);
+ test(S("febhmqtjanokscdirpgl"), "", 1, 0, S::npos);
+ test(S("loakbsqjpcrdhftniegm"), "sqome", 1, 0, S::npos);
+ test(S("reagphsqflbitdcjmkno"), "smfte", 1, 1, S::npos);
+ test(S("jitlfrqemsdhkopncabg"), "ciboh", 1, 2, 1);
+ test(S("mhtaepscdnrjqgbkifol"), "haois", 1, 4, 1);
+ test(S("tocesrfmnglpbjihqadk"), "abfki", 1, 5, S::npos);
+ test(S("lpfmctjrhdagneskbqoi"), "frdkocntmq", 1, 0, S::npos);
+ test(S("lsmqaepkdhncirbtjfgo"), "oasbpedlnr", 1, 1, S::npos);
+ test(S("epoiqmtldrabnkjhcfsg"), "kltqmhgand", 1, 5, S::npos);
+ test(S("emgasrilpknqojhtbdcf"), "gdtfjchpmr", 1, 9, 1);
+ test(S("hnfiagdpcklrjetqbsom"), "ponmcqblet", 1, 10, 1);
+ test(S("nsdfebgajhmtricpoklq"), "sgphqdnofeiklatbcmjr", 1, 0, S::npos);
+ test(S("atjgfsdlpobmeiqhncrk"), "ljqprsmigtfoneadckbh", 1, 1, S::npos);
+ test(S("sitodfgnrejlahcbmqkp"), "ligeojhafnkmrcsqtbdp", 1, 10, 1);
+ test(S("fraghmbiceknltjpqosd"), "lsimqfnjarbopedkhcgt", 1, 19, 1);
+ test(S("pmafenlhqtdbkirjsogc"), "abedmfjlghniorcqptks", 1, 20, 1);
+ test(S("pihgmoeqtnakrjslcbfd"), "", 10, 0, S::npos);
+ test(S("gjdkeprctqblnhiafsom"), "hqtoa", 10, 0, S::npos);
+ test(S("mkpnblfdsahrcqijteog"), "cahif", 10, 1, S::npos);
+ test(S("gckarqnelodfjhmbptis"), "kehis", 10, 2, 7);
+ test(S("gqpskidtbclomahnrjfe"), "kdlmh", 10, 4, 10);
+ test(S("pkldjsqrfgitbhmaecno"), "paeql", 10, 5, 6);
+ test(S("aftsijrbeklnmcdqhgop"), "aghoqiefnb", 10, 0, S::npos);
+ test(S("mtlgdrhafjkbiepqnsoc"), "jrbqaikpdo", 10, 1, 9);
+ test(S("pqgirnaefthokdmbsclj"), "smjonaeqcl", 10, 5, 5);
+ test(S("kpdbgjmtherlsfcqoina"), "eqbdrkcfah", 10, 9, 10);
+ test(S("jrlbothiknqmdgcfasep"), "kapmsienhf", 10, 10, 9);
+ test(S("mjogldqferckabinptsh"), "jpqotrlenfcsbhkaimdg", 10, 0, S::npos);
+ test(S("apoklnefbhmgqcdrisjt"), "jlbmhnfgtcqprikeados", 10, 1, S::npos);
+ test(S("ifeopcnrjbhkdgatmqls"), "stgbhfmdaljnpqoicker", 10, 10, 10);
+ test(S("ckqhaiesmjdnrgolbtpf"), "oihcetflbjagdsrkmqpn", 10, 19, 10);
+ test(S("bnlgapfimcoterskqdjh"), "adtclebmnpjsrqfkigoh", 10, 20, 10);
+ test(S("kgdlrobpmjcthqsafeni"), "", 19, 0, S::npos);
+ test(S("dfkechomjapgnslbtqir"), "beafg", 19, 0, S::npos);
+ test(S("rloadknfbqtgmhcsipje"), "iclat", 19, 1, 16);
+ test(S("mgjhkolrnadqbpetcifs"), "rkhnf", 19, 2, 7);
+ test(S("cmlfakiojdrgtbsphqen"), "clshq", 19, 4, 16);
+ test(S("kghbfipeomsntdalrqjc"), "dtcoj", 19, 5, 19);
+ test(S("eldiqckrnmtasbghjfpo"), "rqosnjmfth", 19, 0, S::npos);
+ test(S("abqjcfedgotihlnspkrm"), "siatdfqglh", 19, 1, 15);
+ test(S("qfbadrtjsimkolcenhpg"), "mrlshtpgjq", 19, 5, 17);
+ test(S("abseghclkjqifmtodrnp"), "adlcskgqjt", 19, 9, 16);
+ test(S("ibmsnlrjefhtdokacqpg"), "drshcjknaf", 19, 10, 16);
+ test(S("mrkfciqjebaponsthldg"), "etsaqroinghpkjdlfcbm", 19, 0, S::npos);
+ test(S("mjkticdeoqshpalrfbgn"), "sgepdnkqliambtrocfhj", 19, 1, 10);
+ test(S("rqnoclbdejgiphtfsakm"), "nlmcjaqgbsortfdihkpe", 19, 10, 19);
+ test(S("plkqbhmtfaeodjcrsing"), "racfnpmosldibqkghjet", 19, 19, 19);
+ test(S("oegalhmstjrfickpbndq"), "fjhdsctkqeiolagrnmbp", 19, 20, 19);
+ test(S("rdtgjcaohpblniekmsfq"), "", 20, 0, S::npos);
+ test(S("ofkqbnjetrmsaidphglc"), "ejanp", 20, 0, S::npos);
+ test(S("grkpahljcftesdmonqib"), "odife", 20, 1, 15);
+ test(S("jimlgbhfqkteospardcn"), "okaqd", 20, 2, 12);
+ test(S("gftenihpmslrjkqadcob"), "lcdbi", 20, 4, 19);
+ test(S("bmhldogtckrfsanijepq"), "fsqbj", 20, 5, 19);
+ test(S("nfqkrpjdesabgtlcmoih"), "bigdomnplq", 20, 0, S::npos);
+ test(S("focalnrpiqmdkstehbjg"), "apiblotgcd", 20, 1, 3);
+ test(S("rhqdspkmebiflcotnjga"), "acfhdenops", 20, 5, 19);
+ test(S("rahdtmsckfboqlpniegj"), "jopdeamcrk", 20, 9, 19);
+ test(S("fbkeiopclstmdqranjhg"), "trqncbkgmh", 20, 10, 19);
+ test(S("lifhpdgmbconstjeqark"), "tomglrkencbsfjqpihda", 20, 0, S::npos);
}
template <class S>
-TEST_CONSTEXPR_CXX20 void test3()
-{
- test(S("pboqganrhedjmltsicfk"), "gbkhdnpoietfcmrslajq", 20, 1, 4);
- test(S("klchabsimetjnqgorfpd"), "rtfnmbsglkjaichoqedp", 20, 10, 17);
- test(S("sirfgmjqhctndbklaepo"), "ohkmdpfqbsacrtjnlgei", 20, 19, 19);
- test(S("rlbdsiceaonqjtfpghkm"), "dlbrteoisgphmkncajfq", 20, 20, 19);
- test(S("ecgdanriptblhjfqskom"), "", 21, 0, S::npos);
- test(S("fdmiarlpgcskbhoteqjn"), "sjrlo", 21, 0, S::npos);
- test(S("rlbstjqopignecmfadkh"), "qjpor", 21, 1, 6);
- test(S("grjpqmbshektdolcafni"), "odhfn", 21, 2, 13);
- test(S("sakfcohtqnibprjmlged"), "qtfin", 21, 4, 10);
- test(S("mjtdglasihqpocebrfkn"), "hpqfo", 21, 5, 17);
- test(S("okaplfrntghqbmeicsdj"), "fabmertkos", 21, 0, S::npos);
- test(S("sahngemrtcjidqbklfpo"), "brqtgkmaej", 21, 1, 14);
- test(S("dlmsipcnekhbgoaftqjr"), "nfrdeihsgl", 21, 5, 19);
- test(S("ahegrmqnoiklpfsdbcjt"), "hlfrosekpi", 21, 9, 14);
- test(S("hdsjbnmlegtkqripacof"), "atgbkrjdsm", 21, 10, 16);
- test(S("pcnedrfjihqbalkgtoms"), "blnrptjgqmaifsdkhoec", 21, 0, S::npos);
- test(S("qjidealmtpskrbfhocng"), "ctpmdahebfqjgknloris", 21, 1, 17);
- test(S("qeindtagmokpfhsclrbj"), "apnkeqthrmlbfodiscgj", 21, 10, 17);
- test(S("kpfegbjhsrnodltqciam"), "jdgictpframeoqlsbknh", 21, 19, 19);
- test(S("hnbrcplsjfgiktoedmaq"), "qprlsfojamgndekthibc", 21, 20, 19);
+TEST_CONSTEXPR_CXX20 void test3() {
+ test(S("pboqganrhedjmltsicfk"), "gbkhdnpoietfcmrslajq", 20, 1, 4);
+ test(S("klchabsimetjnqgorfpd"), "rtfnmbsglkjaichoqedp", 20, 10, 17);
+ test(S("sirfgmjqhctndbklaepo"), "ohkmdpfqbsacrtjnlgei", 20, 19, 19);
+ test(S("rlbdsiceaonqjtfpghkm"), "dlbrteoisgphmkncajfq", 20, 20, 19);
+ test(S("ecgdanriptblhjfqskom"), "", 21, 0, S::npos);
+ test(S("fdmiarlpgcskbhoteqjn"), "sjrlo", 21, 0, S::npos);
+ test(S("rlbstjqopignecmfadkh"), "qjpor", 21, 1, 6);
+ test(S("grjpqmbshektdolcafni"), "odhfn", 21, 2, 13);
+ test(S("sakfcohtqnibprjmlged"), "qtfin", 21, 4, 10);
+ test(S("mjtdglasihqpocebrfkn"), "hpqfo", 21, 5, 17);
+ test(S("okaplfrntghqbmeicsdj"), "fabmertkos", 21, 0, S::npos);
+ test(S("sahngemrtcjidqbklfpo"), "brqtgkmaej", 21, 1, 14);
+ test(S("dlmsipcnekhbgoaftqjr"), "nfrdeihsgl", 21, 5, 19);
+ test(S("ahegrmqnoiklpfsdbcjt"), "hlfrosekpi", 21, 9, 14);
+ test(S("hdsjbnmlegtkqripacof"), "atgbkrjdsm", 21, 10, 16);
+ test(S("pcnedrfjihqbalkgtoms"), "blnrptjgqmaifsdkhoec", 21, 0, S::npos);
+ test(S("qjidealmtpskrbfhocng"), "ctpmdahebfqjgknloris", 21, 1, 17);
+ test(S("qeindtagmokpfhsclrbj"), "apnkeqthrmlbfodiscgj", 21, 10, 17);
+ test(S("kpfegbjhsrnodltqciam"), "jdgictpframeoqlsbknh", 21, 19, 19);
+ test(S("hnbrcplsjfgiktoedmaq"), "qprlsfojamgndekthibc", 21, 20, 19);
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -388,8 +386,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.ops/string_find.last.of/string_size.pass.cpp b/libcxx/test/std/strings/basic.string/string.ops/string_find.last.of/string_size.pass.cpp
index 5d0d63091a28a75..e12bcd7b1bb1bc6 100644
--- a/libcxx/test/std/strings/basic.string/string.ops/string_find.last.of/string_size.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.ops/string_find.last.of/string_size.pass.cpp
@@ -17,129 +17,123 @@
#include "min_allocator.h"
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(const S& s, const S& str, typename S::size_type pos, typename S::size_type x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.find_last_of(str, pos));
- assert(s.find_last_of(str, pos) == x);
- if (x != S::npos)
- assert(x <= pos && x < s.size());
+TEST_CONSTEXPR_CXX20 void test(const S& s, const S& str, typename S::size_type pos, typename S::size_type x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.find_last_of(str, pos));
+ assert(s.find_last_of(str, pos) == x);
+ if (x != S::npos)
+ assert(x <= pos && x < s.size());
}
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(const S& s, const S& str, typename S::size_type x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.find_last_of(str));
- assert(s.find_last_of(str) == x);
- if (x != S::npos)
- assert(x < s.size());
+TEST_CONSTEXPR_CXX20 void test(const S& s, const S& str, typename S::size_type x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.find_last_of(str));
+ assert(s.find_last_of(str) == x);
+ if (x != S::npos)
+ assert(x < s.size());
}
template <class S>
-TEST_CONSTEXPR_CXX20 void test0()
-{
- test(S(""), S(""), 0, S::npos);
- test(S(""), S("laenf"), 0, S::npos);
- test(S(""), S("pqlnkmbdjo"), 0, S::npos);
- test(S(""), S("qkamfogpnljdcshbreti"), 0, S::npos);
- test(S(""), S(""), 1, S::npos);
- test(S(""), S("bjaht"), 1, S::npos);
- test(S(""), S("hjlcmgpket"), 1, S::npos);
- test(S(""), S("htaobedqikfplcgjsmrn"), 1, S::npos);
- test(S("fodgq"), S(""), 0, S::npos);
- test(S("qanej"), S("dfkap"), 0, S::npos);
- test(S("clbao"), S("ihqrfebgad"), 0, S::npos);
- test(S("mekdn"), S("ngtjfcalbseiqrphmkdo"), 0, 0);
- test(S("srdfq"), S(""), 1, S::npos);
- test(S("oemth"), S("ikcrq"), 1, S::npos);
- test(S("cdaih"), S("dmajblfhsg"), 1, 1);
- test(S("qohtk"), S("oqftjhdmkgsblacenirp"), 1, 1);
- test(S("cshmd"), S(""), 2, S::npos);
- test(S("lhcdo"), S("oebqi"), 2, S::npos);
- test(S("qnsoh"), S("kojhpmbsfe"), 2, 2);
- test(S("pkrof"), S("acbsjqogpltdkhinfrem"), 2, 2);
- test(S("fmtsp"), S(""), 4, S::npos);
- test(S("khbpm"), S("aobjd"), 4, 2);
- test(S("pbsji"), S("pcbahntsje"), 4, 3);
- test(S("mprdj"), S("fhepcrntkoagbmldqijs"), 4, 4);
- test(S("eqmpa"), S(""), 5, S::npos);
- test(S("omigs"), S("kocgb"), 5, 3);
- test(S("onmje"), S("fbslrjiqkm"), 5, 3);
- test(S("oqmrj"), S("jeidpcmalhfnqbgtrsko"), 5, 4);
- test(S("schfa"), S(""), 6, S::npos);
- test(S("igdsc"), S("qngpd"), 6, 2);
- test(S("brqgo"), S("rodhqklgmb"), 6, 4);
- test(S("tnrph"), S("thdjgafrlbkoiqcspmne"), 6, 4);
- test(S("hcjitbfapl"), S(""), 0, S::npos);
- test(S("daiprenocl"), S("ashjd"), 0, 0);
- test(S("litpcfdghe"), S("mgojkldsqh"), 0, 0);
- test(S("aidjksrolc"), S("imqnaghkfrdtlopbjesc"), 0, 0);
- test(S("qpghtfbaji"), S(""), 1, S::npos);
- test(S("gfshlcmdjr"), S("nadkh"), 1, S::npos);
- test(S("nkodajteqp"), S("ofdrqmkebl"), 1, 1);
- test(S("gbmetiprqd"), S("bdfjqgatlksriohemnpc"), 1, 1);
- test(S("crnklpmegd"), S(""), 5, S::npos);
- test(S("jsbtafedoc"), S("prqgn"), 5, S::npos);
- test(S("qnmodrtkeb"), S("pejafmnokr"), 5, 5);
- test(S("cpebqsfmnj"), S("odnqkgijrhabfmcestlp"), 5, 5);
- test(S("lmofqdhpki"), S(""), 9, S::npos);
- test(S("hnefkqimca"), S("rtjpa"), 9, 9);
- test(S("drtasbgmfp"), S("ktsrmnqagd"), 9, 7);
- test(S("lsaijeqhtr"), S("rtdhgcisbnmoaqkfpjle"), 9, 9);
- test(S("elgofjmbrq"), S(""), 10, S::npos);
- test(S("mjqdgalkpc"), S("dplqa"), 10, 8);
- test(S("kthqnfcerm"), S("dkacjoptns"), 10, 6);
- test(S("dfsjhanorc"), S("hqfimtrgnbekpdcsjalo"), 10, 9);
- test(S("eqsgalomhb"), S(""), 11, S::npos);
- test(S("akiteljmoh"), S("lofbc"), 11, 8);
- test(S("hlbdfreqjo"), S("astoegbfpn"), 11, 9);
- test(S("taqobhlerg"), S("pdgreqomsncafklhtibj"), 11, 9);
- test(S("snafbdlghrjkpqtoceim"), S(""), 0, S::npos);
- test(S("aemtbrgcklhndjisfpoq"), S("lbtqd"), 0, S::npos);
- test(S("pnracgfkjdiholtbqsem"), S("tboimldpjh"), 0, 0);
- test(S("dicfltehbsgrmojnpkaq"), S("slcerthdaiqjfnobgkpm"), 0, 0);
- test(S("jlnkraeodhcspfgbqitm"), S(""), 1, S::npos);
- test(S("lhosrngtmfjikbqpcade"), S("aqibs"), 1, S::npos);
- test(S("rbtaqjhgkneisldpmfoc"), S("gtfblmqinc"), 1, 1);
- test(S("gpifsqlrdkbonjtmheca"), S("mkqpbtdalgniorhfescj"), 1, 1);
- test(S("hdpkobnsalmcfijregtq"), S(""), 10, S::npos);
- test(S("jtlshdgqaiprkbcoenfm"), S("pblas"), 10, 10);
- test(S("fkdrbqltsgmcoiphneaj"), S("arosdhcfme"), 10, 10);
- test(S("crsplifgtqedjohnabmk"), S("blkhjeogicatqfnpdmsr"), 10, 10);
- test(S("niptglfbosehkamrdqcj"), S(""), 19, S::npos);
- test(S("copqdhstbingamjfkler"), S("djkqc"), 19, 16);
- test(S("mrtaefilpdsgocnhqbjk"), S("lgokshjtpb"), 19, 19);
- test(S("kojatdhlcmigpbfrqnes"), S("bqjhtkfepimcnsgrlado"), 19, 19);
- test(S("eaintpchlqsbdgrkjofm"), S(""), 20, S::npos);
- test(S("gjnhidfsepkrtaqbmclo"), S("nocfa"), 20, 19);
- test(S("spocfaktqdbiejlhngmr"), S("bgtajmiedc"), 20, 18);
- test(S("rphmlekgfscndtaobiqj"), S("lsckfnqgdahejiopbtmr"), 20, 19);
- test(S("liatsqdoegkmfcnbhrpj"), S(""), 21, S::npos);
- test(S("binjagtfldkrspcomqeh"), S("gfsrt"), 21, 12);
- test(S("latkmisecnorjbfhqpdg"), S("pfsocbhjtm"), 21, 17);
- test(S("lecfratdjkhnsmqpoigb"), S("tpflmdnoicjgkberhqsa"), 21, 19);
+TEST_CONSTEXPR_CXX20 void test0() {
+ test(S(""), S(""), 0, S::npos);
+ test(S(""), S("laenf"), 0, S::npos);
+ test(S(""), S("pqlnkmbdjo"), 0, S::npos);
+ test(S(""), S("qkamfogpnljdcshbreti"), 0, S::npos);
+ test(S(""), S(""), 1, S::npos);
+ test(S(""), S("bjaht"), 1, S::npos);
+ test(S(""), S("hjlcmgpket"), 1, S::npos);
+ test(S(""), S("htaobedqikfplcgjsmrn"), 1, S::npos);
+ test(S("fodgq"), S(""), 0, S::npos);
+ test(S("qanej"), S("dfkap"), 0, S::npos);
+ test(S("clbao"), S("ihqrfebgad"), 0, S::npos);
+ test(S("mekdn"), S("ngtjfcalbseiqrphmkdo"), 0, 0);
+ test(S("srdfq"), S(""), 1, S::npos);
+ test(S("oemth"), S("ikcrq"), 1, S::npos);
+ test(S("cdaih"), S("dmajblfhsg"), 1, 1);
+ test(S("qohtk"), S("oqftjhdmkgsblacenirp"), 1, 1);
+ test(S("cshmd"), S(""), 2, S::npos);
+ test(S("lhcdo"), S("oebqi"), 2, S::npos);
+ test(S("qnsoh"), S("kojhpmbsfe"), 2, 2);
+ test(S("pkrof"), S("acbsjqogpltdkhinfrem"), 2, 2);
+ test(S("fmtsp"), S(""), 4, S::npos);
+ test(S("khbpm"), S("aobjd"), 4, 2);
+ test(S("pbsji"), S("pcbahntsje"), 4, 3);
+ test(S("mprdj"), S("fhepcrntkoagbmldqijs"), 4, 4);
+ test(S("eqmpa"), S(""), 5, S::npos);
+ test(S("omigs"), S("kocgb"), 5, 3);
+ test(S("onmje"), S("fbslrjiqkm"), 5, 3);
+ test(S("oqmrj"), S("jeidpcmalhfnqbgtrsko"), 5, 4);
+ test(S("schfa"), S(""), 6, S::npos);
+ test(S("igdsc"), S("qngpd"), 6, 2);
+ test(S("brqgo"), S("rodhqklgmb"), 6, 4);
+ test(S("tnrph"), S("thdjgafrlbkoiqcspmne"), 6, 4);
+ test(S("hcjitbfapl"), S(""), 0, S::npos);
+ test(S("daiprenocl"), S("ashjd"), 0, 0);
+ test(S("litpcfdghe"), S("mgojkldsqh"), 0, 0);
+ test(S("aidjksrolc"), S("imqnaghkfrdtlopbjesc"), 0, 0);
+ test(S("qpghtfbaji"), S(""), 1, S::npos);
+ test(S("gfshlcmdjr"), S("nadkh"), 1, S::npos);
+ test(S("nkodajteqp"), S("ofdrqmkebl"), 1, 1);
+ test(S("gbmetiprqd"), S("bdfjqgatlksriohemnpc"), 1, 1);
+ test(S("crnklpmegd"), S(""), 5, S::npos);
+ test(S("jsbtafedoc"), S("prqgn"), 5, S::npos);
+ test(S("qnmodrtkeb"), S("pejafmnokr"), 5, 5);
+ test(S("cpebqsfmnj"), S("odnqkgijrhabfmcestlp"), 5, 5);
+ test(S("lmofqdhpki"), S(""), 9, S::npos);
+ test(S("hnefkqimca"), S("rtjpa"), 9, 9);
+ test(S("drtasbgmfp"), S("ktsrmnqagd"), 9, 7);
+ test(S("lsaijeqhtr"), S("rtdhgcisbnmoaqkfpjle"), 9, 9);
+ test(S("elgofjmbrq"), S(""), 10, S::npos);
+ test(S("mjqdgalkpc"), S("dplqa"), 10, 8);
+ test(S("kthqnfcerm"), S("dkacjoptns"), 10, 6);
+ test(S("dfsjhanorc"), S("hqfimtrgnbekpdcsjalo"), 10, 9);
+ test(S("eqsgalomhb"), S(""), 11, S::npos);
+ test(S("akiteljmoh"), S("lofbc"), 11, 8);
+ test(S("hlbdfreqjo"), S("astoegbfpn"), 11, 9);
+ test(S("taqobhlerg"), S("pdgreqomsncafklhtibj"), 11, 9);
+ test(S("snafbdlghrjkpqtoceim"), S(""), 0, S::npos);
+ test(S("aemtbrgcklhndjisfpoq"), S("lbtqd"), 0, S::npos);
+ test(S("pnracgfkjdiholtbqsem"), S("tboimldpjh"), 0, 0);
+ test(S("dicfltehbsgrmojnpkaq"), S("slcerthdaiqjfnobgkpm"), 0, 0);
+ test(S("jlnkraeodhcspfgbqitm"), S(""), 1, S::npos);
+ test(S("lhosrngtmfjikbqpcade"), S("aqibs"), 1, S::npos);
+ test(S("rbtaqjhgkneisldpmfoc"), S("gtfblmqinc"), 1, 1);
+ test(S("gpifsqlrdkbonjtmheca"), S("mkqpbtdalgniorhfescj"), 1, 1);
+ test(S("hdpkobnsalmcfijregtq"), S(""), 10, S::npos);
+ test(S("jtlshdgqaiprkbcoenfm"), S("pblas"), 10, 10);
+ test(S("fkdrbqltsgmcoiphneaj"), S("arosdhcfme"), 10, 10);
+ test(S("crsplifgtqedjohnabmk"), S("blkhjeogicatqfnpdmsr"), 10, 10);
+ test(S("niptglfbosehkamrdqcj"), S(""), 19, S::npos);
+ test(S("copqdhstbingamjfkler"), S("djkqc"), 19, 16);
+ test(S("mrtaefilpdsgocnhqbjk"), S("lgokshjtpb"), 19, 19);
+ test(S("kojatdhlcmigpbfrqnes"), S("bqjhtkfepimcnsgrlado"), 19, 19);
+ test(S("eaintpchlqsbdgrkjofm"), S(""), 20, S::npos);
+ test(S("gjnhidfsepkrtaqbmclo"), S("nocfa"), 20, 19);
+ test(S("spocfaktqdbiejlhngmr"), S("bgtajmiedc"), 20, 18);
+ test(S("rphmlekgfscndtaobiqj"), S("lsckfnqgdahejiopbtmr"), 20, 19);
+ test(S("liatsqdoegkmfcnbhrpj"), S(""), 21, S::npos);
+ test(S("binjagtfldkrspcomqeh"), S("gfsrt"), 21, 12);
+ test(S("latkmisecnorjbfhqpdg"), S("pfsocbhjtm"), 21, 17);
+ test(S("lecfratdjkhnsmqpoigb"), S("tpflmdnoicjgkberhqsa"), 21, 19);
}
template <class S>
-TEST_CONSTEXPR_CXX20 void test1()
-{
- test(S(""), S(""), S::npos);
- test(S(""), S("laenf"), S::npos);
- test(S(""), S("pqlnkmbdjo"), S::npos);
- test(S(""), S("qkamfogpnljdcshbreti"), S::npos);
- test(S("nhmko"), S(""), S::npos);
- test(S("lahfb"), S("irkhs"), 2);
- test(S("gmfhd"), S("kantesmpgj"), 1);
- test(S("odaft"), S("oknlrstdpiqmjbaghcfe"), 4);
- test(S("eolhfgpjqk"), S(""), S::npos);
- test(S("nbatdlmekr"), S("bnrpe"), 9);
- test(S("jdmciepkaq"), S("jtdaefblso"), 8);
- test(S("hkbgspoflt"), S("oselktgbcapndfjihrmq"), 9);
- test(S("gprdcokbnjhlsfmtieqa"), S(""), S::npos);
- test(S("qjghlnftcaismkropdeb"), S("bjaht"), 19);
- test(S("pnalfrdtkqcmojiesbhg"), S("hjlcmgpket"), 19);
- test(S("pniotcfrhqsmgdkjbael"), S("htaobedqikfplcgjsmrn"), 19);
+TEST_CONSTEXPR_CXX20 void test1() {
+ test(S(""), S(""), S::npos);
+ test(S(""), S("laenf"), S::npos);
+ test(S(""), S("pqlnkmbdjo"), S::npos);
+ test(S(""), S("qkamfogpnljdcshbreti"), S::npos);
+ test(S("nhmko"), S(""), S::npos);
+ test(S("lahfb"), S("irkhs"), 2);
+ test(S("gmfhd"), S("kantesmpgj"), 1);
+ test(S("odaft"), S("oknlrstdpiqmjbaghcfe"), 4);
+ test(S("eolhfgpjqk"), S(""), S::npos);
+ test(S("nbatdlmekr"), S("bnrpe"), 9);
+ test(S("jdmciepkaq"), S("jtdaefblso"), 8);
+ test(S("hkbgspoflt"), S("oselktgbcapndfjihrmq"), 9);
+ test(S("gprdcokbnjhlsfmtieqa"), S(""), S::npos);
+ test(S("qjghlnftcaismkropdeb"), S("bjaht"), 19);
+ test(S("pnalfrdtkqcmojiesbhg"), S("hjlcmgpket"), 19);
+ test(S("pniotcfrhqsmgdkjbael"), S("htaobedqikfplcgjsmrn"), 19);
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -166,8 +160,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.ops/string_find.last.of/string_view_size.pass.cpp b/libcxx/test/std/strings/basic.string/string.ops/string_find.last.of/string_view_size.pass.cpp
index 24d85bc072e284b..a2b4fb1311166ba 100644
--- a/libcxx/test/std/strings/basic.string/string.ops/string_find.last.of/string_view_size.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.ops/string_find.last.of/string_view_size.pass.cpp
@@ -17,129 +17,123 @@
#include "min_allocator.h"
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 void
-test(const S& s, SV sv, typename S::size_type pos, typename S::size_type x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.find_last_of(sv, pos));
- assert(s.find_last_of(sv, pos) == x);
- if (x != S::npos)
- assert(x <= pos && x < s.size());
+TEST_CONSTEXPR_CXX20 void test(const S& s, SV sv, typename S::size_type pos, typename S::size_type x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.find_last_of(sv, pos));
+ assert(s.find_last_of(sv, pos) == x);
+ if (x != S::npos)
+ assert(x <= pos && x < s.size());
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 void
-test(const S& s, SV sv, typename S::size_type x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.find_last_of(sv));
- assert(s.find_last_of(sv) == x);
- if (x != S::npos)
- assert(x < s.size());
+TEST_CONSTEXPR_CXX20 void test(const S& s, SV sv, typename S::size_type x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.find_last_of(sv));
+ assert(s.find_last_of(sv) == x);
+ if (x != S::npos)
+ assert(x < s.size());
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 void test0()
-{
- test(S(""), SV(""), 0, S::npos);
- test(S(""), SV("laenf"), 0, S::npos);
- test(S(""), SV("pqlnkmbdjo"), 0, S::npos);
- test(S(""), SV("qkamfogpnljdcshbreti"), 0, S::npos);
- test(S(""), SV(""), 1, S::npos);
- test(S(""), SV("bjaht"), 1, S::npos);
- test(S(""), SV("hjlcmgpket"), 1, S::npos);
- test(S(""), SV("htaobedqikfplcgjsmrn"), 1, S::npos);
- test(S("fodgq"), SV(""), 0, S::npos);
- test(S("qanej"), SV("dfkap"), 0, S::npos);
- test(S("clbao"), SV("ihqrfebgad"), 0, S::npos);
- test(S("mekdn"), SV("ngtjfcalbseiqrphmkdo"), 0, 0);
- test(S("srdfq"), SV(""), 1, S::npos);
- test(S("oemth"), SV("ikcrq"), 1, S::npos);
- test(S("cdaih"), SV("dmajblfhsg"), 1, 1);
- test(S("qohtk"), SV("oqftjhdmkgsblacenirp"), 1, 1);
- test(S("cshmd"), SV(""), 2, S::npos);
- test(S("lhcdo"), SV("oebqi"), 2, S::npos);
- test(S("qnsoh"), SV("kojhpmbsfe"), 2, 2);
- test(S("pkrof"), SV("acbsjqogpltdkhinfrem"), 2, 2);
- test(S("fmtsp"), SV(""), 4, S::npos);
- test(S("khbpm"), SV("aobjd"), 4, 2);
- test(S("pbsji"), SV("pcbahntsje"), 4, 3);
- test(S("mprdj"), SV("fhepcrntkoagbmldqijs"), 4, 4);
- test(S("eqmpa"), SV(""), 5, S::npos);
- test(S("omigs"), SV("kocgb"), 5, 3);
- test(S("onmje"), SV("fbslrjiqkm"), 5, 3);
- test(S("oqmrj"), SV("jeidpcmalhfnqbgtrsko"), 5, 4);
- test(S("schfa"), SV(""), 6, S::npos);
- test(S("igdsc"), SV("qngpd"), 6, 2);
- test(S("brqgo"), SV("rodhqklgmb"), 6, 4);
- test(S("tnrph"), SV("thdjgafrlbkoiqcspmne"), 6, 4);
- test(S("hcjitbfapl"), SV(""), 0, S::npos);
- test(S("daiprenocl"), SV("ashjd"), 0, 0);
- test(S("litpcfdghe"), SV("mgojkldsqh"), 0, 0);
- test(S("aidjksrolc"), SV("imqnaghkfrdtlopbjesc"), 0, 0);
- test(S("qpghtfbaji"), SV(""), 1, S::npos);
- test(S("gfshlcmdjr"), SV("nadkh"), 1, S::npos);
- test(S("nkodajteqp"), SV("ofdrqmkebl"), 1, 1);
- test(S("gbmetiprqd"), SV("bdfjqgatlksriohemnpc"), 1, 1);
- test(S("crnklpmegd"), SV(""), 5, S::npos);
- test(S("jsbtafedoc"), SV("prqgn"), 5, S::npos);
- test(S("qnmodrtkeb"), SV("pejafmnokr"), 5, 5);
- test(S("cpebqsfmnj"), SV("odnqkgijrhabfmcestlp"), 5, 5);
- test(S("lmofqdhpki"), SV(""), 9, S::npos);
- test(S("hnefkqimca"), SV("rtjpa"), 9, 9);
- test(S("drtasbgmfp"), SV("ktsrmnqagd"), 9, 7);
- test(S("lsaijeqhtr"), SV("rtdhgcisbnmoaqkfpjle"), 9, 9);
- test(S("elgofjmbrq"), SV(""), 10, S::npos);
- test(S("mjqdgalkpc"), SV("dplqa"), 10, 8);
- test(S("kthqnfcerm"), SV("dkacjoptns"), 10, 6);
- test(S("dfsjhanorc"), SV("hqfimtrgnbekpdcsjalo"), 10, 9);
- test(S("eqsgalomhb"), SV(""), 11, S::npos);
- test(S("akiteljmoh"), SV("lofbc"), 11, 8);
- test(S("hlbdfreqjo"), SV("astoegbfpn"), 11, 9);
- test(S("taqobhlerg"), SV("pdgreqomsncafklhtibj"), 11, 9);
- test(S("snafbdlghrjkpqtoceim"), SV(""), 0, S::npos);
- test(S("aemtbrgcklhndjisfpoq"), SV("lbtqd"), 0, S::npos);
- test(S("pnracgfkjdiholtbqsem"), SV("tboimldpjh"), 0, 0);
- test(S("dicfltehbsgrmojnpkaq"), SV("slcerthdaiqjfnobgkpm"), 0, 0);
- test(S("jlnkraeodhcspfgbqitm"), SV(""), 1, S::npos);
- test(S("lhosrngtmfjikbqpcade"), SV("aqibs"), 1, S::npos);
- test(S("rbtaqjhgkneisldpmfoc"), SV("gtfblmqinc"), 1, 1);
- test(S("gpifsqlrdkbonjtmheca"), SV("mkqpbtdalgniorhfescj"), 1, 1);
- test(S("hdpkobnsalmcfijregtq"), SV(""), 10, S::npos);
- test(S("jtlshdgqaiprkbcoenfm"), SV("pblas"), 10, 10);
- test(S("fkdrbqltsgmcoiphneaj"), SV("arosdhcfme"), 10, 10);
- test(S("crsplifgtqedjohnabmk"), SV("blkhjeogicatqfnpdmsr"), 10, 10);
- test(S("niptglfbosehkamrdqcj"), SV(""), 19, S::npos);
- test(S("copqdhstbingamjfkler"), SV("djkqc"), 19, 16);
- test(S("mrtaefilpdsgocnhqbjk"), SV("lgokshjtpb"), 19, 19);
- test(S("kojatdhlcmigpbfrqnes"), SV("bqjhtkfepimcnsgrlado"), 19, 19);
- test(S("eaintpchlqsbdgrkjofm"), SV(""), 20, S::npos);
- test(S("gjnhidfsepkrtaqbmclo"), SV("nocfa"), 20, 19);
- test(S("spocfaktqdbiejlhngmr"), SV("bgtajmiedc"), 20, 18);
- test(S("rphmlekgfscndtaobiqj"), SV("lsckfnqgdahejiopbtmr"), 20, 19);
- test(S("liatsqdoegkmfcnbhrpj"), SV(""), 21, S::npos);
- test(S("binjagtfldkrspcomqeh"), SV("gfsrt"), 21, 12);
- test(S("latkmisecnorjbfhqpdg"), SV("pfsocbhjtm"), 21, 17);
- test(S("lecfratdjkhnsmqpoigb"), SV("tpflmdnoicjgkberhqsa"), 21, 19);
+TEST_CONSTEXPR_CXX20 void test0() {
+ test(S(""), SV(""), 0, S::npos);
+ test(S(""), SV("laenf"), 0, S::npos);
+ test(S(""), SV("pqlnkmbdjo"), 0, S::npos);
+ test(S(""), SV("qkamfogpnljdcshbreti"), 0, S::npos);
+ test(S(""), SV(""), 1, S::npos);
+ test(S(""), SV("bjaht"), 1, S::npos);
+ test(S(""), SV("hjlcmgpket"), 1, S::npos);
+ test(S(""), SV("htaobedqikfplcgjsmrn"), 1, S::npos);
+ test(S("fodgq"), SV(""), 0, S::npos);
+ test(S("qanej"), SV("dfkap"), 0, S::npos);
+ test(S("clbao"), SV("ihqrfebgad"), 0, S::npos);
+ test(S("mekdn"), SV("ngtjfcalbseiqrphmkdo"), 0, 0);
+ test(S("srdfq"), SV(""), 1, S::npos);
+ test(S("oemth"), SV("ikcrq"), 1, S::npos);
+ test(S("cdaih"), SV("dmajblfhsg"), 1, 1);
+ test(S("qohtk"), SV("oqftjhdmkgsblacenirp"), 1, 1);
+ test(S("cshmd"), SV(""), 2, S::npos);
+ test(S("lhcdo"), SV("oebqi"), 2, S::npos);
+ test(S("qnsoh"), SV("kojhpmbsfe"), 2, 2);
+ test(S("pkrof"), SV("acbsjqogpltdkhinfrem"), 2, 2);
+ test(S("fmtsp"), SV(""), 4, S::npos);
+ test(S("khbpm"), SV("aobjd"), 4, 2);
+ test(S("pbsji"), SV("pcbahntsje"), 4, 3);
+ test(S("mprdj"), SV("fhepcrntkoagbmldqijs"), 4, 4);
+ test(S("eqmpa"), SV(""), 5, S::npos);
+ test(S("omigs"), SV("kocgb"), 5, 3);
+ test(S("onmje"), SV("fbslrjiqkm"), 5, 3);
+ test(S("oqmrj"), SV("jeidpcmalhfnqbgtrsko"), 5, 4);
+ test(S("schfa"), SV(""), 6, S::npos);
+ test(S("igdsc"), SV("qngpd"), 6, 2);
+ test(S("brqgo"), SV("rodhqklgmb"), 6, 4);
+ test(S("tnrph"), SV("thdjgafrlbkoiqcspmne"), 6, 4);
+ test(S("hcjitbfapl"), SV(""), 0, S::npos);
+ test(S("daiprenocl"), SV("ashjd"), 0, 0);
+ test(S("litpcfdghe"), SV("mgojkldsqh"), 0, 0);
+ test(S("aidjksrolc"), SV("imqnaghkfrdtlopbjesc"), 0, 0);
+ test(S("qpghtfbaji"), SV(""), 1, S::npos);
+ test(S("gfshlcmdjr"), SV("nadkh"), 1, S::npos);
+ test(S("nkodajteqp"), SV("ofdrqmkebl"), 1, 1);
+ test(S("gbmetiprqd"), SV("bdfjqgatlksriohemnpc"), 1, 1);
+ test(S("crnklpmegd"), SV(""), 5, S::npos);
+ test(S("jsbtafedoc"), SV("prqgn"), 5, S::npos);
+ test(S("qnmodrtkeb"), SV("pejafmnokr"), 5, 5);
+ test(S("cpebqsfmnj"), SV("odnqkgijrhabfmcestlp"), 5, 5);
+ test(S("lmofqdhpki"), SV(""), 9, S::npos);
+ test(S("hnefkqimca"), SV("rtjpa"), 9, 9);
+ test(S("drtasbgmfp"), SV("ktsrmnqagd"), 9, 7);
+ test(S("lsaijeqhtr"), SV("rtdhgcisbnmoaqkfpjle"), 9, 9);
+ test(S("elgofjmbrq"), SV(""), 10, S::npos);
+ test(S("mjqdgalkpc"), SV("dplqa"), 10, 8);
+ test(S("kthqnfcerm"), SV("dkacjoptns"), 10, 6);
+ test(S("dfsjhanorc"), SV("hqfimtrgnbekpdcsjalo"), 10, 9);
+ test(S("eqsgalomhb"), SV(""), 11, S::npos);
+ test(S("akiteljmoh"), SV("lofbc"), 11, 8);
+ test(S("hlbdfreqjo"), SV("astoegbfpn"), 11, 9);
+ test(S("taqobhlerg"), SV("pdgreqomsncafklhtibj"), 11, 9);
+ test(S("snafbdlghrjkpqtoceim"), SV(""), 0, S::npos);
+ test(S("aemtbrgcklhndjisfpoq"), SV("lbtqd"), 0, S::npos);
+ test(S("pnracgfkjdiholtbqsem"), SV("tboimldpjh"), 0, 0);
+ test(S("dicfltehbsgrmojnpkaq"), SV("slcerthdaiqjfnobgkpm"), 0, 0);
+ test(S("jlnkraeodhcspfgbqitm"), SV(""), 1, S::npos);
+ test(S("lhosrngtmfjikbqpcade"), SV("aqibs"), 1, S::npos);
+ test(S("rbtaqjhgkneisldpmfoc"), SV("gtfblmqinc"), 1, 1);
+ test(S("gpifsqlrdkbonjtmheca"), SV("mkqpbtdalgniorhfescj"), 1, 1);
+ test(S("hdpkobnsalmcfijregtq"), SV(""), 10, S::npos);
+ test(S("jtlshdgqaiprkbcoenfm"), SV("pblas"), 10, 10);
+ test(S("fkdrbqltsgmcoiphneaj"), SV("arosdhcfme"), 10, 10);
+ test(S("crsplifgtqedjohnabmk"), SV("blkhjeogicatqfnpdmsr"), 10, 10);
+ test(S("niptglfbosehkamrdqcj"), SV(""), 19, S::npos);
+ test(S("copqdhstbingamjfkler"), SV("djkqc"), 19, 16);
+ test(S("mrtaefilpdsgocnhqbjk"), SV("lgokshjtpb"), 19, 19);
+ test(S("kojatdhlcmigpbfrqnes"), SV("bqjhtkfepimcnsgrlado"), 19, 19);
+ test(S("eaintpchlqsbdgrkjofm"), SV(""), 20, S::npos);
+ test(S("gjnhidfsepkrtaqbmclo"), SV("nocfa"), 20, 19);
+ test(S("spocfaktqdbiejlhngmr"), SV("bgtajmiedc"), 20, 18);
+ test(S("rphmlekgfscndtaobiqj"), SV("lsckfnqgdahejiopbtmr"), 20, 19);
+ test(S("liatsqdoegkmfcnbhrpj"), SV(""), 21, S::npos);
+ test(S("binjagtfldkrspcomqeh"), SV("gfsrt"), 21, 12);
+ test(S("latkmisecnorjbfhqpdg"), SV("pfsocbhjtm"), 21, 17);
+ test(S("lecfratdjkhnsmqpoigb"), SV("tpflmdnoicjgkberhqsa"), 21, 19);
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 void test1()
-{
- test(S(""), SV(""), S::npos);
- test(S(""), SV("laenf"), S::npos);
- test(S(""), SV("pqlnkmbdjo"), S::npos);
- test(S(""), SV("qkamfogpnljdcshbreti"), S::npos);
- test(S("nhmko"), SV(""), S::npos);
- test(S("lahfb"), SV("irkhs"), 2);
- test(S("gmfhd"), SV("kantesmpgj"), 1);
- test(S("odaft"), SV("oknlrstdpiqmjbaghcfe"), 4);
- test(S("eolhfgpjqk"), SV(""), S::npos);
- test(S("nbatdlmekr"), SV("bnrpe"), 9);
- test(S("jdmciepkaq"), SV("jtdaefblso"), 8);
- test(S("hkbgspoflt"), SV("oselktgbcapndfjihrmq"), 9);
- test(S("gprdcokbnjhlsfmtieqa"), SV(""), S::npos);
- test(S("qjghlnftcaismkropdeb"), SV("bjaht"), 19);
- test(S("pnalfrdtkqcmojiesbhg"), SV("hjlcmgpket"), 19);
- test(S("pniotcfrhqsmgdkjbael"), SV("htaobedqikfplcgjsmrn"), 19);
+TEST_CONSTEXPR_CXX20 void test1() {
+ test(S(""), SV(""), S::npos);
+ test(S(""), SV("laenf"), S::npos);
+ test(S(""), SV("pqlnkmbdjo"), S::npos);
+ test(S(""), SV("qkamfogpnljdcshbreti"), S::npos);
+ test(S("nhmko"), SV(""), S::npos);
+ test(S("lahfb"), SV("irkhs"), 2);
+ test(S("gmfhd"), SV("kantesmpgj"), 1);
+ test(S("odaft"), SV("oknlrstdpiqmjbaghcfe"), 4);
+ test(S("eolhfgpjqk"), SV(""), S::npos);
+ test(S("nbatdlmekr"), SV("bnrpe"), 9);
+ test(S("jdmciepkaq"), SV("jtdaefblso"), 8);
+ test(S("hkbgspoflt"), SV("oselktgbcapndfjihrmq"), 9);
+ test(S("gprdcokbnjhlsfmtieqa"), SV(""), S::npos);
+ test(S("qjghlnftcaismkropdeb"), SV("bjaht"), 19);
+ test(S("pnalfrdtkqcmojiesbhg"), SV("hjlcmgpket"), 19);
+ test(S("pniotcfrhqsmgdkjbael"), SV("htaobedqikfplcgjsmrn"), 19);
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -161,8 +155,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.ops/string_find/char_size.pass.cpp b/libcxx/test/std/strings/basic.string/string.ops/string_find/char_size.pass.cpp
index d7a0a9a8f95112d..8ff6406257c8c86 100644
--- a/libcxx/test/std/strings/basic.string/string.ops/string_find/char_size.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.ops/string_find/char_size.pass.cpp
@@ -18,23 +18,19 @@
template <class S>
TEST_CONSTEXPR_CXX20 void
-test(const S& s, typename S::value_type c, typename S::size_type pos,
- typename S::size_type x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.find(c, pos));
- assert(s.find(c, pos) == x);
- if (x != S::npos)
- assert(pos <= x && x + 1 <= s.size());
+test(const S& s, typename S::value_type c, typename S::size_type pos, typename S::size_type x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.find(c, pos));
+ assert(s.find(c, pos) == x);
+ if (x != S::npos)
+ assert(pos <= x && x + 1 <= s.size());
}
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(const S& s, typename S::value_type c, typename S::size_type x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.find(c));
- assert(s.find(c) == x);
- if (x != S::npos)
- assert(0 <= x && x + 1 <= s.size());
+TEST_CONSTEXPR_CXX20 void test(const S& s, typename S::value_type c, typename S::size_type x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.find(c));
+ assert(s.find(c) == x);
+ if (x != S::npos)
+ assert(0 <= x && x + 1 <= s.size());
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -100,8 +96,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.ops/string_find/pointer_size.pass.cpp b/libcxx/test/std/strings/basic.string/string.ops/string_find/pointer_size.pass.cpp
index ecfb54a8fa6d092..54e76831ed9e44d 100644
--- a/libcxx/test/std/strings/basic.string/string.ops/string_find/pointer_size.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.ops/string_find/pointer_size.pass.cpp
@@ -18,135 +18,127 @@
template <class S>
TEST_CONSTEXPR_CXX20 void
-test(const S& s, const typename S::value_type* str, typename S::size_type pos,
- typename S::size_type x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.find(str, pos));
- assert(s.find(str, pos) == x);
- if (x != S::npos)
- {
- typename S::size_type n = S::traits_type::length(str);
- assert(pos <= x && x + n <= s.size());
- }
+test(const S& s, const typename S::value_type* str, typename S::size_type pos, typename S::size_type x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.find(str, pos));
+ assert(s.find(str, pos) == x);
+ if (x != S::npos) {
+ typename S::size_type n = S::traits_type::length(str);
+ assert(pos <= x && x + n <= s.size());
+ }
}
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(const S& s, const typename S::value_type* str, typename S::size_type x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.find(str));
- assert(s.find(str) == x);
- if (x != S::npos)
- {
- typename S::size_type n = S::traits_type::length(str);
- assert(0 <= x && x + n <= s.size());
- }
+TEST_CONSTEXPR_CXX20 void test(const S& s, const typename S::value_type* str, typename S::size_type x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.find(str));
+ assert(s.find(str) == x);
+ if (x != S::npos) {
+ typename S::size_type n = S::traits_type::length(str);
+ assert(0 <= x && x + n <= s.size());
+ }
}
template <class S>
-TEST_CONSTEXPR_CXX20 void test0()
-{
- test(S(""), "", 0, 0);
- test(S(""), "abcde", 0, S::npos);
- test(S(""), "abcdeabcde", 0, S::npos);
- test(S(""), "abcdeabcdeabcdeabcde", 0, S::npos);
- test(S(""), "", 1, S::npos);
- test(S(""), "abcde", 1, S::npos);
- test(S(""), "abcdeabcde", 1, S::npos);
- test(S(""), "abcdeabcdeabcdeabcde", 1, S::npos);
- test(S("abcde"), "", 0, 0);
- test(S("abcde"), "abcde", 0, 0);
- test(S("abcde"), "abcdeabcde", 0, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 0, S::npos);
- test(S("abcde"), "", 1, 1);
- test(S("abcde"), "abcde", 1, S::npos);
- test(S("abcde"), "abcdeabcde", 1, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 1, S::npos);
- test(S("abcde"), "", 2, 2);
- test(S("abcde"), "abcde", 2, S::npos);
- test(S("abcde"), "abcdeabcde", 2, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 2, S::npos);
- test(S("abcde"), "", 4, 4);
- test(S("abcde"), "abcde", 4, S::npos);
- test(S("abcde"), "abcdeabcde", 4, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 4, S::npos);
- test(S("abcde"), "", 5, 5);
- test(S("abcde"), "abcde", 5, S::npos);
- test(S("abcde"), "abcdeabcde", 5, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 5, S::npos);
- test(S("abcde"), "", 6, S::npos);
- test(S("abcde"), "abcde", 6, S::npos);
- test(S("abcde"), "abcdeabcde", 6, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 6, S::npos);
- test(S("abcdeabcde"), "", 0, 0);
- test(S("abcdeabcde"), "abcde", 0, 0);
- test(S("abcdeabcde"), "abcdeabcde", 0, 0);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 0, S::npos);
- test(S("abcdeabcde"), "", 1, 1);
- test(S("abcdeabcde"), "abcde", 1, 5);
- test(S("abcdeabcde"), "abcdeabcde", 1, S::npos);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 1, S::npos);
- test(S("abcdeabcde"), "", 5, 5);
- test(S("abcdeabcde"), "abcde", 5, 5);
- test(S("abcdeabcde"), "abcdeabcde", 5, S::npos);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 5, S::npos);
- test(S("abcdeabcde"), "", 9, 9);
- test(S("abcdeabcde"), "abcde", 9, S::npos);
- test(S("abcdeabcde"), "abcdeabcde", 9, S::npos);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 9, S::npos);
- test(S("abcdeabcde"), "", 10, 10);
- test(S("abcdeabcde"), "abcde", 10, S::npos);
- test(S("abcdeabcde"), "abcdeabcde", 10, S::npos);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 10, S::npos);
- test(S("abcdeabcde"), "", 11, S::npos);
- test(S("abcdeabcde"), "abcde", 11, S::npos);
- test(S("abcdeabcde"), "abcdeabcde", 11, S::npos);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 11, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "", 0, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 0, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 0, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 0, 0);
- test(S("abcdeabcdeabcdeabcde"), "", 1, 1);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 1, 5);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 1, 5);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 1, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "", 10, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 10, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 10, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 10, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "", 19, 19);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 19, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 19, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 19, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "", 20, 20);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 20, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 20, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 20, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "", 21, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 21, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 21, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 21, S::npos);
+TEST_CONSTEXPR_CXX20 void test0() {
+ test(S(""), "", 0, 0);
+ test(S(""), "abcde", 0, S::npos);
+ test(S(""), "abcdeabcde", 0, S::npos);
+ test(S(""), "abcdeabcdeabcdeabcde", 0, S::npos);
+ test(S(""), "", 1, S::npos);
+ test(S(""), "abcde", 1, S::npos);
+ test(S(""), "abcdeabcde", 1, S::npos);
+ test(S(""), "abcdeabcdeabcdeabcde", 1, S::npos);
+ test(S("abcde"), "", 0, 0);
+ test(S("abcde"), "abcde", 0, 0);
+ test(S("abcde"), "abcdeabcde", 0, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 0, S::npos);
+ test(S("abcde"), "", 1, 1);
+ test(S("abcde"), "abcde", 1, S::npos);
+ test(S("abcde"), "abcdeabcde", 1, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 1, S::npos);
+ test(S("abcde"), "", 2, 2);
+ test(S("abcde"), "abcde", 2, S::npos);
+ test(S("abcde"), "abcdeabcde", 2, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 2, S::npos);
+ test(S("abcde"), "", 4, 4);
+ test(S("abcde"), "abcde", 4, S::npos);
+ test(S("abcde"), "abcdeabcde", 4, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 4, S::npos);
+ test(S("abcde"), "", 5, 5);
+ test(S("abcde"), "abcde", 5, S::npos);
+ test(S("abcde"), "abcdeabcde", 5, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 5, S::npos);
+ test(S("abcde"), "", 6, S::npos);
+ test(S("abcde"), "abcde", 6, S::npos);
+ test(S("abcde"), "abcdeabcde", 6, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 6, S::npos);
+ test(S("abcdeabcde"), "", 0, 0);
+ test(S("abcdeabcde"), "abcde", 0, 0);
+ test(S("abcdeabcde"), "abcdeabcde", 0, 0);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 0, S::npos);
+ test(S("abcdeabcde"), "", 1, 1);
+ test(S("abcdeabcde"), "abcde", 1, 5);
+ test(S("abcdeabcde"), "abcdeabcde", 1, S::npos);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 1, S::npos);
+ test(S("abcdeabcde"), "", 5, 5);
+ test(S("abcdeabcde"), "abcde", 5, 5);
+ test(S("abcdeabcde"), "abcdeabcde", 5, S::npos);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 5, S::npos);
+ test(S("abcdeabcde"), "", 9, 9);
+ test(S("abcdeabcde"), "abcde", 9, S::npos);
+ test(S("abcdeabcde"), "abcdeabcde", 9, S::npos);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 9, S::npos);
+ test(S("abcdeabcde"), "", 10, 10);
+ test(S("abcdeabcde"), "abcde", 10, S::npos);
+ test(S("abcdeabcde"), "abcdeabcde", 10, S::npos);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 10, S::npos);
+ test(S("abcdeabcde"), "", 11, S::npos);
+ test(S("abcdeabcde"), "abcde", 11, S::npos);
+ test(S("abcdeabcde"), "abcdeabcde", 11, S::npos);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 11, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "", 0, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 0, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 0, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 0, 0);
+ test(S("abcdeabcdeabcdeabcde"), "", 1, 1);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 1, 5);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 1, 5);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 1, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "", 10, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 10, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 10, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 10, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "", 19, 19);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 19, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 19, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 19, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "", 20, 20);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 20, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 20, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 20, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "", 21, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 21, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 21, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 21, S::npos);
}
template <class S>
-TEST_CONSTEXPR_CXX20 void test1()
-{
- test(S(""), "", 0);
- test(S(""), "abcde", S::npos);
- test(S(""), "abcdeabcde", S::npos);
- test(S(""), "abcdeabcdeabcdeabcde", S::npos);
- test(S("abcde"), "", 0);
- test(S("abcde"), "abcde", 0);
- test(S("abcde"), "abcdeabcde", S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", S::npos);
- test(S("abcdeabcde"), "", 0);
- test(S("abcdeabcde"), "abcde", 0);
- test(S("abcdeabcde"), "abcdeabcde", 0);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", S::npos);
- test(S("abcdeabcdeabcdeabcde"), "", 0);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 0);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 0);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 0);
+TEST_CONSTEXPR_CXX20 void test1() {
+ test(S(""), "", 0);
+ test(S(""), "abcde", S::npos);
+ test(S(""), "abcdeabcde", S::npos);
+ test(S(""), "abcdeabcdeabcdeabcde", S::npos);
+ test(S("abcde"), "", 0);
+ test(S("abcde"), "abcde", 0);
+ test(S("abcde"), "abcdeabcde", S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", S::npos);
+ test(S("abcdeabcde"), "", 0);
+ test(S("abcdeabcde"), "abcde", 0);
+ test(S("abcdeabcde"), "abcdeabcde", 0);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "", 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 0);
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -166,8 +158,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.ops/string_find/pointer_size_size.pass.cpp b/libcxx/test/std/strings/basic.string/string.ops/string_find/pointer_size_size.pass.cpp
index 98b09ff6d895d8e..47179c17756c652 100644
--- a/libcxx/test/std/strings/basic.string/string.ops/string_find/pointer_size_size.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.ops/string_find/pointer_size_size.pass.cpp
@@ -18,353 +18,351 @@
template <class S>
TEST_CONSTEXPR_CXX20 void
-test(const S& s, const typename S::value_type* str, typename S::size_type pos,
- typename S::size_type n, typename S::size_type x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.find(str, pos, n));
- assert(s.find(str, pos, n) == x);
- if (x != S::npos)
- assert(pos <= x && x + n <= s.size());
+test(const S& s,
+ const typename S::value_type* str,
+ typename S::size_type pos,
+ typename S::size_type n,
+ typename S::size_type x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.find(str, pos, n));
+ assert(s.find(str, pos, n) == x);
+ if (x != S::npos)
+ assert(pos <= x && x + n <= s.size());
}
template <class S>
-TEST_CONSTEXPR_CXX20 void test0()
-{
- test(S(""), "", 0, 0, 0);
- test(S(""), "abcde", 0, 0, 0);
- test(S(""), "abcde", 0, 1, S::npos);
- test(S(""), "abcde", 0, 2, S::npos);
- test(S(""), "abcde", 0, 4, S::npos);
- test(S(""), "abcde", 0, 5, S::npos);
- test(S(""), "abcdeabcde", 0, 0, 0);
- test(S(""), "abcdeabcde", 0, 1, S::npos);
- test(S(""), "abcdeabcde", 0, 5, S::npos);
- test(S(""), "abcdeabcde", 0, 9, S::npos);
- test(S(""), "abcdeabcde", 0, 10, S::npos);
- test(S(""), "abcdeabcdeabcdeabcde", 0, 0, 0);
- test(S(""), "abcdeabcdeabcdeabcde", 0, 1, S::npos);
- test(S(""), "abcdeabcdeabcdeabcde", 0, 10, S::npos);
- test(S(""), "abcdeabcdeabcdeabcde", 0, 19, S::npos);
- test(S(""), "abcdeabcdeabcdeabcde", 0, 20, S::npos);
- test(S(""), "", 1, 0, S::npos);
- test(S(""), "abcde", 1, 0, S::npos);
- test(S(""), "abcde", 1, 1, S::npos);
- test(S(""), "abcde", 1, 2, S::npos);
- test(S(""), "abcde", 1, 4, S::npos);
- test(S(""), "abcde", 1, 5, S::npos);
- test(S(""), "abcdeabcde", 1, 0, S::npos);
- test(S(""), "abcdeabcde", 1, 1, S::npos);
- test(S(""), "abcdeabcde", 1, 5, S::npos);
- test(S(""), "abcdeabcde", 1, 9, S::npos);
- test(S(""), "abcdeabcde", 1, 10, S::npos);
- test(S(""), "abcdeabcdeabcdeabcde", 1, 0, S::npos);
- test(S(""), "abcdeabcdeabcdeabcde", 1, 1, S::npos);
- test(S(""), "abcdeabcdeabcdeabcde", 1, 10, S::npos);
- test(S(""), "abcdeabcdeabcdeabcde", 1, 19, S::npos);
- test(S(""), "abcdeabcdeabcdeabcde", 1, 20, S::npos);
- test(S("abcde"), "", 0, 0, 0);
- test(S("abcde"), "abcde", 0, 0, 0);
- test(S("abcde"), "abcde", 0, 1, 0);
- test(S("abcde"), "abcde", 0, 2, 0);
- test(S("abcde"), "abcde", 0, 4, 0);
- test(S("abcde"), "abcde", 0, 5, 0);
- test(S("abcde"), "abcdeabcde", 0, 0, 0);
- test(S("abcde"), "abcdeabcde", 0, 1, 0);
- test(S("abcde"), "abcdeabcde", 0, 5, 0);
- test(S("abcde"), "abcdeabcde", 0, 9, S::npos);
- test(S("abcde"), "abcdeabcde", 0, 10, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 0, 0, 0);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 0, 1, 0);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 0, 10, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 0, 19, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 0, 20, S::npos);
- test(S("abcde"), "", 1, 0, 1);
- test(S("abcde"), "abcde", 1, 0, 1);
- test(S("abcde"), "abcde", 1, 1, S::npos);
- test(S("abcde"), "abcde", 1, 2, S::npos);
- test(S("abcde"), "abcde", 1, 4, S::npos);
- test(S("abcde"), "abcde", 1, 5, S::npos);
- test(S("abcde"), "abcdeabcde", 1, 0, 1);
- test(S("abcde"), "abcdeabcde", 1, 1, S::npos);
- test(S("abcde"), "abcdeabcde", 1, 5, S::npos);
- test(S("abcde"), "abcdeabcde", 1, 9, S::npos);
- test(S("abcde"), "abcdeabcde", 1, 10, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 1, 0, 1);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 1, 1, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 1, 10, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 1, 19, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 1, 20, S::npos);
- test(S("abcde"), "", 2, 0, 2);
- test(S("abcde"), "abcde", 2, 0, 2);
- test(S("abcde"), "abcde", 2, 1, S::npos);
- test(S("abcde"), "abcde", 2, 2, S::npos);
- test(S("abcde"), "abcde", 2, 4, S::npos);
- test(S("abcde"), "abcde", 2, 5, S::npos);
- test(S("abcde"), "abcdeabcde", 2, 0, 2);
- test(S("abcde"), "abcdeabcde", 2, 1, S::npos);
- test(S("abcde"), "abcdeabcde", 2, 5, S::npos);
- test(S("abcde"), "abcdeabcde", 2, 9, S::npos);
- test(S("abcde"), "abcdeabcde", 2, 10, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 2, 0, 2);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 2, 1, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 2, 10, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 2, 19, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 2, 20, S::npos);
- test(S("abcde"), "", 4, 0, 4);
- test(S("abcde"), "abcde", 4, 0, 4);
- test(S("abcde"), "abcde", 4, 1, S::npos);
- test(S("abcde"), "abcde", 4, 2, S::npos);
- test(S("abcde"), "abcde", 4, 4, S::npos);
- test(S("abcde"), "abcde", 4, 5, S::npos);
- test(S("abcde"), "abcdeabcde", 4, 0, 4);
- test(S("abcde"), "abcdeabcde", 4, 1, S::npos);
- test(S("abcde"), "abcdeabcde", 4, 5, S::npos);
- test(S("abcde"), "abcdeabcde", 4, 9, S::npos);
- test(S("abcde"), "abcdeabcde", 4, 10, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 4, 0, 4);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 4, 1, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 4, 10, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 4, 19, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 4, 20, S::npos);
- test(S("abcde"), "", 5, 0, 5);
- test(S("abcde"), "abcde", 5, 0, 5);
- test(S("abcde"), "abcde", 5, 1, S::npos);
- test(S("abcde"), "abcde", 5, 2, S::npos);
+TEST_CONSTEXPR_CXX20 void test0() {
+ test(S(""), "", 0, 0, 0);
+ test(S(""), "abcde", 0, 0, 0);
+ test(S(""), "abcde", 0, 1, S::npos);
+ test(S(""), "abcde", 0, 2, S::npos);
+ test(S(""), "abcde", 0, 4, S::npos);
+ test(S(""), "abcde", 0, 5, S::npos);
+ test(S(""), "abcdeabcde", 0, 0, 0);
+ test(S(""), "abcdeabcde", 0, 1, S::npos);
+ test(S(""), "abcdeabcde", 0, 5, S::npos);
+ test(S(""), "abcdeabcde", 0, 9, S::npos);
+ test(S(""), "abcdeabcde", 0, 10, S::npos);
+ test(S(""), "abcdeabcdeabcdeabcde", 0, 0, 0);
+ test(S(""), "abcdeabcdeabcdeabcde", 0, 1, S::npos);
+ test(S(""), "abcdeabcdeabcdeabcde", 0, 10, S::npos);
+ test(S(""), "abcdeabcdeabcdeabcde", 0, 19, S::npos);
+ test(S(""), "abcdeabcdeabcdeabcde", 0, 20, S::npos);
+ test(S(""), "", 1, 0, S::npos);
+ test(S(""), "abcde", 1, 0, S::npos);
+ test(S(""), "abcde", 1, 1, S::npos);
+ test(S(""), "abcde", 1, 2, S::npos);
+ test(S(""), "abcde", 1, 4, S::npos);
+ test(S(""), "abcde", 1, 5, S::npos);
+ test(S(""), "abcdeabcde", 1, 0, S::npos);
+ test(S(""), "abcdeabcde", 1, 1, S::npos);
+ test(S(""), "abcdeabcde", 1, 5, S::npos);
+ test(S(""), "abcdeabcde", 1, 9, S::npos);
+ test(S(""), "abcdeabcde", 1, 10, S::npos);
+ test(S(""), "abcdeabcdeabcdeabcde", 1, 0, S::npos);
+ test(S(""), "abcdeabcdeabcdeabcde", 1, 1, S::npos);
+ test(S(""), "abcdeabcdeabcdeabcde", 1, 10, S::npos);
+ test(S(""), "abcdeabcdeabcdeabcde", 1, 19, S::npos);
+ test(S(""), "abcdeabcdeabcdeabcde", 1, 20, S::npos);
+ test(S("abcde"), "", 0, 0, 0);
+ test(S("abcde"), "abcde", 0, 0, 0);
+ test(S("abcde"), "abcde", 0, 1, 0);
+ test(S("abcde"), "abcde", 0, 2, 0);
+ test(S("abcde"), "abcde", 0, 4, 0);
+ test(S("abcde"), "abcde", 0, 5, 0);
+ test(S("abcde"), "abcdeabcde", 0, 0, 0);
+ test(S("abcde"), "abcdeabcde", 0, 1, 0);
+ test(S("abcde"), "abcdeabcde", 0, 5, 0);
+ test(S("abcde"), "abcdeabcde", 0, 9, S::npos);
+ test(S("abcde"), "abcdeabcde", 0, 10, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 0, 0, 0);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 0, 1, 0);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 0, 10, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 0, 19, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 0, 20, S::npos);
+ test(S("abcde"), "", 1, 0, 1);
+ test(S("abcde"), "abcde", 1, 0, 1);
+ test(S("abcde"), "abcde", 1, 1, S::npos);
+ test(S("abcde"), "abcde", 1, 2, S::npos);
+ test(S("abcde"), "abcde", 1, 4, S::npos);
+ test(S("abcde"), "abcde", 1, 5, S::npos);
+ test(S("abcde"), "abcdeabcde", 1, 0, 1);
+ test(S("abcde"), "abcdeabcde", 1, 1, S::npos);
+ test(S("abcde"), "abcdeabcde", 1, 5, S::npos);
+ test(S("abcde"), "abcdeabcde", 1, 9, S::npos);
+ test(S("abcde"), "abcdeabcde", 1, 10, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 1, 0, 1);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 1, 1, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 1, 10, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 1, 19, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 1, 20, S::npos);
+ test(S("abcde"), "", 2, 0, 2);
+ test(S("abcde"), "abcde", 2, 0, 2);
+ test(S("abcde"), "abcde", 2, 1, S::npos);
+ test(S("abcde"), "abcde", 2, 2, S::npos);
+ test(S("abcde"), "abcde", 2, 4, S::npos);
+ test(S("abcde"), "abcde", 2, 5, S::npos);
+ test(S("abcde"), "abcdeabcde", 2, 0, 2);
+ test(S("abcde"), "abcdeabcde", 2, 1, S::npos);
+ test(S("abcde"), "abcdeabcde", 2, 5, S::npos);
+ test(S("abcde"), "abcdeabcde", 2, 9, S::npos);
+ test(S("abcde"), "abcdeabcde", 2, 10, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 2, 0, 2);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 2, 1, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 2, 10, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 2, 19, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 2, 20, S::npos);
+ test(S("abcde"), "", 4, 0, 4);
+ test(S("abcde"), "abcde", 4, 0, 4);
+ test(S("abcde"), "abcde", 4, 1, S::npos);
+ test(S("abcde"), "abcde", 4, 2, S::npos);
+ test(S("abcde"), "abcde", 4, 4, S::npos);
+ test(S("abcde"), "abcde", 4, 5, S::npos);
+ test(S("abcde"), "abcdeabcde", 4, 0, 4);
+ test(S("abcde"), "abcdeabcde", 4, 1, S::npos);
+ test(S("abcde"), "abcdeabcde", 4, 5, S::npos);
+ test(S("abcde"), "abcdeabcde", 4, 9, S::npos);
+ test(S("abcde"), "abcdeabcde", 4, 10, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 4, 0, 4);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 4, 1, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 4, 10, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 4, 19, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 4, 20, S::npos);
+ test(S("abcde"), "", 5, 0, 5);
+ test(S("abcde"), "abcde", 5, 0, 5);
+ test(S("abcde"), "abcde", 5, 1, S::npos);
+ test(S("abcde"), "abcde", 5, 2, S::npos);
}
template <class S>
-TEST_CONSTEXPR_CXX20 void test1()
-{
- test(S("abcde"), "abcde", 5, 4, S::npos);
- test(S("abcde"), "abcde", 5, 5, S::npos);
- test(S("abcde"), "abcdeabcde", 5, 0, 5);
- test(S("abcde"), "abcdeabcde", 5, 1, S::npos);
- test(S("abcde"), "abcdeabcde", 5, 5, S::npos);
- test(S("abcde"), "abcdeabcde", 5, 9, S::npos);
- test(S("abcde"), "abcdeabcde", 5, 10, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 5, 0, 5);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 5, 1, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 5, 10, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 5, 19, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 5, 20, S::npos);
- test(S("abcde"), "", 6, 0, S::npos);
- test(S("abcde"), "abcde", 6, 0, S::npos);
- test(S("abcde"), "abcde", 6, 1, S::npos);
- test(S("abcde"), "abcde", 6, 2, S::npos);
- test(S("abcde"), "abcde", 6, 4, S::npos);
- test(S("abcde"), "abcde", 6, 5, S::npos);
- test(S("abcde"), "abcdeabcde", 6, 0, S::npos);
- test(S("abcde"), "abcdeabcde", 6, 1, S::npos);
- test(S("abcde"), "abcdeabcde", 6, 5, S::npos);
- test(S("abcde"), "abcdeabcde", 6, 9, S::npos);
- test(S("abcde"), "abcdeabcde", 6, 10, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 6, 0, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 6, 1, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 6, 10, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 6, 19, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 6, 20, S::npos);
- test(S("abcdeabcde"), "", 0, 0, 0);
- test(S("abcdeabcde"), "abcde", 0, 0, 0);
- test(S("abcdeabcde"), "abcde", 0, 1, 0);
- test(S("abcdeabcde"), "abcde", 0, 2, 0);
- test(S("abcdeabcde"), "abcde", 0, 4, 0);
- test(S("abcdeabcde"), "abcde", 0, 5, 0);
- test(S("abcdeabcde"), "abcdeabcde", 0, 0, 0);
- test(S("abcdeabcde"), "abcdeabcde", 0, 1, 0);
- test(S("abcdeabcde"), "abcdeabcde", 0, 5, 0);
- test(S("abcdeabcde"), "abcdeabcde", 0, 9, 0);
- test(S("abcdeabcde"), "abcdeabcde", 0, 10, 0);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 0, 0, 0);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 0, 1, 0);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 0, 10, 0);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 0, 19, S::npos);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 0, 20, S::npos);
- test(S("abcdeabcde"), "", 1, 0, 1);
- test(S("abcdeabcde"), "abcde", 1, 0, 1);
- test(S("abcdeabcde"), "abcde", 1, 1, 5);
- test(S("abcdeabcde"), "abcde", 1, 2, 5);
- test(S("abcdeabcde"), "abcde", 1, 4, 5);
- test(S("abcdeabcde"), "abcde", 1, 5, 5);
- test(S("abcdeabcde"), "abcdeabcde", 1, 0, 1);
- test(S("abcdeabcde"), "abcdeabcde", 1, 1, 5);
- test(S("abcdeabcde"), "abcdeabcde", 1, 5, 5);
- test(S("abcdeabcde"), "abcdeabcde", 1, 9, S::npos);
- test(S("abcdeabcde"), "abcdeabcde", 1, 10, S::npos);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 1, 0, 1);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 1, 1, 5);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 1, 10, S::npos);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 1, 19, S::npos);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 1, 20, S::npos);
- test(S("abcdeabcde"), "", 5, 0, 5);
- test(S("abcdeabcde"), "abcde", 5, 0, 5);
- test(S("abcdeabcde"), "abcde", 5, 1, 5);
- test(S("abcdeabcde"), "abcde", 5, 2, 5);
- test(S("abcdeabcde"), "abcde", 5, 4, 5);
- test(S("abcdeabcde"), "abcde", 5, 5, 5);
- test(S("abcdeabcde"), "abcdeabcde", 5, 0, 5);
- test(S("abcdeabcde"), "abcdeabcde", 5, 1, 5);
- test(S("abcdeabcde"), "abcdeabcde", 5, 5, 5);
- test(S("abcdeabcde"), "abcdeabcde", 5, 9, S::npos);
- test(S("abcdeabcde"), "abcdeabcde", 5, 10, S::npos);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 5, 0, 5);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 5, 1, 5);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 5, 10, S::npos);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 5, 19, S::npos);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 5, 20, S::npos);
- test(S("abcdeabcde"), "", 9, 0, 9);
- test(S("abcdeabcde"), "abcde", 9, 0, 9);
- test(S("abcdeabcde"), "abcde", 9, 1, S::npos);
- test(S("abcdeabcde"), "abcde", 9, 2, S::npos);
- test(S("abcdeabcde"), "abcde", 9, 4, S::npos);
- test(S("abcdeabcde"), "abcde", 9, 5, S::npos);
- test(S("abcdeabcde"), "abcdeabcde", 9, 0, 9);
- test(S("abcdeabcde"), "abcdeabcde", 9, 1, S::npos);
- test(S("abcdeabcde"), "abcdeabcde", 9, 5, S::npos);
- test(S("abcdeabcde"), "abcdeabcde", 9, 9, S::npos);
- test(S("abcdeabcde"), "abcdeabcde", 9, 10, S::npos);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 9, 0, 9);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 9, 1, S::npos);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 9, 10, S::npos);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 9, 19, S::npos);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 9, 20, S::npos);
- test(S("abcdeabcde"), "", 10, 0, 10);
- test(S("abcdeabcde"), "abcde", 10, 0, 10);
- test(S("abcdeabcde"), "abcde", 10, 1, S::npos);
- test(S("abcdeabcde"), "abcde", 10, 2, S::npos);
- test(S("abcdeabcde"), "abcde", 10, 4, S::npos);
- test(S("abcdeabcde"), "abcde", 10, 5, S::npos);
- test(S("abcdeabcde"), "abcdeabcde", 10, 0, 10);
- test(S("abcdeabcde"), "abcdeabcde", 10, 1, S::npos);
+TEST_CONSTEXPR_CXX20 void test1() {
+ test(S("abcde"), "abcde", 5, 4, S::npos);
+ test(S("abcde"), "abcde", 5, 5, S::npos);
+ test(S("abcde"), "abcdeabcde", 5, 0, 5);
+ test(S("abcde"), "abcdeabcde", 5, 1, S::npos);
+ test(S("abcde"), "abcdeabcde", 5, 5, S::npos);
+ test(S("abcde"), "abcdeabcde", 5, 9, S::npos);
+ test(S("abcde"), "abcdeabcde", 5, 10, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 5, 0, 5);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 5, 1, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 5, 10, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 5, 19, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 5, 20, S::npos);
+ test(S("abcde"), "", 6, 0, S::npos);
+ test(S("abcde"), "abcde", 6, 0, S::npos);
+ test(S("abcde"), "abcde", 6, 1, S::npos);
+ test(S("abcde"), "abcde", 6, 2, S::npos);
+ test(S("abcde"), "abcde", 6, 4, S::npos);
+ test(S("abcde"), "abcde", 6, 5, S::npos);
+ test(S("abcde"), "abcdeabcde", 6, 0, S::npos);
+ test(S("abcde"), "abcdeabcde", 6, 1, S::npos);
+ test(S("abcde"), "abcdeabcde", 6, 5, S::npos);
+ test(S("abcde"), "abcdeabcde", 6, 9, S::npos);
+ test(S("abcde"), "abcdeabcde", 6, 10, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 6, 0, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 6, 1, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 6, 10, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 6, 19, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 6, 20, S::npos);
+ test(S("abcdeabcde"), "", 0, 0, 0);
+ test(S("abcdeabcde"), "abcde", 0, 0, 0);
+ test(S("abcdeabcde"), "abcde", 0, 1, 0);
+ test(S("abcdeabcde"), "abcde", 0, 2, 0);
+ test(S("abcdeabcde"), "abcde", 0, 4, 0);
+ test(S("abcdeabcde"), "abcde", 0, 5, 0);
+ test(S("abcdeabcde"), "abcdeabcde", 0, 0, 0);
+ test(S("abcdeabcde"), "abcdeabcde", 0, 1, 0);
+ test(S("abcdeabcde"), "abcdeabcde", 0, 5, 0);
+ test(S("abcdeabcde"), "abcdeabcde", 0, 9, 0);
+ test(S("abcdeabcde"), "abcdeabcde", 0, 10, 0);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 0, 0, 0);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 0, 1, 0);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 0, 10, 0);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 0, 19, S::npos);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 0, 20, S::npos);
+ test(S("abcdeabcde"), "", 1, 0, 1);
+ test(S("abcdeabcde"), "abcde", 1, 0, 1);
+ test(S("abcdeabcde"), "abcde", 1, 1, 5);
+ test(S("abcdeabcde"), "abcde", 1, 2, 5);
+ test(S("abcdeabcde"), "abcde", 1, 4, 5);
+ test(S("abcdeabcde"), "abcde", 1, 5, 5);
+ test(S("abcdeabcde"), "abcdeabcde", 1, 0, 1);
+ test(S("abcdeabcde"), "abcdeabcde", 1, 1, 5);
+ test(S("abcdeabcde"), "abcdeabcde", 1, 5, 5);
+ test(S("abcdeabcde"), "abcdeabcde", 1, 9, S::npos);
+ test(S("abcdeabcde"), "abcdeabcde", 1, 10, S::npos);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 1, 0, 1);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 1, 1, 5);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 1, 10, S::npos);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 1, 19, S::npos);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 1, 20, S::npos);
+ test(S("abcdeabcde"), "", 5, 0, 5);
+ test(S("abcdeabcde"), "abcde", 5, 0, 5);
+ test(S("abcdeabcde"), "abcde", 5, 1, 5);
+ test(S("abcdeabcde"), "abcde", 5, 2, 5);
+ test(S("abcdeabcde"), "abcde", 5, 4, 5);
+ test(S("abcdeabcde"), "abcde", 5, 5, 5);
+ test(S("abcdeabcde"), "abcdeabcde", 5, 0, 5);
+ test(S("abcdeabcde"), "abcdeabcde", 5, 1, 5);
+ test(S("abcdeabcde"), "abcdeabcde", 5, 5, 5);
+ test(S("abcdeabcde"), "abcdeabcde", 5, 9, S::npos);
+ test(S("abcdeabcde"), "abcdeabcde", 5, 10, S::npos);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 5, 0, 5);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 5, 1, 5);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 5, 10, S::npos);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 5, 19, S::npos);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 5, 20, S::npos);
+ test(S("abcdeabcde"), "", 9, 0, 9);
+ test(S("abcdeabcde"), "abcde", 9, 0, 9);
+ test(S("abcdeabcde"), "abcde", 9, 1, S::npos);
+ test(S("abcdeabcde"), "abcde", 9, 2, S::npos);
+ test(S("abcdeabcde"), "abcde", 9, 4, S::npos);
+ test(S("abcdeabcde"), "abcde", 9, 5, S::npos);
+ test(S("abcdeabcde"), "abcdeabcde", 9, 0, 9);
+ test(S("abcdeabcde"), "abcdeabcde", 9, 1, S::npos);
+ test(S("abcdeabcde"), "abcdeabcde", 9, 5, S::npos);
+ test(S("abcdeabcde"), "abcdeabcde", 9, 9, S::npos);
+ test(S("abcdeabcde"), "abcdeabcde", 9, 10, S::npos);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 9, 0, 9);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 9, 1, S::npos);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 9, 10, S::npos);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 9, 19, S::npos);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 9, 20, S::npos);
+ test(S("abcdeabcde"), "", 10, 0, 10);
+ test(S("abcdeabcde"), "abcde", 10, 0, 10);
+ test(S("abcdeabcde"), "abcde", 10, 1, S::npos);
+ test(S("abcdeabcde"), "abcde", 10, 2, S::npos);
+ test(S("abcdeabcde"), "abcde", 10, 4, S::npos);
+ test(S("abcdeabcde"), "abcde", 10, 5, S::npos);
+ test(S("abcdeabcde"), "abcdeabcde", 10, 0, 10);
+ test(S("abcdeabcde"), "abcdeabcde", 10, 1, S::npos);
}
template <class S>
-TEST_CONSTEXPR_CXX20 void test2()
-{
- test(S("abcdeabcde"), "abcdeabcde", 10, 5, S::npos);
- test(S("abcdeabcde"), "abcdeabcde", 10, 9, S::npos);
- test(S("abcdeabcde"), "abcdeabcde", 10, 10, S::npos);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 10, 0, 10);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 10, 1, S::npos);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 10, 10, S::npos);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 10, 19, S::npos);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 10, 20, S::npos);
- test(S("abcdeabcde"), "", 11, 0, S::npos);
- test(S("abcdeabcde"), "abcde", 11, 0, S::npos);
- test(S("abcdeabcde"), "abcde", 11, 1, S::npos);
- test(S("abcdeabcde"), "abcde", 11, 2, S::npos);
- test(S("abcdeabcde"), "abcde", 11, 4, S::npos);
- test(S("abcdeabcde"), "abcde", 11, 5, S::npos);
- test(S("abcdeabcde"), "abcdeabcde", 11, 0, S::npos);
- test(S("abcdeabcde"), "abcdeabcde", 11, 1, S::npos);
- test(S("abcdeabcde"), "abcdeabcde", 11, 5, S::npos);
- test(S("abcdeabcde"), "abcdeabcde", 11, 9, S::npos);
- test(S("abcdeabcde"), "abcdeabcde", 11, 10, S::npos);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 11, 0, S::npos);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 11, 1, S::npos);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 11, 10, S::npos);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 11, 19, S::npos);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 11, 20, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "", 0, 0, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 0, 0, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 0, 1, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 0, 2, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 0, 4, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 0, 5, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 0, 0, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 0, 1, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 0, 5, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 0, 9, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 0, 10, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 0, 0, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 0, 1, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 0, 10, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 0, 19, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 0, 20, 0);
- test(S("abcdeabcdeabcdeabcde"), "", 1, 0, 1);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 1, 0, 1);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 1, 1, 5);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 1, 2, 5);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 1, 4, 5);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 1, 5, 5);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 1, 0, 1);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 1, 1, 5);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 1, 5, 5);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 1, 9, 5);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 1, 10, 5);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 1, 0, 1);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 1, 1, 5);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 1, 10, 5);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 1, 19, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 1, 20, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "", 10, 0, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 10, 0, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 10, 1, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 10, 2, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 10, 4, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 10, 5, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 10, 0, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 10, 1, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 10, 5, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 10, 9, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 10, 10, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 10, 0, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 10, 1, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 10, 10, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 10, 19, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 10, 20, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "", 19, 0, 19);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 19, 0, 19);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 19, 1, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 19, 2, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 19, 4, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 19, 5, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 19, 0, 19);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 19, 1, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 19, 5, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 19, 9, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 19, 10, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 19, 0, 19);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 19, 1, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 19, 10, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 19, 19, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 19, 20, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "", 20, 0, 20);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 20, 0, 20);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 20, 1, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 20, 2, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 20, 4, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 20, 5, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 20, 0, 20);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 20, 1, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 20, 5, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 20, 9, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 20, 10, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 20, 0, 20);
+TEST_CONSTEXPR_CXX20 void test2() {
+ test(S("abcdeabcde"), "abcdeabcde", 10, 5, S::npos);
+ test(S("abcdeabcde"), "abcdeabcde", 10, 9, S::npos);
+ test(S("abcdeabcde"), "abcdeabcde", 10, 10, S::npos);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 10, 0, 10);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 10, 1, S::npos);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 10, 10, S::npos);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 10, 19, S::npos);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 10, 20, S::npos);
+ test(S("abcdeabcde"), "", 11, 0, S::npos);
+ test(S("abcdeabcde"), "abcde", 11, 0, S::npos);
+ test(S("abcdeabcde"), "abcde", 11, 1, S::npos);
+ test(S("abcdeabcde"), "abcde", 11, 2, S::npos);
+ test(S("abcdeabcde"), "abcde", 11, 4, S::npos);
+ test(S("abcdeabcde"), "abcde", 11, 5, S::npos);
+ test(S("abcdeabcde"), "abcdeabcde", 11, 0, S::npos);
+ test(S("abcdeabcde"), "abcdeabcde", 11, 1, S::npos);
+ test(S("abcdeabcde"), "abcdeabcde", 11, 5, S::npos);
+ test(S("abcdeabcde"), "abcdeabcde", 11, 9, S::npos);
+ test(S("abcdeabcde"), "abcdeabcde", 11, 10, S::npos);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 11, 0, S::npos);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 11, 1, S::npos);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 11, 10, S::npos);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 11, 19, S::npos);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 11, 20, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "", 0, 0, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 0, 0, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 0, 1, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 0, 2, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 0, 4, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 0, 5, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 0, 0, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 0, 1, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 0, 5, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 0, 9, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 0, 10, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 0, 0, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 0, 1, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 0, 10, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 0, 19, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 0, 20, 0);
+ test(S("abcdeabcdeabcdeabcde"), "", 1, 0, 1);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 1, 0, 1);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 1, 1, 5);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 1, 2, 5);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 1, 4, 5);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 1, 5, 5);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 1, 0, 1);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 1, 1, 5);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 1, 5, 5);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 1, 9, 5);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 1, 10, 5);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 1, 0, 1);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 1, 1, 5);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 1, 10, 5);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 1, 19, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 1, 20, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "", 10, 0, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 10, 0, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 10, 1, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 10, 2, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 10, 4, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 10, 5, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 10, 0, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 10, 1, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 10, 5, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 10, 9, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 10, 10, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 10, 0, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 10, 1, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 10, 10, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 10, 19, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 10, 20, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "", 19, 0, 19);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 19, 0, 19);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 19, 1, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 19, 2, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 19, 4, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 19, 5, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 19, 0, 19);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 19, 1, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 19, 5, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 19, 9, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 19, 10, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 19, 0, 19);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 19, 1, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 19, 10, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 19, 19, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 19, 20, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "", 20, 0, 20);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 20, 0, 20);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 20, 1, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 20, 2, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 20, 4, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 20, 5, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 20, 0, 20);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 20, 1, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 20, 5, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 20, 9, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 20, 10, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 20, 0, 20);
}
template <class S>
-TEST_CONSTEXPR_CXX20 void test3()
-{
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 20, 1, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 20, 10, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 20, 19, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 20, 20, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "", 21, 0, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 21, 0, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 21, 1, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 21, 2, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 21, 4, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 21, 5, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 21, 0, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 21, 1, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 21, 5, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 21, 9, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 21, 10, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 21, 0, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 21, 1, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 21, 10, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 21, 19, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 21, 20, S::npos);
+TEST_CONSTEXPR_CXX20 void test3() {
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 20, 1, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 20, 10, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 20, 19, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 20, 20, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "", 21, 0, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 21, 0, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 21, 1, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 21, 2, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 21, 4, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 21, 5, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 21, 0, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 21, 1, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 21, 5, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 21, 9, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 21, 10, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 21, 0, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 21, 1, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 21, 10, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 21, 19, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 21, 20, S::npos);
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -388,8 +386,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.ops/string_find/string_size.pass.cpp b/libcxx/test/std/strings/basic.string/string.ops/string_find/string_size.pass.cpp
index af0fdd3340cec76..08d4ae24d1e90bf 100644
--- a/libcxx/test/std/strings/basic.string/string.ops/string_find/string_size.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.ops/string_find/string_size.pass.cpp
@@ -17,129 +17,123 @@
#include "min_allocator.h"
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(const S& s, const S& str, typename S::size_type pos, typename S::size_type x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.find(str, pos));
- assert(s.find(str, pos) == x);
- if (x != S::npos)
- assert(pos <= x && x + str.size() <= s.size());
+TEST_CONSTEXPR_CXX20 void test(const S& s, const S& str, typename S::size_type pos, typename S::size_type x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.find(str, pos));
+ assert(s.find(str, pos) == x);
+ if (x != S::npos)
+ assert(pos <= x && x + str.size() <= s.size());
}
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(const S& s, const S& str, typename S::size_type x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.find(str));
- assert(s.find(str) == x);
- if (x != S::npos)
- assert(0 <= x && x + str.size() <= s.size());
+TEST_CONSTEXPR_CXX20 void test(const S& s, const S& str, typename S::size_type x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.find(str));
+ assert(s.find(str) == x);
+ if (x != S::npos)
+ assert(0 <= x && x + str.size() <= s.size());
}
template <class S>
-TEST_CONSTEXPR_CXX20 void test0()
-{
- test(S(""), S(""), 0, 0);
- test(S(""), S("abcde"), 0, S::npos);
- test(S(""), S("abcdeabcde"), 0, S::npos);
- test(S(""), S("abcdeabcdeabcdeabcde"), 0, S::npos);
- test(S(""), S(""), 1, S::npos);
- test(S(""), S("abcde"), 1, S::npos);
- test(S(""), S("abcdeabcde"), 1, S::npos);
- test(S(""), S("abcdeabcdeabcdeabcde"), 1, S::npos);
- test(S("abcde"), S(""), 0, 0);
- test(S("abcde"), S("abcde"), 0, 0);
- test(S("abcde"), S("abcdeabcde"), 0, S::npos);
- test(S("abcde"), S("abcdeabcdeabcdeabcde"), 0, S::npos);
- test(S("abcde"), S(""), 1, 1);
- test(S("abcde"), S("abcde"), 1, S::npos);
- test(S("abcde"), S("abcdeabcde"), 1, S::npos);
- test(S("abcde"), S("abcdeabcdeabcdeabcde"), 1, S::npos);
- test(S("abcde"), S(""), 2, 2);
- test(S("abcde"), S("abcde"), 2, S::npos);
- test(S("abcde"), S("abcdeabcde"), 2, S::npos);
- test(S("abcde"), S("abcdeabcdeabcdeabcde"), 2, S::npos);
- test(S("abcde"), S(""), 4, 4);
- test(S("abcde"), S("abcde"), 4, S::npos);
- test(S("abcde"), S("abcdeabcde"), 4, S::npos);
- test(S("abcde"), S("abcdeabcdeabcdeabcde"), 4, S::npos);
- test(S("abcde"), S(""), 5, 5);
- test(S("abcde"), S("abcde"), 5, S::npos);
- test(S("abcde"), S("abcdeabcde"), 5, S::npos);
- test(S("abcde"), S("abcdeabcdeabcdeabcde"), 5, S::npos);
- test(S("abcde"), S(""), 6, S::npos);
- test(S("abcde"), S("abcde"), 6, S::npos);
- test(S("abcde"), S("abcdeabcde"), 6, S::npos);
- test(S("abcde"), S("abcdeabcdeabcdeabcde"), 6, S::npos);
- test(S("abcdeabcde"), S(""), 0, 0);
- test(S("abcdeabcde"), S("abcde"), 0, 0);
- test(S("abcdeabcde"), S("abcdeabcde"), 0, 0);
- test(S("abcdeabcde"), S("abcdeabcdeabcdeabcde"), 0, S::npos);
- test(S("abcdeabcde"), S(""), 1, 1);
- test(S("abcdeabcde"), S("abcde"), 1, 5);
- test(S("abcdeabcde"), S("abcdeabcde"), 1, S::npos);
- test(S("abcdeabcde"), S("abcdeabcdeabcdeabcde"), 1, S::npos);
- test(S("abcdeabcde"), S(""), 5, 5);
- test(S("abcdeabcde"), S("abcde"), 5, 5);
- test(S("abcdeabcde"), S("abcdeabcde"), 5, S::npos);
- test(S("abcdeabcde"), S("abcdeabcdeabcdeabcde"), 5, S::npos);
- test(S("abcdeabcde"), S(""), 9, 9);
- test(S("abcdeabcde"), S("abcde"), 9, S::npos);
- test(S("abcdeabcde"), S("abcdeabcde"), 9, S::npos);
- test(S("abcdeabcde"), S("abcdeabcdeabcdeabcde"), 9, S::npos);
- test(S("abcdeabcde"), S(""), 10, 10);
- test(S("abcdeabcde"), S("abcde"), 10, S::npos);
- test(S("abcdeabcde"), S("abcdeabcde"), 10, S::npos);
- test(S("abcdeabcde"), S("abcdeabcdeabcdeabcde"), 10, S::npos);
- test(S("abcdeabcde"), S(""), 11, S::npos);
- test(S("abcdeabcde"), S("abcde"), 11, S::npos);
- test(S("abcdeabcde"), S("abcdeabcde"), 11, S::npos);
- test(S("abcdeabcde"), S("abcdeabcdeabcdeabcde"), 11, S::npos);
- test(S("abcdeabcdeabcdeabcde"), S(""), 0, 0);
- test(S("abcdeabcdeabcdeabcde"), S("abcde"), 0, 0);
- test(S("abcdeabcdeabcdeabcde"), S("abcdeabcde"), 0, 0);
- test(S("abcdeabcdeabcdeabcde"), S("abcdeabcdeabcdeabcde"), 0, 0);
- test(S("abcdeabcdeabcdeabcde"), S(""), 1, 1);
- test(S("abcdeabcdeabcdeabcde"), S("abcde"), 1, 5);
- test(S("abcdeabcdeabcdeabcde"), S("abcdeabcde"), 1, 5);
- test(S("abcdeabcdeabcdeabcde"), S("abcdeabcdeabcdeabcde"), 1, S::npos);
- test(S("abcdeabcdeabcdeabcde"), S(""), 10, 10);
- test(S("abcdeabcdeabcdeabcde"), S("abcde"), 10, 10);
- test(S("abcdeabcdeabcdeabcde"), S("abcdeabcde"), 10, 10);
- test(S("abcdeabcdeabcdeabcde"), S("abcdeabcdeabcdeabcde"), 10, S::npos);
- test(S("abcdeabcdeabcdeabcde"), S(""), 19, 19);
- test(S("abcdeabcdeabcdeabcde"), S("abcde"), 19, S::npos);
- test(S("abcdeabcdeabcdeabcde"), S("abcdeabcde"), 19, S::npos);
- test(S("abcdeabcdeabcdeabcde"), S("abcdeabcdeabcdeabcde"), 19, S::npos);
- test(S("abcdeabcdeabcdeabcde"), S(""), 20, 20);
- test(S("abcdeabcdeabcdeabcde"), S("abcde"), 20, S::npos);
- test(S("abcdeabcdeabcdeabcde"), S("abcdeabcde"), 20, S::npos);
- test(S("abcdeabcdeabcdeabcde"), S("abcdeabcdeabcdeabcde"), 20, S::npos);
- test(S("abcdeabcdeabcdeabcde"), S(""), 21, S::npos);
- test(S("abcdeabcdeabcdeabcde"), S("abcde"), 21, S::npos);
- test(S("abcdeabcdeabcdeabcde"), S("abcdeabcde"), 21, S::npos);
- test(S("abcdeabcdeabcdeabcde"), S("abcdeabcdeabcdeabcde"), 21, S::npos);
+TEST_CONSTEXPR_CXX20 void test0() {
+ test(S(""), S(""), 0, 0);
+ test(S(""), S("abcde"), 0, S::npos);
+ test(S(""), S("abcdeabcde"), 0, S::npos);
+ test(S(""), S("abcdeabcdeabcdeabcde"), 0, S::npos);
+ test(S(""), S(""), 1, S::npos);
+ test(S(""), S("abcde"), 1, S::npos);
+ test(S(""), S("abcdeabcde"), 1, S::npos);
+ test(S(""), S("abcdeabcdeabcdeabcde"), 1, S::npos);
+ test(S("abcde"), S(""), 0, 0);
+ test(S("abcde"), S("abcde"), 0, 0);
+ test(S("abcde"), S("abcdeabcde"), 0, S::npos);
+ test(S("abcde"), S("abcdeabcdeabcdeabcde"), 0, S::npos);
+ test(S("abcde"), S(""), 1, 1);
+ test(S("abcde"), S("abcde"), 1, S::npos);
+ test(S("abcde"), S("abcdeabcde"), 1, S::npos);
+ test(S("abcde"), S("abcdeabcdeabcdeabcde"), 1, S::npos);
+ test(S("abcde"), S(""), 2, 2);
+ test(S("abcde"), S("abcde"), 2, S::npos);
+ test(S("abcde"), S("abcdeabcde"), 2, S::npos);
+ test(S("abcde"), S("abcdeabcdeabcdeabcde"), 2, S::npos);
+ test(S("abcde"), S(""), 4, 4);
+ test(S("abcde"), S("abcde"), 4, S::npos);
+ test(S("abcde"), S("abcdeabcde"), 4, S::npos);
+ test(S("abcde"), S("abcdeabcdeabcdeabcde"), 4, S::npos);
+ test(S("abcde"), S(""), 5, 5);
+ test(S("abcde"), S("abcde"), 5, S::npos);
+ test(S("abcde"), S("abcdeabcde"), 5, S::npos);
+ test(S("abcde"), S("abcdeabcdeabcdeabcde"), 5, S::npos);
+ test(S("abcde"), S(""), 6, S::npos);
+ test(S("abcde"), S("abcde"), 6, S::npos);
+ test(S("abcde"), S("abcdeabcde"), 6, S::npos);
+ test(S("abcde"), S("abcdeabcdeabcdeabcde"), 6, S::npos);
+ test(S("abcdeabcde"), S(""), 0, 0);
+ test(S("abcdeabcde"), S("abcde"), 0, 0);
+ test(S("abcdeabcde"), S("abcdeabcde"), 0, 0);
+ test(S("abcdeabcde"), S("abcdeabcdeabcdeabcde"), 0, S::npos);
+ test(S("abcdeabcde"), S(""), 1, 1);
+ test(S("abcdeabcde"), S("abcde"), 1, 5);
+ test(S("abcdeabcde"), S("abcdeabcde"), 1, S::npos);
+ test(S("abcdeabcde"), S("abcdeabcdeabcdeabcde"), 1, S::npos);
+ test(S("abcdeabcde"), S(""), 5, 5);
+ test(S("abcdeabcde"), S("abcde"), 5, 5);
+ test(S("abcdeabcde"), S("abcdeabcde"), 5, S::npos);
+ test(S("abcdeabcde"), S("abcdeabcdeabcdeabcde"), 5, S::npos);
+ test(S("abcdeabcde"), S(""), 9, 9);
+ test(S("abcdeabcde"), S("abcde"), 9, S::npos);
+ test(S("abcdeabcde"), S("abcdeabcde"), 9, S::npos);
+ test(S("abcdeabcde"), S("abcdeabcdeabcdeabcde"), 9, S::npos);
+ test(S("abcdeabcde"), S(""), 10, 10);
+ test(S("abcdeabcde"), S("abcde"), 10, S::npos);
+ test(S("abcdeabcde"), S("abcdeabcde"), 10, S::npos);
+ test(S("abcdeabcde"), S("abcdeabcdeabcdeabcde"), 10, S::npos);
+ test(S("abcdeabcde"), S(""), 11, S::npos);
+ test(S("abcdeabcde"), S("abcde"), 11, S::npos);
+ test(S("abcdeabcde"), S("abcdeabcde"), 11, S::npos);
+ test(S("abcdeabcde"), S("abcdeabcdeabcdeabcde"), 11, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), S(""), 0, 0);
+ test(S("abcdeabcdeabcdeabcde"), S("abcde"), 0, 0);
+ test(S("abcdeabcdeabcdeabcde"), S("abcdeabcde"), 0, 0);
+ test(S("abcdeabcdeabcdeabcde"), S("abcdeabcdeabcdeabcde"), 0, 0);
+ test(S("abcdeabcdeabcdeabcde"), S(""), 1, 1);
+ test(S("abcdeabcdeabcdeabcde"), S("abcde"), 1, 5);
+ test(S("abcdeabcdeabcdeabcde"), S("abcdeabcde"), 1, 5);
+ test(S("abcdeabcdeabcdeabcde"), S("abcdeabcdeabcdeabcde"), 1, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), S(""), 10, 10);
+ test(S("abcdeabcdeabcdeabcde"), S("abcde"), 10, 10);
+ test(S("abcdeabcdeabcdeabcde"), S("abcdeabcde"), 10, 10);
+ test(S("abcdeabcdeabcdeabcde"), S("abcdeabcdeabcdeabcde"), 10, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), S(""), 19, 19);
+ test(S("abcdeabcdeabcdeabcde"), S("abcde"), 19, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), S("abcdeabcde"), 19, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), S("abcdeabcdeabcdeabcde"), 19, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), S(""), 20, 20);
+ test(S("abcdeabcdeabcdeabcde"), S("abcde"), 20, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), S("abcdeabcde"), 20, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), S("abcdeabcdeabcdeabcde"), 20, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), S(""), 21, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), S("abcde"), 21, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), S("abcdeabcde"), 21, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), S("abcdeabcdeabcdeabcde"), 21, S::npos);
}
template <class S>
-TEST_CONSTEXPR_CXX20 void test1()
-{
- test(S(""), S(""), 0);
- test(S(""), S("abcde"), S::npos);
- test(S(""), S("abcdeabcde"), S::npos);
- test(S(""), S("abcdeabcdeabcdeabcde"), S::npos);
- test(S("abcde"), S(""), 0);
- test(S("abcde"), S("abcde"), 0);
- test(S("abcde"), S("abcdeabcde"), S::npos);
- test(S("abcde"), S("abcdeabcdeabcdeabcde"), S::npos);
- test(S("abcdeabcde"), S(""), 0);
- test(S("abcdeabcde"), S("abcde"), 0);
- test(S("abcdeabcde"), S("abcdeabcde"), 0);
- test(S("abcdeabcde"), S("abcdeabcdeabcdeabcde"), S::npos);
- test(S("abcdeabcdeabcdeabcde"), S(""), 0);
- test(S("abcdeabcdeabcdeabcde"), S("abcde"), 0);
- test(S("abcdeabcdeabcdeabcde"), S("abcdeabcde"), 0);
- test(S("abcdeabcdeabcdeabcde"), S("abcdeabcdeabcdeabcde"), 0);
+TEST_CONSTEXPR_CXX20 void test1() {
+ test(S(""), S(""), 0);
+ test(S(""), S("abcde"), S::npos);
+ test(S(""), S("abcdeabcde"), S::npos);
+ test(S(""), S("abcdeabcdeabcdeabcde"), S::npos);
+ test(S("abcde"), S(""), 0);
+ test(S("abcde"), S("abcde"), 0);
+ test(S("abcde"), S("abcdeabcde"), S::npos);
+ test(S("abcde"), S("abcdeabcdeabcdeabcde"), S::npos);
+ test(S("abcdeabcde"), S(""), 0);
+ test(S("abcdeabcde"), S("abcde"), 0);
+ test(S("abcdeabcde"), S("abcdeabcde"), 0);
+ test(S("abcdeabcde"), S("abcdeabcdeabcdeabcde"), S::npos);
+ test(S("abcdeabcdeabcdeabcde"), S(""), 0);
+ test(S("abcdeabcdeabcdeabcde"), S("abcde"), 0);
+ test(S("abcdeabcdeabcdeabcde"), S("abcdeabcde"), 0);
+ test(S("abcdeabcdeabcdeabcde"), S("abcdeabcdeabcdeabcde"), 0);
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -166,8 +160,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.ops/string_find/string_view_size.pass.cpp b/libcxx/test/std/strings/basic.string/string.ops/string_find/string_view_size.pass.cpp
index a32a1568bc0ee9d..34d7302b40cc12b 100644
--- a/libcxx/test/std/strings/basic.string/string.ops/string_find/string_view_size.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.ops/string_find/string_view_size.pass.cpp
@@ -17,129 +17,123 @@
#include "min_allocator.h"
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 void
-test(const S& s, SV sv, typename S::size_type pos, typename S::size_type x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.find(sv, pos));
- assert(s.find(sv, pos) == x);
- if (x != S::npos)
- assert(pos <= x && x + sv.size() <= s.size());
+TEST_CONSTEXPR_CXX20 void test(const S& s, SV sv, typename S::size_type pos, typename S::size_type x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.find(sv, pos));
+ assert(s.find(sv, pos) == x);
+ if (x != S::npos)
+ assert(pos <= x && x + sv.size() <= s.size());
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 void
-test(const S& s, SV sv, typename S::size_type x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.find(sv));
- assert(s.find(sv) == x);
- if (x != S::npos)
- assert(0 <= x && x + sv.size() <= s.size());
+TEST_CONSTEXPR_CXX20 void test(const S& s, SV sv, typename S::size_type x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.find(sv));
+ assert(s.find(sv) == x);
+ if (x != S::npos)
+ assert(0 <= x && x + sv.size() <= s.size());
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 void test0()
-{
- test(S(""), SV(""), 0, 0);
- test(S(""), SV("abcde"), 0, S::npos);
- test(S(""), SV("abcdeabcde"), 0, S::npos);
- test(S(""), SV("abcdeabcdeabcdeabcde"), 0, S::npos);
- test(S(""), SV(""), 1, S::npos);
- test(S(""), SV("abcde"), 1, S::npos);
- test(S(""), SV("abcdeabcde"), 1, S::npos);
- test(S(""), SV("abcdeabcdeabcdeabcde"), 1, S::npos);
- test(S("abcde"), SV(""), 0, 0);
- test(S("abcde"), SV("abcde"), 0, 0);
- test(S("abcde"), SV("abcdeabcde"), 0, S::npos);
- test(S("abcde"), SV("abcdeabcdeabcdeabcde"), 0, S::npos);
- test(S("abcde"), SV(""), 1, 1);
- test(S("abcde"), SV("abcde"), 1, S::npos);
- test(S("abcde"), SV("abcdeabcde"), 1, S::npos);
- test(S("abcde"), SV("abcdeabcdeabcdeabcde"), 1, S::npos);
- test(S("abcde"), SV(""), 2, 2);
- test(S("abcde"), SV("abcde"), 2, S::npos);
- test(S("abcde"), SV("abcdeabcde"), 2, S::npos);
- test(S("abcde"), SV("abcdeabcdeabcdeabcde"), 2, S::npos);
- test(S("abcde"), SV(""), 4, 4);
- test(S("abcde"), SV("abcde"), 4, S::npos);
- test(S("abcde"), SV("abcdeabcde"), 4, S::npos);
- test(S("abcde"), SV("abcdeabcdeabcdeabcde"), 4, S::npos);
- test(S("abcde"), SV(""), 5, 5);
- test(S("abcde"), SV("abcde"), 5, S::npos);
- test(S("abcde"), SV("abcdeabcde"), 5, S::npos);
- test(S("abcde"), SV("abcdeabcdeabcdeabcde"), 5, S::npos);
- test(S("abcde"), SV(""), 6, S::npos);
- test(S("abcde"), SV("abcde"), 6, S::npos);
- test(S("abcde"), SV("abcdeabcde"), 6, S::npos);
- test(S("abcde"), SV("abcdeabcdeabcdeabcde"), 6, S::npos);
- test(S("abcdeabcde"), SV(""), 0, 0);
- test(S("abcdeabcde"), SV("abcde"), 0, 0);
- test(S("abcdeabcde"), SV("abcdeabcde"), 0, 0);
- test(S("abcdeabcde"), SV("abcdeabcdeabcdeabcde"), 0, S::npos);
- test(S("abcdeabcde"), SV(""), 1, 1);
- test(S("abcdeabcde"), SV("abcde"), 1, 5);
- test(S("abcdeabcde"), SV("abcdeabcde"), 1, S::npos);
- test(S("abcdeabcde"), SV("abcdeabcdeabcdeabcde"), 1, S::npos);
- test(S("abcdeabcde"), SV(""), 5, 5);
- test(S("abcdeabcde"), SV("abcde"), 5, 5);
- test(S("abcdeabcde"), SV("abcdeabcde"), 5, S::npos);
- test(S("abcdeabcde"), SV("abcdeabcdeabcdeabcde"), 5, S::npos);
- test(S("abcdeabcde"), SV(""), 9, 9);
- test(S("abcdeabcde"), SV("abcde"), 9, S::npos);
- test(S("abcdeabcde"), SV("abcdeabcde"), 9, S::npos);
- test(S("abcdeabcde"), SV("abcdeabcdeabcdeabcde"), 9, S::npos);
- test(S("abcdeabcde"), SV(""), 10, 10);
- test(S("abcdeabcde"), SV("abcde"), 10, S::npos);
- test(S("abcdeabcde"), SV("abcdeabcde"), 10, S::npos);
- test(S("abcdeabcde"), SV("abcdeabcdeabcdeabcde"), 10, S::npos);
- test(S("abcdeabcde"), SV(""), 11, S::npos);
- test(S("abcdeabcde"), SV("abcde"), 11, S::npos);
- test(S("abcdeabcde"), SV("abcdeabcde"), 11, S::npos);
- test(S("abcdeabcde"), SV("abcdeabcdeabcdeabcde"), 11, S::npos);
- test(S("abcdeabcdeabcdeabcde"), SV(""), 0, 0);
- test(S("abcdeabcdeabcdeabcde"), SV("abcde"), 0, 0);
- test(S("abcdeabcdeabcdeabcde"), SV("abcdeabcde"), 0, 0);
- test(S("abcdeabcdeabcdeabcde"), SV("abcdeabcdeabcdeabcde"), 0, 0);
- test(S("abcdeabcdeabcdeabcde"), SV(""), 1, 1);
- test(S("abcdeabcdeabcdeabcde"), SV("abcde"), 1, 5);
- test(S("abcdeabcdeabcdeabcde"), SV("abcdeabcde"), 1, 5);
- test(S("abcdeabcdeabcdeabcde"), SV("abcdeabcdeabcdeabcde"), 1, S::npos);
- test(S("abcdeabcdeabcdeabcde"), SV(""), 10, 10);
- test(S("abcdeabcdeabcdeabcde"), SV("abcde"), 10, 10);
- test(S("abcdeabcdeabcdeabcde"), SV("abcdeabcde"), 10, 10);
- test(S("abcdeabcdeabcdeabcde"), SV("abcdeabcdeabcdeabcde"), 10, S::npos);
- test(S("abcdeabcdeabcdeabcde"), SV(""), 19, 19);
- test(S("abcdeabcdeabcdeabcde"), SV("abcde"), 19, S::npos);
- test(S("abcdeabcdeabcdeabcde"), SV("abcdeabcde"), 19, S::npos);
- test(S("abcdeabcdeabcdeabcde"), SV("abcdeabcdeabcdeabcde"), 19, S::npos);
- test(S("abcdeabcdeabcdeabcde"), SV(""), 20, 20);
- test(S("abcdeabcdeabcdeabcde"), SV("abcde"), 20, S::npos);
- test(S("abcdeabcdeabcdeabcde"), SV("abcdeabcde"), 20, S::npos);
- test(S("abcdeabcdeabcdeabcde"), SV("abcdeabcdeabcdeabcde"), 20, S::npos);
- test(S("abcdeabcdeabcdeabcde"), SV(""), 21, S::npos);
- test(S("abcdeabcdeabcdeabcde"), SV("abcde"), 21, S::npos);
- test(S("abcdeabcdeabcdeabcde"), SV("abcdeabcde"), 21, S::npos);
- test(S("abcdeabcdeabcdeabcde"), SV("abcdeabcdeabcdeabcde"), 21, S::npos);
+TEST_CONSTEXPR_CXX20 void test0() {
+ test(S(""), SV(""), 0, 0);
+ test(S(""), SV("abcde"), 0, S::npos);
+ test(S(""), SV("abcdeabcde"), 0, S::npos);
+ test(S(""), SV("abcdeabcdeabcdeabcde"), 0, S::npos);
+ test(S(""), SV(""), 1, S::npos);
+ test(S(""), SV("abcde"), 1, S::npos);
+ test(S(""), SV("abcdeabcde"), 1, S::npos);
+ test(S(""), SV("abcdeabcdeabcdeabcde"), 1, S::npos);
+ test(S("abcde"), SV(""), 0, 0);
+ test(S("abcde"), SV("abcde"), 0, 0);
+ test(S("abcde"), SV("abcdeabcde"), 0, S::npos);
+ test(S("abcde"), SV("abcdeabcdeabcdeabcde"), 0, S::npos);
+ test(S("abcde"), SV(""), 1, 1);
+ test(S("abcde"), SV("abcde"), 1, S::npos);
+ test(S("abcde"), SV("abcdeabcde"), 1, S::npos);
+ test(S("abcde"), SV("abcdeabcdeabcdeabcde"), 1, S::npos);
+ test(S("abcde"), SV(""), 2, 2);
+ test(S("abcde"), SV("abcde"), 2, S::npos);
+ test(S("abcde"), SV("abcdeabcde"), 2, S::npos);
+ test(S("abcde"), SV("abcdeabcdeabcdeabcde"), 2, S::npos);
+ test(S("abcde"), SV(""), 4, 4);
+ test(S("abcde"), SV("abcde"), 4, S::npos);
+ test(S("abcde"), SV("abcdeabcde"), 4, S::npos);
+ test(S("abcde"), SV("abcdeabcdeabcdeabcde"), 4, S::npos);
+ test(S("abcde"), SV(""), 5, 5);
+ test(S("abcde"), SV("abcde"), 5, S::npos);
+ test(S("abcde"), SV("abcdeabcde"), 5, S::npos);
+ test(S("abcde"), SV("abcdeabcdeabcdeabcde"), 5, S::npos);
+ test(S("abcde"), SV(""), 6, S::npos);
+ test(S("abcde"), SV("abcde"), 6, S::npos);
+ test(S("abcde"), SV("abcdeabcde"), 6, S::npos);
+ test(S("abcde"), SV("abcdeabcdeabcdeabcde"), 6, S::npos);
+ test(S("abcdeabcde"), SV(""), 0, 0);
+ test(S("abcdeabcde"), SV("abcde"), 0, 0);
+ test(S("abcdeabcde"), SV("abcdeabcde"), 0, 0);
+ test(S("abcdeabcde"), SV("abcdeabcdeabcdeabcde"), 0, S::npos);
+ test(S("abcdeabcde"), SV(""), 1, 1);
+ test(S("abcdeabcde"), SV("abcde"), 1, 5);
+ test(S("abcdeabcde"), SV("abcdeabcde"), 1, S::npos);
+ test(S("abcdeabcde"), SV("abcdeabcdeabcdeabcde"), 1, S::npos);
+ test(S("abcdeabcde"), SV(""), 5, 5);
+ test(S("abcdeabcde"), SV("abcde"), 5, 5);
+ test(S("abcdeabcde"), SV("abcdeabcde"), 5, S::npos);
+ test(S("abcdeabcde"), SV("abcdeabcdeabcdeabcde"), 5, S::npos);
+ test(S("abcdeabcde"), SV(""), 9, 9);
+ test(S("abcdeabcde"), SV("abcde"), 9, S::npos);
+ test(S("abcdeabcde"), SV("abcdeabcde"), 9, S::npos);
+ test(S("abcdeabcde"), SV("abcdeabcdeabcdeabcde"), 9, S::npos);
+ test(S("abcdeabcde"), SV(""), 10, 10);
+ test(S("abcdeabcde"), SV("abcde"), 10, S::npos);
+ test(S("abcdeabcde"), SV("abcdeabcde"), 10, S::npos);
+ test(S("abcdeabcde"), SV("abcdeabcdeabcdeabcde"), 10, S::npos);
+ test(S("abcdeabcde"), SV(""), 11, S::npos);
+ test(S("abcdeabcde"), SV("abcde"), 11, S::npos);
+ test(S("abcdeabcde"), SV("abcdeabcde"), 11, S::npos);
+ test(S("abcdeabcde"), SV("abcdeabcdeabcdeabcde"), 11, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), SV(""), 0, 0);
+ test(S("abcdeabcdeabcdeabcde"), SV("abcde"), 0, 0);
+ test(S("abcdeabcdeabcdeabcde"), SV("abcdeabcde"), 0, 0);
+ test(S("abcdeabcdeabcdeabcde"), SV("abcdeabcdeabcdeabcde"), 0, 0);
+ test(S("abcdeabcdeabcdeabcde"), SV(""), 1, 1);
+ test(S("abcdeabcdeabcdeabcde"), SV("abcde"), 1, 5);
+ test(S("abcdeabcdeabcdeabcde"), SV("abcdeabcde"), 1, 5);
+ test(S("abcdeabcdeabcdeabcde"), SV("abcdeabcdeabcdeabcde"), 1, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), SV(""), 10, 10);
+ test(S("abcdeabcdeabcdeabcde"), SV("abcde"), 10, 10);
+ test(S("abcdeabcdeabcdeabcde"), SV("abcdeabcde"), 10, 10);
+ test(S("abcdeabcdeabcdeabcde"), SV("abcdeabcdeabcdeabcde"), 10, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), SV(""), 19, 19);
+ test(S("abcdeabcdeabcdeabcde"), SV("abcde"), 19, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), SV("abcdeabcde"), 19, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), SV("abcdeabcdeabcdeabcde"), 19, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), SV(""), 20, 20);
+ test(S("abcdeabcdeabcdeabcde"), SV("abcde"), 20, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), SV("abcdeabcde"), 20, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), SV("abcdeabcdeabcdeabcde"), 20, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), SV(""), 21, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), SV("abcde"), 21, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), SV("abcdeabcde"), 21, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), SV("abcdeabcdeabcdeabcde"), 21, S::npos);
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 void test1()
-{
- test(S(""), SV(""), 0);
- test(S(""), SV("abcde"), S::npos);
- test(S(""), SV("abcdeabcde"), S::npos);
- test(S(""), SV("abcdeabcdeabcdeabcde"), S::npos);
- test(S("abcde"), SV(""), 0);
- test(S("abcde"), SV("abcde"), 0);
- test(S("abcde"), SV("abcdeabcde"), S::npos);
- test(S("abcde"), SV("abcdeabcdeabcdeabcde"), S::npos);
- test(S("abcdeabcde"), SV(""), 0);
- test(S("abcdeabcde"), SV("abcde"), 0);
- test(S("abcdeabcde"), SV("abcdeabcde"), 0);
- test(S("abcdeabcde"), SV("abcdeabcdeabcdeabcde"), S::npos);
- test(S("abcdeabcdeabcdeabcde"), SV(""), 0);
- test(S("abcdeabcdeabcdeabcde"), SV("abcde"), 0);
- test(S("abcdeabcdeabcdeabcde"), SV("abcdeabcde"), 0);
- test(S("abcdeabcdeabcdeabcde"), SV("abcdeabcdeabcdeabcde"), 0);
+TEST_CONSTEXPR_CXX20 void test1() {
+ test(S(""), SV(""), 0);
+ test(S(""), SV("abcde"), S::npos);
+ test(S(""), SV("abcdeabcde"), S::npos);
+ test(S(""), SV("abcdeabcdeabcdeabcde"), S::npos);
+ test(S("abcde"), SV(""), 0);
+ test(S("abcde"), SV("abcde"), 0);
+ test(S("abcde"), SV("abcdeabcde"), S::npos);
+ test(S("abcde"), SV("abcdeabcdeabcdeabcde"), S::npos);
+ test(S("abcdeabcde"), SV(""), 0);
+ test(S("abcdeabcde"), SV("abcde"), 0);
+ test(S("abcdeabcde"), SV("abcdeabcde"), 0);
+ test(S("abcdeabcde"), SV("abcdeabcdeabcdeabcde"), S::npos);
+ test(S("abcdeabcdeabcdeabcde"), SV(""), 0);
+ test(S("abcdeabcdeabcdeabcde"), SV("abcde"), 0);
+ test(S("abcdeabcdeabcdeabcde"), SV("abcdeabcde"), 0);
+ test(S("abcdeabcdeabcdeabcde"), SV("abcdeabcdeabcdeabcde"), 0);
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -161,8 +155,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.ops/string_rfind/char_size.pass.cpp b/libcxx/test/std/strings/basic.string/string.ops/string_rfind/char_size.pass.cpp
index b83fab0a1661da1..a31da1a1dbc9b3c 100644
--- a/libcxx/test/std/strings/basic.string/string.ops/string_rfind/char_size.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.ops/string_rfind/char_size.pass.cpp
@@ -18,23 +18,19 @@
template <class S>
TEST_CONSTEXPR_CXX20 void
-test(const S& s, typename S::value_type c, typename S::size_type pos,
- typename S::size_type x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.rfind(c, pos));
- assert(s.rfind(c, pos) == x);
- if (x != S::npos)
- assert(x <= pos && x + 1 <= s.size());
+test(const S& s, typename S::value_type c, typename S::size_type pos, typename S::size_type x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.rfind(c, pos));
+ assert(s.rfind(c, pos) == x);
+ if (x != S::npos)
+ assert(x <= pos && x + 1 <= s.size());
}
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(const S& s, typename S::value_type c, typename S::size_type x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.rfind(c));
- assert(s.rfind(c) == x);
- if (x != S::npos)
- assert(x + 1 <= s.size());
+TEST_CONSTEXPR_CXX20 void test(const S& s, typename S::value_type c, typename S::size_type x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.rfind(c));
+ assert(s.rfind(c) == x);
+ if (x != S::npos)
+ assert(x + 1 <= s.size());
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -100,8 +96,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.ops/string_rfind/pointer_size.pass.cpp b/libcxx/test/std/strings/basic.string/string.ops/string_rfind/pointer_size.pass.cpp
index e44e02ed98a2b39..30b1ce73380e5d4 100644
--- a/libcxx/test/std/strings/basic.string/string.ops/string_rfind/pointer_size.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.ops/string_rfind/pointer_size.pass.cpp
@@ -18,136 +18,128 @@
template <class S>
TEST_CONSTEXPR_CXX20 void
-test(const S& s, const typename S::value_type* str, typename S::size_type pos,
- typename S::size_type x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.rfind(str, pos));
- assert(s.rfind(str, pos) == x);
- if (x != S::npos)
- {
- typename S::size_type n = S::traits_type::length(str);
- assert(x <= pos && x + n <= s.size());
- }
+test(const S& s, const typename S::value_type* str, typename S::size_type pos, typename S::size_type x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.rfind(str, pos));
+ assert(s.rfind(str, pos) == x);
+ if (x != S::npos) {
+ typename S::size_type n = S::traits_type::length(str);
+ assert(x <= pos && x + n <= s.size());
+ }
}
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(const S& s, const typename S::value_type* str, typename S::size_type x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.rfind(str));
- assert(s.rfind(str) == x);
- if (x != S::npos)
- {
- typename S::size_type pos = s.size();
- typename S::size_type n = S::traits_type::length(str);
- assert(x <= pos && x + n <= s.size());
- }
+TEST_CONSTEXPR_CXX20 void test(const S& s, const typename S::value_type* str, typename S::size_type x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.rfind(str));
+ assert(s.rfind(str) == x);
+ if (x != S::npos) {
+ typename S::size_type pos = s.size();
+ typename S::size_type n = S::traits_type::length(str);
+ assert(x <= pos && x + n <= s.size());
+ }
}
template <class S>
-TEST_CONSTEXPR_CXX20 void test0()
-{
- test(S(""), "", 0, 0);
- test(S(""), "abcde", 0, S::npos);
- test(S(""), "abcdeabcde", 0, S::npos);
- test(S(""), "abcdeabcdeabcdeabcde", 0, S::npos);
- test(S(""), "", 1, 0);
- test(S(""), "abcde", 1, S::npos);
- test(S(""), "abcdeabcde", 1, S::npos);
- test(S(""), "abcdeabcdeabcdeabcde", 1, S::npos);
- test(S("abcde"), "", 0, 0);
- test(S("abcde"), "abcde", 0, 0);
- test(S("abcde"), "abcdeabcde", 0, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 0, S::npos);
- test(S("abcde"), "", 1, 1);
- test(S("abcde"), "abcde", 1, 0);
- test(S("abcde"), "abcdeabcde", 1, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 1, S::npos);
- test(S("abcde"), "", 2, 2);
- test(S("abcde"), "abcde", 2, 0);
- test(S("abcde"), "abcdeabcde", 2, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 2, S::npos);
- test(S("abcde"), "", 4, 4);
- test(S("abcde"), "abcde", 4, 0);
- test(S("abcde"), "abcdeabcde", 4, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 4, S::npos);
- test(S("abcde"), "", 5, 5);
- test(S("abcde"), "abcde", 5, 0);
- test(S("abcde"), "abcdeabcde", 5, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 5, S::npos);
- test(S("abcde"), "", 6, 5);
- test(S("abcde"), "abcde", 6, 0);
- test(S("abcde"), "abcdeabcde", 6, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 6, S::npos);
- test(S("abcdeabcde"), "", 0, 0);
- test(S("abcdeabcde"), "abcde", 0, 0);
- test(S("abcdeabcde"), "abcdeabcde", 0, 0);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 0, S::npos);
- test(S("abcdeabcde"), "", 1, 1);
- test(S("abcdeabcde"), "abcde", 1, 0);
- test(S("abcdeabcde"), "abcdeabcde", 1, 0);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 1, S::npos);
- test(S("abcdeabcde"), "", 5, 5);
- test(S("abcdeabcde"), "abcde", 5, 5);
- test(S("abcdeabcde"), "abcdeabcde", 5, 0);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 5, S::npos);
- test(S("abcdeabcde"), "", 9, 9);
- test(S("abcdeabcde"), "abcde", 9, 5);
- test(S("abcdeabcde"), "abcdeabcde", 9, 0);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 9, S::npos);
- test(S("abcdeabcde"), "", 10, 10);
- test(S("abcdeabcde"), "abcde", 10, 5);
- test(S("abcdeabcde"), "abcdeabcde", 10, 0);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 10, S::npos);
- test(S("abcdeabcde"), "", 11, 10);
- test(S("abcdeabcde"), "abcde", 11, 5);
- test(S("abcdeabcde"), "abcdeabcde", 11, 0);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 11, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "", 0, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 0, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 0, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 0, 0);
- test(S("abcdeabcdeabcdeabcde"), "", 1, 1);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 1, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 1, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 1, 0);
- test(S("abcdeabcdeabcdeabcde"), "", 10, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 10, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 10, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 10, 0);
- test(S("abcdeabcdeabcdeabcde"), "", 19, 19);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 19, 15);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 19, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 19, 0);
- test(S("abcdeabcdeabcdeabcde"), "", 20, 20);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 20, 15);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 20, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 20, 0);
- test(S("abcdeabcdeabcdeabcde"), "", 21, 20);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 21, 15);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 21, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 21, 0);
+TEST_CONSTEXPR_CXX20 void test0() {
+ test(S(""), "", 0, 0);
+ test(S(""), "abcde", 0, S::npos);
+ test(S(""), "abcdeabcde", 0, S::npos);
+ test(S(""), "abcdeabcdeabcdeabcde", 0, S::npos);
+ test(S(""), "", 1, 0);
+ test(S(""), "abcde", 1, S::npos);
+ test(S(""), "abcdeabcde", 1, S::npos);
+ test(S(""), "abcdeabcdeabcdeabcde", 1, S::npos);
+ test(S("abcde"), "", 0, 0);
+ test(S("abcde"), "abcde", 0, 0);
+ test(S("abcde"), "abcdeabcde", 0, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 0, S::npos);
+ test(S("abcde"), "", 1, 1);
+ test(S("abcde"), "abcde", 1, 0);
+ test(S("abcde"), "abcdeabcde", 1, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 1, S::npos);
+ test(S("abcde"), "", 2, 2);
+ test(S("abcde"), "abcde", 2, 0);
+ test(S("abcde"), "abcdeabcde", 2, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 2, S::npos);
+ test(S("abcde"), "", 4, 4);
+ test(S("abcde"), "abcde", 4, 0);
+ test(S("abcde"), "abcdeabcde", 4, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 4, S::npos);
+ test(S("abcde"), "", 5, 5);
+ test(S("abcde"), "abcde", 5, 0);
+ test(S("abcde"), "abcdeabcde", 5, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 5, S::npos);
+ test(S("abcde"), "", 6, 5);
+ test(S("abcde"), "abcde", 6, 0);
+ test(S("abcde"), "abcdeabcde", 6, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 6, S::npos);
+ test(S("abcdeabcde"), "", 0, 0);
+ test(S("abcdeabcde"), "abcde", 0, 0);
+ test(S("abcdeabcde"), "abcdeabcde", 0, 0);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 0, S::npos);
+ test(S("abcdeabcde"), "", 1, 1);
+ test(S("abcdeabcde"), "abcde", 1, 0);
+ test(S("abcdeabcde"), "abcdeabcde", 1, 0);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 1, S::npos);
+ test(S("abcdeabcde"), "", 5, 5);
+ test(S("abcdeabcde"), "abcde", 5, 5);
+ test(S("abcdeabcde"), "abcdeabcde", 5, 0);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 5, S::npos);
+ test(S("abcdeabcde"), "", 9, 9);
+ test(S("abcdeabcde"), "abcde", 9, 5);
+ test(S("abcdeabcde"), "abcdeabcde", 9, 0);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 9, S::npos);
+ test(S("abcdeabcde"), "", 10, 10);
+ test(S("abcdeabcde"), "abcde", 10, 5);
+ test(S("abcdeabcde"), "abcdeabcde", 10, 0);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 10, S::npos);
+ test(S("abcdeabcde"), "", 11, 10);
+ test(S("abcdeabcde"), "abcde", 11, 5);
+ test(S("abcdeabcde"), "abcdeabcde", 11, 0);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 11, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "", 0, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 0, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 0, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 0, 0);
+ test(S("abcdeabcdeabcdeabcde"), "", 1, 1);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 1, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 1, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 1, 0);
+ test(S("abcdeabcdeabcdeabcde"), "", 10, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 10, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 10, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 10, 0);
+ test(S("abcdeabcdeabcdeabcde"), "", 19, 19);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 19, 15);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 19, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 19, 0);
+ test(S("abcdeabcdeabcdeabcde"), "", 20, 20);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 20, 15);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 20, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 20, 0);
+ test(S("abcdeabcdeabcdeabcde"), "", 21, 20);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 21, 15);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 21, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 21, 0);
}
template <class S>
-TEST_CONSTEXPR_CXX20 void test1()
-{
- test(S(""), "", 0);
- test(S(""), "abcde", S::npos);
- test(S(""), "abcdeabcde", S::npos);
- test(S(""), "abcdeabcdeabcdeabcde", S::npos);
- test(S("abcde"), "", 5);
- test(S("abcde"), "abcde", 0);
- test(S("abcde"), "abcdeabcde", S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", S::npos);
- test(S("abcdeabcde"), "", 10);
- test(S("abcdeabcde"), "abcde", 5);
- test(S("abcdeabcde"), "abcdeabcde", 0);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", S::npos);
- test(S("abcdeabcdeabcdeabcde"), "", 20);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 15);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 10);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 0);
+TEST_CONSTEXPR_CXX20 void test1() {
+ test(S(""), "", 0);
+ test(S(""), "abcde", S::npos);
+ test(S(""), "abcdeabcde", S::npos);
+ test(S(""), "abcdeabcdeabcdeabcde", S::npos);
+ test(S("abcde"), "", 5);
+ test(S("abcde"), "abcde", 0);
+ test(S("abcde"), "abcdeabcde", S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", S::npos);
+ test(S("abcdeabcde"), "", 10);
+ test(S("abcdeabcde"), "abcde", 5);
+ test(S("abcdeabcde"), "abcdeabcde", 0);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "", 20);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 15);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 0);
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -167,8 +159,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.ops/string_rfind/pointer_size_size.pass.cpp b/libcxx/test/std/strings/basic.string/string.ops/string_rfind/pointer_size_size.pass.cpp
index 1e40fbc943aeeb1..0c050f7596e0587 100644
--- a/libcxx/test/std/strings/basic.string/string.ops/string_rfind/pointer_size_size.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.ops/string_rfind/pointer_size_size.pass.cpp
@@ -18,353 +18,351 @@
template <class S>
TEST_CONSTEXPR_CXX20 void
-test(const S& s, const typename S::value_type* str, typename S::size_type pos,
- typename S::size_type n, typename S::size_type x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.rfind(str, pos, n));
- assert(s.rfind(str, pos, n) == x);
- if (x != S::npos)
- assert(x <= pos && x + n <= s.size());
+test(const S& s,
+ const typename S::value_type* str,
+ typename S::size_type pos,
+ typename S::size_type n,
+ typename S::size_type x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.rfind(str, pos, n));
+ assert(s.rfind(str, pos, n) == x);
+ if (x != S::npos)
+ assert(x <= pos && x + n <= s.size());
}
template <class S>
-TEST_CONSTEXPR_CXX20 void test0()
-{
- test(S(""), "", 0, 0, 0);
- test(S(""), "abcde", 0, 0, 0);
- test(S(""), "abcde", 0, 1, S::npos);
- test(S(""), "abcde", 0, 2, S::npos);
- test(S(""), "abcde", 0, 4, S::npos);
- test(S(""), "abcde", 0, 5, S::npos);
- test(S(""), "abcdeabcde", 0, 0, 0);
- test(S(""), "abcdeabcde", 0, 1, S::npos);
- test(S(""), "abcdeabcde", 0, 5, S::npos);
- test(S(""), "abcdeabcde", 0, 9, S::npos);
- test(S(""), "abcdeabcde", 0, 10, S::npos);
- test(S(""), "abcdeabcdeabcdeabcde", 0, 0, 0);
- test(S(""), "abcdeabcdeabcdeabcde", 0, 1, S::npos);
- test(S(""), "abcdeabcdeabcdeabcde", 0, 10, S::npos);
- test(S(""), "abcdeabcdeabcdeabcde", 0, 19, S::npos);
- test(S(""), "abcdeabcdeabcdeabcde", 0, 20, S::npos);
- test(S(""), "", 1, 0, 0);
- test(S(""), "abcde", 1, 0, 0);
- test(S(""), "abcde", 1, 1, S::npos);
- test(S(""), "abcde", 1, 2, S::npos);
- test(S(""), "abcde", 1, 4, S::npos);
- test(S(""), "abcde", 1, 5, S::npos);
- test(S(""), "abcdeabcde", 1, 0, 0);
- test(S(""), "abcdeabcde", 1, 1, S::npos);
- test(S(""), "abcdeabcde", 1, 5, S::npos);
- test(S(""), "abcdeabcde", 1, 9, S::npos);
- test(S(""), "abcdeabcde", 1, 10, S::npos);
- test(S(""), "abcdeabcdeabcdeabcde", 1, 0, 0);
- test(S(""), "abcdeabcdeabcdeabcde", 1, 1, S::npos);
- test(S(""), "abcdeabcdeabcdeabcde", 1, 10, S::npos);
- test(S(""), "abcdeabcdeabcdeabcde", 1, 19, S::npos);
- test(S(""), "abcdeabcdeabcdeabcde", 1, 20, S::npos);
- test(S("abcde"), "", 0, 0, 0);
- test(S("abcde"), "abcde", 0, 0, 0);
- test(S("abcde"), "abcde", 0, 1, 0);
- test(S("abcde"), "abcde", 0, 2, 0);
- test(S("abcde"), "abcde", 0, 4, 0);
- test(S("abcde"), "abcde", 0, 5, 0);
- test(S("abcde"), "abcdeabcde", 0, 0, 0);
- test(S("abcde"), "abcdeabcde", 0, 1, 0);
- test(S("abcde"), "abcdeabcde", 0, 5, 0);
- test(S("abcde"), "abcdeabcde", 0, 9, S::npos);
- test(S("abcde"), "abcdeabcde", 0, 10, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 0, 0, 0);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 0, 1, 0);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 0, 10, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 0, 19, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 0, 20, S::npos);
- test(S("abcde"), "", 1, 0, 1);
- test(S("abcde"), "abcde", 1, 0, 1);
- test(S("abcde"), "abcde", 1, 1, 0);
- test(S("abcde"), "abcde", 1, 2, 0);
- test(S("abcde"), "abcde", 1, 4, 0);
- test(S("abcde"), "abcde", 1, 5, 0);
- test(S("abcde"), "abcdeabcde", 1, 0, 1);
- test(S("abcde"), "abcdeabcde", 1, 1, 0);
- test(S("abcde"), "abcdeabcde", 1, 5, 0);
- test(S("abcde"), "abcdeabcde", 1, 9, S::npos);
- test(S("abcde"), "abcdeabcde", 1, 10, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 1, 0, 1);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 1, 1, 0);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 1, 10, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 1, 19, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 1, 20, S::npos);
- test(S("abcde"), "", 2, 0, 2);
- test(S("abcde"), "abcde", 2, 0, 2);
- test(S("abcde"), "abcde", 2, 1, 0);
- test(S("abcde"), "abcde", 2, 2, 0);
- test(S("abcde"), "abcde", 2, 4, 0);
- test(S("abcde"), "abcde", 2, 5, 0);
- test(S("abcde"), "abcdeabcde", 2, 0, 2);
- test(S("abcde"), "abcdeabcde", 2, 1, 0);
- test(S("abcde"), "abcdeabcde", 2, 5, 0);
- test(S("abcde"), "abcdeabcde", 2, 9, S::npos);
- test(S("abcde"), "abcdeabcde", 2, 10, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 2, 0, 2);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 2, 1, 0);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 2, 10, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 2, 19, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 2, 20, S::npos);
- test(S("abcde"), "", 4, 0, 4);
- test(S("abcde"), "abcde", 4, 0, 4);
- test(S("abcde"), "abcde", 4, 1, 0);
- test(S("abcde"), "abcde", 4, 2, 0);
- test(S("abcde"), "abcde", 4, 4, 0);
- test(S("abcde"), "abcde", 4, 5, 0);
- test(S("abcde"), "abcdeabcde", 4, 0, 4);
- test(S("abcde"), "abcdeabcde", 4, 1, 0);
- test(S("abcde"), "abcdeabcde", 4, 5, 0);
- test(S("abcde"), "abcdeabcde", 4, 9, S::npos);
- test(S("abcde"), "abcdeabcde", 4, 10, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 4, 0, 4);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 4, 1, 0);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 4, 10, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 4, 19, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 4, 20, S::npos);
- test(S("abcde"), "", 5, 0, 5);
- test(S("abcde"), "abcde", 5, 0, 5);
- test(S("abcde"), "abcde", 5, 1, 0);
- test(S("abcde"), "abcde", 5, 2, 0);
+TEST_CONSTEXPR_CXX20 void test0() {
+ test(S(""), "", 0, 0, 0);
+ test(S(""), "abcde", 0, 0, 0);
+ test(S(""), "abcde", 0, 1, S::npos);
+ test(S(""), "abcde", 0, 2, S::npos);
+ test(S(""), "abcde", 0, 4, S::npos);
+ test(S(""), "abcde", 0, 5, S::npos);
+ test(S(""), "abcdeabcde", 0, 0, 0);
+ test(S(""), "abcdeabcde", 0, 1, S::npos);
+ test(S(""), "abcdeabcde", 0, 5, S::npos);
+ test(S(""), "abcdeabcde", 0, 9, S::npos);
+ test(S(""), "abcdeabcde", 0, 10, S::npos);
+ test(S(""), "abcdeabcdeabcdeabcde", 0, 0, 0);
+ test(S(""), "abcdeabcdeabcdeabcde", 0, 1, S::npos);
+ test(S(""), "abcdeabcdeabcdeabcde", 0, 10, S::npos);
+ test(S(""), "abcdeabcdeabcdeabcde", 0, 19, S::npos);
+ test(S(""), "abcdeabcdeabcdeabcde", 0, 20, S::npos);
+ test(S(""), "", 1, 0, 0);
+ test(S(""), "abcde", 1, 0, 0);
+ test(S(""), "abcde", 1, 1, S::npos);
+ test(S(""), "abcde", 1, 2, S::npos);
+ test(S(""), "abcde", 1, 4, S::npos);
+ test(S(""), "abcde", 1, 5, S::npos);
+ test(S(""), "abcdeabcde", 1, 0, 0);
+ test(S(""), "abcdeabcde", 1, 1, S::npos);
+ test(S(""), "abcdeabcde", 1, 5, S::npos);
+ test(S(""), "abcdeabcde", 1, 9, S::npos);
+ test(S(""), "abcdeabcde", 1, 10, S::npos);
+ test(S(""), "abcdeabcdeabcdeabcde", 1, 0, 0);
+ test(S(""), "abcdeabcdeabcdeabcde", 1, 1, S::npos);
+ test(S(""), "abcdeabcdeabcdeabcde", 1, 10, S::npos);
+ test(S(""), "abcdeabcdeabcdeabcde", 1, 19, S::npos);
+ test(S(""), "abcdeabcdeabcdeabcde", 1, 20, S::npos);
+ test(S("abcde"), "", 0, 0, 0);
+ test(S("abcde"), "abcde", 0, 0, 0);
+ test(S("abcde"), "abcde", 0, 1, 0);
+ test(S("abcde"), "abcde", 0, 2, 0);
+ test(S("abcde"), "abcde", 0, 4, 0);
+ test(S("abcde"), "abcde", 0, 5, 0);
+ test(S("abcde"), "abcdeabcde", 0, 0, 0);
+ test(S("abcde"), "abcdeabcde", 0, 1, 0);
+ test(S("abcde"), "abcdeabcde", 0, 5, 0);
+ test(S("abcde"), "abcdeabcde", 0, 9, S::npos);
+ test(S("abcde"), "abcdeabcde", 0, 10, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 0, 0, 0);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 0, 1, 0);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 0, 10, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 0, 19, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 0, 20, S::npos);
+ test(S("abcde"), "", 1, 0, 1);
+ test(S("abcde"), "abcde", 1, 0, 1);
+ test(S("abcde"), "abcde", 1, 1, 0);
+ test(S("abcde"), "abcde", 1, 2, 0);
+ test(S("abcde"), "abcde", 1, 4, 0);
+ test(S("abcde"), "abcde", 1, 5, 0);
+ test(S("abcde"), "abcdeabcde", 1, 0, 1);
+ test(S("abcde"), "abcdeabcde", 1, 1, 0);
+ test(S("abcde"), "abcdeabcde", 1, 5, 0);
+ test(S("abcde"), "abcdeabcde", 1, 9, S::npos);
+ test(S("abcde"), "abcdeabcde", 1, 10, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 1, 0, 1);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 1, 1, 0);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 1, 10, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 1, 19, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 1, 20, S::npos);
+ test(S("abcde"), "", 2, 0, 2);
+ test(S("abcde"), "abcde", 2, 0, 2);
+ test(S("abcde"), "abcde", 2, 1, 0);
+ test(S("abcde"), "abcde", 2, 2, 0);
+ test(S("abcde"), "abcde", 2, 4, 0);
+ test(S("abcde"), "abcde", 2, 5, 0);
+ test(S("abcde"), "abcdeabcde", 2, 0, 2);
+ test(S("abcde"), "abcdeabcde", 2, 1, 0);
+ test(S("abcde"), "abcdeabcde", 2, 5, 0);
+ test(S("abcde"), "abcdeabcde", 2, 9, S::npos);
+ test(S("abcde"), "abcdeabcde", 2, 10, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 2, 0, 2);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 2, 1, 0);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 2, 10, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 2, 19, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 2, 20, S::npos);
+ test(S("abcde"), "", 4, 0, 4);
+ test(S("abcde"), "abcde", 4, 0, 4);
+ test(S("abcde"), "abcde", 4, 1, 0);
+ test(S("abcde"), "abcde", 4, 2, 0);
+ test(S("abcde"), "abcde", 4, 4, 0);
+ test(S("abcde"), "abcde", 4, 5, 0);
+ test(S("abcde"), "abcdeabcde", 4, 0, 4);
+ test(S("abcde"), "abcdeabcde", 4, 1, 0);
+ test(S("abcde"), "abcdeabcde", 4, 5, 0);
+ test(S("abcde"), "abcdeabcde", 4, 9, S::npos);
+ test(S("abcde"), "abcdeabcde", 4, 10, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 4, 0, 4);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 4, 1, 0);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 4, 10, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 4, 19, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 4, 20, S::npos);
+ test(S("abcde"), "", 5, 0, 5);
+ test(S("abcde"), "abcde", 5, 0, 5);
+ test(S("abcde"), "abcde", 5, 1, 0);
+ test(S("abcde"), "abcde", 5, 2, 0);
}
template <class S>
-TEST_CONSTEXPR_CXX20 void test1()
-{
- test(S("abcde"), "abcde", 5, 4, 0);
- test(S("abcde"), "abcde", 5, 5, 0);
- test(S("abcde"), "abcdeabcde", 5, 0, 5);
- test(S("abcde"), "abcdeabcde", 5, 1, 0);
- test(S("abcde"), "abcdeabcde", 5, 5, 0);
- test(S("abcde"), "abcdeabcde", 5, 9, S::npos);
- test(S("abcde"), "abcdeabcde", 5, 10, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 5, 0, 5);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 5, 1, 0);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 5, 10, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 5, 19, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 5, 20, S::npos);
- test(S("abcde"), "", 6, 0, 5);
- test(S("abcde"), "abcde", 6, 0, 5);
- test(S("abcde"), "abcde", 6, 1, 0);
- test(S("abcde"), "abcde", 6, 2, 0);
- test(S("abcde"), "abcde", 6, 4, 0);
- test(S("abcde"), "abcde", 6, 5, 0);
- test(S("abcde"), "abcdeabcde", 6, 0, 5);
- test(S("abcde"), "abcdeabcde", 6, 1, 0);
- test(S("abcde"), "abcdeabcde", 6, 5, 0);
- test(S("abcde"), "abcdeabcde", 6, 9, S::npos);
- test(S("abcde"), "abcdeabcde", 6, 10, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 6, 0, 5);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 6, 1, 0);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 6, 10, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 6, 19, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 6, 20, S::npos);
- test(S("abcdeabcde"), "", 0, 0, 0);
- test(S("abcdeabcde"), "abcde", 0, 0, 0);
- test(S("abcdeabcde"), "abcde", 0, 1, 0);
- test(S("abcdeabcde"), "abcde", 0, 2, 0);
- test(S("abcdeabcde"), "abcde", 0, 4, 0);
- test(S("abcdeabcde"), "abcde", 0, 5, 0);
- test(S("abcdeabcde"), "abcdeabcde", 0, 0, 0);
- test(S("abcdeabcde"), "abcdeabcde", 0, 1, 0);
- test(S("abcdeabcde"), "abcdeabcde", 0, 5, 0);
- test(S("abcdeabcde"), "abcdeabcde", 0, 9, 0);
- test(S("abcdeabcde"), "abcdeabcde", 0, 10, 0);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 0, 0, 0);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 0, 1, 0);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 0, 10, 0);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 0, 19, S::npos);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 0, 20, S::npos);
- test(S("abcdeabcde"), "", 1, 0, 1);
- test(S("abcdeabcde"), "abcde", 1, 0, 1);
- test(S("abcdeabcde"), "abcde", 1, 1, 0);
- test(S("abcdeabcde"), "abcde", 1, 2, 0);
- test(S("abcdeabcde"), "abcde", 1, 4, 0);
- test(S("abcdeabcde"), "abcde", 1, 5, 0);
- test(S("abcdeabcde"), "abcdeabcde", 1, 0, 1);
- test(S("abcdeabcde"), "abcdeabcde", 1, 1, 0);
- test(S("abcdeabcde"), "abcdeabcde", 1, 5, 0);
- test(S("abcdeabcde"), "abcdeabcde", 1, 9, 0);
- test(S("abcdeabcde"), "abcdeabcde", 1, 10, 0);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 1, 0, 1);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 1, 1, 0);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 1, 10, 0);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 1, 19, S::npos);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 1, 20, S::npos);
- test(S("abcdeabcde"), "", 5, 0, 5);
- test(S("abcdeabcde"), "abcde", 5, 0, 5);
- test(S("abcdeabcde"), "abcde", 5, 1, 5);
- test(S("abcdeabcde"), "abcde", 5, 2, 5);
- test(S("abcdeabcde"), "abcde", 5, 4, 5);
- test(S("abcdeabcde"), "abcde", 5, 5, 5);
- test(S("abcdeabcde"), "abcdeabcde", 5, 0, 5);
- test(S("abcdeabcde"), "abcdeabcde", 5, 1, 5);
- test(S("abcdeabcde"), "abcdeabcde", 5, 5, 5);
- test(S("abcdeabcde"), "abcdeabcde", 5, 9, 0);
- test(S("abcdeabcde"), "abcdeabcde", 5, 10, 0);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 5, 0, 5);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 5, 1, 5);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 5, 10, 0);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 5, 19, S::npos);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 5, 20, S::npos);
- test(S("abcdeabcde"), "", 9, 0, 9);
- test(S("abcdeabcde"), "abcde", 9, 0, 9);
- test(S("abcdeabcde"), "abcde", 9, 1, 5);
- test(S("abcdeabcde"), "abcde", 9, 2, 5);
- test(S("abcdeabcde"), "abcde", 9, 4, 5);
- test(S("abcdeabcde"), "abcde", 9, 5, 5);
- test(S("abcdeabcde"), "abcdeabcde", 9, 0, 9);
- test(S("abcdeabcde"), "abcdeabcde", 9, 1, 5);
- test(S("abcdeabcde"), "abcdeabcde", 9, 5, 5);
- test(S("abcdeabcde"), "abcdeabcde", 9, 9, 0);
- test(S("abcdeabcde"), "abcdeabcde", 9, 10, 0);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 9, 0, 9);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 9, 1, 5);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 9, 10, 0);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 9, 19, S::npos);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 9, 20, S::npos);
- test(S("abcdeabcde"), "", 10, 0, 10);
- test(S("abcdeabcde"), "abcde", 10, 0, 10);
- test(S("abcdeabcde"), "abcde", 10, 1, 5);
- test(S("abcdeabcde"), "abcde", 10, 2, 5);
- test(S("abcdeabcde"), "abcde", 10, 4, 5);
- test(S("abcdeabcde"), "abcde", 10, 5, 5);
- test(S("abcdeabcde"), "abcdeabcde", 10, 0, 10);
- test(S("abcdeabcde"), "abcdeabcde", 10, 1, 5);
+TEST_CONSTEXPR_CXX20 void test1() {
+ test(S("abcde"), "abcde", 5, 4, 0);
+ test(S("abcde"), "abcde", 5, 5, 0);
+ test(S("abcde"), "abcdeabcde", 5, 0, 5);
+ test(S("abcde"), "abcdeabcde", 5, 1, 0);
+ test(S("abcde"), "abcdeabcde", 5, 5, 0);
+ test(S("abcde"), "abcdeabcde", 5, 9, S::npos);
+ test(S("abcde"), "abcdeabcde", 5, 10, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 5, 0, 5);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 5, 1, 0);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 5, 10, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 5, 19, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 5, 20, S::npos);
+ test(S("abcde"), "", 6, 0, 5);
+ test(S("abcde"), "abcde", 6, 0, 5);
+ test(S("abcde"), "abcde", 6, 1, 0);
+ test(S("abcde"), "abcde", 6, 2, 0);
+ test(S("abcde"), "abcde", 6, 4, 0);
+ test(S("abcde"), "abcde", 6, 5, 0);
+ test(S("abcde"), "abcdeabcde", 6, 0, 5);
+ test(S("abcde"), "abcdeabcde", 6, 1, 0);
+ test(S("abcde"), "abcdeabcde", 6, 5, 0);
+ test(S("abcde"), "abcdeabcde", 6, 9, S::npos);
+ test(S("abcde"), "abcdeabcde", 6, 10, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 6, 0, 5);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 6, 1, 0);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 6, 10, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 6, 19, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 6, 20, S::npos);
+ test(S("abcdeabcde"), "", 0, 0, 0);
+ test(S("abcdeabcde"), "abcde", 0, 0, 0);
+ test(S("abcdeabcde"), "abcde", 0, 1, 0);
+ test(S("abcdeabcde"), "abcde", 0, 2, 0);
+ test(S("abcdeabcde"), "abcde", 0, 4, 0);
+ test(S("abcdeabcde"), "abcde", 0, 5, 0);
+ test(S("abcdeabcde"), "abcdeabcde", 0, 0, 0);
+ test(S("abcdeabcde"), "abcdeabcde", 0, 1, 0);
+ test(S("abcdeabcde"), "abcdeabcde", 0, 5, 0);
+ test(S("abcdeabcde"), "abcdeabcde", 0, 9, 0);
+ test(S("abcdeabcde"), "abcdeabcde", 0, 10, 0);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 0, 0, 0);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 0, 1, 0);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 0, 10, 0);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 0, 19, S::npos);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 0, 20, S::npos);
+ test(S("abcdeabcde"), "", 1, 0, 1);
+ test(S("abcdeabcde"), "abcde", 1, 0, 1);
+ test(S("abcdeabcde"), "abcde", 1, 1, 0);
+ test(S("abcdeabcde"), "abcde", 1, 2, 0);
+ test(S("abcdeabcde"), "abcde", 1, 4, 0);
+ test(S("abcdeabcde"), "abcde", 1, 5, 0);
+ test(S("abcdeabcde"), "abcdeabcde", 1, 0, 1);
+ test(S("abcdeabcde"), "abcdeabcde", 1, 1, 0);
+ test(S("abcdeabcde"), "abcdeabcde", 1, 5, 0);
+ test(S("abcdeabcde"), "abcdeabcde", 1, 9, 0);
+ test(S("abcdeabcde"), "abcdeabcde", 1, 10, 0);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 1, 0, 1);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 1, 1, 0);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 1, 10, 0);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 1, 19, S::npos);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 1, 20, S::npos);
+ test(S("abcdeabcde"), "", 5, 0, 5);
+ test(S("abcdeabcde"), "abcde", 5, 0, 5);
+ test(S("abcdeabcde"), "abcde", 5, 1, 5);
+ test(S("abcdeabcde"), "abcde", 5, 2, 5);
+ test(S("abcdeabcde"), "abcde", 5, 4, 5);
+ test(S("abcdeabcde"), "abcde", 5, 5, 5);
+ test(S("abcdeabcde"), "abcdeabcde", 5, 0, 5);
+ test(S("abcdeabcde"), "abcdeabcde", 5, 1, 5);
+ test(S("abcdeabcde"), "abcdeabcde", 5, 5, 5);
+ test(S("abcdeabcde"), "abcdeabcde", 5, 9, 0);
+ test(S("abcdeabcde"), "abcdeabcde", 5, 10, 0);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 5, 0, 5);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 5, 1, 5);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 5, 10, 0);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 5, 19, S::npos);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 5, 20, S::npos);
+ test(S("abcdeabcde"), "", 9, 0, 9);
+ test(S("abcdeabcde"), "abcde", 9, 0, 9);
+ test(S("abcdeabcde"), "abcde", 9, 1, 5);
+ test(S("abcdeabcde"), "abcde", 9, 2, 5);
+ test(S("abcdeabcde"), "abcde", 9, 4, 5);
+ test(S("abcdeabcde"), "abcde", 9, 5, 5);
+ test(S("abcdeabcde"), "abcdeabcde", 9, 0, 9);
+ test(S("abcdeabcde"), "abcdeabcde", 9, 1, 5);
+ test(S("abcdeabcde"), "abcdeabcde", 9, 5, 5);
+ test(S("abcdeabcde"), "abcdeabcde", 9, 9, 0);
+ test(S("abcdeabcde"), "abcdeabcde", 9, 10, 0);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 9, 0, 9);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 9, 1, 5);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 9, 10, 0);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 9, 19, S::npos);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 9, 20, S::npos);
+ test(S("abcdeabcde"), "", 10, 0, 10);
+ test(S("abcdeabcde"), "abcde", 10, 0, 10);
+ test(S("abcdeabcde"), "abcde", 10, 1, 5);
+ test(S("abcdeabcde"), "abcde", 10, 2, 5);
+ test(S("abcdeabcde"), "abcde", 10, 4, 5);
+ test(S("abcdeabcde"), "abcde", 10, 5, 5);
+ test(S("abcdeabcde"), "abcdeabcde", 10, 0, 10);
+ test(S("abcdeabcde"), "abcdeabcde", 10, 1, 5);
}
template <class S>
-TEST_CONSTEXPR_CXX20 void test2()
-{
- test(S("abcdeabcde"), "abcdeabcde", 10, 5, 5);
- test(S("abcdeabcde"), "abcdeabcde", 10, 9, 0);
- test(S("abcdeabcde"), "abcdeabcde", 10, 10, 0);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 10, 0, 10);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 10, 1, 5);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 10, 10, 0);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 10, 19, S::npos);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 10, 20, S::npos);
- test(S("abcdeabcde"), "", 11, 0, 10);
- test(S("abcdeabcde"), "abcde", 11, 0, 10);
- test(S("abcdeabcde"), "abcde", 11, 1, 5);
- test(S("abcdeabcde"), "abcde", 11, 2, 5);
- test(S("abcdeabcde"), "abcde", 11, 4, 5);
- test(S("abcdeabcde"), "abcde", 11, 5, 5);
- test(S("abcdeabcde"), "abcdeabcde", 11, 0, 10);
- test(S("abcdeabcde"), "abcdeabcde", 11, 1, 5);
- test(S("abcdeabcde"), "abcdeabcde", 11, 5, 5);
- test(S("abcdeabcde"), "abcdeabcde", 11, 9, 0);
- test(S("abcdeabcde"), "abcdeabcde", 11, 10, 0);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 11, 0, 10);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 11, 1, 5);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 11, 10, 0);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 11, 19, S::npos);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 11, 20, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "", 0, 0, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 0, 0, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 0, 1, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 0, 2, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 0, 4, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 0, 5, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 0, 0, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 0, 1, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 0, 5, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 0, 9, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 0, 10, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 0, 0, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 0, 1, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 0, 10, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 0, 19, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 0, 20, 0);
- test(S("abcdeabcdeabcdeabcde"), "", 1, 0, 1);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 1, 0, 1);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 1, 1, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 1, 2, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 1, 4, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 1, 5, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 1, 0, 1);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 1, 1, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 1, 5, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 1, 9, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 1, 10, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 1, 0, 1);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 1, 1, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 1, 10, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 1, 19, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 1, 20, 0);
- test(S("abcdeabcdeabcdeabcde"), "", 10, 0, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 10, 0, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 10, 1, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 10, 2, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 10, 4, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 10, 5, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 10, 0, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 10, 1, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 10, 5, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 10, 9, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 10, 10, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 10, 0, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 10, 1, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 10, 10, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 10, 19, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 10, 20, 0);
- test(S("abcdeabcdeabcdeabcde"), "", 19, 0, 19);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 19, 0, 19);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 19, 1, 15);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 19, 2, 15);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 19, 4, 15);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 19, 5, 15);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 19, 0, 19);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 19, 1, 15);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 19, 5, 15);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 19, 9, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 19, 10, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 19, 0, 19);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 19, 1, 15);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 19, 10, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 19, 19, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 19, 20, 0);
- test(S("abcdeabcdeabcdeabcde"), "", 20, 0, 20);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 20, 0, 20);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 20, 1, 15);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 20, 2, 15);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 20, 4, 15);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 20, 5, 15);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 20, 0, 20);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 20, 1, 15);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 20, 5, 15);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 20, 9, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 20, 10, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 20, 0, 20);
+TEST_CONSTEXPR_CXX20 void test2() {
+ test(S("abcdeabcde"), "abcdeabcde", 10, 5, 5);
+ test(S("abcdeabcde"), "abcdeabcde", 10, 9, 0);
+ test(S("abcdeabcde"), "abcdeabcde", 10, 10, 0);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 10, 0, 10);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 10, 1, 5);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 10, 10, 0);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 10, 19, S::npos);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 10, 20, S::npos);
+ test(S("abcdeabcde"), "", 11, 0, 10);
+ test(S("abcdeabcde"), "abcde", 11, 0, 10);
+ test(S("abcdeabcde"), "abcde", 11, 1, 5);
+ test(S("abcdeabcde"), "abcde", 11, 2, 5);
+ test(S("abcdeabcde"), "abcde", 11, 4, 5);
+ test(S("abcdeabcde"), "abcde", 11, 5, 5);
+ test(S("abcdeabcde"), "abcdeabcde", 11, 0, 10);
+ test(S("abcdeabcde"), "abcdeabcde", 11, 1, 5);
+ test(S("abcdeabcde"), "abcdeabcde", 11, 5, 5);
+ test(S("abcdeabcde"), "abcdeabcde", 11, 9, 0);
+ test(S("abcdeabcde"), "abcdeabcde", 11, 10, 0);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 11, 0, 10);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 11, 1, 5);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 11, 10, 0);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 11, 19, S::npos);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 11, 20, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "", 0, 0, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 0, 0, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 0, 1, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 0, 2, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 0, 4, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 0, 5, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 0, 0, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 0, 1, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 0, 5, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 0, 9, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 0, 10, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 0, 0, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 0, 1, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 0, 10, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 0, 19, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 0, 20, 0);
+ test(S("abcdeabcdeabcdeabcde"), "", 1, 0, 1);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 1, 0, 1);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 1, 1, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 1, 2, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 1, 4, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 1, 5, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 1, 0, 1);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 1, 1, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 1, 5, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 1, 9, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 1, 10, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 1, 0, 1);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 1, 1, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 1, 10, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 1, 19, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 1, 20, 0);
+ test(S("abcdeabcdeabcdeabcde"), "", 10, 0, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 10, 0, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 10, 1, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 10, 2, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 10, 4, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 10, 5, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 10, 0, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 10, 1, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 10, 5, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 10, 9, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 10, 10, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 10, 0, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 10, 1, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 10, 10, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 10, 19, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 10, 20, 0);
+ test(S("abcdeabcdeabcdeabcde"), "", 19, 0, 19);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 19, 0, 19);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 19, 1, 15);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 19, 2, 15);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 19, 4, 15);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 19, 5, 15);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 19, 0, 19);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 19, 1, 15);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 19, 5, 15);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 19, 9, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 19, 10, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 19, 0, 19);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 19, 1, 15);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 19, 10, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 19, 19, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 19, 20, 0);
+ test(S("abcdeabcdeabcdeabcde"), "", 20, 0, 20);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 20, 0, 20);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 20, 1, 15);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 20, 2, 15);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 20, 4, 15);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 20, 5, 15);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 20, 0, 20);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 20, 1, 15);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 20, 5, 15);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 20, 9, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 20, 10, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 20, 0, 20);
}
template <class S>
-TEST_CONSTEXPR_CXX20 void test3()
-{
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 20, 1, 15);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 20, 10, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 20, 19, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 20, 20, 0);
- test(S("abcdeabcdeabcdeabcde"), "", 21, 0, 20);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 21, 0, 20);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 21, 1, 15);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 21, 2, 15);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 21, 4, 15);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 21, 5, 15);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 21, 0, 20);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 21, 1, 15);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 21, 5, 15);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 21, 9, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 21, 10, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 21, 0, 20);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 21, 1, 15);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 21, 10, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 21, 19, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 21, 20, 0);
+TEST_CONSTEXPR_CXX20 void test3() {
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 20, 1, 15);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 20, 10, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 20, 19, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 20, 20, 0);
+ test(S("abcdeabcdeabcdeabcde"), "", 21, 0, 20);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 21, 0, 20);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 21, 1, 15);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 21, 2, 15);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 21, 4, 15);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 21, 5, 15);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 21, 0, 20);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 21, 1, 15);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 21, 5, 15);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 21, 9, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 21, 10, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 21, 0, 20);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 21, 1, 15);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 21, 10, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 21, 19, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 21, 20, 0);
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -388,8 +386,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.ops/string_rfind/string_size.pass.cpp b/libcxx/test/std/strings/basic.string/string.ops/string_rfind/string_size.pass.cpp
index 45d8a24b9738826..576f908655d6d70 100644
--- a/libcxx/test/std/strings/basic.string/string.ops/string_rfind/string_size.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.ops/string_rfind/string_size.pass.cpp
@@ -17,129 +17,123 @@
#include "min_allocator.h"
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(const S& s, const S& str, typename S::size_type pos, typename S::size_type x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.rfind(str, pos));
- assert(s.rfind(str, pos) == x);
- if (x != S::npos)
- assert(x <= pos && x + str.size() <= s.size());
+TEST_CONSTEXPR_CXX20 void test(const S& s, const S& str, typename S::size_type pos, typename S::size_type x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.rfind(str, pos));
+ assert(s.rfind(str, pos) == x);
+ if (x != S::npos)
+ assert(x <= pos && x + str.size() <= s.size());
}
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(const S& s, const S& str, typename S::size_type x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.rfind(str));
- assert(s.rfind(str) == x);
- if (x != S::npos)
- assert(0 <= x && x + str.size() <= s.size());
+TEST_CONSTEXPR_CXX20 void test(const S& s, const S& str, typename S::size_type x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.rfind(str));
+ assert(s.rfind(str) == x);
+ if (x != S::npos)
+ assert(0 <= x && x + str.size() <= s.size());
}
template <class S>
-TEST_CONSTEXPR_CXX20 void test0()
-{
- test(S(""), S(""), 0, 0);
- test(S(""), S("abcde"), 0, S::npos);
- test(S(""), S("abcdeabcde"), 0, S::npos);
- test(S(""), S("abcdeabcdeabcdeabcde"), 0, S::npos);
- test(S(""), S(""), 1, 0);
- test(S(""), S("abcde"), 1, S::npos);
- test(S(""), S("abcdeabcde"), 1, S::npos);
- test(S(""), S("abcdeabcdeabcdeabcde"), 1, S::npos);
- test(S("abcde"), S(""), 0, 0);
- test(S("abcde"), S("abcde"), 0, 0);
- test(S("abcde"), S("abcdeabcde"), 0, S::npos);
- test(S("abcde"), S("abcdeabcdeabcdeabcde"), 0, S::npos);
- test(S("abcde"), S(""), 1, 1);
- test(S("abcde"), S("abcde"), 1, 0);
- test(S("abcde"), S("abcdeabcde"), 1, S::npos);
- test(S("abcde"), S("abcdeabcdeabcdeabcde"), 1, S::npos);
- test(S("abcde"), S(""), 2, 2);
- test(S("abcde"), S("abcde"), 2, 0);
- test(S("abcde"), S("abcdeabcde"), 2, S::npos);
- test(S("abcde"), S("abcdeabcdeabcdeabcde"), 2, S::npos);
- test(S("abcde"), S(""), 4, 4);
- test(S("abcde"), S("abcde"), 4, 0);
- test(S("abcde"), S("abcdeabcde"), 4, S::npos);
- test(S("abcde"), S("abcdeabcdeabcdeabcde"), 4, S::npos);
- test(S("abcde"), S(""), 5, 5);
- test(S("abcde"), S("abcde"), 5, 0);
- test(S("abcde"), S("abcdeabcde"), 5, S::npos);
- test(S("abcde"), S("abcdeabcdeabcdeabcde"), 5, S::npos);
- test(S("abcde"), S(""), 6, 5);
- test(S("abcde"), S("abcde"), 6, 0);
- test(S("abcde"), S("abcdeabcde"), 6, S::npos);
- test(S("abcde"), S("abcdeabcdeabcdeabcde"), 6, S::npos);
- test(S("abcdeabcde"), S(""), 0, 0);
- test(S("abcdeabcde"), S("abcde"), 0, 0);
- test(S("abcdeabcde"), S("abcdeabcde"), 0, 0);
- test(S("abcdeabcde"), S("abcdeabcdeabcdeabcde"), 0, S::npos);
- test(S("abcdeabcde"), S(""), 1, 1);
- test(S("abcdeabcde"), S("abcde"), 1, 0);
- test(S("abcdeabcde"), S("abcdeabcde"), 1, 0);
- test(S("abcdeabcde"), S("abcdeabcdeabcdeabcde"), 1, S::npos);
- test(S("abcdeabcde"), S(""), 5, 5);
- test(S("abcdeabcde"), S("abcde"), 5, 5);
- test(S("abcdeabcde"), S("abcdeabcde"), 5, 0);
- test(S("abcdeabcde"), S("abcdeabcdeabcdeabcde"), 5, S::npos);
- test(S("abcdeabcde"), S(""), 9, 9);
- test(S("abcdeabcde"), S("abcde"), 9, 5);
- test(S("abcdeabcde"), S("abcdeabcde"), 9, 0);
- test(S("abcdeabcde"), S("abcdeabcdeabcdeabcde"), 9, S::npos);
- test(S("abcdeabcde"), S(""), 10, 10);
- test(S("abcdeabcde"), S("abcde"), 10, 5);
- test(S("abcdeabcde"), S("abcdeabcde"), 10, 0);
- test(S("abcdeabcde"), S("abcdeabcdeabcdeabcde"), 10, S::npos);
- test(S("abcdeabcde"), S(""), 11, 10);
- test(S("abcdeabcde"), S("abcde"), 11, 5);
- test(S("abcdeabcde"), S("abcdeabcde"), 11, 0);
- test(S("abcdeabcde"), S("abcdeabcdeabcdeabcde"), 11, S::npos);
- test(S("abcdeabcdeabcdeabcde"), S(""), 0, 0);
- test(S("abcdeabcdeabcdeabcde"), S("abcde"), 0, 0);
- test(S("abcdeabcdeabcdeabcde"), S("abcdeabcde"), 0, 0);
- test(S("abcdeabcdeabcdeabcde"), S("abcdeabcdeabcdeabcde"), 0, 0);
- test(S("abcdeabcdeabcdeabcde"), S(""), 1, 1);
- test(S("abcdeabcdeabcdeabcde"), S("abcde"), 1, 0);
- test(S("abcdeabcdeabcdeabcde"), S("abcdeabcde"), 1, 0);
- test(S("abcdeabcdeabcdeabcde"), S("abcdeabcdeabcdeabcde"), 1, 0);
- test(S("abcdeabcdeabcdeabcde"), S(""), 10, 10);
- test(S("abcdeabcdeabcdeabcde"), S("abcde"), 10, 10);
- test(S("abcdeabcdeabcdeabcde"), S("abcdeabcde"), 10, 10);
- test(S("abcdeabcdeabcdeabcde"), S("abcdeabcdeabcdeabcde"), 10, 0);
- test(S("abcdeabcdeabcdeabcde"), S(""), 19, 19);
- test(S("abcdeabcdeabcdeabcde"), S("abcde"), 19, 15);
- test(S("abcdeabcdeabcdeabcde"), S("abcdeabcde"), 19, 10);
- test(S("abcdeabcdeabcdeabcde"), S("abcdeabcdeabcdeabcde"), 19, 0);
- test(S("abcdeabcdeabcdeabcde"), S(""), 20, 20);
- test(S("abcdeabcdeabcdeabcde"), S("abcde"), 20, 15);
- test(S("abcdeabcdeabcdeabcde"), S("abcdeabcde"), 20, 10);
- test(S("abcdeabcdeabcdeabcde"), S("abcdeabcdeabcdeabcde"), 20, 0);
- test(S("abcdeabcdeabcdeabcde"), S(""), 21, 20);
- test(S("abcdeabcdeabcdeabcde"), S("abcde"), 21, 15);
- test(S("abcdeabcdeabcdeabcde"), S("abcdeabcde"), 21, 10);
- test(S("abcdeabcdeabcdeabcde"), S("abcdeabcdeabcdeabcde"), 21, 0);
+TEST_CONSTEXPR_CXX20 void test0() {
+ test(S(""), S(""), 0, 0);
+ test(S(""), S("abcde"), 0, S::npos);
+ test(S(""), S("abcdeabcde"), 0, S::npos);
+ test(S(""), S("abcdeabcdeabcdeabcde"), 0, S::npos);
+ test(S(""), S(""), 1, 0);
+ test(S(""), S("abcde"), 1, S::npos);
+ test(S(""), S("abcdeabcde"), 1, S::npos);
+ test(S(""), S("abcdeabcdeabcdeabcde"), 1, S::npos);
+ test(S("abcde"), S(""), 0, 0);
+ test(S("abcde"), S("abcde"), 0, 0);
+ test(S("abcde"), S("abcdeabcde"), 0, S::npos);
+ test(S("abcde"), S("abcdeabcdeabcdeabcde"), 0, S::npos);
+ test(S("abcde"), S(""), 1, 1);
+ test(S("abcde"), S("abcde"), 1, 0);
+ test(S("abcde"), S("abcdeabcde"), 1, S::npos);
+ test(S("abcde"), S("abcdeabcdeabcdeabcde"), 1, S::npos);
+ test(S("abcde"), S(""), 2, 2);
+ test(S("abcde"), S("abcde"), 2, 0);
+ test(S("abcde"), S("abcdeabcde"), 2, S::npos);
+ test(S("abcde"), S("abcdeabcdeabcdeabcde"), 2, S::npos);
+ test(S("abcde"), S(""), 4, 4);
+ test(S("abcde"), S("abcde"), 4, 0);
+ test(S("abcde"), S("abcdeabcde"), 4, S::npos);
+ test(S("abcde"), S("abcdeabcdeabcdeabcde"), 4, S::npos);
+ test(S("abcde"), S(""), 5, 5);
+ test(S("abcde"), S("abcde"), 5, 0);
+ test(S("abcde"), S("abcdeabcde"), 5, S::npos);
+ test(S("abcde"), S("abcdeabcdeabcdeabcde"), 5, S::npos);
+ test(S("abcde"), S(""), 6, 5);
+ test(S("abcde"), S("abcde"), 6, 0);
+ test(S("abcde"), S("abcdeabcde"), 6, S::npos);
+ test(S("abcde"), S("abcdeabcdeabcdeabcde"), 6, S::npos);
+ test(S("abcdeabcde"), S(""), 0, 0);
+ test(S("abcdeabcde"), S("abcde"), 0, 0);
+ test(S("abcdeabcde"), S("abcdeabcde"), 0, 0);
+ test(S("abcdeabcde"), S("abcdeabcdeabcdeabcde"), 0, S::npos);
+ test(S("abcdeabcde"), S(""), 1, 1);
+ test(S("abcdeabcde"), S("abcde"), 1, 0);
+ test(S("abcdeabcde"), S("abcdeabcde"), 1, 0);
+ test(S("abcdeabcde"), S("abcdeabcdeabcdeabcde"), 1, S::npos);
+ test(S("abcdeabcde"), S(""), 5, 5);
+ test(S("abcdeabcde"), S("abcde"), 5, 5);
+ test(S("abcdeabcde"), S("abcdeabcde"), 5, 0);
+ test(S("abcdeabcde"), S("abcdeabcdeabcdeabcde"), 5, S::npos);
+ test(S("abcdeabcde"), S(""), 9, 9);
+ test(S("abcdeabcde"), S("abcde"), 9, 5);
+ test(S("abcdeabcde"), S("abcdeabcde"), 9, 0);
+ test(S("abcdeabcde"), S("abcdeabcdeabcdeabcde"), 9, S::npos);
+ test(S("abcdeabcde"), S(""), 10, 10);
+ test(S("abcdeabcde"), S("abcde"), 10, 5);
+ test(S("abcdeabcde"), S("abcdeabcde"), 10, 0);
+ test(S("abcdeabcde"), S("abcdeabcdeabcdeabcde"), 10, S::npos);
+ test(S("abcdeabcde"), S(""), 11, 10);
+ test(S("abcdeabcde"), S("abcde"), 11, 5);
+ test(S("abcdeabcde"), S("abcdeabcde"), 11, 0);
+ test(S("abcdeabcde"), S("abcdeabcdeabcdeabcde"), 11, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), S(""), 0, 0);
+ test(S("abcdeabcdeabcdeabcde"), S("abcde"), 0, 0);
+ test(S("abcdeabcdeabcdeabcde"), S("abcdeabcde"), 0, 0);
+ test(S("abcdeabcdeabcdeabcde"), S("abcdeabcdeabcdeabcde"), 0, 0);
+ test(S("abcdeabcdeabcdeabcde"), S(""), 1, 1);
+ test(S("abcdeabcdeabcdeabcde"), S("abcde"), 1, 0);
+ test(S("abcdeabcdeabcdeabcde"), S("abcdeabcde"), 1, 0);
+ test(S("abcdeabcdeabcdeabcde"), S("abcdeabcdeabcdeabcde"), 1, 0);
+ test(S("abcdeabcdeabcdeabcde"), S(""), 10, 10);
+ test(S("abcdeabcdeabcdeabcde"), S("abcde"), 10, 10);
+ test(S("abcdeabcdeabcdeabcde"), S("abcdeabcde"), 10, 10);
+ test(S("abcdeabcdeabcdeabcde"), S("abcdeabcdeabcdeabcde"), 10, 0);
+ test(S("abcdeabcdeabcdeabcde"), S(""), 19, 19);
+ test(S("abcdeabcdeabcdeabcde"), S("abcde"), 19, 15);
+ test(S("abcdeabcdeabcdeabcde"), S("abcdeabcde"), 19, 10);
+ test(S("abcdeabcdeabcdeabcde"), S("abcdeabcdeabcdeabcde"), 19, 0);
+ test(S("abcdeabcdeabcdeabcde"), S(""), 20, 20);
+ test(S("abcdeabcdeabcdeabcde"), S("abcde"), 20, 15);
+ test(S("abcdeabcdeabcdeabcde"), S("abcdeabcde"), 20, 10);
+ test(S("abcdeabcdeabcdeabcde"), S("abcdeabcdeabcdeabcde"), 20, 0);
+ test(S("abcdeabcdeabcdeabcde"), S(""), 21, 20);
+ test(S("abcdeabcdeabcdeabcde"), S("abcde"), 21, 15);
+ test(S("abcdeabcdeabcdeabcde"), S("abcdeabcde"), 21, 10);
+ test(S("abcdeabcdeabcdeabcde"), S("abcdeabcdeabcdeabcde"), 21, 0);
}
template <class S>
-TEST_CONSTEXPR_CXX20 void test1()
-{
- test(S(""), S(""), 0);
- test(S(""), S("abcde"), S::npos);
- test(S(""), S("abcdeabcde"), S::npos);
- test(S(""), S("abcdeabcdeabcdeabcde"), S::npos);
- test(S("abcde"), S(""), 5);
- test(S("abcde"), S("abcde"), 0);
- test(S("abcde"), S("abcdeabcde"), S::npos);
- test(S("abcde"), S("abcdeabcdeabcdeabcde"), S::npos);
- test(S("abcdeabcde"), S(""), 10);
- test(S("abcdeabcde"), S("abcde"), 5);
- test(S("abcdeabcde"), S("abcdeabcde"), 0);
- test(S("abcdeabcde"), S("abcdeabcdeabcdeabcde"), S::npos);
- test(S("abcdeabcdeabcdeabcde"), S(""), 20);
- test(S("abcdeabcdeabcdeabcde"), S("abcde"), 15);
- test(S("abcdeabcdeabcdeabcde"), S("abcdeabcde"), 10);
- test(S("abcdeabcdeabcdeabcde"), S("abcdeabcdeabcdeabcde"), 0);
+TEST_CONSTEXPR_CXX20 void test1() {
+ test(S(""), S(""), 0);
+ test(S(""), S("abcde"), S::npos);
+ test(S(""), S("abcdeabcde"), S::npos);
+ test(S(""), S("abcdeabcdeabcdeabcde"), S::npos);
+ test(S("abcde"), S(""), 5);
+ test(S("abcde"), S("abcde"), 0);
+ test(S("abcde"), S("abcdeabcde"), S::npos);
+ test(S("abcde"), S("abcdeabcdeabcdeabcde"), S::npos);
+ test(S("abcdeabcde"), S(""), 10);
+ test(S("abcdeabcde"), S("abcde"), 5);
+ test(S("abcdeabcde"), S("abcdeabcde"), 0);
+ test(S("abcdeabcde"), S("abcdeabcdeabcdeabcde"), S::npos);
+ test(S("abcdeabcdeabcdeabcde"), S(""), 20);
+ test(S("abcdeabcdeabcdeabcde"), S("abcde"), 15);
+ test(S("abcdeabcdeabcdeabcde"), S("abcdeabcde"), 10);
+ test(S("abcdeabcdeabcdeabcde"), S("abcdeabcdeabcdeabcde"), 0);
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -166,8 +160,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.ops/string_rfind/string_view_size.pass.cpp b/libcxx/test/std/strings/basic.string/string.ops/string_rfind/string_view_size.pass.cpp
index bbb5e292d89c020..d3049e6189378f7 100644
--- a/libcxx/test/std/strings/basic.string/string.ops/string_rfind/string_view_size.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.ops/string_rfind/string_view_size.pass.cpp
@@ -17,129 +17,123 @@
#include "min_allocator.h"
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 void
-test(const S& s, SV sv, typename S::size_type pos, typename S::size_type x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.rfind(sv, pos));
- assert(s.rfind(sv, pos) == x);
- if (x != S::npos)
- assert(x <= pos && x + sv.size() <= s.size());
+TEST_CONSTEXPR_CXX20 void test(const S& s, SV sv, typename S::size_type pos, typename S::size_type x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.rfind(sv, pos));
+ assert(s.rfind(sv, pos) == x);
+ if (x != S::npos)
+ assert(x <= pos && x + sv.size() <= s.size());
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 void
-test(const S& s, SV sv, typename S::size_type x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.rfind(sv));
- assert(s.rfind(sv) == x);
- if (x != S::npos)
- assert(0 <= x && x + sv.size() <= s.size());
+TEST_CONSTEXPR_CXX20 void test(const S& s, SV sv, typename S::size_type x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.rfind(sv));
+ assert(s.rfind(sv) == x);
+ if (x != S::npos)
+ assert(0 <= x && x + sv.size() <= s.size());
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 void test0()
-{
- test(S(""), SV(""), 0, 0);
- test(S(""), SV("abcde"), 0, S::npos);
- test(S(""), SV("abcdeabcde"), 0, S::npos);
- test(S(""), SV("abcdeabcdeabcdeabcde"), 0, S::npos);
- test(S(""), SV(""), 1, 0);
- test(S(""), SV("abcde"), 1, S::npos);
- test(S(""), SV("abcdeabcde"), 1, S::npos);
- test(S(""), SV("abcdeabcdeabcdeabcde"), 1, S::npos);
- test(S("abcde"), SV(""), 0, 0);
- test(S("abcde"), SV("abcde"), 0, 0);
- test(S("abcde"), SV("abcdeabcde"), 0, S::npos);
- test(S("abcde"), SV("abcdeabcdeabcdeabcde"), 0, S::npos);
- test(S("abcde"), SV(""), 1, 1);
- test(S("abcde"), SV("abcde"), 1, 0);
- test(S("abcde"), SV("abcdeabcde"), 1, S::npos);
- test(S("abcde"), SV("abcdeabcdeabcdeabcde"), 1, S::npos);
- test(S("abcde"), SV(""), 2, 2);
- test(S("abcde"), SV("abcde"), 2, 0);
- test(S("abcde"), SV("abcdeabcde"), 2, S::npos);
- test(S("abcde"), SV("abcdeabcdeabcdeabcde"), 2, S::npos);
- test(S("abcde"), SV(""), 4, 4);
- test(S("abcde"), SV("abcde"), 4, 0);
- test(S("abcde"), SV("abcdeabcde"), 4, S::npos);
- test(S("abcde"), SV("abcdeabcdeabcdeabcde"), 4, S::npos);
- test(S("abcde"), SV(""), 5, 5);
- test(S("abcde"), SV("abcde"), 5, 0);
- test(S("abcde"), SV("abcdeabcde"), 5, S::npos);
- test(S("abcde"), SV("abcdeabcdeabcdeabcde"), 5, S::npos);
- test(S("abcde"), SV(""), 6, 5);
- test(S("abcde"), SV("abcde"), 6, 0);
- test(S("abcde"), SV("abcdeabcde"), 6, S::npos);
- test(S("abcde"), SV("abcdeabcdeabcdeabcde"), 6, S::npos);
- test(S("abcdeabcde"), SV(""), 0, 0);
- test(S("abcdeabcde"), SV("abcde"), 0, 0);
- test(S("abcdeabcde"), SV("abcdeabcde"), 0, 0);
- test(S("abcdeabcde"), SV("abcdeabcdeabcdeabcde"), 0, S::npos);
- test(S("abcdeabcde"), SV(""), 1, 1);
- test(S("abcdeabcde"), SV("abcde"), 1, 0);
- test(S("abcdeabcde"), SV("abcdeabcde"), 1, 0);
- test(S("abcdeabcde"), SV("abcdeabcdeabcdeabcde"), 1, S::npos);
- test(S("abcdeabcde"), SV(""), 5, 5);
- test(S("abcdeabcde"), SV("abcde"), 5, 5);
- test(S("abcdeabcde"), SV("abcdeabcde"), 5, 0);
- test(S("abcdeabcde"), SV("abcdeabcdeabcdeabcde"), 5, S::npos);
- test(S("abcdeabcde"), SV(""), 9, 9);
- test(S("abcdeabcde"), SV("abcde"), 9, 5);
- test(S("abcdeabcde"), SV("abcdeabcde"), 9, 0);
- test(S("abcdeabcde"), SV("abcdeabcdeabcdeabcde"), 9, S::npos);
- test(S("abcdeabcde"), SV(""), 10, 10);
- test(S("abcdeabcde"), SV("abcde"), 10, 5);
- test(S("abcdeabcde"), SV("abcdeabcde"), 10, 0);
- test(S("abcdeabcde"), SV("abcdeabcdeabcdeabcde"), 10, S::npos);
- test(S("abcdeabcde"), SV(""), 11, 10);
- test(S("abcdeabcde"), SV("abcde"), 11, 5);
- test(S("abcdeabcde"), SV("abcdeabcde"), 11, 0);
- test(S("abcdeabcde"), SV("abcdeabcdeabcdeabcde"), 11, S::npos);
- test(S("abcdeabcdeabcdeabcde"), SV(""), 0, 0);
- test(S("abcdeabcdeabcdeabcde"), SV("abcde"), 0, 0);
- test(S("abcdeabcdeabcdeabcde"), SV("abcdeabcde"), 0, 0);
- test(S("abcdeabcdeabcdeabcde"), SV("abcdeabcdeabcdeabcde"), 0, 0);
- test(S("abcdeabcdeabcdeabcde"), SV(""), 1, 1);
- test(S("abcdeabcdeabcdeabcde"), SV("abcde"), 1, 0);
- test(S("abcdeabcdeabcdeabcde"), SV("abcdeabcde"), 1, 0);
- test(S("abcdeabcdeabcdeabcde"), SV("abcdeabcdeabcdeabcde"), 1, 0);
- test(S("abcdeabcdeabcdeabcde"), SV(""), 10, 10);
- test(S("abcdeabcdeabcdeabcde"), SV("abcde"), 10, 10);
- test(S("abcdeabcdeabcdeabcde"), SV("abcdeabcde"), 10, 10);
- test(S("abcdeabcdeabcdeabcde"), SV("abcdeabcdeabcdeabcde"), 10, 0);
- test(S("abcdeabcdeabcdeabcde"), SV(""), 19, 19);
- test(S("abcdeabcdeabcdeabcde"), SV("abcde"), 19, 15);
- test(S("abcdeabcdeabcdeabcde"), SV("abcdeabcde"), 19, 10);
- test(S("abcdeabcdeabcdeabcde"), SV("abcdeabcdeabcdeabcde"), 19, 0);
- test(S("abcdeabcdeabcdeabcde"), SV(""), 20, 20);
- test(S("abcdeabcdeabcdeabcde"), SV("abcde"), 20, 15);
- test(S("abcdeabcdeabcdeabcde"), SV("abcdeabcde"), 20, 10);
- test(S("abcdeabcdeabcdeabcde"), SV("abcdeabcdeabcdeabcde"), 20, 0);
- test(S("abcdeabcdeabcdeabcde"), SV(""), 21, 20);
- test(S("abcdeabcdeabcdeabcde"), SV("abcde"), 21, 15);
- test(S("abcdeabcdeabcdeabcde"), SV("abcdeabcde"), 21, 10);
- test(S("abcdeabcdeabcdeabcde"), SV("abcdeabcdeabcdeabcde"), 21, 0);
+TEST_CONSTEXPR_CXX20 void test0() {
+ test(S(""), SV(""), 0, 0);
+ test(S(""), SV("abcde"), 0, S::npos);
+ test(S(""), SV("abcdeabcde"), 0, S::npos);
+ test(S(""), SV("abcdeabcdeabcdeabcde"), 0, S::npos);
+ test(S(""), SV(""), 1, 0);
+ test(S(""), SV("abcde"), 1, S::npos);
+ test(S(""), SV("abcdeabcde"), 1, S::npos);
+ test(S(""), SV("abcdeabcdeabcdeabcde"), 1, S::npos);
+ test(S("abcde"), SV(""), 0, 0);
+ test(S("abcde"), SV("abcde"), 0, 0);
+ test(S("abcde"), SV("abcdeabcde"), 0, S::npos);
+ test(S("abcde"), SV("abcdeabcdeabcdeabcde"), 0, S::npos);
+ test(S("abcde"), SV(""), 1, 1);
+ test(S("abcde"), SV("abcde"), 1, 0);
+ test(S("abcde"), SV("abcdeabcde"), 1, S::npos);
+ test(S("abcde"), SV("abcdeabcdeabcdeabcde"), 1, S::npos);
+ test(S("abcde"), SV(""), 2, 2);
+ test(S("abcde"), SV("abcde"), 2, 0);
+ test(S("abcde"), SV("abcdeabcde"), 2, S::npos);
+ test(S("abcde"), SV("abcdeabcdeabcdeabcde"), 2, S::npos);
+ test(S("abcde"), SV(""), 4, 4);
+ test(S("abcde"), SV("abcde"), 4, 0);
+ test(S("abcde"), SV("abcdeabcde"), 4, S::npos);
+ test(S("abcde"), SV("abcdeabcdeabcdeabcde"), 4, S::npos);
+ test(S("abcde"), SV(""), 5, 5);
+ test(S("abcde"), SV("abcde"), 5, 0);
+ test(S("abcde"), SV("abcdeabcde"), 5, S::npos);
+ test(S("abcde"), SV("abcdeabcdeabcdeabcde"), 5, S::npos);
+ test(S("abcde"), SV(""), 6, 5);
+ test(S("abcde"), SV("abcde"), 6, 0);
+ test(S("abcde"), SV("abcdeabcde"), 6, S::npos);
+ test(S("abcde"), SV("abcdeabcdeabcdeabcde"), 6, S::npos);
+ test(S("abcdeabcde"), SV(""), 0, 0);
+ test(S("abcdeabcde"), SV("abcde"), 0, 0);
+ test(S("abcdeabcde"), SV("abcdeabcde"), 0, 0);
+ test(S("abcdeabcde"), SV("abcdeabcdeabcdeabcde"), 0, S::npos);
+ test(S("abcdeabcde"), SV(""), 1, 1);
+ test(S("abcdeabcde"), SV("abcde"), 1, 0);
+ test(S("abcdeabcde"), SV("abcdeabcde"), 1, 0);
+ test(S("abcdeabcde"), SV("abcdeabcdeabcdeabcde"), 1, S::npos);
+ test(S("abcdeabcde"), SV(""), 5, 5);
+ test(S("abcdeabcde"), SV("abcde"), 5, 5);
+ test(S("abcdeabcde"), SV("abcdeabcde"), 5, 0);
+ test(S("abcdeabcde"), SV("abcdeabcdeabcdeabcde"), 5, S::npos);
+ test(S("abcdeabcde"), SV(""), 9, 9);
+ test(S("abcdeabcde"), SV("abcde"), 9, 5);
+ test(S("abcdeabcde"), SV("abcdeabcde"), 9, 0);
+ test(S("abcdeabcde"), SV("abcdeabcdeabcdeabcde"), 9, S::npos);
+ test(S("abcdeabcde"), SV(""), 10, 10);
+ test(S("abcdeabcde"), SV("abcde"), 10, 5);
+ test(S("abcdeabcde"), SV("abcdeabcde"), 10, 0);
+ test(S("abcdeabcde"), SV("abcdeabcdeabcdeabcde"), 10, S::npos);
+ test(S("abcdeabcde"), SV(""), 11, 10);
+ test(S("abcdeabcde"), SV("abcde"), 11, 5);
+ test(S("abcdeabcde"), SV("abcdeabcde"), 11, 0);
+ test(S("abcdeabcde"), SV("abcdeabcdeabcdeabcde"), 11, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), SV(""), 0, 0);
+ test(S("abcdeabcdeabcdeabcde"), SV("abcde"), 0, 0);
+ test(S("abcdeabcdeabcdeabcde"), SV("abcdeabcde"), 0, 0);
+ test(S("abcdeabcdeabcdeabcde"), SV("abcdeabcdeabcdeabcde"), 0, 0);
+ test(S("abcdeabcdeabcdeabcde"), SV(""), 1, 1);
+ test(S("abcdeabcdeabcdeabcde"), SV("abcde"), 1, 0);
+ test(S("abcdeabcdeabcdeabcde"), SV("abcdeabcde"), 1, 0);
+ test(S("abcdeabcdeabcdeabcde"), SV("abcdeabcdeabcdeabcde"), 1, 0);
+ test(S("abcdeabcdeabcdeabcde"), SV(""), 10, 10);
+ test(S("abcdeabcdeabcdeabcde"), SV("abcde"), 10, 10);
+ test(S("abcdeabcdeabcdeabcde"), SV("abcdeabcde"), 10, 10);
+ test(S("abcdeabcdeabcdeabcde"), SV("abcdeabcdeabcdeabcde"), 10, 0);
+ test(S("abcdeabcdeabcdeabcde"), SV(""), 19, 19);
+ test(S("abcdeabcdeabcdeabcde"), SV("abcde"), 19, 15);
+ test(S("abcdeabcdeabcdeabcde"), SV("abcdeabcde"), 19, 10);
+ test(S("abcdeabcdeabcdeabcde"), SV("abcdeabcdeabcdeabcde"), 19, 0);
+ test(S("abcdeabcdeabcdeabcde"), SV(""), 20, 20);
+ test(S("abcdeabcdeabcdeabcde"), SV("abcde"), 20, 15);
+ test(S("abcdeabcdeabcdeabcde"), SV("abcdeabcde"), 20, 10);
+ test(S("abcdeabcdeabcdeabcde"), SV("abcdeabcdeabcdeabcde"), 20, 0);
+ test(S("abcdeabcdeabcdeabcde"), SV(""), 21, 20);
+ test(S("abcdeabcdeabcdeabcde"), SV("abcde"), 21, 15);
+ test(S("abcdeabcdeabcdeabcde"), SV("abcdeabcde"), 21, 10);
+ test(S("abcdeabcdeabcdeabcde"), SV("abcdeabcdeabcdeabcde"), 21, 0);
}
template <class S, class SV>
-TEST_CONSTEXPR_CXX20 void test1()
-{
- test(S(""), SV(""), 0);
- test(S(""), SV("abcde"), S::npos);
- test(S(""), SV("abcdeabcde"), S::npos);
- test(S(""), SV("abcdeabcdeabcdeabcde"), S::npos);
- test(S("abcde"), SV(""), 5);
- test(S("abcde"), SV("abcde"), 0);
- test(S("abcde"), SV("abcdeabcde"), S::npos);
- test(S("abcde"), SV("abcdeabcdeabcdeabcde"), S::npos);
- test(S("abcdeabcde"), SV(""), 10);
- test(S("abcdeabcde"), SV("abcde"), 5);
- test(S("abcdeabcde"), SV("abcdeabcde"), 0);
- test(S("abcdeabcde"), SV("abcdeabcdeabcdeabcde"), S::npos);
- test(S("abcdeabcdeabcdeabcde"), SV(""), 20);
- test(S("abcdeabcdeabcdeabcde"), SV("abcde"), 15);
- test(S("abcdeabcdeabcdeabcde"), SV("abcdeabcde"), 10);
- test(S("abcdeabcdeabcdeabcde"), SV("abcdeabcdeabcdeabcde"), 0);
+TEST_CONSTEXPR_CXX20 void test1() {
+ test(S(""), SV(""), 0);
+ test(S(""), SV("abcde"), S::npos);
+ test(S(""), SV("abcdeabcde"), S::npos);
+ test(S(""), SV("abcdeabcdeabcdeabcde"), S::npos);
+ test(S("abcde"), SV(""), 5);
+ test(S("abcde"), SV("abcde"), 0);
+ test(S("abcde"), SV("abcdeabcde"), S::npos);
+ test(S("abcde"), SV("abcdeabcdeabcdeabcde"), S::npos);
+ test(S("abcdeabcde"), SV(""), 10);
+ test(S("abcdeabcde"), SV("abcde"), 5);
+ test(S("abcdeabcde"), SV("abcdeabcde"), 0);
+ test(S("abcdeabcde"), SV("abcdeabcdeabcdeabcde"), S::npos);
+ test(S("abcdeabcdeabcdeabcde"), SV(""), 20);
+ test(S("abcdeabcdeabcdeabcde"), SV("abcde"), 15);
+ test(S("abcdeabcdeabcdeabcde"), SV("abcdeabcde"), 10);
+ test(S("abcdeabcdeabcdeabcde"), SV("abcdeabcdeabcdeabcde"), 0);
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -161,8 +155,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.ops/string_substr/substr.pass.cpp b/libcxx/test/std/strings/basic.string/string.ops/string_substr/substr.pass.cpp
index 917bb0fa38d01ab..83cfa8737408ca5 100644
--- a/libcxx/test/std/strings/basic.string/string.ops/string_substr/substr.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.ops/string_substr/substr.pass.cpp
@@ -21,31 +21,24 @@
#include "min_allocator.h"
template <class S>
-TEST_CONSTEXPR_CXX20 void
-test(const S& s, typename S::size_type pos, typename S::size_type n)
-{
- if (pos <= s.size())
- {
- S str = s.substr(pos, n);
- LIBCPP_ASSERT(str.__invariants());
- assert(pos <= s.size());
- typename S::size_type rlen = std::min(n, s.size() - pos);
- assert(str.size() == rlen);
- assert(S::traits_type::compare(s.data()+pos, str.data(), rlen) == 0);
- }
+TEST_CONSTEXPR_CXX20 void test(const S& s, typename S::size_type pos, typename S::size_type n) {
+ if (pos <= s.size()) {
+ S str = s.substr(pos, n);
+ LIBCPP_ASSERT(str.__invariants());
+ assert(pos <= s.size());
+ typename S::size_type rlen = std::min(n, s.size() - pos);
+ assert(str.size() == rlen);
+ assert(S::traits_type::compare(s.data() + pos, str.data(), rlen) == 0);
+ }
#ifndef TEST_HAS_NO_EXCEPTIONS
- else if (!TEST_IS_CONSTANT_EVALUATED)
- {
- try
- {
- S str = s.substr(pos, n);
- assert(false);
- }
- catch (std::out_of_range&)
- {
- assert(pos > s.size());
- }
+ else if (!TEST_IS_CONSTANT_EVALUATED) {
+ try {
+ S str = s.substr(pos, n);
+ assert(false);
+ } catch (std::out_of_range&) {
+ assert(pos > s.size());
}
+ }
#endif
}
@@ -127,14 +120,14 @@ TEST_CONSTEXPR_CXX20 bool test_alloc() {
test_allocator_statistics stats;
{
string str = string(alloc(&stats));
- stats = test_allocator_statistics();
+ stats = test_allocator_statistics();
(void)str.substr();
assert(stats.moved == 0);
assert(stats.copied == 0);
}
{
string str = string(alloc(&stats));
- stats = test_allocator_statistics();
+ stats = test_allocator_statistics();
(void)std::move(str).substr();
assert(stats.moved == 0);
assert(stats.copied == 0);
@@ -144,8 +137,7 @@ TEST_CONSTEXPR_CXX20 bool test_alloc() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
test_alloc();
#if TEST_STD_VER > 17
diff --git a/libcxx/test/std/strings/basic.string/string.require/contiguous.pass.cpp b/libcxx/test/std/strings/basic.string/string.require/contiguous.pass.cpp
index 822f1a6171a1b3c..0baf3060f11e353 100644
--- a/libcxx/test/std/strings/basic.string/string.require/contiguous.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.require/contiguous.pass.cpp
@@ -17,12 +17,10 @@
#include "test_allocator.h"
#include "min_allocator.h"
-
template <class C>
-TEST_CONSTEXPR_CXX20 void test_contiguous ( const C &c )
-{
- for ( std::size_t i = 0; i < c.size(); ++i )
- assert ( *(c.begin() + static_cast<typename C::
diff erence_type>(i)) == *(std::addressof(*c.begin()) + i));
+TEST_CONSTEXPR_CXX20 void test_contiguous(const C& c) {
+ for (std::size_t i = 0; i < c.size(); ++i)
+ assert(*(c.begin() + static_cast<typename C::
diff erence_type>(i)) == *(std::addressof(*c.begin()) + i));
}
TEST_CONSTEXPR_CXX20 bool test() {
@@ -53,8 +51,7 @@ TEST_CONSTEXPR_CXX20 bool test() {
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.starts_with/starts_with.char.pass.cpp b/libcxx/test/std/strings/basic.string/string.starts_with/starts_with.char.pass.cpp
index a3ad1fd94b63ac4..6a5929f82a59f65 100644
--- a/libcxx/test/std/strings/basic.string/string.starts_with/starts_with.char.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.starts_with/starts_with.char.pass.cpp
@@ -19,22 +19,21 @@
constexpr bool test() {
{
typedef std::string S;
- S s1 {};
- S s2 { "abcde", 5 };
+ S s1{};
+ S s2{"abcde", 5};
ASSERT_NOEXCEPT(s1.starts_with('e'));
- assert (!s1.starts_with('a'));
- assert (!s1.starts_with('x'));
- assert ( s2.starts_with('a'));
- assert (!s2.starts_with('x'));
+ assert(!s1.starts_with('a'));
+ assert(!s1.starts_with('x'));
+ assert(s2.starts_with('a'));
+ assert(!s2.starts_with('x'));
}
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.starts_with/starts_with.ptr.pass.cpp b/libcxx/test/std/strings/basic.string/string.starts_with/starts_with.ptr.pass.cpp
index 50320355dd25d6d..8f0dc046c83a406 100644
--- a/libcxx/test/std/strings/basic.string/string.starts_with/starts_with.ptr.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.starts_with/starts_with.ptr.pass.cpp
@@ -19,50 +19,49 @@
constexpr bool test() {
{
typedef std::string S;
- const char *s = "abcde";
- S s0 {};
- S s1 { s, 1 };
- S s2 { s, 2 };
-// S s3 { s, 3 };
-// S s4 { s, 4 };
-// S s5 { s, 5 };
- S sNot {"def", 3 };
+ const char* s = "abcde";
+ S s0{};
+ S s1{s, 1};
+ S s2{s, 2};
+ // S s3 { s, 3 };
+ // S s4 { s, 4 };
+ // S s5 { s, 5 };
+ S sNot{"def", 3};
LIBCPP_ASSERT_NOEXCEPT(s0.starts_with(""));
- assert ( s0.starts_with(""));
- assert (!s0.starts_with("a"));
+ assert(s0.starts_with(""));
+ assert(!s0.starts_with("a"));
- assert ( s1.starts_with(""));
- assert ( s1.starts_with("a"));
- assert (!s1.starts_with("ab"));
- assert (!s1.starts_with("abc"));
- assert (!s1.starts_with("abcd"));
- assert (!s1.starts_with("abcde"));
- assert (!s1.starts_with("def"));
+ assert(s1.starts_with(""));
+ assert(s1.starts_with("a"));
+ assert(!s1.starts_with("ab"));
+ assert(!s1.starts_with("abc"));
+ assert(!s1.starts_with("abcd"));
+ assert(!s1.starts_with("abcde"));
+ assert(!s1.starts_with("def"));
- assert ( s2.starts_with(""));
- assert ( s2.starts_with("a"));
- assert ( s2.starts_with("ab"));
- assert (!s2.starts_with("abc"));
- assert (!s2.starts_with("abcd"));
- assert (!s2.starts_with("abcde"));
- assert (!s2.starts_with("def"));
+ assert(s2.starts_with(""));
+ assert(s2.starts_with("a"));
+ assert(s2.starts_with("ab"));
+ assert(!s2.starts_with("abc"));
+ assert(!s2.starts_with("abcd"));
+ assert(!s2.starts_with("abcde"));
+ assert(!s2.starts_with("def"));
- assert ( sNot.starts_with(""));
- assert (!sNot.starts_with("a"));
- assert (!sNot.starts_with("ab"));
- assert (!sNot.starts_with("abc"));
- assert (!sNot.starts_with("abcd"));
- assert (!sNot.starts_with("abcde"));
- assert ( sNot.starts_with("def"));
+ assert(sNot.starts_with(""));
+ assert(!sNot.starts_with("a"));
+ assert(!sNot.starts_with("ab"));
+ assert(!sNot.starts_with("abc"));
+ assert(!sNot.starts_with("abcd"));
+ assert(!sNot.starts_with("abcde"));
+ assert(sNot.starts_with("def"));
}
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/string.starts_with/starts_with.string_view.pass.cpp b/libcxx/test/std/strings/basic.string/string.starts_with/starts_with.string_view.pass.cpp
index c0734d090da7a4e..c3c1eb03ba23cfc 100644
--- a/libcxx/test/std/strings/basic.string/string.starts_with/starts_with.string_view.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.starts_with/starts_with.string_view.pass.cpp
@@ -17,60 +17,59 @@
#include "test_macros.h"
constexpr bool test() {
- typedef std::string S;
- typedef std::string_view SV;
- const char *s = "abcde";
+ typedef std::string S;
+ typedef std::string_view SV;
+ const char* s = "abcde";
- S s0;
- S s1 { s, 1 };
- S s2 { s, 2 };
-// S s3 { s, 3 };
-// S s4 { s, 4 };
-// S s5 { s, 5 };
- S sNot { "def", 3 };
+ S s0;
+ S s1{s, 1};
+ S s2{s, 2};
+ // S s3 { s, 3 };
+ // S s4 { s, 4 };
+ // S s5 { s, 5 };
+ S sNot{"def", 3};
- SV sv0;
- SV sv1 { s, 1 };
- SV sv2 { s, 2 };
- SV sv3 { s, 3 };
- SV sv4 { s, 4 };
- SV sv5 { s, 5 };
- SV svNot {"def", 3 };
+ SV sv0;
+ SV sv1{s, 1};
+ SV sv2{s, 2};
+ SV sv3{s, 3};
+ SV sv4{s, 4};
+ SV sv5{s, 5};
+ SV svNot{"def", 3};
- ASSERT_NOEXCEPT(s0.starts_with(sv0));
+ ASSERT_NOEXCEPT(s0.starts_with(sv0));
- assert ( s0.starts_with(sv0));
- assert (!s0.starts_with(sv1));
+ assert(s0.starts_with(sv0));
+ assert(!s0.starts_with(sv1));
- assert ( s1.starts_with(sv0));
- assert ( s1.starts_with(sv1));
- assert (!s1.starts_with(sv2));
- assert (!s1.starts_with(sv3));
- assert (!s1.starts_with(sv4));
- assert (!s1.starts_with(sv5));
- assert (!s1.starts_with(svNot));
+ assert(s1.starts_with(sv0));
+ assert(s1.starts_with(sv1));
+ assert(!s1.starts_with(sv2));
+ assert(!s1.starts_with(sv3));
+ assert(!s1.starts_with(sv4));
+ assert(!s1.starts_with(sv5));
+ assert(!s1.starts_with(svNot));
- assert ( s2.starts_with(sv0));
- assert ( s2.starts_with(sv1));
- assert ( s2.starts_with(sv2));
- assert (!s2.starts_with(sv3));
- assert (!s2.starts_with(sv4));
- assert (!s2.starts_with(sv5));
- assert (!s2.starts_with(svNot));
+ assert(s2.starts_with(sv0));
+ assert(s2.starts_with(sv1));
+ assert(s2.starts_with(sv2));
+ assert(!s2.starts_with(sv3));
+ assert(!s2.starts_with(sv4));
+ assert(!s2.starts_with(sv5));
+ assert(!s2.starts_with(svNot));
- assert ( sNot.starts_with(sv0));
- assert (!sNot.starts_with(sv1));
- assert (!sNot.starts_with(sv2));
- assert (!sNot.starts_with(sv3));
- assert (!sNot.starts_with(sv4));
- assert (!sNot.starts_with(sv5));
- assert ( sNot.starts_with(svNot));
+ assert(sNot.starts_with(sv0));
+ assert(!sNot.starts_with(sv1));
+ assert(!sNot.starts_with(sv2));
+ assert(!sNot.starts_with(sv3));
+ assert(!sNot.starts_with(sv4));
+ assert(!sNot.starts_with(sv5));
+ assert(sNot.starts_with(svNot));
- return true;
+ return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
static_assert(test());
diff --git a/libcxx/test/std/strings/basic.string/test_traits.h b/libcxx/test/std/strings/basic.string/test_traits.h
index 78a98cb96d79b8c..ea3d4c16b7de213 100644
--- a/libcxx/test/std/strings/basic.string/test_traits.h
+++ b/libcxx/test/std/strings/basic.string/test_traits.h
@@ -10,9 +10,8 @@
#define TEST_TRAITS_H
template <class charT>
-struct test_traits
-{
- typedef charT char_type;
+struct test_traits {
+ typedef charT char_type;
};
#endif // TEST_TRAITS_H
diff --git a/libcxx/test/std/strings/basic.string/traits_mismatch.verify.cpp b/libcxx/test/std/strings/basic.string/traits_mismatch.verify.cpp
index 82c438b0cb0331a..005efff98d1c2f8 100644
--- a/libcxx/test/std/strings/basic.string/traits_mismatch.verify.cpp
+++ b/libcxx/test/std/strings/basic.string/traits_mismatch.verify.cpp
@@ -13,4 +13,5 @@
#include <string>
-std::basic_string<char, std::char_traits<wchar_t> > s; // expected-error@*:* {{traits_type::char_type must be the same type as CharT}}
+std::basic_string<char, std::char_traits<wchar_t> >
+ s; // expected-error@*:* {{traits_type::char_type must be the same type as CharT}}
diff --git a/libcxx/test/std/strings/basic.string/types.pass.cpp b/libcxx/test/std/strings/basic.string/types.pass.cpp
index 542336bdf12bc6d..45408fa62029863 100644
--- a/libcxx/test/std/strings/basic.string/types.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/types.pass.cpp
@@ -41,48 +41,44 @@
#include "min_allocator.h"
template <class Traits, class Allocator>
-void
-test()
-{
- typedef std::basic_string<typename Traits::char_type, Traits, Allocator> S;
+void test() {
+ typedef std::basic_string<typename Traits::char_type, Traits, Allocator> S;
- static_assert((std::is_same<typename S::traits_type, Traits>::value), "");
- static_assert((std::is_same<typename S::value_type, typename Traits::char_type>::value), "");
- static_assert((std::is_same<typename S::value_type, typename Allocator::value_type>::value), "");
- static_assert((std::is_same<typename S::allocator_type, Allocator>::value), "");
- static_assert((std::is_same<typename S::size_type, typename std::allocator_traits<Allocator>::size_type>::value), "");
- static_assert((std::is_same<typename S::
diff erence_type, typename std::allocator_traits<Allocator>::
diff erence_type>::value), "");
- static_assert((std::is_same<typename S::reference, typename S::value_type&>::value), "");
- static_assert((std::is_same<typename S::const_reference, const typename S::value_type&>::value), "");
- static_assert((std::is_same<typename S::pointer, typename std::allocator_traits<Allocator>::pointer>::value), "");
- static_assert((std::is_same<typename S::const_pointer, typename std::allocator_traits<Allocator>::const_pointer>::value), "");
- static_assert((std::is_same<
- typename std::iterator_traits<typename S::iterator>::iterator_category,
- std::random_access_iterator_tag>::value), "");
- static_assert((std::is_same<
- typename std::iterator_traits<typename S::const_iterator>::iterator_category,
- std::random_access_iterator_tag>::value), "");
- static_assert((std::is_same<
- typename S::reverse_iterator,
- std::reverse_iterator<typename S::iterator> >::value), "");
- static_assert((std::is_same<
- typename S::const_reverse_iterator,
- std::reverse_iterator<typename S::const_iterator> >::value), "");
- static_assert(S::npos == -1, "");
+ static_assert((std::is_same<typename S::traits_type, Traits>::value), "");
+ static_assert((std::is_same<typename S::value_type, typename Traits::char_type>::value), "");
+ static_assert((std::is_same<typename S::value_type, typename Allocator::value_type>::value), "");
+ static_assert((std::is_same<typename S::allocator_type, Allocator>::value), "");
+ static_assert((std::is_same<typename S::size_type, typename std::allocator_traits<Allocator>::size_type>::value), "");
+ static_assert(
+ (std::is_same<typename S::
diff erence_type, typename std::allocator_traits<Allocator>::
diff erence_type>::value),
+ "");
+ static_assert((std::is_same<typename S::reference, typename S::value_type&>::value), "");
+ static_assert((std::is_same<typename S::const_reference, const typename S::value_type&>::value), "");
+ static_assert((std::is_same<typename S::pointer, typename std::allocator_traits<Allocator>::pointer>::value), "");
+ static_assert(
+ (std::is_same<typename S::const_pointer, typename std::allocator_traits<Allocator>::const_pointer>::value), "");
+ static_assert((std::is_same< typename std::iterator_traits<typename S::iterator>::iterator_category,
+ std::random_access_iterator_tag>::value),
+ "");
+ static_assert((std::is_same< typename std::iterator_traits<typename S::const_iterator>::iterator_category,
+ std::random_access_iterator_tag>::value),
+ "");
+ static_assert((std::is_same< typename S::reverse_iterator, std::reverse_iterator<typename S::iterator> >::value), "");
+ static_assert(
+ (std::is_same< typename S::const_reverse_iterator, std::reverse_iterator<typename S::const_iterator> >::value),
+ "");
+ static_assert(S::npos == -1, "");
}
-int main(int, char**)
-{
- test<test_traits<char>, test_allocator<char> >();
+int main(int, char**) {
+ test<test_traits<char>, test_allocator<char> >();
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- test<std::char_traits<wchar_t>, std::allocator<wchar_t> >();
+ test<std::char_traits<wchar_t>, std::allocator<wchar_t> >();
#endif
- static_assert((std::is_same<std::basic_string<char>::traits_type,
- std::char_traits<char> >::value), "");
- static_assert((std::is_same<std::basic_string<char>::allocator_type,
- std::allocator<char> >::value), "");
+ static_assert((std::is_same<std::basic_string<char>::traits_type, std::char_traits<char> >::value), "");
+ static_assert((std::is_same<std::basic_string<char>::allocator_type, std::allocator<char> >::value), "");
#if TEST_STD_VER >= 11
- test<std::char_traits<char>, min_allocator<char> >();
+ test<std::char_traits<char>, min_allocator<char> >();
#endif
return 0;
diff --git a/libcxx/test/std/strings/c.strings/cctype.pass.cpp b/libcxx/test/std/strings/c.strings/cctype.pass.cpp
index c26c1e6a20fcb7b..6d6d2a101744202 100644
--- a/libcxx/test/std/strings/c.strings/cctype.pass.cpp
+++ b/libcxx/test/std/strings/c.strings/cctype.pass.cpp
@@ -15,93 +15,91 @@
#include "test_macros.h"
#ifdef isalnum
-#error isalnum defined
+# error isalnum defined
#endif
#ifdef isalpha
-#error isalpha defined
+# error isalpha defined
#endif
#ifdef isblank
-#error isblank defined
+# error isblank defined
#endif
#ifdef iscntrl
-#error iscntrl defined
+# error iscntrl defined
#endif
#ifdef isdigit
-#error isdigit defined
+# error isdigit defined
#endif
#ifdef isgraph
-#error isgraph defined
+# error isgraph defined
#endif
#ifdef islower
-#error islower defined
+# error islower defined
#endif
#ifdef isprint
-#error isprint defined
+# error isprint defined
#endif
#ifdef ispunct
-#error ispunct defined
+# error ispunct defined
#endif
#ifdef isspace
-#error isspace defined
+# error isspace defined
#endif
#ifdef isupper
-#error isupper defined
+# error isupper defined
#endif
#ifdef isxdigit
-#error isxdigit defined
+# error isxdigit defined
#endif
#ifdef tolower
-#error tolower defined
+# error tolower defined
#endif
#ifdef toupper
-#error toupper defined
+# error toupper defined
#endif
-int main(int, char**)
-{
-
- ASSERT_SAME_TYPE(int, decltype(std::isalnum(0)));
- ASSERT_SAME_TYPE(int, decltype(std::isalpha(0)));
- ASSERT_SAME_TYPE(int, decltype(std::isblank(0)));
- ASSERT_SAME_TYPE(int, decltype(std::iscntrl(0)));
- ASSERT_SAME_TYPE(int, decltype(std::isdigit(0)));
- ASSERT_SAME_TYPE(int, decltype(std::isgraph(0)));
- ASSERT_SAME_TYPE(int, decltype(std::islower(0)));
- ASSERT_SAME_TYPE(int, decltype(std::isprint(0)));
- ASSERT_SAME_TYPE(int, decltype(std::ispunct(0)));
- ASSERT_SAME_TYPE(int, decltype(std::isspace(0)));
- ASSERT_SAME_TYPE(int, decltype(std::isupper(0)));
- ASSERT_SAME_TYPE(int, decltype(std::isxdigit(0)));
- ASSERT_SAME_TYPE(int, decltype(std::tolower(0)));
- ASSERT_SAME_TYPE(int, decltype(std::toupper(0)));
-
- assert( std::isalnum('a'));
- assert( std::isalpha('a'));
- assert( std::isblank(' '));
- assert(!std::iscntrl(' '));
- assert(!std::isdigit('a'));
- assert( std::isgraph('a'));
- assert( std::islower('a'));
- assert( std::isprint('a'));
- assert(!std::ispunct('a'));
- assert(!std::isspace('a'));
- assert(!std::isupper('a'));
- assert( std::isxdigit('a'));
- assert( std::tolower('A') == 'a');
- assert( std::toupper('a') == 'A');
+int main(int, char**) {
+ ASSERT_SAME_TYPE(int, decltype(std::isalnum(0)));
+ ASSERT_SAME_TYPE(int, decltype(std::isalpha(0)));
+ ASSERT_SAME_TYPE(int, decltype(std::isblank(0)));
+ ASSERT_SAME_TYPE(int, decltype(std::iscntrl(0)));
+ ASSERT_SAME_TYPE(int, decltype(std::isdigit(0)));
+ ASSERT_SAME_TYPE(int, decltype(std::isgraph(0)));
+ ASSERT_SAME_TYPE(int, decltype(std::islower(0)));
+ ASSERT_SAME_TYPE(int, decltype(std::isprint(0)));
+ ASSERT_SAME_TYPE(int, decltype(std::ispunct(0)));
+ ASSERT_SAME_TYPE(int, decltype(std::isspace(0)));
+ ASSERT_SAME_TYPE(int, decltype(std::isupper(0)));
+ ASSERT_SAME_TYPE(int, decltype(std::isxdigit(0)));
+ ASSERT_SAME_TYPE(int, decltype(std::tolower(0)));
+ ASSERT_SAME_TYPE(int, decltype(std::toupper(0)));
+
+ assert(std::isalnum('a'));
+ assert(std::isalpha('a'));
+ assert(std::isblank(' '));
+ assert(!std::iscntrl(' '));
+ assert(!std::isdigit('a'));
+ assert(std::isgraph('a'));
+ assert(std::islower('a'));
+ assert(std::isprint('a'));
+ assert(!std::ispunct('a'));
+ assert(!std::isspace('a'));
+ assert(!std::isupper('a'));
+ assert(std::isxdigit('a'));
+ assert(std::tolower('A') == 'a');
+ assert(std::toupper('a') == 'A');
return 0;
}
diff --git a/libcxx/test/std/strings/c.strings/cstring.pass.cpp b/libcxx/test/std/strings/c.strings/cstring.pass.cpp
index 02842a6f12490a5..ddd4531c2b31cd0 100644
--- a/libcxx/test/std/strings/c.strings/cstring.pass.cpp
+++ b/libcxx/test/std/strings/c.strings/cstring.pass.cpp
@@ -15,124 +15,123 @@
#include "test_macros.h"
#ifndef NULL
-#error NULL not defined
+# error NULL not defined
#endif
-int main(int, char**)
-{
- // Functions we get directly from the C library (just check the signature)
- {
- std::size_t s = 0;
- void* vp = 0;
- const void* vpc = 0;
- char* cp = 0;
- const char* cpc = 0;
- ASSERT_SAME_TYPE(void*, decltype(std::memcpy(vp, vpc, s)));
- ASSERT_SAME_TYPE(void*, decltype(std::memmove(vp, vpc, s)));
- ASSERT_SAME_TYPE(char*, decltype(std::strcpy(cp, cpc)));
- ASSERT_SAME_TYPE(char*, decltype(std::strncpy(cp, cpc, s)));
- ASSERT_SAME_TYPE(char*, decltype(std::strcat(cp, cpc)));
- ASSERT_SAME_TYPE(char*, decltype(std::strncat(cp, cpc, s)));
- ASSERT_SAME_TYPE(int, decltype(std::memcmp(vpc, vpc, s)));
- ASSERT_SAME_TYPE(int, decltype(std::strcmp(cpc, cpc)));
- ASSERT_SAME_TYPE(int, decltype(std::strncmp(cpc, cpc, s)));
- ASSERT_SAME_TYPE(int, decltype(std::strcoll(cpc, cpc)));
- ASSERT_SAME_TYPE(std::size_t, decltype(std::strxfrm(cp, cpc, s)));
- ASSERT_SAME_TYPE(std::size_t, decltype(std::strcspn(cpc, cpc)));
- ASSERT_SAME_TYPE(std::size_t, decltype(std::strspn(cpc, cpc)));
- ASSERT_SAME_TYPE(char*, decltype(std::strtok(cp, cpc)));
- ASSERT_SAME_TYPE(void*, decltype(std::memset(vp, 0, s)));
- ASSERT_SAME_TYPE(char*, decltype(std::strerror(0)));
- ASSERT_SAME_TYPE(std::size_t, decltype(std::strlen(cpc)));
- }
+int main(int, char**) {
+ // Functions we get directly from the C library (just check the signature)
+ {
+ std::size_t s = 0;
+ void* vp = 0;
+ const void* vpc = 0;
+ char* cp = 0;
+ const char* cpc = 0;
+ ASSERT_SAME_TYPE(void*, decltype(std::memcpy(vp, vpc, s)));
+ ASSERT_SAME_TYPE(void*, decltype(std::memmove(vp, vpc, s)));
+ ASSERT_SAME_TYPE(char*, decltype(std::strcpy(cp, cpc)));
+ ASSERT_SAME_TYPE(char*, decltype(std::strncpy(cp, cpc, s)));
+ ASSERT_SAME_TYPE(char*, decltype(std::strcat(cp, cpc)));
+ ASSERT_SAME_TYPE(char*, decltype(std::strncat(cp, cpc, s)));
+ ASSERT_SAME_TYPE(int, decltype(std::memcmp(vpc, vpc, s)));
+ ASSERT_SAME_TYPE(int, decltype(std::strcmp(cpc, cpc)));
+ ASSERT_SAME_TYPE(int, decltype(std::strncmp(cpc, cpc, s)));
+ ASSERT_SAME_TYPE(int, decltype(std::strcoll(cpc, cpc)));
+ ASSERT_SAME_TYPE(std::size_t, decltype(std::strxfrm(cp, cpc, s)));
+ ASSERT_SAME_TYPE(std::size_t, decltype(std::strcspn(cpc, cpc)));
+ ASSERT_SAME_TYPE(std::size_t, decltype(std::strspn(cpc, cpc)));
+ ASSERT_SAME_TYPE(char*, decltype(std::strtok(cp, cpc)));
+ ASSERT_SAME_TYPE(void*, decltype(std::memset(vp, 0, s)));
+ ASSERT_SAME_TYPE(char*, decltype(std::strerror(0)));
+ ASSERT_SAME_TYPE(std::size_t, decltype(std::strlen(cpc)));
+ }
- // Functions we (may) reimplement
- {
- // const char* strchr(const char*, int)
- char storage[] = "hello world";
- const char* s = storage;
- ASSERT_SAME_TYPE(const char*, decltype(std::strchr(s, 'l')));
- const char* res = std::strchr(s, 'l');
- assert(res == &s[2]);
- }
- {
- // char* strchr(char*, int)
- char storage[] = "hello world";
- char* s = storage;
- ASSERT_SAME_TYPE(char*, decltype(std::strchr(s, 'l')));
- char* res = std::strchr(s, 'l');
- assert(res == &s[2]);
- }
+ // Functions we (may) reimplement
+ {
+ // const char* strchr(const char*, int)
+ char storage[] = "hello world";
+ const char* s = storage;
+ ASSERT_SAME_TYPE(const char*, decltype(std::strchr(s, 'l')));
+ const char* res = std::strchr(s, 'l');
+ assert(res == &s[2]);
+ }
+ {
+ // char* strchr(char*, int)
+ char storage[] = "hello world";
+ char* s = storage;
+ ASSERT_SAME_TYPE(char*, decltype(std::strchr(s, 'l')));
+ char* res = std::strchr(s, 'l');
+ assert(res == &s[2]);
+ }
- {
- // const char* strpbrk(const char*, const char*)
- char storage[] = "hello world";
- const char* s = storage;
- ASSERT_SAME_TYPE(const char*, decltype(std::strpbrk(s, "el")));
- const char* res = std::strpbrk(s, "el");
- assert(res == &s[1]);
- }
- {
- // char* strpbrk(char*, const char*)
- char storage[] = "hello world";
- char* s = storage;
- ASSERT_SAME_TYPE(char*, decltype(std::strpbrk(s, "el")));
- char* res = std::strpbrk(s, "el");
- assert(res == &s[1]);
- }
+ {
+ // const char* strpbrk(const char*, const char*)
+ char storage[] = "hello world";
+ const char* s = storage;
+ ASSERT_SAME_TYPE(const char*, decltype(std::strpbrk(s, "el")));
+ const char* res = std::strpbrk(s, "el");
+ assert(res == &s[1]);
+ }
+ {
+ // char* strpbrk(char*, const char*)
+ char storage[] = "hello world";
+ char* s = storage;
+ ASSERT_SAME_TYPE(char*, decltype(std::strpbrk(s, "el")));
+ char* res = std::strpbrk(s, "el");
+ assert(res == &s[1]);
+ }
- {
- // const char* strrchr(const char*, int)
- char storage[] = "hello world";
- const char* s = storage;
- ASSERT_SAME_TYPE(const char*, decltype(std::strrchr(s, 'l')));
- const char* res = std::strrchr(s, 'l');
- assert(res == &s[9]);
- }
- {
- // char* strrchr(char*, int)
- char storage[] = "hello world";
- char* s = storage;
- ASSERT_SAME_TYPE(char*, decltype(std::strrchr(s, 'l')));
- char* res = std::strrchr(s, 'l');
- assert(res == &s[9]);
- }
+ {
+ // const char* strrchr(const char*, int)
+ char storage[] = "hello world";
+ const char* s = storage;
+ ASSERT_SAME_TYPE(const char*, decltype(std::strrchr(s, 'l')));
+ const char* res = std::strrchr(s, 'l');
+ assert(res == &s[9]);
+ }
+ {
+ // char* strrchr(char*, int)
+ char storage[] = "hello world";
+ char* s = storage;
+ ASSERT_SAME_TYPE(char*, decltype(std::strrchr(s, 'l')));
+ char* res = std::strrchr(s, 'l');
+ assert(res == &s[9]);
+ }
- {
- // const void* memchr(const void*, int, size_t)
- char storage[] = "hello world";
- std::size_t count = 11;
- const void* s = storage;
- ASSERT_SAME_TYPE(const void*, decltype(std::memchr(s, 'l', count)));
- const void* res = std::memchr(s, 'l', count);
- assert(res == &storage[2]);
- }
- {
- // void* memchr(void*, int, size_t)
- char storage[] = "hello world";
- std::size_t count = 11;
- void* s = storage;
- ASSERT_SAME_TYPE(void*, decltype(std::memchr(s, 'l', count)));
- void* res = std::memchr(s, 'l', count);
- assert(res == &storage[2]);
- }
+ {
+ // const void* memchr(const void*, int, size_t)
+ char storage[] = "hello world";
+ std::size_t count = 11;
+ const void* s = storage;
+ ASSERT_SAME_TYPE(const void*, decltype(std::memchr(s, 'l', count)));
+ const void* res = std::memchr(s, 'l', count);
+ assert(res == &storage[2]);
+ }
+ {
+ // void* memchr(void*, int, size_t)
+ char storage[] = "hello world";
+ std::size_t count = 11;
+ void* s = storage;
+ ASSERT_SAME_TYPE(void*, decltype(std::memchr(s, 'l', count)));
+ void* res = std::memchr(s, 'l', count);
+ assert(res == &storage[2]);
+ }
- {
- // const char* strstr(const char*, const char*)
- char storage[] = "hello world";
- const char* s = storage;
- ASSERT_SAME_TYPE(const char*, decltype(std::strstr(s, "wor")));
- const char* res = std::strstr(s, "wor");
- assert(res == &storage[6]);
- }
- {
- // char* strstr(char*, const char*)
- char storage[] = "hello world";
- char* s = storage;
- ASSERT_SAME_TYPE(char*, decltype(std::strstr(s, "wor")));
- char* res = std::strstr(s, "wor");
- assert(res == &storage[6]);
- }
+ {
+ // const char* strstr(const char*, const char*)
+ char storage[] = "hello world";
+ const char* s = storage;
+ ASSERT_SAME_TYPE(const char*, decltype(std::strstr(s, "wor")));
+ const char* res = std::strstr(s, "wor");
+ assert(res == &storage[6]);
+ }
+ {
+ // char* strstr(char*, const char*)
+ char storage[] = "hello world";
+ char* s = storage;
+ ASSERT_SAME_TYPE(char*, decltype(std::strstr(s, "wor")));
+ char* res = std::strstr(s, "wor");
+ assert(res == &storage[6]);
+ }
- return 0;
+ return 0;
}
diff --git a/libcxx/test/std/strings/c.strings/cwchar.pass.cpp b/libcxx/test/std/strings/c.strings/cwchar.pass.cpp
index 4e9909e97a95dcb..3aa660fb919b515 100644
--- a/libcxx/test/std/strings/c.strings/cwchar.pass.cpp
+++ b/libcxx/test/std/strings/c.strings/cwchar.pass.cpp
@@ -19,112 +19,111 @@
#include "test_macros.h"
#ifndef NULL
-#error NULL not defined
+# error NULL not defined
#endif
#ifndef WCHAR_MAX
-#error WCHAR_MAX not defined
+# error WCHAR_MAX not defined
#endif
#ifndef WCHAR_MIN
-#error WCHAR_MIN not defined
+# error WCHAR_MIN not defined
#endif
#ifndef WEOF
-#error WEOF not defined
+# error WEOF not defined
#endif
-int main(int, char**)
-{
- std::mbstate_t mb = {};
- std::size_t s = 0;
- std::tm *tm = 0;
- std::wint_t w = 0;
- ::FILE* fp = 0;
- std::va_list va;
+int main(int, char**) {
+ std::mbstate_t mb = {};
+ std::size_t s = 0;
+ std::tm* tm = 0;
+ std::wint_t w = 0;
+ ::FILE* fp = 0;
+ std::va_list va;
- char* ns = 0;
- wchar_t* ws = 0;
- const wchar_t* cws = 0;
- wchar_t** wsp = 0;
+ char* ns = 0;
+ wchar_t* ws = 0;
+ const wchar_t* cws = 0;
+ wchar_t** wsp = 0;
- ((void)mb); // Prevent unused warning
- ((void)s); // Prevent unused warning
- ((void)tm); // Prevent unused warning
- ((void)w); // Prevent unused warning
- ((void)fp); // Prevent unused warning
- ((void)va); // Prevent unused warning
- ((void)ns); // Prevent unused warning
- ((void)ws); // Prevent unused warning
- ((void)cws); // Prevent unused warning
- ((void)wsp); // Prevent unused warning
+ ((void)mb); // Prevent unused warning
+ ((void)s); // Prevent unused warning
+ ((void)tm); // Prevent unused warning
+ ((void)w); // Prevent unused warning
+ ((void)fp); // Prevent unused warning
+ ((void)va); // Prevent unused warning
+ ((void)ns); // Prevent unused warning
+ ((void)ws); // Prevent unused warning
+ ((void)cws); // Prevent unused warning
+ ((void)wsp); // Prevent unused warning
- ASSERT_SAME_TYPE(int, decltype(std::fwprintf(fp, L"")));
- ASSERT_SAME_TYPE(int, decltype(std::fwscanf(fp, L"")));
- ASSERT_SAME_TYPE(int, decltype(std::swprintf(ws, s, L"")));
- ASSERT_SAME_TYPE(int, decltype(std::swscanf(L"", L"")));
- ASSERT_SAME_TYPE(int, decltype(std::vfwprintf(fp, L"", va)));
- ASSERT_SAME_TYPE(int, decltype(std::vfwscanf(fp, L"", va)));
- ASSERT_SAME_TYPE(int, decltype(std::vswprintf(ws, s, L"", va)));
- ASSERT_SAME_TYPE(int, decltype(std::vswscanf(L"", L"", va)));
- ASSERT_SAME_TYPE(std::wint_t, decltype(std::fgetwc(fp)));
- ASSERT_SAME_TYPE(wchar_t*, decltype(std::fgetws(ws, 0, fp)));
- ASSERT_SAME_TYPE(std::wint_t, decltype(std::fputwc(L' ', fp)));
- ASSERT_SAME_TYPE(int, decltype(std::fputws(L"", fp)));
- ASSERT_SAME_TYPE(int, decltype(std::fwide(fp, 0)));
- ASSERT_SAME_TYPE(std::wint_t, decltype(std::getwc(fp)));
- ASSERT_SAME_TYPE(std::wint_t, decltype(std::putwc(L' ', fp)));
- ASSERT_SAME_TYPE(std::wint_t, decltype(std::ungetwc(L' ', fp)));
- ASSERT_SAME_TYPE(double, decltype(std::wcstod(L"", wsp)));
- ASSERT_SAME_TYPE(float, decltype(std::wcstof(L"", wsp)));
- ASSERT_SAME_TYPE(long double, decltype(std::wcstold(L"", wsp)));
- ASSERT_SAME_TYPE(long, decltype(std::wcstol(L"", wsp, 0)));
- ASSERT_SAME_TYPE(long long, decltype(std::wcstoll(L"", wsp, 0)));
- ASSERT_SAME_TYPE(unsigned long, decltype(std::wcstoul(L"", wsp, 0)));
- ASSERT_SAME_TYPE(unsigned long long, decltype(std::wcstoull(L"", wsp, 0)));
- ASSERT_SAME_TYPE(wchar_t*, decltype(std::wcscpy(ws, L"")));
- ASSERT_SAME_TYPE(wchar_t*, decltype(std::wcsncpy(ws, L"", s)));
- ASSERT_SAME_TYPE(wchar_t*, decltype(std::wcscat(ws, L"")));
- ASSERT_SAME_TYPE(wchar_t*, decltype(std::wcsncat(ws, L"", s)));
- ASSERT_SAME_TYPE(int, decltype(std::wcscmp(L"", L"")));
- ASSERT_SAME_TYPE(int, decltype(std::wcscoll(L"", L"")));
- ASSERT_SAME_TYPE(int, decltype(std::wcsncmp(L"", L"", s)));
- ASSERT_SAME_TYPE(std::size_t, decltype(std::wcsxfrm(ws, L"", s)));
- ASSERT_SAME_TYPE(wchar_t*, decltype(std::wcschr(ws, L' ')));
- ASSERT_SAME_TYPE(const wchar_t*, decltype(std::wcschr(cws, L' ')));
- ASSERT_SAME_TYPE(std::size_t, decltype(std::wcscspn(L"", L"")));
- ASSERT_SAME_TYPE(std::size_t, decltype(std::wcslen(L"")));
- ASSERT_SAME_TYPE(wchar_t*, decltype(std::wcspbrk(ws, L"")));
- ASSERT_SAME_TYPE(const wchar_t*, decltype(std::wcspbrk(cws, L"")));
- ASSERT_SAME_TYPE(wchar_t*, decltype(std::wcsrchr(ws, L' ')));
- ASSERT_SAME_TYPE(const wchar_t*, decltype(std::wcsrchr(cws, L' ')));
- ASSERT_SAME_TYPE(std::size_t, decltype(std::wcsspn(L"", L"")));
- ASSERT_SAME_TYPE(wchar_t*, decltype(std::wcsstr(ws, L"")));
- ASSERT_SAME_TYPE(const wchar_t*, decltype(std::wcsstr(cws, L"")));
- ASSERT_SAME_TYPE(wchar_t*, decltype(std::wcstok(ws, L"", wsp)));
- ASSERT_SAME_TYPE(wchar_t*, decltype(std::wmemchr(ws, L' ', s)));
- ASSERT_SAME_TYPE(const wchar_t*, decltype(std::wmemchr(cws, L' ', s)));
- ASSERT_SAME_TYPE(int, decltype(std::wmemcmp(L"", L"", s)));
- ASSERT_SAME_TYPE(wchar_t*, decltype(std::wmemcpy(ws, L"", s)));
- ASSERT_SAME_TYPE(wchar_t*, decltype(std::wmemmove(ws, L"", s)));
- ASSERT_SAME_TYPE(wchar_t*, decltype(std::wmemset(ws, L' ', s)));
- ASSERT_SAME_TYPE(std::size_t, decltype(std::wcsftime(ws, s, L"", tm)));
- ASSERT_SAME_TYPE(wint_t, decltype(std::btowc(0)));
- ASSERT_SAME_TYPE(int, decltype(std::wctob(w)));
- ASSERT_SAME_TYPE(int, decltype(std::mbsinit(&mb)));
- ASSERT_SAME_TYPE(std::size_t, decltype(std::mbrlen("", s, &mb)));
- ASSERT_SAME_TYPE(std::size_t, decltype(std::mbrtowc(ws, "", s, &mb)));
- ASSERT_SAME_TYPE(std::size_t, decltype(std::wcrtomb(ns, L' ', &mb)));
- ASSERT_SAME_TYPE(std::size_t, decltype(std::mbsrtowcs(ws, (const char**)0, s, &mb)));
- ASSERT_SAME_TYPE(std::size_t, decltype(std::wcsrtombs(ns, (const wchar_t**)0, s, &mb)));
+ ASSERT_SAME_TYPE(int, decltype(std::fwprintf(fp, L"")));
+ ASSERT_SAME_TYPE(int, decltype(std::fwscanf(fp, L"")));
+ ASSERT_SAME_TYPE(int, decltype(std::swprintf(ws, s, L"")));
+ ASSERT_SAME_TYPE(int, decltype(std::swscanf(L"", L"")));
+ ASSERT_SAME_TYPE(int, decltype(std::vfwprintf(fp, L"", va)));
+ ASSERT_SAME_TYPE(int, decltype(std::vfwscanf(fp, L"", va)));
+ ASSERT_SAME_TYPE(int, decltype(std::vswprintf(ws, s, L"", va)));
+ ASSERT_SAME_TYPE(int, decltype(std::vswscanf(L"", L"", va)));
+ ASSERT_SAME_TYPE(std::wint_t, decltype(std::fgetwc(fp)));
+ ASSERT_SAME_TYPE(wchar_t*, decltype(std::fgetws(ws, 0, fp)));
+ ASSERT_SAME_TYPE(std::wint_t, decltype(std::fputwc(L' ', fp)));
+ ASSERT_SAME_TYPE(int, decltype(std::fputws(L"", fp)));
+ ASSERT_SAME_TYPE(int, decltype(std::fwide(fp, 0)));
+ ASSERT_SAME_TYPE(std::wint_t, decltype(std::getwc(fp)));
+ ASSERT_SAME_TYPE(std::wint_t, decltype(std::putwc(L' ', fp)));
+ ASSERT_SAME_TYPE(std::wint_t, decltype(std::ungetwc(L' ', fp)));
+ ASSERT_SAME_TYPE(double, decltype(std::wcstod(L"", wsp)));
+ ASSERT_SAME_TYPE(float, decltype(std::wcstof(L"", wsp)));
+ ASSERT_SAME_TYPE(long double, decltype(std::wcstold(L"", wsp)));
+ ASSERT_SAME_TYPE(long, decltype(std::wcstol(L"", wsp, 0)));
+ ASSERT_SAME_TYPE(long long, decltype(std::wcstoll(L"", wsp, 0)));
+ ASSERT_SAME_TYPE(unsigned long, decltype(std::wcstoul(L"", wsp, 0)));
+ ASSERT_SAME_TYPE(unsigned long long, decltype(std::wcstoull(L"", wsp, 0)));
+ ASSERT_SAME_TYPE(wchar_t*, decltype(std::wcscpy(ws, L"")));
+ ASSERT_SAME_TYPE(wchar_t*, decltype(std::wcsncpy(ws, L"", s)));
+ ASSERT_SAME_TYPE(wchar_t*, decltype(std::wcscat(ws, L"")));
+ ASSERT_SAME_TYPE(wchar_t*, decltype(std::wcsncat(ws, L"", s)));
+ ASSERT_SAME_TYPE(int, decltype(std::wcscmp(L"", L"")));
+ ASSERT_SAME_TYPE(int, decltype(std::wcscoll(L"", L"")));
+ ASSERT_SAME_TYPE(int, decltype(std::wcsncmp(L"", L"", s)));
+ ASSERT_SAME_TYPE(std::size_t, decltype(std::wcsxfrm(ws, L"", s)));
+ ASSERT_SAME_TYPE(wchar_t*, decltype(std::wcschr(ws, L' ')));
+ ASSERT_SAME_TYPE(const wchar_t*, decltype(std::wcschr(cws, L' ')));
+ ASSERT_SAME_TYPE(std::size_t, decltype(std::wcscspn(L"", L"")));
+ ASSERT_SAME_TYPE(std::size_t, decltype(std::wcslen(L"")));
+ ASSERT_SAME_TYPE(wchar_t*, decltype(std::wcspbrk(ws, L"")));
+ ASSERT_SAME_TYPE(const wchar_t*, decltype(std::wcspbrk(cws, L"")));
+ ASSERT_SAME_TYPE(wchar_t*, decltype(std::wcsrchr(ws, L' ')));
+ ASSERT_SAME_TYPE(const wchar_t*, decltype(std::wcsrchr(cws, L' ')));
+ ASSERT_SAME_TYPE(std::size_t, decltype(std::wcsspn(L"", L"")));
+ ASSERT_SAME_TYPE(wchar_t*, decltype(std::wcsstr(ws, L"")));
+ ASSERT_SAME_TYPE(const wchar_t*, decltype(std::wcsstr(cws, L"")));
+ ASSERT_SAME_TYPE(wchar_t*, decltype(std::wcstok(ws, L"", wsp)));
+ ASSERT_SAME_TYPE(wchar_t*, decltype(std::wmemchr(ws, L' ', s)));
+ ASSERT_SAME_TYPE(const wchar_t*, decltype(std::wmemchr(cws, L' ', s)));
+ ASSERT_SAME_TYPE(int, decltype(std::wmemcmp(L"", L"", s)));
+ ASSERT_SAME_TYPE(wchar_t*, decltype(std::wmemcpy(ws, L"", s)));
+ ASSERT_SAME_TYPE(wchar_t*, decltype(std::wmemmove(ws, L"", s)));
+ ASSERT_SAME_TYPE(wchar_t*, decltype(std::wmemset(ws, L' ', s)));
+ ASSERT_SAME_TYPE(std::size_t, decltype(std::wcsftime(ws, s, L"", tm)));
+ ASSERT_SAME_TYPE(wint_t, decltype(std::btowc(0)));
+ ASSERT_SAME_TYPE(int, decltype(std::wctob(w)));
+ ASSERT_SAME_TYPE(int, decltype(std::mbsinit(&mb)));
+ ASSERT_SAME_TYPE(std::size_t, decltype(std::mbrlen("", s, &mb)));
+ ASSERT_SAME_TYPE(std::size_t, decltype(std::mbrtowc(ws, "", s, &mb)));
+ ASSERT_SAME_TYPE(std::size_t, decltype(std::wcrtomb(ns, L' ', &mb)));
+ ASSERT_SAME_TYPE(std::size_t, decltype(std::mbsrtowcs(ws, (const char**)0, s, &mb)));
+ ASSERT_SAME_TYPE(std::size_t, decltype(std::wcsrtombs(ns, (const wchar_t**)0, s, &mb)));
- ASSERT_SAME_TYPE(std::wint_t, decltype(std::getwchar()));
- ASSERT_SAME_TYPE(int, decltype(std::vwscanf(L"", va)));
- ASSERT_SAME_TYPE(int, decltype(std::wscanf(L"")));
+ ASSERT_SAME_TYPE(std::wint_t, decltype(std::getwchar()));
+ ASSERT_SAME_TYPE(int, decltype(std::vwscanf(L"", va)));
+ ASSERT_SAME_TYPE(int, decltype(std::wscanf(L"")));
- ASSERT_SAME_TYPE(std::wint_t, decltype(std::putwchar(L' ')));
- ASSERT_SAME_TYPE(int, decltype(std::vwprintf(L"", va)));
- ASSERT_SAME_TYPE(int, decltype(std::wprintf(L"")));
+ ASSERT_SAME_TYPE(std::wint_t, decltype(std::putwchar(L' ')));
+ ASSERT_SAME_TYPE(int, decltype(std::vwprintf(L"", va)));
+ ASSERT_SAME_TYPE(int, decltype(std::wprintf(L"")));
- return 0;
+ return 0;
}
diff --git a/libcxx/test/std/strings/c.strings/cwctype.pass.cpp b/libcxx/test/std/strings/c.strings/cwctype.pass.cpp
index 171ebf8866b696c..d421bea5a5672a1 100644
--- a/libcxx/test/std/strings/c.strings/cwctype.pass.cpp
+++ b/libcxx/test/std/strings/c.strings/cwctype.pass.cpp
@@ -15,106 +15,104 @@
#include "test_macros.h"
-
#ifndef WEOF
-#error WEOF not defined
+# error WEOF not defined
#endif
#ifdef iswalnum
-#error iswalnum defined
+# error iswalnum defined
#endif
#ifdef iswalpha
-#error iswalpha defined
+# error iswalpha defined
#endif
#ifdef iswblank
-#error iswblank defined
+# error iswblank defined
#endif
#ifdef iswcntrl
-#error iswcntrl defined
+# error iswcntrl defined
#endif
#ifdef iswdigit
-#error iswdigit defined
+# error iswdigit defined
#endif
#ifdef iswgraph
-#error iswgraph defined
+# error iswgraph defined
#endif
#ifdef iswlower
-#error iswlower defined
+# error iswlower defined
#endif
#ifdef iswprint
-#error iswprint defined
+# error iswprint defined
#endif
#ifdef iswpunct
-#error iswpunct defined
+# error iswpunct defined
#endif
#ifdef iswspace
-#error iswspace defined
+# error iswspace defined
#endif
#ifdef iswupper
-#error iswupper defined
+# error iswupper defined
#endif
#ifdef iswxdigit
-#error iswxdigit defined
+# error iswxdigit defined
#endif
#ifdef iswctype
-#error iswctype defined
+# error iswctype defined
#endif
#ifdef wctype
-#error wctype defined
+# error wctype defined
#endif
#ifdef towlower
-#error towlower defined
+# error towlower defined
#endif
#ifdef towupper
-#error towupper defined
+# error towupper defined
#endif
#ifdef towctrans
-#error towctrans defined
+# error towctrans defined
#endif
#ifdef wctrans
-#error wctrans defined
-#endif
-
-int main(int, char**)
-{
- std::wint_t w = 0;
- ASSERT_SAME_TYPE(int, decltype(std::iswalnum(w)));
- ASSERT_SAME_TYPE(int, decltype(std::iswalpha(w)));
- ASSERT_SAME_TYPE(int, decltype(std::iswblank(w)));
- ASSERT_SAME_TYPE(int, decltype(std::iswcntrl(w)));
- ASSERT_SAME_TYPE(int, decltype(std::iswdigit(w)));
- ASSERT_SAME_TYPE(int, decltype(std::iswgraph(w)));
- ASSERT_SAME_TYPE(int, decltype(std::iswlower(w)));
- ASSERT_SAME_TYPE(int, decltype(std::iswprint(w)));
- ASSERT_SAME_TYPE(int, decltype(std::iswpunct(w)));
- ASSERT_SAME_TYPE(int, decltype(std::iswspace(w)));
- ASSERT_SAME_TYPE(int, decltype(std::iswupper(w)));
- ASSERT_SAME_TYPE(int, decltype(std::iswxdigit(w)));
-
- ASSERT_SAME_TYPE(int, decltype(std::iswctype(w, std::wctype_t())));
-
- ASSERT_SAME_TYPE(std::wctype_t, decltype(std::wctype("")));
- ASSERT_SAME_TYPE(std::wint_t, decltype(std::towlower(w)));
- ASSERT_SAME_TYPE(std::wint_t, decltype(std::towupper(w)));
- ASSERT_SAME_TYPE(std::wint_t, decltype(std::towctrans(w, std::wctrans_t())));
- ASSERT_SAME_TYPE(std::wctrans_t, decltype(std::wctrans("")));
+# error wctrans defined
+#endif
+
+int main(int, char**) {
+ std::wint_t w = 0;
+ ASSERT_SAME_TYPE(int, decltype(std::iswalnum(w)));
+ ASSERT_SAME_TYPE(int, decltype(std::iswalpha(w)));
+ ASSERT_SAME_TYPE(int, decltype(std::iswblank(w)));
+ ASSERT_SAME_TYPE(int, decltype(std::iswcntrl(w)));
+ ASSERT_SAME_TYPE(int, decltype(std::iswdigit(w)));
+ ASSERT_SAME_TYPE(int, decltype(std::iswgraph(w)));
+ ASSERT_SAME_TYPE(int, decltype(std::iswlower(w)));
+ ASSERT_SAME_TYPE(int, decltype(std::iswprint(w)));
+ ASSERT_SAME_TYPE(int, decltype(std::iswpunct(w)));
+ ASSERT_SAME_TYPE(int, decltype(std::iswspace(w)));
+ ASSERT_SAME_TYPE(int, decltype(std::iswupper(w)));
+ ASSERT_SAME_TYPE(int, decltype(std::iswxdigit(w)));
+
+ ASSERT_SAME_TYPE(int, decltype(std::iswctype(w, std::wctype_t())));
+
+ ASSERT_SAME_TYPE(std::wctype_t, decltype(std::wctype("")));
+ ASSERT_SAME_TYPE(std::wint_t, decltype(std::towlower(w)));
+ ASSERT_SAME_TYPE(std::wint_t, decltype(std::towupper(w)));
+ ASSERT_SAME_TYPE(std::wint_t, decltype(std::towctrans(w, std::wctrans_t())));
+ ASSERT_SAME_TYPE(std::wctrans_t, decltype(std::wctrans("")));
return 0;
}
diff --git a/libcxx/test/std/strings/char.traits/char.traits.require/nothing_to_do.pass.cpp b/libcxx/test/std/strings/char.traits/char.traits.require/nothing_to_do.pass.cpp
index 1f764da05d6b5f5..3e0d2a6570f42de 100644
--- a/libcxx/test/std/strings/char.traits/char.traits.require/nothing_to_do.pass.cpp
+++ b/libcxx/test/std/strings/char.traits/char.traits.require/nothing_to_do.pass.cpp
@@ -6,8 +6,4 @@
//
//===----------------------------------------------------------------------===//
-int main(int, char**)
-{
-
- return 0;
-}
+int main(int, char**) { return 0; }
diff --git a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/assign2.pass.cpp b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/assign2.pass.cpp
index c60e6db9fc47fc8..0dca0e2bc521013 100644
--- a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/assign2.pass.cpp
+++ b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/assign2.pass.cpp
@@ -19,22 +19,20 @@
#include "test_macros.h"
#if TEST_STD_VER > 14
-constexpr bool test_constexpr()
-{
- char c = '1';
- std::char_traits<char>::assign(c, 'a');
- return c == 'a';
+constexpr bool test_constexpr() {
+ char c = '1';
+ std::char_traits<char>::assign(c, 'a');
+ return c == 'a';
}
#endif
-int main(int, char**)
-{
- char c = '\0';
- std::char_traits<char>::assign(c, 'a');
- assert(c == 'a');
+int main(int, char**) {
+ char c = '\0';
+ std::char_traits<char>::assign(c, 'a');
+ assert(c == 'a');
#if TEST_STD_VER > 14
- static_assert(test_constexpr(), "" );
+ static_assert(test_constexpr(), "");
#endif
return 0;
diff --git a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/assign3.pass.cpp b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/assign3.pass.cpp
index 4dcd7c8f02f8afa..1e41297ab94ce73 100644
--- a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/assign3.pass.cpp
+++ b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/assign3.pass.cpp
@@ -17,24 +17,22 @@
#include "test_macros.h"
-TEST_CONSTEXPR_CXX20 bool test()
-{
- char s2[3] = {0};
- assert(std::char_traits<char>::assign(s2, 3, char(5)) == s2);
- assert(s2[0] == char(5));
- assert(s2[1] == char(5));
- assert(s2[2] == char(5));
- assert(std::char_traits<char>::assign(NULL, 0, char(5)) == NULL);
+TEST_CONSTEXPR_CXX20 bool test() {
+ char s2[3] = {0};
+ assert(std::char_traits<char>::assign(s2, 3, char(5)) == s2);
+ assert(s2[0] == char(5));
+ assert(s2[1] == char(5));
+ assert(s2[2] == char(5));
+ assert(std::char_traits<char>::assign(NULL, 0, char(5)) == NULL);
return true;
}
-int main(int, char**)
-{
- test();
+int main(int, char**) {
+ test();
#if TEST_STD_VER > 17
- static_assert(test());
+ static_assert(test());
#endif
return 0;
diff --git a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/copy.pass.cpp b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/copy.pass.cpp
index 5c471a3c0fb3c93..c891bb637b66c40 100644
--- a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/copy.pass.cpp
+++ b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/copy.pass.cpp
@@ -17,26 +17,24 @@
#include "test_macros.h"
-TEST_CONSTEXPR_CXX20 bool test()
-{
- char s1[] = {1, 2, 3};
- char s2[3] = {0};
- assert(std::char_traits<char>::copy(s2, s1, 3) == s2);
- assert(s2[0] == char(1));
- assert(s2[1] == char(2));
- assert(s2[2] == char(3));
- assert(std::char_traits<char>::copy(NULL, s1, 0) == NULL);
- assert(std::char_traits<char>::copy(s1, NULL, 0) == s1);
+TEST_CONSTEXPR_CXX20 bool test() {
+ char s1[] = {1, 2, 3};
+ char s2[3] = {0};
+ assert(std::char_traits<char>::copy(s2, s1, 3) == s2);
+ assert(s2[0] == char(1));
+ assert(s2[1] == char(2));
+ assert(s2[2] == char(3));
+ assert(std::char_traits<char>::copy(NULL, s1, 0) == NULL);
+ assert(std::char_traits<char>::copy(s1, NULL, 0) == s1);
return true;
}
-int main(int, char**)
-{
- test();
+int main(int, char**) {
+ test();
#if TEST_STD_VER > 17
- static_assert(test());
+ static_assert(test());
#endif
return 0;
diff --git a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/eof.pass.cpp b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/eof.pass.cpp
index 93eb2a68dbfc0a7..332e48daf2031b6 100644
--- a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/eof.pass.cpp
+++ b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/eof.pass.cpp
@@ -17,9 +17,8 @@
#include "test_macros.h"
-int main(int, char**)
-{
- assert(std::char_traits<char>::eof() == EOF);
+int main(int, char**) {
+ assert(std::char_traits<char>::eof() == EOF);
return 0;
}
diff --git a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/eq.pass.cpp b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/eq.pass.cpp
index e379848a1acde54..2e1727cc3388543 100644
--- a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/eq.pass.cpp
+++ b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/eq.pass.cpp
@@ -17,10 +17,9 @@
#include "test_macros.h"
-int main(int, char**)
-{
- assert(std::char_traits<char>::eq('a', 'a'));
- assert(!std::char_traits<char>::eq('a', 'A'));
+int main(int, char**) {
+ assert(std::char_traits<char>::eq('a', 'a'));
+ assert(!std::char_traits<char>::eq('a', 'A'));
return 0;
}
diff --git a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/eq_int_type.pass.cpp b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/eq_int_type.pass.cpp
index 4c82d650480be39..7b7cc467c1cd543 100644
--- a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/eq_int_type.pass.cpp
+++ b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/eq_int_type.pass.cpp
@@ -17,13 +17,11 @@
#include "test_macros.h"
-int main(int, char**)
-{
- assert( std::char_traits<char>::eq_int_type('a', 'a'));
- assert(!std::char_traits<char>::eq_int_type('a', 'A'));
- assert(!std::char_traits<char>::eq_int_type(std::char_traits<char>::eof(), 'A'));
- assert( std::char_traits<char>::eq_int_type(std::char_traits<char>::eof(),
- std::char_traits<char>::eof()));
+int main(int, char**) {
+ assert(std::char_traits<char>::eq_int_type('a', 'a'));
+ assert(!std::char_traits<char>::eq_int_type('a', 'A'));
+ assert(!std::char_traits<char>::eq_int_type(std::char_traits<char>::eof(), 'A'));
+ assert(std::char_traits<char>::eq_int_type(std::char_traits<char>::eof(), std::char_traits<char>::eof()));
return 0;
}
diff --git a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/find.pass.cpp b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/find.pass.cpp
index 974500840800299..b2b644887a2034b 100644
--- a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/find.pass.cpp
+++ b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/find.pass.cpp
@@ -19,28 +19,24 @@
#include "test_macros.h"
#if TEST_STD_VER > 14
-constexpr bool test_constexpr()
-{
- constexpr const char *p = "123";
- return std::char_traits<char>::find(p, 3, '1') == p
- && std::char_traits<char>::find(p, 3, '2') == p + 1
- && std::char_traits<char>::find(p, 3, '3') == p + 2
- && std::char_traits<char>::find(p, 3, '4') == nullptr;
+constexpr bool test_constexpr() {
+ constexpr const char* p = "123";
+ return std::char_traits<char>::find(p, 3, '1') == p && std::char_traits<char>::find(p, 3, '2') == p + 1 &&
+ std::char_traits<char>::find(p, 3, '3') == p + 2 && std::char_traits<char>::find(p, 3, '4') == nullptr;
}
#endif
-int main(int, char**)
-{
- char s1[] = {1, 2, 3};
- assert(std::char_traits<char>::find(s1, 3, char(1)) == s1);
- assert(std::char_traits<char>::find(s1, 3, char(2)) == s1+1);
- assert(std::char_traits<char>::find(s1, 3, char(3)) == s1+2);
- assert(std::char_traits<char>::find(s1, 3, char(4)) == 0);
- assert(std::char_traits<char>::find(s1, 3, char(0)) == 0);
- assert(std::char_traits<char>::find(NULL, 0, char(0)) == 0);
+int main(int, char**) {
+ char s1[] = {1, 2, 3};
+ assert(std::char_traits<char>::find(s1, 3, char(1)) == s1);
+ assert(std::char_traits<char>::find(s1, 3, char(2)) == s1 + 1);
+ assert(std::char_traits<char>::find(s1, 3, char(3)) == s1 + 2);
+ assert(std::char_traits<char>::find(s1, 3, char(4)) == 0);
+ assert(std::char_traits<char>::find(s1, 3, char(0)) == 0);
+ assert(std::char_traits<char>::find(NULL, 0, char(0)) == 0);
#if TEST_STD_VER > 14
- static_assert(test_constexpr(), "" );
+ static_assert(test_constexpr(), "");
#endif
return 0;
diff --git a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/length.pass.cpp b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/length.pass.cpp
index 8be4e0a7055193e..71b04ceae01ff1b 100644
--- a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/length.pass.cpp
+++ b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/length.pass.cpp
@@ -19,24 +19,20 @@
#include "test_macros.h"
#if TEST_STD_VER > 14
-constexpr bool test_constexpr()
-{
- return std::char_traits<char>::length("") == 0
- && std::char_traits<char>::length("abcd") == 4;
+constexpr bool test_constexpr() {
+ return std::char_traits<char>::length("") == 0 && std::char_traits<char>::length("abcd") == 4;
}
#endif
-
-int main(int, char**)
-{
- assert(std::char_traits<char>::length("") == 0);
- assert(std::char_traits<char>::length("a") == 1);
- assert(std::char_traits<char>::length("aa") == 2);
- assert(std::char_traits<char>::length("aaa") == 3);
- assert(std::char_traits<char>::length("aaaa") == 4);
+int main(int, char**) {
+ assert(std::char_traits<char>::length("") == 0);
+ assert(std::char_traits<char>::length("a") == 1);
+ assert(std::char_traits<char>::length("aa") == 2);
+ assert(std::char_traits<char>::length("aaa") == 3);
+ assert(std::char_traits<char>::length("aaaa") == 4);
#if TEST_STD_VER > 14
- static_assert(test_constexpr(), "" );
+ static_assert(test_constexpr(), "");
#endif
return 0;
diff --git a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/lt.pass.cpp b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/lt.pass.cpp
index 81a8574eac8bdce..c83a00b5d4512cd 100644
--- a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/lt.pass.cpp
+++ b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/lt.pass.cpp
@@ -17,8 +17,7 @@
#include "test_macros.h"
-int main(int, char**)
-{
+int main(int, char**) {
assert(std::char_traits<char>::lt('\0', 'A') == ('\0' < 'A'));
assert(std::char_traits<char>::lt('A', '\0') == ('A' < '\0'));
diff --git a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/move.pass.cpp b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/move.pass.cpp
index fd29d39ffee5d78..c22af302d550e6a 100644
--- a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/move.pass.cpp
+++ b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/move.pass.cpp
@@ -17,30 +17,28 @@
#include "test_macros.h"
-TEST_CONSTEXPR_CXX20 bool test()
-{
- char s1[] = {1, 2, 3};
- assert(std::char_traits<char>::move(s1, s1+1, 2) == s1);
- assert(s1[0] == char(2));
- assert(s1[1] == char(3));
- assert(s1[2] == char(3));
- s1[2] = char(0);
- assert(std::char_traits<char>::move(s1+1, s1, 2) == s1+1);
- assert(s1[0] == char(2));
- assert(s1[1] == char(2));
- assert(s1[2] == char(3));
- assert(std::char_traits<char>::move(NULL, s1, 0) == NULL);
- assert(std::char_traits<char>::move(s1, NULL, 0) == s1);
+TEST_CONSTEXPR_CXX20 bool test() {
+ char s1[] = {1, 2, 3};
+ assert(std::char_traits<char>::move(s1, s1 + 1, 2) == s1);
+ assert(s1[0] == char(2));
+ assert(s1[1] == char(3));
+ assert(s1[2] == char(3));
+ s1[2] = char(0);
+ assert(std::char_traits<char>::move(s1 + 1, s1, 2) == s1 + 1);
+ assert(s1[0] == char(2));
+ assert(s1[1] == char(2));
+ assert(s1[2] == char(3));
+ assert(std::char_traits<char>::move(NULL, s1, 0) == NULL);
+ assert(std::char_traits<char>::move(s1, NULL, 0) == s1);
return true;
}
-int main(int, char**)
-{
- test();
+int main(int, char**) {
+ test();
#if TEST_STD_VER > 17
- static_assert(test());
+ static_assert(test());
#endif
return 0;
diff --git a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/not_eof.pass.cpp b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/not_eof.pass.cpp
index a03479b08b0c4be..e07897ab0bf5b2a 100644
--- a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/not_eof.pass.cpp
+++ b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/not_eof.pass.cpp
@@ -17,13 +17,11 @@
#include "test_macros.h"
-int main(int, char**)
-{
- assert(std::char_traits<char>::not_eof('a') == 'a');
- assert(std::char_traits<char>::not_eof('A') == 'A');
- assert(std::char_traits<char>::not_eof(0) == 0);
- assert(std::char_traits<char>::not_eof(std::char_traits<char>::eof()) !=
- std::char_traits<char>::eof());
+int main(int, char**) {
+ assert(std::char_traits<char>::not_eof('a') == 'a');
+ assert(std::char_traits<char>::not_eof('A') == 'A');
+ assert(std::char_traits<char>::not_eof(0) == 0);
+ assert(std::char_traits<char>::not_eof(std::char_traits<char>::eof()) != std::char_traits<char>::eof());
return 0;
}
diff --git a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/to_char_type.pass.cpp b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/to_char_type.pass.cpp
index 079a83e766b3e29..2cd618847b82825 100644
--- a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/to_char_type.pass.cpp
+++ b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/to_char_type.pass.cpp
@@ -17,11 +17,10 @@
#include "test_macros.h"
-int main(int, char**)
-{
- assert(std::char_traits<char>::to_char_type('a') == 'a');
- assert(std::char_traits<char>::to_char_type('A') == 'A');
- assert(std::char_traits<char>::to_char_type(0) == 0);
+int main(int, char**) {
+ assert(std::char_traits<char>::to_char_type('a') == 'a');
+ assert(std::char_traits<char>::to_char_type('A') == 'A');
+ assert(std::char_traits<char>::to_char_type(0) == 0);
return 0;
}
diff --git a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/to_int_type.pass.cpp b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/to_int_type.pass.cpp
index 525395de4afe096..24a5775ea48bae2 100644
--- a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/to_int_type.pass.cpp
+++ b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/to_int_type.pass.cpp
@@ -17,11 +17,10 @@
#include "test_macros.h"
-int main(int, char**)
-{
- assert(std::char_traits<char>::to_int_type('a') == 'a');
- assert(std::char_traits<char>::to_int_type('A') == 'A');
- assert(std::char_traits<char>::to_int_type(0) == 0);
+int main(int, char**) {
+ assert(std::char_traits<char>::to_int_type('a') == 'a');
+ assert(std::char_traits<char>::to_int_type('A') == 'A');
+ assert(std::char_traits<char>::to_int_type(0) == 0);
return 0;
}
diff --git a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/assign2.pass.cpp b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/assign2.pass.cpp
index 23901440fd4c70c..a9b3d32be83072b 100644
--- a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/assign2.pass.cpp
+++ b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/assign2.pass.cpp
@@ -19,24 +19,22 @@
#include "test_macros.h"
#if TEST_STD_VER > 14
-constexpr bool test_constexpr()
-{
- char16_t c = u'1';
- std::char_traits<char16_t>::assign(c, u'a');
- return c == u'a';
+constexpr bool test_constexpr() {
+ char16_t c = u'1';
+ std::char_traits<char16_t>::assign(c, u'a');
+ return c == u'a';
}
#endif
-int main(int, char**)
-{
+int main(int, char**) {
#if TEST_STD_VER >= 11
- char16_t c = u'\0';
- std::char_traits<char16_t>::assign(c, u'a');
- assert(c == u'a');
+ char16_t c = u'\0';
+ std::char_traits<char16_t>::assign(c, u'a');
+ assert(c == u'a');
#endif
#if TEST_STD_VER > 14
- static_assert(test_constexpr(), "" );
+ static_assert(test_constexpr(), "");
#endif
return 0;
diff --git a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/assign3.pass.cpp b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/assign3.pass.cpp
index bab76a6c931cebc..d72ac9285044891 100644
--- a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/assign3.pass.cpp
+++ b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/assign3.pass.cpp
@@ -17,24 +17,22 @@
#include "test_macros.h"
-TEST_CONSTEXPR_CXX20 bool test()
-{
- char16_t s2[3] = {0};
- assert(std::char_traits<char16_t>::assign(s2, 3, char16_t(5)) == s2);
- assert(s2[0] == char16_t(5));
- assert(s2[1] == char16_t(5));
- assert(s2[2] == char16_t(5));
- assert(std::char_traits<char16_t>::assign(NULL, 0, char16_t(5)) == NULL);
+TEST_CONSTEXPR_CXX20 bool test() {
+ char16_t s2[3] = {0};
+ assert(std::char_traits<char16_t>::assign(s2, 3, char16_t(5)) == s2);
+ assert(s2[0] == char16_t(5));
+ assert(s2[1] == char16_t(5));
+ assert(s2[2] == char16_t(5));
+ assert(std::char_traits<char16_t>::assign(NULL, 0, char16_t(5)) == NULL);
return true;
}
-int main(int, char**)
-{
- test();
+int main(int, char**) {
+ test();
#if TEST_STD_VER > 17
- static_assert(test());
+ static_assert(test());
#endif
return 0;
diff --git a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/compare.pass.cpp b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/compare.pass.cpp
index 00664b7b2e7d5f4..e94eab7df11690e 100644
--- a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/compare.pass.cpp
+++ b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/compare.pass.cpp
@@ -19,42 +19,39 @@
#include "test_macros.h"
#if TEST_STD_VER > 14
-constexpr bool test_constexpr()
-{
- return std::char_traits<char16_t>::compare(u"123", u"223", 3) < 0
- && std::char_traits<char16_t>::compare(u"223", u"123", 3) > 0
- && std::char_traits<char16_t>::compare(u"123", u"123", 3) == 0;
+constexpr bool test_constexpr() {
+ return std::char_traits<char16_t>::compare(u"123", u"223", 3) < 0 &&
+ std::char_traits<char16_t>::compare(u"223", u"123", 3) > 0 &&
+ std::char_traits<char16_t>::compare(u"123", u"123", 3) == 0;
}
#endif
-
-int main(int, char**)
-{
+int main(int, char**) {
#if TEST_STD_VER >= 11
- assert(std::char_traits<char16_t>::compare(u"", u"", 0) == 0);
- assert(std::char_traits<char16_t>::compare(NULL, NULL, 0) == 0);
-
- assert(std::char_traits<char16_t>::compare(u"1", u"1", 1) == 0);
- assert(std::char_traits<char16_t>::compare(u"1", u"2", 1) < 0);
- assert(std::char_traits<char16_t>::compare(u"2", u"1", 1) > 0);
-
- assert(std::char_traits<char16_t>::compare(u"12", u"12", 2) == 0);
- assert(std::char_traits<char16_t>::compare(u"12", u"13", 2) < 0);
- assert(std::char_traits<char16_t>::compare(u"12", u"22", 2) < 0);
- assert(std::char_traits<char16_t>::compare(u"13", u"12", 2) > 0);
- assert(std::char_traits<char16_t>::compare(u"22", u"12", 2) > 0);
-
- assert(std::char_traits<char16_t>::compare(u"123", u"123", 3) == 0);
- assert(std::char_traits<char16_t>::compare(u"123", u"223", 3) < 0);
- assert(std::char_traits<char16_t>::compare(u"123", u"133", 3) < 0);
- assert(std::char_traits<char16_t>::compare(u"123", u"124", 3) < 0);
- assert(std::char_traits<char16_t>::compare(u"223", u"123", 3) > 0);
- assert(std::char_traits<char16_t>::compare(u"133", u"123", 3) > 0);
- assert(std::char_traits<char16_t>::compare(u"124", u"123", 3) > 0);
+ assert(std::char_traits<char16_t>::compare(u"", u"", 0) == 0);
+ assert(std::char_traits<char16_t>::compare(NULL, NULL, 0) == 0);
+
+ assert(std::char_traits<char16_t>::compare(u"1", u"1", 1) == 0);
+ assert(std::char_traits<char16_t>::compare(u"1", u"2", 1) < 0);
+ assert(std::char_traits<char16_t>::compare(u"2", u"1", 1) > 0);
+
+ assert(std::char_traits<char16_t>::compare(u"12", u"12", 2) == 0);
+ assert(std::char_traits<char16_t>::compare(u"12", u"13", 2) < 0);
+ assert(std::char_traits<char16_t>::compare(u"12", u"22", 2) < 0);
+ assert(std::char_traits<char16_t>::compare(u"13", u"12", 2) > 0);
+ assert(std::char_traits<char16_t>::compare(u"22", u"12", 2) > 0);
+
+ assert(std::char_traits<char16_t>::compare(u"123", u"123", 3) == 0);
+ assert(std::char_traits<char16_t>::compare(u"123", u"223", 3) < 0);
+ assert(std::char_traits<char16_t>::compare(u"123", u"133", 3) < 0);
+ assert(std::char_traits<char16_t>::compare(u"123", u"124", 3) < 0);
+ assert(std::char_traits<char16_t>::compare(u"223", u"123", 3) > 0);
+ assert(std::char_traits<char16_t>::compare(u"133", u"123", 3) > 0);
+ assert(std::char_traits<char16_t>::compare(u"124", u"123", 3) > 0);
#endif
#if TEST_STD_VER > 14
- static_assert(test_constexpr(), "" );
+ static_assert(test_constexpr(), "");
#endif
return 0;
diff --git a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/copy.pass.cpp b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/copy.pass.cpp
index fc0ab1aced898be..37f63fdcbd54415 100644
--- a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/copy.pass.cpp
+++ b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/copy.pass.cpp
@@ -17,27 +17,25 @@
#include "test_macros.h"
-TEST_CONSTEXPR_CXX20 bool test()
-{
- char16_t s1[] = {1, 2, 3};
- char16_t s2[3] = {0};
- assert(std::char_traits<char16_t>::copy(s2, s1, 3) == s2);
- assert(s2[0] == char16_t(1));
- assert(s2[1] == char16_t(2));
- assert(s2[2] == char16_t(3));
- assert(std::char_traits<char16_t>::copy(NULL, s1, 0) == NULL);
- assert(std::char_traits<char16_t>::copy(s1, NULL, 0) == s1);
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test() {
+ char16_t s1[] = {1, 2, 3};
+ char16_t s2[3] = {0};
+ assert(std::char_traits<char16_t>::copy(s2, s1, 3) == s2);
+ assert(s2[0] == char16_t(1));
+ assert(s2[1] == char16_t(2));
+ assert(s2[2] == char16_t(3));
+ assert(std::char_traits<char16_t>::copy(NULL, s1, 0) == NULL);
+ assert(std::char_traits<char16_t>::copy(s1, NULL, 0) == s1);
+
+ return true;
}
-int main(int, char**)
-{
- test();
+int main(int, char**) {
+ test();
#if TEST_STD_VER > 17
- static_assert(test());
+ static_assert(test());
#endif
- return 0;
+ return 0;
}
diff --git a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/eof.pass.cpp b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/eof.pass.cpp
index 8996cc9d67bf445..a5564ad90b84c00 100644
--- a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/eof.pass.cpp
+++ b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/eof.pass.cpp
@@ -14,9 +14,8 @@
#include <string>
-int main(int, char**)
-{
- std::char_traits<char16_t>::int_type i = std::char_traits<char16_t>::eof();
- ((void)i); // Prevent unused warning
- return 0;
+int main(int, char**) {
+ std::char_traits<char16_t>::int_type i = std::char_traits<char16_t>::eof();
+ ((void)i); // Prevent unused warning
+ return 0;
}
diff --git a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/eq.pass.cpp b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/eq.pass.cpp
index 540ee40c3b0ccc6..afc35512af4411f 100644
--- a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/eq.pass.cpp
+++ b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/eq.pass.cpp
@@ -17,9 +17,8 @@
#include <string>
#include <cassert>
-int main(int, char**)
-{
- assert(std::char_traits<char16_t>::eq(u'a', u'a'));
- assert(!std::char_traits<char16_t>::eq(u'a', u'A'));
- return 0;
+int main(int, char**) {
+ assert(std::char_traits<char16_t>::eq(u'a', u'a'));
+ assert(!std::char_traits<char16_t>::eq(u'a', u'A'));
+ return 0;
}
diff --git a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/eq_int_type.pass.cpp b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/eq_int_type.pass.cpp
index 29760310893a2c5..3e9f16ffff74728 100644
--- a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/eq_int_type.pass.cpp
+++ b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/eq_int_type.pass.cpp
@@ -17,15 +17,13 @@
#include "test_macros.h"
-int main(int, char**)
-{
+int main(int, char**) {
#if TEST_STD_VER >= 11
- assert( std::char_traits<char16_t>::eq_int_type(u'a', u'a'));
- assert(!std::char_traits<char16_t>::eq_int_type(u'a', u'A'));
- assert(!std::char_traits<char16_t>::eq_int_type(std::char_traits<char16_t>::eof(), u'A'));
+ assert(std::char_traits<char16_t>::eq_int_type(u'a', u'a'));
+ assert(!std::char_traits<char16_t>::eq_int_type(u'a', u'A'));
+ assert(!std::char_traits<char16_t>::eq_int_type(std::char_traits<char16_t>::eof(), u'A'));
#endif
- assert( std::char_traits<char16_t>::eq_int_type(std::char_traits<char16_t>::eof(),
- std::char_traits<char16_t>::eof()));
+ assert(std::char_traits<char16_t>::eq_int_type(std::char_traits<char16_t>::eof(), std::char_traits<char16_t>::eof()));
- return 0;
+ return 0;
}
diff --git a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/find.pass.cpp b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/find.pass.cpp
index 8b39f4a30cfa317..0b436b1d38883dc 100644
--- a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/find.pass.cpp
+++ b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/find.pass.cpp
@@ -19,28 +19,25 @@
#include "test_macros.h"
#if TEST_STD_VER > 14
-constexpr bool test_constexpr()
-{
- constexpr const char16_t *p = u"123";
- return std::char_traits<char16_t>::find(p, 3, u'1') == p
- && std::char_traits<char16_t>::find(p, 3, u'2') == p + 1
- && std::char_traits<char16_t>::find(p, 3, u'3') == p + 2
- && std::char_traits<char16_t>::find(p, 3, u'4') == nullptr;
+constexpr bool test_constexpr() {
+ constexpr const char16_t* p = u"123";
+ return std::char_traits<char16_t>::find(p, 3, u'1') == p && std::char_traits<char16_t>::find(p, 3, u'2') == p + 1 &&
+ std::char_traits<char16_t>::find(p, 3, u'3') == p + 2 &&
+ std::char_traits<char16_t>::find(p, 3, u'4') == nullptr;
}
#endif
-int main(int, char**)
-{
- char16_t s1[] = {1, 2, 3};
- assert(std::char_traits<char16_t>::find(s1, 3, char16_t(1)) == s1);
- assert(std::char_traits<char16_t>::find(s1, 3, char16_t(2)) == s1+1);
- assert(std::char_traits<char16_t>::find(s1, 3, char16_t(3)) == s1+2);
- assert(std::char_traits<char16_t>::find(s1, 3, char16_t(4)) == 0);
- assert(std::char_traits<char16_t>::find(s1, 3, char16_t(0)) == 0);
- assert(std::char_traits<char16_t>::find(NULL, 0, char16_t(0)) == 0);
+int main(int, char**) {
+ char16_t s1[] = {1, 2, 3};
+ assert(std::char_traits<char16_t>::find(s1, 3, char16_t(1)) == s1);
+ assert(std::char_traits<char16_t>::find(s1, 3, char16_t(2)) == s1 + 1);
+ assert(std::char_traits<char16_t>::find(s1, 3, char16_t(3)) == s1 + 2);
+ assert(std::char_traits<char16_t>::find(s1, 3, char16_t(4)) == 0);
+ assert(std::char_traits<char16_t>::find(s1, 3, char16_t(0)) == 0);
+ assert(std::char_traits<char16_t>::find(NULL, 0, char16_t(0)) == 0);
#if TEST_STD_VER > 14
- static_assert(test_constexpr(), "" );
+ static_assert(test_constexpr(), "");
#endif
return 0;
diff --git a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/length.pass.cpp b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/length.pass.cpp
index 28940e6acdd77b3..2ea6210f40891b5 100644
--- a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/length.pass.cpp
+++ b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/length.pass.cpp
@@ -19,25 +19,22 @@
#include "test_macros.h"
#if TEST_STD_VER > 14
-constexpr bool test_constexpr()
-{
- return std::char_traits<char16_t>::length(u"") == 0
- && std::char_traits<char16_t>::length(u"abcd") == 4;
+constexpr bool test_constexpr() {
+ return std::char_traits<char16_t>::length(u"") == 0 && std::char_traits<char16_t>::length(u"abcd") == 4;
}
#endif
-int main(int, char**)
-{
+int main(int, char**) {
#if TEST_STD_VER >= 11
- assert(std::char_traits<char16_t>::length(u"") == 0);
- assert(std::char_traits<char16_t>::length(u"a") == 1);
- assert(std::char_traits<char16_t>::length(u"aa") == 2);
- assert(std::char_traits<char16_t>::length(u"aaa") == 3);
- assert(std::char_traits<char16_t>::length(u"aaaa") == 4);
+ assert(std::char_traits<char16_t>::length(u"") == 0);
+ assert(std::char_traits<char16_t>::length(u"a") == 1);
+ assert(std::char_traits<char16_t>::length(u"aa") == 2);
+ assert(std::char_traits<char16_t>::length(u"aaa") == 3);
+ assert(std::char_traits<char16_t>::length(u"aaaa") == 4);
#endif
#if TEST_STD_VER > 14
- static_assert(test_constexpr(), "" );
+ static_assert(test_constexpr(), "");
#endif
return 0;
diff --git a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/lt.pass.cpp b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/lt.pass.cpp
index 960e6f899a4dadf..25d0de2503fa004 100644
--- a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/lt.pass.cpp
+++ b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/lt.pass.cpp
@@ -17,9 +17,8 @@
#include <string>
#include <cassert>
-int main(int, char**)
-{
- assert(!std::char_traits<char16_t>::lt(u'a', u'a'));
- assert( std::char_traits<char16_t>::lt(u'A', u'a'));
- return 0;
+int main(int, char**) {
+ assert(!std::char_traits<char16_t>::lt(u'a', u'a'));
+ assert(std::char_traits<char16_t>::lt(u'A', u'a'));
+ return 0;
}
diff --git a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/move.pass.cpp b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/move.pass.cpp
index d011d7c7fba5227..88d36352c6fc914 100644
--- a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/move.pass.cpp
+++ b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/move.pass.cpp
@@ -17,30 +17,28 @@
#include "test_macros.h"
-TEST_CONSTEXPR_CXX20 bool test()
-{
- char16_t s1[] = {1, 2, 3};
- assert(std::char_traits<char16_t>::move(s1, s1+1, 2) == s1);
- assert(s1[0] == char16_t(2));
- assert(s1[1] == char16_t(3));
- assert(s1[2] == char16_t(3));
- s1[2] = char16_t(0);
- assert(std::char_traits<char16_t>::move(s1+1, s1, 2) == s1+1);
- assert(s1[0] == char16_t(2));
- assert(s1[1] == char16_t(2));
- assert(s1[2] == char16_t(3));
- assert(std::char_traits<char16_t>::move(NULL, s1, 0) == NULL);
- assert(std::char_traits<char16_t>::move(s1, NULL, 0) == s1);
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test() {
+ char16_t s1[] = {1, 2, 3};
+ assert(std::char_traits<char16_t>::move(s1, s1 + 1, 2) == s1);
+ assert(s1[0] == char16_t(2));
+ assert(s1[1] == char16_t(3));
+ assert(s1[2] == char16_t(3));
+ s1[2] = char16_t(0);
+ assert(std::char_traits<char16_t>::move(s1 + 1, s1, 2) == s1 + 1);
+ assert(s1[0] == char16_t(2));
+ assert(s1[1] == char16_t(2));
+ assert(s1[2] == char16_t(3));
+ assert(std::char_traits<char16_t>::move(NULL, s1, 0) == NULL);
+ assert(std::char_traits<char16_t>::move(s1, NULL, 0) == s1);
+
+ return true;
}
-int main(int, char**)
-{
- test();
+int main(int, char**) {
+ test();
#if TEST_STD_VER > 17
- static_assert(test());
+ static_assert(test());
#endif
return 0;
diff --git a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/not_eof.pass.cpp b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/not_eof.pass.cpp
index 3db7de11e2621e0..e71d3e143be1e77 100644
--- a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/not_eof.pass.cpp
+++ b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/not_eof.pass.cpp
@@ -17,15 +17,13 @@
#include "test_macros.h"
-int main(int, char**)
-{
+int main(int, char**) {
#if TEST_STD_VER >= 11
- assert(std::char_traits<char16_t>::not_eof(u'a') == u'a');
- assert(std::char_traits<char16_t>::not_eof(u'A') == u'A');
+ assert(std::char_traits<char16_t>::not_eof(u'a') == u'a');
+ assert(std::char_traits<char16_t>::not_eof(u'A') == u'A');
#endif
- assert(std::char_traits<char16_t>::not_eof(0) == 0);
- assert(std::char_traits<char16_t>::not_eof(std::char_traits<char16_t>::eof()) !=
- std::char_traits<char16_t>::eof());
+ assert(std::char_traits<char16_t>::not_eof(0) == 0);
+ assert(std::char_traits<char16_t>::not_eof(std::char_traits<char16_t>::eof()) != std::char_traits<char16_t>::eof());
return 0;
}
diff --git a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/to_char_type.pass.cpp b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/to_char_type.pass.cpp
index 89e5ba215dcc382..d5f7d71dc078635 100644
--- a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/to_char_type.pass.cpp
+++ b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/to_char_type.pass.cpp
@@ -17,13 +17,12 @@
#include "test_macros.h"
-int main(int, char**)
-{
+int main(int, char**) {
#if TEST_STD_VER >= 11
- assert(std::char_traits<char16_t>::to_char_type(u'a') == u'a');
- assert(std::char_traits<char16_t>::to_char_type(u'A') == u'A');
+ assert(std::char_traits<char16_t>::to_char_type(u'a') == u'a');
+ assert(std::char_traits<char16_t>::to_char_type(u'A') == u'A');
#endif
- assert(std::char_traits<char16_t>::to_char_type(0) == 0);
+ assert(std::char_traits<char16_t>::to_char_type(0) == 0);
return 0;
}
diff --git a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/to_int_type.pass.cpp b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/to_int_type.pass.cpp
index 442a2aea0757c0b..1ad916f0a328f51 100644
--- a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/to_int_type.pass.cpp
+++ b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char16_t/to_int_type.pass.cpp
@@ -17,13 +17,12 @@
#include "test_macros.h"
-int main(int, char**)
-{
+int main(int, char**) {
#if TEST_STD_VER >= 11
- assert(std::char_traits<char16_t>::to_int_type(u'a') == u'a');
- assert(std::char_traits<char16_t>::to_int_type(u'A') == u'A');
+ assert(std::char_traits<char16_t>::to_int_type(u'a') == u'a');
+ assert(std::char_traits<char16_t>::to_int_type(u'A') == u'A');
#endif
- assert(std::char_traits<char16_t>::to_int_type(0) == 0);
+ assert(std::char_traits<char16_t>::to_int_type(0) == 0);
return 0;
}
diff --git a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/assign2.pass.cpp b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/assign2.pass.cpp
index 2ecaa791b484b01..79edc48bf7facc4 100644
--- a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/assign2.pass.cpp
+++ b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/assign2.pass.cpp
@@ -19,25 +19,23 @@
#include "test_macros.h"
#if TEST_STD_VER > 14
-constexpr bool test_constexpr()
-{
- char32_t c = U'1';
- std::char_traits<char32_t>::assign(c, U'a');
- return c == U'a';
+constexpr bool test_constexpr() {
+ char32_t c = U'1';
+ std::char_traits<char32_t>::assign(c, U'a');
+ return c == U'a';
}
#endif
-int main(int, char**)
-{
+int main(int, char**) {
#if TEST_STD_VER >= 11
- char32_t c = U'\0';
- std::char_traits<char32_t>::assign(c, U'a');
- assert(c == U'a');
+ char32_t c = U'\0';
+ std::char_traits<char32_t>::assign(c, U'a');
+ assert(c == U'a');
#endif
#if TEST_STD_VER > 14
- static_assert(test_constexpr(), "" );
+ static_assert(test_constexpr(), "");
#endif
- return 0;
+ return 0;
}
diff --git a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/assign3.pass.cpp b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/assign3.pass.cpp
index cf9ec1aacfbabbd..c783e171ef49318 100644
--- a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/assign3.pass.cpp
+++ b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/assign3.pass.cpp
@@ -17,24 +17,22 @@
#include "test_macros.h"
-TEST_CONSTEXPR_CXX20 bool test()
-{
- char32_t s2[3] = {0};
- assert(std::char_traits<char32_t>::assign(s2, 3, char32_t(5)) == s2);
- assert(s2[0] == char32_t(5));
- assert(s2[1] == char32_t(5));
- assert(s2[2] == char32_t(5));
- assert(std::char_traits<char32_t>::assign(NULL, 0, char32_t(5)) == NULL);
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test() {
+ char32_t s2[3] = {0};
+ assert(std::char_traits<char32_t>::assign(s2, 3, char32_t(5)) == s2);
+ assert(s2[0] == char32_t(5));
+ assert(s2[1] == char32_t(5));
+ assert(s2[2] == char32_t(5));
+ assert(std::char_traits<char32_t>::assign(NULL, 0, char32_t(5)) == NULL);
+
+ return true;
}
-int main(int, char**)
-{
- test();
+int main(int, char**) {
+ test();
#if TEST_STD_VER > 17
- static_assert(test());
+ static_assert(test());
#endif
return 0;
diff --git a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/compare.pass.cpp b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/compare.pass.cpp
index 7cce8796c13223e..d755730106ea8be 100644
--- a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/compare.pass.cpp
+++ b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/compare.pass.cpp
@@ -19,41 +19,39 @@
#include "test_macros.h"
#if TEST_STD_VER > 14
-constexpr bool test_constexpr()
-{
- return std::char_traits<char32_t>::compare(U"123", U"223", 3) < 0
- && std::char_traits<char32_t>::compare(U"223", U"123", 3) > 0
- && std::char_traits<char32_t>::compare(U"123", U"123", 3) == 0;
+constexpr bool test_constexpr() {
+ return std::char_traits<char32_t>::compare(U"123", U"223", 3) < 0 &&
+ std::char_traits<char32_t>::compare(U"223", U"123", 3) > 0 &&
+ std::char_traits<char32_t>::compare(U"123", U"123", 3) == 0;
}
#endif
-int main(int, char**)
-{
+int main(int, char**) {
#if TEST_STD_VER >= 11
- assert(std::char_traits<char32_t>::compare(U"", U"", 0) == 0);
- assert(std::char_traits<char32_t>::compare(NULL, NULL, 0) == 0);
-
- assert(std::char_traits<char32_t>::compare(U"1", U"1", 1) == 0);
- assert(std::char_traits<char32_t>::compare(U"1", U"2", 1) < 0);
- assert(std::char_traits<char32_t>::compare(U"2", U"1", 1) > 0);
-
- assert(std::char_traits<char32_t>::compare(U"12", U"12", 2) == 0);
- assert(std::char_traits<char32_t>::compare(U"12", U"13", 2) < 0);
- assert(std::char_traits<char32_t>::compare(U"12", U"22", 2) < 0);
- assert(std::char_traits<char32_t>::compare(U"13", U"12", 2) > 0);
- assert(std::char_traits<char32_t>::compare(U"22", U"12", 2) > 0);
-
- assert(std::char_traits<char32_t>::compare(U"123", U"123", 3) == 0);
- assert(std::char_traits<char32_t>::compare(U"123", U"223", 3) < 0);
- assert(std::char_traits<char32_t>::compare(U"123", U"133", 3) < 0);
- assert(std::char_traits<char32_t>::compare(U"123", U"124", 3) < 0);
- assert(std::char_traits<char32_t>::compare(U"223", U"123", 3) > 0);
- assert(std::char_traits<char32_t>::compare(U"133", U"123", 3) > 0);
- assert(std::char_traits<char32_t>::compare(U"124", U"123", 3) > 0);
+ assert(std::char_traits<char32_t>::compare(U"", U"", 0) == 0);
+ assert(std::char_traits<char32_t>::compare(NULL, NULL, 0) == 0);
+
+ assert(std::char_traits<char32_t>::compare(U"1", U"1", 1) == 0);
+ assert(std::char_traits<char32_t>::compare(U"1", U"2", 1) < 0);
+ assert(std::char_traits<char32_t>::compare(U"2", U"1", 1) > 0);
+
+ assert(std::char_traits<char32_t>::compare(U"12", U"12", 2) == 0);
+ assert(std::char_traits<char32_t>::compare(U"12", U"13", 2) < 0);
+ assert(std::char_traits<char32_t>::compare(U"12", U"22", 2) < 0);
+ assert(std::char_traits<char32_t>::compare(U"13", U"12", 2) > 0);
+ assert(std::char_traits<char32_t>::compare(U"22", U"12", 2) > 0);
+
+ assert(std::char_traits<char32_t>::compare(U"123", U"123", 3) == 0);
+ assert(std::char_traits<char32_t>::compare(U"123", U"223", 3) < 0);
+ assert(std::char_traits<char32_t>::compare(U"123", U"133", 3) < 0);
+ assert(std::char_traits<char32_t>::compare(U"123", U"124", 3) < 0);
+ assert(std::char_traits<char32_t>::compare(U"223", U"123", 3) > 0);
+ assert(std::char_traits<char32_t>::compare(U"133", U"123", 3) > 0);
+ assert(std::char_traits<char32_t>::compare(U"124", U"123", 3) > 0);
#endif
#if TEST_STD_VER > 14
- static_assert(test_constexpr(), "" );
+ static_assert(test_constexpr(), "");
#endif
return 0;
diff --git a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/copy.pass.cpp b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/copy.pass.cpp
index f030309e038c8d6..f35b75458f7c2bd 100644
--- a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/copy.pass.cpp
+++ b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/copy.pass.cpp
@@ -17,26 +17,24 @@
#include "test_macros.h"
-TEST_CONSTEXPR_CXX20 bool test()
-{
- char32_t s1[] = {1, 2, 3};
- char32_t s2[3] = {0};
- assert(std::char_traits<char32_t>::copy(s2, s1, 3) == s2);
- assert(s2[0] == char32_t(1));
- assert(s2[1] == char32_t(2));
- assert(s2[2] == char32_t(3));
- assert(std::char_traits<char32_t>::copy(NULL, s1, 0) == NULL);
- assert(std::char_traits<char32_t>::copy(s1, NULL, 0) == s1);
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test() {
+ char32_t s1[] = {1, 2, 3};
+ char32_t s2[3] = {0};
+ assert(std::char_traits<char32_t>::copy(s2, s1, 3) == s2);
+ assert(s2[0] == char32_t(1));
+ assert(s2[1] == char32_t(2));
+ assert(s2[2] == char32_t(3));
+ assert(std::char_traits<char32_t>::copy(NULL, s1, 0) == NULL);
+ assert(std::char_traits<char32_t>::copy(s1, NULL, 0) == s1);
+
+ return true;
}
-int main(int, char**)
-{
- test();
+int main(int, char**) {
+ test();
#if TEST_STD_VER > 17
- static_assert(test());
+ static_assert(test());
#endif
return 0;
diff --git a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/eof.pass.cpp b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/eof.pass.cpp
index 4fe39eafbfee087..5ae206ef14f817d 100644
--- a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/eof.pass.cpp
+++ b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/eof.pass.cpp
@@ -17,10 +17,9 @@
#include "test_macros.h"
-int main(int, char**)
-{
- std::char_traits<char32_t>::int_type i = std::char_traits<char32_t>::eof();
- ((void)i); // Prevent unused warning
+int main(int, char**) {
+ std::char_traits<char32_t>::int_type i = std::char_traits<char32_t>::eof();
+ ((void)i); // Prevent unused warning
- return 0;
+ return 0;
}
diff --git a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/eq.pass.cpp b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/eq.pass.cpp
index 84268bbedff2614..9d575408299bbfa 100644
--- a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/eq.pass.cpp
+++ b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/eq.pass.cpp
@@ -17,9 +17,8 @@
#include <string>
#include <cassert>
-int main(int, char**)
-{
- assert(std::char_traits<char32_t>::eq(U'a', U'a'));
- assert(!std::char_traits<char32_t>::eq(U'a', U'A'));
- return 0;
+int main(int, char**) {
+ assert(std::char_traits<char32_t>::eq(U'a', U'a'));
+ assert(!std::char_traits<char32_t>::eq(U'a', U'A'));
+ return 0;
}
diff --git a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/eq_int_type.pass.cpp b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/eq_int_type.pass.cpp
index c90137d17bce7fc..2763f3372e313d0 100644
--- a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/eq_int_type.pass.cpp
+++ b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/eq_int_type.pass.cpp
@@ -17,15 +17,13 @@
#include "test_macros.h"
-int main(int, char**)
-{
+int main(int, char**) {
#if TEST_STD_VER >= 11
- assert( std::char_traits<char32_t>::eq_int_type(U'a', U'a'));
- assert(!std::char_traits<char32_t>::eq_int_type(U'a', U'A'));
- assert(!std::char_traits<char32_t>::eq_int_type(std::char_traits<char32_t>::eof(), U'A'));
+ assert(std::char_traits<char32_t>::eq_int_type(U'a', U'a'));
+ assert(!std::char_traits<char32_t>::eq_int_type(U'a', U'A'));
+ assert(!std::char_traits<char32_t>::eq_int_type(std::char_traits<char32_t>::eof(), U'A'));
#endif
- assert( std::char_traits<char32_t>::eq_int_type(std::char_traits<char32_t>::eof(),
- std::char_traits<char32_t>::eof()));
+ assert(std::char_traits<char32_t>::eq_int_type(std::char_traits<char32_t>::eof(), std::char_traits<char32_t>::eof()));
- return 0;
+ return 0;
}
diff --git a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/find.pass.cpp b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/find.pass.cpp
index 9f856bace3e9209..c4a6a817ddd6813 100644
--- a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/find.pass.cpp
+++ b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/find.pass.cpp
@@ -19,29 +19,26 @@
#include "test_macros.h"
#if TEST_STD_VER > 14
-constexpr bool test_constexpr()
-{
- constexpr const char32_t *p = U"123";
- return std::char_traits<char32_t>::find(p, 3, U'1') == p
- && std::char_traits<char32_t>::find(p, 3, U'2') == p + 1
- && std::char_traits<char32_t>::find(p, 3, U'3') == p + 2
- && std::char_traits<char32_t>::find(p, 3, U'4') == nullptr;
+constexpr bool test_constexpr() {
+ constexpr const char32_t* p = U"123";
+ return std::char_traits<char32_t>::find(p, 3, U'1') == p && std::char_traits<char32_t>::find(p, 3, U'2') == p + 1 &&
+ std::char_traits<char32_t>::find(p, 3, U'3') == p + 2 &&
+ std::char_traits<char32_t>::find(p, 3, U'4') == nullptr;
}
#endif
-int main(int, char**)
-{
- char32_t s1[] = {1, 2, 3};
- assert(std::char_traits<char32_t>::find(s1, 3, char32_t(1)) == s1);
- assert(std::char_traits<char32_t>::find(s1, 3, char32_t(2)) == s1+1);
- assert(std::char_traits<char32_t>::find(s1, 3, char32_t(3)) == s1+2);
- assert(std::char_traits<char32_t>::find(s1, 3, char32_t(4)) == 0);
- assert(std::char_traits<char32_t>::find(s1, 3, char32_t(0)) == 0);
- assert(std::char_traits<char32_t>::find(NULL, 0, char32_t(0)) == 0);
+int main(int, char**) {
+ char32_t s1[] = {1, 2, 3};
+ assert(std::char_traits<char32_t>::find(s1, 3, char32_t(1)) == s1);
+ assert(std::char_traits<char32_t>::find(s1, 3, char32_t(2)) == s1 + 1);
+ assert(std::char_traits<char32_t>::find(s1, 3, char32_t(3)) == s1 + 2);
+ assert(std::char_traits<char32_t>::find(s1, 3, char32_t(4)) == 0);
+ assert(std::char_traits<char32_t>::find(s1, 3, char32_t(0)) == 0);
+ assert(std::char_traits<char32_t>::find(NULL, 0, char32_t(0)) == 0);
#if TEST_STD_VER > 14
- static_assert(test_constexpr(), "" );
+ static_assert(test_constexpr(), "");
#endif
- return 0;
+ return 0;
}
diff --git a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/length.pass.cpp b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/length.pass.cpp
index 985efa146df3fc2..800b9c2d133a402 100644
--- a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/length.pass.cpp
+++ b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/length.pass.cpp
@@ -19,26 +19,23 @@
#include "test_macros.h"
#if TEST_STD_VER > 14
-constexpr bool test_constexpr()
-{
- return std::char_traits<char32_t>::length(U"") == 0
- && std::char_traits<char32_t>::length(U"abcd") == 4;
+constexpr bool test_constexpr() {
+ return std::char_traits<char32_t>::length(U"") == 0 && std::char_traits<char32_t>::length(U"abcd") == 4;
}
#endif
-int main(int, char**)
-{
+int main(int, char**) {
#if TEST_STD_VER >= 11
- assert(std::char_traits<char32_t>::length(U"") == 0);
- assert(std::char_traits<char32_t>::length(U"a") == 1);
- assert(std::char_traits<char32_t>::length(U"aa") == 2);
- assert(std::char_traits<char32_t>::length(U"aaa") == 3);
- assert(std::char_traits<char32_t>::length(U"aaaa") == 4);
+ assert(std::char_traits<char32_t>::length(U"") == 0);
+ assert(std::char_traits<char32_t>::length(U"a") == 1);
+ assert(std::char_traits<char32_t>::length(U"aa") == 2);
+ assert(std::char_traits<char32_t>::length(U"aaa") == 3);
+ assert(std::char_traits<char32_t>::length(U"aaaa") == 4);
#endif
#if TEST_STD_VER > 14
- static_assert(test_constexpr(), "" );
+ static_assert(test_constexpr(), "");
#endif
- return 0;
+ return 0;
}
diff --git a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/lt.pass.cpp b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/lt.pass.cpp
index 7d7b484bfaee46e..74a72dcfa2ec295 100644
--- a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/lt.pass.cpp
+++ b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/lt.pass.cpp
@@ -17,9 +17,8 @@
#include <string>
#include <cassert>
-int main(int, char**)
-{
- assert(!std::char_traits<char32_t>::lt(U'a', U'a'));
- assert( std::char_traits<char32_t>::lt(U'A', U'a'));
- return 0;
+int main(int, char**) {
+ assert(!std::char_traits<char32_t>::lt(U'a', U'a'));
+ assert(std::char_traits<char32_t>::lt(U'A', U'a'));
+ return 0;
}
diff --git a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/move.pass.cpp b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/move.pass.cpp
index 930a1fe2db03279..34b0580df445c24 100644
--- a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/move.pass.cpp
+++ b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/move.pass.cpp
@@ -17,30 +17,28 @@
#include "test_macros.h"
-TEST_CONSTEXPR_CXX20 bool test()
-{
- char32_t s1[] = {1, 2, 3};
- assert(std::char_traits<char32_t>::move(s1, s1+1, 2) == s1);
- assert(s1[0] == char32_t(2));
- assert(s1[1] == char32_t(3));
- assert(s1[2] == char32_t(3));
- s1[2] = char32_t(0);
- assert(std::char_traits<char32_t>::move(s1+1, s1, 2) == s1+1);
- assert(s1[0] == char32_t(2));
- assert(s1[1] == char32_t(2));
- assert(s1[2] == char32_t(3));
- assert(std::char_traits<char32_t>::move(NULL, s1, 0) == NULL);
- assert(std::char_traits<char32_t>::move(s1, NULL, 0) == s1);
-
- return true;
+TEST_CONSTEXPR_CXX20 bool test() {
+ char32_t s1[] = {1, 2, 3};
+ assert(std::char_traits<char32_t>::move(s1, s1 + 1, 2) == s1);
+ assert(s1[0] == char32_t(2));
+ assert(s1[1] == char32_t(3));
+ assert(s1[2] == char32_t(3));
+ s1[2] = char32_t(0);
+ assert(std::char_traits<char32_t>::move(s1 + 1, s1, 2) == s1 + 1);
+ assert(s1[0] == char32_t(2));
+ assert(s1[1] == char32_t(2));
+ assert(s1[2] == char32_t(3));
+ assert(std::char_traits<char32_t>::move(NULL, s1, 0) == NULL);
+ assert(std::char_traits<char32_t>::move(s1, NULL, 0) == s1);
+
+ return true;
}
-int main(int, char**)
-{
- test();
+int main(int, char**) {
+ test();
#if TEST_STD_VER > 17
- static_assert(test());
+ static_assert(test());
#endif
return 0;
diff --git a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/not_eof.pass.cpp b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/not_eof.pass.cpp
index 7e5845436f47d88..965c8f6a3d13908 100644
--- a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/not_eof.pass.cpp
+++ b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/not_eof.pass.cpp
@@ -17,15 +17,13 @@
#include "test_macros.h"
-int main(int, char**)
-{
+int main(int, char**) {
#if TEST_STD_VER >= 11
- assert(std::char_traits<char32_t>::not_eof(U'a') == U'a');
- assert(std::char_traits<char32_t>::not_eof(U'A') == U'A');
+ assert(std::char_traits<char32_t>::not_eof(U'a') == U'a');
+ assert(std::char_traits<char32_t>::not_eof(U'A') == U'A');
#endif
- assert(std::char_traits<char32_t>::not_eof(0) == 0);
- assert(std::char_traits<char32_t>::not_eof(std::char_traits<char32_t>::eof()) !=
- std::char_traits<char32_t>::eof());
+ assert(std::char_traits<char32_t>::not_eof(0) == 0);
+ assert(std::char_traits<char32_t>::not_eof(std::char_traits<char32_t>::eof()) != std::char_traits<char32_t>::eof());
- return 0;
+ return 0;
}
diff --git a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/to_char_type.pass.cpp b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/to_char_type.pass.cpp
index a01d1e5be21536d..93defabc9e588d3 100644
--- a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/to_char_type.pass.cpp
+++ b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/to_char_type.pass.cpp
@@ -17,13 +17,12 @@
#include "test_macros.h"
-int main(int, char**)
-{
+int main(int, char**) {
#if TEST_STD_VER >= 11
- assert(std::char_traits<char32_t>::to_char_type(U'a') == U'a');
- assert(std::char_traits<char32_t>::to_char_type(U'A') == U'A');
+ assert(std::char_traits<char32_t>::to_char_type(U'a') == U'a');
+ assert(std::char_traits<char32_t>::to_char_type(U'A') == U'A');
#endif
- assert(std::char_traits<char32_t>::to_char_type(0) == 0);
+ assert(std::char_traits<char32_t>::to_char_type(0) == 0);
- return 0;
+ return 0;
}
diff --git a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/to_int_type.pass.cpp b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/to_int_type.pass.cpp
index a12b69008a50258..ca70f5814384894 100644
--- a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/to_int_type.pass.cpp
+++ b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char32_t/to_int_type.pass.cpp
@@ -17,13 +17,12 @@
#include "test_macros.h"
-int main(int, char**)
-{
+int main(int, char**) {
#if TEST_STD_VER >= 11
- assert(std::char_traits<char32_t>::to_int_type(U'a') == U'a');
- assert(std::char_traits<char32_t>::to_int_type(U'A') == U'A');
+ assert(std::char_traits<char32_t>::to_int_type(U'a') == U'a');
+ assert(std::char_traits<char32_t>::to_int_type(U'A') == U'A');
#endif
- assert(std::char_traits<char32_t>::to_int_type(0) == 0);
+ assert(std::char_traits<char32_t>::to_int_type(0) == 0);
- return 0;
+ return 0;
}
diff --git a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/assign2.pass.cpp b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/assign2.pass.cpp
index 2a0867c2c9f175d..e3bc9c3c100d423 100644
--- a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/assign2.pass.cpp
+++ b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/assign2.pass.cpp
@@ -18,24 +18,20 @@
#include "test_macros.h"
#ifndef TEST_HAS_NO_CHAR8_T
-constexpr bool test_constexpr()
-{
- char8_t c = u'1';
- std::char_traits<char8_t>::assign(c, u'a');
- return c == u'a';
+constexpr bool test_constexpr() {
+ char8_t c = u'1';
+ std::char_traits<char8_t>::assign(c, u'a');
+ return c == u'a';
}
-int main(int, char**)
-{
- char8_t c = u8'\0';
- std::char_traits<char8_t>::assign(c, u8'a');
- assert(c == u8'a');
-
- static_assert(test_constexpr(), "");
- return 0;
-}
-#else
int main(int, char**) {
+ char8_t c = u8'\0';
+ std::char_traits<char8_t>::assign(c, u8'a');
+ assert(c == u8'a');
+
+ static_assert(test_constexpr(), "");
return 0;
}
+#else
+int main(int, char**) { return 0; }
#endif
diff --git a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/assign3.pass.cpp b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/assign3.pass.cpp
index 7142863f2249d9f..1552a2ca446e764 100644
--- a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/assign3.pass.cpp
+++ b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/assign3.pass.cpp
@@ -19,26 +19,24 @@
#include "test_macros.h"
-TEST_CONSTEXPR_CXX20 bool test()
-{
+TEST_CONSTEXPR_CXX20 bool test() {
#ifndef TEST_HAS_NO_CHAR8_T
- char8_t s2[3] = {0};
- assert(std::char_traits<char8_t>::assign(s2, 3, char8_t(5)) == s2);
- assert(s2[0] == char8_t(5));
- assert(s2[1] == char8_t(5));
- assert(s2[2] == char8_t(5));
- assert(std::char_traits<char8_t>::assign(NULL, 0, char8_t(5)) == NULL);
+ char8_t s2[3] = {0};
+ assert(std::char_traits<char8_t>::assign(s2, 3, char8_t(5)) == s2);
+ assert(s2[0] == char8_t(5));
+ assert(s2[1] == char8_t(5));
+ assert(s2[2] == char8_t(5));
+ assert(std::char_traits<char8_t>::assign(NULL, 0, char8_t(5)) == NULL);
#endif
return true;
}
-int main(int, char**)
-{
- test();
+int main(int, char**) {
+ test();
#if TEST_STD_VER > 17
- static_assert(test());
+ static_assert(test());
#endif
return 0;
diff --git a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/compare.pass.cpp b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/compare.pass.cpp
index 3dd3078676ecc69..e753e26e7817d4a 100644
--- a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/compare.pass.cpp
+++ b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/compare.pass.cpp
@@ -19,42 +19,37 @@
#include "test_macros.h"
#ifndef TEST_HAS_NO_CHAR8_T
-constexpr bool test_constexpr()
-{
- return std::char_traits<char8_t>::compare(u8"123", u8"223", 3) < 0
- && std::char_traits<char8_t>::compare(u8"223", u8"123", 3) > 0
- && std::char_traits<char8_t>::compare(u8"123", u8"123", 3) == 0;
+constexpr bool test_constexpr() {
+ return std::char_traits<char8_t>::compare(u8"123", u8"223", 3) < 0 &&
+ std::char_traits<char8_t>::compare(u8"223", u8"123", 3) > 0 &&
+ std::char_traits<char8_t>::compare(u8"123", u8"123", 3) == 0;
}
-
-int main(int, char**)
-{
- assert(std::char_traits<char8_t>::compare(u8"", u8"", 0) == 0);
- assert(std::char_traits<char8_t>::compare(NULL, NULL, 0) == 0);
-
- assert(std::char_traits<char8_t>::compare(u8"1", u8"1", 1) == 0);
- assert(std::char_traits<char8_t>::compare(u8"1", u8"2", 1) < 0);
- assert(std::char_traits<char8_t>::compare(u8"2", u8"1", 1) > 0);
-
- assert(std::char_traits<char8_t>::compare(u8"12", u8"12", 2) == 0);
- assert(std::char_traits<char8_t>::compare(u8"12", u8"13", 2) < 0);
- assert(std::char_traits<char8_t>::compare(u8"12", u8"22", 2) < 0);
- assert(std::char_traits<char8_t>::compare(u8"13", u8"12", 2) > 0);
- assert(std::char_traits<char8_t>::compare(u8"22", u8"12", 2) > 0);
-
- assert(std::char_traits<char8_t>::compare(u8"123", u8"123", 3) == 0);
- assert(std::char_traits<char8_t>::compare(u8"123", u8"223", 3) < 0);
- assert(std::char_traits<char8_t>::compare(u8"123", u8"133", 3) < 0);
- assert(std::char_traits<char8_t>::compare(u8"123", u8"124", 3) < 0);
- assert(std::char_traits<char8_t>::compare(u8"223", u8"123", 3) > 0);
- assert(std::char_traits<char8_t>::compare(u8"133", u8"123", 3) > 0);
- assert(std::char_traits<char8_t>::compare(u8"124", u8"123", 3) > 0);
-
- static_assert(test_constexpr(), "" );
- return 0;
-}
-#else
int main(int, char**) {
+ assert(std::char_traits<char8_t>::compare(u8"", u8"", 0) == 0);
+ assert(std::char_traits<char8_t>::compare(NULL, NULL, 0) == 0);
+
+ assert(std::char_traits<char8_t>::compare(u8"1", u8"1", 1) == 0);
+ assert(std::char_traits<char8_t>::compare(u8"1", u8"2", 1) < 0);
+ assert(std::char_traits<char8_t>::compare(u8"2", u8"1", 1) > 0);
+
+ assert(std::char_traits<char8_t>::compare(u8"12", u8"12", 2) == 0);
+ assert(std::char_traits<char8_t>::compare(u8"12", u8"13", 2) < 0);
+ assert(std::char_traits<char8_t>::compare(u8"12", u8"22", 2) < 0);
+ assert(std::char_traits<char8_t>::compare(u8"13", u8"12", 2) > 0);
+ assert(std::char_traits<char8_t>::compare(u8"22", u8"12", 2) > 0);
+
+ assert(std::char_traits<char8_t>::compare(u8"123", u8"123", 3) == 0);
+ assert(std::char_traits<char8_t>::compare(u8"123", u8"223", 3) < 0);
+ assert(std::char_traits<char8_t>::compare(u8"123", u8"133", 3) < 0);
+ assert(std::char_traits<char8_t>::compare(u8"123", u8"124", 3) < 0);
+ assert(std::char_traits<char8_t>::compare(u8"223", u8"123", 3) > 0);
+ assert(std::char_traits<char8_t>::compare(u8"133", u8"123", 3) > 0);
+ assert(std::char_traits<char8_t>::compare(u8"124", u8"123", 3) > 0);
+
+ static_assert(test_constexpr(), "");
return 0;
}
+#else
+int main(int, char**) { return 0; }
#endif
diff --git a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/copy.pass.cpp b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/copy.pass.cpp
index cbaeebaa961d15a..b6efcdff26f6cab 100644
--- a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/copy.pass.cpp
+++ b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/copy.pass.cpp
@@ -19,28 +19,26 @@
#include "test_macros.h"
-TEST_CONSTEXPR_CXX20 bool test()
-{
+TEST_CONSTEXPR_CXX20 bool test() {
#ifndef TEST_HAS_NO_CHAR8_T
- char8_t s1[] = {1, 2, 3};
- char8_t s2[3] = {0};
- assert(std::char_traits<char8_t>::copy(s2, s1, 3) == s2);
- assert(s2[0] == char8_t(1));
- assert(s2[1] == char8_t(2));
- assert(s2[2] == char8_t(3));
- assert(std::char_traits<char8_t>::copy(NULL, s1, 0) == NULL);
- assert(std::char_traits<char8_t>::copy(s1, NULL, 0) == s1);
+ char8_t s1[] = {1, 2, 3};
+ char8_t s2[3] = {0};
+ assert(std::char_traits<char8_t>::copy(s2, s1, 3) == s2);
+ assert(s2[0] == char8_t(1));
+ assert(s2[1] == char8_t(2));
+ assert(s2[2] == char8_t(3));
+ assert(std::char_traits<char8_t>::copy(NULL, s1, 0) == NULL);
+ assert(std::char_traits<char8_t>::copy(s1, NULL, 0) == s1);
#endif
return true;
}
-int main(int, char**)
-{
- test();
+int main(int, char**) {
+ test();
#if TEST_STD_VER > 17
- static_assert(test());
+ static_assert(test());
#endif
return 0;
diff --git a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/eof.pass.cpp b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/eof.pass.cpp
index b21427907ab8ef7..25419c430a70dcd 100644
--- a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/eof.pass.cpp
+++ b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/eof.pass.cpp
@@ -18,11 +18,10 @@
#include "test_macros.h"
-int main(int, char**)
-{
+int main(int, char**) {
#ifndef TEST_HAS_NO_CHAR8_T
- std::char_traits<char8_t>::int_type i = std::char_traits<char8_t>::eof();
- ((void)i); // Prevent unused warning
+ std::char_traits<char8_t>::int_type i = std::char_traits<char8_t>::eof();
+ ((void)i); // Prevent unused warning
#endif
return 0;
diff --git a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/eq.pass.cpp b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/eq.pass.cpp
index 87c27325c76bf26..bc518970dc67512 100644
--- a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/eq.pass.cpp
+++ b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/eq.pass.cpp
@@ -18,11 +18,10 @@
#include "test_macros.h"
-int main(int, char**)
-{
+int main(int, char**) {
#ifndef TEST_HAS_NO_CHAR8_T
- assert( std::char_traits<char8_t>::eq(u8'a', u8'a'));
- assert(!std::char_traits<char8_t>::eq(u8'a', u8'A'));
+ assert(std::char_traits<char8_t>::eq(u8'a', u8'a'));
+ assert(!std::char_traits<char8_t>::eq(u8'a', u8'A'));
#endif
return 0;
diff --git a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/eq_int_type.pass.cpp b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/eq_int_type.pass.cpp
index 1d4bfe7b26e028a..dd8f0a79c517709 100644
--- a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/eq_int_type.pass.cpp
+++ b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/eq_int_type.pass.cpp
@@ -18,14 +18,12 @@
#include "test_macros.h"
-int main(int, char**)
-{
+int main(int, char**) {
#ifndef TEST_HAS_NO_CHAR8_T
- assert( std::char_traits<char8_t>::eq_int_type(u8'a', u8'a'));
- assert(!std::char_traits<char8_t>::eq_int_type(u8'a', u8'A'));
- assert(!std::char_traits<char8_t>::eq_int_type(std::char_traits<char8_t>::eof(), u8'A'));
- assert( std::char_traits<char8_t>::eq_int_type(std::char_traits<char8_t>::eof(),
- std::char_traits<char8_t>::eof()));
+ assert(std::char_traits<char8_t>::eq_int_type(u8'a', u8'a'));
+ assert(!std::char_traits<char8_t>::eq_int_type(u8'a', u8'A'));
+ assert(!std::char_traits<char8_t>::eq_int_type(std::char_traits<char8_t>::eof(), u8'A'));
+ assert(std::char_traits<char8_t>::eq_int_type(std::char_traits<char8_t>::eof(), std::char_traits<char8_t>::eof()));
#endif
return 0;
diff --git a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/find.pass.cpp b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/find.pass.cpp
index 60d17a6ad6f0a5b..3d1dbec2c3f90b4 100644
--- a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/find.pass.cpp
+++ b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/find.pass.cpp
@@ -19,30 +19,25 @@
#include "test_macros.h"
#ifndef TEST_HAS_NO_CHAR8_T
-constexpr bool test_constexpr()
-{
- constexpr const char8_t *p = u8"123";
- return std::char_traits<char8_t>::find(p, 3, u8'1') == p
- && std::char_traits<char8_t>::find(p, 3, u8'2') == p + 1
- && std::char_traits<char8_t>::find(p, 3, u8'3') == p + 2
- && std::char_traits<char8_t>::find(p, 3, u8'4') == nullptr;
+constexpr bool test_constexpr() {
+ constexpr const char8_t* p = u8"123";
+ return std::char_traits<char8_t>::find(p, 3, u8'1') == p && std::char_traits<char8_t>::find(p, 3, u8'2') == p + 1 &&
+ std::char_traits<char8_t>::find(p, 3, u8'3') == p + 2 &&
+ std::char_traits<char8_t>::find(p, 3, u8'4') == nullptr;
}
-int main(int, char**)
-{
- char8_t s1[] = {1, 2, 3};
- assert(std::char_traits<char8_t>::find(s1, 3, char8_t(1)) == s1);
- assert(std::char_traits<char8_t>::find(s1, 3, char8_t(2)) == s1+1);
- assert(std::char_traits<char8_t>::find(s1, 3, char8_t(3)) == s1+2);
- assert(std::char_traits<char8_t>::find(s1, 3, char8_t(4)) == 0);
- assert(std::char_traits<char8_t>::find(s1, 3, char8_t(0)) == 0);
- assert(std::char_traits<char8_t>::find(NULL, 0, char8_t(0)) == 0);
-
- static_assert(test_constexpr(), "" );
- return 0;
-}
-#else
int main(int, char**) {
+ char8_t s1[] = {1, 2, 3};
+ assert(std::char_traits<char8_t>::find(s1, 3, char8_t(1)) == s1);
+ assert(std::char_traits<char8_t>::find(s1, 3, char8_t(2)) == s1 + 1);
+ assert(std::char_traits<char8_t>::find(s1, 3, char8_t(3)) == s1 + 2);
+ assert(std::char_traits<char8_t>::find(s1, 3, char8_t(4)) == 0);
+ assert(std::char_traits<char8_t>::find(s1, 3, char8_t(0)) == 0);
+ assert(std::char_traits<char8_t>::find(NULL, 0, char8_t(0)) == 0);
+
+ static_assert(test_constexpr(), "");
return 0;
}
+#else
+int main(int, char**) { return 0; }
#endif
diff --git a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/length.pass.cpp b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/length.pass.cpp
index 602b7eda6aa9ce2..141a0aa201623fe 100644
--- a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/length.pass.cpp
+++ b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/length.pass.cpp
@@ -19,25 +19,20 @@
#include "test_macros.h"
#ifndef TEST_HAS_NO_CHAR8_T
-constexpr bool test_constexpr()
-{
- return std::char_traits<char8_t>::length(u8"") == 0
- && std::char_traits<char8_t>::length(u8"abcd") == 4;
+constexpr bool test_constexpr() {
+ return std::char_traits<char8_t>::length(u8"") == 0 && std::char_traits<char8_t>::length(u8"abcd") == 4;
}
-int main(int, char**)
-{
- assert(std::char_traits<char8_t>::length(u8"") == 0);
- assert(std::char_traits<char8_t>::length(u8"a") == 1);
- assert(std::char_traits<char8_t>::length(u8"aa") == 2);
- assert(std::char_traits<char8_t>::length(u8"aaa") == 3);
- assert(std::char_traits<char8_t>::length(u8"aaaa") == 4);
-
- static_assert(test_constexpr(), "");
- return 0;
-}
-#else
int main(int, char**) {
+ assert(std::char_traits<char8_t>::length(u8"") == 0);
+ assert(std::char_traits<char8_t>::length(u8"a") == 1);
+ assert(std::char_traits<char8_t>::length(u8"aa") == 2);
+ assert(std::char_traits<char8_t>::length(u8"aaa") == 3);
+ assert(std::char_traits<char8_t>::length(u8"aaaa") == 4);
+
+ static_assert(test_constexpr(), "");
return 0;
}
+#else
+int main(int, char**) { return 0; }
#endif
diff --git a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/lt.pass.cpp b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/lt.pass.cpp
index 26f3806bcd7a145..54279e4f725984d 100644
--- a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/lt.pass.cpp
+++ b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/lt.pass.cpp
@@ -18,11 +18,10 @@
#include "test_macros.h"
-int main(int, char**)
-{
+int main(int, char**) {
#ifndef TEST_HAS_NO_CHAR8_T
- assert(!std::char_traits<char8_t>::lt(u8'a', u8'a'));
- assert( std::char_traits<char8_t>::lt(u8'A', u8'a'));
+ assert(!std::char_traits<char8_t>::lt(u8'a', u8'a'));
+ assert(std::char_traits<char8_t>::lt(u8'A', u8'a'));
#endif
return 0;
diff --git a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/move.pass.cpp b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/move.pass.cpp
index 6c5f1b2b79a1173..45aed96cbda7fd3 100644
--- a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/move.pass.cpp
+++ b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/move.pass.cpp
@@ -19,32 +19,30 @@
#include "test_macros.h"
-TEST_CONSTEXPR_CXX20 bool test()
-{
+TEST_CONSTEXPR_CXX20 bool test() {
#ifndef TEST_HAS_NO_CHAR8_T
- char8_t s1[] = {1, 2, 3};
- assert(std::char_traits<char8_t>::move(s1, s1+1, 2) == s1);
- assert(s1[0] == char8_t(2));
- assert(s1[1] == char8_t(3));
- assert(s1[2] == char8_t(3));
- s1[2] = char8_t(0);
- assert(std::char_traits<char8_t>::move(s1+1, s1, 2) == s1+1);
- assert(s1[0] == char8_t(2));
- assert(s1[1] == char8_t(2));
- assert(s1[2] == char8_t(3));
- assert(std::char_traits<char8_t>::move(NULL, s1, 0) == NULL);
- assert(std::char_traits<char8_t>::move(s1, NULL, 0) == s1);
+ char8_t s1[] = {1, 2, 3};
+ assert(std::char_traits<char8_t>::move(s1, s1 + 1, 2) == s1);
+ assert(s1[0] == char8_t(2));
+ assert(s1[1] == char8_t(3));
+ assert(s1[2] == char8_t(3));
+ s1[2] = char8_t(0);
+ assert(std::char_traits<char8_t>::move(s1 + 1, s1, 2) == s1 + 1);
+ assert(s1[0] == char8_t(2));
+ assert(s1[1] == char8_t(2));
+ assert(s1[2] == char8_t(3));
+ assert(std::char_traits<char8_t>::move(NULL, s1, 0) == NULL);
+ assert(std::char_traits<char8_t>::move(s1, NULL, 0) == s1);
#endif
return true;
}
-int main(int, char**)
-{
- test();
+int main(int, char**) {
+ test();
#if TEST_STD_VER > 17
- static_assert(test());
+ static_assert(test());
#endif
return 0;
diff --git a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/not_eof.pass.cpp b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/not_eof.pass.cpp
index 6bfe7983b655552..d8de78614546edf 100644
--- a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/not_eof.pass.cpp
+++ b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/not_eof.pass.cpp
@@ -18,14 +18,12 @@
#include "test_macros.h"
-int main(int, char**)
-{
+int main(int, char**) {
#ifndef TEST_HAS_NO_CHAR8_T
- assert(std::char_traits<char8_t>::not_eof(u8'a') == u8'a');
- assert(std::char_traits<char8_t>::not_eof(u8'A') == u8'A');
- assert(std::char_traits<char8_t>::not_eof(0) == 0);
- assert(std::char_traits<char8_t>::not_eof(std::char_traits<char8_t>::eof()) !=
- std::char_traits<char8_t>::eof());
+ assert(std::char_traits<char8_t>::not_eof(u8'a') == u8'a');
+ assert(std::char_traits<char8_t>::not_eof(u8'A') == u8'A');
+ assert(std::char_traits<char8_t>::not_eof(0) == 0);
+ assert(std::char_traits<char8_t>::not_eof(std::char_traits<char8_t>::eof()) != std::char_traits<char8_t>::eof());
#endif
return 0;
diff --git a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/to_char_type.pass.cpp b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/to_char_type.pass.cpp
index 98b7e07474c4c6c..70c9dae23702fdf 100644
--- a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/to_char_type.pass.cpp
+++ b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/to_char_type.pass.cpp
@@ -18,12 +18,11 @@
#include "test_macros.h"
-int main(int, char**)
-{
+int main(int, char**) {
#ifndef TEST_HAS_NO_CHAR8_T
- assert(std::char_traits<char8_t>::to_char_type(u8'a') == u8'a');
- assert(std::char_traits<char8_t>::to_char_type(u8'A') == u8'A');
- assert(std::char_traits<char8_t>::to_char_type(0) == 0);
+ assert(std::char_traits<char8_t>::to_char_type(u8'a') == u8'a');
+ assert(std::char_traits<char8_t>::to_char_type(u8'A') == u8'A');
+ assert(std::char_traits<char8_t>::to_char_type(0) == 0);
#endif
return 0;
diff --git a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/to_int_type.pass.cpp b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/to_int_type.pass.cpp
index 3f65beecd9a0b6c..1e56e6d3b6f5ab3 100644
--- a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/to_int_type.pass.cpp
+++ b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/to_int_type.pass.cpp
@@ -18,12 +18,11 @@
#include "test_macros.h"
-int main(int, char**)
-{
+int main(int, char**) {
#ifndef TEST_HAS_NO_CHAR8_T
- assert(std::char_traits<char8_t>::to_int_type(u8'a') == u8'a');
- assert(std::char_traits<char8_t>::to_int_type(u8'A') == u8'A');
- assert(std::char_traits<char8_t>::to_int_type(0) == 0);
+ assert(std::char_traits<char8_t>::to_int_type(u8'a') == u8'a');
+ assert(std::char_traits<char8_t>::to_int_type(u8'A') == u8'A');
+ assert(std::char_traits<char8_t>::to_int_type(0) == 0);
#endif
return 0;
diff --git a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar_t/assign2.pass.cpp b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar_t/assign2.pass.cpp
index 3348efbd4512325..77e43b594a88088 100644
--- a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar_t/assign2.pass.cpp
+++ b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar_t/assign2.pass.cpp
@@ -21,22 +21,20 @@
#include "test_macros.h"
#if TEST_STD_VER > 14
-constexpr bool test_constexpr()
-{
- wchar_t c = L'1';
- std::char_traits<wchar_t>::assign(c, L'a');
- return c == L'a';
+constexpr bool test_constexpr() {
+ wchar_t c = L'1';
+ std::char_traits<wchar_t>::assign(c, L'a');
+ return c == L'a';
}
#endif
-int main(int, char**)
-{
- wchar_t c = L'\0';
- std::char_traits<wchar_t>::assign(c, L'a');
- assert(c == L'a');
+int main(int, char**) {
+ wchar_t c = L'\0';
+ std::char_traits<wchar_t>::assign(c, L'a');
+ assert(c == L'a');
#if TEST_STD_VER > 14
- static_assert(test_constexpr(), "" );
+ static_assert(test_constexpr(), "");
#endif
return 0;
diff --git a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar_t/assign3.pass.cpp b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar_t/assign3.pass.cpp
index bc60599258e6027..683a1d4ea749a75 100644
--- a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar_t/assign3.pass.cpp
+++ b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar_t/assign3.pass.cpp
@@ -19,24 +19,22 @@
#include "test_macros.h"
-TEST_CONSTEXPR_CXX20 bool test()
-{
- wchar_t s2[3] = {0};
- assert(std::char_traits<wchar_t>::assign(s2, 3, wchar_t(5)) == s2);
- assert(s2[0] == wchar_t(5));
- assert(s2[1] == wchar_t(5));
- assert(s2[2] == wchar_t(5));
- assert(std::char_traits<wchar_t>::assign(NULL, 0, wchar_t(5)) == NULL);
+TEST_CONSTEXPR_CXX20 bool test() {
+ wchar_t s2[3] = {0};
+ assert(std::char_traits<wchar_t>::assign(s2, 3, wchar_t(5)) == s2);
+ assert(s2[0] == wchar_t(5));
+ assert(s2[1] == wchar_t(5));
+ assert(s2[2] == wchar_t(5));
+ assert(std::char_traits<wchar_t>::assign(NULL, 0, wchar_t(5)) == NULL);
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
- static_assert(test());
+ static_assert(test());
#endif
return 0;
diff --git a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar_t/compare.pass.cpp b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar_t/compare.pass.cpp
index fb9617d6335adf3..b145ddbb338fcbf 100644
--- a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar_t/compare.pass.cpp
+++ b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar_t/compare.pass.cpp
@@ -21,39 +21,37 @@
#include "test_macros.h"
#if TEST_STD_VER > 14
-constexpr bool test_constexpr()
-{
- return std::char_traits<wchar_t>::compare(L"123", L"223", 3) < 0
- && std::char_traits<wchar_t>::compare(L"223", L"123", 3) > 0
- && std::char_traits<wchar_t>::compare(L"123", L"123", 3) == 0;
+constexpr bool test_constexpr() {
+ return std::char_traits<wchar_t>::compare(L"123", L"223", 3) < 0 &&
+ std::char_traits<wchar_t>::compare(L"223", L"123", 3) > 0 &&
+ std::char_traits<wchar_t>::compare(L"123", L"123", 3) == 0;
}
#endif
-int main(int, char**)
-{
- assert(std::char_traits<wchar_t>::compare(L"", L"", 0) == 0);
- assert(std::char_traits<wchar_t>::compare(NULL, NULL, 0) == 0);
-
- assert(std::char_traits<wchar_t>::compare(L"1", L"1", 1) == 0);
- assert(std::char_traits<wchar_t>::compare(L"1", L"2", 1) < 0);
- assert(std::char_traits<wchar_t>::compare(L"2", L"1", 1) > 0);
-
- assert(std::char_traits<wchar_t>::compare(L"12", L"12", 2) == 0);
- assert(std::char_traits<wchar_t>::compare(L"12", L"13", 2) < 0);
- assert(std::char_traits<wchar_t>::compare(L"12", L"22", 2) < 0);
- assert(std::char_traits<wchar_t>::compare(L"13", L"12", 2) > 0);
- assert(std::char_traits<wchar_t>::compare(L"22", L"12", 2) > 0);
-
- assert(std::char_traits<wchar_t>::compare(L"123", L"123", 3) == 0);
- assert(std::char_traits<wchar_t>::compare(L"123", L"223", 3) < 0);
- assert(std::char_traits<wchar_t>::compare(L"123", L"133", 3) < 0);
- assert(std::char_traits<wchar_t>::compare(L"123", L"124", 3) < 0);
- assert(std::char_traits<wchar_t>::compare(L"223", L"123", 3) > 0);
- assert(std::char_traits<wchar_t>::compare(L"133", L"123", 3) > 0);
- assert(std::char_traits<wchar_t>::compare(L"124", L"123", 3) > 0);
+int main(int, char**) {
+ assert(std::char_traits<wchar_t>::compare(L"", L"", 0) == 0);
+ assert(std::char_traits<wchar_t>::compare(NULL, NULL, 0) == 0);
+
+ assert(std::char_traits<wchar_t>::compare(L"1", L"1", 1) == 0);
+ assert(std::char_traits<wchar_t>::compare(L"1", L"2", 1) < 0);
+ assert(std::char_traits<wchar_t>::compare(L"2", L"1", 1) > 0);
+
+ assert(std::char_traits<wchar_t>::compare(L"12", L"12", 2) == 0);
+ assert(std::char_traits<wchar_t>::compare(L"12", L"13", 2) < 0);
+ assert(std::char_traits<wchar_t>::compare(L"12", L"22", 2) < 0);
+ assert(std::char_traits<wchar_t>::compare(L"13", L"12", 2) > 0);
+ assert(std::char_traits<wchar_t>::compare(L"22", L"12", 2) > 0);
+
+ assert(std::char_traits<wchar_t>::compare(L"123", L"123", 3) == 0);
+ assert(std::char_traits<wchar_t>::compare(L"123", L"223", 3) < 0);
+ assert(std::char_traits<wchar_t>::compare(L"123", L"133", 3) < 0);
+ assert(std::char_traits<wchar_t>::compare(L"123", L"124", 3) < 0);
+ assert(std::char_traits<wchar_t>::compare(L"223", L"123", 3) > 0);
+ assert(std::char_traits<wchar_t>::compare(L"133", L"123", 3) > 0);
+ assert(std::char_traits<wchar_t>::compare(L"124", L"123", 3) > 0);
#if TEST_STD_VER > 14
- static_assert(test_constexpr(), "" );
+ static_assert(test_constexpr(), "");
#endif
return 0;
diff --git a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar_t/copy.pass.cpp b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar_t/copy.pass.cpp
index b1bfba9db946983..8c98f60d965e8d2 100644
--- a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar_t/copy.pass.cpp
+++ b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar_t/copy.pass.cpp
@@ -19,22 +19,20 @@
#include "test_macros.h"
-TEST_CONSTEXPR_CXX20 bool test()
-{
- wchar_t s1[] = {1, 2, 3};
- wchar_t s2[3] = {0};
- assert(std::char_traits<wchar_t>::copy(s2, s1, 3) == s2);
- assert(s2[0] == wchar_t(1));
- assert(s2[1] == wchar_t(2));
- assert(s2[2] == wchar_t(3));
- assert(std::char_traits<wchar_t>::copy(NULL, s1, 0) == NULL);
- assert(std::char_traits<wchar_t>::copy(s1, NULL, 0) == s1);
+TEST_CONSTEXPR_CXX20 bool test() {
+ wchar_t s1[] = {1, 2, 3};
+ wchar_t s2[3] = {0};
+ assert(std::char_traits<wchar_t>::copy(s2, s1, 3) == s2);
+ assert(s2[0] == wchar_t(1));
+ assert(s2[1] == wchar_t(2));
+ assert(s2[2] == wchar_t(3));
+ assert(std::char_traits<wchar_t>::copy(NULL, s1, 0) == NULL);
+ assert(std::char_traits<wchar_t>::copy(s1, NULL, 0) == s1);
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
diff --git a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar_t/eof.pass.cpp b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar_t/eof.pass.cpp
index 5cfb1f4efa6527a..585b46a1e22cbdc 100644
--- a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar_t/eof.pass.cpp
+++ b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar_t/eof.pass.cpp
@@ -19,9 +19,8 @@
#include "test_macros.h"
-int main(int, char**)
-{
- assert(std::char_traits<wchar_t>::eof() == WEOF);
+int main(int, char**) {
+ assert(std::char_traits<wchar_t>::eof() == WEOF);
return 0;
}
diff --git a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar_t/eq.pass.cpp b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar_t/eq.pass.cpp
index 9ca8ea1d2b1e23f..53017028138eb35 100644
--- a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar_t/eq.pass.cpp
+++ b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar_t/eq.pass.cpp
@@ -19,10 +19,9 @@
#include "test_macros.h"
-int main(int, char**)
-{
- assert(std::char_traits<wchar_t>::eq(L'a', L'a'));
- assert(!std::char_traits<wchar_t>::eq(L'a', L'A'));
+int main(int, char**) {
+ assert(std::char_traits<wchar_t>::eq(L'a', L'a'));
+ assert(!std::char_traits<wchar_t>::eq(L'a', L'A'));
return 0;
}
diff --git a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar_t/eq_int_type.pass.cpp b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar_t/eq_int_type.pass.cpp
index d3536d714ed6205..49a5492d19c8fab 100644
--- a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar_t/eq_int_type.pass.cpp
+++ b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar_t/eq_int_type.pass.cpp
@@ -19,13 +19,11 @@
#include "test_macros.h"
-int main(int, char**)
-{
- assert( std::char_traits<wchar_t>::eq_int_type(L'a', L'a'));
- assert(!std::char_traits<wchar_t>::eq_int_type(L'a', L'A'));
- assert(!std::char_traits<wchar_t>::eq_int_type(std::char_traits<wchar_t>::eof(), L'A'));
- assert( std::char_traits<wchar_t>::eq_int_type(std::char_traits<wchar_t>::eof(),
- std::char_traits<wchar_t>::eof()));
+int main(int, char**) {
+ assert(std::char_traits<wchar_t>::eq_int_type(L'a', L'a'));
+ assert(!std::char_traits<wchar_t>::eq_int_type(L'a', L'A'));
+ assert(!std::char_traits<wchar_t>::eq_int_type(std::char_traits<wchar_t>::eof(), L'A'));
+ assert(std::char_traits<wchar_t>::eq_int_type(std::char_traits<wchar_t>::eof(), std::char_traits<wchar_t>::eof()));
return 0;
}
diff --git a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar_t/find.pass.cpp b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar_t/find.pass.cpp
index 2293723354225bc..63bc90506b4f3cf 100644
--- a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar_t/find.pass.cpp
+++ b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar_t/find.pass.cpp
@@ -21,28 +21,24 @@
#include "test_macros.h"
#if TEST_STD_VER > 14
-constexpr bool test_constexpr()
-{
- constexpr const wchar_t *p = L"123";
- return std::char_traits<wchar_t>::find(p, 3, L'1') == p
- && std::char_traits<wchar_t>::find(p, 3, L'2') == p + 1
- && std::char_traits<wchar_t>::find(p, 3, L'3') == p + 2
- && std::char_traits<wchar_t>::find(p, 3, L'4') == nullptr;
+constexpr bool test_constexpr() {
+ constexpr const wchar_t* p = L"123";
+ return std::char_traits<wchar_t>::find(p, 3, L'1') == p && std::char_traits<wchar_t>::find(p, 3, L'2') == p + 1 &&
+ std::char_traits<wchar_t>::find(p, 3, L'3') == p + 2 && std::char_traits<wchar_t>::find(p, 3, L'4') == nullptr;
}
#endif
-int main(int, char**)
-{
- wchar_t s1[] = {1, 2, 3};
- assert(std::char_traits<wchar_t>::find(s1, 3, wchar_t(1)) == s1);
- assert(std::char_traits<wchar_t>::find(s1, 3, wchar_t(2)) == s1+1);
- assert(std::char_traits<wchar_t>::find(s1, 3, wchar_t(3)) == s1+2);
- assert(std::char_traits<wchar_t>::find(s1, 3, wchar_t(4)) == 0);
- assert(std::char_traits<wchar_t>::find(s1, 3, wchar_t(0)) == 0);
- assert(std::char_traits<wchar_t>::find(NULL, 0, wchar_t(0)) == 0);
+int main(int, char**) {
+ wchar_t s1[] = {1, 2, 3};
+ assert(std::char_traits<wchar_t>::find(s1, 3, wchar_t(1)) == s1);
+ assert(std::char_traits<wchar_t>::find(s1, 3, wchar_t(2)) == s1 + 1);
+ assert(std::char_traits<wchar_t>::find(s1, 3, wchar_t(3)) == s1 + 2);
+ assert(std::char_traits<wchar_t>::find(s1, 3, wchar_t(4)) == 0);
+ assert(std::char_traits<wchar_t>::find(s1, 3, wchar_t(0)) == 0);
+ assert(std::char_traits<wchar_t>::find(NULL, 0, wchar_t(0)) == 0);
#if TEST_STD_VER > 14
- static_assert(test_constexpr(), "" );
+ static_assert(test_constexpr(), "");
#endif
return 0;
diff --git a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar_t/length.pass.cpp b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar_t/length.pass.cpp
index d9d62a3b1248775..302d809aa0d86fb 100644
--- a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar_t/length.pass.cpp
+++ b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar_t/length.pass.cpp
@@ -21,23 +21,20 @@
#include "test_macros.h"
#if TEST_STD_VER > 14
-constexpr bool test_constexpr()
-{
- return std::char_traits<wchar_t>::length(L"") == 0
- && std::char_traits<wchar_t>::length(L"abcd") == 4;
+constexpr bool test_constexpr() {
+ return std::char_traits<wchar_t>::length(L"") == 0 && std::char_traits<wchar_t>::length(L"abcd") == 4;
}
#endif
-int main(int, char**)
-{
- assert(std::char_traits<wchar_t>::length(L"") == 0);
- assert(std::char_traits<wchar_t>::length(L"a") == 1);
- assert(std::char_traits<wchar_t>::length(L"aa") == 2);
- assert(std::char_traits<wchar_t>::length(L"aaa") == 3);
- assert(std::char_traits<wchar_t>::length(L"aaaa") == 4);
+int main(int, char**) {
+ assert(std::char_traits<wchar_t>::length(L"") == 0);
+ assert(std::char_traits<wchar_t>::length(L"a") == 1);
+ assert(std::char_traits<wchar_t>::length(L"aa") == 2);
+ assert(std::char_traits<wchar_t>::length(L"aaa") == 3);
+ assert(std::char_traits<wchar_t>::length(L"aaaa") == 4);
#if TEST_STD_VER > 14
- static_assert(test_constexpr(), "" );
+ static_assert(test_constexpr(), "");
#endif
return 0;
diff --git a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar_t/lt.pass.cpp b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar_t/lt.pass.cpp
index 4ec86aa1434ee35..0bf7d403dfcab31 100644
--- a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar_t/lt.pass.cpp
+++ b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar_t/lt.pass.cpp
@@ -19,8 +19,7 @@
#include "test_macros.h"
-int main(int, char**)
-{
+int main(int, char**) {
assert(std::char_traits<wchar_t>::lt(L'\0', L'A') == (L'\0' < L'A'));
assert(std::char_traits<wchar_t>::lt(L'A', L'\0') == (L'A' < L'\0'));
diff --git a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar_t/move.pass.cpp b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar_t/move.pass.cpp
index d91048c52914ccf..6f2cd272590579b 100644
--- a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar_t/move.pass.cpp
+++ b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar_t/move.pass.cpp
@@ -19,26 +19,24 @@
#include "test_macros.h"
-TEST_CONSTEXPR_CXX20 bool test()
-{
- wchar_t s1[] = {1, 2, 3};
- assert(std::char_traits<wchar_t>::move(s1, s1+1, 2) == s1);
- assert(s1[0] == wchar_t(2));
- assert(s1[1] == wchar_t(3));
- assert(s1[2] == wchar_t(3));
- s1[2] = wchar_t(0);
- assert(std::char_traits<wchar_t>::move(s1+1, s1, 2) == s1+1);
- assert(s1[0] == wchar_t(2));
- assert(s1[1] == wchar_t(2));
- assert(s1[2] == wchar_t(3));
- assert(std::char_traits<wchar_t>::move(NULL, s1, 0) == NULL);
- assert(std::char_traits<wchar_t>::move(s1, NULL, 0) == s1);
+TEST_CONSTEXPR_CXX20 bool test() {
+ wchar_t s1[] = {1, 2, 3};
+ assert(std::char_traits<wchar_t>::move(s1, s1 + 1, 2) == s1);
+ assert(s1[0] == wchar_t(2));
+ assert(s1[1] == wchar_t(3));
+ assert(s1[2] == wchar_t(3));
+ s1[2] = wchar_t(0);
+ assert(std::char_traits<wchar_t>::move(s1 + 1, s1, 2) == s1 + 1);
+ assert(s1[0] == wchar_t(2));
+ assert(s1[1] == wchar_t(2));
+ assert(s1[2] == wchar_t(3));
+ assert(std::char_traits<wchar_t>::move(NULL, s1, 0) == NULL);
+ assert(std::char_traits<wchar_t>::move(s1, NULL, 0) == s1);
return true;
}
-int main(int, char**)
-{
+int main(int, char**) {
test();
#if TEST_STD_VER > 17
diff --git a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar_t/not_eof.pass.cpp b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar_t/not_eof.pass.cpp
index bebf917df20a049..af501bdadf9d4df 100644
--- a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar_t/not_eof.pass.cpp
+++ b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar_t/not_eof.pass.cpp
@@ -19,13 +19,11 @@
#include "test_macros.h"
-int main(int, char**)
-{
- assert(std::char_traits<wchar_t>::not_eof(L'a') == L'a');
- assert(std::char_traits<wchar_t>::not_eof(L'A') == L'A');
- assert(std::char_traits<wchar_t>::not_eof(0) == 0);
- assert(std::char_traits<wchar_t>::not_eof(std::char_traits<wchar_t>::eof()) !=
- std::char_traits<wchar_t>::eof());
+int main(int, char**) {
+ assert(std::char_traits<wchar_t>::not_eof(L'a') == L'a');
+ assert(std::char_traits<wchar_t>::not_eof(L'A') == L'A');
+ assert(std::char_traits<wchar_t>::not_eof(0) == 0);
+ assert(std::char_traits<wchar_t>::not_eof(std::char_traits<wchar_t>::eof()) != std::char_traits<wchar_t>::eof());
return 0;
}
diff --git a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar_t/to_char_type.pass.cpp b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar_t/to_char_type.pass.cpp
index 4ded256b458243d..64f195187ee0564 100644
--- a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar_t/to_char_type.pass.cpp
+++ b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar_t/to_char_type.pass.cpp
@@ -19,11 +19,10 @@
#include "test_macros.h"
-int main(int, char**)
-{
- assert(std::char_traits<wchar_t>::to_char_type(L'a') == L'a');
- assert(std::char_traits<wchar_t>::to_char_type(L'A') == L'A');
- assert(std::char_traits<wchar_t>::to_char_type(0) == 0);
+int main(int, char**) {
+ assert(std::char_traits<wchar_t>::to_char_type(L'a') == L'a');
+ assert(std::char_traits<wchar_t>::to_char_type(L'A') == L'A');
+ assert(std::char_traits<wchar_t>::to_char_type(0) == 0);
return 0;
}
diff --git a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar_t/to_int_type.pass.cpp b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar_t/to_int_type.pass.cpp
index b1259876b6731b9..174f8b1ed82c03b 100644
--- a/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar_t/to_int_type.pass.cpp
+++ b/libcxx/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.wchar_t/to_int_type.pass.cpp
@@ -19,11 +19,10 @@
#include "test_macros.h"
-int main(int, char**)
-{
- assert(std::char_traits<wchar_t>::to_int_type(L'a') == L'a');
- assert(std::char_traits<wchar_t>::to_int_type(L'A') == L'A');
- assert(std::char_traits<wchar_t>::to_int_type(0) == 0);
+int main(int, char**) {
+ assert(std::char_traits<wchar_t>::to_int_type(L'a') == L'a');
+ assert(std::char_traits<wchar_t>::to_int_type(L'A') == L'A');
+ assert(std::char_traits<wchar_t>::to_int_type(0) == 0);
return 0;
}
diff --git a/libcxx/test/std/strings/char.traits/char.traits.typedefs/nothing_to_do.pass.cpp b/libcxx/test/std/strings/char.traits/char.traits.typedefs/nothing_to_do.pass.cpp
index 1f764da05d6b5f5..3e0d2a6570f42de 100644
--- a/libcxx/test/std/strings/char.traits/char.traits.typedefs/nothing_to_do.pass.cpp
+++ b/libcxx/test/std/strings/char.traits/char.traits.typedefs/nothing_to_do.pass.cpp
@@ -6,8 +6,4 @@
//
//===----------------------------------------------------------------------===//
-int main(int, char**)
-{
-
- return 0;
-}
+int main(int, char**) { return 0; }
diff --git a/libcxx/test/std/strings/string.conversions/stod.pass.cpp b/libcxx/test/std/strings/string.conversions/stod.pass.cpp
index dbf10a4948de455..bbe992fbc565e71 100644
--- a/libcxx/test/std/strings/string.conversions/stod.pass.cpp
+++ b/libcxx/test/std/strings/string.conversions/stod.pass.cpp
@@ -18,141 +18,140 @@
#include "test_macros.h"
-int main(int, char**)
-{
- // char
- {
- assert(std::stod("0") == 0);
- assert(std::stod("-0") == 0);
- assert(std::stod("-10") == -10);
- assert(std::stod(" 10") == 10);
- {
- std::size_t idx = 0;
- assert(std::stod("10g", &idx) == 10);
- assert(idx == 2);
- }
- {
- std::size_t idx = 0;
- assert(std::stod("1.e60", &idx) == 1.e60);
- assert(idx == 5);
- }
- {
- std::size_t idx = 0;
- assert(std::stod("INF", &idx) == INFINITY);
- assert(idx == 3);
- }
- {
- std::size_t idx = 0;
- assert(std::isnan(std::stod("NAN", &idx)));
- assert(idx == 3);
- }
+int main(int, char**) {
+ // char
+ {
+ assert(std::stod("0") == 0);
+ assert(std::stod("-0") == 0);
+ assert(std::stod("-10") == -10);
+ assert(std::stod(" 10") == 10);
+ {
+ std::size_t idx = 0;
+ assert(std::stod("10g", &idx) == 10);
+ assert(idx == 2);
+ }
+ {
+ std::size_t idx = 0;
+ assert(std::stod("1.e60", &idx) == 1.e60);
+ assert(idx == 5);
+ }
+ {
+ std::size_t idx = 0;
+ assert(std::stod("INF", &idx) == INFINITY);
+ assert(idx == 3);
+ }
+ {
+ std::size_t idx = 0;
+ assert(std::isnan(std::stod("NAN", &idx)));
+ assert(idx == 3);
+ }
#ifndef TEST_HAS_NO_EXCEPTIONS
- {
- std::size_t idx = 0;
- try {
- assert(std::stod("1.e360", &idx) == INFINITY);
- assert(false);
- } catch (const std::out_of_range&) {
- assert(idx == 0);
- }
- }
- {
- std::size_t idx = 0;
- try {
- (void)std::stod("", &idx);
- assert(false);
- } catch (const std::invalid_argument&) {
- assert(idx == 0);
- }
- }
- {
- std::size_t idx = 0;
- try {
- (void)std::stod(" - 8", &idx);
- assert(false);
- } catch (const std::invalid_argument&) {
- assert(idx == 0);
- }
- }
- {
- std::size_t idx = 0;
- try {
- (void)std::stod("a1", &idx);
- assert(false);
- } catch (const std::invalid_argument&) {
- assert(idx == 0);
- }
- }
-#endif // TEST_HAS_NO_EXCEPTIONS
+ {
+ std::size_t idx = 0;
+ try {
+ assert(std::stod("1.e360", &idx) == INFINITY);
+ assert(false);
+ } catch (const std::out_of_range&) {
+ assert(idx == 0);
+ }
+ }
+ {
+ std::size_t idx = 0;
+ try {
+ (void)std::stod("", &idx);
+ assert(false);
+ } catch (const std::invalid_argument&) {
+ assert(idx == 0);
+ }
+ }
+ {
+ std::size_t idx = 0;
+ try {
+ (void)std::stod(" - 8", &idx);
+ assert(false);
+ } catch (const std::invalid_argument&) {
+ assert(idx == 0);
+ }
+ }
+ {
+ std::size_t idx = 0;
+ try {
+ (void)std::stod("a1", &idx);
+ assert(false);
+ } catch (const std::invalid_argument&) {
+ assert(idx == 0);
+ }
}
+#endif // TEST_HAS_NO_EXCEPTIONS
+ }
- // wchar_t
+ // wchar_t
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
+ {
+ assert(std::stod(L"0") == 0);
+ assert(std::stod(L"-0") == 0);
+ assert(std::stod(L"-10.5") == -10.5);
+ assert(std::stod(L" 10") == 10);
{
- assert(std::stod(L"0") == 0);
- assert(std::stod(L"-0") == 0);
- assert(std::stod(L"-10.5") == -10.5);
- assert(std::stod(L" 10") == 10);
- {
- std::size_t idx = 0;
- assert(std::stod(L"10g", &idx) == 10);
- assert(idx == 2);
- }
- {
- std::size_t idx = 0;
- assert(std::stod(L"1.e60", &idx) == 1.e60);
- assert(idx == 5);
- }
- {
- std::size_t idx = 0;
- assert(std::stod(L"INF", &idx) == INFINITY);
- assert(idx == 3);
- }
- {
- std::size_t idx = 0;
- assert(std::isnan(std::stod(L"NAN", &idx)));
- assert(idx == 3);
- }
-#ifndef TEST_HAS_NO_EXCEPTIONS
- {
- std::size_t idx = 0;
- try {
- assert(std::stod(L"1.e360", &idx) == INFINITY);
- assert(false);
- } catch (const std::out_of_range&) {
- assert(idx == 0);
- }
- }
- {
- std::size_t idx = 0;
- try {
- (void)std::stod(L"", &idx);
- assert(false);
- } catch (const std::invalid_argument&) {
- assert(idx == 0);
- }
- }
- {
- std::size_t idx = 0;
- try {
- (void)std::stod(L" - 8", &idx);
- assert(false);
- } catch (const std::invalid_argument&) {
- assert(idx == 0);
- }
- }
- {
- std::size_t idx = 0;
- try {
- (void)std::stod(L"a1", &idx);
- assert(false);
- } catch (const std::invalid_argument&) {
- assert(idx == 0);
- }
- }
-#endif // TEST_HAS_NO_EXCEPTIONS
+ std::size_t idx = 0;
+ assert(std::stod(L"10g", &idx) == 10);
+ assert(idx == 2);
+ }
+ {
+ std::size_t idx = 0;
+ assert(std::stod(L"1.e60", &idx) == 1.e60);
+ assert(idx == 5);
+ }
+ {
+ std::size_t idx = 0;
+ assert(std::stod(L"INF", &idx) == INFINITY);
+ assert(idx == 3);
+ }
+ {
+ std::size_t idx = 0;
+ assert(std::isnan(std::stod(L"NAN", &idx)));
+ assert(idx == 3);
+ }
+# ifndef TEST_HAS_NO_EXCEPTIONS
+ {
+ std::size_t idx = 0;
+ try {
+ assert(std::stod(L"1.e360", &idx) == INFINITY);
+ assert(false);
+ } catch (const std::out_of_range&) {
+ assert(idx == 0);
+ }
+ }
+ {
+ std::size_t idx = 0;
+ try {
+ (void)std::stod(L"", &idx);
+ assert(false);
+ } catch (const std::invalid_argument&) {
+ assert(idx == 0);
+ }
+ }
+ {
+ std::size_t idx = 0;
+ try {
+ (void)std::stod(L" - 8", &idx);
+ assert(false);
+ } catch (const std::invalid_argument&) {
+ assert(idx == 0);
+ }
+ }
+ {
+ std::size_t idx = 0;
+ try {
+ (void)std::stod(L"a1", &idx);
+ assert(false);
+ } catch (const std::invalid_argument&) {
+ assert(idx == 0);
+ }
}
+# endif // TEST_HAS_NO_EXCEPTIONS
+ }
#endif // TEST_HAS_NO_WIDE_CHARACTERS
return 0;
diff --git a/libcxx/test/std/strings/string.conversions/stof.pass.cpp b/libcxx/test/std/strings/string.conversions/stof.pass.cpp
index d95e5d1b10a86f2..4ddeb8f95ede038 100644
--- a/libcxx/test/std/strings/string.conversions/stof.pass.cpp
+++ b/libcxx/test/std/strings/string.conversions/stof.pass.cpp
@@ -18,143 +18,142 @@
#include "test_macros.h"
-int main(int, char**)
-{
- assert(std::stof("0") == 0);
- assert(std::stof("-0") == 0);
- assert(std::stof("-10") == -10);
- assert(std::stof(" 10") == 10);
- {
- std::size_t idx = 0;
- assert(std::stof("10g", &idx) == 10);
- assert(idx == 2);
- }
- {
- std::size_t idx = 0;
- assert(std::stof("INF", &idx) == INFINITY);
- assert(idx == 3);
- }
- {
- std::size_t idx = 0;
- assert(std::isnan(std::stof("NAN", &idx)));
- assert(idx == 3);
- }
+int main(int, char**) {
+ assert(std::stof("0") == 0);
+ assert(std::stof("-0") == 0);
+ assert(std::stof("-10") == -10);
+ assert(std::stof(" 10") == 10);
+ {
+ std::size_t idx = 0;
+ assert(std::stof("10g", &idx) == 10);
+ assert(idx == 2);
+ }
+ {
+ std::size_t idx = 0;
+ assert(std::stof("INF", &idx) == INFINITY);
+ assert(idx == 3);
+ }
+ {
+ std::size_t idx = 0;
+ assert(std::isnan(std::stof("NAN", &idx)));
+ assert(idx == 3);
+ }
#ifndef TEST_HAS_NO_EXCEPTIONS
- {
- std::size_t idx = 0;
- try {
- assert(std::stof("1.e60", &idx) == INFINITY);
- assert(false);
- } catch (const std::out_of_range&) {
- assert(idx == 0);
- }
- }
- {
- std::size_t idx = 0;
- try {
- assert(std::stof("1.e360", &idx) == INFINITY);
- assert(false);
- } catch (const std::out_of_range&) {
- assert(idx == 0);
- }
- }
- {
- std::size_t idx = 0;
- try {
- (void)std::stof("", &idx);
- assert(false);
- } catch (const std::invalid_argument&) {
- assert(idx == 0);
- }
- }
- {
- std::size_t idx = 0;
- try {
- (void)std::stof(" - 8", &idx);
- assert(false);
- } catch (const std::invalid_argument&) {
- assert(idx == 0);
- }
- }
- {
- std::size_t idx = 0;
- try {
- (void)std::stof("a1", &idx);
- assert(false);
- } catch (const std::invalid_argument&) {
- assert(idx == 0);
- }
- }
+ {
+ std::size_t idx = 0;
+ try {
+ assert(std::stof("1.e60", &idx) == INFINITY);
+ assert(false);
+ } catch (const std::out_of_range&) {
+ assert(idx == 0);
+ }
+ }
+ {
+ std::size_t idx = 0;
+ try {
+ assert(std::stof("1.e360", &idx) == INFINITY);
+ assert(false);
+ } catch (const std::out_of_range&) {
+ assert(idx == 0);
+ }
+ }
+ {
+ std::size_t idx = 0;
+ try {
+ (void)std::stof("", &idx);
+ assert(false);
+ } catch (const std::invalid_argument&) {
+ assert(idx == 0);
+ }
+ }
+ {
+ std::size_t idx = 0;
+ try {
+ (void)std::stof(" - 8", &idx);
+ assert(false);
+ } catch (const std::invalid_argument&) {
+ assert(idx == 0);
+ }
+ }
+ {
+ std::size_t idx = 0;
+ try {
+ (void)std::stof("a1", &idx);
+ assert(false);
+ } catch (const std::invalid_argument&) {
+ assert(idx == 0);
+ }
+ }
#endif // TEST_HAS_NO_EXCEPTIONS
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- assert(std::stof(L"0") == 0);
- assert(std::stof(L"-0") == 0);
- assert(std::stof(L"-10.5") == -10.5);
- assert(std::stof(L" 10") == 10);
- {
- std::size_t idx = 0;
- assert(std::stof(L"10g", &idx) == 10);
- assert(idx == 2);
- }
- {
- std::size_t idx = 0;
- assert(std::stof(L"INF", &idx) == INFINITY);
- assert(idx == 3);
- }
- {
- std::size_t idx = 0;
- assert(std::isnan(std::stof(L"NAN", &idx)));
- assert(idx == 3);
- }
-#ifndef TEST_HAS_NO_EXCEPTIONS
- {
- std::size_t idx = 0;
- try {
- assert(std::stof(L"1.e60", &idx) == INFINITY);
- assert(false);
- } catch (const std::out_of_range&) {
- assert(idx == 0);
- }
- }
- {
- std::size_t idx = 0;
- try {
- assert(std::stof(L"1.e360", &idx) == INFINITY);
- assert(false);
- } catch (const std::out_of_range&) {
- assert(idx == 0);
- }
- }
- {
- std::size_t idx = 0;
- try {
- (void)std::stof(L"", &idx);
- assert(false);
- } catch (const std::invalid_argument&) {
- assert(idx == 0);
- }
- }
- {
- std::size_t idx = 0;
- try {
- (void)std::stof(L" - 8", &idx);
- assert(false);
- } catch (const std::invalid_argument&) {
- assert(idx == 0);
- }
- }
- {
- std::size_t idx = 0;
- try {
- (void)std::stof(L"a1", &idx);
- assert(false);
- } catch (const std::invalid_argument&) {
- assert(idx == 0);
- }
- }
-#endif // TEST_HAS_NO_EXCEPTIONS
-#endif // TEST_HAS_NO_WIDE_CHARACTERS
+ assert(std::stof(L"0") == 0);
+ assert(std::stof(L"-0") == 0);
+ assert(std::stof(L"-10.5") == -10.5);
+ assert(std::stof(L" 10") == 10);
+ {
+ std::size_t idx = 0;
+ assert(std::stof(L"10g", &idx) == 10);
+ assert(idx == 2);
+ }
+ {
+ std::size_t idx = 0;
+ assert(std::stof(L"INF", &idx) == INFINITY);
+ assert(idx == 3);
+ }
+ {
+ std::size_t idx = 0;
+ assert(std::isnan(std::stof(L"NAN", &idx)));
+ assert(idx == 3);
+ }
+# ifndef TEST_HAS_NO_EXCEPTIONS
+ {
+ std::size_t idx = 0;
+ try {
+ assert(std::stof(L"1.e60", &idx) == INFINITY);
+ assert(false);
+ } catch (const std::out_of_range&) {
+ assert(idx == 0);
+ }
+ }
+ {
+ std::size_t idx = 0;
+ try {
+ assert(std::stof(L"1.e360", &idx) == INFINITY);
+ assert(false);
+ } catch (const std::out_of_range&) {
+ assert(idx == 0);
+ }
+ }
+ {
+ std::size_t idx = 0;
+ try {
+ (void)std::stof(L"", &idx);
+ assert(false);
+ } catch (const std::invalid_argument&) {
+ assert(idx == 0);
+ }
+ }
+ {
+ std::size_t idx = 0;
+ try {
+ (void)std::stof(L" - 8", &idx);
+ assert(false);
+ } catch (const std::invalid_argument&) {
+ assert(idx == 0);
+ }
+ }
+ {
+ std::size_t idx = 0;
+ try {
+ (void)std::stof(L"a1", &idx);
+ assert(false);
+ } catch (const std::invalid_argument&) {
+ assert(idx == 0);
+ }
+ }
+# endif // TEST_HAS_NO_EXCEPTIONS
+#endif // TEST_HAS_NO_WIDE_CHARACTERS
return 0;
}
diff --git a/libcxx/test/std/strings/string.conversions/stoi.pass.cpp b/libcxx/test/std/strings/string.conversions/stoi.pass.cpp
index f7650e3d245f9ad..7fe0613b7fc58de 100644
--- a/libcxx/test/std/strings/string.conversions/stoi.pass.cpp
+++ b/libcxx/test/std/strings/string.conversions/stoi.pass.cpp
@@ -17,105 +17,102 @@
#include "test_macros.h"
-int main(int, char**)
-{
- assert(std::stoi("0") == 0);
- assert(std::stoi("-0") == 0);
- assert(std::stoi("-10") == -10);
- assert(std::stoi(" 10") == 10);
- {
- std::size_t idx = 0;
- assert(std::stoi("10g", &idx, 16) == 16);
- assert(idx == 2);
- }
+int main(int, char**) {
+ assert(std::stoi("0") == 0);
+ assert(std::stoi("-0") == 0);
+ assert(std::stoi("-10") == -10);
+ assert(std::stoi(" 10") == 10);
+ {
+ std::size_t idx = 0;
+ assert(std::stoi("10g", &idx, 16) == 16);
+ assert(idx == 2);
+ }
#ifndef TEST_HAS_NO_EXCEPTIONS
- if (std::numeric_limits<long>::max() > std::numeric_limits<int>::max()) {
- std::size_t idx = 0;
- try {
- (void)std::stoi("0x100000000", &idx, 16);
- assert(false);
- } catch (const std::out_of_range&) {
-
- }
+ if (std::numeric_limits<long>::max() > std::numeric_limits<int>::max()) {
+ std::size_t idx = 0;
+ try {
+ (void)std::stoi("0x100000000", &idx, 16);
+ assert(false);
+ } catch (const std::out_of_range&) {
}
- {
- std::size_t idx = 0;
- try {
- (void)std::stoi("", &idx);
- assert(false);
- } catch (const std::invalid_argument&) {
- assert(idx == 0);
- }
+ }
+ {
+ std::size_t idx = 0;
+ try {
+ (void)std::stoi("", &idx);
+ assert(false);
+ } catch (const std::invalid_argument&) {
+ assert(idx == 0);
}
- {
- std::size_t idx = 0;
- try {
- (void)std::stoi(" - 8", &idx);
- assert(false);
- } catch (const std::invalid_argument&) {
- assert(idx == 0);
- }
+ }
+ {
+ std::size_t idx = 0;
+ try {
+ (void)std::stoi(" - 8", &idx);
+ assert(false);
+ } catch (const std::invalid_argument&) {
+ assert(idx == 0);
}
- {
- std::size_t idx = 0;
- try {
- (void)std::stoi("a1", &idx);
- assert(false);
- } catch (const std::invalid_argument&) {
- assert(idx == 0);
- }
+ }
+ {
+ std::size_t idx = 0;
+ try {
+ (void)std::stoi("a1", &idx);
+ assert(false);
+ } catch (const std::invalid_argument&) {
+ assert(idx == 0);
}
+ }
#endif // TEST_HAS_NO_EXCEPTIONS
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- assert(std::stoi(L"0") == 0);
- assert(std::stoi(L"-0") == 0);
- assert(std::stoi(L"-10") == -10);
- assert(std::stoi(L" 10") == 10);
- {
- std::size_t idx = 0;
- assert(std::stoi(L"10g", &idx, 16) == 16);
- assert(idx == 2);
- }
-#ifndef TEST_HAS_NO_EXCEPTIONS
- if (std::numeric_limits<long>::max() > std::numeric_limits<int>::max()) {
- std::size_t idx = 0;
- try {
- (void)std::stoi(L"0x100000000", &idx, 16);
- assert(false);
- } catch (const std::out_of_range&) {
-
- }
+ assert(std::stoi(L"0") == 0);
+ assert(std::stoi(L"-0") == 0);
+ assert(std::stoi(L"-10") == -10);
+ assert(std::stoi(L" 10") == 10);
+ {
+ std::size_t idx = 0;
+ assert(std::stoi(L"10g", &idx, 16) == 16);
+ assert(idx == 2);
+ }
+# ifndef TEST_HAS_NO_EXCEPTIONS
+ if (std::numeric_limits<long>::max() > std::numeric_limits<int>::max()) {
+ std::size_t idx = 0;
+ try {
+ (void)std::stoi(L"0x100000000", &idx, 16);
+ assert(false);
+ } catch (const std::out_of_range&) {
}
- {
- std::size_t idx = 0;
- try {
- (void)std::stoi(L"", &idx);
- assert(false);
- } catch (const std::invalid_argument&) {
- assert(idx == 0);
- }
+ }
+ {
+ std::size_t idx = 0;
+ try {
+ (void)std::stoi(L"", &idx);
+ assert(false);
+ } catch (const std::invalid_argument&) {
+ assert(idx == 0);
}
- {
- std::size_t idx = 0;
- try {
- (void)std::stoi(L" - 8", &idx);
- assert(false);
- } catch (const std::invalid_argument&) {
- assert(idx == 0);
- }
+ }
+ {
+ std::size_t idx = 0;
+ try {
+ (void)std::stoi(L" - 8", &idx);
+ assert(false);
+ } catch (const std::invalid_argument&) {
+ assert(idx == 0);
}
- {
- std::size_t idx = 0;
- try {
- (void)std::stoi(L"a1", &idx);
- assert(false);
- } catch (const std::invalid_argument&) {
- assert(idx == 0);
- }
+ }
+ {
+ std::size_t idx = 0;
+ try {
+ (void)std::stoi(L"a1", &idx);
+ assert(false);
+ } catch (const std::invalid_argument&) {
+ assert(idx == 0);
}
-#endif // TEST_HAS_NO_EXCEPTIONS
-#endif // TEST_HAS_NO_WIDE_CHARACTERS
+ }
+# endif // TEST_HAS_NO_EXCEPTIONS
+#endif // TEST_HAS_NO_WIDE_CHARACTERS
return 0;
}
diff --git a/libcxx/test/std/strings/string.conversions/stol.pass.cpp b/libcxx/test/std/strings/string.conversions/stol.pass.cpp
index 2356ae87a4e7fa7..1e47bd504957575 100644
--- a/libcxx/test/std/strings/string.conversions/stol.pass.cpp
+++ b/libcxx/test/std/strings/string.conversions/stol.pass.cpp
@@ -17,107 +17,106 @@
#include "test_macros.h"
-int main(int, char**)
-{
- assert(std::stol("0") == 0);
- assert(std::stol("-0") == 0);
- assert(std::stol("-10") == -10);
- assert(std::stol(" 10") == 10);
- {
- std::size_t idx = 0;
- assert(std::stol("10g", &idx, 16) == 16);
- assert(idx == 2);
- }
+int main(int, char**) {
+ assert(std::stol("0") == 0);
+ assert(std::stol("-0") == 0);
+ assert(std::stol("-10") == -10);
+ assert(std::stol(" 10") == 10);
+ {
+ std::size_t idx = 0;
+ assert(std::stol("10g", &idx, 16) == 16);
+ assert(idx == 2);
+ }
#ifndef TEST_HAS_NO_EXCEPTIONS
- {
- std::size_t idx = 0;
- try {
- (void)std::stol("", &idx);
- assert(false);
- } catch (const std::invalid_argument&) {
- assert(idx == 0);
- }
+ {
+ std::size_t idx = 0;
+ try {
+ (void)std::stol("", &idx);
+ assert(false);
+ } catch (const std::invalid_argument&) {
+ assert(idx == 0);
}
- {
- std::size_t idx = 0;
- try {
- (void)std::stol(" - 8", &idx);
- assert(false);
- } catch (const std::invalid_argument&) {
- assert(idx == 0);
- }
+ }
+ {
+ std::size_t idx = 0;
+ try {
+ (void)std::stol(" - 8", &idx);
+ assert(false);
+ } catch (const std::invalid_argument&) {
+ assert(idx == 0);
}
- {
- std::size_t idx = 0;
- try {
- (void)std::stol("a1", &idx);
- assert(false);
- } catch (const std::invalid_argument&) {
- assert(idx == 0);
- }
+ }
+ {
+ std::size_t idx = 0;
+ try {
+ (void)std::stol("a1", &idx);
+ assert(false);
+ } catch (const std::invalid_argument&) {
+ assert(idx == 0);
}
- {
- std::size_t idx = 0;
- try {
- // LWG#2009 and PR14919
- (void)std::stol("9999999999999999999999999999999999999999999999999", &idx);
- assert(false);
- } catch (const std::out_of_range&) {
- assert(idx == 0);
- }
+ }
+ {
+ std::size_t idx = 0;
+ try {
+ // LWG#2009 and PR14919
+ (void)std::stol("9999999999999999999999999999999999999999999999999", &idx);
+ assert(false);
+ } catch (const std::out_of_range&) {
+ assert(idx == 0);
}
+ }
#endif // TEST_HAS_NO_EXCEPTIONS
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- assert(std::stol(L"0") == 0);
- assert(std::stol(L"-0") == 0);
- assert(std::stol(L"-10") == -10);
- assert(std::stol(L" 10") == 10);
- {
- std::size_t idx = 0;
- assert(std::stol(L"10g", &idx, 16) == 16);
- assert(idx == 2);
- }
-#ifndef TEST_HAS_NO_EXCEPTIONS
- {
- std::size_t idx = 0;
- try {
- (void)std::stol(L"", &idx);
- assert(false);
- } catch (const std::invalid_argument&) {
- assert(idx == 0);
- }
+ assert(std::stol(L"0") == 0);
+ assert(std::stol(L"-0") == 0);
+ assert(std::stol(L"-10") == -10);
+ assert(std::stol(L" 10") == 10);
+ {
+ std::size_t idx = 0;
+ assert(std::stol(L"10g", &idx, 16) == 16);
+ assert(idx == 2);
+ }
+# ifndef TEST_HAS_NO_EXCEPTIONS
+ {
+ std::size_t idx = 0;
+ try {
+ (void)std::stol(L"", &idx);
+ assert(false);
+ } catch (const std::invalid_argument&) {
+ assert(idx == 0);
}
- {
- std::size_t idx = 0;
- try {
- (void)std::stol(L" - 8", &idx);
- assert(false);
- } catch (const std::invalid_argument&) {
- assert(idx == 0);
- }
+ }
+ {
+ std::size_t idx = 0;
+ try {
+ (void)std::stol(L" - 8", &idx);
+ assert(false);
+ } catch (const std::invalid_argument&) {
+ assert(idx == 0);
}
- {
- std::size_t idx = 0;
- try {
- (void)std::stol(L"a1", &idx);
- assert(false);
- } catch (const std::invalid_argument&) {
- assert(idx == 0);
- }
+ }
+ {
+ std::size_t idx = 0;
+ try {
+ (void)std::stol(L"a1", &idx);
+ assert(false);
+ } catch (const std::invalid_argument&) {
+ assert(idx == 0);
}
- {
- std::size_t idx = 0;
- try {
- // LWG#2009 and PR14919
- (void)std::stol(L"9999999999999999999999999999999999999999999999999", &idx);
- assert(false);
- } catch (const std::out_of_range&) {
- assert(idx == 0);
- }
+ }
+ {
+ std::size_t idx = 0;
+ try {
+ // LWG#2009 and PR14919
+ (void)std::stol(L"9999999999999999999999999999999999999999999999999", &idx);
+ assert(false);
+ } catch (const std::out_of_range&) {
+ assert(idx == 0);
}
-#endif // TEST_HAS_NO_EXCEPTIONS
-#endif // TEST_HAS_NO_WIDE_CHARACTERS
+ }
+# endif // TEST_HAS_NO_EXCEPTIONS
+#endif // TEST_HAS_NO_WIDE_CHARACTERS
return 0;
}
diff --git a/libcxx/test/std/strings/string.conversions/stold.pass.cpp b/libcxx/test/std/strings/string.conversions/stold.pass.cpp
index dc9d3c607ae376f..ef756982ee9a036 100644
--- a/libcxx/test/std/strings/string.conversions/stold.pass.cpp
+++ b/libcxx/test/std/strings/string.conversions/stold.pass.cpp
@@ -18,136 +18,135 @@
#include "test_macros.h"
-int main(int, char**)
-{
- assert(std::stold("0") == 0);
- assert(std::stold("-0") == 0);
- assert(std::stold("-10") == -10);
- assert(std::stold(" 10") == 10);
- {
- std::size_t idx = 0;
- assert(std::stold("10g", &idx) == 10);
- assert(idx == 2);
- }
- {
- std::size_t idx = 0;
- assert(std::stold("1.e60", &idx) == 1.e60L);
- assert(idx == 5);
- }
- {
- std::size_t idx = 0;
- assert(std::stold("INF", &idx) == INFINITY);
- assert(idx == 3);
- }
- {
- std::size_t idx = 0;
- assert(std::isnan(std::stold("NAN", &idx)));
- assert(idx == 3);
- }
+int main(int, char**) {
+ assert(std::stold("0") == 0);
+ assert(std::stold("-0") == 0);
+ assert(std::stold("-10") == -10);
+ assert(std::stold(" 10") == 10);
+ {
+ std::size_t idx = 0;
+ assert(std::stold("10g", &idx) == 10);
+ assert(idx == 2);
+ }
+ {
+ std::size_t idx = 0;
+ assert(std::stold("1.e60", &idx) == 1.e60L);
+ assert(idx == 5);
+ }
+ {
+ std::size_t idx = 0;
+ assert(std::stold("INF", &idx) == INFINITY);
+ assert(idx == 3);
+ }
+ {
+ std::size_t idx = 0;
+ assert(std::isnan(std::stold("NAN", &idx)));
+ assert(idx == 3);
+ }
#ifndef TEST_HAS_NO_EXCEPTIONS
- {
- std::size_t idx = 0;
- try {
- (void)std::stold("", &idx);
- assert(false);
- } catch (const std::invalid_argument&) {
- assert(idx == 0);
- }
- }
- {
- std::size_t idx = 0;
- try {
- (void)std::stold(" - 8", &idx);
- assert(false);
- } catch (const std::invalid_argument&) {
- assert(idx == 0);
- }
- }
- {
- std::size_t idx = 0;
- try {
- (void)std::stold("a1", &idx);
- assert(false);
- } catch (const std::invalid_argument&) {
- assert(idx == 0);
- }
- }
- {
- std::size_t idx = 0;
- try {
- assert(std::stold("1.e6000", &idx) == INFINITY);
- assert(false);
- } catch (const std::out_of_range&) {
- assert(idx == 0);
- }
- }
+ {
+ std::size_t idx = 0;
+ try {
+ (void)std::stold("", &idx);
+ assert(false);
+ } catch (const std::invalid_argument&) {
+ assert(idx == 0);
+ }
+ }
+ {
+ std::size_t idx = 0;
+ try {
+ (void)std::stold(" - 8", &idx);
+ assert(false);
+ } catch (const std::invalid_argument&) {
+ assert(idx == 0);
+ }
+ }
+ {
+ std::size_t idx = 0;
+ try {
+ (void)std::stold("a1", &idx);
+ assert(false);
+ } catch (const std::invalid_argument&) {
+ assert(idx == 0);
+ }
+ }
+ {
+ std::size_t idx = 0;
+ try {
+ assert(std::stold("1.e6000", &idx) == INFINITY);
+ assert(false);
+ } catch (const std::out_of_range&) {
+ assert(idx == 0);
+ }
+ }
#endif // TEST_HAS_NO_EXCEPTIONS
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- assert(std::stold(L"0") == 0);
- assert(std::stold(L"-0") == 0);
- assert(std::stold(L"-10.5") == -10.5);
- assert(std::stold(L" 10") == 10);
- {
- std::size_t idx = 0;
- assert(std::stold(L"10g", &idx) == 10);
- assert(idx == 2);
- }
- {
- std::size_t idx = 0;
- assert(std::stold(L"1.e60", &idx) == 1.e60L);
- assert(idx == 5);
- }
- {
- std::size_t idx = 0;
- assert(std::stold(L"INF", &idx) == INFINITY);
- assert(idx == 3);
- }
- {
- std::size_t idx = 0;
- assert(std::isnan(std::stold(L"NAN", &idx)));
- assert(idx == 3);
- }
-#ifndef TEST_HAS_NO_EXCEPTIONS
- {
- std::size_t idx = 0;
- try {
- (void)std::stold(L"", &idx);
- assert(false);
- } catch (const std::invalid_argument&) {
- assert(idx == 0);
- }
- }
- {
- std::size_t idx = 0;
- try {
- (void)std::stold(L" - 8", &idx);
- assert(false);
- } catch (const std::invalid_argument&) {
- assert(idx == 0);
- }
- }
- {
- std::size_t idx = 0;
- try {
- (void)std::stold(L"a1", &idx);
- assert(false);
- } catch (const std::invalid_argument&) {
- assert(idx == 0);
- }
- }
- {
- std::size_t idx = 0;
- try {
- assert(std::stold(L"1.e6000", &idx) == INFINITY);
- assert(false);
- } catch (const std::out_of_range&) {
- assert(idx == 0);
- }
- }
-#endif // TEST_HAS_NO_EXCEPTIONS
-#endif // TEST_HAS_NO_WIDE_CHARACTERS
+ assert(std::stold(L"0") == 0);
+ assert(std::stold(L"-0") == 0);
+ assert(std::stold(L"-10.5") == -10.5);
+ assert(std::stold(L" 10") == 10);
+ {
+ std::size_t idx = 0;
+ assert(std::stold(L"10g", &idx) == 10);
+ assert(idx == 2);
+ }
+ {
+ std::size_t idx = 0;
+ assert(std::stold(L"1.e60", &idx) == 1.e60L);
+ assert(idx == 5);
+ }
+ {
+ std::size_t idx = 0;
+ assert(std::stold(L"INF", &idx) == INFINITY);
+ assert(idx == 3);
+ }
+ {
+ std::size_t idx = 0;
+ assert(std::isnan(std::stold(L"NAN", &idx)));
+ assert(idx == 3);
+ }
+# ifndef TEST_HAS_NO_EXCEPTIONS
+ {
+ std::size_t idx = 0;
+ try {
+ (void)std::stold(L"", &idx);
+ assert(false);
+ } catch (const std::invalid_argument&) {
+ assert(idx == 0);
+ }
+ }
+ {
+ std::size_t idx = 0;
+ try {
+ (void)std::stold(L" - 8", &idx);
+ assert(false);
+ } catch (const std::invalid_argument&) {
+ assert(idx == 0);
+ }
+ }
+ {
+ std::size_t idx = 0;
+ try {
+ (void)std::stold(L"a1", &idx);
+ assert(false);
+ } catch (const std::invalid_argument&) {
+ assert(idx == 0);
+ }
+ }
+ {
+ std::size_t idx = 0;
+ try {
+ assert(std::stold(L"1.e6000", &idx) == INFINITY);
+ assert(false);
+ } catch (const std::out_of_range&) {
+ assert(idx == 0);
+ }
+ }
+# endif // TEST_HAS_NO_EXCEPTIONS
+#endif // TEST_HAS_NO_WIDE_CHARACTERS
return 0;
}
diff --git a/libcxx/test/std/strings/string.conversions/stoll.pass.cpp b/libcxx/test/std/strings/string.conversions/stoll.pass.cpp
index fc6bd136cf4f3ad..12024a70aee32ae 100644
--- a/libcxx/test/std/strings/string.conversions/stoll.pass.cpp
+++ b/libcxx/test/std/strings/string.conversions/stoll.pass.cpp
@@ -17,107 +17,106 @@
#include "test_macros.h"
-int main(int, char**)
-{
- assert(std::stoll("0") == 0);
- assert(std::stoll("-0") == 0);
- assert(std::stoll("-10") == -10);
- assert(std::stoll(" 10") == 10);
- {
- std::size_t idx = 0;
- assert(std::stoll("10g", &idx, 16) == 16);
- assert(idx == 2);
- }
+int main(int, char**) {
+ assert(std::stoll("0") == 0);
+ assert(std::stoll("-0") == 0);
+ assert(std::stoll("-10") == -10);
+ assert(std::stoll(" 10") == 10);
+ {
+ std::size_t idx = 0;
+ assert(std::stoll("10g", &idx, 16) == 16);
+ assert(idx == 2);
+ }
#ifndef TEST_HAS_NO_EXCEPTIONS
- {
- std::size_t idx = 0;
- try {
- (void)std::stoll("", &idx);
- assert(false);
- } catch (const std::invalid_argument&) {
- assert(idx == 0);
- }
+ {
+ std::size_t idx = 0;
+ try {
+ (void)std::stoll("", &idx);
+ assert(false);
+ } catch (const std::invalid_argument&) {
+ assert(idx == 0);
}
- {
- std::size_t idx = 0;
- try {
- (void)std::stoll(" - 8", &idx);
- assert(false);
- } catch (const std::invalid_argument&) {
- assert(idx == 0);
- }
+ }
+ {
+ std::size_t idx = 0;
+ try {
+ (void)std::stoll(" - 8", &idx);
+ assert(false);
+ } catch (const std::invalid_argument&) {
+ assert(idx == 0);
}
- {
- std::size_t idx = 0;
- try {
- (void)std::stoll("a1", &idx);
- assert(false);
- } catch (const std::invalid_argument&) {
- assert(idx == 0);
- }
+ }
+ {
+ std::size_t idx = 0;
+ try {
+ (void)std::stoll("a1", &idx);
+ assert(false);
+ } catch (const std::invalid_argument&) {
+ assert(idx == 0);
}
- {
- std::size_t idx = 0;
- try {
- // LWG#2009 and PR14919
- (void)std::stoll("99999999999999999999999999", &idx);
- assert(false);
- } catch (const std::out_of_range&) {
- assert(idx == 0);
- }
+ }
+ {
+ std::size_t idx = 0;
+ try {
+ // LWG#2009 and PR14919
+ (void)std::stoll("99999999999999999999999999", &idx);
+ assert(false);
+ } catch (const std::out_of_range&) {
+ assert(idx == 0);
}
+ }
#endif // TEST_HAS_NO_EXCEPTIONS
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- assert(std::stoll(L"0") == 0);
- assert(std::stoll(L"-0") == 0);
- assert(std::stoll(L"-10") == -10);
- assert(std::stoll(L" 10") == 10);
- {
- std::size_t idx = 0;
- assert(std::stoll(L"10g", &idx, 16) == 16);
- assert(idx == 2);
- }
-#ifndef TEST_HAS_NO_EXCEPTIONS
- {
- std::size_t idx = 0;
- try {
- (void)std::stoll(L"", &idx);
- assert(false);
- } catch (const std::invalid_argument&) {
- assert(idx == 0);
- }
+ assert(std::stoll(L"0") == 0);
+ assert(std::stoll(L"-0") == 0);
+ assert(std::stoll(L"-10") == -10);
+ assert(std::stoll(L" 10") == 10);
+ {
+ std::size_t idx = 0;
+ assert(std::stoll(L"10g", &idx, 16) == 16);
+ assert(idx == 2);
+ }
+# ifndef TEST_HAS_NO_EXCEPTIONS
+ {
+ std::size_t idx = 0;
+ try {
+ (void)std::stoll(L"", &idx);
+ assert(false);
+ } catch (const std::invalid_argument&) {
+ assert(idx == 0);
}
- {
- std::size_t idx = 0;
- try {
- (void)std::stoll(L" - 8", &idx);
- assert(false);
- } catch (const std::invalid_argument&) {
- assert(idx == 0);
- }
+ }
+ {
+ std::size_t idx = 0;
+ try {
+ (void)std::stoll(L" - 8", &idx);
+ assert(false);
+ } catch (const std::invalid_argument&) {
+ assert(idx == 0);
}
- {
- std::size_t idx = 0;
- try {
- (void)std::stoll(L"a1", &idx);
- assert(false);
- } catch (const std::invalid_argument&) {
- assert(idx == 0);
- }
+ }
+ {
+ std::size_t idx = 0;
+ try {
+ (void)std::stoll(L"a1", &idx);
+ assert(false);
+ } catch (const std::invalid_argument&) {
+ assert(idx == 0);
}
- {
- std::size_t idx = 0;
- try {
- // LWG#2009 and PR14919
- (void)std::stoll(L"99999999999999999999999999", &idx);
- assert(false);
- } catch (const std::out_of_range&) {
- assert(idx == 0);
- }
+ }
+ {
+ std::size_t idx = 0;
+ try {
+ // LWG#2009 and PR14919
+ (void)std::stoll(L"99999999999999999999999999", &idx);
+ assert(false);
+ } catch (const std::out_of_range&) {
+ assert(idx == 0);
}
-#endif // TEST_HAS_NO_EXCEPTIONS
-#endif // TEST_HAS_NO_WIDE_CHARACTERS
+ }
+# endif // TEST_HAS_NO_EXCEPTIONS
+#endif // TEST_HAS_NO_WIDE_CHARACTERS
return 0;
}
diff --git a/libcxx/test/std/strings/string.conversions/stoul.pass.cpp b/libcxx/test/std/strings/string.conversions/stoul.pass.cpp
index a8d23f92959aaed..edc4a795baa2181 100644
--- a/libcxx/test/std/strings/string.conversions/stoul.pass.cpp
+++ b/libcxx/test/std/strings/string.conversions/stoul.pass.cpp
@@ -17,105 +17,104 @@
#include "test_macros.h"
-int main(int, char**)
-{
- assert(std::stoul("0") == 0);
- assert(std::stoul("-0") == 0);
- assert(std::stoul(" 10") == 10);
- {
- std::size_t idx = 0;
- assert(std::stoul("10g", &idx, 16) == 16);
- assert(idx == 2);
- }
+int main(int, char**) {
+ assert(std::stoul("0") == 0);
+ assert(std::stoul("-0") == 0);
+ assert(std::stoul(" 10") == 10);
+ {
+ std::size_t idx = 0;
+ assert(std::stoul("10g", &idx, 16) == 16);
+ assert(idx == 2);
+ }
#ifndef TEST_HAS_NO_EXCEPTIONS
- {
- std::size_t idx = 0;
- try {
- (void)std::stoul("", &idx);
- assert(false);
- } catch (const std::invalid_argument&) {
- assert(idx == 0);
- }
+ {
+ std::size_t idx = 0;
+ try {
+ (void)std::stoul("", &idx);
+ assert(false);
+ } catch (const std::invalid_argument&) {
+ assert(idx == 0);
}
- {
- std::size_t idx = 0;
- try {
- (void)std::stoul(" - 8", &idx);
- assert(false);
- } catch (const std::invalid_argument&) {
- assert(idx == 0);
- }
+ }
+ {
+ std::size_t idx = 0;
+ try {
+ (void)std::stoul(" - 8", &idx);
+ assert(false);
+ } catch (const std::invalid_argument&) {
+ assert(idx == 0);
}
- {
- std::size_t idx = 0;
- try {
- (void)std::stoul("a1", &idx);
- assert(false);
- } catch (const std::invalid_argument&) {
- assert(idx == 0);
- }
+ }
+ {
+ std::size_t idx = 0;
+ try {
+ (void)std::stoul("a1", &idx);
+ assert(false);
+ } catch (const std::invalid_argument&) {
+ assert(idx == 0);
}
- {
- std::size_t idx = 0;
- try {
- // LWG#2009 and PR14919
- (void)std::stoul("9999999999999999999999999999999999999999999999999", &idx);
- assert(false);
- } catch (const std::out_of_range&) {
- assert(idx == 0);
- }
+ }
+ {
+ std::size_t idx = 0;
+ try {
+ // LWG#2009 and PR14919
+ (void)std::stoul("9999999999999999999999999999999999999999999999999", &idx);
+ assert(false);
+ } catch (const std::out_of_range&) {
+ assert(idx == 0);
}
+ }
#endif // TEST_HAS_NO_EXCEPTIONS
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- assert(std::stoul(L"0") == 0);
- assert(std::stoul(L"-0") == 0);
- assert(std::stoul(L" 10") == 10);
- {
- std::size_t idx = 0;
- assert(std::stoul(L"10g", &idx, 16) == 16);
- assert(idx == 2);
- }
-#ifndef TEST_HAS_NO_EXCEPTIONS
- {
- std::size_t idx = 0;
- try {
- (void)std::stoul(L"", &idx);
- assert(false);
- } catch (const std::invalid_argument&) {
- assert(idx == 0);
- }
+ assert(std::stoul(L"0") == 0);
+ assert(std::stoul(L"-0") == 0);
+ assert(std::stoul(L" 10") == 10);
+ {
+ std::size_t idx = 0;
+ assert(std::stoul(L"10g", &idx, 16) == 16);
+ assert(idx == 2);
+ }
+# ifndef TEST_HAS_NO_EXCEPTIONS
+ {
+ std::size_t idx = 0;
+ try {
+ (void)std::stoul(L"", &idx);
+ assert(false);
+ } catch (const std::invalid_argument&) {
+ assert(idx == 0);
}
- {
- std::size_t idx = 0;
- try {
- (void)std::stoul(L" - 8", &idx);
- assert(false);
- } catch (const std::invalid_argument&) {
- assert(idx == 0);
- }
+ }
+ {
+ std::size_t idx = 0;
+ try {
+ (void)std::stoul(L" - 8", &idx);
+ assert(false);
+ } catch (const std::invalid_argument&) {
+ assert(idx == 0);
}
- {
- std::size_t idx = 0;
- try {
- (void)std::stoul(L"a1", &idx);
- assert(false);
- } catch (const std::invalid_argument&) {
- assert(idx == 0);
- }
+ }
+ {
+ std::size_t idx = 0;
+ try {
+ (void)std::stoul(L"a1", &idx);
+ assert(false);
+ } catch (const std::invalid_argument&) {
+ assert(idx == 0);
}
- {
- std::size_t idx = 0;
- try {
- // LWG#2009 and PR14919
- (void)std::stoul(L"9999999999999999999999999999999999999999999999999", &idx);
- assert(false);
- } catch (const std::out_of_range&) {
- assert(idx == 0);
- }
+ }
+ {
+ std::size_t idx = 0;
+ try {
+ // LWG#2009 and PR14919
+ (void)std::stoul(L"9999999999999999999999999999999999999999999999999", &idx);
+ assert(false);
+ } catch (const std::out_of_range&) {
+ assert(idx == 0);
}
-#endif // TEST_HAS_NO_EXCEPTIONS
-#endif // TEST_HAS_NO_WIDE_CHARACTERS
+ }
+# endif // TEST_HAS_NO_EXCEPTIONS
+#endif // TEST_HAS_NO_WIDE_CHARACTERS
return 0;
}
diff --git a/libcxx/test/std/strings/string.conversions/stoull.pass.cpp b/libcxx/test/std/strings/string.conversions/stoull.pass.cpp
index 2757cea130872e5..0a91f332c83d44a 100644
--- a/libcxx/test/std/strings/string.conversions/stoull.pass.cpp
+++ b/libcxx/test/std/strings/string.conversions/stoull.pass.cpp
@@ -17,105 +17,104 @@
#include "test_macros.h"
-int main(int, char**)
-{
- assert(std::stoull("0") == 0);
- assert(std::stoull("-0") == 0);
- assert(std::stoull(" 10") == 10);
- {
- std::size_t idx = 0;
- assert(std::stoull("10g", &idx, 16) == 16);
- assert(idx == 2);
- }
+int main(int, char**) {
+ assert(std::stoull("0") == 0);
+ assert(std::stoull("-0") == 0);
+ assert(std::stoull(" 10") == 10);
+ {
+ std::size_t idx = 0;
+ assert(std::stoull("10g", &idx, 16) == 16);
+ assert(idx == 2);
+ }
#ifndef TEST_HAS_NO_EXCEPTIONS
- {
- std::size_t idx = 0;
- try {
- (void)std::stoull("", &idx);
- assert(false);
- } catch (const std::invalid_argument&) {
- assert(idx == 0);
- }
+ {
+ std::size_t idx = 0;
+ try {
+ (void)std::stoull("", &idx);
+ assert(false);
+ } catch (const std::invalid_argument&) {
+ assert(idx == 0);
}
- {
- std::size_t idx = 0;
- try {
- (void)std::stoull(" - 8", &idx);
- assert(false);
- } catch (const std::invalid_argument&) {
- assert(idx == 0);
- }
+ }
+ {
+ std::size_t idx = 0;
+ try {
+ (void)std::stoull(" - 8", &idx);
+ assert(false);
+ } catch (const std::invalid_argument&) {
+ assert(idx == 0);
}
- {
- std::size_t idx = 0;
- try {
- (void)std::stoull("a1", &idx);
- assert(false);
- } catch (const std::invalid_argument&) {
- assert(idx == 0);
- }
+ }
+ {
+ std::size_t idx = 0;
+ try {
+ (void)std::stoull("a1", &idx);
+ assert(false);
+ } catch (const std::invalid_argument&) {
+ assert(idx == 0);
}
- {
- std::size_t idx = 0;
- try {
- // LWG#2009 and PR14919
- (void)std::stoull("9999999999999999999999999999999999999999999999999", &idx);
- assert(false);
- } catch (const std::out_of_range&) {
- assert(idx == 0);
- }
+ }
+ {
+ std::size_t idx = 0;
+ try {
+ // LWG#2009 and PR14919
+ (void)std::stoull("9999999999999999999999999999999999999999999999999", &idx);
+ assert(false);
+ } catch (const std::out_of_range&) {
+ assert(idx == 0);
}
+ }
#endif // TEST_HAS_NO_EXCEPTIONS
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- assert(std::stoull(L"0") == 0);
- assert(std::stoull(L"-0") == 0);
- assert(std::stoull(L" 10") == 10);
- {
- std::size_t idx = 0;
- assert(std::stoull(L"10g", &idx, 16) == 16);
- assert(idx == 2);
- }
-#ifndef TEST_HAS_NO_EXCEPTIONS
- {
- std::size_t idx = 0;
- try {
- (void)std::stoull(L"", &idx);
- assert(false);
- } catch (const std::invalid_argument&) {
- assert(idx == 0);
- }
+ assert(std::stoull(L"0") == 0);
+ assert(std::stoull(L"-0") == 0);
+ assert(std::stoull(L" 10") == 10);
+ {
+ std::size_t idx = 0;
+ assert(std::stoull(L"10g", &idx, 16) == 16);
+ assert(idx == 2);
+ }
+# ifndef TEST_HAS_NO_EXCEPTIONS
+ {
+ std::size_t idx = 0;
+ try {
+ (void)std::stoull(L"", &idx);
+ assert(false);
+ } catch (const std::invalid_argument&) {
+ assert(idx == 0);
}
- {
- std::size_t idx = 0;
- try {
- (void)std::stoull(L" - 8", &idx);
- assert(false);
- } catch (const std::invalid_argument&) {
- assert(idx == 0);
- }
+ }
+ {
+ std::size_t idx = 0;
+ try {
+ (void)std::stoull(L" - 8", &idx);
+ assert(false);
+ } catch (const std::invalid_argument&) {
+ assert(idx == 0);
}
- {
- std::size_t idx = 0;
- try {
- (void)std::stoull(L"a1", &idx);
- assert(false);
- } catch (const std::invalid_argument&) {
- assert(idx == 0);
- }
+ }
+ {
+ std::size_t idx = 0;
+ try {
+ (void)std::stoull(L"a1", &idx);
+ assert(false);
+ } catch (const std::invalid_argument&) {
+ assert(idx == 0);
}
- {
- std::size_t idx = 0;
- try {
- // LWG#2009 and PR14919
- (void)std::stoull(L"9999999999999999999999999999999999999999999999999", &idx);
- assert(false);
- } catch (const std::out_of_range&) {
- assert(idx == 0);
- }
+ }
+ {
+ std::size_t idx = 0;
+ try {
+ // LWG#2009 and PR14919
+ (void)std::stoull(L"9999999999999999999999999999999999999999999999999", &idx);
+ assert(false);
+ } catch (const std::out_of_range&) {
+ assert(idx == 0);
}
-#endif // TEST_HAS_NO_EXCEPTIONS
-#endif // TEST_HAS_NO_WIDE_CHARACTERS
+ }
+# endif // TEST_HAS_NO_EXCEPTIONS
+#endif // TEST_HAS_NO_WIDE_CHARACTERS
return 0;
}
diff --git a/libcxx/test/std/strings/string.conversions/to_string.pass.cpp b/libcxx/test/std/strings/string.conversions/to_string.pass.cpp
index 3de0232e796ed83..4731a072e89108f 100644
--- a/libcxx/test/std/strings/string.conversions/to_string.pass.cpp
+++ b/libcxx/test/std/strings/string.conversions/to_string.pass.cpp
@@ -26,99 +26,92 @@
#include "test_macros.h"
template <class T>
-void
-test_signed()
-{
- {
- std::string s = std::to_string(T(0));
- assert(s.size() == 1);
- assert(s[s.size()] == 0);
- assert(s == "0");
- }
- {
- std::string s = std::to_string(T(12345));
- assert(s.size() == 5);
- assert(s[s.size()] == 0);
- assert(s == "12345");
- }
- {
- std::string s = std::to_string(T(-12345));
- assert(s.size() == 6);
- assert(s[s.size()] == 0);
- assert(s == "-12345");
- }
- {
- std::string s = std::to_string(std::numeric_limits<T>::max());
- assert(s.size() == std::numeric_limits<T>::digits10 + 1);
- T t = parse_integer<T>(s);
- assert(t == std::numeric_limits<T>::max());
- }
- {
- std::string s = std::to_string(std::numeric_limits<T>::min());
- T t = parse_integer<T>(s);
- assert(t == std::numeric_limits<T>::min());
- }
+void test_signed() {
+ {
+ std::string s = std::to_string(T(0));
+ assert(s.size() == 1);
+ assert(s[s.size()] == 0);
+ assert(s == "0");
+ }
+ {
+ std::string s = std::to_string(T(12345));
+ assert(s.size() == 5);
+ assert(s[s.size()] == 0);
+ assert(s == "12345");
+ }
+ {
+ std::string s = std::to_string(T(-12345));
+ assert(s.size() == 6);
+ assert(s[s.size()] == 0);
+ assert(s == "-12345");
+ }
+ {
+ std::string s = std::to_string(std::numeric_limits<T>::max());
+ assert(s.size() == std::numeric_limits<T>::digits10 + 1);
+ T t = parse_integer<T>(s);
+ assert(t == std::numeric_limits<T>::max());
+ }
+ {
+ std::string s = std::to_string(std::numeric_limits<T>::min());
+ T t = parse_integer<T>(s);
+ assert(t == std::numeric_limits<T>::min());
+ }
}
template <class T>
-void
-test_unsigned()
-{
- {
- std::string s = std::to_string(T(0));
- assert(s.size() == 1);
- assert(s[s.size()] == 0);
- assert(s == "0");
- }
- {
- std::string s = std::to_string(T(12345));
- assert(s.size() == 5);
- assert(s[s.size()] == 0);
- assert(s == "12345");
- }
- {
- std::string s = std::to_string(std::numeric_limits<T>::max());
- assert(s.size() == std::numeric_limits<T>::digits10 + 1);
- T t = parse_integer<T>(s);
- assert(t == std::numeric_limits<T>::max());
- }
+void test_unsigned() {
+ {
+ std::string s = std::to_string(T(0));
+ assert(s.size() == 1);
+ assert(s[s.size()] == 0);
+ assert(s == "0");
+ }
+ {
+ std::string s = std::to_string(T(12345));
+ assert(s.size() == 5);
+ assert(s[s.size()] == 0);
+ assert(s == "12345");
+ }
+ {
+ std::string s = std::to_string(std::numeric_limits<T>::max());
+ assert(s.size() == std::numeric_limits<T>::digits10 + 1);
+ T t = parse_integer<T>(s);
+ assert(t == std::numeric_limits<T>::max());
+ }
}
template <class T>
-void
-test_float()
-{
- {
- std::string s = std::to_string(T(0));
- assert(s.size() == 8);
- assert(s[s.size()] == 0);
- assert(s == "0.000000");
- }
- {
- std::string s = std::to_string(T(12345));
- assert(s.size() == 12);
- assert(s[s.size()] == 0);
- assert(s == "12345.000000");
- }
- {
- std::string s = std::to_string(T(-12345));
- assert(s.size() == 13);
- assert(s[s.size()] == 0);
- assert(s == "-12345.000000");
- }
+void test_float() {
+ {
+ std::string s = std::to_string(T(0));
+ assert(s.size() == 8);
+ assert(s[s.size()] == 0);
+ assert(s == "0.000000");
+ }
+ {
+ std::string s = std::to_string(T(12345));
+ assert(s.size() == 12);
+ assert(s[s.size()] == 0);
+ assert(s == "12345.000000");
+ }
+ {
+ std::string s = std::to_string(T(-12345));
+ assert(s.size() == 13);
+ assert(s[s.size()] == 0);
+ assert(s == "-12345.000000");
+ }
}
-int main(int, char**)
-{
- test_signed<int>();
- test_signed<long>();
- test_signed<long long>();
- test_unsigned<unsigned>();
- test_unsigned<unsigned long>();
- test_unsigned<unsigned long long>();
- test_float<float>();
- test_float<double>();
- test_float<long double>();
+int main(int, char**) {
+ test_signed<int>();
+ test_signed<long>();
+ test_signed<long long>();
+ test_unsigned<unsigned>();
+ test_unsigned<unsigned long>();
+ test_unsigned<unsigned long long>();
+ test_float<float>();
+ test_float<double>();
+ test_float<long double>();
return 0;
}
diff --git a/libcxx/test/std/strings/string.conversions/to_wstring.pass.cpp b/libcxx/test/std/strings/string.conversions/to_wstring.pass.cpp
index 530982defd4cd18..fff5ede848b57a1 100644
--- a/libcxx/test/std/strings/string.conversions/to_wstring.pass.cpp
+++ b/libcxx/test/std/strings/string.conversions/to_wstring.pass.cpp
@@ -28,99 +28,92 @@
#include "test_macros.h"
template <class T>
-void
-test_signed()
-{
- {
- std::wstring s = std::to_wstring(T(0));
- assert(s.size() == 1);
- assert(s[s.size()] == 0);
- assert(s == L"0");
- }
- {
- std::wstring s = std::to_wstring(T(12345));
- assert(s.size() == 5);
- assert(s[s.size()] == 0);
- assert(s == L"12345");
- }
- {
- std::wstring s = std::to_wstring(T(-12345));
- assert(s.size() == 6);
- assert(s[s.size()] == 0);
- assert(s == L"-12345");
- }
- {
- std::wstring s = std::to_wstring(std::numeric_limits<T>::max());
- assert(s.size() == std::numeric_limits<T>::digits10 + 1);
- T t = parse_integer<T>(s);
- assert(t == std::numeric_limits<T>::max());
- }
- {
- std::wstring s = std::to_wstring(std::numeric_limits<T>::min());
- T t = parse_integer<T>(s);
- assert(t == std::numeric_limits<T>::min());
- }
+void test_signed() {
+ {
+ std::wstring s = std::to_wstring(T(0));
+ assert(s.size() == 1);
+ assert(s[s.size()] == 0);
+ assert(s == L"0");
+ }
+ {
+ std::wstring s = std::to_wstring(T(12345));
+ assert(s.size() == 5);
+ assert(s[s.size()] == 0);
+ assert(s == L"12345");
+ }
+ {
+ std::wstring s = std::to_wstring(T(-12345));
+ assert(s.size() == 6);
+ assert(s[s.size()] == 0);
+ assert(s == L"-12345");
+ }
+ {
+ std::wstring s = std::to_wstring(std::numeric_limits<T>::max());
+ assert(s.size() == std::numeric_limits<T>::digits10 + 1);
+ T t = parse_integer<T>(s);
+ assert(t == std::numeric_limits<T>::max());
+ }
+ {
+ std::wstring s = std::to_wstring(std::numeric_limits<T>::min());
+ T t = parse_integer<T>(s);
+ assert(t == std::numeric_limits<T>::min());
+ }
}
template <class T>
-void
-test_unsigned()
-{
- {
- std::wstring s = std::to_wstring(T(0));
- assert(s.size() == 1);
- assert(s[s.size()] == 0);
- assert(s == L"0");
- }
- {
- std::wstring s = std::to_wstring(T(12345));
- assert(s.size() == 5);
- assert(s[s.size()] == 0);
- assert(s == L"12345");
- }
- {
- std::wstring s = std::to_wstring(std::numeric_limits<T>::max());
- assert(s.size() == std::numeric_limits<T>::digits10 + 1);
- T t = parse_integer<T>(s);
- assert(t == std::numeric_limits<T>::max());
- }
+void test_unsigned() {
+ {
+ std::wstring s = std::to_wstring(T(0));
+ assert(s.size() == 1);
+ assert(s[s.size()] == 0);
+ assert(s == L"0");
+ }
+ {
+ std::wstring s = std::to_wstring(T(12345));
+ assert(s.size() == 5);
+ assert(s[s.size()] == 0);
+ assert(s == L"12345");
+ }
+ {
+ std::wstring s = std::to_wstring(std::numeric_limits<T>::max());
+ assert(s.size() == std::numeric_limits<T>::digits10 + 1);
+ T t = parse_integer<T>(s);
+ assert(t == std::numeric_limits<T>::max());
+ }
}
template <class T>
-void
-test_float()
-{
- {
- std::wstring s = std::to_wstring(T(0));
- assert(s.size() == 8);
- assert(s[s.size()] == 0);
- assert(s == L"0.000000");
- }
- {
- std::wstring s = std::to_wstring(T(12345));
- assert(s.size() == 12);
- assert(s[s.size()] == 0);
- assert(s == L"12345.000000");
- }
- {
- std::wstring s = std::to_wstring(T(-12345));
- assert(s.size() == 13);
- assert(s[s.size()] == 0);
- assert(s == L"-12345.000000");
- }
+void test_float() {
+ {
+ std::wstring s = std::to_wstring(T(0));
+ assert(s.size() == 8);
+ assert(s[s.size()] == 0);
+ assert(s == L"0.000000");
+ }
+ {
+ std::wstring s = std::to_wstring(T(12345));
+ assert(s.size() == 12);
+ assert(s[s.size()] == 0);
+ assert(s == L"12345.000000");
+ }
+ {
+ std::wstring s = std::to_wstring(T(-12345));
+ assert(s.size() == 13);
+ assert(s[s.size()] == 0);
+ assert(s == L"-12345.000000");
+ }
}
-int main(int, char**)
-{
- test_signed<int>();
- test_signed<long>();
- test_signed<long long>();
- test_unsigned<unsigned>();
- test_unsigned<unsigned long>();
- test_unsigned<unsigned long long>();
- test_float<float>();
- test_float<double>();
- test_float<long double>();
+int main(int, char**) {
+ test_signed<int>();
+ test_signed<long>();
+ test_signed<long long>();
+ test_unsigned<unsigned>();
+ test_unsigned<unsigned long>();
+ test_unsigned<unsigned long long>();
+ test_float<float>();
+ test_float<double>();
+ test_float<long double>();
return 0;
}
diff --git a/libcxx/test/std/strings/string.view/char.bad.verify.cpp b/libcxx/test/std/strings/string.view/char.bad.verify.cpp
index b1794bc3037496a..c9002102155a476 100644
--- a/libcxx/test/std/strings/string.view/char.bad.verify.cpp
+++ b/libcxx/test/std/strings/string.view/char.bad.verify.cpp
@@ -15,42 +15,42 @@
#include "../basic.string/test_traits.h"
struct NotTrivial {
- NotTrivial() : value(3) {}
- int value;
+ NotTrivial() : value(3) {}
+ int value;
};
struct NotStandardLayout {
public:
- NotStandardLayout() : one(1), two(2) {}
- int sum() const { return one + two; } // silences "unused field 'two' warning"
- int one;
+ NotStandardLayout() : one(1), two(2) {}
+ int sum() const { return one + two; } // silences "unused field 'two' warning"
+ int one;
+
private:
- int two;
+ int two;
};
-int main(int, char**)
-{
- {
-// array
+int main(int, char**) {
+ {
+ // array
typedef char C[3];
static_assert(std::is_array<C>::value, "");
std::basic_string_view<C, test_traits<C> > sv;
-// expected-error-re at string_view:* {{{{(static_assert|static assertion)}} failed{{.*}}Character type of basic_string_view must not be an array}}
- }
+ // expected-error-re at string_view:* {{{{(static_assert|static assertion)}} failed{{.*}}Character type of basic_string_view must not be an array}}
+ }
- {
-// not trivial
+ {
+ // not trivial
static_assert(!std::is_trivial<NotTrivial>::value, "");
std::basic_string_view<NotTrivial, test_traits<NotTrivial> > sv;
-// expected-error-re at string_view:* {{{{(static_assert|static assertion)}} failed{{.*}}Character type of basic_string_view must be trivial}}
- }
+ // expected-error-re at string_view:* {{{{(static_assert|static assertion)}} failed{{.*}}Character type of basic_string_view must be trivial}}
+ }
- {
-// not standard layout
+ {
+ // not standard layout
static_assert(!std::is_standard_layout<NotStandardLayout>::value, "");
std::basic_string_view<NotStandardLayout, test_traits<NotStandardLayout> > sv;
-// expected-error-re at string_view:* {{{{(static_assert|static assertion)}} failed{{.*}}Character type of basic_string_view must be standard-layout}}
- }
+ // expected-error-re at string_view:* {{{{(static_assert|static assertion)}} failed{{.*}}Character type of basic_string_view must be standard-layout}}
+ }
return 0;
}
diff --git a/libcxx/test/std/strings/string.view/range_concept_conformance.compile.pass.cpp b/libcxx/test/std/strings/string.view/range_concept_conformance.compile.pass.cpp
index a845c5eff397635..73a4dd023a88e30 100644
--- a/libcxx/test/std/strings/string.view/range_concept_conformance.compile.pass.cpp
+++ b/libcxx/test/std/strings/string.view/range_concept_conformance.compile.pass.cpp
@@ -15,8 +15,6 @@
#include <concepts>
#include <ranges>
-
-
static_assert(std::same_as<std::ranges::iterator_t<std::string_view>, std::string_view::iterator>);
static_assert(std::ranges::common_range<std::string_view>);
static_assert(std::ranges::random_access_range<std::string_view>);
diff --git a/libcxx/test/std/strings/string.view/string.view.access/at.pass.cpp b/libcxx/test/std/strings/string.view/string.view.access/at.pass.cpp
index c01017493f3e6c5..95d37932f4060c3 100644
--- a/libcxx/test/std/strings/string.view/string.view.access/at.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.access/at.pass.cpp
@@ -17,44 +17,48 @@
#include "test_macros.h"
template <typename CharT>
-void test ( const CharT *s, std::size_t len ) {
- std::basic_string_view<CharT> sv ( s, len );
- assert ( sv.length() == len );
- for ( std::size_t i = 0; i < len; ++i ) {
- assert ( sv.at(i) == s[i] );
- assert ( &sv.at(i) == s + i );
- }
+void test(const CharT* s, std::size_t len) {
+ std::basic_string_view<CharT> sv(s, len);
+ assert(sv.length() == len);
+ for (std::size_t i = 0; i < len; ++i) {
+ assert(sv.at(i) == s[i]);
+ assert(&sv.at(i) == s + i);
+ }
#ifndef TEST_HAS_NO_EXCEPTIONS
- try { (void)sv.at(len); } catch ( const std::out_of_range & ) { return ; }
- assert ( false );
+ try {
+ (void)sv.at(len);
+ } catch (const std::out_of_range&) {
+ return;
+ }
+ assert(false);
#endif
}
int main(int, char**) {
- test ( "ABCDE", 5 );
- test ( "a", 1 );
+ test("ABCDE", 5);
+ test("a", 1);
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- test ( L"ABCDE", 5 );
- test ( L"a", 1 );
+ test(L"ABCDE", 5);
+ test(L"a", 1);
#endif
#if TEST_STD_VER >= 11
- test ( u"ABCDE", 5 );
- test ( u"a", 1 );
+ test(u"ABCDE", 5);
+ test(u"a", 1);
- test ( U"ABCDE", 5 );
- test ( U"a", 1 );
+ test(U"ABCDE", 5);
+ test(U"a", 1);
#endif
#if TEST_STD_VER >= 11
- {
- constexpr std::basic_string_view<char> sv ( "ABC", 2 );
- static_assert ( sv.length() == 2, "" );
- static_assert ( sv.at(0) == 'A', "" );
- static_assert ( sv.at(1) == 'B', "" );
- }
+ {
+ constexpr std::basic_string_view<char> sv("ABC", 2);
+ static_assert(sv.length() == 2, "");
+ static_assert(sv.at(0) == 'A', "");
+ static_assert(sv.at(1) == 'B', "");
+ }
#endif
return 0;
diff --git a/libcxx/test/std/strings/string.view/string.view.access/back.pass.cpp b/libcxx/test/std/strings/string.view/string.view.access/back.pass.cpp
index e63b80daeb03279..07861b7a89dd469 100644
--- a/libcxx/test/std/strings/string.view/string.view.access/back.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.access/back.pass.cpp
@@ -18,39 +18,39 @@
#include "test_macros.h"
template <typename CharT>
-bool test ( const CharT *s, std::size_t len ) {
- typedef std::basic_string_view<CharT> SV;
- SV sv ( s, len );
- ASSERT_SAME_TYPE(decltype(sv.back()), typename SV::const_reference);
- LIBCPP_ASSERT_NOEXCEPT( sv.back());
- assert ( sv.length() == len );
- assert ( sv.back() == s[len-1] );
- return &sv.back() == s + len - 1;
- }
+bool test(const CharT* s, std::size_t len) {
+ typedef std::basic_string_view<CharT> SV;
+ SV sv(s, len);
+ ASSERT_SAME_TYPE(decltype(sv.back()), typename SV::const_reference);
+ LIBCPP_ASSERT_NOEXCEPT(sv.back());
+ assert(sv.length() == len);
+ assert(sv.back() == s[len - 1]);
+ return &sv.back() == s + len - 1;
+}
int main(int, char**) {
- assert ( test ( "ABCDE", 5 ));
- assert ( test ( "a", 1 ));
+ assert(test("ABCDE", 5));
+ assert(test("a", 1));
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- assert ( test ( L"ABCDE", 5 ));
- assert ( test ( L"a", 1 ));
+ assert(test(L"ABCDE", 5));
+ assert(test(L"a", 1));
#endif
#if TEST_STD_VER >= 11
- assert ( test ( u"ABCDE", 5 ));
- assert ( test ( u"a", 1 ));
+ assert(test(u"ABCDE", 5));
+ assert(test(u"a", 1));
- assert ( test ( U"ABCDE", 5 ));
- assert ( test ( U"a", 1 ));
+ assert(test(U"ABCDE", 5));
+ assert(test(U"a", 1));
#endif
#if TEST_STD_VER >= 11
- {
- constexpr std::basic_string_view<char> sv ( "ABC", 2 );
- static_assert ( sv.length() == 2, "" );
- static_assert ( sv.back() == 'B', "" );
- }
+ {
+ constexpr std::basic_string_view<char> sv("ABC", 2);
+ static_assert(sv.length() == 2, "");
+ static_assert(sv.back() == 'B', "");
+ }
#endif
return 0;
diff --git a/libcxx/test/std/strings/string.view/string.view.access/data.pass.cpp b/libcxx/test/std/strings/string.view/string.view.access/data.pass.cpp
index bf5485b96826c91..b503e2af035735e 100644
--- a/libcxx/test/std/strings/string.view/string.view.access/data.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.access/data.pass.cpp
@@ -19,40 +19,40 @@
#include "test_macros.h"
template <typename CharT>
-void test ( const CharT *s, std::size_t len ) {
- std::basic_string_view<CharT> sv ( s, len );
- assert ( sv.length() == len );
- assert ( sv.data() == s );
+void test(const CharT* s, std::size_t len) {
+ std::basic_string_view<CharT> sv(s, len);
+ assert(sv.length() == len);
+ assert(sv.data() == s);
#if TEST_STD_VER > 14
-// make sure we pick up std::data, too!
- assert ( sv.data() == std::data(sv));
+ // make sure we pick up std::data, too!
+ assert(sv.data() == std::data(sv));
#endif
- }
+}
int main(int, char**) {
- test ( "ABCDE", 5 );
- test ( "a", 1 );
+ test("ABCDE", 5);
+ test("a", 1);
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- test ( L"ABCDE", 5 );
- test ( L"a", 1 );
+ test(L"ABCDE", 5);
+ test(L"a", 1);
#endif
#if TEST_STD_VER >= 11
- test ( u"ABCDE", 5 );
- test ( u"a", 1 );
+ test(u"ABCDE", 5);
+ test(u"a", 1);
- test ( U"ABCDE", 5 );
- test ( U"a", 1 );
+ test(U"ABCDE", 5);
+ test(U"a", 1);
#endif
#if TEST_STD_VER > 11
- {
- constexpr const char *s = "ABC";
- constexpr std::basic_string_view<char> sv( s, 2 );
- static_assert( sv.length() == 2, "" );
- static_assert( sv.data() == s, "" );
- }
+ {
+ constexpr const char* s = "ABC";
+ constexpr std::basic_string_view<char> sv(s, 2);
+ static_assert(sv.length() == 2, "");
+ static_assert(sv.data() == s, "");
+ }
#endif
return 0;
diff --git a/libcxx/test/std/strings/string.view/string.view.access/front.pass.cpp b/libcxx/test/std/strings/string.view/string.view.access/front.pass.cpp
index 72aa0258bbc0407..45edd3dc16b070f 100644
--- a/libcxx/test/std/strings/string.view/string.view.access/front.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.access/front.pass.cpp
@@ -18,39 +18,39 @@
#include "test_macros.h"
template <typename CharT>
-bool test ( const CharT *s, std::size_t len ) {
- typedef std::basic_string_view<CharT> SV;
- SV sv ( s, len );
- ASSERT_SAME_TYPE(decltype(sv.front()), typename SV::const_reference);
- LIBCPP_ASSERT_NOEXCEPT( sv.front());
- assert ( sv.length() == len );
- assert ( sv.front() == s[0] );
- return &sv.front() == s;
- }
+bool test(const CharT* s, std::size_t len) {
+ typedef std::basic_string_view<CharT> SV;
+ SV sv(s, len);
+ ASSERT_SAME_TYPE(decltype(sv.front()), typename SV::const_reference);
+ LIBCPP_ASSERT_NOEXCEPT(sv.front());
+ assert(sv.length() == len);
+ assert(sv.front() == s[0]);
+ return &sv.front() == s;
+}
int main(int, char**) {
- assert ( test ( "ABCDE", 5 ));
- assert ( test ( "a", 1 ));
+ assert(test("ABCDE", 5));
+ assert(test("a", 1));
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- assert ( test ( L"ABCDE", 5 ));
- assert ( test ( L"a", 1 ));
+ assert(test(L"ABCDE", 5));
+ assert(test(L"a", 1));
#endif
#if TEST_STD_VER >= 11
- assert ( test ( u"ABCDE", 5 ));
- assert ( test ( u"a", 1 ));
+ assert(test(u"ABCDE", 5));
+ assert(test(u"a", 1));
- assert ( test ( U"ABCDE", 5 ));
- assert ( test ( U"a", 1 ));
+ assert(test(U"ABCDE", 5));
+ assert(test(U"a", 1));
#endif
#if TEST_STD_VER >= 11
- {
- constexpr std::basic_string_view<char> sv ( "ABC", 2 );
- static_assert ( sv.length() == 2, "" );
- static_assert ( sv.front() == 'A', "" );
- }
+ {
+ constexpr std::basic_string_view<char> sv("ABC", 2);
+ static_assert(sv.length() == 2, "");
+ static_assert(sv.front() == 'A', "");
+ }
#endif
return 0;
diff --git a/libcxx/test/std/strings/string.view/string.view.access/index.pass.cpp b/libcxx/test/std/strings/string.view/string.view.access/index.pass.cpp
index 51c60ec0057b854..be6bbd78bd1e4b1 100644
--- a/libcxx/test/std/strings/string.view/string.view.access/index.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.access/index.pass.cpp
@@ -18,42 +18,42 @@
#include "test_macros.h"
template <typename CharT>
-void test ( const CharT *s, std::size_t len ) {
- typedef std::basic_string_view<CharT> SV;
- SV sv ( s, len );
- ASSERT_SAME_TYPE(decltype(sv[0]), typename SV::const_reference);
- LIBCPP_ASSERT_NOEXCEPT( sv[0]);
- assert ( sv.length() == len );
- for ( std::size_t i = 0; i < len; ++i ) {
- assert ( sv[i] == s[i] );
- assert ( &sv[i] == s + i );
- }
- }
+void test(const CharT* s, std::size_t len) {
+ typedef std::basic_string_view<CharT> SV;
+ SV sv(s, len);
+ ASSERT_SAME_TYPE(decltype(sv[0]), typename SV::const_reference);
+ LIBCPP_ASSERT_NOEXCEPT(sv[0]);
+ assert(sv.length() == len);
+ for (std::size_t i = 0; i < len; ++i) {
+ assert(sv[i] == s[i]);
+ assert(&sv[i] == s + i);
+ }
+}
int main(int, char**) {
- test ( "ABCDE", 5 );
- test ( "a", 1 );
+ test("ABCDE", 5);
+ test("a", 1);
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- test ( L"ABCDE", 5 );
- test ( L"a", 1 );
+ test(L"ABCDE", 5);
+ test(L"a", 1);
#endif
#if TEST_STD_VER >= 11
- test ( u"ABCDE", 5 );
- test ( u"a", 1 );
+ test(u"ABCDE", 5);
+ test(u"a", 1);
- test ( U"ABCDE", 5 );
- test ( U"a", 1 );
+ test(U"ABCDE", 5);
+ test(U"a", 1);
#endif
#if TEST_STD_VER > 11
- {
- constexpr std::basic_string_view<char> sv ( "ABC", 2 );
- static_assert ( sv.length() == 2, "" );
- static_assert ( sv[0] == 'A', "" );
- static_assert ( sv[1] == 'B', "" );
- }
+ {
+ constexpr std::basic_string_view<char> sv("ABC", 2);
+ static_assert(sv.length() == 2, "");
+ static_assert(sv[0] == 'A', "");
+ static_assert(sv[1] == 'B', "");
+ }
#endif
return 0;
diff --git a/libcxx/test/std/strings/string.view/string.view.capacity/capacity.pass.cpp b/libcxx/test/std/strings/string.view/string.view.capacity/capacity.pass.cpp
index a9fd862d6554832..05dad28b717864d 100644
--- a/libcxx/test/std/strings/string.view/string.view.capacity/capacity.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.capacity/capacity.pass.cpp
@@ -23,98 +23,103 @@
#include "test_macros.h"
-template<typename SV>
-void test1 () {
+template <typename SV>
+void test1() {
#if TEST_STD_VER > 11
- {
+ {
constexpr SV sv1;
- static_assert ( sv1.size() == 0, "" );
- static_assert ( sv1.empty(), "");
- static_assert ( sv1.size() == sv1.length(), "" );
- static_assert ( sv1.max_size() > sv1.size(), "");
- }
+ static_assert(sv1.size() == 0, "");
+ static_assert(sv1.empty(), "");
+ static_assert(sv1.size() == sv1.length(), "");
+ static_assert(sv1.max_size() > sv1.size(), "");
+ }
#endif
- {
+ {
SV sv1;
ASSERT_NOEXCEPT(sv1.size());
ASSERT_NOEXCEPT(sv1.empty());
ASSERT_NOEXCEPT(sv1.max_size());
ASSERT_NOEXCEPT(sv1.length());
- assert ( sv1.size() == 0 );
- assert ( sv1.empty());
- assert ( sv1.size() == sv1.length());
- assert ( sv1.max_size() > sv1.size());
- }
-
- // Sanity check max_size() -- a string_view can't store more bytes than a single object
- // can contain. Any implementation that fails this check is certainly lying.
- {
- typedef typename SV::value_type CharT;
- typedef typename SV::size_type Size;
- SV sv;
- assert(sv.max_size() <= std::numeric_limits<Size>::max() / sizeof(CharT));
- LIBCPP_ASSERT(sv.max_size() == std::numeric_limits<Size>::max() / sizeof(CharT));
- }
+ assert(sv1.size() == 0);
+ assert(sv1.empty());
+ assert(sv1.size() == sv1.length());
+ assert(sv1.max_size() > sv1.size());
+ }
+
+ // Sanity check max_size() -- a string_view can't store more bytes than a single object
+ // can contain. Any implementation that fails this check is certainly lying.
+ {
+ typedef typename SV::value_type CharT;
+ typedef typename SV::size_type Size;
+ SV sv;
+ assert(sv.max_size() <= std::numeric_limits<Size>::max() / sizeof(CharT));
+ LIBCPP_ASSERT(sv.max_size() == std::numeric_limits<Size>::max() / sizeof(CharT));
+ }
}
-template<typename CharT>
-void test2 ( const CharT *s, std::size_t len ) {
- {
- std::basic_string_view<CharT> sv1 ( s );
- assert ( sv1.size() == len );
- assert ( sv1.data() == s );
- assert ( sv1.empty() == (len == 0));
- assert ( sv1.size() == sv1.length());
- assert ( sv1.max_size() > sv1.size());
+template <typename CharT>
+void test2(const CharT* s, std::size_t len) {
+ {
+ std::basic_string_view<CharT> sv1(s);
+ assert(sv1.size() == len);
+ assert(sv1.data() == s);
+ assert(sv1.empty() == (len == 0));
+ assert(sv1.size() == sv1.length());
+ assert(sv1.max_size() > sv1.size());
#if TEST_STD_VER > 14
-// make sure we pick up std::size, too!
- assert ( sv1.size() == std::size(sv1));
- assert ( sv1.empty() == std::empty(sv1));
+ // make sure we pick up std::size, too!
+ assert(sv1.size() == std::size(sv1));
+ assert(sv1.empty() == std::empty(sv1));
#endif
- }
+ }
}
int main(int, char**) {
- test1<std::string_view> ();
+ test1<std::string_view>();
#ifndef TEST_HAS_NO_CHAR8_T
- test1<std::u8string_view> ();
+ test1<std::u8string_view>();
#endif
- test1<std::u16string_view> ();
- test1<std::u32string_view> ();
+ test1<std::u16string_view>();
+ test1<std::u32string_view>();
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- test1<std::wstring_view> ();
+ test1<std::wstring_view>();
#endif
- test2 ( "ABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDE", 105 );
- test2 ( "ABCDE", 5 );
- test2 ( "a", 1 );
- test2 ( "", 0 );
+ test2("ABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDE",
+ 105);
+ test2("ABCDE", 5);
+ test2("a", 1);
+ test2("", 0);
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- test2 ( L"ABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDE", 105 );
- test2 ( L"ABCDE", 5 );
- test2 ( L"a", 1 );
- test2 ( L"", 0 );
+ test2(L"ABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDE",
+ 105);
+ test2(L"ABCDE", 5);
+ test2(L"a", 1);
+ test2(L"", 0);
#endif
#ifndef TEST_HAS_NO_CHAR8_T
- test2 ( u8"ABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDE", 105 );
- test2 ( u8"ABCDE", 5 );
- test2 ( u8"a", 1 );
- test2 ( u8"", 0 );
+ test2(u8"ABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDE",
+ 105);
+ test2(u8"ABCDE", 5);
+ test2(u8"a", 1);
+ test2(u8"", 0);
#endif
#if TEST_STD_VER >= 11
- test2 ( u"ABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDE", 105 );
- test2 ( u"ABCDE", 5 );
- test2 ( u"a", 1 );
- test2 ( u"", 0 );
-
- test2 ( U"ABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDE", 105 );
- test2 ( U"ABCDE", 5 );
- test2 ( U"a", 1 );
- test2 ( U"", 0 );
+ test2(u"ABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDE",
+ 105);
+ test2(u"ABCDE", 5);
+ test2(u"a", 1);
+ test2(u"", 0);
+
+ test2(U"ABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDE",
+ 105);
+ test2(U"ABCDE", 5);
+ test2(U"a", 1);
+ test2(U"", 0);
#endif
return 0;
diff --git a/libcxx/test/std/strings/string.view/string.view.capacity/empty.verify.cpp b/libcxx/test/std/strings/string.view/string.view.capacity/empty.verify.cpp
index 73e0af7cb5e9ce5..18a90acbcf02ee1 100644
--- a/libcxx/test/std/strings/string.view/string.view.capacity/empty.verify.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.capacity/empty.verify.cpp
@@ -17,6 +17,6 @@
#include <string_view>
void f() {
- std::string_view c;
- c.empty(); // expected-warning {{ignoring return value of function declared with 'nodiscard' attribute}}
+ std::string_view c;
+ c.empty(); // expected-warning {{ignoring return value of function declared with 'nodiscard' attribute}}
}
diff --git a/libcxx/test/std/strings/string.view/string.view.comparison/equal.pass.cpp b/libcxx/test/std/strings/string.view/string.view.comparison/equal.pass.cpp
index dbe242cca4210f2..4f00bd7f6edf19b 100644
--- a/libcxx/test/std/strings/string.view/string.view.comparison/equal.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.comparison/equal.pass.cpp
@@ -22,95 +22,91 @@
#include "constexpr_char_traits.h"
#include "make_string.h"
-template<class T>
+template <class T>
struct ConvertibleTo {
- T t_;
- TEST_CONSTEXPR explicit ConvertibleTo(T t) : t_(t) {}
- TEST_CONSTEXPR operator T() const {
- return t_;
- }
+ T t_;
+ TEST_CONSTEXPR explicit ConvertibleTo(T t) : t_(t) {}
+ TEST_CONSTEXPR operator T() const { return t_; }
};
-template<class SV>
-TEST_CONSTEXPR_CXX14 bool test()
-{
- typedef typename SV::value_type CharT;
- typedef typename SV::traits_type Traits;
-
- // Test the behavior of the operator, both with and without implicit conversions.
- SV v[] = {
- SV(MAKE_CSTRING(CharT, "")),
- SV(MAKE_CSTRING(CharT, "abc")),
- SV(MAKE_CSTRING(CharT, "abcdef")),
- SV(MAKE_CSTRING(CharT, "acb")),
- };
- for (int i = 0; i < 4; ++i) {
- for (int j = 0; j < 4; ++j) {
- // See http://eel.is/c++draft/string.view#tab:string.view.comparison.overloads
- bool expected = (i == j);
- assert((v[i] == v[j]) == expected);
- assert((v[i].data() == v[j]) == expected);
- assert((v[i] == v[j].data()) == expected);
- assert((ConvertibleTo<SV>(v[i]) == v[j]) == expected);
- assert((v[i] == ConvertibleTo<SV>(v[j])) == expected);
-
- if (!TEST_IS_CONSTANT_EVALUATED || TEST_STD_VER >= 20) {
- assert((std::basic_string<CharT, Traits>(v[i]) == v[j]) == expected);
- assert((v[i] == std::basic_string<CharT, Traits>(v[j])) == expected);
- }
- }
- }
-
- // Test its behavior with embedded null bytes.
- SV abc = SV(MAKE_CSTRING(CharT, "abc"));
- SV abc0def = SV(MAKE_CSTRING(CharT, "abc\0def"), 7);
- SV abcdef = SV(MAKE_CSTRING(CharT, "abcdef"));
- assert((abc == abc0def) == false);
- assert((abc == abcdef) == false);
- assert((abc0def == abc) == false);
- assert((abc0def == abcdef) == false);
- assert((abcdef == abc) == false);
- assert((abcdef == abc0def) == false);
-
- assert((abc.data() == abc0def) == false);
- assert((abc0def == abc.data()) == false);
-
- if (!TEST_IS_CONSTANT_EVALUATED || TEST_STD_VER >= 20) {
- assert((std::basic_string<CharT, Traits>(abc) == abc0def) == false);
- assert((abc0def == std::basic_string<CharT, Traits>(abc)) == false);
+template <class SV>
+TEST_CONSTEXPR_CXX14 bool test() {
+ typedef typename SV::value_type CharT;
+ typedef typename SV::traits_type Traits;
+
+ // Test the behavior of the operator, both with and without implicit conversions.
+ SV v[] = {
+ SV(MAKE_CSTRING(CharT, "")),
+ SV(MAKE_CSTRING(CharT, "abc")),
+ SV(MAKE_CSTRING(CharT, "abcdef")),
+ SV(MAKE_CSTRING(CharT, "acb")),
+ };
+ for (int i = 0; i < 4; ++i) {
+ for (int j = 0; j < 4; ++j) {
+ // See http://eel.is/c++draft/string.view#tab:string.view.comparison.overloads
+ bool expected = (i == j);
+ assert((v[i] == v[j]) == expected);
+ assert((v[i].data() == v[j]) == expected);
+ assert((v[i] == v[j].data()) == expected);
+ assert((ConvertibleTo<SV>(v[i]) == v[j]) == expected);
+ assert((v[i] == ConvertibleTo<SV>(v[j])) == expected);
+
+ if (!TEST_IS_CONSTANT_EVALUATED || TEST_STD_VER >= 20) {
+ assert((std::basic_string<CharT, Traits>(v[i]) == v[j]) == expected);
+ assert((v[i] == std::basic_string<CharT, Traits>(v[j])) == expected);
+ }
}
-
- return true;
+ }
+
+ // Test its behavior with embedded null bytes.
+ SV abc = SV(MAKE_CSTRING(CharT, "abc"));
+ SV abc0def = SV(MAKE_CSTRING(CharT, "abc\0def"), 7);
+ SV abcdef = SV(MAKE_CSTRING(CharT, "abcdef"));
+ assert((abc == abc0def) == false);
+ assert((abc == abcdef) == false);
+ assert((abc0def == abc) == false);
+ assert((abc0def == abcdef) == false);
+ assert((abcdef == abc) == false);
+ assert((abcdef == abc0def) == false);
+
+ assert((abc.data() == abc0def) == false);
+ assert((abc0def == abc.data()) == false);
+
+ if (!TEST_IS_CONSTANT_EVALUATED || TEST_STD_VER >= 20) {
+ assert((std::basic_string<CharT, Traits>(abc) == abc0def) == false);
+ assert((abc0def == std::basic_string<CharT, Traits>(abc)) == false);
+ }
+
+ return true;
}
-int main(int, char**)
-{
- test<std::string_view>();
+int main(int, char**) {
+ test<std::string_view>();
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- test<std::wstring_view>();
+ test<std::wstring_view>();
#endif
#if TEST_STD_VER >= 11
- test<std::u16string_view>();
- test<std::u32string_view>();
+ test<std::u16string_view>();
+ test<std::u32string_view>();
#endif
#if TEST_STD_VER > 14
- static_assert(test<std::string_view>(), "");
-#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- static_assert(test<std::wstring_view>(), "");
-#endif
- static_assert(test<std::u16string_view>(), "");
- static_assert(test<std::u32string_view>(), "");
+ static_assert(test<std::string_view>(), "");
+# ifndef TEST_HAS_NO_WIDE_CHARACTERS
+ static_assert(test<std::wstring_view>(), "");
+# endif
+ static_assert(test<std::u16string_view>(), "");
+ static_assert(test<std::u32string_view>(), "");
#endif
#if TEST_STD_VER > 11
- test<std::basic_string_view<char, constexpr_char_traits<char>>>();
- static_assert(test<std::basic_string_view<char, constexpr_char_traits<char>>>(), "");
+ test<std::basic_string_view<char, constexpr_char_traits<char>>>();
+ static_assert(test<std::basic_string_view<char, constexpr_char_traits<char>>>(), "");
#endif
#if TEST_STD_VER > 17
- test<std::u8string_view>();
- static_assert(test<std::u8string_view>());
+ test<std::u8string_view>();
+ static_assert(test<std::u8string_view>());
#endif
- return 0;
+ return 0;
}
diff --git a/libcxx/test/std/strings/string.view/string.view.comparison/greater.pass.cpp b/libcxx/test/std/strings/string.view/string.view.comparison/greater.pass.cpp
index a3739f648b33109..b965c155ec51ba1 100644
--- a/libcxx/test/std/strings/string.view/string.view.comparison/greater.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.comparison/greater.pass.cpp
@@ -22,95 +22,91 @@
#include "constexpr_char_traits.h"
#include "make_string.h"
-template<class T>
+template <class T>
struct ConvertibleTo {
- T t_;
- TEST_CONSTEXPR explicit ConvertibleTo(T t) : t_(t) {}
- TEST_CONSTEXPR operator T() const {
- return t_;
- }
+ T t_;
+ TEST_CONSTEXPR explicit ConvertibleTo(T t) : t_(t) {}
+ TEST_CONSTEXPR operator T() const { return t_; }
};
-template<class SV>
-TEST_CONSTEXPR_CXX14 bool test()
-{
- typedef typename SV::value_type CharT;
- typedef typename SV::traits_type Traits;
-
- // Test the behavior of the operator, both with and without implicit conversions.
- SV v[] = {
- SV(MAKE_CSTRING(CharT, "")),
- SV(MAKE_CSTRING(CharT, "abc")),
- SV(MAKE_CSTRING(CharT, "abcdef")),
- SV(MAKE_CSTRING(CharT, "acb")),
- };
- for (int i = 0; i < 4; ++i) {
- for (int j = 0; j < 4; ++j) {
- // See http://eel.is/c++draft/string.view#tab:string.view.comparison.overloads
- bool expected = (i > j);
- assert((v[i] > v[j]) == expected);
- assert((v[i].data() > v[j]) == expected);
- assert((v[i] > v[j].data()) == expected);
- assert((ConvertibleTo<SV>(v[i]) > v[j]) == expected);
- assert((v[i] > ConvertibleTo<SV>(v[j])) == expected);
-
- if (!TEST_IS_CONSTANT_EVALUATED || TEST_STD_VER >= 20) {
- assert((std::basic_string<CharT, Traits>(v[i]) > v[j]) == expected);
- assert((v[i] > std::basic_string<CharT, Traits>(v[j])) == expected);
- }
- }
- }
-
- // Test its behavior with embedded null bytes.
- SV abc = SV(MAKE_CSTRING(CharT, "abc"));
- SV abc0def = SV(MAKE_CSTRING(CharT, "abc\0def"), 7);
- SV abcdef = SV(MAKE_CSTRING(CharT, "abcdef"));
- assert((abc > abc0def) == false);
- assert((abc > abcdef) == false);
- assert((abc0def > abc) == true);
- assert((abc0def > abcdef) == false);
- assert((abcdef > abc) == true);
- assert((abcdef > abc0def) == true);
-
- assert((abc.data() > abc0def) == false);
- assert((abc0def > abc.data()) == true);
-
- if (!TEST_IS_CONSTANT_EVALUATED || TEST_STD_VER >= 20) {
- assert((std::basic_string<CharT, Traits>(abc) > abc0def) == false);
- assert((abc0def > std::basic_string<CharT, Traits>(abc)) == true);
+template <class SV>
+TEST_CONSTEXPR_CXX14 bool test() {
+ typedef typename SV::value_type CharT;
+ typedef typename SV::traits_type Traits;
+
+ // Test the behavior of the operator, both with and without implicit conversions.
+ SV v[] = {
+ SV(MAKE_CSTRING(CharT, "")),
+ SV(MAKE_CSTRING(CharT, "abc")),
+ SV(MAKE_CSTRING(CharT, "abcdef")),
+ SV(MAKE_CSTRING(CharT, "acb")),
+ };
+ for (int i = 0; i < 4; ++i) {
+ for (int j = 0; j < 4; ++j) {
+ // See http://eel.is/c++draft/string.view#tab:string.view.comparison.overloads
+ bool expected = (i > j);
+ assert((v[i] > v[j]) == expected);
+ assert((v[i].data() > v[j]) == expected);
+ assert((v[i] > v[j].data()) == expected);
+ assert((ConvertibleTo<SV>(v[i]) > v[j]) == expected);
+ assert((v[i] > ConvertibleTo<SV>(v[j])) == expected);
+
+ if (!TEST_IS_CONSTANT_EVALUATED || TEST_STD_VER >= 20) {
+ assert((std::basic_string<CharT, Traits>(v[i]) > v[j]) == expected);
+ assert((v[i] > std::basic_string<CharT, Traits>(v[j])) == expected);
+ }
}
-
- return true;
+ }
+
+ // Test its behavior with embedded null bytes.
+ SV abc = SV(MAKE_CSTRING(CharT, "abc"));
+ SV abc0def = SV(MAKE_CSTRING(CharT, "abc\0def"), 7);
+ SV abcdef = SV(MAKE_CSTRING(CharT, "abcdef"));
+ assert((abc > abc0def) == false);
+ assert((abc > abcdef) == false);
+ assert((abc0def > abc) == true);
+ assert((abc0def > abcdef) == false);
+ assert((abcdef > abc) == true);
+ assert((abcdef > abc0def) == true);
+
+ assert((abc.data() > abc0def) == false);
+ assert((abc0def > abc.data()) == true);
+
+ if (!TEST_IS_CONSTANT_EVALUATED || TEST_STD_VER >= 20) {
+ assert((std::basic_string<CharT, Traits>(abc) > abc0def) == false);
+ assert((abc0def > std::basic_string<CharT, Traits>(abc)) == true);
+ }
+
+ return true;
}
-int main(int, char**)
-{
- test<std::string_view>();
+int main(int, char**) {
+ test<std::string_view>();
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- test<std::wstring_view>();
+ test<std::wstring_view>();
#endif
#if TEST_STD_VER >= 11
- test<std::u16string_view>();
- test<std::u32string_view>();
+ test<std::u16string_view>();
+ test<std::u32string_view>();
#endif
#if TEST_STD_VER > 14
- static_assert(test<std::string_view>(), "");
-#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- static_assert(test<std::wstring_view>(), "");
-#endif
- static_assert(test<std::u16string_view>(), "");
- static_assert(test<std::u32string_view>(), "");
+ static_assert(test<std::string_view>(), "");
+# ifndef TEST_HAS_NO_WIDE_CHARACTERS
+ static_assert(test<std::wstring_view>(), "");
+# endif
+ static_assert(test<std::u16string_view>(), "");
+ static_assert(test<std::u32string_view>(), "");
#endif
#if TEST_STD_VER > 11
- test<std::basic_string_view<char, constexpr_char_traits<char>>>();
- static_assert(test<std::basic_string_view<char, constexpr_char_traits<char>>>(), "");
+ test<std::basic_string_view<char, constexpr_char_traits<char>>>();
+ static_assert(test<std::basic_string_view<char, constexpr_char_traits<char>>>(), "");
#endif
#if TEST_STD_VER > 17
- test<std::u8string_view>();
- static_assert(test<std::u8string_view>());
+ test<std::u8string_view>();
+ static_assert(test<std::u8string_view>());
#endif
- return 0;
+ return 0;
}
diff --git a/libcxx/test/std/strings/string.view/string.view.comparison/greater_equal.pass.cpp b/libcxx/test/std/strings/string.view/string.view.comparison/greater_equal.pass.cpp
index 55d291772627877..435e7db7731998a 100644
--- a/libcxx/test/std/strings/string.view/string.view.comparison/greater_equal.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.comparison/greater_equal.pass.cpp
@@ -22,95 +22,91 @@
#include "constexpr_char_traits.h"
#include "make_string.h"
-template<class T>
+template <class T>
struct ConvertibleTo {
- T t_;
- TEST_CONSTEXPR explicit ConvertibleTo(T t) : t_(t) {}
- TEST_CONSTEXPR operator T() const {
- return t_;
- }
+ T t_;
+ TEST_CONSTEXPR explicit ConvertibleTo(T t) : t_(t) {}
+ TEST_CONSTEXPR operator T() const { return t_; }
};
-template<class SV>
-TEST_CONSTEXPR_CXX14 bool test()
-{
- typedef typename SV::value_type CharT;
- typedef typename SV::traits_type Traits;
-
- // Test the behavior of the operator, both with and without implicit conversions.
- SV v[] = {
- SV(MAKE_CSTRING(CharT, "")),
- SV(MAKE_CSTRING(CharT, "abc")),
- SV(MAKE_CSTRING(CharT, "abcdef")),
- SV(MAKE_CSTRING(CharT, "acb")),
- };
- for (int i = 0; i < 4; ++i) {
- for (int j = 0; j < 4; ++j) {
- // See http://eel.is/c++draft/string.view#tab:string.view.comparison.overloads
- bool expected = (i >= j);
- assert((v[i] >= v[j]) == expected);
- assert((v[i].data() >= v[j]) == expected);
- assert((v[i] >= v[j].data()) == expected);
- assert((ConvertibleTo<SV>(v[i]) >= v[j]) == expected);
- assert((v[i] >= ConvertibleTo<SV>(v[j])) == expected);
-
- if (!TEST_IS_CONSTANT_EVALUATED || TEST_STD_VER >= 20) {
- assert((std::basic_string<CharT, Traits>(v[i]) >= v[j]) == expected);
- assert((v[i] >= std::basic_string<CharT, Traits>(v[j])) == expected);
- }
- }
- }
-
- // Test its behavior with embedded null bytes.
- SV abc = SV(MAKE_CSTRING(CharT, "abc"));
- SV abc0def = SV(MAKE_CSTRING(CharT, "abc\0def"), 7);
- SV abcdef = SV(MAKE_CSTRING(CharT, "abcdef"));
- assert((abc >= abc0def) == false);
- assert((abc >= abcdef) == false);
- assert((abc0def >= abc) == true);
- assert((abc0def >= abcdef) == false);
- assert((abcdef >= abc) == true);
- assert((abcdef >= abc0def) == true);
-
- assert((abc.data() >= abc0def) == false);
- assert((abc0def >= abc.data()) == true);
-
- if (!TEST_IS_CONSTANT_EVALUATED || TEST_STD_VER >= 20) {
- assert((std::basic_string<CharT, Traits>(abc) >= abc0def) == false);
- assert((abc0def >= std::basic_string<CharT, Traits>(abc)) == true);
+template <class SV>
+TEST_CONSTEXPR_CXX14 bool test() {
+ typedef typename SV::value_type CharT;
+ typedef typename SV::traits_type Traits;
+
+ // Test the behavior of the operator, both with and without implicit conversions.
+ SV v[] = {
+ SV(MAKE_CSTRING(CharT, "")),
+ SV(MAKE_CSTRING(CharT, "abc")),
+ SV(MAKE_CSTRING(CharT, "abcdef")),
+ SV(MAKE_CSTRING(CharT, "acb")),
+ };
+ for (int i = 0; i < 4; ++i) {
+ for (int j = 0; j < 4; ++j) {
+ // See http://eel.is/c++draft/string.view#tab:string.view.comparison.overloads
+ bool expected = (i >= j);
+ assert((v[i] >= v[j]) == expected);
+ assert((v[i].data() >= v[j]) == expected);
+ assert((v[i] >= v[j].data()) == expected);
+ assert((ConvertibleTo<SV>(v[i]) >= v[j]) == expected);
+ assert((v[i] >= ConvertibleTo<SV>(v[j])) == expected);
+
+ if (!TEST_IS_CONSTANT_EVALUATED || TEST_STD_VER >= 20) {
+ assert((std::basic_string<CharT, Traits>(v[i]) >= v[j]) == expected);
+ assert((v[i] >= std::basic_string<CharT, Traits>(v[j])) == expected);
+ }
}
-
- return true;
+ }
+
+ // Test its behavior with embedded null bytes.
+ SV abc = SV(MAKE_CSTRING(CharT, "abc"));
+ SV abc0def = SV(MAKE_CSTRING(CharT, "abc\0def"), 7);
+ SV abcdef = SV(MAKE_CSTRING(CharT, "abcdef"));
+ assert((abc >= abc0def) == false);
+ assert((abc >= abcdef) == false);
+ assert((abc0def >= abc) == true);
+ assert((abc0def >= abcdef) == false);
+ assert((abcdef >= abc) == true);
+ assert((abcdef >= abc0def) == true);
+
+ assert((abc.data() >= abc0def) == false);
+ assert((abc0def >= abc.data()) == true);
+
+ if (!TEST_IS_CONSTANT_EVALUATED || TEST_STD_VER >= 20) {
+ assert((std::basic_string<CharT, Traits>(abc) >= abc0def) == false);
+ assert((abc0def >= std::basic_string<CharT, Traits>(abc)) == true);
+ }
+
+ return true;
}
-int main(int, char**)
-{
- test<std::string_view>();
+int main(int, char**) {
+ test<std::string_view>();
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- test<std::wstring_view>();
+ test<std::wstring_view>();
#endif
#if TEST_STD_VER >= 11
- test<std::u16string_view>();
- test<std::u32string_view>();
+ test<std::u16string_view>();
+ test<std::u32string_view>();
#endif
#if TEST_STD_VER > 14
- static_assert(test<std::string_view>(), "");
-#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- static_assert(test<std::wstring_view>(), "");
-#endif
- static_assert(test<std::u16string_view>(), "");
- static_assert(test<std::u32string_view>(), "");
+ static_assert(test<std::string_view>(), "");
+# ifndef TEST_HAS_NO_WIDE_CHARACTERS
+ static_assert(test<std::wstring_view>(), "");
+# endif
+ static_assert(test<std::u16string_view>(), "");
+ static_assert(test<std::u32string_view>(), "");
#endif
#if TEST_STD_VER > 11
- test<std::basic_string_view<char, constexpr_char_traits<char>>>();
- static_assert(test<std::basic_string_view<char, constexpr_char_traits<char>>>(), "");
+ test<std::basic_string_view<char, constexpr_char_traits<char>>>();
+ static_assert(test<std::basic_string_view<char, constexpr_char_traits<char>>>(), "");
#endif
#if TEST_STD_VER > 17
- test<std::u8string_view>();
- static_assert(test<std::u8string_view>());
+ test<std::u8string_view>();
+ static_assert(test<std::u8string_view>());
#endif
- return 0;
+ return 0;
}
diff --git a/libcxx/test/std/strings/string.view/string.view.comparison/less.pass.cpp b/libcxx/test/std/strings/string.view/string.view.comparison/less.pass.cpp
index 874bf706024351c..7461b05ce308539 100644
--- a/libcxx/test/std/strings/string.view/string.view.comparison/less.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.comparison/less.pass.cpp
@@ -22,95 +22,91 @@
#include "constexpr_char_traits.h"
#include "make_string.h"
-template<class T>
+template <class T>
struct ConvertibleTo {
- T t_;
- TEST_CONSTEXPR explicit ConvertibleTo(T t) : t_(t) {}
- TEST_CONSTEXPR operator T() const {
- return t_;
- }
+ T t_;
+ TEST_CONSTEXPR explicit ConvertibleTo(T t) : t_(t) {}
+ TEST_CONSTEXPR operator T() const { return t_; }
};
-template<class SV>
-TEST_CONSTEXPR_CXX14 bool test()
-{
- typedef typename SV::value_type CharT;
- typedef typename SV::traits_type Traits;
-
- // Test the behavior of the operator, both with and without implicit conversions.
- SV v[] = {
- SV(MAKE_CSTRING(CharT, "")),
- SV(MAKE_CSTRING(CharT, "abc")),
- SV(MAKE_CSTRING(CharT, "abcdef")),
- SV(MAKE_CSTRING(CharT, "acb")),
- };
- for (int i = 0; i < 4; ++i) {
- for (int j = 0; j < 4; ++j) {
- // See http://eel.is/c++draft/string.view#tab:string.view.comparison.overloads
- bool expected = (i < j);
- assert((v[i] < v[j]) == expected);
- assert((v[i].data() < v[j]) == expected);
- assert((v[i] < v[j].data()) == expected);
- assert((ConvertibleTo<SV>(v[i]) < v[j]) == expected);
- assert((v[i] < ConvertibleTo<SV>(v[j])) == expected);
-
- if (!TEST_IS_CONSTANT_EVALUATED || TEST_STD_VER >= 20) {
- assert((std::basic_string<CharT, Traits>(v[i]) < v[j]) == expected);
- assert((v[i] < std::basic_string<CharT, Traits>(v[j])) == expected);
- }
- }
- }
-
- // Test its behavior with embedded null bytes.
- SV abc = SV(MAKE_CSTRING(CharT, "abc"));
- SV abc0def = SV(MAKE_CSTRING(CharT, "abc\0def"), 7);
- SV abcdef = SV(MAKE_CSTRING(CharT, "abcdef"));
- assert((abc < abc0def) == true);
- assert((abc < abcdef) == true);
- assert((abc0def < abc) == false);
- assert((abc0def < abcdef) == true);
- assert((abcdef < abc) == false);
- assert((abcdef < abc0def) == false);
-
- assert((abc.data() < abc0def) == true);
- assert((abc0def < abc.data()) == false);
-
- if (!TEST_IS_CONSTANT_EVALUATED || TEST_STD_VER >= 20) {
- assert((std::basic_string<CharT, Traits>(abc) < abc0def) == true);
- assert((abc0def < std::basic_string<CharT, Traits>(abc)) == false);
+template <class SV>
+TEST_CONSTEXPR_CXX14 bool test() {
+ typedef typename SV::value_type CharT;
+ typedef typename SV::traits_type Traits;
+
+ // Test the behavior of the operator, both with and without implicit conversions.
+ SV v[] = {
+ SV(MAKE_CSTRING(CharT, "")),
+ SV(MAKE_CSTRING(CharT, "abc")),
+ SV(MAKE_CSTRING(CharT, "abcdef")),
+ SV(MAKE_CSTRING(CharT, "acb")),
+ };
+ for (int i = 0; i < 4; ++i) {
+ for (int j = 0; j < 4; ++j) {
+ // See http://eel.is/c++draft/string.view#tab:string.view.comparison.overloads
+ bool expected = (i < j);
+ assert((v[i] < v[j]) == expected);
+ assert((v[i].data() < v[j]) == expected);
+ assert((v[i] < v[j].data()) == expected);
+ assert((ConvertibleTo<SV>(v[i]) < v[j]) == expected);
+ assert((v[i] < ConvertibleTo<SV>(v[j])) == expected);
+
+ if (!TEST_IS_CONSTANT_EVALUATED || TEST_STD_VER >= 20) {
+ assert((std::basic_string<CharT, Traits>(v[i]) < v[j]) == expected);
+ assert((v[i] < std::basic_string<CharT, Traits>(v[j])) == expected);
+ }
}
-
- return true;
+ }
+
+ // Test its behavior with embedded null bytes.
+ SV abc = SV(MAKE_CSTRING(CharT, "abc"));
+ SV abc0def = SV(MAKE_CSTRING(CharT, "abc\0def"), 7);
+ SV abcdef = SV(MAKE_CSTRING(CharT, "abcdef"));
+ assert((abc < abc0def) == true);
+ assert((abc < abcdef) == true);
+ assert((abc0def < abc) == false);
+ assert((abc0def < abcdef) == true);
+ assert((abcdef < abc) == false);
+ assert((abcdef < abc0def) == false);
+
+ assert((abc.data() < abc0def) == true);
+ assert((abc0def < abc.data()) == false);
+
+ if (!TEST_IS_CONSTANT_EVALUATED || TEST_STD_VER >= 20) {
+ assert((std::basic_string<CharT, Traits>(abc) < abc0def) == true);
+ assert((abc0def < std::basic_string<CharT, Traits>(abc)) == false);
+ }
+
+ return true;
}
-int main(int, char**)
-{
- test<std::string_view>();
+int main(int, char**) {
+ test<std::string_view>();
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- test<std::wstring_view>();
+ test<std::wstring_view>();
#endif
#if TEST_STD_VER >= 11
- test<std::u16string_view>();
- test<std::u32string_view>();
+ test<std::u16string_view>();
+ test<std::u32string_view>();
#endif
#if TEST_STD_VER > 14
- static_assert(test<std::string_view>(), "");
-#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- static_assert(test<std::wstring_view>(), "");
-#endif
- static_assert(test<std::u16string_view>(), "");
- static_assert(test<std::u32string_view>(), "");
+ static_assert(test<std::string_view>(), "");
+# ifndef TEST_HAS_NO_WIDE_CHARACTERS
+ static_assert(test<std::wstring_view>(), "");
+# endif
+ static_assert(test<std::u16string_view>(), "");
+ static_assert(test<std::u32string_view>(), "");
#endif
#if TEST_STD_VER > 11
- test<std::basic_string_view<char, constexpr_char_traits<char>>>();
- static_assert(test<std::basic_string_view<char, constexpr_char_traits<char>>>(), "");
+ test<std::basic_string_view<char, constexpr_char_traits<char>>>();
+ static_assert(test<std::basic_string_view<char, constexpr_char_traits<char>>>(), "");
#endif
#if TEST_STD_VER > 17
- test<std::u8string_view>();
- static_assert(test<std::u8string_view>());
+ test<std::u8string_view>();
+ static_assert(test<std::u8string_view>());
#endif
- return 0;
+ return 0;
}
diff --git a/libcxx/test/std/strings/string.view/string.view.comparison/less_equal.pass.cpp b/libcxx/test/std/strings/string.view/string.view.comparison/less_equal.pass.cpp
index 4e3910c0c25c33f..3192db0dc7d7d26 100644
--- a/libcxx/test/std/strings/string.view/string.view.comparison/less_equal.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.comparison/less_equal.pass.cpp
@@ -22,95 +22,91 @@
#include "constexpr_char_traits.h"
#include "make_string.h"
-template<class T>
+template <class T>
struct ConvertibleTo {
- T t_;
- TEST_CONSTEXPR explicit ConvertibleTo(T t) : t_(t) {}
- TEST_CONSTEXPR operator T() const {
- return t_;
- }
+ T t_;
+ TEST_CONSTEXPR explicit ConvertibleTo(T t) : t_(t) {}
+ TEST_CONSTEXPR operator T() const { return t_; }
};
-template<class SV>
-TEST_CONSTEXPR_CXX14 bool test()
-{
- typedef typename SV::value_type CharT;
- typedef typename SV::traits_type Traits;
-
- // Test the behavior of the operator, both with and without implicit conversions.
- SV v[] = {
- SV(MAKE_CSTRING(CharT, "")),
- SV(MAKE_CSTRING(CharT, "abc")),
- SV(MAKE_CSTRING(CharT, "abcdef")),
- SV(MAKE_CSTRING(CharT, "acb")),
- };
- for (int i = 0; i < 4; ++i) {
- for (int j = 0; j < 4; ++j) {
- // See http://eel.is/c++draft/string.view#tab:string.view.comparison.overloads
- bool expected = (i <= j);
- assert((v[i] <= v[j]) == expected);
- assert((v[i].data() <= v[j]) == expected);
- assert((v[i] <= v[j].data()) == expected);
- assert((ConvertibleTo<SV>(v[i]) <= v[j]) == expected);
- assert((v[i] <= ConvertibleTo<SV>(v[j])) == expected);
-
- if (!TEST_IS_CONSTANT_EVALUATED || TEST_STD_VER >= 20) {
- assert((std::basic_string<CharT, Traits>(v[i]) <= v[j]) == expected);
- assert((v[i] <= std::basic_string<CharT, Traits>(v[j])) == expected);
- }
- }
- }
-
- // Test its behavior with embedded null bytes.
- SV abc = SV(MAKE_CSTRING(CharT, "abc"));
- SV abc0def = SV(MAKE_CSTRING(CharT, "abc\0def"), 7);
- SV abcdef = SV(MAKE_CSTRING(CharT, "abcdef"));
- assert((abc <= abc0def) == true);
- assert((abc <= abcdef) == true);
- assert((abc0def <= abc) == false);
- assert((abc0def <= abcdef) == true);
- assert((abcdef <= abc) == false);
- assert((abcdef <= abc0def) == false);
-
- assert((abc.data() <= abc0def) == true);
- assert((abc0def <= abc.data()) == false);
-
- if (!TEST_IS_CONSTANT_EVALUATED || TEST_STD_VER >= 20) {
- assert((std::basic_string<CharT, Traits>(abc) <= abc0def) == true);
- assert((abc0def <= std::basic_string<CharT, Traits>(abc)) == false);
+template <class SV>
+TEST_CONSTEXPR_CXX14 bool test() {
+ typedef typename SV::value_type CharT;
+ typedef typename SV::traits_type Traits;
+
+ // Test the behavior of the operator, both with and without implicit conversions.
+ SV v[] = {
+ SV(MAKE_CSTRING(CharT, "")),
+ SV(MAKE_CSTRING(CharT, "abc")),
+ SV(MAKE_CSTRING(CharT, "abcdef")),
+ SV(MAKE_CSTRING(CharT, "acb")),
+ };
+ for (int i = 0; i < 4; ++i) {
+ for (int j = 0; j < 4; ++j) {
+ // See http://eel.is/c++draft/string.view#tab:string.view.comparison.overloads
+ bool expected = (i <= j);
+ assert((v[i] <= v[j]) == expected);
+ assert((v[i].data() <= v[j]) == expected);
+ assert((v[i] <= v[j].data()) == expected);
+ assert((ConvertibleTo<SV>(v[i]) <= v[j]) == expected);
+ assert((v[i] <= ConvertibleTo<SV>(v[j])) == expected);
+
+ if (!TEST_IS_CONSTANT_EVALUATED || TEST_STD_VER >= 20) {
+ assert((std::basic_string<CharT, Traits>(v[i]) <= v[j]) == expected);
+ assert((v[i] <= std::basic_string<CharT, Traits>(v[j])) == expected);
+ }
}
-
- return true;
+ }
+
+ // Test its behavior with embedded null bytes.
+ SV abc = SV(MAKE_CSTRING(CharT, "abc"));
+ SV abc0def = SV(MAKE_CSTRING(CharT, "abc\0def"), 7);
+ SV abcdef = SV(MAKE_CSTRING(CharT, "abcdef"));
+ assert((abc <= abc0def) == true);
+ assert((abc <= abcdef) == true);
+ assert((abc0def <= abc) == false);
+ assert((abc0def <= abcdef) == true);
+ assert((abcdef <= abc) == false);
+ assert((abcdef <= abc0def) == false);
+
+ assert((abc.data() <= abc0def) == true);
+ assert((abc0def <= abc.data()) == false);
+
+ if (!TEST_IS_CONSTANT_EVALUATED || TEST_STD_VER >= 20) {
+ assert((std::basic_string<CharT, Traits>(abc) <= abc0def) == true);
+ assert((abc0def <= std::basic_string<CharT, Traits>(abc)) == false);
+ }
+
+ return true;
}
-int main(int, char**)
-{
- test<std::string_view>();
+int main(int, char**) {
+ test<std::string_view>();
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- test<std::wstring_view>();
+ test<std::wstring_view>();
#endif
#if TEST_STD_VER >= 11
- test<std::u16string_view>();
- test<std::u32string_view>();
+ test<std::u16string_view>();
+ test<std::u32string_view>();
#endif
#if TEST_STD_VER > 14
- static_assert(test<std::string_view>(), "");
-#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- static_assert(test<std::wstring_view>(), "");
-#endif
- static_assert(test<std::u16string_view>(), "");
- static_assert(test<std::u32string_view>(), "");
+ static_assert(test<std::string_view>(), "");
+# ifndef TEST_HAS_NO_WIDE_CHARACTERS
+ static_assert(test<std::wstring_view>(), "");
+# endif
+ static_assert(test<std::u16string_view>(), "");
+ static_assert(test<std::u32string_view>(), "");
#endif
#if TEST_STD_VER > 11
- test<std::basic_string_view<char, constexpr_char_traits<char>>>();
- static_assert(test<std::basic_string_view<char, constexpr_char_traits<char>>>(), "");
+ test<std::basic_string_view<char, constexpr_char_traits<char>>>();
+ static_assert(test<std::basic_string_view<char, constexpr_char_traits<char>>>(), "");
#endif
#if TEST_STD_VER > 17
- test<std::u8string_view>();
- static_assert(test<std::u8string_view>());
+ test<std::u8string_view>();
+ static_assert(test<std::u8string_view>());
#endif
- return 0;
+ return 0;
}
diff --git a/libcxx/test/std/strings/string.view/string.view.comparison/not_equal.pass.cpp b/libcxx/test/std/strings/string.view/string.view.comparison/not_equal.pass.cpp
index 867834e49319917..0082a5683933134 100644
--- a/libcxx/test/std/strings/string.view/string.view.comparison/not_equal.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.comparison/not_equal.pass.cpp
@@ -22,95 +22,91 @@
#include "constexpr_char_traits.h"
#include "make_string.h"
-template<class T>
+template <class T>
struct ConvertibleTo {
- T t_;
- TEST_CONSTEXPR explicit ConvertibleTo(T t) : t_(t) {}
- TEST_CONSTEXPR operator T() const {
- return t_;
- }
+ T t_;
+ TEST_CONSTEXPR explicit ConvertibleTo(T t) : t_(t) {}
+ TEST_CONSTEXPR operator T() const { return t_; }
};
-template<class SV>
-TEST_CONSTEXPR_CXX14 bool test()
-{
- typedef typename SV::value_type CharT;
- typedef typename SV::traits_type Traits;
-
- // Test the behavior of the operator, both with and without implicit conversions.
- SV v[] = {
- SV(MAKE_CSTRING(CharT, "")),
- SV(MAKE_CSTRING(CharT, "abc")),
- SV(MAKE_CSTRING(CharT, "abcdef")),
- SV(MAKE_CSTRING(CharT, "acb")),
- };
- for (int i = 0; i < 4; ++i) {
- for (int j = 0; j < 4; ++j) {
- // See http://eel.is/c++draft/string.view#tab:string.view.comparison.overloads
- bool expected = (i != j);
- assert((v[i] != v[j]) == expected);
- assert((v[i].data() != v[j]) == expected);
- assert((v[i] != v[j].data()) == expected);
- assert((ConvertibleTo<SV>(v[i]) != v[j]) == expected);
- assert((v[i] != ConvertibleTo<SV>(v[j])) == expected);
-
- if (!TEST_IS_CONSTANT_EVALUATED || TEST_STD_VER >= 20) {
- assert((std::basic_string<CharT, Traits>(v[i]) != v[j]) == expected);
- assert((v[i] != std::basic_string<CharT, Traits>(v[j])) == expected);
- }
- }
- }
-
- // Test its behavior with embedded null bytes.
- SV abc = SV(MAKE_CSTRING(CharT, "abc"));
- SV abc0def = SV(MAKE_CSTRING(CharT, "abc\0def"), 7);
- SV abcdef = SV(MAKE_CSTRING(CharT, "abcdef"));
- assert((abc != abc0def) == true);
- assert((abc != abcdef) == true);
- assert((abc0def != abc) == true);
- assert((abc0def != abcdef) == true);
- assert((abcdef != abc) == true);
- assert((abcdef != abc0def) == true);
-
- assert((abc.data() != abc0def) == true);
- assert((abc0def != abc.data()) == true);
-
- if (!TEST_IS_CONSTANT_EVALUATED || TEST_STD_VER >= 20) {
- assert((std::basic_string<CharT, Traits>(abc) != abc0def) == true);
- assert((abc0def != std::basic_string<CharT, Traits>(abc)) == true);
+template <class SV>
+TEST_CONSTEXPR_CXX14 bool test() {
+ typedef typename SV::value_type CharT;
+ typedef typename SV::traits_type Traits;
+
+ // Test the behavior of the operator, both with and without implicit conversions.
+ SV v[] = {
+ SV(MAKE_CSTRING(CharT, "")),
+ SV(MAKE_CSTRING(CharT, "abc")),
+ SV(MAKE_CSTRING(CharT, "abcdef")),
+ SV(MAKE_CSTRING(CharT, "acb")),
+ };
+ for (int i = 0; i < 4; ++i) {
+ for (int j = 0; j < 4; ++j) {
+ // See http://eel.is/c++draft/string.view#tab:string.view.comparison.overloads
+ bool expected = (i != j);
+ assert((v[i] != v[j]) == expected);
+ assert((v[i].data() != v[j]) == expected);
+ assert((v[i] != v[j].data()) == expected);
+ assert((ConvertibleTo<SV>(v[i]) != v[j]) == expected);
+ assert((v[i] != ConvertibleTo<SV>(v[j])) == expected);
+
+ if (!TEST_IS_CONSTANT_EVALUATED || TEST_STD_VER >= 20) {
+ assert((std::basic_string<CharT, Traits>(v[i]) != v[j]) == expected);
+ assert((v[i] != std::basic_string<CharT, Traits>(v[j])) == expected);
+ }
}
-
- return true;
+ }
+
+ // Test its behavior with embedded null bytes.
+ SV abc = SV(MAKE_CSTRING(CharT, "abc"));
+ SV abc0def = SV(MAKE_CSTRING(CharT, "abc\0def"), 7);
+ SV abcdef = SV(MAKE_CSTRING(CharT, "abcdef"));
+ assert((abc != abc0def) == true);
+ assert((abc != abcdef) == true);
+ assert((abc0def != abc) == true);
+ assert((abc0def != abcdef) == true);
+ assert((abcdef != abc) == true);
+ assert((abcdef != abc0def) == true);
+
+ assert((abc.data() != abc0def) == true);
+ assert((abc0def != abc.data()) == true);
+
+ if (!TEST_IS_CONSTANT_EVALUATED || TEST_STD_VER >= 20) {
+ assert((std::basic_string<CharT, Traits>(abc) != abc0def) == true);
+ assert((abc0def != std::basic_string<CharT, Traits>(abc)) == true);
+ }
+
+ return true;
}
-int main(int, char**)
-{
- test<std::string_view>();
+int main(int, char**) {
+ test<std::string_view>();
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- test<std::wstring_view>();
+ test<std::wstring_view>();
#endif
#if TEST_STD_VER >= 11
- test<std::u16string_view>();
- test<std::u32string_view>();
+ test<std::u16string_view>();
+ test<std::u32string_view>();
#endif
#if TEST_STD_VER > 14
- static_assert(test<std::string_view>(), "");
-#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- static_assert(test<std::wstring_view>(), "");
-#endif
- static_assert(test<std::u16string_view>(), "");
- static_assert(test<std::u32string_view>(), "");
+ static_assert(test<std::string_view>(), "");
+# ifndef TEST_HAS_NO_WIDE_CHARACTERS
+ static_assert(test<std::wstring_view>(), "");
+# endif
+ static_assert(test<std::u16string_view>(), "");
+ static_assert(test<std::u32string_view>(), "");
#endif
#if TEST_STD_VER > 11
- test<std::basic_string_view<char, constexpr_char_traits<char>>>();
- static_assert(test<std::basic_string_view<char, constexpr_char_traits<char>>>(), "");
+ test<std::basic_string_view<char, constexpr_char_traits<char>>>();
+ static_assert(test<std::basic_string_view<char, constexpr_char_traits<char>>>(), "");
#endif
#if TEST_STD_VER > 17
- test<std::u8string_view>();
- static_assert(test<std::u8string_view>());
+ test<std::u8string_view>();
+ static_assert(test<std::u8string_view>());
#endif
- return 0;
+ return 0;
}
diff --git a/libcxx/test/std/strings/string.view/string.view.cons/assign.pass.cpp b/libcxx/test/std/strings/string.view/string.view.cons/assign.pass.cpp
index 735ece200d2d8de..1342985bbe7d207 100644
--- a/libcxx/test/std/strings/string.view/string.view.cons/assign.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.cons/assign.pass.cpp
@@ -17,43 +17,42 @@
#include "test_macros.h"
-template<typename T>
+template <typename T>
#if TEST_STD_VER > 11
constexpr
#endif
-bool test (T sv0)
- {
- T sv1;
- sv1 = sv0;
-// We can't just say "sv0 == sv1" here because string_view::compare
-// isn't constexpr until C++17, and we want to support back to C++14
- return sv0.size() == sv1.size() && sv0.data() == sv1.data();
- }
+ bool
+ test(T sv0) {
+ T sv1;
+ sv1 = sv0;
+ // We can't just say "sv0 == sv1" here because string_view::compare
+ // isn't constexpr until C++17, and we want to support back to C++14
+ return sv0.size() == sv1.size() && sv0.data() == sv1.data();
+}
int main(int, char**) {
-
- assert( test<std::string_view> ( "1234"));
+ assert(test<std::string_view>("1234"));
#ifndef TEST_HAS_NO_CHAR8_T
- assert( test<std::u8string_view> (u8"1234"));
+ assert(test<std::u8string_view>(u8"1234"));
#endif
#if TEST_STD_VER >= 11
- assert( test<std::u16string_view> ( u"1234"));
- assert( test<std::u32string_view> ( U"1234"));
+ assert(test<std::u16string_view>(u"1234"));
+ assert(test<std::u32string_view>(U"1234"));
#endif
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- assert( test<std::wstring_view> ( L"1234"));
+ assert(test<std::wstring_view>(L"1234"));
#endif
#if TEST_STD_VER > 11
- static_assert( test<std::string_view> ({ "abc", 3}), "");
+ static_assert(test<std::string_view>({"abc", 3}), "");
# ifndef TEST_HAS_NO_CHAR8_T
- static_assert( test<std::u8string_view> ({u8"abc", 3}), "");
-# endif
- static_assert( test<std::u16string_view> ({ u"abc", 3}), "");
- static_assert( test<std::u32string_view> ({ U"abc", 3}), "");
-# ifndef TEST_HAS_NO_WIDE_CHARACTERS
- static_assert( test<std::wstring_view> ({ L"abc", 3}), "");
-# endif
+ static_assert(test<std::u8string_view>({u8"abc", 3}), "");
+# endif
+ static_assert(test<std::u16string_view>({u"abc", 3}), "");
+ static_assert(test<std::u32string_view>({U"abc", 3}), "");
+# ifndef TEST_HAS_NO_WIDE_CHARACTERS
+ static_assert(test<std::wstring_view>({L"abc", 3}), "");
+# endif
#endif
return 0;
diff --git a/libcxx/test/std/strings/string.view/string.view.cons/default.pass.cpp b/libcxx/test/std/strings/string.view/string.view.cons/default.pass.cpp
index aeb473121318118..7f32553aa48e0bf 100644
--- a/libcxx/test/std/strings/string.view/string.view.cons/default.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.cons/default.pass.cpp
@@ -17,34 +17,34 @@
#include "test_macros.h"
-template<typename T>
-void test () {
+template <typename T>
+void test() {
#if TEST_STD_VER > 11
- {
+ {
ASSERT_NOEXCEPT(T());
constexpr T sv1;
- static_assert ( sv1.size() == 0, "" );
- static_assert ( sv1.empty(), "");
- }
+ static_assert(sv1.size() == 0, "");
+ static_assert(sv1.empty(), "");
+ }
#endif
- {
+ {
T sv1;
- assert ( sv1.size() == 0 );
- assert ( sv1.empty());
- }
+ assert(sv1.size() == 0);
+ assert(sv1.empty());
+ }
}
int main(int, char**) {
- test<std::string_view> ();
- test<std::u16string_view> ();
+ test<std::string_view>();
+ test<std::u16string_view>();
#ifndef TEST_HAS_NO_CHAR8_T
- test<std::u8string_view> ();
+ test<std::u8string_view>();
#endif
- test<std::u32string_view> ();
+ test<std::u32string_view>();
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- test<std::wstring_view> ();
+ test<std::wstring_view>();
#endif
return 0;
diff --git a/libcxx/test/std/strings/string.view/string.view.cons/from_iterator_sentinel.pass.cpp b/libcxx/test/std/strings/string.view/string.view.cons/from_iterator_sentinel.pass.cpp
index c1033631e373c77..f6f407b7876fcb5 100644
--- a/libcxx/test/std/strings/string.view/string.view.cons/from_iterator_sentinel.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.cons/from_iterator_sentinel.pass.cpp
@@ -19,14 +19,14 @@
#include "make_string.h"
#include "test_iterators.h"
-template<class It, class Sentinel, class CharT>
+template <class It, class Sentinel, class CharT>
constexpr void test_construction(std::basic_string_view<CharT> val) {
auto sv = std::basic_string_view<CharT>(It(val.data()), Sentinel(It(val.data() + val.size())));
assert(sv.data() == val.data());
assert(sv.size() == val.size());
}
-template<class CharT>
+template <class CharT>
constexpr void test_with_char() {
const auto val = MAKE_STRING_VIEW(CharT, "test");
test_construction<CharT*, CharT*>(val);
@@ -50,7 +50,7 @@ constexpr bool test() {
}
#ifndef TEST_HAS_NO_EXCEPTIONS
-template<class CharT>
+template <class CharT>
struct ThrowingSentinel {
friend bool operator==(const CharT*, ThrowingSentinel) noexcept { return true; }
friend std::iter_
diff erence_t<const CharT*> operator-(const CharT*, ThrowingSentinel) noexcept { return {}; }
@@ -70,21 +70,23 @@ void test_throwing() {
void test_throwing() {
test_throwing<char>();
-#ifndef TEST_HAS_NO_WIDE_CHARACTERS
+# ifndef TEST_HAS_NO_WIDE_CHARACTERS
test_throwing<wchar_t>();
-#endif
+# endif
test_throwing<char8_t>();
test_throwing<char16_t>();
test_throwing<char32_t>();
}
#endif
-static_assert( std::is_constructible_v<std::string_view, const char*, char*>);
-static_assert( std::is_constructible_v<std::string_view, char*, const char*>);
+static_assert(std::is_constructible_v<std::string_view, const char*, char*>);
+static_assert(std::is_constructible_v<std::string_view, char*, const char*>);
static_assert(!std::is_constructible_v<std::string_view, char*, void*>); // not a sentinel
static_assert(!std::is_constructible_v<std::string_view, signed char*, signed char*>); // wrong char type
-static_assert(!std::is_constructible_v<std::string_view, random_access_iterator<char*>, random_access_iterator<char*>>); // not contiguous
-static_assert( std::is_constructible_v<std::string_view, contiguous_iterator<char*>, contiguous_iterator<char*>>);
+static_assert(!std::is_constructible_v<std::string_view,
+ random_access_iterator<char*>,
+ random_access_iterator<char*>>); // not contiguous
+static_assert(std::is_constructible_v<std::string_view, contiguous_iterator<char*>, contiguous_iterator<char*>>);
int main(int, char**) {
test();
diff --git a/libcxx/test/std/strings/string.view/string.view.cons/from_literal.pass.cpp b/libcxx/test/std/strings/string.view/string.view.cons/from_literal.pass.cpp
index 2f1e478d088cb34..d48c2f9dc728d24 100644
--- a/libcxx/test/std/strings/string.view/string.view.cons/from_literal.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.cons/from_literal.pass.cpp
@@ -20,52 +20,53 @@
#include "test_macros.h"
#include "constexpr_char_traits.h"
-template<typename CharT>
-size_t StrLen ( const CharT *s ) {
- std::size_t retVal = 0;
- while ( *s != 0 ) { ++retVal; ++s; }
- return retVal;
- }
-
-template<typename CharT>
-void test ( const CharT *s ) {
- typedef std::basic_string_view<CharT> SV;
-// I'd love to do this, but it would require traits::length() to be noexcept
-// LIBCPP_ASSERT_NOEXCEPT(SV(s));
+template <typename CharT>
+size_t StrLen(const CharT* s) {
+ std::size_t retVal = 0;
+ while (*s != 0) {
+ ++retVal;
+ ++s;
+ }
+ return retVal;
+}
- SV sv1 ( s );
- assert ( sv1.size() == StrLen( s ));
- assert ( sv1.data() == s );
- }
+template <typename CharT>
+void test(const CharT* s) {
+ typedef std::basic_string_view<CharT> SV;
+ // I'd love to do this, but it would require traits::length() to be noexcept
+ // LIBCPP_ASSERT_NOEXCEPT(SV(s));
+ SV sv1(s);
+ assert(sv1.size() == StrLen(s));
+ assert(sv1.data() == s);
+}
int main(int, char**) {
-
- test ( "QBCDE" );
- test ( "A" );
- test ( "" );
+ test("QBCDE");
+ test("A");
+ test("");
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- test ( L"QBCDE" );
- test ( L"A" );
- test ( L"" );
+ test(L"QBCDE");
+ test(L"A");
+ test(L"");
#endif
#if TEST_STD_VER >= 11
- test ( u"QBCDE" );
- test ( u"A" );
- test ( u"" );
+ test(u"QBCDE");
+ test(u"A");
+ test(u"");
- test ( U"QBCDE" );
- test ( U"A" );
- test ( U"" );
+ test(U"QBCDE");
+ test(U"A");
+ test(U"");
#endif
#if TEST_STD_VER > 11
- {
- constexpr std::basic_string_view<char, constexpr_char_traits<char>> sv1 ( "ABCDE" );
- static_assert ( sv1.size() == 5, "");
- }
+ {
+ constexpr std::basic_string_view<char, constexpr_char_traits<char>> sv1("ABCDE");
+ static_assert(sv1.size() == 5, "");
+ }
#endif
return 0;
diff --git a/libcxx/test/std/strings/string.view/string.view.cons/from_ptr_len.pass.cpp b/libcxx/test/std/strings/string.view/string.view.cons/from_ptr_len.pass.cpp
index 8ff6061b48ecc7d..e59e2b2da067743 100644
--- a/libcxx/test/std/strings/string.view/string.view.cons/from_ptr_len.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.cons/from_ptr_len.pass.cpp
@@ -19,70 +19,69 @@
#include "test_macros.h"
-template<typename CharT>
-void test ( const CharT *s, std::size_t sz ) {
- {
+template <typename CharT>
+void test(const CharT* s, std::size_t sz) {
+ {
typedef std::basic_string_view<CharT> SV;
LIBCPP_ASSERT_NOEXCEPT(SV(s, sz));
- SV sv1 ( s, sz );
- assert ( sv1.size() == sz );
- assert ( sv1.data() == s );
- }
+ SV sv1(s, sz);
+ assert(sv1.size() == sz);
+ assert(sv1.data() == s);
+ }
}
int main(int, char**) {
-
- test ( "QBCDE", 5 );
- test ( "QBCDE", 2 );
- test ( "", 0 );
+ test("QBCDE", 5);
+ test("QBCDE", 2);
+ test("", 0);
#if TEST_STD_VER > 11
- {
- constexpr const char *s = "QBCDE";
- constexpr std::basic_string_view<char> sv1 ( s, 2 );
- static_assert ( sv1.size() == 2, "" );
- static_assert ( sv1.data() == s, "" );
- }
+ {
+ constexpr const char* s = "QBCDE";
+ constexpr std::basic_string_view<char> sv1(s, 2);
+ static_assert(sv1.size() == 2, "");
+ static_assert(sv1.data() == s, "");
+ }
#endif
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- test ( L"QBCDE", 5 );
- test ( L"QBCDE", 2 );
- test ( L"", 0 );
-#if TEST_STD_VER > 11
- {
- constexpr const wchar_t *s = L"QBCDE";
- constexpr std::basic_string_view<wchar_t> sv1 ( s, 2 );
- static_assert ( sv1.size() == 2, "" );
- static_assert ( sv1.data() == s, "" );
- }
-#endif
+ test(L"QBCDE", 5);
+ test(L"QBCDE", 2);
+ test(L"", 0);
+# if TEST_STD_VER > 11
+ {
+ constexpr const wchar_t* s = L"QBCDE";
+ constexpr std::basic_string_view<wchar_t> sv1(s, 2);
+ static_assert(sv1.size() == 2, "");
+ static_assert(sv1.data() == s, "");
+ }
+# endif
#endif // TEST_HAS_NO_WIDE_CHARACTERS
#if TEST_STD_VER >= 11
- test ( u"QBCDE", 5 );
- test ( u"QBCDE", 2 );
- test ( u"", 0 );
-#if TEST_STD_VER > 11
- {
- constexpr const char16_t *s = u"QBCDE";
- constexpr std::basic_string_view<char16_t> sv1 ( s, 2 );
- static_assert ( sv1.size() == 2, "" );
- static_assert ( sv1.data() == s, "" );
- }
-#endif
+ test(u"QBCDE", 5);
+ test(u"QBCDE", 2);
+ test(u"", 0);
+# if TEST_STD_VER > 11
+ {
+ constexpr const char16_t* s = u"QBCDE";
+ constexpr std::basic_string_view<char16_t> sv1(s, 2);
+ static_assert(sv1.size() == 2, "");
+ static_assert(sv1.data() == s, "");
+ }
+# endif
- test ( U"QBCDE", 5 );
- test ( U"QBCDE", 2 );
- test ( U"", 0 );
-#if TEST_STD_VER > 11
- {
- constexpr const char32_t *s = U"QBCDE";
- constexpr std::basic_string_view<char32_t> sv1 ( s, 2 );
- static_assert ( sv1.size() == 2, "" );
- static_assert ( sv1.data() == s, "" );
- }
-#endif
+ test(U"QBCDE", 5);
+ test(U"QBCDE", 2);
+ test(U"", 0);
+# if TEST_STD_VER > 11
+ {
+ constexpr const char32_t* s = U"QBCDE";
+ constexpr std::basic_string_view<char32_t> sv1(s, 2);
+ static_assert(sv1.size() == 2, "");
+ static_assert(sv1.data() == s, "");
+ }
+# endif
#endif
return 0;
diff --git a/libcxx/test/std/strings/string.view/string.view.cons/from_range.pass.cpp b/libcxx/test/std/strings/string.view/string.view.cons/from_range.pass.cpp
index bf24d53aba890ce..742d40d15bbd87e 100644
--- a/libcxx/test/std/strings/string.view/string.view.cons/from_range.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.cons/from_range.pass.cpp
@@ -24,11 +24,11 @@
#include "test_iterators.h"
#include "test_range.h"
-template<class CharT>
+template <class CharT>
constexpr void test() {
auto data = MAKE_STRING_VIEW(CharT, "test");
std::array<CharT, 4> arr;
- for(int i = 0; i < 4; ++i) {
+ for (int i = 0; i < 4; ++i) {
arr[i] = data[i];
}
auto sv = std::basic_string_view<CharT>(arr);
@@ -128,7 +128,10 @@ static_assert(!std::ranges::contiguous_range<SizedButNotContiguousRange>);
static_assert(std::ranges::sized_range<SizedButNotContiguousRange>);
static_assert(!std::is_constructible_v<std::string_view, SizedButNotContiguousRange>);
-using ContiguousButNotSizedRange = std::ranges::subrange<contiguous_iterator<char*>, sentinel_wrapper<contiguous_iterator<char*>>, std::ranges::subrange_kind::unsized>;
+using ContiguousButNotSizedRange =
+ std::ranges::subrange<contiguous_iterator<char*>,
+ sentinel_wrapper<contiguous_iterator<char*>>,
+ std::ranges::subrange_kind::unsized>;
static_assert(std::ranges::contiguous_range<ContiguousButNotSizedRange>);
static_assert(!std::ranges::sized_range<ContiguousButNotSizedRange>);
static_assert(!std::is_constructible_v<std::string_view, ContiguousButNotSizedRange>);
@@ -141,7 +144,7 @@ struct WithStringViewConversionOperator {
operator std::string_view() const { return {}; }
};
-static_assert(std::is_constructible_v<std::string_view, WithStringViewConversionOperator>); // lvalue
+static_assert(std::is_constructible_v<std::string_view, WithStringViewConversionOperator>); // lvalue
static_assert(std::is_constructible_v<std::string_view, const WithStringViewConversionOperator&>); // const lvalue
static_assert(std::is_constructible_v<std::string_view, WithStringViewConversionOperator&&>); // rvalue
@@ -150,11 +153,14 @@ void test_throwing() {
struct ThrowingData {
char* begin() const { return nullptr; }
char* end() const { return nullptr; }
- char* data() const { throw 42; return nullptr; }
+ char* data() const {
+ throw 42;
+ return nullptr;
+ }
};
try {
ThrowingData x;
- (void) std::string_view(x);
+ (void)std::string_view(x);
assert(false);
} catch (int i) {
assert(i == 42);
@@ -163,11 +169,14 @@ void test_throwing() {
struct ThrowingSize {
char* begin() const { return nullptr; }
char* end() const { return nullptr; }
- std::size_t size() const { throw 42; return 0; }
+ std::size_t size() const {
+ throw 42;
+ return 0;
+ }
};
try {
ThrowingSize x;
- (void) std::string_view(x);
+ (void)std::string_view(x);
assert(false);
} catch (int i) {
assert(i == 42);
@@ -186,4 +195,3 @@ int main(int, char**) {
return 0;
}
-
diff --git a/libcxx/test/std/strings/string.view/string.view.cons/from_string.pass.cpp b/libcxx/test/std/strings/string.view/string.view.cons/from_string.pass.cpp
index b30a8a9019b9a75..5b4cb20436381ca 100644
--- a/libcxx/test/std/strings/string.view/string.view.cons/from_string.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.cons/from_string.pass.cpp
@@ -21,48 +21,46 @@
struct dummy_char_traits : public std::char_traits<char> {};
-template<typename CharT, typename Traits>
-void test ( const std::basic_string<CharT, Traits> &str ) {
- typedef std::basic_string_view<CharT, Traits> SV;
- ASSERT_NOEXCEPT(SV(str));
-
- SV sv1 ( str );
- assert ( sv1.size() == str.size());
- assert ( sv1.data() == str.data());
+template <typename CharT, typename Traits>
+void test(const std::basic_string<CharT, Traits>& str) {
+ typedef std::basic_string_view<CharT, Traits> SV;
+ ASSERT_NOEXCEPT(SV(str));
+
+ SV sv1(str);
+ assert(sv1.size() == str.size());
+ assert(sv1.data() == str.data());
}
int main(int, char**) {
-
- test ( std::string("QBCDE") );
- test ( std::string("") );
- test ( std::string() );
+ test(std::string("QBCDE"));
+ test(std::string(""));
+ test(std::string());
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- test ( std::wstring(L"QBCDE") );
- test ( std::wstring(L"") );
- test ( std::wstring() );
+ test(std::wstring(L"QBCDE"));
+ test(std::wstring(L""));
+ test(std::wstring());
#endif
#ifndef TEST_HAS_NO_CHAR8_T
- test ( std::u8string{u8"QBCDE"} );
- test ( std::u8string{u8""} );
- test ( std::u8string{} );
+ test(std::u8string{u8"QBCDE"});
+ test(std::u8string{u8""});
+ test(std::u8string{});
#endif
#if TEST_STD_VER >= 11
- test ( std::u16string{u"QBCDE"} );
- test ( std::u16string{u""} );
- test ( std::u16string{} );
+ test(std::u16string{u"QBCDE"});
+ test(std::u16string{u""});
+ test(std::u16string{});
- test ( std::u32string{U"QBCDE"} );
- test ( std::u32string{U""} );
- test ( std::u32string{} );
+ test(std::u32string{U"QBCDE"});
+ test(std::u32string{U""});
+ test(std::u32string{});
#endif
- test ( std::basic_string<char, dummy_char_traits>("QBCDE") );
- test ( std::basic_string<char, dummy_char_traits>("") );
- test ( std::basic_string<char, dummy_char_traits>() );
-
+ test(std::basic_string<char, dummy_char_traits>("QBCDE"));
+ test(std::basic_string<char, dummy_char_traits>(""));
+ test(std::basic_string<char, dummy_char_traits>());
return 0;
}
diff --git a/libcxx/test/std/strings/string.view/string.view.cons/implicit_deduction_guides.pass.cpp b/libcxx/test/std/strings/string.view/string.view.cons/implicit_deduction_guides.pass.cpp
index 35c10da4bb86e55..534b024480febea 100644
--- a/libcxx/test/std/strings/string.view/string.view.cons/implicit_deduction_guides.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.cons/implicit_deduction_guides.pass.cpp
@@ -25,12 +25,11 @@
// (2) basic_string_view(const basic_string_view&)
// (3) basic_string_view(const CharT*, size_type)
// (4) basic_string_view(const CharT*)
-int main(int, char**)
-{
- { // Testing (1)
- // Nothing to do. Cannot deduce without any arguments.
- }
- { // Testing (2)
+int main(int, char**) {
+ {
+ // Testing (1)
+ // Nothing to do. Cannot deduce without any arguments.
+ } { // Testing (2)
const std::string_view sin("abc");
std::basic_string_view s(sin);
ASSERT_SAME_TYPE(decltype(s), std::string_view);
diff --git a/libcxx/test/std/strings/string.view/string.view.deduct/iterator_sentinel.pass.cpp b/libcxx/test/std/strings/string.view/string.view.deduct/iterator_sentinel.pass.cpp
index 6b811f7944340fd..21d881cbcab6058 100644
--- a/libcxx/test/std/strings/string.view/string.view.deduct/iterator_sentinel.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.deduct/iterator_sentinel.pass.cpp
@@ -19,7 +19,7 @@
#include "test_macros.h"
#include "test_iterators.h"
-template<class It, class Sentinel, class CharT>
+template <class It, class Sentinel, class CharT>
constexpr void test_ctad(std::basic_string_view<CharT> val) {
auto sv = std::basic_string_view(It(val.data()), Sentinel(It(val.data() + val.size())));
ASSERT_SAME_TYPE(decltype(sv), std::basic_string_view<CharT>);
@@ -27,7 +27,7 @@ constexpr void test_ctad(std::basic_string_view<CharT> val) {
assert(sv.size() == val.size());
}
-template<class CharT>
+template <class CharT>
constexpr void test_with_char() {
const auto val = MAKE_STRING_VIEW(CharT, "test");
test_ctad<CharT*, CharT*>(val);
diff --git a/libcxx/test/std/strings/string.view/string.view.deduct/range.pass.cpp b/libcxx/test/std/strings/string.view/string.view.deduct/range.pass.cpp
index 3284201e0c121d6..8bf88c70417fe14 100644
--- a/libcxx/test/std/strings/string.view/string.view.deduct/range.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.deduct/range.pass.cpp
@@ -19,10 +19,10 @@
#include "test_iterators.h"
#include "test_macros.h"
-template<class CharT>
+template <class CharT>
void test() {
auto val = MAKE_STRING(CharT, "test");
- auto sv = std::basic_string_view(val);
+ auto sv = std::basic_string_view(val);
ASSERT_SAME_TYPE(decltype(sv), std::basic_string_view<CharT>);
assert(sv.size() == val.size());
assert(sv.data() == val.data());
@@ -39,7 +39,7 @@ void test() {
test<char>();
struct Widget {
- const char16_t *data_ = u"foo";
+ const char16_t* data_ = u"foo";
contiguous_iterator<const char16_t*> begin() const { return contiguous_iterator<const char16_t*>(data_); }
contiguous_iterator<const char16_t*> end() const { return contiguous_iterator<const char16_t*>(data_ + 3); }
};
@@ -52,4 +52,3 @@ int main(int, char**) {
return 0;
}
-
diff --git a/libcxx/test/std/strings/string.view/string.view.find/find_char_size.pass.cpp b/libcxx/test/std/strings/string.view/string.view.find/find_char_size.pass.cpp
index 15f61ab4c318616..879eef336c42578 100644
--- a/libcxx/test/std/strings/string.view/string.view.find/find_char_size.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.find/find_char_size.pass.cpp
@@ -19,28 +19,22 @@
#include "constexpr_char_traits.h"
template <class S>
-void
-test(const S& s, typename S::value_type c, typename S::size_type pos,
- typename S::size_type x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.find(c, pos));
- assert(s.find(c, pos) == x);
- if (x != S::npos)
- assert(pos <= x && x + 1 <= s.size());
+void test(const S& s, typename S::value_type c, typename S::size_type pos, typename S::size_type x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.find(c, pos));
+ assert(s.find(c, pos) == x);
+ if (x != S::npos)
+ assert(pos <= x && x + 1 <= s.size());
}
template <class S>
-void
-test(const S& s, typename S::value_type c, typename S::size_type x)
-{
- assert(s.find(c) == x);
- if (x != S::npos)
- assert(0 <= x && x + 1 <= s.size());
+void test(const S& s, typename S::value_type c, typename S::size_type x) {
+ assert(s.find(c) == x);
+ if (x != S::npos)
+ assert(0 <= x && x + 1 <= s.size());
}
-int main(int, char**)
-{
- {
+int main(int, char**) {
+ {
typedef std::string_view S;
test(S(""), 'c', 0, S::npos);
test(S(""), 'c', 1, S::npos);
@@ -67,22 +61,22 @@ int main(int, char**)
test(S("abcde"), 'c', 2);
test(S("abcdeabcde"), 'c', 2);
test(S("abcdeabcdeabcdeabcde"), 'c', 2);
- }
+ }
#if TEST_STD_VER > 11
- {
+ {
typedef std::basic_string_view<char, constexpr_char_traits<char>> SV;
- constexpr SV sv1;
- constexpr SV sv2 { "abcde", 5 };
+ constexpr SV sv1;
+ constexpr SV sv2{"abcde", 5};
- static_assert (sv1.find( 'c', 0 ) == SV::npos, "" );
- static_assert (sv1.find( 'c', 1 ) == SV::npos, "" );
- static_assert (sv2.find( 'c', 0 ) == 2, "" );
- static_assert (sv2.find( 'c', 1 ) == 2, "" );
- static_assert (sv2.find( 'c', 2 ) == 2, "" );
- static_assert (sv2.find( 'c', 3 ) == SV::npos, "" );
- static_assert (sv2.find( 'c', 4 ) == SV::npos, "" );
- }
+ static_assert(sv1.find('c', 0) == SV::npos, "");
+ static_assert(sv1.find('c', 1) == SV::npos, "");
+ static_assert(sv2.find('c', 0) == 2, "");
+ static_assert(sv2.find('c', 1) == 2, "");
+ static_assert(sv2.find('c', 2) == 2, "");
+ static_assert(sv2.find('c', 3) == SV::npos, "");
+ static_assert(sv2.find('c', 4) == SV::npos, "");
+ }
#endif
return 0;
diff --git a/libcxx/test/std/strings/string.view/string.view.find/find_first_not_of_char_size.pass.cpp b/libcxx/test/std/strings/string.view/string.view.find/find_first_not_of_char_size.pass.cpp
index 10a92713f168195..04336f6c451a720 100644
--- a/libcxx/test/std/strings/string.view/string.view.find/find_first_not_of_char_size.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.find/find_first_not_of_char_size.pass.cpp
@@ -19,29 +19,23 @@
#include "constexpr_char_traits.h"
template <class S>
-void
-test(const S& s, typename S::value_type c, typename S::size_type pos,
- typename S::size_type x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.find_first_not_of(c, pos));
- assert(s.find_first_not_of(c, pos) == x);
- if (x != S::npos)
- assert(pos <= x && x < s.size());
+void test(const S& s, typename S::value_type c, typename S::size_type pos, typename S::size_type x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.find_first_not_of(c, pos));
+ assert(s.find_first_not_of(c, pos) == x);
+ if (x != S::npos)
+ assert(pos <= x && x < s.size());
}
template <class S>
-void
-test(const S& s, typename S::value_type c, typename S::size_type x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.find_first_not_of(c));
- assert(s.find_first_not_of(c) == x);
- if (x != S::npos)
- assert(x < s.size());
+void test(const S& s, typename S::value_type c, typename S::size_type x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.find_first_not_of(c));
+ assert(s.find_first_not_of(c) == x);
+ if (x != S::npos)
+ assert(x < s.size());
}
-int main(int, char**)
-{
- {
+int main(int, char**) {
+ {
typedef std::string_view S;
test(S(""), 'q', 0, S::npos);
test(S(""), 'q', 1, S::npos);
@@ -70,20 +64,20 @@ int main(int, char**)
test(S("csope"), 'q', 0);
test(S("gfsmthlkon"), 'q', 0);
test(S("laenfsbridchgotmkqpj"), 'q', 0);
- }
+ }
#if TEST_STD_VER > 11
- {
+ {
typedef std::basic_string_view<char, constexpr_char_traits<char>> SV;
- constexpr SV sv1;
- constexpr SV sv2 { "abcde", 5 };
+ constexpr SV sv1;
+ constexpr SV sv2{"abcde", 5};
- static_assert (sv1.find_first_not_of( 'q', 0 ) == SV::npos, "" );
- static_assert (sv1.find_first_not_of( 'q', 1 ) == SV::npos, "" );
- static_assert (sv2.find_first_not_of( 'q', 0 ) == 0, "" );
- static_assert (sv2.find_first_not_of( 'q', 1 ) == 1, "" );
- static_assert (sv2.find_first_not_of( 'q', 5 ) == SV::npos, "" );
- }
+ static_assert(sv1.find_first_not_of('q', 0) == SV::npos, "");
+ static_assert(sv1.find_first_not_of('q', 1) == SV::npos, "");
+ static_assert(sv2.find_first_not_of('q', 0) == 0, "");
+ static_assert(sv2.find_first_not_of('q', 1) == 1, "");
+ static_assert(sv2.find_first_not_of('q', 5) == SV::npos, "");
+ }
#endif
return 0;
diff --git a/libcxx/test/std/strings/string.view/string.view.find/find_first_not_of_pointer_size.pass.cpp b/libcxx/test/std/strings/string.view/string.view.find/find_first_not_of_pointer_size.pass.cpp
index 90da2a471e9015b..08c2da64413b65f 100644
--- a/libcxx/test/std/strings/string.view/string.view.find/find_first_not_of_pointer_size.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.find/find_first_not_of_pointer_size.pass.cpp
@@ -19,151 +19,143 @@
#include "constexpr_char_traits.h"
template <class S>
-void
-test(const S& s, const typename S::value_type* str, typename S::size_type pos,
- typename S::size_type x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.find_first_not_of(str, pos));
- assert(s.find_first_not_of(str, pos) == x);
- if (x != S::npos)
- assert(pos <= x && x < s.size());
+void test(const S& s, const typename S::value_type* str, typename S::size_type pos, typename S::size_type x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.find_first_not_of(str, pos));
+ assert(s.find_first_not_of(str, pos) == x);
+ if (x != S::npos)
+ assert(pos <= x && x < s.size());
}
template <class S>
-void
-test(const S& s, const typename S::value_type* str, typename S::size_type x)
-{
- assert(s.find_first_not_of(str) == x);
- if (x != S::npos)
- assert(x < s.size());
+void test(const S& s, const typename S::value_type* str, typename S::size_type x) {
+ assert(s.find_first_not_of(str) == x);
+ if (x != S::npos)
+ assert(x < s.size());
}
template <class S>
-void test0()
-{
- test(S(""), "", 0, S::npos);
- test(S(""), "laenf", 0, S::npos);
- test(S(""), "pqlnkmbdjo", 0, S::npos);
- test(S(""), "qkamfogpnljdcshbreti", 0, S::npos);
- test(S(""), "", 1, S::npos);
- test(S(""), "bjaht", 1, S::npos);
- test(S(""), "hjlcmgpket", 1, S::npos);
- test(S(""), "htaobedqikfplcgjsmrn", 1, S::npos);
- test(S("fodgq"), "", 0, 0);
- test(S("qanej"), "dfkap", 0, 0);
- test(S("clbao"), "ihqrfebgad", 0, 0);
- test(S("mekdn"), "ngtjfcalbseiqrphmkdo", 0, S::npos);
- test(S("srdfq"), "", 1, 1);
- test(S("oemth"), "ikcrq", 1, 1);
- test(S("cdaih"), "dmajblfhsg", 1, 3);
- test(S("qohtk"), "oqftjhdmkgsblacenirp", 1, S::npos);
- test(S("cshmd"), "", 2, 2);
- test(S("lhcdo"), "oebqi", 2, 2);
- test(S("qnsoh"), "kojhpmbsfe", 2, S::npos);
- test(S("pkrof"), "acbsjqogpltdkhinfrem", 2, S::npos);
- test(S("fmtsp"), "", 4, 4);
- test(S("khbpm"), "aobjd", 4, 4);
- test(S("pbsji"), "pcbahntsje", 4, 4);
- test(S("mprdj"), "fhepcrntkoagbmldqijs", 4, S::npos);
- test(S("eqmpa"), "", 5, S::npos);
- test(S("omigs"), "kocgb", 5, S::npos);
- test(S("onmje"), "fbslrjiqkm", 5, S::npos);
- test(S("oqmrj"), "jeidpcmalhfnqbgtrsko", 5, S::npos);
- test(S("schfa"), "", 6, S::npos);
- test(S("igdsc"), "qngpd", 6, S::npos);
- test(S("brqgo"), "rodhqklgmb", 6, S::npos);
- test(S("tnrph"), "thdjgafrlbkoiqcspmne", 6, S::npos);
- test(S("hcjitbfapl"), "", 0, 0);
- test(S("daiprenocl"), "ashjd", 0, 2);
- test(S("litpcfdghe"), "mgojkldsqh", 0, 1);
- test(S("aidjksrolc"), "imqnaghkfrdtlopbjesc", 0, S::npos);
- test(S("qpghtfbaji"), "", 1, 1);
- test(S("gfshlcmdjr"), "nadkh", 1, 1);
- test(S("nkodajteqp"), "ofdrqmkebl", 1, 4);
- test(S("gbmetiprqd"), "bdfjqgatlksriohemnpc", 1, S::npos);
- test(S("crnklpmegd"), "", 5, 5);
- test(S("jsbtafedoc"), "prqgn", 5, 5);
- test(S("qnmodrtkeb"), "pejafmnokr", 5, 6);
- test(S("cpebqsfmnj"), "odnqkgijrhabfmcestlp", 5, S::npos);
- test(S("lmofqdhpki"), "", 9, 9);
- test(S("hnefkqimca"), "rtjpa", 9, S::npos);
- test(S("drtasbgmfp"), "ktsrmnqagd", 9, 9);
- test(S("lsaijeqhtr"), "rtdhgcisbnmoaqkfpjle", 9, S::npos);
- test(S("elgofjmbrq"), "", 10, S::npos);
- test(S("mjqdgalkpc"), "dplqa", 10, S::npos);
- test(S("kthqnfcerm"), "dkacjoptns", 10, S::npos);
- test(S("dfsjhanorc"), "hqfimtrgnbekpdcsjalo", 10, S::npos);
- test(S("eqsgalomhb"), "", 11, S::npos);
- test(S("akiteljmoh"), "lofbc", 11, S::npos);
- test(S("hlbdfreqjo"), "astoegbfpn", 11, S::npos);
- test(S("taqobhlerg"), "pdgreqomsncafklhtibj", 11, S::npos);
- test(S("snafbdlghrjkpqtoceim"), "", 0, 0);
- test(S("aemtbrgcklhndjisfpoq"), "lbtqd", 0, 0);
- test(S("pnracgfkjdiholtbqsem"), "tboimldpjh", 0, 1);
- test(S("dicfltehbsgrmojnpkaq"), "slcerthdaiqjfnobgkpm", 0, S::npos);
- test(S("jlnkraeodhcspfgbqitm"), "", 1, 1);
- test(S("lhosrngtmfjikbqpcade"), "aqibs", 1, 1);
- test(S("rbtaqjhgkneisldpmfoc"), "gtfblmqinc", 1, 3);
- test(S("gpifsqlrdkbonjtmheca"), "mkqpbtdalgniorhfescj", 1, S::npos);
- test(S("hdpkobnsalmcfijregtq"), "", 10, 10);
- test(S("jtlshdgqaiprkbcoenfm"), "pblas", 10, 11);
- test(S("fkdrbqltsgmcoiphneaj"), "arosdhcfme", 10, 13);
- test(S("crsplifgtqedjohnabmk"), "blkhjeogicatqfnpdmsr", 10, S::npos);
- test(S("niptglfbosehkamrdqcj"), "", 19, 19);
- test(S("copqdhstbingamjfkler"), "djkqc", 19, 19);
- test(S("mrtaefilpdsgocnhqbjk"), "lgokshjtpb", 19, S::npos);
- test(S("kojatdhlcmigpbfrqnes"), "bqjhtkfepimcnsgrlado", 19, S::npos);
- test(S("eaintpchlqsbdgrkjofm"), "", 20, S::npos);
- test(S("gjnhidfsepkrtaqbmclo"), "nocfa", 20, S::npos);
- test(S("spocfaktqdbiejlhngmr"), "bgtajmiedc", 20, S::npos);
- test(S("rphmlekgfscndtaobiqj"), "lsckfnqgdahejiopbtmr", 20, S::npos);
- test(S("liatsqdoegkmfcnbhrpj"), "", 21, S::npos);
- test(S("binjagtfldkrspcomqeh"), "gfsrt", 21, S::npos);
- test(S("latkmisecnorjbfhqpdg"), "pfsocbhjtm", 21, S::npos);
- test(S("lecfratdjkhnsmqpoigb"), "tpflmdnoicjgkberhqsa", 21, S::npos);
+void test0() {
+ test(S(""), "", 0, S::npos);
+ test(S(""), "laenf", 0, S::npos);
+ test(S(""), "pqlnkmbdjo", 0, S::npos);
+ test(S(""), "qkamfogpnljdcshbreti", 0, S::npos);
+ test(S(""), "", 1, S::npos);
+ test(S(""), "bjaht", 1, S::npos);
+ test(S(""), "hjlcmgpket", 1, S::npos);
+ test(S(""), "htaobedqikfplcgjsmrn", 1, S::npos);
+ test(S("fodgq"), "", 0, 0);
+ test(S("qanej"), "dfkap", 0, 0);
+ test(S("clbao"), "ihqrfebgad", 0, 0);
+ test(S("mekdn"), "ngtjfcalbseiqrphmkdo", 0, S::npos);
+ test(S("srdfq"), "", 1, 1);
+ test(S("oemth"), "ikcrq", 1, 1);
+ test(S("cdaih"), "dmajblfhsg", 1, 3);
+ test(S("qohtk"), "oqftjhdmkgsblacenirp", 1, S::npos);
+ test(S("cshmd"), "", 2, 2);
+ test(S("lhcdo"), "oebqi", 2, 2);
+ test(S("qnsoh"), "kojhpmbsfe", 2, S::npos);
+ test(S("pkrof"), "acbsjqogpltdkhinfrem", 2, S::npos);
+ test(S("fmtsp"), "", 4, 4);
+ test(S("khbpm"), "aobjd", 4, 4);
+ test(S("pbsji"), "pcbahntsje", 4, 4);
+ test(S("mprdj"), "fhepcrntkoagbmldqijs", 4, S::npos);
+ test(S("eqmpa"), "", 5, S::npos);
+ test(S("omigs"), "kocgb", 5, S::npos);
+ test(S("onmje"), "fbslrjiqkm", 5, S::npos);
+ test(S("oqmrj"), "jeidpcmalhfnqbgtrsko", 5, S::npos);
+ test(S("schfa"), "", 6, S::npos);
+ test(S("igdsc"), "qngpd", 6, S::npos);
+ test(S("brqgo"), "rodhqklgmb", 6, S::npos);
+ test(S("tnrph"), "thdjgafrlbkoiqcspmne", 6, S::npos);
+ test(S("hcjitbfapl"), "", 0, 0);
+ test(S("daiprenocl"), "ashjd", 0, 2);
+ test(S("litpcfdghe"), "mgojkldsqh", 0, 1);
+ test(S("aidjksrolc"), "imqnaghkfrdtlopbjesc", 0, S::npos);
+ test(S("qpghtfbaji"), "", 1, 1);
+ test(S("gfshlcmdjr"), "nadkh", 1, 1);
+ test(S("nkodajteqp"), "ofdrqmkebl", 1, 4);
+ test(S("gbmetiprqd"), "bdfjqgatlksriohemnpc", 1, S::npos);
+ test(S("crnklpmegd"), "", 5, 5);
+ test(S("jsbtafedoc"), "prqgn", 5, 5);
+ test(S("qnmodrtkeb"), "pejafmnokr", 5, 6);
+ test(S("cpebqsfmnj"), "odnqkgijrhabfmcestlp", 5, S::npos);
+ test(S("lmofqdhpki"), "", 9, 9);
+ test(S("hnefkqimca"), "rtjpa", 9, S::npos);
+ test(S("drtasbgmfp"), "ktsrmnqagd", 9, 9);
+ test(S("lsaijeqhtr"), "rtdhgcisbnmoaqkfpjle", 9, S::npos);
+ test(S("elgofjmbrq"), "", 10, S::npos);
+ test(S("mjqdgalkpc"), "dplqa", 10, S::npos);
+ test(S("kthqnfcerm"), "dkacjoptns", 10, S::npos);
+ test(S("dfsjhanorc"), "hqfimtrgnbekpdcsjalo", 10, S::npos);
+ test(S("eqsgalomhb"), "", 11, S::npos);
+ test(S("akiteljmoh"), "lofbc", 11, S::npos);
+ test(S("hlbdfreqjo"), "astoegbfpn", 11, S::npos);
+ test(S("taqobhlerg"), "pdgreqomsncafklhtibj", 11, S::npos);
+ test(S("snafbdlghrjkpqtoceim"), "", 0, 0);
+ test(S("aemtbrgcklhndjisfpoq"), "lbtqd", 0, 0);
+ test(S("pnracgfkjdiholtbqsem"), "tboimldpjh", 0, 1);
+ test(S("dicfltehbsgrmojnpkaq"), "slcerthdaiqjfnobgkpm", 0, S::npos);
+ test(S("jlnkraeodhcspfgbqitm"), "", 1, 1);
+ test(S("lhosrngtmfjikbqpcade"), "aqibs", 1, 1);
+ test(S("rbtaqjhgkneisldpmfoc"), "gtfblmqinc", 1, 3);
+ test(S("gpifsqlrdkbonjtmheca"), "mkqpbtdalgniorhfescj", 1, S::npos);
+ test(S("hdpkobnsalmcfijregtq"), "", 10, 10);
+ test(S("jtlshdgqaiprkbcoenfm"), "pblas", 10, 11);
+ test(S("fkdrbqltsgmcoiphneaj"), "arosdhcfme", 10, 13);
+ test(S("crsplifgtqedjohnabmk"), "blkhjeogicatqfnpdmsr", 10, S::npos);
+ test(S("niptglfbosehkamrdqcj"), "", 19, 19);
+ test(S("copqdhstbingamjfkler"), "djkqc", 19, 19);
+ test(S("mrtaefilpdsgocnhqbjk"), "lgokshjtpb", 19, S::npos);
+ test(S("kojatdhlcmigpbfrqnes"), "bqjhtkfepimcnsgrlado", 19, S::npos);
+ test(S("eaintpchlqsbdgrkjofm"), "", 20, S::npos);
+ test(S("gjnhidfsepkrtaqbmclo"), "nocfa", 20, S::npos);
+ test(S("spocfaktqdbiejlhngmr"), "bgtajmiedc", 20, S::npos);
+ test(S("rphmlekgfscndtaobiqj"), "lsckfnqgdahejiopbtmr", 20, S::npos);
+ test(S("liatsqdoegkmfcnbhrpj"), "", 21, S::npos);
+ test(S("binjagtfldkrspcomqeh"), "gfsrt", 21, S::npos);
+ test(S("latkmisecnorjbfhqpdg"), "pfsocbhjtm", 21, S::npos);
+ test(S("lecfratdjkhnsmqpoigb"), "tpflmdnoicjgkberhqsa", 21, S::npos);
}
template <class S>
-void test1()
-{
- test(S(""), "", S::npos);
- test(S(""), "laenf", S::npos);
- test(S(""), "pqlnkmbdjo", S::npos);
- test(S(""), "qkamfogpnljdcshbreti", S::npos);
- test(S("nhmko"), "", 0);
- test(S("lahfb"), "irkhs", 0);
- test(S("gmfhd"), "kantesmpgj", 2);
- test(S("odaft"), "oknlrstdpiqmjbaghcfe", S::npos);
- test(S("eolhfgpjqk"), "", 0);
- test(S("nbatdlmekr"), "bnrpe", 2);
- test(S("jdmciepkaq"), "jtdaefblso", 2);
- test(S("hkbgspoflt"), "oselktgbcapndfjihrmq", S::npos);
- test(S("gprdcokbnjhlsfmtieqa"), "", 0);
- test(S("qjghlnftcaismkropdeb"), "bjaht", 0);
- test(S("pnalfrdtkqcmojiesbhg"), "hjlcmgpket", 1);
- test(S("pniotcfrhqsmgdkjbael"), "htaobedqikfplcgjsmrn", S::npos);
+void test1() {
+ test(S(""), "", S::npos);
+ test(S(""), "laenf", S::npos);
+ test(S(""), "pqlnkmbdjo", S::npos);
+ test(S(""), "qkamfogpnljdcshbreti", S::npos);
+ test(S("nhmko"), "", 0);
+ test(S("lahfb"), "irkhs", 0);
+ test(S("gmfhd"), "kantesmpgj", 2);
+ test(S("odaft"), "oknlrstdpiqmjbaghcfe", S::npos);
+ test(S("eolhfgpjqk"), "", 0);
+ test(S("nbatdlmekr"), "bnrpe", 2);
+ test(S("jdmciepkaq"), "jtdaefblso", 2);
+ test(S("hkbgspoflt"), "oselktgbcapndfjihrmq", S::npos);
+ test(S("gprdcokbnjhlsfmtieqa"), "", 0);
+ test(S("qjghlnftcaismkropdeb"), "bjaht", 0);
+ test(S("pnalfrdtkqcmojiesbhg"), "hjlcmgpket", 1);
+ test(S("pniotcfrhqsmgdkjbael"), "htaobedqikfplcgjsmrn", S::npos);
}
-int main(int, char**)
-{
- {
+int main(int, char**) {
+ {
typedef std::string_view S;
test0<S>();
test1<S>();
- }
+ }
#if TEST_STD_VER > 11
- {
+ {
typedef std::basic_string_view<char, constexpr_char_traits<char>> SV;
- constexpr SV sv1;
- constexpr SV sv2 { "abcde", 5 };
+ constexpr SV sv1;
+ constexpr SV sv2{"abcde", 5};
- static_assert (sv1.find_first_not_of( "", 0) == SV::npos, "" );
- static_assert (sv1.find_first_not_of( "irkhs", 0) == SV::npos, "" );
- static_assert (sv2.find_first_not_of( "", 0) == 0, "" );
- static_assert (sv2.find_first_not_of( "gfsrt", 0) == 0, "" );
- static_assert (sv2.find_first_not_of( "lecar", 0) == 1, "" );
- }
+ static_assert(sv1.find_first_not_of("", 0) == SV::npos, "");
+ static_assert(sv1.find_first_not_of("irkhs", 0) == SV::npos, "");
+ static_assert(sv2.find_first_not_of("", 0) == 0, "");
+ static_assert(sv2.find_first_not_of("gfsrt", 0) == 0, "");
+ static_assert(sv2.find_first_not_of("lecar", 0) == 1, "");
+ }
#endif
return 0;
diff --git a/libcxx/test/std/strings/string.view/string.view.find/find_first_not_of_pointer_size_size.pass.cpp b/libcxx/test/std/strings/string.view/string.view.find/find_first_not_of_pointer_size_size.pass.cpp
index 69cefa7a52045ab..c061d9955822b07 100644
--- a/libcxx/test/std/strings/string.view/string.view.find/find_first_not_of_pointer_size_size.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.find/find_first_not_of_pointer_size_size.pass.cpp
@@ -19,378 +19,374 @@
#include "constexpr_char_traits.h"
template <class S>
-void
-test(const S& s, const typename S::value_type* str, typename S::size_type pos,
- typename S::size_type n, typename S::size_type x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.find_first_not_of(str, pos, n));
- assert(s.find_first_not_of(str, pos, n) == x);
- if (x != S::npos)
- assert(pos <= x && x < s.size());
+void test(const S& s,
+ const typename S::value_type* str,
+ typename S::size_type pos,
+ typename S::size_type n,
+ typename S::size_type x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.find_first_not_of(str, pos, n));
+ assert(s.find_first_not_of(str, pos, n) == x);
+ if (x != S::npos)
+ assert(pos <= x && x < s.size());
}
template <class S>
-void test0()
-{
- test(S(""), "", 0, 0, S::npos);
- test(S(""), "irkhs", 0, 0, S::npos);
- test(S(""), "kante", 0, 1, S::npos);
- test(S(""), "oknlr", 0, 2, S::npos);
- test(S(""), "pcdro", 0, 4, S::npos);
- test(S(""), "bnrpe", 0, 5, S::npos);
- test(S(""), "jtdaefblso", 0, 0, S::npos);
- test(S(""), "oselktgbca", 0, 1, S::npos);
- test(S(""), "eqgaplhckj", 0, 5, S::npos);
- test(S(""), "bjahtcmnlp", 0, 9, S::npos);
- test(S(""), "hjlcmgpket", 0, 10, S::npos);
- test(S(""), "htaobedqikfplcgjsmrn", 0, 0, S::npos);
- test(S(""), "hpqiarojkcdlsgnmfetb", 0, 1, S::npos);
- test(S(""), "dfkaprhjloqetcsimnbg", 0, 10, S::npos);
- test(S(""), "ihqrfebgadntlpmjksoc", 0, 19, S::npos);
- test(S(""), "ngtjfcalbseiqrphmkdo", 0, 20, S::npos);
- test(S(""), "", 1, 0, S::npos);
- test(S(""), "lbtqd", 1, 0, S::npos);
- test(S(""), "tboim", 1, 1, S::npos);
- test(S(""), "slcer", 1, 2, S::npos);
- test(S(""), "cbjfs", 1, 4, S::npos);
- test(S(""), "aqibs", 1, 5, S::npos);
- test(S(""), "gtfblmqinc", 1, 0, S::npos);
- test(S(""), "mkqpbtdalg", 1, 1, S::npos);
- test(S(""), "kphatlimcd", 1, 5, S::npos);
- test(S(""), "pblasqogic", 1, 9, S::npos);
- test(S(""), "arosdhcfme", 1, 10, S::npos);
- test(S(""), "blkhjeogicatqfnpdmsr", 1, 0, S::npos);
- test(S(""), "bmhineprjcoadgstflqk", 1, 1, S::npos);
- test(S(""), "djkqcmetslnghpbarfoi", 1, 10, S::npos);
- test(S(""), "lgokshjtpbemarcdqnfi", 1, 19, S::npos);
- test(S(""), "bqjhtkfepimcnsgrlado", 1, 20, S::npos);
- test(S("eaint"), "", 0, 0, 0);
- test(S("binja"), "gfsrt", 0, 0, 0);
- test(S("latkm"), "pfsoc", 0, 1, 0);
- test(S("lecfr"), "tpflm", 0, 2, 0);
- test(S("eqkst"), "sgkec", 0, 4, 1);
- test(S("cdafr"), "romds", 0, 5, 0);
- test(S("prbhe"), "qhjistlgmr", 0, 0, 0);
- test(S("lbisk"), "pedfirsglo", 0, 1, 0);
- test(S("hrlpd"), "aqcoslgrmk", 0, 5, 0);
- test(S("ehmja"), "dabckmepqj", 0, 9, 1);
- test(S("mhqgd"), "pqscrjthli", 0, 10, 0);
- test(S("tgklq"), "kfphdcsjqmobliagtren", 0, 0, 0);
- test(S("bocjs"), "rokpefncljibsdhqtagm", 0, 1, 0);
- test(S("grbsd"), "afionmkphlebtcjqsgrd", 0, 10, 0);
- test(S("ofjqr"), "aenmqplidhkofrjbctsg", 0, 19, S::npos);
- test(S("btlfi"), "osjmbtcadhiklegrpqnf", 0, 20, S::npos);
- test(S("clrgb"), "", 1, 0, 1);
- test(S("tjmek"), "osmia", 1, 0, 1);
- test(S("bgstp"), "ckonl", 1, 1, 1);
- test(S("hstrk"), "ilcaj", 1, 2, 1);
- test(S("kmspj"), "lasiq", 1, 4, 1);
- test(S("tjboh"), "kfqmr", 1, 5, 1);
- test(S("ilbcj"), "klnitfaobg", 1, 0, 1);
- test(S("jkngf"), "gjhmdlqikp", 1, 1, 1);
- test(S("gfcql"), "skbgtahqej", 1, 5, 1);
- test(S("dqtlg"), "bjsdgtlpkf", 1, 9, 1);
- test(S("bthpg"), "bjgfmnlkio", 1, 10, 1);
- test(S("dgsnq"), "lbhepotfsjdqigcnamkr", 1, 0, 1);
- test(S("rmfhp"), "tebangckmpsrqdlfojhi", 1, 1, 1);
- test(S("jfdam"), "joflqbdkhtegimscpanr", 1, 10, 3);
- test(S("edapb"), "adpmcohetfbsrjinlqkg", 1, 19, S::npos);
- test(S("brfsm"), "iacldqjpfnogbsrhmetk", 1, 20, S::npos);
- test(S("ndrhl"), "", 2, 0, 2);
- test(S("mrecp"), "otkgb", 2, 0, 2);
- test(S("qlasf"), "cqsjl", 2, 1, 2);
- test(S("smaqd"), "dpifl", 2, 2, 2);
- test(S("hjeni"), "oapht", 2, 4, 2);
- test(S("ocmfj"), "cifts", 2, 5, 2);
- test(S("hmftq"), "nmsckbgalo", 2, 0, 2);
- test(S("fklad"), "tpksqhamle", 2, 1, 2);
- test(S("dirnm"), "tpdrchmkji", 2, 5, 3);
- test(S("hrgdc"), "ijagfkblst", 2, 9, 3);
- test(S("ifakg"), "kpocsignjb", 2, 10, 2);
- test(S("ebrgd"), "pecqtkjsnbdrialgmohf", 2, 0, 2);
- test(S("rcjml"), "aiortphfcmkjebgsndql", 2, 1, 2);
- test(S("peqmt"), "sdbkeamglhipojqftrcn", 2, 10, 2);
- test(S("frehn"), "ljqncehgmfktroapidbs", 2, 19, S::npos);
- test(S("tqolf"), "rtcfodilamkbenjghqps", 2, 20, S::npos);
- test(S("cjgao"), "", 4, 0, 4);
- test(S("kjplq"), "mabns", 4, 0, 4);
- test(S("herni"), "bdnrp", 4, 1, 4);
- test(S("tadrb"), "scidp", 4, 2, 4);
- test(S("pkfeo"), "agbjl", 4, 4, 4);
- test(S("hoser"), "jfmpr", 4, 5, S::npos);
- test(S("kgrsp"), "rbpefghsmj", 4, 0, 4);
- test(S("pgejb"), "apsfntdoqc", 4, 1, 4);
- test(S("thlnq"), "ndkjeisgcl", 4, 5, 4);
- test(S("nbmit"), "rnfpqatdeo", 4, 9, S::npos);
- test(S("jgmib"), "bntjlqrfik", 4, 10, S::npos);
- test(S("ncrfj"), "kcrtmpolnaqejghsfdbi", 4, 0, 4);
- test(S("ncsik"), "lobheanpkmqidsrtcfgj", 4, 1, 4);
- test(S("sgbfh"), "athdkljcnreqbgpmisof", 4, 10, S::npos);
- test(S("dktbn"), "qkdmjialrscpbhefgont", 4, 19, S::npos);
- test(S("fthqm"), "dmasojntqleribkgfchp", 4, 20, S::npos);
- test(S("klopi"), "", 5, 0, S::npos);
- test(S("dajhn"), "psthd", 5, 0, S::npos);
- test(S("jbgno"), "rpmjd", 5, 1, S::npos);
- test(S("hkjae"), "dfsmk", 5, 2, S::npos);
+void test0() {
+ test(S(""), "", 0, 0, S::npos);
+ test(S(""), "irkhs", 0, 0, S::npos);
+ test(S(""), "kante", 0, 1, S::npos);
+ test(S(""), "oknlr", 0, 2, S::npos);
+ test(S(""), "pcdro", 0, 4, S::npos);
+ test(S(""), "bnrpe", 0, 5, S::npos);
+ test(S(""), "jtdaefblso", 0, 0, S::npos);
+ test(S(""), "oselktgbca", 0, 1, S::npos);
+ test(S(""), "eqgaplhckj", 0, 5, S::npos);
+ test(S(""), "bjahtcmnlp", 0, 9, S::npos);
+ test(S(""), "hjlcmgpket", 0, 10, S::npos);
+ test(S(""), "htaobedqikfplcgjsmrn", 0, 0, S::npos);
+ test(S(""), "hpqiarojkcdlsgnmfetb", 0, 1, S::npos);
+ test(S(""), "dfkaprhjloqetcsimnbg", 0, 10, S::npos);
+ test(S(""), "ihqrfebgadntlpmjksoc", 0, 19, S::npos);
+ test(S(""), "ngtjfcalbseiqrphmkdo", 0, 20, S::npos);
+ test(S(""), "", 1, 0, S::npos);
+ test(S(""), "lbtqd", 1, 0, S::npos);
+ test(S(""), "tboim", 1, 1, S::npos);
+ test(S(""), "slcer", 1, 2, S::npos);
+ test(S(""), "cbjfs", 1, 4, S::npos);
+ test(S(""), "aqibs", 1, 5, S::npos);
+ test(S(""), "gtfblmqinc", 1, 0, S::npos);
+ test(S(""), "mkqpbtdalg", 1, 1, S::npos);
+ test(S(""), "kphatlimcd", 1, 5, S::npos);
+ test(S(""), "pblasqogic", 1, 9, S::npos);
+ test(S(""), "arosdhcfme", 1, 10, S::npos);
+ test(S(""), "blkhjeogicatqfnpdmsr", 1, 0, S::npos);
+ test(S(""), "bmhineprjcoadgstflqk", 1, 1, S::npos);
+ test(S(""), "djkqcmetslnghpbarfoi", 1, 10, S::npos);
+ test(S(""), "lgokshjtpbemarcdqnfi", 1, 19, S::npos);
+ test(S(""), "bqjhtkfepimcnsgrlado", 1, 20, S::npos);
+ test(S("eaint"), "", 0, 0, 0);
+ test(S("binja"), "gfsrt", 0, 0, 0);
+ test(S("latkm"), "pfsoc", 0, 1, 0);
+ test(S("lecfr"), "tpflm", 0, 2, 0);
+ test(S("eqkst"), "sgkec", 0, 4, 1);
+ test(S("cdafr"), "romds", 0, 5, 0);
+ test(S("prbhe"), "qhjistlgmr", 0, 0, 0);
+ test(S("lbisk"), "pedfirsglo", 0, 1, 0);
+ test(S("hrlpd"), "aqcoslgrmk", 0, 5, 0);
+ test(S("ehmja"), "dabckmepqj", 0, 9, 1);
+ test(S("mhqgd"), "pqscrjthli", 0, 10, 0);
+ test(S("tgklq"), "kfphdcsjqmobliagtren", 0, 0, 0);
+ test(S("bocjs"), "rokpefncljibsdhqtagm", 0, 1, 0);
+ test(S("grbsd"), "afionmkphlebtcjqsgrd", 0, 10, 0);
+ test(S("ofjqr"), "aenmqplidhkofrjbctsg", 0, 19, S::npos);
+ test(S("btlfi"), "osjmbtcadhiklegrpqnf", 0, 20, S::npos);
+ test(S("clrgb"), "", 1, 0, 1);
+ test(S("tjmek"), "osmia", 1, 0, 1);
+ test(S("bgstp"), "ckonl", 1, 1, 1);
+ test(S("hstrk"), "ilcaj", 1, 2, 1);
+ test(S("kmspj"), "lasiq", 1, 4, 1);
+ test(S("tjboh"), "kfqmr", 1, 5, 1);
+ test(S("ilbcj"), "klnitfaobg", 1, 0, 1);
+ test(S("jkngf"), "gjhmdlqikp", 1, 1, 1);
+ test(S("gfcql"), "skbgtahqej", 1, 5, 1);
+ test(S("dqtlg"), "bjsdgtlpkf", 1, 9, 1);
+ test(S("bthpg"), "bjgfmnlkio", 1, 10, 1);
+ test(S("dgsnq"), "lbhepotfsjdqigcnamkr", 1, 0, 1);
+ test(S("rmfhp"), "tebangckmpsrqdlfojhi", 1, 1, 1);
+ test(S("jfdam"), "joflqbdkhtegimscpanr", 1, 10, 3);
+ test(S("edapb"), "adpmcohetfbsrjinlqkg", 1, 19, S::npos);
+ test(S("brfsm"), "iacldqjpfnogbsrhmetk", 1, 20, S::npos);
+ test(S("ndrhl"), "", 2, 0, 2);
+ test(S("mrecp"), "otkgb", 2, 0, 2);
+ test(S("qlasf"), "cqsjl", 2, 1, 2);
+ test(S("smaqd"), "dpifl", 2, 2, 2);
+ test(S("hjeni"), "oapht", 2, 4, 2);
+ test(S("ocmfj"), "cifts", 2, 5, 2);
+ test(S("hmftq"), "nmsckbgalo", 2, 0, 2);
+ test(S("fklad"), "tpksqhamle", 2, 1, 2);
+ test(S("dirnm"), "tpdrchmkji", 2, 5, 3);
+ test(S("hrgdc"), "ijagfkblst", 2, 9, 3);
+ test(S("ifakg"), "kpocsignjb", 2, 10, 2);
+ test(S("ebrgd"), "pecqtkjsnbdrialgmohf", 2, 0, 2);
+ test(S("rcjml"), "aiortphfcmkjebgsndql", 2, 1, 2);
+ test(S("peqmt"), "sdbkeamglhipojqftrcn", 2, 10, 2);
+ test(S("frehn"), "ljqncehgmfktroapidbs", 2, 19, S::npos);
+ test(S("tqolf"), "rtcfodilamkbenjghqps", 2, 20, S::npos);
+ test(S("cjgao"), "", 4, 0, 4);
+ test(S("kjplq"), "mabns", 4, 0, 4);
+ test(S("herni"), "bdnrp", 4, 1, 4);
+ test(S("tadrb"), "scidp", 4, 2, 4);
+ test(S("pkfeo"), "agbjl", 4, 4, 4);
+ test(S("hoser"), "jfmpr", 4, 5, S::npos);
+ test(S("kgrsp"), "rbpefghsmj", 4, 0, 4);
+ test(S("pgejb"), "apsfntdoqc", 4, 1, 4);
+ test(S("thlnq"), "ndkjeisgcl", 4, 5, 4);
+ test(S("nbmit"), "rnfpqatdeo", 4, 9, S::npos);
+ test(S("jgmib"), "bntjlqrfik", 4, 10, S::npos);
+ test(S("ncrfj"), "kcrtmpolnaqejghsfdbi", 4, 0, 4);
+ test(S("ncsik"), "lobheanpkmqidsrtcfgj", 4, 1, 4);
+ test(S("sgbfh"), "athdkljcnreqbgpmisof", 4, 10, S::npos);
+ test(S("dktbn"), "qkdmjialrscpbhefgont", 4, 19, S::npos);
+ test(S("fthqm"), "dmasojntqleribkgfchp", 4, 20, S::npos);
+ test(S("klopi"), "", 5, 0, S::npos);
+ test(S("dajhn"), "psthd", 5, 0, S::npos);
+ test(S("jbgno"), "rpmjd", 5, 1, S::npos);
+ test(S("hkjae"), "dfsmk", 5, 2, S::npos);
}
template <class S>
-void test1()
-{
- test(S("gbhqo"), "skqne", 5, 4, S::npos);
- test(S("ktdor"), "kipnf", 5, 5, S::npos);
- test(S("ldprn"), "hmrnqdgifl", 5, 0, S::npos);
- test(S("egmjk"), "fsmjcdairn", 5, 1, S::npos);
- test(S("armql"), "pcdgltbrfj", 5, 5, S::npos);
- test(S("cdhjo"), "aekfctpirg", 5, 9, S::npos);
- test(S("jcons"), "ledihrsgpf", 5, 10, S::npos);
- test(S("cbrkp"), "mqcklahsbtirgopefndj", 5, 0, S::npos);
- test(S("fhgna"), "kmlthaoqgecrnpdbjfis", 5, 1, S::npos);
- test(S("ejfcd"), "sfhbamcdptojlkrenqgi", 5, 10, S::npos);
- test(S("kqjhe"), "pbniofmcedrkhlstgaqj", 5, 19, S::npos);
- test(S("pbdjl"), "mongjratcskbhqiepfdl", 5, 20, S::npos);
- test(S("gajqn"), "", 6, 0, S::npos);
- test(S("stedk"), "hrnat", 6, 0, S::npos);
- test(S("tjkaf"), "gsqdt", 6, 1, S::npos);
- test(S("dthpe"), "bspkd", 6, 2, S::npos);
- test(S("klhde"), "ohcmb", 6, 4, S::npos);
- test(S("bhlki"), "heatr", 6, 5, S::npos);
- test(S("lqmoh"), "pmblckedfn", 6, 0, S::npos);
- test(S("mtqin"), "aceqmsrbik", 6, 1, S::npos);
- test(S("dpqbr"), "lmbtdehjrn", 6, 5, S::npos);
- test(S("kdhmo"), "teqmcrlgib", 6, 9, S::npos);
- test(S("jblqp"), "njolbmspac", 6, 10, S::npos);
- test(S("qmjgl"), "pofnhidklamecrbqjgst", 6, 0, S::npos);
- test(S("rothp"), "jbhckmtgrqnosafedpli", 6, 1, S::npos);
- test(S("ghknq"), "dobntpmqklicsahgjerf", 6, 10, S::npos);
- test(S("eopfi"), "tpdshainjkbfoemlrgcq", 6, 19, S::npos);
- test(S("dsnmg"), "oldpfgeakrnitscbjmqh", 6, 20, S::npos);
- test(S("jnkrfhotgl"), "", 0, 0, 0);
- test(S("dltjfngbko"), "rqegt", 0, 0, 0);
- test(S("bmjlpkiqde"), "dashm", 0, 1, 0);
- test(S("skrflobnqm"), "jqirk", 0, 2, 0);
- test(S("jkpldtshrm"), "rckeg", 0, 4, 0);
- test(S("ghasdbnjqo"), "jscie", 0, 5, 0);
- test(S("igrkhpbqjt"), "efsphndliq", 0, 0, 0);
- test(S("ikthdgcamf"), "gdicosleja", 0, 1, 0);
- test(S("pcofgeniam"), "qcpjibosfl", 0, 5, 2);
- test(S("rlfjgesqhc"), "lrhmefnjcq", 0, 9, 4);
- test(S("itphbqsker"), "dtablcrseo", 0, 10, 0);
- test(S("skjafcirqm"), "apckjsftedbhgomrnilq", 0, 0, 0);
- test(S("tcqomarsfd"), "pcbrgflehjtiadnsokqm", 0, 1, 0);
- test(S("rocfeldqpk"), "nsiadegjklhobrmtqcpf", 0, 10, 0);
- test(S("cfpegndlkt"), "cpmajdqnolikhgsbretf", 0, 19, 1);
- test(S("fqbtnkeasj"), "jcflkntmgiqrphdosaeb", 0, 20, S::npos);
- test(S("shbcqnmoar"), "", 1, 0, 1);
- test(S("bdoshlmfin"), "ontrs", 1, 0, 1);
- test(S("khfrebnsgq"), "pfkna", 1, 1, 1);
- test(S("getcrsaoji"), "ekosa", 1, 2, 2);
- test(S("fjiknedcpq"), "anqhk", 1, 4, 1);
- test(S("tkejgnafrm"), "jekca", 1, 5, 4);
- test(S("jnakolqrde"), "ikemsjgacf", 1, 0, 1);
- test(S("lcjptsmgbe"), "arolgsjkhm", 1, 1, 1);
- test(S("itfsmcjorl"), "oftkbldhre", 1, 5, 3);
- test(S("omchkfrjea"), "gbkqdoeftl", 1, 9, 1);
- test(S("cigfqkated"), "sqcflrgtim", 1, 10, 5);
- test(S("tscenjikml"), "fmhbkislrjdpanogqcet", 1, 0, 1);
- test(S("qcpaemsinf"), "rnioadktqlgpbcjsmhef", 1, 1, 1);
- test(S("gltkojeipd"), "oakgtnldpsefihqmjcbr", 1, 10, 5);
- test(S("qistfrgnmp"), "gbnaelosidmcjqktfhpr", 1, 19, 5);
- test(S("bdnpfcqaem"), "akbripjhlosndcmqgfet", 1, 20, S::npos);
- test(S("ectnhskflp"), "", 5, 0, 5);
- test(S("fgtianblpq"), "pijag", 5, 0, 5);
- test(S("mfeqklirnh"), "jrckd", 5, 1, 5);
- test(S("astedncjhk"), "qcloh", 5, 2, 5);
- test(S("fhlqgcajbr"), "thlmp", 5, 4, 5);
- test(S("epfhocmdng"), "qidmo", 5, 5, 5);
- test(S("apcnsibger"), "lnegpsjqrd", 5, 0, 5);
- test(S("aqkocrbign"), "rjqdablmfs", 5, 1, 6);
- test(S("ijsmdtqgce"), "enkgpbsjaq", 5, 5, 5);
- test(S("clobgsrken"), "kdsgoaijfh", 5, 9, 6);
- test(S("jbhcfposld"), "trfqgmckbe", 5, 10, 5);
- test(S("oqnpblhide"), "igetsracjfkdnpoblhqm", 5, 0, 5);
- test(S("lroeasctif"), "nqctfaogirshlekbdjpm", 5, 1, 5);
- test(S("bpjlgmiedh"), "csehfgomljdqinbartkp", 5, 10, 6);
- test(S("pamkeoidrj"), "qahoegcmplkfsjbdnitr", 5, 19, 8);
- test(S("espogqbthk"), "dpteiajrqmsognhlfbkc", 5, 20, S::npos);
- test(S("shoiedtcjb"), "", 9, 0, 9);
- test(S("ebcinjgads"), "tqbnh", 9, 0, 9);
- test(S("dqmregkcfl"), "akmle", 9, 1, 9);
- test(S("ngcrieqajf"), "iqfkm", 9, 2, 9);
- test(S("qosmilgnjb"), "tqjsr", 9, 4, 9);
- test(S("ikabsjtdfl"), "jplqg", 9, 5, S::npos);
- test(S("ersmicafdh"), "oilnrbcgtj", 9, 0, 9);
- test(S("fdnplotmgh"), "morkglpesn", 9, 1, 9);
- test(S("fdbicojerm"), "dmicerngat", 9, 5, S::npos);
- test(S("mbtafndjcq"), "radgeskbtc", 9, 9, 9);
- test(S("mlenkpfdtc"), "ljikprsmqo", 9, 10, 9);
- test(S("ahlcifdqgs"), "trqihkcgsjamfdbolnpe", 9, 0, 9);
- test(S("bgjemaltks"), "lqmthbsrekajgnofcipd", 9, 1, 9);
- test(S("pdhslbqrfc"), "jtalmedribkgqsopcnfh", 9, 10, 9);
- test(S("dirhtsnjkc"), "spqfoiclmtagejbndkrh", 9, 19, S::npos);
- test(S("dlroktbcja"), "nmotklspigjrdhcfaebq", 9, 20, S::npos);
- test(S("ncjpmaekbs"), "", 10, 0, S::npos);
- test(S("hlbosgmrak"), "hpmsd", 10, 0, S::npos);
- test(S("pqfhsgilen"), "qnpor", 10, 1, S::npos);
- test(S("gqtjsbdckh"), "otdma", 10, 2, S::npos);
- test(S("cfkqpjlegi"), "efhjg", 10, 4, S::npos);
- test(S("beanrfodgj"), "odpte", 10, 5, S::npos);
- test(S("adtkqpbjfi"), "bctdgfmolr", 10, 0, S::npos);
- test(S("iomkfthagj"), "oaklidrbqg", 10, 1, S::npos);
+void test1() {
+ test(S("gbhqo"), "skqne", 5, 4, S::npos);
+ test(S("ktdor"), "kipnf", 5, 5, S::npos);
+ test(S("ldprn"), "hmrnqdgifl", 5, 0, S::npos);
+ test(S("egmjk"), "fsmjcdairn", 5, 1, S::npos);
+ test(S("armql"), "pcdgltbrfj", 5, 5, S::npos);
+ test(S("cdhjo"), "aekfctpirg", 5, 9, S::npos);
+ test(S("jcons"), "ledihrsgpf", 5, 10, S::npos);
+ test(S("cbrkp"), "mqcklahsbtirgopefndj", 5, 0, S::npos);
+ test(S("fhgna"), "kmlthaoqgecrnpdbjfis", 5, 1, S::npos);
+ test(S("ejfcd"), "sfhbamcdptojlkrenqgi", 5, 10, S::npos);
+ test(S("kqjhe"), "pbniofmcedrkhlstgaqj", 5, 19, S::npos);
+ test(S("pbdjl"), "mongjratcskbhqiepfdl", 5, 20, S::npos);
+ test(S("gajqn"), "", 6, 0, S::npos);
+ test(S("stedk"), "hrnat", 6, 0, S::npos);
+ test(S("tjkaf"), "gsqdt", 6, 1, S::npos);
+ test(S("dthpe"), "bspkd", 6, 2, S::npos);
+ test(S("klhde"), "ohcmb", 6, 4, S::npos);
+ test(S("bhlki"), "heatr", 6, 5, S::npos);
+ test(S("lqmoh"), "pmblckedfn", 6, 0, S::npos);
+ test(S("mtqin"), "aceqmsrbik", 6, 1, S::npos);
+ test(S("dpqbr"), "lmbtdehjrn", 6, 5, S::npos);
+ test(S("kdhmo"), "teqmcrlgib", 6, 9, S::npos);
+ test(S("jblqp"), "njolbmspac", 6, 10, S::npos);
+ test(S("qmjgl"), "pofnhidklamecrbqjgst", 6, 0, S::npos);
+ test(S("rothp"), "jbhckmtgrqnosafedpli", 6, 1, S::npos);
+ test(S("ghknq"), "dobntpmqklicsahgjerf", 6, 10, S::npos);
+ test(S("eopfi"), "tpdshainjkbfoemlrgcq", 6, 19, S::npos);
+ test(S("dsnmg"), "oldpfgeakrnitscbjmqh", 6, 20, S::npos);
+ test(S("jnkrfhotgl"), "", 0, 0, 0);
+ test(S("dltjfngbko"), "rqegt", 0, 0, 0);
+ test(S("bmjlpkiqde"), "dashm", 0, 1, 0);
+ test(S("skrflobnqm"), "jqirk", 0, 2, 0);
+ test(S("jkpldtshrm"), "rckeg", 0, 4, 0);
+ test(S("ghasdbnjqo"), "jscie", 0, 5, 0);
+ test(S("igrkhpbqjt"), "efsphndliq", 0, 0, 0);
+ test(S("ikthdgcamf"), "gdicosleja", 0, 1, 0);
+ test(S("pcofgeniam"), "qcpjibosfl", 0, 5, 2);
+ test(S("rlfjgesqhc"), "lrhmefnjcq", 0, 9, 4);
+ test(S("itphbqsker"), "dtablcrseo", 0, 10, 0);
+ test(S("skjafcirqm"), "apckjsftedbhgomrnilq", 0, 0, 0);
+ test(S("tcqomarsfd"), "pcbrgflehjtiadnsokqm", 0, 1, 0);
+ test(S("rocfeldqpk"), "nsiadegjklhobrmtqcpf", 0, 10, 0);
+ test(S("cfpegndlkt"), "cpmajdqnolikhgsbretf", 0, 19, 1);
+ test(S("fqbtnkeasj"), "jcflkntmgiqrphdosaeb", 0, 20, S::npos);
+ test(S("shbcqnmoar"), "", 1, 0, 1);
+ test(S("bdoshlmfin"), "ontrs", 1, 0, 1);
+ test(S("khfrebnsgq"), "pfkna", 1, 1, 1);
+ test(S("getcrsaoji"), "ekosa", 1, 2, 2);
+ test(S("fjiknedcpq"), "anqhk", 1, 4, 1);
+ test(S("tkejgnafrm"), "jekca", 1, 5, 4);
+ test(S("jnakolqrde"), "ikemsjgacf", 1, 0, 1);
+ test(S("lcjptsmgbe"), "arolgsjkhm", 1, 1, 1);
+ test(S("itfsmcjorl"), "oftkbldhre", 1, 5, 3);
+ test(S("omchkfrjea"), "gbkqdoeftl", 1, 9, 1);
+ test(S("cigfqkated"), "sqcflrgtim", 1, 10, 5);
+ test(S("tscenjikml"), "fmhbkislrjdpanogqcet", 1, 0, 1);
+ test(S("qcpaemsinf"), "rnioadktqlgpbcjsmhef", 1, 1, 1);
+ test(S("gltkojeipd"), "oakgtnldpsefihqmjcbr", 1, 10, 5);
+ test(S("qistfrgnmp"), "gbnaelosidmcjqktfhpr", 1, 19, 5);
+ test(S("bdnpfcqaem"), "akbripjhlosndcmqgfet", 1, 20, S::npos);
+ test(S("ectnhskflp"), "", 5, 0, 5);
+ test(S("fgtianblpq"), "pijag", 5, 0, 5);
+ test(S("mfeqklirnh"), "jrckd", 5, 1, 5);
+ test(S("astedncjhk"), "qcloh", 5, 2, 5);
+ test(S("fhlqgcajbr"), "thlmp", 5, 4, 5);
+ test(S("epfhocmdng"), "qidmo", 5, 5, 5);
+ test(S("apcnsibger"), "lnegpsjqrd", 5, 0, 5);
+ test(S("aqkocrbign"), "rjqdablmfs", 5, 1, 6);
+ test(S("ijsmdtqgce"), "enkgpbsjaq", 5, 5, 5);
+ test(S("clobgsrken"), "kdsgoaijfh", 5, 9, 6);
+ test(S("jbhcfposld"), "trfqgmckbe", 5, 10, 5);
+ test(S("oqnpblhide"), "igetsracjfkdnpoblhqm", 5, 0, 5);
+ test(S("lroeasctif"), "nqctfaogirshlekbdjpm", 5, 1, 5);
+ test(S("bpjlgmiedh"), "csehfgomljdqinbartkp", 5, 10, 6);
+ test(S("pamkeoidrj"), "qahoegcmplkfsjbdnitr", 5, 19, 8);
+ test(S("espogqbthk"), "dpteiajrqmsognhlfbkc", 5, 20, S::npos);
+ test(S("shoiedtcjb"), "", 9, 0, 9);
+ test(S("ebcinjgads"), "tqbnh", 9, 0, 9);
+ test(S("dqmregkcfl"), "akmle", 9, 1, 9);
+ test(S("ngcrieqajf"), "iqfkm", 9, 2, 9);
+ test(S("qosmilgnjb"), "tqjsr", 9, 4, 9);
+ test(S("ikabsjtdfl"), "jplqg", 9, 5, S::npos);
+ test(S("ersmicafdh"), "oilnrbcgtj", 9, 0, 9);
+ test(S("fdnplotmgh"), "morkglpesn", 9, 1, 9);
+ test(S("fdbicojerm"), "dmicerngat", 9, 5, S::npos);
+ test(S("mbtafndjcq"), "radgeskbtc", 9, 9, 9);
+ test(S("mlenkpfdtc"), "ljikprsmqo", 9, 10, 9);
+ test(S("ahlcifdqgs"), "trqihkcgsjamfdbolnpe", 9, 0, 9);
+ test(S("bgjemaltks"), "lqmthbsrekajgnofcipd", 9, 1, 9);
+ test(S("pdhslbqrfc"), "jtalmedribkgqsopcnfh", 9, 10, 9);
+ test(S("dirhtsnjkc"), "spqfoiclmtagejbndkrh", 9, 19, S::npos);
+ test(S("dlroktbcja"), "nmotklspigjrdhcfaebq", 9, 20, S::npos);
+ test(S("ncjpmaekbs"), "", 10, 0, S::npos);
+ test(S("hlbosgmrak"), "hpmsd", 10, 0, S::npos);
+ test(S("pqfhsgilen"), "qnpor", 10, 1, S::npos);
+ test(S("gqtjsbdckh"), "otdma", 10, 2, S::npos);
+ test(S("cfkqpjlegi"), "efhjg", 10, 4, S::npos);
+ test(S("beanrfodgj"), "odpte", 10, 5, S::npos);
+ test(S("adtkqpbjfi"), "bctdgfmolr", 10, 0, S::npos);
+ test(S("iomkfthagj"), "oaklidrbqg", 10, 1, S::npos);
}
template <class S>
-void test2()
-{
- test(S("sdpcilonqj"), "dnjfsagktr", 10, 5, S::npos);
- test(S("gtfbdkqeml"), "nejaktmiqg", 10, 9, S::npos);
- test(S("bmeqgcdorj"), "pjqonlebsf", 10, 10, S::npos);
- test(S("etqlcanmob"), "dshmnbtolcjepgaikfqr", 10, 0, S::npos);
- test(S("roqmkbdtia"), "iogfhpabtjkqlrnemcds", 10, 1, S::npos);
- test(S("kadsithljf"), "ngridfabjsecpqltkmoh", 10, 10, S::npos);
- test(S("sgtkpbfdmh"), "athmknplcgofrqejsdib", 10, 19, S::npos);
- test(S("qgmetnabkl"), "ldobhmqcafnjtkeisgrp", 10, 20, S::npos);
- test(S("cqjohampgd"), "", 11, 0, S::npos);
- test(S("hobitmpsan"), "aocjb", 11, 0, S::npos);
- test(S("tjehkpsalm"), "jbrnk", 11, 1, S::npos);
- test(S("ngfbojitcl"), "tqedg", 11, 2, S::npos);
- test(S("rcfkdbhgjo"), "nqskp", 11, 4, S::npos);
- test(S("qghptonrea"), "eaqkl", 11, 5, S::npos);
- test(S("hnprfgqjdl"), "reaoicljqm", 11, 0, S::npos);
- test(S("hlmgabenti"), "lsftgajqpm", 11, 1, S::npos);
- test(S("ofcjanmrbs"), "rlpfogmits", 11, 5, S::npos);
- test(S("jqedtkornm"), "shkncmiaqj", 11, 9, S::npos);
- test(S("rfedlasjmg"), "fpnatrhqgs", 11, 10, S::npos);
- test(S("talpqjsgkm"), "sjclemqhnpdbgikarfot", 11, 0, S::npos);
- test(S("lrkcbtqpie"), "otcmedjikgsfnqbrhpla", 11, 1, S::npos);
- test(S("cipogdskjf"), "bonsaefdqiprkhlgtjcm", 11, 10, S::npos);
- test(S("nqedcojahi"), "egpscmahijlfnkrodqtb", 11, 19, S::npos);
- test(S("hefnrkmctj"), "kmqbfepjthgilscrndoa", 11, 20, S::npos);
- test(S("atqirnmekfjolhpdsgcb"), "", 0, 0, 0);
- test(S("echfkmlpribjnqsaogtd"), "prboq", 0, 0, 0);
- test(S("qnhiftdgcleajbpkrosm"), "fjcqh", 0, 1, 0);
- test(S("chamfknorbedjitgslpq"), "fmosa", 0, 2, 0);
- test(S("njhqpibfmtlkaecdrgso"), "qdbok", 0, 4, 0);
- test(S("ebnghfsqkprmdcljoiat"), "amslg", 0, 5, 0);
- test(S("letjomsgihfrpqbkancd"), "smpltjneqb", 0, 0, 0);
- test(S("nblgoipcrqeaktshjdmf"), "flitskrnge", 0, 1, 0);
- test(S("cehkbngtjoiflqapsmrd"), "pgqihmlbef", 0, 5, 0);
- test(S("mignapfoklbhcqjetdrs"), "cfpdqjtgsb", 0, 9, 0);
- test(S("ceatbhlsqjgpnokfrmdi"), "htpsiaflom", 0, 10, 0);
- test(S("ocihkjgrdelpfnmastqb"), "kpjfiaceghsrdtlbnomq", 0, 0, 0);
- test(S("noelgschdtbrjfmiqkap"), "qhtbomidljgafneksprc", 0, 1, 0);
- test(S("dkclqfombepritjnghas"), "nhtjobkcefldimpsaqgr", 0, 10, 0);
- test(S("miklnresdgbhqcojftap"), "prabcjfqnoeskilmtgdh", 0, 19, 11);
- test(S("htbcigojaqmdkfrnlsep"), "dtrgmchilkasqoebfpjn", 0, 20, S::npos);
- test(S("febhmqtjanokscdirpgl"), "", 1, 0, 1);
- test(S("loakbsqjpcrdhftniegm"), "sqome", 1, 0, 1);
- test(S("reagphsqflbitdcjmkno"), "smfte", 1, 1, 1);
- test(S("jitlfrqemsdhkopncabg"), "ciboh", 1, 2, 2);
- test(S("mhtaepscdnrjqgbkifol"), "haois", 1, 4, 2);
- test(S("tocesrfmnglpbjihqadk"), "abfki", 1, 5, 1);
- test(S("lpfmctjrhdagneskbqoi"), "frdkocntmq", 1, 0, 1);
- test(S("lsmqaepkdhncirbtjfgo"), "oasbpedlnr", 1, 1, 1);
- test(S("epoiqmtldrabnkjhcfsg"), "kltqmhgand", 1, 5, 1);
- test(S("emgasrilpknqojhtbdcf"), "gdtfjchpmr", 1, 9, 3);
- test(S("hnfiagdpcklrjetqbsom"), "ponmcqblet", 1, 10, 2);
- test(S("nsdfebgajhmtricpoklq"), "sgphqdnofeiklatbcmjr", 1, 0, 1);
- test(S("atjgfsdlpobmeiqhncrk"), "ljqprsmigtfoneadckbh", 1, 1, 1);
- test(S("sitodfgnrejlahcbmqkp"), "ligeojhafnkmrcsqtbdp", 1, 10, 2);
- test(S("fraghmbiceknltjpqosd"), "lsimqfnjarbopedkhcgt", 1, 19, 13);
- test(S("pmafenlhqtdbkirjsogc"), "abedmfjlghniorcqptks", 1, 20, S::npos);
- test(S("pihgmoeqtnakrjslcbfd"), "", 10, 0, 10);
- test(S("gjdkeprctqblnhiafsom"), "hqtoa", 10, 0, 10);
- test(S("mkpnblfdsahrcqijteog"), "cahif", 10, 1, 10);
- test(S("gckarqnelodfjhmbptis"), "kehis", 10, 2, 10);
- test(S("gqpskidtbclomahnrjfe"), "kdlmh", 10, 4, 11);
- test(S("pkldjsqrfgitbhmaecno"), "paeql", 10, 5, 10);
- test(S("aftsijrbeklnmcdqhgop"), "aghoqiefnb", 10, 0, 10);
- test(S("mtlgdrhafjkbiepqnsoc"), "jrbqaikpdo", 10, 1, 10);
- test(S("pqgirnaefthokdmbsclj"), "smjonaeqcl", 10, 5, 10);
- test(S("kpdbgjmtherlsfcqoina"), "eqbdrkcfah", 10, 9, 11);
- test(S("jrlbothiknqmdgcfasep"), "kapmsienhf", 10, 10, 10);
- test(S("mjogldqferckabinptsh"), "jpqotrlenfcsbhkaimdg", 10, 0, 10);
- test(S("apoklnefbhmgqcdrisjt"), "jlbmhnfgtcqprikeados", 10, 1, 10);
- test(S("ifeopcnrjbhkdgatmqls"), "stgbhfmdaljnpqoicker", 10, 10, 11);
- test(S("ckqhaiesmjdnrgolbtpf"), "oihcetflbjagdsrkmqpn", 10, 19, 11);
- test(S("bnlgapfimcoterskqdjh"), "adtclebmnpjsrqfkigoh", 10, 20, S::npos);
- test(S("kgdlrobpmjcthqsafeni"), "", 19, 0, 19);
- test(S("dfkechomjapgnslbtqir"), "beafg", 19, 0, 19);
- test(S("rloadknfbqtgmhcsipje"), "iclat", 19, 1, 19);
- test(S("mgjhkolrnadqbpetcifs"), "rkhnf", 19, 2, 19);
- test(S("cmlfakiojdrgtbsphqen"), "clshq", 19, 4, 19);
- test(S("kghbfipeomsntdalrqjc"), "dtcoj", 19, 5, S::npos);
- test(S("eldiqckrnmtasbghjfpo"), "rqosnjmfth", 19, 0, 19);
- test(S("abqjcfedgotihlnspkrm"), "siatdfqglh", 19, 1, 19);
- test(S("qfbadrtjsimkolcenhpg"), "mrlshtpgjq", 19, 5, 19);
- test(S("abseghclkjqifmtodrnp"), "adlcskgqjt", 19, 9, 19);
- test(S("ibmsnlrjefhtdokacqpg"), "drshcjknaf", 19, 10, 19);
- test(S("mrkfciqjebaponsthldg"), "etsaqroinghpkjdlfcbm", 19, 0, 19);
- test(S("mjkticdeoqshpalrfbgn"), "sgepdnkqliambtrocfhj", 19, 1, 19);
- test(S("rqnoclbdejgiphtfsakm"), "nlmcjaqgbsortfdihkpe", 19, 10, S::npos);
- test(S("plkqbhmtfaeodjcrsing"), "racfnpmosldibqkghjet", 19, 19, S::npos);
- test(S("oegalhmstjrfickpbndq"), "fjhdsctkqeiolagrnmbp", 19, 20, S::npos);
- test(S("rdtgjcaohpblniekmsfq"), "", 20, 0, S::npos);
- test(S("ofkqbnjetrmsaidphglc"), "ejanp", 20, 0, S::npos);
- test(S("grkpahljcftesdmonqib"), "odife", 20, 1, S::npos);
- test(S("jimlgbhfqkteospardcn"), "okaqd", 20, 2, S::npos);
- test(S("gftenihpmslrjkqadcob"), "lcdbi", 20, 4, S::npos);
- test(S("bmhldogtckrfsanijepq"), "fsqbj", 20, 5, S::npos);
- test(S("nfqkrpjdesabgtlcmoih"), "bigdomnplq", 20, 0, S::npos);
- test(S("focalnrpiqmdkstehbjg"), "apiblotgcd", 20, 1, S::npos);
- test(S("rhqdspkmebiflcotnjga"), "acfhdenops", 20, 5, S::npos);
- test(S("rahdtmsckfboqlpniegj"), "jopdeamcrk", 20, 9, S::npos);
- test(S("fbkeiopclstmdqranjhg"), "trqncbkgmh", 20, 10, S::npos);
- test(S("lifhpdgmbconstjeqark"), "tomglrkencbsfjqpihda", 20, 0, S::npos);
+void test2() {
+ test(S("sdpcilonqj"), "dnjfsagktr", 10, 5, S::npos);
+ test(S("gtfbdkqeml"), "nejaktmiqg", 10, 9, S::npos);
+ test(S("bmeqgcdorj"), "pjqonlebsf", 10, 10, S::npos);
+ test(S("etqlcanmob"), "dshmnbtolcjepgaikfqr", 10, 0, S::npos);
+ test(S("roqmkbdtia"), "iogfhpabtjkqlrnemcds", 10, 1, S::npos);
+ test(S("kadsithljf"), "ngridfabjsecpqltkmoh", 10, 10, S::npos);
+ test(S("sgtkpbfdmh"), "athmknplcgofrqejsdib", 10, 19, S::npos);
+ test(S("qgmetnabkl"), "ldobhmqcafnjtkeisgrp", 10, 20, S::npos);
+ test(S("cqjohampgd"), "", 11, 0, S::npos);
+ test(S("hobitmpsan"), "aocjb", 11, 0, S::npos);
+ test(S("tjehkpsalm"), "jbrnk", 11, 1, S::npos);
+ test(S("ngfbojitcl"), "tqedg", 11, 2, S::npos);
+ test(S("rcfkdbhgjo"), "nqskp", 11, 4, S::npos);
+ test(S("qghptonrea"), "eaqkl", 11, 5, S::npos);
+ test(S("hnprfgqjdl"), "reaoicljqm", 11, 0, S::npos);
+ test(S("hlmgabenti"), "lsftgajqpm", 11, 1, S::npos);
+ test(S("ofcjanmrbs"), "rlpfogmits", 11, 5, S::npos);
+ test(S("jqedtkornm"), "shkncmiaqj", 11, 9, S::npos);
+ test(S("rfedlasjmg"), "fpnatrhqgs", 11, 10, S::npos);
+ test(S("talpqjsgkm"), "sjclemqhnpdbgikarfot", 11, 0, S::npos);
+ test(S("lrkcbtqpie"), "otcmedjikgsfnqbrhpla", 11, 1, S::npos);
+ test(S("cipogdskjf"), "bonsaefdqiprkhlgtjcm", 11, 10, S::npos);
+ test(S("nqedcojahi"), "egpscmahijlfnkrodqtb", 11, 19, S::npos);
+ test(S("hefnrkmctj"), "kmqbfepjthgilscrndoa", 11, 20, S::npos);
+ test(S("atqirnmekfjolhpdsgcb"), "", 0, 0, 0);
+ test(S("echfkmlpribjnqsaogtd"), "prboq", 0, 0, 0);
+ test(S("qnhiftdgcleajbpkrosm"), "fjcqh", 0, 1, 0);
+ test(S("chamfknorbedjitgslpq"), "fmosa", 0, 2, 0);
+ test(S("njhqpibfmtlkaecdrgso"), "qdbok", 0, 4, 0);
+ test(S("ebnghfsqkprmdcljoiat"), "amslg", 0, 5, 0);
+ test(S("letjomsgihfrpqbkancd"), "smpltjneqb", 0, 0, 0);
+ test(S("nblgoipcrqeaktshjdmf"), "flitskrnge", 0, 1, 0);
+ test(S("cehkbngtjoiflqapsmrd"), "pgqihmlbef", 0, 5, 0);
+ test(S("mignapfoklbhcqjetdrs"), "cfpdqjtgsb", 0, 9, 0);
+ test(S("ceatbhlsqjgpnokfrmdi"), "htpsiaflom", 0, 10, 0);
+ test(S("ocihkjgrdelpfnmastqb"), "kpjfiaceghsrdtlbnomq", 0, 0, 0);
+ test(S("noelgschdtbrjfmiqkap"), "qhtbomidljgafneksprc", 0, 1, 0);
+ test(S("dkclqfombepritjnghas"), "nhtjobkcefldimpsaqgr", 0, 10, 0);
+ test(S("miklnresdgbhqcojftap"), "prabcjfqnoeskilmtgdh", 0, 19, 11);
+ test(S("htbcigojaqmdkfrnlsep"), "dtrgmchilkasqoebfpjn", 0, 20, S::npos);
+ test(S("febhmqtjanokscdirpgl"), "", 1, 0, 1);
+ test(S("loakbsqjpcrdhftniegm"), "sqome", 1, 0, 1);
+ test(S("reagphsqflbitdcjmkno"), "smfte", 1, 1, 1);
+ test(S("jitlfrqemsdhkopncabg"), "ciboh", 1, 2, 2);
+ test(S("mhtaepscdnrjqgbkifol"), "haois", 1, 4, 2);
+ test(S("tocesrfmnglpbjihqadk"), "abfki", 1, 5, 1);
+ test(S("lpfmctjrhdagneskbqoi"), "frdkocntmq", 1, 0, 1);
+ test(S("lsmqaepkdhncirbtjfgo"), "oasbpedlnr", 1, 1, 1);
+ test(S("epoiqmtldrabnkjhcfsg"), "kltqmhgand", 1, 5, 1);
+ test(S("emgasrilpknqojhtbdcf"), "gdtfjchpmr", 1, 9, 3);
+ test(S("hnfiagdpcklrjetqbsom"), "ponmcqblet", 1, 10, 2);
+ test(S("nsdfebgajhmtricpoklq"), "sgphqdnofeiklatbcmjr", 1, 0, 1);
+ test(S("atjgfsdlpobmeiqhncrk"), "ljqprsmigtfoneadckbh", 1, 1, 1);
+ test(S("sitodfgnrejlahcbmqkp"), "ligeojhafnkmrcsqtbdp", 1, 10, 2);
+ test(S("fraghmbiceknltjpqosd"), "lsimqfnjarbopedkhcgt", 1, 19, 13);
+ test(S("pmafenlhqtdbkirjsogc"), "abedmfjlghniorcqptks", 1, 20, S::npos);
+ test(S("pihgmoeqtnakrjslcbfd"), "", 10, 0, 10);
+ test(S("gjdkeprctqblnhiafsom"), "hqtoa", 10, 0, 10);
+ test(S("mkpnblfdsahrcqijteog"), "cahif", 10, 1, 10);
+ test(S("gckarqnelodfjhmbptis"), "kehis", 10, 2, 10);
+ test(S("gqpskidtbclomahnrjfe"), "kdlmh", 10, 4, 11);
+ test(S("pkldjsqrfgitbhmaecno"), "paeql", 10, 5, 10);
+ test(S("aftsijrbeklnmcdqhgop"), "aghoqiefnb", 10, 0, 10);
+ test(S("mtlgdrhafjkbiepqnsoc"), "jrbqaikpdo", 10, 1, 10);
+ test(S("pqgirnaefthokdmbsclj"), "smjonaeqcl", 10, 5, 10);
+ test(S("kpdbgjmtherlsfcqoina"), "eqbdrkcfah", 10, 9, 11);
+ test(S("jrlbothiknqmdgcfasep"), "kapmsienhf", 10, 10, 10);
+ test(S("mjogldqferckabinptsh"), "jpqotrlenfcsbhkaimdg", 10, 0, 10);
+ test(S("apoklnefbhmgqcdrisjt"), "jlbmhnfgtcqprikeados", 10, 1, 10);
+ test(S("ifeopcnrjbhkdgatmqls"), "stgbhfmdaljnpqoicker", 10, 10, 11);
+ test(S("ckqhaiesmjdnrgolbtpf"), "oihcetflbjagdsrkmqpn", 10, 19, 11);
+ test(S("bnlgapfimcoterskqdjh"), "adtclebmnpjsrqfkigoh", 10, 20, S::npos);
+ test(S("kgdlrobpmjcthqsafeni"), "", 19, 0, 19);
+ test(S("dfkechomjapgnslbtqir"), "beafg", 19, 0, 19);
+ test(S("rloadknfbqtgmhcsipje"), "iclat", 19, 1, 19);
+ test(S("mgjhkolrnadqbpetcifs"), "rkhnf", 19, 2, 19);
+ test(S("cmlfakiojdrgtbsphqen"), "clshq", 19, 4, 19);
+ test(S("kghbfipeomsntdalrqjc"), "dtcoj", 19, 5, S::npos);
+ test(S("eldiqckrnmtasbghjfpo"), "rqosnjmfth", 19, 0, 19);
+ test(S("abqjcfedgotihlnspkrm"), "siatdfqglh", 19, 1, 19);
+ test(S("qfbadrtjsimkolcenhpg"), "mrlshtpgjq", 19, 5, 19);
+ test(S("abseghclkjqifmtodrnp"), "adlcskgqjt", 19, 9, 19);
+ test(S("ibmsnlrjefhtdokacqpg"), "drshcjknaf", 19, 10, 19);
+ test(S("mrkfciqjebaponsthldg"), "etsaqroinghpkjdlfcbm", 19, 0, 19);
+ test(S("mjkticdeoqshpalrfbgn"), "sgepdnkqliambtrocfhj", 19, 1, 19);
+ test(S("rqnoclbdejgiphtfsakm"), "nlmcjaqgbsortfdihkpe", 19, 10, S::npos);
+ test(S("plkqbhmtfaeodjcrsing"), "racfnpmosldibqkghjet", 19, 19, S::npos);
+ test(S("oegalhmstjrfickpbndq"), "fjhdsctkqeiolagrnmbp", 19, 20, S::npos);
+ test(S("rdtgjcaohpblniekmsfq"), "", 20, 0, S::npos);
+ test(S("ofkqbnjetrmsaidphglc"), "ejanp", 20, 0, S::npos);
+ test(S("grkpahljcftesdmonqib"), "odife", 20, 1, S::npos);
+ test(S("jimlgbhfqkteospardcn"), "okaqd", 20, 2, S::npos);
+ test(S("gftenihpmslrjkqadcob"), "lcdbi", 20, 4, S::npos);
+ test(S("bmhldogtckrfsanijepq"), "fsqbj", 20, 5, S::npos);
+ test(S("nfqkrpjdesabgtlcmoih"), "bigdomnplq", 20, 0, S::npos);
+ test(S("focalnrpiqmdkstehbjg"), "apiblotgcd", 20, 1, S::npos);
+ test(S("rhqdspkmebiflcotnjga"), "acfhdenops", 20, 5, S::npos);
+ test(S("rahdtmsckfboqlpniegj"), "jopdeamcrk", 20, 9, S::npos);
+ test(S("fbkeiopclstmdqranjhg"), "trqncbkgmh", 20, 10, S::npos);
+ test(S("lifhpdgmbconstjeqark"), "tomglrkencbsfjqpihda", 20, 0, S::npos);
}
template <class S>
-void test3()
-{
- test(S("pboqganrhedjmltsicfk"), "gbkhdnpoietfcmrslajq", 20, 1, S::npos);
- test(S("klchabsimetjnqgorfpd"), "rtfnmbsglkjaichoqedp", 20, 10, S::npos);
- test(S("sirfgmjqhctndbklaepo"), "ohkmdpfqbsacrtjnlgei", 20, 19, S::npos);
- test(S("rlbdsiceaonqjtfpghkm"), "dlbrteoisgphmkncajfq", 20, 20, S::npos);
- test(S("ecgdanriptblhjfqskom"), "", 21, 0, S::npos);
- test(S("fdmiarlpgcskbhoteqjn"), "sjrlo", 21, 0, S::npos);
- test(S("rlbstjqopignecmfadkh"), "qjpor", 21, 1, S::npos);
- test(S("grjpqmbshektdolcafni"), "odhfn", 21, 2, S::npos);
- test(S("sakfcohtqnibprjmlged"), "qtfin", 21, 4, S::npos);
- test(S("mjtdglasihqpocebrfkn"), "hpqfo", 21, 5, S::npos);
- test(S("okaplfrntghqbmeicsdj"), "fabmertkos", 21, 0, S::npos);
- test(S("sahngemrtcjidqbklfpo"), "brqtgkmaej", 21, 1, S::npos);
- test(S("dlmsipcnekhbgoaftqjr"), "nfrdeihsgl", 21, 5, S::npos);
- test(S("ahegrmqnoiklpfsdbcjt"), "hlfrosekpi", 21, 9, S::npos);
- test(S("hdsjbnmlegtkqripacof"), "atgbkrjdsm", 21, 10, S::npos);
- test(S("pcnedrfjihqbalkgtoms"), "blnrptjgqmaifsdkhoec", 21, 0, S::npos);
- test(S("qjidealmtpskrbfhocng"), "ctpmdahebfqjgknloris", 21, 1, S::npos);
- test(S("qeindtagmokpfhsclrbj"), "apnkeqthrmlbfodiscgj", 21, 10, S::npos);
- test(S("kpfegbjhsrnodltqciam"), "jdgictpframeoqlsbknh", 21, 19, S::npos);
- test(S("hnbrcplsjfgiktoedmaq"), "qprlsfojamgndekthibc", 21, 20, S::npos);
+void test3() {
+ test(S("pboqganrhedjmltsicfk"), "gbkhdnpoietfcmrslajq", 20, 1, S::npos);
+ test(S("klchabsimetjnqgorfpd"), "rtfnmbsglkjaichoqedp", 20, 10, S::npos);
+ test(S("sirfgmjqhctndbklaepo"), "ohkmdpfqbsacrtjnlgei", 20, 19, S::npos);
+ test(S("rlbdsiceaonqjtfpghkm"), "dlbrteoisgphmkncajfq", 20, 20, S::npos);
+ test(S("ecgdanriptblhjfqskom"), "", 21, 0, S::npos);
+ test(S("fdmiarlpgcskbhoteqjn"), "sjrlo", 21, 0, S::npos);
+ test(S("rlbstjqopignecmfadkh"), "qjpor", 21, 1, S::npos);
+ test(S("grjpqmbshektdolcafni"), "odhfn", 21, 2, S::npos);
+ test(S("sakfcohtqnibprjmlged"), "qtfin", 21, 4, S::npos);
+ test(S("mjtdglasihqpocebrfkn"), "hpqfo", 21, 5, S::npos);
+ test(S("okaplfrntghqbmeicsdj"), "fabmertkos", 21, 0, S::npos);
+ test(S("sahngemrtcjidqbklfpo"), "brqtgkmaej", 21, 1, S::npos);
+ test(S("dlmsipcnekhbgoaftqjr"), "nfrdeihsgl", 21, 5, S::npos);
+ test(S("ahegrmqnoiklpfsdbcjt"), "hlfrosekpi", 21, 9, S::npos);
+ test(S("hdsjbnmlegtkqripacof"), "atgbkrjdsm", 21, 10, S::npos);
+ test(S("pcnedrfjihqbalkgtoms"), "blnrptjgqmaifsdkhoec", 21, 0, S::npos);
+ test(S("qjidealmtpskrbfhocng"), "ctpmdahebfqjgknloris", 21, 1, S::npos);
+ test(S("qeindtagmokpfhsclrbj"), "apnkeqthrmlbfodiscgj", 21, 10, S::npos);
+ test(S("kpfegbjhsrnodltqciam"), "jdgictpframeoqlsbknh", 21, 19, S::npos);
+ test(S("hnbrcplsjfgiktoedmaq"), "qprlsfojamgndekthibc", 21, 20, S::npos);
}
-int main(int, char**)
-{
- {
+int main(int, char**) {
+ {
typedef std::string_view S;
test0<S>();
test1<S>();
test2<S>();
test3<S>();
- }
+ }
#if TEST_STD_VER > 11
- {
+ {
typedef std::basic_string_view<char, constexpr_char_traits<char>> SV;
- constexpr SV sv1;
- constexpr SV sv2 { "abcde", 5 };
+ constexpr SV sv1;
+ constexpr SV sv2{"abcde", 5};
- static_assert (sv1.find_first_not_of( "", 0, 0) == SV::npos, "" );
- static_assert (sv1.find_first_not_of( "irkhs", 0, 5) == SV::npos, "" );
- static_assert (sv2.find_first_not_of( "", 0, 0) == 0, "" );
- static_assert (sv2.find_first_not_of( "gfsrt", 0, 5) == 0, "" );
- static_assert (sv2.find_first_not_of( "lecar", 0, 5) == 1, "" );
- }
+ static_assert(sv1.find_first_not_of("", 0, 0) == SV::npos, "");
+ static_assert(sv1.find_first_not_of("irkhs", 0, 5) == SV::npos, "");
+ static_assert(sv2.find_first_not_of("", 0, 0) == 0, "");
+ static_assert(sv2.find_first_not_of("gfsrt", 0, 5) == 0, "");
+ static_assert(sv2.find_first_not_of("lecar", 0, 5) == 1, "");
+ }
#endif
return 0;
diff --git a/libcxx/test/std/strings/string.view/string.view.find/find_first_not_of_string_view_size.pass.cpp b/libcxx/test/std/strings/string.view/string.view.find/find_first_not_of_string_view_size.pass.cpp
index 3067f17ea127b8b..bf93082ddb5c013 100644
--- a/libcxx/test/std/strings/string.view/string.view.find/find_first_not_of_string_view_size.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.find/find_first_not_of_string_view_size.pass.cpp
@@ -18,137 +18,130 @@
#include "test_macros.h"
template <class S>
-void
-test(const S& s, const S& str, typename S::size_type pos, typename S::size_type x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.find_first_not_of(str, pos));
- assert(s.find_first_not_of(str, pos) == x);
- if (x != S::npos)
- assert(pos <= x && x < s.size());
+void test(const S& s, const S& str, typename S::size_type pos, typename S::size_type x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.find_first_not_of(str, pos));
+ assert(s.find_first_not_of(str, pos) == x);
+ if (x != S::npos)
+ assert(pos <= x && x < s.size());
}
template <class S>
-void
-test(const S& s, const S& str, typename S::size_type x)
-{
- assert(s.find_first_not_of(str) == x);
- if (x != S::npos)
- assert(x < s.size());
+void test(const S& s, const S& str, typename S::size_type x) {
+ assert(s.find_first_not_of(str) == x);
+ if (x != S::npos)
+ assert(x < s.size());
}
template <class S>
-void test0()
-{
- test(S(""), S(""), 0, S::npos);
- test(S(""), S("laenf"), 0, S::npos);
- test(S(""), S("pqlnkmbdjo"), 0, S::npos);
- test(S(""), S("qkamfogpnljdcshbreti"), 0, S::npos);
- test(S(""), S(""), 1, S::npos);
- test(S(""), S("bjaht"), 1, S::npos);
- test(S(""), S("hjlcmgpket"), 1, S::npos);
- test(S(""), S("htaobedqikfplcgjsmrn"), 1, S::npos);
- test(S("fodgq"), S(""), 0, 0);
- test(S("qanej"), S("dfkap"), 0, 0);
- test(S("clbao"), S("ihqrfebgad"), 0, 0);
- test(S("mekdn"), S("ngtjfcalbseiqrphmkdo"), 0, S::npos);
- test(S("srdfq"), S(""), 1, 1);
- test(S("oemth"), S("ikcrq"), 1, 1);
- test(S("cdaih"), S("dmajblfhsg"), 1, 3);
- test(S("qohtk"), S("oqftjhdmkgsblacenirp"), 1, S::npos);
- test(S("cshmd"), S(""), 2, 2);
- test(S("lhcdo"), S("oebqi"), 2, 2);
- test(S("qnsoh"), S("kojhpmbsfe"), 2, S::npos);
- test(S("pkrof"), S("acbsjqogpltdkhinfrem"), 2, S::npos);
- test(S("fmtsp"), S(""), 4, 4);
- test(S("khbpm"), S("aobjd"), 4, 4);
- test(S("pbsji"), S("pcbahntsje"), 4, 4);
- test(S("mprdj"), S("fhepcrntkoagbmldqijs"), 4, S::npos);
- test(S("eqmpa"), S(""), 5, S::npos);
- test(S("omigs"), S("kocgb"), 5, S::npos);
- test(S("onmje"), S("fbslrjiqkm"), 5, S::npos);
- test(S("oqmrj"), S("jeidpcmalhfnqbgtrsko"), 5, S::npos);
- test(S("schfa"), S(""), 6, S::npos);
- test(S("igdsc"), S("qngpd"), 6, S::npos);
- test(S("brqgo"), S("rodhqklgmb"), 6, S::npos);
- test(S("tnrph"), S("thdjgafrlbkoiqcspmne"), 6, S::npos);
- test(S("hcjitbfapl"), S(""), 0, 0);
- test(S("daiprenocl"), S("ashjd"), 0, 2);
- test(S("litpcfdghe"), S("mgojkldsqh"), 0, 1);
- test(S("aidjksrolc"), S("imqnaghkfrdtlopbjesc"), 0, S::npos);
- test(S("qpghtfbaji"), S(""), 1, 1);
- test(S("gfshlcmdjr"), S("nadkh"), 1, 1);
- test(S("nkodajteqp"), S("ofdrqmkebl"), 1, 4);
- test(S("gbmetiprqd"), S("bdfjqgatlksriohemnpc"), 1, S::npos);
- test(S("crnklpmegd"), S(""), 5, 5);
- test(S("jsbtafedoc"), S("prqgn"), 5, 5);
- test(S("qnmodrtkeb"), S("pejafmnokr"), 5, 6);
- test(S("cpebqsfmnj"), S("odnqkgijrhabfmcestlp"), 5, S::npos);
- test(S("lmofqdhpki"), S(""), 9, 9);
- test(S("hnefkqimca"), S("rtjpa"), 9, S::npos);
- test(S("drtasbgmfp"), S("ktsrmnqagd"), 9, 9);
- test(S("lsaijeqhtr"), S("rtdhgcisbnmoaqkfpjle"), 9, S::npos);
- test(S("elgofjmbrq"), S(""), 10, S::npos);
- test(S("mjqdgalkpc"), S("dplqa"), 10, S::npos);
- test(S("kthqnfcerm"), S("dkacjoptns"), 10, S::npos);
- test(S("dfsjhanorc"), S("hqfimtrgnbekpdcsjalo"), 10, S::npos);
- test(S("eqsgalomhb"), S(""), 11, S::npos);
- test(S("akiteljmoh"), S("lofbc"), 11, S::npos);
- test(S("hlbdfreqjo"), S("astoegbfpn"), 11, S::npos);
- test(S("taqobhlerg"), S("pdgreqomsncafklhtibj"), 11, S::npos);
- test(S("snafbdlghrjkpqtoceim"), S(""), 0, 0);
- test(S("aemtbrgcklhndjisfpoq"), S("lbtqd"), 0, 0);
- test(S("pnracgfkjdiholtbqsem"), S("tboimldpjh"), 0, 1);
- test(S("dicfltehbsgrmojnpkaq"), S("slcerthdaiqjfnobgkpm"), 0, S::npos);
- test(S("jlnkraeodhcspfgbqitm"), S(""), 1, 1);
- test(S("lhosrngtmfjikbqpcade"), S("aqibs"), 1, 1);
- test(S("rbtaqjhgkneisldpmfoc"), S("gtfblmqinc"), 1, 3);
- test(S("gpifsqlrdkbonjtmheca"), S("mkqpbtdalgniorhfescj"), 1, S::npos);
- test(S("hdpkobnsalmcfijregtq"), S(""), 10, 10);
- test(S("jtlshdgqaiprkbcoenfm"), S("pblas"), 10, 11);
- test(S("fkdrbqltsgmcoiphneaj"), S("arosdhcfme"), 10, 13);
- test(S("crsplifgtqedjohnabmk"), S("blkhjeogicatqfnpdmsr"), 10, S::npos);
- test(S("niptglfbosehkamrdqcj"), S(""), 19, 19);
- test(S("copqdhstbingamjfkler"), S("djkqc"), 19, 19);
- test(S("mrtaefilpdsgocnhqbjk"), S("lgokshjtpb"), 19, S::npos);
- test(S("kojatdhlcmigpbfrqnes"), S("bqjhtkfepimcnsgrlado"), 19, S::npos);
- test(S("eaintpchlqsbdgrkjofm"), S(""), 20, S::npos);
- test(S("gjnhidfsepkrtaqbmclo"), S("nocfa"), 20, S::npos);
- test(S("spocfaktqdbiejlhngmr"), S("bgtajmiedc"), 20, S::npos);
- test(S("rphmlekgfscndtaobiqj"), S("lsckfnqgdahejiopbtmr"), 20, S::npos);
- test(S("liatsqdoegkmfcnbhrpj"), S(""), 21, S::npos);
- test(S("binjagtfldkrspcomqeh"), S("gfsrt"), 21, S::npos);
- test(S("latkmisecnorjbfhqpdg"), S("pfsocbhjtm"), 21, S::npos);
- test(S("lecfratdjkhnsmqpoigb"), S("tpflmdnoicjgkberhqsa"), 21, S::npos);
+void test0() {
+ test(S(""), S(""), 0, S::npos);
+ test(S(""), S("laenf"), 0, S::npos);
+ test(S(""), S("pqlnkmbdjo"), 0, S::npos);
+ test(S(""), S("qkamfogpnljdcshbreti"), 0, S::npos);
+ test(S(""), S(""), 1, S::npos);
+ test(S(""), S("bjaht"), 1, S::npos);
+ test(S(""), S("hjlcmgpket"), 1, S::npos);
+ test(S(""), S("htaobedqikfplcgjsmrn"), 1, S::npos);
+ test(S("fodgq"), S(""), 0, 0);
+ test(S("qanej"), S("dfkap"), 0, 0);
+ test(S("clbao"), S("ihqrfebgad"), 0, 0);
+ test(S("mekdn"), S("ngtjfcalbseiqrphmkdo"), 0, S::npos);
+ test(S("srdfq"), S(""), 1, 1);
+ test(S("oemth"), S("ikcrq"), 1, 1);
+ test(S("cdaih"), S("dmajblfhsg"), 1, 3);
+ test(S("qohtk"), S("oqftjhdmkgsblacenirp"), 1, S::npos);
+ test(S("cshmd"), S(""), 2, 2);
+ test(S("lhcdo"), S("oebqi"), 2, 2);
+ test(S("qnsoh"), S("kojhpmbsfe"), 2, S::npos);
+ test(S("pkrof"), S("acbsjqogpltdkhinfrem"), 2, S::npos);
+ test(S("fmtsp"), S(""), 4, 4);
+ test(S("khbpm"), S("aobjd"), 4, 4);
+ test(S("pbsji"), S("pcbahntsje"), 4, 4);
+ test(S("mprdj"), S("fhepcrntkoagbmldqijs"), 4, S::npos);
+ test(S("eqmpa"), S(""), 5, S::npos);
+ test(S("omigs"), S("kocgb"), 5, S::npos);
+ test(S("onmje"), S("fbslrjiqkm"), 5, S::npos);
+ test(S("oqmrj"), S("jeidpcmalhfnqbgtrsko"), 5, S::npos);
+ test(S("schfa"), S(""), 6, S::npos);
+ test(S("igdsc"), S("qngpd"), 6, S::npos);
+ test(S("brqgo"), S("rodhqklgmb"), 6, S::npos);
+ test(S("tnrph"), S("thdjgafrlbkoiqcspmne"), 6, S::npos);
+ test(S("hcjitbfapl"), S(""), 0, 0);
+ test(S("daiprenocl"), S("ashjd"), 0, 2);
+ test(S("litpcfdghe"), S("mgojkldsqh"), 0, 1);
+ test(S("aidjksrolc"), S("imqnaghkfrdtlopbjesc"), 0, S::npos);
+ test(S("qpghtfbaji"), S(""), 1, 1);
+ test(S("gfshlcmdjr"), S("nadkh"), 1, 1);
+ test(S("nkodajteqp"), S("ofdrqmkebl"), 1, 4);
+ test(S("gbmetiprqd"), S("bdfjqgatlksriohemnpc"), 1, S::npos);
+ test(S("crnklpmegd"), S(""), 5, 5);
+ test(S("jsbtafedoc"), S("prqgn"), 5, 5);
+ test(S("qnmodrtkeb"), S("pejafmnokr"), 5, 6);
+ test(S("cpebqsfmnj"), S("odnqkgijrhabfmcestlp"), 5, S::npos);
+ test(S("lmofqdhpki"), S(""), 9, 9);
+ test(S("hnefkqimca"), S("rtjpa"), 9, S::npos);
+ test(S("drtasbgmfp"), S("ktsrmnqagd"), 9, 9);
+ test(S("lsaijeqhtr"), S("rtdhgcisbnmoaqkfpjle"), 9, S::npos);
+ test(S("elgofjmbrq"), S(""), 10, S::npos);
+ test(S("mjqdgalkpc"), S("dplqa"), 10, S::npos);
+ test(S("kthqnfcerm"), S("dkacjoptns"), 10, S::npos);
+ test(S("dfsjhanorc"), S("hqfimtrgnbekpdcsjalo"), 10, S::npos);
+ test(S("eqsgalomhb"), S(""), 11, S::npos);
+ test(S("akiteljmoh"), S("lofbc"), 11, S::npos);
+ test(S("hlbdfreqjo"), S("astoegbfpn"), 11, S::npos);
+ test(S("taqobhlerg"), S("pdgreqomsncafklhtibj"), 11, S::npos);
+ test(S("snafbdlghrjkpqtoceim"), S(""), 0, 0);
+ test(S("aemtbrgcklhndjisfpoq"), S("lbtqd"), 0, 0);
+ test(S("pnracgfkjdiholtbqsem"), S("tboimldpjh"), 0, 1);
+ test(S("dicfltehbsgrmojnpkaq"), S("slcerthdaiqjfnobgkpm"), 0, S::npos);
+ test(S("jlnkraeodhcspfgbqitm"), S(""), 1, 1);
+ test(S("lhosrngtmfjikbqpcade"), S("aqibs"), 1, 1);
+ test(S("rbtaqjhgkneisldpmfoc"), S("gtfblmqinc"), 1, 3);
+ test(S("gpifsqlrdkbonjtmheca"), S("mkqpbtdalgniorhfescj"), 1, S::npos);
+ test(S("hdpkobnsalmcfijregtq"), S(""), 10, 10);
+ test(S("jtlshdgqaiprkbcoenfm"), S("pblas"), 10, 11);
+ test(S("fkdrbqltsgmcoiphneaj"), S("arosdhcfme"), 10, 13);
+ test(S("crsplifgtqedjohnabmk"), S("blkhjeogicatqfnpdmsr"), 10, S::npos);
+ test(S("niptglfbosehkamrdqcj"), S(""), 19, 19);
+ test(S("copqdhstbingamjfkler"), S("djkqc"), 19, 19);
+ test(S("mrtaefilpdsgocnhqbjk"), S("lgokshjtpb"), 19, S::npos);
+ test(S("kojatdhlcmigpbfrqnes"), S("bqjhtkfepimcnsgrlado"), 19, S::npos);
+ test(S("eaintpchlqsbdgrkjofm"), S(""), 20, S::npos);
+ test(S("gjnhidfsepkrtaqbmclo"), S("nocfa"), 20, S::npos);
+ test(S("spocfaktqdbiejlhngmr"), S("bgtajmiedc"), 20, S::npos);
+ test(S("rphmlekgfscndtaobiqj"), S("lsckfnqgdahejiopbtmr"), 20, S::npos);
+ test(S("liatsqdoegkmfcnbhrpj"), S(""), 21, S::npos);
+ test(S("binjagtfldkrspcomqeh"), S("gfsrt"), 21, S::npos);
+ test(S("latkmisecnorjbfhqpdg"), S("pfsocbhjtm"), 21, S::npos);
+ test(S("lecfratdjkhnsmqpoigb"), S("tpflmdnoicjgkberhqsa"), 21, S::npos);
}
template <class S>
-void test1()
-{
- test(S(""), S(""), S::npos);
- test(S(""), S("laenf"), S::npos);
- test(S(""), S("pqlnkmbdjo"), S::npos);
- test(S(""), S("qkamfogpnljdcshbreti"), S::npos);
- test(S("nhmko"), S(""), 0);
- test(S("lahfb"), S("irkhs"), 0);
- test(S("gmfhd"), S("kantesmpgj"), 2);
- test(S("odaft"), S("oknlrstdpiqmjbaghcfe"), S::npos);
- test(S("eolhfgpjqk"), S(""), 0);
- test(S("nbatdlmekr"), S("bnrpe"), 2);
- test(S("jdmciepkaq"), S("jtdaefblso"), 2);
- test(S("hkbgspoflt"), S("oselktgbcapndfjihrmq"), S::npos);
- test(S("gprdcokbnjhlsfmtieqa"), S(""), 0);
- test(S("qjghlnftcaismkropdeb"), S("bjaht"), 0);
- test(S("pnalfrdtkqcmojiesbhg"), S("hjlcmgpket"), 1);
- test(S("pniotcfrhqsmgdkjbael"), S("htaobedqikfplcgjsmrn"), S::npos);
+void test1() {
+ test(S(""), S(""), S::npos);
+ test(S(""), S("laenf"), S::npos);
+ test(S(""), S("pqlnkmbdjo"), S::npos);
+ test(S(""), S("qkamfogpnljdcshbreti"), S::npos);
+ test(S("nhmko"), S(""), 0);
+ test(S("lahfb"), S("irkhs"), 0);
+ test(S("gmfhd"), S("kantesmpgj"), 2);
+ test(S("odaft"), S("oknlrstdpiqmjbaghcfe"), S::npos);
+ test(S("eolhfgpjqk"), S(""), 0);
+ test(S("nbatdlmekr"), S("bnrpe"), 2);
+ test(S("jdmciepkaq"), S("jtdaefblso"), 2);
+ test(S("hkbgspoflt"), S("oselktgbcapndfjihrmq"), S::npos);
+ test(S("gprdcokbnjhlsfmtieqa"), S(""), 0);
+ test(S("qjghlnftcaismkropdeb"), S("bjaht"), 0);
+ test(S("pnalfrdtkqcmojiesbhg"), S("hjlcmgpket"), 1);
+ test(S("pniotcfrhqsmgdkjbael"), S("htaobedqikfplcgjsmrn"), S::npos);
}
-int main(int, char**)
-{
- {
+int main(int, char**) {
+ {
typedef std::string_view S;
test0<S>();
test1<S>();
- }
+ }
return 0;
}
diff --git a/libcxx/test/std/strings/string.view/string.view.find/find_first_of_char_size.pass.cpp b/libcxx/test/std/strings/string.view/string.view.find/find_first_of_char_size.pass.cpp
index ff6af094760d70d..05b745b71307e0b 100644
--- a/libcxx/test/std/strings/string.view/string.view.find/find_first_of_char_size.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.find/find_first_of_char_size.pass.cpp
@@ -19,28 +19,22 @@
#include "constexpr_char_traits.h"
template <class S>
-void
-test(const S& s, typename S::value_type c, typename S::size_type pos,
- typename S::size_type x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.find_first_of(c, pos));
- assert(s.find_first_of(c, pos) == x);
- if (x != S::npos)
- assert(pos <= x && x < s.size());
+void test(const S& s, typename S::value_type c, typename S::size_type pos, typename S::size_type x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.find_first_of(c, pos));
+ assert(s.find_first_of(c, pos) == x);
+ if (x != S::npos)
+ assert(pos <= x && x < s.size());
}
template <class S>
-void
-test(const S& s, typename S::value_type c, typename S::size_type x)
-{
- assert(s.find_first_of(c) == x);
- if (x != S::npos)
- assert(x < s.size());
+void test(const S& s, typename S::value_type c, typename S::size_type x) {
+ assert(s.find_first_of(c) == x);
+ if (x != S::npos)
+ assert(x < s.size());
}
-int main(int, char**)
-{
- {
+int main(int, char**) {
+ {
typedef std::string_view S;
test(S(""), 'e', 0, S::npos);
test(S(""), 'e', 1, S::npos);
@@ -67,20 +61,20 @@ int main(int, char**)
test(S("csope"), 'e', 4);
test(S("gfsmthlkon"), 'e', S::npos);
test(S("laenfsbridchgotmkqpj"), 'e', 2);
- }
+ }
#if TEST_STD_VER > 11
- {
+ {
typedef std::basic_string_view<char, constexpr_char_traits<char>> SV;
- constexpr SV sv1;
- constexpr SV sv2 { "abcde", 5 };
+ constexpr SV sv1;
+ constexpr SV sv2{"abcde", 5};
- static_assert (sv1.find_first_of( 'e', 0 ) == SV::npos, "" );
- static_assert (sv1.find_first_of( 'e', 1 ) == SV::npos, "" );
- static_assert (sv2.find_first_of( 'q', 0 ) == SV::npos, "" );
- static_assert (sv2.find_first_of( 'e', 1 ) == 4, "" );
- static_assert (sv2.find_first_of( 'e', 5 ) == SV::npos, "" );
- }
+ static_assert(sv1.find_first_of('e', 0) == SV::npos, "");
+ static_assert(sv1.find_first_of('e', 1) == SV::npos, "");
+ static_assert(sv2.find_first_of('q', 0) == SV::npos, "");
+ static_assert(sv2.find_first_of('e', 1) == 4, "");
+ static_assert(sv2.find_first_of('e', 5) == SV::npos, "");
+ }
#endif
return 0;
diff --git a/libcxx/test/std/strings/string.view/string.view.find/find_first_of_pointer_size.pass.cpp b/libcxx/test/std/strings/string.view/string.view.find/find_first_of_pointer_size.pass.cpp
index 01fef4d3585f058..30f73129e281ecb 100644
--- a/libcxx/test/std/strings/string.view/string.view.find/find_first_of_pointer_size.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.find/find_first_of_pointer_size.pass.cpp
@@ -19,152 +19,144 @@
#include "constexpr_char_traits.h"
template <class S>
-void
-test(const S& s, const typename S::value_type* str, typename S::size_type pos,
- typename S::size_type x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.find_first_of(str, pos));
- assert(s.find_first_of(str, pos) == x);
- if (x != S::npos)
- assert(pos <= x && x < s.size());
+void test(const S& s, const typename S::value_type* str, typename S::size_type pos, typename S::size_type x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.find_first_of(str, pos));
+ assert(s.find_first_of(str, pos) == x);
+ if (x != S::npos)
+ assert(pos <= x && x < s.size());
}
template <class S>
-void
-test(const S& s, const typename S::value_type* str, typename S::size_type x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.find_first_of(str));
- assert(s.find_first_of(str) == x);
- if (x != S::npos)
- assert(x < s.size());
+void test(const S& s, const typename S::value_type* str, typename S::size_type x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.find_first_of(str));
+ assert(s.find_first_of(str) == x);
+ if (x != S::npos)
+ assert(x < s.size());
}
template <class S>
-void test0()
-{
- test(S(""), "", 0, S::npos);
- test(S(""), "laenf", 0, S::npos);
- test(S(""), "pqlnkmbdjo", 0, S::npos);
- test(S(""), "qkamfogpnljdcshbreti", 0, S::npos);
- test(S(""), "", 1, S::npos);
- test(S(""), "bjaht", 1, S::npos);
- test(S(""), "hjlcmgpket", 1, S::npos);
- test(S(""), "htaobedqikfplcgjsmrn", 1, S::npos);
- test(S("fodgq"), "", 0, S::npos);
- test(S("qanej"), "dfkap", 0, 1);
- test(S("clbao"), "ihqrfebgad", 0, 2);
- test(S("mekdn"), "ngtjfcalbseiqrphmkdo", 0, 0);
- test(S("srdfq"), "", 1, S::npos);
- test(S("oemth"), "ikcrq", 1, S::npos);
- test(S("cdaih"), "dmajblfhsg", 1, 1);
- test(S("qohtk"), "oqftjhdmkgsblacenirp", 1, 1);
- test(S("cshmd"), "", 2, S::npos);
- test(S("lhcdo"), "oebqi", 2, 4);
- test(S("qnsoh"), "kojhpmbsfe", 2, 2);
- test(S("pkrof"), "acbsjqogpltdkhinfrem", 2, 2);
- test(S("fmtsp"), "", 4, S::npos);
- test(S("khbpm"), "aobjd", 4, S::npos);
- test(S("pbsji"), "pcbahntsje", 4, S::npos);
- test(S("mprdj"), "fhepcrntkoagbmldqijs", 4, 4);
- test(S("eqmpa"), "", 5, S::npos);
- test(S("omigs"), "kocgb", 5, S::npos);
- test(S("onmje"), "fbslrjiqkm", 5, S::npos);
- test(S("oqmrj"), "jeidpcmalhfnqbgtrsko", 5, S::npos);
- test(S("schfa"), "", 6, S::npos);
- test(S("igdsc"), "qngpd", 6, S::npos);
- test(S("brqgo"), "rodhqklgmb", 6, S::npos);
- test(S("tnrph"), "thdjgafrlbkoiqcspmne", 6, S::npos);
- test(S("hcjitbfapl"), "", 0, S::npos);
- test(S("daiprenocl"), "ashjd", 0, 0);
- test(S("litpcfdghe"), "mgojkldsqh", 0, 0);
- test(S("aidjksrolc"), "imqnaghkfrdtlopbjesc", 0, 0);
- test(S("qpghtfbaji"), "", 1, S::npos);
- test(S("gfshlcmdjr"), "nadkh", 1, 3);
- test(S("nkodajteqp"), "ofdrqmkebl", 1, 1);
- test(S("gbmetiprqd"), "bdfjqgatlksriohemnpc", 1, 1);
- test(S("crnklpmegd"), "", 5, S::npos);
- test(S("jsbtafedoc"), "prqgn", 5, S::npos);
- test(S("qnmodrtkeb"), "pejafmnokr", 5, 5);
- test(S("cpebqsfmnj"), "odnqkgijrhabfmcestlp", 5, 5);
- test(S("lmofqdhpki"), "", 9, S::npos);
- test(S("hnefkqimca"), "rtjpa", 9, 9);
- test(S("drtasbgmfp"), "ktsrmnqagd", 9, S::npos);
- test(S("lsaijeqhtr"), "rtdhgcisbnmoaqkfpjle", 9, 9);
- test(S("elgofjmbrq"), "", 10, S::npos);
- test(S("mjqdgalkpc"), "dplqa", 10, S::npos);
- test(S("kthqnfcerm"), "dkacjoptns", 10, S::npos);
- test(S("dfsjhanorc"), "hqfimtrgnbekpdcsjalo", 10, S::npos);
- test(S("eqsgalomhb"), "", 11, S::npos);
- test(S("akiteljmoh"), "lofbc", 11, S::npos);
- test(S("hlbdfreqjo"), "astoegbfpn", 11, S::npos);
- test(S("taqobhlerg"), "pdgreqomsncafklhtibj", 11, S::npos);
- test(S("snafbdlghrjkpqtoceim"), "", 0, S::npos);
- test(S("aemtbrgcklhndjisfpoq"), "lbtqd", 0, 3);
- test(S("pnracgfkjdiholtbqsem"), "tboimldpjh", 0, 0);
- test(S("dicfltehbsgrmojnpkaq"), "slcerthdaiqjfnobgkpm", 0, 0);
- test(S("jlnkraeodhcspfgbqitm"), "", 1, S::npos);
- test(S("lhosrngtmfjikbqpcade"), "aqibs", 1, 3);
- test(S("rbtaqjhgkneisldpmfoc"), "gtfblmqinc", 1, 1);
- test(S("gpifsqlrdkbonjtmheca"), "mkqpbtdalgniorhfescj", 1, 1);
- test(S("hdpkobnsalmcfijregtq"), "", 10, S::npos);
- test(S("jtlshdgqaiprkbcoenfm"), "pblas", 10, 10);
- test(S("fkdrbqltsgmcoiphneaj"), "arosdhcfme", 10, 10);
- test(S("crsplifgtqedjohnabmk"), "blkhjeogicatqfnpdmsr", 10, 10);
- test(S("niptglfbosehkamrdqcj"), "", 19, S::npos);
- test(S("copqdhstbingamjfkler"), "djkqc", 19, S::npos);
- test(S("mrtaefilpdsgocnhqbjk"), "lgokshjtpb", 19, 19);
- test(S("kojatdhlcmigpbfrqnes"), "bqjhtkfepimcnsgrlado", 19, 19);
- test(S("eaintpchlqsbdgrkjofm"), "", 20, S::npos);
- test(S("gjnhidfsepkrtaqbmclo"), "nocfa", 20, S::npos);
- test(S("spocfaktqdbiejlhngmr"), "bgtajmiedc", 20, S::npos);
- test(S("rphmlekgfscndtaobiqj"), "lsckfnqgdahejiopbtmr", 20, S::npos);
- test(S("liatsqdoegkmfcnbhrpj"), "", 21, S::npos);
- test(S("binjagtfldkrspcomqeh"), "gfsrt", 21, S::npos);
- test(S("latkmisecnorjbfhqpdg"), "pfsocbhjtm", 21, S::npos);
- test(S("lecfratdjkhnsmqpoigb"), "tpflmdnoicjgkberhqsa", 21, S::npos);
+void test0() {
+ test(S(""), "", 0, S::npos);
+ test(S(""), "laenf", 0, S::npos);
+ test(S(""), "pqlnkmbdjo", 0, S::npos);
+ test(S(""), "qkamfogpnljdcshbreti", 0, S::npos);
+ test(S(""), "", 1, S::npos);
+ test(S(""), "bjaht", 1, S::npos);
+ test(S(""), "hjlcmgpket", 1, S::npos);
+ test(S(""), "htaobedqikfplcgjsmrn", 1, S::npos);
+ test(S("fodgq"), "", 0, S::npos);
+ test(S("qanej"), "dfkap", 0, 1);
+ test(S("clbao"), "ihqrfebgad", 0, 2);
+ test(S("mekdn"), "ngtjfcalbseiqrphmkdo", 0, 0);
+ test(S("srdfq"), "", 1, S::npos);
+ test(S("oemth"), "ikcrq", 1, S::npos);
+ test(S("cdaih"), "dmajblfhsg", 1, 1);
+ test(S("qohtk"), "oqftjhdmkgsblacenirp", 1, 1);
+ test(S("cshmd"), "", 2, S::npos);
+ test(S("lhcdo"), "oebqi", 2, 4);
+ test(S("qnsoh"), "kojhpmbsfe", 2, 2);
+ test(S("pkrof"), "acbsjqogpltdkhinfrem", 2, 2);
+ test(S("fmtsp"), "", 4, S::npos);
+ test(S("khbpm"), "aobjd", 4, S::npos);
+ test(S("pbsji"), "pcbahntsje", 4, S::npos);
+ test(S("mprdj"), "fhepcrntkoagbmldqijs", 4, 4);
+ test(S("eqmpa"), "", 5, S::npos);
+ test(S("omigs"), "kocgb", 5, S::npos);
+ test(S("onmje"), "fbslrjiqkm", 5, S::npos);
+ test(S("oqmrj"), "jeidpcmalhfnqbgtrsko", 5, S::npos);
+ test(S("schfa"), "", 6, S::npos);
+ test(S("igdsc"), "qngpd", 6, S::npos);
+ test(S("brqgo"), "rodhqklgmb", 6, S::npos);
+ test(S("tnrph"), "thdjgafrlbkoiqcspmne", 6, S::npos);
+ test(S("hcjitbfapl"), "", 0, S::npos);
+ test(S("daiprenocl"), "ashjd", 0, 0);
+ test(S("litpcfdghe"), "mgojkldsqh", 0, 0);
+ test(S("aidjksrolc"), "imqnaghkfrdtlopbjesc", 0, 0);
+ test(S("qpghtfbaji"), "", 1, S::npos);
+ test(S("gfshlcmdjr"), "nadkh", 1, 3);
+ test(S("nkodajteqp"), "ofdrqmkebl", 1, 1);
+ test(S("gbmetiprqd"), "bdfjqgatlksriohemnpc", 1, 1);
+ test(S("crnklpmegd"), "", 5, S::npos);
+ test(S("jsbtafedoc"), "prqgn", 5, S::npos);
+ test(S("qnmodrtkeb"), "pejafmnokr", 5, 5);
+ test(S("cpebqsfmnj"), "odnqkgijrhabfmcestlp", 5, 5);
+ test(S("lmofqdhpki"), "", 9, S::npos);
+ test(S("hnefkqimca"), "rtjpa", 9, 9);
+ test(S("drtasbgmfp"), "ktsrmnqagd", 9, S::npos);
+ test(S("lsaijeqhtr"), "rtdhgcisbnmoaqkfpjle", 9, 9);
+ test(S("elgofjmbrq"), "", 10, S::npos);
+ test(S("mjqdgalkpc"), "dplqa", 10, S::npos);
+ test(S("kthqnfcerm"), "dkacjoptns", 10, S::npos);
+ test(S("dfsjhanorc"), "hqfimtrgnbekpdcsjalo", 10, S::npos);
+ test(S("eqsgalomhb"), "", 11, S::npos);
+ test(S("akiteljmoh"), "lofbc", 11, S::npos);
+ test(S("hlbdfreqjo"), "astoegbfpn", 11, S::npos);
+ test(S("taqobhlerg"), "pdgreqomsncafklhtibj", 11, S::npos);
+ test(S("snafbdlghrjkpqtoceim"), "", 0, S::npos);
+ test(S("aemtbrgcklhndjisfpoq"), "lbtqd", 0, 3);
+ test(S("pnracgfkjdiholtbqsem"), "tboimldpjh", 0, 0);
+ test(S("dicfltehbsgrmojnpkaq"), "slcerthdaiqjfnobgkpm", 0, 0);
+ test(S("jlnkraeodhcspfgbqitm"), "", 1, S::npos);
+ test(S("lhosrngtmfjikbqpcade"), "aqibs", 1, 3);
+ test(S("rbtaqjhgkneisldpmfoc"), "gtfblmqinc", 1, 1);
+ test(S("gpifsqlrdkbonjtmheca"), "mkqpbtdalgniorhfescj", 1, 1);
+ test(S("hdpkobnsalmcfijregtq"), "", 10, S::npos);
+ test(S("jtlshdgqaiprkbcoenfm"), "pblas", 10, 10);
+ test(S("fkdrbqltsgmcoiphneaj"), "arosdhcfme", 10, 10);
+ test(S("crsplifgtqedjohnabmk"), "blkhjeogicatqfnpdmsr", 10, 10);
+ test(S("niptglfbosehkamrdqcj"), "", 19, S::npos);
+ test(S("copqdhstbingamjfkler"), "djkqc", 19, S::npos);
+ test(S("mrtaefilpdsgocnhqbjk"), "lgokshjtpb", 19, 19);
+ test(S("kojatdhlcmigpbfrqnes"), "bqjhtkfepimcnsgrlado", 19, 19);
+ test(S("eaintpchlqsbdgrkjofm"), "", 20, S::npos);
+ test(S("gjnhidfsepkrtaqbmclo"), "nocfa", 20, S::npos);
+ test(S("spocfaktqdbiejlhngmr"), "bgtajmiedc", 20, S::npos);
+ test(S("rphmlekgfscndtaobiqj"), "lsckfnqgdahejiopbtmr", 20, S::npos);
+ test(S("liatsqdoegkmfcnbhrpj"), "", 21, S::npos);
+ test(S("binjagtfldkrspcomqeh"), "gfsrt", 21, S::npos);
+ test(S("latkmisecnorjbfhqpdg"), "pfsocbhjtm", 21, S::npos);
+ test(S("lecfratdjkhnsmqpoigb"), "tpflmdnoicjgkberhqsa", 21, S::npos);
}
template <class S>
-void test1()
-{
- test(S(""), "", S::npos);
- test(S(""), "laenf", S::npos);
- test(S(""), "pqlnkmbdjo", S::npos);
- test(S(""), "qkamfogpnljdcshbreti", S::npos);
- test(S("nhmko"), "", S::npos);
- test(S("lahfb"), "irkhs", 2);
- test(S("gmfhd"), "kantesmpgj", 0);
- test(S("odaft"), "oknlrstdpiqmjbaghcfe", 0);
- test(S("eolhfgpjqk"), "", S::npos);
- test(S("nbatdlmekr"), "bnrpe", 0);
- test(S("jdmciepkaq"), "jtdaefblso", 0);
- test(S("hkbgspoflt"), "oselktgbcapndfjihrmq", 0);
- test(S("gprdcokbnjhlsfmtieqa"), "", S::npos);
- test(S("qjghlnftcaismkropdeb"), "bjaht", 1);
- test(S("pnalfrdtkqcmojiesbhg"), "hjlcmgpket", 0);
- test(S("pniotcfrhqsmgdkjbael"), "htaobedqikfplcgjsmrn", 0);
+void test1() {
+ test(S(""), "", S::npos);
+ test(S(""), "laenf", S::npos);
+ test(S(""), "pqlnkmbdjo", S::npos);
+ test(S(""), "qkamfogpnljdcshbreti", S::npos);
+ test(S("nhmko"), "", S::npos);
+ test(S("lahfb"), "irkhs", 2);
+ test(S("gmfhd"), "kantesmpgj", 0);
+ test(S("odaft"), "oknlrstdpiqmjbaghcfe", 0);
+ test(S("eolhfgpjqk"), "", S::npos);
+ test(S("nbatdlmekr"), "bnrpe", 0);
+ test(S("jdmciepkaq"), "jtdaefblso", 0);
+ test(S("hkbgspoflt"), "oselktgbcapndfjihrmq", 0);
+ test(S("gprdcokbnjhlsfmtieqa"), "", S::npos);
+ test(S("qjghlnftcaismkropdeb"), "bjaht", 1);
+ test(S("pnalfrdtkqcmojiesbhg"), "hjlcmgpket", 0);
+ test(S("pniotcfrhqsmgdkjbael"), "htaobedqikfplcgjsmrn", 0);
}
-int main(int, char**)
-{
- {
+int main(int, char**) {
+ {
typedef std::string_view S;
test0<S>();
test1<S>();
- }
+ }
#if TEST_STD_VER > 11
- {
+ {
typedef std::basic_string_view<char, constexpr_char_traits<char>> SV;
- constexpr SV sv1;
- constexpr SV sv2 { "abcde", 5 };
+ constexpr SV sv1;
+ constexpr SV sv2{"abcde", 5};
- static_assert (sv1.find_first_of( "", 0) == SV::npos, "" );
- static_assert (sv1.find_first_of( "irkhs", 0) == SV::npos, "" );
- static_assert (sv2.find_first_of( "", 0) == SV::npos, "" );
- static_assert (sv2.find_first_of( "gfsrt", 0) == SV::npos, "" );
- static_assert (sv2.find_first_of( "lecar", 0) == 0, "" );
- }
+ static_assert(sv1.find_first_of("", 0) == SV::npos, "");
+ static_assert(sv1.find_first_of("irkhs", 0) == SV::npos, "");
+ static_assert(sv2.find_first_of("", 0) == SV::npos, "");
+ static_assert(sv2.find_first_of("gfsrt", 0) == SV::npos, "");
+ static_assert(sv2.find_first_of("lecar", 0) == 0, "");
+ }
#endif
return 0;
diff --git a/libcxx/test/std/strings/string.view/string.view.find/find_first_of_pointer_size_size.pass.cpp b/libcxx/test/std/strings/string.view/string.view.find/find_first_of_pointer_size_size.pass.cpp
index af68f94bddaf98f..de02d04519c8673 100644
--- a/libcxx/test/std/strings/string.view/string.view.find/find_first_of_pointer_size_size.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.find/find_first_of_pointer_size_size.pass.cpp
@@ -19,378 +19,374 @@
#include "constexpr_char_traits.h"
template <class S>
-void
-test(const S& s, const typename S::value_type* str, typename S::size_type pos,
- typename S::size_type n, typename S::size_type x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.find_first_of(str, pos, n));
- assert(s.find_first_of(str, pos, n) == x);
- if (x != S::npos)
- assert(pos <= x && x < s.size());
+void test(const S& s,
+ const typename S::value_type* str,
+ typename S::size_type pos,
+ typename S::size_type n,
+ typename S::size_type x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.find_first_of(str, pos, n));
+ assert(s.find_first_of(str, pos, n) == x);
+ if (x != S::npos)
+ assert(pos <= x && x < s.size());
}
template <class S>
-void test0()
-{
- test(S(""), "", 0, 0, S::npos);
- test(S(""), "irkhs", 0, 0, S::npos);
- test(S(""), "kante", 0, 1, S::npos);
- test(S(""), "oknlr", 0, 2, S::npos);
- test(S(""), "pcdro", 0, 4, S::npos);
- test(S(""), "bnrpe", 0, 5, S::npos);
- test(S(""), "jtdaefblso", 0, 0, S::npos);
- test(S(""), "oselktgbca", 0, 1, S::npos);
- test(S(""), "eqgaplhckj", 0, 5, S::npos);
- test(S(""), "bjahtcmnlp", 0, 9, S::npos);
- test(S(""), "hjlcmgpket", 0, 10, S::npos);
- test(S(""), "htaobedqikfplcgjsmrn", 0, 0, S::npos);
- test(S(""), "hpqiarojkcdlsgnmfetb", 0, 1, S::npos);
- test(S(""), "dfkaprhjloqetcsimnbg", 0, 10, S::npos);
- test(S(""), "ihqrfebgadntlpmjksoc", 0, 19, S::npos);
- test(S(""), "ngtjfcalbseiqrphmkdo", 0, 20, S::npos);
- test(S(""), "", 1, 0, S::npos);
- test(S(""), "lbtqd", 1, 0, S::npos);
- test(S(""), "tboim", 1, 1, S::npos);
- test(S(""), "slcer", 1, 2, S::npos);
- test(S(""), "cbjfs", 1, 4, S::npos);
- test(S(""), "aqibs", 1, 5, S::npos);
- test(S(""), "gtfblmqinc", 1, 0, S::npos);
- test(S(""), "mkqpbtdalg", 1, 1, S::npos);
- test(S(""), "kphatlimcd", 1, 5, S::npos);
- test(S(""), "pblasqogic", 1, 9, S::npos);
- test(S(""), "arosdhcfme", 1, 10, S::npos);
- test(S(""), "blkhjeogicatqfnpdmsr", 1, 0, S::npos);
- test(S(""), "bmhineprjcoadgstflqk", 1, 1, S::npos);
- test(S(""), "djkqcmetslnghpbarfoi", 1, 10, S::npos);
- test(S(""), "lgokshjtpbemarcdqnfi", 1, 19, S::npos);
- test(S(""), "bqjhtkfepimcnsgrlado", 1, 20, S::npos);
- test(S("eaint"), "", 0, 0, S::npos);
- test(S("binja"), "gfsrt", 0, 0, S::npos);
- test(S("latkm"), "pfsoc", 0, 1, S::npos);
- test(S("lecfr"), "tpflm", 0, 2, S::npos);
- test(S("eqkst"), "sgkec", 0, 4, 0);
- test(S("cdafr"), "romds", 0, 5, 1);
- test(S("prbhe"), "qhjistlgmr", 0, 0, S::npos);
- test(S("lbisk"), "pedfirsglo", 0, 1, S::npos);
- test(S("hrlpd"), "aqcoslgrmk", 0, 5, S::npos);
- test(S("ehmja"), "dabckmepqj", 0, 9, 0);
- test(S("mhqgd"), "pqscrjthli", 0, 10, 1);
- test(S("tgklq"), "kfphdcsjqmobliagtren", 0, 0, S::npos);
- test(S("bocjs"), "rokpefncljibsdhqtagm", 0, 1, S::npos);
- test(S("grbsd"), "afionmkphlebtcjqsgrd", 0, 10, S::npos);
- test(S("ofjqr"), "aenmqplidhkofrjbctsg", 0, 19, 0);
- test(S("btlfi"), "osjmbtcadhiklegrpqnf", 0, 20, 0);
- test(S("clrgb"), "", 1, 0, S::npos);
- test(S("tjmek"), "osmia", 1, 0, S::npos);
- test(S("bgstp"), "ckonl", 1, 1, S::npos);
- test(S("hstrk"), "ilcaj", 1, 2, S::npos);
- test(S("kmspj"), "lasiq", 1, 4, 2);
- test(S("tjboh"), "kfqmr", 1, 5, S::npos);
- test(S("ilbcj"), "klnitfaobg", 1, 0, S::npos);
- test(S("jkngf"), "gjhmdlqikp", 1, 1, 3);
- test(S("gfcql"), "skbgtahqej", 1, 5, S::npos);
- test(S("dqtlg"), "bjsdgtlpkf", 1, 9, 2);
- test(S("bthpg"), "bjgfmnlkio", 1, 10, 4);
- test(S("dgsnq"), "lbhepotfsjdqigcnamkr", 1, 0, S::npos);
- test(S("rmfhp"), "tebangckmpsrqdlfojhi", 1, 1, S::npos);
- test(S("jfdam"), "joflqbdkhtegimscpanr", 1, 10, 1);
- test(S("edapb"), "adpmcohetfbsrjinlqkg", 1, 19, 1);
- test(S("brfsm"), "iacldqjpfnogbsrhmetk", 1, 20, 1);
- test(S("ndrhl"), "", 2, 0, S::npos);
- test(S("mrecp"), "otkgb", 2, 0, S::npos);
- test(S("qlasf"), "cqsjl", 2, 1, S::npos);
- test(S("smaqd"), "dpifl", 2, 2, 4);
- test(S("hjeni"), "oapht", 2, 4, S::npos);
- test(S("ocmfj"), "cifts", 2, 5, 3);
- test(S("hmftq"), "nmsckbgalo", 2, 0, S::npos);
- test(S("fklad"), "tpksqhamle", 2, 1, S::npos);
- test(S("dirnm"), "tpdrchmkji", 2, 5, 2);
- test(S("hrgdc"), "ijagfkblst", 2, 9, 2);
- test(S("ifakg"), "kpocsignjb", 2, 10, 3);
- test(S("ebrgd"), "pecqtkjsnbdrialgmohf", 2, 0, S::npos);
- test(S("rcjml"), "aiortphfcmkjebgsndql", 2, 1, S::npos);
- test(S("peqmt"), "sdbkeamglhipojqftrcn", 2, 10, 3);
- test(S("frehn"), "ljqncehgmfktroapidbs", 2, 19, 2);
- test(S("tqolf"), "rtcfodilamkbenjghqps", 2, 20, 2);
- test(S("cjgao"), "", 4, 0, S::npos);
- test(S("kjplq"), "mabns", 4, 0, S::npos);
- test(S("herni"), "bdnrp", 4, 1, S::npos);
- test(S("tadrb"), "scidp", 4, 2, S::npos);
- test(S("pkfeo"), "agbjl", 4, 4, S::npos);
- test(S("hoser"), "jfmpr", 4, 5, 4);
- test(S("kgrsp"), "rbpefghsmj", 4, 0, S::npos);
- test(S("pgejb"), "apsfntdoqc", 4, 1, S::npos);
- test(S("thlnq"), "ndkjeisgcl", 4, 5, S::npos);
- test(S("nbmit"), "rnfpqatdeo", 4, 9, 4);
- test(S("jgmib"), "bntjlqrfik", 4, 10, 4);
- test(S("ncrfj"), "kcrtmpolnaqejghsfdbi", 4, 0, S::npos);
- test(S("ncsik"), "lobheanpkmqidsrtcfgj", 4, 1, S::npos);
- test(S("sgbfh"), "athdkljcnreqbgpmisof", 4, 10, 4);
- test(S("dktbn"), "qkdmjialrscpbhefgont", 4, 19, 4);
- test(S("fthqm"), "dmasojntqleribkgfchp", 4, 20, 4);
- test(S("klopi"), "", 5, 0, S::npos);
- test(S("dajhn"), "psthd", 5, 0, S::npos);
- test(S("jbgno"), "rpmjd", 5, 1, S::npos);
- test(S("hkjae"), "dfsmk", 5, 2, S::npos);
+void test0() {
+ test(S(""), "", 0, 0, S::npos);
+ test(S(""), "irkhs", 0, 0, S::npos);
+ test(S(""), "kante", 0, 1, S::npos);
+ test(S(""), "oknlr", 0, 2, S::npos);
+ test(S(""), "pcdro", 0, 4, S::npos);
+ test(S(""), "bnrpe", 0, 5, S::npos);
+ test(S(""), "jtdaefblso", 0, 0, S::npos);
+ test(S(""), "oselktgbca", 0, 1, S::npos);
+ test(S(""), "eqgaplhckj", 0, 5, S::npos);
+ test(S(""), "bjahtcmnlp", 0, 9, S::npos);
+ test(S(""), "hjlcmgpket", 0, 10, S::npos);
+ test(S(""), "htaobedqikfplcgjsmrn", 0, 0, S::npos);
+ test(S(""), "hpqiarojkcdlsgnmfetb", 0, 1, S::npos);
+ test(S(""), "dfkaprhjloqetcsimnbg", 0, 10, S::npos);
+ test(S(""), "ihqrfebgadntlpmjksoc", 0, 19, S::npos);
+ test(S(""), "ngtjfcalbseiqrphmkdo", 0, 20, S::npos);
+ test(S(""), "", 1, 0, S::npos);
+ test(S(""), "lbtqd", 1, 0, S::npos);
+ test(S(""), "tboim", 1, 1, S::npos);
+ test(S(""), "slcer", 1, 2, S::npos);
+ test(S(""), "cbjfs", 1, 4, S::npos);
+ test(S(""), "aqibs", 1, 5, S::npos);
+ test(S(""), "gtfblmqinc", 1, 0, S::npos);
+ test(S(""), "mkqpbtdalg", 1, 1, S::npos);
+ test(S(""), "kphatlimcd", 1, 5, S::npos);
+ test(S(""), "pblasqogic", 1, 9, S::npos);
+ test(S(""), "arosdhcfme", 1, 10, S::npos);
+ test(S(""), "blkhjeogicatqfnpdmsr", 1, 0, S::npos);
+ test(S(""), "bmhineprjcoadgstflqk", 1, 1, S::npos);
+ test(S(""), "djkqcmetslnghpbarfoi", 1, 10, S::npos);
+ test(S(""), "lgokshjtpbemarcdqnfi", 1, 19, S::npos);
+ test(S(""), "bqjhtkfepimcnsgrlado", 1, 20, S::npos);
+ test(S("eaint"), "", 0, 0, S::npos);
+ test(S("binja"), "gfsrt", 0, 0, S::npos);
+ test(S("latkm"), "pfsoc", 0, 1, S::npos);
+ test(S("lecfr"), "tpflm", 0, 2, S::npos);
+ test(S("eqkst"), "sgkec", 0, 4, 0);
+ test(S("cdafr"), "romds", 0, 5, 1);
+ test(S("prbhe"), "qhjistlgmr", 0, 0, S::npos);
+ test(S("lbisk"), "pedfirsglo", 0, 1, S::npos);
+ test(S("hrlpd"), "aqcoslgrmk", 0, 5, S::npos);
+ test(S("ehmja"), "dabckmepqj", 0, 9, 0);
+ test(S("mhqgd"), "pqscrjthli", 0, 10, 1);
+ test(S("tgklq"), "kfphdcsjqmobliagtren", 0, 0, S::npos);
+ test(S("bocjs"), "rokpefncljibsdhqtagm", 0, 1, S::npos);
+ test(S("grbsd"), "afionmkphlebtcjqsgrd", 0, 10, S::npos);
+ test(S("ofjqr"), "aenmqplidhkofrjbctsg", 0, 19, 0);
+ test(S("btlfi"), "osjmbtcadhiklegrpqnf", 0, 20, 0);
+ test(S("clrgb"), "", 1, 0, S::npos);
+ test(S("tjmek"), "osmia", 1, 0, S::npos);
+ test(S("bgstp"), "ckonl", 1, 1, S::npos);
+ test(S("hstrk"), "ilcaj", 1, 2, S::npos);
+ test(S("kmspj"), "lasiq", 1, 4, 2);
+ test(S("tjboh"), "kfqmr", 1, 5, S::npos);
+ test(S("ilbcj"), "klnitfaobg", 1, 0, S::npos);
+ test(S("jkngf"), "gjhmdlqikp", 1, 1, 3);
+ test(S("gfcql"), "skbgtahqej", 1, 5, S::npos);
+ test(S("dqtlg"), "bjsdgtlpkf", 1, 9, 2);
+ test(S("bthpg"), "bjgfmnlkio", 1, 10, 4);
+ test(S("dgsnq"), "lbhepotfsjdqigcnamkr", 1, 0, S::npos);
+ test(S("rmfhp"), "tebangckmpsrqdlfojhi", 1, 1, S::npos);
+ test(S("jfdam"), "joflqbdkhtegimscpanr", 1, 10, 1);
+ test(S("edapb"), "adpmcohetfbsrjinlqkg", 1, 19, 1);
+ test(S("brfsm"), "iacldqjpfnogbsrhmetk", 1, 20, 1);
+ test(S("ndrhl"), "", 2, 0, S::npos);
+ test(S("mrecp"), "otkgb", 2, 0, S::npos);
+ test(S("qlasf"), "cqsjl", 2, 1, S::npos);
+ test(S("smaqd"), "dpifl", 2, 2, 4);
+ test(S("hjeni"), "oapht", 2, 4, S::npos);
+ test(S("ocmfj"), "cifts", 2, 5, 3);
+ test(S("hmftq"), "nmsckbgalo", 2, 0, S::npos);
+ test(S("fklad"), "tpksqhamle", 2, 1, S::npos);
+ test(S("dirnm"), "tpdrchmkji", 2, 5, 2);
+ test(S("hrgdc"), "ijagfkblst", 2, 9, 2);
+ test(S("ifakg"), "kpocsignjb", 2, 10, 3);
+ test(S("ebrgd"), "pecqtkjsnbdrialgmohf", 2, 0, S::npos);
+ test(S("rcjml"), "aiortphfcmkjebgsndql", 2, 1, S::npos);
+ test(S("peqmt"), "sdbkeamglhipojqftrcn", 2, 10, 3);
+ test(S("frehn"), "ljqncehgmfktroapidbs", 2, 19, 2);
+ test(S("tqolf"), "rtcfodilamkbenjghqps", 2, 20, 2);
+ test(S("cjgao"), "", 4, 0, S::npos);
+ test(S("kjplq"), "mabns", 4, 0, S::npos);
+ test(S("herni"), "bdnrp", 4, 1, S::npos);
+ test(S("tadrb"), "scidp", 4, 2, S::npos);
+ test(S("pkfeo"), "agbjl", 4, 4, S::npos);
+ test(S("hoser"), "jfmpr", 4, 5, 4);
+ test(S("kgrsp"), "rbpefghsmj", 4, 0, S::npos);
+ test(S("pgejb"), "apsfntdoqc", 4, 1, S::npos);
+ test(S("thlnq"), "ndkjeisgcl", 4, 5, S::npos);
+ test(S("nbmit"), "rnfpqatdeo", 4, 9, 4);
+ test(S("jgmib"), "bntjlqrfik", 4, 10, 4);
+ test(S("ncrfj"), "kcrtmpolnaqejghsfdbi", 4, 0, S::npos);
+ test(S("ncsik"), "lobheanpkmqidsrtcfgj", 4, 1, S::npos);
+ test(S("sgbfh"), "athdkljcnreqbgpmisof", 4, 10, 4);
+ test(S("dktbn"), "qkdmjialrscpbhefgont", 4, 19, 4);
+ test(S("fthqm"), "dmasojntqleribkgfchp", 4, 20, 4);
+ test(S("klopi"), "", 5, 0, S::npos);
+ test(S("dajhn"), "psthd", 5, 0, S::npos);
+ test(S("jbgno"), "rpmjd", 5, 1, S::npos);
+ test(S("hkjae"), "dfsmk", 5, 2, S::npos);
}
template <class S>
-void test1()
-{
- test(S("gbhqo"), "skqne", 5, 4, S::npos);
- test(S("ktdor"), "kipnf", 5, 5, S::npos);
- test(S("ldprn"), "hmrnqdgifl", 5, 0, S::npos);
- test(S("egmjk"), "fsmjcdairn", 5, 1, S::npos);
- test(S("armql"), "pcdgltbrfj", 5, 5, S::npos);
- test(S("cdhjo"), "aekfctpirg", 5, 9, S::npos);
- test(S("jcons"), "ledihrsgpf", 5, 10, S::npos);
- test(S("cbrkp"), "mqcklahsbtirgopefndj", 5, 0, S::npos);
- test(S("fhgna"), "kmlthaoqgecrnpdbjfis", 5, 1, S::npos);
- test(S("ejfcd"), "sfhbamcdptojlkrenqgi", 5, 10, S::npos);
- test(S("kqjhe"), "pbniofmcedrkhlstgaqj", 5, 19, S::npos);
- test(S("pbdjl"), "mongjratcskbhqiepfdl", 5, 20, S::npos);
- test(S("gajqn"), "", 6, 0, S::npos);
- test(S("stedk"), "hrnat", 6, 0, S::npos);
- test(S("tjkaf"), "gsqdt", 6, 1, S::npos);
- test(S("dthpe"), "bspkd", 6, 2, S::npos);
- test(S("klhde"), "ohcmb", 6, 4, S::npos);
- test(S("bhlki"), "heatr", 6, 5, S::npos);
- test(S("lqmoh"), "pmblckedfn", 6, 0, S::npos);
- test(S("mtqin"), "aceqmsrbik", 6, 1, S::npos);
- test(S("dpqbr"), "lmbtdehjrn", 6, 5, S::npos);
- test(S("kdhmo"), "teqmcrlgib", 6, 9, S::npos);
- test(S("jblqp"), "njolbmspac", 6, 10, S::npos);
- test(S("qmjgl"), "pofnhidklamecrbqjgst", 6, 0, S::npos);
- test(S("rothp"), "jbhckmtgrqnosafedpli", 6, 1, S::npos);
- test(S("ghknq"), "dobntpmqklicsahgjerf", 6, 10, S::npos);
- test(S("eopfi"), "tpdshainjkbfoemlrgcq", 6, 19, S::npos);
- test(S("dsnmg"), "oldpfgeakrnitscbjmqh", 6, 20, S::npos);
- test(S("jnkrfhotgl"), "", 0, 0, S::npos);
- test(S("dltjfngbko"), "rqegt", 0, 0, S::npos);
- test(S("bmjlpkiqde"), "dashm", 0, 1, 8);
- test(S("skrflobnqm"), "jqirk", 0, 2, 8);
- test(S("jkpldtshrm"), "rckeg", 0, 4, 1);
- test(S("ghasdbnjqo"), "jscie", 0, 5, 3);
- test(S("igrkhpbqjt"), "efsphndliq", 0, 0, S::npos);
- test(S("ikthdgcamf"), "gdicosleja", 0, 1, 5);
- test(S("pcofgeniam"), "qcpjibosfl", 0, 5, 0);
- test(S("rlfjgesqhc"), "lrhmefnjcq", 0, 9, 0);
- test(S("itphbqsker"), "dtablcrseo", 0, 10, 1);
- test(S("skjafcirqm"), "apckjsftedbhgomrnilq", 0, 0, S::npos);
- test(S("tcqomarsfd"), "pcbrgflehjtiadnsokqm", 0, 1, S::npos);
- test(S("rocfeldqpk"), "nsiadegjklhobrmtqcpf", 0, 10, 4);
- test(S("cfpegndlkt"), "cpmajdqnolikhgsbretf", 0, 19, 0);
- test(S("fqbtnkeasj"), "jcflkntmgiqrphdosaeb", 0, 20, 0);
- test(S("shbcqnmoar"), "", 1, 0, S::npos);
- test(S("bdoshlmfin"), "ontrs", 1, 0, S::npos);
- test(S("khfrebnsgq"), "pfkna", 1, 1, S::npos);
- test(S("getcrsaoji"), "ekosa", 1, 2, 1);
- test(S("fjiknedcpq"), "anqhk", 1, 4, 4);
- test(S("tkejgnafrm"), "jekca", 1, 5, 1);
- test(S("jnakolqrde"), "ikemsjgacf", 1, 0, S::npos);
- test(S("lcjptsmgbe"), "arolgsjkhm", 1, 1, S::npos);
- test(S("itfsmcjorl"), "oftkbldhre", 1, 5, 1);
- test(S("omchkfrjea"), "gbkqdoeftl", 1, 9, 4);
- test(S("cigfqkated"), "sqcflrgtim", 1, 10, 1);
- test(S("tscenjikml"), "fmhbkislrjdpanogqcet", 1, 0, S::npos);
- test(S("qcpaemsinf"), "rnioadktqlgpbcjsmhef", 1, 1, S::npos);
- test(S("gltkojeipd"), "oakgtnldpsefihqmjcbr", 1, 10, 1);
- test(S("qistfrgnmp"), "gbnaelosidmcjqktfhpr", 1, 19, 1);
- test(S("bdnpfcqaem"), "akbripjhlosndcmqgfet", 1, 20, 1);
- test(S("ectnhskflp"), "", 5, 0, S::npos);
- test(S("fgtianblpq"), "pijag", 5, 0, S::npos);
- test(S("mfeqklirnh"), "jrckd", 5, 1, S::npos);
- test(S("astedncjhk"), "qcloh", 5, 2, 6);
- test(S("fhlqgcajbr"), "thlmp", 5, 4, S::npos);
- test(S("epfhocmdng"), "qidmo", 5, 5, 6);
- test(S("apcnsibger"), "lnegpsjqrd", 5, 0, S::npos);
- test(S("aqkocrbign"), "rjqdablmfs", 5, 1, 5);
- test(S("ijsmdtqgce"), "enkgpbsjaq", 5, 5, 7);
- test(S("clobgsrken"), "kdsgoaijfh", 5, 9, 5);
- test(S("jbhcfposld"), "trfqgmckbe", 5, 10, S::npos);
- test(S("oqnpblhide"), "igetsracjfkdnpoblhqm", 5, 0, S::npos);
- test(S("lroeasctif"), "nqctfaogirshlekbdjpm", 5, 1, S::npos);
- test(S("bpjlgmiedh"), "csehfgomljdqinbartkp", 5, 10, 5);
- test(S("pamkeoidrj"), "qahoegcmplkfsjbdnitr", 5, 19, 5);
- test(S("espogqbthk"), "dpteiajrqmsognhlfbkc", 5, 20, 5);
- test(S("shoiedtcjb"), "", 9, 0, S::npos);
- test(S("ebcinjgads"), "tqbnh", 9, 0, S::npos);
- test(S("dqmregkcfl"), "akmle", 9, 1, S::npos);
- test(S("ngcrieqajf"), "iqfkm", 9, 2, S::npos);
- test(S("qosmilgnjb"), "tqjsr", 9, 4, S::npos);
- test(S("ikabsjtdfl"), "jplqg", 9, 5, 9);
- test(S("ersmicafdh"), "oilnrbcgtj", 9, 0, S::npos);
- test(S("fdnplotmgh"), "morkglpesn", 9, 1, S::npos);
- test(S("fdbicojerm"), "dmicerngat", 9, 5, 9);
- test(S("mbtafndjcq"), "radgeskbtc", 9, 9, S::npos);
- test(S("mlenkpfdtc"), "ljikprsmqo", 9, 10, S::npos);
- test(S("ahlcifdqgs"), "trqihkcgsjamfdbolnpe", 9, 0, S::npos);
- test(S("bgjemaltks"), "lqmthbsrekajgnofcipd", 9, 1, S::npos);
- test(S("pdhslbqrfc"), "jtalmedribkgqsopcnfh", 9, 10, S::npos);
- test(S("dirhtsnjkc"), "spqfoiclmtagejbndkrh", 9, 19, 9);
- test(S("dlroktbcja"), "nmotklspigjrdhcfaebq", 9, 20, 9);
- test(S("ncjpmaekbs"), "", 10, 0, S::npos);
- test(S("hlbosgmrak"), "hpmsd", 10, 0, S::npos);
- test(S("pqfhsgilen"), "qnpor", 10, 1, S::npos);
- test(S("gqtjsbdckh"), "otdma", 10, 2, S::npos);
- test(S("cfkqpjlegi"), "efhjg", 10, 4, S::npos);
- test(S("beanrfodgj"), "odpte", 10, 5, S::npos);
- test(S("adtkqpbjfi"), "bctdgfmolr", 10, 0, S::npos);
- test(S("iomkfthagj"), "oaklidrbqg", 10, 1, S::npos);
+void test1() {
+ test(S("gbhqo"), "skqne", 5, 4, S::npos);
+ test(S("ktdor"), "kipnf", 5, 5, S::npos);
+ test(S("ldprn"), "hmrnqdgifl", 5, 0, S::npos);
+ test(S("egmjk"), "fsmjcdairn", 5, 1, S::npos);
+ test(S("armql"), "pcdgltbrfj", 5, 5, S::npos);
+ test(S("cdhjo"), "aekfctpirg", 5, 9, S::npos);
+ test(S("jcons"), "ledihrsgpf", 5, 10, S::npos);
+ test(S("cbrkp"), "mqcklahsbtirgopefndj", 5, 0, S::npos);
+ test(S("fhgna"), "kmlthaoqgecrnpdbjfis", 5, 1, S::npos);
+ test(S("ejfcd"), "sfhbamcdptojlkrenqgi", 5, 10, S::npos);
+ test(S("kqjhe"), "pbniofmcedrkhlstgaqj", 5, 19, S::npos);
+ test(S("pbdjl"), "mongjratcskbhqiepfdl", 5, 20, S::npos);
+ test(S("gajqn"), "", 6, 0, S::npos);
+ test(S("stedk"), "hrnat", 6, 0, S::npos);
+ test(S("tjkaf"), "gsqdt", 6, 1, S::npos);
+ test(S("dthpe"), "bspkd", 6, 2, S::npos);
+ test(S("klhde"), "ohcmb", 6, 4, S::npos);
+ test(S("bhlki"), "heatr", 6, 5, S::npos);
+ test(S("lqmoh"), "pmblckedfn", 6, 0, S::npos);
+ test(S("mtqin"), "aceqmsrbik", 6, 1, S::npos);
+ test(S("dpqbr"), "lmbtdehjrn", 6, 5, S::npos);
+ test(S("kdhmo"), "teqmcrlgib", 6, 9, S::npos);
+ test(S("jblqp"), "njolbmspac", 6, 10, S::npos);
+ test(S("qmjgl"), "pofnhidklamecrbqjgst", 6, 0, S::npos);
+ test(S("rothp"), "jbhckmtgrqnosafedpli", 6, 1, S::npos);
+ test(S("ghknq"), "dobntpmqklicsahgjerf", 6, 10, S::npos);
+ test(S("eopfi"), "tpdshainjkbfoemlrgcq", 6, 19, S::npos);
+ test(S("dsnmg"), "oldpfgeakrnitscbjmqh", 6, 20, S::npos);
+ test(S("jnkrfhotgl"), "", 0, 0, S::npos);
+ test(S("dltjfngbko"), "rqegt", 0, 0, S::npos);
+ test(S("bmjlpkiqde"), "dashm", 0, 1, 8);
+ test(S("skrflobnqm"), "jqirk", 0, 2, 8);
+ test(S("jkpldtshrm"), "rckeg", 0, 4, 1);
+ test(S("ghasdbnjqo"), "jscie", 0, 5, 3);
+ test(S("igrkhpbqjt"), "efsphndliq", 0, 0, S::npos);
+ test(S("ikthdgcamf"), "gdicosleja", 0, 1, 5);
+ test(S("pcofgeniam"), "qcpjibosfl", 0, 5, 0);
+ test(S("rlfjgesqhc"), "lrhmefnjcq", 0, 9, 0);
+ test(S("itphbqsker"), "dtablcrseo", 0, 10, 1);
+ test(S("skjafcirqm"), "apckjsftedbhgomrnilq", 0, 0, S::npos);
+ test(S("tcqomarsfd"), "pcbrgflehjtiadnsokqm", 0, 1, S::npos);
+ test(S("rocfeldqpk"), "nsiadegjklhobrmtqcpf", 0, 10, 4);
+ test(S("cfpegndlkt"), "cpmajdqnolikhgsbretf", 0, 19, 0);
+ test(S("fqbtnkeasj"), "jcflkntmgiqrphdosaeb", 0, 20, 0);
+ test(S("shbcqnmoar"), "", 1, 0, S::npos);
+ test(S("bdoshlmfin"), "ontrs", 1, 0, S::npos);
+ test(S("khfrebnsgq"), "pfkna", 1, 1, S::npos);
+ test(S("getcrsaoji"), "ekosa", 1, 2, 1);
+ test(S("fjiknedcpq"), "anqhk", 1, 4, 4);
+ test(S("tkejgnafrm"), "jekca", 1, 5, 1);
+ test(S("jnakolqrde"), "ikemsjgacf", 1, 0, S::npos);
+ test(S("lcjptsmgbe"), "arolgsjkhm", 1, 1, S::npos);
+ test(S("itfsmcjorl"), "oftkbldhre", 1, 5, 1);
+ test(S("omchkfrjea"), "gbkqdoeftl", 1, 9, 4);
+ test(S("cigfqkated"), "sqcflrgtim", 1, 10, 1);
+ test(S("tscenjikml"), "fmhbkislrjdpanogqcet", 1, 0, S::npos);
+ test(S("qcpaemsinf"), "rnioadktqlgpbcjsmhef", 1, 1, S::npos);
+ test(S("gltkojeipd"), "oakgtnldpsefihqmjcbr", 1, 10, 1);
+ test(S("qistfrgnmp"), "gbnaelosidmcjqktfhpr", 1, 19, 1);
+ test(S("bdnpfcqaem"), "akbripjhlosndcmqgfet", 1, 20, 1);
+ test(S("ectnhskflp"), "", 5, 0, S::npos);
+ test(S("fgtianblpq"), "pijag", 5, 0, S::npos);
+ test(S("mfeqklirnh"), "jrckd", 5, 1, S::npos);
+ test(S("astedncjhk"), "qcloh", 5, 2, 6);
+ test(S("fhlqgcajbr"), "thlmp", 5, 4, S::npos);
+ test(S("epfhocmdng"), "qidmo", 5, 5, 6);
+ test(S("apcnsibger"), "lnegpsjqrd", 5, 0, S::npos);
+ test(S("aqkocrbign"), "rjqdablmfs", 5, 1, 5);
+ test(S("ijsmdtqgce"), "enkgpbsjaq", 5, 5, 7);
+ test(S("clobgsrken"), "kdsgoaijfh", 5, 9, 5);
+ test(S("jbhcfposld"), "trfqgmckbe", 5, 10, S::npos);
+ test(S("oqnpblhide"), "igetsracjfkdnpoblhqm", 5, 0, S::npos);
+ test(S("lroeasctif"), "nqctfaogirshlekbdjpm", 5, 1, S::npos);
+ test(S("bpjlgmiedh"), "csehfgomljdqinbartkp", 5, 10, 5);
+ test(S("pamkeoidrj"), "qahoegcmplkfsjbdnitr", 5, 19, 5);
+ test(S("espogqbthk"), "dpteiajrqmsognhlfbkc", 5, 20, 5);
+ test(S("shoiedtcjb"), "", 9, 0, S::npos);
+ test(S("ebcinjgads"), "tqbnh", 9, 0, S::npos);
+ test(S("dqmregkcfl"), "akmle", 9, 1, S::npos);
+ test(S("ngcrieqajf"), "iqfkm", 9, 2, S::npos);
+ test(S("qosmilgnjb"), "tqjsr", 9, 4, S::npos);
+ test(S("ikabsjtdfl"), "jplqg", 9, 5, 9);
+ test(S("ersmicafdh"), "oilnrbcgtj", 9, 0, S::npos);
+ test(S("fdnplotmgh"), "morkglpesn", 9, 1, S::npos);
+ test(S("fdbicojerm"), "dmicerngat", 9, 5, 9);
+ test(S("mbtafndjcq"), "radgeskbtc", 9, 9, S::npos);
+ test(S("mlenkpfdtc"), "ljikprsmqo", 9, 10, S::npos);
+ test(S("ahlcifdqgs"), "trqihkcgsjamfdbolnpe", 9, 0, S::npos);
+ test(S("bgjemaltks"), "lqmthbsrekajgnofcipd", 9, 1, S::npos);
+ test(S("pdhslbqrfc"), "jtalmedribkgqsopcnfh", 9, 10, S::npos);
+ test(S("dirhtsnjkc"), "spqfoiclmtagejbndkrh", 9, 19, 9);
+ test(S("dlroktbcja"), "nmotklspigjrdhcfaebq", 9, 20, 9);
+ test(S("ncjpmaekbs"), "", 10, 0, S::npos);
+ test(S("hlbosgmrak"), "hpmsd", 10, 0, S::npos);
+ test(S("pqfhsgilen"), "qnpor", 10, 1, S::npos);
+ test(S("gqtjsbdckh"), "otdma", 10, 2, S::npos);
+ test(S("cfkqpjlegi"), "efhjg", 10, 4, S::npos);
+ test(S("beanrfodgj"), "odpte", 10, 5, S::npos);
+ test(S("adtkqpbjfi"), "bctdgfmolr", 10, 0, S::npos);
+ test(S("iomkfthagj"), "oaklidrbqg", 10, 1, S::npos);
}
template <class S>
-void test2()
-{
- test(S("sdpcilonqj"), "dnjfsagktr", 10, 5, S::npos);
- test(S("gtfbdkqeml"), "nejaktmiqg", 10, 9, S::npos);
- test(S("bmeqgcdorj"), "pjqonlebsf", 10, 10, S::npos);
- test(S("etqlcanmob"), "dshmnbtolcjepgaikfqr", 10, 0, S::npos);
- test(S("roqmkbdtia"), "iogfhpabtjkqlrnemcds", 10, 1, S::npos);
- test(S("kadsithljf"), "ngridfabjsecpqltkmoh", 10, 10, S::npos);
- test(S("sgtkpbfdmh"), "athmknplcgofrqejsdib", 10, 19, S::npos);
- test(S("qgmetnabkl"), "ldobhmqcafnjtkeisgrp", 10, 20, S::npos);
- test(S("cqjohampgd"), "", 11, 0, S::npos);
- test(S("hobitmpsan"), "aocjb", 11, 0, S::npos);
- test(S("tjehkpsalm"), "jbrnk", 11, 1, S::npos);
- test(S("ngfbojitcl"), "tqedg", 11, 2, S::npos);
- test(S("rcfkdbhgjo"), "nqskp", 11, 4, S::npos);
- test(S("qghptonrea"), "eaqkl", 11, 5, S::npos);
- test(S("hnprfgqjdl"), "reaoicljqm", 11, 0, S::npos);
- test(S("hlmgabenti"), "lsftgajqpm", 11, 1, S::npos);
- test(S("ofcjanmrbs"), "rlpfogmits", 11, 5, S::npos);
- test(S("jqedtkornm"), "shkncmiaqj", 11, 9, S::npos);
- test(S("rfedlasjmg"), "fpnatrhqgs", 11, 10, S::npos);
- test(S("talpqjsgkm"), "sjclemqhnpdbgikarfot", 11, 0, S::npos);
- test(S("lrkcbtqpie"), "otcmedjikgsfnqbrhpla", 11, 1, S::npos);
- test(S("cipogdskjf"), "bonsaefdqiprkhlgtjcm", 11, 10, S::npos);
- test(S("nqedcojahi"), "egpscmahijlfnkrodqtb", 11, 19, S::npos);
- test(S("hefnrkmctj"), "kmqbfepjthgilscrndoa", 11, 20, S::npos);
- test(S("atqirnmekfjolhpdsgcb"), "", 0, 0, S::npos);
- test(S("echfkmlpribjnqsaogtd"), "prboq", 0, 0, S::npos);
- test(S("qnhiftdgcleajbpkrosm"), "fjcqh", 0, 1, 4);
- test(S("chamfknorbedjitgslpq"), "fmosa", 0, 2, 3);
- test(S("njhqpibfmtlkaecdrgso"), "qdbok", 0, 4, 3);
- test(S("ebnghfsqkprmdcljoiat"), "amslg", 0, 5, 3);
- test(S("letjomsgihfrpqbkancd"), "smpltjneqb", 0, 0, S::npos);
- test(S("nblgoipcrqeaktshjdmf"), "flitskrnge", 0, 1, 19);
- test(S("cehkbngtjoiflqapsmrd"), "pgqihmlbef", 0, 5, 2);
- test(S("mignapfoklbhcqjetdrs"), "cfpdqjtgsb", 0, 9, 2);
- test(S("ceatbhlsqjgpnokfrmdi"), "htpsiaflom", 0, 10, 2);
- test(S("ocihkjgrdelpfnmastqb"), "kpjfiaceghsrdtlbnomq", 0, 0, S::npos);
- test(S("noelgschdtbrjfmiqkap"), "qhtbomidljgafneksprc", 0, 1, 16);
- test(S("dkclqfombepritjnghas"), "nhtjobkcefldimpsaqgr", 0, 10, 1);
- test(S("miklnresdgbhqcojftap"), "prabcjfqnoeskilmtgdh", 0, 19, 0);
- test(S("htbcigojaqmdkfrnlsep"), "dtrgmchilkasqoebfpjn", 0, 20, 0);
- test(S("febhmqtjanokscdirpgl"), "", 1, 0, S::npos);
- test(S("loakbsqjpcrdhftniegm"), "sqome", 1, 0, S::npos);
- test(S("reagphsqflbitdcjmkno"), "smfte", 1, 1, 6);
- test(S("jitlfrqemsdhkopncabg"), "ciboh", 1, 2, 1);
- test(S("mhtaepscdnrjqgbkifol"), "haois", 1, 4, 1);
- test(S("tocesrfmnglpbjihqadk"), "abfki", 1, 5, 6);
- test(S("lpfmctjrhdagneskbqoi"), "frdkocntmq", 1, 0, S::npos);
- test(S("lsmqaepkdhncirbtjfgo"), "oasbpedlnr", 1, 1, 19);
- test(S("epoiqmtldrabnkjhcfsg"), "kltqmhgand", 1, 5, 4);
- test(S("emgasrilpknqojhtbdcf"), "gdtfjchpmr", 1, 9, 1);
- test(S("hnfiagdpcklrjetqbsom"), "ponmcqblet", 1, 10, 1);
- test(S("nsdfebgajhmtricpoklq"), "sgphqdnofeiklatbcmjr", 1, 0, S::npos);
- test(S("atjgfsdlpobmeiqhncrk"), "ljqprsmigtfoneadckbh", 1, 1, 7);
- test(S("sitodfgnrejlahcbmqkp"), "ligeojhafnkmrcsqtbdp", 1, 10, 1);
- test(S("fraghmbiceknltjpqosd"), "lsimqfnjarbopedkhcgt", 1, 19, 1);
- test(S("pmafenlhqtdbkirjsogc"), "abedmfjlghniorcqptks", 1, 20, 1);
- test(S("pihgmoeqtnakrjslcbfd"), "", 10, 0, S::npos);
- test(S("gjdkeprctqblnhiafsom"), "hqtoa", 10, 0, S::npos);
- test(S("mkpnblfdsahrcqijteog"), "cahif", 10, 1, 12);
- test(S("gckarqnelodfjhmbptis"), "kehis", 10, 2, S::npos);
- test(S("gqpskidtbclomahnrjfe"), "kdlmh", 10, 4, 10);
- test(S("pkldjsqrfgitbhmaecno"), "paeql", 10, 5, 15);
- test(S("aftsijrbeklnmcdqhgop"), "aghoqiefnb", 10, 0, S::npos);
- test(S("mtlgdrhafjkbiepqnsoc"), "jrbqaikpdo", 10, 1, S::npos);
- test(S("pqgirnaefthokdmbsclj"), "smjonaeqcl", 10, 5, 11);
- test(S("kpdbgjmtherlsfcqoina"), "eqbdrkcfah", 10, 9, 10);
- test(S("jrlbothiknqmdgcfasep"), "kapmsienhf", 10, 10, 11);
- test(S("mjogldqferckabinptsh"), "jpqotrlenfcsbhkaimdg", 10, 0, S::npos);
- test(S("apoklnefbhmgqcdrisjt"), "jlbmhnfgtcqprikeados", 10, 1, 18);
- test(S("ifeopcnrjbhkdgatmqls"), "stgbhfmdaljnpqoicker", 10, 10, 10);
- test(S("ckqhaiesmjdnrgolbtpf"), "oihcetflbjagdsrkmqpn", 10, 19, 10);
- test(S("bnlgapfimcoterskqdjh"), "adtclebmnpjsrqfkigoh", 10, 20, 10);
- test(S("kgdlrobpmjcthqsafeni"), "", 19, 0, S::npos);
- test(S("dfkechomjapgnslbtqir"), "beafg", 19, 0, S::npos);
- test(S("rloadknfbqtgmhcsipje"), "iclat", 19, 1, S::npos);
- test(S("mgjhkolrnadqbpetcifs"), "rkhnf", 19, 2, S::npos);
- test(S("cmlfakiojdrgtbsphqen"), "clshq", 19, 4, S::npos);
- test(S("kghbfipeomsntdalrqjc"), "dtcoj", 19, 5, 19);
- test(S("eldiqckrnmtasbghjfpo"), "rqosnjmfth", 19, 0, S::npos);
- test(S("abqjcfedgotihlnspkrm"), "siatdfqglh", 19, 1, S::npos);
- test(S("qfbadrtjsimkolcenhpg"), "mrlshtpgjq", 19, 5, S::npos);
- test(S("abseghclkjqifmtodrnp"), "adlcskgqjt", 19, 9, S::npos);
- test(S("ibmsnlrjefhtdokacqpg"), "drshcjknaf", 19, 10, S::npos);
- test(S("mrkfciqjebaponsthldg"), "etsaqroinghpkjdlfcbm", 19, 0, S::npos);
- test(S("mjkticdeoqshpalrfbgn"), "sgepdnkqliambtrocfhj", 19, 1, S::npos);
- test(S("rqnoclbdejgiphtfsakm"), "nlmcjaqgbsortfdihkpe", 19, 10, 19);
- test(S("plkqbhmtfaeodjcrsing"), "racfnpmosldibqkghjet", 19, 19, 19);
- test(S("oegalhmstjrfickpbndq"), "fjhdsctkqeiolagrnmbp", 19, 20, 19);
- test(S("rdtgjcaohpblniekmsfq"), "", 20, 0, S::npos);
- test(S("ofkqbnjetrmsaidphglc"), "ejanp", 20, 0, S::npos);
- test(S("grkpahljcftesdmonqib"), "odife", 20, 1, S::npos);
- test(S("jimlgbhfqkteospardcn"), "okaqd", 20, 2, S::npos);
- test(S("gftenihpmslrjkqadcob"), "lcdbi", 20, 4, S::npos);
- test(S("bmhldogtckrfsanijepq"), "fsqbj", 20, 5, S::npos);
- test(S("nfqkrpjdesabgtlcmoih"), "bigdomnplq", 20, 0, S::npos);
- test(S("focalnrpiqmdkstehbjg"), "apiblotgcd", 20, 1, S::npos);
- test(S("rhqdspkmebiflcotnjga"), "acfhdenops", 20, 5, S::npos);
- test(S("rahdtmsckfboqlpniegj"), "jopdeamcrk", 20, 9, S::npos);
- test(S("fbkeiopclstmdqranjhg"), "trqncbkgmh", 20, 10, S::npos);
- test(S("lifhpdgmbconstjeqark"), "tomglrkencbsfjqpihda", 20, 0, S::npos);
+void test2() {
+ test(S("sdpcilonqj"), "dnjfsagktr", 10, 5, S::npos);
+ test(S("gtfbdkqeml"), "nejaktmiqg", 10, 9, S::npos);
+ test(S("bmeqgcdorj"), "pjqonlebsf", 10, 10, S::npos);
+ test(S("etqlcanmob"), "dshmnbtolcjepgaikfqr", 10, 0, S::npos);
+ test(S("roqmkbdtia"), "iogfhpabtjkqlrnemcds", 10, 1, S::npos);
+ test(S("kadsithljf"), "ngridfabjsecpqltkmoh", 10, 10, S::npos);
+ test(S("sgtkpbfdmh"), "athmknplcgofrqejsdib", 10, 19, S::npos);
+ test(S("qgmetnabkl"), "ldobhmqcafnjtkeisgrp", 10, 20, S::npos);
+ test(S("cqjohampgd"), "", 11, 0, S::npos);
+ test(S("hobitmpsan"), "aocjb", 11, 0, S::npos);
+ test(S("tjehkpsalm"), "jbrnk", 11, 1, S::npos);
+ test(S("ngfbojitcl"), "tqedg", 11, 2, S::npos);
+ test(S("rcfkdbhgjo"), "nqskp", 11, 4, S::npos);
+ test(S("qghptonrea"), "eaqkl", 11, 5, S::npos);
+ test(S("hnprfgqjdl"), "reaoicljqm", 11, 0, S::npos);
+ test(S("hlmgabenti"), "lsftgajqpm", 11, 1, S::npos);
+ test(S("ofcjanmrbs"), "rlpfogmits", 11, 5, S::npos);
+ test(S("jqedtkornm"), "shkncmiaqj", 11, 9, S::npos);
+ test(S("rfedlasjmg"), "fpnatrhqgs", 11, 10, S::npos);
+ test(S("talpqjsgkm"), "sjclemqhnpdbgikarfot", 11, 0, S::npos);
+ test(S("lrkcbtqpie"), "otcmedjikgsfnqbrhpla", 11, 1, S::npos);
+ test(S("cipogdskjf"), "bonsaefdqiprkhlgtjcm", 11, 10, S::npos);
+ test(S("nqedcojahi"), "egpscmahijlfnkrodqtb", 11, 19, S::npos);
+ test(S("hefnrkmctj"), "kmqbfepjthgilscrndoa", 11, 20, S::npos);
+ test(S("atqirnmekfjolhpdsgcb"), "", 0, 0, S::npos);
+ test(S("echfkmlpribjnqsaogtd"), "prboq", 0, 0, S::npos);
+ test(S("qnhiftdgcleajbpkrosm"), "fjcqh", 0, 1, 4);
+ test(S("chamfknorbedjitgslpq"), "fmosa", 0, 2, 3);
+ test(S("njhqpibfmtlkaecdrgso"), "qdbok", 0, 4, 3);
+ test(S("ebnghfsqkprmdcljoiat"), "amslg", 0, 5, 3);
+ test(S("letjomsgihfrpqbkancd"), "smpltjneqb", 0, 0, S::npos);
+ test(S("nblgoipcrqeaktshjdmf"), "flitskrnge", 0, 1, 19);
+ test(S("cehkbngtjoiflqapsmrd"), "pgqihmlbef", 0, 5, 2);
+ test(S("mignapfoklbhcqjetdrs"), "cfpdqjtgsb", 0, 9, 2);
+ test(S("ceatbhlsqjgpnokfrmdi"), "htpsiaflom", 0, 10, 2);
+ test(S("ocihkjgrdelpfnmastqb"), "kpjfiaceghsrdtlbnomq", 0, 0, S::npos);
+ test(S("noelgschdtbrjfmiqkap"), "qhtbomidljgafneksprc", 0, 1, 16);
+ test(S("dkclqfombepritjnghas"), "nhtjobkcefldimpsaqgr", 0, 10, 1);
+ test(S("miklnresdgbhqcojftap"), "prabcjfqnoeskilmtgdh", 0, 19, 0);
+ test(S("htbcigojaqmdkfrnlsep"), "dtrgmchilkasqoebfpjn", 0, 20, 0);
+ test(S("febhmqtjanokscdirpgl"), "", 1, 0, S::npos);
+ test(S("loakbsqjpcrdhftniegm"), "sqome", 1, 0, S::npos);
+ test(S("reagphsqflbitdcjmkno"), "smfte", 1, 1, 6);
+ test(S("jitlfrqemsdhkopncabg"), "ciboh", 1, 2, 1);
+ test(S("mhtaepscdnrjqgbkifol"), "haois", 1, 4, 1);
+ test(S("tocesrfmnglpbjihqadk"), "abfki", 1, 5, 6);
+ test(S("lpfmctjrhdagneskbqoi"), "frdkocntmq", 1, 0, S::npos);
+ test(S("lsmqaepkdhncirbtjfgo"), "oasbpedlnr", 1, 1, 19);
+ test(S("epoiqmtldrabnkjhcfsg"), "kltqmhgand", 1, 5, 4);
+ test(S("emgasrilpknqojhtbdcf"), "gdtfjchpmr", 1, 9, 1);
+ test(S("hnfiagdpcklrjetqbsom"), "ponmcqblet", 1, 10, 1);
+ test(S("nsdfebgajhmtricpoklq"), "sgphqdnofeiklatbcmjr", 1, 0, S::npos);
+ test(S("atjgfsdlpobmeiqhncrk"), "ljqprsmigtfoneadckbh", 1, 1, 7);
+ test(S("sitodfgnrejlahcbmqkp"), "ligeojhafnkmrcsqtbdp", 1, 10, 1);
+ test(S("fraghmbiceknltjpqosd"), "lsimqfnjarbopedkhcgt", 1, 19, 1);
+ test(S("pmafenlhqtdbkirjsogc"), "abedmfjlghniorcqptks", 1, 20, 1);
+ test(S("pihgmoeqtnakrjslcbfd"), "", 10, 0, S::npos);
+ test(S("gjdkeprctqblnhiafsom"), "hqtoa", 10, 0, S::npos);
+ test(S("mkpnblfdsahrcqijteog"), "cahif", 10, 1, 12);
+ test(S("gckarqnelodfjhmbptis"), "kehis", 10, 2, S::npos);
+ test(S("gqpskidtbclomahnrjfe"), "kdlmh", 10, 4, 10);
+ test(S("pkldjsqrfgitbhmaecno"), "paeql", 10, 5, 15);
+ test(S("aftsijrbeklnmcdqhgop"), "aghoqiefnb", 10, 0, S::npos);
+ test(S("mtlgdrhafjkbiepqnsoc"), "jrbqaikpdo", 10, 1, S::npos);
+ test(S("pqgirnaefthokdmbsclj"), "smjonaeqcl", 10, 5, 11);
+ test(S("kpdbgjmtherlsfcqoina"), "eqbdrkcfah", 10, 9, 10);
+ test(S("jrlbothiknqmdgcfasep"), "kapmsienhf", 10, 10, 11);
+ test(S("mjogldqferckabinptsh"), "jpqotrlenfcsbhkaimdg", 10, 0, S::npos);
+ test(S("apoklnefbhmgqcdrisjt"), "jlbmhnfgtcqprikeados", 10, 1, 18);
+ test(S("ifeopcnrjbhkdgatmqls"), "stgbhfmdaljnpqoicker", 10, 10, 10);
+ test(S("ckqhaiesmjdnrgolbtpf"), "oihcetflbjagdsrkmqpn", 10, 19, 10);
+ test(S("bnlgapfimcoterskqdjh"), "adtclebmnpjsrqfkigoh", 10, 20, 10);
+ test(S("kgdlrobpmjcthqsafeni"), "", 19, 0, S::npos);
+ test(S("dfkechomjapgnslbtqir"), "beafg", 19, 0, S::npos);
+ test(S("rloadknfbqtgmhcsipje"), "iclat", 19, 1, S::npos);
+ test(S("mgjhkolrnadqbpetcifs"), "rkhnf", 19, 2, S::npos);
+ test(S("cmlfakiojdrgtbsphqen"), "clshq", 19, 4, S::npos);
+ test(S("kghbfipeomsntdalrqjc"), "dtcoj", 19, 5, 19);
+ test(S("eldiqckrnmtasbghjfpo"), "rqosnjmfth", 19, 0, S::npos);
+ test(S("abqjcfedgotihlnspkrm"), "siatdfqglh", 19, 1, S::npos);
+ test(S("qfbadrtjsimkolcenhpg"), "mrlshtpgjq", 19, 5, S::npos);
+ test(S("abseghclkjqifmtodrnp"), "adlcskgqjt", 19, 9, S::npos);
+ test(S("ibmsnlrjefhtdokacqpg"), "drshcjknaf", 19, 10, S::npos);
+ test(S("mrkfciqjebaponsthldg"), "etsaqroinghpkjdlfcbm", 19, 0, S::npos);
+ test(S("mjkticdeoqshpalrfbgn"), "sgepdnkqliambtrocfhj", 19, 1, S::npos);
+ test(S("rqnoclbdejgiphtfsakm"), "nlmcjaqgbsortfdihkpe", 19, 10, 19);
+ test(S("plkqbhmtfaeodjcrsing"), "racfnpmosldibqkghjet", 19, 19, 19);
+ test(S("oegalhmstjrfickpbndq"), "fjhdsctkqeiolagrnmbp", 19, 20, 19);
+ test(S("rdtgjcaohpblniekmsfq"), "", 20, 0, S::npos);
+ test(S("ofkqbnjetrmsaidphglc"), "ejanp", 20, 0, S::npos);
+ test(S("grkpahljcftesdmonqib"), "odife", 20, 1, S::npos);
+ test(S("jimlgbhfqkteospardcn"), "okaqd", 20, 2, S::npos);
+ test(S("gftenihpmslrjkqadcob"), "lcdbi", 20, 4, S::npos);
+ test(S("bmhldogtckrfsanijepq"), "fsqbj", 20, 5, S::npos);
+ test(S("nfqkrpjdesabgtlcmoih"), "bigdomnplq", 20, 0, S::npos);
+ test(S("focalnrpiqmdkstehbjg"), "apiblotgcd", 20, 1, S::npos);
+ test(S("rhqdspkmebiflcotnjga"), "acfhdenops", 20, 5, S::npos);
+ test(S("rahdtmsckfboqlpniegj"), "jopdeamcrk", 20, 9, S::npos);
+ test(S("fbkeiopclstmdqranjhg"), "trqncbkgmh", 20, 10, S::npos);
+ test(S("lifhpdgmbconstjeqark"), "tomglrkencbsfjqpihda", 20, 0, S::npos);
}
template <class S>
-void test3()
-{
- test(S("pboqganrhedjmltsicfk"), "gbkhdnpoietfcmrslajq", 20, 1, S::npos);
- test(S("klchabsimetjnqgorfpd"), "rtfnmbsglkjaichoqedp", 20, 10, S::npos);
- test(S("sirfgmjqhctndbklaepo"), "ohkmdpfqbsacrtjnlgei", 20, 19, S::npos);
- test(S("rlbdsiceaonqjtfpghkm"), "dlbrteoisgphmkncajfq", 20, 20, S::npos);
- test(S("ecgdanriptblhjfqskom"), "", 21, 0, S::npos);
- test(S("fdmiarlpgcskbhoteqjn"), "sjrlo", 21, 0, S::npos);
- test(S("rlbstjqopignecmfadkh"), "qjpor", 21, 1, S::npos);
- test(S("grjpqmbshektdolcafni"), "odhfn", 21, 2, S::npos);
- test(S("sakfcohtqnibprjmlged"), "qtfin", 21, 4, S::npos);
- test(S("mjtdglasihqpocebrfkn"), "hpqfo", 21, 5, S::npos);
- test(S("okaplfrntghqbmeicsdj"), "fabmertkos", 21, 0, S::npos);
- test(S("sahngemrtcjidqbklfpo"), "brqtgkmaej", 21, 1, S::npos);
- test(S("dlmsipcnekhbgoaftqjr"), "nfrdeihsgl", 21, 5, S::npos);
- test(S("ahegrmqnoiklpfsdbcjt"), "hlfrosekpi", 21, 9, S::npos);
- test(S("hdsjbnmlegtkqripacof"), "atgbkrjdsm", 21, 10, S::npos);
- test(S("pcnedrfjihqbalkgtoms"), "blnrptjgqmaifsdkhoec", 21, 0, S::npos);
- test(S("qjidealmtpskrbfhocng"), "ctpmdahebfqjgknloris", 21, 1, S::npos);
- test(S("qeindtagmokpfhsclrbj"), "apnkeqthrmlbfodiscgj", 21, 10, S::npos);
- test(S("kpfegbjhsrnodltqciam"), "jdgictpframeoqlsbknh", 21, 19, S::npos);
- test(S("hnbrcplsjfgiktoedmaq"), "qprlsfojamgndekthibc", 21, 20, S::npos);
+void test3() {
+ test(S("pboqganrhedjmltsicfk"), "gbkhdnpoietfcmrslajq", 20, 1, S::npos);
+ test(S("klchabsimetjnqgorfpd"), "rtfnmbsglkjaichoqedp", 20, 10, S::npos);
+ test(S("sirfgmjqhctndbklaepo"), "ohkmdpfqbsacrtjnlgei", 20, 19, S::npos);
+ test(S("rlbdsiceaonqjtfpghkm"), "dlbrteoisgphmkncajfq", 20, 20, S::npos);
+ test(S("ecgdanriptblhjfqskom"), "", 21, 0, S::npos);
+ test(S("fdmiarlpgcskbhoteqjn"), "sjrlo", 21, 0, S::npos);
+ test(S("rlbstjqopignecmfadkh"), "qjpor", 21, 1, S::npos);
+ test(S("grjpqmbshektdolcafni"), "odhfn", 21, 2, S::npos);
+ test(S("sakfcohtqnibprjmlged"), "qtfin", 21, 4, S::npos);
+ test(S("mjtdglasihqpocebrfkn"), "hpqfo", 21, 5, S::npos);
+ test(S("okaplfrntghqbmeicsdj"), "fabmertkos", 21, 0, S::npos);
+ test(S("sahngemrtcjidqbklfpo"), "brqtgkmaej", 21, 1, S::npos);
+ test(S("dlmsipcnekhbgoaftqjr"), "nfrdeihsgl", 21, 5, S::npos);
+ test(S("ahegrmqnoiklpfsdbcjt"), "hlfrosekpi", 21, 9, S::npos);
+ test(S("hdsjbnmlegtkqripacof"), "atgbkrjdsm", 21, 10, S::npos);
+ test(S("pcnedrfjihqbalkgtoms"), "blnrptjgqmaifsdkhoec", 21, 0, S::npos);
+ test(S("qjidealmtpskrbfhocng"), "ctpmdahebfqjgknloris", 21, 1, S::npos);
+ test(S("qeindtagmokpfhsclrbj"), "apnkeqthrmlbfodiscgj", 21, 10, S::npos);
+ test(S("kpfegbjhsrnodltqciam"), "jdgictpframeoqlsbknh", 21, 19, S::npos);
+ test(S("hnbrcplsjfgiktoedmaq"), "qprlsfojamgndekthibc", 21, 20, S::npos);
}
-int main(int, char**)
-{
- {
+int main(int, char**) {
+ {
typedef std::string_view S;
test0<S>();
test1<S>();
test2<S>();
test3<S>();
- }
+ }
#if TEST_STD_VER > 11
- {
+ {
typedef std::basic_string_view<char, constexpr_char_traits<char>> SV;
- constexpr SV sv1;
- constexpr SV sv2 { "abcde", 5 };
+ constexpr SV sv1;
+ constexpr SV sv2{"abcde", 5};
- static_assert (sv1.find_first_of( "", 0, 0) == SV::npos, "" );
- static_assert (sv1.find_first_of( "irkhs", 0, 5) == SV::npos, "" );
- static_assert (sv2.find_first_of( "", 0, 0) == SV::npos, "" );
- static_assert (sv2.find_first_of( "gfsrt", 0, 5) == SV::npos, "" );
- static_assert (sv2.find_first_of( "lecar", 0, 5) == 0, "" );
- }
+ static_assert(sv1.find_first_of("", 0, 0) == SV::npos, "");
+ static_assert(sv1.find_first_of("irkhs", 0, 5) == SV::npos, "");
+ static_assert(sv2.find_first_of("", 0, 0) == SV::npos, "");
+ static_assert(sv2.find_first_of("gfsrt", 0, 5) == SV::npos, "");
+ static_assert(sv2.find_first_of("lecar", 0, 5) == 0, "");
+ }
#endif
return 0;
diff --git a/libcxx/test/std/strings/string.view/string.view.find/find_first_of_string_view_size.pass.cpp b/libcxx/test/std/strings/string.view/string.view.find/find_first_of_string_view_size.pass.cpp
index 62bfe9fd5f6da6d..285aa8ad8c7fb7b 100644
--- a/libcxx/test/std/strings/string.view/string.view.find/find_first_of_string_view_size.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.find/find_first_of_string_view_size.pass.cpp
@@ -18,138 +18,131 @@
#include "test_macros.h"
template <class S>
-void
-test(const S& s, const S& str, typename S::size_type pos, typename S::size_type x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.find_first_of(str, pos));
- assert(s.find_first_of(str, pos) == x);
- if (x != S::npos)
- assert(pos <= x && x < s.size());
+void test(const S& s, const S& str, typename S::size_type pos, typename S::size_type x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.find_first_of(str, pos));
+ assert(s.find_first_of(str, pos) == x);
+ if (x != S::npos)
+ assert(pos <= x && x < s.size());
}
template <class S>
-void
-test(const S& s, const S& str, typename S::size_type x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.find_first_of(str));
- assert(s.find_first_of(str) == x);
- if (x != S::npos)
- assert(x < s.size());
+void test(const S& s, const S& str, typename S::size_type x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.find_first_of(str));
+ assert(s.find_first_of(str) == x);
+ if (x != S::npos)
+ assert(x < s.size());
}
template <class S>
-void test0()
-{
- test(S(""), S(""), 0, S::npos);
- test(S(""), S("laenf"), 0, S::npos);
- test(S(""), S("pqlnkmbdjo"), 0, S::npos);
- test(S(""), S("qkamfogpnljdcshbreti"), 0, S::npos);
- test(S(""), S(""), 1, S::npos);
- test(S(""), S("bjaht"), 1, S::npos);
- test(S(""), S("hjlcmgpket"), 1, S::npos);
- test(S(""), S("htaobedqikfplcgjsmrn"), 1, S::npos);
- test(S("fodgq"), S(""), 0, S::npos);
- test(S("qanej"), S("dfkap"), 0, 1);
- test(S("clbao"), S("ihqrfebgad"), 0, 2);
- test(S("mekdn"), S("ngtjfcalbseiqrphmkdo"), 0, 0);
- test(S("srdfq"), S(""), 1, S::npos);
- test(S("oemth"), S("ikcrq"), 1, S::npos);
- test(S("cdaih"), S("dmajblfhsg"), 1, 1);
- test(S("qohtk"), S("oqftjhdmkgsblacenirp"), 1, 1);
- test(S("cshmd"), S(""), 2, S::npos);
- test(S("lhcdo"), S("oebqi"), 2, 4);
- test(S("qnsoh"), S("kojhpmbsfe"), 2, 2);
- test(S("pkrof"), S("acbsjqogpltdkhinfrem"), 2, 2);
- test(S("fmtsp"), S(""), 4, S::npos);
- test(S("khbpm"), S("aobjd"), 4, S::npos);
- test(S("pbsji"), S("pcbahntsje"), 4, S::npos);
- test(S("mprdj"), S("fhepcrntkoagbmldqijs"), 4, 4);
- test(S("eqmpa"), S(""), 5, S::npos);
- test(S("omigs"), S("kocgb"), 5, S::npos);
- test(S("onmje"), S("fbslrjiqkm"), 5, S::npos);
- test(S("oqmrj"), S("jeidpcmalhfnqbgtrsko"), 5, S::npos);
- test(S("schfa"), S(""), 6, S::npos);
- test(S("igdsc"), S("qngpd"), 6, S::npos);
- test(S("brqgo"), S("rodhqklgmb"), 6, S::npos);
- test(S("tnrph"), S("thdjgafrlbkoiqcspmne"), 6, S::npos);
- test(S("hcjitbfapl"), S(""), 0, S::npos);
- test(S("daiprenocl"), S("ashjd"), 0, 0);
- test(S("litpcfdghe"), S("mgojkldsqh"), 0, 0);
- test(S("aidjksrolc"), S("imqnaghkfrdtlopbjesc"), 0, 0);
- test(S("qpghtfbaji"), S(""), 1, S::npos);
- test(S("gfshlcmdjr"), S("nadkh"), 1, 3);
- test(S("nkodajteqp"), S("ofdrqmkebl"), 1, 1);
- test(S("gbmetiprqd"), S("bdfjqgatlksriohemnpc"), 1, 1);
- test(S("crnklpmegd"), S(""), 5, S::npos);
- test(S("jsbtafedoc"), S("prqgn"), 5, S::npos);
- test(S("qnmodrtkeb"), S("pejafmnokr"), 5, 5);
- test(S("cpebqsfmnj"), S("odnqkgijrhabfmcestlp"), 5, 5);
- test(S("lmofqdhpki"), S(""), 9, S::npos);
- test(S("hnefkqimca"), S("rtjpa"), 9, 9);
- test(S("drtasbgmfp"), S("ktsrmnqagd"), 9, S::npos);
- test(S("lsaijeqhtr"), S("rtdhgcisbnmoaqkfpjle"), 9, 9);
- test(S("elgofjmbrq"), S(""), 10, S::npos);
- test(S("mjqdgalkpc"), S("dplqa"), 10, S::npos);
- test(S("kthqnfcerm"), S("dkacjoptns"), 10, S::npos);
- test(S("dfsjhanorc"), S("hqfimtrgnbekpdcsjalo"), 10, S::npos);
- test(S("eqsgalomhb"), S(""), 11, S::npos);
- test(S("akiteljmoh"), S("lofbc"), 11, S::npos);
- test(S("hlbdfreqjo"), S("astoegbfpn"), 11, S::npos);
- test(S("taqobhlerg"), S("pdgreqomsncafklhtibj"), 11, S::npos);
- test(S("snafbdlghrjkpqtoceim"), S(""), 0, S::npos);
- test(S("aemtbrgcklhndjisfpoq"), S("lbtqd"), 0, 3);
- test(S("pnracgfkjdiholtbqsem"), S("tboimldpjh"), 0, 0);
- test(S("dicfltehbsgrmojnpkaq"), S("slcerthdaiqjfnobgkpm"), 0, 0);
- test(S("jlnkraeodhcspfgbqitm"), S(""), 1, S::npos);
- test(S("lhosrngtmfjikbqpcade"), S("aqibs"), 1, 3);
- test(S("rbtaqjhgkneisldpmfoc"), S("gtfblmqinc"), 1, 1);
- test(S("gpifsqlrdkbonjtmheca"), S("mkqpbtdalgniorhfescj"), 1, 1);
- test(S("hdpkobnsalmcfijregtq"), S(""), 10, S::npos);
- test(S("jtlshdgqaiprkbcoenfm"), S("pblas"), 10, 10);
- test(S("fkdrbqltsgmcoiphneaj"), S("arosdhcfme"), 10, 10);
- test(S("crsplifgtqedjohnabmk"), S("blkhjeogicatqfnpdmsr"), 10, 10);
- test(S("niptglfbosehkamrdqcj"), S(""), 19, S::npos);
- test(S("copqdhstbingamjfkler"), S("djkqc"), 19, S::npos);
- test(S("mrtaefilpdsgocnhqbjk"), S("lgokshjtpb"), 19, 19);
- test(S("kojatdhlcmigpbfrqnes"), S("bqjhtkfepimcnsgrlado"), 19, 19);
- test(S("eaintpchlqsbdgrkjofm"), S(""), 20, S::npos);
- test(S("gjnhidfsepkrtaqbmclo"), S("nocfa"), 20, S::npos);
- test(S("spocfaktqdbiejlhngmr"), S("bgtajmiedc"), 20, S::npos);
- test(S("rphmlekgfscndtaobiqj"), S("lsckfnqgdahejiopbtmr"), 20, S::npos);
- test(S("liatsqdoegkmfcnbhrpj"), S(""), 21, S::npos);
- test(S("binjagtfldkrspcomqeh"), S("gfsrt"), 21, S::npos);
- test(S("latkmisecnorjbfhqpdg"), S("pfsocbhjtm"), 21, S::npos);
- test(S("lecfratdjkhnsmqpoigb"), S("tpflmdnoicjgkberhqsa"), 21, S::npos);
+void test0() {
+ test(S(""), S(""), 0, S::npos);
+ test(S(""), S("laenf"), 0, S::npos);
+ test(S(""), S("pqlnkmbdjo"), 0, S::npos);
+ test(S(""), S("qkamfogpnljdcshbreti"), 0, S::npos);
+ test(S(""), S(""), 1, S::npos);
+ test(S(""), S("bjaht"), 1, S::npos);
+ test(S(""), S("hjlcmgpket"), 1, S::npos);
+ test(S(""), S("htaobedqikfplcgjsmrn"), 1, S::npos);
+ test(S("fodgq"), S(""), 0, S::npos);
+ test(S("qanej"), S("dfkap"), 0, 1);
+ test(S("clbao"), S("ihqrfebgad"), 0, 2);
+ test(S("mekdn"), S("ngtjfcalbseiqrphmkdo"), 0, 0);
+ test(S("srdfq"), S(""), 1, S::npos);
+ test(S("oemth"), S("ikcrq"), 1, S::npos);
+ test(S("cdaih"), S("dmajblfhsg"), 1, 1);
+ test(S("qohtk"), S("oqftjhdmkgsblacenirp"), 1, 1);
+ test(S("cshmd"), S(""), 2, S::npos);
+ test(S("lhcdo"), S("oebqi"), 2, 4);
+ test(S("qnsoh"), S("kojhpmbsfe"), 2, 2);
+ test(S("pkrof"), S("acbsjqogpltdkhinfrem"), 2, 2);
+ test(S("fmtsp"), S(""), 4, S::npos);
+ test(S("khbpm"), S("aobjd"), 4, S::npos);
+ test(S("pbsji"), S("pcbahntsje"), 4, S::npos);
+ test(S("mprdj"), S("fhepcrntkoagbmldqijs"), 4, 4);
+ test(S("eqmpa"), S(""), 5, S::npos);
+ test(S("omigs"), S("kocgb"), 5, S::npos);
+ test(S("onmje"), S("fbslrjiqkm"), 5, S::npos);
+ test(S("oqmrj"), S("jeidpcmalhfnqbgtrsko"), 5, S::npos);
+ test(S("schfa"), S(""), 6, S::npos);
+ test(S("igdsc"), S("qngpd"), 6, S::npos);
+ test(S("brqgo"), S("rodhqklgmb"), 6, S::npos);
+ test(S("tnrph"), S("thdjgafrlbkoiqcspmne"), 6, S::npos);
+ test(S("hcjitbfapl"), S(""), 0, S::npos);
+ test(S("daiprenocl"), S("ashjd"), 0, 0);
+ test(S("litpcfdghe"), S("mgojkldsqh"), 0, 0);
+ test(S("aidjksrolc"), S("imqnaghkfrdtlopbjesc"), 0, 0);
+ test(S("qpghtfbaji"), S(""), 1, S::npos);
+ test(S("gfshlcmdjr"), S("nadkh"), 1, 3);
+ test(S("nkodajteqp"), S("ofdrqmkebl"), 1, 1);
+ test(S("gbmetiprqd"), S("bdfjqgatlksriohemnpc"), 1, 1);
+ test(S("crnklpmegd"), S(""), 5, S::npos);
+ test(S("jsbtafedoc"), S("prqgn"), 5, S::npos);
+ test(S("qnmodrtkeb"), S("pejafmnokr"), 5, 5);
+ test(S("cpebqsfmnj"), S("odnqkgijrhabfmcestlp"), 5, 5);
+ test(S("lmofqdhpki"), S(""), 9, S::npos);
+ test(S("hnefkqimca"), S("rtjpa"), 9, 9);
+ test(S("drtasbgmfp"), S("ktsrmnqagd"), 9, S::npos);
+ test(S("lsaijeqhtr"), S("rtdhgcisbnmoaqkfpjle"), 9, 9);
+ test(S("elgofjmbrq"), S(""), 10, S::npos);
+ test(S("mjqdgalkpc"), S("dplqa"), 10, S::npos);
+ test(S("kthqnfcerm"), S("dkacjoptns"), 10, S::npos);
+ test(S("dfsjhanorc"), S("hqfimtrgnbekpdcsjalo"), 10, S::npos);
+ test(S("eqsgalomhb"), S(""), 11, S::npos);
+ test(S("akiteljmoh"), S("lofbc"), 11, S::npos);
+ test(S("hlbdfreqjo"), S("astoegbfpn"), 11, S::npos);
+ test(S("taqobhlerg"), S("pdgreqomsncafklhtibj"), 11, S::npos);
+ test(S("snafbdlghrjkpqtoceim"), S(""), 0, S::npos);
+ test(S("aemtbrgcklhndjisfpoq"), S("lbtqd"), 0, 3);
+ test(S("pnracgfkjdiholtbqsem"), S("tboimldpjh"), 0, 0);
+ test(S("dicfltehbsgrmojnpkaq"), S("slcerthdaiqjfnobgkpm"), 0, 0);
+ test(S("jlnkraeodhcspfgbqitm"), S(""), 1, S::npos);
+ test(S("lhosrngtmfjikbqpcade"), S("aqibs"), 1, 3);
+ test(S("rbtaqjhgkneisldpmfoc"), S("gtfblmqinc"), 1, 1);
+ test(S("gpifsqlrdkbonjtmheca"), S("mkqpbtdalgniorhfescj"), 1, 1);
+ test(S("hdpkobnsalmcfijregtq"), S(""), 10, S::npos);
+ test(S("jtlshdgqaiprkbcoenfm"), S("pblas"), 10, 10);
+ test(S("fkdrbqltsgmcoiphneaj"), S("arosdhcfme"), 10, 10);
+ test(S("crsplifgtqedjohnabmk"), S("blkhjeogicatqfnpdmsr"), 10, 10);
+ test(S("niptglfbosehkamrdqcj"), S(""), 19, S::npos);
+ test(S("copqdhstbingamjfkler"), S("djkqc"), 19, S::npos);
+ test(S("mrtaefilpdsgocnhqbjk"), S("lgokshjtpb"), 19, 19);
+ test(S("kojatdhlcmigpbfrqnes"), S("bqjhtkfepimcnsgrlado"), 19, 19);
+ test(S("eaintpchlqsbdgrkjofm"), S(""), 20, S::npos);
+ test(S("gjnhidfsepkrtaqbmclo"), S("nocfa"), 20, S::npos);
+ test(S("spocfaktqdbiejlhngmr"), S("bgtajmiedc"), 20, S::npos);
+ test(S("rphmlekgfscndtaobiqj"), S("lsckfnqgdahejiopbtmr"), 20, S::npos);
+ test(S("liatsqdoegkmfcnbhrpj"), S(""), 21, S::npos);
+ test(S("binjagtfldkrspcomqeh"), S("gfsrt"), 21, S::npos);
+ test(S("latkmisecnorjbfhqpdg"), S("pfsocbhjtm"), 21, S::npos);
+ test(S("lecfratdjkhnsmqpoigb"), S("tpflmdnoicjgkberhqsa"), 21, S::npos);
}
template <class S>
-void test1()
-{
- test(S(""), S(""), S::npos);
- test(S(""), S("laenf"), S::npos);
- test(S(""), S("pqlnkmbdjo"), S::npos);
- test(S(""), S("qkamfogpnljdcshbreti"), S::npos);
- test(S("nhmko"), S(""), S::npos);
- test(S("lahfb"), S("irkhs"), 2);
- test(S("gmfhd"), S("kantesmpgj"), 0);
- test(S("odaft"), S("oknlrstdpiqmjbaghcfe"), 0);
- test(S("eolhfgpjqk"), S(""), S::npos);
- test(S("nbatdlmekr"), S("bnrpe"), 0);
- test(S("jdmciepkaq"), S("jtdaefblso"), 0);
- test(S("hkbgspoflt"), S("oselktgbcapndfjihrmq"), 0);
- test(S("gprdcokbnjhlsfmtieqa"), S(""), S::npos);
- test(S("qjghlnftcaismkropdeb"), S("bjaht"), 1);
- test(S("pnalfrdtkqcmojiesbhg"), S("hjlcmgpket"), 0);
- test(S("pniotcfrhqsmgdkjbael"), S("htaobedqikfplcgjsmrn"), 0);
+void test1() {
+ test(S(""), S(""), S::npos);
+ test(S(""), S("laenf"), S::npos);
+ test(S(""), S("pqlnkmbdjo"), S::npos);
+ test(S(""), S("qkamfogpnljdcshbreti"), S::npos);
+ test(S("nhmko"), S(""), S::npos);
+ test(S("lahfb"), S("irkhs"), 2);
+ test(S("gmfhd"), S("kantesmpgj"), 0);
+ test(S("odaft"), S("oknlrstdpiqmjbaghcfe"), 0);
+ test(S("eolhfgpjqk"), S(""), S::npos);
+ test(S("nbatdlmekr"), S("bnrpe"), 0);
+ test(S("jdmciepkaq"), S("jtdaefblso"), 0);
+ test(S("hkbgspoflt"), S("oselktgbcapndfjihrmq"), 0);
+ test(S("gprdcokbnjhlsfmtieqa"), S(""), S::npos);
+ test(S("qjghlnftcaismkropdeb"), S("bjaht"), 1);
+ test(S("pnalfrdtkqcmojiesbhg"), S("hjlcmgpket"), 0);
+ test(S("pniotcfrhqsmgdkjbael"), S("htaobedqikfplcgjsmrn"), 0);
}
-int main(int, char**)
-{
- {
+int main(int, char**) {
+ {
typedef std::string_view S;
test0<S>();
test1<S>();
- }
+ }
return 0;
}
diff --git a/libcxx/test/std/strings/string.view/string.view.find/find_last_not_of_char_size.pass.cpp b/libcxx/test/std/strings/string.view/string.view.find/find_last_not_of_char_size.pass.cpp
index 1a3b93793751557..392e689b8be4db5 100644
--- a/libcxx/test/std/strings/string.view/string.view.find/find_last_not_of_char_size.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.find/find_last_not_of_char_size.pass.cpp
@@ -19,29 +19,23 @@
#include "constexpr_char_traits.h"
template <class S>
-void
-test(const S& s, typename S::value_type c, typename S::size_type pos,
- typename S::size_type x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.find_last_not_of(c, pos));
- assert(s.find_last_not_of(c, pos) == x);
- if (x != S::npos)
- assert(x <= pos && x < s.size());
+void test(const S& s, typename S::value_type c, typename S::size_type pos, typename S::size_type x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.find_last_not_of(c, pos));
+ assert(s.find_last_not_of(c, pos) == x);
+ if (x != S::npos)
+ assert(x <= pos && x < s.size());
}
template <class S>
-void
-test(const S& s, typename S::value_type c, typename S::size_type x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.find_last_not_of(c));
- assert(s.find_last_not_of(c) == x);
- if (x != S::npos)
- assert(x < s.size());
+void test(const S& s, typename S::value_type c, typename S::size_type x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.find_last_not_of(c));
+ assert(s.find_last_not_of(c) == x);
+ if (x != S::npos)
+ assert(x < s.size());
}
-int main(int, char**)
-{
- {
+int main(int, char**) {
+ {
typedef std::string_view S;
test(S(""), 'i', 0, S::npos);
test(S(""), 'i', 1, S::npos);
@@ -68,20 +62,20 @@ int main(int, char**)
test(S("csope"), 'i', 4);
test(S("gfsmthlkon"), 'i', 9);
test(S("laenfsbridchgotmkqpj"), 'i', 19);
- }
+ }
#if TEST_STD_VER > 11
- {
+ {
typedef std::basic_string_view<char, constexpr_char_traits<char>> SV;
- constexpr SV sv1;
- constexpr SV sv2 { "abcde", 5 };
+ constexpr SV sv1;
+ constexpr SV sv2{"abcde", 5};
- static_assert (sv1.find_last_not_of( 'i', 0 ) == SV::npos, "" );
- static_assert (sv1.find_last_not_of( 'i', 1 ) == SV::npos, "" );
- static_assert (sv2.find_last_not_of( 'a', 0 ) == SV::npos, "" );
- static_assert (sv2.find_last_not_of( 'a', 1 ) == 1, "" );
- static_assert (sv2.find_last_not_of( 'e', 5 ) == 3, "" );
- }
+ static_assert(sv1.find_last_not_of('i', 0) == SV::npos, "");
+ static_assert(sv1.find_last_not_of('i', 1) == SV::npos, "");
+ static_assert(sv2.find_last_not_of('a', 0) == SV::npos, "");
+ static_assert(sv2.find_last_not_of('a', 1) == 1, "");
+ static_assert(sv2.find_last_not_of('e', 5) == 3, "");
+ }
#endif
return 0;
diff --git a/libcxx/test/std/strings/string.view/string.view.find/find_last_not_of_pointer_size.pass.cpp b/libcxx/test/std/strings/string.view/string.view.find/find_last_not_of_pointer_size.pass.cpp
index ba59de8368c4610..c81c88f0cfa0724 100644
--- a/libcxx/test/std/strings/string.view/string.view.find/find_last_not_of_pointer_size.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.find/find_last_not_of_pointer_size.pass.cpp
@@ -19,151 +19,143 @@
#include "constexpr_char_traits.h"
template <class S>
-void
-test(const S& s, const typename S::value_type* str, typename S::size_type pos,
- typename S::size_type x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.find_last_not_of(str, pos));
- assert(s.find_last_not_of(str, pos) == x);
- if (x != S::npos)
- assert(x <= pos && x < s.size());
+void test(const S& s, const typename S::value_type* str, typename S::size_type pos, typename S::size_type x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.find_last_not_of(str, pos));
+ assert(s.find_last_not_of(str, pos) == x);
+ if (x != S::npos)
+ assert(x <= pos && x < s.size());
}
template <class S>
-void
-test(const S& s, const typename S::value_type* str, typename S::size_type x)
-{
- assert(s.find_last_not_of(str) == x);
- if (x != S::npos)
- assert(x < s.size());
+void test(const S& s, const typename S::value_type* str, typename S::size_type x) {
+ assert(s.find_last_not_of(str) == x);
+ if (x != S::npos)
+ assert(x < s.size());
}
template <class S>
-void test0()
-{
- test(S(""), "", 0, S::npos);
- test(S(""), "laenf", 0, S::npos);
- test(S(""), "pqlnkmbdjo", 0, S::npos);
- test(S(""), "qkamfogpnljdcshbreti", 0, S::npos);
- test(S(""), "", 1, S::npos);
- test(S(""), "bjaht", 1, S::npos);
- test(S(""), "hjlcmgpket", 1, S::npos);
- test(S(""), "htaobedqikfplcgjsmrn", 1, S::npos);
- test(S("fodgq"), "", 0, 0);
- test(S("qanej"), "dfkap", 0, 0);
- test(S("clbao"), "ihqrfebgad", 0, 0);
- test(S("mekdn"), "ngtjfcalbseiqrphmkdo", 0, S::npos);
- test(S("srdfq"), "", 1, 1);
- test(S("oemth"), "ikcrq", 1, 1);
- test(S("cdaih"), "dmajblfhsg", 1, 0);
- test(S("qohtk"), "oqftjhdmkgsblacenirp", 1, S::npos);
- test(S("cshmd"), "", 2, 2);
- test(S("lhcdo"), "oebqi", 2, 2);
- test(S("qnsoh"), "kojhpmbsfe", 2, 1);
- test(S("pkrof"), "acbsjqogpltdkhinfrem", 2, S::npos);
- test(S("fmtsp"), "", 4, 4);
- test(S("khbpm"), "aobjd", 4, 4);
- test(S("pbsji"), "pcbahntsje", 4, 4);
- test(S("mprdj"), "fhepcrntkoagbmldqijs", 4, S::npos);
- test(S("eqmpa"), "", 5, 4);
- test(S("omigs"), "kocgb", 5, 4);
- test(S("onmje"), "fbslrjiqkm", 5, 4);
- test(S("oqmrj"), "jeidpcmalhfnqbgtrsko", 5, S::npos);
- test(S("schfa"), "", 6, 4);
- test(S("igdsc"), "qngpd", 6, 4);
- test(S("brqgo"), "rodhqklgmb", 6, S::npos);
- test(S("tnrph"), "thdjgafrlbkoiqcspmne", 6, S::npos);
- test(S("hcjitbfapl"), "", 0, 0);
- test(S("daiprenocl"), "ashjd", 0, S::npos);
- test(S("litpcfdghe"), "mgojkldsqh", 0, S::npos);
- test(S("aidjksrolc"), "imqnaghkfrdtlopbjesc", 0, S::npos);
- test(S("qpghtfbaji"), "", 1, 1);
- test(S("gfshlcmdjr"), "nadkh", 1, 1);
- test(S("nkodajteqp"), "ofdrqmkebl", 1, 0);
- test(S("gbmetiprqd"), "bdfjqgatlksriohemnpc", 1, S::npos);
- test(S("crnklpmegd"), "", 5, 5);
- test(S("jsbtafedoc"), "prqgn", 5, 5);
- test(S("qnmodrtkeb"), "pejafmnokr", 5, 4);
- test(S("cpebqsfmnj"), "odnqkgijrhabfmcestlp", 5, S::npos);
- test(S("lmofqdhpki"), "", 9, 9);
- test(S("hnefkqimca"), "rtjpa", 9, 8);
- test(S("drtasbgmfp"), "ktsrmnqagd", 9, 9);
- test(S("lsaijeqhtr"), "rtdhgcisbnmoaqkfpjle", 9, S::npos);
- test(S("elgofjmbrq"), "", 10, 9);
- test(S("mjqdgalkpc"), "dplqa", 10, 9);
- test(S("kthqnfcerm"), "dkacjoptns", 10, 9);
- test(S("dfsjhanorc"), "hqfimtrgnbekpdcsjalo", 10, S::npos);
- test(S("eqsgalomhb"), "", 11, 9);
- test(S("akiteljmoh"), "lofbc", 11, 9);
- test(S("hlbdfreqjo"), "astoegbfpn", 11, 8);
- test(S("taqobhlerg"), "pdgreqomsncafklhtibj", 11, S::npos);
- test(S("snafbdlghrjkpqtoceim"), "", 0, 0);
- test(S("aemtbrgcklhndjisfpoq"), "lbtqd", 0, 0);
- test(S("pnracgfkjdiholtbqsem"), "tboimldpjh", 0, S::npos);
- test(S("dicfltehbsgrmojnpkaq"), "slcerthdaiqjfnobgkpm", 0, S::npos);
- test(S("jlnkraeodhcspfgbqitm"), "", 1, 1);
- test(S("lhosrngtmfjikbqpcade"), "aqibs", 1, 1);
- test(S("rbtaqjhgkneisldpmfoc"), "gtfblmqinc", 1, 0);
- test(S("gpifsqlrdkbonjtmheca"), "mkqpbtdalgniorhfescj", 1, S::npos);
- test(S("hdpkobnsalmcfijregtq"), "", 10, 10);
- test(S("jtlshdgqaiprkbcoenfm"), "pblas", 10, 9);
- test(S("fkdrbqltsgmcoiphneaj"), "arosdhcfme", 10, 9);
- test(S("crsplifgtqedjohnabmk"), "blkhjeogicatqfnpdmsr", 10, S::npos);
- test(S("niptglfbosehkamrdqcj"), "", 19, 19);
- test(S("copqdhstbingamjfkler"), "djkqc", 19, 19);
- test(S("mrtaefilpdsgocnhqbjk"), "lgokshjtpb", 19, 16);
- test(S("kojatdhlcmigpbfrqnes"), "bqjhtkfepimcnsgrlado", 19, S::npos);
- test(S("eaintpchlqsbdgrkjofm"), "", 20, 19);
- test(S("gjnhidfsepkrtaqbmclo"), "nocfa", 20, 18);
- test(S("spocfaktqdbiejlhngmr"), "bgtajmiedc", 20, 19);
- test(S("rphmlekgfscndtaobiqj"), "lsckfnqgdahejiopbtmr", 20, S::npos);
- test(S("liatsqdoegkmfcnbhrpj"), "", 21, 19);
- test(S("binjagtfldkrspcomqeh"), "gfsrt", 21, 19);
- test(S("latkmisecnorjbfhqpdg"), "pfsocbhjtm", 21, 19);
- test(S("lecfratdjkhnsmqpoigb"), "tpflmdnoicjgkberhqsa", 21, S::npos);
+void test0() {
+ test(S(""), "", 0, S::npos);
+ test(S(""), "laenf", 0, S::npos);
+ test(S(""), "pqlnkmbdjo", 0, S::npos);
+ test(S(""), "qkamfogpnljdcshbreti", 0, S::npos);
+ test(S(""), "", 1, S::npos);
+ test(S(""), "bjaht", 1, S::npos);
+ test(S(""), "hjlcmgpket", 1, S::npos);
+ test(S(""), "htaobedqikfplcgjsmrn", 1, S::npos);
+ test(S("fodgq"), "", 0, 0);
+ test(S("qanej"), "dfkap", 0, 0);
+ test(S("clbao"), "ihqrfebgad", 0, 0);
+ test(S("mekdn"), "ngtjfcalbseiqrphmkdo", 0, S::npos);
+ test(S("srdfq"), "", 1, 1);
+ test(S("oemth"), "ikcrq", 1, 1);
+ test(S("cdaih"), "dmajblfhsg", 1, 0);
+ test(S("qohtk"), "oqftjhdmkgsblacenirp", 1, S::npos);
+ test(S("cshmd"), "", 2, 2);
+ test(S("lhcdo"), "oebqi", 2, 2);
+ test(S("qnsoh"), "kojhpmbsfe", 2, 1);
+ test(S("pkrof"), "acbsjqogpltdkhinfrem", 2, S::npos);
+ test(S("fmtsp"), "", 4, 4);
+ test(S("khbpm"), "aobjd", 4, 4);
+ test(S("pbsji"), "pcbahntsje", 4, 4);
+ test(S("mprdj"), "fhepcrntkoagbmldqijs", 4, S::npos);
+ test(S("eqmpa"), "", 5, 4);
+ test(S("omigs"), "kocgb", 5, 4);
+ test(S("onmje"), "fbslrjiqkm", 5, 4);
+ test(S("oqmrj"), "jeidpcmalhfnqbgtrsko", 5, S::npos);
+ test(S("schfa"), "", 6, 4);
+ test(S("igdsc"), "qngpd", 6, 4);
+ test(S("brqgo"), "rodhqklgmb", 6, S::npos);
+ test(S("tnrph"), "thdjgafrlbkoiqcspmne", 6, S::npos);
+ test(S("hcjitbfapl"), "", 0, 0);
+ test(S("daiprenocl"), "ashjd", 0, S::npos);
+ test(S("litpcfdghe"), "mgojkldsqh", 0, S::npos);
+ test(S("aidjksrolc"), "imqnaghkfrdtlopbjesc", 0, S::npos);
+ test(S("qpghtfbaji"), "", 1, 1);
+ test(S("gfshlcmdjr"), "nadkh", 1, 1);
+ test(S("nkodajteqp"), "ofdrqmkebl", 1, 0);
+ test(S("gbmetiprqd"), "bdfjqgatlksriohemnpc", 1, S::npos);
+ test(S("crnklpmegd"), "", 5, 5);
+ test(S("jsbtafedoc"), "prqgn", 5, 5);
+ test(S("qnmodrtkeb"), "pejafmnokr", 5, 4);
+ test(S("cpebqsfmnj"), "odnqkgijrhabfmcestlp", 5, S::npos);
+ test(S("lmofqdhpki"), "", 9, 9);
+ test(S("hnefkqimca"), "rtjpa", 9, 8);
+ test(S("drtasbgmfp"), "ktsrmnqagd", 9, 9);
+ test(S("lsaijeqhtr"), "rtdhgcisbnmoaqkfpjle", 9, S::npos);
+ test(S("elgofjmbrq"), "", 10, 9);
+ test(S("mjqdgalkpc"), "dplqa", 10, 9);
+ test(S("kthqnfcerm"), "dkacjoptns", 10, 9);
+ test(S("dfsjhanorc"), "hqfimtrgnbekpdcsjalo", 10, S::npos);
+ test(S("eqsgalomhb"), "", 11, 9);
+ test(S("akiteljmoh"), "lofbc", 11, 9);
+ test(S("hlbdfreqjo"), "astoegbfpn", 11, 8);
+ test(S("taqobhlerg"), "pdgreqomsncafklhtibj", 11, S::npos);
+ test(S("snafbdlghrjkpqtoceim"), "", 0, 0);
+ test(S("aemtbrgcklhndjisfpoq"), "lbtqd", 0, 0);
+ test(S("pnracgfkjdiholtbqsem"), "tboimldpjh", 0, S::npos);
+ test(S("dicfltehbsgrmojnpkaq"), "slcerthdaiqjfnobgkpm", 0, S::npos);
+ test(S("jlnkraeodhcspfgbqitm"), "", 1, 1);
+ test(S("lhosrngtmfjikbqpcade"), "aqibs", 1, 1);
+ test(S("rbtaqjhgkneisldpmfoc"), "gtfblmqinc", 1, 0);
+ test(S("gpifsqlrdkbonjtmheca"), "mkqpbtdalgniorhfescj", 1, S::npos);
+ test(S("hdpkobnsalmcfijregtq"), "", 10, 10);
+ test(S("jtlshdgqaiprkbcoenfm"), "pblas", 10, 9);
+ test(S("fkdrbqltsgmcoiphneaj"), "arosdhcfme", 10, 9);
+ test(S("crsplifgtqedjohnabmk"), "blkhjeogicatqfnpdmsr", 10, S::npos);
+ test(S("niptglfbosehkamrdqcj"), "", 19, 19);
+ test(S("copqdhstbingamjfkler"), "djkqc", 19, 19);
+ test(S("mrtaefilpdsgocnhqbjk"), "lgokshjtpb", 19, 16);
+ test(S("kojatdhlcmigpbfrqnes"), "bqjhtkfepimcnsgrlado", 19, S::npos);
+ test(S("eaintpchlqsbdgrkjofm"), "", 20, 19);
+ test(S("gjnhidfsepkrtaqbmclo"), "nocfa", 20, 18);
+ test(S("spocfaktqdbiejlhngmr"), "bgtajmiedc", 20, 19);
+ test(S("rphmlekgfscndtaobiqj"), "lsckfnqgdahejiopbtmr", 20, S::npos);
+ test(S("liatsqdoegkmfcnbhrpj"), "", 21, 19);
+ test(S("binjagtfldkrspcomqeh"), "gfsrt", 21, 19);
+ test(S("latkmisecnorjbfhqpdg"), "pfsocbhjtm", 21, 19);
+ test(S("lecfratdjkhnsmqpoigb"), "tpflmdnoicjgkberhqsa", 21, S::npos);
}
template <class S>
-void test1()
-{
- test(S(""), "", S::npos);
- test(S(""), "laenf", S::npos);
- test(S(""), "pqlnkmbdjo", S::npos);
- test(S(""), "qkamfogpnljdcshbreti", S::npos);
- test(S("nhmko"), "", 4);
- test(S("lahfb"), "irkhs", 4);
- test(S("gmfhd"), "kantesmpgj", 4);
- test(S("odaft"), "oknlrstdpiqmjbaghcfe", S::npos);
- test(S("eolhfgpjqk"), "", 9);
- test(S("nbatdlmekr"), "bnrpe", 8);
- test(S("jdmciepkaq"), "jtdaefblso", 9);
- test(S("hkbgspoflt"), "oselktgbcapndfjihrmq", S::npos);
- test(S("gprdcokbnjhlsfmtieqa"), "", 19);
- test(S("qjghlnftcaismkropdeb"), "bjaht", 18);
- test(S("pnalfrdtkqcmojiesbhg"), "hjlcmgpket", 17);
- test(S("pniotcfrhqsmgdkjbael"), "htaobedqikfplcgjsmrn", S::npos);
+void test1() {
+ test(S(""), "", S::npos);
+ test(S(""), "laenf", S::npos);
+ test(S(""), "pqlnkmbdjo", S::npos);
+ test(S(""), "qkamfogpnljdcshbreti", S::npos);
+ test(S("nhmko"), "", 4);
+ test(S("lahfb"), "irkhs", 4);
+ test(S("gmfhd"), "kantesmpgj", 4);
+ test(S("odaft"), "oknlrstdpiqmjbaghcfe", S::npos);
+ test(S("eolhfgpjqk"), "", 9);
+ test(S("nbatdlmekr"), "bnrpe", 8);
+ test(S("jdmciepkaq"), "jtdaefblso", 9);
+ test(S("hkbgspoflt"), "oselktgbcapndfjihrmq", S::npos);
+ test(S("gprdcokbnjhlsfmtieqa"), "", 19);
+ test(S("qjghlnftcaismkropdeb"), "bjaht", 18);
+ test(S("pnalfrdtkqcmojiesbhg"), "hjlcmgpket", 17);
+ test(S("pniotcfrhqsmgdkjbael"), "htaobedqikfplcgjsmrn", S::npos);
}
-int main(int, char**)
-{
- {
+int main(int, char**) {
+ {
typedef std::string_view S;
test0<S>();
test1<S>();
- }
+ }
#if TEST_STD_VER > 11
- {
+ {
typedef std::basic_string_view<char, constexpr_char_traits<char>> SV;
- constexpr SV sv1;
- constexpr SV sv2 { "abcde", 5 };
+ constexpr SV sv1;
+ constexpr SV sv2{"abcde", 5};
- static_assert (sv1.find_last_not_of( "", 0) == SV::npos, "" );
- static_assert (sv1.find_last_not_of( "irkhs", 5) == SV::npos, "" );
- static_assert (sv2.find_last_not_of( "", 0) == 0, "" );
- static_assert (sv2.find_last_not_of( "gfsrt", 5) == 4, "" );
- static_assert (sv2.find_last_not_of( "lecar", 5) == 3, "" );
- }
+ static_assert(sv1.find_last_not_of("", 0) == SV::npos, "");
+ static_assert(sv1.find_last_not_of("irkhs", 5) == SV::npos, "");
+ static_assert(sv2.find_last_not_of("", 0) == 0, "");
+ static_assert(sv2.find_last_not_of("gfsrt", 5) == 4, "");
+ static_assert(sv2.find_last_not_of("lecar", 5) == 3, "");
+ }
#endif
return 0;
diff --git a/libcxx/test/std/strings/string.view/string.view.find/find_last_not_of_pointer_size_size.pass.cpp b/libcxx/test/std/strings/string.view/string.view.find/find_last_not_of_pointer_size_size.pass.cpp
index 37198114363320a..86d00c5fad5677f 100644
--- a/libcxx/test/std/strings/string.view/string.view.find/find_last_not_of_pointer_size_size.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.find/find_last_not_of_pointer_size_size.pass.cpp
@@ -19,378 +19,374 @@
#include "constexpr_char_traits.h"
template <class S>
-void
-test(const S& s, const typename S::value_type* str, typename S::size_type pos,
- typename S::size_type n, typename S::size_type x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.find_last_not_of(str, pos, n));
- assert(s.find_last_not_of(str, pos, n) == x);
- if (x != S::npos)
- assert(x <= pos && x < s.size());
+void test(const S& s,
+ const typename S::value_type* str,
+ typename S::size_type pos,
+ typename S::size_type n,
+ typename S::size_type x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.find_last_not_of(str, pos, n));
+ assert(s.find_last_not_of(str, pos, n) == x);
+ if (x != S::npos)
+ assert(x <= pos && x < s.size());
}
template <class S>
-void test0()
-{
- test(S(""), "", 0, 0, S::npos);
- test(S(""), "irkhs", 0, 0, S::npos);
- test(S(""), "kante", 0, 1, S::npos);
- test(S(""), "oknlr", 0, 2, S::npos);
- test(S(""), "pcdro", 0, 4, S::npos);
- test(S(""), "bnrpe", 0, 5, S::npos);
- test(S(""), "jtdaefblso", 0, 0, S::npos);
- test(S(""), "oselktgbca", 0, 1, S::npos);
- test(S(""), "eqgaplhckj", 0, 5, S::npos);
- test(S(""), "bjahtcmnlp", 0, 9, S::npos);
- test(S(""), "hjlcmgpket", 0, 10, S::npos);
- test(S(""), "htaobedqikfplcgjsmrn", 0, 0, S::npos);
- test(S(""), "hpqiarojkcdlsgnmfetb", 0, 1, S::npos);
- test(S(""), "dfkaprhjloqetcsimnbg", 0, 10, S::npos);
- test(S(""), "ihqrfebgadntlpmjksoc", 0, 19, S::npos);
- test(S(""), "ngtjfcalbseiqrphmkdo", 0, 20, S::npos);
- test(S(""), "", 1, 0, S::npos);
- test(S(""), "lbtqd", 1, 0, S::npos);
- test(S(""), "tboim", 1, 1, S::npos);
- test(S(""), "slcer", 1, 2, S::npos);
- test(S(""), "cbjfs", 1, 4, S::npos);
- test(S(""), "aqibs", 1, 5, S::npos);
- test(S(""), "gtfblmqinc", 1, 0, S::npos);
- test(S(""), "mkqpbtdalg", 1, 1, S::npos);
- test(S(""), "kphatlimcd", 1, 5, S::npos);
- test(S(""), "pblasqogic", 1, 9, S::npos);
- test(S(""), "arosdhcfme", 1, 10, S::npos);
- test(S(""), "blkhjeogicatqfnpdmsr", 1, 0, S::npos);
- test(S(""), "bmhineprjcoadgstflqk", 1, 1, S::npos);
- test(S(""), "djkqcmetslnghpbarfoi", 1, 10, S::npos);
- test(S(""), "lgokshjtpbemarcdqnfi", 1, 19, S::npos);
- test(S(""), "bqjhtkfepimcnsgrlado", 1, 20, S::npos);
- test(S("eaint"), "", 0, 0, 0);
- test(S("binja"), "gfsrt", 0, 0, 0);
- test(S("latkm"), "pfsoc", 0, 1, 0);
- test(S("lecfr"), "tpflm", 0, 2, 0);
- test(S("eqkst"), "sgkec", 0, 4, S::npos);
- test(S("cdafr"), "romds", 0, 5, 0);
- test(S("prbhe"), "qhjistlgmr", 0, 0, 0);
- test(S("lbisk"), "pedfirsglo", 0, 1, 0);
- test(S("hrlpd"), "aqcoslgrmk", 0, 5, 0);
- test(S("ehmja"), "dabckmepqj", 0, 9, S::npos);
- test(S("mhqgd"), "pqscrjthli", 0, 10, 0);
- test(S("tgklq"), "kfphdcsjqmobliagtren", 0, 0, 0);
- test(S("bocjs"), "rokpefncljibsdhqtagm", 0, 1, 0);
- test(S("grbsd"), "afionmkphlebtcjqsgrd", 0, 10, 0);
- test(S("ofjqr"), "aenmqplidhkofrjbctsg", 0, 19, S::npos);
- test(S("btlfi"), "osjmbtcadhiklegrpqnf", 0, 20, S::npos);
- test(S("clrgb"), "", 1, 0, 1);
- test(S("tjmek"), "osmia", 1, 0, 1);
- test(S("bgstp"), "ckonl", 1, 1, 1);
- test(S("hstrk"), "ilcaj", 1, 2, 1);
- test(S("kmspj"), "lasiq", 1, 4, 1);
- test(S("tjboh"), "kfqmr", 1, 5, 1);
- test(S("ilbcj"), "klnitfaobg", 1, 0, 1);
- test(S("jkngf"), "gjhmdlqikp", 1, 1, 1);
- test(S("gfcql"), "skbgtahqej", 1, 5, 1);
- test(S("dqtlg"), "bjsdgtlpkf", 1, 9, 1);
- test(S("bthpg"), "bjgfmnlkio", 1, 10, 1);
- test(S("dgsnq"), "lbhepotfsjdqigcnamkr", 1, 0, 1);
- test(S("rmfhp"), "tebangckmpsrqdlfojhi", 1, 1, 1);
- test(S("jfdam"), "joflqbdkhtegimscpanr", 1, 10, S::npos);
- test(S("edapb"), "adpmcohetfbsrjinlqkg", 1, 19, S::npos);
- test(S("brfsm"), "iacldqjpfnogbsrhmetk", 1, 20, S::npos);
- test(S("ndrhl"), "", 2, 0, 2);
- test(S("mrecp"), "otkgb", 2, 0, 2);
- test(S("qlasf"), "cqsjl", 2, 1, 2);
- test(S("smaqd"), "dpifl", 2, 2, 2);
- test(S("hjeni"), "oapht", 2, 4, 2);
- test(S("ocmfj"), "cifts", 2, 5, 2);
- test(S("hmftq"), "nmsckbgalo", 2, 0, 2);
- test(S("fklad"), "tpksqhamle", 2, 1, 2);
- test(S("dirnm"), "tpdrchmkji", 2, 5, 1);
- test(S("hrgdc"), "ijagfkblst", 2, 9, 1);
- test(S("ifakg"), "kpocsignjb", 2, 10, 2);
- test(S("ebrgd"), "pecqtkjsnbdrialgmohf", 2, 0, 2);
- test(S("rcjml"), "aiortphfcmkjebgsndql", 2, 1, 2);
- test(S("peqmt"), "sdbkeamglhipojqftrcn", 2, 10, 2);
- test(S("frehn"), "ljqncehgmfktroapidbs", 2, 19, S::npos);
- test(S("tqolf"), "rtcfodilamkbenjghqps", 2, 20, S::npos);
- test(S("cjgao"), "", 4, 0, 4);
- test(S("kjplq"), "mabns", 4, 0, 4);
- test(S("herni"), "bdnrp", 4, 1, 4);
- test(S("tadrb"), "scidp", 4, 2, 4);
- test(S("pkfeo"), "agbjl", 4, 4, 4);
- test(S("hoser"), "jfmpr", 4, 5, 3);
- test(S("kgrsp"), "rbpefghsmj", 4, 0, 4);
- test(S("pgejb"), "apsfntdoqc", 4, 1, 4);
- test(S("thlnq"), "ndkjeisgcl", 4, 5, 4);
- test(S("nbmit"), "rnfpqatdeo", 4, 9, 3);
- test(S("jgmib"), "bntjlqrfik", 4, 10, 2);
- test(S("ncrfj"), "kcrtmpolnaqejghsfdbi", 4, 0, 4);
- test(S("ncsik"), "lobheanpkmqidsrtcfgj", 4, 1, 4);
- test(S("sgbfh"), "athdkljcnreqbgpmisof", 4, 10, 3);
- test(S("dktbn"), "qkdmjialrscpbhefgont", 4, 19, 2);
- test(S("fthqm"), "dmasojntqleribkgfchp", 4, 20, S::npos);
- test(S("klopi"), "", 5, 0, 4);
- test(S("dajhn"), "psthd", 5, 0, 4);
- test(S("jbgno"), "rpmjd", 5, 1, 4);
- test(S("hkjae"), "dfsmk", 5, 2, 4);
+void test0() {
+ test(S(""), "", 0, 0, S::npos);
+ test(S(""), "irkhs", 0, 0, S::npos);
+ test(S(""), "kante", 0, 1, S::npos);
+ test(S(""), "oknlr", 0, 2, S::npos);
+ test(S(""), "pcdro", 0, 4, S::npos);
+ test(S(""), "bnrpe", 0, 5, S::npos);
+ test(S(""), "jtdaefblso", 0, 0, S::npos);
+ test(S(""), "oselktgbca", 0, 1, S::npos);
+ test(S(""), "eqgaplhckj", 0, 5, S::npos);
+ test(S(""), "bjahtcmnlp", 0, 9, S::npos);
+ test(S(""), "hjlcmgpket", 0, 10, S::npos);
+ test(S(""), "htaobedqikfplcgjsmrn", 0, 0, S::npos);
+ test(S(""), "hpqiarojkcdlsgnmfetb", 0, 1, S::npos);
+ test(S(""), "dfkaprhjloqetcsimnbg", 0, 10, S::npos);
+ test(S(""), "ihqrfebgadntlpmjksoc", 0, 19, S::npos);
+ test(S(""), "ngtjfcalbseiqrphmkdo", 0, 20, S::npos);
+ test(S(""), "", 1, 0, S::npos);
+ test(S(""), "lbtqd", 1, 0, S::npos);
+ test(S(""), "tboim", 1, 1, S::npos);
+ test(S(""), "slcer", 1, 2, S::npos);
+ test(S(""), "cbjfs", 1, 4, S::npos);
+ test(S(""), "aqibs", 1, 5, S::npos);
+ test(S(""), "gtfblmqinc", 1, 0, S::npos);
+ test(S(""), "mkqpbtdalg", 1, 1, S::npos);
+ test(S(""), "kphatlimcd", 1, 5, S::npos);
+ test(S(""), "pblasqogic", 1, 9, S::npos);
+ test(S(""), "arosdhcfme", 1, 10, S::npos);
+ test(S(""), "blkhjeogicatqfnpdmsr", 1, 0, S::npos);
+ test(S(""), "bmhineprjcoadgstflqk", 1, 1, S::npos);
+ test(S(""), "djkqcmetslnghpbarfoi", 1, 10, S::npos);
+ test(S(""), "lgokshjtpbemarcdqnfi", 1, 19, S::npos);
+ test(S(""), "bqjhtkfepimcnsgrlado", 1, 20, S::npos);
+ test(S("eaint"), "", 0, 0, 0);
+ test(S("binja"), "gfsrt", 0, 0, 0);
+ test(S("latkm"), "pfsoc", 0, 1, 0);
+ test(S("lecfr"), "tpflm", 0, 2, 0);
+ test(S("eqkst"), "sgkec", 0, 4, S::npos);
+ test(S("cdafr"), "romds", 0, 5, 0);
+ test(S("prbhe"), "qhjistlgmr", 0, 0, 0);
+ test(S("lbisk"), "pedfirsglo", 0, 1, 0);
+ test(S("hrlpd"), "aqcoslgrmk", 0, 5, 0);
+ test(S("ehmja"), "dabckmepqj", 0, 9, S::npos);
+ test(S("mhqgd"), "pqscrjthli", 0, 10, 0);
+ test(S("tgklq"), "kfphdcsjqmobliagtren", 0, 0, 0);
+ test(S("bocjs"), "rokpefncljibsdhqtagm", 0, 1, 0);
+ test(S("grbsd"), "afionmkphlebtcjqsgrd", 0, 10, 0);
+ test(S("ofjqr"), "aenmqplidhkofrjbctsg", 0, 19, S::npos);
+ test(S("btlfi"), "osjmbtcadhiklegrpqnf", 0, 20, S::npos);
+ test(S("clrgb"), "", 1, 0, 1);
+ test(S("tjmek"), "osmia", 1, 0, 1);
+ test(S("bgstp"), "ckonl", 1, 1, 1);
+ test(S("hstrk"), "ilcaj", 1, 2, 1);
+ test(S("kmspj"), "lasiq", 1, 4, 1);
+ test(S("tjboh"), "kfqmr", 1, 5, 1);
+ test(S("ilbcj"), "klnitfaobg", 1, 0, 1);
+ test(S("jkngf"), "gjhmdlqikp", 1, 1, 1);
+ test(S("gfcql"), "skbgtahqej", 1, 5, 1);
+ test(S("dqtlg"), "bjsdgtlpkf", 1, 9, 1);
+ test(S("bthpg"), "bjgfmnlkio", 1, 10, 1);
+ test(S("dgsnq"), "lbhepotfsjdqigcnamkr", 1, 0, 1);
+ test(S("rmfhp"), "tebangckmpsrqdlfojhi", 1, 1, 1);
+ test(S("jfdam"), "joflqbdkhtegimscpanr", 1, 10, S::npos);
+ test(S("edapb"), "adpmcohetfbsrjinlqkg", 1, 19, S::npos);
+ test(S("brfsm"), "iacldqjpfnogbsrhmetk", 1, 20, S::npos);
+ test(S("ndrhl"), "", 2, 0, 2);
+ test(S("mrecp"), "otkgb", 2, 0, 2);
+ test(S("qlasf"), "cqsjl", 2, 1, 2);
+ test(S("smaqd"), "dpifl", 2, 2, 2);
+ test(S("hjeni"), "oapht", 2, 4, 2);
+ test(S("ocmfj"), "cifts", 2, 5, 2);
+ test(S("hmftq"), "nmsckbgalo", 2, 0, 2);
+ test(S("fklad"), "tpksqhamle", 2, 1, 2);
+ test(S("dirnm"), "tpdrchmkji", 2, 5, 1);
+ test(S("hrgdc"), "ijagfkblst", 2, 9, 1);
+ test(S("ifakg"), "kpocsignjb", 2, 10, 2);
+ test(S("ebrgd"), "pecqtkjsnbdrialgmohf", 2, 0, 2);
+ test(S("rcjml"), "aiortphfcmkjebgsndql", 2, 1, 2);
+ test(S("peqmt"), "sdbkeamglhipojqftrcn", 2, 10, 2);
+ test(S("frehn"), "ljqncehgmfktroapidbs", 2, 19, S::npos);
+ test(S("tqolf"), "rtcfodilamkbenjghqps", 2, 20, S::npos);
+ test(S("cjgao"), "", 4, 0, 4);
+ test(S("kjplq"), "mabns", 4, 0, 4);
+ test(S("herni"), "bdnrp", 4, 1, 4);
+ test(S("tadrb"), "scidp", 4, 2, 4);
+ test(S("pkfeo"), "agbjl", 4, 4, 4);
+ test(S("hoser"), "jfmpr", 4, 5, 3);
+ test(S("kgrsp"), "rbpefghsmj", 4, 0, 4);
+ test(S("pgejb"), "apsfntdoqc", 4, 1, 4);
+ test(S("thlnq"), "ndkjeisgcl", 4, 5, 4);
+ test(S("nbmit"), "rnfpqatdeo", 4, 9, 3);
+ test(S("jgmib"), "bntjlqrfik", 4, 10, 2);
+ test(S("ncrfj"), "kcrtmpolnaqejghsfdbi", 4, 0, 4);
+ test(S("ncsik"), "lobheanpkmqidsrtcfgj", 4, 1, 4);
+ test(S("sgbfh"), "athdkljcnreqbgpmisof", 4, 10, 3);
+ test(S("dktbn"), "qkdmjialrscpbhefgont", 4, 19, 2);
+ test(S("fthqm"), "dmasojntqleribkgfchp", 4, 20, S::npos);
+ test(S("klopi"), "", 5, 0, 4);
+ test(S("dajhn"), "psthd", 5, 0, 4);
+ test(S("jbgno"), "rpmjd", 5, 1, 4);
+ test(S("hkjae"), "dfsmk", 5, 2, 4);
}
template <class S>
-void test1()
-{
- test(S("gbhqo"), "skqne", 5, 4, 4);
- test(S("ktdor"), "kipnf", 5, 5, 4);
- test(S("ldprn"), "hmrnqdgifl", 5, 0, 4);
- test(S("egmjk"), "fsmjcdairn", 5, 1, 4);
- test(S("armql"), "pcdgltbrfj", 5, 5, 3);
- test(S("cdhjo"), "aekfctpirg", 5, 9, 4);
- test(S("jcons"), "ledihrsgpf", 5, 10, 3);
- test(S("cbrkp"), "mqcklahsbtirgopefndj", 5, 0, 4);
- test(S("fhgna"), "kmlthaoqgecrnpdbjfis", 5, 1, 4);
- test(S("ejfcd"), "sfhbamcdptojlkrenqgi", 5, 10, 1);
- test(S("kqjhe"), "pbniofmcedrkhlstgaqj", 5, 19, 2);
- test(S("pbdjl"), "mongjratcskbhqiepfdl", 5, 20, S::npos);
- test(S("gajqn"), "", 6, 0, 4);
- test(S("stedk"), "hrnat", 6, 0, 4);
- test(S("tjkaf"), "gsqdt", 6, 1, 4);
- test(S("dthpe"), "bspkd", 6, 2, 4);
- test(S("klhde"), "ohcmb", 6, 4, 4);
- test(S("bhlki"), "heatr", 6, 5, 4);
- test(S("lqmoh"), "pmblckedfn", 6, 0, 4);
- test(S("mtqin"), "aceqmsrbik", 6, 1, 4);
- test(S("dpqbr"), "lmbtdehjrn", 6, 5, 4);
- test(S("kdhmo"), "teqmcrlgib", 6, 9, 4);
- test(S("jblqp"), "njolbmspac", 6, 10, 3);
- test(S("qmjgl"), "pofnhidklamecrbqjgst", 6, 0, 4);
- test(S("rothp"), "jbhckmtgrqnosafedpli", 6, 1, 4);
- test(S("ghknq"), "dobntpmqklicsahgjerf", 6, 10, 1);
- test(S("eopfi"), "tpdshainjkbfoemlrgcq", 6, 19, S::npos);
- test(S("dsnmg"), "oldpfgeakrnitscbjmqh", 6, 20, S::npos);
- test(S("jnkrfhotgl"), "", 0, 0, 0);
- test(S("dltjfngbko"), "rqegt", 0, 0, 0);
- test(S("bmjlpkiqde"), "dashm", 0, 1, 0);
- test(S("skrflobnqm"), "jqirk", 0, 2, 0);
- test(S("jkpldtshrm"), "rckeg", 0, 4, 0);
- test(S("ghasdbnjqo"), "jscie", 0, 5, 0);
- test(S("igrkhpbqjt"), "efsphndliq", 0, 0, 0);
- test(S("ikthdgcamf"), "gdicosleja", 0, 1, 0);
- test(S("pcofgeniam"), "qcpjibosfl", 0, 5, S::npos);
- test(S("rlfjgesqhc"), "lrhmefnjcq", 0, 9, S::npos);
- test(S("itphbqsker"), "dtablcrseo", 0, 10, 0);
- test(S("skjafcirqm"), "apckjsftedbhgomrnilq", 0, 0, 0);
- test(S("tcqomarsfd"), "pcbrgflehjtiadnsokqm", 0, 1, 0);
- test(S("rocfeldqpk"), "nsiadegjklhobrmtqcpf", 0, 10, 0);
- test(S("cfpegndlkt"), "cpmajdqnolikhgsbretf", 0, 19, S::npos);
- test(S("fqbtnkeasj"), "jcflkntmgiqrphdosaeb", 0, 20, S::npos);
- test(S("shbcqnmoar"), "", 1, 0, 1);
- test(S("bdoshlmfin"), "ontrs", 1, 0, 1);
- test(S("khfrebnsgq"), "pfkna", 1, 1, 1);
- test(S("getcrsaoji"), "ekosa", 1, 2, 0);
- test(S("fjiknedcpq"), "anqhk", 1, 4, 1);
- test(S("tkejgnafrm"), "jekca", 1, 5, 0);
- test(S("jnakolqrde"), "ikemsjgacf", 1, 0, 1);
- test(S("lcjptsmgbe"), "arolgsjkhm", 1, 1, 1);
- test(S("itfsmcjorl"), "oftkbldhre", 1, 5, 0);
- test(S("omchkfrjea"), "gbkqdoeftl", 1, 9, 1);
- test(S("cigfqkated"), "sqcflrgtim", 1, 10, S::npos);
- test(S("tscenjikml"), "fmhbkislrjdpanogqcet", 1, 0, 1);
- test(S("qcpaemsinf"), "rnioadktqlgpbcjsmhef", 1, 1, 1);
- test(S("gltkojeipd"), "oakgtnldpsefihqmjcbr", 1, 10, S::npos);
- test(S("qistfrgnmp"), "gbnaelosidmcjqktfhpr", 1, 19, S::npos);
- test(S("bdnpfcqaem"), "akbripjhlosndcmqgfet", 1, 20, S::npos);
- test(S("ectnhskflp"), "", 5, 0, 5);
- test(S("fgtianblpq"), "pijag", 5, 0, 5);
- test(S("mfeqklirnh"), "jrckd", 5, 1, 5);
- test(S("astedncjhk"), "qcloh", 5, 2, 5);
- test(S("fhlqgcajbr"), "thlmp", 5, 4, 5);
- test(S("epfhocmdng"), "qidmo", 5, 5, 5);
- test(S("apcnsibger"), "lnegpsjqrd", 5, 0, 5);
- test(S("aqkocrbign"), "rjqdablmfs", 5, 1, 4);
- test(S("ijsmdtqgce"), "enkgpbsjaq", 5, 5, 5);
- test(S("clobgsrken"), "kdsgoaijfh", 5, 9, 3);
- test(S("jbhcfposld"), "trfqgmckbe", 5, 10, 5);
- test(S("oqnpblhide"), "igetsracjfkdnpoblhqm", 5, 0, 5);
- test(S("lroeasctif"), "nqctfaogirshlekbdjpm", 5, 1, 5);
- test(S("bpjlgmiedh"), "csehfgomljdqinbartkp", 5, 10, 1);
- test(S("pamkeoidrj"), "qahoegcmplkfsjbdnitr", 5, 19, S::npos);
- test(S("espogqbthk"), "dpteiajrqmsognhlfbkc", 5, 20, S::npos);
- test(S("shoiedtcjb"), "", 9, 0, 9);
- test(S("ebcinjgads"), "tqbnh", 9, 0, 9);
- test(S("dqmregkcfl"), "akmle", 9, 1, 9);
- test(S("ngcrieqajf"), "iqfkm", 9, 2, 9);
- test(S("qosmilgnjb"), "tqjsr", 9, 4, 9);
- test(S("ikabsjtdfl"), "jplqg", 9, 5, 8);
- test(S("ersmicafdh"), "oilnrbcgtj", 9, 0, 9);
- test(S("fdnplotmgh"), "morkglpesn", 9, 1, 9);
- test(S("fdbicojerm"), "dmicerngat", 9, 5, 8);
- test(S("mbtafndjcq"), "radgeskbtc", 9, 9, 9);
- test(S("mlenkpfdtc"), "ljikprsmqo", 9, 10, 9);
- test(S("ahlcifdqgs"), "trqihkcgsjamfdbolnpe", 9, 0, 9);
- test(S("bgjemaltks"), "lqmthbsrekajgnofcipd", 9, 1, 9);
- test(S("pdhslbqrfc"), "jtalmedribkgqsopcnfh", 9, 10, 9);
- test(S("dirhtsnjkc"), "spqfoiclmtagejbndkrh", 9, 19, 3);
- test(S("dlroktbcja"), "nmotklspigjrdhcfaebq", 9, 20, S::npos);
- test(S("ncjpmaekbs"), "", 10, 0, 9);
- test(S("hlbosgmrak"), "hpmsd", 10, 0, 9);
- test(S("pqfhsgilen"), "qnpor", 10, 1, 9);
- test(S("gqtjsbdckh"), "otdma", 10, 2, 9);
- test(S("cfkqpjlegi"), "efhjg", 10, 4, 9);
- test(S("beanrfodgj"), "odpte", 10, 5, 9);
- test(S("adtkqpbjfi"), "bctdgfmolr", 10, 0, 9);
- test(S("iomkfthagj"), "oaklidrbqg", 10, 1, 9);
+void test1() {
+ test(S("gbhqo"), "skqne", 5, 4, 4);
+ test(S("ktdor"), "kipnf", 5, 5, 4);
+ test(S("ldprn"), "hmrnqdgifl", 5, 0, 4);
+ test(S("egmjk"), "fsmjcdairn", 5, 1, 4);
+ test(S("armql"), "pcdgltbrfj", 5, 5, 3);
+ test(S("cdhjo"), "aekfctpirg", 5, 9, 4);
+ test(S("jcons"), "ledihrsgpf", 5, 10, 3);
+ test(S("cbrkp"), "mqcklahsbtirgopefndj", 5, 0, 4);
+ test(S("fhgna"), "kmlthaoqgecrnpdbjfis", 5, 1, 4);
+ test(S("ejfcd"), "sfhbamcdptojlkrenqgi", 5, 10, 1);
+ test(S("kqjhe"), "pbniofmcedrkhlstgaqj", 5, 19, 2);
+ test(S("pbdjl"), "mongjratcskbhqiepfdl", 5, 20, S::npos);
+ test(S("gajqn"), "", 6, 0, 4);
+ test(S("stedk"), "hrnat", 6, 0, 4);
+ test(S("tjkaf"), "gsqdt", 6, 1, 4);
+ test(S("dthpe"), "bspkd", 6, 2, 4);
+ test(S("klhde"), "ohcmb", 6, 4, 4);
+ test(S("bhlki"), "heatr", 6, 5, 4);
+ test(S("lqmoh"), "pmblckedfn", 6, 0, 4);
+ test(S("mtqin"), "aceqmsrbik", 6, 1, 4);
+ test(S("dpqbr"), "lmbtdehjrn", 6, 5, 4);
+ test(S("kdhmo"), "teqmcrlgib", 6, 9, 4);
+ test(S("jblqp"), "njolbmspac", 6, 10, 3);
+ test(S("qmjgl"), "pofnhidklamecrbqjgst", 6, 0, 4);
+ test(S("rothp"), "jbhckmtgrqnosafedpli", 6, 1, 4);
+ test(S("ghknq"), "dobntpmqklicsahgjerf", 6, 10, 1);
+ test(S("eopfi"), "tpdshainjkbfoemlrgcq", 6, 19, S::npos);
+ test(S("dsnmg"), "oldpfgeakrnitscbjmqh", 6, 20, S::npos);
+ test(S("jnkrfhotgl"), "", 0, 0, 0);
+ test(S("dltjfngbko"), "rqegt", 0, 0, 0);
+ test(S("bmjlpkiqde"), "dashm", 0, 1, 0);
+ test(S("skrflobnqm"), "jqirk", 0, 2, 0);
+ test(S("jkpldtshrm"), "rckeg", 0, 4, 0);
+ test(S("ghasdbnjqo"), "jscie", 0, 5, 0);
+ test(S("igrkhpbqjt"), "efsphndliq", 0, 0, 0);
+ test(S("ikthdgcamf"), "gdicosleja", 0, 1, 0);
+ test(S("pcofgeniam"), "qcpjibosfl", 0, 5, S::npos);
+ test(S("rlfjgesqhc"), "lrhmefnjcq", 0, 9, S::npos);
+ test(S("itphbqsker"), "dtablcrseo", 0, 10, 0);
+ test(S("skjafcirqm"), "apckjsftedbhgomrnilq", 0, 0, 0);
+ test(S("tcqomarsfd"), "pcbrgflehjtiadnsokqm", 0, 1, 0);
+ test(S("rocfeldqpk"), "nsiadegjklhobrmtqcpf", 0, 10, 0);
+ test(S("cfpegndlkt"), "cpmajdqnolikhgsbretf", 0, 19, S::npos);
+ test(S("fqbtnkeasj"), "jcflkntmgiqrphdosaeb", 0, 20, S::npos);
+ test(S("shbcqnmoar"), "", 1, 0, 1);
+ test(S("bdoshlmfin"), "ontrs", 1, 0, 1);
+ test(S("khfrebnsgq"), "pfkna", 1, 1, 1);
+ test(S("getcrsaoji"), "ekosa", 1, 2, 0);
+ test(S("fjiknedcpq"), "anqhk", 1, 4, 1);
+ test(S("tkejgnafrm"), "jekca", 1, 5, 0);
+ test(S("jnakolqrde"), "ikemsjgacf", 1, 0, 1);
+ test(S("lcjptsmgbe"), "arolgsjkhm", 1, 1, 1);
+ test(S("itfsmcjorl"), "oftkbldhre", 1, 5, 0);
+ test(S("omchkfrjea"), "gbkqdoeftl", 1, 9, 1);
+ test(S("cigfqkated"), "sqcflrgtim", 1, 10, S::npos);
+ test(S("tscenjikml"), "fmhbkislrjdpanogqcet", 1, 0, 1);
+ test(S("qcpaemsinf"), "rnioadktqlgpbcjsmhef", 1, 1, 1);
+ test(S("gltkojeipd"), "oakgtnldpsefihqmjcbr", 1, 10, S::npos);
+ test(S("qistfrgnmp"), "gbnaelosidmcjqktfhpr", 1, 19, S::npos);
+ test(S("bdnpfcqaem"), "akbripjhlosndcmqgfet", 1, 20, S::npos);
+ test(S("ectnhskflp"), "", 5, 0, 5);
+ test(S("fgtianblpq"), "pijag", 5, 0, 5);
+ test(S("mfeqklirnh"), "jrckd", 5, 1, 5);
+ test(S("astedncjhk"), "qcloh", 5, 2, 5);
+ test(S("fhlqgcajbr"), "thlmp", 5, 4, 5);
+ test(S("epfhocmdng"), "qidmo", 5, 5, 5);
+ test(S("apcnsibger"), "lnegpsjqrd", 5, 0, 5);
+ test(S("aqkocrbign"), "rjqdablmfs", 5, 1, 4);
+ test(S("ijsmdtqgce"), "enkgpbsjaq", 5, 5, 5);
+ test(S("clobgsrken"), "kdsgoaijfh", 5, 9, 3);
+ test(S("jbhcfposld"), "trfqgmckbe", 5, 10, 5);
+ test(S("oqnpblhide"), "igetsracjfkdnpoblhqm", 5, 0, 5);
+ test(S("lroeasctif"), "nqctfaogirshlekbdjpm", 5, 1, 5);
+ test(S("bpjlgmiedh"), "csehfgomljdqinbartkp", 5, 10, 1);
+ test(S("pamkeoidrj"), "qahoegcmplkfsjbdnitr", 5, 19, S::npos);
+ test(S("espogqbthk"), "dpteiajrqmsognhlfbkc", 5, 20, S::npos);
+ test(S("shoiedtcjb"), "", 9, 0, 9);
+ test(S("ebcinjgads"), "tqbnh", 9, 0, 9);
+ test(S("dqmregkcfl"), "akmle", 9, 1, 9);
+ test(S("ngcrieqajf"), "iqfkm", 9, 2, 9);
+ test(S("qosmilgnjb"), "tqjsr", 9, 4, 9);
+ test(S("ikabsjtdfl"), "jplqg", 9, 5, 8);
+ test(S("ersmicafdh"), "oilnrbcgtj", 9, 0, 9);
+ test(S("fdnplotmgh"), "morkglpesn", 9, 1, 9);
+ test(S("fdbicojerm"), "dmicerngat", 9, 5, 8);
+ test(S("mbtafndjcq"), "radgeskbtc", 9, 9, 9);
+ test(S("mlenkpfdtc"), "ljikprsmqo", 9, 10, 9);
+ test(S("ahlcifdqgs"), "trqihkcgsjamfdbolnpe", 9, 0, 9);
+ test(S("bgjemaltks"), "lqmthbsrekajgnofcipd", 9, 1, 9);
+ test(S("pdhslbqrfc"), "jtalmedribkgqsopcnfh", 9, 10, 9);
+ test(S("dirhtsnjkc"), "spqfoiclmtagejbndkrh", 9, 19, 3);
+ test(S("dlroktbcja"), "nmotklspigjrdhcfaebq", 9, 20, S::npos);
+ test(S("ncjpmaekbs"), "", 10, 0, 9);
+ test(S("hlbosgmrak"), "hpmsd", 10, 0, 9);
+ test(S("pqfhsgilen"), "qnpor", 10, 1, 9);
+ test(S("gqtjsbdckh"), "otdma", 10, 2, 9);
+ test(S("cfkqpjlegi"), "efhjg", 10, 4, 9);
+ test(S("beanrfodgj"), "odpte", 10, 5, 9);
+ test(S("adtkqpbjfi"), "bctdgfmolr", 10, 0, 9);
+ test(S("iomkfthagj"), "oaklidrbqg", 10, 1, 9);
}
template <class S>
-void test2()
-{
- test(S("sdpcilonqj"), "dnjfsagktr", 10, 5, 8);
- test(S("gtfbdkqeml"), "nejaktmiqg", 10, 9, 9);
- test(S("bmeqgcdorj"), "pjqonlebsf", 10, 10, 8);
- test(S("etqlcanmob"), "dshmnbtolcjepgaikfqr", 10, 0, 9);
- test(S("roqmkbdtia"), "iogfhpabtjkqlrnemcds", 10, 1, 9);
- test(S("kadsithljf"), "ngridfabjsecpqltkmoh", 10, 10, 7);
- test(S("sgtkpbfdmh"), "athmknplcgofrqejsdib", 10, 19, 5);
- test(S("qgmetnabkl"), "ldobhmqcafnjtkeisgrp", 10, 20, S::npos);
- test(S("cqjohampgd"), "", 11, 0, 9);
- test(S("hobitmpsan"), "aocjb", 11, 0, 9);
- test(S("tjehkpsalm"), "jbrnk", 11, 1, 9);
- test(S("ngfbojitcl"), "tqedg", 11, 2, 9);
- test(S("rcfkdbhgjo"), "nqskp", 11, 4, 9);
- test(S("qghptonrea"), "eaqkl", 11, 5, 7);
- test(S("hnprfgqjdl"), "reaoicljqm", 11, 0, 9);
- test(S("hlmgabenti"), "lsftgajqpm", 11, 1, 9);
- test(S("ofcjanmrbs"), "rlpfogmits", 11, 5, 9);
- test(S("jqedtkornm"), "shkncmiaqj", 11, 9, 7);
- test(S("rfedlasjmg"), "fpnatrhqgs", 11, 10, 8);
- test(S("talpqjsgkm"), "sjclemqhnpdbgikarfot", 11, 0, 9);
- test(S("lrkcbtqpie"), "otcmedjikgsfnqbrhpla", 11, 1, 9);
- test(S("cipogdskjf"), "bonsaefdqiprkhlgtjcm", 11, 10, 8);
- test(S("nqedcojahi"), "egpscmahijlfnkrodqtb", 11, 19, S::npos);
- test(S("hefnrkmctj"), "kmqbfepjthgilscrndoa", 11, 20, S::npos);
- test(S("atqirnmekfjolhpdsgcb"), "", 0, 0, 0);
- test(S("echfkmlpribjnqsaogtd"), "prboq", 0, 0, 0);
- test(S("qnhiftdgcleajbpkrosm"), "fjcqh", 0, 1, 0);
- test(S("chamfknorbedjitgslpq"), "fmosa", 0, 2, 0);
- test(S("njhqpibfmtlkaecdrgso"), "qdbok", 0, 4, 0);
- test(S("ebnghfsqkprmdcljoiat"), "amslg", 0, 5, 0);
- test(S("letjomsgihfrpqbkancd"), "smpltjneqb", 0, 0, 0);
- test(S("nblgoipcrqeaktshjdmf"), "flitskrnge", 0, 1, 0);
- test(S("cehkbngtjoiflqapsmrd"), "pgqihmlbef", 0, 5, 0);
- test(S("mignapfoklbhcqjetdrs"), "cfpdqjtgsb", 0, 9, 0);
- test(S("ceatbhlsqjgpnokfrmdi"), "htpsiaflom", 0, 10, 0);
- test(S("ocihkjgrdelpfnmastqb"), "kpjfiaceghsrdtlbnomq", 0, 0, 0);
- test(S("noelgschdtbrjfmiqkap"), "qhtbomidljgafneksprc", 0, 1, 0);
- test(S("dkclqfombepritjnghas"), "nhtjobkcefldimpsaqgr", 0, 10, 0);
- test(S("miklnresdgbhqcojftap"), "prabcjfqnoeskilmtgdh", 0, 19, S::npos);
- test(S("htbcigojaqmdkfrnlsep"), "dtrgmchilkasqoebfpjn", 0, 20, S::npos);
- test(S("febhmqtjanokscdirpgl"), "", 1, 0, 1);
- test(S("loakbsqjpcrdhftniegm"), "sqome", 1, 0, 1);
- test(S("reagphsqflbitdcjmkno"), "smfte", 1, 1, 1);
- test(S("jitlfrqemsdhkopncabg"), "ciboh", 1, 2, 0);
- test(S("mhtaepscdnrjqgbkifol"), "haois", 1, 4, 0);
- test(S("tocesrfmnglpbjihqadk"), "abfki", 1, 5, 1);
- test(S("lpfmctjrhdagneskbqoi"), "frdkocntmq", 1, 0, 1);
- test(S("lsmqaepkdhncirbtjfgo"), "oasbpedlnr", 1, 1, 1);
- test(S("epoiqmtldrabnkjhcfsg"), "kltqmhgand", 1, 5, 1);
- test(S("emgasrilpknqojhtbdcf"), "gdtfjchpmr", 1, 9, 0);
- test(S("hnfiagdpcklrjetqbsom"), "ponmcqblet", 1, 10, 0);
- test(S("nsdfebgajhmtricpoklq"), "sgphqdnofeiklatbcmjr", 1, 0, 1);
- test(S("atjgfsdlpobmeiqhncrk"), "ljqprsmigtfoneadckbh", 1, 1, 1);
- test(S("sitodfgnrejlahcbmqkp"), "ligeojhafnkmrcsqtbdp", 1, 10, 0);
- test(S("fraghmbiceknltjpqosd"), "lsimqfnjarbopedkhcgt", 1, 19, S::npos);
- test(S("pmafenlhqtdbkirjsogc"), "abedmfjlghniorcqptks", 1, 20, S::npos);
- test(S("pihgmoeqtnakrjslcbfd"), "", 10, 0, 10);
- test(S("gjdkeprctqblnhiafsom"), "hqtoa", 10, 0, 10);
- test(S("mkpnblfdsahrcqijteog"), "cahif", 10, 1, 10);
- test(S("gckarqnelodfjhmbptis"), "kehis", 10, 2, 10);
- test(S("gqpskidtbclomahnrjfe"), "kdlmh", 10, 4, 9);
- test(S("pkldjsqrfgitbhmaecno"), "paeql", 10, 5, 10);
- test(S("aftsijrbeklnmcdqhgop"), "aghoqiefnb", 10, 0, 10);
- test(S("mtlgdrhafjkbiepqnsoc"), "jrbqaikpdo", 10, 1, 10);
- test(S("pqgirnaefthokdmbsclj"), "smjonaeqcl", 10, 5, 10);
- test(S("kpdbgjmtherlsfcqoina"), "eqbdrkcfah", 10, 9, 8);
- test(S("jrlbothiknqmdgcfasep"), "kapmsienhf", 10, 10, 10);
- test(S("mjogldqferckabinptsh"), "jpqotrlenfcsbhkaimdg", 10, 0, 10);
- test(S("apoklnefbhmgqcdrisjt"), "jlbmhnfgtcqprikeados", 10, 1, 10);
- test(S("ifeopcnrjbhkdgatmqls"), "stgbhfmdaljnpqoicker", 10, 10, 8);
- test(S("ckqhaiesmjdnrgolbtpf"), "oihcetflbjagdsrkmqpn", 10, 19, S::npos);
- test(S("bnlgapfimcoterskqdjh"), "adtclebmnpjsrqfkigoh", 10, 20, S::npos);
- test(S("kgdlrobpmjcthqsafeni"), "", 19, 0, 19);
- test(S("dfkechomjapgnslbtqir"), "beafg", 19, 0, 19);
- test(S("rloadknfbqtgmhcsipje"), "iclat", 19, 1, 19);
- test(S("mgjhkolrnadqbpetcifs"), "rkhnf", 19, 2, 19);
- test(S("cmlfakiojdrgtbsphqen"), "clshq", 19, 4, 19);
- test(S("kghbfipeomsntdalrqjc"), "dtcoj", 19, 5, 17);
- test(S("eldiqckrnmtasbghjfpo"), "rqosnjmfth", 19, 0, 19);
- test(S("abqjcfedgotihlnspkrm"), "siatdfqglh", 19, 1, 19);
- test(S("qfbadrtjsimkolcenhpg"), "mrlshtpgjq", 19, 5, 19);
- test(S("abseghclkjqifmtodrnp"), "adlcskgqjt", 19, 9, 19);
- test(S("ibmsnlrjefhtdokacqpg"), "drshcjknaf", 19, 10, 19);
- test(S("mrkfciqjebaponsthldg"), "etsaqroinghpkjdlfcbm", 19, 0, 19);
- test(S("mjkticdeoqshpalrfbgn"), "sgepdnkqliambtrocfhj", 19, 1, 19);
- test(S("rqnoclbdejgiphtfsakm"), "nlmcjaqgbsortfdihkpe", 19, 10, 18);
- test(S("plkqbhmtfaeodjcrsing"), "racfnpmosldibqkghjet", 19, 19, 7);
- test(S("oegalhmstjrfickpbndq"), "fjhdsctkqeiolagrnmbp", 19, 20, S::npos);
- test(S("rdtgjcaohpblniekmsfq"), "", 20, 0, 19);
- test(S("ofkqbnjetrmsaidphglc"), "ejanp", 20, 0, 19);
- test(S("grkpahljcftesdmonqib"), "odife", 20, 1, 19);
- test(S("jimlgbhfqkteospardcn"), "okaqd", 20, 2, 19);
- test(S("gftenihpmslrjkqadcob"), "lcdbi", 20, 4, 18);
- test(S("bmhldogtckrfsanijepq"), "fsqbj", 20, 5, 18);
- test(S("nfqkrpjdesabgtlcmoih"), "bigdomnplq", 20, 0, 19);
- test(S("focalnrpiqmdkstehbjg"), "apiblotgcd", 20, 1, 19);
- test(S("rhqdspkmebiflcotnjga"), "acfhdenops", 20, 5, 18);
- test(S("rahdtmsckfboqlpniegj"), "jopdeamcrk", 20, 9, 18);
- test(S("fbkeiopclstmdqranjhg"), "trqncbkgmh", 20, 10, 17);
- test(S("lifhpdgmbconstjeqark"), "tomglrkencbsfjqpihda", 20, 0, 19);
+void test2() {
+ test(S("sdpcilonqj"), "dnjfsagktr", 10, 5, 8);
+ test(S("gtfbdkqeml"), "nejaktmiqg", 10, 9, 9);
+ test(S("bmeqgcdorj"), "pjqonlebsf", 10, 10, 8);
+ test(S("etqlcanmob"), "dshmnbtolcjepgaikfqr", 10, 0, 9);
+ test(S("roqmkbdtia"), "iogfhpabtjkqlrnemcds", 10, 1, 9);
+ test(S("kadsithljf"), "ngridfabjsecpqltkmoh", 10, 10, 7);
+ test(S("sgtkpbfdmh"), "athmknplcgofrqejsdib", 10, 19, 5);
+ test(S("qgmetnabkl"), "ldobhmqcafnjtkeisgrp", 10, 20, S::npos);
+ test(S("cqjohampgd"), "", 11, 0, 9);
+ test(S("hobitmpsan"), "aocjb", 11, 0, 9);
+ test(S("tjehkpsalm"), "jbrnk", 11, 1, 9);
+ test(S("ngfbojitcl"), "tqedg", 11, 2, 9);
+ test(S("rcfkdbhgjo"), "nqskp", 11, 4, 9);
+ test(S("qghptonrea"), "eaqkl", 11, 5, 7);
+ test(S("hnprfgqjdl"), "reaoicljqm", 11, 0, 9);
+ test(S("hlmgabenti"), "lsftgajqpm", 11, 1, 9);
+ test(S("ofcjanmrbs"), "rlpfogmits", 11, 5, 9);
+ test(S("jqedtkornm"), "shkncmiaqj", 11, 9, 7);
+ test(S("rfedlasjmg"), "fpnatrhqgs", 11, 10, 8);
+ test(S("talpqjsgkm"), "sjclemqhnpdbgikarfot", 11, 0, 9);
+ test(S("lrkcbtqpie"), "otcmedjikgsfnqbrhpla", 11, 1, 9);
+ test(S("cipogdskjf"), "bonsaefdqiprkhlgtjcm", 11, 10, 8);
+ test(S("nqedcojahi"), "egpscmahijlfnkrodqtb", 11, 19, S::npos);
+ test(S("hefnrkmctj"), "kmqbfepjthgilscrndoa", 11, 20, S::npos);
+ test(S("atqirnmekfjolhpdsgcb"), "", 0, 0, 0);
+ test(S("echfkmlpribjnqsaogtd"), "prboq", 0, 0, 0);
+ test(S("qnhiftdgcleajbpkrosm"), "fjcqh", 0, 1, 0);
+ test(S("chamfknorbedjitgslpq"), "fmosa", 0, 2, 0);
+ test(S("njhqpibfmtlkaecdrgso"), "qdbok", 0, 4, 0);
+ test(S("ebnghfsqkprmdcljoiat"), "amslg", 0, 5, 0);
+ test(S("letjomsgihfrpqbkancd"), "smpltjneqb", 0, 0, 0);
+ test(S("nblgoipcrqeaktshjdmf"), "flitskrnge", 0, 1, 0);
+ test(S("cehkbngtjoiflqapsmrd"), "pgqihmlbef", 0, 5, 0);
+ test(S("mignapfoklbhcqjetdrs"), "cfpdqjtgsb", 0, 9, 0);
+ test(S("ceatbhlsqjgpnokfrmdi"), "htpsiaflom", 0, 10, 0);
+ test(S("ocihkjgrdelpfnmastqb"), "kpjfiaceghsrdtlbnomq", 0, 0, 0);
+ test(S("noelgschdtbrjfmiqkap"), "qhtbomidljgafneksprc", 0, 1, 0);
+ test(S("dkclqfombepritjnghas"), "nhtjobkcefldimpsaqgr", 0, 10, 0);
+ test(S("miklnresdgbhqcojftap"), "prabcjfqnoeskilmtgdh", 0, 19, S::npos);
+ test(S("htbcigojaqmdkfrnlsep"), "dtrgmchilkasqoebfpjn", 0, 20, S::npos);
+ test(S("febhmqtjanokscdirpgl"), "", 1, 0, 1);
+ test(S("loakbsqjpcrdhftniegm"), "sqome", 1, 0, 1);
+ test(S("reagphsqflbitdcjmkno"), "smfte", 1, 1, 1);
+ test(S("jitlfrqemsdhkopncabg"), "ciboh", 1, 2, 0);
+ test(S("mhtaepscdnrjqgbkifol"), "haois", 1, 4, 0);
+ test(S("tocesrfmnglpbjihqadk"), "abfki", 1, 5, 1);
+ test(S("lpfmctjrhdagneskbqoi"), "frdkocntmq", 1, 0, 1);
+ test(S("lsmqaepkdhncirbtjfgo"), "oasbpedlnr", 1, 1, 1);
+ test(S("epoiqmtldrabnkjhcfsg"), "kltqmhgand", 1, 5, 1);
+ test(S("emgasrilpknqojhtbdcf"), "gdtfjchpmr", 1, 9, 0);
+ test(S("hnfiagdpcklrjetqbsom"), "ponmcqblet", 1, 10, 0);
+ test(S("nsdfebgajhmtricpoklq"), "sgphqdnofeiklatbcmjr", 1, 0, 1);
+ test(S("atjgfsdlpobmeiqhncrk"), "ljqprsmigtfoneadckbh", 1, 1, 1);
+ test(S("sitodfgnrejlahcbmqkp"), "ligeojhafnkmrcsqtbdp", 1, 10, 0);
+ test(S("fraghmbiceknltjpqosd"), "lsimqfnjarbopedkhcgt", 1, 19, S::npos);
+ test(S("pmafenlhqtdbkirjsogc"), "abedmfjlghniorcqptks", 1, 20, S::npos);
+ test(S("pihgmoeqtnakrjslcbfd"), "", 10, 0, 10);
+ test(S("gjdkeprctqblnhiafsom"), "hqtoa", 10, 0, 10);
+ test(S("mkpnblfdsahrcqijteog"), "cahif", 10, 1, 10);
+ test(S("gckarqnelodfjhmbptis"), "kehis", 10, 2, 10);
+ test(S("gqpskidtbclomahnrjfe"), "kdlmh", 10, 4, 9);
+ test(S("pkldjsqrfgitbhmaecno"), "paeql", 10, 5, 10);
+ test(S("aftsijrbeklnmcdqhgop"), "aghoqiefnb", 10, 0, 10);
+ test(S("mtlgdrhafjkbiepqnsoc"), "jrbqaikpdo", 10, 1, 10);
+ test(S("pqgirnaefthokdmbsclj"), "smjonaeqcl", 10, 5, 10);
+ test(S("kpdbgjmtherlsfcqoina"), "eqbdrkcfah", 10, 9, 8);
+ test(S("jrlbothiknqmdgcfasep"), "kapmsienhf", 10, 10, 10);
+ test(S("mjogldqferckabinptsh"), "jpqotrlenfcsbhkaimdg", 10, 0, 10);
+ test(S("apoklnefbhmgqcdrisjt"), "jlbmhnfgtcqprikeados", 10, 1, 10);
+ test(S("ifeopcnrjbhkdgatmqls"), "stgbhfmdaljnpqoicker", 10, 10, 8);
+ test(S("ckqhaiesmjdnrgolbtpf"), "oihcetflbjagdsrkmqpn", 10, 19, S::npos);
+ test(S("bnlgapfimcoterskqdjh"), "adtclebmnpjsrqfkigoh", 10, 20, S::npos);
+ test(S("kgdlrobpmjcthqsafeni"), "", 19, 0, 19);
+ test(S("dfkechomjapgnslbtqir"), "beafg", 19, 0, 19);
+ test(S("rloadknfbqtgmhcsipje"), "iclat", 19, 1, 19);
+ test(S("mgjhkolrnadqbpetcifs"), "rkhnf", 19, 2, 19);
+ test(S("cmlfakiojdrgtbsphqen"), "clshq", 19, 4, 19);
+ test(S("kghbfipeomsntdalrqjc"), "dtcoj", 19, 5, 17);
+ test(S("eldiqckrnmtasbghjfpo"), "rqosnjmfth", 19, 0, 19);
+ test(S("abqjcfedgotihlnspkrm"), "siatdfqglh", 19, 1, 19);
+ test(S("qfbadrtjsimkolcenhpg"), "mrlshtpgjq", 19, 5, 19);
+ test(S("abseghclkjqifmtodrnp"), "adlcskgqjt", 19, 9, 19);
+ test(S("ibmsnlrjefhtdokacqpg"), "drshcjknaf", 19, 10, 19);
+ test(S("mrkfciqjebaponsthldg"), "etsaqroinghpkjdlfcbm", 19, 0, 19);
+ test(S("mjkticdeoqshpalrfbgn"), "sgepdnkqliambtrocfhj", 19, 1, 19);
+ test(S("rqnoclbdejgiphtfsakm"), "nlmcjaqgbsortfdihkpe", 19, 10, 18);
+ test(S("plkqbhmtfaeodjcrsing"), "racfnpmosldibqkghjet", 19, 19, 7);
+ test(S("oegalhmstjrfickpbndq"), "fjhdsctkqeiolagrnmbp", 19, 20, S::npos);
+ test(S("rdtgjcaohpblniekmsfq"), "", 20, 0, 19);
+ test(S("ofkqbnjetrmsaidphglc"), "ejanp", 20, 0, 19);
+ test(S("grkpahljcftesdmonqib"), "odife", 20, 1, 19);
+ test(S("jimlgbhfqkteospardcn"), "okaqd", 20, 2, 19);
+ test(S("gftenihpmslrjkqadcob"), "lcdbi", 20, 4, 18);
+ test(S("bmhldogtckrfsanijepq"), "fsqbj", 20, 5, 18);
+ test(S("nfqkrpjdesabgtlcmoih"), "bigdomnplq", 20, 0, 19);
+ test(S("focalnrpiqmdkstehbjg"), "apiblotgcd", 20, 1, 19);
+ test(S("rhqdspkmebiflcotnjga"), "acfhdenops", 20, 5, 18);
+ test(S("rahdtmsckfboqlpniegj"), "jopdeamcrk", 20, 9, 18);
+ test(S("fbkeiopclstmdqranjhg"), "trqncbkgmh", 20, 10, 17);
+ test(S("lifhpdgmbconstjeqark"), "tomglrkencbsfjqpihda", 20, 0, 19);
}
template <class S>
-void test3()
-{
- test(S("pboqganrhedjmltsicfk"), "gbkhdnpoietfcmrslajq", 20, 1, 19);
- test(S("klchabsimetjnqgorfpd"), "rtfnmbsglkjaichoqedp", 20, 10, 19);
- test(S("sirfgmjqhctndbklaepo"), "ohkmdpfqbsacrtjnlgei", 20, 19, 1);
- test(S("rlbdsiceaonqjtfpghkm"), "dlbrteoisgphmkncajfq", 20, 20, S::npos);
- test(S("ecgdanriptblhjfqskom"), "", 21, 0, 19);
- test(S("fdmiarlpgcskbhoteqjn"), "sjrlo", 21, 0, 19);
- test(S("rlbstjqopignecmfadkh"), "qjpor", 21, 1, 19);
- test(S("grjpqmbshektdolcafni"), "odhfn", 21, 2, 19);
- test(S("sakfcohtqnibprjmlged"), "qtfin", 21, 4, 19);
- test(S("mjtdglasihqpocebrfkn"), "hpqfo", 21, 5, 19);
- test(S("okaplfrntghqbmeicsdj"), "fabmertkos", 21, 0, 19);
- test(S("sahngemrtcjidqbklfpo"), "brqtgkmaej", 21, 1, 19);
- test(S("dlmsipcnekhbgoaftqjr"), "nfrdeihsgl", 21, 5, 18);
- test(S("ahegrmqnoiklpfsdbcjt"), "hlfrosekpi", 21, 9, 19);
- test(S("hdsjbnmlegtkqripacof"), "atgbkrjdsm", 21, 10, 19);
- test(S("pcnedrfjihqbalkgtoms"), "blnrptjgqmaifsdkhoec", 21, 0, 19);
- test(S("qjidealmtpskrbfhocng"), "ctpmdahebfqjgknloris", 21, 1, 19);
- test(S("qeindtagmokpfhsclrbj"), "apnkeqthrmlbfodiscgj", 21, 10, 19);
- test(S("kpfegbjhsrnodltqciam"), "jdgictpframeoqlsbknh", 21, 19, 7);
- test(S("hnbrcplsjfgiktoedmaq"), "qprlsfojamgndekthibc", 21, 20, S::npos);
+void test3() {
+ test(S("pboqganrhedjmltsicfk"), "gbkhdnpoietfcmrslajq", 20, 1, 19);
+ test(S("klchabsimetjnqgorfpd"), "rtfnmbsglkjaichoqedp", 20, 10, 19);
+ test(S("sirfgmjqhctndbklaepo"), "ohkmdpfqbsacrtjnlgei", 20, 19, 1);
+ test(S("rlbdsiceaonqjtfpghkm"), "dlbrteoisgphmkncajfq", 20, 20, S::npos);
+ test(S("ecgdanriptblhjfqskom"), "", 21, 0, 19);
+ test(S("fdmiarlpgcskbhoteqjn"), "sjrlo", 21, 0, 19);
+ test(S("rlbstjqopignecmfadkh"), "qjpor", 21, 1, 19);
+ test(S("grjpqmbshektdolcafni"), "odhfn", 21, 2, 19);
+ test(S("sakfcohtqnibprjmlged"), "qtfin", 21, 4, 19);
+ test(S("mjtdglasihqpocebrfkn"), "hpqfo", 21, 5, 19);
+ test(S("okaplfrntghqbmeicsdj"), "fabmertkos", 21, 0, 19);
+ test(S("sahngemrtcjidqbklfpo"), "brqtgkmaej", 21, 1, 19);
+ test(S("dlmsipcnekhbgoaftqjr"), "nfrdeihsgl", 21, 5, 18);
+ test(S("ahegrmqnoiklpfsdbcjt"), "hlfrosekpi", 21, 9, 19);
+ test(S("hdsjbnmlegtkqripacof"), "atgbkrjdsm", 21, 10, 19);
+ test(S("pcnedrfjihqbalkgtoms"), "blnrptjgqmaifsdkhoec", 21, 0, 19);
+ test(S("qjidealmtpskrbfhocng"), "ctpmdahebfqjgknloris", 21, 1, 19);
+ test(S("qeindtagmokpfhsclrbj"), "apnkeqthrmlbfodiscgj", 21, 10, 19);
+ test(S("kpfegbjhsrnodltqciam"), "jdgictpframeoqlsbknh", 21, 19, 7);
+ test(S("hnbrcplsjfgiktoedmaq"), "qprlsfojamgndekthibc", 21, 20, S::npos);
}
-int main(int, char**)
-{
- {
+int main(int, char**) {
+ {
typedef std::string_view S;
test0<S>();
test1<S>();
test2<S>();
test3<S>();
- }
+ }
#if TEST_STD_VER > 11
- {
+ {
typedef std::basic_string_view<char, constexpr_char_traits<char>> SV;
- constexpr SV sv1;
- constexpr SV sv2 { "abcde", 5 };
+ constexpr SV sv1;
+ constexpr SV sv2{"abcde", 5};
- static_assert (sv1.find_last_not_of( "", 0, 0) == SV::npos, "" );
- static_assert (sv1.find_last_not_of( "irkhs", 0, 5) == SV::npos, "" );
- static_assert (sv2.find_last_not_of( "", 0, 0) == 0, "" );
- static_assert (sv2.find_last_not_of( "gfsrt", 5, 0) == 4, "" );
- static_assert (sv2.find_last_not_of( "lecar", 5, 0) == 4, "" );
- }
+ static_assert(sv1.find_last_not_of("", 0, 0) == SV::npos, "");
+ static_assert(sv1.find_last_not_of("irkhs", 0, 5) == SV::npos, "");
+ static_assert(sv2.find_last_not_of("", 0, 0) == 0, "");
+ static_assert(sv2.find_last_not_of("gfsrt", 5, 0) == 4, "");
+ static_assert(sv2.find_last_not_of("lecar", 5, 0) == 4, "");
+ }
#endif
return 0;
diff --git a/libcxx/test/std/strings/string.view/string.view.find/find_last_not_of_string_view_size.pass.cpp b/libcxx/test/std/strings/string.view/string.view.find/find_last_not_of_string_view_size.pass.cpp
index 5a2a319da53d06a..390a5e65207224f 100644
--- a/libcxx/test/std/strings/string.view/string.view.find/find_last_not_of_string_view_size.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.find/find_last_not_of_string_view_size.pass.cpp
@@ -18,138 +18,131 @@
#include "test_macros.h"
template <class S>
-void
-test(const S& s, const S& str, typename S::size_type pos, typename S::size_type x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.find_last_not_of(str, pos));
- assert(s.find_last_not_of(str, pos) == x);
- if (x != S::npos)
- assert(x <= pos && x < s.size());
+void test(const S& s, const S& str, typename S::size_type pos, typename S::size_type x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.find_last_not_of(str, pos));
+ assert(s.find_last_not_of(str, pos) == x);
+ if (x != S::npos)
+ assert(x <= pos && x < s.size());
}
template <class S>
-void
-test(const S& s, const S& str, typename S::size_type x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.find_last_not_of(str));
- assert(s.find_last_not_of(str) == x);
- if (x != S::npos)
- assert(x < s.size());
+void test(const S& s, const S& str, typename S::size_type x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.find_last_not_of(str));
+ assert(s.find_last_not_of(str) == x);
+ if (x != S::npos)
+ assert(x < s.size());
}
template <class S>
-void test0()
-{
- test(S(""), S(""), 0, S::npos);
- test(S(""), S("laenf"), 0, S::npos);
- test(S(""), S("pqlnkmbdjo"), 0, S::npos);
- test(S(""), S("qkamfogpnljdcshbreti"), 0, S::npos);
- test(S(""), S(""), 1, S::npos);
- test(S(""), S("bjaht"), 1, S::npos);
- test(S(""), S("hjlcmgpket"), 1, S::npos);
- test(S(""), S("htaobedqikfplcgjsmrn"), 1, S::npos);
- test(S("fodgq"), S(""), 0, 0);
- test(S("qanej"), S("dfkap"), 0, 0);
- test(S("clbao"), S("ihqrfebgad"), 0, 0);
- test(S("mekdn"), S("ngtjfcalbseiqrphmkdo"), 0, S::npos);
- test(S("srdfq"), S(""), 1, 1);
- test(S("oemth"), S("ikcrq"), 1, 1);
- test(S("cdaih"), S("dmajblfhsg"), 1, 0);
- test(S("qohtk"), S("oqftjhdmkgsblacenirp"), 1, S::npos);
- test(S("cshmd"), S(""), 2, 2);
- test(S("lhcdo"), S("oebqi"), 2, 2);
- test(S("qnsoh"), S("kojhpmbsfe"), 2, 1);
- test(S("pkrof"), S("acbsjqogpltdkhinfrem"), 2, S::npos);
- test(S("fmtsp"), S(""), 4, 4);
- test(S("khbpm"), S("aobjd"), 4, 4);
- test(S("pbsji"), S("pcbahntsje"), 4, 4);
- test(S("mprdj"), S("fhepcrntkoagbmldqijs"), 4, S::npos);
- test(S("eqmpa"), S(""), 5, 4);
- test(S("omigs"), S("kocgb"), 5, 4);
- test(S("onmje"), S("fbslrjiqkm"), 5, 4);
- test(S("oqmrj"), S("jeidpcmalhfnqbgtrsko"), 5, S::npos);
- test(S("schfa"), S(""), 6, 4);
- test(S("igdsc"), S("qngpd"), 6, 4);
- test(S("brqgo"), S("rodhqklgmb"), 6, S::npos);
- test(S("tnrph"), S("thdjgafrlbkoiqcspmne"), 6, S::npos);
- test(S("hcjitbfapl"), S(""), 0, 0);
- test(S("daiprenocl"), S("ashjd"), 0, S::npos);
- test(S("litpcfdghe"), S("mgojkldsqh"), 0, S::npos);
- test(S("aidjksrolc"), S("imqnaghkfrdtlopbjesc"), 0, S::npos);
- test(S("qpghtfbaji"), S(""), 1, 1);
- test(S("gfshlcmdjr"), S("nadkh"), 1, 1);
- test(S("nkodajteqp"), S("ofdrqmkebl"), 1, 0);
- test(S("gbmetiprqd"), S("bdfjqgatlksriohemnpc"), 1, S::npos);
- test(S("crnklpmegd"), S(""), 5, 5);
- test(S("jsbtafedoc"), S("prqgn"), 5, 5);
- test(S("qnmodrtkeb"), S("pejafmnokr"), 5, 4);
- test(S("cpebqsfmnj"), S("odnqkgijrhabfmcestlp"), 5, S::npos);
- test(S("lmofqdhpki"), S(""), 9, 9);
- test(S("hnefkqimca"), S("rtjpa"), 9, 8);
- test(S("drtasbgmfp"), S("ktsrmnqagd"), 9, 9);
- test(S("lsaijeqhtr"), S("rtdhgcisbnmoaqkfpjle"), 9, S::npos);
- test(S("elgofjmbrq"), S(""), 10, 9);
- test(S("mjqdgalkpc"), S("dplqa"), 10, 9);
- test(S("kthqnfcerm"), S("dkacjoptns"), 10, 9);
- test(S("dfsjhanorc"), S("hqfimtrgnbekpdcsjalo"), 10, S::npos);
- test(S("eqsgalomhb"), S(""), 11, 9);
- test(S("akiteljmoh"), S("lofbc"), 11, 9);
- test(S("hlbdfreqjo"), S("astoegbfpn"), 11, 8);
- test(S("taqobhlerg"), S("pdgreqomsncafklhtibj"), 11, S::npos);
- test(S("snafbdlghrjkpqtoceim"), S(""), 0, 0);
- test(S("aemtbrgcklhndjisfpoq"), S("lbtqd"), 0, 0);
- test(S("pnracgfkjdiholtbqsem"), S("tboimldpjh"), 0, S::npos);
- test(S("dicfltehbsgrmojnpkaq"), S("slcerthdaiqjfnobgkpm"), 0, S::npos);
- test(S("jlnkraeodhcspfgbqitm"), S(""), 1, 1);
- test(S("lhosrngtmfjikbqpcade"), S("aqibs"), 1, 1);
- test(S("rbtaqjhgkneisldpmfoc"), S("gtfblmqinc"), 1, 0);
- test(S("gpifsqlrdkbonjtmheca"), S("mkqpbtdalgniorhfescj"), 1, S::npos);
- test(S("hdpkobnsalmcfijregtq"), S(""), 10, 10);
- test(S("jtlshdgqaiprkbcoenfm"), S("pblas"), 10, 9);
- test(S("fkdrbqltsgmcoiphneaj"), S("arosdhcfme"), 10, 9);
- test(S("crsplifgtqedjohnabmk"), S("blkhjeogicatqfnpdmsr"), 10, S::npos);
- test(S("niptglfbosehkamrdqcj"), S(""), 19, 19);
- test(S("copqdhstbingamjfkler"), S("djkqc"), 19, 19);
- test(S("mrtaefilpdsgocnhqbjk"), S("lgokshjtpb"), 19, 16);
- test(S("kojatdhlcmigpbfrqnes"), S("bqjhtkfepimcnsgrlado"), 19, S::npos);
- test(S("eaintpchlqsbdgrkjofm"), S(""), 20, 19);
- test(S("gjnhidfsepkrtaqbmclo"), S("nocfa"), 20, 18);
- test(S("spocfaktqdbiejlhngmr"), S("bgtajmiedc"), 20, 19);
- test(S("rphmlekgfscndtaobiqj"), S("lsckfnqgdahejiopbtmr"), 20, S::npos);
- test(S("liatsqdoegkmfcnbhrpj"), S(""), 21, 19);
- test(S("binjagtfldkrspcomqeh"), S("gfsrt"), 21, 19);
- test(S("latkmisecnorjbfhqpdg"), S("pfsocbhjtm"), 21, 19);
- test(S("lecfratdjkhnsmqpoigb"), S("tpflmdnoicjgkberhqsa"), 21, S::npos);
+void test0() {
+ test(S(""), S(""), 0, S::npos);
+ test(S(""), S("laenf"), 0, S::npos);
+ test(S(""), S("pqlnkmbdjo"), 0, S::npos);
+ test(S(""), S("qkamfogpnljdcshbreti"), 0, S::npos);
+ test(S(""), S(""), 1, S::npos);
+ test(S(""), S("bjaht"), 1, S::npos);
+ test(S(""), S("hjlcmgpket"), 1, S::npos);
+ test(S(""), S("htaobedqikfplcgjsmrn"), 1, S::npos);
+ test(S("fodgq"), S(""), 0, 0);
+ test(S("qanej"), S("dfkap"), 0, 0);
+ test(S("clbao"), S("ihqrfebgad"), 0, 0);
+ test(S("mekdn"), S("ngtjfcalbseiqrphmkdo"), 0, S::npos);
+ test(S("srdfq"), S(""), 1, 1);
+ test(S("oemth"), S("ikcrq"), 1, 1);
+ test(S("cdaih"), S("dmajblfhsg"), 1, 0);
+ test(S("qohtk"), S("oqftjhdmkgsblacenirp"), 1, S::npos);
+ test(S("cshmd"), S(""), 2, 2);
+ test(S("lhcdo"), S("oebqi"), 2, 2);
+ test(S("qnsoh"), S("kojhpmbsfe"), 2, 1);
+ test(S("pkrof"), S("acbsjqogpltdkhinfrem"), 2, S::npos);
+ test(S("fmtsp"), S(""), 4, 4);
+ test(S("khbpm"), S("aobjd"), 4, 4);
+ test(S("pbsji"), S("pcbahntsje"), 4, 4);
+ test(S("mprdj"), S("fhepcrntkoagbmldqijs"), 4, S::npos);
+ test(S("eqmpa"), S(""), 5, 4);
+ test(S("omigs"), S("kocgb"), 5, 4);
+ test(S("onmje"), S("fbslrjiqkm"), 5, 4);
+ test(S("oqmrj"), S("jeidpcmalhfnqbgtrsko"), 5, S::npos);
+ test(S("schfa"), S(""), 6, 4);
+ test(S("igdsc"), S("qngpd"), 6, 4);
+ test(S("brqgo"), S("rodhqklgmb"), 6, S::npos);
+ test(S("tnrph"), S("thdjgafrlbkoiqcspmne"), 6, S::npos);
+ test(S("hcjitbfapl"), S(""), 0, 0);
+ test(S("daiprenocl"), S("ashjd"), 0, S::npos);
+ test(S("litpcfdghe"), S("mgojkldsqh"), 0, S::npos);
+ test(S("aidjksrolc"), S("imqnaghkfrdtlopbjesc"), 0, S::npos);
+ test(S("qpghtfbaji"), S(""), 1, 1);
+ test(S("gfshlcmdjr"), S("nadkh"), 1, 1);
+ test(S("nkodajteqp"), S("ofdrqmkebl"), 1, 0);
+ test(S("gbmetiprqd"), S("bdfjqgatlksriohemnpc"), 1, S::npos);
+ test(S("crnklpmegd"), S(""), 5, 5);
+ test(S("jsbtafedoc"), S("prqgn"), 5, 5);
+ test(S("qnmodrtkeb"), S("pejafmnokr"), 5, 4);
+ test(S("cpebqsfmnj"), S("odnqkgijrhabfmcestlp"), 5, S::npos);
+ test(S("lmofqdhpki"), S(""), 9, 9);
+ test(S("hnefkqimca"), S("rtjpa"), 9, 8);
+ test(S("drtasbgmfp"), S("ktsrmnqagd"), 9, 9);
+ test(S("lsaijeqhtr"), S("rtdhgcisbnmoaqkfpjle"), 9, S::npos);
+ test(S("elgofjmbrq"), S(""), 10, 9);
+ test(S("mjqdgalkpc"), S("dplqa"), 10, 9);
+ test(S("kthqnfcerm"), S("dkacjoptns"), 10, 9);
+ test(S("dfsjhanorc"), S("hqfimtrgnbekpdcsjalo"), 10, S::npos);
+ test(S("eqsgalomhb"), S(""), 11, 9);
+ test(S("akiteljmoh"), S("lofbc"), 11, 9);
+ test(S("hlbdfreqjo"), S("astoegbfpn"), 11, 8);
+ test(S("taqobhlerg"), S("pdgreqomsncafklhtibj"), 11, S::npos);
+ test(S("snafbdlghrjkpqtoceim"), S(""), 0, 0);
+ test(S("aemtbrgcklhndjisfpoq"), S("lbtqd"), 0, 0);
+ test(S("pnracgfkjdiholtbqsem"), S("tboimldpjh"), 0, S::npos);
+ test(S("dicfltehbsgrmojnpkaq"), S("slcerthdaiqjfnobgkpm"), 0, S::npos);
+ test(S("jlnkraeodhcspfgbqitm"), S(""), 1, 1);
+ test(S("lhosrngtmfjikbqpcade"), S("aqibs"), 1, 1);
+ test(S("rbtaqjhgkneisldpmfoc"), S("gtfblmqinc"), 1, 0);
+ test(S("gpifsqlrdkbonjtmheca"), S("mkqpbtdalgniorhfescj"), 1, S::npos);
+ test(S("hdpkobnsalmcfijregtq"), S(""), 10, 10);
+ test(S("jtlshdgqaiprkbcoenfm"), S("pblas"), 10, 9);
+ test(S("fkdrbqltsgmcoiphneaj"), S("arosdhcfme"), 10, 9);
+ test(S("crsplifgtqedjohnabmk"), S("blkhjeogicatqfnpdmsr"), 10, S::npos);
+ test(S("niptglfbosehkamrdqcj"), S(""), 19, 19);
+ test(S("copqdhstbingamjfkler"), S("djkqc"), 19, 19);
+ test(S("mrtaefilpdsgocnhqbjk"), S("lgokshjtpb"), 19, 16);
+ test(S("kojatdhlcmigpbfrqnes"), S("bqjhtkfepimcnsgrlado"), 19, S::npos);
+ test(S("eaintpchlqsbdgrkjofm"), S(""), 20, 19);
+ test(S("gjnhidfsepkrtaqbmclo"), S("nocfa"), 20, 18);
+ test(S("spocfaktqdbiejlhngmr"), S("bgtajmiedc"), 20, 19);
+ test(S("rphmlekgfscndtaobiqj"), S("lsckfnqgdahejiopbtmr"), 20, S::npos);
+ test(S("liatsqdoegkmfcnbhrpj"), S(""), 21, 19);
+ test(S("binjagtfldkrspcomqeh"), S("gfsrt"), 21, 19);
+ test(S("latkmisecnorjbfhqpdg"), S("pfsocbhjtm"), 21, 19);
+ test(S("lecfratdjkhnsmqpoigb"), S("tpflmdnoicjgkberhqsa"), 21, S::npos);
}
template <class S>
-void test1()
-{
- test(S(""), S(""), S::npos);
- test(S(""), S("laenf"), S::npos);
- test(S(""), S("pqlnkmbdjo"), S::npos);
- test(S(""), S("qkamfogpnljdcshbreti"), S::npos);
- test(S("nhmko"), S(""), 4);
- test(S("lahfb"), S("irkhs"), 4);
- test(S("gmfhd"), S("kantesmpgj"), 4);
- test(S("odaft"), S("oknlrstdpiqmjbaghcfe"), S::npos);
- test(S("eolhfgpjqk"), S(""), 9);
- test(S("nbatdlmekr"), S("bnrpe"), 8);
- test(S("jdmciepkaq"), S("jtdaefblso"), 9);
- test(S("hkbgspoflt"), S("oselktgbcapndfjihrmq"), S::npos);
- test(S("gprdcokbnjhlsfmtieqa"), S(""), 19);
- test(S("qjghlnftcaismkropdeb"), S("bjaht"), 18);
- test(S("pnalfrdtkqcmojiesbhg"), S("hjlcmgpket"), 17);
- test(S("pniotcfrhqsmgdkjbael"), S("htaobedqikfplcgjsmrn"), S::npos);
+void test1() {
+ test(S(""), S(""), S::npos);
+ test(S(""), S("laenf"), S::npos);
+ test(S(""), S("pqlnkmbdjo"), S::npos);
+ test(S(""), S("qkamfogpnljdcshbreti"), S::npos);
+ test(S("nhmko"), S(""), 4);
+ test(S("lahfb"), S("irkhs"), 4);
+ test(S("gmfhd"), S("kantesmpgj"), 4);
+ test(S("odaft"), S("oknlrstdpiqmjbaghcfe"), S::npos);
+ test(S("eolhfgpjqk"), S(""), 9);
+ test(S("nbatdlmekr"), S("bnrpe"), 8);
+ test(S("jdmciepkaq"), S("jtdaefblso"), 9);
+ test(S("hkbgspoflt"), S("oselktgbcapndfjihrmq"), S::npos);
+ test(S("gprdcokbnjhlsfmtieqa"), S(""), 19);
+ test(S("qjghlnftcaismkropdeb"), S("bjaht"), 18);
+ test(S("pnalfrdtkqcmojiesbhg"), S("hjlcmgpket"), 17);
+ test(S("pniotcfrhqsmgdkjbael"), S("htaobedqikfplcgjsmrn"), S::npos);
}
-int main(int, char**)
-{
- {
+int main(int, char**) {
+ {
typedef std::string_view S;
test0<S>();
test1<S>();
- }
+ }
return 0;
}
diff --git a/libcxx/test/std/strings/string.view/string.view.find/find_last_of_char_size.pass.cpp b/libcxx/test/std/strings/string.view/string.view.find/find_last_of_char_size.pass.cpp
index 6710620aa1dc9f6..e0f1ae67dc1e953 100644
--- a/libcxx/test/std/strings/string.view/string.view.find/find_last_of_char_size.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.find/find_last_of_char_size.pass.cpp
@@ -19,29 +19,23 @@
#include "constexpr_char_traits.h"
template <class S>
-void
-test(const S& s, typename S::value_type c, typename S::size_type pos,
- typename S::size_type x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.find_last_of(c, pos));
- assert(s.find_last_of(c, pos) == x);
- if (x != S::npos)
- assert(x <= pos && x < s.size());
+void test(const S& s, typename S::value_type c, typename S::size_type pos, typename S::size_type x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.find_last_of(c, pos));
+ assert(s.find_last_of(c, pos) == x);
+ if (x != S::npos)
+ assert(x <= pos && x < s.size());
}
template <class S>
-void
-test(const S& s, typename S::value_type c, typename S::size_type x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.find_last_of(c));
- assert(s.find_last_of(c) == x);
- if (x != S::npos)
- assert(x < s.size());
+void test(const S& s, typename S::value_type c, typename S::size_type x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.find_last_of(c));
+ assert(s.find_last_of(c) == x);
+ if (x != S::npos)
+ assert(x < s.size());
}
-int main(int, char**)
-{
- {
+int main(int, char**) {
+ {
typedef std::string_view S;
test(S(""), 'm', 0, S::npos);
test(S(""), 'm', 1, S::npos);
@@ -68,20 +62,20 @@ int main(int, char**)
test(S("csope"), 'm', S::npos);
test(S("gfsmthlkon"), 'm', 3);
test(S("laenfsbridchgotmkqpj"), 'm', 15);
- }
+ }
#if TEST_STD_VER > 11
- {
+ {
typedef std::basic_string_view<char, constexpr_char_traits<char>> SV;
- constexpr SV sv1;
- constexpr SV sv2 { "abcde", 5 };
+ constexpr SV sv1;
+ constexpr SV sv2{"abcde", 5};
- static_assert (sv1.find_last_of( 'i', 0 ) == SV::npos, "" );
- static_assert (sv1.find_last_of( 'i', 1 ) == SV::npos, "" );
- static_assert (sv2.find_last_of( 'a', 0 ) == 0, "" );
- static_assert (sv2.find_last_of( 'a', 1 ) == 0, "" );
- static_assert (sv2.find_last_of( 'e', 5 ) == 4, "" );
- }
+ static_assert(sv1.find_last_of('i', 0) == SV::npos, "");
+ static_assert(sv1.find_last_of('i', 1) == SV::npos, "");
+ static_assert(sv2.find_last_of('a', 0) == 0, "");
+ static_assert(sv2.find_last_of('a', 1) == 0, "");
+ static_assert(sv2.find_last_of('e', 5) == 4, "");
+ }
#endif
return 0;
diff --git a/libcxx/test/std/strings/string.view/string.view.find/find_last_of_pointer_size.pass.cpp b/libcxx/test/std/strings/string.view/string.view.find/find_last_of_pointer_size.pass.cpp
index a9f381ce8bb579b..b5fd5321d04f1f8 100644
--- a/libcxx/test/std/strings/string.view/string.view.find/find_last_of_pointer_size.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.find/find_last_of_pointer_size.pass.cpp
@@ -19,152 +19,144 @@
#include "constexpr_char_traits.h"
template <class S>
-void
-test(const S& s, const typename S::value_type* str, typename S::size_type pos,
- typename S::size_type x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.find_last_of(str, pos));
- assert(s.find_last_of(str, pos) == x);
- if (x != S::npos)
- assert(x <= pos && x < s.size());
+void test(const S& s, const typename S::value_type* str, typename S::size_type pos, typename S::size_type x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.find_last_of(str, pos));
+ assert(s.find_last_of(str, pos) == x);
+ if (x != S::npos)
+ assert(x <= pos && x < s.size());
}
template <class S>
-void
-test(const S& s, const typename S::value_type* str, typename S::size_type x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.find_last_of(str));
- assert(s.find_last_of(str) == x);
- if (x != S::npos)
- assert(x < s.size());
+void test(const S& s, const typename S::value_type* str, typename S::size_type x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.find_last_of(str));
+ assert(s.find_last_of(str) == x);
+ if (x != S::npos)
+ assert(x < s.size());
}
template <class S>
-void test0()
-{
- test(S(""), "", 0, S::npos);
- test(S(""), "laenf", 0, S::npos);
- test(S(""), "pqlnkmbdjo", 0, S::npos);
- test(S(""), "qkamfogpnljdcshbreti", 0, S::npos);
- test(S(""), "", 1, S::npos);
- test(S(""), "bjaht", 1, S::npos);
- test(S(""), "hjlcmgpket", 1, S::npos);
- test(S(""), "htaobedqikfplcgjsmrn", 1, S::npos);
- test(S("fodgq"), "", 0, S::npos);
- test(S("qanej"), "dfkap", 0, S::npos);
- test(S("clbao"), "ihqrfebgad", 0, S::npos);
- test(S("mekdn"), "ngtjfcalbseiqrphmkdo", 0, 0);
- test(S("srdfq"), "", 1, S::npos);
- test(S("oemth"), "ikcrq", 1, S::npos);
- test(S("cdaih"), "dmajblfhsg", 1, 1);
- test(S("qohtk"), "oqftjhdmkgsblacenirp", 1, 1);
- test(S("cshmd"), "", 2, S::npos);
- test(S("lhcdo"), "oebqi", 2, S::npos);
- test(S("qnsoh"), "kojhpmbsfe", 2, 2);
- test(S("pkrof"), "acbsjqogpltdkhinfrem", 2, 2);
- test(S("fmtsp"), "", 4, S::npos);
- test(S("khbpm"), "aobjd", 4, 2);
- test(S("pbsji"), "pcbahntsje", 4, 3);
- test(S("mprdj"), "fhepcrntkoagbmldqijs", 4, 4);
- test(S("eqmpa"), "", 5, S::npos);
- test(S("omigs"), "kocgb", 5, 3);
- test(S("onmje"), "fbslrjiqkm", 5, 3);
- test(S("oqmrj"), "jeidpcmalhfnqbgtrsko", 5, 4);
- test(S("schfa"), "", 6, S::npos);
- test(S("igdsc"), "qngpd", 6, 2);
- test(S("brqgo"), "rodhqklgmb", 6, 4);
- test(S("tnrph"), "thdjgafrlbkoiqcspmne", 6, 4);
- test(S("hcjitbfapl"), "", 0, S::npos);
- test(S("daiprenocl"), "ashjd", 0, 0);
- test(S("litpcfdghe"), "mgojkldsqh", 0, 0);
- test(S("aidjksrolc"), "imqnaghkfrdtlopbjesc", 0, 0);
- test(S("qpghtfbaji"), "", 1, S::npos);
- test(S("gfshlcmdjr"), "nadkh", 1, S::npos);
- test(S("nkodajteqp"), "ofdrqmkebl", 1, 1);
- test(S("gbmetiprqd"), "bdfjqgatlksriohemnpc", 1, 1);
- test(S("crnklpmegd"), "", 5, S::npos);
- test(S("jsbtafedoc"), "prqgn", 5, S::npos);
- test(S("qnmodrtkeb"), "pejafmnokr", 5, 5);
- test(S("cpebqsfmnj"), "odnqkgijrhabfmcestlp", 5, 5);
- test(S("lmofqdhpki"), "", 9, S::npos);
- test(S("hnefkqimca"), "rtjpa", 9, 9);
- test(S("drtasbgmfp"), "ktsrmnqagd", 9, 7);
- test(S("lsaijeqhtr"), "rtdhgcisbnmoaqkfpjle", 9, 9);
- test(S("elgofjmbrq"), "", 10, S::npos);
- test(S("mjqdgalkpc"), "dplqa", 10, 8);
- test(S("kthqnfcerm"), "dkacjoptns", 10, 6);
- test(S("dfsjhanorc"), "hqfimtrgnbekpdcsjalo", 10, 9);
- test(S("eqsgalomhb"), "", 11, S::npos);
- test(S("akiteljmoh"), "lofbc", 11, 8);
- test(S("hlbdfreqjo"), "astoegbfpn", 11, 9);
- test(S("taqobhlerg"), "pdgreqomsncafklhtibj", 11, 9);
- test(S("snafbdlghrjkpqtoceim"), "", 0, S::npos);
- test(S("aemtbrgcklhndjisfpoq"), "lbtqd", 0, S::npos);
- test(S("pnracgfkjdiholtbqsem"), "tboimldpjh", 0, 0);
- test(S("dicfltehbsgrmojnpkaq"), "slcerthdaiqjfnobgkpm", 0, 0);
- test(S("jlnkraeodhcspfgbqitm"), "", 1, S::npos);
- test(S("lhosrngtmfjikbqpcade"), "aqibs", 1, S::npos);
- test(S("rbtaqjhgkneisldpmfoc"), "gtfblmqinc", 1, 1);
- test(S("gpifsqlrdkbonjtmheca"), "mkqpbtdalgniorhfescj", 1, 1);
- test(S("hdpkobnsalmcfijregtq"), "", 10, S::npos);
- test(S("jtlshdgqaiprkbcoenfm"), "pblas", 10, 10);
- test(S("fkdrbqltsgmcoiphneaj"), "arosdhcfme", 10, 10);
- test(S("crsplifgtqedjohnabmk"), "blkhjeogicatqfnpdmsr", 10, 10);
- test(S("niptglfbosehkamrdqcj"), "", 19, S::npos);
- test(S("copqdhstbingamjfkler"), "djkqc", 19, 16);
- test(S("mrtaefilpdsgocnhqbjk"), "lgokshjtpb", 19, 19);
- test(S("kojatdhlcmigpbfrqnes"), "bqjhtkfepimcnsgrlado", 19, 19);
- test(S("eaintpchlqsbdgrkjofm"), "", 20, S::npos);
- test(S("gjnhidfsepkrtaqbmclo"), "nocfa", 20, 19);
- test(S("spocfaktqdbiejlhngmr"), "bgtajmiedc", 20, 18);
- test(S("rphmlekgfscndtaobiqj"), "lsckfnqgdahejiopbtmr", 20, 19);
- test(S("liatsqdoegkmfcnbhrpj"), "", 21, S::npos);
- test(S("binjagtfldkrspcomqeh"), "gfsrt", 21, 12);
- test(S("latkmisecnorjbfhqpdg"), "pfsocbhjtm", 21, 17);
- test(S("lecfratdjkhnsmqpoigb"), "tpflmdnoicjgkberhqsa", 21, 19);
+void test0() {
+ test(S(""), "", 0, S::npos);
+ test(S(""), "laenf", 0, S::npos);
+ test(S(""), "pqlnkmbdjo", 0, S::npos);
+ test(S(""), "qkamfogpnljdcshbreti", 0, S::npos);
+ test(S(""), "", 1, S::npos);
+ test(S(""), "bjaht", 1, S::npos);
+ test(S(""), "hjlcmgpket", 1, S::npos);
+ test(S(""), "htaobedqikfplcgjsmrn", 1, S::npos);
+ test(S("fodgq"), "", 0, S::npos);
+ test(S("qanej"), "dfkap", 0, S::npos);
+ test(S("clbao"), "ihqrfebgad", 0, S::npos);
+ test(S("mekdn"), "ngtjfcalbseiqrphmkdo", 0, 0);
+ test(S("srdfq"), "", 1, S::npos);
+ test(S("oemth"), "ikcrq", 1, S::npos);
+ test(S("cdaih"), "dmajblfhsg", 1, 1);
+ test(S("qohtk"), "oqftjhdmkgsblacenirp", 1, 1);
+ test(S("cshmd"), "", 2, S::npos);
+ test(S("lhcdo"), "oebqi", 2, S::npos);
+ test(S("qnsoh"), "kojhpmbsfe", 2, 2);
+ test(S("pkrof"), "acbsjqogpltdkhinfrem", 2, 2);
+ test(S("fmtsp"), "", 4, S::npos);
+ test(S("khbpm"), "aobjd", 4, 2);
+ test(S("pbsji"), "pcbahntsje", 4, 3);
+ test(S("mprdj"), "fhepcrntkoagbmldqijs", 4, 4);
+ test(S("eqmpa"), "", 5, S::npos);
+ test(S("omigs"), "kocgb", 5, 3);
+ test(S("onmje"), "fbslrjiqkm", 5, 3);
+ test(S("oqmrj"), "jeidpcmalhfnqbgtrsko", 5, 4);
+ test(S("schfa"), "", 6, S::npos);
+ test(S("igdsc"), "qngpd", 6, 2);
+ test(S("brqgo"), "rodhqklgmb", 6, 4);
+ test(S("tnrph"), "thdjgafrlbkoiqcspmne", 6, 4);
+ test(S("hcjitbfapl"), "", 0, S::npos);
+ test(S("daiprenocl"), "ashjd", 0, 0);
+ test(S("litpcfdghe"), "mgojkldsqh", 0, 0);
+ test(S("aidjksrolc"), "imqnaghkfrdtlopbjesc", 0, 0);
+ test(S("qpghtfbaji"), "", 1, S::npos);
+ test(S("gfshlcmdjr"), "nadkh", 1, S::npos);
+ test(S("nkodajteqp"), "ofdrqmkebl", 1, 1);
+ test(S("gbmetiprqd"), "bdfjqgatlksriohemnpc", 1, 1);
+ test(S("crnklpmegd"), "", 5, S::npos);
+ test(S("jsbtafedoc"), "prqgn", 5, S::npos);
+ test(S("qnmodrtkeb"), "pejafmnokr", 5, 5);
+ test(S("cpebqsfmnj"), "odnqkgijrhabfmcestlp", 5, 5);
+ test(S("lmofqdhpki"), "", 9, S::npos);
+ test(S("hnefkqimca"), "rtjpa", 9, 9);
+ test(S("drtasbgmfp"), "ktsrmnqagd", 9, 7);
+ test(S("lsaijeqhtr"), "rtdhgcisbnmoaqkfpjle", 9, 9);
+ test(S("elgofjmbrq"), "", 10, S::npos);
+ test(S("mjqdgalkpc"), "dplqa", 10, 8);
+ test(S("kthqnfcerm"), "dkacjoptns", 10, 6);
+ test(S("dfsjhanorc"), "hqfimtrgnbekpdcsjalo", 10, 9);
+ test(S("eqsgalomhb"), "", 11, S::npos);
+ test(S("akiteljmoh"), "lofbc", 11, 8);
+ test(S("hlbdfreqjo"), "astoegbfpn", 11, 9);
+ test(S("taqobhlerg"), "pdgreqomsncafklhtibj", 11, 9);
+ test(S("snafbdlghrjkpqtoceim"), "", 0, S::npos);
+ test(S("aemtbrgcklhndjisfpoq"), "lbtqd", 0, S::npos);
+ test(S("pnracgfkjdiholtbqsem"), "tboimldpjh", 0, 0);
+ test(S("dicfltehbsgrmojnpkaq"), "slcerthdaiqjfnobgkpm", 0, 0);
+ test(S("jlnkraeodhcspfgbqitm"), "", 1, S::npos);
+ test(S("lhosrngtmfjikbqpcade"), "aqibs", 1, S::npos);
+ test(S("rbtaqjhgkneisldpmfoc"), "gtfblmqinc", 1, 1);
+ test(S("gpifsqlrdkbonjtmheca"), "mkqpbtdalgniorhfescj", 1, 1);
+ test(S("hdpkobnsalmcfijregtq"), "", 10, S::npos);
+ test(S("jtlshdgqaiprkbcoenfm"), "pblas", 10, 10);
+ test(S("fkdrbqltsgmcoiphneaj"), "arosdhcfme", 10, 10);
+ test(S("crsplifgtqedjohnabmk"), "blkhjeogicatqfnpdmsr", 10, 10);
+ test(S("niptglfbosehkamrdqcj"), "", 19, S::npos);
+ test(S("copqdhstbingamjfkler"), "djkqc", 19, 16);
+ test(S("mrtaefilpdsgocnhqbjk"), "lgokshjtpb", 19, 19);
+ test(S("kojatdhlcmigpbfrqnes"), "bqjhtkfepimcnsgrlado", 19, 19);
+ test(S("eaintpchlqsbdgrkjofm"), "", 20, S::npos);
+ test(S("gjnhidfsepkrtaqbmclo"), "nocfa", 20, 19);
+ test(S("spocfaktqdbiejlhngmr"), "bgtajmiedc", 20, 18);
+ test(S("rphmlekgfscndtaobiqj"), "lsckfnqgdahejiopbtmr", 20, 19);
+ test(S("liatsqdoegkmfcnbhrpj"), "", 21, S::npos);
+ test(S("binjagtfldkrspcomqeh"), "gfsrt", 21, 12);
+ test(S("latkmisecnorjbfhqpdg"), "pfsocbhjtm", 21, 17);
+ test(S("lecfratdjkhnsmqpoigb"), "tpflmdnoicjgkberhqsa", 21, 19);
}
template <class S>
-void test1()
-{
- test(S(""), "", S::npos);
- test(S(""), "laenf", S::npos);
- test(S(""), "pqlnkmbdjo", S::npos);
- test(S(""), "qkamfogpnljdcshbreti", S::npos);
- test(S("nhmko"), "", S::npos);
- test(S("lahfb"), "irkhs", 2);
- test(S("gmfhd"), "kantesmpgj", 1);
- test(S("odaft"), "oknlrstdpiqmjbaghcfe", 4);
- test(S("eolhfgpjqk"), "", S::npos);
- test(S("nbatdlmekr"), "bnrpe", 9);
- test(S("jdmciepkaq"), "jtdaefblso", 8);
- test(S("hkbgspoflt"), "oselktgbcapndfjihrmq", 9);
- test(S("gprdcokbnjhlsfmtieqa"), "", S::npos);
- test(S("qjghlnftcaismkropdeb"), "bjaht", 19);
- test(S("pnalfrdtkqcmojiesbhg"), "hjlcmgpket", 19);
- test(S("pniotcfrhqsmgdkjbael"), "htaobedqikfplcgjsmrn", 19);
+void test1() {
+ test(S(""), "", S::npos);
+ test(S(""), "laenf", S::npos);
+ test(S(""), "pqlnkmbdjo", S::npos);
+ test(S(""), "qkamfogpnljdcshbreti", S::npos);
+ test(S("nhmko"), "", S::npos);
+ test(S("lahfb"), "irkhs", 2);
+ test(S("gmfhd"), "kantesmpgj", 1);
+ test(S("odaft"), "oknlrstdpiqmjbaghcfe", 4);
+ test(S("eolhfgpjqk"), "", S::npos);
+ test(S("nbatdlmekr"), "bnrpe", 9);
+ test(S("jdmciepkaq"), "jtdaefblso", 8);
+ test(S("hkbgspoflt"), "oselktgbcapndfjihrmq", 9);
+ test(S("gprdcokbnjhlsfmtieqa"), "", S::npos);
+ test(S("qjghlnftcaismkropdeb"), "bjaht", 19);
+ test(S("pnalfrdtkqcmojiesbhg"), "hjlcmgpket", 19);
+ test(S("pniotcfrhqsmgdkjbael"), "htaobedqikfplcgjsmrn", 19);
}
-int main(int, char**)
-{
- {
+int main(int, char**) {
+ {
typedef std::string_view S;
test0<S>();
test1<S>();
- }
+ }
#if TEST_STD_VER > 11
- {
+ {
typedef std::basic_string_view<char, constexpr_char_traits<char>> SV;
- constexpr SV sv1;
- constexpr SV sv2 { "abcde", 5 };
+ constexpr SV sv1;
+ constexpr SV sv2{"abcde", 5};
- static_assert (sv1.find_last_of( "", 0) == SV::npos, "" );
- static_assert (sv1.find_last_of( "irkhs", 5) == SV::npos, "" );
- static_assert (sv2.find_last_of( "", 0) == SV::npos, "" );
- static_assert (sv2.find_last_of( "gfsrt", 5) == SV::npos, "" );
- static_assert (sv2.find_last_of( "lecar", 5) == 4, "" );
- }
+ static_assert(sv1.find_last_of("", 0) == SV::npos, "");
+ static_assert(sv1.find_last_of("irkhs", 5) == SV::npos, "");
+ static_assert(sv2.find_last_of("", 0) == SV::npos, "");
+ static_assert(sv2.find_last_of("gfsrt", 5) == SV::npos, "");
+ static_assert(sv2.find_last_of("lecar", 5) == 4, "");
+ }
#endif
return 0;
diff --git a/libcxx/test/std/strings/string.view/string.view.find/find_last_of_pointer_size_size.pass.cpp b/libcxx/test/std/strings/string.view/string.view.find/find_last_of_pointer_size_size.pass.cpp
index 85849c11195692d..baaa3618d243dab 100644
--- a/libcxx/test/std/strings/string.view/string.view.find/find_last_of_pointer_size_size.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.find/find_last_of_pointer_size_size.pass.cpp
@@ -19,378 +19,374 @@
#include "constexpr_char_traits.h"
template <class S>
-void
-test(const S& s, const typename S::value_type* str, typename S::size_type pos,
- typename S::size_type n, typename S::size_type x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.find_last_of(str, pos, n));
- assert(s.find_last_of(str, pos, n) == x);
- if (x != S::npos)
- assert(x <= pos && x < s.size());
+void test(const S& s,
+ const typename S::value_type* str,
+ typename S::size_type pos,
+ typename S::size_type n,
+ typename S::size_type x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.find_last_of(str, pos, n));
+ assert(s.find_last_of(str, pos, n) == x);
+ if (x != S::npos)
+ assert(x <= pos && x < s.size());
}
template <class S>
-void test0()
-{
- test(S(""), "", 0, 0, S::npos);
- test(S(""), "irkhs", 0, 0, S::npos);
- test(S(""), "kante", 0, 1, S::npos);
- test(S(""), "oknlr", 0, 2, S::npos);
- test(S(""), "pcdro", 0, 4, S::npos);
- test(S(""), "bnrpe", 0, 5, S::npos);
- test(S(""), "jtdaefblso", 0, 0, S::npos);
- test(S(""), "oselktgbca", 0, 1, S::npos);
- test(S(""), "eqgaplhckj", 0, 5, S::npos);
- test(S(""), "bjahtcmnlp", 0, 9, S::npos);
- test(S(""), "hjlcmgpket", 0, 10, S::npos);
- test(S(""), "htaobedqikfplcgjsmrn", 0, 0, S::npos);
- test(S(""), "hpqiarojkcdlsgnmfetb", 0, 1, S::npos);
- test(S(""), "dfkaprhjloqetcsimnbg", 0, 10, S::npos);
- test(S(""), "ihqrfebgadntlpmjksoc", 0, 19, S::npos);
- test(S(""), "ngtjfcalbseiqrphmkdo", 0, 20, S::npos);
- test(S(""), "", 1, 0, S::npos);
- test(S(""), "lbtqd", 1, 0, S::npos);
- test(S(""), "tboim", 1, 1, S::npos);
- test(S(""), "slcer", 1, 2, S::npos);
- test(S(""), "cbjfs", 1, 4, S::npos);
- test(S(""), "aqibs", 1, 5, S::npos);
- test(S(""), "gtfblmqinc", 1, 0, S::npos);
- test(S(""), "mkqpbtdalg", 1, 1, S::npos);
- test(S(""), "kphatlimcd", 1, 5, S::npos);
- test(S(""), "pblasqogic", 1, 9, S::npos);
- test(S(""), "arosdhcfme", 1, 10, S::npos);
- test(S(""), "blkhjeogicatqfnpdmsr", 1, 0, S::npos);
- test(S(""), "bmhineprjcoadgstflqk", 1, 1, S::npos);
- test(S(""), "djkqcmetslnghpbarfoi", 1, 10, S::npos);
- test(S(""), "lgokshjtpbemarcdqnfi", 1, 19, S::npos);
- test(S(""), "bqjhtkfepimcnsgrlado", 1, 20, S::npos);
- test(S("eaint"), "", 0, 0, S::npos);
- test(S("binja"), "gfsrt", 0, 0, S::npos);
- test(S("latkm"), "pfsoc", 0, 1, S::npos);
- test(S("lecfr"), "tpflm", 0, 2, S::npos);
- test(S("eqkst"), "sgkec", 0, 4, 0);
- test(S("cdafr"), "romds", 0, 5, S::npos);
- test(S("prbhe"), "qhjistlgmr", 0, 0, S::npos);
- test(S("lbisk"), "pedfirsglo", 0, 1, S::npos);
- test(S("hrlpd"), "aqcoslgrmk", 0, 5, S::npos);
- test(S("ehmja"), "dabckmepqj", 0, 9, 0);
- test(S("mhqgd"), "pqscrjthli", 0, 10, S::npos);
- test(S("tgklq"), "kfphdcsjqmobliagtren", 0, 0, S::npos);
- test(S("bocjs"), "rokpefncljibsdhqtagm", 0, 1, S::npos);
- test(S("grbsd"), "afionmkphlebtcjqsgrd", 0, 10, S::npos);
- test(S("ofjqr"), "aenmqplidhkofrjbctsg", 0, 19, 0);
- test(S("btlfi"), "osjmbtcadhiklegrpqnf", 0, 20, 0);
- test(S("clrgb"), "", 1, 0, S::npos);
- test(S("tjmek"), "osmia", 1, 0, S::npos);
- test(S("bgstp"), "ckonl", 1, 1, S::npos);
- test(S("hstrk"), "ilcaj", 1, 2, S::npos);
- test(S("kmspj"), "lasiq", 1, 4, S::npos);
- test(S("tjboh"), "kfqmr", 1, 5, S::npos);
- test(S("ilbcj"), "klnitfaobg", 1, 0, S::npos);
- test(S("jkngf"), "gjhmdlqikp", 1, 1, S::npos);
- test(S("gfcql"), "skbgtahqej", 1, 5, 0);
- test(S("dqtlg"), "bjsdgtlpkf", 1, 9, 0);
- test(S("bthpg"), "bjgfmnlkio", 1, 10, 0);
- test(S("dgsnq"), "lbhepotfsjdqigcnamkr", 1, 0, S::npos);
- test(S("rmfhp"), "tebangckmpsrqdlfojhi", 1, 1, S::npos);
- test(S("jfdam"), "joflqbdkhtegimscpanr", 1, 10, 1);
- test(S("edapb"), "adpmcohetfbsrjinlqkg", 1, 19, 1);
- test(S("brfsm"), "iacldqjpfnogbsrhmetk", 1, 20, 1);
- test(S("ndrhl"), "", 2, 0, S::npos);
- test(S("mrecp"), "otkgb", 2, 0, S::npos);
- test(S("qlasf"), "cqsjl", 2, 1, S::npos);
- test(S("smaqd"), "dpifl", 2, 2, S::npos);
- test(S("hjeni"), "oapht", 2, 4, 0);
- test(S("ocmfj"), "cifts", 2, 5, 1);
- test(S("hmftq"), "nmsckbgalo", 2, 0, S::npos);
- test(S("fklad"), "tpksqhamle", 2, 1, S::npos);
- test(S("dirnm"), "tpdrchmkji", 2, 5, 2);
- test(S("hrgdc"), "ijagfkblst", 2, 9, 2);
- test(S("ifakg"), "kpocsignjb", 2, 10, 0);
- test(S("ebrgd"), "pecqtkjsnbdrialgmohf", 2, 0, S::npos);
- test(S("rcjml"), "aiortphfcmkjebgsndql", 2, 1, S::npos);
- test(S("peqmt"), "sdbkeamglhipojqftrcn", 2, 10, 1);
- test(S("frehn"), "ljqncehgmfktroapidbs", 2, 19, 2);
- test(S("tqolf"), "rtcfodilamkbenjghqps", 2, 20, 2);
- test(S("cjgao"), "", 4, 0, S::npos);
- test(S("kjplq"), "mabns", 4, 0, S::npos);
- test(S("herni"), "bdnrp", 4, 1, S::npos);
- test(S("tadrb"), "scidp", 4, 2, S::npos);
- test(S("pkfeo"), "agbjl", 4, 4, S::npos);
- test(S("hoser"), "jfmpr", 4, 5, 4);
- test(S("kgrsp"), "rbpefghsmj", 4, 0, S::npos);
- test(S("pgejb"), "apsfntdoqc", 4, 1, S::npos);
- test(S("thlnq"), "ndkjeisgcl", 4, 5, 3);
- test(S("nbmit"), "rnfpqatdeo", 4, 9, 4);
- test(S("jgmib"), "bntjlqrfik", 4, 10, 4);
- test(S("ncrfj"), "kcrtmpolnaqejghsfdbi", 4, 0, S::npos);
- test(S("ncsik"), "lobheanpkmqidsrtcfgj", 4, 1, S::npos);
- test(S("sgbfh"), "athdkljcnreqbgpmisof", 4, 10, 4);
- test(S("dktbn"), "qkdmjialrscpbhefgont", 4, 19, 4);
- test(S("fthqm"), "dmasojntqleribkgfchp", 4, 20, 4);
- test(S("klopi"), "", 5, 0, S::npos);
- test(S("dajhn"), "psthd", 5, 0, S::npos);
- test(S("jbgno"), "rpmjd", 5, 1, S::npos);
- test(S("hkjae"), "dfsmk", 5, 2, S::npos);
+void test0() {
+ test(S(""), "", 0, 0, S::npos);
+ test(S(""), "irkhs", 0, 0, S::npos);
+ test(S(""), "kante", 0, 1, S::npos);
+ test(S(""), "oknlr", 0, 2, S::npos);
+ test(S(""), "pcdro", 0, 4, S::npos);
+ test(S(""), "bnrpe", 0, 5, S::npos);
+ test(S(""), "jtdaefblso", 0, 0, S::npos);
+ test(S(""), "oselktgbca", 0, 1, S::npos);
+ test(S(""), "eqgaplhckj", 0, 5, S::npos);
+ test(S(""), "bjahtcmnlp", 0, 9, S::npos);
+ test(S(""), "hjlcmgpket", 0, 10, S::npos);
+ test(S(""), "htaobedqikfplcgjsmrn", 0, 0, S::npos);
+ test(S(""), "hpqiarojkcdlsgnmfetb", 0, 1, S::npos);
+ test(S(""), "dfkaprhjloqetcsimnbg", 0, 10, S::npos);
+ test(S(""), "ihqrfebgadntlpmjksoc", 0, 19, S::npos);
+ test(S(""), "ngtjfcalbseiqrphmkdo", 0, 20, S::npos);
+ test(S(""), "", 1, 0, S::npos);
+ test(S(""), "lbtqd", 1, 0, S::npos);
+ test(S(""), "tboim", 1, 1, S::npos);
+ test(S(""), "slcer", 1, 2, S::npos);
+ test(S(""), "cbjfs", 1, 4, S::npos);
+ test(S(""), "aqibs", 1, 5, S::npos);
+ test(S(""), "gtfblmqinc", 1, 0, S::npos);
+ test(S(""), "mkqpbtdalg", 1, 1, S::npos);
+ test(S(""), "kphatlimcd", 1, 5, S::npos);
+ test(S(""), "pblasqogic", 1, 9, S::npos);
+ test(S(""), "arosdhcfme", 1, 10, S::npos);
+ test(S(""), "blkhjeogicatqfnpdmsr", 1, 0, S::npos);
+ test(S(""), "bmhineprjcoadgstflqk", 1, 1, S::npos);
+ test(S(""), "djkqcmetslnghpbarfoi", 1, 10, S::npos);
+ test(S(""), "lgokshjtpbemarcdqnfi", 1, 19, S::npos);
+ test(S(""), "bqjhtkfepimcnsgrlado", 1, 20, S::npos);
+ test(S("eaint"), "", 0, 0, S::npos);
+ test(S("binja"), "gfsrt", 0, 0, S::npos);
+ test(S("latkm"), "pfsoc", 0, 1, S::npos);
+ test(S("lecfr"), "tpflm", 0, 2, S::npos);
+ test(S("eqkst"), "sgkec", 0, 4, 0);
+ test(S("cdafr"), "romds", 0, 5, S::npos);
+ test(S("prbhe"), "qhjistlgmr", 0, 0, S::npos);
+ test(S("lbisk"), "pedfirsglo", 0, 1, S::npos);
+ test(S("hrlpd"), "aqcoslgrmk", 0, 5, S::npos);
+ test(S("ehmja"), "dabckmepqj", 0, 9, 0);
+ test(S("mhqgd"), "pqscrjthli", 0, 10, S::npos);
+ test(S("tgklq"), "kfphdcsjqmobliagtren", 0, 0, S::npos);
+ test(S("bocjs"), "rokpefncljibsdhqtagm", 0, 1, S::npos);
+ test(S("grbsd"), "afionmkphlebtcjqsgrd", 0, 10, S::npos);
+ test(S("ofjqr"), "aenmqplidhkofrjbctsg", 0, 19, 0);
+ test(S("btlfi"), "osjmbtcadhiklegrpqnf", 0, 20, 0);
+ test(S("clrgb"), "", 1, 0, S::npos);
+ test(S("tjmek"), "osmia", 1, 0, S::npos);
+ test(S("bgstp"), "ckonl", 1, 1, S::npos);
+ test(S("hstrk"), "ilcaj", 1, 2, S::npos);
+ test(S("kmspj"), "lasiq", 1, 4, S::npos);
+ test(S("tjboh"), "kfqmr", 1, 5, S::npos);
+ test(S("ilbcj"), "klnitfaobg", 1, 0, S::npos);
+ test(S("jkngf"), "gjhmdlqikp", 1, 1, S::npos);
+ test(S("gfcql"), "skbgtahqej", 1, 5, 0);
+ test(S("dqtlg"), "bjsdgtlpkf", 1, 9, 0);
+ test(S("bthpg"), "bjgfmnlkio", 1, 10, 0);
+ test(S("dgsnq"), "lbhepotfsjdqigcnamkr", 1, 0, S::npos);
+ test(S("rmfhp"), "tebangckmpsrqdlfojhi", 1, 1, S::npos);
+ test(S("jfdam"), "joflqbdkhtegimscpanr", 1, 10, 1);
+ test(S("edapb"), "adpmcohetfbsrjinlqkg", 1, 19, 1);
+ test(S("brfsm"), "iacldqjpfnogbsrhmetk", 1, 20, 1);
+ test(S("ndrhl"), "", 2, 0, S::npos);
+ test(S("mrecp"), "otkgb", 2, 0, S::npos);
+ test(S("qlasf"), "cqsjl", 2, 1, S::npos);
+ test(S("smaqd"), "dpifl", 2, 2, S::npos);
+ test(S("hjeni"), "oapht", 2, 4, 0);
+ test(S("ocmfj"), "cifts", 2, 5, 1);
+ test(S("hmftq"), "nmsckbgalo", 2, 0, S::npos);
+ test(S("fklad"), "tpksqhamle", 2, 1, S::npos);
+ test(S("dirnm"), "tpdrchmkji", 2, 5, 2);
+ test(S("hrgdc"), "ijagfkblst", 2, 9, 2);
+ test(S("ifakg"), "kpocsignjb", 2, 10, 0);
+ test(S("ebrgd"), "pecqtkjsnbdrialgmohf", 2, 0, S::npos);
+ test(S("rcjml"), "aiortphfcmkjebgsndql", 2, 1, S::npos);
+ test(S("peqmt"), "sdbkeamglhipojqftrcn", 2, 10, 1);
+ test(S("frehn"), "ljqncehgmfktroapidbs", 2, 19, 2);
+ test(S("tqolf"), "rtcfodilamkbenjghqps", 2, 20, 2);
+ test(S("cjgao"), "", 4, 0, S::npos);
+ test(S("kjplq"), "mabns", 4, 0, S::npos);
+ test(S("herni"), "bdnrp", 4, 1, S::npos);
+ test(S("tadrb"), "scidp", 4, 2, S::npos);
+ test(S("pkfeo"), "agbjl", 4, 4, S::npos);
+ test(S("hoser"), "jfmpr", 4, 5, 4);
+ test(S("kgrsp"), "rbpefghsmj", 4, 0, S::npos);
+ test(S("pgejb"), "apsfntdoqc", 4, 1, S::npos);
+ test(S("thlnq"), "ndkjeisgcl", 4, 5, 3);
+ test(S("nbmit"), "rnfpqatdeo", 4, 9, 4);
+ test(S("jgmib"), "bntjlqrfik", 4, 10, 4);
+ test(S("ncrfj"), "kcrtmpolnaqejghsfdbi", 4, 0, S::npos);
+ test(S("ncsik"), "lobheanpkmqidsrtcfgj", 4, 1, S::npos);
+ test(S("sgbfh"), "athdkljcnreqbgpmisof", 4, 10, 4);
+ test(S("dktbn"), "qkdmjialrscpbhefgont", 4, 19, 4);
+ test(S("fthqm"), "dmasojntqleribkgfchp", 4, 20, 4);
+ test(S("klopi"), "", 5, 0, S::npos);
+ test(S("dajhn"), "psthd", 5, 0, S::npos);
+ test(S("jbgno"), "rpmjd", 5, 1, S::npos);
+ test(S("hkjae"), "dfsmk", 5, 2, S::npos);
}
template <class S>
-void test1()
-{
- test(S("gbhqo"), "skqne", 5, 4, 3);
- test(S("ktdor"), "kipnf", 5, 5, 0);
- test(S("ldprn"), "hmrnqdgifl", 5, 0, S::npos);
- test(S("egmjk"), "fsmjcdairn", 5, 1, S::npos);
- test(S("armql"), "pcdgltbrfj", 5, 5, 4);
- test(S("cdhjo"), "aekfctpirg", 5, 9, 0);
- test(S("jcons"), "ledihrsgpf", 5, 10, 4);
- test(S("cbrkp"), "mqcklahsbtirgopefndj", 5, 0, S::npos);
- test(S("fhgna"), "kmlthaoqgecrnpdbjfis", 5, 1, S::npos);
- test(S("ejfcd"), "sfhbamcdptojlkrenqgi", 5, 10, 4);
- test(S("kqjhe"), "pbniofmcedrkhlstgaqj", 5, 19, 4);
- test(S("pbdjl"), "mongjratcskbhqiepfdl", 5, 20, 4);
- test(S("gajqn"), "", 6, 0, S::npos);
- test(S("stedk"), "hrnat", 6, 0, S::npos);
- test(S("tjkaf"), "gsqdt", 6, 1, S::npos);
- test(S("dthpe"), "bspkd", 6, 2, S::npos);
- test(S("klhde"), "ohcmb", 6, 4, 2);
- test(S("bhlki"), "heatr", 6, 5, 1);
- test(S("lqmoh"), "pmblckedfn", 6, 0, S::npos);
- test(S("mtqin"), "aceqmsrbik", 6, 1, S::npos);
- test(S("dpqbr"), "lmbtdehjrn", 6, 5, 3);
- test(S("kdhmo"), "teqmcrlgib", 6, 9, 3);
- test(S("jblqp"), "njolbmspac", 6, 10, 4);
- test(S("qmjgl"), "pofnhidklamecrbqjgst", 6, 0, S::npos);
- test(S("rothp"), "jbhckmtgrqnosafedpli", 6, 1, S::npos);
- test(S("ghknq"), "dobntpmqklicsahgjerf", 6, 10, 4);
- test(S("eopfi"), "tpdshainjkbfoemlrgcq", 6, 19, 4);
- test(S("dsnmg"), "oldpfgeakrnitscbjmqh", 6, 20, 4);
- test(S("jnkrfhotgl"), "", 0, 0, S::npos);
- test(S("dltjfngbko"), "rqegt", 0, 0, S::npos);
- test(S("bmjlpkiqde"), "dashm", 0, 1, S::npos);
- test(S("skrflobnqm"), "jqirk", 0, 2, S::npos);
- test(S("jkpldtshrm"), "rckeg", 0, 4, S::npos);
- test(S("ghasdbnjqo"), "jscie", 0, 5, S::npos);
- test(S("igrkhpbqjt"), "efsphndliq", 0, 0, S::npos);
- test(S("ikthdgcamf"), "gdicosleja", 0, 1, S::npos);
- test(S("pcofgeniam"), "qcpjibosfl", 0, 5, 0);
- test(S("rlfjgesqhc"), "lrhmefnjcq", 0, 9, 0);
- test(S("itphbqsker"), "dtablcrseo", 0, 10, S::npos);
- test(S("skjafcirqm"), "apckjsftedbhgomrnilq", 0, 0, S::npos);
- test(S("tcqomarsfd"), "pcbrgflehjtiadnsokqm", 0, 1, S::npos);
- test(S("rocfeldqpk"), "nsiadegjklhobrmtqcpf", 0, 10, S::npos);
- test(S("cfpegndlkt"), "cpmajdqnolikhgsbretf", 0, 19, 0);
- test(S("fqbtnkeasj"), "jcflkntmgiqrphdosaeb", 0, 20, 0);
- test(S("shbcqnmoar"), "", 1, 0, S::npos);
- test(S("bdoshlmfin"), "ontrs", 1, 0, S::npos);
- test(S("khfrebnsgq"), "pfkna", 1, 1, S::npos);
- test(S("getcrsaoji"), "ekosa", 1, 2, 1);
- test(S("fjiknedcpq"), "anqhk", 1, 4, S::npos);
- test(S("tkejgnafrm"), "jekca", 1, 5, 1);
- test(S("jnakolqrde"), "ikemsjgacf", 1, 0, S::npos);
- test(S("lcjptsmgbe"), "arolgsjkhm", 1, 1, S::npos);
- test(S("itfsmcjorl"), "oftkbldhre", 1, 5, 1);
- test(S("omchkfrjea"), "gbkqdoeftl", 1, 9, 0);
- test(S("cigfqkated"), "sqcflrgtim", 1, 10, 1);
- test(S("tscenjikml"), "fmhbkislrjdpanogqcet", 1, 0, S::npos);
- test(S("qcpaemsinf"), "rnioadktqlgpbcjsmhef", 1, 1, S::npos);
- test(S("gltkojeipd"), "oakgtnldpsefihqmjcbr", 1, 10, 1);
- test(S("qistfrgnmp"), "gbnaelosidmcjqktfhpr", 1, 19, 1);
- test(S("bdnpfcqaem"), "akbripjhlosndcmqgfet", 1, 20, 1);
- test(S("ectnhskflp"), "", 5, 0, S::npos);
- test(S("fgtianblpq"), "pijag", 5, 0, S::npos);
- test(S("mfeqklirnh"), "jrckd", 5, 1, S::npos);
- test(S("astedncjhk"), "qcloh", 5, 2, S::npos);
- test(S("fhlqgcajbr"), "thlmp", 5, 4, 2);
- test(S("epfhocmdng"), "qidmo", 5, 5, 4);
- test(S("apcnsibger"), "lnegpsjqrd", 5, 0, S::npos);
- test(S("aqkocrbign"), "rjqdablmfs", 5, 1, 5);
- test(S("ijsmdtqgce"), "enkgpbsjaq", 5, 5, S::npos);
- test(S("clobgsrken"), "kdsgoaijfh", 5, 9, 5);
- test(S("jbhcfposld"), "trfqgmckbe", 5, 10, 4);
- test(S("oqnpblhide"), "igetsracjfkdnpoblhqm", 5, 0, S::npos);
- test(S("lroeasctif"), "nqctfaogirshlekbdjpm", 5, 1, S::npos);
- test(S("bpjlgmiedh"), "csehfgomljdqinbartkp", 5, 10, 5);
- test(S("pamkeoidrj"), "qahoegcmplkfsjbdnitr", 5, 19, 5);
- test(S("espogqbthk"), "dpteiajrqmsognhlfbkc", 5, 20, 5);
- test(S("shoiedtcjb"), "", 9, 0, S::npos);
- test(S("ebcinjgads"), "tqbnh", 9, 0, S::npos);
- test(S("dqmregkcfl"), "akmle", 9, 1, S::npos);
- test(S("ngcrieqajf"), "iqfkm", 9, 2, 6);
- test(S("qosmilgnjb"), "tqjsr", 9, 4, 8);
- test(S("ikabsjtdfl"), "jplqg", 9, 5, 9);
- test(S("ersmicafdh"), "oilnrbcgtj", 9, 0, S::npos);
- test(S("fdnplotmgh"), "morkglpesn", 9, 1, 7);
- test(S("fdbicojerm"), "dmicerngat", 9, 5, 9);
- test(S("mbtafndjcq"), "radgeskbtc", 9, 9, 6);
- test(S("mlenkpfdtc"), "ljikprsmqo", 9, 10, 5);
- test(S("ahlcifdqgs"), "trqihkcgsjamfdbolnpe", 9, 0, S::npos);
- test(S("bgjemaltks"), "lqmthbsrekajgnofcipd", 9, 1, 6);
- test(S("pdhslbqrfc"), "jtalmedribkgqsopcnfh", 9, 10, 7);
- test(S("dirhtsnjkc"), "spqfoiclmtagejbndkrh", 9, 19, 9);
- test(S("dlroktbcja"), "nmotklspigjrdhcfaebq", 9, 20, 9);
- test(S("ncjpmaekbs"), "", 10, 0, S::npos);
- test(S("hlbosgmrak"), "hpmsd", 10, 0, S::npos);
- test(S("pqfhsgilen"), "qnpor", 10, 1, 1);
- test(S("gqtjsbdckh"), "otdma", 10, 2, 2);
- test(S("cfkqpjlegi"), "efhjg", 10, 4, 7);
- test(S("beanrfodgj"), "odpte", 10, 5, 7);
- test(S("adtkqpbjfi"), "bctdgfmolr", 10, 0, S::npos);
- test(S("iomkfthagj"), "oaklidrbqg", 10, 1, 1);
+void test1() {
+ test(S("gbhqo"), "skqne", 5, 4, 3);
+ test(S("ktdor"), "kipnf", 5, 5, 0);
+ test(S("ldprn"), "hmrnqdgifl", 5, 0, S::npos);
+ test(S("egmjk"), "fsmjcdairn", 5, 1, S::npos);
+ test(S("armql"), "pcdgltbrfj", 5, 5, 4);
+ test(S("cdhjo"), "aekfctpirg", 5, 9, 0);
+ test(S("jcons"), "ledihrsgpf", 5, 10, 4);
+ test(S("cbrkp"), "mqcklahsbtirgopefndj", 5, 0, S::npos);
+ test(S("fhgna"), "kmlthaoqgecrnpdbjfis", 5, 1, S::npos);
+ test(S("ejfcd"), "sfhbamcdptojlkrenqgi", 5, 10, 4);
+ test(S("kqjhe"), "pbniofmcedrkhlstgaqj", 5, 19, 4);
+ test(S("pbdjl"), "mongjratcskbhqiepfdl", 5, 20, 4);
+ test(S("gajqn"), "", 6, 0, S::npos);
+ test(S("stedk"), "hrnat", 6, 0, S::npos);
+ test(S("tjkaf"), "gsqdt", 6, 1, S::npos);
+ test(S("dthpe"), "bspkd", 6, 2, S::npos);
+ test(S("klhde"), "ohcmb", 6, 4, 2);
+ test(S("bhlki"), "heatr", 6, 5, 1);
+ test(S("lqmoh"), "pmblckedfn", 6, 0, S::npos);
+ test(S("mtqin"), "aceqmsrbik", 6, 1, S::npos);
+ test(S("dpqbr"), "lmbtdehjrn", 6, 5, 3);
+ test(S("kdhmo"), "teqmcrlgib", 6, 9, 3);
+ test(S("jblqp"), "njolbmspac", 6, 10, 4);
+ test(S("qmjgl"), "pofnhidklamecrbqjgst", 6, 0, S::npos);
+ test(S("rothp"), "jbhckmtgrqnosafedpli", 6, 1, S::npos);
+ test(S("ghknq"), "dobntpmqklicsahgjerf", 6, 10, 4);
+ test(S("eopfi"), "tpdshainjkbfoemlrgcq", 6, 19, 4);
+ test(S("dsnmg"), "oldpfgeakrnitscbjmqh", 6, 20, 4);
+ test(S("jnkrfhotgl"), "", 0, 0, S::npos);
+ test(S("dltjfngbko"), "rqegt", 0, 0, S::npos);
+ test(S("bmjlpkiqde"), "dashm", 0, 1, S::npos);
+ test(S("skrflobnqm"), "jqirk", 0, 2, S::npos);
+ test(S("jkpldtshrm"), "rckeg", 0, 4, S::npos);
+ test(S("ghasdbnjqo"), "jscie", 0, 5, S::npos);
+ test(S("igrkhpbqjt"), "efsphndliq", 0, 0, S::npos);
+ test(S("ikthdgcamf"), "gdicosleja", 0, 1, S::npos);
+ test(S("pcofgeniam"), "qcpjibosfl", 0, 5, 0);
+ test(S("rlfjgesqhc"), "lrhmefnjcq", 0, 9, 0);
+ test(S("itphbqsker"), "dtablcrseo", 0, 10, S::npos);
+ test(S("skjafcirqm"), "apckjsftedbhgomrnilq", 0, 0, S::npos);
+ test(S("tcqomarsfd"), "pcbrgflehjtiadnsokqm", 0, 1, S::npos);
+ test(S("rocfeldqpk"), "nsiadegjklhobrmtqcpf", 0, 10, S::npos);
+ test(S("cfpegndlkt"), "cpmajdqnolikhgsbretf", 0, 19, 0);
+ test(S("fqbtnkeasj"), "jcflkntmgiqrphdosaeb", 0, 20, 0);
+ test(S("shbcqnmoar"), "", 1, 0, S::npos);
+ test(S("bdoshlmfin"), "ontrs", 1, 0, S::npos);
+ test(S("khfrebnsgq"), "pfkna", 1, 1, S::npos);
+ test(S("getcrsaoji"), "ekosa", 1, 2, 1);
+ test(S("fjiknedcpq"), "anqhk", 1, 4, S::npos);
+ test(S("tkejgnafrm"), "jekca", 1, 5, 1);
+ test(S("jnakolqrde"), "ikemsjgacf", 1, 0, S::npos);
+ test(S("lcjptsmgbe"), "arolgsjkhm", 1, 1, S::npos);
+ test(S("itfsmcjorl"), "oftkbldhre", 1, 5, 1);
+ test(S("omchkfrjea"), "gbkqdoeftl", 1, 9, 0);
+ test(S("cigfqkated"), "sqcflrgtim", 1, 10, 1);
+ test(S("tscenjikml"), "fmhbkislrjdpanogqcet", 1, 0, S::npos);
+ test(S("qcpaemsinf"), "rnioadktqlgpbcjsmhef", 1, 1, S::npos);
+ test(S("gltkojeipd"), "oakgtnldpsefihqmjcbr", 1, 10, 1);
+ test(S("qistfrgnmp"), "gbnaelosidmcjqktfhpr", 1, 19, 1);
+ test(S("bdnpfcqaem"), "akbripjhlosndcmqgfet", 1, 20, 1);
+ test(S("ectnhskflp"), "", 5, 0, S::npos);
+ test(S("fgtianblpq"), "pijag", 5, 0, S::npos);
+ test(S("mfeqklirnh"), "jrckd", 5, 1, S::npos);
+ test(S("astedncjhk"), "qcloh", 5, 2, S::npos);
+ test(S("fhlqgcajbr"), "thlmp", 5, 4, 2);
+ test(S("epfhocmdng"), "qidmo", 5, 5, 4);
+ test(S("apcnsibger"), "lnegpsjqrd", 5, 0, S::npos);
+ test(S("aqkocrbign"), "rjqdablmfs", 5, 1, 5);
+ test(S("ijsmdtqgce"), "enkgpbsjaq", 5, 5, S::npos);
+ test(S("clobgsrken"), "kdsgoaijfh", 5, 9, 5);
+ test(S("jbhcfposld"), "trfqgmckbe", 5, 10, 4);
+ test(S("oqnpblhide"), "igetsracjfkdnpoblhqm", 5, 0, S::npos);
+ test(S("lroeasctif"), "nqctfaogirshlekbdjpm", 5, 1, S::npos);
+ test(S("bpjlgmiedh"), "csehfgomljdqinbartkp", 5, 10, 5);
+ test(S("pamkeoidrj"), "qahoegcmplkfsjbdnitr", 5, 19, 5);
+ test(S("espogqbthk"), "dpteiajrqmsognhlfbkc", 5, 20, 5);
+ test(S("shoiedtcjb"), "", 9, 0, S::npos);
+ test(S("ebcinjgads"), "tqbnh", 9, 0, S::npos);
+ test(S("dqmregkcfl"), "akmle", 9, 1, S::npos);
+ test(S("ngcrieqajf"), "iqfkm", 9, 2, 6);
+ test(S("qosmilgnjb"), "tqjsr", 9, 4, 8);
+ test(S("ikabsjtdfl"), "jplqg", 9, 5, 9);
+ test(S("ersmicafdh"), "oilnrbcgtj", 9, 0, S::npos);
+ test(S("fdnplotmgh"), "morkglpesn", 9, 1, 7);
+ test(S("fdbicojerm"), "dmicerngat", 9, 5, 9);
+ test(S("mbtafndjcq"), "radgeskbtc", 9, 9, 6);
+ test(S("mlenkpfdtc"), "ljikprsmqo", 9, 10, 5);
+ test(S("ahlcifdqgs"), "trqihkcgsjamfdbolnpe", 9, 0, S::npos);
+ test(S("bgjemaltks"), "lqmthbsrekajgnofcipd", 9, 1, 6);
+ test(S("pdhslbqrfc"), "jtalmedribkgqsopcnfh", 9, 10, 7);
+ test(S("dirhtsnjkc"), "spqfoiclmtagejbndkrh", 9, 19, 9);
+ test(S("dlroktbcja"), "nmotklspigjrdhcfaebq", 9, 20, 9);
+ test(S("ncjpmaekbs"), "", 10, 0, S::npos);
+ test(S("hlbosgmrak"), "hpmsd", 10, 0, S::npos);
+ test(S("pqfhsgilen"), "qnpor", 10, 1, 1);
+ test(S("gqtjsbdckh"), "otdma", 10, 2, 2);
+ test(S("cfkqpjlegi"), "efhjg", 10, 4, 7);
+ test(S("beanrfodgj"), "odpte", 10, 5, 7);
+ test(S("adtkqpbjfi"), "bctdgfmolr", 10, 0, S::npos);
+ test(S("iomkfthagj"), "oaklidrbqg", 10, 1, 1);
}
template <class S>
-void test2()
-{
- test(S("sdpcilonqj"), "dnjfsagktr", 10, 5, 9);
- test(S("gtfbdkqeml"), "nejaktmiqg", 10, 9, 8);
- test(S("bmeqgcdorj"), "pjqonlebsf", 10, 10, 9);
- test(S("etqlcanmob"), "dshmnbtolcjepgaikfqr", 10, 0, S::npos);
- test(S("roqmkbdtia"), "iogfhpabtjkqlrnemcds", 10, 1, 8);
- test(S("kadsithljf"), "ngridfabjsecpqltkmoh", 10, 10, 9);
- test(S("sgtkpbfdmh"), "athmknplcgofrqejsdib", 10, 19, 9);
- test(S("qgmetnabkl"), "ldobhmqcafnjtkeisgrp", 10, 20, 9);
- test(S("cqjohampgd"), "", 11, 0, S::npos);
- test(S("hobitmpsan"), "aocjb", 11, 0, S::npos);
- test(S("tjehkpsalm"), "jbrnk", 11, 1, 1);
- test(S("ngfbojitcl"), "tqedg", 11, 2, 7);
- test(S("rcfkdbhgjo"), "nqskp", 11, 4, 3);
- test(S("qghptonrea"), "eaqkl", 11, 5, 9);
- test(S("hnprfgqjdl"), "reaoicljqm", 11, 0, S::npos);
- test(S("hlmgabenti"), "lsftgajqpm", 11, 1, 1);
- test(S("ofcjanmrbs"), "rlpfogmits", 11, 5, 7);
- test(S("jqedtkornm"), "shkncmiaqj", 11, 9, 9);
- test(S("rfedlasjmg"), "fpnatrhqgs", 11, 10, 9);
- test(S("talpqjsgkm"), "sjclemqhnpdbgikarfot", 11, 0, S::npos);
- test(S("lrkcbtqpie"), "otcmedjikgsfnqbrhpla", 11, 1, S::npos);
- test(S("cipogdskjf"), "bonsaefdqiprkhlgtjcm", 11, 10, 9);
- test(S("nqedcojahi"), "egpscmahijlfnkrodqtb", 11, 19, 9);
- test(S("hefnrkmctj"), "kmqbfepjthgilscrndoa", 11, 20, 9);
- test(S("atqirnmekfjolhpdsgcb"), "", 0, 0, S::npos);
- test(S("echfkmlpribjnqsaogtd"), "prboq", 0, 0, S::npos);
- test(S("qnhiftdgcleajbpkrosm"), "fjcqh", 0, 1, S::npos);
- test(S("chamfknorbedjitgslpq"), "fmosa", 0, 2, S::npos);
- test(S("njhqpibfmtlkaecdrgso"), "qdbok", 0, 4, S::npos);
- test(S("ebnghfsqkprmdcljoiat"), "amslg", 0, 5, S::npos);
- test(S("letjomsgihfrpqbkancd"), "smpltjneqb", 0, 0, S::npos);
- test(S("nblgoipcrqeaktshjdmf"), "flitskrnge", 0, 1, S::npos);
- test(S("cehkbngtjoiflqapsmrd"), "pgqihmlbef", 0, 5, S::npos);
- test(S("mignapfoklbhcqjetdrs"), "cfpdqjtgsb", 0, 9, S::npos);
- test(S("ceatbhlsqjgpnokfrmdi"), "htpsiaflom", 0, 10, S::npos);
- test(S("ocihkjgrdelpfnmastqb"), "kpjfiaceghsrdtlbnomq", 0, 0, S::npos);
- test(S("noelgschdtbrjfmiqkap"), "qhtbomidljgafneksprc", 0, 1, S::npos);
- test(S("dkclqfombepritjnghas"), "nhtjobkcefldimpsaqgr", 0, 10, S::npos);
- test(S("miklnresdgbhqcojftap"), "prabcjfqnoeskilmtgdh", 0, 19, 0);
- test(S("htbcigojaqmdkfrnlsep"), "dtrgmchilkasqoebfpjn", 0, 20, 0);
- test(S("febhmqtjanokscdirpgl"), "", 1, 0, S::npos);
- test(S("loakbsqjpcrdhftniegm"), "sqome", 1, 0, S::npos);
- test(S("reagphsqflbitdcjmkno"), "smfte", 1, 1, S::npos);
- test(S("jitlfrqemsdhkopncabg"), "ciboh", 1, 2, 1);
- test(S("mhtaepscdnrjqgbkifol"), "haois", 1, 4, 1);
- test(S("tocesrfmnglpbjihqadk"), "abfki", 1, 5, S::npos);
- test(S("lpfmctjrhdagneskbqoi"), "frdkocntmq", 1, 0, S::npos);
- test(S("lsmqaepkdhncirbtjfgo"), "oasbpedlnr", 1, 1, S::npos);
- test(S("epoiqmtldrabnkjhcfsg"), "kltqmhgand", 1, 5, S::npos);
- test(S("emgasrilpknqojhtbdcf"), "gdtfjchpmr", 1, 9, 1);
- test(S("hnfiagdpcklrjetqbsom"), "ponmcqblet", 1, 10, 1);
- test(S("nsdfebgajhmtricpoklq"), "sgphqdnofeiklatbcmjr", 1, 0, S::npos);
- test(S("atjgfsdlpobmeiqhncrk"), "ljqprsmigtfoneadckbh", 1, 1, S::npos);
- test(S("sitodfgnrejlahcbmqkp"), "ligeojhafnkmrcsqtbdp", 1, 10, 1);
- test(S("fraghmbiceknltjpqosd"), "lsimqfnjarbopedkhcgt", 1, 19, 1);
- test(S("pmafenlhqtdbkirjsogc"), "abedmfjlghniorcqptks", 1, 20, 1);
- test(S("pihgmoeqtnakrjslcbfd"), "", 10, 0, S::npos);
- test(S("gjdkeprctqblnhiafsom"), "hqtoa", 10, 0, S::npos);
- test(S("mkpnblfdsahrcqijteog"), "cahif", 10, 1, S::npos);
- test(S("gckarqnelodfjhmbptis"), "kehis", 10, 2, 7);
- test(S("gqpskidtbclomahnrjfe"), "kdlmh", 10, 4, 10);
- test(S("pkldjsqrfgitbhmaecno"), "paeql", 10, 5, 6);
- test(S("aftsijrbeklnmcdqhgop"), "aghoqiefnb", 10, 0, S::npos);
- test(S("mtlgdrhafjkbiepqnsoc"), "jrbqaikpdo", 10, 1, 9);
- test(S("pqgirnaefthokdmbsclj"), "smjonaeqcl", 10, 5, 5);
- test(S("kpdbgjmtherlsfcqoina"), "eqbdrkcfah", 10, 9, 10);
- test(S("jrlbothiknqmdgcfasep"), "kapmsienhf", 10, 10, 9);
- test(S("mjogldqferckabinptsh"), "jpqotrlenfcsbhkaimdg", 10, 0, S::npos);
- test(S("apoklnefbhmgqcdrisjt"), "jlbmhnfgtcqprikeados", 10, 1, S::npos);
- test(S("ifeopcnrjbhkdgatmqls"), "stgbhfmdaljnpqoicker", 10, 10, 10);
- test(S("ckqhaiesmjdnrgolbtpf"), "oihcetflbjagdsrkmqpn", 10, 19, 10);
- test(S("bnlgapfimcoterskqdjh"), "adtclebmnpjsrqfkigoh", 10, 20, 10);
- test(S("kgdlrobpmjcthqsafeni"), "", 19, 0, S::npos);
- test(S("dfkechomjapgnslbtqir"), "beafg", 19, 0, S::npos);
- test(S("rloadknfbqtgmhcsipje"), "iclat", 19, 1, 16);
- test(S("mgjhkolrnadqbpetcifs"), "rkhnf", 19, 2, 7);
- test(S("cmlfakiojdrgtbsphqen"), "clshq", 19, 4, 16);
- test(S("kghbfipeomsntdalrqjc"), "dtcoj", 19, 5, 19);
- test(S("eldiqckrnmtasbghjfpo"), "rqosnjmfth", 19, 0, S::npos);
- test(S("abqjcfedgotihlnspkrm"), "siatdfqglh", 19, 1, 15);
- test(S("qfbadrtjsimkolcenhpg"), "mrlshtpgjq", 19, 5, 17);
- test(S("abseghclkjqifmtodrnp"), "adlcskgqjt", 19, 9, 16);
- test(S("ibmsnlrjefhtdokacqpg"), "drshcjknaf", 19, 10, 16);
- test(S("mrkfciqjebaponsthldg"), "etsaqroinghpkjdlfcbm", 19, 0, S::npos);
- test(S("mjkticdeoqshpalrfbgn"), "sgepdnkqliambtrocfhj", 19, 1, 10);
- test(S("rqnoclbdejgiphtfsakm"), "nlmcjaqgbsortfdihkpe", 19, 10, 19);
- test(S("plkqbhmtfaeodjcrsing"), "racfnpmosldibqkghjet", 19, 19, 19);
- test(S("oegalhmstjrfickpbndq"), "fjhdsctkqeiolagrnmbp", 19, 20, 19);
- test(S("rdtgjcaohpblniekmsfq"), "", 20, 0, S::npos);
- test(S("ofkqbnjetrmsaidphglc"), "ejanp", 20, 0, S::npos);
- test(S("grkpahljcftesdmonqib"), "odife", 20, 1, 15);
- test(S("jimlgbhfqkteospardcn"), "okaqd", 20, 2, 12);
- test(S("gftenihpmslrjkqadcob"), "lcdbi", 20, 4, 19);
- test(S("bmhldogtckrfsanijepq"), "fsqbj", 20, 5, 19);
- test(S("nfqkrpjdesabgtlcmoih"), "bigdomnplq", 20, 0, S::npos);
- test(S("focalnrpiqmdkstehbjg"), "apiblotgcd", 20, 1, 3);
- test(S("rhqdspkmebiflcotnjga"), "acfhdenops", 20, 5, 19);
- test(S("rahdtmsckfboqlpniegj"), "jopdeamcrk", 20, 9, 19);
- test(S("fbkeiopclstmdqranjhg"), "trqncbkgmh", 20, 10, 19);
- test(S("lifhpdgmbconstjeqark"), "tomglrkencbsfjqpihda", 20, 0, S::npos);
+void test2() {
+ test(S("sdpcilonqj"), "dnjfsagktr", 10, 5, 9);
+ test(S("gtfbdkqeml"), "nejaktmiqg", 10, 9, 8);
+ test(S("bmeqgcdorj"), "pjqonlebsf", 10, 10, 9);
+ test(S("etqlcanmob"), "dshmnbtolcjepgaikfqr", 10, 0, S::npos);
+ test(S("roqmkbdtia"), "iogfhpabtjkqlrnemcds", 10, 1, 8);
+ test(S("kadsithljf"), "ngridfabjsecpqltkmoh", 10, 10, 9);
+ test(S("sgtkpbfdmh"), "athmknplcgofrqejsdib", 10, 19, 9);
+ test(S("qgmetnabkl"), "ldobhmqcafnjtkeisgrp", 10, 20, 9);
+ test(S("cqjohampgd"), "", 11, 0, S::npos);
+ test(S("hobitmpsan"), "aocjb", 11, 0, S::npos);
+ test(S("tjehkpsalm"), "jbrnk", 11, 1, 1);
+ test(S("ngfbojitcl"), "tqedg", 11, 2, 7);
+ test(S("rcfkdbhgjo"), "nqskp", 11, 4, 3);
+ test(S("qghptonrea"), "eaqkl", 11, 5, 9);
+ test(S("hnprfgqjdl"), "reaoicljqm", 11, 0, S::npos);
+ test(S("hlmgabenti"), "lsftgajqpm", 11, 1, 1);
+ test(S("ofcjanmrbs"), "rlpfogmits", 11, 5, 7);
+ test(S("jqedtkornm"), "shkncmiaqj", 11, 9, 9);
+ test(S("rfedlasjmg"), "fpnatrhqgs", 11, 10, 9);
+ test(S("talpqjsgkm"), "sjclemqhnpdbgikarfot", 11, 0, S::npos);
+ test(S("lrkcbtqpie"), "otcmedjikgsfnqbrhpla", 11, 1, S::npos);
+ test(S("cipogdskjf"), "bonsaefdqiprkhlgtjcm", 11, 10, 9);
+ test(S("nqedcojahi"), "egpscmahijlfnkrodqtb", 11, 19, 9);
+ test(S("hefnrkmctj"), "kmqbfepjthgilscrndoa", 11, 20, 9);
+ test(S("atqirnmekfjolhpdsgcb"), "", 0, 0, S::npos);
+ test(S("echfkmlpribjnqsaogtd"), "prboq", 0, 0, S::npos);
+ test(S("qnhiftdgcleajbpkrosm"), "fjcqh", 0, 1, S::npos);
+ test(S("chamfknorbedjitgslpq"), "fmosa", 0, 2, S::npos);
+ test(S("njhqpibfmtlkaecdrgso"), "qdbok", 0, 4, S::npos);
+ test(S("ebnghfsqkprmdcljoiat"), "amslg", 0, 5, S::npos);
+ test(S("letjomsgihfrpqbkancd"), "smpltjneqb", 0, 0, S::npos);
+ test(S("nblgoipcrqeaktshjdmf"), "flitskrnge", 0, 1, S::npos);
+ test(S("cehkbngtjoiflqapsmrd"), "pgqihmlbef", 0, 5, S::npos);
+ test(S("mignapfoklbhcqjetdrs"), "cfpdqjtgsb", 0, 9, S::npos);
+ test(S("ceatbhlsqjgpnokfrmdi"), "htpsiaflom", 0, 10, S::npos);
+ test(S("ocihkjgrdelpfnmastqb"), "kpjfiaceghsrdtlbnomq", 0, 0, S::npos);
+ test(S("noelgschdtbrjfmiqkap"), "qhtbomidljgafneksprc", 0, 1, S::npos);
+ test(S("dkclqfombepritjnghas"), "nhtjobkcefldimpsaqgr", 0, 10, S::npos);
+ test(S("miklnresdgbhqcojftap"), "prabcjfqnoeskilmtgdh", 0, 19, 0);
+ test(S("htbcigojaqmdkfrnlsep"), "dtrgmchilkasqoebfpjn", 0, 20, 0);
+ test(S("febhmqtjanokscdirpgl"), "", 1, 0, S::npos);
+ test(S("loakbsqjpcrdhftniegm"), "sqome", 1, 0, S::npos);
+ test(S("reagphsqflbitdcjmkno"), "smfte", 1, 1, S::npos);
+ test(S("jitlfrqemsdhkopncabg"), "ciboh", 1, 2, 1);
+ test(S("mhtaepscdnrjqgbkifol"), "haois", 1, 4, 1);
+ test(S("tocesrfmnglpbjihqadk"), "abfki", 1, 5, S::npos);
+ test(S("lpfmctjrhdagneskbqoi"), "frdkocntmq", 1, 0, S::npos);
+ test(S("lsmqaepkdhncirbtjfgo"), "oasbpedlnr", 1, 1, S::npos);
+ test(S("epoiqmtldrabnkjhcfsg"), "kltqmhgand", 1, 5, S::npos);
+ test(S("emgasrilpknqojhtbdcf"), "gdtfjchpmr", 1, 9, 1);
+ test(S("hnfiagdpcklrjetqbsom"), "ponmcqblet", 1, 10, 1);
+ test(S("nsdfebgajhmtricpoklq"), "sgphqdnofeiklatbcmjr", 1, 0, S::npos);
+ test(S("atjgfsdlpobmeiqhncrk"), "ljqprsmigtfoneadckbh", 1, 1, S::npos);
+ test(S("sitodfgnrejlahcbmqkp"), "ligeojhafnkmrcsqtbdp", 1, 10, 1);
+ test(S("fraghmbiceknltjpqosd"), "lsimqfnjarbopedkhcgt", 1, 19, 1);
+ test(S("pmafenlhqtdbkirjsogc"), "abedmfjlghniorcqptks", 1, 20, 1);
+ test(S("pihgmoeqtnakrjslcbfd"), "", 10, 0, S::npos);
+ test(S("gjdkeprctqblnhiafsom"), "hqtoa", 10, 0, S::npos);
+ test(S("mkpnblfdsahrcqijteog"), "cahif", 10, 1, S::npos);
+ test(S("gckarqnelodfjhmbptis"), "kehis", 10, 2, 7);
+ test(S("gqpskidtbclomahnrjfe"), "kdlmh", 10, 4, 10);
+ test(S("pkldjsqrfgitbhmaecno"), "paeql", 10, 5, 6);
+ test(S("aftsijrbeklnmcdqhgop"), "aghoqiefnb", 10, 0, S::npos);
+ test(S("mtlgdrhafjkbiepqnsoc"), "jrbqaikpdo", 10, 1, 9);
+ test(S("pqgirnaefthokdmbsclj"), "smjonaeqcl", 10, 5, 5);
+ test(S("kpdbgjmtherlsfcqoina"), "eqbdrkcfah", 10, 9, 10);
+ test(S("jrlbothiknqmdgcfasep"), "kapmsienhf", 10, 10, 9);
+ test(S("mjogldqferckabinptsh"), "jpqotrlenfcsbhkaimdg", 10, 0, S::npos);
+ test(S("apoklnefbhmgqcdrisjt"), "jlbmhnfgtcqprikeados", 10, 1, S::npos);
+ test(S("ifeopcnrjbhkdgatmqls"), "stgbhfmdaljnpqoicker", 10, 10, 10);
+ test(S("ckqhaiesmjdnrgolbtpf"), "oihcetflbjagdsrkmqpn", 10, 19, 10);
+ test(S("bnlgapfimcoterskqdjh"), "adtclebmnpjsrqfkigoh", 10, 20, 10);
+ test(S("kgdlrobpmjcthqsafeni"), "", 19, 0, S::npos);
+ test(S("dfkechomjapgnslbtqir"), "beafg", 19, 0, S::npos);
+ test(S("rloadknfbqtgmhcsipje"), "iclat", 19, 1, 16);
+ test(S("mgjhkolrnadqbpetcifs"), "rkhnf", 19, 2, 7);
+ test(S("cmlfakiojdrgtbsphqen"), "clshq", 19, 4, 16);
+ test(S("kghbfipeomsntdalrqjc"), "dtcoj", 19, 5, 19);
+ test(S("eldiqckrnmtasbghjfpo"), "rqosnjmfth", 19, 0, S::npos);
+ test(S("abqjcfedgotihlnspkrm"), "siatdfqglh", 19, 1, 15);
+ test(S("qfbadrtjsimkolcenhpg"), "mrlshtpgjq", 19, 5, 17);
+ test(S("abseghclkjqifmtodrnp"), "adlcskgqjt", 19, 9, 16);
+ test(S("ibmsnlrjefhtdokacqpg"), "drshcjknaf", 19, 10, 16);
+ test(S("mrkfciqjebaponsthldg"), "etsaqroinghpkjdlfcbm", 19, 0, S::npos);
+ test(S("mjkticdeoqshpalrfbgn"), "sgepdnkqliambtrocfhj", 19, 1, 10);
+ test(S("rqnoclbdejgiphtfsakm"), "nlmcjaqgbsortfdihkpe", 19, 10, 19);
+ test(S("plkqbhmtfaeodjcrsing"), "racfnpmosldibqkghjet", 19, 19, 19);
+ test(S("oegalhmstjrfickpbndq"), "fjhdsctkqeiolagrnmbp", 19, 20, 19);
+ test(S("rdtgjcaohpblniekmsfq"), "", 20, 0, S::npos);
+ test(S("ofkqbnjetrmsaidphglc"), "ejanp", 20, 0, S::npos);
+ test(S("grkpahljcftesdmonqib"), "odife", 20, 1, 15);
+ test(S("jimlgbhfqkteospardcn"), "okaqd", 20, 2, 12);
+ test(S("gftenihpmslrjkqadcob"), "lcdbi", 20, 4, 19);
+ test(S("bmhldogtckrfsanijepq"), "fsqbj", 20, 5, 19);
+ test(S("nfqkrpjdesabgtlcmoih"), "bigdomnplq", 20, 0, S::npos);
+ test(S("focalnrpiqmdkstehbjg"), "apiblotgcd", 20, 1, 3);
+ test(S("rhqdspkmebiflcotnjga"), "acfhdenops", 20, 5, 19);
+ test(S("rahdtmsckfboqlpniegj"), "jopdeamcrk", 20, 9, 19);
+ test(S("fbkeiopclstmdqranjhg"), "trqncbkgmh", 20, 10, 19);
+ test(S("lifhpdgmbconstjeqark"), "tomglrkencbsfjqpihda", 20, 0, S::npos);
}
template <class S>
-void test3()
-{
- test(S("pboqganrhedjmltsicfk"), "gbkhdnpoietfcmrslajq", 20, 1, 4);
- test(S("klchabsimetjnqgorfpd"), "rtfnmbsglkjaichoqedp", 20, 10, 17);
- test(S("sirfgmjqhctndbklaepo"), "ohkmdpfqbsacrtjnlgei", 20, 19, 19);
- test(S("rlbdsiceaonqjtfpghkm"), "dlbrteoisgphmkncajfq", 20, 20, 19);
- test(S("ecgdanriptblhjfqskom"), "", 21, 0, S::npos);
- test(S("fdmiarlpgcskbhoteqjn"), "sjrlo", 21, 0, S::npos);
- test(S("rlbstjqopignecmfadkh"), "qjpor", 21, 1, 6);
- test(S("grjpqmbshektdolcafni"), "odhfn", 21, 2, 13);
- test(S("sakfcohtqnibprjmlged"), "qtfin", 21, 4, 10);
- test(S("mjtdglasihqpocebrfkn"), "hpqfo", 21, 5, 17);
- test(S("okaplfrntghqbmeicsdj"), "fabmertkos", 21, 0, S::npos);
- test(S("sahngemrtcjidqbklfpo"), "brqtgkmaej", 21, 1, 14);
- test(S("dlmsipcnekhbgoaftqjr"), "nfrdeihsgl", 21, 5, 19);
- test(S("ahegrmqnoiklpfsdbcjt"), "hlfrosekpi", 21, 9, 14);
- test(S("hdsjbnmlegtkqripacof"), "atgbkrjdsm", 21, 10, 16);
- test(S("pcnedrfjihqbalkgtoms"), "blnrptjgqmaifsdkhoec", 21, 0, S::npos);
- test(S("qjidealmtpskrbfhocng"), "ctpmdahebfqjgknloris", 21, 1, 17);
- test(S("qeindtagmokpfhsclrbj"), "apnkeqthrmlbfodiscgj", 21, 10, 17);
- test(S("kpfegbjhsrnodltqciam"), "jdgictpframeoqlsbknh", 21, 19, 19);
- test(S("hnbrcplsjfgiktoedmaq"), "qprlsfojamgndekthibc", 21, 20, 19);
+void test3() {
+ test(S("pboqganrhedjmltsicfk"), "gbkhdnpoietfcmrslajq", 20, 1, 4);
+ test(S("klchabsimetjnqgorfpd"), "rtfnmbsglkjaichoqedp", 20, 10, 17);
+ test(S("sirfgmjqhctndbklaepo"), "ohkmdpfqbsacrtjnlgei", 20, 19, 19);
+ test(S("rlbdsiceaonqjtfpghkm"), "dlbrteoisgphmkncajfq", 20, 20, 19);
+ test(S("ecgdanriptblhjfqskom"), "", 21, 0, S::npos);
+ test(S("fdmiarlpgcskbhoteqjn"), "sjrlo", 21, 0, S::npos);
+ test(S("rlbstjqopignecmfadkh"), "qjpor", 21, 1, 6);
+ test(S("grjpqmbshektdolcafni"), "odhfn", 21, 2, 13);
+ test(S("sakfcohtqnibprjmlged"), "qtfin", 21, 4, 10);
+ test(S("mjtdglasihqpocebrfkn"), "hpqfo", 21, 5, 17);
+ test(S("okaplfrntghqbmeicsdj"), "fabmertkos", 21, 0, S::npos);
+ test(S("sahngemrtcjidqbklfpo"), "brqtgkmaej", 21, 1, 14);
+ test(S("dlmsipcnekhbgoaftqjr"), "nfrdeihsgl", 21, 5, 19);
+ test(S("ahegrmqnoiklpfsdbcjt"), "hlfrosekpi", 21, 9, 14);
+ test(S("hdsjbnmlegtkqripacof"), "atgbkrjdsm", 21, 10, 16);
+ test(S("pcnedrfjihqbalkgtoms"), "blnrptjgqmaifsdkhoec", 21, 0, S::npos);
+ test(S("qjidealmtpskrbfhocng"), "ctpmdahebfqjgknloris", 21, 1, 17);
+ test(S("qeindtagmokpfhsclrbj"), "apnkeqthrmlbfodiscgj", 21, 10, 17);
+ test(S("kpfegbjhsrnodltqciam"), "jdgictpframeoqlsbknh", 21, 19, 19);
+ test(S("hnbrcplsjfgiktoedmaq"), "qprlsfojamgndekthibc", 21, 20, 19);
}
-int main(int, char**)
-{
- {
+int main(int, char**) {
+ {
typedef std::string_view S;
test0<S>();
test1<S>();
test2<S>();
test3<S>();
- }
+ }
#if TEST_STD_VER > 11
- {
+ {
typedef std::basic_string_view<char, constexpr_char_traits<char>> SV;
- constexpr SV sv1;
- constexpr SV sv2 { "abcde", 5 };
+ constexpr SV sv1;
+ constexpr SV sv2{"abcde", 5};
- static_assert (sv1.find_last_of( "", 0, 0) == SV::npos, "" );
- static_assert (sv1.find_last_of( "irkhs", 0, 5) == SV::npos, "" );
- static_assert (sv2.find_last_of( "", 0, 0) == SV::npos, "" );
- static_assert (sv2.find_last_of( "gfsrt", 5, 5) == SV::npos, "" );
- static_assert (sv2.find_last_of( "lecar", 5, 5) == 4, "" );
- }
+ static_assert(sv1.find_last_of("", 0, 0) == SV::npos, "");
+ static_assert(sv1.find_last_of("irkhs", 0, 5) == SV::npos, "");
+ static_assert(sv2.find_last_of("", 0, 0) == SV::npos, "");
+ static_assert(sv2.find_last_of("gfsrt", 5, 5) == SV::npos, "");
+ static_assert(sv2.find_last_of("lecar", 5, 5) == 4, "");
+ }
#endif
return 0;
diff --git a/libcxx/test/std/strings/string.view/string.view.find/find_last_of_string_view_size.pass.cpp b/libcxx/test/std/strings/string.view/string.view.find/find_last_of_string_view_size.pass.cpp
index 5c0ee6419b6c499..e8464a388f84b25 100644
--- a/libcxx/test/std/strings/string.view/string.view.find/find_last_of_string_view_size.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.find/find_last_of_string_view_size.pass.cpp
@@ -18,138 +18,131 @@
#include "test_macros.h"
template <class S>
-void
-test(const S& s, const S& str, typename S::size_type pos, typename S::size_type x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.find_last_of(str, pos));
- assert(s.find_last_of(str, pos) == x);
- if (x != S::npos)
- assert(x <= pos && x < s.size());
+void test(const S& s, const S& str, typename S::size_type pos, typename S::size_type x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.find_last_of(str, pos));
+ assert(s.find_last_of(str, pos) == x);
+ if (x != S::npos)
+ assert(x <= pos && x < s.size());
}
template <class S>
-void
-test(const S& s, const S& str, typename S::size_type x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.find_last_of(str));
- assert(s.find_last_of(str) == x);
- if (x != S::npos)
- assert(x < s.size());
+void test(const S& s, const S& str, typename S::size_type x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.find_last_of(str));
+ assert(s.find_last_of(str) == x);
+ if (x != S::npos)
+ assert(x < s.size());
}
template <class S>
-void test0()
-{
- test(S(""), S(""), 0, S::npos);
- test(S(""), S("laenf"), 0, S::npos);
- test(S(""), S("pqlnkmbdjo"), 0, S::npos);
- test(S(""), S("qkamfogpnljdcshbreti"), 0, S::npos);
- test(S(""), S(""), 1, S::npos);
- test(S(""), S("bjaht"), 1, S::npos);
- test(S(""), S("hjlcmgpket"), 1, S::npos);
- test(S(""), S("htaobedqikfplcgjsmrn"), 1, S::npos);
- test(S("fodgq"), S(""), 0, S::npos);
- test(S("qanej"), S("dfkap"), 0, S::npos);
- test(S("clbao"), S("ihqrfebgad"), 0, S::npos);
- test(S("mekdn"), S("ngtjfcalbseiqrphmkdo"), 0, 0);
- test(S("srdfq"), S(""), 1, S::npos);
- test(S("oemth"), S("ikcrq"), 1, S::npos);
- test(S("cdaih"), S("dmajblfhsg"), 1, 1);
- test(S("qohtk"), S("oqftjhdmkgsblacenirp"), 1, 1);
- test(S("cshmd"), S(""), 2, S::npos);
- test(S("lhcdo"), S("oebqi"), 2, S::npos);
- test(S("qnsoh"), S("kojhpmbsfe"), 2, 2);
- test(S("pkrof"), S("acbsjqogpltdkhinfrem"), 2, 2);
- test(S("fmtsp"), S(""), 4, S::npos);
- test(S("khbpm"), S("aobjd"), 4, 2);
- test(S("pbsji"), S("pcbahntsje"), 4, 3);
- test(S("mprdj"), S("fhepcrntkoagbmldqijs"), 4, 4);
- test(S("eqmpa"), S(""), 5, S::npos);
- test(S("omigs"), S("kocgb"), 5, 3);
- test(S("onmje"), S("fbslrjiqkm"), 5, 3);
- test(S("oqmrj"), S("jeidpcmalhfnqbgtrsko"), 5, 4);
- test(S("schfa"), S(""), 6, S::npos);
- test(S("igdsc"), S("qngpd"), 6, 2);
- test(S("brqgo"), S("rodhqklgmb"), 6, 4);
- test(S("tnrph"), S("thdjgafrlbkoiqcspmne"), 6, 4);
- test(S("hcjitbfapl"), S(""), 0, S::npos);
- test(S("daiprenocl"), S("ashjd"), 0, 0);
- test(S("litpcfdghe"), S("mgojkldsqh"), 0, 0);
- test(S("aidjksrolc"), S("imqnaghkfrdtlopbjesc"), 0, 0);
- test(S("qpghtfbaji"), S(""), 1, S::npos);
- test(S("gfshlcmdjr"), S("nadkh"), 1, S::npos);
- test(S("nkodajteqp"), S("ofdrqmkebl"), 1, 1);
- test(S("gbmetiprqd"), S("bdfjqgatlksriohemnpc"), 1, 1);
- test(S("crnklpmegd"), S(""), 5, S::npos);
- test(S("jsbtafedoc"), S("prqgn"), 5, S::npos);
- test(S("qnmodrtkeb"), S("pejafmnokr"), 5, 5);
- test(S("cpebqsfmnj"), S("odnqkgijrhabfmcestlp"), 5, 5);
- test(S("lmofqdhpki"), S(""), 9, S::npos);
- test(S("hnefkqimca"), S("rtjpa"), 9, 9);
- test(S("drtasbgmfp"), S("ktsrmnqagd"), 9, 7);
- test(S("lsaijeqhtr"), S("rtdhgcisbnmoaqkfpjle"), 9, 9);
- test(S("elgofjmbrq"), S(""), 10, S::npos);
- test(S("mjqdgalkpc"), S("dplqa"), 10, 8);
- test(S("kthqnfcerm"), S("dkacjoptns"), 10, 6);
- test(S("dfsjhanorc"), S("hqfimtrgnbekpdcsjalo"), 10, 9);
- test(S("eqsgalomhb"), S(""), 11, S::npos);
- test(S("akiteljmoh"), S("lofbc"), 11, 8);
- test(S("hlbdfreqjo"), S("astoegbfpn"), 11, 9);
- test(S("taqobhlerg"), S("pdgreqomsncafklhtibj"), 11, 9);
- test(S("snafbdlghrjkpqtoceim"), S(""), 0, S::npos);
- test(S("aemtbrgcklhndjisfpoq"), S("lbtqd"), 0, S::npos);
- test(S("pnracgfkjdiholtbqsem"), S("tboimldpjh"), 0, 0);
- test(S("dicfltehbsgrmojnpkaq"), S("slcerthdaiqjfnobgkpm"), 0, 0);
- test(S("jlnkraeodhcspfgbqitm"), S(""), 1, S::npos);
- test(S("lhosrngtmfjikbqpcade"), S("aqibs"), 1, S::npos);
- test(S("rbtaqjhgkneisldpmfoc"), S("gtfblmqinc"), 1, 1);
- test(S("gpifsqlrdkbonjtmheca"), S("mkqpbtdalgniorhfescj"), 1, 1);
- test(S("hdpkobnsalmcfijregtq"), S(""), 10, S::npos);
- test(S("jtlshdgqaiprkbcoenfm"), S("pblas"), 10, 10);
- test(S("fkdrbqltsgmcoiphneaj"), S("arosdhcfme"), 10, 10);
- test(S("crsplifgtqedjohnabmk"), S("blkhjeogicatqfnpdmsr"), 10, 10);
- test(S("niptglfbosehkamrdqcj"), S(""), 19, S::npos);
- test(S("copqdhstbingamjfkler"), S("djkqc"), 19, 16);
- test(S("mrtaefilpdsgocnhqbjk"), S("lgokshjtpb"), 19, 19);
- test(S("kojatdhlcmigpbfrqnes"), S("bqjhtkfepimcnsgrlado"), 19, 19);
- test(S("eaintpchlqsbdgrkjofm"), S(""), 20, S::npos);
- test(S("gjnhidfsepkrtaqbmclo"), S("nocfa"), 20, 19);
- test(S("spocfaktqdbiejlhngmr"), S("bgtajmiedc"), 20, 18);
- test(S("rphmlekgfscndtaobiqj"), S("lsckfnqgdahejiopbtmr"), 20, 19);
- test(S("liatsqdoegkmfcnbhrpj"), S(""), 21, S::npos);
- test(S("binjagtfldkrspcomqeh"), S("gfsrt"), 21, 12);
- test(S("latkmisecnorjbfhqpdg"), S("pfsocbhjtm"), 21, 17);
- test(S("lecfratdjkhnsmqpoigb"), S("tpflmdnoicjgkberhqsa"), 21, 19);
+void test0() {
+ test(S(""), S(""), 0, S::npos);
+ test(S(""), S("laenf"), 0, S::npos);
+ test(S(""), S("pqlnkmbdjo"), 0, S::npos);
+ test(S(""), S("qkamfogpnljdcshbreti"), 0, S::npos);
+ test(S(""), S(""), 1, S::npos);
+ test(S(""), S("bjaht"), 1, S::npos);
+ test(S(""), S("hjlcmgpket"), 1, S::npos);
+ test(S(""), S("htaobedqikfplcgjsmrn"), 1, S::npos);
+ test(S("fodgq"), S(""), 0, S::npos);
+ test(S("qanej"), S("dfkap"), 0, S::npos);
+ test(S("clbao"), S("ihqrfebgad"), 0, S::npos);
+ test(S("mekdn"), S("ngtjfcalbseiqrphmkdo"), 0, 0);
+ test(S("srdfq"), S(""), 1, S::npos);
+ test(S("oemth"), S("ikcrq"), 1, S::npos);
+ test(S("cdaih"), S("dmajblfhsg"), 1, 1);
+ test(S("qohtk"), S("oqftjhdmkgsblacenirp"), 1, 1);
+ test(S("cshmd"), S(""), 2, S::npos);
+ test(S("lhcdo"), S("oebqi"), 2, S::npos);
+ test(S("qnsoh"), S("kojhpmbsfe"), 2, 2);
+ test(S("pkrof"), S("acbsjqogpltdkhinfrem"), 2, 2);
+ test(S("fmtsp"), S(""), 4, S::npos);
+ test(S("khbpm"), S("aobjd"), 4, 2);
+ test(S("pbsji"), S("pcbahntsje"), 4, 3);
+ test(S("mprdj"), S("fhepcrntkoagbmldqijs"), 4, 4);
+ test(S("eqmpa"), S(""), 5, S::npos);
+ test(S("omigs"), S("kocgb"), 5, 3);
+ test(S("onmje"), S("fbslrjiqkm"), 5, 3);
+ test(S("oqmrj"), S("jeidpcmalhfnqbgtrsko"), 5, 4);
+ test(S("schfa"), S(""), 6, S::npos);
+ test(S("igdsc"), S("qngpd"), 6, 2);
+ test(S("brqgo"), S("rodhqklgmb"), 6, 4);
+ test(S("tnrph"), S("thdjgafrlbkoiqcspmne"), 6, 4);
+ test(S("hcjitbfapl"), S(""), 0, S::npos);
+ test(S("daiprenocl"), S("ashjd"), 0, 0);
+ test(S("litpcfdghe"), S("mgojkldsqh"), 0, 0);
+ test(S("aidjksrolc"), S("imqnaghkfrdtlopbjesc"), 0, 0);
+ test(S("qpghtfbaji"), S(""), 1, S::npos);
+ test(S("gfshlcmdjr"), S("nadkh"), 1, S::npos);
+ test(S("nkodajteqp"), S("ofdrqmkebl"), 1, 1);
+ test(S("gbmetiprqd"), S("bdfjqgatlksriohemnpc"), 1, 1);
+ test(S("crnklpmegd"), S(""), 5, S::npos);
+ test(S("jsbtafedoc"), S("prqgn"), 5, S::npos);
+ test(S("qnmodrtkeb"), S("pejafmnokr"), 5, 5);
+ test(S("cpebqsfmnj"), S("odnqkgijrhabfmcestlp"), 5, 5);
+ test(S("lmofqdhpki"), S(""), 9, S::npos);
+ test(S("hnefkqimca"), S("rtjpa"), 9, 9);
+ test(S("drtasbgmfp"), S("ktsrmnqagd"), 9, 7);
+ test(S("lsaijeqhtr"), S("rtdhgcisbnmoaqkfpjle"), 9, 9);
+ test(S("elgofjmbrq"), S(""), 10, S::npos);
+ test(S("mjqdgalkpc"), S("dplqa"), 10, 8);
+ test(S("kthqnfcerm"), S("dkacjoptns"), 10, 6);
+ test(S("dfsjhanorc"), S("hqfimtrgnbekpdcsjalo"), 10, 9);
+ test(S("eqsgalomhb"), S(""), 11, S::npos);
+ test(S("akiteljmoh"), S("lofbc"), 11, 8);
+ test(S("hlbdfreqjo"), S("astoegbfpn"), 11, 9);
+ test(S("taqobhlerg"), S("pdgreqomsncafklhtibj"), 11, 9);
+ test(S("snafbdlghrjkpqtoceim"), S(""), 0, S::npos);
+ test(S("aemtbrgcklhndjisfpoq"), S("lbtqd"), 0, S::npos);
+ test(S("pnracgfkjdiholtbqsem"), S("tboimldpjh"), 0, 0);
+ test(S("dicfltehbsgrmojnpkaq"), S("slcerthdaiqjfnobgkpm"), 0, 0);
+ test(S("jlnkraeodhcspfgbqitm"), S(""), 1, S::npos);
+ test(S("lhosrngtmfjikbqpcade"), S("aqibs"), 1, S::npos);
+ test(S("rbtaqjhgkneisldpmfoc"), S("gtfblmqinc"), 1, 1);
+ test(S("gpifsqlrdkbonjtmheca"), S("mkqpbtdalgniorhfescj"), 1, 1);
+ test(S("hdpkobnsalmcfijregtq"), S(""), 10, S::npos);
+ test(S("jtlshdgqaiprkbcoenfm"), S("pblas"), 10, 10);
+ test(S("fkdrbqltsgmcoiphneaj"), S("arosdhcfme"), 10, 10);
+ test(S("crsplifgtqedjohnabmk"), S("blkhjeogicatqfnpdmsr"), 10, 10);
+ test(S("niptglfbosehkamrdqcj"), S(""), 19, S::npos);
+ test(S("copqdhstbingamjfkler"), S("djkqc"), 19, 16);
+ test(S("mrtaefilpdsgocnhqbjk"), S("lgokshjtpb"), 19, 19);
+ test(S("kojatdhlcmigpbfrqnes"), S("bqjhtkfepimcnsgrlado"), 19, 19);
+ test(S("eaintpchlqsbdgrkjofm"), S(""), 20, S::npos);
+ test(S("gjnhidfsepkrtaqbmclo"), S("nocfa"), 20, 19);
+ test(S("spocfaktqdbiejlhngmr"), S("bgtajmiedc"), 20, 18);
+ test(S("rphmlekgfscndtaobiqj"), S("lsckfnqgdahejiopbtmr"), 20, 19);
+ test(S("liatsqdoegkmfcnbhrpj"), S(""), 21, S::npos);
+ test(S("binjagtfldkrspcomqeh"), S("gfsrt"), 21, 12);
+ test(S("latkmisecnorjbfhqpdg"), S("pfsocbhjtm"), 21, 17);
+ test(S("lecfratdjkhnsmqpoigb"), S("tpflmdnoicjgkberhqsa"), 21, 19);
}
template <class S>
-void test1()
-{
- test(S(""), S(""), S::npos);
- test(S(""), S("laenf"), S::npos);
- test(S(""), S("pqlnkmbdjo"), S::npos);
- test(S(""), S("qkamfogpnljdcshbreti"), S::npos);
- test(S("nhmko"), S(""), S::npos);
- test(S("lahfb"), S("irkhs"), 2);
- test(S("gmfhd"), S("kantesmpgj"), 1);
- test(S("odaft"), S("oknlrstdpiqmjbaghcfe"), 4);
- test(S("eolhfgpjqk"), S(""), S::npos);
- test(S("nbatdlmekr"), S("bnrpe"), 9);
- test(S("jdmciepkaq"), S("jtdaefblso"), 8);
- test(S("hkbgspoflt"), S("oselktgbcapndfjihrmq"), 9);
- test(S("gprdcokbnjhlsfmtieqa"), S(""), S::npos);
- test(S("qjghlnftcaismkropdeb"), S("bjaht"), 19);
- test(S("pnalfrdtkqcmojiesbhg"), S("hjlcmgpket"), 19);
- test(S("pniotcfrhqsmgdkjbael"), S("htaobedqikfplcgjsmrn"), 19);
+void test1() {
+ test(S(""), S(""), S::npos);
+ test(S(""), S("laenf"), S::npos);
+ test(S(""), S("pqlnkmbdjo"), S::npos);
+ test(S(""), S("qkamfogpnljdcshbreti"), S::npos);
+ test(S("nhmko"), S(""), S::npos);
+ test(S("lahfb"), S("irkhs"), 2);
+ test(S("gmfhd"), S("kantesmpgj"), 1);
+ test(S("odaft"), S("oknlrstdpiqmjbaghcfe"), 4);
+ test(S("eolhfgpjqk"), S(""), S::npos);
+ test(S("nbatdlmekr"), S("bnrpe"), 9);
+ test(S("jdmciepkaq"), S("jtdaefblso"), 8);
+ test(S("hkbgspoflt"), S("oselktgbcapndfjihrmq"), 9);
+ test(S("gprdcokbnjhlsfmtieqa"), S(""), S::npos);
+ test(S("qjghlnftcaismkropdeb"), S("bjaht"), 19);
+ test(S("pnalfrdtkqcmojiesbhg"), S("hjlcmgpket"), 19);
+ test(S("pniotcfrhqsmgdkjbael"), S("htaobedqikfplcgjsmrn"), 19);
}
-int main(int, char**)
-{
- {
+int main(int, char**) {
+ {
typedef std::string_view S;
test0<S>();
test1<S>();
- }
+ }
return 0;
}
diff --git a/libcxx/test/std/strings/string.view/string.view.find/find_pointer_size.pass.cpp b/libcxx/test/std/strings/string.view/string.view.find/find_pointer_size.pass.cpp
index ecd0b15f8c31c3a..a144aaf46d964c2 100644
--- a/libcxx/test/std/strings/string.view/string.view.find/find_pointer_size.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.find/find_pointer_size.pass.cpp
@@ -19,158 +19,148 @@
#include "constexpr_char_traits.h"
template <class S>
-void
-test(const S& s, const typename S::value_type* str, typename S::size_type pos,
- typename S::size_type x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.find(str, pos));
- assert(s.find(str, pos) == x);
- if (x != S::npos)
- {
- typename S::size_type n = S::traits_type::length(str);
- assert(pos <= x && x + n <= s.size());
- }
+void test(const S& s, const typename S::value_type* str, typename S::size_type pos, typename S::size_type x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.find(str, pos));
+ assert(s.find(str, pos) == x);
+ if (x != S::npos) {
+ typename S::size_type n = S::traits_type::length(str);
+ assert(pos <= x && x + n <= s.size());
+ }
}
template <class S>
-void
-test(const S& s, const typename S::value_type* str, typename S::size_type x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.find(str));
- assert(s.find(str) == x);
- if (x != S::npos)
- {
- typename S::size_type n = S::traits_type::length(str);
- assert(0 <= x && x + n <= s.size());
- }
+void test(const S& s, const typename S::value_type* str, typename S::size_type x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.find(str));
+ assert(s.find(str) == x);
+ if (x != S::npos) {
+ typename S::size_type n = S::traits_type::length(str);
+ assert(0 <= x && x + n <= s.size());
+ }
}
template <class S>
-void test0()
-{
- test(S(""), "", 0, 0);
- test(S(""), "abcde", 0, S::npos);
- test(S(""), "abcdeabcde", 0, S::npos);
- test(S(""), "abcdeabcdeabcdeabcde", 0, S::npos);
- test(S(""), "", 1, S::npos);
- test(S(""), "abcde", 1, S::npos);
- test(S(""), "abcdeabcde", 1, S::npos);
- test(S(""), "abcdeabcdeabcdeabcde", 1, S::npos);
- test(S("abcde"), "", 0, 0);
- test(S("abcde"), "abcde", 0, 0);
- test(S("abcde"), "abcdeabcde", 0, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 0, S::npos);
- test(S("abcde"), "", 1, 1);
- test(S("abcde"), "abcde", 1, S::npos);
- test(S("abcde"), "abcdeabcde", 1, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 1, S::npos);
- test(S("abcde"), "", 2, 2);
- test(S("abcde"), "abcde", 2, S::npos);
- test(S("abcde"), "abcdeabcde", 2, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 2, S::npos);
- test(S("abcde"), "", 4, 4);
- test(S("abcde"), "abcde", 4, S::npos);
- test(S("abcde"), "abcdeabcde", 4, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 4, S::npos);
- test(S("abcde"), "", 5, 5);
- test(S("abcde"), "abcde", 5, S::npos);
- test(S("abcde"), "abcdeabcde", 5, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 5, S::npos);
- test(S("abcde"), "", 6, S::npos);
- test(S("abcde"), "abcde", 6, S::npos);
- test(S("abcde"), "abcdeabcde", 6, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 6, S::npos);
- test(S("abcdeabcde"), "", 0, 0);
- test(S("abcdeabcde"), "abcde", 0, 0);
- test(S("abcdeabcde"), "abcdeabcde", 0, 0);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 0, S::npos);
- test(S("abcdeabcde"), "", 1, 1);
- test(S("abcdeabcde"), "abcde", 1, 5);
- test(S("abcdeabcde"), "abcdeabcde", 1, S::npos);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 1, S::npos);
- test(S("abcdeabcde"), "", 5, 5);
- test(S("abcdeabcde"), "abcde", 5, 5);
- test(S("abcdeabcde"), "abcdeabcde", 5, S::npos);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 5, S::npos);
- test(S("abcdeabcde"), "", 9, 9);
- test(S("abcdeabcde"), "abcde", 9, S::npos);
- test(S("abcdeabcde"), "abcdeabcde", 9, S::npos);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 9, S::npos);
- test(S("abcdeabcde"), "", 10, 10);
- test(S("abcdeabcde"), "abcde", 10, S::npos);
- test(S("abcdeabcde"), "abcdeabcde", 10, S::npos);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 10, S::npos);
- test(S("abcdeabcde"), "", 11, S::npos);
- test(S("abcdeabcde"), "abcde", 11, S::npos);
- test(S("abcdeabcde"), "abcdeabcde", 11, S::npos);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 11, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "", 0, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 0, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 0, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 0, 0);
- test(S("abcdeabcdeabcdeabcde"), "", 1, 1);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 1, 5);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 1, 5);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 1, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "", 10, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 10, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 10, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 10, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "", 19, 19);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 19, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 19, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 19, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "", 20, 20);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 20, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 20, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 20, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "", 21, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 21, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 21, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 21, S::npos);
+void test0() {
+ test(S(""), "", 0, 0);
+ test(S(""), "abcde", 0, S::npos);
+ test(S(""), "abcdeabcde", 0, S::npos);
+ test(S(""), "abcdeabcdeabcdeabcde", 0, S::npos);
+ test(S(""), "", 1, S::npos);
+ test(S(""), "abcde", 1, S::npos);
+ test(S(""), "abcdeabcde", 1, S::npos);
+ test(S(""), "abcdeabcdeabcdeabcde", 1, S::npos);
+ test(S("abcde"), "", 0, 0);
+ test(S("abcde"), "abcde", 0, 0);
+ test(S("abcde"), "abcdeabcde", 0, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 0, S::npos);
+ test(S("abcde"), "", 1, 1);
+ test(S("abcde"), "abcde", 1, S::npos);
+ test(S("abcde"), "abcdeabcde", 1, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 1, S::npos);
+ test(S("abcde"), "", 2, 2);
+ test(S("abcde"), "abcde", 2, S::npos);
+ test(S("abcde"), "abcdeabcde", 2, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 2, S::npos);
+ test(S("abcde"), "", 4, 4);
+ test(S("abcde"), "abcde", 4, S::npos);
+ test(S("abcde"), "abcdeabcde", 4, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 4, S::npos);
+ test(S("abcde"), "", 5, 5);
+ test(S("abcde"), "abcde", 5, S::npos);
+ test(S("abcde"), "abcdeabcde", 5, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 5, S::npos);
+ test(S("abcde"), "", 6, S::npos);
+ test(S("abcde"), "abcde", 6, S::npos);
+ test(S("abcde"), "abcdeabcde", 6, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 6, S::npos);
+ test(S("abcdeabcde"), "", 0, 0);
+ test(S("abcdeabcde"), "abcde", 0, 0);
+ test(S("abcdeabcde"), "abcdeabcde", 0, 0);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 0, S::npos);
+ test(S("abcdeabcde"), "", 1, 1);
+ test(S("abcdeabcde"), "abcde", 1, 5);
+ test(S("abcdeabcde"), "abcdeabcde", 1, S::npos);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 1, S::npos);
+ test(S("abcdeabcde"), "", 5, 5);
+ test(S("abcdeabcde"), "abcde", 5, 5);
+ test(S("abcdeabcde"), "abcdeabcde", 5, S::npos);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 5, S::npos);
+ test(S("abcdeabcde"), "", 9, 9);
+ test(S("abcdeabcde"), "abcde", 9, S::npos);
+ test(S("abcdeabcde"), "abcdeabcde", 9, S::npos);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 9, S::npos);
+ test(S("abcdeabcde"), "", 10, 10);
+ test(S("abcdeabcde"), "abcde", 10, S::npos);
+ test(S("abcdeabcde"), "abcdeabcde", 10, S::npos);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 10, S::npos);
+ test(S("abcdeabcde"), "", 11, S::npos);
+ test(S("abcdeabcde"), "abcde", 11, S::npos);
+ test(S("abcdeabcde"), "abcdeabcde", 11, S::npos);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 11, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "", 0, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 0, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 0, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 0, 0);
+ test(S("abcdeabcdeabcdeabcde"), "", 1, 1);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 1, 5);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 1, 5);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 1, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "", 10, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 10, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 10, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 10, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "", 19, 19);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 19, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 19, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 19, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "", 20, 20);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 20, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 20, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 20, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "", 21, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 21, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 21, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 21, S::npos);
}
template <class S>
-void test1()
-{
- test(S(""), "", 0);
- test(S(""), "abcde", S::npos);
- test(S(""), "abcdeabcde", S::npos);
- test(S(""), "abcdeabcdeabcdeabcde", S::npos);
- test(S("abcde"), "", 0);
- test(S("abcde"), "abcde", 0);
- test(S("abcde"), "abcdeabcde", S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", S::npos);
- test(S("abcdeabcde"), "", 0);
- test(S("abcdeabcde"), "abcde", 0);
- test(S("abcdeabcde"), "abcdeabcde", 0);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", S::npos);
- test(S("abcdeabcdeabcdeabcde"), "", 0);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 0);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 0);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 0);
+void test1() {
+ test(S(""), "", 0);
+ test(S(""), "abcde", S::npos);
+ test(S(""), "abcdeabcde", S::npos);
+ test(S(""), "abcdeabcdeabcdeabcde", S::npos);
+ test(S("abcde"), "", 0);
+ test(S("abcde"), "abcde", 0);
+ test(S("abcde"), "abcdeabcde", S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", S::npos);
+ test(S("abcdeabcde"), "", 0);
+ test(S("abcdeabcde"), "abcde", 0);
+ test(S("abcdeabcde"), "abcdeabcde", 0);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "", 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 0);
}
-int main(int, char**)
-{
- {
+int main(int, char**) {
+ {
typedef std::string_view S;
test0<S>();
test1<S>();
- }
+ }
#if TEST_STD_VER > 11
- {
+ {
typedef std::basic_string_view<char, constexpr_char_traits<char>> SV;
- constexpr SV sv1;
- constexpr SV sv2 { "abcde", 5 };
+ constexpr SV sv1;
+ constexpr SV sv2{"abcde", 5};
- static_assert (sv1.find( "") == 0, "" );
- static_assert (sv1.find( "abcde") == SV::npos, "" );
- static_assert (sv2.find( "") == 0, "" );
- static_assert (sv2.find( "abcde") == 0, "" );
- static_assert (sv2.find( "abcde", 1) == SV::npos, "" );
- }
+ static_assert(sv1.find("") == 0, "");
+ static_assert(sv1.find("abcde") == SV::npos, "");
+ static_assert(sv2.find("") == 0, "");
+ static_assert(sv2.find("abcde") == 0, "");
+ static_assert(sv2.find("abcde", 1) == SV::npos, "");
+ }
#endif
return 0;
diff --git a/libcxx/test/std/strings/string.view/string.view.find/find_pointer_size_size.pass.cpp b/libcxx/test/std/strings/string.view/string.view.find/find_pointer_size_size.pass.cpp
index 2e68e9ec7ca903d..1d73cafd6613691 100644
--- a/libcxx/test/std/strings/string.view/string.view.find/find_pointer_size_size.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.find/find_pointer_size_size.pass.cpp
@@ -19,379 +19,375 @@
#include "constexpr_char_traits.h"
template <class S>
-void
-test(const S& s, const typename S::value_type* str, typename S::size_type pos,
- typename S::size_type n, typename S::size_type x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.find(str, pos, n));
- assert(s.find(str, pos, n) == x);
- if (x != S::npos)
- assert(pos <= x && x + n <= s.size());
+void test(const S& s,
+ const typename S::value_type* str,
+ typename S::size_type pos,
+ typename S::size_type n,
+ typename S::size_type x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.find(str, pos, n));
+ assert(s.find(str, pos, n) == x);
+ if (x != S::npos)
+ assert(pos <= x && x + n <= s.size());
}
template <class S>
-void test0()
-{
- test(S(""), "", 0, 0, 0);
- test(S(""), "abcde", 0, 0, 0);
- test(S(""), "abcde", 0, 1, S::npos);
- test(S(""), "abcde", 0, 2, S::npos);
- test(S(""), "abcde", 0, 4, S::npos);
- test(S(""), "abcde", 0, 5, S::npos);
- test(S(""), "abcdeabcde", 0, 0, 0);
- test(S(""), "abcdeabcde", 0, 1, S::npos);
- test(S(""), "abcdeabcde", 0, 5, S::npos);
- test(S(""), "abcdeabcde", 0, 9, S::npos);
- test(S(""), "abcdeabcde", 0, 10, S::npos);
- test(S(""), "abcdeabcdeabcdeabcde", 0, 0, 0);
- test(S(""), "abcdeabcdeabcdeabcde", 0, 1, S::npos);
- test(S(""), "abcdeabcdeabcdeabcde", 0, 10, S::npos);
- test(S(""), "abcdeabcdeabcdeabcde", 0, 19, S::npos);
- test(S(""), "abcdeabcdeabcdeabcde", 0, 20, S::npos);
- test(S(""), "", 1, 0, S::npos);
- test(S(""), "abcde", 1, 0, S::npos);
- test(S(""), "abcde", 1, 1, S::npos);
- test(S(""), "abcde", 1, 2, S::npos);
- test(S(""), "abcde", 1, 4, S::npos);
- test(S(""), "abcde", 1, 5, S::npos);
- test(S(""), "abcdeabcde", 1, 0, S::npos);
- test(S(""), "abcdeabcde", 1, 1, S::npos);
- test(S(""), "abcdeabcde", 1, 5, S::npos);
- test(S(""), "abcdeabcde", 1, 9, S::npos);
- test(S(""), "abcdeabcde", 1, 10, S::npos);
- test(S(""), "abcdeabcdeabcdeabcde", 1, 0, S::npos);
- test(S(""), "abcdeabcdeabcdeabcde", 1, 1, S::npos);
- test(S(""), "abcdeabcdeabcdeabcde", 1, 10, S::npos);
- test(S(""), "abcdeabcdeabcdeabcde", 1, 19, S::npos);
- test(S(""), "abcdeabcdeabcdeabcde", 1, 20, S::npos);
- test(S("abcde"), "", 0, 0, 0);
- test(S("abcde"), "abcde", 0, 0, 0);
- test(S("abcde"), "abcde", 0, 1, 0);
- test(S("abcde"), "abcde", 0, 2, 0);
- test(S("abcde"), "abcde", 0, 4, 0);
- test(S("abcde"), "abcde", 0, 5, 0);
- test(S("abcde"), "abcdeabcde", 0, 0, 0);
- test(S("abcde"), "abcdeabcde", 0, 1, 0);
- test(S("abcde"), "abcdeabcde", 0, 5, 0);
- test(S("abcde"), "abcdeabcde", 0, 9, S::npos);
- test(S("abcde"), "abcdeabcde", 0, 10, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 0, 0, 0);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 0, 1, 0);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 0, 10, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 0, 19, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 0, 20, S::npos);
- test(S("abcde"), "", 1, 0, 1);
- test(S("abcde"), "abcde", 1, 0, 1);
- test(S("abcde"), "abcde", 1, 1, S::npos);
- test(S("abcde"), "abcde", 1, 2, S::npos);
- test(S("abcde"), "abcde", 1, 4, S::npos);
- test(S("abcde"), "abcde", 1, 5, S::npos);
- test(S("abcde"), "abcdeabcde", 1, 0, 1);
- test(S("abcde"), "abcdeabcde", 1, 1, S::npos);
- test(S("abcde"), "abcdeabcde", 1, 5, S::npos);
- test(S("abcde"), "abcdeabcde", 1, 9, S::npos);
- test(S("abcde"), "abcdeabcde", 1, 10, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 1, 0, 1);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 1, 1, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 1, 10, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 1, 19, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 1, 20, S::npos);
- test(S("abcde"), "", 2, 0, 2);
- test(S("abcde"), "abcde", 2, 0, 2);
- test(S("abcde"), "abcde", 2, 1, S::npos);
- test(S("abcde"), "abcde", 2, 2, S::npos);
- test(S("abcde"), "abcde", 2, 4, S::npos);
- test(S("abcde"), "abcde", 2, 5, S::npos);
- test(S("abcde"), "abcdeabcde", 2, 0, 2);
- test(S("abcde"), "abcdeabcde", 2, 1, S::npos);
- test(S("abcde"), "abcdeabcde", 2, 5, S::npos);
- test(S("abcde"), "abcdeabcde", 2, 9, S::npos);
- test(S("abcde"), "abcdeabcde", 2, 10, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 2, 0, 2);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 2, 1, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 2, 10, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 2, 19, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 2, 20, S::npos);
- test(S("abcde"), "", 4, 0, 4);
- test(S("abcde"), "abcde", 4, 0, 4);
- test(S("abcde"), "abcde", 4, 1, S::npos);
- test(S("abcde"), "abcde", 4, 2, S::npos);
- test(S("abcde"), "abcde", 4, 4, S::npos);
- test(S("abcde"), "abcde", 4, 5, S::npos);
- test(S("abcde"), "abcdeabcde", 4, 0, 4);
- test(S("abcde"), "abcdeabcde", 4, 1, S::npos);
- test(S("abcde"), "abcdeabcde", 4, 5, S::npos);
- test(S("abcde"), "abcdeabcde", 4, 9, S::npos);
- test(S("abcde"), "abcdeabcde", 4, 10, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 4, 0, 4);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 4, 1, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 4, 10, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 4, 19, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 4, 20, S::npos);
- test(S("abcde"), "", 5, 0, 5);
- test(S("abcde"), "abcde", 5, 0, 5);
- test(S("abcde"), "abcde", 5, 1, S::npos);
- test(S("abcde"), "abcde", 5, 2, S::npos);
+void test0() {
+ test(S(""), "", 0, 0, 0);
+ test(S(""), "abcde", 0, 0, 0);
+ test(S(""), "abcde", 0, 1, S::npos);
+ test(S(""), "abcde", 0, 2, S::npos);
+ test(S(""), "abcde", 0, 4, S::npos);
+ test(S(""), "abcde", 0, 5, S::npos);
+ test(S(""), "abcdeabcde", 0, 0, 0);
+ test(S(""), "abcdeabcde", 0, 1, S::npos);
+ test(S(""), "abcdeabcde", 0, 5, S::npos);
+ test(S(""), "abcdeabcde", 0, 9, S::npos);
+ test(S(""), "abcdeabcde", 0, 10, S::npos);
+ test(S(""), "abcdeabcdeabcdeabcde", 0, 0, 0);
+ test(S(""), "abcdeabcdeabcdeabcde", 0, 1, S::npos);
+ test(S(""), "abcdeabcdeabcdeabcde", 0, 10, S::npos);
+ test(S(""), "abcdeabcdeabcdeabcde", 0, 19, S::npos);
+ test(S(""), "abcdeabcdeabcdeabcde", 0, 20, S::npos);
+ test(S(""), "", 1, 0, S::npos);
+ test(S(""), "abcde", 1, 0, S::npos);
+ test(S(""), "abcde", 1, 1, S::npos);
+ test(S(""), "abcde", 1, 2, S::npos);
+ test(S(""), "abcde", 1, 4, S::npos);
+ test(S(""), "abcde", 1, 5, S::npos);
+ test(S(""), "abcdeabcde", 1, 0, S::npos);
+ test(S(""), "abcdeabcde", 1, 1, S::npos);
+ test(S(""), "abcdeabcde", 1, 5, S::npos);
+ test(S(""), "abcdeabcde", 1, 9, S::npos);
+ test(S(""), "abcdeabcde", 1, 10, S::npos);
+ test(S(""), "abcdeabcdeabcdeabcde", 1, 0, S::npos);
+ test(S(""), "abcdeabcdeabcdeabcde", 1, 1, S::npos);
+ test(S(""), "abcdeabcdeabcdeabcde", 1, 10, S::npos);
+ test(S(""), "abcdeabcdeabcdeabcde", 1, 19, S::npos);
+ test(S(""), "abcdeabcdeabcdeabcde", 1, 20, S::npos);
+ test(S("abcde"), "", 0, 0, 0);
+ test(S("abcde"), "abcde", 0, 0, 0);
+ test(S("abcde"), "abcde", 0, 1, 0);
+ test(S("abcde"), "abcde", 0, 2, 0);
+ test(S("abcde"), "abcde", 0, 4, 0);
+ test(S("abcde"), "abcde", 0, 5, 0);
+ test(S("abcde"), "abcdeabcde", 0, 0, 0);
+ test(S("abcde"), "abcdeabcde", 0, 1, 0);
+ test(S("abcde"), "abcdeabcde", 0, 5, 0);
+ test(S("abcde"), "abcdeabcde", 0, 9, S::npos);
+ test(S("abcde"), "abcdeabcde", 0, 10, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 0, 0, 0);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 0, 1, 0);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 0, 10, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 0, 19, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 0, 20, S::npos);
+ test(S("abcde"), "", 1, 0, 1);
+ test(S("abcde"), "abcde", 1, 0, 1);
+ test(S("abcde"), "abcde", 1, 1, S::npos);
+ test(S("abcde"), "abcde", 1, 2, S::npos);
+ test(S("abcde"), "abcde", 1, 4, S::npos);
+ test(S("abcde"), "abcde", 1, 5, S::npos);
+ test(S("abcde"), "abcdeabcde", 1, 0, 1);
+ test(S("abcde"), "abcdeabcde", 1, 1, S::npos);
+ test(S("abcde"), "abcdeabcde", 1, 5, S::npos);
+ test(S("abcde"), "abcdeabcde", 1, 9, S::npos);
+ test(S("abcde"), "abcdeabcde", 1, 10, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 1, 0, 1);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 1, 1, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 1, 10, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 1, 19, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 1, 20, S::npos);
+ test(S("abcde"), "", 2, 0, 2);
+ test(S("abcde"), "abcde", 2, 0, 2);
+ test(S("abcde"), "abcde", 2, 1, S::npos);
+ test(S("abcde"), "abcde", 2, 2, S::npos);
+ test(S("abcde"), "abcde", 2, 4, S::npos);
+ test(S("abcde"), "abcde", 2, 5, S::npos);
+ test(S("abcde"), "abcdeabcde", 2, 0, 2);
+ test(S("abcde"), "abcdeabcde", 2, 1, S::npos);
+ test(S("abcde"), "abcdeabcde", 2, 5, S::npos);
+ test(S("abcde"), "abcdeabcde", 2, 9, S::npos);
+ test(S("abcde"), "abcdeabcde", 2, 10, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 2, 0, 2);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 2, 1, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 2, 10, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 2, 19, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 2, 20, S::npos);
+ test(S("abcde"), "", 4, 0, 4);
+ test(S("abcde"), "abcde", 4, 0, 4);
+ test(S("abcde"), "abcde", 4, 1, S::npos);
+ test(S("abcde"), "abcde", 4, 2, S::npos);
+ test(S("abcde"), "abcde", 4, 4, S::npos);
+ test(S("abcde"), "abcde", 4, 5, S::npos);
+ test(S("abcde"), "abcdeabcde", 4, 0, 4);
+ test(S("abcde"), "abcdeabcde", 4, 1, S::npos);
+ test(S("abcde"), "abcdeabcde", 4, 5, S::npos);
+ test(S("abcde"), "abcdeabcde", 4, 9, S::npos);
+ test(S("abcde"), "abcdeabcde", 4, 10, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 4, 0, 4);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 4, 1, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 4, 10, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 4, 19, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 4, 20, S::npos);
+ test(S("abcde"), "", 5, 0, 5);
+ test(S("abcde"), "abcde", 5, 0, 5);
+ test(S("abcde"), "abcde", 5, 1, S::npos);
+ test(S("abcde"), "abcde", 5, 2, S::npos);
}
template <class S>
-void test1()
-{
- test(S("abcde"), "abcde", 5, 4, S::npos);
- test(S("abcde"), "abcde", 5, 5, S::npos);
- test(S("abcde"), "abcdeabcde", 5, 0, 5);
- test(S("abcde"), "abcdeabcde", 5, 1, S::npos);
- test(S("abcde"), "abcdeabcde", 5, 5, S::npos);
- test(S("abcde"), "abcdeabcde", 5, 9, S::npos);
- test(S("abcde"), "abcdeabcde", 5, 10, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 5, 0, 5);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 5, 1, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 5, 10, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 5, 19, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 5, 20, S::npos);
- test(S("abcde"), "", 6, 0, S::npos);
- test(S("abcde"), "abcde", 6, 0, S::npos);
- test(S("abcde"), "abcde", 6, 1, S::npos);
- test(S("abcde"), "abcde", 6, 2, S::npos);
- test(S("abcde"), "abcde", 6, 4, S::npos);
- test(S("abcde"), "abcde", 6, 5, S::npos);
- test(S("abcde"), "abcdeabcde", 6, 0, S::npos);
- test(S("abcde"), "abcdeabcde", 6, 1, S::npos);
- test(S("abcde"), "abcdeabcde", 6, 5, S::npos);
- test(S("abcde"), "abcdeabcde", 6, 9, S::npos);
- test(S("abcde"), "abcdeabcde", 6, 10, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 6, 0, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 6, 1, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 6, 10, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 6, 19, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 6, 20, S::npos);
- test(S("abcdeabcde"), "", 0, 0, 0);
- test(S("abcdeabcde"), "abcde", 0, 0, 0);
- test(S("abcdeabcde"), "abcde", 0, 1, 0);
- test(S("abcdeabcde"), "abcde", 0, 2, 0);
- test(S("abcdeabcde"), "abcde", 0, 4, 0);
- test(S("abcdeabcde"), "abcde", 0, 5, 0);
- test(S("abcdeabcde"), "abcdeabcde", 0, 0, 0);
- test(S("abcdeabcde"), "abcdeabcde", 0, 1, 0);
- test(S("abcdeabcde"), "abcdeabcde", 0, 5, 0);
- test(S("abcdeabcde"), "abcdeabcde", 0, 9, 0);
- test(S("abcdeabcde"), "abcdeabcde", 0, 10, 0);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 0, 0, 0);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 0, 1, 0);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 0, 10, 0);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 0, 19, S::npos);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 0, 20, S::npos);
- test(S("abcdeabcde"), "", 1, 0, 1);
- test(S("abcdeabcde"), "abcde", 1, 0, 1);
- test(S("abcdeabcde"), "abcde", 1, 1, 5);
- test(S("abcdeabcde"), "abcde", 1, 2, 5);
- test(S("abcdeabcde"), "abcde", 1, 4, 5);
- test(S("abcdeabcde"), "abcde", 1, 5, 5);
- test(S("abcdeabcde"), "abcdeabcde", 1, 0, 1);
- test(S("abcdeabcde"), "abcdeabcde", 1, 1, 5);
- test(S("abcdeabcde"), "abcdeabcde", 1, 5, 5);
- test(S("abcdeabcde"), "abcdeabcde", 1, 9, S::npos);
- test(S("abcdeabcde"), "abcdeabcde", 1, 10, S::npos);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 1, 0, 1);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 1, 1, 5);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 1, 10, S::npos);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 1, 19, S::npos);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 1, 20, S::npos);
- test(S("abcdeabcde"), "", 5, 0, 5);
- test(S("abcdeabcde"), "abcde", 5, 0, 5);
- test(S("abcdeabcde"), "abcde", 5, 1, 5);
- test(S("abcdeabcde"), "abcde", 5, 2, 5);
- test(S("abcdeabcde"), "abcde", 5, 4, 5);
- test(S("abcdeabcde"), "abcde", 5, 5, 5);
- test(S("abcdeabcde"), "abcdeabcde", 5, 0, 5);
- test(S("abcdeabcde"), "abcdeabcde", 5, 1, 5);
- test(S("abcdeabcde"), "abcdeabcde", 5, 5, 5);
- test(S("abcdeabcde"), "abcdeabcde", 5, 9, S::npos);
- test(S("abcdeabcde"), "abcdeabcde", 5, 10, S::npos);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 5, 0, 5);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 5, 1, 5);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 5, 10, S::npos);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 5, 19, S::npos);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 5, 20, S::npos);
- test(S("abcdeabcde"), "", 9, 0, 9);
- test(S("abcdeabcde"), "abcde", 9, 0, 9);
- test(S("abcdeabcde"), "abcde", 9, 1, S::npos);
- test(S("abcdeabcde"), "abcde", 9, 2, S::npos);
- test(S("abcdeabcde"), "abcde", 9, 4, S::npos);
- test(S("abcdeabcde"), "abcde", 9, 5, S::npos);
- test(S("abcdeabcde"), "abcdeabcde", 9, 0, 9);
- test(S("abcdeabcde"), "abcdeabcde", 9, 1, S::npos);
- test(S("abcdeabcde"), "abcdeabcde", 9, 5, S::npos);
- test(S("abcdeabcde"), "abcdeabcde", 9, 9, S::npos);
- test(S("abcdeabcde"), "abcdeabcde", 9, 10, S::npos);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 9, 0, 9);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 9, 1, S::npos);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 9, 10, S::npos);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 9, 19, S::npos);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 9, 20, S::npos);
- test(S("abcdeabcde"), "", 10, 0, 10);
- test(S("abcdeabcde"), "abcde", 10, 0, 10);
- test(S("abcdeabcde"), "abcde", 10, 1, S::npos);
- test(S("abcdeabcde"), "abcde", 10, 2, S::npos);
- test(S("abcdeabcde"), "abcde", 10, 4, S::npos);
- test(S("abcdeabcde"), "abcde", 10, 5, S::npos);
- test(S("abcdeabcde"), "abcdeabcde", 10, 0, 10);
- test(S("abcdeabcde"), "abcdeabcde", 10, 1, S::npos);
+void test1() {
+ test(S("abcde"), "abcde", 5, 4, S::npos);
+ test(S("abcde"), "abcde", 5, 5, S::npos);
+ test(S("abcde"), "abcdeabcde", 5, 0, 5);
+ test(S("abcde"), "abcdeabcde", 5, 1, S::npos);
+ test(S("abcde"), "abcdeabcde", 5, 5, S::npos);
+ test(S("abcde"), "abcdeabcde", 5, 9, S::npos);
+ test(S("abcde"), "abcdeabcde", 5, 10, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 5, 0, 5);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 5, 1, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 5, 10, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 5, 19, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 5, 20, S::npos);
+ test(S("abcde"), "", 6, 0, S::npos);
+ test(S("abcde"), "abcde", 6, 0, S::npos);
+ test(S("abcde"), "abcde", 6, 1, S::npos);
+ test(S("abcde"), "abcde", 6, 2, S::npos);
+ test(S("abcde"), "abcde", 6, 4, S::npos);
+ test(S("abcde"), "abcde", 6, 5, S::npos);
+ test(S("abcde"), "abcdeabcde", 6, 0, S::npos);
+ test(S("abcde"), "abcdeabcde", 6, 1, S::npos);
+ test(S("abcde"), "abcdeabcde", 6, 5, S::npos);
+ test(S("abcde"), "abcdeabcde", 6, 9, S::npos);
+ test(S("abcde"), "abcdeabcde", 6, 10, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 6, 0, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 6, 1, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 6, 10, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 6, 19, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 6, 20, S::npos);
+ test(S("abcdeabcde"), "", 0, 0, 0);
+ test(S("abcdeabcde"), "abcde", 0, 0, 0);
+ test(S("abcdeabcde"), "abcde", 0, 1, 0);
+ test(S("abcdeabcde"), "abcde", 0, 2, 0);
+ test(S("abcdeabcde"), "abcde", 0, 4, 0);
+ test(S("abcdeabcde"), "abcde", 0, 5, 0);
+ test(S("abcdeabcde"), "abcdeabcde", 0, 0, 0);
+ test(S("abcdeabcde"), "abcdeabcde", 0, 1, 0);
+ test(S("abcdeabcde"), "abcdeabcde", 0, 5, 0);
+ test(S("abcdeabcde"), "abcdeabcde", 0, 9, 0);
+ test(S("abcdeabcde"), "abcdeabcde", 0, 10, 0);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 0, 0, 0);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 0, 1, 0);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 0, 10, 0);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 0, 19, S::npos);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 0, 20, S::npos);
+ test(S("abcdeabcde"), "", 1, 0, 1);
+ test(S("abcdeabcde"), "abcde", 1, 0, 1);
+ test(S("abcdeabcde"), "abcde", 1, 1, 5);
+ test(S("abcdeabcde"), "abcde", 1, 2, 5);
+ test(S("abcdeabcde"), "abcde", 1, 4, 5);
+ test(S("abcdeabcde"), "abcde", 1, 5, 5);
+ test(S("abcdeabcde"), "abcdeabcde", 1, 0, 1);
+ test(S("abcdeabcde"), "abcdeabcde", 1, 1, 5);
+ test(S("abcdeabcde"), "abcdeabcde", 1, 5, 5);
+ test(S("abcdeabcde"), "abcdeabcde", 1, 9, S::npos);
+ test(S("abcdeabcde"), "abcdeabcde", 1, 10, S::npos);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 1, 0, 1);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 1, 1, 5);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 1, 10, S::npos);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 1, 19, S::npos);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 1, 20, S::npos);
+ test(S("abcdeabcde"), "", 5, 0, 5);
+ test(S("abcdeabcde"), "abcde", 5, 0, 5);
+ test(S("abcdeabcde"), "abcde", 5, 1, 5);
+ test(S("abcdeabcde"), "abcde", 5, 2, 5);
+ test(S("abcdeabcde"), "abcde", 5, 4, 5);
+ test(S("abcdeabcde"), "abcde", 5, 5, 5);
+ test(S("abcdeabcde"), "abcdeabcde", 5, 0, 5);
+ test(S("abcdeabcde"), "abcdeabcde", 5, 1, 5);
+ test(S("abcdeabcde"), "abcdeabcde", 5, 5, 5);
+ test(S("abcdeabcde"), "abcdeabcde", 5, 9, S::npos);
+ test(S("abcdeabcde"), "abcdeabcde", 5, 10, S::npos);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 5, 0, 5);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 5, 1, 5);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 5, 10, S::npos);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 5, 19, S::npos);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 5, 20, S::npos);
+ test(S("abcdeabcde"), "", 9, 0, 9);
+ test(S("abcdeabcde"), "abcde", 9, 0, 9);
+ test(S("abcdeabcde"), "abcde", 9, 1, S::npos);
+ test(S("abcdeabcde"), "abcde", 9, 2, S::npos);
+ test(S("abcdeabcde"), "abcde", 9, 4, S::npos);
+ test(S("abcdeabcde"), "abcde", 9, 5, S::npos);
+ test(S("abcdeabcde"), "abcdeabcde", 9, 0, 9);
+ test(S("abcdeabcde"), "abcdeabcde", 9, 1, S::npos);
+ test(S("abcdeabcde"), "abcdeabcde", 9, 5, S::npos);
+ test(S("abcdeabcde"), "abcdeabcde", 9, 9, S::npos);
+ test(S("abcdeabcde"), "abcdeabcde", 9, 10, S::npos);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 9, 0, 9);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 9, 1, S::npos);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 9, 10, S::npos);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 9, 19, S::npos);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 9, 20, S::npos);
+ test(S("abcdeabcde"), "", 10, 0, 10);
+ test(S("abcdeabcde"), "abcde", 10, 0, 10);
+ test(S("abcdeabcde"), "abcde", 10, 1, S::npos);
+ test(S("abcdeabcde"), "abcde", 10, 2, S::npos);
+ test(S("abcdeabcde"), "abcde", 10, 4, S::npos);
+ test(S("abcdeabcde"), "abcde", 10, 5, S::npos);
+ test(S("abcdeabcde"), "abcdeabcde", 10, 0, 10);
+ test(S("abcdeabcde"), "abcdeabcde", 10, 1, S::npos);
}
template <class S>
-void test2()
-{
- test(S("abcdeabcde"), "abcdeabcde", 10, 5, S::npos);
- test(S("abcdeabcde"), "abcdeabcde", 10, 9, S::npos);
- test(S("abcdeabcde"), "abcdeabcde", 10, 10, S::npos);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 10, 0, 10);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 10, 1, S::npos);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 10, 10, S::npos);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 10, 19, S::npos);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 10, 20, S::npos);
- test(S("abcdeabcde"), "", 11, 0, S::npos);
- test(S("abcdeabcde"), "abcde", 11, 0, S::npos);
- test(S("abcdeabcde"), "abcde", 11, 1, S::npos);
- test(S("abcdeabcde"), "abcde", 11, 2, S::npos);
- test(S("abcdeabcde"), "abcde", 11, 4, S::npos);
- test(S("abcdeabcde"), "abcde", 11, 5, S::npos);
- test(S("abcdeabcde"), "abcdeabcde", 11, 0, S::npos);
- test(S("abcdeabcde"), "abcdeabcde", 11, 1, S::npos);
- test(S("abcdeabcde"), "abcdeabcde", 11, 5, S::npos);
- test(S("abcdeabcde"), "abcdeabcde", 11, 9, S::npos);
- test(S("abcdeabcde"), "abcdeabcde", 11, 10, S::npos);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 11, 0, S::npos);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 11, 1, S::npos);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 11, 10, S::npos);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 11, 19, S::npos);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 11, 20, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "", 0, 0, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 0, 0, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 0, 1, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 0, 2, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 0, 4, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 0, 5, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 0, 0, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 0, 1, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 0, 5, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 0, 9, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 0, 10, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 0, 0, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 0, 1, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 0, 10, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 0, 19, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 0, 20, 0);
- test(S("abcdeabcdeabcdeabcde"), "", 1, 0, 1);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 1, 0, 1);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 1, 1, 5);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 1, 2, 5);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 1, 4, 5);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 1, 5, 5);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 1, 0, 1);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 1, 1, 5);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 1, 5, 5);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 1, 9, 5);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 1, 10, 5);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 1, 0, 1);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 1, 1, 5);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 1, 10, 5);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 1, 19, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 1, 20, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "", 10, 0, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 10, 0, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 10, 1, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 10, 2, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 10, 4, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 10, 5, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 10, 0, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 10, 1, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 10, 5, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 10, 9, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 10, 10, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 10, 0, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 10, 1, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 10, 10, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 10, 19, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 10, 20, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "", 19, 0, 19);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 19, 0, 19);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 19, 1, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 19, 2, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 19, 4, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 19, 5, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 19, 0, 19);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 19, 1, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 19, 5, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 19, 9, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 19, 10, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 19, 0, 19);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 19, 1, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 19, 10, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 19, 19, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 19, 20, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "", 20, 0, 20);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 20, 0, 20);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 20, 1, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 20, 2, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 20, 4, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 20, 5, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 20, 0, 20);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 20, 1, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 20, 5, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 20, 9, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 20, 10, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 20, 0, 20);
+void test2() {
+ test(S("abcdeabcde"), "abcdeabcde", 10, 5, S::npos);
+ test(S("abcdeabcde"), "abcdeabcde", 10, 9, S::npos);
+ test(S("abcdeabcde"), "abcdeabcde", 10, 10, S::npos);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 10, 0, 10);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 10, 1, S::npos);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 10, 10, S::npos);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 10, 19, S::npos);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 10, 20, S::npos);
+ test(S("abcdeabcde"), "", 11, 0, S::npos);
+ test(S("abcdeabcde"), "abcde", 11, 0, S::npos);
+ test(S("abcdeabcde"), "abcde", 11, 1, S::npos);
+ test(S("abcdeabcde"), "abcde", 11, 2, S::npos);
+ test(S("abcdeabcde"), "abcde", 11, 4, S::npos);
+ test(S("abcdeabcde"), "abcde", 11, 5, S::npos);
+ test(S("abcdeabcde"), "abcdeabcde", 11, 0, S::npos);
+ test(S("abcdeabcde"), "abcdeabcde", 11, 1, S::npos);
+ test(S("abcdeabcde"), "abcdeabcde", 11, 5, S::npos);
+ test(S("abcdeabcde"), "abcdeabcde", 11, 9, S::npos);
+ test(S("abcdeabcde"), "abcdeabcde", 11, 10, S::npos);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 11, 0, S::npos);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 11, 1, S::npos);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 11, 10, S::npos);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 11, 19, S::npos);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 11, 20, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "", 0, 0, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 0, 0, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 0, 1, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 0, 2, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 0, 4, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 0, 5, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 0, 0, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 0, 1, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 0, 5, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 0, 9, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 0, 10, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 0, 0, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 0, 1, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 0, 10, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 0, 19, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 0, 20, 0);
+ test(S("abcdeabcdeabcdeabcde"), "", 1, 0, 1);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 1, 0, 1);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 1, 1, 5);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 1, 2, 5);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 1, 4, 5);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 1, 5, 5);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 1, 0, 1);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 1, 1, 5);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 1, 5, 5);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 1, 9, 5);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 1, 10, 5);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 1, 0, 1);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 1, 1, 5);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 1, 10, 5);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 1, 19, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 1, 20, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "", 10, 0, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 10, 0, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 10, 1, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 10, 2, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 10, 4, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 10, 5, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 10, 0, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 10, 1, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 10, 5, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 10, 9, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 10, 10, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 10, 0, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 10, 1, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 10, 10, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 10, 19, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 10, 20, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "", 19, 0, 19);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 19, 0, 19);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 19, 1, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 19, 2, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 19, 4, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 19, 5, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 19, 0, 19);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 19, 1, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 19, 5, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 19, 9, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 19, 10, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 19, 0, 19);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 19, 1, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 19, 10, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 19, 19, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 19, 20, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "", 20, 0, 20);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 20, 0, 20);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 20, 1, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 20, 2, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 20, 4, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 20, 5, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 20, 0, 20);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 20, 1, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 20, 5, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 20, 9, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 20, 10, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 20, 0, 20);
}
template <class S>
-void test3()
-{
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 20, 1, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 20, 10, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 20, 19, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 20, 20, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "", 21, 0, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 21, 0, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 21, 1, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 21, 2, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 21, 4, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 21, 5, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 21, 0, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 21, 1, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 21, 5, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 21, 9, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 21, 10, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 21, 0, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 21, 1, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 21, 10, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 21, 19, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 21, 20, S::npos);
+void test3() {
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 20, 1, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 20, 10, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 20, 19, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 20, 20, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "", 21, 0, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 21, 0, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 21, 1, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 21, 2, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 21, 4, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 21, 5, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 21, 0, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 21, 1, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 21, 5, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 21, 9, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 21, 10, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 21, 0, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 21, 1, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 21, 10, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 21, 19, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 21, 20, S::npos);
}
-int main(int, char**)
-{
- {
+int main(int, char**) {
+ {
typedef std::string_view S;
test0<S>();
test1<S>();
test2<S>();
test3<S>();
- }
+ }
#if TEST_STD_VER > 11
- {
+ {
typedef std::basic_string_view<char, constexpr_char_traits<char>> SV;
- constexpr SV sv1;
- constexpr SV sv2 { "abcde", 5 };
+ constexpr SV sv1;
+ constexpr SV sv2{"abcde", 5};
- static_assert (sv1.find( "", 0, 0 ) == 0, "" );
- static_assert (sv1.find( "abcde", 0, 0 ) == 0, "" );
- static_assert (sv1.find( "abcde", 0, 1 ) == SV::npos, "" );
- static_assert (sv2.find( "", 0, 0 ) == 0, "" );
- static_assert (sv2.find( "abcde", 0, 0 ) == 0, "" );
- static_assert (sv2.find( "abcde", 0, 1 ) == 0, "" );
- }
+ static_assert(sv1.find("", 0, 0) == 0, "");
+ static_assert(sv1.find("abcde", 0, 0) == 0, "");
+ static_assert(sv1.find("abcde", 0, 1) == SV::npos, "");
+ static_assert(sv2.find("", 0, 0) == 0, "");
+ static_assert(sv2.find("abcde", 0, 0) == 0, "");
+ static_assert(sv2.find("abcde", 0, 1) == 0, "");
+ }
#endif
return 0;
diff --git a/libcxx/test/std/strings/string.view/string.view.find/find_string_view_size.pass.cpp b/libcxx/test/std/strings/string.view/string.view.find/find_string_view_size.pass.cpp
index d189578a5c6135a..e67dacf3f153d5d 100644
--- a/libcxx/test/std/strings/string.view/string.view.find/find_string_view_size.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.find/find_string_view_size.pass.cpp
@@ -19,151 +19,144 @@
#include "constexpr_char_traits.h"
template <class S>
-void
-test(const S& s, const S& str, typename S::size_type pos, typename S::size_type x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.find(str, pos));
- assert(s.find(str, pos) == x);
- if (x != S::npos)
- assert(pos <= x && x + str.size() <= s.size());
+void test(const S& s, const S& str, typename S::size_type pos, typename S::size_type x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.find(str, pos));
+ assert(s.find(str, pos) == x);
+ if (x != S::npos)
+ assert(pos <= x && x + str.size() <= s.size());
}
template <class S>
-void
-test(const S& s, const S& str, typename S::size_type x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.find(str));
- assert(s.find(str) == x);
- if (x != S::npos)
- assert(0 <= x && x + str.size() <= s.size());
+void test(const S& s, const S& str, typename S::size_type x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.find(str));
+ assert(s.find(str) == x);
+ if (x != S::npos)
+ assert(0 <= x && x + str.size() <= s.size());
}
template <class S>
-void test0()
-{
- test(S(""), S(""), 0, 0);
- test(S(""), S("abcde"), 0, S::npos);
- test(S(""), S("abcdeabcde"), 0, S::npos);
- test(S(""), S("abcdeabcdeabcdeabcde"), 0, S::npos);
- test(S(""), S(""), 1, S::npos);
- test(S(""), S("abcde"), 1, S::npos);
- test(S(""), S("abcdeabcde"), 1, S::npos);
- test(S(""), S("abcdeabcdeabcdeabcde"), 1, S::npos);
- test(S("abcde"), S(""), 0, 0);
- test(S("abcde"), S("abcde"), 0, 0);
- test(S("abcde"), S("abcdeabcde"), 0, S::npos);
- test(S("abcde"), S("abcdeabcdeabcdeabcde"), 0, S::npos);
- test(S("abcde"), S(""), 1, 1);
- test(S("abcde"), S("abcde"), 1, S::npos);
- test(S("abcde"), S("abcdeabcde"), 1, S::npos);
- test(S("abcde"), S("abcdeabcdeabcdeabcde"), 1, S::npos);
- test(S("abcde"), S(""), 2, 2);
- test(S("abcde"), S("abcde"), 2, S::npos);
- test(S("abcde"), S("abcdeabcde"), 2, S::npos);
- test(S("abcde"), S("abcdeabcdeabcdeabcde"), 2, S::npos);
- test(S("abcde"), S(""), 4, 4);
- test(S("abcde"), S("abcde"), 4, S::npos);
- test(S("abcde"), S("abcdeabcde"), 4, S::npos);
- test(S("abcde"), S("abcdeabcdeabcdeabcde"), 4, S::npos);
- test(S("abcde"), S(""), 5, 5);
- test(S("abcde"), S("abcde"), 5, S::npos);
- test(S("abcde"), S("abcdeabcde"), 5, S::npos);
- test(S("abcde"), S("abcdeabcdeabcdeabcde"), 5, S::npos);
- test(S("abcde"), S(""), 6, S::npos);
- test(S("abcde"), S("abcde"), 6, S::npos);
- test(S("abcde"), S("abcdeabcde"), 6, S::npos);
- test(S("abcde"), S("abcdeabcdeabcdeabcde"), 6, S::npos);
- test(S("abcdeabcde"), S(""), 0, 0);
- test(S("abcdeabcde"), S("abcde"), 0, 0);
- test(S("abcdeabcde"), S("abcdeabcde"), 0, 0);
- test(S("abcdeabcde"), S("abcdeabcdeabcdeabcde"), 0, S::npos);
- test(S("abcdeabcde"), S(""), 1, 1);
- test(S("abcdeabcde"), S("abcde"), 1, 5);
- test(S("abcdeabcde"), S("abcdeabcde"), 1, S::npos);
- test(S("abcdeabcde"), S("abcdeabcdeabcdeabcde"), 1, S::npos);
- test(S("abcdeabcde"), S(""), 5, 5);
- test(S("abcdeabcde"), S("abcde"), 5, 5);
- test(S("abcdeabcde"), S("abcdeabcde"), 5, S::npos);
- test(S("abcdeabcde"), S("abcdeabcdeabcdeabcde"), 5, S::npos);
- test(S("abcdeabcde"), S(""), 9, 9);
- test(S("abcdeabcde"), S("abcde"), 9, S::npos);
- test(S("abcdeabcde"), S("abcdeabcde"), 9, S::npos);
- test(S("abcdeabcde"), S("abcdeabcdeabcdeabcde"), 9, S::npos);
- test(S("abcdeabcde"), S(""), 10, 10);
- test(S("abcdeabcde"), S("abcde"), 10, S::npos);
- test(S("abcdeabcde"), S("abcdeabcde"), 10, S::npos);
- test(S("abcdeabcde"), S("abcdeabcdeabcdeabcde"), 10, S::npos);
- test(S("abcdeabcde"), S(""), 11, S::npos);
- test(S("abcdeabcde"), S("abcde"), 11, S::npos);
- test(S("abcdeabcde"), S("abcdeabcde"), 11, S::npos);
- test(S("abcdeabcde"), S("abcdeabcdeabcdeabcde"), 11, S::npos);
- test(S("abcdeabcdeabcdeabcde"), S(""), 0, 0);
- test(S("abcdeabcdeabcdeabcde"), S("abcde"), 0, 0);
- test(S("abcdeabcdeabcdeabcde"), S("abcdeabcde"), 0, 0);
- test(S("abcdeabcdeabcdeabcde"), S("abcdeabcdeabcdeabcde"), 0, 0);
- test(S("abcdeabcdeabcdeabcde"), S(""), 1, 1);
- test(S("abcdeabcdeabcdeabcde"), S("abcde"), 1, 5);
- test(S("abcdeabcdeabcdeabcde"), S("abcdeabcde"), 1, 5);
- test(S("abcdeabcdeabcdeabcde"), S("abcdeabcdeabcdeabcde"), 1, S::npos);
- test(S("abcdeabcdeabcdeabcde"), S(""), 10, 10);
- test(S("abcdeabcdeabcdeabcde"), S("abcde"), 10, 10);
- test(S("abcdeabcdeabcdeabcde"), S("abcdeabcde"), 10, 10);
- test(S("abcdeabcdeabcdeabcde"), S("abcdeabcdeabcdeabcde"), 10, S::npos);
- test(S("abcdeabcdeabcdeabcde"), S(""), 19, 19);
- test(S("abcdeabcdeabcdeabcde"), S("abcde"), 19, S::npos);
- test(S("abcdeabcdeabcdeabcde"), S("abcdeabcde"), 19, S::npos);
- test(S("abcdeabcdeabcdeabcde"), S("abcdeabcdeabcdeabcde"), 19, S::npos);
- test(S("abcdeabcdeabcdeabcde"), S(""), 20, 20);
- test(S("abcdeabcdeabcdeabcde"), S("abcde"), 20, S::npos);
- test(S("abcdeabcdeabcdeabcde"), S("abcdeabcde"), 20, S::npos);
- test(S("abcdeabcdeabcdeabcde"), S("abcdeabcdeabcdeabcde"), 20, S::npos);
- test(S("abcdeabcdeabcdeabcde"), S(""), 21, S::npos);
- test(S("abcdeabcdeabcdeabcde"), S("abcde"), 21, S::npos);
- test(S("abcdeabcdeabcdeabcde"), S("abcdeabcde"), 21, S::npos);
- test(S("abcdeabcdeabcdeabcde"), S("abcdeabcdeabcdeabcde"), 21, S::npos);
+void test0() {
+ test(S(""), S(""), 0, 0);
+ test(S(""), S("abcde"), 0, S::npos);
+ test(S(""), S("abcdeabcde"), 0, S::npos);
+ test(S(""), S("abcdeabcdeabcdeabcde"), 0, S::npos);
+ test(S(""), S(""), 1, S::npos);
+ test(S(""), S("abcde"), 1, S::npos);
+ test(S(""), S("abcdeabcde"), 1, S::npos);
+ test(S(""), S("abcdeabcdeabcdeabcde"), 1, S::npos);
+ test(S("abcde"), S(""), 0, 0);
+ test(S("abcde"), S("abcde"), 0, 0);
+ test(S("abcde"), S("abcdeabcde"), 0, S::npos);
+ test(S("abcde"), S("abcdeabcdeabcdeabcde"), 0, S::npos);
+ test(S("abcde"), S(""), 1, 1);
+ test(S("abcde"), S("abcde"), 1, S::npos);
+ test(S("abcde"), S("abcdeabcde"), 1, S::npos);
+ test(S("abcde"), S("abcdeabcdeabcdeabcde"), 1, S::npos);
+ test(S("abcde"), S(""), 2, 2);
+ test(S("abcde"), S("abcde"), 2, S::npos);
+ test(S("abcde"), S("abcdeabcde"), 2, S::npos);
+ test(S("abcde"), S("abcdeabcdeabcdeabcde"), 2, S::npos);
+ test(S("abcde"), S(""), 4, 4);
+ test(S("abcde"), S("abcde"), 4, S::npos);
+ test(S("abcde"), S("abcdeabcde"), 4, S::npos);
+ test(S("abcde"), S("abcdeabcdeabcdeabcde"), 4, S::npos);
+ test(S("abcde"), S(""), 5, 5);
+ test(S("abcde"), S("abcde"), 5, S::npos);
+ test(S("abcde"), S("abcdeabcde"), 5, S::npos);
+ test(S("abcde"), S("abcdeabcdeabcdeabcde"), 5, S::npos);
+ test(S("abcde"), S(""), 6, S::npos);
+ test(S("abcde"), S("abcde"), 6, S::npos);
+ test(S("abcde"), S("abcdeabcde"), 6, S::npos);
+ test(S("abcde"), S("abcdeabcdeabcdeabcde"), 6, S::npos);
+ test(S("abcdeabcde"), S(""), 0, 0);
+ test(S("abcdeabcde"), S("abcde"), 0, 0);
+ test(S("abcdeabcde"), S("abcdeabcde"), 0, 0);
+ test(S("abcdeabcde"), S("abcdeabcdeabcdeabcde"), 0, S::npos);
+ test(S("abcdeabcde"), S(""), 1, 1);
+ test(S("abcdeabcde"), S("abcde"), 1, 5);
+ test(S("abcdeabcde"), S("abcdeabcde"), 1, S::npos);
+ test(S("abcdeabcde"), S("abcdeabcdeabcdeabcde"), 1, S::npos);
+ test(S("abcdeabcde"), S(""), 5, 5);
+ test(S("abcdeabcde"), S("abcde"), 5, 5);
+ test(S("abcdeabcde"), S("abcdeabcde"), 5, S::npos);
+ test(S("abcdeabcde"), S("abcdeabcdeabcdeabcde"), 5, S::npos);
+ test(S("abcdeabcde"), S(""), 9, 9);
+ test(S("abcdeabcde"), S("abcde"), 9, S::npos);
+ test(S("abcdeabcde"), S("abcdeabcde"), 9, S::npos);
+ test(S("abcdeabcde"), S("abcdeabcdeabcdeabcde"), 9, S::npos);
+ test(S("abcdeabcde"), S(""), 10, 10);
+ test(S("abcdeabcde"), S("abcde"), 10, S::npos);
+ test(S("abcdeabcde"), S("abcdeabcde"), 10, S::npos);
+ test(S("abcdeabcde"), S("abcdeabcdeabcdeabcde"), 10, S::npos);
+ test(S("abcdeabcde"), S(""), 11, S::npos);
+ test(S("abcdeabcde"), S("abcde"), 11, S::npos);
+ test(S("abcdeabcde"), S("abcdeabcde"), 11, S::npos);
+ test(S("abcdeabcde"), S("abcdeabcdeabcdeabcde"), 11, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), S(""), 0, 0);
+ test(S("abcdeabcdeabcdeabcde"), S("abcde"), 0, 0);
+ test(S("abcdeabcdeabcdeabcde"), S("abcdeabcde"), 0, 0);
+ test(S("abcdeabcdeabcdeabcde"), S("abcdeabcdeabcdeabcde"), 0, 0);
+ test(S("abcdeabcdeabcdeabcde"), S(""), 1, 1);
+ test(S("abcdeabcdeabcdeabcde"), S("abcde"), 1, 5);
+ test(S("abcdeabcdeabcdeabcde"), S("abcdeabcde"), 1, 5);
+ test(S("abcdeabcdeabcdeabcde"), S("abcdeabcdeabcdeabcde"), 1, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), S(""), 10, 10);
+ test(S("abcdeabcdeabcdeabcde"), S("abcde"), 10, 10);
+ test(S("abcdeabcdeabcdeabcde"), S("abcdeabcde"), 10, 10);
+ test(S("abcdeabcdeabcdeabcde"), S("abcdeabcdeabcdeabcde"), 10, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), S(""), 19, 19);
+ test(S("abcdeabcdeabcdeabcde"), S("abcde"), 19, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), S("abcdeabcde"), 19, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), S("abcdeabcdeabcdeabcde"), 19, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), S(""), 20, 20);
+ test(S("abcdeabcdeabcdeabcde"), S("abcde"), 20, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), S("abcdeabcde"), 20, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), S("abcdeabcdeabcdeabcde"), 20, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), S(""), 21, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), S("abcde"), 21, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), S("abcdeabcde"), 21, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), S("abcdeabcdeabcdeabcde"), 21, S::npos);
}
template <class S>
-void test1()
-{
- test(S(""), S(""), 0);
- test(S(""), S("abcde"), S::npos);
- test(S(""), S("abcdeabcde"), S::npos);
- test(S(""), S("abcdeabcdeabcdeabcde"), S::npos);
- test(S("abcde"), S(""), 0);
- test(S("abcde"), S("abcde"), 0);
- test(S("abcde"), S("abcdeabcde"), S::npos);
- test(S("abcde"), S("abcdeabcdeabcdeabcde"), S::npos);
- test(S("abcdeabcde"), S(""), 0);
- test(S("abcdeabcde"), S("abcde"), 0);
- test(S("abcdeabcde"), S("abcdeabcde"), 0);
- test(S("abcdeabcde"), S("abcdeabcdeabcdeabcde"), S::npos);
- test(S("abcdeabcdeabcdeabcde"), S(""), 0);
- test(S("abcdeabcdeabcdeabcde"), S("abcde"), 0);
- test(S("abcdeabcdeabcdeabcde"), S("abcdeabcde"), 0);
- test(S("abcdeabcdeabcdeabcde"), S("abcdeabcdeabcdeabcde"), 0);
+void test1() {
+ test(S(""), S(""), 0);
+ test(S(""), S("abcde"), S::npos);
+ test(S(""), S("abcdeabcde"), S::npos);
+ test(S(""), S("abcdeabcdeabcdeabcde"), S::npos);
+ test(S("abcde"), S(""), 0);
+ test(S("abcde"), S("abcde"), 0);
+ test(S("abcde"), S("abcdeabcde"), S::npos);
+ test(S("abcde"), S("abcdeabcdeabcdeabcde"), S::npos);
+ test(S("abcdeabcde"), S(""), 0);
+ test(S("abcdeabcde"), S("abcde"), 0);
+ test(S("abcdeabcde"), S("abcdeabcde"), 0);
+ test(S("abcdeabcde"), S("abcdeabcdeabcdeabcde"), S::npos);
+ test(S("abcdeabcdeabcdeabcde"), S(""), 0);
+ test(S("abcdeabcdeabcdeabcde"), S("abcde"), 0);
+ test(S("abcdeabcdeabcdeabcde"), S("abcdeabcde"), 0);
+ test(S("abcdeabcdeabcdeabcde"), S("abcdeabcdeabcdeabcde"), 0);
}
-int main(int, char**)
-{
- {
+int main(int, char**) {
+ {
typedef std::string_view S;
test0<S>();
test1<S>();
- }
+ }
#if TEST_STD_VER > 11
- {
+ {
typedef std::basic_string_view<char, constexpr_char_traits<char>> SV;
- constexpr SV sv1;
- constexpr SV sv2 { "abcde", 5 };
+ constexpr SV sv1;
+ constexpr SV sv2{"abcde", 5};
- static_assert (sv1.find(sv1) == 0, "" );
- static_assert (sv1.find(sv2) == SV::npos, "" );
- static_assert (sv2.find(sv1) == 0, "" );
- static_assert (sv2.find(sv2) == 0, "" );
- static_assert (sv2.find(sv2, 1 ) == SV::npos, "" );
- }
+ static_assert(sv1.find(sv1) == 0, "");
+ static_assert(sv1.find(sv2) == SV::npos, "");
+ static_assert(sv2.find(sv1) == 0, "");
+ static_assert(sv2.find(sv2) == 0, "");
+ static_assert(sv2.find(sv2, 1) == SV::npos, "");
+ }
#endif
return 0;
diff --git a/libcxx/test/std/strings/string.view/string.view.find/rfind_char_size.pass.cpp b/libcxx/test/std/strings/string.view/string.view.find/rfind_char_size.pass.cpp
index 96a0be54ebbdb53..8393d34ae0594a3 100644
--- a/libcxx/test/std/strings/string.view/string.view.find/rfind_char_size.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.find/rfind_char_size.pass.cpp
@@ -18,29 +18,23 @@
#include "constexpr_char_traits.h"
template <class S>
-void
-test(const S& s, typename S::value_type c, typename S::size_type pos,
- typename S::size_type x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.rfind(c, pos));
- assert(s.rfind(c, pos) == x);
- if (x != S::npos)
- assert(x <= pos && x + 1 <= s.size());
+void test(const S& s, typename S::value_type c, typename S::size_type pos, typename S::size_type x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.rfind(c, pos));
+ assert(s.rfind(c, pos) == x);
+ if (x != S::npos)
+ assert(x <= pos && x + 1 <= s.size());
}
template <class S>
-void
-test(const S& s, typename S::value_type c, typename S::size_type x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.rfind(c));
- assert(s.rfind(c) == x);
- if (x != S::npos)
- assert(x + 1 <= s.size());
+void test(const S& s, typename S::value_type c, typename S::size_type x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.rfind(c));
+ assert(s.rfind(c) == x);
+ if (x != S::npos)
+ assert(x + 1 <= s.size());
}
-int main(int, char**)
-{
- {
+int main(int, char**) {
+ {
typedef std::string_view S;
test(S(""), 'b', 0, S::npos);
test(S(""), 'b', 1, S::npos);
@@ -67,22 +61,22 @@ int main(int, char**)
test(S("abcde"), 'b', 1);
test(S("abcdeabcde"), 'b', 6);
test(S("abcdeabcdeabcdeabcde"), 'b', 16);
- }
+ }
#if TEST_STD_VER > 11
- {
+ {
typedef std::basic_string_view<char, constexpr_char_traits<char>> SV;
- constexpr SV sv1;
- constexpr SV sv2 { "abcde", 5 };
+ constexpr SV sv1;
+ constexpr SV sv2{"abcde", 5};
- static_assert (sv1.rfind( 'b', 0 ) == SV::npos, "" );
- static_assert (sv1.rfind( 'b', 1 ) == SV::npos, "" );
- static_assert (sv2.rfind( 'b', 0 ) == SV::npos, "" );
- static_assert (sv2.rfind( 'b', 1 ) == 1, "" );
- static_assert (sv2.rfind( 'b', 2 ) == 1, "" );
- static_assert (sv2.rfind( 'b', 3 ) == 1, "" );
- static_assert (sv2.rfind( 'b', 4 ) == 1, "" );
- }
+ static_assert(sv1.rfind('b', 0) == SV::npos, "");
+ static_assert(sv1.rfind('b', 1) == SV::npos, "");
+ static_assert(sv2.rfind('b', 0) == SV::npos, "");
+ static_assert(sv2.rfind('b', 1) == 1, "");
+ static_assert(sv2.rfind('b', 2) == 1, "");
+ static_assert(sv2.rfind('b', 3) == 1, "");
+ static_assert(sv2.rfind('b', 4) == 1, "");
+ }
#endif
return 0;
diff --git a/libcxx/test/std/strings/string.view/string.view.find/rfind_pointer_size.pass.cpp b/libcxx/test/std/strings/string.view/string.view.find/rfind_pointer_size.pass.cpp
index 6dfde175148ccd0..f436ece805eb58e 100644
--- a/libcxx/test/std/strings/string.view/string.view.find/rfind_pointer_size.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.find/rfind_pointer_size.pass.cpp
@@ -18,159 +18,149 @@
#include "constexpr_char_traits.h"
template <class S>
-void
-test(const S& s, const typename S::value_type* str, typename S::size_type pos,
- typename S::size_type x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.rfind(str, pos));
- assert(s.rfind(str, pos) == x);
- if (x != S::npos)
- {
- typename S::size_type n = S::traits_type::length(str);
- assert(x <= pos && x + n <= s.size());
- }
+void test(const S& s, const typename S::value_type* str, typename S::size_type pos, typename S::size_type x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.rfind(str, pos));
+ assert(s.rfind(str, pos) == x);
+ if (x != S::npos) {
+ typename S::size_type n = S::traits_type::length(str);
+ assert(x <= pos && x + n <= s.size());
+ }
}
template <class S>
-void
-test(const S& s, const typename S::value_type* str, typename S::size_type x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.rfind(str));
- assert(s.rfind(str) == x);
- if (x != S::npos)
- {
- typename S::size_type pos = s.size();
- typename S::size_type n = S::traits_type::length(str);
- assert(x <= pos && x + n <= s.size());
- }
+void test(const S& s, const typename S::value_type* str, typename S::size_type x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.rfind(str));
+ assert(s.rfind(str) == x);
+ if (x != S::npos) {
+ typename S::size_type pos = s.size();
+ typename S::size_type n = S::traits_type::length(str);
+ assert(x <= pos && x + n <= s.size());
+ }
}
template <class S>
-void test0()
-{
- test(S(""), "", 0, 0);
- test(S(""), "abcde", 0, S::npos);
- test(S(""), "abcdeabcde", 0, S::npos);
- test(S(""), "abcdeabcdeabcdeabcde", 0, S::npos);
- test(S(""), "", 1, 0);
- test(S(""), "abcde", 1, S::npos);
- test(S(""), "abcdeabcde", 1, S::npos);
- test(S(""), "abcdeabcdeabcdeabcde", 1, S::npos);
- test(S("abcde"), "", 0, 0);
- test(S("abcde"), "abcde", 0, 0);
- test(S("abcde"), "abcdeabcde", 0, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 0, S::npos);
- test(S("abcde"), "", 1, 1);
- test(S("abcde"), "abcde", 1, 0);
- test(S("abcde"), "abcdeabcde", 1, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 1, S::npos);
- test(S("abcde"), "", 2, 2);
- test(S("abcde"), "abcde", 2, 0);
- test(S("abcde"), "abcdeabcde", 2, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 2, S::npos);
- test(S("abcde"), "", 4, 4);
- test(S("abcde"), "abcde", 4, 0);
- test(S("abcde"), "abcdeabcde", 4, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 4, S::npos);
- test(S("abcde"), "", 5, 5);
- test(S("abcde"), "abcde", 5, 0);
- test(S("abcde"), "abcdeabcde", 5, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 5, S::npos);
- test(S("abcde"), "", 6, 5);
- test(S("abcde"), "abcde", 6, 0);
- test(S("abcde"), "abcdeabcde", 6, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 6, S::npos);
- test(S("abcdeabcde"), "", 0, 0);
- test(S("abcdeabcde"), "abcde", 0, 0);
- test(S("abcdeabcde"), "abcdeabcde", 0, 0);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 0, S::npos);
- test(S("abcdeabcde"), "", 1, 1);
- test(S("abcdeabcde"), "abcde", 1, 0);
- test(S("abcdeabcde"), "abcdeabcde", 1, 0);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 1, S::npos);
- test(S("abcdeabcde"), "", 5, 5);
- test(S("abcdeabcde"), "abcde", 5, 5);
- test(S("abcdeabcde"), "abcdeabcde", 5, 0);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 5, S::npos);
- test(S("abcdeabcde"), "", 9, 9);
- test(S("abcdeabcde"), "abcde", 9, 5);
- test(S("abcdeabcde"), "abcdeabcde", 9, 0);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 9, S::npos);
- test(S("abcdeabcde"), "", 10, 10);
- test(S("abcdeabcde"), "abcde", 10, 5);
- test(S("abcdeabcde"), "abcdeabcde", 10, 0);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 10, S::npos);
- test(S("abcdeabcde"), "", 11, 10);
- test(S("abcdeabcde"), "abcde", 11, 5);
- test(S("abcdeabcde"), "abcdeabcde", 11, 0);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 11, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "", 0, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 0, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 0, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 0, 0);
- test(S("abcdeabcdeabcdeabcde"), "", 1, 1);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 1, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 1, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 1, 0);
- test(S("abcdeabcdeabcdeabcde"), "", 10, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 10, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 10, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 10, 0);
- test(S("abcdeabcdeabcdeabcde"), "", 19, 19);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 19, 15);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 19, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 19, 0);
- test(S("abcdeabcdeabcdeabcde"), "", 20, 20);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 20, 15);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 20, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 20, 0);
- test(S("abcdeabcdeabcdeabcde"), "", 21, 20);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 21, 15);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 21, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 21, 0);
+void test0() {
+ test(S(""), "", 0, 0);
+ test(S(""), "abcde", 0, S::npos);
+ test(S(""), "abcdeabcde", 0, S::npos);
+ test(S(""), "abcdeabcdeabcdeabcde", 0, S::npos);
+ test(S(""), "", 1, 0);
+ test(S(""), "abcde", 1, S::npos);
+ test(S(""), "abcdeabcde", 1, S::npos);
+ test(S(""), "abcdeabcdeabcdeabcde", 1, S::npos);
+ test(S("abcde"), "", 0, 0);
+ test(S("abcde"), "abcde", 0, 0);
+ test(S("abcde"), "abcdeabcde", 0, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 0, S::npos);
+ test(S("abcde"), "", 1, 1);
+ test(S("abcde"), "abcde", 1, 0);
+ test(S("abcde"), "abcdeabcde", 1, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 1, S::npos);
+ test(S("abcde"), "", 2, 2);
+ test(S("abcde"), "abcde", 2, 0);
+ test(S("abcde"), "abcdeabcde", 2, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 2, S::npos);
+ test(S("abcde"), "", 4, 4);
+ test(S("abcde"), "abcde", 4, 0);
+ test(S("abcde"), "abcdeabcde", 4, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 4, S::npos);
+ test(S("abcde"), "", 5, 5);
+ test(S("abcde"), "abcde", 5, 0);
+ test(S("abcde"), "abcdeabcde", 5, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 5, S::npos);
+ test(S("abcde"), "", 6, 5);
+ test(S("abcde"), "abcde", 6, 0);
+ test(S("abcde"), "abcdeabcde", 6, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 6, S::npos);
+ test(S("abcdeabcde"), "", 0, 0);
+ test(S("abcdeabcde"), "abcde", 0, 0);
+ test(S("abcdeabcde"), "abcdeabcde", 0, 0);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 0, S::npos);
+ test(S("abcdeabcde"), "", 1, 1);
+ test(S("abcdeabcde"), "abcde", 1, 0);
+ test(S("abcdeabcde"), "abcdeabcde", 1, 0);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 1, S::npos);
+ test(S("abcdeabcde"), "", 5, 5);
+ test(S("abcdeabcde"), "abcde", 5, 5);
+ test(S("abcdeabcde"), "abcdeabcde", 5, 0);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 5, S::npos);
+ test(S("abcdeabcde"), "", 9, 9);
+ test(S("abcdeabcde"), "abcde", 9, 5);
+ test(S("abcdeabcde"), "abcdeabcde", 9, 0);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 9, S::npos);
+ test(S("abcdeabcde"), "", 10, 10);
+ test(S("abcdeabcde"), "abcde", 10, 5);
+ test(S("abcdeabcde"), "abcdeabcde", 10, 0);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 10, S::npos);
+ test(S("abcdeabcde"), "", 11, 10);
+ test(S("abcdeabcde"), "abcde", 11, 5);
+ test(S("abcdeabcde"), "abcdeabcde", 11, 0);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 11, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "", 0, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 0, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 0, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 0, 0);
+ test(S("abcdeabcdeabcdeabcde"), "", 1, 1);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 1, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 1, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 1, 0);
+ test(S("abcdeabcdeabcdeabcde"), "", 10, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 10, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 10, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 10, 0);
+ test(S("abcdeabcdeabcdeabcde"), "", 19, 19);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 19, 15);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 19, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 19, 0);
+ test(S("abcdeabcdeabcdeabcde"), "", 20, 20);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 20, 15);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 20, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 20, 0);
+ test(S("abcdeabcdeabcdeabcde"), "", 21, 20);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 21, 15);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 21, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 21, 0);
}
template <class S>
-void test1()
-{
- test(S(""), "", 0);
- test(S(""), "abcde", S::npos);
- test(S(""), "abcdeabcde", S::npos);
- test(S(""), "abcdeabcdeabcdeabcde", S::npos);
- test(S("abcde"), "", 5);
- test(S("abcde"), "abcde", 0);
- test(S("abcde"), "abcdeabcde", S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", S::npos);
- test(S("abcdeabcde"), "", 10);
- test(S("abcdeabcde"), "abcde", 5);
- test(S("abcdeabcde"), "abcdeabcde", 0);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", S::npos);
- test(S("abcdeabcdeabcdeabcde"), "", 20);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 15);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 10);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 0);
+void test1() {
+ test(S(""), "", 0);
+ test(S(""), "abcde", S::npos);
+ test(S(""), "abcdeabcde", S::npos);
+ test(S(""), "abcdeabcdeabcdeabcde", S::npos);
+ test(S("abcde"), "", 5);
+ test(S("abcde"), "abcde", 0);
+ test(S("abcde"), "abcdeabcde", S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", S::npos);
+ test(S("abcdeabcde"), "", 10);
+ test(S("abcdeabcde"), "abcde", 5);
+ test(S("abcdeabcde"), "abcdeabcde", 0);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "", 20);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 15);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 0);
}
-int main(int, char**)
-{
- {
+int main(int, char**) {
+ {
typedef std::string_view S;
test0<S>();
test1<S>();
- }
+ }
#if TEST_STD_VER > 11
- {
+ {
typedef std::basic_string_view<char, constexpr_char_traits<char>> SV;
- constexpr SV sv1;
- constexpr SV sv2 { "abcde", 5 };
+ constexpr SV sv1;
+ constexpr SV sv2{"abcde", 5};
- static_assert (sv1.rfind( "") == 0, "" );
- static_assert (sv1.rfind( "abcde") == SV::npos, "" );
- static_assert (sv2.rfind( "") == 5, "" );
- static_assert (sv2.rfind( "abcde") == 0, "" );
- static_assert (sv2.rfind( "abcde", 1) == 0, "" );
- }
+ static_assert(sv1.rfind("") == 0, "");
+ static_assert(sv1.rfind("abcde") == SV::npos, "");
+ static_assert(sv2.rfind("") == 5, "");
+ static_assert(sv2.rfind("abcde") == 0, "");
+ static_assert(sv2.rfind("abcde", 1) == 0, "");
+ }
#endif
return 0;
diff --git a/libcxx/test/std/strings/string.view/string.view.find/rfind_pointer_size_size.pass.cpp b/libcxx/test/std/strings/string.view/string.view.find/rfind_pointer_size_size.pass.cpp
index 509293b956e20be..88b8370a90b01bd 100644
--- a/libcxx/test/std/strings/string.view/string.view.find/rfind_pointer_size_size.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.find/rfind_pointer_size_size.pass.cpp
@@ -18,379 +18,375 @@
#include "constexpr_char_traits.h"
template <class S>
-void
-test(const S& s, const typename S::value_type* str, typename S::size_type pos,
- typename S::size_type n, typename S::size_type x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.rfind(str, pos, n));
- assert(s.rfind(str, pos, n) == x);
- if (x != S::npos)
- assert(x <= pos && x + n <= s.size());
+void test(const S& s,
+ const typename S::value_type* str,
+ typename S::size_type pos,
+ typename S::size_type n,
+ typename S::size_type x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.rfind(str, pos, n));
+ assert(s.rfind(str, pos, n) == x);
+ if (x != S::npos)
+ assert(x <= pos && x + n <= s.size());
}
template <class S>
-void test0()
-{
- test(S(""), "", 0, 0, 0);
- test(S(""), "abcde", 0, 0, 0);
- test(S(""), "abcde", 0, 1, S::npos);
- test(S(""), "abcde", 0, 2, S::npos);
- test(S(""), "abcde", 0, 4, S::npos);
- test(S(""), "abcde", 0, 5, S::npos);
- test(S(""), "abcdeabcde", 0, 0, 0);
- test(S(""), "abcdeabcde", 0, 1, S::npos);
- test(S(""), "abcdeabcde", 0, 5, S::npos);
- test(S(""), "abcdeabcde", 0, 9, S::npos);
- test(S(""), "abcdeabcde", 0, 10, S::npos);
- test(S(""), "abcdeabcdeabcdeabcde", 0, 0, 0);
- test(S(""), "abcdeabcdeabcdeabcde", 0, 1, S::npos);
- test(S(""), "abcdeabcdeabcdeabcde", 0, 10, S::npos);
- test(S(""), "abcdeabcdeabcdeabcde", 0, 19, S::npos);
- test(S(""), "abcdeabcdeabcdeabcde", 0, 20, S::npos);
- test(S(""), "", 1, 0, 0);
- test(S(""), "abcde", 1, 0, 0);
- test(S(""), "abcde", 1, 1, S::npos);
- test(S(""), "abcde", 1, 2, S::npos);
- test(S(""), "abcde", 1, 4, S::npos);
- test(S(""), "abcde", 1, 5, S::npos);
- test(S(""), "abcdeabcde", 1, 0, 0);
- test(S(""), "abcdeabcde", 1, 1, S::npos);
- test(S(""), "abcdeabcde", 1, 5, S::npos);
- test(S(""), "abcdeabcde", 1, 9, S::npos);
- test(S(""), "abcdeabcde", 1, 10, S::npos);
- test(S(""), "abcdeabcdeabcdeabcde", 1, 0, 0);
- test(S(""), "abcdeabcdeabcdeabcde", 1, 1, S::npos);
- test(S(""), "abcdeabcdeabcdeabcde", 1, 10, S::npos);
- test(S(""), "abcdeabcdeabcdeabcde", 1, 19, S::npos);
- test(S(""), "abcdeabcdeabcdeabcde", 1, 20, S::npos);
- test(S("abcde"), "", 0, 0, 0);
- test(S("abcde"), "abcde", 0, 0, 0);
- test(S("abcde"), "abcde", 0, 1, 0);
- test(S("abcde"), "abcde", 0, 2, 0);
- test(S("abcde"), "abcde", 0, 4, 0);
- test(S("abcde"), "abcde", 0, 5, 0);
- test(S("abcde"), "abcdeabcde", 0, 0, 0);
- test(S("abcde"), "abcdeabcde", 0, 1, 0);
- test(S("abcde"), "abcdeabcde", 0, 5, 0);
- test(S("abcde"), "abcdeabcde", 0, 9, S::npos);
- test(S("abcde"), "abcdeabcde", 0, 10, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 0, 0, 0);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 0, 1, 0);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 0, 10, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 0, 19, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 0, 20, S::npos);
- test(S("abcde"), "", 1, 0, 1);
- test(S("abcde"), "abcde", 1, 0, 1);
- test(S("abcde"), "abcde", 1, 1, 0);
- test(S("abcde"), "abcde", 1, 2, 0);
- test(S("abcde"), "abcde", 1, 4, 0);
- test(S("abcde"), "abcde", 1, 5, 0);
- test(S("abcde"), "abcdeabcde", 1, 0, 1);
- test(S("abcde"), "abcdeabcde", 1, 1, 0);
- test(S("abcde"), "abcdeabcde", 1, 5, 0);
- test(S("abcde"), "abcdeabcde", 1, 9, S::npos);
- test(S("abcde"), "abcdeabcde", 1, 10, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 1, 0, 1);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 1, 1, 0);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 1, 10, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 1, 19, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 1, 20, S::npos);
- test(S("abcde"), "", 2, 0, 2);
- test(S("abcde"), "abcde", 2, 0, 2);
- test(S("abcde"), "abcde", 2, 1, 0);
- test(S("abcde"), "abcde", 2, 2, 0);
- test(S("abcde"), "abcde", 2, 4, 0);
- test(S("abcde"), "abcde", 2, 5, 0);
- test(S("abcde"), "abcdeabcde", 2, 0, 2);
- test(S("abcde"), "abcdeabcde", 2, 1, 0);
- test(S("abcde"), "abcdeabcde", 2, 5, 0);
- test(S("abcde"), "abcdeabcde", 2, 9, S::npos);
- test(S("abcde"), "abcdeabcde", 2, 10, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 2, 0, 2);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 2, 1, 0);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 2, 10, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 2, 19, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 2, 20, S::npos);
- test(S("abcde"), "", 4, 0, 4);
- test(S("abcde"), "abcde", 4, 0, 4);
- test(S("abcde"), "abcde", 4, 1, 0);
- test(S("abcde"), "abcde", 4, 2, 0);
- test(S("abcde"), "abcde", 4, 4, 0);
- test(S("abcde"), "abcde", 4, 5, 0);
- test(S("abcde"), "abcdeabcde", 4, 0, 4);
- test(S("abcde"), "abcdeabcde", 4, 1, 0);
- test(S("abcde"), "abcdeabcde", 4, 5, 0);
- test(S("abcde"), "abcdeabcde", 4, 9, S::npos);
- test(S("abcde"), "abcdeabcde", 4, 10, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 4, 0, 4);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 4, 1, 0);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 4, 10, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 4, 19, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 4, 20, S::npos);
- test(S("abcde"), "", 5, 0, 5);
- test(S("abcde"), "abcde", 5, 0, 5);
- test(S("abcde"), "abcde", 5, 1, 0);
- test(S("abcde"), "abcde", 5, 2, 0);
+void test0() {
+ test(S(""), "", 0, 0, 0);
+ test(S(""), "abcde", 0, 0, 0);
+ test(S(""), "abcde", 0, 1, S::npos);
+ test(S(""), "abcde", 0, 2, S::npos);
+ test(S(""), "abcde", 0, 4, S::npos);
+ test(S(""), "abcde", 0, 5, S::npos);
+ test(S(""), "abcdeabcde", 0, 0, 0);
+ test(S(""), "abcdeabcde", 0, 1, S::npos);
+ test(S(""), "abcdeabcde", 0, 5, S::npos);
+ test(S(""), "abcdeabcde", 0, 9, S::npos);
+ test(S(""), "abcdeabcde", 0, 10, S::npos);
+ test(S(""), "abcdeabcdeabcdeabcde", 0, 0, 0);
+ test(S(""), "abcdeabcdeabcdeabcde", 0, 1, S::npos);
+ test(S(""), "abcdeabcdeabcdeabcde", 0, 10, S::npos);
+ test(S(""), "abcdeabcdeabcdeabcde", 0, 19, S::npos);
+ test(S(""), "abcdeabcdeabcdeabcde", 0, 20, S::npos);
+ test(S(""), "", 1, 0, 0);
+ test(S(""), "abcde", 1, 0, 0);
+ test(S(""), "abcde", 1, 1, S::npos);
+ test(S(""), "abcde", 1, 2, S::npos);
+ test(S(""), "abcde", 1, 4, S::npos);
+ test(S(""), "abcde", 1, 5, S::npos);
+ test(S(""), "abcdeabcde", 1, 0, 0);
+ test(S(""), "abcdeabcde", 1, 1, S::npos);
+ test(S(""), "abcdeabcde", 1, 5, S::npos);
+ test(S(""), "abcdeabcde", 1, 9, S::npos);
+ test(S(""), "abcdeabcde", 1, 10, S::npos);
+ test(S(""), "abcdeabcdeabcdeabcde", 1, 0, 0);
+ test(S(""), "abcdeabcdeabcdeabcde", 1, 1, S::npos);
+ test(S(""), "abcdeabcdeabcdeabcde", 1, 10, S::npos);
+ test(S(""), "abcdeabcdeabcdeabcde", 1, 19, S::npos);
+ test(S(""), "abcdeabcdeabcdeabcde", 1, 20, S::npos);
+ test(S("abcde"), "", 0, 0, 0);
+ test(S("abcde"), "abcde", 0, 0, 0);
+ test(S("abcde"), "abcde", 0, 1, 0);
+ test(S("abcde"), "abcde", 0, 2, 0);
+ test(S("abcde"), "abcde", 0, 4, 0);
+ test(S("abcde"), "abcde", 0, 5, 0);
+ test(S("abcde"), "abcdeabcde", 0, 0, 0);
+ test(S("abcde"), "abcdeabcde", 0, 1, 0);
+ test(S("abcde"), "abcdeabcde", 0, 5, 0);
+ test(S("abcde"), "abcdeabcde", 0, 9, S::npos);
+ test(S("abcde"), "abcdeabcde", 0, 10, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 0, 0, 0);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 0, 1, 0);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 0, 10, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 0, 19, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 0, 20, S::npos);
+ test(S("abcde"), "", 1, 0, 1);
+ test(S("abcde"), "abcde", 1, 0, 1);
+ test(S("abcde"), "abcde", 1, 1, 0);
+ test(S("abcde"), "abcde", 1, 2, 0);
+ test(S("abcde"), "abcde", 1, 4, 0);
+ test(S("abcde"), "abcde", 1, 5, 0);
+ test(S("abcde"), "abcdeabcde", 1, 0, 1);
+ test(S("abcde"), "abcdeabcde", 1, 1, 0);
+ test(S("abcde"), "abcdeabcde", 1, 5, 0);
+ test(S("abcde"), "abcdeabcde", 1, 9, S::npos);
+ test(S("abcde"), "abcdeabcde", 1, 10, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 1, 0, 1);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 1, 1, 0);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 1, 10, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 1, 19, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 1, 20, S::npos);
+ test(S("abcde"), "", 2, 0, 2);
+ test(S("abcde"), "abcde", 2, 0, 2);
+ test(S("abcde"), "abcde", 2, 1, 0);
+ test(S("abcde"), "abcde", 2, 2, 0);
+ test(S("abcde"), "abcde", 2, 4, 0);
+ test(S("abcde"), "abcde", 2, 5, 0);
+ test(S("abcde"), "abcdeabcde", 2, 0, 2);
+ test(S("abcde"), "abcdeabcde", 2, 1, 0);
+ test(S("abcde"), "abcdeabcde", 2, 5, 0);
+ test(S("abcde"), "abcdeabcde", 2, 9, S::npos);
+ test(S("abcde"), "abcdeabcde", 2, 10, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 2, 0, 2);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 2, 1, 0);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 2, 10, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 2, 19, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 2, 20, S::npos);
+ test(S("abcde"), "", 4, 0, 4);
+ test(S("abcde"), "abcde", 4, 0, 4);
+ test(S("abcde"), "abcde", 4, 1, 0);
+ test(S("abcde"), "abcde", 4, 2, 0);
+ test(S("abcde"), "abcde", 4, 4, 0);
+ test(S("abcde"), "abcde", 4, 5, 0);
+ test(S("abcde"), "abcdeabcde", 4, 0, 4);
+ test(S("abcde"), "abcdeabcde", 4, 1, 0);
+ test(S("abcde"), "abcdeabcde", 4, 5, 0);
+ test(S("abcde"), "abcdeabcde", 4, 9, S::npos);
+ test(S("abcde"), "abcdeabcde", 4, 10, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 4, 0, 4);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 4, 1, 0);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 4, 10, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 4, 19, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 4, 20, S::npos);
+ test(S("abcde"), "", 5, 0, 5);
+ test(S("abcde"), "abcde", 5, 0, 5);
+ test(S("abcde"), "abcde", 5, 1, 0);
+ test(S("abcde"), "abcde", 5, 2, 0);
}
template <class S>
-void test1()
-{
- test(S("abcde"), "abcde", 5, 4, 0);
- test(S("abcde"), "abcde", 5, 5, 0);
- test(S("abcde"), "abcdeabcde", 5, 0, 5);
- test(S("abcde"), "abcdeabcde", 5, 1, 0);
- test(S("abcde"), "abcdeabcde", 5, 5, 0);
- test(S("abcde"), "abcdeabcde", 5, 9, S::npos);
- test(S("abcde"), "abcdeabcde", 5, 10, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 5, 0, 5);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 5, 1, 0);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 5, 10, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 5, 19, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 5, 20, S::npos);
- test(S("abcde"), "", 6, 0, 5);
- test(S("abcde"), "abcde", 6, 0, 5);
- test(S("abcde"), "abcde", 6, 1, 0);
- test(S("abcde"), "abcde", 6, 2, 0);
- test(S("abcde"), "abcde", 6, 4, 0);
- test(S("abcde"), "abcde", 6, 5, 0);
- test(S("abcde"), "abcdeabcde", 6, 0, 5);
- test(S("abcde"), "abcdeabcde", 6, 1, 0);
- test(S("abcde"), "abcdeabcde", 6, 5, 0);
- test(S("abcde"), "abcdeabcde", 6, 9, S::npos);
- test(S("abcde"), "abcdeabcde", 6, 10, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 6, 0, 5);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 6, 1, 0);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 6, 10, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 6, 19, S::npos);
- test(S("abcde"), "abcdeabcdeabcdeabcde", 6, 20, S::npos);
- test(S("abcdeabcde"), "", 0, 0, 0);
- test(S("abcdeabcde"), "abcde", 0, 0, 0);
- test(S("abcdeabcde"), "abcde", 0, 1, 0);
- test(S("abcdeabcde"), "abcde", 0, 2, 0);
- test(S("abcdeabcde"), "abcde", 0, 4, 0);
- test(S("abcdeabcde"), "abcde", 0, 5, 0);
- test(S("abcdeabcde"), "abcdeabcde", 0, 0, 0);
- test(S("abcdeabcde"), "abcdeabcde", 0, 1, 0);
- test(S("abcdeabcde"), "abcdeabcde", 0, 5, 0);
- test(S("abcdeabcde"), "abcdeabcde", 0, 9, 0);
- test(S("abcdeabcde"), "abcdeabcde", 0, 10, 0);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 0, 0, 0);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 0, 1, 0);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 0, 10, 0);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 0, 19, S::npos);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 0, 20, S::npos);
- test(S("abcdeabcde"), "", 1, 0, 1);
- test(S("abcdeabcde"), "abcde", 1, 0, 1);
- test(S("abcdeabcde"), "abcde", 1, 1, 0);
- test(S("abcdeabcde"), "abcde", 1, 2, 0);
- test(S("abcdeabcde"), "abcde", 1, 4, 0);
- test(S("abcdeabcde"), "abcde", 1, 5, 0);
- test(S("abcdeabcde"), "abcdeabcde", 1, 0, 1);
- test(S("abcdeabcde"), "abcdeabcde", 1, 1, 0);
- test(S("abcdeabcde"), "abcdeabcde", 1, 5, 0);
- test(S("abcdeabcde"), "abcdeabcde", 1, 9, 0);
- test(S("abcdeabcde"), "abcdeabcde", 1, 10, 0);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 1, 0, 1);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 1, 1, 0);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 1, 10, 0);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 1, 19, S::npos);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 1, 20, S::npos);
- test(S("abcdeabcde"), "", 5, 0, 5);
- test(S("abcdeabcde"), "abcde", 5, 0, 5);
- test(S("abcdeabcde"), "abcde", 5, 1, 5);
- test(S("abcdeabcde"), "abcde", 5, 2, 5);
- test(S("abcdeabcde"), "abcde", 5, 4, 5);
- test(S("abcdeabcde"), "abcde", 5, 5, 5);
- test(S("abcdeabcde"), "abcdeabcde", 5, 0, 5);
- test(S("abcdeabcde"), "abcdeabcde", 5, 1, 5);
- test(S("abcdeabcde"), "abcdeabcde", 5, 5, 5);
- test(S("abcdeabcde"), "abcdeabcde", 5, 9, 0);
- test(S("abcdeabcde"), "abcdeabcde", 5, 10, 0);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 5, 0, 5);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 5, 1, 5);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 5, 10, 0);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 5, 19, S::npos);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 5, 20, S::npos);
- test(S("abcdeabcde"), "", 9, 0, 9);
- test(S("abcdeabcde"), "abcde", 9, 0, 9);
- test(S("abcdeabcde"), "abcde", 9, 1, 5);
- test(S("abcdeabcde"), "abcde", 9, 2, 5);
- test(S("abcdeabcde"), "abcde", 9, 4, 5);
- test(S("abcdeabcde"), "abcde", 9, 5, 5);
- test(S("abcdeabcde"), "abcdeabcde", 9, 0, 9);
- test(S("abcdeabcde"), "abcdeabcde", 9, 1, 5);
- test(S("abcdeabcde"), "abcdeabcde", 9, 5, 5);
- test(S("abcdeabcde"), "abcdeabcde", 9, 9, 0);
- test(S("abcdeabcde"), "abcdeabcde", 9, 10, 0);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 9, 0, 9);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 9, 1, 5);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 9, 10, 0);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 9, 19, S::npos);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 9, 20, S::npos);
- test(S("abcdeabcde"), "", 10, 0, 10);
- test(S("abcdeabcde"), "abcde", 10, 0, 10);
- test(S("abcdeabcde"), "abcde", 10, 1, 5);
- test(S("abcdeabcde"), "abcde", 10, 2, 5);
- test(S("abcdeabcde"), "abcde", 10, 4, 5);
- test(S("abcdeabcde"), "abcde", 10, 5, 5);
- test(S("abcdeabcde"), "abcdeabcde", 10, 0, 10);
- test(S("abcdeabcde"), "abcdeabcde", 10, 1, 5);
+void test1() {
+ test(S("abcde"), "abcde", 5, 4, 0);
+ test(S("abcde"), "abcde", 5, 5, 0);
+ test(S("abcde"), "abcdeabcde", 5, 0, 5);
+ test(S("abcde"), "abcdeabcde", 5, 1, 0);
+ test(S("abcde"), "abcdeabcde", 5, 5, 0);
+ test(S("abcde"), "abcdeabcde", 5, 9, S::npos);
+ test(S("abcde"), "abcdeabcde", 5, 10, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 5, 0, 5);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 5, 1, 0);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 5, 10, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 5, 19, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 5, 20, S::npos);
+ test(S("abcde"), "", 6, 0, 5);
+ test(S("abcde"), "abcde", 6, 0, 5);
+ test(S("abcde"), "abcde", 6, 1, 0);
+ test(S("abcde"), "abcde", 6, 2, 0);
+ test(S("abcde"), "abcde", 6, 4, 0);
+ test(S("abcde"), "abcde", 6, 5, 0);
+ test(S("abcde"), "abcdeabcde", 6, 0, 5);
+ test(S("abcde"), "abcdeabcde", 6, 1, 0);
+ test(S("abcde"), "abcdeabcde", 6, 5, 0);
+ test(S("abcde"), "abcdeabcde", 6, 9, S::npos);
+ test(S("abcde"), "abcdeabcde", 6, 10, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 6, 0, 5);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 6, 1, 0);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 6, 10, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 6, 19, S::npos);
+ test(S("abcde"), "abcdeabcdeabcdeabcde", 6, 20, S::npos);
+ test(S("abcdeabcde"), "", 0, 0, 0);
+ test(S("abcdeabcde"), "abcde", 0, 0, 0);
+ test(S("abcdeabcde"), "abcde", 0, 1, 0);
+ test(S("abcdeabcde"), "abcde", 0, 2, 0);
+ test(S("abcdeabcde"), "abcde", 0, 4, 0);
+ test(S("abcdeabcde"), "abcde", 0, 5, 0);
+ test(S("abcdeabcde"), "abcdeabcde", 0, 0, 0);
+ test(S("abcdeabcde"), "abcdeabcde", 0, 1, 0);
+ test(S("abcdeabcde"), "abcdeabcde", 0, 5, 0);
+ test(S("abcdeabcde"), "abcdeabcde", 0, 9, 0);
+ test(S("abcdeabcde"), "abcdeabcde", 0, 10, 0);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 0, 0, 0);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 0, 1, 0);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 0, 10, 0);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 0, 19, S::npos);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 0, 20, S::npos);
+ test(S("abcdeabcde"), "", 1, 0, 1);
+ test(S("abcdeabcde"), "abcde", 1, 0, 1);
+ test(S("abcdeabcde"), "abcde", 1, 1, 0);
+ test(S("abcdeabcde"), "abcde", 1, 2, 0);
+ test(S("abcdeabcde"), "abcde", 1, 4, 0);
+ test(S("abcdeabcde"), "abcde", 1, 5, 0);
+ test(S("abcdeabcde"), "abcdeabcde", 1, 0, 1);
+ test(S("abcdeabcde"), "abcdeabcde", 1, 1, 0);
+ test(S("abcdeabcde"), "abcdeabcde", 1, 5, 0);
+ test(S("abcdeabcde"), "abcdeabcde", 1, 9, 0);
+ test(S("abcdeabcde"), "abcdeabcde", 1, 10, 0);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 1, 0, 1);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 1, 1, 0);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 1, 10, 0);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 1, 19, S::npos);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 1, 20, S::npos);
+ test(S("abcdeabcde"), "", 5, 0, 5);
+ test(S("abcdeabcde"), "abcde", 5, 0, 5);
+ test(S("abcdeabcde"), "abcde", 5, 1, 5);
+ test(S("abcdeabcde"), "abcde", 5, 2, 5);
+ test(S("abcdeabcde"), "abcde", 5, 4, 5);
+ test(S("abcdeabcde"), "abcde", 5, 5, 5);
+ test(S("abcdeabcde"), "abcdeabcde", 5, 0, 5);
+ test(S("abcdeabcde"), "abcdeabcde", 5, 1, 5);
+ test(S("abcdeabcde"), "abcdeabcde", 5, 5, 5);
+ test(S("abcdeabcde"), "abcdeabcde", 5, 9, 0);
+ test(S("abcdeabcde"), "abcdeabcde", 5, 10, 0);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 5, 0, 5);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 5, 1, 5);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 5, 10, 0);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 5, 19, S::npos);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 5, 20, S::npos);
+ test(S("abcdeabcde"), "", 9, 0, 9);
+ test(S("abcdeabcde"), "abcde", 9, 0, 9);
+ test(S("abcdeabcde"), "abcde", 9, 1, 5);
+ test(S("abcdeabcde"), "abcde", 9, 2, 5);
+ test(S("abcdeabcde"), "abcde", 9, 4, 5);
+ test(S("abcdeabcde"), "abcde", 9, 5, 5);
+ test(S("abcdeabcde"), "abcdeabcde", 9, 0, 9);
+ test(S("abcdeabcde"), "abcdeabcde", 9, 1, 5);
+ test(S("abcdeabcde"), "abcdeabcde", 9, 5, 5);
+ test(S("abcdeabcde"), "abcdeabcde", 9, 9, 0);
+ test(S("abcdeabcde"), "abcdeabcde", 9, 10, 0);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 9, 0, 9);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 9, 1, 5);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 9, 10, 0);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 9, 19, S::npos);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 9, 20, S::npos);
+ test(S("abcdeabcde"), "", 10, 0, 10);
+ test(S("abcdeabcde"), "abcde", 10, 0, 10);
+ test(S("abcdeabcde"), "abcde", 10, 1, 5);
+ test(S("abcdeabcde"), "abcde", 10, 2, 5);
+ test(S("abcdeabcde"), "abcde", 10, 4, 5);
+ test(S("abcdeabcde"), "abcde", 10, 5, 5);
+ test(S("abcdeabcde"), "abcdeabcde", 10, 0, 10);
+ test(S("abcdeabcde"), "abcdeabcde", 10, 1, 5);
}
template <class S>
-void test2()
-{
- test(S("abcdeabcde"), "abcdeabcde", 10, 5, 5);
- test(S("abcdeabcde"), "abcdeabcde", 10, 9, 0);
- test(S("abcdeabcde"), "abcdeabcde", 10, 10, 0);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 10, 0, 10);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 10, 1, 5);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 10, 10, 0);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 10, 19, S::npos);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 10, 20, S::npos);
- test(S("abcdeabcde"), "", 11, 0, 10);
- test(S("abcdeabcde"), "abcde", 11, 0, 10);
- test(S("abcdeabcde"), "abcde", 11, 1, 5);
- test(S("abcdeabcde"), "abcde", 11, 2, 5);
- test(S("abcdeabcde"), "abcde", 11, 4, 5);
- test(S("abcdeabcde"), "abcde", 11, 5, 5);
- test(S("abcdeabcde"), "abcdeabcde", 11, 0, 10);
- test(S("abcdeabcde"), "abcdeabcde", 11, 1, 5);
- test(S("abcdeabcde"), "abcdeabcde", 11, 5, 5);
- test(S("abcdeabcde"), "abcdeabcde", 11, 9, 0);
- test(S("abcdeabcde"), "abcdeabcde", 11, 10, 0);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 11, 0, 10);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 11, 1, 5);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 11, 10, 0);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 11, 19, S::npos);
- test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 11, 20, S::npos);
- test(S("abcdeabcdeabcdeabcde"), "", 0, 0, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 0, 0, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 0, 1, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 0, 2, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 0, 4, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 0, 5, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 0, 0, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 0, 1, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 0, 5, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 0, 9, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 0, 10, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 0, 0, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 0, 1, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 0, 10, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 0, 19, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 0, 20, 0);
- test(S("abcdeabcdeabcdeabcde"), "", 1, 0, 1);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 1, 0, 1);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 1, 1, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 1, 2, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 1, 4, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 1, 5, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 1, 0, 1);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 1, 1, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 1, 5, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 1, 9, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 1, 10, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 1, 0, 1);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 1, 1, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 1, 10, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 1, 19, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 1, 20, 0);
- test(S("abcdeabcdeabcdeabcde"), "", 10, 0, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 10, 0, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 10, 1, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 10, 2, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 10, 4, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 10, 5, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 10, 0, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 10, 1, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 10, 5, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 10, 9, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 10, 10, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 10, 0, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 10, 1, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 10, 10, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 10, 19, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 10, 20, 0);
- test(S("abcdeabcdeabcdeabcde"), "", 19, 0, 19);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 19, 0, 19);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 19, 1, 15);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 19, 2, 15);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 19, 4, 15);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 19, 5, 15);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 19, 0, 19);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 19, 1, 15);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 19, 5, 15);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 19, 9, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 19, 10, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 19, 0, 19);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 19, 1, 15);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 19, 10, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 19, 19, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 19, 20, 0);
- test(S("abcdeabcdeabcdeabcde"), "", 20, 0, 20);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 20, 0, 20);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 20, 1, 15);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 20, 2, 15);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 20, 4, 15);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 20, 5, 15);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 20, 0, 20);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 20, 1, 15);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 20, 5, 15);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 20, 9, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 20, 10, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 20, 0, 20);
+void test2() {
+ test(S("abcdeabcde"), "abcdeabcde", 10, 5, 5);
+ test(S("abcdeabcde"), "abcdeabcde", 10, 9, 0);
+ test(S("abcdeabcde"), "abcdeabcde", 10, 10, 0);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 10, 0, 10);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 10, 1, 5);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 10, 10, 0);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 10, 19, S::npos);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 10, 20, S::npos);
+ test(S("abcdeabcde"), "", 11, 0, 10);
+ test(S("abcdeabcde"), "abcde", 11, 0, 10);
+ test(S("abcdeabcde"), "abcde", 11, 1, 5);
+ test(S("abcdeabcde"), "abcde", 11, 2, 5);
+ test(S("abcdeabcde"), "abcde", 11, 4, 5);
+ test(S("abcdeabcde"), "abcde", 11, 5, 5);
+ test(S("abcdeabcde"), "abcdeabcde", 11, 0, 10);
+ test(S("abcdeabcde"), "abcdeabcde", 11, 1, 5);
+ test(S("abcdeabcde"), "abcdeabcde", 11, 5, 5);
+ test(S("abcdeabcde"), "abcdeabcde", 11, 9, 0);
+ test(S("abcdeabcde"), "abcdeabcde", 11, 10, 0);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 11, 0, 10);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 11, 1, 5);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 11, 10, 0);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 11, 19, S::npos);
+ test(S("abcdeabcde"), "abcdeabcdeabcdeabcde", 11, 20, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), "", 0, 0, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 0, 0, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 0, 1, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 0, 2, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 0, 4, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 0, 5, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 0, 0, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 0, 1, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 0, 5, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 0, 9, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 0, 10, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 0, 0, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 0, 1, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 0, 10, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 0, 19, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 0, 20, 0);
+ test(S("abcdeabcdeabcdeabcde"), "", 1, 0, 1);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 1, 0, 1);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 1, 1, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 1, 2, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 1, 4, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 1, 5, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 1, 0, 1);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 1, 1, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 1, 5, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 1, 9, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 1, 10, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 1, 0, 1);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 1, 1, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 1, 10, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 1, 19, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 1, 20, 0);
+ test(S("abcdeabcdeabcdeabcde"), "", 10, 0, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 10, 0, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 10, 1, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 10, 2, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 10, 4, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 10, 5, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 10, 0, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 10, 1, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 10, 5, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 10, 9, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 10, 10, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 10, 0, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 10, 1, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 10, 10, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 10, 19, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 10, 20, 0);
+ test(S("abcdeabcdeabcdeabcde"), "", 19, 0, 19);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 19, 0, 19);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 19, 1, 15);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 19, 2, 15);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 19, 4, 15);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 19, 5, 15);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 19, 0, 19);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 19, 1, 15);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 19, 5, 15);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 19, 9, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 19, 10, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 19, 0, 19);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 19, 1, 15);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 19, 10, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 19, 19, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 19, 20, 0);
+ test(S("abcdeabcdeabcdeabcde"), "", 20, 0, 20);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 20, 0, 20);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 20, 1, 15);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 20, 2, 15);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 20, 4, 15);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 20, 5, 15);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 20, 0, 20);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 20, 1, 15);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 20, 5, 15);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 20, 9, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 20, 10, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 20, 0, 20);
}
template <class S>
-void test3()
-{
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 20, 1, 15);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 20, 10, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 20, 19, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 20, 20, 0);
- test(S("abcdeabcdeabcdeabcde"), "", 21, 0, 20);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 21, 0, 20);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 21, 1, 15);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 21, 2, 15);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 21, 4, 15);
- test(S("abcdeabcdeabcdeabcde"), "abcde", 21, 5, 15);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 21, 0, 20);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 21, 1, 15);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 21, 5, 15);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 21, 9, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 21, 10, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 21, 0, 20);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 21, 1, 15);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 21, 10, 10);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 21, 19, 0);
- test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 21, 20, 0);
+void test3() {
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 20, 1, 15);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 20, 10, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 20, 19, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 20, 20, 0);
+ test(S("abcdeabcdeabcdeabcde"), "", 21, 0, 20);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 21, 0, 20);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 21, 1, 15);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 21, 2, 15);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 21, 4, 15);
+ test(S("abcdeabcdeabcdeabcde"), "abcde", 21, 5, 15);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 21, 0, 20);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 21, 1, 15);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 21, 5, 15);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 21, 9, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcde", 21, 10, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 21, 0, 20);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 21, 1, 15);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 21, 10, 10);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 21, 19, 0);
+ test(S("abcdeabcdeabcdeabcde"), "abcdeabcdeabcdeabcde", 21, 20, 0);
}
-int main(int, char**)
-{
- {
+int main(int, char**) {
+ {
typedef std::string_view S;
test0<S>();
test1<S>();
test2<S>();
test3<S>();
- }
+ }
#if TEST_STD_VER > 11
- {
+ {
typedef std::basic_string_view<char, constexpr_char_traits<char>> SV;
- constexpr SV sv1;
- constexpr SV sv2 { "abcde", 5 };
+ constexpr SV sv1;
+ constexpr SV sv2{"abcde", 5};
- static_assert (sv1.rfind( "", 0, 0 ) == 0, "" );
- static_assert (sv1.rfind( "abcde", 0, 0 ) == 0, "" );
- static_assert (sv1.rfind( "abcde", 0, 1 ) == SV::npos, "" );
- static_assert (sv2.rfind( "", 0, 0 ) == 0, "" );
- static_assert (sv2.rfind( "abcde", 0, 0 ) == 0, "" );
- static_assert (sv2.rfind( "abcde", 0, 1 ) == 0, "" );
- }
+ static_assert(sv1.rfind("", 0, 0) == 0, "");
+ static_assert(sv1.rfind("abcde", 0, 0) == 0, "");
+ static_assert(sv1.rfind("abcde", 0, 1) == SV::npos, "");
+ static_assert(sv2.rfind("", 0, 0) == 0, "");
+ static_assert(sv2.rfind("abcde", 0, 0) == 0, "");
+ static_assert(sv2.rfind("abcde", 0, 1) == 0, "");
+ }
#endif
return 0;
diff --git a/libcxx/test/std/strings/string.view/string.view.find/rfind_string_view_size.pass.cpp b/libcxx/test/std/strings/string.view/string.view.find/rfind_string_view_size.pass.cpp
index ad92d76e1a2ce1f..db80c65465e87c0 100644
--- a/libcxx/test/std/strings/string.view/string.view.find/rfind_string_view_size.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.find/rfind_string_view_size.pass.cpp
@@ -19,151 +19,144 @@
#include "constexpr_char_traits.h"
template <class S>
-void
-test(const S& s, const S& str, typename S::size_type pos, typename S::size_type x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.rfind(str, pos));
- assert(s.rfind(str, pos) == x);
- if (x != S::npos)
- assert(x <= pos && x + str.size() <= s.size());
+void test(const S& s, const S& str, typename S::size_type pos, typename S::size_type x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.rfind(str, pos));
+ assert(s.rfind(str, pos) == x);
+ if (x != S::npos)
+ assert(x <= pos && x + str.size() <= s.size());
}
template <class S>
-void
-test(const S& s, const S& str, typename S::size_type x)
-{
- LIBCPP_ASSERT_NOEXCEPT(s.rfind(str));
- assert(s.rfind(str) == x);
- if (x != S::npos)
- assert(0 <= x && x + str.size() <= s.size());
+void test(const S& s, const S& str, typename S::size_type x) {
+ LIBCPP_ASSERT_NOEXCEPT(s.rfind(str));
+ assert(s.rfind(str) == x);
+ if (x != S::npos)
+ assert(0 <= x && x + str.size() <= s.size());
}
template <class S>
-void test0()
-{
- test(S(""), S(""), 0, 0);
- test(S(""), S("abcde"), 0, S::npos);
- test(S(""), S("abcdeabcde"), 0, S::npos);
- test(S(""), S("abcdeabcdeabcdeabcde"), 0, S::npos);
- test(S(""), S(""), 1, 0);
- test(S(""), S("abcde"), 1, S::npos);
- test(S(""), S("abcdeabcde"), 1, S::npos);
- test(S(""), S("abcdeabcdeabcdeabcde"), 1, S::npos);
- test(S("abcde"), S(""), 0, 0);
- test(S("abcde"), S("abcde"), 0, 0);
- test(S("abcde"), S("abcdeabcde"), 0, S::npos);
- test(S("abcde"), S("abcdeabcdeabcdeabcde"), 0, S::npos);
- test(S("abcde"), S(""), 1, 1);
- test(S("abcde"), S("abcde"), 1, 0);
- test(S("abcde"), S("abcdeabcde"), 1, S::npos);
- test(S("abcde"), S("abcdeabcdeabcdeabcde"), 1, S::npos);
- test(S("abcde"), S(""), 2, 2);
- test(S("abcde"), S("abcde"), 2, 0);
- test(S("abcde"), S("abcdeabcde"), 2, S::npos);
- test(S("abcde"), S("abcdeabcdeabcdeabcde"), 2, S::npos);
- test(S("abcde"), S(""), 4, 4);
- test(S("abcde"), S("abcde"), 4, 0);
- test(S("abcde"), S("abcdeabcde"), 4, S::npos);
- test(S("abcde"), S("abcdeabcdeabcdeabcde"), 4, S::npos);
- test(S("abcde"), S(""), 5, 5);
- test(S("abcde"), S("abcde"), 5, 0);
- test(S("abcde"), S("abcdeabcde"), 5, S::npos);
- test(S("abcde"), S("abcdeabcdeabcdeabcde"), 5, S::npos);
- test(S("abcde"), S(""), 6, 5);
- test(S("abcde"), S("abcde"), 6, 0);
- test(S("abcde"), S("abcdeabcde"), 6, S::npos);
- test(S("abcde"), S("abcdeabcdeabcdeabcde"), 6, S::npos);
- test(S("abcdeabcde"), S(""), 0, 0);
- test(S("abcdeabcde"), S("abcde"), 0, 0);
- test(S("abcdeabcde"), S("abcdeabcde"), 0, 0);
- test(S("abcdeabcde"), S("abcdeabcdeabcdeabcde"), 0, S::npos);
- test(S("abcdeabcde"), S(""), 1, 1);
- test(S("abcdeabcde"), S("abcde"), 1, 0);
- test(S("abcdeabcde"), S("abcdeabcde"), 1, 0);
- test(S("abcdeabcde"), S("abcdeabcdeabcdeabcde"), 1, S::npos);
- test(S("abcdeabcde"), S(""), 5, 5);
- test(S("abcdeabcde"), S("abcde"), 5, 5);
- test(S("abcdeabcde"), S("abcdeabcde"), 5, 0);
- test(S("abcdeabcde"), S("abcdeabcdeabcdeabcde"), 5, S::npos);
- test(S("abcdeabcde"), S(""), 9, 9);
- test(S("abcdeabcde"), S("abcde"), 9, 5);
- test(S("abcdeabcde"), S("abcdeabcde"), 9, 0);
- test(S("abcdeabcde"), S("abcdeabcdeabcdeabcde"), 9, S::npos);
- test(S("abcdeabcde"), S(""), 10, 10);
- test(S("abcdeabcde"), S("abcde"), 10, 5);
- test(S("abcdeabcde"), S("abcdeabcde"), 10, 0);
- test(S("abcdeabcde"), S("abcdeabcdeabcdeabcde"), 10, S::npos);
- test(S("abcdeabcde"), S(""), 11, 10);
- test(S("abcdeabcde"), S("abcde"), 11, 5);
- test(S("abcdeabcde"), S("abcdeabcde"), 11, 0);
- test(S("abcdeabcde"), S("abcdeabcdeabcdeabcde"), 11, S::npos);
- test(S("abcdeabcdeabcdeabcde"), S(""), 0, 0);
- test(S("abcdeabcdeabcdeabcde"), S("abcde"), 0, 0);
- test(S("abcdeabcdeabcdeabcde"), S("abcdeabcde"), 0, 0);
- test(S("abcdeabcdeabcdeabcde"), S("abcdeabcdeabcdeabcde"), 0, 0);
- test(S("abcdeabcdeabcdeabcde"), S(""), 1, 1);
- test(S("abcdeabcdeabcdeabcde"), S("abcde"), 1, 0);
- test(S("abcdeabcdeabcdeabcde"), S("abcdeabcde"), 1, 0);
- test(S("abcdeabcdeabcdeabcde"), S("abcdeabcdeabcdeabcde"), 1, 0);
- test(S("abcdeabcdeabcdeabcde"), S(""), 10, 10);
- test(S("abcdeabcdeabcdeabcde"), S("abcde"), 10, 10);
- test(S("abcdeabcdeabcdeabcde"), S("abcdeabcde"), 10, 10);
- test(S("abcdeabcdeabcdeabcde"), S("abcdeabcdeabcdeabcde"), 10, 0);
- test(S("abcdeabcdeabcdeabcde"), S(""), 19, 19);
- test(S("abcdeabcdeabcdeabcde"), S("abcde"), 19, 15);
- test(S("abcdeabcdeabcdeabcde"), S("abcdeabcde"), 19, 10);
- test(S("abcdeabcdeabcdeabcde"), S("abcdeabcdeabcdeabcde"), 19, 0);
- test(S("abcdeabcdeabcdeabcde"), S(""), 20, 20);
- test(S("abcdeabcdeabcdeabcde"), S("abcde"), 20, 15);
- test(S("abcdeabcdeabcdeabcde"), S("abcdeabcde"), 20, 10);
- test(S("abcdeabcdeabcdeabcde"), S("abcdeabcdeabcdeabcde"), 20, 0);
- test(S("abcdeabcdeabcdeabcde"), S(""), 21, 20);
- test(S("abcdeabcdeabcdeabcde"), S("abcde"), 21, 15);
- test(S("abcdeabcdeabcdeabcde"), S("abcdeabcde"), 21, 10);
- test(S("abcdeabcdeabcdeabcde"), S("abcdeabcdeabcdeabcde"), 21, 0);
+void test0() {
+ test(S(""), S(""), 0, 0);
+ test(S(""), S("abcde"), 0, S::npos);
+ test(S(""), S("abcdeabcde"), 0, S::npos);
+ test(S(""), S("abcdeabcdeabcdeabcde"), 0, S::npos);
+ test(S(""), S(""), 1, 0);
+ test(S(""), S("abcde"), 1, S::npos);
+ test(S(""), S("abcdeabcde"), 1, S::npos);
+ test(S(""), S("abcdeabcdeabcdeabcde"), 1, S::npos);
+ test(S("abcde"), S(""), 0, 0);
+ test(S("abcde"), S("abcde"), 0, 0);
+ test(S("abcde"), S("abcdeabcde"), 0, S::npos);
+ test(S("abcde"), S("abcdeabcdeabcdeabcde"), 0, S::npos);
+ test(S("abcde"), S(""), 1, 1);
+ test(S("abcde"), S("abcde"), 1, 0);
+ test(S("abcde"), S("abcdeabcde"), 1, S::npos);
+ test(S("abcde"), S("abcdeabcdeabcdeabcde"), 1, S::npos);
+ test(S("abcde"), S(""), 2, 2);
+ test(S("abcde"), S("abcde"), 2, 0);
+ test(S("abcde"), S("abcdeabcde"), 2, S::npos);
+ test(S("abcde"), S("abcdeabcdeabcdeabcde"), 2, S::npos);
+ test(S("abcde"), S(""), 4, 4);
+ test(S("abcde"), S("abcde"), 4, 0);
+ test(S("abcde"), S("abcdeabcde"), 4, S::npos);
+ test(S("abcde"), S("abcdeabcdeabcdeabcde"), 4, S::npos);
+ test(S("abcde"), S(""), 5, 5);
+ test(S("abcde"), S("abcde"), 5, 0);
+ test(S("abcde"), S("abcdeabcde"), 5, S::npos);
+ test(S("abcde"), S("abcdeabcdeabcdeabcde"), 5, S::npos);
+ test(S("abcde"), S(""), 6, 5);
+ test(S("abcde"), S("abcde"), 6, 0);
+ test(S("abcde"), S("abcdeabcde"), 6, S::npos);
+ test(S("abcde"), S("abcdeabcdeabcdeabcde"), 6, S::npos);
+ test(S("abcdeabcde"), S(""), 0, 0);
+ test(S("abcdeabcde"), S("abcde"), 0, 0);
+ test(S("abcdeabcde"), S("abcdeabcde"), 0, 0);
+ test(S("abcdeabcde"), S("abcdeabcdeabcdeabcde"), 0, S::npos);
+ test(S("abcdeabcde"), S(""), 1, 1);
+ test(S("abcdeabcde"), S("abcde"), 1, 0);
+ test(S("abcdeabcde"), S("abcdeabcde"), 1, 0);
+ test(S("abcdeabcde"), S("abcdeabcdeabcdeabcde"), 1, S::npos);
+ test(S("abcdeabcde"), S(""), 5, 5);
+ test(S("abcdeabcde"), S("abcde"), 5, 5);
+ test(S("abcdeabcde"), S("abcdeabcde"), 5, 0);
+ test(S("abcdeabcde"), S("abcdeabcdeabcdeabcde"), 5, S::npos);
+ test(S("abcdeabcde"), S(""), 9, 9);
+ test(S("abcdeabcde"), S("abcde"), 9, 5);
+ test(S("abcdeabcde"), S("abcdeabcde"), 9, 0);
+ test(S("abcdeabcde"), S("abcdeabcdeabcdeabcde"), 9, S::npos);
+ test(S("abcdeabcde"), S(""), 10, 10);
+ test(S("abcdeabcde"), S("abcde"), 10, 5);
+ test(S("abcdeabcde"), S("abcdeabcde"), 10, 0);
+ test(S("abcdeabcde"), S("abcdeabcdeabcdeabcde"), 10, S::npos);
+ test(S("abcdeabcde"), S(""), 11, 10);
+ test(S("abcdeabcde"), S("abcde"), 11, 5);
+ test(S("abcdeabcde"), S("abcdeabcde"), 11, 0);
+ test(S("abcdeabcde"), S("abcdeabcdeabcdeabcde"), 11, S::npos);
+ test(S("abcdeabcdeabcdeabcde"), S(""), 0, 0);
+ test(S("abcdeabcdeabcdeabcde"), S("abcde"), 0, 0);
+ test(S("abcdeabcdeabcdeabcde"), S("abcdeabcde"), 0, 0);
+ test(S("abcdeabcdeabcdeabcde"), S("abcdeabcdeabcdeabcde"), 0, 0);
+ test(S("abcdeabcdeabcdeabcde"), S(""), 1, 1);
+ test(S("abcdeabcdeabcdeabcde"), S("abcde"), 1, 0);
+ test(S("abcdeabcdeabcdeabcde"), S("abcdeabcde"), 1, 0);
+ test(S("abcdeabcdeabcdeabcde"), S("abcdeabcdeabcdeabcde"), 1, 0);
+ test(S("abcdeabcdeabcdeabcde"), S(""), 10, 10);
+ test(S("abcdeabcdeabcdeabcde"), S("abcde"), 10, 10);
+ test(S("abcdeabcdeabcdeabcde"), S("abcdeabcde"), 10, 10);
+ test(S("abcdeabcdeabcdeabcde"), S("abcdeabcdeabcdeabcde"), 10, 0);
+ test(S("abcdeabcdeabcdeabcde"), S(""), 19, 19);
+ test(S("abcdeabcdeabcdeabcde"), S("abcde"), 19, 15);
+ test(S("abcdeabcdeabcdeabcde"), S("abcdeabcde"), 19, 10);
+ test(S("abcdeabcdeabcdeabcde"), S("abcdeabcdeabcdeabcde"), 19, 0);
+ test(S("abcdeabcdeabcdeabcde"), S(""), 20, 20);
+ test(S("abcdeabcdeabcdeabcde"), S("abcde"), 20, 15);
+ test(S("abcdeabcdeabcdeabcde"), S("abcdeabcde"), 20, 10);
+ test(S("abcdeabcdeabcdeabcde"), S("abcdeabcdeabcdeabcde"), 20, 0);
+ test(S("abcdeabcdeabcdeabcde"), S(""), 21, 20);
+ test(S("abcdeabcdeabcdeabcde"), S("abcde"), 21, 15);
+ test(S("abcdeabcdeabcdeabcde"), S("abcdeabcde"), 21, 10);
+ test(S("abcdeabcdeabcdeabcde"), S("abcdeabcdeabcdeabcde"), 21, 0);
}
template <class S>
-void test1()
-{
- test(S(""), S(""), 0);
- test(S(""), S("abcde"), S::npos);
- test(S(""), S("abcdeabcde"), S::npos);
- test(S(""), S("abcdeabcdeabcdeabcde"), S::npos);
- test(S("abcde"), S(""), 5);
- test(S("abcde"), S("abcde"), 0);
- test(S("abcde"), S("abcdeabcde"), S::npos);
- test(S("abcde"), S("abcdeabcdeabcdeabcde"), S::npos);
- test(S("abcdeabcde"), S(""), 10);
- test(S("abcdeabcde"), S("abcde"), 5);
- test(S("abcdeabcde"), S("abcdeabcde"), 0);
- test(S("abcdeabcde"), S("abcdeabcdeabcdeabcde"), S::npos);
- test(S("abcdeabcdeabcdeabcde"), S(""), 20);
- test(S("abcdeabcdeabcdeabcde"), S("abcde"), 15);
- test(S("abcdeabcdeabcdeabcde"), S("abcdeabcde"), 10);
- test(S("abcdeabcdeabcdeabcde"), S("abcdeabcdeabcdeabcde"), 0);
+void test1() {
+ test(S(""), S(""), 0);
+ test(S(""), S("abcde"), S::npos);
+ test(S(""), S("abcdeabcde"), S::npos);
+ test(S(""), S("abcdeabcdeabcdeabcde"), S::npos);
+ test(S("abcde"), S(""), 5);
+ test(S("abcde"), S("abcde"), 0);
+ test(S("abcde"), S("abcdeabcde"), S::npos);
+ test(S("abcde"), S("abcdeabcdeabcdeabcde"), S::npos);
+ test(S("abcdeabcde"), S(""), 10);
+ test(S("abcdeabcde"), S("abcde"), 5);
+ test(S("abcdeabcde"), S("abcdeabcde"), 0);
+ test(S("abcdeabcde"), S("abcdeabcdeabcdeabcde"), S::npos);
+ test(S("abcdeabcdeabcdeabcde"), S(""), 20);
+ test(S("abcdeabcdeabcdeabcde"), S("abcde"), 15);
+ test(S("abcdeabcdeabcdeabcde"), S("abcdeabcde"), 10);
+ test(S("abcdeabcdeabcdeabcde"), S("abcdeabcdeabcdeabcde"), 0);
}
-int main(int, char**)
-{
- {
+int main(int, char**) {
+ {
typedef std::string_view S;
test0<S>();
test1<S>();
- }
+ }
#if TEST_STD_VER > 11
- {
+ {
typedef std::basic_string_view<char, constexpr_char_traits<char>> SV;
- constexpr SV sv1;
- constexpr SV sv2 { "abcde", 5 };
+ constexpr SV sv1;
+ constexpr SV sv2{"abcde", 5};
- static_assert (sv1.rfind(sv1) == 0, "" );
- static_assert (sv1.rfind(sv2) == SV::npos, "" );
- static_assert (sv2.rfind(sv1) == 5, "" );
- static_assert (sv2.rfind(sv2) == 0, "" );
- static_assert (sv2.rfind(sv2, 1) == 0, "" );
- }
+ static_assert(sv1.rfind(sv1) == 0, "");
+ static_assert(sv1.rfind(sv2) == SV::npos, "");
+ static_assert(sv2.rfind(sv1) == 5, "");
+ static_assert(sv2.rfind(sv2) == 0, "");
+ static_assert(sv2.rfind(sv2, 1) == 0, "");
+ }
#endif
return 0;
diff --git a/libcxx/test/std/strings/string.view/string.view.hash/char_type.hash.verify.cpp b/libcxx/test/std/strings/string.view/string.view.hash/char_type.hash.verify.cpp
index c81b61b527e69f1..da59228288f706a 100644
--- a/libcxx/test/std/strings/string.view/string.view.hash/char_type.hash.verify.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.hash/char_type.hash.verify.cpp
@@ -21,57 +21,50 @@
template <class _CharT>
struct trait // copied from <__string>
{
- typedef _CharT char_type;
- typedef int int_type;
- typedef std::streamoff off_type;
- typedef std::streampos pos_type;
- typedef std::mbstate_t state_type;
+ typedef _CharT char_type;
+ typedef int int_type;
+ typedef std::streamoff off_type;
+ typedef std::streampos pos_type;
+ typedef std::mbstate_t state_type;
- static inline void assign(char_type& __c1, const char_type& __c2) {
- __c1 = __c2;
- }
- static inline bool eq(char_type __c1, char_type __c2) { return __c1 == __c2; }
- static inline bool lt(char_type __c1, char_type __c2) { return __c1 < __c2; }
+ static inline void assign(char_type& __c1, const char_type& __c2) { __c1 = __c2; }
+ static inline bool eq(char_type __c1, char_type __c2) { return __c1 == __c2; }
+ static inline bool lt(char_type __c1, char_type __c2) { return __c1 < __c2; }
- static int compare(const char_type* __s1, const char_type* __s2, std::size_t __n);
- static std::size_t length(const char_type* __s);
- static const char_type* find(const char_type* __s, std::size_t __n,
- const char_type& __a);
+ static int compare(const char_type* __s1, const char_type* __s2, std::size_t __n);
+ static std::size_t length(const char_type* __s);
+ static const char_type* find(const char_type* __s, std::size_t __n, const char_type& __a);
- static char_type* move(char_type* __s1, const char_type* __s2, std::size_t __n);
- static char_type* copy(char_type* __s1, const char_type* __s2, std::size_t __n);
- static char_type* assign(char_type* __s, std::size_t __n, char_type __a);
+ static char_type* move(char_type* __s1, const char_type* __s2, std::size_t __n);
+ static char_type* copy(char_type* __s1, const char_type* __s2, std::size_t __n);
+ static char_type* assign(char_type* __s, std::size_t __n, char_type __a);
- static inline int_type not_eof(int_type __c) {
- return eq_int_type(__c, eof()) ? ~eof() : __c;
- }
- static inline char_type to_char_type(int_type __c) { return char_type(__c); }
- static inline int_type to_int_type(char_type __c) { return int_type(__c); }
- static inline bool eq_int_type(int_type __c1, int_type __c2) {
- return __c1 == __c2;
- }
- static inline int_type eof() { return int_type(EOF); }
+ static inline int_type not_eof(int_type __c) { return eq_int_type(__c, eof()) ? ~eof() : __c; }
+ static inline char_type to_char_type(int_type __c) { return char_type(__c); }
+ static inline int_type to_int_type(char_type __c) { return int_type(__c); }
+ static inline bool eq_int_type(int_type __c1, int_type __c2) { return __c1 == __c2; }
+ static inline int_type eof() { return int_type(EOF); }
};
template <class CharT>
void test() {
- typedef std::basic_string_view<CharT, trait<CharT> > strv_t;
- std::hash<strv_t>
- h; // expected-error-re 4 {{{{call to implicitly-deleted default constructor of 'std::hash<strv_t>'|implicit instantiation of undefined template}} {{.+}}}}}}
+ typedef std::basic_string_view<CharT, trait<CharT> > strv_t;
+ std::hash<strv_t>
+ h; // expected-error-re 4 {{{{call to implicitly-deleted default constructor of 'std::hash<strv_t>'|implicit instantiation of undefined template}} {{.+}}}}}}
#if TEST_STD_VER > 17 && defined(__cpp_char8_t)
- // expected-error-re at -2 {{{{call to implicitly-deleted default constructor of 'std::hash<strv_t>'|implicit instantiation of undefined template}} {{.+}}}}}}
+ // expected-error-re at -2 {{{{call to implicitly-deleted default constructor of 'std::hash<strv_t>'|implicit instantiation of undefined template}} {{.+}}}}}}
#endif
- (void)h;
+ (void)h;
}
int main(int, char**) {
- test<char>();
- test<wchar_t>();
+ test<char>();
+ test<wchar_t>();
#if TEST_STD_VER > 17 && defined(__cpp_char8_t)
- test<char8_t>();
+ test<char8_t>();
#endif
- test<char16_t>();
- test<char32_t>();
+ test<char16_t>();
+ test<char32_t>();
- return 0;
+ return 0;
}
diff --git a/libcxx/test/std/strings/string.view/string.view.hash/enabled_hashes.pass.cpp b/libcxx/test/std/strings/string.view/string.view.hash/enabled_hashes.pass.cpp
index f0fffbd32e7aec9..b2ffd20108389ed 100644
--- a/libcxx/test/std/strings/string.view/string.view.hash/enabled_hashes.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.hash/enabled_hashes.pass.cpp
@@ -36,18 +36,18 @@ struct std::char_traits<MyChar> {
static bool eq(char_type, char_type);
static bool lt(char_type, char_type);
- static int compare(const char_type*, const char_type*, std::size_t);
- static std::size_t length(const char_type*);
+ static int compare(const char_type*, const char_type*, std::size_t);
+ static std::size_t length(const char_type*);
static const char_type* find(const char_type*, std::size_t, const char_type&);
- static char_type* move(char_type*, const char_type*, std::size_t);
- static char_type* copy(char_type*, const char_type*, std::size_t);
- static char_type* assign(char_type*, std::size_t, char_type);
+ static char_type* move(char_type*, const char_type*, std::size_t);
+ static char_type* copy(char_type*, const char_type*, std::size_t);
+ static char_type* assign(char_type*, std::size_t, char_type);
- static int_type not_eof(int_type);
+ static int_type not_eof(int_type);
static char_type to_char_type(int_type);
- static int_type to_int_type(char_type);
- static bool eq_int_type(int_type, int_type);
- static int_type eof();
+ static int_type to_int_type(char_type);
+ static bool eq_int_type(int_type, int_type);
+ static int_type eof();
};
int main(int, char**) {
diff --git a/libcxx/test/std/strings/string.view/string.view.hash/string_view.pass.cpp b/libcxx/test/std/strings/string.view/string.view.hash/string_view.pass.cpp
index 44b72ce780d6177..981c83423ba0a1e 100644
--- a/libcxx/test/std/strings/string.view/string.view.hash/string_view.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.hash/string_view.pass.cpp
@@ -28,46 +28,43 @@
using std::string_view;
template <class SV>
-void
-test()
-{
- typedef std::hash<SV> H;
+void test() {
+ typedef std::hash<SV> H;
#if TEST_STD_VER <= 14
- static_assert((std::is_same<typename H::argument_type, SV>::value), "" );
- static_assert((std::is_same<typename H::result_type, std::size_t>::value), "" );
+ static_assert((std::is_same<typename H::argument_type, SV>::value), "");
+ static_assert((std::is_same<typename H::result_type, std::size_t>::value), "");
#endif
- typedef typename SV::value_type char_type;
- typedef std::basic_string<char_type> String;
- typedef std::hash<String> SH;
- ASSERT_NOEXCEPT(H()(SV()));
+ typedef typename SV::value_type char_type;
+ typedef std::basic_string<char_type> String;
+ typedef std::hash<String> SH;
+ ASSERT_NOEXCEPT(H()(SV()));
- char_type g1 [ 10 ];
- char_type g2 [ 10 ];
- for ( int i = 0; i < 10; ++i )
- g1[i] = g2[9-i] = static_cast<char_type>('0' + i);
- H h;
- SH sh;
- SV s1(g1, 10);
- String ss1(s1);
- SV s2(g2, 10);
- String ss2(s2);
- assert(h(s1) == h(s1));
- assert(h(s1) != h(s2));
- assert(sh(ss1) == h(s1));
- assert(sh(ss2) == h(s2));
+ char_type g1[10];
+ char_type g2[10];
+ for (int i = 0; i < 10; ++i)
+ g1[i] = g2[9 - i] = static_cast<char_type>('0' + i);
+ H h;
+ SH sh;
+ SV s1(g1, 10);
+ String ss1(s1);
+ SV s2(g2, 10);
+ String ss2(s2);
+ assert(h(s1) == h(s1));
+ assert(h(s1) != h(s2));
+ assert(sh(ss1) == h(s1));
+ assert(sh(ss2) == h(s2));
}
-int main(int, char**)
-{
- test<std::string_view>();
+int main(int, char**) {
+ test<std::string_view>();
#ifndef TEST_HAS_NO_CHAR8_T
- test<std::u8string_view>();
+ test<std::u8string_view>();
#endif
- test<std::u16string_view>();
- test<std::u32string_view>();
+ test<std::u16string_view>();
+ test<std::u32string_view>();
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- test<std::wstring_view>();
+ test<std::wstring_view>();
#endif
return 0;
diff --git a/libcxx/test/std/strings/string.view/string.view.io/stream_insert.pass.cpp b/libcxx/test/std/strings/string.view/string.view.io/stream_insert.pass.cpp
index 083b84a61a679b9..c7772b031dbebc0 100644
--- a/libcxx/test/std/strings/string.view/string.view.io/stream_insert.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.io/stream_insert.pass.cpp
@@ -22,41 +22,40 @@
#include "test_macros.h"
-int main(int, char**)
-{
- {
- std::ostringstream out;
- std::string_view sv("some text");
- out << sv;
- assert(out.good());
- assert(sv == out.str());
- }
- {
- std::ostringstream out;
- std::string s("some text");
- std::string_view sv(s);
- out.width(12);
- out << sv;
- assert(out.good());
- assert(" " + s == out.str());
- }
+int main(int, char**) {
+ {
+ std::ostringstream out;
+ std::string_view sv("some text");
+ out << sv;
+ assert(out.good());
+ assert(sv == out.str());
+ }
+ {
+ std::ostringstream out;
+ std::string s("some text");
+ std::string_view sv(s);
+ out.width(12);
+ out << sv;
+ assert(out.good());
+ assert(" " + s == out.str());
+ }
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- {
- std::wostringstream out;
- std::wstring_view sv(L"some text");
- out << sv;
- assert(out.good());
- assert(sv == out.str());
- }
- {
- std::wostringstream out;
- std::wstring s(L"some text");
- std::wstring_view sv(s);
- out.width(12);
- out << sv;
- assert(out.good());
- assert(L" " + s == out.str());
- }
+ {
+ std::wostringstream out;
+ std::wstring_view sv(L"some text");
+ out << sv;
+ assert(out.good());
+ assert(sv == out.str());
+ }
+ {
+ std::wostringstream out;
+ std::wstring s(L"some text");
+ std::wstring_view sv(s);
+ out.width(12);
+ out << sv;
+ assert(out.good());
+ assert(L" " + s == out.str());
+ }
#endif
return 0;
diff --git a/libcxx/test/std/strings/string.view/string.view.io/stream_insert_decl_present.compile.pass.cpp b/libcxx/test/std/strings/string.view/string.view.io/stream_insert_decl_present.compile.pass.cpp
index 9698ba514069bc1..6f39ade8c898452 100644
--- a/libcxx/test/std/strings/string.view/string.view.io/stream_insert_decl_present.compile.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.io/stream_insert_decl_present.compile.pass.cpp
@@ -22,6 +22,7 @@
template <class SV, class = void>
struct HasDecl : std::false_type {};
template <class SV>
-struct HasDecl<SV, decltype(static_cast<void>(std::declval<std::ostream&>() << std::declval<SV&>()))> : std::true_type {};
+struct HasDecl<SV, decltype(static_cast<void>(std::declval<std::ostream&>() << std::declval<SV&>()))> : std::true_type {
+};
static_assert(HasDecl<std::string_view>::value, "streaming operator declaration not present");
diff --git a/libcxx/test/std/strings/string.view/string.view.iterators/begin.pass.cpp b/libcxx/test/std/strings/string.view/string.view.iterators/begin.pass.cpp
index 73007fc4c32a2f5..ed39c6e2c7e0efc 100644
--- a/libcxx/test/std/strings/string.view/string.view.iterators/begin.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.iterators/begin.pass.cpp
@@ -18,87 +18,81 @@
#include "test_macros.h"
template <class S>
-void
-test(S s)
-{
- const S& cs = s;
- typename S::iterator b = s.begin();
- typename S::const_iterator cb1 = cs.begin();
- typename S::const_iterator cb2 = s.cbegin();
- if (!s.empty())
- {
- assert( *b == s[0]);
- assert( &*b == &s[0]);
- assert( *cb1 == s[0]);
- assert(&*cb1 == &s[0]);
- assert( *cb2 == s[0]);
- assert(&*cb2 == &s[0]);
-
- }
- assert( b == cb1);
- assert( b == cb2);
- assert(cb1 == cb2);
+void test(S s) {
+ const S& cs = s;
+ typename S::iterator b = s.begin();
+ typename S::const_iterator cb1 = cs.begin();
+ typename S::const_iterator cb2 = s.cbegin();
+ if (!s.empty()) {
+ assert(*b == s[0]);
+ assert(&*b == &s[0]);
+ assert(*cb1 == s[0]);
+ assert(&*cb1 == &s[0]);
+ assert(*cb2 == s[0]);
+ assert(&*cb2 == &s[0]);
+ }
+ assert(b == cb1);
+ assert(b == cb2);
+ assert(cb1 == cb2);
}
-
-int main(int, char**)
-{
- typedef std::string_view string_view;
+int main(int, char**) {
+ typedef std::string_view string_view;
#ifndef TEST_HAS_NO_CHAR8_T
- typedef std::u8string_view u8string_view;
+ typedef std::u8string_view u8string_view;
#endif
- typedef std::u16string_view u16string_view;
- typedef std::u32string_view u32string_view;
+ typedef std::u16string_view u16string_view;
+ typedef std::u32string_view u32string_view;
- test(string_view ());
- test(u16string_view());
- test(u32string_view());
- test(string_view ( "123"));
+ test(string_view());
+ test(u16string_view());
+ test(u32string_view());
+ test(string_view("123"));
#ifndef TEST_HAS_NO_CHAR8_T
- test(u8string_view{u8"123"});
+ test(u8string_view{u8"123"});
#endif
#if TEST_STD_VER >= 11
- test(u16string_view{u"123"});
- test(u32string_view{U"123"});
+ test(u16string_view{u"123"});
+ test(u32string_view{U"123"});
#endif
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- typedef std::wstring_view wstring_view;
- test(wstring_view ());
- test(wstring_view (L"123"));
+ typedef std::wstring_view wstring_view;
+ test(wstring_view());
+ test(wstring_view(L"123"));
#endif
#if TEST_STD_VER > 11
- {
- constexpr string_view sv { "123", 3 };
+ {
+ constexpr string_view sv{"123", 3};
# ifndef TEST_HAS_NO_CHAR8_T
- constexpr u8string_view u8sv {u8"123", 3 };
-#endif
- constexpr u16string_view u16sv {u"123", 3 };
- constexpr u32string_view u32sv {U"123", 3 };
+ constexpr u8string_view u8sv{u8"123", 3};
+# endif
+ constexpr u16string_view u16sv{u"123", 3};
+ constexpr u32string_view u32sv{U"123", 3};
- static_assert ( *sv.begin() == sv[0], "" );
+ static_assert(*sv.begin() == sv[0], "");
# ifndef TEST_HAS_NO_CHAR8_T
- static_assert ( *u8sv.begin() == u8sv[0], "" );
-#endif
- static_assert ( *u16sv.begin() == u16sv[0], "" );
- static_assert ( *u32sv.begin() == u32sv[0], "" );
+ static_assert(*u8sv.begin() == u8sv[0], "");
+# endif
+ static_assert(*u16sv.begin() == u16sv[0], "");
+ static_assert(*u32sv.begin() == u32sv[0], "");
- static_assert ( *sv.cbegin() == sv[0], "" );
+ static_assert(*sv.cbegin() == sv[0], "");
# ifndef TEST_HAS_NO_CHAR8_T
- static_assert ( *u8sv.cbegin() == u8sv[0], "" );
-#endif
- static_assert ( *u16sv.cbegin() == u16sv[0], "" );
- static_assert ( *u32sv.cbegin() == u32sv[0], "" );
+ static_assert(*u8sv.cbegin() == u8sv[0], "");
+# endif
+ static_assert(*u16sv.cbegin() == u16sv[0], "");
+ static_assert(*u32sv.cbegin() == u32sv[0], "");
-#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- {
- constexpr wstring_view wsv {L"123", 3 };
- static_assert ( *wsv.begin() == wsv[0], "" );
- static_assert ( *wsv.cbegin() == wsv[0], "" );
- }
-#endif
+# ifndef TEST_HAS_NO_WIDE_CHARACTERS
+ {
+ constexpr wstring_view wsv{L"123", 3};
+ static_assert(*wsv.begin() == wsv[0], "");
+ static_assert(*wsv.cbegin() == wsv[0], "");
}
+# endif
+ }
#endif // TEST_STD_VER > 11
return 0;
diff --git a/libcxx/test/std/strings/string.view/string.view.iterators/end.pass.cpp b/libcxx/test/std/strings/string.view/string.view.iterators/end.pass.cpp
index 70e30e0fdfa3d96..da04ab4525bcee7 100644
--- a/libcxx/test/std/strings/string.view/string.view.iterators/end.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.iterators/end.pass.cpp
@@ -19,95 +19,88 @@
#include "test_macros.h"
template <class S>
-void
-test(S s)
-{
- const S& cs = s;
- typename S::iterator e = s.end();
- typename S::const_iterator ce1 = cs.end();
- typename S::const_iterator ce2 = s.cend();
-
- if (s.empty())
- {
- assert( e == s.begin());
- assert(ce1 == cs.begin());
- assert(ce2 == s.begin());
- }
- else
- {
- assert( e != s.begin());
- assert(ce1 != cs.begin());
- assert(ce2 != s.begin());
- }
-
- assert(static_cast<std::size_t>( e - s.begin()) == s.size());
- assert(static_cast<std::size_t>(ce1 - cs.begin()) == cs.size());
- assert(static_cast<std::size_t>(ce2 - s.cbegin()) == s.size());
-
- assert( e == ce1);
- assert( e == ce2);
- assert(ce1 == ce2);
+void test(S s) {
+ const S& cs = s;
+ typename S::iterator e = s.end();
+ typename S::const_iterator ce1 = cs.end();
+ typename S::const_iterator ce2 = s.cend();
+
+ if (s.empty()) {
+ assert(e == s.begin());
+ assert(ce1 == cs.begin());
+ assert(ce2 == s.begin());
+ } else {
+ assert(e != s.begin());
+ assert(ce1 != cs.begin());
+ assert(ce2 != s.begin());
+ }
+
+ assert(static_cast<std::size_t>(e - s.begin()) == s.size());
+ assert(static_cast<std::size_t>(ce1 - cs.begin()) == cs.size());
+ assert(static_cast<std::size_t>(ce2 - s.cbegin()) == s.size());
+
+ assert(e == ce1);
+ assert(e == ce2);
+ assert(ce1 == ce2);
}
-
-int main(int, char**)
-{
- typedef std::string_view string_view;
+int main(int, char**) {
+ typedef std::string_view string_view;
#ifndef TEST_HAS_NO_CHAR8_T
- typedef std::u8string_view u8string_view;
+ typedef std::u8string_view u8string_view;
#endif
- typedef std::u16string_view u16string_view;
- typedef std::u32string_view u32string_view;
+ typedef std::u16string_view u16string_view;
+ typedef std::u32string_view u32string_view;
- test(string_view ());
- test(u16string_view());
- test(u32string_view());
- test(string_view ( "123"));
+ test(string_view());
+ test(u16string_view());
+ test(u32string_view());
+ test(string_view("123"));
#ifndef TEST_HAS_NO_CHAR8_T
- test(u8string_view{u8"123"});
+ test(u8string_view{u8"123"});
#endif
#if TEST_STD_VER >= 11
- test(u16string_view{u"123"});
- test(u32string_view{U"123"});
+ test(u16string_view{u"123"});
+ test(u32string_view{U"123"});
#endif
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- typedef std::wstring_view wstring_view;
- test(wstring_view ());
- test(wstring_view (L"123"));
+ typedef std::wstring_view wstring_view;
+ test(wstring_view());
+ test(wstring_view(L"123"));
#endif
#if TEST_STD_VER > 11
- {
- constexpr string_view sv { "123", 3 };
+ {
+ constexpr string_view sv{"123", 3};
# ifndef TEST_HAS_NO_CHAR8_T
- constexpr u8string_view u8sv {u8"123", 3 };
-#endif
- constexpr u16string_view u16sv {u"123", 3 };
- constexpr u32string_view u32sv {U"123", 3 };
+ constexpr u8string_view u8sv{u8"123", 3};
+# endif
+ constexpr u16string_view u16sv{u"123", 3};
+ constexpr u32string_view u32sv{U"123", 3};
- static_assert ( sv.begin() != sv.end(), "" );
+ static_assert(sv.begin() != sv.end(), "");
# ifndef TEST_HAS_NO_CHAR8_T
- static_assert ( u8sv.begin() != u8sv.end(), "" );
-#endif
- static_assert ( u16sv.begin() != u16sv.end(), "" );
- static_assert ( u32sv.begin() != u32sv.end(), "" );
+ static_assert(u8sv.begin() != u8sv.end(), "");
+# endif
+ static_assert(u16sv.begin() != u16sv.end(), "");
+ static_assert(u32sv.begin() != u32sv.end(), "");
- static_assert ( sv.begin() != sv.cend(), "" );
+ static_assert(sv.begin() != sv.cend(), "");
# ifndef TEST_HAS_NO_CHAR8_T
- static_assert ( u8sv.begin() != u8sv.cend(), "" );
-#endif
- static_assert ( u16sv.begin() != u16sv.cend(), "" );
- static_assert ( u32sv.begin() != u32sv.cend(), "" );
+ static_assert(u8sv.begin() != u8sv.cend(), "");
+# endif
+ static_assert(u16sv.begin() != u16sv.cend(), "");
+ static_assert(u32sv.begin() != u32sv.cend(), "");
-#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- {
- constexpr wstring_view wsv {L"123", 3 };
- static_assert ( wsv.begin() != wsv.end(), "" );
- static_assert ( wsv.begin() != wsv.cend(), "" );
- }
-#endif
+# ifndef TEST_HAS_NO_WIDE_CHARACTERS
+ {
+ constexpr wstring_view wsv{L"123", 3};
+ static_assert(wsv.begin() != wsv.end(), "");
+ static_assert(wsv.begin() != wsv.cend(), "");
}
+# endif
+ }
#endif // TEST_STD_VER > 11
return 0;
diff --git a/libcxx/test/std/strings/string.view/string.view.iterators/iterator_concept_conformance.compile.pass.cpp b/libcxx/test/std/strings/string.view/string.view.iterators/iterator_concept_conformance.compile.pass.cpp
index bd49f87ff54afc6..7e148f32f8946b4 100644
--- a/libcxx/test/std/strings/string.view/string.view.iterators/iterator_concept_conformance.compile.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.iterators/iterator_concept_conformance.compile.pass.cpp
@@ -16,9 +16,9 @@
#include "test_macros.h"
-using iterator = std::string_view::iterator;
-using const_iterator = std::string_view::const_iterator;
-using reverse_iterator = std::string_view::reverse_iterator;
+using iterator = std::string_view::iterator;
+using const_iterator = std::string_view::const_iterator;
+using reverse_iterator = std::string_view::reverse_iterator;
using const_reverse_iterator = std::string_view::const_reverse_iterator;
static_assert(std::contiguous_iterator<iterator>);
diff --git a/libcxx/test/std/strings/string.view/string.view.iterators/rbegin.pass.cpp b/libcxx/test/std/strings/string.view/string.view.iterators/rbegin.pass.cpp
index e5f0db5ffbf2472..38ccbda2179ff18 100644
--- a/libcxx/test/std/strings/string.view/string.view.iterators/rbegin.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.iterators/rbegin.pass.cpp
@@ -18,88 +18,82 @@
#include "test_macros.h"
template <class S>
-void
-test(S s)
-{
- const S& cs = s;
- typename S::reverse_iterator b = s.rbegin();
- typename S::const_reverse_iterator cb1 = cs.rbegin();
- typename S::const_reverse_iterator cb2 = s.crbegin();
- if (!s.empty())
- {
- const std::size_t last = s.size() - 1;
- assert( *b == s[last]);
- assert( &*b == &s[last]);
- assert( *cb1 == s[last]);
- assert(&*cb1 == &s[last]);
- assert( *cb2 == s[last]);
- assert(&*cb2 == &s[last]);
-
- }
- assert( b == cb1);
- assert( b == cb2);
- assert(cb1 == cb2);
+void test(S s) {
+ const S& cs = s;
+ typename S::reverse_iterator b = s.rbegin();
+ typename S::const_reverse_iterator cb1 = cs.rbegin();
+ typename S::const_reverse_iterator cb2 = s.crbegin();
+ if (!s.empty()) {
+ const std::size_t last = s.size() - 1;
+ assert(*b == s[last]);
+ assert(&*b == &s[last]);
+ assert(*cb1 == s[last]);
+ assert(&*cb1 == &s[last]);
+ assert(*cb2 == s[last]);
+ assert(&*cb2 == &s[last]);
+ }
+ assert(b == cb1);
+ assert(b == cb2);
+ assert(cb1 == cb2);
}
-
-int main(int, char**)
-{
- typedef std::string_view string_view;
+int main(int, char**) {
+ typedef std::string_view string_view;
#ifndef TEST_HAS_NO_CHAR8_T
- typedef std::u8string_view u8string_view;
+ typedef std::u8string_view u8string_view;
#endif
- typedef std::u16string_view u16string_view;
- typedef std::u32string_view u32string_view;
+ typedef std::u16string_view u16string_view;
+ typedef std::u32string_view u32string_view;
- test(string_view ());
- test(u16string_view());
- test(u32string_view());
- test(string_view ( "123"));
+ test(string_view());
+ test(u16string_view());
+ test(u32string_view());
+ test(string_view("123"));
#ifndef TEST_HAS_NO_CHAR8_T
- test(u8string_view{u8"123"});
+ test(u8string_view{u8"123"});
#endif
#if TEST_STD_VER >= 11
- test(u16string_view{u"123"});
- test(u32string_view{U"123"});
+ test(u16string_view{u"123"});
+ test(u32string_view{U"123"});
#endif
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- typedef std::wstring_view wstring_view;
- test(wstring_view ());
- test(wstring_view (L"123"));
+ typedef std::wstring_view wstring_view;
+ test(wstring_view());
+ test(wstring_view(L"123"));
#endif
#if TEST_STD_VER > 14
- {
- constexpr string_view sv { "123", 3 };
+ {
+ constexpr string_view sv{"123", 3};
# ifndef TEST_HAS_NO_CHAR8_T
- constexpr u8string_view u8sv {u8"123", 3 };
-#endif
- constexpr u16string_view u16sv {u"123", 3 };
- constexpr u32string_view u32sv {U"123", 3 };
+ constexpr u8string_view u8sv{u8"123", 3};
+# endif
+ constexpr u16string_view u16sv{u"123", 3};
+ constexpr u32string_view u32sv{U"123", 3};
- static_assert ( *sv.rbegin() == sv[2], "" );
+ static_assert(*sv.rbegin() == sv[2], "");
# ifndef TEST_HAS_NO_CHAR8_T
- static_assert ( *u8sv.rbegin() == u8sv[2], "" );
-#endif
- static_assert ( *u16sv.rbegin() == u16sv[2], "" );
- static_assert ( *u32sv.rbegin() == u32sv[2], "" );
+ static_assert(*u8sv.rbegin() == u8sv[2], "");
+# endif
+ static_assert(*u16sv.rbegin() == u16sv[2], "");
+ static_assert(*u32sv.rbegin() == u32sv[2], "");
- static_assert ( *sv.crbegin() == sv[2], "" );
+ static_assert(*sv.crbegin() == sv[2], "");
# ifndef TEST_HAS_NO_CHAR8_T
- static_assert ( *u8sv.crbegin() == u8sv[2], "" );
-#endif
- static_assert ( *u16sv.crbegin() == u16sv[2], "" );
- static_assert ( *u32sv.crbegin() == u32sv[2], "" );
+ static_assert(*u8sv.crbegin() == u8sv[2], "");
+# endif
+ static_assert(*u16sv.crbegin() == u16sv[2], "");
+ static_assert(*u32sv.crbegin() == u32sv[2], "");
-#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- {
- constexpr wstring_view wsv {L"123", 3 };
- static_assert ( *wsv.rbegin() == wsv[2], "" );
- static_assert ( *wsv.crbegin() == wsv[2], "" );
- }
-#endif
+# ifndef TEST_HAS_NO_WIDE_CHARACTERS
+ {
+ constexpr wstring_view wsv{L"123", 3};
+ static_assert(*wsv.rbegin() == wsv[2], "");
+ static_assert(*wsv.crbegin() == wsv[2], "");
}
+# endif
+ }
#endif // TEST_STD_VER > 14
return 0;
diff --git a/libcxx/test/std/strings/string.view/string.view.iterators/rend.pass.cpp b/libcxx/test/std/strings/string.view/string.view.iterators/rend.pass.cpp
index 481d623eb715a18..196639f985edb22 100644
--- a/libcxx/test/std/strings/string.view/string.view.iterators/rend.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.iterators/rend.pass.cpp
@@ -19,95 +19,88 @@
#include "test_macros.h"
template <class S>
-void
-test(S s)
-{
- const S& cs = s;
- typename S::reverse_iterator e = s.rend();
- typename S::const_reverse_iterator ce1 = cs.rend();
- typename S::const_reverse_iterator ce2 = s.crend();
-
- if (s.empty())
- {
- assert( e == s.rbegin());
- assert(ce1 == cs.rbegin());
- assert(ce2 == s.rbegin());
- }
- else
- {
- assert( e != s.rbegin());
- assert(ce1 != cs.rbegin());
- assert(ce2 != s.rbegin());
- }
-
- assert(static_cast<std::size_t>( e - s.rbegin()) == s.size());
- assert(static_cast<std::size_t>(ce1 - cs.rbegin()) == cs.size());
- assert(static_cast<std::size_t>(ce2 - s.crbegin()) == s.size());
-
- assert( e == ce1);
- assert( e == ce2);
- assert(ce1 == ce2);
+void test(S s) {
+ const S& cs = s;
+ typename S::reverse_iterator e = s.rend();
+ typename S::const_reverse_iterator ce1 = cs.rend();
+ typename S::const_reverse_iterator ce2 = s.crend();
+
+ if (s.empty()) {
+ assert(e == s.rbegin());
+ assert(ce1 == cs.rbegin());
+ assert(ce2 == s.rbegin());
+ } else {
+ assert(e != s.rbegin());
+ assert(ce1 != cs.rbegin());
+ assert(ce2 != s.rbegin());
+ }
+
+ assert(static_cast<std::size_t>(e - s.rbegin()) == s.size());
+ assert(static_cast<std::size_t>(ce1 - cs.rbegin()) == cs.size());
+ assert(static_cast<std::size_t>(ce2 - s.crbegin()) == s.size());
+
+ assert(e == ce1);
+ assert(e == ce2);
+ assert(ce1 == ce2);
}
-
-int main(int, char**)
-{
- typedef std::string_view string_view;
+int main(int, char**) {
+ typedef std::string_view string_view;
#ifndef TEST_HAS_NO_CHAR8_T
- typedef std::u8string_view u8string_view;
+ typedef std::u8string_view u8string_view;
#endif
- typedef std::u16string_view u16string_view;
- typedef std::u32string_view u32string_view;
+ typedef std::u16string_view u16string_view;
+ typedef std::u32string_view u32string_view;
- test(string_view ());
- test(u16string_view());
- test(u32string_view());
- test(string_view ( "123"));
+ test(string_view());
+ test(u16string_view());
+ test(u32string_view());
+ test(string_view("123"));
#ifndef TEST_HAS_NO_CHAR8_T
- test(u8string_view{u8"123"});
+ test(u8string_view{u8"123"});
#endif
#if TEST_STD_VER >= 11
- test(u16string_view{u"123"});
- test(u32string_view{U"123"});
+ test(u16string_view{u"123"});
+ test(u32string_view{U"123"});
#endif
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- typedef std::wstring_view wstring_view;
- test(wstring_view ());
- test(wstring_view (L"123"));
+ typedef std::wstring_view wstring_view;
+ test(wstring_view());
+ test(wstring_view(L"123"));
#endif
#if TEST_STD_VER > 14
- {
- constexpr string_view sv { "123", 3 };
+ {
+ constexpr string_view sv{"123", 3};
# ifndef TEST_HAS_NO_CHAR8_T
- constexpr u8string_view u8sv {u8"123", 3 };
-#endif
- constexpr u16string_view u16sv {u"123", 3 };
- constexpr u32string_view u32sv {U"123", 3 };
+ constexpr u8string_view u8sv{u8"123", 3};
+# endif
+ constexpr u16string_view u16sv{u"123", 3};
+ constexpr u32string_view u32sv{U"123", 3};
- static_assert ( *--sv.rend() == sv[0], "" );
+ static_assert(*--sv.rend() == sv[0], "");
# ifndef TEST_HAS_NO_CHAR8_T
- static_assert ( *--u8sv.rend() == u8sv[0], "" );
-#endif
- static_assert ( *--u16sv.rend() == u16sv[0], "" );
- static_assert ( *--u32sv.rend() == u32sv[0], "" );
+ static_assert(*--u8sv.rend() == u8sv[0], "");
+# endif
+ static_assert(*--u16sv.rend() == u16sv[0], "");
+ static_assert(*--u32sv.rend() == u32sv[0], "");
- static_assert ( *--sv.crend() == sv[0], "" );
+ static_assert(*--sv.crend() == sv[0], "");
# ifndef TEST_HAS_NO_CHAR8_T
- static_assert ( *--u8sv.crend() == u8sv[0], "" );
-#endif
- static_assert ( *--u16sv.crend() == u16sv[0], "" );
- static_assert ( *--u32sv.crend() == u32sv[0], "" );
+ static_assert(*--u8sv.crend() == u8sv[0], "");
+# endif
+ static_assert(*--u16sv.crend() == u16sv[0], "");
+ static_assert(*--u32sv.crend() == u32sv[0], "");
-#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- {
- constexpr wstring_view wsv {L"123", 3 };
- static_assert ( *--wsv.rend() == wsv[0], "" );
- static_assert ( *--wsv.crend() == wsv[0], "" );
- }
-#endif
+# ifndef TEST_HAS_NO_WIDE_CHARACTERS
+ {
+ constexpr wstring_view wsv{L"123", 3};
+ static_assert(*--wsv.rend() == wsv[0], "");
+ static_assert(*--wsv.crend() == wsv[0], "");
}
+# endif
+ }
#endif // TEST_STD_VER > 14
return 0;
diff --git a/libcxx/test/std/strings/string.view/string.view.modifiers/remove_prefix.pass.cpp b/libcxx/test/std/strings/string.view/string.view.modifiers/remove_prefix.pass.cpp
index 4e41130a54b6356..4bfa0f38829dda7 100644
--- a/libcxx/test/std/strings/string.view/string.view.modifiers/remove_prefix.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.modifiers/remove_prefix.pass.cpp
@@ -17,64 +17,64 @@
#include "test_macros.h"
-template<typename CharT>
-void test ( const CharT *s, std::size_t len ) {
- typedef std::basic_string_view<CharT> SV;
- {
- SV sv1 ( s );
- assert ( sv1.size() == len );
- assert ( sv1.data() == s );
+template <typename CharT>
+void test(const CharT* s, std::size_t len) {
+ typedef std::basic_string_view<CharT> SV;
+ {
+ SV sv1(s);
+ assert(sv1.size() == len);
+ assert(sv1.data() == s);
- if ( len > 0 ) {
- sv1.remove_prefix ( 1 );
- assert ( sv1.size() == (len - 1));
- assert ( sv1.data() == (s + 1));
- sv1.remove_prefix ( len - 1 );
+ if (len > 0) {
+ sv1.remove_prefix(1);
+ assert(sv1.size() == (len - 1));
+ assert(sv1.data() == (s + 1));
+ sv1.remove_prefix(len - 1);
}
- assert ( sv1.size() == 0 );
- sv1.remove_prefix ( 0 );
- assert ( sv1.size() == 0 );
- }
+ assert(sv1.size() == 0);
+ sv1.remove_prefix(0);
+ assert(sv1.size() == 0);
+ }
}
#if TEST_STD_VER > 11
-constexpr std::size_t test_ce ( size_t n, size_t k ) {
- typedef std::basic_string_view<char> SV;
- SV sv1{ "ABCDEFGHIJKL", n };
- sv1.remove_prefix ( k );
- return sv1.size();
+constexpr std::size_t test_ce(size_t n, size_t k) {
+ typedef std::basic_string_view<char> SV;
+ SV sv1{"ABCDEFGHIJKL", n};
+ sv1.remove_prefix(k);
+ return sv1.size();
}
#endif
int main(int, char**) {
- test ( "ABCDE", 5 );
- test ( "a", 1 );
- test ( "", 0 );
+ test("ABCDE", 5);
+ test("a", 1);
+ test("", 0);
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- test ( L"ABCDE", 5 );
- test ( L"a", 1 );
- test ( L"", 0 );
+ test(L"ABCDE", 5);
+ test(L"a", 1);
+ test(L"", 0);
#endif
#if TEST_STD_VER >= 11
- test ( u"ABCDE", 5 );
- test ( u"a", 1 );
- test ( u"", 0 );
+ test(u"ABCDE", 5);
+ test(u"a", 1);
+ test(u"", 0);
- test ( U"ABCDE", 5 );
- test ( U"a", 1 );
- test ( U"", 0 );
+ test(U"ABCDE", 5);
+ test(U"a", 1);
+ test(U"", 0);
#endif
#if TEST_STD_VER > 11
- {
- static_assert ( test_ce ( 5, 0 ) == 5, "" );
- static_assert ( test_ce ( 5, 1 ) == 4, "" );
- static_assert ( test_ce ( 5, 5 ) == 0, "" );
- static_assert ( test_ce ( 9, 3 ) == 6, "" );
- }
+ {
+ static_assert(test_ce(5, 0) == 5, "");
+ static_assert(test_ce(5, 1) == 4, "");
+ static_assert(test_ce(5, 5) == 0, "");
+ static_assert(test_ce(9, 3) == 6, "");
+ }
#endif
return 0;
diff --git a/libcxx/test/std/strings/string.view/string.view.modifiers/remove_suffix.pass.cpp b/libcxx/test/std/strings/string.view/string.view.modifiers/remove_suffix.pass.cpp
index 2ebe665c78f9e3e..6d57f6c24a48774 100644
--- a/libcxx/test/std/strings/string.view/string.view.modifiers/remove_suffix.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.modifiers/remove_suffix.pass.cpp
@@ -17,65 +17,64 @@
#include "test_macros.h"
-template<typename CharT>
-void test ( const CharT *s, std::size_t len ) {
- typedef std::basic_string_view<CharT> SV;
- {
- SV sv1 ( s );
- assert ( sv1.size() == len );
- assert ( sv1.data() == s );
-
- if ( len > 0 ) {
- sv1.remove_suffix ( 1 );
- assert ( sv1.size() == (len - 1));
- assert ( sv1.data() == s);
- sv1.remove_suffix ( len - 1 );
- }
-
- assert ( sv1.size() == 0 );
- sv1.remove_suffix ( 0 );
- assert ( sv1.size() == 0 );
+template <typename CharT>
+void test(const CharT* s, std::size_t len) {
+ typedef std::basic_string_view<CharT> SV;
+ {
+ SV sv1(s);
+ assert(sv1.size() == len);
+ assert(sv1.data() == s);
+
+ if (len > 0) {
+ sv1.remove_suffix(1);
+ assert(sv1.size() == (len - 1));
+ assert(sv1.data() == s);
+ sv1.remove_suffix(len - 1);
}
+ assert(sv1.size() == 0);
+ sv1.remove_suffix(0);
+ assert(sv1.size() == 0);
+ }
}
#if TEST_STD_VER > 11
-constexpr std::size_t test_ce ( size_t n, size_t k ) {
- typedef std::basic_string_view<char> SV;
- SV sv1{ "ABCDEFGHIJKL", n };
- sv1.remove_suffix ( k );
- return sv1.size();
+constexpr std::size_t test_ce(size_t n, size_t k) {
+ typedef std::basic_string_view<char> SV;
+ SV sv1{"ABCDEFGHIJKL", n};
+ sv1.remove_suffix(k);
+ return sv1.size();
}
#endif
int main(int, char**) {
- test ( "ABCDE", 5 );
- test ( "a", 1 );
- test ( "", 0 );
+ test("ABCDE", 5);
+ test("a", 1);
+ test("", 0);
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- test ( L"ABCDE", 5 );
- test ( L"a", 1 );
- test ( L"", 0 );
+ test(L"ABCDE", 5);
+ test(L"a", 1);
+ test(L"", 0);
#endif
#if TEST_STD_VER >= 11
- test ( u"ABCDE", 5 );
- test ( u"a", 1 );
- test ( u"", 0 );
+ test(u"ABCDE", 5);
+ test(u"a", 1);
+ test(u"", 0);
- test ( U"ABCDE", 5 );
- test ( U"a", 1 );
- test ( U"", 0 );
+ test(U"ABCDE", 5);
+ test(U"a", 1);
+ test(U"", 0);
#endif
#if TEST_STD_VER > 11
- {
- static_assert ( test_ce ( 5, 0 ) == 5, "" );
- static_assert ( test_ce ( 5, 1 ) == 4, "" );
- static_assert ( test_ce ( 5, 5 ) == 0, "" );
- static_assert ( test_ce ( 9, 3 ) == 6, "" );
- }
+ {
+ static_assert(test_ce(5, 0) == 5, "");
+ static_assert(test_ce(5, 1) == 4, "");
+ static_assert(test_ce(5, 5) == 0, "");
+ static_assert(test_ce(9, 3) == 6, "");
+ }
#endif
return 0;
diff --git a/libcxx/test/std/strings/string.view/string.view.modifiers/swap.pass.cpp b/libcxx/test/std/strings/string.view/string.view.modifiers/swap.pass.cpp
index 7f46cbf15e7c133..de0c5f423c4e8ee 100644
--- a/libcxx/test/std/strings/string.view/string.view.modifiers/swap.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.modifiers/swap.pass.cpp
@@ -17,63 +17,61 @@
#include "test_macros.h"
-template<typename CharT>
-void test ( const CharT *s, std::size_t len ) {
- typedef std::basic_string_view<CharT> SV;
- {
+template <typename CharT>
+void test(const CharT* s, std::size_t len) {
+ typedef std::basic_string_view<CharT> SV;
+ {
SV sv1(s);
SV sv2;
- assert ( sv1.size() == len );
- assert ( sv1.data() == s );
- assert ( sv2.size() == 0 );
-
- sv1.swap ( sv2 );
- assert ( sv1.size() == 0 );
- assert ( sv2.size() == len );
- assert ( sv2.data() == s );
- }
+ assert(sv1.size() == len);
+ assert(sv1.data() == s);
+ assert(sv2.size() == 0);
+ sv1.swap(sv2);
+ assert(sv1.size() == 0);
+ assert(sv2.size() == len);
+ assert(sv2.data() == s);
+ }
}
#if TEST_STD_VER > 11
-constexpr std::size_t test_ce ( size_t n, size_t k ) {
- typedef std::basic_string_view<char> SV;
- SV sv1{ "ABCDEFGHIJKL", n };
- SV sv2 { sv1.data(), k };
- sv1.swap ( sv2 );
- return sv1.size();
+constexpr std::size_t test_ce(size_t n, size_t k) {
+ typedef std::basic_string_view<char> SV;
+ SV sv1{"ABCDEFGHIJKL", n};
+ SV sv2{sv1.data(), k};
+ sv1.swap(sv2);
+ return sv1.size();
}
#endif
-
int main(int, char**) {
- test ( "ABCDE", 5 );
- test ( "a", 1 );
- test ( "", 0 );
+ test("ABCDE", 5);
+ test("a", 1);
+ test("", 0);
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- test ( L"ABCDE", 5 );
- test ( L"a", 1 );
- test ( L"", 0 );
+ test(L"ABCDE", 5);
+ test(L"a", 1);
+ test(L"", 0);
#endif
#if TEST_STD_VER >= 11
- test ( u"ABCDE", 5 );
- test ( u"a", 1 );
- test ( u"", 0 );
+ test(u"ABCDE", 5);
+ test(u"a", 1);
+ test(u"", 0);
- test ( U"ABCDE", 5 );
- test ( U"a", 1 );
- test ( U"", 0 );
+ test(U"ABCDE", 5);
+ test(U"a", 1);
+ test(U"", 0);
#endif
#if TEST_STD_VER > 11
- {
- static_assert ( test_ce (2, 3) == 3, "" );
- static_assert ( test_ce (5, 3) == 3, "" );
- static_assert ( test_ce (0, 1) == 1, "" );
- }
+ {
+ static_assert(test_ce(2, 3) == 3, "");
+ static_assert(test_ce(5, 3) == 3, "");
+ static_assert(test_ce(0, 1) == 1, "");
+ }
#endif
return 0;
diff --git a/libcxx/test/std/strings/string.view/string.view.nonmem/quoted.pass.cpp b/libcxx/test/std/strings/string.view/string.view.nonmem/quoted.pass.cpp
index 3d47f625a502117..07d041c4729428b 100644
--- a/libcxx/test/std/strings/string.view/string.view.nonmem/quoted.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.nonmem/quoted.pass.cpp
@@ -21,205 +21,196 @@
#include "test_macros.h"
-bool is_skipws ( const std::istream *is ) {
- return ( is->flags() & std::ios_base::skipws ) != 0;
-}
+bool is_skipws(const std::istream* is) { return (is->flags() & std::ios_base::skipws) != 0; }
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
-bool is_skipws ( const std::wistream *is ) {
- return ( is->flags() & std::ios_base::skipws ) != 0;
-}
+bool is_skipws(const std::wistream* is) { return (is->flags() & std::ios_base::skipws) != 0; }
#endif
-void round_trip ( const char *p ) {
- std::stringstream ss;
- bool skippingws = is_skipws ( &ss );
- std::string_view sv {p};
-
- ss << std::quoted(sv);
- std::string s;
- ss >> std::quoted(s);
- assert ( s == sv );
- assert ( skippingws == is_skipws ( &ss ));
- }
-
-void round_trip_ws ( const char *p ) {
- std::stringstream ss;
- std::noskipws ( ss );
- bool skippingws = is_skipws ( &ss );
- std::string_view sv {p};
-
- ss << std::quoted(sv);
- std::string s;
- ss >> std::quoted(s);
- assert ( s == sv );
- assert ( skippingws == is_skipws ( &ss ));
- }
-
-void round_trip_d ( const char *p, char delim ) {
- std::stringstream ss;
- std::string_view sv {p};
-
- ss << std::quoted(sv, delim);
- std::string s;
- ss >> std::quoted(s, delim);
- assert ( s == sv );
- }
-
-void round_trip_e ( const char *p, char escape ) {
- std::stringstream ss;
- std::string_view sv {p};
-
- ss << std::quoted(sv, '"', escape );
- std::string s;
- ss >> std::quoted(s, '"', escape );
- assert ( s == sv );
- }
-
-
-
-std::string quote ( const char *p, char delim='"', char escape='\\' ) {
- std::stringstream ss;
- ss << std::quoted(p, delim, escape);
- std::string s;
- ss >> s; // no quote
- return s;
+void round_trip(const char* p) {
+ std::stringstream ss;
+ bool skippingws = is_skipws(&ss);
+ std::string_view sv{p};
+
+ ss << std::quoted(sv);
+ std::string s;
+ ss >> std::quoted(s);
+ assert(s == sv);
+ assert(skippingws == is_skipws(&ss));
+}
+
+void round_trip_ws(const char* p) {
+ std::stringstream ss;
+ std::noskipws(ss);
+ bool skippingws = is_skipws(&ss);
+ std::string_view sv{p};
+
+ ss << std::quoted(sv);
+ std::string s;
+ ss >> std::quoted(s);
+ assert(s == sv);
+ assert(skippingws == is_skipws(&ss));
+}
+
+void round_trip_d(const char* p, char delim) {
+ std::stringstream ss;
+ std::string_view sv{p};
+
+ ss << std::quoted(sv, delim);
+ std::string s;
+ ss >> std::quoted(s, delim);
+ assert(s == sv);
+}
+
+void round_trip_e(const char* p, char escape) {
+ std::stringstream ss;
+ std::string_view sv{p};
+
+ ss << std::quoted(sv, '"', escape);
+ std::string s;
+ ss >> std::quoted(s, '"', escape);
+ assert(s == sv);
+}
+
+std::string quote(const char* p, char delim = '"', char escape = '\\') {
+ std::stringstream ss;
+ ss << std::quoted(p, delim, escape);
+ std::string s;
+ ss >> s; // no quote
+ return s;
}
-std::string unquote ( const char *p, char delim='"', char escape='\\' ) {
- std::stringstream ss;
- ss << p;
- std::string s;
- ss >> std::quoted(s, delim, escape);
- return s;
+std::string unquote(const char* p, char delim = '"', char escape = '\\') {
+ std::stringstream ss;
+ ss << p;
+ std::string s;
+ ss >> std::quoted(s, delim, escape);
+ return s;
}
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
-void round_trip ( const wchar_t *p ) {
- std::wstringstream ss;
- bool skippingws = is_skipws ( &ss );
- std::wstring_view sv {p};
-
- ss << std::quoted(sv);
- std::wstring s;
- ss >> std::quoted(s);
- assert ( s == sv );
- assert ( skippingws == is_skipws ( &ss ));
- }
-
-
-void round_trip_ws ( const wchar_t *p ) {
- std::wstringstream ss;
- std::noskipws ( ss );
- bool skippingws = is_skipws ( &ss );
- std::wstring_view sv {p};
-
- ss << std::quoted(sv);
- std::wstring s;
- ss >> std::quoted(s);
- assert ( s == sv );
- assert ( skippingws == is_skipws ( &ss ));
- }
-
-void round_trip_d ( const wchar_t *p, wchar_t delim ) {
- std::wstringstream ss;
- std::wstring_view sv {p};
-
- ss << std::quoted(sv, delim);
- std::wstring s;
- ss >> std::quoted(s, delim);
- assert ( s == sv );
- }
-
-void round_trip_e ( const wchar_t *p, wchar_t escape ) {
- std::wstringstream ss;
- std::wstring_view sv {p};
-
- ss << std::quoted(sv, wchar_t('"'), escape );
- std::wstring s;
- ss >> std::quoted(s, wchar_t('"'), escape );
- assert ( s == sv );
- }
-
-
-std::wstring quote ( const wchar_t *p, wchar_t delim='"', wchar_t escape='\\' ) {
- std::wstringstream ss;
- std::wstring_view sv {p};
-
- ss << std::quoted(sv, delim, escape);
- std::wstring s;
- ss >> s; // no quote
- return s;
+void round_trip(const wchar_t* p) {
+ std::wstringstream ss;
+ bool skippingws = is_skipws(&ss);
+ std::wstring_view sv{p};
+
+ ss << std::quoted(sv);
+ std::wstring s;
+ ss >> std::quoted(s);
+ assert(s == sv);
+ assert(skippingws == is_skipws(&ss));
+}
+
+void round_trip_ws(const wchar_t* p) {
+ std::wstringstream ss;
+ std::noskipws(ss);
+ bool skippingws = is_skipws(&ss);
+ std::wstring_view sv{p};
+
+ ss << std::quoted(sv);
+ std::wstring s;
+ ss >> std::quoted(s);
+ assert(s == sv);
+ assert(skippingws == is_skipws(&ss));
+}
+
+void round_trip_d(const wchar_t* p, wchar_t delim) {
+ std::wstringstream ss;
+ std::wstring_view sv{p};
+
+ ss << std::quoted(sv, delim);
+ std::wstring s;
+ ss >> std::quoted(s, delim);
+ assert(s == sv);
+}
+
+void round_trip_e(const wchar_t* p, wchar_t escape) {
+ std::wstringstream ss;
+ std::wstring_view sv{p};
+
+ ss << std::quoted(sv, wchar_t('"'), escape);
+ std::wstring s;
+ ss >> std::quoted(s, wchar_t('"'), escape);
+ assert(s == sv);
+}
+
+std::wstring quote(const wchar_t* p, wchar_t delim = '"', wchar_t escape = '\\') {
+ std::wstringstream ss;
+ std::wstring_view sv{p};
+
+ ss << std::quoted(sv, delim, escape);
+ std::wstring s;
+ ss >> s; // no quote
+ return s;
}
-std::wstring unquote ( const wchar_t *p, wchar_t delim='"', wchar_t escape='\\' ) {
- std::wstringstream ss;
- std::wstring_view sv {p};
+std::wstring unquote(const wchar_t* p, wchar_t delim = '"', wchar_t escape = '\\') {
+ std::wstringstream ss;
+ std::wstring_view sv{p};
- ss << sv;
- std::wstring s;
- ss >> std::quoted(s, delim, escape);
- return s;
+ ss << sv;
+ std::wstring s;
+ ss >> std::quoted(s, delim, escape);
+ return s;
}
#endif // TEST_HAS_NO_WIDE_CHARACTERS
-int main(int, char**)
-{
- round_trip ( "" );
- round_trip_ws ( "" );
- round_trip_d ( "", 'q' );
- round_trip_e ( "", 'q' );
+int main(int, char**) {
+ round_trip("");
+ round_trip_ws("");
+ round_trip_d("", 'q');
+ round_trip_e("", 'q');
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- round_trip ( L"" );
- round_trip_ws ( L"" );
- round_trip_d ( L"", 'q' );
- round_trip_e ( L"", 'q' );
+ round_trip(L"");
+ round_trip_ws(L"");
+ round_trip_d(L"", 'q');
+ round_trip_e(L"", 'q');
#endif
- round_trip ( "Hi" );
- round_trip_ws ( "Hi" );
- round_trip_d ( "Hi", '!' );
- round_trip_e ( "Hi", '!' );
- assert ( quote ( "Hi", '!' ) == "!Hi!" );
- assert ( quote ( "Hi!", '!' ) == R"(!Hi\!!)" );
+ round_trip("Hi");
+ round_trip_ws("Hi");
+ round_trip_d("Hi", '!');
+ round_trip_e("Hi", '!');
+ assert(quote("Hi", '!') == "!Hi!");
+ assert(quote("Hi!", '!') == R"(!Hi\!!)");
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- round_trip ( L"Hi" );
- round_trip_ws ( L"Hi" );
- round_trip_d ( L"Hi", '!' );
- round_trip_e ( L"Hi", '!' );
- assert ( quote ( L"Hi", '!' ) == L"!Hi!" );
- assert ( quote ( L"Hi!", '!' ) == LR"(!Hi\!!)" );
+ round_trip(L"Hi");
+ round_trip_ws(L"Hi");
+ round_trip_d(L"Hi", '!');
+ round_trip_e(L"Hi", '!');
+ assert(quote(L"Hi", '!') == L"!Hi!");
+ assert(quote(L"Hi!", '!') == LR"(!Hi\!!)");
#endif
- round_trip ( "Hi Mom" );
- round_trip_ws ( "Hi Mom" );
+ round_trip("Hi Mom");
+ round_trip_ws("Hi Mom");
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- round_trip ( L"Hi Mom" );
- round_trip_ws ( L"Hi Mom" );
+ round_trip(L"Hi Mom");
+ round_trip_ws(L"Hi Mom");
#endif
- assert ( quote ( "" ) == "\"\"" );
- assert ( quote ( "a" ) == "\"a\"" );
+ assert(quote("") == "\"\"");
+ assert(quote("a") == "\"a\"");
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- assert ( quote ( L"" ) == L"\"\"" );
- assert ( quote ( L"a" ) == L"\"a\"" );
+ assert(quote(L"") == L"\"\"");
+ assert(quote(L"a") == L"\"a\"");
#endif
- // missing end quote - must not hang
- assert ( unquote ( "\"abc" ) == "abc" );
- assert ( unquote ( "abc" ) == "abc" ); // no delimiter
- assert ( unquote ( "abc def" ) == "abc" ); // no delimiter
- assert ( unquote ( "" ) == "" ); // nothing there
+ // missing end quote - must not hang
+ assert(unquote("\"abc") == "abc");
+ assert(unquote("abc") == "abc"); // no delimiter
+ assert(unquote("abc def") == "abc"); // no delimiter
+ assert(unquote("") == ""); // nothing there
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- assert ( unquote ( L"\"abc" ) == L"abc" );
- assert ( unquote ( L"abc" ) == L"abc" ); // no delimiter
- assert ( unquote ( L"abc def" ) == L"abc" ); // no delimiter
- assert ( unquote ( L"" ) == L"" ); // nothing there
+ assert(unquote(L"\"abc") == L"abc");
+ assert(unquote(L"abc") == L"abc"); // no delimiter
+ assert(unquote(L"abc def") == L"abc"); // no delimiter
+ assert(unquote(L"") == L""); // nothing there
#endif
- return 0;
+ return 0;
}
diff --git a/libcxx/test/std/strings/string.view/string.view.ops/compare.pointer.pass.cpp b/libcxx/test/std/strings/string.view/string.view.ops/compare.pointer.pass.cpp
index ed06bec7039ec9f..755af066eb0496b 100644
--- a/libcxx/test/std/strings/string.view/string.view.ops/compare.pointer.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.ops/compare.pointer.pass.cpp
@@ -18,25 +18,22 @@
#include "test_macros.h"
#include "constexpr_char_traits.h"
-int sign ( int x ) { return x > 0 ? 1 : ( x < 0 ? -1 : 0 ); }
+int sign(int x) { return x > 0 ? 1 : (x < 0 ? -1 : 0); }
-template<typename CharT>
-void test1 ( std::basic_string_view<CharT> sv1, const CharT *s, int expected ) {
- assert ( sign( sv1.compare(s)) == sign(expected));
+template <typename CharT>
+void test1(std::basic_string_view<CharT> sv1, const CharT* s, int expected) {
+ assert(sign(sv1.compare(s)) == sign(expected));
}
-template<typename CharT>
-void
-test( const CharT *s1, const CharT *s2, int expected)
-{
- typedef std::basic_string_view<CharT> string_view_t;
- string_view_t sv1 ( s1 );
- test1 ( sv1, s2, expected );
+template <typename CharT>
+void test(const CharT* s1, const CharT* s2, int expected) {
+ typedef std::basic_string_view<CharT> string_view_t;
+ string_view_t sv1(s1);
+ test1(sv1, s2, expected);
}
-int main(int, char**)
-{
- {
+int main(int, char**) {
+ {
test("", "", 0);
test("", "abcde", -5);
test("", "abcdefghij", -10);
@@ -53,10 +50,10 @@ int main(int, char**)
test("abcdefghijklmnopqrst", "abcde", 15);
test("abcdefghijklmnopqrst", "abcdefghij", 10);
test("abcdefghijklmnopqrst", "abcdefghijklmnopqrst", 0);
- }
+ }
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- {
+ {
test(L"", L"", 0);
test(L"", L"abcde", -5);
test(L"", L"abcdefghij", -10);
@@ -73,11 +70,11 @@ int main(int, char**)
test(L"abcdefghijklmnopqrst", L"abcde", 15);
test(L"abcdefghijklmnopqrst", L"abcdefghij", 10);
test(L"abcdefghijklmnopqrst", L"abcdefghijklmnopqrst", 0);
- }
+ }
#endif
#if TEST_STD_VER >= 11
- {
+ {
test(U"", U"", 0);
test(U"", U"abcde", -5);
test(U"", U"abcdefghij", -10);
@@ -94,9 +91,9 @@ int main(int, char**)
test(U"abcdefghijklmnopqrst", U"abcde", 15);
test(U"abcdefghijklmnopqrst", U"abcdefghij", 10);
test(U"abcdefghijklmnopqrst", U"abcdefghijklmnopqrst", 0);
- }
+ }
- {
+ {
test(u"", u"", 0);
test(u"", u"abcde", -5);
test(u"", u"abcdefghij", -10);
@@ -113,19 +110,19 @@ int main(int, char**)
test(u"abcdefghijklmnopqrst", u"abcde", 15);
test(u"abcdefghijklmnopqrst", u"abcdefghij", 10);
test(u"abcdefghijklmnopqrst", u"abcdefghijklmnopqrst", 0);
- }
+ }
#endif
#if TEST_STD_VER > 11
- {
+ {
typedef std::basic_string_view<char, constexpr_char_traits<char>> SV;
- constexpr SV sv1;
- constexpr SV sv2 { "abcde", 5 };
- static_assert ( sv1.compare("") == 0, "" );
- static_assert ( sv1.compare("abcde") < 0, "" );
- static_assert ( sv2.compare("") > 0, "" );
- static_assert ( sv2.compare("abcde") == 0, "" );
- }
+ constexpr SV sv1;
+ constexpr SV sv2{"abcde", 5};
+ static_assert(sv1.compare("") == 0, "");
+ static_assert(sv1.compare("abcde") < 0, "");
+ static_assert(sv2.compare("") > 0, "");
+ static_assert(sv2.compare("abcde") == 0, "");
+ }
#endif
return 0;
diff --git a/libcxx/test/std/strings/string.view/string.view.ops/compare.pointer_size.pass.cpp b/libcxx/test/std/strings/string.view/string.view.ops/compare.pointer_size.pass.cpp
index b40ff6483ea6bf0..bcdae9714b4a9e0 100644
--- a/libcxx/test/std/strings/string.view/string.view.ops/compare.pointer_size.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.ops/compare.pointer_size.pass.cpp
@@ -19,370 +19,361 @@
#include "test_macros.h"
#include "constexpr_char_traits.h"
-int sign ( int x ) { return x > 0 ? 1 : ( x < 0 ? -1 : 0 ); }
+int sign(int x) { return x > 0 ? 1 : (x < 0 ? -1 : 0); }
-template<typename CharT>
-void test1 ( std::basic_string_view<CharT> sv1,
- std::size_t pos1, size_t n1, const CharT *s, int expected ) {
+template <typename CharT>
+void test1(std::basic_string_view<CharT> sv1, std::size_t pos1, size_t n1, const CharT* s, int expected) {
#ifdef TEST_HAS_NO_EXCEPTIONS
- if (pos1 <= sv1.size())
- assert(sign(sv1.compare(pos1, n1, s)) == sign(expected));
+ if (pos1 <= sv1.size())
+ assert(sign(sv1.compare(pos1, n1, s)) == sign(expected));
#else
- try {
- assert(sign(sv1.compare(pos1, n1, s)) == sign(expected));
- assert(pos1 <= sv1.size());
- }
- catch (const std::out_of_range&) {
- assert(pos1 > sv1.size());
- }
+ try {
+ assert(sign(sv1.compare(pos1, n1, s)) == sign(expected));
+ assert(pos1 <= sv1.size());
+ } catch (const std::out_of_range&) {
+ assert(pos1 > sv1.size());
+ }
#endif
}
-template<typename CharT>
-void
-test( const CharT *s1, std::size_t pos1, size_t n1, const CharT *s2, int expected)
-{
- typedef std::basic_string_view<CharT> string_view_t;
- string_view_t sv1 ( s1 );
- test1 ( sv1, pos1, n1, s2, expected );
+template <typename CharT>
+void test(const CharT* s1, std::size_t pos1, size_t n1, const CharT* s2, int expected) {
+ typedef std::basic_string_view<CharT> string_view_t;
+ string_view_t sv1(s1);
+ test1(sv1, pos1, n1, s2, expected);
}
-void test0()
-{
- test("", 0, 0, "", 0);
- test("", 0, 0, "abcde", -5);
- test("", 0, 0, "abcdefghij", -10);
- test("", 0, 0, "abcdefghijklmnopqrst", -20);
- test("", 0, 1, "", 0);
- test("", 0, 1, "abcde", -5);
- test("", 0, 1, "abcdefghij", -10);
- test("", 0, 1, "abcdefghijklmnopqrst", -20);
- test("", 1, 0, "", 0);
- test("", 1, 0, "abcde", 0);
- test("", 1, 0, "abcdefghij", 0);
- test("", 1, 0, "abcdefghijklmnopqrst", 0);
- test("abcde", 0, 0, "", 0);
- test("abcde", 0, 0, "abcde", -5);
- test("abcde", 0, 0, "abcdefghij", -10);
- test("abcde", 0, 0, "abcdefghijklmnopqrst", -20);
- test("abcde", 0, 1, "", 1);
- test("abcde", 0, 1, "abcde", -4);
- test("abcde", 0, 1, "abcdefghij", -9);
- test("abcde", 0, 1, "abcdefghijklmnopqrst", -19);
- test("abcde", 0, 2, "", 2);
- test("abcde", 0, 2, "abcde", -3);
- test("abcde", 0, 2, "abcdefghij", -8);
- test("abcde", 0, 2, "abcdefghijklmnopqrst", -18);
- test("abcde", 0, 4, "", 4);
- test("abcde", 0, 4, "abcde", -1);
- test("abcde", 0, 4, "abcdefghij", -6);
- test("abcde", 0, 4, "abcdefghijklmnopqrst", -16);
- test("abcde", 0, 5, "", 5);
- test("abcde", 0, 5, "abcde", 0);
- test("abcde", 0, 5, "abcdefghij", -5);
- test("abcde", 0, 5, "abcdefghijklmnopqrst", -15);
- test("abcde", 0, 6, "", 5);
- test("abcde", 0, 6, "abcde", 0);
- test("abcde", 0, 6, "abcdefghij", -5);
- test("abcde", 0, 6, "abcdefghijklmnopqrst", -15);
- test("abcde", 1, 0, "", 0);
- test("abcde", 1, 0, "abcde", -5);
- test("abcde", 1, 0, "abcdefghij", -10);
- test("abcde", 1, 0, "abcdefghijklmnopqrst", -20);
- test("abcde", 1, 1, "", 1);
- test("abcde", 1, 1, "abcde", 1);
- test("abcde", 1, 1, "abcdefghij", 1);
- test("abcde", 1, 1, "abcdefghijklmnopqrst", 1);
- test("abcde", 1, 2, "", 2);
- test("abcde", 1, 2, "abcde", 1);
- test("abcde", 1, 2, "abcdefghij", 1);
- test("abcde", 1, 2, "abcdefghijklmnopqrst", 1);
- test("abcde", 1, 3, "", 3);
- test("abcde", 1, 3, "abcde", 1);
- test("abcde", 1, 3, "abcdefghij", 1);
- test("abcde", 1, 3, "abcdefghijklmnopqrst", 1);
- test("abcde", 1, 4, "", 4);
- test("abcde", 1, 4, "abcde", 1);
- test("abcde", 1, 4, "abcdefghij", 1);
- test("abcde", 1, 4, "abcdefghijklmnopqrst", 1);
- test("abcde", 1, 5, "", 4);
- test("abcde", 1, 5, "abcde", 1);
- test("abcde", 1, 5, "abcdefghij", 1);
- test("abcde", 1, 5, "abcdefghijklmnopqrst", 1);
- test("abcde", 2, 0, "", 0);
- test("abcde", 2, 0, "abcde", -5);
- test("abcde", 2, 0, "abcdefghij", -10);
- test("abcde", 2, 0, "abcdefghijklmnopqrst", -20);
- test("abcde", 2, 1, "", 1);
- test("abcde", 2, 1, "abcde", 2);
- test("abcde", 2, 1, "abcdefghij", 2);
- test("abcde", 2, 1, "abcdefghijklmnopqrst", 2);
- test("abcde", 2, 2, "", 2);
- test("abcde", 2, 2, "abcde", 2);
- test("abcde", 2, 2, "abcdefghij", 2);
- test("abcde", 2, 2, "abcdefghijklmnopqrst", 2);
- test("abcde", 2, 3, "", 3);
- test("abcde", 2, 3, "abcde", 2);
- test("abcde", 2, 3, "abcdefghij", 2);
- test("abcde", 2, 3, "abcdefghijklmnopqrst", 2);
- test("abcde", 2, 4, "", 3);
- test("abcde", 2, 4, "abcde", 2);
- test("abcde", 2, 4, "abcdefghij", 2);
- test("abcde", 2, 4, "abcdefghijklmnopqrst", 2);
- test("abcde", 4, 0, "", 0);
- test("abcde", 4, 0, "abcde", -5);
- test("abcde", 4, 0, "abcdefghij", -10);
- test("abcde", 4, 0, "abcdefghijklmnopqrst", -20);
- test("abcde", 4, 1, "", 1);
- test("abcde", 4, 1, "abcde", 4);
- test("abcde", 4, 1, "abcdefghij", 4);
- test("abcde", 4, 1, "abcdefghijklmnopqrst", 4);
- test("abcde", 4, 2, "", 1);
- test("abcde", 4, 2, "abcde", 4);
- test("abcde", 4, 2, "abcdefghij", 4);
- test("abcde", 4, 2, "abcdefghijklmnopqrst", 4);
- test("abcde", 5, 0, "", 0);
- test("abcde", 5, 0, "abcde", -5);
- test("abcde", 5, 0, "abcdefghij", -10);
- test("abcde", 5, 0, "abcdefghijklmnopqrst", -20);
- test("abcde", 5, 1, "", 0);
- test("abcde", 5, 1, "abcde", -5);
- test("abcde", 5, 1, "abcdefghij", -10);
- test("abcde", 5, 1, "abcdefghijklmnopqrst", -20);
+void test0() {
+ test("", 0, 0, "", 0);
+ test("", 0, 0, "abcde", -5);
+ test("", 0, 0, "abcdefghij", -10);
+ test("", 0, 0, "abcdefghijklmnopqrst", -20);
+ test("", 0, 1, "", 0);
+ test("", 0, 1, "abcde", -5);
+ test("", 0, 1, "abcdefghij", -10);
+ test("", 0, 1, "abcdefghijklmnopqrst", -20);
+ test("", 1, 0, "", 0);
+ test("", 1, 0, "abcde", 0);
+ test("", 1, 0, "abcdefghij", 0);
+ test("", 1, 0, "abcdefghijklmnopqrst", 0);
+ test("abcde", 0, 0, "", 0);
+ test("abcde", 0, 0, "abcde", -5);
+ test("abcde", 0, 0, "abcdefghij", -10);
+ test("abcde", 0, 0, "abcdefghijklmnopqrst", -20);
+ test("abcde", 0, 1, "", 1);
+ test("abcde", 0, 1, "abcde", -4);
+ test("abcde", 0, 1, "abcdefghij", -9);
+ test("abcde", 0, 1, "abcdefghijklmnopqrst", -19);
+ test("abcde", 0, 2, "", 2);
+ test("abcde", 0, 2, "abcde", -3);
+ test("abcde", 0, 2, "abcdefghij", -8);
+ test("abcde", 0, 2, "abcdefghijklmnopqrst", -18);
+ test("abcde", 0, 4, "", 4);
+ test("abcde", 0, 4, "abcde", -1);
+ test("abcde", 0, 4, "abcdefghij", -6);
+ test("abcde", 0, 4, "abcdefghijklmnopqrst", -16);
+ test("abcde", 0, 5, "", 5);
+ test("abcde", 0, 5, "abcde", 0);
+ test("abcde", 0, 5, "abcdefghij", -5);
+ test("abcde", 0, 5, "abcdefghijklmnopqrst", -15);
+ test("abcde", 0, 6, "", 5);
+ test("abcde", 0, 6, "abcde", 0);
+ test("abcde", 0, 6, "abcdefghij", -5);
+ test("abcde", 0, 6, "abcdefghijklmnopqrst", -15);
+ test("abcde", 1, 0, "", 0);
+ test("abcde", 1, 0, "abcde", -5);
+ test("abcde", 1, 0, "abcdefghij", -10);
+ test("abcde", 1, 0, "abcdefghijklmnopqrst", -20);
+ test("abcde", 1, 1, "", 1);
+ test("abcde", 1, 1, "abcde", 1);
+ test("abcde", 1, 1, "abcdefghij", 1);
+ test("abcde", 1, 1, "abcdefghijklmnopqrst", 1);
+ test("abcde", 1, 2, "", 2);
+ test("abcde", 1, 2, "abcde", 1);
+ test("abcde", 1, 2, "abcdefghij", 1);
+ test("abcde", 1, 2, "abcdefghijklmnopqrst", 1);
+ test("abcde", 1, 3, "", 3);
+ test("abcde", 1, 3, "abcde", 1);
+ test("abcde", 1, 3, "abcdefghij", 1);
+ test("abcde", 1, 3, "abcdefghijklmnopqrst", 1);
+ test("abcde", 1, 4, "", 4);
+ test("abcde", 1, 4, "abcde", 1);
+ test("abcde", 1, 4, "abcdefghij", 1);
+ test("abcde", 1, 4, "abcdefghijklmnopqrst", 1);
+ test("abcde", 1, 5, "", 4);
+ test("abcde", 1, 5, "abcde", 1);
+ test("abcde", 1, 5, "abcdefghij", 1);
+ test("abcde", 1, 5, "abcdefghijklmnopqrst", 1);
+ test("abcde", 2, 0, "", 0);
+ test("abcde", 2, 0, "abcde", -5);
+ test("abcde", 2, 0, "abcdefghij", -10);
+ test("abcde", 2, 0, "abcdefghijklmnopqrst", -20);
+ test("abcde", 2, 1, "", 1);
+ test("abcde", 2, 1, "abcde", 2);
+ test("abcde", 2, 1, "abcdefghij", 2);
+ test("abcde", 2, 1, "abcdefghijklmnopqrst", 2);
+ test("abcde", 2, 2, "", 2);
+ test("abcde", 2, 2, "abcde", 2);
+ test("abcde", 2, 2, "abcdefghij", 2);
+ test("abcde", 2, 2, "abcdefghijklmnopqrst", 2);
+ test("abcde", 2, 3, "", 3);
+ test("abcde", 2, 3, "abcde", 2);
+ test("abcde", 2, 3, "abcdefghij", 2);
+ test("abcde", 2, 3, "abcdefghijklmnopqrst", 2);
+ test("abcde", 2, 4, "", 3);
+ test("abcde", 2, 4, "abcde", 2);
+ test("abcde", 2, 4, "abcdefghij", 2);
+ test("abcde", 2, 4, "abcdefghijklmnopqrst", 2);
+ test("abcde", 4, 0, "", 0);
+ test("abcde", 4, 0, "abcde", -5);
+ test("abcde", 4, 0, "abcdefghij", -10);
+ test("abcde", 4, 0, "abcdefghijklmnopqrst", -20);
+ test("abcde", 4, 1, "", 1);
+ test("abcde", 4, 1, "abcde", 4);
+ test("abcde", 4, 1, "abcdefghij", 4);
+ test("abcde", 4, 1, "abcdefghijklmnopqrst", 4);
+ test("abcde", 4, 2, "", 1);
+ test("abcde", 4, 2, "abcde", 4);
+ test("abcde", 4, 2, "abcdefghij", 4);
+ test("abcde", 4, 2, "abcdefghijklmnopqrst", 4);
+ test("abcde", 5, 0, "", 0);
+ test("abcde", 5, 0, "abcde", -5);
+ test("abcde", 5, 0, "abcdefghij", -10);
+ test("abcde", 5, 0, "abcdefghijklmnopqrst", -20);
+ test("abcde", 5, 1, "", 0);
+ test("abcde", 5, 1, "abcde", -5);
+ test("abcde", 5, 1, "abcdefghij", -10);
+ test("abcde", 5, 1, "abcdefghijklmnopqrst", -20);
}
-void test1()
-{
- test("abcde", 6, 0, "", 0);
- test("abcde", 6, 0, "abcde", 0);
- test("abcde", 6, 0, "abcdefghij", 0);
- test("abcde", 6, 0, "abcdefghijklmnopqrst", 0);
- test("abcdefghij", 0, 0, "", 0);
- test("abcdefghij", 0, 0, "abcde", -5);
- test("abcdefghij", 0, 0, "abcdefghij", -10);
- test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", -20);
- test("abcdefghij", 0, 1, "", 1);
- test("abcdefghij", 0, 1, "abcde", -4);
- test("abcdefghij", 0, 1, "abcdefghij", -9);
- test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", -19);
- test("abcdefghij", 0, 5, "", 5);
- test("abcdefghij", 0, 5, "abcde", 0);
- test("abcdefghij", 0, 5, "abcdefghij", -5);
- test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", -15);
- test("abcdefghij", 0, 9, "", 9);
- test("abcdefghij", 0, 9, "abcde", 4);
- test("abcdefghij", 0, 9, "abcdefghij", -1);
- test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", -11);
- test("abcdefghij", 0, 10, "", 10);
- test("abcdefghij", 0, 10, "abcde", 5);
- test("abcdefghij", 0, 10, "abcdefghij", 0);
- test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", -10);
- test("abcdefghij", 0, 11, "", 10);
- test("abcdefghij", 0, 11, "abcde", 5);
- test("abcdefghij", 0, 11, "abcdefghij", 0);
- test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", -10);
- test("abcdefghij", 1, 0, "", 0);
- test("abcdefghij", 1, 0, "abcde", -5);
- test("abcdefghij", 1, 0, "abcdefghij", -10);
- test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", -20);
- test("abcdefghij", 1, 1, "", 1);
- test("abcdefghij", 1, 1, "abcde", 1);
- test("abcdefghij", 1, 1, "abcdefghij", 1);
- test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 1);
- test("abcdefghij", 1, 4, "", 4);
- test("abcdefghij", 1, 4, "abcde", 1);
- test("abcdefghij", 1, 4, "abcdefghij", 1);
- test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 1);
- test("abcdefghij", 1, 8, "", 8);
- test("abcdefghij", 1, 8, "abcde", 1);
- test("abcdefghij", 1, 8, "abcdefghij", 1);
- test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 1);
- test("abcdefghij", 1, 9, "", 9);
- test("abcdefghij", 1, 9, "abcde", 1);
- test("abcdefghij", 1, 9, "abcdefghij", 1);
- test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 1);
- test("abcdefghij", 1, 10, "", 9);
- test("abcdefghij", 1, 10, "abcde", 1);
- test("abcdefghij", 1, 10, "abcdefghij", 1);
- test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 1);
- test("abcdefghij", 5, 0, "", 0);
- test("abcdefghij", 5, 0, "abcde", -5);
- test("abcdefghij", 5, 0, "abcdefghij", -10);
- test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", -20);
- test("abcdefghij", 5, 1, "", 1);
- test("abcdefghij", 5, 1, "abcde", 5);
- test("abcdefghij", 5, 1, "abcdefghij", 5);
- test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 5);
- test("abcdefghij", 5, 2, "", 2);
- test("abcdefghij", 5, 2, "abcde", 5);
- test("abcdefghij", 5, 2, "abcdefghij", 5);
- test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 5);
- test("abcdefghij", 5, 4, "", 4);
- test("abcdefghij", 5, 4, "abcde", 5);
- test("abcdefghij", 5, 4, "abcdefghij", 5);
- test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 5);
- test("abcdefghij", 5, 5, "", 5);
- test("abcdefghij", 5, 5, "abcde", 5);
- test("abcdefghij", 5, 5, "abcdefghij", 5);
- test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 5);
- test("abcdefghij", 5, 6, "", 5);
- test("abcdefghij", 5, 6, "abcde", 5);
- test("abcdefghij", 5, 6, "abcdefghij", 5);
- test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 5);
- test("abcdefghij", 9, 0, "", 0);
- test("abcdefghij", 9, 0, "abcde", -5);
- test("abcdefghij", 9, 0, "abcdefghij", -10);
- test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", -20);
- test("abcdefghij", 9, 1, "", 1);
- test("abcdefghij", 9, 1, "abcde", 9);
- test("abcdefghij", 9, 1, "abcdefghij", 9);
- test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 9);
- test("abcdefghij", 9, 2, "", 1);
- test("abcdefghij", 9, 2, "abcde", 9);
- test("abcdefghij", 9, 2, "abcdefghij", 9);
- test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 9);
- test("abcdefghij", 10, 0, "", 0);
- test("abcdefghij", 10, 0, "abcde", -5);
- test("abcdefghij", 10, 0, "abcdefghij", -10);
- test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", -20);
- test("abcdefghij", 10, 1, "", 0);
- test("abcdefghij", 10, 1, "abcde", -5);
- test("abcdefghij", 10, 1, "abcdefghij", -10);
- test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", -20);
- test("abcdefghij", 11, 0, "", 0);
- test("abcdefghij", 11, 0, "abcde", 0);
- test("abcdefghij", 11, 0, "abcdefghij", 0);
- test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 0);
+void test1() {
+ test("abcde", 6, 0, "", 0);
+ test("abcde", 6, 0, "abcde", 0);
+ test("abcde", 6, 0, "abcdefghij", 0);
+ test("abcde", 6, 0, "abcdefghijklmnopqrst", 0);
+ test("abcdefghij", 0, 0, "", 0);
+ test("abcdefghij", 0, 0, "abcde", -5);
+ test("abcdefghij", 0, 0, "abcdefghij", -10);
+ test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", -20);
+ test("abcdefghij", 0, 1, "", 1);
+ test("abcdefghij", 0, 1, "abcde", -4);
+ test("abcdefghij", 0, 1, "abcdefghij", -9);
+ test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", -19);
+ test("abcdefghij", 0, 5, "", 5);
+ test("abcdefghij", 0, 5, "abcde", 0);
+ test("abcdefghij", 0, 5, "abcdefghij", -5);
+ test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", -15);
+ test("abcdefghij", 0, 9, "", 9);
+ test("abcdefghij", 0, 9, "abcde", 4);
+ test("abcdefghij", 0, 9, "abcdefghij", -1);
+ test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", -11);
+ test("abcdefghij", 0, 10, "", 10);
+ test("abcdefghij", 0, 10, "abcde", 5);
+ test("abcdefghij", 0, 10, "abcdefghij", 0);
+ test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", -10);
+ test("abcdefghij", 0, 11, "", 10);
+ test("abcdefghij", 0, 11, "abcde", 5);
+ test("abcdefghij", 0, 11, "abcdefghij", 0);
+ test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", -10);
+ test("abcdefghij", 1, 0, "", 0);
+ test("abcdefghij", 1, 0, "abcde", -5);
+ test("abcdefghij", 1, 0, "abcdefghij", -10);
+ test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", -20);
+ test("abcdefghij", 1, 1, "", 1);
+ test("abcdefghij", 1, 1, "abcde", 1);
+ test("abcdefghij", 1, 1, "abcdefghij", 1);
+ test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 1);
+ test("abcdefghij", 1, 4, "", 4);
+ test("abcdefghij", 1, 4, "abcde", 1);
+ test("abcdefghij", 1, 4, "abcdefghij", 1);
+ test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 1);
+ test("abcdefghij", 1, 8, "", 8);
+ test("abcdefghij", 1, 8, "abcde", 1);
+ test("abcdefghij", 1, 8, "abcdefghij", 1);
+ test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 1);
+ test("abcdefghij", 1, 9, "", 9);
+ test("abcdefghij", 1, 9, "abcde", 1);
+ test("abcdefghij", 1, 9, "abcdefghij", 1);
+ test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 1);
+ test("abcdefghij", 1, 10, "", 9);
+ test("abcdefghij", 1, 10, "abcde", 1);
+ test("abcdefghij", 1, 10, "abcdefghij", 1);
+ test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 1);
+ test("abcdefghij", 5, 0, "", 0);
+ test("abcdefghij", 5, 0, "abcde", -5);
+ test("abcdefghij", 5, 0, "abcdefghij", -10);
+ test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", -20);
+ test("abcdefghij", 5, 1, "", 1);
+ test("abcdefghij", 5, 1, "abcde", 5);
+ test("abcdefghij", 5, 1, "abcdefghij", 5);
+ test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 5);
+ test("abcdefghij", 5, 2, "", 2);
+ test("abcdefghij", 5, 2, "abcde", 5);
+ test("abcdefghij", 5, 2, "abcdefghij", 5);
+ test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 5);
+ test("abcdefghij", 5, 4, "", 4);
+ test("abcdefghij", 5, 4, "abcde", 5);
+ test("abcdefghij", 5, 4, "abcdefghij", 5);
+ test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 5);
+ test("abcdefghij", 5, 5, "", 5);
+ test("abcdefghij", 5, 5, "abcde", 5);
+ test("abcdefghij", 5, 5, "abcdefghij", 5);
+ test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 5);
+ test("abcdefghij", 5, 6, "", 5);
+ test("abcdefghij", 5, 6, "abcde", 5);
+ test("abcdefghij", 5, 6, "abcdefghij", 5);
+ test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 5);
+ test("abcdefghij", 9, 0, "", 0);
+ test("abcdefghij", 9, 0, "abcde", -5);
+ test("abcdefghij", 9, 0, "abcdefghij", -10);
+ test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", -20);
+ test("abcdefghij", 9, 1, "", 1);
+ test("abcdefghij", 9, 1, "abcde", 9);
+ test("abcdefghij", 9, 1, "abcdefghij", 9);
+ test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 9);
+ test("abcdefghij", 9, 2, "", 1);
+ test("abcdefghij", 9, 2, "abcde", 9);
+ test("abcdefghij", 9, 2, "abcdefghij", 9);
+ test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 9);
+ test("abcdefghij", 10, 0, "", 0);
+ test("abcdefghij", 10, 0, "abcde", -5);
+ test("abcdefghij", 10, 0, "abcdefghij", -10);
+ test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", -20);
+ test("abcdefghij", 10, 1, "", 0);
+ test("abcdefghij", 10, 1, "abcde", -5);
+ test("abcdefghij", 10, 1, "abcdefghij", -10);
+ test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", -20);
+ test("abcdefghij", 11, 0, "", 0);
+ test("abcdefghij", 11, 0, "abcde", 0);
+ test("abcdefghij", 11, 0, "abcdefghij", 0);
+ test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 0);
}
-void test2()
-{
- test("abcdefghijklmnopqrst", 0, 0, "", 0);
- test("abcdefghijklmnopqrst", 0, 0, "abcde", -5);
- test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", -10);
- test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", -20);
- test("abcdefghijklmnopqrst", 0, 1, "", 1);
- test("abcdefghijklmnopqrst", 0, 1, "abcde", -4);
- test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", -9);
- test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", -19);
- test("abcdefghijklmnopqrst", 0, 10, "", 10);
- test("abcdefghijklmnopqrst", 0, 10, "abcde", 5);
- test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 0);
- test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", -10);
- test("abcdefghijklmnopqrst", 0, 19, "", 19);
- test("abcdefghijklmnopqrst", 0, 19, "abcde", 14);
- test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 9);
- test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", -1);
- test("abcdefghijklmnopqrst", 0, 20, "", 20);
- test("abcdefghijklmnopqrst", 0, 20, "abcde", 15);
- test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 10);
- test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 0);
- test("abcdefghijklmnopqrst", 0, 21, "", 20);
- test("abcdefghijklmnopqrst", 0, 21, "abcde", 15);
- test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 10);
- test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 0);
- test("abcdefghijklmnopqrst", 1, 0, "", 0);
- test("abcdefghijklmnopqrst", 1, 0, "abcde", -5);
- test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", -10);
- test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", -20);
- test("abcdefghijklmnopqrst", 1, 1, "", 1);
- test("abcdefghijklmnopqrst", 1, 1, "abcde", 1);
- test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 1);
- test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 1);
- test("abcdefghijklmnopqrst", 1, 9, "", 9);
- test("abcdefghijklmnopqrst", 1, 9, "abcde", 1);
- test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 1);
- test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 1);
- test("abcdefghijklmnopqrst", 1, 18, "", 18);
- test("abcdefghijklmnopqrst", 1, 18, "abcde", 1);
- test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 1);
- test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 1);
- test("abcdefghijklmnopqrst", 1, 19, "", 19);
- test("abcdefghijklmnopqrst", 1, 19, "abcde", 1);
- test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 1);
- test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 1);
- test("abcdefghijklmnopqrst", 1, 20, "", 19);
- test("abcdefghijklmnopqrst", 1, 20, "abcde", 1);
- test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 1);
- test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 1);
- test("abcdefghijklmnopqrst", 10, 0, "", 0);
- test("abcdefghijklmnopqrst", 10, 0, "abcde", -5);
- test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", -10);
- test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", -20);
- test("abcdefghijklmnopqrst", 10, 1, "", 1);
- test("abcdefghijklmnopqrst", 10, 1, "abcde", 10);
- test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 10);
- test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 10);
- test("abcdefghijklmnopqrst", 10, 5, "", 5);
- test("abcdefghijklmnopqrst", 10, 5, "abcde", 10);
- test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 10);
- test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 10);
- test("abcdefghijklmnopqrst", 10, 9, "", 9);
- test("abcdefghijklmnopqrst", 10, 9, "abcde", 10);
- test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 10);
- test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 10);
- test("abcdefghijklmnopqrst", 10, 10, "", 10);
- test("abcdefghijklmnopqrst", 10, 10, "abcde", 10);
- test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 10);
- test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 10);
- test("abcdefghijklmnopqrst", 10, 11, "", 10);
- test("abcdefghijklmnopqrst", 10, 11, "abcde", 10);
- test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 10);
- test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 10);
- test("abcdefghijklmnopqrst", 19, 0, "", 0);
- test("abcdefghijklmnopqrst", 19, 0, "abcde", -5);
- test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", -10);
- test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", -20);
- test("abcdefghijklmnopqrst", 19, 1, "", 1);
- test("abcdefghijklmnopqrst", 19, 1, "abcde", 19);
- test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 19);
- test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 19);
- test("abcdefghijklmnopqrst", 19, 2, "", 1);
- test("abcdefghijklmnopqrst", 19, 2, "abcde", 19);
- test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 19);
- test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 19);
- test("abcdefghijklmnopqrst", 20, 0, "", 0);
- test("abcdefghijklmnopqrst", 20, 0, "abcde", -5);
- test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", -10);
- test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", -20);
- test("abcdefghijklmnopqrst", 20, 1, "", 0);
- test("abcdefghijklmnopqrst", 20, 1, "abcde", -5);
- test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", -10);
- test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", -20);
- test("abcdefghijklmnopqrst", 21, 0, "", 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcde", 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 0);
+void test2() {
+ test("abcdefghijklmnopqrst", 0, 0, "", 0);
+ test("abcdefghijklmnopqrst", 0, 0, "abcde", -5);
+ test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", -10);
+ test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", -20);
+ test("abcdefghijklmnopqrst", 0, 1, "", 1);
+ test("abcdefghijklmnopqrst", 0, 1, "abcde", -4);
+ test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", -9);
+ test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", -19);
+ test("abcdefghijklmnopqrst", 0, 10, "", 10);
+ test("abcdefghijklmnopqrst", 0, 10, "abcde", 5);
+ test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 0);
+ test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", -10);
+ test("abcdefghijklmnopqrst", 0, 19, "", 19);
+ test("abcdefghijklmnopqrst", 0, 19, "abcde", 14);
+ test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 9);
+ test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", -1);
+ test("abcdefghijklmnopqrst", 0, 20, "", 20);
+ test("abcdefghijklmnopqrst", 0, 20, "abcde", 15);
+ test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 10);
+ test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 0);
+ test("abcdefghijklmnopqrst", 0, 21, "", 20);
+ test("abcdefghijklmnopqrst", 0, 21, "abcde", 15);
+ test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 10);
+ test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 0);
+ test("abcdefghijklmnopqrst", 1, 0, "", 0);
+ test("abcdefghijklmnopqrst", 1, 0, "abcde", -5);
+ test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", -10);
+ test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", -20);
+ test("abcdefghijklmnopqrst", 1, 1, "", 1);
+ test("abcdefghijklmnopqrst", 1, 1, "abcde", 1);
+ test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 1);
+ test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 1);
+ test("abcdefghijklmnopqrst", 1, 9, "", 9);
+ test("abcdefghijklmnopqrst", 1, 9, "abcde", 1);
+ test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 1);
+ test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 1);
+ test("abcdefghijklmnopqrst", 1, 18, "", 18);
+ test("abcdefghijklmnopqrst", 1, 18, "abcde", 1);
+ test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 1);
+ test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 1);
+ test("abcdefghijklmnopqrst", 1, 19, "", 19);
+ test("abcdefghijklmnopqrst", 1, 19, "abcde", 1);
+ test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 1);
+ test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 1);
+ test("abcdefghijklmnopqrst", 1, 20, "", 19);
+ test("abcdefghijklmnopqrst", 1, 20, "abcde", 1);
+ test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 1);
+ test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 1);
+ test("abcdefghijklmnopqrst", 10, 0, "", 0);
+ test("abcdefghijklmnopqrst", 10, 0, "abcde", -5);
+ test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", -10);
+ test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", -20);
+ test("abcdefghijklmnopqrst", 10, 1, "", 1);
+ test("abcdefghijklmnopqrst", 10, 1, "abcde", 10);
+ test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 10);
+ test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 10);
+ test("abcdefghijklmnopqrst", 10, 5, "", 5);
+ test("abcdefghijklmnopqrst", 10, 5, "abcde", 10);
+ test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 10);
+ test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 10);
+ test("abcdefghijklmnopqrst", 10, 9, "", 9);
+ test("abcdefghijklmnopqrst", 10, 9, "abcde", 10);
+ test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 10);
+ test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 10);
+ test("abcdefghijklmnopqrst", 10, 10, "", 10);
+ test("abcdefghijklmnopqrst", 10, 10, "abcde", 10);
+ test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 10);
+ test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 10);
+ test("abcdefghijklmnopqrst", 10, 11, "", 10);
+ test("abcdefghijklmnopqrst", 10, 11, "abcde", 10);
+ test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 10);
+ test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 10);
+ test("abcdefghijklmnopqrst", 19, 0, "", 0);
+ test("abcdefghijklmnopqrst", 19, 0, "abcde", -5);
+ test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", -10);
+ test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", -20);
+ test("abcdefghijklmnopqrst", 19, 1, "", 1);
+ test("abcdefghijklmnopqrst", 19, 1, "abcde", 19);
+ test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 19);
+ test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 19);
+ test("abcdefghijklmnopqrst", 19, 2, "", 1);
+ test("abcdefghijklmnopqrst", 19, 2, "abcde", 19);
+ test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 19);
+ test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 19);
+ test("abcdefghijklmnopqrst", 20, 0, "", 0);
+ test("abcdefghijklmnopqrst", 20, 0, "abcde", -5);
+ test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", -10);
+ test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", -20);
+ test("abcdefghijklmnopqrst", 20, 1, "", 0);
+ test("abcdefghijklmnopqrst", 20, 1, "abcde", -5);
+ test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", -10);
+ test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", -20);
+ test("abcdefghijklmnopqrst", 21, 0, "", 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcde", 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 0);
}
+int main(int, char**) {
+ test0();
+ test1();
+ test2();
-int main(int, char**)
-{
- test0();
- test1();
- test2();
-
- {
+ {
test("", 0, 0, "", 0);
test("", 0, 0, "abcde", -5);
test("", 0, 0, "abcdefghij", -10);
test("", 0, 0, "abcdefghijklmnopqrst", -20);
test("abcde", 0, 2, "", 5);
- test("abcde", 0, 6,"abcde", 0);
+ test("abcde", 0, 6, "abcde", 0);
test("abcde", 0, 6, "abcdefghij", -5);
test("abcde", 0, 6, "abcdefghijklmnopqrst", -15);
test("abcdefghij", 3, 3, "", 10);
- test("abcdefghij", 3, 3,"abcde", 5);
+ test("abcdefghij", 3, 3, "abcde", 5);
test("abcdefghij", 3, 3, "def", 0);
test("abcdefghij", 0, 4, "abcdefghijklmnopqrst", -10);
test("abcdefghijklmnopqrst", 5, 5, "", 20);
test("abcdefghijklmnopqrst", 0, 8, "abcde", 15);
test("abcdefghijklmnopqrst", 0, 12, "abcdefghij", 10);
test("abcdefghijklmnopqrst", 0, static_cast<std::size_t>(-1), "abcdefghijklmnopqrst", 0);
- }
+ }
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- {
+ {
test(L"", 0, 0, L"", 0);
test(L"", 0, 0, L"abcde", -5);
test(L"", 0, 0, L"abcdefghij", -10);
@@ -399,11 +390,11 @@ int main(int, char**)
test(L"abcdefghijklmnopqrst", 0, 8, L"abcde", 15);
test(L"abcdefghijklmnopqrst", 0, 12, L"abcdefghij", 10);
test(L"abcdefghijklmnopqrst", 0, static_cast<std::size_t>(-1), L"abcdefghijklmnopqrst", 0);
- }
+ }
#endif
#if TEST_STD_VER >= 11
- {
+ {
test(U"", 0, 0, U"", 0);
test(U"", 0, 0, U"abcde", -5);
test(U"", 0, 0, U"abcdefghij", -10);
@@ -420,9 +411,9 @@ int main(int, char**)
test(U"abcdefghijklmnopqrst", 0, 8, U"abcde", 15);
test(U"abcdefghijklmnopqrst", 0, 12, U"abcdefghij", 10);
test(U"abcdefghijklmnopqrst", 0, static_cast<std::size_t>(-1), U"abcdefghijklmnopqrst", 0);
- }
+ }
- {
+ {
test(u"", 0, 0, u"", 0);
test(u"", 0, 0, u"abcde", -5);
test(u"", 0, 0, u"abcdefghij", -10);
@@ -439,19 +430,19 @@ int main(int, char**)
test(u"abcdefghijklmnopqrst", 0, 8, u"abcde", 15);
test(u"abcdefghijklmnopqrst", 0, 12, u"abcdefghij", 10);
test(u"abcdefghijklmnopqrst", 0, static_cast<std::size_t>(-1), u"abcdefghijklmnopqrst", 0);
- }
+ }
#endif
#if TEST_STD_VER > 11
- {
+ {
typedef std::basic_string_view<char, constexpr_char_traits<char>> SV;
- constexpr SV sv1;
- constexpr SV sv2 { "abcde", 5 };
- static_assert ( sv1.compare(0, 0, "") == 0, "" );
- static_assert ( sv1.compare(0, 0, "abcde") < 0, "" );
- static_assert ( sv2.compare(0, 2, "") > 0, "" );
- static_assert ( sv2.compare(0, 6, "abcde") == 0, "" );
- }
+ constexpr SV sv1;
+ constexpr SV sv2{"abcde", 5};
+ static_assert(sv1.compare(0, 0, "") == 0, "");
+ static_assert(sv1.compare(0, 0, "abcde") < 0, "");
+ static_assert(sv2.compare(0, 2, "") > 0, "");
+ static_assert(sv2.compare(0, 6, "abcde") == 0, "");
+ }
#endif
return 0;
diff --git a/libcxx/test/std/strings/string.view/string.view.ops/compare.size_size_sv.pass.cpp b/libcxx/test/std/strings/string.view/string.view.ops/compare.size_size_sv.pass.cpp
index c1999d292882be0..6974dceb5d3e0e2 100644
--- a/libcxx/test/std/strings/string.view/string.view.ops/compare.size_size_sv.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.ops/compare.size_size_sv.pass.cpp
@@ -19,388 +19,382 @@
#include "test_macros.h"
#include "constexpr_char_traits.h"
-int sign ( int x ) { return x > 0 ? 1 : ( x < 0 ? -1 : 0 ); }
+int sign(int x) { return x > 0 ? 1 : (x < 0 ? -1 : 0); }
-template<typename CharT>
-void test1 ( std::basic_string_view<CharT> sv1, std::size_t pos1, size_t n1,
- std::basic_string_view<CharT> sv2, int expected ) {
+template <typename CharT>
+void test1(
+ std::basic_string_view<CharT> sv1, std::size_t pos1, size_t n1, std::basic_string_view<CharT> sv2, int expected) {
#ifdef TEST_HAS_NO_EXCEPTIONS
- if (pos1 <= sv1.size())
- assert(sign( sv1.compare(pos1, n1, sv2)) == sign(expected));
+ if (pos1 <= sv1.size())
+ assert(sign(sv1.compare(pos1, n1, sv2)) == sign(expected));
#else
- try {
- assert(sign( sv1.compare(pos1, n1, sv2)) == sign(expected));
- assert(pos1 <= sv1.size());
- }
- catch (const std::out_of_range&) {
- assert(pos1 > sv1.size());
- }
+ try {
+ assert(sign(sv1.compare(pos1, n1, sv2)) == sign(expected));
+ assert(pos1 <= sv1.size());
+ } catch (const std::out_of_range&) {
+ assert(pos1 > sv1.size());
+ }
#endif
}
-
-template<typename CharT>
-void test ( const CharT *s1, std::size_t pos1, size_t n1, const CharT *s2, int expected ) {
- typedef std::basic_string_view<CharT> string_view_t;
- string_view_t sv1 ( s1 );
- string_view_t sv2 ( s2 );
- test1(sv1, pos1, n1, sv2, expected);
+template <typename CharT>
+void test(const CharT* s1, std::size_t pos1, size_t n1, const CharT* s2, int expected) {
+ typedef std::basic_string_view<CharT> string_view_t;
+ string_view_t sv1(s1);
+ string_view_t sv2(s2);
+ test1(sv1, pos1, n1, sv2, expected);
}
-void test0()
-{
- test("", 0, 0, "", 0);
- test("", 0, 0, "abcde", -5);
- test("", 0, 0, "abcdefghij", -10);
- test("", 0, 0, "abcdefghijklmnopqrst", -20);
- test("", 0, 1, "", 0);
- test("", 0, 1, "abcde", -5);
- test("", 0, 1, "abcdefghij", -10);
- test("", 0, 1, "abcdefghijklmnopqrst", -20);
- test("", 1, 0, "", 0);
- test("", 1, 0, "abcde", 0);
- test("", 1, 0, "abcdefghij", 0);
- test("", 1, 0, "abcdefghijklmnopqrst", 0);
- test("abcde", 0, 0, "", 0);
- test("abcde", 0, 0, "abcde", -5);
- test("abcde", 0, 0, "abcdefghij", -10);
- test("abcde", 0, 0, "abcdefghijklmnopqrst", -20);
- test("abcde", 0, 1, "", 1);
- test("abcde", 0, 1, "abcde", -4);
- test("abcde", 0, 1, "abcdefghij", -9);
- test("abcde", 0, 1, "abcdefghijklmnopqrst", -19);
- test("abcde", 0, 2, "", 2);
- test("abcde", 0, 2, "abcde", -3);
- test("abcde", 0, 2, "abcdefghij", -8);
- test("abcde", 0, 2, "abcdefghijklmnopqrst", -18);
- test("abcde", 0, 4, "", 4);
- test("abcde", 0, 4, "abcde", -1);
- test("abcde", 0, 4, "abcdefghij", -6);
- test("abcde", 0, 4, "abcdefghijklmnopqrst", -16);
- test("abcde", 0, 5, "", 5);
- test("abcde", 0, 5, "abcde", 0);
- test("abcde", 0, 5, "abcdefghij", -5);
- test("abcde", 0, 5, "abcdefghijklmnopqrst", -15);
- test("abcde", 0, 6, "", 5);
- test("abcde", 0, 6, "abcde", 0);
- test("abcde", 0, 6, "abcdefghij", -5);
- test("abcde", 0, 6, "abcdefghijklmnopqrst", -15);
- test("abcde", 1, 0, "", 0);
- test("abcde", 1, 0, "abcde", -5);
- test("abcde", 1, 0, "abcdefghij", -10);
- test("abcde", 1, 0, "abcdefghijklmnopqrst", -20);
- test("abcde", 1, 1, "", 1);
- test("abcde", 1, 1, "abcde", 1);
- test("abcde", 1, 1, "abcdefghij", 1);
- test("abcde", 1, 1, "abcdefghijklmnopqrst", 1);
- test("abcde", 1, 2, "", 2);
- test("abcde", 1, 2, "abcde", 1);
- test("abcde", 1, 2, "abcdefghij", 1);
- test("abcde", 1, 2, "abcdefghijklmnopqrst", 1);
- test("abcde", 1, 3, "", 3);
- test("abcde", 1, 3, "abcde", 1);
- test("abcde", 1, 3, "abcdefghij", 1);
- test("abcde", 1, 3, "abcdefghijklmnopqrst", 1);
- test("abcde", 1, 4, "", 4);
- test("abcde", 1, 4, "abcde", 1);
- test("abcde", 1, 4, "abcdefghij", 1);
- test("abcde", 1, 4, "abcdefghijklmnopqrst", 1);
- test("abcde", 1, 5, "", 4);
- test("abcde", 1, 5, "abcde", 1);
- test("abcde", 1, 5, "abcdefghij", 1);
- test("abcde", 1, 5, "abcdefghijklmnopqrst", 1);
- test("abcde", 2, 0, "", 0);
- test("abcde", 2, 0, "abcde", -5);
- test("abcde", 2, 0, "abcdefghij", -10);
- test("abcde", 2, 0, "abcdefghijklmnopqrst", -20);
- test("abcde", 2, 1, "", 1);
- test("abcde", 2, 1, "abcde", 2);
- test("abcde", 2, 1, "abcdefghij", 2);
- test("abcde", 2, 1, "abcdefghijklmnopqrst", 2);
- test("abcde", 2, 2, "", 2);
- test("abcde", 2, 2, "abcde", 2);
- test("abcde", 2, 2, "abcdefghij", 2);
- test("abcde", 2, 2, "abcdefghijklmnopqrst", 2);
- test("abcde", 2, 3, "", 3);
- test("abcde", 2, 3, "abcde", 2);
- test("abcde", 2, 3, "abcdefghij", 2);
- test("abcde", 2, 3, "abcdefghijklmnopqrst", 2);
- test("abcde", 2, 4, "", 3);
- test("abcde", 2, 4, "abcde", 2);
- test("abcde", 2, 4, "abcdefghij", 2);
- test("abcde", 2, 4, "abcdefghijklmnopqrst", 2);
- test("abcde", 4, 0, "", 0);
- test("abcde", 4, 0, "abcde", -5);
- test("abcde", 4, 0, "abcdefghij", -10);
- test("abcde", 4, 0, "abcdefghijklmnopqrst", -20);
- test("abcde", 4, 1, "", 1);
- test("abcde", 4, 1, "abcde", 4);
- test("abcde", 4, 1, "abcdefghij", 4);
- test("abcde", 4, 1, "abcdefghijklmnopqrst", 4);
- test("abcde", 4, 2, "", 1);
- test("abcde", 4, 2, "abcde", 4);
- test("abcde", 4, 2, "abcdefghij", 4);
- test("abcde", 4, 2, "abcdefghijklmnopqrst", 4);
- test("abcde", 5, 0, "", 0);
- test("abcde", 5, 0, "abcde", -5);
- test("abcde", 5, 0, "abcdefghij", -10);
- test("abcde", 5, 0, "abcdefghijklmnopqrst", -20);
- test("abcde", 5, 1, "", 0);
- test("abcde", 5, 1, "abcde", -5);
- test("abcde", 5, 1, "abcdefghij", -10);
- test("abcde", 5, 1, "abcdefghijklmnopqrst", -20);
+void test0() {
+ test("", 0, 0, "", 0);
+ test("", 0, 0, "abcde", -5);
+ test("", 0, 0, "abcdefghij", -10);
+ test("", 0, 0, "abcdefghijklmnopqrst", -20);
+ test("", 0, 1, "", 0);
+ test("", 0, 1, "abcde", -5);
+ test("", 0, 1, "abcdefghij", -10);
+ test("", 0, 1, "abcdefghijklmnopqrst", -20);
+ test("", 1, 0, "", 0);
+ test("", 1, 0, "abcde", 0);
+ test("", 1, 0, "abcdefghij", 0);
+ test("", 1, 0, "abcdefghijklmnopqrst", 0);
+ test("abcde", 0, 0, "", 0);
+ test("abcde", 0, 0, "abcde", -5);
+ test("abcde", 0, 0, "abcdefghij", -10);
+ test("abcde", 0, 0, "abcdefghijklmnopqrst", -20);
+ test("abcde", 0, 1, "", 1);
+ test("abcde", 0, 1, "abcde", -4);
+ test("abcde", 0, 1, "abcdefghij", -9);
+ test("abcde", 0, 1, "abcdefghijklmnopqrst", -19);
+ test("abcde", 0, 2, "", 2);
+ test("abcde", 0, 2, "abcde", -3);
+ test("abcde", 0, 2, "abcdefghij", -8);
+ test("abcde", 0, 2, "abcdefghijklmnopqrst", -18);
+ test("abcde", 0, 4, "", 4);
+ test("abcde", 0, 4, "abcde", -1);
+ test("abcde", 0, 4, "abcdefghij", -6);
+ test("abcde", 0, 4, "abcdefghijklmnopqrst", -16);
+ test("abcde", 0, 5, "", 5);
+ test("abcde", 0, 5, "abcde", 0);
+ test("abcde", 0, 5, "abcdefghij", -5);
+ test("abcde", 0, 5, "abcdefghijklmnopqrst", -15);
+ test("abcde", 0, 6, "", 5);
+ test("abcde", 0, 6, "abcde", 0);
+ test("abcde", 0, 6, "abcdefghij", -5);
+ test("abcde", 0, 6, "abcdefghijklmnopqrst", -15);
+ test("abcde", 1, 0, "", 0);
+ test("abcde", 1, 0, "abcde", -5);
+ test("abcde", 1, 0, "abcdefghij", -10);
+ test("abcde", 1, 0, "abcdefghijklmnopqrst", -20);
+ test("abcde", 1, 1, "", 1);
+ test("abcde", 1, 1, "abcde", 1);
+ test("abcde", 1, 1, "abcdefghij", 1);
+ test("abcde", 1, 1, "abcdefghijklmnopqrst", 1);
+ test("abcde", 1, 2, "", 2);
+ test("abcde", 1, 2, "abcde", 1);
+ test("abcde", 1, 2, "abcdefghij", 1);
+ test("abcde", 1, 2, "abcdefghijklmnopqrst", 1);
+ test("abcde", 1, 3, "", 3);
+ test("abcde", 1, 3, "abcde", 1);
+ test("abcde", 1, 3, "abcdefghij", 1);
+ test("abcde", 1, 3, "abcdefghijklmnopqrst", 1);
+ test("abcde", 1, 4, "", 4);
+ test("abcde", 1, 4, "abcde", 1);
+ test("abcde", 1, 4, "abcdefghij", 1);
+ test("abcde", 1, 4, "abcdefghijklmnopqrst", 1);
+ test("abcde", 1, 5, "", 4);
+ test("abcde", 1, 5, "abcde", 1);
+ test("abcde", 1, 5, "abcdefghij", 1);
+ test("abcde", 1, 5, "abcdefghijklmnopqrst", 1);
+ test("abcde", 2, 0, "", 0);
+ test("abcde", 2, 0, "abcde", -5);
+ test("abcde", 2, 0, "abcdefghij", -10);
+ test("abcde", 2, 0, "abcdefghijklmnopqrst", -20);
+ test("abcde", 2, 1, "", 1);
+ test("abcde", 2, 1, "abcde", 2);
+ test("abcde", 2, 1, "abcdefghij", 2);
+ test("abcde", 2, 1, "abcdefghijklmnopqrst", 2);
+ test("abcde", 2, 2, "", 2);
+ test("abcde", 2, 2, "abcde", 2);
+ test("abcde", 2, 2, "abcdefghij", 2);
+ test("abcde", 2, 2, "abcdefghijklmnopqrst", 2);
+ test("abcde", 2, 3, "", 3);
+ test("abcde", 2, 3, "abcde", 2);
+ test("abcde", 2, 3, "abcdefghij", 2);
+ test("abcde", 2, 3, "abcdefghijklmnopqrst", 2);
+ test("abcde", 2, 4, "", 3);
+ test("abcde", 2, 4, "abcde", 2);
+ test("abcde", 2, 4, "abcdefghij", 2);
+ test("abcde", 2, 4, "abcdefghijklmnopqrst", 2);
+ test("abcde", 4, 0, "", 0);
+ test("abcde", 4, 0, "abcde", -5);
+ test("abcde", 4, 0, "abcdefghij", -10);
+ test("abcde", 4, 0, "abcdefghijklmnopqrst", -20);
+ test("abcde", 4, 1, "", 1);
+ test("abcde", 4, 1, "abcde", 4);
+ test("abcde", 4, 1, "abcdefghij", 4);
+ test("abcde", 4, 1, "abcdefghijklmnopqrst", 4);
+ test("abcde", 4, 2, "", 1);
+ test("abcde", 4, 2, "abcde", 4);
+ test("abcde", 4, 2, "abcdefghij", 4);
+ test("abcde", 4, 2, "abcdefghijklmnopqrst", 4);
+ test("abcde", 5, 0, "", 0);
+ test("abcde", 5, 0, "abcde", -5);
+ test("abcde", 5, 0, "abcdefghij", -10);
+ test("abcde", 5, 0, "abcdefghijklmnopqrst", -20);
+ test("abcde", 5, 1, "", 0);
+ test("abcde", 5, 1, "abcde", -5);
+ test("abcde", 5, 1, "abcdefghij", -10);
+ test("abcde", 5, 1, "abcdefghijklmnopqrst", -20);
}
-void test1()
-{
- test("abcde", 6, 0, "", 0);
- test("abcde", 6, 0, "abcde", 0);
- test("abcde", 6, 0, "abcdefghij", 0);
- test("abcde", 6, 0, "abcdefghijklmnopqrst", 0);
- test("abcdefghij", 0, 0, "", 0);
- test("abcdefghij", 0, 0, "abcde", -5);
- test("abcdefghij", 0, 0, "abcdefghij", -10);
- test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", -20);
- test("abcdefghij", 0, 1, "", 1);
- test("abcdefghij", 0, 1, "abcde", -4);
- test("abcdefghij", 0, 1, "abcdefghij", -9);
- test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", -19);
- test("abcdefghij", 0, 5, "", 5);
- test("abcdefghij", 0, 5, "abcde", 0);
- test("abcdefghij", 0, 5, "abcdefghij", -5);
- test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", -15);
- test("abcdefghij", 0, 9, "", 9);
- test("abcdefghij", 0, 9, "abcde", 4);
- test("abcdefghij", 0, 9, "abcdefghij", -1);
- test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", -11);
- test("abcdefghij", 0, 10, "", 10);
- test("abcdefghij", 0, 10, "abcde", 5);
- test("abcdefghij", 0, 10, "abcdefghij", 0);
- test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", -10);
- test("abcdefghij", 0, 11, "", 10);
- test("abcdefghij", 0, 11, "abcde", 5);
- test("abcdefghij", 0, 11, "abcdefghij", 0);
- test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", -10);
- test("abcdefghij", 1, 0, "", 0);
- test("abcdefghij", 1, 0, "abcde", -5);
- test("abcdefghij", 1, 0, "abcdefghij", -10);
- test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", -20);
- test("abcdefghij", 1, 1, "", 1);
- test("abcdefghij", 1, 1, "abcde", 1);
- test("abcdefghij", 1, 1, "abcdefghij", 1);
- test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 1);
- test("abcdefghij", 1, 4, "", 4);
- test("abcdefghij", 1, 4, "abcde", 1);
- test("abcdefghij", 1, 4, "abcdefghij", 1);
- test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 1);
- test("abcdefghij", 1, 8, "", 8);
- test("abcdefghij", 1, 8, "abcde", 1);
- test("abcdefghij", 1, 8, "abcdefghij", 1);
- test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 1);
- test("abcdefghij", 1, 9, "", 9);
- test("abcdefghij", 1, 9, "abcde", 1);
- test("abcdefghij", 1, 9, "abcdefghij", 1);
- test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 1);
- test("abcdefghij", 1, 10, "", 9);
- test("abcdefghij", 1, 10, "abcde", 1);
- test("abcdefghij", 1, 10, "abcdefghij", 1);
- test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 1);
- test("abcdefghij", 5, 0, "", 0);
- test("abcdefghij", 5, 0, "abcde", -5);
- test("abcdefghij", 5, 0, "abcdefghij", -10);
- test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", -20);
- test("abcdefghij", 5, 1, "", 1);
- test("abcdefghij", 5, 1, "abcde", 5);
- test("abcdefghij", 5, 1, "abcdefghij", 5);
- test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 5);
- test("abcdefghij", 5, 2, "", 2);
- test("abcdefghij", 5, 2, "abcde", 5);
- test("abcdefghij", 5, 2, "abcdefghij", 5);
- test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 5);
- test("abcdefghij", 5, 4, "", 4);
- test("abcdefghij", 5, 4, "abcde", 5);
- test("abcdefghij", 5, 4, "abcdefghij", 5);
- test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 5);
- test("abcdefghij", 5, 5, "", 5);
- test("abcdefghij", 5, 5, "abcde", 5);
- test("abcdefghij", 5, 5, "abcdefghij", 5);
- test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 5);
- test("abcdefghij", 5, 6, "", 5);
- test("abcdefghij", 5, 6, "abcde", 5);
- test("abcdefghij", 5, 6, "abcdefghij", 5);
- test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 5);
- test("abcdefghij", 9, 0, "", 0);
- test("abcdefghij", 9, 0, "abcde", -5);
- test("abcdefghij", 9, 0, "abcdefghij", -10);
- test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", -20);
- test("abcdefghij", 9, 1, "", 1);
- test("abcdefghij", 9, 1, "abcde", 9);
- test("abcdefghij", 9, 1, "abcdefghij", 9);
- test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 9);
- test("abcdefghij", 9, 2, "", 1);
- test("abcdefghij", 9, 2, "abcde", 9);
- test("abcdefghij", 9, 2, "abcdefghij", 9);
- test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 9);
- test("abcdefghij", 10, 0, "", 0);
- test("abcdefghij", 10, 0, "abcde", -5);
- test("abcdefghij", 10, 0, "abcdefghij", -10);
- test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", -20);
- test("abcdefghij", 10, 1, "", 0);
- test("abcdefghij", 10, 1, "abcde", -5);
- test("abcdefghij", 10, 1, "abcdefghij", -10);
- test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", -20);
- test("abcdefghij", 11, 0, "", 0);
- test("abcdefghij", 11, 0, "abcde", 0);
- test("abcdefghij", 11, 0, "abcdefghij", 0);
- test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 0);
+void test1() {
+ test("abcde", 6, 0, "", 0);
+ test("abcde", 6, 0, "abcde", 0);
+ test("abcde", 6, 0, "abcdefghij", 0);
+ test("abcde", 6, 0, "abcdefghijklmnopqrst", 0);
+ test("abcdefghij", 0, 0, "", 0);
+ test("abcdefghij", 0, 0, "abcde", -5);
+ test("abcdefghij", 0, 0, "abcdefghij", -10);
+ test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", -20);
+ test("abcdefghij", 0, 1, "", 1);
+ test("abcdefghij", 0, 1, "abcde", -4);
+ test("abcdefghij", 0, 1, "abcdefghij", -9);
+ test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", -19);
+ test("abcdefghij", 0, 5, "", 5);
+ test("abcdefghij", 0, 5, "abcde", 0);
+ test("abcdefghij", 0, 5, "abcdefghij", -5);
+ test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", -15);
+ test("abcdefghij", 0, 9, "", 9);
+ test("abcdefghij", 0, 9, "abcde", 4);
+ test("abcdefghij", 0, 9, "abcdefghij", -1);
+ test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", -11);
+ test("abcdefghij", 0, 10, "", 10);
+ test("abcdefghij", 0, 10, "abcde", 5);
+ test("abcdefghij", 0, 10, "abcdefghij", 0);
+ test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", -10);
+ test("abcdefghij", 0, 11, "", 10);
+ test("abcdefghij", 0, 11, "abcde", 5);
+ test("abcdefghij", 0, 11, "abcdefghij", 0);
+ test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", -10);
+ test("abcdefghij", 1, 0, "", 0);
+ test("abcdefghij", 1, 0, "abcde", -5);
+ test("abcdefghij", 1, 0, "abcdefghij", -10);
+ test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", -20);
+ test("abcdefghij", 1, 1, "", 1);
+ test("abcdefghij", 1, 1, "abcde", 1);
+ test("abcdefghij", 1, 1, "abcdefghij", 1);
+ test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 1);
+ test("abcdefghij", 1, 4, "", 4);
+ test("abcdefghij", 1, 4, "abcde", 1);
+ test("abcdefghij", 1, 4, "abcdefghij", 1);
+ test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 1);
+ test("abcdefghij", 1, 8, "", 8);
+ test("abcdefghij", 1, 8, "abcde", 1);
+ test("abcdefghij", 1, 8, "abcdefghij", 1);
+ test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 1);
+ test("abcdefghij", 1, 9, "", 9);
+ test("abcdefghij", 1, 9, "abcde", 1);
+ test("abcdefghij", 1, 9, "abcdefghij", 1);
+ test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 1);
+ test("abcdefghij", 1, 10, "", 9);
+ test("abcdefghij", 1, 10, "abcde", 1);
+ test("abcdefghij", 1, 10, "abcdefghij", 1);
+ test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 1);
+ test("abcdefghij", 5, 0, "", 0);
+ test("abcdefghij", 5, 0, "abcde", -5);
+ test("abcdefghij", 5, 0, "abcdefghij", -10);
+ test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", -20);
+ test("abcdefghij", 5, 1, "", 1);
+ test("abcdefghij", 5, 1, "abcde", 5);
+ test("abcdefghij", 5, 1, "abcdefghij", 5);
+ test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 5);
+ test("abcdefghij", 5, 2, "", 2);
+ test("abcdefghij", 5, 2, "abcde", 5);
+ test("abcdefghij", 5, 2, "abcdefghij", 5);
+ test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 5);
+ test("abcdefghij", 5, 4, "", 4);
+ test("abcdefghij", 5, 4, "abcde", 5);
+ test("abcdefghij", 5, 4, "abcdefghij", 5);
+ test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 5);
+ test("abcdefghij", 5, 5, "", 5);
+ test("abcdefghij", 5, 5, "abcde", 5);
+ test("abcdefghij", 5, 5, "abcdefghij", 5);
+ test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 5);
+ test("abcdefghij", 5, 6, "", 5);
+ test("abcdefghij", 5, 6, "abcde", 5);
+ test("abcdefghij", 5, 6, "abcdefghij", 5);
+ test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 5);
+ test("abcdefghij", 9, 0, "", 0);
+ test("abcdefghij", 9, 0, "abcde", -5);
+ test("abcdefghij", 9, 0, "abcdefghij", -10);
+ test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", -20);
+ test("abcdefghij", 9, 1, "", 1);
+ test("abcdefghij", 9, 1, "abcde", 9);
+ test("abcdefghij", 9, 1, "abcdefghij", 9);
+ test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 9);
+ test("abcdefghij", 9, 2, "", 1);
+ test("abcdefghij", 9, 2, "abcde", 9);
+ test("abcdefghij", 9, 2, "abcdefghij", 9);
+ test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 9);
+ test("abcdefghij", 10, 0, "", 0);
+ test("abcdefghij", 10, 0, "abcde", -5);
+ test("abcdefghij", 10, 0, "abcdefghij", -10);
+ test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", -20);
+ test("abcdefghij", 10, 1, "", 0);
+ test("abcdefghij", 10, 1, "abcde", -5);
+ test("abcdefghij", 10, 1, "abcdefghij", -10);
+ test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", -20);
+ test("abcdefghij", 11, 0, "", 0);
+ test("abcdefghij", 11, 0, "abcde", 0);
+ test("abcdefghij", 11, 0, "abcdefghij", 0);
+ test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 0);
}
-void test2()
-{
- test("abcdefghijklmnopqrst", 0, 0, "", 0);
- test("abcdefghijklmnopqrst", 0, 0, "abcde", -5);
- test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", -10);
- test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", -20);
- test("abcdefghijklmnopqrst", 0, 1, "", 1);
- test("abcdefghijklmnopqrst", 0, 1, "abcde", -4);
- test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", -9);
- test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", -19);
- test("abcdefghijklmnopqrst", 0, 10, "", 10);
- test("abcdefghijklmnopqrst", 0, 10, "abcde", 5);
- test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 0);
- test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", -10);
- test("abcdefghijklmnopqrst", 0, 19, "", 19);
- test("abcdefghijklmnopqrst", 0, 19, "abcde", 14);
- test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 9);
- test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", -1);
- test("abcdefghijklmnopqrst", 0, 20, "", 20);
- test("abcdefghijklmnopqrst", 0, 20, "abcde", 15);
- test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 10);
- test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 0);
- test("abcdefghijklmnopqrst", 0, 21, "", 20);
- test("abcdefghijklmnopqrst", 0, 21, "abcde", 15);
- test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 10);
- test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 0);
- test("abcdefghijklmnopqrst", 1, 0, "", 0);
- test("abcdefghijklmnopqrst", 1, 0, "abcde", -5);
- test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", -10);
- test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", -20);
- test("abcdefghijklmnopqrst", 1, 1, "", 1);
- test("abcdefghijklmnopqrst", 1, 1, "abcde", 1);
- test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 1);
- test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 1);
- test("abcdefghijklmnopqrst", 1, 9, "", 9);
- test("abcdefghijklmnopqrst", 1, 9, "abcde", 1);
- test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 1);
- test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 1);
- test("abcdefghijklmnopqrst", 1, 18, "", 18);
- test("abcdefghijklmnopqrst", 1, 18, "abcde", 1);
- test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 1);
- test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 1);
- test("abcdefghijklmnopqrst", 1, 19, "", 19);
- test("abcdefghijklmnopqrst", 1, 19, "abcde", 1);
- test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 1);
- test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 1);
- test("abcdefghijklmnopqrst", 1, 20, "", 19);
- test("abcdefghijklmnopqrst", 1, 20, "abcde", 1);
- test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 1);
- test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 1);
- test("abcdefghijklmnopqrst", 10, 0, "", 0);
- test("abcdefghijklmnopqrst", 10, 0, "abcde", -5);
- test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", -10);
- test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", -20);
- test("abcdefghijklmnopqrst", 10, 1, "", 1);
- test("abcdefghijklmnopqrst", 10, 1, "abcde", 10);
- test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 10);
- test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 10);
- test("abcdefghijklmnopqrst", 10, 5, "", 5);
- test("abcdefghijklmnopqrst", 10, 5, "abcde", 10);
- test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 10);
- test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 10);
- test("abcdefghijklmnopqrst", 10, 9, "", 9);
- test("abcdefghijklmnopqrst", 10, 9, "abcde", 10);
- test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 10);
- test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 10);
- test("abcdefghijklmnopqrst", 10, 10, "", 10);
- test("abcdefghijklmnopqrst", 10, 10, "abcde", 10);
- test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 10);
- test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 10);
- test("abcdefghijklmnopqrst", 10, 11, "", 10);
- test("abcdefghijklmnopqrst", 10, 11, "abcde", 10);
- test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 10);
- test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 10);
- test("abcdefghijklmnopqrst", 19, 0, "", 0);
- test("abcdefghijklmnopqrst", 19, 0, "abcde", -5);
- test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", -10);
- test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", -20);
- test("abcdefghijklmnopqrst", 19, 1, "", 1);
- test("abcdefghijklmnopqrst", 19, 1, "abcde", 19);
- test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 19);
- test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 19);
- test("abcdefghijklmnopqrst", 19, 2, "", 1);
- test("abcdefghijklmnopqrst", 19, 2, "abcde", 19);
- test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 19);
- test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 19);
- test("abcdefghijklmnopqrst", 20, 0, "", 0);
- test("abcdefghijklmnopqrst", 20, 0, "abcde", -5);
- test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", -10);
- test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", -20);
- test("abcdefghijklmnopqrst", 20, 1, "", 0);
- test("abcdefghijklmnopqrst", 20, 1, "abcde", -5);
- test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", -10);
- test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", -20);
- test("abcdefghijklmnopqrst", 21, 0, "", 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcde", 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 0);
+void test2() {
+ test("abcdefghijklmnopqrst", 0, 0, "", 0);
+ test("abcdefghijklmnopqrst", 0, 0, "abcde", -5);
+ test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", -10);
+ test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", -20);
+ test("abcdefghijklmnopqrst", 0, 1, "", 1);
+ test("abcdefghijklmnopqrst", 0, 1, "abcde", -4);
+ test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", -9);
+ test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", -19);
+ test("abcdefghijklmnopqrst", 0, 10, "", 10);
+ test("abcdefghijklmnopqrst", 0, 10, "abcde", 5);
+ test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 0);
+ test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", -10);
+ test("abcdefghijklmnopqrst", 0, 19, "", 19);
+ test("abcdefghijklmnopqrst", 0, 19, "abcde", 14);
+ test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 9);
+ test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", -1);
+ test("abcdefghijklmnopqrst", 0, 20, "", 20);
+ test("abcdefghijklmnopqrst", 0, 20, "abcde", 15);
+ test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 10);
+ test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 0);
+ test("abcdefghijklmnopqrst", 0, 21, "", 20);
+ test("abcdefghijklmnopqrst", 0, 21, "abcde", 15);
+ test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 10);
+ test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 0);
+ test("abcdefghijklmnopqrst", 1, 0, "", 0);
+ test("abcdefghijklmnopqrst", 1, 0, "abcde", -5);
+ test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", -10);
+ test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", -20);
+ test("abcdefghijklmnopqrst", 1, 1, "", 1);
+ test("abcdefghijklmnopqrst", 1, 1, "abcde", 1);
+ test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 1);
+ test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 1);
+ test("abcdefghijklmnopqrst", 1, 9, "", 9);
+ test("abcdefghijklmnopqrst", 1, 9, "abcde", 1);
+ test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 1);
+ test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 1);
+ test("abcdefghijklmnopqrst", 1, 18, "", 18);
+ test("abcdefghijklmnopqrst", 1, 18, "abcde", 1);
+ test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 1);
+ test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 1);
+ test("abcdefghijklmnopqrst", 1, 19, "", 19);
+ test("abcdefghijklmnopqrst", 1, 19, "abcde", 1);
+ test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 1);
+ test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 1);
+ test("abcdefghijklmnopqrst", 1, 20, "", 19);
+ test("abcdefghijklmnopqrst", 1, 20, "abcde", 1);
+ test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 1);
+ test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 1);
+ test("abcdefghijklmnopqrst", 10, 0, "", 0);
+ test("abcdefghijklmnopqrst", 10, 0, "abcde", -5);
+ test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", -10);
+ test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", -20);
+ test("abcdefghijklmnopqrst", 10, 1, "", 1);
+ test("abcdefghijklmnopqrst", 10, 1, "abcde", 10);
+ test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 10);
+ test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 10);
+ test("abcdefghijklmnopqrst", 10, 5, "", 5);
+ test("abcdefghijklmnopqrst", 10, 5, "abcde", 10);
+ test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 10);
+ test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 10);
+ test("abcdefghijklmnopqrst", 10, 9, "", 9);
+ test("abcdefghijklmnopqrst", 10, 9, "abcde", 10);
+ test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 10);
+ test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 10);
+ test("abcdefghijklmnopqrst", 10, 10, "", 10);
+ test("abcdefghijklmnopqrst", 10, 10, "abcde", 10);
+ test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 10);
+ test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 10);
+ test("abcdefghijklmnopqrst", 10, 11, "", 10);
+ test("abcdefghijklmnopqrst", 10, 11, "abcde", 10);
+ test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 10);
+ test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 10);
+ test("abcdefghijklmnopqrst", 19, 0, "", 0);
+ test("abcdefghijklmnopqrst", 19, 0, "abcde", -5);
+ test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", -10);
+ test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", -20);
+ test("abcdefghijklmnopqrst", 19, 1, "", 1);
+ test("abcdefghijklmnopqrst", 19, 1, "abcde", 19);
+ test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 19);
+ test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 19);
+ test("abcdefghijklmnopqrst", 19, 2, "", 1);
+ test("abcdefghijklmnopqrst", 19, 2, "abcde", 19);
+ test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 19);
+ test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 19);
+ test("abcdefghijklmnopqrst", 20, 0, "", 0);
+ test("abcdefghijklmnopqrst", 20, 0, "abcde", -5);
+ test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", -10);
+ test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", -20);
+ test("abcdefghijklmnopqrst", 20, 1, "", 0);
+ test("abcdefghijklmnopqrst", 20, 1, "abcde", -5);
+ test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", -10);
+ test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", -20);
+ test("abcdefghijklmnopqrst", 21, 0, "", 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcde", 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 0);
}
-
int main(int, char**) {
- test0();
- test1();
- test2();
+ test0();
+ test1();
+ test2();
- {
+ {
test("abcde", 5, 1, "", 0);
test("abcde", 2, 4, "", 3);
test("abcde", 2, 4, "abcde", 2);
test("ABCde", 2, 4, "abcde", -1);
- }
+ }
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- {
+ {
test(L"abcde", 5, 1, L"", 0);
test(L"abcde", 2, 4, L"", 3);
test(L"abcde", 2, 4, L"abcde", 2);
test(L"ABCde", 2, 4, L"abcde", -1);
- }
+ }
#endif
#if TEST_STD_VER >= 11
- {
+ {
test(u"abcde", 5, 1, u"", 0);
test(u"abcde", 2, 4, u"", 3);
test(u"abcde", 2, 4, u"abcde", 2);
test(u"ABCde", 2, 4, u"abcde", -1);
- }
+ }
- {
+ {
test(U"abcde", 5, 1, U"", 0);
test(U"abcde", 2, 4, U"", 3);
test(U"abcde", 2, 4, U"abcde", 2);
test(U"ABCde", 2, 4, U"abcde", -1);
- }
+ }
#endif
#if TEST_STD_VER > 11
- {
+ {
typedef std::basic_string_view<char, constexpr_char_traits<char>> SV;
- constexpr SV sv1 { "abcde", 5 };
- constexpr SV sv2 { "abcde", 0 };
- static_assert ( sv1.compare(5, 1, sv2) == 0, "" );
- static_assert ( sv1.compare(2, 4, sv2) > 0, "" );
- }
+ constexpr SV sv1{"abcde", 5};
+ constexpr SV sv2{"abcde", 0};
+ static_assert(sv1.compare(5, 1, sv2) == 0, "");
+ static_assert(sv1.compare(2, 4, sv2) > 0, "");
+ }
#endif
return 0;
diff --git a/libcxx/test/std/strings/string.view/string.view.ops/compare.size_size_sv_pointer_size.pass.cpp b/libcxx/test/std/strings/string.view/string.view.ops/compare.size_size_sv_pointer_size.pass.cpp
index 4e5af15b9352f43..7368325554c90b7 100644
--- a/libcxx/test/std/strings/string.view/string.view.ops/compare.size_size_sv_pointer_size.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.ops/compare.size_size_sv_pointer_size.pass.cpp
@@ -20,1338 +20,1310 @@
#include "test_macros.h"
#include "constexpr_char_traits.h"
-int sign ( int x ) { return x > 0 ? 1 : ( x < 0 ? -1 : 0 ); }
+int sign(int x) { return x > 0 ? 1 : (x < 0 ? -1 : 0); }
-template<typename CharT>
-void test1 ( std::basic_string_view<CharT> sv1, std::size_t pos1, size_t n1,
- const CharT *s2, std::size_t n2, int expected ) {
+template <typename CharT>
+void test1(
+ std::basic_string_view<CharT> sv1, std::size_t pos1, size_t n1, const CharT* s2, std::size_t n2, int expected) {
#ifdef TEST_HAS_NO_EXCEPTIONS
- if (pos1 <= sv1.size())
- assert(sign(sv1.compare(pos1, n1, s2, n2)) == sign(expected));
+ if (pos1 <= sv1.size())
+ assert(sign(sv1.compare(pos1, n1, s2, n2)) == sign(expected));
#else
- try {
- assert(sign(sv1.compare(pos1, n1, s2, n2)) == sign(expected));
- assert(pos1 <= sv1.size());
- }
- catch (const std::out_of_range&) {
- assert(pos1 > sv1.size());
- }
+ try {
+ assert(sign(sv1.compare(pos1, n1, s2, n2)) == sign(expected));
+ assert(pos1 <= sv1.size());
+ } catch (const std::out_of_range&) {
+ assert(pos1 > sv1.size());
+ }
#endif
}
-
-template<typename CharT>
-void test ( const CharT *s1, std::size_t pos1, size_t n1,
- const CharT *s2, std::size_t n2,
- int expected ) {
- typedef std::basic_string_view<CharT> string_view_t;
- string_view_t sv1 ( s1 );
- test1 (sv1, pos1, n1, s2, n2, expected);
+template <typename CharT>
+void test(const CharT* s1, std::size_t pos1, size_t n1, const CharT* s2, std::size_t n2, int expected) {
+ typedef std::basic_string_view<CharT> string_view_t;
+ string_view_t sv1(s1);
+ test1(sv1, pos1, n1, s2, n2, expected);
}
-
-void test0()
-{
- test("", 0, 0, "", 0, 0);
- test("", 0, 0, "abcde", 0, 0);
- test("", 0, 0, "abcde", 1, -1);
- test("", 0, 0, "abcde", 2, -2);
- test("", 0, 0, "abcde", 4, -4);
- test("", 0, 0, "abcde", 5, -5);
- test("", 0, 0, "abcdefghij", 0, 0);
- test("", 0, 0, "abcdefghij", 1, -1);
- test("", 0, 0, "abcdefghij", 5, -5);
- test("", 0, 0, "abcdefghij", 9, -9);
- test("", 0, 0, "abcdefghij", 10, -10);
- test("", 0, 0, "abcdefghijklmnopqrst", 0, 0);
- test("", 0, 0, "abcdefghijklmnopqrst", 1, -1);
- test("", 0, 0, "abcdefghijklmnopqrst", 10, -10);
- test("", 0, 0, "abcdefghijklmnopqrst", 19, -19);
- test("", 0, 0, "abcdefghijklmnopqrst", 20, -20);
- test("", 0, 1, "", 0, 0);
- test("", 0, 1, "abcde", 0, 0);
- test("", 0, 1, "abcde", 1, -1);
- test("", 0, 1, "abcde", 2, -2);
- test("", 0, 1, "abcde", 4, -4);
- test("", 0, 1, "abcde", 5, -5);
- test("", 0, 1, "abcdefghij", 0, 0);
- test("", 0, 1, "abcdefghij", 1, -1);
- test("", 0, 1, "abcdefghij", 5, -5);
- test("", 0, 1, "abcdefghij", 9, -9);
- test("", 0, 1, "abcdefghij", 10, -10);
- test("", 0, 1, "abcdefghijklmnopqrst", 0, 0);
- test("", 0, 1, "abcdefghijklmnopqrst", 1, -1);
- test("", 0, 1, "abcdefghijklmnopqrst", 10, -10);
- test("", 0, 1, "abcdefghijklmnopqrst", 19, -19);
- test("", 0, 1, "abcdefghijklmnopqrst", 20, -20);
- test("", 1, 0, "", 0, 0);
- test("", 1, 0, "abcde", 0, 0);
- test("", 1, 0, "abcde", 1, 0);
- test("", 1, 0, "abcde", 2, 0);
- test("", 1, 0, "abcde", 4, 0);
- test("", 1, 0, "abcde", 5, 0);
- test("", 1, 0, "abcdefghij", 0, 0);
- test("", 1, 0, "abcdefghij", 1, 0);
- test("", 1, 0, "abcdefghij", 5, 0);
- test("", 1, 0, "abcdefghij", 9, 0);
- test("", 1, 0, "abcdefghij", 10, 0);
- test("", 1, 0, "abcdefghijklmnopqrst", 0, 0);
- test("", 1, 0, "abcdefghijklmnopqrst", 1, 0);
- test("", 1, 0, "abcdefghijklmnopqrst", 10, 0);
- test("", 1, 0, "abcdefghijklmnopqrst", 19, 0);
- test("", 1, 0, "abcdefghijklmnopqrst", 20, 0);
- test("abcde", 0, 0, "", 0, 0);
- test("abcde", 0, 0, "abcde", 0, 0);
- test("abcde", 0, 0, "abcde", 1, -1);
- test("abcde", 0, 0, "abcde", 2, -2);
- test("abcde", 0, 0, "abcde", 4, -4);
- test("abcde", 0, 0, "abcde", 5, -5);
- test("abcde", 0, 0, "abcdefghij", 0, 0);
- test("abcde", 0, 0, "abcdefghij", 1, -1);
- test("abcde", 0, 0, "abcdefghij", 5, -5);
- test("abcde", 0, 0, "abcdefghij", 9, -9);
- test("abcde", 0, 0, "abcdefghij", 10, -10);
- test("abcde", 0, 0, "abcdefghijklmnopqrst", 0, 0);
- test("abcde", 0, 0, "abcdefghijklmnopqrst", 1, -1);
- test("abcde", 0, 0, "abcdefghijklmnopqrst", 10, -10);
- test("abcde", 0, 0, "abcdefghijklmnopqrst", 19, -19);
- test("abcde", 0, 0, "abcdefghijklmnopqrst", 20, -20);
- test("abcde", 0, 1, "", 0, 1);
- test("abcde", 0, 1, "abcde", 0, 1);
- test("abcde", 0, 1, "abcde", 1, 0);
- test("abcde", 0, 1, "abcde", 2, -1);
- test("abcde", 0, 1, "abcde", 4, -3);
- test("abcde", 0, 1, "abcde", 5, -4);
- test("abcde", 0, 1, "abcdefghij", 0, 1);
- test("abcde", 0, 1, "abcdefghij", 1, 0);
- test("abcde", 0, 1, "abcdefghij", 5, -4);
- test("abcde", 0, 1, "abcdefghij", 9, -8);
- test("abcde", 0, 1, "abcdefghij", 10, -9);
- test("abcde", 0, 1, "abcdefghijklmnopqrst", 0, 1);
- test("abcde", 0, 1, "abcdefghijklmnopqrst", 1, 0);
- test("abcde", 0, 1, "abcdefghijklmnopqrst", 10, -9);
- test("abcde", 0, 1, "abcdefghijklmnopqrst", 19, -18);
- test("abcde", 0, 1, "abcdefghijklmnopqrst", 20, -19);
- test("abcde", 0, 2, "", 0, 2);
- test("abcde", 0, 2, "abcde", 0, 2);
- test("abcde", 0, 2, "abcde", 1, 1);
- test("abcde", 0, 2, "abcde", 2, 0);
- test("abcde", 0, 2, "abcde", 4, -2);
- test("abcde", 0, 2, "abcde", 5, -3);
- test("abcde", 0, 2, "abcdefghij", 0, 2);
- test("abcde", 0, 2, "abcdefghij", 1, 1);
- test("abcde", 0, 2, "abcdefghij", 5, -3);
- test("abcde", 0, 2, "abcdefghij", 9, -7);
- test("abcde", 0, 2, "abcdefghij", 10, -8);
- test("abcde", 0, 2, "abcdefghijklmnopqrst", 0, 2);
- test("abcde", 0, 2, "abcdefghijklmnopqrst", 1, 1);
- test("abcde", 0, 2, "abcdefghijklmnopqrst", 10, -8);
- test("abcde", 0, 2, "abcdefghijklmnopqrst", 19, -17);
- test("abcde", 0, 2, "abcdefghijklmnopqrst", 20, -18);
- test("abcde", 0, 4, "", 0, 4);
- test("abcde", 0, 4, "abcde", 0, 4);
- test("abcde", 0, 4, "abcde", 1, 3);
- test("abcde", 0, 4, "abcde", 2, 2);
+void test0() {
+ test("", 0, 0, "", 0, 0);
+ test("", 0, 0, "abcde", 0, 0);
+ test("", 0, 0, "abcde", 1, -1);
+ test("", 0, 0, "abcde", 2, -2);
+ test("", 0, 0, "abcde", 4, -4);
+ test("", 0, 0, "abcde", 5, -5);
+ test("", 0, 0, "abcdefghij", 0, 0);
+ test("", 0, 0, "abcdefghij", 1, -1);
+ test("", 0, 0, "abcdefghij", 5, -5);
+ test("", 0, 0, "abcdefghij", 9, -9);
+ test("", 0, 0, "abcdefghij", 10, -10);
+ test("", 0, 0, "abcdefghijklmnopqrst", 0, 0);
+ test("", 0, 0, "abcdefghijklmnopqrst", 1, -1);
+ test("", 0, 0, "abcdefghijklmnopqrst", 10, -10);
+ test("", 0, 0, "abcdefghijklmnopqrst", 19, -19);
+ test("", 0, 0, "abcdefghijklmnopqrst", 20, -20);
+ test("", 0, 1, "", 0, 0);
+ test("", 0, 1, "abcde", 0, 0);
+ test("", 0, 1, "abcde", 1, -1);
+ test("", 0, 1, "abcde", 2, -2);
+ test("", 0, 1, "abcde", 4, -4);
+ test("", 0, 1, "abcde", 5, -5);
+ test("", 0, 1, "abcdefghij", 0, 0);
+ test("", 0, 1, "abcdefghij", 1, -1);
+ test("", 0, 1, "abcdefghij", 5, -5);
+ test("", 0, 1, "abcdefghij", 9, -9);
+ test("", 0, 1, "abcdefghij", 10, -10);
+ test("", 0, 1, "abcdefghijklmnopqrst", 0, 0);
+ test("", 0, 1, "abcdefghijklmnopqrst", 1, -1);
+ test("", 0, 1, "abcdefghijklmnopqrst", 10, -10);
+ test("", 0, 1, "abcdefghijklmnopqrst", 19, -19);
+ test("", 0, 1, "abcdefghijklmnopqrst", 20, -20);
+ test("", 1, 0, "", 0, 0);
+ test("", 1, 0, "abcde", 0, 0);
+ test("", 1, 0, "abcde", 1, 0);
+ test("", 1, 0, "abcde", 2, 0);
+ test("", 1, 0, "abcde", 4, 0);
+ test("", 1, 0, "abcde", 5, 0);
+ test("", 1, 0, "abcdefghij", 0, 0);
+ test("", 1, 0, "abcdefghij", 1, 0);
+ test("", 1, 0, "abcdefghij", 5, 0);
+ test("", 1, 0, "abcdefghij", 9, 0);
+ test("", 1, 0, "abcdefghij", 10, 0);
+ test("", 1, 0, "abcdefghijklmnopqrst", 0, 0);
+ test("", 1, 0, "abcdefghijklmnopqrst", 1, 0);
+ test("", 1, 0, "abcdefghijklmnopqrst", 10, 0);
+ test("", 1, 0, "abcdefghijklmnopqrst", 19, 0);
+ test("", 1, 0, "abcdefghijklmnopqrst", 20, 0);
+ test("abcde", 0, 0, "", 0, 0);
+ test("abcde", 0, 0, "abcde", 0, 0);
+ test("abcde", 0, 0, "abcde", 1, -1);
+ test("abcde", 0, 0, "abcde", 2, -2);
+ test("abcde", 0, 0, "abcde", 4, -4);
+ test("abcde", 0, 0, "abcde", 5, -5);
+ test("abcde", 0, 0, "abcdefghij", 0, 0);
+ test("abcde", 0, 0, "abcdefghij", 1, -1);
+ test("abcde", 0, 0, "abcdefghij", 5, -5);
+ test("abcde", 0, 0, "abcdefghij", 9, -9);
+ test("abcde", 0, 0, "abcdefghij", 10, -10);
+ test("abcde", 0, 0, "abcdefghijklmnopqrst", 0, 0);
+ test("abcde", 0, 0, "abcdefghijklmnopqrst", 1, -1);
+ test("abcde", 0, 0, "abcdefghijklmnopqrst", 10, -10);
+ test("abcde", 0, 0, "abcdefghijklmnopqrst", 19, -19);
+ test("abcde", 0, 0, "abcdefghijklmnopqrst", 20, -20);
+ test("abcde", 0, 1, "", 0, 1);
+ test("abcde", 0, 1, "abcde", 0, 1);
+ test("abcde", 0, 1, "abcde", 1, 0);
+ test("abcde", 0, 1, "abcde", 2, -1);
+ test("abcde", 0, 1, "abcde", 4, -3);
+ test("abcde", 0, 1, "abcde", 5, -4);
+ test("abcde", 0, 1, "abcdefghij", 0, 1);
+ test("abcde", 0, 1, "abcdefghij", 1, 0);
+ test("abcde", 0, 1, "abcdefghij", 5, -4);
+ test("abcde", 0, 1, "abcdefghij", 9, -8);
+ test("abcde", 0, 1, "abcdefghij", 10, -9);
+ test("abcde", 0, 1, "abcdefghijklmnopqrst", 0, 1);
+ test("abcde", 0, 1, "abcdefghijklmnopqrst", 1, 0);
+ test("abcde", 0, 1, "abcdefghijklmnopqrst", 10, -9);
+ test("abcde", 0, 1, "abcdefghijklmnopqrst", 19, -18);
+ test("abcde", 0, 1, "abcdefghijklmnopqrst", 20, -19);
+ test("abcde", 0, 2, "", 0, 2);
+ test("abcde", 0, 2, "abcde", 0, 2);
+ test("abcde", 0, 2, "abcde", 1, 1);
+ test("abcde", 0, 2, "abcde", 2, 0);
+ test("abcde", 0, 2, "abcde", 4, -2);
+ test("abcde", 0, 2, "abcde", 5, -3);
+ test("abcde", 0, 2, "abcdefghij", 0, 2);
+ test("abcde", 0, 2, "abcdefghij", 1, 1);
+ test("abcde", 0, 2, "abcdefghij", 5, -3);
+ test("abcde", 0, 2, "abcdefghij", 9, -7);
+ test("abcde", 0, 2, "abcdefghij", 10, -8);
+ test("abcde", 0, 2, "abcdefghijklmnopqrst", 0, 2);
+ test("abcde", 0, 2, "abcdefghijklmnopqrst", 1, 1);
+ test("abcde", 0, 2, "abcdefghijklmnopqrst", 10, -8);
+ test("abcde", 0, 2, "abcdefghijklmnopqrst", 19, -17);
+ test("abcde", 0, 2, "abcdefghijklmnopqrst", 20, -18);
+ test("abcde", 0, 4, "", 0, 4);
+ test("abcde", 0, 4, "abcde", 0, 4);
+ test("abcde", 0, 4, "abcde", 1, 3);
+ test("abcde", 0, 4, "abcde", 2, 2);
}
-
-void test1()
-{
- test("abcde", 0, 4, "abcde", 4, 0);
- test("abcde", 0, 4, "abcde", 5, -1);
- test("abcde", 0, 4, "abcdefghij", 0, 4);
- test("abcde", 0, 4, "abcdefghij", 1, 3);
- test("abcde", 0, 4, "abcdefghij", 5, -1);
- test("abcde", 0, 4, "abcdefghij", 9, -5);
- test("abcde", 0, 4, "abcdefghij", 10, -6);
- test("abcde", 0, 4, "abcdefghijklmnopqrst", 0, 4);
- test("abcde", 0, 4, "abcdefghijklmnopqrst", 1, 3);
- test("abcde", 0, 4, "abcdefghijklmnopqrst", 10, -6);
- test("abcde", 0, 4, "abcdefghijklmnopqrst", 19, -15);
- test("abcde", 0, 4, "abcdefghijklmnopqrst", 20, -16);
- test("abcde", 0, 5, "", 0, 5);
- test("abcde", 0, 5, "abcde", 0, 5);
- test("abcde", 0, 5, "abcde", 1, 4);
- test("abcde", 0, 5, "abcde", 2, 3);
- test("abcde", 0, 5, "abcde", 4, 1);
- test("abcde", 0, 5, "abcde", 5, 0);
- test("abcde", 0, 5, "abcdefghij", 0, 5);
- test("abcde", 0, 5, "abcdefghij", 1, 4);
- test("abcde", 0, 5, "abcdefghij", 5, 0);
- test("abcde", 0, 5, "abcdefghij", 9, -4);
- test("abcde", 0, 5, "abcdefghij", 10, -5);
- test("abcde", 0, 5, "abcdefghijklmnopqrst", 0, 5);
- test("abcde", 0, 5, "abcdefghijklmnopqrst", 1, 4);
- test("abcde", 0, 5, "abcdefghijklmnopqrst", 10, -5);
- test("abcde", 0, 5, "abcdefghijklmnopqrst", 19, -14);
- test("abcde", 0, 5, "abcdefghijklmnopqrst", 20, -15);
- test("abcde", 0, 6, "", 0, 5);
- test("abcde", 0, 6, "abcde", 0, 5);
- test("abcde", 0, 6, "abcde", 1, 4);
- test("abcde", 0, 6, "abcde", 2, 3);
- test("abcde", 0, 6, "abcde", 4, 1);
- test("abcde", 0, 6, "abcde", 5, 0);
- test("abcde", 0, 6, "abcdefghij", 0, 5);
- test("abcde", 0, 6, "abcdefghij", 1, 4);
- test("abcde", 0, 6, "abcdefghij", 5, 0);
- test("abcde", 0, 6, "abcdefghij", 9, -4);
- test("abcde", 0, 6, "abcdefghij", 10, -5);
- test("abcde", 0, 6, "abcdefghijklmnopqrst", 0, 5);
- test("abcde", 0, 6, "abcdefghijklmnopqrst", 1, 4);
- test("abcde", 0, 6, "abcdefghijklmnopqrst", 10, -5);
- test("abcde", 0, 6, "abcdefghijklmnopqrst", 19, -14);
- test("abcde", 0, 6, "abcdefghijklmnopqrst", 20, -15);
- test("abcde", 1, 0, "", 0, 0);
- test("abcde", 1, 0, "abcde", 0, 0);
- test("abcde", 1, 0, "abcde", 1, -1);
- test("abcde", 1, 0, "abcde", 2, -2);
- test("abcde", 1, 0, "abcde", 4, -4);
- test("abcde", 1, 0, "abcde", 5, -5);
- test("abcde", 1, 0, "abcdefghij", 0, 0);
- test("abcde", 1, 0, "abcdefghij", 1, -1);
- test("abcde", 1, 0, "abcdefghij", 5, -5);
- test("abcde", 1, 0, "abcdefghij", 9, -9);
- test("abcde", 1, 0, "abcdefghij", 10, -10);
- test("abcde", 1, 0, "abcdefghijklmnopqrst", 0, 0);
- test("abcde", 1, 0, "abcdefghijklmnopqrst", 1, -1);
- test("abcde", 1, 0, "abcdefghijklmnopqrst", 10, -10);
- test("abcde", 1, 0, "abcdefghijklmnopqrst", 19, -19);
- test("abcde", 1, 0, "abcdefghijklmnopqrst", 20, -20);
- test("abcde", 1, 1, "", 0, 1);
- test("abcde", 1, 1, "abcde", 0, 1);
- test("abcde", 1, 1, "abcde", 1, 1);
- test("abcde", 1, 1, "abcde", 2, 1);
- test("abcde", 1, 1, "abcde", 4, 1);
- test("abcde", 1, 1, "abcde", 5, 1);
- test("abcde", 1, 1, "abcdefghij", 0, 1);
- test("abcde", 1, 1, "abcdefghij", 1, 1);
- test("abcde", 1, 1, "abcdefghij", 5, 1);
- test("abcde", 1, 1, "abcdefghij", 9, 1);
- test("abcde", 1, 1, "abcdefghij", 10, 1);
- test("abcde", 1, 1, "abcdefghijklmnopqrst", 0, 1);
- test("abcde", 1, 1, "abcdefghijklmnopqrst", 1, 1);
- test("abcde", 1, 1, "abcdefghijklmnopqrst", 10, 1);
- test("abcde", 1, 1, "abcdefghijklmnopqrst", 19, 1);
- test("abcde", 1, 1, "abcdefghijklmnopqrst", 20, 1);
- test("abcde", 1, 2, "", 0, 2);
- test("abcde", 1, 2, "abcde", 0, 2);
- test("abcde", 1, 2, "abcde", 1, 1);
- test("abcde", 1, 2, "abcde", 2, 1);
- test("abcde", 1, 2, "abcde", 4, 1);
- test("abcde", 1, 2, "abcde", 5, 1);
- test("abcde", 1, 2, "abcdefghij", 0, 2);
- test("abcde", 1, 2, "abcdefghij", 1, 1);
- test("abcde", 1, 2, "abcdefghij", 5, 1);
- test("abcde", 1, 2, "abcdefghij", 9, 1);
- test("abcde", 1, 2, "abcdefghij", 10, 1);
- test("abcde", 1, 2, "abcdefghijklmnopqrst", 0, 2);
- test("abcde", 1, 2, "abcdefghijklmnopqrst", 1, 1);
- test("abcde", 1, 2, "abcdefghijklmnopqrst", 10, 1);
- test("abcde", 1, 2, "abcdefghijklmnopqrst", 19, 1);
- test("abcde", 1, 2, "abcdefghijklmnopqrst", 20, 1);
- test("abcde", 1, 3, "", 0, 3);
- test("abcde", 1, 3, "abcde", 0, 3);
- test("abcde", 1, 3, "abcde", 1, 1);
- test("abcde", 1, 3, "abcde", 2, 1);
- test("abcde", 1, 3, "abcde", 4, 1);
- test("abcde", 1, 3, "abcde", 5, 1);
- test("abcde", 1, 3, "abcdefghij", 0, 3);
- test("abcde", 1, 3, "abcdefghij", 1, 1);
+void test1() {
+ test("abcde", 0, 4, "abcde", 4, 0);
+ test("abcde", 0, 4, "abcde", 5, -1);
+ test("abcde", 0, 4, "abcdefghij", 0, 4);
+ test("abcde", 0, 4, "abcdefghij", 1, 3);
+ test("abcde", 0, 4, "abcdefghij", 5, -1);
+ test("abcde", 0, 4, "abcdefghij", 9, -5);
+ test("abcde", 0, 4, "abcdefghij", 10, -6);
+ test("abcde", 0, 4, "abcdefghijklmnopqrst", 0, 4);
+ test("abcde", 0, 4, "abcdefghijklmnopqrst", 1, 3);
+ test("abcde", 0, 4, "abcdefghijklmnopqrst", 10, -6);
+ test("abcde", 0, 4, "abcdefghijklmnopqrst", 19, -15);
+ test("abcde", 0, 4, "abcdefghijklmnopqrst", 20, -16);
+ test("abcde", 0, 5, "", 0, 5);
+ test("abcde", 0, 5, "abcde", 0, 5);
+ test("abcde", 0, 5, "abcde", 1, 4);
+ test("abcde", 0, 5, "abcde", 2, 3);
+ test("abcde", 0, 5, "abcde", 4, 1);
+ test("abcde", 0, 5, "abcde", 5, 0);
+ test("abcde", 0, 5, "abcdefghij", 0, 5);
+ test("abcde", 0, 5, "abcdefghij", 1, 4);
+ test("abcde", 0, 5, "abcdefghij", 5, 0);
+ test("abcde", 0, 5, "abcdefghij", 9, -4);
+ test("abcde", 0, 5, "abcdefghij", 10, -5);
+ test("abcde", 0, 5, "abcdefghijklmnopqrst", 0, 5);
+ test("abcde", 0, 5, "abcdefghijklmnopqrst", 1, 4);
+ test("abcde", 0, 5, "abcdefghijklmnopqrst", 10, -5);
+ test("abcde", 0, 5, "abcdefghijklmnopqrst", 19, -14);
+ test("abcde", 0, 5, "abcdefghijklmnopqrst", 20, -15);
+ test("abcde", 0, 6, "", 0, 5);
+ test("abcde", 0, 6, "abcde", 0, 5);
+ test("abcde", 0, 6, "abcde", 1, 4);
+ test("abcde", 0, 6, "abcde", 2, 3);
+ test("abcde", 0, 6, "abcde", 4, 1);
+ test("abcde", 0, 6, "abcde", 5, 0);
+ test("abcde", 0, 6, "abcdefghij", 0, 5);
+ test("abcde", 0, 6, "abcdefghij", 1, 4);
+ test("abcde", 0, 6, "abcdefghij", 5, 0);
+ test("abcde", 0, 6, "abcdefghij", 9, -4);
+ test("abcde", 0, 6, "abcdefghij", 10, -5);
+ test("abcde", 0, 6, "abcdefghijklmnopqrst", 0, 5);
+ test("abcde", 0, 6, "abcdefghijklmnopqrst", 1, 4);
+ test("abcde", 0, 6, "abcdefghijklmnopqrst", 10, -5);
+ test("abcde", 0, 6, "abcdefghijklmnopqrst", 19, -14);
+ test("abcde", 0, 6, "abcdefghijklmnopqrst", 20, -15);
+ test("abcde", 1, 0, "", 0, 0);
+ test("abcde", 1, 0, "abcde", 0, 0);
+ test("abcde", 1, 0, "abcde", 1, -1);
+ test("abcde", 1, 0, "abcde", 2, -2);
+ test("abcde", 1, 0, "abcde", 4, -4);
+ test("abcde", 1, 0, "abcde", 5, -5);
+ test("abcde", 1, 0, "abcdefghij", 0, 0);
+ test("abcde", 1, 0, "abcdefghij", 1, -1);
+ test("abcde", 1, 0, "abcdefghij", 5, -5);
+ test("abcde", 1, 0, "abcdefghij", 9, -9);
+ test("abcde", 1, 0, "abcdefghij", 10, -10);
+ test("abcde", 1, 0, "abcdefghijklmnopqrst", 0, 0);
+ test("abcde", 1, 0, "abcdefghijklmnopqrst", 1, -1);
+ test("abcde", 1, 0, "abcdefghijklmnopqrst", 10, -10);
+ test("abcde", 1, 0, "abcdefghijklmnopqrst", 19, -19);
+ test("abcde", 1, 0, "abcdefghijklmnopqrst", 20, -20);
+ test("abcde", 1, 1, "", 0, 1);
+ test("abcde", 1, 1, "abcde", 0, 1);
+ test("abcde", 1, 1, "abcde", 1, 1);
+ test("abcde", 1, 1, "abcde", 2, 1);
+ test("abcde", 1, 1, "abcde", 4, 1);
+ test("abcde", 1, 1, "abcde", 5, 1);
+ test("abcde", 1, 1, "abcdefghij", 0, 1);
+ test("abcde", 1, 1, "abcdefghij", 1, 1);
+ test("abcde", 1, 1, "abcdefghij", 5, 1);
+ test("abcde", 1, 1, "abcdefghij", 9, 1);
+ test("abcde", 1, 1, "abcdefghij", 10, 1);
+ test("abcde", 1, 1, "abcdefghijklmnopqrst", 0, 1);
+ test("abcde", 1, 1, "abcdefghijklmnopqrst", 1, 1);
+ test("abcde", 1, 1, "abcdefghijklmnopqrst", 10, 1);
+ test("abcde", 1, 1, "abcdefghijklmnopqrst", 19, 1);
+ test("abcde", 1, 1, "abcdefghijklmnopqrst", 20, 1);
+ test("abcde", 1, 2, "", 0, 2);
+ test("abcde", 1, 2, "abcde", 0, 2);
+ test("abcde", 1, 2, "abcde", 1, 1);
+ test("abcde", 1, 2, "abcde", 2, 1);
+ test("abcde", 1, 2, "abcde", 4, 1);
+ test("abcde", 1, 2, "abcde", 5, 1);
+ test("abcde", 1, 2, "abcdefghij", 0, 2);
+ test("abcde", 1, 2, "abcdefghij", 1, 1);
+ test("abcde", 1, 2, "abcdefghij", 5, 1);
+ test("abcde", 1, 2, "abcdefghij", 9, 1);
+ test("abcde", 1, 2, "abcdefghij", 10, 1);
+ test("abcde", 1, 2, "abcdefghijklmnopqrst", 0, 2);
+ test("abcde", 1, 2, "abcdefghijklmnopqrst", 1, 1);
+ test("abcde", 1, 2, "abcdefghijklmnopqrst", 10, 1);
+ test("abcde", 1, 2, "abcdefghijklmnopqrst", 19, 1);
+ test("abcde", 1, 2, "abcdefghijklmnopqrst", 20, 1);
+ test("abcde", 1, 3, "", 0, 3);
+ test("abcde", 1, 3, "abcde", 0, 3);
+ test("abcde", 1, 3, "abcde", 1, 1);
+ test("abcde", 1, 3, "abcde", 2, 1);
+ test("abcde", 1, 3, "abcde", 4, 1);
+ test("abcde", 1, 3, "abcde", 5, 1);
+ test("abcde", 1, 3, "abcdefghij", 0, 3);
+ test("abcde", 1, 3, "abcdefghij", 1, 1);
}
-
-void test2()
-{
- test("abcde", 1, 3, "abcdefghij", 5, 1);
- test("abcde", 1, 3, "abcdefghij", 9, 1);
- test("abcde", 1, 3, "abcdefghij", 10, 1);
- test("abcde", 1, 3, "abcdefghijklmnopqrst", 0, 3);
- test("abcde", 1, 3, "abcdefghijklmnopqrst", 1, 1);
- test("abcde", 1, 3, "abcdefghijklmnopqrst", 10, 1);
- test("abcde", 1, 3, "abcdefghijklmnopqrst", 19, 1);
- test("abcde", 1, 3, "abcdefghijklmnopqrst", 20, 1);
- test("abcde", 1, 4, "", 0, 4);
- test("abcde", 1, 4, "abcde", 0, 4);
- test("abcde", 1, 4, "abcde", 1, 1);
- test("abcde", 1, 4, "abcde", 2, 1);
- test("abcde", 1, 4, "abcde", 4, 1);
- test("abcde", 1, 4, "abcde", 5, 1);
- test("abcde", 1, 4, "abcdefghij", 0, 4);
- test("abcde", 1, 4, "abcdefghij", 1, 1);
- test("abcde", 1, 4, "abcdefghij", 5, 1);
- test("abcde", 1, 4, "abcdefghij", 9, 1);
- test("abcde", 1, 4, "abcdefghij", 10, 1);
- test("abcde", 1, 4, "abcdefghijklmnopqrst", 0, 4);
- test("abcde", 1, 4, "abcdefghijklmnopqrst", 1, 1);
- test("abcde", 1, 4, "abcdefghijklmnopqrst", 10, 1);
- test("abcde", 1, 4, "abcdefghijklmnopqrst", 19, 1);
- test("abcde", 1, 4, "abcdefghijklmnopqrst", 20, 1);
- test("abcde", 1, 5, "", 0, 4);
- test("abcde", 1, 5, "abcde", 0, 4);
- test("abcde", 1, 5, "abcde", 1, 1);
- test("abcde", 1, 5, "abcde", 2, 1);
- test("abcde", 1, 5, "abcde", 4, 1);
- test("abcde", 1, 5, "abcde", 5, 1);
- test("abcde", 1, 5, "abcdefghij", 0, 4);
- test("abcde", 1, 5, "abcdefghij", 1, 1);
- test("abcde", 1, 5, "abcdefghij", 5, 1);
- test("abcde", 1, 5, "abcdefghij", 9, 1);
- test("abcde", 1, 5, "abcdefghij", 10, 1);
- test("abcde", 1, 5, "abcdefghijklmnopqrst", 0, 4);
- test("abcde", 1, 5, "abcdefghijklmnopqrst", 1, 1);
- test("abcde", 1, 5, "abcdefghijklmnopqrst", 10, 1);
- test("abcde", 1, 5, "abcdefghijklmnopqrst", 19, 1);
- test("abcde", 1, 5, "abcdefghijklmnopqrst", 20, 1);
- test("abcde", 2, 0, "", 0, 0);
- test("abcde", 2, 0, "abcde", 0, 0);
- test("abcde", 2, 0, "abcde", 1, -1);
- test("abcde", 2, 0, "abcde", 2, -2);
- test("abcde", 2, 0, "abcde", 4, -4);
- test("abcde", 2, 0, "abcde", 5, -5);
- test("abcde", 2, 0, "abcdefghij", 0, 0);
- test("abcde", 2, 0, "abcdefghij", 1, -1);
- test("abcde", 2, 0, "abcdefghij", 5, -5);
- test("abcde", 2, 0, "abcdefghij", 9, -9);
- test("abcde", 2, 0, "abcdefghij", 10, -10);
- test("abcde", 2, 0, "abcdefghijklmnopqrst", 0, 0);
- test("abcde", 2, 0, "abcdefghijklmnopqrst", 1, -1);
- test("abcde", 2, 0, "abcdefghijklmnopqrst", 10, -10);
- test("abcde", 2, 0, "abcdefghijklmnopqrst", 19, -19);
- test("abcde", 2, 0, "abcdefghijklmnopqrst", 20, -20);
- test("abcde", 2, 1, "", 0, 1);
- test("abcde", 2, 1, "abcde", 0, 1);
- test("abcde", 2, 1, "abcde", 1, 2);
- test("abcde", 2, 1, "abcde", 2, 2);
- test("abcde", 2, 1, "abcde", 4, 2);
- test("abcde", 2, 1, "abcde", 5, 2);
- test("abcde", 2, 1, "abcdefghij", 0, 1);
- test("abcde", 2, 1, "abcdefghij", 1, 2);
- test("abcde", 2, 1, "abcdefghij", 5, 2);
- test("abcde", 2, 1, "abcdefghij", 9, 2);
- test("abcde", 2, 1, "abcdefghij", 10, 2);
- test("abcde", 2, 1, "abcdefghijklmnopqrst", 0, 1);
- test("abcde", 2, 1, "abcdefghijklmnopqrst", 1, 2);
- test("abcde", 2, 1, "abcdefghijklmnopqrst", 10, 2);
- test("abcde", 2, 1, "abcdefghijklmnopqrst", 19, 2);
- test("abcde", 2, 1, "abcdefghijklmnopqrst", 20, 2);
- test("abcde", 2, 2, "", 0, 2);
- test("abcde", 2, 2, "abcde", 0, 2);
- test("abcde", 2, 2, "abcde", 1, 2);
- test("abcde", 2, 2, "abcde", 2, 2);
- test("abcde", 2, 2, "abcde", 4, 2);
- test("abcde", 2, 2, "abcde", 5, 2);
- test("abcde", 2, 2, "abcdefghij", 0, 2);
- test("abcde", 2, 2, "abcdefghij", 1, 2);
- test("abcde", 2, 2, "abcdefghij", 5, 2);
- test("abcde", 2, 2, "abcdefghij", 9, 2);
- test("abcde", 2, 2, "abcdefghij", 10, 2);
- test("abcde", 2, 2, "abcdefghijklmnopqrst", 0, 2);
- test("abcde", 2, 2, "abcdefghijklmnopqrst", 1, 2);
- test("abcde", 2, 2, "abcdefghijklmnopqrst", 10, 2);
- test("abcde", 2, 2, "abcdefghijklmnopqrst", 19, 2);
- test("abcde", 2, 2, "abcdefghijklmnopqrst", 20, 2);
- test("abcde", 2, 3, "", 0, 3);
- test("abcde", 2, 3, "abcde", 0, 3);
- test("abcde", 2, 3, "abcde", 1, 2);
- test("abcde", 2, 3, "abcde", 2, 2);
- test("abcde", 2, 3, "abcde", 4, 2);
- test("abcde", 2, 3, "abcde", 5, 2);
- test("abcde", 2, 3, "abcdefghij", 0, 3);
- test("abcde", 2, 3, "abcdefghij", 1, 2);
- test("abcde", 2, 3, "abcdefghij", 5, 2);
- test("abcde", 2, 3, "abcdefghij", 9, 2);
- test("abcde", 2, 3, "abcdefghij", 10, 2);
- test("abcde", 2, 3, "abcdefghijklmnopqrst", 0, 3);
+void test2() {
+ test("abcde", 1, 3, "abcdefghij", 5, 1);
+ test("abcde", 1, 3, "abcdefghij", 9, 1);
+ test("abcde", 1, 3, "abcdefghij", 10, 1);
+ test("abcde", 1, 3, "abcdefghijklmnopqrst", 0, 3);
+ test("abcde", 1, 3, "abcdefghijklmnopqrst", 1, 1);
+ test("abcde", 1, 3, "abcdefghijklmnopqrst", 10, 1);
+ test("abcde", 1, 3, "abcdefghijklmnopqrst", 19, 1);
+ test("abcde", 1, 3, "abcdefghijklmnopqrst", 20, 1);
+ test("abcde", 1, 4, "", 0, 4);
+ test("abcde", 1, 4, "abcde", 0, 4);
+ test("abcde", 1, 4, "abcde", 1, 1);
+ test("abcde", 1, 4, "abcde", 2, 1);
+ test("abcde", 1, 4, "abcde", 4, 1);
+ test("abcde", 1, 4, "abcde", 5, 1);
+ test("abcde", 1, 4, "abcdefghij", 0, 4);
+ test("abcde", 1, 4, "abcdefghij", 1, 1);
+ test("abcde", 1, 4, "abcdefghij", 5, 1);
+ test("abcde", 1, 4, "abcdefghij", 9, 1);
+ test("abcde", 1, 4, "abcdefghij", 10, 1);
+ test("abcde", 1, 4, "abcdefghijklmnopqrst", 0, 4);
+ test("abcde", 1, 4, "abcdefghijklmnopqrst", 1, 1);
+ test("abcde", 1, 4, "abcdefghijklmnopqrst", 10, 1);
+ test("abcde", 1, 4, "abcdefghijklmnopqrst", 19, 1);
+ test("abcde", 1, 4, "abcdefghijklmnopqrst", 20, 1);
+ test("abcde", 1, 5, "", 0, 4);
+ test("abcde", 1, 5, "abcde", 0, 4);
+ test("abcde", 1, 5, "abcde", 1, 1);
+ test("abcde", 1, 5, "abcde", 2, 1);
+ test("abcde", 1, 5, "abcde", 4, 1);
+ test("abcde", 1, 5, "abcde", 5, 1);
+ test("abcde", 1, 5, "abcdefghij", 0, 4);
+ test("abcde", 1, 5, "abcdefghij", 1, 1);
+ test("abcde", 1, 5, "abcdefghij", 5, 1);
+ test("abcde", 1, 5, "abcdefghij", 9, 1);
+ test("abcde", 1, 5, "abcdefghij", 10, 1);
+ test("abcde", 1, 5, "abcdefghijklmnopqrst", 0, 4);
+ test("abcde", 1, 5, "abcdefghijklmnopqrst", 1, 1);
+ test("abcde", 1, 5, "abcdefghijklmnopqrst", 10, 1);
+ test("abcde", 1, 5, "abcdefghijklmnopqrst", 19, 1);
+ test("abcde", 1, 5, "abcdefghijklmnopqrst", 20, 1);
+ test("abcde", 2, 0, "", 0, 0);
+ test("abcde", 2, 0, "abcde", 0, 0);
+ test("abcde", 2, 0, "abcde", 1, -1);
+ test("abcde", 2, 0, "abcde", 2, -2);
+ test("abcde", 2, 0, "abcde", 4, -4);
+ test("abcde", 2, 0, "abcde", 5, -5);
+ test("abcde", 2, 0, "abcdefghij", 0, 0);
+ test("abcde", 2, 0, "abcdefghij", 1, -1);
+ test("abcde", 2, 0, "abcdefghij", 5, -5);
+ test("abcde", 2, 0, "abcdefghij", 9, -9);
+ test("abcde", 2, 0, "abcdefghij", 10, -10);
+ test("abcde", 2, 0, "abcdefghijklmnopqrst", 0, 0);
+ test("abcde", 2, 0, "abcdefghijklmnopqrst", 1, -1);
+ test("abcde", 2, 0, "abcdefghijklmnopqrst", 10, -10);
+ test("abcde", 2, 0, "abcdefghijklmnopqrst", 19, -19);
+ test("abcde", 2, 0, "abcdefghijklmnopqrst", 20, -20);
+ test("abcde", 2, 1, "", 0, 1);
+ test("abcde", 2, 1, "abcde", 0, 1);
+ test("abcde", 2, 1, "abcde", 1, 2);
+ test("abcde", 2, 1, "abcde", 2, 2);
+ test("abcde", 2, 1, "abcde", 4, 2);
+ test("abcde", 2, 1, "abcde", 5, 2);
+ test("abcde", 2, 1, "abcdefghij", 0, 1);
+ test("abcde", 2, 1, "abcdefghij", 1, 2);
+ test("abcde", 2, 1, "abcdefghij", 5, 2);
+ test("abcde", 2, 1, "abcdefghij", 9, 2);
+ test("abcde", 2, 1, "abcdefghij", 10, 2);
+ test("abcde", 2, 1, "abcdefghijklmnopqrst", 0, 1);
+ test("abcde", 2, 1, "abcdefghijklmnopqrst", 1, 2);
+ test("abcde", 2, 1, "abcdefghijklmnopqrst", 10, 2);
+ test("abcde", 2, 1, "abcdefghijklmnopqrst", 19, 2);
+ test("abcde", 2, 1, "abcdefghijklmnopqrst", 20, 2);
+ test("abcde", 2, 2, "", 0, 2);
+ test("abcde", 2, 2, "abcde", 0, 2);
+ test("abcde", 2, 2, "abcde", 1, 2);
+ test("abcde", 2, 2, "abcde", 2, 2);
+ test("abcde", 2, 2, "abcde", 4, 2);
+ test("abcde", 2, 2, "abcde", 5, 2);
+ test("abcde", 2, 2, "abcdefghij", 0, 2);
+ test("abcde", 2, 2, "abcdefghij", 1, 2);
+ test("abcde", 2, 2, "abcdefghij", 5, 2);
+ test("abcde", 2, 2, "abcdefghij", 9, 2);
+ test("abcde", 2, 2, "abcdefghij", 10, 2);
+ test("abcde", 2, 2, "abcdefghijklmnopqrst", 0, 2);
+ test("abcde", 2, 2, "abcdefghijklmnopqrst", 1, 2);
+ test("abcde", 2, 2, "abcdefghijklmnopqrst", 10, 2);
+ test("abcde", 2, 2, "abcdefghijklmnopqrst", 19, 2);
+ test("abcde", 2, 2, "abcdefghijklmnopqrst", 20, 2);
+ test("abcde", 2, 3, "", 0, 3);
+ test("abcde", 2, 3, "abcde", 0, 3);
+ test("abcde", 2, 3, "abcde", 1, 2);
+ test("abcde", 2, 3, "abcde", 2, 2);
+ test("abcde", 2, 3, "abcde", 4, 2);
+ test("abcde", 2, 3, "abcde", 5, 2);
+ test("abcde", 2, 3, "abcdefghij", 0, 3);
+ test("abcde", 2, 3, "abcdefghij", 1, 2);
+ test("abcde", 2, 3, "abcdefghij", 5, 2);
+ test("abcde", 2, 3, "abcdefghij", 9, 2);
+ test("abcde", 2, 3, "abcdefghij", 10, 2);
+ test("abcde", 2, 3, "abcdefghijklmnopqrst", 0, 3);
}
-
-void test3()
-{
- test("abcde", 2, 3, "abcdefghijklmnopqrst", 1, 2);
- test("abcde", 2, 3, "abcdefghijklmnopqrst", 10, 2);
- test("abcde", 2, 3, "abcdefghijklmnopqrst", 19, 2);
- test("abcde", 2, 3, "abcdefghijklmnopqrst", 20, 2);
- test("abcde", 2, 4, "", 0, 3);
- test("abcde", 2, 4, "abcde", 0, 3);
- test("abcde", 2, 4, "abcde", 1, 2);
- test("abcde", 2, 4, "abcde", 2, 2);
- test("abcde", 2, 4, "abcde", 4, 2);
- test("abcde", 2, 4, "abcde", 5, 2);
- test("abcde", 2, 4, "abcdefghij", 0, 3);
- test("abcde", 2, 4, "abcdefghij", 1, 2);
- test("abcde", 2, 4, "abcdefghij", 5, 2);
- test("abcde", 2, 4, "abcdefghij", 9, 2);
- test("abcde", 2, 4, "abcdefghij", 10, 2);
- test("abcde", 2, 4, "abcdefghijklmnopqrst", 0, 3);
- test("abcde", 2, 4, "abcdefghijklmnopqrst", 1, 2);
- test("abcde", 2, 4, "abcdefghijklmnopqrst", 10, 2);
- test("abcde", 2, 4, "abcdefghijklmnopqrst", 19, 2);
- test("abcde", 2, 4, "abcdefghijklmnopqrst", 20, 2);
- test("abcde", 4, 0, "", 0, 0);
- test("abcde", 4, 0, "abcde", 0, 0);
- test("abcde", 4, 0, "abcde", 1, -1);
- test("abcde", 4, 0, "abcde", 2, -2);
- test("abcde", 4, 0, "abcde", 4, -4);
- test("abcde", 4, 0, "abcde", 5, -5);
- test("abcde", 4, 0, "abcdefghij", 0, 0);
- test("abcde", 4, 0, "abcdefghij", 1, -1);
- test("abcde", 4, 0, "abcdefghij", 5, -5);
- test("abcde", 4, 0, "abcdefghij", 9, -9);
- test("abcde", 4, 0, "abcdefghij", 10, -10);
- test("abcde", 4, 0, "abcdefghijklmnopqrst", 0, 0);
- test("abcde", 4, 0, "abcdefghijklmnopqrst", 1, -1);
- test("abcde", 4, 0, "abcdefghijklmnopqrst", 10, -10);
- test("abcde", 4, 0, "abcdefghijklmnopqrst", 19, -19);
- test("abcde", 4, 0, "abcdefghijklmnopqrst", 20, -20);
- test("abcde", 4, 1, "", 0, 1);
- test("abcde", 4, 1, "abcde", 0, 1);
- test("abcde", 4, 1, "abcde", 1, 4);
- test("abcde", 4, 1, "abcde", 2, 4);
- test("abcde", 4, 1, "abcde", 4, 4);
- test("abcde", 4, 1, "abcde", 5, 4);
- test("abcde", 4, 1, "abcdefghij", 0, 1);
- test("abcde", 4, 1, "abcdefghij", 1, 4);
- test("abcde", 4, 1, "abcdefghij", 5, 4);
- test("abcde", 4, 1, "abcdefghij", 9, 4);
- test("abcde", 4, 1, "abcdefghij", 10, 4);
- test("abcde", 4, 1, "abcdefghijklmnopqrst", 0, 1);
- test("abcde", 4, 1, "abcdefghijklmnopqrst", 1, 4);
- test("abcde", 4, 1, "abcdefghijklmnopqrst", 10, 4);
- test("abcde", 4, 1, "abcdefghijklmnopqrst", 19, 4);
- test("abcde", 4, 1, "abcdefghijklmnopqrst", 20, 4);
- test("abcde", 4, 2, "", 0, 1);
- test("abcde", 4, 2, "abcde", 0, 1);
- test("abcde", 4, 2, "abcde", 1, 4);
- test("abcde", 4, 2, "abcde", 2, 4);
- test("abcde", 4, 2, "abcde", 4, 4);
- test("abcde", 4, 2, "abcde", 5, 4);
- test("abcde", 4, 2, "abcdefghij", 0, 1);
- test("abcde", 4, 2, "abcdefghij", 1, 4);
- test("abcde", 4, 2, "abcdefghij", 5, 4);
- test("abcde", 4, 2, "abcdefghij", 9, 4);
- test("abcde", 4, 2, "abcdefghij", 10, 4);
- test("abcde", 4, 2, "abcdefghijklmnopqrst", 0, 1);
- test("abcde", 4, 2, "abcdefghijklmnopqrst", 1, 4);
- test("abcde", 4, 2, "abcdefghijklmnopqrst", 10, 4);
- test("abcde", 4, 2, "abcdefghijklmnopqrst", 19, 4);
- test("abcde", 4, 2, "abcdefghijklmnopqrst", 20, 4);
- test("abcde", 5, 0, "", 0, 0);
- test("abcde", 5, 0, "abcde", 0, 0);
- test("abcde", 5, 0, "abcde", 1, -1);
- test("abcde", 5, 0, "abcde", 2, -2);
- test("abcde", 5, 0, "abcde", 4, -4);
- test("abcde", 5, 0, "abcde", 5, -5);
- test("abcde", 5, 0, "abcdefghij", 0, 0);
- test("abcde", 5, 0, "abcdefghij", 1, -1);
- test("abcde", 5, 0, "abcdefghij", 5, -5);
- test("abcde", 5, 0, "abcdefghij", 9, -9);
- test("abcde", 5, 0, "abcdefghij", 10, -10);
- test("abcde", 5, 0, "abcdefghijklmnopqrst", 0, 0);
- test("abcde", 5, 0, "abcdefghijklmnopqrst", 1, -1);
- test("abcde", 5, 0, "abcdefghijklmnopqrst", 10, -10);
- test("abcde", 5, 0, "abcdefghijklmnopqrst", 19, -19);
- test("abcde", 5, 0, "abcdefghijklmnopqrst", 20, -20);
- test("abcde", 5, 1, "", 0, 0);
- test("abcde", 5, 1, "abcde", 0, 0);
- test("abcde", 5, 1, "abcde", 1, -1);
- test("abcde", 5, 1, "abcde", 2, -2);
- test("abcde", 5, 1, "abcde", 4, -4);
- test("abcde", 5, 1, "abcde", 5, -5);
- test("abcde", 5, 1, "abcdefghij", 0, 0);
- test("abcde", 5, 1, "abcdefghij", 1, -1);
- test("abcde", 5, 1, "abcdefghij", 5, -5);
- test("abcde", 5, 1, "abcdefghij", 9, -9);
- test("abcde", 5, 1, "abcdefghij", 10, -10);
- test("abcde", 5, 1, "abcdefghijklmnopqrst", 0, 0);
- test("abcde", 5, 1, "abcdefghijklmnopqrst", 1, -1);
- test("abcde", 5, 1, "abcdefghijklmnopqrst", 10, -10);
- test("abcde", 5, 1, "abcdefghijklmnopqrst", 19, -19);
- test("abcde", 5, 1, "abcdefghijklmnopqrst", 20, -20);
+void test3() {
+ test("abcde", 2, 3, "abcdefghijklmnopqrst", 1, 2);
+ test("abcde", 2, 3, "abcdefghijklmnopqrst", 10, 2);
+ test("abcde", 2, 3, "abcdefghijklmnopqrst", 19, 2);
+ test("abcde", 2, 3, "abcdefghijklmnopqrst", 20, 2);
+ test("abcde", 2, 4, "", 0, 3);
+ test("abcde", 2, 4, "abcde", 0, 3);
+ test("abcde", 2, 4, "abcde", 1, 2);
+ test("abcde", 2, 4, "abcde", 2, 2);
+ test("abcde", 2, 4, "abcde", 4, 2);
+ test("abcde", 2, 4, "abcde", 5, 2);
+ test("abcde", 2, 4, "abcdefghij", 0, 3);
+ test("abcde", 2, 4, "abcdefghij", 1, 2);
+ test("abcde", 2, 4, "abcdefghij", 5, 2);
+ test("abcde", 2, 4, "abcdefghij", 9, 2);
+ test("abcde", 2, 4, "abcdefghij", 10, 2);
+ test("abcde", 2, 4, "abcdefghijklmnopqrst", 0, 3);
+ test("abcde", 2, 4, "abcdefghijklmnopqrst", 1, 2);
+ test("abcde", 2, 4, "abcdefghijklmnopqrst", 10, 2);
+ test("abcde", 2, 4, "abcdefghijklmnopqrst", 19, 2);
+ test("abcde", 2, 4, "abcdefghijklmnopqrst", 20, 2);
+ test("abcde", 4, 0, "", 0, 0);
+ test("abcde", 4, 0, "abcde", 0, 0);
+ test("abcde", 4, 0, "abcde", 1, -1);
+ test("abcde", 4, 0, "abcde", 2, -2);
+ test("abcde", 4, 0, "abcde", 4, -4);
+ test("abcde", 4, 0, "abcde", 5, -5);
+ test("abcde", 4, 0, "abcdefghij", 0, 0);
+ test("abcde", 4, 0, "abcdefghij", 1, -1);
+ test("abcde", 4, 0, "abcdefghij", 5, -5);
+ test("abcde", 4, 0, "abcdefghij", 9, -9);
+ test("abcde", 4, 0, "abcdefghij", 10, -10);
+ test("abcde", 4, 0, "abcdefghijklmnopqrst", 0, 0);
+ test("abcde", 4, 0, "abcdefghijklmnopqrst", 1, -1);
+ test("abcde", 4, 0, "abcdefghijklmnopqrst", 10, -10);
+ test("abcde", 4, 0, "abcdefghijklmnopqrst", 19, -19);
+ test("abcde", 4, 0, "abcdefghijklmnopqrst", 20, -20);
+ test("abcde", 4, 1, "", 0, 1);
+ test("abcde", 4, 1, "abcde", 0, 1);
+ test("abcde", 4, 1, "abcde", 1, 4);
+ test("abcde", 4, 1, "abcde", 2, 4);
+ test("abcde", 4, 1, "abcde", 4, 4);
+ test("abcde", 4, 1, "abcde", 5, 4);
+ test("abcde", 4, 1, "abcdefghij", 0, 1);
+ test("abcde", 4, 1, "abcdefghij", 1, 4);
+ test("abcde", 4, 1, "abcdefghij", 5, 4);
+ test("abcde", 4, 1, "abcdefghij", 9, 4);
+ test("abcde", 4, 1, "abcdefghij", 10, 4);
+ test("abcde", 4, 1, "abcdefghijklmnopqrst", 0, 1);
+ test("abcde", 4, 1, "abcdefghijklmnopqrst", 1, 4);
+ test("abcde", 4, 1, "abcdefghijklmnopqrst", 10, 4);
+ test("abcde", 4, 1, "abcdefghijklmnopqrst", 19, 4);
+ test("abcde", 4, 1, "abcdefghijklmnopqrst", 20, 4);
+ test("abcde", 4, 2, "", 0, 1);
+ test("abcde", 4, 2, "abcde", 0, 1);
+ test("abcde", 4, 2, "abcde", 1, 4);
+ test("abcde", 4, 2, "abcde", 2, 4);
+ test("abcde", 4, 2, "abcde", 4, 4);
+ test("abcde", 4, 2, "abcde", 5, 4);
+ test("abcde", 4, 2, "abcdefghij", 0, 1);
+ test("abcde", 4, 2, "abcdefghij", 1, 4);
+ test("abcde", 4, 2, "abcdefghij", 5, 4);
+ test("abcde", 4, 2, "abcdefghij", 9, 4);
+ test("abcde", 4, 2, "abcdefghij", 10, 4);
+ test("abcde", 4, 2, "abcdefghijklmnopqrst", 0, 1);
+ test("abcde", 4, 2, "abcdefghijklmnopqrst", 1, 4);
+ test("abcde", 4, 2, "abcdefghijklmnopqrst", 10, 4);
+ test("abcde", 4, 2, "abcdefghijklmnopqrst", 19, 4);
+ test("abcde", 4, 2, "abcdefghijklmnopqrst", 20, 4);
+ test("abcde", 5, 0, "", 0, 0);
+ test("abcde", 5, 0, "abcde", 0, 0);
+ test("abcde", 5, 0, "abcde", 1, -1);
+ test("abcde", 5, 0, "abcde", 2, -2);
+ test("abcde", 5, 0, "abcde", 4, -4);
+ test("abcde", 5, 0, "abcde", 5, -5);
+ test("abcde", 5, 0, "abcdefghij", 0, 0);
+ test("abcde", 5, 0, "abcdefghij", 1, -1);
+ test("abcde", 5, 0, "abcdefghij", 5, -5);
+ test("abcde", 5, 0, "abcdefghij", 9, -9);
+ test("abcde", 5, 0, "abcdefghij", 10, -10);
+ test("abcde", 5, 0, "abcdefghijklmnopqrst", 0, 0);
+ test("abcde", 5, 0, "abcdefghijklmnopqrst", 1, -1);
+ test("abcde", 5, 0, "abcdefghijklmnopqrst", 10, -10);
+ test("abcde", 5, 0, "abcdefghijklmnopqrst", 19, -19);
+ test("abcde", 5, 0, "abcdefghijklmnopqrst", 20, -20);
+ test("abcde", 5, 1, "", 0, 0);
+ test("abcde", 5, 1, "abcde", 0, 0);
+ test("abcde", 5, 1, "abcde", 1, -1);
+ test("abcde", 5, 1, "abcde", 2, -2);
+ test("abcde", 5, 1, "abcde", 4, -4);
+ test("abcde", 5, 1, "abcde", 5, -5);
+ test("abcde", 5, 1, "abcdefghij", 0, 0);
+ test("abcde", 5, 1, "abcdefghij", 1, -1);
+ test("abcde", 5, 1, "abcdefghij", 5, -5);
+ test("abcde", 5, 1, "abcdefghij", 9, -9);
+ test("abcde", 5, 1, "abcdefghij", 10, -10);
+ test("abcde", 5, 1, "abcdefghijklmnopqrst", 0, 0);
+ test("abcde", 5, 1, "abcdefghijklmnopqrst", 1, -1);
+ test("abcde", 5, 1, "abcdefghijklmnopqrst", 10, -10);
+ test("abcde", 5, 1, "abcdefghijklmnopqrst", 19, -19);
+ test("abcde", 5, 1, "abcdefghijklmnopqrst", 20, -20);
}
-
-void test4()
-{
- test("abcde", 6, 0, "", 0, 0);
- test("abcde", 6, 0, "abcde", 0, 0);
- test("abcde", 6, 0, "abcde", 1, 0);
- test("abcde", 6, 0, "abcde", 2, 0);
- test("abcde", 6, 0, "abcde", 4, 0);
- test("abcde", 6, 0, "abcde", 5, 0);
- test("abcde", 6, 0, "abcdefghij", 0, 0);
- test("abcde", 6, 0, "abcdefghij", 1, 0);
- test("abcde", 6, 0, "abcdefghij", 5, 0);
- test("abcde", 6, 0, "abcdefghij", 9, 0);
- test("abcde", 6, 0, "abcdefghij", 10, 0);
- test("abcde", 6, 0, "abcdefghijklmnopqrst", 0, 0);
- test("abcde", 6, 0, "abcdefghijklmnopqrst", 1, 0);
- test("abcde", 6, 0, "abcdefghijklmnopqrst", 10, 0);
- test("abcde", 6, 0, "abcdefghijklmnopqrst", 19, 0);
- test("abcde", 6, 0, "abcdefghijklmnopqrst", 20, 0);
- test("abcdefghij", 0, 0, "", 0, 0);
- test("abcdefghij", 0, 0, "abcde", 0, 0);
- test("abcdefghij", 0, 0, "abcde", 1, -1);
- test("abcdefghij", 0, 0, "abcde", 2, -2);
- test("abcdefghij", 0, 0, "abcde", 4, -4);
- test("abcdefghij", 0, 0, "abcde", 5, -5);
- test("abcdefghij", 0, 0, "abcdefghij", 0, 0);
- test("abcdefghij", 0, 0, "abcdefghij", 1, -1);
- test("abcdefghij", 0, 0, "abcdefghij", 5, -5);
- test("abcdefghij", 0, 0, "abcdefghij", 9, -9);
- test("abcdefghij", 0, 0, "abcdefghij", 10, -10);
- test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 0, 0);
- test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 1, -1);
- test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 10, -10);
- test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 19, -19);
- test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 20, -20);
- test("abcdefghij", 0, 1, "", 0, 1);
- test("abcdefghij", 0, 1, "abcde", 0, 1);
- test("abcdefghij", 0, 1, "abcde", 1, 0);
- test("abcdefghij", 0, 1, "abcde", 2, -1);
- test("abcdefghij", 0, 1, "abcde", 4, -3);
- test("abcdefghij", 0, 1, "abcde", 5, -4);
- test("abcdefghij", 0, 1, "abcdefghij", 0, 1);
- test("abcdefghij", 0, 1, "abcdefghij", 1, 0);
- test("abcdefghij", 0, 1, "abcdefghij", 5, -4);
- test("abcdefghij", 0, 1, "abcdefghij", 9, -8);
- test("abcdefghij", 0, 1, "abcdefghij", 10, -9);
- test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 0, 1);
- test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 1, 0);
- test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 10, -9);
- test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 19, -18);
- test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 20, -19);
- test("abcdefghij", 0, 5, "", 0, 5);
- test("abcdefghij", 0, 5, "abcde", 0, 5);
- test("abcdefghij", 0, 5, "abcde", 1, 4);
- test("abcdefghij", 0, 5, "abcde", 2, 3);
- test("abcdefghij", 0, 5, "abcde", 4, 1);
- test("abcdefghij", 0, 5, "abcde", 5, 0);
- test("abcdefghij", 0, 5, "abcdefghij", 0, 5);
- test("abcdefghij", 0, 5, "abcdefghij", 1, 4);
- test("abcdefghij", 0, 5, "abcdefghij", 5, 0);
- test("abcdefghij", 0, 5, "abcdefghij", 9, -4);
- test("abcdefghij", 0, 5, "abcdefghij", 10, -5);
- test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 0, 5);
- test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 1, 4);
- test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 10, -5);
- test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 19, -14);
- test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 20, -15);
- test("abcdefghij", 0, 9, "", 0, 9);
- test("abcdefghij", 0, 9, "abcde", 0, 9);
- test("abcdefghij", 0, 9, "abcde", 1, 8);
- test("abcdefghij", 0, 9, "abcde", 2, 7);
- test("abcdefghij", 0, 9, "abcde", 4, 5);
- test("abcdefghij", 0, 9, "abcde", 5, 4);
- test("abcdefghij", 0, 9, "abcdefghij", 0, 9);
- test("abcdefghij", 0, 9, "abcdefghij", 1, 8);
- test("abcdefghij", 0, 9, "abcdefghij", 5, 4);
- test("abcdefghij", 0, 9, "abcdefghij", 9, 0);
- test("abcdefghij", 0, 9, "abcdefghij", 10, -1);
- test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 0, 9);
- test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 1, 8);
- test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 10, -1);
- test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 19, -10);
- test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 20, -11);
- test("abcdefghij", 0, 10, "", 0, 10);
- test("abcdefghij", 0, 10, "abcde", 0, 10);
- test("abcdefghij", 0, 10, "abcde", 1, 9);
- test("abcdefghij", 0, 10, "abcde", 2, 8);
- test("abcdefghij", 0, 10, "abcde", 4, 6);
- test("abcdefghij", 0, 10, "abcde", 5, 5);
- test("abcdefghij", 0, 10, "abcdefghij", 0, 10);
- test("abcdefghij", 0, 10, "abcdefghij", 1, 9);
- test("abcdefghij", 0, 10, "abcdefghij", 5, 5);
- test("abcdefghij", 0, 10, "abcdefghij", 9, 1);
- test("abcdefghij", 0, 10, "abcdefghij", 10, 0);
- test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 0, 10);
- test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 1, 9);
- test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 10, 0);
- test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 19, -9);
- test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 20, -10);
- test("abcdefghij", 0, 11, "", 0, 10);
- test("abcdefghij", 0, 11, "abcde", 0, 10);
- test("abcdefghij", 0, 11, "abcde", 1, 9);
- test("abcdefghij", 0, 11, "abcde", 2, 8);
+void test4() {
+ test("abcde", 6, 0, "", 0, 0);
+ test("abcde", 6, 0, "abcde", 0, 0);
+ test("abcde", 6, 0, "abcde", 1, 0);
+ test("abcde", 6, 0, "abcde", 2, 0);
+ test("abcde", 6, 0, "abcde", 4, 0);
+ test("abcde", 6, 0, "abcde", 5, 0);
+ test("abcde", 6, 0, "abcdefghij", 0, 0);
+ test("abcde", 6, 0, "abcdefghij", 1, 0);
+ test("abcde", 6, 0, "abcdefghij", 5, 0);
+ test("abcde", 6, 0, "abcdefghij", 9, 0);
+ test("abcde", 6, 0, "abcdefghij", 10, 0);
+ test("abcde", 6, 0, "abcdefghijklmnopqrst", 0, 0);
+ test("abcde", 6, 0, "abcdefghijklmnopqrst", 1, 0);
+ test("abcde", 6, 0, "abcdefghijklmnopqrst", 10, 0);
+ test("abcde", 6, 0, "abcdefghijklmnopqrst", 19, 0);
+ test("abcde", 6, 0, "abcdefghijklmnopqrst", 20, 0);
+ test("abcdefghij", 0, 0, "", 0, 0);
+ test("abcdefghij", 0, 0, "abcde", 0, 0);
+ test("abcdefghij", 0, 0, "abcde", 1, -1);
+ test("abcdefghij", 0, 0, "abcde", 2, -2);
+ test("abcdefghij", 0, 0, "abcde", 4, -4);
+ test("abcdefghij", 0, 0, "abcde", 5, -5);
+ test("abcdefghij", 0, 0, "abcdefghij", 0, 0);
+ test("abcdefghij", 0, 0, "abcdefghij", 1, -1);
+ test("abcdefghij", 0, 0, "abcdefghij", 5, -5);
+ test("abcdefghij", 0, 0, "abcdefghij", 9, -9);
+ test("abcdefghij", 0, 0, "abcdefghij", 10, -10);
+ test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 0, 0);
+ test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 1, -1);
+ test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 10, -10);
+ test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 19, -19);
+ test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 20, -20);
+ test("abcdefghij", 0, 1, "", 0, 1);
+ test("abcdefghij", 0, 1, "abcde", 0, 1);
+ test("abcdefghij", 0, 1, "abcde", 1, 0);
+ test("abcdefghij", 0, 1, "abcde", 2, -1);
+ test("abcdefghij", 0, 1, "abcde", 4, -3);
+ test("abcdefghij", 0, 1, "abcde", 5, -4);
+ test("abcdefghij", 0, 1, "abcdefghij", 0, 1);
+ test("abcdefghij", 0, 1, "abcdefghij", 1, 0);
+ test("abcdefghij", 0, 1, "abcdefghij", 5, -4);
+ test("abcdefghij", 0, 1, "abcdefghij", 9, -8);
+ test("abcdefghij", 0, 1, "abcdefghij", 10, -9);
+ test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 0, 1);
+ test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 1, 0);
+ test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 10, -9);
+ test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 19, -18);
+ test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 20, -19);
+ test("abcdefghij", 0, 5, "", 0, 5);
+ test("abcdefghij", 0, 5, "abcde", 0, 5);
+ test("abcdefghij", 0, 5, "abcde", 1, 4);
+ test("abcdefghij", 0, 5, "abcde", 2, 3);
+ test("abcdefghij", 0, 5, "abcde", 4, 1);
+ test("abcdefghij", 0, 5, "abcde", 5, 0);
+ test("abcdefghij", 0, 5, "abcdefghij", 0, 5);
+ test("abcdefghij", 0, 5, "abcdefghij", 1, 4);
+ test("abcdefghij", 0, 5, "abcdefghij", 5, 0);
+ test("abcdefghij", 0, 5, "abcdefghij", 9, -4);
+ test("abcdefghij", 0, 5, "abcdefghij", 10, -5);
+ test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 0, 5);
+ test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 1, 4);
+ test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 10, -5);
+ test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 19, -14);
+ test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 20, -15);
+ test("abcdefghij", 0, 9, "", 0, 9);
+ test("abcdefghij", 0, 9, "abcde", 0, 9);
+ test("abcdefghij", 0, 9, "abcde", 1, 8);
+ test("abcdefghij", 0, 9, "abcde", 2, 7);
+ test("abcdefghij", 0, 9, "abcde", 4, 5);
+ test("abcdefghij", 0, 9, "abcde", 5, 4);
+ test("abcdefghij", 0, 9, "abcdefghij", 0, 9);
+ test("abcdefghij", 0, 9, "abcdefghij", 1, 8);
+ test("abcdefghij", 0, 9, "abcdefghij", 5, 4);
+ test("abcdefghij", 0, 9, "abcdefghij", 9, 0);
+ test("abcdefghij", 0, 9, "abcdefghij", 10, -1);
+ test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 0, 9);
+ test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 1, 8);
+ test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 10, -1);
+ test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 19, -10);
+ test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 20, -11);
+ test("abcdefghij", 0, 10, "", 0, 10);
+ test("abcdefghij", 0, 10, "abcde", 0, 10);
+ test("abcdefghij", 0, 10, "abcde", 1, 9);
+ test("abcdefghij", 0, 10, "abcde", 2, 8);
+ test("abcdefghij", 0, 10, "abcde", 4, 6);
+ test("abcdefghij", 0, 10, "abcde", 5, 5);
+ test("abcdefghij", 0, 10, "abcdefghij", 0, 10);
+ test("abcdefghij", 0, 10, "abcdefghij", 1, 9);
+ test("abcdefghij", 0, 10, "abcdefghij", 5, 5);
+ test("abcdefghij", 0, 10, "abcdefghij", 9, 1);
+ test("abcdefghij", 0, 10, "abcdefghij", 10, 0);
+ test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 0, 10);
+ test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 1, 9);
+ test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 10, 0);
+ test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 19, -9);
+ test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 20, -10);
+ test("abcdefghij", 0, 11, "", 0, 10);
+ test("abcdefghij", 0, 11, "abcde", 0, 10);
+ test("abcdefghij", 0, 11, "abcde", 1, 9);
+ test("abcdefghij", 0, 11, "abcde", 2, 8);
}
-
-void test5()
-{
- test("abcdefghij", 0, 11, "abcde", 4, 6);
- test("abcdefghij", 0, 11, "abcde", 5, 5);
- test("abcdefghij", 0, 11, "abcdefghij", 0, 10);
- test("abcdefghij", 0, 11, "abcdefghij", 1, 9);
- test("abcdefghij", 0, 11, "abcdefghij", 5, 5);
- test("abcdefghij", 0, 11, "abcdefghij", 9, 1);
- test("abcdefghij", 0, 11, "abcdefghij", 10, 0);
- test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 0, 10);
- test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 1, 9);
- test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 10, 0);
- test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 19, -9);
- test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 20, -10);
- test("abcdefghij", 1, 0, "", 0, 0);
- test("abcdefghij", 1, 0, "abcde", 0, 0);
- test("abcdefghij", 1, 0, "abcde", 1, -1);
- test("abcdefghij", 1, 0, "abcde", 2, -2);
- test("abcdefghij", 1, 0, "abcde", 4, -4);
- test("abcdefghij", 1, 0, "abcde", 5, -5);
- test("abcdefghij", 1, 0, "abcdefghij", 0, 0);
- test("abcdefghij", 1, 0, "abcdefghij", 1, -1);
- test("abcdefghij", 1, 0, "abcdefghij", 5, -5);
- test("abcdefghij", 1, 0, "abcdefghij", 9, -9);
- test("abcdefghij", 1, 0, "abcdefghij", 10, -10);
- test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 0, 0);
- test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 1, -1);
- test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 10, -10);
- test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 19, -19);
- test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 20, -20);
- test("abcdefghij", 1, 1, "", 0, 1);
- test("abcdefghij", 1, 1, "abcde", 0, 1);
- test("abcdefghij", 1, 1, "abcde", 1, 1);
- test("abcdefghij", 1, 1, "abcde", 2, 1);
- test("abcdefghij", 1, 1, "abcde", 4, 1);
- test("abcdefghij", 1, 1, "abcde", 5, 1);
- test("abcdefghij", 1, 1, "abcdefghij", 0, 1);
- test("abcdefghij", 1, 1, "abcdefghij", 1, 1);
- test("abcdefghij", 1, 1, "abcdefghij", 5, 1);
- test("abcdefghij", 1, 1, "abcdefghij", 9, 1);
- test("abcdefghij", 1, 1, "abcdefghij", 10, 1);
- test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 0, 1);
- test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 1, 1);
- test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 10, 1);
- test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 19, 1);
- test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 20, 1);
- test("abcdefghij", 1, 4, "", 0, 4);
- test("abcdefghij", 1, 4, "abcde", 0, 4);
- test("abcdefghij", 1, 4, "abcde", 1, 1);
- test("abcdefghij", 1, 4, "abcde", 2, 1);
- test("abcdefghij", 1, 4, "abcde", 4, 1);
- test("abcdefghij", 1, 4, "abcde", 5, 1);
- test("abcdefghij", 1, 4, "abcdefghij", 0, 4);
- test("abcdefghij", 1, 4, "abcdefghij", 1, 1);
- test("abcdefghij", 1, 4, "abcdefghij", 5, 1);
- test("abcdefghij", 1, 4, "abcdefghij", 9, 1);
- test("abcdefghij", 1, 4, "abcdefghij", 10, 1);
- test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 0, 4);
- test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 1, 1);
- test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 10, 1);
- test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 19, 1);
- test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 20, 1);
- test("abcdefghij", 1, 8, "", 0, 8);
- test("abcdefghij", 1, 8, "abcde", 0, 8);
- test("abcdefghij", 1, 8, "abcde", 1, 1);
- test("abcdefghij", 1, 8, "abcde", 2, 1);
- test("abcdefghij", 1, 8, "abcde", 4, 1);
- test("abcdefghij", 1, 8, "abcde", 5, 1);
- test("abcdefghij", 1, 8, "abcdefghij", 0, 8);
- test("abcdefghij", 1, 8, "abcdefghij", 1, 1);
- test("abcdefghij", 1, 8, "abcdefghij", 5, 1);
- test("abcdefghij", 1, 8, "abcdefghij", 9, 1);
- test("abcdefghij", 1, 8, "abcdefghij", 10, 1);
- test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 0, 8);
- test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 1, 1);
- test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 10, 1);
- test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 19, 1);
- test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 20, 1);
- test("abcdefghij", 1, 9, "", 0, 9);
- test("abcdefghij", 1, 9, "abcde", 0, 9);
- test("abcdefghij", 1, 9, "abcde", 1, 1);
- test("abcdefghij", 1, 9, "abcde", 2, 1);
- test("abcdefghij", 1, 9, "abcde", 4, 1);
- test("abcdefghij", 1, 9, "abcde", 5, 1);
- test("abcdefghij", 1, 9, "abcdefghij", 0, 9);
- test("abcdefghij", 1, 9, "abcdefghij", 1, 1);
- test("abcdefghij", 1, 9, "abcdefghij", 5, 1);
- test("abcdefghij", 1, 9, "abcdefghij", 9, 1);
- test("abcdefghij", 1, 9, "abcdefghij", 10, 1);
- test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 0, 9);
- test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 1, 1);
- test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 10, 1);
- test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 19, 1);
- test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 20, 1);
- test("abcdefghij", 1, 10, "", 0, 9);
- test("abcdefghij", 1, 10, "abcde", 0, 9);
- test("abcdefghij", 1, 10, "abcde", 1, 1);
- test("abcdefghij", 1, 10, "abcde", 2, 1);
- test("abcdefghij", 1, 10, "abcde", 4, 1);
- test("abcdefghij", 1, 10, "abcde", 5, 1);
- test("abcdefghij", 1, 10, "abcdefghij", 0, 9);
- test("abcdefghij", 1, 10, "abcdefghij", 1, 1);
+void test5() {
+ test("abcdefghij", 0, 11, "abcde", 4, 6);
+ test("abcdefghij", 0, 11, "abcde", 5, 5);
+ test("abcdefghij", 0, 11, "abcdefghij", 0, 10);
+ test("abcdefghij", 0, 11, "abcdefghij", 1, 9);
+ test("abcdefghij", 0, 11, "abcdefghij", 5, 5);
+ test("abcdefghij", 0, 11, "abcdefghij", 9, 1);
+ test("abcdefghij", 0, 11, "abcdefghij", 10, 0);
+ test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 0, 10);
+ test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 1, 9);
+ test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 10, 0);
+ test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 19, -9);
+ test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 20, -10);
+ test("abcdefghij", 1, 0, "", 0, 0);
+ test("abcdefghij", 1, 0, "abcde", 0, 0);
+ test("abcdefghij", 1, 0, "abcde", 1, -1);
+ test("abcdefghij", 1, 0, "abcde", 2, -2);
+ test("abcdefghij", 1, 0, "abcde", 4, -4);
+ test("abcdefghij", 1, 0, "abcde", 5, -5);
+ test("abcdefghij", 1, 0, "abcdefghij", 0, 0);
+ test("abcdefghij", 1, 0, "abcdefghij", 1, -1);
+ test("abcdefghij", 1, 0, "abcdefghij", 5, -5);
+ test("abcdefghij", 1, 0, "abcdefghij", 9, -9);
+ test("abcdefghij", 1, 0, "abcdefghij", 10, -10);
+ test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 0, 0);
+ test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 1, -1);
+ test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 10, -10);
+ test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 19, -19);
+ test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 20, -20);
+ test("abcdefghij", 1, 1, "", 0, 1);
+ test("abcdefghij", 1, 1, "abcde", 0, 1);
+ test("abcdefghij", 1, 1, "abcde", 1, 1);
+ test("abcdefghij", 1, 1, "abcde", 2, 1);
+ test("abcdefghij", 1, 1, "abcde", 4, 1);
+ test("abcdefghij", 1, 1, "abcde", 5, 1);
+ test("abcdefghij", 1, 1, "abcdefghij", 0, 1);
+ test("abcdefghij", 1, 1, "abcdefghij", 1, 1);
+ test("abcdefghij", 1, 1, "abcdefghij", 5, 1);
+ test("abcdefghij", 1, 1, "abcdefghij", 9, 1);
+ test("abcdefghij", 1, 1, "abcdefghij", 10, 1);
+ test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 0, 1);
+ test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 1, 1);
+ test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 10, 1);
+ test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 19, 1);
+ test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 20, 1);
+ test("abcdefghij", 1, 4, "", 0, 4);
+ test("abcdefghij", 1, 4, "abcde", 0, 4);
+ test("abcdefghij", 1, 4, "abcde", 1, 1);
+ test("abcdefghij", 1, 4, "abcde", 2, 1);
+ test("abcdefghij", 1, 4, "abcde", 4, 1);
+ test("abcdefghij", 1, 4, "abcde", 5, 1);
+ test("abcdefghij", 1, 4, "abcdefghij", 0, 4);
+ test("abcdefghij", 1, 4, "abcdefghij", 1, 1);
+ test("abcdefghij", 1, 4, "abcdefghij", 5, 1);
+ test("abcdefghij", 1, 4, "abcdefghij", 9, 1);
+ test("abcdefghij", 1, 4, "abcdefghij", 10, 1);
+ test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 0, 4);
+ test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 1, 1);
+ test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 10, 1);
+ test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 19, 1);
+ test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 20, 1);
+ test("abcdefghij", 1, 8, "", 0, 8);
+ test("abcdefghij", 1, 8, "abcde", 0, 8);
+ test("abcdefghij", 1, 8, "abcde", 1, 1);
+ test("abcdefghij", 1, 8, "abcde", 2, 1);
+ test("abcdefghij", 1, 8, "abcde", 4, 1);
+ test("abcdefghij", 1, 8, "abcde", 5, 1);
+ test("abcdefghij", 1, 8, "abcdefghij", 0, 8);
+ test("abcdefghij", 1, 8, "abcdefghij", 1, 1);
+ test("abcdefghij", 1, 8, "abcdefghij", 5, 1);
+ test("abcdefghij", 1, 8, "abcdefghij", 9, 1);
+ test("abcdefghij", 1, 8, "abcdefghij", 10, 1);
+ test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 0, 8);
+ test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 1, 1);
+ test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 10, 1);
+ test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 19, 1);
+ test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 20, 1);
+ test("abcdefghij", 1, 9, "", 0, 9);
+ test("abcdefghij", 1, 9, "abcde", 0, 9);
+ test("abcdefghij", 1, 9, "abcde", 1, 1);
+ test("abcdefghij", 1, 9, "abcde", 2, 1);
+ test("abcdefghij", 1, 9, "abcde", 4, 1);
+ test("abcdefghij", 1, 9, "abcde", 5, 1);
+ test("abcdefghij", 1, 9, "abcdefghij", 0, 9);
+ test("abcdefghij", 1, 9, "abcdefghij", 1, 1);
+ test("abcdefghij", 1, 9, "abcdefghij", 5, 1);
+ test("abcdefghij", 1, 9, "abcdefghij", 9, 1);
+ test("abcdefghij", 1, 9, "abcdefghij", 10, 1);
+ test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 0, 9);
+ test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 1, 1);
+ test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 10, 1);
+ test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 19, 1);
+ test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 20, 1);
+ test("abcdefghij", 1, 10, "", 0, 9);
+ test("abcdefghij", 1, 10, "abcde", 0, 9);
+ test("abcdefghij", 1, 10, "abcde", 1, 1);
+ test("abcdefghij", 1, 10, "abcde", 2, 1);
+ test("abcdefghij", 1, 10, "abcde", 4, 1);
+ test("abcdefghij", 1, 10, "abcde", 5, 1);
+ test("abcdefghij", 1, 10, "abcdefghij", 0, 9);
+ test("abcdefghij", 1, 10, "abcdefghij", 1, 1);
}
-
-void test6()
-{
- test("abcdefghij", 1, 10, "abcdefghij", 5, 1);
- test("abcdefghij", 1, 10, "abcdefghij", 9, 1);
- test("abcdefghij", 1, 10, "abcdefghij", 10, 1);
- test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 0, 9);
- test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 1, 1);
- test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 10, 1);
- test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 19, 1);
- test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 20, 1);
- test("abcdefghij", 5, 0, "", 0, 0);
- test("abcdefghij", 5, 0, "abcde", 0, 0);
- test("abcdefghij", 5, 0, "abcde", 1, -1);
- test("abcdefghij", 5, 0, "abcde", 2, -2);
- test("abcdefghij", 5, 0, "abcde", 4, -4);
- test("abcdefghij", 5, 0, "abcde", 5, -5);
- test("abcdefghij", 5, 0, "abcdefghij", 0, 0);
- test("abcdefghij", 5, 0, "abcdefghij", 1, -1);
- test("abcdefghij", 5, 0, "abcdefghij", 5, -5);
- test("abcdefghij", 5, 0, "abcdefghij", 9, -9);
- test("abcdefghij", 5, 0, "abcdefghij", 10, -10);
- test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 0, 0);
- test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 1, -1);
- test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 10, -10);
- test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 19, -19);
- test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 20, -20);
- test("abcdefghij", 5, 1, "", 0, 1);
- test("abcdefghij", 5, 1, "abcde", 0, 1);
- test("abcdefghij", 5, 1, "abcde", 1, 5);
- test("abcdefghij", 5, 1, "abcde", 2, 5);
- test("abcdefghij", 5, 1, "abcde", 4, 5);
- test("abcdefghij", 5, 1, "abcde", 5, 5);
- test("abcdefghij", 5, 1, "abcdefghij", 0, 1);
- test("abcdefghij", 5, 1, "abcdefghij", 1, 5);
- test("abcdefghij", 5, 1, "abcdefghij", 5, 5);
- test("abcdefghij", 5, 1, "abcdefghij", 9, 5);
- test("abcdefghij", 5, 1, "abcdefghij", 10, 5);
- test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 0, 1);
- test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 1, 5);
- test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 10, 5);
- test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 19, 5);
- test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 20, 5);
- test("abcdefghij", 5, 2, "", 0, 2);
- test("abcdefghij", 5, 2, "abcde", 0, 2);
- test("abcdefghij", 5, 2, "abcde", 1, 5);
- test("abcdefghij", 5, 2, "abcde", 2, 5);
- test("abcdefghij", 5, 2, "abcde", 4, 5);
- test("abcdefghij", 5, 2, "abcde", 5, 5);
- test("abcdefghij", 5, 2, "abcdefghij", 0, 2);
- test("abcdefghij", 5, 2, "abcdefghij", 1, 5);
- test("abcdefghij", 5, 2, "abcdefghij", 5, 5);
- test("abcdefghij", 5, 2, "abcdefghij", 9, 5);
- test("abcdefghij", 5, 2, "abcdefghij", 10, 5);
- test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 0, 2);
- test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 1, 5);
- test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 10, 5);
- test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 19, 5);
- test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 20, 5);
- test("abcdefghij", 5, 4, "", 0, 4);
- test("abcdefghij", 5, 4, "abcde", 0, 4);
- test("abcdefghij", 5, 4, "abcde", 1, 5);
- test("abcdefghij", 5, 4, "abcde", 2, 5);
- test("abcdefghij", 5, 4, "abcde", 4, 5);
- test("abcdefghij", 5, 4, "abcde", 5, 5);
- test("abcdefghij", 5, 4, "abcdefghij", 0, 4);
- test("abcdefghij", 5, 4, "abcdefghij", 1, 5);
- test("abcdefghij", 5, 4, "abcdefghij", 5, 5);
- test("abcdefghij", 5, 4, "abcdefghij", 9, 5);
- test("abcdefghij", 5, 4, "abcdefghij", 10, 5);
- test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 0, 4);
- test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 1, 5);
- test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 10, 5);
- test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 19, 5);
- test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 20, 5);
- test("abcdefghij", 5, 5, "", 0, 5);
- test("abcdefghij", 5, 5, "abcde", 0, 5);
- test("abcdefghij", 5, 5, "abcde", 1, 5);
- test("abcdefghij", 5, 5, "abcde", 2, 5);
- test("abcdefghij", 5, 5, "abcde", 4, 5);
- test("abcdefghij", 5, 5, "abcde", 5, 5);
- test("abcdefghij", 5, 5, "abcdefghij", 0, 5);
- test("abcdefghij", 5, 5, "abcdefghij", 1, 5);
- test("abcdefghij", 5, 5, "abcdefghij", 5, 5);
- test("abcdefghij", 5, 5, "abcdefghij", 9, 5);
- test("abcdefghij", 5, 5, "abcdefghij", 10, 5);
- test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 0, 5);
- test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 1, 5);
- test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 10, 5);
- test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 19, 5);
- test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 20, 5);
- test("abcdefghij", 5, 6, "", 0, 5);
- test("abcdefghij", 5, 6, "abcde", 0, 5);
- test("abcdefghij", 5, 6, "abcde", 1, 5);
- test("abcdefghij", 5, 6, "abcde", 2, 5);
- test("abcdefghij", 5, 6, "abcde", 4, 5);
- test("abcdefghij", 5, 6, "abcde", 5, 5);
- test("abcdefghij", 5, 6, "abcdefghij", 0, 5);
- test("abcdefghij", 5, 6, "abcdefghij", 1, 5);
- test("abcdefghij", 5, 6, "abcdefghij", 5, 5);
- test("abcdefghij", 5, 6, "abcdefghij", 9, 5);
- test("abcdefghij", 5, 6, "abcdefghij", 10, 5);
- test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 0, 5);
+void test6() {
+ test("abcdefghij", 1, 10, "abcdefghij", 5, 1);
+ test("abcdefghij", 1, 10, "abcdefghij", 9, 1);
+ test("abcdefghij", 1, 10, "abcdefghij", 10, 1);
+ test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 0, 9);
+ test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 1, 1);
+ test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 10, 1);
+ test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 19, 1);
+ test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 20, 1);
+ test("abcdefghij", 5, 0, "", 0, 0);
+ test("abcdefghij", 5, 0, "abcde", 0, 0);
+ test("abcdefghij", 5, 0, "abcde", 1, -1);
+ test("abcdefghij", 5, 0, "abcde", 2, -2);
+ test("abcdefghij", 5, 0, "abcde", 4, -4);
+ test("abcdefghij", 5, 0, "abcde", 5, -5);
+ test("abcdefghij", 5, 0, "abcdefghij", 0, 0);
+ test("abcdefghij", 5, 0, "abcdefghij", 1, -1);
+ test("abcdefghij", 5, 0, "abcdefghij", 5, -5);
+ test("abcdefghij", 5, 0, "abcdefghij", 9, -9);
+ test("abcdefghij", 5, 0, "abcdefghij", 10, -10);
+ test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 0, 0);
+ test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 1, -1);
+ test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 10, -10);
+ test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 19, -19);
+ test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 20, -20);
+ test("abcdefghij", 5, 1, "", 0, 1);
+ test("abcdefghij", 5, 1, "abcde", 0, 1);
+ test("abcdefghij", 5, 1, "abcde", 1, 5);
+ test("abcdefghij", 5, 1, "abcde", 2, 5);
+ test("abcdefghij", 5, 1, "abcde", 4, 5);
+ test("abcdefghij", 5, 1, "abcde", 5, 5);
+ test("abcdefghij", 5, 1, "abcdefghij", 0, 1);
+ test("abcdefghij", 5, 1, "abcdefghij", 1, 5);
+ test("abcdefghij", 5, 1, "abcdefghij", 5, 5);
+ test("abcdefghij", 5, 1, "abcdefghij", 9, 5);
+ test("abcdefghij", 5, 1, "abcdefghij", 10, 5);
+ test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 0, 1);
+ test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 1, 5);
+ test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 10, 5);
+ test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 19, 5);
+ test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 20, 5);
+ test("abcdefghij", 5, 2, "", 0, 2);
+ test("abcdefghij", 5, 2, "abcde", 0, 2);
+ test("abcdefghij", 5, 2, "abcde", 1, 5);
+ test("abcdefghij", 5, 2, "abcde", 2, 5);
+ test("abcdefghij", 5, 2, "abcde", 4, 5);
+ test("abcdefghij", 5, 2, "abcde", 5, 5);
+ test("abcdefghij", 5, 2, "abcdefghij", 0, 2);
+ test("abcdefghij", 5, 2, "abcdefghij", 1, 5);
+ test("abcdefghij", 5, 2, "abcdefghij", 5, 5);
+ test("abcdefghij", 5, 2, "abcdefghij", 9, 5);
+ test("abcdefghij", 5, 2, "abcdefghij", 10, 5);
+ test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 0, 2);
+ test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 1, 5);
+ test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 10, 5);
+ test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 19, 5);
+ test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 20, 5);
+ test("abcdefghij", 5, 4, "", 0, 4);
+ test("abcdefghij", 5, 4, "abcde", 0, 4);
+ test("abcdefghij", 5, 4, "abcde", 1, 5);
+ test("abcdefghij", 5, 4, "abcde", 2, 5);
+ test("abcdefghij", 5, 4, "abcde", 4, 5);
+ test("abcdefghij", 5, 4, "abcde", 5, 5);
+ test("abcdefghij", 5, 4, "abcdefghij", 0, 4);
+ test("abcdefghij", 5, 4, "abcdefghij", 1, 5);
+ test("abcdefghij", 5, 4, "abcdefghij", 5, 5);
+ test("abcdefghij", 5, 4, "abcdefghij", 9, 5);
+ test("abcdefghij", 5, 4, "abcdefghij", 10, 5);
+ test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 0, 4);
+ test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 1, 5);
+ test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 10, 5);
+ test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 19, 5);
+ test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 20, 5);
+ test("abcdefghij", 5, 5, "", 0, 5);
+ test("abcdefghij", 5, 5, "abcde", 0, 5);
+ test("abcdefghij", 5, 5, "abcde", 1, 5);
+ test("abcdefghij", 5, 5, "abcde", 2, 5);
+ test("abcdefghij", 5, 5, "abcde", 4, 5);
+ test("abcdefghij", 5, 5, "abcde", 5, 5);
+ test("abcdefghij", 5, 5, "abcdefghij", 0, 5);
+ test("abcdefghij", 5, 5, "abcdefghij", 1, 5);
+ test("abcdefghij", 5, 5, "abcdefghij", 5, 5);
+ test("abcdefghij", 5, 5, "abcdefghij", 9, 5);
+ test("abcdefghij", 5, 5, "abcdefghij", 10, 5);
+ test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 0, 5);
+ test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 1, 5);
+ test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 10, 5);
+ test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 19, 5);
+ test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 20, 5);
+ test("abcdefghij", 5, 6, "", 0, 5);
+ test("abcdefghij", 5, 6, "abcde", 0, 5);
+ test("abcdefghij", 5, 6, "abcde", 1, 5);
+ test("abcdefghij", 5, 6, "abcde", 2, 5);
+ test("abcdefghij", 5, 6, "abcde", 4, 5);
+ test("abcdefghij", 5, 6, "abcde", 5, 5);
+ test("abcdefghij", 5, 6, "abcdefghij", 0, 5);
+ test("abcdefghij", 5, 6, "abcdefghij", 1, 5);
+ test("abcdefghij", 5, 6, "abcdefghij", 5, 5);
+ test("abcdefghij", 5, 6, "abcdefghij", 9, 5);
+ test("abcdefghij", 5, 6, "abcdefghij", 10, 5);
+ test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 0, 5);
}
-
-void test7()
-{
- test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 1, 5);
- test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 10, 5);
- test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 19, 5);
- test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 20, 5);
- test("abcdefghij", 9, 0, "", 0, 0);
- test("abcdefghij", 9, 0, "abcde", 0, 0);
- test("abcdefghij", 9, 0, "abcde", 1, -1);
- test("abcdefghij", 9, 0, "abcde", 2, -2);
- test("abcdefghij", 9, 0, "abcde", 4, -4);
- test("abcdefghij", 9, 0, "abcde", 5, -5);
- test("abcdefghij", 9, 0, "abcdefghij", 0, 0);
- test("abcdefghij", 9, 0, "abcdefghij", 1, -1);
- test("abcdefghij", 9, 0, "abcdefghij", 5, -5);
- test("abcdefghij", 9, 0, "abcdefghij", 9, -9);
- test("abcdefghij", 9, 0, "abcdefghij", 10, -10);
- test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 0, 0);
- test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 1, -1);
- test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 10, -10);
- test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 19, -19);
- test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 20, -20);
- test("abcdefghij", 9, 1, "", 0, 1);
- test("abcdefghij", 9, 1, "abcde", 0, 1);
- test("abcdefghij", 9, 1, "abcde", 1, 9);
- test("abcdefghij", 9, 1, "abcde", 2, 9);
- test("abcdefghij", 9, 1, "abcde", 4, 9);
- test("abcdefghij", 9, 1, "abcde", 5, 9);
- test("abcdefghij", 9, 1, "abcdefghij", 0, 1);
- test("abcdefghij", 9, 1, "abcdefghij", 1, 9);
- test("abcdefghij", 9, 1, "abcdefghij", 5, 9);
- test("abcdefghij", 9, 1, "abcdefghij", 9, 9);
- test("abcdefghij", 9, 1, "abcdefghij", 10, 9);
- test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 0, 1);
- test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 1, 9);
- test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 10, 9);
- test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 19, 9);
- test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 20, 9);
- test("abcdefghij", 9, 2, "", 0, 1);
- test("abcdefghij", 9, 2, "abcde", 0, 1);
- test("abcdefghij", 9, 2, "abcde", 1, 9);
- test("abcdefghij", 9, 2, "abcde", 2, 9);
- test("abcdefghij", 9, 2, "abcde", 4, 9);
- test("abcdefghij", 9, 2, "abcde", 5, 9);
- test("abcdefghij", 9, 2, "abcdefghij", 0, 1);
- test("abcdefghij", 9, 2, "abcdefghij", 1, 9);
- test("abcdefghij", 9, 2, "abcdefghij", 5, 9);
- test("abcdefghij", 9, 2, "abcdefghij", 9, 9);
- test("abcdefghij", 9, 2, "abcdefghij", 10, 9);
- test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 0, 1);
- test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 1, 9);
- test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 10, 9);
- test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 19, 9);
- test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 20, 9);
- test("abcdefghij", 10, 0, "", 0, 0);
- test("abcdefghij", 10, 0, "abcde", 0, 0);
- test("abcdefghij", 10, 0, "abcde", 1, -1);
- test("abcdefghij", 10, 0, "abcde", 2, -2);
- test("abcdefghij", 10, 0, "abcde", 4, -4);
- test("abcdefghij", 10, 0, "abcde", 5, -5);
- test("abcdefghij", 10, 0, "abcdefghij", 0, 0);
- test("abcdefghij", 10, 0, "abcdefghij", 1, -1);
- test("abcdefghij", 10, 0, "abcdefghij", 5, -5);
- test("abcdefghij", 10, 0, "abcdefghij", 9, -9);
- test("abcdefghij", 10, 0, "abcdefghij", 10, -10);
- test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 0, 0);
- test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 1, -1);
- test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 10, -10);
- test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 19, -19);
- test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 20, -20);
- test("abcdefghij", 10, 1, "", 0, 0);
- test("abcdefghij", 10, 1, "abcde", 0, 0);
- test("abcdefghij", 10, 1, "abcde", 1, -1);
- test("abcdefghij", 10, 1, "abcde", 2, -2);
- test("abcdefghij", 10, 1, "abcde", 4, -4);
- test("abcdefghij", 10, 1, "abcde", 5, -5);
- test("abcdefghij", 10, 1, "abcdefghij", 0, 0);
- test("abcdefghij", 10, 1, "abcdefghij", 1, -1);
- test("abcdefghij", 10, 1, "abcdefghij", 5, -5);
- test("abcdefghij", 10, 1, "abcdefghij", 9, -9);
- test("abcdefghij", 10, 1, "abcdefghij", 10, -10);
- test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 0, 0);
- test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 1, -1);
- test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 10, -10);
- test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 19, -19);
- test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 20, -20);
- test("abcdefghij", 11, 0, "", 0, 0);
- test("abcdefghij", 11, 0, "abcde", 0, 0);
- test("abcdefghij", 11, 0, "abcde", 1, 0);
- test("abcdefghij", 11, 0, "abcde", 2, 0);
- test("abcdefghij", 11, 0, "abcde", 4, 0);
- test("abcdefghij", 11, 0, "abcde", 5, 0);
- test("abcdefghij", 11, 0, "abcdefghij", 0, 0);
- test("abcdefghij", 11, 0, "abcdefghij", 1, 0);
- test("abcdefghij", 11, 0, "abcdefghij", 5, 0);
- test("abcdefghij", 11, 0, "abcdefghij", 9, 0);
- test("abcdefghij", 11, 0, "abcdefghij", 10, 0);
- test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 0, 0);
- test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 1, 0);
- test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 10, 0);
- test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 19, 0);
- test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 20, 0);
+void test7() {
+ test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 1, 5);
+ test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 10, 5);
+ test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 19, 5);
+ test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 20, 5);
+ test("abcdefghij", 9, 0, "", 0, 0);
+ test("abcdefghij", 9, 0, "abcde", 0, 0);
+ test("abcdefghij", 9, 0, "abcde", 1, -1);
+ test("abcdefghij", 9, 0, "abcde", 2, -2);
+ test("abcdefghij", 9, 0, "abcde", 4, -4);
+ test("abcdefghij", 9, 0, "abcde", 5, -5);
+ test("abcdefghij", 9, 0, "abcdefghij", 0, 0);
+ test("abcdefghij", 9, 0, "abcdefghij", 1, -1);
+ test("abcdefghij", 9, 0, "abcdefghij", 5, -5);
+ test("abcdefghij", 9, 0, "abcdefghij", 9, -9);
+ test("abcdefghij", 9, 0, "abcdefghij", 10, -10);
+ test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 0, 0);
+ test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 1, -1);
+ test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 10, -10);
+ test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 19, -19);
+ test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 20, -20);
+ test("abcdefghij", 9, 1, "", 0, 1);
+ test("abcdefghij", 9, 1, "abcde", 0, 1);
+ test("abcdefghij", 9, 1, "abcde", 1, 9);
+ test("abcdefghij", 9, 1, "abcde", 2, 9);
+ test("abcdefghij", 9, 1, "abcde", 4, 9);
+ test("abcdefghij", 9, 1, "abcde", 5, 9);
+ test("abcdefghij", 9, 1, "abcdefghij", 0, 1);
+ test("abcdefghij", 9, 1, "abcdefghij", 1, 9);
+ test("abcdefghij", 9, 1, "abcdefghij", 5, 9);
+ test("abcdefghij", 9, 1, "abcdefghij", 9, 9);
+ test("abcdefghij", 9, 1, "abcdefghij", 10, 9);
+ test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 0, 1);
+ test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 1, 9);
+ test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 10, 9);
+ test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 19, 9);
+ test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 20, 9);
+ test("abcdefghij", 9, 2, "", 0, 1);
+ test("abcdefghij", 9, 2, "abcde", 0, 1);
+ test("abcdefghij", 9, 2, "abcde", 1, 9);
+ test("abcdefghij", 9, 2, "abcde", 2, 9);
+ test("abcdefghij", 9, 2, "abcde", 4, 9);
+ test("abcdefghij", 9, 2, "abcde", 5, 9);
+ test("abcdefghij", 9, 2, "abcdefghij", 0, 1);
+ test("abcdefghij", 9, 2, "abcdefghij", 1, 9);
+ test("abcdefghij", 9, 2, "abcdefghij", 5, 9);
+ test("abcdefghij", 9, 2, "abcdefghij", 9, 9);
+ test("abcdefghij", 9, 2, "abcdefghij", 10, 9);
+ test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 0, 1);
+ test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 1, 9);
+ test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 10, 9);
+ test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 19, 9);
+ test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 20, 9);
+ test("abcdefghij", 10, 0, "", 0, 0);
+ test("abcdefghij", 10, 0, "abcde", 0, 0);
+ test("abcdefghij", 10, 0, "abcde", 1, -1);
+ test("abcdefghij", 10, 0, "abcde", 2, -2);
+ test("abcdefghij", 10, 0, "abcde", 4, -4);
+ test("abcdefghij", 10, 0, "abcde", 5, -5);
+ test("abcdefghij", 10, 0, "abcdefghij", 0, 0);
+ test("abcdefghij", 10, 0, "abcdefghij", 1, -1);
+ test("abcdefghij", 10, 0, "abcdefghij", 5, -5);
+ test("abcdefghij", 10, 0, "abcdefghij", 9, -9);
+ test("abcdefghij", 10, 0, "abcdefghij", 10, -10);
+ test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 0, 0);
+ test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 1, -1);
+ test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 10, -10);
+ test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 19, -19);
+ test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 20, -20);
+ test("abcdefghij", 10, 1, "", 0, 0);
+ test("abcdefghij", 10, 1, "abcde", 0, 0);
+ test("abcdefghij", 10, 1, "abcde", 1, -1);
+ test("abcdefghij", 10, 1, "abcde", 2, -2);
+ test("abcdefghij", 10, 1, "abcde", 4, -4);
+ test("abcdefghij", 10, 1, "abcde", 5, -5);
+ test("abcdefghij", 10, 1, "abcdefghij", 0, 0);
+ test("abcdefghij", 10, 1, "abcdefghij", 1, -1);
+ test("abcdefghij", 10, 1, "abcdefghij", 5, -5);
+ test("abcdefghij", 10, 1, "abcdefghij", 9, -9);
+ test("abcdefghij", 10, 1, "abcdefghij", 10, -10);
+ test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 0, 0);
+ test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 1, -1);
+ test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 10, -10);
+ test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 19, -19);
+ test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 20, -20);
+ test("abcdefghij", 11, 0, "", 0, 0);
+ test("abcdefghij", 11, 0, "abcde", 0, 0);
+ test("abcdefghij", 11, 0, "abcde", 1, 0);
+ test("abcdefghij", 11, 0, "abcde", 2, 0);
+ test("abcdefghij", 11, 0, "abcde", 4, 0);
+ test("abcdefghij", 11, 0, "abcde", 5, 0);
+ test("abcdefghij", 11, 0, "abcdefghij", 0, 0);
+ test("abcdefghij", 11, 0, "abcdefghij", 1, 0);
+ test("abcdefghij", 11, 0, "abcdefghij", 5, 0);
+ test("abcdefghij", 11, 0, "abcdefghij", 9, 0);
+ test("abcdefghij", 11, 0, "abcdefghij", 10, 0);
+ test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 0, 0);
+ test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 1, 0);
+ test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 10, 0);
+ test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 19, 0);
+ test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 20, 0);
}
-void test8()
-{
- test("abcdefghijklmnopqrst", 0, 0, "", 0, 0);
- test("abcdefghijklmnopqrst", 0, 0, "abcde", 0, 0);
- test("abcdefghijklmnopqrst", 0, 0, "abcde", 1, -1);
- test("abcdefghijklmnopqrst", 0, 0, "abcde", 2, -2);
- test("abcdefghijklmnopqrst", 0, 0, "abcde", 4, -4);
- test("abcdefghijklmnopqrst", 0, 0, "abcde", 5, -5);
- test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 0, 0);
- test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 1, -1);
- test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 5, -5);
- test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 9, -9);
- test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 10, -10);
- test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 0, 0);
- test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 1, -1);
- test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 10, -10);
- test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 19, -19);
- test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 20, -20);
- test("abcdefghijklmnopqrst", 0, 1, "", 0, 1);
- test("abcdefghijklmnopqrst", 0, 1, "abcde", 0, 1);
- test("abcdefghijklmnopqrst", 0, 1, "abcde", 1, 0);
- test("abcdefghijklmnopqrst", 0, 1, "abcde", 2, -1);
- test("abcdefghijklmnopqrst", 0, 1, "abcde", 4, -3);
- test("abcdefghijklmnopqrst", 0, 1, "abcde", 5, -4);
- test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 0, 1);
- test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 1, 0);
- test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 5, -4);
- test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 9, -8);
- test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 10, -9);
- test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 0, 1);
- test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 1, 0);
- test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 10, -9);
- test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 19, -18);
- test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 20, -19);
- test("abcdefghijklmnopqrst", 0, 10, "", 0, 10);
- test("abcdefghijklmnopqrst", 0, 10, "abcde", 0, 10);
- test("abcdefghijklmnopqrst", 0, 10, "abcde", 1, 9);
- test("abcdefghijklmnopqrst", 0, 10, "abcde", 2, 8);
- test("abcdefghijklmnopqrst", 0, 10, "abcde", 4, 6);
- test("abcdefghijklmnopqrst", 0, 10, "abcde", 5, 5);
- test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 0, 10);
- test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 1, 9);
- test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 5, 5);
- test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 9, 1);
- test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 10, 0);
- test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 0, 10);
- test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 1, 9);
- test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 10, 0);
- test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 19, -9);
- test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 20, -10);
- test("abcdefghijklmnopqrst", 0, 19, "", 0, 19);
- test("abcdefghijklmnopqrst", 0, 19, "abcde", 0, 19);
- test("abcdefghijklmnopqrst", 0, 19, "abcde", 1, 18);
- test("abcdefghijklmnopqrst", 0, 19, "abcde", 2, 17);
- test("abcdefghijklmnopqrst", 0, 19, "abcde", 4, 15);
- test("abcdefghijklmnopqrst", 0, 19, "abcde", 5, 14);
- test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 0, 19);
- test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 1, 18);
- test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 5, 14);
- test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 9, 10);
- test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 10, 9);
- test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 0, 19);
- test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 1, 18);
- test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 10, 9);
- test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 19, 0);
- test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 20, -1);
- test("abcdefghijklmnopqrst", 0, 20, "", 0, 20);
- test("abcdefghijklmnopqrst", 0, 20, "abcde", 0, 20);
- test("abcdefghijklmnopqrst", 0, 20, "abcde", 1, 19);
- test("abcdefghijklmnopqrst", 0, 20, "abcde", 2, 18);
- test("abcdefghijklmnopqrst", 0, 20, "abcde", 4, 16);
- test("abcdefghijklmnopqrst", 0, 20, "abcde", 5, 15);
- test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 0, 20);
- test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 1, 19);
- test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 5, 15);
- test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 9, 11);
- test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 10, 10);
- test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 0, 20);
- test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 1, 19);
- test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 10, 10);
- test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 19, 1);
- test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 20, 0);
- test("abcdefghijklmnopqrst", 0, 21, "", 0, 20);
- test("abcdefghijklmnopqrst", 0, 21, "abcde", 0, 20);
- test("abcdefghijklmnopqrst", 0, 21, "abcde", 1, 19);
- test("abcdefghijklmnopqrst", 0, 21, "abcde", 2, 18);
- test("abcdefghijklmnopqrst", 0, 21, "abcde", 4, 16);
- test("abcdefghijklmnopqrst", 0, 21, "abcde", 5, 15);
- test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 0, 20);
- test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 1, 19);
- test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 5, 15);
- test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 9, 11);
- test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 10, 10);
- test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 0, 20);
- test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 1, 19);
- test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 10, 10);
- test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 19, 1);
- test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 20, 0);
- test("abcdefghijklmnopqrst", 1, 0, "", 0, 0);
- test("abcdefghijklmnopqrst", 1, 0, "abcde", 0, 0);
- test("abcdefghijklmnopqrst", 1, 0, "abcde", 1, -1);
- test("abcdefghijklmnopqrst", 1, 0, "abcde", 2, -2);
+void test8() {
+ test("abcdefghijklmnopqrst", 0, 0, "", 0, 0);
+ test("abcdefghijklmnopqrst", 0, 0, "abcde", 0, 0);
+ test("abcdefghijklmnopqrst", 0, 0, "abcde", 1, -1);
+ test("abcdefghijklmnopqrst", 0, 0, "abcde", 2, -2);
+ test("abcdefghijklmnopqrst", 0, 0, "abcde", 4, -4);
+ test("abcdefghijklmnopqrst", 0, 0, "abcde", 5, -5);
+ test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 0, 0);
+ test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 1, -1);
+ test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 5, -5);
+ test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 9, -9);
+ test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 10, -10);
+ test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 0, 0);
+ test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 1, -1);
+ test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 10, -10);
+ test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 19, -19);
+ test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 20, -20);
+ test("abcdefghijklmnopqrst", 0, 1, "", 0, 1);
+ test("abcdefghijklmnopqrst", 0, 1, "abcde", 0, 1);
+ test("abcdefghijklmnopqrst", 0, 1, "abcde", 1, 0);
+ test("abcdefghijklmnopqrst", 0, 1, "abcde", 2, -1);
+ test("abcdefghijklmnopqrst", 0, 1, "abcde", 4, -3);
+ test("abcdefghijklmnopqrst", 0, 1, "abcde", 5, -4);
+ test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 0, 1);
+ test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 1, 0);
+ test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 5, -4);
+ test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 9, -8);
+ test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 10, -9);
+ test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 0, 1);
+ test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 1, 0);
+ test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 10, -9);
+ test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 19, -18);
+ test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 20, -19);
+ test("abcdefghijklmnopqrst", 0, 10, "", 0, 10);
+ test("abcdefghijklmnopqrst", 0, 10, "abcde", 0, 10);
+ test("abcdefghijklmnopqrst", 0, 10, "abcde", 1, 9);
+ test("abcdefghijklmnopqrst", 0, 10, "abcde", 2, 8);
+ test("abcdefghijklmnopqrst", 0, 10, "abcde", 4, 6);
+ test("abcdefghijklmnopqrst", 0, 10, "abcde", 5, 5);
+ test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 0, 10);
+ test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 1, 9);
+ test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 5, 5);
+ test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 9, 1);
+ test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 10, 0);
+ test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 0, 10);
+ test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 1, 9);
+ test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 10, 0);
+ test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 19, -9);
+ test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 20, -10);
+ test("abcdefghijklmnopqrst", 0, 19, "", 0, 19);
+ test("abcdefghijklmnopqrst", 0, 19, "abcde", 0, 19);
+ test("abcdefghijklmnopqrst", 0, 19, "abcde", 1, 18);
+ test("abcdefghijklmnopqrst", 0, 19, "abcde", 2, 17);
+ test("abcdefghijklmnopqrst", 0, 19, "abcde", 4, 15);
+ test("abcdefghijklmnopqrst", 0, 19, "abcde", 5, 14);
+ test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 0, 19);
+ test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 1, 18);
+ test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 5, 14);
+ test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 9, 10);
+ test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 10, 9);
+ test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 0, 19);
+ test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 1, 18);
+ test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 10, 9);
+ test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 19, 0);
+ test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 20, -1);
+ test("abcdefghijklmnopqrst", 0, 20, "", 0, 20);
+ test("abcdefghijklmnopqrst", 0, 20, "abcde", 0, 20);
+ test("abcdefghijklmnopqrst", 0, 20, "abcde", 1, 19);
+ test("abcdefghijklmnopqrst", 0, 20, "abcde", 2, 18);
+ test("abcdefghijklmnopqrst", 0, 20, "abcde", 4, 16);
+ test("abcdefghijklmnopqrst", 0, 20, "abcde", 5, 15);
+ test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 0, 20);
+ test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 1, 19);
+ test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 5, 15);
+ test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 9, 11);
+ test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 10, 10);
+ test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 0, 20);
+ test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 1, 19);
+ test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 10, 10);
+ test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 19, 1);
+ test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 20, 0);
+ test("abcdefghijklmnopqrst", 0, 21, "", 0, 20);
+ test("abcdefghijklmnopqrst", 0, 21, "abcde", 0, 20);
+ test("abcdefghijklmnopqrst", 0, 21, "abcde", 1, 19);
+ test("abcdefghijklmnopqrst", 0, 21, "abcde", 2, 18);
+ test("abcdefghijklmnopqrst", 0, 21, "abcde", 4, 16);
+ test("abcdefghijklmnopqrst", 0, 21, "abcde", 5, 15);
+ test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 0, 20);
+ test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 1, 19);
+ test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 5, 15);
+ test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 9, 11);
+ test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 10, 10);
+ test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 0, 20);
+ test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 1, 19);
+ test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 10, 10);
+ test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 19, 1);
+ test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 20, 0);
+ test("abcdefghijklmnopqrst", 1, 0, "", 0, 0);
+ test("abcdefghijklmnopqrst", 1, 0, "abcde", 0, 0);
+ test("abcdefghijklmnopqrst", 1, 0, "abcde", 1, -1);
+ test("abcdefghijklmnopqrst", 1, 0, "abcde", 2, -2);
}
-
-void test9()
-{
- test("abcdefghijklmnopqrst", 1, 0, "abcde", 4, -4);
- test("abcdefghijklmnopqrst", 1, 0, "abcde", 5, -5);
- test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 0, 0);
- test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 1, -1);
- test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 5, -5);
- test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 9, -9);
- test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 10, -10);
- test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 0, 0);
- test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 1, -1);
- test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 10, -10);
- test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 19, -19);
- test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 20, -20);
- test("abcdefghijklmnopqrst", 1, 1, "", 0, 1);
- test("abcdefghijklmnopqrst", 1, 1, "abcde", 0, 1);
- test("abcdefghijklmnopqrst", 1, 1, "abcde", 1, 1);
- test("abcdefghijklmnopqrst", 1, 1, "abcde", 2, 1);
- test("abcdefghijklmnopqrst", 1, 1, "abcde", 4, 1);
- test("abcdefghijklmnopqrst", 1, 1, "abcde", 5, 1);
- test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 0, 1);
- test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 1, 1);
- test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 5, 1);
- test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 9, 1);
- test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 10, 1);
- test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 0, 1);
- test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 1, 1);
- test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 10, 1);
- test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 19, 1);
- test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 20, 1);
- test("abcdefghijklmnopqrst", 1, 9, "", 0, 9);
- test("abcdefghijklmnopqrst", 1, 9, "abcde", 0, 9);
- test("abcdefghijklmnopqrst", 1, 9, "abcde", 1, 1);
- test("abcdefghijklmnopqrst", 1, 9, "abcde", 2, 1);
- test("abcdefghijklmnopqrst", 1, 9, "abcde", 4, 1);
- test("abcdefghijklmnopqrst", 1, 9, "abcde", 5, 1);
- test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 0, 9);
- test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 1, 1);
- test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 5, 1);
- test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 9, 1);
- test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 10, 1);
- test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 0, 9);
- test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 1, 1);
- test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 10, 1);
- test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 19, 1);
- test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 20, 1);
- test("abcdefghijklmnopqrst", 1, 18, "", 0, 18);
- test("abcdefghijklmnopqrst", 1, 18, "abcde", 0, 18);
- test("abcdefghijklmnopqrst", 1, 18, "abcde", 1, 1);
- test("abcdefghijklmnopqrst", 1, 18, "abcde", 2, 1);
- test("abcdefghijklmnopqrst", 1, 18, "abcde", 4, 1);
- test("abcdefghijklmnopqrst", 1, 18, "abcde", 5, 1);
- test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 0, 18);
- test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 1, 1);
- test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 5, 1);
- test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 9, 1);
- test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 10, 1);
- test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 0, 18);
- test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 1, 1);
- test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 10, 1);
- test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 19, 1);
- test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 20, 1);
- test("abcdefghijklmnopqrst", 1, 19, "", 0, 19);
- test("abcdefghijklmnopqrst", 1, 19, "abcde", 0, 19);
- test("abcdefghijklmnopqrst", 1, 19, "abcde", 1, 1);
- test("abcdefghijklmnopqrst", 1, 19, "abcde", 2, 1);
- test("abcdefghijklmnopqrst", 1, 19, "abcde", 4, 1);
- test("abcdefghijklmnopqrst", 1, 19, "abcde", 5, 1);
- test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 0, 19);
- test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 1, 1);
- test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 5, 1);
- test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 9, 1);
- test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 10, 1);
- test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 0, 19);
- test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 1, 1);
- test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 10, 1);
- test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 19, 1);
- test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 20, 1);
- test("abcdefghijklmnopqrst", 1, 20, "", 0, 19);
- test("abcdefghijklmnopqrst", 1, 20, "abcde", 0, 19);
- test("abcdefghijklmnopqrst", 1, 20, "abcde", 1, 1);
- test("abcdefghijklmnopqrst", 1, 20, "abcde", 2, 1);
- test("abcdefghijklmnopqrst", 1, 20, "abcde", 4, 1);
- test("abcdefghijklmnopqrst", 1, 20, "abcde", 5, 1);
- test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 0, 19);
- test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 1, 1);
- test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 5, 1);
- test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 9, 1);
- test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 10, 1);
- test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 0, 19);
- test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 1, 1);
- test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 10, 1);
- test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 19, 1);
- test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 20, 1);
- test("abcdefghijklmnopqrst", 10, 0, "", 0, 0);
- test("abcdefghijklmnopqrst", 10, 0, "abcde", 0, 0);
- test("abcdefghijklmnopqrst", 10, 0, "abcde", 1, -1);
- test("abcdefghijklmnopqrst", 10, 0, "abcde", 2, -2);
- test("abcdefghijklmnopqrst", 10, 0, "abcde", 4, -4);
- test("abcdefghijklmnopqrst", 10, 0, "abcde", 5, -5);
- test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 0, 0);
- test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 1, -1);
+void test9() {
+ test("abcdefghijklmnopqrst", 1, 0, "abcde", 4, -4);
+ test("abcdefghijklmnopqrst", 1, 0, "abcde", 5, -5);
+ test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 0, 0);
+ test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 1, -1);
+ test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 5, -5);
+ test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 9, -9);
+ test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 10, -10);
+ test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 0, 0);
+ test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 1, -1);
+ test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 10, -10);
+ test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 19, -19);
+ test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 20, -20);
+ test("abcdefghijklmnopqrst", 1, 1, "", 0, 1);
+ test("abcdefghijklmnopqrst", 1, 1, "abcde", 0, 1);
+ test("abcdefghijklmnopqrst", 1, 1, "abcde", 1, 1);
+ test("abcdefghijklmnopqrst", 1, 1, "abcde", 2, 1);
+ test("abcdefghijklmnopqrst", 1, 1, "abcde", 4, 1);
+ test("abcdefghijklmnopqrst", 1, 1, "abcde", 5, 1);
+ test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 0, 1);
+ test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 1, 1);
+ test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 5, 1);
+ test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 9, 1);
+ test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 10, 1);
+ test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 0, 1);
+ test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 1, 1);
+ test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 10, 1);
+ test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 19, 1);
+ test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 20, 1);
+ test("abcdefghijklmnopqrst", 1, 9, "", 0, 9);
+ test("abcdefghijklmnopqrst", 1, 9, "abcde", 0, 9);
+ test("abcdefghijklmnopqrst", 1, 9, "abcde", 1, 1);
+ test("abcdefghijklmnopqrst", 1, 9, "abcde", 2, 1);
+ test("abcdefghijklmnopqrst", 1, 9, "abcde", 4, 1);
+ test("abcdefghijklmnopqrst", 1, 9, "abcde", 5, 1);
+ test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 0, 9);
+ test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 1, 1);
+ test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 5, 1);
+ test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 9, 1);
+ test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 10, 1);
+ test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 0, 9);
+ test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 1, 1);
+ test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 10, 1);
+ test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 19, 1);
+ test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 20, 1);
+ test("abcdefghijklmnopqrst", 1, 18, "", 0, 18);
+ test("abcdefghijklmnopqrst", 1, 18, "abcde", 0, 18);
+ test("abcdefghijklmnopqrst", 1, 18, "abcde", 1, 1);
+ test("abcdefghijklmnopqrst", 1, 18, "abcde", 2, 1);
+ test("abcdefghijklmnopqrst", 1, 18, "abcde", 4, 1);
+ test("abcdefghijklmnopqrst", 1, 18, "abcde", 5, 1);
+ test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 0, 18);
+ test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 1, 1);
+ test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 5, 1);
+ test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 9, 1);
+ test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 10, 1);
+ test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 0, 18);
+ test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 1, 1);
+ test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 10, 1);
+ test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 19, 1);
+ test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 20, 1);
+ test("abcdefghijklmnopqrst", 1, 19, "", 0, 19);
+ test("abcdefghijklmnopqrst", 1, 19, "abcde", 0, 19);
+ test("abcdefghijklmnopqrst", 1, 19, "abcde", 1, 1);
+ test("abcdefghijklmnopqrst", 1, 19, "abcde", 2, 1);
+ test("abcdefghijklmnopqrst", 1, 19, "abcde", 4, 1);
+ test("abcdefghijklmnopqrst", 1, 19, "abcde", 5, 1);
+ test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 0, 19);
+ test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 1, 1);
+ test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 5, 1);
+ test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 9, 1);
+ test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 10, 1);
+ test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 0, 19);
+ test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 1, 1);
+ test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 10, 1);
+ test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 19, 1);
+ test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 20, 1);
+ test("abcdefghijklmnopqrst", 1, 20, "", 0, 19);
+ test("abcdefghijklmnopqrst", 1, 20, "abcde", 0, 19);
+ test("abcdefghijklmnopqrst", 1, 20, "abcde", 1, 1);
+ test("abcdefghijklmnopqrst", 1, 20, "abcde", 2, 1);
+ test("abcdefghijklmnopqrst", 1, 20, "abcde", 4, 1);
+ test("abcdefghijklmnopqrst", 1, 20, "abcde", 5, 1);
+ test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 0, 19);
+ test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 1, 1);
+ test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 5, 1);
+ test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 9, 1);
+ test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 10, 1);
+ test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 0, 19);
+ test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 1, 1);
+ test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 10, 1);
+ test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 19, 1);
+ test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 20, 1);
+ test("abcdefghijklmnopqrst", 10, 0, "", 0, 0);
+ test("abcdefghijklmnopqrst", 10, 0, "abcde", 0, 0);
+ test("abcdefghijklmnopqrst", 10, 0, "abcde", 1, -1);
+ test("abcdefghijklmnopqrst", 10, 0, "abcde", 2, -2);
+ test("abcdefghijklmnopqrst", 10, 0, "abcde", 4, -4);
+ test("abcdefghijklmnopqrst", 10, 0, "abcde", 5, -5);
+ test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 0, 0);
+ test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 1, -1);
}
-
-void test10()
-{
- test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 5, -5);
- test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 9, -9);
- test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 10, -10);
- test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 0, 0);
- test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 1, -1);
- test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 10, -10);
- test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 19, -19);
- test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 20, -20);
- test("abcdefghijklmnopqrst", 10, 1, "", 0, 1);
- test("abcdefghijklmnopqrst", 10, 1, "abcde", 0, 1);
- test("abcdefghijklmnopqrst", 10, 1, "abcde", 1, 10);
- test("abcdefghijklmnopqrst", 10, 1, "abcde", 2, 10);
- test("abcdefghijklmnopqrst", 10, 1, "abcde", 4, 10);
- test("abcdefghijklmnopqrst", 10, 1, "abcde", 5, 10);
- test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 0, 1);
- test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 1, 10);
- test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 5, 10);
- test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 9, 10);
- test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 10, 10);
- test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 0, 1);
- test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 1, 10);
- test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 10, 10);
- test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 19, 10);
- test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 20, 10);
- test("abcdefghijklmnopqrst", 10, 5, "", 0, 5);
- test("abcdefghijklmnopqrst", 10, 5, "abcde", 0, 5);
- test("abcdefghijklmnopqrst", 10, 5, "abcde", 1, 10);
- test("abcdefghijklmnopqrst", 10, 5, "abcde", 2, 10);
- test("abcdefghijklmnopqrst", 10, 5, "abcde", 4, 10);
- test("abcdefghijklmnopqrst", 10, 5, "abcde", 5, 10);
- test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 0, 5);
- test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 1, 10);
- test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 5, 10);
- test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 9, 10);
- test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 10, 10);
- test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 0, 5);
- test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 1, 10);
- test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 10, 10);
- test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 19, 10);
- test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 20, 10);
- test("abcdefghijklmnopqrst", 10, 9, "", 0, 9);
- test("abcdefghijklmnopqrst", 10, 9, "abcde", 0, 9);
- test("abcdefghijklmnopqrst", 10, 9, "abcde", 1, 10);
- test("abcdefghijklmnopqrst", 10, 9, "abcde", 2, 10);
- test("abcdefghijklmnopqrst", 10, 9, "abcde", 4, 10);
- test("abcdefghijklmnopqrst", 10, 9, "abcde", 5, 10);
- test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 0, 9);
- test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 1, 10);
- test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 5, 10);
- test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 9, 10);
- test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 10, 10);
- test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 0, 9);
- test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 1, 10);
- test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 10, 10);
- test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 19, 10);
- test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 20, 10);
- test("abcdefghijklmnopqrst", 10, 10, "", 0, 10);
- test("abcdefghijklmnopqrst", 10, 10, "abcde", 0, 10);
- test("abcdefghijklmnopqrst", 10, 10, "abcde", 1, 10);
- test("abcdefghijklmnopqrst", 10, 10, "abcde", 2, 10);
- test("abcdefghijklmnopqrst", 10, 10, "abcde", 4, 10);
- test("abcdefghijklmnopqrst", 10, 10, "abcde", 5, 10);
- test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 0, 10);
- test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 1, 10);
- test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 5, 10);
- test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 9, 10);
- test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 10, 10);
- test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 0, 10);
- test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 1, 10);
- test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 10, 10);
- test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 19, 10);
- test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 20, 10);
- test("abcdefghijklmnopqrst", 10, 11, "", 0, 10);
- test("abcdefghijklmnopqrst", 10, 11, "abcde", 0, 10);
- test("abcdefghijklmnopqrst", 10, 11, "abcde", 1, 10);
- test("abcdefghijklmnopqrst", 10, 11, "abcde", 2, 10);
- test("abcdefghijklmnopqrst", 10, 11, "abcde", 4, 10);
- test("abcdefghijklmnopqrst", 10, 11, "abcde", 5, 10);
- test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 0, 10);
- test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 1, 10);
- test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 5, 10);
- test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 9, 10);
- test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 10, 10);
- test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 0, 10);
- test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 1, 10);
- test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 10, 10);
- test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 19, 10);
- test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 20, 10);
- test("abcdefghijklmnopqrst", 19, 0, "", 0, 0);
- test("abcdefghijklmnopqrst", 19, 0, "abcde", 0, 0);
- test("abcdefghijklmnopqrst", 19, 0, "abcde", 1, -1);
- test("abcdefghijklmnopqrst", 19, 0, "abcde", 2, -2);
- test("abcdefghijklmnopqrst", 19, 0, "abcde", 4, -4);
- test("abcdefghijklmnopqrst", 19, 0, "abcde", 5, -5);
- test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 0, 0);
- test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 1, -1);
- test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 5, -5);
- test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 9, -9);
- test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 10, -10);
- test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 0, 0);
+void test10() {
+ test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 5, -5);
+ test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 9, -9);
+ test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 10, -10);
+ test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 0, 0);
+ test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 1, -1);
+ test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 10, -10);
+ test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 19, -19);
+ test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 20, -20);
+ test("abcdefghijklmnopqrst", 10, 1, "", 0, 1);
+ test("abcdefghijklmnopqrst", 10, 1, "abcde", 0, 1);
+ test("abcdefghijklmnopqrst", 10, 1, "abcde", 1, 10);
+ test("abcdefghijklmnopqrst", 10, 1, "abcde", 2, 10);
+ test("abcdefghijklmnopqrst", 10, 1, "abcde", 4, 10);
+ test("abcdefghijklmnopqrst", 10, 1, "abcde", 5, 10);
+ test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 0, 1);
+ test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 1, 10);
+ test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 5, 10);
+ test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 9, 10);
+ test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 10, 10);
+ test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 0, 1);
+ test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 1, 10);
+ test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 10, 10);
+ test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 19, 10);
+ test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 20, 10);
+ test("abcdefghijklmnopqrst", 10, 5, "", 0, 5);
+ test("abcdefghijklmnopqrst", 10, 5, "abcde", 0, 5);
+ test("abcdefghijklmnopqrst", 10, 5, "abcde", 1, 10);
+ test("abcdefghijklmnopqrst", 10, 5, "abcde", 2, 10);
+ test("abcdefghijklmnopqrst", 10, 5, "abcde", 4, 10);
+ test("abcdefghijklmnopqrst", 10, 5, "abcde", 5, 10);
+ test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 0, 5);
+ test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 1, 10);
+ test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 5, 10);
+ test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 9, 10);
+ test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 10, 10);
+ test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 0, 5);
+ test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 1, 10);
+ test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 10, 10);
+ test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 19, 10);
+ test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 20, 10);
+ test("abcdefghijklmnopqrst", 10, 9, "", 0, 9);
+ test("abcdefghijklmnopqrst", 10, 9, "abcde", 0, 9);
+ test("abcdefghijklmnopqrst", 10, 9, "abcde", 1, 10);
+ test("abcdefghijklmnopqrst", 10, 9, "abcde", 2, 10);
+ test("abcdefghijklmnopqrst", 10, 9, "abcde", 4, 10);
+ test("abcdefghijklmnopqrst", 10, 9, "abcde", 5, 10);
+ test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 0, 9);
+ test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 1, 10);
+ test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 5, 10);
+ test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 9, 10);
+ test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 10, 10);
+ test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 0, 9);
+ test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 1, 10);
+ test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 10, 10);
+ test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 19, 10);
+ test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 20, 10);
+ test("abcdefghijklmnopqrst", 10, 10, "", 0, 10);
+ test("abcdefghijklmnopqrst", 10, 10, "abcde", 0, 10);
+ test("abcdefghijklmnopqrst", 10, 10, "abcde", 1, 10);
+ test("abcdefghijklmnopqrst", 10, 10, "abcde", 2, 10);
+ test("abcdefghijklmnopqrst", 10, 10, "abcde", 4, 10);
+ test("abcdefghijklmnopqrst", 10, 10, "abcde", 5, 10);
+ test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 0, 10);
+ test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 1, 10);
+ test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 5, 10);
+ test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 9, 10);
+ test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 10, 10);
+ test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 0, 10);
+ test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 1, 10);
+ test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 10, 10);
+ test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 19, 10);
+ test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 20, 10);
+ test("abcdefghijklmnopqrst", 10, 11, "", 0, 10);
+ test("abcdefghijklmnopqrst", 10, 11, "abcde", 0, 10);
+ test("abcdefghijklmnopqrst", 10, 11, "abcde", 1, 10);
+ test("abcdefghijklmnopqrst", 10, 11, "abcde", 2, 10);
+ test("abcdefghijklmnopqrst", 10, 11, "abcde", 4, 10);
+ test("abcdefghijklmnopqrst", 10, 11, "abcde", 5, 10);
+ test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 0, 10);
+ test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 1, 10);
+ test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 5, 10);
+ test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 9, 10);
+ test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 10, 10);
+ test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 0, 10);
+ test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 1, 10);
+ test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 10, 10);
+ test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 19, 10);
+ test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 20, 10);
+ test("abcdefghijklmnopqrst", 19, 0, "", 0, 0);
+ test("abcdefghijklmnopqrst", 19, 0, "abcde", 0, 0);
+ test("abcdefghijklmnopqrst", 19, 0, "abcde", 1, -1);
+ test("abcdefghijklmnopqrst", 19, 0, "abcde", 2, -2);
+ test("abcdefghijklmnopqrst", 19, 0, "abcde", 4, -4);
+ test("abcdefghijklmnopqrst", 19, 0, "abcde", 5, -5);
+ test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 0, 0);
+ test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 1, -1);
+ test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 5, -5);
+ test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 9, -9);
+ test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 10, -10);
+ test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 0, 0);
}
-
-void test11()
-{
- test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 1, -1);
- test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 10, -10);
- test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 19, -19);
- test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 20, -20);
- test("abcdefghijklmnopqrst", 19, 1, "", 0, 1);
- test("abcdefghijklmnopqrst", 19, 1, "abcde", 0, 1);
- test("abcdefghijklmnopqrst", 19, 1, "abcde", 1, 19);
- test("abcdefghijklmnopqrst", 19, 1, "abcde", 2, 19);
- test("abcdefghijklmnopqrst", 19, 1, "abcde", 4, 19);
- test("abcdefghijklmnopqrst", 19, 1, "abcde", 5, 19);
- test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 0, 1);
- test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 1, 19);
- test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 5, 19);
- test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 9, 19);
- test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 10, 19);
- test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 0, 1);
- test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 1, 19);
- test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 10, 19);
- test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 19, 19);
- test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 20, 19);
- test("abcdefghijklmnopqrst", 19, 2, "", 0, 1);
- test("abcdefghijklmnopqrst", 19, 2, "abcde", 0, 1);
- test("abcdefghijklmnopqrst", 19, 2, "abcde", 1, 19);
- test("abcdefghijklmnopqrst", 19, 2, "abcde", 2, 19);
- test("abcdefghijklmnopqrst", 19, 2, "abcde", 4, 19);
- test("abcdefghijklmnopqrst", 19, 2, "abcde", 5, 19);
- test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 0, 1);
- test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 1, 19);
- test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 5, 19);
- test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 9, 19);
- test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 10, 19);
- test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 0, 1);
- test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 1, 19);
- test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 10, 19);
- test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 19, 19);
- test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 20, 19);
- test("abcdefghijklmnopqrst", 20, 0, "", 0, 0);
- test("abcdefghijklmnopqrst", 20, 0, "abcde", 0, 0);
- test("abcdefghijklmnopqrst", 20, 0, "abcde", 1, -1);
- test("abcdefghijklmnopqrst", 20, 0, "abcde", 2, -2);
- test("abcdefghijklmnopqrst", 20, 0, "abcde", 4, -4);
- test("abcdefghijklmnopqrst", 20, 0, "abcde", 5, -5);
- test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 0, 0);
- test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 1, -1);
- test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 5, -5);
- test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 9, -9);
- test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 10, -10);
- test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 0, 0);
- test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 1, -1);
- test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 10, -10);
- test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 19, -19);
- test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 20, -20);
- test("abcdefghijklmnopqrst", 20, 1, "", 0, 0);
- test("abcdefghijklmnopqrst", 20, 1, "abcde", 0, 0);
- test("abcdefghijklmnopqrst", 20, 1, "abcde", 1, -1);
- test("abcdefghijklmnopqrst", 20, 1, "abcde", 2, -2);
- test("abcdefghijklmnopqrst", 20, 1, "abcde", 4, -4);
- test("abcdefghijklmnopqrst", 20, 1, "abcde", 5, -5);
- test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 0, 0);
- test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 1, -1);
- test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 5, -5);
- test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 9, -9);
- test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 10, -10);
- test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 0, 0);
- test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 1, -1);
- test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 10, -10);
- test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 19, -19);
- test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 20, -20);
- test("abcdefghijklmnopqrst", 21, 0, "", 0, 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcde", 0, 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcde", 1, 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcde", 2, 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcde", 4, 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcde", 5, 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 0, 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 1, 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 5, 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 9, 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 10, 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 0, 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 1, 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 10, 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 19, 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 20, 0);
- }
-
+void test11() {
+ test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 1, -1);
+ test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 10, -10);
+ test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 19, -19);
+ test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 20, -20);
+ test("abcdefghijklmnopqrst", 19, 1, "", 0, 1);
+ test("abcdefghijklmnopqrst", 19, 1, "abcde", 0, 1);
+ test("abcdefghijklmnopqrst", 19, 1, "abcde", 1, 19);
+ test("abcdefghijklmnopqrst", 19, 1, "abcde", 2, 19);
+ test("abcdefghijklmnopqrst", 19, 1, "abcde", 4, 19);
+ test("abcdefghijklmnopqrst", 19, 1, "abcde", 5, 19);
+ test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 0, 1);
+ test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 1, 19);
+ test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 5, 19);
+ test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 9, 19);
+ test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 10, 19);
+ test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 0, 1);
+ test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 1, 19);
+ test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 10, 19);
+ test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 19, 19);
+ test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 20, 19);
+ test("abcdefghijklmnopqrst", 19, 2, "", 0, 1);
+ test("abcdefghijklmnopqrst", 19, 2, "abcde", 0, 1);
+ test("abcdefghijklmnopqrst", 19, 2, "abcde", 1, 19);
+ test("abcdefghijklmnopqrst", 19, 2, "abcde", 2, 19);
+ test("abcdefghijklmnopqrst", 19, 2, "abcde", 4, 19);
+ test("abcdefghijklmnopqrst", 19, 2, "abcde", 5, 19);
+ test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 0, 1);
+ test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 1, 19);
+ test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 5, 19);
+ test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 9, 19);
+ test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 10, 19);
+ test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 0, 1);
+ test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 1, 19);
+ test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 10, 19);
+ test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 19, 19);
+ test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 20, 19);
+ test("abcdefghijklmnopqrst", 20, 0, "", 0, 0);
+ test("abcdefghijklmnopqrst", 20, 0, "abcde", 0, 0);
+ test("abcdefghijklmnopqrst", 20, 0, "abcde", 1, -1);
+ test("abcdefghijklmnopqrst", 20, 0, "abcde", 2, -2);
+ test("abcdefghijklmnopqrst", 20, 0, "abcde", 4, -4);
+ test("abcdefghijklmnopqrst", 20, 0, "abcde", 5, -5);
+ test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 0, 0);
+ test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 1, -1);
+ test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 5, -5);
+ test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 9, -9);
+ test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 10, -10);
+ test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 0, 0);
+ test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 1, -1);
+ test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 10, -10);
+ test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 19, -19);
+ test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 20, -20);
+ test("abcdefghijklmnopqrst", 20, 1, "", 0, 0);
+ test("abcdefghijklmnopqrst", 20, 1, "abcde", 0, 0);
+ test("abcdefghijklmnopqrst", 20, 1, "abcde", 1, -1);
+ test("abcdefghijklmnopqrst", 20, 1, "abcde", 2, -2);
+ test("abcdefghijklmnopqrst", 20, 1, "abcde", 4, -4);
+ test("abcdefghijklmnopqrst", 20, 1, "abcde", 5, -5);
+ test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 0, 0);
+ test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 1, -1);
+ test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 5, -5);
+ test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 9, -9);
+ test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 10, -10);
+ test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 0, 0);
+ test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 1, -1);
+ test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 10, -10);
+ test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 19, -19);
+ test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 20, -20);
+ test("abcdefghijklmnopqrst", 21, 0, "", 0, 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcde", 0, 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcde", 1, 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcde", 2, 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcde", 4, 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcde", 5, 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 0, 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 1, 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 5, 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 9, 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 10, 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 0, 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 1, 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 10, 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 19, 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 20, 0);
+}
int main(int, char**) {
- test0();
- test1();
- test2();
- test3();
- test4();
- test5();
- test6();
- test7();
- test8();
- test9();
- test10();
- test11();
+ test0();
+ test1();
+ test2();
+ test3();
+ test4();
+ test5();
+ test6();
+ test7();
+ test8();
+ test9();
+ test10();
+ test11();
- {
+ {
test("", 0, 0, "abcde", 0, 0);
test("", 0, 0, "abcde", 1, -1);
test("abcdefghijklmnopqrst", 21, 0, "abcde", 0, 0);
test("abcdefghijklmnopqrst", 21, 0, "abcde", 1, 0);
test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 10, -10);
- }
+ }
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- {
+ {
test(L"", 0, 0, L"abcde", 0, 0);
test(L"", 0, 0, L"abcde", 1, -1);
test(L"abcdefghijklmnopqrst", 21, 0, L"abcde", 0, 0);
test(L"abcdefghijklmnopqrst", 21, 0, L"abcde", 1, 0);
test(L"abcdefghijklmnopqrst", 10, 0, L"abcdefghij", 10, -10);
- }
+ }
#endif
#if TEST_STD_VER >= 11
- {
+ {
test(U"", 0, 0, U"abcde", 0, 0);
test(U"", 0, 0, U"abcde", 1, -1);
test(U"abcdefghijklmnopqrst", 21, 0, U"abcde", 0, 0);
test(U"abcdefghijklmnopqrst", 21, 0, U"abcde", 1, 0);
test(U"abcdefghijklmnopqrst", 10, 0, U"abcdefghij", 10, -10);
- }
+ }
- {
+ {
test(U"", 0, 0, U"abcde", 0, 0);
test(U"", 0, 0, U"abcde", 1, -1);
test(U"abcdefghijklmnopqrst", 21, 0, U"abcde", 0, 0);
test(U"abcdefghijklmnopqrst", 21, 0, U"abcde", 1, 0);
test(U"abcdefghijklmnopqrst", 10, 0, U"abcdefghij", 10, -10);
- }
+ }
#endif
#if TEST_STD_VER > 11
- {
+ {
typedef std::basic_string_view<char, constexpr_char_traits<char>> SV;
- constexpr SV sv1;
- constexpr SV sv2 { "abcdefghijklmnopqrst", 21 };
- static_assert ( sv1.compare(0, 0, "abcde", 0) == 0, "" );
- static_assert ( sv1.compare(0, 0, "abcde", 1) < 0, "" );
- static_assert ( sv2.compare(0, 0, "abcde", 1, 0) == 0, "" );
- }
+ constexpr SV sv1;
+ constexpr SV sv2{"abcdefghijklmnopqrst", 21};
+ static_assert(sv1.compare(0, 0, "abcde", 0) == 0, "");
+ static_assert(sv1.compare(0, 0, "abcde", 1) < 0, "");
+ static_assert(sv2.compare(0, 0, "abcde", 1, 0) == 0, "");
+ }
#endif
return 0;
diff --git a/libcxx/test/std/strings/string.view/string.view.ops/compare.size_size_sv_size_size.pass.cpp b/libcxx/test/std/strings/string.view/string.view.ops/compare.size_size_sv_size_size.pass.cpp
index a8823725375032c..5b1464883db7a11 100644
--- a/libcxx/test/std/strings/string.view/string.view.ops/compare.size_size_sv_size_size.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.ops/compare.size_size_sv_size_size.pass.cpp
@@ -20,5833 +20,5776 @@
#include "test_macros.h"
#include "constexpr_char_traits.h"
-int sign ( int x ) { return x > 0 ? 1 : ( x < 0 ? -1 : 0 ); }
+int sign(int x) { return x > 0 ? 1 : (x < 0 ? -1 : 0); }
-template<typename CharT>
-void test1 ( std::basic_string_view<CharT> sv1, std::size_t pos1, size_t n1,
- std::basic_string_view<CharT> sv2, std::size_t pos2, size_t n2,
- int expected ) {
+template <typename CharT>
+void test1(std::basic_string_view<CharT> sv1,
+ std::size_t pos1,
+ size_t n1,
+ std::basic_string_view<CharT> sv2,
+ std::size_t pos2,
+ size_t n2,
+ int expected) {
#ifdef TEST_HAS_NO_EXCEPTIONS
- if (pos1 <= sv1.size() && pos2 <= sv2.size())
- assert (sign( sv1.compare(pos1, n1, sv2, pos2, n2)) == sign(expected));
+ if (pos1 <= sv1.size() && pos2 <= sv2.size())
+ assert(sign(sv1.compare(pos1, n1, sv2, pos2, n2)) == sign(expected));
#else
- try {
- assert (sign( sv1.compare(pos1, n1, sv2, pos2, n2)) == sign(expected));
- assert(pos1 <= sv1.size() && pos2 <= sv2.size());
- }
- catch (const std::out_of_range&) {
- assert(pos1 > sv1.size() || pos2 > sv2.size());
- }
+ try {
+ assert(sign(sv1.compare(pos1, n1, sv2, pos2, n2)) == sign(expected));
+ assert(pos1 <= sv1.size() && pos2 <= sv2.size());
+ } catch (const std::out_of_range&) {
+ assert(pos1 > sv1.size() || pos2 > sv2.size());
+ }
#endif
}
+template <typename CharT>
+void test(const CharT* s1, std::size_t pos1, size_t n1, const CharT* s2, std::size_t pos2, size_t n2, int expected) {
+ typedef std::basic_string_view<CharT> string_view_t;
-template<typename CharT>
-void test ( const CharT *s1, std::size_t pos1, size_t n1,
- const CharT *s2, std::size_t pos2, size_t n2,
- int expected ) {
- typedef std::basic_string_view<CharT> string_view_t;
-
- string_view_t sv1 ( s1 );
- string_view_t sv2 ( s2 );
- test1(sv1, pos1, n1, sv2, pos2, n2, expected);
+ string_view_t sv1(s1);
+ string_view_t sv2(s2);
+ test1(sv1, pos1, n1, sv2, pos2, n2, expected);
}
-void test0()
-{
- test("", 0, 0, "", 0, 0, 0);
- test("", 0, 0, "", 0, 1, 0);
- test("", 0, 0, "", 1, 0, 0);
- test("", 0, 0, "abcde", 0, 0, 0);
- test("", 0, 0, "abcde", 0, 1, -1);
- test("", 0, 0, "abcde", 0, 2, -2);
- test("", 0, 0, "abcde", 0, 4, -4);
- test("", 0, 0, "abcde", 0, 5, -5);
- test("", 0, 0, "abcde", 0, 6, -5);
- test("", 0, 0, "abcde", 1, 0, 0);
- test("", 0, 0, "abcde", 1, 1, -1);
- test("", 0, 0, "abcde", 1, 2, -2);
- test("", 0, 0, "abcde", 1, 3, -3);
- test("", 0, 0, "abcde", 1, 4, -4);
- test("", 0, 0, "abcde", 1, 5, -4);
- test("", 0, 0, "abcde", 2, 0, 0);
- test("", 0, 0, "abcde", 2, 1, -1);
- test("", 0, 0, "abcde", 2, 2, -2);
- test("", 0, 0, "abcde", 2, 3, -3);
- test("", 0, 0, "abcde", 2, 4, -3);
- test("", 0, 0, "abcde", 4, 0, 0);
- test("", 0, 0, "abcde", 4, 1, -1);
- test("", 0, 0, "abcde", 4, 2, -1);
- test("", 0, 0, "abcde", 5, 0, 0);
- test("", 0, 0, "abcde", 5, 1, 0);
- test("", 0, 0, "abcde", 6, 0, 0);
- test("", 0, 0, "abcdefghij", 0, 0, 0);
- test("", 0, 0, "abcdefghij", 0, 1, -1);
- test("", 0, 0, "abcdefghij", 0, 5, -5);
- test("", 0, 0, "abcdefghij", 0, 9, -9);
- test("", 0, 0, "abcdefghij", 0, 10, -10);
- test("", 0, 0, "abcdefghij", 0, 11, -10);
- test("", 0, 0, "abcdefghij", 1, 0, 0);
- test("", 0, 0, "abcdefghij", 1, 1, -1);
- test("", 0, 0, "abcdefghij", 1, 4, -4);
- test("", 0, 0, "abcdefghij", 1, 8, -8);
- test("", 0, 0, "abcdefghij", 1, 9, -9);
- test("", 0, 0, "abcdefghij", 1, 10, -9);
- test("", 0, 0, "abcdefghij", 5, 0, 0);
- test("", 0, 0, "abcdefghij", 5, 1, -1);
- test("", 0, 0, "abcdefghij", 5, 2, -2);
- test("", 0, 0, "abcdefghij", 5, 4, -4);
- test("", 0, 0, "abcdefghij", 5, 5, -5);
- test("", 0, 0, "abcdefghij", 5, 6, -5);
- test("", 0, 0, "abcdefghij", 9, 0, 0);
- test("", 0, 0, "abcdefghij", 9, 1, -1);
- test("", 0, 0, "abcdefghij", 9, 2, -1);
- test("", 0, 0, "abcdefghij", 10, 0, 0);
- test("", 0, 0, "abcdefghij", 10, 1, 0);
- test("", 0, 0, "abcdefghij", 11, 0, 0);
- test("", 0, 0, "abcdefghijklmnopqrst", 0, 0, 0);
- test("", 0, 0, "abcdefghijklmnopqrst", 0, 1, -1);
- test("", 0, 0, "abcdefghijklmnopqrst", 0, 10, -10);
- test("", 0, 0, "abcdefghijklmnopqrst", 0, 19, -19);
- test("", 0, 0, "abcdefghijklmnopqrst", 0, 20, -20);
- test("", 0, 0, "abcdefghijklmnopqrst", 0, 21, -20);
- test("", 0, 0, "abcdefghijklmnopqrst", 1, 0, 0);
- test("", 0, 0, "abcdefghijklmnopqrst", 1, 1, -1);
- test("", 0, 0, "abcdefghijklmnopqrst", 1, 9, -9);
- test("", 0, 0, "abcdefghijklmnopqrst", 1, 18, -18);
- test("", 0, 0, "abcdefghijklmnopqrst", 1, 19, -19);
- test("", 0, 0, "abcdefghijklmnopqrst", 1, 20, -19);
- test("", 0, 0, "abcdefghijklmnopqrst", 10, 0, 0);
- test("", 0, 0, "abcdefghijklmnopqrst", 10, 1, -1);
- test("", 0, 0, "abcdefghijklmnopqrst", 10, 5, -5);
- test("", 0, 0, "abcdefghijklmnopqrst", 10, 9, -9);
- test("", 0, 0, "abcdefghijklmnopqrst", 10, 10, -10);
- test("", 0, 0, "abcdefghijklmnopqrst", 10, 11, -10);
- test("", 0, 0, "abcdefghijklmnopqrst", 19, 0, 0);
- test("", 0, 0, "abcdefghijklmnopqrst", 19, 1, -1);
- test("", 0, 0, "abcdefghijklmnopqrst", 19, 2, -1);
- test("", 0, 0, "abcdefghijklmnopqrst", 20, 0, 0);
- test("", 0, 0, "abcdefghijklmnopqrst", 20, 1, 0);
- test("", 0, 0, "abcdefghijklmnopqrst", 21, 0, 0);
- test("", 0, 1, "", 0, 0, 0);
- test("", 0, 1, "", 0, 1, 0);
- test("", 0, 1, "", 1, 0, 0);
- test("", 0, 1, "abcde", 0, 0, 0);
- test("", 0, 1, "abcde", 0, 1, -1);
- test("", 0, 1, "abcde", 0, 2, -2);
- test("", 0, 1, "abcde", 0, 4, -4);
- test("", 0, 1, "abcde", 0, 5, -5);
- test("", 0, 1, "abcde", 0, 6, -5);
- test("", 0, 1, "abcde", 1, 0, 0);
- test("", 0, 1, "abcde", 1, 1, -1);
- test("", 0, 1, "abcde", 1, 2, -2);
- test("", 0, 1, "abcde", 1, 3, -3);
- test("", 0, 1, "abcde", 1, 4, -4);
- test("", 0, 1, "abcde", 1, 5, -4);
- test("", 0, 1, "abcde", 2, 0, 0);
- test("", 0, 1, "abcde", 2, 1, -1);
- test("", 0, 1, "abcde", 2, 2, -2);
- test("", 0, 1, "abcde", 2, 3, -3);
- test("", 0, 1, "abcde", 2, 4, -3);
- test("", 0, 1, "abcde", 4, 0, 0);
- test("", 0, 1, "abcde", 4, 1, -1);
- test("", 0, 1, "abcde", 4, 2, -1);
- test("", 0, 1, "abcde", 5, 0, 0);
- test("", 0, 1, "abcde", 5, 1, 0);
- test("", 0, 1, "abcde", 6, 0, 0);
+void test0() {
+ test("", 0, 0, "", 0, 0, 0);
+ test("", 0, 0, "", 0, 1, 0);
+ test("", 0, 0, "", 1, 0, 0);
+ test("", 0, 0, "abcde", 0, 0, 0);
+ test("", 0, 0, "abcde", 0, 1, -1);
+ test("", 0, 0, "abcde", 0, 2, -2);
+ test("", 0, 0, "abcde", 0, 4, -4);
+ test("", 0, 0, "abcde", 0, 5, -5);
+ test("", 0, 0, "abcde", 0, 6, -5);
+ test("", 0, 0, "abcde", 1, 0, 0);
+ test("", 0, 0, "abcde", 1, 1, -1);
+ test("", 0, 0, "abcde", 1, 2, -2);
+ test("", 0, 0, "abcde", 1, 3, -3);
+ test("", 0, 0, "abcde", 1, 4, -4);
+ test("", 0, 0, "abcde", 1, 5, -4);
+ test("", 0, 0, "abcde", 2, 0, 0);
+ test("", 0, 0, "abcde", 2, 1, -1);
+ test("", 0, 0, "abcde", 2, 2, -2);
+ test("", 0, 0, "abcde", 2, 3, -3);
+ test("", 0, 0, "abcde", 2, 4, -3);
+ test("", 0, 0, "abcde", 4, 0, 0);
+ test("", 0, 0, "abcde", 4, 1, -1);
+ test("", 0, 0, "abcde", 4, 2, -1);
+ test("", 0, 0, "abcde", 5, 0, 0);
+ test("", 0, 0, "abcde", 5, 1, 0);
+ test("", 0, 0, "abcde", 6, 0, 0);
+ test("", 0, 0, "abcdefghij", 0, 0, 0);
+ test("", 0, 0, "abcdefghij", 0, 1, -1);
+ test("", 0, 0, "abcdefghij", 0, 5, -5);
+ test("", 0, 0, "abcdefghij", 0, 9, -9);
+ test("", 0, 0, "abcdefghij", 0, 10, -10);
+ test("", 0, 0, "abcdefghij", 0, 11, -10);
+ test("", 0, 0, "abcdefghij", 1, 0, 0);
+ test("", 0, 0, "abcdefghij", 1, 1, -1);
+ test("", 0, 0, "abcdefghij", 1, 4, -4);
+ test("", 0, 0, "abcdefghij", 1, 8, -8);
+ test("", 0, 0, "abcdefghij", 1, 9, -9);
+ test("", 0, 0, "abcdefghij", 1, 10, -9);
+ test("", 0, 0, "abcdefghij", 5, 0, 0);
+ test("", 0, 0, "abcdefghij", 5, 1, -1);
+ test("", 0, 0, "abcdefghij", 5, 2, -2);
+ test("", 0, 0, "abcdefghij", 5, 4, -4);
+ test("", 0, 0, "abcdefghij", 5, 5, -5);
+ test("", 0, 0, "abcdefghij", 5, 6, -5);
+ test("", 0, 0, "abcdefghij", 9, 0, 0);
+ test("", 0, 0, "abcdefghij", 9, 1, -1);
+ test("", 0, 0, "abcdefghij", 9, 2, -1);
+ test("", 0, 0, "abcdefghij", 10, 0, 0);
+ test("", 0, 0, "abcdefghij", 10, 1, 0);
+ test("", 0, 0, "abcdefghij", 11, 0, 0);
+ test("", 0, 0, "abcdefghijklmnopqrst", 0, 0, 0);
+ test("", 0, 0, "abcdefghijklmnopqrst", 0, 1, -1);
+ test("", 0, 0, "abcdefghijklmnopqrst", 0, 10, -10);
+ test("", 0, 0, "abcdefghijklmnopqrst", 0, 19, -19);
+ test("", 0, 0, "abcdefghijklmnopqrst", 0, 20, -20);
+ test("", 0, 0, "abcdefghijklmnopqrst", 0, 21, -20);
+ test("", 0, 0, "abcdefghijklmnopqrst", 1, 0, 0);
+ test("", 0, 0, "abcdefghijklmnopqrst", 1, 1, -1);
+ test("", 0, 0, "abcdefghijklmnopqrst", 1, 9, -9);
+ test("", 0, 0, "abcdefghijklmnopqrst", 1, 18, -18);
+ test("", 0, 0, "abcdefghijklmnopqrst", 1, 19, -19);
+ test("", 0, 0, "abcdefghijklmnopqrst", 1, 20, -19);
+ test("", 0, 0, "abcdefghijklmnopqrst", 10, 0, 0);
+ test("", 0, 0, "abcdefghijklmnopqrst", 10, 1, -1);
+ test("", 0, 0, "abcdefghijklmnopqrst", 10, 5, -5);
+ test("", 0, 0, "abcdefghijklmnopqrst", 10, 9, -9);
+ test("", 0, 0, "abcdefghijklmnopqrst", 10, 10, -10);
+ test("", 0, 0, "abcdefghijklmnopqrst", 10, 11, -10);
+ test("", 0, 0, "abcdefghijklmnopqrst", 19, 0, 0);
+ test("", 0, 0, "abcdefghijklmnopqrst", 19, 1, -1);
+ test("", 0, 0, "abcdefghijklmnopqrst", 19, 2, -1);
+ test("", 0, 0, "abcdefghijklmnopqrst", 20, 0, 0);
+ test("", 0, 0, "abcdefghijklmnopqrst", 20, 1, 0);
+ test("", 0, 0, "abcdefghijklmnopqrst", 21, 0, 0);
+ test("", 0, 1, "", 0, 0, 0);
+ test("", 0, 1, "", 0, 1, 0);
+ test("", 0, 1, "", 1, 0, 0);
+ test("", 0, 1, "abcde", 0, 0, 0);
+ test("", 0, 1, "abcde", 0, 1, -1);
+ test("", 0, 1, "abcde", 0, 2, -2);
+ test("", 0, 1, "abcde", 0, 4, -4);
+ test("", 0, 1, "abcde", 0, 5, -5);
+ test("", 0, 1, "abcde", 0, 6, -5);
+ test("", 0, 1, "abcde", 1, 0, 0);
+ test("", 0, 1, "abcde", 1, 1, -1);
+ test("", 0, 1, "abcde", 1, 2, -2);
+ test("", 0, 1, "abcde", 1, 3, -3);
+ test("", 0, 1, "abcde", 1, 4, -4);
+ test("", 0, 1, "abcde", 1, 5, -4);
+ test("", 0, 1, "abcde", 2, 0, 0);
+ test("", 0, 1, "abcde", 2, 1, -1);
+ test("", 0, 1, "abcde", 2, 2, -2);
+ test("", 0, 1, "abcde", 2, 3, -3);
+ test("", 0, 1, "abcde", 2, 4, -3);
+ test("", 0, 1, "abcde", 4, 0, 0);
+ test("", 0, 1, "abcde", 4, 1, -1);
+ test("", 0, 1, "abcde", 4, 2, -1);
+ test("", 0, 1, "abcde", 5, 0, 0);
+ test("", 0, 1, "abcde", 5, 1, 0);
+ test("", 0, 1, "abcde", 6, 0, 0);
}
-void test1()
-{
- test("", 0, 1, "abcdefghij", 0, 0, 0);
- test("", 0, 1, "abcdefghij", 0, 1, -1);
- test("", 0, 1, "abcdefghij", 0, 5, -5);
- test("", 0, 1, "abcdefghij", 0, 9, -9);
- test("", 0, 1, "abcdefghij", 0, 10, -10);
- test("", 0, 1, "abcdefghij", 0, 11, -10);
- test("", 0, 1, "abcdefghij", 1, 0, 0);
- test("", 0, 1, "abcdefghij", 1, 1, -1);
- test("", 0, 1, "abcdefghij", 1, 4, -4);
- test("", 0, 1, "abcdefghij", 1, 8, -8);
- test("", 0, 1, "abcdefghij", 1, 9, -9);
- test("", 0, 1, "abcdefghij", 1, 10, -9);
- test("", 0, 1, "abcdefghij", 5, 0, 0);
- test("", 0, 1, "abcdefghij", 5, 1, -1);
- test("", 0, 1, "abcdefghij", 5, 2, -2);
- test("", 0, 1, "abcdefghij", 5, 4, -4);
- test("", 0, 1, "abcdefghij", 5, 5, -5);
- test("", 0, 1, "abcdefghij", 5, 6, -5);
- test("", 0, 1, "abcdefghij", 9, 0, 0);
- test("", 0, 1, "abcdefghij", 9, 1, -1);
- test("", 0, 1, "abcdefghij", 9, 2, -1);
- test("", 0, 1, "abcdefghij", 10, 0, 0);
- test("", 0, 1, "abcdefghij", 10, 1, 0);
- test("", 0, 1, "abcdefghij", 11, 0, 0);
- test("", 0, 1, "abcdefghijklmnopqrst", 0, 0, 0);
- test("", 0, 1, "abcdefghijklmnopqrst", 0, 1, -1);
- test("", 0, 1, "abcdefghijklmnopqrst", 0, 10, -10);
- test("", 0, 1, "abcdefghijklmnopqrst", 0, 19, -19);
- test("", 0, 1, "abcdefghijklmnopqrst", 0, 20, -20);
- test("", 0, 1, "abcdefghijklmnopqrst", 0, 21, -20);
- test("", 0, 1, "abcdefghijklmnopqrst", 1, 0, 0);
- test("", 0, 1, "abcdefghijklmnopqrst", 1, 1, -1);
- test("", 0, 1, "abcdefghijklmnopqrst", 1, 9, -9);
- test("", 0, 1, "abcdefghijklmnopqrst", 1, 18, -18);
- test("", 0, 1, "abcdefghijklmnopqrst", 1, 19, -19);
- test("", 0, 1, "abcdefghijklmnopqrst", 1, 20, -19);
- test("", 0, 1, "abcdefghijklmnopqrst", 10, 0, 0);
- test("", 0, 1, "abcdefghijklmnopqrst", 10, 1, -1);
- test("", 0, 1, "abcdefghijklmnopqrst", 10, 5, -5);
- test("", 0, 1, "abcdefghijklmnopqrst", 10, 9, -9);
- test("", 0, 1, "abcdefghijklmnopqrst", 10, 10, -10);
- test("", 0, 1, "abcdefghijklmnopqrst", 10, 11, -10);
- test("", 0, 1, "abcdefghijklmnopqrst", 19, 0, 0);
- test("", 0, 1, "abcdefghijklmnopqrst", 19, 1, -1);
- test("", 0, 1, "abcdefghijklmnopqrst", 19, 2, -1);
- test("", 0, 1, "abcdefghijklmnopqrst", 20, 0, 0);
- test("", 0, 1, "abcdefghijklmnopqrst", 20, 1, 0);
- test("", 0, 1, "abcdefghijklmnopqrst", 21, 0, 0);
- test("", 1, 0, "", 0, 0, 0);
- test("", 1, 0, "", 0, 1, 0);
- test("", 1, 0, "", 1, 0, 0);
- test("", 1, 0, "abcde", 0, 0, 0);
- test("", 1, 0, "abcde", 0, 1, 0);
- test("", 1, 0, "abcde", 0, 2, 0);
- test("", 1, 0, "abcde", 0, 4, 0);
- test("", 1, 0, "abcde", 0, 5, 0);
- test("", 1, 0, "abcde", 0, 6, 0);
- test("", 1, 0, "abcde", 1, 0, 0);
- test("", 1, 0, "abcde", 1, 1, 0);
- test("", 1, 0, "abcde", 1, 2, 0);
- test("", 1, 0, "abcde", 1, 3, 0);
- test("", 1, 0, "abcde", 1, 4, 0);
- test("", 1, 0, "abcde", 1, 5, 0);
- test("", 1, 0, "abcde", 2, 0, 0);
- test("", 1, 0, "abcde", 2, 1, 0);
- test("", 1, 0, "abcde", 2, 2, 0);
- test("", 1, 0, "abcde", 2, 3, 0);
- test("", 1, 0, "abcde", 2, 4, 0);
- test("", 1, 0, "abcde", 4, 0, 0);
- test("", 1, 0, "abcde", 4, 1, 0);
- test("", 1, 0, "abcde", 4, 2, 0);
- test("", 1, 0, "abcde", 5, 0, 0);
- test("", 1, 0, "abcde", 5, 1, 0);
- test("", 1, 0, "abcde", 6, 0, 0);
- test("", 1, 0, "abcdefghij", 0, 0, 0);
- test("", 1, 0, "abcdefghij", 0, 1, 0);
- test("", 1, 0, "abcdefghij", 0, 5, 0);
- test("", 1, 0, "abcdefghij", 0, 9, 0);
- test("", 1, 0, "abcdefghij", 0, 10, 0);
- test("", 1, 0, "abcdefghij", 0, 11, 0);
- test("", 1, 0, "abcdefghij", 1, 0, 0);
- test("", 1, 0, "abcdefghij", 1, 1, 0);
- test("", 1, 0, "abcdefghij", 1, 4, 0);
- test("", 1, 0, "abcdefghij", 1, 8, 0);
- test("", 1, 0, "abcdefghij", 1, 9, 0);
- test("", 1, 0, "abcdefghij", 1, 10, 0);
- test("", 1, 0, "abcdefghij", 5, 0, 0);
- test("", 1, 0, "abcdefghij", 5, 1, 0);
- test("", 1, 0, "abcdefghij", 5, 2, 0);
- test("", 1, 0, "abcdefghij", 5, 4, 0);
- test("", 1, 0, "abcdefghij", 5, 5, 0);
- test("", 1, 0, "abcdefghij", 5, 6, 0);
- test("", 1, 0, "abcdefghij", 9, 0, 0);
- test("", 1, 0, "abcdefghij", 9, 1, 0);
- test("", 1, 0, "abcdefghij", 9, 2, 0);
- test("", 1, 0, "abcdefghij", 10, 0, 0);
- test("", 1, 0, "abcdefghij", 10, 1, 0);
- test("", 1, 0, "abcdefghij", 11, 0, 0);
- test("", 1, 0, "abcdefghijklmnopqrst", 0, 0, 0);
- test("", 1, 0, "abcdefghijklmnopqrst", 0, 1, 0);
+void test1() {
+ test("", 0, 1, "abcdefghij", 0, 0, 0);
+ test("", 0, 1, "abcdefghij", 0, 1, -1);
+ test("", 0, 1, "abcdefghij", 0, 5, -5);
+ test("", 0, 1, "abcdefghij", 0, 9, -9);
+ test("", 0, 1, "abcdefghij", 0, 10, -10);
+ test("", 0, 1, "abcdefghij", 0, 11, -10);
+ test("", 0, 1, "abcdefghij", 1, 0, 0);
+ test("", 0, 1, "abcdefghij", 1, 1, -1);
+ test("", 0, 1, "abcdefghij", 1, 4, -4);
+ test("", 0, 1, "abcdefghij", 1, 8, -8);
+ test("", 0, 1, "abcdefghij", 1, 9, -9);
+ test("", 0, 1, "abcdefghij", 1, 10, -9);
+ test("", 0, 1, "abcdefghij", 5, 0, 0);
+ test("", 0, 1, "abcdefghij", 5, 1, -1);
+ test("", 0, 1, "abcdefghij", 5, 2, -2);
+ test("", 0, 1, "abcdefghij", 5, 4, -4);
+ test("", 0, 1, "abcdefghij", 5, 5, -5);
+ test("", 0, 1, "abcdefghij", 5, 6, -5);
+ test("", 0, 1, "abcdefghij", 9, 0, 0);
+ test("", 0, 1, "abcdefghij", 9, 1, -1);
+ test("", 0, 1, "abcdefghij", 9, 2, -1);
+ test("", 0, 1, "abcdefghij", 10, 0, 0);
+ test("", 0, 1, "abcdefghij", 10, 1, 0);
+ test("", 0, 1, "abcdefghij", 11, 0, 0);
+ test("", 0, 1, "abcdefghijklmnopqrst", 0, 0, 0);
+ test("", 0, 1, "abcdefghijklmnopqrst", 0, 1, -1);
+ test("", 0, 1, "abcdefghijklmnopqrst", 0, 10, -10);
+ test("", 0, 1, "abcdefghijklmnopqrst", 0, 19, -19);
+ test("", 0, 1, "abcdefghijklmnopqrst", 0, 20, -20);
+ test("", 0, 1, "abcdefghijklmnopqrst", 0, 21, -20);
+ test("", 0, 1, "abcdefghijklmnopqrst", 1, 0, 0);
+ test("", 0, 1, "abcdefghijklmnopqrst", 1, 1, -1);
+ test("", 0, 1, "abcdefghijklmnopqrst", 1, 9, -9);
+ test("", 0, 1, "abcdefghijklmnopqrst", 1, 18, -18);
+ test("", 0, 1, "abcdefghijklmnopqrst", 1, 19, -19);
+ test("", 0, 1, "abcdefghijklmnopqrst", 1, 20, -19);
+ test("", 0, 1, "abcdefghijklmnopqrst", 10, 0, 0);
+ test("", 0, 1, "abcdefghijklmnopqrst", 10, 1, -1);
+ test("", 0, 1, "abcdefghijklmnopqrst", 10, 5, -5);
+ test("", 0, 1, "abcdefghijklmnopqrst", 10, 9, -9);
+ test("", 0, 1, "abcdefghijklmnopqrst", 10, 10, -10);
+ test("", 0, 1, "abcdefghijklmnopqrst", 10, 11, -10);
+ test("", 0, 1, "abcdefghijklmnopqrst", 19, 0, 0);
+ test("", 0, 1, "abcdefghijklmnopqrst", 19, 1, -1);
+ test("", 0, 1, "abcdefghijklmnopqrst", 19, 2, -1);
+ test("", 0, 1, "abcdefghijklmnopqrst", 20, 0, 0);
+ test("", 0, 1, "abcdefghijklmnopqrst", 20, 1, 0);
+ test("", 0, 1, "abcdefghijklmnopqrst", 21, 0, 0);
+ test("", 1, 0, "", 0, 0, 0);
+ test("", 1, 0, "", 0, 1, 0);
+ test("", 1, 0, "", 1, 0, 0);
+ test("", 1, 0, "abcde", 0, 0, 0);
+ test("", 1, 0, "abcde", 0, 1, 0);
+ test("", 1, 0, "abcde", 0, 2, 0);
+ test("", 1, 0, "abcde", 0, 4, 0);
+ test("", 1, 0, "abcde", 0, 5, 0);
+ test("", 1, 0, "abcde", 0, 6, 0);
+ test("", 1, 0, "abcde", 1, 0, 0);
+ test("", 1, 0, "abcde", 1, 1, 0);
+ test("", 1, 0, "abcde", 1, 2, 0);
+ test("", 1, 0, "abcde", 1, 3, 0);
+ test("", 1, 0, "abcde", 1, 4, 0);
+ test("", 1, 0, "abcde", 1, 5, 0);
+ test("", 1, 0, "abcde", 2, 0, 0);
+ test("", 1, 0, "abcde", 2, 1, 0);
+ test("", 1, 0, "abcde", 2, 2, 0);
+ test("", 1, 0, "abcde", 2, 3, 0);
+ test("", 1, 0, "abcde", 2, 4, 0);
+ test("", 1, 0, "abcde", 4, 0, 0);
+ test("", 1, 0, "abcde", 4, 1, 0);
+ test("", 1, 0, "abcde", 4, 2, 0);
+ test("", 1, 0, "abcde", 5, 0, 0);
+ test("", 1, 0, "abcde", 5, 1, 0);
+ test("", 1, 0, "abcde", 6, 0, 0);
+ test("", 1, 0, "abcdefghij", 0, 0, 0);
+ test("", 1, 0, "abcdefghij", 0, 1, 0);
+ test("", 1, 0, "abcdefghij", 0, 5, 0);
+ test("", 1, 0, "abcdefghij", 0, 9, 0);
+ test("", 1, 0, "abcdefghij", 0, 10, 0);
+ test("", 1, 0, "abcdefghij", 0, 11, 0);
+ test("", 1, 0, "abcdefghij", 1, 0, 0);
+ test("", 1, 0, "abcdefghij", 1, 1, 0);
+ test("", 1, 0, "abcdefghij", 1, 4, 0);
+ test("", 1, 0, "abcdefghij", 1, 8, 0);
+ test("", 1, 0, "abcdefghij", 1, 9, 0);
+ test("", 1, 0, "abcdefghij", 1, 10, 0);
+ test("", 1, 0, "abcdefghij", 5, 0, 0);
+ test("", 1, 0, "abcdefghij", 5, 1, 0);
+ test("", 1, 0, "abcdefghij", 5, 2, 0);
+ test("", 1, 0, "abcdefghij", 5, 4, 0);
+ test("", 1, 0, "abcdefghij", 5, 5, 0);
+ test("", 1, 0, "abcdefghij", 5, 6, 0);
+ test("", 1, 0, "abcdefghij", 9, 0, 0);
+ test("", 1, 0, "abcdefghij", 9, 1, 0);
+ test("", 1, 0, "abcdefghij", 9, 2, 0);
+ test("", 1, 0, "abcdefghij", 10, 0, 0);
+ test("", 1, 0, "abcdefghij", 10, 1, 0);
+ test("", 1, 0, "abcdefghij", 11, 0, 0);
+ test("", 1, 0, "abcdefghijklmnopqrst", 0, 0, 0);
+ test("", 1, 0, "abcdefghijklmnopqrst", 0, 1, 0);
}
-void test2()
-{
- test("", 1, 0, "abcdefghijklmnopqrst", 0, 10, 0);
- test("", 1, 0, "abcdefghijklmnopqrst", 0, 19, 0);
- test("", 1, 0, "abcdefghijklmnopqrst", 0, 20, 0);
- test("", 1, 0, "abcdefghijklmnopqrst", 0, 21, 0);
- test("", 1, 0, "abcdefghijklmnopqrst", 1, 0, 0);
- test("", 1, 0, "abcdefghijklmnopqrst", 1, 1, 0);
- test("", 1, 0, "abcdefghijklmnopqrst", 1, 9, 0);
- test("", 1, 0, "abcdefghijklmnopqrst", 1, 18, 0);
- test("", 1, 0, "abcdefghijklmnopqrst", 1, 19, 0);
- test("", 1, 0, "abcdefghijklmnopqrst", 1, 20, 0);
- test("", 1, 0, "abcdefghijklmnopqrst", 10, 0, 0);
- test("", 1, 0, "abcdefghijklmnopqrst", 10, 1, 0);
- test("", 1, 0, "abcdefghijklmnopqrst", 10, 5, 0);
- test("", 1, 0, "abcdefghijklmnopqrst", 10, 9, 0);
- test("", 1, 0, "abcdefghijklmnopqrst", 10, 10, 0);
- test("", 1, 0, "abcdefghijklmnopqrst", 10, 11, 0);
- test("", 1, 0, "abcdefghijklmnopqrst", 19, 0, 0);
- test("", 1, 0, "abcdefghijklmnopqrst", 19, 1, 0);
- test("", 1, 0, "abcdefghijklmnopqrst", 19, 2, 0);
- test("", 1, 0, "abcdefghijklmnopqrst", 20, 0, 0);
- test("", 1, 0, "abcdefghijklmnopqrst", 20, 1, 0);
- test("", 1, 0, "abcdefghijklmnopqrst", 21, 0, 0);
- test("abcde", 0, 0, "", 0, 0, 0);
- test("abcde", 0, 0, "", 0, 1, 0);
- test("abcde", 0, 0, "", 1, 0, 0);
- test("abcde", 0, 0, "abcde", 0, 0, 0);
- test("abcde", 0, 0, "abcde", 0, 1, -1);
- test("abcde", 0, 0, "abcde", 0, 2, -2);
- test("abcde", 0, 0, "abcde", 0, 4, -4);
- test("abcde", 0, 0, "abcde", 0, 5, -5);
- test("abcde", 0, 0, "abcde", 0, 6, -5);
- test("abcde", 0, 0, "abcde", 1, 0, 0);
- test("abcde", 0, 0, "abcde", 1, 1, -1);
- test("abcde", 0, 0, "abcde", 1, 2, -2);
- test("abcde", 0, 0, "abcde", 1, 3, -3);
- test("abcde", 0, 0, "abcde", 1, 4, -4);
- test("abcde", 0, 0, "abcde", 1, 5, -4);
- test("abcde", 0, 0, "abcde", 2, 0, 0);
- test("abcde", 0, 0, "abcde", 2, 1, -1);
- test("abcde", 0, 0, "abcde", 2, 2, -2);
- test("abcde", 0, 0, "abcde", 2, 3, -3);
- test("abcde", 0, 0, "abcde", 2, 4, -3);
- test("abcde", 0, 0, "abcde", 4, 0, 0);
- test("abcde", 0, 0, "abcde", 4, 1, -1);
- test("abcde", 0, 0, "abcde", 4, 2, -1);
- test("abcde", 0, 0, "abcde", 5, 0, 0);
- test("abcde", 0, 0, "abcde", 5, 1, 0);
- test("abcde", 0, 0, "abcde", 6, 0, 0);
- test("abcde", 0, 0, "abcdefghij", 0, 0, 0);
- test("abcde", 0, 0, "abcdefghij", 0, 1, -1);
- test("abcde", 0, 0, "abcdefghij", 0, 5, -5);
- test("abcde", 0, 0, "abcdefghij", 0, 9, -9);
- test("abcde", 0, 0, "abcdefghij", 0, 10, -10);
- test("abcde", 0, 0, "abcdefghij", 0, 11, -10);
- test("abcde", 0, 0, "abcdefghij", 1, 0, 0);
- test("abcde", 0, 0, "abcdefghij", 1, 1, -1);
- test("abcde", 0, 0, "abcdefghij", 1, 4, -4);
- test("abcde", 0, 0, "abcdefghij", 1, 8, -8);
- test("abcde", 0, 0, "abcdefghij", 1, 9, -9);
- test("abcde", 0, 0, "abcdefghij", 1, 10, -9);
- test("abcde", 0, 0, "abcdefghij", 5, 0, 0);
- test("abcde", 0, 0, "abcdefghij", 5, 1, -1);
- test("abcde", 0, 0, "abcdefghij", 5, 2, -2);
- test("abcde", 0, 0, "abcdefghij", 5, 4, -4);
- test("abcde", 0, 0, "abcdefghij", 5, 5, -5);
- test("abcde", 0, 0, "abcdefghij", 5, 6, -5);
- test("abcde", 0, 0, "abcdefghij", 9, 0, 0);
- test("abcde", 0, 0, "abcdefghij", 9, 1, -1);
- test("abcde", 0, 0, "abcdefghij", 9, 2, -1);
- test("abcde", 0, 0, "abcdefghij", 10, 0, 0);
- test("abcde", 0, 0, "abcdefghij", 10, 1, 0);
- test("abcde", 0, 0, "abcdefghij", 11, 0, 0);
- test("abcde", 0, 0, "abcdefghijklmnopqrst", 0, 0, 0);
- test("abcde", 0, 0, "abcdefghijklmnopqrst", 0, 1, -1);
- test("abcde", 0, 0, "abcdefghijklmnopqrst", 0, 10, -10);
- test("abcde", 0, 0, "abcdefghijklmnopqrst", 0, 19, -19);
- test("abcde", 0, 0, "abcdefghijklmnopqrst", 0, 20, -20);
- test("abcde", 0, 0, "abcdefghijklmnopqrst", 0, 21, -20);
- test("abcde", 0, 0, "abcdefghijklmnopqrst", 1, 0, 0);
- test("abcde", 0, 0, "abcdefghijklmnopqrst", 1, 1, -1);
- test("abcde", 0, 0, "abcdefghijklmnopqrst", 1, 9, -9);
- test("abcde", 0, 0, "abcdefghijklmnopqrst", 1, 18, -18);
- test("abcde", 0, 0, "abcdefghijklmnopqrst", 1, 19, -19);
- test("abcde", 0, 0, "abcdefghijklmnopqrst", 1, 20, -19);
- test("abcde", 0, 0, "abcdefghijklmnopqrst", 10, 0, 0);
- test("abcde", 0, 0, "abcdefghijklmnopqrst", 10, 1, -1);
- test("abcde", 0, 0, "abcdefghijklmnopqrst", 10, 5, -5);
- test("abcde", 0, 0, "abcdefghijklmnopqrst", 10, 9, -9);
- test("abcde", 0, 0, "abcdefghijklmnopqrst", 10, 10, -10);
- test("abcde", 0, 0, "abcdefghijklmnopqrst", 10, 11, -10);
- test("abcde", 0, 0, "abcdefghijklmnopqrst", 19, 0, 0);
- test("abcde", 0, 0, "abcdefghijklmnopqrst", 19, 1, -1);
- test("abcde", 0, 0, "abcdefghijklmnopqrst", 19, 2, -1);
- test("abcde", 0, 0, "abcdefghijklmnopqrst", 20, 0, 0);
- test("abcde", 0, 0, "abcdefghijklmnopqrst", 20, 1, 0);
- test("abcde", 0, 0, "abcdefghijklmnopqrst", 21, 0, 0);
- test("abcde", 0, 1, "", 0, 0, 1);
- test("abcde", 0, 1, "", 0, 1, 1);
- test("abcde", 0, 1, "", 1, 0, 0);
- test("abcde", 0, 1, "abcde", 0, 0, 1);
+void test2() {
+ test("", 1, 0, "abcdefghijklmnopqrst", 0, 10, 0);
+ test("", 1, 0, "abcdefghijklmnopqrst", 0, 19, 0);
+ test("", 1, 0, "abcdefghijklmnopqrst", 0, 20, 0);
+ test("", 1, 0, "abcdefghijklmnopqrst", 0, 21, 0);
+ test("", 1, 0, "abcdefghijklmnopqrst", 1, 0, 0);
+ test("", 1, 0, "abcdefghijklmnopqrst", 1, 1, 0);
+ test("", 1, 0, "abcdefghijklmnopqrst", 1, 9, 0);
+ test("", 1, 0, "abcdefghijklmnopqrst", 1, 18, 0);
+ test("", 1, 0, "abcdefghijklmnopqrst", 1, 19, 0);
+ test("", 1, 0, "abcdefghijklmnopqrst", 1, 20, 0);
+ test("", 1, 0, "abcdefghijklmnopqrst", 10, 0, 0);
+ test("", 1, 0, "abcdefghijklmnopqrst", 10, 1, 0);
+ test("", 1, 0, "abcdefghijklmnopqrst", 10, 5, 0);
+ test("", 1, 0, "abcdefghijklmnopqrst", 10, 9, 0);
+ test("", 1, 0, "abcdefghijklmnopqrst", 10, 10, 0);
+ test("", 1, 0, "abcdefghijklmnopqrst", 10, 11, 0);
+ test("", 1, 0, "abcdefghijklmnopqrst", 19, 0, 0);
+ test("", 1, 0, "abcdefghijklmnopqrst", 19, 1, 0);
+ test("", 1, 0, "abcdefghijklmnopqrst", 19, 2, 0);
+ test("", 1, 0, "abcdefghijklmnopqrst", 20, 0, 0);
+ test("", 1, 0, "abcdefghijklmnopqrst", 20, 1, 0);
+ test("", 1, 0, "abcdefghijklmnopqrst", 21, 0, 0);
+ test("abcde", 0, 0, "", 0, 0, 0);
+ test("abcde", 0, 0, "", 0, 1, 0);
+ test("abcde", 0, 0, "", 1, 0, 0);
+ test("abcde", 0, 0, "abcde", 0, 0, 0);
+ test("abcde", 0, 0, "abcde", 0, 1, -1);
+ test("abcde", 0, 0, "abcde", 0, 2, -2);
+ test("abcde", 0, 0, "abcde", 0, 4, -4);
+ test("abcde", 0, 0, "abcde", 0, 5, -5);
+ test("abcde", 0, 0, "abcde", 0, 6, -5);
+ test("abcde", 0, 0, "abcde", 1, 0, 0);
+ test("abcde", 0, 0, "abcde", 1, 1, -1);
+ test("abcde", 0, 0, "abcde", 1, 2, -2);
+ test("abcde", 0, 0, "abcde", 1, 3, -3);
+ test("abcde", 0, 0, "abcde", 1, 4, -4);
+ test("abcde", 0, 0, "abcde", 1, 5, -4);
+ test("abcde", 0, 0, "abcde", 2, 0, 0);
+ test("abcde", 0, 0, "abcde", 2, 1, -1);
+ test("abcde", 0, 0, "abcde", 2, 2, -2);
+ test("abcde", 0, 0, "abcde", 2, 3, -3);
+ test("abcde", 0, 0, "abcde", 2, 4, -3);
+ test("abcde", 0, 0, "abcde", 4, 0, 0);
+ test("abcde", 0, 0, "abcde", 4, 1, -1);
+ test("abcde", 0, 0, "abcde", 4, 2, -1);
+ test("abcde", 0, 0, "abcde", 5, 0, 0);
+ test("abcde", 0, 0, "abcde", 5, 1, 0);
+ test("abcde", 0, 0, "abcde", 6, 0, 0);
+ test("abcde", 0, 0, "abcdefghij", 0, 0, 0);
+ test("abcde", 0, 0, "abcdefghij", 0, 1, -1);
+ test("abcde", 0, 0, "abcdefghij", 0, 5, -5);
+ test("abcde", 0, 0, "abcdefghij", 0, 9, -9);
+ test("abcde", 0, 0, "abcdefghij", 0, 10, -10);
+ test("abcde", 0, 0, "abcdefghij", 0, 11, -10);
+ test("abcde", 0, 0, "abcdefghij", 1, 0, 0);
+ test("abcde", 0, 0, "abcdefghij", 1, 1, -1);
+ test("abcde", 0, 0, "abcdefghij", 1, 4, -4);
+ test("abcde", 0, 0, "abcdefghij", 1, 8, -8);
+ test("abcde", 0, 0, "abcdefghij", 1, 9, -9);
+ test("abcde", 0, 0, "abcdefghij", 1, 10, -9);
+ test("abcde", 0, 0, "abcdefghij", 5, 0, 0);
+ test("abcde", 0, 0, "abcdefghij", 5, 1, -1);
+ test("abcde", 0, 0, "abcdefghij", 5, 2, -2);
+ test("abcde", 0, 0, "abcdefghij", 5, 4, -4);
+ test("abcde", 0, 0, "abcdefghij", 5, 5, -5);
+ test("abcde", 0, 0, "abcdefghij", 5, 6, -5);
+ test("abcde", 0, 0, "abcdefghij", 9, 0, 0);
+ test("abcde", 0, 0, "abcdefghij", 9, 1, -1);
+ test("abcde", 0, 0, "abcdefghij", 9, 2, -1);
+ test("abcde", 0, 0, "abcdefghij", 10, 0, 0);
+ test("abcde", 0, 0, "abcdefghij", 10, 1, 0);
+ test("abcde", 0, 0, "abcdefghij", 11, 0, 0);
+ test("abcde", 0, 0, "abcdefghijklmnopqrst", 0, 0, 0);
+ test("abcde", 0, 0, "abcdefghijklmnopqrst", 0, 1, -1);
+ test("abcde", 0, 0, "abcdefghijklmnopqrst", 0, 10, -10);
+ test("abcde", 0, 0, "abcdefghijklmnopqrst", 0, 19, -19);
+ test("abcde", 0, 0, "abcdefghijklmnopqrst", 0, 20, -20);
+ test("abcde", 0, 0, "abcdefghijklmnopqrst", 0, 21, -20);
+ test("abcde", 0, 0, "abcdefghijklmnopqrst", 1, 0, 0);
+ test("abcde", 0, 0, "abcdefghijklmnopqrst", 1, 1, -1);
+ test("abcde", 0, 0, "abcdefghijklmnopqrst", 1, 9, -9);
+ test("abcde", 0, 0, "abcdefghijklmnopqrst", 1, 18, -18);
+ test("abcde", 0, 0, "abcdefghijklmnopqrst", 1, 19, -19);
+ test("abcde", 0, 0, "abcdefghijklmnopqrst", 1, 20, -19);
+ test("abcde", 0, 0, "abcdefghijklmnopqrst", 10, 0, 0);
+ test("abcde", 0, 0, "abcdefghijklmnopqrst", 10, 1, -1);
+ test("abcde", 0, 0, "abcdefghijklmnopqrst", 10, 5, -5);
+ test("abcde", 0, 0, "abcdefghijklmnopqrst", 10, 9, -9);
+ test("abcde", 0, 0, "abcdefghijklmnopqrst", 10, 10, -10);
+ test("abcde", 0, 0, "abcdefghijklmnopqrst", 10, 11, -10);
+ test("abcde", 0, 0, "abcdefghijklmnopqrst", 19, 0, 0);
+ test("abcde", 0, 0, "abcdefghijklmnopqrst", 19, 1, -1);
+ test("abcde", 0, 0, "abcdefghijklmnopqrst", 19, 2, -1);
+ test("abcde", 0, 0, "abcdefghijklmnopqrst", 20, 0, 0);
+ test("abcde", 0, 0, "abcdefghijklmnopqrst", 20, 1, 0);
+ test("abcde", 0, 0, "abcdefghijklmnopqrst", 21, 0, 0);
+ test("abcde", 0, 1, "", 0, 0, 1);
+ test("abcde", 0, 1, "", 0, 1, 1);
+ test("abcde", 0, 1, "", 1, 0, 0);
+ test("abcde", 0, 1, "abcde", 0, 0, 1);
}
-void test3()
-{
- test("abcde", 0, 1, "abcde", 0, 1, 0);
- test("abcde", 0, 1, "abcde", 0, 2, -1);
- test("abcde", 0, 1, "abcde", 0, 4, -3);
- test("abcde", 0, 1, "abcde", 0, 5, -4);
- test("abcde", 0, 1, "abcde", 0, 6, -4);
- test("abcde", 0, 1, "abcde", 1, 0, 1);
- test("abcde", 0, 1, "abcde", 1, 1, -1);
- test("abcde", 0, 1, "abcde", 1, 2, -1);
- test("abcde", 0, 1, "abcde", 1, 3, -1);
- test("abcde", 0, 1, "abcde", 1, 4, -1);
- test("abcde", 0, 1, "abcde", 1, 5, -1);
- test("abcde", 0, 1, "abcde", 2, 0, 1);
- test("abcde", 0, 1, "abcde", 2, 1, -2);
- test("abcde", 0, 1, "abcde", 2, 2, -2);
- test("abcde", 0, 1, "abcde", 2, 3, -2);
- test("abcde", 0, 1, "abcde", 2, 4, -2);
- test("abcde", 0, 1, "abcde", 4, 0, 1);
- test("abcde", 0, 1, "abcde", 4, 1, -4);
- test("abcde", 0, 1, "abcde", 4, 2, -4);
- test("abcde", 0, 1, "abcde", 5, 0, 1);
- test("abcde", 0, 1, "abcde", 5, 1, 1);
- test("abcde", 0, 1, "abcde", 6, 0, 0);
- test("abcde", 0, 1, "abcdefghij", 0, 0, 1);
- test("abcde", 0, 1, "abcdefghij", 0, 1, 0);
- test("abcde", 0, 1, "abcdefghij", 0, 5, -4);
- test("abcde", 0, 1, "abcdefghij", 0, 9, -8);
- test("abcde", 0, 1, "abcdefghij", 0, 10, -9);
- test("abcde", 0, 1, "abcdefghij", 0, 11, -9);
- test("abcde", 0, 1, "abcdefghij", 1, 0, 1);
- test("abcde", 0, 1, "abcdefghij", 1, 1, -1);
- test("abcde", 0, 1, "abcdefghij", 1, 4, -1);
- test("abcde", 0, 1, "abcdefghij", 1, 8, -1);
- test("abcde", 0, 1, "abcdefghij", 1, 9, -1);
- test("abcde", 0, 1, "abcdefghij", 1, 10, -1);
- test("abcde", 0, 1, "abcdefghij", 5, 0, 1);
- test("abcde", 0, 1, "abcdefghij", 5, 1, -5);
- test("abcde", 0, 1, "abcdefghij", 5, 2, -5);
- test("abcde", 0, 1, "abcdefghij", 5, 4, -5);
- test("abcde", 0, 1, "abcdefghij", 5, 5, -5);
- test("abcde", 0, 1, "abcdefghij", 5, 6, -5);
- test("abcde", 0, 1, "abcdefghij", 9, 0, 1);
- test("abcde", 0, 1, "abcdefghij", 9, 1, -9);
- test("abcde", 0, 1, "abcdefghij", 9, 2, -9);
- test("abcde", 0, 1, "abcdefghij", 10, 0, 1);
- test("abcde", 0, 1, "abcdefghij", 10, 1, 1);
- test("abcde", 0, 1, "abcdefghij", 11, 0, 0);
- test("abcde", 0, 1, "abcdefghijklmnopqrst", 0, 0, 1);
- test("abcde", 0, 1, "abcdefghijklmnopqrst", 0, 1, 0);
- test("abcde", 0, 1, "abcdefghijklmnopqrst", 0, 10, -9);
- test("abcde", 0, 1, "abcdefghijklmnopqrst", 0, 19, -18);
- test("abcde", 0, 1, "abcdefghijklmnopqrst", 0, 20, -19);
- test("abcde", 0, 1, "abcdefghijklmnopqrst", 0, 21, -19);
- test("abcde", 0, 1, "abcdefghijklmnopqrst", 1, 0, 1);
- test("abcde", 0, 1, "abcdefghijklmnopqrst", 1, 1, -1);
- test("abcde", 0, 1, "abcdefghijklmnopqrst", 1, 9, -1);
- test("abcde", 0, 1, "abcdefghijklmnopqrst", 1, 18, -1);
- test("abcde", 0, 1, "abcdefghijklmnopqrst", 1, 19, -1);
- test("abcde", 0, 1, "abcdefghijklmnopqrst", 1, 20, -1);
- test("abcde", 0, 1, "abcdefghijklmnopqrst", 10, 0, 1);
- test("abcde", 0, 1, "abcdefghijklmnopqrst", 10, 1, -10);
- test("abcde", 0, 1, "abcdefghijklmnopqrst", 10, 5, -10);
- test("abcde", 0, 1, "abcdefghijklmnopqrst", 10, 9, -10);
- test("abcde", 0, 1, "abcdefghijklmnopqrst", 10, 10, -10);
- test("abcde", 0, 1, "abcdefghijklmnopqrst", 10, 11, -10);
- test("abcde", 0, 1, "abcdefghijklmnopqrst", 19, 0, 1);
- test("abcde", 0, 1, "abcdefghijklmnopqrst", 19, 1, -19);
- test("abcde", 0, 1, "abcdefghijklmnopqrst", 19, 2, -19);
- test("abcde", 0, 1, "abcdefghijklmnopqrst", 20, 0, 1);
- test("abcde", 0, 1, "abcdefghijklmnopqrst", 20, 1, 1);
- test("abcde", 0, 1, "abcdefghijklmnopqrst", 21, 0, 0);
- test("abcde", 0, 2, "", 0, 0, 2);
- test("abcde", 0, 2, "", 0, 1, 2);
- test("abcde", 0, 2, "", 1, 0, 0);
- test("abcde", 0, 2, "abcde", 0, 0, 2);
- test("abcde", 0, 2, "abcde", 0, 1, 1);
- test("abcde", 0, 2, "abcde", 0, 2, 0);
- test("abcde", 0, 2, "abcde", 0, 4, -2);
- test("abcde", 0, 2, "abcde", 0, 5, -3);
- test("abcde", 0, 2, "abcde", 0, 6, -3);
- test("abcde", 0, 2, "abcde", 1, 0, 2);
- test("abcde", 0, 2, "abcde", 1, 1, -1);
- test("abcde", 0, 2, "abcde", 1, 2, -1);
- test("abcde", 0, 2, "abcde", 1, 3, -1);
- test("abcde", 0, 2, "abcde", 1, 4, -1);
- test("abcde", 0, 2, "abcde", 1, 5, -1);
- test("abcde", 0, 2, "abcde", 2, 0, 2);
- test("abcde", 0, 2, "abcde", 2, 1, -2);
- test("abcde", 0, 2, "abcde", 2, 2, -2);
- test("abcde", 0, 2, "abcde", 2, 3, -2);
- test("abcde", 0, 2, "abcde", 2, 4, -2);
- test("abcde", 0, 2, "abcde", 4, 0, 2);
- test("abcde", 0, 2, "abcde", 4, 1, -4);
- test("abcde", 0, 2, "abcde", 4, 2, -4);
- test("abcde", 0, 2, "abcde", 5, 0, 2);
- test("abcde", 0, 2, "abcde", 5, 1, 2);
- test("abcde", 0, 2, "abcde", 6, 0, 0);
- test("abcde", 0, 2, "abcdefghij", 0, 0, 2);
- test("abcde", 0, 2, "abcdefghij", 0, 1, 1);
- test("abcde", 0, 2, "abcdefghij", 0, 5, -3);
- test("abcde", 0, 2, "abcdefghij", 0, 9, -7);
+void test3() {
+ test("abcde", 0, 1, "abcde", 0, 1, 0);
+ test("abcde", 0, 1, "abcde", 0, 2, -1);
+ test("abcde", 0, 1, "abcde", 0, 4, -3);
+ test("abcde", 0, 1, "abcde", 0, 5, -4);
+ test("abcde", 0, 1, "abcde", 0, 6, -4);
+ test("abcde", 0, 1, "abcde", 1, 0, 1);
+ test("abcde", 0, 1, "abcde", 1, 1, -1);
+ test("abcde", 0, 1, "abcde", 1, 2, -1);
+ test("abcde", 0, 1, "abcde", 1, 3, -1);
+ test("abcde", 0, 1, "abcde", 1, 4, -1);
+ test("abcde", 0, 1, "abcde", 1, 5, -1);
+ test("abcde", 0, 1, "abcde", 2, 0, 1);
+ test("abcde", 0, 1, "abcde", 2, 1, -2);
+ test("abcde", 0, 1, "abcde", 2, 2, -2);
+ test("abcde", 0, 1, "abcde", 2, 3, -2);
+ test("abcde", 0, 1, "abcde", 2, 4, -2);
+ test("abcde", 0, 1, "abcde", 4, 0, 1);
+ test("abcde", 0, 1, "abcde", 4, 1, -4);
+ test("abcde", 0, 1, "abcde", 4, 2, -4);
+ test("abcde", 0, 1, "abcde", 5, 0, 1);
+ test("abcde", 0, 1, "abcde", 5, 1, 1);
+ test("abcde", 0, 1, "abcde", 6, 0, 0);
+ test("abcde", 0, 1, "abcdefghij", 0, 0, 1);
+ test("abcde", 0, 1, "abcdefghij", 0, 1, 0);
+ test("abcde", 0, 1, "abcdefghij", 0, 5, -4);
+ test("abcde", 0, 1, "abcdefghij", 0, 9, -8);
+ test("abcde", 0, 1, "abcdefghij", 0, 10, -9);
+ test("abcde", 0, 1, "abcdefghij", 0, 11, -9);
+ test("abcde", 0, 1, "abcdefghij", 1, 0, 1);
+ test("abcde", 0, 1, "abcdefghij", 1, 1, -1);
+ test("abcde", 0, 1, "abcdefghij", 1, 4, -1);
+ test("abcde", 0, 1, "abcdefghij", 1, 8, -1);
+ test("abcde", 0, 1, "abcdefghij", 1, 9, -1);
+ test("abcde", 0, 1, "abcdefghij", 1, 10, -1);
+ test("abcde", 0, 1, "abcdefghij", 5, 0, 1);
+ test("abcde", 0, 1, "abcdefghij", 5, 1, -5);
+ test("abcde", 0, 1, "abcdefghij", 5, 2, -5);
+ test("abcde", 0, 1, "abcdefghij", 5, 4, -5);
+ test("abcde", 0, 1, "abcdefghij", 5, 5, -5);
+ test("abcde", 0, 1, "abcdefghij", 5, 6, -5);
+ test("abcde", 0, 1, "abcdefghij", 9, 0, 1);
+ test("abcde", 0, 1, "abcdefghij", 9, 1, -9);
+ test("abcde", 0, 1, "abcdefghij", 9, 2, -9);
+ test("abcde", 0, 1, "abcdefghij", 10, 0, 1);
+ test("abcde", 0, 1, "abcdefghij", 10, 1, 1);
+ test("abcde", 0, 1, "abcdefghij", 11, 0, 0);
+ test("abcde", 0, 1, "abcdefghijklmnopqrst", 0, 0, 1);
+ test("abcde", 0, 1, "abcdefghijklmnopqrst", 0, 1, 0);
+ test("abcde", 0, 1, "abcdefghijklmnopqrst", 0, 10, -9);
+ test("abcde", 0, 1, "abcdefghijklmnopqrst", 0, 19, -18);
+ test("abcde", 0, 1, "abcdefghijklmnopqrst", 0, 20, -19);
+ test("abcde", 0, 1, "abcdefghijklmnopqrst", 0, 21, -19);
+ test("abcde", 0, 1, "abcdefghijklmnopqrst", 1, 0, 1);
+ test("abcde", 0, 1, "abcdefghijklmnopqrst", 1, 1, -1);
+ test("abcde", 0, 1, "abcdefghijklmnopqrst", 1, 9, -1);
+ test("abcde", 0, 1, "abcdefghijklmnopqrst", 1, 18, -1);
+ test("abcde", 0, 1, "abcdefghijklmnopqrst", 1, 19, -1);
+ test("abcde", 0, 1, "abcdefghijklmnopqrst", 1, 20, -1);
+ test("abcde", 0, 1, "abcdefghijklmnopqrst", 10, 0, 1);
+ test("abcde", 0, 1, "abcdefghijklmnopqrst", 10, 1, -10);
+ test("abcde", 0, 1, "abcdefghijklmnopqrst", 10, 5, -10);
+ test("abcde", 0, 1, "abcdefghijklmnopqrst", 10, 9, -10);
+ test("abcde", 0, 1, "abcdefghijklmnopqrst", 10, 10, -10);
+ test("abcde", 0, 1, "abcdefghijklmnopqrst", 10, 11, -10);
+ test("abcde", 0, 1, "abcdefghijklmnopqrst", 19, 0, 1);
+ test("abcde", 0, 1, "abcdefghijklmnopqrst", 19, 1, -19);
+ test("abcde", 0, 1, "abcdefghijklmnopqrst", 19, 2, -19);
+ test("abcde", 0, 1, "abcdefghijklmnopqrst", 20, 0, 1);
+ test("abcde", 0, 1, "abcdefghijklmnopqrst", 20, 1, 1);
+ test("abcde", 0, 1, "abcdefghijklmnopqrst", 21, 0, 0);
+ test("abcde", 0, 2, "", 0, 0, 2);
+ test("abcde", 0, 2, "", 0, 1, 2);
+ test("abcde", 0, 2, "", 1, 0, 0);
+ test("abcde", 0, 2, "abcde", 0, 0, 2);
+ test("abcde", 0, 2, "abcde", 0, 1, 1);
+ test("abcde", 0, 2, "abcde", 0, 2, 0);
+ test("abcde", 0, 2, "abcde", 0, 4, -2);
+ test("abcde", 0, 2, "abcde", 0, 5, -3);
+ test("abcde", 0, 2, "abcde", 0, 6, -3);
+ test("abcde", 0, 2, "abcde", 1, 0, 2);
+ test("abcde", 0, 2, "abcde", 1, 1, -1);
+ test("abcde", 0, 2, "abcde", 1, 2, -1);
+ test("abcde", 0, 2, "abcde", 1, 3, -1);
+ test("abcde", 0, 2, "abcde", 1, 4, -1);
+ test("abcde", 0, 2, "abcde", 1, 5, -1);
+ test("abcde", 0, 2, "abcde", 2, 0, 2);
+ test("abcde", 0, 2, "abcde", 2, 1, -2);
+ test("abcde", 0, 2, "abcde", 2, 2, -2);
+ test("abcde", 0, 2, "abcde", 2, 3, -2);
+ test("abcde", 0, 2, "abcde", 2, 4, -2);
+ test("abcde", 0, 2, "abcde", 4, 0, 2);
+ test("abcde", 0, 2, "abcde", 4, 1, -4);
+ test("abcde", 0, 2, "abcde", 4, 2, -4);
+ test("abcde", 0, 2, "abcde", 5, 0, 2);
+ test("abcde", 0, 2, "abcde", 5, 1, 2);
+ test("abcde", 0, 2, "abcde", 6, 0, 0);
+ test("abcde", 0, 2, "abcdefghij", 0, 0, 2);
+ test("abcde", 0, 2, "abcdefghij", 0, 1, 1);
+ test("abcde", 0, 2, "abcdefghij", 0, 5, -3);
+ test("abcde", 0, 2, "abcdefghij", 0, 9, -7);
}
-void test4()
-{
- test("abcde", 0, 2, "abcdefghij", 0, 10, -8);
- test("abcde", 0, 2, "abcdefghij", 0, 11, -8);
- test("abcde", 0, 2, "abcdefghij", 1, 0, 2);
- test("abcde", 0, 2, "abcdefghij", 1, 1, -1);
- test("abcde", 0, 2, "abcdefghij", 1, 4, -1);
- test("abcde", 0, 2, "abcdefghij", 1, 8, -1);
- test("abcde", 0, 2, "abcdefghij", 1, 9, -1);
- test("abcde", 0, 2, "abcdefghij", 1, 10, -1);
- test("abcde", 0, 2, "abcdefghij", 5, 0, 2);
- test("abcde", 0, 2, "abcdefghij", 5, 1, -5);
- test("abcde", 0, 2, "abcdefghij", 5, 2, -5);
- test("abcde", 0, 2, "abcdefghij", 5, 4, -5);
- test("abcde", 0, 2, "abcdefghij", 5, 5, -5);
- test("abcde", 0, 2, "abcdefghij", 5, 6, -5);
- test("abcde", 0, 2, "abcdefghij", 9, 0, 2);
- test("abcde", 0, 2, "abcdefghij", 9, 1, -9);
- test("abcde", 0, 2, "abcdefghij", 9, 2, -9);
- test("abcde", 0, 2, "abcdefghij", 10, 0, 2);
- test("abcde", 0, 2, "abcdefghij", 10, 1, 2);
- test("abcde", 0, 2, "abcdefghij", 11, 0, 0);
- test("abcde", 0, 2, "abcdefghijklmnopqrst", 0, 0, 2);
- test("abcde", 0, 2, "abcdefghijklmnopqrst", 0, 1, 1);
- test("abcde", 0, 2, "abcdefghijklmnopqrst", 0, 10, -8);
- test("abcde", 0, 2, "abcdefghijklmnopqrst", 0, 19, -17);
- test("abcde", 0, 2, "abcdefghijklmnopqrst", 0, 20, -18);
- test("abcde", 0, 2, "abcdefghijklmnopqrst", 0, 21, -18);
- test("abcde", 0, 2, "abcdefghijklmnopqrst", 1, 0, 2);
- test("abcde", 0, 2, "abcdefghijklmnopqrst", 1, 1, -1);
- test("abcde", 0, 2, "abcdefghijklmnopqrst", 1, 9, -1);
- test("abcde", 0, 2, "abcdefghijklmnopqrst", 1, 18, -1);
- test("abcde", 0, 2, "abcdefghijklmnopqrst", 1, 19, -1);
- test("abcde", 0, 2, "abcdefghijklmnopqrst", 1, 20, -1);
- test("abcde", 0, 2, "abcdefghijklmnopqrst", 10, 0, 2);
- test("abcde", 0, 2, "abcdefghijklmnopqrst", 10, 1, -10);
- test("abcde", 0, 2, "abcdefghijklmnopqrst", 10, 5, -10);
- test("abcde", 0, 2, "abcdefghijklmnopqrst", 10, 9, -10);
- test("abcde", 0, 2, "abcdefghijklmnopqrst", 10, 10, -10);
- test("abcde", 0, 2, "abcdefghijklmnopqrst", 10, 11, -10);
- test("abcde", 0, 2, "abcdefghijklmnopqrst", 19, 0, 2);
- test("abcde", 0, 2, "abcdefghijklmnopqrst", 19, 1, -19);
- test("abcde", 0, 2, "abcdefghijklmnopqrst", 19, 2, -19);
- test("abcde", 0, 2, "abcdefghijklmnopqrst", 20, 0, 2);
- test("abcde", 0, 2, "abcdefghijklmnopqrst", 20, 1, 2);
- test("abcde", 0, 2, "abcdefghijklmnopqrst", 21, 0, 0);
- test("abcde", 0, 4, "", 0, 0, 4);
- test("abcde", 0, 4, "", 0, 1, 4);
- test("abcde", 0, 4, "", 1, 0, 0);
- test("abcde", 0, 4, "abcde", 0, 0, 4);
- test("abcde", 0, 4, "abcde", 0, 1, 3);
- test("abcde", 0, 4, "abcde", 0, 2, 2);
- test("abcde", 0, 4, "abcde", 0, 4, 0);
- test("abcde", 0, 4, "abcde", 0, 5, -1);
- test("abcde", 0, 4, "abcde", 0, 6, -1);
- test("abcde", 0, 4, "abcde", 1, 0, 4);
- test("abcde", 0, 4, "abcde", 1, 1, -1);
- test("abcde", 0, 4, "abcde", 1, 2, -1);
- test("abcde", 0, 4, "abcde", 1, 3, -1);
- test("abcde", 0, 4, "abcde", 1, 4, -1);
- test("abcde", 0, 4, "abcde", 1, 5, -1);
- test("abcde", 0, 4, "abcde", 2, 0, 4);
- test("abcde", 0, 4, "abcde", 2, 1, -2);
- test("abcde", 0, 4, "abcde", 2, 2, -2);
- test("abcde", 0, 4, "abcde", 2, 3, -2);
- test("abcde", 0, 4, "abcde", 2, 4, -2);
- test("abcde", 0, 4, "abcde", 4, 0, 4);
- test("abcde", 0, 4, "abcde", 4, 1, -4);
- test("abcde", 0, 4, "abcde", 4, 2, -4);
- test("abcde", 0, 4, "abcde", 5, 0, 4);
- test("abcde", 0, 4, "abcde", 5, 1, 4);
- test("abcde", 0, 4, "abcde", 6, 0, 0);
- test("abcde", 0, 4, "abcdefghij", 0, 0, 4);
- test("abcde", 0, 4, "abcdefghij", 0, 1, 3);
- test("abcde", 0, 4, "abcdefghij", 0, 5, -1);
- test("abcde", 0, 4, "abcdefghij", 0, 9, -5);
- test("abcde", 0, 4, "abcdefghij", 0, 10, -6);
- test("abcde", 0, 4, "abcdefghij", 0, 11, -6);
- test("abcde", 0, 4, "abcdefghij", 1, 0, 4);
- test("abcde", 0, 4, "abcdefghij", 1, 1, -1);
- test("abcde", 0, 4, "abcdefghij", 1, 4, -1);
- test("abcde", 0, 4, "abcdefghij", 1, 8, -1);
- test("abcde", 0, 4, "abcdefghij", 1, 9, -1);
- test("abcde", 0, 4, "abcdefghij", 1, 10, -1);
- test("abcde", 0, 4, "abcdefghij", 5, 0, 4);
- test("abcde", 0, 4, "abcdefghij", 5, 1, -5);
- test("abcde", 0, 4, "abcdefghij", 5, 2, -5);
- test("abcde", 0, 4, "abcdefghij", 5, 4, -5);
- test("abcde", 0, 4, "abcdefghij", 5, 5, -5);
- test("abcde", 0, 4, "abcdefghij", 5, 6, -5);
- test("abcde", 0, 4, "abcdefghij", 9, 0, 4);
- test("abcde", 0, 4, "abcdefghij", 9, 1, -9);
- test("abcde", 0, 4, "abcdefghij", 9, 2, -9);
- test("abcde", 0, 4, "abcdefghij", 10, 0, 4);
- test("abcde", 0, 4, "abcdefghij", 10, 1, 4);
- test("abcde", 0, 4, "abcdefghij", 11, 0, 0);
- test("abcde", 0, 4, "abcdefghijklmnopqrst", 0, 0, 4);
- test("abcde", 0, 4, "abcdefghijklmnopqrst", 0, 1, 3);
- test("abcde", 0, 4, "abcdefghijklmnopqrst", 0, 10, -6);
- test("abcde", 0, 4, "abcdefghijklmnopqrst", 0, 19, -15);
- test("abcde", 0, 4, "abcdefghijklmnopqrst", 0, 20, -16);
- test("abcde", 0, 4, "abcdefghijklmnopqrst", 0, 21, -16);
+void test4() {
+ test("abcde", 0, 2, "abcdefghij", 0, 10, -8);
+ test("abcde", 0, 2, "abcdefghij", 0, 11, -8);
+ test("abcde", 0, 2, "abcdefghij", 1, 0, 2);
+ test("abcde", 0, 2, "abcdefghij", 1, 1, -1);
+ test("abcde", 0, 2, "abcdefghij", 1, 4, -1);
+ test("abcde", 0, 2, "abcdefghij", 1, 8, -1);
+ test("abcde", 0, 2, "abcdefghij", 1, 9, -1);
+ test("abcde", 0, 2, "abcdefghij", 1, 10, -1);
+ test("abcde", 0, 2, "abcdefghij", 5, 0, 2);
+ test("abcde", 0, 2, "abcdefghij", 5, 1, -5);
+ test("abcde", 0, 2, "abcdefghij", 5, 2, -5);
+ test("abcde", 0, 2, "abcdefghij", 5, 4, -5);
+ test("abcde", 0, 2, "abcdefghij", 5, 5, -5);
+ test("abcde", 0, 2, "abcdefghij", 5, 6, -5);
+ test("abcde", 0, 2, "abcdefghij", 9, 0, 2);
+ test("abcde", 0, 2, "abcdefghij", 9, 1, -9);
+ test("abcde", 0, 2, "abcdefghij", 9, 2, -9);
+ test("abcde", 0, 2, "abcdefghij", 10, 0, 2);
+ test("abcde", 0, 2, "abcdefghij", 10, 1, 2);
+ test("abcde", 0, 2, "abcdefghij", 11, 0, 0);
+ test("abcde", 0, 2, "abcdefghijklmnopqrst", 0, 0, 2);
+ test("abcde", 0, 2, "abcdefghijklmnopqrst", 0, 1, 1);
+ test("abcde", 0, 2, "abcdefghijklmnopqrst", 0, 10, -8);
+ test("abcde", 0, 2, "abcdefghijklmnopqrst", 0, 19, -17);
+ test("abcde", 0, 2, "abcdefghijklmnopqrst", 0, 20, -18);
+ test("abcde", 0, 2, "abcdefghijklmnopqrst", 0, 21, -18);
+ test("abcde", 0, 2, "abcdefghijklmnopqrst", 1, 0, 2);
+ test("abcde", 0, 2, "abcdefghijklmnopqrst", 1, 1, -1);
+ test("abcde", 0, 2, "abcdefghijklmnopqrst", 1, 9, -1);
+ test("abcde", 0, 2, "abcdefghijklmnopqrst", 1, 18, -1);
+ test("abcde", 0, 2, "abcdefghijklmnopqrst", 1, 19, -1);
+ test("abcde", 0, 2, "abcdefghijklmnopqrst", 1, 20, -1);
+ test("abcde", 0, 2, "abcdefghijklmnopqrst", 10, 0, 2);
+ test("abcde", 0, 2, "abcdefghijklmnopqrst", 10, 1, -10);
+ test("abcde", 0, 2, "abcdefghijklmnopqrst", 10, 5, -10);
+ test("abcde", 0, 2, "abcdefghijklmnopqrst", 10, 9, -10);
+ test("abcde", 0, 2, "abcdefghijklmnopqrst", 10, 10, -10);
+ test("abcde", 0, 2, "abcdefghijklmnopqrst", 10, 11, -10);
+ test("abcde", 0, 2, "abcdefghijklmnopqrst", 19, 0, 2);
+ test("abcde", 0, 2, "abcdefghijklmnopqrst", 19, 1, -19);
+ test("abcde", 0, 2, "abcdefghijklmnopqrst", 19, 2, -19);
+ test("abcde", 0, 2, "abcdefghijklmnopqrst", 20, 0, 2);
+ test("abcde", 0, 2, "abcdefghijklmnopqrst", 20, 1, 2);
+ test("abcde", 0, 2, "abcdefghijklmnopqrst", 21, 0, 0);
+ test("abcde", 0, 4, "", 0, 0, 4);
+ test("abcde", 0, 4, "", 0, 1, 4);
+ test("abcde", 0, 4, "", 1, 0, 0);
+ test("abcde", 0, 4, "abcde", 0, 0, 4);
+ test("abcde", 0, 4, "abcde", 0, 1, 3);
+ test("abcde", 0, 4, "abcde", 0, 2, 2);
+ test("abcde", 0, 4, "abcde", 0, 4, 0);
+ test("abcde", 0, 4, "abcde", 0, 5, -1);
+ test("abcde", 0, 4, "abcde", 0, 6, -1);
+ test("abcde", 0, 4, "abcde", 1, 0, 4);
+ test("abcde", 0, 4, "abcde", 1, 1, -1);
+ test("abcde", 0, 4, "abcde", 1, 2, -1);
+ test("abcde", 0, 4, "abcde", 1, 3, -1);
+ test("abcde", 0, 4, "abcde", 1, 4, -1);
+ test("abcde", 0, 4, "abcde", 1, 5, -1);
+ test("abcde", 0, 4, "abcde", 2, 0, 4);
+ test("abcde", 0, 4, "abcde", 2, 1, -2);
+ test("abcde", 0, 4, "abcde", 2, 2, -2);
+ test("abcde", 0, 4, "abcde", 2, 3, -2);
+ test("abcde", 0, 4, "abcde", 2, 4, -2);
+ test("abcde", 0, 4, "abcde", 4, 0, 4);
+ test("abcde", 0, 4, "abcde", 4, 1, -4);
+ test("abcde", 0, 4, "abcde", 4, 2, -4);
+ test("abcde", 0, 4, "abcde", 5, 0, 4);
+ test("abcde", 0, 4, "abcde", 5, 1, 4);
+ test("abcde", 0, 4, "abcde", 6, 0, 0);
+ test("abcde", 0, 4, "abcdefghij", 0, 0, 4);
+ test("abcde", 0, 4, "abcdefghij", 0, 1, 3);
+ test("abcde", 0, 4, "abcdefghij", 0, 5, -1);
+ test("abcde", 0, 4, "abcdefghij", 0, 9, -5);
+ test("abcde", 0, 4, "abcdefghij", 0, 10, -6);
+ test("abcde", 0, 4, "abcdefghij", 0, 11, -6);
+ test("abcde", 0, 4, "abcdefghij", 1, 0, 4);
+ test("abcde", 0, 4, "abcdefghij", 1, 1, -1);
+ test("abcde", 0, 4, "abcdefghij", 1, 4, -1);
+ test("abcde", 0, 4, "abcdefghij", 1, 8, -1);
+ test("abcde", 0, 4, "abcdefghij", 1, 9, -1);
+ test("abcde", 0, 4, "abcdefghij", 1, 10, -1);
+ test("abcde", 0, 4, "abcdefghij", 5, 0, 4);
+ test("abcde", 0, 4, "abcdefghij", 5, 1, -5);
+ test("abcde", 0, 4, "abcdefghij", 5, 2, -5);
+ test("abcde", 0, 4, "abcdefghij", 5, 4, -5);
+ test("abcde", 0, 4, "abcdefghij", 5, 5, -5);
+ test("abcde", 0, 4, "abcdefghij", 5, 6, -5);
+ test("abcde", 0, 4, "abcdefghij", 9, 0, 4);
+ test("abcde", 0, 4, "abcdefghij", 9, 1, -9);
+ test("abcde", 0, 4, "abcdefghij", 9, 2, -9);
+ test("abcde", 0, 4, "abcdefghij", 10, 0, 4);
+ test("abcde", 0, 4, "abcdefghij", 10, 1, 4);
+ test("abcde", 0, 4, "abcdefghij", 11, 0, 0);
+ test("abcde", 0, 4, "abcdefghijklmnopqrst", 0, 0, 4);
+ test("abcde", 0, 4, "abcdefghijklmnopqrst", 0, 1, 3);
+ test("abcde", 0, 4, "abcdefghijklmnopqrst", 0, 10, -6);
+ test("abcde", 0, 4, "abcdefghijklmnopqrst", 0, 19, -15);
+ test("abcde", 0, 4, "abcdefghijklmnopqrst", 0, 20, -16);
+ test("abcde", 0, 4, "abcdefghijklmnopqrst", 0, 21, -16);
}
-void test5()
-{
- test("abcde", 0, 4, "abcdefghijklmnopqrst", 1, 0, 4);
- test("abcde", 0, 4, "abcdefghijklmnopqrst", 1, 1, -1);
- test("abcde", 0, 4, "abcdefghijklmnopqrst", 1, 9, -1);
- test("abcde", 0, 4, "abcdefghijklmnopqrst", 1, 18, -1);
- test("abcde", 0, 4, "abcdefghijklmnopqrst", 1, 19, -1);
- test("abcde", 0, 4, "abcdefghijklmnopqrst", 1, 20, -1);
- test("abcde", 0, 4, "abcdefghijklmnopqrst", 10, 0, 4);
- test("abcde", 0, 4, "abcdefghijklmnopqrst", 10, 1, -10);
- test("abcde", 0, 4, "abcdefghijklmnopqrst", 10, 5, -10);
- test("abcde", 0, 4, "abcdefghijklmnopqrst", 10, 9, -10);
- test("abcde", 0, 4, "abcdefghijklmnopqrst", 10, 10, -10);
- test("abcde", 0, 4, "abcdefghijklmnopqrst", 10, 11, -10);
- test("abcde", 0, 4, "abcdefghijklmnopqrst", 19, 0, 4);
- test("abcde", 0, 4, "abcdefghijklmnopqrst", 19, 1, -19);
- test("abcde", 0, 4, "abcdefghijklmnopqrst", 19, 2, -19);
- test("abcde", 0, 4, "abcdefghijklmnopqrst", 20, 0, 4);
- test("abcde", 0, 4, "abcdefghijklmnopqrst", 20, 1, 4);
- test("abcde", 0, 4, "abcdefghijklmnopqrst", 21, 0, 0);
- test("abcde", 0, 5, "", 0, 0, 5);
- test("abcde", 0, 5, "", 0, 1, 5);
- test("abcde", 0, 5, "", 1, 0, 0);
- test("abcde", 0, 5, "abcde", 0, 0, 5);
- test("abcde", 0, 5, "abcde", 0, 1, 4);
- test("abcde", 0, 5, "abcde", 0, 2, 3);
- test("abcde", 0, 5, "abcde", 0, 4, 1);
- test("abcde", 0, 5, "abcde", 0, 5, 0);
- test("abcde", 0, 5, "abcde", 0, 6, 0);
- test("abcde", 0, 5, "abcde", 1, 0, 5);
- test("abcde", 0, 5, "abcde", 1, 1, -1);
- test("abcde", 0, 5, "abcde", 1, 2, -1);
- test("abcde", 0, 5, "abcde", 1, 3, -1);
- test("abcde", 0, 5, "abcde", 1, 4, -1);
- test("abcde", 0, 5, "abcde", 1, 5, -1);
- test("abcde", 0, 5, "abcde", 2, 0, 5);
- test("abcde", 0, 5, "abcde", 2, 1, -2);
- test("abcde", 0, 5, "abcde", 2, 2, -2);
- test("abcde", 0, 5, "abcde", 2, 3, -2);
- test("abcde", 0, 5, "abcde", 2, 4, -2);
- test("abcde", 0, 5, "abcde", 4, 0, 5);
- test("abcde", 0, 5, "abcde", 4, 1, -4);
- test("abcde", 0, 5, "abcde", 4, 2, -4);
- test("abcde", 0, 5, "abcde", 5, 0, 5);
- test("abcde", 0, 5, "abcde", 5, 1, 5);
- test("abcde", 0, 5, "abcde", 6, 0, 0);
- test("abcde", 0, 5, "abcdefghij", 0, 0, 5);
- test("abcde", 0, 5, "abcdefghij", 0, 1, 4);
- test("abcde", 0, 5, "abcdefghij", 0, 5, 0);
- test("abcde", 0, 5, "abcdefghij", 0, 9, -4);
- test("abcde", 0, 5, "abcdefghij", 0, 10, -5);
- test("abcde", 0, 5, "abcdefghij", 0, 11, -5);
- test("abcde", 0, 5, "abcdefghij", 1, 0, 5);
- test("abcde", 0, 5, "abcdefghij", 1, 1, -1);
- test("abcde", 0, 5, "abcdefghij", 1, 4, -1);
- test("abcde", 0, 5, "abcdefghij", 1, 8, -1);
- test("abcde", 0, 5, "abcdefghij", 1, 9, -1);
- test("abcde", 0, 5, "abcdefghij", 1, 10, -1);
- test("abcde", 0, 5, "abcdefghij", 5, 0, 5);
- test("abcde", 0, 5, "abcdefghij", 5, 1, -5);
- test("abcde", 0, 5, "abcdefghij", 5, 2, -5);
- test("abcde", 0, 5, "abcdefghij", 5, 4, -5);
- test("abcde", 0, 5, "abcdefghij", 5, 5, -5);
- test("abcde", 0, 5, "abcdefghij", 5, 6, -5);
- test("abcde", 0, 5, "abcdefghij", 9, 0, 5);
- test("abcde", 0, 5, "abcdefghij", 9, 1, -9);
- test("abcde", 0, 5, "abcdefghij", 9, 2, -9);
- test("abcde", 0, 5, "abcdefghij", 10, 0, 5);
- test("abcde", 0, 5, "abcdefghij", 10, 1, 5);
- test("abcde", 0, 5, "abcdefghij", 11, 0, 0);
- test("abcde", 0, 5, "abcdefghijklmnopqrst", 0, 0, 5);
- test("abcde", 0, 5, "abcdefghijklmnopqrst", 0, 1, 4);
- test("abcde", 0, 5, "abcdefghijklmnopqrst", 0, 10, -5);
- test("abcde", 0, 5, "abcdefghijklmnopqrst", 0, 19, -14);
- test("abcde", 0, 5, "abcdefghijklmnopqrst", 0, 20, -15);
- test("abcde", 0, 5, "abcdefghijklmnopqrst", 0, 21, -15);
- test("abcde", 0, 5, "abcdefghijklmnopqrst", 1, 0, 5);
- test("abcde", 0, 5, "abcdefghijklmnopqrst", 1, 1, -1);
- test("abcde", 0, 5, "abcdefghijklmnopqrst", 1, 9, -1);
- test("abcde", 0, 5, "abcdefghijklmnopqrst", 1, 18, -1);
- test("abcde", 0, 5, "abcdefghijklmnopqrst", 1, 19, -1);
- test("abcde", 0, 5, "abcdefghijklmnopqrst", 1, 20, -1);
- test("abcde", 0, 5, "abcdefghijklmnopqrst", 10, 0, 5);
- test("abcde", 0, 5, "abcdefghijklmnopqrst", 10, 1, -10);
- test("abcde", 0, 5, "abcdefghijklmnopqrst", 10, 5, -10);
- test("abcde", 0, 5, "abcdefghijklmnopqrst", 10, 9, -10);
- test("abcde", 0, 5, "abcdefghijklmnopqrst", 10, 10, -10);
- test("abcde", 0, 5, "abcdefghijklmnopqrst", 10, 11, -10);
- test("abcde", 0, 5, "abcdefghijklmnopqrst", 19, 0, 5);
- test("abcde", 0, 5, "abcdefghijklmnopqrst", 19, 1, -19);
- test("abcde", 0, 5, "abcdefghijklmnopqrst", 19, 2, -19);
- test("abcde", 0, 5, "abcdefghijklmnopqrst", 20, 0, 5);
- test("abcde", 0, 5, "abcdefghijklmnopqrst", 20, 1, 5);
- test("abcde", 0, 5, "abcdefghijklmnopqrst", 21, 0, 0);
- test("abcde", 0, 6, "", 0, 0, 5);
- test("abcde", 0, 6, "", 0, 1, 5);
- test("abcde", 0, 6, "", 1, 0, 0);
- test("abcde", 0, 6, "abcde", 0, 0, 5);
- test("abcde", 0, 6, "abcde", 0, 1, 4);
- test("abcde", 0, 6, "abcde", 0, 2, 3);
- test("abcde", 0, 6, "abcde", 0, 4, 1);
- test("abcde", 0, 6, "abcde", 0, 5, 0);
+void test5() {
+ test("abcde", 0, 4, "abcdefghijklmnopqrst", 1, 0, 4);
+ test("abcde", 0, 4, "abcdefghijklmnopqrst", 1, 1, -1);
+ test("abcde", 0, 4, "abcdefghijklmnopqrst", 1, 9, -1);
+ test("abcde", 0, 4, "abcdefghijklmnopqrst", 1, 18, -1);
+ test("abcde", 0, 4, "abcdefghijklmnopqrst", 1, 19, -1);
+ test("abcde", 0, 4, "abcdefghijklmnopqrst", 1, 20, -1);
+ test("abcde", 0, 4, "abcdefghijklmnopqrst", 10, 0, 4);
+ test("abcde", 0, 4, "abcdefghijklmnopqrst", 10, 1, -10);
+ test("abcde", 0, 4, "abcdefghijklmnopqrst", 10, 5, -10);
+ test("abcde", 0, 4, "abcdefghijklmnopqrst", 10, 9, -10);
+ test("abcde", 0, 4, "abcdefghijklmnopqrst", 10, 10, -10);
+ test("abcde", 0, 4, "abcdefghijklmnopqrst", 10, 11, -10);
+ test("abcde", 0, 4, "abcdefghijklmnopqrst", 19, 0, 4);
+ test("abcde", 0, 4, "abcdefghijklmnopqrst", 19, 1, -19);
+ test("abcde", 0, 4, "abcdefghijklmnopqrst", 19, 2, -19);
+ test("abcde", 0, 4, "abcdefghijklmnopqrst", 20, 0, 4);
+ test("abcde", 0, 4, "abcdefghijklmnopqrst", 20, 1, 4);
+ test("abcde", 0, 4, "abcdefghijklmnopqrst", 21, 0, 0);
+ test("abcde", 0, 5, "", 0, 0, 5);
+ test("abcde", 0, 5, "", 0, 1, 5);
+ test("abcde", 0, 5, "", 1, 0, 0);
+ test("abcde", 0, 5, "abcde", 0, 0, 5);
+ test("abcde", 0, 5, "abcde", 0, 1, 4);
+ test("abcde", 0, 5, "abcde", 0, 2, 3);
+ test("abcde", 0, 5, "abcde", 0, 4, 1);
+ test("abcde", 0, 5, "abcde", 0, 5, 0);
+ test("abcde", 0, 5, "abcde", 0, 6, 0);
+ test("abcde", 0, 5, "abcde", 1, 0, 5);
+ test("abcde", 0, 5, "abcde", 1, 1, -1);
+ test("abcde", 0, 5, "abcde", 1, 2, -1);
+ test("abcde", 0, 5, "abcde", 1, 3, -1);
+ test("abcde", 0, 5, "abcde", 1, 4, -1);
+ test("abcde", 0, 5, "abcde", 1, 5, -1);
+ test("abcde", 0, 5, "abcde", 2, 0, 5);
+ test("abcde", 0, 5, "abcde", 2, 1, -2);
+ test("abcde", 0, 5, "abcde", 2, 2, -2);
+ test("abcde", 0, 5, "abcde", 2, 3, -2);
+ test("abcde", 0, 5, "abcde", 2, 4, -2);
+ test("abcde", 0, 5, "abcde", 4, 0, 5);
+ test("abcde", 0, 5, "abcde", 4, 1, -4);
+ test("abcde", 0, 5, "abcde", 4, 2, -4);
+ test("abcde", 0, 5, "abcde", 5, 0, 5);
+ test("abcde", 0, 5, "abcde", 5, 1, 5);
+ test("abcde", 0, 5, "abcde", 6, 0, 0);
+ test("abcde", 0, 5, "abcdefghij", 0, 0, 5);
+ test("abcde", 0, 5, "abcdefghij", 0, 1, 4);
+ test("abcde", 0, 5, "abcdefghij", 0, 5, 0);
+ test("abcde", 0, 5, "abcdefghij", 0, 9, -4);
+ test("abcde", 0, 5, "abcdefghij", 0, 10, -5);
+ test("abcde", 0, 5, "abcdefghij", 0, 11, -5);
+ test("abcde", 0, 5, "abcdefghij", 1, 0, 5);
+ test("abcde", 0, 5, "abcdefghij", 1, 1, -1);
+ test("abcde", 0, 5, "abcdefghij", 1, 4, -1);
+ test("abcde", 0, 5, "abcdefghij", 1, 8, -1);
+ test("abcde", 0, 5, "abcdefghij", 1, 9, -1);
+ test("abcde", 0, 5, "abcdefghij", 1, 10, -1);
+ test("abcde", 0, 5, "abcdefghij", 5, 0, 5);
+ test("abcde", 0, 5, "abcdefghij", 5, 1, -5);
+ test("abcde", 0, 5, "abcdefghij", 5, 2, -5);
+ test("abcde", 0, 5, "abcdefghij", 5, 4, -5);
+ test("abcde", 0, 5, "abcdefghij", 5, 5, -5);
+ test("abcde", 0, 5, "abcdefghij", 5, 6, -5);
+ test("abcde", 0, 5, "abcdefghij", 9, 0, 5);
+ test("abcde", 0, 5, "abcdefghij", 9, 1, -9);
+ test("abcde", 0, 5, "abcdefghij", 9, 2, -9);
+ test("abcde", 0, 5, "abcdefghij", 10, 0, 5);
+ test("abcde", 0, 5, "abcdefghij", 10, 1, 5);
+ test("abcde", 0, 5, "abcdefghij", 11, 0, 0);
+ test("abcde", 0, 5, "abcdefghijklmnopqrst", 0, 0, 5);
+ test("abcde", 0, 5, "abcdefghijklmnopqrst", 0, 1, 4);
+ test("abcde", 0, 5, "abcdefghijklmnopqrst", 0, 10, -5);
+ test("abcde", 0, 5, "abcdefghijklmnopqrst", 0, 19, -14);
+ test("abcde", 0, 5, "abcdefghijklmnopqrst", 0, 20, -15);
+ test("abcde", 0, 5, "abcdefghijklmnopqrst", 0, 21, -15);
+ test("abcde", 0, 5, "abcdefghijklmnopqrst", 1, 0, 5);
+ test("abcde", 0, 5, "abcdefghijklmnopqrst", 1, 1, -1);
+ test("abcde", 0, 5, "abcdefghijklmnopqrst", 1, 9, -1);
+ test("abcde", 0, 5, "abcdefghijklmnopqrst", 1, 18, -1);
+ test("abcde", 0, 5, "abcdefghijklmnopqrst", 1, 19, -1);
+ test("abcde", 0, 5, "abcdefghijklmnopqrst", 1, 20, -1);
+ test("abcde", 0, 5, "abcdefghijklmnopqrst", 10, 0, 5);
+ test("abcde", 0, 5, "abcdefghijklmnopqrst", 10, 1, -10);
+ test("abcde", 0, 5, "abcdefghijklmnopqrst", 10, 5, -10);
+ test("abcde", 0, 5, "abcdefghijklmnopqrst", 10, 9, -10);
+ test("abcde", 0, 5, "abcdefghijklmnopqrst", 10, 10, -10);
+ test("abcde", 0, 5, "abcdefghijklmnopqrst", 10, 11, -10);
+ test("abcde", 0, 5, "abcdefghijklmnopqrst", 19, 0, 5);
+ test("abcde", 0, 5, "abcdefghijklmnopqrst", 19, 1, -19);
+ test("abcde", 0, 5, "abcdefghijklmnopqrst", 19, 2, -19);
+ test("abcde", 0, 5, "abcdefghijklmnopqrst", 20, 0, 5);
+ test("abcde", 0, 5, "abcdefghijklmnopqrst", 20, 1, 5);
+ test("abcde", 0, 5, "abcdefghijklmnopqrst", 21, 0, 0);
+ test("abcde", 0, 6, "", 0, 0, 5);
+ test("abcde", 0, 6, "", 0, 1, 5);
+ test("abcde", 0, 6, "", 1, 0, 0);
+ test("abcde", 0, 6, "abcde", 0, 0, 5);
+ test("abcde", 0, 6, "abcde", 0, 1, 4);
+ test("abcde", 0, 6, "abcde", 0, 2, 3);
+ test("abcde", 0, 6, "abcde", 0, 4, 1);
+ test("abcde", 0, 6, "abcde", 0, 5, 0);
}
-void test6()
-{
- test("abcde", 0, 6, "abcde", 0, 6, 0);
- test("abcde", 0, 6, "abcde", 1, 0, 5);
- test("abcde", 0, 6, "abcde", 1, 1, -1);
- test("abcde", 0, 6, "abcde", 1, 2, -1);
- test("abcde", 0, 6, "abcde", 1, 3, -1);
- test("abcde", 0, 6, "abcde", 1, 4, -1);
- test("abcde", 0, 6, "abcde", 1, 5, -1);
- test("abcde", 0, 6, "abcde", 2, 0, 5);
- test("abcde", 0, 6, "abcde", 2, 1, -2);
- test("abcde", 0, 6, "abcde", 2, 2, -2);
- test("abcde", 0, 6, "abcde", 2, 3, -2);
- test("abcde", 0, 6, "abcde", 2, 4, -2);
- test("abcde", 0, 6, "abcde", 4, 0, 5);
- test("abcde", 0, 6, "abcde", 4, 1, -4);
- test("abcde", 0, 6, "abcde", 4, 2, -4);
- test("abcde", 0, 6, "abcde", 5, 0, 5);
- test("abcde", 0, 6, "abcde", 5, 1, 5);
- test("abcde", 0, 6, "abcde", 6, 0, 0);
- test("abcde", 0, 6, "abcdefghij", 0, 0, 5);
- test("abcde", 0, 6, "abcdefghij", 0, 1, 4);
- test("abcde", 0, 6, "abcdefghij", 0, 5, 0);
- test("abcde", 0, 6, "abcdefghij", 0, 9, -4);
- test("abcde", 0, 6, "abcdefghij", 0, 10, -5);
- test("abcde", 0, 6, "abcdefghij", 0, 11, -5);
- test("abcde", 0, 6, "abcdefghij", 1, 0, 5);
- test("abcde", 0, 6, "abcdefghij", 1, 1, -1);
- test("abcde", 0, 6, "abcdefghij", 1, 4, -1);
- test("abcde", 0, 6, "abcdefghij", 1, 8, -1);
- test("abcde", 0, 6, "abcdefghij", 1, 9, -1);
- test("abcde", 0, 6, "abcdefghij", 1, 10, -1);
- test("abcde", 0, 6, "abcdefghij", 5, 0, 5);
- test("abcde", 0, 6, "abcdefghij", 5, 1, -5);
- test("abcde", 0, 6, "abcdefghij", 5, 2, -5);
- test("abcde", 0, 6, "abcdefghij", 5, 4, -5);
- test("abcde", 0, 6, "abcdefghij", 5, 5, -5);
- test("abcde", 0, 6, "abcdefghij", 5, 6, -5);
- test("abcde", 0, 6, "abcdefghij", 9, 0, 5);
- test("abcde", 0, 6, "abcdefghij", 9, 1, -9);
- test("abcde", 0, 6, "abcdefghij", 9, 2, -9);
- test("abcde", 0, 6, "abcdefghij", 10, 0, 5);
- test("abcde", 0, 6, "abcdefghij", 10, 1, 5);
- test("abcde", 0, 6, "abcdefghij", 11, 0, 0);
- test("abcde", 0, 6, "abcdefghijklmnopqrst", 0, 0, 5);
- test("abcde", 0, 6, "abcdefghijklmnopqrst", 0, 1, 4);
- test("abcde", 0, 6, "abcdefghijklmnopqrst", 0, 10, -5);
- test("abcde", 0, 6, "abcdefghijklmnopqrst", 0, 19, -14);
- test("abcde", 0, 6, "abcdefghijklmnopqrst", 0, 20, -15);
- test("abcde", 0, 6, "abcdefghijklmnopqrst", 0, 21, -15);
- test("abcde", 0, 6, "abcdefghijklmnopqrst", 1, 0, 5);
- test("abcde", 0, 6, "abcdefghijklmnopqrst", 1, 1, -1);
- test("abcde", 0, 6, "abcdefghijklmnopqrst", 1, 9, -1);
- test("abcde", 0, 6, "abcdefghijklmnopqrst", 1, 18, -1);
- test("abcde", 0, 6, "abcdefghijklmnopqrst", 1, 19, -1);
- test("abcde", 0, 6, "abcdefghijklmnopqrst", 1, 20, -1);
- test("abcde", 0, 6, "abcdefghijklmnopqrst", 10, 0, 5);
- test("abcde", 0, 6, "abcdefghijklmnopqrst", 10, 1, -10);
- test("abcde", 0, 6, "abcdefghijklmnopqrst", 10, 5, -10);
- test("abcde", 0, 6, "abcdefghijklmnopqrst", 10, 9, -10);
- test("abcde", 0, 6, "abcdefghijklmnopqrst", 10, 10, -10);
- test("abcde", 0, 6, "abcdefghijklmnopqrst", 10, 11, -10);
- test("abcde", 0, 6, "abcdefghijklmnopqrst", 19, 0, 5);
- test("abcde", 0, 6, "abcdefghijklmnopqrst", 19, 1, -19);
- test("abcde", 0, 6, "abcdefghijklmnopqrst", 19, 2, -19);
- test("abcde", 0, 6, "abcdefghijklmnopqrst", 20, 0, 5);
- test("abcde", 0, 6, "abcdefghijklmnopqrst", 20, 1, 5);
- test("abcde", 0, 6, "abcdefghijklmnopqrst", 21, 0, 0);
- test("abcde", 1, 0, "", 0, 0, 0);
- test("abcde", 1, 0, "", 0, 1, 0);
- test("abcde", 1, 0, "", 1, 0, 0);
- test("abcde", 1, 0, "abcde", 0, 0, 0);
- test("abcde", 1, 0, "abcde", 0, 1, -1);
- test("abcde", 1, 0, "abcde", 0, 2, -2);
- test("abcde", 1, 0, "abcde", 0, 4, -4);
- test("abcde", 1, 0, "abcde", 0, 5, -5);
- test("abcde", 1, 0, "abcde", 0, 6, -5);
- test("abcde", 1, 0, "abcde", 1, 0, 0);
- test("abcde", 1, 0, "abcde", 1, 1, -1);
- test("abcde", 1, 0, "abcde", 1, 2, -2);
- test("abcde", 1, 0, "abcde", 1, 3, -3);
- test("abcde", 1, 0, "abcde", 1, 4, -4);
- test("abcde", 1, 0, "abcde", 1, 5, -4);
- test("abcde", 1, 0, "abcde", 2, 0, 0);
- test("abcde", 1, 0, "abcde", 2, 1, -1);
- test("abcde", 1, 0, "abcde", 2, 2, -2);
- test("abcde", 1, 0, "abcde", 2, 3, -3);
- test("abcde", 1, 0, "abcde", 2, 4, -3);
- test("abcde", 1, 0, "abcde", 4, 0, 0);
- test("abcde", 1, 0, "abcde", 4, 1, -1);
- test("abcde", 1, 0, "abcde", 4, 2, -1);
- test("abcde", 1, 0, "abcde", 5, 0, 0);
- test("abcde", 1, 0, "abcde", 5, 1, 0);
- test("abcde", 1, 0, "abcde", 6, 0, 0);
- test("abcde", 1, 0, "abcdefghij", 0, 0, 0);
- test("abcde", 1, 0, "abcdefghij", 0, 1, -1);
- test("abcde", 1, 0, "abcdefghij", 0, 5, -5);
- test("abcde", 1, 0, "abcdefghij", 0, 9, -9);
- test("abcde", 1, 0, "abcdefghij", 0, 10, -10);
- test("abcde", 1, 0, "abcdefghij", 0, 11, -10);
- test("abcde", 1, 0, "abcdefghij", 1, 0, 0);
- test("abcde", 1, 0, "abcdefghij", 1, 1, -1);
+void test6() {
+ test("abcde", 0, 6, "abcde", 0, 6, 0);
+ test("abcde", 0, 6, "abcde", 1, 0, 5);
+ test("abcde", 0, 6, "abcde", 1, 1, -1);
+ test("abcde", 0, 6, "abcde", 1, 2, -1);
+ test("abcde", 0, 6, "abcde", 1, 3, -1);
+ test("abcde", 0, 6, "abcde", 1, 4, -1);
+ test("abcde", 0, 6, "abcde", 1, 5, -1);
+ test("abcde", 0, 6, "abcde", 2, 0, 5);
+ test("abcde", 0, 6, "abcde", 2, 1, -2);
+ test("abcde", 0, 6, "abcde", 2, 2, -2);
+ test("abcde", 0, 6, "abcde", 2, 3, -2);
+ test("abcde", 0, 6, "abcde", 2, 4, -2);
+ test("abcde", 0, 6, "abcde", 4, 0, 5);
+ test("abcde", 0, 6, "abcde", 4, 1, -4);
+ test("abcde", 0, 6, "abcde", 4, 2, -4);
+ test("abcde", 0, 6, "abcde", 5, 0, 5);
+ test("abcde", 0, 6, "abcde", 5, 1, 5);
+ test("abcde", 0, 6, "abcde", 6, 0, 0);
+ test("abcde", 0, 6, "abcdefghij", 0, 0, 5);
+ test("abcde", 0, 6, "abcdefghij", 0, 1, 4);
+ test("abcde", 0, 6, "abcdefghij", 0, 5, 0);
+ test("abcde", 0, 6, "abcdefghij", 0, 9, -4);
+ test("abcde", 0, 6, "abcdefghij", 0, 10, -5);
+ test("abcde", 0, 6, "abcdefghij", 0, 11, -5);
+ test("abcde", 0, 6, "abcdefghij", 1, 0, 5);
+ test("abcde", 0, 6, "abcdefghij", 1, 1, -1);
+ test("abcde", 0, 6, "abcdefghij", 1, 4, -1);
+ test("abcde", 0, 6, "abcdefghij", 1, 8, -1);
+ test("abcde", 0, 6, "abcdefghij", 1, 9, -1);
+ test("abcde", 0, 6, "abcdefghij", 1, 10, -1);
+ test("abcde", 0, 6, "abcdefghij", 5, 0, 5);
+ test("abcde", 0, 6, "abcdefghij", 5, 1, -5);
+ test("abcde", 0, 6, "abcdefghij", 5, 2, -5);
+ test("abcde", 0, 6, "abcdefghij", 5, 4, -5);
+ test("abcde", 0, 6, "abcdefghij", 5, 5, -5);
+ test("abcde", 0, 6, "abcdefghij", 5, 6, -5);
+ test("abcde", 0, 6, "abcdefghij", 9, 0, 5);
+ test("abcde", 0, 6, "abcdefghij", 9, 1, -9);
+ test("abcde", 0, 6, "abcdefghij", 9, 2, -9);
+ test("abcde", 0, 6, "abcdefghij", 10, 0, 5);
+ test("abcde", 0, 6, "abcdefghij", 10, 1, 5);
+ test("abcde", 0, 6, "abcdefghij", 11, 0, 0);
+ test("abcde", 0, 6, "abcdefghijklmnopqrst", 0, 0, 5);
+ test("abcde", 0, 6, "abcdefghijklmnopqrst", 0, 1, 4);
+ test("abcde", 0, 6, "abcdefghijklmnopqrst", 0, 10, -5);
+ test("abcde", 0, 6, "abcdefghijklmnopqrst", 0, 19, -14);
+ test("abcde", 0, 6, "abcdefghijklmnopqrst", 0, 20, -15);
+ test("abcde", 0, 6, "abcdefghijklmnopqrst", 0, 21, -15);
+ test("abcde", 0, 6, "abcdefghijklmnopqrst", 1, 0, 5);
+ test("abcde", 0, 6, "abcdefghijklmnopqrst", 1, 1, -1);
+ test("abcde", 0, 6, "abcdefghijklmnopqrst", 1, 9, -1);
+ test("abcde", 0, 6, "abcdefghijklmnopqrst", 1, 18, -1);
+ test("abcde", 0, 6, "abcdefghijklmnopqrst", 1, 19, -1);
+ test("abcde", 0, 6, "abcdefghijklmnopqrst", 1, 20, -1);
+ test("abcde", 0, 6, "abcdefghijklmnopqrst", 10, 0, 5);
+ test("abcde", 0, 6, "abcdefghijklmnopqrst", 10, 1, -10);
+ test("abcde", 0, 6, "abcdefghijklmnopqrst", 10, 5, -10);
+ test("abcde", 0, 6, "abcdefghijklmnopqrst", 10, 9, -10);
+ test("abcde", 0, 6, "abcdefghijklmnopqrst", 10, 10, -10);
+ test("abcde", 0, 6, "abcdefghijklmnopqrst", 10, 11, -10);
+ test("abcde", 0, 6, "abcdefghijklmnopqrst", 19, 0, 5);
+ test("abcde", 0, 6, "abcdefghijklmnopqrst", 19, 1, -19);
+ test("abcde", 0, 6, "abcdefghijklmnopqrst", 19, 2, -19);
+ test("abcde", 0, 6, "abcdefghijklmnopqrst", 20, 0, 5);
+ test("abcde", 0, 6, "abcdefghijklmnopqrst", 20, 1, 5);
+ test("abcde", 0, 6, "abcdefghijklmnopqrst", 21, 0, 0);
+ test("abcde", 1, 0, "", 0, 0, 0);
+ test("abcde", 1, 0, "", 0, 1, 0);
+ test("abcde", 1, 0, "", 1, 0, 0);
+ test("abcde", 1, 0, "abcde", 0, 0, 0);
+ test("abcde", 1, 0, "abcde", 0, 1, -1);
+ test("abcde", 1, 0, "abcde", 0, 2, -2);
+ test("abcde", 1, 0, "abcde", 0, 4, -4);
+ test("abcde", 1, 0, "abcde", 0, 5, -5);
+ test("abcde", 1, 0, "abcde", 0, 6, -5);
+ test("abcde", 1, 0, "abcde", 1, 0, 0);
+ test("abcde", 1, 0, "abcde", 1, 1, -1);
+ test("abcde", 1, 0, "abcde", 1, 2, -2);
+ test("abcde", 1, 0, "abcde", 1, 3, -3);
+ test("abcde", 1, 0, "abcde", 1, 4, -4);
+ test("abcde", 1, 0, "abcde", 1, 5, -4);
+ test("abcde", 1, 0, "abcde", 2, 0, 0);
+ test("abcde", 1, 0, "abcde", 2, 1, -1);
+ test("abcde", 1, 0, "abcde", 2, 2, -2);
+ test("abcde", 1, 0, "abcde", 2, 3, -3);
+ test("abcde", 1, 0, "abcde", 2, 4, -3);
+ test("abcde", 1, 0, "abcde", 4, 0, 0);
+ test("abcde", 1, 0, "abcde", 4, 1, -1);
+ test("abcde", 1, 0, "abcde", 4, 2, -1);
+ test("abcde", 1, 0, "abcde", 5, 0, 0);
+ test("abcde", 1, 0, "abcde", 5, 1, 0);
+ test("abcde", 1, 0, "abcde", 6, 0, 0);
+ test("abcde", 1, 0, "abcdefghij", 0, 0, 0);
+ test("abcde", 1, 0, "abcdefghij", 0, 1, -1);
+ test("abcde", 1, 0, "abcdefghij", 0, 5, -5);
+ test("abcde", 1, 0, "abcdefghij", 0, 9, -9);
+ test("abcde", 1, 0, "abcdefghij", 0, 10, -10);
+ test("abcde", 1, 0, "abcdefghij", 0, 11, -10);
+ test("abcde", 1, 0, "abcdefghij", 1, 0, 0);
+ test("abcde", 1, 0, "abcdefghij", 1, 1, -1);
}
-void test7()
-{
- test("abcde", 1, 0, "abcdefghij", 1, 4, -4);
- test("abcde", 1, 0, "abcdefghij", 1, 8, -8);
- test("abcde", 1, 0, "abcdefghij", 1, 9, -9);
- test("abcde", 1, 0, "abcdefghij", 1, 10, -9);
- test("abcde", 1, 0, "abcdefghij", 5, 0, 0);
- test("abcde", 1, 0, "abcdefghij", 5, 1, -1);
- test("abcde", 1, 0, "abcdefghij", 5, 2, -2);
- test("abcde", 1, 0, "abcdefghij", 5, 4, -4);
- test("abcde", 1, 0, "abcdefghij", 5, 5, -5);
- test("abcde", 1, 0, "abcdefghij", 5, 6, -5);
- test("abcde", 1, 0, "abcdefghij", 9, 0, 0);
- test("abcde", 1, 0, "abcdefghij", 9, 1, -1);
- test("abcde", 1, 0, "abcdefghij", 9, 2, -1);
- test("abcde", 1, 0, "abcdefghij", 10, 0, 0);
- test("abcde", 1, 0, "abcdefghij", 10, 1, 0);
- test("abcde", 1, 0, "abcdefghij", 11, 0, 0);
- test("abcde", 1, 0, "abcdefghijklmnopqrst", 0, 0, 0);
- test("abcde", 1, 0, "abcdefghijklmnopqrst", 0, 1, -1);
- test("abcde", 1, 0, "abcdefghijklmnopqrst", 0, 10, -10);
- test("abcde", 1, 0, "abcdefghijklmnopqrst", 0, 19, -19);
- test("abcde", 1, 0, "abcdefghijklmnopqrst", 0, 20, -20);
- test("abcde", 1, 0, "abcdefghijklmnopqrst", 0, 21, -20);
- test("abcde", 1, 0, "abcdefghijklmnopqrst", 1, 0, 0);
- test("abcde", 1, 0, "abcdefghijklmnopqrst", 1, 1, -1);
- test("abcde", 1, 0, "abcdefghijklmnopqrst", 1, 9, -9);
- test("abcde", 1, 0, "abcdefghijklmnopqrst", 1, 18, -18);
- test("abcde", 1, 0, "abcdefghijklmnopqrst", 1, 19, -19);
- test("abcde", 1, 0, "abcdefghijklmnopqrst", 1, 20, -19);
- test("abcde", 1, 0, "abcdefghijklmnopqrst", 10, 0, 0);
- test("abcde", 1, 0, "abcdefghijklmnopqrst", 10, 1, -1);
- test("abcde", 1, 0, "abcdefghijklmnopqrst", 10, 5, -5);
- test("abcde", 1, 0, "abcdefghijklmnopqrst", 10, 9, -9);
- test("abcde", 1, 0, "abcdefghijklmnopqrst", 10, 10, -10);
- test("abcde", 1, 0, "abcdefghijklmnopqrst", 10, 11, -10);
- test("abcde", 1, 0, "abcdefghijklmnopqrst", 19, 0, 0);
- test("abcde", 1, 0, "abcdefghijklmnopqrst", 19, 1, -1);
- test("abcde", 1, 0, "abcdefghijklmnopqrst", 19, 2, -1);
- test("abcde", 1, 0, "abcdefghijklmnopqrst", 20, 0, 0);
- test("abcde", 1, 0, "abcdefghijklmnopqrst", 20, 1, 0);
- test("abcde", 1, 0, "abcdefghijklmnopqrst", 21, 0, 0);
- test("abcde", 1, 1, "", 0, 0, 1);
- test("abcde", 1, 1, "", 0, 1, 1);
- test("abcde", 1, 1, "", 1, 0, 0);
- test("abcde", 1, 1, "abcde", 0, 0, 1);
- test("abcde", 1, 1, "abcde", 0, 1, 1);
- test("abcde", 1, 1, "abcde", 0, 2, 1);
- test("abcde", 1, 1, "abcde", 0, 4, 1);
- test("abcde", 1, 1, "abcde", 0, 5, 1);
- test("abcde", 1, 1, "abcde", 0, 6, 1);
- test("abcde", 1, 1, "abcde", 1, 0, 1);
- test("abcde", 1, 1, "abcde", 1, 1, 0);
- test("abcde", 1, 1, "abcde", 1, 2, -1);
- test("abcde", 1, 1, "abcde", 1, 3, -2);
- test("abcde", 1, 1, "abcde", 1, 4, -3);
- test("abcde", 1, 1, "abcde", 1, 5, -3);
- test("abcde", 1, 1, "abcde", 2, 0, 1);
- test("abcde", 1, 1, "abcde", 2, 1, -1);
- test("abcde", 1, 1, "abcde", 2, 2, -1);
- test("abcde", 1, 1, "abcde", 2, 3, -1);
- test("abcde", 1, 1, "abcde", 2, 4, -1);
- test("abcde", 1, 1, "abcde", 4, 0, 1);
- test("abcde", 1, 1, "abcde", 4, 1, -3);
- test("abcde", 1, 1, "abcde", 4, 2, -3);
- test("abcde", 1, 1, "abcde", 5, 0, 1);
- test("abcde", 1, 1, "abcde", 5, 1, 1);
- test("abcde", 1, 1, "abcde", 6, 0, 0);
- test("abcde", 1, 1, "abcdefghij", 0, 0, 1);
- test("abcde", 1, 1, "abcdefghij", 0, 1, 1);
- test("abcde", 1, 1, "abcdefghij", 0, 5, 1);
- test("abcde", 1, 1, "abcdefghij", 0, 9, 1);
- test("abcde", 1, 1, "abcdefghij", 0, 10, 1);
- test("abcde", 1, 1, "abcdefghij", 0, 11, 1);
- test("abcde", 1, 1, "abcdefghij", 1, 0, 1);
- test("abcde", 1, 1, "abcdefghij", 1, 1, 0);
- test("abcde", 1, 1, "abcdefghij", 1, 4, -3);
- test("abcde", 1, 1, "abcdefghij", 1, 8, -7);
- test("abcde", 1, 1, "abcdefghij", 1, 9, -8);
- test("abcde", 1, 1, "abcdefghij", 1, 10, -8);
- test("abcde", 1, 1, "abcdefghij", 5, 0, 1);
- test("abcde", 1, 1, "abcdefghij", 5, 1, -4);
- test("abcde", 1, 1, "abcdefghij", 5, 2, -4);
- test("abcde", 1, 1, "abcdefghij", 5, 4, -4);
- test("abcde", 1, 1, "abcdefghij", 5, 5, -4);
- test("abcde", 1, 1, "abcdefghij", 5, 6, -4);
- test("abcde", 1, 1, "abcdefghij", 9, 0, 1);
- test("abcde", 1, 1, "abcdefghij", 9, 1, -8);
- test("abcde", 1, 1, "abcdefghij", 9, 2, -8);
- test("abcde", 1, 1, "abcdefghij", 10, 0, 1);
- test("abcde", 1, 1, "abcdefghij", 10, 1, 1);
- test("abcde", 1, 1, "abcdefghij", 11, 0, 0);
- test("abcde", 1, 1, "abcdefghijklmnopqrst", 0, 0, 1);
- test("abcde", 1, 1, "abcdefghijklmnopqrst", 0, 1, 1);
- test("abcde", 1, 1, "abcdefghijklmnopqrst", 0, 10, 1);
- test("abcde", 1, 1, "abcdefghijklmnopqrst", 0, 19, 1);
- test("abcde", 1, 1, "abcdefghijklmnopqrst", 0, 20, 1);
- test("abcde", 1, 1, "abcdefghijklmnopqrst", 0, 21, 1);
- test("abcde", 1, 1, "abcdefghijklmnopqrst", 1, 0, 1);
- test("abcde", 1, 1, "abcdefghijklmnopqrst", 1, 1, 0);
- test("abcde", 1, 1, "abcdefghijklmnopqrst", 1, 9, -8);
- test("abcde", 1, 1, "abcdefghijklmnopqrst", 1, 18, -17);
+void test7() {
+ test("abcde", 1, 0, "abcdefghij", 1, 4, -4);
+ test("abcde", 1, 0, "abcdefghij", 1, 8, -8);
+ test("abcde", 1, 0, "abcdefghij", 1, 9, -9);
+ test("abcde", 1, 0, "abcdefghij", 1, 10, -9);
+ test("abcde", 1, 0, "abcdefghij", 5, 0, 0);
+ test("abcde", 1, 0, "abcdefghij", 5, 1, -1);
+ test("abcde", 1, 0, "abcdefghij", 5, 2, -2);
+ test("abcde", 1, 0, "abcdefghij", 5, 4, -4);
+ test("abcde", 1, 0, "abcdefghij", 5, 5, -5);
+ test("abcde", 1, 0, "abcdefghij", 5, 6, -5);
+ test("abcde", 1, 0, "abcdefghij", 9, 0, 0);
+ test("abcde", 1, 0, "abcdefghij", 9, 1, -1);
+ test("abcde", 1, 0, "abcdefghij", 9, 2, -1);
+ test("abcde", 1, 0, "abcdefghij", 10, 0, 0);
+ test("abcde", 1, 0, "abcdefghij", 10, 1, 0);
+ test("abcde", 1, 0, "abcdefghij", 11, 0, 0);
+ test("abcde", 1, 0, "abcdefghijklmnopqrst", 0, 0, 0);
+ test("abcde", 1, 0, "abcdefghijklmnopqrst", 0, 1, -1);
+ test("abcde", 1, 0, "abcdefghijklmnopqrst", 0, 10, -10);
+ test("abcde", 1, 0, "abcdefghijklmnopqrst", 0, 19, -19);
+ test("abcde", 1, 0, "abcdefghijklmnopqrst", 0, 20, -20);
+ test("abcde", 1, 0, "abcdefghijklmnopqrst", 0, 21, -20);
+ test("abcde", 1, 0, "abcdefghijklmnopqrst", 1, 0, 0);
+ test("abcde", 1, 0, "abcdefghijklmnopqrst", 1, 1, -1);
+ test("abcde", 1, 0, "abcdefghijklmnopqrst", 1, 9, -9);
+ test("abcde", 1, 0, "abcdefghijklmnopqrst", 1, 18, -18);
+ test("abcde", 1, 0, "abcdefghijklmnopqrst", 1, 19, -19);
+ test("abcde", 1, 0, "abcdefghijklmnopqrst", 1, 20, -19);
+ test("abcde", 1, 0, "abcdefghijklmnopqrst", 10, 0, 0);
+ test("abcde", 1, 0, "abcdefghijklmnopqrst", 10, 1, -1);
+ test("abcde", 1, 0, "abcdefghijklmnopqrst", 10, 5, -5);
+ test("abcde", 1, 0, "abcdefghijklmnopqrst", 10, 9, -9);
+ test("abcde", 1, 0, "abcdefghijklmnopqrst", 10, 10, -10);
+ test("abcde", 1, 0, "abcdefghijklmnopqrst", 10, 11, -10);
+ test("abcde", 1, 0, "abcdefghijklmnopqrst", 19, 0, 0);
+ test("abcde", 1, 0, "abcdefghijklmnopqrst", 19, 1, -1);
+ test("abcde", 1, 0, "abcdefghijklmnopqrst", 19, 2, -1);
+ test("abcde", 1, 0, "abcdefghijklmnopqrst", 20, 0, 0);
+ test("abcde", 1, 0, "abcdefghijklmnopqrst", 20, 1, 0);
+ test("abcde", 1, 0, "abcdefghijklmnopqrst", 21, 0, 0);
+ test("abcde", 1, 1, "", 0, 0, 1);
+ test("abcde", 1, 1, "", 0, 1, 1);
+ test("abcde", 1, 1, "", 1, 0, 0);
+ test("abcde", 1, 1, "abcde", 0, 0, 1);
+ test("abcde", 1, 1, "abcde", 0, 1, 1);
+ test("abcde", 1, 1, "abcde", 0, 2, 1);
+ test("abcde", 1, 1, "abcde", 0, 4, 1);
+ test("abcde", 1, 1, "abcde", 0, 5, 1);
+ test("abcde", 1, 1, "abcde", 0, 6, 1);
+ test("abcde", 1, 1, "abcde", 1, 0, 1);
+ test("abcde", 1, 1, "abcde", 1, 1, 0);
+ test("abcde", 1, 1, "abcde", 1, 2, -1);
+ test("abcde", 1, 1, "abcde", 1, 3, -2);
+ test("abcde", 1, 1, "abcde", 1, 4, -3);
+ test("abcde", 1, 1, "abcde", 1, 5, -3);
+ test("abcde", 1, 1, "abcde", 2, 0, 1);
+ test("abcde", 1, 1, "abcde", 2, 1, -1);
+ test("abcde", 1, 1, "abcde", 2, 2, -1);
+ test("abcde", 1, 1, "abcde", 2, 3, -1);
+ test("abcde", 1, 1, "abcde", 2, 4, -1);
+ test("abcde", 1, 1, "abcde", 4, 0, 1);
+ test("abcde", 1, 1, "abcde", 4, 1, -3);
+ test("abcde", 1, 1, "abcde", 4, 2, -3);
+ test("abcde", 1, 1, "abcde", 5, 0, 1);
+ test("abcde", 1, 1, "abcde", 5, 1, 1);
+ test("abcde", 1, 1, "abcde", 6, 0, 0);
+ test("abcde", 1, 1, "abcdefghij", 0, 0, 1);
+ test("abcde", 1, 1, "abcdefghij", 0, 1, 1);
+ test("abcde", 1, 1, "abcdefghij", 0, 5, 1);
+ test("abcde", 1, 1, "abcdefghij", 0, 9, 1);
+ test("abcde", 1, 1, "abcdefghij", 0, 10, 1);
+ test("abcde", 1, 1, "abcdefghij", 0, 11, 1);
+ test("abcde", 1, 1, "abcdefghij", 1, 0, 1);
+ test("abcde", 1, 1, "abcdefghij", 1, 1, 0);
+ test("abcde", 1, 1, "abcdefghij", 1, 4, -3);
+ test("abcde", 1, 1, "abcdefghij", 1, 8, -7);
+ test("abcde", 1, 1, "abcdefghij", 1, 9, -8);
+ test("abcde", 1, 1, "abcdefghij", 1, 10, -8);
+ test("abcde", 1, 1, "abcdefghij", 5, 0, 1);
+ test("abcde", 1, 1, "abcdefghij", 5, 1, -4);
+ test("abcde", 1, 1, "abcdefghij", 5, 2, -4);
+ test("abcde", 1, 1, "abcdefghij", 5, 4, -4);
+ test("abcde", 1, 1, "abcdefghij", 5, 5, -4);
+ test("abcde", 1, 1, "abcdefghij", 5, 6, -4);
+ test("abcde", 1, 1, "abcdefghij", 9, 0, 1);
+ test("abcde", 1, 1, "abcdefghij", 9, 1, -8);
+ test("abcde", 1, 1, "abcdefghij", 9, 2, -8);
+ test("abcde", 1, 1, "abcdefghij", 10, 0, 1);
+ test("abcde", 1, 1, "abcdefghij", 10, 1, 1);
+ test("abcde", 1, 1, "abcdefghij", 11, 0, 0);
+ test("abcde", 1, 1, "abcdefghijklmnopqrst", 0, 0, 1);
+ test("abcde", 1, 1, "abcdefghijklmnopqrst", 0, 1, 1);
+ test("abcde", 1, 1, "abcdefghijklmnopqrst", 0, 10, 1);
+ test("abcde", 1, 1, "abcdefghijklmnopqrst", 0, 19, 1);
+ test("abcde", 1, 1, "abcdefghijklmnopqrst", 0, 20, 1);
+ test("abcde", 1, 1, "abcdefghijklmnopqrst", 0, 21, 1);
+ test("abcde", 1, 1, "abcdefghijklmnopqrst", 1, 0, 1);
+ test("abcde", 1, 1, "abcdefghijklmnopqrst", 1, 1, 0);
+ test("abcde", 1, 1, "abcdefghijklmnopqrst", 1, 9, -8);
+ test("abcde", 1, 1, "abcdefghijklmnopqrst", 1, 18, -17);
}
-void test8()
-{
- test("abcde", 1, 1, "abcdefghijklmnopqrst", 1, 19, -18);
- test("abcde", 1, 1, "abcdefghijklmnopqrst", 1, 20, -18);
- test("abcde", 1, 1, "abcdefghijklmnopqrst", 10, 0, 1);
- test("abcde", 1, 1, "abcdefghijklmnopqrst", 10, 1, -9);
- test("abcde", 1, 1, "abcdefghijklmnopqrst", 10, 5, -9);
- test("abcde", 1, 1, "abcdefghijklmnopqrst", 10, 9, -9);
- test("abcde", 1, 1, "abcdefghijklmnopqrst", 10, 10, -9);
- test("abcde", 1, 1, "abcdefghijklmnopqrst", 10, 11, -9);
- test("abcde", 1, 1, "abcdefghijklmnopqrst", 19, 0, 1);
- test("abcde", 1, 1, "abcdefghijklmnopqrst", 19, 1, -18);
- test("abcde", 1, 1, "abcdefghijklmnopqrst", 19, 2, -18);
- test("abcde", 1, 1, "abcdefghijklmnopqrst", 20, 0, 1);
- test("abcde", 1, 1, "abcdefghijklmnopqrst", 20, 1, 1);
- test("abcde", 1, 1, "abcdefghijklmnopqrst", 21, 0, 0);
- test("abcde", 1, 2, "", 0, 0, 2);
- test("abcde", 1, 2, "", 0, 1, 2);
- test("abcde", 1, 2, "", 1, 0, 0);
- test("abcde", 1, 2, "abcde", 0, 0, 2);
- test("abcde", 1, 2, "abcde", 0, 1, 1);
- test("abcde", 1, 2, "abcde", 0, 2, 1);
- test("abcde", 1, 2, "abcde", 0, 4, 1);
- test("abcde", 1, 2, "abcde", 0, 5, 1);
- test("abcde", 1, 2, "abcde", 0, 6, 1);
- test("abcde", 1, 2, "abcde", 1, 0, 2);
- test("abcde", 1, 2, "abcde", 1, 1, 1);
- test("abcde", 1, 2, "abcde", 1, 2, 0);
- test("abcde", 1, 2, "abcde", 1, 3, -1);
- test("abcde", 1, 2, "abcde", 1, 4, -2);
- test("abcde", 1, 2, "abcde", 1, 5, -2);
- test("abcde", 1, 2, "abcde", 2, 0, 2);
- test("abcde", 1, 2, "abcde", 2, 1, -1);
- test("abcde", 1, 2, "abcde", 2, 2, -1);
- test("abcde", 1, 2, "abcde", 2, 3, -1);
- test("abcde", 1, 2, "abcde", 2, 4, -1);
- test("abcde", 1, 2, "abcde", 4, 0, 2);
- test("abcde", 1, 2, "abcde", 4, 1, -3);
- test("abcde", 1, 2, "abcde", 4, 2, -3);
- test("abcde", 1, 2, "abcde", 5, 0, 2);
- test("abcde", 1, 2, "abcde", 5, 1, 2);
- test("abcde", 1, 2, "abcde", 6, 0, 0);
- test("abcde", 1, 2, "abcdefghij", 0, 0, 2);
- test("abcde", 1, 2, "abcdefghij", 0, 1, 1);
- test("abcde", 1, 2, "abcdefghij", 0, 5, 1);
- test("abcde", 1, 2, "abcdefghij", 0, 9, 1);
- test("abcde", 1, 2, "abcdefghij", 0, 10, 1);
- test("abcde", 1, 2, "abcdefghij", 0, 11, 1);
- test("abcde", 1, 2, "abcdefghij", 1, 0, 2);
- test("abcde", 1, 2, "abcdefghij", 1, 1, 1);
- test("abcde", 1, 2, "abcdefghij", 1, 4, -2);
- test("abcde", 1, 2, "abcdefghij", 1, 8, -6);
- test("abcde", 1, 2, "abcdefghij", 1, 9, -7);
- test("abcde", 1, 2, "abcdefghij", 1, 10, -7);
- test("abcde", 1, 2, "abcdefghij", 5, 0, 2);
- test("abcde", 1, 2, "abcdefghij", 5, 1, -4);
- test("abcde", 1, 2, "abcdefghij", 5, 2, -4);
- test("abcde", 1, 2, "abcdefghij", 5, 4, -4);
- test("abcde", 1, 2, "abcdefghij", 5, 5, -4);
- test("abcde", 1, 2, "abcdefghij", 5, 6, -4);
- test("abcde", 1, 2, "abcdefghij", 9, 0, 2);
- test("abcde", 1, 2, "abcdefghij", 9, 1, -8);
- test("abcde", 1, 2, "abcdefghij", 9, 2, -8);
- test("abcde", 1, 2, "abcdefghij", 10, 0, 2);
- test("abcde", 1, 2, "abcdefghij", 10, 1, 2);
- test("abcde", 1, 2, "abcdefghij", 11, 0, 0);
- test("abcde", 1, 2, "abcdefghijklmnopqrst", 0, 0, 2);
- test("abcde", 1, 2, "abcdefghijklmnopqrst", 0, 1, 1);
- test("abcde", 1, 2, "abcdefghijklmnopqrst", 0, 10, 1);
- test("abcde", 1, 2, "abcdefghijklmnopqrst", 0, 19, 1);
- test("abcde", 1, 2, "abcdefghijklmnopqrst", 0, 20, 1);
- test("abcde", 1, 2, "abcdefghijklmnopqrst", 0, 21, 1);
- test("abcde", 1, 2, "abcdefghijklmnopqrst", 1, 0, 2);
- test("abcde", 1, 2, "abcdefghijklmnopqrst", 1, 1, 1);
- test("abcde", 1, 2, "abcdefghijklmnopqrst", 1, 9, -7);
- test("abcde", 1, 2, "abcdefghijklmnopqrst", 1, 18, -16);
- test("abcde", 1, 2, "abcdefghijklmnopqrst", 1, 19, -17);
- test("abcde", 1, 2, "abcdefghijklmnopqrst", 1, 20, -17);
- test("abcde", 1, 2, "abcdefghijklmnopqrst", 10, 0, 2);
- test("abcde", 1, 2, "abcdefghijklmnopqrst", 10, 1, -9);
- test("abcde", 1, 2, "abcdefghijklmnopqrst", 10, 5, -9);
- test("abcde", 1, 2, "abcdefghijklmnopqrst", 10, 9, -9);
- test("abcde", 1, 2, "abcdefghijklmnopqrst", 10, 10, -9);
- test("abcde", 1, 2, "abcdefghijklmnopqrst", 10, 11, -9);
- test("abcde", 1, 2, "abcdefghijklmnopqrst", 19, 0, 2);
- test("abcde", 1, 2, "abcdefghijklmnopqrst", 19, 1, -18);
- test("abcde", 1, 2, "abcdefghijklmnopqrst", 19, 2, -18);
- test("abcde", 1, 2, "abcdefghijklmnopqrst", 20, 0, 2);
- test("abcde", 1, 2, "abcdefghijklmnopqrst", 20, 1, 2);
- test("abcde", 1, 2, "abcdefghijklmnopqrst", 21, 0, 0);
- test("abcde", 1, 3, "", 0, 0, 3);
- test("abcde", 1, 3, "", 0, 1, 3);
- test("abcde", 1, 3, "", 1, 0, 0);
- test("abcde", 1, 3, "abcde", 0, 0, 3);
- test("abcde", 1, 3, "abcde", 0, 1, 1);
- test("abcde", 1, 3, "abcde", 0, 2, 1);
- test("abcde", 1, 3, "abcde", 0, 4, 1);
- test("abcde", 1, 3, "abcde", 0, 5, 1);
- test("abcde", 1, 3, "abcde", 0, 6, 1);
- test("abcde", 1, 3, "abcde", 1, 0, 3);
- test("abcde", 1, 3, "abcde", 1, 1, 2);
- test("abcde", 1, 3, "abcde", 1, 2, 1);
+void test8() {
+ test("abcde", 1, 1, "abcdefghijklmnopqrst", 1, 19, -18);
+ test("abcde", 1, 1, "abcdefghijklmnopqrst", 1, 20, -18);
+ test("abcde", 1, 1, "abcdefghijklmnopqrst", 10, 0, 1);
+ test("abcde", 1, 1, "abcdefghijklmnopqrst", 10, 1, -9);
+ test("abcde", 1, 1, "abcdefghijklmnopqrst", 10, 5, -9);
+ test("abcde", 1, 1, "abcdefghijklmnopqrst", 10, 9, -9);
+ test("abcde", 1, 1, "abcdefghijklmnopqrst", 10, 10, -9);
+ test("abcde", 1, 1, "abcdefghijklmnopqrst", 10, 11, -9);
+ test("abcde", 1, 1, "abcdefghijklmnopqrst", 19, 0, 1);
+ test("abcde", 1, 1, "abcdefghijklmnopqrst", 19, 1, -18);
+ test("abcde", 1, 1, "abcdefghijklmnopqrst", 19, 2, -18);
+ test("abcde", 1, 1, "abcdefghijklmnopqrst", 20, 0, 1);
+ test("abcde", 1, 1, "abcdefghijklmnopqrst", 20, 1, 1);
+ test("abcde", 1, 1, "abcdefghijklmnopqrst", 21, 0, 0);
+ test("abcde", 1, 2, "", 0, 0, 2);
+ test("abcde", 1, 2, "", 0, 1, 2);
+ test("abcde", 1, 2, "", 1, 0, 0);
+ test("abcde", 1, 2, "abcde", 0, 0, 2);
+ test("abcde", 1, 2, "abcde", 0, 1, 1);
+ test("abcde", 1, 2, "abcde", 0, 2, 1);
+ test("abcde", 1, 2, "abcde", 0, 4, 1);
+ test("abcde", 1, 2, "abcde", 0, 5, 1);
+ test("abcde", 1, 2, "abcde", 0, 6, 1);
+ test("abcde", 1, 2, "abcde", 1, 0, 2);
+ test("abcde", 1, 2, "abcde", 1, 1, 1);
+ test("abcde", 1, 2, "abcde", 1, 2, 0);
+ test("abcde", 1, 2, "abcde", 1, 3, -1);
+ test("abcde", 1, 2, "abcde", 1, 4, -2);
+ test("abcde", 1, 2, "abcde", 1, 5, -2);
+ test("abcde", 1, 2, "abcde", 2, 0, 2);
+ test("abcde", 1, 2, "abcde", 2, 1, -1);
+ test("abcde", 1, 2, "abcde", 2, 2, -1);
+ test("abcde", 1, 2, "abcde", 2, 3, -1);
+ test("abcde", 1, 2, "abcde", 2, 4, -1);
+ test("abcde", 1, 2, "abcde", 4, 0, 2);
+ test("abcde", 1, 2, "abcde", 4, 1, -3);
+ test("abcde", 1, 2, "abcde", 4, 2, -3);
+ test("abcde", 1, 2, "abcde", 5, 0, 2);
+ test("abcde", 1, 2, "abcde", 5, 1, 2);
+ test("abcde", 1, 2, "abcde", 6, 0, 0);
+ test("abcde", 1, 2, "abcdefghij", 0, 0, 2);
+ test("abcde", 1, 2, "abcdefghij", 0, 1, 1);
+ test("abcde", 1, 2, "abcdefghij", 0, 5, 1);
+ test("abcde", 1, 2, "abcdefghij", 0, 9, 1);
+ test("abcde", 1, 2, "abcdefghij", 0, 10, 1);
+ test("abcde", 1, 2, "abcdefghij", 0, 11, 1);
+ test("abcde", 1, 2, "abcdefghij", 1, 0, 2);
+ test("abcde", 1, 2, "abcdefghij", 1, 1, 1);
+ test("abcde", 1, 2, "abcdefghij", 1, 4, -2);
+ test("abcde", 1, 2, "abcdefghij", 1, 8, -6);
+ test("abcde", 1, 2, "abcdefghij", 1, 9, -7);
+ test("abcde", 1, 2, "abcdefghij", 1, 10, -7);
+ test("abcde", 1, 2, "abcdefghij", 5, 0, 2);
+ test("abcde", 1, 2, "abcdefghij", 5, 1, -4);
+ test("abcde", 1, 2, "abcdefghij", 5, 2, -4);
+ test("abcde", 1, 2, "abcdefghij", 5, 4, -4);
+ test("abcde", 1, 2, "abcdefghij", 5, 5, -4);
+ test("abcde", 1, 2, "abcdefghij", 5, 6, -4);
+ test("abcde", 1, 2, "abcdefghij", 9, 0, 2);
+ test("abcde", 1, 2, "abcdefghij", 9, 1, -8);
+ test("abcde", 1, 2, "abcdefghij", 9, 2, -8);
+ test("abcde", 1, 2, "abcdefghij", 10, 0, 2);
+ test("abcde", 1, 2, "abcdefghij", 10, 1, 2);
+ test("abcde", 1, 2, "abcdefghij", 11, 0, 0);
+ test("abcde", 1, 2, "abcdefghijklmnopqrst", 0, 0, 2);
+ test("abcde", 1, 2, "abcdefghijklmnopqrst", 0, 1, 1);
+ test("abcde", 1, 2, "abcdefghijklmnopqrst", 0, 10, 1);
+ test("abcde", 1, 2, "abcdefghijklmnopqrst", 0, 19, 1);
+ test("abcde", 1, 2, "abcdefghijklmnopqrst", 0, 20, 1);
+ test("abcde", 1, 2, "abcdefghijklmnopqrst", 0, 21, 1);
+ test("abcde", 1, 2, "abcdefghijklmnopqrst", 1, 0, 2);
+ test("abcde", 1, 2, "abcdefghijklmnopqrst", 1, 1, 1);
+ test("abcde", 1, 2, "abcdefghijklmnopqrst", 1, 9, -7);
+ test("abcde", 1, 2, "abcdefghijklmnopqrst", 1, 18, -16);
+ test("abcde", 1, 2, "abcdefghijklmnopqrst", 1, 19, -17);
+ test("abcde", 1, 2, "abcdefghijklmnopqrst", 1, 20, -17);
+ test("abcde", 1, 2, "abcdefghijklmnopqrst", 10, 0, 2);
+ test("abcde", 1, 2, "abcdefghijklmnopqrst", 10, 1, -9);
+ test("abcde", 1, 2, "abcdefghijklmnopqrst", 10, 5, -9);
+ test("abcde", 1, 2, "abcdefghijklmnopqrst", 10, 9, -9);
+ test("abcde", 1, 2, "abcdefghijklmnopqrst", 10, 10, -9);
+ test("abcde", 1, 2, "abcdefghijklmnopqrst", 10, 11, -9);
+ test("abcde", 1, 2, "abcdefghijklmnopqrst", 19, 0, 2);
+ test("abcde", 1, 2, "abcdefghijklmnopqrst", 19, 1, -18);
+ test("abcde", 1, 2, "abcdefghijklmnopqrst", 19, 2, -18);
+ test("abcde", 1, 2, "abcdefghijklmnopqrst", 20, 0, 2);
+ test("abcde", 1, 2, "abcdefghijklmnopqrst", 20, 1, 2);
+ test("abcde", 1, 2, "abcdefghijklmnopqrst", 21, 0, 0);
+ test("abcde", 1, 3, "", 0, 0, 3);
+ test("abcde", 1, 3, "", 0, 1, 3);
+ test("abcde", 1, 3, "", 1, 0, 0);
+ test("abcde", 1, 3, "abcde", 0, 0, 3);
+ test("abcde", 1, 3, "abcde", 0, 1, 1);
+ test("abcde", 1, 3, "abcde", 0, 2, 1);
+ test("abcde", 1, 3, "abcde", 0, 4, 1);
+ test("abcde", 1, 3, "abcde", 0, 5, 1);
+ test("abcde", 1, 3, "abcde", 0, 6, 1);
+ test("abcde", 1, 3, "abcde", 1, 0, 3);
+ test("abcde", 1, 3, "abcde", 1, 1, 2);
+ test("abcde", 1, 3, "abcde", 1, 2, 1);
}
-void test9()
-{
- test("abcde", 1, 3, "abcde", 1, 3, 0);
- test("abcde", 1, 3, "abcde", 1, 4, -1);
- test("abcde", 1, 3, "abcde", 1, 5, -1);
- test("abcde", 1, 3, "abcde", 2, 0, 3);
- test("abcde", 1, 3, "abcde", 2, 1, -1);
- test("abcde", 1, 3, "abcde", 2, 2, -1);
- test("abcde", 1, 3, "abcde", 2, 3, -1);
- test("abcde", 1, 3, "abcde", 2, 4, -1);
- test("abcde", 1, 3, "abcde", 4, 0, 3);
- test("abcde", 1, 3, "abcde", 4, 1, -3);
- test("abcde", 1, 3, "abcde", 4, 2, -3);
- test("abcde", 1, 3, "abcde", 5, 0, 3);
- test("abcde", 1, 3, "abcde", 5, 1, 3);
- test("abcde", 1, 3, "abcde", 6, 0, 0);
- test("abcde", 1, 3, "abcdefghij", 0, 0, 3);
- test("abcde", 1, 3, "abcdefghij", 0, 1, 1);
- test("abcde", 1, 3, "abcdefghij", 0, 5, 1);
- test("abcde", 1, 3, "abcdefghij", 0, 9, 1);
- test("abcde", 1, 3, "abcdefghij", 0, 10, 1);
- test("abcde", 1, 3, "abcdefghij", 0, 11, 1);
- test("abcde", 1, 3, "abcdefghij", 1, 0, 3);
- test("abcde", 1, 3, "abcdefghij", 1, 1, 2);
- test("abcde", 1, 3, "abcdefghij", 1, 4, -1);
- test("abcde", 1, 3, "abcdefghij", 1, 8, -5);
- test("abcde", 1, 3, "abcdefghij", 1, 9, -6);
- test("abcde", 1, 3, "abcdefghij", 1, 10, -6);
- test("abcde", 1, 3, "abcdefghij", 5, 0, 3);
- test("abcde", 1, 3, "abcdefghij", 5, 1, -4);
- test("abcde", 1, 3, "abcdefghij", 5, 2, -4);
- test("abcde", 1, 3, "abcdefghij", 5, 4, -4);
- test("abcde", 1, 3, "abcdefghij", 5, 5, -4);
- test("abcde", 1, 3, "abcdefghij", 5, 6, -4);
- test("abcde", 1, 3, "abcdefghij", 9, 0, 3);
- test("abcde", 1, 3, "abcdefghij", 9, 1, -8);
- test("abcde", 1, 3, "abcdefghij", 9, 2, -8);
- test("abcde", 1, 3, "abcdefghij", 10, 0, 3);
- test("abcde", 1, 3, "abcdefghij", 10, 1, 3);
- test("abcde", 1, 3, "abcdefghij", 11, 0, 0);
- test("abcde", 1, 3, "abcdefghijklmnopqrst", 0, 0, 3);
- test("abcde", 1, 3, "abcdefghijklmnopqrst", 0, 1, 1);
- test("abcde", 1, 3, "abcdefghijklmnopqrst", 0, 10, 1);
- test("abcde", 1, 3, "abcdefghijklmnopqrst", 0, 19, 1);
- test("abcde", 1, 3, "abcdefghijklmnopqrst", 0, 20, 1);
- test("abcde", 1, 3, "abcdefghijklmnopqrst", 0, 21, 1);
- test("abcde", 1, 3, "abcdefghijklmnopqrst", 1, 0, 3);
- test("abcde", 1, 3, "abcdefghijklmnopqrst", 1, 1, 2);
- test("abcde", 1, 3, "abcdefghijklmnopqrst", 1, 9, -6);
- test("abcde", 1, 3, "abcdefghijklmnopqrst", 1, 18, -15);
- test("abcde", 1, 3, "abcdefghijklmnopqrst", 1, 19, -16);
- test("abcde", 1, 3, "abcdefghijklmnopqrst", 1, 20, -16);
- test("abcde", 1, 3, "abcdefghijklmnopqrst", 10, 0, 3);
- test("abcde", 1, 3, "abcdefghijklmnopqrst", 10, 1, -9);
- test("abcde", 1, 3, "abcdefghijklmnopqrst", 10, 5, -9);
- test("abcde", 1, 3, "abcdefghijklmnopqrst", 10, 9, -9);
- test("abcde", 1, 3, "abcdefghijklmnopqrst", 10, 10, -9);
- test("abcde", 1, 3, "abcdefghijklmnopqrst", 10, 11, -9);
- test("abcde", 1, 3, "abcdefghijklmnopqrst", 19, 0, 3);
- test("abcde", 1, 3, "abcdefghijklmnopqrst", 19, 1, -18);
- test("abcde", 1, 3, "abcdefghijklmnopqrst", 19, 2, -18);
- test("abcde", 1, 3, "abcdefghijklmnopqrst", 20, 0, 3);
- test("abcde", 1, 3, "abcdefghijklmnopqrst", 20, 1, 3);
- test("abcde", 1, 3, "abcdefghijklmnopqrst", 21, 0, 0);
- test("abcde", 1, 4, "", 0, 0, 4);
- test("abcde", 1, 4, "", 0, 1, 4);
- test("abcde", 1, 4, "", 1, 0, 0);
- test("abcde", 1, 4, "abcde", 0, 0, 4);
- test("abcde", 1, 4, "abcde", 0, 1, 1);
- test("abcde", 1, 4, "abcde", 0, 2, 1);
- test("abcde", 1, 4, "abcde", 0, 4, 1);
- test("abcde", 1, 4, "abcde", 0, 5, 1);
- test("abcde", 1, 4, "abcde", 0, 6, 1);
- test("abcde", 1, 4, "abcde", 1, 0, 4);
- test("abcde", 1, 4, "abcde", 1, 1, 3);
- test("abcde", 1, 4, "abcde", 1, 2, 2);
- test("abcde", 1, 4, "abcde", 1, 3, 1);
- test("abcde", 1, 4, "abcde", 1, 4, 0);
- test("abcde", 1, 4, "abcde", 1, 5, 0);
- test("abcde", 1, 4, "abcde", 2, 0, 4);
- test("abcde", 1, 4, "abcde", 2, 1, -1);
- test("abcde", 1, 4, "abcde", 2, 2, -1);
- test("abcde", 1, 4, "abcde", 2, 3, -1);
- test("abcde", 1, 4, "abcde", 2, 4, -1);
- test("abcde", 1, 4, "abcde", 4, 0, 4);
- test("abcde", 1, 4, "abcde", 4, 1, -3);
- test("abcde", 1, 4, "abcde", 4, 2, -3);
- test("abcde", 1, 4, "abcde", 5, 0, 4);
- test("abcde", 1, 4, "abcde", 5, 1, 4);
- test("abcde", 1, 4, "abcde", 6, 0, 0);
- test("abcde", 1, 4, "abcdefghij", 0, 0, 4);
- test("abcde", 1, 4, "abcdefghij", 0, 1, 1);
- test("abcde", 1, 4, "abcdefghij", 0, 5, 1);
- test("abcde", 1, 4, "abcdefghij", 0, 9, 1);
- test("abcde", 1, 4, "abcdefghij", 0, 10, 1);
- test("abcde", 1, 4, "abcdefghij", 0, 11, 1);
- test("abcde", 1, 4, "abcdefghij", 1, 0, 4);
- test("abcde", 1, 4, "abcdefghij", 1, 1, 3);
- test("abcde", 1, 4, "abcdefghij", 1, 4, 0);
- test("abcde", 1, 4, "abcdefghij", 1, 8, -4);
- test("abcde", 1, 4, "abcdefghij", 1, 9, -5);
- test("abcde", 1, 4, "abcdefghij", 1, 10, -5);
+void test9() {
+ test("abcde", 1, 3, "abcde", 1, 3, 0);
+ test("abcde", 1, 3, "abcde", 1, 4, -1);
+ test("abcde", 1, 3, "abcde", 1, 5, -1);
+ test("abcde", 1, 3, "abcde", 2, 0, 3);
+ test("abcde", 1, 3, "abcde", 2, 1, -1);
+ test("abcde", 1, 3, "abcde", 2, 2, -1);
+ test("abcde", 1, 3, "abcde", 2, 3, -1);
+ test("abcde", 1, 3, "abcde", 2, 4, -1);
+ test("abcde", 1, 3, "abcde", 4, 0, 3);
+ test("abcde", 1, 3, "abcde", 4, 1, -3);
+ test("abcde", 1, 3, "abcde", 4, 2, -3);
+ test("abcde", 1, 3, "abcde", 5, 0, 3);
+ test("abcde", 1, 3, "abcde", 5, 1, 3);
+ test("abcde", 1, 3, "abcde", 6, 0, 0);
+ test("abcde", 1, 3, "abcdefghij", 0, 0, 3);
+ test("abcde", 1, 3, "abcdefghij", 0, 1, 1);
+ test("abcde", 1, 3, "abcdefghij", 0, 5, 1);
+ test("abcde", 1, 3, "abcdefghij", 0, 9, 1);
+ test("abcde", 1, 3, "abcdefghij", 0, 10, 1);
+ test("abcde", 1, 3, "abcdefghij", 0, 11, 1);
+ test("abcde", 1, 3, "abcdefghij", 1, 0, 3);
+ test("abcde", 1, 3, "abcdefghij", 1, 1, 2);
+ test("abcde", 1, 3, "abcdefghij", 1, 4, -1);
+ test("abcde", 1, 3, "abcdefghij", 1, 8, -5);
+ test("abcde", 1, 3, "abcdefghij", 1, 9, -6);
+ test("abcde", 1, 3, "abcdefghij", 1, 10, -6);
+ test("abcde", 1, 3, "abcdefghij", 5, 0, 3);
+ test("abcde", 1, 3, "abcdefghij", 5, 1, -4);
+ test("abcde", 1, 3, "abcdefghij", 5, 2, -4);
+ test("abcde", 1, 3, "abcdefghij", 5, 4, -4);
+ test("abcde", 1, 3, "abcdefghij", 5, 5, -4);
+ test("abcde", 1, 3, "abcdefghij", 5, 6, -4);
+ test("abcde", 1, 3, "abcdefghij", 9, 0, 3);
+ test("abcde", 1, 3, "abcdefghij", 9, 1, -8);
+ test("abcde", 1, 3, "abcdefghij", 9, 2, -8);
+ test("abcde", 1, 3, "abcdefghij", 10, 0, 3);
+ test("abcde", 1, 3, "abcdefghij", 10, 1, 3);
+ test("abcde", 1, 3, "abcdefghij", 11, 0, 0);
+ test("abcde", 1, 3, "abcdefghijklmnopqrst", 0, 0, 3);
+ test("abcde", 1, 3, "abcdefghijklmnopqrst", 0, 1, 1);
+ test("abcde", 1, 3, "abcdefghijklmnopqrst", 0, 10, 1);
+ test("abcde", 1, 3, "abcdefghijklmnopqrst", 0, 19, 1);
+ test("abcde", 1, 3, "abcdefghijklmnopqrst", 0, 20, 1);
+ test("abcde", 1, 3, "abcdefghijklmnopqrst", 0, 21, 1);
+ test("abcde", 1, 3, "abcdefghijklmnopqrst", 1, 0, 3);
+ test("abcde", 1, 3, "abcdefghijklmnopqrst", 1, 1, 2);
+ test("abcde", 1, 3, "abcdefghijklmnopqrst", 1, 9, -6);
+ test("abcde", 1, 3, "abcdefghijklmnopqrst", 1, 18, -15);
+ test("abcde", 1, 3, "abcdefghijklmnopqrst", 1, 19, -16);
+ test("abcde", 1, 3, "abcdefghijklmnopqrst", 1, 20, -16);
+ test("abcde", 1, 3, "abcdefghijklmnopqrst", 10, 0, 3);
+ test("abcde", 1, 3, "abcdefghijklmnopqrst", 10, 1, -9);
+ test("abcde", 1, 3, "abcdefghijklmnopqrst", 10, 5, -9);
+ test("abcde", 1, 3, "abcdefghijklmnopqrst", 10, 9, -9);
+ test("abcde", 1, 3, "abcdefghijklmnopqrst", 10, 10, -9);
+ test("abcde", 1, 3, "abcdefghijklmnopqrst", 10, 11, -9);
+ test("abcde", 1, 3, "abcdefghijklmnopqrst", 19, 0, 3);
+ test("abcde", 1, 3, "abcdefghijklmnopqrst", 19, 1, -18);
+ test("abcde", 1, 3, "abcdefghijklmnopqrst", 19, 2, -18);
+ test("abcde", 1, 3, "abcdefghijklmnopqrst", 20, 0, 3);
+ test("abcde", 1, 3, "abcdefghijklmnopqrst", 20, 1, 3);
+ test("abcde", 1, 3, "abcdefghijklmnopqrst", 21, 0, 0);
+ test("abcde", 1, 4, "", 0, 0, 4);
+ test("abcde", 1, 4, "", 0, 1, 4);
+ test("abcde", 1, 4, "", 1, 0, 0);
+ test("abcde", 1, 4, "abcde", 0, 0, 4);
+ test("abcde", 1, 4, "abcde", 0, 1, 1);
+ test("abcde", 1, 4, "abcde", 0, 2, 1);
+ test("abcde", 1, 4, "abcde", 0, 4, 1);
+ test("abcde", 1, 4, "abcde", 0, 5, 1);
+ test("abcde", 1, 4, "abcde", 0, 6, 1);
+ test("abcde", 1, 4, "abcde", 1, 0, 4);
+ test("abcde", 1, 4, "abcde", 1, 1, 3);
+ test("abcde", 1, 4, "abcde", 1, 2, 2);
+ test("abcde", 1, 4, "abcde", 1, 3, 1);
+ test("abcde", 1, 4, "abcde", 1, 4, 0);
+ test("abcde", 1, 4, "abcde", 1, 5, 0);
+ test("abcde", 1, 4, "abcde", 2, 0, 4);
+ test("abcde", 1, 4, "abcde", 2, 1, -1);
+ test("abcde", 1, 4, "abcde", 2, 2, -1);
+ test("abcde", 1, 4, "abcde", 2, 3, -1);
+ test("abcde", 1, 4, "abcde", 2, 4, -1);
+ test("abcde", 1, 4, "abcde", 4, 0, 4);
+ test("abcde", 1, 4, "abcde", 4, 1, -3);
+ test("abcde", 1, 4, "abcde", 4, 2, -3);
+ test("abcde", 1, 4, "abcde", 5, 0, 4);
+ test("abcde", 1, 4, "abcde", 5, 1, 4);
+ test("abcde", 1, 4, "abcde", 6, 0, 0);
+ test("abcde", 1, 4, "abcdefghij", 0, 0, 4);
+ test("abcde", 1, 4, "abcdefghij", 0, 1, 1);
+ test("abcde", 1, 4, "abcdefghij", 0, 5, 1);
+ test("abcde", 1, 4, "abcdefghij", 0, 9, 1);
+ test("abcde", 1, 4, "abcdefghij", 0, 10, 1);
+ test("abcde", 1, 4, "abcdefghij", 0, 11, 1);
+ test("abcde", 1, 4, "abcdefghij", 1, 0, 4);
+ test("abcde", 1, 4, "abcdefghij", 1, 1, 3);
+ test("abcde", 1, 4, "abcdefghij", 1, 4, 0);
+ test("abcde", 1, 4, "abcdefghij", 1, 8, -4);
+ test("abcde", 1, 4, "abcdefghij", 1, 9, -5);
+ test("abcde", 1, 4, "abcdefghij", 1, 10, -5);
}
-void test10()
-{
- test("abcde", 1, 4, "abcdefghij", 5, 0, 4);
- test("abcde", 1, 4, "abcdefghij", 5, 1, -4);
- test("abcde", 1, 4, "abcdefghij", 5, 2, -4);
- test("abcde", 1, 4, "abcdefghij", 5, 4, -4);
- test("abcde", 1, 4, "abcdefghij", 5, 5, -4);
- test("abcde", 1, 4, "abcdefghij", 5, 6, -4);
- test("abcde", 1, 4, "abcdefghij", 9, 0, 4);
- test("abcde", 1, 4, "abcdefghij", 9, 1, -8);
- test("abcde", 1, 4, "abcdefghij", 9, 2, -8);
- test("abcde", 1, 4, "abcdefghij", 10, 0, 4);
- test("abcde", 1, 4, "abcdefghij", 10, 1, 4);
- test("abcde", 1, 4, "abcdefghij", 11, 0, 0);
- test("abcde", 1, 4, "abcdefghijklmnopqrst", 0, 0, 4);
- test("abcde", 1, 4, "abcdefghijklmnopqrst", 0, 1, 1);
- test("abcde", 1, 4, "abcdefghijklmnopqrst", 0, 10, 1);
- test("abcde", 1, 4, "abcdefghijklmnopqrst", 0, 19, 1);
- test("abcde", 1, 4, "abcdefghijklmnopqrst", 0, 20, 1);
- test("abcde", 1, 4, "abcdefghijklmnopqrst", 0, 21, 1);
- test("abcde", 1, 4, "abcdefghijklmnopqrst", 1, 0, 4);
- test("abcde", 1, 4, "abcdefghijklmnopqrst", 1, 1, 3);
- test("abcde", 1, 4, "abcdefghijklmnopqrst", 1, 9, -5);
- test("abcde", 1, 4, "abcdefghijklmnopqrst", 1, 18, -14);
- test("abcde", 1, 4, "abcdefghijklmnopqrst", 1, 19, -15);
- test("abcde", 1, 4, "abcdefghijklmnopqrst", 1, 20, -15);
- test("abcde", 1, 4, "abcdefghijklmnopqrst", 10, 0, 4);
- test("abcde", 1, 4, "abcdefghijklmnopqrst", 10, 1, -9);
- test("abcde", 1, 4, "abcdefghijklmnopqrst", 10, 5, -9);
- test("abcde", 1, 4, "abcdefghijklmnopqrst", 10, 9, -9);
- test("abcde", 1, 4, "abcdefghijklmnopqrst", 10, 10, -9);
- test("abcde", 1, 4, "abcdefghijklmnopqrst", 10, 11, -9);
- test("abcde", 1, 4, "abcdefghijklmnopqrst", 19, 0, 4);
- test("abcde", 1, 4, "abcdefghijklmnopqrst", 19, 1, -18);
- test("abcde", 1, 4, "abcdefghijklmnopqrst", 19, 2, -18);
- test("abcde", 1, 4, "abcdefghijklmnopqrst", 20, 0, 4);
- test("abcde", 1, 4, "abcdefghijklmnopqrst", 20, 1, 4);
- test("abcde", 1, 4, "abcdefghijklmnopqrst", 21, 0, 0);
- test("abcde", 1, 5, "", 0, 0, 4);
- test("abcde", 1, 5, "", 0, 1, 4);
- test("abcde", 1, 5, "", 1, 0, 0);
- test("abcde", 1, 5, "abcde", 0, 0, 4);
- test("abcde", 1, 5, "abcde", 0, 1, 1);
- test("abcde", 1, 5, "abcde", 0, 2, 1);
- test("abcde", 1, 5, "abcde", 0, 4, 1);
- test("abcde", 1, 5, "abcde", 0, 5, 1);
- test("abcde", 1, 5, "abcde", 0, 6, 1);
- test("abcde", 1, 5, "abcde", 1, 0, 4);
- test("abcde", 1, 5, "abcde", 1, 1, 3);
- test("abcde", 1, 5, "abcde", 1, 2, 2);
- test("abcde", 1, 5, "abcde", 1, 3, 1);
- test("abcde", 1, 5, "abcde", 1, 4, 0);
- test("abcde", 1, 5, "abcde", 1, 5, 0);
- test("abcde", 1, 5, "abcde", 2, 0, 4);
- test("abcde", 1, 5, "abcde", 2, 1, -1);
- test("abcde", 1, 5, "abcde", 2, 2, -1);
- test("abcde", 1, 5, "abcde", 2, 3, -1);
- test("abcde", 1, 5, "abcde", 2, 4, -1);
- test("abcde", 1, 5, "abcde", 4, 0, 4);
- test("abcde", 1, 5, "abcde", 4, 1, -3);
- test("abcde", 1, 5, "abcde", 4, 2, -3);
- test("abcde", 1, 5, "abcde", 5, 0, 4);
- test("abcde", 1, 5, "abcde", 5, 1, 4);
- test("abcde", 1, 5, "abcde", 6, 0, 0);
- test("abcde", 1, 5, "abcdefghij", 0, 0, 4);
- test("abcde", 1, 5, "abcdefghij", 0, 1, 1);
- test("abcde", 1, 5, "abcdefghij", 0, 5, 1);
- test("abcde", 1, 5, "abcdefghij", 0, 9, 1);
- test("abcde", 1, 5, "abcdefghij", 0, 10, 1);
- test("abcde", 1, 5, "abcdefghij", 0, 11, 1);
- test("abcde", 1, 5, "abcdefghij", 1, 0, 4);
- test("abcde", 1, 5, "abcdefghij", 1, 1, 3);
- test("abcde", 1, 5, "abcdefghij", 1, 4, 0);
- test("abcde", 1, 5, "abcdefghij", 1, 8, -4);
- test("abcde", 1, 5, "abcdefghij", 1, 9, -5);
- test("abcde", 1, 5, "abcdefghij", 1, 10, -5);
- test("abcde", 1, 5, "abcdefghij", 5, 0, 4);
- test("abcde", 1, 5, "abcdefghij", 5, 1, -4);
- test("abcde", 1, 5, "abcdefghij", 5, 2, -4);
- test("abcde", 1, 5, "abcdefghij", 5, 4, -4);
- test("abcde", 1, 5, "abcdefghij", 5, 5, -4);
- test("abcde", 1, 5, "abcdefghij", 5, 6, -4);
- test("abcde", 1, 5, "abcdefghij", 9, 0, 4);
- test("abcde", 1, 5, "abcdefghij", 9, 1, -8);
- test("abcde", 1, 5, "abcdefghij", 9, 2, -8);
- test("abcde", 1, 5, "abcdefghij", 10, 0, 4);
- test("abcde", 1, 5, "abcdefghij", 10, 1, 4);
- test("abcde", 1, 5, "abcdefghij", 11, 0, 0);
- test("abcde", 1, 5, "abcdefghijklmnopqrst", 0, 0, 4);
- test("abcde", 1, 5, "abcdefghijklmnopqrst", 0, 1, 1);
- test("abcde", 1, 5, "abcdefghijklmnopqrst", 0, 10, 1);
- test("abcde", 1, 5, "abcdefghijklmnopqrst", 0, 19, 1);
- test("abcde", 1, 5, "abcdefghijklmnopqrst", 0, 20, 1);
- test("abcde", 1, 5, "abcdefghijklmnopqrst", 0, 21, 1);
- test("abcde", 1, 5, "abcdefghijklmnopqrst", 1, 0, 4);
- test("abcde", 1, 5, "abcdefghijklmnopqrst", 1, 1, 3);
- test("abcde", 1, 5, "abcdefghijklmnopqrst", 1, 9, -5);
- test("abcde", 1, 5, "abcdefghijklmnopqrst", 1, 18, -14);
- test("abcde", 1, 5, "abcdefghijklmnopqrst", 1, 19, -15);
- test("abcde", 1, 5, "abcdefghijklmnopqrst", 1, 20, -15);
- test("abcde", 1, 5, "abcdefghijklmnopqrst", 10, 0, 4);
- test("abcde", 1, 5, "abcdefghijklmnopqrst", 10, 1, -9);
+void test10() {
+ test("abcde", 1, 4, "abcdefghij", 5, 0, 4);
+ test("abcde", 1, 4, "abcdefghij", 5, 1, -4);
+ test("abcde", 1, 4, "abcdefghij", 5, 2, -4);
+ test("abcde", 1, 4, "abcdefghij", 5, 4, -4);
+ test("abcde", 1, 4, "abcdefghij", 5, 5, -4);
+ test("abcde", 1, 4, "abcdefghij", 5, 6, -4);
+ test("abcde", 1, 4, "abcdefghij", 9, 0, 4);
+ test("abcde", 1, 4, "abcdefghij", 9, 1, -8);
+ test("abcde", 1, 4, "abcdefghij", 9, 2, -8);
+ test("abcde", 1, 4, "abcdefghij", 10, 0, 4);
+ test("abcde", 1, 4, "abcdefghij", 10, 1, 4);
+ test("abcde", 1, 4, "abcdefghij", 11, 0, 0);
+ test("abcde", 1, 4, "abcdefghijklmnopqrst", 0, 0, 4);
+ test("abcde", 1, 4, "abcdefghijklmnopqrst", 0, 1, 1);
+ test("abcde", 1, 4, "abcdefghijklmnopqrst", 0, 10, 1);
+ test("abcde", 1, 4, "abcdefghijklmnopqrst", 0, 19, 1);
+ test("abcde", 1, 4, "abcdefghijklmnopqrst", 0, 20, 1);
+ test("abcde", 1, 4, "abcdefghijklmnopqrst", 0, 21, 1);
+ test("abcde", 1, 4, "abcdefghijklmnopqrst", 1, 0, 4);
+ test("abcde", 1, 4, "abcdefghijklmnopqrst", 1, 1, 3);
+ test("abcde", 1, 4, "abcdefghijklmnopqrst", 1, 9, -5);
+ test("abcde", 1, 4, "abcdefghijklmnopqrst", 1, 18, -14);
+ test("abcde", 1, 4, "abcdefghijklmnopqrst", 1, 19, -15);
+ test("abcde", 1, 4, "abcdefghijklmnopqrst", 1, 20, -15);
+ test("abcde", 1, 4, "abcdefghijklmnopqrst", 10, 0, 4);
+ test("abcde", 1, 4, "abcdefghijklmnopqrst", 10, 1, -9);
+ test("abcde", 1, 4, "abcdefghijklmnopqrst", 10, 5, -9);
+ test("abcde", 1, 4, "abcdefghijklmnopqrst", 10, 9, -9);
+ test("abcde", 1, 4, "abcdefghijklmnopqrst", 10, 10, -9);
+ test("abcde", 1, 4, "abcdefghijklmnopqrst", 10, 11, -9);
+ test("abcde", 1, 4, "abcdefghijklmnopqrst", 19, 0, 4);
+ test("abcde", 1, 4, "abcdefghijklmnopqrst", 19, 1, -18);
+ test("abcde", 1, 4, "abcdefghijklmnopqrst", 19, 2, -18);
+ test("abcde", 1, 4, "abcdefghijklmnopqrst", 20, 0, 4);
+ test("abcde", 1, 4, "abcdefghijklmnopqrst", 20, 1, 4);
+ test("abcde", 1, 4, "abcdefghijklmnopqrst", 21, 0, 0);
+ test("abcde", 1, 5, "", 0, 0, 4);
+ test("abcde", 1, 5, "", 0, 1, 4);
+ test("abcde", 1, 5, "", 1, 0, 0);
+ test("abcde", 1, 5, "abcde", 0, 0, 4);
+ test("abcde", 1, 5, "abcde", 0, 1, 1);
+ test("abcde", 1, 5, "abcde", 0, 2, 1);
+ test("abcde", 1, 5, "abcde", 0, 4, 1);
+ test("abcde", 1, 5, "abcde", 0, 5, 1);
+ test("abcde", 1, 5, "abcde", 0, 6, 1);
+ test("abcde", 1, 5, "abcde", 1, 0, 4);
+ test("abcde", 1, 5, "abcde", 1, 1, 3);
+ test("abcde", 1, 5, "abcde", 1, 2, 2);
+ test("abcde", 1, 5, "abcde", 1, 3, 1);
+ test("abcde", 1, 5, "abcde", 1, 4, 0);
+ test("abcde", 1, 5, "abcde", 1, 5, 0);
+ test("abcde", 1, 5, "abcde", 2, 0, 4);
+ test("abcde", 1, 5, "abcde", 2, 1, -1);
+ test("abcde", 1, 5, "abcde", 2, 2, -1);
+ test("abcde", 1, 5, "abcde", 2, 3, -1);
+ test("abcde", 1, 5, "abcde", 2, 4, -1);
+ test("abcde", 1, 5, "abcde", 4, 0, 4);
+ test("abcde", 1, 5, "abcde", 4, 1, -3);
+ test("abcde", 1, 5, "abcde", 4, 2, -3);
+ test("abcde", 1, 5, "abcde", 5, 0, 4);
+ test("abcde", 1, 5, "abcde", 5, 1, 4);
+ test("abcde", 1, 5, "abcde", 6, 0, 0);
+ test("abcde", 1, 5, "abcdefghij", 0, 0, 4);
+ test("abcde", 1, 5, "abcdefghij", 0, 1, 1);
+ test("abcde", 1, 5, "abcdefghij", 0, 5, 1);
+ test("abcde", 1, 5, "abcdefghij", 0, 9, 1);
+ test("abcde", 1, 5, "abcdefghij", 0, 10, 1);
+ test("abcde", 1, 5, "abcdefghij", 0, 11, 1);
+ test("abcde", 1, 5, "abcdefghij", 1, 0, 4);
+ test("abcde", 1, 5, "abcdefghij", 1, 1, 3);
+ test("abcde", 1, 5, "abcdefghij", 1, 4, 0);
+ test("abcde", 1, 5, "abcdefghij", 1, 8, -4);
+ test("abcde", 1, 5, "abcdefghij", 1, 9, -5);
+ test("abcde", 1, 5, "abcdefghij", 1, 10, -5);
+ test("abcde", 1, 5, "abcdefghij", 5, 0, 4);
+ test("abcde", 1, 5, "abcdefghij", 5, 1, -4);
+ test("abcde", 1, 5, "abcdefghij", 5, 2, -4);
+ test("abcde", 1, 5, "abcdefghij", 5, 4, -4);
+ test("abcde", 1, 5, "abcdefghij", 5, 5, -4);
+ test("abcde", 1, 5, "abcdefghij", 5, 6, -4);
+ test("abcde", 1, 5, "abcdefghij", 9, 0, 4);
+ test("abcde", 1, 5, "abcdefghij", 9, 1, -8);
+ test("abcde", 1, 5, "abcdefghij", 9, 2, -8);
+ test("abcde", 1, 5, "abcdefghij", 10, 0, 4);
+ test("abcde", 1, 5, "abcdefghij", 10, 1, 4);
+ test("abcde", 1, 5, "abcdefghij", 11, 0, 0);
+ test("abcde", 1, 5, "abcdefghijklmnopqrst", 0, 0, 4);
+ test("abcde", 1, 5, "abcdefghijklmnopqrst", 0, 1, 1);
+ test("abcde", 1, 5, "abcdefghijklmnopqrst", 0, 10, 1);
+ test("abcde", 1, 5, "abcdefghijklmnopqrst", 0, 19, 1);
+ test("abcde", 1, 5, "abcdefghijklmnopqrst", 0, 20, 1);
+ test("abcde", 1, 5, "abcdefghijklmnopqrst", 0, 21, 1);
+ test("abcde", 1, 5, "abcdefghijklmnopqrst", 1, 0, 4);
+ test("abcde", 1, 5, "abcdefghijklmnopqrst", 1, 1, 3);
+ test("abcde", 1, 5, "abcdefghijklmnopqrst", 1, 9, -5);
+ test("abcde", 1, 5, "abcdefghijklmnopqrst", 1, 18, -14);
+ test("abcde", 1, 5, "abcdefghijklmnopqrst", 1, 19, -15);
+ test("abcde", 1, 5, "abcdefghijklmnopqrst", 1, 20, -15);
+ test("abcde", 1, 5, "abcdefghijklmnopqrst", 10, 0, 4);
+ test("abcde", 1, 5, "abcdefghijklmnopqrst", 10, 1, -9);
}
-void test11()
-{
- test("abcde", 1, 5, "abcdefghijklmnopqrst", 10, 5, -9);
- test("abcde", 1, 5, "abcdefghijklmnopqrst", 10, 9, -9);
- test("abcde", 1, 5, "abcdefghijklmnopqrst", 10, 10, -9);
- test("abcde", 1, 5, "abcdefghijklmnopqrst", 10, 11, -9);
- test("abcde", 1, 5, "abcdefghijklmnopqrst", 19, 0, 4);
- test("abcde", 1, 5, "abcdefghijklmnopqrst", 19, 1, -18);
- test("abcde", 1, 5, "abcdefghijklmnopqrst", 19, 2, -18);
- test("abcde", 1, 5, "abcdefghijklmnopqrst", 20, 0, 4);
- test("abcde", 1, 5, "abcdefghijklmnopqrst", 20, 1, 4);
- test("abcde", 1, 5, "abcdefghijklmnopqrst", 21, 0, 0);
- test("abcde", 2, 0, "", 0, 0, 0);
- test("abcde", 2, 0, "", 0, 1, 0);
- test("abcde", 2, 0, "", 1, 0, 0);
- test("abcde", 2, 0, "abcde", 0, 0, 0);
- test("abcde", 2, 0, "abcde", 0, 1, -1);
- test("abcde", 2, 0, "abcde", 0, 2, -2);
- test("abcde", 2, 0, "abcde", 0, 4, -4);
- test("abcde", 2, 0, "abcde", 0, 5, -5);
- test("abcde", 2, 0, "abcde", 0, 6, -5);
- test("abcde", 2, 0, "abcde", 1, 0, 0);
- test("abcde", 2, 0, "abcde", 1, 1, -1);
- test("abcde", 2, 0, "abcde", 1, 2, -2);
- test("abcde", 2, 0, "abcde", 1, 3, -3);
- test("abcde", 2, 0, "abcde", 1, 4, -4);
- test("abcde", 2, 0, "abcde", 1, 5, -4);
- test("abcde", 2, 0, "abcde", 2, 0, 0);
- test("abcde", 2, 0, "abcde", 2, 1, -1);
- test("abcde", 2, 0, "abcde", 2, 2, -2);
- test("abcde", 2, 0, "abcde", 2, 3, -3);
- test("abcde", 2, 0, "abcde", 2, 4, -3);
- test("abcde", 2, 0, "abcde", 4, 0, 0);
- test("abcde", 2, 0, "abcde", 4, 1, -1);
- test("abcde", 2, 0, "abcde", 4, 2, -1);
- test("abcde", 2, 0, "abcde", 5, 0, 0);
- test("abcde", 2, 0, "abcde", 5, 1, 0);
- test("abcde", 2, 0, "abcde", 6, 0, 0);
- test("abcde", 2, 0, "abcdefghij", 0, 0, 0);
- test("abcde", 2, 0, "abcdefghij", 0, 1, -1);
- test("abcde", 2, 0, "abcdefghij", 0, 5, -5);
- test("abcde", 2, 0, "abcdefghij", 0, 9, -9);
- test("abcde", 2, 0, "abcdefghij", 0, 10, -10);
- test("abcde", 2, 0, "abcdefghij", 0, 11, -10);
- test("abcde", 2, 0, "abcdefghij", 1, 0, 0);
- test("abcde", 2, 0, "abcdefghij", 1, 1, -1);
- test("abcde", 2, 0, "abcdefghij", 1, 4, -4);
- test("abcde", 2, 0, "abcdefghij", 1, 8, -8);
- test("abcde", 2, 0, "abcdefghij", 1, 9, -9);
- test("abcde", 2, 0, "abcdefghij", 1, 10, -9);
- test("abcde", 2, 0, "abcdefghij", 5, 0, 0);
- test("abcde", 2, 0, "abcdefghij", 5, 1, -1);
- test("abcde", 2, 0, "abcdefghij", 5, 2, -2);
- test("abcde", 2, 0, "abcdefghij", 5, 4, -4);
- test("abcde", 2, 0, "abcdefghij", 5, 5, -5);
- test("abcde", 2, 0, "abcdefghij", 5, 6, -5);
- test("abcde", 2, 0, "abcdefghij", 9, 0, 0);
- test("abcde", 2, 0, "abcdefghij", 9, 1, -1);
- test("abcde", 2, 0, "abcdefghij", 9, 2, -1);
- test("abcde", 2, 0, "abcdefghij", 10, 0, 0);
- test("abcde", 2, 0, "abcdefghij", 10, 1, 0);
- test("abcde", 2, 0, "abcdefghij", 11, 0, 0);
- test("abcde", 2, 0, "abcdefghijklmnopqrst", 0, 0, 0);
- test("abcde", 2, 0, "abcdefghijklmnopqrst", 0, 1, -1);
- test("abcde", 2, 0, "abcdefghijklmnopqrst", 0, 10, -10);
- test("abcde", 2, 0, "abcdefghijklmnopqrst", 0, 19, -19);
- test("abcde", 2, 0, "abcdefghijklmnopqrst", 0, 20, -20);
- test("abcde", 2, 0, "abcdefghijklmnopqrst", 0, 21, -20);
- test("abcde", 2, 0, "abcdefghijklmnopqrst", 1, 0, 0);
- test("abcde", 2, 0, "abcdefghijklmnopqrst", 1, 1, -1);
- test("abcde", 2, 0, "abcdefghijklmnopqrst", 1, 9, -9);
- test("abcde", 2, 0, "abcdefghijklmnopqrst", 1, 18, -18);
- test("abcde", 2, 0, "abcdefghijklmnopqrst", 1, 19, -19);
- test("abcde", 2, 0, "abcdefghijklmnopqrst", 1, 20, -19);
- test("abcde", 2, 0, "abcdefghijklmnopqrst", 10, 0, 0);
- test("abcde", 2, 0, "abcdefghijklmnopqrst", 10, 1, -1);
- test("abcde", 2, 0, "abcdefghijklmnopqrst", 10, 5, -5);
- test("abcde", 2, 0, "abcdefghijklmnopqrst", 10, 9, -9);
- test("abcde", 2, 0, "abcdefghijklmnopqrst", 10, 10, -10);
- test("abcde", 2, 0, "abcdefghijklmnopqrst", 10, 11, -10);
- test("abcde", 2, 0, "abcdefghijklmnopqrst", 19, 0, 0);
- test("abcde", 2, 0, "abcdefghijklmnopqrst", 19, 1, -1);
- test("abcde", 2, 0, "abcdefghijklmnopqrst", 19, 2, -1);
- test("abcde", 2, 0, "abcdefghijklmnopqrst", 20, 0, 0);
- test("abcde", 2, 0, "abcdefghijklmnopqrst", 20, 1, 0);
- test("abcde", 2, 0, "abcdefghijklmnopqrst", 21, 0, 0);
- test("abcde", 2, 1, "", 0, 0, 1);
- test("abcde", 2, 1, "", 0, 1, 1);
- test("abcde", 2, 1, "", 1, 0, 0);
- test("abcde", 2, 1, "abcde", 0, 0, 1);
- test("abcde", 2, 1, "abcde", 0, 1, 2);
- test("abcde", 2, 1, "abcde", 0, 2, 2);
- test("abcde", 2, 1, "abcde", 0, 4, 2);
- test("abcde", 2, 1, "abcde", 0, 5, 2);
- test("abcde", 2, 1, "abcde", 0, 6, 2);
- test("abcde", 2, 1, "abcde", 1, 0, 1);
- test("abcde", 2, 1, "abcde", 1, 1, 1);
- test("abcde", 2, 1, "abcde", 1, 2, 1);
- test("abcde", 2, 1, "abcde", 1, 3, 1);
- test("abcde", 2, 1, "abcde", 1, 4, 1);
- test("abcde", 2, 1, "abcde", 1, 5, 1);
- test("abcde", 2, 1, "abcde", 2, 0, 1);
+void test11() {
+ test("abcde", 1, 5, "abcdefghijklmnopqrst", 10, 5, -9);
+ test("abcde", 1, 5, "abcdefghijklmnopqrst", 10, 9, -9);
+ test("abcde", 1, 5, "abcdefghijklmnopqrst", 10, 10, -9);
+ test("abcde", 1, 5, "abcdefghijklmnopqrst", 10, 11, -9);
+ test("abcde", 1, 5, "abcdefghijklmnopqrst", 19, 0, 4);
+ test("abcde", 1, 5, "abcdefghijklmnopqrst", 19, 1, -18);
+ test("abcde", 1, 5, "abcdefghijklmnopqrst", 19, 2, -18);
+ test("abcde", 1, 5, "abcdefghijklmnopqrst", 20, 0, 4);
+ test("abcde", 1, 5, "abcdefghijklmnopqrst", 20, 1, 4);
+ test("abcde", 1, 5, "abcdefghijklmnopqrst", 21, 0, 0);
+ test("abcde", 2, 0, "", 0, 0, 0);
+ test("abcde", 2, 0, "", 0, 1, 0);
+ test("abcde", 2, 0, "", 1, 0, 0);
+ test("abcde", 2, 0, "abcde", 0, 0, 0);
+ test("abcde", 2, 0, "abcde", 0, 1, -1);
+ test("abcde", 2, 0, "abcde", 0, 2, -2);
+ test("abcde", 2, 0, "abcde", 0, 4, -4);
+ test("abcde", 2, 0, "abcde", 0, 5, -5);
+ test("abcde", 2, 0, "abcde", 0, 6, -5);
+ test("abcde", 2, 0, "abcde", 1, 0, 0);
+ test("abcde", 2, 0, "abcde", 1, 1, -1);
+ test("abcde", 2, 0, "abcde", 1, 2, -2);
+ test("abcde", 2, 0, "abcde", 1, 3, -3);
+ test("abcde", 2, 0, "abcde", 1, 4, -4);
+ test("abcde", 2, 0, "abcde", 1, 5, -4);
+ test("abcde", 2, 0, "abcde", 2, 0, 0);
+ test("abcde", 2, 0, "abcde", 2, 1, -1);
+ test("abcde", 2, 0, "abcde", 2, 2, -2);
+ test("abcde", 2, 0, "abcde", 2, 3, -3);
+ test("abcde", 2, 0, "abcde", 2, 4, -3);
+ test("abcde", 2, 0, "abcde", 4, 0, 0);
+ test("abcde", 2, 0, "abcde", 4, 1, -1);
+ test("abcde", 2, 0, "abcde", 4, 2, -1);
+ test("abcde", 2, 0, "abcde", 5, 0, 0);
+ test("abcde", 2, 0, "abcde", 5, 1, 0);
+ test("abcde", 2, 0, "abcde", 6, 0, 0);
+ test("abcde", 2, 0, "abcdefghij", 0, 0, 0);
+ test("abcde", 2, 0, "abcdefghij", 0, 1, -1);
+ test("abcde", 2, 0, "abcdefghij", 0, 5, -5);
+ test("abcde", 2, 0, "abcdefghij", 0, 9, -9);
+ test("abcde", 2, 0, "abcdefghij", 0, 10, -10);
+ test("abcde", 2, 0, "abcdefghij", 0, 11, -10);
+ test("abcde", 2, 0, "abcdefghij", 1, 0, 0);
+ test("abcde", 2, 0, "abcdefghij", 1, 1, -1);
+ test("abcde", 2, 0, "abcdefghij", 1, 4, -4);
+ test("abcde", 2, 0, "abcdefghij", 1, 8, -8);
+ test("abcde", 2, 0, "abcdefghij", 1, 9, -9);
+ test("abcde", 2, 0, "abcdefghij", 1, 10, -9);
+ test("abcde", 2, 0, "abcdefghij", 5, 0, 0);
+ test("abcde", 2, 0, "abcdefghij", 5, 1, -1);
+ test("abcde", 2, 0, "abcdefghij", 5, 2, -2);
+ test("abcde", 2, 0, "abcdefghij", 5, 4, -4);
+ test("abcde", 2, 0, "abcdefghij", 5, 5, -5);
+ test("abcde", 2, 0, "abcdefghij", 5, 6, -5);
+ test("abcde", 2, 0, "abcdefghij", 9, 0, 0);
+ test("abcde", 2, 0, "abcdefghij", 9, 1, -1);
+ test("abcde", 2, 0, "abcdefghij", 9, 2, -1);
+ test("abcde", 2, 0, "abcdefghij", 10, 0, 0);
+ test("abcde", 2, 0, "abcdefghij", 10, 1, 0);
+ test("abcde", 2, 0, "abcdefghij", 11, 0, 0);
+ test("abcde", 2, 0, "abcdefghijklmnopqrst", 0, 0, 0);
+ test("abcde", 2, 0, "abcdefghijklmnopqrst", 0, 1, -1);
+ test("abcde", 2, 0, "abcdefghijklmnopqrst", 0, 10, -10);
+ test("abcde", 2, 0, "abcdefghijklmnopqrst", 0, 19, -19);
+ test("abcde", 2, 0, "abcdefghijklmnopqrst", 0, 20, -20);
+ test("abcde", 2, 0, "abcdefghijklmnopqrst", 0, 21, -20);
+ test("abcde", 2, 0, "abcdefghijklmnopqrst", 1, 0, 0);
+ test("abcde", 2, 0, "abcdefghijklmnopqrst", 1, 1, -1);
+ test("abcde", 2, 0, "abcdefghijklmnopqrst", 1, 9, -9);
+ test("abcde", 2, 0, "abcdefghijklmnopqrst", 1, 18, -18);
+ test("abcde", 2, 0, "abcdefghijklmnopqrst", 1, 19, -19);
+ test("abcde", 2, 0, "abcdefghijklmnopqrst", 1, 20, -19);
+ test("abcde", 2, 0, "abcdefghijklmnopqrst", 10, 0, 0);
+ test("abcde", 2, 0, "abcdefghijklmnopqrst", 10, 1, -1);
+ test("abcde", 2, 0, "abcdefghijklmnopqrst", 10, 5, -5);
+ test("abcde", 2, 0, "abcdefghijklmnopqrst", 10, 9, -9);
+ test("abcde", 2, 0, "abcdefghijklmnopqrst", 10, 10, -10);
+ test("abcde", 2, 0, "abcdefghijklmnopqrst", 10, 11, -10);
+ test("abcde", 2, 0, "abcdefghijklmnopqrst", 19, 0, 0);
+ test("abcde", 2, 0, "abcdefghijklmnopqrst", 19, 1, -1);
+ test("abcde", 2, 0, "abcdefghijklmnopqrst", 19, 2, -1);
+ test("abcde", 2, 0, "abcdefghijklmnopqrst", 20, 0, 0);
+ test("abcde", 2, 0, "abcdefghijklmnopqrst", 20, 1, 0);
+ test("abcde", 2, 0, "abcdefghijklmnopqrst", 21, 0, 0);
+ test("abcde", 2, 1, "", 0, 0, 1);
+ test("abcde", 2, 1, "", 0, 1, 1);
+ test("abcde", 2, 1, "", 1, 0, 0);
+ test("abcde", 2, 1, "abcde", 0, 0, 1);
+ test("abcde", 2, 1, "abcde", 0, 1, 2);
+ test("abcde", 2, 1, "abcde", 0, 2, 2);
+ test("abcde", 2, 1, "abcde", 0, 4, 2);
+ test("abcde", 2, 1, "abcde", 0, 5, 2);
+ test("abcde", 2, 1, "abcde", 0, 6, 2);
+ test("abcde", 2, 1, "abcde", 1, 0, 1);
+ test("abcde", 2, 1, "abcde", 1, 1, 1);
+ test("abcde", 2, 1, "abcde", 1, 2, 1);
+ test("abcde", 2, 1, "abcde", 1, 3, 1);
+ test("abcde", 2, 1, "abcde", 1, 4, 1);
+ test("abcde", 2, 1, "abcde", 1, 5, 1);
+ test("abcde", 2, 1, "abcde", 2, 0, 1);
}
-void test12()
-{
- test("abcde", 2, 1, "abcde", 2, 1, 0);
- test("abcde", 2, 1, "abcde", 2, 2, -1);
- test("abcde", 2, 1, "abcde", 2, 3, -2);
- test("abcde", 2, 1, "abcde", 2, 4, -2);
- test("abcde", 2, 1, "abcde", 4, 0, 1);
- test("abcde", 2, 1, "abcde", 4, 1, -2);
- test("abcde", 2, 1, "abcde", 4, 2, -2);
- test("abcde", 2, 1, "abcde", 5, 0, 1);
- test("abcde", 2, 1, "abcde", 5, 1, 1);
- test("abcde", 2, 1, "abcde", 6, 0, 0);
- test("abcde", 2, 1, "abcdefghij", 0, 0, 1);
- test("abcde", 2, 1, "abcdefghij", 0, 1, 2);
- test("abcde", 2, 1, "abcdefghij", 0, 5, 2);
- test("abcde", 2, 1, "abcdefghij", 0, 9, 2);
- test("abcde", 2, 1, "abcdefghij", 0, 10, 2);
- test("abcde", 2, 1, "abcdefghij", 0, 11, 2);
- test("abcde", 2, 1, "abcdefghij", 1, 0, 1);
- test("abcde", 2, 1, "abcdefghij", 1, 1, 1);
- test("abcde", 2, 1, "abcdefghij", 1, 4, 1);
- test("abcde", 2, 1, "abcdefghij", 1, 8, 1);
- test("abcde", 2, 1, "abcdefghij", 1, 9, 1);
- test("abcde", 2, 1, "abcdefghij", 1, 10, 1);
- test("abcde", 2, 1, "abcdefghij", 5, 0, 1);
- test("abcde", 2, 1, "abcdefghij", 5, 1, -3);
- test("abcde", 2, 1, "abcdefghij", 5, 2, -3);
- test("abcde", 2, 1, "abcdefghij", 5, 4, -3);
- test("abcde", 2, 1, "abcdefghij", 5, 5, -3);
- test("abcde", 2, 1, "abcdefghij", 5, 6, -3);
- test("abcde", 2, 1, "abcdefghij", 9, 0, 1);
- test("abcde", 2, 1, "abcdefghij", 9, 1, -7);
- test("abcde", 2, 1, "abcdefghij", 9, 2, -7);
- test("abcde", 2, 1, "abcdefghij", 10, 0, 1);
- test("abcde", 2, 1, "abcdefghij", 10, 1, 1);
- test("abcde", 2, 1, "abcdefghij", 11, 0, 0);
- test("abcde", 2, 1, "abcdefghijklmnopqrst", 0, 0, 1);
- test("abcde", 2, 1, "abcdefghijklmnopqrst", 0, 1, 2);
- test("abcde", 2, 1, "abcdefghijklmnopqrst", 0, 10, 2);
- test("abcde", 2, 1, "abcdefghijklmnopqrst", 0, 19, 2);
- test("abcde", 2, 1, "abcdefghijklmnopqrst", 0, 20, 2);
- test("abcde", 2, 1, "abcdefghijklmnopqrst", 0, 21, 2);
- test("abcde", 2, 1, "abcdefghijklmnopqrst", 1, 0, 1);
- test("abcde", 2, 1, "abcdefghijklmnopqrst", 1, 1, 1);
- test("abcde", 2, 1, "abcdefghijklmnopqrst", 1, 9, 1);
- test("abcde", 2, 1, "abcdefghijklmnopqrst", 1, 18, 1);
- test("abcde", 2, 1, "abcdefghijklmnopqrst", 1, 19, 1);
- test("abcde", 2, 1, "abcdefghijklmnopqrst", 1, 20, 1);
- test("abcde", 2, 1, "abcdefghijklmnopqrst", 10, 0, 1);
- test("abcde", 2, 1, "abcdefghijklmnopqrst", 10, 1, -8);
- test("abcde", 2, 1, "abcdefghijklmnopqrst", 10, 5, -8);
- test("abcde", 2, 1, "abcdefghijklmnopqrst", 10, 9, -8);
- test("abcde", 2, 1, "abcdefghijklmnopqrst", 10, 10, -8);
- test("abcde", 2, 1, "abcdefghijklmnopqrst", 10, 11, -8);
- test("abcde", 2, 1, "abcdefghijklmnopqrst", 19, 0, 1);
- test("abcde", 2, 1, "abcdefghijklmnopqrst", 19, 1, -17);
- test("abcde", 2, 1, "abcdefghijklmnopqrst", 19, 2, -17);
- test("abcde", 2, 1, "abcdefghijklmnopqrst", 20, 0, 1);
- test("abcde", 2, 1, "abcdefghijklmnopqrst", 20, 1, 1);
- test("abcde", 2, 1, "abcdefghijklmnopqrst", 21, 0, 0);
- test("abcde", 2, 2, "", 0, 0, 2);
- test("abcde", 2, 2, "", 0, 1, 2);
- test("abcde", 2, 2, "", 1, 0, 0);
- test("abcde", 2, 2, "abcde", 0, 0, 2);
- test("abcde", 2, 2, "abcde", 0, 1, 2);
- test("abcde", 2, 2, "abcde", 0, 2, 2);
- test("abcde", 2, 2, "abcde", 0, 4, 2);
- test("abcde", 2, 2, "abcde", 0, 5, 2);
- test("abcde", 2, 2, "abcde", 0, 6, 2);
- test("abcde", 2, 2, "abcde", 1, 0, 2);
- test("abcde", 2, 2, "abcde", 1, 1, 1);
- test("abcde", 2, 2, "abcde", 1, 2, 1);
- test("abcde", 2, 2, "abcde", 1, 3, 1);
- test("abcde", 2, 2, "abcde", 1, 4, 1);
- test("abcde", 2, 2, "abcde", 1, 5, 1);
- test("abcde", 2, 2, "abcde", 2, 0, 2);
- test("abcde", 2, 2, "abcde", 2, 1, 1);
- test("abcde", 2, 2, "abcde", 2, 2, 0);
- test("abcde", 2, 2, "abcde", 2, 3, -1);
- test("abcde", 2, 2, "abcde", 2, 4, -1);
- test("abcde", 2, 2, "abcde", 4, 0, 2);
- test("abcde", 2, 2, "abcde", 4, 1, -2);
- test("abcde", 2, 2, "abcde", 4, 2, -2);
- test("abcde", 2, 2, "abcde", 5, 0, 2);
- test("abcde", 2, 2, "abcde", 5, 1, 2);
- test("abcde", 2, 2, "abcde", 6, 0, 0);
- test("abcde", 2, 2, "abcdefghij", 0, 0, 2);
- test("abcde", 2, 2, "abcdefghij", 0, 1, 2);
- test("abcde", 2, 2, "abcdefghij", 0, 5, 2);
- test("abcde", 2, 2, "abcdefghij", 0, 9, 2);
- test("abcde", 2, 2, "abcdefghij", 0, 10, 2);
- test("abcde", 2, 2, "abcdefghij", 0, 11, 2);
- test("abcde", 2, 2, "abcdefghij", 1, 0, 2);
- test("abcde", 2, 2, "abcdefghij", 1, 1, 1);
- test("abcde", 2, 2, "abcdefghij", 1, 4, 1);
- test("abcde", 2, 2, "abcdefghij", 1, 8, 1);
- test("abcde", 2, 2, "abcdefghij", 1, 9, 1);
- test("abcde", 2, 2, "abcdefghij", 1, 10, 1);
- test("abcde", 2, 2, "abcdefghij", 5, 0, 2);
- test("abcde", 2, 2, "abcdefghij", 5, 1, -3);
- test("abcde", 2, 2, "abcdefghij", 5, 2, -3);
- test("abcde", 2, 2, "abcdefghij", 5, 4, -3);
+void test12() {
+ test("abcde", 2, 1, "abcde", 2, 1, 0);
+ test("abcde", 2, 1, "abcde", 2, 2, -1);
+ test("abcde", 2, 1, "abcde", 2, 3, -2);
+ test("abcde", 2, 1, "abcde", 2, 4, -2);
+ test("abcde", 2, 1, "abcde", 4, 0, 1);
+ test("abcde", 2, 1, "abcde", 4, 1, -2);
+ test("abcde", 2, 1, "abcde", 4, 2, -2);
+ test("abcde", 2, 1, "abcde", 5, 0, 1);
+ test("abcde", 2, 1, "abcde", 5, 1, 1);
+ test("abcde", 2, 1, "abcde", 6, 0, 0);
+ test("abcde", 2, 1, "abcdefghij", 0, 0, 1);
+ test("abcde", 2, 1, "abcdefghij", 0, 1, 2);
+ test("abcde", 2, 1, "abcdefghij", 0, 5, 2);
+ test("abcde", 2, 1, "abcdefghij", 0, 9, 2);
+ test("abcde", 2, 1, "abcdefghij", 0, 10, 2);
+ test("abcde", 2, 1, "abcdefghij", 0, 11, 2);
+ test("abcde", 2, 1, "abcdefghij", 1, 0, 1);
+ test("abcde", 2, 1, "abcdefghij", 1, 1, 1);
+ test("abcde", 2, 1, "abcdefghij", 1, 4, 1);
+ test("abcde", 2, 1, "abcdefghij", 1, 8, 1);
+ test("abcde", 2, 1, "abcdefghij", 1, 9, 1);
+ test("abcde", 2, 1, "abcdefghij", 1, 10, 1);
+ test("abcde", 2, 1, "abcdefghij", 5, 0, 1);
+ test("abcde", 2, 1, "abcdefghij", 5, 1, -3);
+ test("abcde", 2, 1, "abcdefghij", 5, 2, -3);
+ test("abcde", 2, 1, "abcdefghij", 5, 4, -3);
+ test("abcde", 2, 1, "abcdefghij", 5, 5, -3);
+ test("abcde", 2, 1, "abcdefghij", 5, 6, -3);
+ test("abcde", 2, 1, "abcdefghij", 9, 0, 1);
+ test("abcde", 2, 1, "abcdefghij", 9, 1, -7);
+ test("abcde", 2, 1, "abcdefghij", 9, 2, -7);
+ test("abcde", 2, 1, "abcdefghij", 10, 0, 1);
+ test("abcde", 2, 1, "abcdefghij", 10, 1, 1);
+ test("abcde", 2, 1, "abcdefghij", 11, 0, 0);
+ test("abcde", 2, 1, "abcdefghijklmnopqrst", 0, 0, 1);
+ test("abcde", 2, 1, "abcdefghijklmnopqrst", 0, 1, 2);
+ test("abcde", 2, 1, "abcdefghijklmnopqrst", 0, 10, 2);
+ test("abcde", 2, 1, "abcdefghijklmnopqrst", 0, 19, 2);
+ test("abcde", 2, 1, "abcdefghijklmnopqrst", 0, 20, 2);
+ test("abcde", 2, 1, "abcdefghijklmnopqrst", 0, 21, 2);
+ test("abcde", 2, 1, "abcdefghijklmnopqrst", 1, 0, 1);
+ test("abcde", 2, 1, "abcdefghijklmnopqrst", 1, 1, 1);
+ test("abcde", 2, 1, "abcdefghijklmnopqrst", 1, 9, 1);
+ test("abcde", 2, 1, "abcdefghijklmnopqrst", 1, 18, 1);
+ test("abcde", 2, 1, "abcdefghijklmnopqrst", 1, 19, 1);
+ test("abcde", 2, 1, "abcdefghijklmnopqrst", 1, 20, 1);
+ test("abcde", 2, 1, "abcdefghijklmnopqrst", 10, 0, 1);
+ test("abcde", 2, 1, "abcdefghijklmnopqrst", 10, 1, -8);
+ test("abcde", 2, 1, "abcdefghijklmnopqrst", 10, 5, -8);
+ test("abcde", 2, 1, "abcdefghijklmnopqrst", 10, 9, -8);
+ test("abcde", 2, 1, "abcdefghijklmnopqrst", 10, 10, -8);
+ test("abcde", 2, 1, "abcdefghijklmnopqrst", 10, 11, -8);
+ test("abcde", 2, 1, "abcdefghijklmnopqrst", 19, 0, 1);
+ test("abcde", 2, 1, "abcdefghijklmnopqrst", 19, 1, -17);
+ test("abcde", 2, 1, "abcdefghijklmnopqrst", 19, 2, -17);
+ test("abcde", 2, 1, "abcdefghijklmnopqrst", 20, 0, 1);
+ test("abcde", 2, 1, "abcdefghijklmnopqrst", 20, 1, 1);
+ test("abcde", 2, 1, "abcdefghijklmnopqrst", 21, 0, 0);
+ test("abcde", 2, 2, "", 0, 0, 2);
+ test("abcde", 2, 2, "", 0, 1, 2);
+ test("abcde", 2, 2, "", 1, 0, 0);
+ test("abcde", 2, 2, "abcde", 0, 0, 2);
+ test("abcde", 2, 2, "abcde", 0, 1, 2);
+ test("abcde", 2, 2, "abcde", 0, 2, 2);
+ test("abcde", 2, 2, "abcde", 0, 4, 2);
+ test("abcde", 2, 2, "abcde", 0, 5, 2);
+ test("abcde", 2, 2, "abcde", 0, 6, 2);
+ test("abcde", 2, 2, "abcde", 1, 0, 2);
+ test("abcde", 2, 2, "abcde", 1, 1, 1);
+ test("abcde", 2, 2, "abcde", 1, 2, 1);
+ test("abcde", 2, 2, "abcde", 1, 3, 1);
+ test("abcde", 2, 2, "abcde", 1, 4, 1);
+ test("abcde", 2, 2, "abcde", 1, 5, 1);
+ test("abcde", 2, 2, "abcde", 2, 0, 2);
+ test("abcde", 2, 2, "abcde", 2, 1, 1);
+ test("abcde", 2, 2, "abcde", 2, 2, 0);
+ test("abcde", 2, 2, "abcde", 2, 3, -1);
+ test("abcde", 2, 2, "abcde", 2, 4, -1);
+ test("abcde", 2, 2, "abcde", 4, 0, 2);
+ test("abcde", 2, 2, "abcde", 4, 1, -2);
+ test("abcde", 2, 2, "abcde", 4, 2, -2);
+ test("abcde", 2, 2, "abcde", 5, 0, 2);
+ test("abcde", 2, 2, "abcde", 5, 1, 2);
+ test("abcde", 2, 2, "abcde", 6, 0, 0);
+ test("abcde", 2, 2, "abcdefghij", 0, 0, 2);
+ test("abcde", 2, 2, "abcdefghij", 0, 1, 2);
+ test("abcde", 2, 2, "abcdefghij", 0, 5, 2);
+ test("abcde", 2, 2, "abcdefghij", 0, 9, 2);
+ test("abcde", 2, 2, "abcdefghij", 0, 10, 2);
+ test("abcde", 2, 2, "abcdefghij", 0, 11, 2);
+ test("abcde", 2, 2, "abcdefghij", 1, 0, 2);
+ test("abcde", 2, 2, "abcdefghij", 1, 1, 1);
+ test("abcde", 2, 2, "abcdefghij", 1, 4, 1);
+ test("abcde", 2, 2, "abcdefghij", 1, 8, 1);
+ test("abcde", 2, 2, "abcdefghij", 1, 9, 1);
+ test("abcde", 2, 2, "abcdefghij", 1, 10, 1);
+ test("abcde", 2, 2, "abcdefghij", 5, 0, 2);
+ test("abcde", 2, 2, "abcdefghij", 5, 1, -3);
+ test("abcde", 2, 2, "abcdefghij", 5, 2, -3);
+ test("abcde", 2, 2, "abcdefghij", 5, 4, -3);
}
-void test13()
-{
- test("abcde", 2, 2, "abcdefghij", 5, 5, -3);
- test("abcde", 2, 2, "abcdefghij", 5, 6, -3);
- test("abcde", 2, 2, "abcdefghij", 9, 0, 2);
- test("abcde", 2, 2, "abcdefghij", 9, 1, -7);
- test("abcde", 2, 2, "abcdefghij", 9, 2, -7);
- test("abcde", 2, 2, "abcdefghij", 10, 0, 2);
- test("abcde", 2, 2, "abcdefghij", 10, 1, 2);
- test("abcde", 2, 2, "abcdefghij", 11, 0, 0);
- test("abcde", 2, 2, "abcdefghijklmnopqrst", 0, 0, 2);
- test("abcde", 2, 2, "abcdefghijklmnopqrst", 0, 1, 2);
- test("abcde", 2, 2, "abcdefghijklmnopqrst", 0, 10, 2);
- test("abcde", 2, 2, "abcdefghijklmnopqrst", 0, 19, 2);
- test("abcde", 2, 2, "abcdefghijklmnopqrst", 0, 20, 2);
- test("abcde", 2, 2, "abcdefghijklmnopqrst", 0, 21, 2);
- test("abcde", 2, 2, "abcdefghijklmnopqrst", 1, 0, 2);
- test("abcde", 2, 2, "abcdefghijklmnopqrst", 1, 1, 1);
- test("abcde", 2, 2, "abcdefghijklmnopqrst", 1, 9, 1);
- test("abcde", 2, 2, "abcdefghijklmnopqrst", 1, 18, 1);
- test("abcde", 2, 2, "abcdefghijklmnopqrst", 1, 19, 1);
- test("abcde", 2, 2, "abcdefghijklmnopqrst", 1, 20, 1);
- test("abcde", 2, 2, "abcdefghijklmnopqrst", 10, 0, 2);
- test("abcde", 2, 2, "abcdefghijklmnopqrst", 10, 1, -8);
- test("abcde", 2, 2, "abcdefghijklmnopqrst", 10, 5, -8);
- test("abcde", 2, 2, "abcdefghijklmnopqrst", 10, 9, -8);
- test("abcde", 2, 2, "abcdefghijklmnopqrst", 10, 10, -8);
- test("abcde", 2, 2, "abcdefghijklmnopqrst", 10, 11, -8);
- test("abcde", 2, 2, "abcdefghijklmnopqrst", 19, 0, 2);
- test("abcde", 2, 2, "abcdefghijklmnopqrst", 19, 1, -17);
- test("abcde", 2, 2, "abcdefghijklmnopqrst", 19, 2, -17);
- test("abcde", 2, 2, "abcdefghijklmnopqrst", 20, 0, 2);
- test("abcde", 2, 2, "abcdefghijklmnopqrst", 20, 1, 2);
- test("abcde", 2, 2, "abcdefghijklmnopqrst", 21, 0, 0);
- test("abcde", 2, 3, "", 0, 0, 3);
- test("abcde", 2, 3, "", 0, 1, 3);
- test("abcde", 2, 3, "", 1, 0, 0);
- test("abcde", 2, 3, "abcde", 0, 0, 3);
- test("abcde", 2, 3, "abcde", 0, 1, 2);
- test("abcde", 2, 3, "abcde", 0, 2, 2);
- test("abcde", 2, 3, "abcde", 0, 4, 2);
- test("abcde", 2, 3, "abcde", 0, 5, 2);
- test("abcde", 2, 3, "abcde", 0, 6, 2);
- test("abcde", 2, 3, "abcde", 1, 0, 3);
- test("abcde", 2, 3, "abcde", 1, 1, 1);
- test("abcde", 2, 3, "abcde", 1, 2, 1);
- test("abcde", 2, 3, "abcde", 1, 3, 1);
- test("abcde", 2, 3, "abcde", 1, 4, 1);
- test("abcde", 2, 3, "abcde", 1, 5, 1);
- test("abcde", 2, 3, "abcde", 2, 0, 3);
- test("abcde", 2, 3, "abcde", 2, 1, 2);
- test("abcde", 2, 3, "abcde", 2, 2, 1);
- test("abcde", 2, 3, "abcde", 2, 3, 0);
- test("abcde", 2, 3, "abcde", 2, 4, 0);
- test("abcde", 2, 3, "abcde", 4, 0, 3);
- test("abcde", 2, 3, "abcde", 4, 1, -2);
- test("abcde", 2, 3, "abcde", 4, 2, -2);
- test("abcde", 2, 3, "abcde", 5, 0, 3);
- test("abcde", 2, 3, "abcde", 5, 1, 3);
- test("abcde", 2, 3, "abcde", 6, 0, 0);
- test("abcde", 2, 3, "abcdefghij", 0, 0, 3);
- test("abcde", 2, 3, "abcdefghij", 0, 1, 2);
- test("abcde", 2, 3, "abcdefghij", 0, 5, 2);
- test("abcde", 2, 3, "abcdefghij", 0, 9, 2);
- test("abcde", 2, 3, "abcdefghij", 0, 10, 2);
- test("abcde", 2, 3, "abcdefghij", 0, 11, 2);
- test("abcde", 2, 3, "abcdefghij", 1, 0, 3);
- test("abcde", 2, 3, "abcdefghij", 1, 1, 1);
- test("abcde", 2, 3, "abcdefghij", 1, 4, 1);
- test("abcde", 2, 3, "abcdefghij", 1, 8, 1);
- test("abcde", 2, 3, "abcdefghij", 1, 9, 1);
- test("abcde", 2, 3, "abcdefghij", 1, 10, 1);
- test("abcde", 2, 3, "abcdefghij", 5, 0, 3);
- test("abcde", 2, 3, "abcdefghij", 5, 1, -3);
- test("abcde", 2, 3, "abcdefghij", 5, 2, -3);
- test("abcde", 2, 3, "abcdefghij", 5, 4, -3);
- test("abcde", 2, 3, "abcdefghij", 5, 5, -3);
- test("abcde", 2, 3, "abcdefghij", 5, 6, -3);
- test("abcde", 2, 3, "abcdefghij", 9, 0, 3);
- test("abcde", 2, 3, "abcdefghij", 9, 1, -7);
- test("abcde", 2, 3, "abcdefghij", 9, 2, -7);
- test("abcde", 2, 3, "abcdefghij", 10, 0, 3);
- test("abcde", 2, 3, "abcdefghij", 10, 1, 3);
- test("abcde", 2, 3, "abcdefghij", 11, 0, 0);
- test("abcde", 2, 3, "abcdefghijklmnopqrst", 0, 0, 3);
- test("abcde", 2, 3, "abcdefghijklmnopqrst", 0, 1, 2);
- test("abcde", 2, 3, "abcdefghijklmnopqrst", 0, 10, 2);
- test("abcde", 2, 3, "abcdefghijklmnopqrst", 0, 19, 2);
- test("abcde", 2, 3, "abcdefghijklmnopqrst", 0, 20, 2);
- test("abcde", 2, 3, "abcdefghijklmnopqrst", 0, 21, 2);
- test("abcde", 2, 3, "abcdefghijklmnopqrst", 1, 0, 3);
- test("abcde", 2, 3, "abcdefghijklmnopqrst", 1, 1, 1);
- test("abcde", 2, 3, "abcdefghijklmnopqrst", 1, 9, 1);
- test("abcde", 2, 3, "abcdefghijklmnopqrst", 1, 18, 1);
- test("abcde", 2, 3, "abcdefghijklmnopqrst", 1, 19, 1);
- test("abcde", 2, 3, "abcdefghijklmnopqrst", 1, 20, 1);
- test("abcde", 2, 3, "abcdefghijklmnopqrst", 10, 0, 3);
- test("abcde", 2, 3, "abcdefghijklmnopqrst", 10, 1, -8);
- test("abcde", 2, 3, "abcdefghijklmnopqrst", 10, 5, -8);
- test("abcde", 2, 3, "abcdefghijklmnopqrst", 10, 9, -8);
- test("abcde", 2, 3, "abcdefghijklmnopqrst", 10, 10, -8);
- test("abcde", 2, 3, "abcdefghijklmnopqrst", 10, 11, -8);
+void test13() {
+ test("abcde", 2, 2, "abcdefghij", 5, 5, -3);
+ test("abcde", 2, 2, "abcdefghij", 5, 6, -3);
+ test("abcde", 2, 2, "abcdefghij", 9, 0, 2);
+ test("abcde", 2, 2, "abcdefghij", 9, 1, -7);
+ test("abcde", 2, 2, "abcdefghij", 9, 2, -7);
+ test("abcde", 2, 2, "abcdefghij", 10, 0, 2);
+ test("abcde", 2, 2, "abcdefghij", 10, 1, 2);
+ test("abcde", 2, 2, "abcdefghij", 11, 0, 0);
+ test("abcde", 2, 2, "abcdefghijklmnopqrst", 0, 0, 2);
+ test("abcde", 2, 2, "abcdefghijklmnopqrst", 0, 1, 2);
+ test("abcde", 2, 2, "abcdefghijklmnopqrst", 0, 10, 2);
+ test("abcde", 2, 2, "abcdefghijklmnopqrst", 0, 19, 2);
+ test("abcde", 2, 2, "abcdefghijklmnopqrst", 0, 20, 2);
+ test("abcde", 2, 2, "abcdefghijklmnopqrst", 0, 21, 2);
+ test("abcde", 2, 2, "abcdefghijklmnopqrst", 1, 0, 2);
+ test("abcde", 2, 2, "abcdefghijklmnopqrst", 1, 1, 1);
+ test("abcde", 2, 2, "abcdefghijklmnopqrst", 1, 9, 1);
+ test("abcde", 2, 2, "abcdefghijklmnopqrst", 1, 18, 1);
+ test("abcde", 2, 2, "abcdefghijklmnopqrst", 1, 19, 1);
+ test("abcde", 2, 2, "abcdefghijklmnopqrst", 1, 20, 1);
+ test("abcde", 2, 2, "abcdefghijklmnopqrst", 10, 0, 2);
+ test("abcde", 2, 2, "abcdefghijklmnopqrst", 10, 1, -8);
+ test("abcde", 2, 2, "abcdefghijklmnopqrst", 10, 5, -8);
+ test("abcde", 2, 2, "abcdefghijklmnopqrst", 10, 9, -8);
+ test("abcde", 2, 2, "abcdefghijklmnopqrst", 10, 10, -8);
+ test("abcde", 2, 2, "abcdefghijklmnopqrst", 10, 11, -8);
+ test("abcde", 2, 2, "abcdefghijklmnopqrst", 19, 0, 2);
+ test("abcde", 2, 2, "abcdefghijklmnopqrst", 19, 1, -17);
+ test("abcde", 2, 2, "abcdefghijklmnopqrst", 19, 2, -17);
+ test("abcde", 2, 2, "abcdefghijklmnopqrst", 20, 0, 2);
+ test("abcde", 2, 2, "abcdefghijklmnopqrst", 20, 1, 2);
+ test("abcde", 2, 2, "abcdefghijklmnopqrst", 21, 0, 0);
+ test("abcde", 2, 3, "", 0, 0, 3);
+ test("abcde", 2, 3, "", 0, 1, 3);
+ test("abcde", 2, 3, "", 1, 0, 0);
+ test("abcde", 2, 3, "abcde", 0, 0, 3);
+ test("abcde", 2, 3, "abcde", 0, 1, 2);
+ test("abcde", 2, 3, "abcde", 0, 2, 2);
+ test("abcde", 2, 3, "abcde", 0, 4, 2);
+ test("abcde", 2, 3, "abcde", 0, 5, 2);
+ test("abcde", 2, 3, "abcde", 0, 6, 2);
+ test("abcde", 2, 3, "abcde", 1, 0, 3);
+ test("abcde", 2, 3, "abcde", 1, 1, 1);
+ test("abcde", 2, 3, "abcde", 1, 2, 1);
+ test("abcde", 2, 3, "abcde", 1, 3, 1);
+ test("abcde", 2, 3, "abcde", 1, 4, 1);
+ test("abcde", 2, 3, "abcde", 1, 5, 1);
+ test("abcde", 2, 3, "abcde", 2, 0, 3);
+ test("abcde", 2, 3, "abcde", 2, 1, 2);
+ test("abcde", 2, 3, "abcde", 2, 2, 1);
+ test("abcde", 2, 3, "abcde", 2, 3, 0);
+ test("abcde", 2, 3, "abcde", 2, 4, 0);
+ test("abcde", 2, 3, "abcde", 4, 0, 3);
+ test("abcde", 2, 3, "abcde", 4, 1, -2);
+ test("abcde", 2, 3, "abcde", 4, 2, -2);
+ test("abcde", 2, 3, "abcde", 5, 0, 3);
+ test("abcde", 2, 3, "abcde", 5, 1, 3);
+ test("abcde", 2, 3, "abcde", 6, 0, 0);
+ test("abcde", 2, 3, "abcdefghij", 0, 0, 3);
+ test("abcde", 2, 3, "abcdefghij", 0, 1, 2);
+ test("abcde", 2, 3, "abcdefghij", 0, 5, 2);
+ test("abcde", 2, 3, "abcdefghij", 0, 9, 2);
+ test("abcde", 2, 3, "abcdefghij", 0, 10, 2);
+ test("abcde", 2, 3, "abcdefghij", 0, 11, 2);
+ test("abcde", 2, 3, "abcdefghij", 1, 0, 3);
+ test("abcde", 2, 3, "abcdefghij", 1, 1, 1);
+ test("abcde", 2, 3, "abcdefghij", 1, 4, 1);
+ test("abcde", 2, 3, "abcdefghij", 1, 8, 1);
+ test("abcde", 2, 3, "abcdefghij", 1, 9, 1);
+ test("abcde", 2, 3, "abcdefghij", 1, 10, 1);
+ test("abcde", 2, 3, "abcdefghij", 5, 0, 3);
+ test("abcde", 2, 3, "abcdefghij", 5, 1, -3);
+ test("abcde", 2, 3, "abcdefghij", 5, 2, -3);
+ test("abcde", 2, 3, "abcdefghij", 5, 4, -3);
+ test("abcde", 2, 3, "abcdefghij", 5, 5, -3);
+ test("abcde", 2, 3, "abcdefghij", 5, 6, -3);
+ test("abcde", 2, 3, "abcdefghij", 9, 0, 3);
+ test("abcde", 2, 3, "abcdefghij", 9, 1, -7);
+ test("abcde", 2, 3, "abcdefghij", 9, 2, -7);
+ test("abcde", 2, 3, "abcdefghij", 10, 0, 3);
+ test("abcde", 2, 3, "abcdefghij", 10, 1, 3);
+ test("abcde", 2, 3, "abcdefghij", 11, 0, 0);
+ test("abcde", 2, 3, "abcdefghijklmnopqrst", 0, 0, 3);
+ test("abcde", 2, 3, "abcdefghijklmnopqrst", 0, 1, 2);
+ test("abcde", 2, 3, "abcdefghijklmnopqrst", 0, 10, 2);
+ test("abcde", 2, 3, "abcdefghijklmnopqrst", 0, 19, 2);
+ test("abcde", 2, 3, "abcdefghijklmnopqrst", 0, 20, 2);
+ test("abcde", 2, 3, "abcdefghijklmnopqrst", 0, 21, 2);
+ test("abcde", 2, 3, "abcdefghijklmnopqrst", 1, 0, 3);
+ test("abcde", 2, 3, "abcdefghijklmnopqrst", 1, 1, 1);
+ test("abcde", 2, 3, "abcdefghijklmnopqrst", 1, 9, 1);
+ test("abcde", 2, 3, "abcdefghijklmnopqrst", 1, 18, 1);
+ test("abcde", 2, 3, "abcdefghijklmnopqrst", 1, 19, 1);
+ test("abcde", 2, 3, "abcdefghijklmnopqrst", 1, 20, 1);
+ test("abcde", 2, 3, "abcdefghijklmnopqrst", 10, 0, 3);
+ test("abcde", 2, 3, "abcdefghijklmnopqrst", 10, 1, -8);
+ test("abcde", 2, 3, "abcdefghijklmnopqrst", 10, 5, -8);
+ test("abcde", 2, 3, "abcdefghijklmnopqrst", 10, 9, -8);
+ test("abcde", 2, 3, "abcdefghijklmnopqrst", 10, 10, -8);
+ test("abcde", 2, 3, "abcdefghijklmnopqrst", 10, 11, -8);
}
-void test14()
-{
- test("abcde", 2, 3, "abcdefghijklmnopqrst", 19, 0, 3);
- test("abcde", 2, 3, "abcdefghijklmnopqrst", 19, 1, -17);
- test("abcde", 2, 3, "abcdefghijklmnopqrst", 19, 2, -17);
- test("abcde", 2, 3, "abcdefghijklmnopqrst", 20, 0, 3);
- test("abcde", 2, 3, "abcdefghijklmnopqrst", 20, 1, 3);
- test("abcde", 2, 3, "abcdefghijklmnopqrst", 21, 0, 0);
- test("abcde", 2, 4, "", 0, 0, 3);
- test("abcde", 2, 4, "", 0, 1, 3);
- test("abcde", 2, 4, "", 1, 0, 0);
- test("abcde", 2, 4, "abcde", 0, 0, 3);
- test("abcde", 2, 4, "abcde", 0, 1, 2);
- test("abcde", 2, 4, "abcde", 0, 2, 2);
- test("abcde", 2, 4, "abcde", 0, 4, 2);
- test("abcde", 2, 4, "abcde", 0, 5, 2);
- test("abcde", 2, 4, "abcde", 0, 6, 2);
- test("abcde", 2, 4, "abcde", 1, 0, 3);
- test("abcde", 2, 4, "abcde", 1, 1, 1);
- test("abcde", 2, 4, "abcde", 1, 2, 1);
- test("abcde", 2, 4, "abcde", 1, 3, 1);
- test("abcde", 2, 4, "abcde", 1, 4, 1);
- test("abcde", 2, 4, "abcde", 1, 5, 1);
- test("abcde", 2, 4, "abcde", 2, 0, 3);
- test("abcde", 2, 4, "abcde", 2, 1, 2);
- test("abcde", 2, 4, "abcde", 2, 2, 1);
- test("abcde", 2, 4, "abcde", 2, 3, 0);
- test("abcde", 2, 4, "abcde", 2, 4, 0);
- test("abcde", 2, 4, "abcde", 4, 0, 3);
- test("abcde", 2, 4, "abcde", 4, 1, -2);
- test("abcde", 2, 4, "abcde", 4, 2, -2);
- test("abcde", 2, 4, "abcde", 5, 0, 3);
- test("abcde", 2, 4, "abcde", 5, 1, 3);
- test("abcde", 2, 4, "abcde", 6, 0, 0);
- test("abcde", 2, 4, "abcdefghij", 0, 0, 3);
- test("abcde", 2, 4, "abcdefghij", 0, 1, 2);
- test("abcde", 2, 4, "abcdefghij", 0, 5, 2);
- test("abcde", 2, 4, "abcdefghij", 0, 9, 2);
- test("abcde", 2, 4, "abcdefghij", 0, 10, 2);
- test("abcde", 2, 4, "abcdefghij", 0, 11, 2);
- test("abcde", 2, 4, "abcdefghij", 1, 0, 3);
- test("abcde", 2, 4, "abcdefghij", 1, 1, 1);
- test("abcde", 2, 4, "abcdefghij", 1, 4, 1);
- test("abcde", 2, 4, "abcdefghij", 1, 8, 1);
- test("abcde", 2, 4, "abcdefghij", 1, 9, 1);
- test("abcde", 2, 4, "abcdefghij", 1, 10, 1);
- test("abcde", 2, 4, "abcdefghij", 5, 0, 3);
- test("abcde", 2, 4, "abcdefghij", 5, 1, -3);
- test("abcde", 2, 4, "abcdefghij", 5, 2, -3);
- test("abcde", 2, 4, "abcdefghij", 5, 4, -3);
- test("abcde", 2, 4, "abcdefghij", 5, 5, -3);
- test("abcde", 2, 4, "abcdefghij", 5, 6, -3);
- test("abcde", 2, 4, "abcdefghij", 9, 0, 3);
- test("abcde", 2, 4, "abcdefghij", 9, 1, -7);
- test("abcde", 2, 4, "abcdefghij", 9, 2, -7);
- test("abcde", 2, 4, "abcdefghij", 10, 0, 3);
- test("abcde", 2, 4, "abcdefghij", 10, 1, 3);
- test("abcde", 2, 4, "abcdefghij", 11, 0, 0);
- test("abcde", 2, 4, "abcdefghijklmnopqrst", 0, 0, 3);
- test("abcde", 2, 4, "abcdefghijklmnopqrst", 0, 1, 2);
- test("abcde", 2, 4, "abcdefghijklmnopqrst", 0, 10, 2);
- test("abcde", 2, 4, "abcdefghijklmnopqrst", 0, 19, 2);
- test("abcde", 2, 4, "abcdefghijklmnopqrst", 0, 20, 2);
- test("abcde", 2, 4, "abcdefghijklmnopqrst", 0, 21, 2);
- test("abcde", 2, 4, "abcdefghijklmnopqrst", 1, 0, 3);
- test("abcde", 2, 4, "abcdefghijklmnopqrst", 1, 1, 1);
- test("abcde", 2, 4, "abcdefghijklmnopqrst", 1, 9, 1);
- test("abcde", 2, 4, "abcdefghijklmnopqrst", 1, 18, 1);
- test("abcde", 2, 4, "abcdefghijklmnopqrst", 1, 19, 1);
- test("abcde", 2, 4, "abcdefghijklmnopqrst", 1, 20, 1);
- test("abcde", 2, 4, "abcdefghijklmnopqrst", 10, 0, 3);
- test("abcde", 2, 4, "abcdefghijklmnopqrst", 10, 1, -8);
- test("abcde", 2, 4, "abcdefghijklmnopqrst", 10, 5, -8);
- test("abcde", 2, 4, "abcdefghijklmnopqrst", 10, 9, -8);
- test("abcde", 2, 4, "abcdefghijklmnopqrst", 10, 10, -8);
- test("abcde", 2, 4, "abcdefghijklmnopqrst", 10, 11, -8);
- test("abcde", 2, 4, "abcdefghijklmnopqrst", 19, 0, 3);
- test("abcde", 2, 4, "abcdefghijklmnopqrst", 19, 1, -17);
- test("abcde", 2, 4, "abcdefghijklmnopqrst", 19, 2, -17);
- test("abcde", 2, 4, "abcdefghijklmnopqrst", 20, 0, 3);
- test("abcde", 2, 4, "abcdefghijklmnopqrst", 20, 1, 3);
- test("abcde", 2, 4, "abcdefghijklmnopqrst", 21, 0, 0);
- test("abcde", 4, 0, "", 0, 0, 0);
- test("abcde", 4, 0, "", 0, 1, 0);
- test("abcde", 4, 0, "", 1, 0, 0);
- test("abcde", 4, 0, "abcde", 0, 0, 0);
- test("abcde", 4, 0, "abcde", 0, 1, -1);
- test("abcde", 4, 0, "abcde", 0, 2, -2);
- test("abcde", 4, 0, "abcde", 0, 4, -4);
- test("abcde", 4, 0, "abcde", 0, 5, -5);
- test("abcde", 4, 0, "abcde", 0, 6, -5);
- test("abcde", 4, 0, "abcde", 1, 0, 0);
- test("abcde", 4, 0, "abcde", 1, 1, -1);
- test("abcde", 4, 0, "abcde", 1, 2, -2);
- test("abcde", 4, 0, "abcde", 1, 3, -3);
- test("abcde", 4, 0, "abcde", 1, 4, -4);
- test("abcde", 4, 0, "abcde", 1, 5, -4);
- test("abcde", 4, 0, "abcde", 2, 0, 0);
- test("abcde", 4, 0, "abcde", 2, 1, -1);
- test("abcde", 4, 0, "abcde", 2, 2, -2);
- test("abcde", 4, 0, "abcde", 2, 3, -3);
- test("abcde", 4, 0, "abcde", 2, 4, -3);
+void test14() {
+ test("abcde", 2, 3, "abcdefghijklmnopqrst", 19, 0, 3);
+ test("abcde", 2, 3, "abcdefghijklmnopqrst", 19, 1, -17);
+ test("abcde", 2, 3, "abcdefghijklmnopqrst", 19, 2, -17);
+ test("abcde", 2, 3, "abcdefghijklmnopqrst", 20, 0, 3);
+ test("abcde", 2, 3, "abcdefghijklmnopqrst", 20, 1, 3);
+ test("abcde", 2, 3, "abcdefghijklmnopqrst", 21, 0, 0);
+ test("abcde", 2, 4, "", 0, 0, 3);
+ test("abcde", 2, 4, "", 0, 1, 3);
+ test("abcde", 2, 4, "", 1, 0, 0);
+ test("abcde", 2, 4, "abcde", 0, 0, 3);
+ test("abcde", 2, 4, "abcde", 0, 1, 2);
+ test("abcde", 2, 4, "abcde", 0, 2, 2);
+ test("abcde", 2, 4, "abcde", 0, 4, 2);
+ test("abcde", 2, 4, "abcde", 0, 5, 2);
+ test("abcde", 2, 4, "abcde", 0, 6, 2);
+ test("abcde", 2, 4, "abcde", 1, 0, 3);
+ test("abcde", 2, 4, "abcde", 1, 1, 1);
+ test("abcde", 2, 4, "abcde", 1, 2, 1);
+ test("abcde", 2, 4, "abcde", 1, 3, 1);
+ test("abcde", 2, 4, "abcde", 1, 4, 1);
+ test("abcde", 2, 4, "abcde", 1, 5, 1);
+ test("abcde", 2, 4, "abcde", 2, 0, 3);
+ test("abcde", 2, 4, "abcde", 2, 1, 2);
+ test("abcde", 2, 4, "abcde", 2, 2, 1);
+ test("abcde", 2, 4, "abcde", 2, 3, 0);
+ test("abcde", 2, 4, "abcde", 2, 4, 0);
+ test("abcde", 2, 4, "abcde", 4, 0, 3);
+ test("abcde", 2, 4, "abcde", 4, 1, -2);
+ test("abcde", 2, 4, "abcde", 4, 2, -2);
+ test("abcde", 2, 4, "abcde", 5, 0, 3);
+ test("abcde", 2, 4, "abcde", 5, 1, 3);
+ test("abcde", 2, 4, "abcde", 6, 0, 0);
+ test("abcde", 2, 4, "abcdefghij", 0, 0, 3);
+ test("abcde", 2, 4, "abcdefghij", 0, 1, 2);
+ test("abcde", 2, 4, "abcdefghij", 0, 5, 2);
+ test("abcde", 2, 4, "abcdefghij", 0, 9, 2);
+ test("abcde", 2, 4, "abcdefghij", 0, 10, 2);
+ test("abcde", 2, 4, "abcdefghij", 0, 11, 2);
+ test("abcde", 2, 4, "abcdefghij", 1, 0, 3);
+ test("abcde", 2, 4, "abcdefghij", 1, 1, 1);
+ test("abcde", 2, 4, "abcdefghij", 1, 4, 1);
+ test("abcde", 2, 4, "abcdefghij", 1, 8, 1);
+ test("abcde", 2, 4, "abcdefghij", 1, 9, 1);
+ test("abcde", 2, 4, "abcdefghij", 1, 10, 1);
+ test("abcde", 2, 4, "abcdefghij", 5, 0, 3);
+ test("abcde", 2, 4, "abcdefghij", 5, 1, -3);
+ test("abcde", 2, 4, "abcdefghij", 5, 2, -3);
+ test("abcde", 2, 4, "abcdefghij", 5, 4, -3);
+ test("abcde", 2, 4, "abcdefghij", 5, 5, -3);
+ test("abcde", 2, 4, "abcdefghij", 5, 6, -3);
+ test("abcde", 2, 4, "abcdefghij", 9, 0, 3);
+ test("abcde", 2, 4, "abcdefghij", 9, 1, -7);
+ test("abcde", 2, 4, "abcdefghij", 9, 2, -7);
+ test("abcde", 2, 4, "abcdefghij", 10, 0, 3);
+ test("abcde", 2, 4, "abcdefghij", 10, 1, 3);
+ test("abcde", 2, 4, "abcdefghij", 11, 0, 0);
+ test("abcde", 2, 4, "abcdefghijklmnopqrst", 0, 0, 3);
+ test("abcde", 2, 4, "abcdefghijklmnopqrst", 0, 1, 2);
+ test("abcde", 2, 4, "abcdefghijklmnopqrst", 0, 10, 2);
+ test("abcde", 2, 4, "abcdefghijklmnopqrst", 0, 19, 2);
+ test("abcde", 2, 4, "abcdefghijklmnopqrst", 0, 20, 2);
+ test("abcde", 2, 4, "abcdefghijklmnopqrst", 0, 21, 2);
+ test("abcde", 2, 4, "abcdefghijklmnopqrst", 1, 0, 3);
+ test("abcde", 2, 4, "abcdefghijklmnopqrst", 1, 1, 1);
+ test("abcde", 2, 4, "abcdefghijklmnopqrst", 1, 9, 1);
+ test("abcde", 2, 4, "abcdefghijklmnopqrst", 1, 18, 1);
+ test("abcde", 2, 4, "abcdefghijklmnopqrst", 1, 19, 1);
+ test("abcde", 2, 4, "abcdefghijklmnopqrst", 1, 20, 1);
+ test("abcde", 2, 4, "abcdefghijklmnopqrst", 10, 0, 3);
+ test("abcde", 2, 4, "abcdefghijklmnopqrst", 10, 1, -8);
+ test("abcde", 2, 4, "abcdefghijklmnopqrst", 10, 5, -8);
+ test("abcde", 2, 4, "abcdefghijklmnopqrst", 10, 9, -8);
+ test("abcde", 2, 4, "abcdefghijklmnopqrst", 10, 10, -8);
+ test("abcde", 2, 4, "abcdefghijklmnopqrst", 10, 11, -8);
+ test("abcde", 2, 4, "abcdefghijklmnopqrst", 19, 0, 3);
+ test("abcde", 2, 4, "abcdefghijklmnopqrst", 19, 1, -17);
+ test("abcde", 2, 4, "abcdefghijklmnopqrst", 19, 2, -17);
+ test("abcde", 2, 4, "abcdefghijklmnopqrst", 20, 0, 3);
+ test("abcde", 2, 4, "abcdefghijklmnopqrst", 20, 1, 3);
+ test("abcde", 2, 4, "abcdefghijklmnopqrst", 21, 0, 0);
+ test("abcde", 4, 0, "", 0, 0, 0);
+ test("abcde", 4, 0, "", 0, 1, 0);
+ test("abcde", 4, 0, "", 1, 0, 0);
+ test("abcde", 4, 0, "abcde", 0, 0, 0);
+ test("abcde", 4, 0, "abcde", 0, 1, -1);
+ test("abcde", 4, 0, "abcde", 0, 2, -2);
+ test("abcde", 4, 0, "abcde", 0, 4, -4);
+ test("abcde", 4, 0, "abcde", 0, 5, -5);
+ test("abcde", 4, 0, "abcde", 0, 6, -5);
+ test("abcde", 4, 0, "abcde", 1, 0, 0);
+ test("abcde", 4, 0, "abcde", 1, 1, -1);
+ test("abcde", 4, 0, "abcde", 1, 2, -2);
+ test("abcde", 4, 0, "abcde", 1, 3, -3);
+ test("abcde", 4, 0, "abcde", 1, 4, -4);
+ test("abcde", 4, 0, "abcde", 1, 5, -4);
+ test("abcde", 4, 0, "abcde", 2, 0, 0);
+ test("abcde", 4, 0, "abcde", 2, 1, -1);
+ test("abcde", 4, 0, "abcde", 2, 2, -2);
+ test("abcde", 4, 0, "abcde", 2, 3, -3);
+ test("abcde", 4, 0, "abcde", 2, 4, -3);
}
-void test15()
-{
- test("abcde", 4, 0, "abcde", 4, 0, 0);
- test("abcde", 4, 0, "abcde", 4, 1, -1);
- test("abcde", 4, 0, "abcde", 4, 2, -1);
- test("abcde", 4, 0, "abcde", 5, 0, 0);
- test("abcde", 4, 0, "abcde", 5, 1, 0);
- test("abcde", 4, 0, "abcde", 6, 0, 0);
- test("abcde", 4, 0, "abcdefghij", 0, 0, 0);
- test("abcde", 4, 0, "abcdefghij", 0, 1, -1);
- test("abcde", 4, 0, "abcdefghij", 0, 5, -5);
- test("abcde", 4, 0, "abcdefghij", 0, 9, -9);
- test("abcde", 4, 0, "abcdefghij", 0, 10, -10);
- test("abcde", 4, 0, "abcdefghij", 0, 11, -10);
- test("abcde", 4, 0, "abcdefghij", 1, 0, 0);
- test("abcde", 4, 0, "abcdefghij", 1, 1, -1);
- test("abcde", 4, 0, "abcdefghij", 1, 4, -4);
- test("abcde", 4, 0, "abcdefghij", 1, 8, -8);
- test("abcde", 4, 0, "abcdefghij", 1, 9, -9);
- test("abcde", 4, 0, "abcdefghij", 1, 10, -9);
- test("abcde", 4, 0, "abcdefghij", 5, 0, 0);
- test("abcde", 4, 0, "abcdefghij", 5, 1, -1);
- test("abcde", 4, 0, "abcdefghij", 5, 2, -2);
- test("abcde", 4, 0, "abcdefghij", 5, 4, -4);
- test("abcde", 4, 0, "abcdefghij", 5, 5, -5);
- test("abcde", 4, 0, "abcdefghij", 5, 6, -5);
- test("abcde", 4, 0, "abcdefghij", 9, 0, 0);
- test("abcde", 4, 0, "abcdefghij", 9, 1, -1);
- test("abcde", 4, 0, "abcdefghij", 9, 2, -1);
- test("abcde", 4, 0, "abcdefghij", 10, 0, 0);
- test("abcde", 4, 0, "abcdefghij", 10, 1, 0);
- test("abcde", 4, 0, "abcdefghij", 11, 0, 0);
- test("abcde", 4, 0, "abcdefghijklmnopqrst", 0, 0, 0);
- test("abcde", 4, 0, "abcdefghijklmnopqrst", 0, 1, -1);
- test("abcde", 4, 0, "abcdefghijklmnopqrst", 0, 10, -10);
- test("abcde", 4, 0, "abcdefghijklmnopqrst", 0, 19, -19);
- test("abcde", 4, 0, "abcdefghijklmnopqrst", 0, 20, -20);
- test("abcde", 4, 0, "abcdefghijklmnopqrst", 0, 21, -20);
- test("abcde", 4, 0, "abcdefghijklmnopqrst", 1, 0, 0);
- test("abcde", 4, 0, "abcdefghijklmnopqrst", 1, 1, -1);
- test("abcde", 4, 0, "abcdefghijklmnopqrst", 1, 9, -9);
- test("abcde", 4, 0, "abcdefghijklmnopqrst", 1, 18, -18);
- test("abcde", 4, 0, "abcdefghijklmnopqrst", 1, 19, -19);
- test("abcde", 4, 0, "abcdefghijklmnopqrst", 1, 20, -19);
- test("abcde", 4, 0, "abcdefghijklmnopqrst", 10, 0, 0);
- test("abcde", 4, 0, "abcdefghijklmnopqrst", 10, 1, -1);
- test("abcde", 4, 0, "abcdefghijklmnopqrst", 10, 5, -5);
- test("abcde", 4, 0, "abcdefghijklmnopqrst", 10, 9, -9);
- test("abcde", 4, 0, "abcdefghijklmnopqrst", 10, 10, -10);
- test("abcde", 4, 0, "abcdefghijklmnopqrst", 10, 11, -10);
- test("abcde", 4, 0, "abcdefghijklmnopqrst", 19, 0, 0);
- test("abcde", 4, 0, "abcdefghijklmnopqrst", 19, 1, -1);
- test("abcde", 4, 0, "abcdefghijklmnopqrst", 19, 2, -1);
- test("abcde", 4, 0, "abcdefghijklmnopqrst", 20, 0, 0);
- test("abcde", 4, 0, "abcdefghijklmnopqrst", 20, 1, 0);
- test("abcde", 4, 0, "abcdefghijklmnopqrst", 21, 0, 0);
- test("abcde", 4, 1, "", 0, 0, 1);
- test("abcde", 4, 1, "", 0, 1, 1);
- test("abcde", 4, 1, "", 1, 0, 0);
- test("abcde", 4, 1, "abcde", 0, 0, 1);
- test("abcde", 4, 1, "abcde", 0, 1, 4);
- test("abcde", 4, 1, "abcde", 0, 2, 4);
- test("abcde", 4, 1, "abcde", 0, 4, 4);
- test("abcde", 4, 1, "abcde", 0, 5, 4);
- test("abcde", 4, 1, "abcde", 0, 6, 4);
- test("abcde", 4, 1, "abcde", 1, 0, 1);
- test("abcde", 4, 1, "abcde", 1, 1, 3);
- test("abcde", 4, 1, "abcde", 1, 2, 3);
- test("abcde", 4, 1, "abcde", 1, 3, 3);
- test("abcde", 4, 1, "abcde", 1, 4, 3);
- test("abcde", 4, 1, "abcde", 1, 5, 3);
- test("abcde", 4, 1, "abcde", 2, 0, 1);
- test("abcde", 4, 1, "abcde", 2, 1, 2);
- test("abcde", 4, 1, "abcde", 2, 2, 2);
- test("abcde", 4, 1, "abcde", 2, 3, 2);
- test("abcde", 4, 1, "abcde", 2, 4, 2);
- test("abcde", 4, 1, "abcde", 4, 0, 1);
- test("abcde", 4, 1, "abcde", 4, 1, 0);
- test("abcde", 4, 1, "abcde", 4, 2, 0);
- test("abcde", 4, 1, "abcde", 5, 0, 1);
- test("abcde", 4, 1, "abcde", 5, 1, 1);
- test("abcde", 4, 1, "abcde", 6, 0, 0);
- test("abcde", 4, 1, "abcdefghij", 0, 0, 1);
- test("abcde", 4, 1, "abcdefghij", 0, 1, 4);
- test("abcde", 4, 1, "abcdefghij", 0, 5, 4);
- test("abcde", 4, 1, "abcdefghij", 0, 9, 4);
- test("abcde", 4, 1, "abcdefghij", 0, 10, 4);
- test("abcde", 4, 1, "abcdefghij", 0, 11, 4);
- test("abcde", 4, 1, "abcdefghij", 1, 0, 1);
- test("abcde", 4, 1, "abcdefghij", 1, 1, 3);
- test("abcde", 4, 1, "abcdefghij", 1, 4, 3);
- test("abcde", 4, 1, "abcdefghij", 1, 8, 3);
- test("abcde", 4, 1, "abcdefghij", 1, 9, 3);
- test("abcde", 4, 1, "abcdefghij", 1, 10, 3);
- test("abcde", 4, 1, "abcdefghij", 5, 0, 1);
- test("abcde", 4, 1, "abcdefghij", 5, 1, -1);
- test("abcde", 4, 1, "abcdefghij", 5, 2, -1);
- test("abcde", 4, 1, "abcdefghij", 5, 4, -1);
- test("abcde", 4, 1, "abcdefghij", 5, 5, -1);
- test("abcde", 4, 1, "abcdefghij", 5, 6, -1);
- test("abcde", 4, 1, "abcdefghij", 9, 0, 1);
- test("abcde", 4, 1, "abcdefghij", 9, 1, -5);
+void test15() {
+ test("abcde", 4, 0, "abcde", 4, 0, 0);
+ test("abcde", 4, 0, "abcde", 4, 1, -1);
+ test("abcde", 4, 0, "abcde", 4, 2, -1);
+ test("abcde", 4, 0, "abcde", 5, 0, 0);
+ test("abcde", 4, 0, "abcde", 5, 1, 0);
+ test("abcde", 4, 0, "abcde", 6, 0, 0);
+ test("abcde", 4, 0, "abcdefghij", 0, 0, 0);
+ test("abcde", 4, 0, "abcdefghij", 0, 1, -1);
+ test("abcde", 4, 0, "abcdefghij", 0, 5, -5);
+ test("abcde", 4, 0, "abcdefghij", 0, 9, -9);
+ test("abcde", 4, 0, "abcdefghij", 0, 10, -10);
+ test("abcde", 4, 0, "abcdefghij", 0, 11, -10);
+ test("abcde", 4, 0, "abcdefghij", 1, 0, 0);
+ test("abcde", 4, 0, "abcdefghij", 1, 1, -1);
+ test("abcde", 4, 0, "abcdefghij", 1, 4, -4);
+ test("abcde", 4, 0, "abcdefghij", 1, 8, -8);
+ test("abcde", 4, 0, "abcdefghij", 1, 9, -9);
+ test("abcde", 4, 0, "abcdefghij", 1, 10, -9);
+ test("abcde", 4, 0, "abcdefghij", 5, 0, 0);
+ test("abcde", 4, 0, "abcdefghij", 5, 1, -1);
+ test("abcde", 4, 0, "abcdefghij", 5, 2, -2);
+ test("abcde", 4, 0, "abcdefghij", 5, 4, -4);
+ test("abcde", 4, 0, "abcdefghij", 5, 5, -5);
+ test("abcde", 4, 0, "abcdefghij", 5, 6, -5);
+ test("abcde", 4, 0, "abcdefghij", 9, 0, 0);
+ test("abcde", 4, 0, "abcdefghij", 9, 1, -1);
+ test("abcde", 4, 0, "abcdefghij", 9, 2, -1);
+ test("abcde", 4, 0, "abcdefghij", 10, 0, 0);
+ test("abcde", 4, 0, "abcdefghij", 10, 1, 0);
+ test("abcde", 4, 0, "abcdefghij", 11, 0, 0);
+ test("abcde", 4, 0, "abcdefghijklmnopqrst", 0, 0, 0);
+ test("abcde", 4, 0, "abcdefghijklmnopqrst", 0, 1, -1);
+ test("abcde", 4, 0, "abcdefghijklmnopqrst", 0, 10, -10);
+ test("abcde", 4, 0, "abcdefghijklmnopqrst", 0, 19, -19);
+ test("abcde", 4, 0, "abcdefghijklmnopqrst", 0, 20, -20);
+ test("abcde", 4, 0, "abcdefghijklmnopqrst", 0, 21, -20);
+ test("abcde", 4, 0, "abcdefghijklmnopqrst", 1, 0, 0);
+ test("abcde", 4, 0, "abcdefghijklmnopqrst", 1, 1, -1);
+ test("abcde", 4, 0, "abcdefghijklmnopqrst", 1, 9, -9);
+ test("abcde", 4, 0, "abcdefghijklmnopqrst", 1, 18, -18);
+ test("abcde", 4, 0, "abcdefghijklmnopqrst", 1, 19, -19);
+ test("abcde", 4, 0, "abcdefghijklmnopqrst", 1, 20, -19);
+ test("abcde", 4, 0, "abcdefghijklmnopqrst", 10, 0, 0);
+ test("abcde", 4, 0, "abcdefghijklmnopqrst", 10, 1, -1);
+ test("abcde", 4, 0, "abcdefghijklmnopqrst", 10, 5, -5);
+ test("abcde", 4, 0, "abcdefghijklmnopqrst", 10, 9, -9);
+ test("abcde", 4, 0, "abcdefghijklmnopqrst", 10, 10, -10);
+ test("abcde", 4, 0, "abcdefghijklmnopqrst", 10, 11, -10);
+ test("abcde", 4, 0, "abcdefghijklmnopqrst", 19, 0, 0);
+ test("abcde", 4, 0, "abcdefghijklmnopqrst", 19, 1, -1);
+ test("abcde", 4, 0, "abcdefghijklmnopqrst", 19, 2, -1);
+ test("abcde", 4, 0, "abcdefghijklmnopqrst", 20, 0, 0);
+ test("abcde", 4, 0, "abcdefghijklmnopqrst", 20, 1, 0);
+ test("abcde", 4, 0, "abcdefghijklmnopqrst", 21, 0, 0);
+ test("abcde", 4, 1, "", 0, 0, 1);
+ test("abcde", 4, 1, "", 0, 1, 1);
+ test("abcde", 4, 1, "", 1, 0, 0);
+ test("abcde", 4, 1, "abcde", 0, 0, 1);
+ test("abcde", 4, 1, "abcde", 0, 1, 4);
+ test("abcde", 4, 1, "abcde", 0, 2, 4);
+ test("abcde", 4, 1, "abcde", 0, 4, 4);
+ test("abcde", 4, 1, "abcde", 0, 5, 4);
+ test("abcde", 4, 1, "abcde", 0, 6, 4);
+ test("abcde", 4, 1, "abcde", 1, 0, 1);
+ test("abcde", 4, 1, "abcde", 1, 1, 3);
+ test("abcde", 4, 1, "abcde", 1, 2, 3);
+ test("abcde", 4, 1, "abcde", 1, 3, 3);
+ test("abcde", 4, 1, "abcde", 1, 4, 3);
+ test("abcde", 4, 1, "abcde", 1, 5, 3);
+ test("abcde", 4, 1, "abcde", 2, 0, 1);
+ test("abcde", 4, 1, "abcde", 2, 1, 2);
+ test("abcde", 4, 1, "abcde", 2, 2, 2);
+ test("abcde", 4, 1, "abcde", 2, 3, 2);
+ test("abcde", 4, 1, "abcde", 2, 4, 2);
+ test("abcde", 4, 1, "abcde", 4, 0, 1);
+ test("abcde", 4, 1, "abcde", 4, 1, 0);
+ test("abcde", 4, 1, "abcde", 4, 2, 0);
+ test("abcde", 4, 1, "abcde", 5, 0, 1);
+ test("abcde", 4, 1, "abcde", 5, 1, 1);
+ test("abcde", 4, 1, "abcde", 6, 0, 0);
+ test("abcde", 4, 1, "abcdefghij", 0, 0, 1);
+ test("abcde", 4, 1, "abcdefghij", 0, 1, 4);
+ test("abcde", 4, 1, "abcdefghij", 0, 5, 4);
+ test("abcde", 4, 1, "abcdefghij", 0, 9, 4);
+ test("abcde", 4, 1, "abcdefghij", 0, 10, 4);
+ test("abcde", 4, 1, "abcdefghij", 0, 11, 4);
+ test("abcde", 4, 1, "abcdefghij", 1, 0, 1);
+ test("abcde", 4, 1, "abcdefghij", 1, 1, 3);
+ test("abcde", 4, 1, "abcdefghij", 1, 4, 3);
+ test("abcde", 4, 1, "abcdefghij", 1, 8, 3);
+ test("abcde", 4, 1, "abcdefghij", 1, 9, 3);
+ test("abcde", 4, 1, "abcdefghij", 1, 10, 3);
+ test("abcde", 4, 1, "abcdefghij", 5, 0, 1);
+ test("abcde", 4, 1, "abcdefghij", 5, 1, -1);
+ test("abcde", 4, 1, "abcdefghij", 5, 2, -1);
+ test("abcde", 4, 1, "abcdefghij", 5, 4, -1);
+ test("abcde", 4, 1, "abcdefghij", 5, 5, -1);
+ test("abcde", 4, 1, "abcdefghij", 5, 6, -1);
+ test("abcde", 4, 1, "abcdefghij", 9, 0, 1);
+ test("abcde", 4, 1, "abcdefghij", 9, 1, -5);
}
-void test16()
-{
- test("abcde", 4, 1, "abcdefghij", 9, 2, -5);
- test("abcde", 4, 1, "abcdefghij", 10, 0, 1);
- test("abcde", 4, 1, "abcdefghij", 10, 1, 1);
- test("abcde", 4, 1, "abcdefghij", 11, 0, 0);
- test("abcde", 4, 1, "abcdefghijklmnopqrst", 0, 0, 1);
- test("abcde", 4, 1, "abcdefghijklmnopqrst", 0, 1, 4);
- test("abcde", 4, 1, "abcdefghijklmnopqrst", 0, 10, 4);
- test("abcde", 4, 1, "abcdefghijklmnopqrst", 0, 19, 4);
- test("abcde", 4, 1, "abcdefghijklmnopqrst", 0, 20, 4);
- test("abcde", 4, 1, "abcdefghijklmnopqrst", 0, 21, 4);
- test("abcde", 4, 1, "abcdefghijklmnopqrst", 1, 0, 1);
- test("abcde", 4, 1, "abcdefghijklmnopqrst", 1, 1, 3);
- test("abcde", 4, 1, "abcdefghijklmnopqrst", 1, 9, 3);
- test("abcde", 4, 1, "abcdefghijklmnopqrst", 1, 18, 3);
- test("abcde", 4, 1, "abcdefghijklmnopqrst", 1, 19, 3);
- test("abcde", 4, 1, "abcdefghijklmnopqrst", 1, 20, 3);
- test("abcde", 4, 1, "abcdefghijklmnopqrst", 10, 0, 1);
- test("abcde", 4, 1, "abcdefghijklmnopqrst", 10, 1, -6);
- test("abcde", 4, 1, "abcdefghijklmnopqrst", 10, 5, -6);
- test("abcde", 4, 1, "abcdefghijklmnopqrst", 10, 9, -6);
- test("abcde", 4, 1, "abcdefghijklmnopqrst", 10, 10, -6);
- test("abcde", 4, 1, "abcdefghijklmnopqrst", 10, 11, -6);
- test("abcde", 4, 1, "abcdefghijklmnopqrst", 19, 0, 1);
- test("abcde", 4, 1, "abcdefghijklmnopqrst", 19, 1, -15);
- test("abcde", 4, 1, "abcdefghijklmnopqrst", 19, 2, -15);
- test("abcde", 4, 1, "abcdefghijklmnopqrst", 20, 0, 1);
- test("abcde", 4, 1, "abcdefghijklmnopqrst", 20, 1, 1);
- test("abcde", 4, 1, "abcdefghijklmnopqrst", 21, 0, 0);
- test("abcde", 4, 2, "", 0, 0, 1);
- test("abcde", 4, 2, "", 0, 1, 1);
- test("abcde", 4, 2, "", 1, 0, 0);
- test("abcde", 4, 2, "abcde", 0, 0, 1);
- test("abcde", 4, 2, "abcde", 0, 1, 4);
- test("abcde", 4, 2, "abcde", 0, 2, 4);
- test("abcde", 4, 2, "abcde", 0, 4, 4);
- test("abcde", 4, 2, "abcde", 0, 5, 4);
- test("abcde", 4, 2, "abcde", 0, 6, 4);
- test("abcde", 4, 2, "abcde", 1, 0, 1);
- test("abcde", 4, 2, "abcde", 1, 1, 3);
- test("abcde", 4, 2, "abcde", 1, 2, 3);
- test("abcde", 4, 2, "abcde", 1, 3, 3);
- test("abcde", 4, 2, "abcde", 1, 4, 3);
- test("abcde", 4, 2, "abcde", 1, 5, 3);
- test("abcde", 4, 2, "abcde", 2, 0, 1);
- test("abcde", 4, 2, "abcde", 2, 1, 2);
- test("abcde", 4, 2, "abcde", 2, 2, 2);
- test("abcde", 4, 2, "abcde", 2, 3, 2);
- test("abcde", 4, 2, "abcde", 2, 4, 2);
- test("abcde", 4, 2, "abcde", 4, 0, 1);
- test("abcde", 4, 2, "abcde", 4, 1, 0);
- test("abcde", 4, 2, "abcde", 4, 2, 0);
- test("abcde", 4, 2, "abcde", 5, 0, 1);
- test("abcde", 4, 2, "abcde", 5, 1, 1);
- test("abcde", 4, 2, "abcde", 6, 0, 0);
- test("abcde", 4, 2, "abcdefghij", 0, 0, 1);
- test("abcde", 4, 2, "abcdefghij", 0, 1, 4);
- test("abcde", 4, 2, "abcdefghij", 0, 5, 4);
- test("abcde", 4, 2, "abcdefghij", 0, 9, 4);
- test("abcde", 4, 2, "abcdefghij", 0, 10, 4);
- test("abcde", 4, 2, "abcdefghij", 0, 11, 4);
- test("abcde", 4, 2, "abcdefghij", 1, 0, 1);
- test("abcde", 4, 2, "abcdefghij", 1, 1, 3);
- test("abcde", 4, 2, "abcdefghij", 1, 4, 3);
- test("abcde", 4, 2, "abcdefghij", 1, 8, 3);
- test("abcde", 4, 2, "abcdefghij", 1, 9, 3);
- test("abcde", 4, 2, "abcdefghij", 1, 10, 3);
- test("abcde", 4, 2, "abcdefghij", 5, 0, 1);
- test("abcde", 4, 2, "abcdefghij", 5, 1, -1);
- test("abcde", 4, 2, "abcdefghij", 5, 2, -1);
- test("abcde", 4, 2, "abcdefghij", 5, 4, -1);
- test("abcde", 4, 2, "abcdefghij", 5, 5, -1);
- test("abcde", 4, 2, "abcdefghij", 5, 6, -1);
- test("abcde", 4, 2, "abcdefghij", 9, 0, 1);
- test("abcde", 4, 2, "abcdefghij", 9, 1, -5);
- test("abcde", 4, 2, "abcdefghij", 9, 2, -5);
- test("abcde", 4, 2, "abcdefghij", 10, 0, 1);
- test("abcde", 4, 2, "abcdefghij", 10, 1, 1);
- test("abcde", 4, 2, "abcdefghij", 11, 0, 0);
- test("abcde", 4, 2, "abcdefghijklmnopqrst", 0, 0, 1);
- test("abcde", 4, 2, "abcdefghijklmnopqrst", 0, 1, 4);
- test("abcde", 4, 2, "abcdefghijklmnopqrst", 0, 10, 4);
- test("abcde", 4, 2, "abcdefghijklmnopqrst", 0, 19, 4);
- test("abcde", 4, 2, "abcdefghijklmnopqrst", 0, 20, 4);
- test("abcde", 4, 2, "abcdefghijklmnopqrst", 0, 21, 4);
- test("abcde", 4, 2, "abcdefghijklmnopqrst", 1, 0, 1);
- test("abcde", 4, 2, "abcdefghijklmnopqrst", 1, 1, 3);
- test("abcde", 4, 2, "abcdefghijklmnopqrst", 1, 9, 3);
- test("abcde", 4, 2, "abcdefghijklmnopqrst", 1, 18, 3);
- test("abcde", 4, 2, "abcdefghijklmnopqrst", 1, 19, 3);
- test("abcde", 4, 2, "abcdefghijklmnopqrst", 1, 20, 3);
- test("abcde", 4, 2, "abcdefghijklmnopqrst", 10, 0, 1);
- test("abcde", 4, 2, "abcdefghijklmnopqrst", 10, 1, -6);
- test("abcde", 4, 2, "abcdefghijklmnopqrst", 10, 5, -6);
- test("abcde", 4, 2, "abcdefghijklmnopqrst", 10, 9, -6);
- test("abcde", 4, 2, "abcdefghijklmnopqrst", 10, 10, -6);
- test("abcde", 4, 2, "abcdefghijklmnopqrst", 10, 11, -6);
- test("abcde", 4, 2, "abcdefghijklmnopqrst", 19, 0, 1);
- test("abcde", 4, 2, "abcdefghijklmnopqrst", 19, 1, -15);
- test("abcde", 4, 2, "abcdefghijklmnopqrst", 19, 2, -15);
- test("abcde", 4, 2, "abcdefghijklmnopqrst", 20, 0, 1);
+void test16() {
+ test("abcde", 4, 1, "abcdefghij", 9, 2, -5);
+ test("abcde", 4, 1, "abcdefghij", 10, 0, 1);
+ test("abcde", 4, 1, "abcdefghij", 10, 1, 1);
+ test("abcde", 4, 1, "abcdefghij", 11, 0, 0);
+ test("abcde", 4, 1, "abcdefghijklmnopqrst", 0, 0, 1);
+ test("abcde", 4, 1, "abcdefghijklmnopqrst", 0, 1, 4);
+ test("abcde", 4, 1, "abcdefghijklmnopqrst", 0, 10, 4);
+ test("abcde", 4, 1, "abcdefghijklmnopqrst", 0, 19, 4);
+ test("abcde", 4, 1, "abcdefghijklmnopqrst", 0, 20, 4);
+ test("abcde", 4, 1, "abcdefghijklmnopqrst", 0, 21, 4);
+ test("abcde", 4, 1, "abcdefghijklmnopqrst", 1, 0, 1);
+ test("abcde", 4, 1, "abcdefghijklmnopqrst", 1, 1, 3);
+ test("abcde", 4, 1, "abcdefghijklmnopqrst", 1, 9, 3);
+ test("abcde", 4, 1, "abcdefghijklmnopqrst", 1, 18, 3);
+ test("abcde", 4, 1, "abcdefghijklmnopqrst", 1, 19, 3);
+ test("abcde", 4, 1, "abcdefghijklmnopqrst", 1, 20, 3);
+ test("abcde", 4, 1, "abcdefghijklmnopqrst", 10, 0, 1);
+ test("abcde", 4, 1, "abcdefghijklmnopqrst", 10, 1, -6);
+ test("abcde", 4, 1, "abcdefghijklmnopqrst", 10, 5, -6);
+ test("abcde", 4, 1, "abcdefghijklmnopqrst", 10, 9, -6);
+ test("abcde", 4, 1, "abcdefghijklmnopqrst", 10, 10, -6);
+ test("abcde", 4, 1, "abcdefghijklmnopqrst", 10, 11, -6);
+ test("abcde", 4, 1, "abcdefghijklmnopqrst", 19, 0, 1);
+ test("abcde", 4, 1, "abcdefghijklmnopqrst", 19, 1, -15);
+ test("abcde", 4, 1, "abcdefghijklmnopqrst", 19, 2, -15);
+ test("abcde", 4, 1, "abcdefghijklmnopqrst", 20, 0, 1);
+ test("abcde", 4, 1, "abcdefghijklmnopqrst", 20, 1, 1);
+ test("abcde", 4, 1, "abcdefghijklmnopqrst", 21, 0, 0);
+ test("abcde", 4, 2, "", 0, 0, 1);
+ test("abcde", 4, 2, "", 0, 1, 1);
+ test("abcde", 4, 2, "", 1, 0, 0);
+ test("abcde", 4, 2, "abcde", 0, 0, 1);
+ test("abcde", 4, 2, "abcde", 0, 1, 4);
+ test("abcde", 4, 2, "abcde", 0, 2, 4);
+ test("abcde", 4, 2, "abcde", 0, 4, 4);
+ test("abcde", 4, 2, "abcde", 0, 5, 4);
+ test("abcde", 4, 2, "abcde", 0, 6, 4);
+ test("abcde", 4, 2, "abcde", 1, 0, 1);
+ test("abcde", 4, 2, "abcde", 1, 1, 3);
+ test("abcde", 4, 2, "abcde", 1, 2, 3);
+ test("abcde", 4, 2, "abcde", 1, 3, 3);
+ test("abcde", 4, 2, "abcde", 1, 4, 3);
+ test("abcde", 4, 2, "abcde", 1, 5, 3);
+ test("abcde", 4, 2, "abcde", 2, 0, 1);
+ test("abcde", 4, 2, "abcde", 2, 1, 2);
+ test("abcde", 4, 2, "abcde", 2, 2, 2);
+ test("abcde", 4, 2, "abcde", 2, 3, 2);
+ test("abcde", 4, 2, "abcde", 2, 4, 2);
+ test("abcde", 4, 2, "abcde", 4, 0, 1);
+ test("abcde", 4, 2, "abcde", 4, 1, 0);
+ test("abcde", 4, 2, "abcde", 4, 2, 0);
+ test("abcde", 4, 2, "abcde", 5, 0, 1);
+ test("abcde", 4, 2, "abcde", 5, 1, 1);
+ test("abcde", 4, 2, "abcde", 6, 0, 0);
+ test("abcde", 4, 2, "abcdefghij", 0, 0, 1);
+ test("abcde", 4, 2, "abcdefghij", 0, 1, 4);
+ test("abcde", 4, 2, "abcdefghij", 0, 5, 4);
+ test("abcde", 4, 2, "abcdefghij", 0, 9, 4);
+ test("abcde", 4, 2, "abcdefghij", 0, 10, 4);
+ test("abcde", 4, 2, "abcdefghij", 0, 11, 4);
+ test("abcde", 4, 2, "abcdefghij", 1, 0, 1);
+ test("abcde", 4, 2, "abcdefghij", 1, 1, 3);
+ test("abcde", 4, 2, "abcdefghij", 1, 4, 3);
+ test("abcde", 4, 2, "abcdefghij", 1, 8, 3);
+ test("abcde", 4, 2, "abcdefghij", 1, 9, 3);
+ test("abcde", 4, 2, "abcdefghij", 1, 10, 3);
+ test("abcde", 4, 2, "abcdefghij", 5, 0, 1);
+ test("abcde", 4, 2, "abcdefghij", 5, 1, -1);
+ test("abcde", 4, 2, "abcdefghij", 5, 2, -1);
+ test("abcde", 4, 2, "abcdefghij", 5, 4, -1);
+ test("abcde", 4, 2, "abcdefghij", 5, 5, -1);
+ test("abcde", 4, 2, "abcdefghij", 5, 6, -1);
+ test("abcde", 4, 2, "abcdefghij", 9, 0, 1);
+ test("abcde", 4, 2, "abcdefghij", 9, 1, -5);
+ test("abcde", 4, 2, "abcdefghij", 9, 2, -5);
+ test("abcde", 4, 2, "abcdefghij", 10, 0, 1);
+ test("abcde", 4, 2, "abcdefghij", 10, 1, 1);
+ test("abcde", 4, 2, "abcdefghij", 11, 0, 0);
+ test("abcde", 4, 2, "abcdefghijklmnopqrst", 0, 0, 1);
+ test("abcde", 4, 2, "abcdefghijklmnopqrst", 0, 1, 4);
+ test("abcde", 4, 2, "abcdefghijklmnopqrst", 0, 10, 4);
+ test("abcde", 4, 2, "abcdefghijklmnopqrst", 0, 19, 4);
+ test("abcde", 4, 2, "abcdefghijklmnopqrst", 0, 20, 4);
+ test("abcde", 4, 2, "abcdefghijklmnopqrst", 0, 21, 4);
+ test("abcde", 4, 2, "abcdefghijklmnopqrst", 1, 0, 1);
+ test("abcde", 4, 2, "abcdefghijklmnopqrst", 1, 1, 3);
+ test("abcde", 4, 2, "abcdefghijklmnopqrst", 1, 9, 3);
+ test("abcde", 4, 2, "abcdefghijklmnopqrst", 1, 18, 3);
+ test("abcde", 4, 2, "abcdefghijklmnopqrst", 1, 19, 3);
+ test("abcde", 4, 2, "abcdefghijklmnopqrst", 1, 20, 3);
+ test("abcde", 4, 2, "abcdefghijklmnopqrst", 10, 0, 1);
+ test("abcde", 4, 2, "abcdefghijklmnopqrst", 10, 1, -6);
+ test("abcde", 4, 2, "abcdefghijklmnopqrst", 10, 5, -6);
+ test("abcde", 4, 2, "abcdefghijklmnopqrst", 10, 9, -6);
+ test("abcde", 4, 2, "abcdefghijklmnopqrst", 10, 10, -6);
+ test("abcde", 4, 2, "abcdefghijklmnopqrst", 10, 11, -6);
+ test("abcde", 4, 2, "abcdefghijklmnopqrst", 19, 0, 1);
+ test("abcde", 4, 2, "abcdefghijklmnopqrst", 19, 1, -15);
+ test("abcde", 4, 2, "abcdefghijklmnopqrst", 19, 2, -15);
+ test("abcde", 4, 2, "abcdefghijklmnopqrst", 20, 0, 1);
}
-void test17()
-{
- test("abcde", 4, 2, "abcdefghijklmnopqrst", 20, 1, 1);
- test("abcde", 4, 2, "abcdefghijklmnopqrst", 21, 0, 0);
- test("abcde", 5, 0, "", 0, 0, 0);
- test("abcde", 5, 0, "", 0, 1, 0);
- test("abcde", 5, 0, "", 1, 0, 0);
- test("abcde", 5, 0, "abcde", 0, 0, 0);
- test("abcde", 5, 0, "abcde", 0, 1, -1);
- test("abcde", 5, 0, "abcde", 0, 2, -2);
- test("abcde", 5, 0, "abcde", 0, 4, -4);
- test("abcde", 5, 0, "abcde", 0, 5, -5);
- test("abcde", 5, 0, "abcde", 0, 6, -5);
- test("abcde", 5, 0, "abcde", 1, 0, 0);
- test("abcde", 5, 0, "abcde", 1, 1, -1);
- test("abcde", 5, 0, "abcde", 1, 2, -2);
- test("abcde", 5, 0, "abcde", 1, 3, -3);
- test("abcde", 5, 0, "abcde", 1, 4, -4);
- test("abcde", 5, 0, "abcde", 1, 5, -4);
- test("abcde", 5, 0, "abcde", 2, 0, 0);
- test("abcde", 5, 0, "abcde", 2, 1, -1);
- test("abcde", 5, 0, "abcde", 2, 2, -2);
- test("abcde", 5, 0, "abcde", 2, 3, -3);
- test("abcde", 5, 0, "abcde", 2, 4, -3);
- test("abcde", 5, 0, "abcde", 4, 0, 0);
- test("abcde", 5, 0, "abcde", 4, 1, -1);
- test("abcde", 5, 0, "abcde", 4, 2, -1);
- test("abcde", 5, 0, "abcde", 5, 0, 0);
- test("abcde", 5, 0, "abcde", 5, 1, 0);
- test("abcde", 5, 0, "abcde", 6, 0, 0);
- test("abcde", 5, 0, "abcdefghij", 0, 0, 0);
- test("abcde", 5, 0, "abcdefghij", 0, 1, -1);
- test("abcde", 5, 0, "abcdefghij", 0, 5, -5);
- test("abcde", 5, 0, "abcdefghij", 0, 9, -9);
- test("abcde", 5, 0, "abcdefghij", 0, 10, -10);
- test("abcde", 5, 0, "abcdefghij", 0, 11, -10);
- test("abcde", 5, 0, "abcdefghij", 1, 0, 0);
- test("abcde", 5, 0, "abcdefghij", 1, 1, -1);
- test("abcde", 5, 0, "abcdefghij", 1, 4, -4);
- test("abcde", 5, 0, "abcdefghij", 1, 8, -8);
- test("abcde", 5, 0, "abcdefghij", 1, 9, -9);
- test("abcde", 5, 0, "abcdefghij", 1, 10, -9);
- test("abcde", 5, 0, "abcdefghij", 5, 0, 0);
- test("abcde", 5, 0, "abcdefghij", 5, 1, -1);
- test("abcde", 5, 0, "abcdefghij", 5, 2, -2);
- test("abcde", 5, 0, "abcdefghij", 5, 4, -4);
- test("abcde", 5, 0, "abcdefghij", 5, 5, -5);
- test("abcde", 5, 0, "abcdefghij", 5, 6, -5);
- test("abcde", 5, 0, "abcdefghij", 9, 0, 0);
- test("abcde", 5, 0, "abcdefghij", 9, 1, -1);
- test("abcde", 5, 0, "abcdefghij", 9, 2, -1);
- test("abcde", 5, 0, "abcdefghij", 10, 0, 0);
- test("abcde", 5, 0, "abcdefghij", 10, 1, 0);
- test("abcde", 5, 0, "abcdefghij", 11, 0, 0);
- test("abcde", 5, 0, "abcdefghijklmnopqrst", 0, 0, 0);
- test("abcde", 5, 0, "abcdefghijklmnopqrst", 0, 1, -1);
- test("abcde", 5, 0, "abcdefghijklmnopqrst", 0, 10, -10);
- test("abcde", 5, 0, "abcdefghijklmnopqrst", 0, 19, -19);
- test("abcde", 5, 0, "abcdefghijklmnopqrst", 0, 20, -20);
- test("abcde", 5, 0, "abcdefghijklmnopqrst", 0, 21, -20);
- test("abcde", 5, 0, "abcdefghijklmnopqrst", 1, 0, 0);
- test("abcde", 5, 0, "abcdefghijklmnopqrst", 1, 1, -1);
- test("abcde", 5, 0, "abcdefghijklmnopqrst", 1, 9, -9);
- test("abcde", 5, 0, "abcdefghijklmnopqrst", 1, 18, -18);
- test("abcde", 5, 0, "abcdefghijklmnopqrst", 1, 19, -19);
- test("abcde", 5, 0, "abcdefghijklmnopqrst", 1, 20, -19);
- test("abcde", 5, 0, "abcdefghijklmnopqrst", 10, 0, 0);
- test("abcde", 5, 0, "abcdefghijklmnopqrst", 10, 1, -1);
- test("abcde", 5, 0, "abcdefghijklmnopqrst", 10, 5, -5);
- test("abcde", 5, 0, "abcdefghijklmnopqrst", 10, 9, -9);
- test("abcde", 5, 0, "abcdefghijklmnopqrst", 10, 10, -10);
- test("abcde", 5, 0, "abcdefghijklmnopqrst", 10, 11, -10);
- test("abcde", 5, 0, "abcdefghijklmnopqrst", 19, 0, 0);
- test("abcde", 5, 0, "abcdefghijklmnopqrst", 19, 1, -1);
- test("abcde", 5, 0, "abcdefghijklmnopqrst", 19, 2, -1);
- test("abcde", 5, 0, "abcdefghijklmnopqrst", 20, 0, 0);
- test("abcde", 5, 0, "abcdefghijklmnopqrst", 20, 1, 0);
- test("abcde", 5, 0, "abcdefghijklmnopqrst", 21, 0, 0);
- test("abcde", 5, 1, "", 0, 0, 0);
- test("abcde", 5, 1, "", 0, 1, 0);
- test("abcde", 5, 1, "", 1, 0, 0);
- test("abcde", 5, 1, "abcde", 0, 0, 0);
- test("abcde", 5, 1, "abcde", 0, 1, -1);
- test("abcde", 5, 1, "abcde", 0, 2, -2);
- test("abcde", 5, 1, "abcde", 0, 4, -4);
- test("abcde", 5, 1, "abcde", 0, 5, -5);
- test("abcde", 5, 1, "abcde", 0, 6, -5);
- test("abcde", 5, 1, "abcde", 1, 0, 0);
- test("abcde", 5, 1, "abcde", 1, 1, -1);
- test("abcde", 5, 1, "abcde", 1, 2, -2);
- test("abcde", 5, 1, "abcde", 1, 3, -3);
- test("abcde", 5, 1, "abcde", 1, 4, -4);
- test("abcde", 5, 1, "abcde", 1, 5, -4);
- test("abcde", 5, 1, "abcde", 2, 0, 0);
- test("abcde", 5, 1, "abcde", 2, 1, -1);
- test("abcde", 5, 1, "abcde", 2, 2, -2);
- test("abcde", 5, 1, "abcde", 2, 3, -3);
- test("abcde", 5, 1, "abcde", 2, 4, -3);
- test("abcde", 5, 1, "abcde", 4, 0, 0);
- test("abcde", 5, 1, "abcde", 4, 1, -1);
- test("abcde", 5, 1, "abcde", 4, 2, -1);
- test("abcde", 5, 1, "abcde", 5, 0, 0);
+void test17() {
+ test("abcde", 4, 2, "abcdefghijklmnopqrst", 20, 1, 1);
+ test("abcde", 4, 2, "abcdefghijklmnopqrst", 21, 0, 0);
+ test("abcde", 5, 0, "", 0, 0, 0);
+ test("abcde", 5, 0, "", 0, 1, 0);
+ test("abcde", 5, 0, "", 1, 0, 0);
+ test("abcde", 5, 0, "abcde", 0, 0, 0);
+ test("abcde", 5, 0, "abcde", 0, 1, -1);
+ test("abcde", 5, 0, "abcde", 0, 2, -2);
+ test("abcde", 5, 0, "abcde", 0, 4, -4);
+ test("abcde", 5, 0, "abcde", 0, 5, -5);
+ test("abcde", 5, 0, "abcde", 0, 6, -5);
+ test("abcde", 5, 0, "abcde", 1, 0, 0);
+ test("abcde", 5, 0, "abcde", 1, 1, -1);
+ test("abcde", 5, 0, "abcde", 1, 2, -2);
+ test("abcde", 5, 0, "abcde", 1, 3, -3);
+ test("abcde", 5, 0, "abcde", 1, 4, -4);
+ test("abcde", 5, 0, "abcde", 1, 5, -4);
+ test("abcde", 5, 0, "abcde", 2, 0, 0);
+ test("abcde", 5, 0, "abcde", 2, 1, -1);
+ test("abcde", 5, 0, "abcde", 2, 2, -2);
+ test("abcde", 5, 0, "abcde", 2, 3, -3);
+ test("abcde", 5, 0, "abcde", 2, 4, -3);
+ test("abcde", 5, 0, "abcde", 4, 0, 0);
+ test("abcde", 5, 0, "abcde", 4, 1, -1);
+ test("abcde", 5, 0, "abcde", 4, 2, -1);
+ test("abcde", 5, 0, "abcde", 5, 0, 0);
+ test("abcde", 5, 0, "abcde", 5, 1, 0);
+ test("abcde", 5, 0, "abcde", 6, 0, 0);
+ test("abcde", 5, 0, "abcdefghij", 0, 0, 0);
+ test("abcde", 5, 0, "abcdefghij", 0, 1, -1);
+ test("abcde", 5, 0, "abcdefghij", 0, 5, -5);
+ test("abcde", 5, 0, "abcdefghij", 0, 9, -9);
+ test("abcde", 5, 0, "abcdefghij", 0, 10, -10);
+ test("abcde", 5, 0, "abcdefghij", 0, 11, -10);
+ test("abcde", 5, 0, "abcdefghij", 1, 0, 0);
+ test("abcde", 5, 0, "abcdefghij", 1, 1, -1);
+ test("abcde", 5, 0, "abcdefghij", 1, 4, -4);
+ test("abcde", 5, 0, "abcdefghij", 1, 8, -8);
+ test("abcde", 5, 0, "abcdefghij", 1, 9, -9);
+ test("abcde", 5, 0, "abcdefghij", 1, 10, -9);
+ test("abcde", 5, 0, "abcdefghij", 5, 0, 0);
+ test("abcde", 5, 0, "abcdefghij", 5, 1, -1);
+ test("abcde", 5, 0, "abcdefghij", 5, 2, -2);
+ test("abcde", 5, 0, "abcdefghij", 5, 4, -4);
+ test("abcde", 5, 0, "abcdefghij", 5, 5, -5);
+ test("abcde", 5, 0, "abcdefghij", 5, 6, -5);
+ test("abcde", 5, 0, "abcdefghij", 9, 0, 0);
+ test("abcde", 5, 0, "abcdefghij", 9, 1, -1);
+ test("abcde", 5, 0, "abcdefghij", 9, 2, -1);
+ test("abcde", 5, 0, "abcdefghij", 10, 0, 0);
+ test("abcde", 5, 0, "abcdefghij", 10, 1, 0);
+ test("abcde", 5, 0, "abcdefghij", 11, 0, 0);
+ test("abcde", 5, 0, "abcdefghijklmnopqrst", 0, 0, 0);
+ test("abcde", 5, 0, "abcdefghijklmnopqrst", 0, 1, -1);
+ test("abcde", 5, 0, "abcdefghijklmnopqrst", 0, 10, -10);
+ test("abcde", 5, 0, "abcdefghijklmnopqrst", 0, 19, -19);
+ test("abcde", 5, 0, "abcdefghijklmnopqrst", 0, 20, -20);
+ test("abcde", 5, 0, "abcdefghijklmnopqrst", 0, 21, -20);
+ test("abcde", 5, 0, "abcdefghijklmnopqrst", 1, 0, 0);
+ test("abcde", 5, 0, "abcdefghijklmnopqrst", 1, 1, -1);
+ test("abcde", 5, 0, "abcdefghijklmnopqrst", 1, 9, -9);
+ test("abcde", 5, 0, "abcdefghijklmnopqrst", 1, 18, -18);
+ test("abcde", 5, 0, "abcdefghijklmnopqrst", 1, 19, -19);
+ test("abcde", 5, 0, "abcdefghijklmnopqrst", 1, 20, -19);
+ test("abcde", 5, 0, "abcdefghijklmnopqrst", 10, 0, 0);
+ test("abcde", 5, 0, "abcdefghijklmnopqrst", 10, 1, -1);
+ test("abcde", 5, 0, "abcdefghijklmnopqrst", 10, 5, -5);
+ test("abcde", 5, 0, "abcdefghijklmnopqrst", 10, 9, -9);
+ test("abcde", 5, 0, "abcdefghijklmnopqrst", 10, 10, -10);
+ test("abcde", 5, 0, "abcdefghijklmnopqrst", 10, 11, -10);
+ test("abcde", 5, 0, "abcdefghijklmnopqrst", 19, 0, 0);
+ test("abcde", 5, 0, "abcdefghijklmnopqrst", 19, 1, -1);
+ test("abcde", 5, 0, "abcdefghijklmnopqrst", 19, 2, -1);
+ test("abcde", 5, 0, "abcdefghijklmnopqrst", 20, 0, 0);
+ test("abcde", 5, 0, "abcdefghijklmnopqrst", 20, 1, 0);
+ test("abcde", 5, 0, "abcdefghijklmnopqrst", 21, 0, 0);
+ test("abcde", 5, 1, "", 0, 0, 0);
+ test("abcde", 5, 1, "", 0, 1, 0);
+ test("abcde", 5, 1, "", 1, 0, 0);
+ test("abcde", 5, 1, "abcde", 0, 0, 0);
+ test("abcde", 5, 1, "abcde", 0, 1, -1);
+ test("abcde", 5, 1, "abcde", 0, 2, -2);
+ test("abcde", 5, 1, "abcde", 0, 4, -4);
+ test("abcde", 5, 1, "abcde", 0, 5, -5);
+ test("abcde", 5, 1, "abcde", 0, 6, -5);
+ test("abcde", 5, 1, "abcde", 1, 0, 0);
+ test("abcde", 5, 1, "abcde", 1, 1, -1);
+ test("abcde", 5, 1, "abcde", 1, 2, -2);
+ test("abcde", 5, 1, "abcde", 1, 3, -3);
+ test("abcde", 5, 1, "abcde", 1, 4, -4);
+ test("abcde", 5, 1, "abcde", 1, 5, -4);
+ test("abcde", 5, 1, "abcde", 2, 0, 0);
+ test("abcde", 5, 1, "abcde", 2, 1, -1);
+ test("abcde", 5, 1, "abcde", 2, 2, -2);
+ test("abcde", 5, 1, "abcde", 2, 3, -3);
+ test("abcde", 5, 1, "abcde", 2, 4, -3);
+ test("abcde", 5, 1, "abcde", 4, 0, 0);
+ test("abcde", 5, 1, "abcde", 4, 1, -1);
+ test("abcde", 5, 1, "abcde", 4, 2, -1);
+ test("abcde", 5, 1, "abcde", 5, 0, 0);
}
-void test18()
-{
- test("abcde", 5, 1, "abcde", 5, 1, 0);
- test("abcde", 5, 1, "abcde", 6, 0, 0);
- test("abcde", 5, 1, "abcdefghij", 0, 0, 0);
- test("abcde", 5, 1, "abcdefghij", 0, 1, -1);
- test("abcde", 5, 1, "abcdefghij", 0, 5, -5);
- test("abcde", 5, 1, "abcdefghij", 0, 9, -9);
- test("abcde", 5, 1, "abcdefghij", 0, 10, -10);
- test("abcde", 5, 1, "abcdefghij", 0, 11, -10);
- test("abcde", 5, 1, "abcdefghij", 1, 0, 0);
- test("abcde", 5, 1, "abcdefghij", 1, 1, -1);
- test("abcde", 5, 1, "abcdefghij", 1, 4, -4);
- test("abcde", 5, 1, "abcdefghij", 1, 8, -8);
- test("abcde", 5, 1, "abcdefghij", 1, 9, -9);
- test("abcde", 5, 1, "abcdefghij", 1, 10, -9);
- test("abcde", 5, 1, "abcdefghij", 5, 0, 0);
- test("abcde", 5, 1, "abcdefghij", 5, 1, -1);
- test("abcde", 5, 1, "abcdefghij", 5, 2, -2);
- test("abcde", 5, 1, "abcdefghij", 5, 4, -4);
- test("abcde", 5, 1, "abcdefghij", 5, 5, -5);
- test("abcde", 5, 1, "abcdefghij", 5, 6, -5);
- test("abcde", 5, 1, "abcdefghij", 9, 0, 0);
- test("abcde", 5, 1, "abcdefghij", 9, 1, -1);
- test("abcde", 5, 1, "abcdefghij", 9, 2, -1);
- test("abcde", 5, 1, "abcdefghij", 10, 0, 0);
- test("abcde", 5, 1, "abcdefghij", 10, 1, 0);
- test("abcde", 5, 1, "abcdefghij", 11, 0, 0);
- test("abcde", 5, 1, "abcdefghijklmnopqrst", 0, 0, 0);
- test("abcde", 5, 1, "abcdefghijklmnopqrst", 0, 1, -1);
- test("abcde", 5, 1, "abcdefghijklmnopqrst", 0, 10, -10);
- test("abcde", 5, 1, "abcdefghijklmnopqrst", 0, 19, -19);
- test("abcde", 5, 1, "abcdefghijklmnopqrst", 0, 20, -20);
- test("abcde", 5, 1, "abcdefghijklmnopqrst", 0, 21, -20);
- test("abcde", 5, 1, "abcdefghijklmnopqrst", 1, 0, 0);
- test("abcde", 5, 1, "abcdefghijklmnopqrst", 1, 1, -1);
- test("abcde", 5, 1, "abcdefghijklmnopqrst", 1, 9, -9);
- test("abcde", 5, 1, "abcdefghijklmnopqrst", 1, 18, -18);
- test("abcde", 5, 1, "abcdefghijklmnopqrst", 1, 19, -19);
- test("abcde", 5, 1, "abcdefghijklmnopqrst", 1, 20, -19);
- test("abcde", 5, 1, "abcdefghijklmnopqrst", 10, 0, 0);
- test("abcde", 5, 1, "abcdefghijklmnopqrst", 10, 1, -1);
- test("abcde", 5, 1, "abcdefghijklmnopqrst", 10, 5, -5);
- test("abcde", 5, 1, "abcdefghijklmnopqrst", 10, 9, -9);
- test("abcde", 5, 1, "abcdefghijklmnopqrst", 10, 10, -10);
- test("abcde", 5, 1, "abcdefghijklmnopqrst", 10, 11, -10);
- test("abcde", 5, 1, "abcdefghijklmnopqrst", 19, 0, 0);
- test("abcde", 5, 1, "abcdefghijklmnopqrst", 19, 1, -1);
- test("abcde", 5, 1, "abcdefghijklmnopqrst", 19, 2, -1);
- test("abcde", 5, 1, "abcdefghijklmnopqrst", 20, 0, 0);
- test("abcde", 5, 1, "abcdefghijklmnopqrst", 20, 1, 0);
- test("abcde", 5, 1, "abcdefghijklmnopqrst", 21, 0, 0);
- test("abcde", 6, 0, "", 0, 0, 0);
- test("abcde", 6, 0, "", 0, 1, 0);
- test("abcde", 6, 0, "", 1, 0, 0);
- test("abcde", 6, 0, "abcde", 0, 0, 0);
- test("abcde", 6, 0, "abcde", 0, 1, 0);
- test("abcde", 6, 0, "abcde", 0, 2, 0);
- test("abcde", 6, 0, "abcde", 0, 4, 0);
- test("abcde", 6, 0, "abcde", 0, 5, 0);
- test("abcde", 6, 0, "abcde", 0, 6, 0);
- test("abcde", 6, 0, "abcde", 1, 0, 0);
- test("abcde", 6, 0, "abcde", 1, 1, 0);
- test("abcde", 6, 0, "abcde", 1, 2, 0);
- test("abcde", 6, 0, "abcde", 1, 3, 0);
- test("abcde", 6, 0, "abcde", 1, 4, 0);
- test("abcde", 6, 0, "abcde", 1, 5, 0);
- test("abcde", 6, 0, "abcde", 2, 0, 0);
- test("abcde", 6, 0, "abcde", 2, 1, 0);
- test("abcde", 6, 0, "abcde", 2, 2, 0);
- test("abcde", 6, 0, "abcde", 2, 3, 0);
- test("abcde", 6, 0, "abcde", 2, 4, 0);
- test("abcde", 6, 0, "abcde", 4, 0, 0);
- test("abcde", 6, 0, "abcde", 4, 1, 0);
- test("abcde", 6, 0, "abcde", 4, 2, 0);
- test("abcde", 6, 0, "abcde", 5, 0, 0);
- test("abcde", 6, 0, "abcde", 5, 1, 0);
- test("abcde", 6, 0, "abcde", 6, 0, 0);
- test("abcde", 6, 0, "abcdefghij", 0, 0, 0);
- test("abcde", 6, 0, "abcdefghij", 0, 1, 0);
- test("abcde", 6, 0, "abcdefghij", 0, 5, 0);
- test("abcde", 6, 0, "abcdefghij", 0, 9, 0);
- test("abcde", 6, 0, "abcdefghij", 0, 10, 0);
- test("abcde", 6, 0, "abcdefghij", 0, 11, 0);
- test("abcde", 6, 0, "abcdefghij", 1, 0, 0);
- test("abcde", 6, 0, "abcdefghij", 1, 1, 0);
- test("abcde", 6, 0, "abcdefghij", 1, 4, 0);
- test("abcde", 6, 0, "abcdefghij", 1, 8, 0);
- test("abcde", 6, 0, "abcdefghij", 1, 9, 0);
- test("abcde", 6, 0, "abcdefghij", 1, 10, 0);
- test("abcde", 6, 0, "abcdefghij", 5, 0, 0);
- test("abcde", 6, 0, "abcdefghij", 5, 1, 0);
- test("abcde", 6, 0, "abcdefghij", 5, 2, 0);
- test("abcde", 6, 0, "abcdefghij", 5, 4, 0);
- test("abcde", 6, 0, "abcdefghij", 5, 5, 0);
- test("abcde", 6, 0, "abcdefghij", 5, 6, 0);
- test("abcde", 6, 0, "abcdefghij", 9, 0, 0);
- test("abcde", 6, 0, "abcdefghij", 9, 1, 0);
- test("abcde", 6, 0, "abcdefghij", 9, 2, 0);
- test("abcde", 6, 0, "abcdefghij", 10, 0, 0);
- test("abcde", 6, 0, "abcdefghij", 10, 1, 0);
- test("abcde", 6, 0, "abcdefghij", 11, 0, 0);
+void test18() {
+ test("abcde", 5, 1, "abcde", 5, 1, 0);
+ test("abcde", 5, 1, "abcde", 6, 0, 0);
+ test("abcde", 5, 1, "abcdefghij", 0, 0, 0);
+ test("abcde", 5, 1, "abcdefghij", 0, 1, -1);
+ test("abcde", 5, 1, "abcdefghij", 0, 5, -5);
+ test("abcde", 5, 1, "abcdefghij", 0, 9, -9);
+ test("abcde", 5, 1, "abcdefghij", 0, 10, -10);
+ test("abcde", 5, 1, "abcdefghij", 0, 11, -10);
+ test("abcde", 5, 1, "abcdefghij", 1, 0, 0);
+ test("abcde", 5, 1, "abcdefghij", 1, 1, -1);
+ test("abcde", 5, 1, "abcdefghij", 1, 4, -4);
+ test("abcde", 5, 1, "abcdefghij", 1, 8, -8);
+ test("abcde", 5, 1, "abcdefghij", 1, 9, -9);
+ test("abcde", 5, 1, "abcdefghij", 1, 10, -9);
+ test("abcde", 5, 1, "abcdefghij", 5, 0, 0);
+ test("abcde", 5, 1, "abcdefghij", 5, 1, -1);
+ test("abcde", 5, 1, "abcdefghij", 5, 2, -2);
+ test("abcde", 5, 1, "abcdefghij", 5, 4, -4);
+ test("abcde", 5, 1, "abcdefghij", 5, 5, -5);
+ test("abcde", 5, 1, "abcdefghij", 5, 6, -5);
+ test("abcde", 5, 1, "abcdefghij", 9, 0, 0);
+ test("abcde", 5, 1, "abcdefghij", 9, 1, -1);
+ test("abcde", 5, 1, "abcdefghij", 9, 2, -1);
+ test("abcde", 5, 1, "abcdefghij", 10, 0, 0);
+ test("abcde", 5, 1, "abcdefghij", 10, 1, 0);
+ test("abcde", 5, 1, "abcdefghij", 11, 0, 0);
+ test("abcde", 5, 1, "abcdefghijklmnopqrst", 0, 0, 0);
+ test("abcde", 5, 1, "abcdefghijklmnopqrst", 0, 1, -1);
+ test("abcde", 5, 1, "abcdefghijklmnopqrst", 0, 10, -10);
+ test("abcde", 5, 1, "abcdefghijklmnopqrst", 0, 19, -19);
+ test("abcde", 5, 1, "abcdefghijklmnopqrst", 0, 20, -20);
+ test("abcde", 5, 1, "abcdefghijklmnopqrst", 0, 21, -20);
+ test("abcde", 5, 1, "abcdefghijklmnopqrst", 1, 0, 0);
+ test("abcde", 5, 1, "abcdefghijklmnopqrst", 1, 1, -1);
+ test("abcde", 5, 1, "abcdefghijklmnopqrst", 1, 9, -9);
+ test("abcde", 5, 1, "abcdefghijklmnopqrst", 1, 18, -18);
+ test("abcde", 5, 1, "abcdefghijklmnopqrst", 1, 19, -19);
+ test("abcde", 5, 1, "abcdefghijklmnopqrst", 1, 20, -19);
+ test("abcde", 5, 1, "abcdefghijklmnopqrst", 10, 0, 0);
+ test("abcde", 5, 1, "abcdefghijklmnopqrst", 10, 1, -1);
+ test("abcde", 5, 1, "abcdefghijklmnopqrst", 10, 5, -5);
+ test("abcde", 5, 1, "abcdefghijklmnopqrst", 10, 9, -9);
+ test("abcde", 5, 1, "abcdefghijklmnopqrst", 10, 10, -10);
+ test("abcde", 5, 1, "abcdefghijklmnopqrst", 10, 11, -10);
+ test("abcde", 5, 1, "abcdefghijklmnopqrst", 19, 0, 0);
+ test("abcde", 5, 1, "abcdefghijklmnopqrst", 19, 1, -1);
+ test("abcde", 5, 1, "abcdefghijklmnopqrst", 19, 2, -1);
+ test("abcde", 5, 1, "abcdefghijklmnopqrst", 20, 0, 0);
+ test("abcde", 5, 1, "abcdefghijklmnopqrst", 20, 1, 0);
+ test("abcde", 5, 1, "abcdefghijklmnopqrst", 21, 0, 0);
+ test("abcde", 6, 0, "", 0, 0, 0);
+ test("abcde", 6, 0, "", 0, 1, 0);
+ test("abcde", 6, 0, "", 1, 0, 0);
+ test("abcde", 6, 0, "abcde", 0, 0, 0);
+ test("abcde", 6, 0, "abcde", 0, 1, 0);
+ test("abcde", 6, 0, "abcde", 0, 2, 0);
+ test("abcde", 6, 0, "abcde", 0, 4, 0);
+ test("abcde", 6, 0, "abcde", 0, 5, 0);
+ test("abcde", 6, 0, "abcde", 0, 6, 0);
+ test("abcde", 6, 0, "abcde", 1, 0, 0);
+ test("abcde", 6, 0, "abcde", 1, 1, 0);
+ test("abcde", 6, 0, "abcde", 1, 2, 0);
+ test("abcde", 6, 0, "abcde", 1, 3, 0);
+ test("abcde", 6, 0, "abcde", 1, 4, 0);
+ test("abcde", 6, 0, "abcde", 1, 5, 0);
+ test("abcde", 6, 0, "abcde", 2, 0, 0);
+ test("abcde", 6, 0, "abcde", 2, 1, 0);
+ test("abcde", 6, 0, "abcde", 2, 2, 0);
+ test("abcde", 6, 0, "abcde", 2, 3, 0);
+ test("abcde", 6, 0, "abcde", 2, 4, 0);
+ test("abcde", 6, 0, "abcde", 4, 0, 0);
+ test("abcde", 6, 0, "abcde", 4, 1, 0);
+ test("abcde", 6, 0, "abcde", 4, 2, 0);
+ test("abcde", 6, 0, "abcde", 5, 0, 0);
+ test("abcde", 6, 0, "abcde", 5, 1, 0);
+ test("abcde", 6, 0, "abcde", 6, 0, 0);
+ test("abcde", 6, 0, "abcdefghij", 0, 0, 0);
+ test("abcde", 6, 0, "abcdefghij", 0, 1, 0);
+ test("abcde", 6, 0, "abcdefghij", 0, 5, 0);
+ test("abcde", 6, 0, "abcdefghij", 0, 9, 0);
+ test("abcde", 6, 0, "abcdefghij", 0, 10, 0);
+ test("abcde", 6, 0, "abcdefghij", 0, 11, 0);
+ test("abcde", 6, 0, "abcdefghij", 1, 0, 0);
+ test("abcde", 6, 0, "abcdefghij", 1, 1, 0);
+ test("abcde", 6, 0, "abcdefghij", 1, 4, 0);
+ test("abcde", 6, 0, "abcdefghij", 1, 8, 0);
+ test("abcde", 6, 0, "abcdefghij", 1, 9, 0);
+ test("abcde", 6, 0, "abcdefghij", 1, 10, 0);
+ test("abcde", 6, 0, "abcdefghij", 5, 0, 0);
+ test("abcde", 6, 0, "abcdefghij", 5, 1, 0);
+ test("abcde", 6, 0, "abcdefghij", 5, 2, 0);
+ test("abcde", 6, 0, "abcdefghij", 5, 4, 0);
+ test("abcde", 6, 0, "abcdefghij", 5, 5, 0);
+ test("abcde", 6, 0, "abcdefghij", 5, 6, 0);
+ test("abcde", 6, 0, "abcdefghij", 9, 0, 0);
+ test("abcde", 6, 0, "abcdefghij", 9, 1, 0);
+ test("abcde", 6, 0, "abcdefghij", 9, 2, 0);
+ test("abcde", 6, 0, "abcdefghij", 10, 0, 0);
+ test("abcde", 6, 0, "abcdefghij", 10, 1, 0);
+ test("abcde", 6, 0, "abcdefghij", 11, 0, 0);
}
-void test19()
-{
- test("abcde", 6, 0, "abcdefghijklmnopqrst", 0, 0, 0);
- test("abcde", 6, 0, "abcdefghijklmnopqrst", 0, 1, 0);
- test("abcde", 6, 0, "abcdefghijklmnopqrst", 0, 10, 0);
- test("abcde", 6, 0, "abcdefghijklmnopqrst", 0, 19, 0);
- test("abcde", 6, 0, "abcdefghijklmnopqrst", 0, 20, 0);
- test("abcde", 6, 0, "abcdefghijklmnopqrst", 0, 21, 0);
- test("abcde", 6, 0, "abcdefghijklmnopqrst", 1, 0, 0);
- test("abcde", 6, 0, "abcdefghijklmnopqrst", 1, 1, 0);
- test("abcde", 6, 0, "abcdefghijklmnopqrst", 1, 9, 0);
- test("abcde", 6, 0, "abcdefghijklmnopqrst", 1, 18, 0);
- test("abcde", 6, 0, "abcdefghijklmnopqrst", 1, 19, 0);
- test("abcde", 6, 0, "abcdefghijklmnopqrst", 1, 20, 0);
- test("abcde", 6, 0, "abcdefghijklmnopqrst", 10, 0, 0);
- test("abcde", 6, 0, "abcdefghijklmnopqrst", 10, 1, 0);
- test("abcde", 6, 0, "abcdefghijklmnopqrst", 10, 5, 0);
- test("abcde", 6, 0, "abcdefghijklmnopqrst", 10, 9, 0);
- test("abcde", 6, 0, "abcdefghijklmnopqrst", 10, 10, 0);
- test("abcde", 6, 0, "abcdefghijklmnopqrst", 10, 11, 0);
- test("abcde", 6, 0, "abcdefghijklmnopqrst", 19, 0, 0);
- test("abcde", 6, 0, "abcdefghijklmnopqrst", 19, 1, 0);
- test("abcde", 6, 0, "abcdefghijklmnopqrst", 19, 2, 0);
- test("abcde", 6, 0, "abcdefghijklmnopqrst", 20, 0, 0);
- test("abcde", 6, 0, "abcdefghijklmnopqrst", 20, 1, 0);
- test("abcde", 6, 0, "abcdefghijklmnopqrst", 21, 0, 0);
- test("abcdefghij", 0, 0, "", 0, 0, 0);
- test("abcdefghij", 0, 0, "", 0, 1, 0);
- test("abcdefghij", 0, 0, "", 1, 0, 0);
- test("abcdefghij", 0, 0, "abcde", 0, 0, 0);
- test("abcdefghij", 0, 0, "abcde", 0, 1, -1);
- test("abcdefghij", 0, 0, "abcde", 0, 2, -2);
- test("abcdefghij", 0, 0, "abcde", 0, 4, -4);
- test("abcdefghij", 0, 0, "abcde", 0, 5, -5);
- test("abcdefghij", 0, 0, "abcde", 0, 6, -5);
- test("abcdefghij", 0, 0, "abcde", 1, 0, 0);
- test("abcdefghij", 0, 0, "abcde", 1, 1, -1);
- test("abcdefghij", 0, 0, "abcde", 1, 2, -2);
- test("abcdefghij", 0, 0, "abcde", 1, 3, -3);
- test("abcdefghij", 0, 0, "abcde", 1, 4, -4);
- test("abcdefghij", 0, 0, "abcde", 1, 5, -4);
- test("abcdefghij", 0, 0, "abcde", 2, 0, 0);
- test("abcdefghij", 0, 0, "abcde", 2, 1, -1);
- test("abcdefghij", 0, 0, "abcde", 2, 2, -2);
- test("abcdefghij", 0, 0, "abcde", 2, 3, -3);
- test("abcdefghij", 0, 0, "abcde", 2, 4, -3);
- test("abcdefghij", 0, 0, "abcde", 4, 0, 0);
- test("abcdefghij", 0, 0, "abcde", 4, 1, -1);
- test("abcdefghij", 0, 0, "abcde", 4, 2, -1);
- test("abcdefghij", 0, 0, "abcde", 5, 0, 0);
- test("abcdefghij", 0, 0, "abcde", 5, 1, 0);
- test("abcdefghij", 0, 0, "abcde", 6, 0, 0);
- test("abcdefghij", 0, 0, "abcdefghij", 0, 0, 0);
- test("abcdefghij", 0, 0, "abcdefghij", 0, 1, -1);
- test("abcdefghij", 0, 0, "abcdefghij", 0, 5, -5);
- test("abcdefghij", 0, 0, "abcdefghij", 0, 9, -9);
- test("abcdefghij", 0, 0, "abcdefghij", 0, 10, -10);
- test("abcdefghij", 0, 0, "abcdefghij", 0, 11, -10);
- test("abcdefghij", 0, 0, "abcdefghij", 1, 0, 0);
- test("abcdefghij", 0, 0, "abcdefghij", 1, 1, -1);
- test("abcdefghij", 0, 0, "abcdefghij", 1, 4, -4);
- test("abcdefghij", 0, 0, "abcdefghij", 1, 8, -8);
- test("abcdefghij", 0, 0, "abcdefghij", 1, 9, -9);
- test("abcdefghij", 0, 0, "abcdefghij", 1, 10, -9);
- test("abcdefghij", 0, 0, "abcdefghij", 5, 0, 0);
- test("abcdefghij", 0, 0, "abcdefghij", 5, 1, -1);
- test("abcdefghij", 0, 0, "abcdefghij", 5, 2, -2);
- test("abcdefghij", 0, 0, "abcdefghij", 5, 4, -4);
- test("abcdefghij", 0, 0, "abcdefghij", 5, 5, -5);
- test("abcdefghij", 0, 0, "abcdefghij", 5, 6, -5);
- test("abcdefghij", 0, 0, "abcdefghij", 9, 0, 0);
- test("abcdefghij", 0, 0, "abcdefghij", 9, 1, -1);
- test("abcdefghij", 0, 0, "abcdefghij", 9, 2, -1);
- test("abcdefghij", 0, 0, "abcdefghij", 10, 0, 0);
- test("abcdefghij", 0, 0, "abcdefghij", 10, 1, 0);
- test("abcdefghij", 0, 0, "abcdefghij", 11, 0, 0);
- test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 0, 0, 0);
- test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 0, 1, -1);
- test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 0, 10, -10);
- test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 0, 19, -19);
- test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 0, 20, -20);
- test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 0, 21, -20);
- test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 1, 0, 0);
- test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 1, 1, -1);
- test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 1, 9, -9);
- test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 1, 18, -18);
- test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 1, 19, -19);
- test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 1, 20, -19);
- test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 10, 0, 0);
- test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 10, 1, -1);
- test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 10, 5, -5);
- test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 10, 9, -9);
- test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 10, 10, -10);
- test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 10, 11, -10);
- test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 19, 0, 0);
- test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 19, 1, -1);
- test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 19, 2, -1);
- test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 20, 0, 0);
- test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 20, 1, 0);
- test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 21, 0, 0);
- test("abcdefghij", 0, 1, "", 0, 0, 1);
- test("abcdefghij", 0, 1, "", 0, 1, 1);
+void test19() {
+ test("abcde", 6, 0, "abcdefghijklmnopqrst", 0, 0, 0);
+ test("abcde", 6, 0, "abcdefghijklmnopqrst", 0, 1, 0);
+ test("abcde", 6, 0, "abcdefghijklmnopqrst", 0, 10, 0);
+ test("abcde", 6, 0, "abcdefghijklmnopqrst", 0, 19, 0);
+ test("abcde", 6, 0, "abcdefghijklmnopqrst", 0, 20, 0);
+ test("abcde", 6, 0, "abcdefghijklmnopqrst", 0, 21, 0);
+ test("abcde", 6, 0, "abcdefghijklmnopqrst", 1, 0, 0);
+ test("abcde", 6, 0, "abcdefghijklmnopqrst", 1, 1, 0);
+ test("abcde", 6, 0, "abcdefghijklmnopqrst", 1, 9, 0);
+ test("abcde", 6, 0, "abcdefghijklmnopqrst", 1, 18, 0);
+ test("abcde", 6, 0, "abcdefghijklmnopqrst", 1, 19, 0);
+ test("abcde", 6, 0, "abcdefghijklmnopqrst", 1, 20, 0);
+ test("abcde", 6, 0, "abcdefghijklmnopqrst", 10, 0, 0);
+ test("abcde", 6, 0, "abcdefghijklmnopqrst", 10, 1, 0);
+ test("abcde", 6, 0, "abcdefghijklmnopqrst", 10, 5, 0);
+ test("abcde", 6, 0, "abcdefghijklmnopqrst", 10, 9, 0);
+ test("abcde", 6, 0, "abcdefghijklmnopqrst", 10, 10, 0);
+ test("abcde", 6, 0, "abcdefghijklmnopqrst", 10, 11, 0);
+ test("abcde", 6, 0, "abcdefghijklmnopqrst", 19, 0, 0);
+ test("abcde", 6, 0, "abcdefghijklmnopqrst", 19, 1, 0);
+ test("abcde", 6, 0, "abcdefghijklmnopqrst", 19, 2, 0);
+ test("abcde", 6, 0, "abcdefghijklmnopqrst", 20, 0, 0);
+ test("abcde", 6, 0, "abcdefghijklmnopqrst", 20, 1, 0);
+ test("abcde", 6, 0, "abcdefghijklmnopqrst", 21, 0, 0);
+ test("abcdefghij", 0, 0, "", 0, 0, 0);
+ test("abcdefghij", 0, 0, "", 0, 1, 0);
+ test("abcdefghij", 0, 0, "", 1, 0, 0);
+ test("abcdefghij", 0, 0, "abcde", 0, 0, 0);
+ test("abcdefghij", 0, 0, "abcde", 0, 1, -1);
+ test("abcdefghij", 0, 0, "abcde", 0, 2, -2);
+ test("abcdefghij", 0, 0, "abcde", 0, 4, -4);
+ test("abcdefghij", 0, 0, "abcde", 0, 5, -5);
+ test("abcdefghij", 0, 0, "abcde", 0, 6, -5);
+ test("abcdefghij", 0, 0, "abcde", 1, 0, 0);
+ test("abcdefghij", 0, 0, "abcde", 1, 1, -1);
+ test("abcdefghij", 0, 0, "abcde", 1, 2, -2);
+ test("abcdefghij", 0, 0, "abcde", 1, 3, -3);
+ test("abcdefghij", 0, 0, "abcde", 1, 4, -4);
+ test("abcdefghij", 0, 0, "abcde", 1, 5, -4);
+ test("abcdefghij", 0, 0, "abcde", 2, 0, 0);
+ test("abcdefghij", 0, 0, "abcde", 2, 1, -1);
+ test("abcdefghij", 0, 0, "abcde", 2, 2, -2);
+ test("abcdefghij", 0, 0, "abcde", 2, 3, -3);
+ test("abcdefghij", 0, 0, "abcde", 2, 4, -3);
+ test("abcdefghij", 0, 0, "abcde", 4, 0, 0);
+ test("abcdefghij", 0, 0, "abcde", 4, 1, -1);
+ test("abcdefghij", 0, 0, "abcde", 4, 2, -1);
+ test("abcdefghij", 0, 0, "abcde", 5, 0, 0);
+ test("abcdefghij", 0, 0, "abcde", 5, 1, 0);
+ test("abcdefghij", 0, 0, "abcde", 6, 0, 0);
+ test("abcdefghij", 0, 0, "abcdefghij", 0, 0, 0);
+ test("abcdefghij", 0, 0, "abcdefghij", 0, 1, -1);
+ test("abcdefghij", 0, 0, "abcdefghij", 0, 5, -5);
+ test("abcdefghij", 0, 0, "abcdefghij", 0, 9, -9);
+ test("abcdefghij", 0, 0, "abcdefghij", 0, 10, -10);
+ test("abcdefghij", 0, 0, "abcdefghij", 0, 11, -10);
+ test("abcdefghij", 0, 0, "abcdefghij", 1, 0, 0);
+ test("abcdefghij", 0, 0, "abcdefghij", 1, 1, -1);
+ test("abcdefghij", 0, 0, "abcdefghij", 1, 4, -4);
+ test("abcdefghij", 0, 0, "abcdefghij", 1, 8, -8);
+ test("abcdefghij", 0, 0, "abcdefghij", 1, 9, -9);
+ test("abcdefghij", 0, 0, "abcdefghij", 1, 10, -9);
+ test("abcdefghij", 0, 0, "abcdefghij", 5, 0, 0);
+ test("abcdefghij", 0, 0, "abcdefghij", 5, 1, -1);
+ test("abcdefghij", 0, 0, "abcdefghij", 5, 2, -2);
+ test("abcdefghij", 0, 0, "abcdefghij", 5, 4, -4);
+ test("abcdefghij", 0, 0, "abcdefghij", 5, 5, -5);
+ test("abcdefghij", 0, 0, "abcdefghij", 5, 6, -5);
+ test("abcdefghij", 0, 0, "abcdefghij", 9, 0, 0);
+ test("abcdefghij", 0, 0, "abcdefghij", 9, 1, -1);
+ test("abcdefghij", 0, 0, "abcdefghij", 9, 2, -1);
+ test("abcdefghij", 0, 0, "abcdefghij", 10, 0, 0);
+ test("abcdefghij", 0, 0, "abcdefghij", 10, 1, 0);
+ test("abcdefghij", 0, 0, "abcdefghij", 11, 0, 0);
+ test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 0, 0, 0);
+ test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 0, 1, -1);
+ test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 0, 10, -10);
+ test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 0, 19, -19);
+ test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 0, 20, -20);
+ test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 0, 21, -20);
+ test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 1, 0, 0);
+ test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 1, 1, -1);
+ test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 1, 9, -9);
+ test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 1, 18, -18);
+ test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 1, 19, -19);
+ test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 1, 20, -19);
+ test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 10, 0, 0);
+ test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 10, 1, -1);
+ test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 10, 5, -5);
+ test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 10, 9, -9);
+ test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 10, 10, -10);
+ test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 10, 11, -10);
+ test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 19, 0, 0);
+ test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 19, 1, -1);
+ test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 19, 2, -1);
+ test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 20, 0, 0);
+ test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 20, 1, 0);
+ test("abcdefghij", 0, 0, "abcdefghijklmnopqrst", 21, 0, 0);
+ test("abcdefghij", 0, 1, "", 0, 0, 1);
+ test("abcdefghij", 0, 1, "", 0, 1, 1);
}
-void test20()
-{
- test("abcdefghij", 0, 1, "", 1, 0, 0);
- test("abcdefghij", 0, 1, "abcde", 0, 0, 1);
- test("abcdefghij", 0, 1, "abcde", 0, 1, 0);
- test("abcdefghij", 0, 1, "abcde", 0, 2, -1);
- test("abcdefghij", 0, 1, "abcde", 0, 4, -3);
- test("abcdefghij", 0, 1, "abcde", 0, 5, -4);
- test("abcdefghij", 0, 1, "abcde", 0, 6, -4);
- test("abcdefghij", 0, 1, "abcde", 1, 0, 1);
- test("abcdefghij", 0, 1, "abcde", 1, 1, -1);
- test("abcdefghij", 0, 1, "abcde", 1, 2, -1);
- test("abcdefghij", 0, 1, "abcde", 1, 3, -1);
- test("abcdefghij", 0, 1, "abcde", 1, 4, -1);
- test("abcdefghij", 0, 1, "abcde", 1, 5, -1);
- test("abcdefghij", 0, 1, "abcde", 2, 0, 1);
- test("abcdefghij", 0, 1, "abcde", 2, 1, -2);
- test("abcdefghij", 0, 1, "abcde", 2, 2, -2);
- test("abcdefghij", 0, 1, "abcde", 2, 3, -2);
- test("abcdefghij", 0, 1, "abcde", 2, 4, -2);
- test("abcdefghij", 0, 1, "abcde", 4, 0, 1);
- test("abcdefghij", 0, 1, "abcde", 4, 1, -4);
- test("abcdefghij", 0, 1, "abcde", 4, 2, -4);
- test("abcdefghij", 0, 1, "abcde", 5, 0, 1);
- test("abcdefghij", 0, 1, "abcde", 5, 1, 1);
- test("abcdefghij", 0, 1, "abcde", 6, 0, 0);
- test("abcdefghij", 0, 1, "abcdefghij", 0, 0, 1);
- test("abcdefghij", 0, 1, "abcdefghij", 0, 1, 0);
- test("abcdefghij", 0, 1, "abcdefghij", 0, 5, -4);
- test("abcdefghij", 0, 1, "abcdefghij", 0, 9, -8);
- test("abcdefghij", 0, 1, "abcdefghij", 0, 10, -9);
- test("abcdefghij", 0, 1, "abcdefghij", 0, 11, -9);
- test("abcdefghij", 0, 1, "abcdefghij", 1, 0, 1);
- test("abcdefghij", 0, 1, "abcdefghij", 1, 1, -1);
- test("abcdefghij", 0, 1, "abcdefghij", 1, 4, -1);
- test("abcdefghij", 0, 1, "abcdefghij", 1, 8, -1);
- test("abcdefghij", 0, 1, "abcdefghij", 1, 9, -1);
- test("abcdefghij", 0, 1, "abcdefghij", 1, 10, -1);
- test("abcdefghij", 0, 1, "abcdefghij", 5, 0, 1);
- test("abcdefghij", 0, 1, "abcdefghij", 5, 1, -5);
- test("abcdefghij", 0, 1, "abcdefghij", 5, 2, -5);
- test("abcdefghij", 0, 1, "abcdefghij", 5, 4, -5);
- test("abcdefghij", 0, 1, "abcdefghij", 5, 5, -5);
- test("abcdefghij", 0, 1, "abcdefghij", 5, 6, -5);
- test("abcdefghij", 0, 1, "abcdefghij", 9, 0, 1);
- test("abcdefghij", 0, 1, "abcdefghij", 9, 1, -9);
- test("abcdefghij", 0, 1, "abcdefghij", 9, 2, -9);
- test("abcdefghij", 0, 1, "abcdefghij", 10, 0, 1);
- test("abcdefghij", 0, 1, "abcdefghij", 10, 1, 1);
- test("abcdefghij", 0, 1, "abcdefghij", 11, 0, 0);
- test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 0, 0, 1);
- test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 0, 1, 0);
- test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 0, 10, -9);
- test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 0, 19, -18);
- test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 0, 20, -19);
- test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 0, 21, -19);
- test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 1, 0, 1);
- test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 1, 1, -1);
- test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 1, 9, -1);
- test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 1, 18, -1);
- test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 1, 19, -1);
- test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 1, 20, -1);
- test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 10, 0, 1);
- test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 10, 1, -10);
- test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 10, 5, -10);
- test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 10, 9, -10);
- test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 10, 10, -10);
- test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 10, 11, -10);
- test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 19, 0, 1);
- test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 19, 1, -19);
- test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 19, 2, -19);
- test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 20, 0, 1);
- test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 20, 1, 1);
- test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 21, 0, 0);
- test("abcdefghij", 0, 5, "", 0, 0, 5);
- test("abcdefghij", 0, 5, "", 0, 1, 5);
- test("abcdefghij", 0, 5, "", 1, 0, 0);
- test("abcdefghij", 0, 5, "abcde", 0, 0, 5);
- test("abcdefghij", 0, 5, "abcde", 0, 1, 4);
- test("abcdefghij", 0, 5, "abcde", 0, 2, 3);
- test("abcdefghij", 0, 5, "abcde", 0, 4, 1);
- test("abcdefghij", 0, 5, "abcde", 0, 5, 0);
- test("abcdefghij", 0, 5, "abcde", 0, 6, 0);
- test("abcdefghij", 0, 5, "abcde", 1, 0, 5);
- test("abcdefghij", 0, 5, "abcde", 1, 1, -1);
- test("abcdefghij", 0, 5, "abcde", 1, 2, -1);
- test("abcdefghij", 0, 5, "abcde", 1, 3, -1);
- test("abcdefghij", 0, 5, "abcde", 1, 4, -1);
- test("abcdefghij", 0, 5, "abcde", 1, 5, -1);
- test("abcdefghij", 0, 5, "abcde", 2, 0, 5);
- test("abcdefghij", 0, 5, "abcde", 2, 1, -2);
- test("abcdefghij", 0, 5, "abcde", 2, 2, -2);
- test("abcdefghij", 0, 5, "abcde", 2, 3, -2);
- test("abcdefghij", 0, 5, "abcde", 2, 4, -2);
- test("abcdefghij", 0, 5, "abcde", 4, 0, 5);
- test("abcdefghij", 0, 5, "abcde", 4, 1, -4);
- test("abcdefghij", 0, 5, "abcde", 4, 2, -4);
- test("abcdefghij", 0, 5, "abcde", 5, 0, 5);
- test("abcdefghij", 0, 5, "abcde", 5, 1, 5);
- test("abcdefghij", 0, 5, "abcde", 6, 0, 0);
- test("abcdefghij", 0, 5, "abcdefghij", 0, 0, 5);
- test("abcdefghij", 0, 5, "abcdefghij", 0, 1, 4);
+void test20() {
+ test("abcdefghij", 0, 1, "", 1, 0, 0);
+ test("abcdefghij", 0, 1, "abcde", 0, 0, 1);
+ test("abcdefghij", 0, 1, "abcde", 0, 1, 0);
+ test("abcdefghij", 0, 1, "abcde", 0, 2, -1);
+ test("abcdefghij", 0, 1, "abcde", 0, 4, -3);
+ test("abcdefghij", 0, 1, "abcde", 0, 5, -4);
+ test("abcdefghij", 0, 1, "abcde", 0, 6, -4);
+ test("abcdefghij", 0, 1, "abcde", 1, 0, 1);
+ test("abcdefghij", 0, 1, "abcde", 1, 1, -1);
+ test("abcdefghij", 0, 1, "abcde", 1, 2, -1);
+ test("abcdefghij", 0, 1, "abcde", 1, 3, -1);
+ test("abcdefghij", 0, 1, "abcde", 1, 4, -1);
+ test("abcdefghij", 0, 1, "abcde", 1, 5, -1);
+ test("abcdefghij", 0, 1, "abcde", 2, 0, 1);
+ test("abcdefghij", 0, 1, "abcde", 2, 1, -2);
+ test("abcdefghij", 0, 1, "abcde", 2, 2, -2);
+ test("abcdefghij", 0, 1, "abcde", 2, 3, -2);
+ test("abcdefghij", 0, 1, "abcde", 2, 4, -2);
+ test("abcdefghij", 0, 1, "abcde", 4, 0, 1);
+ test("abcdefghij", 0, 1, "abcde", 4, 1, -4);
+ test("abcdefghij", 0, 1, "abcde", 4, 2, -4);
+ test("abcdefghij", 0, 1, "abcde", 5, 0, 1);
+ test("abcdefghij", 0, 1, "abcde", 5, 1, 1);
+ test("abcdefghij", 0, 1, "abcde", 6, 0, 0);
+ test("abcdefghij", 0, 1, "abcdefghij", 0, 0, 1);
+ test("abcdefghij", 0, 1, "abcdefghij", 0, 1, 0);
+ test("abcdefghij", 0, 1, "abcdefghij", 0, 5, -4);
+ test("abcdefghij", 0, 1, "abcdefghij", 0, 9, -8);
+ test("abcdefghij", 0, 1, "abcdefghij", 0, 10, -9);
+ test("abcdefghij", 0, 1, "abcdefghij", 0, 11, -9);
+ test("abcdefghij", 0, 1, "abcdefghij", 1, 0, 1);
+ test("abcdefghij", 0, 1, "abcdefghij", 1, 1, -1);
+ test("abcdefghij", 0, 1, "abcdefghij", 1, 4, -1);
+ test("abcdefghij", 0, 1, "abcdefghij", 1, 8, -1);
+ test("abcdefghij", 0, 1, "abcdefghij", 1, 9, -1);
+ test("abcdefghij", 0, 1, "abcdefghij", 1, 10, -1);
+ test("abcdefghij", 0, 1, "abcdefghij", 5, 0, 1);
+ test("abcdefghij", 0, 1, "abcdefghij", 5, 1, -5);
+ test("abcdefghij", 0, 1, "abcdefghij", 5, 2, -5);
+ test("abcdefghij", 0, 1, "abcdefghij", 5, 4, -5);
+ test("abcdefghij", 0, 1, "abcdefghij", 5, 5, -5);
+ test("abcdefghij", 0, 1, "abcdefghij", 5, 6, -5);
+ test("abcdefghij", 0, 1, "abcdefghij", 9, 0, 1);
+ test("abcdefghij", 0, 1, "abcdefghij", 9, 1, -9);
+ test("abcdefghij", 0, 1, "abcdefghij", 9, 2, -9);
+ test("abcdefghij", 0, 1, "abcdefghij", 10, 0, 1);
+ test("abcdefghij", 0, 1, "abcdefghij", 10, 1, 1);
+ test("abcdefghij", 0, 1, "abcdefghij", 11, 0, 0);
+ test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 0, 0, 1);
+ test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 0, 1, 0);
+ test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 0, 10, -9);
+ test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 0, 19, -18);
+ test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 0, 20, -19);
+ test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 0, 21, -19);
+ test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 1, 0, 1);
+ test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 1, 1, -1);
+ test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 1, 9, -1);
+ test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 1, 18, -1);
+ test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 1, 19, -1);
+ test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 1, 20, -1);
+ test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 10, 0, 1);
+ test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 10, 1, -10);
+ test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 10, 5, -10);
+ test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 10, 9, -10);
+ test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 10, 10, -10);
+ test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 10, 11, -10);
+ test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 19, 0, 1);
+ test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 19, 1, -19);
+ test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 19, 2, -19);
+ test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 20, 0, 1);
+ test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 20, 1, 1);
+ test("abcdefghij", 0, 1, "abcdefghijklmnopqrst", 21, 0, 0);
+ test("abcdefghij", 0, 5, "", 0, 0, 5);
+ test("abcdefghij", 0, 5, "", 0, 1, 5);
+ test("abcdefghij", 0, 5, "", 1, 0, 0);
+ test("abcdefghij", 0, 5, "abcde", 0, 0, 5);
+ test("abcdefghij", 0, 5, "abcde", 0, 1, 4);
+ test("abcdefghij", 0, 5, "abcde", 0, 2, 3);
+ test("abcdefghij", 0, 5, "abcde", 0, 4, 1);
+ test("abcdefghij", 0, 5, "abcde", 0, 5, 0);
+ test("abcdefghij", 0, 5, "abcde", 0, 6, 0);
+ test("abcdefghij", 0, 5, "abcde", 1, 0, 5);
+ test("abcdefghij", 0, 5, "abcde", 1, 1, -1);
+ test("abcdefghij", 0, 5, "abcde", 1, 2, -1);
+ test("abcdefghij", 0, 5, "abcde", 1, 3, -1);
+ test("abcdefghij", 0, 5, "abcde", 1, 4, -1);
+ test("abcdefghij", 0, 5, "abcde", 1, 5, -1);
+ test("abcdefghij", 0, 5, "abcde", 2, 0, 5);
+ test("abcdefghij", 0, 5, "abcde", 2, 1, -2);
+ test("abcdefghij", 0, 5, "abcde", 2, 2, -2);
+ test("abcdefghij", 0, 5, "abcde", 2, 3, -2);
+ test("abcdefghij", 0, 5, "abcde", 2, 4, -2);
+ test("abcdefghij", 0, 5, "abcde", 4, 0, 5);
+ test("abcdefghij", 0, 5, "abcde", 4, 1, -4);
+ test("abcdefghij", 0, 5, "abcde", 4, 2, -4);
+ test("abcdefghij", 0, 5, "abcde", 5, 0, 5);
+ test("abcdefghij", 0, 5, "abcde", 5, 1, 5);
+ test("abcdefghij", 0, 5, "abcde", 6, 0, 0);
+ test("abcdefghij", 0, 5, "abcdefghij", 0, 0, 5);
+ test("abcdefghij", 0, 5, "abcdefghij", 0, 1, 4);
}
-void test21()
-{
- test("abcdefghij", 0, 5, "abcdefghij", 0, 5, 0);
- test("abcdefghij", 0, 5, "abcdefghij", 0, 9, -4);
- test("abcdefghij", 0, 5, "abcdefghij", 0, 10, -5);
- test("abcdefghij", 0, 5, "abcdefghij", 0, 11, -5);
- test("abcdefghij", 0, 5, "abcdefghij", 1, 0, 5);
- test("abcdefghij", 0, 5, "abcdefghij", 1, 1, -1);
- test("abcdefghij", 0, 5, "abcdefghij", 1, 4, -1);
- test("abcdefghij", 0, 5, "abcdefghij", 1, 8, -1);
- test("abcdefghij", 0, 5, "abcdefghij", 1, 9, -1);
- test("abcdefghij", 0, 5, "abcdefghij", 1, 10, -1);
- test("abcdefghij", 0, 5, "abcdefghij", 5, 0, 5);
- test("abcdefghij", 0, 5, "abcdefghij", 5, 1, -5);
- test("abcdefghij", 0, 5, "abcdefghij", 5, 2, -5);
- test("abcdefghij", 0, 5, "abcdefghij", 5, 4, -5);
- test("abcdefghij", 0, 5, "abcdefghij", 5, 5, -5);
- test("abcdefghij", 0, 5, "abcdefghij", 5, 6, -5);
- test("abcdefghij", 0, 5, "abcdefghij", 9, 0, 5);
- test("abcdefghij", 0, 5, "abcdefghij", 9, 1, -9);
- test("abcdefghij", 0, 5, "abcdefghij", 9, 2, -9);
- test("abcdefghij", 0, 5, "abcdefghij", 10, 0, 5);
- test("abcdefghij", 0, 5, "abcdefghij", 10, 1, 5);
- test("abcdefghij", 0, 5, "abcdefghij", 11, 0, 0);
- test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 0, 0, 5);
- test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 0, 1, 4);
- test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 0, 10, -5);
- test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 0, 19, -14);
- test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 0, 20, -15);
- test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 0, 21, -15);
- test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 1, 0, 5);
- test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 1, 1, -1);
- test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 1, 9, -1);
- test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 1, 18, -1);
- test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 1, 19, -1);
- test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 1, 20, -1);
- test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 10, 0, 5);
- test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 10, 1, -10);
- test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 10, 5, -10);
- test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 10, 9, -10);
- test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 10, 10, -10);
- test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 10, 11, -10);
- test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 19, 0, 5);
- test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 19, 1, -19);
- test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 19, 2, -19);
- test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 20, 0, 5);
- test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 20, 1, 5);
- test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 21, 0, 0);
- test("abcdefghij", 0, 9, "", 0, 0, 9);
- test("abcdefghij", 0, 9, "", 0, 1, 9);
- test("abcdefghij", 0, 9, "", 1, 0, 0);
- test("abcdefghij", 0, 9, "abcde", 0, 0, 9);
- test("abcdefghij", 0, 9, "abcde", 0, 1, 8);
- test("abcdefghij", 0, 9, "abcde", 0, 2, 7);
- test("abcdefghij", 0, 9, "abcde", 0, 4, 5);
- test("abcdefghij", 0, 9, "abcde", 0, 5, 4);
- test("abcdefghij", 0, 9, "abcde", 0, 6, 4);
- test("abcdefghij", 0, 9, "abcde", 1, 0, 9);
- test("abcdefghij", 0, 9, "abcde", 1, 1, -1);
- test("abcdefghij", 0, 9, "abcde", 1, 2, -1);
- test("abcdefghij", 0, 9, "abcde", 1, 3, -1);
- test("abcdefghij", 0, 9, "abcde", 1, 4, -1);
- test("abcdefghij", 0, 9, "abcde", 1, 5, -1);
- test("abcdefghij", 0, 9, "abcde", 2, 0, 9);
- test("abcdefghij", 0, 9, "abcde", 2, 1, -2);
- test("abcdefghij", 0, 9, "abcde", 2, 2, -2);
- test("abcdefghij", 0, 9, "abcde", 2, 3, -2);
- test("abcdefghij", 0, 9, "abcde", 2, 4, -2);
- test("abcdefghij", 0, 9, "abcde", 4, 0, 9);
- test("abcdefghij", 0, 9, "abcde", 4, 1, -4);
- test("abcdefghij", 0, 9, "abcde", 4, 2, -4);
- test("abcdefghij", 0, 9, "abcde", 5, 0, 9);
- test("abcdefghij", 0, 9, "abcde", 5, 1, 9);
- test("abcdefghij", 0, 9, "abcde", 6, 0, 0);
- test("abcdefghij", 0, 9, "abcdefghij", 0, 0, 9);
- test("abcdefghij", 0, 9, "abcdefghij", 0, 1, 8);
- test("abcdefghij", 0, 9, "abcdefghij", 0, 5, 4);
- test("abcdefghij", 0, 9, "abcdefghij", 0, 9, 0);
- test("abcdefghij", 0, 9, "abcdefghij", 0, 10, -1);
- test("abcdefghij", 0, 9, "abcdefghij", 0, 11, -1);
- test("abcdefghij", 0, 9, "abcdefghij", 1, 0, 9);
- test("abcdefghij", 0, 9, "abcdefghij", 1, 1, -1);
- test("abcdefghij", 0, 9, "abcdefghij", 1, 4, -1);
- test("abcdefghij", 0, 9, "abcdefghij", 1, 8, -1);
- test("abcdefghij", 0, 9, "abcdefghij", 1, 9, -1);
- test("abcdefghij", 0, 9, "abcdefghij", 1, 10, -1);
- test("abcdefghij", 0, 9, "abcdefghij", 5, 0, 9);
- test("abcdefghij", 0, 9, "abcdefghij", 5, 1, -5);
- test("abcdefghij", 0, 9, "abcdefghij", 5, 2, -5);
- test("abcdefghij", 0, 9, "abcdefghij", 5, 4, -5);
- test("abcdefghij", 0, 9, "abcdefghij", 5, 5, -5);
- test("abcdefghij", 0, 9, "abcdefghij", 5, 6, -5);
- test("abcdefghij", 0, 9, "abcdefghij", 9, 0, 9);
- test("abcdefghij", 0, 9, "abcdefghij", 9, 1, -9);
- test("abcdefghij", 0, 9, "abcdefghij", 9, 2, -9);
- test("abcdefghij", 0, 9, "abcdefghij", 10, 0, 9);
- test("abcdefghij", 0, 9, "abcdefghij", 10, 1, 9);
- test("abcdefghij", 0, 9, "abcdefghij", 11, 0, 0);
- test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 0, 0, 9);
- test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 0, 1, 8);
- test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 0, 10, -1);
- test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 0, 19, -10);
+void test21() {
+ test("abcdefghij", 0, 5, "abcdefghij", 0, 5, 0);
+ test("abcdefghij", 0, 5, "abcdefghij", 0, 9, -4);
+ test("abcdefghij", 0, 5, "abcdefghij", 0, 10, -5);
+ test("abcdefghij", 0, 5, "abcdefghij", 0, 11, -5);
+ test("abcdefghij", 0, 5, "abcdefghij", 1, 0, 5);
+ test("abcdefghij", 0, 5, "abcdefghij", 1, 1, -1);
+ test("abcdefghij", 0, 5, "abcdefghij", 1, 4, -1);
+ test("abcdefghij", 0, 5, "abcdefghij", 1, 8, -1);
+ test("abcdefghij", 0, 5, "abcdefghij", 1, 9, -1);
+ test("abcdefghij", 0, 5, "abcdefghij", 1, 10, -1);
+ test("abcdefghij", 0, 5, "abcdefghij", 5, 0, 5);
+ test("abcdefghij", 0, 5, "abcdefghij", 5, 1, -5);
+ test("abcdefghij", 0, 5, "abcdefghij", 5, 2, -5);
+ test("abcdefghij", 0, 5, "abcdefghij", 5, 4, -5);
+ test("abcdefghij", 0, 5, "abcdefghij", 5, 5, -5);
+ test("abcdefghij", 0, 5, "abcdefghij", 5, 6, -5);
+ test("abcdefghij", 0, 5, "abcdefghij", 9, 0, 5);
+ test("abcdefghij", 0, 5, "abcdefghij", 9, 1, -9);
+ test("abcdefghij", 0, 5, "abcdefghij", 9, 2, -9);
+ test("abcdefghij", 0, 5, "abcdefghij", 10, 0, 5);
+ test("abcdefghij", 0, 5, "abcdefghij", 10, 1, 5);
+ test("abcdefghij", 0, 5, "abcdefghij", 11, 0, 0);
+ test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 0, 0, 5);
+ test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 0, 1, 4);
+ test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 0, 10, -5);
+ test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 0, 19, -14);
+ test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 0, 20, -15);
+ test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 0, 21, -15);
+ test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 1, 0, 5);
+ test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 1, 1, -1);
+ test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 1, 9, -1);
+ test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 1, 18, -1);
+ test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 1, 19, -1);
+ test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 1, 20, -1);
+ test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 10, 0, 5);
+ test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 10, 1, -10);
+ test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 10, 5, -10);
+ test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 10, 9, -10);
+ test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 10, 10, -10);
+ test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 10, 11, -10);
+ test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 19, 0, 5);
+ test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 19, 1, -19);
+ test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 19, 2, -19);
+ test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 20, 0, 5);
+ test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 20, 1, 5);
+ test("abcdefghij", 0, 5, "abcdefghijklmnopqrst", 21, 0, 0);
+ test("abcdefghij", 0, 9, "", 0, 0, 9);
+ test("abcdefghij", 0, 9, "", 0, 1, 9);
+ test("abcdefghij", 0, 9, "", 1, 0, 0);
+ test("abcdefghij", 0, 9, "abcde", 0, 0, 9);
+ test("abcdefghij", 0, 9, "abcde", 0, 1, 8);
+ test("abcdefghij", 0, 9, "abcde", 0, 2, 7);
+ test("abcdefghij", 0, 9, "abcde", 0, 4, 5);
+ test("abcdefghij", 0, 9, "abcde", 0, 5, 4);
+ test("abcdefghij", 0, 9, "abcde", 0, 6, 4);
+ test("abcdefghij", 0, 9, "abcde", 1, 0, 9);
+ test("abcdefghij", 0, 9, "abcde", 1, 1, -1);
+ test("abcdefghij", 0, 9, "abcde", 1, 2, -1);
+ test("abcdefghij", 0, 9, "abcde", 1, 3, -1);
+ test("abcdefghij", 0, 9, "abcde", 1, 4, -1);
+ test("abcdefghij", 0, 9, "abcde", 1, 5, -1);
+ test("abcdefghij", 0, 9, "abcde", 2, 0, 9);
+ test("abcdefghij", 0, 9, "abcde", 2, 1, -2);
+ test("abcdefghij", 0, 9, "abcde", 2, 2, -2);
+ test("abcdefghij", 0, 9, "abcde", 2, 3, -2);
+ test("abcdefghij", 0, 9, "abcde", 2, 4, -2);
+ test("abcdefghij", 0, 9, "abcde", 4, 0, 9);
+ test("abcdefghij", 0, 9, "abcde", 4, 1, -4);
+ test("abcdefghij", 0, 9, "abcde", 4, 2, -4);
+ test("abcdefghij", 0, 9, "abcde", 5, 0, 9);
+ test("abcdefghij", 0, 9, "abcde", 5, 1, 9);
+ test("abcdefghij", 0, 9, "abcde", 6, 0, 0);
+ test("abcdefghij", 0, 9, "abcdefghij", 0, 0, 9);
+ test("abcdefghij", 0, 9, "abcdefghij", 0, 1, 8);
+ test("abcdefghij", 0, 9, "abcdefghij", 0, 5, 4);
+ test("abcdefghij", 0, 9, "abcdefghij", 0, 9, 0);
+ test("abcdefghij", 0, 9, "abcdefghij", 0, 10, -1);
+ test("abcdefghij", 0, 9, "abcdefghij", 0, 11, -1);
+ test("abcdefghij", 0, 9, "abcdefghij", 1, 0, 9);
+ test("abcdefghij", 0, 9, "abcdefghij", 1, 1, -1);
+ test("abcdefghij", 0, 9, "abcdefghij", 1, 4, -1);
+ test("abcdefghij", 0, 9, "abcdefghij", 1, 8, -1);
+ test("abcdefghij", 0, 9, "abcdefghij", 1, 9, -1);
+ test("abcdefghij", 0, 9, "abcdefghij", 1, 10, -1);
+ test("abcdefghij", 0, 9, "abcdefghij", 5, 0, 9);
+ test("abcdefghij", 0, 9, "abcdefghij", 5, 1, -5);
+ test("abcdefghij", 0, 9, "abcdefghij", 5, 2, -5);
+ test("abcdefghij", 0, 9, "abcdefghij", 5, 4, -5);
+ test("abcdefghij", 0, 9, "abcdefghij", 5, 5, -5);
+ test("abcdefghij", 0, 9, "abcdefghij", 5, 6, -5);
+ test("abcdefghij", 0, 9, "abcdefghij", 9, 0, 9);
+ test("abcdefghij", 0, 9, "abcdefghij", 9, 1, -9);
+ test("abcdefghij", 0, 9, "abcdefghij", 9, 2, -9);
+ test("abcdefghij", 0, 9, "abcdefghij", 10, 0, 9);
+ test("abcdefghij", 0, 9, "abcdefghij", 10, 1, 9);
+ test("abcdefghij", 0, 9, "abcdefghij", 11, 0, 0);
+ test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 0, 0, 9);
+ test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 0, 1, 8);
+ test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 0, 10, -1);
+ test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 0, 19, -10);
}
-void test22()
-{
- test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 0, 20, -11);
- test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 0, 21, -11);
- test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 1, 0, 9);
- test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 1, 1, -1);
- test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 1, 9, -1);
- test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 1, 18, -1);
- test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 1, 19, -1);
- test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 1, 20, -1);
- test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 10, 0, 9);
- test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 10, 1, -10);
- test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 10, 5, -10);
- test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 10, 9, -10);
- test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 10, 10, -10);
- test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 10, 11, -10);
- test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 19, 0, 9);
- test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 19, 1, -19);
- test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 19, 2, -19);
- test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 20, 0, 9);
- test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 20, 1, 9);
- test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 21, 0, 0);
- test("abcdefghij", 0, 10, "", 0, 0, 10);
- test("abcdefghij", 0, 10, "", 0, 1, 10);
- test("abcdefghij", 0, 10, "", 1, 0, 0);
- test("abcdefghij", 0, 10, "abcde", 0, 0, 10);
- test("abcdefghij", 0, 10, "abcde", 0, 1, 9);
- test("abcdefghij", 0, 10, "abcde", 0, 2, 8);
- test("abcdefghij", 0, 10, "abcde", 0, 4, 6);
- test("abcdefghij", 0, 10, "abcde", 0, 5, 5);
- test("abcdefghij", 0, 10, "abcde", 0, 6, 5);
- test("abcdefghij", 0, 10, "abcde", 1, 0, 10);
- test("abcdefghij", 0, 10, "abcde", 1, 1, -1);
- test("abcdefghij", 0, 10, "abcde", 1, 2, -1);
- test("abcdefghij", 0, 10, "abcde", 1, 3, -1);
- test("abcdefghij", 0, 10, "abcde", 1, 4, -1);
- test("abcdefghij", 0, 10, "abcde", 1, 5, -1);
- test("abcdefghij", 0, 10, "abcde", 2, 0, 10);
- test("abcdefghij", 0, 10, "abcde", 2, 1, -2);
- test("abcdefghij", 0, 10, "abcde", 2, 2, -2);
- test("abcdefghij", 0, 10, "abcde", 2, 3, -2);
- test("abcdefghij", 0, 10, "abcde", 2, 4, -2);
- test("abcdefghij", 0, 10, "abcde", 4, 0, 10);
- test("abcdefghij", 0, 10, "abcde", 4, 1, -4);
- test("abcdefghij", 0, 10, "abcde", 4, 2, -4);
- test("abcdefghij", 0, 10, "abcde", 5, 0, 10);
- test("abcdefghij", 0, 10, "abcde", 5, 1, 10);
- test("abcdefghij", 0, 10, "abcde", 6, 0, 0);
- test("abcdefghij", 0, 10, "abcdefghij", 0, 0, 10);
- test("abcdefghij", 0, 10, "abcdefghij", 0, 1, 9);
- test("abcdefghij", 0, 10, "abcdefghij", 0, 5, 5);
- test("abcdefghij", 0, 10, "abcdefghij", 0, 9, 1);
- test("abcdefghij", 0, 10, "abcdefghij", 0, 10, 0);
- test("abcdefghij", 0, 10, "abcdefghij", 0, 11, 0);
- test("abcdefghij", 0, 10, "abcdefghij", 1, 0, 10);
- test("abcdefghij", 0, 10, "abcdefghij", 1, 1, -1);
- test("abcdefghij", 0, 10, "abcdefghij", 1, 4, -1);
- test("abcdefghij", 0, 10, "abcdefghij", 1, 8, -1);
- test("abcdefghij", 0, 10, "abcdefghij", 1, 9, -1);
- test("abcdefghij", 0, 10, "abcdefghij", 1, 10, -1);
- test("abcdefghij", 0, 10, "abcdefghij", 5, 0, 10);
- test("abcdefghij", 0, 10, "abcdefghij", 5, 1, -5);
- test("abcdefghij", 0, 10, "abcdefghij", 5, 2, -5);
- test("abcdefghij", 0, 10, "abcdefghij", 5, 4, -5);
- test("abcdefghij", 0, 10, "abcdefghij", 5, 5, -5);
- test("abcdefghij", 0, 10, "abcdefghij", 5, 6, -5);
- test("abcdefghij", 0, 10, "abcdefghij", 9, 0, 10);
- test("abcdefghij", 0, 10, "abcdefghij", 9, 1, -9);
- test("abcdefghij", 0, 10, "abcdefghij", 9, 2, -9);
- test("abcdefghij", 0, 10, "abcdefghij", 10, 0, 10);
- test("abcdefghij", 0, 10, "abcdefghij", 10, 1, 10);
- test("abcdefghij", 0, 10, "abcdefghij", 11, 0, 0);
- test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 0, 0, 10);
- test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 0, 1, 9);
- test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 0, 10, 0);
- test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 0, 19, -9);
- test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 0, 20, -10);
- test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 0, 21, -10);
- test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 1, 0, 10);
- test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 1, 1, -1);
- test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 1, 9, -1);
- test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 1, 18, -1);
- test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 1, 19, -1);
- test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 1, 20, -1);
- test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 10, 0, 10);
- test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 10, 1, -10);
- test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 10, 5, -10);
- test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 10, 9, -10);
- test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 10, 10, -10);
- test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 10, 11, -10);
- test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 19, 0, 10);
- test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 19, 1, -19);
- test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 19, 2, -19);
- test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 20, 0, 10);
- test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 20, 1, 10);
- test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 21, 0, 0);
- test("abcdefghij", 0, 11, "", 0, 0, 10);
- test("abcdefghij", 0, 11, "", 0, 1, 10);
- test("abcdefghij", 0, 11, "", 1, 0, 0);
- test("abcdefghij", 0, 11, "abcde", 0, 0, 10);
- test("abcdefghij", 0, 11, "abcde", 0, 1, 9);
- test("abcdefghij", 0, 11, "abcde", 0, 2, 8);
+void test22() {
+ test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 0, 20, -11);
+ test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 0, 21, -11);
+ test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 1, 0, 9);
+ test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 1, 1, -1);
+ test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 1, 9, -1);
+ test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 1, 18, -1);
+ test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 1, 19, -1);
+ test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 1, 20, -1);
+ test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 10, 0, 9);
+ test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 10, 1, -10);
+ test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 10, 5, -10);
+ test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 10, 9, -10);
+ test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 10, 10, -10);
+ test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 10, 11, -10);
+ test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 19, 0, 9);
+ test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 19, 1, -19);
+ test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 19, 2, -19);
+ test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 20, 0, 9);
+ test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 20, 1, 9);
+ test("abcdefghij", 0, 9, "abcdefghijklmnopqrst", 21, 0, 0);
+ test("abcdefghij", 0, 10, "", 0, 0, 10);
+ test("abcdefghij", 0, 10, "", 0, 1, 10);
+ test("abcdefghij", 0, 10, "", 1, 0, 0);
+ test("abcdefghij", 0, 10, "abcde", 0, 0, 10);
+ test("abcdefghij", 0, 10, "abcde", 0, 1, 9);
+ test("abcdefghij", 0, 10, "abcde", 0, 2, 8);
+ test("abcdefghij", 0, 10, "abcde", 0, 4, 6);
+ test("abcdefghij", 0, 10, "abcde", 0, 5, 5);
+ test("abcdefghij", 0, 10, "abcde", 0, 6, 5);
+ test("abcdefghij", 0, 10, "abcde", 1, 0, 10);
+ test("abcdefghij", 0, 10, "abcde", 1, 1, -1);
+ test("abcdefghij", 0, 10, "abcde", 1, 2, -1);
+ test("abcdefghij", 0, 10, "abcde", 1, 3, -1);
+ test("abcdefghij", 0, 10, "abcde", 1, 4, -1);
+ test("abcdefghij", 0, 10, "abcde", 1, 5, -1);
+ test("abcdefghij", 0, 10, "abcde", 2, 0, 10);
+ test("abcdefghij", 0, 10, "abcde", 2, 1, -2);
+ test("abcdefghij", 0, 10, "abcde", 2, 2, -2);
+ test("abcdefghij", 0, 10, "abcde", 2, 3, -2);
+ test("abcdefghij", 0, 10, "abcde", 2, 4, -2);
+ test("abcdefghij", 0, 10, "abcde", 4, 0, 10);
+ test("abcdefghij", 0, 10, "abcde", 4, 1, -4);
+ test("abcdefghij", 0, 10, "abcde", 4, 2, -4);
+ test("abcdefghij", 0, 10, "abcde", 5, 0, 10);
+ test("abcdefghij", 0, 10, "abcde", 5, 1, 10);
+ test("abcdefghij", 0, 10, "abcde", 6, 0, 0);
+ test("abcdefghij", 0, 10, "abcdefghij", 0, 0, 10);
+ test("abcdefghij", 0, 10, "abcdefghij", 0, 1, 9);
+ test("abcdefghij", 0, 10, "abcdefghij", 0, 5, 5);
+ test("abcdefghij", 0, 10, "abcdefghij", 0, 9, 1);
+ test("abcdefghij", 0, 10, "abcdefghij", 0, 10, 0);
+ test("abcdefghij", 0, 10, "abcdefghij", 0, 11, 0);
+ test("abcdefghij", 0, 10, "abcdefghij", 1, 0, 10);
+ test("abcdefghij", 0, 10, "abcdefghij", 1, 1, -1);
+ test("abcdefghij", 0, 10, "abcdefghij", 1, 4, -1);
+ test("abcdefghij", 0, 10, "abcdefghij", 1, 8, -1);
+ test("abcdefghij", 0, 10, "abcdefghij", 1, 9, -1);
+ test("abcdefghij", 0, 10, "abcdefghij", 1, 10, -1);
+ test("abcdefghij", 0, 10, "abcdefghij", 5, 0, 10);
+ test("abcdefghij", 0, 10, "abcdefghij", 5, 1, -5);
+ test("abcdefghij", 0, 10, "abcdefghij", 5, 2, -5);
+ test("abcdefghij", 0, 10, "abcdefghij", 5, 4, -5);
+ test("abcdefghij", 0, 10, "abcdefghij", 5, 5, -5);
+ test("abcdefghij", 0, 10, "abcdefghij", 5, 6, -5);
+ test("abcdefghij", 0, 10, "abcdefghij", 9, 0, 10);
+ test("abcdefghij", 0, 10, "abcdefghij", 9, 1, -9);
+ test("abcdefghij", 0, 10, "abcdefghij", 9, 2, -9);
+ test("abcdefghij", 0, 10, "abcdefghij", 10, 0, 10);
+ test("abcdefghij", 0, 10, "abcdefghij", 10, 1, 10);
+ test("abcdefghij", 0, 10, "abcdefghij", 11, 0, 0);
+ test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 0, 0, 10);
+ test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 0, 1, 9);
+ test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 0, 10, 0);
+ test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 0, 19, -9);
+ test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 0, 20, -10);
+ test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 0, 21, -10);
+ test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 1, 0, 10);
+ test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 1, 1, -1);
+ test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 1, 9, -1);
+ test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 1, 18, -1);
+ test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 1, 19, -1);
+ test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 1, 20, -1);
+ test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 10, 0, 10);
+ test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 10, 1, -10);
+ test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 10, 5, -10);
+ test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 10, 9, -10);
+ test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 10, 10, -10);
+ test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 10, 11, -10);
+ test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 19, 0, 10);
+ test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 19, 1, -19);
+ test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 19, 2, -19);
+ test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 20, 0, 10);
+ test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 20, 1, 10);
+ test("abcdefghij", 0, 10, "abcdefghijklmnopqrst", 21, 0, 0);
+ test("abcdefghij", 0, 11, "", 0, 0, 10);
+ test("abcdefghij", 0, 11, "", 0, 1, 10);
+ test("abcdefghij", 0, 11, "", 1, 0, 0);
+ test("abcdefghij", 0, 11, "abcde", 0, 0, 10);
+ test("abcdefghij", 0, 11, "abcde", 0, 1, 9);
+ test("abcdefghij", 0, 11, "abcde", 0, 2, 8);
}
-void test23()
-{
- test("abcdefghij", 0, 11, "abcde", 0, 4, 6);
- test("abcdefghij", 0, 11, "abcde", 0, 5, 5);
- test("abcdefghij", 0, 11, "abcde", 0, 6, 5);
- test("abcdefghij", 0, 11, "abcde", 1, 0, 10);
- test("abcdefghij", 0, 11, "abcde", 1, 1, -1);
- test("abcdefghij", 0, 11, "abcde", 1, 2, -1);
- test("abcdefghij", 0, 11, "abcde", 1, 3, -1);
- test("abcdefghij", 0, 11, "abcde", 1, 4, -1);
- test("abcdefghij", 0, 11, "abcde", 1, 5, -1);
- test("abcdefghij", 0, 11, "abcde", 2, 0, 10);
- test("abcdefghij", 0, 11, "abcde", 2, 1, -2);
- test("abcdefghij", 0, 11, "abcde", 2, 2, -2);
- test("abcdefghij", 0, 11, "abcde", 2, 3, -2);
- test("abcdefghij", 0, 11, "abcde", 2, 4, -2);
- test("abcdefghij", 0, 11, "abcde", 4, 0, 10);
- test("abcdefghij", 0, 11, "abcde", 4, 1, -4);
- test("abcdefghij", 0, 11, "abcde", 4, 2, -4);
- test("abcdefghij", 0, 11, "abcde", 5, 0, 10);
- test("abcdefghij", 0, 11, "abcde", 5, 1, 10);
- test("abcdefghij", 0, 11, "abcde", 6, 0, 0);
- test("abcdefghij", 0, 11, "abcdefghij", 0, 0, 10);
- test("abcdefghij", 0, 11, "abcdefghij", 0, 1, 9);
- test("abcdefghij", 0, 11, "abcdefghij", 0, 5, 5);
- test("abcdefghij", 0, 11, "abcdefghij", 0, 9, 1);
- test("abcdefghij", 0, 11, "abcdefghij", 0, 10, 0);
- test("abcdefghij", 0, 11, "abcdefghij", 0, 11, 0);
- test("abcdefghij", 0, 11, "abcdefghij", 1, 0, 10);
- test("abcdefghij", 0, 11, "abcdefghij", 1, 1, -1);
- test("abcdefghij", 0, 11, "abcdefghij", 1, 4, -1);
- test("abcdefghij", 0, 11, "abcdefghij", 1, 8, -1);
- test("abcdefghij", 0, 11, "abcdefghij", 1, 9, -1);
- test("abcdefghij", 0, 11, "abcdefghij", 1, 10, -1);
- test("abcdefghij", 0, 11, "abcdefghij", 5, 0, 10);
- test("abcdefghij", 0, 11, "abcdefghij", 5, 1, -5);
- test("abcdefghij", 0, 11, "abcdefghij", 5, 2, -5);
- test("abcdefghij", 0, 11, "abcdefghij", 5, 4, -5);
- test("abcdefghij", 0, 11, "abcdefghij", 5, 5, -5);
- test("abcdefghij", 0, 11, "abcdefghij", 5, 6, -5);
- test("abcdefghij", 0, 11, "abcdefghij", 9, 0, 10);
- test("abcdefghij", 0, 11, "abcdefghij", 9, 1, -9);
- test("abcdefghij", 0, 11, "abcdefghij", 9, 2, -9);
- test("abcdefghij", 0, 11, "abcdefghij", 10, 0, 10);
- test("abcdefghij", 0, 11, "abcdefghij", 10, 1, 10);
- test("abcdefghij", 0, 11, "abcdefghij", 11, 0, 0);
- test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 0, 0, 10);
- test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 0, 1, 9);
- test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 0, 10, 0);
- test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 0, 19, -9);
- test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 0, 20, -10);
- test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 0, 21, -10);
- test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 1, 0, 10);
- test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 1, 1, -1);
- test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 1, 9, -1);
- test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 1, 18, -1);
- test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 1, 19, -1);
- test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 1, 20, -1);
- test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 10, 0, 10);
- test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 10, 1, -10);
- test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 10, 5, -10);
- test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 10, 9, -10);
- test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 10, 10, -10);
- test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 10, 11, -10);
- test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 19, 0, 10);
- test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 19, 1, -19);
- test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 19, 2, -19);
- test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 20, 0, 10);
- test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 20, 1, 10);
- test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 21, 0, 0);
- test("abcdefghij", 1, 0, "", 0, 0, 0);
- test("abcdefghij", 1, 0, "", 0, 1, 0);
- test("abcdefghij", 1, 0, "", 1, 0, 0);
- test("abcdefghij", 1, 0, "abcde", 0, 0, 0);
- test("abcdefghij", 1, 0, "abcde", 0, 1, -1);
- test("abcdefghij", 1, 0, "abcde", 0, 2, -2);
- test("abcdefghij", 1, 0, "abcde", 0, 4, -4);
- test("abcdefghij", 1, 0, "abcde", 0, 5, -5);
- test("abcdefghij", 1, 0, "abcde", 0, 6, -5);
- test("abcdefghij", 1, 0, "abcde", 1, 0, 0);
- test("abcdefghij", 1, 0, "abcde", 1, 1, -1);
- test("abcdefghij", 1, 0, "abcde", 1, 2, -2);
- test("abcdefghij", 1, 0, "abcde", 1, 3, -3);
- test("abcdefghij", 1, 0, "abcde", 1, 4, -4);
- test("abcdefghij", 1, 0, "abcde", 1, 5, -4);
- test("abcdefghij", 1, 0, "abcde", 2, 0, 0);
- test("abcdefghij", 1, 0, "abcde", 2, 1, -1);
- test("abcdefghij", 1, 0, "abcde", 2, 2, -2);
- test("abcdefghij", 1, 0, "abcde", 2, 3, -3);
- test("abcdefghij", 1, 0, "abcde", 2, 4, -3);
- test("abcdefghij", 1, 0, "abcde", 4, 0, 0);
- test("abcdefghij", 1, 0, "abcde", 4, 1, -1);
- test("abcdefghij", 1, 0, "abcde", 4, 2, -1);
- test("abcdefghij", 1, 0, "abcde", 5, 0, 0);
- test("abcdefghij", 1, 0, "abcde", 5, 1, 0);
- test("abcdefghij", 1, 0, "abcde", 6, 0, 0);
- test("abcdefghij", 1, 0, "abcdefghij", 0, 0, 0);
- test("abcdefghij", 1, 0, "abcdefghij", 0, 1, -1);
- test("abcdefghij", 1, 0, "abcdefghij", 0, 5, -5);
- test("abcdefghij", 1, 0, "abcdefghij", 0, 9, -9);
- test("abcdefghij", 1, 0, "abcdefghij", 0, 10, -10);
- test("abcdefghij", 1, 0, "abcdefghij", 0, 11, -10);
+void test23() {
+ test("abcdefghij", 0, 11, "abcde", 0, 4, 6);
+ test("abcdefghij", 0, 11, "abcde", 0, 5, 5);
+ test("abcdefghij", 0, 11, "abcde", 0, 6, 5);
+ test("abcdefghij", 0, 11, "abcde", 1, 0, 10);
+ test("abcdefghij", 0, 11, "abcde", 1, 1, -1);
+ test("abcdefghij", 0, 11, "abcde", 1, 2, -1);
+ test("abcdefghij", 0, 11, "abcde", 1, 3, -1);
+ test("abcdefghij", 0, 11, "abcde", 1, 4, -1);
+ test("abcdefghij", 0, 11, "abcde", 1, 5, -1);
+ test("abcdefghij", 0, 11, "abcde", 2, 0, 10);
+ test("abcdefghij", 0, 11, "abcde", 2, 1, -2);
+ test("abcdefghij", 0, 11, "abcde", 2, 2, -2);
+ test("abcdefghij", 0, 11, "abcde", 2, 3, -2);
+ test("abcdefghij", 0, 11, "abcde", 2, 4, -2);
+ test("abcdefghij", 0, 11, "abcde", 4, 0, 10);
+ test("abcdefghij", 0, 11, "abcde", 4, 1, -4);
+ test("abcdefghij", 0, 11, "abcde", 4, 2, -4);
+ test("abcdefghij", 0, 11, "abcde", 5, 0, 10);
+ test("abcdefghij", 0, 11, "abcde", 5, 1, 10);
+ test("abcdefghij", 0, 11, "abcde", 6, 0, 0);
+ test("abcdefghij", 0, 11, "abcdefghij", 0, 0, 10);
+ test("abcdefghij", 0, 11, "abcdefghij", 0, 1, 9);
+ test("abcdefghij", 0, 11, "abcdefghij", 0, 5, 5);
+ test("abcdefghij", 0, 11, "abcdefghij", 0, 9, 1);
+ test("abcdefghij", 0, 11, "abcdefghij", 0, 10, 0);
+ test("abcdefghij", 0, 11, "abcdefghij", 0, 11, 0);
+ test("abcdefghij", 0, 11, "abcdefghij", 1, 0, 10);
+ test("abcdefghij", 0, 11, "abcdefghij", 1, 1, -1);
+ test("abcdefghij", 0, 11, "abcdefghij", 1, 4, -1);
+ test("abcdefghij", 0, 11, "abcdefghij", 1, 8, -1);
+ test("abcdefghij", 0, 11, "abcdefghij", 1, 9, -1);
+ test("abcdefghij", 0, 11, "abcdefghij", 1, 10, -1);
+ test("abcdefghij", 0, 11, "abcdefghij", 5, 0, 10);
+ test("abcdefghij", 0, 11, "abcdefghij", 5, 1, -5);
+ test("abcdefghij", 0, 11, "abcdefghij", 5, 2, -5);
+ test("abcdefghij", 0, 11, "abcdefghij", 5, 4, -5);
+ test("abcdefghij", 0, 11, "abcdefghij", 5, 5, -5);
+ test("abcdefghij", 0, 11, "abcdefghij", 5, 6, -5);
+ test("abcdefghij", 0, 11, "abcdefghij", 9, 0, 10);
+ test("abcdefghij", 0, 11, "abcdefghij", 9, 1, -9);
+ test("abcdefghij", 0, 11, "abcdefghij", 9, 2, -9);
+ test("abcdefghij", 0, 11, "abcdefghij", 10, 0, 10);
+ test("abcdefghij", 0, 11, "abcdefghij", 10, 1, 10);
+ test("abcdefghij", 0, 11, "abcdefghij", 11, 0, 0);
+ test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 0, 0, 10);
+ test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 0, 1, 9);
+ test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 0, 10, 0);
+ test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 0, 19, -9);
+ test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 0, 20, -10);
+ test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 0, 21, -10);
+ test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 1, 0, 10);
+ test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 1, 1, -1);
+ test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 1, 9, -1);
+ test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 1, 18, -1);
+ test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 1, 19, -1);
+ test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 1, 20, -1);
+ test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 10, 0, 10);
+ test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 10, 1, -10);
+ test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 10, 5, -10);
+ test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 10, 9, -10);
+ test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 10, 10, -10);
+ test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 10, 11, -10);
+ test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 19, 0, 10);
+ test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 19, 1, -19);
+ test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 19, 2, -19);
+ test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 20, 0, 10);
+ test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 20, 1, 10);
+ test("abcdefghij", 0, 11, "abcdefghijklmnopqrst", 21, 0, 0);
+ test("abcdefghij", 1, 0, "", 0, 0, 0);
+ test("abcdefghij", 1, 0, "", 0, 1, 0);
+ test("abcdefghij", 1, 0, "", 1, 0, 0);
+ test("abcdefghij", 1, 0, "abcde", 0, 0, 0);
+ test("abcdefghij", 1, 0, "abcde", 0, 1, -1);
+ test("abcdefghij", 1, 0, "abcde", 0, 2, -2);
+ test("abcdefghij", 1, 0, "abcde", 0, 4, -4);
+ test("abcdefghij", 1, 0, "abcde", 0, 5, -5);
+ test("abcdefghij", 1, 0, "abcde", 0, 6, -5);
+ test("abcdefghij", 1, 0, "abcde", 1, 0, 0);
+ test("abcdefghij", 1, 0, "abcde", 1, 1, -1);
+ test("abcdefghij", 1, 0, "abcde", 1, 2, -2);
+ test("abcdefghij", 1, 0, "abcde", 1, 3, -3);
+ test("abcdefghij", 1, 0, "abcde", 1, 4, -4);
+ test("abcdefghij", 1, 0, "abcde", 1, 5, -4);
+ test("abcdefghij", 1, 0, "abcde", 2, 0, 0);
+ test("abcdefghij", 1, 0, "abcde", 2, 1, -1);
+ test("abcdefghij", 1, 0, "abcde", 2, 2, -2);
+ test("abcdefghij", 1, 0, "abcde", 2, 3, -3);
+ test("abcdefghij", 1, 0, "abcde", 2, 4, -3);
+ test("abcdefghij", 1, 0, "abcde", 4, 0, 0);
+ test("abcdefghij", 1, 0, "abcde", 4, 1, -1);
+ test("abcdefghij", 1, 0, "abcde", 4, 2, -1);
+ test("abcdefghij", 1, 0, "abcde", 5, 0, 0);
+ test("abcdefghij", 1, 0, "abcde", 5, 1, 0);
+ test("abcdefghij", 1, 0, "abcde", 6, 0, 0);
+ test("abcdefghij", 1, 0, "abcdefghij", 0, 0, 0);
+ test("abcdefghij", 1, 0, "abcdefghij", 0, 1, -1);
+ test("abcdefghij", 1, 0, "abcdefghij", 0, 5, -5);
+ test("abcdefghij", 1, 0, "abcdefghij", 0, 9, -9);
+ test("abcdefghij", 1, 0, "abcdefghij", 0, 10, -10);
+ test("abcdefghij", 1, 0, "abcdefghij", 0, 11, -10);
}
-void test24()
-{
- test("abcdefghij", 1, 0, "abcdefghij", 1, 0, 0);
- test("abcdefghij", 1, 0, "abcdefghij", 1, 1, -1);
- test("abcdefghij", 1, 0, "abcdefghij", 1, 4, -4);
- test("abcdefghij", 1, 0, "abcdefghij", 1, 8, -8);
- test("abcdefghij", 1, 0, "abcdefghij", 1, 9, -9);
- test("abcdefghij", 1, 0, "abcdefghij", 1, 10, -9);
- test("abcdefghij", 1, 0, "abcdefghij", 5, 0, 0);
- test("abcdefghij", 1, 0, "abcdefghij", 5, 1, -1);
- test("abcdefghij", 1, 0, "abcdefghij", 5, 2, -2);
- test("abcdefghij", 1, 0, "abcdefghij", 5, 4, -4);
- test("abcdefghij", 1, 0, "abcdefghij", 5, 5, -5);
- test("abcdefghij", 1, 0, "abcdefghij", 5, 6, -5);
- test("abcdefghij", 1, 0, "abcdefghij", 9, 0, 0);
- test("abcdefghij", 1, 0, "abcdefghij", 9, 1, -1);
- test("abcdefghij", 1, 0, "abcdefghij", 9, 2, -1);
- test("abcdefghij", 1, 0, "abcdefghij", 10, 0, 0);
- test("abcdefghij", 1, 0, "abcdefghij", 10, 1, 0);
- test("abcdefghij", 1, 0, "abcdefghij", 11, 0, 0);
- test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 0, 0, 0);
- test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 0, 1, -1);
- test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 0, 10, -10);
- test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 0, 19, -19);
- test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 0, 20, -20);
- test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 0, 21, -20);
- test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 1, 0, 0);
- test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 1, 1, -1);
- test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 1, 9, -9);
- test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 1, 18, -18);
- test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 1, 19, -19);
- test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 1, 20, -19);
- test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 10, 0, 0);
- test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 10, 1, -1);
- test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 10, 5, -5);
- test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 10, 9, -9);
- test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 10, 10, -10);
- test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 10, 11, -10);
- test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 19, 0, 0);
- test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 19, 1, -1);
- test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 19, 2, -1);
- test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 20, 0, 0);
- test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 20, 1, 0);
- test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 21, 0, 0);
- test("abcdefghij", 1, 1, "", 0, 0, 1);
- test("abcdefghij", 1, 1, "", 0, 1, 1);
- test("abcdefghij", 1, 1, "", 1, 0, 0);
- test("abcdefghij", 1, 1, "abcde", 0, 0, 1);
- test("abcdefghij", 1, 1, "abcde", 0, 1, 1);
- test("abcdefghij", 1, 1, "abcde", 0, 2, 1);
- test("abcdefghij", 1, 1, "abcde", 0, 4, 1);
- test("abcdefghij", 1, 1, "abcde", 0, 5, 1);
- test("abcdefghij", 1, 1, "abcde", 0, 6, 1);
- test("abcdefghij", 1, 1, "abcde", 1, 0, 1);
- test("abcdefghij", 1, 1, "abcde", 1, 1, 0);
- test("abcdefghij", 1, 1, "abcde", 1, 2, -1);
- test("abcdefghij", 1, 1, "abcde", 1, 3, -2);
- test("abcdefghij", 1, 1, "abcde", 1, 4, -3);
- test("abcdefghij", 1, 1, "abcde", 1, 5, -3);
- test("abcdefghij", 1, 1, "abcde", 2, 0, 1);
- test("abcdefghij", 1, 1, "abcde", 2, 1, -1);
- test("abcdefghij", 1, 1, "abcde", 2, 2, -1);
- test("abcdefghij", 1, 1, "abcde", 2, 3, -1);
- test("abcdefghij", 1, 1, "abcde", 2, 4, -1);
- test("abcdefghij", 1, 1, "abcde", 4, 0, 1);
- test("abcdefghij", 1, 1, "abcde", 4, 1, -3);
- test("abcdefghij", 1, 1, "abcde", 4, 2, -3);
- test("abcdefghij", 1, 1, "abcde", 5, 0, 1);
- test("abcdefghij", 1, 1, "abcde", 5, 1, 1);
- test("abcdefghij", 1, 1, "abcde", 6, 0, 0);
- test("abcdefghij", 1, 1, "abcdefghij", 0, 0, 1);
- test("abcdefghij", 1, 1, "abcdefghij", 0, 1, 1);
- test("abcdefghij", 1, 1, "abcdefghij", 0, 5, 1);
- test("abcdefghij", 1, 1, "abcdefghij", 0, 9, 1);
- test("abcdefghij", 1, 1, "abcdefghij", 0, 10, 1);
- test("abcdefghij", 1, 1, "abcdefghij", 0, 11, 1);
- test("abcdefghij", 1, 1, "abcdefghij", 1, 0, 1);
- test("abcdefghij", 1, 1, "abcdefghij", 1, 1, 0);
- test("abcdefghij", 1, 1, "abcdefghij", 1, 4, -3);
- test("abcdefghij", 1, 1, "abcdefghij", 1, 8, -7);
- test("abcdefghij", 1, 1, "abcdefghij", 1, 9, -8);
- test("abcdefghij", 1, 1, "abcdefghij", 1, 10, -8);
- test("abcdefghij", 1, 1, "abcdefghij", 5, 0, 1);
- test("abcdefghij", 1, 1, "abcdefghij", 5, 1, -4);
- test("abcdefghij", 1, 1, "abcdefghij", 5, 2, -4);
- test("abcdefghij", 1, 1, "abcdefghij", 5, 4, -4);
- test("abcdefghij", 1, 1, "abcdefghij", 5, 5, -4);
- test("abcdefghij", 1, 1, "abcdefghij", 5, 6, -4);
- test("abcdefghij", 1, 1, "abcdefghij", 9, 0, 1);
- test("abcdefghij", 1, 1, "abcdefghij", 9, 1, -8);
- test("abcdefghij", 1, 1, "abcdefghij", 9, 2, -8);
- test("abcdefghij", 1, 1, "abcdefghij", 10, 0, 1);
- test("abcdefghij", 1, 1, "abcdefghij", 10, 1, 1);
- test("abcdefghij", 1, 1, "abcdefghij", 11, 0, 0);
- test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 0, 0, 1);
- test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 0, 1, 1);
- test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 0, 10, 1);
- test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 0, 19, 1);
- test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 0, 20, 1);
- test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 0, 21, 1);
- test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 1, 0, 1);
- test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 1, 1, 0);
+void test24() {
+ test("abcdefghij", 1, 0, "abcdefghij", 1, 0, 0);
+ test("abcdefghij", 1, 0, "abcdefghij", 1, 1, -1);
+ test("abcdefghij", 1, 0, "abcdefghij", 1, 4, -4);
+ test("abcdefghij", 1, 0, "abcdefghij", 1, 8, -8);
+ test("abcdefghij", 1, 0, "abcdefghij", 1, 9, -9);
+ test("abcdefghij", 1, 0, "abcdefghij", 1, 10, -9);
+ test("abcdefghij", 1, 0, "abcdefghij", 5, 0, 0);
+ test("abcdefghij", 1, 0, "abcdefghij", 5, 1, -1);
+ test("abcdefghij", 1, 0, "abcdefghij", 5, 2, -2);
+ test("abcdefghij", 1, 0, "abcdefghij", 5, 4, -4);
+ test("abcdefghij", 1, 0, "abcdefghij", 5, 5, -5);
+ test("abcdefghij", 1, 0, "abcdefghij", 5, 6, -5);
+ test("abcdefghij", 1, 0, "abcdefghij", 9, 0, 0);
+ test("abcdefghij", 1, 0, "abcdefghij", 9, 1, -1);
+ test("abcdefghij", 1, 0, "abcdefghij", 9, 2, -1);
+ test("abcdefghij", 1, 0, "abcdefghij", 10, 0, 0);
+ test("abcdefghij", 1, 0, "abcdefghij", 10, 1, 0);
+ test("abcdefghij", 1, 0, "abcdefghij", 11, 0, 0);
+ test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 0, 0, 0);
+ test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 0, 1, -1);
+ test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 0, 10, -10);
+ test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 0, 19, -19);
+ test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 0, 20, -20);
+ test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 0, 21, -20);
+ test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 1, 0, 0);
+ test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 1, 1, -1);
+ test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 1, 9, -9);
+ test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 1, 18, -18);
+ test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 1, 19, -19);
+ test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 1, 20, -19);
+ test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 10, 0, 0);
+ test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 10, 1, -1);
+ test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 10, 5, -5);
+ test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 10, 9, -9);
+ test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 10, 10, -10);
+ test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 10, 11, -10);
+ test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 19, 0, 0);
+ test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 19, 1, -1);
+ test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 19, 2, -1);
+ test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 20, 0, 0);
+ test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 20, 1, 0);
+ test("abcdefghij", 1, 0, "abcdefghijklmnopqrst", 21, 0, 0);
+ test("abcdefghij", 1, 1, "", 0, 0, 1);
+ test("abcdefghij", 1, 1, "", 0, 1, 1);
+ test("abcdefghij", 1, 1, "", 1, 0, 0);
+ test("abcdefghij", 1, 1, "abcde", 0, 0, 1);
+ test("abcdefghij", 1, 1, "abcde", 0, 1, 1);
+ test("abcdefghij", 1, 1, "abcde", 0, 2, 1);
+ test("abcdefghij", 1, 1, "abcde", 0, 4, 1);
+ test("abcdefghij", 1, 1, "abcde", 0, 5, 1);
+ test("abcdefghij", 1, 1, "abcde", 0, 6, 1);
+ test("abcdefghij", 1, 1, "abcde", 1, 0, 1);
+ test("abcdefghij", 1, 1, "abcde", 1, 1, 0);
+ test("abcdefghij", 1, 1, "abcde", 1, 2, -1);
+ test("abcdefghij", 1, 1, "abcde", 1, 3, -2);
+ test("abcdefghij", 1, 1, "abcde", 1, 4, -3);
+ test("abcdefghij", 1, 1, "abcde", 1, 5, -3);
+ test("abcdefghij", 1, 1, "abcde", 2, 0, 1);
+ test("abcdefghij", 1, 1, "abcde", 2, 1, -1);
+ test("abcdefghij", 1, 1, "abcde", 2, 2, -1);
+ test("abcdefghij", 1, 1, "abcde", 2, 3, -1);
+ test("abcdefghij", 1, 1, "abcde", 2, 4, -1);
+ test("abcdefghij", 1, 1, "abcde", 4, 0, 1);
+ test("abcdefghij", 1, 1, "abcde", 4, 1, -3);
+ test("abcdefghij", 1, 1, "abcde", 4, 2, -3);
+ test("abcdefghij", 1, 1, "abcde", 5, 0, 1);
+ test("abcdefghij", 1, 1, "abcde", 5, 1, 1);
+ test("abcdefghij", 1, 1, "abcde", 6, 0, 0);
+ test("abcdefghij", 1, 1, "abcdefghij", 0, 0, 1);
+ test("abcdefghij", 1, 1, "abcdefghij", 0, 1, 1);
+ test("abcdefghij", 1, 1, "abcdefghij", 0, 5, 1);
+ test("abcdefghij", 1, 1, "abcdefghij", 0, 9, 1);
+ test("abcdefghij", 1, 1, "abcdefghij", 0, 10, 1);
+ test("abcdefghij", 1, 1, "abcdefghij", 0, 11, 1);
+ test("abcdefghij", 1, 1, "abcdefghij", 1, 0, 1);
+ test("abcdefghij", 1, 1, "abcdefghij", 1, 1, 0);
+ test("abcdefghij", 1, 1, "abcdefghij", 1, 4, -3);
+ test("abcdefghij", 1, 1, "abcdefghij", 1, 8, -7);
+ test("abcdefghij", 1, 1, "abcdefghij", 1, 9, -8);
+ test("abcdefghij", 1, 1, "abcdefghij", 1, 10, -8);
+ test("abcdefghij", 1, 1, "abcdefghij", 5, 0, 1);
+ test("abcdefghij", 1, 1, "abcdefghij", 5, 1, -4);
+ test("abcdefghij", 1, 1, "abcdefghij", 5, 2, -4);
+ test("abcdefghij", 1, 1, "abcdefghij", 5, 4, -4);
+ test("abcdefghij", 1, 1, "abcdefghij", 5, 5, -4);
+ test("abcdefghij", 1, 1, "abcdefghij", 5, 6, -4);
+ test("abcdefghij", 1, 1, "abcdefghij", 9, 0, 1);
+ test("abcdefghij", 1, 1, "abcdefghij", 9, 1, -8);
+ test("abcdefghij", 1, 1, "abcdefghij", 9, 2, -8);
+ test("abcdefghij", 1, 1, "abcdefghij", 10, 0, 1);
+ test("abcdefghij", 1, 1, "abcdefghij", 10, 1, 1);
+ test("abcdefghij", 1, 1, "abcdefghij", 11, 0, 0);
+ test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 0, 0, 1);
+ test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 0, 1, 1);
+ test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 0, 10, 1);
+ test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 0, 19, 1);
+ test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 0, 20, 1);
+ test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 0, 21, 1);
+ test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 1, 0, 1);
+ test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 1, 1, 0);
}
-void test25()
-{
- test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 1, 9, -8);
- test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 1, 18, -17);
- test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 1, 19, -18);
- test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 1, 20, -18);
- test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 10, 0, 1);
- test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 10, 1, -9);
- test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 10, 5, -9);
- test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 10, 9, -9);
- test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 10, 10, -9);
- test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 10, 11, -9);
- test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 19, 0, 1);
- test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 19, 1, -18);
- test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 19, 2, -18);
- test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 20, 0, 1);
- test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 20, 1, 1);
- test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 21, 0, 0);
- test("abcdefghij", 1, 4, "", 0, 0, 4);
- test("abcdefghij", 1, 4, "", 0, 1, 4);
- test("abcdefghij", 1, 4, "", 1, 0, 0);
- test("abcdefghij", 1, 4, "abcde", 0, 0, 4);
- test("abcdefghij", 1, 4, "abcde", 0, 1, 1);
- test("abcdefghij", 1, 4, "abcde", 0, 2, 1);
- test("abcdefghij", 1, 4, "abcde", 0, 4, 1);
- test("abcdefghij", 1, 4, "abcde", 0, 5, 1);
- test("abcdefghij", 1, 4, "abcde", 0, 6, 1);
- test("abcdefghij", 1, 4, "abcde", 1, 0, 4);
- test("abcdefghij", 1, 4, "abcde", 1, 1, 3);
- test("abcdefghij", 1, 4, "abcde", 1, 2, 2);
- test("abcdefghij", 1, 4, "abcde", 1, 3, 1);
- test("abcdefghij", 1, 4, "abcde", 1, 4, 0);
- test("abcdefghij", 1, 4, "abcde", 1, 5, 0);
- test("abcdefghij", 1, 4, "abcde", 2, 0, 4);
- test("abcdefghij", 1, 4, "abcde", 2, 1, -1);
- test("abcdefghij", 1, 4, "abcde", 2, 2, -1);
- test("abcdefghij", 1, 4, "abcde", 2, 3, -1);
- test("abcdefghij", 1, 4, "abcde", 2, 4, -1);
- test("abcdefghij", 1, 4, "abcde", 4, 0, 4);
- test("abcdefghij", 1, 4, "abcde", 4, 1, -3);
- test("abcdefghij", 1, 4, "abcde", 4, 2, -3);
- test("abcdefghij", 1, 4, "abcde", 5, 0, 4);
- test("abcdefghij", 1, 4, "abcde", 5, 1, 4);
- test("abcdefghij", 1, 4, "abcde", 6, 0, 0);
- test("abcdefghij", 1, 4, "abcdefghij", 0, 0, 4);
- test("abcdefghij", 1, 4, "abcdefghij", 0, 1, 1);
- test("abcdefghij", 1, 4, "abcdefghij", 0, 5, 1);
- test("abcdefghij", 1, 4, "abcdefghij", 0, 9, 1);
- test("abcdefghij", 1, 4, "abcdefghij", 0, 10, 1);
- test("abcdefghij", 1, 4, "abcdefghij", 0, 11, 1);
- test("abcdefghij", 1, 4, "abcdefghij", 1, 0, 4);
- test("abcdefghij", 1, 4, "abcdefghij", 1, 1, 3);
- test("abcdefghij", 1, 4, "abcdefghij", 1, 4, 0);
- test("abcdefghij", 1, 4, "abcdefghij", 1, 8, -4);
- test("abcdefghij", 1, 4, "abcdefghij", 1, 9, -5);
- test("abcdefghij", 1, 4, "abcdefghij", 1, 10, -5);
- test("abcdefghij", 1, 4, "abcdefghij", 5, 0, 4);
- test("abcdefghij", 1, 4, "abcdefghij", 5, 1, -4);
- test("abcdefghij", 1, 4, "abcdefghij", 5, 2, -4);
- test("abcdefghij", 1, 4, "abcdefghij", 5, 4, -4);
- test("abcdefghij", 1, 4, "abcdefghij", 5, 5, -4);
- test("abcdefghij", 1, 4, "abcdefghij", 5, 6, -4);
- test("abcdefghij", 1, 4, "abcdefghij", 9, 0, 4);
- test("abcdefghij", 1, 4, "abcdefghij", 9, 1, -8);
- test("abcdefghij", 1, 4, "abcdefghij", 9, 2, -8);
- test("abcdefghij", 1, 4, "abcdefghij", 10, 0, 4);
- test("abcdefghij", 1, 4, "abcdefghij", 10, 1, 4);
- test("abcdefghij", 1, 4, "abcdefghij", 11, 0, 0);
- test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 0, 0, 4);
- test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 0, 1, 1);
- test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 0, 10, 1);
- test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 0, 19, 1);
- test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 0, 20, 1);
- test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 0, 21, 1);
- test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 1, 0, 4);
- test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 1, 1, 3);
- test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 1, 9, -5);
- test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 1, 18, -14);
- test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 1, 19, -15);
- test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 1, 20, -15);
- test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 10, 0, 4);
- test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 10, 1, -9);
- test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 10, 5, -9);
- test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 10, 9, -9);
- test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 10, 10, -9);
- test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 10, 11, -9);
- test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 19, 0, 4);
- test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 19, 1, -18);
- test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 19, 2, -18);
- test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 20, 0, 4);
- test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 20, 1, 4);
- test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 21, 0, 0);
- test("abcdefghij", 1, 8, "", 0, 0, 8);
- test("abcdefghij", 1, 8, "", 0, 1, 8);
- test("abcdefghij", 1, 8, "", 1, 0, 0);
- test("abcdefghij", 1, 8, "abcde", 0, 0, 8);
- test("abcdefghij", 1, 8, "abcde", 0, 1, 1);
- test("abcdefghij", 1, 8, "abcde", 0, 2, 1);
- test("abcdefghij", 1, 8, "abcde", 0, 4, 1);
- test("abcdefghij", 1, 8, "abcde", 0, 5, 1);
- test("abcdefghij", 1, 8, "abcde", 0, 6, 1);
- test("abcdefghij", 1, 8, "abcde", 1, 0, 8);
+void test25() {
+ test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 1, 9, -8);
+ test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 1, 18, -17);
+ test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 1, 19, -18);
+ test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 1, 20, -18);
+ test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 10, 0, 1);
+ test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 10, 1, -9);
+ test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 10, 5, -9);
+ test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 10, 9, -9);
+ test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 10, 10, -9);
+ test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 10, 11, -9);
+ test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 19, 0, 1);
+ test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 19, 1, -18);
+ test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 19, 2, -18);
+ test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 20, 0, 1);
+ test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 20, 1, 1);
+ test("abcdefghij", 1, 1, "abcdefghijklmnopqrst", 21, 0, 0);
+ test("abcdefghij", 1, 4, "", 0, 0, 4);
+ test("abcdefghij", 1, 4, "", 0, 1, 4);
+ test("abcdefghij", 1, 4, "", 1, 0, 0);
+ test("abcdefghij", 1, 4, "abcde", 0, 0, 4);
+ test("abcdefghij", 1, 4, "abcde", 0, 1, 1);
+ test("abcdefghij", 1, 4, "abcde", 0, 2, 1);
+ test("abcdefghij", 1, 4, "abcde", 0, 4, 1);
+ test("abcdefghij", 1, 4, "abcde", 0, 5, 1);
+ test("abcdefghij", 1, 4, "abcde", 0, 6, 1);
+ test("abcdefghij", 1, 4, "abcde", 1, 0, 4);
+ test("abcdefghij", 1, 4, "abcde", 1, 1, 3);
+ test("abcdefghij", 1, 4, "abcde", 1, 2, 2);
+ test("abcdefghij", 1, 4, "abcde", 1, 3, 1);
+ test("abcdefghij", 1, 4, "abcde", 1, 4, 0);
+ test("abcdefghij", 1, 4, "abcde", 1, 5, 0);
+ test("abcdefghij", 1, 4, "abcde", 2, 0, 4);
+ test("abcdefghij", 1, 4, "abcde", 2, 1, -1);
+ test("abcdefghij", 1, 4, "abcde", 2, 2, -1);
+ test("abcdefghij", 1, 4, "abcde", 2, 3, -1);
+ test("abcdefghij", 1, 4, "abcde", 2, 4, -1);
+ test("abcdefghij", 1, 4, "abcde", 4, 0, 4);
+ test("abcdefghij", 1, 4, "abcde", 4, 1, -3);
+ test("abcdefghij", 1, 4, "abcde", 4, 2, -3);
+ test("abcdefghij", 1, 4, "abcde", 5, 0, 4);
+ test("abcdefghij", 1, 4, "abcde", 5, 1, 4);
+ test("abcdefghij", 1, 4, "abcde", 6, 0, 0);
+ test("abcdefghij", 1, 4, "abcdefghij", 0, 0, 4);
+ test("abcdefghij", 1, 4, "abcdefghij", 0, 1, 1);
+ test("abcdefghij", 1, 4, "abcdefghij", 0, 5, 1);
+ test("abcdefghij", 1, 4, "abcdefghij", 0, 9, 1);
+ test("abcdefghij", 1, 4, "abcdefghij", 0, 10, 1);
+ test("abcdefghij", 1, 4, "abcdefghij", 0, 11, 1);
+ test("abcdefghij", 1, 4, "abcdefghij", 1, 0, 4);
+ test("abcdefghij", 1, 4, "abcdefghij", 1, 1, 3);
+ test("abcdefghij", 1, 4, "abcdefghij", 1, 4, 0);
+ test("abcdefghij", 1, 4, "abcdefghij", 1, 8, -4);
+ test("abcdefghij", 1, 4, "abcdefghij", 1, 9, -5);
+ test("abcdefghij", 1, 4, "abcdefghij", 1, 10, -5);
+ test("abcdefghij", 1, 4, "abcdefghij", 5, 0, 4);
+ test("abcdefghij", 1, 4, "abcdefghij", 5, 1, -4);
+ test("abcdefghij", 1, 4, "abcdefghij", 5, 2, -4);
+ test("abcdefghij", 1, 4, "abcdefghij", 5, 4, -4);
+ test("abcdefghij", 1, 4, "abcdefghij", 5, 5, -4);
+ test("abcdefghij", 1, 4, "abcdefghij", 5, 6, -4);
+ test("abcdefghij", 1, 4, "abcdefghij", 9, 0, 4);
+ test("abcdefghij", 1, 4, "abcdefghij", 9, 1, -8);
+ test("abcdefghij", 1, 4, "abcdefghij", 9, 2, -8);
+ test("abcdefghij", 1, 4, "abcdefghij", 10, 0, 4);
+ test("abcdefghij", 1, 4, "abcdefghij", 10, 1, 4);
+ test("abcdefghij", 1, 4, "abcdefghij", 11, 0, 0);
+ test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 0, 0, 4);
+ test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 0, 1, 1);
+ test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 0, 10, 1);
+ test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 0, 19, 1);
+ test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 0, 20, 1);
+ test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 0, 21, 1);
+ test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 1, 0, 4);
+ test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 1, 1, 3);
+ test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 1, 9, -5);
+ test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 1, 18, -14);
+ test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 1, 19, -15);
+ test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 1, 20, -15);
+ test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 10, 0, 4);
+ test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 10, 1, -9);
+ test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 10, 5, -9);
+ test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 10, 9, -9);
+ test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 10, 10, -9);
+ test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 10, 11, -9);
+ test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 19, 0, 4);
+ test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 19, 1, -18);
+ test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 19, 2, -18);
+ test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 20, 0, 4);
+ test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 20, 1, 4);
+ test("abcdefghij", 1, 4, "abcdefghijklmnopqrst", 21, 0, 0);
+ test("abcdefghij", 1, 8, "", 0, 0, 8);
+ test("abcdefghij", 1, 8, "", 0, 1, 8);
+ test("abcdefghij", 1, 8, "", 1, 0, 0);
+ test("abcdefghij", 1, 8, "abcde", 0, 0, 8);
+ test("abcdefghij", 1, 8, "abcde", 0, 1, 1);
+ test("abcdefghij", 1, 8, "abcde", 0, 2, 1);
+ test("abcdefghij", 1, 8, "abcde", 0, 4, 1);
+ test("abcdefghij", 1, 8, "abcde", 0, 5, 1);
+ test("abcdefghij", 1, 8, "abcde", 0, 6, 1);
+ test("abcdefghij", 1, 8, "abcde", 1, 0, 8);
}
-void test26()
-{
- test("abcdefghij", 1, 8, "abcde", 1, 1, 7);
- test("abcdefghij", 1, 8, "abcde", 1, 2, 6);
- test("abcdefghij", 1, 8, "abcde", 1, 3, 5);
- test("abcdefghij", 1, 8, "abcde", 1, 4, 4);
- test("abcdefghij", 1, 8, "abcde", 1, 5, 4);
- test("abcdefghij", 1, 8, "abcde", 2, 0, 8);
- test("abcdefghij", 1, 8, "abcde", 2, 1, -1);
- test("abcdefghij", 1, 8, "abcde", 2, 2, -1);
- test("abcdefghij", 1, 8, "abcde", 2, 3, -1);
- test("abcdefghij", 1, 8, "abcde", 2, 4, -1);
- test("abcdefghij", 1, 8, "abcde", 4, 0, 8);
- test("abcdefghij", 1, 8, "abcde", 4, 1, -3);
- test("abcdefghij", 1, 8, "abcde", 4, 2, -3);
- test("abcdefghij", 1, 8, "abcde", 5, 0, 8);
- test("abcdefghij", 1, 8, "abcde", 5, 1, 8);
- test("abcdefghij", 1, 8, "abcde", 6, 0, 0);
- test("abcdefghij", 1, 8, "abcdefghij", 0, 0, 8);
- test("abcdefghij", 1, 8, "abcdefghij", 0, 1, 1);
- test("abcdefghij", 1, 8, "abcdefghij", 0, 5, 1);
- test("abcdefghij", 1, 8, "abcdefghij", 0, 9, 1);
- test("abcdefghij", 1, 8, "abcdefghij", 0, 10, 1);
- test("abcdefghij", 1, 8, "abcdefghij", 0, 11, 1);
- test("abcdefghij", 1, 8, "abcdefghij", 1, 0, 8);
- test("abcdefghij", 1, 8, "abcdefghij", 1, 1, 7);
- test("abcdefghij", 1, 8, "abcdefghij", 1, 4, 4);
- test("abcdefghij", 1, 8, "abcdefghij", 1, 8, 0);
- test("abcdefghij", 1, 8, "abcdefghij", 1, 9, -1);
- test("abcdefghij", 1, 8, "abcdefghij", 1, 10, -1);
- test("abcdefghij", 1, 8, "abcdefghij", 5, 0, 8);
- test("abcdefghij", 1, 8, "abcdefghij", 5, 1, -4);
- test("abcdefghij", 1, 8, "abcdefghij", 5, 2, -4);
- test("abcdefghij", 1, 8, "abcdefghij", 5, 4, -4);
- test("abcdefghij", 1, 8, "abcdefghij", 5, 5, -4);
- test("abcdefghij", 1, 8, "abcdefghij", 5, 6, -4);
- test("abcdefghij", 1, 8, "abcdefghij", 9, 0, 8);
- test("abcdefghij", 1, 8, "abcdefghij", 9, 1, -8);
- test("abcdefghij", 1, 8, "abcdefghij", 9, 2, -8);
- test("abcdefghij", 1, 8, "abcdefghij", 10, 0, 8);
- test("abcdefghij", 1, 8, "abcdefghij", 10, 1, 8);
- test("abcdefghij", 1, 8, "abcdefghij", 11, 0, 0);
- test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 0, 0, 8);
- test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 0, 1, 1);
- test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 0, 10, 1);
- test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 0, 19, 1);
- test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 0, 20, 1);
- test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 0, 21, 1);
- test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 1, 0, 8);
- test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 1, 1, 7);
- test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 1, 9, -1);
- test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 1, 18, -10);
- test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 1, 19, -11);
- test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 1, 20, -11);
- test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 10, 0, 8);
- test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 10, 1, -9);
- test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 10, 5, -9);
- test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 10, 9, -9);
- test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 10, 10, -9);
- test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 10, 11, -9);
- test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 19, 0, 8);
- test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 19, 1, -18);
- test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 19, 2, -18);
- test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 20, 0, 8);
- test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 20, 1, 8);
- test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 21, 0, 0);
- test("abcdefghij", 1, 9, "", 0, 0, 9);
- test("abcdefghij", 1, 9, "", 0, 1, 9);
- test("abcdefghij", 1, 9, "", 1, 0, 0);
- test("abcdefghij", 1, 9, "abcde", 0, 0, 9);
- test("abcdefghij", 1, 9, "abcde", 0, 1, 1);
- test("abcdefghij", 1, 9, "abcde", 0, 2, 1);
- test("abcdefghij", 1, 9, "abcde", 0, 4, 1);
- test("abcdefghij", 1, 9, "abcde", 0, 5, 1);
- test("abcdefghij", 1, 9, "abcde", 0, 6, 1);
- test("abcdefghij", 1, 9, "abcde", 1, 0, 9);
- test("abcdefghij", 1, 9, "abcde", 1, 1, 8);
- test("abcdefghij", 1, 9, "abcde", 1, 2, 7);
- test("abcdefghij", 1, 9, "abcde", 1, 3, 6);
- test("abcdefghij", 1, 9, "abcde", 1, 4, 5);
- test("abcdefghij", 1, 9, "abcde", 1, 5, 5);
- test("abcdefghij", 1, 9, "abcde", 2, 0, 9);
- test("abcdefghij", 1, 9, "abcde", 2, 1, -1);
- test("abcdefghij", 1, 9, "abcde", 2, 2, -1);
- test("abcdefghij", 1, 9, "abcde", 2, 3, -1);
- test("abcdefghij", 1, 9, "abcde", 2, 4, -1);
- test("abcdefghij", 1, 9, "abcde", 4, 0, 9);
- test("abcdefghij", 1, 9, "abcde", 4, 1, -3);
- test("abcdefghij", 1, 9, "abcde", 4, 2, -3);
- test("abcdefghij", 1, 9, "abcde", 5, 0, 9);
- test("abcdefghij", 1, 9, "abcde", 5, 1, 9);
- test("abcdefghij", 1, 9, "abcde", 6, 0, 0);
- test("abcdefghij", 1, 9, "abcdefghij", 0, 0, 9);
- test("abcdefghij", 1, 9, "abcdefghij", 0, 1, 1);
- test("abcdefghij", 1, 9, "abcdefghij", 0, 5, 1);
- test("abcdefghij", 1, 9, "abcdefghij", 0, 9, 1);
- test("abcdefghij", 1, 9, "abcdefghij", 0, 10, 1);
- test("abcdefghij", 1, 9, "abcdefghij", 0, 11, 1);
- test("abcdefghij", 1, 9, "abcdefghij", 1, 0, 9);
- test("abcdefghij", 1, 9, "abcdefghij", 1, 1, 8);
- test("abcdefghij", 1, 9, "abcdefghij", 1, 4, 5);
- test("abcdefghij", 1, 9, "abcdefghij", 1, 8, 1);
+void test26() {
+ test("abcdefghij", 1, 8, "abcde", 1, 1, 7);
+ test("abcdefghij", 1, 8, "abcde", 1, 2, 6);
+ test("abcdefghij", 1, 8, "abcde", 1, 3, 5);
+ test("abcdefghij", 1, 8, "abcde", 1, 4, 4);
+ test("abcdefghij", 1, 8, "abcde", 1, 5, 4);
+ test("abcdefghij", 1, 8, "abcde", 2, 0, 8);
+ test("abcdefghij", 1, 8, "abcde", 2, 1, -1);
+ test("abcdefghij", 1, 8, "abcde", 2, 2, -1);
+ test("abcdefghij", 1, 8, "abcde", 2, 3, -1);
+ test("abcdefghij", 1, 8, "abcde", 2, 4, -1);
+ test("abcdefghij", 1, 8, "abcde", 4, 0, 8);
+ test("abcdefghij", 1, 8, "abcde", 4, 1, -3);
+ test("abcdefghij", 1, 8, "abcde", 4, 2, -3);
+ test("abcdefghij", 1, 8, "abcde", 5, 0, 8);
+ test("abcdefghij", 1, 8, "abcde", 5, 1, 8);
+ test("abcdefghij", 1, 8, "abcde", 6, 0, 0);
+ test("abcdefghij", 1, 8, "abcdefghij", 0, 0, 8);
+ test("abcdefghij", 1, 8, "abcdefghij", 0, 1, 1);
+ test("abcdefghij", 1, 8, "abcdefghij", 0, 5, 1);
+ test("abcdefghij", 1, 8, "abcdefghij", 0, 9, 1);
+ test("abcdefghij", 1, 8, "abcdefghij", 0, 10, 1);
+ test("abcdefghij", 1, 8, "abcdefghij", 0, 11, 1);
+ test("abcdefghij", 1, 8, "abcdefghij", 1, 0, 8);
+ test("abcdefghij", 1, 8, "abcdefghij", 1, 1, 7);
+ test("abcdefghij", 1, 8, "abcdefghij", 1, 4, 4);
+ test("abcdefghij", 1, 8, "abcdefghij", 1, 8, 0);
+ test("abcdefghij", 1, 8, "abcdefghij", 1, 9, -1);
+ test("abcdefghij", 1, 8, "abcdefghij", 1, 10, -1);
+ test("abcdefghij", 1, 8, "abcdefghij", 5, 0, 8);
+ test("abcdefghij", 1, 8, "abcdefghij", 5, 1, -4);
+ test("abcdefghij", 1, 8, "abcdefghij", 5, 2, -4);
+ test("abcdefghij", 1, 8, "abcdefghij", 5, 4, -4);
+ test("abcdefghij", 1, 8, "abcdefghij", 5, 5, -4);
+ test("abcdefghij", 1, 8, "abcdefghij", 5, 6, -4);
+ test("abcdefghij", 1, 8, "abcdefghij", 9, 0, 8);
+ test("abcdefghij", 1, 8, "abcdefghij", 9, 1, -8);
+ test("abcdefghij", 1, 8, "abcdefghij", 9, 2, -8);
+ test("abcdefghij", 1, 8, "abcdefghij", 10, 0, 8);
+ test("abcdefghij", 1, 8, "abcdefghij", 10, 1, 8);
+ test("abcdefghij", 1, 8, "abcdefghij", 11, 0, 0);
+ test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 0, 0, 8);
+ test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 0, 1, 1);
+ test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 0, 10, 1);
+ test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 0, 19, 1);
+ test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 0, 20, 1);
+ test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 0, 21, 1);
+ test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 1, 0, 8);
+ test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 1, 1, 7);
+ test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 1, 9, -1);
+ test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 1, 18, -10);
+ test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 1, 19, -11);
+ test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 1, 20, -11);
+ test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 10, 0, 8);
+ test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 10, 1, -9);
+ test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 10, 5, -9);
+ test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 10, 9, -9);
+ test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 10, 10, -9);
+ test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 10, 11, -9);
+ test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 19, 0, 8);
+ test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 19, 1, -18);
+ test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 19, 2, -18);
+ test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 20, 0, 8);
+ test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 20, 1, 8);
+ test("abcdefghij", 1, 8, "abcdefghijklmnopqrst", 21, 0, 0);
+ test("abcdefghij", 1, 9, "", 0, 0, 9);
+ test("abcdefghij", 1, 9, "", 0, 1, 9);
+ test("abcdefghij", 1, 9, "", 1, 0, 0);
+ test("abcdefghij", 1, 9, "abcde", 0, 0, 9);
+ test("abcdefghij", 1, 9, "abcde", 0, 1, 1);
+ test("abcdefghij", 1, 9, "abcde", 0, 2, 1);
+ test("abcdefghij", 1, 9, "abcde", 0, 4, 1);
+ test("abcdefghij", 1, 9, "abcde", 0, 5, 1);
+ test("abcdefghij", 1, 9, "abcde", 0, 6, 1);
+ test("abcdefghij", 1, 9, "abcde", 1, 0, 9);
+ test("abcdefghij", 1, 9, "abcde", 1, 1, 8);
+ test("abcdefghij", 1, 9, "abcde", 1, 2, 7);
+ test("abcdefghij", 1, 9, "abcde", 1, 3, 6);
+ test("abcdefghij", 1, 9, "abcde", 1, 4, 5);
+ test("abcdefghij", 1, 9, "abcde", 1, 5, 5);
+ test("abcdefghij", 1, 9, "abcde", 2, 0, 9);
+ test("abcdefghij", 1, 9, "abcde", 2, 1, -1);
+ test("abcdefghij", 1, 9, "abcde", 2, 2, -1);
+ test("abcdefghij", 1, 9, "abcde", 2, 3, -1);
+ test("abcdefghij", 1, 9, "abcde", 2, 4, -1);
+ test("abcdefghij", 1, 9, "abcde", 4, 0, 9);
+ test("abcdefghij", 1, 9, "abcde", 4, 1, -3);
+ test("abcdefghij", 1, 9, "abcde", 4, 2, -3);
+ test("abcdefghij", 1, 9, "abcde", 5, 0, 9);
+ test("abcdefghij", 1, 9, "abcde", 5, 1, 9);
+ test("abcdefghij", 1, 9, "abcde", 6, 0, 0);
+ test("abcdefghij", 1, 9, "abcdefghij", 0, 0, 9);
+ test("abcdefghij", 1, 9, "abcdefghij", 0, 1, 1);
+ test("abcdefghij", 1, 9, "abcdefghij", 0, 5, 1);
+ test("abcdefghij", 1, 9, "abcdefghij", 0, 9, 1);
+ test("abcdefghij", 1, 9, "abcdefghij", 0, 10, 1);
+ test("abcdefghij", 1, 9, "abcdefghij", 0, 11, 1);
+ test("abcdefghij", 1, 9, "abcdefghij", 1, 0, 9);
+ test("abcdefghij", 1, 9, "abcdefghij", 1, 1, 8);
+ test("abcdefghij", 1, 9, "abcdefghij", 1, 4, 5);
+ test("abcdefghij", 1, 9, "abcdefghij", 1, 8, 1);
}
-void test27()
-{
- test("abcdefghij", 1, 9, "abcdefghij", 1, 9, 0);
- test("abcdefghij", 1, 9, "abcdefghij", 1, 10, 0);
- test("abcdefghij", 1, 9, "abcdefghij", 5, 0, 9);
- test("abcdefghij", 1, 9, "abcdefghij", 5, 1, -4);
- test("abcdefghij", 1, 9, "abcdefghij", 5, 2, -4);
- test("abcdefghij", 1, 9, "abcdefghij", 5, 4, -4);
- test("abcdefghij", 1, 9, "abcdefghij", 5, 5, -4);
- test("abcdefghij", 1, 9, "abcdefghij", 5, 6, -4);
- test("abcdefghij", 1, 9, "abcdefghij", 9, 0, 9);
- test("abcdefghij", 1, 9, "abcdefghij", 9, 1, -8);
- test("abcdefghij", 1, 9, "abcdefghij", 9, 2, -8);
- test("abcdefghij", 1, 9, "abcdefghij", 10, 0, 9);
- test("abcdefghij", 1, 9, "abcdefghij", 10, 1, 9);
- test("abcdefghij", 1, 9, "abcdefghij", 11, 0, 0);
- test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 0, 0, 9);
- test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 0, 1, 1);
- test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 0, 10, 1);
- test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 0, 19, 1);
- test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 0, 20, 1);
- test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 0, 21, 1);
- test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 1, 0, 9);
- test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 1, 1, 8);
- test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 1, 9, 0);
- test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 1, 18, -9);
- test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 1, 19, -10);
- test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 1, 20, -10);
- test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 10, 0, 9);
- test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 10, 1, -9);
- test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 10, 5, -9);
- test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 10, 9, -9);
- test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 10, 10, -9);
- test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 10, 11, -9);
- test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 19, 0, 9);
- test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 19, 1, -18);
- test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 19, 2, -18);
- test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 20, 0, 9);
- test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 20, 1, 9);
- test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 21, 0, 0);
- test("abcdefghij", 1, 10, "", 0, 0, 9);
- test("abcdefghij", 1, 10, "", 0, 1, 9);
- test("abcdefghij", 1, 10, "", 1, 0, 0);
- test("abcdefghij", 1, 10, "abcde", 0, 0, 9);
- test("abcdefghij", 1, 10, "abcde", 0, 1, 1);
- test("abcdefghij", 1, 10, "abcde", 0, 2, 1);
- test("abcdefghij", 1, 10, "abcde", 0, 4, 1);
- test("abcdefghij", 1, 10, "abcde", 0, 5, 1);
- test("abcdefghij", 1, 10, "abcde", 0, 6, 1);
- test("abcdefghij", 1, 10, "abcde", 1, 0, 9);
- test("abcdefghij", 1, 10, "abcde", 1, 1, 8);
- test("abcdefghij", 1, 10, "abcde", 1, 2, 7);
- test("abcdefghij", 1, 10, "abcde", 1, 3, 6);
- test("abcdefghij", 1, 10, "abcde", 1, 4, 5);
- test("abcdefghij", 1, 10, "abcde", 1, 5, 5);
- test("abcdefghij", 1, 10, "abcde", 2, 0, 9);
- test("abcdefghij", 1, 10, "abcde", 2, 1, -1);
- test("abcdefghij", 1, 10, "abcde", 2, 2, -1);
- test("abcdefghij", 1, 10, "abcde", 2, 3, -1);
- test("abcdefghij", 1, 10, "abcde", 2, 4, -1);
- test("abcdefghij", 1, 10, "abcde", 4, 0, 9);
- test("abcdefghij", 1, 10, "abcde", 4, 1, -3);
- test("abcdefghij", 1, 10, "abcde", 4, 2, -3);
- test("abcdefghij", 1, 10, "abcde", 5, 0, 9);
- test("abcdefghij", 1, 10, "abcde", 5, 1, 9);
- test("abcdefghij", 1, 10, "abcde", 6, 0, 0);
- test("abcdefghij", 1, 10, "abcdefghij", 0, 0, 9);
- test("abcdefghij", 1, 10, "abcdefghij", 0, 1, 1);
- test("abcdefghij", 1, 10, "abcdefghij", 0, 5, 1);
- test("abcdefghij", 1, 10, "abcdefghij", 0, 9, 1);
- test("abcdefghij", 1, 10, "abcdefghij", 0, 10, 1);
- test("abcdefghij", 1, 10, "abcdefghij", 0, 11, 1);
- test("abcdefghij", 1, 10, "abcdefghij", 1, 0, 9);
- test("abcdefghij", 1, 10, "abcdefghij", 1, 1, 8);
- test("abcdefghij", 1, 10, "abcdefghij", 1, 4, 5);
- test("abcdefghij", 1, 10, "abcdefghij", 1, 8, 1);
- test("abcdefghij", 1, 10, "abcdefghij", 1, 9, 0);
- test("abcdefghij", 1, 10, "abcdefghij", 1, 10, 0);
- test("abcdefghij", 1, 10, "abcdefghij", 5, 0, 9);
- test("abcdefghij", 1, 10, "abcdefghij", 5, 1, -4);
- test("abcdefghij", 1, 10, "abcdefghij", 5, 2, -4);
- test("abcdefghij", 1, 10, "abcdefghij", 5, 4, -4);
- test("abcdefghij", 1, 10, "abcdefghij", 5, 5, -4);
- test("abcdefghij", 1, 10, "abcdefghij", 5, 6, -4);
- test("abcdefghij", 1, 10, "abcdefghij", 9, 0, 9);
- test("abcdefghij", 1, 10, "abcdefghij", 9, 1, -8);
- test("abcdefghij", 1, 10, "abcdefghij", 9, 2, -8);
- test("abcdefghij", 1, 10, "abcdefghij", 10, 0, 9);
- test("abcdefghij", 1, 10, "abcdefghij", 10, 1, 9);
- test("abcdefghij", 1, 10, "abcdefghij", 11, 0, 0);
- test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 0, 0, 9);
- test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 0, 1, 1);
- test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 0, 10, 1);
- test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 0, 19, 1);
- test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 0, 20, 1);
- test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 0, 21, 1);
- test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 1, 0, 9);
- test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 1, 1, 8);
- test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 1, 9, 0);
- test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 1, 18, -9);
- test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 1, 19, -10);
- test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 1, 20, -10);
+void test27() {
+ test("abcdefghij", 1, 9, "abcdefghij", 1, 9, 0);
+ test("abcdefghij", 1, 9, "abcdefghij", 1, 10, 0);
+ test("abcdefghij", 1, 9, "abcdefghij", 5, 0, 9);
+ test("abcdefghij", 1, 9, "abcdefghij", 5, 1, -4);
+ test("abcdefghij", 1, 9, "abcdefghij", 5, 2, -4);
+ test("abcdefghij", 1, 9, "abcdefghij", 5, 4, -4);
+ test("abcdefghij", 1, 9, "abcdefghij", 5, 5, -4);
+ test("abcdefghij", 1, 9, "abcdefghij", 5, 6, -4);
+ test("abcdefghij", 1, 9, "abcdefghij", 9, 0, 9);
+ test("abcdefghij", 1, 9, "abcdefghij", 9, 1, -8);
+ test("abcdefghij", 1, 9, "abcdefghij", 9, 2, -8);
+ test("abcdefghij", 1, 9, "abcdefghij", 10, 0, 9);
+ test("abcdefghij", 1, 9, "abcdefghij", 10, 1, 9);
+ test("abcdefghij", 1, 9, "abcdefghij", 11, 0, 0);
+ test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 0, 0, 9);
+ test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 0, 1, 1);
+ test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 0, 10, 1);
+ test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 0, 19, 1);
+ test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 0, 20, 1);
+ test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 0, 21, 1);
+ test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 1, 0, 9);
+ test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 1, 1, 8);
+ test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 1, 9, 0);
+ test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 1, 18, -9);
+ test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 1, 19, -10);
+ test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 1, 20, -10);
+ test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 10, 0, 9);
+ test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 10, 1, -9);
+ test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 10, 5, -9);
+ test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 10, 9, -9);
+ test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 10, 10, -9);
+ test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 10, 11, -9);
+ test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 19, 0, 9);
+ test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 19, 1, -18);
+ test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 19, 2, -18);
+ test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 20, 0, 9);
+ test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 20, 1, 9);
+ test("abcdefghij", 1, 9, "abcdefghijklmnopqrst", 21, 0, 0);
+ test("abcdefghij", 1, 10, "", 0, 0, 9);
+ test("abcdefghij", 1, 10, "", 0, 1, 9);
+ test("abcdefghij", 1, 10, "", 1, 0, 0);
+ test("abcdefghij", 1, 10, "abcde", 0, 0, 9);
+ test("abcdefghij", 1, 10, "abcde", 0, 1, 1);
+ test("abcdefghij", 1, 10, "abcde", 0, 2, 1);
+ test("abcdefghij", 1, 10, "abcde", 0, 4, 1);
+ test("abcdefghij", 1, 10, "abcde", 0, 5, 1);
+ test("abcdefghij", 1, 10, "abcde", 0, 6, 1);
+ test("abcdefghij", 1, 10, "abcde", 1, 0, 9);
+ test("abcdefghij", 1, 10, "abcde", 1, 1, 8);
+ test("abcdefghij", 1, 10, "abcde", 1, 2, 7);
+ test("abcdefghij", 1, 10, "abcde", 1, 3, 6);
+ test("abcdefghij", 1, 10, "abcde", 1, 4, 5);
+ test("abcdefghij", 1, 10, "abcde", 1, 5, 5);
+ test("abcdefghij", 1, 10, "abcde", 2, 0, 9);
+ test("abcdefghij", 1, 10, "abcde", 2, 1, -1);
+ test("abcdefghij", 1, 10, "abcde", 2, 2, -1);
+ test("abcdefghij", 1, 10, "abcde", 2, 3, -1);
+ test("abcdefghij", 1, 10, "abcde", 2, 4, -1);
+ test("abcdefghij", 1, 10, "abcde", 4, 0, 9);
+ test("abcdefghij", 1, 10, "abcde", 4, 1, -3);
+ test("abcdefghij", 1, 10, "abcde", 4, 2, -3);
+ test("abcdefghij", 1, 10, "abcde", 5, 0, 9);
+ test("abcdefghij", 1, 10, "abcde", 5, 1, 9);
+ test("abcdefghij", 1, 10, "abcde", 6, 0, 0);
+ test("abcdefghij", 1, 10, "abcdefghij", 0, 0, 9);
+ test("abcdefghij", 1, 10, "abcdefghij", 0, 1, 1);
+ test("abcdefghij", 1, 10, "abcdefghij", 0, 5, 1);
+ test("abcdefghij", 1, 10, "abcdefghij", 0, 9, 1);
+ test("abcdefghij", 1, 10, "abcdefghij", 0, 10, 1);
+ test("abcdefghij", 1, 10, "abcdefghij", 0, 11, 1);
+ test("abcdefghij", 1, 10, "abcdefghij", 1, 0, 9);
+ test("abcdefghij", 1, 10, "abcdefghij", 1, 1, 8);
+ test("abcdefghij", 1, 10, "abcdefghij", 1, 4, 5);
+ test("abcdefghij", 1, 10, "abcdefghij", 1, 8, 1);
+ test("abcdefghij", 1, 10, "abcdefghij", 1, 9, 0);
+ test("abcdefghij", 1, 10, "abcdefghij", 1, 10, 0);
+ test("abcdefghij", 1, 10, "abcdefghij", 5, 0, 9);
+ test("abcdefghij", 1, 10, "abcdefghij", 5, 1, -4);
+ test("abcdefghij", 1, 10, "abcdefghij", 5, 2, -4);
+ test("abcdefghij", 1, 10, "abcdefghij", 5, 4, -4);
+ test("abcdefghij", 1, 10, "abcdefghij", 5, 5, -4);
+ test("abcdefghij", 1, 10, "abcdefghij", 5, 6, -4);
+ test("abcdefghij", 1, 10, "abcdefghij", 9, 0, 9);
+ test("abcdefghij", 1, 10, "abcdefghij", 9, 1, -8);
+ test("abcdefghij", 1, 10, "abcdefghij", 9, 2, -8);
+ test("abcdefghij", 1, 10, "abcdefghij", 10, 0, 9);
+ test("abcdefghij", 1, 10, "abcdefghij", 10, 1, 9);
+ test("abcdefghij", 1, 10, "abcdefghij", 11, 0, 0);
+ test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 0, 0, 9);
+ test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 0, 1, 1);
+ test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 0, 10, 1);
+ test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 0, 19, 1);
+ test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 0, 20, 1);
+ test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 0, 21, 1);
+ test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 1, 0, 9);
+ test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 1, 1, 8);
+ test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 1, 9, 0);
+ test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 1, 18, -9);
+ test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 1, 19, -10);
+ test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 1, 20, -10);
}
-void test28()
-{
- test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 10, 0, 9);
- test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 10, 1, -9);
- test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 10, 5, -9);
- test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 10, 9, -9);
- test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 10, 10, -9);
- test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 10, 11, -9);
- test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 19, 0, 9);
- test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 19, 1, -18);
- test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 19, 2, -18);
- test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 20, 0, 9);
- test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 20, 1, 9);
- test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 21, 0, 0);
- test("abcdefghij", 5, 0, "", 0, 0, 0);
- test("abcdefghij", 5, 0, "", 0, 1, 0);
- test("abcdefghij", 5, 0, "", 1, 0, 0);
- test("abcdefghij", 5, 0, "abcde", 0, 0, 0);
- test("abcdefghij", 5, 0, "abcde", 0, 1, -1);
- test("abcdefghij", 5, 0, "abcde", 0, 2, -2);
- test("abcdefghij", 5, 0, "abcde", 0, 4, -4);
- test("abcdefghij", 5, 0, "abcde", 0, 5, -5);
- test("abcdefghij", 5, 0, "abcde", 0, 6, -5);
- test("abcdefghij", 5, 0, "abcde", 1, 0, 0);
- test("abcdefghij", 5, 0, "abcde", 1, 1, -1);
- test("abcdefghij", 5, 0, "abcde", 1, 2, -2);
- test("abcdefghij", 5, 0, "abcde", 1, 3, -3);
- test("abcdefghij", 5, 0, "abcde", 1, 4, -4);
- test("abcdefghij", 5, 0, "abcde", 1, 5, -4);
- test("abcdefghij", 5, 0, "abcde", 2, 0, 0);
- test("abcdefghij", 5, 0, "abcde", 2, 1, -1);
- test("abcdefghij", 5, 0, "abcde", 2, 2, -2);
- test("abcdefghij", 5, 0, "abcde", 2, 3, -3);
- test("abcdefghij", 5, 0, "abcde", 2, 4, -3);
- test("abcdefghij", 5, 0, "abcde", 4, 0, 0);
- test("abcdefghij", 5, 0, "abcde", 4, 1, -1);
- test("abcdefghij", 5, 0, "abcde", 4, 2, -1);
- test("abcdefghij", 5, 0, "abcde", 5, 0, 0);
- test("abcdefghij", 5, 0, "abcde", 5, 1, 0);
- test("abcdefghij", 5, 0, "abcde", 6, 0, 0);
- test("abcdefghij", 5, 0, "abcdefghij", 0, 0, 0);
- test("abcdefghij", 5, 0, "abcdefghij", 0, 1, -1);
- test("abcdefghij", 5, 0, "abcdefghij", 0, 5, -5);
- test("abcdefghij", 5, 0, "abcdefghij", 0, 9, -9);
- test("abcdefghij", 5, 0, "abcdefghij", 0, 10, -10);
- test("abcdefghij", 5, 0, "abcdefghij", 0, 11, -10);
- test("abcdefghij", 5, 0, "abcdefghij", 1, 0, 0);
- test("abcdefghij", 5, 0, "abcdefghij", 1, 1, -1);
- test("abcdefghij", 5, 0, "abcdefghij", 1, 4, -4);
- test("abcdefghij", 5, 0, "abcdefghij", 1, 8, -8);
- test("abcdefghij", 5, 0, "abcdefghij", 1, 9, -9);
- test("abcdefghij", 5, 0, "abcdefghij", 1, 10, -9);
- test("abcdefghij", 5, 0, "abcdefghij", 5, 0, 0);
- test("abcdefghij", 5, 0, "abcdefghij", 5, 1, -1);
- test("abcdefghij", 5, 0, "abcdefghij", 5, 2, -2);
- test("abcdefghij", 5, 0, "abcdefghij", 5, 4, -4);
- test("abcdefghij", 5, 0, "abcdefghij", 5, 5, -5);
- test("abcdefghij", 5, 0, "abcdefghij", 5, 6, -5);
- test("abcdefghij", 5, 0, "abcdefghij", 9, 0, 0);
- test("abcdefghij", 5, 0, "abcdefghij", 9, 1, -1);
- test("abcdefghij", 5, 0, "abcdefghij", 9, 2, -1);
- test("abcdefghij", 5, 0, "abcdefghij", 10, 0, 0);
- test("abcdefghij", 5, 0, "abcdefghij", 10, 1, 0);
- test("abcdefghij", 5, 0, "abcdefghij", 11, 0, 0);
- test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 0, 0, 0);
- test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 0, 1, -1);
- test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 0, 10, -10);
- test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 0, 19, -19);
- test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 0, 20, -20);
- test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 0, 21, -20);
- test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 1, 0, 0);
- test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 1, 1, -1);
- test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 1, 9, -9);
- test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 1, 18, -18);
- test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 1, 19, -19);
- test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 1, 20, -19);
- test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 10, 0, 0);
- test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 10, 1, -1);
- test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 10, 5, -5);
- test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 10, 9, -9);
- test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 10, 10, -10);
- test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 10, 11, -10);
- test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 19, 0, 0);
- test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 19, 1, -1);
- test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 19, 2, -1);
- test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 20, 0, 0);
- test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 20, 1, 0);
- test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 21, 0, 0);
- test("abcdefghij", 5, 1, "", 0, 0, 1);
- test("abcdefghij", 5, 1, "", 0, 1, 1);
- test("abcdefghij", 5, 1, "", 1, 0, 0);
- test("abcdefghij", 5, 1, "abcde", 0, 0, 1);
- test("abcdefghij", 5, 1, "abcde", 0, 1, 5);
- test("abcdefghij", 5, 1, "abcde", 0, 2, 5);
- test("abcdefghij", 5, 1, "abcde", 0, 4, 5);
- test("abcdefghij", 5, 1, "abcde", 0, 5, 5);
- test("abcdefghij", 5, 1, "abcde", 0, 6, 5);
- test("abcdefghij", 5, 1, "abcde", 1, 0, 1);
- test("abcdefghij", 5, 1, "abcde", 1, 1, 4);
- test("abcdefghij", 5, 1, "abcde", 1, 2, 4);
- test("abcdefghij", 5, 1, "abcde", 1, 3, 4);
- test("abcdefghij", 5, 1, "abcde", 1, 4, 4);
+void test28() {
+ test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 10, 0, 9);
+ test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 10, 1, -9);
+ test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 10, 5, -9);
+ test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 10, 9, -9);
+ test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 10, 10, -9);
+ test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 10, 11, -9);
+ test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 19, 0, 9);
+ test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 19, 1, -18);
+ test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 19, 2, -18);
+ test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 20, 0, 9);
+ test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 20, 1, 9);
+ test("abcdefghij", 1, 10, "abcdefghijklmnopqrst", 21, 0, 0);
+ test("abcdefghij", 5, 0, "", 0, 0, 0);
+ test("abcdefghij", 5, 0, "", 0, 1, 0);
+ test("abcdefghij", 5, 0, "", 1, 0, 0);
+ test("abcdefghij", 5, 0, "abcde", 0, 0, 0);
+ test("abcdefghij", 5, 0, "abcde", 0, 1, -1);
+ test("abcdefghij", 5, 0, "abcde", 0, 2, -2);
+ test("abcdefghij", 5, 0, "abcde", 0, 4, -4);
+ test("abcdefghij", 5, 0, "abcde", 0, 5, -5);
+ test("abcdefghij", 5, 0, "abcde", 0, 6, -5);
+ test("abcdefghij", 5, 0, "abcde", 1, 0, 0);
+ test("abcdefghij", 5, 0, "abcde", 1, 1, -1);
+ test("abcdefghij", 5, 0, "abcde", 1, 2, -2);
+ test("abcdefghij", 5, 0, "abcde", 1, 3, -3);
+ test("abcdefghij", 5, 0, "abcde", 1, 4, -4);
+ test("abcdefghij", 5, 0, "abcde", 1, 5, -4);
+ test("abcdefghij", 5, 0, "abcde", 2, 0, 0);
+ test("abcdefghij", 5, 0, "abcde", 2, 1, -1);
+ test("abcdefghij", 5, 0, "abcde", 2, 2, -2);
+ test("abcdefghij", 5, 0, "abcde", 2, 3, -3);
+ test("abcdefghij", 5, 0, "abcde", 2, 4, -3);
+ test("abcdefghij", 5, 0, "abcde", 4, 0, 0);
+ test("abcdefghij", 5, 0, "abcde", 4, 1, -1);
+ test("abcdefghij", 5, 0, "abcde", 4, 2, -1);
+ test("abcdefghij", 5, 0, "abcde", 5, 0, 0);
+ test("abcdefghij", 5, 0, "abcde", 5, 1, 0);
+ test("abcdefghij", 5, 0, "abcde", 6, 0, 0);
+ test("abcdefghij", 5, 0, "abcdefghij", 0, 0, 0);
+ test("abcdefghij", 5, 0, "abcdefghij", 0, 1, -1);
+ test("abcdefghij", 5, 0, "abcdefghij", 0, 5, -5);
+ test("abcdefghij", 5, 0, "abcdefghij", 0, 9, -9);
+ test("abcdefghij", 5, 0, "abcdefghij", 0, 10, -10);
+ test("abcdefghij", 5, 0, "abcdefghij", 0, 11, -10);
+ test("abcdefghij", 5, 0, "abcdefghij", 1, 0, 0);
+ test("abcdefghij", 5, 0, "abcdefghij", 1, 1, -1);
+ test("abcdefghij", 5, 0, "abcdefghij", 1, 4, -4);
+ test("abcdefghij", 5, 0, "abcdefghij", 1, 8, -8);
+ test("abcdefghij", 5, 0, "abcdefghij", 1, 9, -9);
+ test("abcdefghij", 5, 0, "abcdefghij", 1, 10, -9);
+ test("abcdefghij", 5, 0, "abcdefghij", 5, 0, 0);
+ test("abcdefghij", 5, 0, "abcdefghij", 5, 1, -1);
+ test("abcdefghij", 5, 0, "abcdefghij", 5, 2, -2);
+ test("abcdefghij", 5, 0, "abcdefghij", 5, 4, -4);
+ test("abcdefghij", 5, 0, "abcdefghij", 5, 5, -5);
+ test("abcdefghij", 5, 0, "abcdefghij", 5, 6, -5);
+ test("abcdefghij", 5, 0, "abcdefghij", 9, 0, 0);
+ test("abcdefghij", 5, 0, "abcdefghij", 9, 1, -1);
+ test("abcdefghij", 5, 0, "abcdefghij", 9, 2, -1);
+ test("abcdefghij", 5, 0, "abcdefghij", 10, 0, 0);
+ test("abcdefghij", 5, 0, "abcdefghij", 10, 1, 0);
+ test("abcdefghij", 5, 0, "abcdefghij", 11, 0, 0);
+ test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 0, 0, 0);
+ test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 0, 1, -1);
+ test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 0, 10, -10);
+ test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 0, 19, -19);
+ test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 0, 20, -20);
+ test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 0, 21, -20);
+ test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 1, 0, 0);
+ test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 1, 1, -1);
+ test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 1, 9, -9);
+ test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 1, 18, -18);
+ test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 1, 19, -19);
+ test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 1, 20, -19);
+ test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 10, 0, 0);
+ test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 10, 1, -1);
+ test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 10, 5, -5);
+ test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 10, 9, -9);
+ test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 10, 10, -10);
+ test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 10, 11, -10);
+ test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 19, 0, 0);
+ test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 19, 1, -1);
+ test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 19, 2, -1);
+ test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 20, 0, 0);
+ test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 20, 1, 0);
+ test("abcdefghij", 5, 0, "abcdefghijklmnopqrst", 21, 0, 0);
+ test("abcdefghij", 5, 1, "", 0, 0, 1);
+ test("abcdefghij", 5, 1, "", 0, 1, 1);
+ test("abcdefghij", 5, 1, "", 1, 0, 0);
+ test("abcdefghij", 5, 1, "abcde", 0, 0, 1);
+ test("abcdefghij", 5, 1, "abcde", 0, 1, 5);
+ test("abcdefghij", 5, 1, "abcde", 0, 2, 5);
+ test("abcdefghij", 5, 1, "abcde", 0, 4, 5);
+ test("abcdefghij", 5, 1, "abcde", 0, 5, 5);
+ test("abcdefghij", 5, 1, "abcde", 0, 6, 5);
+ test("abcdefghij", 5, 1, "abcde", 1, 0, 1);
+ test("abcdefghij", 5, 1, "abcde", 1, 1, 4);
+ test("abcdefghij", 5, 1, "abcde", 1, 2, 4);
+ test("abcdefghij", 5, 1, "abcde", 1, 3, 4);
+ test("abcdefghij", 5, 1, "abcde", 1, 4, 4);
}
-void test29()
-{
- test("abcdefghij", 5, 1, "abcde", 1, 5, 4);
- test("abcdefghij", 5, 1, "abcde", 2, 0, 1);
- test("abcdefghij", 5, 1, "abcde", 2, 1, 3);
- test("abcdefghij", 5, 1, "abcde", 2, 2, 3);
- test("abcdefghij", 5, 1, "abcde", 2, 3, 3);
- test("abcdefghij", 5, 1, "abcde", 2, 4, 3);
- test("abcdefghij", 5, 1, "abcde", 4, 0, 1);
- test("abcdefghij", 5, 1, "abcde", 4, 1, 1);
- test("abcdefghij", 5, 1, "abcde", 4, 2, 1);
- test("abcdefghij", 5, 1, "abcde", 5, 0, 1);
- test("abcdefghij", 5, 1, "abcde", 5, 1, 1);
- test("abcdefghij", 5, 1, "abcde", 6, 0, 0);
- test("abcdefghij", 5, 1, "abcdefghij", 0, 0, 1);
- test("abcdefghij", 5, 1, "abcdefghij", 0, 1, 5);
- test("abcdefghij", 5, 1, "abcdefghij", 0, 5, 5);
- test("abcdefghij", 5, 1, "abcdefghij", 0, 9, 5);
- test("abcdefghij", 5, 1, "abcdefghij", 0, 10, 5);
- test("abcdefghij", 5, 1, "abcdefghij", 0, 11, 5);
- test("abcdefghij", 5, 1, "abcdefghij", 1, 0, 1);
- test("abcdefghij", 5, 1, "abcdefghij", 1, 1, 4);
- test("abcdefghij", 5, 1, "abcdefghij", 1, 4, 4);
- test("abcdefghij", 5, 1, "abcdefghij", 1, 8, 4);
- test("abcdefghij", 5, 1, "abcdefghij", 1, 9, 4);
- test("abcdefghij", 5, 1, "abcdefghij", 1, 10, 4);
- test("abcdefghij", 5, 1, "abcdefghij", 5, 0, 1);
- test("abcdefghij", 5, 1, "abcdefghij", 5, 1, 0);
- test("abcdefghij", 5, 1, "abcdefghij", 5, 2, -1);
- test("abcdefghij", 5, 1, "abcdefghij", 5, 4, -3);
- test("abcdefghij", 5, 1, "abcdefghij", 5, 5, -4);
- test("abcdefghij", 5, 1, "abcdefghij", 5, 6, -4);
- test("abcdefghij", 5, 1, "abcdefghij", 9, 0, 1);
- test("abcdefghij", 5, 1, "abcdefghij", 9, 1, -4);
- test("abcdefghij", 5, 1, "abcdefghij", 9, 2, -4);
- test("abcdefghij", 5, 1, "abcdefghij", 10, 0, 1);
- test("abcdefghij", 5, 1, "abcdefghij", 10, 1, 1);
- test("abcdefghij", 5, 1, "abcdefghij", 11, 0, 0);
- test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 0, 0, 1);
- test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 0, 1, 5);
- test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 0, 10, 5);
- test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 0, 19, 5);
- test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 0, 20, 5);
- test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 0, 21, 5);
- test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 1, 0, 1);
- test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 1, 1, 4);
- test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 1, 9, 4);
- test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 1, 18, 4);
- test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 1, 19, 4);
- test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 1, 20, 4);
- test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 10, 0, 1);
- test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 10, 1, -5);
- test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 10, 5, -5);
- test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 10, 9, -5);
- test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 10, 10, -5);
- test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 10, 11, -5);
- test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 19, 0, 1);
- test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 19, 1, -14);
- test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 19, 2, -14);
- test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 20, 0, 1);
- test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 20, 1, 1);
- test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 21, 0, 0);
- test("abcdefghij", 5, 2, "", 0, 0, 2);
- test("abcdefghij", 5, 2, "", 0, 1, 2);
- test("abcdefghij", 5, 2, "", 1, 0, 0);
- test("abcdefghij", 5, 2, "abcde", 0, 0, 2);
- test("abcdefghij", 5, 2, "abcde", 0, 1, 5);
- test("abcdefghij", 5, 2, "abcde", 0, 2, 5);
- test("abcdefghij", 5, 2, "abcde", 0, 4, 5);
- test("abcdefghij", 5, 2, "abcde", 0, 5, 5);
- test("abcdefghij", 5, 2, "abcde", 0, 6, 5);
- test("abcdefghij", 5, 2, "abcde", 1, 0, 2);
- test("abcdefghij", 5, 2, "abcde", 1, 1, 4);
- test("abcdefghij", 5, 2, "abcde", 1, 2, 4);
- test("abcdefghij", 5, 2, "abcde", 1, 3, 4);
- test("abcdefghij", 5, 2, "abcde", 1, 4, 4);
- test("abcdefghij", 5, 2, "abcde", 1, 5, 4);
- test("abcdefghij", 5, 2, "abcde", 2, 0, 2);
- test("abcdefghij", 5, 2, "abcde", 2, 1, 3);
- test("abcdefghij", 5, 2, "abcde", 2, 2, 3);
- test("abcdefghij", 5, 2, "abcde", 2, 3, 3);
- test("abcdefghij", 5, 2, "abcde", 2, 4, 3);
- test("abcdefghij", 5, 2, "abcde", 4, 0, 2);
- test("abcdefghij", 5, 2, "abcde", 4, 1, 1);
- test("abcdefghij", 5, 2, "abcde", 4, 2, 1);
- test("abcdefghij", 5, 2, "abcde", 5, 0, 2);
- test("abcdefghij", 5, 2, "abcde", 5, 1, 2);
- test("abcdefghij", 5, 2, "abcde", 6, 0, 0);
- test("abcdefghij", 5, 2, "abcdefghij", 0, 0, 2);
- test("abcdefghij", 5, 2, "abcdefghij", 0, 1, 5);
- test("abcdefghij", 5, 2, "abcdefghij", 0, 5, 5);
- test("abcdefghij", 5, 2, "abcdefghij", 0, 9, 5);
- test("abcdefghij", 5, 2, "abcdefghij", 0, 10, 5);
- test("abcdefghij", 5, 2, "abcdefghij", 0, 11, 5);
- test("abcdefghij", 5, 2, "abcdefghij", 1, 0, 2);
- test("abcdefghij", 5, 2, "abcdefghij", 1, 1, 4);
- test("abcdefghij", 5, 2, "abcdefghij", 1, 4, 4);
- test("abcdefghij", 5, 2, "abcdefghij", 1, 8, 4);
- test("abcdefghij", 5, 2, "abcdefghij", 1, 9, 4);
- test("abcdefghij", 5, 2, "abcdefghij", 1, 10, 4);
- test("abcdefghij", 5, 2, "abcdefghij", 5, 0, 2);
- test("abcdefghij", 5, 2, "abcdefghij", 5, 1, 1);
+void test29() {
+ test("abcdefghij", 5, 1, "abcde", 1, 5, 4);
+ test("abcdefghij", 5, 1, "abcde", 2, 0, 1);
+ test("abcdefghij", 5, 1, "abcde", 2, 1, 3);
+ test("abcdefghij", 5, 1, "abcde", 2, 2, 3);
+ test("abcdefghij", 5, 1, "abcde", 2, 3, 3);
+ test("abcdefghij", 5, 1, "abcde", 2, 4, 3);
+ test("abcdefghij", 5, 1, "abcde", 4, 0, 1);
+ test("abcdefghij", 5, 1, "abcde", 4, 1, 1);
+ test("abcdefghij", 5, 1, "abcde", 4, 2, 1);
+ test("abcdefghij", 5, 1, "abcde", 5, 0, 1);
+ test("abcdefghij", 5, 1, "abcde", 5, 1, 1);
+ test("abcdefghij", 5, 1, "abcde", 6, 0, 0);
+ test("abcdefghij", 5, 1, "abcdefghij", 0, 0, 1);
+ test("abcdefghij", 5, 1, "abcdefghij", 0, 1, 5);
+ test("abcdefghij", 5, 1, "abcdefghij", 0, 5, 5);
+ test("abcdefghij", 5, 1, "abcdefghij", 0, 9, 5);
+ test("abcdefghij", 5, 1, "abcdefghij", 0, 10, 5);
+ test("abcdefghij", 5, 1, "abcdefghij", 0, 11, 5);
+ test("abcdefghij", 5, 1, "abcdefghij", 1, 0, 1);
+ test("abcdefghij", 5, 1, "abcdefghij", 1, 1, 4);
+ test("abcdefghij", 5, 1, "abcdefghij", 1, 4, 4);
+ test("abcdefghij", 5, 1, "abcdefghij", 1, 8, 4);
+ test("abcdefghij", 5, 1, "abcdefghij", 1, 9, 4);
+ test("abcdefghij", 5, 1, "abcdefghij", 1, 10, 4);
+ test("abcdefghij", 5, 1, "abcdefghij", 5, 0, 1);
+ test("abcdefghij", 5, 1, "abcdefghij", 5, 1, 0);
+ test("abcdefghij", 5, 1, "abcdefghij", 5, 2, -1);
+ test("abcdefghij", 5, 1, "abcdefghij", 5, 4, -3);
+ test("abcdefghij", 5, 1, "abcdefghij", 5, 5, -4);
+ test("abcdefghij", 5, 1, "abcdefghij", 5, 6, -4);
+ test("abcdefghij", 5, 1, "abcdefghij", 9, 0, 1);
+ test("abcdefghij", 5, 1, "abcdefghij", 9, 1, -4);
+ test("abcdefghij", 5, 1, "abcdefghij", 9, 2, -4);
+ test("abcdefghij", 5, 1, "abcdefghij", 10, 0, 1);
+ test("abcdefghij", 5, 1, "abcdefghij", 10, 1, 1);
+ test("abcdefghij", 5, 1, "abcdefghij", 11, 0, 0);
+ test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 0, 0, 1);
+ test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 0, 1, 5);
+ test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 0, 10, 5);
+ test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 0, 19, 5);
+ test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 0, 20, 5);
+ test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 0, 21, 5);
+ test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 1, 0, 1);
+ test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 1, 1, 4);
+ test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 1, 9, 4);
+ test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 1, 18, 4);
+ test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 1, 19, 4);
+ test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 1, 20, 4);
+ test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 10, 0, 1);
+ test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 10, 1, -5);
+ test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 10, 5, -5);
+ test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 10, 9, -5);
+ test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 10, 10, -5);
+ test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 10, 11, -5);
+ test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 19, 0, 1);
+ test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 19, 1, -14);
+ test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 19, 2, -14);
+ test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 20, 0, 1);
+ test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 20, 1, 1);
+ test("abcdefghij", 5, 1, "abcdefghijklmnopqrst", 21, 0, 0);
+ test("abcdefghij", 5, 2, "", 0, 0, 2);
+ test("abcdefghij", 5, 2, "", 0, 1, 2);
+ test("abcdefghij", 5, 2, "", 1, 0, 0);
+ test("abcdefghij", 5, 2, "abcde", 0, 0, 2);
+ test("abcdefghij", 5, 2, "abcde", 0, 1, 5);
+ test("abcdefghij", 5, 2, "abcde", 0, 2, 5);
+ test("abcdefghij", 5, 2, "abcde", 0, 4, 5);
+ test("abcdefghij", 5, 2, "abcde", 0, 5, 5);
+ test("abcdefghij", 5, 2, "abcde", 0, 6, 5);
+ test("abcdefghij", 5, 2, "abcde", 1, 0, 2);
+ test("abcdefghij", 5, 2, "abcde", 1, 1, 4);
+ test("abcdefghij", 5, 2, "abcde", 1, 2, 4);
+ test("abcdefghij", 5, 2, "abcde", 1, 3, 4);
+ test("abcdefghij", 5, 2, "abcde", 1, 4, 4);
+ test("abcdefghij", 5, 2, "abcde", 1, 5, 4);
+ test("abcdefghij", 5, 2, "abcde", 2, 0, 2);
+ test("abcdefghij", 5, 2, "abcde", 2, 1, 3);
+ test("abcdefghij", 5, 2, "abcde", 2, 2, 3);
+ test("abcdefghij", 5, 2, "abcde", 2, 3, 3);
+ test("abcdefghij", 5, 2, "abcde", 2, 4, 3);
+ test("abcdefghij", 5, 2, "abcde", 4, 0, 2);
+ test("abcdefghij", 5, 2, "abcde", 4, 1, 1);
+ test("abcdefghij", 5, 2, "abcde", 4, 2, 1);
+ test("abcdefghij", 5, 2, "abcde", 5, 0, 2);
+ test("abcdefghij", 5, 2, "abcde", 5, 1, 2);
+ test("abcdefghij", 5, 2, "abcde", 6, 0, 0);
+ test("abcdefghij", 5, 2, "abcdefghij", 0, 0, 2);
+ test("abcdefghij", 5, 2, "abcdefghij", 0, 1, 5);
+ test("abcdefghij", 5, 2, "abcdefghij", 0, 5, 5);
+ test("abcdefghij", 5, 2, "abcdefghij", 0, 9, 5);
+ test("abcdefghij", 5, 2, "abcdefghij", 0, 10, 5);
+ test("abcdefghij", 5, 2, "abcdefghij", 0, 11, 5);
+ test("abcdefghij", 5, 2, "abcdefghij", 1, 0, 2);
+ test("abcdefghij", 5, 2, "abcdefghij", 1, 1, 4);
+ test("abcdefghij", 5, 2, "abcdefghij", 1, 4, 4);
+ test("abcdefghij", 5, 2, "abcdefghij", 1, 8, 4);
+ test("abcdefghij", 5, 2, "abcdefghij", 1, 9, 4);
+ test("abcdefghij", 5, 2, "abcdefghij", 1, 10, 4);
+ test("abcdefghij", 5, 2, "abcdefghij", 5, 0, 2);
+ test("abcdefghij", 5, 2, "abcdefghij", 5, 1, 1);
}
-void test30()
-{
- test("abcdefghij", 5, 2, "abcdefghij", 5, 2, 0);
- test("abcdefghij", 5, 2, "abcdefghij", 5, 4, -2);
- test("abcdefghij", 5, 2, "abcdefghij", 5, 5, -3);
- test("abcdefghij", 5, 2, "abcdefghij", 5, 6, -3);
- test("abcdefghij", 5, 2, "abcdefghij", 9, 0, 2);
- test("abcdefghij", 5, 2, "abcdefghij", 9, 1, -4);
- test("abcdefghij", 5, 2, "abcdefghij", 9, 2, -4);
- test("abcdefghij", 5, 2, "abcdefghij", 10, 0, 2);
- test("abcdefghij", 5, 2, "abcdefghij", 10, 1, 2);
- test("abcdefghij", 5, 2, "abcdefghij", 11, 0, 0);
- test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 0, 0, 2);
- test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 0, 1, 5);
- test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 0, 10, 5);
- test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 0, 19, 5);
- test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 0, 20, 5);
- test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 0, 21, 5);
- test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 1, 0, 2);
- test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 1, 1, 4);
- test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 1, 9, 4);
- test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 1, 18, 4);
- test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 1, 19, 4);
- test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 1, 20, 4);
- test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 10, 0, 2);
- test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 10, 1, -5);
- test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 10, 5, -5);
- test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 10, 9, -5);
- test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 10, 10, -5);
- test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 10, 11, -5);
- test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 19, 0, 2);
- test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 19, 1, -14);
- test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 19, 2, -14);
- test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 20, 0, 2);
- test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 20, 1, 2);
- test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 21, 0, 0);
- test("abcdefghij", 5, 4, "", 0, 0, 4);
- test("abcdefghij", 5, 4, "", 0, 1, 4);
- test("abcdefghij", 5, 4, "", 1, 0, 0);
- test("abcdefghij", 5, 4, "abcde", 0, 0, 4);
- test("abcdefghij", 5, 4, "abcde", 0, 1, 5);
- test("abcdefghij", 5, 4, "abcde", 0, 2, 5);
- test("abcdefghij", 5, 4, "abcde", 0, 4, 5);
- test("abcdefghij", 5, 4, "abcde", 0, 5, 5);
- test("abcdefghij", 5, 4, "abcde", 0, 6, 5);
- test("abcdefghij", 5, 4, "abcde", 1, 0, 4);
- test("abcdefghij", 5, 4, "abcde", 1, 1, 4);
- test("abcdefghij", 5, 4, "abcde", 1, 2, 4);
- test("abcdefghij", 5, 4, "abcde", 1, 3, 4);
- test("abcdefghij", 5, 4, "abcde", 1, 4, 4);
- test("abcdefghij", 5, 4, "abcde", 1, 5, 4);
- test("abcdefghij", 5, 4, "abcde", 2, 0, 4);
- test("abcdefghij", 5, 4, "abcde", 2, 1, 3);
- test("abcdefghij", 5, 4, "abcde", 2, 2, 3);
- test("abcdefghij", 5, 4, "abcde", 2, 3, 3);
- test("abcdefghij", 5, 4, "abcde", 2, 4, 3);
- test("abcdefghij", 5, 4, "abcde", 4, 0, 4);
- test("abcdefghij", 5, 4, "abcde", 4, 1, 1);
- test("abcdefghij", 5, 4, "abcde", 4, 2, 1);
- test("abcdefghij", 5, 4, "abcde", 5, 0, 4);
- test("abcdefghij", 5, 4, "abcde", 5, 1, 4);
- test("abcdefghij", 5, 4, "abcde", 6, 0, 0);
- test("abcdefghij", 5, 4, "abcdefghij", 0, 0, 4);
- test("abcdefghij", 5, 4, "abcdefghij", 0, 1, 5);
- test("abcdefghij", 5, 4, "abcdefghij", 0, 5, 5);
- test("abcdefghij", 5, 4, "abcdefghij", 0, 9, 5);
- test("abcdefghij", 5, 4, "abcdefghij", 0, 10, 5);
- test("abcdefghij", 5, 4, "abcdefghij", 0, 11, 5);
- test("abcdefghij", 5, 4, "abcdefghij", 1, 0, 4);
- test("abcdefghij", 5, 4, "abcdefghij", 1, 1, 4);
- test("abcdefghij", 5, 4, "abcdefghij", 1, 4, 4);
- test("abcdefghij", 5, 4, "abcdefghij", 1, 8, 4);
- test("abcdefghij", 5, 4, "abcdefghij", 1, 9, 4);
- test("abcdefghij", 5, 4, "abcdefghij", 1, 10, 4);
- test("abcdefghij", 5, 4, "abcdefghij", 5, 0, 4);
- test("abcdefghij", 5, 4, "abcdefghij", 5, 1, 3);
- test("abcdefghij", 5, 4, "abcdefghij", 5, 2, 2);
- test("abcdefghij", 5, 4, "abcdefghij", 5, 4, 0);
- test("abcdefghij", 5, 4, "abcdefghij", 5, 5, -1);
- test("abcdefghij", 5, 4, "abcdefghij", 5, 6, -1);
- test("abcdefghij", 5, 4, "abcdefghij", 9, 0, 4);
- test("abcdefghij", 5, 4, "abcdefghij", 9, 1, -4);
- test("abcdefghij", 5, 4, "abcdefghij", 9, 2, -4);
- test("abcdefghij", 5, 4, "abcdefghij", 10, 0, 4);
- test("abcdefghij", 5, 4, "abcdefghij", 10, 1, 4);
- test("abcdefghij", 5, 4, "abcdefghij", 11, 0, 0);
- test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 0, 0, 4);
- test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 0, 1, 5);
- test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 0, 10, 5);
- test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 0, 19, 5);
- test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 0, 20, 5);
- test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 0, 21, 5);
- test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 1, 0, 4);
- test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 1, 1, 4);
- test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 1, 9, 4);
- test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 1, 18, 4);
- test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 1, 19, 4);
- test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 1, 20, 4);
- test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 10, 0, 4);
- test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 10, 1, -5);
- test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 10, 5, -5);
- test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 10, 9, -5);
+void test30() {
+ test("abcdefghij", 5, 2, "abcdefghij", 5, 2, 0);
+ test("abcdefghij", 5, 2, "abcdefghij", 5, 4, -2);
+ test("abcdefghij", 5, 2, "abcdefghij", 5, 5, -3);
+ test("abcdefghij", 5, 2, "abcdefghij", 5, 6, -3);
+ test("abcdefghij", 5, 2, "abcdefghij", 9, 0, 2);
+ test("abcdefghij", 5, 2, "abcdefghij", 9, 1, -4);
+ test("abcdefghij", 5, 2, "abcdefghij", 9, 2, -4);
+ test("abcdefghij", 5, 2, "abcdefghij", 10, 0, 2);
+ test("abcdefghij", 5, 2, "abcdefghij", 10, 1, 2);
+ test("abcdefghij", 5, 2, "abcdefghij", 11, 0, 0);
+ test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 0, 0, 2);
+ test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 0, 1, 5);
+ test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 0, 10, 5);
+ test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 0, 19, 5);
+ test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 0, 20, 5);
+ test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 0, 21, 5);
+ test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 1, 0, 2);
+ test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 1, 1, 4);
+ test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 1, 9, 4);
+ test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 1, 18, 4);
+ test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 1, 19, 4);
+ test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 1, 20, 4);
+ test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 10, 0, 2);
+ test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 10, 1, -5);
+ test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 10, 5, -5);
+ test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 10, 9, -5);
+ test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 10, 10, -5);
+ test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 10, 11, -5);
+ test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 19, 0, 2);
+ test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 19, 1, -14);
+ test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 19, 2, -14);
+ test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 20, 0, 2);
+ test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 20, 1, 2);
+ test("abcdefghij", 5, 2, "abcdefghijklmnopqrst", 21, 0, 0);
+ test("abcdefghij", 5, 4, "", 0, 0, 4);
+ test("abcdefghij", 5, 4, "", 0, 1, 4);
+ test("abcdefghij", 5, 4, "", 1, 0, 0);
+ test("abcdefghij", 5, 4, "abcde", 0, 0, 4);
+ test("abcdefghij", 5, 4, "abcde", 0, 1, 5);
+ test("abcdefghij", 5, 4, "abcde", 0, 2, 5);
+ test("abcdefghij", 5, 4, "abcde", 0, 4, 5);
+ test("abcdefghij", 5, 4, "abcde", 0, 5, 5);
+ test("abcdefghij", 5, 4, "abcde", 0, 6, 5);
+ test("abcdefghij", 5, 4, "abcde", 1, 0, 4);
+ test("abcdefghij", 5, 4, "abcde", 1, 1, 4);
+ test("abcdefghij", 5, 4, "abcde", 1, 2, 4);
+ test("abcdefghij", 5, 4, "abcde", 1, 3, 4);
+ test("abcdefghij", 5, 4, "abcde", 1, 4, 4);
+ test("abcdefghij", 5, 4, "abcde", 1, 5, 4);
+ test("abcdefghij", 5, 4, "abcde", 2, 0, 4);
+ test("abcdefghij", 5, 4, "abcde", 2, 1, 3);
+ test("abcdefghij", 5, 4, "abcde", 2, 2, 3);
+ test("abcdefghij", 5, 4, "abcde", 2, 3, 3);
+ test("abcdefghij", 5, 4, "abcde", 2, 4, 3);
+ test("abcdefghij", 5, 4, "abcde", 4, 0, 4);
+ test("abcdefghij", 5, 4, "abcde", 4, 1, 1);
+ test("abcdefghij", 5, 4, "abcde", 4, 2, 1);
+ test("abcdefghij", 5, 4, "abcde", 5, 0, 4);
+ test("abcdefghij", 5, 4, "abcde", 5, 1, 4);
+ test("abcdefghij", 5, 4, "abcde", 6, 0, 0);
+ test("abcdefghij", 5, 4, "abcdefghij", 0, 0, 4);
+ test("abcdefghij", 5, 4, "abcdefghij", 0, 1, 5);
+ test("abcdefghij", 5, 4, "abcdefghij", 0, 5, 5);
+ test("abcdefghij", 5, 4, "abcdefghij", 0, 9, 5);
+ test("abcdefghij", 5, 4, "abcdefghij", 0, 10, 5);
+ test("abcdefghij", 5, 4, "abcdefghij", 0, 11, 5);
+ test("abcdefghij", 5, 4, "abcdefghij", 1, 0, 4);
+ test("abcdefghij", 5, 4, "abcdefghij", 1, 1, 4);
+ test("abcdefghij", 5, 4, "abcdefghij", 1, 4, 4);
+ test("abcdefghij", 5, 4, "abcdefghij", 1, 8, 4);
+ test("abcdefghij", 5, 4, "abcdefghij", 1, 9, 4);
+ test("abcdefghij", 5, 4, "abcdefghij", 1, 10, 4);
+ test("abcdefghij", 5, 4, "abcdefghij", 5, 0, 4);
+ test("abcdefghij", 5, 4, "abcdefghij", 5, 1, 3);
+ test("abcdefghij", 5, 4, "abcdefghij", 5, 2, 2);
+ test("abcdefghij", 5, 4, "abcdefghij", 5, 4, 0);
+ test("abcdefghij", 5, 4, "abcdefghij", 5, 5, -1);
+ test("abcdefghij", 5, 4, "abcdefghij", 5, 6, -1);
+ test("abcdefghij", 5, 4, "abcdefghij", 9, 0, 4);
+ test("abcdefghij", 5, 4, "abcdefghij", 9, 1, -4);
+ test("abcdefghij", 5, 4, "abcdefghij", 9, 2, -4);
+ test("abcdefghij", 5, 4, "abcdefghij", 10, 0, 4);
+ test("abcdefghij", 5, 4, "abcdefghij", 10, 1, 4);
+ test("abcdefghij", 5, 4, "abcdefghij", 11, 0, 0);
+ test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 0, 0, 4);
+ test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 0, 1, 5);
+ test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 0, 10, 5);
+ test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 0, 19, 5);
+ test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 0, 20, 5);
+ test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 0, 21, 5);
+ test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 1, 0, 4);
+ test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 1, 1, 4);
+ test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 1, 9, 4);
+ test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 1, 18, 4);
+ test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 1, 19, 4);
+ test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 1, 20, 4);
+ test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 10, 0, 4);
+ test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 10, 1, -5);
+ test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 10, 5, -5);
+ test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 10, 9, -5);
}
-void test31()
-{
- test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 10, 10, -5);
- test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 10, 11, -5);
- test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 19, 0, 4);
- test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 19, 1, -14);
- test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 19, 2, -14);
- test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 20, 0, 4);
- test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 20, 1, 4);
- test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 21, 0, 0);
- test("abcdefghij", 5, 5, "", 0, 0, 5);
- test("abcdefghij", 5, 5, "", 0, 1, 5);
- test("abcdefghij", 5, 5, "", 1, 0, 0);
- test("abcdefghij", 5, 5, "abcde", 0, 0, 5);
- test("abcdefghij", 5, 5, "abcde", 0, 1, 5);
- test("abcdefghij", 5, 5, "abcde", 0, 2, 5);
- test("abcdefghij", 5, 5, "abcde", 0, 4, 5);
- test("abcdefghij", 5, 5, "abcde", 0, 5, 5);
- test("abcdefghij", 5, 5, "abcde", 0, 6, 5);
- test("abcdefghij", 5, 5, "abcde", 1, 0, 5);
- test("abcdefghij", 5, 5, "abcde", 1, 1, 4);
- test("abcdefghij", 5, 5, "abcde", 1, 2, 4);
- test("abcdefghij", 5, 5, "abcde", 1, 3, 4);
- test("abcdefghij", 5, 5, "abcde", 1, 4, 4);
- test("abcdefghij", 5, 5, "abcde", 1, 5, 4);
- test("abcdefghij", 5, 5, "abcde", 2, 0, 5);
- test("abcdefghij", 5, 5, "abcde", 2, 1, 3);
- test("abcdefghij", 5, 5, "abcde", 2, 2, 3);
- test("abcdefghij", 5, 5, "abcde", 2, 3, 3);
- test("abcdefghij", 5, 5, "abcde", 2, 4, 3);
- test("abcdefghij", 5, 5, "abcde", 4, 0, 5);
- test("abcdefghij", 5, 5, "abcde", 4, 1, 1);
- test("abcdefghij", 5, 5, "abcde", 4, 2, 1);
- test("abcdefghij", 5, 5, "abcde", 5, 0, 5);
- test("abcdefghij", 5, 5, "abcde", 5, 1, 5);
- test("abcdefghij", 5, 5, "abcde", 6, 0, 0);
- test("abcdefghij", 5, 5, "abcdefghij", 0, 0, 5);
- test("abcdefghij", 5, 5, "abcdefghij", 0, 1, 5);
- test("abcdefghij", 5, 5, "abcdefghij", 0, 5, 5);
- test("abcdefghij", 5, 5, "abcdefghij", 0, 9, 5);
- test("abcdefghij", 5, 5, "abcdefghij", 0, 10, 5);
- test("abcdefghij", 5, 5, "abcdefghij", 0, 11, 5);
- test("abcdefghij", 5, 5, "abcdefghij", 1, 0, 5);
- test("abcdefghij", 5, 5, "abcdefghij", 1, 1, 4);
- test("abcdefghij", 5, 5, "abcdefghij", 1, 4, 4);
- test("abcdefghij", 5, 5, "abcdefghij", 1, 8, 4);
- test("abcdefghij", 5, 5, "abcdefghij", 1, 9, 4);
- test("abcdefghij", 5, 5, "abcdefghij", 1, 10, 4);
- test("abcdefghij", 5, 5, "abcdefghij", 5, 0, 5);
- test("abcdefghij", 5, 5, "abcdefghij", 5, 1, 4);
- test("abcdefghij", 5, 5, "abcdefghij", 5, 2, 3);
- test("abcdefghij", 5, 5, "abcdefghij", 5, 4, 1);
- test("abcdefghij", 5, 5, "abcdefghij", 5, 5, 0);
- test("abcdefghij", 5, 5, "abcdefghij", 5, 6, 0);
- test("abcdefghij", 5, 5, "abcdefghij", 9, 0, 5);
- test("abcdefghij", 5, 5, "abcdefghij", 9, 1, -4);
- test("abcdefghij", 5, 5, "abcdefghij", 9, 2, -4);
- test("abcdefghij", 5, 5, "abcdefghij", 10, 0, 5);
- test("abcdefghij", 5, 5, "abcdefghij", 10, 1, 5);
- test("abcdefghij", 5, 5, "abcdefghij", 11, 0, 0);
- test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 0, 0, 5);
- test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 0, 1, 5);
- test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 0, 10, 5);
- test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 0, 19, 5);
- test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 0, 20, 5);
- test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 0, 21, 5);
- test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 1, 0, 5);
- test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 1, 1, 4);
- test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 1, 9, 4);
- test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 1, 18, 4);
- test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 1, 19, 4);
- test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 1, 20, 4);
- test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 10, 0, 5);
- test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 10, 1, -5);
- test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 10, 5, -5);
- test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 10, 9, -5);
- test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 10, 10, -5);
- test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 10, 11, -5);
- test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 19, 0, 5);
- test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 19, 1, -14);
- test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 19, 2, -14);
- test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 20, 0, 5);
- test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 20, 1, 5);
- test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 21, 0, 0);
- test("abcdefghij", 5, 6, "", 0, 0, 5);
- test("abcdefghij", 5, 6, "", 0, 1, 5);
- test("abcdefghij", 5, 6, "", 1, 0, 0);
- test("abcdefghij", 5, 6, "abcde", 0, 0, 5);
- test("abcdefghij", 5, 6, "abcde", 0, 1, 5);
- test("abcdefghij", 5, 6, "abcde", 0, 2, 5);
- test("abcdefghij", 5, 6, "abcde", 0, 4, 5);
- test("abcdefghij", 5, 6, "abcde", 0, 5, 5);
- test("abcdefghij", 5, 6, "abcde", 0, 6, 5);
- test("abcdefghij", 5, 6, "abcde", 1, 0, 5);
- test("abcdefghij", 5, 6, "abcde", 1, 1, 4);
- test("abcdefghij", 5, 6, "abcde", 1, 2, 4);
- test("abcdefghij", 5, 6, "abcde", 1, 3, 4);
- test("abcdefghij", 5, 6, "abcde", 1, 4, 4);
- test("abcdefghij", 5, 6, "abcde", 1, 5, 4);
- test("abcdefghij", 5, 6, "abcde", 2, 0, 5);
- test("abcdefghij", 5, 6, "abcde", 2, 1, 3);
- test("abcdefghij", 5, 6, "abcde", 2, 2, 3);
+void test31() {
+ test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 10, 10, -5);
+ test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 10, 11, -5);
+ test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 19, 0, 4);
+ test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 19, 1, -14);
+ test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 19, 2, -14);
+ test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 20, 0, 4);
+ test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 20, 1, 4);
+ test("abcdefghij", 5, 4, "abcdefghijklmnopqrst", 21, 0, 0);
+ test("abcdefghij", 5, 5, "", 0, 0, 5);
+ test("abcdefghij", 5, 5, "", 0, 1, 5);
+ test("abcdefghij", 5, 5, "", 1, 0, 0);
+ test("abcdefghij", 5, 5, "abcde", 0, 0, 5);
+ test("abcdefghij", 5, 5, "abcde", 0, 1, 5);
+ test("abcdefghij", 5, 5, "abcde", 0, 2, 5);
+ test("abcdefghij", 5, 5, "abcde", 0, 4, 5);
+ test("abcdefghij", 5, 5, "abcde", 0, 5, 5);
+ test("abcdefghij", 5, 5, "abcde", 0, 6, 5);
+ test("abcdefghij", 5, 5, "abcde", 1, 0, 5);
+ test("abcdefghij", 5, 5, "abcde", 1, 1, 4);
+ test("abcdefghij", 5, 5, "abcde", 1, 2, 4);
+ test("abcdefghij", 5, 5, "abcde", 1, 3, 4);
+ test("abcdefghij", 5, 5, "abcde", 1, 4, 4);
+ test("abcdefghij", 5, 5, "abcde", 1, 5, 4);
+ test("abcdefghij", 5, 5, "abcde", 2, 0, 5);
+ test("abcdefghij", 5, 5, "abcde", 2, 1, 3);
+ test("abcdefghij", 5, 5, "abcde", 2, 2, 3);
+ test("abcdefghij", 5, 5, "abcde", 2, 3, 3);
+ test("abcdefghij", 5, 5, "abcde", 2, 4, 3);
+ test("abcdefghij", 5, 5, "abcde", 4, 0, 5);
+ test("abcdefghij", 5, 5, "abcde", 4, 1, 1);
+ test("abcdefghij", 5, 5, "abcde", 4, 2, 1);
+ test("abcdefghij", 5, 5, "abcde", 5, 0, 5);
+ test("abcdefghij", 5, 5, "abcde", 5, 1, 5);
+ test("abcdefghij", 5, 5, "abcde", 6, 0, 0);
+ test("abcdefghij", 5, 5, "abcdefghij", 0, 0, 5);
+ test("abcdefghij", 5, 5, "abcdefghij", 0, 1, 5);
+ test("abcdefghij", 5, 5, "abcdefghij", 0, 5, 5);
+ test("abcdefghij", 5, 5, "abcdefghij", 0, 9, 5);
+ test("abcdefghij", 5, 5, "abcdefghij", 0, 10, 5);
+ test("abcdefghij", 5, 5, "abcdefghij", 0, 11, 5);
+ test("abcdefghij", 5, 5, "abcdefghij", 1, 0, 5);
+ test("abcdefghij", 5, 5, "abcdefghij", 1, 1, 4);
+ test("abcdefghij", 5, 5, "abcdefghij", 1, 4, 4);
+ test("abcdefghij", 5, 5, "abcdefghij", 1, 8, 4);
+ test("abcdefghij", 5, 5, "abcdefghij", 1, 9, 4);
+ test("abcdefghij", 5, 5, "abcdefghij", 1, 10, 4);
+ test("abcdefghij", 5, 5, "abcdefghij", 5, 0, 5);
+ test("abcdefghij", 5, 5, "abcdefghij", 5, 1, 4);
+ test("abcdefghij", 5, 5, "abcdefghij", 5, 2, 3);
+ test("abcdefghij", 5, 5, "abcdefghij", 5, 4, 1);
+ test("abcdefghij", 5, 5, "abcdefghij", 5, 5, 0);
+ test("abcdefghij", 5, 5, "abcdefghij", 5, 6, 0);
+ test("abcdefghij", 5, 5, "abcdefghij", 9, 0, 5);
+ test("abcdefghij", 5, 5, "abcdefghij", 9, 1, -4);
+ test("abcdefghij", 5, 5, "abcdefghij", 9, 2, -4);
+ test("abcdefghij", 5, 5, "abcdefghij", 10, 0, 5);
+ test("abcdefghij", 5, 5, "abcdefghij", 10, 1, 5);
+ test("abcdefghij", 5, 5, "abcdefghij", 11, 0, 0);
+ test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 0, 0, 5);
+ test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 0, 1, 5);
+ test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 0, 10, 5);
+ test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 0, 19, 5);
+ test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 0, 20, 5);
+ test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 0, 21, 5);
+ test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 1, 0, 5);
+ test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 1, 1, 4);
+ test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 1, 9, 4);
+ test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 1, 18, 4);
+ test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 1, 19, 4);
+ test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 1, 20, 4);
+ test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 10, 0, 5);
+ test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 10, 1, -5);
+ test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 10, 5, -5);
+ test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 10, 9, -5);
+ test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 10, 10, -5);
+ test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 10, 11, -5);
+ test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 19, 0, 5);
+ test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 19, 1, -14);
+ test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 19, 2, -14);
+ test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 20, 0, 5);
+ test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 20, 1, 5);
+ test("abcdefghij", 5, 5, "abcdefghijklmnopqrst", 21, 0, 0);
+ test("abcdefghij", 5, 6, "", 0, 0, 5);
+ test("abcdefghij", 5, 6, "", 0, 1, 5);
+ test("abcdefghij", 5, 6, "", 1, 0, 0);
+ test("abcdefghij", 5, 6, "abcde", 0, 0, 5);
+ test("abcdefghij", 5, 6, "abcde", 0, 1, 5);
+ test("abcdefghij", 5, 6, "abcde", 0, 2, 5);
+ test("abcdefghij", 5, 6, "abcde", 0, 4, 5);
+ test("abcdefghij", 5, 6, "abcde", 0, 5, 5);
+ test("abcdefghij", 5, 6, "abcde", 0, 6, 5);
+ test("abcdefghij", 5, 6, "abcde", 1, 0, 5);
+ test("abcdefghij", 5, 6, "abcde", 1, 1, 4);
+ test("abcdefghij", 5, 6, "abcde", 1, 2, 4);
+ test("abcdefghij", 5, 6, "abcde", 1, 3, 4);
+ test("abcdefghij", 5, 6, "abcde", 1, 4, 4);
+ test("abcdefghij", 5, 6, "abcde", 1, 5, 4);
+ test("abcdefghij", 5, 6, "abcde", 2, 0, 5);
+ test("abcdefghij", 5, 6, "abcde", 2, 1, 3);
+ test("abcdefghij", 5, 6, "abcde", 2, 2, 3);
}
-void test32()
-{
- test("abcdefghij", 5, 6, "abcde", 2, 3, 3);
- test("abcdefghij", 5, 6, "abcde", 2, 4, 3);
- test("abcdefghij", 5, 6, "abcde", 4, 0, 5);
- test("abcdefghij", 5, 6, "abcde", 4, 1, 1);
- test("abcdefghij", 5, 6, "abcde", 4, 2, 1);
- test("abcdefghij", 5, 6, "abcde", 5, 0, 5);
- test("abcdefghij", 5, 6, "abcde", 5, 1, 5);
- test("abcdefghij", 5, 6, "abcde", 6, 0, 0);
- test("abcdefghij", 5, 6, "abcdefghij", 0, 0, 5);
- test("abcdefghij", 5, 6, "abcdefghij", 0, 1, 5);
- test("abcdefghij", 5, 6, "abcdefghij", 0, 5, 5);
- test("abcdefghij", 5, 6, "abcdefghij", 0, 9, 5);
- test("abcdefghij", 5, 6, "abcdefghij", 0, 10, 5);
- test("abcdefghij", 5, 6, "abcdefghij", 0, 11, 5);
- test("abcdefghij", 5, 6, "abcdefghij", 1, 0, 5);
- test("abcdefghij", 5, 6, "abcdefghij", 1, 1, 4);
- test("abcdefghij", 5, 6, "abcdefghij", 1, 4, 4);
- test("abcdefghij", 5, 6, "abcdefghij", 1, 8, 4);
- test("abcdefghij", 5, 6, "abcdefghij", 1, 9, 4);
- test("abcdefghij", 5, 6, "abcdefghij", 1, 10, 4);
- test("abcdefghij", 5, 6, "abcdefghij", 5, 0, 5);
- test("abcdefghij", 5, 6, "abcdefghij", 5, 1, 4);
- test("abcdefghij", 5, 6, "abcdefghij", 5, 2, 3);
- test("abcdefghij", 5, 6, "abcdefghij", 5, 4, 1);
- test("abcdefghij", 5, 6, "abcdefghij", 5, 5, 0);
- test("abcdefghij", 5, 6, "abcdefghij", 5, 6, 0);
- test("abcdefghij", 5, 6, "abcdefghij", 9, 0, 5);
- test("abcdefghij", 5, 6, "abcdefghij", 9, 1, -4);
- test("abcdefghij", 5, 6, "abcdefghij", 9, 2, -4);
- test("abcdefghij", 5, 6, "abcdefghij", 10, 0, 5);
- test("abcdefghij", 5, 6, "abcdefghij", 10, 1, 5);
- test("abcdefghij", 5, 6, "abcdefghij", 11, 0, 0);
- test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 0, 0, 5);
- test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 0, 1, 5);
- test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 0, 10, 5);
- test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 0, 19, 5);
- test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 0, 20, 5);
- test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 0, 21, 5);
- test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 1, 0, 5);
- test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 1, 1, 4);
- test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 1, 9, 4);
- test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 1, 18, 4);
- test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 1, 19, 4);
- test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 1, 20, 4);
- test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 10, 0, 5);
- test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 10, 1, -5);
- test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 10, 5, -5);
- test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 10, 9, -5);
- test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 10, 10, -5);
- test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 10, 11, -5);
- test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 19, 0, 5);
- test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 19, 1, -14);
- test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 19, 2, -14);
- test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 20, 0, 5);
- test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 20, 1, 5);
- test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 21, 0, 0);
- test("abcdefghij", 9, 0, "", 0, 0, 0);
- test("abcdefghij", 9, 0, "", 0, 1, 0);
- test("abcdefghij", 9, 0, "", 1, 0, 0);
- test("abcdefghij", 9, 0, "abcde", 0, 0, 0);
- test("abcdefghij", 9, 0, "abcde", 0, 1, -1);
- test("abcdefghij", 9, 0, "abcde", 0, 2, -2);
- test("abcdefghij", 9, 0, "abcde", 0, 4, -4);
- test("abcdefghij", 9, 0, "abcde", 0, 5, -5);
- test("abcdefghij", 9, 0, "abcde", 0, 6, -5);
- test("abcdefghij", 9, 0, "abcde", 1, 0, 0);
- test("abcdefghij", 9, 0, "abcde", 1, 1, -1);
- test("abcdefghij", 9, 0, "abcde", 1, 2, -2);
- test("abcdefghij", 9, 0, "abcde", 1, 3, -3);
- test("abcdefghij", 9, 0, "abcde", 1, 4, -4);
- test("abcdefghij", 9, 0, "abcde", 1, 5, -4);
- test("abcdefghij", 9, 0, "abcde", 2, 0, 0);
- test("abcdefghij", 9, 0, "abcde", 2, 1, -1);
- test("abcdefghij", 9, 0, "abcde", 2, 2, -2);
- test("abcdefghij", 9, 0, "abcde", 2, 3, -3);
- test("abcdefghij", 9, 0, "abcde", 2, 4, -3);
- test("abcdefghij", 9, 0, "abcde", 4, 0, 0);
- test("abcdefghij", 9, 0, "abcde", 4, 1, -1);
- test("abcdefghij", 9, 0, "abcde", 4, 2, -1);
- test("abcdefghij", 9, 0, "abcde", 5, 0, 0);
- test("abcdefghij", 9, 0, "abcde", 5, 1, 0);
- test("abcdefghij", 9, 0, "abcde", 6, 0, 0);
- test("abcdefghij", 9, 0, "abcdefghij", 0, 0, 0);
- test("abcdefghij", 9, 0, "abcdefghij", 0, 1, -1);
- test("abcdefghij", 9, 0, "abcdefghij", 0, 5, -5);
- test("abcdefghij", 9, 0, "abcdefghij", 0, 9, -9);
- test("abcdefghij", 9, 0, "abcdefghij", 0, 10, -10);
- test("abcdefghij", 9, 0, "abcdefghij", 0, 11, -10);
- test("abcdefghij", 9, 0, "abcdefghij", 1, 0, 0);
- test("abcdefghij", 9, 0, "abcdefghij", 1, 1, -1);
- test("abcdefghij", 9, 0, "abcdefghij", 1, 4, -4);
- test("abcdefghij", 9, 0, "abcdefghij", 1, 8, -8);
- test("abcdefghij", 9, 0, "abcdefghij", 1, 9, -9);
- test("abcdefghij", 9, 0, "abcdefghij", 1, 10, -9);
- test("abcdefghij", 9, 0, "abcdefghij", 5, 0, 0);
- test("abcdefghij", 9, 0, "abcdefghij", 5, 1, -1);
- test("abcdefghij", 9, 0, "abcdefghij", 5, 2, -2);
- test("abcdefghij", 9, 0, "abcdefghij", 5, 4, -4);
- test("abcdefghij", 9, 0, "abcdefghij", 5, 5, -5);
- test("abcdefghij", 9, 0, "abcdefghij", 5, 6, -5);
+void test32() {
+ test("abcdefghij", 5, 6, "abcde", 2, 3, 3);
+ test("abcdefghij", 5, 6, "abcde", 2, 4, 3);
+ test("abcdefghij", 5, 6, "abcde", 4, 0, 5);
+ test("abcdefghij", 5, 6, "abcde", 4, 1, 1);
+ test("abcdefghij", 5, 6, "abcde", 4, 2, 1);
+ test("abcdefghij", 5, 6, "abcde", 5, 0, 5);
+ test("abcdefghij", 5, 6, "abcde", 5, 1, 5);
+ test("abcdefghij", 5, 6, "abcde", 6, 0, 0);
+ test("abcdefghij", 5, 6, "abcdefghij", 0, 0, 5);
+ test("abcdefghij", 5, 6, "abcdefghij", 0, 1, 5);
+ test("abcdefghij", 5, 6, "abcdefghij", 0, 5, 5);
+ test("abcdefghij", 5, 6, "abcdefghij", 0, 9, 5);
+ test("abcdefghij", 5, 6, "abcdefghij", 0, 10, 5);
+ test("abcdefghij", 5, 6, "abcdefghij", 0, 11, 5);
+ test("abcdefghij", 5, 6, "abcdefghij", 1, 0, 5);
+ test("abcdefghij", 5, 6, "abcdefghij", 1, 1, 4);
+ test("abcdefghij", 5, 6, "abcdefghij", 1, 4, 4);
+ test("abcdefghij", 5, 6, "abcdefghij", 1, 8, 4);
+ test("abcdefghij", 5, 6, "abcdefghij", 1, 9, 4);
+ test("abcdefghij", 5, 6, "abcdefghij", 1, 10, 4);
+ test("abcdefghij", 5, 6, "abcdefghij", 5, 0, 5);
+ test("abcdefghij", 5, 6, "abcdefghij", 5, 1, 4);
+ test("abcdefghij", 5, 6, "abcdefghij", 5, 2, 3);
+ test("abcdefghij", 5, 6, "abcdefghij", 5, 4, 1);
+ test("abcdefghij", 5, 6, "abcdefghij", 5, 5, 0);
+ test("abcdefghij", 5, 6, "abcdefghij", 5, 6, 0);
+ test("abcdefghij", 5, 6, "abcdefghij", 9, 0, 5);
+ test("abcdefghij", 5, 6, "abcdefghij", 9, 1, -4);
+ test("abcdefghij", 5, 6, "abcdefghij", 9, 2, -4);
+ test("abcdefghij", 5, 6, "abcdefghij", 10, 0, 5);
+ test("abcdefghij", 5, 6, "abcdefghij", 10, 1, 5);
+ test("abcdefghij", 5, 6, "abcdefghij", 11, 0, 0);
+ test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 0, 0, 5);
+ test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 0, 1, 5);
+ test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 0, 10, 5);
+ test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 0, 19, 5);
+ test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 0, 20, 5);
+ test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 0, 21, 5);
+ test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 1, 0, 5);
+ test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 1, 1, 4);
+ test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 1, 9, 4);
+ test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 1, 18, 4);
+ test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 1, 19, 4);
+ test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 1, 20, 4);
+ test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 10, 0, 5);
+ test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 10, 1, -5);
+ test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 10, 5, -5);
+ test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 10, 9, -5);
+ test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 10, 10, -5);
+ test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 10, 11, -5);
+ test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 19, 0, 5);
+ test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 19, 1, -14);
+ test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 19, 2, -14);
+ test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 20, 0, 5);
+ test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 20, 1, 5);
+ test("abcdefghij", 5, 6, "abcdefghijklmnopqrst", 21, 0, 0);
+ test("abcdefghij", 9, 0, "", 0, 0, 0);
+ test("abcdefghij", 9, 0, "", 0, 1, 0);
+ test("abcdefghij", 9, 0, "", 1, 0, 0);
+ test("abcdefghij", 9, 0, "abcde", 0, 0, 0);
+ test("abcdefghij", 9, 0, "abcde", 0, 1, -1);
+ test("abcdefghij", 9, 0, "abcde", 0, 2, -2);
+ test("abcdefghij", 9, 0, "abcde", 0, 4, -4);
+ test("abcdefghij", 9, 0, "abcde", 0, 5, -5);
+ test("abcdefghij", 9, 0, "abcde", 0, 6, -5);
+ test("abcdefghij", 9, 0, "abcde", 1, 0, 0);
+ test("abcdefghij", 9, 0, "abcde", 1, 1, -1);
+ test("abcdefghij", 9, 0, "abcde", 1, 2, -2);
+ test("abcdefghij", 9, 0, "abcde", 1, 3, -3);
+ test("abcdefghij", 9, 0, "abcde", 1, 4, -4);
+ test("abcdefghij", 9, 0, "abcde", 1, 5, -4);
+ test("abcdefghij", 9, 0, "abcde", 2, 0, 0);
+ test("abcdefghij", 9, 0, "abcde", 2, 1, -1);
+ test("abcdefghij", 9, 0, "abcde", 2, 2, -2);
+ test("abcdefghij", 9, 0, "abcde", 2, 3, -3);
+ test("abcdefghij", 9, 0, "abcde", 2, 4, -3);
+ test("abcdefghij", 9, 0, "abcde", 4, 0, 0);
+ test("abcdefghij", 9, 0, "abcde", 4, 1, -1);
+ test("abcdefghij", 9, 0, "abcde", 4, 2, -1);
+ test("abcdefghij", 9, 0, "abcde", 5, 0, 0);
+ test("abcdefghij", 9, 0, "abcde", 5, 1, 0);
+ test("abcdefghij", 9, 0, "abcde", 6, 0, 0);
+ test("abcdefghij", 9, 0, "abcdefghij", 0, 0, 0);
+ test("abcdefghij", 9, 0, "abcdefghij", 0, 1, -1);
+ test("abcdefghij", 9, 0, "abcdefghij", 0, 5, -5);
+ test("abcdefghij", 9, 0, "abcdefghij", 0, 9, -9);
+ test("abcdefghij", 9, 0, "abcdefghij", 0, 10, -10);
+ test("abcdefghij", 9, 0, "abcdefghij", 0, 11, -10);
+ test("abcdefghij", 9, 0, "abcdefghij", 1, 0, 0);
+ test("abcdefghij", 9, 0, "abcdefghij", 1, 1, -1);
+ test("abcdefghij", 9, 0, "abcdefghij", 1, 4, -4);
+ test("abcdefghij", 9, 0, "abcdefghij", 1, 8, -8);
+ test("abcdefghij", 9, 0, "abcdefghij", 1, 9, -9);
+ test("abcdefghij", 9, 0, "abcdefghij", 1, 10, -9);
+ test("abcdefghij", 9, 0, "abcdefghij", 5, 0, 0);
+ test("abcdefghij", 9, 0, "abcdefghij", 5, 1, -1);
+ test("abcdefghij", 9, 0, "abcdefghij", 5, 2, -2);
+ test("abcdefghij", 9, 0, "abcdefghij", 5, 4, -4);
+ test("abcdefghij", 9, 0, "abcdefghij", 5, 5, -5);
+ test("abcdefghij", 9, 0, "abcdefghij", 5, 6, -5);
}
-void test33()
-{
- test("abcdefghij", 9, 0, "abcdefghij", 9, 0, 0);
- test("abcdefghij", 9, 0, "abcdefghij", 9, 1, -1);
- test("abcdefghij", 9, 0, "abcdefghij", 9, 2, -1);
- test("abcdefghij", 9, 0, "abcdefghij", 10, 0, 0);
- test("abcdefghij", 9, 0, "abcdefghij", 10, 1, 0);
- test("abcdefghij", 9, 0, "abcdefghij", 11, 0, 0);
- test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 0, 0, 0);
- test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 0, 1, -1);
- test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 0, 10, -10);
- test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 0, 19, -19);
- test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 0, 20, -20);
- test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 0, 21, -20);
- test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 1, 0, 0);
- test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 1, 1, -1);
- test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 1, 9, -9);
- test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 1, 18, -18);
- test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 1, 19, -19);
- test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 1, 20, -19);
- test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 10, 0, 0);
- test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 10, 1, -1);
- test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 10, 5, -5);
- test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 10, 9, -9);
- test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 10, 10, -10);
- test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 10, 11, -10);
- test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 19, 0, 0);
- test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 19, 1, -1);
- test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 19, 2, -1);
- test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 20, 0, 0);
- test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 20, 1, 0);
- test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 21, 0, 0);
- test("abcdefghij", 9, 1, "", 0, 0, 1);
- test("abcdefghij", 9, 1, "", 0, 1, 1);
- test("abcdefghij", 9, 1, "", 1, 0, 0);
- test("abcdefghij", 9, 1, "abcde", 0, 0, 1);
- test("abcdefghij", 9, 1, "abcde", 0, 1, 9);
- test("abcdefghij", 9, 1, "abcde", 0, 2, 9);
- test("abcdefghij", 9, 1, "abcde", 0, 4, 9);
- test("abcdefghij", 9, 1, "abcde", 0, 5, 9);
- test("abcdefghij", 9, 1, "abcde", 0, 6, 9);
- test("abcdefghij", 9, 1, "abcde", 1, 0, 1);
- test("abcdefghij", 9, 1, "abcde", 1, 1, 8);
- test("abcdefghij", 9, 1, "abcde", 1, 2, 8);
- test("abcdefghij", 9, 1, "abcde", 1, 3, 8);
- test("abcdefghij", 9, 1, "abcde", 1, 4, 8);
- test("abcdefghij", 9, 1, "abcde", 1, 5, 8);
- test("abcdefghij", 9, 1, "abcde", 2, 0, 1);
- test("abcdefghij", 9, 1, "abcde", 2, 1, 7);
- test("abcdefghij", 9, 1, "abcde", 2, 2, 7);
- test("abcdefghij", 9, 1, "abcde", 2, 3, 7);
- test("abcdefghij", 9, 1, "abcde", 2, 4, 7);
- test("abcdefghij", 9, 1, "abcde", 4, 0, 1);
- test("abcdefghij", 9, 1, "abcde", 4, 1, 5);
- test("abcdefghij", 9, 1, "abcde", 4, 2, 5);
- test("abcdefghij", 9, 1, "abcde", 5, 0, 1);
- test("abcdefghij", 9, 1, "abcde", 5, 1, 1);
- test("abcdefghij", 9, 1, "abcde", 6, 0, 0);
- test("abcdefghij", 9, 1, "abcdefghij", 0, 0, 1);
- test("abcdefghij", 9, 1, "abcdefghij", 0, 1, 9);
- test("abcdefghij", 9, 1, "abcdefghij", 0, 5, 9);
- test("abcdefghij", 9, 1, "abcdefghij", 0, 9, 9);
- test("abcdefghij", 9, 1, "abcdefghij", 0, 10, 9);
- test("abcdefghij", 9, 1, "abcdefghij", 0, 11, 9);
- test("abcdefghij", 9, 1, "abcdefghij", 1, 0, 1);
- test("abcdefghij", 9, 1, "abcdefghij", 1, 1, 8);
- test("abcdefghij", 9, 1, "abcdefghij", 1, 4, 8);
- test("abcdefghij", 9, 1, "abcdefghij", 1, 8, 8);
- test("abcdefghij", 9, 1, "abcdefghij", 1, 9, 8);
- test("abcdefghij", 9, 1, "abcdefghij", 1, 10, 8);
- test("abcdefghij", 9, 1, "abcdefghij", 5, 0, 1);
- test("abcdefghij", 9, 1, "abcdefghij", 5, 1, 4);
- test("abcdefghij", 9, 1, "abcdefghij", 5, 2, 4);
- test("abcdefghij", 9, 1, "abcdefghij", 5, 4, 4);
- test("abcdefghij", 9, 1, "abcdefghij", 5, 5, 4);
- test("abcdefghij", 9, 1, "abcdefghij", 5, 6, 4);
- test("abcdefghij", 9, 1, "abcdefghij", 9, 0, 1);
- test("abcdefghij", 9, 1, "abcdefghij", 9, 1, 0);
- test("abcdefghij", 9, 1, "abcdefghij", 9, 2, 0);
- test("abcdefghij", 9, 1, "abcdefghij", 10, 0, 1);
- test("abcdefghij", 9, 1, "abcdefghij", 10, 1, 1);
- test("abcdefghij", 9, 1, "abcdefghij", 11, 0, 0);
- test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 0, 0, 1);
- test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 0, 1, 9);
- test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 0, 10, 9);
- test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 0, 19, 9);
- test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 0, 20, 9);
- test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 0, 21, 9);
- test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 1, 0, 1);
- test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 1, 1, 8);
- test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 1, 9, 8);
- test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 1, 18, 8);
- test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 1, 19, 8);
- test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 1, 20, 8);
- test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 10, 0, 1);
- test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 10, 1, -1);
- test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 10, 5, -1);
- test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 10, 9, -1);
- test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 10, 10, -1);
- test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 10, 11, -1);
- test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 19, 0, 1);
- test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 19, 1, -10);
+void test33() {
+ test("abcdefghij", 9, 0, "abcdefghij", 9, 0, 0);
+ test("abcdefghij", 9, 0, "abcdefghij", 9, 1, -1);
+ test("abcdefghij", 9, 0, "abcdefghij", 9, 2, -1);
+ test("abcdefghij", 9, 0, "abcdefghij", 10, 0, 0);
+ test("abcdefghij", 9, 0, "abcdefghij", 10, 1, 0);
+ test("abcdefghij", 9, 0, "abcdefghij", 11, 0, 0);
+ test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 0, 0, 0);
+ test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 0, 1, -1);
+ test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 0, 10, -10);
+ test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 0, 19, -19);
+ test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 0, 20, -20);
+ test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 0, 21, -20);
+ test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 1, 0, 0);
+ test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 1, 1, -1);
+ test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 1, 9, -9);
+ test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 1, 18, -18);
+ test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 1, 19, -19);
+ test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 1, 20, -19);
+ test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 10, 0, 0);
+ test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 10, 1, -1);
+ test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 10, 5, -5);
+ test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 10, 9, -9);
+ test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 10, 10, -10);
+ test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 10, 11, -10);
+ test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 19, 0, 0);
+ test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 19, 1, -1);
+ test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 19, 2, -1);
+ test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 20, 0, 0);
+ test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 20, 1, 0);
+ test("abcdefghij", 9, 0, "abcdefghijklmnopqrst", 21, 0, 0);
+ test("abcdefghij", 9, 1, "", 0, 0, 1);
+ test("abcdefghij", 9, 1, "", 0, 1, 1);
+ test("abcdefghij", 9, 1, "", 1, 0, 0);
+ test("abcdefghij", 9, 1, "abcde", 0, 0, 1);
+ test("abcdefghij", 9, 1, "abcde", 0, 1, 9);
+ test("abcdefghij", 9, 1, "abcde", 0, 2, 9);
+ test("abcdefghij", 9, 1, "abcde", 0, 4, 9);
+ test("abcdefghij", 9, 1, "abcde", 0, 5, 9);
+ test("abcdefghij", 9, 1, "abcde", 0, 6, 9);
+ test("abcdefghij", 9, 1, "abcde", 1, 0, 1);
+ test("abcdefghij", 9, 1, "abcde", 1, 1, 8);
+ test("abcdefghij", 9, 1, "abcde", 1, 2, 8);
+ test("abcdefghij", 9, 1, "abcde", 1, 3, 8);
+ test("abcdefghij", 9, 1, "abcde", 1, 4, 8);
+ test("abcdefghij", 9, 1, "abcde", 1, 5, 8);
+ test("abcdefghij", 9, 1, "abcde", 2, 0, 1);
+ test("abcdefghij", 9, 1, "abcde", 2, 1, 7);
+ test("abcdefghij", 9, 1, "abcde", 2, 2, 7);
+ test("abcdefghij", 9, 1, "abcde", 2, 3, 7);
+ test("abcdefghij", 9, 1, "abcde", 2, 4, 7);
+ test("abcdefghij", 9, 1, "abcde", 4, 0, 1);
+ test("abcdefghij", 9, 1, "abcde", 4, 1, 5);
+ test("abcdefghij", 9, 1, "abcde", 4, 2, 5);
+ test("abcdefghij", 9, 1, "abcde", 5, 0, 1);
+ test("abcdefghij", 9, 1, "abcde", 5, 1, 1);
+ test("abcdefghij", 9, 1, "abcde", 6, 0, 0);
+ test("abcdefghij", 9, 1, "abcdefghij", 0, 0, 1);
+ test("abcdefghij", 9, 1, "abcdefghij", 0, 1, 9);
+ test("abcdefghij", 9, 1, "abcdefghij", 0, 5, 9);
+ test("abcdefghij", 9, 1, "abcdefghij", 0, 9, 9);
+ test("abcdefghij", 9, 1, "abcdefghij", 0, 10, 9);
+ test("abcdefghij", 9, 1, "abcdefghij", 0, 11, 9);
+ test("abcdefghij", 9, 1, "abcdefghij", 1, 0, 1);
+ test("abcdefghij", 9, 1, "abcdefghij", 1, 1, 8);
+ test("abcdefghij", 9, 1, "abcdefghij", 1, 4, 8);
+ test("abcdefghij", 9, 1, "abcdefghij", 1, 8, 8);
+ test("abcdefghij", 9, 1, "abcdefghij", 1, 9, 8);
+ test("abcdefghij", 9, 1, "abcdefghij", 1, 10, 8);
+ test("abcdefghij", 9, 1, "abcdefghij", 5, 0, 1);
+ test("abcdefghij", 9, 1, "abcdefghij", 5, 1, 4);
+ test("abcdefghij", 9, 1, "abcdefghij", 5, 2, 4);
+ test("abcdefghij", 9, 1, "abcdefghij", 5, 4, 4);
+ test("abcdefghij", 9, 1, "abcdefghij", 5, 5, 4);
+ test("abcdefghij", 9, 1, "abcdefghij", 5, 6, 4);
+ test("abcdefghij", 9, 1, "abcdefghij", 9, 0, 1);
+ test("abcdefghij", 9, 1, "abcdefghij", 9, 1, 0);
+ test("abcdefghij", 9, 1, "abcdefghij", 9, 2, 0);
+ test("abcdefghij", 9, 1, "abcdefghij", 10, 0, 1);
+ test("abcdefghij", 9, 1, "abcdefghij", 10, 1, 1);
+ test("abcdefghij", 9, 1, "abcdefghij", 11, 0, 0);
+ test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 0, 0, 1);
+ test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 0, 1, 9);
+ test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 0, 10, 9);
+ test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 0, 19, 9);
+ test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 0, 20, 9);
+ test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 0, 21, 9);
+ test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 1, 0, 1);
+ test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 1, 1, 8);
+ test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 1, 9, 8);
+ test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 1, 18, 8);
+ test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 1, 19, 8);
+ test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 1, 20, 8);
+ test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 10, 0, 1);
+ test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 10, 1, -1);
+ test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 10, 5, -1);
+ test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 10, 9, -1);
+ test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 10, 10, -1);
+ test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 10, 11, -1);
+ test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 19, 0, 1);
+ test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 19, 1, -10);
}
-void test34()
-{
- test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 19, 2, -10);
- test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 20, 0, 1);
- test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 20, 1, 1);
- test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 21, 0, 0);
- test("abcdefghij", 9, 2, "", 0, 0, 1);
- test("abcdefghij", 9, 2, "", 0, 1, 1);
- test("abcdefghij", 9, 2, "", 1, 0, 0);
- test("abcdefghij", 9, 2, "abcde", 0, 0, 1);
- test("abcdefghij", 9, 2, "abcde", 0, 1, 9);
- test("abcdefghij", 9, 2, "abcde", 0, 2, 9);
- test("abcdefghij", 9, 2, "abcde", 0, 4, 9);
- test("abcdefghij", 9, 2, "abcde", 0, 5, 9);
- test("abcdefghij", 9, 2, "abcde", 0, 6, 9);
- test("abcdefghij", 9, 2, "abcde", 1, 0, 1);
- test("abcdefghij", 9, 2, "abcde", 1, 1, 8);
- test("abcdefghij", 9, 2, "abcde", 1, 2, 8);
- test("abcdefghij", 9, 2, "abcde", 1, 3, 8);
- test("abcdefghij", 9, 2, "abcde", 1, 4, 8);
- test("abcdefghij", 9, 2, "abcde", 1, 5, 8);
- test("abcdefghij", 9, 2, "abcde", 2, 0, 1);
- test("abcdefghij", 9, 2, "abcde", 2, 1, 7);
- test("abcdefghij", 9, 2, "abcde", 2, 2, 7);
- test("abcdefghij", 9, 2, "abcde", 2, 3, 7);
- test("abcdefghij", 9, 2, "abcde", 2, 4, 7);
- test("abcdefghij", 9, 2, "abcde", 4, 0, 1);
- test("abcdefghij", 9, 2, "abcde", 4, 1, 5);
- test("abcdefghij", 9, 2, "abcde", 4, 2, 5);
- test("abcdefghij", 9, 2, "abcde", 5, 0, 1);
- test("abcdefghij", 9, 2, "abcde", 5, 1, 1);
- test("abcdefghij", 9, 2, "abcde", 6, 0, 0);
- test("abcdefghij", 9, 2, "abcdefghij", 0, 0, 1);
- test("abcdefghij", 9, 2, "abcdefghij", 0, 1, 9);
- test("abcdefghij", 9, 2, "abcdefghij", 0, 5, 9);
- test("abcdefghij", 9, 2, "abcdefghij", 0, 9, 9);
- test("abcdefghij", 9, 2, "abcdefghij", 0, 10, 9);
- test("abcdefghij", 9, 2, "abcdefghij", 0, 11, 9);
- test("abcdefghij", 9, 2, "abcdefghij", 1, 0, 1);
- test("abcdefghij", 9, 2, "abcdefghij", 1, 1, 8);
- test("abcdefghij", 9, 2, "abcdefghij", 1, 4, 8);
- test("abcdefghij", 9, 2, "abcdefghij", 1, 8, 8);
- test("abcdefghij", 9, 2, "abcdefghij", 1, 9, 8);
- test("abcdefghij", 9, 2, "abcdefghij", 1, 10, 8);
- test("abcdefghij", 9, 2, "abcdefghij", 5, 0, 1);
- test("abcdefghij", 9, 2, "abcdefghij", 5, 1, 4);
- test("abcdefghij", 9, 2, "abcdefghij", 5, 2, 4);
- test("abcdefghij", 9, 2, "abcdefghij", 5, 4, 4);
- test("abcdefghij", 9, 2, "abcdefghij", 5, 5, 4);
- test("abcdefghij", 9, 2, "abcdefghij", 5, 6, 4);
- test("abcdefghij", 9, 2, "abcdefghij", 9, 0, 1);
- test("abcdefghij", 9, 2, "abcdefghij", 9, 1, 0);
- test("abcdefghij", 9, 2, "abcdefghij", 9, 2, 0);
- test("abcdefghij", 9, 2, "abcdefghij", 10, 0, 1);
- test("abcdefghij", 9, 2, "abcdefghij", 10, 1, 1);
- test("abcdefghij", 9, 2, "abcdefghij", 11, 0, 0);
- test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 0, 0, 1);
- test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 0, 1, 9);
- test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 0, 10, 9);
- test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 0, 19, 9);
- test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 0, 20, 9);
- test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 0, 21, 9);
- test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 1, 0, 1);
- test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 1, 1, 8);
- test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 1, 9, 8);
- test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 1, 18, 8);
- test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 1, 19, 8);
- test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 1, 20, 8);
- test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 10, 0, 1);
- test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 10, 1, -1);
- test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 10, 5, -1);
- test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 10, 9, -1);
- test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 10, 10, -1);
- test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 10, 11, -1);
- test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 19, 0, 1);
- test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 19, 1, -10);
- test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 19, 2, -10);
- test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 20, 0, 1);
- test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 20, 1, 1);
- test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 21, 0, 0);
- test("abcdefghij", 10, 0, "", 0, 0, 0);
- test("abcdefghij", 10, 0, "", 0, 1, 0);
- test("abcdefghij", 10, 0, "", 1, 0, 0);
- test("abcdefghij", 10, 0, "abcde", 0, 0, 0);
- test("abcdefghij", 10, 0, "abcde", 0, 1, -1);
- test("abcdefghij", 10, 0, "abcde", 0, 2, -2);
- test("abcdefghij", 10, 0, "abcde", 0, 4, -4);
- test("abcdefghij", 10, 0, "abcde", 0, 5, -5);
- test("abcdefghij", 10, 0, "abcde", 0, 6, -5);
- test("abcdefghij", 10, 0, "abcde", 1, 0, 0);
- test("abcdefghij", 10, 0, "abcde", 1, 1, -1);
- test("abcdefghij", 10, 0, "abcde", 1, 2, -2);
- test("abcdefghij", 10, 0, "abcde", 1, 3, -3);
- test("abcdefghij", 10, 0, "abcde", 1, 4, -4);
- test("abcdefghij", 10, 0, "abcde", 1, 5, -4);
- test("abcdefghij", 10, 0, "abcde", 2, 0, 0);
- test("abcdefghij", 10, 0, "abcde", 2, 1, -1);
- test("abcdefghij", 10, 0, "abcde", 2, 2, -2);
- test("abcdefghij", 10, 0, "abcde", 2, 3, -3);
- test("abcdefghij", 10, 0, "abcde", 2, 4, -3);
- test("abcdefghij", 10, 0, "abcde", 4, 0, 0);
- test("abcdefghij", 10, 0, "abcde", 4, 1, -1);
+void test34() {
+ test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 19, 2, -10);
+ test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 20, 0, 1);
+ test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 20, 1, 1);
+ test("abcdefghij", 9, 1, "abcdefghijklmnopqrst", 21, 0, 0);
+ test("abcdefghij", 9, 2, "", 0, 0, 1);
+ test("abcdefghij", 9, 2, "", 0, 1, 1);
+ test("abcdefghij", 9, 2, "", 1, 0, 0);
+ test("abcdefghij", 9, 2, "abcde", 0, 0, 1);
+ test("abcdefghij", 9, 2, "abcde", 0, 1, 9);
+ test("abcdefghij", 9, 2, "abcde", 0, 2, 9);
+ test("abcdefghij", 9, 2, "abcde", 0, 4, 9);
+ test("abcdefghij", 9, 2, "abcde", 0, 5, 9);
+ test("abcdefghij", 9, 2, "abcde", 0, 6, 9);
+ test("abcdefghij", 9, 2, "abcde", 1, 0, 1);
+ test("abcdefghij", 9, 2, "abcde", 1, 1, 8);
+ test("abcdefghij", 9, 2, "abcde", 1, 2, 8);
+ test("abcdefghij", 9, 2, "abcde", 1, 3, 8);
+ test("abcdefghij", 9, 2, "abcde", 1, 4, 8);
+ test("abcdefghij", 9, 2, "abcde", 1, 5, 8);
+ test("abcdefghij", 9, 2, "abcde", 2, 0, 1);
+ test("abcdefghij", 9, 2, "abcde", 2, 1, 7);
+ test("abcdefghij", 9, 2, "abcde", 2, 2, 7);
+ test("abcdefghij", 9, 2, "abcde", 2, 3, 7);
+ test("abcdefghij", 9, 2, "abcde", 2, 4, 7);
+ test("abcdefghij", 9, 2, "abcde", 4, 0, 1);
+ test("abcdefghij", 9, 2, "abcde", 4, 1, 5);
+ test("abcdefghij", 9, 2, "abcde", 4, 2, 5);
+ test("abcdefghij", 9, 2, "abcde", 5, 0, 1);
+ test("abcdefghij", 9, 2, "abcde", 5, 1, 1);
+ test("abcdefghij", 9, 2, "abcde", 6, 0, 0);
+ test("abcdefghij", 9, 2, "abcdefghij", 0, 0, 1);
+ test("abcdefghij", 9, 2, "abcdefghij", 0, 1, 9);
+ test("abcdefghij", 9, 2, "abcdefghij", 0, 5, 9);
+ test("abcdefghij", 9, 2, "abcdefghij", 0, 9, 9);
+ test("abcdefghij", 9, 2, "abcdefghij", 0, 10, 9);
+ test("abcdefghij", 9, 2, "abcdefghij", 0, 11, 9);
+ test("abcdefghij", 9, 2, "abcdefghij", 1, 0, 1);
+ test("abcdefghij", 9, 2, "abcdefghij", 1, 1, 8);
+ test("abcdefghij", 9, 2, "abcdefghij", 1, 4, 8);
+ test("abcdefghij", 9, 2, "abcdefghij", 1, 8, 8);
+ test("abcdefghij", 9, 2, "abcdefghij", 1, 9, 8);
+ test("abcdefghij", 9, 2, "abcdefghij", 1, 10, 8);
+ test("abcdefghij", 9, 2, "abcdefghij", 5, 0, 1);
+ test("abcdefghij", 9, 2, "abcdefghij", 5, 1, 4);
+ test("abcdefghij", 9, 2, "abcdefghij", 5, 2, 4);
+ test("abcdefghij", 9, 2, "abcdefghij", 5, 4, 4);
+ test("abcdefghij", 9, 2, "abcdefghij", 5, 5, 4);
+ test("abcdefghij", 9, 2, "abcdefghij", 5, 6, 4);
+ test("abcdefghij", 9, 2, "abcdefghij", 9, 0, 1);
+ test("abcdefghij", 9, 2, "abcdefghij", 9, 1, 0);
+ test("abcdefghij", 9, 2, "abcdefghij", 9, 2, 0);
+ test("abcdefghij", 9, 2, "abcdefghij", 10, 0, 1);
+ test("abcdefghij", 9, 2, "abcdefghij", 10, 1, 1);
+ test("abcdefghij", 9, 2, "abcdefghij", 11, 0, 0);
+ test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 0, 0, 1);
+ test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 0, 1, 9);
+ test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 0, 10, 9);
+ test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 0, 19, 9);
+ test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 0, 20, 9);
+ test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 0, 21, 9);
+ test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 1, 0, 1);
+ test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 1, 1, 8);
+ test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 1, 9, 8);
+ test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 1, 18, 8);
+ test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 1, 19, 8);
+ test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 1, 20, 8);
+ test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 10, 0, 1);
+ test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 10, 1, -1);
+ test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 10, 5, -1);
+ test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 10, 9, -1);
+ test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 10, 10, -1);
+ test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 10, 11, -1);
+ test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 19, 0, 1);
+ test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 19, 1, -10);
+ test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 19, 2, -10);
+ test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 20, 0, 1);
+ test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 20, 1, 1);
+ test("abcdefghij", 9, 2, "abcdefghijklmnopqrst", 21, 0, 0);
+ test("abcdefghij", 10, 0, "", 0, 0, 0);
+ test("abcdefghij", 10, 0, "", 0, 1, 0);
+ test("abcdefghij", 10, 0, "", 1, 0, 0);
+ test("abcdefghij", 10, 0, "abcde", 0, 0, 0);
+ test("abcdefghij", 10, 0, "abcde", 0, 1, -1);
+ test("abcdefghij", 10, 0, "abcde", 0, 2, -2);
+ test("abcdefghij", 10, 0, "abcde", 0, 4, -4);
+ test("abcdefghij", 10, 0, "abcde", 0, 5, -5);
+ test("abcdefghij", 10, 0, "abcde", 0, 6, -5);
+ test("abcdefghij", 10, 0, "abcde", 1, 0, 0);
+ test("abcdefghij", 10, 0, "abcde", 1, 1, -1);
+ test("abcdefghij", 10, 0, "abcde", 1, 2, -2);
+ test("abcdefghij", 10, 0, "abcde", 1, 3, -3);
+ test("abcdefghij", 10, 0, "abcde", 1, 4, -4);
+ test("abcdefghij", 10, 0, "abcde", 1, 5, -4);
+ test("abcdefghij", 10, 0, "abcde", 2, 0, 0);
+ test("abcdefghij", 10, 0, "abcde", 2, 1, -1);
+ test("abcdefghij", 10, 0, "abcde", 2, 2, -2);
+ test("abcdefghij", 10, 0, "abcde", 2, 3, -3);
+ test("abcdefghij", 10, 0, "abcde", 2, 4, -3);
+ test("abcdefghij", 10, 0, "abcde", 4, 0, 0);
+ test("abcdefghij", 10, 0, "abcde", 4, 1, -1);
}
-void test35()
-{
- test("abcdefghij", 10, 0, "abcde", 4, 2, -1);
- test("abcdefghij", 10, 0, "abcde", 5, 0, 0);
- test("abcdefghij", 10, 0, "abcde", 5, 1, 0);
- test("abcdefghij", 10, 0, "abcde", 6, 0, 0);
- test("abcdefghij", 10, 0, "abcdefghij", 0, 0, 0);
- test("abcdefghij", 10, 0, "abcdefghij", 0, 1, -1);
- test("abcdefghij", 10, 0, "abcdefghij", 0, 5, -5);
- test("abcdefghij", 10, 0, "abcdefghij", 0, 9, -9);
- test("abcdefghij", 10, 0, "abcdefghij", 0, 10, -10);
- test("abcdefghij", 10, 0, "abcdefghij", 0, 11, -10);
- test("abcdefghij", 10, 0, "abcdefghij", 1, 0, 0);
- test("abcdefghij", 10, 0, "abcdefghij", 1, 1, -1);
- test("abcdefghij", 10, 0, "abcdefghij", 1, 4, -4);
- test("abcdefghij", 10, 0, "abcdefghij", 1, 8, -8);
- test("abcdefghij", 10, 0, "abcdefghij", 1, 9, -9);
- test("abcdefghij", 10, 0, "abcdefghij", 1, 10, -9);
- test("abcdefghij", 10, 0, "abcdefghij", 5, 0, 0);
- test("abcdefghij", 10, 0, "abcdefghij", 5, 1, -1);
- test("abcdefghij", 10, 0, "abcdefghij", 5, 2, -2);
- test("abcdefghij", 10, 0, "abcdefghij", 5, 4, -4);
- test("abcdefghij", 10, 0, "abcdefghij", 5, 5, -5);
- test("abcdefghij", 10, 0, "abcdefghij", 5, 6, -5);
- test("abcdefghij", 10, 0, "abcdefghij", 9, 0, 0);
- test("abcdefghij", 10, 0, "abcdefghij", 9, 1, -1);
- test("abcdefghij", 10, 0, "abcdefghij", 9, 2, -1);
- test("abcdefghij", 10, 0, "abcdefghij", 10, 0, 0);
- test("abcdefghij", 10, 0, "abcdefghij", 10, 1, 0);
- test("abcdefghij", 10, 0, "abcdefghij", 11, 0, 0);
- test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 0, 0, 0);
- test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 0, 1, -1);
- test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 0, 10, -10);
- test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 0, 19, -19);
- test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 0, 20, -20);
- test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 0, 21, -20);
- test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 1, 0, 0);
- test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 1, 1, -1);
- test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 1, 9, -9);
- test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 1, 18, -18);
- test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 1, 19, -19);
- test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 1, 20, -19);
- test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 10, 0, 0);
- test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 10, 1, -1);
- test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 10, 5, -5);
- test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 10, 9, -9);
- test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 10, 10, -10);
- test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 10, 11, -10);
- test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 19, 0, 0);
- test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 19, 1, -1);
- test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 19, 2, -1);
- test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 20, 0, 0);
- test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 20, 1, 0);
- test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 21, 0, 0);
- test("abcdefghij", 10, 1, "", 0, 0, 0);
- test("abcdefghij", 10, 1, "", 0, 1, 0);
- test("abcdefghij", 10, 1, "", 1, 0, 0);
- test("abcdefghij", 10, 1, "abcde", 0, 0, 0);
- test("abcdefghij", 10, 1, "abcde", 0, 1, -1);
- test("abcdefghij", 10, 1, "abcde", 0, 2, -2);
- test("abcdefghij", 10, 1, "abcde", 0, 4, -4);
- test("abcdefghij", 10, 1, "abcde", 0, 5, -5);
- test("abcdefghij", 10, 1, "abcde", 0, 6, -5);
- test("abcdefghij", 10, 1, "abcde", 1, 0, 0);
- test("abcdefghij", 10, 1, "abcde", 1, 1, -1);
- test("abcdefghij", 10, 1, "abcde", 1, 2, -2);
- test("abcdefghij", 10, 1, "abcde", 1, 3, -3);
- test("abcdefghij", 10, 1, "abcde", 1, 4, -4);
- test("abcdefghij", 10, 1, "abcde", 1, 5, -4);
- test("abcdefghij", 10, 1, "abcde", 2, 0, 0);
- test("abcdefghij", 10, 1, "abcde", 2, 1, -1);
- test("abcdefghij", 10, 1, "abcde", 2, 2, -2);
- test("abcdefghij", 10, 1, "abcde", 2, 3, -3);
- test("abcdefghij", 10, 1, "abcde", 2, 4, -3);
- test("abcdefghij", 10, 1, "abcde", 4, 0, 0);
- test("abcdefghij", 10, 1, "abcde", 4, 1, -1);
- test("abcdefghij", 10, 1, "abcde", 4, 2, -1);
- test("abcdefghij", 10, 1, "abcde", 5, 0, 0);
- test("abcdefghij", 10, 1, "abcde", 5, 1, 0);
- test("abcdefghij", 10, 1, "abcde", 6, 0, 0);
- test("abcdefghij", 10, 1, "abcdefghij", 0, 0, 0);
- test("abcdefghij", 10, 1, "abcdefghij", 0, 1, -1);
- test("abcdefghij", 10, 1, "abcdefghij", 0, 5, -5);
- test("abcdefghij", 10, 1, "abcdefghij", 0, 9, -9);
- test("abcdefghij", 10, 1, "abcdefghij", 0, 10, -10);
- test("abcdefghij", 10, 1, "abcdefghij", 0, 11, -10);
- test("abcdefghij", 10, 1, "abcdefghij", 1, 0, 0);
- test("abcdefghij", 10, 1, "abcdefghij", 1, 1, -1);
- test("abcdefghij", 10, 1, "abcdefghij", 1, 4, -4);
- test("abcdefghij", 10, 1, "abcdefghij", 1, 8, -8);
- test("abcdefghij", 10, 1, "abcdefghij", 1, 9, -9);
- test("abcdefghij", 10, 1, "abcdefghij", 1, 10, -9);
- test("abcdefghij", 10, 1, "abcdefghij", 5, 0, 0);
- test("abcdefghij", 10, 1, "abcdefghij", 5, 1, -1);
- test("abcdefghij", 10, 1, "abcdefghij", 5, 2, -2);
- test("abcdefghij", 10, 1, "abcdefghij", 5, 4, -4);
- test("abcdefghij", 10, 1, "abcdefghij", 5, 5, -5);
- test("abcdefghij", 10, 1, "abcdefghij", 5, 6, -5);
- test("abcdefghij", 10, 1, "abcdefghij", 9, 0, 0);
- test("abcdefghij", 10, 1, "abcdefghij", 9, 1, -1);
- test("abcdefghij", 10, 1, "abcdefghij", 9, 2, -1);
- test("abcdefghij", 10, 1, "abcdefghij", 10, 0, 0);
+void test35() {
+ test("abcdefghij", 10, 0, "abcde", 4, 2, -1);
+ test("abcdefghij", 10, 0, "abcde", 5, 0, 0);
+ test("abcdefghij", 10, 0, "abcde", 5, 1, 0);
+ test("abcdefghij", 10, 0, "abcde", 6, 0, 0);
+ test("abcdefghij", 10, 0, "abcdefghij", 0, 0, 0);
+ test("abcdefghij", 10, 0, "abcdefghij", 0, 1, -1);
+ test("abcdefghij", 10, 0, "abcdefghij", 0, 5, -5);
+ test("abcdefghij", 10, 0, "abcdefghij", 0, 9, -9);
+ test("abcdefghij", 10, 0, "abcdefghij", 0, 10, -10);
+ test("abcdefghij", 10, 0, "abcdefghij", 0, 11, -10);
+ test("abcdefghij", 10, 0, "abcdefghij", 1, 0, 0);
+ test("abcdefghij", 10, 0, "abcdefghij", 1, 1, -1);
+ test("abcdefghij", 10, 0, "abcdefghij", 1, 4, -4);
+ test("abcdefghij", 10, 0, "abcdefghij", 1, 8, -8);
+ test("abcdefghij", 10, 0, "abcdefghij", 1, 9, -9);
+ test("abcdefghij", 10, 0, "abcdefghij", 1, 10, -9);
+ test("abcdefghij", 10, 0, "abcdefghij", 5, 0, 0);
+ test("abcdefghij", 10, 0, "abcdefghij", 5, 1, -1);
+ test("abcdefghij", 10, 0, "abcdefghij", 5, 2, -2);
+ test("abcdefghij", 10, 0, "abcdefghij", 5, 4, -4);
+ test("abcdefghij", 10, 0, "abcdefghij", 5, 5, -5);
+ test("abcdefghij", 10, 0, "abcdefghij", 5, 6, -5);
+ test("abcdefghij", 10, 0, "abcdefghij", 9, 0, 0);
+ test("abcdefghij", 10, 0, "abcdefghij", 9, 1, -1);
+ test("abcdefghij", 10, 0, "abcdefghij", 9, 2, -1);
+ test("abcdefghij", 10, 0, "abcdefghij", 10, 0, 0);
+ test("abcdefghij", 10, 0, "abcdefghij", 10, 1, 0);
+ test("abcdefghij", 10, 0, "abcdefghij", 11, 0, 0);
+ test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 0, 0, 0);
+ test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 0, 1, -1);
+ test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 0, 10, -10);
+ test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 0, 19, -19);
+ test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 0, 20, -20);
+ test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 0, 21, -20);
+ test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 1, 0, 0);
+ test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 1, 1, -1);
+ test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 1, 9, -9);
+ test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 1, 18, -18);
+ test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 1, 19, -19);
+ test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 1, 20, -19);
+ test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 10, 0, 0);
+ test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 10, 1, -1);
+ test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 10, 5, -5);
+ test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 10, 9, -9);
+ test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 10, 10, -10);
+ test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 10, 11, -10);
+ test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 19, 0, 0);
+ test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 19, 1, -1);
+ test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 19, 2, -1);
+ test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 20, 0, 0);
+ test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 20, 1, 0);
+ test("abcdefghij", 10, 0, "abcdefghijklmnopqrst", 21, 0, 0);
+ test("abcdefghij", 10, 1, "", 0, 0, 0);
+ test("abcdefghij", 10, 1, "", 0, 1, 0);
+ test("abcdefghij", 10, 1, "", 1, 0, 0);
+ test("abcdefghij", 10, 1, "abcde", 0, 0, 0);
+ test("abcdefghij", 10, 1, "abcde", 0, 1, -1);
+ test("abcdefghij", 10, 1, "abcde", 0, 2, -2);
+ test("abcdefghij", 10, 1, "abcde", 0, 4, -4);
+ test("abcdefghij", 10, 1, "abcde", 0, 5, -5);
+ test("abcdefghij", 10, 1, "abcde", 0, 6, -5);
+ test("abcdefghij", 10, 1, "abcde", 1, 0, 0);
+ test("abcdefghij", 10, 1, "abcde", 1, 1, -1);
+ test("abcdefghij", 10, 1, "abcde", 1, 2, -2);
+ test("abcdefghij", 10, 1, "abcde", 1, 3, -3);
+ test("abcdefghij", 10, 1, "abcde", 1, 4, -4);
+ test("abcdefghij", 10, 1, "abcde", 1, 5, -4);
+ test("abcdefghij", 10, 1, "abcde", 2, 0, 0);
+ test("abcdefghij", 10, 1, "abcde", 2, 1, -1);
+ test("abcdefghij", 10, 1, "abcde", 2, 2, -2);
+ test("abcdefghij", 10, 1, "abcde", 2, 3, -3);
+ test("abcdefghij", 10, 1, "abcde", 2, 4, -3);
+ test("abcdefghij", 10, 1, "abcde", 4, 0, 0);
+ test("abcdefghij", 10, 1, "abcde", 4, 1, -1);
+ test("abcdefghij", 10, 1, "abcde", 4, 2, -1);
+ test("abcdefghij", 10, 1, "abcde", 5, 0, 0);
+ test("abcdefghij", 10, 1, "abcde", 5, 1, 0);
+ test("abcdefghij", 10, 1, "abcde", 6, 0, 0);
+ test("abcdefghij", 10, 1, "abcdefghij", 0, 0, 0);
+ test("abcdefghij", 10, 1, "abcdefghij", 0, 1, -1);
+ test("abcdefghij", 10, 1, "abcdefghij", 0, 5, -5);
+ test("abcdefghij", 10, 1, "abcdefghij", 0, 9, -9);
+ test("abcdefghij", 10, 1, "abcdefghij", 0, 10, -10);
+ test("abcdefghij", 10, 1, "abcdefghij", 0, 11, -10);
+ test("abcdefghij", 10, 1, "abcdefghij", 1, 0, 0);
+ test("abcdefghij", 10, 1, "abcdefghij", 1, 1, -1);
+ test("abcdefghij", 10, 1, "abcdefghij", 1, 4, -4);
+ test("abcdefghij", 10, 1, "abcdefghij", 1, 8, -8);
+ test("abcdefghij", 10, 1, "abcdefghij", 1, 9, -9);
+ test("abcdefghij", 10, 1, "abcdefghij", 1, 10, -9);
+ test("abcdefghij", 10, 1, "abcdefghij", 5, 0, 0);
+ test("abcdefghij", 10, 1, "abcdefghij", 5, 1, -1);
+ test("abcdefghij", 10, 1, "abcdefghij", 5, 2, -2);
+ test("abcdefghij", 10, 1, "abcdefghij", 5, 4, -4);
+ test("abcdefghij", 10, 1, "abcdefghij", 5, 5, -5);
+ test("abcdefghij", 10, 1, "abcdefghij", 5, 6, -5);
+ test("abcdefghij", 10, 1, "abcdefghij", 9, 0, 0);
+ test("abcdefghij", 10, 1, "abcdefghij", 9, 1, -1);
+ test("abcdefghij", 10, 1, "abcdefghij", 9, 2, -1);
+ test("abcdefghij", 10, 1, "abcdefghij", 10, 0, 0);
}
-void test36()
-{
- test("abcdefghij", 10, 1, "abcdefghij", 10, 1, 0);
- test("abcdefghij", 10, 1, "abcdefghij", 11, 0, 0);
- test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 0, 0, 0);
- test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 0, 1, -1);
- test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 0, 10, -10);
- test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 0, 19, -19);
- test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 0, 20, -20);
- test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 0, 21, -20);
- test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 1, 0, 0);
- test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 1, 1, -1);
- test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 1, 9, -9);
- test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 1, 18, -18);
- test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 1, 19, -19);
- test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 1, 20, -19);
- test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 10, 0, 0);
- test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 10, 1, -1);
- test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 10, 5, -5);
- test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 10, 9, -9);
- test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 10, 10, -10);
- test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 10, 11, -10);
- test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 19, 0, 0);
- test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 19, 1, -1);
- test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 19, 2, -1);
- test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 20, 0, 0);
- test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 20, 1, 0);
- test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 21, 0, 0);
- test("abcdefghij", 11, 0, "", 0, 0, 0);
- test("abcdefghij", 11, 0, "", 0, 1, 0);
- test("abcdefghij", 11, 0, "", 1, 0, 0);
- test("abcdefghij", 11, 0, "abcde", 0, 0, 0);
- test("abcdefghij", 11, 0, "abcde", 0, 1, 0);
- test("abcdefghij", 11, 0, "abcde", 0, 2, 0);
- test("abcdefghij", 11, 0, "abcde", 0, 4, 0);
- test("abcdefghij", 11, 0, "abcde", 0, 5, 0);
- test("abcdefghij", 11, 0, "abcde", 0, 6, 0);
- test("abcdefghij", 11, 0, "abcde", 1, 0, 0);
- test("abcdefghij", 11, 0, "abcde", 1, 1, 0);
- test("abcdefghij", 11, 0, "abcde", 1, 2, 0);
- test("abcdefghij", 11, 0, "abcde", 1, 3, 0);
- test("abcdefghij", 11, 0, "abcde", 1, 4, 0);
- test("abcdefghij", 11, 0, "abcde", 1, 5, 0);
- test("abcdefghij", 11, 0, "abcde", 2, 0, 0);
- test("abcdefghij", 11, 0, "abcde", 2, 1, 0);
- test("abcdefghij", 11, 0, "abcde", 2, 2, 0);
- test("abcdefghij", 11, 0, "abcde", 2, 3, 0);
- test("abcdefghij", 11, 0, "abcde", 2, 4, 0);
- test("abcdefghij", 11, 0, "abcde", 4, 0, 0);
- test("abcdefghij", 11, 0, "abcde", 4, 1, 0);
- test("abcdefghij", 11, 0, "abcde", 4, 2, 0);
- test("abcdefghij", 11, 0, "abcde", 5, 0, 0);
- test("abcdefghij", 11, 0, "abcde", 5, 1, 0);
- test("abcdefghij", 11, 0, "abcde", 6, 0, 0);
- test("abcdefghij", 11, 0, "abcdefghij", 0, 0, 0);
- test("abcdefghij", 11, 0, "abcdefghij", 0, 1, 0);
- test("abcdefghij", 11, 0, "abcdefghij", 0, 5, 0);
- test("abcdefghij", 11, 0, "abcdefghij", 0, 9, 0);
- test("abcdefghij", 11, 0, "abcdefghij", 0, 10, 0);
- test("abcdefghij", 11, 0, "abcdefghij", 0, 11, 0);
- test("abcdefghij", 11, 0, "abcdefghij", 1, 0, 0);
- test("abcdefghij", 11, 0, "abcdefghij", 1, 1, 0);
- test("abcdefghij", 11, 0, "abcdefghij", 1, 4, 0);
- test("abcdefghij", 11, 0, "abcdefghij", 1, 8, 0);
- test("abcdefghij", 11, 0, "abcdefghij", 1, 9, 0);
- test("abcdefghij", 11, 0, "abcdefghij", 1, 10, 0);
- test("abcdefghij", 11, 0, "abcdefghij", 5, 0, 0);
- test("abcdefghij", 11, 0, "abcdefghij", 5, 1, 0);
- test("abcdefghij", 11, 0, "abcdefghij", 5, 2, 0);
- test("abcdefghij", 11, 0, "abcdefghij", 5, 4, 0);
- test("abcdefghij", 11, 0, "abcdefghij", 5, 5, 0);
- test("abcdefghij", 11, 0, "abcdefghij", 5, 6, 0);
- test("abcdefghij", 11, 0, "abcdefghij", 9, 0, 0);
- test("abcdefghij", 11, 0, "abcdefghij", 9, 1, 0);
- test("abcdefghij", 11, 0, "abcdefghij", 9, 2, 0);
- test("abcdefghij", 11, 0, "abcdefghij", 10, 0, 0);
- test("abcdefghij", 11, 0, "abcdefghij", 10, 1, 0);
- test("abcdefghij", 11, 0, "abcdefghij", 11, 0, 0);
- test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 0, 0, 0);
- test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 0, 1, 0);
- test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 0, 10, 0);
- test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 0, 19, 0);
- test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 0, 20, 0);
- test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 0, 21, 0);
- test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 1, 0, 0);
- test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 1, 1, 0);
- test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 1, 9, 0);
- test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 1, 18, 0);
- test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 1, 19, 0);
- test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 1, 20, 0);
- test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 10, 0, 0);
- test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 10, 1, 0);
- test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 10, 5, 0);
- test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 10, 9, 0);
- test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 10, 10, 0);
- test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 10, 11, 0);
- test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 19, 0, 0);
- test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 19, 1, 0);
- test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 19, 2, 0);
- test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 20, 0, 0);
- test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 20, 1, 0);
- test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 21, 0, 0);
+void test36() {
+ test("abcdefghij", 10, 1, "abcdefghij", 10, 1, 0);
+ test("abcdefghij", 10, 1, "abcdefghij", 11, 0, 0);
+ test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 0, 0, 0);
+ test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 0, 1, -1);
+ test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 0, 10, -10);
+ test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 0, 19, -19);
+ test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 0, 20, -20);
+ test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 0, 21, -20);
+ test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 1, 0, 0);
+ test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 1, 1, -1);
+ test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 1, 9, -9);
+ test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 1, 18, -18);
+ test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 1, 19, -19);
+ test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 1, 20, -19);
+ test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 10, 0, 0);
+ test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 10, 1, -1);
+ test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 10, 5, -5);
+ test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 10, 9, -9);
+ test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 10, 10, -10);
+ test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 10, 11, -10);
+ test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 19, 0, 0);
+ test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 19, 1, -1);
+ test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 19, 2, -1);
+ test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 20, 0, 0);
+ test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 20, 1, 0);
+ test("abcdefghij", 10, 1, "abcdefghijklmnopqrst", 21, 0, 0);
+ test("abcdefghij", 11, 0, "", 0, 0, 0);
+ test("abcdefghij", 11, 0, "", 0, 1, 0);
+ test("abcdefghij", 11, 0, "", 1, 0, 0);
+ test("abcdefghij", 11, 0, "abcde", 0, 0, 0);
+ test("abcdefghij", 11, 0, "abcde", 0, 1, 0);
+ test("abcdefghij", 11, 0, "abcde", 0, 2, 0);
+ test("abcdefghij", 11, 0, "abcde", 0, 4, 0);
+ test("abcdefghij", 11, 0, "abcde", 0, 5, 0);
+ test("abcdefghij", 11, 0, "abcde", 0, 6, 0);
+ test("abcdefghij", 11, 0, "abcde", 1, 0, 0);
+ test("abcdefghij", 11, 0, "abcde", 1, 1, 0);
+ test("abcdefghij", 11, 0, "abcde", 1, 2, 0);
+ test("abcdefghij", 11, 0, "abcde", 1, 3, 0);
+ test("abcdefghij", 11, 0, "abcde", 1, 4, 0);
+ test("abcdefghij", 11, 0, "abcde", 1, 5, 0);
+ test("abcdefghij", 11, 0, "abcde", 2, 0, 0);
+ test("abcdefghij", 11, 0, "abcde", 2, 1, 0);
+ test("abcdefghij", 11, 0, "abcde", 2, 2, 0);
+ test("abcdefghij", 11, 0, "abcde", 2, 3, 0);
+ test("abcdefghij", 11, 0, "abcde", 2, 4, 0);
+ test("abcdefghij", 11, 0, "abcde", 4, 0, 0);
+ test("abcdefghij", 11, 0, "abcde", 4, 1, 0);
+ test("abcdefghij", 11, 0, "abcde", 4, 2, 0);
+ test("abcdefghij", 11, 0, "abcde", 5, 0, 0);
+ test("abcdefghij", 11, 0, "abcde", 5, 1, 0);
+ test("abcdefghij", 11, 0, "abcde", 6, 0, 0);
+ test("abcdefghij", 11, 0, "abcdefghij", 0, 0, 0);
+ test("abcdefghij", 11, 0, "abcdefghij", 0, 1, 0);
+ test("abcdefghij", 11, 0, "abcdefghij", 0, 5, 0);
+ test("abcdefghij", 11, 0, "abcdefghij", 0, 9, 0);
+ test("abcdefghij", 11, 0, "abcdefghij", 0, 10, 0);
+ test("abcdefghij", 11, 0, "abcdefghij", 0, 11, 0);
+ test("abcdefghij", 11, 0, "abcdefghij", 1, 0, 0);
+ test("abcdefghij", 11, 0, "abcdefghij", 1, 1, 0);
+ test("abcdefghij", 11, 0, "abcdefghij", 1, 4, 0);
+ test("abcdefghij", 11, 0, "abcdefghij", 1, 8, 0);
+ test("abcdefghij", 11, 0, "abcdefghij", 1, 9, 0);
+ test("abcdefghij", 11, 0, "abcdefghij", 1, 10, 0);
+ test("abcdefghij", 11, 0, "abcdefghij", 5, 0, 0);
+ test("abcdefghij", 11, 0, "abcdefghij", 5, 1, 0);
+ test("abcdefghij", 11, 0, "abcdefghij", 5, 2, 0);
+ test("abcdefghij", 11, 0, "abcdefghij", 5, 4, 0);
+ test("abcdefghij", 11, 0, "abcdefghij", 5, 5, 0);
+ test("abcdefghij", 11, 0, "abcdefghij", 5, 6, 0);
+ test("abcdefghij", 11, 0, "abcdefghij", 9, 0, 0);
+ test("abcdefghij", 11, 0, "abcdefghij", 9, 1, 0);
+ test("abcdefghij", 11, 0, "abcdefghij", 9, 2, 0);
+ test("abcdefghij", 11, 0, "abcdefghij", 10, 0, 0);
+ test("abcdefghij", 11, 0, "abcdefghij", 10, 1, 0);
+ test("abcdefghij", 11, 0, "abcdefghij", 11, 0, 0);
+ test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 0, 0, 0);
+ test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 0, 1, 0);
+ test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 0, 10, 0);
+ test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 0, 19, 0);
+ test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 0, 20, 0);
+ test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 0, 21, 0);
+ test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 1, 0, 0);
+ test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 1, 1, 0);
+ test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 1, 9, 0);
+ test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 1, 18, 0);
+ test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 1, 19, 0);
+ test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 1, 20, 0);
+ test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 10, 0, 0);
+ test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 10, 1, 0);
+ test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 10, 5, 0);
+ test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 10, 9, 0);
+ test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 10, 10, 0);
+ test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 10, 11, 0);
+ test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 19, 0, 0);
+ test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 19, 1, 0);
+ test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 19, 2, 0);
+ test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 20, 0, 0);
+ test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 20, 1, 0);
+ test("abcdefghij", 11, 0, "abcdefghijklmnopqrst", 21, 0, 0);
}
-void test37()
-{
- test("abcdefghijklmnopqrst", 0, 0, "", 0, 0, 0);
- test("abcdefghijklmnopqrst", 0, 0, "", 0, 1, 0);
- test("abcdefghijklmnopqrst", 0, 0, "", 1, 0, 0);
- test("abcdefghijklmnopqrst", 0, 0, "abcde", 0, 0, 0);
- test("abcdefghijklmnopqrst", 0, 0, "abcde", 0, 1, -1);
- test("abcdefghijklmnopqrst", 0, 0, "abcde", 0, 2, -2);
- test("abcdefghijklmnopqrst", 0, 0, "abcde", 0, 4, -4);
- test("abcdefghijklmnopqrst", 0, 0, "abcde", 0, 5, -5);
- test("abcdefghijklmnopqrst", 0, 0, "abcde", 0, 6, -5);
- test("abcdefghijklmnopqrst", 0, 0, "abcde", 1, 0, 0);
- test("abcdefghijklmnopqrst", 0, 0, "abcde", 1, 1, -1);
- test("abcdefghijklmnopqrst", 0, 0, "abcde", 1, 2, -2);
- test("abcdefghijklmnopqrst", 0, 0, "abcde", 1, 3, -3);
- test("abcdefghijklmnopqrst", 0, 0, "abcde", 1, 4, -4);
- test("abcdefghijklmnopqrst", 0, 0, "abcde", 1, 5, -4);
- test("abcdefghijklmnopqrst", 0, 0, "abcde", 2, 0, 0);
- test("abcdefghijklmnopqrst", 0, 0, "abcde", 2, 1, -1);
- test("abcdefghijklmnopqrst", 0, 0, "abcde", 2, 2, -2);
- test("abcdefghijklmnopqrst", 0, 0, "abcde", 2, 3, -3);
- test("abcdefghijklmnopqrst", 0, 0, "abcde", 2, 4, -3);
- test("abcdefghijklmnopqrst", 0, 0, "abcde", 4, 0, 0);
- test("abcdefghijklmnopqrst", 0, 0, "abcde", 4, 1, -1);
- test("abcdefghijklmnopqrst", 0, 0, "abcde", 4, 2, -1);
- test("abcdefghijklmnopqrst", 0, 0, "abcde", 5, 0, 0);
- test("abcdefghijklmnopqrst", 0, 0, "abcde", 5, 1, 0);
- test("abcdefghijklmnopqrst", 0, 0, "abcde", 6, 0, 0);
- test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 0, 0, 0);
- test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 0, 1, -1);
- test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 0, 5, -5);
- test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 0, 9, -9);
- test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 0, 10, -10);
- test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 0, 11, -10);
- test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 1, 0, 0);
- test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 1, 1, -1);
- test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 1, 4, -4);
- test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 1, 8, -8);
- test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 1, 9, -9);
- test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 1, 10, -9);
- test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 5, 0, 0);
- test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 5, 1, -1);
- test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 5, 2, -2);
- test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 5, 4, -4);
- test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 5, 5, -5);
- test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 5, 6, -5);
- test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 9, 0, 0);
- test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 9, 1, -1);
- test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 9, 2, -1);
- test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 10, 0, 0);
- test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 10, 1, 0);
- test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 11, 0, 0);
- test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 0, 0, 0);
- test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 0, 1, -1);
- test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 0, 10, -10);
- test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 0, 19, -19);
- test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 0, 20, -20);
- test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 0, 21, -20);
- test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 1, 0, 0);
- test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 1, 1, -1);
- test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 1, 9, -9);
- test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 1, 18, -18);
- test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 1, 19, -19);
- test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 1, 20, -19);
- test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 10, 0, 0);
- test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 10, 1, -1);
- test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 10, 5, -5);
- test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 10, 9, -9);
- test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 10, 10, -10);
- test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 10, 11, -10);
- test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 19, 0, 0);
- test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 19, 1, -1);
- test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 19, 2, -1);
- test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 20, 0, 0);
- test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 20, 1, 0);
- test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 21, 0, 0);
- test("abcdefghijklmnopqrst", 0, 1, "", 0, 0, 1);
- test("abcdefghijklmnopqrst", 0, 1, "", 0, 1, 1);
- test("abcdefghijklmnopqrst", 0, 1, "", 1, 0, 0);
- test("abcdefghijklmnopqrst", 0, 1, "abcde", 0, 0, 1);
- test("abcdefghijklmnopqrst", 0, 1, "abcde", 0, 1, 0);
- test("abcdefghijklmnopqrst", 0, 1, "abcde", 0, 2, -1);
- test("abcdefghijklmnopqrst", 0, 1, "abcde", 0, 4, -3);
- test("abcdefghijklmnopqrst", 0, 1, "abcde", 0, 5, -4);
- test("abcdefghijklmnopqrst", 0, 1, "abcde", 0, 6, -4);
- test("abcdefghijklmnopqrst", 0, 1, "abcde", 1, 0, 1);
- test("abcdefghijklmnopqrst", 0, 1, "abcde", 1, 1, -1);
- test("abcdefghijklmnopqrst", 0, 1, "abcde", 1, 2, -1);
- test("abcdefghijklmnopqrst", 0, 1, "abcde", 1, 3, -1);
- test("abcdefghijklmnopqrst", 0, 1, "abcde", 1, 4, -1);
- test("abcdefghijklmnopqrst", 0, 1, "abcde", 1, 5, -1);
- test("abcdefghijklmnopqrst", 0, 1, "abcde", 2, 0, 1);
- test("abcdefghijklmnopqrst", 0, 1, "abcde", 2, 1, -2);
- test("abcdefghijklmnopqrst", 0, 1, "abcde", 2, 2, -2);
- test("abcdefghijklmnopqrst", 0, 1, "abcde", 2, 3, -2);
- test("abcdefghijklmnopqrst", 0, 1, "abcde", 2, 4, -2);
- test("abcdefghijklmnopqrst", 0, 1, "abcde", 4, 0, 1);
- test("abcdefghijklmnopqrst", 0, 1, "abcde", 4, 1, -4);
- test("abcdefghijklmnopqrst", 0, 1, "abcde", 4, 2, -4);
- test("abcdefghijklmnopqrst", 0, 1, "abcde", 5, 0, 1);
- test("abcdefghijklmnopqrst", 0, 1, "abcde", 5, 1, 1);
- test("abcdefghijklmnopqrst", 0, 1, "abcde", 6, 0, 0);
+void test37() {
+ test("abcdefghijklmnopqrst", 0, 0, "", 0, 0, 0);
+ test("abcdefghijklmnopqrst", 0, 0, "", 0, 1, 0);
+ test("abcdefghijklmnopqrst", 0, 0, "", 1, 0, 0);
+ test("abcdefghijklmnopqrst", 0, 0, "abcde", 0, 0, 0);
+ test("abcdefghijklmnopqrst", 0, 0, "abcde", 0, 1, -1);
+ test("abcdefghijklmnopqrst", 0, 0, "abcde", 0, 2, -2);
+ test("abcdefghijklmnopqrst", 0, 0, "abcde", 0, 4, -4);
+ test("abcdefghijklmnopqrst", 0, 0, "abcde", 0, 5, -5);
+ test("abcdefghijklmnopqrst", 0, 0, "abcde", 0, 6, -5);
+ test("abcdefghijklmnopqrst", 0, 0, "abcde", 1, 0, 0);
+ test("abcdefghijklmnopqrst", 0, 0, "abcde", 1, 1, -1);
+ test("abcdefghijklmnopqrst", 0, 0, "abcde", 1, 2, -2);
+ test("abcdefghijklmnopqrst", 0, 0, "abcde", 1, 3, -3);
+ test("abcdefghijklmnopqrst", 0, 0, "abcde", 1, 4, -4);
+ test("abcdefghijklmnopqrst", 0, 0, "abcde", 1, 5, -4);
+ test("abcdefghijklmnopqrst", 0, 0, "abcde", 2, 0, 0);
+ test("abcdefghijklmnopqrst", 0, 0, "abcde", 2, 1, -1);
+ test("abcdefghijklmnopqrst", 0, 0, "abcde", 2, 2, -2);
+ test("abcdefghijklmnopqrst", 0, 0, "abcde", 2, 3, -3);
+ test("abcdefghijklmnopqrst", 0, 0, "abcde", 2, 4, -3);
+ test("abcdefghijklmnopqrst", 0, 0, "abcde", 4, 0, 0);
+ test("abcdefghijklmnopqrst", 0, 0, "abcde", 4, 1, -1);
+ test("abcdefghijklmnopqrst", 0, 0, "abcde", 4, 2, -1);
+ test("abcdefghijklmnopqrst", 0, 0, "abcde", 5, 0, 0);
+ test("abcdefghijklmnopqrst", 0, 0, "abcde", 5, 1, 0);
+ test("abcdefghijklmnopqrst", 0, 0, "abcde", 6, 0, 0);
+ test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 0, 0, 0);
+ test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 0, 1, -1);
+ test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 0, 5, -5);
+ test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 0, 9, -9);
+ test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 0, 10, -10);
+ test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 0, 11, -10);
+ test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 1, 0, 0);
+ test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 1, 1, -1);
+ test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 1, 4, -4);
+ test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 1, 8, -8);
+ test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 1, 9, -9);
+ test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 1, 10, -9);
+ test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 5, 0, 0);
+ test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 5, 1, -1);
+ test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 5, 2, -2);
+ test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 5, 4, -4);
+ test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 5, 5, -5);
+ test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 5, 6, -5);
+ test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 9, 0, 0);
+ test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 9, 1, -1);
+ test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 9, 2, -1);
+ test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 10, 0, 0);
+ test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 10, 1, 0);
+ test("abcdefghijklmnopqrst", 0, 0, "abcdefghij", 11, 0, 0);
+ test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 0, 0, 0);
+ test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 0, 1, -1);
+ test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 0, 10, -10);
+ test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 0, 19, -19);
+ test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 0, 20, -20);
+ test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 0, 21, -20);
+ test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 1, 0, 0);
+ test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 1, 1, -1);
+ test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 1, 9, -9);
+ test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 1, 18, -18);
+ test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 1, 19, -19);
+ test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 1, 20, -19);
+ test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 10, 0, 0);
+ test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 10, 1, -1);
+ test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 10, 5, -5);
+ test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 10, 9, -9);
+ test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 10, 10, -10);
+ test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 10, 11, -10);
+ test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 19, 0, 0);
+ test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 19, 1, -1);
+ test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 19, 2, -1);
+ test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 20, 0, 0);
+ test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 20, 1, 0);
+ test("abcdefghijklmnopqrst", 0, 0, "abcdefghijklmnopqrst", 21, 0, 0);
+ test("abcdefghijklmnopqrst", 0, 1, "", 0, 0, 1);
+ test("abcdefghijklmnopqrst", 0, 1, "", 0, 1, 1);
+ test("abcdefghijklmnopqrst", 0, 1, "", 1, 0, 0);
+ test("abcdefghijklmnopqrst", 0, 1, "abcde", 0, 0, 1);
+ test("abcdefghijklmnopqrst", 0, 1, "abcde", 0, 1, 0);
+ test("abcdefghijklmnopqrst", 0, 1, "abcde", 0, 2, -1);
+ test("abcdefghijklmnopqrst", 0, 1, "abcde", 0, 4, -3);
+ test("abcdefghijklmnopqrst", 0, 1, "abcde", 0, 5, -4);
+ test("abcdefghijklmnopqrst", 0, 1, "abcde", 0, 6, -4);
+ test("abcdefghijklmnopqrst", 0, 1, "abcde", 1, 0, 1);
+ test("abcdefghijklmnopqrst", 0, 1, "abcde", 1, 1, -1);
+ test("abcdefghijklmnopqrst", 0, 1, "abcde", 1, 2, -1);
+ test("abcdefghijklmnopqrst", 0, 1, "abcde", 1, 3, -1);
+ test("abcdefghijklmnopqrst", 0, 1, "abcde", 1, 4, -1);
+ test("abcdefghijklmnopqrst", 0, 1, "abcde", 1, 5, -1);
+ test("abcdefghijklmnopqrst", 0, 1, "abcde", 2, 0, 1);
+ test("abcdefghijklmnopqrst", 0, 1, "abcde", 2, 1, -2);
+ test("abcdefghijklmnopqrst", 0, 1, "abcde", 2, 2, -2);
+ test("abcdefghijklmnopqrst", 0, 1, "abcde", 2, 3, -2);
+ test("abcdefghijklmnopqrst", 0, 1, "abcde", 2, 4, -2);
+ test("abcdefghijklmnopqrst", 0, 1, "abcde", 4, 0, 1);
+ test("abcdefghijklmnopqrst", 0, 1, "abcde", 4, 1, -4);
+ test("abcdefghijklmnopqrst", 0, 1, "abcde", 4, 2, -4);
+ test("abcdefghijklmnopqrst", 0, 1, "abcde", 5, 0, 1);
+ test("abcdefghijklmnopqrst", 0, 1, "abcde", 5, 1, 1);
+ test("abcdefghijklmnopqrst", 0, 1, "abcde", 6, 0, 0);
}
-void test38()
-{
- test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 0, 0, 1);
- test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 0, 1, 0);
- test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 0, 5, -4);
- test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 0, 9, -8);
- test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 0, 10, -9);
- test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 0, 11, -9);
- test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 1, 0, 1);
- test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 1, 1, -1);
- test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 1, 4, -1);
- test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 1, 8, -1);
- test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 1, 9, -1);
- test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 1, 10, -1);
- test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 5, 0, 1);
- test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 5, 1, -5);
- test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 5, 2, -5);
- test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 5, 4, -5);
- test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 5, 5, -5);
- test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 5, 6, -5);
- test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 9, 0, 1);
- test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 9, 1, -9);
- test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 9, 2, -9);
- test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 10, 0, 1);
- test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 10, 1, 1);
- test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 11, 0, 0);
- test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 0, 0, 1);
- test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 0, 1, 0);
- test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 0, 10, -9);
- test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 0, 19, -18);
- test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 0, 20, -19);
- test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 0, 21, -19);
- test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 1, 0, 1);
- test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 1, 1, -1);
- test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 1, 9, -1);
- test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 1, 18, -1);
- test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 1, 19, -1);
- test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 1, 20, -1);
- test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 10, 0, 1);
- test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 10, 1, -10);
- test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 10, 5, -10);
- test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 10, 9, -10);
- test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 10, 10, -10);
- test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 10, 11, -10);
- test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 19, 0, 1);
- test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 19, 1, -19);
- test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 19, 2, -19);
- test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 20, 0, 1);
- test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 20, 1, 1);
- test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 21, 0, 0);
- test("abcdefghijklmnopqrst", 0, 10, "", 0, 0, 10);
- test("abcdefghijklmnopqrst", 0, 10, "", 0, 1, 10);
- test("abcdefghijklmnopqrst", 0, 10, "", 1, 0, 0);
- test("abcdefghijklmnopqrst", 0, 10, "abcde", 0, 0, 10);
- test("abcdefghijklmnopqrst", 0, 10, "abcde", 0, 1, 9);
- test("abcdefghijklmnopqrst", 0, 10, "abcde", 0, 2, 8);
- test("abcdefghijklmnopqrst", 0, 10, "abcde", 0, 4, 6);
- test("abcdefghijklmnopqrst", 0, 10, "abcde", 0, 5, 5);
- test("abcdefghijklmnopqrst", 0, 10, "abcde", 0, 6, 5);
- test("abcdefghijklmnopqrst", 0, 10, "abcde", 1, 0, 10);
- test("abcdefghijklmnopqrst", 0, 10, "abcde", 1, 1, -1);
- test("abcdefghijklmnopqrst", 0, 10, "abcde", 1, 2, -1);
- test("abcdefghijklmnopqrst", 0, 10, "abcde", 1, 3, -1);
- test("abcdefghijklmnopqrst", 0, 10, "abcde", 1, 4, -1);
- test("abcdefghijklmnopqrst", 0, 10, "abcde", 1, 5, -1);
- test("abcdefghijklmnopqrst", 0, 10, "abcde", 2, 0, 10);
- test("abcdefghijklmnopqrst", 0, 10, "abcde", 2, 1, -2);
- test("abcdefghijklmnopqrst", 0, 10, "abcde", 2, 2, -2);
- test("abcdefghijklmnopqrst", 0, 10, "abcde", 2, 3, -2);
- test("abcdefghijklmnopqrst", 0, 10, "abcde", 2, 4, -2);
- test("abcdefghijklmnopqrst", 0, 10, "abcde", 4, 0, 10);
- test("abcdefghijklmnopqrst", 0, 10, "abcde", 4, 1, -4);
- test("abcdefghijklmnopqrst", 0, 10, "abcde", 4, 2, -4);
- test("abcdefghijklmnopqrst", 0, 10, "abcde", 5, 0, 10);
- test("abcdefghijklmnopqrst", 0, 10, "abcde", 5, 1, 10);
- test("abcdefghijklmnopqrst", 0, 10, "abcde", 6, 0, 0);
- test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 0, 0, 10);
- test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 0, 1, 9);
- test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 0, 5, 5);
- test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 0, 9, 1);
- test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 0, 10, 0);
- test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 0, 11, 0);
- test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 1, 0, 10);
- test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 1, 1, -1);
- test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 1, 4, -1);
- test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 1, 8, -1);
- test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 1, 9, -1);
- test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 1, 10, -1);
- test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 5, 0, 10);
- test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 5, 1, -5);
- test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 5, 2, -5);
- test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 5, 4, -5);
- test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 5, 5, -5);
- test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 5, 6, -5);
- test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 9, 0, 10);
- test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 9, 1, -9);
- test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 9, 2, -9);
- test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 10, 0, 10);
- test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 10, 1, 10);
- test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 11, 0, 0);
- test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 0, 0, 10);
- test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 0, 1, 9);
+void test38() {
+ test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 0, 0, 1);
+ test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 0, 1, 0);
+ test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 0, 5, -4);
+ test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 0, 9, -8);
+ test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 0, 10, -9);
+ test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 0, 11, -9);
+ test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 1, 0, 1);
+ test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 1, 1, -1);
+ test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 1, 4, -1);
+ test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 1, 8, -1);
+ test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 1, 9, -1);
+ test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 1, 10, -1);
+ test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 5, 0, 1);
+ test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 5, 1, -5);
+ test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 5, 2, -5);
+ test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 5, 4, -5);
+ test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 5, 5, -5);
+ test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 5, 6, -5);
+ test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 9, 0, 1);
+ test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 9, 1, -9);
+ test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 9, 2, -9);
+ test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 10, 0, 1);
+ test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 10, 1, 1);
+ test("abcdefghijklmnopqrst", 0, 1, "abcdefghij", 11, 0, 0);
+ test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 0, 0, 1);
+ test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 0, 1, 0);
+ test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 0, 10, -9);
+ test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 0, 19, -18);
+ test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 0, 20, -19);
+ test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 0, 21, -19);
+ test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 1, 0, 1);
+ test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 1, 1, -1);
+ test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 1, 9, -1);
+ test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 1, 18, -1);
+ test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 1, 19, -1);
+ test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 1, 20, -1);
+ test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 10, 0, 1);
+ test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 10, 1, -10);
+ test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 10, 5, -10);
+ test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 10, 9, -10);
+ test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 10, 10, -10);
+ test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 10, 11, -10);
+ test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 19, 0, 1);
+ test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 19, 1, -19);
+ test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 19, 2, -19);
+ test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 20, 0, 1);
+ test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 20, 1, 1);
+ test("abcdefghijklmnopqrst", 0, 1, "abcdefghijklmnopqrst", 21, 0, 0);
+ test("abcdefghijklmnopqrst", 0, 10, "", 0, 0, 10);
+ test("abcdefghijklmnopqrst", 0, 10, "", 0, 1, 10);
+ test("abcdefghijklmnopqrst", 0, 10, "", 1, 0, 0);
+ test("abcdefghijklmnopqrst", 0, 10, "abcde", 0, 0, 10);
+ test("abcdefghijklmnopqrst", 0, 10, "abcde", 0, 1, 9);
+ test("abcdefghijklmnopqrst", 0, 10, "abcde", 0, 2, 8);
+ test("abcdefghijklmnopqrst", 0, 10, "abcde", 0, 4, 6);
+ test("abcdefghijklmnopqrst", 0, 10, "abcde", 0, 5, 5);
+ test("abcdefghijklmnopqrst", 0, 10, "abcde", 0, 6, 5);
+ test("abcdefghijklmnopqrst", 0, 10, "abcde", 1, 0, 10);
+ test("abcdefghijklmnopqrst", 0, 10, "abcde", 1, 1, -1);
+ test("abcdefghijklmnopqrst", 0, 10, "abcde", 1, 2, -1);
+ test("abcdefghijklmnopqrst", 0, 10, "abcde", 1, 3, -1);
+ test("abcdefghijklmnopqrst", 0, 10, "abcde", 1, 4, -1);
+ test("abcdefghijklmnopqrst", 0, 10, "abcde", 1, 5, -1);
+ test("abcdefghijklmnopqrst", 0, 10, "abcde", 2, 0, 10);
+ test("abcdefghijklmnopqrst", 0, 10, "abcde", 2, 1, -2);
+ test("abcdefghijklmnopqrst", 0, 10, "abcde", 2, 2, -2);
+ test("abcdefghijklmnopqrst", 0, 10, "abcde", 2, 3, -2);
+ test("abcdefghijklmnopqrst", 0, 10, "abcde", 2, 4, -2);
+ test("abcdefghijklmnopqrst", 0, 10, "abcde", 4, 0, 10);
+ test("abcdefghijklmnopqrst", 0, 10, "abcde", 4, 1, -4);
+ test("abcdefghijklmnopqrst", 0, 10, "abcde", 4, 2, -4);
+ test("abcdefghijklmnopqrst", 0, 10, "abcde", 5, 0, 10);
+ test("abcdefghijklmnopqrst", 0, 10, "abcde", 5, 1, 10);
+ test("abcdefghijklmnopqrst", 0, 10, "abcde", 6, 0, 0);
+ test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 0, 0, 10);
+ test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 0, 1, 9);
+ test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 0, 5, 5);
+ test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 0, 9, 1);
+ test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 0, 10, 0);
+ test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 0, 11, 0);
+ test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 1, 0, 10);
+ test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 1, 1, -1);
+ test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 1, 4, -1);
+ test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 1, 8, -1);
+ test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 1, 9, -1);
+ test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 1, 10, -1);
+ test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 5, 0, 10);
+ test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 5, 1, -5);
+ test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 5, 2, -5);
+ test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 5, 4, -5);
+ test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 5, 5, -5);
+ test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 5, 6, -5);
+ test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 9, 0, 10);
+ test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 9, 1, -9);
+ test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 9, 2, -9);
+ test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 10, 0, 10);
+ test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 10, 1, 10);
+ test("abcdefghijklmnopqrst", 0, 10, "abcdefghij", 11, 0, 0);
+ test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 0, 0, 10);
+ test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 0, 1, 9);
}
-void test39()
-{
- test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 0, 10, 0);
- test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 0, 19, -9);
- test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 0, 20, -10);
- test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 0, 21, -10);
- test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 1, 0, 10);
- test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 1, 1, -1);
- test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 1, 9, -1);
- test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 1, 18, -1);
- test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 1, 19, -1);
- test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 1, 20, -1);
- test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 10, 0, 10);
- test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 10, 1, -10);
- test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 10, 5, -10);
- test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 10, 9, -10);
- test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 10, 10, -10);
- test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 10, 11, -10);
- test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 19, 0, 10);
- test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 19, 1, -19);
- test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 19, 2, -19);
- test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 20, 0, 10);
- test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 20, 1, 10);
- test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 21, 0, 0);
- test("abcdefghijklmnopqrst", 0, 19, "", 0, 0, 19);
- test("abcdefghijklmnopqrst", 0, 19, "", 0, 1, 19);
- test("abcdefghijklmnopqrst", 0, 19, "", 1, 0, 0);
- test("abcdefghijklmnopqrst", 0, 19, "abcde", 0, 0, 19);
- test("abcdefghijklmnopqrst", 0, 19, "abcde", 0, 1, 18);
- test("abcdefghijklmnopqrst", 0, 19, "abcde", 0, 2, 17);
- test("abcdefghijklmnopqrst", 0, 19, "abcde", 0, 4, 15);
- test("abcdefghijklmnopqrst", 0, 19, "abcde", 0, 5, 14);
- test("abcdefghijklmnopqrst", 0, 19, "abcde", 0, 6, 14);
- test("abcdefghijklmnopqrst", 0, 19, "abcde", 1, 0, 19);
- test("abcdefghijklmnopqrst", 0, 19, "abcde", 1, 1, -1);
- test("abcdefghijklmnopqrst", 0, 19, "abcde", 1, 2, -1);
- test("abcdefghijklmnopqrst", 0, 19, "abcde", 1, 3, -1);
- test("abcdefghijklmnopqrst", 0, 19, "abcde", 1, 4, -1);
- test("abcdefghijklmnopqrst", 0, 19, "abcde", 1, 5, -1);
- test("abcdefghijklmnopqrst", 0, 19, "abcde", 2, 0, 19);
- test("abcdefghijklmnopqrst", 0, 19, "abcde", 2, 1, -2);
- test("abcdefghijklmnopqrst", 0, 19, "abcde", 2, 2, -2);
- test("abcdefghijklmnopqrst", 0, 19, "abcde", 2, 3, -2);
- test("abcdefghijklmnopqrst", 0, 19, "abcde", 2, 4, -2);
- test("abcdefghijklmnopqrst", 0, 19, "abcde", 4, 0, 19);
- test("abcdefghijklmnopqrst", 0, 19, "abcde", 4, 1, -4);
- test("abcdefghijklmnopqrst", 0, 19, "abcde", 4, 2, -4);
- test("abcdefghijklmnopqrst", 0, 19, "abcde", 5, 0, 19);
- test("abcdefghijklmnopqrst", 0, 19, "abcde", 5, 1, 19);
- test("abcdefghijklmnopqrst", 0, 19, "abcde", 6, 0, 0);
- test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 0, 0, 19);
- test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 0, 1, 18);
- test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 0, 5, 14);
- test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 0, 9, 10);
- test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 0, 10, 9);
- test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 0, 11, 9);
- test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 1, 0, 19);
- test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 1, 1, -1);
- test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 1, 4, -1);
- test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 1, 8, -1);
- test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 1, 9, -1);
- test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 1, 10, -1);
- test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 5, 0, 19);
- test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 5, 1, -5);
- test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 5, 2, -5);
- test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 5, 4, -5);
- test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 5, 5, -5);
- test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 5, 6, -5);
- test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 9, 0, 19);
- test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 9, 1, -9);
- test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 9, 2, -9);
- test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 10, 0, 19);
- test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 10, 1, 19);
- test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 11, 0, 0);
- test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 0, 0, 19);
- test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 0, 1, 18);
- test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 0, 10, 9);
- test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 0, 19, 0);
- test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 0, 20, -1);
- test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 0, 21, -1);
- test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 1, 0, 19);
- test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 1, 1, -1);
- test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 1, 9, -1);
- test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 1, 18, -1);
- test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 1, 19, -1);
- test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 1, 20, -1);
- test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 10, 0, 19);
- test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 10, 1, -10);
- test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 10, 5, -10);
- test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 10, 9, -10);
- test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 10, 10, -10);
- test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 10, 11, -10);
- test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 19, 0, 19);
- test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 19, 1, -19);
- test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 19, 2, -19);
- test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 20, 0, 19);
- test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 20, 1, 19);
- test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 21, 0, 0);
- test("abcdefghijklmnopqrst", 0, 20, "", 0, 0, 20);
- test("abcdefghijklmnopqrst", 0, 20, "", 0, 1, 20);
- test("abcdefghijklmnopqrst", 0, 20, "", 1, 0, 0);
- test("abcdefghijklmnopqrst", 0, 20, "abcde", 0, 0, 20);
+void test39() {
+ test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 0, 10, 0);
+ test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 0, 19, -9);
+ test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 0, 20, -10);
+ test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 0, 21, -10);
+ test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 1, 0, 10);
+ test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 1, 1, -1);
+ test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 1, 9, -1);
+ test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 1, 18, -1);
+ test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 1, 19, -1);
+ test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 1, 20, -1);
+ test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 10, 0, 10);
+ test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 10, 1, -10);
+ test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 10, 5, -10);
+ test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 10, 9, -10);
+ test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 10, 10, -10);
+ test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 10, 11, -10);
+ test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 19, 0, 10);
+ test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 19, 1, -19);
+ test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 19, 2, -19);
+ test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 20, 0, 10);
+ test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 20, 1, 10);
+ test("abcdefghijklmnopqrst", 0, 10, "abcdefghijklmnopqrst", 21, 0, 0);
+ test("abcdefghijklmnopqrst", 0, 19, "", 0, 0, 19);
+ test("abcdefghijklmnopqrst", 0, 19, "", 0, 1, 19);
+ test("abcdefghijklmnopqrst", 0, 19, "", 1, 0, 0);
+ test("abcdefghijklmnopqrst", 0, 19, "abcde", 0, 0, 19);
+ test("abcdefghijklmnopqrst", 0, 19, "abcde", 0, 1, 18);
+ test("abcdefghijklmnopqrst", 0, 19, "abcde", 0, 2, 17);
+ test("abcdefghijklmnopqrst", 0, 19, "abcde", 0, 4, 15);
+ test("abcdefghijklmnopqrst", 0, 19, "abcde", 0, 5, 14);
+ test("abcdefghijklmnopqrst", 0, 19, "abcde", 0, 6, 14);
+ test("abcdefghijklmnopqrst", 0, 19, "abcde", 1, 0, 19);
+ test("abcdefghijklmnopqrst", 0, 19, "abcde", 1, 1, -1);
+ test("abcdefghijklmnopqrst", 0, 19, "abcde", 1, 2, -1);
+ test("abcdefghijklmnopqrst", 0, 19, "abcde", 1, 3, -1);
+ test("abcdefghijklmnopqrst", 0, 19, "abcde", 1, 4, -1);
+ test("abcdefghijklmnopqrst", 0, 19, "abcde", 1, 5, -1);
+ test("abcdefghijklmnopqrst", 0, 19, "abcde", 2, 0, 19);
+ test("abcdefghijklmnopqrst", 0, 19, "abcde", 2, 1, -2);
+ test("abcdefghijklmnopqrst", 0, 19, "abcde", 2, 2, -2);
+ test("abcdefghijklmnopqrst", 0, 19, "abcde", 2, 3, -2);
+ test("abcdefghijklmnopqrst", 0, 19, "abcde", 2, 4, -2);
+ test("abcdefghijklmnopqrst", 0, 19, "abcde", 4, 0, 19);
+ test("abcdefghijklmnopqrst", 0, 19, "abcde", 4, 1, -4);
+ test("abcdefghijklmnopqrst", 0, 19, "abcde", 4, 2, -4);
+ test("abcdefghijklmnopqrst", 0, 19, "abcde", 5, 0, 19);
+ test("abcdefghijklmnopqrst", 0, 19, "abcde", 5, 1, 19);
+ test("abcdefghijklmnopqrst", 0, 19, "abcde", 6, 0, 0);
+ test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 0, 0, 19);
+ test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 0, 1, 18);
+ test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 0, 5, 14);
+ test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 0, 9, 10);
+ test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 0, 10, 9);
+ test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 0, 11, 9);
+ test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 1, 0, 19);
+ test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 1, 1, -1);
+ test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 1, 4, -1);
+ test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 1, 8, -1);
+ test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 1, 9, -1);
+ test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 1, 10, -1);
+ test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 5, 0, 19);
+ test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 5, 1, -5);
+ test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 5, 2, -5);
+ test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 5, 4, -5);
+ test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 5, 5, -5);
+ test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 5, 6, -5);
+ test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 9, 0, 19);
+ test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 9, 1, -9);
+ test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 9, 2, -9);
+ test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 10, 0, 19);
+ test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 10, 1, 19);
+ test("abcdefghijklmnopqrst", 0, 19, "abcdefghij", 11, 0, 0);
+ test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 0, 0, 19);
+ test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 0, 1, 18);
+ test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 0, 10, 9);
+ test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 0, 19, 0);
+ test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 0, 20, -1);
+ test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 0, 21, -1);
+ test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 1, 0, 19);
+ test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 1, 1, -1);
+ test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 1, 9, -1);
+ test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 1, 18, -1);
+ test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 1, 19, -1);
+ test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 1, 20, -1);
+ test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 10, 0, 19);
+ test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 10, 1, -10);
+ test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 10, 5, -10);
+ test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 10, 9, -10);
+ test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 10, 10, -10);
+ test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 10, 11, -10);
+ test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 19, 0, 19);
+ test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 19, 1, -19);
+ test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 19, 2, -19);
+ test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 20, 0, 19);
+ test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 20, 1, 19);
+ test("abcdefghijklmnopqrst", 0, 19, "abcdefghijklmnopqrst", 21, 0, 0);
+ test("abcdefghijklmnopqrst", 0, 20, "", 0, 0, 20);
+ test("abcdefghijklmnopqrst", 0, 20, "", 0, 1, 20);
+ test("abcdefghijklmnopqrst", 0, 20, "", 1, 0, 0);
+ test("abcdefghijklmnopqrst", 0, 20, "abcde", 0, 0, 20);
}
-void test40()
-{
- test("abcdefghijklmnopqrst", 0, 20, "abcde", 0, 1, 19);
- test("abcdefghijklmnopqrst", 0, 20, "abcde", 0, 2, 18);
- test("abcdefghijklmnopqrst", 0, 20, "abcde", 0, 4, 16);
- test("abcdefghijklmnopqrst", 0, 20, "abcde", 0, 5, 15);
- test("abcdefghijklmnopqrst", 0, 20, "abcde", 0, 6, 15);
- test("abcdefghijklmnopqrst", 0, 20, "abcde", 1, 0, 20);
- test("abcdefghijklmnopqrst", 0, 20, "abcde", 1, 1, -1);
- test("abcdefghijklmnopqrst", 0, 20, "abcde", 1, 2, -1);
- test("abcdefghijklmnopqrst", 0, 20, "abcde", 1, 3, -1);
- test("abcdefghijklmnopqrst", 0, 20, "abcde", 1, 4, -1);
- test("abcdefghijklmnopqrst", 0, 20, "abcde", 1, 5, -1);
- test("abcdefghijklmnopqrst", 0, 20, "abcde", 2, 0, 20);
- test("abcdefghijklmnopqrst", 0, 20, "abcde", 2, 1, -2);
- test("abcdefghijklmnopqrst", 0, 20, "abcde", 2, 2, -2);
- test("abcdefghijklmnopqrst", 0, 20, "abcde", 2, 3, -2);
- test("abcdefghijklmnopqrst", 0, 20, "abcde", 2, 4, -2);
- test("abcdefghijklmnopqrst", 0, 20, "abcde", 4, 0, 20);
- test("abcdefghijklmnopqrst", 0, 20, "abcde", 4, 1, -4);
- test("abcdefghijklmnopqrst", 0, 20, "abcde", 4, 2, -4);
- test("abcdefghijklmnopqrst", 0, 20, "abcde", 5, 0, 20);
- test("abcdefghijklmnopqrst", 0, 20, "abcde", 5, 1, 20);
- test("abcdefghijklmnopqrst", 0, 20, "abcde", 6, 0, 0);
- test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 0, 0, 20);
- test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 0, 1, 19);
- test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 0, 5, 15);
- test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 0, 9, 11);
- test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 0, 10, 10);
- test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 0, 11, 10);
- test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 1, 0, 20);
- test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 1, 1, -1);
- test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 1, 4, -1);
- test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 1, 8, -1);
- test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 1, 9, -1);
- test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 1, 10, -1);
- test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 5, 0, 20);
- test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 5, 1, -5);
- test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 5, 2, -5);
- test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 5, 4, -5);
- test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 5, 5, -5);
- test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 5, 6, -5);
- test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 9, 0, 20);
- test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 9, 1, -9);
- test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 9, 2, -9);
- test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 10, 0, 20);
- test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 10, 1, 20);
- test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 11, 0, 0);
- test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 0, 0, 20);
- test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 0, 1, 19);
- test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 0, 10, 10);
- test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 0, 19, 1);
- test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 0, 20, 0);
- test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 0, 21, 0);
- test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 1, 0, 20);
- test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 1, 1, -1);
- test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 1, 9, -1);
- test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 1, 18, -1);
- test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 1, 19, -1);
- test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 1, 20, -1);
- test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 10, 0, 20);
- test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 10, 1, -10);
- test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 10, 5, -10);
- test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 10, 9, -10);
- test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 10, 10, -10);
- test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 10, 11, -10);
- test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 19, 0, 20);
- test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 19, 1, -19);
- test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 19, 2, -19);
- test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 20, 0, 20);
- test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 20, 1, 20);
- test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 21, 0, 0);
- test("abcdefghijklmnopqrst", 0, 21, "", 0, 0, 20);
- test("abcdefghijklmnopqrst", 0, 21, "", 0, 1, 20);
- test("abcdefghijklmnopqrst", 0, 21, "", 1, 0, 0);
- test("abcdefghijklmnopqrst", 0, 21, "abcde", 0, 0, 20);
- test("abcdefghijklmnopqrst", 0, 21, "abcde", 0, 1, 19);
- test("abcdefghijklmnopqrst", 0, 21, "abcde", 0, 2, 18);
- test("abcdefghijklmnopqrst", 0, 21, "abcde", 0, 4, 16);
- test("abcdefghijklmnopqrst", 0, 21, "abcde", 0, 5, 15);
- test("abcdefghijklmnopqrst", 0, 21, "abcde", 0, 6, 15);
- test("abcdefghijklmnopqrst", 0, 21, "abcde", 1, 0, 20);
- test("abcdefghijklmnopqrst", 0, 21, "abcde", 1, 1, -1);
- test("abcdefghijklmnopqrst", 0, 21, "abcde", 1, 2, -1);
- test("abcdefghijklmnopqrst", 0, 21, "abcde", 1, 3, -1);
- test("abcdefghijklmnopqrst", 0, 21, "abcde", 1, 4, -1);
- test("abcdefghijklmnopqrst", 0, 21, "abcde", 1, 5, -1);
- test("abcdefghijklmnopqrst", 0, 21, "abcde", 2, 0, 20);
- test("abcdefghijklmnopqrst", 0, 21, "abcde", 2, 1, -2);
- test("abcdefghijklmnopqrst", 0, 21, "abcde", 2, 2, -2);
- test("abcdefghijklmnopqrst", 0, 21, "abcde", 2, 3, -2);
- test("abcdefghijklmnopqrst", 0, 21, "abcde", 2, 4, -2);
- test("abcdefghijklmnopqrst", 0, 21, "abcde", 4, 0, 20);
- test("abcdefghijklmnopqrst", 0, 21, "abcde", 4, 1, -4);
- test("abcdefghijklmnopqrst", 0, 21, "abcde", 4, 2, -4);
- test("abcdefghijklmnopqrst", 0, 21, "abcde", 5, 0, 20);
- test("abcdefghijklmnopqrst", 0, 21, "abcde", 5, 1, 20);
- test("abcdefghijklmnopqrst", 0, 21, "abcde", 6, 0, 0);
- test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 0, 0, 20);
- test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 0, 1, 19);
- test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 0, 5, 15);
- test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 0, 9, 11);
+void test40() {
+ test("abcdefghijklmnopqrst", 0, 20, "abcde", 0, 1, 19);
+ test("abcdefghijklmnopqrst", 0, 20, "abcde", 0, 2, 18);
+ test("abcdefghijklmnopqrst", 0, 20, "abcde", 0, 4, 16);
+ test("abcdefghijklmnopqrst", 0, 20, "abcde", 0, 5, 15);
+ test("abcdefghijklmnopqrst", 0, 20, "abcde", 0, 6, 15);
+ test("abcdefghijklmnopqrst", 0, 20, "abcde", 1, 0, 20);
+ test("abcdefghijklmnopqrst", 0, 20, "abcde", 1, 1, -1);
+ test("abcdefghijklmnopqrst", 0, 20, "abcde", 1, 2, -1);
+ test("abcdefghijklmnopqrst", 0, 20, "abcde", 1, 3, -1);
+ test("abcdefghijklmnopqrst", 0, 20, "abcde", 1, 4, -1);
+ test("abcdefghijklmnopqrst", 0, 20, "abcde", 1, 5, -1);
+ test("abcdefghijklmnopqrst", 0, 20, "abcde", 2, 0, 20);
+ test("abcdefghijklmnopqrst", 0, 20, "abcde", 2, 1, -2);
+ test("abcdefghijklmnopqrst", 0, 20, "abcde", 2, 2, -2);
+ test("abcdefghijklmnopqrst", 0, 20, "abcde", 2, 3, -2);
+ test("abcdefghijklmnopqrst", 0, 20, "abcde", 2, 4, -2);
+ test("abcdefghijklmnopqrst", 0, 20, "abcde", 4, 0, 20);
+ test("abcdefghijklmnopqrst", 0, 20, "abcde", 4, 1, -4);
+ test("abcdefghijklmnopqrst", 0, 20, "abcde", 4, 2, -4);
+ test("abcdefghijklmnopqrst", 0, 20, "abcde", 5, 0, 20);
+ test("abcdefghijklmnopqrst", 0, 20, "abcde", 5, 1, 20);
+ test("abcdefghijklmnopqrst", 0, 20, "abcde", 6, 0, 0);
+ test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 0, 0, 20);
+ test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 0, 1, 19);
+ test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 0, 5, 15);
+ test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 0, 9, 11);
+ test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 0, 10, 10);
+ test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 0, 11, 10);
+ test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 1, 0, 20);
+ test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 1, 1, -1);
+ test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 1, 4, -1);
+ test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 1, 8, -1);
+ test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 1, 9, -1);
+ test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 1, 10, -1);
+ test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 5, 0, 20);
+ test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 5, 1, -5);
+ test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 5, 2, -5);
+ test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 5, 4, -5);
+ test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 5, 5, -5);
+ test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 5, 6, -5);
+ test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 9, 0, 20);
+ test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 9, 1, -9);
+ test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 9, 2, -9);
+ test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 10, 0, 20);
+ test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 10, 1, 20);
+ test("abcdefghijklmnopqrst", 0, 20, "abcdefghij", 11, 0, 0);
+ test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 0, 0, 20);
+ test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 0, 1, 19);
+ test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 0, 10, 10);
+ test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 0, 19, 1);
+ test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 0, 20, 0);
+ test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 0, 21, 0);
+ test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 1, 0, 20);
+ test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 1, 1, -1);
+ test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 1, 9, -1);
+ test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 1, 18, -1);
+ test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 1, 19, -1);
+ test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 1, 20, -1);
+ test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 10, 0, 20);
+ test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 10, 1, -10);
+ test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 10, 5, -10);
+ test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 10, 9, -10);
+ test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 10, 10, -10);
+ test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 10, 11, -10);
+ test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 19, 0, 20);
+ test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 19, 1, -19);
+ test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 19, 2, -19);
+ test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 20, 0, 20);
+ test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 20, 1, 20);
+ test("abcdefghijklmnopqrst", 0, 20, "abcdefghijklmnopqrst", 21, 0, 0);
+ test("abcdefghijklmnopqrst", 0, 21, "", 0, 0, 20);
+ test("abcdefghijklmnopqrst", 0, 21, "", 0, 1, 20);
+ test("abcdefghijklmnopqrst", 0, 21, "", 1, 0, 0);
+ test("abcdefghijklmnopqrst", 0, 21, "abcde", 0, 0, 20);
+ test("abcdefghijklmnopqrst", 0, 21, "abcde", 0, 1, 19);
+ test("abcdefghijklmnopqrst", 0, 21, "abcde", 0, 2, 18);
+ test("abcdefghijklmnopqrst", 0, 21, "abcde", 0, 4, 16);
+ test("abcdefghijklmnopqrst", 0, 21, "abcde", 0, 5, 15);
+ test("abcdefghijklmnopqrst", 0, 21, "abcde", 0, 6, 15);
+ test("abcdefghijklmnopqrst", 0, 21, "abcde", 1, 0, 20);
+ test("abcdefghijklmnopqrst", 0, 21, "abcde", 1, 1, -1);
+ test("abcdefghijklmnopqrst", 0, 21, "abcde", 1, 2, -1);
+ test("abcdefghijklmnopqrst", 0, 21, "abcde", 1, 3, -1);
+ test("abcdefghijklmnopqrst", 0, 21, "abcde", 1, 4, -1);
+ test("abcdefghijklmnopqrst", 0, 21, "abcde", 1, 5, -1);
+ test("abcdefghijklmnopqrst", 0, 21, "abcde", 2, 0, 20);
+ test("abcdefghijklmnopqrst", 0, 21, "abcde", 2, 1, -2);
+ test("abcdefghijklmnopqrst", 0, 21, "abcde", 2, 2, -2);
+ test("abcdefghijklmnopqrst", 0, 21, "abcde", 2, 3, -2);
+ test("abcdefghijklmnopqrst", 0, 21, "abcde", 2, 4, -2);
+ test("abcdefghijklmnopqrst", 0, 21, "abcde", 4, 0, 20);
+ test("abcdefghijklmnopqrst", 0, 21, "abcde", 4, 1, -4);
+ test("abcdefghijklmnopqrst", 0, 21, "abcde", 4, 2, -4);
+ test("abcdefghijklmnopqrst", 0, 21, "abcde", 5, 0, 20);
+ test("abcdefghijklmnopqrst", 0, 21, "abcde", 5, 1, 20);
+ test("abcdefghijklmnopqrst", 0, 21, "abcde", 6, 0, 0);
+ test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 0, 0, 20);
+ test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 0, 1, 19);
+ test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 0, 5, 15);
+ test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 0, 9, 11);
}
-void test41()
-{
- test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 0, 10, 10);
- test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 0, 11, 10);
- test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 1, 0, 20);
- test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 1, 1, -1);
- test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 1, 4, -1);
- test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 1, 8, -1);
- test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 1, 9, -1);
- test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 1, 10, -1);
- test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 5, 0, 20);
- test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 5, 1, -5);
- test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 5, 2, -5);
- test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 5, 4, -5);
- test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 5, 5, -5);
- test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 5, 6, -5);
- test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 9, 0, 20);
- test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 9, 1, -9);
- test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 9, 2, -9);
- test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 10, 0, 20);
- test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 10, 1, 20);
- test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 11, 0, 0);
- test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 0, 0, 20);
- test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 0, 1, 19);
- test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 0, 10, 10);
- test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 0, 19, 1);
- test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 0, 20, 0);
- test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 0, 21, 0);
- test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 1, 0, 20);
- test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 1, 1, -1);
- test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 1, 9, -1);
- test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 1, 18, -1);
- test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 1, 19, -1);
- test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 1, 20, -1);
- test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 10, 0, 20);
- test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 10, 1, -10);
- test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 10, 5, -10);
- test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 10, 9, -10);
- test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 10, 10, -10);
- test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 10, 11, -10);
- test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 19, 0, 20);
- test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 19, 1, -19);
- test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 19, 2, -19);
- test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 20, 0, 20);
- test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 20, 1, 20);
- test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 21, 0, 0);
- test("abcdefghijklmnopqrst", 1, 0, "", 0, 0, 0);
- test("abcdefghijklmnopqrst", 1, 0, "", 0, 1, 0);
- test("abcdefghijklmnopqrst", 1, 0, "", 1, 0, 0);
- test("abcdefghijklmnopqrst", 1, 0, "abcde", 0, 0, 0);
- test("abcdefghijklmnopqrst", 1, 0, "abcde", 0, 1, -1);
- test("abcdefghijklmnopqrst", 1, 0, "abcde", 0, 2, -2);
- test("abcdefghijklmnopqrst", 1, 0, "abcde", 0, 4, -4);
- test("abcdefghijklmnopqrst", 1, 0, "abcde", 0, 5, -5);
- test("abcdefghijklmnopqrst", 1, 0, "abcde", 0, 6, -5);
- test("abcdefghijklmnopqrst", 1, 0, "abcde", 1, 0, 0);
- test("abcdefghijklmnopqrst", 1, 0, "abcde", 1, 1, -1);
- test("abcdefghijklmnopqrst", 1, 0, "abcde", 1, 2, -2);
- test("abcdefghijklmnopqrst", 1, 0, "abcde", 1, 3, -3);
- test("abcdefghijklmnopqrst", 1, 0, "abcde", 1, 4, -4);
- test("abcdefghijklmnopqrst", 1, 0, "abcde", 1, 5, -4);
- test("abcdefghijklmnopqrst", 1, 0, "abcde", 2, 0, 0);
- test("abcdefghijklmnopqrst", 1, 0, "abcde", 2, 1, -1);
- test("abcdefghijklmnopqrst", 1, 0, "abcde", 2, 2, -2);
- test("abcdefghijklmnopqrst", 1, 0, "abcde", 2, 3, -3);
- test("abcdefghijklmnopqrst", 1, 0, "abcde", 2, 4, -3);
- test("abcdefghijklmnopqrst", 1, 0, "abcde", 4, 0, 0);
- test("abcdefghijklmnopqrst", 1, 0, "abcde", 4, 1, -1);
- test("abcdefghijklmnopqrst", 1, 0, "abcde", 4, 2, -1);
- test("abcdefghijklmnopqrst", 1, 0, "abcde", 5, 0, 0);
- test("abcdefghijklmnopqrst", 1, 0, "abcde", 5, 1, 0);
- test("abcdefghijklmnopqrst", 1, 0, "abcde", 6, 0, 0);
- test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 0, 0, 0);
- test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 0, 1, -1);
- test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 0, 5, -5);
- test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 0, 9, -9);
- test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 0, 10, -10);
- test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 0, 11, -10);
- test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 1, 0, 0);
- test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 1, 1, -1);
- test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 1, 4, -4);
- test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 1, 8, -8);
- test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 1, 9, -9);
- test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 1, 10, -9);
- test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 5, 0, 0);
- test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 5, 1, -1);
- test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 5, 2, -2);
- test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 5, 4, -4);
- test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 5, 5, -5);
- test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 5, 6, -5);
- test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 9, 0, 0);
- test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 9, 1, -1);
- test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 9, 2, -1);
- test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 10, 0, 0);
- test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 10, 1, 0);
- test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 11, 0, 0);
- test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 0, 0, 0);
- test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 0, 1, -1);
- test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 0, 10, -10);
- test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 0, 19, -19);
- test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 0, 20, -20);
- test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 0, 21, -20);
+void test41() {
+ test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 0, 10, 10);
+ test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 0, 11, 10);
+ test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 1, 0, 20);
+ test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 1, 1, -1);
+ test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 1, 4, -1);
+ test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 1, 8, -1);
+ test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 1, 9, -1);
+ test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 1, 10, -1);
+ test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 5, 0, 20);
+ test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 5, 1, -5);
+ test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 5, 2, -5);
+ test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 5, 4, -5);
+ test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 5, 5, -5);
+ test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 5, 6, -5);
+ test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 9, 0, 20);
+ test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 9, 1, -9);
+ test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 9, 2, -9);
+ test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 10, 0, 20);
+ test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 10, 1, 20);
+ test("abcdefghijklmnopqrst", 0, 21, "abcdefghij", 11, 0, 0);
+ test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 0, 0, 20);
+ test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 0, 1, 19);
+ test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 0, 10, 10);
+ test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 0, 19, 1);
+ test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 0, 20, 0);
+ test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 0, 21, 0);
+ test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 1, 0, 20);
+ test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 1, 1, -1);
+ test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 1, 9, -1);
+ test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 1, 18, -1);
+ test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 1, 19, -1);
+ test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 1, 20, -1);
+ test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 10, 0, 20);
+ test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 10, 1, -10);
+ test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 10, 5, -10);
+ test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 10, 9, -10);
+ test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 10, 10, -10);
+ test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 10, 11, -10);
+ test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 19, 0, 20);
+ test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 19, 1, -19);
+ test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 19, 2, -19);
+ test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 20, 0, 20);
+ test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 20, 1, 20);
+ test("abcdefghijklmnopqrst", 0, 21, "abcdefghijklmnopqrst", 21, 0, 0);
+ test("abcdefghijklmnopqrst", 1, 0, "", 0, 0, 0);
+ test("abcdefghijklmnopqrst", 1, 0, "", 0, 1, 0);
+ test("abcdefghijklmnopqrst", 1, 0, "", 1, 0, 0);
+ test("abcdefghijklmnopqrst", 1, 0, "abcde", 0, 0, 0);
+ test("abcdefghijklmnopqrst", 1, 0, "abcde", 0, 1, -1);
+ test("abcdefghijklmnopqrst", 1, 0, "abcde", 0, 2, -2);
+ test("abcdefghijklmnopqrst", 1, 0, "abcde", 0, 4, -4);
+ test("abcdefghijklmnopqrst", 1, 0, "abcde", 0, 5, -5);
+ test("abcdefghijklmnopqrst", 1, 0, "abcde", 0, 6, -5);
+ test("abcdefghijklmnopqrst", 1, 0, "abcde", 1, 0, 0);
+ test("abcdefghijklmnopqrst", 1, 0, "abcde", 1, 1, -1);
+ test("abcdefghijklmnopqrst", 1, 0, "abcde", 1, 2, -2);
+ test("abcdefghijklmnopqrst", 1, 0, "abcde", 1, 3, -3);
+ test("abcdefghijklmnopqrst", 1, 0, "abcde", 1, 4, -4);
+ test("abcdefghijklmnopqrst", 1, 0, "abcde", 1, 5, -4);
+ test("abcdefghijklmnopqrst", 1, 0, "abcde", 2, 0, 0);
+ test("abcdefghijklmnopqrst", 1, 0, "abcde", 2, 1, -1);
+ test("abcdefghijklmnopqrst", 1, 0, "abcde", 2, 2, -2);
+ test("abcdefghijklmnopqrst", 1, 0, "abcde", 2, 3, -3);
+ test("abcdefghijklmnopqrst", 1, 0, "abcde", 2, 4, -3);
+ test("abcdefghijklmnopqrst", 1, 0, "abcde", 4, 0, 0);
+ test("abcdefghijklmnopqrst", 1, 0, "abcde", 4, 1, -1);
+ test("abcdefghijklmnopqrst", 1, 0, "abcde", 4, 2, -1);
+ test("abcdefghijklmnopqrst", 1, 0, "abcde", 5, 0, 0);
+ test("abcdefghijklmnopqrst", 1, 0, "abcde", 5, 1, 0);
+ test("abcdefghijklmnopqrst", 1, 0, "abcde", 6, 0, 0);
+ test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 0, 0, 0);
+ test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 0, 1, -1);
+ test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 0, 5, -5);
+ test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 0, 9, -9);
+ test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 0, 10, -10);
+ test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 0, 11, -10);
+ test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 1, 0, 0);
+ test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 1, 1, -1);
+ test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 1, 4, -4);
+ test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 1, 8, -8);
+ test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 1, 9, -9);
+ test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 1, 10, -9);
+ test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 5, 0, 0);
+ test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 5, 1, -1);
+ test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 5, 2, -2);
+ test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 5, 4, -4);
+ test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 5, 5, -5);
+ test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 5, 6, -5);
+ test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 9, 0, 0);
+ test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 9, 1, -1);
+ test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 9, 2, -1);
+ test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 10, 0, 0);
+ test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 10, 1, 0);
+ test("abcdefghijklmnopqrst", 1, 0, "abcdefghij", 11, 0, 0);
+ test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 0, 0, 0);
+ test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 0, 1, -1);
+ test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 0, 10, -10);
+ test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 0, 19, -19);
+ test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 0, 20, -20);
+ test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 0, 21, -20);
}
-void test42()
-{
- test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 1, 0, 0);
- test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 1, 1, -1);
- test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 1, 9, -9);
- test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 1, 18, -18);
- test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 1, 19, -19);
- test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 1, 20, -19);
- test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 10, 0, 0);
- test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 10, 1, -1);
- test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 10, 5, -5);
- test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 10, 9, -9);
- test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 10, 10, -10);
- test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 10, 11, -10);
- test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 19, 0, 0);
- test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 19, 1, -1);
- test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 19, 2, -1);
- test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 20, 0, 0);
- test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 20, 1, 0);
- test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 21, 0, 0);
- test("abcdefghijklmnopqrst", 1, 1, "", 0, 0, 1);
- test("abcdefghijklmnopqrst", 1, 1, "", 0, 1, 1);
- test("abcdefghijklmnopqrst", 1, 1, "", 1, 0, 0);
- test("abcdefghijklmnopqrst", 1, 1, "abcde", 0, 0, 1);
- test("abcdefghijklmnopqrst", 1, 1, "abcde", 0, 1, 1);
- test("abcdefghijklmnopqrst", 1, 1, "abcde", 0, 2, 1);
- test("abcdefghijklmnopqrst", 1, 1, "abcde", 0, 4, 1);
- test("abcdefghijklmnopqrst", 1, 1, "abcde", 0, 5, 1);
- test("abcdefghijklmnopqrst", 1, 1, "abcde", 0, 6, 1);
- test("abcdefghijklmnopqrst", 1, 1, "abcde", 1, 0, 1);
- test("abcdefghijklmnopqrst", 1, 1, "abcde", 1, 1, 0);
- test("abcdefghijklmnopqrst", 1, 1, "abcde", 1, 2, -1);
- test("abcdefghijklmnopqrst", 1, 1, "abcde", 1, 3, -2);
- test("abcdefghijklmnopqrst", 1, 1, "abcde", 1, 4, -3);
- test("abcdefghijklmnopqrst", 1, 1, "abcde", 1, 5, -3);
- test("abcdefghijklmnopqrst", 1, 1, "abcde", 2, 0, 1);
- test("abcdefghijklmnopqrst", 1, 1, "abcde", 2, 1, -1);
- test("abcdefghijklmnopqrst", 1, 1, "abcde", 2, 2, -1);
- test("abcdefghijklmnopqrst", 1, 1, "abcde", 2, 3, -1);
- test("abcdefghijklmnopqrst", 1, 1, "abcde", 2, 4, -1);
- test("abcdefghijklmnopqrst", 1, 1, "abcde", 4, 0, 1);
- test("abcdefghijklmnopqrst", 1, 1, "abcde", 4, 1, -3);
- test("abcdefghijklmnopqrst", 1, 1, "abcde", 4, 2, -3);
- test("abcdefghijklmnopqrst", 1, 1, "abcde", 5, 0, 1);
- test("abcdefghijklmnopqrst", 1, 1, "abcde", 5, 1, 1);
- test("abcdefghijklmnopqrst", 1, 1, "abcde", 6, 0, 0);
- test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 0, 0, 1);
- test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 0, 1, 1);
- test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 0, 5, 1);
- test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 0, 9, 1);
- test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 0, 10, 1);
- test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 0, 11, 1);
- test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 1, 0, 1);
- test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 1, 1, 0);
- test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 1, 4, -3);
- test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 1, 8, -7);
- test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 1, 9, -8);
- test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 1, 10, -8);
- test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 5, 0, 1);
- test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 5, 1, -4);
- test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 5, 2, -4);
- test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 5, 4, -4);
- test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 5, 5, -4);
- test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 5, 6, -4);
- test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 9, 0, 1);
- test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 9, 1, -8);
- test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 9, 2, -8);
- test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 10, 0, 1);
- test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 10, 1, 1);
- test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 11, 0, 0);
- test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 0, 0, 1);
- test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 0, 1, 1);
- test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 0, 10, 1);
- test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 0, 19, 1);
- test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 0, 20, 1);
- test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 0, 21, 1);
- test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 1, 0, 1);
- test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 1, 1, 0);
- test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 1, 9, -8);
- test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 1, 18, -17);
- test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 1, 19, -18);
- test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 1, 20, -18);
- test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 10, 0, 1);
- test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 10, 1, -9);
- test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 10, 5, -9);
- test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 10, 9, -9);
- test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 10, 10, -9);
- test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 10, 11, -9);
- test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 19, 0, 1);
- test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 19, 1, -18);
- test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 19, 2, -18);
- test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 20, 0, 1);
- test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 20, 1, 1);
- test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 21, 0, 0);
- test("abcdefghijklmnopqrst", 1, 9, "", 0, 0, 9);
- test("abcdefghijklmnopqrst", 1, 9, "", 0, 1, 9);
- test("abcdefghijklmnopqrst", 1, 9, "", 1, 0, 0);
- test("abcdefghijklmnopqrst", 1, 9, "abcde", 0, 0, 9);
- test("abcdefghijklmnopqrst", 1, 9, "abcde", 0, 1, 1);
- test("abcdefghijklmnopqrst", 1, 9, "abcde", 0, 2, 1);
- test("abcdefghijklmnopqrst", 1, 9, "abcde", 0, 4, 1);
- test("abcdefghijklmnopqrst", 1, 9, "abcde", 0, 5, 1);
+void test42() {
+ test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 1, 0, 0);
+ test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 1, 1, -1);
+ test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 1, 9, -9);
+ test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 1, 18, -18);
+ test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 1, 19, -19);
+ test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 1, 20, -19);
+ test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 10, 0, 0);
+ test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 10, 1, -1);
+ test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 10, 5, -5);
+ test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 10, 9, -9);
+ test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 10, 10, -10);
+ test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 10, 11, -10);
+ test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 19, 0, 0);
+ test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 19, 1, -1);
+ test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 19, 2, -1);
+ test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 20, 0, 0);
+ test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 20, 1, 0);
+ test("abcdefghijklmnopqrst", 1, 0, "abcdefghijklmnopqrst", 21, 0, 0);
+ test("abcdefghijklmnopqrst", 1, 1, "", 0, 0, 1);
+ test("abcdefghijklmnopqrst", 1, 1, "", 0, 1, 1);
+ test("abcdefghijklmnopqrst", 1, 1, "", 1, 0, 0);
+ test("abcdefghijklmnopqrst", 1, 1, "abcde", 0, 0, 1);
+ test("abcdefghijklmnopqrst", 1, 1, "abcde", 0, 1, 1);
+ test("abcdefghijklmnopqrst", 1, 1, "abcde", 0, 2, 1);
+ test("abcdefghijklmnopqrst", 1, 1, "abcde", 0, 4, 1);
+ test("abcdefghijklmnopqrst", 1, 1, "abcde", 0, 5, 1);
+ test("abcdefghijklmnopqrst", 1, 1, "abcde", 0, 6, 1);
+ test("abcdefghijklmnopqrst", 1, 1, "abcde", 1, 0, 1);
+ test("abcdefghijklmnopqrst", 1, 1, "abcde", 1, 1, 0);
+ test("abcdefghijklmnopqrst", 1, 1, "abcde", 1, 2, -1);
+ test("abcdefghijklmnopqrst", 1, 1, "abcde", 1, 3, -2);
+ test("abcdefghijklmnopqrst", 1, 1, "abcde", 1, 4, -3);
+ test("abcdefghijklmnopqrst", 1, 1, "abcde", 1, 5, -3);
+ test("abcdefghijklmnopqrst", 1, 1, "abcde", 2, 0, 1);
+ test("abcdefghijklmnopqrst", 1, 1, "abcde", 2, 1, -1);
+ test("abcdefghijklmnopqrst", 1, 1, "abcde", 2, 2, -1);
+ test("abcdefghijklmnopqrst", 1, 1, "abcde", 2, 3, -1);
+ test("abcdefghijklmnopqrst", 1, 1, "abcde", 2, 4, -1);
+ test("abcdefghijklmnopqrst", 1, 1, "abcde", 4, 0, 1);
+ test("abcdefghijklmnopqrst", 1, 1, "abcde", 4, 1, -3);
+ test("abcdefghijklmnopqrst", 1, 1, "abcde", 4, 2, -3);
+ test("abcdefghijklmnopqrst", 1, 1, "abcde", 5, 0, 1);
+ test("abcdefghijklmnopqrst", 1, 1, "abcde", 5, 1, 1);
+ test("abcdefghijklmnopqrst", 1, 1, "abcde", 6, 0, 0);
+ test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 0, 0, 1);
+ test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 0, 1, 1);
+ test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 0, 5, 1);
+ test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 0, 9, 1);
+ test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 0, 10, 1);
+ test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 0, 11, 1);
+ test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 1, 0, 1);
+ test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 1, 1, 0);
+ test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 1, 4, -3);
+ test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 1, 8, -7);
+ test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 1, 9, -8);
+ test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 1, 10, -8);
+ test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 5, 0, 1);
+ test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 5, 1, -4);
+ test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 5, 2, -4);
+ test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 5, 4, -4);
+ test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 5, 5, -4);
+ test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 5, 6, -4);
+ test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 9, 0, 1);
+ test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 9, 1, -8);
+ test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 9, 2, -8);
+ test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 10, 0, 1);
+ test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 10, 1, 1);
+ test("abcdefghijklmnopqrst", 1, 1, "abcdefghij", 11, 0, 0);
+ test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 0, 0, 1);
+ test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 0, 1, 1);
+ test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 0, 10, 1);
+ test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 0, 19, 1);
+ test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 0, 20, 1);
+ test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 0, 21, 1);
+ test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 1, 0, 1);
+ test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 1, 1, 0);
+ test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 1, 9, -8);
+ test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 1, 18, -17);
+ test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 1, 19, -18);
+ test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 1, 20, -18);
+ test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 10, 0, 1);
+ test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 10, 1, -9);
+ test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 10, 5, -9);
+ test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 10, 9, -9);
+ test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 10, 10, -9);
+ test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 10, 11, -9);
+ test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 19, 0, 1);
+ test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 19, 1, -18);
+ test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 19, 2, -18);
+ test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 20, 0, 1);
+ test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 20, 1, 1);
+ test("abcdefghijklmnopqrst", 1, 1, "abcdefghijklmnopqrst", 21, 0, 0);
+ test("abcdefghijklmnopqrst", 1, 9, "", 0, 0, 9);
+ test("abcdefghijklmnopqrst", 1, 9, "", 0, 1, 9);
+ test("abcdefghijklmnopqrst", 1, 9, "", 1, 0, 0);
+ test("abcdefghijklmnopqrst", 1, 9, "abcde", 0, 0, 9);
+ test("abcdefghijklmnopqrst", 1, 9, "abcde", 0, 1, 1);
+ test("abcdefghijklmnopqrst", 1, 9, "abcde", 0, 2, 1);
+ test("abcdefghijklmnopqrst", 1, 9, "abcde", 0, 4, 1);
+ test("abcdefghijklmnopqrst", 1, 9, "abcde", 0, 5, 1);
}
-void test43()
-{
- test("abcdefghijklmnopqrst", 1, 9, "abcde", 0, 6, 1);
- test("abcdefghijklmnopqrst", 1, 9, "abcde", 1, 0, 9);
- test("abcdefghijklmnopqrst", 1, 9, "abcde", 1, 1, 8);
- test("abcdefghijklmnopqrst", 1, 9, "abcde", 1, 2, 7);
- test("abcdefghijklmnopqrst", 1, 9, "abcde", 1, 3, 6);
- test("abcdefghijklmnopqrst", 1, 9, "abcde", 1, 4, 5);
- test("abcdefghijklmnopqrst", 1, 9, "abcde", 1, 5, 5);
- test("abcdefghijklmnopqrst", 1, 9, "abcde", 2, 0, 9);
- test("abcdefghijklmnopqrst", 1, 9, "abcde", 2, 1, -1);
- test("abcdefghijklmnopqrst", 1, 9, "abcde", 2, 2, -1);
- test("abcdefghijklmnopqrst", 1, 9, "abcde", 2, 3, -1);
- test("abcdefghijklmnopqrst", 1, 9, "abcde", 2, 4, -1);
- test("abcdefghijklmnopqrst", 1, 9, "abcde", 4, 0, 9);
- test("abcdefghijklmnopqrst", 1, 9, "abcde", 4, 1, -3);
- test("abcdefghijklmnopqrst", 1, 9, "abcde", 4, 2, -3);
- test("abcdefghijklmnopqrst", 1, 9, "abcde", 5, 0, 9);
- test("abcdefghijklmnopqrst", 1, 9, "abcde", 5, 1, 9);
- test("abcdefghijklmnopqrst", 1, 9, "abcde", 6, 0, 0);
- test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 0, 0, 9);
- test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 0, 1, 1);
- test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 0, 5, 1);
- test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 0, 9, 1);
- test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 0, 10, 1);
- test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 0, 11, 1);
- test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 1, 0, 9);
- test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 1, 1, 8);
- test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 1, 4, 5);
- test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 1, 8, 1);
- test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 1, 9, 0);
- test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 1, 10, 0);
- test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 5, 0, 9);
- test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 5, 1, -4);
- test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 5, 2, -4);
- test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 5, 4, -4);
- test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 5, 5, -4);
- test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 5, 6, -4);
- test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 9, 0, 9);
- test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 9, 1, -8);
- test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 9, 2, -8);
- test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 10, 0, 9);
- test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 10, 1, 9);
- test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 11, 0, 0);
- test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 0, 0, 9);
- test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 0, 1, 1);
- test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 0, 10, 1);
- test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 0, 19, 1);
- test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 0, 20, 1);
- test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 0, 21, 1);
- test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 1, 0, 9);
- test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 1, 1, 8);
- test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 1, 9, 0);
- test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 1, 18, -9);
- test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 1, 19, -10);
- test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 1, 20, -10);
- test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 10, 0, 9);
- test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 10, 1, -9);
- test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 10, 5, -9);
- test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 10, 9, -9);
- test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 10, 10, -9);
- test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 10, 11, -9);
- test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 19, 0, 9);
- test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 19, 1, -18);
- test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 19, 2, -18);
- test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 20, 0, 9);
- test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 20, 1, 9);
- test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 21, 0, 0);
- test("abcdefghijklmnopqrst", 1, 18, "", 0, 0, 18);
- test("abcdefghijklmnopqrst", 1, 18, "", 0, 1, 18);
- test("abcdefghijklmnopqrst", 1, 18, "", 1, 0, 0);
- test("abcdefghijklmnopqrst", 1, 18, "abcde", 0, 0, 18);
- test("abcdefghijklmnopqrst", 1, 18, "abcde", 0, 1, 1);
- test("abcdefghijklmnopqrst", 1, 18, "abcde", 0, 2, 1);
- test("abcdefghijklmnopqrst", 1, 18, "abcde", 0, 4, 1);
- test("abcdefghijklmnopqrst", 1, 18, "abcde", 0, 5, 1);
- test("abcdefghijklmnopqrst", 1, 18, "abcde", 0, 6, 1);
- test("abcdefghijklmnopqrst", 1, 18, "abcde", 1, 0, 18);
- test("abcdefghijklmnopqrst", 1, 18, "abcde", 1, 1, 17);
- test("abcdefghijklmnopqrst", 1, 18, "abcde", 1, 2, 16);
- test("abcdefghijklmnopqrst", 1, 18, "abcde", 1, 3, 15);
- test("abcdefghijklmnopqrst", 1, 18, "abcde", 1, 4, 14);
- test("abcdefghijklmnopqrst", 1, 18, "abcde", 1, 5, 14);
- test("abcdefghijklmnopqrst", 1, 18, "abcde", 2, 0, 18);
- test("abcdefghijklmnopqrst", 1, 18, "abcde", 2, 1, -1);
- test("abcdefghijklmnopqrst", 1, 18, "abcde", 2, 2, -1);
- test("abcdefghijklmnopqrst", 1, 18, "abcde", 2, 3, -1);
- test("abcdefghijklmnopqrst", 1, 18, "abcde", 2, 4, -1);
- test("abcdefghijklmnopqrst", 1, 18, "abcde", 4, 0, 18);
- test("abcdefghijklmnopqrst", 1, 18, "abcde", 4, 1, -3);
- test("abcdefghijklmnopqrst", 1, 18, "abcde", 4, 2, -3);
- test("abcdefghijklmnopqrst", 1, 18, "abcde", 5, 0, 18);
- test("abcdefghijklmnopqrst", 1, 18, "abcde", 5, 1, 18);
- test("abcdefghijklmnopqrst", 1, 18, "abcde", 6, 0, 0);
- test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 0, 0, 18);
- test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 0, 1, 1);
- test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 0, 5, 1);
- test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 0, 9, 1);
- test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 0, 10, 1);
- test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 0, 11, 1);
- test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 1, 0, 18);
- test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 1, 1, 17);
+void test43() {
+ test("abcdefghijklmnopqrst", 1, 9, "abcde", 0, 6, 1);
+ test("abcdefghijklmnopqrst", 1, 9, "abcde", 1, 0, 9);
+ test("abcdefghijklmnopqrst", 1, 9, "abcde", 1, 1, 8);
+ test("abcdefghijklmnopqrst", 1, 9, "abcde", 1, 2, 7);
+ test("abcdefghijklmnopqrst", 1, 9, "abcde", 1, 3, 6);
+ test("abcdefghijklmnopqrst", 1, 9, "abcde", 1, 4, 5);
+ test("abcdefghijklmnopqrst", 1, 9, "abcde", 1, 5, 5);
+ test("abcdefghijklmnopqrst", 1, 9, "abcde", 2, 0, 9);
+ test("abcdefghijklmnopqrst", 1, 9, "abcde", 2, 1, -1);
+ test("abcdefghijklmnopqrst", 1, 9, "abcde", 2, 2, -1);
+ test("abcdefghijklmnopqrst", 1, 9, "abcde", 2, 3, -1);
+ test("abcdefghijklmnopqrst", 1, 9, "abcde", 2, 4, -1);
+ test("abcdefghijklmnopqrst", 1, 9, "abcde", 4, 0, 9);
+ test("abcdefghijklmnopqrst", 1, 9, "abcde", 4, 1, -3);
+ test("abcdefghijklmnopqrst", 1, 9, "abcde", 4, 2, -3);
+ test("abcdefghijklmnopqrst", 1, 9, "abcde", 5, 0, 9);
+ test("abcdefghijklmnopqrst", 1, 9, "abcde", 5, 1, 9);
+ test("abcdefghijklmnopqrst", 1, 9, "abcde", 6, 0, 0);
+ test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 0, 0, 9);
+ test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 0, 1, 1);
+ test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 0, 5, 1);
+ test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 0, 9, 1);
+ test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 0, 10, 1);
+ test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 0, 11, 1);
+ test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 1, 0, 9);
+ test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 1, 1, 8);
+ test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 1, 4, 5);
+ test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 1, 8, 1);
+ test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 1, 9, 0);
+ test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 1, 10, 0);
+ test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 5, 0, 9);
+ test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 5, 1, -4);
+ test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 5, 2, -4);
+ test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 5, 4, -4);
+ test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 5, 5, -4);
+ test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 5, 6, -4);
+ test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 9, 0, 9);
+ test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 9, 1, -8);
+ test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 9, 2, -8);
+ test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 10, 0, 9);
+ test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 10, 1, 9);
+ test("abcdefghijklmnopqrst", 1, 9, "abcdefghij", 11, 0, 0);
+ test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 0, 0, 9);
+ test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 0, 1, 1);
+ test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 0, 10, 1);
+ test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 0, 19, 1);
+ test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 0, 20, 1);
+ test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 0, 21, 1);
+ test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 1, 0, 9);
+ test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 1, 1, 8);
+ test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 1, 9, 0);
+ test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 1, 18, -9);
+ test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 1, 19, -10);
+ test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 1, 20, -10);
+ test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 10, 0, 9);
+ test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 10, 1, -9);
+ test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 10, 5, -9);
+ test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 10, 9, -9);
+ test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 10, 10, -9);
+ test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 10, 11, -9);
+ test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 19, 0, 9);
+ test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 19, 1, -18);
+ test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 19, 2, -18);
+ test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 20, 0, 9);
+ test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 20, 1, 9);
+ test("abcdefghijklmnopqrst", 1, 9, "abcdefghijklmnopqrst", 21, 0, 0);
+ test("abcdefghijklmnopqrst", 1, 18, "", 0, 0, 18);
+ test("abcdefghijklmnopqrst", 1, 18, "", 0, 1, 18);
+ test("abcdefghijklmnopqrst", 1, 18, "", 1, 0, 0);
+ test("abcdefghijklmnopqrst", 1, 18, "abcde", 0, 0, 18);
+ test("abcdefghijklmnopqrst", 1, 18, "abcde", 0, 1, 1);
+ test("abcdefghijklmnopqrst", 1, 18, "abcde", 0, 2, 1);
+ test("abcdefghijklmnopqrst", 1, 18, "abcde", 0, 4, 1);
+ test("abcdefghijklmnopqrst", 1, 18, "abcde", 0, 5, 1);
+ test("abcdefghijklmnopqrst", 1, 18, "abcde", 0, 6, 1);
+ test("abcdefghijklmnopqrst", 1, 18, "abcde", 1, 0, 18);
+ test("abcdefghijklmnopqrst", 1, 18, "abcde", 1, 1, 17);
+ test("abcdefghijklmnopqrst", 1, 18, "abcde", 1, 2, 16);
+ test("abcdefghijklmnopqrst", 1, 18, "abcde", 1, 3, 15);
+ test("abcdefghijklmnopqrst", 1, 18, "abcde", 1, 4, 14);
+ test("abcdefghijklmnopqrst", 1, 18, "abcde", 1, 5, 14);
+ test("abcdefghijklmnopqrst", 1, 18, "abcde", 2, 0, 18);
+ test("abcdefghijklmnopqrst", 1, 18, "abcde", 2, 1, -1);
+ test("abcdefghijklmnopqrst", 1, 18, "abcde", 2, 2, -1);
+ test("abcdefghijklmnopqrst", 1, 18, "abcde", 2, 3, -1);
+ test("abcdefghijklmnopqrst", 1, 18, "abcde", 2, 4, -1);
+ test("abcdefghijklmnopqrst", 1, 18, "abcde", 4, 0, 18);
+ test("abcdefghijklmnopqrst", 1, 18, "abcde", 4, 1, -3);
+ test("abcdefghijklmnopqrst", 1, 18, "abcde", 4, 2, -3);
+ test("abcdefghijklmnopqrst", 1, 18, "abcde", 5, 0, 18);
+ test("abcdefghijklmnopqrst", 1, 18, "abcde", 5, 1, 18);
+ test("abcdefghijklmnopqrst", 1, 18, "abcde", 6, 0, 0);
+ test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 0, 0, 18);
+ test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 0, 1, 1);
+ test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 0, 5, 1);
+ test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 0, 9, 1);
+ test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 0, 10, 1);
+ test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 0, 11, 1);
+ test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 1, 0, 18);
+ test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 1, 1, 17);
}
-void test44()
-{
- test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 1, 4, 14);
- test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 1, 8, 10);
- test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 1, 9, 9);
- test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 1, 10, 9);
- test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 5, 0, 18);
- test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 5, 1, -4);
- test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 5, 2, -4);
- test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 5, 4, -4);
- test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 5, 5, -4);
- test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 5, 6, -4);
- test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 9, 0, 18);
- test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 9, 1, -8);
- test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 9, 2, -8);
- test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 10, 0, 18);
- test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 10, 1, 18);
- test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 11, 0, 0);
- test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 0, 0, 18);
- test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 0, 1, 1);
- test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 0, 10, 1);
- test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 0, 19, 1);
- test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 0, 20, 1);
- test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 0, 21, 1);
- test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 1, 0, 18);
- test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 1, 1, 17);
- test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 1, 9, 9);
- test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 1, 18, 0);
- test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 1, 19, -1);
- test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 1, 20, -1);
- test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 10, 0, 18);
- test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 10, 1, -9);
- test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 10, 5, -9);
- test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 10, 9, -9);
- test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 10, 10, -9);
- test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 10, 11, -9);
- test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 19, 0, 18);
- test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 19, 1, -18);
- test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 19, 2, -18);
- test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 20, 0, 18);
- test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 20, 1, 18);
- test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 21, 0, 0);
- test("abcdefghijklmnopqrst", 1, 19, "", 0, 0, 19);
- test("abcdefghijklmnopqrst", 1, 19, "", 0, 1, 19);
- test("abcdefghijklmnopqrst", 1, 19, "", 1, 0, 0);
- test("abcdefghijklmnopqrst", 1, 19, "abcde", 0, 0, 19);
- test("abcdefghijklmnopqrst", 1, 19, "abcde", 0, 1, 1);
- test("abcdefghijklmnopqrst", 1, 19, "abcde", 0, 2, 1);
- test("abcdefghijklmnopqrst", 1, 19, "abcde", 0, 4, 1);
- test("abcdefghijklmnopqrst", 1, 19, "abcde", 0, 5, 1);
- test("abcdefghijklmnopqrst", 1, 19, "abcde", 0, 6, 1);
- test("abcdefghijklmnopqrst", 1, 19, "abcde", 1, 0, 19);
- test("abcdefghijklmnopqrst", 1, 19, "abcde", 1, 1, 18);
- test("abcdefghijklmnopqrst", 1, 19, "abcde", 1, 2, 17);
- test("abcdefghijklmnopqrst", 1, 19, "abcde", 1, 3, 16);
- test("abcdefghijklmnopqrst", 1, 19, "abcde", 1, 4, 15);
- test("abcdefghijklmnopqrst", 1, 19, "abcde", 1, 5, 15);
- test("abcdefghijklmnopqrst", 1, 19, "abcde", 2, 0, 19);
- test("abcdefghijklmnopqrst", 1, 19, "abcde", 2, 1, -1);
- test("abcdefghijklmnopqrst", 1, 19, "abcde", 2, 2, -1);
- test("abcdefghijklmnopqrst", 1, 19, "abcde", 2, 3, -1);
- test("abcdefghijklmnopqrst", 1, 19, "abcde", 2, 4, -1);
- test("abcdefghijklmnopqrst", 1, 19, "abcde", 4, 0, 19);
- test("abcdefghijklmnopqrst", 1, 19, "abcde", 4, 1, -3);
- test("abcdefghijklmnopqrst", 1, 19, "abcde", 4, 2, -3);
- test("abcdefghijklmnopqrst", 1, 19, "abcde", 5, 0, 19);
- test("abcdefghijklmnopqrst", 1, 19, "abcde", 5, 1, 19);
- test("abcdefghijklmnopqrst", 1, 19, "abcde", 6, 0, 0);
- test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 0, 0, 19);
- test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 0, 1, 1);
- test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 0, 5, 1);
- test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 0, 9, 1);
- test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 0, 10, 1);
- test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 0, 11, 1);
- test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 1, 0, 19);
- test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 1, 1, 18);
- test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 1, 4, 15);
- test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 1, 8, 11);
- test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 1, 9, 10);
- test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 1, 10, 10);
- test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 5, 0, 19);
- test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 5, 1, -4);
- test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 5, 2, -4);
- test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 5, 4, -4);
- test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 5, 5, -4);
- test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 5, 6, -4);
- test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 9, 0, 19);
- test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 9, 1, -8);
- test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 9, 2, -8);
- test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 10, 0, 19);
- test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 10, 1, 19);
- test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 11, 0, 0);
- test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 0, 0, 19);
- test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 0, 1, 1);
- test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 0, 10, 1);
- test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 0, 19, 1);
- test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 0, 20, 1);
- test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 0, 21, 1);
- test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 1, 0, 19);
- test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 1, 1, 18);
- test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 1, 9, 10);
- test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 1, 18, 1);
+void test44() {
+ test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 1, 4, 14);
+ test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 1, 8, 10);
+ test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 1, 9, 9);
+ test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 1, 10, 9);
+ test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 5, 0, 18);
+ test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 5, 1, -4);
+ test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 5, 2, -4);
+ test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 5, 4, -4);
+ test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 5, 5, -4);
+ test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 5, 6, -4);
+ test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 9, 0, 18);
+ test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 9, 1, -8);
+ test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 9, 2, -8);
+ test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 10, 0, 18);
+ test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 10, 1, 18);
+ test("abcdefghijklmnopqrst", 1, 18, "abcdefghij", 11, 0, 0);
+ test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 0, 0, 18);
+ test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 0, 1, 1);
+ test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 0, 10, 1);
+ test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 0, 19, 1);
+ test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 0, 20, 1);
+ test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 0, 21, 1);
+ test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 1, 0, 18);
+ test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 1, 1, 17);
+ test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 1, 9, 9);
+ test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 1, 18, 0);
+ test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 1, 19, -1);
+ test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 1, 20, -1);
+ test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 10, 0, 18);
+ test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 10, 1, -9);
+ test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 10, 5, -9);
+ test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 10, 9, -9);
+ test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 10, 10, -9);
+ test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 10, 11, -9);
+ test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 19, 0, 18);
+ test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 19, 1, -18);
+ test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 19, 2, -18);
+ test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 20, 0, 18);
+ test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 20, 1, 18);
+ test("abcdefghijklmnopqrst", 1, 18, "abcdefghijklmnopqrst", 21, 0, 0);
+ test("abcdefghijklmnopqrst", 1, 19, "", 0, 0, 19);
+ test("abcdefghijklmnopqrst", 1, 19, "", 0, 1, 19);
+ test("abcdefghijklmnopqrst", 1, 19, "", 1, 0, 0);
+ test("abcdefghijklmnopqrst", 1, 19, "abcde", 0, 0, 19);
+ test("abcdefghijklmnopqrst", 1, 19, "abcde", 0, 1, 1);
+ test("abcdefghijklmnopqrst", 1, 19, "abcde", 0, 2, 1);
+ test("abcdefghijklmnopqrst", 1, 19, "abcde", 0, 4, 1);
+ test("abcdefghijklmnopqrst", 1, 19, "abcde", 0, 5, 1);
+ test("abcdefghijklmnopqrst", 1, 19, "abcde", 0, 6, 1);
+ test("abcdefghijklmnopqrst", 1, 19, "abcde", 1, 0, 19);
+ test("abcdefghijklmnopqrst", 1, 19, "abcde", 1, 1, 18);
+ test("abcdefghijklmnopqrst", 1, 19, "abcde", 1, 2, 17);
+ test("abcdefghijklmnopqrst", 1, 19, "abcde", 1, 3, 16);
+ test("abcdefghijklmnopqrst", 1, 19, "abcde", 1, 4, 15);
+ test("abcdefghijklmnopqrst", 1, 19, "abcde", 1, 5, 15);
+ test("abcdefghijklmnopqrst", 1, 19, "abcde", 2, 0, 19);
+ test("abcdefghijklmnopqrst", 1, 19, "abcde", 2, 1, -1);
+ test("abcdefghijklmnopqrst", 1, 19, "abcde", 2, 2, -1);
+ test("abcdefghijklmnopqrst", 1, 19, "abcde", 2, 3, -1);
+ test("abcdefghijklmnopqrst", 1, 19, "abcde", 2, 4, -1);
+ test("abcdefghijklmnopqrst", 1, 19, "abcde", 4, 0, 19);
+ test("abcdefghijklmnopqrst", 1, 19, "abcde", 4, 1, -3);
+ test("abcdefghijklmnopqrst", 1, 19, "abcde", 4, 2, -3);
+ test("abcdefghijklmnopqrst", 1, 19, "abcde", 5, 0, 19);
+ test("abcdefghijklmnopqrst", 1, 19, "abcde", 5, 1, 19);
+ test("abcdefghijklmnopqrst", 1, 19, "abcde", 6, 0, 0);
+ test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 0, 0, 19);
+ test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 0, 1, 1);
+ test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 0, 5, 1);
+ test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 0, 9, 1);
+ test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 0, 10, 1);
+ test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 0, 11, 1);
+ test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 1, 0, 19);
+ test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 1, 1, 18);
+ test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 1, 4, 15);
+ test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 1, 8, 11);
+ test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 1, 9, 10);
+ test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 1, 10, 10);
+ test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 5, 0, 19);
+ test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 5, 1, -4);
+ test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 5, 2, -4);
+ test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 5, 4, -4);
+ test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 5, 5, -4);
+ test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 5, 6, -4);
+ test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 9, 0, 19);
+ test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 9, 1, -8);
+ test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 9, 2, -8);
+ test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 10, 0, 19);
+ test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 10, 1, 19);
+ test("abcdefghijklmnopqrst", 1, 19, "abcdefghij", 11, 0, 0);
+ test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 0, 0, 19);
+ test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 0, 1, 1);
+ test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 0, 10, 1);
+ test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 0, 19, 1);
+ test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 0, 20, 1);
+ test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 0, 21, 1);
+ test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 1, 0, 19);
+ test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 1, 1, 18);
+ test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 1, 9, 10);
+ test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 1, 18, 1);
}
-void test45()
-{
- test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 1, 19, 0);
- test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 1, 20, 0);
- test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 10, 0, 19);
- test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 10, 1, -9);
- test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 10, 5, -9);
- test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 10, 9, -9);
- test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 10, 10, -9);
- test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 10, 11, -9);
- test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 19, 0, 19);
- test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 19, 1, -18);
- test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 19, 2, -18);
- test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 20, 0, 19);
- test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 20, 1, 19);
- test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 21, 0, 0);
- test("abcdefghijklmnopqrst", 1, 20, "", 0, 0, 19);
- test("abcdefghijklmnopqrst", 1, 20, "", 0, 1, 19);
- test("abcdefghijklmnopqrst", 1, 20, "", 1, 0, 0);
- test("abcdefghijklmnopqrst", 1, 20, "abcde", 0, 0, 19);
- test("abcdefghijklmnopqrst", 1, 20, "abcde", 0, 1, 1);
- test("abcdefghijklmnopqrst", 1, 20, "abcde", 0, 2, 1);
- test("abcdefghijklmnopqrst", 1, 20, "abcde", 0, 4, 1);
- test("abcdefghijklmnopqrst", 1, 20, "abcde", 0, 5, 1);
- test("abcdefghijklmnopqrst", 1, 20, "abcde", 0, 6, 1);
- test("abcdefghijklmnopqrst", 1, 20, "abcde", 1, 0, 19);
- test("abcdefghijklmnopqrst", 1, 20, "abcde", 1, 1, 18);
- test("abcdefghijklmnopqrst", 1, 20, "abcde", 1, 2, 17);
- test("abcdefghijklmnopqrst", 1, 20, "abcde", 1, 3, 16);
- test("abcdefghijklmnopqrst", 1, 20, "abcde", 1, 4, 15);
- test("abcdefghijklmnopqrst", 1, 20, "abcde", 1, 5, 15);
- test("abcdefghijklmnopqrst", 1, 20, "abcde", 2, 0, 19);
- test("abcdefghijklmnopqrst", 1, 20, "abcde", 2, 1, -1);
- test("abcdefghijklmnopqrst", 1, 20, "abcde", 2, 2, -1);
- test("abcdefghijklmnopqrst", 1, 20, "abcde", 2, 3, -1);
- test("abcdefghijklmnopqrst", 1, 20, "abcde", 2, 4, -1);
- test("abcdefghijklmnopqrst", 1, 20, "abcde", 4, 0, 19);
- test("abcdefghijklmnopqrst", 1, 20, "abcde", 4, 1, -3);
- test("abcdefghijklmnopqrst", 1, 20, "abcde", 4, 2, -3);
- test("abcdefghijklmnopqrst", 1, 20, "abcde", 5, 0, 19);
- test("abcdefghijklmnopqrst", 1, 20, "abcde", 5, 1, 19);
- test("abcdefghijklmnopqrst", 1, 20, "abcde", 6, 0, 0);
- test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 0, 0, 19);
- test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 0, 1, 1);
- test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 0, 5, 1);
- test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 0, 9, 1);
- test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 0, 10, 1);
- test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 0, 11, 1);
- test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 1, 0, 19);
- test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 1, 1, 18);
- test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 1, 4, 15);
- test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 1, 8, 11);
- test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 1, 9, 10);
- test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 1, 10, 10);
- test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 5, 0, 19);
- test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 5, 1, -4);
- test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 5, 2, -4);
- test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 5, 4, -4);
- test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 5, 5, -4);
- test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 5, 6, -4);
- test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 9, 0, 19);
- test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 9, 1, -8);
- test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 9, 2, -8);
- test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 10, 0, 19);
- test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 10, 1, 19);
- test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 11, 0, 0);
- test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 0, 0, 19);
- test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 0, 1, 1);
- test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 0, 10, 1);
- test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 0, 19, 1);
- test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 0, 20, 1);
- test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 0, 21, 1);
- test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 1, 0, 19);
- test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 1, 1, 18);
- test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 1, 9, 10);
- test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 1, 18, 1);
- test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 1, 19, 0);
- test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 1, 20, 0);
- test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 10, 0, 19);
- test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 10, 1, -9);
- test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 10, 5, -9);
- test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 10, 9, -9);
- test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 10, 10, -9);
- test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 10, 11, -9);
- test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 19, 0, 19);
- test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 19, 1, -18);
- test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 19, 2, -18);
- test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 20, 0, 19);
- test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 20, 1, 19);
- test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 21, 0, 0);
- test("abcdefghijklmnopqrst", 10, 0, "", 0, 0, 0);
- test("abcdefghijklmnopqrst", 10, 0, "", 0, 1, 0);
- test("abcdefghijklmnopqrst", 10, 0, "", 1, 0, 0);
- test("abcdefghijklmnopqrst", 10, 0, "abcde", 0, 0, 0);
- test("abcdefghijklmnopqrst", 10, 0, "abcde", 0, 1, -1);
- test("abcdefghijklmnopqrst", 10, 0, "abcde", 0, 2, -2);
- test("abcdefghijklmnopqrst", 10, 0, "abcde", 0, 4, -4);
- test("abcdefghijklmnopqrst", 10, 0, "abcde", 0, 5, -5);
- test("abcdefghijklmnopqrst", 10, 0, "abcde", 0, 6, -5);
- test("abcdefghijklmnopqrst", 10, 0, "abcde", 1, 0, 0);
- test("abcdefghijklmnopqrst", 10, 0, "abcde", 1, 1, -1);
- test("abcdefghijklmnopqrst", 10, 0, "abcde", 1, 2, -2);
+void test45() {
+ test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 1, 19, 0);
+ test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 1, 20, 0);
+ test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 10, 0, 19);
+ test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 10, 1, -9);
+ test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 10, 5, -9);
+ test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 10, 9, -9);
+ test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 10, 10, -9);
+ test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 10, 11, -9);
+ test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 19, 0, 19);
+ test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 19, 1, -18);
+ test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 19, 2, -18);
+ test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 20, 0, 19);
+ test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 20, 1, 19);
+ test("abcdefghijklmnopqrst", 1, 19, "abcdefghijklmnopqrst", 21, 0, 0);
+ test("abcdefghijklmnopqrst", 1, 20, "", 0, 0, 19);
+ test("abcdefghijklmnopqrst", 1, 20, "", 0, 1, 19);
+ test("abcdefghijklmnopqrst", 1, 20, "", 1, 0, 0);
+ test("abcdefghijklmnopqrst", 1, 20, "abcde", 0, 0, 19);
+ test("abcdefghijklmnopqrst", 1, 20, "abcde", 0, 1, 1);
+ test("abcdefghijklmnopqrst", 1, 20, "abcde", 0, 2, 1);
+ test("abcdefghijklmnopqrst", 1, 20, "abcde", 0, 4, 1);
+ test("abcdefghijklmnopqrst", 1, 20, "abcde", 0, 5, 1);
+ test("abcdefghijklmnopqrst", 1, 20, "abcde", 0, 6, 1);
+ test("abcdefghijklmnopqrst", 1, 20, "abcde", 1, 0, 19);
+ test("abcdefghijklmnopqrst", 1, 20, "abcde", 1, 1, 18);
+ test("abcdefghijklmnopqrst", 1, 20, "abcde", 1, 2, 17);
+ test("abcdefghijklmnopqrst", 1, 20, "abcde", 1, 3, 16);
+ test("abcdefghijklmnopqrst", 1, 20, "abcde", 1, 4, 15);
+ test("abcdefghijklmnopqrst", 1, 20, "abcde", 1, 5, 15);
+ test("abcdefghijklmnopqrst", 1, 20, "abcde", 2, 0, 19);
+ test("abcdefghijklmnopqrst", 1, 20, "abcde", 2, 1, -1);
+ test("abcdefghijklmnopqrst", 1, 20, "abcde", 2, 2, -1);
+ test("abcdefghijklmnopqrst", 1, 20, "abcde", 2, 3, -1);
+ test("abcdefghijklmnopqrst", 1, 20, "abcde", 2, 4, -1);
+ test("abcdefghijklmnopqrst", 1, 20, "abcde", 4, 0, 19);
+ test("abcdefghijklmnopqrst", 1, 20, "abcde", 4, 1, -3);
+ test("abcdefghijklmnopqrst", 1, 20, "abcde", 4, 2, -3);
+ test("abcdefghijklmnopqrst", 1, 20, "abcde", 5, 0, 19);
+ test("abcdefghijklmnopqrst", 1, 20, "abcde", 5, 1, 19);
+ test("abcdefghijklmnopqrst", 1, 20, "abcde", 6, 0, 0);
+ test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 0, 0, 19);
+ test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 0, 1, 1);
+ test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 0, 5, 1);
+ test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 0, 9, 1);
+ test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 0, 10, 1);
+ test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 0, 11, 1);
+ test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 1, 0, 19);
+ test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 1, 1, 18);
+ test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 1, 4, 15);
+ test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 1, 8, 11);
+ test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 1, 9, 10);
+ test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 1, 10, 10);
+ test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 5, 0, 19);
+ test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 5, 1, -4);
+ test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 5, 2, -4);
+ test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 5, 4, -4);
+ test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 5, 5, -4);
+ test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 5, 6, -4);
+ test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 9, 0, 19);
+ test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 9, 1, -8);
+ test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 9, 2, -8);
+ test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 10, 0, 19);
+ test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 10, 1, 19);
+ test("abcdefghijklmnopqrst", 1, 20, "abcdefghij", 11, 0, 0);
+ test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 0, 0, 19);
+ test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 0, 1, 1);
+ test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 0, 10, 1);
+ test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 0, 19, 1);
+ test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 0, 20, 1);
+ test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 0, 21, 1);
+ test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 1, 0, 19);
+ test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 1, 1, 18);
+ test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 1, 9, 10);
+ test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 1, 18, 1);
+ test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 1, 19, 0);
+ test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 1, 20, 0);
+ test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 10, 0, 19);
+ test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 10, 1, -9);
+ test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 10, 5, -9);
+ test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 10, 9, -9);
+ test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 10, 10, -9);
+ test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 10, 11, -9);
+ test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 19, 0, 19);
+ test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 19, 1, -18);
+ test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 19, 2, -18);
+ test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 20, 0, 19);
+ test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 20, 1, 19);
+ test("abcdefghijklmnopqrst", 1, 20, "abcdefghijklmnopqrst", 21, 0, 0);
+ test("abcdefghijklmnopqrst", 10, 0, "", 0, 0, 0);
+ test("abcdefghijklmnopqrst", 10, 0, "", 0, 1, 0);
+ test("abcdefghijklmnopqrst", 10, 0, "", 1, 0, 0);
+ test("abcdefghijklmnopqrst", 10, 0, "abcde", 0, 0, 0);
+ test("abcdefghijklmnopqrst", 10, 0, "abcde", 0, 1, -1);
+ test("abcdefghijklmnopqrst", 10, 0, "abcde", 0, 2, -2);
+ test("abcdefghijklmnopqrst", 10, 0, "abcde", 0, 4, -4);
+ test("abcdefghijklmnopqrst", 10, 0, "abcde", 0, 5, -5);
+ test("abcdefghijklmnopqrst", 10, 0, "abcde", 0, 6, -5);
+ test("abcdefghijklmnopqrst", 10, 0, "abcde", 1, 0, 0);
+ test("abcdefghijklmnopqrst", 10, 0, "abcde", 1, 1, -1);
+ test("abcdefghijklmnopqrst", 10, 0, "abcde", 1, 2, -2);
}
-void test46()
-{
- test("abcdefghijklmnopqrst", 10, 0, "abcde", 1, 3, -3);
- test("abcdefghijklmnopqrst", 10, 0, "abcde", 1, 4, -4);
- test("abcdefghijklmnopqrst", 10, 0, "abcde", 1, 5, -4);
- test("abcdefghijklmnopqrst", 10, 0, "abcde", 2, 0, 0);
- test("abcdefghijklmnopqrst", 10, 0, "abcde", 2, 1, -1);
- test("abcdefghijklmnopqrst", 10, 0, "abcde", 2, 2, -2);
- test("abcdefghijklmnopqrst", 10, 0, "abcde", 2, 3, -3);
- test("abcdefghijklmnopqrst", 10, 0, "abcde", 2, 4, -3);
- test("abcdefghijklmnopqrst", 10, 0, "abcde", 4, 0, 0);
- test("abcdefghijklmnopqrst", 10, 0, "abcde", 4, 1, -1);
- test("abcdefghijklmnopqrst", 10, 0, "abcde", 4, 2, -1);
- test("abcdefghijklmnopqrst", 10, 0, "abcde", 5, 0, 0);
- test("abcdefghijklmnopqrst", 10, 0, "abcde", 5, 1, 0);
- test("abcdefghijklmnopqrst", 10, 0, "abcde", 6, 0, 0);
- test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 0, 0, 0);
- test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 0, 1, -1);
- test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 0, 5, -5);
- test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 0, 9, -9);
- test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 0, 10, -10);
- test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 0, 11, -10);
- test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 1, 0, 0);
- test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 1, 1, -1);
- test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 1, 4, -4);
- test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 1, 8, -8);
- test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 1, 9, -9);
- test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 1, 10, -9);
- test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 5, 0, 0);
- test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 5, 1, -1);
- test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 5, 2, -2);
- test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 5, 4, -4);
- test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 5, 5, -5);
- test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 5, 6, -5);
- test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 9, 0, 0);
- test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 9, 1, -1);
- test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 9, 2, -1);
- test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 10, 0, 0);
- test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 10, 1, 0);
- test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 11, 0, 0);
- test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 0, 0, 0);
- test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 0, 1, -1);
- test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 0, 10, -10);
- test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 0, 19, -19);
- test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 0, 20, -20);
- test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 0, 21, -20);
- test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 1, 0, 0);
- test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 1, 1, -1);
- test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 1, 9, -9);
- test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 1, 18, -18);
- test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 1, 19, -19);
- test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 1, 20, -19);
- test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 10, 0, 0);
- test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 10, 1, -1);
- test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 10, 5, -5);
- test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 10, 9, -9);
- test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 10, 10, -10);
- test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 10, 11, -10);
- test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 19, 0, 0);
- test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 19, 1, -1);
- test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 19, 2, -1);
- test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 20, 0, 0);
- test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 20, 1, 0);
- test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 21, 0, 0);
- test("abcdefghijklmnopqrst", 10, 1, "", 0, 0, 1);
- test("abcdefghijklmnopqrst", 10, 1, "", 0, 1, 1);
- test("abcdefghijklmnopqrst", 10, 1, "", 1, 0, 0);
- test("abcdefghijklmnopqrst", 10, 1, "abcde", 0, 0, 1);
- test("abcdefghijklmnopqrst", 10, 1, "abcde", 0, 1, 10);
- test("abcdefghijklmnopqrst", 10, 1, "abcde", 0, 2, 10);
- test("abcdefghijklmnopqrst", 10, 1, "abcde", 0, 4, 10);
- test("abcdefghijklmnopqrst", 10, 1, "abcde", 0, 5, 10);
- test("abcdefghijklmnopqrst", 10, 1, "abcde", 0, 6, 10);
- test("abcdefghijklmnopqrst", 10, 1, "abcde", 1, 0, 1);
- test("abcdefghijklmnopqrst", 10, 1, "abcde", 1, 1, 9);
- test("abcdefghijklmnopqrst", 10, 1, "abcde", 1, 2, 9);
- test("abcdefghijklmnopqrst", 10, 1, "abcde", 1, 3, 9);
- test("abcdefghijklmnopqrst", 10, 1, "abcde", 1, 4, 9);
- test("abcdefghijklmnopqrst", 10, 1, "abcde", 1, 5, 9);
- test("abcdefghijklmnopqrst", 10, 1, "abcde", 2, 0, 1);
- test("abcdefghijklmnopqrst", 10, 1, "abcde", 2, 1, 8);
- test("abcdefghijklmnopqrst", 10, 1, "abcde", 2, 2, 8);
- test("abcdefghijklmnopqrst", 10, 1, "abcde", 2, 3, 8);
- test("abcdefghijklmnopqrst", 10, 1, "abcde", 2, 4, 8);
- test("abcdefghijklmnopqrst", 10, 1, "abcde", 4, 0, 1);
- test("abcdefghijklmnopqrst", 10, 1, "abcde", 4, 1, 6);
- test("abcdefghijklmnopqrst", 10, 1, "abcde", 4, 2, 6);
- test("abcdefghijklmnopqrst", 10, 1, "abcde", 5, 0, 1);
- test("abcdefghijklmnopqrst", 10, 1, "abcde", 5, 1, 1);
- test("abcdefghijklmnopqrst", 10, 1, "abcde", 6, 0, 0);
- test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 0, 0, 1);
- test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 0, 1, 10);
- test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 0, 5, 10);
- test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 0, 9, 10);
- test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 0, 10, 10);
- test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 0, 11, 10);
- test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 1, 0, 1);
- test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 1, 1, 9);
- test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 1, 4, 9);
- test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 1, 8, 9);
- test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 1, 9, 9);
- test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 1, 10, 9);
+void test46() {
+ test("abcdefghijklmnopqrst", 10, 0, "abcde", 1, 3, -3);
+ test("abcdefghijklmnopqrst", 10, 0, "abcde", 1, 4, -4);
+ test("abcdefghijklmnopqrst", 10, 0, "abcde", 1, 5, -4);
+ test("abcdefghijklmnopqrst", 10, 0, "abcde", 2, 0, 0);
+ test("abcdefghijklmnopqrst", 10, 0, "abcde", 2, 1, -1);
+ test("abcdefghijklmnopqrst", 10, 0, "abcde", 2, 2, -2);
+ test("abcdefghijklmnopqrst", 10, 0, "abcde", 2, 3, -3);
+ test("abcdefghijklmnopqrst", 10, 0, "abcde", 2, 4, -3);
+ test("abcdefghijklmnopqrst", 10, 0, "abcde", 4, 0, 0);
+ test("abcdefghijklmnopqrst", 10, 0, "abcde", 4, 1, -1);
+ test("abcdefghijklmnopqrst", 10, 0, "abcde", 4, 2, -1);
+ test("abcdefghijklmnopqrst", 10, 0, "abcde", 5, 0, 0);
+ test("abcdefghijklmnopqrst", 10, 0, "abcde", 5, 1, 0);
+ test("abcdefghijklmnopqrst", 10, 0, "abcde", 6, 0, 0);
+ test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 0, 0, 0);
+ test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 0, 1, -1);
+ test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 0, 5, -5);
+ test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 0, 9, -9);
+ test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 0, 10, -10);
+ test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 0, 11, -10);
+ test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 1, 0, 0);
+ test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 1, 1, -1);
+ test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 1, 4, -4);
+ test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 1, 8, -8);
+ test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 1, 9, -9);
+ test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 1, 10, -9);
+ test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 5, 0, 0);
+ test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 5, 1, -1);
+ test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 5, 2, -2);
+ test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 5, 4, -4);
+ test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 5, 5, -5);
+ test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 5, 6, -5);
+ test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 9, 0, 0);
+ test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 9, 1, -1);
+ test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 9, 2, -1);
+ test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 10, 0, 0);
+ test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 10, 1, 0);
+ test("abcdefghijklmnopqrst", 10, 0, "abcdefghij", 11, 0, 0);
+ test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 0, 0, 0);
+ test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 0, 1, -1);
+ test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 0, 10, -10);
+ test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 0, 19, -19);
+ test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 0, 20, -20);
+ test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 0, 21, -20);
+ test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 1, 0, 0);
+ test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 1, 1, -1);
+ test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 1, 9, -9);
+ test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 1, 18, -18);
+ test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 1, 19, -19);
+ test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 1, 20, -19);
+ test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 10, 0, 0);
+ test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 10, 1, -1);
+ test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 10, 5, -5);
+ test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 10, 9, -9);
+ test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 10, 10, -10);
+ test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 10, 11, -10);
+ test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 19, 0, 0);
+ test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 19, 1, -1);
+ test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 19, 2, -1);
+ test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 20, 0, 0);
+ test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 20, 1, 0);
+ test("abcdefghijklmnopqrst", 10, 0, "abcdefghijklmnopqrst", 21, 0, 0);
+ test("abcdefghijklmnopqrst", 10, 1, "", 0, 0, 1);
+ test("abcdefghijklmnopqrst", 10, 1, "", 0, 1, 1);
+ test("abcdefghijklmnopqrst", 10, 1, "", 1, 0, 0);
+ test("abcdefghijklmnopqrst", 10, 1, "abcde", 0, 0, 1);
+ test("abcdefghijklmnopqrst", 10, 1, "abcde", 0, 1, 10);
+ test("abcdefghijklmnopqrst", 10, 1, "abcde", 0, 2, 10);
+ test("abcdefghijklmnopqrst", 10, 1, "abcde", 0, 4, 10);
+ test("abcdefghijklmnopqrst", 10, 1, "abcde", 0, 5, 10);
+ test("abcdefghijklmnopqrst", 10, 1, "abcde", 0, 6, 10);
+ test("abcdefghijklmnopqrst", 10, 1, "abcde", 1, 0, 1);
+ test("abcdefghijklmnopqrst", 10, 1, "abcde", 1, 1, 9);
+ test("abcdefghijklmnopqrst", 10, 1, "abcde", 1, 2, 9);
+ test("abcdefghijklmnopqrst", 10, 1, "abcde", 1, 3, 9);
+ test("abcdefghijklmnopqrst", 10, 1, "abcde", 1, 4, 9);
+ test("abcdefghijklmnopqrst", 10, 1, "abcde", 1, 5, 9);
+ test("abcdefghijklmnopqrst", 10, 1, "abcde", 2, 0, 1);
+ test("abcdefghijklmnopqrst", 10, 1, "abcde", 2, 1, 8);
+ test("abcdefghijklmnopqrst", 10, 1, "abcde", 2, 2, 8);
+ test("abcdefghijklmnopqrst", 10, 1, "abcde", 2, 3, 8);
+ test("abcdefghijklmnopqrst", 10, 1, "abcde", 2, 4, 8);
+ test("abcdefghijklmnopqrst", 10, 1, "abcde", 4, 0, 1);
+ test("abcdefghijklmnopqrst", 10, 1, "abcde", 4, 1, 6);
+ test("abcdefghijklmnopqrst", 10, 1, "abcde", 4, 2, 6);
+ test("abcdefghijklmnopqrst", 10, 1, "abcde", 5, 0, 1);
+ test("abcdefghijklmnopqrst", 10, 1, "abcde", 5, 1, 1);
+ test("abcdefghijklmnopqrst", 10, 1, "abcde", 6, 0, 0);
+ test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 0, 0, 1);
+ test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 0, 1, 10);
+ test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 0, 5, 10);
+ test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 0, 9, 10);
+ test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 0, 10, 10);
+ test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 0, 11, 10);
+ test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 1, 0, 1);
+ test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 1, 1, 9);
+ test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 1, 4, 9);
+ test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 1, 8, 9);
+ test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 1, 9, 9);
+ test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 1, 10, 9);
}
-void test47()
-{
- test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 5, 0, 1);
- test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 5, 1, 5);
- test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 5, 2, 5);
- test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 5, 4, 5);
- test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 5, 5, 5);
- test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 5, 6, 5);
- test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 9, 0, 1);
- test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 9, 1, 1);
- test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 9, 2, 1);
- test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 10, 0, 1);
- test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 10, 1, 1);
- test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 11, 0, 0);
- test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 0, 0, 1);
- test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 0, 1, 10);
- test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 0, 10, 10);
- test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 0, 19, 10);
- test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 0, 20, 10);
- test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 0, 21, 10);
- test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 1, 0, 1);
- test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 1, 1, 9);
- test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 1, 9, 9);
- test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 1, 18, 9);
- test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 1, 19, 9);
- test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 1, 20, 9);
- test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 10, 0, 1);
- test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 10, 1, 0);
- test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 10, 5, -4);
- test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 10, 9, -8);
- test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 10, 10, -9);
- test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 10, 11, -9);
- test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 19, 0, 1);
- test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 19, 1, -9);
- test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 19, 2, -9);
- test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 20, 0, 1);
- test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 20, 1, 1);
- test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 21, 0, 0);
- test("abcdefghijklmnopqrst", 10, 5, "", 0, 0, 5);
- test("abcdefghijklmnopqrst", 10, 5, "", 0, 1, 5);
- test("abcdefghijklmnopqrst", 10, 5, "", 1, 0, 0);
- test("abcdefghijklmnopqrst", 10, 5, "abcde", 0, 0, 5);
- test("abcdefghijklmnopqrst", 10, 5, "abcde", 0, 1, 10);
- test("abcdefghijklmnopqrst", 10, 5, "abcde", 0, 2, 10);
- test("abcdefghijklmnopqrst", 10, 5, "abcde", 0, 4, 10);
- test("abcdefghijklmnopqrst", 10, 5, "abcde", 0, 5, 10);
- test("abcdefghijklmnopqrst", 10, 5, "abcde", 0, 6, 10);
- test("abcdefghijklmnopqrst", 10, 5, "abcde", 1, 0, 5);
- test("abcdefghijklmnopqrst", 10, 5, "abcde", 1, 1, 9);
- test("abcdefghijklmnopqrst", 10, 5, "abcde", 1, 2, 9);
- test("abcdefghijklmnopqrst", 10, 5, "abcde", 1, 3, 9);
- test("abcdefghijklmnopqrst", 10, 5, "abcde", 1, 4, 9);
- test("abcdefghijklmnopqrst", 10, 5, "abcde", 1, 5, 9);
- test("abcdefghijklmnopqrst", 10, 5, "abcde", 2, 0, 5);
- test("abcdefghijklmnopqrst", 10, 5, "abcde", 2, 1, 8);
- test("abcdefghijklmnopqrst", 10, 5, "abcde", 2, 2, 8);
- test("abcdefghijklmnopqrst", 10, 5, "abcde", 2, 3, 8);
- test("abcdefghijklmnopqrst", 10, 5, "abcde", 2, 4, 8);
- test("abcdefghijklmnopqrst", 10, 5, "abcde", 4, 0, 5);
- test("abcdefghijklmnopqrst", 10, 5, "abcde", 4, 1, 6);
- test("abcdefghijklmnopqrst", 10, 5, "abcde", 4, 2, 6);
- test("abcdefghijklmnopqrst", 10, 5, "abcde", 5, 0, 5);
- test("abcdefghijklmnopqrst", 10, 5, "abcde", 5, 1, 5);
- test("abcdefghijklmnopqrst", 10, 5, "abcde", 6, 0, 0);
- test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 0, 0, 5);
- test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 0, 1, 10);
- test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 0, 5, 10);
- test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 0, 9, 10);
- test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 0, 10, 10);
- test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 0, 11, 10);
- test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 1, 0, 5);
- test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 1, 1, 9);
- test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 1, 4, 9);
- test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 1, 8, 9);
- test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 1, 9, 9);
- test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 1, 10, 9);
- test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 5, 0, 5);
- test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 5, 1, 5);
- test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 5, 2, 5);
- test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 5, 4, 5);
- test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 5, 5, 5);
- test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 5, 6, 5);
- test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 9, 0, 5);
- test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 9, 1, 1);
- test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 9, 2, 1);
- test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 10, 0, 5);
- test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 10, 1, 5);
- test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 11, 0, 0);
- test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 0, 0, 5);
- test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 0, 1, 10);
- test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 0, 10, 10);
- test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 0, 19, 10);
- test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 0, 20, 10);
- test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 0, 21, 10);
- test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 1, 0, 5);
- test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 1, 1, 9);
- test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 1, 9, 9);
- test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 1, 18, 9);
- test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 1, 19, 9);
- test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 1, 20, 9);
- test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 10, 0, 5);
- test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 10, 1, 4);
+void test47() {
+ test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 5, 0, 1);
+ test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 5, 1, 5);
+ test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 5, 2, 5);
+ test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 5, 4, 5);
+ test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 5, 5, 5);
+ test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 5, 6, 5);
+ test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 9, 0, 1);
+ test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 9, 1, 1);
+ test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 9, 2, 1);
+ test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 10, 0, 1);
+ test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 10, 1, 1);
+ test("abcdefghijklmnopqrst", 10, 1, "abcdefghij", 11, 0, 0);
+ test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 0, 0, 1);
+ test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 0, 1, 10);
+ test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 0, 10, 10);
+ test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 0, 19, 10);
+ test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 0, 20, 10);
+ test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 0, 21, 10);
+ test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 1, 0, 1);
+ test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 1, 1, 9);
+ test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 1, 9, 9);
+ test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 1, 18, 9);
+ test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 1, 19, 9);
+ test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 1, 20, 9);
+ test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 10, 0, 1);
+ test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 10, 1, 0);
+ test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 10, 5, -4);
+ test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 10, 9, -8);
+ test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 10, 10, -9);
+ test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 10, 11, -9);
+ test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 19, 0, 1);
+ test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 19, 1, -9);
+ test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 19, 2, -9);
+ test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 20, 0, 1);
+ test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 20, 1, 1);
+ test("abcdefghijklmnopqrst", 10, 1, "abcdefghijklmnopqrst", 21, 0, 0);
+ test("abcdefghijklmnopqrst", 10, 5, "", 0, 0, 5);
+ test("abcdefghijklmnopqrst", 10, 5, "", 0, 1, 5);
+ test("abcdefghijklmnopqrst", 10, 5, "", 1, 0, 0);
+ test("abcdefghijklmnopqrst", 10, 5, "abcde", 0, 0, 5);
+ test("abcdefghijklmnopqrst", 10, 5, "abcde", 0, 1, 10);
+ test("abcdefghijklmnopqrst", 10, 5, "abcde", 0, 2, 10);
+ test("abcdefghijklmnopqrst", 10, 5, "abcde", 0, 4, 10);
+ test("abcdefghijklmnopqrst", 10, 5, "abcde", 0, 5, 10);
+ test("abcdefghijklmnopqrst", 10, 5, "abcde", 0, 6, 10);
+ test("abcdefghijklmnopqrst", 10, 5, "abcde", 1, 0, 5);
+ test("abcdefghijklmnopqrst", 10, 5, "abcde", 1, 1, 9);
+ test("abcdefghijklmnopqrst", 10, 5, "abcde", 1, 2, 9);
+ test("abcdefghijklmnopqrst", 10, 5, "abcde", 1, 3, 9);
+ test("abcdefghijklmnopqrst", 10, 5, "abcde", 1, 4, 9);
+ test("abcdefghijklmnopqrst", 10, 5, "abcde", 1, 5, 9);
+ test("abcdefghijklmnopqrst", 10, 5, "abcde", 2, 0, 5);
+ test("abcdefghijklmnopqrst", 10, 5, "abcde", 2, 1, 8);
+ test("abcdefghijklmnopqrst", 10, 5, "abcde", 2, 2, 8);
+ test("abcdefghijklmnopqrst", 10, 5, "abcde", 2, 3, 8);
+ test("abcdefghijklmnopqrst", 10, 5, "abcde", 2, 4, 8);
+ test("abcdefghijklmnopqrst", 10, 5, "abcde", 4, 0, 5);
+ test("abcdefghijklmnopqrst", 10, 5, "abcde", 4, 1, 6);
+ test("abcdefghijklmnopqrst", 10, 5, "abcde", 4, 2, 6);
+ test("abcdefghijklmnopqrst", 10, 5, "abcde", 5, 0, 5);
+ test("abcdefghijklmnopqrst", 10, 5, "abcde", 5, 1, 5);
+ test("abcdefghijklmnopqrst", 10, 5, "abcde", 6, 0, 0);
+ test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 0, 0, 5);
+ test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 0, 1, 10);
+ test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 0, 5, 10);
+ test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 0, 9, 10);
+ test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 0, 10, 10);
+ test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 0, 11, 10);
+ test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 1, 0, 5);
+ test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 1, 1, 9);
+ test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 1, 4, 9);
+ test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 1, 8, 9);
+ test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 1, 9, 9);
+ test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 1, 10, 9);
+ test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 5, 0, 5);
+ test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 5, 1, 5);
+ test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 5, 2, 5);
+ test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 5, 4, 5);
+ test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 5, 5, 5);
+ test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 5, 6, 5);
+ test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 9, 0, 5);
+ test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 9, 1, 1);
+ test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 9, 2, 1);
+ test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 10, 0, 5);
+ test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 10, 1, 5);
+ test("abcdefghijklmnopqrst", 10, 5, "abcdefghij", 11, 0, 0);
+ test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 0, 0, 5);
+ test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 0, 1, 10);
+ test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 0, 10, 10);
+ test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 0, 19, 10);
+ test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 0, 20, 10);
+ test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 0, 21, 10);
+ test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 1, 0, 5);
+ test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 1, 1, 9);
+ test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 1, 9, 9);
+ test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 1, 18, 9);
+ test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 1, 19, 9);
+ test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 1, 20, 9);
+ test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 10, 0, 5);
+ test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 10, 1, 4);
}
-void test48()
-{
- test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 10, 5, 0);
- test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 10, 9, -4);
- test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 10, 10, -5);
- test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 10, 11, -5);
- test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 19, 0, 5);
- test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 19, 1, -9);
- test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 19, 2, -9);
- test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 20, 0, 5);
- test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 20, 1, 5);
- test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 21, 0, 0);
- test("abcdefghijklmnopqrst", 10, 9, "", 0, 0, 9);
- test("abcdefghijklmnopqrst", 10, 9, "", 0, 1, 9);
- test("abcdefghijklmnopqrst", 10, 9, "", 1, 0, 0);
- test("abcdefghijklmnopqrst", 10, 9, "abcde", 0, 0, 9);
- test("abcdefghijklmnopqrst", 10, 9, "abcde", 0, 1, 10);
- test("abcdefghijklmnopqrst", 10, 9, "abcde", 0, 2, 10);
- test("abcdefghijklmnopqrst", 10, 9, "abcde", 0, 4, 10);
- test("abcdefghijklmnopqrst", 10, 9, "abcde", 0, 5, 10);
- test("abcdefghijklmnopqrst", 10, 9, "abcde", 0, 6, 10);
- test("abcdefghijklmnopqrst", 10, 9, "abcde", 1, 0, 9);
- test("abcdefghijklmnopqrst", 10, 9, "abcde", 1, 1, 9);
- test("abcdefghijklmnopqrst", 10, 9, "abcde", 1, 2, 9);
- test("abcdefghijklmnopqrst", 10, 9, "abcde", 1, 3, 9);
- test("abcdefghijklmnopqrst", 10, 9, "abcde", 1, 4, 9);
- test("abcdefghijklmnopqrst", 10, 9, "abcde", 1, 5, 9);
- test("abcdefghijklmnopqrst", 10, 9, "abcde", 2, 0, 9);
- test("abcdefghijklmnopqrst", 10, 9, "abcde", 2, 1, 8);
- test("abcdefghijklmnopqrst", 10, 9, "abcde", 2, 2, 8);
- test("abcdefghijklmnopqrst", 10, 9, "abcde", 2, 3, 8);
- test("abcdefghijklmnopqrst", 10, 9, "abcde", 2, 4, 8);
- test("abcdefghijklmnopqrst", 10, 9, "abcde", 4, 0, 9);
- test("abcdefghijklmnopqrst", 10, 9, "abcde", 4, 1, 6);
- test("abcdefghijklmnopqrst", 10, 9, "abcde", 4, 2, 6);
- test("abcdefghijklmnopqrst", 10, 9, "abcde", 5, 0, 9);
- test("abcdefghijklmnopqrst", 10, 9, "abcde", 5, 1, 9);
- test("abcdefghijklmnopqrst", 10, 9, "abcde", 6, 0, 0);
- test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 0, 0, 9);
- test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 0, 1, 10);
- test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 0, 5, 10);
- test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 0, 9, 10);
- test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 0, 10, 10);
- test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 0, 11, 10);
- test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 1, 0, 9);
- test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 1, 1, 9);
- test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 1, 4, 9);
- test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 1, 8, 9);
- test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 1, 9, 9);
- test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 1, 10, 9);
- test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 5, 0, 9);
- test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 5, 1, 5);
- test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 5, 2, 5);
- test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 5, 4, 5);
- test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 5, 5, 5);
- test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 5, 6, 5);
- test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 9, 0, 9);
- test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 9, 1, 1);
- test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 9, 2, 1);
- test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 10, 0, 9);
- test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 10, 1, 9);
- test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 11, 0, 0);
- test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 0, 0, 9);
- test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 0, 1, 10);
- test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 0, 10, 10);
- test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 0, 19, 10);
- test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 0, 20, 10);
- test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 0, 21, 10);
- test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 1, 0, 9);
- test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 1, 1, 9);
- test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 1, 9, 9);
- test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 1, 18, 9);
- test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 1, 19, 9);
- test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 1, 20, 9);
- test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 10, 0, 9);
- test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 10, 1, 8);
- test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 10, 5, 4);
- test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 10, 9, 0);
- test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 10, 10, -1);
- test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 10, 11, -1);
- test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 19, 0, 9);
- test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 19, 1, -9);
- test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 19, 2, -9);
- test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 20, 0, 9);
- test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 20, 1, 9);
- test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 21, 0, 0);
- test("abcdefghijklmnopqrst", 10, 10, "", 0, 0, 10);
- test("abcdefghijklmnopqrst", 10, 10, "", 0, 1, 10);
- test("abcdefghijklmnopqrst", 10, 10, "", 1, 0, 0);
- test("abcdefghijklmnopqrst", 10, 10, "abcde", 0, 0, 10);
- test("abcdefghijklmnopqrst", 10, 10, "abcde", 0, 1, 10);
- test("abcdefghijklmnopqrst", 10, 10, "abcde", 0, 2, 10);
- test("abcdefghijklmnopqrst", 10, 10, "abcde", 0, 4, 10);
- test("abcdefghijklmnopqrst", 10, 10, "abcde", 0, 5, 10);
- test("abcdefghijklmnopqrst", 10, 10, "abcde", 0, 6, 10);
- test("abcdefghijklmnopqrst", 10, 10, "abcde", 1, 0, 10);
- test("abcdefghijklmnopqrst", 10, 10, "abcde", 1, 1, 9);
- test("abcdefghijklmnopqrst", 10, 10, "abcde", 1, 2, 9);
- test("abcdefghijklmnopqrst", 10, 10, "abcde", 1, 3, 9);
- test("abcdefghijklmnopqrst", 10, 10, "abcde", 1, 4, 9);
- test("abcdefghijklmnopqrst", 10, 10, "abcde", 1, 5, 9);
- test("abcdefghijklmnopqrst", 10, 10, "abcde", 2, 0, 10);
+void test48() {
+ test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 10, 5, 0);
+ test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 10, 9, -4);
+ test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 10, 10, -5);
+ test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 10, 11, -5);
+ test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 19, 0, 5);
+ test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 19, 1, -9);
+ test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 19, 2, -9);
+ test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 20, 0, 5);
+ test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 20, 1, 5);
+ test("abcdefghijklmnopqrst", 10, 5, "abcdefghijklmnopqrst", 21, 0, 0);
+ test("abcdefghijklmnopqrst", 10, 9, "", 0, 0, 9);
+ test("abcdefghijklmnopqrst", 10, 9, "", 0, 1, 9);
+ test("abcdefghijklmnopqrst", 10, 9, "", 1, 0, 0);
+ test("abcdefghijklmnopqrst", 10, 9, "abcde", 0, 0, 9);
+ test("abcdefghijklmnopqrst", 10, 9, "abcde", 0, 1, 10);
+ test("abcdefghijklmnopqrst", 10, 9, "abcde", 0, 2, 10);
+ test("abcdefghijklmnopqrst", 10, 9, "abcde", 0, 4, 10);
+ test("abcdefghijklmnopqrst", 10, 9, "abcde", 0, 5, 10);
+ test("abcdefghijklmnopqrst", 10, 9, "abcde", 0, 6, 10);
+ test("abcdefghijklmnopqrst", 10, 9, "abcde", 1, 0, 9);
+ test("abcdefghijklmnopqrst", 10, 9, "abcde", 1, 1, 9);
+ test("abcdefghijklmnopqrst", 10, 9, "abcde", 1, 2, 9);
+ test("abcdefghijklmnopqrst", 10, 9, "abcde", 1, 3, 9);
+ test("abcdefghijklmnopqrst", 10, 9, "abcde", 1, 4, 9);
+ test("abcdefghijklmnopqrst", 10, 9, "abcde", 1, 5, 9);
+ test("abcdefghijklmnopqrst", 10, 9, "abcde", 2, 0, 9);
+ test("abcdefghijklmnopqrst", 10, 9, "abcde", 2, 1, 8);
+ test("abcdefghijklmnopqrst", 10, 9, "abcde", 2, 2, 8);
+ test("abcdefghijklmnopqrst", 10, 9, "abcde", 2, 3, 8);
+ test("abcdefghijklmnopqrst", 10, 9, "abcde", 2, 4, 8);
+ test("abcdefghijklmnopqrst", 10, 9, "abcde", 4, 0, 9);
+ test("abcdefghijklmnopqrst", 10, 9, "abcde", 4, 1, 6);
+ test("abcdefghijklmnopqrst", 10, 9, "abcde", 4, 2, 6);
+ test("abcdefghijklmnopqrst", 10, 9, "abcde", 5, 0, 9);
+ test("abcdefghijklmnopqrst", 10, 9, "abcde", 5, 1, 9);
+ test("abcdefghijklmnopqrst", 10, 9, "abcde", 6, 0, 0);
+ test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 0, 0, 9);
+ test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 0, 1, 10);
+ test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 0, 5, 10);
+ test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 0, 9, 10);
+ test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 0, 10, 10);
+ test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 0, 11, 10);
+ test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 1, 0, 9);
+ test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 1, 1, 9);
+ test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 1, 4, 9);
+ test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 1, 8, 9);
+ test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 1, 9, 9);
+ test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 1, 10, 9);
+ test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 5, 0, 9);
+ test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 5, 1, 5);
+ test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 5, 2, 5);
+ test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 5, 4, 5);
+ test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 5, 5, 5);
+ test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 5, 6, 5);
+ test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 9, 0, 9);
+ test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 9, 1, 1);
+ test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 9, 2, 1);
+ test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 10, 0, 9);
+ test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 10, 1, 9);
+ test("abcdefghijklmnopqrst", 10, 9, "abcdefghij", 11, 0, 0);
+ test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 0, 0, 9);
+ test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 0, 1, 10);
+ test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 0, 10, 10);
+ test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 0, 19, 10);
+ test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 0, 20, 10);
+ test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 0, 21, 10);
+ test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 1, 0, 9);
+ test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 1, 1, 9);
+ test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 1, 9, 9);
+ test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 1, 18, 9);
+ test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 1, 19, 9);
+ test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 1, 20, 9);
+ test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 10, 0, 9);
+ test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 10, 1, 8);
+ test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 10, 5, 4);
+ test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 10, 9, 0);
+ test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 10, 10, -1);
+ test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 10, 11, -1);
+ test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 19, 0, 9);
+ test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 19, 1, -9);
+ test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 19, 2, -9);
+ test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 20, 0, 9);
+ test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 20, 1, 9);
+ test("abcdefghijklmnopqrst", 10, 9, "abcdefghijklmnopqrst", 21, 0, 0);
+ test("abcdefghijklmnopqrst", 10, 10, "", 0, 0, 10);
+ test("abcdefghijklmnopqrst", 10, 10, "", 0, 1, 10);
+ test("abcdefghijklmnopqrst", 10, 10, "", 1, 0, 0);
+ test("abcdefghijklmnopqrst", 10, 10, "abcde", 0, 0, 10);
+ test("abcdefghijklmnopqrst", 10, 10, "abcde", 0, 1, 10);
+ test("abcdefghijklmnopqrst", 10, 10, "abcde", 0, 2, 10);
+ test("abcdefghijklmnopqrst", 10, 10, "abcde", 0, 4, 10);
+ test("abcdefghijklmnopqrst", 10, 10, "abcde", 0, 5, 10);
+ test("abcdefghijklmnopqrst", 10, 10, "abcde", 0, 6, 10);
+ test("abcdefghijklmnopqrst", 10, 10, "abcde", 1, 0, 10);
+ test("abcdefghijklmnopqrst", 10, 10, "abcde", 1, 1, 9);
+ test("abcdefghijklmnopqrst", 10, 10, "abcde", 1, 2, 9);
+ test("abcdefghijklmnopqrst", 10, 10, "abcde", 1, 3, 9);
+ test("abcdefghijklmnopqrst", 10, 10, "abcde", 1, 4, 9);
+ test("abcdefghijklmnopqrst", 10, 10, "abcde", 1, 5, 9);
+ test("abcdefghijklmnopqrst", 10, 10, "abcde", 2, 0, 10);
}
-void test49()
-{
- test("abcdefghijklmnopqrst", 10, 10, "abcde", 2, 1, 8);
- test("abcdefghijklmnopqrst", 10, 10, "abcde", 2, 2, 8);
- test("abcdefghijklmnopqrst", 10, 10, "abcde", 2, 3, 8);
- test("abcdefghijklmnopqrst", 10, 10, "abcde", 2, 4, 8);
- test("abcdefghijklmnopqrst", 10, 10, "abcde", 4, 0, 10);
- test("abcdefghijklmnopqrst", 10, 10, "abcde", 4, 1, 6);
- test("abcdefghijklmnopqrst", 10, 10, "abcde", 4, 2, 6);
- test("abcdefghijklmnopqrst", 10, 10, "abcde", 5, 0, 10);
- test("abcdefghijklmnopqrst", 10, 10, "abcde", 5, 1, 10);
- test("abcdefghijklmnopqrst", 10, 10, "abcde", 6, 0, 0);
- test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 0, 0, 10);
- test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 0, 1, 10);
- test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 0, 5, 10);
- test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 0, 9, 10);
- test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 0, 10, 10);
- test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 0, 11, 10);
- test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 1, 0, 10);
- test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 1, 1, 9);
- test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 1, 4, 9);
- test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 1, 8, 9);
- test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 1, 9, 9);
- test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 1, 10, 9);
- test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 5, 0, 10);
- test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 5, 1, 5);
- test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 5, 2, 5);
- test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 5, 4, 5);
- test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 5, 5, 5);
- test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 5, 6, 5);
- test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 9, 0, 10);
- test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 9, 1, 1);
- test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 9, 2, 1);
- test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 10, 0, 10);
- test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 10, 1, 10);
- test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 11, 0, 0);
- test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 0, 0, 10);
- test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 0, 1, 10);
- test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 0, 10, 10);
- test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 0, 19, 10);
- test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 0, 20, 10);
- test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 0, 21, 10);
- test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 1, 0, 10);
- test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 1, 1, 9);
- test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 1, 9, 9);
- test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 1, 18, 9);
- test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 1, 19, 9);
- test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 1, 20, 9);
- test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 10, 0, 10);
- test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 10, 1, 9);
- test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 10, 5, 5);
- test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 10, 9, 1);
- test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 10, 10, 0);
- test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 10, 11, 0);
- test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 19, 0, 10);
- test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 19, 1, -9);
- test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 19, 2, -9);
- test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 20, 0, 10);
- test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 20, 1, 10);
- test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 21, 0, 0);
- test("abcdefghijklmnopqrst", 10, 11, "", 0, 0, 10);
- test("abcdefghijklmnopqrst", 10, 11, "", 0, 1, 10);
- test("abcdefghijklmnopqrst", 10, 11, "", 1, 0, 0);
- test("abcdefghijklmnopqrst", 10, 11, "abcde", 0, 0, 10);
- test("abcdefghijklmnopqrst", 10, 11, "abcde", 0, 1, 10);
- test("abcdefghijklmnopqrst", 10, 11, "abcde", 0, 2, 10);
- test("abcdefghijklmnopqrst", 10, 11, "abcde", 0, 4, 10);
- test("abcdefghijklmnopqrst", 10, 11, "abcde", 0, 5, 10);
- test("abcdefghijklmnopqrst", 10, 11, "abcde", 0, 6, 10);
- test("abcdefghijklmnopqrst", 10, 11, "abcde", 1, 0, 10);
- test("abcdefghijklmnopqrst", 10, 11, "abcde", 1, 1, 9);
- test("abcdefghijklmnopqrst", 10, 11, "abcde", 1, 2, 9);
- test("abcdefghijklmnopqrst", 10, 11, "abcde", 1, 3, 9);
- test("abcdefghijklmnopqrst", 10, 11, "abcde", 1, 4, 9);
- test("abcdefghijklmnopqrst", 10, 11, "abcde", 1, 5, 9);
- test("abcdefghijklmnopqrst", 10, 11, "abcde", 2, 0, 10);
- test("abcdefghijklmnopqrst", 10, 11, "abcde", 2, 1, 8);
- test("abcdefghijklmnopqrst", 10, 11, "abcde", 2, 2, 8);
- test("abcdefghijklmnopqrst", 10, 11, "abcde", 2, 3, 8);
- test("abcdefghijklmnopqrst", 10, 11, "abcde", 2, 4, 8);
- test("abcdefghijklmnopqrst", 10, 11, "abcde", 4, 0, 10);
- test("abcdefghijklmnopqrst", 10, 11, "abcde", 4, 1, 6);
- test("abcdefghijklmnopqrst", 10, 11, "abcde", 4, 2, 6);
- test("abcdefghijklmnopqrst", 10, 11, "abcde", 5, 0, 10);
- test("abcdefghijklmnopqrst", 10, 11, "abcde", 5, 1, 10);
- test("abcdefghijklmnopqrst", 10, 11, "abcde", 6, 0, 0);
- test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 0, 0, 10);
- test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 0, 1, 10);
- test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 0, 5, 10);
- test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 0, 9, 10);
- test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 0, 10, 10);
- test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 0, 11, 10);
- test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 1, 0, 10);
- test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 1, 1, 9);
- test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 1, 4, 9);
- test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 1, 8, 9);
- test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 1, 9, 9);
- test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 1, 10, 9);
- test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 5, 0, 10);
- test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 5, 1, 5);
- test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 5, 2, 5);
- test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 5, 4, 5);
+void test49() {
+ test("abcdefghijklmnopqrst", 10, 10, "abcde", 2, 1, 8);
+ test("abcdefghijklmnopqrst", 10, 10, "abcde", 2, 2, 8);
+ test("abcdefghijklmnopqrst", 10, 10, "abcde", 2, 3, 8);
+ test("abcdefghijklmnopqrst", 10, 10, "abcde", 2, 4, 8);
+ test("abcdefghijklmnopqrst", 10, 10, "abcde", 4, 0, 10);
+ test("abcdefghijklmnopqrst", 10, 10, "abcde", 4, 1, 6);
+ test("abcdefghijklmnopqrst", 10, 10, "abcde", 4, 2, 6);
+ test("abcdefghijklmnopqrst", 10, 10, "abcde", 5, 0, 10);
+ test("abcdefghijklmnopqrst", 10, 10, "abcde", 5, 1, 10);
+ test("abcdefghijklmnopqrst", 10, 10, "abcde", 6, 0, 0);
+ test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 0, 0, 10);
+ test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 0, 1, 10);
+ test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 0, 5, 10);
+ test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 0, 9, 10);
+ test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 0, 10, 10);
+ test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 0, 11, 10);
+ test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 1, 0, 10);
+ test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 1, 1, 9);
+ test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 1, 4, 9);
+ test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 1, 8, 9);
+ test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 1, 9, 9);
+ test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 1, 10, 9);
+ test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 5, 0, 10);
+ test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 5, 1, 5);
+ test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 5, 2, 5);
+ test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 5, 4, 5);
+ test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 5, 5, 5);
+ test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 5, 6, 5);
+ test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 9, 0, 10);
+ test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 9, 1, 1);
+ test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 9, 2, 1);
+ test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 10, 0, 10);
+ test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 10, 1, 10);
+ test("abcdefghijklmnopqrst", 10, 10, "abcdefghij", 11, 0, 0);
+ test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 0, 0, 10);
+ test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 0, 1, 10);
+ test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 0, 10, 10);
+ test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 0, 19, 10);
+ test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 0, 20, 10);
+ test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 0, 21, 10);
+ test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 1, 0, 10);
+ test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 1, 1, 9);
+ test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 1, 9, 9);
+ test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 1, 18, 9);
+ test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 1, 19, 9);
+ test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 1, 20, 9);
+ test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 10, 0, 10);
+ test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 10, 1, 9);
+ test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 10, 5, 5);
+ test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 10, 9, 1);
+ test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 10, 10, 0);
+ test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 10, 11, 0);
+ test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 19, 0, 10);
+ test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 19, 1, -9);
+ test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 19, 2, -9);
+ test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 20, 0, 10);
+ test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 20, 1, 10);
+ test("abcdefghijklmnopqrst", 10, 10, "abcdefghijklmnopqrst", 21, 0, 0);
+ test("abcdefghijklmnopqrst", 10, 11, "", 0, 0, 10);
+ test("abcdefghijklmnopqrst", 10, 11, "", 0, 1, 10);
+ test("abcdefghijklmnopqrst", 10, 11, "", 1, 0, 0);
+ test("abcdefghijklmnopqrst", 10, 11, "abcde", 0, 0, 10);
+ test("abcdefghijklmnopqrst", 10, 11, "abcde", 0, 1, 10);
+ test("abcdefghijklmnopqrst", 10, 11, "abcde", 0, 2, 10);
+ test("abcdefghijklmnopqrst", 10, 11, "abcde", 0, 4, 10);
+ test("abcdefghijklmnopqrst", 10, 11, "abcde", 0, 5, 10);
+ test("abcdefghijklmnopqrst", 10, 11, "abcde", 0, 6, 10);
+ test("abcdefghijklmnopqrst", 10, 11, "abcde", 1, 0, 10);
+ test("abcdefghijklmnopqrst", 10, 11, "abcde", 1, 1, 9);
+ test("abcdefghijklmnopqrst", 10, 11, "abcde", 1, 2, 9);
+ test("abcdefghijklmnopqrst", 10, 11, "abcde", 1, 3, 9);
+ test("abcdefghijklmnopqrst", 10, 11, "abcde", 1, 4, 9);
+ test("abcdefghijklmnopqrst", 10, 11, "abcde", 1, 5, 9);
+ test("abcdefghijklmnopqrst", 10, 11, "abcde", 2, 0, 10);
+ test("abcdefghijklmnopqrst", 10, 11, "abcde", 2, 1, 8);
+ test("abcdefghijklmnopqrst", 10, 11, "abcde", 2, 2, 8);
+ test("abcdefghijklmnopqrst", 10, 11, "abcde", 2, 3, 8);
+ test("abcdefghijklmnopqrst", 10, 11, "abcde", 2, 4, 8);
+ test("abcdefghijklmnopqrst", 10, 11, "abcde", 4, 0, 10);
+ test("abcdefghijklmnopqrst", 10, 11, "abcde", 4, 1, 6);
+ test("abcdefghijklmnopqrst", 10, 11, "abcde", 4, 2, 6);
+ test("abcdefghijklmnopqrst", 10, 11, "abcde", 5, 0, 10);
+ test("abcdefghijklmnopqrst", 10, 11, "abcde", 5, 1, 10);
+ test("abcdefghijklmnopqrst", 10, 11, "abcde", 6, 0, 0);
+ test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 0, 0, 10);
+ test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 0, 1, 10);
+ test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 0, 5, 10);
+ test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 0, 9, 10);
+ test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 0, 10, 10);
+ test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 0, 11, 10);
+ test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 1, 0, 10);
+ test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 1, 1, 9);
+ test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 1, 4, 9);
+ test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 1, 8, 9);
+ test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 1, 9, 9);
+ test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 1, 10, 9);
+ test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 5, 0, 10);
+ test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 5, 1, 5);
+ test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 5, 2, 5);
+ test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 5, 4, 5);
}
-void test50()
-{
- test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 5, 5, 5);
- test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 5, 6, 5);
- test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 9, 0, 10);
- test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 9, 1, 1);
- test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 9, 2, 1);
- test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 10, 0, 10);
- test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 10, 1, 10);
- test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 11, 0, 0);
- test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 0, 0, 10);
- test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 0, 1, 10);
- test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 0, 10, 10);
- test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 0, 19, 10);
- test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 0, 20, 10);
- test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 0, 21, 10);
- test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 1, 0, 10);
- test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 1, 1, 9);
- test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 1, 9, 9);
- test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 1, 18, 9);
- test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 1, 19, 9);
- test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 1, 20, 9);
- test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 10, 0, 10);
- test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 10, 1, 9);
- test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 10, 5, 5);
- test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 10, 9, 1);
- test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 10, 10, 0);
- test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 10, 11, 0);
- test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 19, 0, 10);
- test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 19, 1, -9);
- test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 19, 2, -9);
- test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 20, 0, 10);
- test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 20, 1, 10);
- test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 21, 0, 0);
- test("abcdefghijklmnopqrst", 19, 0, "", 0, 0, 0);
- test("abcdefghijklmnopqrst", 19, 0, "", 0, 1, 0);
- test("abcdefghijklmnopqrst", 19, 0, "", 1, 0, 0);
- test("abcdefghijklmnopqrst", 19, 0, "abcde", 0, 0, 0);
- test("abcdefghijklmnopqrst", 19, 0, "abcde", 0, 1, -1);
- test("abcdefghijklmnopqrst", 19, 0, "abcde", 0, 2, -2);
- test("abcdefghijklmnopqrst", 19, 0, "abcde", 0, 4, -4);
- test("abcdefghijklmnopqrst", 19, 0, "abcde", 0, 5, -5);
- test("abcdefghijklmnopqrst", 19, 0, "abcde", 0, 6, -5);
- test("abcdefghijklmnopqrst", 19, 0, "abcde", 1, 0, 0);
- test("abcdefghijklmnopqrst", 19, 0, "abcde", 1, 1, -1);
- test("abcdefghijklmnopqrst", 19, 0, "abcde", 1, 2, -2);
- test("abcdefghijklmnopqrst", 19, 0, "abcde", 1, 3, -3);
- test("abcdefghijklmnopqrst", 19, 0, "abcde", 1, 4, -4);
- test("abcdefghijklmnopqrst", 19, 0, "abcde", 1, 5, -4);
- test("abcdefghijklmnopqrst", 19, 0, "abcde", 2, 0, 0);
- test("abcdefghijklmnopqrst", 19, 0, "abcde", 2, 1, -1);
- test("abcdefghijklmnopqrst", 19, 0, "abcde", 2, 2, -2);
- test("abcdefghijklmnopqrst", 19, 0, "abcde", 2, 3, -3);
- test("abcdefghijklmnopqrst", 19, 0, "abcde", 2, 4, -3);
- test("abcdefghijklmnopqrst", 19, 0, "abcde", 4, 0, 0);
- test("abcdefghijklmnopqrst", 19, 0, "abcde", 4, 1, -1);
- test("abcdefghijklmnopqrst", 19, 0, "abcde", 4, 2, -1);
- test("abcdefghijklmnopqrst", 19, 0, "abcde", 5, 0, 0);
- test("abcdefghijklmnopqrst", 19, 0, "abcde", 5, 1, 0);
- test("abcdefghijklmnopqrst", 19, 0, "abcde", 6, 0, 0);
- test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 0, 0, 0);
- test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 0, 1, -1);
- test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 0, 5, -5);
- test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 0, 9, -9);
- test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 0, 10, -10);
- test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 0, 11, -10);
- test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 1, 0, 0);
- test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 1, 1, -1);
- test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 1, 4, -4);
- test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 1, 8, -8);
- test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 1, 9, -9);
- test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 1, 10, -9);
- test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 5, 0, 0);
- test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 5, 1, -1);
- test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 5, 2, -2);
- test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 5, 4, -4);
- test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 5, 5, -5);
- test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 5, 6, -5);
- test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 9, 0, 0);
- test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 9, 1, -1);
- test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 9, 2, -1);
- test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 10, 0, 0);
- test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 10, 1, 0);
- test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 11, 0, 0);
- test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 0, 0, 0);
- test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 0, 1, -1);
- test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 0, 10, -10);
- test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 0, 19, -19);
- test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 0, 20, -20);
- test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 0, 21, -20);
- test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 1, 0, 0);
- test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 1, 1, -1);
- test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 1, 9, -9);
- test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 1, 18, -18);
- test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 1, 19, -19);
- test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 1, 20, -19);
- test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 10, 0, 0);
- test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 10, 1, -1);
- test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 10, 5, -5);
- test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 10, 9, -9);
- test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 10, 10, -10);
- test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 10, 11, -10);
+void test50() {
+ test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 5, 5, 5);
+ test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 5, 6, 5);
+ test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 9, 0, 10);
+ test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 9, 1, 1);
+ test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 9, 2, 1);
+ test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 10, 0, 10);
+ test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 10, 1, 10);
+ test("abcdefghijklmnopqrst", 10, 11, "abcdefghij", 11, 0, 0);
+ test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 0, 0, 10);
+ test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 0, 1, 10);
+ test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 0, 10, 10);
+ test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 0, 19, 10);
+ test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 0, 20, 10);
+ test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 0, 21, 10);
+ test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 1, 0, 10);
+ test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 1, 1, 9);
+ test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 1, 9, 9);
+ test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 1, 18, 9);
+ test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 1, 19, 9);
+ test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 1, 20, 9);
+ test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 10, 0, 10);
+ test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 10, 1, 9);
+ test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 10, 5, 5);
+ test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 10, 9, 1);
+ test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 10, 10, 0);
+ test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 10, 11, 0);
+ test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 19, 0, 10);
+ test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 19, 1, -9);
+ test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 19, 2, -9);
+ test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 20, 0, 10);
+ test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 20, 1, 10);
+ test("abcdefghijklmnopqrst", 10, 11, "abcdefghijklmnopqrst", 21, 0, 0);
+ test("abcdefghijklmnopqrst", 19, 0, "", 0, 0, 0);
+ test("abcdefghijklmnopqrst", 19, 0, "", 0, 1, 0);
+ test("abcdefghijklmnopqrst", 19, 0, "", 1, 0, 0);
+ test("abcdefghijklmnopqrst", 19, 0, "abcde", 0, 0, 0);
+ test("abcdefghijklmnopqrst", 19, 0, "abcde", 0, 1, -1);
+ test("abcdefghijklmnopqrst", 19, 0, "abcde", 0, 2, -2);
+ test("abcdefghijklmnopqrst", 19, 0, "abcde", 0, 4, -4);
+ test("abcdefghijklmnopqrst", 19, 0, "abcde", 0, 5, -5);
+ test("abcdefghijklmnopqrst", 19, 0, "abcde", 0, 6, -5);
+ test("abcdefghijklmnopqrst", 19, 0, "abcde", 1, 0, 0);
+ test("abcdefghijklmnopqrst", 19, 0, "abcde", 1, 1, -1);
+ test("abcdefghijklmnopqrst", 19, 0, "abcde", 1, 2, -2);
+ test("abcdefghijklmnopqrst", 19, 0, "abcde", 1, 3, -3);
+ test("abcdefghijklmnopqrst", 19, 0, "abcde", 1, 4, -4);
+ test("abcdefghijklmnopqrst", 19, 0, "abcde", 1, 5, -4);
+ test("abcdefghijklmnopqrst", 19, 0, "abcde", 2, 0, 0);
+ test("abcdefghijklmnopqrst", 19, 0, "abcde", 2, 1, -1);
+ test("abcdefghijklmnopqrst", 19, 0, "abcde", 2, 2, -2);
+ test("abcdefghijklmnopqrst", 19, 0, "abcde", 2, 3, -3);
+ test("abcdefghijklmnopqrst", 19, 0, "abcde", 2, 4, -3);
+ test("abcdefghijklmnopqrst", 19, 0, "abcde", 4, 0, 0);
+ test("abcdefghijklmnopqrst", 19, 0, "abcde", 4, 1, -1);
+ test("abcdefghijklmnopqrst", 19, 0, "abcde", 4, 2, -1);
+ test("abcdefghijklmnopqrst", 19, 0, "abcde", 5, 0, 0);
+ test("abcdefghijklmnopqrst", 19, 0, "abcde", 5, 1, 0);
+ test("abcdefghijklmnopqrst", 19, 0, "abcde", 6, 0, 0);
+ test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 0, 0, 0);
+ test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 0, 1, -1);
+ test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 0, 5, -5);
+ test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 0, 9, -9);
+ test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 0, 10, -10);
+ test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 0, 11, -10);
+ test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 1, 0, 0);
+ test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 1, 1, -1);
+ test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 1, 4, -4);
+ test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 1, 8, -8);
+ test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 1, 9, -9);
+ test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 1, 10, -9);
+ test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 5, 0, 0);
+ test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 5, 1, -1);
+ test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 5, 2, -2);
+ test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 5, 4, -4);
+ test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 5, 5, -5);
+ test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 5, 6, -5);
+ test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 9, 0, 0);
+ test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 9, 1, -1);
+ test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 9, 2, -1);
+ test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 10, 0, 0);
+ test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 10, 1, 0);
+ test("abcdefghijklmnopqrst", 19, 0, "abcdefghij", 11, 0, 0);
+ test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 0, 0, 0);
+ test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 0, 1, -1);
+ test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 0, 10, -10);
+ test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 0, 19, -19);
+ test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 0, 20, -20);
+ test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 0, 21, -20);
+ test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 1, 0, 0);
+ test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 1, 1, -1);
+ test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 1, 9, -9);
+ test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 1, 18, -18);
+ test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 1, 19, -19);
+ test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 1, 20, -19);
+ test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 10, 0, 0);
+ test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 10, 1, -1);
+ test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 10, 5, -5);
+ test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 10, 9, -9);
+ test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 10, 10, -10);
+ test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 10, 11, -10);
}
-void test51()
-{
- test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 19, 0, 0);
- test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 19, 1, -1);
- test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 19, 2, -1);
- test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 20, 0, 0);
- test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 20, 1, 0);
- test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 21, 0, 0);
- test("abcdefghijklmnopqrst", 19, 1, "", 0, 0, 1);
- test("abcdefghijklmnopqrst", 19, 1, "", 0, 1, 1);
- test("abcdefghijklmnopqrst", 19, 1, "", 1, 0, 0);
- test("abcdefghijklmnopqrst", 19, 1, "abcde", 0, 0, 1);
- test("abcdefghijklmnopqrst", 19, 1, "abcde", 0, 1, 19);
- test("abcdefghijklmnopqrst", 19, 1, "abcde", 0, 2, 19);
- test("abcdefghijklmnopqrst", 19, 1, "abcde", 0, 4, 19);
- test("abcdefghijklmnopqrst", 19, 1, "abcde", 0, 5, 19);
- test("abcdefghijklmnopqrst", 19, 1, "abcde", 0, 6, 19);
- test("abcdefghijklmnopqrst", 19, 1, "abcde", 1, 0, 1);
- test("abcdefghijklmnopqrst", 19, 1, "abcde", 1, 1, 18);
- test("abcdefghijklmnopqrst", 19, 1, "abcde", 1, 2, 18);
- test("abcdefghijklmnopqrst", 19, 1, "abcde", 1, 3, 18);
- test("abcdefghijklmnopqrst", 19, 1, "abcde", 1, 4, 18);
- test("abcdefghijklmnopqrst", 19, 1, "abcde", 1, 5, 18);
- test("abcdefghijklmnopqrst", 19, 1, "abcde", 2, 0, 1);
- test("abcdefghijklmnopqrst", 19, 1, "abcde", 2, 1, 17);
- test("abcdefghijklmnopqrst", 19, 1, "abcde", 2, 2, 17);
- test("abcdefghijklmnopqrst", 19, 1, "abcde", 2, 3, 17);
- test("abcdefghijklmnopqrst", 19, 1, "abcde", 2, 4, 17);
- test("abcdefghijklmnopqrst", 19, 1, "abcde", 4, 0, 1);
- test("abcdefghijklmnopqrst", 19, 1, "abcde", 4, 1, 15);
- test("abcdefghijklmnopqrst", 19, 1, "abcde", 4, 2, 15);
- test("abcdefghijklmnopqrst", 19, 1, "abcde", 5, 0, 1);
- test("abcdefghijklmnopqrst", 19, 1, "abcde", 5, 1, 1);
- test("abcdefghijklmnopqrst", 19, 1, "abcde", 6, 0, 0);
- test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 0, 0, 1);
- test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 0, 1, 19);
- test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 0, 5, 19);
- test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 0, 9, 19);
- test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 0, 10, 19);
- test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 0, 11, 19);
- test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 1, 0, 1);
- test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 1, 1, 18);
- test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 1, 4, 18);
- test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 1, 8, 18);
- test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 1, 9, 18);
- test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 1, 10, 18);
- test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 5, 0, 1);
- test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 5, 1, 14);
- test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 5, 2, 14);
- test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 5, 4, 14);
- test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 5, 5, 14);
- test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 5, 6, 14);
- test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 9, 0, 1);
- test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 9, 1, 10);
- test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 9, 2, 10);
- test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 10, 0, 1);
- test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 10, 1, 1);
- test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 11, 0, 0);
- test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 0, 0, 1);
- test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 0, 1, 19);
- test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 0, 10, 19);
- test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 0, 19, 19);
- test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 0, 20, 19);
- test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 0, 21, 19);
- test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 1, 0, 1);
- test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 1, 1, 18);
- test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 1, 9, 18);
- test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 1, 18, 18);
- test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 1, 19, 18);
- test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 1, 20, 18);
- test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 10, 0, 1);
- test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 10, 1, 9);
- test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 10, 5, 9);
- test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 10, 9, 9);
- test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 10, 10, 9);
- test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 10, 11, 9);
- test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 19, 0, 1);
- test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 19, 1, 0);
- test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 19, 2, 0);
- test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 20, 0, 1);
- test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 20, 1, 1);
- test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 21, 0, 0);
- test("abcdefghijklmnopqrst", 19, 2, "", 0, 0, 1);
- test("abcdefghijklmnopqrst", 19, 2, "", 0, 1, 1);
- test("abcdefghijklmnopqrst", 19, 2, "", 1, 0, 0);
- test("abcdefghijklmnopqrst", 19, 2, "abcde", 0, 0, 1);
- test("abcdefghijklmnopqrst", 19, 2, "abcde", 0, 1, 19);
- test("abcdefghijklmnopqrst", 19, 2, "abcde", 0, 2, 19);
- test("abcdefghijklmnopqrst", 19, 2, "abcde", 0, 4, 19);
- test("abcdefghijklmnopqrst", 19, 2, "abcde", 0, 5, 19);
- test("abcdefghijklmnopqrst", 19, 2, "abcde", 0, 6, 19);
- test("abcdefghijklmnopqrst", 19, 2, "abcde", 1, 0, 1);
- test("abcdefghijklmnopqrst", 19, 2, "abcde", 1, 1, 18);
- test("abcdefghijklmnopqrst", 19, 2, "abcde", 1, 2, 18);
- test("abcdefghijklmnopqrst", 19, 2, "abcde", 1, 3, 18);
- test("abcdefghijklmnopqrst", 19, 2, "abcde", 1, 4, 18);
- test("abcdefghijklmnopqrst", 19, 2, "abcde", 1, 5, 18);
- test("abcdefghijklmnopqrst", 19, 2, "abcde", 2, 0, 1);
- test("abcdefghijklmnopqrst", 19, 2, "abcde", 2, 1, 17);
- test("abcdefghijklmnopqrst", 19, 2, "abcde", 2, 2, 17);
- test("abcdefghijklmnopqrst", 19, 2, "abcde", 2, 3, 17);
- test("abcdefghijklmnopqrst", 19, 2, "abcde", 2, 4, 17);
+void test51() {
+ test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 19, 0, 0);
+ test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 19, 1, -1);
+ test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 19, 2, -1);
+ test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 20, 0, 0);
+ test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 20, 1, 0);
+ test("abcdefghijklmnopqrst", 19, 0, "abcdefghijklmnopqrst", 21, 0, 0);
+ test("abcdefghijklmnopqrst", 19, 1, "", 0, 0, 1);
+ test("abcdefghijklmnopqrst", 19, 1, "", 0, 1, 1);
+ test("abcdefghijklmnopqrst", 19, 1, "", 1, 0, 0);
+ test("abcdefghijklmnopqrst", 19, 1, "abcde", 0, 0, 1);
+ test("abcdefghijklmnopqrst", 19, 1, "abcde", 0, 1, 19);
+ test("abcdefghijklmnopqrst", 19, 1, "abcde", 0, 2, 19);
+ test("abcdefghijklmnopqrst", 19, 1, "abcde", 0, 4, 19);
+ test("abcdefghijklmnopqrst", 19, 1, "abcde", 0, 5, 19);
+ test("abcdefghijklmnopqrst", 19, 1, "abcde", 0, 6, 19);
+ test("abcdefghijklmnopqrst", 19, 1, "abcde", 1, 0, 1);
+ test("abcdefghijklmnopqrst", 19, 1, "abcde", 1, 1, 18);
+ test("abcdefghijklmnopqrst", 19, 1, "abcde", 1, 2, 18);
+ test("abcdefghijklmnopqrst", 19, 1, "abcde", 1, 3, 18);
+ test("abcdefghijklmnopqrst", 19, 1, "abcde", 1, 4, 18);
+ test("abcdefghijklmnopqrst", 19, 1, "abcde", 1, 5, 18);
+ test("abcdefghijklmnopqrst", 19, 1, "abcde", 2, 0, 1);
+ test("abcdefghijklmnopqrst", 19, 1, "abcde", 2, 1, 17);
+ test("abcdefghijklmnopqrst", 19, 1, "abcde", 2, 2, 17);
+ test("abcdefghijklmnopqrst", 19, 1, "abcde", 2, 3, 17);
+ test("abcdefghijklmnopqrst", 19, 1, "abcde", 2, 4, 17);
+ test("abcdefghijklmnopqrst", 19, 1, "abcde", 4, 0, 1);
+ test("abcdefghijklmnopqrst", 19, 1, "abcde", 4, 1, 15);
+ test("abcdefghijklmnopqrst", 19, 1, "abcde", 4, 2, 15);
+ test("abcdefghijklmnopqrst", 19, 1, "abcde", 5, 0, 1);
+ test("abcdefghijklmnopqrst", 19, 1, "abcde", 5, 1, 1);
+ test("abcdefghijklmnopqrst", 19, 1, "abcde", 6, 0, 0);
+ test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 0, 0, 1);
+ test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 0, 1, 19);
+ test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 0, 5, 19);
+ test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 0, 9, 19);
+ test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 0, 10, 19);
+ test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 0, 11, 19);
+ test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 1, 0, 1);
+ test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 1, 1, 18);
+ test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 1, 4, 18);
+ test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 1, 8, 18);
+ test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 1, 9, 18);
+ test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 1, 10, 18);
+ test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 5, 0, 1);
+ test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 5, 1, 14);
+ test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 5, 2, 14);
+ test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 5, 4, 14);
+ test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 5, 5, 14);
+ test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 5, 6, 14);
+ test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 9, 0, 1);
+ test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 9, 1, 10);
+ test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 9, 2, 10);
+ test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 10, 0, 1);
+ test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 10, 1, 1);
+ test("abcdefghijklmnopqrst", 19, 1, "abcdefghij", 11, 0, 0);
+ test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 0, 0, 1);
+ test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 0, 1, 19);
+ test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 0, 10, 19);
+ test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 0, 19, 19);
+ test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 0, 20, 19);
+ test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 0, 21, 19);
+ test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 1, 0, 1);
+ test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 1, 1, 18);
+ test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 1, 9, 18);
+ test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 1, 18, 18);
+ test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 1, 19, 18);
+ test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 1, 20, 18);
+ test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 10, 0, 1);
+ test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 10, 1, 9);
+ test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 10, 5, 9);
+ test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 10, 9, 9);
+ test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 10, 10, 9);
+ test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 10, 11, 9);
+ test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 19, 0, 1);
+ test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 19, 1, 0);
+ test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 19, 2, 0);
+ test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 20, 0, 1);
+ test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 20, 1, 1);
+ test("abcdefghijklmnopqrst", 19, 1, "abcdefghijklmnopqrst", 21, 0, 0);
+ test("abcdefghijklmnopqrst", 19, 2, "", 0, 0, 1);
+ test("abcdefghijklmnopqrst", 19, 2, "", 0, 1, 1);
+ test("abcdefghijklmnopqrst", 19, 2, "", 1, 0, 0);
+ test("abcdefghijklmnopqrst", 19, 2, "abcde", 0, 0, 1);
+ test("abcdefghijklmnopqrst", 19, 2, "abcde", 0, 1, 19);
+ test("abcdefghijklmnopqrst", 19, 2, "abcde", 0, 2, 19);
+ test("abcdefghijklmnopqrst", 19, 2, "abcde", 0, 4, 19);
+ test("abcdefghijklmnopqrst", 19, 2, "abcde", 0, 5, 19);
+ test("abcdefghijklmnopqrst", 19, 2, "abcde", 0, 6, 19);
+ test("abcdefghijklmnopqrst", 19, 2, "abcde", 1, 0, 1);
+ test("abcdefghijklmnopqrst", 19, 2, "abcde", 1, 1, 18);
+ test("abcdefghijklmnopqrst", 19, 2, "abcde", 1, 2, 18);
+ test("abcdefghijklmnopqrst", 19, 2, "abcde", 1, 3, 18);
+ test("abcdefghijklmnopqrst", 19, 2, "abcde", 1, 4, 18);
+ test("abcdefghijklmnopqrst", 19, 2, "abcde", 1, 5, 18);
+ test("abcdefghijklmnopqrst", 19, 2, "abcde", 2, 0, 1);
+ test("abcdefghijklmnopqrst", 19, 2, "abcde", 2, 1, 17);
+ test("abcdefghijklmnopqrst", 19, 2, "abcde", 2, 2, 17);
+ test("abcdefghijklmnopqrst", 19, 2, "abcde", 2, 3, 17);
+ test("abcdefghijklmnopqrst", 19, 2, "abcde", 2, 4, 17);
}
-void test52()
-{
- test("abcdefghijklmnopqrst", 19, 2, "abcde", 4, 0, 1);
- test("abcdefghijklmnopqrst", 19, 2, "abcde", 4, 1, 15);
- test("abcdefghijklmnopqrst", 19, 2, "abcde", 4, 2, 15);
- test("abcdefghijklmnopqrst", 19, 2, "abcde", 5, 0, 1);
- test("abcdefghijklmnopqrst", 19, 2, "abcde", 5, 1, 1);
- test("abcdefghijklmnopqrst", 19, 2, "abcde", 6, 0, 0);
- test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 0, 0, 1);
- test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 0, 1, 19);
- test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 0, 5, 19);
- test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 0, 9, 19);
- test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 0, 10, 19);
- test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 0, 11, 19);
- test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 1, 0, 1);
- test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 1, 1, 18);
- test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 1, 4, 18);
- test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 1, 8, 18);
- test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 1, 9, 18);
- test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 1, 10, 18);
- test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 5, 0, 1);
- test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 5, 1, 14);
- test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 5, 2, 14);
- test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 5, 4, 14);
- test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 5, 5, 14);
- test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 5, 6, 14);
- test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 9, 0, 1);
- test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 9, 1, 10);
- test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 9, 2, 10);
- test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 10, 0, 1);
- test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 10, 1, 1);
- test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 11, 0, 0);
- test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 0, 0, 1);
- test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 0, 1, 19);
- test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 0, 10, 19);
- test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 0, 19, 19);
- test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 0, 20, 19);
- test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 0, 21, 19);
- test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 1, 0, 1);
- test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 1, 1, 18);
- test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 1, 9, 18);
- test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 1, 18, 18);
- test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 1, 19, 18);
- test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 1, 20, 18);
- test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 10, 0, 1);
- test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 10, 1, 9);
- test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 10, 5, 9);
- test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 10, 9, 9);
- test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 10, 10, 9);
- test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 10, 11, 9);
- test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 19, 0, 1);
- test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 19, 1, 0);
- test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 19, 2, 0);
- test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 20, 0, 1);
- test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 20, 1, 1);
- test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 21, 0, 0);
- test("abcdefghijklmnopqrst", 20, 0, "", 0, 0, 0);
- test("abcdefghijklmnopqrst", 20, 0, "", 0, 1, 0);
- test("abcdefghijklmnopqrst", 20, 0, "", 1, 0, 0);
- test("abcdefghijklmnopqrst", 20, 0, "abcde", 0, 0, 0);
- test("abcdefghijklmnopqrst", 20, 0, "abcde", 0, 1, -1);
- test("abcdefghijklmnopqrst", 20, 0, "abcde", 0, 2, -2);
- test("abcdefghijklmnopqrst", 20, 0, "abcde", 0, 4, -4);
- test("abcdefghijklmnopqrst", 20, 0, "abcde", 0, 5, -5);
- test("abcdefghijklmnopqrst", 20, 0, "abcde", 0, 6, -5);
- test("abcdefghijklmnopqrst", 20, 0, "abcde", 1, 0, 0);
- test("abcdefghijklmnopqrst", 20, 0, "abcde", 1, 1, -1);
- test("abcdefghijklmnopqrst", 20, 0, "abcde", 1, 2, -2);
- test("abcdefghijklmnopqrst", 20, 0, "abcde", 1, 3, -3);
- test("abcdefghijklmnopqrst", 20, 0, "abcde", 1, 4, -4);
- test("abcdefghijklmnopqrst", 20, 0, "abcde", 1, 5, -4);
- test("abcdefghijklmnopqrst", 20, 0, "abcde", 2, 0, 0);
- test("abcdefghijklmnopqrst", 20, 0, "abcde", 2, 1, -1);
- test("abcdefghijklmnopqrst", 20, 0, "abcde", 2, 2, -2);
- test("abcdefghijklmnopqrst", 20, 0, "abcde", 2, 3, -3);
- test("abcdefghijklmnopqrst", 20, 0, "abcde", 2, 4, -3);
- test("abcdefghijklmnopqrst", 20, 0, "abcde", 4, 0, 0);
- test("abcdefghijklmnopqrst", 20, 0, "abcde", 4, 1, -1);
- test("abcdefghijklmnopqrst", 20, 0, "abcde", 4, 2, -1);
- test("abcdefghijklmnopqrst", 20, 0, "abcde", 5, 0, 0);
- test("abcdefghijklmnopqrst", 20, 0, "abcde", 5, 1, 0);
- test("abcdefghijklmnopqrst", 20, 0, "abcde", 6, 0, 0);
- test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 0, 0, 0);
- test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 0, 1, -1);
- test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 0, 5, -5);
- test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 0, 9, -9);
- test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 0, 10, -10);
- test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 0, 11, -10);
- test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 1, 0, 0);
- test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 1, 1, -1);
- test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 1, 4, -4);
- test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 1, 8, -8);
- test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 1, 9, -9);
- test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 1, 10, -9);
- test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 5, 0, 0);
- test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 5, 1, -1);
- test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 5, 2, -2);
- test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 5, 4, -4);
- test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 5, 5, -5);
- test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 5, 6, -5);
- test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 9, 0, 0);
- test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 9, 1, -1);
+void test52() {
+ test("abcdefghijklmnopqrst", 19, 2, "abcde", 4, 0, 1);
+ test("abcdefghijklmnopqrst", 19, 2, "abcde", 4, 1, 15);
+ test("abcdefghijklmnopqrst", 19, 2, "abcde", 4, 2, 15);
+ test("abcdefghijklmnopqrst", 19, 2, "abcde", 5, 0, 1);
+ test("abcdefghijklmnopqrst", 19, 2, "abcde", 5, 1, 1);
+ test("abcdefghijklmnopqrst", 19, 2, "abcde", 6, 0, 0);
+ test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 0, 0, 1);
+ test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 0, 1, 19);
+ test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 0, 5, 19);
+ test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 0, 9, 19);
+ test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 0, 10, 19);
+ test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 0, 11, 19);
+ test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 1, 0, 1);
+ test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 1, 1, 18);
+ test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 1, 4, 18);
+ test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 1, 8, 18);
+ test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 1, 9, 18);
+ test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 1, 10, 18);
+ test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 5, 0, 1);
+ test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 5, 1, 14);
+ test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 5, 2, 14);
+ test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 5, 4, 14);
+ test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 5, 5, 14);
+ test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 5, 6, 14);
+ test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 9, 0, 1);
+ test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 9, 1, 10);
+ test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 9, 2, 10);
+ test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 10, 0, 1);
+ test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 10, 1, 1);
+ test("abcdefghijklmnopqrst", 19, 2, "abcdefghij", 11, 0, 0);
+ test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 0, 0, 1);
+ test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 0, 1, 19);
+ test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 0, 10, 19);
+ test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 0, 19, 19);
+ test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 0, 20, 19);
+ test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 0, 21, 19);
+ test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 1, 0, 1);
+ test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 1, 1, 18);
+ test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 1, 9, 18);
+ test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 1, 18, 18);
+ test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 1, 19, 18);
+ test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 1, 20, 18);
+ test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 10, 0, 1);
+ test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 10, 1, 9);
+ test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 10, 5, 9);
+ test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 10, 9, 9);
+ test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 10, 10, 9);
+ test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 10, 11, 9);
+ test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 19, 0, 1);
+ test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 19, 1, 0);
+ test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 19, 2, 0);
+ test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 20, 0, 1);
+ test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 20, 1, 1);
+ test("abcdefghijklmnopqrst", 19, 2, "abcdefghijklmnopqrst", 21, 0, 0);
+ test("abcdefghijklmnopqrst", 20, 0, "", 0, 0, 0);
+ test("abcdefghijklmnopqrst", 20, 0, "", 0, 1, 0);
+ test("abcdefghijklmnopqrst", 20, 0, "", 1, 0, 0);
+ test("abcdefghijklmnopqrst", 20, 0, "abcde", 0, 0, 0);
+ test("abcdefghijklmnopqrst", 20, 0, "abcde", 0, 1, -1);
+ test("abcdefghijklmnopqrst", 20, 0, "abcde", 0, 2, -2);
+ test("abcdefghijklmnopqrst", 20, 0, "abcde", 0, 4, -4);
+ test("abcdefghijklmnopqrst", 20, 0, "abcde", 0, 5, -5);
+ test("abcdefghijklmnopqrst", 20, 0, "abcde", 0, 6, -5);
+ test("abcdefghijklmnopqrst", 20, 0, "abcde", 1, 0, 0);
+ test("abcdefghijklmnopqrst", 20, 0, "abcde", 1, 1, -1);
+ test("abcdefghijklmnopqrst", 20, 0, "abcde", 1, 2, -2);
+ test("abcdefghijklmnopqrst", 20, 0, "abcde", 1, 3, -3);
+ test("abcdefghijklmnopqrst", 20, 0, "abcde", 1, 4, -4);
+ test("abcdefghijklmnopqrst", 20, 0, "abcde", 1, 5, -4);
+ test("abcdefghijklmnopqrst", 20, 0, "abcde", 2, 0, 0);
+ test("abcdefghijklmnopqrst", 20, 0, "abcde", 2, 1, -1);
+ test("abcdefghijklmnopqrst", 20, 0, "abcde", 2, 2, -2);
+ test("abcdefghijklmnopqrst", 20, 0, "abcde", 2, 3, -3);
+ test("abcdefghijklmnopqrst", 20, 0, "abcde", 2, 4, -3);
+ test("abcdefghijklmnopqrst", 20, 0, "abcde", 4, 0, 0);
+ test("abcdefghijklmnopqrst", 20, 0, "abcde", 4, 1, -1);
+ test("abcdefghijklmnopqrst", 20, 0, "abcde", 4, 2, -1);
+ test("abcdefghijklmnopqrst", 20, 0, "abcde", 5, 0, 0);
+ test("abcdefghijklmnopqrst", 20, 0, "abcde", 5, 1, 0);
+ test("abcdefghijklmnopqrst", 20, 0, "abcde", 6, 0, 0);
+ test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 0, 0, 0);
+ test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 0, 1, -1);
+ test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 0, 5, -5);
+ test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 0, 9, -9);
+ test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 0, 10, -10);
+ test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 0, 11, -10);
+ test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 1, 0, 0);
+ test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 1, 1, -1);
+ test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 1, 4, -4);
+ test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 1, 8, -8);
+ test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 1, 9, -9);
+ test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 1, 10, -9);
+ test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 5, 0, 0);
+ test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 5, 1, -1);
+ test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 5, 2, -2);
+ test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 5, 4, -4);
+ test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 5, 5, -5);
+ test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 5, 6, -5);
+ test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 9, 0, 0);
+ test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 9, 1, -1);
}
-void test53()
-{
- test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 9, 2, -1);
- test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 10, 0, 0);
- test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 10, 1, 0);
- test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 11, 0, 0);
- test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 0, 0, 0);
- test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 0, 1, -1);
- test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 0, 10, -10);
- test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 0, 19, -19);
- test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 0, 20, -20);
- test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 0, 21, -20);
- test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 1, 0, 0);
- test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 1, 1, -1);
- test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 1, 9, -9);
- test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 1, 18, -18);
- test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 1, 19, -19);
- test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 1, 20, -19);
- test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 10, 0, 0);
- test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 10, 1, -1);
- test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 10, 5, -5);
- test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 10, 9, -9);
- test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 10, 10, -10);
- test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 10, 11, -10);
- test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 19, 0, 0);
- test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 19, 1, -1);
- test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 19, 2, -1);
- test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 20, 0, 0);
- test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 20, 1, 0);
- test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 21, 0, 0);
- test("abcdefghijklmnopqrst", 20, 1, "", 0, 0, 0);
- test("abcdefghijklmnopqrst", 20, 1, "", 0, 1, 0);
- test("abcdefghijklmnopqrst", 20, 1, "", 1, 0, 0);
- test("abcdefghijklmnopqrst", 20, 1, "abcde", 0, 0, 0);
- test("abcdefghijklmnopqrst", 20, 1, "abcde", 0, 1, -1);
- test("abcdefghijklmnopqrst", 20, 1, "abcde", 0, 2, -2);
- test("abcdefghijklmnopqrst", 20, 1, "abcde", 0, 4, -4);
- test("abcdefghijklmnopqrst", 20, 1, "abcde", 0, 5, -5);
- test("abcdefghijklmnopqrst", 20, 1, "abcde", 0, 6, -5);
- test("abcdefghijklmnopqrst", 20, 1, "abcde", 1, 0, 0);
- test("abcdefghijklmnopqrst", 20, 1, "abcde", 1, 1, -1);
- test("abcdefghijklmnopqrst", 20, 1, "abcde", 1, 2, -2);
- test("abcdefghijklmnopqrst", 20, 1, "abcde", 1, 3, -3);
- test("abcdefghijklmnopqrst", 20, 1, "abcde", 1, 4, -4);
- test("abcdefghijklmnopqrst", 20, 1, "abcde", 1, 5, -4);
- test("abcdefghijklmnopqrst", 20, 1, "abcde", 2, 0, 0);
- test("abcdefghijklmnopqrst", 20, 1, "abcde", 2, 1, -1);
- test("abcdefghijklmnopqrst", 20, 1, "abcde", 2, 2, -2);
- test("abcdefghijklmnopqrst", 20, 1, "abcde", 2, 3, -3);
- test("abcdefghijklmnopqrst", 20, 1, "abcde", 2, 4, -3);
- test("abcdefghijklmnopqrst", 20, 1, "abcde", 4, 0, 0);
- test("abcdefghijklmnopqrst", 20, 1, "abcde", 4, 1, -1);
- test("abcdefghijklmnopqrst", 20, 1, "abcde", 4, 2, -1);
- test("abcdefghijklmnopqrst", 20, 1, "abcde", 5, 0, 0);
- test("abcdefghijklmnopqrst", 20, 1, "abcde", 5, 1, 0);
- test("abcdefghijklmnopqrst", 20, 1, "abcde", 6, 0, 0);
- test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 0, 0, 0);
- test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 0, 1, -1);
- test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 0, 5, -5);
- test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 0, 9, -9);
- test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 0, 10, -10);
- test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 0, 11, -10);
- test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 1, 0, 0);
- test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 1, 1, -1);
- test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 1, 4, -4);
- test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 1, 8, -8);
- test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 1, 9, -9);
- test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 1, 10, -9);
- test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 5, 0, 0);
- test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 5, 1, -1);
- test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 5, 2, -2);
- test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 5, 4, -4);
- test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 5, 5, -5);
- test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 5, 6, -5);
- test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 9, 0, 0);
- test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 9, 1, -1);
- test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 9, 2, -1);
- test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 10, 0, 0);
- test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 10, 1, 0);
- test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 11, 0, 0);
- test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 0, 0, 0);
- test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 0, 1, -1);
- test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 0, 10, -10);
- test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 0, 19, -19);
- test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 0, 20, -20);
- test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 0, 21, -20);
- test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 1, 0, 0);
- test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 1, 1, -1);
- test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 1, 9, -9);
- test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 1, 18, -18);
- test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 1, 19, -19);
- test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 1, 20, -19);
- test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 10, 0, 0);
- test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 10, 1, -1);
- test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 10, 5, -5);
- test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 10, 9, -9);
- test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 10, 10, -10);
- test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 10, 11, -10);
- test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 19, 0, 0);
- test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 19, 1, -1);
- test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 19, 2, -1);
- test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 20, 0, 0);
+void test53() {
+ test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 9, 2, -1);
+ test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 10, 0, 0);
+ test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 10, 1, 0);
+ test("abcdefghijklmnopqrst", 20, 0, "abcdefghij", 11, 0, 0);
+ test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 0, 0, 0);
+ test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 0, 1, -1);
+ test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 0, 10, -10);
+ test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 0, 19, -19);
+ test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 0, 20, -20);
+ test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 0, 21, -20);
+ test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 1, 0, 0);
+ test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 1, 1, -1);
+ test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 1, 9, -9);
+ test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 1, 18, -18);
+ test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 1, 19, -19);
+ test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 1, 20, -19);
+ test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 10, 0, 0);
+ test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 10, 1, -1);
+ test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 10, 5, -5);
+ test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 10, 9, -9);
+ test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 10, 10, -10);
+ test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 10, 11, -10);
+ test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 19, 0, 0);
+ test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 19, 1, -1);
+ test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 19, 2, -1);
+ test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 20, 0, 0);
+ test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 20, 1, 0);
+ test("abcdefghijklmnopqrst", 20, 0, "abcdefghijklmnopqrst", 21, 0, 0);
+ test("abcdefghijklmnopqrst", 20, 1, "", 0, 0, 0);
+ test("abcdefghijklmnopqrst", 20, 1, "", 0, 1, 0);
+ test("abcdefghijklmnopqrst", 20, 1, "", 1, 0, 0);
+ test("abcdefghijklmnopqrst", 20, 1, "abcde", 0, 0, 0);
+ test("abcdefghijklmnopqrst", 20, 1, "abcde", 0, 1, -1);
+ test("abcdefghijklmnopqrst", 20, 1, "abcde", 0, 2, -2);
+ test("abcdefghijklmnopqrst", 20, 1, "abcde", 0, 4, -4);
+ test("abcdefghijklmnopqrst", 20, 1, "abcde", 0, 5, -5);
+ test("abcdefghijklmnopqrst", 20, 1, "abcde", 0, 6, -5);
+ test("abcdefghijklmnopqrst", 20, 1, "abcde", 1, 0, 0);
+ test("abcdefghijklmnopqrst", 20, 1, "abcde", 1, 1, -1);
+ test("abcdefghijklmnopqrst", 20, 1, "abcde", 1, 2, -2);
+ test("abcdefghijklmnopqrst", 20, 1, "abcde", 1, 3, -3);
+ test("abcdefghijklmnopqrst", 20, 1, "abcde", 1, 4, -4);
+ test("abcdefghijklmnopqrst", 20, 1, "abcde", 1, 5, -4);
+ test("abcdefghijklmnopqrst", 20, 1, "abcde", 2, 0, 0);
+ test("abcdefghijklmnopqrst", 20, 1, "abcde", 2, 1, -1);
+ test("abcdefghijklmnopqrst", 20, 1, "abcde", 2, 2, -2);
+ test("abcdefghijklmnopqrst", 20, 1, "abcde", 2, 3, -3);
+ test("abcdefghijklmnopqrst", 20, 1, "abcde", 2, 4, -3);
+ test("abcdefghijklmnopqrst", 20, 1, "abcde", 4, 0, 0);
+ test("abcdefghijklmnopqrst", 20, 1, "abcde", 4, 1, -1);
+ test("abcdefghijklmnopqrst", 20, 1, "abcde", 4, 2, -1);
+ test("abcdefghijklmnopqrst", 20, 1, "abcde", 5, 0, 0);
+ test("abcdefghijklmnopqrst", 20, 1, "abcde", 5, 1, 0);
+ test("abcdefghijklmnopqrst", 20, 1, "abcde", 6, 0, 0);
+ test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 0, 0, 0);
+ test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 0, 1, -1);
+ test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 0, 5, -5);
+ test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 0, 9, -9);
+ test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 0, 10, -10);
+ test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 0, 11, -10);
+ test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 1, 0, 0);
+ test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 1, 1, -1);
+ test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 1, 4, -4);
+ test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 1, 8, -8);
+ test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 1, 9, -9);
+ test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 1, 10, -9);
+ test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 5, 0, 0);
+ test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 5, 1, -1);
+ test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 5, 2, -2);
+ test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 5, 4, -4);
+ test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 5, 5, -5);
+ test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 5, 6, -5);
+ test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 9, 0, 0);
+ test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 9, 1, -1);
+ test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 9, 2, -1);
+ test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 10, 0, 0);
+ test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 10, 1, 0);
+ test("abcdefghijklmnopqrst", 20, 1, "abcdefghij", 11, 0, 0);
+ test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 0, 0, 0);
+ test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 0, 1, -1);
+ test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 0, 10, -10);
+ test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 0, 19, -19);
+ test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 0, 20, -20);
+ test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 0, 21, -20);
+ test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 1, 0, 0);
+ test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 1, 1, -1);
+ test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 1, 9, -9);
+ test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 1, 18, -18);
+ test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 1, 19, -19);
+ test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 1, 20, -19);
+ test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 10, 0, 0);
+ test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 10, 1, -1);
+ test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 10, 5, -5);
+ test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 10, 9, -9);
+ test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 10, 10, -10);
+ test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 10, 11, -10);
+ test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 19, 0, 0);
+ test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 19, 1, -1);
+ test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 19, 2, -1);
+ test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 20, 0, 0);
}
-void test54()
-{
- test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 20, 1, 0);
- test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 21, 0, 0);
- test("abcdefghijklmnopqrst", 21, 0, "", 0, 0, 0);
- test("abcdefghijklmnopqrst", 21, 0, "", 0, 1, 0);
- test("abcdefghijklmnopqrst", 21, 0, "", 1, 0, 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcde", 0, 0, 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcde", 0, 1, 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcde", 0, 2, 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcde", 0, 4, 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcde", 0, 5, 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcde", 0, 6, 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcde", 1, 0, 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcde", 1, 1, 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcde", 1, 2, 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcde", 1, 3, 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcde", 1, 4, 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcde", 1, 5, 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcde", 2, 0, 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcde", 2, 1, 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcde", 2, 2, 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcde", 2, 3, 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcde", 2, 4, 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcde", 4, 0, 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcde", 4, 1, 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcde", 4, 2, 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcde", 5, 0, 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcde", 5, 1, 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcde", 6, 0, 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 0, 0, 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 0, 1, 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 0, 5, 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 0, 9, 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 0, 10, 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 0, 11, 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 1, 0, 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 1, 1, 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 1, 4, 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 1, 8, 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 1, 9, 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 1, 10, 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 5, 0, 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 5, 1, 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 5, 2, 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 5, 4, 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 5, 5, 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 5, 6, 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 9, 0, 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 9, 1, 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 9, 2, 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 10, 0, 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 10, 1, 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 11, 0, 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 0, 0, 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 0, 1, 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 0, 10, 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 0, 19, 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 0, 20, 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 0, 21, 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 1, 0, 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 1, 1, 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 1, 9, 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 1, 18, 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 1, 19, 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 1, 20, 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 10, 0, 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 10, 1, 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 10, 5, 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 10, 9, 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 10, 10, 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 10, 11, 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 19, 0, 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 19, 1, 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 19, 2, 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 20, 0, 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 20, 1, 0);
- test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 21, 0, 0);
+void test54() {
+ test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 20, 1, 0);
+ test("abcdefghijklmnopqrst", 20, 1, "abcdefghijklmnopqrst", 21, 0, 0);
+ test("abcdefghijklmnopqrst", 21, 0, "", 0, 0, 0);
+ test("abcdefghijklmnopqrst", 21, 0, "", 0, 1, 0);
+ test("abcdefghijklmnopqrst", 21, 0, "", 1, 0, 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcde", 0, 0, 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcde", 0, 1, 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcde", 0, 2, 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcde", 0, 4, 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcde", 0, 5, 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcde", 0, 6, 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcde", 1, 0, 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcde", 1, 1, 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcde", 1, 2, 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcde", 1, 3, 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcde", 1, 4, 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcde", 1, 5, 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcde", 2, 0, 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcde", 2, 1, 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcde", 2, 2, 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcde", 2, 3, 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcde", 2, 4, 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcde", 4, 0, 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcde", 4, 1, 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcde", 4, 2, 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcde", 5, 0, 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcde", 5, 1, 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcde", 6, 0, 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 0, 0, 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 0, 1, 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 0, 5, 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 0, 9, 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 0, 10, 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 0, 11, 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 1, 0, 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 1, 1, 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 1, 4, 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 1, 8, 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 1, 9, 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 1, 10, 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 5, 0, 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 5, 1, 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 5, 2, 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 5, 4, 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 5, 5, 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 5, 6, 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 9, 0, 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 9, 1, 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 9, 2, 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 10, 0, 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 10, 1, 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcdefghij", 11, 0, 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 0, 0, 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 0, 1, 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 0, 10, 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 0, 19, 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 0, 20, 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 0, 21, 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 1, 0, 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 1, 1, 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 1, 9, 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 1, 18, 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 1, 19, 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 1, 20, 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 10, 0, 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 10, 1, 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 10, 5, 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 10, 9, 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 10, 10, 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 10, 11, 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 19, 0, 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 19, 1, 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 19, 2, 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 20, 0, 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 20, 1, 0);
+ test("abcdefghijklmnopqrst", 21, 0, "abcdefghijklmnopqrst", 21, 0, 0);
}
-
int main(int, char**) {
- test0();
- test1();
- test2();
- test3();
- test4();
- test5();
- test6();
- test7();
- test8();
- test9();
- test10();
- test11();
- test12();
- test13();
- test14();
- test15();
- test16();
- test17();
- test18();
- test19();
- test20();
- test21();
- test22();
- test23();
- test24();
- test25();
- test26();
- test27();
- test28();
- test29();
- test30();
- test31();
- test32();
- test33();
- test34();
- test35();
- test36();
- test37();
- test38();
- test39();
- test40();
- test41();
- test42();
- test43();
- test44();
- test45();
- test46();
- test47();
- test48();
- test49();
- test50();
- test51();
- test52();
- test53();
- test54();
-
+ test0();
+ test1();
+ test2();
+ test3();
+ test4();
+ test5();
+ test6();
+ test7();
+ test8();
+ test9();
+ test10();
+ test11();
+ test12();
+ test13();
+ test14();
+ test15();
+ test16();
+ test17();
+ test18();
+ test19();
+ test20();
+ test21();
+ test22();
+ test23();
+ test24();
+ test25();
+ test26();
+ test27();
+ test28();
+ test29();
+ test30();
+ test31();
+ test32();
+ test33();
+ test34();
+ test35();
+ test36();
+ test37();
+ test38();
+ test39();
+ test40();
+ test41();
+ test42();
+ test43();
+ test44();
+ test45();
+ test46();
+ test47();
+ test48();
+ test49();
+ test50();
+ test51();
+ test52();
+ test53();
+ test54();
- {
+ {
test("abcde", 5, 1, "", 0, 0, 0);
test("abcde", 2, 4, "", 0, 0, 3);
test("abcde", 2, 4, "abcde", 3, 4, -2);
test("ABCde", 2, 4, "abcde", 2, 4, -1);
- }
+ }
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- {
+ {
test(L"abcde", 5, 1, L"", 0, 0, 0);
test(L"abcde", 2, 4, L"", 0, 0, 3);
test(L"abcde", 2, 4, L"abcde", 3, 4, -2);
test(L"ABCde", 2, 4, L"abcde", 2, 4, -1);
- }
+ }
#endif
#if TEST_STD_VER >= 11
- {
+ {
test(u"abcde", 5, 1, u"", 0, 0, 0);
test(u"abcde", 2, 4, u"", 0, 0, 3);
test(u"abcde", 2, 4, u"abcde", 3, 4, -2);
test(u"ABCde", 2, 4, u"abcde", 2, 4, -1);
- }
+ }
- {
+ {
test(U"abcde", 5, 1, U"", 0, 0, 0);
test(U"abcde", 2, 4, U"", 0, 0, 3);
test(U"abcde", 2, 4, U"abcde", 3, 4, -2);
test(U"ABCde", 2, 4, U"abcde", 2, 4, -1);
- }
+ }
#endif
#if TEST_STD_VER > 11
- {
+ {
typedef std::basic_string_view<char, constexpr_char_traits<char>> SV;
- constexpr SV sv1 { "abcde", 5 };
- static_assert ( sv1.compare(5, 1, "", 0, 0) == 0, "" );
- static_assert ( sv1.compare(2, 4, "", 0, 0) > 0, "" );
- static_assert ( sv1.compare(2, 4, "abcde", 3, 4) < 0, "" );
- }
+ constexpr SV sv1{"abcde", 5};
+ static_assert(sv1.compare(5, 1, "", 0, 0) == 0, "");
+ static_assert(sv1.compare(2, 4, "", 0, 0) > 0, "");
+ static_assert(sv1.compare(2, 4, "abcde", 3, 4) < 0, "");
+ }
#endif
return 0;
diff --git a/libcxx/test/std/strings/string.view/string.view.ops/compare.sv.pass.cpp b/libcxx/test/std/strings/string.view/string.view.ops/compare.sv.pass.cpp
index 7db327d9c9ef8b9..38d8dec11c70be6 100644
--- a/libcxx/test/std/strings/string.view/string.view.ops/compare.sv.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.ops/compare.sv.pass.cpp
@@ -18,109 +18,106 @@
#include "test_macros.h"
#include "constexpr_char_traits.h"
-int sign ( int x ) { return x > 0 ? 1 : ( x < 0 ? -1 : 0 ); }
+int sign(int x) { return x > 0 ? 1 : (x < 0 ? -1 : 0); }
-template<typename CharT>
-void test1 ( std::basic_string_view<CharT> sv1,
- std::basic_string_view<CharT> sv2, int expected ) {
- assert ( sign( sv1.compare(sv2)) == sign(expected));
+template <typename CharT>
+void test1(std::basic_string_view<CharT> sv1, std::basic_string_view<CharT> sv2, int expected) {
+ assert(sign(sv1.compare(sv2)) == sign(expected));
}
+template <typename CharT>
+void test(const CharT* s1, const CharT* s2, int expected) {
+ typedef std::basic_string_view<CharT> string_view_t;
-template<typename CharT>
-void test ( const CharT *s1, const CharT *s2, int expected ) {
- typedef std::basic_string_view<CharT> string_view_t;
-
- string_view_t sv1 ( s1 );
- string_view_t sv2 ( s2 );
- test1(sv1, sv2, expected);
+ string_view_t sv1(s1);
+ string_view_t sv2(s2);
+ test1(sv1, sv2, expected);
}
int main(int, char**) {
-
- test("", "", 0);
- test("", "abcde", -5);
- test("", "abcdefghij", -10);
- test("", "abcdefghijklmnopqrst", -20);
- test("abcde", "", 5);
- test("abcde", "abcde", 0);
- test("abcde", "abcdefghij", -5);
- test("abcde", "abcdefghijklmnopqrst", -15);
- test("abcdefghij", "", 10);
- test("abcdefghij", "abcde", 5);
- test("abcdefghij", "abcdefghij", 0);
- test("abcdefghij", "abcdefghijklmnopqrst", -10);
- test("abcdefghijklmnopqrst", "", 20);
- test("abcdefghijklmnopqrst", "abcde", 15);
- test("abcdefghijklmnopqrst", "abcdefghij", 10);
- test("abcdefghijklmnopqrst", "abcdefghijklmnopqrst", 0);
+ test("", "", 0);
+ test("", "abcde", -5);
+ test("", "abcdefghij", -10);
+ test("", "abcdefghijklmnopqrst", -20);
+ test("abcde", "", 5);
+ test("abcde", "abcde", 0);
+ test("abcde", "abcdefghij", -5);
+ test("abcde", "abcdefghijklmnopqrst", -15);
+ test("abcdefghij", "", 10);
+ test("abcdefghij", "abcde", 5);
+ test("abcdefghij", "abcdefghij", 0);
+ test("abcdefghij", "abcdefghijklmnopqrst", -10);
+ test("abcdefghijklmnopqrst", "", 20);
+ test("abcdefghijklmnopqrst", "abcde", 15);
+ test("abcdefghijklmnopqrst", "abcdefghij", 10);
+ test("abcdefghijklmnopqrst", "abcdefghijklmnopqrst", 0);
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- test(L"", L"", 0);
- test(L"", L"abcde", -5);
- test(L"", L"abcdefghij", -10);
- test(L"", L"abcdefghijklmnopqrst", -20);
- test(L"abcde", L"", 5);
- test(L"abcde", L"abcde", 0);
- test(L"abcde", L"abcdefghij", -5);
- test(L"abcde", L"abcdefghijklmnopqrst", -15);
- test(L"abcdefghij", L"", 10);
- test(L"abcdefghij", L"abcde", 5);
- test(L"abcdefghij", L"abcdefghij", 0);
- test(L"abcdefghij", L"abcdefghijklmnopqrst", -10);
- test(L"abcdefghijklmnopqrst", L"", 20);
- test(L"abcdefghijklmnopqrst", L"abcde", 15);
- test(L"abcdefghijklmnopqrst", L"abcdefghij", 10);
- test(L"abcdefghijklmnopqrst", L"abcdefghijklmnopqrst", 0);
+ test(L"", L"", 0);
+ test(L"", L"abcde", -5);
+ test(L"", L"abcdefghij", -10);
+ test(L"", L"abcdefghijklmnopqrst", -20);
+ test(L"abcde", L"", 5);
+ test(L"abcde", L"abcde", 0);
+ test(L"abcde", L"abcdefghij", -5);
+ test(L"abcde", L"abcdefghijklmnopqrst", -15);
+ test(L"abcdefghij", L"", 10);
+ test(L"abcdefghij", L"abcde", 5);
+ test(L"abcdefghij", L"abcdefghij", 0);
+ test(L"abcdefghij", L"abcdefghijklmnopqrst", -10);
+ test(L"abcdefghijklmnopqrst", L"", 20);
+ test(L"abcdefghijklmnopqrst", L"abcde", 15);
+ test(L"abcdefghijklmnopqrst", L"abcdefghij", 10);
+ test(L"abcdefghijklmnopqrst", L"abcdefghijklmnopqrst", 0);
#endif
#if TEST_STD_VER >= 11
- test(u"", u"", 0);
- test(u"", u"abcde", -5);
- test(u"", u"abcdefghij", -10);
- test(u"", u"abcdefghijklmnopqrst", -20);
- test(u"abcde", u"", 5);
- test(u"abcde", u"abcde", 0);
- test(u"abcde", u"abcdefghij", -5);
- test(u"abcde", u"abcdefghijklmnopqrst", -15);
- test(u"abcdefghij", u"", 10);
- test(u"abcdefghij", u"abcde", 5);
- test(u"abcdefghij", u"abcdefghij", 0);
- test(u"abcdefghij", u"abcdefghijklmnopqrst", -10);
- test(u"abcdefghijklmnopqrst", u"", 20);
- test(u"abcdefghijklmnopqrst", u"abcde", 15);
- test(u"abcdefghijklmnopqrst", u"abcdefghij", 10);
- test(u"abcdefghijklmnopqrst", u"abcdefghijklmnopqrst", 0);
-
- test(U"", U"", 0);
- test(U"", U"abcde", -5);
- test(U"", U"abcdefghij", -10);
- test(U"", U"abcdefghijklmnopqrst", -20);
- test(U"abcde", U"", 5);
- test(U"abcde", U"abcde", 0);
- test(U"abcde", U"abcdefghij", -5);
- test(U"abcde", U"abcdefghijklmnopqrst", -15);
- test(U"abcdefghij", U"", 10);
- test(U"abcdefghij", U"abcde", 5);
- test(U"abcdefghij", U"abcdefghij", 0);
- test(U"abcdefghij", U"abcdefghijklmnopqrst", -10);
- test(U"abcdefghijklmnopqrst", U"", 20);
- test(U"abcdefghijklmnopqrst", U"abcde", 15);
- test(U"abcdefghijklmnopqrst", U"abcdefghij", 10);
- test(U"abcdefghijklmnopqrst", U"abcdefghijklmnopqrst", 0);
+ test(u"", u"", 0);
+ test(u"", u"abcde", -5);
+ test(u"", u"abcdefghij", -10);
+ test(u"", u"abcdefghijklmnopqrst", -20);
+ test(u"abcde", u"", 5);
+ test(u"abcde", u"abcde", 0);
+ test(u"abcde", u"abcdefghij", -5);
+ test(u"abcde", u"abcdefghijklmnopqrst", -15);
+ test(u"abcdefghij", u"", 10);
+ test(u"abcdefghij", u"abcde", 5);
+ test(u"abcdefghij", u"abcdefghij", 0);
+ test(u"abcdefghij", u"abcdefghijklmnopqrst", -10);
+ test(u"abcdefghijklmnopqrst", u"", 20);
+ test(u"abcdefghijklmnopqrst", u"abcde", 15);
+ test(u"abcdefghijklmnopqrst", u"abcdefghij", 10);
+ test(u"abcdefghijklmnopqrst", u"abcdefghijklmnopqrst", 0);
+
+ test(U"", U"", 0);
+ test(U"", U"abcde", -5);
+ test(U"", U"abcdefghij", -10);
+ test(U"", U"abcdefghijklmnopqrst", -20);
+ test(U"abcde", U"", 5);
+ test(U"abcde", U"abcde", 0);
+ test(U"abcde", U"abcdefghij", -5);
+ test(U"abcde", U"abcdefghijklmnopqrst", -15);
+ test(U"abcdefghij", U"", 10);
+ test(U"abcdefghij", U"abcde", 5);
+ test(U"abcdefghij", U"abcdefghij", 0);
+ test(U"abcdefghij", U"abcdefghijklmnopqrst", -10);
+ test(U"abcdefghijklmnopqrst", U"", 20);
+ test(U"abcdefghijklmnopqrst", U"abcde", 15);
+ test(U"abcdefghijklmnopqrst", U"abcdefghij", 10);
+ test(U"abcdefghijklmnopqrst", U"abcdefghijklmnopqrst", 0);
#endif
#if TEST_STD_VER > 11
- {
+ {
typedef std::basic_string_view<char, constexpr_char_traits<char>> SV;
- constexpr SV sv1 { "abcde", 5 };
- constexpr SV sv2 { "abcde", 5 };
- constexpr SV sv3 { "edcba0", 6 };
- static_assert ( sv1.compare(sv2) == 0, "" );
- static_assert ( sv2.compare(sv1) == 0, "" );
- static_assert ( sv3.compare(sv2) > 0, "" );
- static_assert ( sv2.compare(sv3) < 0, "" );
- }
+ constexpr SV sv1{"abcde", 5};
+ constexpr SV sv2{"abcde", 5};
+ constexpr SV sv3{"edcba0", 6};
+ static_assert(sv1.compare(sv2) == 0, "");
+ static_assert(sv2.compare(sv1) == 0, "");
+ static_assert(sv3.compare(sv2) > 0, "");
+ static_assert(sv2.compare(sv3) < 0, "");
+ }
#endif
return 0;
diff --git a/libcxx/test/std/strings/string.view/string.view.ops/copy.pass.cpp b/libcxx/test/std/strings/string.view/string.view.ops/copy.pass.cpp
index 0128e98ee6aa274..1d97723b90edce5 100644
--- a/libcxx/test/std/strings/string.view/string.view.ops/copy.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.ops/copy.pass.cpp
@@ -25,112 +25,113 @@
#include "test_macros.h"
-template<typename CharT>
-void test1 ( std::basic_string_view<CharT> sv, std::size_t n, size_t pos ) {
- const std::size_t rlen = std::min ( n, sv.size() - pos );
+template <typename CharT>
+void test1(std::basic_string_view<CharT> sv, std::size_t n, size_t pos) {
+ const std::size_t rlen = std::min(n, sv.size() - pos);
- CharT *dest1 = new CharT [rlen + 1]; dest1[rlen] = 0;
- CharT *dest2 = new CharT [rlen + 1]; dest2[rlen] = 0;
+ CharT* dest1 = new CharT[rlen + 1];
+ dest1[rlen] = 0;
+ CharT* dest2 = new CharT[rlen + 1];
+ dest2[rlen] = 0;
- if (pos > sv.size()) {
+ if (pos > sv.size()) {
#ifndef TEST_HAS_NO_EXCEPTIONS
- try {
- sv.copy(dest1, n, pos);
- assert(false);
- } catch (const std::out_of_range&) {
- } catch (...) {
- assert(false);
- }
-#endif
- } else {
- sv.copy(dest1, n, pos);
- std::copy_n(sv.begin() + pos, rlen, dest2);
- for ( std::size_t i = 0; i <= rlen; ++i )
- assert ( dest1[i] == dest2[i] );
+ try {
+ sv.copy(dest1, n, pos);
+ assert(false);
+ } catch (const std::out_of_range&) {
+ } catch (...) {
+ assert(false);
}
- delete [] dest1;
- delete [] dest2;
+#endif
+ } else {
+ sv.copy(dest1, n, pos);
+ std::copy_n(sv.begin() + pos, rlen, dest2);
+ for (std::size_t i = 0; i <= rlen; ++i)
+ assert(dest1[i] == dest2[i]);
+ }
+ delete[] dest1;
+ delete[] dest2;
}
+template <typename CharT>
+void test(const CharT* s) {
+ typedef std::basic_string_view<CharT> string_view_t;
-template<typename CharT>
-void test ( const CharT *s ) {
- typedef std::basic_string_view<CharT> string_view_t;
-
- string_view_t sv1 ( s );
+ string_view_t sv1(s);
- test1(sv1, 0, 0);
- test1(sv1, 1, 0);
- test1(sv1, 20, 0);
- test1(sv1, sv1.size(), 0);
- test1(sv1, 20, string_view_t::npos);
+ test1(sv1, 0, 0);
+ test1(sv1, 1, 0);
+ test1(sv1, 20, 0);
+ test1(sv1, sv1.size(), 0);
+ test1(sv1, 20, string_view_t::npos);
- test1(sv1, 0, 3);
- test1(sv1, 2, 3);
- test1(sv1, 100, 3);
- test1(sv1, 100, string_view_t::npos);
+ test1(sv1, 0, 3);
+ test1(sv1, 2, 3);
+ test1(sv1, 100, 3);
+ test1(sv1, 100, string_view_t::npos);
- test1(sv1, sv1.size(), string_view_t::npos);
+ test1(sv1, sv1.size(), string_view_t::npos);
- test1(sv1, sv1.size() + 1, 0);
- test1(sv1, sv1.size() + 1, 1);
- test1(sv1, sv1.size() + 1, string_view_t::npos);
+ test1(sv1, sv1.size() + 1, 0);
+ test1(sv1, sv1.size() + 1, 1);
+ test1(sv1, sv1.size() + 1, string_view_t::npos);
}
-template<typename CharT>
-TEST_CONSTEXPR_CXX20 bool test_constexpr_copy(const CharT *abcde, const CharT *ghijk, const CharT *bcdjk)
-{
- CharT buf[6] = {};
- std::basic_string_view<CharT> lval(ghijk); lval.copy(buf, 6);
- std::basic_string_view<CharT>(abcde).copy(buf, 3, 1);
- assert(std::basic_string_view<CharT>(buf) == bcdjk);
- return true;
+template <typename CharT>
+TEST_CONSTEXPR_CXX20 bool test_constexpr_copy(const CharT* abcde, const CharT* ghijk, const CharT* bcdjk) {
+ CharT buf[6] = {};
+ std::basic_string_view<CharT> lval(ghijk);
+ lval.copy(buf, 6);
+ std::basic_string_view<CharT>(abcde).copy(buf, 3, 1);
+ assert(std::basic_string_view<CharT>(buf) == bcdjk);
+ return true;
}
int main(int, char**) {
- test ( "ABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDE" );
- test ( "ABCDE");
- test ( "a" );
- test ( "" );
+ test("ABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDE");
+ test("ABCDE");
+ test("a");
+ test("");
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- test ( L"ABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDE" );
- test ( L"ABCDE" );
- test ( L"a" );
- test ( L"" );
+ test(L"ABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDE");
+ test(L"ABCDE");
+ test(L"a");
+ test(L"");
#endif
#if TEST_STD_VER >= 11
- test ( u"ABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDE" );
- test ( u"ABCDE" );
- test ( u"a" );
- test ( u"" );
-
- test ( U"ABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDE" );
- test ( U"ABCDE" );
- test ( U"a" );
- test ( U"" );
+ test(u"ABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDE");
+ test(u"ABCDE");
+ test(u"a");
+ test(u"");
+
+ test(U"ABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDE");
+ test(U"ABCDE");
+ test(U"a");
+ test(U"");
#endif
- test_constexpr_copy("ABCDE", "GHIJK", "BCDJK");
+ test_constexpr_copy("ABCDE", "GHIJK", "BCDJK");
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- test_constexpr_copy(L"ABCDE", L"GHIJK", L"BCDJK");
+ test_constexpr_copy(L"ABCDE", L"GHIJK", L"BCDJK");
#endif
#if TEST_STD_VER >= 11
- test_constexpr_copy(u"ABCDE", u"GHIJK", u"BCDJK");
- test_constexpr_copy(U"ABCDE", U"GHIJK", U"BCDJK");
+ test_constexpr_copy(u"ABCDE", u"GHIJK", u"BCDJK");
+ test_constexpr_copy(U"ABCDE", U"GHIJK", U"BCDJK");
#endif
#if TEST_STD_VER >= 17
- test_constexpr_copy(u8"ABCDE", u8"GHIJK", u8"BCDJK");
+ test_constexpr_copy(u8"ABCDE", u8"GHIJK", u8"BCDJK");
#endif
#if TEST_STD_VER >= 20
- static_assert(test_constexpr_copy("ABCDE", "GHIJK", "BCDJK"));
-#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- static_assert(test_constexpr_copy(L"ABCDE", L"GHIJK", L"BCDJK"));
-#endif
- static_assert(test_constexpr_copy(u"ABCDE", u"GHIJK", u"BCDJK"));
- static_assert(test_constexpr_copy(U"ABCDE", U"GHIJK", U"BCDJK"));
- static_assert(test_constexpr_copy(u8"ABCDE", u8"GHIJK", u8"BCDJK"));
+ static_assert(test_constexpr_copy("ABCDE", "GHIJK", "BCDJK"));
+# ifndef TEST_HAS_NO_WIDE_CHARACTERS
+ static_assert(test_constexpr_copy(L"ABCDE", L"GHIJK", L"BCDJK"));
+# endif
+ static_assert(test_constexpr_copy(u"ABCDE", u"GHIJK", u"BCDJK"));
+ static_assert(test_constexpr_copy(U"ABCDE", U"GHIJK", U"BCDJK"));
+ static_assert(test_constexpr_copy(u8"ABCDE", u8"GHIJK", u8"BCDJK"));
#endif
return 0;
diff --git a/libcxx/test/std/strings/string.view/string.view.ops/substr.pass.cpp b/libcxx/test/std/strings/string.view/string.view.ops/substr.pass.cpp
index 0de64f0e59d49f6..1c8e0aebabd4127 100644
--- a/libcxx/test/std/strings/string.view/string.view.ops/substr.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.ops/substr.pass.cpp
@@ -23,103 +23,101 @@
#include "test_macros.h"
-template<typename CharT>
+template <typename CharT>
void test1(std::basic_string_view<CharT> sv, std::size_t n, size_t pos) {
- std::basic_string_view<CharT> sv1;
+ std::basic_string_view<CharT> sv1;
#ifdef TEST_HAS_NO_EXCEPTIONS
- if (pos > sv.size())
- return ; // would throw if exceptions were enabled
- sv1 = sv.substr(pos, n);
+ if (pos > sv.size())
+ return; // would throw if exceptions were enabled
+ sv1 = sv.substr(pos, n);
#else
- try {
- sv1 = sv.substr(pos, n);
- assert(pos <= sv.size());
- }
- catch (const std::out_of_range&) {
- assert(pos > sv.size());
- return ;
- }
+ try {
+ sv1 = sv.substr(pos, n);
+ assert(pos <= sv.size());
+ } catch (const std::out_of_range&) {
+ assert(pos > sv.size());
+ return;
+ }
#endif
- const std::size_t rlen = std::min(n, sv.size() - pos);
- assert (sv1.size() == rlen);
- for (std::size_t i = 0; i < rlen; ++i)
- assert(sv[pos+i] == sv1[i]);
+ const std::size_t rlen = std::min(n, sv.size() - pos);
+ assert(sv1.size() == rlen);
+ for (std::size_t i = 0; i < rlen; ++i)
+ assert(sv[pos + i] == sv1[i]);
}
+template <typename CharT>
+void test(const CharT* s) {
+ typedef std::basic_string_view<CharT> string_view_t;
-template<typename CharT>
-void test ( const CharT *s ) {
- typedef std::basic_string_view<CharT> string_view_t;
+ string_view_t sv1(s);
- string_view_t sv1 ( s );
+ test1(sv1, 0, 0);
+ test1(sv1, 1, 0);
+ test1(sv1, 20, 0);
+ test1(sv1, sv1.size(), 0);
- test1(sv1, 0, 0);
- test1(sv1, 1, 0);
- test1(sv1, 20, 0);
- test1(sv1, sv1.size(), 0);
+ test1(sv1, 0, 3);
+ test1(sv1, 2, 3);
+ test1(sv1, 100, 3);
- test1(sv1, 0, 3);
- test1(sv1, 2, 3);
- test1(sv1, 100, 3);
+ test1(sv1, 0, string_view_t::npos);
+ test1(sv1, 2, string_view_t::npos);
+ test1(sv1, sv1.size(), string_view_t::npos);
- test1(sv1, 0, string_view_t::npos);
- test1(sv1, 2, string_view_t::npos);
- test1(sv1, sv1.size(), string_view_t::npos);
-
- test1(sv1, sv1.size() + 1, 0);
- test1(sv1, sv1.size() + 1, 1);
- test1(sv1, sv1.size() + 1, string_view_t::npos);
+ test1(sv1, sv1.size() + 1, 0);
+ test1(sv1, sv1.size() + 1, 1);
+ test1(sv1, sv1.size() + 1, string_view_t::npos);
}
int main(int, char**) {
- test ( "ABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDE" );
- test ( "ABCDE");
- test ( "a" );
- test ( "" );
+ test("ABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDE");
+ test("ABCDE");
+ test("a");
+ test("");
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- test ( L"ABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDE" );
- test ( L"ABCDE" );
- test ( L"a" );
- test ( L"" );
+ test(L"ABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDE");
+ test(L"ABCDE");
+ test(L"a");
+ test(L"");
#endif
#if TEST_STD_VER >= 11
- test ( u"ABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDE" );
- test ( u"ABCDE" );
- test ( u"a" );
- test ( u"" );
-
- test ( U"ABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDE" );
- test ( U"ABCDE" );
- test ( U"a" );
- test ( U"" );
+ test(u"ABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDE");
+ test(u"ABCDE");
+ test(u"a");
+ test(u"");
+
+ test(U"ABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDE");
+ test(U"ABCDE");
+ test(U"a");
+ test(U"");
#endif
#if TEST_STD_VER > 11
- {
- constexpr std::string_view sv1 { "ABCDE", 5 };
+ {
+ constexpr std::string_view sv1{"ABCDE", 5};
{
- constexpr std::string_view sv2 = sv1.substr ( 0, 3 );
- static_assert ( sv2.size() == 3, "" );
- static_assert ( sv2[0] == 'A', "" );
- static_assert ( sv2[1] == 'B', "" );
- static_assert ( sv2[2] == 'C', "" );
+ constexpr std::string_view sv2 = sv1.substr(0, 3);
+ static_assert(sv2.size() == 3, "");
+ static_assert(sv2[0] == 'A', "");
+ static_assert(sv2[1] == 'B', "");
+ static_assert(sv2[2] == 'C', "");
}
{
- constexpr std::string_view sv2 = sv1.substr ( 3, 0 );
- static_assert ( sv2.size() == 0, "" );
+ constexpr std::string_view sv2 = sv1.substr(3, 0);
+ static_assert(sv2.size() == 0, "");
}
{
- constexpr std::string_view sv2 = sv1.substr ( 3, 3 );
- static_assert ( sv2.size() == 2, "" );
- static_assert ( sv2[0] == 'D', "" );
- static_assert ( sv2[1] == 'E', "" );
- }
+ constexpr std::string_view sv2 = sv1.substr(3, 3);
+ static_assert(sv2.size() == 2, "");
+ static_assert(sv2[0] == 'D', "");
+ static_assert(sv2[1] == 'E', "");
}
+ }
#endif
return 0;
diff --git a/libcxx/test/std/strings/string.view/string.view.synop/nothing_to_do.pass.cpp b/libcxx/test/std/strings/string.view/string.view.synop/nothing_to_do.pass.cpp
index 45edec7f4b06881..c2738673a43647d 100644
--- a/libcxx/test/std/strings/string.view/string.view.synop/nothing_to_do.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.synop/nothing_to_do.pass.cpp
@@ -8,6 +8,4 @@
#include <string_view>
-int main(int, char**) {
- return 0;
-}
+int main(int, char**) { return 0; }
diff --git a/libcxx/test/std/strings/string.view/string.view.template/contains.char.pass.cpp b/libcxx/test/std/strings/string.view/string.view.template/contains.char.pass.cpp
index 16ae8347f942586..4e20bbe17e1b656 100644
--- a/libcxx/test/std/strings/string.view/string.view.template/contains.char.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.template/contains.char.pass.cpp
@@ -17,29 +17,27 @@
#include "test_macros.h"
-constexpr bool test()
-{
- using SV = std::string_view;
+constexpr bool test() {
+ using SV = std::string_view;
- SV sv1 {};
- SV sv2 {"abcde", 5};
+ SV sv1{};
+ SV sv2{"abcde", 5};
- ASSERT_NOEXCEPT(sv1.contains('e'));
+ ASSERT_NOEXCEPT(sv1.contains('e'));
- assert(!sv1.contains('c'));
- assert(!sv1.contains('e'));
- assert(!sv1.contains('x'));
- assert( sv2.contains('c'));
- assert( sv2.contains('e'));
- assert(!sv2.contains('x'));
+ assert(!sv1.contains('c'));
+ assert(!sv1.contains('e'));
+ assert(!sv1.contains('x'));
+ assert(sv2.contains('c'));
+ assert(sv2.contains('e'));
+ assert(!sv2.contains('x'));
- return true;
+ return true;
}
-int main(int, char**)
-{
- test();
- static_assert(test());
+int main(int, char**) {
+ test();
+ static_assert(test());
- return 0;
+ return 0;
}
diff --git a/libcxx/test/std/strings/string.view/string.view.template/contains.ptr.pass.cpp b/libcxx/test/std/strings/string.view/string.view.template/contains.ptr.pass.cpp
index 85a86e0aade5ce3..67376af65a9086a 100644
--- a/libcxx/test/std/strings/string.view/string.view.template/contains.ptr.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.template/contains.ptr.pass.cpp
@@ -17,59 +17,57 @@
#include "test_macros.h"
-constexpr bool test()
-{
- using SV = std::string_view;
+constexpr bool test() {
+ using SV = std::string_view;
- const char* s = "abcde";
- SV sv0;
- SV sv1 {s + 4, 1};
- SV sv3 {s + 2, 3};
- SV svNot {"xyz", 3};
+ const char* s = "abcde";
+ SV sv0;
+ SV sv1{s + 4, 1};
+ SV sv3{s + 2, 3};
+ SV svNot{"xyz", 3};
- assert( sv0.contains(""));
- assert(!sv0.contains("e"));
+ assert(sv0.contains(""));
+ assert(!sv0.contains("e"));
- assert( sv1.contains(""));
- assert(!sv1.contains("d"));
- assert( sv1.contains("e"));
- assert(!sv1.contains("de"));
- assert(!sv1.contains("cd"));
- assert(!sv1.contains("cde"));
- assert(!sv1.contains("bcde"));
- assert(!sv1.contains("abcde"));
- assert(!sv1.contains("xyz"));
+ assert(sv1.contains(""));
+ assert(!sv1.contains("d"));
+ assert(sv1.contains("e"));
+ assert(!sv1.contains("de"));
+ assert(!sv1.contains("cd"));
+ assert(!sv1.contains("cde"));
+ assert(!sv1.contains("bcde"));
+ assert(!sv1.contains("abcde"));
+ assert(!sv1.contains("xyz"));
- assert( sv3.contains(""));
- assert( sv3.contains("d"));
- assert( sv3.contains("e"));
- assert( sv3.contains("de"));
- assert( sv3.contains("cd"));
- assert(!sv3.contains("ce"));
- assert( sv3.contains("cde"));
- assert(!sv3.contains("edc"));
- assert(!sv3.contains("bcde"));
- assert(!sv3.contains("abcde"));
- assert(!sv3.contains("xyz"));
+ assert(sv3.contains(""));
+ assert(sv3.contains("d"));
+ assert(sv3.contains("e"));
+ assert(sv3.contains("de"));
+ assert(sv3.contains("cd"));
+ assert(!sv3.contains("ce"));
+ assert(sv3.contains("cde"));
+ assert(!sv3.contains("edc"));
+ assert(!sv3.contains("bcde"));
+ assert(!sv3.contains("abcde"));
+ assert(!sv3.contains("xyz"));
- assert( svNot.contains(""));
- assert(!svNot.contains("d"));
- assert(!svNot.contains("e"));
- assert(!svNot.contains("de"));
- assert(!svNot.contains("cd"));
- assert(!svNot.contains("cde"));
- assert(!svNot.contains("bcde"));
- assert(!svNot.contains("abcde"));
- assert( svNot.contains("xyz"));
- assert(!svNot.contains("zyx"));
+ assert(svNot.contains(""));
+ assert(!svNot.contains("d"));
+ assert(!svNot.contains("e"));
+ assert(!svNot.contains("de"));
+ assert(!svNot.contains("cd"));
+ assert(!svNot.contains("cde"));
+ assert(!svNot.contains("bcde"));
+ assert(!svNot.contains("abcde"));
+ assert(svNot.contains("xyz"));
+ assert(!svNot.contains("zyx"));
- return true;
+ return true;
}
-int main(int, char**)
-{
- test();
- static_assert(test());
+int main(int, char**) {
+ test();
+ static_assert(test());
- return 0;
+ return 0;
}
diff --git a/libcxx/test/std/strings/string.view/string.view.template/contains.string_view.pass.cpp b/libcxx/test/std/strings/string.view/string.view.template/contains.string_view.pass.cpp
index a4bdc7ab821eeb0..74d82273fa9e892 100644
--- a/libcxx/test/std/strings/string.view/string.view.template/contains.string_view.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.template/contains.string_view.pass.cpp
@@ -17,73 +17,71 @@
#include "test_macros.h"
-constexpr bool test()
-{
- using SV = std::string_view;
-
- const char* s = "abcde";
- SV sv0;
- SV sv1 {s + 1, 1};
- SV sv2 {s + 1, 2};
- SV sv3 {s + 1, 3};
- SV sv4 {s + 1, 4};
- SV sv5 {s , 5};
- SV svNot {"xyz", 3};
- SV svNot2 {"bd" , 2};
- SV svNot3 {"dcb", 3};
-
- ASSERT_NOEXCEPT(sv0.contains(sv0));
-
- assert( sv0.contains(sv0));
- assert(!sv0.contains(sv1));
-
- assert( sv1.contains(sv0));
- assert( sv1.contains(sv1));
- assert(!sv1.contains(sv2));
- assert(!sv1.contains(sv3));
- assert(!sv1.contains(sv4));
- assert(!sv1.contains(sv5));
- assert(!sv1.contains(svNot));
- assert(!sv1.contains(svNot2));
- assert(!sv1.contains(svNot3));
-
- assert( sv3.contains(sv0));
- assert( sv3.contains(sv1));
- assert( sv3.contains(sv2));
- assert( sv3.contains(sv3));
- assert(!sv3.contains(sv4));
- assert(!sv3.contains(sv5));
- assert(!sv3.contains(svNot));
- assert(!sv3.contains(svNot2));
- assert(!sv3.contains(svNot3));
-
- assert( sv5.contains(sv0));
- assert( sv5.contains(sv1));
- assert( sv5.contains(sv2));
- assert( sv5.contains(sv3));
- assert( sv5.contains(sv4));
- assert( sv5.contains(sv5));
- assert(!sv5.contains(svNot));
- assert(!sv5.contains(svNot2));
- assert(!sv5.contains(svNot3));
-
- assert( svNot.contains(sv0));
- assert(!svNot.contains(sv1));
- assert(!svNot.contains(sv2));
- assert(!svNot.contains(sv3));
- assert(!svNot.contains(sv4));
- assert(!svNot.contains(sv5));
- assert( svNot.contains(svNot));
- assert(!svNot.contains(svNot2));
- assert(!svNot.contains(svNot3));
-
- return true;
+constexpr bool test() {
+ using SV = std::string_view;
+
+ const char* s = "abcde";
+ SV sv0;
+ SV sv1{s + 1, 1};
+ SV sv2{s + 1, 2};
+ SV sv3{s + 1, 3};
+ SV sv4{s + 1, 4};
+ SV sv5{s, 5};
+ SV svNot{"xyz", 3};
+ SV svNot2{"bd", 2};
+ SV svNot3{"dcb", 3};
+
+ ASSERT_NOEXCEPT(sv0.contains(sv0));
+
+ assert(sv0.contains(sv0));
+ assert(!sv0.contains(sv1));
+
+ assert(sv1.contains(sv0));
+ assert(sv1.contains(sv1));
+ assert(!sv1.contains(sv2));
+ assert(!sv1.contains(sv3));
+ assert(!sv1.contains(sv4));
+ assert(!sv1.contains(sv5));
+ assert(!sv1.contains(svNot));
+ assert(!sv1.contains(svNot2));
+ assert(!sv1.contains(svNot3));
+
+ assert(sv3.contains(sv0));
+ assert(sv3.contains(sv1));
+ assert(sv3.contains(sv2));
+ assert(sv3.contains(sv3));
+ assert(!sv3.contains(sv4));
+ assert(!sv3.contains(sv5));
+ assert(!sv3.contains(svNot));
+ assert(!sv3.contains(svNot2));
+ assert(!sv3.contains(svNot3));
+
+ assert(sv5.contains(sv0));
+ assert(sv5.contains(sv1));
+ assert(sv5.contains(sv2));
+ assert(sv5.contains(sv3));
+ assert(sv5.contains(sv4));
+ assert(sv5.contains(sv5));
+ assert(!sv5.contains(svNot));
+ assert(!sv5.contains(svNot2));
+ assert(!sv5.contains(svNot3));
+
+ assert(svNot.contains(sv0));
+ assert(!svNot.contains(sv1));
+ assert(!svNot.contains(sv2));
+ assert(!svNot.contains(sv3));
+ assert(!svNot.contains(sv4));
+ assert(!svNot.contains(sv5));
+ assert(svNot.contains(svNot));
+ assert(!svNot.contains(svNot2));
+ assert(!svNot.contains(svNot3));
+
+ return true;
}
-int main(int, char**)
-{
- test();
- static_assert(test());
+int main(int, char**) {
+ test();
+ static_assert(test());
- return 0;
+ return 0;
}
diff --git a/libcxx/test/std/strings/string.view/string.view.template/ends_with.char.pass.cpp b/libcxx/test/std/strings/string.view/string.view.template/ends_with.char.pass.cpp
index d1e949340da71a6..f1396714c0fd6ee 100644
--- a/libcxx/test/std/strings/string.view/string.view.template/ends_with.char.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.template/ends_with.char.pass.cpp
@@ -18,31 +18,30 @@
#include "test_macros.h"
#include "constexpr_char_traits.h"
-int main(int, char**)
-{
- {
+int main(int, char**) {
+ {
typedef std::string_view SV;
- SV sv1 {};
- SV sv2 { "abcde", 5 };
+ SV sv1{};
+ SV sv2{"abcde", 5};
ASSERT_NOEXCEPT(sv1.ends_with('e'));
- assert (!sv1.ends_with('e'));
- assert (!sv1.ends_with('x'));
- assert ( sv2.ends_with('e'));
- assert (!sv2.ends_with('x'));
- }
+ assert(!sv1.ends_with('e'));
+ assert(!sv1.ends_with('x'));
+ assert(sv2.ends_with('e'));
+ assert(!sv2.ends_with('x'));
+ }
#if TEST_STD_VER > 11
- {
+ {
typedef std::basic_string_view<char, constexpr_char_traits<char>> SV;
- constexpr SV sv1 {};
- constexpr SV sv2 { "abcde", 5 };
- static_assert (!sv1.ends_with('e'), "" );
- static_assert (!sv1.ends_with('x'), "" );
- static_assert ( sv2.ends_with('e'), "" );
- static_assert (!sv2.ends_with('x'), "" );
- }
+ constexpr SV sv1{};
+ constexpr SV sv2{"abcde", 5};
+ static_assert(!sv1.ends_with('e'), "");
+ static_assert(!sv1.ends_with('x'), "");
+ static_assert(sv2.ends_with('e'), "");
+ static_assert(!sv2.ends_with('x'), "");
+ }
#endif
return 0;
diff --git a/libcxx/test/std/strings/string.view/string.view.template/ends_with.ptr.pass.cpp b/libcxx/test/std/strings/string.view/string.view.template/ends_with.ptr.pass.cpp
index 0fea0ea6f5cb311..27897d01694177b 100644
--- a/libcxx/test/std/strings/string.view/string.view.template/ends_with.ptr.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.template/ends_with.ptr.pass.cpp
@@ -18,82 +18,81 @@
#include "test_macros.h"
#include "constexpr_char_traits.h"
-int main(int, char**)
-{
- {
+int main(int, char**) {
+ {
typedef std::string_view SV;
- const char *s = "abcde";
- SV sv0 {};
- SV sv1 { s + 4, 1 };
- SV sv2 { s + 3, 2 };
- SV svNot {"def", 3 };
+ const char* s = "abcde";
+ SV sv0{};
+ SV sv1{s + 4, 1};
+ SV sv2{s + 3, 2};
+ SV svNot{"def", 3};
LIBCPP_ASSERT_NOEXCEPT(sv0.ends_with(""));
- assert ( sv0.ends_with(""));
- assert (!sv0.ends_with("e"));
-
- assert ( sv1.ends_with(""));
- assert ( sv1.ends_with("e"));
- assert (!sv1.ends_with("de"));
- assert (!sv1.ends_with("cde"));
- assert (!sv1.ends_with("bcde"));
- assert (!sv1.ends_with("abcde"));
- assert (!sv1.ends_with("def"));
-
- assert ( sv2.ends_with(""));
- assert ( sv2.ends_with("e"));
- assert ( sv2.ends_with("de"));
- assert (!sv2.ends_with("cde"));
- assert (!sv2.ends_with("bcde"));
- assert (!sv2.ends_with("abcde"));
- assert (!sv2.ends_with("def"));
-
- assert ( svNot.ends_with(""));
- assert (!svNot.ends_with("e"));
- assert (!svNot.ends_with("de"));
- assert (!svNot.ends_with("cde"));
- assert (!svNot.ends_with("bcde"));
- assert (!svNot.ends_with("abcde"));
- assert ( svNot.ends_with("def"));
- }
+ assert(sv0.ends_with(""));
+ assert(!sv0.ends_with("e"));
+
+ assert(sv1.ends_with(""));
+ assert(sv1.ends_with("e"));
+ assert(!sv1.ends_with("de"));
+ assert(!sv1.ends_with("cde"));
+ assert(!sv1.ends_with("bcde"));
+ assert(!sv1.ends_with("abcde"));
+ assert(!sv1.ends_with("def"));
+
+ assert(sv2.ends_with(""));
+ assert(sv2.ends_with("e"));
+ assert(sv2.ends_with("de"));
+ assert(!sv2.ends_with("cde"));
+ assert(!sv2.ends_with("bcde"));
+ assert(!sv2.ends_with("abcde"));
+ assert(!sv2.ends_with("def"));
+
+ assert(svNot.ends_with(""));
+ assert(!svNot.ends_with("e"));
+ assert(!svNot.ends_with("de"));
+ assert(!svNot.ends_with("cde"));
+ assert(!svNot.ends_with("bcde"));
+ assert(!svNot.ends_with("abcde"));
+ assert(svNot.ends_with("def"));
+ }
#if TEST_STD_VER > 11
- {
+ {
typedef std::basic_string_view<char, constexpr_char_traits<char>> SV;
- constexpr const char *s = "abcde";
- constexpr SV sv0 {};
- constexpr SV sv1 { s + 4, 1 };
- constexpr SV sv2 { s + 3, 2 };
- constexpr SV svNot {"def", 3 };
-
- static_assert ( sv0.ends_with(""), "" );
- static_assert (!sv0.ends_with("e"), "" );
-
- static_assert ( sv1.ends_with(""), "" );
- static_assert ( sv1.ends_with("e"), "" );
- static_assert (!sv1.ends_with("de"), "" );
- static_assert (!sv1.ends_with("cde"), "" );
- static_assert (!sv1.ends_with("bcde"), "" );
- static_assert (!sv1.ends_with("abcde"), "" );
- static_assert (!sv1.ends_with("def"), "" );
-
- static_assert ( sv2.ends_with(""), "" );
- static_assert ( sv2.ends_with("e"), "" );
- static_assert ( sv2.ends_with("de"), "" );
- static_assert (!sv2.ends_with("cde"), "" );
- static_assert (!sv2.ends_with("bcde"), "" );
- static_assert (!sv2.ends_with("abcde"), "" );
- static_assert (!sv2.ends_with("def"), "" );
-
- static_assert ( svNot.ends_with(""), "" );
- static_assert (!svNot.ends_with("e"), "" );
- static_assert (!svNot.ends_with("de"), "" );
- static_assert (!svNot.ends_with("cde"), "" );
- static_assert (!svNot.ends_with("bcde"), "" );
- static_assert (!svNot.ends_with("abcde"), "" );
- static_assert ( svNot.ends_with("def"), "" );
- }
+ constexpr const char* s = "abcde";
+ constexpr SV sv0{};
+ constexpr SV sv1{s + 4, 1};
+ constexpr SV sv2{s + 3, 2};
+ constexpr SV svNot{"def", 3};
+
+ static_assert(sv0.ends_with(""), "");
+ static_assert(!sv0.ends_with("e"), "");
+
+ static_assert(sv1.ends_with(""), "");
+ static_assert(sv1.ends_with("e"), "");
+ static_assert(!sv1.ends_with("de"), "");
+ static_assert(!sv1.ends_with("cde"), "");
+ static_assert(!sv1.ends_with("bcde"), "");
+ static_assert(!sv1.ends_with("abcde"), "");
+ static_assert(!sv1.ends_with("def"), "");
+
+ static_assert(sv2.ends_with(""), "");
+ static_assert(sv2.ends_with("e"), "");
+ static_assert(sv2.ends_with("de"), "");
+ static_assert(!sv2.ends_with("cde"), "");
+ static_assert(!sv2.ends_with("bcde"), "");
+ static_assert(!sv2.ends_with("abcde"), "");
+ static_assert(!sv2.ends_with("def"), "");
+
+ static_assert(svNot.ends_with(""), "");
+ static_assert(!svNot.ends_with("e"), "");
+ static_assert(!svNot.ends_with("de"), "");
+ static_assert(!svNot.ends_with("cde"), "");
+ static_assert(!svNot.ends_with("bcde"), "");
+ static_assert(!svNot.ends_with("abcde"), "");
+ static_assert(svNot.ends_with("def"), "");
+ }
#endif
return 0;
diff --git a/libcxx/test/std/strings/string.view/string.view.template/ends_with.string_view.pass.cpp b/libcxx/test/std/strings/string.view/string.view.template/ends_with.string_view.pass.cpp
index 347ba7b9fd89686..82c73206af806f2 100644
--- a/libcxx/test/std/strings/string.view/string.view.template/ends_with.string_view.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.template/ends_with.string_view.pass.cpp
@@ -18,88 +18,87 @@
#include "test_macros.h"
#include "constexpr_char_traits.h"
-int main(int, char**)
-{
- {
+int main(int, char**) {
+ {
typedef std::string_view SV;
- const char *s = "abcde";
- SV sv0;
- SV sv1 { s + 4, 1 };
- SV sv2 { s + 3, 2 };
- SV sv3 { s + 2, 3 };
- SV sv4 { s + 1, 4 };
- SV sv5 { s , 5 };
- SV svNot {"def", 3 };
+ const char* s = "abcde";
+ SV sv0;
+ SV sv1{s + 4, 1};
+ SV sv2{s + 3, 2};
+ SV sv3{s + 2, 3};
+ SV sv4{s + 1, 4};
+ SV sv5{s, 5};
+ SV svNot{"def", 3};
ASSERT_NOEXCEPT(sv0.ends_with(sv0));
- assert ( sv0.ends_with(sv0));
- assert (!sv0.ends_with(sv1));
-
- assert ( sv1.ends_with(sv0));
- assert ( sv1.ends_with(sv1));
- assert (!sv1.ends_with(sv2));
- assert (!sv1.ends_with(sv3));
- assert (!sv1.ends_with(sv4));
- assert (!sv1.ends_with(sv5));
- assert (!sv1.ends_with(svNot));
-
- assert ( sv2.ends_with(sv0));
- assert ( sv2.ends_with(sv1));
- assert ( sv2.ends_with(sv2));
- assert (!sv2.ends_with(sv3));
- assert (!sv2.ends_with(sv4));
- assert (!sv2.ends_with(sv5));
- assert (!sv2.ends_with(svNot));
-
- assert ( svNot.ends_with(sv0));
- assert (!svNot.ends_with(sv1));
- assert (!svNot.ends_with(sv2));
- assert (!svNot.ends_with(sv3));
- assert (!svNot.ends_with(sv4));
- assert (!svNot.ends_with(sv5));
- assert ( svNot.ends_with(svNot));
- }
+ assert(sv0.ends_with(sv0));
+ assert(!sv0.ends_with(sv1));
+
+ assert(sv1.ends_with(sv0));
+ assert(sv1.ends_with(sv1));
+ assert(!sv1.ends_with(sv2));
+ assert(!sv1.ends_with(sv3));
+ assert(!sv1.ends_with(sv4));
+ assert(!sv1.ends_with(sv5));
+ assert(!sv1.ends_with(svNot));
+
+ assert(sv2.ends_with(sv0));
+ assert(sv2.ends_with(sv1));
+ assert(sv2.ends_with(sv2));
+ assert(!sv2.ends_with(sv3));
+ assert(!sv2.ends_with(sv4));
+ assert(!sv2.ends_with(sv5));
+ assert(!sv2.ends_with(svNot));
+
+ assert(svNot.ends_with(sv0));
+ assert(!svNot.ends_with(sv1));
+ assert(!svNot.ends_with(sv2));
+ assert(!svNot.ends_with(sv3));
+ assert(!svNot.ends_with(sv4));
+ assert(!svNot.ends_with(sv5));
+ assert(svNot.ends_with(svNot));
+ }
#if TEST_STD_VER > 11
- {
+ {
typedef std::basic_string_view<char, constexpr_char_traits<char>> SV;
- constexpr const char *s = "abcde";
- constexpr SV sv0 {};
- constexpr SV sv1 { s + 4, 1 };
- constexpr SV sv2 { s + 3, 2 };
- constexpr SV sv3 { s + 2, 3 };
- constexpr SV sv4 { s + 1, 4 };
- constexpr SV sv5 { s, 5 };
- constexpr SV svNot {"def", 3 };
-
- static_assert ( sv0.ends_with(sv0), "" );
- static_assert (!sv0.ends_with(sv1), "" );
-
- static_assert ( sv1.ends_with(sv0), "" );
- static_assert ( sv1.ends_with(sv1), "" );
- static_assert (!sv1.ends_with(sv2), "" );
- static_assert (!sv1.ends_with(sv3), "" );
- static_assert (!sv1.ends_with(sv4), "" );
- static_assert (!sv1.ends_with(sv5), "" );
- static_assert (!sv1.ends_with(svNot), "" );
-
- static_assert ( sv2.ends_with(sv0), "" );
- static_assert ( sv2.ends_with(sv1), "" );
- static_assert ( sv2.ends_with(sv2), "" );
- static_assert (!sv2.ends_with(sv3), "" );
- static_assert (!sv2.ends_with(sv4), "" );
- static_assert (!sv2.ends_with(sv5), "" );
- static_assert (!sv2.ends_with(svNot), "" );
-
- static_assert ( svNot.ends_with(sv0), "" );
- static_assert (!svNot.ends_with(sv1), "" );
- static_assert (!svNot.ends_with(sv2), "" );
- static_assert (!svNot.ends_with(sv3), "" );
- static_assert (!svNot.ends_with(sv4), "" );
- static_assert (!svNot.ends_with(sv5), "" );
- static_assert ( svNot.ends_with(svNot), "" );
- }
+ constexpr const char* s = "abcde";
+ constexpr SV sv0{};
+ constexpr SV sv1{s + 4, 1};
+ constexpr SV sv2{s + 3, 2};
+ constexpr SV sv3{s + 2, 3};
+ constexpr SV sv4{s + 1, 4};
+ constexpr SV sv5{s, 5};
+ constexpr SV svNot{"def", 3};
+
+ static_assert(sv0.ends_with(sv0), "");
+ static_assert(!sv0.ends_with(sv1), "");
+
+ static_assert(sv1.ends_with(sv0), "");
+ static_assert(sv1.ends_with(sv1), "");
+ static_assert(!sv1.ends_with(sv2), "");
+ static_assert(!sv1.ends_with(sv3), "");
+ static_assert(!sv1.ends_with(sv4), "");
+ static_assert(!sv1.ends_with(sv5), "");
+ static_assert(!sv1.ends_with(svNot), "");
+
+ static_assert(sv2.ends_with(sv0), "");
+ static_assert(sv2.ends_with(sv1), "");
+ static_assert(sv2.ends_with(sv2), "");
+ static_assert(!sv2.ends_with(sv3), "");
+ static_assert(!sv2.ends_with(sv4), "");
+ static_assert(!sv2.ends_with(sv5), "");
+ static_assert(!sv2.ends_with(svNot), "");
+
+ static_assert(svNot.ends_with(sv0), "");
+ static_assert(!svNot.ends_with(sv1), "");
+ static_assert(!svNot.ends_with(sv2), "");
+ static_assert(!svNot.ends_with(sv3), "");
+ static_assert(!svNot.ends_with(sv4), "");
+ static_assert(!svNot.ends_with(sv5), "");
+ static_assert(svNot.ends_with(svNot), "");
+ }
#endif
return 0;
diff --git a/libcxx/test/std/strings/string.view/string.view.template/starts_with.char.pass.cpp b/libcxx/test/std/strings/string.view/string.view.template/starts_with.char.pass.cpp
index 175580650f98296..0cffab6ca487740 100644
--- a/libcxx/test/std/strings/string.view/string.view.template/starts_with.char.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.template/starts_with.char.pass.cpp
@@ -18,31 +18,30 @@
#include "test_macros.h"
#include "constexpr_char_traits.h"
-int main(int, char**)
-{
- {
+int main(int, char**) {
+ {
typedef std::string_view SV;
- SV sv1 {};
- SV sv2 { "abcde", 5 };
+ SV sv1{};
+ SV sv2{"abcde", 5};
ASSERT_NOEXCEPT(sv1.starts_with('e'));
- assert (!sv1.starts_with('a'));
- assert (!sv1.starts_with('x'));
- assert ( sv2.starts_with('a'));
- assert (!sv2.starts_with('x'));
- }
+ assert(!sv1.starts_with('a'));
+ assert(!sv1.starts_with('x'));
+ assert(sv2.starts_with('a'));
+ assert(!sv2.starts_with('x'));
+ }
#if TEST_STD_VER > 11
- {
+ {
typedef std::basic_string_view<char, constexpr_char_traits<char>> SV;
- constexpr SV sv1 {};
- constexpr SV sv2 { "abcde", 5 };
- static_assert (!sv1.starts_with('a'), "" );
- static_assert (!sv1.starts_with('x'), "" );
- static_assert ( sv2.starts_with('a'), "" );
- static_assert (!sv2.starts_with('x'), "" );
- }
+ constexpr SV sv1{};
+ constexpr SV sv2{"abcde", 5};
+ static_assert(!sv1.starts_with('a'), "");
+ static_assert(!sv1.starts_with('x'), "");
+ static_assert(sv2.starts_with('a'), "");
+ static_assert(!sv2.starts_with('x'), "");
+ }
#endif
return 0;
diff --git a/libcxx/test/std/strings/string.view/string.view.template/starts_with.ptr.pass.cpp b/libcxx/test/std/strings/string.view/string.view.template/starts_with.ptr.pass.cpp
index 464606fda547a35..94582ad93efce55 100644
--- a/libcxx/test/std/strings/string.view/string.view.template/starts_with.ptr.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.template/starts_with.ptr.pass.cpp
@@ -18,82 +18,81 @@
#include "test_macros.h"
#include "constexpr_char_traits.h"
-int main(int, char**)
-{
- {
+int main(int, char**) {
+ {
typedef std::string_view SV;
- const char *s = "abcde";
- SV sv0 {};
- SV sv1 { s, 1 };
- SV sv2 { s, 2 };
- SV svNot {"def", 3 };
+ const char* s = "abcde";
+ SV sv0{};
+ SV sv1{s, 1};
+ SV sv2{s, 2};
+ SV svNot{"def", 3};
LIBCPP_ASSERT_NOEXCEPT(sv0.starts_with(""));
- assert ( sv0.starts_with(""));
- assert (!sv0.starts_with("a"));
-
- assert ( sv1.starts_with(""));
- assert ( sv1.starts_with("a"));
- assert (!sv1.starts_with("ab"));
- assert (!sv1.starts_with("abc"));
- assert (!sv1.starts_with("abcd"));
- assert (!sv1.starts_with("abcde"));
- assert (!sv1.starts_with("def"));
-
- assert ( sv2.starts_with(s + 5));
- assert ( sv2.starts_with("a"));
- assert ( sv2.starts_with("ab"));
- assert (!sv2.starts_with("abc"));
- assert (!sv2.starts_with("abcd"));
- assert (!sv2.starts_with("abcde"));
- assert (!sv2.starts_with("def"));
-
- assert ( svNot.starts_with(""));
- assert (!svNot.starts_with("a"));
- assert (!svNot.starts_with("ab"));
- assert (!svNot.starts_with("abc"));
- assert (!svNot.starts_with("abcd"));
- assert (!svNot.starts_with("abcde"));
- assert ( svNot.starts_with("def"));
- }
+ assert(sv0.starts_with(""));
+ assert(!sv0.starts_with("a"));
+
+ assert(sv1.starts_with(""));
+ assert(sv1.starts_with("a"));
+ assert(!sv1.starts_with("ab"));
+ assert(!sv1.starts_with("abc"));
+ assert(!sv1.starts_with("abcd"));
+ assert(!sv1.starts_with("abcde"));
+ assert(!sv1.starts_with("def"));
+
+ assert(sv2.starts_with(s + 5));
+ assert(sv2.starts_with("a"));
+ assert(sv2.starts_with("ab"));
+ assert(!sv2.starts_with("abc"));
+ assert(!sv2.starts_with("abcd"));
+ assert(!sv2.starts_with("abcde"));
+ assert(!sv2.starts_with("def"));
+
+ assert(svNot.starts_with(""));
+ assert(!svNot.starts_with("a"));
+ assert(!svNot.starts_with("ab"));
+ assert(!svNot.starts_with("abc"));
+ assert(!svNot.starts_with("abcd"));
+ assert(!svNot.starts_with("abcde"));
+ assert(svNot.starts_with("def"));
+ }
#if TEST_STD_VER > 11
- {
+ {
typedef std::basic_string_view<char, constexpr_char_traits<char>> SV;
- constexpr const char *s = "abcde";
- constexpr SV sv0 {};
- constexpr SV sv1 { s, 1 };
- constexpr SV sv2 { s, 2 };
- constexpr SV svNot {"def", 3 };
-
- static_assert ( sv0.starts_with(""), "" );
- static_assert (!sv0.starts_with("a"), "" );
-
- static_assert ( sv1.starts_with(""), "" );
- static_assert ( sv1.starts_with("a"), "" );
- static_assert (!sv1.starts_with("ab"), "" );
- static_assert (!sv1.starts_with("abc"), "" );
- static_assert (!sv1.starts_with("abcd"), "" );
- static_assert (!sv1.starts_with("abcde"), "" );
- static_assert (!sv1.starts_with("def"), "" );
-
- static_assert ( sv2.starts_with(s + 5), "" );
- static_assert ( sv2.starts_with("a"), "" );
- static_assert ( sv2.starts_with("ab"), "" );
- static_assert (!sv2.starts_with("abc"), "" );
- static_assert (!sv2.starts_with("abcd"), "" );
- static_assert (!sv2.starts_with("abcde"), "" );
- static_assert (!sv2.starts_with("def"), "" );
-
- static_assert ( svNot.starts_with(""), "" );
- static_assert (!svNot.starts_with("a"), "" );
- static_assert (!svNot.starts_with("ab"), "" );
- static_assert (!svNot.starts_with("abc"), "" );
- static_assert (!svNot.starts_with("abcd"), "" );
- static_assert (!svNot.starts_with("abcde"), "" );
- static_assert ( svNot.starts_with("def"), "" );
- }
+ constexpr const char* s = "abcde";
+ constexpr SV sv0{};
+ constexpr SV sv1{s, 1};
+ constexpr SV sv2{s, 2};
+ constexpr SV svNot{"def", 3};
+
+ static_assert(sv0.starts_with(""), "");
+ static_assert(!sv0.starts_with("a"), "");
+
+ static_assert(sv1.starts_with(""), "");
+ static_assert(sv1.starts_with("a"), "");
+ static_assert(!sv1.starts_with("ab"), "");
+ static_assert(!sv1.starts_with("abc"), "");
+ static_assert(!sv1.starts_with("abcd"), "");
+ static_assert(!sv1.starts_with("abcde"), "");
+ static_assert(!sv1.starts_with("def"), "");
+
+ static_assert(sv2.starts_with(s + 5), "");
+ static_assert(sv2.starts_with("a"), "");
+ static_assert(sv2.starts_with("ab"), "");
+ static_assert(!sv2.starts_with("abc"), "");
+ static_assert(!sv2.starts_with("abcd"), "");
+ static_assert(!sv2.starts_with("abcde"), "");
+ static_assert(!sv2.starts_with("def"), "");
+
+ static_assert(svNot.starts_with(""), "");
+ static_assert(!svNot.starts_with("a"), "");
+ static_assert(!svNot.starts_with("ab"), "");
+ static_assert(!svNot.starts_with("abc"), "");
+ static_assert(!svNot.starts_with("abcd"), "");
+ static_assert(!svNot.starts_with("abcde"), "");
+ static_assert(svNot.starts_with("def"), "");
+ }
#endif
return 0;
diff --git a/libcxx/test/std/strings/string.view/string.view.template/starts_with.string_view.pass.cpp b/libcxx/test/std/strings/string.view/string.view.template/starts_with.string_view.pass.cpp
index ebeacaadf2c61c1..dcc42bb110b1131 100644
--- a/libcxx/test/std/strings/string.view/string.view.template/starts_with.string_view.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.template/starts_with.string_view.pass.cpp
@@ -18,88 +18,87 @@
#include "test_macros.h"
#include "constexpr_char_traits.h"
-int main(int, char**)
-{
- {
+int main(int, char**) {
+ {
typedef std::string_view SV;
- const char *s = "abcde";
- SV sv0 {};
- SV sv1 { s, 1 };
- SV sv2 { s, 2 };
- SV sv3 { s, 3 };
- SV sv4 { s, 4 };
- SV sv5 { s, 5 };
- SV svNot {"def", 3 };
+ const char* s = "abcde";
+ SV sv0{};
+ SV sv1{s, 1};
+ SV sv2{s, 2};
+ SV sv3{s, 3};
+ SV sv4{s, 4};
+ SV sv5{s, 5};
+ SV svNot{"def", 3};
ASSERT_NOEXCEPT(sv0.starts_with(sv0));
- assert ( sv0.starts_with(sv0));
- assert (!sv0.starts_with(sv1));
-
- assert ( sv1.starts_with(sv0));
- assert ( sv1.starts_with(sv1));
- assert (!sv1.starts_with(sv2));
- assert (!sv1.starts_with(sv3));
- assert (!sv1.starts_with(sv4));
- assert (!sv1.starts_with(sv5));
- assert (!sv1.starts_with(svNot));
-
- assert ( sv2.starts_with(sv0));
- assert ( sv2.starts_with(sv1));
- assert ( sv2.starts_with(sv2));
- assert (!sv2.starts_with(sv3));
- assert (!sv2.starts_with(sv4));
- assert (!sv2.starts_with(sv5));
- assert (!sv2.starts_with(svNot));
-
- assert ( svNot.starts_with(sv0));
- assert (!svNot.starts_with(sv1));
- assert (!svNot.starts_with(sv2));
- assert (!svNot.starts_with(sv3));
- assert (!svNot.starts_with(sv4));
- assert (!svNot.starts_with(sv5));
- assert ( svNot.starts_with(svNot));
- }
+ assert(sv0.starts_with(sv0));
+ assert(!sv0.starts_with(sv1));
+
+ assert(sv1.starts_with(sv0));
+ assert(sv1.starts_with(sv1));
+ assert(!sv1.starts_with(sv2));
+ assert(!sv1.starts_with(sv3));
+ assert(!sv1.starts_with(sv4));
+ assert(!sv1.starts_with(sv5));
+ assert(!sv1.starts_with(svNot));
+
+ assert(sv2.starts_with(sv0));
+ assert(sv2.starts_with(sv1));
+ assert(sv2.starts_with(sv2));
+ assert(!sv2.starts_with(sv3));
+ assert(!sv2.starts_with(sv4));
+ assert(!sv2.starts_with(sv5));
+ assert(!sv2.starts_with(svNot));
+
+ assert(svNot.starts_with(sv0));
+ assert(!svNot.starts_with(sv1));
+ assert(!svNot.starts_with(sv2));
+ assert(!svNot.starts_with(sv3));
+ assert(!svNot.starts_with(sv4));
+ assert(!svNot.starts_with(sv5));
+ assert(svNot.starts_with(svNot));
+ }
#if TEST_STD_VER > 11
- {
+ {
typedef std::basic_string_view<char, constexpr_char_traits<char>> SV;
- constexpr const char *s = "abcde";
- constexpr SV sv0 {};
- constexpr SV sv1 { s, 1 };
- constexpr SV sv2 { s, 2 };
- constexpr SV sv3 { s, 3 };
- constexpr SV sv4 { s, 4 };
- constexpr SV sv5 { s, 5 };
- constexpr SV svNot {"def", 3 };
-
- static_assert ( sv0.starts_with(sv0), "" );
- static_assert (!sv0.starts_with(sv1), "" );
-
- static_assert ( sv1.starts_with(sv0), "" );
- static_assert ( sv1.starts_with(sv1), "" );
- static_assert (!sv1.starts_with(sv2), "" );
- static_assert (!sv1.starts_with(sv3), "" );
- static_assert (!sv1.starts_with(sv4), "" );
- static_assert (!sv1.starts_with(sv5), "" );
- static_assert (!sv1.starts_with(svNot), "" );
-
- static_assert ( sv2.starts_with(sv0), "" );
- static_assert ( sv2.starts_with(sv1), "" );
- static_assert ( sv2.starts_with(sv2), "" );
- static_assert (!sv2.starts_with(sv3), "" );
- static_assert (!sv2.starts_with(sv4), "" );
- static_assert (!sv2.starts_with(sv5), "" );
- static_assert (!sv2.starts_with(svNot), "" );
-
- static_assert ( svNot.starts_with(sv0), "" );
- static_assert (!svNot.starts_with(sv1), "" );
- static_assert (!svNot.starts_with(sv2), "" );
- static_assert (!svNot.starts_with(sv3), "" );
- static_assert (!svNot.starts_with(sv4), "" );
- static_assert (!svNot.starts_with(sv5), "" );
- static_assert ( svNot.starts_with(svNot), "" );
- }
+ constexpr const char* s = "abcde";
+ constexpr SV sv0{};
+ constexpr SV sv1{s, 1};
+ constexpr SV sv2{s, 2};
+ constexpr SV sv3{s, 3};
+ constexpr SV sv4{s, 4};
+ constexpr SV sv5{s, 5};
+ constexpr SV svNot{"def", 3};
+
+ static_assert(sv0.starts_with(sv0), "");
+ static_assert(!sv0.starts_with(sv1), "");
+
+ static_assert(sv1.starts_with(sv0), "");
+ static_assert(sv1.starts_with(sv1), "");
+ static_assert(!sv1.starts_with(sv2), "");
+ static_assert(!sv1.starts_with(sv3), "");
+ static_assert(!sv1.starts_with(sv4), "");
+ static_assert(!sv1.starts_with(sv5), "");
+ static_assert(!sv1.starts_with(svNot), "");
+
+ static_assert(sv2.starts_with(sv0), "");
+ static_assert(sv2.starts_with(sv1), "");
+ static_assert(sv2.starts_with(sv2), "");
+ static_assert(!sv2.starts_with(sv3), "");
+ static_assert(!sv2.starts_with(sv4), "");
+ static_assert(!sv2.starts_with(sv5), "");
+ static_assert(!sv2.starts_with(svNot), "");
+
+ static_assert(svNot.starts_with(sv0), "");
+ static_assert(!svNot.starts_with(sv1), "");
+ static_assert(!svNot.starts_with(sv2), "");
+ static_assert(!svNot.starts_with(sv3), "");
+ static_assert(!svNot.starts_with(sv4), "");
+ static_assert(!svNot.starts_with(sv5), "");
+ static_assert(svNot.starts_with(svNot), "");
+ }
#endif
return 0;
diff --git a/libcxx/test/std/strings/string.view/string_view.literals/literal.pass.cpp b/libcxx/test/std/strings/string.view/string_view.literals/literal.pass.cpp
index 74ae456e585b09e..9448756a5638b77 100644
--- a/libcxx/test/std/strings/string.view/string_view.literals/literal.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string_view.literals/literal.pass.cpp
@@ -16,81 +16,101 @@
#include "test_macros.h"
#ifndef TEST_HAS_NO_CHAR8_T
- typedef std::u8string_view u8string_view;
+typedef std::u8string_view u8string_view;
#else
- typedef std::string_view u8string_view;
+typedef std::string_view u8string_view;
#endif
int main(int, char**) {
- {
- using namespace std::literals::string_view_literals;
+ {
+ using namespace std::literals::string_view_literals;
- ASSERT_SAME_TYPE(decltype( "Hi"sv), std::string_view);
- ASSERT_SAME_TYPE(decltype(u8"Hi"sv), u8string_view);
+ ASSERT_SAME_TYPE(decltype("Hi"sv), std::string_view);
+ ASSERT_SAME_TYPE(decltype(u8"Hi"sv), u8string_view);
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- ASSERT_SAME_TYPE(decltype( L"Hi"sv), std::wstring_view);
+ ASSERT_SAME_TYPE(decltype(L"Hi"sv), std::wstring_view);
#endif
- ASSERT_SAME_TYPE(decltype( u"Hi"sv), std::u16string_view);
- ASSERT_SAME_TYPE(decltype( U"Hi"sv), std::u32string_view);
+ ASSERT_SAME_TYPE(decltype(u"Hi"sv), std::u16string_view);
+ ASSERT_SAME_TYPE(decltype(U"Hi"sv), std::u32string_view);
- std::string_view foo;
+ std::string_view foo;
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- std::wstring_view Lfoo;
+ std::wstring_view Lfoo;
#endif
- u8string_view u8foo;
- std::u16string_view ufoo;
- std::u32string_view Ufoo;
+ u8string_view u8foo;
+ std::u16string_view ufoo;
+ std::u32string_view Ufoo;
- foo = ""sv; assert( foo.size() == 0);
- u8foo = u8""sv; assert(u8foo.size() == 0);
+ foo = ""sv;
+ assert(foo.size() == 0);
+ u8foo = u8""sv;
+ assert(u8foo.size() == 0);
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- Lfoo = L""sv; assert( Lfoo.size() == 0);
+ Lfoo = L""sv;
+ assert(Lfoo.size() == 0);
#endif
- ufoo = u""sv; assert( ufoo.size() == 0);
- Ufoo = U""sv; assert( Ufoo.size() == 0);
+ ufoo = u""sv;
+ assert(ufoo.size() == 0);
+ Ufoo = U""sv;
+ assert(Ufoo.size() == 0);
- foo = " "sv; assert( foo.size() == 1);
- u8foo = u8" "sv; assert(u8foo.size() == 1);
+ foo = " "sv;
+ assert(foo.size() == 1);
+ u8foo = u8" "sv;
+ assert(u8foo.size() == 1);
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- Lfoo = L" "sv; assert( Lfoo.size() == 1);
+ Lfoo = L" "sv;
+ assert(Lfoo.size() == 1);
#endif
- ufoo = u" "sv; assert( ufoo.size() == 1);
- Ufoo = U" "sv; assert( Ufoo.size() == 1);
+ ufoo = u" "sv;
+ assert(ufoo.size() == 1);
+ Ufoo = U" "sv;
+ assert(Ufoo.size() == 1);
- foo = "ABC"sv; assert( foo == "ABC"); assert( foo == std::string_view ( "ABC"));
- u8foo = u8"ABC"sv; assert(u8foo == u8"ABC"); assert(u8foo == u8string_view (u8"ABC"));
+ foo = "ABC"sv;
+ assert(foo == "ABC");
+ assert(foo == std::string_view("ABC"));
+ u8foo = u8"ABC"sv;
+ assert(u8foo == u8"ABC");
+ assert(u8foo == u8string_view(u8"ABC"));
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- Lfoo = L"ABC"sv; assert( Lfoo == L"ABC"); assert( Lfoo == std::wstring_view ( L"ABC"));
+ Lfoo = L"ABC"sv;
+ assert(Lfoo == L"ABC");
+ assert(Lfoo == std::wstring_view(L"ABC"));
#endif
- ufoo = u"ABC"sv; assert( ufoo == u"ABC"); assert( ufoo == std::u16string_view( u"ABC"));
- Ufoo = U"ABC"sv; assert( Ufoo == U"ABC"); assert( Ufoo == std::u32string_view( U"ABC"));
+ ufoo = u"ABC"sv;
+ assert(ufoo == u"ABC");
+ assert(ufoo == std::u16string_view(u"ABC"));
+ Ufoo = U"ABC"sv;
+ assert(Ufoo == U"ABC");
+ assert(Ufoo == std::u32string_view(U"ABC"));
- static_assert( "ABC"sv.size() == 3, "");
- static_assert(u8"ABC"sv.size() == 3, "");
+ static_assert("ABC"sv.size() == 3, "");
+ static_assert(u8"ABC"sv.size() == 3, "");
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- static_assert( L"ABC"sv.size() == 3, "");
+ static_assert(L"ABC"sv.size() == 3, "");
#endif
- static_assert( u"ABC"sv.size() == 3, "");
- static_assert( U"ABC"sv.size() == 3, "");
+ static_assert(u"ABC"sv.size() == 3, "");
+ static_assert(U"ABC"sv.size() == 3, "");
- ASSERT_NOEXCEPT( "ABC"sv);
- ASSERT_NOEXCEPT(u8"ABC"sv);
+ ASSERT_NOEXCEPT("ABC"sv);
+ ASSERT_NOEXCEPT(u8"ABC"sv);
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- ASSERT_NOEXCEPT( L"ABC"sv);
+ ASSERT_NOEXCEPT(L"ABC"sv);
#endif
- ASSERT_NOEXCEPT( u"ABC"sv);
- ASSERT_NOEXCEPT( U"ABC"sv);
- }
- {
- using namespace std::literals;
- std::string_view foo = ""sv;
- assert(foo.length() == 0);
- }
- {
- using namespace std;
- std::string_view foo = ""sv;
- assert(foo.length() == 0);
- }
+ ASSERT_NOEXCEPT(u"ABC"sv);
+ ASSERT_NOEXCEPT(U"ABC"sv);
+ }
+ {
+ using namespace std::literals;
+ std::string_view foo = ""sv;
+ assert(foo.length() == 0);
+ }
+ {
+ using namespace std;
+ std::string_view foo = ""sv;
+ assert(foo.length() == 0);
+ }
- return 0;
+ return 0;
}
diff --git a/libcxx/test/std/strings/string.view/traits_mismatch.compile.fail.cpp b/libcxx/test/std/strings/string.view/traits_mismatch.compile.fail.cpp
index 5075642cc50abdf..65acb81d22efd7e 100644
--- a/libcxx/test/std/strings/string.view/traits_mismatch.compile.fail.cpp
+++ b/libcxx/test/std/strings/string.view/traits_mismatch.compile.fail.cpp
@@ -13,9 +13,8 @@
#include <string_view>
-int main(int, char**)
-{
- std::basic_string_view<char, std::char_traits<wchar_t>> s;
+int main(int, char**) {
+ std::basic_string_view<char, std::char_traits<wchar_t>> s;
return 0;
}
diff --git a/libcxx/test/std/strings/string.view/types.pass.cpp b/libcxx/test/std/strings/string.view/types.pass.cpp
index 25dc54d25740941..f978f1a83fccbee 100644
--- a/libcxx/test/std/strings/string.view/types.pass.cpp
+++ b/libcxx/test/std/strings/string.view/types.pass.cpp
@@ -39,47 +39,41 @@
#include "test_macros.h"
template <class Traits>
-void
-test()
-{
- typedef std::basic_string_view<typename Traits::char_type, Traits> S;
+void test() {
+ typedef std::basic_string_view<typename Traits::char_type, Traits> S;
- static_assert((std::is_same<typename S::traits_type, Traits>::value), "");
- static_assert((std::is_same<typename S::value_type, typename Traits::char_type>::value), "");
- static_assert((std::is_same<typename S::size_type, std::size_t>::value), "");
- static_assert((std::is_same<typename S::
diff erence_type, std::ptr
diff _t>::value), "");
- static_assert((std::is_same<typename S::reference, typename S::value_type&>::value), "");
- static_assert((std::is_same<typename S::const_reference, const typename S::value_type&>::value), "");
- static_assert((std::is_same<typename S::pointer, typename S::value_type*>::value), "");
- static_assert((std::is_same<typename S::const_pointer, const typename S::value_type*>::value), "");
- static_assert((std::is_same<
- typename std::iterator_traits<typename S::iterator>::iterator_category,
- std::random_access_iterator_tag>::value), "");
- static_assert((std::is_same<
- typename std::iterator_traits<typename S::const_iterator>::iterator_category,
- std::random_access_iterator_tag>::value), "");
- static_assert((std::is_same<
- typename S::reverse_iterator,
- std::reverse_iterator<typename S::iterator> >::value), "");
- static_assert((std::is_same<
- typename S::const_reverse_iterator,
- std::reverse_iterator<typename S::const_iterator> >::value), "");
- static_assert(S::npos == -1, "");
- static_assert((std::is_same<typename S::iterator, typename S::const_iterator>::value), "");
- static_assert((std::is_same<typename S::reverse_iterator, typename S::const_reverse_iterator>::value), "");
+ static_assert((std::is_same<typename S::traits_type, Traits>::value), "");
+ static_assert((std::is_same<typename S::value_type, typename Traits::char_type>::value), "");
+ static_assert((std::is_same<typename S::size_type, std::size_t>::value), "");
+ static_assert((std::is_same<typename S::
diff erence_type, std::ptr
diff _t>::value), "");
+ static_assert((std::is_same<typename S::reference, typename S::value_type&>::value), "");
+ static_assert((std::is_same<typename S::const_reference, const typename S::value_type&>::value), "");
+ static_assert((std::is_same<typename S::pointer, typename S::value_type*>::value), "");
+ static_assert((std::is_same<typename S::const_pointer, const typename S::value_type*>::value), "");
+ static_assert((std::is_same< typename std::iterator_traits<typename S::iterator>::iterator_category,
+ std::random_access_iterator_tag>::value),
+ "");
+ static_assert((std::is_same< typename std::iterator_traits<typename S::const_iterator>::iterator_category,
+ std::random_access_iterator_tag>::value),
+ "");
+ static_assert((std::is_same< typename S::reverse_iterator, std::reverse_iterator<typename S::iterator> >::value), "");
+ static_assert(
+ (std::is_same< typename S::const_reverse_iterator, std::reverse_iterator<typename S::const_iterator> >::value),
+ "");
+ static_assert(S::npos == -1, "");
+ static_assert((std::is_same<typename S::iterator, typename S::const_iterator>::value), "");
+ static_assert((std::is_same<typename S::reverse_iterator, typename S::const_reverse_iterator>::value), "");
}
-int main(int, char**)
-{
- test<std::char_traits<char> >();
+int main(int, char**) {
+ test<std::char_traits<char> >();
#ifndef TEST_HAS_NO_WIDE_CHARACTERS
- test<std::char_traits<wchar_t> >();
+ test<std::char_traits<wchar_t> >();
#endif
#ifndef TEST_HAS_NO_CHAR8_T
- test<std::char_traits<char8_t> >();
+ test<std::char_traits<char8_t> >();
#endif
- static_assert((std::is_same<std::basic_string_view<char>::traits_type,
- std::char_traits<char> >::value), "");
+ static_assert((std::is_same<std::basic_string_view<char>::traits_type, std::char_traits<char> >::value), "");
return 0;
}
diff --git a/libcxx/test/std/strings/strings.erasure/erase.pass.cpp b/libcxx/test/std/strings/strings.erasure/erase.pass.cpp
index ed7dc3cc5fbea30..35139dd6ad4076c 100644
--- a/libcxx/test/std/strings/strings.erasure/erase.pass.cpp
+++ b/libcxx/test/std/strings/strings.erasure/erase.pass.cpp
@@ -30,9 +30,7 @@ void test0(S s, U val, S expected, std::size_t expected_erased_count) {
}
template <class S>
-void test()
-{
-
+void test() {
test0(S(""), 'a', S(""), 0);
test0(S("a"), 'a', S(""), 1);
@@ -66,11 +64,10 @@ void test()
test0(S("aba"), opt('c'), S("aba"), 0);
}
-int main(int, char**)
-{
- test<std::string>();
- test<std::basic_string<char, std::char_traits<char>, min_allocator<char>>> ();
- test<std::basic_string<char, std::char_traits<char>, test_allocator<char>>> ();
+int main(int, char**) {
+ test<std::string>();
+ test<std::basic_string<char, std::char_traits<char>, min_allocator<char>>>();
+ test<std::basic_string<char, std::char_traits<char>, test_allocator<char>>>();
return 0;
}
diff --git a/libcxx/test/std/strings/strings.erasure/erase_if.pass.cpp b/libcxx/test/std/strings/strings.erasure/erase_if.pass.cpp
index b098f88208de864..5bedd394ee57811 100644
--- a/libcxx/test/std/strings/strings.erasure/erase_if.pass.cpp
+++ b/libcxx/test/std/strings/strings.erasure/erase_if.pass.cpp
@@ -29,49 +29,47 @@ void test0(S s, Pred p, S expected, std::size_t expected_erased_count) {
}
template <typename S>
-void test()
-{
- auto isA = [](auto ch) { return ch == 'a';};
- auto isB = [](auto ch) { return ch == 'b';};
- auto isC = [](auto ch) { return ch == 'c';};
- auto isD = [](auto ch) { return ch == 'd';};
- auto True = [](auto) { return true; };
- auto False = [](auto) { return false; };
+void test() {
+ auto isA = [](auto ch) { return ch == 'a'; };
+ auto isB = [](auto ch) { return ch == 'b'; };
+ auto isC = [](auto ch) { return ch == 'c'; };
+ auto isD = [](auto ch) { return ch == 'd'; };
+ auto True = [](auto) { return true; };
+ auto False = [](auto) { return false; };
- test0(S(""), isA, S(""), 0);
+ test0(S(""), isA, S(""), 0);
- test0(S("a"), isA, S(""), 1);
- test0(S("a"), isB, S("a"), 0);
+ test0(S("a"), isA, S(""), 1);
+ test0(S("a"), isB, S("a"), 0);
- test0(S("ab"), isA, S("b"), 1);
- test0(S("ab"), isB, S("a"), 1);
- test0(S("ab"), isC, S("ab"), 0);
- test0(S("aa"), isA, S(""), 2);
- test0(S("aa"), isC, S("aa"), 0);
+ test0(S("ab"), isA, S("b"), 1);
+ test0(S("ab"), isB, S("a"), 1);
+ test0(S("ab"), isC, S("ab"), 0);
+ test0(S("aa"), isA, S(""), 2);
+ test0(S("aa"), isC, S("aa"), 0);
- test0(S("abc"), isA, S("bc"), 1);
- test0(S("abc"), isB, S("ac"), 1);
- test0(S("abc"), isC, S("ab"), 1);
- test0(S("abc"), isD, S("abc"), 0);
+ test0(S("abc"), isA, S("bc"), 1);
+ test0(S("abc"), isB, S("ac"), 1);
+ test0(S("abc"), isC, S("ab"), 1);
+ test0(S("abc"), isD, S("abc"), 0);
- test0(S("aab"), isA, S("b"), 2);
- test0(S("aab"), isB, S("aa"), 1);
- test0(S("aab"), isC, S("aab"), 0);
- test0(S("abb"), isA, S("bb"), 1);
- test0(S("abb"), isB, S("a"), 2);
- test0(S("abb"), isC, S("abb"), 0);
- test0(S("aaa"), isA, S(""), 3);
- test0(S("aaa"), isB, S("aaa"), 0);
+ test0(S("aab"), isA, S("b"), 2);
+ test0(S("aab"), isB, S("aa"), 1);
+ test0(S("aab"), isC, S("aab"), 0);
+ test0(S("abb"), isA, S("bb"), 1);
+ test0(S("abb"), isB, S("a"), 2);
+ test0(S("abb"), isC, S("abb"), 0);
+ test0(S("aaa"), isA, S(""), 3);
+ test0(S("aaa"), isB, S("aaa"), 0);
- test0(S("aba"), False, S("aba"), 0);
- test0(S("aba"), True, S(""), 3);
+ test0(S("aba"), False, S("aba"), 0);
+ test0(S("aba"), True, S(""), 3);
}
-int main(int, char**)
-{
- test<std::string>();
- test<std::basic_string<char, std::char_traits<char>, min_allocator<char>>> ();
- test<std::basic_string<char, std::char_traits<char>, test_allocator<char>>> ();
+int main(int, char**) {
+ test<std::string>();
+ test<std::basic_string<char, std::char_traits<char>, min_allocator<char>>>();
+ test<std::basic_string<char, std::char_traits<char>, test_allocator<char>>>();
return 0;
}
diff --git a/libcxx/test/std/strings/strings.general/nothing_to_do.pass.cpp b/libcxx/test/std/strings/strings.general/nothing_to_do.pass.cpp
index 1f764da05d6b5f5..3e0d2a6570f42de 100644
--- a/libcxx/test/std/strings/strings.general/nothing_to_do.pass.cpp
+++ b/libcxx/test/std/strings/strings.general/nothing_to_do.pass.cpp
@@ -6,8 +6,4 @@
//
//===----------------------------------------------------------------------===//
-int main(int, char**)
-{
-
- return 0;
-}
+int main(int, char**) { return 0; }
More information about the libcxx-commits
mailing list