@nxtedition/rocksdb 15.1.5 → 15.2.0

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.
Files changed (1705) hide show
  1. package/.claude/settings.local.json +5 -1
  2. package/binding.cc +83 -43
  3. package/binding.gyp +102 -2
  4. package/deps/abseil-cpp/BUILD.bazel +35 -0
  5. package/deps/abseil-cpp/CMake/AbseilDll.cmake +938 -0
  6. package/deps/abseil-cpp/CMake/AbseilHelpers.cmake +465 -0
  7. package/deps/abseil-cpp/CMake/Googletest/CMakeLists.txt.in +14 -0
  8. package/deps/abseil-cpp/CMake/Googletest/DownloadGTest.cmake +41 -0
  9. package/deps/abseil-cpp/CMake/abslConfig.cmake.in +8 -0
  10. package/deps/abseil-cpp/CMake/install_test_project/CMakeLists.txt +25 -0
  11. package/deps/abseil-cpp/CMake/install_test_project/simple.cc +32 -0
  12. package/deps/abseil-cpp/CMake/install_test_project/test.sh +113 -0
  13. package/deps/abseil-cpp/CMakeLists.txt +280 -0
  14. package/deps/abseil-cpp/LICENSE +203 -0
  15. package/deps/abseil-cpp/MODULE.bazel +43 -0
  16. package/deps/abseil-cpp/PrivacyInfo.xcprivacy +14 -0
  17. package/deps/abseil-cpp/absl/BUILD.bazel +62 -0
  18. package/deps/abseil-cpp/absl/CMakeLists.txt +45 -0
  19. package/deps/abseil-cpp/absl/abseil.podspec.gen.py +245 -0
  20. package/deps/abseil-cpp/absl/algorithm/BUILD.bazel +92 -0
  21. package/deps/abseil-cpp/absl/algorithm/CMakeLists.txt +72 -0
  22. package/deps/abseil-cpp/absl/algorithm/algorithm.h +64 -0
  23. package/deps/abseil-cpp/absl/algorithm/algorithm_test.cc +60 -0
  24. package/deps/abseil-cpp/absl/algorithm/container.h +1864 -0
  25. package/deps/abseil-cpp/absl/algorithm/container_test.cc +2232 -0
  26. package/deps/abseil-cpp/absl/base/BUILD.bazel +1036 -0
  27. package/deps/abseil-cpp/absl/base/CMakeLists.txt +881 -0
  28. package/deps/abseil-cpp/absl/base/attributes.h +1081 -0
  29. package/deps/abseil-cpp/absl/base/attributes_test.cc +43 -0
  30. package/deps/abseil-cpp/absl/base/bit_cast_test.cc +109 -0
  31. package/deps/abseil-cpp/absl/base/c_header_test.c +30 -0
  32. package/deps/abseil-cpp/absl/base/call_once.h +228 -0
  33. package/deps/abseil-cpp/absl/base/call_once_test.cc +107 -0
  34. package/deps/abseil-cpp/absl/base/casts.cc +61 -0
  35. package/deps/abseil-cpp/absl/base/casts.h +313 -0
  36. package/deps/abseil-cpp/absl/base/casts_test.cc +148 -0
  37. package/deps/abseil-cpp/absl/base/config.h +854 -0
  38. package/deps/abseil-cpp/absl/base/config_test.cc +60 -0
  39. package/deps/abseil-cpp/absl/base/const_init.h +76 -0
  40. package/deps/abseil-cpp/absl/base/dynamic_annotations.h +480 -0
  41. package/deps/abseil-cpp/absl/base/exception_safety_testing_test.cc +958 -0
  42. package/deps/abseil-cpp/absl/base/fast_type_id.h +73 -0
  43. package/deps/abseil-cpp/absl/base/fast_type_id_test.cc +130 -0
  44. package/deps/abseil-cpp/absl/base/internal/atomic_hook.h +200 -0
  45. package/deps/abseil-cpp/absl/base/internal/atomic_hook_test.cc +97 -0
  46. package/deps/abseil-cpp/absl/base/internal/atomic_hook_test_helper.cc +32 -0
  47. package/deps/abseil-cpp/absl/base/internal/atomic_hook_test_helper.h +34 -0
  48. package/deps/abseil-cpp/absl/base/internal/cmake_thread_test.cc +22 -0
  49. package/deps/abseil-cpp/absl/base/internal/cycleclock.cc +72 -0
  50. package/deps/abseil-cpp/absl/base/internal/cycleclock.h +144 -0
  51. package/deps/abseil-cpp/absl/base/internal/cycleclock_config.h +55 -0
  52. package/deps/abseil-cpp/absl/base/internal/direct_mmap.h +170 -0
  53. package/deps/abseil-cpp/absl/base/internal/dynamic_annotations.h +398 -0
  54. package/deps/abseil-cpp/absl/base/internal/endian.h +279 -0
  55. package/deps/abseil-cpp/absl/base/internal/endian_test.cc +263 -0
  56. package/deps/abseil-cpp/absl/base/internal/errno_saver.h +43 -0
  57. package/deps/abseil-cpp/absl/base/internal/errno_saver_test.cc +45 -0
  58. package/deps/abseil-cpp/absl/base/internal/exception_safety_testing.cc +79 -0
  59. package/deps/abseil-cpp/absl/base/internal/exception_safety_testing.h +1109 -0
  60. package/deps/abseil-cpp/absl/base/internal/exception_testing.h +42 -0
  61. package/deps/abseil-cpp/absl/base/internal/hide_ptr.h +51 -0
  62. package/deps/abseil-cpp/absl/base/internal/iterator_traits.h +75 -0
  63. package/deps/abseil-cpp/absl/base/internal/iterator_traits_test.cc +85 -0
  64. package/deps/abseil-cpp/absl/base/internal/iterator_traits_test_helper.h +97 -0
  65. package/deps/abseil-cpp/absl/base/internal/low_level_alloc.cc +661 -0
  66. package/deps/abseil-cpp/absl/base/internal/low_level_alloc.h +133 -0
  67. package/deps/abseil-cpp/absl/base/internal/low_level_alloc_test.cc +180 -0
  68. package/deps/abseil-cpp/absl/base/internal/low_level_scheduling.h +134 -0
  69. package/deps/abseil-cpp/absl/base/internal/nullability_traits.h +71 -0
  70. package/deps/abseil-cpp/absl/base/internal/nullability_traits_test.cc +98 -0
  71. package/deps/abseil-cpp/absl/base/internal/per_thread_tls.h +52 -0
  72. package/deps/abseil-cpp/absl/base/internal/poison.cc +85 -0
  73. package/deps/abseil-cpp/absl/base/internal/poison.h +59 -0
  74. package/deps/abseil-cpp/absl/base/internal/poison_test.cc +41 -0
  75. package/deps/abseil-cpp/absl/base/internal/pretty_function.h +33 -0
  76. package/deps/abseil-cpp/absl/base/internal/raw_logging.cc +279 -0
  77. package/deps/abseil-cpp/absl/base/internal/raw_logging.h +217 -0
  78. package/deps/abseil-cpp/absl/base/internal/scheduling_mode.h +58 -0
  79. package/deps/abseil-cpp/absl/base/internal/scoped_set_env.cc +81 -0
  80. package/deps/abseil-cpp/absl/base/internal/scoped_set_env.h +45 -0
  81. package/deps/abseil-cpp/absl/base/internal/scoped_set_env_test.cc +99 -0
  82. package/deps/abseil-cpp/absl/base/internal/spinlock.cc +225 -0
  83. package/deps/abseil-cpp/absl/base/internal/spinlock.h +310 -0
  84. package/deps/abseil-cpp/absl/base/internal/spinlock_akaros.inc +35 -0
  85. package/deps/abseil-cpp/absl/base/internal/spinlock_benchmark.cc +80 -0
  86. package/deps/abseil-cpp/absl/base/internal/spinlock_linux.inc +71 -0
  87. package/deps/abseil-cpp/absl/base/internal/spinlock_posix.inc +46 -0
  88. package/deps/abseil-cpp/absl/base/internal/spinlock_wait.cc +81 -0
  89. package/deps/abseil-cpp/absl/base/internal/spinlock_wait.h +95 -0
  90. package/deps/abseil-cpp/absl/base/internal/spinlock_win32.inc +40 -0
  91. package/deps/abseil-cpp/absl/base/internal/strerror.cc +88 -0
  92. package/deps/abseil-cpp/absl/base/internal/strerror.h +39 -0
  93. package/deps/abseil-cpp/absl/base/internal/strerror_benchmark.cc +29 -0
  94. package/deps/abseil-cpp/absl/base/internal/strerror_test.cc +89 -0
  95. package/deps/abseil-cpp/absl/base/internal/sysinfo.cc +494 -0
  96. package/deps/abseil-cpp/absl/base/internal/sysinfo.h +74 -0
  97. package/deps/abseil-cpp/absl/base/internal/sysinfo_test.cc +82 -0
  98. package/deps/abseil-cpp/absl/base/internal/thread_identity.cc +163 -0
  99. package/deps/abseil-cpp/absl/base/internal/thread_identity.h +273 -0
  100. package/deps/abseil-cpp/absl/base/internal/thread_identity_benchmark.cc +38 -0
  101. package/deps/abseil-cpp/absl/base/internal/thread_identity_test.cc +129 -0
  102. package/deps/abseil-cpp/absl/base/internal/throw_delegate.cc +203 -0
  103. package/deps/abseil-cpp/absl/base/internal/throw_delegate.h +75 -0
  104. package/deps/abseil-cpp/absl/base/internal/tracing.cc +39 -0
  105. package/deps/abseil-cpp/absl/base/internal/tracing.h +81 -0
  106. package/deps/abseil-cpp/absl/base/internal/tracing_strong_test.cc +117 -0
  107. package/deps/abseil-cpp/absl/base/internal/tracing_weak_test.cc +34 -0
  108. package/deps/abseil-cpp/absl/base/internal/tsan_mutex_interface.h +68 -0
  109. package/deps/abseil-cpp/absl/base/internal/unaligned_access.h +89 -0
  110. package/deps/abseil-cpp/absl/base/internal/unique_small_name_test.cc +77 -0
  111. package/deps/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +134 -0
  112. package/deps/abseil-cpp/absl/base/internal/unscaledcycleclock.h +113 -0
  113. package/deps/abseil-cpp/absl/base/internal/unscaledcycleclock_config.h +62 -0
  114. package/deps/abseil-cpp/absl/base/log_severity.cc +56 -0
  115. package/deps/abseil-cpp/absl/base/log_severity.h +185 -0
  116. package/deps/abseil-cpp/absl/base/log_severity_test.cc +251 -0
  117. package/deps/abseil-cpp/absl/base/macros.h +243 -0
  118. package/deps/abseil-cpp/absl/base/no_destructor.h +191 -0
  119. package/deps/abseil-cpp/absl/base/no_destructor_benchmark.cc +165 -0
  120. package/deps/abseil-cpp/absl/base/no_destructor_test.cc +205 -0
  121. package/deps/abseil-cpp/absl/base/nullability.h +317 -0
  122. package/deps/abseil-cpp/absl/base/nullability_default_nonnull_test.cc +44 -0
  123. package/deps/abseil-cpp/absl/base/nullability_test.cc +90 -0
  124. package/deps/abseil-cpp/absl/base/optimization.h +310 -0
  125. package/deps/abseil-cpp/absl/base/optimization_test.cc +141 -0
  126. package/deps/abseil-cpp/absl/base/options.h +158 -0
  127. package/deps/abseil-cpp/absl/base/policy_checks.h +115 -0
  128. package/deps/abseil-cpp/absl/base/port.h +25 -0
  129. package/deps/abseil-cpp/absl/base/prefetch.h +209 -0
  130. package/deps/abseil-cpp/absl/base/prefetch_test.cc +64 -0
  131. package/deps/abseil-cpp/absl/base/raw_logging_test.cc +98 -0
  132. package/deps/abseil-cpp/absl/base/spinlock_test_common.cc +302 -0
  133. package/deps/abseil-cpp/absl/base/thread_annotations.h +333 -0
  134. package/deps/abseil-cpp/absl/base/throw_delegate_test.cc +175 -0
  135. package/deps/abseil-cpp/absl/cleanup/BUILD.bazel +74 -0
  136. package/deps/abseil-cpp/absl/cleanup/CMakeLists.txt +55 -0
  137. package/deps/abseil-cpp/absl/cleanup/cleanup.h +142 -0
  138. package/deps/abseil-cpp/absl/cleanup/cleanup_test.cc +309 -0
  139. package/deps/abseil-cpp/absl/cleanup/internal/cleanup.h +99 -0
  140. package/deps/abseil-cpp/absl/container/BUILD.bazel +1394 -0
  141. package/deps/abseil-cpp/absl/container/CMakeLists.txt +1239 -0
  142. package/deps/abseil-cpp/absl/container/btree_benchmark.cc +806 -0
  143. package/deps/abseil-cpp/absl/container/btree_map.h +941 -0
  144. package/deps/abseil-cpp/absl/container/btree_set.h +872 -0
  145. package/deps/abseil-cpp/absl/container/btree_test.cc +3653 -0
  146. package/deps/abseil-cpp/absl/container/btree_test.h +166 -0
  147. package/deps/abseil-cpp/absl/container/chunked_queue.h +755 -0
  148. package/deps/abseil-cpp/absl/container/chunked_queue_benchmark.cc +386 -0
  149. package/deps/abseil-cpp/absl/container/chunked_queue_test.cc +768 -0
  150. package/deps/abseil-cpp/absl/container/fixed_array.h +547 -0
  151. package/deps/abseil-cpp/absl/container/fixed_array_benchmark.cc +67 -0
  152. package/deps/abseil-cpp/absl/container/fixed_array_exception_safety_test.cc +201 -0
  153. package/deps/abseil-cpp/absl/container/fixed_array_test.cc +874 -0
  154. package/deps/abseil-cpp/absl/container/flat_hash_map.h +702 -0
  155. package/deps/abseil-cpp/absl/container/flat_hash_map_test.cc +451 -0
  156. package/deps/abseil-cpp/absl/container/flat_hash_set.h +590 -0
  157. package/deps/abseil-cpp/absl/container/flat_hash_set_test.cc +401 -0
  158. package/deps/abseil-cpp/absl/container/hash_container_defaults.h +45 -0
  159. package/deps/abseil-cpp/absl/container/inlined_vector.h +1025 -0
  160. package/deps/abseil-cpp/absl/container/inlined_vector_benchmark.cc +829 -0
  161. package/deps/abseil-cpp/absl/container/inlined_vector_exception_safety_test.cc +508 -0
  162. package/deps/abseil-cpp/absl/container/inlined_vector_test.cc +2278 -0
  163. package/deps/abseil-cpp/absl/container/internal/btree.h +3149 -0
  164. package/deps/abseil-cpp/absl/container/internal/btree_container.h +876 -0
  165. package/deps/abseil-cpp/absl/container/internal/chunked_queue.h +173 -0
  166. package/deps/abseil-cpp/absl/container/internal/common.h +301 -0
  167. package/deps/abseil-cpp/absl/container/internal/common_policy_traits.h +151 -0
  168. package/deps/abseil-cpp/absl/container/internal/common_policy_traits_test.cc +157 -0
  169. package/deps/abseil-cpp/absl/container/internal/compressed_tuple.h +275 -0
  170. package/deps/abseil-cpp/absl/container/internal/compressed_tuple_test.cc +469 -0
  171. package/deps/abseil-cpp/absl/container/internal/container_memory.h +561 -0
  172. package/deps/abseil-cpp/absl/container/internal/container_memory_test.cc +359 -0
  173. package/deps/abseil-cpp/absl/container/internal/hash_function_defaults.h +281 -0
  174. package/deps/abseil-cpp/absl/container/internal/hash_function_defaults_test.cc +633 -0
  175. package/deps/abseil-cpp/absl/container/internal/hash_generator_testing.cc +54 -0
  176. package/deps/abseil-cpp/absl/container/internal/hash_generator_testing.h +172 -0
  177. package/deps/abseil-cpp/absl/container/internal/hash_policy_testing.h +173 -0
  178. package/deps/abseil-cpp/absl/container/internal/hash_policy_testing_test.cc +45 -0
  179. package/deps/abseil-cpp/absl/container/internal/hash_policy_traits.h +195 -0
  180. package/deps/abseil-cpp/absl/container/internal/hash_policy_traits_test.cc +149 -0
  181. package/deps/abseil-cpp/absl/container/internal/hashtable_control_bytes.h +527 -0
  182. package/deps/abseil-cpp/absl/container/internal/hashtable_control_bytes_test.cc +259 -0
  183. package/deps/abseil-cpp/absl/container/internal/hashtable_debug.h +102 -0
  184. package/deps/abseil-cpp/absl/container/internal/hashtable_debug_hooks.h +85 -0
  185. package/deps/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +316 -0
  186. package/deps/abseil-cpp/absl/container/internal/hashtablez_sampler.h +311 -0
  187. package/deps/abseil-cpp/absl/container/internal/hashtablez_sampler_force_weak_definition.cc +31 -0
  188. package/deps/abseil-cpp/absl/container/internal/hashtablez_sampler_test.cc +534 -0
  189. package/deps/abseil-cpp/absl/container/internal/heterogeneous_lookup_testing.h +80 -0
  190. package/deps/abseil-cpp/absl/container/internal/inlined_vector.h +1094 -0
  191. package/deps/abseil-cpp/absl/container/internal/layout.h +828 -0
  192. package/deps/abseil-cpp/absl/container/internal/layout_benchmark.cc +295 -0
  193. package/deps/abseil-cpp/absl/container/internal/layout_test.cc +2034 -0
  194. package/deps/abseil-cpp/absl/container/internal/node_slot_policy.h +95 -0
  195. package/deps/abseil-cpp/absl/container/internal/node_slot_policy_test.cc +71 -0
  196. package/deps/abseil-cpp/absl/container/internal/raw_hash_map.h +382 -0
  197. package/deps/abseil-cpp/absl/container/internal/raw_hash_set.cc +2090 -0
  198. package/deps/abseil-cpp/absl/container/internal/raw_hash_set.h +3763 -0
  199. package/deps/abseil-cpp/absl/container/internal/raw_hash_set_allocator_test.cc +525 -0
  200. package/deps/abseil-cpp/absl/container/internal/raw_hash_set_benchmark.cc +696 -0
  201. package/deps/abseil-cpp/absl/container/internal/raw_hash_set_probe_benchmark.cc +583 -0
  202. package/deps/abseil-cpp/absl/container/internal/raw_hash_set_resize_impl.h +79 -0
  203. package/deps/abseil-cpp/absl/container/internal/raw_hash_set_resize_impl_test.cc +66 -0
  204. package/deps/abseil-cpp/absl/container/internal/raw_hash_set_test.cc +4184 -0
  205. package/deps/abseil-cpp/absl/container/internal/test_allocator.h +387 -0
  206. package/deps/abseil-cpp/absl/container/internal/test_instance_tracker.cc +29 -0
  207. package/deps/abseil-cpp/absl/container/internal/test_instance_tracker.h +274 -0
  208. package/deps/abseil-cpp/absl/container/internal/test_instance_tracker_test.cc +184 -0
  209. package/deps/abseil-cpp/absl/container/internal/tracked.h +83 -0
  210. package/deps/abseil-cpp/absl/container/internal/unordered_map_constructor_test.h +435 -0
  211. package/deps/abseil-cpp/absl/container/internal/unordered_map_lookup_test.h +112 -0
  212. package/deps/abseil-cpp/absl/container/internal/unordered_map_members_test.h +87 -0
  213. package/deps/abseil-cpp/absl/container/internal/unordered_map_modifiers_test.h +336 -0
  214. package/deps/abseil-cpp/absl/container/internal/unordered_map_test.cc +50 -0
  215. package/deps/abseil-cpp/absl/container/internal/unordered_set_constructor_test.h +437 -0
  216. package/deps/abseil-cpp/absl/container/internal/unordered_set_lookup_test.h +88 -0
  217. package/deps/abseil-cpp/absl/container/internal/unordered_set_members_test.h +86 -0
  218. package/deps/abseil-cpp/absl/container/internal/unordered_set_modifiers_test.h +215 -0
  219. package/deps/abseil-cpp/absl/container/internal/unordered_set_test.cc +41 -0
  220. package/deps/abseil-cpp/absl/container/linked_hash_map.h +666 -0
  221. package/deps/abseil-cpp/absl/container/linked_hash_map_benchmark.cc +140 -0
  222. package/deps/abseil-cpp/absl/container/linked_hash_map_test.cc +987 -0
  223. package/deps/abseil-cpp/absl/container/linked_hash_set.h +527 -0
  224. package/deps/abseil-cpp/absl/container/linked_hash_set_benchmark.cc +84 -0
  225. package/deps/abseil-cpp/absl/container/linked_hash_set_test.cc +947 -0
  226. package/deps/abseil-cpp/absl/container/node_hash_map.h +698 -0
  227. package/deps/abseil-cpp/absl/container/node_hash_map_test.cc +348 -0
  228. package/deps/abseil-cpp/absl/container/node_hash_set.h +589 -0
  229. package/deps/abseil-cpp/absl/container/node_hash_set_test.cc +188 -0
  230. package/deps/abseil-cpp/absl/container/sample_element_size_test.cc +118 -0
  231. package/deps/abseil-cpp/absl/copts/AbseilConfigureCopts.cmake +106 -0
  232. package/deps/abseil-cpp/absl/copts/GENERATED_AbseilCopts.cmake +303 -0
  233. package/deps/abseil-cpp/absl/copts/GENERATED_copts.bzl +304 -0
  234. package/deps/abseil-cpp/absl/copts/configure_copts.bzl +39 -0
  235. package/deps/abseil-cpp/absl/copts/copts.py +205 -0
  236. package/deps/abseil-cpp/absl/copts/generate_copts.py +109 -0
  237. package/deps/abseil-cpp/absl/crc/BUILD.bazel +228 -0
  238. package/deps/abseil-cpp/absl/crc/CMakeLists.txt +177 -0
  239. package/deps/abseil-cpp/absl/crc/crc32c.cc +95 -0
  240. package/deps/abseil-cpp/absl/crc/crc32c.h +192 -0
  241. package/deps/abseil-cpp/absl/crc/crc32c_benchmark.cc +196 -0
  242. package/deps/abseil-cpp/absl/crc/crc32c_test.cc +257 -0
  243. package/deps/abseil-cpp/absl/crc/internal/cpu_detect.cc +359 -0
  244. package/deps/abseil-cpp/absl/crc/internal/cpu_detect.h +69 -0
  245. package/deps/abseil-cpp/absl/crc/internal/crc.cc +435 -0
  246. package/deps/abseil-cpp/absl/crc/internal/crc.h +83 -0
  247. package/deps/abseil-cpp/absl/crc/internal/crc32_x86_arm_combined_simd.h +278 -0
  248. package/deps/abseil-cpp/absl/crc/internal/crc32c.h +39 -0
  249. package/deps/abseil-cpp/absl/crc/internal/crc32c_inline.h +72 -0
  250. package/deps/abseil-cpp/absl/crc/internal/crc_cord_state.cc +131 -0
  251. package/deps/abseil-cpp/absl/crc/internal/crc_cord_state.h +159 -0
  252. package/deps/abseil-cpp/absl/crc/internal/crc_cord_state_test.cc +124 -0
  253. package/deps/abseil-cpp/absl/crc/internal/crc_internal.h +161 -0
  254. package/deps/abseil-cpp/absl/crc/internal/crc_memcpy.h +122 -0
  255. package/deps/abseil-cpp/absl/crc/internal/crc_memcpy_fallback.cc +78 -0
  256. package/deps/abseil-cpp/absl/crc/internal/crc_memcpy_test.cc +177 -0
  257. package/deps/abseil-cpp/absl/crc/internal/crc_memcpy_x86_arm_combined.cc +459 -0
  258. package/deps/abseil-cpp/absl/crc/internal/crc_non_temporal_memcpy.cc +93 -0
  259. package/deps/abseil-cpp/absl/crc/internal/crc_x86_arm_combined.cc +762 -0
  260. package/deps/abseil-cpp/absl/crc/internal/gen_crc32c_consts.py +90 -0
  261. package/deps/abseil-cpp/absl/crc/internal/non_temporal_arm_intrinsics.h +81 -0
  262. package/deps/abseil-cpp/absl/crc/internal/non_temporal_memcpy.h +195 -0
  263. package/deps/abseil-cpp/absl/crc/internal/non_temporal_memcpy_test.cc +90 -0
  264. package/deps/abseil-cpp/absl/debugging/BUILD.bazel +483 -0
  265. package/deps/abseil-cpp/absl/debugging/CMakeLists.txt +448 -0
  266. package/deps/abseil-cpp/absl/debugging/failure_signal_handler.cc +434 -0
  267. package/deps/abseil-cpp/absl/debugging/failure_signal_handler.h +121 -0
  268. package/deps/abseil-cpp/absl/debugging/failure_signal_handler_test.cc +166 -0
  269. package/deps/abseil-cpp/absl/debugging/internal/address_is_readable.cc +98 -0
  270. package/deps/abseil-cpp/absl/debugging/internal/address_is_readable.h +32 -0
  271. package/deps/abseil-cpp/absl/debugging/internal/addresses.h +57 -0
  272. package/deps/abseil-cpp/absl/debugging/internal/borrowed_fixup_buffer.cc +118 -0
  273. package/deps/abseil-cpp/absl/debugging/internal/borrowed_fixup_buffer.h +71 -0
  274. package/deps/abseil-cpp/absl/debugging/internal/borrowed_fixup_buffer_test.cc +97 -0
  275. package/deps/abseil-cpp/absl/debugging/internal/bounded_utf8_length_sequence.h +126 -0
  276. package/deps/abseil-cpp/absl/debugging/internal/bounded_utf8_length_sequence_test.cc +126 -0
  277. package/deps/abseil-cpp/absl/debugging/internal/decode_rust_punycode.cc +258 -0
  278. package/deps/abseil-cpp/absl/debugging/internal/decode_rust_punycode.h +55 -0
  279. package/deps/abseil-cpp/absl/debugging/internal/decode_rust_punycode_test.cc +606 -0
  280. package/deps/abseil-cpp/absl/debugging/internal/demangle.cc +2958 -0
  281. package/deps/abseil-cpp/absl/debugging/internal/demangle.h +76 -0
  282. package/deps/abseil-cpp/absl/debugging/internal/demangle_rust.cc +925 -0
  283. package/deps/abseil-cpp/absl/debugging/internal/demangle_rust.h +42 -0
  284. package/deps/abseil-cpp/absl/debugging/internal/demangle_rust_test.cc +584 -0
  285. package/deps/abseil-cpp/absl/debugging/internal/demangle_test.cc +2050 -0
  286. package/deps/abseil-cpp/absl/debugging/internal/elf_mem_image.cc +413 -0
  287. package/deps/abseil-cpp/absl/debugging/internal/elf_mem_image.h +141 -0
  288. package/deps/abseil-cpp/absl/debugging/internal/examine_stack.cc +334 -0
  289. package/deps/abseil-cpp/absl/debugging/internal/examine_stack.h +70 -0
  290. package/deps/abseil-cpp/absl/debugging/internal/stack_consumption.cc +206 -0
  291. package/deps/abseil-cpp/absl/debugging/internal/stack_consumption.h +50 -0
  292. package/deps/abseil-cpp/absl/debugging/internal/stack_consumption_test.cc +50 -0
  293. package/deps/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +288 -0
  294. package/deps/abseil-cpp/absl/debugging/internal/stacktrace_arm-inl.inc +148 -0
  295. package/deps/abseil-cpp/absl/debugging/internal/stacktrace_config.h +96 -0
  296. package/deps/abseil-cpp/absl/debugging/internal/stacktrace_emscripten-inl.inc +112 -0
  297. package/deps/abseil-cpp/absl/debugging/internal/stacktrace_generic-inl.inc +114 -0
  298. package/deps/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +270 -0
  299. package/deps/abseil-cpp/absl/debugging/internal/stacktrace_riscv-inl.inc +204 -0
  300. package/deps/abseil-cpp/absl/debugging/internal/stacktrace_unimplemented-inl.inc +25 -0
  301. package/deps/abseil-cpp/absl/debugging/internal/stacktrace_win32-inl.inc +81 -0
  302. package/deps/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc +410 -0
  303. package/deps/abseil-cpp/absl/debugging/internal/symbolize.h +153 -0
  304. package/deps/abseil-cpp/absl/debugging/internal/utf8_for_code_point.cc +70 -0
  305. package/deps/abseil-cpp/absl/debugging/internal/utf8_for_code_point.h +47 -0
  306. package/deps/abseil-cpp/absl/debugging/internal/utf8_for_code_point_test.cc +175 -0
  307. package/deps/abseil-cpp/absl/debugging/internal/vdso_support.cc +209 -0
  308. package/deps/abseil-cpp/absl/debugging/internal/vdso_support.h +158 -0
  309. package/deps/abseil-cpp/absl/debugging/leak_check.cc +73 -0
  310. package/deps/abseil-cpp/absl/debugging/leak_check.h +150 -0
  311. package/deps/abseil-cpp/absl/debugging/leak_check_fail_test.cc +41 -0
  312. package/deps/abseil-cpp/absl/debugging/leak_check_test.cc +41 -0
  313. package/deps/abseil-cpp/absl/debugging/stacktrace.cc +244 -0
  314. package/deps/abseil-cpp/absl/debugging/stacktrace.h +302 -0
  315. package/deps/abseil-cpp/absl/debugging/stacktrace_benchmark.cc +78 -0
  316. package/deps/abseil-cpp/absl/debugging/stacktrace_test.cc +505 -0
  317. package/deps/abseil-cpp/absl/debugging/symbolize.cc +44 -0
  318. package/deps/abseil-cpp/absl/debugging/symbolize.h +99 -0
  319. package/deps/abseil-cpp/absl/debugging/symbolize_darwin.inc +102 -0
  320. package/deps/abseil-cpp/absl/debugging/symbolize_elf.inc +1756 -0
  321. package/deps/abseil-cpp/absl/debugging/symbolize_emscripten.inc +63 -0
  322. package/deps/abseil-cpp/absl/debugging/symbolize_test.cc +619 -0
  323. package/deps/abseil-cpp/absl/debugging/symbolize_unimplemented.inc +40 -0
  324. package/deps/abseil-cpp/absl/debugging/symbolize_win32.inc +99 -0
  325. package/deps/abseil-cpp/absl/extend/CMakeLists.txt +140 -0
  326. package/deps/abseil-cpp/absl/extend/internal/BUILD.bazel +127 -0
  327. package/deps/abseil-cpp/absl/extend/internal/aggregate.h +1687 -0
  328. package/deps/abseil-cpp/absl/extend/internal/aggregate_test.cc +867 -0
  329. package/deps/abseil-cpp/absl/extend/internal/dependencies.h +83 -0
  330. package/deps/abseil-cpp/absl/extend/internal/dependencies_test.cc +117 -0
  331. package/deps/abseil-cpp/absl/extend/internal/is_tuple_hashable.h +45 -0
  332. package/deps/abseil-cpp/absl/extend/internal/num_bases.h +87 -0
  333. package/deps/abseil-cpp/absl/extend/internal/num_bases_test.cc +91 -0
  334. package/deps/abseil-cpp/absl/extend/internal/num_initializers.h +113 -0
  335. package/deps/abseil-cpp/absl/extend/internal/num_initializers_test.cc +250 -0
  336. package/deps/abseil-cpp/absl/extend/internal/reflection.cc +112 -0
  337. package/deps/abseil-cpp/absl/extend/internal/reflection.h +75 -0
  338. package/deps/abseil-cpp/absl/extend/internal/tuple.h +51 -0
  339. package/deps/abseil-cpp/absl/flags/BUILD.bazel +618 -0
  340. package/deps/abseil-cpp/absl/flags/CMakeLists.txt +482 -0
  341. package/deps/abseil-cpp/absl/flags/commandlineflag.cc +35 -0
  342. package/deps/abseil-cpp/absl/flags/commandlineflag.h +219 -0
  343. package/deps/abseil-cpp/absl/flags/commandlineflag_test.cc +236 -0
  344. package/deps/abseil-cpp/absl/flags/config.h +68 -0
  345. package/deps/abseil-cpp/absl/flags/config_test.cc +61 -0
  346. package/deps/abseil-cpp/absl/flags/declare.h +77 -0
  347. package/deps/abseil-cpp/absl/flags/flag.h +307 -0
  348. package/deps/abseil-cpp/absl/flags/flag_benchmark.cc +251 -0
  349. package/deps/abseil-cpp/absl/flags/flag_benchmark.lds +13 -0
  350. package/deps/abseil-cpp/absl/flags/flag_test.cc +1381 -0
  351. package/deps/abseil-cpp/absl/flags/flag_test_defs.cc +24 -0
  352. package/deps/abseil-cpp/absl/flags/internal/commandlineflag.cc +26 -0
  353. package/deps/abseil-cpp/absl/flags/internal/commandlineflag.h +68 -0
  354. package/deps/abseil-cpp/absl/flags/internal/flag.cc +712 -0
  355. package/deps/abseil-cpp/absl/flags/internal/flag.h +969 -0
  356. package/deps/abseil-cpp/absl/flags/internal/parse.h +70 -0
  357. package/deps/abseil-cpp/absl/flags/internal/path_util.h +62 -0
  358. package/deps/abseil-cpp/absl/flags/internal/path_util_test.cc +46 -0
  359. package/deps/abseil-cpp/absl/flags/internal/private_handle_accessor.cc +69 -0
  360. package/deps/abseil-cpp/absl/flags/internal/private_handle_accessor.h +64 -0
  361. package/deps/abseil-cpp/absl/flags/internal/program_name.cc +61 -0
  362. package/deps/abseil-cpp/absl/flags/internal/program_name.h +50 -0
  363. package/deps/abseil-cpp/absl/flags/internal/program_name_test.cc +61 -0
  364. package/deps/abseil-cpp/absl/flags/internal/registry.h +98 -0
  365. package/deps/abseil-cpp/absl/flags/internal/sequence_lock.h +187 -0
  366. package/deps/abseil-cpp/absl/flags/internal/sequence_lock_test.cc +169 -0
  367. package/deps/abseil-cpp/absl/flags/internal/usage.cc +558 -0
  368. package/deps/abseil-cpp/absl/flags/internal/usage.h +106 -0
  369. package/deps/abseil-cpp/absl/flags/internal/usage_test.cc +550 -0
  370. package/deps/abseil-cpp/absl/flags/marshalling.cc +276 -0
  371. package/deps/abseil-cpp/absl/flags/marshalling.h +361 -0
  372. package/deps/abseil-cpp/absl/flags/marshalling_test.cc +1220 -0
  373. package/deps/abseil-cpp/absl/flags/parse.cc +952 -0
  374. package/deps/abseil-cpp/absl/flags/parse.h +130 -0
  375. package/deps/abseil-cpp/absl/flags/parse_test.cc +1094 -0
  376. package/deps/abseil-cpp/absl/flags/reflection.cc +368 -0
  377. package/deps/abseil-cpp/absl/flags/reflection.h +90 -0
  378. package/deps/abseil-cpp/absl/flags/reflection_test.cc +268 -0
  379. package/deps/abseil-cpp/absl/flags/usage.cc +66 -0
  380. package/deps/abseil-cpp/absl/flags/usage.h +43 -0
  381. package/deps/abseil-cpp/absl/flags/usage_config.cc +170 -0
  382. package/deps/abseil-cpp/absl/flags/usage_config.h +135 -0
  383. package/deps/abseil-cpp/absl/flags/usage_config_test.cc +205 -0
  384. package/deps/abseil-cpp/absl/functional/BUILD.bazel +173 -0
  385. package/deps/abseil-cpp/absl/functional/CMakeLists.txt +140 -0
  386. package/deps/abseil-cpp/absl/functional/any_invocable.h +336 -0
  387. package/deps/abseil-cpp/absl/functional/any_invocable_test.cc +1687 -0
  388. package/deps/abseil-cpp/absl/functional/bind_front.h +200 -0
  389. package/deps/abseil-cpp/absl/functional/bind_front_test.cc +227 -0
  390. package/deps/abseil-cpp/absl/functional/function_ref.h +249 -0
  391. package/deps/abseil-cpp/absl/functional/function_ref_test.cc +416 -0
  392. package/deps/abseil-cpp/absl/functional/function_type_benchmark.cc +176 -0
  393. package/deps/abseil-cpp/absl/functional/internal/any_invocable.h +787 -0
  394. package/deps/abseil-cpp/absl/functional/internal/front_binder.h +93 -0
  395. package/deps/abseil-cpp/absl/functional/internal/function_ref.h +151 -0
  396. package/deps/abseil-cpp/absl/functional/overload.h +72 -0
  397. package/deps/abseil-cpp/absl/functional/overload_test.cc +207 -0
  398. package/deps/abseil-cpp/absl/hash/BUILD.bazel +220 -0
  399. package/deps/abseil-cpp/absl/hash/CMakeLists.txt +179 -0
  400. package/deps/abseil-cpp/absl/hash/hash.h +466 -0
  401. package/deps/abseil-cpp/absl/hash/hash_benchmark.cc +398 -0
  402. package/deps/abseil-cpp/absl/hash/hash_instantiated_test.cc +224 -0
  403. package/deps/abseil-cpp/absl/hash/hash_test.cc +1320 -0
  404. package/deps/abseil-cpp/absl/hash/hash_testing.h +380 -0
  405. package/deps/abseil-cpp/absl/hash/internal/city.cc +337 -0
  406. package/deps/abseil-cpp/absl/hash/internal/city.h +78 -0
  407. package/deps/abseil-cpp/absl/hash/internal/city_test.cc +597 -0
  408. package/deps/abseil-cpp/absl/hash/internal/hash.cc +430 -0
  409. package/deps/abseil-cpp/absl/hash/internal/hash.h +1563 -0
  410. package/deps/abseil-cpp/absl/hash/internal/hash_test.h +87 -0
  411. package/deps/abseil-cpp/absl/hash/internal/low_level_hash_test.cc +509 -0
  412. package/deps/abseil-cpp/absl/hash/internal/print_hash_of.cc +23 -0
  413. package/deps/abseil-cpp/absl/hash/internal/spy_hash_state.h +286 -0
  414. package/deps/abseil-cpp/absl/hash/internal/weakly_mixed_integer.h +38 -0
  415. package/deps/abseil-cpp/absl/log/BUILD.bazel +686 -0
  416. package/deps/abseil-cpp/absl/log/CMakeLists.txt +1239 -0
  417. package/deps/abseil-cpp/absl/log/absl_check.h +117 -0
  418. package/deps/abseil-cpp/absl/log/absl_check_test.cc +58 -0
  419. package/deps/abseil-cpp/absl/log/absl_log.h +115 -0
  420. package/deps/abseil-cpp/absl/log/absl_log_basic_test.cc +22 -0
  421. package/deps/abseil-cpp/absl/log/absl_vlog_is_on.h +95 -0
  422. package/deps/abseil-cpp/absl/log/check.h +210 -0
  423. package/deps/abseil-cpp/absl/log/check_test.cc +58 -0
  424. package/deps/abseil-cpp/absl/log/check_test_impl.inc +1035 -0
  425. package/deps/abseil-cpp/absl/log/die_if_null.cc +34 -0
  426. package/deps/abseil-cpp/absl/log/die_if_null.h +97 -0
  427. package/deps/abseil-cpp/absl/log/die_if_null_test.cc +107 -0
  428. package/deps/abseil-cpp/absl/log/flags.cc +143 -0
  429. package/deps/abseil-cpp/absl/log/flags.h +43 -0
  430. package/deps/abseil-cpp/absl/log/flags_test.cc +195 -0
  431. package/deps/abseil-cpp/absl/log/globals.cc +178 -0
  432. package/deps/abseil-cpp/absl/log/globals.h +230 -0
  433. package/deps/abseil-cpp/absl/log/globals_test.cc +156 -0
  434. package/deps/abseil-cpp/absl/log/initialize.cc +38 -0
  435. package/deps/abseil-cpp/absl/log/initialize.h +45 -0
  436. package/deps/abseil-cpp/absl/log/internal/BUILD.bazel +581 -0
  437. package/deps/abseil-cpp/absl/log/internal/append_truncated.h +75 -0
  438. package/deps/abseil-cpp/absl/log/internal/check_impl.h +151 -0
  439. package/deps/abseil-cpp/absl/log/internal/check_op.cc +147 -0
  440. package/deps/abseil-cpp/absl/log/internal/check_op.h +565 -0
  441. package/deps/abseil-cpp/absl/log/internal/conditions.cc +85 -0
  442. package/deps/abseil-cpp/absl/log/internal/conditions.h +247 -0
  443. package/deps/abseil-cpp/absl/log/internal/config.h +45 -0
  444. package/deps/abseil-cpp/absl/log/internal/container.h +312 -0
  445. package/deps/abseil-cpp/absl/log/internal/container_test.cc +254 -0
  446. package/deps/abseil-cpp/absl/log/internal/flags.h +59 -0
  447. package/deps/abseil-cpp/absl/log/internal/fnmatch.cc +73 -0
  448. package/deps/abseil-cpp/absl/log/internal/fnmatch.h +35 -0
  449. package/deps/abseil-cpp/absl/log/internal/fnmatch_benchmark.cc +29 -0
  450. package/deps/abseil-cpp/absl/log/internal/fnmatch_test.cc +60 -0
  451. package/deps/abseil-cpp/absl/log/internal/globals.cc +145 -0
  452. package/deps/abseil-cpp/absl/log/internal/globals.h +101 -0
  453. package/deps/abseil-cpp/absl/log/internal/log_format.cc +205 -0
  454. package/deps/abseil-cpp/absl/log/internal/log_format.h +78 -0
  455. package/deps/abseil-cpp/absl/log/internal/log_impl.h +280 -0
  456. package/deps/abseil-cpp/absl/log/internal/log_message.cc +787 -0
  457. package/deps/abseil-cpp/absl/log/internal/log_message.h +455 -0
  458. package/deps/abseil-cpp/absl/log/internal/log_sink_set.cc +296 -0
  459. package/deps/abseil-cpp/absl/log/internal/log_sink_set.h +54 -0
  460. package/deps/abseil-cpp/absl/log/internal/nullguard.cc +35 -0
  461. package/deps/abseil-cpp/absl/log/internal/nullguard.h +88 -0
  462. package/deps/abseil-cpp/absl/log/internal/nullstream.h +128 -0
  463. package/deps/abseil-cpp/absl/log/internal/proto.cc +218 -0
  464. package/deps/abseil-cpp/absl/log/internal/proto.h +298 -0
  465. package/deps/abseil-cpp/absl/log/internal/stderr_log_sink_test.cc +105 -0
  466. package/deps/abseil-cpp/absl/log/internal/strip.h +99 -0
  467. package/deps/abseil-cpp/absl/log/internal/structured.h +160 -0
  468. package/deps/abseil-cpp/absl/log/internal/structured_proto.cc +115 -0
  469. package/deps/abseil-cpp/absl/log/internal/structured_proto.h +107 -0
  470. package/deps/abseil-cpp/absl/log/internal/structured_proto_test.cc +120 -0
  471. package/deps/abseil-cpp/absl/log/internal/test_actions.cc +75 -0
  472. package/deps/abseil-cpp/absl/log/internal/test_actions.h +90 -0
  473. package/deps/abseil-cpp/absl/log/internal/test_helpers.cc +82 -0
  474. package/deps/abseil-cpp/absl/log/internal/test_helpers.h +71 -0
  475. package/deps/abseil-cpp/absl/log/internal/test_matchers.cc +216 -0
  476. package/deps/abseil-cpp/absl/log/internal/test_matchers.h +94 -0
  477. package/deps/abseil-cpp/absl/log/internal/vlog_config.cc +347 -0
  478. package/deps/abseil-cpp/absl/log/internal/vlog_config.h +164 -0
  479. package/deps/abseil-cpp/absl/log/internal/vlog_config_benchmark.cc +187 -0
  480. package/deps/abseil-cpp/absl/log/internal/voidify.h +50 -0
  481. package/deps/abseil-cpp/absl/log/log.h +378 -0
  482. package/deps/abseil-cpp/absl/log/log_basic_test.cc +22 -0
  483. package/deps/abseil-cpp/absl/log/log_basic_test_impl.inc +654 -0
  484. package/deps/abseil-cpp/absl/log/log_benchmark.cc +164 -0
  485. package/deps/abseil-cpp/absl/log/log_entry.cc +263 -0
  486. package/deps/abseil-cpp/absl/log/log_entry.h +223 -0
  487. package/deps/abseil-cpp/absl/log/log_entry_test.cc +468 -0
  488. package/deps/abseil-cpp/absl/log/log_format_test.cc +2261 -0
  489. package/deps/abseil-cpp/absl/log/log_macro_hygiene_test.cc +187 -0
  490. package/deps/abseil-cpp/absl/log/log_modifier_methods_test.cc +244 -0
  491. package/deps/abseil-cpp/absl/log/log_sink.cc +23 -0
  492. package/deps/abseil-cpp/absl/log/log_sink.h +71 -0
  493. package/deps/abseil-cpp/absl/log/log_sink_registry.h +64 -0
  494. package/deps/abseil-cpp/absl/log/log_sink_test.cc +418 -0
  495. package/deps/abseil-cpp/absl/log/log_streamer.h +181 -0
  496. package/deps/abseil-cpp/absl/log/log_streamer_test.cc +451 -0
  497. package/deps/abseil-cpp/absl/log/scoped_mock_log.cc +86 -0
  498. package/deps/abseil-cpp/absl/log/scoped_mock_log.h +203 -0
  499. package/deps/abseil-cpp/absl/log/scoped_mock_log_test.cc +295 -0
  500. package/deps/abseil-cpp/absl/log/stripping_test.cc +502 -0
  501. package/deps/abseil-cpp/absl/log/structured.h +75 -0
  502. package/deps/abseil-cpp/absl/log/structured_test.cc +64 -0
  503. package/deps/abseil-cpp/absl/log/vlog_is_on.h +74 -0
  504. package/deps/abseil-cpp/absl/log/vlog_is_on_test.cc +233 -0
  505. package/deps/abseil-cpp/absl/memory/BUILD.bazel +62 -0
  506. package/deps/abseil-cpp/absl/memory/CMakeLists.txt +41 -0
  507. package/deps/abseil-cpp/absl/memory/memory.h +278 -0
  508. package/deps/abseil-cpp/absl/memory/memory_test.cc +222 -0
  509. package/deps/abseil-cpp/absl/meta/BUILD.bazel +112 -0
  510. package/deps/abseil-cpp/absl/meta/CMakeLists.txt +100 -0
  511. package/deps/abseil-cpp/absl/meta/internal/constexpr_testing.h +73 -0
  512. package/deps/abseil-cpp/absl/meta/internal/constexpr_testing_test.cc +40 -0
  513. package/deps/abseil-cpp/absl/meta/internal/requires.h +67 -0
  514. package/deps/abseil-cpp/absl/meta/internal/requires_test.cc +66 -0
  515. package/deps/abseil-cpp/absl/meta/type_traits.h +582 -0
  516. package/deps/abseil-cpp/absl/meta/type_traits_test.cc +378 -0
  517. package/deps/abseil-cpp/absl/numeric/BUILD.bazel +145 -0
  518. package/deps/abseil-cpp/absl/numeric/CMakeLists.txt +104 -0
  519. package/deps/abseil-cpp/absl/numeric/bits.h +262 -0
  520. package/deps/abseil-cpp/absl/numeric/bits_benchmark.cc +73 -0
  521. package/deps/abseil-cpp/absl/numeric/bits_test.cc +724 -0
  522. package/deps/abseil-cpp/absl/numeric/int128.cc +344 -0
  523. package/deps/abseil-cpp/absl/numeric/int128.h +1224 -0
  524. package/deps/abseil-cpp/absl/numeric/int128_benchmark.cc +281 -0
  525. package/deps/abseil-cpp/absl/numeric/int128_have_intrinsic.inc +303 -0
  526. package/deps/abseil-cpp/absl/numeric/int128_no_intrinsic.inc +347 -0
  527. package/deps/abseil-cpp/absl/numeric/int128_stream_test.cc +1400 -0
  528. package/deps/abseil-cpp/absl/numeric/int128_test.cc +1407 -0
  529. package/deps/abseil-cpp/absl/numeric/internal/bits.h +394 -0
  530. package/deps/abseil-cpp/absl/numeric/internal/representation.h +55 -0
  531. package/deps/abseil-cpp/absl/profiling/BUILD.bazel +188 -0
  532. package/deps/abseil-cpp/absl/profiling/CMakeLists.txt +132 -0
  533. package/deps/abseil-cpp/absl/profiling/hashtable.cc +135 -0
  534. package/deps/abseil-cpp/absl/profiling/hashtable.h +40 -0
  535. package/deps/abseil-cpp/absl/profiling/internal/exponential_biased.cc +93 -0
  536. package/deps/abseil-cpp/absl/profiling/internal/exponential_biased.h +130 -0
  537. package/deps/abseil-cpp/absl/profiling/internal/exponential_biased_test.cc +203 -0
  538. package/deps/abseil-cpp/absl/profiling/internal/periodic_sampler.cc +53 -0
  539. package/deps/abseil-cpp/absl/profiling/internal/periodic_sampler.h +211 -0
  540. package/deps/abseil-cpp/absl/profiling/internal/periodic_sampler_benchmark.cc +79 -0
  541. package/deps/abseil-cpp/absl/profiling/internal/periodic_sampler_test.cc +177 -0
  542. package/deps/abseil-cpp/absl/profiling/internal/profile_builder.cc +463 -0
  543. package/deps/abseil-cpp/absl/profiling/internal/profile_builder.h +161 -0
  544. package/deps/abseil-cpp/absl/profiling/internal/sample_recorder.h +253 -0
  545. package/deps/abseil-cpp/absl/profiling/internal/sample_recorder_test.cc +188 -0
  546. package/deps/abseil-cpp/absl/random/BUILD.bazel +550 -0
  547. package/deps/abseil-cpp/absl/random/CMakeLists.txt +1250 -0
  548. package/deps/abseil-cpp/absl/random/benchmarks.cc +376 -0
  549. package/deps/abseil-cpp/absl/random/bernoulli_distribution.h +202 -0
  550. package/deps/abseil-cpp/absl/random/bernoulli_distribution_test.cc +217 -0
  551. package/deps/abseil-cpp/absl/random/beta_distribution.h +429 -0
  552. package/deps/abseil-cpp/absl/random/beta_distribution_test.cc +615 -0
  553. package/deps/abseil-cpp/absl/random/bit_gen_ref.h +187 -0
  554. package/deps/abseil-cpp/absl/random/bit_gen_ref_test.cc +107 -0
  555. package/deps/abseil-cpp/absl/random/discrete_distribution.cc +108 -0
  556. package/deps/abseil-cpp/absl/random/discrete_distribution.h +249 -0
  557. package/deps/abseil-cpp/absl/random/discrete_distribution_test.cc +251 -0
  558. package/deps/abseil-cpp/absl/random/distributions.h +450 -0
  559. package/deps/abseil-cpp/absl/random/distributions_test.cc +516 -0
  560. package/deps/abseil-cpp/absl/random/examples_test.cc +98 -0
  561. package/deps/abseil-cpp/absl/random/exponential_distribution.h +166 -0
  562. package/deps/abseil-cpp/absl/random/exponential_distribution_test.cc +426 -0
  563. package/deps/abseil-cpp/absl/random/gaussian_distribution.cc +104 -0
  564. package/deps/abseil-cpp/absl/random/gaussian_distribution.h +276 -0
  565. package/deps/abseil-cpp/absl/random/gaussian_distribution_test.cc +561 -0
  566. package/deps/abseil-cpp/absl/random/generators_test.cc +185 -0
  567. package/deps/abseil-cpp/absl/random/internal/BUILD.bazel +863 -0
  568. package/deps/abseil-cpp/absl/random/internal/chi_square.cc +230 -0
  569. package/deps/abseil-cpp/absl/random/internal/chi_square.h +89 -0
  570. package/deps/abseil-cpp/absl/random/internal/chi_square_test.cc +364 -0
  571. package/deps/abseil-cpp/absl/random/internal/distribution_caller.h +96 -0
  572. package/deps/abseil-cpp/absl/random/internal/distribution_test_util.cc +418 -0
  573. package/deps/abseil-cpp/absl/random/internal/distribution_test_util.h +113 -0
  574. package/deps/abseil-cpp/absl/random/internal/distribution_test_util_test.cc +193 -0
  575. package/deps/abseil-cpp/absl/random/internal/entropy_pool.cc +185 -0
  576. package/deps/abseil-cpp/absl/random/internal/entropy_pool.h +35 -0
  577. package/deps/abseil-cpp/absl/random/internal/entropy_pool_test.cc +119 -0
  578. package/deps/abseil-cpp/absl/random/internal/explicit_seed_seq.h +92 -0
  579. package/deps/abseil-cpp/absl/random/internal/explicit_seed_seq_test.cc +241 -0
  580. package/deps/abseil-cpp/absl/random/internal/fast_uniform_bits.h +271 -0
  581. package/deps/abseil-cpp/absl/random/internal/fast_uniform_bits_test.cc +336 -0
  582. package/deps/abseil-cpp/absl/random/internal/fastmath.h +57 -0
  583. package/deps/abseil-cpp/absl/random/internal/fastmath_test.cc +95 -0
  584. package/deps/abseil-cpp/absl/random/internal/gaussian_distribution_gentables.cc +142 -0
  585. package/deps/abseil-cpp/absl/random/internal/generate_real.h +144 -0
  586. package/deps/abseil-cpp/absl/random/internal/generate_real_test.cc +496 -0
  587. package/deps/abseil-cpp/absl/random/internal/iostream_state_saver.h +248 -0
  588. package/deps/abseil-cpp/absl/random/internal/iostream_state_saver_test.cc +373 -0
  589. package/deps/abseil-cpp/absl/random/internal/mock_helpers.h +160 -0
  590. package/deps/abseil-cpp/absl/random/internal/mock_overload_set.h +122 -0
  591. package/deps/abseil-cpp/absl/random/internal/mock_validators.h +98 -0
  592. package/deps/abseil-cpp/absl/random/internal/nanobenchmark.cc +804 -0
  593. package/deps/abseil-cpp/absl/random/internal/nanobenchmark.h +172 -0
  594. package/deps/abseil-cpp/absl/random/internal/nanobenchmark_test.cc +79 -0
  595. package/deps/abseil-cpp/absl/random/internal/nonsecure_base.h +160 -0
  596. package/deps/abseil-cpp/absl/random/internal/nonsecure_base_test.cc +267 -0
  597. package/deps/abseil-cpp/absl/random/internal/pcg_engine.h +287 -0
  598. package/deps/abseil-cpp/absl/random/internal/pcg_engine_test.cc +638 -0
  599. package/deps/abseil-cpp/absl/random/internal/platform.h +158 -0
  600. package/deps/abseil-cpp/absl/random/internal/randen.cc +91 -0
  601. package/deps/abseil-cpp/absl/random/internal/randen.h +96 -0
  602. package/deps/abseil-cpp/absl/random/internal/randen_benchmarks.cc +177 -0
  603. package/deps/abseil-cpp/absl/random/internal/randen_detect.cc +280 -0
  604. package/deps/abseil-cpp/absl/random/internal/randen_detect.h +33 -0
  605. package/deps/abseil-cpp/absl/random/internal/randen_engine.h +265 -0
  606. package/deps/abseil-cpp/absl/random/internal/randen_engine_test.cc +654 -0
  607. package/deps/abseil-cpp/absl/random/internal/randen_hwaes.cc +526 -0
  608. package/deps/abseil-cpp/absl/random/internal/randen_hwaes.h +50 -0
  609. package/deps/abseil-cpp/absl/random/internal/randen_hwaes_test.cc +99 -0
  610. package/deps/abseil-cpp/absl/random/internal/randen_round_keys.cc +462 -0
  611. package/deps/abseil-cpp/absl/random/internal/randen_slow.cc +471 -0
  612. package/deps/abseil-cpp/absl/random/internal/randen_slow.h +40 -0
  613. package/deps/abseil-cpp/absl/random/internal/randen_slow_test.cc +61 -0
  614. package/deps/abseil-cpp/absl/random/internal/randen_test.cc +75 -0
  615. package/deps/abseil-cpp/absl/random/internal/randen_traits.h +88 -0
  616. package/deps/abseil-cpp/absl/random/internal/salted_seed_seq.h +165 -0
  617. package/deps/abseil-cpp/absl/random/internal/salted_seed_seq_test.cc +172 -0
  618. package/deps/abseil-cpp/absl/random/internal/seed_material.cc +249 -0
  619. package/deps/abseil-cpp/absl/random/internal/seed_material.h +104 -0
  620. package/deps/abseil-cpp/absl/random/internal/seed_material_test.cc +205 -0
  621. package/deps/abseil-cpp/absl/random/internal/sequence_urbg.h +60 -0
  622. package/deps/abseil-cpp/absl/random/internal/traits.h +149 -0
  623. package/deps/abseil-cpp/absl/random/internal/traits_test.cc +123 -0
  624. package/deps/abseil-cpp/absl/random/internal/uniform_helper.h +244 -0
  625. package/deps/abseil-cpp/absl/random/internal/uniform_helper_test.cc +279 -0
  626. package/deps/abseil-cpp/absl/random/internal/wide_multiply.h +95 -0
  627. package/deps/abseil-cpp/absl/random/internal/wide_multiply_test.cc +119 -0
  628. package/deps/abseil-cpp/absl/random/log_uniform_int_distribution.h +253 -0
  629. package/deps/abseil-cpp/absl/random/log_uniform_int_distribution_test.cc +277 -0
  630. package/deps/abseil-cpp/absl/random/mock_distributions.h +269 -0
  631. package/deps/abseil-cpp/absl/random/mock_distributions_test.cc +281 -0
  632. package/deps/abseil-cpp/absl/random/mocking_bit_gen.h +237 -0
  633. package/deps/abseil-cpp/absl/random/mocking_bit_gen_test.cc +403 -0
  634. package/deps/abseil-cpp/absl/random/poisson_distribution.h +262 -0
  635. package/deps/abseil-cpp/absl/random/poisson_distribution_test.cc +569 -0
  636. package/deps/abseil-cpp/absl/random/random.h +224 -0
  637. package/deps/abseil-cpp/absl/random/seed_gen_exception.cc +45 -0
  638. package/deps/abseil-cpp/absl/random/seed_gen_exception.h +55 -0
  639. package/deps/abseil-cpp/absl/random/seed_sequences.cc +33 -0
  640. package/deps/abseil-cpp/absl/random/seed_sequences.h +112 -0
  641. package/deps/abseil-cpp/absl/random/seed_sequences_test.cc +126 -0
  642. package/deps/abseil-cpp/absl/random/uniform_int_distribution.h +276 -0
  643. package/deps/abseil-cpp/absl/random/uniform_int_distribution_test.cc +259 -0
  644. package/deps/abseil-cpp/absl/random/uniform_real_distribution.h +204 -0
  645. package/deps/abseil-cpp/absl/random/uniform_real_distribution_test.cc +394 -0
  646. package/deps/abseil-cpp/absl/random/zipf_distribution.h +273 -0
  647. package/deps/abseil-cpp/absl/random/zipf_distribution_test.cc +423 -0
  648. package/deps/abseil-cpp/absl/status/BUILD.bazel +211 -0
  649. package/deps/abseil-cpp/absl/status/CMakeLists.txt +159 -0
  650. package/deps/abseil-cpp/absl/status/internal/status_internal.cc +251 -0
  651. package/deps/abseil-cpp/absl/status/internal/status_internal.h +133 -0
  652. package/deps/abseil-cpp/absl/status/internal/status_matchers.cc +69 -0
  653. package/deps/abseil-cpp/absl/status/internal/status_matchers.h +246 -0
  654. package/deps/abseil-cpp/absl/status/internal/statusor_internal.h +657 -0
  655. package/deps/abseil-cpp/absl/status/status.cc +421 -0
  656. package/deps/abseil-cpp/absl/status/status.h +948 -0
  657. package/deps/abseil-cpp/absl/status/status_benchmark.cc +37 -0
  658. package/deps/abseil-cpp/absl/status/status_matchers.h +166 -0
  659. package/deps/abseil-cpp/absl/status/status_matchers_test.cc +211 -0
  660. package/deps/abseil-cpp/absl/status/status_payload_printer.cc +36 -0
  661. package/deps/abseil-cpp/absl/status/status_payload_printer.h +52 -0
  662. package/deps/abseil-cpp/absl/status/status_test.cc +580 -0
  663. package/deps/abseil-cpp/absl/status/statusor.cc +106 -0
  664. package/deps/abseil-cpp/absl/status/statusor.h +743 -0
  665. package/deps/abseil-cpp/absl/status/statusor_benchmark.cc +480 -0
  666. package/deps/abseil-cpp/absl/status/statusor_test.cc +2124 -0
  667. package/deps/abseil-cpp/absl/strings/BUILD.bazel +1593 -0
  668. package/deps/abseil-cpp/absl/strings/CMakeLists.txt +1295 -0
  669. package/deps/abseil-cpp/absl/strings/ascii.cc +296 -0
  670. package/deps/abseil-cpp/absl/strings/ascii.h +289 -0
  671. package/deps/abseil-cpp/absl/strings/ascii_benchmark.cc +157 -0
  672. package/deps/abseil-cpp/absl/strings/ascii_test.cc +374 -0
  673. package/deps/abseil-cpp/absl/strings/atod_manual_test.cc +193 -0
  674. package/deps/abseil-cpp/absl/strings/char_formatting_test.cc +169 -0
  675. package/deps/abseil-cpp/absl/strings/charconv.cc +1442 -0
  676. package/deps/abseil-cpp/absl/strings/charconv.h +123 -0
  677. package/deps/abseil-cpp/absl/strings/charconv_benchmark.cc +203 -0
  678. package/deps/abseil-cpp/absl/strings/charconv_test.cc +787 -0
  679. package/deps/abseil-cpp/absl/strings/charset.h +163 -0
  680. package/deps/abseil-cpp/absl/strings/charset_benchmark.cc +57 -0
  681. package/deps/abseil-cpp/absl/strings/charset_test.cc +181 -0
  682. package/deps/abseil-cpp/absl/strings/cord.cc +1582 -0
  683. package/deps/abseil-cpp/absl/strings/cord.h +1763 -0
  684. package/deps/abseil-cpp/absl/strings/cord_analysis.cc +196 -0
  685. package/deps/abseil-cpp/absl/strings/cord_analysis.h +63 -0
  686. package/deps/abseil-cpp/absl/strings/cord_buffer.h +572 -0
  687. package/deps/abseil-cpp/absl/strings/cord_buffer_test.cc +322 -0
  688. package/deps/abseil-cpp/absl/strings/cord_test.cc +3421 -0
  689. package/deps/abseil-cpp/absl/strings/cord_test_helpers.h +122 -0
  690. package/deps/abseil-cpp/absl/strings/cordz_test.cc +468 -0
  691. package/deps/abseil-cpp/absl/strings/cordz_test_helpers.h +152 -0
  692. package/deps/abseil-cpp/absl/strings/escaping.cc +1035 -0
  693. package/deps/abseil-cpp/absl/strings/escaping.h +185 -0
  694. package/deps/abseil-cpp/absl/strings/escaping_benchmark.cc +124 -0
  695. package/deps/abseil-cpp/absl/strings/escaping_test.cc +760 -0
  696. package/deps/abseil-cpp/absl/strings/has_absl_stringify.h +64 -0
  697. package/deps/abseil-cpp/absl/strings/has_absl_stringify_test.cc +40 -0
  698. package/deps/abseil-cpp/absl/strings/has_ostream_operator.h +42 -0
  699. package/deps/abseil-cpp/absl/strings/has_ostream_operator_test.cc +41 -0
  700. package/deps/abseil-cpp/absl/strings/internal/append_and_overwrite.h +93 -0
  701. package/deps/abseil-cpp/absl/strings/internal/append_and_overwrite_test.cc +95 -0
  702. package/deps/abseil-cpp/absl/strings/internal/charconv_bigint.cc +357 -0
  703. package/deps/abseil-cpp/absl/strings/internal/charconv_bigint.h +433 -0
  704. package/deps/abseil-cpp/absl/strings/internal/charconv_bigint_test.cc +260 -0
  705. package/deps/abseil-cpp/absl/strings/internal/charconv_parse.cc +504 -0
  706. package/deps/abseil-cpp/absl/strings/internal/charconv_parse.h +99 -0
  707. package/deps/abseil-cpp/absl/strings/internal/charconv_parse_test.cc +357 -0
  708. package/deps/abseil-cpp/absl/strings/internal/cord_data_edge.h +63 -0
  709. package/deps/abseil-cpp/absl/strings/internal/cord_data_edge_test.cc +130 -0
  710. package/deps/abseil-cpp/absl/strings/internal/cord_internal.cc +70 -0
  711. package/deps/abseil-cpp/absl/strings/internal/cord_internal.h +942 -0
  712. package/deps/abseil-cpp/absl/strings/internal/cord_rep_btree.cc +1237 -0
  713. package/deps/abseil-cpp/absl/strings/internal/cord_rep_btree.h +944 -0
  714. package/deps/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator.cc +187 -0
  715. package/deps/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator.h +267 -0
  716. package/deps/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator_test.cc +346 -0
  717. package/deps/abseil-cpp/absl/strings/internal/cord_rep_btree_reader.cc +69 -0
  718. package/deps/abseil-cpp/absl/strings/internal/cord_rep_btree_reader.h +212 -0
  719. package/deps/abseil-cpp/absl/strings/internal/cord_rep_btree_reader_test.cc +293 -0
  720. package/deps/abseil-cpp/absl/strings/internal/cord_rep_btree_test.cc +1568 -0
  721. package/deps/abseil-cpp/absl/strings/internal/cord_rep_consume.cc +64 -0
  722. package/deps/abseil-cpp/absl/strings/internal/cord_rep_consume.h +47 -0
  723. package/deps/abseil-cpp/absl/strings/internal/cord_rep_crc.cc +56 -0
  724. package/deps/abseil-cpp/absl/strings/internal/cord_rep_crc.h +103 -0
  725. package/deps/abseil-cpp/absl/strings/internal/cord_rep_crc_test.cc +130 -0
  726. package/deps/abseil-cpp/absl/strings/internal/cord_rep_flat.h +195 -0
  727. package/deps/abseil-cpp/absl/strings/internal/cord_rep_test_util.h +205 -0
  728. package/deps/abseil-cpp/absl/strings/internal/cordz_functions.cc +102 -0
  729. package/deps/abseil-cpp/absl/strings/internal/cordz_functions.h +87 -0
  730. package/deps/abseil-cpp/absl/strings/internal/cordz_functions_test.cc +147 -0
  731. package/deps/abseil-cpp/absl/strings/internal/cordz_handle.cc +165 -0
  732. package/deps/abseil-cpp/absl/strings/internal/cordz_handle.h +98 -0
  733. package/deps/abseil-cpp/absl/strings/internal/cordz_handle_test.cc +265 -0
  734. package/deps/abseil-cpp/absl/strings/internal/cordz_info.cc +424 -0
  735. package/deps/abseil-cpp/absl/strings/internal/cordz_info.h +295 -0
  736. package/deps/abseil-cpp/absl/strings/internal/cordz_info_statistics_test.cc +510 -0
  737. package/deps/abseil-cpp/absl/strings/internal/cordz_info_test.cc +342 -0
  738. package/deps/abseil-cpp/absl/strings/internal/cordz_sample_token.cc +64 -0
  739. package/deps/abseil-cpp/absl/strings/internal/cordz_sample_token.h +97 -0
  740. package/deps/abseil-cpp/absl/strings/internal/cordz_sample_token_test.cc +208 -0
  741. package/deps/abseil-cpp/absl/strings/internal/cordz_statistics.h +88 -0
  742. package/deps/abseil-cpp/absl/strings/internal/cordz_update_scope.h +71 -0
  743. package/deps/abseil-cpp/absl/strings/internal/cordz_update_scope_test.cc +49 -0
  744. package/deps/abseil-cpp/absl/strings/internal/cordz_update_tracker.h +123 -0
  745. package/deps/abseil-cpp/absl/strings/internal/cordz_update_tracker_test.cc +147 -0
  746. package/deps/abseil-cpp/absl/strings/internal/damerau_levenshtein_distance.cc +99 -0
  747. package/deps/abseil-cpp/absl/strings/internal/damerau_levenshtein_distance.h +35 -0
  748. package/deps/abseil-cpp/absl/strings/internal/damerau_levenshtein_distance_benchmark.cc +56 -0
  749. package/deps/abseil-cpp/absl/strings/internal/damerau_levenshtein_distance_test.cc +99 -0
  750. package/deps/abseil-cpp/absl/strings/internal/escaping.cc +209 -0
  751. package/deps/abseil-cpp/absl/strings/internal/escaping.h +59 -0
  752. package/deps/abseil-cpp/absl/strings/internal/escaping_test_common.h +133 -0
  753. package/deps/abseil-cpp/absl/strings/internal/generic_printer.cc +107 -0
  754. package/deps/abseil-cpp/absl/strings/internal/generic_printer.h +115 -0
  755. package/deps/abseil-cpp/absl/strings/internal/generic_printer_internal.h +423 -0
  756. package/deps/abseil-cpp/absl/strings/internal/generic_printer_test.cc +685 -0
  757. package/deps/abseil-cpp/absl/strings/internal/memutil.cc +48 -0
  758. package/deps/abseil-cpp/absl/strings/internal/memutil.h +40 -0
  759. package/deps/abseil-cpp/absl/strings/internal/memutil_benchmark.cc +127 -0
  760. package/deps/abseil-cpp/absl/strings/internal/memutil_test.cc +41 -0
  761. package/deps/abseil-cpp/absl/strings/internal/numbers_test_common.h +184 -0
  762. package/deps/abseil-cpp/absl/strings/internal/ostringstream.cc +43 -0
  763. package/deps/abseil-cpp/absl/strings/internal/ostringstream.h +114 -0
  764. package/deps/abseil-cpp/absl/strings/internal/ostringstream_benchmark.cc +105 -0
  765. package/deps/abseil-cpp/absl/strings/internal/ostringstream_test.cc +131 -0
  766. package/deps/abseil-cpp/absl/strings/internal/pow10_helper.cc +122 -0
  767. package/deps/abseil-cpp/absl/strings/internal/pow10_helper.h +40 -0
  768. package/deps/abseil-cpp/absl/strings/internal/pow10_helper_test.cc +122 -0
  769. package/deps/abseil-cpp/absl/strings/internal/resize_uninitialized.h +119 -0
  770. package/deps/abseil-cpp/absl/strings/internal/resize_uninitialized_test.cc +108 -0
  771. package/deps/abseil-cpp/absl/strings/internal/stl_type_traits.h +248 -0
  772. package/deps/abseil-cpp/absl/strings/internal/str_format/arg.cc +615 -0
  773. package/deps/abseil-cpp/absl/strings/internal/str_format/arg.h +661 -0
  774. package/deps/abseil-cpp/absl/strings/internal/str_format/arg_test.cc +162 -0
  775. package/deps/abseil-cpp/absl/strings/internal/str_format/bind.cc +275 -0
  776. package/deps/abseil-cpp/absl/strings/internal/str_format/bind.h +237 -0
  777. package/deps/abseil-cpp/absl/strings/internal/str_format/bind_test.cc +157 -0
  778. package/deps/abseil-cpp/absl/strings/internal/str_format/checker.h +98 -0
  779. package/deps/abseil-cpp/absl/strings/internal/str_format/checker_test.cc +176 -0
  780. package/deps/abseil-cpp/absl/strings/internal/str_format/constexpr_parser.h +357 -0
  781. package/deps/abseil-cpp/absl/strings/internal/str_format/convert_test.cc +1471 -0
  782. package/deps/abseil-cpp/absl/strings/internal/str_format/extension.cc +53 -0
  783. package/deps/abseil-cpp/absl/strings/internal/str_format/extension.h +456 -0
  784. package/deps/abseil-cpp/absl/strings/internal/str_format/extension_test.cc +110 -0
  785. package/deps/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +1945 -0
  786. package/deps/abseil-cpp/absl/strings/internal/str_format/float_conversion.h +37 -0
  787. package/deps/abseil-cpp/absl/strings/internal/str_format/output.cc +74 -0
  788. package/deps/abseil-cpp/absl/strings/internal/str_format/output.h +97 -0
  789. package/deps/abseil-cpp/absl/strings/internal/str_format/output_test.cc +79 -0
  790. package/deps/abseil-cpp/absl/strings/internal/str_format/parser.cc +140 -0
  791. package/deps/abseil-cpp/absl/strings/internal/str_format/parser.h +271 -0
  792. package/deps/abseil-cpp/absl/strings/internal/str_format/parser_test.cc +446 -0
  793. package/deps/abseil-cpp/absl/strings/internal/str_join_internal.h +341 -0
  794. package/deps/abseil-cpp/absl/strings/internal/str_split_internal.h +525 -0
  795. package/deps/abseil-cpp/absl/strings/internal/string_constant.h +67 -0
  796. package/deps/abseil-cpp/absl/strings/internal/string_constant_test.cc +60 -0
  797. package/deps/abseil-cpp/absl/strings/internal/stringify_sink.cc +28 -0
  798. package/deps/abseil-cpp/absl/strings/internal/stringify_sink.h +57 -0
  799. package/deps/abseil-cpp/absl/strings/internal/utf8.cc +148 -0
  800. package/deps/abseil-cpp/absl/strings/internal/utf8.h +64 -0
  801. package/deps/abseil-cpp/absl/strings/internal/utf8_test.cc +259 -0
  802. package/deps/abseil-cpp/absl/strings/match.cc +133 -0
  803. package/deps/abseil-cpp/absl/strings/match.h +129 -0
  804. package/deps/abseil-cpp/absl/strings/match_test.cc +291 -0
  805. package/deps/abseil-cpp/absl/strings/numbers.cc +1230 -0
  806. package/deps/abseil-cpp/absl/strings/numbers.h +359 -0
  807. package/deps/abseil-cpp/absl/strings/numbers_benchmark.cc +288 -0
  808. package/deps/abseil-cpp/absl/strings/numbers_test.cc +2324 -0
  809. package/deps/abseil-cpp/absl/strings/resize_and_overwrite.h +194 -0
  810. package/deps/abseil-cpp/absl/strings/resize_and_overwrite_test.cc +154 -0
  811. package/deps/abseil-cpp/absl/strings/str_cat.cc +247 -0
  812. package/deps/abseil-cpp/absl/strings/str_cat.h +633 -0
  813. package/deps/abseil-cpp/absl/strings/str_cat_benchmark.cc +288 -0
  814. package/deps/abseil-cpp/absl/strings/str_cat_test.cc +692 -0
  815. package/deps/abseil-cpp/absl/strings/str_format.h +887 -0
  816. package/deps/abseil-cpp/absl/strings/str_format_test.cc +1230 -0
  817. package/deps/abseil-cpp/absl/strings/str_join.h +301 -0
  818. package/deps/abseil-cpp/absl/strings/str_join_benchmark.cc +106 -0
  819. package/deps/abseil-cpp/absl/strings/str_join_test.cc +645 -0
  820. package/deps/abseil-cpp/absl/strings/str_replace.cc +91 -0
  821. package/deps/abseil-cpp/absl/strings/str_replace.h +222 -0
  822. package/deps/abseil-cpp/absl/strings/str_replace_benchmark.cc +121 -0
  823. package/deps/abseil-cpp/absl/strings/str_replace_test.cc +345 -0
  824. package/deps/abseil-cpp/absl/strings/str_split.cc +144 -0
  825. package/deps/abseil-cpp/absl/strings/str_split.h +582 -0
  826. package/deps/abseil-cpp/absl/strings/str_split_benchmark.cc +180 -0
  827. package/deps/abseil-cpp/absl/strings/str_split_test.cc +1069 -0
  828. package/deps/abseil-cpp/absl/strings/string_view.h +60 -0
  829. package/deps/abseil-cpp/absl/strings/string_view_test.cc +86 -0
  830. package/deps/abseil-cpp/absl/strings/strip.h +99 -0
  831. package/deps/abseil-cpp/absl/strings/strip_test.cc +198 -0
  832. package/deps/abseil-cpp/absl/strings/substitute.cc +187 -0
  833. package/deps/abseil-cpp/absl/strings/substitute.h +769 -0
  834. package/deps/abseil-cpp/absl/strings/substitute_benchmark.cc +158 -0
  835. package/deps/abseil-cpp/absl/strings/substitute_test.cc +288 -0
  836. package/deps/abseil-cpp/absl/synchronization/BUILD.bazel +410 -0
  837. package/deps/abseil-cpp/absl/synchronization/CMakeLists.txt +293 -0
  838. package/deps/abseil-cpp/absl/synchronization/barrier.cc +52 -0
  839. package/deps/abseil-cpp/absl/synchronization/barrier.h +79 -0
  840. package/deps/abseil-cpp/absl/synchronization/barrier_test.cc +75 -0
  841. package/deps/abseil-cpp/absl/synchronization/blocking_counter.cc +73 -0
  842. package/deps/abseil-cpp/absl/synchronization/blocking_counter.h +107 -0
  843. package/deps/abseil-cpp/absl/synchronization/blocking_counter_benchmark.cc +84 -0
  844. package/deps/abseil-cpp/absl/synchronization/blocking_counter_test.cc +146 -0
  845. package/deps/abseil-cpp/absl/synchronization/internal/create_thread_identity.cc +152 -0
  846. package/deps/abseil-cpp/absl/synchronization/internal/create_thread_identity.h +56 -0
  847. package/deps/abseil-cpp/absl/synchronization/internal/futex.h +177 -0
  848. package/deps/abseil-cpp/absl/synchronization/internal/futex_waiter.cc +107 -0
  849. package/deps/abseil-cpp/absl/synchronization/internal/futex_waiter.h +63 -0
  850. package/deps/abseil-cpp/absl/synchronization/internal/graphcycles.cc +714 -0
  851. package/deps/abseil-cpp/absl/synchronization/internal/graphcycles.h +146 -0
  852. package/deps/abseil-cpp/absl/synchronization/internal/graphcycles_benchmark.cc +43 -0
  853. package/deps/abseil-cpp/absl/synchronization/internal/graphcycles_test.cc +483 -0
  854. package/deps/abseil-cpp/absl/synchronization/internal/kernel_timeout.cc +220 -0
  855. package/deps/abseil-cpp/absl/synchronization/internal/kernel_timeout.h +178 -0
  856. package/deps/abseil-cpp/absl/synchronization/internal/kernel_timeout_test.cc +406 -0
  857. package/deps/abseil-cpp/absl/synchronization/internal/per_thread_sem.cc +106 -0
  858. package/deps/abseil-cpp/absl/synchronization/internal/per_thread_sem.h +119 -0
  859. package/deps/abseil-cpp/absl/synchronization/internal/per_thread_sem_test.cc +194 -0
  860. package/deps/abseil-cpp/absl/synchronization/internal/pthread_waiter.cc +163 -0
  861. package/deps/abseil-cpp/absl/synchronization/internal/pthread_waiter.h +60 -0
  862. package/deps/abseil-cpp/absl/synchronization/internal/sem_waiter.cc +118 -0
  863. package/deps/abseil-cpp/absl/synchronization/internal/sem_waiter.h +65 -0
  864. package/deps/abseil-cpp/absl/synchronization/internal/stdcpp_waiter.cc +87 -0
  865. package/deps/abseil-cpp/absl/synchronization/internal/stdcpp_waiter.h +56 -0
  866. package/deps/abseil-cpp/absl/synchronization/internal/thread_pool.h +96 -0
  867. package/deps/abseil-cpp/absl/synchronization/internal/waiter.h +69 -0
  868. package/deps/abseil-cpp/absl/synchronization/internal/waiter_base.cc +38 -0
  869. package/deps/abseil-cpp/absl/synchronization/internal/waiter_base.h +90 -0
  870. package/deps/abseil-cpp/absl/synchronization/internal/waiter_test.cc +192 -0
  871. package/deps/abseil-cpp/absl/synchronization/internal/win32_waiter.cc +147 -0
  872. package/deps/abseil-cpp/absl/synchronization/internal/win32_waiter.h +72 -0
  873. package/deps/abseil-cpp/absl/synchronization/lifetime_test.cc +180 -0
  874. package/deps/abseil-cpp/absl/synchronization/mutex.cc +2820 -0
  875. package/deps/abseil-cpp/absl/synchronization/mutex.h +1352 -0
  876. package/deps/abseil-cpp/absl/synchronization/mutex_benchmark.cc +321 -0
  877. package/deps/abseil-cpp/absl/synchronization/mutex_method_pointer_test.cc +138 -0
  878. package/deps/abseil-cpp/absl/synchronization/mutex_test.cc +2065 -0
  879. package/deps/abseil-cpp/absl/synchronization/notification.cc +85 -0
  880. package/deps/abseil-cpp/absl/synchronization/notification.h +133 -0
  881. package/deps/abseil-cpp/absl/synchronization/notification_test.cc +230 -0
  882. package/deps/abseil-cpp/absl/time/BUILD.bazel +244 -0
  883. package/deps/abseil-cpp/absl/time/CMakeLists.txt +218 -0
  884. package/deps/abseil-cpp/absl/time/civil_time.cc +200 -0
  885. package/deps/abseil-cpp/absl/time/civil_time.h +589 -0
  886. package/deps/abseil-cpp/absl/time/civil_time_benchmark.cc +129 -0
  887. package/deps/abseil-cpp/absl/time/civil_time_test.cc +1351 -0
  888. package/deps/abseil-cpp/absl/time/clock.cc +603 -0
  889. package/deps/abseil-cpp/absl/time/clock.h +78 -0
  890. package/deps/abseil-cpp/absl/time/clock_benchmark.cc +74 -0
  891. package/deps/abseil-cpp/absl/time/clock_interface.cc +71 -0
  892. package/deps/abseil-cpp/absl/time/clock_interface.h +91 -0
  893. package/deps/abseil-cpp/absl/time/clock_interface_test.cc +128 -0
  894. package/deps/abseil-cpp/absl/time/clock_test.cc +122 -0
  895. package/deps/abseil-cpp/absl/time/duration.cc +918 -0
  896. package/deps/abseil-cpp/absl/time/duration_benchmark.cc +608 -0
  897. package/deps/abseil-cpp/absl/time/duration_test.cc +1901 -0
  898. package/deps/abseil-cpp/absl/time/flag_test.cc +147 -0
  899. package/deps/abseil-cpp/absl/time/format.cc +162 -0
  900. package/deps/abseil-cpp/absl/time/format_benchmark.cc +64 -0
  901. package/deps/abseil-cpp/absl/time/format_test.cc +441 -0
  902. package/deps/abseil-cpp/absl/time/internal/cctz/BUILD.bazel +195 -0
  903. package/deps/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time.h +332 -0
  904. package/deps/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h +644 -0
  905. package/deps/abseil-cpp/absl/time/internal/cctz/include/cctz/time_zone.h +460 -0
  906. package/deps/abseil-cpp/absl/time/internal/cctz/include/cctz/zone_info_source.h +102 -0
  907. package/deps/abseil-cpp/absl/time/internal/cctz/src/cctz_benchmark.cc +436 -0
  908. package/deps/abseil-cpp/absl/time/internal/cctz/src/civil_time_detail.cc +94 -0
  909. package/deps/abseil-cpp/absl/time/internal/cctz/src/civil_time_test.cc +1066 -0
  910. package/deps/abseil-cpp/absl/time/internal/cctz/src/test_time_zone_names.cc +515 -0
  911. package/deps/abseil-cpp/absl/time/internal/cctz/src/test_time_zone_names.h +33 -0
  912. package/deps/abseil-cpp/absl/time/internal/cctz/src/time_zone_fixed.cc +140 -0
  913. package/deps/abseil-cpp/absl/time/internal/cctz/src/time_zone_fixed.h +52 -0
  914. package/deps/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc +1068 -0
  915. package/deps/abseil-cpp/absl/time/internal/cctz/src/time_zone_format_test.cc +1773 -0
  916. package/deps/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.cc +47 -0
  917. package/deps/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.h +80 -0
  918. package/deps/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.cc +115 -0
  919. package/deps/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.h +97 -0
  920. package/deps/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.cc +1070 -0
  921. package/deps/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.h +128 -0
  922. package/deps/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc +333 -0
  923. package/deps/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.h +60 -0
  924. package/deps/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +217 -0
  925. package/deps/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup_test.cc +918 -0
  926. package/deps/abseil-cpp/absl/time/internal/cctz/src/time_zone_name_win.cc +186 -0
  927. package/deps/abseil-cpp/absl/time/internal/cctz/src/time_zone_name_win.h +37 -0
  928. package/deps/abseil-cpp/absl/time/internal/cctz/src/time_zone_posix.cc +159 -0
  929. package/deps/abseil-cpp/absl/time/internal/cctz/src/time_zone_posix.h +132 -0
  930. package/deps/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +120 -0
  931. package/deps/abseil-cpp/absl/time/internal/cctz/src/zone_info_source.cc +116 -0
  932. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/README.zoneinfo +38 -0
  933. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/version +1 -0
  934. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Abidjan +0 -0
  935. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Accra +0 -0
  936. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Addis_Ababa +0 -0
  937. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Algiers +0 -0
  938. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Asmara +0 -0
  939. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Asmera +0 -0
  940. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Bamako +0 -0
  941. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Bangui +0 -0
  942. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Banjul +0 -0
  943. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Bissau +0 -0
  944. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Blantyre +0 -0
  945. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Brazzaville +0 -0
  946. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Bujumbura +0 -0
  947. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Cairo +0 -0
  948. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Casablanca +0 -0
  949. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Ceuta +0 -0
  950. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Conakry +0 -0
  951. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Dakar +0 -0
  952. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Dar_es_Salaam +0 -0
  953. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Djibouti +0 -0
  954. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Douala +0 -0
  955. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/El_Aaiun +0 -0
  956. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Freetown +0 -0
  957. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Gaborone +0 -0
  958. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Harare +0 -0
  959. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Johannesburg +0 -0
  960. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Juba +0 -0
  961. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Kampala +0 -0
  962. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Khartoum +0 -0
  963. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Kigali +0 -0
  964. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Kinshasa +0 -0
  965. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Lagos +0 -0
  966. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Libreville +0 -0
  967. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Lome +0 -0
  968. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Luanda +0 -0
  969. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Lubumbashi +0 -0
  970. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Lusaka +0 -0
  971. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Malabo +0 -0
  972. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Maputo +0 -0
  973. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Maseru +0 -0
  974. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Mbabane +0 -0
  975. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Mogadishu +0 -0
  976. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Monrovia +0 -0
  977. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Nairobi +0 -0
  978. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Ndjamena +0 -0
  979. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Niamey +0 -0
  980. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Nouakchott +0 -0
  981. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Ouagadougou +0 -0
  982. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Porto-Novo +0 -0
  983. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Sao_Tome +0 -0
  984. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Timbuktu +0 -0
  985. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Tripoli +0 -0
  986. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Tunis +0 -0
  987. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Africa/Windhoek +0 -0
  988. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Adak +0 -0
  989. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Anchorage +0 -0
  990. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Anguilla +0 -0
  991. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Antigua +0 -0
  992. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Araguaina +0 -0
  993. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Argentina/Buenos_Aires +0 -0
  994. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Argentina/Catamarca +0 -0
  995. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Argentina/ComodRivadavia +0 -0
  996. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Argentina/Cordoba +0 -0
  997. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Argentina/Jujuy +0 -0
  998. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Argentina/La_Rioja +0 -0
  999. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Argentina/Mendoza +0 -0
  1000. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Argentina/Rio_Gallegos +0 -0
  1001. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Argentina/Salta +0 -0
  1002. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Argentina/San_Juan +0 -0
  1003. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Argentina/San_Luis +0 -0
  1004. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Argentina/Tucuman +0 -0
  1005. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Argentina/Ushuaia +0 -0
  1006. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Aruba +0 -0
  1007. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Asuncion +0 -0
  1008. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Atikokan +0 -0
  1009. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Atka +0 -0
  1010. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Bahia +0 -0
  1011. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Bahia_Banderas +0 -0
  1012. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Barbados +0 -0
  1013. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Belem +0 -0
  1014. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Belize +0 -0
  1015. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Blanc-Sablon +0 -0
  1016. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Boa_Vista +0 -0
  1017. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Bogota +0 -0
  1018. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Boise +0 -0
  1019. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Buenos_Aires +0 -0
  1020. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Cambridge_Bay +0 -0
  1021. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Campo_Grande +0 -0
  1022. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Cancun +0 -0
  1023. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Caracas +0 -0
  1024. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Catamarca +0 -0
  1025. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Cayenne +0 -0
  1026. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Cayman +0 -0
  1027. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Chicago +0 -0
  1028. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Chihuahua +0 -0
  1029. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Ciudad_Juarez +0 -0
  1030. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Coral_Harbour +0 -0
  1031. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Cordoba +0 -0
  1032. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Costa_Rica +0 -0
  1033. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Coyhaique +0 -0
  1034. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Creston +0 -0
  1035. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Cuiaba +0 -0
  1036. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Curacao +0 -0
  1037. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Danmarkshavn +0 -0
  1038. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Dawson +0 -0
  1039. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Dawson_Creek +0 -0
  1040. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Denver +0 -0
  1041. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Detroit +0 -0
  1042. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Dominica +0 -0
  1043. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Edmonton +0 -0
  1044. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Eirunepe +0 -0
  1045. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/El_Salvador +0 -0
  1046. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Ensenada +0 -0
  1047. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Fort_Nelson +0 -0
  1048. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Fort_Wayne +0 -0
  1049. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Fortaleza +0 -0
  1050. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Glace_Bay +0 -0
  1051. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Godthab +0 -0
  1052. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Goose_Bay +0 -0
  1053. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Grand_Turk +0 -0
  1054. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Grenada +0 -0
  1055. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Guadeloupe +0 -0
  1056. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Guatemala +0 -0
  1057. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Guayaquil +0 -0
  1058. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Guyana +0 -0
  1059. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Halifax +0 -0
  1060. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Havana +0 -0
  1061. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Hermosillo +0 -0
  1062. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Indiana/Indianapolis +0 -0
  1063. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Indiana/Knox +0 -0
  1064. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Indiana/Marengo +0 -0
  1065. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Indiana/Petersburg +0 -0
  1066. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Indiana/Tell_City +0 -0
  1067. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Indiana/Vevay +0 -0
  1068. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Indiana/Vincennes +0 -0
  1069. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Indiana/Winamac +0 -0
  1070. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Indianapolis +0 -0
  1071. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Inuvik +0 -0
  1072. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Iqaluit +0 -0
  1073. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Jamaica +0 -0
  1074. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Jujuy +0 -0
  1075. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Juneau +0 -0
  1076. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Kentucky/Louisville +0 -0
  1077. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Kentucky/Monticello +0 -0
  1078. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Knox_IN +0 -0
  1079. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Kralendijk +0 -0
  1080. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/La_Paz +0 -0
  1081. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Lima +0 -0
  1082. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Los_Angeles +0 -0
  1083. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Louisville +0 -0
  1084. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Lower_Princes +0 -0
  1085. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Maceio +0 -0
  1086. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Managua +0 -0
  1087. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Manaus +0 -0
  1088. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Marigot +0 -0
  1089. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Martinique +0 -0
  1090. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Matamoros +0 -0
  1091. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Mazatlan +0 -0
  1092. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Mendoza +0 -0
  1093. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Menominee +0 -0
  1094. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Merida +0 -0
  1095. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Metlakatla +0 -0
  1096. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Mexico_City +0 -0
  1097. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Miquelon +0 -0
  1098. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Moncton +0 -0
  1099. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Monterrey +0 -0
  1100. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Montevideo +0 -0
  1101. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Montreal +0 -0
  1102. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Montserrat +0 -0
  1103. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Nassau +0 -0
  1104. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/New_York +0 -0
  1105. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Nipigon +0 -0
  1106. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Nome +0 -0
  1107. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Noronha +0 -0
  1108. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/North_Dakota/Beulah +0 -0
  1109. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/North_Dakota/Center +0 -0
  1110. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/North_Dakota/New_Salem +0 -0
  1111. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Nuuk +0 -0
  1112. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Ojinaga +0 -0
  1113. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Panama +0 -0
  1114. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Pangnirtung +0 -0
  1115. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Paramaribo +0 -0
  1116. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Phoenix +0 -0
  1117. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Port-au-Prince +0 -0
  1118. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Port_of_Spain +0 -0
  1119. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Porto_Acre +0 -0
  1120. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Porto_Velho +0 -0
  1121. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Puerto_Rico +0 -0
  1122. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Punta_Arenas +0 -0
  1123. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Rainy_River +0 -0
  1124. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Rankin_Inlet +0 -0
  1125. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Recife +0 -0
  1126. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Regina +0 -0
  1127. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Resolute +0 -0
  1128. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Rio_Branco +0 -0
  1129. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Rosario +0 -0
  1130. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Santa_Isabel +0 -0
  1131. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Santarem +0 -0
  1132. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Santiago +0 -0
  1133. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Santo_Domingo +0 -0
  1134. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Sao_Paulo +0 -0
  1135. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Scoresbysund +0 -0
  1136. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Shiprock +0 -0
  1137. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Sitka +0 -0
  1138. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/St_Barthelemy +0 -0
  1139. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/St_Johns +0 -0
  1140. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/St_Kitts +0 -0
  1141. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/St_Lucia +0 -0
  1142. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/St_Thomas +0 -0
  1143. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/St_Vincent +0 -0
  1144. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Swift_Current +0 -0
  1145. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Tegucigalpa +0 -0
  1146. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Thule +0 -0
  1147. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Thunder_Bay +0 -0
  1148. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Tijuana +0 -0
  1149. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Toronto +0 -0
  1150. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Tortola +0 -0
  1151. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Vancouver +0 -0
  1152. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Virgin +0 -0
  1153. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Whitehorse +0 -0
  1154. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Winnipeg +0 -0
  1155. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Yakutat +0 -0
  1156. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/America/Yellowknife +0 -0
  1157. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Antarctica/Casey +0 -0
  1158. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Antarctica/Davis +0 -0
  1159. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Antarctica/DumontDUrville +0 -0
  1160. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Antarctica/Macquarie +0 -0
  1161. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Antarctica/Mawson +0 -0
  1162. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Antarctica/McMurdo +0 -0
  1163. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Antarctica/Palmer +0 -0
  1164. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Antarctica/Rothera +0 -0
  1165. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Antarctica/South_Pole +0 -0
  1166. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Antarctica/Syowa +0 -0
  1167. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Antarctica/Troll +0 -0
  1168. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Antarctica/Vostok +0 -0
  1169. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Arctic/Longyearbyen +0 -0
  1170. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Aden +0 -0
  1171. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Almaty +0 -0
  1172. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Amman +0 -0
  1173. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Anadyr +0 -0
  1174. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Aqtau +0 -0
  1175. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Aqtobe +0 -0
  1176. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Ashgabat +0 -0
  1177. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Ashkhabad +0 -0
  1178. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Atyrau +0 -0
  1179. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Baghdad +0 -0
  1180. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Bahrain +0 -0
  1181. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Baku +0 -0
  1182. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Bangkok +0 -0
  1183. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Barnaul +0 -0
  1184. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Beirut +0 -0
  1185. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Bishkek +0 -0
  1186. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Brunei +0 -0
  1187. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Calcutta +0 -0
  1188. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Chita +0 -0
  1189. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Choibalsan +0 -0
  1190. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Chongqing +0 -0
  1191. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Chungking +0 -0
  1192. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Colombo +0 -0
  1193. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Dacca +0 -0
  1194. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Damascus +0 -0
  1195. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Dhaka +0 -0
  1196. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Dili +0 -0
  1197. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Dubai +0 -0
  1198. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Dushanbe +0 -0
  1199. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Famagusta +0 -0
  1200. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Gaza +0 -0
  1201. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Harbin +0 -0
  1202. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Hebron +0 -0
  1203. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Ho_Chi_Minh +0 -0
  1204. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Hong_Kong +0 -0
  1205. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Hovd +0 -0
  1206. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Irkutsk +0 -0
  1207. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Istanbul +0 -0
  1208. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Jakarta +0 -0
  1209. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Jayapura +0 -0
  1210. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Jerusalem +0 -0
  1211. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Kabul +0 -0
  1212. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Kamchatka +0 -0
  1213. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Karachi +0 -0
  1214. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Kashgar +0 -0
  1215. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Kathmandu +0 -0
  1216. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Katmandu +0 -0
  1217. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Khandyga +0 -0
  1218. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Kolkata +0 -0
  1219. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Krasnoyarsk +0 -0
  1220. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Kuala_Lumpur +0 -0
  1221. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Kuching +0 -0
  1222. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Kuwait +0 -0
  1223. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Macao +0 -0
  1224. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Macau +0 -0
  1225. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Magadan +0 -0
  1226. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Makassar +0 -0
  1227. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Manila +0 -0
  1228. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Muscat +0 -0
  1229. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Nicosia +0 -0
  1230. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Novokuznetsk +0 -0
  1231. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Novosibirsk +0 -0
  1232. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Omsk +0 -0
  1233. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Oral +0 -0
  1234. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Phnom_Penh +0 -0
  1235. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Pontianak +0 -0
  1236. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Pyongyang +0 -0
  1237. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Qatar +0 -0
  1238. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Qostanay +0 -0
  1239. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Qyzylorda +0 -0
  1240. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Rangoon +0 -0
  1241. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Riyadh +0 -0
  1242. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Saigon +0 -0
  1243. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Sakhalin +0 -0
  1244. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Samarkand +0 -0
  1245. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Seoul +0 -0
  1246. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Shanghai +0 -0
  1247. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Singapore +0 -0
  1248. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Srednekolymsk +0 -0
  1249. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Taipei +0 -0
  1250. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Tashkent +0 -0
  1251. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Tbilisi +0 -0
  1252. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Tehran +0 -0
  1253. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Tel_Aviv +0 -0
  1254. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Thimbu +0 -0
  1255. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Thimphu +0 -0
  1256. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Tokyo +0 -0
  1257. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Tomsk +0 -0
  1258. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Ujung_Pandang +0 -0
  1259. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Ulaanbaatar +0 -0
  1260. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Ulan_Bator +0 -0
  1261. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Urumqi +0 -0
  1262. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Ust-Nera +0 -0
  1263. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Vientiane +0 -0
  1264. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Vladivostok +0 -0
  1265. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Yakutsk +0 -0
  1266. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Yangon +0 -0
  1267. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Yekaterinburg +0 -0
  1268. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Asia/Yerevan +0 -0
  1269. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Atlantic/Azores +0 -0
  1270. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Atlantic/Bermuda +0 -0
  1271. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Atlantic/Canary +0 -0
  1272. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Atlantic/Cape_Verde +0 -0
  1273. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Atlantic/Faeroe +0 -0
  1274. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Atlantic/Faroe +0 -0
  1275. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Atlantic/Jan_Mayen +0 -0
  1276. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Atlantic/Madeira +0 -0
  1277. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Atlantic/Reykjavik +0 -0
  1278. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Atlantic/South_Georgia +0 -0
  1279. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Atlantic/St_Helena +0 -0
  1280. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Atlantic/Stanley +0 -0
  1281. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/ACT +0 -0
  1282. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/Adelaide +0 -0
  1283. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/Brisbane +0 -0
  1284. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/Broken_Hill +0 -0
  1285. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/Canberra +0 -0
  1286. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/Currie +0 -0
  1287. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/Darwin +0 -0
  1288. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/Eucla +0 -0
  1289. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/Hobart +0 -0
  1290. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/LHI +0 -0
  1291. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/Lindeman +0 -0
  1292. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/Lord_Howe +0 -0
  1293. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/Melbourne +0 -0
  1294. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/NSW +0 -0
  1295. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/North +0 -0
  1296. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/Perth +0 -0
  1297. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/Queensland +0 -0
  1298. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/South +0 -0
  1299. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/Sydney +0 -0
  1300. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/Tasmania +0 -0
  1301. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/Victoria +0 -0
  1302. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/West +0 -0
  1303. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Australia/Yancowinna +0 -0
  1304. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Brazil/Acre +0 -0
  1305. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Brazil/DeNoronha +0 -0
  1306. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Brazil/East +0 -0
  1307. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Brazil/West +0 -0
  1308. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/CET +0 -0
  1309. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/CST6CDT +0 -0
  1310. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Canada/Atlantic +0 -0
  1311. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Canada/Central +0 -0
  1312. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Canada/Eastern +0 -0
  1313. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Canada/Mountain +0 -0
  1314. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Canada/Newfoundland +0 -0
  1315. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Canada/Pacific +0 -0
  1316. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Canada/Saskatchewan +0 -0
  1317. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Canada/Yukon +0 -0
  1318. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Chile/Continental +0 -0
  1319. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Chile/EasterIsland +0 -0
  1320. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Cuba +0 -0
  1321. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/EET +0 -0
  1322. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/EST +0 -0
  1323. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/EST5EDT +0 -0
  1324. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Egypt +0 -0
  1325. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Eire +0 -0
  1326. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT +0 -0
  1327. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT+0 +0 -0
  1328. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT+1 +0 -0
  1329. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT+10 +0 -0
  1330. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT+11 +0 -0
  1331. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT+12 +0 -0
  1332. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT+2 +0 -0
  1333. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT+3 +0 -0
  1334. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT+4 +0 -0
  1335. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT+5 +0 -0
  1336. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT+6 +0 -0
  1337. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT+7 +0 -0
  1338. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT+8 +0 -0
  1339. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT+9 +0 -0
  1340. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT-0 +0 -0
  1341. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT-1 +0 -0
  1342. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT-10 +0 -0
  1343. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT-11 +0 -0
  1344. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT-12 +0 -0
  1345. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT-13 +0 -0
  1346. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT-14 +0 -0
  1347. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT-2 +0 -0
  1348. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT-3 +0 -0
  1349. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT-4 +0 -0
  1350. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT-5 +0 -0
  1351. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT-6 +0 -0
  1352. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT-7 +0 -0
  1353. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT-8 +0 -0
  1354. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT-9 +0 -0
  1355. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/GMT0 +0 -0
  1356. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/Greenwich +0 -0
  1357. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/UCT +0 -0
  1358. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/UTC +0 -0
  1359. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/Universal +0 -0
  1360. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Etc/Zulu +0 -0
  1361. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Amsterdam +0 -0
  1362. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Andorra +0 -0
  1363. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Astrakhan +0 -0
  1364. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Athens +0 -0
  1365. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Belfast +0 -0
  1366. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Belgrade +0 -0
  1367. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Berlin +0 -0
  1368. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Bratislava +0 -0
  1369. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Brussels +0 -0
  1370. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Bucharest +0 -0
  1371. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Budapest +0 -0
  1372. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Busingen +0 -0
  1373. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Chisinau +0 -0
  1374. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Copenhagen +0 -0
  1375. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Dublin +0 -0
  1376. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Gibraltar +0 -0
  1377. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Guernsey +0 -0
  1378. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Helsinki +0 -0
  1379. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Isle_of_Man +0 -0
  1380. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Istanbul +0 -0
  1381. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Jersey +0 -0
  1382. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Kaliningrad +0 -0
  1383. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Kiev +0 -0
  1384. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Kirov +0 -0
  1385. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Kyiv +0 -0
  1386. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Lisbon +0 -0
  1387. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Ljubljana +0 -0
  1388. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/London +0 -0
  1389. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Luxembourg +0 -0
  1390. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Madrid +0 -0
  1391. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Malta +0 -0
  1392. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Mariehamn +0 -0
  1393. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Minsk +0 -0
  1394. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Monaco +0 -0
  1395. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Moscow +0 -0
  1396. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Nicosia +0 -0
  1397. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Oslo +0 -0
  1398. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Paris +0 -0
  1399. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Podgorica +0 -0
  1400. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Prague +0 -0
  1401. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Riga +0 -0
  1402. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Rome +0 -0
  1403. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Samara +0 -0
  1404. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/San_Marino +0 -0
  1405. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Sarajevo +0 -0
  1406. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Saratov +0 -0
  1407. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Simferopol +0 -0
  1408. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Skopje +0 -0
  1409. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Sofia +0 -0
  1410. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Stockholm +0 -0
  1411. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Tallinn +0 -0
  1412. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Tirane +0 -0
  1413. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Tiraspol +0 -0
  1414. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Ulyanovsk +0 -0
  1415. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Uzhgorod +0 -0
  1416. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Vaduz +0 -0
  1417. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Vatican +0 -0
  1418. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Vienna +0 -0
  1419. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Vilnius +0 -0
  1420. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Volgograd +0 -0
  1421. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Warsaw +0 -0
  1422. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Zagreb +0 -0
  1423. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Zaporozhye +0 -0
  1424. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Europe/Zurich +0 -0
  1425. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Factory +0 -0
  1426. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/GB +0 -0
  1427. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/GB-Eire +0 -0
  1428. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/GMT +0 -0
  1429. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/GMT+0 +0 -0
  1430. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/GMT-0 +0 -0
  1431. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/GMT0 +0 -0
  1432. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Greenwich +0 -0
  1433. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/HST +0 -0
  1434. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Hongkong +0 -0
  1435. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Iceland +0 -0
  1436. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Indian/Antananarivo +0 -0
  1437. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Indian/Chagos +0 -0
  1438. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Indian/Christmas +0 -0
  1439. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Indian/Cocos +0 -0
  1440. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Indian/Comoro +0 -0
  1441. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Indian/Kerguelen +0 -0
  1442. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Indian/Mahe +0 -0
  1443. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Indian/Maldives +0 -0
  1444. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Indian/Mauritius +0 -0
  1445. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Indian/Mayotte +0 -0
  1446. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Indian/Reunion +0 -0
  1447. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Iran +0 -0
  1448. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Israel +0 -0
  1449. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Jamaica +0 -0
  1450. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Japan +0 -0
  1451. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Kwajalein +0 -0
  1452. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Libya +0 -0
  1453. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/MET +0 -0
  1454. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/MST +0 -0
  1455. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/MST7MDT +0 -0
  1456. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Mexico/BajaNorte +0 -0
  1457. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Mexico/BajaSur +0 -0
  1458. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Mexico/General +0 -0
  1459. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/NZ +0 -0
  1460. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/NZ-CHAT +0 -0
  1461. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Navajo +0 -0
  1462. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/PRC +0 -0
  1463. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/PST8PDT +0 -0
  1464. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Apia +0 -0
  1465. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Auckland +0 -0
  1466. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Bougainville +0 -0
  1467. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Chatham +0 -0
  1468. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Chuuk +0 -0
  1469. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Easter +0 -0
  1470. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Efate +0 -0
  1471. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Enderbury +0 -0
  1472. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Fakaofo +0 -0
  1473. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Fiji +0 -0
  1474. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Funafuti +0 -0
  1475. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Galapagos +0 -0
  1476. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Gambier +0 -0
  1477. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Guadalcanal +0 -0
  1478. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Guam +0 -0
  1479. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Honolulu +0 -0
  1480. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Johnston +0 -0
  1481. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Kanton +0 -0
  1482. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Kiritimati +0 -0
  1483. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Kosrae +0 -0
  1484. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Kwajalein +0 -0
  1485. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Majuro +0 -0
  1486. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Marquesas +0 -0
  1487. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Midway +0 -0
  1488. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Nauru +0 -0
  1489. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Niue +0 -0
  1490. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Norfolk +0 -0
  1491. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Noumea +0 -0
  1492. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Pago_Pago +0 -0
  1493. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Palau +0 -0
  1494. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Pitcairn +0 -0
  1495. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Pohnpei +0 -0
  1496. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Ponape +0 -0
  1497. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Port_Moresby +0 -0
  1498. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Rarotonga +0 -0
  1499. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Saipan +0 -0
  1500. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Samoa +0 -0
  1501. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Tahiti +0 -0
  1502. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Tarawa +0 -0
  1503. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Tongatapu +0 -0
  1504. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Truk +0 -0
  1505. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Wake +0 -0
  1506. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Wallis +0 -0
  1507. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Pacific/Yap +0 -0
  1508. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Poland +0 -0
  1509. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Portugal +0 -0
  1510. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/ROC +0 -0
  1511. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/ROK +0 -0
  1512. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Singapore +0 -0
  1513. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Turkey +0 -0
  1514. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/UCT +0 -0
  1515. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/US/Alaska +0 -0
  1516. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/US/Aleutian +0 -0
  1517. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/US/Arizona +0 -0
  1518. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/US/Central +0 -0
  1519. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/US/East-Indiana +0 -0
  1520. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/US/Eastern +0 -0
  1521. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/US/Hawaii +0 -0
  1522. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/US/Indiana-Starke +0 -0
  1523. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/US/Michigan +0 -0
  1524. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/US/Mountain +0 -0
  1525. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/US/Pacific +0 -0
  1526. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/US/Samoa +0 -0
  1527. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/UTC +0 -0
  1528. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Universal +0 -0
  1529. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/W-SU +0 -0
  1530. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/WET +0 -0
  1531. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/Zulu +0 -0
  1532. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/iso3166.tab +279 -0
  1533. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/zone1970.tab +375 -0
  1534. package/deps/abseil-cpp/absl/time/internal/cctz/testdata/zoneinfo/zonenow.tab +296 -0
  1535. package/deps/abseil-cpp/absl/time/internal/get_current_time_chrono.inc +31 -0
  1536. package/deps/abseil-cpp/absl/time/internal/get_current_time_posix.inc +24 -0
  1537. package/deps/abseil-cpp/absl/time/internal/test_util.cc +32 -0
  1538. package/deps/abseil-cpp/absl/time/internal/test_util.h +33 -0
  1539. package/deps/abseil-cpp/absl/time/simulated_clock.cc +225 -0
  1540. package/deps/abseil-cpp/absl/time/simulated_clock.h +108 -0
  1541. package/deps/abseil-cpp/absl/time/simulated_clock_test.cc +614 -0
  1542. package/deps/abseil-cpp/absl/time/time.cc +507 -0
  1543. package/deps/abseil-cpp/absl/time/time.h +1926 -0
  1544. package/deps/abseil-cpp/absl/time/time_benchmark.cc +321 -0
  1545. package/deps/abseil-cpp/absl/time/time_test.cc +1365 -0
  1546. package/deps/abseil-cpp/absl/time/time_zone_test.cc +97 -0
  1547. package/deps/abseil-cpp/absl/types/BUILD.bazel +166 -0
  1548. package/deps/abseil-cpp/absl/types/CMakeLists.txt +179 -0
  1549. package/deps/abseil-cpp/absl/types/any.h +44 -0
  1550. package/deps/abseil-cpp/absl/types/compare.h +506 -0
  1551. package/deps/abseil-cpp/absl/types/compare_test.cc +300 -0
  1552. package/deps/abseil-cpp/absl/types/internal/span.h +141 -0
  1553. package/deps/abseil-cpp/absl/types/optional.h +41 -0
  1554. package/deps/abseil-cpp/absl/types/span.h +830 -0
  1555. package/deps/abseil-cpp/absl/types/span_test.cc +915 -0
  1556. package/deps/abseil-cpp/absl/types/variant.h +82 -0
  1557. package/deps/abseil-cpp/absl/types/variant_test.cc +164 -0
  1558. package/deps/abseil-cpp/absl/utility/BUILD.bazel +46 -0
  1559. package/deps/abseil-cpp/absl/utility/CMakeLists.txt +28 -0
  1560. package/deps/abseil-cpp/absl/utility/utility.h +68 -0
  1561. package/deps/abseil-cpp/ci/absl_alternate_options.h +28 -0
  1562. package/deps/abseil-cpp/ci/cmake_common.sh +19 -0
  1563. package/deps/abseil-cpp/ci/cmake_install_test.sh +64 -0
  1564. package/deps/abseil-cpp/ci/linux_arm_clang-latest_libcxx_bazel.sh +106 -0
  1565. package/deps/abseil-cpp/ci/linux_clang-latest_libcxx_asan_bazel.sh +114 -0
  1566. package/deps/abseil-cpp/ci/linux_clang-latest_libcxx_bazel.sh +107 -0
  1567. package/deps/abseil-cpp/ci/linux_clang-latest_libcxx_tsan_bazel.sh +106 -0
  1568. package/deps/abseil-cpp/ci/linux_clang-latest_libstdcxx_bazel.sh +104 -0
  1569. package/deps/abseil-cpp/ci/linux_docker_containers.sh +22 -0
  1570. package/deps/abseil-cpp/ci/linux_gcc-floor_libstdcxx_bazel.sh +100 -0
  1571. package/deps/abseil-cpp/ci/linux_gcc-latest_libstdcxx_bazel.sh +105 -0
  1572. package/deps/abseil-cpp/ci/linux_gcc-latest_libstdcxx_cmake.sh +85 -0
  1573. package/deps/abseil-cpp/ci/linux_gcc_alpine_cmake.sh +85 -0
  1574. package/deps/abseil-cpp/ci/macos_xcode_bazel.sh +70 -0
  1575. package/deps/abseil-cpp/ci/macos_xcode_cmake.sh +78 -0
  1576. package/deps/abseil-cpp/ci/windows_clangcl_bazel.bat +70 -0
  1577. package/deps/abseil-cpp/ci/windows_msvc_bazel.bat +61 -0
  1578. package/deps/abseil-cpp/ci/windows_msvc_cmake.bat +69 -0
  1579. package/deps/abseil-cpp/conanfile.py +51 -0
  1580. package/deps/abseil-cpp/create_lts.py +139 -0
  1581. package/deps/re2/.bazelrc +20 -0
  1582. package/deps/re2/.bcr/metadata.template.json +16 -0
  1583. package/deps/re2/.bcr/presubmit.yml +57 -0
  1584. package/deps/re2/.bcr/source.template.json +5 -0
  1585. package/deps/re2/BUILD.bazel +463 -0
  1586. package/deps/re2/CMakeLists.txt +283 -0
  1587. package/deps/re2/LICENSE +27 -0
  1588. package/deps/re2/MODULE.bazel +29 -0
  1589. package/deps/re2/Makefile +408 -0
  1590. package/deps/re2/WORKSPACE.bazel +7 -0
  1591. package/deps/re2/WORKSPACE.bzlmod +7 -0
  1592. package/deps/re2/app/BUILD.bazel +24 -0
  1593. package/deps/re2/app/_re2.cc +94 -0
  1594. package/deps/re2/app/_re2.d.ts +23 -0
  1595. package/deps/re2/app/app.ts +111 -0
  1596. package/deps/re2/app/build.sh +32 -0
  1597. package/deps/re2/app/index.html +5 -0
  1598. package/deps/re2/app/package.json +14 -0
  1599. package/deps/re2/app/rollup.config.js +28 -0
  1600. package/deps/re2/app/tsconfig.json +17 -0
  1601. package/deps/re2/benchlog/benchplot.py +98 -0
  1602. package/deps/re2/benchlog/mktable +155 -0
  1603. package/deps/re2/doc/mksyntaxgo +42 -0
  1604. package/deps/re2/doc/mksyntaxhtml +42 -0
  1605. package/deps/re2/doc/mksyntaxwiki +36 -0
  1606. package/deps/re2/doc/syntax.html +477 -0
  1607. package/deps/re2/doc/syntax.txt +463 -0
  1608. package/deps/re2/lib/git/commit-msg.hook +104 -0
  1609. package/deps/re2/libre2.symbols +16 -0
  1610. package/deps/re2/libre2.symbols.darwin +12 -0
  1611. package/deps/re2/python/BUILD.bazel +80 -0
  1612. package/deps/re2/python/_re2.cc +352 -0
  1613. package/deps/re2/python/re2.py +583 -0
  1614. package/deps/re2/python/re2_test.py +495 -0
  1615. package/deps/re2/python/setup.py +159 -0
  1616. package/deps/re2/python/toolchains/generate.py +100 -0
  1617. package/deps/re2/re2/bitmap256.cc +43 -0
  1618. package/deps/re2/re2/bitmap256.h +88 -0
  1619. package/deps/re2/re2/bitstate.cc +389 -0
  1620. package/deps/re2/re2/compile.cc +1265 -0
  1621. package/deps/re2/re2/dfa.cc +2135 -0
  1622. package/deps/re2/re2/filtered_re2.cc +138 -0
  1623. package/deps/re2/re2/filtered_re2.h +115 -0
  1624. package/deps/re2/re2/fuzzing/re2_fuzzer.cc +284 -0
  1625. package/deps/re2/re2/make_perl_groups.pl +116 -0
  1626. package/deps/re2/re2/make_unicode_casefold.py +151 -0
  1627. package/deps/re2/re2/make_unicode_groups.py +117 -0
  1628. package/deps/re2/re2/mimics_pcre.cc +196 -0
  1629. package/deps/re2/re2/nfa.cc +714 -0
  1630. package/deps/re2/re2/onepass.cc +623 -0
  1631. package/deps/re2/re2/parse.cc +2529 -0
  1632. package/deps/re2/re2/perl_groups.cc +119 -0
  1633. package/deps/re2/re2/pod_array.h +55 -0
  1634. package/deps/re2/re2/prefilter.cc +711 -0
  1635. package/deps/re2/re2/prefilter.h +168 -0
  1636. package/deps/re2/re2/prefilter_tree.cc +376 -0
  1637. package/deps/re2/re2/prefilter_tree.h +153 -0
  1638. package/deps/re2/re2/prog.cc +1181 -0
  1639. package/deps/re2/re2/prog.h +493 -0
  1640. package/deps/re2/re2/re2.cc +1355 -0
  1641. package/deps/re2/re2/re2.h +1074 -0
  1642. package/deps/re2/re2/regexp.cc +1004 -0
  1643. package/deps/re2/re2/regexp.h +693 -0
  1644. package/deps/re2/re2/set.cc +185 -0
  1645. package/deps/re2/re2/set.h +91 -0
  1646. package/deps/re2/re2/simplify.cc +689 -0
  1647. package/deps/re2/re2/sparse_array.h +394 -0
  1648. package/deps/re2/re2/sparse_set.h +266 -0
  1649. package/deps/re2/re2/stringpiece.h +18 -0
  1650. package/deps/re2/re2/testing/backtrack.cc +274 -0
  1651. package/deps/re2/re2/testing/charclass_test.cc +228 -0
  1652. package/deps/re2/re2/testing/compile_test.cc +431 -0
  1653. package/deps/re2/re2/testing/dfa_test.cc +376 -0
  1654. package/deps/re2/re2/testing/dump.cc +172 -0
  1655. package/deps/re2/re2/testing/exhaustive1_test.cc +40 -0
  1656. package/deps/re2/re2/testing/exhaustive2_test.cc +72 -0
  1657. package/deps/re2/re2/testing/exhaustive3_test.cc +100 -0
  1658. package/deps/re2/re2/testing/exhaustive_test.cc +35 -0
  1659. package/deps/re2/re2/testing/exhaustive_tester.cc +204 -0
  1660. package/deps/re2/re2/testing/exhaustive_tester.h +105 -0
  1661. package/deps/re2/re2/testing/filtered_re2_test.cc +343 -0
  1662. package/deps/re2/re2/testing/mimics_pcre_test.cc +79 -0
  1663. package/deps/re2/re2/testing/null_walker.cc +48 -0
  1664. package/deps/re2/re2/testing/parse_test.cc +586 -0
  1665. package/deps/re2/re2/testing/possible_match_test.cc +251 -0
  1666. package/deps/re2/re2/testing/random_test.cc +102 -0
  1667. package/deps/re2/re2/testing/re2_arg_test.cc +182 -0
  1668. package/deps/re2/re2/testing/re2_test.cc +1699 -0
  1669. package/deps/re2/re2/testing/regexp_benchmark.cc +1605 -0
  1670. package/deps/re2/re2/testing/regexp_generator.cc +284 -0
  1671. package/deps/re2/re2/testing/regexp_generator.h +77 -0
  1672. package/deps/re2/re2/testing/regexp_test.cc +87 -0
  1673. package/deps/re2/re2/testing/required_prefix_test.cc +201 -0
  1674. package/deps/re2/re2/testing/search_test.cc +338 -0
  1675. package/deps/re2/re2/testing/set_test.cc +235 -0
  1676. package/deps/re2/re2/testing/simplify_test.cc +289 -0
  1677. package/deps/re2/re2/testing/string_generator.cc +144 -0
  1678. package/deps/re2/re2/testing/string_generator.h +76 -0
  1679. package/deps/re2/re2/testing/string_generator_test.cc +114 -0
  1680. package/deps/re2/re2/testing/tester.cc +690 -0
  1681. package/deps/re2/re2/testing/tester.h +121 -0
  1682. package/deps/re2/re2/tostring.cc +351 -0
  1683. package/deps/re2/re2/unicode.py +284 -0
  1684. package/deps/re2/re2/unicode_casefold.cc +604 -0
  1685. package/deps/re2/re2/unicode_casefold.h +77 -0
  1686. package/deps/re2/re2/unicode_groups.cc +6517 -0
  1687. package/deps/re2/re2/unicode_groups.h +66 -0
  1688. package/deps/re2/re2/walker-inl.h +249 -0
  1689. package/deps/re2/re2.pc.in +9 -0
  1690. package/deps/re2/re2Config.cmake.in +26 -0
  1691. package/deps/re2/runtests +33 -0
  1692. package/deps/re2/testinstall.cc +27 -0
  1693. package/deps/re2/ucs2.diff +567 -0
  1694. package/deps/re2/util/malloc_counter.h +19 -0
  1695. package/deps/re2/util/pcre.cc +957 -0
  1696. package/deps/re2/util/pcre.h +671 -0
  1697. package/deps/re2/util/rune.cc +260 -0
  1698. package/deps/re2/util/strutil.cc +26 -0
  1699. package/deps/re2/util/strutil.h +16 -0
  1700. package/deps/re2/util/utf.h +44 -0
  1701. package/index.js +14 -5
  1702. package/package.json +1 -1
  1703. package/prebuilds/darwin-arm64/@nxtedition+rocksdb.node +0 -0
  1704. package/prebuilds/linux-x64/@nxtedition+rocksdb.node +0 -0
  1705. package/util.h +10 -16
@@ -0,0 +1,1901 @@
1
+ // Copyright 2017 The Abseil Authors.
2
+ //
3
+ // Licensed under the Apache License, Version 2.0 (the "License");
4
+ // you may not use this file except in compliance with the License.
5
+ // You may obtain a copy of the License at
6
+ //
7
+ // https://www.apache.org/licenses/LICENSE-2.0
8
+ //
9
+ // Unless required by applicable law or agreed to in writing, software
10
+ // distributed under the License is distributed on an "AS IS" BASIS,
11
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+
15
+ #if defined(_MSC_VER)
16
+ #include <winsock2.h> // for timeval
17
+ #endif
18
+
19
+ #include "absl/base/config.h"
20
+
21
+ // For feature testing and determining which headers can be included.
22
+ #if ABSL_INTERNAL_CPLUSPLUS_LANG >= 202002L
23
+ #include <version>
24
+ #endif
25
+
26
+ #include <array>
27
+ #include <cfloat>
28
+ #include <chrono> // NOLINT(build/c++11)
29
+ #ifdef __cpp_lib_three_way_comparison
30
+ #include <compare>
31
+ #endif // __cpp_lib_three_way_comparison
32
+ #include <cmath>
33
+ #include <cstdint>
34
+ #include <ctime>
35
+ #include <iomanip>
36
+ #include <limits>
37
+ #include <random>
38
+ #include <string>
39
+ #include <type_traits>
40
+
41
+ #include "gmock/gmock.h"
42
+ #include "gtest/gtest.h"
43
+ #include "absl/random/random.h"
44
+ #include "absl/strings/str_format.h"
45
+ #include "absl/time/time.h"
46
+
47
+ namespace {
48
+
49
+ constexpr int64_t kint64max = std::numeric_limits<int64_t>::max();
50
+ constexpr int64_t kint64min = std::numeric_limits<int64_t>::min();
51
+
52
+ // Approximates the given number of years. This is only used to make some test
53
+ // code more readable.
54
+ absl::Duration ApproxYears(int64_t n) { return absl::Hours(n) * 365 * 24; }
55
+
56
+ // A gMock matcher to match timespec values. Use this matcher like:
57
+ // timespec ts1, ts2;
58
+ // EXPECT_THAT(ts1, TimespecMatcher(ts2));
59
+ MATCHER_P(TimespecMatcher, ts, "") {
60
+ if (ts.tv_sec == arg.tv_sec && ts.tv_nsec == arg.tv_nsec) return true;
61
+ *result_listener << "expected: {" << ts.tv_sec << ", " << ts.tv_nsec << "} ";
62
+ *result_listener << "actual: {" << arg.tv_sec << ", " << arg.tv_nsec << "}";
63
+ return false;
64
+ }
65
+
66
+ // A gMock matcher to match timeval values. Use this matcher like:
67
+ // timeval tv1, tv2;
68
+ // EXPECT_THAT(tv1, TimevalMatcher(tv2));
69
+ MATCHER_P(TimevalMatcher, tv, "") {
70
+ if (tv.tv_sec == arg.tv_sec && tv.tv_usec == arg.tv_usec) return true;
71
+ *result_listener << "expected: {" << tv.tv_sec << ", " << tv.tv_usec << "} ";
72
+ *result_listener << "actual: {" << arg.tv_sec << ", " << arg.tv_usec << "}";
73
+ return false;
74
+ }
75
+
76
+ TEST(Duration, ConstExpr) {
77
+ static_assert(std::is_trivially_destructible<absl::Duration>::value,
78
+ "Duration is documented as being trivially destructible");
79
+ constexpr absl::Duration d0 = absl::ZeroDuration();
80
+ static_assert(d0 == absl::ZeroDuration(), "ZeroDuration()");
81
+ constexpr absl::Duration d1 = absl::Seconds(1);
82
+ static_assert(d1 == absl::Seconds(1), "Seconds(1)");
83
+ static_assert(d1 != absl::ZeroDuration(), "Seconds(1)");
84
+ constexpr absl::Duration d2 = absl::InfiniteDuration();
85
+ static_assert(d2 == absl::InfiniteDuration(), "InfiniteDuration()");
86
+ static_assert(d2 != absl::ZeroDuration(), "InfiniteDuration()");
87
+ }
88
+
89
+ TEST(Duration, ValueSemantics) {
90
+ // If this compiles, the test passes.
91
+ constexpr absl::Duration a; // Default construction
92
+ constexpr absl::Duration b = a; // Copy construction
93
+ constexpr absl::Duration c(b); // Copy construction (again)
94
+
95
+ absl::Duration d;
96
+ d = c; // Assignment
97
+ }
98
+
99
+ TEST(Duration, Factories) {
100
+ constexpr absl::Duration zero = absl::ZeroDuration();
101
+ constexpr absl::Duration nano = absl::Nanoseconds(1);
102
+ constexpr absl::Duration micro = absl::Microseconds(1);
103
+ constexpr absl::Duration milli = absl::Milliseconds(1);
104
+ constexpr absl::Duration sec = absl::Seconds(1);
105
+ constexpr absl::Duration min = absl::Minutes(1);
106
+ constexpr absl::Duration hour = absl::Hours(1);
107
+
108
+ EXPECT_EQ(zero, absl::Duration());
109
+ EXPECT_EQ(zero, absl::Seconds(0));
110
+ EXPECT_EQ(nano, absl::Nanoseconds(1));
111
+ EXPECT_EQ(micro, absl::Nanoseconds(1000));
112
+ EXPECT_EQ(milli, absl::Microseconds(1000));
113
+ EXPECT_EQ(sec, absl::Milliseconds(1000));
114
+ EXPECT_EQ(min, absl::Seconds(60));
115
+ EXPECT_EQ(hour, absl::Minutes(60));
116
+
117
+ // Tests factory limits
118
+ const absl::Duration inf = absl::InfiniteDuration();
119
+
120
+ EXPECT_GT(inf, absl::Seconds(kint64max));
121
+ EXPECT_LT(-inf, absl::Seconds(kint64min));
122
+ EXPECT_LT(-inf, absl::Seconds(-kint64max));
123
+
124
+ EXPECT_EQ(inf, absl::Minutes(kint64max));
125
+ EXPECT_EQ(-inf, absl::Minutes(kint64min));
126
+ EXPECT_EQ(-inf, absl::Minutes(-kint64max));
127
+ EXPECT_GT(inf, absl::Minutes(kint64max / 60));
128
+ EXPECT_LT(-inf, absl::Minutes(kint64min / 60));
129
+ EXPECT_LT(-inf, absl::Minutes(-kint64max / 60));
130
+
131
+ EXPECT_EQ(inf, absl::Hours(kint64max));
132
+ EXPECT_EQ(-inf, absl::Hours(kint64min));
133
+ EXPECT_EQ(-inf, absl::Hours(-kint64max));
134
+ EXPECT_GT(inf, absl::Hours(kint64max / 3600));
135
+ EXPECT_LT(-inf, absl::Hours(kint64min / 3600));
136
+ EXPECT_LT(-inf, absl::Hours(-kint64max / 3600));
137
+ }
138
+
139
+ TEST(Duration, ToConversion) {
140
+ #define TEST_DURATION_CONVERSION(UNIT) \
141
+ do { \
142
+ const absl::Duration d = absl::UNIT(1.5); \
143
+ constexpr absl::Duration z = absl::ZeroDuration(); \
144
+ constexpr absl::Duration inf = absl::InfiniteDuration(); \
145
+ constexpr double dbl_inf = std::numeric_limits<double>::infinity(); \
146
+ EXPECT_EQ(kint64min, absl::ToInt64##UNIT(-inf)); \
147
+ EXPECT_EQ(-1, absl::ToInt64##UNIT(-d)); \
148
+ EXPECT_EQ(0, absl::ToInt64##UNIT(z)); \
149
+ EXPECT_EQ(1, absl::ToInt64##UNIT(d)); \
150
+ EXPECT_EQ(kint64max, absl::ToInt64##UNIT(inf)); \
151
+ EXPECT_EQ(-dbl_inf, absl::ToDouble##UNIT(-inf)); \
152
+ EXPECT_EQ(-1.5, absl::ToDouble##UNIT(-d)); \
153
+ EXPECT_EQ(0, absl::ToDouble##UNIT(z)); \
154
+ EXPECT_EQ(1.5, absl::ToDouble##UNIT(d)); \
155
+ EXPECT_EQ(dbl_inf, absl::ToDouble##UNIT(inf)); \
156
+ } while (0)
157
+
158
+ TEST_DURATION_CONVERSION(Nanoseconds);
159
+ TEST_DURATION_CONVERSION(Microseconds);
160
+ TEST_DURATION_CONVERSION(Milliseconds);
161
+ TEST_DURATION_CONVERSION(Seconds);
162
+ TEST_DURATION_CONVERSION(Minutes);
163
+ TEST_DURATION_CONVERSION(Hours);
164
+
165
+ #undef TEST_DURATION_CONVERSION
166
+ }
167
+
168
+ template <int64_t N>
169
+ void TestToConversion() {
170
+ constexpr absl::Duration nano = absl::Nanoseconds(N);
171
+ EXPECT_EQ(N, absl::ToInt64Nanoseconds(nano));
172
+ EXPECT_EQ(0, absl::ToInt64Microseconds(nano));
173
+ EXPECT_EQ(0, absl::ToInt64Milliseconds(nano));
174
+ EXPECT_EQ(0, absl::ToInt64Seconds(nano));
175
+ EXPECT_EQ(0, absl::ToInt64Minutes(nano));
176
+ EXPECT_EQ(0, absl::ToInt64Hours(nano));
177
+ const absl::Duration micro = absl::Microseconds(N);
178
+ EXPECT_EQ(N * 1000, absl::ToInt64Nanoseconds(micro));
179
+ EXPECT_EQ(N, absl::ToInt64Microseconds(micro));
180
+ EXPECT_EQ(0, absl::ToInt64Milliseconds(micro));
181
+ EXPECT_EQ(0, absl::ToInt64Seconds(micro));
182
+ EXPECT_EQ(0, absl::ToInt64Minutes(micro));
183
+ EXPECT_EQ(0, absl::ToInt64Hours(micro));
184
+ const absl::Duration milli = absl::Milliseconds(N);
185
+ EXPECT_EQ(N * 1000 * 1000, absl::ToInt64Nanoseconds(milli));
186
+ EXPECT_EQ(N * 1000, absl::ToInt64Microseconds(milli));
187
+ EXPECT_EQ(N, absl::ToInt64Milliseconds(milli));
188
+ EXPECT_EQ(0, absl::ToInt64Seconds(milli));
189
+ EXPECT_EQ(0, absl::ToInt64Minutes(milli));
190
+ EXPECT_EQ(0, absl::ToInt64Hours(milli));
191
+ const absl::Duration sec = absl::Seconds(N);
192
+ EXPECT_EQ(N * 1000 * 1000 * 1000, absl::ToInt64Nanoseconds(sec));
193
+ EXPECT_EQ(N * 1000 * 1000, absl::ToInt64Microseconds(sec));
194
+ EXPECT_EQ(N * 1000, absl::ToInt64Milliseconds(sec));
195
+ EXPECT_EQ(N, absl::ToInt64Seconds(sec));
196
+ EXPECT_EQ(0, absl::ToInt64Minutes(sec));
197
+ EXPECT_EQ(0, absl::ToInt64Hours(sec));
198
+ const absl::Duration min = absl::Minutes(N);
199
+ EXPECT_EQ(N * 60 * 1000 * 1000 * 1000, absl::ToInt64Nanoseconds(min));
200
+ EXPECT_EQ(N * 60 * 1000 * 1000, absl::ToInt64Microseconds(min));
201
+ EXPECT_EQ(N * 60 * 1000, absl::ToInt64Milliseconds(min));
202
+ EXPECT_EQ(N * 60, absl::ToInt64Seconds(min));
203
+ EXPECT_EQ(N, absl::ToInt64Minutes(min));
204
+ EXPECT_EQ(0, absl::ToInt64Hours(min));
205
+ const absl::Duration hour = absl::Hours(N);
206
+ EXPECT_EQ(N * 60 * 60 * 1000 * 1000 * 1000, absl::ToInt64Nanoseconds(hour));
207
+ EXPECT_EQ(N * 60 * 60 * 1000 * 1000, absl::ToInt64Microseconds(hour));
208
+ EXPECT_EQ(N * 60 * 60 * 1000, absl::ToInt64Milliseconds(hour));
209
+ EXPECT_EQ(N * 60 * 60, absl::ToInt64Seconds(hour));
210
+ EXPECT_EQ(N * 60, absl::ToInt64Minutes(hour));
211
+ EXPECT_EQ(N, absl::ToInt64Hours(hour));
212
+ }
213
+
214
+ TEST(Duration, ToConversionDeprecated) {
215
+ TestToConversion<43>();
216
+ TestToConversion<1>();
217
+ TestToConversion<0>();
218
+ TestToConversion<-1>();
219
+ TestToConversion<-43>();
220
+ }
221
+
222
+ template <int64_t N>
223
+ void TestFromChronoBasicEquality() {
224
+ using std::chrono::hours;
225
+ using std::chrono::microseconds;
226
+ using std::chrono::milliseconds;
227
+ using std::chrono::minutes;
228
+ using std::chrono::nanoseconds;
229
+ using std::chrono::seconds;
230
+
231
+ static_assert(absl::Nanoseconds(N) == absl::FromChrono(nanoseconds(N)), "");
232
+ static_assert(absl::Microseconds(N) == absl::FromChrono(microseconds(N)), "");
233
+ static_assert(absl::Milliseconds(N) == absl::FromChrono(milliseconds(N)), "");
234
+ static_assert(absl::Seconds(N) == absl::FromChrono(seconds(N)), "");
235
+ static_assert(absl::Minutes(N) == absl::FromChrono(minutes(N)), "");
236
+ static_assert(absl::Hours(N) == absl::FromChrono(hours(N)), "");
237
+ }
238
+
239
+ TEST(Duration, FromChrono) {
240
+ TestFromChronoBasicEquality<-123>();
241
+ TestFromChronoBasicEquality<-1>();
242
+ TestFromChronoBasicEquality<0>();
243
+ TestFromChronoBasicEquality<1>();
244
+ TestFromChronoBasicEquality<123>();
245
+
246
+ // Minutes (might, depending on the platform) saturate at +inf.
247
+ const auto chrono_minutes_max = std::chrono::minutes::max();
248
+ const auto minutes_max = absl::FromChrono(chrono_minutes_max);
249
+ const int64_t minutes_max_count = chrono_minutes_max.count();
250
+ if (minutes_max_count > kint64max / 60) {
251
+ EXPECT_EQ(absl::InfiniteDuration(), minutes_max);
252
+ } else {
253
+ EXPECT_EQ(absl::Minutes(minutes_max_count), minutes_max);
254
+ }
255
+
256
+ // Minutes (might, depending on the platform) saturate at -inf.
257
+ const auto chrono_minutes_min = std::chrono::minutes::min();
258
+ const auto minutes_min = absl::FromChrono(chrono_minutes_min);
259
+ const int64_t minutes_min_count = chrono_minutes_min.count();
260
+ if (minutes_min_count < kint64min / 60) {
261
+ EXPECT_EQ(-absl::InfiniteDuration(), minutes_min);
262
+ } else {
263
+ EXPECT_EQ(absl::Minutes(minutes_min_count), minutes_min);
264
+ }
265
+
266
+ // Hours (might, depending on the platform) saturate at +inf.
267
+ const auto chrono_hours_max = std::chrono::hours::max();
268
+ const auto hours_max = absl::FromChrono(chrono_hours_max);
269
+ const int64_t hours_max_count = chrono_hours_max.count();
270
+ if (hours_max_count > kint64max / 3600) {
271
+ EXPECT_EQ(absl::InfiniteDuration(), hours_max);
272
+ } else {
273
+ EXPECT_EQ(absl::Hours(hours_max_count), hours_max);
274
+ }
275
+
276
+ // Hours (might, depending on the platform) saturate at -inf.
277
+ const auto chrono_hours_min = std::chrono::hours::min();
278
+ const auto hours_min = absl::FromChrono(chrono_hours_min);
279
+ const int64_t hours_min_count = chrono_hours_min.count();
280
+ if (hours_min_count < kint64min / 3600) {
281
+ EXPECT_EQ(-absl::InfiniteDuration(), hours_min);
282
+ } else {
283
+ EXPECT_EQ(absl::Hours(hours_min_count), hours_min);
284
+ }
285
+ }
286
+
287
+ template <int64_t N>
288
+ void TestToChrono() {
289
+ using std::chrono::hours;
290
+ using std::chrono::microseconds;
291
+ using std::chrono::milliseconds;
292
+ using std::chrono::minutes;
293
+ using std::chrono::nanoseconds;
294
+ using std::chrono::seconds;
295
+
296
+ EXPECT_EQ(nanoseconds(N), absl::ToChronoNanoseconds(absl::Nanoseconds(N)));
297
+ EXPECT_EQ(microseconds(N), absl::ToChronoMicroseconds(absl::Microseconds(N)));
298
+ EXPECT_EQ(milliseconds(N), absl::ToChronoMilliseconds(absl::Milliseconds(N)));
299
+ EXPECT_EQ(seconds(N), absl::ToChronoSeconds(absl::Seconds(N)));
300
+
301
+ constexpr auto absl_minutes = absl::Minutes(N);
302
+ auto chrono_minutes = minutes(N);
303
+ if (absl_minutes == -absl::InfiniteDuration()) {
304
+ chrono_minutes = minutes::min();
305
+ } else if (absl_minutes == absl::InfiniteDuration()) {
306
+ chrono_minutes = minutes::max();
307
+ }
308
+ EXPECT_EQ(chrono_minutes, absl::ToChronoMinutes(absl_minutes));
309
+
310
+ constexpr auto absl_hours = absl::Hours(N);
311
+ auto chrono_hours = hours(N);
312
+ if (absl_hours == -absl::InfiniteDuration()) {
313
+ chrono_hours = hours::min();
314
+ } else if (absl_hours == absl::InfiniteDuration()) {
315
+ chrono_hours = hours::max();
316
+ }
317
+ EXPECT_EQ(chrono_hours, absl::ToChronoHours(absl_hours));
318
+ }
319
+
320
+ TEST(Duration, ToChrono) {
321
+ using std::chrono::hours;
322
+ using std::chrono::microseconds;
323
+ using std::chrono::milliseconds;
324
+ using std::chrono::minutes;
325
+ using std::chrono::nanoseconds;
326
+ using std::chrono::seconds;
327
+
328
+ TestToChrono<kint64min>();
329
+ TestToChrono<-1>();
330
+ TestToChrono<0>();
331
+ TestToChrono<1>();
332
+ TestToChrono<kint64max>();
333
+
334
+ // Verify truncation toward zero.
335
+ const auto tick = absl::Nanoseconds(1) / 4;
336
+ EXPECT_EQ(nanoseconds(0), absl::ToChronoNanoseconds(tick));
337
+ EXPECT_EQ(nanoseconds(0), absl::ToChronoNanoseconds(-tick));
338
+ EXPECT_EQ(microseconds(0), absl::ToChronoMicroseconds(tick));
339
+ EXPECT_EQ(microseconds(0), absl::ToChronoMicroseconds(-tick));
340
+ EXPECT_EQ(milliseconds(0), absl::ToChronoMilliseconds(tick));
341
+ EXPECT_EQ(milliseconds(0), absl::ToChronoMilliseconds(-tick));
342
+ EXPECT_EQ(seconds(0), absl::ToChronoSeconds(tick));
343
+ EXPECT_EQ(seconds(0), absl::ToChronoSeconds(-tick));
344
+ EXPECT_EQ(minutes(0), absl::ToChronoMinutes(tick));
345
+ EXPECT_EQ(minutes(0), absl::ToChronoMinutes(-tick));
346
+ EXPECT_EQ(hours(0), absl::ToChronoHours(tick));
347
+ EXPECT_EQ(hours(0), absl::ToChronoHours(-tick));
348
+
349
+ // Verifies +/- infinity saturation at max/min.
350
+ constexpr auto inf = absl::InfiniteDuration();
351
+ EXPECT_EQ(nanoseconds::min(), absl::ToChronoNanoseconds(-inf));
352
+ EXPECT_EQ(nanoseconds::max(), absl::ToChronoNanoseconds(inf));
353
+ EXPECT_EQ(microseconds::min(), absl::ToChronoMicroseconds(-inf));
354
+ EXPECT_EQ(microseconds::max(), absl::ToChronoMicroseconds(inf));
355
+ EXPECT_EQ(milliseconds::min(), absl::ToChronoMilliseconds(-inf));
356
+ EXPECT_EQ(milliseconds::max(), absl::ToChronoMilliseconds(inf));
357
+ EXPECT_EQ(seconds::min(), absl::ToChronoSeconds(-inf));
358
+ EXPECT_EQ(seconds::max(), absl::ToChronoSeconds(inf));
359
+ EXPECT_EQ(minutes::min(), absl::ToChronoMinutes(-inf));
360
+ EXPECT_EQ(minutes::max(), absl::ToChronoMinutes(inf));
361
+ EXPECT_EQ(hours::min(), absl::ToChronoHours(-inf));
362
+ EXPECT_EQ(hours::max(), absl::ToChronoHours(inf));
363
+ }
364
+
365
+ TEST(Duration, FactoryOverloads) {
366
+ enum E { kOne = 1 };
367
+ #define TEST_FACTORY_OVERLOADS(NAME) \
368
+ EXPECT_EQ(1, NAME(kOne) / NAME(kOne)); \
369
+ EXPECT_EQ(1, NAME(static_cast<int8_t>(1)) / NAME(1)); \
370
+ EXPECT_EQ(1, NAME(static_cast<int16_t>(1)) / NAME(1)); \
371
+ EXPECT_EQ(1, NAME(static_cast<int32_t>(1)) / NAME(1)); \
372
+ EXPECT_EQ(1, NAME(static_cast<int64_t>(1)) / NAME(1)); \
373
+ EXPECT_EQ(1, NAME(static_cast<uint8_t>(1)) / NAME(1)); \
374
+ EXPECT_EQ(1, NAME(static_cast<uint16_t>(1)) / NAME(1)); \
375
+ EXPECT_EQ(1, NAME(static_cast<uint32_t>(1)) / NAME(1)); \
376
+ EXPECT_EQ(1, NAME(static_cast<uint64_t>(1)) / NAME(1)); \
377
+ EXPECT_EQ(NAME(1) / 2, NAME(static_cast<float>(0.5))); \
378
+ EXPECT_EQ(NAME(1) / 2, NAME(static_cast<double>(0.5))); \
379
+ EXPECT_EQ(1.5, absl::FDivDuration(NAME(static_cast<float>(1.5)), NAME(1))); \
380
+ EXPECT_EQ(1.5, absl::FDivDuration(NAME(static_cast<double>(1.5)), NAME(1)));
381
+
382
+ TEST_FACTORY_OVERLOADS(absl::Nanoseconds);
383
+ TEST_FACTORY_OVERLOADS(absl::Microseconds);
384
+ TEST_FACTORY_OVERLOADS(absl::Milliseconds);
385
+ TEST_FACTORY_OVERLOADS(absl::Seconds);
386
+ TEST_FACTORY_OVERLOADS(absl::Minutes);
387
+ TEST_FACTORY_OVERLOADS(absl::Hours);
388
+
389
+ #undef TEST_FACTORY_OVERLOADS
390
+
391
+ EXPECT_EQ(absl::Milliseconds(1500), absl::Seconds(1.5));
392
+ EXPECT_LT(absl::Nanoseconds(1), absl::Nanoseconds(1.5));
393
+ EXPECT_GT(absl::Nanoseconds(2), absl::Nanoseconds(1.5));
394
+
395
+ const double dbl_inf = std::numeric_limits<double>::infinity();
396
+ EXPECT_EQ(absl::InfiniteDuration(), absl::Nanoseconds(dbl_inf));
397
+ EXPECT_EQ(absl::InfiniteDuration(), absl::Microseconds(dbl_inf));
398
+ EXPECT_EQ(absl::InfiniteDuration(), absl::Milliseconds(dbl_inf));
399
+ EXPECT_EQ(absl::InfiniteDuration(), absl::Seconds(dbl_inf));
400
+ EXPECT_EQ(absl::InfiniteDuration(), absl::Minutes(dbl_inf));
401
+ EXPECT_EQ(absl::InfiniteDuration(), absl::Hours(dbl_inf));
402
+ EXPECT_EQ(-absl::InfiniteDuration(), absl::Nanoseconds(-dbl_inf));
403
+ EXPECT_EQ(-absl::InfiniteDuration(), absl::Microseconds(-dbl_inf));
404
+ EXPECT_EQ(-absl::InfiniteDuration(), absl::Milliseconds(-dbl_inf));
405
+ EXPECT_EQ(-absl::InfiniteDuration(), absl::Seconds(-dbl_inf));
406
+ EXPECT_EQ(-absl::InfiniteDuration(), absl::Minutes(-dbl_inf));
407
+ EXPECT_EQ(-absl::InfiniteDuration(), absl::Hours(-dbl_inf));
408
+ }
409
+
410
+ TEST(Duration, InfinityExamples) {
411
+ // These examples are used in the documentation in time.h. They are
412
+ // written so that they can be copy-n-pasted easily.
413
+
414
+ constexpr absl::Duration inf = absl::InfiniteDuration();
415
+ constexpr absl::Duration d = absl::Seconds(1); // Any finite duration
416
+
417
+ EXPECT_TRUE(inf == inf + inf);
418
+ EXPECT_TRUE(inf == inf + d);
419
+ EXPECT_TRUE(inf == inf - inf);
420
+ EXPECT_TRUE(-inf == d - inf);
421
+
422
+ EXPECT_TRUE(inf == d * 1e100);
423
+ EXPECT_TRUE(0 == d / inf); // NOLINT(readability/check)
424
+
425
+ // Division by zero returns infinity, or kint64min/MAX where necessary.
426
+ EXPECT_TRUE(inf == d / 0);
427
+ EXPECT_TRUE(kint64max == d / absl::ZeroDuration());
428
+ }
429
+
430
+ TEST(Duration, InfinityComparison) {
431
+ const absl::Duration inf = absl::InfiniteDuration();
432
+ const absl::Duration any_dur = absl::Seconds(1);
433
+
434
+ // Equality
435
+ EXPECT_EQ(inf, inf);
436
+ EXPECT_EQ(-inf, -inf);
437
+ EXPECT_NE(inf, -inf);
438
+ EXPECT_NE(any_dur, inf);
439
+ EXPECT_NE(any_dur, -inf);
440
+
441
+ // Relational
442
+ EXPECT_GT(inf, any_dur);
443
+ EXPECT_LT(-inf, any_dur);
444
+ EXPECT_LT(-inf, inf);
445
+ EXPECT_GT(inf, -inf);
446
+
447
+ #ifdef ABSL_INTERNAL_TIME_HAS_THREE_WAY_COMPARISON
448
+ EXPECT_EQ(inf <=> inf, std::strong_ordering::equal);
449
+ EXPECT_EQ(-inf <=> -inf, std::strong_ordering::equal);
450
+ EXPECT_EQ(-inf <=> inf, std::strong_ordering::less);
451
+ EXPECT_EQ(inf <=> -inf, std::strong_ordering::greater);
452
+ EXPECT_EQ(any_dur <=> inf, std::strong_ordering::less);
453
+ EXPECT_EQ(any_dur <=> -inf, std::strong_ordering::greater);
454
+ #endif // ABSL_INTERNAL_TIME_HAS_THREE_WAY_COMPARISON
455
+ }
456
+
457
+ TEST(Duration, InfinityAddition) {
458
+ const absl::Duration sec_max = absl::Seconds(kint64max);
459
+ const absl::Duration sec_min = absl::Seconds(kint64min);
460
+ const absl::Duration any_dur = absl::Seconds(1);
461
+ const absl::Duration inf = absl::InfiniteDuration();
462
+
463
+ // Addition
464
+ EXPECT_EQ(inf, inf + inf);
465
+ EXPECT_EQ(inf, inf + -inf);
466
+ EXPECT_EQ(-inf, -inf + inf);
467
+ EXPECT_EQ(-inf, -inf + -inf);
468
+
469
+ EXPECT_EQ(inf, inf + any_dur);
470
+ EXPECT_EQ(inf, any_dur + inf);
471
+ EXPECT_EQ(-inf, -inf + any_dur);
472
+ EXPECT_EQ(-inf, any_dur + -inf);
473
+
474
+ // Interesting case
475
+ absl::Duration almost_inf = sec_max + absl::Nanoseconds(999999999);
476
+ EXPECT_GT(inf, almost_inf);
477
+ almost_inf += -absl::Nanoseconds(999999999);
478
+ EXPECT_GT(inf, almost_inf);
479
+
480
+ // Addition overflow/underflow
481
+ EXPECT_EQ(inf, sec_max + absl::Seconds(1));
482
+ EXPECT_EQ(inf, sec_max + sec_max);
483
+ EXPECT_EQ(-inf, sec_min + -absl::Seconds(1));
484
+ EXPECT_EQ(-inf, sec_min + -sec_max);
485
+
486
+ // For reference: IEEE 754 behavior
487
+ const double dbl_inf = std::numeric_limits<double>::infinity();
488
+ EXPECT_TRUE(std::isinf(dbl_inf + dbl_inf));
489
+ EXPECT_TRUE(std::isnan(dbl_inf + -dbl_inf)); // We return inf
490
+ EXPECT_TRUE(std::isnan(-dbl_inf + dbl_inf)); // We return inf
491
+ EXPECT_TRUE(std::isinf(-dbl_inf + -dbl_inf));
492
+ }
493
+
494
+ TEST(Duration, InfinitySubtraction) {
495
+ const absl::Duration sec_max = absl::Seconds(kint64max);
496
+ const absl::Duration sec_min = absl::Seconds(kint64min);
497
+ const absl::Duration any_dur = absl::Seconds(1);
498
+ const absl::Duration inf = absl::InfiniteDuration();
499
+
500
+ // Subtraction
501
+ EXPECT_EQ(inf, inf - inf);
502
+ EXPECT_EQ(inf, inf - -inf);
503
+ EXPECT_EQ(-inf, -inf - inf);
504
+ EXPECT_EQ(-inf, -inf - -inf);
505
+
506
+ EXPECT_EQ(inf, inf - any_dur);
507
+ EXPECT_EQ(-inf, any_dur - inf);
508
+ EXPECT_EQ(-inf, -inf - any_dur);
509
+ EXPECT_EQ(inf, any_dur - -inf);
510
+
511
+ // Subtraction overflow/underflow
512
+ EXPECT_EQ(inf, sec_max - -absl::Seconds(1));
513
+ EXPECT_EQ(inf, sec_max - -sec_max);
514
+ EXPECT_EQ(-inf, sec_min - absl::Seconds(1));
515
+ EXPECT_EQ(-inf, sec_min - sec_max);
516
+
517
+ // Interesting case
518
+ absl::Duration almost_neg_inf = sec_min;
519
+ EXPECT_LT(-inf, almost_neg_inf);
520
+
521
+ #ifdef ABSL_INTERNAL_TIME_HAS_THREE_WAY_COMPARISON
522
+ EXPECT_EQ(-inf <=> almost_neg_inf, std::strong_ordering::less);
523
+ EXPECT_EQ(almost_neg_inf <=> -inf, std::strong_ordering::greater);
524
+ #endif // ABSL_INTERNAL_TIME_HAS_THREE_WAY_COMPARISON
525
+
526
+ almost_neg_inf -= -absl::Nanoseconds(1);
527
+ EXPECT_LT(-inf, almost_neg_inf);
528
+
529
+ #ifdef ABSL_INTERNAL_TIME_HAS_THREE_WAY_COMPARISON
530
+ EXPECT_EQ(-inf <=> almost_neg_inf, std::strong_ordering::less);
531
+ EXPECT_EQ(almost_neg_inf <=> -inf, std::strong_ordering::greater);
532
+ #endif // ABSL_INTERNAL_TIME_HAS_THREE_WAY_COMPARISON
533
+
534
+ // For reference: IEEE 754 behavior
535
+ const double dbl_inf = std::numeric_limits<double>::infinity();
536
+ EXPECT_TRUE(std::isnan(dbl_inf - dbl_inf)); // We return inf
537
+ EXPECT_TRUE(std::isinf(dbl_inf - -dbl_inf));
538
+ EXPECT_TRUE(std::isinf(-dbl_inf - dbl_inf));
539
+ EXPECT_TRUE(std::isnan(-dbl_inf - -dbl_inf)); // We return inf
540
+ }
541
+
542
+ TEST(Duration, InfinityMultiplication) {
543
+ const absl::Duration sec_max = absl::Seconds(kint64max);
544
+ const absl::Duration sec_min = absl::Seconds(kint64min);
545
+ const absl::Duration inf = absl::InfiniteDuration();
546
+
547
+ #define TEST_INF_MUL_WITH_TYPE(T) \
548
+ EXPECT_EQ(inf, inf* static_cast<T>(2)); \
549
+ EXPECT_EQ(-inf, inf* static_cast<T>(-2)); \
550
+ EXPECT_EQ(-inf, -inf* static_cast<T>(2)); \
551
+ EXPECT_EQ(inf, -inf* static_cast<T>(-2)); \
552
+ EXPECT_EQ(inf, inf* static_cast<T>(0)); \
553
+ EXPECT_EQ(-inf, -inf* static_cast<T>(0)); \
554
+ EXPECT_EQ(inf, sec_max* static_cast<T>(2)); \
555
+ EXPECT_EQ(inf, sec_min* static_cast<T>(-2)); \
556
+ EXPECT_EQ(inf, (sec_max / static_cast<T>(2)) * static_cast<T>(3)); \
557
+ EXPECT_EQ(-inf, sec_max* static_cast<T>(-2)); \
558
+ EXPECT_EQ(-inf, sec_min* static_cast<T>(2)); \
559
+ EXPECT_EQ(-inf, (sec_min / static_cast<T>(2)) * static_cast<T>(3));
560
+
561
+ TEST_INF_MUL_WITH_TYPE(int64_t); // NOLINT(readability/function)
562
+ TEST_INF_MUL_WITH_TYPE(double); // NOLINT(readability/function)
563
+
564
+ #undef TEST_INF_MUL_WITH_TYPE
565
+
566
+ const double dbl_inf = std::numeric_limits<double>::infinity();
567
+ EXPECT_EQ(inf, inf * dbl_inf);
568
+ EXPECT_EQ(-inf, -inf * dbl_inf);
569
+ EXPECT_EQ(-inf, inf * -dbl_inf);
570
+ EXPECT_EQ(inf, -inf * -dbl_inf);
571
+
572
+ const absl::Duration any_dur = absl::Seconds(1);
573
+ EXPECT_EQ(inf, any_dur * dbl_inf);
574
+ EXPECT_EQ(-inf, -any_dur * dbl_inf);
575
+ EXPECT_EQ(-inf, any_dur * -dbl_inf);
576
+ EXPECT_EQ(inf, -any_dur * -dbl_inf);
577
+
578
+ // Fixed-point multiplication will produce a finite value, whereas floating
579
+ // point fuzziness will overflow to inf.
580
+ EXPECT_NE(absl::InfiniteDuration(), absl::Seconds(1) * kint64max);
581
+ EXPECT_EQ(inf, absl::Seconds(1) * static_cast<double>(kint64max));
582
+ EXPECT_NE(-absl::InfiniteDuration(), absl::Seconds(1) * kint64min);
583
+ EXPECT_EQ(-inf, absl::Seconds(1) * static_cast<double>(kint64min));
584
+
585
+ // Note that sec_max * or / by 1.0 overflows to inf due to the 53-bit
586
+ // limitations of double.
587
+ EXPECT_NE(inf, sec_max);
588
+ EXPECT_NE(inf, sec_max / 1);
589
+ EXPECT_EQ(inf, sec_max / 1.0);
590
+ EXPECT_NE(inf, sec_max * 1);
591
+ EXPECT_EQ(inf, sec_max * 1.0);
592
+ }
593
+
594
+ TEST(Duration, InfinityDivision) {
595
+ const absl::Duration sec_max = absl::Seconds(kint64max);
596
+ const absl::Duration sec_min = absl::Seconds(kint64min);
597
+ const absl::Duration inf = absl::InfiniteDuration();
598
+
599
+ // Division of Duration by a double
600
+ #define TEST_INF_DIV_WITH_TYPE(T) \
601
+ EXPECT_EQ(inf, inf / static_cast<T>(2)); \
602
+ EXPECT_EQ(-inf, inf / static_cast<T>(-2)); \
603
+ EXPECT_EQ(-inf, -inf / static_cast<T>(2)); \
604
+ EXPECT_EQ(inf, -inf / static_cast<T>(-2));
605
+
606
+ TEST_INF_DIV_WITH_TYPE(int64_t); // NOLINT(readability/function)
607
+ TEST_INF_DIV_WITH_TYPE(double); // NOLINT(readability/function)
608
+
609
+ #undef TEST_INF_DIV_WITH_TYPE
610
+
611
+ // Division of Duration by a double overflow/underflow
612
+ EXPECT_EQ(inf, sec_max / 0.5);
613
+ EXPECT_EQ(inf, sec_min / -0.5);
614
+ EXPECT_EQ(inf, ((sec_max / 0.5) + absl::Seconds(1)) / 0.5);
615
+ EXPECT_EQ(-inf, sec_max / -0.5);
616
+ EXPECT_EQ(-inf, sec_min / 0.5);
617
+ EXPECT_EQ(-inf, ((sec_min / 0.5) - absl::Seconds(1)) / 0.5);
618
+
619
+ const double dbl_inf = std::numeric_limits<double>::infinity();
620
+ EXPECT_EQ(inf, inf / dbl_inf);
621
+ EXPECT_EQ(-inf, inf / -dbl_inf);
622
+ EXPECT_EQ(-inf, -inf / dbl_inf);
623
+ EXPECT_EQ(inf, -inf / -dbl_inf);
624
+
625
+ const absl::Duration any_dur = absl::Seconds(1);
626
+ EXPECT_EQ(absl::ZeroDuration(), any_dur / dbl_inf);
627
+ EXPECT_EQ(absl::ZeroDuration(), any_dur / -dbl_inf);
628
+ EXPECT_EQ(absl::ZeroDuration(), -any_dur / dbl_inf);
629
+ EXPECT_EQ(absl::ZeroDuration(), -any_dur / -dbl_inf);
630
+ }
631
+
632
+ TEST(Duration, InfinityModulus) {
633
+ const absl::Duration sec_max = absl::Seconds(kint64max);
634
+ const absl::Duration any_dur = absl::Seconds(1);
635
+ const absl::Duration inf = absl::InfiniteDuration();
636
+
637
+ EXPECT_EQ(inf, inf % inf);
638
+ EXPECT_EQ(inf, inf % -inf);
639
+ EXPECT_EQ(-inf, -inf % -inf);
640
+ EXPECT_EQ(-inf, -inf % inf);
641
+
642
+ EXPECT_EQ(any_dur, any_dur % inf);
643
+ EXPECT_EQ(any_dur, any_dur % -inf);
644
+ EXPECT_EQ(-any_dur, -any_dur % inf);
645
+ EXPECT_EQ(-any_dur, -any_dur % -inf);
646
+
647
+ EXPECT_EQ(inf, inf % -any_dur);
648
+ EXPECT_EQ(inf, inf % any_dur);
649
+ EXPECT_EQ(-inf, -inf % -any_dur);
650
+ EXPECT_EQ(-inf, -inf % any_dur);
651
+
652
+ // Remainder isn't affected by overflow.
653
+ EXPECT_EQ(absl::ZeroDuration(), sec_max % absl::Seconds(1));
654
+ EXPECT_EQ(absl::ZeroDuration(), sec_max % absl::Milliseconds(1));
655
+ EXPECT_EQ(absl::ZeroDuration(), sec_max % absl::Microseconds(1));
656
+ EXPECT_EQ(absl::ZeroDuration(), sec_max % absl::Nanoseconds(1));
657
+ EXPECT_EQ(absl::ZeroDuration(), sec_max % absl::Nanoseconds(1) / 4);
658
+ }
659
+
660
+ TEST(Duration, InfinityIDiv) {
661
+ const absl::Duration sec_max = absl::Seconds(kint64max);
662
+ const absl::Duration any_dur = absl::Seconds(1);
663
+ const absl::Duration inf = absl::InfiniteDuration();
664
+ const double dbl_inf = std::numeric_limits<double>::infinity();
665
+
666
+ // IDivDuration (int64_t return value + a remainer)
667
+ absl::Duration rem = absl::ZeroDuration();
668
+ EXPECT_EQ(kint64max, absl::IDivDuration(inf, inf, &rem));
669
+ EXPECT_EQ(inf, rem);
670
+
671
+ rem = absl::ZeroDuration();
672
+ EXPECT_EQ(kint64max, absl::IDivDuration(-inf, -inf, &rem));
673
+ EXPECT_EQ(-inf, rem);
674
+
675
+ rem = absl::ZeroDuration();
676
+ EXPECT_EQ(kint64max, absl::IDivDuration(inf, any_dur, &rem));
677
+ EXPECT_EQ(inf, rem);
678
+
679
+ rem = absl::ZeroDuration();
680
+ EXPECT_EQ(0, absl::IDivDuration(any_dur, inf, &rem));
681
+ EXPECT_EQ(any_dur, rem);
682
+
683
+ rem = absl::ZeroDuration();
684
+ EXPECT_EQ(kint64max, absl::IDivDuration(-inf, -any_dur, &rem));
685
+ EXPECT_EQ(-inf, rem);
686
+
687
+ rem = absl::ZeroDuration();
688
+ EXPECT_EQ(0, absl::IDivDuration(-any_dur, -inf, &rem));
689
+ EXPECT_EQ(-any_dur, rem);
690
+
691
+ rem = absl::ZeroDuration();
692
+ EXPECT_EQ(kint64min, absl::IDivDuration(-inf, inf, &rem));
693
+ EXPECT_EQ(-inf, rem);
694
+
695
+ rem = absl::ZeroDuration();
696
+ EXPECT_EQ(kint64min, absl::IDivDuration(inf, -inf, &rem));
697
+ EXPECT_EQ(inf, rem);
698
+
699
+ rem = absl::ZeroDuration();
700
+ EXPECT_EQ(kint64min, absl::IDivDuration(-inf, any_dur, &rem));
701
+ EXPECT_EQ(-inf, rem);
702
+
703
+ rem = absl::ZeroDuration();
704
+ EXPECT_EQ(0, absl::IDivDuration(-any_dur, inf, &rem));
705
+ EXPECT_EQ(-any_dur, rem);
706
+
707
+ rem = absl::ZeroDuration();
708
+ EXPECT_EQ(kint64min, absl::IDivDuration(inf, -any_dur, &rem));
709
+ EXPECT_EQ(inf, rem);
710
+
711
+ rem = absl::ZeroDuration();
712
+ EXPECT_EQ(0, absl::IDivDuration(any_dur, -inf, &rem));
713
+ EXPECT_EQ(any_dur, rem);
714
+
715
+ // IDivDuration overflow/underflow
716
+ rem = any_dur;
717
+ EXPECT_EQ(kint64max,
718
+ absl::IDivDuration(sec_max, absl::Nanoseconds(1) / 4, &rem));
719
+ EXPECT_EQ(sec_max - absl::Nanoseconds(kint64max) / 4, rem);
720
+
721
+ rem = any_dur;
722
+ EXPECT_EQ(kint64max,
723
+ absl::IDivDuration(sec_max, absl::Milliseconds(1), &rem));
724
+ EXPECT_EQ(sec_max - absl::Milliseconds(kint64max), rem);
725
+
726
+ rem = any_dur;
727
+ EXPECT_EQ(kint64max,
728
+ absl::IDivDuration(-sec_max, -absl::Milliseconds(1), &rem));
729
+ EXPECT_EQ(-sec_max + absl::Milliseconds(kint64max), rem);
730
+
731
+ rem = any_dur;
732
+ EXPECT_EQ(kint64min,
733
+ absl::IDivDuration(-sec_max, absl::Milliseconds(1), &rem));
734
+ EXPECT_EQ(-sec_max - absl::Milliseconds(kint64min), rem);
735
+
736
+ rem = any_dur;
737
+ EXPECT_EQ(kint64min,
738
+ absl::IDivDuration(sec_max, -absl::Milliseconds(1), &rem));
739
+ EXPECT_EQ(sec_max + absl::Milliseconds(kint64min), rem);
740
+
741
+ //
742
+ // operator/(Duration, Duration) is a wrapper for IDivDuration().
743
+ //
744
+
745
+ // IEEE 754 says inf / inf should be nan, but int64_t doesn't have
746
+ // nan so we'll return kint64max/kint64min instead.
747
+ EXPECT_TRUE(std::isnan(dbl_inf / dbl_inf));
748
+ EXPECT_EQ(kint64max, inf / inf);
749
+ EXPECT_EQ(kint64max, -inf / -inf);
750
+ EXPECT_EQ(kint64min, -inf / inf);
751
+ EXPECT_EQ(kint64min, inf / -inf);
752
+
753
+ EXPECT_TRUE(std::isinf(dbl_inf / 2.0));
754
+ EXPECT_EQ(kint64max, inf / any_dur);
755
+ EXPECT_EQ(kint64max, -inf / -any_dur);
756
+ EXPECT_EQ(kint64min, -inf / any_dur);
757
+ EXPECT_EQ(kint64min, inf / -any_dur);
758
+
759
+ EXPECT_EQ(0.0, 2.0 / dbl_inf);
760
+ EXPECT_EQ(0, any_dur / inf);
761
+ EXPECT_EQ(0, any_dur / -inf);
762
+ EXPECT_EQ(0, -any_dur / inf);
763
+ EXPECT_EQ(0, -any_dur / -inf);
764
+ EXPECT_EQ(0, absl::ZeroDuration() / inf);
765
+
766
+ // Division of Duration by a Duration overflow/underflow
767
+ EXPECT_EQ(kint64max, sec_max / absl::Milliseconds(1));
768
+ EXPECT_EQ(kint64max, -sec_max / -absl::Milliseconds(1));
769
+ EXPECT_EQ(kint64min, -sec_max / absl::Milliseconds(1));
770
+ EXPECT_EQ(kint64min, sec_max / -absl::Milliseconds(1));
771
+ }
772
+
773
+ TEST(Duration, InfinityFDiv) {
774
+ const absl::Duration any_dur = absl::Seconds(1);
775
+ const absl::Duration inf = absl::InfiniteDuration();
776
+ const double dbl_inf = std::numeric_limits<double>::infinity();
777
+
778
+ EXPECT_EQ(dbl_inf, absl::FDivDuration(inf, inf));
779
+ EXPECT_EQ(dbl_inf, absl::FDivDuration(-inf, -inf));
780
+ EXPECT_EQ(dbl_inf, absl::FDivDuration(inf, any_dur));
781
+ EXPECT_EQ(0.0, absl::FDivDuration(any_dur, inf));
782
+ EXPECT_EQ(dbl_inf, absl::FDivDuration(-inf, -any_dur));
783
+ EXPECT_EQ(0.0, absl::FDivDuration(-any_dur, -inf));
784
+
785
+ EXPECT_EQ(-dbl_inf, absl::FDivDuration(-inf, inf));
786
+ EXPECT_EQ(-dbl_inf, absl::FDivDuration(inf, -inf));
787
+ EXPECT_EQ(-dbl_inf, absl::FDivDuration(-inf, any_dur));
788
+ EXPECT_EQ(0.0, absl::FDivDuration(-any_dur, inf));
789
+ EXPECT_EQ(-dbl_inf, absl::FDivDuration(inf, -any_dur));
790
+ EXPECT_EQ(0.0, absl::FDivDuration(any_dur, -inf));
791
+ }
792
+
793
+ TEST(Duration, DivisionByZero) {
794
+ const absl::Duration zero = absl::ZeroDuration();
795
+ const absl::Duration inf = absl::InfiniteDuration();
796
+ const absl::Duration any_dur = absl::Seconds(1);
797
+ const double dbl_inf = std::numeric_limits<double>::infinity();
798
+ const double dbl_denorm = std::numeric_limits<double>::denorm_min();
799
+
800
+ // Operator/(Duration, double)
801
+ EXPECT_EQ(inf, zero / 0.0);
802
+ EXPECT_EQ(-inf, zero / -0.0);
803
+ EXPECT_EQ(inf, any_dur / 0.0);
804
+ EXPECT_EQ(-inf, any_dur / -0.0);
805
+ EXPECT_EQ(-inf, -any_dur / 0.0);
806
+ EXPECT_EQ(inf, -any_dur / -0.0);
807
+
808
+ // Tests dividing by a number very close to, but not quite zero.
809
+ EXPECT_EQ(zero, zero / dbl_denorm);
810
+ EXPECT_EQ(zero, zero / -dbl_denorm);
811
+ EXPECT_EQ(inf, any_dur / dbl_denorm);
812
+ EXPECT_EQ(-inf, any_dur / -dbl_denorm);
813
+ EXPECT_EQ(-inf, -any_dur / dbl_denorm);
814
+ EXPECT_EQ(inf, -any_dur / -dbl_denorm);
815
+
816
+ // IDiv
817
+ absl::Duration rem = zero;
818
+ EXPECT_EQ(kint64max, absl::IDivDuration(zero, zero, &rem));
819
+ EXPECT_EQ(inf, rem);
820
+
821
+ rem = zero;
822
+ EXPECT_EQ(kint64max, absl::IDivDuration(any_dur, zero, &rem));
823
+ EXPECT_EQ(inf, rem);
824
+
825
+ rem = zero;
826
+ EXPECT_EQ(kint64min, absl::IDivDuration(-any_dur, zero, &rem));
827
+ EXPECT_EQ(-inf, rem);
828
+
829
+ // Operator/(Duration, Duration)
830
+ EXPECT_EQ(kint64max, zero / zero);
831
+ EXPECT_EQ(kint64max, any_dur / zero);
832
+ EXPECT_EQ(kint64min, -any_dur / zero);
833
+
834
+ // FDiv
835
+ EXPECT_EQ(dbl_inf, absl::FDivDuration(zero, zero));
836
+ EXPECT_EQ(dbl_inf, absl::FDivDuration(any_dur, zero));
837
+ EXPECT_EQ(-dbl_inf, absl::FDivDuration(-any_dur, zero));
838
+ }
839
+
840
+ TEST(Duration, NaN) {
841
+ // Note that IEEE 754 does not define the behavior of a nan's sign when it is
842
+ // copied. We return -InfiniteDuration in either case.
843
+ #define TEST_NAN_HANDLING(NAME, NAN) \
844
+ do { \
845
+ const auto inf = absl::InfiniteDuration(); \
846
+ auto x = NAME(NAN); \
847
+ EXPECT_TRUE(x == -inf); \
848
+ auto y = NAME(42); \
849
+ y *= NAN; \
850
+ EXPECT_TRUE(y == -inf); \
851
+ auto z = NAME(42); \
852
+ z /= NAN; \
853
+ EXPECT_TRUE(z == -inf); \
854
+ } while (0)
855
+
856
+ const double nan = std::numeric_limits<double>::quiet_NaN();
857
+ TEST_NAN_HANDLING(absl::Nanoseconds, nan);
858
+ TEST_NAN_HANDLING(absl::Microseconds, nan);
859
+ TEST_NAN_HANDLING(absl::Milliseconds, nan);
860
+ TEST_NAN_HANDLING(absl::Seconds, nan);
861
+ TEST_NAN_HANDLING(absl::Minutes, nan);
862
+ TEST_NAN_HANDLING(absl::Hours, nan);
863
+
864
+ TEST_NAN_HANDLING(absl::Nanoseconds, -nan);
865
+ TEST_NAN_HANDLING(absl::Microseconds, -nan);
866
+ TEST_NAN_HANDLING(absl::Milliseconds, -nan);
867
+ TEST_NAN_HANDLING(absl::Seconds, -nan);
868
+ TEST_NAN_HANDLING(absl::Minutes, -nan);
869
+ TEST_NAN_HANDLING(absl::Hours, -nan);
870
+
871
+ #undef TEST_NAN_HANDLING
872
+ }
873
+
874
+ TEST(Duration, Range) {
875
+ const absl::Duration range = ApproxYears(100 * 1e9);
876
+ const absl::Duration range_future = range;
877
+ const absl::Duration range_past = -range;
878
+
879
+ EXPECT_LT(range_future, absl::InfiniteDuration());
880
+ EXPECT_GT(range_past, -absl::InfiniteDuration());
881
+
882
+ const absl::Duration full_range = range_future - range_past;
883
+ EXPECT_GT(full_range, absl::ZeroDuration());
884
+ EXPECT_LT(full_range, absl::InfiniteDuration());
885
+
886
+ const absl::Duration neg_full_range = range_past - range_future;
887
+ EXPECT_LT(neg_full_range, absl::ZeroDuration());
888
+ EXPECT_GT(neg_full_range, -absl::InfiniteDuration());
889
+
890
+ EXPECT_LT(neg_full_range, full_range);
891
+ EXPECT_EQ(neg_full_range, -full_range);
892
+
893
+ #ifdef ABSL_INTERNAL_TIME_HAS_THREE_WAY_COMPARISON
894
+ EXPECT_EQ(range_future <=> absl::InfiniteDuration(),
895
+ std::strong_ordering::less);
896
+ EXPECT_EQ(range_past <=> -absl::InfiniteDuration(),
897
+ std::strong_ordering::greater);
898
+ EXPECT_EQ(full_range <=> absl::ZeroDuration(), //
899
+ std::strong_ordering::greater);
900
+ EXPECT_EQ(full_range <=> -absl::InfiniteDuration(),
901
+ std::strong_ordering::greater);
902
+ EXPECT_EQ(neg_full_range <=> -absl::InfiniteDuration(),
903
+ std::strong_ordering::greater);
904
+ EXPECT_EQ(neg_full_range <=> full_range, std::strong_ordering::less);
905
+ EXPECT_EQ(neg_full_range <=> -full_range, std::strong_ordering::equal);
906
+ #endif // ABSL_INTERNAL_TIME_HAS_THREE_WAY_COMPARISON
907
+ }
908
+
909
+ TEST(Duration, RelationalOperators) {
910
+ #define TEST_REL_OPS(UNIT) \
911
+ static_assert(UNIT(2) == UNIT(2), ""); \
912
+ static_assert(UNIT(1) != UNIT(2), ""); \
913
+ static_assert(UNIT(1) < UNIT(2), ""); \
914
+ static_assert(UNIT(3) > UNIT(2), ""); \
915
+ static_assert(UNIT(1) <= UNIT(2), ""); \
916
+ static_assert(UNIT(2) <= UNIT(2), ""); \
917
+ static_assert(UNIT(3) >= UNIT(2), ""); \
918
+ static_assert(UNIT(2) >= UNIT(2), "");
919
+
920
+ TEST_REL_OPS(absl::Nanoseconds);
921
+ TEST_REL_OPS(absl::Microseconds);
922
+ TEST_REL_OPS(absl::Milliseconds);
923
+ TEST_REL_OPS(absl::Seconds);
924
+ TEST_REL_OPS(absl::Minutes);
925
+ TEST_REL_OPS(absl::Hours);
926
+
927
+ #undef TEST_REL_OPS
928
+ }
929
+
930
+ #ifdef ABSL_INTERNAL_TIME_HAS_THREE_WAY_COMPARISON
931
+
932
+ TEST(Duration, SpaceshipOperators) {
933
+ #define TEST_REL_OPS(UNIT) \
934
+ static_assert(UNIT(2) <=> UNIT(2) == std::strong_ordering::equal, ""); \
935
+ static_assert(UNIT(1) <=> UNIT(2) == std::strong_ordering::less, ""); \
936
+ static_assert(UNIT(3) <=> UNIT(2) == std::strong_ordering::greater, "");
937
+
938
+ TEST_REL_OPS(absl::Nanoseconds);
939
+ TEST_REL_OPS(absl::Microseconds);
940
+ TEST_REL_OPS(absl::Milliseconds);
941
+ TEST_REL_OPS(absl::Seconds);
942
+ TEST_REL_OPS(absl::Minutes);
943
+ TEST_REL_OPS(absl::Hours);
944
+
945
+ #undef TEST_REL_OPS
946
+ }
947
+
948
+ #endif // ABSL_INTERNAL_TIME_HAS_THREE_WAY_COMPARISON
949
+
950
+ TEST(Duration, Addition) {
951
+ #define TEST_ADD_OPS(UNIT) \
952
+ do { \
953
+ EXPECT_EQ(UNIT(2), UNIT(1) + UNIT(1)); \
954
+ EXPECT_EQ(UNIT(1), UNIT(2) - UNIT(1)); \
955
+ EXPECT_EQ(UNIT(0), UNIT(2) - UNIT(2)); \
956
+ EXPECT_EQ(UNIT(-1), UNIT(1) - UNIT(2)); \
957
+ EXPECT_EQ(UNIT(-2), UNIT(0) - UNIT(2)); \
958
+ EXPECT_EQ(UNIT(-2), UNIT(1) - UNIT(3)); \
959
+ absl::Duration a = UNIT(1); \
960
+ a += UNIT(1); \
961
+ EXPECT_EQ(UNIT(2), a); \
962
+ a -= UNIT(1); \
963
+ EXPECT_EQ(UNIT(1), a); \
964
+ } while (0)
965
+
966
+ TEST_ADD_OPS(absl::Nanoseconds);
967
+ TEST_ADD_OPS(absl::Microseconds);
968
+ TEST_ADD_OPS(absl::Milliseconds);
969
+ TEST_ADD_OPS(absl::Seconds);
970
+ TEST_ADD_OPS(absl::Minutes);
971
+ TEST_ADD_OPS(absl::Hours);
972
+
973
+ #undef TEST_ADD_OPS
974
+
975
+ EXPECT_EQ(absl::Seconds(2), absl::Seconds(3) - 2 * absl::Milliseconds(500));
976
+ EXPECT_EQ(absl::Seconds(2) + absl::Milliseconds(500),
977
+ absl::Seconds(3) - absl::Milliseconds(500));
978
+
979
+ EXPECT_EQ(absl::Seconds(1) + absl::Milliseconds(998),
980
+ absl::Milliseconds(999) + absl::Milliseconds(999));
981
+
982
+ EXPECT_EQ(absl::Milliseconds(-1),
983
+ absl::Milliseconds(998) - absl::Milliseconds(999));
984
+
985
+ // Tests fractions of a nanoseconds. These are implementation details only.
986
+ EXPECT_GT(absl::Nanoseconds(1), absl::Nanoseconds(1) / 2);
987
+ EXPECT_EQ(absl::Nanoseconds(1),
988
+ absl::Nanoseconds(1) / 2 + absl::Nanoseconds(1) / 2);
989
+ EXPECT_GT(absl::Nanoseconds(1) / 4, absl::Nanoseconds(0));
990
+ EXPECT_EQ(absl::Nanoseconds(1) / 8, absl::Nanoseconds(0));
991
+
992
+ // Tests subtraction that will cause wrap around of the rep_lo_ bits.
993
+ absl::Duration d_7_5 = absl::Seconds(7) + absl::Milliseconds(500);
994
+ absl::Duration d_3_7 = absl::Seconds(3) + absl::Milliseconds(700);
995
+ absl::Duration ans_3_8 = absl::Seconds(3) + absl::Milliseconds(800);
996
+ EXPECT_EQ(ans_3_8, d_7_5 - d_3_7);
997
+
998
+ // Subtracting min_duration
999
+ absl::Duration min_dur = absl::Seconds(kint64min);
1000
+ EXPECT_EQ(absl::Seconds(0), min_dur - min_dur);
1001
+ EXPECT_EQ(absl::Seconds(kint64max), absl::Seconds(-1) - min_dur);
1002
+ }
1003
+
1004
+ TEST(Duration, Negation) {
1005
+ // By storing negations of various values in constexpr variables we
1006
+ // verify that the initializers are constant expressions.
1007
+ constexpr absl::Duration negated_zero_duration = -absl::ZeroDuration();
1008
+ EXPECT_EQ(negated_zero_duration, absl::ZeroDuration());
1009
+
1010
+ constexpr absl::Duration negated_infinite_duration =
1011
+ -absl::InfiniteDuration();
1012
+ EXPECT_NE(negated_infinite_duration, absl::InfiniteDuration());
1013
+ EXPECT_EQ(-negated_infinite_duration, absl::InfiniteDuration());
1014
+
1015
+ // The public APIs to check if a duration is infinite depend on using
1016
+ // -InfiniteDuration(), but we're trying to test operator- here, so we
1017
+ // need to use the lower-level internal query IsInfiniteDuration.
1018
+ EXPECT_TRUE(
1019
+ absl::time_internal::IsInfiniteDuration(negated_infinite_duration));
1020
+
1021
+ // The largest Duration is kint64max seconds and kTicksPerSecond - 1 ticks.
1022
+ // Using the absl::time_internal::MakeDuration API is the cleanest way to
1023
+ // construct that Duration.
1024
+ constexpr absl::Duration max_duration = absl::time_internal::MakeDuration(
1025
+ kint64max, absl::time_internal::kTicksPerSecond - 1);
1026
+ constexpr absl::Duration negated_max_duration = -max_duration;
1027
+ // The largest negatable value is one tick above the minimum representable;
1028
+ // it's the negation of max_duration.
1029
+ constexpr absl::Duration nearly_min_duration =
1030
+ absl::time_internal::MakeDuration(kint64min, int64_t{1});
1031
+ constexpr absl::Duration negated_nearly_min_duration = -nearly_min_duration;
1032
+
1033
+ EXPECT_EQ(negated_max_duration, nearly_min_duration);
1034
+ EXPECT_EQ(negated_nearly_min_duration, max_duration);
1035
+ EXPECT_EQ(-(-max_duration), max_duration);
1036
+
1037
+ constexpr absl::Duration min_duration =
1038
+ absl::time_internal::MakeDuration(kint64min);
1039
+ constexpr absl::Duration negated_min_duration = -min_duration;
1040
+ EXPECT_EQ(negated_min_duration, absl::InfiniteDuration());
1041
+ }
1042
+
1043
+ TEST(Duration, AbsoluteValue) {
1044
+ EXPECT_EQ(absl::ZeroDuration(), AbsDuration(absl::ZeroDuration()));
1045
+ EXPECT_EQ(absl::Seconds(1), AbsDuration(absl::Seconds(1)));
1046
+ EXPECT_EQ(absl::Seconds(1), AbsDuration(absl::Seconds(-1)));
1047
+
1048
+ EXPECT_EQ(absl::InfiniteDuration(), AbsDuration(absl::InfiniteDuration()));
1049
+ EXPECT_EQ(absl::InfiniteDuration(), AbsDuration(-absl::InfiniteDuration()));
1050
+
1051
+ absl::Duration max_dur =
1052
+ absl::Seconds(kint64max) + (absl::Seconds(1) - absl::Nanoseconds(1) / 4);
1053
+ EXPECT_EQ(max_dur, AbsDuration(max_dur));
1054
+
1055
+ absl::Duration min_dur = absl::Seconds(kint64min);
1056
+ EXPECT_EQ(absl::InfiniteDuration(), AbsDuration(min_dur));
1057
+ EXPECT_EQ(max_dur, AbsDuration(min_dur + absl::Nanoseconds(1) / 4));
1058
+ }
1059
+
1060
+ TEST(Duration, Multiplication) {
1061
+ #define TEST_MUL_OPS(UNIT) \
1062
+ do { \
1063
+ EXPECT_EQ(UNIT(5), UNIT(2) * 2.5); \
1064
+ EXPECT_EQ(UNIT(2), UNIT(5) / 2.5); \
1065
+ EXPECT_EQ(UNIT(-5), UNIT(-2) * 2.5); \
1066
+ EXPECT_EQ(UNIT(-5), -UNIT(2) * 2.5); \
1067
+ EXPECT_EQ(UNIT(-5), UNIT(2) * -2.5); \
1068
+ EXPECT_EQ(UNIT(-2), UNIT(-5) / 2.5); \
1069
+ EXPECT_EQ(UNIT(-2), -UNIT(5) / 2.5); \
1070
+ EXPECT_EQ(UNIT(-2), UNIT(5) / -2.5); \
1071
+ EXPECT_EQ(UNIT(2), UNIT(11) % UNIT(3)); \
1072
+ absl::Duration a = UNIT(2); \
1073
+ a *= 2.5; \
1074
+ EXPECT_EQ(UNIT(5), a); \
1075
+ a /= 2.5; \
1076
+ EXPECT_EQ(UNIT(2), a); \
1077
+ a %= UNIT(1); \
1078
+ EXPECT_EQ(UNIT(0), a); \
1079
+ absl::Duration big = UNIT(1000000000); \
1080
+ big *= 3; \
1081
+ big /= 3; \
1082
+ EXPECT_EQ(UNIT(1000000000), big); \
1083
+ EXPECT_EQ(-UNIT(2), -UNIT(2)); \
1084
+ EXPECT_EQ(-UNIT(2), UNIT(2) * -1); \
1085
+ EXPECT_EQ(-UNIT(2), -1 * UNIT(2)); \
1086
+ EXPECT_EQ(-UNIT(-2), UNIT(2)); \
1087
+ EXPECT_EQ(2, UNIT(2) / UNIT(1)); \
1088
+ absl::Duration rem; \
1089
+ EXPECT_EQ(2, absl::IDivDuration(UNIT(2), UNIT(1), &rem)); \
1090
+ EXPECT_EQ(2.0, absl::FDivDuration(UNIT(2), UNIT(1))); \
1091
+ } while (0)
1092
+
1093
+ TEST_MUL_OPS(absl::Nanoseconds);
1094
+ TEST_MUL_OPS(absl::Microseconds);
1095
+ TEST_MUL_OPS(absl::Milliseconds);
1096
+ TEST_MUL_OPS(absl::Seconds);
1097
+ TEST_MUL_OPS(absl::Minutes);
1098
+ TEST_MUL_OPS(absl::Hours);
1099
+
1100
+ #undef TEST_MUL_OPS
1101
+
1102
+ // Ensures that multiplication and division by 1 with a maxed-out durations
1103
+ // doesn't lose precision.
1104
+ absl::Duration max_dur =
1105
+ absl::Seconds(kint64max) + (absl::Seconds(1) - absl::Nanoseconds(1) / 4);
1106
+ absl::Duration min_dur = absl::Seconds(kint64min);
1107
+ EXPECT_EQ(max_dur, max_dur * 1);
1108
+ EXPECT_EQ(max_dur, max_dur / 1);
1109
+ EXPECT_EQ(min_dur, min_dur * 1);
1110
+ EXPECT_EQ(min_dur, min_dur / 1);
1111
+
1112
+ // Tests division on a Duration with a large number of significant digits.
1113
+ // Tests when the digits span hi and lo as well as only in hi.
1114
+ absl::Duration sigfigs = absl::Seconds(2000000000) + absl::Nanoseconds(3);
1115
+ EXPECT_EQ(absl::Seconds(666666666) + absl::Nanoseconds(666666667) +
1116
+ absl::Nanoseconds(1) / 2,
1117
+ sigfigs / 3);
1118
+ sigfigs = absl::Seconds(int64_t{7000000000});
1119
+ EXPECT_EQ(absl::Seconds(2333333333) + absl::Nanoseconds(333333333) +
1120
+ absl::Nanoseconds(1) / 4,
1121
+ sigfigs / 3);
1122
+
1123
+ EXPECT_EQ(absl::Seconds(7) + absl::Milliseconds(500), absl::Seconds(3) * 2.5);
1124
+ EXPECT_EQ(absl::Seconds(8) * -1 + absl::Milliseconds(300),
1125
+ (absl::Seconds(2) + absl::Milliseconds(200)) * -3.5);
1126
+ EXPECT_EQ(-absl::Seconds(8) + absl::Milliseconds(300),
1127
+ (absl::Seconds(2) + absl::Milliseconds(200)) * -3.5);
1128
+ EXPECT_EQ(absl::Seconds(1) + absl::Milliseconds(875),
1129
+ (absl::Seconds(7) + absl::Milliseconds(500)) / 4);
1130
+ EXPECT_EQ(absl::Seconds(30),
1131
+ (absl::Seconds(7) + absl::Milliseconds(500)) / 0.25);
1132
+ EXPECT_EQ(absl::Seconds(3),
1133
+ (absl::Seconds(7) + absl::Milliseconds(500)) / 2.5);
1134
+
1135
+ // Tests division remainder.
1136
+ EXPECT_EQ(absl::Nanoseconds(0), absl::Nanoseconds(7) % absl::Nanoseconds(1));
1137
+ EXPECT_EQ(absl::Nanoseconds(0), absl::Nanoseconds(0) % absl::Nanoseconds(10));
1138
+ EXPECT_EQ(absl::Nanoseconds(2), absl::Nanoseconds(7) % absl::Nanoseconds(5));
1139
+ EXPECT_EQ(absl::Nanoseconds(2), absl::Nanoseconds(2) % absl::Nanoseconds(5));
1140
+
1141
+ EXPECT_EQ(absl::Nanoseconds(1), absl::Nanoseconds(10) % absl::Nanoseconds(3));
1142
+ EXPECT_EQ(absl::Nanoseconds(1),
1143
+ absl::Nanoseconds(10) % absl::Nanoseconds(-3));
1144
+ EXPECT_EQ(absl::Nanoseconds(-1),
1145
+ absl::Nanoseconds(-10) % absl::Nanoseconds(3));
1146
+ EXPECT_EQ(absl::Nanoseconds(-1),
1147
+ absl::Nanoseconds(-10) % absl::Nanoseconds(-3));
1148
+
1149
+ EXPECT_EQ(absl::Milliseconds(100),
1150
+ absl::Seconds(1) % absl::Milliseconds(300));
1151
+ EXPECT_EQ(
1152
+ absl::Milliseconds(300),
1153
+ (absl::Seconds(3) + absl::Milliseconds(800)) % absl::Milliseconds(500));
1154
+
1155
+ EXPECT_EQ(absl::Nanoseconds(1), absl::Nanoseconds(1) % absl::Seconds(1));
1156
+ EXPECT_EQ(absl::Nanoseconds(-1), absl::Nanoseconds(-1) % absl::Seconds(1));
1157
+ EXPECT_EQ(0, absl::Nanoseconds(-1) / absl::Seconds(1)); // Actual -1e-9
1158
+
1159
+ // Tests identity a = (a/b)*b + a%b
1160
+ #define TEST_MOD_IDENTITY(a, b) EXPECT_EQ((a), ((a) / (b)) * (b) + ((a) % (b)))
1161
+
1162
+ TEST_MOD_IDENTITY(absl::Seconds(0), absl::Seconds(2));
1163
+ TEST_MOD_IDENTITY(absl::Seconds(1), absl::Seconds(1));
1164
+ TEST_MOD_IDENTITY(absl::Seconds(1), absl::Seconds(2));
1165
+ TEST_MOD_IDENTITY(absl::Seconds(2), absl::Seconds(1));
1166
+
1167
+ TEST_MOD_IDENTITY(absl::Seconds(-2), absl::Seconds(1));
1168
+ TEST_MOD_IDENTITY(absl::Seconds(2), absl::Seconds(-1));
1169
+ TEST_MOD_IDENTITY(absl::Seconds(-2), absl::Seconds(-1));
1170
+
1171
+ TEST_MOD_IDENTITY(absl::Nanoseconds(0), absl::Nanoseconds(2));
1172
+ TEST_MOD_IDENTITY(absl::Nanoseconds(1), absl::Nanoseconds(1));
1173
+ TEST_MOD_IDENTITY(absl::Nanoseconds(1), absl::Nanoseconds(2));
1174
+ TEST_MOD_IDENTITY(absl::Nanoseconds(2), absl::Nanoseconds(1));
1175
+
1176
+ TEST_MOD_IDENTITY(absl::Nanoseconds(-2), absl::Nanoseconds(1));
1177
+ TEST_MOD_IDENTITY(absl::Nanoseconds(2), absl::Nanoseconds(-1));
1178
+ TEST_MOD_IDENTITY(absl::Nanoseconds(-2), absl::Nanoseconds(-1));
1179
+
1180
+ // Mixed seconds + subseconds
1181
+ absl::Duration mixed_a = absl::Seconds(1) + absl::Nanoseconds(2);
1182
+ absl::Duration mixed_b = absl::Seconds(1) + absl::Nanoseconds(3);
1183
+
1184
+ TEST_MOD_IDENTITY(absl::Seconds(0), mixed_a);
1185
+ TEST_MOD_IDENTITY(mixed_a, mixed_a);
1186
+ TEST_MOD_IDENTITY(mixed_a, mixed_b);
1187
+ TEST_MOD_IDENTITY(mixed_b, mixed_a);
1188
+
1189
+ TEST_MOD_IDENTITY(-mixed_a, mixed_b);
1190
+ TEST_MOD_IDENTITY(mixed_a, -mixed_b);
1191
+ TEST_MOD_IDENTITY(-mixed_a, -mixed_b);
1192
+
1193
+ #undef TEST_MOD_IDENTITY
1194
+ }
1195
+
1196
+ TEST(Duration, Truncation) {
1197
+ const absl::Duration d = absl::Nanoseconds(1234567890);
1198
+ const absl::Duration inf = absl::InfiniteDuration();
1199
+ for (int unit_sign : {1, -1}) { // sign shouldn't matter
1200
+ EXPECT_EQ(absl::Nanoseconds(1234567890),
1201
+ Trunc(d, unit_sign * absl::Nanoseconds(1)));
1202
+ EXPECT_EQ(absl::Microseconds(1234567),
1203
+ Trunc(d, unit_sign * absl::Microseconds(1)));
1204
+ EXPECT_EQ(absl::Milliseconds(1234),
1205
+ Trunc(d, unit_sign * absl::Milliseconds(1)));
1206
+ EXPECT_EQ(absl::Seconds(1), Trunc(d, unit_sign * absl::Seconds(1)));
1207
+ EXPECT_EQ(inf, Trunc(inf, unit_sign * absl::Seconds(1)));
1208
+
1209
+ EXPECT_EQ(absl::Nanoseconds(-1234567890),
1210
+ Trunc(-d, unit_sign * absl::Nanoseconds(1)));
1211
+ EXPECT_EQ(absl::Microseconds(-1234567),
1212
+ Trunc(-d, unit_sign * absl::Microseconds(1)));
1213
+ EXPECT_EQ(absl::Milliseconds(-1234),
1214
+ Trunc(-d, unit_sign * absl::Milliseconds(1)));
1215
+ EXPECT_EQ(absl::Seconds(-1), Trunc(-d, unit_sign * absl::Seconds(1)));
1216
+ EXPECT_EQ(-inf, Trunc(-inf, unit_sign * absl::Seconds(1)));
1217
+ }
1218
+ }
1219
+
1220
+ TEST(Duration, Flooring) {
1221
+ const absl::Duration d = absl::Nanoseconds(1234567890);
1222
+ const absl::Duration inf = absl::InfiniteDuration();
1223
+ for (int unit_sign : {1, -1}) { // sign shouldn't matter
1224
+ EXPECT_EQ(absl::Nanoseconds(1234567890),
1225
+ absl::Floor(d, unit_sign * absl::Nanoseconds(1)));
1226
+ EXPECT_EQ(absl::Microseconds(1234567),
1227
+ absl::Floor(d, unit_sign * absl::Microseconds(1)));
1228
+ EXPECT_EQ(absl::Milliseconds(1234),
1229
+ absl::Floor(d, unit_sign * absl::Milliseconds(1)));
1230
+ EXPECT_EQ(absl::Seconds(1), absl::Floor(d, unit_sign * absl::Seconds(1)));
1231
+ EXPECT_EQ(inf, absl::Floor(inf, unit_sign * absl::Seconds(1)));
1232
+
1233
+ EXPECT_EQ(absl::Nanoseconds(-1234567890),
1234
+ absl::Floor(-d, unit_sign * absl::Nanoseconds(1)));
1235
+ EXPECT_EQ(absl::Microseconds(-1234568),
1236
+ absl::Floor(-d, unit_sign * absl::Microseconds(1)));
1237
+ EXPECT_EQ(absl::Milliseconds(-1235),
1238
+ absl::Floor(-d, unit_sign * absl::Milliseconds(1)));
1239
+ EXPECT_EQ(absl::Seconds(-2), absl::Floor(-d, unit_sign * absl::Seconds(1)));
1240
+ EXPECT_EQ(-inf, absl::Floor(-inf, unit_sign * absl::Seconds(1)));
1241
+ }
1242
+ }
1243
+
1244
+ TEST(Duration, Ceiling) {
1245
+ const absl::Duration d = absl::Nanoseconds(1234567890);
1246
+ const absl::Duration inf = absl::InfiniteDuration();
1247
+ for (int unit_sign : {1, -1}) { // // sign shouldn't matter
1248
+ EXPECT_EQ(absl::Nanoseconds(1234567890),
1249
+ absl::Ceil(d, unit_sign * absl::Nanoseconds(1)));
1250
+ EXPECT_EQ(absl::Microseconds(1234568),
1251
+ absl::Ceil(d, unit_sign * absl::Microseconds(1)));
1252
+ EXPECT_EQ(absl::Milliseconds(1235),
1253
+ absl::Ceil(d, unit_sign * absl::Milliseconds(1)));
1254
+ EXPECT_EQ(absl::Seconds(2), absl::Ceil(d, unit_sign * absl::Seconds(1)));
1255
+ EXPECT_EQ(inf, absl::Ceil(inf, unit_sign * absl::Seconds(1)));
1256
+
1257
+ EXPECT_EQ(absl::Nanoseconds(-1234567890),
1258
+ absl::Ceil(-d, unit_sign * absl::Nanoseconds(1)));
1259
+ EXPECT_EQ(absl::Microseconds(-1234567),
1260
+ absl::Ceil(-d, unit_sign * absl::Microseconds(1)));
1261
+ EXPECT_EQ(absl::Milliseconds(-1234),
1262
+ absl::Ceil(-d, unit_sign * absl::Milliseconds(1)));
1263
+ EXPECT_EQ(absl::Seconds(-1), absl::Ceil(-d, unit_sign * absl::Seconds(1)));
1264
+ EXPECT_EQ(-inf, absl::Ceil(-inf, unit_sign * absl::Seconds(1)));
1265
+ }
1266
+ }
1267
+
1268
+ TEST(Duration, RoundTripUnits) {
1269
+ const int kRange = 100000;
1270
+
1271
+ #define ROUND_TRIP_UNIT(U, LOW, HIGH) \
1272
+ do { \
1273
+ for (int64_t i = LOW; i < HIGH; ++i) { \
1274
+ absl::Duration d = absl::U(i); \
1275
+ if (d == absl::InfiniteDuration()) \
1276
+ EXPECT_EQ(kint64max, d / absl::U(1)); \
1277
+ else if (d == -absl::InfiniteDuration()) \
1278
+ EXPECT_EQ(kint64min, d / absl::U(1)); \
1279
+ else \
1280
+ EXPECT_EQ(i, absl::U(i) / absl::U(1)); \
1281
+ } \
1282
+ } while (0)
1283
+
1284
+ ROUND_TRIP_UNIT(Nanoseconds, kint64min, kint64min + kRange);
1285
+ ROUND_TRIP_UNIT(Nanoseconds, -kRange, kRange);
1286
+ ROUND_TRIP_UNIT(Nanoseconds, kint64max - kRange, kint64max);
1287
+
1288
+ ROUND_TRIP_UNIT(Microseconds, kint64min, kint64min + kRange);
1289
+ ROUND_TRIP_UNIT(Microseconds, -kRange, kRange);
1290
+ ROUND_TRIP_UNIT(Microseconds, kint64max - kRange, kint64max);
1291
+
1292
+ ROUND_TRIP_UNIT(Milliseconds, kint64min, kint64min + kRange);
1293
+ ROUND_TRIP_UNIT(Milliseconds, -kRange, kRange);
1294
+ ROUND_TRIP_UNIT(Milliseconds, kint64max - kRange, kint64max);
1295
+
1296
+ ROUND_TRIP_UNIT(Seconds, kint64min, kint64min + kRange);
1297
+ ROUND_TRIP_UNIT(Seconds, -kRange, kRange);
1298
+ ROUND_TRIP_UNIT(Seconds, kint64max - kRange, kint64max);
1299
+
1300
+ ROUND_TRIP_UNIT(Minutes, kint64min / 60, kint64min / 60 + kRange);
1301
+ ROUND_TRIP_UNIT(Minutes, -kRange, kRange);
1302
+ ROUND_TRIP_UNIT(Minutes, kint64max / 60 - kRange, kint64max / 60);
1303
+
1304
+ ROUND_TRIP_UNIT(Hours, kint64min / 3600, kint64min / 3600 + kRange);
1305
+ ROUND_TRIP_UNIT(Hours, -kRange, kRange);
1306
+ ROUND_TRIP_UNIT(Hours, kint64max / 3600 - kRange, kint64max / 3600);
1307
+
1308
+ #undef ROUND_TRIP_UNIT
1309
+ }
1310
+
1311
+ TEST(Duration, TruncConversions) {
1312
+ // Tests ToTimespec()/DurationFromTimespec()
1313
+ const struct {
1314
+ absl::Duration d;
1315
+ timespec ts;
1316
+ } to_ts[] = {
1317
+ {absl::Seconds(1) + absl::Nanoseconds(1), {1, 1}},
1318
+ {absl::Seconds(1) + absl::Nanoseconds(1) / 2, {1, 0}},
1319
+ {absl::Seconds(1) + absl::Nanoseconds(0), {1, 0}},
1320
+ {absl::Seconds(0) + absl::Nanoseconds(0), {0, 0}},
1321
+ {absl::Seconds(0) - absl::Nanoseconds(1) / 2, {0, 0}},
1322
+ {absl::Seconds(0) - absl::Nanoseconds(1), {-1, 999999999}},
1323
+ {absl::Seconds(-1) + absl::Nanoseconds(1), {-1, 1}},
1324
+ {absl::Seconds(-1) + absl::Nanoseconds(1) / 2, {-1, 1}},
1325
+ {absl::Seconds(-1) + absl::Nanoseconds(0), {-1, 0}},
1326
+ {absl::Seconds(-1) - absl::Nanoseconds(1) / 2, {-1, 0}},
1327
+ };
1328
+ for (const auto& test : to_ts) {
1329
+ EXPECT_THAT(absl::ToTimespec(test.d), TimespecMatcher(test.ts));
1330
+ }
1331
+ const struct {
1332
+ timespec ts;
1333
+ absl::Duration d;
1334
+ } from_ts[] = {
1335
+ {{1, 1}, absl::Seconds(1) + absl::Nanoseconds(1)},
1336
+ {{1, 0}, absl::Seconds(1) + absl::Nanoseconds(0)},
1337
+ {{0, 0}, absl::Seconds(0) + absl::Nanoseconds(0)},
1338
+ {{0, -1}, absl::Seconds(0) - absl::Nanoseconds(1)},
1339
+ {{-1, 999999999}, absl::Seconds(0) - absl::Nanoseconds(1)},
1340
+ {{-1, 1}, absl::Seconds(-1) + absl::Nanoseconds(1)},
1341
+ {{-1, 0}, absl::Seconds(-1) + absl::Nanoseconds(0)},
1342
+ {{-1, -1}, absl::Seconds(-1) - absl::Nanoseconds(1)},
1343
+ {{-2, 999999999}, absl::Seconds(-1) - absl::Nanoseconds(1)},
1344
+ };
1345
+ for (const auto& test : from_ts) {
1346
+ EXPECT_EQ(test.d, absl::DurationFromTimespec(test.ts));
1347
+ }
1348
+
1349
+ // Tests ToTimeval()/DurationFromTimeval() (same as timespec above)
1350
+ const struct {
1351
+ absl::Duration d;
1352
+ timeval tv;
1353
+ } to_tv[] = {
1354
+ {absl::Seconds(1) + absl::Microseconds(1), {1, 1}},
1355
+ {absl::Seconds(1) + absl::Microseconds(1) / 2, {1, 0}},
1356
+ {absl::Seconds(1) + absl::Microseconds(0), {1, 0}},
1357
+ {absl::Seconds(0) + absl::Microseconds(0), {0, 0}},
1358
+ {absl::Seconds(0) - absl::Microseconds(1) / 2, {0, 0}},
1359
+ {absl::Seconds(0) - absl::Microseconds(1), {-1, 999999}},
1360
+ {absl::Seconds(-1) + absl::Microseconds(1), {-1, 1}},
1361
+ {absl::Seconds(-1) + absl::Microseconds(1) / 2, {-1, 1}},
1362
+ {absl::Seconds(-1) + absl::Microseconds(0), {-1, 0}},
1363
+ {absl::Seconds(-1) - absl::Microseconds(1) / 2, {-1, 0}},
1364
+ };
1365
+ for (const auto& test : to_tv) {
1366
+ EXPECT_THAT(absl::ToTimeval(test.d), TimevalMatcher(test.tv));
1367
+ }
1368
+ const struct {
1369
+ timeval tv;
1370
+ absl::Duration d;
1371
+ } from_tv[] = {
1372
+ {{1, 1}, absl::Seconds(1) + absl::Microseconds(1)},
1373
+ {{1, 0}, absl::Seconds(1) + absl::Microseconds(0)},
1374
+ {{0, 0}, absl::Seconds(0) + absl::Microseconds(0)},
1375
+ {{0, -1}, absl::Seconds(0) - absl::Microseconds(1)},
1376
+ {{-1, 999999}, absl::Seconds(0) - absl::Microseconds(1)},
1377
+ {{-1, 1}, absl::Seconds(-1) + absl::Microseconds(1)},
1378
+ {{-1, 0}, absl::Seconds(-1) + absl::Microseconds(0)},
1379
+ {{-1, -1}, absl::Seconds(-1) - absl::Microseconds(1)},
1380
+ {{-2, 999999}, absl::Seconds(-1) - absl::Microseconds(1)},
1381
+ };
1382
+ for (const auto& test : from_tv) {
1383
+ EXPECT_EQ(test.d, absl::DurationFromTimeval(test.tv));
1384
+ }
1385
+ }
1386
+
1387
+ TEST(Duration, SmallConversions) {
1388
+ // Special tests for conversions of small durations.
1389
+
1390
+ EXPECT_EQ(absl::ZeroDuration(), absl::Seconds(0));
1391
+ // TODO(bww): Is the next one OK?
1392
+ EXPECT_EQ(absl::ZeroDuration(), absl::Seconds(std::nextafter(0.125e-9, 0)));
1393
+ EXPECT_EQ(absl::Nanoseconds(1) / 4, absl::Seconds(0.125e-9));
1394
+ EXPECT_EQ(absl::Nanoseconds(1) / 4, absl::Seconds(0.250e-9));
1395
+ EXPECT_EQ(absl::Nanoseconds(1) / 2, absl::Seconds(0.375e-9));
1396
+ EXPECT_EQ(absl::Nanoseconds(1) / 2, absl::Seconds(0.500e-9));
1397
+ EXPECT_EQ(absl::Nanoseconds(3) / 4, absl::Seconds(0.625e-9));
1398
+ EXPECT_EQ(absl::Nanoseconds(3) / 4, absl::Seconds(0.750e-9));
1399
+ EXPECT_EQ(absl::Nanoseconds(1), absl::Seconds(0.875e-9));
1400
+ EXPECT_EQ(absl::Nanoseconds(1), absl::Seconds(1.000e-9));
1401
+
1402
+ EXPECT_EQ(absl::ZeroDuration(), absl::Seconds(std::nextafter(-0.125e-9, 0)));
1403
+ EXPECT_EQ(-absl::Nanoseconds(1) / 4, absl::Seconds(-0.125e-9));
1404
+ EXPECT_EQ(-absl::Nanoseconds(1) / 4, absl::Seconds(-0.250e-9));
1405
+ EXPECT_EQ(-absl::Nanoseconds(1) / 2, absl::Seconds(-0.375e-9));
1406
+ EXPECT_EQ(-absl::Nanoseconds(1) / 2, absl::Seconds(-0.500e-9));
1407
+ EXPECT_EQ(-absl::Nanoseconds(3) / 4, absl::Seconds(-0.625e-9));
1408
+ EXPECT_EQ(-absl::Nanoseconds(3) / 4, absl::Seconds(-0.750e-9));
1409
+ EXPECT_EQ(-absl::Nanoseconds(1), absl::Seconds(-0.875e-9));
1410
+ EXPECT_EQ(-absl::Nanoseconds(1), absl::Seconds(-1.000e-9));
1411
+
1412
+ timespec ts;
1413
+ ts.tv_sec = 0;
1414
+ ts.tv_nsec = 0;
1415
+ EXPECT_THAT(ToTimespec(absl::Nanoseconds(0)), TimespecMatcher(ts));
1416
+ // TODO(bww): Are the next three OK?
1417
+ EXPECT_THAT(ToTimespec(absl::Nanoseconds(1) / 4), TimespecMatcher(ts));
1418
+ EXPECT_THAT(ToTimespec(absl::Nanoseconds(2) / 4), TimespecMatcher(ts));
1419
+ EXPECT_THAT(ToTimespec(absl::Nanoseconds(3) / 4), TimespecMatcher(ts));
1420
+ ts.tv_nsec = 1;
1421
+ EXPECT_THAT(ToTimespec(absl::Nanoseconds(4) / 4), TimespecMatcher(ts));
1422
+ EXPECT_THAT(ToTimespec(absl::Nanoseconds(5) / 4), TimespecMatcher(ts));
1423
+ EXPECT_THAT(ToTimespec(absl::Nanoseconds(6) / 4), TimespecMatcher(ts));
1424
+ EXPECT_THAT(ToTimespec(absl::Nanoseconds(7) / 4), TimespecMatcher(ts));
1425
+ ts.tv_nsec = 2;
1426
+ EXPECT_THAT(ToTimespec(absl::Nanoseconds(8) / 4), TimespecMatcher(ts));
1427
+
1428
+ timeval tv;
1429
+ tv.tv_sec = 0;
1430
+ tv.tv_usec = 0;
1431
+ EXPECT_THAT(ToTimeval(absl::Nanoseconds(0)), TimevalMatcher(tv));
1432
+ // TODO(bww): Is the next one OK?
1433
+ EXPECT_THAT(ToTimeval(absl::Nanoseconds(999)), TimevalMatcher(tv));
1434
+ tv.tv_usec = 1;
1435
+ EXPECT_THAT(ToTimeval(absl::Nanoseconds(1000)), TimevalMatcher(tv));
1436
+ EXPECT_THAT(ToTimeval(absl::Nanoseconds(1999)), TimevalMatcher(tv));
1437
+ tv.tv_usec = 2;
1438
+ EXPECT_THAT(ToTimeval(absl::Nanoseconds(2000)), TimevalMatcher(tv));
1439
+ }
1440
+
1441
+ void VerifyApproxSameAsMul(double time_as_seconds, int* const misses) {
1442
+ auto direct_seconds = absl::Seconds(time_as_seconds);
1443
+ auto mul_by_one_second = time_as_seconds * absl::Seconds(1);
1444
+ // These are expected to differ by up to one tick due to fused multiply/add
1445
+ // contraction.
1446
+ if (absl::AbsDuration(direct_seconds - mul_by_one_second) >
1447
+ absl::time_internal::MakeDuration(0, 1u)) {
1448
+ if (*misses > 10) return;
1449
+ ASSERT_LE(++(*misses), 10) << "Too many errors, not reporting more.";
1450
+ EXPECT_EQ(direct_seconds, mul_by_one_second)
1451
+ << "given double time_as_seconds = " << std::setprecision(17)
1452
+ << time_as_seconds;
1453
+ }
1454
+ }
1455
+
1456
+ // For a variety of interesting durations, we find the exact point
1457
+ // where one double converts to that duration, and the very next double
1458
+ // converts to the next duration. For both of those points, verify that
1459
+ // Seconds(point) returns a duration near point * Seconds(1.0). (They may
1460
+ // not be exactly equal due to fused multiply/add contraction.)
1461
+ TEST(Duration, ToDoubleSecondsCheckEdgeCases) {
1462
+ #if (defined(__i386__) || defined(_M_IX86)) && FLT_EVAL_METHOD != 0
1463
+ // We're using an x87-compatible FPU, and intermediate operations can be
1464
+ // performed with 80-bit floats. This means the edge cases are different than
1465
+ // what we expect here, so just skip this test.
1466
+ GTEST_SKIP()
1467
+ << "Skipping the test because we detected x87 floating-point semantics";
1468
+ #endif
1469
+
1470
+ constexpr uint32_t kTicksPerSecond = absl::time_internal::kTicksPerSecond;
1471
+ constexpr auto duration_tick = absl::time_internal::MakeDuration(0, 1u);
1472
+ int misses = 0;
1473
+ for (int64_t seconds = 0; seconds < 99; ++seconds) {
1474
+ uint32_t tick_vals[] = {0, +999, +999999, +999999999, kTicksPerSecond - 1,
1475
+ 0, 1000, 1000000, 1000000000, kTicksPerSecond,
1476
+ 1, 1001, 1000001, 1000000001, kTicksPerSecond + 1,
1477
+ 2, 1002, 1000002, 1000000002, kTicksPerSecond + 2,
1478
+ 3, 1003, 1000003, 1000000003, kTicksPerSecond + 3,
1479
+ 4, 1004, 1000004, 1000000004, kTicksPerSecond + 4,
1480
+ 5, 6, 7, 8, 9};
1481
+ for (uint32_t ticks : tick_vals) {
1482
+ absl::Duration s_plus_t = absl::Seconds(seconds) + ticks * duration_tick;
1483
+ for (absl::Duration d : {s_plus_t, -s_plus_t}) {
1484
+ absl::Duration after_d = d + duration_tick;
1485
+ EXPECT_NE(d, after_d);
1486
+ EXPECT_EQ(after_d - d, duration_tick);
1487
+
1488
+ double low_edge = ToDoubleSeconds(d);
1489
+ EXPECT_EQ(d, absl::Seconds(low_edge));
1490
+
1491
+ double high_edge = ToDoubleSeconds(after_d);
1492
+ EXPECT_EQ(after_d, absl::Seconds(high_edge));
1493
+
1494
+ for (;;) {
1495
+ double midpoint = low_edge + (high_edge - low_edge) / 2;
1496
+ if (midpoint == low_edge || midpoint == high_edge) break;
1497
+ absl::Duration mid_duration = absl::Seconds(midpoint);
1498
+ if (mid_duration == d) {
1499
+ low_edge = midpoint;
1500
+ } else {
1501
+ EXPECT_EQ(mid_duration, after_d);
1502
+ high_edge = midpoint;
1503
+ }
1504
+ }
1505
+ // Now low_edge is the highest double that converts to Duration d,
1506
+ // and high_edge is the lowest double that converts to Duration after_d.
1507
+ VerifyApproxSameAsMul(low_edge, &misses);
1508
+ VerifyApproxSameAsMul(high_edge, &misses);
1509
+ }
1510
+ }
1511
+ }
1512
+ }
1513
+
1514
+ TEST(Duration, ToDoubleSecondsCheckRandom) {
1515
+ absl::InsecureBitGen gen;
1516
+ // We want doubles distributed from 1/8ns up to 2^63, where
1517
+ // as many values are tested from 1ns to 2ns as from 1sec to 2sec,
1518
+ // so even distribute along a log-scale of those values, and
1519
+ // exponentiate before using them. (9.223377e+18 is just slightly
1520
+ // out of bounds for absl::Duration.)
1521
+ std::uniform_real_distribution<double> uniform(std::log(0.125e-9),
1522
+ std::log(9.223377e+18));
1523
+ int misses = 0;
1524
+ for (int i = 0; i < 1000000; ++i) {
1525
+ double d = std::exp(uniform(gen));
1526
+ VerifyApproxSameAsMul(d, &misses);
1527
+ VerifyApproxSameAsMul(-d, &misses);
1528
+ }
1529
+ }
1530
+
1531
+ TEST(Duration, ConversionSaturation) {
1532
+ absl::Duration d;
1533
+
1534
+ const auto max_timeval_sec =
1535
+ std::numeric_limits<decltype(timeval::tv_sec)>::max();
1536
+ const auto min_timeval_sec =
1537
+ std::numeric_limits<decltype(timeval::tv_sec)>::min();
1538
+ timeval tv;
1539
+ tv.tv_sec = max_timeval_sec;
1540
+ tv.tv_usec = 999998;
1541
+ d = absl::DurationFromTimeval(tv);
1542
+ tv = ToTimeval(d);
1543
+ EXPECT_EQ(max_timeval_sec, tv.tv_sec);
1544
+ EXPECT_EQ(999998, tv.tv_usec);
1545
+ d += absl::Microseconds(1);
1546
+ tv = ToTimeval(d);
1547
+ EXPECT_EQ(max_timeval_sec, tv.tv_sec);
1548
+ EXPECT_EQ(999999, tv.tv_usec);
1549
+ d += absl::Microseconds(1); // no effect
1550
+ tv = ToTimeval(d);
1551
+ EXPECT_EQ(max_timeval_sec, tv.tv_sec);
1552
+ EXPECT_EQ(999999, tv.tv_usec);
1553
+
1554
+ tv.tv_sec = min_timeval_sec;
1555
+ tv.tv_usec = 1;
1556
+ d = absl::DurationFromTimeval(tv);
1557
+ tv = ToTimeval(d);
1558
+ EXPECT_EQ(min_timeval_sec, tv.tv_sec);
1559
+ EXPECT_EQ(1, tv.tv_usec);
1560
+ d -= absl::Microseconds(1);
1561
+ tv = ToTimeval(d);
1562
+ EXPECT_EQ(min_timeval_sec, tv.tv_sec);
1563
+ EXPECT_EQ(0, tv.tv_usec);
1564
+ d -= absl::Microseconds(1); // no effect
1565
+ tv = ToTimeval(d);
1566
+ EXPECT_EQ(min_timeval_sec, tv.tv_sec);
1567
+ EXPECT_EQ(0, tv.tv_usec);
1568
+
1569
+ const auto max_timespec_sec =
1570
+ std::numeric_limits<decltype(timespec::tv_sec)>::max();
1571
+ const auto min_timespec_sec =
1572
+ std::numeric_limits<decltype(timespec::tv_sec)>::min();
1573
+ timespec ts;
1574
+ ts.tv_sec = max_timespec_sec;
1575
+ ts.tv_nsec = 999999998;
1576
+ d = absl::DurationFromTimespec(ts);
1577
+ ts = absl::ToTimespec(d);
1578
+ EXPECT_EQ(max_timespec_sec, ts.tv_sec);
1579
+ EXPECT_EQ(999999998, ts.tv_nsec);
1580
+ d += absl::Nanoseconds(1);
1581
+ ts = absl::ToTimespec(d);
1582
+ EXPECT_EQ(max_timespec_sec, ts.tv_sec);
1583
+ EXPECT_EQ(999999999, ts.tv_nsec);
1584
+ d += absl::Nanoseconds(1); // no effect
1585
+ ts = absl::ToTimespec(d);
1586
+ EXPECT_EQ(max_timespec_sec, ts.tv_sec);
1587
+ EXPECT_EQ(999999999, ts.tv_nsec);
1588
+
1589
+ ts.tv_sec = min_timespec_sec;
1590
+ ts.tv_nsec = 1;
1591
+ d = absl::DurationFromTimespec(ts);
1592
+ ts = absl::ToTimespec(d);
1593
+ EXPECT_EQ(min_timespec_sec, ts.tv_sec);
1594
+ EXPECT_EQ(1, ts.tv_nsec);
1595
+ d -= absl::Nanoseconds(1);
1596
+ ts = absl::ToTimespec(d);
1597
+ EXPECT_EQ(min_timespec_sec, ts.tv_sec);
1598
+ EXPECT_EQ(0, ts.tv_nsec);
1599
+ d -= absl::Nanoseconds(1); // no effect
1600
+ ts = absl::ToTimespec(d);
1601
+ EXPECT_EQ(min_timespec_sec, ts.tv_sec);
1602
+ EXPECT_EQ(0, ts.tv_nsec);
1603
+ }
1604
+
1605
+ TEST(Duration, FormatDuration) {
1606
+ // Example from Go's docs.
1607
+ EXPECT_EQ("72h3m0.5s",
1608
+ absl::FormatDuration(absl::Hours(72) + absl::Minutes(3) +
1609
+ absl::Milliseconds(500)));
1610
+ // Go's largest time: 2540400h10m10.000000000s
1611
+ EXPECT_EQ("2540400h10m10s",
1612
+ absl::FormatDuration(absl::Hours(2540400) + absl::Minutes(10) +
1613
+ absl::Seconds(10)));
1614
+
1615
+ EXPECT_EQ("0", absl::FormatDuration(absl::ZeroDuration()));
1616
+ EXPECT_EQ("0", absl::FormatDuration(absl::Seconds(0)));
1617
+ EXPECT_EQ("0", absl::FormatDuration(absl::Nanoseconds(0)));
1618
+
1619
+ EXPECT_EQ("1ns", absl::FormatDuration(absl::Nanoseconds(1)));
1620
+ EXPECT_EQ("1us", absl::FormatDuration(absl::Microseconds(1)));
1621
+ EXPECT_EQ("1ms", absl::FormatDuration(absl::Milliseconds(1)));
1622
+ EXPECT_EQ("1s", absl::FormatDuration(absl::Seconds(1)));
1623
+ EXPECT_EQ("1m", absl::FormatDuration(absl::Minutes(1)));
1624
+ EXPECT_EQ("1h", absl::FormatDuration(absl::Hours(1)));
1625
+
1626
+ EXPECT_EQ("1h1m", absl::FormatDuration(absl::Hours(1) + absl::Minutes(1)));
1627
+ EXPECT_EQ("1h1s", absl::FormatDuration(absl::Hours(1) + absl::Seconds(1)));
1628
+ EXPECT_EQ("1m1s", absl::FormatDuration(absl::Minutes(1) + absl::Seconds(1)));
1629
+
1630
+ EXPECT_EQ("1h0.25s",
1631
+ absl::FormatDuration(absl::Hours(1) + absl::Milliseconds(250)));
1632
+ EXPECT_EQ("1m0.25s",
1633
+ absl::FormatDuration(absl::Minutes(1) + absl::Milliseconds(250)));
1634
+ EXPECT_EQ("1h1m0.25s",
1635
+ absl::FormatDuration(absl::Hours(1) + absl::Minutes(1) +
1636
+ absl::Milliseconds(250)));
1637
+ EXPECT_EQ("1h0.0005s",
1638
+ absl::FormatDuration(absl::Hours(1) + absl::Microseconds(500)));
1639
+ EXPECT_EQ("1h0.0000005s",
1640
+ absl::FormatDuration(absl::Hours(1) + absl::Nanoseconds(500)));
1641
+
1642
+ // Subsecond special case.
1643
+ EXPECT_EQ("1.5ns", absl::FormatDuration(absl::Nanoseconds(1) +
1644
+ absl::Nanoseconds(1) / 2));
1645
+ EXPECT_EQ("1.25ns", absl::FormatDuration(absl::Nanoseconds(1) +
1646
+ absl::Nanoseconds(1) / 4));
1647
+ EXPECT_EQ("1ns", absl::FormatDuration(absl::Nanoseconds(1) +
1648
+ absl::Nanoseconds(1) / 9));
1649
+ EXPECT_EQ("1.2us", absl::FormatDuration(absl::Microseconds(1) +
1650
+ absl::Nanoseconds(200)));
1651
+ EXPECT_EQ("1.2ms", absl::FormatDuration(absl::Milliseconds(1) +
1652
+ absl::Microseconds(200)));
1653
+ EXPECT_EQ("1.0002ms", absl::FormatDuration(absl::Milliseconds(1) +
1654
+ absl::Nanoseconds(200)));
1655
+ EXPECT_EQ("1.00001ms", absl::FormatDuration(absl::Milliseconds(1) +
1656
+ absl::Nanoseconds(10)));
1657
+ EXPECT_EQ("1.000001ms",
1658
+ absl::FormatDuration(absl::Milliseconds(1) + absl::Nanoseconds(1)));
1659
+
1660
+ // Negative durations.
1661
+ EXPECT_EQ("-1ns", absl::FormatDuration(absl::Nanoseconds(-1)));
1662
+ EXPECT_EQ("-1us", absl::FormatDuration(absl::Microseconds(-1)));
1663
+ EXPECT_EQ("-1ms", absl::FormatDuration(absl::Milliseconds(-1)));
1664
+ EXPECT_EQ("-1s", absl::FormatDuration(absl::Seconds(-1)));
1665
+ EXPECT_EQ("-1m", absl::FormatDuration(absl::Minutes(-1)));
1666
+ EXPECT_EQ("-1h", absl::FormatDuration(absl::Hours(-1)));
1667
+
1668
+ EXPECT_EQ("-1h1m",
1669
+ absl::FormatDuration(-(absl::Hours(1) + absl::Minutes(1))));
1670
+ EXPECT_EQ("-1h1s",
1671
+ absl::FormatDuration(-(absl::Hours(1) + absl::Seconds(1))));
1672
+ EXPECT_EQ("-1m1s",
1673
+ absl::FormatDuration(-(absl::Minutes(1) + absl::Seconds(1))));
1674
+
1675
+ EXPECT_EQ("-1ns", absl::FormatDuration(absl::Nanoseconds(-1)));
1676
+ EXPECT_EQ("-1.2us", absl::FormatDuration(
1677
+ -(absl::Microseconds(1) + absl::Nanoseconds(200))));
1678
+ EXPECT_EQ("-1.2ms", absl::FormatDuration(
1679
+ -(absl::Milliseconds(1) + absl::Microseconds(200))));
1680
+ EXPECT_EQ("-1.0002ms", absl::FormatDuration(-(absl::Milliseconds(1) +
1681
+ absl::Nanoseconds(200))));
1682
+ EXPECT_EQ("-1.00001ms", absl::FormatDuration(-(absl::Milliseconds(1) +
1683
+ absl::Nanoseconds(10))));
1684
+ EXPECT_EQ("-1.000001ms", absl::FormatDuration(-(absl::Milliseconds(1) +
1685
+ absl::Nanoseconds(1))));
1686
+
1687
+ //
1688
+ // Interesting corner cases.
1689
+ //
1690
+
1691
+ const absl::Duration qns = absl::Nanoseconds(1) / 4;
1692
+ const absl::Duration max_dur =
1693
+ absl::Seconds(kint64max) + (absl::Seconds(1) - qns);
1694
+ const absl::Duration min_dur = absl::Seconds(kint64min);
1695
+
1696
+ EXPECT_EQ("0.25ns", absl::FormatDuration(qns));
1697
+ EXPECT_EQ("-0.25ns", absl::FormatDuration(-qns));
1698
+ EXPECT_EQ("2562047788015215h30m7.99999999975s",
1699
+ absl::FormatDuration(max_dur));
1700
+ EXPECT_EQ("-2562047788015215h30m8s", absl::FormatDuration(min_dur));
1701
+
1702
+ // Tests printing full precision from units that print using FDivDuration
1703
+ EXPECT_EQ("55.00000000025s", absl::FormatDuration(absl::Seconds(55) + qns));
1704
+ EXPECT_EQ("55.00000025ms",
1705
+ absl::FormatDuration(absl::Milliseconds(55) + qns));
1706
+ EXPECT_EQ("55.00025us", absl::FormatDuration(absl::Microseconds(55) + qns));
1707
+ EXPECT_EQ("55.25ns", absl::FormatDuration(absl::Nanoseconds(55) + qns));
1708
+
1709
+ // Formatting infinity
1710
+ EXPECT_EQ("inf", absl::FormatDuration(absl::InfiniteDuration()));
1711
+ EXPECT_EQ("-inf", absl::FormatDuration(-absl::InfiniteDuration()));
1712
+
1713
+ // Formatting approximately +/- 100 billion years
1714
+ const absl::Duration huge_range = ApproxYears(100000000000);
1715
+ EXPECT_EQ("876000000000000h", absl::FormatDuration(huge_range));
1716
+ EXPECT_EQ("-876000000000000h", absl::FormatDuration(-huge_range));
1717
+
1718
+ EXPECT_EQ("876000000000000h0.999999999s",
1719
+ absl::FormatDuration(huge_range +
1720
+ (absl::Seconds(1) - absl::Nanoseconds(1))));
1721
+ EXPECT_EQ("876000000000000h0.9999999995s",
1722
+ absl::FormatDuration(
1723
+ huge_range + (absl::Seconds(1) - absl::Nanoseconds(1) / 2)));
1724
+ EXPECT_EQ("876000000000000h0.99999999975s",
1725
+ absl::FormatDuration(
1726
+ huge_range + (absl::Seconds(1) - absl::Nanoseconds(1) / 4)));
1727
+
1728
+ EXPECT_EQ("-876000000000000h0.999999999s",
1729
+ absl::FormatDuration(-huge_range -
1730
+ (absl::Seconds(1) - absl::Nanoseconds(1))));
1731
+ EXPECT_EQ("-876000000000000h0.9999999995s",
1732
+ absl::FormatDuration(
1733
+ -huge_range - (absl::Seconds(1) - absl::Nanoseconds(1) / 2)));
1734
+ EXPECT_EQ("-876000000000000h0.99999999975s",
1735
+ absl::FormatDuration(
1736
+ -huge_range - (absl::Seconds(1) - absl::Nanoseconds(1) / 4)));
1737
+ }
1738
+
1739
+ TEST(Duration, ParseDuration) {
1740
+ absl::Duration d;
1741
+
1742
+ // No specified unit. Should only work for zero and infinity.
1743
+ EXPECT_TRUE(absl::ParseDuration("0", &d));
1744
+ EXPECT_EQ(absl::ZeroDuration(), d);
1745
+ EXPECT_TRUE(absl::ParseDuration("+0", &d));
1746
+ EXPECT_EQ(absl::ZeroDuration(), d);
1747
+ EXPECT_TRUE(absl::ParseDuration("-0", &d));
1748
+ EXPECT_EQ(absl::ZeroDuration(), d);
1749
+
1750
+ EXPECT_TRUE(absl::ParseDuration("inf", &d));
1751
+ EXPECT_EQ(absl::InfiniteDuration(), d);
1752
+ EXPECT_TRUE(absl::ParseDuration("+inf", &d));
1753
+ EXPECT_EQ(absl::InfiniteDuration(), d);
1754
+ EXPECT_TRUE(absl::ParseDuration("-inf", &d));
1755
+ EXPECT_EQ(-absl::InfiniteDuration(), d);
1756
+ EXPECT_FALSE(absl::ParseDuration("infBlah", &d));
1757
+
1758
+ // Illegal input forms.
1759
+ EXPECT_FALSE(absl::ParseDuration("", &d));
1760
+ EXPECT_FALSE(absl::ParseDuration("0.0", &d));
1761
+ EXPECT_FALSE(absl::ParseDuration(".0", &d));
1762
+ EXPECT_FALSE(absl::ParseDuration(".", &d));
1763
+ EXPECT_FALSE(absl::ParseDuration("01", &d));
1764
+ EXPECT_FALSE(absl::ParseDuration("1", &d));
1765
+ EXPECT_FALSE(absl::ParseDuration("-1", &d));
1766
+ EXPECT_FALSE(absl::ParseDuration("2", &d));
1767
+ EXPECT_FALSE(absl::ParseDuration("2 s", &d));
1768
+ EXPECT_FALSE(absl::ParseDuration(".s", &d));
1769
+ EXPECT_FALSE(absl::ParseDuration("-.s", &d));
1770
+ EXPECT_FALSE(absl::ParseDuration("s", &d));
1771
+ EXPECT_FALSE(absl::ParseDuration(" 2s", &d));
1772
+ EXPECT_FALSE(absl::ParseDuration("2s ", &d));
1773
+ EXPECT_FALSE(absl::ParseDuration(" 2s ", &d));
1774
+ EXPECT_FALSE(absl::ParseDuration("2mt", &d));
1775
+ EXPECT_FALSE(absl::ParseDuration("1e3s", &d));
1776
+
1777
+ // One unit type.
1778
+ EXPECT_TRUE(absl::ParseDuration("1ns", &d));
1779
+ EXPECT_EQ(absl::Nanoseconds(1), d);
1780
+ EXPECT_TRUE(absl::ParseDuration("1us", &d));
1781
+ EXPECT_EQ(absl::Microseconds(1), d);
1782
+ EXPECT_TRUE(absl::ParseDuration("1ms", &d));
1783
+ EXPECT_EQ(absl::Milliseconds(1), d);
1784
+ EXPECT_TRUE(absl::ParseDuration("1s", &d));
1785
+ EXPECT_EQ(absl::Seconds(1), d);
1786
+ EXPECT_TRUE(absl::ParseDuration("2m", &d));
1787
+ EXPECT_EQ(absl::Minutes(2), d);
1788
+ EXPECT_TRUE(absl::ParseDuration("2h", &d));
1789
+ EXPECT_EQ(absl::Hours(2), d);
1790
+
1791
+ // Huge counts of a unit.
1792
+ EXPECT_TRUE(absl::ParseDuration("9223372036854775807us", &d));
1793
+ EXPECT_EQ(absl::Microseconds(9223372036854775807), d);
1794
+ EXPECT_TRUE(absl::ParseDuration("-9223372036854775807us", &d));
1795
+ EXPECT_EQ(absl::Microseconds(-9223372036854775807), d);
1796
+
1797
+ // Multiple units.
1798
+ EXPECT_TRUE(absl::ParseDuration("2h3m4s", &d));
1799
+ EXPECT_EQ(absl::Hours(2) + absl::Minutes(3) + absl::Seconds(4), d);
1800
+ EXPECT_TRUE(absl::ParseDuration("3m4s5us", &d));
1801
+ EXPECT_EQ(absl::Minutes(3) + absl::Seconds(4) + absl::Microseconds(5), d);
1802
+ EXPECT_TRUE(absl::ParseDuration("2h3m4s5ms6us7ns", &d));
1803
+ EXPECT_EQ(absl::Hours(2) + absl::Minutes(3) + absl::Seconds(4) +
1804
+ absl::Milliseconds(5) + absl::Microseconds(6) +
1805
+ absl::Nanoseconds(7),
1806
+ d);
1807
+
1808
+ // Multiple units out of order.
1809
+ EXPECT_TRUE(absl::ParseDuration("2us3m4s5h", &d));
1810
+ EXPECT_EQ(absl::Hours(5) + absl::Minutes(3) + absl::Seconds(4) +
1811
+ absl::Microseconds(2),
1812
+ d);
1813
+
1814
+ // Fractional values of units.
1815
+ EXPECT_TRUE(absl::ParseDuration("1.5ns", &d));
1816
+ EXPECT_EQ(1.5 * absl::Nanoseconds(1), d);
1817
+ EXPECT_TRUE(absl::ParseDuration("1.5us", &d));
1818
+ EXPECT_EQ(1.5 * absl::Microseconds(1), d);
1819
+ EXPECT_TRUE(absl::ParseDuration("1.5ms", &d));
1820
+ EXPECT_EQ(1.5 * absl::Milliseconds(1), d);
1821
+ EXPECT_TRUE(absl::ParseDuration("1.5s", &d));
1822
+ EXPECT_EQ(1.5 * absl::Seconds(1), d);
1823
+ EXPECT_TRUE(absl::ParseDuration("1.5m", &d));
1824
+ EXPECT_EQ(1.5 * absl::Minutes(1), d);
1825
+ EXPECT_TRUE(absl::ParseDuration("1.5h", &d));
1826
+ EXPECT_EQ(1.5 * absl::Hours(1), d);
1827
+
1828
+ // Huge fractional counts of a unit.
1829
+ EXPECT_TRUE(absl::ParseDuration("0.4294967295s", &d));
1830
+ EXPECT_EQ(absl::Nanoseconds(429496729) + absl::Nanoseconds(1) / 2, d);
1831
+ EXPECT_TRUE(absl::ParseDuration("0.429496729501234567890123456789s", &d));
1832
+ EXPECT_EQ(absl::Nanoseconds(429496729) + absl::Nanoseconds(1) / 2, d);
1833
+
1834
+ // Negative durations.
1835
+ EXPECT_TRUE(absl::ParseDuration("-1s", &d));
1836
+ EXPECT_EQ(absl::Seconds(-1), d);
1837
+ EXPECT_TRUE(absl::ParseDuration("-1m", &d));
1838
+ EXPECT_EQ(absl::Minutes(-1), d);
1839
+ EXPECT_TRUE(absl::ParseDuration("-1h", &d));
1840
+ EXPECT_EQ(absl::Hours(-1), d);
1841
+
1842
+ EXPECT_TRUE(absl::ParseDuration("-1h2s", &d));
1843
+ EXPECT_EQ(-(absl::Hours(1) + absl::Seconds(2)), d);
1844
+ EXPECT_FALSE(absl::ParseDuration("1h-2s", &d));
1845
+ EXPECT_FALSE(absl::ParseDuration("-1h-2s", &d));
1846
+ EXPECT_FALSE(absl::ParseDuration("-1h -2s", &d));
1847
+ }
1848
+
1849
+ TEST(Duration, FormatParseRoundTrip) {
1850
+ #define TEST_PARSE_ROUNDTRIP(d) \
1851
+ do { \
1852
+ std::string s = absl::FormatDuration(d); \
1853
+ absl::Duration dur; \
1854
+ EXPECT_TRUE(absl::ParseDuration(s, &dur)); \
1855
+ EXPECT_EQ(d, dur); \
1856
+ } while (0)
1857
+
1858
+ TEST_PARSE_ROUNDTRIP(absl::Nanoseconds(1));
1859
+ TEST_PARSE_ROUNDTRIP(absl::Microseconds(1));
1860
+ TEST_PARSE_ROUNDTRIP(absl::Milliseconds(1));
1861
+ TEST_PARSE_ROUNDTRIP(absl::Seconds(1));
1862
+ TEST_PARSE_ROUNDTRIP(absl::Minutes(1));
1863
+ TEST_PARSE_ROUNDTRIP(absl::Hours(1));
1864
+ TEST_PARSE_ROUNDTRIP(absl::Hours(1) + absl::Nanoseconds(2));
1865
+
1866
+ TEST_PARSE_ROUNDTRIP(absl::Nanoseconds(-1));
1867
+ TEST_PARSE_ROUNDTRIP(absl::Microseconds(-1));
1868
+ TEST_PARSE_ROUNDTRIP(absl::Milliseconds(-1));
1869
+ TEST_PARSE_ROUNDTRIP(absl::Seconds(-1));
1870
+ TEST_PARSE_ROUNDTRIP(absl::Minutes(-1));
1871
+ TEST_PARSE_ROUNDTRIP(absl::Hours(-1));
1872
+
1873
+ TEST_PARSE_ROUNDTRIP(absl::Hours(-1) + absl::Nanoseconds(2));
1874
+ TEST_PARSE_ROUNDTRIP(absl::Hours(1) + absl::Nanoseconds(-2));
1875
+ TEST_PARSE_ROUNDTRIP(absl::Hours(-1) + absl::Nanoseconds(-2));
1876
+
1877
+ TEST_PARSE_ROUNDTRIP(absl::Nanoseconds(1) +
1878
+ absl::Nanoseconds(1) / 4); // 1.25ns
1879
+
1880
+ const absl::Duration huge_range = ApproxYears(100000000000);
1881
+ TEST_PARSE_ROUNDTRIP(huge_range);
1882
+ TEST_PARSE_ROUNDTRIP(huge_range + (absl::Seconds(1) - absl::Nanoseconds(1)));
1883
+
1884
+ #undef TEST_PARSE_ROUNDTRIP
1885
+ }
1886
+
1887
+ TEST(Duration, AbslStringify) {
1888
+ // FormatDuration is already well tested, so just use one test case here to
1889
+ // verify that StrFormat("%v", d) works as expected.
1890
+ absl::Duration d = absl::Seconds(1);
1891
+ EXPECT_EQ(absl::StrFormat("%v", d), absl::FormatDuration(d));
1892
+ }
1893
+
1894
+ TEST(Duration, NoPadding) {
1895
+ // Should match the size of a struct with uint32_t alignment and no padding.
1896
+ using NoPadding = std::array<uint32_t, 3>;
1897
+ EXPECT_EQ(sizeof(NoPadding), sizeof(absl::Duration));
1898
+ EXPECT_EQ(alignof(NoPadding), alignof(absl::Duration));
1899
+ }
1900
+
1901
+ } // namespace