superacli 1.1.6 → 1.1.7

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 (1262) hide show
  1. package/README.md +77 -53
  2. package/__tests__/azd-plugin.test.js +109 -0
  3. package/__tests__/config.test.js +4 -3
  4. package/__tests__/discover.test.js +59 -0
  5. package/__tests__/goose-plugin.test.js +149 -0
  6. package/__tests__/help-json.test.js +2 -0
  7. package/__tests__/openhands-plugin.test.js +106 -0
  8. package/__tests__/plugin-cocoindex-code-uninstall.test.js +19 -0
  9. package/__tests__/plugin-cocoindex-code.test.js +37 -0
  10. package/__tests__/plugin-install-guidance.test.js +81 -0
  11. package/__tests__/plugins-registry.test.js +44 -0
  12. package/__tests__/plugins-store.test.js +40 -5
  13. package/__tests__/process-adapter.test.js +50 -1
  14. package/__tests__/server-app.test.js +1 -0
  15. package/__tests__/server-routes-commands.test.js +20 -2
  16. package/__tests__/server-routes-plugins.test.js +130 -0
  17. package/__tests__/skills.test.js +26 -0
  18. package/__tests__/squirrelscan-plugin.test.js +129 -0
  19. package/__tests__/uipath-plugin.test.js +104 -0
  20. package/__tests__/uipathcli-plugin.test.js +95 -0
  21. package/cli/adapters/mcp.js +2 -0
  22. package/cli/adapters/process.js +49 -2
  23. package/cli/config.js +240 -3
  24. package/cli/discover.js +157 -0
  25. package/cli/help-json.js +16 -1
  26. package/cli/plugin-install-guidance.js +92 -37
  27. package/cli/plugins-manager.js +1 -0
  28. package/cli/plugins-registry.js +74 -8
  29. package/cli/plugins-store.js +78 -17
  30. package/cli/skills-mcp.js +1 -1
  31. package/cli/skills.js +39 -2
  32. package/cli/supercli.js +87 -11
  33. package/docs/feature-gaps.md +8 -8
  34. package/docs/features/azd-uipath-plugins.md +43 -0
  35. package/docs/features/server-plugins.md +62 -0
  36. package/docs/features/skills.md +9 -5
  37. package/docs/{supported-harnesses.md → plugins-available.md} +4 -3
  38. package/docs/{plugin-harness-guide.md → plugins-how-to.md} +1 -1
  39. package/docs/plugins.md +26 -20
  40. package/docs/server-plugins-usage-guide.md +182 -0
  41. package/docs/skills-catalog.md +12 -10
  42. package/package.json +1 -1
  43. package/plugins/agent-browser/README.md +69 -0
  44. package/plugins/agent-browser/plugin.json +111 -0
  45. package/plugins/agent-browser/skills/quickstart/SKILL.md +66 -0
  46. package/plugins/aider/README.md +53 -0
  47. package/plugins/aider/plugin.json +105 -0
  48. package/plugins/aider/scripts/aider-wrapper.js +243 -0
  49. package/plugins/aider/scripts/setup-aider.js +37 -0
  50. package/plugins/aider/skills/dry-run-review.md +24 -0
  51. package/plugins/aider/skills/model-and-provider.md +24 -0
  52. package/plugins/aider/skills/one-shot-edits.md +30 -0
  53. package/plugins/aider/skills/quickstart/SKILL.md +51 -0
  54. package/plugins/azd/README.md +28 -0
  55. package/plugins/azd/plugin.json +87 -0
  56. package/plugins/azd/skills/quickstart/SKILL.md +41 -0
  57. package/plugins/blogwatcher/README.md +3 -3
  58. package/plugins/boxlite/Dockerfile +9 -0
  59. package/plugins/boxlite/README.md +62 -0
  60. package/plugins/boxlite/plugin.json +201 -0
  61. package/plugins/boxlite/scripts/run-boxlite.js +106 -0
  62. package/plugins/boxlite/skills/quickstart/SKILL.md +40 -0
  63. package/plugins/cass/plugin.json +150 -0
  64. package/plugins/cass/scripts/setup-cass.js +47 -0
  65. package/plugins/cass/skills/quickstart/SKILL.md +46 -0
  66. package/plugins/clever/README.md +46 -0
  67. package/plugins/clever/plugin.json +119 -0
  68. package/plugins/clever/scripts/setup-clever.js +28 -0
  69. package/plugins/clever/skills/auth-and-profile.md +29 -0
  70. package/plugins/clever/skills/passthrough-safety.md +21 -0
  71. package/plugins/clever/skills/quickstart/SKILL.md +45 -0
  72. package/plugins/clever/skills/resource-inventory.md +24 -0
  73. package/plugins/clix/README.md +4 -4
  74. package/plugins/cocoindex-code/README.md +64 -0
  75. package/plugins/cocoindex-code/plugin.json +81 -0
  76. package/plugins/cocoindex-code/scripts/__pycache__/query.cpython-310.pyc +0 -0
  77. package/plugins/cocoindex-code/scripts/__pycache__/query.cpython-311.pyc +0 -0
  78. package/plugins/cocoindex-code/scripts/post-install.js +61 -0
  79. package/plugins/cocoindex-code/scripts/post-uninstall.js +25 -0
  80. package/plugins/cocoindex-code/scripts/query.py +88 -0
  81. package/plugins/cocoindex-code/scripts/run-query.js +50 -0
  82. package/plugins/cocoindex-code/skills/quickstart/SKILL.md +73 -0
  83. package/plugins/copilot/README.md +24 -0
  84. package/plugins/copilot/plugin.json +80 -0
  85. package/plugins/copilot/skills/quickstart/SKILL.md +44 -0
  86. package/plugins/gemini/README.md +24 -0
  87. package/plugins/gemini/plugin.json +98 -0
  88. package/plugins/gemini/skills/quickstart/SKILL.md +44 -0
  89. package/plugins/gifcap/plugin.json +119 -0
  90. package/plugins/gifcap/scripts/setup-gifcap.js +44 -0
  91. package/plugins/gifcap/skills/quickstart/SKILL.md +34 -0
  92. package/plugins/gifcap/test-record-quiet.gif +0 -0
  93. package/plugins/gifcap/test-record.gif +0 -0
  94. package/plugins/goose/README.md +36 -0
  95. package/plugins/goose/plugin.json +183 -0
  96. package/plugins/goose/skills/quickstart/SKILL.md +44 -0
  97. package/plugins/json-server/README.md +58 -0
  98. package/plugins/json-server/plugin.json +113 -0
  99. package/plugins/json-server/skills/quickstart/SKILL.md +57 -0
  100. package/plugins/lightpanda/README.md +145 -0
  101. package/plugins/lightpanda/package-lock.json +1375 -0
  102. package/plugins/lightpanda/package.json +12 -0
  103. package/plugins/lightpanda/plugin.json +116 -0
  104. package/plugins/lightpanda/scripts/lightpanda-contacts.js +494 -0
  105. package/plugins/lightpanda/scripts/lightpanda-generic-extract.js +403 -0
  106. package/plugins/lightpanda/scripts/lightpanda-wrapper.js +480 -0
  107. package/plugins/lightpanda/scripts/setup-lightpanda.js +39 -0
  108. package/plugins/lightpanda/skills/contact-discovery.md +51 -0
  109. package/plugins/lightpanda/skills/generic-extraction.md +66 -0
  110. package/plugins/lightpanda/skills/quickstart/SKILL.md +103 -0
  111. package/plugins/lightpanda/skills/resilient-navigation.md +42 -0
  112. package/plugins/monty/README.md +2 -2
  113. package/plugins/nullclaw/README.md +3 -3
  114. package/plugins/offline-ai/README.md +23 -0
  115. package/plugins/offline-ai/plugin.json +82 -0
  116. package/plugins/offline-ai/skills/quickstart/SKILL.md +43 -0
  117. package/plugins/openhands/README.md +25 -0
  118. package/plugins/openhands/plugin.json +116 -0
  119. package/plugins/openhands/skills/quickstart/SKILL.md +26 -0
  120. package/plugins/plandex/README.md +25 -0
  121. package/plugins/plandex/plugin.json +130 -0
  122. package/plugins/plandex/skills/quickstart/SKILL.md +50 -0
  123. package/plugins/plugins.json +188 -0
  124. package/plugins/squirrelscan/Dockerfile +5 -0
  125. package/plugins/squirrelscan/README.md +47 -0
  126. package/plugins/squirrelscan/plugin.json +493 -0
  127. package/plugins/squirrelscan/scripts/post-install.js +33 -0
  128. package/plugins/squirrelscan/scripts/post-uninstall.js +25 -0
  129. package/plugins/squirrelscan/scripts/run-squirrel.js +73 -0
  130. package/plugins/squirrelscan/skills/audit-workflow/SKILL.md +33 -0
  131. package/plugins/squirrelscan/skills/publish-report/SKILL.md +33 -0
  132. package/plugins/squirrelscan/skills/quickstart/SKILL.md +41 -0
  133. package/plugins/uipath/README.md +27 -0
  134. package/plugins/uipath/plugin.json +86 -0
  135. package/plugins/uipath/skills/quickstart/SKILL.md +47 -0
  136. package/plugins/uipathcli/README.md +28 -0
  137. package/plugins/uipathcli/plugin.json +120 -0
  138. package/plugins/uipathcli/scripts/run-uipath-cli.js +49 -0
  139. package/plugins/uipathcli/skills/quickstart/SKILL.md +22 -0
  140. package/plugins/xurl/README.md +4 -4
  141. package/server/app.js +5 -2
  142. package/server/public/app.js +3 -0
  143. package/server/routes/commands.js +95 -12
  144. package/server/routes/plugins.js +262 -0
  145. package/server/services/pluginsService.js +303 -0
  146. package/server/views/command-edit.ejs +196 -14
  147. package/server/views/partials/head.ejs +1 -0
  148. package/server/views/plugins.ejs +264 -0
  149. package/tests/test-plugins-registry.js +30 -0
  150. package/.beads/.br_history/issues.20260308_200823_636718328.jsonl +0 -20
  151. package/.beads/.br_history/issues.20260308_200823_636718328.jsonl.meta.json +0 -1
  152. package/.beads/.br_history/issues.20260308_200827_033159453.jsonl +0 -21
  153. package/.beads/.br_history/issues.20260308_200827_033159453.jsonl.meta.json +0 -1
  154. package/.beads/.br_history/issues.20260308_200829_595900053.jsonl +0 -22
  155. package/.beads/.br_history/issues.20260308_200829_595900053.jsonl.meta.json +0 -1
  156. package/.beads/.br_history/issues.20260308_200834_079930100.jsonl +0 -23
  157. package/.beads/.br_history/issues.20260308_200834_079930100.jsonl.meta.json +0 -1
  158. package/.beads/.br_history/issues.20260308_200858_370924996.jsonl +0 -24
  159. package/.beads/.br_history/issues.20260308_200858_370924996.jsonl.meta.json +0 -1
  160. package/.beads/.br_history/issues.20260308_201031_019730855.jsonl +0 -24
  161. package/.beads/.br_history/issues.20260308_201031_019730855.jsonl.meta.json +0 -1
  162. package/.beads/.br_history/issues.20260308_201031_578974884.jsonl +0 -24
  163. package/.beads/.br_history/issues.20260308_201031_578974884.jsonl.meta.json +0 -1
  164. package/.beads/.br_history/issues.20260308_201054_780345548.jsonl +0 -24
  165. package/.beads/.br_history/issues.20260308_201054_780345548.jsonl.meta.json +0 -1
  166. package/.beads/.br_history/issues.20260308_201054_896980019.jsonl +0 -24
  167. package/.beads/.br_history/issues.20260308_201054_896980019.jsonl.meta.json +0 -1
  168. package/.beads/.br_history/issues.20260308_201128_599819688.jsonl +0 -24
  169. package/.beads/.br_history/issues.20260308_201128_599819688.jsonl.meta.json +0 -1
  170. package/.beads/.br_history/issues.20260308_201128_710221699.jsonl +0 -24
  171. package/.beads/.br_history/issues.20260308_201128_710221699.jsonl.meta.json +0 -1
  172. package/.beads/.br_history/issues.20260308_201204_745649213.jsonl +0 -24
  173. package/.beads/.br_history/issues.20260308_201204_745649213.jsonl.meta.json +0 -1
  174. package/.beads/.br_history/issues.20260308_201338_908436144.jsonl +0 -24
  175. package/.beads/.br_history/issues.20260308_201338_908436144.jsonl.meta.json +0 -1
  176. package/.beads/.br_history/issues.20260308_201344_734860714.jsonl +0 -25
  177. package/.beads/.br_history/issues.20260308_201344_734860714.jsonl.meta.json +0 -1
  178. package/.beads/.br_history/issues.20260308_201630_819282295.jsonl +0 -25
  179. package/.beads/.br_history/issues.20260308_201630_819282295.jsonl.meta.json +0 -1
  180. package/.beads/.br_history/issues.20260308_203538_054279699.jsonl +0 -25
  181. package/.beads/.br_history/issues.20260308_203538_054279699.jsonl.meta.json +0 -1
  182. package/.beads/.br_history/issues.20260308_203547_597113070.jsonl +0 -26
  183. package/.beads/.br_history/issues.20260308_203547_597113070.jsonl.meta.json +0 -1
  184. package/.beads/.br_history/issues.20260308_203547_775139216.jsonl +0 -27
  185. package/.beads/.br_history/issues.20260308_203547_775139216.jsonl.meta.json +0 -1
  186. package/.beads/.br_history/issues.20260308_203547_950724773.jsonl +0 -28
  187. package/.beads/.br_history/issues.20260308_203547_950724773.jsonl.meta.json +0 -1
  188. package/.beads/.br_history/issues.20260308_203548_107684523.jsonl +0 -29
  189. package/.beads/.br_history/issues.20260308_203548_107684523.jsonl.meta.json +0 -1
  190. package/.beads/.br_history/issues.20260308_203548_310389993.jsonl +0 -30
  191. package/.beads/.br_history/issues.20260308_203548_310389993.jsonl.meta.json +0 -1
  192. package/.beads/.br_history/issues.20260308_203825_953337320.jsonl +0 -31
  193. package/.beads/.br_history/issues.20260308_203825_953337320.jsonl.meta.json +0 -1
  194. package/.beads/.br_history/issues.20260308_204056_071377736.jsonl +0 -32
  195. package/.beads/.br_history/issues.20260308_204056_071377736.jsonl.meta.json +0 -1
  196. package/.beads/.br_history/issues.20260308_205141_517616844.jsonl +0 -32
  197. package/.beads/.br_history/issues.20260308_205141_517616844.jsonl.meta.json +0 -1
  198. package/.beads/.br_history/issues.20260308_205141_648994024.jsonl +0 -32
  199. package/.beads/.br_history/issues.20260308_205141_648994024.jsonl.meta.json +0 -1
  200. package/.beads/.br_history/issues.20260308_205141_867598036.jsonl +0 -32
  201. package/.beads/.br_history/issues.20260308_205141_867598036.jsonl.meta.json +0 -1
  202. package/.beads/.br_history/issues.20260308_205142_094157355.jsonl +0 -32
  203. package/.beads/.br_history/issues.20260308_205142_094157355.jsonl.meta.json +0 -1
  204. package/.beads/.br_history/issues.20260308_205142_327315677.jsonl +0 -32
  205. package/.beads/.br_history/issues.20260308_205142_327315677.jsonl.meta.json +0 -1
  206. package/.beads/.br_history/issues.20260308_205142_545563822.jsonl +0 -32
  207. package/.beads/.br_history/issues.20260308_205142_545563822.jsonl.meta.json +0 -1
  208. package/.beads/.br_history/issues.20260308_205213_061989333.jsonl +0 -32
  209. package/.beads/.br_history/issues.20260308_205213_061989333.jsonl.meta.json +0 -1
  210. package/.beads/.br_history/issues.20260308_205213_181103364.jsonl +0 -32
  211. package/.beads/.br_history/issues.20260308_205213_181103364.jsonl.meta.json +0 -1
  212. package/.beads/.br_history/issues.20260308_205213_408872234.jsonl +0 -32
  213. package/.beads/.br_history/issues.20260308_205213_408872234.jsonl.meta.json +0 -1
  214. package/.beads/.br_history/issues.20260308_205213_616681652.jsonl +0 -32
  215. package/.beads/.br_history/issues.20260308_205213_616681652.jsonl.meta.json +0 -1
  216. package/.beads/.br_history/issues.20260308_205213_821507069.jsonl +0 -32
  217. package/.beads/.br_history/issues.20260308_205213_821507069.jsonl.meta.json +0 -1
  218. package/.beads/.br_history/issues.20260308_205214_026661112.jsonl +0 -32
  219. package/.beads/.br_history/issues.20260308_205214_026661112.jsonl.meta.json +0 -1
  220. package/.beads/.br_history/issues.20260308_205454_955250554.jsonl +0 -32
  221. package/.beads/.br_history/issues.20260308_205454_955250554.jsonl.meta.json +0 -1
  222. package/.beads/.br_history/issues.20260308_205556_337800392.jsonl +0 -33
  223. package/.beads/.br_history/issues.20260308_205556_337800392.jsonl.meta.json +0 -1
  224. package/.beads/.br_history/issues.20260308_205824_274686694.jsonl +0 -33
  225. package/.beads/.br_history/issues.20260308_205824_274686694.jsonl.meta.json +0 -1
  226. package/.beads/.br_history/issues.20260308_210240_583768328.jsonl +0 -34
  227. package/.beads/.br_history/issues.20260308_210240_583768328.jsonl.meta.json +0 -1
  228. package/.beads/.br_history/issues.20260308_212223_641541494.jsonl +0 -34
  229. package/.beads/.br_history/issues.20260308_212223_641541494.jsonl.meta.json +0 -1
  230. package/.beads/.br_history/issues.20260308_212227_735550996.jsonl +0 -35
  231. package/.beads/.br_history/issues.20260308_212227_735550996.jsonl.meta.json +0 -1
  232. package/.beads/.br_history/issues.20260308_212232_547298548.jsonl +0 -36
  233. package/.beads/.br_history/issues.20260308_212232_547298548.jsonl.meta.json +0 -1
  234. package/.beads/.br_history/issues.20260308_212528_843628125.jsonl +0 -37
  235. package/.beads/.br_history/issues.20260308_212528_843628125.jsonl.meta.json +0 -1
  236. package/.beads/.br_history/issues.20260308_212529_094530502.jsonl +0 -38
  237. package/.beads/.br_history/issues.20260308_212529_094530502.jsonl.meta.json +0 -1
  238. package/.beads/.br_history/issues.20260308_212529_331000853.jsonl +0 -39
  239. package/.beads/.br_history/issues.20260308_212529_331000853.jsonl.meta.json +0 -1
  240. package/.beads/.br_history/issues.20260308_212529_587925652.jsonl +0 -40
  241. package/.beads/.br_history/issues.20260308_212529_587925652.jsonl.meta.json +0 -1
  242. package/.beads/.br_history/issues.20260308_212804_927764103.jsonl +0 -41
  243. package/.beads/.br_history/issues.20260308_212804_927764103.jsonl.meta.json +0 -1
  244. package/.beads/.br_history/issues.20260308_212805_153673453.jsonl +0 -42
  245. package/.beads/.br_history/issues.20260308_212805_153673453.jsonl.meta.json +0 -1
  246. package/.beads/.br_history/issues.20260308_212805_415982363.jsonl +0 -43
  247. package/.beads/.br_history/issues.20260308_212805_415982363.jsonl.meta.json +0 -1
  248. package/.beads/.br_history/issues.20260308_212805_657497741.jsonl +0 -44
  249. package/.beads/.br_history/issues.20260308_212805_657497741.jsonl.meta.json +0 -1
  250. package/.beads/.br_history/issues.20260308_212805_952838724.jsonl +0 -45
  251. package/.beads/.br_history/issues.20260308_212805_952838724.jsonl.meta.json +0 -1
  252. package/.beads/.br_history/issues.20260308_212806_325433779.jsonl +0 -46
  253. package/.beads/.br_history/issues.20260308_212806_325433779.jsonl.meta.json +0 -1
  254. package/.beads/.br_history/issues.20260308_212806_584685598.jsonl +0 -47
  255. package/.beads/.br_history/issues.20260308_212806_584685598.jsonl.meta.json +0 -1
  256. package/.beads/.br_history/issues.20260308_212806_827817208.jsonl +0 -48
  257. package/.beads/.br_history/issues.20260308_212806_827817208.jsonl.meta.json +0 -1
  258. package/.beads/.br_history/issues.20260308_212807_111320451.jsonl +0 -49
  259. package/.beads/.br_history/issues.20260308_212807_111320451.jsonl.meta.json +0 -1
  260. package/.beads/.br_history/issues.20260308_212807_409545536.jsonl +0 -50
  261. package/.beads/.br_history/issues.20260308_212807_409545536.jsonl.meta.json +0 -1
  262. package/.beads/.br_history/issues.20260308_212807_625063294.jsonl +0 -51
  263. package/.beads/.br_history/issues.20260308_212807_625063294.jsonl.meta.json +0 -1
  264. package/.beads/.br_history/issues.20260308_212807_843906551.jsonl +0 -52
  265. package/.beads/.br_history/issues.20260308_212807_843906551.jsonl.meta.json +0 -1
  266. package/.beads/.br_history/issues.20260308_212808_100304073.jsonl +0 -53
  267. package/.beads/.br_history/issues.20260308_212808_100304073.jsonl.meta.json +0 -1
  268. package/.beads/.br_history/issues.20260308_212808_324723976.jsonl +0 -54
  269. package/.beads/.br_history/issues.20260308_212808_324723976.jsonl.meta.json +0 -1
  270. package/.beads/.br_history/issues.20260308_212808_557513104.jsonl +0 -55
  271. package/.beads/.br_history/issues.20260308_212808_557513104.jsonl.meta.json +0 -1
  272. package/.beads/.br_history/issues.20260308_212808_788048322.jsonl +0 -56
  273. package/.beads/.br_history/issues.20260308_212808_788048322.jsonl.meta.json +0 -1
  274. package/.beads/.br_history/issues.20260308_213702_613249728.jsonl +0 -57
  275. package/.beads/.br_history/issues.20260308_213702_613249728.jsonl.meta.json +0 -1
  276. package/.beads/.br_history/issues.20260308_213715_115792063.jsonl +0 -57
  277. package/.beads/.br_history/issues.20260308_213715_115792063.jsonl.meta.json +0 -1
  278. package/.beads/.br_history/issues.20260308_213715_462220666.jsonl +0 -57
  279. package/.beads/.br_history/issues.20260308_213715_462220666.jsonl.meta.json +0 -1
  280. package/.beads/.br_history/issues.20260308_213727_191258923.jsonl +0 -57
  281. package/.beads/.br_history/issues.20260308_213727_191258923.jsonl.meta.json +0 -1
  282. package/.beads/.br_history/issues.20260308_213727_684383652.jsonl +0 -57
  283. package/.beads/.br_history/issues.20260308_213727_684383652.jsonl.meta.json +0 -1
  284. package/.beads/.br_history/issues.20260308_213735_751882991.jsonl +0 -57
  285. package/.beads/.br_history/issues.20260308_213735_751882991.jsonl.meta.json +0 -1
  286. package/.beads/.br_history/issues.20260308_222052_279844960.jsonl +0 -57
  287. package/.beads/.br_history/issues.20260308_222052_279844960.jsonl.meta.json +0 -1
  288. package/.beads/.br_history/issues.20260308_222056_873282114.jsonl +0 -57
  289. package/.beads/.br_history/issues.20260308_222056_873282114.jsonl.meta.json +0 -1
  290. package/.beads/.br_history/issues.20260308_222103_402410761.jsonl +0 -57
  291. package/.beads/.br_history/issues.20260308_222103_402410761.jsonl.meta.json +0 -1
  292. package/.beads/.br_history/issues.20260308_235202_180577215.jsonl +0 -57
  293. package/.beads/.br_history/issues.20260308_235202_180577215.jsonl.meta.json +0 -1
  294. package/.beads/.br_history/issues.20260308_235202_387414163.jsonl +0 -57
  295. package/.beads/.br_history/issues.20260308_235202_387414163.jsonl.meta.json +0 -1
  296. package/.beads/.br_history/issues.20260308_235202_564422794.jsonl +0 -57
  297. package/.beads/.br_history/issues.20260308_235202_564422794.jsonl.meta.json +0 -1
  298. package/.beads/.br_history/issues.20260308_235202_742600597.jsonl +0 -57
  299. package/.beads/.br_history/issues.20260308_235202_742600597.jsonl.meta.json +0 -1
  300. package/.beads/.br_history/issues.20260308_235208_133360069.jsonl +0 -57
  301. package/.beads/.br_history/issues.20260308_235208_133360069.jsonl.meta.json +0 -1
  302. package/.beads/.br_history/issues.20260308_235505_473406307.jsonl +0 -57
  303. package/.beads/.br_history/issues.20260308_235505_473406307.jsonl.meta.json +0 -1
  304. package/.beads/.br_history/issues.20260308_235505_662360489.jsonl +0 -57
  305. package/.beads/.br_history/issues.20260308_235505_662360489.jsonl.meta.json +0 -1
  306. package/.beads/.br_history/issues.20260308_235505_843935624.jsonl +0 -57
  307. package/.beads/.br_history/issues.20260308_235505_843935624.jsonl.meta.json +0 -1
  308. package/.beads/.br_history/issues.20260308_235506_044530221.jsonl +0 -57
  309. package/.beads/.br_history/issues.20260308_235506_044530221.jsonl.meta.json +0 -1
  310. package/.beads/.br_history/issues.20260309_002618_115728731.jsonl +0 -57
  311. package/.beads/.br_history/issues.20260309_002618_115728731.jsonl.meta.json +0 -1
  312. package/.beads/.br_history/issues.20260309_003748_878174586.jsonl +0 -57
  313. package/.beads/.br_history/issues.20260309_003748_878174586.jsonl.meta.json +0 -1
  314. package/.beads/.br_history/issues.20260309_004057_868755623.jsonl +0 -57
  315. package/.beads/.br_history/issues.20260309_004057_868755623.jsonl.meta.json +0 -1
  316. package/.beads/.br_history/issues.20260309_004058_512842163.jsonl +0 -57
  317. package/.beads/.br_history/issues.20260309_004058_512842163.jsonl.meta.json +0 -1
  318. package/.beads/.br_history/issues.20260309_004058_994445226.jsonl +0 -57
  319. package/.beads/.br_history/issues.20260309_004058_994445226.jsonl.meta.json +0 -1
  320. package/.beads/.br_history/issues.20260309_004059_475988596.jsonl +0 -57
  321. package/.beads/.br_history/issues.20260309_004059_475988596.jsonl.meta.json +0 -1
  322. package/.beads/.br_history/issues.20260309_161902_566857851.jsonl +0 -57
  323. package/.beads/.br_history/issues.20260309_161902_566857851.jsonl.meta.json +0 -1
  324. package/.beads/.br_history/issues.20260309_170512_277017739.jsonl +0 -57
  325. package/.beads/.br_history/issues.20260309_170512_277017739.jsonl.meta.json +0 -1
  326. package/.beads/.br_history/issues.20260309_170512_477876921.jsonl +0 -57
  327. package/.beads/.br_history/issues.20260309_170512_477876921.jsonl.meta.json +0 -1
  328. package/.beads/.br_history/issues.20260309_170512_664382701.jsonl +0 -57
  329. package/.beads/.br_history/issues.20260309_170512_664382701.jsonl.meta.json +0 -1
  330. package/.beads/.br_history/issues.20260309_170512_859400333.jsonl +0 -57
  331. package/.beads/.br_history/issues.20260309_170512_859400333.jsonl.meta.json +0 -1
  332. package/.beads/.br_history/issues.20260309_212326_082771164.jsonl +0 -57
  333. package/.beads/.br_history/issues.20260309_212326_082771164.jsonl.meta.json +0 -1
  334. package/.beads/.br_history/issues.20260309_212326_245619716.jsonl +0 -58
  335. package/.beads/.br_history/issues.20260309_212326_245619716.jsonl.meta.json +0 -1
  336. package/.beads/.br_history/issues.20260309_212326_403198317.jsonl +0 -59
  337. package/.beads/.br_history/issues.20260309_212326_403198317.jsonl.meta.json +0 -1
  338. package/.beads/.br_history/issues.20260309_212332_539197678.jsonl +0 -60
  339. package/.beads/.br_history/issues.20260309_212332_539197678.jsonl.meta.json +0 -1
  340. package/.beads/.br_history/issues.20260309_212332_731373599.jsonl +0 -60
  341. package/.beads/.br_history/issues.20260309_212332_731373599.jsonl.meta.json +0 -1
  342. package/.beads/.br_history/issues.20260309_212332_928710953.jsonl +0 -60
  343. package/.beads/.br_history/issues.20260309_212332_928710953.jsonl.meta.json +0 -1
  344. package/.beads/.br_history/issues.20260309_213021_341505240.jsonl +0 -60
  345. package/.beads/.br_history/issues.20260309_213021_341505240.jsonl.meta.json +0 -1
  346. package/.beads/.br_history/issues.20260309_213022_023136934.jsonl +0 -60
  347. package/.beads/.br_history/issues.20260309_213022_023136934.jsonl.meta.json +0 -1
  348. package/.beads/.br_history/issues.20260309_213022_400050719.jsonl +0 -60
  349. package/.beads/.br_history/issues.20260309_213022_400050719.jsonl.meta.json +0 -1
  350. package/.beads/config.yaml +0 -4
  351. package/.beads/issues.jsonl +0 -60
  352. package/.beads/metadata.json +0 -4
  353. package/docs/mcp-cheatsheet.md +0 -324
  354. package/docs/visual-overview.md +0 -21
  355. package/ref-monty/.cargo/config.toml +0 -3
  356. package/ref-monty/.claude/settings.json +0 -60
  357. package/ref-monty/.claude/skills/fastmod/SKILL.md +0 -22
  358. package/ref-monty/.claude/skills/python-playground/SKILL.md +0 -47
  359. package/ref-monty/.codecov.yml +0 -12
  360. package/ref-monty/.github/actions/build-pgo-wheel/action.yml +0 -72
  361. package/ref-monty/.github/workflows/ci.yml +0 -776
  362. package/ref-monty/.github/workflows/codspeed.yml +0 -45
  363. package/ref-monty/.github/workflows/init-npm-packages.yml +0 -82
  364. package/ref-monty/.pre-commit-config.yaml +0 -47
  365. package/ref-monty/.python-version +0 -1
  366. package/ref-monty/.rustfmt.toml +0 -4
  367. package/ref-monty/.zed/settings.json +0 -11
  368. package/ref-monty/CLAUDE.md +0 -535
  369. package/ref-monty/Cargo.lock +0 -3798
  370. package/ref-monty/Cargo.toml +0 -87
  371. package/ref-monty/LICENSE +0 -21
  372. package/ref-monty/Makefile +0 -216
  373. package/ref-monty/README.md +0 -430
  374. package/ref-monty/RELEASING.md +0 -47
  375. package/ref-monty/crates/fuzz/Cargo.toml +0 -30
  376. package/ref-monty/crates/fuzz/fuzz_targets/string_input_panic.rs +0 -37
  377. package/ref-monty/crates/fuzz/fuzz_targets/tokens_input_panic.rs +0 -552
  378. package/ref-monty/crates/monty/Cargo.toml +0 -68
  379. package/ref-monty/crates/monty/benches/main.rs +0 -247
  380. package/ref-monty/crates/monty/build.rs +0 -10
  381. package/ref-monty/crates/monty/src/args.rs +0 -733
  382. package/ref-monty/crates/monty/src/asyncio.rs +0 -179
  383. package/ref-monty/crates/monty/src/builtins/abs.rs +0 -55
  384. package/ref-monty/crates/monty/src/builtins/all.rs +0 -30
  385. package/ref-monty/crates/monty/src/builtins/any.rs +0 -30
  386. package/ref-monty/crates/monty/src/builtins/bin.rs +0 -59
  387. package/ref-monty/crates/monty/src/builtins/chr.rs +0 -46
  388. package/ref-monty/crates/monty/src/builtins/divmod.rs +0 -164
  389. package/ref-monty/crates/monty/src/builtins/enumerate.rs +0 -52
  390. package/ref-monty/crates/monty/src/builtins/filter.rs +0 -67
  391. package/ref-monty/crates/monty/src/builtins/getattr.rs +0 -65
  392. package/ref-monty/crates/monty/src/builtins/hash.rs +0 -28
  393. package/ref-monty/crates/monty/src/builtins/hex.rs +0 -58
  394. package/ref-monty/crates/monty/src/builtins/id.rs +0 -24
  395. package/ref-monty/crates/monty/src/builtins/isinstance.rs +0 -68
  396. package/ref-monty/crates/monty/src/builtins/len.rs +0 -25
  397. package/ref-monty/crates/monty/src/builtins/map.rs +0 -98
  398. package/ref-monty/crates/monty/src/builtins/min_max.rs +0 -113
  399. package/ref-monty/crates/monty/src/builtins/mod.rs +0 -246
  400. package/ref-monty/crates/monty/src/builtins/next.rs +0 -21
  401. package/ref-monty/crates/monty/src/builtins/oct.rs +0 -59
  402. package/ref-monty/crates/monty/src/builtins/ord.rs +0 -67
  403. package/ref-monty/crates/monty/src/builtins/pow.rs +0 -365
  404. package/ref-monty/crates/monty/src/builtins/print.rs +0 -141
  405. package/ref-monty/crates/monty/src/builtins/repr.rs +0 -16
  406. package/ref-monty/crates/monty/src/builtins/reversed.rs +0 -28
  407. package/ref-monty/crates/monty/src/builtins/round.rs +0 -174
  408. package/ref-monty/crates/monty/src/builtins/sorted.rs +0 -151
  409. package/ref-monty/crates/monty/src/builtins/sum.rs +0 -66
  410. package/ref-monty/crates/monty/src/builtins/type_.rs +0 -16
  411. package/ref-monty/crates/monty/src/builtins/zip.rs +0 -77
  412. package/ref-monty/crates/monty/src/bytecode/builder.rs +0 -699
  413. package/ref-monty/crates/monty/src/bytecode/code.rs +0 -310
  414. package/ref-monty/crates/monty/src/bytecode/compiler.rs +0 -3206
  415. package/ref-monty/crates/monty/src/bytecode/mod.rs +0 -24
  416. package/ref-monty/crates/monty/src/bytecode/op.rs +0 -617
  417. package/ref-monty/crates/monty/src/bytecode/vm/async_exec.rs +0 -1058
  418. package/ref-monty/crates/monty/src/bytecode/vm/attr.rs +0 -63
  419. package/ref-monty/crates/monty/src/bytecode/vm/binary.rs +0 -487
  420. package/ref-monty/crates/monty/src/bytecode/vm/call.rs +0 -767
  421. package/ref-monty/crates/monty/src/bytecode/vm/collections.rs +0 -741
  422. package/ref-monty/crates/monty/src/bytecode/vm/compare.rs +0 -147
  423. package/ref-monty/crates/monty/src/bytecode/vm/exceptions.rs +0 -297
  424. package/ref-monty/crates/monty/src/bytecode/vm/format.rs +0 -132
  425. package/ref-monty/crates/monty/src/bytecode/vm/mod.rs +0 -1958
  426. package/ref-monty/crates/monty/src/bytecode/vm/scheduler.rs +0 -620
  427. package/ref-monty/crates/monty/src/exception_private.rs +0 -1513
  428. package/ref-monty/crates/monty/src/exception_public.rs +0 -346
  429. package/ref-monty/crates/monty/src/expressions.rs +0 -694
  430. package/ref-monty/crates/monty/src/fstring.rs +0 -854
  431. package/ref-monty/crates/monty/src/function.rs +0 -119
  432. package/ref-monty/crates/monty/src/heap.rs +0 -1073
  433. package/ref-monty/crates/monty/src/heap_data.rs +0 -985
  434. package/ref-monty/crates/monty/src/heap_traits.rs +0 -312
  435. package/ref-monty/crates/monty/src/intern.rs +0 -837
  436. package/ref-monty/crates/monty/src/io.rs +0 -106
  437. package/ref-monty/crates/monty/src/lib.rs +0 -52
  438. package/ref-monty/crates/monty/src/modules/asyncio.rs +0 -144
  439. package/ref-monty/crates/monty/src/modules/math.rs +0 -1453
  440. package/ref-monty/crates/monty/src/modules/mod.rs +0 -120
  441. package/ref-monty/crates/monty/src/modules/os.rs +0 -116
  442. package/ref-monty/crates/monty/src/modules/pathlib.rs +0 -33
  443. package/ref-monty/crates/monty/src/modules/re.rs +0 -606
  444. package/ref-monty/crates/monty/src/modules/sys.rs +0 -60
  445. package/ref-monty/crates/monty/src/modules/typing.rs +0 -70
  446. package/ref-monty/crates/monty/src/namespace.rs +0 -21
  447. package/ref-monty/crates/monty/src/object.rs +0 -1040
  448. package/ref-monty/crates/monty/src/os.rs +0 -215
  449. package/ref-monty/crates/monty/src/parse.rs +0 -1730
  450. package/ref-monty/crates/monty/src/prepare.rs +0 -3015
  451. package/ref-monty/crates/monty/src/repl.rs +0 -1109
  452. package/ref-monty/crates/monty/src/resource.rs +0 -559
  453. package/ref-monty/crates/monty/src/run.rs +0 -457
  454. package/ref-monty/crates/monty/src/run_progress.rs +0 -821
  455. package/ref-monty/crates/monty/src/signature.rs +0 -651
  456. package/ref-monty/crates/monty/src/sorting.rs +0 -100
  457. package/ref-monty/crates/monty/src/types/bytes.rs +0 -2356
  458. package/ref-monty/crates/monty/src/types/dataclass.rs +0 -345
  459. package/ref-monty/crates/monty/src/types/dict.rs +0 -879
  460. package/ref-monty/crates/monty/src/types/dict_view.rs +0 -619
  461. package/ref-monty/crates/monty/src/types/iter.rs +0 -799
  462. package/ref-monty/crates/monty/src/types/list.rs +0 -929
  463. package/ref-monty/crates/monty/src/types/long_int.rs +0 -211
  464. package/ref-monty/crates/monty/src/types/mod.rs +0 -48
  465. package/ref-monty/crates/monty/src/types/module.rs +0 -146
  466. package/ref-monty/crates/monty/src/types/namedtuple.rs +0 -261
  467. package/ref-monty/crates/monty/src/types/path.rs +0 -596
  468. package/ref-monty/crates/monty/src/types/property.rs +0 -35
  469. package/ref-monty/crates/monty/src/types/py_trait.rs +0 -322
  470. package/ref-monty/crates/monty/src/types/range.rs +0 -285
  471. package/ref-monty/crates/monty/src/types/re_match.rs +0 -522
  472. package/ref-monty/crates/monty/src/types/re_pattern.rs +0 -726
  473. package/ref-monty/crates/monty/src/types/set.rs +0 -1373
  474. package/ref-monty/crates/monty/src/types/slice.rs +0 -257
  475. package/ref-monty/crates/monty/src/types/str.rs +0 -2051
  476. package/ref-monty/crates/monty/src/types/tuple.rs +0 -376
  477. package/ref-monty/crates/monty/src/types/type.rs +0 -407
  478. package/ref-monty/crates/monty/src/value.rs +0 -2558
  479. package/ref-monty/crates/monty/test_cases/args__dict_get_no_args.py +0 -3
  480. package/ref-monty/crates/monty/test_cases/args__dict_get_too_many.py +0 -3
  481. package/ref-monty/crates/monty/test_cases/args__dict_items_with_args.py +0 -3
  482. package/ref-monty/crates/monty/test_cases/args__dict_keys_with_args.py +0 -3
  483. package/ref-monty/crates/monty/test_cases/args__dict_pop_no_args.py +0 -3
  484. package/ref-monty/crates/monty/test_cases/args__dict_pop_too_many.py +0 -3
  485. package/ref-monty/crates/monty/test_cases/args__dict_values_with_args.py +0 -3
  486. package/ref-monty/crates/monty/test_cases/args__id_too_many.py +0 -2
  487. package/ref-monty/crates/monty/test_cases/args__len_no_args.py +0 -2
  488. package/ref-monty/crates/monty/test_cases/args__len_too_many.py +0 -2
  489. package/ref-monty/crates/monty/test_cases/args__len_type_error_int.py +0 -9
  490. package/ref-monty/crates/monty/test_cases/args__len_type_error_none.py +0 -9
  491. package/ref-monty/crates/monty/test_cases/args__list_append_no_args.py +0 -3
  492. package/ref-monty/crates/monty/test_cases/args__list_append_too_many.py +0 -3
  493. package/ref-monty/crates/monty/test_cases/args__list_insert_too_few.py +0 -3
  494. package/ref-monty/crates/monty/test_cases/args__list_insert_too_many.py +0 -3
  495. package/ref-monty/crates/monty/test_cases/args__repr_no_args.py +0 -2
  496. package/ref-monty/crates/monty/test_cases/arith__div_zero_float.py +0 -2
  497. package/ref-monty/crates/monty/test_cases/arith__div_zero_int.py +0 -2
  498. package/ref-monty/crates/monty/test_cases/arith__floordiv_zero_float.py +0 -2
  499. package/ref-monty/crates/monty/test_cases/arith__floordiv_zero_int.py +0 -2
  500. package/ref-monty/crates/monty/test_cases/arith__pow_zero_neg.py +0 -2
  501. package/ref-monty/crates/monty/test_cases/arith__pow_zero_neg_builtin.py +0 -9
  502. package/ref-monty/crates/monty/test_cases/assert__expr_fail.py +0 -2
  503. package/ref-monty/crates/monty/test_cases/assert__fail.py +0 -2
  504. package/ref-monty/crates/monty/test_cases/assert__fail_msg.py +0 -2
  505. package/ref-monty/crates/monty/test_cases/assert__fn_fail.py +0 -3
  506. package/ref-monty/crates/monty/test_cases/assert__ops.py +0 -11
  507. package/ref-monty/crates/monty/test_cases/async__asyncio_run.py +0 -47
  508. package/ref-monty/crates/monty/test_cases/async__basic.py +0 -10
  509. package/ref-monty/crates/monty/test_cases/async__closure.py +0 -14
  510. package/ref-monty/crates/monty/test_cases/async__double_await_coroutine.py +0 -16
  511. package/ref-monty/crates/monty/test_cases/async__exception.py +0 -10
  512. package/ref-monty/crates/monty/test_cases/async__ext_call.py +0 -73
  513. package/ref-monty/crates/monty/test_cases/async__gather_all.py +0 -85
  514. package/ref-monty/crates/monty/test_cases/async__nested_await.py +0 -15
  515. package/ref-monty/crates/monty/test_cases/async__nested_gather_ext.py +0 -37
  516. package/ref-monty/crates/monty/test_cases/async__not_awaitable.py +0 -10
  517. package/ref-monty/crates/monty/test_cases/async__not_imported.py +0 -14
  518. package/ref-monty/crates/monty/test_cases/async__recursion_depth_isolation.py +0 -27
  519. package/ref-monty/crates/monty/test_cases/async__return_types.py +0 -31
  520. package/ref-monty/crates/monty/test_cases/async__sequential.py +0 -16
  521. package/ref-monty/crates/monty/test_cases/async__traceback.py +0 -19
  522. package/ref-monty/crates/monty/test_cases/async__with_args.py +0 -14
  523. package/ref-monty/crates/monty/test_cases/attr__get_int_error.py +0 -9
  524. package/ref-monty/crates/monty/test_cases/attr__get_list_error.py +0 -9
  525. package/ref-monty/crates/monty/test_cases/attr__set_frozen_nonfield.py +0 -12
  526. package/ref-monty/crates/monty/test_cases/attr__set_int_error.py +0 -10
  527. package/ref-monty/crates/monty/test_cases/attr__set_list_error.py +0 -10
  528. package/ref-monty/crates/monty/test_cases/bench__kitchen_sink.py +0 -68
  529. package/ref-monty/crates/monty/test_cases/bool__ops.py +0 -20
  530. package/ref-monty/crates/monty/test_cases/builtin__add_type_error.py +0 -2
  531. package/ref-monty/crates/monty/test_cases/builtin__filter.py +0 -62
  532. package/ref-monty/crates/monty/test_cases/builtin__filter_not_iterable.py +0 -11
  533. package/ref-monty/crates/monty/test_cases/builtin__getattr.py +0 -84
  534. package/ref-monty/crates/monty/test_cases/builtin__iter_funcs.py +0 -42
  535. package/ref-monty/crates/monty/test_cases/builtin__iter_next.py +0 -66
  536. package/ref-monty/crates/monty/test_cases/builtin__map.py +0 -74
  537. package/ref-monty/crates/monty/test_cases/builtin__map_not_iterable.py +0 -11
  538. package/ref-monty/crates/monty/test_cases/builtin__math_funcs.py +0 -154
  539. package/ref-monty/crates/monty/test_cases/builtin__more_iter_funcs.py +0 -148
  540. package/ref-monty/crates/monty/test_cases/builtin__next_stop_iteration.py +0 -10
  541. package/ref-monty/crates/monty/test_cases/builtin__print_invalid_kwarg.py +0 -9
  542. package/ref-monty/crates/monty/test_cases/builtin__print_kwargs.py +0 -12
  543. package/ref-monty/crates/monty/test_cases/builtin__repr.py +0 -3
  544. package/ref-monty/crates/monty/test_cases/builtin__string_funcs.py +0 -73
  545. package/ref-monty/crates/monty/test_cases/bytes__decode_invalid_utf8.py +0 -18
  546. package/ref-monty/crates/monty/test_cases/bytes__endswith_str_error.py +0 -10
  547. package/ref-monty/crates/monty/test_cases/bytes__getitem_index_error.py +0 -10
  548. package/ref-monty/crates/monty/test_cases/bytes__index_start_gt_end.py +0 -10
  549. package/ref-monty/crates/monty/test_cases/bytes__methods.py +0 -394
  550. package/ref-monty/crates/monty/test_cases/bytes__negative_count.py +0 -9
  551. package/ref-monty/crates/monty/test_cases/bytes__ops.py +0 -90
  552. package/ref-monty/crates/monty/test_cases/bytes__startswith_str_error.py +0 -10
  553. package/ref-monty/crates/monty/test_cases/call_object.py +0 -3
  554. package/ref-monty/crates/monty/test_cases/chain_comparison__all.py +0 -79
  555. package/ref-monty/crates/monty/test_cases/closure__param_shadows_outer.py +0 -81
  556. package/ref-monty/crates/monty/test_cases/closure__pep448.py +0 -203
  557. package/ref-monty/crates/monty/test_cases/closure__undefined_nonlocal.py +0 -13
  558. package/ref-monty/crates/monty/test_cases/compare__mixed_types.py +0 -120
  559. package/ref-monty/crates/monty/test_cases/comprehension__all.py +0 -208
  560. package/ref-monty/crates/monty/test_cases/comprehension__scope.py +0 -7
  561. package/ref-monty/crates/monty/test_cases/comprehension__unbound_local.py +0 -14
  562. package/ref-monty/crates/monty/test_cases/dataclass__basic.py +0 -238
  563. package/ref-monty/crates/monty/test_cases/dataclass__call_field_error.py +0 -12
  564. package/ref-monty/crates/monty/test_cases/dataclass__frozen_set_error.py +0 -12
  565. package/ref-monty/crates/monty/test_cases/dataclass__get_missing_attr_error.py +0 -11
  566. package/ref-monty/crates/monty/test_cases/dict__get_unhashable_key.py +0 -3
  567. package/ref-monty/crates/monty/test_cases/dict__literal_unhashable_key.py +0 -2
  568. package/ref-monty/crates/monty/test_cases/dict__method_pop_missing_error.py +0 -3
  569. package/ref-monty/crates/monty/test_cases/dict__methods.py +0 -151
  570. package/ref-monty/crates/monty/test_cases/dict__ops.py +0 -133
  571. package/ref-monty/crates/monty/test_cases/dict__pop_unhashable_key.py +0 -4
  572. package/ref-monty/crates/monty/test_cases/dict__popitem_empty.py +0 -9
  573. package/ref-monty/crates/monty/test_cases/dict__subscript_missing_key.py +0 -3
  574. package/ref-monty/crates/monty/test_cases/dict__unhashable_dict_key.py +0 -2
  575. package/ref-monty/crates/monty/test_cases/dict__unhashable_list_key.py +0 -2
  576. package/ref-monty/crates/monty/test_cases/dict__unpack_type_error.py +0 -2
  577. package/ref-monty/crates/monty/test_cases/dict__views.py +0 -165
  578. package/ref-monty/crates/monty/test_cases/edge__all.py +0 -26
  579. package/ref-monty/crates/monty/test_cases/edge__float_int_mod.py +0 -2
  580. package/ref-monty/crates/monty/test_cases/edge__int_float_mod.py +0 -2
  581. package/ref-monty/crates/monty/test_cases/exc__args.py +0 -16
  582. package/ref-monty/crates/monty/test_cases/exc__str.py +0 -15
  583. package/ref-monty/crates/monty/test_cases/execute_ok__all.py +0 -54
  584. package/ref-monty/crates/monty/test_cases/execute_raise__error_instance_str.py +0 -2
  585. package/ref-monty/crates/monty/test_cases/execute_raise__error_no_args.py +0 -2
  586. package/ref-monty/crates/monty/test_cases/execute_raise__error_string_arg.py +0 -2
  587. package/ref-monty/crates/monty/test_cases/execute_raise__error_string_arg_quotes.py +0 -2
  588. package/ref-monty/crates/monty/test_cases/execute_raise__error_type.py +0 -2
  589. package/ref-monty/crates/monty/test_cases/execute_raise__raise_instance_via_var.py +0 -4
  590. package/ref-monty/crates/monty/test_cases/execute_raise__raise_list.py +0 -2
  591. package/ref-monty/crates/monty/test_cases/execute_raise__raise_number.py +0 -2
  592. package/ref-monty/crates/monty/test_cases/execute_raise__raise_type_call_via_var.py +0 -4
  593. package/ref-monty/crates/monty/test_cases/execute_raise__raise_type_direct.py +0 -3
  594. package/ref-monty/crates/monty/test_cases/execute_raise__raise_type_via_var.py +0 -4
  595. package/ref-monty/crates/monty/test_cases/ext_call__arg_side_effect_bug.py +0 -22
  596. package/ref-monty/crates/monty/test_cases/ext_call__augmented.py +0 -17
  597. package/ref-monty/crates/monty/test_cases/ext_call__augmented_refcount_bug.py +0 -7
  598. package/ref-monty/crates/monty/test_cases/ext_call__bare_raise_after_resume.py +0 -34
  599. package/ref-monty/crates/monty/test_cases/ext_call__basic.py +0 -99
  600. package/ref-monty/crates/monty/test_cases/ext_call__boolean.py +0 -37
  601. package/ref-monty/crates/monty/test_cases/ext_call__boolean_side_effect_hang.py +0 -17
  602. package/ref-monty/crates/monty/test_cases/ext_call__closure_bug.py +0 -16
  603. package/ref-monty/crates/monty/test_cases/ext_call__comparison.py +0 -26
  604. package/ref-monty/crates/monty/test_cases/ext_call__deep_call_stack.py +0 -18
  605. package/ref-monty/crates/monty/test_cases/ext_call__elif.py +0 -171
  606. package/ref-monty/crates/monty/test_cases/ext_call__exc.py +0 -4
  607. package/ref-monty/crates/monty/test_cases/ext_call__exc_deep_stack.py +0 -39
  608. package/ref-monty/crates/monty/test_cases/ext_call__exc_in_function.py +0 -17
  609. package/ref-monty/crates/monty/test_cases/ext_call__exc_nested_functions.py +0 -31
  610. package/ref-monty/crates/monty/test_cases/ext_call__ext_exc.py +0 -171
  611. package/ref-monty/crates/monty/test_cases/ext_call__for.py +0 -114
  612. package/ref-monty/crates/monty/test_cases/ext_call__fstring.py +0 -12
  613. package/ref-monty/crates/monty/test_cases/ext_call__if.py +0 -135
  614. package/ref-monty/crates/monty/test_cases/ext_call__if_condition.py +0 -37
  615. package/ref-monty/crates/monty/test_cases/ext_call__in_closure.py +0 -14
  616. package/ref-monty/crates/monty/test_cases/ext_call__in_function.py +0 -40
  617. package/ref-monty/crates/monty/test_cases/ext_call__in_function_simple.py +0 -7
  618. package/ref-monty/crates/monty/test_cases/ext_call__literals.py +0 -17
  619. package/ref-monty/crates/monty/test_cases/ext_call__multi_in_func.py +0 -32
  620. package/ref-monty/crates/monty/test_cases/ext_call__name_lookup.py +0 -69
  621. package/ref-monty/crates/monty/test_cases/ext_call__name_lookup_undefined.py +0 -4
  622. package/ref-monty/crates/monty/test_cases/ext_call__nested_calls.py +0 -14
  623. package/ref-monty/crates/monty/test_cases/ext_call__recursion_bug.py +0 -19
  624. package/ref-monty/crates/monty/test_cases/ext_call__return.py +0 -28
  625. package/ref-monty/crates/monty/test_cases/ext_call__side_effects.py +0 -25
  626. package/ref-monty/crates/monty/test_cases/ext_call__subscript.py +0 -7
  627. package/ref-monty/crates/monty/test_cases/ext_call__ternary.py +0 -28
  628. package/ref-monty/crates/monty/test_cases/ext_call__try.py +0 -280
  629. package/ref-monty/crates/monty/test_cases/ext_call__try_simple.py +0 -10
  630. package/ref-monty/crates/monty/test_cases/ext_call__unary.py +0 -13
  631. package/ref-monty/crates/monty/test_cases/frozenset__ops.py +0 -178
  632. package/ref-monty/crates/monty/test_cases/fstring__all.py +0 -236
  633. package/ref-monty/crates/monty/test_cases/fstring__error_eq_align_on_str.py +0 -3
  634. package/ref-monty/crates/monty/test_cases/fstring__error_float_f_on_str.py +0 -3
  635. package/ref-monty/crates/monty/test_cases/fstring__error_int_d_on_float.py +0 -3
  636. package/ref-monty/crates/monty/test_cases/fstring__error_int_d_on_str.py +0 -3
  637. package/ref-monty/crates/monty/test_cases/fstring__error_invalid_spec.py +0 -4
  638. package/ref-monty/crates/monty/test_cases/fstring__error_invalid_spec_dynamic.py +0 -4
  639. package/ref-monty/crates/monty/test_cases/fstring__error_invalid_spec_str.py +0 -4
  640. package/ref-monty/crates/monty/test_cases/fstring__error_str_s_on_int.py +0 -3
  641. package/ref-monty/crates/monty/test_cases/function__call_duplicate_kwargs.py +0 -6
  642. package/ref-monty/crates/monty/test_cases/function__call_unpack.py +0 -42
  643. package/ref-monty/crates/monty/test_cases/function__defaults.py +0 -117
  644. package/ref-monty/crates/monty/test_cases/function__err_duplicate_arg.py +0 -7
  645. package/ref-monty/crates/monty/test_cases/function__err_duplicate_first_arg.py +0 -7
  646. package/ref-monty/crates/monty/test_cases/function__err_duplicate_kwarg_cleanup.py +0 -9
  647. package/ref-monty/crates/monty/test_cases/function__err_kwonly_as_positional.py +0 -7
  648. package/ref-monty/crates/monty/test_cases/function__err_missing_all_posonly.py +0 -7
  649. package/ref-monty/crates/monty/test_cases/function__err_missing_heap_cleanup.py +0 -9
  650. package/ref-monty/crates/monty/test_cases/function__err_missing_kwonly.py +0 -7
  651. package/ref-monty/crates/monty/test_cases/function__err_missing_posonly_with_kwarg.py +0 -7
  652. package/ref-monty/crates/monty/test_cases/function__err_missing_with_posonly.py +0 -7
  653. package/ref-monty/crates/monty/test_cases/function__err_posonly_as_kwarg.py +0 -7
  654. package/ref-monty/crates/monty/test_cases/function__err_posonly_first_as_kwarg.py +0 -7
  655. package/ref-monty/crates/monty/test_cases/function__err_too_many_posonly.py +0 -7
  656. package/ref-monty/crates/monty/test_cases/function__err_too_many_with_kwonly.py +0 -7
  657. package/ref-monty/crates/monty/test_cases/function__err_unexpected_kwarg.py +0 -7
  658. package/ref-monty/crates/monty/test_cases/function__err_unexpected_kwarg_cleanup.py +0 -9
  659. package/ref-monty/crates/monty/test_cases/function__err_unexpected_kwarg_quote.py +0 -13
  660. package/ref-monty/crates/monty/test_cases/function__err_unexpected_kwarg_simple.py +0 -7
  661. package/ref-monty/crates/monty/test_cases/function__err_unpack_duplicate_arg.py +0 -6
  662. package/ref-monty/crates/monty/test_cases/function__err_unpack_duplicate_heap.py +0 -8
  663. package/ref-monty/crates/monty/test_cases/function__err_unpack_int.py +0 -6
  664. package/ref-monty/crates/monty/test_cases/function__err_unpack_nonstring_key.py +0 -6
  665. package/ref-monty/crates/monty/test_cases/function__err_unpack_not_mapping.py +0 -6
  666. package/ref-monty/crates/monty/test_cases/function__kwargs_unpacking.py +0 -173
  667. package/ref-monty/crates/monty/test_cases/function__ops.py +0 -294
  668. package/ref-monty/crates/monty/test_cases/function__return_none.py +0 -42
  669. package/ref-monty/crates/monty/test_cases/function__signatures.py +0 -47
  670. package/ref-monty/crates/monty/test_cases/function__too_few_args_all.py +0 -6
  671. package/ref-monty/crates/monty/test_cases/function__too_few_args_one.py +0 -6
  672. package/ref-monty/crates/monty/test_cases/function__too_few_args_two.py +0 -6
  673. package/ref-monty/crates/monty/test_cases/function__too_many_args_one.py +0 -6
  674. package/ref-monty/crates/monty/test_cases/function__too_many_args_two.py +0 -6
  675. package/ref-monty/crates/monty/test_cases/function__too_many_args_zero.py +0 -6
  676. package/ref-monty/crates/monty/test_cases/global__error_assigned_before.py +0 -7
  677. package/ref-monty/crates/monty/test_cases/global__ops.py +0 -163
  678. package/ref-monty/crates/monty/test_cases/hash__dict_unhashable.py +0 -2
  679. package/ref-monty/crates/monty/test_cases/hash__list_unhashable.py +0 -2
  680. package/ref-monty/crates/monty/test_cases/hash__ops.py +0 -153
  681. package/ref-monty/crates/monty/test_cases/id__bytes_literals_distinct.py +0 -3
  682. package/ref-monty/crates/monty/test_cases/id__int_copy_distinct.py +0 -5
  683. package/ref-monty/crates/monty/test_cases/id__is_number_is_number.py +0 -3
  684. package/ref-monty/crates/monty/test_cases/id__non_overlapping_lifetimes_distinct_types.py +0 -10
  685. package/ref-monty/crates/monty/test_cases/id__non_overlapping_lifetimes_same_types.py +0 -6
  686. package/ref-monty/crates/monty/test_cases/id__ops.py +0 -97
  687. package/ref-monty/crates/monty/test_cases/id__str_literals_same.py +0 -3
  688. package/ref-monty/crates/monty/test_cases/if__elif_else.py +0 -207
  689. package/ref-monty/crates/monty/test_cases/if__raise_elif.py +0 -11
  690. package/ref-monty/crates/monty/test_cases/if__raise_else.py +0 -13
  691. package/ref-monty/crates/monty/test_cases/if__raise_if.py +0 -9
  692. package/ref-monty/crates/monty/test_cases/if__raise_in_elif_condition.py +0 -18
  693. package/ref-monty/crates/monty/test_cases/if__raise_in_if_condition.py +0 -16
  694. package/ref-monty/crates/monty/test_cases/if_else_expr__all.py +0 -55
  695. package/ref-monty/crates/monty/test_cases/import__error_cannot_import.py +0 -9
  696. package/ref-monty/crates/monty/test_cases/import__error_module_not_found.py +0 -9
  697. package/ref-monty/crates/monty/test_cases/import__local_scope.py +0 -68
  698. package/ref-monty/crates/monty/test_cases/import__os.py +0 -25
  699. package/ref-monty/crates/monty/test_cases/import__relative_error.py +0 -9
  700. package/ref-monty/crates/monty/test_cases/import__relative_no_module_error.py +0 -9
  701. package/ref-monty/crates/monty/test_cases/import__runtime_error_when_executed.py +0 -14
  702. package/ref-monty/crates/monty/test_cases/import__star_error.py +0 -11
  703. package/ref-monty/crates/monty/test_cases/import__sys.py +0 -47
  704. package/ref-monty/crates/monty/test_cases/import__sys_monty.py +0 -28
  705. package/ref-monty/crates/monty/test_cases/import__type_checking_guard.py +0 -37
  706. package/ref-monty/crates/monty/test_cases/import__typing.py +0 -25
  707. package/ref-monty/crates/monty/test_cases/import__typing_type_ignore.py +0 -4
  708. package/ref-monty/crates/monty/test_cases/int__bigint.py +0 -467
  709. package/ref-monty/crates/monty/test_cases/int__bigint_errors.py +0 -260
  710. package/ref-monty/crates/monty/test_cases/int__ops.py +0 -219
  711. package/ref-monty/crates/monty/test_cases/int__overflow_division.py +0 -84
  712. package/ref-monty/crates/monty/test_cases/is_variant__all.py +0 -36
  713. package/ref-monty/crates/monty/test_cases/isinstance__arg2_list_error.py +0 -2
  714. package/ref-monty/crates/monty/test_cases/isinstance__arg2_type_error.py +0 -2
  715. package/ref-monty/crates/monty/test_cases/iter__dict_mutation.py +0 -4
  716. package/ref-monty/crates/monty/test_cases/iter__for.py +0 -243
  717. package/ref-monty/crates/monty/test_cases/iter__for_loop_unpacking.py +0 -66
  718. package/ref-monty/crates/monty/test_cases/iter__generator_expr.py +0 -20
  719. package/ref-monty/crates/monty/test_cases/iter__generator_expr_type.py +0 -7
  720. package/ref-monty/crates/monty/test_cases/iter__not_iterable.py +0 -3
  721. package/ref-monty/crates/monty/test_cases/lambda__all.py +0 -145
  722. package/ref-monty/crates/monty/test_cases/list__extend_not_iterable.py +0 -7
  723. package/ref-monty/crates/monty/test_cases/list__getitem_out_of_bounds.py +0 -3
  724. package/ref-monty/crates/monty/test_cases/list__index_not_found.py +0 -9
  725. package/ref-monty/crates/monty/test_cases/list__index_start_gt_end.py +0 -10
  726. package/ref-monty/crates/monty/test_cases/list__ops.py +0 -473
  727. package/ref-monty/crates/monty/test_cases/list__pop_empty.py +0 -9
  728. package/ref-monty/crates/monty/test_cases/list__pop_out_of_range.py +0 -9
  729. package/ref-monty/crates/monty/test_cases/list__pop_type_error.py +0 -9
  730. package/ref-monty/crates/monty/test_cases/list__remove_not_found.py +0 -9
  731. package/ref-monty/crates/monty/test_cases/list__setitem_dict_index.py +0 -13
  732. package/ref-monty/crates/monty/test_cases/list__setitem_huge_int_index.py +0 -13
  733. package/ref-monty/crates/monty/test_cases/list__setitem_index_error.py +0 -10
  734. package/ref-monty/crates/monty/test_cases/list__setitem_type_error.py +0 -10
  735. package/ref-monty/crates/monty/test_cases/list__unpack_type_error.py +0 -2
  736. package/ref-monty/crates/monty/test_cases/longint__index_error.py +0 -3
  737. package/ref-monty/crates/monty/test_cases/longint__repeat_error.py +0 -3
  738. package/ref-monty/crates/monty/test_cases/loop__break_continue.py +0 -113
  739. package/ref-monty/crates/monty/test_cases/loop__break_finally.py +0 -69
  740. package/ref-monty/crates/monty/test_cases/loop__break_in_function_error.py +0 -13
  741. package/ref-monty/crates/monty/test_cases/loop__break_in_if_error.py +0 -11
  742. package/ref-monty/crates/monty/test_cases/loop__break_nested_except_clears.py +0 -55
  743. package/ref-monty/crates/monty/test_cases/loop__break_outside_error.py +0 -9
  744. package/ref-monty/crates/monty/test_cases/loop__continue_finally.py +0 -81
  745. package/ref-monty/crates/monty/test_cases/loop__continue_in_function_error.py +0 -13
  746. package/ref-monty/crates/monty/test_cases/loop__continue_in_if_error.py +0 -11
  747. package/ref-monty/crates/monty/test_cases/loop__continue_nested_except_clears.py +0 -60
  748. package/ref-monty/crates/monty/test_cases/loop__continue_outside_error.py +0 -9
  749. package/ref-monty/crates/monty/test_cases/math__acos_domain_error.py +0 -11
  750. package/ref-monty/crates/monty/test_cases/math__acosh_domain_error.py +0 -11
  751. package/ref-monty/crates/monty/test_cases/math__asin_domain_error.py +0 -11
  752. package/ref-monty/crates/monty/test_cases/math__atanh_domain_error.py +0 -11
  753. package/ref-monty/crates/monty/test_cases/math__cos_inf_error.py +0 -11
  754. package/ref-monty/crates/monty/test_cases/math__cosh_overflow_error.py +0 -11
  755. package/ref-monty/crates/monty/test_cases/math__exp_overflow_error.py +0 -11
  756. package/ref-monty/crates/monty/test_cases/math__factorial_float_error.py +0 -11
  757. package/ref-monty/crates/monty/test_cases/math__factorial_negative_error.py +0 -11
  758. package/ref-monty/crates/monty/test_cases/math__floor_inf_error.py +0 -11
  759. package/ref-monty/crates/monty/test_cases/math__floor_nan_error.py +0 -11
  760. package/ref-monty/crates/monty/test_cases/math__floor_str_error.py +0 -11
  761. package/ref-monty/crates/monty/test_cases/math__fmod_inf_error.py +0 -11
  762. package/ref-monty/crates/monty/test_cases/math__gamma_neg_int_error.py +0 -11
  763. package/ref-monty/crates/monty/test_cases/math__gcd_float_error.py +0 -11
  764. package/ref-monty/crates/monty/test_cases/math__isqrt_negative_error.py +0 -11
  765. package/ref-monty/crates/monty/test_cases/math__ldexp_overflow_error.py +0 -11
  766. package/ref-monty/crates/monty/test_cases/math__log1p_domain_error.py +0 -11
  767. package/ref-monty/crates/monty/test_cases/math__log_base1_error.py +0 -11
  768. package/ref-monty/crates/monty/test_cases/math__log_zero_error.py +0 -11
  769. package/ref-monty/crates/monty/test_cases/math__module.py +0 -1432
  770. package/ref-monty/crates/monty/test_cases/math__pow_domain_error.py +0 -11
  771. package/ref-monty/crates/monty/test_cases/math__sin_inf_error.py +0 -11
  772. package/ref-monty/crates/monty/test_cases/math__sqrt_negative_error.py +0 -11
  773. package/ref-monty/crates/monty/test_cases/math__tan_inf_error.py +0 -11
  774. package/ref-monty/crates/monty/test_cases/math__trunc_str_error.py +0 -11
  775. package/ref-monty/crates/monty/test_cases/method__args_kwargs_unpacking.py +0 -259
  776. package/ref-monty/crates/monty/test_cases/name_error__unbound_local_func.py +0 -19
  777. package/ref-monty/crates/monty/test_cases/name_error__unbound_local_module.py +0 -12
  778. package/ref-monty/crates/monty/test_cases/name_error__undefined_call_chained.py +0 -9
  779. package/ref-monty/crates/monty/test_cases/name_error__undefined_call_in_expr.py +0 -9
  780. package/ref-monty/crates/monty/test_cases/name_error__undefined_call_in_function.py +0 -16
  781. package/ref-monty/crates/monty/test_cases/name_error__undefined_call_with_args.py +0 -9
  782. package/ref-monty/crates/monty/test_cases/name_error__undefined_global.py +0 -10
  783. package/ref-monty/crates/monty/test_cases/namedtuple__missing_attr.py +0 -11
  784. package/ref-monty/crates/monty/test_cases/namedtuple__ops.py +0 -34
  785. package/ref-monty/crates/monty/test_cases/nonlocal__error_module_level.py +0 -3
  786. package/ref-monty/crates/monty/test_cases/nonlocal__ops.py +0 -353
  787. package/ref-monty/crates/monty/test_cases/os__environ.py +0 -40
  788. package/ref-monty/crates/monty/test_cases/os__getenv_key_list_error.py +0 -5
  789. package/ref-monty/crates/monty/test_cases/os__getenv_key_type_error.py +0 -5
  790. package/ref-monty/crates/monty/test_cases/parse_error__complex.py +0 -3
  791. package/ref-monty/crates/monty/test_cases/pathlib__import.py +0 -11
  792. package/ref-monty/crates/monty/test_cases/pathlib__os.py +0 -136
  793. package/ref-monty/crates/monty/test_cases/pathlib__os_read_error.py +0 -12
  794. package/ref-monty/crates/monty/test_cases/pathlib__pure.py +0 -81
  795. package/ref-monty/crates/monty/test_cases/pyobject__cycle_dict_self.py +0 -5
  796. package/ref-monty/crates/monty/test_cases/pyobject__cycle_list_dict.py +0 -6
  797. package/ref-monty/crates/monty/test_cases/pyobject__cycle_list_self.py +0 -5
  798. package/ref-monty/crates/monty/test_cases/pyobject__cycle_multiple_refs.py +0 -6
  799. package/ref-monty/crates/monty/test_cases/range__error_no_args.py +0 -2
  800. package/ref-monty/crates/monty/test_cases/range__error_step_zero.py +0 -2
  801. package/ref-monty/crates/monty/test_cases/range__error_too_many_args.py +0 -2
  802. package/ref-monty/crates/monty/test_cases/range__getitem_index_error.py +0 -10
  803. package/ref-monty/crates/monty/test_cases/range__ops.py +0 -236
  804. package/ref-monty/crates/monty/test_cases/re__basic.py +0 -756
  805. package/ref-monty/crates/monty/test_cases/re__grouping.py +0 -241
  806. package/ref-monty/crates/monty/test_cases/re__match.py +0 -148
  807. package/ref-monty/crates/monty/test_cases/recursion__deep_drop.py +0 -26
  808. package/ref-monty/crates/monty/test_cases/recursion__deep_eq.py +0 -23
  809. package/ref-monty/crates/monty/test_cases/recursion__deep_hash.py +0 -46
  810. package/ref-monty/crates/monty/test_cases/recursion__deep_repr.py +0 -12
  811. package/ref-monty/crates/monty/test_cases/recursion__function_depth.py +0 -13
  812. package/ref-monty/crates/monty/test_cases/refcount__cycle_mutual_reference.py +0 -18
  813. package/ref-monty/crates/monty/test_cases/refcount__cycle_self_reference.py +0 -12
  814. package/ref-monty/crates/monty/test_cases/refcount__dict_basic.py +0 -5
  815. package/ref-monty/crates/monty/test_cases/refcount__dict_get.py +0 -5
  816. package/ref-monty/crates/monty/test_cases/refcount__dict_keys_and.py +0 -14
  817. package/ref-monty/crates/monty/test_cases/refcount__dict_overwrite.py +0 -6
  818. package/ref-monty/crates/monty/test_cases/refcount__gather_cleanup.py +0 -16
  819. package/ref-monty/crates/monty/test_cases/refcount__gather_exception.py +0 -18
  820. package/ref-monty/crates/monty/test_cases/refcount__gather_nested_cancel.py +0 -25
  821. package/ref-monty/crates/monty/test_cases/refcount__immediate_skipped.py +0 -4
  822. package/ref-monty/crates/monty/test_cases/refcount__kwargs_unpacking.py +0 -27
  823. package/ref-monty/crates/monty/test_cases/refcount__list_append_multiple.py +0 -6
  824. package/ref-monty/crates/monty/test_cases/refcount__list_append_ref.py +0 -5
  825. package/ref-monty/crates/monty/test_cases/refcount__list_concat.py +0 -5
  826. package/ref-monty/crates/monty/test_cases/refcount__list_getitem.py +0 -5
  827. package/ref-monty/crates/monty/test_cases/refcount__list_iadd.py +0 -5
  828. package/ref-monty/crates/monty/test_cases/refcount__nested_list.py +0 -4
  829. package/ref-monty/crates/monty/test_cases/refcount__re_pattern_sub_error_paths.py +0 -37
  830. package/ref-monty/crates/monty/test_cases/refcount__re_search_match.py +0 -34
  831. package/ref-monty/crates/monty/test_cases/refcount__re_sub_error_paths.py +0 -31
  832. package/ref-monty/crates/monty/test_cases/refcount__shared_reference.py +0 -4
  833. package/ref-monty/crates/monty/test_cases/refcount__single_list.py +0 -3
  834. package/ref-monty/crates/monty/test_cases/repr__cycle_detection.py +0 -24
  835. package/ref-monty/crates/monty/test_cases/set__ops.py +0 -191
  836. package/ref-monty/crates/monty/test_cases/set__review_bugs.py +0 -35
  837. package/ref-monty/crates/monty/test_cases/set__unpack_type_error.py +0 -2
  838. package/ref-monty/crates/monty/test_cases/slice__invalid_indices.py +0 -2
  839. package/ref-monty/crates/monty/test_cases/slice__kwargs.py +0 -9
  840. package/ref-monty/crates/monty/test_cases/slice__no_args.py +0 -9
  841. package/ref-monty/crates/monty/test_cases/slice__ops.py +0 -149
  842. package/ref-monty/crates/monty/test_cases/slice__step_zero.py +0 -9
  843. package/ref-monty/crates/monty/test_cases/slice__step_zero_bytes.py +0 -9
  844. package/ref-monty/crates/monty/test_cases/slice__step_zero_range.py +0 -9
  845. package/ref-monty/crates/monty/test_cases/slice__step_zero_str.py +0 -9
  846. package/ref-monty/crates/monty/test_cases/slice__step_zero_tuple.py +0 -9
  847. package/ref-monty/crates/monty/test_cases/slice__too_many_args.py +0 -9
  848. package/ref-monty/crates/monty/test_cases/str__getitem_index_error.py +0 -10
  849. package/ref-monty/crates/monty/test_cases/str__index_not_found.py +0 -9
  850. package/ref-monty/crates/monty/test_cases/str__join_no_args.py +0 -9
  851. package/ref-monty/crates/monty/test_cases/str__join_non_string.py +0 -9
  852. package/ref-monty/crates/monty/test_cases/str__join_not_iterable.py +0 -9
  853. package/ref-monty/crates/monty/test_cases/str__join_too_many_args.py +0 -9
  854. package/ref-monty/crates/monty/test_cases/str__methods.py +0 -327
  855. package/ref-monty/crates/monty/test_cases/str__ops.py +0 -162
  856. package/ref-monty/crates/monty/test_cases/str__partition_empty.py +0 -9
  857. package/ref-monty/crates/monty/test_cases/str__rsplit_empty_sep.py +0 -9
  858. package/ref-monty/crates/monty/test_cases/str__split_empty_sep.py +0 -9
  859. package/ref-monty/crates/monty/test_cases/sys__types.py +0 -7
  860. package/ref-monty/crates/monty/test_cases/traceback__division_error.py +0 -30
  861. package/ref-monty/crates/monty/test_cases/traceback__index_error.py +0 -17
  862. package/ref-monty/crates/monty/test_cases/traceback__insert_as_int.py +0 -10
  863. package/ref-monty/crates/monty/test_cases/traceback__nested_call.py +0 -29
  864. package/ref-monty/crates/monty/test_cases/traceback__nonlocal_module_scope.py +0 -10
  865. package/ref-monty/crates/monty/test_cases/traceback__nonlocal_unbound.py +0 -24
  866. package/ref-monty/crates/monty/test_cases/traceback__range_as_int.py +0 -9
  867. package/ref-monty/crates/monty/test_cases/traceback__recursion_error.py +0 -23
  868. package/ref-monty/crates/monty/test_cases/traceback__set_mutation.py +0 -11
  869. package/ref-monty/crates/monty/test_cases/traceback__undefined_attr_call.py +0 -16
  870. package/ref-monty/crates/monty/test_cases/traceback__undefined_call.py +0 -16
  871. package/ref-monty/crates/monty/test_cases/traceback__undefined_raise.py +0 -16
  872. package/ref-monty/crates/monty/test_cases/try_except__all.py +0 -472
  873. package/ref-monty/crates/monty/test_cases/try_except__bare_raise_no_context.py +0 -2
  874. package/ref-monty/crates/monty/test_cases/try_except__invalid_type.py +0 -5
  875. package/ref-monty/crates/monty/test_cases/tuple__getitem_out_of_bounds.py +0 -3
  876. package/ref-monty/crates/monty/test_cases/tuple__index_not_found.py +0 -9
  877. package/ref-monty/crates/monty/test_cases/tuple__index_start_gt_end.py +0 -10
  878. package/ref-monty/crates/monty/test_cases/tuple__methods.py +0 -19
  879. package/ref-monty/crates/monty/test_cases/tuple__ops.py +0 -133
  880. package/ref-monty/crates/monty/test_cases/tuple__unpack_type_error.py +0 -2
  881. package/ref-monty/crates/monty/test_cases/type__builtin_attr_error.py +0 -9
  882. package/ref-monty/crates/monty/test_cases/type__bytes_negative.py +0 -2
  883. package/ref-monty/crates/monty/test_cases/type__cell_not_builtin.py +0 -9
  884. package/ref-monty/crates/monty/test_cases/type__exception_attr_error.py +0 -11
  885. package/ref-monty/crates/monty/test_cases/type__float_conversion_error.py +0 -2
  886. package/ref-monty/crates/monty/test_cases/type__float_repr_both_quotes.py +0 -9
  887. package/ref-monty/crates/monty/test_cases/type__float_repr_newline.py +0 -9
  888. package/ref-monty/crates/monty/test_cases/type__float_repr_single_quote.py +0 -9
  889. package/ref-monty/crates/monty/test_cases/type__int_conversion_error.py +0 -2
  890. package/ref-monty/crates/monty/test_cases/type__list_not_iterable.py +0 -2
  891. package/ref-monty/crates/monty/test_cases/type__non_builtin_name_error.py +0 -9
  892. package/ref-monty/crates/monty/test_cases/type__ops.py +0 -200
  893. package/ref-monty/crates/monty/test_cases/type__shadow_exc.py +0 -3
  894. package/ref-monty/crates/monty/test_cases/type__shadow_int.py +0 -9
  895. package/ref-monty/crates/monty/test_cases/type__shadow_len.py +0 -3
  896. package/ref-monty/crates/monty/test_cases/type__tuple_not_iterable.py +0 -2
  897. package/ref-monty/crates/monty/test_cases/type_error__int_add_list.py +0 -2
  898. package/ref-monty/crates/monty/test_cases/type_error__int_div_str.py +0 -2
  899. package/ref-monty/crates/monty/test_cases/type_error__int_floordiv_str.py +0 -2
  900. package/ref-monty/crates/monty/test_cases/type_error__int_iadd_str.py +0 -3
  901. package/ref-monty/crates/monty/test_cases/type_error__int_mod_str.py +0 -2
  902. package/ref-monty/crates/monty/test_cases/type_error__int_pow_str.py +0 -2
  903. package/ref-monty/crates/monty/test_cases/type_error__int_sub_str.py +0 -2
  904. package/ref-monty/crates/monty/test_cases/type_error__list_add_int.py +0 -2
  905. package/ref-monty/crates/monty/test_cases/type_error__list_add_str.py +0 -2
  906. package/ref-monty/crates/monty/test_cases/type_error__list_iadd_int.py +0 -6
  907. package/ref-monty/crates/monty/test_cases/type_error__str_add_int.py +0 -2
  908. package/ref-monty/crates/monty/test_cases/type_error__str_iadd_int.py +0 -3
  909. package/ref-monty/crates/monty/test_cases/type_error__unary_invert_str.py +0 -3
  910. package/ref-monty/crates/monty/test_cases/type_error__unary_minus_str.py +0 -4
  911. package/ref-monty/crates/monty/test_cases/type_error__unary_neg_str.py +0 -3
  912. package/ref-monty/crates/monty/test_cases/type_error__unary_plus_str.py +0 -4
  913. package/ref-monty/crates/monty/test_cases/typing__types.py +0 -24
  914. package/ref-monty/crates/monty/test_cases/unpack__nested.py +0 -48
  915. package/ref-monty/crates/monty/test_cases/unpack__non_sequence.py +0 -9
  916. package/ref-monty/crates/monty/test_cases/unpack__not_enough.py +0 -9
  917. package/ref-monty/crates/monty/test_cases/unpack__ops.py +0 -153
  918. package/ref-monty/crates/monty/test_cases/unpack__star_not_enough.py +0 -9
  919. package/ref-monty/crates/monty/test_cases/unpack__too_many.py +0 -9
  920. package/ref-monty/crates/monty/test_cases/version__cpython.py +0 -4
  921. package/ref-monty/crates/monty/test_cases/walrus__all.py +0 -178
  922. package/ref-monty/crates/monty/test_cases/while__all.py +0 -206
  923. package/ref-monty/crates/monty/tests/asyncio.rs +0 -764
  924. package/ref-monty/crates/monty/tests/binary_serde.rs +0 -185
  925. package/ref-monty/crates/monty/tests/bytecode_limits.rs +0 -248
  926. package/ref-monty/crates/monty/tests/datatest_runner.rs +0 -2029
  927. package/ref-monty/crates/monty/tests/inputs.rs +0 -420
  928. package/ref-monty/crates/monty/tests/json_serde.rs +0 -250
  929. package/ref-monty/crates/monty/tests/main.rs +0 -71
  930. package/ref-monty/crates/monty/tests/math_module.rs +0 -114
  931. package/ref-monty/crates/monty/tests/name_lookup.rs +0 -482
  932. package/ref-monty/crates/monty/tests/os_tests.rs +0 -459
  933. package/ref-monty/crates/monty/tests/parse_errors.rs +0 -441
  934. package/ref-monty/crates/monty/tests/print_writer.rs +0 -238
  935. package/ref-monty/crates/monty/tests/py_object.rs +0 -121
  936. package/ref-monty/crates/monty/tests/regex.rs +0 -90
  937. package/ref-monty/crates/monty/tests/repl.rs +0 -344
  938. package/ref-monty/crates/monty/tests/resource_limits.rs +0 -1826
  939. package/ref-monty/crates/monty/tests/try_from.rs +0 -167
  940. package/ref-monty/crates/monty-cli/Cargo.toml +0 -25
  941. package/ref-monty/crates/monty-cli/src/main.rs +0 -541
  942. package/ref-monty/crates/monty-js/.cargo/config.toml +0 -2
  943. package/ref-monty/crates/monty-js/.prettierignore +0 -8
  944. package/ref-monty/crates/monty-js/Cargo.toml +0 -32
  945. package/ref-monty/crates/monty-js/README.md +0 -207
  946. package/ref-monty/crates/monty-js/__test__/async.spec.ts +0 -350
  947. package/ref-monty/crates/monty-js/__test__/basic.spec.ts +0 -114
  948. package/ref-monty/crates/monty-js/__test__/exceptions.spec.ts +0 -427
  949. package/ref-monty/crates/monty-js/__test__/external.spec.ts +0 -354
  950. package/ref-monty/crates/monty-js/__test__/inputs.spec.ts +0 -143
  951. package/ref-monty/crates/monty-js/__test__/limits.spec.ts +0 -162
  952. package/ref-monty/crates/monty-js/__test__/package.json +0 -3
  953. package/ref-monty/crates/monty-js/__test__/print.spec.ts +0 -229
  954. package/ref-monty/crates/monty-js/__test__/repl.spec.ts +0 -34
  955. package/ref-monty/crates/monty-js/__test__/serialize.spec.ts +0 -205
  956. package/ref-monty/crates/monty-js/__test__/start.spec.ts +0 -443
  957. package/ref-monty/crates/monty-js/__test__/type_check.spec.ts +0 -147
  958. package/ref-monty/crates/monty-js/__test__/types.spec.ts +0 -319
  959. package/ref-monty/crates/monty-js/build.rs +0 -61
  960. package/ref-monty/crates/monty-js/index-header.d.ts +0 -3
  961. package/ref-monty/crates/monty-js/package-lock.json +0 -4694
  962. package/ref-monty/crates/monty-js/package.json +0 -100
  963. package/ref-monty/crates/monty-js/scripts/smoke-test.sh +0 -69
  964. package/ref-monty/crates/monty-js/smoke-test/package.json +0 -17
  965. package/ref-monty/crates/monty-js/smoke-test/test.ts +0 -171
  966. package/ref-monty/crates/monty-js/smoke-test/tsconfig.json +0 -11
  967. package/ref-monty/crates/monty-js/src/convert.rs +0 -648
  968. package/ref-monty/crates/monty-js/src/exceptions.rs +0 -293
  969. package/ref-monty/crates/monty-js/src/lib.rs +0 -41
  970. package/ref-monty/crates/monty-js/src/limits.rs +0 -53
  971. package/ref-monty/crates/monty-js/src/monty_cls.rs +0 -1407
  972. package/ref-monty/crates/monty-js/tsconfig.json +0 -17
  973. package/ref-monty/crates/monty-js/wrapper.ts +0 -701
  974. package/ref-monty/crates/monty-python/Cargo.toml +0 -38
  975. package/ref-monty/crates/monty-python/README.md +0 -134
  976. package/ref-monty/crates/monty-python/build.rs +0 -4
  977. package/ref-monty/crates/monty-python/example.py +0 -40
  978. package/ref-monty/crates/monty-python/exercise.py +0 -46
  979. package/ref-monty/crates/monty-python/pyproject.toml +0 -57
  980. package/ref-monty/crates/monty-python/python/pydantic_monty/__init__.py +0 -281
  981. package/ref-monty/crates/monty-python/python/pydantic_monty/_monty.pyi +0 -677
  982. package/ref-monty/crates/monty-python/python/pydantic_monty/os_access.py +0 -933
  983. package/ref-monty/crates/monty-python/python/pydantic_monty/py.typed +0 -0
  984. package/ref-monty/crates/monty-python/src/convert.rs +0 -273
  985. package/ref-monty/crates/monty-python/src/dataclass.rs +0 -461
  986. package/ref-monty/crates/monty-python/src/exceptions.rs +0 -557
  987. package/ref-monty/crates/monty-python/src/external.rs +0 -165
  988. package/ref-monty/crates/monty-python/src/lib.rs +0 -77
  989. package/ref-monty/crates/monty-python/src/limits.rs +0 -142
  990. package/ref-monty/crates/monty-python/src/monty_cls.rs +0 -1650
  991. package/ref-monty/crates/monty-python/src/repl.rs +0 -470
  992. package/ref-monty/crates/monty-python/src/serialization.rs +0 -761
  993. package/ref-monty/crates/monty-python/tests/test_async.py +0 -1201
  994. package/ref-monty/crates/monty-python/tests/test_basic.py +0 -66
  995. package/ref-monty/crates/monty-python/tests/test_dataclasses.py +0 -971
  996. package/ref-monty/crates/monty-python/tests/test_exceptions.py +0 -361
  997. package/ref-monty/crates/monty-python/tests/test_external.py +0 -367
  998. package/ref-monty/crates/monty-python/tests/test_inputs.py +0 -126
  999. package/ref-monty/crates/monty-python/tests/test_limits.py +0 -257
  1000. package/ref-monty/crates/monty-python/tests/test_os_access.py +0 -1286
  1001. package/ref-monty/crates/monty-python/tests/test_os_access_compat.py +0 -731
  1002. package/ref-monty/crates/monty-python/tests/test_os_access_raw.py +0 -483
  1003. package/ref-monty/crates/monty-python/tests/test_os_calls.py +0 -819
  1004. package/ref-monty/crates/monty-python/tests/test_print.py +0 -208
  1005. package/ref-monty/crates/monty-python/tests/test_re.py +0 -170
  1006. package/ref-monty/crates/monty-python/tests/test_readme_examples.py +0 -20
  1007. package/ref-monty/crates/monty-python/tests/test_repl.py +0 -749
  1008. package/ref-monty/crates/monty-python/tests/test_serialize.py +0 -284
  1009. package/ref-monty/crates/monty-python/tests/test_start.py +0 -346
  1010. package/ref-monty/crates/monty-python/tests/test_threading.py +0 -163
  1011. package/ref-monty/crates/monty-python/tests/test_type_check.py +0 -344
  1012. package/ref-monty/crates/monty-python/tests/test_types.py +0 -553
  1013. package/ref-monty/crates/monty-type-checking/Cargo.toml +0 -32
  1014. package/ref-monty/crates/monty-type-checking/src/db.rs +0 -116
  1015. package/ref-monty/crates/monty-type-checking/src/lib.rs +0 -4
  1016. package/ref-monty/crates/monty-type-checking/src/type_check.rs +0 -280
  1017. package/ref-monty/crates/monty-type-checking/tests/bad_types.py +0 -109
  1018. package/ref-monty/crates/monty-type-checking/tests/bad_types_output.txt +0 -21
  1019. package/ref-monty/crates/monty-type-checking/tests/good_types.py +0 -475
  1020. package/ref-monty/crates/monty-type-checking/tests/main.rs +0 -205
  1021. package/ref-monty/crates/monty-type-checking/tests/reveal_types.py +0 -56
  1022. package/ref-monty/crates/monty-type-checking/tests/reveal_types_output.txt +0 -41
  1023. package/ref-monty/crates/monty-typeshed/Cargo.toml +0 -29
  1024. package/ref-monty/crates/monty-typeshed/README.md +0 -11
  1025. package/ref-monty/crates/monty-typeshed/build.rs +0 -101
  1026. package/ref-monty/crates/monty-typeshed/custom/README.md +0 -1
  1027. package/ref-monty/crates/monty-typeshed/custom/asyncio.pyi +0 -138
  1028. package/ref-monty/crates/monty-typeshed/custom/os.pyi +0 -87
  1029. package/ref-monty/crates/monty-typeshed/custom/sys.pyi +0 -33
  1030. package/ref-monty/crates/monty-typeshed/src/lib.rs +0 -56
  1031. package/ref-monty/crates/monty-typeshed/update.py +0 -321
  1032. package/ref-monty/crates/monty-typeshed/vendor/typeshed/source_commit.txt +0 -1
  1033. package/ref-monty/crates/monty-typeshed/vendor/typeshed/stdlib/VERSIONS +0 -20
  1034. package/ref-monty/crates/monty-typeshed/vendor/typeshed/stdlib/_collections_abc.pyi +0 -105
  1035. package/ref-monty/crates/monty-typeshed/vendor/typeshed/stdlib/_typeshed/__init__.pyi +0 -394
  1036. package/ref-monty/crates/monty-typeshed/vendor/typeshed/stdlib/asyncio.pyi +0 -138
  1037. package/ref-monty/crates/monty-typeshed/vendor/typeshed/stdlib/builtins.pyi +0 -1434
  1038. package/ref-monty/crates/monty-typeshed/vendor/typeshed/stdlib/collections/__init__.pyi +0 -527
  1039. package/ref-monty/crates/monty-typeshed/vendor/typeshed/stdlib/collections/abc.pyi +0 -2
  1040. package/ref-monty/crates/monty-typeshed/vendor/typeshed/stdlib/dataclasses.pyi +0 -502
  1041. package/ref-monty/crates/monty-typeshed/vendor/typeshed/stdlib/enum.pyi +0 -376
  1042. package/ref-monty/crates/monty-typeshed/vendor/typeshed/stdlib/math.pyi +0 -149
  1043. package/ref-monty/crates/monty-typeshed/vendor/typeshed/stdlib/os.pyi +0 -87
  1044. package/ref-monty/crates/monty-typeshed/vendor/typeshed/stdlib/pathlib/__init__.pyi +0 -395
  1045. package/ref-monty/crates/monty-typeshed/vendor/typeshed/stdlib/pathlib/types.pyi +0 -8
  1046. package/ref-monty/crates/monty-typeshed/vendor/typeshed/stdlib/re.pyi +0 -337
  1047. package/ref-monty/crates/monty-typeshed/vendor/typeshed/stdlib/sys.pyi +0 -33
  1048. package/ref-monty/crates/monty-typeshed/vendor/typeshed/stdlib/types.pyi +0 -741
  1049. package/ref-monty/crates/monty-typeshed/vendor/typeshed/stdlib/typing.pyi +0 -1217
  1050. package/ref-monty/crates/monty-typeshed/vendor/typeshed/stdlib/typing_extensions.pyi +0 -716
  1051. package/ref-monty/docs/usage-guide.md +0 -117
  1052. package/ref-monty/examples/README.md +0 -3
  1053. package/ref-monty/examples/expense_analysis/README.md +0 -3
  1054. package/ref-monty/examples/expense_analysis/data.py +0 -124
  1055. package/ref-monty/examples/expense_analysis/main.py +0 -115
  1056. package/ref-monty/examples/sql_playground/README.md +0 -20
  1057. package/ref-monty/examples/sql_playground/external_functions.py +0 -129
  1058. package/ref-monty/examples/sql_playground/main.py +0 -81
  1059. package/ref-monty/examples/sql_playground/sandbox_code.py +0 -82
  1060. package/ref-monty/examples/sql_playground/type_stubs.pyi +0 -14
  1061. package/ref-monty/examples/web_scraper/README.md +0 -15
  1062. package/ref-monty/examples/web_scraper/browser.py +0 -56
  1063. package/ref-monty/examples/web_scraper/example_code.py +0 -59
  1064. package/ref-monty/examples/web_scraper/external_functions.py +0 -324
  1065. package/ref-monty/examples/web_scraper/main.py +0 -193
  1066. package/ref-monty/examples/web_scraper/sub_agent.py +0 -79
  1067. package/ref-monty/monty-npm.md +0 -235
  1068. package/ref-monty/pyproject.toml +0 -162
  1069. package/ref-monty/scripts/check_imports.py +0 -91
  1070. package/ref-monty/scripts/codecov_diff.py +0 -412
  1071. package/ref-monty/scripts/complete_tests.py +0 -146
  1072. package/ref-monty/scripts/flamegraph_to_text.py +0 -208
  1073. package/ref-monty/scripts/iter_test_methods.py +0 -540
  1074. package/ref-monty/scripts/run_traceback.py +0 -180
  1075. package/ref-monty/scripts/startup_performance.py +0 -130
  1076. package/ref-monty/uv.lock +0 -1779
  1077. package/temp_resend_cli/repo/.github/scripts/pr-title-check.js +0 -34
  1078. package/temp_resend_cli/repo/.github/workflows/ci.yml +0 -67
  1079. package/temp_resend_cli/repo/.github/workflows/post-release.yml +0 -51
  1080. package/temp_resend_cli/repo/.github/workflows/pr-title-check.yml +0 -13
  1081. package/temp_resend_cli/repo/.github/workflows/release.yml +0 -175
  1082. package/temp_resend_cli/repo/.github/workflows/test-install-unix.yml +0 -34
  1083. package/temp_resend_cli/repo/.github/workflows/test-install-windows.yml +0 -48
  1084. package/temp_resend_cli/repo/CHANGELOG.md +0 -31
  1085. package/temp_resend_cli/repo/LICENSE +0 -21
  1086. package/temp_resend_cli/repo/README.md +0 -450
  1087. package/temp_resend_cli/repo/biome.json +0 -36
  1088. package/temp_resend_cli/repo/install.ps1 +0 -141
  1089. package/temp_resend_cli/repo/install.sh +0 -301
  1090. package/temp_resend_cli/repo/package.json +0 -61
  1091. package/temp_resend_cli/repo/pnpm-lock.yaml +0 -2439
  1092. package/temp_resend_cli/repo/renovate.json +0 -4
  1093. package/temp_resend_cli/repo/src/cli.ts +0 -98
  1094. package/temp_resend_cli/repo/src/commands/api-keys/create.ts +0 -114
  1095. package/temp_resend_cli/repo/src/commands/api-keys/delete.ts +0 -47
  1096. package/temp_resend_cli/repo/src/commands/api-keys/index.ts +0 -26
  1097. package/temp_resend_cli/repo/src/commands/api-keys/list.ts +0 -35
  1098. package/temp_resend_cli/repo/src/commands/api-keys/utils.ts +0 -8
  1099. package/temp_resend_cli/repo/src/commands/auth/index.ts +0 -20
  1100. package/temp_resend_cli/repo/src/commands/auth/login.ts +0 -234
  1101. package/temp_resend_cli/repo/src/commands/auth/logout.ts +0 -105
  1102. package/temp_resend_cli/repo/src/commands/broadcasts/create.ts +0 -196
  1103. package/temp_resend_cli/repo/src/commands/broadcasts/delete.ts +0 -46
  1104. package/temp_resend_cli/repo/src/commands/broadcasts/get.ts +0 -59
  1105. package/temp_resend_cli/repo/src/commands/broadcasts/index.ts +0 -43
  1106. package/temp_resend_cli/repo/src/commands/broadcasts/list.ts +0 -60
  1107. package/temp_resend_cli/repo/src/commands/broadcasts/send.ts +0 -56
  1108. package/temp_resend_cli/repo/src/commands/broadcasts/update.ts +0 -95
  1109. package/temp_resend_cli/repo/src/commands/broadcasts/utils.ts +0 -35
  1110. package/temp_resend_cli/repo/src/commands/contact-properties/create.ts +0 -118
  1111. package/temp_resend_cli/repo/src/commands/contact-properties/delete.ts +0 -48
  1112. package/temp_resend_cli/repo/src/commands/contact-properties/get.ts +0 -46
  1113. package/temp_resend_cli/repo/src/commands/contact-properties/index.ts +0 -48
  1114. package/temp_resend_cli/repo/src/commands/contact-properties/list.ts +0 -68
  1115. package/temp_resend_cli/repo/src/commands/contact-properties/update.ts +0 -88
  1116. package/temp_resend_cli/repo/src/commands/contact-properties/utils.ts +0 -17
  1117. package/temp_resend_cli/repo/src/commands/contacts/add-segment.ts +0 -78
  1118. package/temp_resend_cli/repo/src/commands/contacts/create.ts +0 -122
  1119. package/temp_resend_cli/repo/src/commands/contacts/delete.ts +0 -49
  1120. package/temp_resend_cli/repo/src/commands/contacts/get.ts +0 -53
  1121. package/temp_resend_cli/repo/src/commands/contacts/index.ts +0 -58
  1122. package/temp_resend_cli/repo/src/commands/contacts/list.ts +0 -57
  1123. package/temp_resend_cli/repo/src/commands/contacts/remove-segment.ts +0 -48
  1124. package/temp_resend_cli/repo/src/commands/contacts/segments.ts +0 -39
  1125. package/temp_resend_cli/repo/src/commands/contacts/topics.ts +0 -45
  1126. package/temp_resend_cli/repo/src/commands/contacts/update-topics.ts +0 -90
  1127. package/temp_resend_cli/repo/src/commands/contacts/update.ts +0 -77
  1128. package/temp_resend_cli/repo/src/commands/contacts/utils.ts +0 -119
  1129. package/temp_resend_cli/repo/src/commands/doctor.ts +0 -216
  1130. package/temp_resend_cli/repo/src/commands/domains/create.ts +0 -83
  1131. package/temp_resend_cli/repo/src/commands/domains/delete.ts +0 -42
  1132. package/temp_resend_cli/repo/src/commands/domains/get.ts +0 -47
  1133. package/temp_resend_cli/repo/src/commands/domains/index.ts +0 -35
  1134. package/temp_resend_cli/repo/src/commands/domains/list.ts +0 -53
  1135. package/temp_resend_cli/repo/src/commands/domains/update.ts +0 -75
  1136. package/temp_resend_cli/repo/src/commands/domains/utils.ts +0 -44
  1137. package/temp_resend_cli/repo/src/commands/domains/verify.ts +0 -38
  1138. package/temp_resend_cli/repo/src/commands/emails/batch.ts +0 -140
  1139. package/temp_resend_cli/repo/src/commands/emails/get.ts +0 -44
  1140. package/temp_resend_cli/repo/src/commands/emails/index.ts +0 -30
  1141. package/temp_resend_cli/repo/src/commands/emails/list.ts +0 -84
  1142. package/temp_resend_cli/repo/src/commands/emails/receiving/attachment.ts +0 -55
  1143. package/temp_resend_cli/repo/src/commands/emails/receiving/attachments.ts +0 -68
  1144. package/temp_resend_cli/repo/src/commands/emails/receiving/get.ts +0 -58
  1145. package/temp_resend_cli/repo/src/commands/emails/receiving/index.ts +0 -28
  1146. package/temp_resend_cli/repo/src/commands/emails/receiving/list.ts +0 -59
  1147. package/temp_resend_cli/repo/src/commands/emails/receiving/utils.ts +0 -38
  1148. package/temp_resend_cli/repo/src/commands/emails/send.ts +0 -189
  1149. package/temp_resend_cli/repo/src/commands/open.ts +0 -27
  1150. package/temp_resend_cli/repo/src/commands/segments/create.ts +0 -50
  1151. package/temp_resend_cli/repo/src/commands/segments/delete.ts +0 -47
  1152. package/temp_resend_cli/repo/src/commands/segments/get.ts +0 -38
  1153. package/temp_resend_cli/repo/src/commands/segments/index.ts +0 -36
  1154. package/temp_resend_cli/repo/src/commands/segments/list.ts +0 -58
  1155. package/temp_resend_cli/repo/src/commands/segments/utils.ts +0 -7
  1156. package/temp_resend_cli/repo/src/commands/teams/index.ts +0 -10
  1157. package/temp_resend_cli/repo/src/commands/teams/list.ts +0 -35
  1158. package/temp_resend_cli/repo/src/commands/teams/remove.ts +0 -86
  1159. package/temp_resend_cli/repo/src/commands/teams/switch.ts +0 -76
  1160. package/temp_resend_cli/repo/src/commands/topics/create.ts +0 -73
  1161. package/temp_resend_cli/repo/src/commands/topics/delete.ts +0 -47
  1162. package/temp_resend_cli/repo/src/commands/topics/get.ts +0 -42
  1163. package/temp_resend_cli/repo/src/commands/topics/index.ts +0 -42
  1164. package/temp_resend_cli/repo/src/commands/topics/list.ts +0 -34
  1165. package/temp_resend_cli/repo/src/commands/topics/update.ts +0 -59
  1166. package/temp_resend_cli/repo/src/commands/topics/utils.ts +0 -16
  1167. package/temp_resend_cli/repo/src/commands/webhooks/create.ts +0 -128
  1168. package/temp_resend_cli/repo/src/commands/webhooks/delete.ts +0 -49
  1169. package/temp_resend_cli/repo/src/commands/webhooks/get.ts +0 -42
  1170. package/temp_resend_cli/repo/src/commands/webhooks/index.ts +0 -42
  1171. package/temp_resend_cli/repo/src/commands/webhooks/list.ts +0 -55
  1172. package/temp_resend_cli/repo/src/commands/webhooks/listen.ts +0 -379
  1173. package/temp_resend_cli/repo/src/commands/webhooks/update.ts +0 -83
  1174. package/temp_resend_cli/repo/src/commands/webhooks/utils.ts +0 -36
  1175. package/temp_resend_cli/repo/src/commands/whoami.ts +0 -71
  1176. package/temp_resend_cli/repo/src/lib/actions.ts +0 -157
  1177. package/temp_resend_cli/repo/src/lib/client.ts +0 -37
  1178. package/temp_resend_cli/repo/src/lib/config.ts +0 -217
  1179. package/temp_resend_cli/repo/src/lib/files.ts +0 -15
  1180. package/temp_resend_cli/repo/src/lib/help-text.ts +0 -38
  1181. package/temp_resend_cli/repo/src/lib/output.ts +0 -56
  1182. package/temp_resend_cli/repo/src/lib/pagination.ts +0 -36
  1183. package/temp_resend_cli/repo/src/lib/prompts.ts +0 -149
  1184. package/temp_resend_cli/repo/src/lib/spinner.ts +0 -100
  1185. package/temp_resend_cli/repo/src/lib/table.ts +0 -57
  1186. package/temp_resend_cli/repo/src/lib/tty.ts +0 -28
  1187. package/temp_resend_cli/repo/src/lib/update-check.ts +0 -169
  1188. package/temp_resend_cli/repo/src/lib/version.ts +0 -4
  1189. package/temp_resend_cli/repo/tests/commands/api-keys/create.test.ts +0 -196
  1190. package/temp_resend_cli/repo/tests/commands/api-keys/delete.test.ts +0 -157
  1191. package/temp_resend_cli/repo/tests/commands/api-keys/list.test.ts +0 -134
  1192. package/temp_resend_cli/repo/tests/commands/auth/login.test.ts +0 -153
  1193. package/temp_resend_cli/repo/tests/commands/auth/logout.test.ts +0 -153
  1194. package/temp_resend_cli/repo/tests/commands/broadcasts/create.test.ts +0 -454
  1195. package/temp_resend_cli/repo/tests/commands/broadcasts/delete.test.ts +0 -183
  1196. package/temp_resend_cli/repo/tests/commands/broadcasts/get.test.ts +0 -147
  1197. package/temp_resend_cli/repo/tests/commands/broadcasts/list.test.ts +0 -199
  1198. package/temp_resend_cli/repo/tests/commands/broadcasts/send.test.ts +0 -162
  1199. package/temp_resend_cli/repo/tests/commands/broadcasts/update.test.ts +0 -288
  1200. package/temp_resend_cli/repo/tests/commands/contact-properties/create.test.ts +0 -251
  1201. package/temp_resend_cli/repo/tests/commands/contact-properties/delete.test.ts +0 -184
  1202. package/temp_resend_cli/repo/tests/commands/contact-properties/get.test.ts +0 -145
  1203. package/temp_resend_cli/repo/tests/commands/contact-properties/list.test.ts +0 -181
  1204. package/temp_resend_cli/repo/tests/commands/contact-properties/update.test.ts +0 -217
  1205. package/temp_resend_cli/repo/tests/commands/contacts/add-segment.test.ts +0 -189
  1206. package/temp_resend_cli/repo/tests/commands/contacts/create.test.ts +0 -271
  1207. package/temp_resend_cli/repo/tests/commands/contacts/delete.test.ts +0 -193
  1208. package/temp_resend_cli/repo/tests/commands/contacts/get.test.ts +0 -149
  1209. package/temp_resend_cli/repo/tests/commands/contacts/list.test.ts +0 -176
  1210. package/temp_resend_cli/repo/tests/commands/contacts/remove-segment.test.ts +0 -167
  1211. package/temp_resend_cli/repo/tests/commands/contacts/segments.test.ts +0 -168
  1212. package/temp_resend_cli/repo/tests/commands/contacts/topics.test.ts +0 -164
  1213. package/temp_resend_cli/repo/tests/commands/contacts/update-topics.test.ts +0 -248
  1214. package/temp_resend_cli/repo/tests/commands/contacts/update.test.ts +0 -206
  1215. package/temp_resend_cli/repo/tests/commands/doctor.test.ts +0 -164
  1216. package/temp_resend_cli/repo/tests/commands/domains/create.test.ts +0 -193
  1217. package/temp_resend_cli/repo/tests/commands/domains/delete.test.ts +0 -157
  1218. package/temp_resend_cli/repo/tests/commands/domains/get.test.ts +0 -138
  1219. package/temp_resend_cli/repo/tests/commands/domains/list.test.ts +0 -165
  1220. package/temp_resend_cli/repo/tests/commands/domains/update.test.ts +0 -224
  1221. package/temp_resend_cli/repo/tests/commands/domains/verify.test.ts +0 -118
  1222. package/temp_resend_cli/repo/tests/commands/emails/batch.test.ts +0 -324
  1223. package/temp_resend_cli/repo/tests/commands/emails/get.test.ts +0 -132
  1224. package/temp_resend_cli/repo/tests/commands/emails/receiving/attachment.test.ts +0 -141
  1225. package/temp_resend_cli/repo/tests/commands/emails/receiving/attachments.test.ts +0 -169
  1226. package/temp_resend_cli/repo/tests/commands/emails/receiving/get.test.ts +0 -141
  1227. package/temp_resend_cli/repo/tests/commands/emails/receiving/list.test.ts +0 -182
  1228. package/temp_resend_cli/repo/tests/commands/emails/send.test.ts +0 -312
  1229. package/temp_resend_cli/repo/tests/commands/segments/create.test.ts +0 -164
  1230. package/temp_resend_cli/repo/tests/commands/segments/delete.test.ts +0 -183
  1231. package/temp_resend_cli/repo/tests/commands/segments/get.test.ts +0 -138
  1232. package/temp_resend_cli/repo/tests/commands/segments/list.test.ts +0 -174
  1233. package/temp_resend_cli/repo/tests/commands/teams/list.test.ts +0 -62
  1234. package/temp_resend_cli/repo/tests/commands/teams/remove.test.ts +0 -110
  1235. package/temp_resend_cli/repo/tests/commands/teams/switch.test.ts +0 -103
  1236. package/temp_resend_cli/repo/tests/commands/topics/create.test.ts +0 -192
  1237. package/temp_resend_cli/repo/tests/commands/topics/delete.test.ts +0 -157
  1238. package/temp_resend_cli/repo/tests/commands/topics/get.test.ts +0 -126
  1239. package/temp_resend_cli/repo/tests/commands/topics/list.test.ts +0 -125
  1240. package/temp_resend_cli/repo/tests/commands/topics/update.test.ts +0 -178
  1241. package/temp_resend_cli/repo/tests/commands/webhooks/create.test.ts +0 -225
  1242. package/temp_resend_cli/repo/tests/commands/webhooks/delete.test.ts +0 -157
  1243. package/temp_resend_cli/repo/tests/commands/webhooks/get.test.ts +0 -126
  1244. package/temp_resend_cli/repo/tests/commands/webhooks/list.test.ts +0 -178
  1245. package/temp_resend_cli/repo/tests/commands/webhooks/update.test.ts +0 -207
  1246. package/temp_resend_cli/repo/tests/commands/whoami.test.ts +0 -98
  1247. package/temp_resend_cli/repo/tests/e2e/smoke.test.ts +0 -93
  1248. package/temp_resend_cli/repo/tests/helpers.ts +0 -86
  1249. package/temp_resend_cli/repo/tests/lib/client.test.ts +0 -71
  1250. package/temp_resend_cli/repo/tests/lib/config.test.ts +0 -451
  1251. package/temp_resend_cli/repo/tests/lib/files.test.ts +0 -73
  1252. package/temp_resend_cli/repo/tests/lib/help-text.test.ts +0 -97
  1253. package/temp_resend_cli/repo/tests/lib/output.test.ts +0 -136
  1254. package/temp_resend_cli/repo/tests/lib/prompts.test.ts +0 -185
  1255. package/temp_resend_cli/repo/tests/lib/spinner.test.ts +0 -166
  1256. package/temp_resend_cli/repo/tests/lib/table.test.ts +0 -63
  1257. package/temp_resend_cli/repo/tests/lib/tty.test.ts +0 -89
  1258. package/temp_resend_cli/repo/tests/lib/update-check.test.ts +0 -179
  1259. package/temp_resend_cli/repo/tsconfig.json +0 -14
  1260. package/temp_resend_cli/repo/vitest.config.e2e.ts +0 -8
  1261. package/temp_resend_cli/repo/vitest.config.ts +0 -10
  1262. /package/docs/{plugin-examples.md → plugins-examples.md} +0 -0
@@ -1,1432 +0,0 @@
1
- import math
2
-
3
- # === Constants ===
4
- assert math.pi == 3.141592653589793, 'math.pi value'
5
- assert math.e == 2.718281828459045, 'math.e value'
6
- assert math.tau == 6.283185307179586, 'math.tau value'
7
- assert math.inf == float('inf'), 'math.inf is infinity'
8
- assert math.nan != math.nan, 'math.nan is NaN (not equal to itself)'
9
- assert math.isinf(math.inf), 'math.inf is recognized by isinf'
10
- assert math.isnan(math.nan), 'math.nan is recognized by isnan'
11
-
12
- # === math.floor() ===
13
- assert math.floor(2.3) == 2, 'floor(2.3)'
14
- assert math.floor(-2.3) == -3, 'floor(-2.3)'
15
- assert math.floor(2.0) == 2, 'floor(2.0)'
16
- assert math.floor(5) == 5, 'floor(int)'
17
- assert math.floor(True) == 1, 'floor(True)'
18
- assert math.floor(False) == 0, 'floor(False)'
19
- assert math.floor(-0.5) == -1, 'floor(-0.5)'
20
- assert math.floor(0.9) == 0, 'floor(0.9)'
21
- assert math.floor(1e18) == 1000000000000000000, 'floor(1e18)'
22
-
23
- threw = False
24
- try:
25
- math.floor(float('inf'))
26
- except OverflowError:
27
- threw = True
28
- assert threw, 'floor(inf) raises OverflowError'
29
-
30
- threw = False
31
- try:
32
- math.floor(float('nan'))
33
- except ValueError:
34
- threw = True
35
- assert threw, 'floor(nan) raises ValueError'
36
-
37
- threw = False
38
- try:
39
- math.floor('x')
40
- except TypeError:
41
- threw = True
42
- assert threw, 'floor(str) raises TypeError'
43
-
44
- # === math.ceil() ===
45
- assert math.ceil(2.3) == 3, 'ceil(2.3)'
46
- assert math.ceil(-2.3) == -2, 'ceil(-2.3)'
47
- assert math.ceil(2.0) == 2, 'ceil(2.0)'
48
- assert math.ceil(5) == 5, 'ceil(int)'
49
- assert math.ceil(True) == 1, 'ceil(True)'
50
- assert math.ceil(False) == 0, 'ceil(False)'
51
- assert math.ceil(0.1) == 1, 'ceil(0.1)'
52
- assert math.ceil(-0.1) == 0, 'ceil(-0.1)'
53
-
54
- threw = False
55
- try:
56
- math.ceil(float('inf'))
57
- except OverflowError:
58
- threw = True
59
- assert threw, 'ceil(inf) raises OverflowError'
60
-
61
- threw = False
62
- try:
63
- math.ceil(float('nan'))
64
- except ValueError:
65
- threw = True
66
- assert threw, 'ceil(nan) raises ValueError'
67
-
68
- threw = False
69
- try:
70
- math.ceil('x')
71
- except TypeError:
72
- threw = True
73
- assert threw, 'ceil(str) raises TypeError'
74
-
75
- # === math.trunc() ===
76
- assert math.trunc(2.7) == 2, 'trunc(2.7)'
77
- assert math.trunc(-2.7) == -2, 'trunc(-2.7)'
78
- assert math.trunc(2.0) == 2, 'trunc(2.0)'
79
- assert math.trunc(5) == 5, 'trunc(int)'
80
- assert math.trunc(True) == 1, 'trunc(True)'
81
- assert math.trunc(False) == 0, 'trunc(False)'
82
-
83
- threw = False
84
- try:
85
- math.trunc(float('inf'))
86
- except OverflowError:
87
- threw = True
88
- assert threw, 'trunc(inf) raises OverflowError'
89
-
90
- threw = False
91
- try:
92
- math.trunc(float('nan'))
93
- except ValueError:
94
- threw = True
95
- assert threw, 'trunc(nan) raises ValueError'
96
-
97
- threw = False
98
- try:
99
- math.trunc('x')
100
- except TypeError:
101
- threw = True
102
- assert threw, 'trunc(str) raises TypeError'
103
-
104
- # === math.sqrt() ===
105
- assert math.sqrt(4) == 2.0, 'sqrt(4)'
106
- assert math.sqrt(2) == 1.4142135623730951, 'sqrt(2)'
107
- assert math.sqrt(0) == 0.0, 'sqrt(0)'
108
- assert math.sqrt(1) == 1.0, 'sqrt(1)'
109
- assert math.sqrt(0.25) == 0.5, 'sqrt(0.25)'
110
- assert isinstance(math.sqrt(4), float), 'sqrt returns float'
111
- assert math.sqrt(True) == 1.0, 'sqrt(True)'
112
- assert math.sqrt(False) == 0.0, 'sqrt(False)'
113
- assert math.sqrt(float('inf')) == float('inf'), 'sqrt(inf) returns inf'
114
- assert math.isnan(math.sqrt(float('nan'))), 'sqrt(nan) returns nan'
115
-
116
- threw = False
117
- try:
118
- math.sqrt(-1)
119
- except ValueError:
120
- threw = True
121
- assert threw, 'sqrt(-1) raises ValueError'
122
-
123
- threw = False
124
- try:
125
- math.sqrt('x')
126
- except TypeError:
127
- threw = True
128
- assert threw, 'sqrt(str) raises TypeError'
129
-
130
- # === math.isqrt() ===
131
- assert math.isqrt(0) == 0, 'isqrt(0)'
132
- assert math.isqrt(1) == 1, 'isqrt(1)'
133
- assert math.isqrt(4) == 2, 'isqrt(4)'
134
- assert math.isqrt(10) == 3, 'isqrt(10)'
135
- assert math.isqrt(99) == 9, 'isqrt(99)'
136
- assert math.isqrt(100) == 10, 'isqrt(100)'
137
- assert math.isqrt(True) == 1, 'isqrt(True)'
138
-
139
- threw = False
140
- try:
141
- math.isqrt(-1)
142
- except ValueError:
143
- threw = True
144
- assert threw, 'isqrt(-1) raises ValueError'
145
-
146
- threw = False
147
- try:
148
- math.isqrt(4.0)
149
- except TypeError:
150
- threw = True
151
- assert threw, 'isqrt(float) raises TypeError'
152
-
153
- # === math.cbrt() ===
154
- assert math.cbrt(0) == 0.0, 'cbrt(0)'
155
- assert math.cbrt(8) == 2.0, 'cbrt(8)'
156
- assert math.cbrt(-8) == -2.0, 'cbrt(-8)'
157
- assert math.cbrt(1) == 1.0, 'cbrt(1)'
158
- assert math.cbrt(64) == 4.0, 'cbrt(64)'
159
- assert math.cbrt(float('inf')) == float('inf'), 'cbrt(inf)'
160
- assert math.cbrt(float('-inf')) == float('-inf'), 'cbrt(-inf)'
161
- assert math.isnan(math.cbrt(float('nan'))), 'cbrt(nan) is nan'
162
-
163
- threw = False
164
- try:
165
- math.cbrt('x')
166
- except TypeError:
167
- threw = True
168
- assert threw, 'cbrt(str) raises TypeError'
169
-
170
- # === math.pow() ===
171
- assert math.pow(2, 3) == 8.0, 'pow(2, 3)'
172
- assert math.pow(2.0, 0.5) == math.sqrt(2), 'pow(2, 0.5)'
173
- assert math.pow(0, 0) == 1.0, 'pow(0, 0)'
174
- assert isinstance(math.pow(2, 3), float), 'pow returns float'
175
- assert math.pow(2, -1) == 0.5, 'pow(2, -1)'
176
- assert math.pow(float('inf'), 0) == 1.0, 'pow(inf, 0)'
177
- assert math.pow(float('nan'), 0) == 1.0, 'pow(nan, 0)'
178
- assert math.pow(1, float('inf')) == 1.0, 'pow(1, inf)'
179
- assert math.pow(1, float('nan')) == 1.0, 'pow(1, nan)'
180
-
181
- threw = False
182
- try:
183
- math.pow(0, -1)
184
- except ValueError:
185
- threw = True
186
- assert threw, 'pow(0, -1) raises ValueError'
187
-
188
- threw = False
189
- try:
190
- math.pow(-1, 0.5)
191
- except ValueError:
192
- threw = True
193
- assert threw, 'pow(-1, 0.5) raises ValueError'
194
-
195
- threw = False
196
- try:
197
- math.pow(2, 1024)
198
- except OverflowError:
199
- threw = True
200
- assert threw, 'pow(2, 1024) raises OverflowError'
201
-
202
- threw = False
203
- try:
204
- math.pow('x', 2)
205
- except TypeError:
206
- threw = True
207
- assert threw, 'pow(str, int) raises TypeError'
208
-
209
- # === math.exp() ===
210
- assert math.exp(0) == 1.0, 'exp(0)'
211
- assert math.exp(1) == math.e, 'exp(1)'
212
- assert math.exp(float('-inf')) == 0.0, 'exp(-inf)'
213
- assert math.exp(float('inf')) == float('inf'), 'exp(inf)'
214
- assert math.isnan(math.exp(float('nan'))), 'exp(nan) is nan'
215
-
216
- threw = False
217
- try:
218
- math.exp(1000)
219
- except OverflowError:
220
- threw = True
221
- assert threw, 'exp(1000) raises OverflowError'
222
-
223
- threw = False
224
- try:
225
- math.exp('x')
226
- except TypeError:
227
- threw = True
228
- assert threw, 'exp(str) raises TypeError'
229
-
230
- # === math.exp2() ===
231
- assert math.exp2(0) == 1.0, 'exp2(0)'
232
- assert math.exp2(3) == 8.0, 'exp2(3)'
233
- assert math.exp2(10) == 1024.0, 'exp2(10)'
234
- assert math.exp2(float('-inf')) == 0.0, 'exp2(-inf)'
235
- assert math.exp2(float('inf')) == float('inf'), 'exp2(inf)'
236
- assert math.isnan(math.exp2(float('nan'))), 'exp2(nan) is nan'
237
-
238
- threw = False
239
- try:
240
- math.exp2(1024)
241
- except OverflowError:
242
- threw = True
243
- assert threw, 'exp2(1024) raises OverflowError'
244
-
245
- threw = False
246
- try:
247
- math.exp2('x')
248
- except TypeError:
249
- threw = True
250
- assert threw, 'exp2(str) raises TypeError'
251
-
252
- # === math.expm1() ===
253
- assert math.expm1(0) == 0.0, 'expm1(0)'
254
- assert math.isclose(math.expm1(1), math.e - 1), 'expm1(1)'
255
- assert math.expm1(1e-15) != 0.0, 'expm1(1e-15) is precise'
256
- assert math.expm1(float('-inf')) == -1.0, 'expm1(-inf)'
257
- assert math.expm1(float('inf')) == float('inf'), 'expm1(inf)'
258
- assert math.isnan(math.expm1(float('nan'))), 'expm1(nan) is nan'
259
-
260
- threw = False
261
- try:
262
- math.expm1(1000)
263
- except OverflowError:
264
- threw = True
265
- assert threw, 'expm1(1000) raises OverflowError'
266
-
267
- threw = False
268
- try:
269
- math.expm1('x')
270
- except TypeError:
271
- threw = True
272
- assert threw, 'expm1(str) raises TypeError'
273
-
274
- # === math.fabs() ===
275
- assert math.fabs(-5) == 5.0, 'fabs(-5)'
276
- assert math.fabs(5) == 5.0, 'fabs(5)'
277
- assert math.fabs(-3.14) == 3.14, 'fabs(-3.14)'
278
- assert math.fabs(0) == 0.0, 'fabs(0)'
279
- assert isinstance(math.fabs(-5), float), 'fabs returns float'
280
- assert isinstance(math.fabs(0), float), 'fabs(0) returns float'
281
- assert math.fabs(True) == 1.0, 'fabs(True)'
282
- assert math.fabs(False) == 0.0, 'fabs(False)'
283
- assert math.fabs(float('inf')) == float('inf'), 'fabs(inf)'
284
- assert math.fabs(float('-inf')) == float('inf'), 'fabs(-inf)'
285
- assert math.isnan(math.fabs(float('nan'))), 'fabs(nan) returns nan'
286
-
287
- threw = False
288
- try:
289
- math.fabs('x')
290
- except TypeError:
291
- threw = True
292
- assert threw, 'fabs(str) raises TypeError'
293
-
294
- # === math.isnan() ===
295
- assert math.isnan(float('nan')) == True, 'isnan(nan)'
296
- assert math.isnan(1.0) == False, 'isnan(1.0)'
297
- assert math.isnan(0.0) == False, 'isnan(0.0)'
298
- assert math.isnan(float('inf')) == False, 'isnan(inf)'
299
- assert math.isnan(0) == False, 'isnan(int)'
300
- assert math.isnan(True) == False, 'isnan(True)'
301
- assert math.isnan(False) == False, 'isnan(False)'
302
-
303
- threw = False
304
- try:
305
- math.isnan('x')
306
- except TypeError:
307
- threw = True
308
- assert threw, 'isnan(str) raises TypeError'
309
-
310
- # === math.isinf() ===
311
- assert math.isinf(float('inf')) == True, 'isinf(inf)'
312
- assert math.isinf(float('-inf')) == True, 'isinf(-inf)'
313
- assert math.isinf(1.0) == False, 'isinf(1.0)'
314
- assert math.isinf(float('nan')) == False, 'isinf(nan)'
315
- assert math.isinf(0) == False, 'isinf(int)'
316
- assert math.isinf(True) == False, 'isinf(True)'
317
- assert math.isinf(False) == False, 'isinf(False)'
318
-
319
- threw = False
320
- try:
321
- math.isinf('x')
322
- except TypeError:
323
- threw = True
324
- assert threw, 'isinf(str) raises TypeError'
325
-
326
- # === math.isfinite() ===
327
- assert math.isfinite(1.0) == True, 'isfinite(1.0)'
328
- assert math.isfinite(0) == True, 'isfinite(0)'
329
- assert math.isfinite(float('inf')) == False, 'isfinite(inf)'
330
- assert math.isfinite(float('-inf')) == False, 'isfinite(-inf)'
331
- assert math.isfinite(float('nan')) == False, 'isfinite(nan)'
332
- assert math.isfinite(True) == True, 'isfinite(True)'
333
- assert math.isfinite(False) == True, 'isfinite(False)'
334
-
335
- threw = False
336
- try:
337
- math.isfinite('x')
338
- except TypeError:
339
- threw = True
340
- assert threw, 'isfinite(str) raises TypeError'
341
-
342
- # === math.copysign() ===
343
- assert math.copysign(1.0, -0.0) == -1.0, 'copysign(1.0, -0.0)'
344
- assert math.copysign(-1.0, 1.0) == 1.0, 'copysign(-1.0, 1.0)'
345
- assert math.copysign(5, -3) == -5.0, 'copysign(5, -3)'
346
- assert isinstance(math.copysign(5, -3), float), 'copysign returns float'
347
- assert math.copysign(float('inf'), -1.0) == float('-inf'), 'copysign(inf, -1.0)'
348
- assert math.copysign(0.0, -1.0) == -0.0, 'copysign(0.0, -1.0)'
349
- assert math.isnan(math.copysign(float('nan'), -1.0)), 'copysign(nan, -1.0) is nan'
350
- assert math.copysign(True, -1) == -1.0, 'copysign(True, -1)'
351
-
352
- threw = False
353
- try:
354
- math.copysign('x', 1)
355
- except TypeError:
356
- threw = True
357
- assert threw, 'copysign(str, int) raises TypeError'
358
-
359
- # === math.isclose() ===
360
- assert math.isclose(1.0, 1.0) == True, 'isclose equal'
361
- assert math.isclose(1.0, 1.0000000001) == True, 'isclose very close'
362
- assert math.isclose(1.0, 1.1) == False, 'isclose not close'
363
- assert math.isclose(0.0, 0.0) == True, 'isclose zeros'
364
- assert math.isclose(-0.0, 0.0) == True, 'isclose neg zero and zero'
365
- assert math.isclose(float('inf'), float('inf')) == True, 'isclose(inf, inf)'
366
- assert math.isclose(float('inf'), 1e308) == False, 'isclose(inf, large) is False'
367
- assert math.isclose(float('nan'), float('nan')) == False, 'isclose(nan, nan) is False'
368
- assert math.isclose(1e-15, 0.0) == False, 'isclose(1e-15, 0.0) is False with default abs_tol'
369
- assert math.isclose(0.0, 1e-15) == False, 'isclose(0.0, 1e-15) is False with default abs_tol'
370
-
371
- threw = False
372
- try:
373
- math.isclose('x', 1)
374
- except TypeError:
375
- threw = True
376
- assert threw, 'isclose(str, int) raises TypeError'
377
-
378
- # === math.log() ===
379
- assert math.log(1) == 0.0, 'log(1)'
380
- assert math.log(math.e) == 1.0, 'log(e)'
381
- assert math.log(100, 10) == 2.0, 'log(100, 10)'
382
- assert math.log(1, 10) == 0.0, 'log(1, 10)'
383
- assert math.log(True) == 0.0, 'log(True)'
384
- assert math.log(float('inf')) == float('inf'), 'log(inf) returns inf'
385
- assert math.isnan(math.log(float('nan'))), 'log(nan) returns nan'
386
- assert math.isnan(math.log(float('nan'), 2)), 'log(nan, 2) returns nan'
387
- assert math.log(float('inf'), 2) == float('inf'), 'log(inf, 2) returns inf'
388
-
389
- threw = False
390
- try:
391
- math.log(0)
392
- except ValueError:
393
- threw = True
394
- assert threw, 'log(0) raises ValueError'
395
-
396
- threw = False
397
- try:
398
- math.log(-1)
399
- except ValueError:
400
- threw = True
401
- assert threw, 'log(-1) raises ValueError'
402
-
403
- threw = False
404
- try:
405
- math.log(10, 1)
406
- except ZeroDivisionError:
407
- threw = True
408
- assert threw, 'log(10, 1) raises ZeroDivisionError'
409
-
410
- threw = False
411
- try:
412
- math.log(10, 0)
413
- except ValueError:
414
- threw = True
415
- assert threw, 'log(10, 0) raises ValueError'
416
-
417
- threw = False
418
- try:
419
- math.log(10, -1)
420
- except ValueError:
421
- threw = True
422
- assert threw, 'log(10, -1) raises ValueError'
423
-
424
- threw = False
425
- try:
426
- math.log('x')
427
- except TypeError:
428
- threw = True
429
- assert threw, 'log(str) raises TypeError'
430
-
431
- # === math.log2() ===
432
- assert math.log2(1) == 0.0, 'log2(1)'
433
- assert math.log2(8) == 3.0, 'log2(8)'
434
- assert math.log2(1024) == 10.0, 'log2(1024)'
435
- assert math.log2(True) == 0.0, 'log2(True)'
436
- assert math.log2(float('inf')) == float('inf'), 'log2(inf) returns inf'
437
- assert math.isnan(math.log2(float('nan'))), 'log2(nan) returns nan'
438
-
439
- threw = False
440
- try:
441
- math.log2(0)
442
- except ValueError:
443
- threw = True
444
- assert threw, 'log2(0) raises ValueError'
445
-
446
- threw = False
447
- try:
448
- math.log2(-1)
449
- except ValueError:
450
- threw = True
451
- assert threw, 'log2(-1) raises ValueError'
452
-
453
- threw = False
454
- try:
455
- math.log2('x')
456
- except TypeError:
457
- threw = True
458
- assert threw, 'log2(str) raises TypeError'
459
-
460
- # === math.log10() ===
461
- assert math.log10(1) == 0.0, 'log10(1)'
462
- assert math.log10(1000) == 3.0, 'log10(1000)'
463
- assert math.log10(100) == 2.0, 'log10(100)'
464
- assert math.log10(True) == 0.0, 'log10(True)'
465
- assert math.log10(float('inf')) == float('inf'), 'log10(inf) returns inf'
466
- assert math.isnan(math.log10(float('nan'))), 'log10(nan) returns nan'
467
-
468
- threw = False
469
- try:
470
- math.log10(0)
471
- except ValueError:
472
- threw = True
473
- assert threw, 'log10(0) raises ValueError'
474
-
475
- threw = False
476
- try:
477
- math.log10(-1)
478
- except ValueError:
479
- threw = True
480
- assert threw, 'log10(-1) raises ValueError'
481
-
482
- threw = False
483
- try:
484
- math.log10('x')
485
- except TypeError:
486
- threw = True
487
- assert threw, 'log10(str) raises TypeError'
488
-
489
- # === math.log1p() ===
490
- assert math.log1p(0) == 0.0, 'log1p(0)'
491
- assert math.isclose(math.log1p(math.e - 1), 1.0), 'log1p(e-1)'
492
- assert math.log1p(float('inf')) == float('inf'), 'log1p(inf)'
493
- assert math.isnan(math.log1p(float('nan'))), 'log1p(nan) is nan'
494
-
495
- threw = False
496
- try:
497
- math.log1p(-1)
498
- except ValueError:
499
- threw = True
500
- assert threw, 'log1p(-1) raises ValueError'
501
-
502
- threw = False
503
- try:
504
- math.log1p(-2)
505
- except ValueError:
506
- threw = True
507
- assert threw, 'log1p(-2) raises ValueError'
508
-
509
- threw = False
510
- try:
511
- math.log1p('x')
512
- except TypeError:
513
- threw = True
514
- assert threw, 'log1p(str) raises TypeError'
515
-
516
- # === math.factorial() ===
517
- assert math.factorial(0) == 1, 'factorial(0)'
518
- assert math.factorial(1) == 1, 'factorial(1)'
519
- assert math.factorial(5) == 120, 'factorial(5)'
520
- assert math.factorial(10) == 3628800, 'factorial(10)'
521
- assert math.factorial(20) == 2432902008176640000, 'factorial(20)'
522
- assert math.factorial(True) == 1, 'factorial(True)'
523
- assert math.factorial(False) == 1, 'factorial(False)'
524
-
525
- threw = False
526
- try:
527
- math.factorial(-1)
528
- except ValueError:
529
- threw = True
530
- assert threw, 'factorial(-1) raises ValueError'
531
-
532
- threw = False
533
- try:
534
- math.factorial(1.5)
535
- except TypeError:
536
- threw = True
537
- assert threw, 'factorial(1.5) raises TypeError'
538
-
539
- threw = False
540
- try:
541
- math.factorial('x')
542
- except TypeError:
543
- threw = True
544
- assert threw, 'factorial(str) raises TypeError'
545
-
546
- # === math.gcd() ===
547
- assert math.gcd(12, 8) == 4, 'gcd(12, 8)'
548
- assert math.gcd(0, 5) == 5, 'gcd(0, 5)'
549
- assert math.gcd(5, 0) == 5, 'gcd(5, 0)'
550
- assert math.gcd(0, 0) == 0, 'gcd(0, 0)'
551
- assert math.gcd(-12, 8) == 4, 'gcd(-12, 8)'
552
- assert math.gcd(12, -8) == 4, 'gcd(12, -8)'
553
- assert math.gcd(-12, -8) == 4, 'gcd(-12, -8)'
554
- assert math.gcd(7, 13) == 1, 'gcd(7, 13) coprime'
555
- assert math.gcd(True, 2) == 1, 'gcd(True, 2)'
556
- assert math.gcd(False, 5) == 5, 'gcd(False, 5)'
557
-
558
- threw = False
559
- try:
560
- math.gcd(1.5, 2)
561
- except TypeError:
562
- threw = True
563
- assert threw, 'gcd(float, int) raises TypeError'
564
-
565
- threw = False
566
- try:
567
- math.gcd(2, 1.5)
568
- except TypeError:
569
- threw = True
570
- assert threw, 'gcd(int, float) raises TypeError'
571
-
572
- # === math.lcm() ===
573
- assert math.lcm(4, 6) == 12, 'lcm(4, 6)'
574
- assert math.lcm(0, 5) == 0, 'lcm(0, 5)'
575
- assert math.lcm(5, 0) == 0, 'lcm(5, 0)'
576
- assert math.lcm(0, 0) == 0, 'lcm(0, 0)'
577
- assert math.lcm(3, 7) == 21, 'lcm(3, 7) coprime'
578
- assert math.lcm(6, 6) == 6, 'lcm(6, 6) equal'
579
- assert math.lcm(-4, 6) == 12, 'lcm(-4, 6) negative'
580
- assert math.lcm(-4, -6) == 12, 'lcm(-4, -6) both negative'
581
- assert math.lcm(True, 2) == 2, 'lcm(True, 2)'
582
- assert math.lcm(False, 5) == 0, 'lcm(False, 5)'
583
-
584
- threw = False
585
- try:
586
- math.lcm(1.5, 2)
587
- except TypeError:
588
- threw = True
589
- assert threw, 'lcm(float, int) raises TypeError'
590
-
591
- threw = False
592
- try:
593
- math.lcm(2, 1.5)
594
- except TypeError:
595
- threw = True
596
- assert threw, 'lcm(int, float) raises TypeError'
597
-
598
- # === math.comb() ===
599
- assert math.comb(5, 2) == 10, 'comb(5, 2)'
600
- assert math.comb(10, 0) == 1, 'comb(10, 0)'
601
- assert math.comb(10, 10) == 1, 'comb(10, 10)'
602
- assert math.comb(0, 0) == 1, 'comb(0, 0)'
603
- assert math.comb(5, 6) == 0, 'comb(5, 6) k > n'
604
-
605
- threw = False
606
- try:
607
- math.comb(5, -1)
608
- except ValueError:
609
- threw = True
610
- assert threw, 'comb(5, -1) raises ValueError'
611
-
612
- threw = False
613
- try:
614
- math.comb(-1, 2)
615
- except ValueError:
616
- threw = True
617
- assert threw, 'comb(-1, 2) raises ValueError'
618
-
619
- threw = False
620
- try:
621
- math.comb(5.0, 2)
622
- except TypeError:
623
- threw = True
624
- assert threw, 'comb(float, int) raises TypeError'
625
-
626
- # === math.perm() ===
627
- assert math.perm(5, 2) == 20, 'perm(5, 2)'
628
- assert math.perm(5, 0) == 1, 'perm(5, 0)'
629
- assert math.perm(5, 5) == 120, 'perm(5, 5)'
630
- assert math.perm(5, 6) == 0, 'perm(5, 6) k > n'
631
-
632
- threw = False
633
- try:
634
- math.perm(5, -1)
635
- except ValueError:
636
- threw = True
637
- assert threw, 'perm(5, -1) raises ValueError'
638
-
639
- threw = False
640
- try:
641
- math.perm(-1, 2)
642
- except ValueError:
643
- threw = True
644
- assert threw, 'perm(-1, 2) raises ValueError'
645
-
646
- threw = False
647
- try:
648
- math.perm(5.0, 2)
649
- except TypeError:
650
- threw = True
651
- assert threw, 'perm(float, int) raises TypeError'
652
-
653
- # === math.copysign() (already above) ===
654
-
655
- # === math.isclose() (already above) ===
656
-
657
- # === math.degrees() ===
658
- assert math.degrees(0) == 0.0, 'degrees(0)'
659
- assert math.degrees(math.pi) == 180.0, 'degrees(pi)'
660
- assert math.degrees(math.tau) == 360.0, 'degrees(tau)'
661
- assert math.degrees(True) == math.degrees(1), 'degrees(True)'
662
- assert math.degrees(float('inf')) == float('inf'), 'degrees(inf)'
663
- assert math.degrees(float('-inf')) == float('-inf'), 'degrees(-inf)'
664
- assert math.isnan(math.degrees(float('nan'))), 'degrees(nan) is nan'
665
-
666
- threw = False
667
- try:
668
- math.degrees('x')
669
- except TypeError:
670
- threw = True
671
- assert threw, 'degrees(str) raises TypeError'
672
-
673
- # === math.radians() ===
674
- assert math.radians(0) == 0.0, 'radians(0)'
675
- assert math.radians(180) == math.pi, 'radians(180)'
676
- assert math.radians(360) == math.tau, 'radians(360)'
677
- assert math.radians(True) == math.radians(1), 'radians(True)'
678
- assert math.radians(float('inf')) == float('inf'), 'radians(inf)'
679
- assert math.radians(float('-inf')) == float('-inf'), 'radians(-inf)'
680
- assert math.isnan(math.radians(float('nan'))), 'radians(nan) is nan'
681
-
682
- threw = False
683
- try:
684
- math.radians('x')
685
- except TypeError:
686
- threw = True
687
- assert threw, 'radians(str) raises TypeError'
688
-
689
- # === math.sin() ===
690
- assert math.sin(0) == 0.0, 'sin(0)'
691
- assert math.sin(math.pi / 2) == 1.0, 'sin(pi/2)'
692
- assert math.sin(math.pi) < 1e-15, 'sin(pi) near zero'
693
- assert math.isnan(math.sin(float('nan'))), 'sin(nan) is nan'
694
-
695
- threw = False
696
- try:
697
- math.sin(float('inf'))
698
- except ValueError:
699
- threw = True
700
- assert threw, 'sin(inf) raises ValueError'
701
-
702
- threw = False
703
- try:
704
- math.sin(float('-inf'))
705
- except ValueError:
706
- threw = True
707
- assert threw, 'sin(-inf) raises ValueError'
708
-
709
- threw = False
710
- try:
711
- math.sin('x')
712
- except TypeError:
713
- threw = True
714
- assert threw, 'sin(str) raises TypeError'
715
-
716
- # === math.cos() ===
717
- assert math.cos(0) == 1.0, 'cos(0)'
718
- assert abs(math.cos(math.pi / 2)) < 1e-15, 'cos(pi/2) near zero'
719
- assert math.cos(math.pi) == -1.0, 'cos(pi)'
720
- assert math.isnan(math.cos(float('nan'))), 'cos(nan) is nan'
721
-
722
- threw = False
723
- try:
724
- math.cos(float('inf'))
725
- except ValueError:
726
- threw = True
727
- assert threw, 'cos(inf) raises ValueError'
728
-
729
- threw = False
730
- try:
731
- math.cos(float('-inf'))
732
- except ValueError:
733
- threw = True
734
- assert threw, 'cos(-inf) raises ValueError'
735
-
736
- threw = False
737
- try:
738
- math.cos('x')
739
- except TypeError:
740
- threw = True
741
- assert threw, 'cos(str) raises TypeError'
742
-
743
- # === math.tan() ===
744
- assert math.tan(0) == 0.0, 'tan(0)'
745
- assert abs(math.tan(math.pi / 4) - 1.0) < 1e-15, 'tan(pi/4) near 1'
746
- assert math.isnan(math.tan(float('nan'))), 'tan(nan) is nan'
747
-
748
- threw = False
749
- try:
750
- math.tan(float('inf'))
751
- except ValueError:
752
- threw = True
753
- assert threw, 'tan(inf) raises ValueError'
754
-
755
- threw = False
756
- try:
757
- math.tan(float('-inf'))
758
- except ValueError:
759
- threw = True
760
- assert threw, 'tan(-inf) raises ValueError'
761
-
762
- threw = False
763
- try:
764
- math.tan('x')
765
- except TypeError:
766
- threw = True
767
- assert threw, 'tan(str) raises TypeError'
768
-
769
- # === math.asin() ===
770
- assert math.asin(0) == 0.0, 'asin(0)'
771
- assert math.asin(1) == math.pi / 2, 'asin(1)'
772
- assert math.asin(-1) == -math.pi / 2, 'asin(-1)'
773
- assert math.isnan(math.asin(float('nan'))), 'asin(nan) is nan'
774
-
775
- threw = False
776
- try:
777
- math.asin(2)
778
- except ValueError:
779
- threw = True
780
- assert threw, 'asin(2) raises ValueError'
781
-
782
- threw = False
783
- try:
784
- math.asin(-2)
785
- except ValueError:
786
- threw = True
787
- assert threw, 'asin(-2) raises ValueError'
788
-
789
- threw = False
790
- try:
791
- math.asin('x')
792
- except TypeError:
793
- threw = True
794
- assert threw, 'asin(str) raises TypeError'
795
-
796
- # === math.acos() ===
797
- assert math.acos(1) == 0.0, 'acos(1)'
798
- assert math.acos(0) == math.pi / 2, 'acos(0)'
799
- assert math.acos(-1) == math.pi, 'acos(-1)'
800
- assert math.isnan(math.acos(float('nan'))), 'acos(nan) is nan'
801
-
802
- threw = False
803
- try:
804
- math.acos(2)
805
- except ValueError:
806
- threw = True
807
- assert threw, 'acos(2) raises ValueError'
808
-
809
- threw = False
810
- try:
811
- math.acos(-2)
812
- except ValueError:
813
- threw = True
814
- assert threw, 'acos(-2) raises ValueError'
815
-
816
- threw = False
817
- try:
818
- math.acos('x')
819
- except TypeError:
820
- threw = True
821
- assert threw, 'acos(str) raises TypeError'
822
-
823
- # === math.atan() ===
824
- assert math.atan(0) == 0.0, 'atan(0)'
825
- assert math.atan(1) == math.pi / 4, 'atan(1)'
826
- assert math.atan(float('inf')) == math.pi / 2, 'atan(inf)'
827
- assert math.atan(float('-inf')) == -math.pi / 2, 'atan(-inf)'
828
- assert math.isnan(math.atan(float('nan'))), 'atan(nan) is nan'
829
-
830
- threw = False
831
- try:
832
- math.atan('x')
833
- except TypeError:
834
- threw = True
835
- assert threw, 'atan(str) raises TypeError'
836
-
837
- # === math.atan2() ===
838
- assert math.atan2(0, 1) == 0.0, 'atan2(0, 1)'
839
- assert math.atan2(1, 0) == math.pi / 2, 'atan2(1, 0)'
840
- assert math.atan2(0, -1) == math.pi, 'atan2(0, -1)'
841
- assert math.atan2(0, 0) == 0.0, 'atan2(0, 0)'
842
- assert math.atan2(-1, 0) == -math.pi / 2, 'atan2(-1, 0)'
843
- assert math.isclose(math.atan2(float('inf'), float('inf')), math.pi / 4), 'atan2(inf, inf)'
844
- assert math.isnan(math.atan2(float('nan'), 1)), 'atan2(nan, 1) is nan'
845
- assert math.isnan(math.atan2(1, float('nan'))), 'atan2(1, nan) is nan'
846
-
847
- threw = False
848
- try:
849
- math.atan2('x', 1)
850
- except TypeError:
851
- threw = True
852
- assert threw, 'atan2(str, int) raises TypeError'
853
-
854
- # === math.sinh() ===
855
- assert math.sinh(0) == 0.0, 'sinh(0)'
856
- assert math.isclose(math.sinh(1), 1.1752011936438014), 'sinh(1)'
857
- assert math.sinh(float('inf')) == float('inf'), 'sinh(inf)'
858
- assert math.sinh(float('-inf')) == float('-inf'), 'sinh(-inf)'
859
- assert math.isnan(math.sinh(float('nan'))), 'sinh(nan) is nan'
860
-
861
- threw = False
862
- try:
863
- math.sinh(1000)
864
- except OverflowError:
865
- threw = True
866
- assert threw, 'sinh(1000) raises OverflowError'
867
-
868
- threw = False
869
- try:
870
- math.sinh('x')
871
- except TypeError:
872
- threw = True
873
- assert threw, 'sinh(str) raises TypeError'
874
-
875
- # === math.cosh() ===
876
- assert math.cosh(0) == 1.0, 'cosh(0)'
877
- assert math.isclose(math.cosh(1), 1.5430806348152437), 'cosh(1)'
878
- assert math.cosh(float('inf')) == float('inf'), 'cosh(inf)'
879
- assert math.cosh(float('-inf')) == float('inf'), 'cosh(-inf)'
880
- assert math.isnan(math.cosh(float('nan'))), 'cosh(nan) is nan'
881
-
882
- threw = False
883
- try:
884
- math.cosh(1000)
885
- except OverflowError:
886
- threw = True
887
- assert threw, 'cosh(1000) raises OverflowError'
888
-
889
- threw = False
890
- try:
891
- math.cosh('x')
892
- except TypeError:
893
- threw = True
894
- assert threw, 'cosh(str) raises TypeError'
895
-
896
- # === math.tanh() ===
897
- assert math.tanh(0) == 0.0, 'tanh(0)'
898
- assert math.tanh(float('inf')) == 1.0, 'tanh(inf)'
899
- assert math.tanh(float('-inf')) == -1.0, 'tanh(-inf)'
900
- assert math.tanh(1) == 0.7615941559557649, 'tanh(1)'
901
- assert math.isnan(math.tanh(float('nan'))), 'tanh(nan) is nan'
902
-
903
- threw = False
904
- try:
905
- math.tanh('x')
906
- except TypeError:
907
- threw = True
908
- assert threw, 'tanh(str) raises TypeError'
909
-
910
- # === math.asinh() ===
911
- assert math.asinh(0) == 0.0, 'asinh(0)'
912
- assert math.isclose(math.asinh(1), 0.881373587019543), 'asinh(1)'
913
- assert math.asinh(float('inf')) == float('inf'), 'asinh(inf)'
914
- assert math.asinh(float('-inf')) == float('-inf'), 'asinh(-inf)'
915
- assert math.isnan(math.asinh(float('nan'))), 'asinh(nan) is nan'
916
-
917
- threw = False
918
- try:
919
- math.asinh('x')
920
- except TypeError:
921
- threw = True
922
- assert threw, 'asinh(str) raises TypeError'
923
-
924
- # === math.acosh() ===
925
- assert math.acosh(1) == 0.0, 'acosh(1)'
926
- assert math.isclose(math.acosh(2), 1.3169578969248166), 'acosh(2)'
927
- assert math.acosh(float('inf')) == float('inf'), 'acosh(inf)'
928
- assert math.isnan(math.acosh(float('nan'))), 'acosh(nan) is nan'
929
-
930
- threw = False
931
- try:
932
- math.acosh(0.5)
933
- except ValueError:
934
- threw = True
935
- assert threw, 'acosh(0.5) raises ValueError'
936
-
937
- threw = False
938
- try:
939
- math.acosh('x')
940
- except TypeError:
941
- threw = True
942
- assert threw, 'acosh(str) raises TypeError'
943
-
944
- # === math.atanh() ===
945
- assert math.atanh(0) == 0.0, 'atanh(0)'
946
- assert math.isclose(math.atanh(0.5), 0.5493061443340549), 'atanh(0.5)'
947
- assert math.isnan(math.atanh(float('nan'))), 'atanh(nan) is nan'
948
-
949
- threw = False
950
- try:
951
- math.atanh(1)
952
- except ValueError:
953
- threw = True
954
- assert threw, 'atanh(1) raises ValueError'
955
-
956
- threw = False
957
- try:
958
- math.atanh(-1)
959
- except ValueError:
960
- threw = True
961
- assert threw, 'atanh(-1) raises ValueError'
962
-
963
- threw = False
964
- try:
965
- math.atanh('x')
966
- except TypeError:
967
- threw = True
968
- assert threw, 'atanh(str) raises TypeError'
969
-
970
- # === math.fmod() ===
971
- assert math.fmod(10, 3) == 1.0, 'fmod(10, 3)'
972
- assert math.fmod(-10, 3) == -1.0, 'fmod(-10, 3)'
973
- assert math.fmod(10.5, 3) == 1.5, 'fmod(10.5, 3)'
974
- assert math.fmod(3, float('inf')) == 3.0, 'fmod(3, inf)'
975
- assert math.isnan(math.fmod(float('nan'), 3)), 'fmod(nan, 3) is nan'
976
- assert math.isnan(math.fmod(3, float('nan'))), 'fmod(3, nan) is nan'
977
- assert math.isnan(math.fmod(float('nan'), float('nan'))), 'fmod(nan, nan) is nan'
978
-
979
- threw = False
980
- try:
981
- math.fmod(10, 0)
982
- except ValueError:
983
- threw = True
984
- assert threw, 'fmod(10, 0) raises ValueError'
985
-
986
- threw = False
987
- try:
988
- math.fmod(float('inf'), 3)
989
- except ValueError:
990
- threw = True
991
- assert threw, 'fmod(inf, 3) raises ValueError'
992
-
993
- threw = False
994
- try:
995
- math.fmod('x', 3)
996
- except TypeError:
997
- threw = True
998
- assert threw, 'fmod(str, int) raises TypeError'
999
-
1000
- # === math.remainder() ===
1001
- assert math.remainder(10, 3) == 1.0, 'remainder(10, 3)'
1002
- assert math.remainder(10, 4) == 2.0, 'remainder(10, 4)'
1003
- assert math.remainder(-10, 3) == -1.0, 'remainder(-10, 3)'
1004
- assert math.remainder(10.5, 3) == -1.5, 'remainder(10.5, 3)'
1005
- assert math.remainder(3, float('inf')) == 3.0, 'remainder(3, inf)'
1006
- assert math.isnan(math.remainder(float('nan'), 3)), 'remainder(nan, 3) is nan'
1007
- assert math.isnan(math.remainder(3, float('nan'))), 'remainder(3, nan) is nan'
1008
-
1009
- threw = False
1010
- try:
1011
- math.remainder(10, 0)
1012
- except ValueError:
1013
- threw = True
1014
- assert threw, 'remainder(10, 0) raises ValueError'
1015
-
1016
- threw = False
1017
- try:
1018
- math.remainder(float('inf'), 3)
1019
- except ValueError:
1020
- threw = True
1021
- assert threw, 'remainder(inf, 3) raises ValueError'
1022
-
1023
- threw = False
1024
- try:
1025
- math.remainder('x', 3)
1026
- except TypeError:
1027
- threw = True
1028
- assert threw, 'remainder(str, int) raises TypeError'
1029
-
1030
- # === math.modf() ===
1031
- r = math.modf(3.5)
1032
- assert r == (0.5, 3.0), 'modf(3.5)'
1033
- r = math.modf(-3.5)
1034
- assert r == (-0.5, -3.0), 'modf(-3.5)'
1035
- r = math.modf(0.0)
1036
- assert r == (0.0, 0.0), 'modf(0.0)'
1037
- r = math.modf(float('inf'))
1038
- assert r == (0.0, float('inf')), 'modf(inf)'
1039
- r = math.modf(float('-inf'))
1040
- # modf(-inf) returns (-0.0, -inf), verify both parts including sign of fractional
1041
- assert str(r[0]) == '-0.0', 'modf(-inf) fractional part is -0.0'
1042
- assert r[1] == float('-inf'), 'modf(-inf) integer part is -inf'
1043
- r_nan = math.modf(float('nan'))
1044
- assert math.isnan(r_nan[0]) and math.isnan(r_nan[1]), 'modf(nan) both parts are nan'
1045
-
1046
- threw = False
1047
- try:
1048
- math.modf('x')
1049
- except TypeError:
1050
- threw = True
1051
- assert threw, 'modf(str) raises TypeError'
1052
-
1053
- # === math.frexp() ===
1054
- r = math.frexp(0.0)
1055
- assert r == (0.0, 0), 'frexp(0.0)'
1056
- r = math.frexp(3.5)
1057
- assert r == (0.875, 2), 'frexp(3.5)'
1058
- r = math.frexp(1.0)
1059
- assert r == (0.5, 1), 'frexp(1.0)'
1060
- r = math.frexp(-1.0)
1061
- assert r == (-0.5, 1), 'frexp(-1.0)'
1062
- r = math.frexp(float('inf'))
1063
- assert r == (float('inf'), 0), 'frexp(inf)'
1064
- r = math.frexp(float('-inf'))
1065
- assert r == (float('-inf'), 0), 'frexp(-inf)'
1066
- r_nan = math.frexp(float('nan'))
1067
- assert math.isnan(r_nan[0]) and r_nan[1] == 0, 'frexp(nan)'
1068
-
1069
- threw = False
1070
- try:
1071
- math.frexp('x')
1072
- except TypeError:
1073
- threw = True
1074
- assert threw, 'frexp(str) raises TypeError'
1075
-
1076
- # === math.ldexp() ===
1077
- assert math.ldexp(0.875, 2) == 3.5, 'ldexp(0.875, 2)'
1078
- assert math.ldexp(1.0, 0) == 1.0, 'ldexp(1.0, 0)'
1079
- assert math.ldexp(0.5, 1) == 1.0, 'ldexp(0.5, 1)'
1080
- assert math.ldexp(1.0, -1075) == 0.0, 'ldexp(1.0, -1075) underflows to 0'
1081
- assert math.ldexp(float('inf'), 1) == float('inf'), 'ldexp(inf, 1)'
1082
- assert math.isnan(math.ldexp(float('nan'), 1)), 'ldexp(nan, 1) is nan'
1083
- assert math.ldexp(0.0, 1000) == 0.0, 'ldexp(0.0, 1000)'
1084
-
1085
- threw = False
1086
- try:
1087
- math.ldexp(1.0, 1075)
1088
- except OverflowError:
1089
- threw = True
1090
- assert threw, 'ldexp(1.0, 1075) raises OverflowError'
1091
-
1092
- threw = False
1093
- try:
1094
- math.ldexp(0.5, 1025)
1095
- except OverflowError:
1096
- threw = True
1097
- assert threw, 'ldexp(0.5, 1025) raises OverflowError'
1098
-
1099
- threw = False
1100
- try:
1101
- math.ldexp('x', 1)
1102
- except TypeError:
1103
- threw = True
1104
- assert threw, 'ldexp(str, int) raises TypeError'
1105
-
1106
- # === math.gamma() ===
1107
- assert math.gamma(1) == 1.0, 'gamma(1)'
1108
- assert math.gamma(5) == 24.0, 'gamma(5)'
1109
- assert math.isclose(math.gamma(0.5), math.sqrt(math.pi)), 'gamma(0.5)'
1110
- assert math.gamma(float('inf')) == float('inf'), 'gamma(inf)'
1111
- assert math.isnan(math.gamma(float('nan'))), 'gamma(nan) is nan'
1112
-
1113
- threw = False
1114
- try:
1115
- math.gamma(0)
1116
- except ValueError:
1117
- threw = True
1118
- assert threw, 'gamma(0) raises ValueError'
1119
-
1120
- threw = False
1121
- try:
1122
- math.gamma(-1)
1123
- except ValueError:
1124
- threw = True
1125
- assert threw, 'gamma(-1) raises ValueError'
1126
-
1127
- threw = False
1128
- try:
1129
- math.gamma(float('-inf'))
1130
- except ValueError:
1131
- threw = True
1132
- assert threw, 'gamma(-inf) raises ValueError'
1133
-
1134
- threw = False
1135
- try:
1136
- math.gamma(172)
1137
- except OverflowError:
1138
- threw = True
1139
- assert threw, 'gamma(172) raises OverflowError'
1140
-
1141
- threw = False
1142
- try:
1143
- math.gamma('x')
1144
- except TypeError:
1145
- threw = True
1146
- assert threw, 'gamma(str) raises TypeError'
1147
-
1148
- # === math.lgamma() ===
1149
- assert math.lgamma(1) == 0.0, 'lgamma(1)'
1150
- assert math.isclose(math.lgamma(5), math.log(24)), 'lgamma(5)'
1151
- assert math.lgamma(float('inf')) == float('inf'), 'lgamma(inf)'
1152
- assert math.isnan(math.lgamma(float('nan'))), 'lgamma(nan) is nan'
1153
- assert math.isclose(math.lgamma(-0.5), 1.265512123484645), 'lgamma(-0.5)'
1154
-
1155
- threw = False
1156
- try:
1157
- math.lgamma(0)
1158
- except ValueError:
1159
- threw = True
1160
- assert threw, 'lgamma(0) raises ValueError'
1161
-
1162
- threw = False
1163
- try:
1164
- math.lgamma(-2)
1165
- except ValueError:
1166
- threw = True
1167
- assert threw, 'lgamma(-2) raises ValueError'
1168
-
1169
- threw = False
1170
- try:
1171
- math.lgamma('x')
1172
- except TypeError:
1173
- threw = True
1174
- assert threw, 'lgamma(str) raises TypeError'
1175
-
1176
- # === math.erf() ===
1177
- assert math.erf(0) == 0.0, 'erf(0)'
1178
- assert math.isclose(math.erf(1), 0.8427007929497148, rel_tol=1e-15), 'erf(1)'
1179
- assert math.isclose(math.erf(-1), -0.8427007929497148, rel_tol=1e-15), 'erf(-1)'
1180
- assert math.erf(float('inf')) == 1.0, 'erf(inf)'
1181
- assert math.erf(float('-inf')) == -1.0, 'erf(-inf)'
1182
- assert math.isnan(math.erf(float('nan'))), 'erf(nan) is nan'
1183
-
1184
- threw = False
1185
- try:
1186
- math.erf('x')
1187
- except TypeError:
1188
- threw = True
1189
- assert threw, 'erf(str) raises TypeError'
1190
-
1191
- # === math.erfc() ===
1192
- assert math.erfc(0) == 1.0, 'erfc(0)'
1193
- assert math.isclose(math.erfc(1), 1.0 - math.erf(1)), 'erfc(1)'
1194
- assert math.erfc(float('inf')) == 0.0, 'erfc(inf)'
1195
- assert math.erfc(float('-inf')) == 2.0, 'erfc(-inf)'
1196
- assert math.isnan(math.erfc(float('nan'))), 'erfc(nan) is nan'
1197
-
1198
- threw = False
1199
- try:
1200
- math.erfc('x')
1201
- except TypeError:
1202
- threw = True
1203
- assert threw, 'erfc(str) raises TypeError'
1204
-
1205
- # === math.nextafter() ===
1206
- r = math.nextafter(1.0, 2.0)
1207
- assert r > 1.0, 'nextafter(1.0, 2.0) > 1.0'
1208
- assert r == 1.0000000000000002, 'nextafter(1.0, 2.0) value'
1209
- r = math.nextafter(1.0, 0.0)
1210
- assert r < 1.0, 'nextafter(1.0, 0.0) < 1.0'
1211
- assert math.nextafter(0.0, 1.0) == 5e-324, 'nextafter(0.0, 1.0) smallest positive'
1212
- assert math.nextafter(0.0, -1.0) == -5e-324, 'nextafter(0.0, -1.0) smallest negative'
1213
- assert math.isnan(math.nextafter(float('nan'), 1.0)), 'nextafter(nan, 1.0) is nan'
1214
- assert math.isnan(math.nextafter(1.0, float('nan'))), 'nextafter(1.0, nan) is nan'
1215
- assert math.nextafter(float('inf'), float('inf')) == float('inf'), 'nextafter(inf, inf)'
1216
- assert math.nextafter(1.0, 1.0) == 1.0, 'nextafter(1.0, 1.0) equal inputs'
1217
-
1218
- threw = False
1219
- try:
1220
- math.nextafter('x', 1.0)
1221
- except TypeError:
1222
- threw = True
1223
- assert threw, 'nextafter(str, float) raises TypeError'
1224
-
1225
- # === math.ulp() ===
1226
- assert math.ulp(1.0) == 2.220446049250313e-16, 'ulp(1.0)'
1227
- assert math.ulp(-1.0) == 2.220446049250313e-16, 'ulp(-1.0) same as ulp(1.0)'
1228
- assert math.ulp(0.0) == 5e-324, 'ulp(0.0) is smallest subnormal'
1229
- assert math.isinf(math.ulp(float('inf'))), 'ulp(inf) is inf'
1230
- assert math.isnan(math.ulp(float('nan'))), 'ulp(nan) is nan'
1231
- assert math.ulp(5e-324) == 5e-324, 'ulp(smallest subnormal)'
1232
-
1233
- threw = False
1234
- try:
1235
- math.ulp('x')
1236
- except TypeError:
1237
- threw = True
1238
- assert threw, 'ulp(str) raises TypeError'
1239
-
1240
- # === Additional edge cases for coverage ===
1241
-
1242
- # --- frexp subnormal numbers ---
1243
- r = math.frexp(5e-324)
1244
- assert r == (0.5, -1073), 'frexp(5e-324) subnormal'
1245
-
1246
- # --- ldexp large negative exponent (underflow to zero) ---
1247
- assert math.ldexp(1.0, -2000) == 0.0, 'ldexp(1.0, -2000) underflows to 0'
1248
-
1249
- # --- fmod NaN propagation edge cases ---
1250
- assert math.isnan(math.fmod(float('inf'), float('nan'))), 'fmod(inf, nan) propagates nan'
1251
- assert math.isnan(math.fmod(float('nan'), 0)), 'fmod(nan, 0) propagates nan'
1252
-
1253
- # --- gamma negative non-integer (reflection formula) ---
1254
- assert math.isclose(math.gamma(-0.5), -3.544907701811032), 'gamma(-0.5)'
1255
- assert math.isclose(math.gamma(-1.5), 2.3632718012073544), 'gamma(-1.5)'
1256
-
1257
- # --- lgamma(-inf) returns inf ---
1258
- assert math.lgamma(float('-inf')) == float('inf'), 'lgamma(-inf) returns inf'
1259
-
1260
- # --- lgamma overflow for extremely large input ---
1261
- threw = False
1262
- try:
1263
- math.lgamma(1e308)
1264
- except OverflowError:
1265
- threw = True
1266
- assert threw, 'lgamma(1e308) raises OverflowError'
1267
-
1268
- # --- lgamma negative non-integer (reflection formula) ---
1269
- assert math.isclose(math.lgamma(-0.5), 1.265512123484645), 'lgamma(-0.5) reflection'
1270
-
1271
- # ==========================================================
1272
- # Tests for bug fixes and CPython behavior alignment
1273
- # ==========================================================
1274
-
1275
- # === floor/ceil/trunc with large floats (LongInt promotion) ===
1276
- large_floor = math.floor(1e300)
1277
- assert large_floor > 0, 'floor(1e300) should be positive'
1278
- assert (
1279
- large_floor
1280
- == 1000000000000000052504760255204420248704468581108159154915854115511802457988908195786371375080447864043704443832883878176942523235360430575644792184786706982848387200926575803737830233794788090059368953234970799945081119038967640880074652742780142494579258788820056842838115669472196386865459400540160
1281
- ), 'floor(1e300) matches CPython'
1282
-
1283
- large_ceil = math.ceil(-1e300)
1284
- assert large_ceil < 0, 'ceil(-1e300) should be negative'
1285
- assert (
1286
- large_ceil
1287
- == -1000000000000000052504760255204420248704468581108159154915854115511802457988908195786371375080447864043704443832883878176942523235360430575644792184786706982848387200926575803737830233794788090059368953234970799945081119038967640880074652742780142494579258788820056842838115669472196386865459400540160
1288
- ), 'ceil(-1e300) matches CPython'
1289
-
1290
- large_trunc = math.trunc(1e300)
1291
- assert large_trunc == math.floor(1e300), 'trunc(1e300) matches floor(1e300) for positive'
1292
- large_trunc_neg = math.trunc(-1e300)
1293
- assert large_trunc_neg == math.ceil(-1e300), 'trunc(-1e300) matches ceil(-1e300) for negative'
1294
-
1295
- # floor/ceil should still work normally for values within i64 range
1296
- assert math.floor(1e18) == 1000000000000000000, 'floor(1e18) within i64 range'
1297
- assert math.floor(2.7) == 2, 'floor(2.7) basic case'
1298
- assert math.ceil(-2.7) == -2, 'ceil(-2.7) basic case'
1299
-
1300
- # === ldexp with large exponent but small x ===
1301
- assert math.ldexp(5e-324, 1075) == 2.0, 'ldexp(5e-324, 1075) should be 2.0'
1302
- assert math.ldexp(0.5, 1024) == 8.98846567431158e307, 'ldexp(0.5, 1024) large but finite'
1303
-
1304
- # === modf(-0.0) sign preservation ===
1305
- frac, integer = math.modf(-0.0)
1306
- # Both parts should be -0.0
1307
- assert str(frac) == '-0.0', 'modf(-0.0) fractional part is -0.0'
1308
- assert str(integer) == '-0.0', 'modf(-0.0) integer part is -0.0'
1309
-
1310
- # === erfc accuracy for large x ===
1311
- erfc_6 = math.erfc(6)
1312
- assert erfc_6 > 0, 'erfc(6) should be positive, not zero'
1313
- assert math.isclose(erfc_6, 2.1519736712498913e-17, rel_tol=1e-12), 'erfc(6) matches CPython'
1314
- erfc_neg6 = math.erfc(-6)
1315
- assert erfc_neg6 == 2.0, 'erfc(-6) is exactly 2.0'
1316
- assert math.erfc(0) == 1.0, 'erfc(0) is 1.0'
1317
-
1318
- # === variadic gcd ===
1319
- assert math.gcd() == 0, 'gcd() with no args returns 0'
1320
- assert math.gcd(12) == 12, 'gcd(12) single arg returns abs(12)'
1321
- assert math.gcd(-12) == 12, 'gcd(-12) single arg returns abs(-12)'
1322
- assert math.gcd(12, 8) == 4, 'gcd(12, 8) two args'
1323
- assert math.gcd(12, 8, 6) == 2, 'gcd(12, 8, 6) three args'
1324
-
1325
- # === variadic lcm ===
1326
- assert math.lcm() == 1, 'lcm() with no args returns 1'
1327
- assert math.lcm(12) == 12, 'lcm(12) single arg returns abs(12)'
1328
- assert math.lcm(-12) == 12, 'lcm(-12) single negative arg returns abs(-12)'
1329
- assert math.lcm(4, 6) == 12, 'lcm(4, 6) two args'
1330
- assert math.lcm(4, 6, 10) == 60, 'lcm(4, 6, 10) three args'
1331
- assert math.lcm(0, 5) == 0, 'lcm(0, 5) returns 0 if any arg is 0'
1332
-
1333
- # === perm with optional k ===
1334
- assert math.perm(5) == 120, 'perm(5) defaults k to n (= 5!)'
1335
- assert math.perm(5, 2) == 20, 'perm(5, 2) with explicit k'
1336
- assert math.perm(0) == 1, 'perm(0) is 1'
1337
-
1338
- # === isclose with rel_tol/abs_tol kwargs ===
1339
- assert math.isclose(1.0, 1.1, rel_tol=0.2) == True, 'isclose with rel_tol=0.2'
1340
- assert math.isclose(1.0, 1.1, abs_tol=0.2) == True, 'isclose with abs_tol=0.2'
1341
- assert math.isclose(1.0, 1.1) == False, 'isclose with defaults (not close)'
1342
- assert math.isclose(1.0, 1.0 + 1e-10) == True, 'isclose with defaults (close)'
1343
-
1344
- # isclose negative tolerance raises ValueError
1345
- threw = False
1346
- try:
1347
- math.isclose(1.0, 1.0, rel_tol=-0.1)
1348
- except ValueError:
1349
- threw = True
1350
- assert threw, 'isclose with negative rel_tol raises ValueError'
1351
-
1352
- threw = False
1353
- try:
1354
- math.isclose(1.0, 1.0, abs_tol=-0.1)
1355
- except ValueError:
1356
- threw = True
1357
- assert threw, 'isclose with negative abs_tol raises ValueError'
1358
-
1359
- # isclose unknown kwarg raises TypeError
1360
- threw = False
1361
- try:
1362
- math.isclose(1.0, 1.0, foo=0.1)
1363
- except TypeError:
1364
- threw = True
1365
- assert threw, 'isclose with unknown kwarg raises TypeError'
1366
-
1367
- # === ldexp sign preservation ===
1368
- assert str(math.ldexp(-0.0, 1000)) == '-0.0', 'ldexp(-0.0, n) preserves sign'
1369
- assert math.ldexp(float('-inf'), 1) == float('-inf'), 'ldexp(-inf, 1) returns -inf'
1370
-
1371
- # === frexp(-0.0) sign preservation ===
1372
- m, e = math.frexp(-0.0)
1373
- assert str(m) == '-0.0', 'frexp(-0.0) mantissa preserves sign'
1374
- assert e == 0, 'frexp(-0.0) exponent is 0'
1375
-
1376
- # === comb with GCD reduction (values that would overflow intermediate without it) ===
1377
- assert math.comb(62, 31) == 465428353255261088, 'comb(62, 31) with GCD reduction'
1378
- assert math.comb(61, 30) == 232714176627630544, 'comb(61, 30) with GCD reduction'
1379
-
1380
- # === isclose arg count errors ===
1381
- threw = False
1382
- try:
1383
- math.isclose()
1384
- except TypeError:
1385
- threw = True
1386
- assert threw, 'isclose with 0 args raises TypeError'
1387
-
1388
- threw = False
1389
- try:
1390
- math.isclose(1.0)
1391
- except TypeError:
1392
- threw = True
1393
- assert threw, 'isclose with 1 arg raises TypeError'
1394
-
1395
- threw = False
1396
- try:
1397
- math.isclose(1.0, 2.0, 3.0)
1398
- except TypeError:
1399
- threw = True
1400
- assert threw, 'isclose with 3 positional args raises TypeError'
1401
-
1402
- # === perm(-1) single-arg error message ===
1403
- threw = False
1404
- try:
1405
- math.perm(-1)
1406
- except ValueError:
1407
- threw = True
1408
- assert threw, 'perm(-1) single-arg raises ValueError'
1409
-
1410
- # === gcd/lcm with i64::MIN-like values (u64 promotion) ===
1411
- # gcd(-9223372036854775808, 0) should return 9223372036854775808 (exceeds i64::MAX)
1412
- big_gcd = math.gcd(-9223372036854775808, 0)
1413
- assert big_gcd == 9223372036854775808, 'gcd(i64::MIN, 0) promotes to LongInt'
1414
-
1415
- # === isqrt large values (Newton's method refinement) ===
1416
- # Values near i64::MAX where f64 sqrt loses precision
1417
- assert math.isqrt(9223372036854775807) == 3037000499, 'isqrt(i64::MAX)'
1418
- assert math.isqrt(9223372030926249001) == 3037000499, 'isqrt(3037000499^2)'
1419
- assert math.isqrt(9223372030926249000) == 3037000498, 'isqrt(3037000499^2 - 1)'
1420
-
1421
- # === erf/erfc range coverage ===
1422
- # Small x (|x| < 0.84375): exercises PP/QQ polynomial
1423
- assert math.erf(0.1) == 0.1124629160182849, 'erf(0.1) small-x range'
1424
- assert math.erf(0.5) == 0.5204998778130465, 'erf(0.5) small-x range'
1425
-
1426
- # Medium x (1.25 ≤ |x| < 28): exercises erfc_inner path
1427
- assert math.erf(2.0) == 0.9953222650189527, 'erf(2.0) medium-x range'
1428
- assert math.erf(5.0) == 0.9999999999984626, 'erf(5.0) large-x range'
1429
-
1430
- # erfc in range 3 (1.25 ≤ |x| < 2.857): exercises RA/SA coefficients
1431
- erfc_2 = math.erfc(2.0)
1432
- assert math.isclose(erfc_2, 0.004677734981047266, rel_tol=1e-12), 'erfc(2.0) range 3'