data-structure-typed 2.0.4 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (261) hide show
  1. package/CHANGELOG.md +3 -1
  2. package/COMMANDS.md +17 -0
  3. package/README.md +11 -11
  4. package/benchmark/report.html +13 -77
  5. package/benchmark/report.json +158 -190
  6. package/dist/cjs/data-structures/base/iterable-element-base.d.ts +186 -83
  7. package/dist/cjs/data-structures/base/iterable-element-base.js +149 -107
  8. package/dist/cjs/data-structures/base/iterable-element-base.js.map +1 -1
  9. package/dist/cjs/data-structures/base/iterable-entry-base.d.ts +95 -119
  10. package/dist/cjs/data-structures/base/iterable-entry-base.js +59 -116
  11. package/dist/cjs/data-structures/base/iterable-entry-base.js.map +1 -1
  12. package/dist/cjs/data-structures/base/linear-base.d.ts +250 -192
  13. package/dist/cjs/data-structures/base/linear-base.js +137 -274
  14. package/dist/cjs/data-structures/base/linear-base.js.map +1 -1
  15. package/dist/cjs/data-structures/binary-tree/avl-tree-counter.d.ts +126 -158
  16. package/dist/cjs/data-structures/binary-tree/avl-tree-counter.js +171 -205
  17. package/dist/cjs/data-structures/binary-tree/avl-tree-counter.js.map +1 -1
  18. package/dist/cjs/data-structures/binary-tree/avl-tree-multi-map.d.ts +100 -69
  19. package/dist/cjs/data-structures/binary-tree/avl-tree-multi-map.js +135 -87
  20. package/dist/cjs/data-structures/binary-tree/avl-tree-multi-map.js.map +1 -1
  21. package/dist/cjs/data-structures/binary-tree/avl-tree.d.ts +138 -149
  22. package/dist/cjs/data-structures/binary-tree/avl-tree.js +208 -195
  23. package/dist/cjs/data-structures/binary-tree/avl-tree.js.map +1 -1
  24. package/dist/cjs/data-structures/binary-tree/binary-tree.d.ts +476 -632
  25. package/dist/cjs/data-structures/binary-tree/binary-tree.js +608 -875
  26. package/dist/cjs/data-structures/binary-tree/binary-tree.js.map +1 -1
  27. package/dist/cjs/data-structures/binary-tree/bst.d.ts +258 -306
  28. package/dist/cjs/data-structures/binary-tree/bst.js +505 -481
  29. package/dist/cjs/data-structures/binary-tree/bst.js.map +1 -1
  30. package/dist/cjs/data-structures/binary-tree/red-black-tree.d.ts +107 -179
  31. package/dist/cjs/data-structures/binary-tree/red-black-tree.js +114 -209
  32. package/dist/cjs/data-structures/binary-tree/red-black-tree.js.map +1 -1
  33. package/dist/cjs/data-structures/binary-tree/tree-counter.d.ts +132 -154
  34. package/dist/cjs/data-structures/binary-tree/tree-counter.js +172 -203
  35. package/dist/cjs/data-structures/binary-tree/tree-counter.js.map +1 -1
  36. package/dist/cjs/data-structures/binary-tree/tree-multi-map.d.ts +72 -69
  37. package/dist/cjs/data-structures/binary-tree/tree-multi-map.js +105 -85
  38. package/dist/cjs/data-structures/binary-tree/tree-multi-map.js.map +1 -1
  39. package/dist/cjs/data-structures/graph/abstract-graph.d.ts +238 -233
  40. package/dist/cjs/data-structures/graph/abstract-graph.js +267 -237
  41. package/dist/cjs/data-structures/graph/abstract-graph.js.map +1 -1
  42. package/dist/cjs/data-structures/graph/directed-graph.d.ts +108 -224
  43. package/dist/cjs/data-structures/graph/directed-graph.js +146 -233
  44. package/dist/cjs/data-structures/graph/directed-graph.js.map +1 -1
  45. package/dist/cjs/data-structures/graph/map-graph.d.ts +49 -55
  46. package/dist/cjs/data-structures/graph/map-graph.js +56 -59
  47. package/dist/cjs/data-structures/graph/map-graph.js.map +1 -1
  48. package/dist/cjs/data-structures/graph/undirected-graph.d.ts +103 -146
  49. package/dist/cjs/data-structures/graph/undirected-graph.js +129 -149
  50. package/dist/cjs/data-structures/graph/undirected-graph.js.map +1 -1
  51. package/dist/cjs/data-structures/hash/hash-map.d.ts +164 -338
  52. package/dist/cjs/data-structures/hash/hash-map.js +270 -457
  53. package/dist/cjs/data-structures/hash/hash-map.js.map +1 -1
  54. package/dist/cjs/data-structures/heap/heap.d.ts +214 -289
  55. package/dist/cjs/data-structures/heap/heap.js +340 -349
  56. package/dist/cjs/data-structures/heap/heap.js.map +1 -1
  57. package/dist/cjs/data-structures/heap/max-heap.d.ts +11 -47
  58. package/dist/cjs/data-structures/heap/max-heap.js +11 -66
  59. package/dist/cjs/data-structures/heap/max-heap.js.map +1 -1
  60. package/dist/cjs/data-structures/heap/min-heap.d.ts +12 -47
  61. package/dist/cjs/data-structures/heap/min-heap.js +11 -66
  62. package/dist/cjs/data-structures/heap/min-heap.js.map +1 -1
  63. package/dist/cjs/data-structures/linked-list/doubly-linked-list.d.ts +231 -347
  64. package/dist/cjs/data-structures/linked-list/doubly-linked-list.js +368 -494
  65. package/dist/cjs/data-structures/linked-list/doubly-linked-list.js.map +1 -1
  66. package/dist/cjs/data-structures/linked-list/singly-linked-list.d.ts +261 -310
  67. package/dist/cjs/data-structures/linked-list/singly-linked-list.js +447 -466
  68. package/dist/cjs/data-structures/linked-list/singly-linked-list.js.map +1 -1
  69. package/dist/cjs/data-structures/linked-list/skip-linked-list.d.ts +0 -107
  70. package/dist/cjs/data-structures/linked-list/skip-linked-list.js +0 -100
  71. package/dist/cjs/data-structures/linked-list/skip-linked-list.js.map +1 -1
  72. package/dist/cjs/data-structures/priority-queue/max-priority-queue.d.ts +12 -56
  73. package/dist/cjs/data-structures/priority-queue/max-priority-queue.js +11 -78
  74. package/dist/cjs/data-structures/priority-queue/max-priority-queue.js.map +1 -1
  75. package/dist/cjs/data-structures/priority-queue/min-priority-queue.d.ts +11 -57
  76. package/dist/cjs/data-structures/priority-queue/min-priority-queue.js +10 -79
  77. package/dist/cjs/data-structures/priority-queue/min-priority-queue.js.map +1 -1
  78. package/dist/cjs/data-structures/priority-queue/priority-queue.d.ts +2 -61
  79. package/dist/cjs/data-structures/priority-queue/priority-queue.js +8 -83
  80. package/dist/cjs/data-structures/priority-queue/priority-queue.js.map +1 -1
  81. package/dist/cjs/data-structures/queue/deque.d.ts +227 -254
  82. package/dist/cjs/data-structures/queue/deque.js +309 -348
  83. package/dist/cjs/data-structures/queue/deque.js.map +1 -1
  84. package/dist/cjs/data-structures/queue/queue.d.ts +180 -201
  85. package/dist/cjs/data-structures/queue/queue.js +265 -248
  86. package/dist/cjs/data-structures/queue/queue.js.map +1 -1
  87. package/dist/cjs/data-structures/stack/stack.d.ts +124 -102
  88. package/dist/cjs/data-structures/stack/stack.js +181 -125
  89. package/dist/cjs/data-structures/stack/stack.js.map +1 -1
  90. package/dist/cjs/data-structures/trie/trie.d.ts +164 -165
  91. package/dist/cjs/data-structures/trie/trie.js +189 -172
  92. package/dist/cjs/data-structures/trie/trie.js.map +1 -1
  93. package/dist/cjs/interfaces/binary-tree.d.ts +56 -6
  94. package/dist/cjs/interfaces/graph.d.ts +16 -0
  95. package/dist/cjs/types/data-structures/base/base.d.ts +1 -1
  96. package/dist/cjs/types/data-structures/graph/abstract-graph.d.ts +4 -0
  97. package/dist/cjs/types/utils/utils.d.ts +6 -6
  98. package/dist/cjs/utils/utils.d.ts +110 -49
  99. package/dist/cjs/utils/utils.js +148 -73
  100. package/dist/cjs/utils/utils.js.map +1 -1
  101. package/dist/esm/data-structures/base/iterable-element-base.d.ts +186 -83
  102. package/dist/esm/data-structures/base/iterable-element-base.js +155 -107
  103. package/dist/esm/data-structures/base/iterable-element-base.js.map +1 -1
  104. package/dist/esm/data-structures/base/iterable-entry-base.d.ts +95 -119
  105. package/dist/esm/data-structures/base/iterable-entry-base.js +59 -116
  106. package/dist/esm/data-structures/base/iterable-entry-base.js.map +1 -1
  107. package/dist/esm/data-structures/base/linear-base.d.ts +250 -192
  108. package/dist/esm/data-structures/base/linear-base.js +137 -274
  109. package/dist/esm/data-structures/base/linear-base.js.map +1 -1
  110. package/dist/esm/data-structures/binary-tree/avl-tree-counter.d.ts +126 -158
  111. package/dist/esm/data-structures/binary-tree/avl-tree-counter.js +171 -212
  112. package/dist/esm/data-structures/binary-tree/avl-tree-counter.js.map +1 -1
  113. package/dist/esm/data-structures/binary-tree/avl-tree-multi-map.d.ts +100 -69
  114. package/dist/esm/data-structures/binary-tree/avl-tree-multi-map.js +133 -94
  115. package/dist/esm/data-structures/binary-tree/avl-tree-multi-map.js.map +1 -1
  116. package/dist/esm/data-structures/binary-tree/avl-tree.d.ts +138 -149
  117. package/dist/esm/data-structures/binary-tree/avl-tree.js +206 -200
  118. package/dist/esm/data-structures/binary-tree/avl-tree.js.map +1 -1
  119. package/dist/esm/data-structures/binary-tree/binary-tree.d.ts +476 -632
  120. package/dist/esm/data-structures/binary-tree/binary-tree.js +613 -885
  121. package/dist/esm/data-structures/binary-tree/binary-tree.js.map +1 -1
  122. package/dist/esm/data-structures/binary-tree/bst.d.ts +258 -306
  123. package/dist/esm/data-structures/binary-tree/bst.js +507 -487
  124. package/dist/esm/data-structures/binary-tree/bst.js.map +1 -1
  125. package/dist/esm/data-structures/binary-tree/red-black-tree.d.ts +107 -179
  126. package/dist/esm/data-structures/binary-tree/red-black-tree.js +114 -215
  127. package/dist/esm/data-structures/binary-tree/red-black-tree.js.map +1 -1
  128. package/dist/esm/data-structures/binary-tree/tree-counter.d.ts +132 -154
  129. package/dist/esm/data-structures/binary-tree/tree-counter.js +175 -209
  130. package/dist/esm/data-structures/binary-tree/tree-counter.js.map +1 -1
  131. package/dist/esm/data-structures/binary-tree/tree-multi-map.d.ts +72 -69
  132. package/dist/esm/data-structures/binary-tree/tree-multi-map.js +103 -92
  133. package/dist/esm/data-structures/binary-tree/tree-multi-map.js.map +1 -1
  134. package/dist/esm/data-structures/graph/abstract-graph.d.ts +238 -233
  135. package/dist/esm/data-structures/graph/abstract-graph.js +267 -237
  136. package/dist/esm/data-structures/graph/abstract-graph.js.map +1 -1
  137. package/dist/esm/data-structures/graph/directed-graph.d.ts +108 -224
  138. package/dist/esm/data-structures/graph/directed-graph.js +145 -233
  139. package/dist/esm/data-structures/graph/directed-graph.js.map +1 -1
  140. package/dist/esm/data-structures/graph/map-graph.d.ts +49 -55
  141. package/dist/esm/data-structures/graph/map-graph.js +56 -59
  142. package/dist/esm/data-structures/graph/map-graph.js.map +1 -1
  143. package/dist/esm/data-structures/graph/undirected-graph.d.ts +103 -146
  144. package/dist/esm/data-structures/graph/undirected-graph.js +128 -149
  145. package/dist/esm/data-structures/graph/undirected-graph.js.map +1 -1
  146. package/dist/esm/data-structures/hash/hash-map.d.ts +164 -338
  147. package/dist/esm/data-structures/hash/hash-map.js +270 -457
  148. package/dist/esm/data-structures/hash/hash-map.js.map +1 -1
  149. package/dist/esm/data-structures/heap/heap.d.ts +214 -289
  150. package/dist/esm/data-structures/heap/heap.js +329 -349
  151. package/dist/esm/data-structures/heap/heap.js.map +1 -1
  152. package/dist/esm/data-structures/heap/max-heap.d.ts +11 -47
  153. package/dist/esm/data-structures/heap/max-heap.js +11 -66
  154. package/dist/esm/data-structures/heap/max-heap.js.map +1 -1
  155. package/dist/esm/data-structures/heap/min-heap.d.ts +12 -47
  156. package/dist/esm/data-structures/heap/min-heap.js +11 -66
  157. package/dist/esm/data-structures/heap/min-heap.js.map +1 -1
  158. package/dist/esm/data-structures/linked-list/doubly-linked-list.d.ts +231 -347
  159. package/dist/esm/data-structures/linked-list/doubly-linked-list.js +368 -495
  160. package/dist/esm/data-structures/linked-list/doubly-linked-list.js.map +1 -1
  161. package/dist/esm/data-structures/linked-list/singly-linked-list.d.ts +261 -310
  162. package/dist/esm/data-structures/linked-list/singly-linked-list.js +448 -467
  163. package/dist/esm/data-structures/linked-list/singly-linked-list.js.map +1 -1
  164. package/dist/esm/data-structures/linked-list/skip-linked-list.d.ts +0 -107
  165. package/dist/esm/data-structures/linked-list/skip-linked-list.js +0 -100
  166. package/dist/esm/data-structures/linked-list/skip-linked-list.js.map +1 -1
  167. package/dist/esm/data-structures/priority-queue/max-priority-queue.d.ts +12 -56
  168. package/dist/esm/data-structures/priority-queue/max-priority-queue.js +11 -78
  169. package/dist/esm/data-structures/priority-queue/max-priority-queue.js.map +1 -1
  170. package/dist/esm/data-structures/priority-queue/min-priority-queue.d.ts +11 -57
  171. package/dist/esm/data-structures/priority-queue/min-priority-queue.js +10 -79
  172. package/dist/esm/data-structures/priority-queue/min-priority-queue.js.map +1 -1
  173. package/dist/esm/data-structures/priority-queue/priority-queue.d.ts +2 -61
  174. package/dist/esm/data-structures/priority-queue/priority-queue.js +8 -83
  175. package/dist/esm/data-structures/priority-queue/priority-queue.js.map +1 -1
  176. package/dist/esm/data-structures/queue/deque.d.ts +227 -254
  177. package/dist/esm/data-structures/queue/deque.js +313 -348
  178. package/dist/esm/data-structures/queue/deque.js.map +1 -1
  179. package/dist/esm/data-structures/queue/queue.d.ts +180 -201
  180. package/dist/esm/data-structures/queue/queue.js +263 -248
  181. package/dist/esm/data-structures/queue/queue.js.map +1 -1
  182. package/dist/esm/data-structures/stack/stack.d.ts +124 -102
  183. package/dist/esm/data-structures/stack/stack.js +181 -125
  184. package/dist/esm/data-structures/stack/stack.js.map +1 -1
  185. package/dist/esm/data-structures/trie/trie.d.ts +164 -165
  186. package/dist/esm/data-structures/trie/trie.js +193 -172
  187. package/dist/esm/data-structures/trie/trie.js.map +1 -1
  188. package/dist/esm/interfaces/binary-tree.d.ts +56 -6
  189. package/dist/esm/interfaces/graph.d.ts +16 -0
  190. package/dist/esm/types/data-structures/base/base.d.ts +1 -1
  191. package/dist/esm/types/data-structures/graph/abstract-graph.d.ts +4 -0
  192. package/dist/esm/types/utils/utils.d.ts +6 -6
  193. package/dist/esm/utils/utils.d.ts +110 -49
  194. package/dist/esm/utils/utils.js +139 -68
  195. package/dist/esm/utils/utils.js.map +1 -1
  196. package/dist/umd/data-structure-typed.js +4737 -6525
  197. package/dist/umd/data-structure-typed.min.js +8 -6
  198. package/dist/umd/data-structure-typed.min.js.map +1 -1
  199. package/package.json +3 -4
  200. package/src/data-structures/base/iterable-element-base.ts +238 -115
  201. package/src/data-structures/base/iterable-entry-base.ts +96 -120
  202. package/src/data-structures/base/linear-base.ts +271 -277
  203. package/src/data-structures/binary-tree/avl-tree-counter.ts +198 -216
  204. package/src/data-structures/binary-tree/avl-tree-multi-map.ts +192 -101
  205. package/src/data-structures/binary-tree/avl-tree.ts +239 -206
  206. package/src/data-structures/binary-tree/binary-tree.ts +677 -901
  207. package/src/data-structures/binary-tree/bst.ts +568 -570
  208. package/src/data-structures/binary-tree/red-black-tree.ts +161 -222
  209. package/src/data-structures/binary-tree/tree-counter.ts +199 -218
  210. package/src/data-structures/binary-tree/tree-multi-map.ts +131 -97
  211. package/src/data-structures/graph/abstract-graph.ts +339 -264
  212. package/src/data-structures/graph/directed-graph.ts +146 -236
  213. package/src/data-structures/graph/map-graph.ts +63 -60
  214. package/src/data-structures/graph/undirected-graph.ts +129 -152
  215. package/src/data-structures/hash/hash-map.ts +274 -496
  216. package/src/data-structures/heap/heap.ts +389 -402
  217. package/src/data-structures/heap/max-heap.ts +12 -76
  218. package/src/data-structures/heap/min-heap.ts +13 -76
  219. package/src/data-structures/linked-list/doubly-linked-list.ts +426 -530
  220. package/src/data-structures/linked-list/singly-linked-list.ts +495 -517
  221. package/src/data-structures/linked-list/skip-linked-list.ts +1 -108
  222. package/src/data-structures/priority-queue/max-priority-queue.ts +12 -87
  223. package/src/data-structures/priority-queue/min-priority-queue.ts +11 -88
  224. package/src/data-structures/priority-queue/priority-queue.ts +3 -92
  225. package/src/data-structures/queue/deque.ts +381 -357
  226. package/src/data-structures/queue/queue.ts +310 -264
  227. package/src/data-structures/stack/stack.ts +217 -131
  228. package/src/data-structures/trie/trie.ts +240 -175
  229. package/src/interfaces/binary-tree.ts +240 -6
  230. package/src/interfaces/graph.ts +37 -0
  231. package/src/types/data-structures/base/base.ts +5 -5
  232. package/src/types/data-structures/graph/abstract-graph.ts +5 -0
  233. package/src/types/utils/utils.ts +9 -5
  234. package/src/utils/utils.ts +152 -86
  235. package/test/integration/index.html +1 -1
  236. package/test/performance/benchmark-runner.ts +528 -0
  237. package/test/performance/reportor.mjs +43 -43
  238. package/test/performance/runner-config.json +39 -0
  239. package/test/performance/single-suite-runner.ts +69 -0
  240. package/test/unit/data-structures/binary-tree/avl-tree-counter.test.ts +3 -3
  241. package/test/unit/data-structures/binary-tree/avl-tree-multi-map.test.ts +5 -5
  242. package/test/unit/data-structures/binary-tree/avl-tree.test.ts +4 -4
  243. package/test/unit/data-structures/binary-tree/binary-tree.test.ts +350 -90
  244. package/test/unit/data-structures/binary-tree/bst.test.ts +84 -5
  245. package/test/unit/data-structures/binary-tree/red-black-tree.test.ts +2 -2
  246. package/test/unit/data-structures/binary-tree/tree-counter.test.ts +25 -24
  247. package/test/unit/data-structures/binary-tree/tree-multi-map.test.ts +3 -3
  248. package/test/unit/data-structures/graph/abstract-graph.test.ts +0 -4
  249. package/test/unit/data-structures/graph/directed-graph.test.ts +1 -1
  250. package/test/unit/data-structures/heap/heap.test.ts +14 -21
  251. package/test/unit/data-structures/heap/max-heap.test.ts +5 -9
  252. package/test/unit/data-structures/heap/min-heap.test.ts +1 -4
  253. package/test/unit/data-structures/linked-list/doubly-linked-list.test.ts +14 -14
  254. package/test/unit/data-structures/linked-list/singly-linked-list.test.ts +0 -7
  255. package/test/unit/data-structures/priority-queue/max-priority-queue.test.ts +8 -11
  256. package/test/unit/data-structures/priority-queue/min-priority-queue.test.ts +1 -4
  257. package/test/unit/data-structures/priority-queue/priority-queue.test.ts +1 -4
  258. package/test/unit/data-structures/queue/queue.test.ts +4 -5
  259. package/test/unit/utils/utils.test.ts +0 -1
  260. package/test/performance/data-structures/binary-tree/avl-tree.test.mjs +0 -71
  261. package/test/performance/data-structures/binary-tree/red-black-tree.test.mjs +0 -81
package/CHANGELOG.md CHANGED
@@ -8,7 +8,9 @@ All notable changes to this project will be documented in this file.
8
8
  - [Semantic Versioning](https://semver.org/spec/v2.0.0.html)
9
9
  - [`auto-changelog`](https://github.com/CookPete/auto-changelog)
10
10
 
11
- ## [v2.0.4](https://github.com/zrwusa/data-structure-typed/compare/v1.51.5...main) (upcoming)
11
+ ## [v2.1.0](https://github.com/zrwusa/data-structure-typed/compare/v2.0.4...main) (upcoming)
12
+
13
+ ## [v2.0.4](https://github.com/zrwusa/data-structure-typed/compare/v1.51.5...v2.0.4) (7 May 2025)
12
14
 
13
15
  ### Changes
14
16
 
package/COMMANDS.md CHANGED
@@ -33,3 +33,20 @@ Overview of the commands to test, run and build this project as well as those th
33
33
  ## References
34
34
 
35
35
  - [ESLint - Getting Started](https://eslint.org/docs/user-guide/getting-started)
36
+
37
+ ### Optimized performance runner(隔离 & 可配置)
38
+
39
+ #### Use run-order.json (same directory) to define "to run/not to run + order" and execute in isolation
40
+ ```bash
41
+ ts-node test/performance/benchmark-runner.optimized.ts --isolate --gc --cooldown-ms=80
42
+ ```
43
+
44
+ #### Specify external configuration file + label this time
45
+ ```bash
46
+ ts-node test/performance/benchmark-runner.optimized.ts --isolate --order-file=test/performance/run-order.json --label=ci-fast
47
+ ```
48
+
49
+ #### Add one-time include/exclude
50
+ ```bash
51
+ ts-node test/performance/benchmark-runner.optimized.ts --isolate --include=heap,hash-map --exclude=**/graph/**
52
+ ```
package/README.md CHANGED
@@ -846,34 +846,34 @@ pnpm perf:rbtree
846
846
  [//]: # (No deletion!!! Start of Replace Section)
847
847
  <div class="json-to-html-collapse clearfix 0">
848
848
  <div class='collapsible level0' ><span class='json-to-html-label'>heap</span></div>
849
- <div class="content"><table style="display: table; width:100%; table-layout: fixed;"><tr><th>test name</th><th>time taken (ms)</th><th>sample mean (secs)</th><th>sample deviation</th></tr><tr><td>100,000 add</td><td>6.85</td><td>0.01</td><td>3.38e-4</td></tr><tr><td>100,000 add & poll</td><td>35.35</td><td>0.04</td><td>8.44e-4</td></tr></table></div>
849
+ <div class="content"><table style="display: table; width:100%; table-layout: fixed;"><tr><th>test name</th><th>time taken (ms)</th><th>sample mean (secs)</th><th>sample deviation</th></tr><tr><td>100,000 add</td><td>3.01</td><td>0.00</td><td>1.05e-4</td></tr><tr><td>100,000 add & poll</td><td>16.57</td><td>0.02</td><td>4.12e-4</td></tr></table></div>
850
850
  </div><div class="json-to-html-collapse clearfix 0">
851
851
  <div class='collapsible level0' ><span class='json-to-html-label'>avl-tree</span></div>
852
- <div class="content"><table style="display: table; width:100%; table-layout: fixed;"><tr><th>test name</th><th>time taken (ms)</th><th>sample mean (secs)</th><th>sample deviation</th></tr><tr><td>100,000 add</td><td>302.89</td><td>0.30</td><td>0.01</td></tr><tr><td>100,000 add randomly</td><td>381.83</td><td>0.38</td><td>0.00</td></tr><tr><td>100,000 get</td><td>0.60</td><td>5.95e-4</td><td>2.33e-4</td></tr><tr><td>100,000 getNode</td><td>150.61</td><td>0.15</td><td>0.00</td></tr><tr><td>100,000 iterator</td><td>28.23</td><td>0.03</td><td>0.00</td></tr><tr><td>100,000 add & delete orderly</td><td>505.57</td><td>0.51</td><td>0.01</td></tr><tr><td>100,000 add & delete randomly</td><td>677.36</td><td>0.68</td><td>0.00</td></tr></table></div>
852
+ <div class="content"><table style="display: table; width:100%; table-layout: fixed;"><tr><th>test name</th><th>time taken (ms)</th><th>sample mean (secs)</th><th>sample deviation</th></tr><tr><td>100,000 add randomly</td><td>276.06</td><td>0.28</td><td>0.00</td></tr><tr><td>100,000 add</td><td>247.11</td><td>0.25</td><td>0.01</td></tr><tr><td>100,000 get</td><td>0.28</td><td>2.82e-4</td><td>9.27e-5</td></tr><tr><td>100,000 getNode</td><td>168.47</td><td>0.17</td><td>0.01</td></tr><tr><td>100,000 iterator</td><td>12.84</td><td>0.01</td><td>0.00</td></tr><tr><td>100,000 add & delete orderly</td><td>385.64</td><td>0.39</td><td>0.00</td></tr><tr><td>100,000 add & delete randomly</td><td>501.31</td><td>0.50</td><td>0.01</td></tr></table></div>
853
853
  </div><div class="json-to-html-collapse clearfix 0">
854
- <div class='collapsible level0' ><span class='json-to-html-label'>rb-tree</span></div>
855
- <div class="content"><table style="display: table; width:100%; table-layout: fixed;"><tr><th>test name</th><th>time taken (ms)</th><th>sample mean (secs)</th><th>sample deviation</th></tr><tr><td>100,000 add</td><td>212.77</td><td>0.21</td><td>9.84e-4</td></tr><tr><td>100,000 add randomly</td><td>163.70</td><td>0.16</td><td>0.00</td></tr><tr><td>100,000 get</td><td>1.19</td><td>0.00</td><td>2.44e-4</td></tr><tr><td>100,000 getNode</td><td>347.39</td><td>0.35</td><td>0.01</td></tr><tr><td>100,000 node mode add randomly</td><td>162.26</td><td>0.16</td><td>0.00</td></tr><tr><td>100,000 node mode get</td><td>344.90</td><td>0.34</td><td>0.00</td></tr><tr><td>100,000 iterator</td><td>27.48</td><td>0.03</td><td>0.00</td></tr><tr><td>100,000 add & delete orderly</td><td>386.33</td><td>0.39</td><td>0.00</td></tr><tr><td>100,000 add & delete randomly</td><td>520.66</td><td>0.52</td><td>0.00</td></tr></table></div>
854
+ <div class='collapsible level0' ><span class='json-to-html-label'>red-black-tree</span></div>
855
+ <div class="content"><table style="display: table; width:100%; table-layout: fixed;"><tr><th>test name</th><th>time taken (ms)</th><th>sample mean (secs)</th><th>sample deviation</th></tr><tr><td>100,000 add randomly</td><td>78.51</td><td>0.08</td><td>0.00</td></tr><tr><td>100,000 add</td><td>104.83</td><td>0.10</td><td>0.00</td></tr><tr><td>100,000 get</td><td>0.53</td><td>5.26e-4</td><td>7.38e-5</td></tr><tr><td>100,000 getNode</td><td>249.02</td><td>0.25</td><td>0.01</td></tr><tr><td>100,000 node mode add randomly</td><td>77.15</td><td>0.08</td><td>0.00</td></tr><tr><td>100,000 node mode get</td><td>253.61</td><td>0.25</td><td>0.01</td></tr><tr><td>100,000 iterator</td><td>13.23</td><td>0.01</td><td>0.00</td></tr><tr><td>100,000 add & delete orderly</td><td>226.81</td><td>0.23</td><td>0.00</td></tr><tr><td>100,000 add & delete randomly</td><td>325.56</td><td>0.33</td><td>0.00</td></tr></table></div>
856
856
  </div><div class="json-to-html-collapse clearfix 0">
857
857
  <div class='collapsible level0' ><span class='json-to-html-label'>doubly-linked-list</span></div>
858
- <div class="content"><table style="display: table; width:100%; table-layout: fixed;"><tr><th>test name</th><th>time taken (ms)</th><th>sample mean (secs)</th><th>sample deviation</th></tr><tr><td>1,000,000 push</td><td>179.28</td><td>0.18</td><td>0.02</td></tr><tr><td>1,000,000 unshift</td><td>197.22</td><td>0.20</td><td>0.05</td></tr><tr><td>1,000,000 unshift & shift</td><td>153.16</td><td>0.15</td><td>0.00</td></tr><tr><td>1,000,000 addBefore</td><td>247.30</td><td>0.25</td><td>0.03</td></tr></table></div>
858
+ <div class="content"><table style="display: table; width:100%; table-layout: fixed;"><tr><th>test name</th><th>time taken (ms)</th><th>sample mean (secs)</th><th>sample deviation</th></tr><tr><td>1,000,000 push</td><td>109.12</td><td>0.11</td><td>0.02</td></tr><tr><td>1,000,000 unshift</td><td>105.65</td><td>0.11</td><td>0.01</td></tr><tr><td>1,000,000 unshift & shift</td><td>96.20</td><td>0.10</td><td>0.01</td></tr><tr><td>1,000,000 addBefore</td><td>157.94</td><td>0.16</td><td>0.03</td></tr></table></div>
859
859
  </div><div class="json-to-html-collapse clearfix 0">
860
860
  <div class='collapsible level0' ><span class='json-to-html-label'>directed-graph</span></div>
861
- <div class="content"><table style="display: table; width:100%; table-layout: fixed;"><tr><th>test name</th><th>time taken (ms)</th><th>sample mean (secs)</th><th>sample deviation</th></tr><tr><td>1,000 addVertex</td><td>0.10</td><td>9.92e-5</td><td>1.16e-6</td></tr><tr><td>1,000 addEdge</td><td>6.44</td><td>0.01</td><td>0.00</td></tr><tr><td>1,000 getVertex</td><td>0.10</td><td>9.82e-5</td><td>1.13e-6</td></tr><tr><td>1,000 getEdge</td><td>22.60</td><td>0.02</td><td>0.00</td></tr><tr><td>tarjan</td><td>186.56</td><td>0.19</td><td>0.00</td></tr><tr><td>topologicalSort</td><td>145.42</td><td>0.15</td><td>0.01</td></tr></table></div>
861
+ <div class="content"><table style="display: table; width:100%; table-layout: fixed;"><tr><th>test name</th><th>time taken (ms)</th><th>sample mean (secs)</th><th>sample deviation</th></tr><tr><td>1,000 addVertex</td><td>0.05</td><td>4.73e-5</td><td>1.24e-6</td></tr><tr><td>1,000 addEdge</td><td>2.96</td><td>0.00</td><td>9.68e-5</td></tr><tr><td>1,000 getVertex</td><td>0.05</td><td>4.70e-5</td><td>1.27e-6</td></tr><tr><td>1,000 getEdge</td><td>44.92</td><td>0.04</td><td>0.01</td></tr><tr><td>tarjan</td><td>257.57</td><td>0.26</td><td>0.02</td></tr><tr><td>topologicalSort</td><td>207.12</td><td>0.21</td><td>0.01</td></tr></table></div>
862
862
  </div><div class="json-to-html-collapse clearfix 0">
863
863
  <div class='collapsible level0' ><span class='json-to-html-label'>queue</span></div>
864
- <div class="content"><table style="display: table; width:100%; table-layout: fixed;"><tr><th>test name</th><th>time taken (ms)</th><th>sample mean (secs)</th><th>sample deviation</th></tr><tr><td>1,000,000 push</td><td>47.74</td><td>0.05</td><td>0.02</td></tr><tr><td>100,000 push & shift</td><td>5.39</td><td>0.01</td><td>1.25e-4</td></tr><tr><td>Native JS Array 100,000 push & shift</td><td>2225.50</td><td>2.23</td><td>0.10</td></tr></table></div>
864
+ <div class="content"><table style="display: table; width:100%; table-layout: fixed;"><tr><th>test name</th><th>time taken (ms)</th><th>sample mean (secs)</th><th>sample deviation</th></tr><tr><td>1,000,000 push</td><td>25.86</td><td>0.03</td><td>0.01</td></tr><tr><td>100,000 push & shift</td><td>2.52</td><td>0.00</td><td>0.00</td></tr><tr><td>Native JS Array 100,000 push & shift</td><td>902.25</td><td>0.90</td><td>0.00</td></tr></table></div>
865
865
  </div><div class="json-to-html-collapse clearfix 0">
866
866
  <div class='collapsible level0' ><span class='json-to-html-label'>deque</span></div>
867
- <div class="content"><table style="display: table; width:100%; table-layout: fixed;"><tr><th>test name</th><th>time taken (ms)</th><th>sample mean (secs)</th><th>sample deviation</th></tr><tr><td>1,000,000 push</td><td>22.88</td><td>0.02</td><td>0.01</td></tr><tr><td>1,000,000 push & pop</td><td>27.95</td><td>0.03</td><td>0.01</td></tr><tr><td>1,000,000 push & shift</td><td>29.83</td><td>0.03</td><td>0.01</td></tr><tr><td>100,000 push & shift</td><td>2.71</td><td>0.00</td><td>9.03e-4</td></tr><tr><td>Native JS Array 100,000 push & shift</td><td>2182.03</td><td>2.18</td><td>0.04</td></tr><tr><td>100,000 unshift & shift</td><td>2.61</td><td>0.00</td><td>8.71e-4</td></tr><tr><td>Native JS Array 100,000 unshift & shift</td><td>4185.90</td><td>4.19</td><td>0.04</td></tr></table></div>
867
+ <div class="content"><table style="display: table; width:100%; table-layout: fixed;"><tr><th>test name</th><th>time taken (ms)</th><th>sample mean (secs)</th><th>sample deviation</th></tr><tr><td>1,000,000 push</td><td>10.14</td><td>0.01</td><td>0.00</td></tr><tr><td>1,000,000 push & pop</td><td>14.13</td><td>0.01</td><td>0.01</td></tr><tr><td>1,000,000 push & shift</td><td>13.35</td><td>0.01</td><td>0.01</td></tr><tr><td>100,000 push & shift</td><td>1.34</td><td>0.00</td><td>6.86e-4</td></tr><tr><td>Native JS Array 100,000 push & shift</td><td>904.80</td><td>0.90</td><td>0.01</td></tr><tr><td>100,000 unshift & shift</td><td>1.21</td><td>0.00</td><td>5.28e-4</td></tr><tr><td>Native JS Array 100,000 unshift & shift</td><td>1801.73</td><td>1.80</td><td>0.01</td></tr></table></div>
868
868
  </div><div class="json-to-html-collapse clearfix 0">
869
869
  <div class='collapsible level0' ><span class='json-to-html-label'>hash-map</span></div>
870
- <div class="content"><table style="display: table; width:100%; table-layout: fixed;"><tr><th>test name</th><th>time taken (ms)</th><th>sample mean (secs)</th><th>sample deviation</th></tr><tr><td>1,000,000 set</td><td>253.45</td><td>0.25</td><td>0.07</td></tr><tr><td>Native JS Map 1,000,000 set</td><td>228.90</td><td>0.23</td><td>0.02</td></tr><tr><td>Native JS Set 1,000,000 add</td><td>179.65</td><td>0.18</td><td>0.01</td></tr><tr><td>1,000,000 set & get</td><td>234.96</td><td>0.23</td><td>0.06</td></tr><tr><td>Native JS Map 1,000,000 set & get</td><td>284.90</td><td>0.28</td><td>0.01</td></tr><tr><td>Native JS Set 1,000,000 add & has</td><td>254.90</td><td>0.25</td><td>0.03</td></tr><tr><td>1,000,000 ObjKey set & get</td><td>403.74</td><td>0.40</td><td>0.10</td></tr><tr><td>Native JS Map 1,000,000 ObjKey set & get</td><td>340.18</td><td>0.34</td><td>0.07</td></tr><tr><td>Native JS Set 1,000,000 ObjKey add & has</td><td>300.25</td><td>0.30</td><td>0.06</td></tr></table></div>
870
+ <div class="content"><table style="display: table; width:100%; table-layout: fixed;"><tr><th>test name</th><th>time taken (ms)</th><th>sample mean (secs)</th><th>sample deviation</th></tr><tr><td>1,000,000 set</td><td>48.91</td><td>0.05</td><td>0.02</td></tr><tr><td>Native JS Map 1,000,000 set</td><td>141.21</td><td>0.14</td><td>0.02</td></tr><tr><td>Native JS Set 1,000,000 add</td><td>116.73</td><td>0.12</td><td>0.03</td></tr><tr><td>1,000,000 set & get</td><td>40.73</td><td>0.04</td><td>0.01</td></tr><tr><td>Native JS Map 1,000,000 set & get</td><td>196.24</td><td>0.20</td><td>0.02</td></tr><tr><td>Native JS Set 1,000,000 add & has</td><td>158.72</td><td>0.16</td><td>0.02</td></tr><tr><td>1,000,000 ObjKey set & get</td><td>242.77</td><td>0.24</td><td>0.08</td></tr><tr><td>Native JS Map 1,000,000 ObjKey set & get</td><td>231.61</td><td>0.23</td><td>0.09</td></tr><tr><td>Native JS Set 1,000,000 ObjKey add & has</td><td>177.41</td><td>0.18</td><td>0.05</td></tr></table></div>
871
871
  </div><div class="json-to-html-collapse clearfix 0">
872
872
  <div class='collapsible level0' ><span class='json-to-html-label'>trie</span></div>
873
- <div class="content"><table style="display: table; width:100%; table-layout: fixed;"><tr><th>test name</th><th>time taken (ms)</th><th>sample mean (secs)</th><th>sample deviation</th></tr><tr><td>100,000 push</td><td>44.11</td><td>0.04</td><td>8.55e-4</td></tr><tr><td>100,000 getWords</td><td>86.67</td><td>0.09</td><td>0.00</td></tr></table></div>
873
+ <div class="content"><table style="display: table; width:100%; table-layout: fixed;"><tr><th>test name</th><th>time taken (ms)</th><th>sample mean (secs)</th><th>sample deviation</th></tr><tr><td>100,000 push</td><td>21.20</td><td>0.02</td><td>0.00</td></tr><tr><td>100,000 getWords</td><td>39.18</td><td>0.04</td><td>0.00</td></tr></table></div>
874
874
  </div><div class="json-to-html-collapse clearfix 0">
875
875
  <div class='collapsible level0' ><span class='json-to-html-label'>stack</span></div>
876
- <div class="content"><table style="display: table; width:100%; table-layout: fixed;"><tr><th>test name</th><th>time taken (ms)</th><th>sample mean (secs)</th><th>sample deviation</th></tr><tr><td>1,000,000 push</td><td>43.18</td><td>0.04</td><td>0.01</td></tr><tr><td>1,000,000 push & pop</td><td>48.40</td><td>0.05</td><td>0.02</td></tr></table></div>
876
+ <div class="content"><table style="display: table; width:100%; table-layout: fixed;"><tr><th>test name</th><th>time taken (ms)</th><th>sample mean (secs)</th><th>sample deviation</th></tr><tr><td>1,000,000 push</td><td>22.12</td><td>0.02</td><td>0.01</td></tr><tr><td>1,000,000 push & pop</td><td>25.51</td><td>0.03</td><td>0.01</td></tr></table></div>
877
877
  </div>
878
878
 
879
879
  [//]: # (No deletion!!! End of Replace Section)
@@ -1,78 +1,14 @@
1
1
  <!DOCTYPE html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="UTF-8">
5
- <title>performance of data-structure-typed</title>
6
- <style>
7
- *{
8
- box-sizing: border-box;
9
- }
10
- #json-to-html {
11
- padding: 0 10px 20px;
12
- }
13
-
14
- .json-to-html-label {
15
- font-size: 2rem;
16
- margin: 2rem 0 0 3px;
17
- }
18
- .content table {
19
- width: 100%;
20
- table-layout: fixed;
21
- border-collapse: collapse;
22
- margin-top: 10px;
23
- font-size: 16px;
24
- }
25
-
26
- .content table th,
27
- .content table td {
28
- padding: 8px 12px;
29
- text-align: left;
30
- border: 1px solid #ddd;
31
- }
32
-
33
- .content table th {
34
- background-color: #f2f2f2;
35
- font-weight: bold;
36
- }
37
-
38
- .content table tr:nth-child(odd) {
39
- background-color: #ffffff;
40
- }
41
- </style>
42
- </head>
43
- <body>
44
- <div id="json-to-html"><div class="json-to-html-collapse clearfix 0">
45
- <div class='collapsible level0' ><span class='json-to-html-label'>heap</span></div>
46
- <div class="content"><table style="display: table; width:100%; table-layout: fixed;"><tr><th>test name</th><th>time taken (ms)</th><th>sample mean (secs)</th><th>sample deviation</th></tr><tr><td>100,000 add</td><td>6.66</td><td>0.01</td><td>1.93e-4</td></tr><tr><td>100,000 add & poll</td><td>35.36</td><td>0.04</td><td>0.00</td></tr></table></div>
47
- </div><div class="json-to-html-collapse clearfix 0">
48
- <div class='collapsible level0' ><span class='json-to-html-label'>avl-tree</span></div>
49
- <div class="content"><table style="display: table; width:100%; table-layout: fixed;"><tr><th>test name</th><th>time taken (ms)</th><th>sample mean (secs)</th><th>sample deviation</th></tr><tr><td>100,000 add randomly</td><td>548.16</td><td>0.55</td><td>0.02</td></tr><tr><td>100,000 add</td><td>503.07</td><td>0.50</td><td>0.02</td></tr><tr><td>100,000 get</td><td>0.62</td><td>6.18e-4</td><td>2.45e-4</td></tr><tr><td>100,000 getNode</td><td>326.99</td><td>0.33</td><td>0.00</td></tr><tr><td>100,000 iterator</td><td>32.01</td><td>0.03</td><td>0.00</td></tr><tr><td>100,000 add & delete orderly</td><td>809.71</td><td>0.81</td><td>0.08</td></tr><tr><td>100,000 add & delete randomly</td><td>993.95</td><td>0.99</td><td>0.03</td></tr></table></div>
50
- </div><div class="json-to-html-collapse clearfix 0">
51
- <div class='collapsible level0' ><span class='json-to-html-label'>red-black-tree</span></div>
52
- <div class="content"><table style="display: table; width:100%; table-layout: fixed;"><tr><th>test name</th><th>time taken (ms)</th><th>sample mean (secs)</th><th>sample deviation</th></tr><tr><td>100,000 add randomly</td><td>159.87</td><td>0.16</td><td>0.00</td></tr><tr><td>100,000 add</td><td>218.47</td><td>0.22</td><td>3.58e-4</td></tr><tr><td>100,000 get</td><td>1.12</td><td>0.00</td><td>1.82e-4</td></tr><tr><td>100,000 getNode</td><td>511.83</td><td>0.51</td><td>0.00</td></tr><tr><td>100,000 node mode add randomly</td><td>156.83</td><td>0.16</td><td>0.00</td></tr><tr><td>100,000 node mode get</td><td>509.76</td><td>0.51</td><td>0.00</td></tr><tr><td>100,000 iterator</td><td>32.75</td><td>0.03</td><td>0.00</td></tr><tr><td>100,000 add & delete orderly</td><td>460.34</td><td>0.46</td><td>0.00</td></tr><tr><td>100,000 add & delete randomly</td><td>679.75</td><td>0.68</td><td>0.04</td></tr></table></div>
53
- </div><div class="json-to-html-collapse clearfix 0">
54
- <div class='collapsible level0' ><span class='json-to-html-label'>doubly-linked-list</span></div>
55
- <div class="content"><table style="display: table; width:100%; table-layout: fixed;"><tr><th>test name</th><th>time taken (ms)</th><th>sample mean (secs)</th><th>sample deviation</th></tr><tr><td>1,000,000 push</td><td>182.03</td><td>0.18</td><td>0.02</td></tr><tr><td>1,000,000 unshift</td><td>185.94</td><td>0.19</td><td>0.03</td></tr><tr><td>1,000,000 unshift & shift</td><td>159.02</td><td>0.16</td><td>0.03</td></tr><tr><td>1,000,000 addBefore</td><td>252.73</td><td>0.25</td><td>0.03</td></tr></table></div>
56
- </div><div class="json-to-html-collapse clearfix 0">
57
- <div class='collapsible level0' ><span class='json-to-html-label'>directed-graph</span></div>
58
- <div class="content"><table style="display: table; width:100%; table-layout: fixed;"><tr><th>test name</th><th>time taken (ms)</th><th>sample mean (secs)</th><th>sample deviation</th></tr><tr><td>1,000 addVertex</td><td>0.10</td><td>9.56e-5</td><td>9.71e-7</td></tr><tr><td>1,000 addEdge</td><td>5.97</td><td>0.01</td><td>1.99e-4</td></tr><tr><td>1,000 getVertex</td><td>0.10</td><td>9.71e-5</td><td>1.17e-6</td></tr><tr><td>1,000 getEdge</td><td>23.25</td><td>0.02</td><td>0.00</td></tr><tr><td>tarjan</td><td>192.40</td><td>0.19</td><td>0.00</td></tr><tr><td>topologicalSort</td><td>151.03</td><td>0.15</td><td>0.01</td></tr></table></div>
59
- </div><div class="json-to-html-collapse clearfix 0">
60
- <div class='collapsible level0' ><span class='json-to-html-label'>queue</span></div>
61
- <div class="content"><table style="display: table; width:100%; table-layout: fixed;"><tr><th>test name</th><th>time taken (ms)</th><th>sample mean (secs)</th><th>sample deviation</th></tr><tr><td>1,000,000 push</td><td>53.79</td><td>0.05</td><td>0.02</td></tr><tr><td>100,000 push & shift</td><td>5.49</td><td>0.01</td><td>0.00</td></tr><tr><td>Native JS Array 100,000 push & shift</td><td>2358.01</td><td>2.36</td><td>0.32</td></tr></table></div>
62
- </div><div class="json-to-html-collapse clearfix 0">
63
- <div class='collapsible level0' ><span class='json-to-html-label'>deque</span></div>
64
- <div class="content"><table style="display: table; width:100%; table-layout: fixed;"><tr><th>test name</th><th>time taken (ms)</th><th>sample mean (secs)</th><th>sample deviation</th></tr><tr><td>1,000,000 push</td><td>23.74</td><td>0.02</td><td>0.01</td></tr><tr><td>1,000,000 push & pop</td><td>25.37</td><td>0.03</td><td>0.01</td></tr><tr><td>1,000,000 push & shift</td><td>27.61</td><td>0.03</td><td>0.01</td></tr><tr><td>100,000 push & shift</td><td>2.77</td><td>0.00</td><td>0.00</td></tr><tr><td>Native JS Array 100,000 push & shift</td><td>2430.40</td><td>2.43</td><td>0.31</td></tr><tr><td>100,000 unshift & shift</td><td>2.46</td><td>0.00</td><td>8.81e-4</td></tr><tr><td>Native JS Array 100,000 unshift & shift</td><td>4239.82</td><td>4.24</td><td>0.37</td></tr></table></div>
65
- </div><div class="json-to-html-collapse clearfix 0">
66
- <div class='collapsible level0' ><span class='json-to-html-label'>hash-map</span></div>
67
- <div class="content"><table style="display: table; width:100%; table-layout: fixed;"><tr><th>test name</th><th>time taken (ms)</th><th>sample mean (secs)</th><th>sample deviation</th></tr><tr><td>1,000,000 set</td><td>96.79</td><td>0.10</td><td>0.05</td></tr><tr><td>Native JS Map 1,000,000 set</td><td>230.38</td><td>0.23</td><td>0.05</td></tr><tr><td>Native JS Set 1,000,000 add</td><td>170.58</td><td>0.17</td><td>0.01</td></tr><tr><td>1,000,000 set & get</td><td>82.62</td><td>0.08</td><td>0.03</td></tr><tr><td>Native JS Map 1,000,000 set & get</td><td>278.89</td><td>0.28</td><td>0.02</td></tr><tr><td>Native JS Set 1,000,000 add & has</td><td>237.93</td><td>0.24</td><td>0.02</td></tr><tr><td>1,000,000 ObjKey set & get</td><td>369.62</td><td>0.37</td><td>0.07</td></tr><tr><td>Native JS Map 1,000,000 ObjKey set & get</td><td>332.09</td><td>0.33</td><td>0.10</td></tr><tr><td>Native JS Set 1,000,000 ObjKey add & has</td><td>271.98</td><td>0.27</td><td>0.03</td></tr></table></div>
68
- </div><div class="json-to-html-collapse clearfix 0">
69
- <div class='collapsible level0' ><span class='json-to-html-label'>trie</span></div>
70
- <div class="content"><table style="display: table; width:100%; table-layout: fixed;"><tr><th>test name</th><th>time taken (ms)</th><th>sample mean (secs)</th><th>sample deviation</th></tr><tr><td>100,000 push</td><td>42.65</td><td>0.04</td><td>8.66e-4</td></tr><tr><td>100,000 getWords</td><td>83.37</td><td>0.08</td><td>0.00</td></tr></table></div>
71
- </div><div class="json-to-html-collapse clearfix 0">
72
- <div class='collapsible level0' ><span class='json-to-html-label'>stack</span></div>
73
- <div class="content"><table style="display: table; width:100%; table-layout: fixed;"><tr><th>test name</th><th>time taken (ms)</th><th>sample mean (secs)</th><th>sample deviation</th></tr><tr><td>1,000,000 push</td><td>41.84</td><td>0.04</td><td>0.01</td></tr><tr><td>1,000,000 push & pop</td><td>46.56</td><td>0.05</td><td>0.01</td></tr></table></div>
74
- </div>
75
-
76
- </div>
77
- </body>
78
- </html>
2
+ <html lang="en"><head><meta charset="UTF-8"/><title>Benchmark Report</title>
3
+ <style>
4
+ body { margin:0; padding:0; font-family: ui-sans-serif, system-ui, -apple-system; }
5
+ .json-to-html-title { font-size: 3rem; font-weight: bold; }
6
+ .content { padding: 2rem; }
7
+ .content table { width:100%; table-layout:fixed; border-collapse:collapse; margin-top:10px; font-size:16px; }
8
+ .content table th, .content table td { padding: 8px 12px; text-align:left; border:1px solid #ddd; }
9
+ .content table th { background:#f2f2f2; font-weight:bold; }
10
+ .content table tr:nth-child(odd) { background:#fff; }
11
+ </style></head><body><div class="content">
12
+ <div class="json-to-html-title">Benchmark Report</div>
13
+ <h2>heap</h2><table><thead><tr><th>test name</th><th>time taken (ms)</th><th>sample mean (secs)</th><th>sample deviation</th></tr></thead><tbody><tr><td>100,000 add</td><td>4.54</td><td>0.00</td><td>1.09e-4</td></tr><tr><td>100,000 add & poll</td><td>16.99</td><td>0.02</td><td>4.39e-4</td></tr></tbody></table><h2>avl-tree</h2><table><thead><tr><th>test name</th><th>time taken (ms)</th><th>sample mean (secs)</th><th>sample deviation</th></tr></thead><tbody><tr><td>100,000 add randomly</td><td>323.84</td><td>0.32</td><td>0.01</td></tr><tr><td>100,000 add</td><td>297.64</td><td>0.30</td><td>0.00</td></tr><tr><td>100,000 get</td><td>0.26</td><td>2.58e-4</td><td>4.70e-6</td></tr><tr><td>100,000 getNode</td><td>164.61</td><td>0.16</td><td>0.00</td></tr><tr><td>100,000 iterator</td><td>13.93</td><td>0.01</td><td>0.00</td></tr><tr><td>100,000 add & delete orderly</td><td>435.66</td><td>0.44</td><td>0.00</td></tr><tr><td>100,000 add & delete randomly</td><td>542.69</td><td>0.54</td><td>0.01</td></tr></tbody></table><h2>red-black-tree</h2><table><thead><tr><th>test name</th><th>time taken (ms)</th><th>sample mean (secs)</th><th>sample deviation</th></tr></thead><tbody><tr><td>100,000 add randomly</td><td>50.51</td><td>0.05</td><td>0.00</td></tr><tr><td>100,000 add</td><td>55.64</td><td>0.06</td><td>9.96e-4</td></tr><tr><td>100,000 get</td><td>0.56</td><td>5.62e-4</td><td>8.00e-6</td></tr><tr><td>100,000 getNode</td><td>173.91</td><td>0.17</td><td>0.00</td></tr><tr><td>100,000 node mode add randomly</td><td>50.58</td><td>0.05</td><td>0.00</td></tr><tr><td>100,000 node mode get</td><td>177.74</td><td>0.18</td><td>0.00</td></tr><tr><td>100,000 iterator</td><td>13.64</td><td>0.01</td><td>0.00</td></tr><tr><td>100,000 add & delete orderly</td><td>137.34</td><td>0.14</td><td>0.00</td></tr><tr><td>100,000 add & delete randomly</td><td>227.78</td><td>0.23</td><td>0.01</td></tr></tbody></table><h2>hash-map</h2><table><thead><tr><th>test name</th><th>time taken (ms)</th><th>sample mean (secs)</th><th>sample deviation</th></tr></thead><tbody><tr><td>1,000,000 set</td><td>42.03</td><td>0.04</td><td>0.01</td></tr><tr><td>Native JS Map 1,000,000 set</td><td>143.77</td><td>0.14</td><td>0.01</td></tr><tr><td>Native JS Set 1,000,000 add</td><td>116.02</td><td>0.12</td><td>0.02</td></tr><tr><td>1,000,000 set & get</td><td>43.68</td><td>0.04</td><td>0.01</td></tr><tr><td>Native JS Map 1,000,000 set & get</td><td>192.46</td><td>0.19</td><td>0.01</td></tr><tr><td>Native JS Set 1,000,000 add & has</td><td>160.85</td><td>0.16</td><td>0.01</td></tr><tr><td>1,000,000 ObjKey set & get</td><td>233.37</td><td>0.23</td><td>0.03</td></tr><tr><td>Native JS Map 1,000,000 ObjKey set & get</td><td>212.39</td><td>0.21</td><td>0.03</td></tr><tr><td>Native JS Set 1,000,000 ObjKey add & has</td><td>186.55</td><td>0.19</td><td>0.02</td></tr></tbody></table><h2>directed-graph</h2><table><thead><tr><th>test name</th><th>time taken (ms)</th><th>sample mean (secs)</th><th>sample deviation</th></tr></thead><tbody><tr><td>1,000 addVertex</td><td>0.05</td><td>4.69e-5</td><td>1.05e-6</td></tr><tr><td>1,000 addEdge</td><td>2.97</td><td>0.00</td><td>2.82e-4</td></tr><tr><td>1,000 getVertex</td><td>0.04</td><td>3.70e-5</td><td>8.00e-7</td></tr><tr><td>1,000 getEdge</td><td>45.20</td><td>0.05</td><td>0.01</td></tr><tr><td>tarjan</td><td>246.50</td><td>0.25</td><td>0.01</td></tr><tr><td>topologicalSort</td><td>201.36</td><td>0.20</td><td>0.01</td></tr></tbody></table><h2>queue</h2><table><thead><tr><th>test name</th><th>time taken (ms)</th><th>sample mean (secs)</th><th>sample deviation</th></tr></thead><tbody><tr><td>1,000,000 push</td><td>24.89</td><td>0.02</td><td>0.00</td></tr><tr><td>100,000 push & shift</td><td>2.77</td><td>0.00</td><td>2.63e-4</td></tr><tr><td>Native JS Array 100,000 push & shift</td><td>1172.87</td><td>1.17</td><td>0.09</td></tr></tbody></table><h2>deque</h2><table><thead><tr><th>test name</th><th>time taken (ms)</th><th>sample mean (secs)</th><th>sample deviation</th></tr></thead><tbody><tr><td>1,000,000 push</td><td>9.76</td><td>0.01</td><td>6.06e-4</td></tr><tr><td>1,000,000 push & pop</td><td>12.80</td><td>0.01</td><td>4.62e-4</td></tr><tr><td>1,000,000 push & shift</td><td>13.62</td><td>0.01</td><td>4.97e-4</td></tr><tr><td>100,000 push & shift</td><td>1.39</td><td>0.00</td><td>4.95e-5</td></tr><tr><td>Native JS Array 100,000 push & shift</td><td>1174.62</td><td>1.17</td><td>0.24</td></tr><tr><td>100,000 unshift & shift</td><td>1.37</td><td>0.00</td><td>5.62e-5</td></tr><tr><td>Native JS Array 100,000 unshift & shift</td><td>2022.04</td><td>2.02</td><td>0.16</td></tr></tbody></table><h2>trie</h2><table><thead><tr><th>test name</th><th>time taken (ms)</th><th>sample mean (secs)</th><th>sample deviation</th></tr></thead><tbody><tr><td>100,000 push</td><td>28.21</td><td>0.03</td><td>0.00</td></tr><tr><td>100,000 getWords</td><td>38.86</td><td>0.04</td><td>0.00</td></tr></tbody></table><h2>stack</h2><table><thead><tr><th>test name</th><th>time taken (ms)</th><th>sample mean (secs)</th><th>sample deviation</th></tr></thead><tbody><tr><td>1,000,000 push</td><td>25.11</td><td>0.03</td><td>0.00</td></tr><tr><td>1,000,000 push & pop</td><td>27.18</td><td>0.03</td><td>0.00</td></tr></tbody></table>
14
+ </div></body></html>