data-structure-typed 2.4.1 → 2.4.3

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 (738) hide show
  1. package/CHANGELOG.md +1 -1
  2. package/dist/cjs/index.cjs +36 -9
  3. package/dist/cjs-legacy/index.cjs +36 -9
  4. package/dist/esm/index.mjs +36 -9
  5. package/dist/esm-legacy/index.mjs +36 -9
  6. package/dist/types/data-structures/binary-tree/tree-map.d.ts +10 -0
  7. package/dist/types/data-structures/binary-tree/tree-set.d.ts +10 -0
  8. package/dist/umd/data-structure-typed.js +36 -8
  9. package/dist/umd/data-structure-typed.min.js +2 -2
  10. package/package.json +7 -5
  11. package/src/data-structures/binary-tree/tree-map.ts +16 -0
  12. package/src/data-structures/binary-tree/tree-set.ts +16 -0
  13. package/src/data-structures/trie/trie.ts +6 -8
  14. package/CMakeLists.txt +0 -52
  15. package/benchmark/report.html +0 -221
  16. package/benchmark/report.json +0 -1972
  17. package/build/CMakeCache.txt +0 -603
  18. package/build/CMakeFiles/4.0.3/CMakeCXXCompiler.cmake +0 -104
  19. package/build/CMakeFiles/4.0.3/CMakeDetermineCompilerABI_CXX.bin +0 -0
  20. package/build/CMakeFiles/4.0.3/CMakeSystem.cmake +0 -15
  21. package/build/CMakeFiles/4.0.3/CompilerIdCXX/CMakeCXXCompilerId.cpp +0 -920
  22. package/build/CMakeFiles/4.0.3/CompilerIdCXX/a.out +0 -0
  23. package/build/CMakeFiles/4.0.3/CompilerIdCXX/apple-sdk.cpp +0 -1
  24. package/build/CMakeFiles/CMakeConfigureLog.yaml +0 -2146
  25. package/build/CMakeFiles/CMakeDirectoryInformation.cmake +0 -16
  26. package/build/CMakeFiles/InstallScripts.json +0 -9
  27. package/build/CMakeFiles/Makefile.cmake +0 -100
  28. package/build/CMakeFiles/Makefile2 +0 -720
  29. package/build/CMakeFiles/TargetDirectories.txt +0 -23
  30. package/build/CMakeFiles/avl-rb-range-search-benchmark.dir/DependInfo.cmake +0 -23
  31. package/build/CMakeFiles/avl-rb-range-search-benchmark.dir/build.make +0 -114
  32. package/build/CMakeFiles/avl-rb-range-search-benchmark.dir/cmake_clean.cmake +0 -11
  33. package/build/CMakeFiles/avl-rb-range-search-benchmark.dir/compiler_depend.internal +0 -839
  34. package/build/CMakeFiles/avl-rb-range-search-benchmark.dir/compiler_depend.make +0 -2506
  35. package/build/CMakeFiles/avl-rb-range-search-benchmark.dir/compiler_depend.ts +0 -2
  36. package/build/CMakeFiles/avl-rb-range-search-benchmark.dir/depend.make +0 -2
  37. package/build/CMakeFiles/avl-rb-range-search-benchmark.dir/flags.make +0 -10
  38. package/build/CMakeFiles/avl-rb-range-search-benchmark.dir/link.txt +0 -1
  39. package/build/CMakeFiles/avl-rb-range-search-benchmark.dir/progress.make +0 -3
  40. package/build/CMakeFiles/avl-rb-range-search-benchmark.dir/test/performance/data-structures/binary-tree/avl-rb-range-search.test.cpp.o +0 -0
  41. 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
  42. package/build/CMakeFiles/avl-tree-benchmark.dir/DependInfo.cmake +0 -23
  43. package/build/CMakeFiles/avl-tree-benchmark.dir/build.make +0 -114
  44. package/build/CMakeFiles/avl-tree-benchmark.dir/cmake_clean.cmake +0 -11
  45. package/build/CMakeFiles/avl-tree-benchmark.dir/compiler_depend.internal +0 -839
  46. package/build/CMakeFiles/avl-tree-benchmark.dir/compiler_depend.make +0 -2506
  47. package/build/CMakeFiles/avl-tree-benchmark.dir/compiler_depend.ts +0 -2
  48. package/build/CMakeFiles/avl-tree-benchmark.dir/depend.make +0 -2
  49. package/build/CMakeFiles/avl-tree-benchmark.dir/flags.make +0 -10
  50. package/build/CMakeFiles/avl-tree-benchmark.dir/link.txt +0 -1
  51. package/build/CMakeFiles/avl-tree-benchmark.dir/progress.make +0 -3
  52. package/build/CMakeFiles/avl-tree-benchmark.dir/test/performance/data-structures/binary-tree/avl-tree.test.cpp.o +0 -0
  53. package/build/CMakeFiles/avl-tree-benchmark.dir/test/performance/data-structures/binary-tree/avl-tree.test.cpp.o.d +0 -835
  54. package/build/CMakeFiles/cmake.check_cache +0 -1
  55. package/build/CMakeFiles/deque-benchmark.dir/DependInfo.cmake +0 -23
  56. package/build/CMakeFiles/deque-benchmark.dir/build.make +0 -114
  57. package/build/CMakeFiles/deque-benchmark.dir/cmake_clean.cmake +0 -11
  58. package/build/CMakeFiles/deque-benchmark.dir/compiler_depend.internal +0 -791
  59. package/build/CMakeFiles/deque-benchmark.dir/compiler_depend.make +0 -2362
  60. package/build/CMakeFiles/deque-benchmark.dir/compiler_depend.ts +0 -2
  61. package/build/CMakeFiles/deque-benchmark.dir/depend.make +0 -2
  62. package/build/CMakeFiles/deque-benchmark.dir/flags.make +0 -10
  63. package/build/CMakeFiles/deque-benchmark.dir/link.txt +0 -1
  64. package/build/CMakeFiles/deque-benchmark.dir/progress.make +0 -3
  65. package/build/CMakeFiles/deque-benchmark.dir/test/performance/data-structures/queue/deque.test.cpp.o +0 -0
  66. package/build/CMakeFiles/deque-benchmark.dir/test/performance/data-structures/queue/deque.test.cpp.o.d +0 -787
  67. package/build/CMakeFiles/doubly-linked-list-benchmark.dir/DependInfo.cmake +0 -23
  68. package/build/CMakeFiles/doubly-linked-list-benchmark.dir/build.make +0 -114
  69. package/build/CMakeFiles/doubly-linked-list-benchmark.dir/cmake_clean.cmake +0 -11
  70. package/build/CMakeFiles/doubly-linked-list-benchmark.dir/compiler_depend.internal +0 -790
  71. package/build/CMakeFiles/doubly-linked-list-benchmark.dir/compiler_depend.make +0 -2359
  72. package/build/CMakeFiles/doubly-linked-list-benchmark.dir/compiler_depend.ts +0 -2
  73. package/build/CMakeFiles/doubly-linked-list-benchmark.dir/depend.make +0 -2
  74. package/build/CMakeFiles/doubly-linked-list-benchmark.dir/flags.make +0 -10
  75. package/build/CMakeFiles/doubly-linked-list-benchmark.dir/link.txt +0 -1
  76. package/build/CMakeFiles/doubly-linked-list-benchmark.dir/progress.make +0 -3
  77. package/build/CMakeFiles/doubly-linked-list-benchmark.dir/test/performance/data-structures/linked-list/doubly-linked-list.test.cpp.o +0 -0
  78. package/build/CMakeFiles/doubly-linked-list-benchmark.dir/test/performance/data-structures/linked-list/doubly-linked-list.test.cpp.o.d +0 -786
  79. package/build/CMakeFiles/hash-map-benchmark.dir/DependInfo.cmake +0 -23
  80. package/build/CMakeFiles/hash-map-benchmark.dir/build.make +0 -114
  81. package/build/CMakeFiles/hash-map-benchmark.dir/cmake_clean.cmake +0 -11
  82. package/build/CMakeFiles/hash-map-benchmark.dir/compiler_depend.internal +0 -790
  83. package/build/CMakeFiles/hash-map-benchmark.dir/compiler_depend.make +0 -2359
  84. package/build/CMakeFiles/hash-map-benchmark.dir/compiler_depend.ts +0 -2
  85. package/build/CMakeFiles/hash-map-benchmark.dir/depend.make +0 -2
  86. package/build/CMakeFiles/hash-map-benchmark.dir/flags.make +0 -10
  87. package/build/CMakeFiles/hash-map-benchmark.dir/link.txt +0 -1
  88. package/build/CMakeFiles/hash-map-benchmark.dir/progress.make +0 -3
  89. package/build/CMakeFiles/hash-map-benchmark.dir/test/performance/data-structures/hash/hash-map.test.cpp.o +0 -0
  90. package/build/CMakeFiles/hash-map-benchmark.dir/test/performance/data-structures/hash/hash-map.test.cpp.o.d +0 -786
  91. package/build/CMakeFiles/heap-benchmark.dir/DependInfo.cmake +0 -23
  92. package/build/CMakeFiles/heap-benchmark.dir/build.make +0 -114
  93. package/build/CMakeFiles/heap-benchmark.dir/cmake_clean.cmake +0 -11
  94. package/build/CMakeFiles/heap-benchmark.dir/compiler_depend.internal +0 -843
  95. package/build/CMakeFiles/heap-benchmark.dir/compiler_depend.make +0 -2518
  96. package/build/CMakeFiles/heap-benchmark.dir/compiler_depend.ts +0 -2
  97. package/build/CMakeFiles/heap-benchmark.dir/depend.make +0 -2
  98. package/build/CMakeFiles/heap-benchmark.dir/flags.make +0 -10
  99. package/build/CMakeFiles/heap-benchmark.dir/link.txt +0 -1
  100. package/build/CMakeFiles/heap-benchmark.dir/progress.make +0 -3
  101. package/build/CMakeFiles/heap-benchmark.dir/test/performance/data-structures/heap/heap.test.cpp.o +0 -0
  102. package/build/CMakeFiles/heap-benchmark.dir/test/performance/data-structures/heap/heap.test.cpp.o.d +0 -839
  103. package/build/CMakeFiles/priority-queue-benchmark.dir/DependInfo.cmake +0 -23
  104. package/build/CMakeFiles/priority-queue-benchmark.dir/build.make +0 -114
  105. package/build/CMakeFiles/priority-queue-benchmark.dir/cmake_clean.cmake +0 -11
  106. package/build/CMakeFiles/priority-queue-benchmark.dir/compiler_depend.internal +0 -793
  107. package/build/CMakeFiles/priority-queue-benchmark.dir/compiler_depend.make +0 -2368
  108. package/build/CMakeFiles/priority-queue-benchmark.dir/compiler_depend.ts +0 -2
  109. package/build/CMakeFiles/priority-queue-benchmark.dir/depend.make +0 -2
  110. package/build/CMakeFiles/priority-queue-benchmark.dir/flags.make +0 -10
  111. package/build/CMakeFiles/priority-queue-benchmark.dir/link.txt +0 -1
  112. package/build/CMakeFiles/priority-queue-benchmark.dir/progress.make +0 -3
  113. package/build/CMakeFiles/priority-queue-benchmark.dir/test/performance/data-structures/priority-queue/priority-queue.test.cpp.o +0 -0
  114. package/build/CMakeFiles/priority-queue-benchmark.dir/test/performance/data-structures/priority-queue/priority-queue.test.cpp.o.d +0 -789
  115. package/build/CMakeFiles/progress.marks +0 -1
  116. package/build/CMakeFiles/queue-benchmark.dir/DependInfo.cmake +0 -23
  117. package/build/CMakeFiles/queue-benchmark.dir/build.make +0 -114
  118. package/build/CMakeFiles/queue-benchmark.dir/cmake_clean.cmake +0 -11
  119. package/build/CMakeFiles/queue-benchmark.dir/compiler_depend.internal +0 -793
  120. package/build/CMakeFiles/queue-benchmark.dir/compiler_depend.make +0 -2368
  121. package/build/CMakeFiles/queue-benchmark.dir/compiler_depend.ts +0 -2
  122. package/build/CMakeFiles/queue-benchmark.dir/depend.make +0 -2
  123. package/build/CMakeFiles/queue-benchmark.dir/flags.make +0 -10
  124. package/build/CMakeFiles/queue-benchmark.dir/link.txt +0 -1
  125. package/build/CMakeFiles/queue-benchmark.dir/progress.make +0 -3
  126. package/build/CMakeFiles/queue-benchmark.dir/test/performance/data-structures/queue/queue.test.cpp.o +0 -0
  127. package/build/CMakeFiles/queue-benchmark.dir/test/performance/data-structures/queue/queue.test.cpp.o.d +0 -789
  128. package/build/CMakeFiles/red-black-tree-benchmark.dir/DependInfo.cmake +0 -23
  129. package/build/CMakeFiles/red-black-tree-benchmark.dir/build.make +0 -114
  130. package/build/CMakeFiles/red-black-tree-benchmark.dir/cmake_clean.cmake +0 -11
  131. package/build/CMakeFiles/red-black-tree-benchmark.dir/compiler_depend.internal +0 -839
  132. package/build/CMakeFiles/red-black-tree-benchmark.dir/compiler_depend.make +0 -2506
  133. package/build/CMakeFiles/red-black-tree-benchmark.dir/compiler_depend.ts +0 -2
  134. package/build/CMakeFiles/red-black-tree-benchmark.dir/depend.make +0 -2
  135. package/build/CMakeFiles/red-black-tree-benchmark.dir/flags.make +0 -10
  136. package/build/CMakeFiles/red-black-tree-benchmark.dir/link.txt +0 -1
  137. package/build/CMakeFiles/red-black-tree-benchmark.dir/progress.make +0 -3
  138. package/build/CMakeFiles/red-black-tree-benchmark.dir/test/performance/data-structures/binary-tree/red-black-tree.test.cpp.o +0 -0
  139. package/build/CMakeFiles/red-black-tree-benchmark.dir/test/performance/data-structures/binary-tree/red-black-tree.test.cpp.o.d +0 -835
  140. package/build/CMakeFiles/singly-linked-list-benchmark.dir/DependInfo.cmake +0 -23
  141. package/build/CMakeFiles/singly-linked-list-benchmark.dir/build.make +0 -114
  142. package/build/CMakeFiles/singly-linked-list-benchmark.dir/cmake_clean.cmake +0 -11
  143. package/build/CMakeFiles/singly-linked-list-benchmark.dir/compiler_depend.internal +0 -790
  144. package/build/CMakeFiles/singly-linked-list-benchmark.dir/compiler_depend.make +0 -2359
  145. package/build/CMakeFiles/singly-linked-list-benchmark.dir/compiler_depend.ts +0 -2
  146. package/build/CMakeFiles/singly-linked-list-benchmark.dir/depend.make +0 -2
  147. package/build/CMakeFiles/singly-linked-list-benchmark.dir/flags.make +0 -10
  148. package/build/CMakeFiles/singly-linked-list-benchmark.dir/link.txt +0 -1
  149. package/build/CMakeFiles/singly-linked-list-benchmark.dir/progress.make +0 -3
  150. package/build/CMakeFiles/singly-linked-list-benchmark.dir/test/performance/data-structures/linked-list/singly-linked-list.test.cpp.o +0 -0
  151. package/build/CMakeFiles/singly-linked-list-benchmark.dir/test/performance/data-structures/linked-list/singly-linked-list.test.cpp.o.d +0 -786
  152. package/build/CMakeFiles/stack-benchmark.dir/DependInfo.cmake +0 -23
  153. package/build/CMakeFiles/stack-benchmark.dir/build.make +0 -114
  154. package/build/CMakeFiles/stack-benchmark.dir/cmake_clean.cmake +0 -11
  155. package/build/CMakeFiles/stack-benchmark.dir/compiler_depend.internal +0 -793
  156. package/build/CMakeFiles/stack-benchmark.dir/compiler_depend.make +0 -2368
  157. package/build/CMakeFiles/stack-benchmark.dir/compiler_depend.ts +0 -2
  158. package/build/CMakeFiles/stack-benchmark.dir/depend.make +0 -2
  159. package/build/CMakeFiles/stack-benchmark.dir/flags.make +0 -10
  160. package/build/CMakeFiles/stack-benchmark.dir/link.txt +0 -1
  161. package/build/CMakeFiles/stack-benchmark.dir/progress.make +0 -3
  162. package/build/CMakeFiles/stack-benchmark.dir/test/performance/data-structures/stack/stack.test.cpp.o +0 -0
  163. package/build/CMakeFiles/stack-benchmark.dir/test/performance/data-structures/stack/stack.test.cpp.o.d +0 -789
  164. package/build/CMakeFiles/tree-map-benchmark.dir/DependInfo.cmake +0 -23
  165. package/build/CMakeFiles/tree-map-benchmark.dir/build.make +0 -114
  166. package/build/CMakeFiles/tree-map-benchmark.dir/cmake_clean.cmake +0 -11
  167. package/build/CMakeFiles/tree-map-benchmark.dir/compiler_depend.internal +0 -839
  168. package/build/CMakeFiles/tree-map-benchmark.dir/compiler_depend.make +0 -2506
  169. package/build/CMakeFiles/tree-map-benchmark.dir/compiler_depend.ts +0 -2
  170. package/build/CMakeFiles/tree-map-benchmark.dir/depend.make +0 -2
  171. package/build/CMakeFiles/tree-map-benchmark.dir/flags.make +0 -10
  172. package/build/CMakeFiles/tree-map-benchmark.dir/link.txt +0 -1
  173. package/build/CMakeFiles/tree-map-benchmark.dir/progress.make +0 -3
  174. package/build/CMakeFiles/tree-map-benchmark.dir/test/performance/data-structures/binary-tree/tree-map.test.cpp.o +0 -0
  175. package/build/CMakeFiles/tree-map-benchmark.dir/test/performance/data-structures/binary-tree/tree-map.test.cpp.o.d +0 -835
  176. package/build/CMakeFiles/tree-multi-map-benchmark.dir/DependInfo.cmake +0 -23
  177. package/build/CMakeFiles/tree-multi-map-benchmark.dir/build.make +0 -114
  178. package/build/CMakeFiles/tree-multi-map-benchmark.dir/cmake_clean.cmake +0 -11
  179. package/build/CMakeFiles/tree-multi-map-benchmark.dir/compiler_depend.internal +0 -839
  180. package/build/CMakeFiles/tree-multi-map-benchmark.dir/compiler_depend.make +0 -2506
  181. package/build/CMakeFiles/tree-multi-map-benchmark.dir/compiler_depend.ts +0 -2
  182. package/build/CMakeFiles/tree-multi-map-benchmark.dir/depend.make +0 -2
  183. package/build/CMakeFiles/tree-multi-map-benchmark.dir/flags.make +0 -10
  184. package/build/CMakeFiles/tree-multi-map-benchmark.dir/link.txt +0 -1
  185. package/build/CMakeFiles/tree-multi-map-benchmark.dir/progress.make +0 -3
  186. package/build/CMakeFiles/tree-multi-map-benchmark.dir/test/performance/data-structures/binary-tree/tree-multi-map.test.cpp.o +0 -0
  187. package/build/CMakeFiles/tree-multi-map-benchmark.dir/test/performance/data-structures/binary-tree/tree-multi-map.test.cpp.o.d +0 -835
  188. package/build/CMakeFiles/tree-multi-set-benchmark.dir/DependInfo.cmake +0 -23
  189. package/build/CMakeFiles/tree-multi-set-benchmark.dir/build.make +0 -114
  190. package/build/CMakeFiles/tree-multi-set-benchmark.dir/cmake_clean.cmake +0 -11
  191. package/build/CMakeFiles/tree-multi-set-benchmark.dir/compiler_depend.internal +0 -839
  192. package/build/CMakeFiles/tree-multi-set-benchmark.dir/compiler_depend.make +0 -2506
  193. package/build/CMakeFiles/tree-multi-set-benchmark.dir/compiler_depend.ts +0 -2
  194. package/build/CMakeFiles/tree-multi-set-benchmark.dir/depend.make +0 -2
  195. package/build/CMakeFiles/tree-multi-set-benchmark.dir/flags.make +0 -10
  196. package/build/CMakeFiles/tree-multi-set-benchmark.dir/link.txt +0 -1
  197. package/build/CMakeFiles/tree-multi-set-benchmark.dir/progress.make +0 -3
  198. package/build/CMakeFiles/tree-multi-set-benchmark.dir/test/performance/data-structures/binary-tree/tree-multi-set.test.cpp.o +0 -0
  199. package/build/CMakeFiles/tree-multi-set-benchmark.dir/test/performance/data-structures/binary-tree/tree-multi-set.test.cpp.o.d +0 -835
  200. package/build/CMakeFiles/tree-set-benchmark.dir/DependInfo.cmake +0 -23
  201. package/build/CMakeFiles/tree-set-benchmark.dir/build.make +0 -114
  202. package/build/CMakeFiles/tree-set-benchmark.dir/cmake_clean.cmake +0 -11
  203. package/build/CMakeFiles/tree-set-benchmark.dir/compiler_depend.internal +0 -839
  204. package/build/CMakeFiles/tree-set-benchmark.dir/compiler_depend.make +0 -2506
  205. package/build/CMakeFiles/tree-set-benchmark.dir/compiler_depend.ts +0 -2
  206. package/build/CMakeFiles/tree-set-benchmark.dir/depend.make +0 -2
  207. package/build/CMakeFiles/tree-set-benchmark.dir/flags.make +0 -10
  208. package/build/CMakeFiles/tree-set-benchmark.dir/link.txt +0 -1
  209. package/build/CMakeFiles/tree-set-benchmark.dir/progress.make +0 -3
  210. package/build/CMakeFiles/tree-set-benchmark.dir/test/performance/data-structures/binary-tree/tree-set.test.cpp.o +0 -0
  211. package/build/CMakeFiles/tree-set-benchmark.dir/test/performance/data-structures/binary-tree/tree-set.test.cpp.o.d +0 -835
  212. package/build/Makefile +0 -783
  213. package/build/_deps/benchmark-build/CMakeFiles/CMakeDirectoryInformation.cmake +0 -16
  214. package/build/_deps/benchmark-build/CMakeFiles/progress.marks +0 -1
  215. package/build/_deps/benchmark-build/Makefile +0 -140
  216. package/build/_deps/benchmark-build/benchmark.pc +0 -12
  217. package/build/_deps/benchmark-build/benchmarkConfig.cmake +0 -14
  218. package/build/_deps/benchmark-build/benchmarkConfigVersion.cmake +0 -65
  219. package/build/_deps/benchmark-build/benchmarkTargets.cmake +0 -84
  220. package/build/_deps/benchmark-build/cmake_install.cmake +0 -50
  221. package/build/_deps/benchmark-build/src/CMakeFiles/CMakeDirectoryInformation.cmake +0 -16
  222. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/DependInfo.cmake +0 -41
  223. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/benchmark.cc.o +0 -0
  224. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/benchmark.cc.o.d +0 -875
  225. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/benchmark_api_internal.cc.o +0 -0
  226. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/benchmark_api_internal.cc.o.d +0 -802
  227. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/benchmark_name.cc.o +0 -0
  228. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/benchmark_name.cc.o.d +0 -772
  229. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/benchmark_register.cc.o +0 -0
  230. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/benchmark_register.cc.o.d +0 -841
  231. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/benchmark_runner.cc.o +0 -0
  232. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/benchmark_runner.cc.o.d +0 -833
  233. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/build.make +0 -402
  234. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/check.cc.o +0 -0
  235. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/check.cc.o.d +0 -784
  236. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/cmake_clean.cmake +0 -47
  237. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/cmake_clean_target.cmake +0 -3
  238. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/colorprint.cc.o +0 -0
  239. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/colorprint.cc.o.d +0 -791
  240. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/commandlineflags.cc.o +0 -0
  241. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/commandlineflags.cc.o.d +0 -795
  242. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/compiler_depend.internal +0 -15519
  243. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/compiler_depend.make +0 -17500
  244. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/compiler_depend.ts +0 -2
  245. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/complexity.cc.o +0 -0
  246. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/complexity.cc.o.d +0 -793
  247. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/console_reporter.cc.o +0 -0
  248. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/console_reporter.cc.o.d +0 -802
  249. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/counter.cc.o +0 -0
  250. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/counter.cc.o.d +0 -773
  251. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/csv_reporter.cc.o +0 -0
  252. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/csv_reporter.cc.o.d +0 -799
  253. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/depend.make +0 -2
  254. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/flags.make +0 -10
  255. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/json_reporter.cc.o +0 -0
  256. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/json_reporter.cc.o.d +0 -800
  257. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/link.txt +0 -2
  258. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/perf_counters.cc.o +0 -0
  259. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/perf_counters.cc.o.d +0 -807
  260. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/progress.make +0 -21
  261. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/reporter.cc.o +0 -0
  262. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/reporter.cc.o.d +0 -798
  263. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/statistics.cc.o +0 -0
  264. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/statistics.cc.o.d +0 -800
  265. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/string_util.cc.o +0 -0
  266. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/string_util.cc.o.d +0 -795
  267. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/sysinfo.cc.o +0 -0
  268. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/sysinfo.cc.o.d +0 -933
  269. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/timers.cc.o +0 -0
  270. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark.dir/timers.cc.o.d +0 -904
  271. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark_main.dir/DependInfo.cmake +0 -23
  272. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark_main.dir/benchmark_main.cc.o +0 -0
  273. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark_main.dir/benchmark_main.cc.o.d +0 -772
  274. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark_main.dir/build.make +0 -114
  275. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark_main.dir/cmake_clean.cmake +0 -11
  276. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark_main.dir/cmake_clean_target.cmake +0 -3
  277. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark_main.dir/compiler_depend.internal +0 -776
  278. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark_main.dir/compiler_depend.make +0 -2317
  279. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark_main.dir/compiler_depend.ts +0 -2
  280. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark_main.dir/depend.make +0 -2
  281. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark_main.dir/flags.make +0 -10
  282. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark_main.dir/link.txt +0 -2
  283. package/build/_deps/benchmark-build/src/CMakeFiles/benchmark_main.dir/progress.make +0 -3
  284. package/build/_deps/benchmark-build/src/CMakeFiles/progress.marks +0 -1
  285. package/build/_deps/benchmark-build/src/Makefile +0 -710
  286. package/build/_deps/benchmark-build/src/cmake_install.cmake +0 -45
  287. package/build/_deps/benchmark-build/src/libbenchmark.a +0 -0
  288. package/build/_deps/benchmark-build/src/libbenchmark_main.a +0 -0
  289. package/build/_deps/benchmark-src/.clang-format +0 -5
  290. package/build/_deps/benchmark-src/.clang-tidy +0 -7
  291. package/build/_deps/benchmark-src/.github/ISSUE_TEMPLATE/bug_report.md +0 -32
  292. package/build/_deps/benchmark-src/.github/ISSUE_TEMPLATE/feature_request.md +0 -20
  293. package/build/_deps/benchmark-src/.github/install_bazel.sh +0 -13
  294. package/build/_deps/benchmark-src/.github/libcxx-setup.sh +0 -26
  295. package/build/_deps/benchmark-src/.github/workflows/bazel.yml +0 -35
  296. package/build/_deps/benchmark-src/.github/workflows/build-and-test-min-cmake.yml +0 -46
  297. package/build/_deps/benchmark-src/.github/workflows/build-and-test-perfcounters.yml +0 -51
  298. package/build/_deps/benchmark-src/.github/workflows/build-and-test.yml +0 -114
  299. package/build/_deps/benchmark-src/.github/workflows/clang-format-lint.yml +0 -17
  300. package/build/_deps/benchmark-src/.github/workflows/clang-tidy.yml +0 -38
  301. package/build/_deps/benchmark-src/.github/workflows/doxygen.yml +0 -28
  302. package/build/_deps/benchmark-src/.github/workflows/pylint.yml +0 -28
  303. package/build/_deps/benchmark-src/.github/workflows/sanitizer.yml +0 -96
  304. package/build/_deps/benchmark-src/.github/workflows/test_bindings.yml +0 -29
  305. package/build/_deps/benchmark-src/.github/workflows/wheels.yml +0 -79
  306. package/build/_deps/benchmark-src/.travis.yml +0 -208
  307. package/build/_deps/benchmark-src/.ycm_extra_conf.py +0 -115
  308. package/build/_deps/benchmark-src/AUTHORS +0 -71
  309. package/build/_deps/benchmark-src/BUILD.bazel +0 -87
  310. package/build/_deps/benchmark-src/CMakeLists.txt +0 -340
  311. package/build/_deps/benchmark-src/CONTRIBUTING.md +0 -58
  312. package/build/_deps/benchmark-src/CONTRIBUTORS +0 -95
  313. package/build/_deps/benchmark-src/LICENSE +0 -202
  314. package/build/_deps/benchmark-src/MODULE.bazel +0 -24
  315. package/build/_deps/benchmark-src/README.md +0 -223
  316. package/build/_deps/benchmark-src/WORKSPACE +0 -22
  317. package/build/_deps/benchmark-src/WORKSPACE.bzlmod +0 -2
  318. package/build/_deps/benchmark-src/_config.yml +0 -2
  319. package/build/_deps/benchmark-src/appveyor.yml +0 -50
  320. package/build/_deps/benchmark-src/bazel/benchmark_deps.bzl +0 -65
  321. package/build/_deps/benchmark-src/bindings/python/BUILD +0 -3
  322. package/build/_deps/benchmark-src/bindings/python/build_defs.bzl +0 -25
  323. package/build/_deps/benchmark-src/bindings/python/google_benchmark/BUILD +0 -40
  324. package/build/_deps/benchmark-src/bindings/python/google_benchmark/__init__.py +0 -162
  325. package/build/_deps/benchmark-src/bindings/python/google_benchmark/benchmark.cc +0 -184
  326. package/build/_deps/benchmark-src/bindings/python/google_benchmark/example.py +0 -136
  327. package/build/_deps/benchmark-src/bindings/python/nanobind.BUILD +0 -17
  328. package/build/_deps/benchmark-src/bindings/python/python_headers.BUILD +0 -6
  329. package/build/_deps/benchmark-src/cmake/AddCXXCompilerFlag.cmake +0 -78
  330. package/build/_deps/benchmark-src/cmake/CXXFeatureCheck.cmake +0 -82
  331. package/build/_deps/benchmark-src/cmake/Config.cmake.in +0 -7
  332. package/build/_deps/benchmark-src/cmake/GetGitVersion.cmake +0 -58
  333. package/build/_deps/benchmark-src/cmake/GoogleTest.cmake +0 -58
  334. package/build/_deps/benchmark-src/cmake/GoogleTest.cmake.in +0 -59
  335. package/build/_deps/benchmark-src/cmake/benchmark.pc.in +0 -12
  336. package/build/_deps/benchmark-src/cmake/gnu_posix_regex.cpp +0 -12
  337. package/build/_deps/benchmark-src/cmake/llvm-toolchain.cmake +0 -8
  338. package/build/_deps/benchmark-src/cmake/posix_regex.cpp +0 -14
  339. package/build/_deps/benchmark-src/cmake/pthread_affinity.cpp +0 -16
  340. package/build/_deps/benchmark-src/cmake/split_list.cmake +0 -3
  341. package/build/_deps/benchmark-src/cmake/std_regex.cpp +0 -10
  342. package/build/_deps/benchmark-src/cmake/steady_clock.cpp +0 -7
  343. package/build/_deps/benchmark-src/cmake/thread_safety_attributes.cpp +0 -4
  344. package/build/_deps/benchmark-src/docs/AssemblyTests.md +0 -149
  345. package/build/_deps/benchmark-src/docs/_config.yml +0 -3
  346. package/build/_deps/benchmark-src/docs/assets/images/icon.png +0 -0
  347. package/build/_deps/benchmark-src/docs/assets/images/icon.xcf +0 -0
  348. package/build/_deps/benchmark-src/docs/assets/images/icon_black.png +0 -0
  349. package/build/_deps/benchmark-src/docs/assets/images/icon_black.xcf +0 -0
  350. package/build/_deps/benchmark-src/docs/dependencies.md +0 -13
  351. package/build/_deps/benchmark-src/docs/index.md +0 -12
  352. package/build/_deps/benchmark-src/docs/perf_counters.md +0 -35
  353. package/build/_deps/benchmark-src/docs/platform_specific_build_instructions.md +0 -48
  354. package/build/_deps/benchmark-src/docs/python_bindings.md +0 -34
  355. package/build/_deps/benchmark-src/docs/random_interleaving.md +0 -13
  356. package/build/_deps/benchmark-src/docs/reducing_variance.md +0 -100
  357. package/build/_deps/benchmark-src/docs/releasing.md +0 -41
  358. package/build/_deps/benchmark-src/docs/tools.md +0 -343
  359. package/build/_deps/benchmark-src/docs/user_guide.md +0 -1266
  360. package/build/_deps/benchmark-src/include/benchmark/benchmark.h +0 -1991
  361. package/build/_deps/benchmark-src/include/benchmark/export.h +0 -47
  362. package/build/_deps/benchmark-src/pyproject.toml +0 -50
  363. package/build/_deps/benchmark-src/setup.py +0 -113
  364. package/build/_deps/benchmark-src/src/CMakeLists.txt +0 -170
  365. package/build/_deps/benchmark-src/src/arraysize.h +0 -33
  366. package/build/_deps/benchmark-src/src/benchmark.cc +0 -779
  367. package/build/_deps/benchmark-src/src/benchmark_api_internal.cc +0 -118
  368. package/build/_deps/benchmark-src/src/benchmark_api_internal.h +0 -87
  369. package/build/_deps/benchmark-src/src/benchmark_main.cc +0 -18
  370. package/build/_deps/benchmark-src/src/benchmark_name.cc +0 -59
  371. package/build/_deps/benchmark-src/src/benchmark_register.cc +0 -520
  372. package/build/_deps/benchmark-src/src/benchmark_register.h +0 -109
  373. package/build/_deps/benchmark-src/src/benchmark_runner.cc +0 -497
  374. package/build/_deps/benchmark-src/src/benchmark_runner.h +0 -131
  375. package/build/_deps/benchmark-src/src/check.cc +0 -11
  376. package/build/_deps/benchmark-src/src/check.h +0 -106
  377. package/build/_deps/benchmark-src/src/colorprint.cc +0 -200
  378. package/build/_deps/benchmark-src/src/colorprint.h +0 -33
  379. package/build/_deps/benchmark-src/src/commandlineflags.cc +0 -298
  380. package/build/_deps/benchmark-src/src/commandlineflags.h +0 -133
  381. package/build/_deps/benchmark-src/src/complexity.cc +0 -244
  382. package/build/_deps/benchmark-src/src/complexity.h +0 -55
  383. package/build/_deps/benchmark-src/src/console_reporter.cc +0 -206
  384. package/build/_deps/benchmark-src/src/counter.cc +0 -80
  385. package/build/_deps/benchmark-src/src/counter.h +0 -32
  386. package/build/_deps/benchmark-src/src/csv_reporter.cc +0 -161
  387. package/build/_deps/benchmark-src/src/cycleclock.h +0 -230
  388. package/build/_deps/benchmark-src/src/internal_macros.h +0 -115
  389. package/build/_deps/benchmark-src/src/json_reporter.cc +0 -320
  390. package/build/_deps/benchmark-src/src/log.h +0 -88
  391. package/build/_deps/benchmark-src/src/mutex.h +0 -155
  392. package/build/_deps/benchmark-src/src/perf_counters.cc +0 -282
  393. package/build/_deps/benchmark-src/src/perf_counters.h +0 -200
  394. package/build/_deps/benchmark-src/src/re.h +0 -158
  395. package/build/_deps/benchmark-src/src/reporter.cc +0 -118
  396. package/build/_deps/benchmark-src/src/statistics.cc +0 -209
  397. package/build/_deps/benchmark-src/src/statistics.h +0 -44
  398. package/build/_deps/benchmark-src/src/string_util.cc +0 -254
  399. package/build/_deps/benchmark-src/src/string_util.h +0 -70
  400. package/build/_deps/benchmark-src/src/sysinfo.cc +0 -855
  401. package/build/_deps/benchmark-src/src/thread_manager.h +0 -63
  402. package/build/_deps/benchmark-src/src/thread_timer.h +0 -86
  403. package/build/_deps/benchmark-src/src/timers.cc +0 -272
  404. package/build/_deps/benchmark-src/src/timers.h +0 -48
  405. package/build/_deps/benchmark-src/test/AssemblyTests.cmake +0 -67
  406. package/build/_deps/benchmark-src/test/BUILD +0 -127
  407. package/build/_deps/benchmark-src/test/CMakeLists.txt +0 -309
  408. package/build/_deps/benchmark-src/test/args_product_test.cc +0 -77
  409. package/build/_deps/benchmark-src/test/basic_test.cc +0 -180
  410. package/build/_deps/benchmark-src/test/benchmark_gtest.cc +0 -169
  411. package/build/_deps/benchmark-src/test/benchmark_min_time_flag_iters_test.cc +0 -66
  412. package/build/_deps/benchmark-src/test/benchmark_min_time_flag_time_test.cc +0 -90
  413. package/build/_deps/benchmark-src/test/benchmark_name_gtest.cc +0 -82
  414. package/build/_deps/benchmark-src/test/benchmark_random_interleaving_gtest.cc +0 -126
  415. package/build/_deps/benchmark-src/test/benchmark_setup_teardown_test.cc +0 -157
  416. package/build/_deps/benchmark-src/test/benchmark_test.cc +0 -274
  417. package/build/_deps/benchmark-src/test/clobber_memory_assembly_test.cc +0 -64
  418. package/build/_deps/benchmark-src/test/commandlineflags_gtest.cc +0 -228
  419. package/build/_deps/benchmark-src/test/complexity_test.cc +0 -228
  420. package/build/_deps/benchmark-src/test/cxx03_test.cc +0 -62
  421. package/build/_deps/benchmark-src/test/diagnostics_test.cc +0 -91
  422. package/build/_deps/benchmark-src/test/display_aggregates_only_test.cc +0 -45
  423. package/build/_deps/benchmark-src/test/donotoptimize_assembly_test.cc +0 -201
  424. package/build/_deps/benchmark-src/test/donotoptimize_test.cc +0 -69
  425. package/build/_deps/benchmark-src/test/filter_test.cc +0 -117
  426. package/build/_deps/benchmark-src/test/fixture_test.cc +0 -51
  427. package/build/_deps/benchmark-src/test/internal_threading_test.cc +0 -185
  428. package/build/_deps/benchmark-src/test/link_main_test.cc +0 -9
  429. package/build/_deps/benchmark-src/test/map_test.cc +0 -59
  430. package/build/_deps/benchmark-src/test/memory_manager_test.cc +0 -47
  431. package/build/_deps/benchmark-src/test/min_time_parse_gtest.cc +0 -30
  432. package/build/_deps/benchmark-src/test/multiple_ranges_test.cc +0 -96
  433. package/build/_deps/benchmark-src/test/options_test.cc +0 -77
  434. package/build/_deps/benchmark-src/test/output_test.h +0 -211
  435. package/build/_deps/benchmark-src/test/output_test_helper.cc +0 -519
  436. package/build/_deps/benchmark-src/test/perf_counters_gtest.cc +0 -307
  437. package/build/_deps/benchmark-src/test/perf_counters_test.cc +0 -92
  438. package/build/_deps/benchmark-src/test/register_benchmark_test.cc +0 -196
  439. package/build/_deps/benchmark-src/test/repetitions_test.cc +0 -214
  440. package/build/_deps/benchmark-src/test/report_aggregates_only_test.cc +0 -41
  441. package/build/_deps/benchmark-src/test/reporter_output_test.cc +0 -1130
  442. package/build/_deps/benchmark-src/test/skip_with_error_test.cc +0 -199
  443. package/build/_deps/benchmark-src/test/spec_arg_test.cc +0 -105
  444. package/build/_deps/benchmark-src/test/spec_arg_verbosity_test.cc +0 -43
  445. package/build/_deps/benchmark-src/test/state_assembly_test.cc +0 -68
  446. package/build/_deps/benchmark-src/test/statistics_gtest.cc +0 -35
  447. package/build/_deps/benchmark-src/test/string_util_gtest.cc +0 -199
  448. package/build/_deps/benchmark-src/test/templated_fixture_test.cc +0 -28
  449. package/build/_deps/benchmark-src/test/time_unit_gtest.cc +0 -37
  450. package/build/_deps/benchmark-src/test/user_counters_tabular_test.cc +0 -558
  451. package/build/_deps/benchmark-src/test/user_counters_test.cc +0 -561
  452. package/build/_deps/benchmark-src/test/user_counters_thousands_test.cc +0 -186
  453. package/build/_deps/benchmark-src/tools/BUILD.bazel +0 -19
  454. package/build/_deps/benchmark-src/tools/compare.py +0 -432
  455. package/build/_deps/benchmark-src/tools/gbench/Inputs/test1_run1.json +0 -127
  456. package/build/_deps/benchmark-src/tools/gbench/Inputs/test1_run2.json +0 -127
  457. package/build/_deps/benchmark-src/tools/gbench/Inputs/test2_run.json +0 -81
  458. package/build/_deps/benchmark-src/tools/gbench/Inputs/test3_run0.json +0 -65
  459. package/build/_deps/benchmark-src/tools/gbench/Inputs/test3_run1.json +0 -65
  460. package/build/_deps/benchmark-src/tools/gbench/Inputs/test4_run.json +0 -96
  461. package/build/_deps/benchmark-src/tools/gbench/Inputs/test4_run0.json +0 -21
  462. package/build/_deps/benchmark-src/tools/gbench/Inputs/test4_run1.json +0 -21
  463. package/build/_deps/benchmark-src/tools/gbench/__init__.py +0 -8
  464. package/build/_deps/benchmark-src/tools/gbench/report.py +0 -1201
  465. package/build/_deps/benchmark-src/tools/gbench/util.py +0 -203
  466. package/build/_deps/benchmark-src/tools/libpfm.BUILD.bazel +0 -22
  467. package/build/_deps/benchmark-src/tools/requirements.txt +0 -2
  468. package/build/_deps/benchmark-src/tools/strip_asm.py +0 -151
  469. package/build/_deps/benchmark-subbuild/CMakeCache.txt +0 -133
  470. package/build/_deps/benchmark-subbuild/CMakeFiles/4.0.3/CMakeSystem.cmake +0 -15
  471. package/build/_deps/benchmark-subbuild/CMakeFiles/CMakeConfigureLog.yaml +0 -11
  472. package/build/_deps/benchmark-subbuild/CMakeFiles/CMakeDirectoryInformation.cmake +0 -16
  473. package/build/_deps/benchmark-subbuild/CMakeFiles/CMakeRuleHashes.txt +0 -11
  474. package/build/_deps/benchmark-subbuild/CMakeFiles/InstallScripts.json +0 -7
  475. package/build/_deps/benchmark-subbuild/CMakeFiles/Makefile.cmake +0 -52
  476. package/build/_deps/benchmark-subbuild/CMakeFiles/Makefile2 +0 -122
  477. package/build/_deps/benchmark-subbuild/CMakeFiles/TargetDirectories.txt +0 -3
  478. package/build/_deps/benchmark-subbuild/CMakeFiles/benchmark-populate-complete +0 -0
  479. package/build/_deps/benchmark-subbuild/CMakeFiles/benchmark-populate.dir/DependInfo.cmake +0 -22
  480. package/build/_deps/benchmark-subbuild/CMakeFiles/benchmark-populate.dir/Labels.json +0 -46
  481. package/build/_deps/benchmark-subbuild/CMakeFiles/benchmark-populate.dir/Labels.txt +0 -14
  482. package/build/_deps/benchmark-subbuild/CMakeFiles/benchmark-populate.dir/build.make +0 -162
  483. package/build/_deps/benchmark-subbuild/CMakeFiles/benchmark-populate.dir/cmake_clean.cmake +0 -17
  484. package/build/_deps/benchmark-subbuild/CMakeFiles/benchmark-populate.dir/compiler_depend.make +0 -2
  485. package/build/_deps/benchmark-subbuild/CMakeFiles/benchmark-populate.dir/compiler_depend.ts +0 -2
  486. package/build/_deps/benchmark-subbuild/CMakeFiles/benchmark-populate.dir/progress.make +0 -10
  487. package/build/_deps/benchmark-subbuild/CMakeFiles/cmake.check_cache +0 -1
  488. package/build/_deps/benchmark-subbuild/CMakeFiles/progress.marks +0 -1
  489. package/build/_deps/benchmark-subbuild/CMakeLists.txt +0 -42
  490. package/build/_deps/benchmark-subbuild/Makefile +0 -162
  491. package/build/_deps/benchmark-subbuild/benchmark-populate-prefix/src/benchmark-populate-stamp/benchmark-populate-build +0 -0
  492. package/build/_deps/benchmark-subbuild/benchmark-populate-prefix/src/benchmark-populate-stamp/benchmark-populate-configure +0 -0
  493. package/build/_deps/benchmark-subbuild/benchmark-populate-prefix/src/benchmark-populate-stamp/benchmark-populate-done +0 -0
  494. package/build/_deps/benchmark-subbuild/benchmark-populate-prefix/src/benchmark-populate-stamp/benchmark-populate-download +0 -0
  495. package/build/_deps/benchmark-subbuild/benchmark-populate-prefix/src/benchmark-populate-stamp/benchmark-populate-gitclone-lastrun.txt +0 -15
  496. package/build/_deps/benchmark-subbuild/benchmark-populate-prefix/src/benchmark-populate-stamp/benchmark-populate-gitinfo.txt +0 -15
  497. package/build/_deps/benchmark-subbuild/benchmark-populate-prefix/src/benchmark-populate-stamp/benchmark-populate-install +0 -0
  498. package/build/_deps/benchmark-subbuild/benchmark-populate-prefix/src/benchmark-populate-stamp/benchmark-populate-mkdir +0 -0
  499. package/build/_deps/benchmark-subbuild/benchmark-populate-prefix/src/benchmark-populate-stamp/benchmark-populate-patch +0 -0
  500. package/build/_deps/benchmark-subbuild/benchmark-populate-prefix/src/benchmark-populate-stamp/benchmark-populate-patch-info.txt +0 -6
  501. package/build/_deps/benchmark-subbuild/benchmark-populate-prefix/src/benchmark-populate-stamp/benchmark-populate-test +0 -0
  502. package/build/_deps/benchmark-subbuild/benchmark-populate-prefix/src/benchmark-populate-stamp/benchmark-populate-update-info.txt +0 -7
  503. package/build/_deps/benchmark-subbuild/benchmark-populate-prefix/tmp/benchmark-populate-cfgcmd.txt +0 -1
  504. package/build/_deps/benchmark-subbuild/benchmark-populate-prefix/tmp/benchmark-populate-gitclone.cmake +0 -87
  505. package/build/_deps/benchmark-subbuild/benchmark-populate-prefix/tmp/benchmark-populate-gitupdate.cmake +0 -317
  506. package/build/_deps/benchmark-subbuild/benchmark-populate-prefix/tmp/benchmark-populate-mkdirs.cmake +0 -27
  507. package/build/_deps/benchmark-subbuild/cmake_install.cmake +0 -56
  508. package/build/bin/avl-rb-range-search-benchmark +0 -0
  509. package/build/bin/avl-tree-benchmark +0 -0
  510. package/build/bin/deque-benchmark +0 -0
  511. package/build/bin/doubly-linked-list-benchmark +0 -0
  512. package/build/bin/hash-map-benchmark +0 -0
  513. package/build/bin/heap-benchmark +0 -0
  514. package/build/bin/priority-queue-benchmark +0 -0
  515. package/build/bin/queue-benchmark +0 -0
  516. package/build/bin/red-black-tree-benchmark +0 -0
  517. package/build/bin/singly-linked-list-benchmark +0 -0
  518. package/build/bin/stack-benchmark +0 -0
  519. package/build/bin/tree-map-benchmark +0 -0
  520. package/build/bin/tree-multi-map-benchmark +0 -0
  521. package/build/bin/tree-multi-set-benchmark +0 -0
  522. package/build/bin/tree-set-benchmark +0 -0
  523. package/build/cmake_install.cmake +0 -66
  524. package/dist/cjs/index.cjs.map +0 -1
  525. package/dist/cjs-legacy/index.cjs.map +0 -1
  526. package/dist/esm/index.mjs.map +0 -1
  527. package/dist/esm-legacy/index.mjs.map +0 -1
  528. package/dist/umd/data-structure-typed.js.map +0 -1
  529. package/dist/umd/data-structure-typed.min.js.map +0 -1
  530. package/eslint.config.mjs +0 -73
  531. package/test/config.ts +0 -4
  532. package/test/integration/all-in-one.test.ts +0 -110
  533. package/test/integration/avl-tree.test.ts +0 -127
  534. package/test/integration/bst.test.ts +0 -385
  535. package/test/integration/compile.test.mjs +0 -159
  536. package/test/integration/compile.test.ts +0 -176
  537. package/test/integration/heap.test.js +0 -21
  538. package/test/integration/index.html +0 -462
  539. package/test/performance/benchmark-runner-enhanced.mjs +0 -818
  540. package/test/performance/cmake-benchmark-runner.mjs +0 -234
  541. package/test/performance/data-structures/binary-tree/avl-rb-range-search.test.cpp +0 -112
  542. package/test/performance/data-structures/binary-tree/avl-rb-range-search.test.mjs +0 -51
  543. package/test/performance/data-structures/binary-tree/avl-tree.test.cpp +0 -181
  544. package/test/performance/data-structures/binary-tree/avl-tree.test.mjs +0 -138
  545. package/test/performance/data-structures/binary-tree/binary-tree-overall.test.mjs +0 -85
  546. package/test/performance/data-structures/binary-tree/binary-tree.test.mjs +0 -100
  547. package/test/performance/data-structures/binary-tree/bst.test.mjs +0 -61
  548. package/test/performance/data-structures/binary-tree/red-black-tree-cjs.test.mjs +0 -259
  549. package/test/performance/data-structures/binary-tree/red-black-tree.test.cpp +0 -213
  550. package/test/performance/data-structures/binary-tree/red-black-tree.test.mjs +0 -275
  551. package/test/performance/data-structures/binary-tree/tree-map.test.cpp +0 -129
  552. package/test/performance/data-structures/binary-tree/tree-map.test.mjs +0 -171
  553. package/test/performance/data-structures/binary-tree/tree-multi-map.test.cpp +0 -205
  554. package/test/performance/data-structures/binary-tree/tree-multi-map.test.mjs +0 -106
  555. package/test/performance/data-structures/binary-tree/tree-multi-set.test.cpp +0 -217
  556. package/test/performance/data-structures/binary-tree/tree-multi-set.test.mjs +0 -91
  557. package/test/performance/data-structures/binary-tree/tree-set.test.cpp +0 -127
  558. package/test/performance/data-structures/binary-tree/tree-set.test.mjs +0 -174
  559. package/test/performance/data-structures/comparison/comparison.test.mjs +0 -99
  560. package/test/performance/data-structures/graph/directed-graph.test.mjs +0 -38
  561. package/test/performance/data-structures/hash/hash-map.test.cpp +0 -183
  562. package/test/performance/data-structures/hash/hash-map.test.mjs +0 -187
  563. package/test/performance/data-structures/heap/heap.test.cpp +0 -61
  564. package/test/performance/data-structures/heap/heap.test.mjs +0 -31
  565. package/test/performance/data-structures/linked-list/doubly-linked-list.test.cpp +0 -84
  566. package/test/performance/data-structures/linked-list/doubly-linked-list.test.mjs +0 -125
  567. package/test/performance/data-structures/linked-list/singly-linked-list.test.cpp +0 -77
  568. package/test/performance/data-structures/linked-list/singly-linked-list.test.mjs +0 -84
  569. package/test/performance/data-structures/priority-queue/max-priority-queue.test.mjs +0 -40
  570. package/test/performance/data-structures/priority-queue/priority-queue.test.cpp +0 -59
  571. package/test/performance/data-structures/priority-queue/priority-queue.test.mjs +0 -64
  572. package/test/performance/data-structures/queue/deque.test.cpp +0 -119
  573. package/test/performance/data-structures/queue/deque.test.mjs +0 -144
  574. package/test/performance/data-structures/queue/queue.test.cpp +0 -59
  575. package/test/performance/data-structures/queue/queue.test.mjs +0 -77
  576. package/test/performance/data-structures/stack/stack.test.cpp +0 -40
  577. package/test/performance/data-structures/stack/stack.test.mjs +0 -69
  578. package/test/performance/data-structures/trie/trie.test.mjs +0 -43
  579. package/test/performance/reportor-enhanced.mjs +0 -1027
  580. package/test/performance/runner-config.json +0 -51
  581. package/test/types/index.ts +0 -1
  582. package/test/types/utils/big-o.ts +0 -1
  583. package/test/types/utils/index.ts +0 -2
  584. package/test/types/utils/json2html.ts +0 -5
  585. package/test/unit/data-structures/base/iterable-element-base.coverage.test.ts +0 -106
  586. package/test/unit/data-structures/base/iterable-element-base.more-branches.coverage.test.ts +0 -61
  587. package/test/unit/data-structures/base/linear-base.array.coverage.test.ts +0 -168
  588. package/test/unit/data-structures/base/linear-base.concat-else.coverage.test.ts +0 -82
  589. package/test/unit/data-structures/base/linear-base.coverage.test.ts +0 -72
  590. package/test/unit/data-structures/base/linear-base.more-branches.coverage.test.ts +0 -414
  591. package/test/unit/data-structures/binary-tree/avl-tree-node.familyPosition-root-left.coverage.test.ts +0 -17
  592. package/test/unit/data-structures/binary-tree/avl-tree.more-branches-2.coverage.test.ts +0 -99
  593. package/test/unit/data-structures/binary-tree/avl-tree.test.ts +0 -729
  594. package/test/unit/data-structures/binary-tree/binary-index-tree.test.ts +0 -345
  595. package/test/unit/data-structures/binary-tree/binary-indexed-tree.more-branches.coverage.test.ts +0 -18
  596. package/test/unit/data-structures/binary-tree/binary-tree.more-branches.coverage.test.ts +0 -56
  597. package/test/unit/data-structures/binary-tree/binary-tree.remaining-branches.coverage.test.ts +0 -232
  598. package/test/unit/data-structures/binary-tree/binary-tree.test.ts +0 -1912
  599. package/test/unit/data-structures/binary-tree/bst.bound-by-predicate.coverage.test.ts +0 -33
  600. package/test/unit/data-structures/binary-tree/bst.coverage.test.ts +0 -94
  601. package/test/unit/data-structures/binary-tree/bst.deletebykey.coverage.test.ts +0 -70
  602. package/test/unit/data-structures/binary-tree/bst.deletewhere.coverage.test.ts +0 -37
  603. package/test/unit/data-structures/binary-tree/bst.floor-lower-predicate.coverage.test.ts +0 -29
  604. package/test/unit/data-structures/binary-tree/bst.floor-setmany.coverage.test.ts +0 -72
  605. package/test/unit/data-structures/binary-tree/bst.getnode.range-ensure.coverage.test.ts +0 -22
  606. package/test/unit/data-structures/binary-tree/bst.misc-branches.coverage.test.ts +0 -100
  607. package/test/unit/data-structures/binary-tree/bst.more-branches-2.coverage.test.ts +0 -133
  608. package/test/unit/data-structures/binary-tree/bst.more-branches-3.coverage.test.ts +0 -45
  609. package/test/unit/data-structures/binary-tree/bst.more-branches-4.coverage.test.ts +0 -36
  610. package/test/unit/data-structures/binary-tree/bst.more-branches-5.coverage.test.ts +0 -40
  611. package/test/unit/data-structures/binary-tree/bst.more.coverage.test.ts +0 -39
  612. package/test/unit/data-structures/binary-tree/bst.node-family.coverage.test.ts +0 -29
  613. package/test/unit/data-structures/binary-tree/bst.range-pruning.coverage.test.ts +0 -43
  614. package/test/unit/data-structures/binary-tree/bst.search-fastpath.coverage.test.ts +0 -30
  615. package/test/unit/data-structures/binary-tree/bst.test.ts +0 -3472
  616. package/test/unit/data-structures/binary-tree/data/cost-of-living-by-country.ts +0 -259
  617. package/test/unit/data-structures/binary-tree/overall.test.ts +0 -219
  618. package/test/unit/data-structures/binary-tree/red-black-tree.boundary-corruption-repair.coverage.test.ts +0 -66
  619. package/test/unit/data-structures/binary-tree/red-black-tree.boundary-max-update.coverage.test.ts +0 -18
  620. package/test/unit/data-structures/binary-tree/red-black-tree.boundary-null.coverage.test.ts +0 -53
  621. package/test/unit/data-structures/binary-tree/red-black-tree.boundary-stale-cache.coverage.test.ts +0 -25
  622. package/test/unit/data-structures/binary-tree/red-black-tree.boundary-update.coverage.test.ts +0 -23
  623. package/test/unit/data-structures/binary-tree/red-black-tree.cache-delete.coverage.test.ts +0 -49
  624. package/test/unit/data-structures/binary-tree/red-black-tree.cache-edge.coverage.test.ts +0 -37
  625. package/test/unit/data-structures/binary-tree/red-black-tree.cache-stale-insert.coverage.test.ts +0 -39
  626. package/test/unit/data-structures/binary-tree/red-black-tree.coverage.test.ts +0 -334
  627. package/test/unit/data-structures/binary-tree/red-black-tree.delete-fixup.coverage.test.ts +0 -68
  628. package/test/unit/data-structures/binary-tree/red-black-tree.delete-successor.coverage.test.ts +0 -75
  629. package/test/unit/data-structures/binary-tree/red-black-tree.factories.coverage.test.ts +0 -26
  630. package/test/unit/data-structures/binary-tree/red-black-tree.hint-cache-compare-update.coverage.test.ts +0 -74
  631. package/test/unit/data-structures/binary-tree/red-black-tree.hint-cache-no-update.coverage.test.ts +0 -44
  632. package/test/unit/data-structures/binary-tree/red-black-tree.hint-cache-nullish.coverage.test.ts +0 -61
  633. package/test/unit/data-structures/binary-tree/red-black-tree.hint-mapmode-defined.coverage.test.ts +0 -35
  634. package/test/unit/data-structures/binary-tree/red-black-tree.hint-mapmode-undefined.coverage.test.ts +0 -43
  635. package/test/unit/data-structures/binary-tree/red-black-tree.hint-more.coverage.test.ts +0 -99
  636. package/test/unit/data-structures/binary-tree/red-black-tree.hint.coverage.test.ts +0 -60
  637. package/test/unit/data-structures/binary-tree/red-black-tree.insert-cache-nullish.coverage.test.ts +0 -29
  638. package/test/unit/data-structures/binary-tree/red-black-tree.insert-header-parent-nullish.coverage.test.ts +0 -17
  639. package/test/unit/data-structures/binary-tree/red-black-tree.internal-walk.coverage.test.ts +0 -57
  640. package/test/unit/data-structures/binary-tree/red-black-tree.minmax-cache.test.ts +0 -65
  641. package/test/unit/data-structures/binary-tree/red-black-tree.misc-inputs.coverage.test.ts +0 -17
  642. package/test/unit/data-structures/binary-tree/red-black-tree.more-branches-2.coverage.test.ts +0 -121
  643. package/test/unit/data-structures/binary-tree/red-black-tree.more-branches-3.coverage.test.ts +0 -55
  644. package/test/unit/data-structures/binary-tree/red-black-tree.more-branches-4.coverage.test.ts +0 -44
  645. package/test/unit/data-structures/binary-tree/red-black-tree.predsucc.coverage.test.ts +0 -40
  646. package/test/unit/data-structures/binary-tree/red-black-tree.remaining-branches.coverage.test.ts +0 -123
  647. package/test/unit/data-structures/binary-tree/red-black-tree.set-inputs.coverage.test.ts +0 -64
  648. package/test/unit/data-structures/binary-tree/red-black-tree.setkvnode-parent-cache.coverage.test.ts +0 -79
  649. package/test/unit/data-structures/binary-tree/red-black-tree.setkvnode-remaining.coverage.test.ts +0 -44
  650. package/test/unit/data-structures/binary-tree/red-black-tree.setkvnode-uncovered.coverage.test.ts +0 -74
  651. package/test/unit/data-structures/binary-tree/red-black-tree.test.ts +0 -936
  652. package/test/unit/data-structures/binary-tree/red-black-tree.update-branches.coverage.test.ts +0 -30
  653. package/test/unit/data-structures/binary-tree/segment-tree.more-branches.coverage.test.ts +0 -31
  654. package/test/unit/data-structures/binary-tree/segment-tree.test.ts +0 -104
  655. package/test/unit/data-structures/binary-tree/tree-map.test.ts +0 -316
  656. package/test/unit/data-structures/binary-tree/tree-multi-map.coverage.test.ts +0 -245
  657. package/test/unit/data-structures/binary-tree/tree-multi-map.legacy.test.ts.skip +0 -1115
  658. package/test/unit/data-structures/binary-tree/tree-multi-map.more-branches-2.coverage.test.ts.skip +0 -59
  659. package/test/unit/data-structures/binary-tree/tree-multi-map.rfc.test.ts +0 -146
  660. package/test/unit/data-structures/binary-tree/tree-multi-map.simplified.test.ts +0 -482
  661. package/test/unit/data-structures/binary-tree/tree-multi-set.test.ts +0 -594
  662. package/test/unit/data-structures/binary-tree/tree-set.test.ts +0 -231
  663. package/test/unit/data-structures/graph/abstract-graph.more-branches-2.coverage.test.ts +0 -40
  664. package/test/unit/data-structures/graph/abstract-graph.more-branches-3.coverage.test.ts +0 -65
  665. package/test/unit/data-structures/graph/abstract-graph.more-branches-4.coverage.test.ts +0 -98
  666. package/test/unit/data-structures/graph/abstract-graph.more-branches-5.coverage.test.ts +0 -51
  667. package/test/unit/data-structures/graph/abstract-graph.more-branches.coverage.test.ts +0 -62
  668. package/test/unit/data-structures/graph/abstract-graph.test.ts +0 -117
  669. package/test/unit/data-structures/graph/directed-graph.more-branches-2.coverage.test.ts +0 -38
  670. package/test/unit/data-structures/graph/directed-graph.more-branches-3.coverage.test.ts +0 -25
  671. package/test/unit/data-structures/graph/directed-graph.more-branches.coverage.test.ts +0 -82
  672. package/test/unit/data-structures/graph/directed-graph.test.ts +0 -1185
  673. package/test/unit/data-structures/graph/map-graph.more-branches.coverage.test.ts +0 -22
  674. package/test/unit/data-structures/graph/map-graph.test.ts +0 -148
  675. package/test/unit/data-structures/graph/overall.test.ts +0 -49
  676. package/test/unit/data-structures/graph/salty-edges.json +0 -875
  677. package/test/unit/data-structures/graph/salty-vertexes.json +0 -200
  678. package/test/unit/data-structures/graph/undirected-graph.more-branches-2.coverage.test.ts +0 -35
  679. package/test/unit/data-structures/graph/undirected-graph.more-branches.coverage.test.ts +0 -87
  680. package/test/unit/data-structures/graph/undirected-graph.test.ts +0 -782
  681. package/test/unit/data-structures/hash/hash-map.more-branches.coverage.test.ts +0 -64
  682. package/test/unit/data-structures/hash/hash-map.test.ts +0 -1125
  683. package/test/unit/data-structures/hash/hash-map.toEntryFn-branch.coverage.test.ts +0 -9
  684. package/test/unit/data-structures/heap/heap.misc-branches.coverage.test.ts +0 -110
  685. package/test/unit/data-structures/heap/heap.remaining-branches.coverage.test.ts +0 -22
  686. package/test/unit/data-structures/heap/heap.test.ts +0 -760
  687. package/test/unit/data-structures/heap/max-heap.coverage.test.ts +0 -29
  688. package/test/unit/data-structures/heap/max-heap.test.ts +0 -98
  689. package/test/unit/data-structures/heap/min-heap.test.ts +0 -117
  690. package/test/unit/data-structures/linked-list/doubly-linked-list.more-branches.coverage.test.ts +0 -72
  691. package/test/unit/data-structures/linked-list/doubly-linked-list.test.ts +0 -1150
  692. package/test/unit/data-structures/linked-list/linked-list.test.ts +0 -8
  693. package/test/unit/data-structures/linked-list/linked-list.unshiftMany-else.coverage.test.ts +0 -15
  694. package/test/unit/data-structures/linked-list/singly-linked-list.coverage.test.ts +0 -221
  695. package/test/unit/data-structures/linked-list/singly-linked-list.more-branches.coverage.test.ts +0 -86
  696. package/test/unit/data-structures/linked-list/singly-linked-list.test.ts +0 -836
  697. package/test/unit/data-structures/linked-list/skip-linked-list.more-branches.coverage.test.ts +0 -31
  698. package/test/unit/data-structures/linked-list/skip-linked-list.test.ts +0 -13
  699. package/test/unit/data-structures/linked-list/skip-list.test.ts +0 -86
  700. package/test/unit/data-structures/matrix/matrix.more-branches.coverage.test.ts +0 -81
  701. package/test/unit/data-structures/matrix/matrix.pivotElement-nullish.coverage.test.ts +0 -28
  702. package/test/unit/data-structures/matrix/matrix.test.ts +0 -377
  703. package/test/unit/data-structures/matrix/navigator.test.ts +0 -244
  704. package/test/unit/data-structures/priority-queue/max-priority-queue.more-branches.coverage.test.ts +0 -10
  705. package/test/unit/data-structures/priority-queue/max-priority-queue.test.ts +0 -160
  706. package/test/unit/data-structures/priority-queue/min-priority-queue.test.ts +0 -78
  707. package/test/unit/data-structures/priority-queue/priority-queue.coverage.test.ts +0 -21
  708. package/test/unit/data-structures/priority-queue/priority-queue.test.ts +0 -101
  709. package/test/unit/data-structures/queue/deque.coverage.test.ts +0 -173
  710. package/test/unit/data-structures/queue/deque.more-branches-2.coverage.test.ts +0 -39
  711. package/test/unit/data-structures/queue/deque.more-branches-3.coverage.test.ts +0 -9
  712. package/test/unit/data-structures/queue/deque.more-branches.coverage.test.ts +0 -95
  713. package/test/unit/data-structures/queue/deque.test.ts +0 -936
  714. package/test/unit/data-structures/queue/queue.coverage.test.ts +0 -138
  715. package/test/unit/data-structures/queue/queue.more-branches-2.coverage.test.ts +0 -27
  716. package/test/unit/data-structures/queue/queue.test.ts +0 -703
  717. package/test/unit/data-structures/stack/stack.coverage.test.ts +0 -112
  718. package/test/unit/data-structures/stack/stack.test.ts +0 -438
  719. package/test/unit/data-structures/tree/tree.more-branches.coverage.test.ts +0 -9
  720. package/test/unit/data-structures/tree/tree.test.ts +0 -58
  721. package/test/unit/data-structures/trie/trie.more-branches-2.coverage.test.ts +0 -51
  722. package/test/unit/data-structures/trie/trie.test.ts +0 -1181
  723. package/test/unit/unrestricted-interconversion.test.ts +0 -299
  724. package/test/unit/utils/utils.test.ts +0 -174
  725. package/test/utils/array.ts +0 -5517
  726. package/test/utils/big-o.ts +0 -228
  727. package/test/utils/console.ts +0 -31
  728. package/test/utils/index.ts +0 -8
  729. package/test/utils/is.ts +0 -56
  730. package/test/utils/json2html.ts +0 -164
  731. package/test/utils/number.ts +0 -13
  732. package/test/utils/patch.ts +0 -33
  733. package/test/utils/perf.mjs +0 -34
  734. package/test/utils/performanc.ts +0 -7
  735. package/test/utils/string.ts +0 -49
  736. package/tsconfig.types.json +0 -15
  737. package/tsup.config.js +0 -63
  738. package/tsup.umd.config.js +0 -29
@@ -1,818 +0,0 @@
1
- /**
2
- * Enhanced Benchmark Runner - JavaScript + C++ Support (FIXED)
3
- * Combines JavaScript and C++ benchmark execution into a unified pipeline
4
- * ✨ Fixed: Dynamic C++ executable discovery based on test files
5
- * ✨ Fixed: Config rules now work properly for C++ files
6
- * ✨ Fixed: Glob pattern matching with proper ** support
7
- * ✨ NEW: Detailed progress tracking and file-level logging
8
- * ✨ NEW: Number formatting in test case names (1000000 -> 1M)
9
- */
10
-
11
- import * as Benchmark from 'benchmark';
12
- import * as path from 'path';
13
- import * as fs from 'fs';
14
- import fastGlob from 'fast-glob';
15
- import { fileURLToPath } from 'url';
16
- import {
17
- compileCppBenchmarks,
18
- runCppBenchmark,
19
- discoverCppBenchmarks
20
- } from './cmake-benchmark-runner.mjs';
21
-
22
- const __filename = fileURLToPath(import.meta.url);
23
- const __dirname = path.dirname(__filename);
24
-
25
- // Color codes
26
- const GREEN = '\x1b[32m';
27
- const BOLD = '\x1b[1m';
28
- const END = '\x1b[0m';
29
- const YELLOW = '\x1b[33m';
30
- const CYAN = '\x1b[36m';
31
- const RED = '\x1b[31m';
32
- const GRAY = '\x1b[90m';
33
- const BLUE = '\x1b[34m';
34
- const MAGENTA = '\x1b[35m';
35
-
36
- // Incremental results file path
37
- const PARTIAL_RESULTS_FILE = path.join(__dirname, '../../benchmark/partial-results.json');
38
-
39
- // Progress tracking
40
- let currentFile = '';
41
- let currentIndex = 0;
42
- let totalFiles = 0;
43
-
44
- function getProgressBar(current, total, width = 30) {
45
- const percentage = (current / total) * 100;
46
- const filledWidth = Math.round((width * current) / total);
47
- const emptyWidth = width - filledWidth;
48
- const filled = '█'.repeat(filledWidth);
49
- const empty = '░'.repeat(emptyWidth);
50
- return `${filled}${empty} ${percentage.toFixed(0)}%`;
51
- }
52
-
53
- function printProgressHeader(type, current, total) {
54
- const progressBar = getProgressBar(current, total, 25);
55
- const status = `[${current}/${total}]`;
56
- console.log(
57
- `\n${MAGENTA}${progressBar}${END} ${status} ${BOLD}${type}${END}`
58
- );
59
- }
60
-
61
- function printFileLoading(fileName, index, total, type) {
62
- const progressBar = getProgressBar(index, total, 20);
63
- console.log(
64
- ` ${progressBar} ${CYAN}↳${END} ${GRAY}[${index}/${total}]${END} ${type}: ${BOLD}${fileName}${END}`
65
- );
66
- }
67
-
68
- function printFileComplete(fileName, index, total, benchmarkCount, runTime) {
69
- console.log(
70
- ` ${GREEN}✓${END} ${GRAY}[${index}/${total}]${END} ${fileName} - ${benchmarkCount} benchmarks (${runTime.toFixed(2)}s)`
71
- );
72
- }
73
-
74
- function printFileError(fileName, index, total, error) {
75
- console.log(
76
- ` ${RED}✗${END} ${GRAY}[${index}/${total}]${END} ${fileName} - ${YELLOW}${error}${END}`
77
- );
78
- }
79
-
80
- function parseArgs(argv) {
81
- const flags = {
82
- isolate: false,
83
- gc: false,
84
- cooldownMs: 50,
85
- shuffle: false,
86
- order: undefined,
87
- orderFile: undefined,
88
- include: undefined,
89
- exclude: undefined,
90
- label: undefined,
91
- cppOnly: false,
92
- jsOnly: false,
93
- resume: false, // Resume from partial results
94
- fresh: false, // Clear partial results and start fresh
95
- fullFresh: false // Clear partial results AND existing report.json (no merge)
96
- };
97
-
98
- const filters = [];
99
-
100
- argv.forEach(raw => {
101
- if (!raw.startsWith('--')) {
102
- filters.push(raw);
103
- return;
104
- }
105
-
106
- const [k, v] = raw.replace(/^--/, '').split('=');
107
- switch (k) {
108
- case 'isolate':
109
- flags.isolate = true;
110
- break;
111
- case 'gc':
112
- flags.gc = true;
113
- break;
114
- case 'shuffle':
115
- flags.shuffle = true;
116
- break;
117
- case 'cpp-only':
118
- flags.cppOnly = true;
119
- break;
120
- case 'js-only':
121
- flags.jsOnly = true;
122
- break;
123
- case 'resume':
124
- flags.resume = true;
125
- break;
126
- case 'fresh':
127
- flags.fresh = true;
128
- break;
129
- case 'full-fresh':
130
- flags.fullFresh = true;
131
- flags.fresh = true; // full-fresh implies fresh
132
- break;
133
- case 'cooldown-ms':
134
- flags.cooldownMs = v ? Number(v) : flags.cooldownMs;
135
- break;
136
- case 'order':
137
- flags.order = (v ?? '')
138
- .split(',')
139
- .map(s => s.trim())
140
- .filter(Boolean);
141
- break;
142
- case 'order-file':
143
- flags.orderFile = v || '';
144
- break;
145
- case 'include':
146
- flags.include = (v ?? '')
147
- .split(',')
148
- .map(s => s.trim())
149
- .filter(Boolean);
150
- break;
151
- case 'exclude':
152
- flags.exclude = (v ?? '')
153
- .split(',')
154
- .map(s => s.trim())
155
- .filter(Boolean);
156
- break;
157
- case 'label':
158
- flags.label = v || '';
159
- break;
160
- default:
161
- break;
162
- }
163
- });
164
-
165
- return { flags, filters };
166
- }
167
-
168
- const argv = process.argv.slice(2);
169
- const { flags, filters } = parseArgs(argv);
170
-
171
- function loadRunConfigFromFile(filePath) {
172
- const p1 = filePath
173
- ? path.resolve(process.cwd(), filePath)
174
- : path.resolve(__dirname, 'runner-config.json');
175
- const p2 = filePath ? undefined : path.resolve(__dirname, 'run-order.json');
176
-
177
- const candidates = [p1, p2].filter(Boolean);
178
-
179
- for (const p of candidates) {
180
- try {
181
- if (fs.existsSync(p)) {
182
- const data = JSON.parse(fs.readFileSync(p, 'utf8'));
183
-
184
- if (Array.isArray(data)) {
185
- console.log(`${YELLOW}ℹ Using run config from file:${END} ${p}`);
186
- return { order: data };
187
- } else if (data && typeof data === 'object') {
188
- const cfg = {};
189
-
190
- if (Array.isArray(data.order))
191
- cfg.order = data.order.filter(x => typeof x === 'string');
192
- if (Array.isArray(data.include))
193
- cfg.include = data.include.filter(x => typeof x === 'string');
194
- if (Array.isArray(data.exclude))
195
- cfg.exclude = data.exclude.filter(x => typeof x === 'string');
196
- if (typeof data.label === 'string') cfg.label = data.label;
197
-
198
- console.log(`${YELLOW}ℹ Using run config from file:${END} ${p}`);
199
- return cfg;
200
- }
201
- }
202
- } catch (e) {
203
- console.warn(`Failed to load run config from ${p}:`, e.message);
204
- }
205
- }
206
-
207
- return null;
208
- }
209
-
210
- let cfg = loadRunConfigFromFile(flags.orderFile) || {};
211
-
212
- // Merge command-line flags into config (CLI takes precedence)
213
- if (flags.include) cfg.include = flags.include;
214
- if (flags.exclude) cfg.exclude = flags.exclude;
215
- if (flags.order) cfg.order = flags.order;
216
- if (flags.label) cfg.label = flags.label;
217
-
218
- const parentDirectory = path.resolve(__dirname, '../..');
219
- const reportDistPath = path.join(parentDirectory, 'benchmark');
220
- const testDir = path.join(__dirname, 'data-structures');
221
-
222
- // Helper function to match glob patterns (supports **/ correctly)
223
- function matchesGlobPattern(filePath, pattern) {
224
- // Convert glob pattern to regex.
225
- // IMPORTANT: treat "**/" as an optional directory prefix, so patterns like
226
- // "binary-tree/**/*.test.cpp" match both:
227
- // - binary-tree/red-black-tree.test.cpp
228
- // - binary-tree/foo/bar/baz.test.cpp
229
- const globToRegex = (glob) => {
230
- // Escape special regex chars (but keep glob tokens * and ? intact for later).
231
- let re = glob.replace(/[.+^${}()|[\]\\]/g, '\\$&');
232
-
233
- // Protect literal "?" glob tokens so we don't corrupt regex syntax we inject later (e.g. "(?:").
234
- re = re.replace(/\?/g, '___QM___');
235
-
236
- // "**/" -> optional nested directories
237
- re = re.replace(/\*\*\//g, '(?:.*\\/)?');
238
- // remaining "**" -> anything
239
- re = re.replace(/\*\*/g, '.*');
240
- // "*" -> anything but '/'
241
- re = re.replace(/\*/g, '[^/]*');
242
- // Restore glob '?' -> single char
243
- re = re.replace(/___QM___/g, '.');
244
-
245
- return new RegExp(`^${re}$`);
246
- };
247
-
248
- const fileName = path.basename(filePath);
249
- const testName = fileName.replace(/\.test\.(mjs|ts|cpp)$/, '');
250
- const relPath = path.relative(testDir, filePath).replace(/\\/g, '/');
251
- const regex = globToRegex(pattern);
252
-
253
- // Match against: full regex OR simple substring of test name
254
- // Note: pattern.includes(testName) was too loose and caused false positives for exclude patterns
255
- return regex.test(fileName) || regex.test(relPath) ||
256
- testName === pattern || testName.includes(pattern);
257
- }
258
-
259
- // Helper function to match files against CLI filters
260
- function matchesFilters(file, filterList) {
261
- if (!filterList || filterList.length === 0) return true;
262
-
263
- const fileName = path.basename(file);
264
- return filterList.some(
265
- word => fileName.includes(word) || file.includes(word)
266
- );
267
- }
268
-
269
- // Apply config rules (include, exclude, order) to file list
270
- function applyConfigRules(files, config) {
271
- if (!config) return files;
272
-
273
- let filtered = [...files];
274
-
275
- // Apply include patterns
276
- if (config.include && config.include.length > 0) {
277
- filtered = filtered.filter(file =>
278
- config.include.some(pattern => matchesGlobPattern(file, pattern))
279
- );
280
- }
281
-
282
- // Apply exclude patterns
283
- if (config.exclude && config.exclude.length > 0) {
284
- filtered = filtered.filter(
285
- file =>
286
- !config.exclude.some(pattern => matchesGlobPattern(file, pattern))
287
- );
288
- }
289
-
290
- // Apply order
291
- if (config.order && config.order.length > 0) {
292
- filtered.sort((a, b) => {
293
- const nameA = path
294
- .basename(a, path.extname(a))
295
- .replace(/\.test$/, '');
296
- const nameB = path
297
- .basename(b, path.extname(b))
298
- .replace(/\.test$/, '');
299
-
300
- const indexA = config.order.findIndex(name => nameA.includes(name));
301
- const indexB = config.order.findIndex(name => nameB.includes(name));
302
-
303
- if (indexA === -1) return 1; // unmapped goes to end
304
- if (indexB === -1) return -1;
305
-
306
- return indexA - indexB;
307
- });
308
- }
309
-
310
- return filtered;
311
- }
312
-
313
- // Helper to apply config rules to C++ files (with .test.cpp translation)
314
- function applyCppConfigRules(files, config) {
315
- if (!config) return files;
316
-
317
- let filtered = [...files];
318
-
319
- // Apply include patterns - translate .test patterns to .test.cpp
320
- if (config.include && config.include.length > 0) {
321
- filtered = filtered.filter(file => {
322
- return config.include.some(pattern => {
323
- // Try matching as-is first (glob pattern like "binary-tree/**/*.test.cpp")
324
- if (matchesGlobPattern(file, pattern)) return true;
325
-
326
- // If pattern ends with .mjs/.ts, try replacing it with .cpp variants
327
- if (
328
- pattern.endsWith('.test.mjs') ||
329
- pattern.endsWith('.test.ts')
330
- ) {
331
- const cppPattern = pattern.replace(/\.test\.(mjs|ts)$/, '.test.cpp');
332
- if (matchesGlobPattern(file, cppPattern)) return true;
333
- }
334
-
335
- return false;
336
- });
337
- });
338
- }
339
-
340
- // Apply exclude patterns - translate .test patterns to .test.cpp
341
- if (config.exclude && config.exclude.length > 0) {
342
- filtered = filtered.filter(file => {
343
- return !config.exclude.some(pattern => {
344
- // Try matching as-is first
345
- if (matchesGlobPattern(file, pattern)) return true;
346
-
347
- // If pattern ends with .mjs/.ts, try replacing it with .cpp variants
348
- if (
349
- pattern.endsWith('.test.mjs') ||
350
- pattern.endsWith('.test.ts')
351
- ) {
352
- const cppPattern = pattern.replace(/\.test\.(mjs|ts)$/, '.test.cpp');
353
- if (matchesGlobPattern(file, cppPattern)) return true;
354
- }
355
-
356
- return false;
357
- });
358
- });
359
- }
360
-
361
- // Apply order
362
- if (config.order && config.order.length > 0) {
363
- filtered.sort((a, b) => {
364
- const nameA = path.basename(a, '.test.cpp');
365
- const nameB = path.basename(b, '.test.cpp');
366
-
367
- const indexA = config.order.findIndex(name => nameA.includes(name));
368
- const indexB = config.order.findIndex(name => nameB.includes(name));
369
-
370
- if (indexA === -1) return 1; // unmapped goes to end
371
- if (indexB === -1) return -1;
372
-
373
- return indexA - indexB;
374
- });
375
- }
376
-
377
- return filtered;
378
- }
379
-
380
- // JS Test Discovery
381
- const allJsFiles = !flags.cppOnly
382
- ? fastGlob.sync([
383
- path.join(testDir, '**', '*.test.ts'),
384
- path.join(testDir, '**', '*.test.mjs')
385
- ])
386
- : [];
387
-
388
- let jsTestFiles = [];
389
-
390
- if (filters.length > 0 && !flags.cppOnly) {
391
- jsTestFiles = allJsFiles.filter(file => matchesFilters(file, filters));
392
- } else if (!flags.cppOnly) {
393
- jsTestFiles = [...allJsFiles];
394
- }
395
-
396
- // Apply config rules to JS tests
397
- jsTestFiles = applyConfigRules(jsTestFiles, cfg);
398
-
399
- // C++ Test Discovery - with same filter logic as JS
400
- let allCppFiles = !flags.jsOnly
401
- ? fastGlob.sync([path.join(testDir, '**', '*.test.cpp')])
402
- : [];
403
-
404
- let cppTestFiles = [];
405
-
406
- if (filters.length > 0 && !flags.jsOnly) {
407
- cppTestFiles = allCppFiles.filter(file => matchesFilters(file, filters));
408
- } else if (!flags.jsOnly) {
409
- cppTestFiles = [...allCppFiles];
410
- }
411
-
412
- // Apply config rules to C++ tests (with proper pattern translation)
413
- cppTestFiles = applyCppConfigRules(cppTestFiles, cfg);
414
-
415
- console.log(`\n${BOLD}📊 Benchmark Discovery${END}`);
416
- console.log(` ${CYAN}JavaScript tests${END}: ${jsTestFiles.length} files`);
417
- console.log(` ${CYAN}C++ tests${END}: ${cppTestFiles.length} files`);
418
- console.log(` ${CYAN}Total${END}: ${jsTestFiles.length + cppTestFiles.length} files\n`);
419
-
420
- // Helper to format large numbers to readable units (1000000 -> 1M, 100000 -> 100K, etc.)
421
- function formatNumberInString(str) {
422
- if (!str || typeof str !== 'string') return str;
423
-
424
- // Replace large numbers with human-readable format
425
- return str.replace(/\b(\d+)\b/g, (match) => {
426
- const num = parseInt(match, 10);
427
-
428
- if (num >= 1000000) {
429
- const rounded = Math.round(num / 1000000 * 10) / 10;
430
- return rounded.toString().replace(/\.0$/, '') + 'M';
431
- } else if (num >= 1000) {
432
- const rounded = Math.round(num / 1000 * 10) / 10;
433
- return rounded.toString().replace(/\.0$/, '') + 'K';
434
- }
435
- return match;
436
- });
437
- }
438
-
439
- // Helper
440
- function numberFix(num, digits = 2) {
441
- return Number(num.toFixed(digits));
442
- }
443
-
444
- // ============ Incremental/Checkpoint Support ============
445
-
446
- function loadPartialResults() {
447
- try {
448
- if (fs.existsSync(PARTIAL_RESULTS_FILE)) {
449
- const data = JSON.parse(fs.readFileSync(PARTIAL_RESULTS_FILE, 'utf8'));
450
- console.log(`${CYAN}ℹ Loaded ${data.javascript?.length || 0} JS + ${data.cpp?.length || 0} C++ partial results${END}`);
451
- return data;
452
- }
453
- } catch (e) {
454
- console.log(`${YELLOW}⚠ Could not load partial results: ${e.message}${END}`);
455
- }
456
- return { javascript: [], cpp: [], completedTests: [] };
457
- }
458
-
459
- function savePartialResults(jsResults, cppResults, completedTests) {
460
- const dir = path.dirname(PARTIAL_RESULTS_FILE);
461
- if (!fs.existsSync(dir)) {
462
- fs.mkdirSync(dir, { recursive: true });
463
- }
464
-
465
- const data = {
466
- timestamp: new Date().toISOString(),
467
- javascript: jsResults,
468
- cpp: cppResults,
469
- completedTests: completedTests
470
- };
471
-
472
- fs.writeFileSync(PARTIAL_RESULTS_FILE, JSON.stringify(data, null, 2));
473
- console.log(`${GRAY} 💾 Checkpoint saved (${completedTests.length} tests)${END}`);
474
- }
475
-
476
- function clearPartialResults() {
477
- try {
478
- if (fs.existsSync(PARTIAL_RESULTS_FILE)) {
479
- fs.unlinkSync(PARTIAL_RESULTS_FILE);
480
- console.log(`${YELLOW}ℹ Cleared previous partial results${END}`);
481
- }
482
- } catch (e) {
483
- // ignore
484
- }
485
- }
486
-
487
- // ============ End Incremental Support ============
488
-
489
- /**
490
- * Merge new results into existing results by testName
491
- * Updates existing entries, adds new ones, preserves others
492
- */
493
- function mergeResults(existing, newResults) {
494
- const merged = new Map();
495
-
496
- // Add all existing results first
497
- for (const result of existing) {
498
- merged.set(result.testName, result);
499
- }
500
-
501
- // Update/add new results (overwrites existing with same testName)
502
- for (const result of newResults) {
503
- merged.set(result.testName, result);
504
- }
505
-
506
- return Array.from(merged.values());
507
- }
508
-
509
- async function generateUnifiedReport(jsResults, cppResults) {
510
- if (!fs.existsSync(reportDistPath)) {
511
- fs.mkdirSync(reportDistPath, { recursive: true });
512
- }
513
-
514
- const filePath = path.join(reportDistPath, 'report.json');
515
-
516
- // Load existing report for incremental merge
517
- let existingReport = { javascript: [], native: [] };
518
- if (fs.existsSync(filePath) && !flags.fullFresh) {
519
- try {
520
- existingReport = JSON.parse(fs.readFileSync(filePath, 'utf-8'));
521
- console.log(`${CYAN}ℹ Merging with existing report (${existingReport.javascript?.length || 0} JS, ${existingReport.native?.length || 0} C++ tests)${END}`);
522
- } catch (e) {
523
- console.warn(`${YELLOW}⚠ Could not parse existing report, starting fresh${END}`);
524
- }
525
- }
526
-
527
- // Format test case names in results (convert 1000000 -> 1M)
528
- const formattedJsResults = jsResults.map(result => ({
529
- ...result,
530
- benchmarks: result.benchmarks.map(bench => ({
531
- ...bench,
532
- 'Test Case': formatNumberInString(bench['Test Case'])
533
- }))
534
- }));
535
-
536
- const formattedCppResults = cppResults.map(result => ({
537
- ...result,
538
- benchmarks: result.benchmarks.map(bench => ({
539
- ...bench,
540
- 'Test Case': formatNumberInString(bench['Test Case'])
541
- }))
542
- }));
543
-
544
- // Merge with existing results (incremental update)
545
- const mergedJsResults = mergeResults(existingReport.javascript || [], formattedJsResults);
546
- const mergedCppResults = mergeResults(existingReport.native || [], formattedCppResults);
547
-
548
- const report = {
549
- timestamp: new Date().toISOString(),
550
- javascript: mergedJsResults,
551
- native: mergedCppResults,
552
- summary: {
553
- jsTestCount: mergedJsResults.length,
554
- cppTestCount: mergedCppResults.length,
555
- totalTests: mergedJsResults.length + mergedCppResults.length
556
- }
557
- };
558
-
559
- fs.writeFileSync(filePath, JSON.stringify(report, null, 2));
560
- console.log(`\n${GREEN}✓ Report written to: ${filePath}${END}`);
561
-
562
- if (jsResults.length < mergedJsResults.length || cppResults.length < mergedCppResults.length) {
563
- console.log(`${CYAN}ℹ Incremental merge: updated ${jsResults.length} JS + ${cppResults.length} C++ tests, total now ${mergedJsResults.length} JS + ${mergedCppResults.length} C++${END}`);
564
- }
565
-
566
- return report;
567
- }
568
-
569
- async function main() {
570
- // Handle fresh/resume flags
571
- if (flags.fresh) {
572
- clearPartialResults();
573
- }
574
-
575
- // Load partial results for resume
576
- let partial = { javascript: [], cpp: [], completedTests: [] };
577
- if (flags.resume || (!flags.fresh && fs.existsSync(PARTIAL_RESULTS_FILE))) {
578
- partial = loadPartialResults();
579
- if (partial.completedTests?.length > 0) {
580
- console.log(`${CYAN}ℹ Will skip ${partial.completedTests.length} already-completed tests${END}`);
581
- }
582
- }
583
-
584
- const completedSet = new Set(partial.completedTests || []);
585
- const jsResults = [...(partial.javascript || [])];
586
- const cppResults = [...(partial.cpp || [])];
587
- const completedTests = [...(partial.completedTests || [])];
588
-
589
- // Run JavaScript benchmarks
590
- if (!flags.cppOnly && jsTestFiles.length > 0) {
591
- console.log(`\n${BOLD}🔵 Running JavaScript Benchmarks${END}`);
592
- printProgressHeader('JavaScript', 0, jsTestFiles.length);
593
-
594
- for (let i = 0; i < jsTestFiles.length; i++) {
595
- const file = jsTestFiles[i];
596
- const testName = path
597
- .basename(file, path.extname(file))
598
- .replace(/\.test$/, '');
599
-
600
- // Skip if already completed
601
- if (completedSet.has(`js:${testName}`)) {
602
- console.log(` ${GRAY}⏭ [${i + 1}/${jsTestFiles.length}] ${testName} (skipped - already done)${END}`);
603
- continue;
604
- }
605
-
606
- printFileLoading(testName, i + 1, jsTestFiles.length, 'Loading');
607
-
608
- try {
609
- const testModule = await import(file);
610
-
611
- // Support both single suite and multiple suites (suite, suite1, suite2, etc.)
612
- const suites = [];
613
-
614
- if (testModule.suite) {
615
- suites.push({ name: testName, suite: testModule.suite });
616
- }
617
-
618
- // Collect all suite1, suite2, suite3, etc.
619
- let suiteIndex = 1;
620
- while (testModule[`suite${suiteIndex}`]) {
621
- suites.push({
622
- name: `${testName}-${suiteIndex}`,
623
- suite: testModule[`suite${suiteIndex}`]
624
- });
625
- suiteIndex++;
626
- }
627
-
628
- // Support an alternate path: a test module can export precomputed results
629
- // (useful for macro-style hrtime benchmarks that should not be wrapped by Benchmark.js).
630
- if (testModule.results || testModule.getResults) {
631
- const t0 = Date.now();
632
-
633
- // Heartbeat to prevent timeout during long-running macro benchmarks (2s interval)
634
- const heartbeatInterval = setInterval(() => {
635
- process.stdout.write('.');
636
- }, 2000);
637
-
638
- const raw = testModule.getResults
639
- ? await testModule.getResults()
640
- : await Promise.resolve(testModule.results);
641
-
642
- clearInterval(heartbeatInterval);
643
-
644
- const benchmarks = Array.isArray(raw) ? raw : [];
645
- const runTime = Number(((Date.now() - t0) / 1000).toFixed(2));
646
-
647
- jsResults.push({
648
- testName: testName,
649
- benchmarks,
650
- runTime,
651
- file
652
- });
653
-
654
- // Mark as completed and save checkpoint
655
- completedTests.push(`js:${testName}`);
656
- completedSet.add(`js:${testName}`);
657
- savePartialResults(jsResults, cppResults, completedTests);
658
-
659
- printFileComplete(testName, i + 1, jsTestFiles.length, benchmarks.length, runTime);
660
- continue;
661
- }
662
-
663
- // Process each suite
664
- for (const { name: suiteName, suite } of suites) {
665
- const benchmarks = [];
666
- let runTime = 0;
667
-
668
- // Add a default per-cycle progress log to avoid long "no output" phases.
669
- // Only attach if the suite doesn't already have a cycle listener.
670
- try {
671
- const hasCycle = typeof suite.listeners === 'function' && suite.listeners('cycle')?.length > 0;
672
- if (!hasCycle) {
673
- suite.on('cycle', function (event) {
674
- // Example: "✓ red-black-tree :: 1,000,000 get"
675
- const b = event?.target;
676
- const name = b?.name ?? '';
677
- if (name) console.log(` ✓ ${suiteName} :: ${name}`);
678
- });
679
- }
680
- } catch {
681
- // ignore
682
- }
683
-
684
- // Heartbeat to prevent timeout during long-running benchmarks (2s interval with flush)
685
- const heartbeatInterval = setInterval(() => {
686
- process.stdout.write('.');
687
- if (process.stdout.isTTY) process.stdout.cursorTo?.(process.stdout.columns - 1);
688
- }, 2000);
689
-
690
- await new Promise((resolve) => {
691
- suite
692
- .on('complete', function () {
693
- clearInterval(heartbeatInterval);
694
- process.stdout.write('\n');
695
- benchmarks.push(
696
- ...this.map(benchmark => {
697
- runTime += benchmark.times.elapsed;
698
- const scaleOps = benchmark.options?._totalOps;
699
-
700
- // By default, Benchmark.js mean/sample are "per operation".
701
- // For some macro-style cases (e.g. "1,000,000 get") we benchmark 1 lookup per
702
- // operation but want to report total time for N lookups to keep reports consistent.
703
- const scale = typeof scaleOps === 'number' && Number.isFinite(scaleOps) && scaleOps > 0
704
- ? scaleOps
705
- : 1;
706
-
707
- const meanMs = benchmark.stats.mean * 1000 * scale;
708
- const minMs = Math.min(...benchmark.stats.sample) * 1000 * scale;
709
- const maxMs = Math.max(...benchmark.stats.sample) * 1000 * scale;
710
-
711
- // Keep extra precision for very fast ops (sub-millisecond totals),
712
- // otherwise everything rounds to 0.00ms.
713
- const msDigits = meanMs < 10 ? 4 : 2;
714
-
715
- return {
716
- 'Test Case': benchmark.name,
717
- 'Latency Avg (ms)': numberFix(meanMs, msDigits),
718
- 'Min (ms)': numberFix(minMs, msDigits),
719
- 'Max (ms)': numberFix(maxMs, msDigits),
720
- 'Stability': `±${numberFix(benchmark.stats.rme, 2)}%`
721
- };
722
- })
723
- );
724
- runTime = Number(runTime.toFixed(2));
725
- resolve();
726
- })
727
- .run({ async: false });
728
- });
729
-
730
- jsResults.push({
731
- testName: suiteName,
732
- benchmarks,
733
- runTime,
734
- file
735
- });
736
-
737
- // Mark as completed and save checkpoint
738
- completedTests.push(`js:${suiteName}`);
739
- completedSet.add(`js:${suiteName}`);
740
- savePartialResults(jsResults, cppResults, completedTests);
741
-
742
- printFileComplete(suiteName, i + 1, jsTestFiles.length, benchmarks.length, runTime);
743
- }
744
- } catch (err) {
745
- printFileError(testName, i + 1, jsTestFiles.length, err.message);
746
- }
747
- }
748
-
749
- console.log(`${GREEN}✓ JavaScript benchmarks complete${END}`);
750
- }
751
-
752
- // Run C++ benchmarks
753
- if (!flags.jsOnly && cppTestFiles.length > 0) {
754
- console.log(`\n${BOLD}🔴 Running C++ Benchmarks${END}`);
755
- printProgressHeader('C++', 0, cppTestFiles.length);
756
-
757
- const compiled = await compileCppBenchmarks();
758
-
759
- if (compiled) {
760
- // FIXED: Pass cppTestFiles to discover executables matching those tests
761
- const executables = discoverCppBenchmarks(cppTestFiles);
762
-
763
- for (let i = 0; i < executables.length; i++) {
764
- const exe = executables[i];
765
-
766
- // Skip if already completed
767
- if (completedSet.has(`cpp:${exe.name}`)) {
768
- console.log(` ${GRAY}⏭ [${i + 1}/${executables.length}] ${exe.name} (skipped - already done)${END}`);
769
- continue;
770
- }
771
-
772
- printFileLoading(exe.name, i + 1, executables.length, 'Running');
773
-
774
- const result = runCppBenchmark(exe.path);
775
-
776
- if (result.success && result.benchmarks.length > 0) {
777
- cppResults.push({
778
- testName: exe.name,
779
- benchmarks: result.benchmarks,
780
- isNative: true
781
- });
782
-
783
- // Mark as completed and save checkpoint
784
- completedTests.push(`cpp:${exe.name}`);
785
- completedSet.add(`cpp:${exe.name}`);
786
- savePartialResults(jsResults, cppResults, completedTests);
787
-
788
- printFileComplete(exe.name, i + 1, executables.length, result.benchmarks.length, 0);
789
- } else {
790
- printFileError(exe.name, i + 1, executables.length, 'No benchmarks parsed');
791
- }
792
- }
793
- }
794
-
795
- console.log(`${GREEN}✓ C++ benchmarks complete${END}`);
796
- }
797
-
798
- // Generate unified report (with formatted numbers)
799
- await generateUnifiedReport(jsResults, cppResults);
800
-
801
- // Clear partial results after successful completion
802
- clearPartialResults();
803
-
804
- console.log(
805
- `\n${GREEN}${BOLD}✅ Benchmark run complete!${END}${END}`
806
- );
807
- console.log(
808
- `\n${CYAN}Summary${END}:`
809
- );
810
- console.log(` ${GREEN}JavaScript:${END} ${jsResults.length} test suites`);
811
- console.log(` ${GREEN}C++:${END} ${cppResults.length} test suites`);
812
- console.log(` ${GREEN}Total:${END} ${jsResults.length + cppResults.length} test suites\n`);
813
- }
814
-
815
- main().catch(err => {
816
- console.error(`${RED}❌ Error:${END}`, err);
817
- process.exit(1);
818
- });