data-structure-typed 2.4.0 → 2.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (750) hide show
  1. package/CHANGELOG.md +1 -1
  2. package/README.md +2 -3
  3. package/README_CN.md +0 -1
  4. package/dist/cjs/index.cjs +85 -30
  5. package/dist/cjs-legacy/index.cjs +85 -30
  6. package/dist/esm/index.mjs +85 -30
  7. package/dist/esm-legacy/index.mjs +85 -30
  8. package/dist/types/data-structures/binary-tree/tree-map.d.ts +17 -6
  9. package/dist/types/data-structures/binary-tree/tree-multi-map.d.ts +13 -5
  10. package/dist/types/data-structures/binary-tree/tree-multi-set.d.ts +12 -5
  11. package/dist/types/data-structures/binary-tree/tree-set.d.ts +15 -4
  12. package/dist/types/types/data-structures/binary-tree/tree-map.d.ts +6 -1
  13. package/dist/types/types/data-structures/binary-tree/tree-multi-set.d.ts +6 -1
  14. package/dist/types/types/data-structures/binary-tree/tree-set.d.ts +6 -1
  15. package/dist/umd/data-structure-typed.js +85 -29
  16. package/dist/umd/data-structure-typed.min.js +4 -4
  17. package/package.json +11 -5
  18. package/src/data-structures/binary-tree/tree-map.ts +35 -13
  19. package/src/data-structures/binary-tree/tree-multi-map.ts +41 -20
  20. package/src/data-structures/binary-tree/tree-multi-set.ts +17 -6
  21. package/src/data-structures/binary-tree/tree-set.ts +19 -6
  22. package/src/data-structures/trie/trie.ts +6 -8
  23. package/src/types/data-structures/binary-tree/tree-map.ts +7 -1
  24. package/src/types/data-structures/binary-tree/tree-multi-set.ts +7 -1
  25. package/src/types/data-structures/binary-tree/tree-set.ts +7 -1
  26. package/CMakeLists.txt +0 -52
  27. package/benchmark/report.html +0 -143
  28. package/benchmark/report.json +0 -1972
  29. package/build/CMakeCache.txt +0 -603
  30. package/build/CMakeFiles/4.0.3/CMakeCXXCompiler.cmake +0 -104
  31. package/build/CMakeFiles/4.0.3/CMakeDetermineCompilerABI_CXX.bin +0 -0
  32. package/build/CMakeFiles/4.0.3/CMakeSystem.cmake +0 -15
  33. package/build/CMakeFiles/4.0.3/CompilerIdCXX/CMakeCXXCompilerId.cpp +0 -920
  34. package/build/CMakeFiles/4.0.3/CompilerIdCXX/a.out +0 -0
  35. package/build/CMakeFiles/4.0.3/CompilerIdCXX/apple-sdk.cpp +0 -1
  36. package/build/CMakeFiles/CMakeConfigureLog.yaml +0 -2146
  37. package/build/CMakeFiles/CMakeDirectoryInformation.cmake +0 -16
  38. package/build/CMakeFiles/InstallScripts.json +0 -9
  39. package/build/CMakeFiles/Makefile.cmake +0 -100
  40. package/build/CMakeFiles/Makefile2 +0 -720
  41. package/build/CMakeFiles/TargetDirectories.txt +0 -23
  42. package/build/CMakeFiles/avl-rb-range-search-benchmark.dir/DependInfo.cmake +0 -23
  43. package/build/CMakeFiles/avl-rb-range-search-benchmark.dir/build.make +0 -114
  44. package/build/CMakeFiles/avl-rb-range-search-benchmark.dir/cmake_clean.cmake +0 -11
  45. package/build/CMakeFiles/avl-rb-range-search-benchmark.dir/compiler_depend.internal +0 -839
  46. package/build/CMakeFiles/avl-rb-range-search-benchmark.dir/compiler_depend.make +0 -2506
  47. package/build/CMakeFiles/avl-rb-range-search-benchmark.dir/compiler_depend.ts +0 -2
  48. package/build/CMakeFiles/avl-rb-range-search-benchmark.dir/depend.make +0 -2
  49. package/build/CMakeFiles/avl-rb-range-search-benchmark.dir/flags.make +0 -10
  50. package/build/CMakeFiles/avl-rb-range-search-benchmark.dir/link.txt +0 -1
  51. package/build/CMakeFiles/avl-rb-range-search-benchmark.dir/progress.make +0 -3
  52. package/build/CMakeFiles/avl-rb-range-search-benchmark.dir/test/performance/data-structures/binary-tree/avl-rb-range-search.test.cpp.o +0 -0
  53. package/build/CMakeFiles/avl-rb-range-search-benchmark.dir/test/performance/data-structures/binary-tree/avl-rb-range-search.test.cpp.o.d +0 -835
  54. package/build/CMakeFiles/avl-tree-benchmark.dir/DependInfo.cmake +0 -23
  55. package/build/CMakeFiles/avl-tree-benchmark.dir/build.make +0 -114
  56. package/build/CMakeFiles/avl-tree-benchmark.dir/cmake_clean.cmake +0 -11
  57. package/build/CMakeFiles/avl-tree-benchmark.dir/compiler_depend.internal +0 -839
  58. package/build/CMakeFiles/avl-tree-benchmark.dir/compiler_depend.make +0 -2506
  59. package/build/CMakeFiles/avl-tree-benchmark.dir/compiler_depend.ts +0 -2
  60. package/build/CMakeFiles/avl-tree-benchmark.dir/depend.make +0 -2
  61. package/build/CMakeFiles/avl-tree-benchmark.dir/flags.make +0 -10
  62. package/build/CMakeFiles/avl-tree-benchmark.dir/link.txt +0 -1
  63. package/build/CMakeFiles/avl-tree-benchmark.dir/progress.make +0 -3
  64. package/build/CMakeFiles/avl-tree-benchmark.dir/test/performance/data-structures/binary-tree/avl-tree.test.cpp.o +0 -0
  65. package/build/CMakeFiles/avl-tree-benchmark.dir/test/performance/data-structures/binary-tree/avl-tree.test.cpp.o.d +0 -835
  66. package/build/CMakeFiles/cmake.check_cache +0 -1
  67. package/build/CMakeFiles/deque-benchmark.dir/DependInfo.cmake +0 -23
  68. package/build/CMakeFiles/deque-benchmark.dir/build.make +0 -114
  69. package/build/CMakeFiles/deque-benchmark.dir/cmake_clean.cmake +0 -11
  70. package/build/CMakeFiles/deque-benchmark.dir/compiler_depend.internal +0 -791
  71. package/build/CMakeFiles/deque-benchmark.dir/compiler_depend.make +0 -2362
  72. package/build/CMakeFiles/deque-benchmark.dir/compiler_depend.ts +0 -2
  73. package/build/CMakeFiles/deque-benchmark.dir/depend.make +0 -2
  74. package/build/CMakeFiles/deque-benchmark.dir/flags.make +0 -10
  75. package/build/CMakeFiles/deque-benchmark.dir/link.txt +0 -1
  76. package/build/CMakeFiles/deque-benchmark.dir/progress.make +0 -3
  77. package/build/CMakeFiles/deque-benchmark.dir/test/performance/data-structures/queue/deque.test.cpp.o +0 -0
  78. package/build/CMakeFiles/deque-benchmark.dir/test/performance/data-structures/queue/deque.test.cpp.o.d +0 -787
  79. package/build/CMakeFiles/doubly-linked-list-benchmark.dir/DependInfo.cmake +0 -23
  80. package/build/CMakeFiles/doubly-linked-list-benchmark.dir/build.make +0 -114
  81. package/build/CMakeFiles/doubly-linked-list-benchmark.dir/cmake_clean.cmake +0 -11
  82. package/build/CMakeFiles/doubly-linked-list-benchmark.dir/compiler_depend.internal +0 -790
  83. package/build/CMakeFiles/doubly-linked-list-benchmark.dir/compiler_depend.make +0 -2359
  84. package/build/CMakeFiles/doubly-linked-list-benchmark.dir/compiler_depend.ts +0 -2
  85. package/build/CMakeFiles/doubly-linked-list-benchmark.dir/depend.make +0 -2
  86. package/build/CMakeFiles/doubly-linked-list-benchmark.dir/flags.make +0 -10
  87. package/build/CMakeFiles/doubly-linked-list-benchmark.dir/link.txt +0 -1
  88. package/build/CMakeFiles/doubly-linked-list-benchmark.dir/progress.make +0 -3
  89. package/build/CMakeFiles/doubly-linked-list-benchmark.dir/test/performance/data-structures/linked-list/doubly-linked-list.test.cpp.o +0 -0
  90. package/build/CMakeFiles/doubly-linked-list-benchmark.dir/test/performance/data-structures/linked-list/doubly-linked-list.test.cpp.o.d +0 -786
  91. package/build/CMakeFiles/hash-map-benchmark.dir/DependInfo.cmake +0 -23
  92. package/build/CMakeFiles/hash-map-benchmark.dir/build.make +0 -114
  93. package/build/CMakeFiles/hash-map-benchmark.dir/cmake_clean.cmake +0 -11
  94. package/build/CMakeFiles/hash-map-benchmark.dir/compiler_depend.internal +0 -790
  95. package/build/CMakeFiles/hash-map-benchmark.dir/compiler_depend.make +0 -2359
  96. package/build/CMakeFiles/hash-map-benchmark.dir/compiler_depend.ts +0 -2
  97. package/build/CMakeFiles/hash-map-benchmark.dir/depend.make +0 -2
  98. package/build/CMakeFiles/hash-map-benchmark.dir/flags.make +0 -10
  99. package/build/CMakeFiles/hash-map-benchmark.dir/link.txt +0 -1
  100. package/build/CMakeFiles/hash-map-benchmark.dir/progress.make +0 -3
  101. package/build/CMakeFiles/hash-map-benchmark.dir/test/performance/data-structures/hash/hash-map.test.cpp.o +0 -0
  102. package/build/CMakeFiles/hash-map-benchmark.dir/test/performance/data-structures/hash/hash-map.test.cpp.o.d +0 -786
  103. package/build/CMakeFiles/heap-benchmark.dir/DependInfo.cmake +0 -23
  104. package/build/CMakeFiles/heap-benchmark.dir/build.make +0 -114
  105. package/build/CMakeFiles/heap-benchmark.dir/cmake_clean.cmake +0 -11
  106. package/build/CMakeFiles/heap-benchmark.dir/compiler_depend.internal +0 -843
  107. package/build/CMakeFiles/heap-benchmark.dir/compiler_depend.make +0 -2518
  108. package/build/CMakeFiles/heap-benchmark.dir/compiler_depend.ts +0 -2
  109. package/build/CMakeFiles/heap-benchmark.dir/depend.make +0 -2
  110. package/build/CMakeFiles/heap-benchmark.dir/flags.make +0 -10
  111. package/build/CMakeFiles/heap-benchmark.dir/link.txt +0 -1
  112. package/build/CMakeFiles/heap-benchmark.dir/progress.make +0 -3
  113. package/build/CMakeFiles/heap-benchmark.dir/test/performance/data-structures/heap/heap.test.cpp.o +0 -0
  114. package/build/CMakeFiles/heap-benchmark.dir/test/performance/data-structures/heap/heap.test.cpp.o.d +0 -839
  115. package/build/CMakeFiles/priority-queue-benchmark.dir/DependInfo.cmake +0 -23
  116. package/build/CMakeFiles/priority-queue-benchmark.dir/build.make +0 -114
  117. package/build/CMakeFiles/priority-queue-benchmark.dir/cmake_clean.cmake +0 -11
  118. package/build/CMakeFiles/priority-queue-benchmark.dir/compiler_depend.internal +0 -793
  119. package/build/CMakeFiles/priority-queue-benchmark.dir/compiler_depend.make +0 -2368
  120. package/build/CMakeFiles/priority-queue-benchmark.dir/compiler_depend.ts +0 -2
  121. package/build/CMakeFiles/priority-queue-benchmark.dir/depend.make +0 -2
  122. package/build/CMakeFiles/priority-queue-benchmark.dir/flags.make +0 -10
  123. package/build/CMakeFiles/priority-queue-benchmark.dir/link.txt +0 -1
  124. package/build/CMakeFiles/priority-queue-benchmark.dir/progress.make +0 -3
  125. package/build/CMakeFiles/priority-queue-benchmark.dir/test/performance/data-structures/priority-queue/priority-queue.test.cpp.o +0 -0
  126. package/build/CMakeFiles/priority-queue-benchmark.dir/test/performance/data-structures/priority-queue/priority-queue.test.cpp.o.d +0 -789
  127. package/build/CMakeFiles/progress.marks +0 -1
  128. package/build/CMakeFiles/queue-benchmark.dir/DependInfo.cmake +0 -23
  129. package/build/CMakeFiles/queue-benchmark.dir/build.make +0 -114
  130. package/build/CMakeFiles/queue-benchmark.dir/cmake_clean.cmake +0 -11
  131. package/build/CMakeFiles/queue-benchmark.dir/compiler_depend.internal +0 -793
  132. package/build/CMakeFiles/queue-benchmark.dir/compiler_depend.make +0 -2368
  133. package/build/CMakeFiles/queue-benchmark.dir/compiler_depend.ts +0 -2
  134. package/build/CMakeFiles/queue-benchmark.dir/depend.make +0 -2
  135. package/build/CMakeFiles/queue-benchmark.dir/flags.make +0 -10
  136. package/build/CMakeFiles/queue-benchmark.dir/link.txt +0 -1
  137. package/build/CMakeFiles/queue-benchmark.dir/progress.make +0 -3
  138. package/build/CMakeFiles/queue-benchmark.dir/test/performance/data-structures/queue/queue.test.cpp.o +0 -0
  139. package/build/CMakeFiles/queue-benchmark.dir/test/performance/data-structures/queue/queue.test.cpp.o.d +0 -789
  140. package/build/CMakeFiles/red-black-tree-benchmark.dir/DependInfo.cmake +0 -23
  141. package/build/CMakeFiles/red-black-tree-benchmark.dir/build.make +0 -114
  142. package/build/CMakeFiles/red-black-tree-benchmark.dir/cmake_clean.cmake +0 -11
  143. package/build/CMakeFiles/red-black-tree-benchmark.dir/compiler_depend.internal +0 -839
  144. package/build/CMakeFiles/red-black-tree-benchmark.dir/compiler_depend.make +0 -2506
  145. package/build/CMakeFiles/red-black-tree-benchmark.dir/compiler_depend.ts +0 -2
  146. package/build/CMakeFiles/red-black-tree-benchmark.dir/depend.make +0 -2
  147. package/build/CMakeFiles/red-black-tree-benchmark.dir/flags.make +0 -10
  148. package/build/CMakeFiles/red-black-tree-benchmark.dir/link.txt +0 -1
  149. package/build/CMakeFiles/red-black-tree-benchmark.dir/progress.make +0 -3
  150. package/build/CMakeFiles/red-black-tree-benchmark.dir/test/performance/data-structures/binary-tree/red-black-tree.test.cpp.o +0 -0
  151. package/build/CMakeFiles/red-black-tree-benchmark.dir/test/performance/data-structures/binary-tree/red-black-tree.test.cpp.o.d +0 -835
  152. package/build/CMakeFiles/singly-linked-list-benchmark.dir/DependInfo.cmake +0 -23
  153. package/build/CMakeFiles/singly-linked-list-benchmark.dir/build.make +0 -114
  154. package/build/CMakeFiles/singly-linked-list-benchmark.dir/cmake_clean.cmake +0 -11
  155. package/build/CMakeFiles/singly-linked-list-benchmark.dir/compiler_depend.internal +0 -790
  156. package/build/CMakeFiles/singly-linked-list-benchmark.dir/compiler_depend.make +0 -2359
  157. package/build/CMakeFiles/singly-linked-list-benchmark.dir/compiler_depend.ts +0 -2
  158. package/build/CMakeFiles/singly-linked-list-benchmark.dir/depend.make +0 -2
  159. package/build/CMakeFiles/singly-linked-list-benchmark.dir/flags.make +0 -10
  160. package/build/CMakeFiles/singly-linked-list-benchmark.dir/link.txt +0 -1
  161. package/build/CMakeFiles/singly-linked-list-benchmark.dir/progress.make +0 -3
  162. package/build/CMakeFiles/singly-linked-list-benchmark.dir/test/performance/data-structures/linked-list/singly-linked-list.test.cpp.o +0 -0
  163. package/build/CMakeFiles/singly-linked-list-benchmark.dir/test/performance/data-structures/linked-list/singly-linked-list.test.cpp.o.d +0 -786
  164. package/build/CMakeFiles/stack-benchmark.dir/DependInfo.cmake +0 -23
  165. package/build/CMakeFiles/stack-benchmark.dir/build.make +0 -114
  166. package/build/CMakeFiles/stack-benchmark.dir/cmake_clean.cmake +0 -11
  167. package/build/CMakeFiles/stack-benchmark.dir/compiler_depend.internal +0 -793
  168. package/build/CMakeFiles/stack-benchmark.dir/compiler_depend.make +0 -2368
  169. package/build/CMakeFiles/stack-benchmark.dir/compiler_depend.ts +0 -2
  170. package/build/CMakeFiles/stack-benchmark.dir/depend.make +0 -2
  171. package/build/CMakeFiles/stack-benchmark.dir/flags.make +0 -10
  172. package/build/CMakeFiles/stack-benchmark.dir/link.txt +0 -1
  173. package/build/CMakeFiles/stack-benchmark.dir/progress.make +0 -3
  174. package/build/CMakeFiles/stack-benchmark.dir/test/performance/data-structures/stack/stack.test.cpp.o +0 -0
  175. package/build/CMakeFiles/stack-benchmark.dir/test/performance/data-structures/stack/stack.test.cpp.o.d +0 -789
  176. package/build/CMakeFiles/tree-map-benchmark.dir/DependInfo.cmake +0 -23
  177. package/build/CMakeFiles/tree-map-benchmark.dir/build.make +0 -114
  178. package/build/CMakeFiles/tree-map-benchmark.dir/cmake_clean.cmake +0 -11
  179. package/build/CMakeFiles/tree-map-benchmark.dir/compiler_depend.internal +0 -839
  180. package/build/CMakeFiles/tree-map-benchmark.dir/compiler_depend.make +0 -2506
  181. package/build/CMakeFiles/tree-map-benchmark.dir/compiler_depend.ts +0 -2
  182. package/build/CMakeFiles/tree-map-benchmark.dir/depend.make +0 -2
  183. package/build/CMakeFiles/tree-map-benchmark.dir/flags.make +0 -10
  184. package/build/CMakeFiles/tree-map-benchmark.dir/link.txt +0 -1
  185. package/build/CMakeFiles/tree-map-benchmark.dir/progress.make +0 -3
  186. package/build/CMakeFiles/tree-map-benchmark.dir/test/performance/data-structures/binary-tree/tree-map.test.cpp.o +0 -0
  187. package/build/CMakeFiles/tree-map-benchmark.dir/test/performance/data-structures/binary-tree/tree-map.test.cpp.o.d +0 -835
  188. package/build/CMakeFiles/tree-multi-map-benchmark.dir/DependInfo.cmake +0 -23
  189. package/build/CMakeFiles/tree-multi-map-benchmark.dir/build.make +0 -114
  190. package/build/CMakeFiles/tree-multi-map-benchmark.dir/cmake_clean.cmake +0 -11
  191. package/build/CMakeFiles/tree-multi-map-benchmark.dir/compiler_depend.internal +0 -839
  192. package/build/CMakeFiles/tree-multi-map-benchmark.dir/compiler_depend.make +0 -2506
  193. package/build/CMakeFiles/tree-multi-map-benchmark.dir/compiler_depend.ts +0 -2
  194. package/build/CMakeFiles/tree-multi-map-benchmark.dir/depend.make +0 -2
  195. package/build/CMakeFiles/tree-multi-map-benchmark.dir/flags.make +0 -10
  196. package/build/CMakeFiles/tree-multi-map-benchmark.dir/link.txt +0 -1
  197. package/build/CMakeFiles/tree-multi-map-benchmark.dir/progress.make +0 -3
  198. package/build/CMakeFiles/tree-multi-map-benchmark.dir/test/performance/data-structures/binary-tree/tree-multi-map.test.cpp.o +0 -0
  199. package/build/CMakeFiles/tree-multi-map-benchmark.dir/test/performance/data-structures/binary-tree/tree-multi-map.test.cpp.o.d +0 -835
  200. package/build/CMakeFiles/tree-multi-set-benchmark.dir/DependInfo.cmake +0 -23
  201. package/build/CMakeFiles/tree-multi-set-benchmark.dir/build.make +0 -114
  202. package/build/CMakeFiles/tree-multi-set-benchmark.dir/cmake_clean.cmake +0 -11
  203. package/build/CMakeFiles/tree-multi-set-benchmark.dir/compiler_depend.internal +0 -839
  204. package/build/CMakeFiles/tree-multi-set-benchmark.dir/compiler_depend.make +0 -2506
  205. package/build/CMakeFiles/tree-multi-set-benchmark.dir/compiler_depend.ts +0 -2
  206. package/build/CMakeFiles/tree-multi-set-benchmark.dir/depend.make +0 -2
  207. package/build/CMakeFiles/tree-multi-set-benchmark.dir/flags.make +0 -10
  208. package/build/CMakeFiles/tree-multi-set-benchmark.dir/link.txt +0 -1
  209. package/build/CMakeFiles/tree-multi-set-benchmark.dir/progress.make +0 -3
  210. package/build/CMakeFiles/tree-multi-set-benchmark.dir/test/performance/data-structures/binary-tree/tree-multi-set.test.cpp.o +0 -0
  211. package/build/CMakeFiles/tree-multi-set-benchmark.dir/test/performance/data-structures/binary-tree/tree-multi-set.test.cpp.o.d +0 -835
  212. package/build/CMakeFiles/tree-set-benchmark.dir/DependInfo.cmake +0 -23
  213. package/build/CMakeFiles/tree-set-benchmark.dir/build.make +0 -114
  214. package/build/CMakeFiles/tree-set-benchmark.dir/cmake_clean.cmake +0 -11
  215. package/build/CMakeFiles/tree-set-benchmark.dir/compiler_depend.internal +0 -839
  216. package/build/CMakeFiles/tree-set-benchmark.dir/compiler_depend.make +0 -2506
  217. package/build/CMakeFiles/tree-set-benchmark.dir/compiler_depend.ts +0 -2
  218. package/build/CMakeFiles/tree-set-benchmark.dir/depend.make +0 -2
  219. package/build/CMakeFiles/tree-set-benchmark.dir/flags.make +0 -10
  220. package/build/CMakeFiles/tree-set-benchmark.dir/link.txt +0 -1
  221. package/build/CMakeFiles/tree-set-benchmark.dir/progress.make +0 -3
  222. package/build/CMakeFiles/tree-set-benchmark.dir/test/performance/data-structures/binary-tree/tree-set.test.cpp.o +0 -0
  223. package/build/CMakeFiles/tree-set-benchmark.dir/test/performance/data-structures/binary-tree/tree-set.test.cpp.o.d +0 -835
  224. package/build/Makefile +0 -783
  225. package/build/_deps/benchmark-build/CMakeFiles/CMakeDirectoryInformation.cmake +0 -16
  226. package/build/_deps/benchmark-build/CMakeFiles/progress.marks +0 -1
  227. package/build/_deps/benchmark-build/Makefile +0 -140
  228. package/build/_deps/benchmark-build/benchmark.pc +0 -12
  229. package/build/_deps/benchmark-build/benchmarkConfig.cmake +0 -14
  230. package/build/_deps/benchmark-build/benchmarkConfigVersion.cmake +0 -65
  231. package/build/_deps/benchmark-build/benchmarkTargets.cmake +0 -84
  232. package/build/_deps/benchmark-build/cmake_install.cmake +0 -50
  233. package/build/_deps/benchmark-build/src/CMakeFiles/CMakeDirectoryInformation.cmake +0 -16
  234. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/DependInfo.cmake +0 -41
  235. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/benchmark.cc.o +0 -0
  236. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/benchmark.cc.o.d +0 -875
  237. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/benchmark_api_internal.cc.o +0 -0
  238. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/benchmark_api_internal.cc.o.d +0 -802
  239. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/benchmark_name.cc.o +0 -0
  240. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/benchmark_name.cc.o.d +0 -772
  241. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/benchmark_register.cc.o +0 -0
  242. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/benchmark_register.cc.o.d +0 -841
  243. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/benchmark_runner.cc.o +0 -0
  244. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/benchmark_runner.cc.o.d +0 -833
  245. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/build.make +0 -402
  246. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/check.cc.o +0 -0
  247. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/check.cc.o.d +0 -784
  248. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/cmake_clean.cmake +0 -47
  249. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/cmake_clean_target.cmake +0 -3
  250. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/colorprint.cc.o +0 -0
  251. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/colorprint.cc.o.d +0 -791
  252. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/commandlineflags.cc.o +0 -0
  253. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/commandlineflags.cc.o.d +0 -795
  254. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/compiler_depend.internal +0 -15519
  255. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/compiler_depend.make +0 -17500
  256. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/compiler_depend.ts +0 -2
  257. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/complexity.cc.o +0 -0
  258. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/complexity.cc.o.d +0 -793
  259. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/console_reporter.cc.o +0 -0
  260. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/console_reporter.cc.o.d +0 -802
  261. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/counter.cc.o +0 -0
  262. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/counter.cc.o.d +0 -773
  263. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/csv_reporter.cc.o +0 -0
  264. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/csv_reporter.cc.o.d +0 -799
  265. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/depend.make +0 -2
  266. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/flags.make +0 -10
  267. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/json_reporter.cc.o +0 -0
  268. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/json_reporter.cc.o.d +0 -800
  269. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/link.txt +0 -2
  270. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/perf_counters.cc.o +0 -0
  271. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/perf_counters.cc.o.d +0 -807
  272. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/progress.make +0 -21
  273. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/reporter.cc.o +0 -0
  274. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/reporter.cc.o.d +0 -798
  275. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/statistics.cc.o +0 -0
  276. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/statistics.cc.o.d +0 -800
  277. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/string_util.cc.o +0 -0
  278. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/string_util.cc.o.d +0 -795
  279. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/sysinfo.cc.o +0 -0
  280. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/sysinfo.cc.o.d +0 -933
  281. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/timers.cc.o +0 -0
  282. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/timers.cc.o.d +0 -904
  283. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark_main.dir/DependInfo.cmake +0 -23
  284. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark_main.dir/benchmark_main.cc.o +0 -0
  285. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark_main.dir/benchmark_main.cc.o.d +0 -772
  286. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark_main.dir/build.make +0 -114
  287. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark_main.dir/cmake_clean.cmake +0 -11
  288. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark_main.dir/cmake_clean_target.cmake +0 -3
  289. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark_main.dir/compiler_depend.internal +0 -776
  290. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark_main.dir/compiler_depend.make +0 -2317
  291. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark_main.dir/compiler_depend.ts +0 -2
  292. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark_main.dir/depend.make +0 -2
  293. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark_main.dir/flags.make +0 -10
  294. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark_main.dir/link.txt +0 -2
  295. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark_main.dir/progress.make +0 -3
  296. package/build/_deps/benchmark-build/src/CMakeFiles/progress.marks +0 -1
  297. package/build/_deps/benchmark-build/src/Makefile +0 -710
  298. package/build/_deps/benchmark-build/src/cmake_install.cmake +0 -45
  299. package/build/_deps/benchmark-build/src/libbenchmark.a +0 -0
  300. package/build/_deps/benchmark-build/src/libbenchmark_main.a +0 -0
  301. package/build/_deps/benchmark-src/.clang-format +0 -5
  302. package/build/_deps/benchmark-src/.clang-tidy +0 -7
  303. package/build/_deps/benchmark-src/.github/ISSUE_TEMPLATE/bug_report.md +0 -32
  304. package/build/_deps/benchmark-src/.github/ISSUE_TEMPLATE/feature_request.md +0 -20
  305. package/build/_deps/benchmark-src/.github/install_bazel.sh +0 -13
  306. package/build/_deps/benchmark-src/.github/libcxx-setup.sh +0 -26
  307. package/build/_deps/benchmark-src/.github/workflows/bazel.yml +0 -35
  308. package/build/_deps/benchmark-src/.github/workflows/build-and-test-min-cmake.yml +0 -46
  309. package/build/_deps/benchmark-src/.github/workflows/build-and-test-perfcounters.yml +0 -51
  310. package/build/_deps/benchmark-src/.github/workflows/build-and-test.yml +0 -114
  311. package/build/_deps/benchmark-src/.github/workflows/clang-format-lint.yml +0 -17
  312. package/build/_deps/benchmark-src/.github/workflows/clang-tidy.yml +0 -38
  313. package/build/_deps/benchmark-src/.github/workflows/doxygen.yml +0 -28
  314. package/build/_deps/benchmark-src/.github/workflows/pylint.yml +0 -28
  315. package/build/_deps/benchmark-src/.github/workflows/sanitizer.yml +0 -96
  316. package/build/_deps/benchmark-src/.github/workflows/test_bindings.yml +0 -29
  317. package/build/_deps/benchmark-src/.github/workflows/wheels.yml +0 -79
  318. package/build/_deps/benchmark-src/.travis.yml +0 -208
  319. package/build/_deps/benchmark-src/.ycm_extra_conf.py +0 -115
  320. package/build/_deps/benchmark-src/AUTHORS +0 -71
  321. package/build/_deps/benchmark-src/BUILD.bazel +0 -87
  322. package/build/_deps/benchmark-src/CMakeLists.txt +0 -340
  323. package/build/_deps/benchmark-src/CONTRIBUTING.md +0 -58
  324. package/build/_deps/benchmark-src/CONTRIBUTORS +0 -95
  325. package/build/_deps/benchmark-src/LICENSE +0 -202
  326. package/build/_deps/benchmark-src/MODULE.bazel +0 -24
  327. package/build/_deps/benchmark-src/README.md +0 -223
  328. package/build/_deps/benchmark-src/WORKSPACE +0 -22
  329. package/build/_deps/benchmark-src/WORKSPACE.bzlmod +0 -2
  330. package/build/_deps/benchmark-src/_config.yml +0 -2
  331. package/build/_deps/benchmark-src/appveyor.yml +0 -50
  332. package/build/_deps/benchmark-src/bazel/benchmark_deps.bzl +0 -65
  333. package/build/_deps/benchmark-src/bindings/python/BUILD +0 -3
  334. package/build/_deps/benchmark-src/bindings/python/build_defs.bzl +0 -25
  335. package/build/_deps/benchmark-src/bindings/python/google_benchmark/BUILD +0 -40
  336. package/build/_deps/benchmark-src/bindings/python/google_benchmark/__init__.py +0 -162
  337. package/build/_deps/benchmark-src/bindings/python/google_benchmark/benchmark.cc +0 -184
  338. package/build/_deps/benchmark-src/bindings/python/google_benchmark/example.py +0 -136
  339. package/build/_deps/benchmark-src/bindings/python/nanobind.BUILD +0 -17
  340. package/build/_deps/benchmark-src/bindings/python/python_headers.BUILD +0 -6
  341. package/build/_deps/benchmark-src/cmake/AddCXXCompilerFlag.cmake +0 -78
  342. package/build/_deps/benchmark-src/cmake/CXXFeatureCheck.cmake +0 -82
  343. package/build/_deps/benchmark-src/cmake/Config.cmake.in +0 -7
  344. package/build/_deps/benchmark-src/cmake/GetGitVersion.cmake +0 -58
  345. package/build/_deps/benchmark-src/cmake/GoogleTest.cmake +0 -58
  346. package/build/_deps/benchmark-src/cmake/GoogleTest.cmake.in +0 -59
  347. package/build/_deps/benchmark-src/cmake/benchmark.pc.in +0 -12
  348. package/build/_deps/benchmark-src/cmake/gnu_posix_regex.cpp +0 -12
  349. package/build/_deps/benchmark-src/cmake/llvm-toolchain.cmake +0 -8
  350. package/build/_deps/benchmark-src/cmake/posix_regex.cpp +0 -14
  351. package/build/_deps/benchmark-src/cmake/pthread_affinity.cpp +0 -16
  352. package/build/_deps/benchmark-src/cmake/split_list.cmake +0 -3
  353. package/build/_deps/benchmark-src/cmake/std_regex.cpp +0 -10
  354. package/build/_deps/benchmark-src/cmake/steady_clock.cpp +0 -7
  355. package/build/_deps/benchmark-src/cmake/thread_safety_attributes.cpp +0 -4
  356. package/build/_deps/benchmark-src/docs/AssemblyTests.md +0 -149
  357. package/build/_deps/benchmark-src/docs/_config.yml +0 -3
  358. package/build/_deps/benchmark-src/docs/assets/images/icon.png +0 -0
  359. package/build/_deps/benchmark-src/docs/assets/images/icon.xcf +0 -0
  360. package/build/_deps/benchmark-src/docs/assets/images/icon_black.png +0 -0
  361. package/build/_deps/benchmark-src/docs/assets/images/icon_black.xcf +0 -0
  362. package/build/_deps/benchmark-src/docs/dependencies.md +0 -13
  363. package/build/_deps/benchmark-src/docs/index.md +0 -12
  364. package/build/_deps/benchmark-src/docs/perf_counters.md +0 -35
  365. package/build/_deps/benchmark-src/docs/platform_specific_build_instructions.md +0 -48
  366. package/build/_deps/benchmark-src/docs/python_bindings.md +0 -34
  367. package/build/_deps/benchmark-src/docs/random_interleaving.md +0 -13
  368. package/build/_deps/benchmark-src/docs/reducing_variance.md +0 -100
  369. package/build/_deps/benchmark-src/docs/releasing.md +0 -41
  370. package/build/_deps/benchmark-src/docs/tools.md +0 -343
  371. package/build/_deps/benchmark-src/docs/user_guide.md +0 -1266
  372. package/build/_deps/benchmark-src/include/benchmark/benchmark.h +0 -1991
  373. package/build/_deps/benchmark-src/include/benchmark/export.h +0 -47
  374. package/build/_deps/benchmark-src/pyproject.toml +0 -50
  375. package/build/_deps/benchmark-src/setup.py +0 -113
  376. package/build/_deps/benchmark-src/src/CMakeLists.txt +0 -170
  377. package/build/_deps/benchmark-src/src/arraysize.h +0 -33
  378. package/build/_deps/benchmark-src/src/benchmark.cc +0 -779
  379. package/build/_deps/benchmark-src/src/benchmark_api_internal.cc +0 -118
  380. package/build/_deps/benchmark-src/src/benchmark_api_internal.h +0 -87
  381. package/build/_deps/benchmark-src/src/benchmark_main.cc +0 -18
  382. package/build/_deps/benchmark-src/src/benchmark_name.cc +0 -59
  383. package/build/_deps/benchmark-src/src/benchmark_register.cc +0 -520
  384. package/build/_deps/benchmark-src/src/benchmark_register.h +0 -109
  385. package/build/_deps/benchmark-src/src/benchmark_runner.cc +0 -497
  386. package/build/_deps/benchmark-src/src/benchmark_runner.h +0 -131
  387. package/build/_deps/benchmark-src/src/check.cc +0 -11
  388. package/build/_deps/benchmark-src/src/check.h +0 -106
  389. package/build/_deps/benchmark-src/src/colorprint.cc +0 -200
  390. package/build/_deps/benchmark-src/src/colorprint.h +0 -33
  391. package/build/_deps/benchmark-src/src/commandlineflags.cc +0 -298
  392. package/build/_deps/benchmark-src/src/commandlineflags.h +0 -133
  393. package/build/_deps/benchmark-src/src/complexity.cc +0 -244
  394. package/build/_deps/benchmark-src/src/complexity.h +0 -55
  395. package/build/_deps/benchmark-src/src/console_reporter.cc +0 -206
  396. package/build/_deps/benchmark-src/src/counter.cc +0 -80
  397. package/build/_deps/benchmark-src/src/counter.h +0 -32
  398. package/build/_deps/benchmark-src/src/csv_reporter.cc +0 -161
  399. package/build/_deps/benchmark-src/src/cycleclock.h +0 -230
  400. package/build/_deps/benchmark-src/src/internal_macros.h +0 -115
  401. package/build/_deps/benchmark-src/src/json_reporter.cc +0 -320
  402. package/build/_deps/benchmark-src/src/log.h +0 -88
  403. package/build/_deps/benchmark-src/src/mutex.h +0 -155
  404. package/build/_deps/benchmark-src/src/perf_counters.cc +0 -282
  405. package/build/_deps/benchmark-src/src/perf_counters.h +0 -200
  406. package/build/_deps/benchmark-src/src/re.h +0 -158
  407. package/build/_deps/benchmark-src/src/reporter.cc +0 -118
  408. package/build/_deps/benchmark-src/src/statistics.cc +0 -209
  409. package/build/_deps/benchmark-src/src/statistics.h +0 -44
  410. package/build/_deps/benchmark-src/src/string_util.cc +0 -254
  411. package/build/_deps/benchmark-src/src/string_util.h +0 -70
  412. package/build/_deps/benchmark-src/src/sysinfo.cc +0 -855
  413. package/build/_deps/benchmark-src/src/thread_manager.h +0 -63
  414. package/build/_deps/benchmark-src/src/thread_timer.h +0 -86
  415. package/build/_deps/benchmark-src/src/timers.cc +0 -272
  416. package/build/_deps/benchmark-src/src/timers.h +0 -48
  417. package/build/_deps/benchmark-src/test/AssemblyTests.cmake +0 -67
  418. package/build/_deps/benchmark-src/test/BUILD +0 -127
  419. package/build/_deps/benchmark-src/test/CMakeLists.txt +0 -309
  420. package/build/_deps/benchmark-src/test/args_product_test.cc +0 -77
  421. package/build/_deps/benchmark-src/test/basic_test.cc +0 -180
  422. package/build/_deps/benchmark-src/test/benchmark_gtest.cc +0 -169
  423. package/build/_deps/benchmark-src/test/benchmark_min_time_flag_iters_test.cc +0 -66
  424. package/build/_deps/benchmark-src/test/benchmark_min_time_flag_time_test.cc +0 -90
  425. package/build/_deps/benchmark-src/test/benchmark_name_gtest.cc +0 -82
  426. package/build/_deps/benchmark-src/test/benchmark_random_interleaving_gtest.cc +0 -126
  427. package/build/_deps/benchmark-src/test/benchmark_setup_teardown_test.cc +0 -157
  428. package/build/_deps/benchmark-src/test/benchmark_test.cc +0 -274
  429. package/build/_deps/benchmark-src/test/clobber_memory_assembly_test.cc +0 -64
  430. package/build/_deps/benchmark-src/test/commandlineflags_gtest.cc +0 -228
  431. package/build/_deps/benchmark-src/test/complexity_test.cc +0 -228
  432. package/build/_deps/benchmark-src/test/cxx03_test.cc +0 -62
  433. package/build/_deps/benchmark-src/test/diagnostics_test.cc +0 -91
  434. package/build/_deps/benchmark-src/test/display_aggregates_only_test.cc +0 -45
  435. package/build/_deps/benchmark-src/test/donotoptimize_assembly_test.cc +0 -201
  436. package/build/_deps/benchmark-src/test/donotoptimize_test.cc +0 -69
  437. package/build/_deps/benchmark-src/test/filter_test.cc +0 -117
  438. package/build/_deps/benchmark-src/test/fixture_test.cc +0 -51
  439. package/build/_deps/benchmark-src/test/internal_threading_test.cc +0 -185
  440. package/build/_deps/benchmark-src/test/link_main_test.cc +0 -9
  441. package/build/_deps/benchmark-src/test/map_test.cc +0 -59
  442. package/build/_deps/benchmark-src/test/memory_manager_test.cc +0 -47
  443. package/build/_deps/benchmark-src/test/min_time_parse_gtest.cc +0 -30
  444. package/build/_deps/benchmark-src/test/multiple_ranges_test.cc +0 -96
  445. package/build/_deps/benchmark-src/test/options_test.cc +0 -77
  446. package/build/_deps/benchmark-src/test/output_test.h +0 -211
  447. package/build/_deps/benchmark-src/test/output_test_helper.cc +0 -519
  448. package/build/_deps/benchmark-src/test/perf_counters_gtest.cc +0 -307
  449. package/build/_deps/benchmark-src/test/perf_counters_test.cc +0 -92
  450. package/build/_deps/benchmark-src/test/register_benchmark_test.cc +0 -196
  451. package/build/_deps/benchmark-src/test/repetitions_test.cc +0 -214
  452. package/build/_deps/benchmark-src/test/report_aggregates_only_test.cc +0 -41
  453. package/build/_deps/benchmark-src/test/reporter_output_test.cc +0 -1130
  454. package/build/_deps/benchmark-src/test/skip_with_error_test.cc +0 -199
  455. package/build/_deps/benchmark-src/test/spec_arg_test.cc +0 -105
  456. package/build/_deps/benchmark-src/test/spec_arg_verbosity_test.cc +0 -43
  457. package/build/_deps/benchmark-src/test/state_assembly_test.cc +0 -68
  458. package/build/_deps/benchmark-src/test/statistics_gtest.cc +0 -35
  459. package/build/_deps/benchmark-src/test/string_util_gtest.cc +0 -199
  460. package/build/_deps/benchmark-src/test/templated_fixture_test.cc +0 -28
  461. package/build/_deps/benchmark-src/test/time_unit_gtest.cc +0 -37
  462. package/build/_deps/benchmark-src/test/user_counters_tabular_test.cc +0 -558
  463. package/build/_deps/benchmark-src/test/user_counters_test.cc +0 -561
  464. package/build/_deps/benchmark-src/test/user_counters_thousands_test.cc +0 -186
  465. package/build/_deps/benchmark-src/tools/BUILD.bazel +0 -19
  466. package/build/_deps/benchmark-src/tools/compare.py +0 -432
  467. package/build/_deps/benchmark-src/tools/gbench/Inputs/test1_run1.json +0 -127
  468. package/build/_deps/benchmark-src/tools/gbench/Inputs/test1_run2.json +0 -127
  469. package/build/_deps/benchmark-src/tools/gbench/Inputs/test2_run.json +0 -81
  470. package/build/_deps/benchmark-src/tools/gbench/Inputs/test3_run0.json +0 -65
  471. package/build/_deps/benchmark-src/tools/gbench/Inputs/test3_run1.json +0 -65
  472. package/build/_deps/benchmark-src/tools/gbench/Inputs/test4_run.json +0 -96
  473. package/build/_deps/benchmark-src/tools/gbench/Inputs/test4_run0.json +0 -21
  474. package/build/_deps/benchmark-src/tools/gbench/Inputs/test4_run1.json +0 -21
  475. package/build/_deps/benchmark-src/tools/gbench/__init__.py +0 -8
  476. package/build/_deps/benchmark-src/tools/gbench/report.py +0 -1201
  477. package/build/_deps/benchmark-src/tools/gbench/util.py +0 -203
  478. package/build/_deps/benchmark-src/tools/libpfm.BUILD.bazel +0 -22
  479. package/build/_deps/benchmark-src/tools/requirements.txt +0 -2
  480. package/build/_deps/benchmark-src/tools/strip_asm.py +0 -151
  481. package/build/_deps/benchmark-subbuild/CMakeCache.txt +0 -133
  482. package/build/_deps/benchmark-subbuild/CMakeFiles/4.0.3/CMakeSystem.cmake +0 -15
  483. package/build/_deps/benchmark-subbuild/CMakeFiles/CMakeConfigureLog.yaml +0 -11
  484. package/build/_deps/benchmark-subbuild/CMakeFiles/CMakeDirectoryInformation.cmake +0 -16
  485. package/build/_deps/benchmark-subbuild/CMakeFiles/CMakeRuleHashes.txt +0 -11
  486. package/build/_deps/benchmark-subbuild/CMakeFiles/InstallScripts.json +0 -7
  487. package/build/_deps/benchmark-subbuild/CMakeFiles/Makefile.cmake +0 -52
  488. package/build/_deps/benchmark-subbuild/CMakeFiles/Makefile2 +0 -122
  489. package/build/_deps/benchmark-subbuild/CMakeFiles/TargetDirectories.txt +0 -3
  490. package/build/_deps/benchmark-subbuild/CMakeFiles/benchmark-populate-complete +0 -0
  491. package/build/_deps/benchmark-subbuild/CMakeFiles/benchmark-populate.dir/DependInfo.cmake +0 -22
  492. package/build/_deps/benchmark-subbuild/CMakeFiles/benchmark-populate.dir/Labels.json +0 -46
  493. package/build/_deps/benchmark-subbuild/CMakeFiles/benchmark-populate.dir/Labels.txt +0 -14
  494. package/build/_deps/benchmark-subbuild/CMakeFiles/benchmark-populate.dir/build.make +0 -162
  495. package/build/_deps/benchmark-subbuild/CMakeFiles/benchmark-populate.dir/cmake_clean.cmake +0 -17
  496. package/build/_deps/benchmark-subbuild/CMakeFiles/benchmark-populate.dir/compiler_depend.make +0 -2
  497. package/build/_deps/benchmark-subbuild/CMakeFiles/benchmark-populate.dir/compiler_depend.ts +0 -2
  498. package/build/_deps/benchmark-subbuild/CMakeFiles/benchmark-populate.dir/progress.make +0 -10
  499. package/build/_deps/benchmark-subbuild/CMakeFiles/cmake.check_cache +0 -1
  500. package/build/_deps/benchmark-subbuild/CMakeFiles/progress.marks +0 -1
  501. package/build/_deps/benchmark-subbuild/CMakeLists.txt +0 -42
  502. package/build/_deps/benchmark-subbuild/Makefile +0 -162
  503. package/build/_deps/benchmark-subbuild/benchmark-populate-prefix/src/benchmark-populate-stamp/benchmark-populate-build +0 -0
  504. package/build/_deps/benchmark-subbuild/benchmark-populate-prefix/src/benchmark-populate-stamp/benchmark-populate-configure +0 -0
  505. package/build/_deps/benchmark-subbuild/benchmark-populate-prefix/src/benchmark-populate-stamp/benchmark-populate-done +0 -0
  506. package/build/_deps/benchmark-subbuild/benchmark-populate-prefix/src/benchmark-populate-stamp/benchmark-populate-download +0 -0
  507. package/build/_deps/benchmark-subbuild/benchmark-populate-prefix/src/benchmark-populate-stamp/benchmark-populate-gitclone-lastrun.txt +0 -15
  508. package/build/_deps/benchmark-subbuild/benchmark-populate-prefix/src/benchmark-populate-stamp/benchmark-populate-gitinfo.txt +0 -15
  509. package/build/_deps/benchmark-subbuild/benchmark-populate-prefix/src/benchmark-populate-stamp/benchmark-populate-install +0 -0
  510. package/build/_deps/benchmark-subbuild/benchmark-populate-prefix/src/benchmark-populate-stamp/benchmark-populate-mkdir +0 -0
  511. package/build/_deps/benchmark-subbuild/benchmark-populate-prefix/src/benchmark-populate-stamp/benchmark-populate-patch +0 -0
  512. package/build/_deps/benchmark-subbuild/benchmark-populate-prefix/src/benchmark-populate-stamp/benchmark-populate-patch-info.txt +0 -6
  513. package/build/_deps/benchmark-subbuild/benchmark-populate-prefix/src/benchmark-populate-stamp/benchmark-populate-test +0 -0
  514. package/build/_deps/benchmark-subbuild/benchmark-populate-prefix/src/benchmark-populate-stamp/benchmark-populate-update-info.txt +0 -7
  515. package/build/_deps/benchmark-subbuild/benchmark-populate-prefix/tmp/benchmark-populate-cfgcmd.txt +0 -1
  516. package/build/_deps/benchmark-subbuild/benchmark-populate-prefix/tmp/benchmark-populate-gitclone.cmake +0 -87
  517. package/build/_deps/benchmark-subbuild/benchmark-populate-prefix/tmp/benchmark-populate-gitupdate.cmake +0 -317
  518. package/build/_deps/benchmark-subbuild/benchmark-populate-prefix/tmp/benchmark-populate-mkdirs.cmake +0 -27
  519. package/build/_deps/benchmark-subbuild/cmake_install.cmake +0 -56
  520. package/build/bin/avl-rb-range-search-benchmark +0 -0
  521. package/build/bin/avl-tree-benchmark +0 -0
  522. package/build/bin/deque-benchmark +0 -0
  523. package/build/bin/doubly-linked-list-benchmark +0 -0
  524. package/build/bin/hash-map-benchmark +0 -0
  525. package/build/bin/heap-benchmark +0 -0
  526. package/build/bin/priority-queue-benchmark +0 -0
  527. package/build/bin/queue-benchmark +0 -0
  528. package/build/bin/red-black-tree-benchmark +0 -0
  529. package/build/bin/singly-linked-list-benchmark +0 -0
  530. package/build/bin/stack-benchmark +0 -0
  531. package/build/bin/tree-map-benchmark +0 -0
  532. package/build/bin/tree-multi-map-benchmark +0 -0
  533. package/build/bin/tree-multi-set-benchmark +0 -0
  534. package/build/bin/tree-set-benchmark +0 -0
  535. package/build/cmake_install.cmake +0 -66
  536. package/dist/cjs/index.cjs.map +0 -1
  537. package/dist/cjs-legacy/index.cjs.map +0 -1
  538. package/dist/esm/index.mjs.map +0 -1
  539. package/dist/esm-legacy/index.mjs.map +0 -1
  540. package/dist/umd/data-structure-typed.js.map +0 -1
  541. package/dist/umd/data-structure-typed.min.js.map +0 -1
  542. package/eslint.config.mjs +0 -73
  543. package/test/config.ts +0 -4
  544. package/test/integration/all-in-one.test.ts +0 -110
  545. package/test/integration/avl-tree.test.ts +0 -127
  546. package/test/integration/bst.test.ts +0 -385
  547. package/test/integration/compile.test.mjs +0 -159
  548. package/test/integration/compile.test.ts +0 -176
  549. package/test/integration/heap.test.js +0 -21
  550. package/test/integration/index.html +0 -462
  551. package/test/performance/benchmark-runner-enhanced.mjs +0 -818
  552. package/test/performance/cmake-benchmark-runner.mjs +0 -234
  553. package/test/performance/data-structures/binary-tree/avl-rb-range-search.test.cpp +0 -112
  554. package/test/performance/data-structures/binary-tree/avl-rb-range-search.test.mjs +0 -51
  555. package/test/performance/data-structures/binary-tree/avl-tree.test.cpp +0 -181
  556. package/test/performance/data-structures/binary-tree/avl-tree.test.mjs +0 -138
  557. package/test/performance/data-structures/binary-tree/binary-tree-overall.test.mjs +0 -85
  558. package/test/performance/data-structures/binary-tree/binary-tree.test.mjs +0 -100
  559. package/test/performance/data-structures/binary-tree/bst.test.mjs +0 -61
  560. package/test/performance/data-structures/binary-tree/red-black-tree-cjs.test.mjs +0 -259
  561. package/test/performance/data-structures/binary-tree/red-black-tree.test.cpp +0 -213
  562. package/test/performance/data-structures/binary-tree/red-black-tree.test.mjs +0 -275
  563. package/test/performance/data-structures/binary-tree/tree-map.test.cpp +0 -129
  564. package/test/performance/data-structures/binary-tree/tree-map.test.mjs +0 -171
  565. package/test/performance/data-structures/binary-tree/tree-multi-map.test.cpp +0 -205
  566. package/test/performance/data-structures/binary-tree/tree-multi-map.test.mjs +0 -106
  567. package/test/performance/data-structures/binary-tree/tree-multi-set.test.cpp +0 -217
  568. package/test/performance/data-structures/binary-tree/tree-multi-set.test.mjs +0 -91
  569. package/test/performance/data-structures/binary-tree/tree-set.test.cpp +0 -127
  570. package/test/performance/data-structures/binary-tree/tree-set.test.mjs +0 -174
  571. package/test/performance/data-structures/comparison/comparison.test.mjs +0 -99
  572. package/test/performance/data-structures/graph/directed-graph.test.mjs +0 -38
  573. package/test/performance/data-structures/hash/hash-map.test.cpp +0 -183
  574. package/test/performance/data-structures/hash/hash-map.test.mjs +0 -187
  575. package/test/performance/data-structures/heap/heap.test.cpp +0 -61
  576. package/test/performance/data-structures/heap/heap.test.mjs +0 -31
  577. package/test/performance/data-structures/linked-list/doubly-linked-list.test.cpp +0 -84
  578. package/test/performance/data-structures/linked-list/doubly-linked-list.test.mjs +0 -125
  579. package/test/performance/data-structures/linked-list/singly-linked-list.test.cpp +0 -77
  580. package/test/performance/data-structures/linked-list/singly-linked-list.test.mjs +0 -84
  581. package/test/performance/data-structures/priority-queue/max-priority-queue.test.mjs +0 -40
  582. package/test/performance/data-structures/priority-queue/priority-queue.test.cpp +0 -59
  583. package/test/performance/data-structures/priority-queue/priority-queue.test.mjs +0 -64
  584. package/test/performance/data-structures/queue/deque.test.cpp +0 -119
  585. package/test/performance/data-structures/queue/deque.test.mjs +0 -144
  586. package/test/performance/data-structures/queue/queue.test.cpp +0 -59
  587. package/test/performance/data-structures/queue/queue.test.mjs +0 -77
  588. package/test/performance/data-structures/stack/stack.test.cpp +0 -40
  589. package/test/performance/data-structures/stack/stack.test.mjs +0 -69
  590. package/test/performance/data-structures/trie/trie.test.mjs +0 -43
  591. package/test/performance/reportor-enhanced.mjs +0 -871
  592. package/test/performance/runner-config.json +0 -51
  593. package/test/types/index.ts +0 -1
  594. package/test/types/utils/big-o.ts +0 -1
  595. package/test/types/utils/index.ts +0 -2
  596. package/test/types/utils/json2html.ts +0 -5
  597. package/test/unit/data-structures/base/iterable-element-base.coverage.test.ts +0 -106
  598. package/test/unit/data-structures/base/iterable-element-base.more-branches.coverage.test.ts +0 -61
  599. package/test/unit/data-structures/base/linear-base.array.coverage.test.ts +0 -168
  600. package/test/unit/data-structures/base/linear-base.concat-else.coverage.test.ts +0 -82
  601. package/test/unit/data-structures/base/linear-base.coverage.test.ts +0 -72
  602. package/test/unit/data-structures/base/linear-base.more-branches.coverage.test.ts +0 -414
  603. package/test/unit/data-structures/binary-tree/avl-tree-node.familyPosition-root-left.coverage.test.ts +0 -17
  604. package/test/unit/data-structures/binary-tree/avl-tree.more-branches-2.coverage.test.ts +0 -99
  605. package/test/unit/data-structures/binary-tree/avl-tree.test.ts +0 -729
  606. package/test/unit/data-structures/binary-tree/binary-index-tree.test.ts +0 -345
  607. package/test/unit/data-structures/binary-tree/binary-indexed-tree.more-branches.coverage.test.ts +0 -18
  608. package/test/unit/data-structures/binary-tree/binary-tree.more-branches.coverage.test.ts +0 -56
  609. package/test/unit/data-structures/binary-tree/binary-tree.remaining-branches.coverage.test.ts +0 -232
  610. package/test/unit/data-structures/binary-tree/binary-tree.test.ts +0 -1912
  611. package/test/unit/data-structures/binary-tree/bst.bound-by-predicate.coverage.test.ts +0 -33
  612. package/test/unit/data-structures/binary-tree/bst.coverage.test.ts +0 -94
  613. package/test/unit/data-structures/binary-tree/bst.deletebykey.coverage.test.ts +0 -70
  614. package/test/unit/data-structures/binary-tree/bst.deletewhere.coverage.test.ts +0 -37
  615. package/test/unit/data-structures/binary-tree/bst.floor-lower-predicate.coverage.test.ts +0 -29
  616. package/test/unit/data-structures/binary-tree/bst.floor-setmany.coverage.test.ts +0 -72
  617. package/test/unit/data-structures/binary-tree/bst.getnode.range-ensure.coverage.test.ts +0 -22
  618. package/test/unit/data-structures/binary-tree/bst.misc-branches.coverage.test.ts +0 -100
  619. package/test/unit/data-structures/binary-tree/bst.more-branches-2.coverage.test.ts +0 -133
  620. package/test/unit/data-structures/binary-tree/bst.more-branches-3.coverage.test.ts +0 -45
  621. package/test/unit/data-structures/binary-tree/bst.more-branches-4.coverage.test.ts +0 -36
  622. package/test/unit/data-structures/binary-tree/bst.more-branches-5.coverage.test.ts +0 -40
  623. package/test/unit/data-structures/binary-tree/bst.more.coverage.test.ts +0 -39
  624. package/test/unit/data-structures/binary-tree/bst.node-family.coverage.test.ts +0 -29
  625. package/test/unit/data-structures/binary-tree/bst.range-pruning.coverage.test.ts +0 -43
  626. package/test/unit/data-structures/binary-tree/bst.search-fastpath.coverage.test.ts +0 -30
  627. package/test/unit/data-structures/binary-tree/bst.test.ts +0 -3472
  628. package/test/unit/data-structures/binary-tree/data/cost-of-living-by-country.ts +0 -259
  629. package/test/unit/data-structures/binary-tree/overall.test.ts +0 -219
  630. package/test/unit/data-structures/binary-tree/red-black-tree.boundary-corruption-repair.coverage.test.ts +0 -66
  631. package/test/unit/data-structures/binary-tree/red-black-tree.boundary-max-update.coverage.test.ts +0 -18
  632. package/test/unit/data-structures/binary-tree/red-black-tree.boundary-null.coverage.test.ts +0 -53
  633. package/test/unit/data-structures/binary-tree/red-black-tree.boundary-stale-cache.coverage.test.ts +0 -25
  634. package/test/unit/data-structures/binary-tree/red-black-tree.boundary-update.coverage.test.ts +0 -23
  635. package/test/unit/data-structures/binary-tree/red-black-tree.cache-delete.coverage.test.ts +0 -49
  636. package/test/unit/data-structures/binary-tree/red-black-tree.cache-edge.coverage.test.ts +0 -37
  637. package/test/unit/data-structures/binary-tree/red-black-tree.cache-stale-insert.coverage.test.ts +0 -39
  638. package/test/unit/data-structures/binary-tree/red-black-tree.coverage.test.ts +0 -334
  639. package/test/unit/data-structures/binary-tree/red-black-tree.delete-fixup.coverage.test.ts +0 -68
  640. package/test/unit/data-structures/binary-tree/red-black-tree.delete-successor.coverage.test.ts +0 -75
  641. package/test/unit/data-structures/binary-tree/red-black-tree.factories.coverage.test.ts +0 -26
  642. package/test/unit/data-structures/binary-tree/red-black-tree.hint-cache-compare-update.coverage.test.ts +0 -74
  643. package/test/unit/data-structures/binary-tree/red-black-tree.hint-cache-no-update.coverage.test.ts +0 -44
  644. package/test/unit/data-structures/binary-tree/red-black-tree.hint-cache-nullish.coverage.test.ts +0 -61
  645. package/test/unit/data-structures/binary-tree/red-black-tree.hint-mapmode-defined.coverage.test.ts +0 -35
  646. package/test/unit/data-structures/binary-tree/red-black-tree.hint-mapmode-undefined.coverage.test.ts +0 -43
  647. package/test/unit/data-structures/binary-tree/red-black-tree.hint-more.coverage.test.ts +0 -99
  648. package/test/unit/data-structures/binary-tree/red-black-tree.hint.coverage.test.ts +0 -60
  649. package/test/unit/data-structures/binary-tree/red-black-tree.insert-cache-nullish.coverage.test.ts +0 -29
  650. package/test/unit/data-structures/binary-tree/red-black-tree.insert-header-parent-nullish.coverage.test.ts +0 -17
  651. package/test/unit/data-structures/binary-tree/red-black-tree.internal-walk.coverage.test.ts +0 -57
  652. package/test/unit/data-structures/binary-tree/red-black-tree.minmax-cache.test.ts +0 -65
  653. package/test/unit/data-structures/binary-tree/red-black-tree.misc-inputs.coverage.test.ts +0 -17
  654. package/test/unit/data-structures/binary-tree/red-black-tree.more-branches-2.coverage.test.ts +0 -121
  655. package/test/unit/data-structures/binary-tree/red-black-tree.more-branches-3.coverage.test.ts +0 -55
  656. package/test/unit/data-structures/binary-tree/red-black-tree.more-branches-4.coverage.test.ts +0 -44
  657. package/test/unit/data-structures/binary-tree/red-black-tree.predsucc.coverage.test.ts +0 -40
  658. package/test/unit/data-structures/binary-tree/red-black-tree.remaining-branches.coverage.test.ts +0 -123
  659. package/test/unit/data-structures/binary-tree/red-black-tree.set-inputs.coverage.test.ts +0 -64
  660. package/test/unit/data-structures/binary-tree/red-black-tree.setkvnode-parent-cache.coverage.test.ts +0 -79
  661. package/test/unit/data-structures/binary-tree/red-black-tree.setkvnode-remaining.coverage.test.ts +0 -44
  662. package/test/unit/data-structures/binary-tree/red-black-tree.setkvnode-uncovered.coverage.test.ts +0 -74
  663. package/test/unit/data-structures/binary-tree/red-black-tree.test.ts +0 -936
  664. package/test/unit/data-structures/binary-tree/red-black-tree.update-branches.coverage.test.ts +0 -30
  665. package/test/unit/data-structures/binary-tree/segment-tree.more-branches.coverage.test.ts +0 -31
  666. package/test/unit/data-structures/binary-tree/segment-tree.test.ts +0 -104
  667. package/test/unit/data-structures/binary-tree/tree-map.test.ts +0 -270
  668. package/test/unit/data-structures/binary-tree/tree-multi-map.coverage.test.ts +0 -245
  669. package/test/unit/data-structures/binary-tree/tree-multi-map.legacy.test.ts.skip +0 -1115
  670. package/test/unit/data-structures/binary-tree/tree-multi-map.more-branches-2.coverage.test.ts.skip +0 -59
  671. package/test/unit/data-structures/binary-tree/tree-multi-map.rfc.test.ts +0 -99
  672. package/test/unit/data-structures/binary-tree/tree-multi-map.simplified.test.ts +0 -482
  673. package/test/unit/data-structures/binary-tree/tree-multi-set.test.ts +0 -545
  674. package/test/unit/data-structures/binary-tree/tree-set.test.ts +0 -187
  675. package/test/unit/data-structures/graph/abstract-graph.more-branches-2.coverage.test.ts +0 -40
  676. package/test/unit/data-structures/graph/abstract-graph.more-branches-3.coverage.test.ts +0 -65
  677. package/test/unit/data-structures/graph/abstract-graph.more-branches-4.coverage.test.ts +0 -98
  678. package/test/unit/data-structures/graph/abstract-graph.more-branches-5.coverage.test.ts +0 -51
  679. package/test/unit/data-structures/graph/abstract-graph.more-branches.coverage.test.ts +0 -62
  680. package/test/unit/data-structures/graph/abstract-graph.test.ts +0 -117
  681. package/test/unit/data-structures/graph/directed-graph.more-branches-2.coverage.test.ts +0 -38
  682. package/test/unit/data-structures/graph/directed-graph.more-branches-3.coverage.test.ts +0 -25
  683. package/test/unit/data-structures/graph/directed-graph.more-branches.coverage.test.ts +0 -82
  684. package/test/unit/data-structures/graph/directed-graph.test.ts +0 -1185
  685. package/test/unit/data-structures/graph/map-graph.more-branches.coverage.test.ts +0 -22
  686. package/test/unit/data-structures/graph/map-graph.test.ts +0 -148
  687. package/test/unit/data-structures/graph/overall.test.ts +0 -49
  688. package/test/unit/data-structures/graph/salty-edges.json +0 -875
  689. package/test/unit/data-structures/graph/salty-vertexes.json +0 -200
  690. package/test/unit/data-structures/graph/undirected-graph.more-branches-2.coverage.test.ts +0 -35
  691. package/test/unit/data-structures/graph/undirected-graph.more-branches.coverage.test.ts +0 -87
  692. package/test/unit/data-structures/graph/undirected-graph.test.ts +0 -782
  693. package/test/unit/data-structures/hash/hash-map.more-branches.coverage.test.ts +0 -64
  694. package/test/unit/data-structures/hash/hash-map.test.ts +0 -1125
  695. package/test/unit/data-structures/hash/hash-map.toEntryFn-branch.coverage.test.ts +0 -9
  696. package/test/unit/data-structures/heap/heap.misc-branches.coverage.test.ts +0 -110
  697. package/test/unit/data-structures/heap/heap.remaining-branches.coverage.test.ts +0 -22
  698. package/test/unit/data-structures/heap/heap.test.ts +0 -760
  699. package/test/unit/data-structures/heap/max-heap.coverage.test.ts +0 -29
  700. package/test/unit/data-structures/heap/max-heap.test.ts +0 -98
  701. package/test/unit/data-structures/heap/min-heap.test.ts +0 -117
  702. package/test/unit/data-structures/linked-list/doubly-linked-list.more-branches.coverage.test.ts +0 -72
  703. package/test/unit/data-structures/linked-list/doubly-linked-list.test.ts +0 -1150
  704. package/test/unit/data-structures/linked-list/linked-list.test.ts +0 -8
  705. package/test/unit/data-structures/linked-list/linked-list.unshiftMany-else.coverage.test.ts +0 -15
  706. package/test/unit/data-structures/linked-list/singly-linked-list.coverage.test.ts +0 -221
  707. package/test/unit/data-structures/linked-list/singly-linked-list.more-branches.coverage.test.ts +0 -86
  708. package/test/unit/data-structures/linked-list/singly-linked-list.test.ts +0 -836
  709. package/test/unit/data-structures/linked-list/skip-linked-list.more-branches.coverage.test.ts +0 -31
  710. package/test/unit/data-structures/linked-list/skip-linked-list.test.ts +0 -13
  711. package/test/unit/data-structures/linked-list/skip-list.test.ts +0 -86
  712. package/test/unit/data-structures/matrix/matrix.more-branches.coverage.test.ts +0 -81
  713. package/test/unit/data-structures/matrix/matrix.pivotElement-nullish.coverage.test.ts +0 -28
  714. package/test/unit/data-structures/matrix/matrix.test.ts +0 -377
  715. package/test/unit/data-structures/matrix/navigator.test.ts +0 -244
  716. package/test/unit/data-structures/priority-queue/max-priority-queue.more-branches.coverage.test.ts +0 -10
  717. package/test/unit/data-structures/priority-queue/max-priority-queue.test.ts +0 -160
  718. package/test/unit/data-structures/priority-queue/min-priority-queue.test.ts +0 -78
  719. package/test/unit/data-structures/priority-queue/priority-queue.coverage.test.ts +0 -21
  720. package/test/unit/data-structures/priority-queue/priority-queue.test.ts +0 -101
  721. package/test/unit/data-structures/queue/deque.coverage.test.ts +0 -173
  722. package/test/unit/data-structures/queue/deque.more-branches-2.coverage.test.ts +0 -39
  723. package/test/unit/data-structures/queue/deque.more-branches-3.coverage.test.ts +0 -9
  724. package/test/unit/data-structures/queue/deque.more-branches.coverage.test.ts +0 -95
  725. package/test/unit/data-structures/queue/deque.test.ts +0 -936
  726. package/test/unit/data-structures/queue/queue.coverage.test.ts +0 -138
  727. package/test/unit/data-structures/queue/queue.more-branches-2.coverage.test.ts +0 -27
  728. package/test/unit/data-structures/queue/queue.test.ts +0 -703
  729. package/test/unit/data-structures/stack/stack.coverage.test.ts +0 -112
  730. package/test/unit/data-structures/stack/stack.test.ts +0 -438
  731. package/test/unit/data-structures/tree/tree.more-branches.coverage.test.ts +0 -9
  732. package/test/unit/data-structures/tree/tree.test.ts +0 -58
  733. package/test/unit/data-structures/trie/trie.more-branches-2.coverage.test.ts +0 -51
  734. package/test/unit/data-structures/trie/trie.test.ts +0 -1181
  735. package/test/unit/unrestricted-interconversion.test.ts +0 -299
  736. package/test/unit/utils/utils.test.ts +0 -174
  737. package/test/utils/array.ts +0 -5517
  738. package/test/utils/big-o.ts +0 -228
  739. package/test/utils/console.ts +0 -31
  740. package/test/utils/index.ts +0 -8
  741. package/test/utils/is.ts +0 -56
  742. package/test/utils/json2html.ts +0 -164
  743. package/test/utils/number.ts +0 -13
  744. package/test/utils/patch.ts +0 -33
  745. package/test/utils/perf.mjs +0 -34
  746. package/test/utils/performanc.ts +0 -7
  747. package/test/utils/string.ts +0 -49
  748. package/tsconfig.types.json +0 -15
  749. package/tsup.config.js +0 -63
  750. package/tsup.umd.config.js +0 -29
@@ -1,171 +0,0 @@
1
- import { RedBlackTree, TreeMap } from '../../../../dist/esm/index.mjs';
2
- import { OrderedMap } from 'js-sdsl';
3
- import Benchmark from 'benchmark';
4
- import { getRandomIntArray, magnitude } from '../../../utils/perf.mjs';
5
-
6
- const suite = new Benchmark.Suite();
7
-
8
- const { HUNDRED_THOUSAND, MILLION } = magnitude;
9
-
10
- const N_SET = MILLION;
11
- const N_GET = MILLION;
12
- const N_RANGE = HUNDRED_THOUSAND;
13
-
14
- const randomKeys = getRandomIntArray(N_SET, 0, N_SET - 1, true);
15
-
16
- // Prebuilt containers for lookup-only benchmarks (read-only during runs)
17
- const treeMapOn = new TreeMap();
18
- const treeMapOff = new TreeMap([], { isMapMode: false });
19
- const rbtOn = new RedBlackTree();
20
- const rbtOff = new RedBlackTree([], { isMapMode: false });
21
- const sdsl = new OrderedMap();
22
-
23
- for (let i = 0; i < randomKeys.length; i++) {
24
- const k = randomKeys[i];
25
- treeMapOn.set(k, k);
26
- treeMapOff.set(k, k);
27
- rbtOn.set(k, k);
28
- rbtOff.set(k, k);
29
- sdsl.setElement(k, k);
30
- }
31
-
32
- suite
33
- // Insert benchmarks.
34
- .add(`${N_SET.toLocaleString()} set TreeMap`, function () {
35
- const mp = new TreeMap();
36
- for (let i = 0; i < randomKeys.length; i++) mp.set(randomKeys[i], randomKeys[i]);
37
- this.val = mp;
38
- })
39
- .add(`${N_SET.toLocaleString()} set TreeMap (Node)`, function () {
40
- const mp = new TreeMap([], { isMapMode: false });
41
- for (let i = 0; i < randomKeys.length; i++) mp.set(randomKeys[i], randomKeys[i]);
42
- this.val = mp;
43
- })
44
- .add(`${N_SET.toLocaleString()} set RBT`, function () {
45
- const mp = new RedBlackTree();
46
- for (let i = 0; i < randomKeys.length; i++) mp.set(randomKeys[i], randomKeys[i]);
47
- this.val = mp;
48
- })
49
- .add(`${N_SET.toLocaleString()} set RBT (Node)`, function () {
50
- const mp = new RedBlackTree([], { isMapMode: false });
51
- for (let i = 0; i < randomKeys.length; i++) mp.set(randomKeys[i], randomKeys[i]);
52
- this.val = mp;
53
- })
54
- .add(`${N_SET.toLocaleString()} set js-sdsl`, function () {
55
- const mp = new OrderedMap();
56
- for (let i = 0; i < randomKeys.length; i++) mp.setElement(randomKeys[i], randomKeys[i]);
57
- this.val = mp;
58
- })
59
-
60
- // Lookup-only benchmarks (no rebuild).
61
- .add(`${N_GET.toLocaleString()} get TreeMap`, function () {
62
- for (let i = 0; i < randomKeys.length; i++) treeMapOn.get(randomKeys[i]);
63
- })
64
- .add(`${N_GET.toLocaleString()} get TreeMap (Node)`, function () {
65
- for (let i = 0; i < randomKeys.length; i++) treeMapOff.get(randomKeys[i]);
66
- })
67
- .add(`${N_GET.toLocaleString()} get RBT`, function () {
68
- for (let i = 0; i < randomKeys.length; i++) rbtOn.get(randomKeys[i]);
69
- })
70
- .add(`${N_GET.toLocaleString()} get RBT (Node)`, function () {
71
- for (let i = 0; i < randomKeys.length; i++) rbtOff.get(randomKeys[i]);
72
- })
73
- .add(`${N_GET.toLocaleString()} get js-sdsl`, function () {
74
- for (let i = 0; i < randomKeys.length; i++) sdsl.getElementByKey(randomKeys[i]);
75
- })
76
-
77
- // Lookup benchmarks: build + lookup.
78
- .add(`${N_GET.toLocaleString()} build+get TreeMap`, function () {
79
- const mp = new TreeMap();
80
- for (let i = 0; i < randomKeys.length; i++) mp.set(randomKeys[i], randomKeys[i]);
81
- for (let i = 0; i < randomKeys.length; i++) mp.get(randomKeys[i]);
82
- this.val = mp;
83
- })
84
- .add(`${N_GET.toLocaleString()} build+get TreeMap (Node)`, function () {
85
- const mp = new TreeMap([], { isMapMode: false });
86
- for (let i = 0; i < randomKeys.length; i++) mp.set(randomKeys[i], randomKeys[i]);
87
- for (let i = 0; i < randomKeys.length; i++) mp.get(randomKeys[i]);
88
- this.val = mp;
89
- })
90
- .add(`${N_GET.toLocaleString()} build+get RBT`, function () {
91
- const mp = new RedBlackTree();
92
- for (let i = 0; i < randomKeys.length; i++) mp.set(randomKeys[i], randomKeys[i]);
93
- for (let i = 0; i < randomKeys.length; i++) mp.get(randomKeys[i]);
94
- this.val = mp;
95
- })
96
- .add(`${N_GET.toLocaleString()} build+get RBT (Node)`, function () {
97
- const mp = new RedBlackTree([], { isMapMode: false });
98
- for (let i = 0; i < randomKeys.length; i++) mp.set(randomKeys[i], randomKeys[i]);
99
- for (let i = 0; i < randomKeys.length; i++) mp.get(randomKeys[i]);
100
- this.val = mp;
101
- })
102
- .add(`${N_GET.toLocaleString()} build+get js-sdsl`, function () {
103
- const mp = new OrderedMap();
104
- for (let i = 0; i < randomKeys.length; i++) mp.setElement(randomKeys[i], randomKeys[i]);
105
- for (let i = 0; i < randomKeys.length; i++) mp.getElementByKey(randomKeys[i]);
106
- this.val = mp;
107
- })
108
-
109
- // Range/Navigable (lookup-only, no rebuild).
110
- .add(`${N_RANGE.toLocaleString()} rangeSearch TreeMap`, function () {
111
- const out = treeMapOn.rangeSearch([0, N_RANGE - 1]);
112
- this.val = out.length;
113
- })
114
- .add(`${N_RANGE.toLocaleString()} rangeSearch TreeMap (Node)`, function () {
115
- const out = treeMapOff.rangeSearch([0, N_RANGE - 1]);
116
- this.val = out.length;
117
- })
118
- .add(`${N_RANGE.toLocaleString()} navigable TreeMap`, function () {
119
- for (let i = 0; i < N_RANGE; i++) {
120
- treeMapOn.ceiling(i);
121
- treeMapOn.floor(i);
122
- treeMapOn.higher(i);
123
- treeMapOn.lower(i);
124
- }
125
- })
126
- .add(`${N_RANGE.toLocaleString()} navigable TreeMap (Node)`, function () {
127
- for (let i = 0; i < N_RANGE; i++) {
128
- treeMapOff.ceiling(i);
129
- treeMapOff.floor(i);
130
- treeMapOff.higher(i);
131
- treeMapOff.lower(i);
132
- }
133
- })
134
-
135
- // Range/Navigable (build inside run).
136
- .add(`${N_RANGE.toLocaleString()} build+rangeSearch TreeMap`, function () {
137
- const mp = new TreeMap();
138
- for (let i = 0; i < randomKeys.length; i++) mp.set(randomKeys[i], randomKeys[i]);
139
- const out = mp.rangeSearch([0, N_RANGE - 1]);
140
- this.val = out.length;
141
- })
142
- .add(`${N_RANGE.toLocaleString()} build+rangeSearch TreeMap (Node)`, function () {
143
- const mp = new TreeMap([], { isMapMode: false });
144
- for (let i = 0; i < randomKeys.length; i++) mp.set(randomKeys[i], randomKeys[i]);
145
- const out = mp.rangeSearch([0, N_RANGE - 1]);
146
- this.val = out.length;
147
- })
148
- .add(`${N_RANGE.toLocaleString()} build+navigable TreeMap`, function () {
149
- const mp = new TreeMap();
150
- for (let i = 0; i < randomKeys.length; i++) mp.set(randomKeys[i], randomKeys[i]);
151
- for (let i = 0; i < N_RANGE; i++) {
152
- mp.ceiling(i);
153
- mp.floor(i);
154
- mp.higher(i);
155
- mp.lower(i);
156
- }
157
- this.val = mp;
158
- })
159
- .add(`${N_RANGE.toLocaleString()} build+navigable TreeMap (Node)`, function () {
160
- const mp = new TreeMap([], { isMapMode: false });
161
- for (let i = 0; i < randomKeys.length; i++) mp.set(randomKeys[i], randomKeys[i]);
162
- for (let i = 0; i < N_RANGE; i++) {
163
- mp.ceiling(i);
164
- mp.floor(i);
165
- mp.higher(i);
166
- mp.lower(i);
167
- }
168
- this.val = mp;
169
- });
170
-
171
- export { suite };
@@ -1,205 +0,0 @@
1
- #include <benchmark/benchmark.h>
2
- #include <map>
3
- #include <vector>
4
- #include <random>
5
- #include <string>
6
-
7
- static const int MILLION = 1000000;
8
- static const int HUNDRED_THOUSAND = 100000;
9
-
10
- // Global RNG
11
- static std::mt19937 gen(42);
12
-
13
- static std::vector<int> generateRandomArray(int size, int max_value) {
14
- std::vector<int> arr;
15
- arr.reserve(size);
16
- std::uniform_int_distribution<> dist(0, max_value - 1);
17
- for (int i = 0; i < size; i++) arr.push_back(dist(gen));
18
- return arr;
19
- }
20
-
21
- // Use fewer unique keys to create duplicates (multimap scenario)
22
- static const auto randomKeys = generateRandomArray(MILLION, HUNDRED_THOUSAND);
23
-
24
- // Prebuilt multimap for lookup-only benchmarks
25
- static std::multimap<int, int> prebuiltMultiMap;
26
- static bool multiMapInitialized = false;
27
-
28
- static void initializeMultiMap() {
29
- if (!multiMapInitialized) {
30
- for (int i = 0; i < MILLION; i++) {
31
- prebuiltMultiMap.insert({randomKeys[i], i});
32
- }
33
- multiMapInitialized = true;
34
- }
35
- }
36
-
37
- // -----------------
38
- // ADD (insert with duplicates)
39
- // -----------------
40
- static void Add1M(benchmark::State& state) {
41
- for (auto _ : state) {
42
- std::multimap<int, int> mm;
43
- for (int i = 0; i < MILLION; i++) {
44
- mm.insert({randomKeys[i], i});
45
- }
46
- benchmark::DoNotOptimize(mm);
47
- }
48
- }
49
- BENCHMARK(Add1M)->Name("1M add std::multimap")->Unit(benchmark::kMillisecond);
50
-
51
- // -----------------
52
- // HAS (count > 0)
53
- // -----------------
54
- static void Has1M(benchmark::State& state) {
55
- initializeMultiMap();
56
- for (auto _ : state) {
57
- int found = 0;
58
- for (int i = 0; i < MILLION; i++) {
59
- if (prebuiltMultiMap.count(randomKeys[i]) > 0) found++;
60
- }
61
- benchmark::DoNotOptimize(found);
62
- }
63
- }
64
- BENCHMARK(Has1M)->Name("1M has std::multimap")->Unit(benchmark::kMillisecond);
65
-
66
- // -----------------
67
- // GET (equal_range iteration)
68
- // -----------------
69
- static void Get1M(benchmark::State& state) {
70
- initializeMultiMap();
71
- for (auto _ : state) {
72
- int sum = 0;
73
- for (int i = 0; i < MILLION; i++) {
74
- auto range = prebuiltMultiMap.equal_range(randomKeys[i]);
75
- for (auto it = range.first; it != range.second; ++it) {
76
- sum += it->second;
77
- }
78
- }
79
- benchmark::DoNotOptimize(sum);
80
- }
81
- }
82
- BENCHMARK(Get1M)->Name("1M get std::multimap")->Unit(benchmark::kMillisecond);
83
-
84
- // -----------------
85
- // COUNT
86
- // -----------------
87
- static void Count1M(benchmark::State& state) {
88
- initializeMultiMap();
89
- for (auto _ : state) {
90
- size_t total = 0;
91
- for (int i = 0; i < MILLION; i++) {
92
- total += prebuiltMultiMap.count(randomKeys[i]);
93
- }
94
- benchmark::DoNotOptimize(total);
95
- }
96
- }
97
- BENCHMARK(Count1M)->Name("1M count std::multimap")->Unit(benchmark::kMillisecond);
98
-
99
- // -----------------
100
- // BUILD + HAS
101
- // -----------------
102
- static void BuildHas1M(benchmark::State& state) {
103
- for (auto _ : state) {
104
- std::multimap<int, int> mm;
105
- for (int i = 0; i < MILLION; i++) {
106
- mm.insert({randomKeys[i], i});
107
- }
108
- int found = 0;
109
- for (int i = 0; i < MILLION; i++) {
110
- if (mm.count(randomKeys[i]) > 0) found++;
111
- }
112
- benchmark::DoNotOptimize(found);
113
- }
114
- }
115
- BENCHMARK(BuildHas1M)->Name("1M build+has std::multimap")->Unit(benchmark::kMillisecond);
116
-
117
- // -----------------
118
- // BUILD + GET
119
- // -----------------
120
- static void BuildGet1M(benchmark::State& state) {
121
- for (auto _ : state) {
122
- std::multimap<int, int> mm;
123
- for (int i = 0; i < MILLION; i++) {
124
- mm.insert({randomKeys[i], i});
125
- }
126
- int sum = 0;
127
- for (int i = 0; i < MILLION; i++) {
128
- auto range = mm.equal_range(randomKeys[i]);
129
- for (auto it = range.first; it != range.second; ++it) {
130
- sum += it->second;
131
- }
132
- }
133
- benchmark::DoNotOptimize(sum);
134
- }
135
- }
136
- BENCHMARK(BuildGet1M)->Name("1M build+get std::multimap")->Unit(benchmark::kMillisecond);
137
-
138
- // -----------------
139
- // FIRST/LAST ENTRY
140
- // -----------------
141
- static void FirstLast100K(benchmark::State& state) {
142
- initializeMultiMap();
143
- for (auto _ : state) {
144
- int sum = 0;
145
- for (int i = 0; i < HUNDRED_THOUSAND; i++) {
146
- auto first = prebuiltMultiMap.begin();
147
- auto last = prebuiltMultiMap.rbegin();
148
- if (first != prebuiltMultiMap.end()) sum += first->second;
149
- sum += last->second;
150
- }
151
- benchmark::DoNotOptimize(sum);
152
- }
153
- }
154
- BENCHMARK(FirstLast100K)->Name("100K first/last std::multimap")->Unit(benchmark::kMillisecond);
155
-
156
- // -----------------
157
- // CEILING/FLOOR (lower_bound/upper_bound)
158
- // -----------------
159
- static void CeilingFloor100K(benchmark::State& state) {
160
- initializeMultiMap();
161
- for (auto _ : state) {
162
- int sum = 0;
163
- for (int i = 0; i < HUNDRED_THOUSAND; i++) {
164
- // ceiling = lower_bound
165
- auto ceiling = prebuiltMultiMap.lower_bound(i);
166
- // floor = --upper_bound (if not begin)
167
- auto floor = prebuiltMultiMap.upper_bound(i);
168
- if (floor != prebuiltMultiMap.begin()) --floor;
169
-
170
- if (ceiling != prebuiltMultiMap.end()) sum += ceiling->second;
171
- sum += floor->second;
172
- }
173
- benchmark::DoNotOptimize(sum);
174
- }
175
- }
176
- BENCHMARK(CeilingFloor100K)->Name("100K ceiling/floor std::multimap")->Unit(benchmark::kMillisecond);
177
-
178
- // -----------------
179
- // ITERATION (all entries)
180
- // -----------------
181
- static void Iterate1M(benchmark::State& state) {
182
- initializeMultiMap();
183
- for (auto _ : state) {
184
- int sum = 0;
185
- for (const auto& [k, v] : prebuiltMultiMap) {
186
- sum += v;
187
- }
188
- benchmark::DoNotOptimize(sum);
189
- }
190
- }
191
- BENCHMARK(Iterate1M)->Name("1M iterate std::multimap")->Unit(benchmark::kMillisecond);
192
-
193
- // -----------------
194
- // SIZE
195
- // -----------------
196
- static void Size1M(benchmark::State& state) {
197
- initializeMultiMap();
198
- for (auto _ : state) {
199
- size_t s = prebuiltMultiMap.size();
200
- benchmark::DoNotOptimize(s);
201
- }
202
- }
203
- BENCHMARK(Size1M)->Name("1M size std::multimap")->Unit(benchmark::kMillisecond);
204
-
205
- BENCHMARK_MAIN();
@@ -1,106 +0,0 @@
1
- import { TreeMultiMap } from '../../../../dist/esm/index.mjs';
2
- import Benchmark from 'benchmark';
3
- import { getRandomIntArray, magnitude } from '../../../utils/perf.mjs';
4
-
5
- const suite = new Benchmark.Suite();
6
-
7
- const { HUNDRED_THOUSAND, MILLION } = magnitude;
8
-
9
- // MultiMap operations: add/get/hasEntry/deleteValue
10
- const N_ADD = MILLION;
11
- const N_QUERY = MILLION;
12
- const N_MUTATE = HUNDRED_THOUSAND;
13
-
14
- const randomAdd = getRandomIntArray(N_ADD, 0, N_ADD / 10, false); // Allow duplicates (MultiMap scenario)
15
- const randomQuery = getRandomIntArray(N_QUERY, 0, N_ADD / 10, false);
16
-
17
- // Prebuilt for lookup-only benchmarks
18
- const tmmPrebuilt = new TreeMultiMap();
19
- for (let i = 0; i < randomAdd.length; i++) {
20
- tmmPrebuilt.add(randomAdd[i], randomAdd[i]); // key -> [values]
21
- }
22
-
23
- suite
24
- // Add benchmarks: fresh container inside each run
25
- .add(`${N_ADD.toLocaleString()} add (TreeMultiMap, bucketed)`, function () {
26
- const tmm = new TreeMultiMap();
27
- for (let i = 0; i < randomAdd.length; i++) tmm.add(randomAdd[i], randomAdd[i]);
28
- this.val = tmm;
29
- })
30
-
31
- // Lookup-only benchmarks (no rebuild)
32
- .add(`${N_QUERY.toLocaleString()} has-only (TreeMultiMap)`, function () {
33
- for (let i = 0; i < randomQuery.length; i++) tmmPrebuilt.has(randomQuery[i]);
34
- })
35
- .add(`${N_QUERY.toLocaleString()} get-only (TreeMultiMap)`, function () {
36
- for (let i = 0; i < randomQuery.length; i++) tmmPrebuilt.get(randomQuery[i]);
37
- })
38
- .add(`${N_QUERY.toLocaleString()} count-only (TreeMultiMap)`, function () {
39
- for (let i = 0; i < randomQuery.length; i++) tmmPrebuilt.count(randomQuery[i]);
40
- })
41
-
42
- // Build + lookup
43
- .add(`${N_QUERY.toLocaleString()} build+has (TreeMultiMap)`, function () {
44
- const tmm = new TreeMultiMap();
45
- for (let i = 0; i < randomAdd.length; i++) tmm.add(randomAdd[i], randomAdd[i]);
46
- for (let i = 0; i < randomQuery.length; i++) tmm.has(randomQuery[i]);
47
- this.val = tmm;
48
- })
49
- .add(`${N_QUERY.toLocaleString()} build+get (TreeMultiMap)`, function () {
50
- const tmm = new TreeMultiMap();
51
- for (let i = 0; i < randomAdd.length; i++) tmm.add(randomAdd[i], randomAdd[i]);
52
- for (let i = 0; i < randomQuery.length; i++) tmm.get(randomQuery[i]);
53
- this.val = tmm;
54
- })
55
-
56
- // Value equality operations
57
- .add(`${N_MUTATE.toLocaleString()} hasEntry (TreeMultiMap, Object.is)`, function () {
58
- const tmm = new TreeMultiMap();
59
- for (let i = 0; i < randomAdd.length; i++) tmm.add(randomAdd[i], randomAdd[i]);
60
- for (let i = 0; i < N_MUTATE; i++) tmm.hasEntry(randomQuery[i], randomQuery[i]);
61
- this.val = tmm;
62
- })
63
- .add(`${N_MUTATE.toLocaleString()} deleteValue (TreeMultiMap, Object.is)`, function () {
64
- const tmm = new TreeMultiMap();
65
- for (let i = 0; i < randomAdd.length; i++) tmm.add(randomAdd[i], randomAdd[i]);
66
- for (let i = 0; i < N_MUTATE; i++) tmm.deleteValue(randomQuery[i], randomQuery[i]);
67
- this.val = tmm;
68
- })
69
-
70
- // Navigable entry methods (RFC additions)
71
- .add(`${N_MUTATE.toLocaleString()} firstEntry/lastEntry (TreeMultiMap)`, function () {
72
- for (let i = 0; i < N_MUTATE; i++) {
73
- tmmPrebuilt.firstEntry();
74
- tmmPrebuilt.lastEntry();
75
- }
76
- })
77
- .add(`${N_MUTATE.toLocaleString()} ceilingEntry/floorEntry (TreeMultiMap)`, function () {
78
- for (let i = 0; i < N_MUTATE; i++) {
79
- tmmPrebuilt.ceilingEntry(randomQuery[i]);
80
- tmmPrebuilt.floorEntry(randomQuery[i]);
81
- }
82
- })
83
-
84
- // Iteration: bucket view (default)
85
- .add(`${N_ADD.toLocaleString()} bucket iteration (TreeMultiMap)`, function () {
86
- let sum = 0;
87
- for (const [key, bucket] of tmmPrebuilt) sum += key + bucket.length;
88
- this.val = sum;
89
- })
90
-
91
- // Iteration: flat entries view (RFC addition)
92
- .add(`${N_ADD.toLocaleString()} flatEntries iteration (TreeMultiMap)`, function () {
93
- let sum = 0;
94
- for (const [key, val] of tmmPrebuilt.flatEntries()) sum += key + val;
95
- this.val = sum;
96
- })
97
-
98
- // Size operations
99
- .add(`${N_ADD.toLocaleString()} size property (TreeMultiMap)`, function () {
100
- this.val = tmmPrebuilt.size;
101
- })
102
- .add(`${N_ADD.toLocaleString()} totalSize property (TreeMultiMap)`, function () {
103
- this.val = tmmPrebuilt.totalSize;
104
- });
105
-
106
- export { suite };
@@ -1,217 +0,0 @@
1
- #include <benchmark/benchmark.h>
2
- #include <set>
3
- #include <vector>
4
- #include <random>
5
-
6
- static const int MILLION = 1000000;
7
- static const int HUNDRED_THOUSAND = 100000;
8
-
9
- // Global RNG
10
- static std::mt19937 gen(42);
11
-
12
- static std::vector<int> generateRandomArray(int size, int max_value) {
13
- std::vector<int> arr;
14
- arr.reserve(size);
15
- std::uniform_int_distribution<> dist(0, max_value - 1);
16
- for (int i = 0; i < size; i++) arr.push_back(dist(gen));
17
- return arr;
18
- }
19
-
20
- // Use fewer unique keys to create duplicates (multiset scenario)
21
- static const auto randomKeys = generateRandomArray(MILLION, HUNDRED_THOUSAND);
22
-
23
- // Prebuilt multiset for lookup-only benchmarks
24
- static std::multiset<int> prebuiltMultiSet;
25
- static bool multiSetInitialized = false;
26
-
27
- static void initializeMultiSet() {
28
- if (!multiSetInitialized) {
29
- for (int i = 0; i < MILLION; i++) {
30
- prebuiltMultiSet.insert(randomKeys[i]);
31
- }
32
- multiSetInitialized = true;
33
- }
34
- }
35
-
36
- // -----------------
37
- // ADD (insert with duplicates)
38
- // -----------------
39
- static void Add1M(benchmark::State& state) {
40
- for (auto _ : state) {
41
- std::multiset<int> ms;
42
- for (int i = 0; i < MILLION; i++) {
43
- ms.insert(randomKeys[i]);
44
- }
45
- benchmark::DoNotOptimize(ms);
46
- }
47
- }
48
- BENCHMARK(Add1M)->Name("1M add std::multiset")->Unit(benchmark::kMillisecond);
49
-
50
- // -----------------
51
- // HAS (count > 0)
52
- // -----------------
53
- static void Has1M(benchmark::State& state) {
54
- initializeMultiSet();
55
- for (auto _ : state) {
56
- int found = 0;
57
- for (int i = 0; i < MILLION; i++) {
58
- if (prebuiltMultiSet.count(randomKeys[i]) > 0) found++;
59
- }
60
- benchmark::DoNotOptimize(found);
61
- }
62
- }
63
- BENCHMARK(Has1M)->Name("1M has std::multiset")->Unit(benchmark::kMillisecond);
64
-
65
- // -----------------
66
- // COUNT
67
- // -----------------
68
- static void Count1M(benchmark::State& state) {
69
- initializeMultiSet();
70
- for (auto _ : state) {
71
- size_t total = 0;
72
- for (int i = 0; i < MILLION; i++) {
73
- total += prebuiltMultiSet.count(randomKeys[i]);
74
- }
75
- benchmark::DoNotOptimize(total);
76
- }
77
- }
78
- BENCHMARK(Count1M)->Name("1M count std::multiset")->Unit(benchmark::kMillisecond);
79
-
80
- // -----------------
81
- // BUILD + HAS
82
- // -----------------
83
- static void BuildHas1M(benchmark::State& state) {
84
- for (auto _ : state) {
85
- std::multiset<int> ms;
86
- for (int i = 0; i < MILLION; i++) {
87
- ms.insert(randomKeys[i]);
88
- }
89
- int found = 0;
90
- for (int i = 0; i < MILLION; i++) {
91
- if (ms.count(randomKeys[i]) > 0) found++;
92
- }
93
- benchmark::DoNotOptimize(found);
94
- }
95
- }
96
- BENCHMARK(BuildHas1M)->Name("1M build+has std::multiset")->Unit(benchmark::kMillisecond);
97
-
98
- // -----------------
99
- // BUILD + COUNT
100
- // -----------------
101
- static void BuildCount1M(benchmark::State& state) {
102
- for (auto _ : state) {
103
- std::multiset<int> ms;
104
- for (int i = 0; i < MILLION; i++) {
105
- ms.insert(randomKeys[i]);
106
- }
107
- size_t total = 0;
108
- for (int i = 0; i < MILLION; i++) {
109
- total += ms.count(randomKeys[i]);
110
- }
111
- benchmark::DoNotOptimize(total);
112
- }
113
- }
114
- BENCHMARK(BuildCount1M)->Name("1M build+count std::multiset")->Unit(benchmark::kMillisecond);
115
-
116
- // -----------------
117
- // DELETE ONE (erase single occurrence)
118
- // -----------------
119
- static void DeleteOne100K(benchmark::State& state) {
120
- for (auto _ : state) {
121
- std::multiset<int> ms;
122
- for (int i = 0; i < HUNDRED_THOUSAND; i++) {
123
- ms.insert(randomKeys[i]);
124
- }
125
- for (int i = 0; i < HUNDRED_THOUSAND; i++) {
126
- auto it = ms.find(randomKeys[i]);
127
- if (it != ms.end()) ms.erase(it);
128
- }
129
- benchmark::DoNotOptimize(ms);
130
- }
131
- }
132
- BENCHMARK(DeleteOne100K)->Name("100K delete-one std::multiset")->Unit(benchmark::kMillisecond);
133
-
134
- // -----------------
135
- // FIRST/LAST
136
- // -----------------
137
- static void FirstLast100K(benchmark::State& state) {
138
- initializeMultiSet();
139
- for (auto _ : state) {
140
- int sum = 0;
141
- for (int i = 0; i < HUNDRED_THOUSAND; i++) {
142
- auto first = *prebuiltMultiSet.begin();
143
- auto last = *prebuiltMultiSet.rbegin();
144
- sum += first + last;
145
- }
146
- benchmark::DoNotOptimize(sum);
147
- }
148
- }
149
- BENCHMARK(FirstLast100K)->Name("100K first/last std::multiset")->Unit(benchmark::kMillisecond);
150
-
151
- // -----------------
152
- // CEILING/FLOOR (lower_bound/upper_bound)
153
- // -----------------
154
- static void CeilingFloor100K(benchmark::State& state) {
155
- initializeMultiSet();
156
- for (auto _ : state) {
157
- int sum = 0;
158
- for (int i = 0; i < HUNDRED_THOUSAND; i++) {
159
- // ceiling = lower_bound
160
- auto ceiling = prebuiltMultiSet.lower_bound(i);
161
- // floor = --upper_bound (if not begin)
162
- auto floor = prebuiltMultiSet.upper_bound(i);
163
- if (floor != prebuiltMultiSet.begin()) --floor;
164
-
165
- if (ceiling != prebuiltMultiSet.end()) sum += *ceiling;
166
- sum += *floor;
167
- }
168
- benchmark::DoNotOptimize(sum);
169
- }
170
- }
171
- BENCHMARK(CeilingFloor100K)->Name("100K ceiling/floor std::multiset")->Unit(benchmark::kMillisecond);
172
-
173
- // -----------------
174
- // ITERATION (expanded - all elements)
175
- // -----------------
176
- static void Iterate1M(benchmark::State& state) {
177
- initializeMultiSet();
178
- for (auto _ : state) {
179
- int sum = 0;
180
- for (const auto& v : prebuiltMultiSet) {
181
- sum += v;
182
- }
183
- benchmark::DoNotOptimize(sum);
184
- }
185
- }
186
- BENCHMARK(Iterate1M)->Name("1M iterate std::multiset")->Unit(benchmark::kMillisecond);
187
-
188
- // -----------------
189
- // SIZE
190
- // -----------------
191
- static void Size1M(benchmark::State& state) {
192
- initializeMultiSet();
193
- for (auto _ : state) {
194
- size_t s = prebuiltMultiSet.size();
195
- benchmark::DoNotOptimize(s);
196
- }
197
- }
198
- BENCHMARK(Size1M)->Name("1M size std::multiset")->Unit(benchmark::kMillisecond);
199
-
200
- // -----------------
201
- // DISTINCT SIZE (unique element count - need to iterate)
202
- // -----------------
203
- static void DistinctSize1M(benchmark::State& state) {
204
- initializeMultiSet();
205
- for (auto _ : state) {
206
- size_t distinct = 0;
207
- auto it = prebuiltMultiSet.begin();
208
- while (it != prebuiltMultiSet.end()) {
209
- distinct++;
210
- it = prebuiltMultiSet.upper_bound(*it);
211
- }
212
- benchmark::DoNotOptimize(distinct);
213
- }
214
- }
215
- BENCHMARK(DistinctSize1M)->Name("1M distinctSize std::multiset")->Unit(benchmark::kMillisecond);
216
-
217
- BENCHMARK_MAIN();