functionalscript 0.2.0 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (248) hide show
  1. package/dev/module.mjs +1 -1
  2. package/jsr.json +59 -59
  3. package/out/com/cpp/module.f.mjs +123 -0
  4. package/out/com/cpp/test.f.mjs +40 -0
  5. package/out/com/cpp/testlib.f.mjs +7 -0
  6. package/out/com/cs/module.f.mjs +95 -0
  7. package/out/com/cs/test.f.mjs +43 -0
  8. package/out/com/cs/testlib.f.mjs +7 -0
  9. package/out/com/rust/module.f.mjs +213 -0
  10. package/out/com/rust/test.f.mjs +123 -0
  11. package/out/com/rust/testlib.f.mjs +7 -0
  12. package/out/com/test/build.f.mjs +98 -0
  13. package/out/com/test/build.mjs +40 -0
  14. package/out/com/types/module.f.mjs +51 -0
  15. package/out/com/types/testlib.f.mjs +30 -0
  16. package/out/commonjs/build/module.f.mjs +107 -0
  17. package/out/commonjs/build/test.f.mjs +102 -0
  18. package/out/commonjs/module/function/module.f.mjs +15 -0
  19. package/out/commonjs/module/module.f.mjs +48 -0
  20. package/out/commonjs/module.f.mjs +10 -0
  21. package/out/commonjs/module.mjs +26 -0
  22. package/out/commonjs/package/dependencies/module.f.mjs +21 -0
  23. package/out/commonjs/package/dependencies/test.f.mjs +15 -0
  24. package/out/commonjs/package/module.f.mjs +40 -0
  25. package/out/commonjs/package/test.f.mjs +27 -0
  26. package/out/commonjs/path/module.f.mjs +171 -0
  27. package/out/commonjs/path/test.f.mjs +231 -0
  28. package/out/commonjs/test.mjs +87 -0
  29. package/out/dev/index.mjs +2 -0
  30. package/out/dev/module.f.mjs +2 -0
  31. package/out/dev/module.mjs +167 -0
  32. package/out/dev/test/module.f.mjs +134 -0
  33. package/out/dev/test.f.mjs +58 -0
  34. package/out/dev/test.mjs +52 -0
  35. package/out/djs/module.f.mjs +75 -0
  36. package/out/djs/parser/module.f.mjs +432 -0
  37. package/out/djs/parser/test.f.mjs +535 -0
  38. package/out/djs/test.f.mjs +84 -0
  39. package/out/djs/tokenizer/module.f.mjs +87 -0
  40. package/out/djs/tokenizer/test.f.mjs +480 -0
  41. package/out/fsc/module.f.mjs +105 -0
  42. package/out/fsc/test.f.mjs +19 -0
  43. package/out/fsm/module.f.mjs +80 -0
  44. package/out/fsm/test.f.mjs +138 -0
  45. package/out/html/module.f.mjs +94 -0
  46. package/out/html/test.f.mjs +45 -0
  47. package/out/issues/test.f.mjs +66 -0
  48. package/out/js/tokenizer/module.f.mjs +686 -0
  49. package/out/js/tokenizer/test.f.mjs +844 -0
  50. package/out/json/module.f.mjs +89 -0
  51. package/out/json/parser/module.f.mjs +224 -0
  52. package/out/json/parser/test.f.mjs +321 -0
  53. package/out/json/serializer/module.f.mjs +67 -0
  54. package/out/json/serializer/test.f.mjs +87 -0
  55. package/out/json/test.f.mjs +61 -0
  56. package/out/json/tokenizer/module.f.mjs +78 -0
  57. package/out/json/tokenizer/test.f.mjs +420 -0
  58. package/out/nanvm-lib/tests/test.f.mjs +87 -0
  59. package/out/nodejs/version/main.mjs +3 -0
  60. package/out/nodejs/version/module.f.mjs +34 -0
  61. package/out/nodejs/version/test.f.mjs +97 -0
  62. package/out/prime_field/module.f.mjs +87 -0
  63. package/out/prime_field/test.f.mjs +145 -0
  64. package/out/secp/module.f.mjs +113 -0
  65. package/out/secp/test.f.mjs +63 -0
  66. package/out/sha2/module.f.mjs +172 -0
  67. package/out/sha2/test.f.mjs +86 -0
  68. package/out/text/ascii/module.f.mjs +154 -0
  69. package/out/text/ascii/test.f.mjs +14 -0
  70. package/out/text/module.f.mjs +19 -0
  71. package/out/text/sgr/module.f.mjs +17 -0
  72. package/out/text/test.f.mjs +19 -0
  73. package/out/text/utf16/module.f.mjs +86 -0
  74. package/out/text/utf16/test.f.mjs +145 -0
  75. package/out/text/utf8/module.f.mjs +126 -0
  76. package/out/text/utf8/test.f.mjs +175 -0
  77. package/out/types/array/module.f.mjs +95 -0
  78. package/out/types/array/test.f.mjs +116 -0
  79. package/out/types/bigfloat/module.f.mjs +77 -0
  80. package/out/types/bigfloat/test.f.mjs +349 -0
  81. package/out/types/bigint/module.f.mjs +114 -0
  82. package/out/types/bigint/test.f.mjs +192 -0
  83. package/out/types/btree/find/module.f.mjs +137 -0
  84. package/out/types/btree/find/test.f.mjs +156 -0
  85. package/out/types/btree/module.f.mjs +34 -0
  86. package/out/types/btree/remove/module.f.mjs +209 -0
  87. package/out/types/btree/remove/test.f.mjs +638 -0
  88. package/out/types/btree/set/module.f.mjs +114 -0
  89. package/out/types/btree/set/test.f.mjs +390 -0
  90. package/out/types/btree/test.f.mjs +83 -0
  91. package/out/types/btree/types/module.f.mjs +50 -0
  92. package/out/types/byte_set/module.f.mjs +42 -0
  93. package/out/types/byte_set/test.f.mjs +123 -0
  94. package/out/types/function/compare/module.f.mjs +22 -0
  95. package/out/types/function/compare/test.f.mjs +8 -0
  96. package/out/types/function/module.f.mjs +44 -0
  97. package/out/types/function/operator/module.f.mjs +60 -0
  98. package/out/types/function/test.f.mjs +15 -0
  99. package/out/types/list/module.f.mjs +269 -0
  100. package/out/types/list/test.f.mjs +401 -0
  101. package/out/types/map/module.f.mjs +54 -0
  102. package/out/types/map/test.f.mjs +115 -0
  103. package/out/types/nibble_set/module.f.mjs +19 -0
  104. package/out/types/nibble_set/test.f.mjs +90 -0
  105. package/out/types/nullable/module.f.mjs +9 -0
  106. package/out/types/nullable/test.f.mjs +12 -0
  107. package/out/types/number/module.f.mjs +12 -0
  108. package/out/types/number/test.f.mjs +126 -0
  109. package/out/types/object/module.f.mjs +27 -0
  110. package/out/types/object/test.f.mjs +17 -0
  111. package/out/types/range/module.f.mjs +6 -0
  112. package/out/types/range/test.f.mjs +18 -0
  113. package/out/types/range_map/module.f.mjs +84 -0
  114. package/out/types/range_map/test.f.mjs +201 -0
  115. package/out/types/result/module.f.mjs +25 -0
  116. package/out/types/result/module.mjs +16 -0
  117. package/out/types/sorted_list/module.f.mjs +102 -0
  118. package/out/types/sorted_list/test.f.mjs +66 -0
  119. package/out/types/sorted_set/module.f.mjs +29 -0
  120. package/out/types/sorted_set/test.f.mjs +80 -0
  121. package/out/types/string/module.f.mjs +17 -0
  122. package/out/types/string/test.f.mjs +58 -0
  123. package/out/types/string_set/module.f.mjs +29 -0
  124. package/out/types/string_set/test.f.mjs +65 -0
  125. package/package.json +5 -4
  126. package/tsconfig.json +2 -2
  127. /package/{com → out/com}/cpp/module.f.d.mts +0 -0
  128. /package/{com → out/com}/cpp/test.f.d.mts +0 -0
  129. /package/{com → out/com}/cpp/testlib.f.d.mts +0 -0
  130. /package/{com → out/com}/cs/module.f.d.mts +0 -0
  131. /package/{com → out/com}/cs/test.f.d.mts +0 -0
  132. /package/{com → out/com}/cs/testlib.f.d.mts +0 -0
  133. /package/{com → out/com}/rust/module.f.d.mts +0 -0
  134. /package/{com → out/com}/rust/test.f.d.mts +0 -0
  135. /package/{com → out/com}/rust/testlib.f.d.mts +0 -0
  136. /package/{com → out/com}/test/build.d.mts +0 -0
  137. /package/{com → out/com}/test/build.f.d.mts +0 -0
  138. /package/{com → out/com}/types/module.f.d.mts +0 -0
  139. /package/{com → out/com}/types/testlib.f.d.mts +0 -0
  140. /package/{commonjs → out/commonjs}/build/module.f.d.mts +0 -0
  141. /package/{commonjs → out/commonjs}/build/test.f.d.mts +0 -0
  142. /package/{commonjs → out/commonjs}/module/function/module.f.d.mts +0 -0
  143. /package/{commonjs → out/commonjs}/module/module.f.d.mts +0 -0
  144. /package/{commonjs → out/commonjs}/module.d.mts +0 -0
  145. /package/{commonjs → out/commonjs}/module.f.d.mts +0 -0
  146. /package/{commonjs → out/commonjs}/package/dependencies/module.f.d.mts +0 -0
  147. /package/{commonjs → out/commonjs}/package/dependencies/test.f.d.mts +0 -0
  148. /package/{commonjs → out/commonjs}/package/module.f.d.mts +0 -0
  149. /package/{commonjs → out/commonjs}/package/test.f.d.mts +0 -0
  150. /package/{commonjs → out/commonjs}/path/module.f.d.mts +0 -0
  151. /package/{commonjs → out/commonjs}/path/test.f.d.mts +0 -0
  152. /package/{commonjs → out/commonjs}/test.d.mts +0 -0
  153. /package/{dev → out/dev}/index.d.mts +0 -0
  154. /package/{dev → out/dev}/module.d.mts +0 -0
  155. /package/{dev → out/dev}/module.f.d.mts +0 -0
  156. /package/{dev → out/dev}/test/module.f.d.mts +0 -0
  157. /package/{dev → out/dev}/test.d.mts +0 -0
  158. /package/{dev → out/dev}/test.f.d.mts +0 -0
  159. /package/{djs → out/djs}/module.f.d.mts +0 -0
  160. /package/{djs → out/djs}/parser/module.f.d.mts +0 -0
  161. /package/{djs → out/djs}/parser/test.f.d.mts +0 -0
  162. /package/{djs → out/djs}/test.f.d.mts +0 -0
  163. /package/{djs → out/djs}/tokenizer/module.f.d.mts +0 -0
  164. /package/{djs → out/djs}/tokenizer/test.f.d.mts +0 -0
  165. /package/{fsc → out/fsc}/module.f.d.mts +0 -0
  166. /package/{fsc → out/fsc}/test.f.d.mts +0 -0
  167. /package/{fsm → out/fsm}/module.f.d.mts +0 -0
  168. /package/{fsm → out/fsm}/test.f.d.mts +0 -0
  169. /package/{html → out/html}/module.f.d.mts +0 -0
  170. /package/{html → out/html}/test.f.d.mts +0 -0
  171. /package/{issues → out/issues}/test.f.d.mts +0 -0
  172. /package/{js → out/js}/tokenizer/module.f.d.mts +0 -0
  173. /package/{js → out/js}/tokenizer/test.f.d.mts +0 -0
  174. /package/{json → out/json}/module.f.d.mts +0 -0
  175. /package/{json → out/json}/parser/module.f.d.mts +0 -0
  176. /package/{json → out/json}/parser/test.f.d.mts +0 -0
  177. /package/{json → out/json}/serializer/module.f.d.mts +0 -0
  178. /package/{json → out/json}/serializer/test.f.d.mts +0 -0
  179. /package/{json → out/json}/test.f.d.mts +0 -0
  180. /package/{json → out/json}/tokenizer/module.f.d.mts +0 -0
  181. /package/{json → out/json}/tokenizer/test.f.d.mts +0 -0
  182. /package/{nanvm-lib → out/nanvm-lib}/tests/test.f.d.mts +0 -0
  183. /package/{nodejs → out/nodejs}/version/main.d.mts +0 -0
  184. /package/{nodejs → out/nodejs}/version/module.f.d.mts +0 -0
  185. /package/{nodejs → out/nodejs}/version/test.f.d.mts +0 -0
  186. /package/{prime_field → out/prime_field}/module.f.d.mts +0 -0
  187. /package/{prime_field → out/prime_field}/test.f.d.mts +0 -0
  188. /package/{secp → out/secp}/module.f.d.mts +0 -0
  189. /package/{secp → out/secp}/test.f.d.mts +0 -0
  190. /package/{sha2 → out/sha2}/module.f.d.mts +0 -0
  191. /package/{sha2 → out/sha2}/test.f.d.mts +0 -0
  192. /package/{text → out/text}/ascii/module.f.d.mts +0 -0
  193. /package/{text → out/text}/ascii/test.f.d.mts +0 -0
  194. /package/{text → out/text}/module.f.d.mts +0 -0
  195. /package/{text → out/text}/sgr/module.f.d.mts +0 -0
  196. /package/{text → out/text}/test.f.d.mts +0 -0
  197. /package/{text → out/text}/utf16/module.f.d.mts +0 -0
  198. /package/{text → out/text}/utf16/test.f.d.mts +0 -0
  199. /package/{text → out/text}/utf8/module.f.d.mts +0 -0
  200. /package/{text → out/text}/utf8/test.f.d.mts +0 -0
  201. /package/{types → out/types}/array/module.f.d.mts +0 -0
  202. /package/{types → out/types}/array/test.f.d.mts +0 -0
  203. /package/{types → out/types}/bigfloat/module.f.d.mts +0 -0
  204. /package/{types → out/types}/bigfloat/test.f.d.mts +0 -0
  205. /package/{types → out/types}/bigint/module.f.d.mts +0 -0
  206. /package/{types → out/types}/bigint/test.f.d.mts +0 -0
  207. /package/{types → out/types}/btree/find/module.f.d.mts +0 -0
  208. /package/{types → out/types}/btree/find/test.f.d.mts +0 -0
  209. /package/{types → out/types}/btree/module.f.d.mts +0 -0
  210. /package/{types → out/types}/btree/remove/module.f.d.mts +0 -0
  211. /package/{types → out/types}/btree/remove/test.f.d.mts +0 -0
  212. /package/{types → out/types}/btree/set/module.f.d.mts +0 -0
  213. /package/{types → out/types}/btree/set/test.f.d.mts +0 -0
  214. /package/{types → out/types}/btree/test.f.d.mts +0 -0
  215. /package/{types → out/types}/btree/types/module.f.d.mts +0 -0
  216. /package/{types → out/types}/byte_set/module.f.d.mts +0 -0
  217. /package/{types → out/types}/byte_set/test.f.d.mts +0 -0
  218. /package/{types → out/types}/function/compare/module.f.d.mts +0 -0
  219. /package/{types → out/types}/function/compare/test.f.d.mts +0 -0
  220. /package/{types → out/types}/function/module.f.d.mts +0 -0
  221. /package/{types → out/types}/function/operator/module.f.d.mts +0 -0
  222. /package/{types → out/types}/function/test.f.d.mts +0 -0
  223. /package/{types → out/types}/list/module.f.d.mts +0 -0
  224. /package/{types → out/types}/list/test.f.d.mts +0 -0
  225. /package/{types → out/types}/map/module.f.d.mts +0 -0
  226. /package/{types → out/types}/map/test.f.d.mts +0 -0
  227. /package/{types → out/types}/nibble_set/module.f.d.mts +0 -0
  228. /package/{types → out/types}/nibble_set/test.f.d.mts +0 -0
  229. /package/{types → out/types}/nullable/module.f.d.mts +0 -0
  230. /package/{types → out/types}/nullable/test.f.d.mts +0 -0
  231. /package/{types → out/types}/number/module.f.d.mts +0 -0
  232. /package/{types → out/types}/number/test.f.d.mts +0 -0
  233. /package/{types → out/types}/object/module.f.d.mts +0 -0
  234. /package/{types → out/types}/object/test.f.d.mts +0 -0
  235. /package/{types → out/types}/range/module.f.d.mts +0 -0
  236. /package/{types → out/types}/range/test.f.d.mts +0 -0
  237. /package/{types → out/types}/range_map/module.f.d.mts +0 -0
  238. /package/{types → out/types}/range_map/test.f.d.mts +0 -0
  239. /package/{types → out/types}/result/module.d.mts +0 -0
  240. /package/{types → out/types}/result/module.f.d.mts +0 -0
  241. /package/{types → out/types}/sorted_list/module.f.d.mts +0 -0
  242. /package/{types → out/types}/sorted_list/test.f.d.mts +0 -0
  243. /package/{types → out/types}/sorted_set/module.f.d.mts +0 -0
  244. /package/{types → out/types}/sorted_set/test.f.d.mts +0 -0
  245. /package/{types → out/types}/string/module.f.d.mts +0 -0
  246. /package/{types → out/types}/string/test.f.d.mts +0 -0
  247. /package/{types → out/types}/string_set/module.f.d.mts +0 -0
  248. /package/{types → out/types}/string_set/test.f.d.mts +0 -0
@@ -0,0 +1,638 @@
1
+ import * as _ from './module.f.mjs';
2
+ import * as BTree from '../types/module.f.mjs';
3
+ import * as s from '../set/module.f.mjs';
4
+ import * as str from '../../string/module.f.mjs';
5
+ const { cmp } = str;
6
+ import * as json from '../../../json/module.f.mjs';
7
+ import * as o from '../../object/module.f.mjs';
8
+ const { sort } = o;
9
+ /** @type {(node: BTree.Node<string>) => (value: string) => BTree.Node<string>} */
10
+ const set = node => value => s.set(cmp(value))(() => value)(node);
11
+ /** @type {(node: BTree.Node<string>) => (value: string) => BTree.Node<string> | null} */
12
+ const remove = node => value => _.nodeRemove(cmp(value))(node);
13
+ const jsonStr = json.stringify(sort);
14
+ const test = () => {
15
+ /** @type {BTree.Node<string> | null} */
16
+ let _map = ['1'];
17
+ for (let i = 2; i <= 38; i++)
18
+ _map = set(_map)((i * i).toString());
19
+ {
20
+ const r = jsonStr(_map);
21
+ if (r !==
22
+ '[[[[["1"],"100",["1024"]],"1089",[["1156"],"121",["1225"]]],' +
23
+ '"1296",' +
24
+ '[[["1369"],"144",["1444"]],"16",[["169"],"196",["225"]]]],' +
25
+ '"25",' +
26
+ '[[[["256"],"289",["324"],"36",["361"]],"4",[["400"],"441",["484"]]],' +
27
+ '"49",' +
28
+ '[[["529"],"576",["625"]],"64",[["676"],"729",["784"]],"81",[["841"],"9",["900","961"]]]]]') {
29
+ throw r;
30
+ }
31
+ }
32
+ {
33
+ _map = remove(_map)("0");
34
+ if (_map === null) {
35
+ throw null;
36
+ }
37
+ const r = jsonStr(_map);
38
+ if (r !==
39
+ '[[[[["1"],"100",["1024"]],"1089",[["1156"],"121",["1225"]]],' +
40
+ '"1296",' +
41
+ '[[["1369"],"144",["1444"]],"16",[["169"],"196",["225"]]]],' +
42
+ '"25",' +
43
+ '[[[["256"],"289",["324"],"36",["361"]],"4",[["400"],"441",["484"]]],' +
44
+ '"49",' +
45
+ '[[["529"],"576",["625"]],"64",[["676"],"729",["784"]],"81",[["841"],"9",["900","961"]]]]]') {
46
+ throw r;
47
+ }
48
+ }
49
+ {
50
+ _map = remove(_map)("1");
51
+ if (_map === null) {
52
+ throw null;
53
+ }
54
+ const r = jsonStr(_map);
55
+ if (r !==
56
+ '[[[["100","1024"],"1089",["1156"],"121",["1225"]],"1296",[["1369"],"144",["1444"]],"16",[["169"],"196",["225"]]],' +
57
+ '"25",' +
58
+ '[[["256"],"289",["324"],"36",["361"]],"4",[["400"],"441",["484"]]],' +
59
+ '"49",' +
60
+ '[[["529"],"576",["625"]],"64",[["676"],"729",["784"]],"81",[["841"],"9",["900","961"]]]]') {
61
+ throw r;
62
+ }
63
+ }
64
+ {
65
+ _map = remove(_map)("4");
66
+ if (_map === null) {
67
+ throw null;
68
+ }
69
+ const r = jsonStr(_map);
70
+ if (r !==
71
+ '[[[["100","1024"],"1089",["1156"],"121",["1225"]],"1296",[["1369"],"144",["1444"]],"16",[["169"],"196",["225"]]],' +
72
+ '"25",' +
73
+ '[[["256"],"289",["324"]],"36",[["361"],"400",["441","484"]]],' +
74
+ '"49",' +
75
+ '[[["529"],"576",["625"]],"64",[["676"],"729",["784"]],"81",[["841"],"9",["900","961"]]]]') {
76
+ throw r;
77
+ }
78
+ }
79
+ {
80
+ _map = remove(_map)("9");
81
+ if (_map === null) {
82
+ throw null;
83
+ }
84
+ const r = jsonStr(_map);
85
+ if (r !==
86
+ '[[[["100","1024"],"1089",["1156"],"121",["1225"]],"1296",[["1369"],"144",["1444"]],"16",[["169"],"196",["225"]]],' +
87
+ '"25",' +
88
+ '[[["256"],"289",["324"]],"36",[["361"],"400",["441","484"]]],' +
89
+ '"49",' +
90
+ '[[["529"],"576",["625"]],"64",[["676"],"729",["784"]],"81",[["841"],"900",["961"]]]]') {
91
+ throw r;
92
+ }
93
+ }
94
+ {
95
+ _map = remove(_map)("16");
96
+ if (_map === null) {
97
+ throw null;
98
+ }
99
+ const r = jsonStr(_map);
100
+ if (r !==
101
+ '[[[["100","1024"],"1089",["1156"],"121",["1225"]],"1296",[["1369"],"144",["1444"],"169",["196","225"]]],' +
102
+ '"25",' +
103
+ '[[["256"],"289",["324"]],"36",[["361"],"400",["441","484"]]],' +
104
+ '"49",' +
105
+ '[[["529"],"576",["625"]],"64",[["676"],"729",["784"]],"81",[["841"],"900",["961"]]]]') {
106
+ throw r;
107
+ }
108
+ }
109
+ {
110
+ _map = remove(_map)("25");
111
+ if (_map === null) {
112
+ throw null;
113
+ }
114
+ const r = jsonStr(_map);
115
+ if (r !==
116
+ '[[[["100","1024"],"1089",["1156"],"121",["1225"]],"1296",[["1369"],"144",["1444"],"169",["196","225"]],"256",[["289","324"],"36",["361"],"400",["441","484"]]],' +
117
+ '"49",' +
118
+ '[[["529"],"576",["625"]],"64",[["676"],"729",["784"]],"81",[["841"],"900",["961"]]]]') {
119
+ throw r;
120
+ }
121
+ }
122
+ {
123
+ _map = remove(_map)("36");
124
+ if (_map === null) {
125
+ throw null;
126
+ }
127
+ const r = jsonStr(_map);
128
+ if (r !==
129
+ '[[[["100","1024"],"1089",["1156"],"121",["1225"]],"1296",[["1369"],"144",["1444"],"169",["196","225"]],"256",[["289"],"324",["361"],"400",["441","484"]]],' +
130
+ '"49",' +
131
+ '[[["529"],"576",["625"]],"64",[["676"],"729",["784"]],"81",[["841"],"900",["961"]]]]') {
132
+ throw r;
133
+ }
134
+ }
135
+ {
136
+ _map = remove(_map)("49");
137
+ if (_map === null) {
138
+ throw null;
139
+ }
140
+ const r = jsonStr(_map);
141
+ if (r !==
142
+ '[[[["100","1024"],"1089",["1156"],"121",["1225"]],"1296",[["1369"],"144",["1444"],"169",["196","225"]],"256",[["289"],"324",["361"],"400",["441","484"]]],' +
143
+ '"529",' +
144
+ '[[["576","625"],"64",["676"],"729",["784"]],"81",[["841"],"900",["961"]]]]') {
145
+ throw r;
146
+ }
147
+ }
148
+ {
149
+ _map = remove(_map)("64");
150
+ if (_map === null) {
151
+ throw null;
152
+ }
153
+ const r = jsonStr(_map);
154
+ if (r !==
155
+ '[[[["100","1024"],"1089",["1156"],"121",["1225"]],"1296",[["1369"],"144",["1444"],"169",["196","225"]],"256",[["289"],"324",["361"],"400",["441","484"]]],' +
156
+ '"529",' +
157
+ '[[["576"],"625",["676"],"729",["784"]],"81",[["841"],"900",["961"]]]]') {
158
+ throw r;
159
+ }
160
+ }
161
+ {
162
+ _map = remove(_map)("81");
163
+ if (_map === null) {
164
+ throw null;
165
+ }
166
+ const r = jsonStr(_map);
167
+ if (r !==
168
+ '[[[["100","1024"],"1089",["1156"],"121",["1225"]],"1296",[["1369"],"144",["1444"],"169",["196","225"]],"256",[["289"],"324",["361"],"400",["441","484"]]],' +
169
+ '"529",' +
170
+ '[[["576"],"625",["676"]],"729",[["784"],"841",["900","961"]]]]') {
171
+ throw r;
172
+ }
173
+ }
174
+ {
175
+ _map = remove(_map)("100");
176
+ if (_map === null) {
177
+ throw null;
178
+ }
179
+ const r = jsonStr(_map);
180
+ if (r !==
181
+ '[[[["1024"],"1089",["1156"],"121",["1225"]],"1296",[["1369"],"144",["1444"],"169",["196","225"]],"256",[["289"],"324",["361"],"400",["441","484"]]],' +
182
+ '"529",' +
183
+ '[[["576"],"625",["676"]],"729",[["784"],"841",["900","961"]]]]') {
184
+ throw r;
185
+ }
186
+ }
187
+ {
188
+ _map = remove(_map)("121");
189
+ if (_map === null) {
190
+ throw null;
191
+ }
192
+ const r = jsonStr(_map);
193
+ if (r !==
194
+ '[[[["1024"],"1089",["1156","1225"]],"1296",[["1369"],"144",["1444"],"169",["196","225"]],"256",[["289"],"324",["361"],"400",["441","484"]]],' +
195
+ '"529",' +
196
+ '[[["576"],"625",["676"]],"729",[["784"],"841",["900","961"]]]]') {
197
+ throw r;
198
+ }
199
+ }
200
+ {
201
+ _map = remove(_map)("144");
202
+ if (_map === null) {
203
+ throw null;
204
+ }
205
+ const r = jsonStr(_map);
206
+ if (r !==
207
+ '[[[["1024"],"1089",["1156","1225"]],"1296",[["1369","1444"],"169",["196","225"]],"256",[["289"],"324",["361"],"400",["441","484"]]],' +
208
+ '"529",' +
209
+ '[[["576"],"625",["676"]],"729",[["784"],"841",["900","961"]]]]') {
210
+ throw r;
211
+ }
212
+ }
213
+ {
214
+ _map = remove(_map)("169");
215
+ if (_map === null) {
216
+ throw null;
217
+ }
218
+ const r = jsonStr(_map);
219
+ if (r !==
220
+ '[[[["1024"],"1089",["1156","1225"]],"1296",[["1369","1444"],"196",["225"]],"256",[["289"],"324",["361"],"400",["441","484"]]],' +
221
+ '"529",' +
222
+ '[[["576"],"625",["676"]],"729",[["784"],"841",["900","961"]]]]') {
223
+ throw r;
224
+ }
225
+ }
226
+ {
227
+ _map = remove(_map)("196");
228
+ if (_map === null) {
229
+ throw null;
230
+ }
231
+ const r = jsonStr(_map);
232
+ if (r !==
233
+ '[[[["1024"],"1089",["1156","1225"]],"1296",[["1369"],"1444",["225"]],"256",[["289"],"324",["361"],"400",["441","484"]]],' +
234
+ '"529",' +
235
+ '[[["576"],"625",["676"]],"729",[["784"],"841",["900","961"]]]]') {
236
+ throw r;
237
+ }
238
+ }
239
+ {
240
+ _map = remove(_map)("225");
241
+ if (_map === null) {
242
+ throw null;
243
+ }
244
+ const r = jsonStr(_map);
245
+ if (r !==
246
+ '[[[["1024"],"1089",["1156","1225"],"1296",["1369","1444"]],"256",[["289"],"324",["361"],"400",["441","484"]]],' +
247
+ '"529",' +
248
+ '[[["576"],"625",["676"]],"729",[["784"],"841",["900","961"]]]]') {
249
+ throw r;
250
+ }
251
+ }
252
+ {
253
+ _map = remove(_map)("256");
254
+ if (_map === null) {
255
+ throw null;
256
+ }
257
+ const r = jsonStr(_map);
258
+ if (r !==
259
+ '[[[["1024"],"1089",["1156","1225"],"1296",["1369","1444"]],"289",[["324","361"],"400",["441","484"]]],' +
260
+ '"529",' +
261
+ '[[["576"],"625",["676"]],"729",[["784"],"841",["900","961"]]]]') {
262
+ throw r;
263
+ }
264
+ }
265
+ {
266
+ _map = remove(_map)("289");
267
+ if (_map === null) {
268
+ throw null;
269
+ }
270
+ const r = jsonStr(_map);
271
+ if (r !==
272
+ '[[[["1024"],"1089",["1156","1225"],"1296",["1369","1444"]],"324",[["361"],"400",["441","484"]]],' +
273
+ '"529",' +
274
+ '[[["576"],"625",["676"]],"729",[["784"],"841",["900","961"]]]]') {
275
+ throw r;
276
+ }
277
+ }
278
+ {
279
+ _map = remove(_map)("324");
280
+ if (_map === null) {
281
+ throw null;
282
+ }
283
+ const r = jsonStr(_map);
284
+ if (r !==
285
+ '[[[["1024"],"1089",["1156","1225"],"1296",["1369","1444"]],"361",[["400"],"441",["484"]]],' +
286
+ '"529",' +
287
+ '[[["576"],"625",["676"]],"729",[["784"],"841",["900","961"]]]]') {
288
+ throw r;
289
+ }
290
+ }
291
+ {
292
+ _map = remove(_map)("361");
293
+ if (_map === null) {
294
+ throw null;
295
+ }
296
+ const r = jsonStr(_map);
297
+ if (r !==
298
+ '[[[["1024"],"1089",["1156","1225"]],"1296",[["1369","1444"],"400",["441","484"]]],' +
299
+ '"529",' +
300
+ '[[["576"],"625",["676"]],"729",[["784"],"841",["900","961"]]]]') {
301
+ throw r;
302
+ }
303
+ }
304
+ {
305
+ _map = remove(_map)("400");
306
+ if (_map === null) {
307
+ throw null;
308
+ }
309
+ const r = jsonStr(_map);
310
+ if (r !==
311
+ '[[[["1024"],"1089",["1156","1225"]],"1296",[["1369","1444"],"441",["484"]]],' +
312
+ '"529",' +
313
+ '[[["576"],"625",["676"]],"729",[["784"],"841",["900","961"]]]]') {
314
+ throw r;
315
+ }
316
+ }
317
+ {
318
+ _map = remove(_map)("441");
319
+ if (_map === null) {
320
+ throw null;
321
+ }
322
+ const r = jsonStr(_map);
323
+ if (r !==
324
+ '[[[["1024"],"1089",["1156","1225"]],"1296",[["1369"],"1444",["484"]]],' +
325
+ '"529",' +
326
+ '[[["576"],"625",["676"]],"729",[["784"],"841",["900","961"]]]]') {
327
+ throw r;
328
+ }
329
+ }
330
+ {
331
+ _map = remove(_map)("484");
332
+ if (_map === null) {
333
+ throw null;
334
+ }
335
+ const r = jsonStr(_map);
336
+ if (r !==
337
+ '[[["1024"],"1089",["1156","1225"],"1296",["1369","1444"]],' +
338
+ '"529",' +
339
+ '[["576"],"625",["676"]],' +
340
+ '"729",' +
341
+ '[["784"],"841",["900","961"]]]') {
342
+ throw r;
343
+ }
344
+ }
345
+ {
346
+ _map = remove(_map)("529");
347
+ if (_map === null) {
348
+ throw null;
349
+ }
350
+ const r = jsonStr(_map);
351
+ if (r !==
352
+ '[[["1024"],"1089",["1156","1225"]],"1296",[["1369","1444"],"576",["625","676"]],' +
353
+ '"729",' +
354
+ '[["784"],"841",["900","961"]]]') {
355
+ throw r;
356
+ }
357
+ }
358
+ {
359
+ _map = remove(_map)("576");
360
+ if (_map === null) {
361
+ throw null;
362
+ }
363
+ const r = jsonStr(_map);
364
+ if (r !==
365
+ '[[["1024"],"1089",["1156","1225"]],"1296",[["1369","1444"],"625",["676"]],' +
366
+ '"729",' +
367
+ '[["784"],"841",["900","961"]]]') {
368
+ throw r;
369
+ }
370
+ }
371
+ {
372
+ _map = remove(_map)("625");
373
+ if (_map === null) {
374
+ throw null;
375
+ }
376
+ const r = jsonStr(_map);
377
+ if (r !==
378
+ '[[["1024"],"1089",["1156","1225"]],"1296",[["1369"],"1444",["676"]],' +
379
+ '"729",' +
380
+ '[["784"],"841",["900","961"]]]') {
381
+ throw r;
382
+ }
383
+ }
384
+ {
385
+ _map = remove(_map)("676");
386
+ if (_map === null) {
387
+ throw null;
388
+ }
389
+ const r = jsonStr(_map);
390
+ if (r !==
391
+ '[[["1024"],"1089",["1156","1225"],"1296",["1369","1444"]],' +
392
+ '"729",' +
393
+ '[["784"],"841",["900","961"]]]') {
394
+ throw r;
395
+ }
396
+ }
397
+ {
398
+ _map = remove(_map)("729");
399
+ if (_map === null) {
400
+ throw null;
401
+ }
402
+ const r = jsonStr(_map);
403
+ if (r !==
404
+ '[[["1024"],"1089",["1156","1225"],"1296",["1369","1444"]],' +
405
+ '"784",' +
406
+ '[["841"],"900",["961"]]]') {
407
+ throw r;
408
+ }
409
+ }
410
+ {
411
+ _map = remove(_map)("784");
412
+ if (_map === null) {
413
+ throw null;
414
+ }
415
+ const r = jsonStr(_map);
416
+ if (r !==
417
+ '[[["1024"],"1089",["1156","1225"]],"1296",[["1369","1444"],"841",["900","961"]]]') {
418
+ throw r;
419
+ }
420
+ }
421
+ {
422
+ _map = remove(_map)("841");
423
+ if (_map === null) {
424
+ throw null;
425
+ }
426
+ const r = jsonStr(_map);
427
+ if (r !==
428
+ '[[["1024"],"1089",["1156","1225"]],"1296",[["1369","1444"],"900",["961"]]]') {
429
+ throw r;
430
+ }
431
+ }
432
+ {
433
+ _map = remove(_map)("900");
434
+ if (_map === null) {
435
+ throw null;
436
+ }
437
+ const r = jsonStr(_map);
438
+ if (r !==
439
+ '[[["1024"],"1089",["1156","1225"]],"1296",[["1369"],"1444",["961"]]]') {
440
+ throw r;
441
+ }
442
+ }
443
+ {
444
+ _map = remove(_map)("961");
445
+ if (_map === null) {
446
+ throw null;
447
+ }
448
+ const r = jsonStr(_map);
449
+ if (r !==
450
+ '[["1024"],"1089",["1156","1225"],"1296",["1369","1444"]]') {
451
+ throw r;
452
+ }
453
+ }
454
+ {
455
+ _map = remove(_map)("1024");
456
+ if (_map === null) {
457
+ throw null;
458
+ }
459
+ const r = jsonStr(_map);
460
+ if (r !==
461
+ '[["1089"],"1156",["1225"],"1296",["1369","1444"]]') {
462
+ throw r;
463
+ }
464
+ }
465
+ {
466
+ _map = remove(_map)("1089");
467
+ if (_map === null) {
468
+ throw null;
469
+ }
470
+ const r = jsonStr(_map);
471
+ if (r !==
472
+ '[["1156","1225"],"1296",["1369","1444"]]') {
473
+ throw r;
474
+ }
475
+ }
476
+ {
477
+ _map = remove(_map)("1156");
478
+ if (_map === null) {
479
+ throw null;
480
+ }
481
+ const r = jsonStr(_map);
482
+ if (r !==
483
+ '[["1225"],"1296",["1369","1444"]]') {
484
+ throw r;
485
+ }
486
+ }
487
+ {
488
+ _map = remove(_map)("1225");
489
+ if (_map === null) {
490
+ throw null;
491
+ }
492
+ const r = jsonStr(_map);
493
+ if (r !==
494
+ '[["1296"],"1369",["1444"]]') {
495
+ throw r;
496
+ }
497
+ }
498
+ {
499
+ _map = remove(_map)("1296");
500
+ if (_map === null) {
501
+ throw null;
502
+ }
503
+ const r = jsonStr(_map);
504
+ if (r !==
505
+ '["1369","1444"]') {
506
+ throw r;
507
+ }
508
+ }
509
+ {
510
+ _map = remove(_map)("1369");
511
+ if (_map === null) {
512
+ throw null;
513
+ }
514
+ const r = jsonStr(_map);
515
+ if (r !== '["1444"]') {
516
+ throw r;
517
+ }
518
+ }
519
+ {
520
+ _map = remove(_map)("1444");
521
+ if (_map !== null) {
522
+ throw _map;
523
+ }
524
+ }
525
+ };
526
+ const test2 = () => {
527
+ /** @type {BTree.Node<string>|null} */
528
+ let _map = ['1'];
529
+ for (let i = 2; i <= 10; i++)
530
+ _map = set(_map)((i * i).toString());
531
+ if (_map.length !== 3) {
532
+ throw _map;
533
+ }
534
+ let _s = jsonStr(_map);
535
+ if (_s !== '[[["1","100"],"16",["25","36"]],"4",[["49"],"64",["81","9"]]]') {
536
+ throw _s;
537
+ }
538
+ {
539
+ _map = remove(_map)("4");
540
+ if (_map === null) {
541
+ throw _map;
542
+ }
543
+ _s = jsonStr(_map);
544
+ if (_s !== '[[["1","100"],"16",["25","36"]],"49",[["64"],"81",["9"]]]') {
545
+ throw _s;
546
+ }
547
+ }
548
+ {
549
+ _map = remove(_map)("49");
550
+ if (_map === null) {
551
+ throw _map;
552
+ }
553
+ _s = jsonStr(_map);
554
+ if (_s !== '[["1","100"],"16",["25","36"],"64",["81","9"]]') {
555
+ throw _s;
556
+ }
557
+ }
558
+ {
559
+ _map = remove(_map)("64");
560
+ if (_map === null) {
561
+ throw _map;
562
+ }
563
+ _s = jsonStr(_map);
564
+ if (_s !== '[["1","100"],"16",["25","36"],"81",["9"]]') {
565
+ throw _s;
566
+ }
567
+ }
568
+ {
569
+ _map = remove(_map)("81");
570
+ if (_map === null) {
571
+ throw _map;
572
+ }
573
+ _s = jsonStr(_map);
574
+ if (_s !== '[["1","100"],"16",["25"],"36",["9"]]') {
575
+ throw _s;
576
+ }
577
+ }
578
+ {
579
+ _map = remove(_map)("36");
580
+ if (_map === null) {
581
+ throw _map;
582
+ }
583
+ _s = jsonStr(_map);
584
+ if (_s !== '[["1","100"],"16",["25","9"]]') {
585
+ throw _s;
586
+ }
587
+ }
588
+ {
589
+ _map = remove(_map)("16");
590
+ if (_map === null) {
591
+ throw _map;
592
+ }
593
+ _s = jsonStr(_map);
594
+ if (_s !== '[["1","100"],"25",["9"]]') {
595
+ throw _s;
596
+ }
597
+ }
598
+ {
599
+ _map = remove(_map)("25");
600
+ if (_map === null) {
601
+ throw _map;
602
+ }
603
+ _s = jsonStr(_map);
604
+ if (_s !== '[["1"],"100",["9"]]') {
605
+ throw _s;
606
+ }
607
+ }
608
+ {
609
+ _map = remove(_map)("100");
610
+ if (_map === null) {
611
+ throw _map;
612
+ }
613
+ _s = jsonStr(_map);
614
+ if (_s !== '["1","9"]') {
615
+ throw _s;
616
+ }
617
+ }
618
+ {
619
+ _map = remove(_map)("9");
620
+ if (_map === null) {
621
+ throw _map;
622
+ }
623
+ _s = jsonStr(_map);
624
+ if (_s !== '["1"]') {
625
+ throw _s;
626
+ }
627
+ }
628
+ {
629
+ _map = remove(_map)("1");
630
+ if (_map !== null) {
631
+ throw _map;
632
+ }
633
+ }
634
+ };
635
+ export default {
636
+ test,
637
+ test2,
638
+ };