re2 1.23.0 → 1.23.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -0
- package/binding.gyp +3 -2
- package/package.json +5 -5
- package/vendor/abseil-cpp/CMake/AbseilDll.cmake +25 -4
- package/vendor/abseil-cpp/CMake/AbseilHelpers.cmake +6 -1
- package/vendor/abseil-cpp/CMakeLists.txt +2 -2
- package/vendor/abseil-cpp/MODULE.bazel +2 -2
- package/vendor/abseil-cpp/absl/algorithm/BUILD.bazel +0 -1
- package/vendor/abseil-cpp/absl/algorithm/CMakeLists.txt +0 -2
- package/vendor/abseil-cpp/absl/algorithm/container.h +191 -140
- package/vendor/abseil-cpp/absl/algorithm/container_test.cc +818 -0
- package/vendor/abseil-cpp/absl/base/BUILD.bazel +44 -5
- package/vendor/abseil-cpp/absl/base/CMakeLists.txt +42 -3
- package/vendor/abseil-cpp/absl/base/attributes.h +5 -1
- package/vendor/abseil-cpp/absl/base/call_once_test.cc +10 -10
- package/vendor/abseil-cpp/absl/base/casts.cc +61 -0
- package/vendor/abseil-cpp/absl/base/casts.h +128 -2
- package/vendor/abseil-cpp/absl/base/casts_test.cc +151 -0
- package/vendor/abseil-cpp/absl/base/config.h +13 -37
- package/vendor/abseil-cpp/absl/base/internal/dynamic_annotations.h +1 -1
- package/vendor/abseil-cpp/absl/base/internal/iterator_traits.h +4 -0
- package/vendor/abseil-cpp/absl/base/internal/nullability_traits.h +71 -0
- package/vendor/abseil-cpp/absl/base/internal/nullability_traits_test.cc +98 -0
- package/vendor/abseil-cpp/absl/base/internal/raw_logging.cc +3 -4
- package/vendor/abseil-cpp/absl/base/internal/spinlock.cc +13 -7
- package/vendor/abseil-cpp/absl/base/internal/spinlock.h +16 -11
- package/vendor/abseil-cpp/absl/base/internal/strerror_test.cc +2 -1
- package/vendor/abseil-cpp/absl/base/internal/sysinfo.cc +0 -9
- package/vendor/abseil-cpp/absl/base/internal/sysinfo_test.cc +0 -6
- package/vendor/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +1 -1
- package/vendor/abseil-cpp/absl/base/internal/unscaledcycleclock_config.h +1 -1
- package/vendor/abseil-cpp/absl/base/macros.h +40 -17
- package/vendor/abseil-cpp/absl/base/nullability.h +1 -1
- package/vendor/abseil-cpp/absl/base/optimization.h +1 -3
- package/vendor/abseil-cpp/absl/base/options.h +1 -27
- package/vendor/abseil-cpp/absl/base/spinlock_test_common.cc +5 -8
- package/vendor/abseil-cpp/absl/cleanup/cleanup.h +4 -0
- package/vendor/abseil-cpp/absl/container/BUILD.bazel +195 -2
- package/vendor/abseil-cpp/absl/container/CMakeLists.txt +136 -2
- package/vendor/abseil-cpp/absl/container/btree_map.h +56 -6
- package/vendor/abseil-cpp/absl/container/btree_set.h +52 -6
- package/vendor/abseil-cpp/absl/container/btree_test.cc +107 -1
- package/vendor/abseil-cpp/absl/container/chunked_queue.h +755 -0
- package/vendor/abseil-cpp/absl/container/chunked_queue_benchmark.cc +386 -0
- package/vendor/abseil-cpp/absl/container/chunked_queue_test.cc +768 -0
- package/vendor/abseil-cpp/absl/container/fixed_array.h +4 -6
- package/vendor/abseil-cpp/absl/container/flat_hash_map.h +16 -6
- package/vendor/abseil-cpp/absl/container/flat_hash_map_test.cc +1 -2
- package/vendor/abseil-cpp/absl/container/flat_hash_set.h +16 -6
- package/vendor/abseil-cpp/absl/container/flat_hash_set_test.cc +0 -2
- package/vendor/abseil-cpp/absl/container/inlined_vector.h +12 -4
- package/vendor/abseil-cpp/absl/container/inlined_vector_test.cc +21 -0
- package/vendor/abseil-cpp/absl/container/internal/btree_container.h +14 -5
- package/vendor/abseil-cpp/absl/container/internal/chunked_queue.h +173 -0
- package/vendor/abseil-cpp/absl/container/internal/common.h +51 -0
- package/vendor/abseil-cpp/absl/container/internal/container_memory.h +7 -1
- package/vendor/abseil-cpp/absl/container/internal/container_memory_test.cc +11 -0
- package/vendor/abseil-cpp/absl/container/internal/hash_generator_testing.cc +0 -2
- package/vendor/abseil-cpp/absl/container/internal/hash_generator_testing.h +1 -2
- package/vendor/abseil-cpp/absl/container/internal/hash_policy_testing.h +0 -14
- package/vendor/abseil-cpp/absl/container/internal/hashtable_control_bytes.h +11 -8
- package/vendor/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +3 -4
- package/vendor/abseil-cpp/absl/container/internal/hashtablez_sampler.h +23 -6
- package/vendor/abseil-cpp/absl/container/internal/hashtablez_sampler_test.cc +31 -15
- package/vendor/abseil-cpp/absl/container/internal/heterogeneous_lookup_testing.h +80 -0
- package/vendor/abseil-cpp/absl/container/internal/inlined_vector.h +4 -12
- package/vendor/abseil-cpp/absl/container/internal/raw_hash_map.h +35 -10
- package/vendor/abseil-cpp/absl/container/internal/raw_hash_set.cc +149 -23
- package/vendor/abseil-cpp/absl/container/internal/raw_hash_set.h +120 -126
- package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_allocator_test.cc +4 -0
- package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_benchmark.cc +8 -0
- package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_probe_benchmark.cc +14 -59
- package/vendor/abseil-cpp/absl/container/internal/raw_hash_set_test.cc +111 -22
- package/vendor/abseil-cpp/absl/container/internal/unordered_map_constructor_test.h +53 -112
- package/vendor/abseil-cpp/absl/container/internal/unordered_map_lookup_test.h +10 -15
- package/vendor/abseil-cpp/absl/container/internal/unordered_map_members_test.h +3 -3
- package/vendor/abseil-cpp/absl/container/internal/unordered_map_modifiers_test.h +45 -61
- package/vendor/abseil-cpp/absl/container/internal/unordered_set_constructor_test.h +53 -112
- package/vendor/abseil-cpp/absl/container/internal/unordered_set_lookup_test.h +6 -9
- package/vendor/abseil-cpp/absl/container/internal/unordered_set_members_test.h +3 -3
- package/vendor/abseil-cpp/absl/container/internal/unordered_set_modifiers_test.h +25 -31
- package/vendor/abseil-cpp/absl/container/linked_hash_map.h +666 -0
- package/vendor/abseil-cpp/absl/container/linked_hash_map_benchmark.cc +140 -0
- package/vendor/abseil-cpp/absl/container/linked_hash_map_test.cc +987 -0
- package/vendor/abseil-cpp/absl/container/linked_hash_set.h +527 -0
- package/vendor/abseil-cpp/absl/container/linked_hash_set_benchmark.cc +84 -0
- package/vendor/abseil-cpp/absl/container/linked_hash_set_test.cc +947 -0
- package/vendor/abseil-cpp/absl/container/node_hash_map.h +17 -6
- package/vendor/abseil-cpp/absl/container/node_hash_set.h +16 -5
- package/vendor/abseil-cpp/absl/container/node_hash_set_test.cc +1 -2
- package/vendor/abseil-cpp/absl/copts/GENERATED_AbseilCopts.cmake +79 -0
- package/vendor/abseil-cpp/absl/copts/GENERATED_copts.bzl +79 -0
- package/vendor/abseil-cpp/absl/copts/copts.py +17 -4
- package/vendor/abseil-cpp/absl/crc/internal/crc_x86_arm_combined.cc +67 -13
- package/vendor/abseil-cpp/absl/crc/internal/non_temporal_arm_intrinsics.h +4 -2
- package/vendor/abseil-cpp/absl/debugging/BUILD.bazel +31 -0
- package/vendor/abseil-cpp/absl/debugging/CMakeLists.txt +34 -0
- package/vendor/abseil-cpp/absl/debugging/failure_signal_handler.cc +2 -2
- package/vendor/abseil-cpp/absl/debugging/internal/borrowed_fixup_buffer.cc +118 -0
- package/vendor/abseil-cpp/absl/debugging/internal/borrowed_fixup_buffer.h +71 -0
- package/vendor/abseil-cpp/absl/debugging/internal/borrowed_fixup_buffer_test.cc +97 -0
- package/vendor/abseil-cpp/absl/debugging/internal/demangle.cc +2 -2
- package/vendor/abseil-cpp/absl/debugging/internal/elf_mem_image.h +4 -4
- package/vendor/abseil-cpp/absl/debugging/internal/examine_stack.cc +4 -0
- package/vendor/abseil-cpp/absl/debugging/internal/examine_stack.h +7 -0
- package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +1 -1
- package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_emscripten-inl.inc +0 -7
- package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +3 -2
- package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_riscv-inl.inc +2 -1
- package/vendor/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc +8 -3
- package/vendor/abseil-cpp/absl/debugging/internal/symbolize.h +2 -2
- package/vendor/abseil-cpp/absl/debugging/stacktrace.cc +35 -67
- package/vendor/abseil-cpp/absl/debugging/stacktrace.h +3 -0
- package/vendor/abseil-cpp/absl/debugging/stacktrace_benchmark.cc +24 -1
- package/vendor/abseil-cpp/absl/debugging/stacktrace_test.cc +39 -15
- package/vendor/abseil-cpp/absl/debugging/symbolize_emscripten.inc +4 -17
- package/vendor/abseil-cpp/absl/debugging/symbolize_test.cc +25 -40
- package/vendor/abseil-cpp/absl/debugging/symbolize_win32.inc +2 -4
- package/vendor/abseil-cpp/absl/flags/BUILD.bazel +1 -0
- package/vendor/abseil-cpp/absl/flags/declare.h +9 -0
- package/vendor/abseil-cpp/absl/flags/flag.h +2 -1
- package/vendor/abseil-cpp/absl/flags/internal/commandlineflag.h +1 -1
- package/vendor/abseil-cpp/absl/flags/internal/flag.cc +3 -2
- package/vendor/abseil-cpp/absl/flags/marshalling.cc +1 -16
- package/vendor/abseil-cpp/absl/flags/parse.cc +4 -2
- package/vendor/abseil-cpp/absl/flags/parse_test.cc +1 -1
- package/vendor/abseil-cpp/absl/flags/reflection.cc +4 -3
- package/vendor/abseil-cpp/absl/functional/BUILD.bazel +4 -0
- package/vendor/abseil-cpp/absl/functional/CMakeLists.txt +4 -0
- package/vendor/abseil-cpp/absl/functional/any_invocable.h +3 -1
- package/vendor/abseil-cpp/absl/functional/function_ref.h +125 -20
- package/vendor/abseil-cpp/absl/functional/function_ref_test.cc +122 -9
- package/vendor/abseil-cpp/absl/functional/internal/any_invocable.h +13 -2
- package/vendor/abseil-cpp/absl/functional/internal/function_ref.h +42 -4
- package/vendor/abseil-cpp/absl/hash/hash_benchmark.cc +11 -0
- package/vendor/abseil-cpp/absl/hash/hash_test.cc +5 -2
- package/vendor/abseil-cpp/absl/hash/internal/hash.cc +184 -53
- package/vendor/abseil-cpp/absl/hash/internal/hash.h +116 -10
- package/vendor/abseil-cpp/absl/hash/internal/low_level_hash_test.cc +43 -4
- package/vendor/abseil-cpp/absl/log/BUILD.bazel +2 -0
- package/vendor/abseil-cpp/absl/log/CMakeLists.txt +35 -1
- package/vendor/abseil-cpp/absl/log/check_test_impl.inc +59 -4
- package/vendor/abseil-cpp/absl/log/die_if_null.cc +3 -1
- package/vendor/abseil-cpp/absl/log/die_if_null.h +24 -3
- package/vendor/abseil-cpp/absl/log/internal/BUILD.bazel +31 -1
- package/vendor/abseil-cpp/absl/log/internal/check_impl.h +2 -1
- package/vendor/abseil-cpp/absl/log/internal/check_op.cc +3 -1
- package/vendor/abseil-cpp/absl/log/internal/check_op.h +44 -18
- package/vendor/abseil-cpp/absl/log/internal/conditions.h +38 -35
- package/vendor/abseil-cpp/absl/log/internal/container.h +312 -0
- package/vendor/abseil-cpp/absl/log/internal/container_test.cc +254 -0
- package/vendor/abseil-cpp/absl/log/internal/log_impl.h +108 -110
- package/vendor/abseil-cpp/absl/log/internal/log_message.cc +5 -2
- package/vendor/abseil-cpp/absl/log/internal/log_message.h +5 -1
- package/vendor/abseil-cpp/absl/log/internal/strip.h +30 -31
- package/vendor/abseil-cpp/absl/log/internal/vlog_config.cc +19 -19
- package/vendor/abseil-cpp/absl/log/internal/vlog_config.h +0 -1
- package/vendor/abseil-cpp/absl/log/log.h +2 -2
- package/vendor/abseil-cpp/absl/meta/BUILD.bazel +51 -0
- package/vendor/abseil-cpp/absl/meta/CMakeLists.txt +46 -0
- package/vendor/abseil-cpp/absl/meta/internal/constexpr_testing.h +73 -0
- package/vendor/abseil-cpp/absl/meta/internal/constexpr_testing_test.cc +40 -0
- package/vendor/abseil-cpp/absl/meta/internal/requires.h +67 -0
- package/vendor/abseil-cpp/absl/meta/internal/requires_test.cc +66 -0
- package/vendor/abseil-cpp/absl/meta/type_traits.h +42 -1
- package/vendor/abseil-cpp/absl/meta/type_traits_test.cc +14 -0
- package/vendor/abseil-cpp/absl/numeric/int128.h +41 -21
- package/vendor/abseil-cpp/absl/numeric/int128_have_intrinsic.inc +16 -22
- package/vendor/abseil-cpp/absl/numeric/int128_no_intrinsic.inc +5 -7
- package/vendor/abseil-cpp/absl/numeric/int128_test.cc +52 -5
- package/vendor/abseil-cpp/absl/profiling/BUILD.bazel +1 -0
- package/vendor/abseil-cpp/absl/profiling/CMakeLists.txt +1 -0
- package/vendor/abseil-cpp/absl/profiling/hashtable.cc +18 -7
- package/vendor/abseil-cpp/absl/profiling/internal/profile_builder.cc +1 -0
- package/vendor/abseil-cpp/absl/random/internal/fastmath_test.cc +3 -5
- package/vendor/abseil-cpp/absl/random/internal/platform.h +0 -13
- package/vendor/abseil-cpp/absl/random/internal/randen_engine_test.cc +0 -1
- package/vendor/abseil-cpp/absl/random/internal/seed_material.cc +1 -27
- package/vendor/abseil-cpp/absl/status/BUILD.bazel +17 -0
- package/vendor/abseil-cpp/absl/status/CMakeLists.txt +16 -0
- package/vendor/abseil-cpp/absl/status/internal/status_internal.h +4 -2
- package/vendor/abseil-cpp/absl/status/internal/status_matchers.h +2 -2
- package/vendor/abseil-cpp/absl/status/internal/statusor_internal.h +2 -1
- package/vendor/abseil-cpp/absl/status/status.cc +4 -0
- package/vendor/abseil-cpp/absl/status/status.h +5 -0
- package/vendor/abseil-cpp/absl/status/status_matchers.h +48 -0
- package/vendor/abseil-cpp/absl/status/status_matchers_test.cc +27 -0
- package/vendor/abseil-cpp/absl/status/status_test.cc +1 -0
- package/vendor/abseil-cpp/absl/status/statusor.h +1 -1
- package/vendor/abseil-cpp/absl/strings/BUILD.bazel +101 -21
- package/vendor/abseil-cpp/absl/strings/CMakeLists.txt +99 -5
- package/vendor/abseil-cpp/absl/strings/ascii.h +9 -4
- package/vendor/abseil-cpp/absl/strings/cord.cc +15 -10
- package/vendor/abseil-cpp/absl/strings/cord.h +1 -1
- package/vendor/abseil-cpp/absl/strings/escaping.cc +126 -94
- package/vendor/abseil-cpp/absl/strings/internal/append_and_overwrite.h +93 -0
- package/vendor/abseil-cpp/absl/strings/internal/append_and_overwrite_test.cc +95 -0
- package/vendor/abseil-cpp/absl/strings/internal/cord_internal.h +2 -0
- package/vendor/abseil-cpp/absl/strings/internal/cord_rep_btree_test.cc +8 -8
- package/vendor/abseil-cpp/absl/strings/internal/cordz_info.cc +24 -18
- package/vendor/abseil-cpp/absl/strings/internal/cordz_info.h +10 -16
- package/vendor/abseil-cpp/absl/strings/internal/escaping.h +9 -7
- package/vendor/abseil-cpp/absl/strings/internal/generic_printer.cc +107 -0
- package/vendor/abseil-cpp/absl/strings/internal/generic_printer.h +115 -0
- package/vendor/abseil-cpp/absl/strings/internal/generic_printer_internal.h +423 -0
- package/vendor/abseil-cpp/absl/strings/internal/generic_printer_test.cc +685 -0
- package/vendor/abseil-cpp/absl/strings/internal/resize_uninitialized.h +0 -12
- package/vendor/abseil-cpp/absl/strings/internal/str_format/checker.h +2 -4
- package/vendor/abseil-cpp/absl/strings/internal/str_format/convert_test.cc +21 -7
- package/vendor/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +495 -8
- package/vendor/abseil-cpp/absl/strings/internal/str_join_internal.h +18 -15
- package/vendor/abseil-cpp/absl/strings/numbers.cc +71 -8
- package/vendor/abseil-cpp/absl/strings/numbers.h +25 -12
- package/vendor/abseil-cpp/absl/strings/numbers_test.cc +70 -0
- package/vendor/abseil-cpp/absl/strings/resize_and_overwrite.h +194 -0
- package/vendor/abseil-cpp/absl/strings/resize_and_overwrite_test.cc +154 -0
- package/vendor/abseil-cpp/absl/strings/str_cat.cc +96 -91
- package/vendor/abseil-cpp/absl/strings/str_cat.h +17 -12
- package/vendor/abseil-cpp/absl/strings/str_format_test.cc +4 -4
- package/vendor/abseil-cpp/absl/strings/str_split.h +1 -1
- package/vendor/abseil-cpp/absl/strings/str_split_test.cc +1 -1
- package/vendor/abseil-cpp/absl/strings/string_view.h +8 -718
- package/vendor/abseil-cpp/absl/strings/string_view_test.cc +1 -1265
- package/vendor/abseil-cpp/absl/strings/substitute.cc +24 -24
- package/vendor/abseil-cpp/absl/synchronization/BUILD.bazel +2 -3
- package/vendor/abseil-cpp/absl/synchronization/CMakeLists.txt +1 -0
- package/vendor/abseil-cpp/absl/synchronization/internal/kernel_timeout.h +2 -2
- package/vendor/abseil-cpp/absl/synchronization/internal/kernel_timeout_test.cc +15 -5
- package/vendor/abseil-cpp/absl/synchronization/mutex.cc +2 -1
- package/vendor/abseil-cpp/absl/synchronization/mutex.h +47 -23
- package/vendor/abseil-cpp/absl/synchronization/notification.h +1 -1
- package/vendor/abseil-cpp/absl/time/CMakeLists.txt +2 -0
- package/vendor/abseil-cpp/absl/time/civil_time_benchmark.cc +1 -2
- package/vendor/abseil-cpp/absl/time/civil_time_test.cc +58 -103
- package/vendor/abseil-cpp/absl/time/clock.cc +18 -16
- package/vendor/abseil-cpp/absl/time/clock_test.cc +2 -2
- package/vendor/abseil-cpp/absl/time/duration_benchmark.cc +144 -0
- package/vendor/abseil-cpp/absl/time/duration_test.cc +26 -29
- package/vendor/abseil-cpp/absl/time/internal/cctz/BUILD.bazel +7 -1
- package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc +4 -2
- package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +6 -103
- package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_name_win.cc +186 -0
- package/vendor/abseil-cpp/absl/time/internal/cctz/src/time_zone_name_win.h +37 -0
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/version +1 -1
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Ensenada +0 -0
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Santa_Isabel +0 -0
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Tijuana +0 -0
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Mexico/BajaNorte +0 -0
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/iso3166.tab +9 -9
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/zone1970.tab +12 -12
- package/vendor/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/zonenow.tab +47 -47
- package/vendor/abseil-cpp/absl/time/time.cc +4 -4
- package/vendor/abseil-cpp/absl/time/time.h +10 -10
- package/vendor/abseil-cpp/absl/time/time_test.cc +1 -0
- package/vendor/abseil-cpp/absl/types/compare.h +62 -61
- package/vendor/abseil-cpp/absl/types/compare_test.cc +3 -3
- package/vendor/abseil-cpp/absl/types/internal/span.h +1 -0
- package/vendor/abseil-cpp/absl/types/optional.h +2 -2
- package/vendor/abseil-cpp/absl/types/span.h +10 -2
- package/vendor/abseil-cpp/absl/utility/utility.h +13 -0
- package/vendor/abseil-cpp/ci/absl_alternate_options.h +0 -1
- package/vendor/abseil-cpp/ci/cmake_common.sh +1 -1
- package/vendor/abseil-cpp/ci/cmake_install_test.sh +6 -0
- package/vendor/abseil-cpp/ci/linux_arm_clang-latest_libcxx_bazel.sh +1 -0
- package/vendor/abseil-cpp/ci/linux_clang-latest_libcxx_asan_bazel.sh +2 -0
- package/vendor/abseil-cpp/ci/linux_clang-latest_libcxx_bazel.sh +1 -0
- package/vendor/abseil-cpp/ci/linux_clang-latest_libcxx_tsan_bazel.sh +1 -0
- package/vendor/abseil-cpp/ci/linux_clang-latest_libstdcxx_bazel.sh +1 -0
- package/vendor/abseil-cpp/ci/linux_gcc-floor_libstdcxx_bazel.sh +1 -0
- package/vendor/abseil-cpp/ci/linux_gcc-latest_libstdcxx_bazel.sh +1 -0
- package/vendor/abseil-cpp/ci/linux_gcc-latest_libstdcxx_cmake.sh +6 -0
- package/vendor/abseil-cpp/ci/linux_gcc_alpine_cmake.sh +6 -0
- package/vendor/abseil-cpp/ci/macos_xcode_bazel.sh +3 -2
- package/vendor/abseil-cpp/ci/macos_xcode_cmake.sh +5 -0
- package/vendor/abseil-cpp/ci/windows_clangcl_bazel.bat +1 -0
- package/vendor/abseil-cpp/ci/windows_msvc_bazel.bat +1 -0
- package/vendor/abseil-cpp/ci/windows_msvc_cmake.bat +6 -1
- package/vendor/abseil-cpp/absl/base/internal/identity.h +0 -39
- package/vendor/abseil-cpp/absl/strings/string_view.cc +0 -257
- package/vendor/abseil-cpp/absl/strings/string_view_benchmark.cc +0 -380
|
@@ -21,6 +21,7 @@
|
|
|
21
21
|
|
|
22
22
|
#include "gmock/gmock.h"
|
|
23
23
|
#include "gtest/gtest.h"
|
|
24
|
+
#include "absl/base/config.h"
|
|
24
25
|
#include "absl/container/internal/hash_generator_testing.h"
|
|
25
26
|
#include "absl/container/internal/hash_policy_testing.h"
|
|
26
27
|
#include "absl/meta/type_traits.h"
|
|
@@ -94,28 +95,8 @@ TYPED_TEST_P(ConstructorTest, BucketCountHashEqualAlloc) {
|
|
|
94
95
|
EXPECT_GE(cm.bucket_count(), 123);
|
|
95
96
|
}
|
|
96
97
|
|
|
97
|
-
template <typename T>
|
|
98
|
-
struct is_std_unordered_set : std::false_type {};
|
|
99
|
-
|
|
100
|
-
template <typename... T>
|
|
101
|
-
struct is_std_unordered_set<std::unordered_set<T...>> : std::true_type {};
|
|
102
|
-
|
|
103
|
-
#if defined(UNORDERED_SET_CXX14) || defined(UNORDERED_SET_CXX17)
|
|
104
|
-
using has_cxx14_std_apis = std::true_type;
|
|
105
|
-
#else
|
|
106
|
-
using has_cxx14_std_apis = std::false_type;
|
|
107
|
-
#endif
|
|
108
|
-
|
|
109
|
-
template <typename T>
|
|
110
|
-
using expect_cxx14_apis =
|
|
111
|
-
absl::disjunction<absl::negation<is_std_unordered_set<T>>,
|
|
112
|
-
has_cxx14_std_apis>;
|
|
113
|
-
|
|
114
98
|
template <typename TypeParam>
|
|
115
|
-
void BucketCountAllocTest(
|
|
116
|
-
|
|
117
|
-
template <typename TypeParam>
|
|
118
|
-
void BucketCountAllocTest(std::true_type) {
|
|
99
|
+
void BucketCountAllocTest() {
|
|
119
100
|
using A = typename TypeParam::allocator_type;
|
|
120
101
|
A alloc(0);
|
|
121
102
|
TypeParam m(123, alloc);
|
|
@@ -126,14 +107,11 @@ void BucketCountAllocTest(std::true_type) {
|
|
|
126
107
|
}
|
|
127
108
|
|
|
128
109
|
TYPED_TEST_P(ConstructorTest, BucketCountAlloc) {
|
|
129
|
-
BucketCountAllocTest<TypeParam>(
|
|
110
|
+
BucketCountAllocTest<TypeParam>();
|
|
130
111
|
}
|
|
131
112
|
|
|
132
113
|
template <typename TypeParam>
|
|
133
|
-
void BucketCountHashAllocTest(
|
|
134
|
-
|
|
135
|
-
template <typename TypeParam>
|
|
136
|
-
void BucketCountHashAllocTest(std::true_type) {
|
|
114
|
+
void BucketCountHashAllocTest() {
|
|
137
115
|
using H = typename TypeParam::hasher;
|
|
138
116
|
using A = typename TypeParam::allocator_type;
|
|
139
117
|
H hasher;
|
|
@@ -147,25 +125,11 @@ void BucketCountHashAllocTest(std::true_type) {
|
|
|
147
125
|
}
|
|
148
126
|
|
|
149
127
|
TYPED_TEST_P(ConstructorTest, BucketCountHashAlloc) {
|
|
150
|
-
BucketCountHashAllocTest<TypeParam>(
|
|
128
|
+
BucketCountHashAllocTest<TypeParam>();
|
|
151
129
|
}
|
|
152
130
|
|
|
153
|
-
#if ABSL_UNORDERED_SUPPORTS_ALLOC_CTORS
|
|
154
|
-
using has_alloc_std_constructors = std::true_type;
|
|
155
|
-
#else
|
|
156
|
-
using has_alloc_std_constructors = std::false_type;
|
|
157
|
-
#endif
|
|
158
|
-
|
|
159
|
-
template <typename T>
|
|
160
|
-
using expect_alloc_constructors =
|
|
161
|
-
absl::disjunction<absl::negation<is_std_unordered_set<T>>,
|
|
162
|
-
has_alloc_std_constructors>;
|
|
163
|
-
|
|
164
131
|
template <typename TypeParam>
|
|
165
|
-
void AllocTest(
|
|
166
|
-
|
|
167
|
-
template <typename TypeParam>
|
|
168
|
-
void AllocTest(std::true_type) {
|
|
132
|
+
void AllocTest() {
|
|
169
133
|
using A = typename TypeParam::allocator_type;
|
|
170
134
|
A alloc(0);
|
|
171
135
|
TypeParam m(alloc);
|
|
@@ -174,12 +138,10 @@ void AllocTest(std::true_type) {
|
|
|
174
138
|
EXPECT_THAT(keys(m), ::testing::UnorderedElementsAre());
|
|
175
139
|
}
|
|
176
140
|
|
|
177
|
-
TYPED_TEST_P(ConstructorTest, Alloc) {
|
|
178
|
-
AllocTest<TypeParam>(expect_alloc_constructors<TypeParam>());
|
|
179
|
-
}
|
|
141
|
+
TYPED_TEST_P(ConstructorTest, Alloc) { AllocTest<TypeParam>(); }
|
|
180
142
|
|
|
181
143
|
TYPED_TEST_P(ConstructorTest, InputIteratorBucketHashEqualAlloc) {
|
|
182
|
-
using T =
|
|
144
|
+
using T = GeneratedType<TypeParam>;
|
|
183
145
|
using H = typename TypeParam::hasher;
|
|
184
146
|
using E = typename TypeParam::key_equal;
|
|
185
147
|
using A = typename TypeParam::allocator_type;
|
|
@@ -187,8 +149,7 @@ TYPED_TEST_P(ConstructorTest, InputIteratorBucketHashEqualAlloc) {
|
|
|
187
149
|
E equal;
|
|
188
150
|
A alloc(0);
|
|
189
151
|
std::vector<T> values;
|
|
190
|
-
for (size_t i = 0; i != 10; ++i)
|
|
191
|
-
values.push_back(hash_internal::Generator<T>()());
|
|
152
|
+
for (size_t i = 0; i != 10; ++i) values.push_back(Generator<T>()());
|
|
192
153
|
TypeParam m(values.begin(), values.end(), 123, hasher, equal, alloc);
|
|
193
154
|
EXPECT_EQ(m.hash_function(), hasher);
|
|
194
155
|
EXPECT_EQ(m.key_eq(), equal);
|
|
@@ -198,16 +159,12 @@ TYPED_TEST_P(ConstructorTest, InputIteratorBucketHashEqualAlloc) {
|
|
|
198
159
|
}
|
|
199
160
|
|
|
200
161
|
template <typename TypeParam>
|
|
201
|
-
void InputIteratorBucketAllocTest(
|
|
202
|
-
|
|
203
|
-
template <typename TypeParam>
|
|
204
|
-
void InputIteratorBucketAllocTest(std::true_type) {
|
|
205
|
-
using T = hash_internal::GeneratedType<TypeParam>;
|
|
162
|
+
void InputIteratorBucketAllocTest() {
|
|
163
|
+
using T = GeneratedType<TypeParam>;
|
|
206
164
|
using A = typename TypeParam::allocator_type;
|
|
207
165
|
A alloc(0);
|
|
208
166
|
std::vector<T> values;
|
|
209
|
-
for (size_t i = 0; i != 10; ++i)
|
|
210
|
-
values.push_back(hash_internal::Generator<T>()());
|
|
167
|
+
for (size_t i = 0; i != 10; ++i) values.push_back(Generator<T>()());
|
|
211
168
|
TypeParam m(values.begin(), values.end(), 123, alloc);
|
|
212
169
|
EXPECT_EQ(m.get_allocator(), alloc);
|
|
213
170
|
EXPECT_THAT(keys(m), ::testing::UnorderedElementsAreArray(values));
|
|
@@ -215,22 +172,18 @@ void InputIteratorBucketAllocTest(std::true_type) {
|
|
|
215
172
|
}
|
|
216
173
|
|
|
217
174
|
TYPED_TEST_P(ConstructorTest, InputIteratorBucketAlloc) {
|
|
218
|
-
InputIteratorBucketAllocTest<TypeParam>(
|
|
175
|
+
InputIteratorBucketAllocTest<TypeParam>();
|
|
219
176
|
}
|
|
220
177
|
|
|
221
178
|
template <typename TypeParam>
|
|
222
|
-
void InputIteratorBucketHashAllocTest(
|
|
223
|
-
|
|
224
|
-
template <typename TypeParam>
|
|
225
|
-
void InputIteratorBucketHashAllocTest(std::true_type) {
|
|
226
|
-
using T = hash_internal::GeneratedType<TypeParam>;
|
|
179
|
+
void InputIteratorBucketHashAllocTest() {
|
|
180
|
+
using T = GeneratedType<TypeParam>;
|
|
227
181
|
using H = typename TypeParam::hasher;
|
|
228
182
|
using A = typename TypeParam::allocator_type;
|
|
229
183
|
H hasher;
|
|
230
184
|
A alloc(0);
|
|
231
185
|
std::vector<T> values;
|
|
232
|
-
for (size_t i = 0; i != 10; ++i)
|
|
233
|
-
values.push_back(hash_internal::Generator<T>()());
|
|
186
|
+
for (size_t i = 0; i != 10; ++i) values.push_back(Generator<T>()());
|
|
234
187
|
TypeParam m(values.begin(), values.end(), 123, hasher, alloc);
|
|
235
188
|
EXPECT_EQ(m.hash_function(), hasher);
|
|
236
189
|
EXPECT_EQ(m.get_allocator(), alloc);
|
|
@@ -239,11 +192,11 @@ void InputIteratorBucketHashAllocTest(std::true_type) {
|
|
|
239
192
|
}
|
|
240
193
|
|
|
241
194
|
TYPED_TEST_P(ConstructorTest, InputIteratorBucketHashAlloc) {
|
|
242
|
-
InputIteratorBucketHashAllocTest<TypeParam>(
|
|
195
|
+
InputIteratorBucketHashAllocTest<TypeParam>();
|
|
243
196
|
}
|
|
244
197
|
|
|
245
198
|
TYPED_TEST_P(ConstructorTest, CopyConstructor) {
|
|
246
|
-
using T =
|
|
199
|
+
using T = GeneratedType<TypeParam>;
|
|
247
200
|
using H = typename TypeParam::hasher;
|
|
248
201
|
using E = typename TypeParam::key_equal;
|
|
249
202
|
using A = typename TypeParam::allocator_type;
|
|
@@ -251,7 +204,7 @@ TYPED_TEST_P(ConstructorTest, CopyConstructor) {
|
|
|
251
204
|
E equal;
|
|
252
205
|
A alloc(0);
|
|
253
206
|
TypeParam m(123, hasher, equal, alloc);
|
|
254
|
-
for (size_t i = 0; i != 10; ++i) m.insert(
|
|
207
|
+
for (size_t i = 0; i != 10; ++i) m.insert(Generator<T>()());
|
|
255
208
|
TypeParam n(m);
|
|
256
209
|
EXPECT_EQ(m.hash_function(), n.hash_function());
|
|
257
210
|
EXPECT_EQ(m.key_eq(), n.key_eq());
|
|
@@ -261,11 +214,8 @@ TYPED_TEST_P(ConstructorTest, CopyConstructor) {
|
|
|
261
214
|
}
|
|
262
215
|
|
|
263
216
|
template <typename TypeParam>
|
|
264
|
-
void CopyConstructorAllocTest(
|
|
265
|
-
|
|
266
|
-
template <typename TypeParam>
|
|
267
|
-
void CopyConstructorAllocTest(std::true_type) {
|
|
268
|
-
using T = hash_internal::GeneratedType<TypeParam>;
|
|
217
|
+
void CopyConstructorAllocTest() {
|
|
218
|
+
using T = GeneratedType<TypeParam>;
|
|
269
219
|
using H = typename TypeParam::hasher;
|
|
270
220
|
using E = typename TypeParam::key_equal;
|
|
271
221
|
using A = typename TypeParam::allocator_type;
|
|
@@ -273,7 +223,7 @@ void CopyConstructorAllocTest(std::true_type) {
|
|
|
273
223
|
E equal;
|
|
274
224
|
A alloc(0);
|
|
275
225
|
TypeParam m(123, hasher, equal, alloc);
|
|
276
|
-
for (size_t i = 0; i != 10; ++i) m.insert(
|
|
226
|
+
for (size_t i = 0; i != 10; ++i) m.insert(Generator<T>()());
|
|
277
227
|
TypeParam n(m, A(11));
|
|
278
228
|
EXPECT_EQ(m.hash_function(), n.hash_function());
|
|
279
229
|
EXPECT_EQ(m.key_eq(), n.key_eq());
|
|
@@ -282,13 +232,13 @@ void CopyConstructorAllocTest(std::true_type) {
|
|
|
282
232
|
}
|
|
283
233
|
|
|
284
234
|
TYPED_TEST_P(ConstructorTest, CopyConstructorAlloc) {
|
|
285
|
-
CopyConstructorAllocTest<TypeParam>(
|
|
235
|
+
CopyConstructorAllocTest<TypeParam>();
|
|
286
236
|
}
|
|
287
237
|
|
|
288
238
|
// TODO(alkis): Test non-propagating allocators on copy constructors.
|
|
289
239
|
|
|
290
240
|
TYPED_TEST_P(ConstructorTest, MoveConstructor) {
|
|
291
|
-
using T =
|
|
241
|
+
using T = GeneratedType<TypeParam>;
|
|
292
242
|
using H = typename TypeParam::hasher;
|
|
293
243
|
using E = typename TypeParam::key_equal;
|
|
294
244
|
using A = typename TypeParam::allocator_type;
|
|
@@ -296,7 +246,7 @@ TYPED_TEST_P(ConstructorTest, MoveConstructor) {
|
|
|
296
246
|
E equal;
|
|
297
247
|
A alloc(0);
|
|
298
248
|
TypeParam m(123, hasher, equal, alloc);
|
|
299
|
-
for (size_t i = 0; i != 10; ++i) m.insert(
|
|
249
|
+
for (size_t i = 0; i != 10; ++i) m.insert(Generator<T>()());
|
|
300
250
|
TypeParam t(m);
|
|
301
251
|
TypeParam n(std::move(t));
|
|
302
252
|
EXPECT_EQ(m.hash_function(), n.hash_function());
|
|
@@ -306,11 +256,8 @@ TYPED_TEST_P(ConstructorTest, MoveConstructor) {
|
|
|
306
256
|
}
|
|
307
257
|
|
|
308
258
|
template <typename TypeParam>
|
|
309
|
-
void MoveConstructorAllocTest(
|
|
310
|
-
|
|
311
|
-
template <typename TypeParam>
|
|
312
|
-
void MoveConstructorAllocTest(std::true_type) {
|
|
313
|
-
using T = hash_internal::GeneratedType<TypeParam>;
|
|
259
|
+
void MoveConstructorAllocTest() {
|
|
260
|
+
using T = GeneratedType<TypeParam>;
|
|
314
261
|
using H = typename TypeParam::hasher;
|
|
315
262
|
using E = typename TypeParam::key_equal;
|
|
316
263
|
using A = typename TypeParam::allocator_type;
|
|
@@ -318,7 +265,7 @@ void MoveConstructorAllocTest(std::true_type) {
|
|
|
318
265
|
E equal;
|
|
319
266
|
A alloc(0);
|
|
320
267
|
TypeParam m(123, hasher, equal, alloc);
|
|
321
|
-
for (size_t i = 0; i != 10; ++i) m.insert(
|
|
268
|
+
for (size_t i = 0; i != 10; ++i) m.insert(Generator<T>()());
|
|
322
269
|
TypeParam t(m);
|
|
323
270
|
TypeParam n(std::move(t), A(1));
|
|
324
271
|
EXPECT_EQ(m.hash_function(), n.hash_function());
|
|
@@ -328,14 +275,14 @@ void MoveConstructorAllocTest(std::true_type) {
|
|
|
328
275
|
}
|
|
329
276
|
|
|
330
277
|
TYPED_TEST_P(ConstructorTest, MoveConstructorAlloc) {
|
|
331
|
-
MoveConstructorAllocTest<TypeParam>(
|
|
278
|
+
MoveConstructorAllocTest<TypeParam>();
|
|
332
279
|
}
|
|
333
280
|
|
|
334
281
|
// TODO(alkis): Test non-propagating allocators on move constructors.
|
|
335
282
|
|
|
336
283
|
TYPED_TEST_P(ConstructorTest, InitializerListBucketHashEqualAlloc) {
|
|
337
|
-
using T =
|
|
338
|
-
|
|
284
|
+
using T = GeneratedType<TypeParam>;
|
|
285
|
+
Generator<T> gen;
|
|
339
286
|
std::initializer_list<T> values = {gen(), gen(), gen(), gen(), gen()};
|
|
340
287
|
using H = typename TypeParam::hasher;
|
|
341
288
|
using E = typename TypeParam::key_equal;
|
|
@@ -352,13 +299,10 @@ TYPED_TEST_P(ConstructorTest, InitializerListBucketHashEqualAlloc) {
|
|
|
352
299
|
}
|
|
353
300
|
|
|
354
301
|
template <typename TypeParam>
|
|
355
|
-
void InitializerListBucketAllocTest(
|
|
356
|
-
|
|
357
|
-
template <typename TypeParam>
|
|
358
|
-
void InitializerListBucketAllocTest(std::true_type) {
|
|
359
|
-
using T = hash_internal::GeneratedType<TypeParam>;
|
|
302
|
+
void InitializerListBucketAllocTest() {
|
|
303
|
+
using T = GeneratedType<TypeParam>;
|
|
360
304
|
using A = typename TypeParam::allocator_type;
|
|
361
|
-
|
|
305
|
+
Generator<T> gen;
|
|
362
306
|
std::initializer_list<T> values = {gen(), gen(), gen(), gen(), gen()};
|
|
363
307
|
A alloc(0);
|
|
364
308
|
TypeParam m(values, 123, alloc);
|
|
@@ -368,20 +312,17 @@ void InitializerListBucketAllocTest(std::true_type) {
|
|
|
368
312
|
}
|
|
369
313
|
|
|
370
314
|
TYPED_TEST_P(ConstructorTest, InitializerListBucketAlloc) {
|
|
371
|
-
InitializerListBucketAllocTest<TypeParam>(
|
|
315
|
+
InitializerListBucketAllocTest<TypeParam>();
|
|
372
316
|
}
|
|
373
317
|
|
|
374
318
|
template <typename TypeParam>
|
|
375
|
-
void InitializerListBucketHashAllocTest(
|
|
376
|
-
|
|
377
|
-
template <typename TypeParam>
|
|
378
|
-
void InitializerListBucketHashAllocTest(std::true_type) {
|
|
379
|
-
using T = hash_internal::GeneratedType<TypeParam>;
|
|
319
|
+
void InitializerListBucketHashAllocTest() {
|
|
320
|
+
using T = GeneratedType<TypeParam>;
|
|
380
321
|
using H = typename TypeParam::hasher;
|
|
381
322
|
using A = typename TypeParam::allocator_type;
|
|
382
323
|
H hasher;
|
|
383
324
|
A alloc(0);
|
|
384
|
-
|
|
325
|
+
Generator<T> gen;
|
|
385
326
|
std::initializer_list<T> values = {gen(), gen(), gen(), gen(), gen()};
|
|
386
327
|
TypeParam m(values, 123, hasher, alloc);
|
|
387
328
|
EXPECT_EQ(m.hash_function(), hasher);
|
|
@@ -391,18 +332,18 @@ void InitializerListBucketHashAllocTest(std::true_type) {
|
|
|
391
332
|
}
|
|
392
333
|
|
|
393
334
|
TYPED_TEST_P(ConstructorTest, InitializerListBucketHashAlloc) {
|
|
394
|
-
InitializerListBucketHashAllocTest<TypeParam>(
|
|
335
|
+
InitializerListBucketHashAllocTest<TypeParam>();
|
|
395
336
|
}
|
|
396
337
|
|
|
397
338
|
TYPED_TEST_P(ConstructorTest, CopyAssignment) {
|
|
398
|
-
using T =
|
|
339
|
+
using T = GeneratedType<TypeParam>;
|
|
399
340
|
using H = typename TypeParam::hasher;
|
|
400
341
|
using E = typename TypeParam::key_equal;
|
|
401
342
|
using A = typename TypeParam::allocator_type;
|
|
402
343
|
H hasher;
|
|
403
344
|
E equal;
|
|
404
345
|
A alloc(0);
|
|
405
|
-
|
|
346
|
+
Generator<T> gen;
|
|
406
347
|
TypeParam m({gen(), gen(), gen()}, 123, hasher, equal, alloc);
|
|
407
348
|
TypeParam n;
|
|
408
349
|
n = m;
|
|
@@ -415,14 +356,14 @@ TYPED_TEST_P(ConstructorTest, CopyAssignment) {
|
|
|
415
356
|
// (it depends on traits).
|
|
416
357
|
|
|
417
358
|
TYPED_TEST_P(ConstructorTest, MoveAssignment) {
|
|
418
|
-
using T =
|
|
359
|
+
using T = GeneratedType<TypeParam>;
|
|
419
360
|
using H = typename TypeParam::hasher;
|
|
420
361
|
using E = typename TypeParam::key_equal;
|
|
421
362
|
using A = typename TypeParam::allocator_type;
|
|
422
363
|
H hasher;
|
|
423
364
|
E equal;
|
|
424
365
|
A alloc(0);
|
|
425
|
-
|
|
366
|
+
Generator<T> gen;
|
|
426
367
|
TypeParam m({gen(), gen(), gen()}, 123, hasher, equal, alloc);
|
|
427
368
|
TypeParam t(m);
|
|
428
369
|
TypeParam n;
|
|
@@ -433,8 +374,8 @@ TYPED_TEST_P(ConstructorTest, MoveAssignment) {
|
|
|
433
374
|
}
|
|
434
375
|
|
|
435
376
|
TYPED_TEST_P(ConstructorTest, AssignmentFromInitializerList) {
|
|
436
|
-
using T =
|
|
437
|
-
|
|
377
|
+
using T = GeneratedType<TypeParam>;
|
|
378
|
+
Generator<T> gen;
|
|
438
379
|
std::initializer_list<T> values = {gen(), gen(), gen(), gen(), gen()};
|
|
439
380
|
TypeParam m;
|
|
440
381
|
m = values;
|
|
@@ -442,8 +383,8 @@ TYPED_TEST_P(ConstructorTest, AssignmentFromInitializerList) {
|
|
|
442
383
|
}
|
|
443
384
|
|
|
444
385
|
TYPED_TEST_P(ConstructorTest, AssignmentOverwritesExisting) {
|
|
445
|
-
using T =
|
|
446
|
-
|
|
386
|
+
using T = GeneratedType<TypeParam>;
|
|
387
|
+
Generator<T> gen;
|
|
447
388
|
TypeParam m({gen(), gen(), gen()});
|
|
448
389
|
TypeParam n({gen()});
|
|
449
390
|
n = m;
|
|
@@ -451,8 +392,8 @@ TYPED_TEST_P(ConstructorTest, AssignmentOverwritesExisting) {
|
|
|
451
392
|
}
|
|
452
393
|
|
|
453
394
|
TYPED_TEST_P(ConstructorTest, MoveAssignmentOverwritesExisting) {
|
|
454
|
-
using T =
|
|
455
|
-
|
|
395
|
+
using T = GeneratedType<TypeParam>;
|
|
396
|
+
Generator<T> gen;
|
|
456
397
|
TypeParam m({gen(), gen(), gen()});
|
|
457
398
|
TypeParam t(m);
|
|
458
399
|
TypeParam n({gen()});
|
|
@@ -461,8 +402,8 @@ TYPED_TEST_P(ConstructorTest, MoveAssignmentOverwritesExisting) {
|
|
|
461
402
|
}
|
|
462
403
|
|
|
463
404
|
TYPED_TEST_P(ConstructorTest, AssignmentFromInitializerListOverwritesExisting) {
|
|
464
|
-
using T =
|
|
465
|
-
|
|
405
|
+
using T = GeneratedType<TypeParam>;
|
|
406
|
+
Generator<T> gen;
|
|
466
407
|
std::initializer_list<T> values = {gen(), gen(), gen(), gen(), gen()};
|
|
467
408
|
TypeParam m;
|
|
468
409
|
m = values;
|
|
@@ -470,8 +411,8 @@ TYPED_TEST_P(ConstructorTest, AssignmentFromInitializerListOverwritesExisting) {
|
|
|
470
411
|
}
|
|
471
412
|
|
|
472
413
|
TYPED_TEST_P(ConstructorTest, AssignmentOnSelf) {
|
|
473
|
-
using T =
|
|
474
|
-
|
|
414
|
+
using T = GeneratedType<TypeParam>;
|
|
415
|
+
Generator<T> gen;
|
|
475
416
|
std::initializer_list<T> values = {gen(), gen(), gen(), gen(), gen()};
|
|
476
417
|
TypeParam m(values);
|
|
477
418
|
m = *&m; // Avoid -Wself-assign.
|
|
@@ -30,10 +30,9 @@ class LookupTest : public ::testing::Test {};
|
|
|
30
30
|
TYPED_TEST_SUITE_P(LookupTest);
|
|
31
31
|
|
|
32
32
|
TYPED_TEST_P(LookupTest, Count) {
|
|
33
|
-
using T =
|
|
33
|
+
using T = GeneratedType<TypeParam>;
|
|
34
34
|
std::vector<T> values;
|
|
35
|
-
std::generate_n(std::back_inserter(values), 10,
|
|
36
|
-
hash_internal::Generator<T>());
|
|
35
|
+
std::generate_n(std::back_inserter(values), 10, Generator<T>());
|
|
37
36
|
TypeParam m;
|
|
38
37
|
for (const auto& v : values)
|
|
39
38
|
EXPECT_EQ(0, m.count(v)) << ::testing::PrintToString(v);
|
|
@@ -43,10 +42,9 @@ TYPED_TEST_P(LookupTest, Count) {
|
|
|
43
42
|
}
|
|
44
43
|
|
|
45
44
|
TYPED_TEST_P(LookupTest, Find) {
|
|
46
|
-
using T =
|
|
45
|
+
using T = GeneratedType<TypeParam>;
|
|
47
46
|
std::vector<T> values;
|
|
48
|
-
std::generate_n(std::back_inserter(values), 10,
|
|
49
|
-
hash_internal::Generator<T>());
|
|
47
|
+
std::generate_n(std::back_inserter(values), 10, Generator<T>());
|
|
50
48
|
TypeParam m;
|
|
51
49
|
for (const auto& v : values)
|
|
52
50
|
EXPECT_TRUE(m.end() == m.find(v)) << ::testing::PrintToString(v);
|
|
@@ -65,10 +63,9 @@ TYPED_TEST_P(LookupTest, Find) {
|
|
|
65
63
|
}
|
|
66
64
|
|
|
67
65
|
TYPED_TEST_P(LookupTest, EqualRange) {
|
|
68
|
-
using T =
|
|
66
|
+
using T = GeneratedType<TypeParam>;
|
|
69
67
|
std::vector<T> values;
|
|
70
|
-
std::generate_n(std::back_inserter(values), 10,
|
|
71
|
-
hash_internal::Generator<T>());
|
|
68
|
+
std::generate_n(std::back_inserter(values), 10, Generator<T>());
|
|
72
69
|
TypeParam m;
|
|
73
70
|
for (const auto& v : values) {
|
|
74
71
|
auto r = m.equal_range(v);
|
|
@@ -35,10 +35,10 @@ void UseType() {}
|
|
|
35
35
|
TYPED_TEST_P(MembersTest, Typedefs) {
|
|
36
36
|
EXPECT_TRUE((std::is_same<typename TypeParam::key_type,
|
|
37
37
|
typename TypeParam::value_type>()));
|
|
38
|
-
EXPECT_TRUE((
|
|
39
|
-
|
|
38
|
+
EXPECT_TRUE((std::conjunction<
|
|
39
|
+
std::negation<std::is_signed<typename TypeParam::size_type>>,
|
|
40
40
|
std::is_integral<typename TypeParam::size_type>>()));
|
|
41
|
-
EXPECT_TRUE((
|
|
41
|
+
EXPECT_TRUE((std::conjunction<
|
|
42
42
|
std::is_signed<typename TypeParam::difference_type>,
|
|
43
43
|
std::is_integral<typename TypeParam::difference_type>>()));
|
|
44
44
|
EXPECT_TRUE((std::is_convertible<
|
|
@@ -30,10 +30,9 @@ class ModifiersTest : public ::testing::Test {};
|
|
|
30
30
|
TYPED_TEST_SUITE_P(ModifiersTest);
|
|
31
31
|
|
|
32
32
|
TYPED_TEST_P(ModifiersTest, Clear) {
|
|
33
|
-
using T =
|
|
33
|
+
using T = GeneratedType<TypeParam>;
|
|
34
34
|
std::vector<T> values;
|
|
35
|
-
std::generate_n(std::back_inserter(values), 10,
|
|
36
|
-
hash_internal::Generator<T>());
|
|
35
|
+
std::generate_n(std::back_inserter(values), 10, Generator<T>());
|
|
37
36
|
TypeParam m(values.begin(), values.end());
|
|
38
37
|
ASSERT_THAT(keys(m), ::testing::UnorderedElementsAreArray(values));
|
|
39
38
|
m.clear();
|
|
@@ -42,8 +41,8 @@ TYPED_TEST_P(ModifiersTest, Clear) {
|
|
|
42
41
|
}
|
|
43
42
|
|
|
44
43
|
TYPED_TEST_P(ModifiersTest, Insert) {
|
|
45
|
-
using T =
|
|
46
|
-
T val =
|
|
44
|
+
using T = GeneratedType<TypeParam>;
|
|
45
|
+
T val = Generator<T>()();
|
|
47
46
|
TypeParam m;
|
|
48
47
|
auto p = m.insert(val);
|
|
49
48
|
EXPECT_TRUE(p.second);
|
|
@@ -53,8 +52,8 @@ TYPED_TEST_P(ModifiersTest, Insert) {
|
|
|
53
52
|
}
|
|
54
53
|
|
|
55
54
|
TYPED_TEST_P(ModifiersTest, InsertHint) {
|
|
56
|
-
using T =
|
|
57
|
-
T val =
|
|
55
|
+
using T = GeneratedType<TypeParam>;
|
|
56
|
+
T val = Generator<T>()();
|
|
58
57
|
TypeParam m;
|
|
59
58
|
auto it = m.insert(m.end(), val);
|
|
60
59
|
EXPECT_TRUE(it != m.end());
|
|
@@ -65,18 +64,17 @@ TYPED_TEST_P(ModifiersTest, InsertHint) {
|
|
|
65
64
|
}
|
|
66
65
|
|
|
67
66
|
TYPED_TEST_P(ModifiersTest, InsertRange) {
|
|
68
|
-
using T =
|
|
67
|
+
using T = GeneratedType<TypeParam>;
|
|
69
68
|
std::vector<T> values;
|
|
70
|
-
std::generate_n(std::back_inserter(values), 10,
|
|
71
|
-
hash_internal::Generator<T>());
|
|
69
|
+
std::generate_n(std::back_inserter(values), 10, Generator<T>());
|
|
72
70
|
TypeParam m;
|
|
73
71
|
m.insert(values.begin(), values.end());
|
|
74
72
|
ASSERT_THAT(keys(m), ::testing::UnorderedElementsAreArray(values));
|
|
75
73
|
}
|
|
76
74
|
|
|
77
75
|
TYPED_TEST_P(ModifiersTest, InsertWithinCapacity) {
|
|
78
|
-
using T =
|
|
79
|
-
T val =
|
|
76
|
+
using T = GeneratedType<TypeParam>;
|
|
77
|
+
T val = Generator<T>()();
|
|
80
78
|
TypeParam m;
|
|
81
79
|
m.reserve(10);
|
|
82
80
|
const size_t original_capacity = m.bucket_count();
|
|
@@ -88,10 +86,9 @@ TYPED_TEST_P(ModifiersTest, InsertWithinCapacity) {
|
|
|
88
86
|
|
|
89
87
|
TYPED_TEST_P(ModifiersTest, InsertRangeWithinCapacity) {
|
|
90
88
|
#if !defined(__GLIBCXX__)
|
|
91
|
-
using T =
|
|
89
|
+
using T = GeneratedType<TypeParam>;
|
|
92
90
|
std::vector<T> base_values;
|
|
93
|
-
std::generate_n(std::back_inserter(base_values), 10,
|
|
94
|
-
hash_internal::Generator<T>());
|
|
91
|
+
std::generate_n(std::back_inserter(base_values), 10, Generator<T>());
|
|
95
92
|
std::vector<T> values;
|
|
96
93
|
while (values.size() != 100) {
|
|
97
94
|
values.insert(values.end(), base_values.begin(), base_values.end());
|
|
@@ -105,8 +102,8 @@ TYPED_TEST_P(ModifiersTest, InsertRangeWithinCapacity) {
|
|
|
105
102
|
}
|
|
106
103
|
|
|
107
104
|
TYPED_TEST_P(ModifiersTest, Emplace) {
|
|
108
|
-
using T =
|
|
109
|
-
T val =
|
|
105
|
+
using T = GeneratedType<TypeParam>;
|
|
106
|
+
T val = Generator<T>()();
|
|
110
107
|
TypeParam m;
|
|
111
108
|
// TODO(alkis): We need a way to run emplace in a more meaningful way. Perhaps
|
|
112
109
|
// with test traits/policy.
|
|
@@ -119,8 +116,8 @@ TYPED_TEST_P(ModifiersTest, Emplace) {
|
|
|
119
116
|
}
|
|
120
117
|
|
|
121
118
|
TYPED_TEST_P(ModifiersTest, EmplaceHint) {
|
|
122
|
-
using T =
|
|
123
|
-
T val =
|
|
119
|
+
using T = GeneratedType<TypeParam>;
|
|
120
|
+
T val = Generator<T>()();
|
|
124
121
|
TypeParam m;
|
|
125
122
|
// TODO(alkis): We need a way to run emplace in a more meaningful way. Perhaps
|
|
126
123
|
// with test traits/policy.
|
|
@@ -150,10 +147,9 @@ struct EraseFirst {
|
|
|
150
147
|
};
|
|
151
148
|
|
|
152
149
|
TYPED_TEST_P(ModifiersTest, Erase) {
|
|
153
|
-
using T =
|
|
150
|
+
using T = GeneratedType<TypeParam>;
|
|
154
151
|
std::vector<T> values;
|
|
155
|
-
std::generate_n(std::back_inserter(values), 10,
|
|
156
|
-
hash_internal::Generator<T>());
|
|
152
|
+
std::generate_n(std::back_inserter(values), 10, Generator<T>());
|
|
157
153
|
TypeParam m(values.begin(), values.end());
|
|
158
154
|
ASSERT_THAT(keys(m), ::testing::UnorderedElementsAreArray(values));
|
|
159
155
|
std::vector<T> values2;
|
|
@@ -167,10 +163,9 @@ TYPED_TEST_P(ModifiersTest, Erase) {
|
|
|
167
163
|
}
|
|
168
164
|
|
|
169
165
|
TYPED_TEST_P(ModifiersTest, EraseRange) {
|
|
170
|
-
using T =
|
|
166
|
+
using T = GeneratedType<TypeParam>;
|
|
171
167
|
std::vector<T> values;
|
|
172
|
-
std::generate_n(std::back_inserter(values), 10,
|
|
173
|
-
hash_internal::Generator<T>());
|
|
168
|
+
std::generate_n(std::back_inserter(values), 10, Generator<T>());
|
|
174
169
|
TypeParam m(values.begin(), values.end());
|
|
175
170
|
ASSERT_THAT(keys(m), ::testing::UnorderedElementsAreArray(values));
|
|
176
171
|
auto it = m.erase(m.begin(), m.end());
|
|
@@ -179,10 +174,9 @@ TYPED_TEST_P(ModifiersTest, EraseRange) {
|
|
|
179
174
|
}
|
|
180
175
|
|
|
181
176
|
TYPED_TEST_P(ModifiersTest, EraseKey) {
|
|
182
|
-
using T =
|
|
177
|
+
using T = GeneratedType<TypeParam>;
|
|
183
178
|
std::vector<T> values;
|
|
184
|
-
std::generate_n(std::back_inserter(values), 10,
|
|
185
|
-
hash_internal::Generator<T>());
|
|
179
|
+
std::generate_n(std::back_inserter(values), 10, Generator<T>());
|
|
186
180
|
TypeParam m(values.begin(), values.end());
|
|
187
181
|
ASSERT_THAT(keys(m), ::testing::UnorderedElementsAreArray(values));
|
|
188
182
|
EXPECT_EQ(1, m.erase(values[0]));
|
|
@@ -192,11 +186,11 @@ TYPED_TEST_P(ModifiersTest, EraseKey) {
|
|
|
192
186
|
}
|
|
193
187
|
|
|
194
188
|
TYPED_TEST_P(ModifiersTest, Swap) {
|
|
195
|
-
using T =
|
|
189
|
+
using T = GeneratedType<TypeParam>;
|
|
196
190
|
std::vector<T> v1;
|
|
197
191
|
std::vector<T> v2;
|
|
198
|
-
std::generate_n(std::back_inserter(v1), 5,
|
|
199
|
-
std::generate_n(std::back_inserter(v2), 5,
|
|
192
|
+
std::generate_n(std::back_inserter(v1), 5, Generator<T>());
|
|
193
|
+
std::generate_n(std::back_inserter(v2), 5, Generator<T>());
|
|
200
194
|
TypeParam m1(v1.begin(), v1.end());
|
|
201
195
|
TypeParam m2(v2.begin(), v2.end());
|
|
202
196
|
EXPECT_THAT(keys(m1), ::testing::UnorderedElementsAreArray(v1));
|