scratch-blocks 1.1.206 → 2.0.0-beta.1

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 (1295) hide show
  1. package/.husky/commit-msg +0 -3
  2. package/CHANGELOG.md +111 -833
  3. package/TODO.md +16 -0
  4. package/blockly-rc/.eslintignore +28 -0
  5. package/blockly-rc/.eslintrc.js +187 -0
  6. package/blockly-rc/.gitattributes +1 -0
  7. package/blockly-rc/.github/CODEOWNERS +1 -0
  8. package/blockly-rc/.github/CONTRIBUTING.md +46 -0
  9. package/blockly-rc/.github/ISSUE_TEMPLATE/bug_report.yaml +58 -0
  10. package/blockly-rc/.github/ISSUE_TEMPLATE/config.yml +7 -0
  11. package/blockly-rc/.github/ISSUE_TEMPLATE/documentation.yaml +38 -0
  12. package/blockly-rc/.github/ISSUE_TEMPLATE/feature_request.yaml +39 -0
  13. package/blockly-rc/.github/PULL_REQUEST_TEMPLATE.md +42 -0
  14. package/blockly-rc/.github/dependabot.yml +27 -0
  15. package/blockly-rc/.github/release.yml +32 -0
  16. package/blockly-rc/.github/workflows/appengine_deploy.yml +54 -0
  17. package/blockly-rc/.github/workflows/assign_reviewers.yml +41 -0
  18. package/blockly-rc/.github/workflows/browser_test.yml +55 -0
  19. package/blockly-rc/.github/workflows/build.yml +86 -0
  20. package/blockly-rc/.github/workflows/conventional-label.yml +17 -0
  21. package/blockly-rc/.github/workflows/develop_freeze.yml +26 -0
  22. package/blockly-rc/.github/workflows/tag_module_cleanup.yml +37 -0
  23. package/blockly-rc/.github/workflows/welcome_new_contributors.yml +36 -0
  24. package/blockly-rc/.prettierignore +30 -0
  25. package/blockly-rc/.prettierrc.js +13 -0
  26. package/blockly-rc/CHANGELOG.md +77 -0
  27. package/blockly-rc/LICENSE +202 -0
  28. package/blockly-rc/README.md +80 -0
  29. package/blockly-rc/_config.yml +1 -0
  30. package/blockly-rc/api-extractor.json +385 -0
  31. package/blockly-rc/appengine/.gcloudignore +20 -0
  32. package/blockly-rc/appengine/README.txt +42 -0
  33. package/blockly-rc/appengine/add_timestamps.py +69 -0
  34. package/blockly-rc/appengine/app.yaml +104 -0
  35. package/blockly-rc/appengine/apple-touch-icon.png +0 -0
  36. package/blockly-rc/appengine/blockly_compressed.js +11 -0
  37. package/blockly-rc/appengine/expiration.py +52 -0
  38. package/blockly-rc/appengine/favicon.ico +0 -0
  39. package/blockly-rc/appengine/index.yaml +11 -0
  40. package/blockly-rc/appengine/main.py +39 -0
  41. package/blockly-rc/appengine/redirect.html +107 -0
  42. package/blockly-rc/appengine/requirements.txt +1 -0
  43. package/blockly-rc/appengine/robots.txt +2 -0
  44. package/blockly-rc/appengine/storage.js +190 -0
  45. package/blockly-rc/appengine/storage.py +125 -0
  46. package/blockly-rc/blocks/blocks.ts +44 -0
  47. package/blockly-rc/blocks/lists.ts +1085 -0
  48. package/blockly-rc/blocks/logic.ts +712 -0
  49. package/blockly-rc/blocks/loops.ts +408 -0
  50. package/blockly-rc/blocks/math.ts +591 -0
  51. package/blockly-rc/blocks/procedures.ts +1364 -0
  52. package/blockly-rc/blocks/text.ts +1007 -0
  53. package/blockly-rc/blocks/variables.ts +183 -0
  54. package/blockly-rc/blocks/variables_dynamic.ts +194 -0
  55. package/blockly-rc/core/any_aliases.ts +8 -0
  56. package/blockly-rc/core/block.ts +2523 -0
  57. package/blockly-rc/core/block_animations.ts +225 -0
  58. package/blockly-rc/core/block_flyout_inflater.ts +262 -0
  59. package/blockly-rc/core/block_svg.ts +1768 -0
  60. package/blockly-rc/core/blockly.ts +605 -0
  61. package/blockly-rc/core/blockly_options.ts +71 -0
  62. package/blockly-rc/core/blocks.ts +18 -0
  63. package/blockly-rc/core/browser_events.ts +244 -0
  64. package/blockly-rc/core/bubbles/bubble.ts +658 -0
  65. package/blockly-rc/core/bubbles/mini_workspace_bubble.ts +280 -0
  66. package/blockly-rc/core/bubbles/text_bubble.ts +103 -0
  67. package/blockly-rc/core/bubbles/textinput_bubble.ts +344 -0
  68. package/blockly-rc/core/bubbles.ts +12 -0
  69. package/blockly-rc/core/bump_objects.ts +192 -0
  70. package/blockly-rc/core/button_flyout_inflater.ts +63 -0
  71. package/blockly-rc/core/clipboard/block_paster.ts +142 -0
  72. package/blockly-rc/core/clipboard/registry.ts +31 -0
  73. package/blockly-rc/core/clipboard/workspace_comment_paster.ts +94 -0
  74. package/blockly-rc/core/clipboard.ts +113 -0
  75. package/blockly-rc/core/comments/comment_view.ts +899 -0
  76. package/blockly-rc/core/comments/rendered_workspace_comment.ts +297 -0
  77. package/blockly-rc/core/comments/workspace_comment.ts +237 -0
  78. package/blockly-rc/core/comments.ts +9 -0
  79. package/blockly-rc/core/common.ts +305 -0
  80. package/blockly-rc/core/component_manager.ts +235 -0
  81. package/blockly-rc/core/config.ts +65 -0
  82. package/blockly-rc/core/connection.ts +793 -0
  83. package/blockly-rc/core/connection_checker.ts +348 -0
  84. package/blockly-rc/core/connection_db.ts +297 -0
  85. package/blockly-rc/core/connection_type.ts +21 -0
  86. package/blockly-rc/core/constants.ts +23 -0
  87. package/blockly-rc/core/contextmenu.ts +268 -0
  88. package/blockly-rc/core/contextmenu_items.ts +700 -0
  89. package/blockly-rc/core/contextmenu_registry.ts +194 -0
  90. package/blockly-rc/core/css.ts +481 -0
  91. package/blockly-rc/core/delete_area.ts +77 -0
  92. package/blockly-rc/core/dialog.ts +121 -0
  93. package/blockly-rc/core/drag_target.ts +97 -0
  94. package/blockly-rc/core/dragging/block_drag_strategy.ts +454 -0
  95. package/blockly-rc/core/dragging/bubble_drag_strategy.ts +52 -0
  96. package/blockly-rc/core/dragging/comment_drag_strategy.ts +91 -0
  97. package/blockly-rc/core/dragging/dragger.ts +163 -0
  98. package/blockly-rc/core/dragging.ts +12 -0
  99. package/blockly-rc/core/dropdowndiv.ts +768 -0
  100. package/blockly-rc/core/events/events.ts +163 -0
  101. package/blockly-rc/core/events/events_abstract.ts +130 -0
  102. package/blockly-rc/core/events/events_block_base.ts +88 -0
  103. package/blockly-rc/core/events/events_block_change.ts +259 -0
  104. package/blockly-rc/core/events/events_block_create.ts +185 -0
  105. package/blockly-rc/core/events/events_block_delete.ts +182 -0
  106. package/blockly-rc/core/events/events_block_drag.ts +116 -0
  107. package/blockly-rc/core/events/events_block_field_intermediate_change.ts +167 -0
  108. package/blockly-rc/core/events/events_block_move.ts +307 -0
  109. package/blockly-rc/core/events/events_bubble_open.ts +120 -0
  110. package/blockly-rc/core/events/events_click.ts +110 -0
  111. package/blockly-rc/core/events/events_comment_base.ts +126 -0
  112. package/blockly-rc/core/events/events_comment_change.ts +161 -0
  113. package/blockly-rc/core/events/events_comment_collapse.ts +103 -0
  114. package/blockly-rc/core/events/events_comment_create.ts +118 -0
  115. package/blockly-rc/core/events/events_comment_delete.ts +117 -0
  116. package/blockly-rc/core/events/events_comment_drag.ts +99 -0
  117. package/blockly-rc/core/events/events_comment_move.ts +207 -0
  118. package/blockly-rc/core/events/events_comment_resize.ts +174 -0
  119. package/blockly-rc/core/events/events_marker_move.ts +134 -0
  120. package/blockly-rc/core/events/events_selected.ts +98 -0
  121. package/blockly-rc/core/events/events_theme_change.ts +84 -0
  122. package/blockly-rc/core/events/events_toolbox_item_select.ts +96 -0
  123. package/blockly-rc/core/events/events_trashcan_open.ts +88 -0
  124. package/blockly-rc/core/events/events_ui_base.ts +47 -0
  125. package/blockly-rc/core/events/events_var_base.ts +89 -0
  126. package/blockly-rc/core/events/events_var_create.ts +129 -0
  127. package/blockly-rc/core/events/events_var_delete.ts +124 -0
  128. package/blockly-rc/core/events/events_var_rename.ts +133 -0
  129. package/blockly-rc/core/events/events_var_type_change.ts +122 -0
  130. package/blockly-rc/core/events/events_viewport.ts +149 -0
  131. package/blockly-rc/core/events/utils.ts +595 -0
  132. package/blockly-rc/core/events/workspace_events.ts +46 -0
  133. package/blockly-rc/core/extensions.ts +491 -0
  134. package/blockly-rc/core/field.ts +1471 -0
  135. package/blockly-rc/core/field_checkbox.ts +271 -0
  136. package/blockly-rc/core/field_dropdown.ts +857 -0
  137. package/blockly-rc/core/field_image.ts +297 -0
  138. package/blockly-rc/core/field_input.ts +755 -0
  139. package/blockly-rc/core/field_label.ts +150 -0
  140. package/blockly-rc/core/field_label_serializable.ts +73 -0
  141. package/blockly-rc/core/field_number.ts +381 -0
  142. package/blockly-rc/core/field_registry.ts +115 -0
  143. package/blockly-rc/core/field_textinput.ts +117 -0
  144. package/blockly-rc/core/field_variable.ts +651 -0
  145. package/blockly-rc/core/flyout_base.ts +968 -0
  146. package/blockly-rc/core/flyout_button.ts +416 -0
  147. package/blockly-rc/core/flyout_horizontal.ts +374 -0
  148. package/blockly-rc/core/flyout_metrics_manager.ts +90 -0
  149. package/blockly-rc/core/flyout_separator.ts +61 -0
  150. package/blockly-rc/core/flyout_vertical.ts +353 -0
  151. package/blockly-rc/core/generator.ts +611 -0
  152. package/blockly-rc/core/gesture.ts +1191 -0
  153. package/blockly-rc/core/grid.ts +252 -0
  154. package/blockly-rc/core/icons/comment_icon.ts +435 -0
  155. package/blockly-rc/core/icons/exceptions.ts +23 -0
  156. package/blockly-rc/core/icons/icon.ts +147 -0
  157. package/blockly-rc/core/icons/icon_types.ts +32 -0
  158. package/blockly-rc/core/icons/mutator_icon.ts +354 -0
  159. package/blockly-rc/core/icons/registry.ts +33 -0
  160. package/blockly-rc/core/icons/warning_icon.ts +219 -0
  161. package/blockly-rc/core/icons.ts +24 -0
  162. package/blockly-rc/core/inject.ts +428 -0
  163. package/blockly-rc/core/inputs/align.ts +14 -0
  164. package/blockly-rc/core/inputs/dummy_input.ts +26 -0
  165. package/blockly-rc/core/inputs/end_row_input.ts +31 -0
  166. package/blockly-rc/core/inputs/input.ts +318 -0
  167. package/blockly-rc/core/inputs/input_types.ts +27 -0
  168. package/blockly-rc/core/inputs/statement_input.ts +34 -0
  169. package/blockly-rc/core/inputs/value_input.ts +30 -0
  170. package/blockly-rc/core/inputs.ts +23 -0
  171. package/blockly-rc/core/insertion_marker_manager.ts +742 -0
  172. package/blockly-rc/core/insertion_marker_previewer.ts +254 -0
  173. package/blockly-rc/core/interfaces/i_ast_node_location.ts +12 -0
  174. package/blockly-rc/core/interfaces/i_ast_node_location_svg.ts +28 -0
  175. package/blockly-rc/core/interfaces/i_ast_node_location_with_block.ts +22 -0
  176. package/blockly-rc/core/interfaces/i_autohideable.ts +22 -0
  177. package/blockly-rc/core/interfaces/i_bounded_element.ts +30 -0
  178. package/blockly-rc/core/interfaces/i_bubble.ts +63 -0
  179. package/blockly-rc/core/interfaces/i_collapsible_toolbox_item.ts +33 -0
  180. package/blockly-rc/core/interfaces/i_comment_icon.ts +47 -0
  181. package/blockly-rc/core/interfaces/i_component.ts +19 -0
  182. package/blockly-rc/core/interfaces/i_connection_checker.ts +100 -0
  183. package/blockly-rc/core/interfaces/i_connection_previewer.ts +50 -0
  184. package/blockly-rc/core/interfaces/i_contextmenu.ts +16 -0
  185. package/blockly-rc/core/interfaces/i_copyable.ts +31 -0
  186. package/blockly-rc/core/interfaces/i_deletable.ts +34 -0
  187. package/blockly-rc/core/interfaces/i_delete_area.ts +28 -0
  188. package/blockly-rc/core/interfaces/i_drag_target.ts +69 -0
  189. package/blockly-rc/core/interfaces/i_draggable.ts +72 -0
  190. package/blockly-rc/core/interfaces/i_dragger.ts +35 -0
  191. package/blockly-rc/core/interfaces/i_flyout.ts +189 -0
  192. package/blockly-rc/core/interfaces/i_flyout_inflater.ts +41 -0
  193. package/blockly-rc/core/interfaces/i_has_bubble.ts +20 -0
  194. package/blockly-rc/core/interfaces/i_icon.ts +114 -0
  195. package/blockly-rc/core/interfaces/i_keyboard_accessible.ts +21 -0
  196. package/blockly-rc/core/interfaces/i_legacy_procedure_blocks.ts +50 -0
  197. package/blockly-rc/core/interfaces/i_metrics_manager.ts +149 -0
  198. package/blockly-rc/core/interfaces/i_movable.ts +19 -0
  199. package/blockly-rc/core/interfaces/i_observable.ts +24 -0
  200. package/blockly-rc/core/interfaces/i_parameter_model.ts +51 -0
  201. package/blockly-rc/core/interfaces/i_paster.ts +25 -0
  202. package/blockly-rc/core/interfaces/i_positionable.ts +33 -0
  203. package/blockly-rc/core/interfaces/i_procedure_block.ts +27 -0
  204. package/blockly-rc/core/interfaces/i_procedure_map.ts +18 -0
  205. package/blockly-rc/core/interfaces/i_procedure_model.ts +71 -0
  206. package/blockly-rc/core/interfaces/i_registrable.ts +12 -0
  207. package/blockly-rc/core/interfaces/i_rendered_element.ts +22 -0
  208. package/blockly-rc/core/interfaces/i_selectable.ts +34 -0
  209. package/blockly-rc/core/interfaces/i_selectable_toolbox_item.ts +63 -0
  210. package/blockly-rc/core/interfaces/i_serializable.ts +28 -0
  211. package/blockly-rc/core/interfaces/i_serializer.ts +55 -0
  212. package/blockly-rc/core/interfaces/i_styleable.ts +26 -0
  213. package/blockly-rc/core/interfaces/i_toolbox.ts +112 -0
  214. package/blockly-rc/core/interfaces/i_toolbox_item.ts +81 -0
  215. package/blockly-rc/core/interfaces/i_variable_backed_parameter_model.ts +23 -0
  216. package/blockly-rc/core/interfaces/i_variable_map.ts +65 -0
  217. package/blockly-rc/core/interfaces/i_variable_model.ts +57 -0
  218. package/blockly-rc/core/internal_constants.ts +47 -0
  219. package/blockly-rc/core/keyboard_nav/ast_node.ts +884 -0
  220. package/blockly-rc/core/keyboard_nav/basic_cursor.ts +223 -0
  221. package/blockly-rc/core/keyboard_nav/cursor.ts +138 -0
  222. package/blockly-rc/core/keyboard_nav/marker.ts +113 -0
  223. package/blockly-rc/core/keyboard_nav/tab_navigate_cursor.ts +46 -0
  224. package/blockly-rc/core/label_flyout_inflater.ts +59 -0
  225. package/blockly-rc/core/layer_manager.ts +186 -0
  226. package/blockly-rc/core/layers.ts +17 -0
  227. package/blockly-rc/core/main.ts +31 -0
  228. package/blockly-rc/core/marker_manager.ts +189 -0
  229. package/blockly-rc/core/menu.ts +463 -0
  230. package/blockly-rc/core/menuitem.ts +221 -0
  231. package/blockly-rc/core/metrics_manager.ts +486 -0
  232. package/blockly-rc/core/msg.ts +27 -0
  233. package/blockly-rc/core/names.ts +275 -0
  234. package/blockly-rc/core/observable_procedure_map.ts +66 -0
  235. package/blockly-rc/core/options.ts +377 -0
  236. package/blockly-rc/core/positionable_helpers.ts +186 -0
  237. package/blockly-rc/core/procedures.ts +510 -0
  238. package/blockly-rc/core/registry.ts +400 -0
  239. package/blockly-rc/core/render_management.ts +193 -0
  240. package/blockly-rc/core/rendered_connection.ts +571 -0
  241. package/blockly-rc/core/renderers/common/block_rendering.ts +120 -0
  242. package/blockly-rc/core/renderers/common/constants.ts +1198 -0
  243. package/blockly-rc/core/renderers/common/drawer.ts +518 -0
  244. package/blockly-rc/core/renderers/common/i_path_object.ts +137 -0
  245. package/blockly-rc/core/renderers/common/info.ts +767 -0
  246. package/blockly-rc/core/renderers/common/marker_svg.ts +765 -0
  247. package/blockly-rc/core/renderers/common/path_object.ts +324 -0
  248. package/blockly-rc/core/renderers/common/renderer.ts +281 -0
  249. package/blockly-rc/core/renderers/geras/constants.ts +46 -0
  250. package/blockly-rc/core/renderers/geras/drawer.ts +167 -0
  251. package/blockly-rc/core/renderers/geras/geras.ts +31 -0
  252. package/blockly-rc/core/renderers/geras/highlight_constants.ts +342 -0
  253. package/blockly-rc/core/renderers/geras/highlighter.ts +313 -0
  254. package/blockly-rc/core/renderers/geras/info.ts +478 -0
  255. package/blockly-rc/core/renderers/geras/measurables/inline_input.ts +37 -0
  256. package/blockly-rc/core/renderers/geras/measurables/statement_input.ts +36 -0
  257. package/blockly-rc/core/renderers/geras/path_object.ts +135 -0
  258. package/blockly-rc/core/renderers/geras/renderer.ts +124 -0
  259. package/blockly-rc/core/renderers/measurables/base.ts +41 -0
  260. package/blockly-rc/core/renderers/measurables/bottom_row.ts +104 -0
  261. package/blockly-rc/core/renderers/measurables/connection.ts +43 -0
  262. package/blockly-rc/core/renderers/measurables/external_value_input.ts +53 -0
  263. package/blockly-rc/core/renderers/measurables/field.ts +50 -0
  264. package/blockly-rc/core/renderers/measurables/hat.ts +33 -0
  265. package/blockly-rc/core/renderers/measurables/icon.ts +42 -0
  266. package/blockly-rc/core/renderers/measurables/in_row_spacer.ts +29 -0
  267. package/blockly-rc/core/renderers/measurables/inline_input.ts +63 -0
  268. package/blockly-rc/core/renderers/measurables/input_connection.ts +57 -0
  269. package/blockly-rc/core/renderers/measurables/input_row.ts +67 -0
  270. package/blockly-rc/core/renderers/measurables/jagged_edge.ts +28 -0
  271. package/blockly-rc/core/renderers/measurables/next_connection.ts +34 -0
  272. package/blockly-rc/core/renderers/measurables/output_connection.ts +43 -0
  273. package/blockly-rc/core/renderers/measurables/previous_connection.ts +34 -0
  274. package/blockly-rc/core/renderers/measurables/round_corner.ts +34 -0
  275. package/blockly-rc/core/renderers/measurables/row.ts +191 -0
  276. package/blockly-rc/core/renderers/measurables/spacer_row.ts +44 -0
  277. package/blockly-rc/core/renderers/measurables/square_corner.ts +32 -0
  278. package/blockly-rc/core/renderers/measurables/statement_input.ts +41 -0
  279. package/blockly-rc/core/renderers/measurables/top_row.ts +110 -0
  280. package/blockly-rc/core/renderers/measurables/types.ts +319 -0
  281. package/blockly-rc/core/renderers/thrasos/info.ts +328 -0
  282. package/blockly-rc/core/renderers/thrasos/renderer.ts +40 -0
  283. package/blockly-rc/core/renderers/thrasos/thrasos.ts +14 -0
  284. package/blockly-rc/core/renderers/zelos/constants.ts +877 -0
  285. package/blockly-rc/core/renderers/zelos/drawer.ts +274 -0
  286. package/blockly-rc/core/renderers/zelos/info.ts +652 -0
  287. package/blockly-rc/core/renderers/zelos/marker_svg.ts +145 -0
  288. package/blockly-rc/core/renderers/zelos/measurables/bottom_row.ts +44 -0
  289. package/blockly-rc/core/renderers/zelos/measurables/inputs.ts +41 -0
  290. package/blockly-rc/core/renderers/zelos/measurables/row_elements.ts +29 -0
  291. package/blockly-rc/core/renderers/zelos/measurables/top_row.ts +50 -0
  292. package/blockly-rc/core/renderers/zelos/path_object.ts +209 -0
  293. package/blockly-rc/core/renderers/zelos/renderer.ts +143 -0
  294. package/blockly-rc/core/renderers/zelos/zelos.ts +33 -0
  295. package/blockly-rc/core/scrollbar.ts +898 -0
  296. package/blockly-rc/core/scrollbar_pair.ts +349 -0
  297. package/blockly-rc/core/separator_flyout_inflater.ts +69 -0
  298. package/blockly-rc/core/serialization/blocks.ts +868 -0
  299. package/blockly-rc/core/serialization/exceptions.ts +112 -0
  300. package/blockly-rc/core/serialization/priorities.ts +25 -0
  301. package/blockly-rc/core/serialization/procedures.ts +158 -0
  302. package/blockly-rc/core/serialization/registry.ts +30 -0
  303. package/blockly-rc/core/serialization/variables.ts +68 -0
  304. package/blockly-rc/core/serialization/workspace_comments.ts +143 -0
  305. package/blockly-rc/core/serialization/workspaces.ts +94 -0
  306. package/blockly-rc/core/serialization.ts +32 -0
  307. package/blockly-rc/core/shortcut_items.ts +338 -0
  308. package/blockly-rc/core/shortcut_registry.ts +368 -0
  309. package/blockly-rc/core/sprites.ts +15 -0
  310. package/blockly-rc/core/theme/classic.ts +40 -0
  311. package/blockly-rc/core/theme/themes.ts +12 -0
  312. package/blockly-rc/core/theme/zelos.ts +80 -0
  313. package/blockly-rc/core/theme.ts +232 -0
  314. package/blockly-rc/core/theme_manager.ts +192 -0
  315. package/blockly-rc/core/toolbox/category.ts +739 -0
  316. package/blockly-rc/core/toolbox/collapsible_category.ts +288 -0
  317. package/blockly-rc/core/toolbox/separator.ts +105 -0
  318. package/blockly-rc/core/toolbox/toolbox.ts +1134 -0
  319. package/blockly-rc/core/toolbox/toolbox_item.ts +152 -0
  320. package/blockly-rc/core/tooltip.ts +466 -0
  321. package/blockly-rc/core/touch.ts +155 -0
  322. package/blockly-rc/core/trashcan.ts +748 -0
  323. package/blockly-rc/core/utils/aria.ts +144 -0
  324. package/blockly-rc/core/utils/array.ts +24 -0
  325. package/blockly-rc/core/utils/colour.ts +265 -0
  326. package/blockly-rc/core/utils/coordinate.ts +129 -0
  327. package/blockly-rc/core/utils/deprecation.ts +47 -0
  328. package/blockly-rc/core/utils/dom.ts +356 -0
  329. package/blockly-rc/core/utils/idgenerator.ts +70 -0
  330. package/blockly-rc/core/utils/keycodes.ts +154 -0
  331. package/blockly-rc/core/utils/math.ts +50 -0
  332. package/blockly-rc/core/utils/metrics.ts +86 -0
  333. package/blockly-rc/core/utils/object.ts +28 -0
  334. package/blockly-rc/core/utils/parsing.ts +287 -0
  335. package/blockly-rc/core/utils/rect.ts +69 -0
  336. package/blockly-rc/core/utils/size.ts +62 -0
  337. package/blockly-rc/core/utils/string.ts +289 -0
  338. package/blockly-rc/core/utils/style.ts +219 -0
  339. package/blockly-rc/core/utils/svg.ts +84 -0
  340. package/blockly-rc/core/utils/svg_math.ts +208 -0
  341. package/blockly-rc/core/utils/svg_paths.ts +133 -0
  342. package/blockly-rc/core/utils/toolbox.ts +419 -0
  343. package/blockly-rc/core/utils/useragent.ts +86 -0
  344. package/blockly-rc/core/utils/xml.ts +165 -0
  345. package/blockly-rc/core/utils.ts +59 -0
  346. package/blockly-rc/core/variable_map.ts +437 -0
  347. package/blockly-rc/core/variable_model.ts +149 -0
  348. package/blockly-rc/core/variables.ts +773 -0
  349. package/blockly-rc/core/variables_dynamic.ts +142 -0
  350. package/blockly-rc/core/widgetdiv.ts +319 -0
  351. package/blockly-rc/core/workspace.ts +957 -0
  352. package/blockly-rc/core/workspace_audio.ts +171 -0
  353. package/blockly-rc/core/workspace_dragger.ts +97 -0
  354. package/blockly-rc/core/workspace_svg.ts +2519 -0
  355. package/blockly-rc/core/xml.ts +1133 -0
  356. package/blockly-rc/core/zoom_controls.ts +492 -0
  357. package/blockly-rc/demos/blockfactory/analytics.js +195 -0
  358. package/blockly-rc/demos/blockfactory/app_controller.js +726 -0
  359. package/blockly-rc/demos/blockfactory/block_definition_extractor.js +742 -0
  360. package/blockly-rc/demos/blockfactory/block_exporter_controller.js +311 -0
  361. package/blockly-rc/demos/blockfactory/block_exporter_tools.js +212 -0
  362. package/blockly-rc/demos/blockfactory/block_exporter_view.js +101 -0
  363. package/blockly-rc/demos/blockfactory/block_library_controller.js +325 -0
  364. package/blockly-rc/demos/blockfactory/block_library_storage.js +149 -0
  365. package/blockly-rc/demos/blockfactory/block_library_view.js +178 -0
  366. package/blockly-rc/demos/blockfactory/block_option.js +151 -0
  367. package/blockly-rc/demos/blockfactory/blocks.js +916 -0
  368. package/blockly-rc/demos/blockfactory/cp.css +46 -0
  369. package/blockly-rc/demos/blockfactory/cp.js +179 -0
  370. package/blockly-rc/demos/blockfactory/factory.css +586 -0
  371. package/blockly-rc/demos/blockfactory/factory.js +337 -0
  372. package/blockly-rc/demos/blockfactory/factory_utils.js +1036 -0
  373. package/blockly-rc/demos/blockfactory/icon.png +0 -0
  374. package/blockly-rc/demos/blockfactory/index.html +767 -0
  375. package/blockly-rc/demos/blockfactory/link.png +0 -0
  376. package/blockly-rc/demos/blockfactory/standard_categories.js +384 -0
  377. package/blockly-rc/demos/blockfactory/workspacefactory/wfactory_controller.js +1332 -0
  378. package/blockly-rc/demos/blockfactory/workspacefactory/wfactory_generator.js +224 -0
  379. package/blockly-rc/demos/blockfactory/workspacefactory/wfactory_init.js +541 -0
  380. package/blockly-rc/demos/blockfactory/workspacefactory/wfactory_model.js +548 -0
  381. package/blockly-rc/demos/blockfactory/workspacefactory/wfactory_view.js +424 -0
  382. package/blockly-rc/demos/code/code.js +626 -0
  383. package/blockly-rc/demos/code/icon.png +0 -0
  384. package/blockly-rc/demos/code/icons.png +0 -0
  385. package/blockly-rc/demos/code/index.html +359 -0
  386. package/blockly-rc/demos/code/msg/ar.js +24 -0
  387. package/blockly-rc/demos/code/msg/be-tarask.js +24 -0
  388. package/blockly-rc/demos/code/msg/br.js +24 -0
  389. package/blockly-rc/demos/code/msg/ca.js +24 -0
  390. package/blockly-rc/demos/code/msg/cs.js +24 -0
  391. package/blockly-rc/demos/code/msg/da.js +24 -0
  392. package/blockly-rc/demos/code/msg/de.js +24 -0
  393. package/blockly-rc/demos/code/msg/el.js +24 -0
  394. package/blockly-rc/demos/code/msg/en.js +24 -0
  395. package/blockly-rc/demos/code/msg/es.js +24 -0
  396. package/blockly-rc/demos/code/msg/et.js +24 -0
  397. package/blockly-rc/demos/code/msg/fa.js +24 -0
  398. package/blockly-rc/demos/code/msg/fr.js +24 -0
  399. package/blockly-rc/demos/code/msg/he.js +24 -0
  400. package/blockly-rc/demos/code/msg/hr.js +24 -0
  401. package/blockly-rc/demos/code/msg/hrx.js +24 -0
  402. package/blockly-rc/demos/code/msg/hu.js +24 -0
  403. package/blockly-rc/demos/code/msg/ia.js +24 -0
  404. package/blockly-rc/demos/code/msg/is.js +24 -0
  405. package/blockly-rc/demos/code/msg/it.js +24 -0
  406. package/blockly-rc/demos/code/msg/ja.js +24 -0
  407. package/blockly-rc/demos/code/msg/kab.js +24 -0
  408. package/blockly-rc/demos/code/msg/ko.js +24 -0
  409. package/blockly-rc/demos/code/msg/mk.js +24 -0
  410. package/blockly-rc/demos/code/msg/ms.js +24 -0
  411. package/blockly-rc/demos/code/msg/nb.js +24 -0
  412. package/blockly-rc/demos/code/msg/nl.js +24 -0
  413. package/blockly-rc/demos/code/msg/oc.js +24 -0
  414. package/blockly-rc/demos/code/msg/pl.js +24 -0
  415. package/blockly-rc/demos/code/msg/pms.js +24 -0
  416. package/blockly-rc/demos/code/msg/pt-br.js +24 -0
  417. package/blockly-rc/demos/code/msg/ro.js +24 -0
  418. package/blockly-rc/demos/code/msg/ru.js +24 -0
  419. package/blockly-rc/demos/code/msg/sc.js +24 -0
  420. package/blockly-rc/demos/code/msg/sk.js +24 -0
  421. package/blockly-rc/demos/code/msg/sr.js +24 -0
  422. package/blockly-rc/demos/code/msg/sv.js +24 -0
  423. package/blockly-rc/demos/code/msg/ta.js +24 -0
  424. package/blockly-rc/demos/code/msg/th.js +24 -0
  425. package/blockly-rc/demos/code/msg/tlh.js +24 -0
  426. package/blockly-rc/demos/code/msg/tr.js +24 -0
  427. package/blockly-rc/demos/code/msg/uk.js +24 -0
  428. package/blockly-rc/demos/code/msg/vi.js +24 -0
  429. package/blockly-rc/demos/code/msg/zh-hans.js +24 -0
  430. package/blockly-rc/demos/code/msg/zh-hant.js +24 -0
  431. package/blockly-rc/demos/code/style.css +184 -0
  432. package/blockly-rc/demos/index.html +68 -0
  433. package/blockly-rc/demos/minimap/icon.png +0 -0
  434. package/blockly-rc/demos/minimap/index.html +91 -0
  435. package/blockly-rc/demos/minimap/minimap.js +302 -0
  436. package/blockly-rc/demos/mobile/README.md +53 -0
  437. package/blockly-rc/demos/mobile/android/README.md +45 -0
  438. package/blockly-rc/demos/mobile/android/app/build.gradle +64 -0
  439. package/blockly-rc/demos/mobile/android/app/proguard-rules.pro +21 -0
  440. package/blockly-rc/demos/mobile/android/app/src/androidTest/java/com/example/blocklywebview/ExampleInstrumentedTest.java +26 -0
  441. package/blockly-rc/demos/mobile/android/app/src/main/AndroidManifest.xml +21 -0
  442. package/blockly-rc/demos/mobile/android/app/src/main/java/com/google/blockly/android/webview/BlocklyWebViewFragment.java +40 -0
  443. package/blockly-rc/demos/mobile/android/app/src/main/java/com/google/blockly/android/webview/JsDialogHelper.java +150 -0
  444. package/blockly-rc/demos/mobile/android/app/src/main/java/com/google/blockly/android/webview/WebChromeClient.java +32 -0
  445. package/blockly-rc/demos/mobile/android/app/src/main/java/com/google/blockly/android/webview/demo/MainActivity.java +18 -0
  446. package/blockly-rc/demos/mobile/android/app/src/main/res/drawable/ic_launcher_background.xml +74 -0
  447. package/blockly-rc/demos/mobile/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml +34 -0
  448. package/blockly-rc/demos/mobile/android/app/src/main/res/layout/activity_main.xml +17 -0
  449. package/blockly-rc/demos/mobile/android/app/src/main/res/layout/js_prompt.xml +37 -0
  450. package/blockly-rc/demos/mobile/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml +5 -0
  451. package/blockly-rc/demos/mobile/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml +5 -0
  452. package/blockly-rc/demos/mobile/android/app/src/main/res/mipmap-hdpi/ic_launcher.png +0 -0
  453. package/blockly-rc/demos/mobile/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png +0 -0
  454. package/blockly-rc/demos/mobile/android/app/src/main/res/mipmap-mdpi/ic_launcher.png +0 -0
  455. package/blockly-rc/demos/mobile/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png +0 -0
  456. package/blockly-rc/demos/mobile/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png +0 -0
  457. package/blockly-rc/demos/mobile/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png +0 -0
  458. package/blockly-rc/demos/mobile/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  459. package/blockly-rc/demos/mobile/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png +0 -0
  460. package/blockly-rc/demos/mobile/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  461. package/blockly-rc/demos/mobile/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png +0 -0
  462. package/blockly-rc/demos/mobile/android/app/src/main/res/values/colors.xml +6 -0
  463. package/blockly-rc/demos/mobile/android/app/src/main/res/values/js_dialog_helper.xml +7 -0
  464. package/blockly-rc/demos/mobile/android/app/src/main/res/values/strings.xml +3 -0
  465. package/blockly-rc/demos/mobile/android/app/src/main/res/values/styles.xml +11 -0
  466. package/blockly-rc/demos/mobile/android/app/src/test/java/com/example/blocklywebview/ExampleUnitTest.java +17 -0
  467. package/blockly-rc/demos/mobile/android/build.gradle +27 -0
  468. package/blockly-rc/demos/mobile/android/gradle/wrapper/gradle-wrapper.jar +0 -0
  469. package/blockly-rc/demos/mobile/android/gradle/wrapper/gradle-wrapper.properties +6 -0
  470. package/blockly-rc/demos/mobile/android/gradle.properties +13 -0
  471. package/blockly-rc/demos/mobile/android/gradlew +172 -0
  472. package/blockly-rc/demos/mobile/android/gradlew.bat +84 -0
  473. package/blockly-rc/demos/mobile/android/settings.gradle +1 -0
  474. package/blockly-rc/demos/mobile/html/index.html +31 -0
  475. package/blockly-rc/demos/mobile/html/ln_resources.sh +22 -0
  476. package/blockly-rc/demos/mobile/html/toolbox_standard.js +333 -0
  477. package/blockly-rc/demos/mobile/ios/Blockly WebView/AppDelegate.swift +46 -0
  478. package/blockly-rc/demos/mobile/ios/Blockly WebView/Assets.xcassets/AppIcon.appiconset/Contents.json +98 -0
  479. package/blockly-rc/demos/mobile/ios/Blockly WebView/Assets.xcassets/Contents.json +6 -0
  480. package/blockly-rc/demos/mobile/ios/Blockly WebView/Base.lproj/LaunchScreen.storyboard +25 -0
  481. package/blockly-rc/demos/mobile/ios/Blockly WebView/Base.lproj/Main.storyboard +44 -0
  482. package/blockly-rc/demos/mobile/ios/Blockly WebView/Info.plist +45 -0
  483. package/blockly-rc/demos/mobile/ios/Blockly WebView/ViewController.swift +110 -0
  484. package/blockly-rc/demos/mobile/ios/Blockly WebView.xcodeproj/project.pbxproj +390 -0
  485. package/blockly-rc/demos/mobile/ios/Blockly WebView.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  486. package/blockly-rc/demos/mobile/ios/Blockly WebView.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  487. package/blockly-rc/demos/mobile/ios/cp_resources.sh +21 -0
  488. package/blockly-rc/demos/storage/icon.png +0 -0
  489. package/blockly-rc/demos/storage/index.html +104 -0
  490. package/blockly-rc/generators/dart/dart_generator.ts +321 -0
  491. package/blockly-rc/generators/dart/lists.ts +525 -0
  492. package/blockly-rc/generators/dart/logic.ts +155 -0
  493. package/blockly-rc/generators/dart/loops.ts +217 -0
  494. package/blockly-rc/generators/dart/math.ts +559 -0
  495. package/blockly-rc/generators/dart/procedures.ts +138 -0
  496. package/blockly-rc/generators/dart/text.ts +405 -0
  497. package/blockly-rc/generators/dart/variables.ts +32 -0
  498. package/blockly-rc/generators/dart/variables_dynamic.ts +17 -0
  499. package/blockly-rc/generators/dart.ts +50 -0
  500. package/blockly-rc/generators/javascript/javascript_generator.ts +346 -0
  501. package/blockly-rc/generators/javascript/lists.ts +465 -0
  502. package/blockly-rc/generators/javascript/logic.ts +153 -0
  503. package/blockly-rc/generators/javascript/loops.ts +245 -0
  504. package/blockly-rc/generators/javascript/math.ts +450 -0
  505. package/blockly-rc/generators/javascript/procedures.ts +142 -0
  506. package/blockly-rc/generators/javascript/text.ts +418 -0
  507. package/blockly-rc/generators/javascript/variables.ts +32 -0
  508. package/blockly-rc/generators/javascript/variables_dynamic.ts +17 -0
  509. package/blockly-rc/generators/javascript.ts +46 -0
  510. package/blockly-rc/generators/lua/lists.ts +445 -0
  511. package/blockly-rc/generators/lua/logic.ts +142 -0
  512. package/blockly-rc/generators/lua/loops.ts +192 -0
  513. package/blockly-rc/generators/lua/lua_generator.ts +225 -0
  514. package/blockly-rc/generators/lua/math.ts +473 -0
  515. package/blockly-rc/generators/lua/procedures.ts +144 -0
  516. package/blockly-rc/generators/lua/text.ts +380 -0
  517. package/blockly-rc/generators/lua/variables.ts +31 -0
  518. package/blockly-rc/generators/lua/variables_dynamic.ts +17 -0
  519. package/blockly-rc/generators/lua.ts +44 -0
  520. package/blockly-rc/generators/php/lists.ts +585 -0
  521. package/blockly-rc/generators/php/logic.ts +155 -0
  522. package/blockly-rc/generators/php/loops.ts +218 -0
  523. package/blockly-rc/generators/php/math.ts +408 -0
  524. package/blockly-rc/generators/php/php_generator.ts +320 -0
  525. package/blockly-rc/generators/php/procedures.ts +159 -0
  526. package/blockly-rc/generators/php/text.ts +315 -0
  527. package/blockly-rc/generators/php/variables.ts +32 -0
  528. package/blockly-rc/generators/php/variables_dynamic.ts +17 -0
  529. package/blockly-rc/generators/php.ts +46 -0
  530. package/blockly-rc/generators/python/lists.ts +398 -0
  531. package/blockly-rc/generators/python/logic.ts +148 -0
  532. package/blockly-rc/generators/python/loops.ts +251 -0
  533. package/blockly-rc/generators/python/math.ts +434 -0
  534. package/blockly-rc/generators/python/procedures.ts +159 -0
  535. package/blockly-rc/generators/python/python_generator.ts +355 -0
  536. package/blockly-rc/generators/python/text.ts +338 -0
  537. package/blockly-rc/generators/python/variables.ts +31 -0
  538. package/blockly-rc/generators/python/variables_dynamic.ts +17 -0
  539. package/blockly-rc/generators/python.ts +51 -0
  540. package/blockly-rc/gulpfile.js +54 -0
  541. package/blockly-rc/jsconfig.json +7 -0
  542. package/blockly-rc/media/1x1.gif +0 -0
  543. package/blockly-rc/media/click.mp3 +0 -0
  544. package/blockly-rc/media/click.ogg +0 -0
  545. package/blockly-rc/media/click.wav +0 -0
  546. package/blockly-rc/media/delete-icon.svg +1 -0
  547. package/blockly-rc/media/delete.mp3 +0 -0
  548. package/blockly-rc/media/delete.ogg +0 -0
  549. package/blockly-rc/media/delete.wav +0 -0
  550. package/blockly-rc/media/disconnect.mp3 +0 -0
  551. package/blockly-rc/media/disconnect.ogg +0 -0
  552. package/blockly-rc/media/disconnect.wav +0 -0
  553. package/blockly-rc/media/dropdown-arrow.svg +1 -0
  554. package/blockly-rc/media/foldout-icon.svg +1 -0
  555. package/blockly-rc/media/handclosed.cur +0 -0
  556. package/blockly-rc/media/handdelete.cur +0 -0
  557. package/blockly-rc/media/handopen.cur +0 -0
  558. package/blockly-rc/media/pilcrow.png +0 -0
  559. package/blockly-rc/media/quote0.png +0 -0
  560. package/blockly-rc/media/quote1.png +0 -0
  561. package/blockly-rc/media/resize-handle.svg +3 -0
  562. package/blockly-rc/media/sprites.png +0 -0
  563. package/blockly-rc/media/sprites.svg +74 -0
  564. package/blockly-rc/msg/json/README.md +33 -0
  565. package/blockly-rc/msg/json/ab.json +222 -0
  566. package/blockly-rc/msg/json/ace.json +7 -0
  567. package/blockly-rc/msg/json/af.json +34 -0
  568. package/blockly-rc/msg/json/am.json +30 -0
  569. package/blockly-rc/msg/json/ar.json +355 -0
  570. package/blockly-rc/msg/json/ast.json +10 -0
  571. package/blockly-rc/msg/json/az.json +332 -0
  572. package/blockly-rc/msg/json/ba.json +211 -0
  573. package/blockly-rc/msg/json/bcc.json +290 -0
  574. package/blockly-rc/msg/json/be-tarask.json +334 -0
  575. package/blockly-rc/msg/json/be.json +324 -0
  576. package/blockly-rc/msg/json/bg.json +345 -0
  577. package/blockly-rc/msg/json/bn.json +189 -0
  578. package/blockly-rc/msg/json/br.json +334 -0
  579. package/blockly-rc/msg/json/bs.json +166 -0
  580. package/blockly-rc/msg/json/ca.json +341 -0
  581. package/blockly-rc/msg/json/cdo.json +6 -0
  582. package/blockly-rc/msg/json/ce.json +326 -0
  583. package/blockly-rc/msg/json/constants.json +12 -0
  584. package/blockly-rc/msg/json/cs.json +343 -0
  585. package/blockly-rc/msg/json/da.json +346 -0
  586. package/blockly-rc/msg/json/de.json +369 -0
  587. package/blockly-rc/msg/json/diq.json +258 -0
  588. package/blockly-rc/msg/json/dtp.json +198 -0
  589. package/blockly-rc/msg/json/dty.json +97 -0
  590. package/blockly-rc/msg/json/ee.json +160 -0
  591. package/blockly-rc/msg/json/el.json +356 -0
  592. package/blockly-rc/msg/json/en-gb.json +199 -0
  593. package/blockly-rc/msg/json/en.json +400 -0
  594. package/blockly-rc/msg/json/eo.json +337 -0
  595. package/blockly-rc/msg/json/es.json +358 -0
  596. package/blockly-rc/msg/json/et.json +326 -0
  597. package/blockly-rc/msg/json/eu.json +219 -0
  598. package/blockly-rc/msg/json/fa.json +341 -0
  599. package/blockly-rc/msg/json/fi.json +350 -0
  600. package/blockly-rc/msg/json/fo.json +46 -0
  601. package/blockly-rc/msg/json/fr.json +373 -0
  602. package/blockly-rc/msg/json/frr.json +6 -0
  603. package/blockly-rc/msg/json/gl.json +338 -0
  604. package/blockly-rc/msg/json/gn.json +54 -0
  605. package/blockly-rc/msg/json/gor.json +87 -0
  606. package/blockly-rc/msg/json/ha.json +313 -0
  607. package/blockly-rc/msg/json/hak.json +17 -0
  608. package/blockly-rc/msg/json/he.json +354 -0
  609. package/blockly-rc/msg/json/hi.json +318 -0
  610. package/blockly-rc/msg/json/hr.json +327 -0
  611. package/blockly-rc/msg/json/hrx.json +287 -0
  612. package/blockly-rc/msg/json/hsb.json +128 -0
  613. package/blockly-rc/msg/json/hu.json +349 -0
  614. package/blockly-rc/msg/json/hy.json +337 -0
  615. package/blockly-rc/msg/json/ia.json +337 -0
  616. package/blockly-rc/msg/json/id.json +335 -0
  617. package/blockly-rc/msg/json/ig.json +323 -0
  618. package/blockly-rc/msg/json/inh.json +80 -0
  619. package/blockly-rc/msg/json/is.json +331 -0
  620. package/blockly-rc/msg/json/it.json +346 -0
  621. package/blockly-rc/msg/json/ja.json +361 -0
  622. package/blockly-rc/msg/json/ka.json +14 -0
  623. package/blockly-rc/msg/json/kab.json +323 -0
  624. package/blockly-rc/msg/json/kbd-cyrl.json +84 -0
  625. package/blockly-rc/msg/json/km.json +29 -0
  626. package/blockly-rc/msg/json/kn.json +332 -0
  627. package/blockly-rc/msg/json/ko.json +372 -0
  628. package/blockly-rc/msg/json/ksh.json +43 -0
  629. package/blockly-rc/msg/json/ku-latn.json +41 -0
  630. package/blockly-rc/msg/json/ky.json +71 -0
  631. package/blockly-rc/msg/json/la.json +6 -0
  632. package/blockly-rc/msg/json/lb.json +156 -0
  633. package/blockly-rc/msg/json/lki.json +282 -0
  634. package/blockly-rc/msg/json/lo.json +92 -0
  635. package/blockly-rc/msg/json/lrc.json +123 -0
  636. package/blockly-rc/msg/json/lt.json +321 -0
  637. package/blockly-rc/msg/json/lv.json +324 -0
  638. package/blockly-rc/msg/json/mg.json +58 -0
  639. package/blockly-rc/msg/json/mk.json +178 -0
  640. package/blockly-rc/msg/json/ml.json +35 -0
  641. package/blockly-rc/msg/json/mnw.json +90 -0
  642. package/blockly-rc/msg/json/ms.json +300 -0
  643. package/blockly-rc/msg/json/my.json +57 -0
  644. package/blockly-rc/msg/json/mzn.json +6 -0
  645. package/blockly-rc/msg/json/nb.json +330 -0
  646. package/blockly-rc/msg/json/ne.json +247 -0
  647. package/blockly-rc/msg/json/nl.json +357 -0
  648. package/blockly-rc/msg/json/oc.json +194 -0
  649. package/blockly-rc/msg/json/olo.json +37 -0
  650. package/blockly-rc/msg/json/pa.json +69 -0
  651. package/blockly-rc/msg/json/pl.json +357 -0
  652. package/blockly-rc/msg/json/pms.json +324 -0
  653. package/blockly-rc/msg/json/ps.json +50 -0
  654. package/blockly-rc/msg/json/pt-br.json +369 -0
  655. package/blockly-rc/msg/json/pt.json +358 -0
  656. package/blockly-rc/msg/json/qqq.json +406 -0
  657. package/blockly-rc/msg/json/ro.json +333 -0
  658. package/blockly-rc/msg/json/ru.json +363 -0
  659. package/blockly-rc/msg/json/sc.json +283 -0
  660. package/blockly-rc/msg/json/sco.json +11 -0
  661. package/blockly-rc/msg/json/sd.json +158 -0
  662. package/blockly-rc/msg/json/shn.json +109 -0
  663. package/blockly-rc/msg/json/si.json +16 -0
  664. package/blockly-rc/msg/json/sk.json +332 -0
  665. package/blockly-rc/msg/json/skr-arab.json +117 -0
  666. package/blockly-rc/msg/json/sl.json +355 -0
  667. package/blockly-rc/msg/json/smn.json +133 -0
  668. package/blockly-rc/msg/json/sq.json +343 -0
  669. package/blockly-rc/msg/json/sr-latn.json +324 -0
  670. package/blockly-rc/msg/json/sr.json +348 -0
  671. package/blockly-rc/msg/json/sv.json +347 -0
  672. package/blockly-rc/msg/json/sw.json +12 -0
  673. package/blockly-rc/msg/json/synonyms.json +22 -0
  674. package/blockly-rc/msg/json/ta.json +306 -0
  675. package/blockly-rc/msg/json/tcy.json +316 -0
  676. package/blockly-rc/msg/json/tdd.json +109 -0
  677. package/blockly-rc/msg/json/te.json +101 -0
  678. package/blockly-rc/msg/json/th.json +333 -0
  679. package/blockly-rc/msg/json/ti.json +50 -0
  680. package/blockly-rc/msg/json/tl.json +129 -0
  681. package/blockly-rc/msg/json/tlh.json +179 -0
  682. package/blockly-rc/msg/json/tr.json +369 -0
  683. package/blockly-rc/msg/json/ug-arab.json +132 -0
  684. package/blockly-rc/msg/json/uk.json +345 -0
  685. package/blockly-rc/msg/json/ur.json +117 -0
  686. package/blockly-rc/msg/json/uz.json +36 -0
  687. package/blockly-rc/msg/json/vi.json +345 -0
  688. package/blockly-rc/msg/json/xmf.json +96 -0
  689. package/blockly-rc/msg/json/yo.json +316 -0
  690. package/blockly-rc/msg/json/zgh.json +83 -0
  691. package/blockly-rc/msg/json/zh-hans.json +372 -0
  692. package/blockly-rc/msg/json/zh-hant.json +362 -0
  693. package/blockly-rc/msg/messages.js +1616 -0
  694. package/blockly-rc/package-lock.json +12324 -0
  695. package/blockly-rc/package.json +149 -0
  696. package/blockly-rc/patches/@microsoft+api-documenter+7.22.4.patch +81 -0
  697. package/blockly-rc/scripts/goog_module/convert-file.sh +406 -0
  698. package/blockly-rc/scripts/gulpfiles/appengine_tasks.js +195 -0
  699. package/blockly-rc/scripts/gulpfiles/build_tasks.js +752 -0
  700. package/blockly-rc/scripts/gulpfiles/config.js +41 -0
  701. package/blockly-rc/scripts/gulpfiles/docs_tasks.js +147 -0
  702. package/blockly-rc/scripts/gulpfiles/git_tasks.js +181 -0
  703. package/blockly-rc/scripts/gulpfiles/helper_tasks.js +19 -0
  704. package/blockly-rc/scripts/gulpfiles/package_tasks.js +262 -0
  705. package/blockly-rc/scripts/gulpfiles/release_tasks.js +183 -0
  706. package/blockly-rc/scripts/gulpfiles/test_tasks.js +405 -0
  707. package/blockly-rc/scripts/helpers.js +74 -0
  708. package/blockly-rc/scripts/i18n/common.py +233 -0
  709. package/blockly-rc/scripts/i18n/create_messages.py +167 -0
  710. package/blockly-rc/scripts/i18n/dedup_json.py +72 -0
  711. package/blockly-rc/scripts/i18n/js_to_json.py +135 -0
  712. package/blockly-rc/scripts/i18n/tests.py +46 -0
  713. package/blockly-rc/scripts/migration/cjs2esm +162 -0
  714. package/blockly-rc/scripts/migration/js2ts +168 -0
  715. package/blockly-rc/scripts/migration/renamings.json5 +1599 -0
  716. package/blockly-rc/scripts/package/README.md +93 -0
  717. package/blockly-rc/scripts/package/core-node.js +31 -0
  718. package/blockly-rc/scripts/package/index.js +23 -0
  719. package/blockly-rc/scripts/package/templates/umd-msg.template +16 -0
  720. package/blockly-rc/scripts/package/templates/umd.template +13 -0
  721. package/blockly-rc/scripts/themes/blockStyles_example.json +11 -0
  722. package/blockly-rc/scripts/themes/create_blockStyles.py +181 -0
  723. package/blockly-rc/scripts/tsick.js +86 -0
  724. package/blockly-rc/tests/.eslintrc.json +10 -0
  725. package/blockly-rc/tests/browser/.eslintrc.json +29 -0
  726. package/blockly-rc/tests/browser/.mocharc.js +6 -0
  727. package/blockly-rc/tests/browser/test/basic_block_factory_test.mjs +44 -0
  728. package/blockly-rc/tests/browser/test/basic_block_test.mjs +39 -0
  729. package/blockly-rc/tests/browser/test/basic_playground_test.mjs +198 -0
  730. package/blockly-rc/tests/browser/test/block_undo_test.mjs +50 -0
  731. package/blockly-rc/tests/browser/test/delete_blocks_test.mjs +211 -0
  732. package/blockly-rc/tests/browser/test/extensive_test.mjs +195 -0
  733. package/blockly-rc/tests/browser/test/field_edits_test.mjs +61 -0
  734. package/blockly-rc/tests/browser/test/hooks.mjs +23 -0
  735. package/blockly-rc/tests/browser/test/mutator_test.mjs +88 -0
  736. package/blockly-rc/tests/browser/test/procedure_test.mjs +109 -0
  737. package/blockly-rc/tests/browser/test/test_setup.mjs +589 -0
  738. package/blockly-rc/tests/browser/test/toolbox_drag_test.mjs +207 -0
  739. package/blockly-rc/tests/browser/test/workspace_comment_test.mjs +224 -0
  740. package/blockly-rc/tests/compile/index.html +43 -0
  741. package/blockly-rc/tests/compile/main.js +53 -0
  742. package/blockly-rc/tests/compile/test_blocks.js +47 -0
  743. package/blockly-rc/tests/compile/webdriver.js +81 -0
  744. package/blockly-rc/tests/generators/functions.xml +561 -0
  745. package/blockly-rc/tests/generators/golden/generated.dart +1604 -0
  746. package/blockly-rc/tests/generators/golden/generated.js +1552 -0
  747. package/blockly-rc/tests/generators/golden/generated.lua +1828 -0
  748. package/blockly-rc/tests/generators/golden/generated.php +1611 -0
  749. package/blockly-rc/tests/generators/golden/generated.py +1407 -0
  750. package/blockly-rc/tests/generators/index.html +405 -0
  751. package/blockly-rc/tests/generators/lists.xml +8675 -0
  752. package/blockly-rc/tests/generators/logic.xml +1019 -0
  753. package/blockly-rc/tests/generators/loops1.xml +345 -0
  754. package/blockly-rc/tests/generators/loops2.xml +891 -0
  755. package/blockly-rc/tests/generators/loops3.xml +735 -0
  756. package/blockly-rc/tests/generators/math.xml +2077 -0
  757. package/blockly-rc/tests/generators/text.xml +4651 -0
  758. package/blockly-rc/tests/generators/unittest.js +103 -0
  759. package/blockly-rc/tests/generators/unittest_dart.js +163 -0
  760. package/blockly-rc/tests/generators/unittest_javascript.js +167 -0
  761. package/blockly-rc/tests/generators/unittest_lua.js +165 -0
  762. package/blockly-rc/tests/generators/unittest_php.js +154 -0
  763. package/blockly-rc/tests/generators/unittest_python.js +138 -0
  764. package/blockly-rc/tests/generators/variables.xml +68 -0
  765. package/blockly-rc/tests/generators/webdriver.js +123 -0
  766. package/blockly-rc/tests/media/200px.png +0 -0
  767. package/blockly-rc/tests/media/30px.png +0 -0
  768. package/blockly-rc/tests/media/50px.png +0 -0
  769. package/blockly-rc/tests/media/a.png +0 -0
  770. package/blockly-rc/tests/media/arrow.png +0 -0
  771. package/blockly-rc/tests/media/b.png +0 -0
  772. package/blockly-rc/tests/media/c.png +0 -0
  773. package/blockly-rc/tests/media/d.png +0 -0
  774. package/blockly-rc/tests/media/e.png +0 -0
  775. package/blockly-rc/tests/media/f.png +0 -0
  776. package/blockly-rc/tests/media/g.png +0 -0
  777. package/blockly-rc/tests/media/h.png +0 -0
  778. package/blockly-rc/tests/media/i.png +0 -0
  779. package/blockly-rc/tests/media/j.png +0 -0
  780. package/blockly-rc/tests/media/k.png +0 -0
  781. package/blockly-rc/tests/media/l.png +0 -0
  782. package/blockly-rc/tests/media/m.png +0 -0
  783. package/blockly-rc/tests/migration/renamings.schema.json +59 -0
  784. package/blockly-rc/tests/migration/validate-renamings.mjs +60 -0
  785. package/blockly-rc/tests/mocha/.eslintrc.json +21 -0
  786. package/blockly-rc/tests/mocha/.mocharc.js +6 -0
  787. package/blockly-rc/tests/mocha/astnode_test.js +850 -0
  788. package/blockly-rc/tests/mocha/block_json_test.js +777 -0
  789. package/blockly-rc/tests/mocha/block_test.js +2743 -0
  790. package/blockly-rc/tests/mocha/blocks/lists_test.js +196 -0
  791. package/blockly-rc/tests/mocha/blocks/logic_ternary_test.js +320 -0
  792. package/blockly-rc/tests/mocha/blocks/loops_test.js +56 -0
  793. package/blockly-rc/tests/mocha/blocks/procedures_test.js +2495 -0
  794. package/blockly-rc/tests/mocha/blocks/variables_test.js +311 -0
  795. package/blockly-rc/tests/mocha/clipboard_test.js +136 -0
  796. package/blockly-rc/tests/mocha/comment_deserialization_test.js +122 -0
  797. package/blockly-rc/tests/mocha/comment_test.js +170 -0
  798. package/blockly-rc/tests/mocha/comment_view_test.js +188 -0
  799. package/blockly-rc/tests/mocha/connection_checker_test.js +666 -0
  800. package/blockly-rc/tests/mocha/connection_db_test.js +362 -0
  801. package/blockly-rc/tests/mocha/connection_test.js +3738 -0
  802. package/blockly-rc/tests/mocha/contextmenu_items_test.js +488 -0
  803. package/blockly-rc/tests/mocha/contextmenu_test.js +71 -0
  804. package/blockly-rc/tests/mocha/cursor_test.js +134 -0
  805. package/blockly-rc/tests/mocha/dropdowndiv_test.js +116 -0
  806. package/blockly-rc/tests/mocha/event_block_change_test.js +126 -0
  807. package/blockly-rc/tests/mocha/event_block_create_test.js +109 -0
  808. package/blockly-rc/tests/mocha/event_block_delete_test.js +55 -0
  809. package/blockly-rc/tests/mocha/event_block_drag_test.js +36 -0
  810. package/blockly-rc/tests/mocha/event_block_field_intermediate_change_test.js +67 -0
  811. package/blockly-rc/tests/mocha/event_block_move_test.js +39 -0
  812. package/blockly-rc/tests/mocha/event_bubble_open_test.js +42 -0
  813. package/blockly-rc/tests/mocha/event_click_test.js +40 -0
  814. package/blockly-rc/tests/mocha/event_comment_change_test.js +39 -0
  815. package/blockly-rc/tests/mocha/event_comment_collapse_test.js +34 -0
  816. package/blockly-rc/tests/mocha/event_comment_create_test.js +38 -0
  817. package/blockly-rc/tests/mocha/event_comment_delete_test.js +38 -0
  818. package/blockly-rc/tests/mocha/event_comment_drag_test.js +35 -0
  819. package/blockly-rc/tests/mocha/event_comment_move_test.js +40 -0
  820. package/blockly-rc/tests/mocha/event_comment_resize_test.js +38 -0
  821. package/blockly-rc/tests/mocha/event_marker_move_test.js +44 -0
  822. package/blockly-rc/tests/mocha/event_selected_test.js +41 -0
  823. package/blockly-rc/tests/mocha/event_test.js +1578 -0
  824. package/blockly-rc/tests/mocha/event_theme_change_test.js +36 -0
  825. package/blockly-rc/tests/mocha/event_toolbox_item_select_test.js +64 -0
  826. package/blockly-rc/tests/mocha/event_trashcan_open_test.js +36 -0
  827. package/blockly-rc/tests/mocha/event_var_create_test.js +54 -0
  828. package/blockly-rc/tests/mocha/event_var_delete_test.js +54 -0
  829. package/blockly-rc/tests/mocha/event_var_rename_test.js +39 -0
  830. package/blockly-rc/tests/mocha/event_var_type_change_test.js +43 -0
  831. package/blockly-rc/tests/mocha/event_viewport_test.js +39 -0
  832. package/blockly-rc/tests/mocha/extensions_test.js +613 -0
  833. package/blockly-rc/tests/mocha/field_checkbox_test.js +299 -0
  834. package/blockly-rc/tests/mocha/field_colour_test.js +395 -0
  835. package/blockly-rc/tests/mocha/field_dropdown_test.js +282 -0
  836. package/blockly-rc/tests/mocha/field_image_test.js +241 -0
  837. package/blockly-rc/tests/mocha/field_label_serializable_test.js +252 -0
  838. package/blockly-rc/tests/mocha/field_label_test.js +226 -0
  839. package/blockly-rc/tests/mocha/field_number_test.js +505 -0
  840. package/blockly-rc/tests/mocha/field_registry_test.js +116 -0
  841. package/blockly-rc/tests/mocha/field_test.js +822 -0
  842. package/blockly-rc/tests/mocha/field_textinput_test.js +297 -0
  843. package/blockly-rc/tests/mocha/field_variable_test.js +611 -0
  844. package/blockly-rc/tests/mocha/flyout_test.js +638 -0
  845. package/blockly-rc/tests/mocha/generator_test.js +233 -0
  846. package/blockly-rc/tests/mocha/gesture_test.js +97 -0
  847. package/blockly-rc/tests/mocha/icon_test.js +369 -0
  848. package/blockly-rc/tests/mocha/index.html +229 -0
  849. package/blockly-rc/tests/mocha/input_test.js +296 -0
  850. package/blockly-rc/tests/mocha/insertion_marker_manager_test.js +443 -0
  851. package/blockly-rc/tests/mocha/insertion_marker_test.js +432 -0
  852. package/blockly-rc/tests/mocha/jso_deserialization_test.js +849 -0
  853. package/blockly-rc/tests/mocha/jso_serialization_test.js +1067 -0
  854. package/blockly-rc/tests/mocha/json_test.js +315 -0
  855. package/blockly-rc/tests/mocha/keydown_test.js +364 -0
  856. package/blockly-rc/tests/mocha/layering_test.js +95 -0
  857. package/blockly-rc/tests/mocha/metrics_test.js +671 -0
  858. package/blockly-rc/tests/mocha/mutator_test.js +87 -0
  859. package/blockly-rc/tests/mocha/names_test.js +97 -0
  860. package/blockly-rc/tests/mocha/old_workspace_comment_test.js +256 -0
  861. package/blockly-rc/tests/mocha/procedure_map_test.js +57 -0
  862. package/blockly-rc/tests/mocha/registry_test.js +281 -0
  863. package/blockly-rc/tests/mocha/render_management_test.js +127 -0
  864. package/blockly-rc/tests/mocha/serializer_test.js +2104 -0
  865. package/blockly-rc/tests/mocha/shortcut_registry_test.js +450 -0
  866. package/blockly-rc/tests/mocha/test_helpers/block_definitions.js +204 -0
  867. package/blockly-rc/tests/mocha/test_helpers/code_generation.js +115 -0
  868. package/blockly-rc/tests/mocha/test_helpers/common.js +106 -0
  869. package/blockly-rc/tests/mocha/test_helpers/events.js +290 -0
  870. package/blockly-rc/tests/mocha/test_helpers/fields.js +310 -0
  871. package/blockly-rc/tests/mocha/test_helpers/icon_mocks.js +81 -0
  872. package/blockly-rc/tests/mocha/test_helpers/procedures.js +302 -0
  873. package/blockly-rc/tests/mocha/test_helpers/serialization.js +124 -0
  874. package/blockly-rc/tests/mocha/test_helpers/setup_teardown.js +209 -0
  875. package/blockly-rc/tests/mocha/test_helpers/toolbox_definitions.js +271 -0
  876. package/blockly-rc/tests/mocha/test_helpers/user_input.js +62 -0
  877. package/blockly-rc/tests/mocha/test_helpers/variables.js +23 -0
  878. package/blockly-rc/tests/mocha/test_helpers/warnings.js +83 -0
  879. package/blockly-rc/tests/mocha/test_helpers/workspace.js +1691 -0
  880. package/blockly-rc/tests/mocha/theme_test.js +307 -0
  881. package/blockly-rc/tests/mocha/toolbox_test.js +761 -0
  882. package/blockly-rc/tests/mocha/tooltip_test.js +276 -0
  883. package/blockly-rc/tests/mocha/touch_test.js +109 -0
  884. package/blockly-rc/tests/mocha/trashcan_test.js +375 -0
  885. package/blockly-rc/tests/mocha/utils_test.js +536 -0
  886. package/blockly-rc/tests/mocha/variable_map_test.js +509 -0
  887. package/blockly-rc/tests/mocha/variable_model_test.js +85 -0
  888. package/blockly-rc/tests/mocha/webdriver.js +96 -0
  889. package/blockly-rc/tests/mocha/widget_div_test.js +272 -0
  890. package/blockly-rc/tests/mocha/workspace_comment_test.js +171 -0
  891. package/blockly-rc/tests/mocha/workspace_svg_test.js +414 -0
  892. package/blockly-rc/tests/mocha/workspace_test.js +27 -0
  893. package/blockly-rc/tests/mocha/xml_test.js +951 -0
  894. package/blockly-rc/tests/mocha/zoom_controls_test.js +81 -0
  895. package/blockly-rc/tests/multi_playground.html +482 -0
  896. package/blockly-rc/tests/node/.eslintrc.json +12 -0
  897. package/blockly-rc/tests/node/.mocharc.js +6 -0
  898. package/blockly-rc/tests/node/run_node_test.mjs +72 -0
  899. package/blockly-rc/tests/playground.html +1280 -0
  900. package/blockly-rc/tests/playgrounds/advanced_playground.html +158 -0
  901. package/blockly-rc/tests/playgrounds/iframe.html +40 -0
  902. package/blockly-rc/tests/playgrounds/screenshot.js +123 -0
  903. package/blockly-rc/tests/scripts/check_metadata.sh +166 -0
  904. package/blockly-rc/tests/scripts/compile_typings.sh +32 -0
  905. package/blockly-rc/tests/scripts/load.mjs +140 -0
  906. package/blockly-rc/tests/scripts/setup_linux_env.sh +7 -0
  907. package/blockly-rc/tests/scripts/update_metadata.sh +46 -0
  908. package/blockly-rc/tests/themes/test_themes.js +62 -0
  909. package/blockly-rc/tests/typescript/README.md +4 -0
  910. package/blockly-rc/tests/typescript/src/field/different_user_input.ts +81 -0
  911. package/blockly-rc/tests/typescript/src/generators/dart.ts +24 -0
  912. package/blockly-rc/tests/typescript/src/generators/javascript.ts +28 -0
  913. package/blockly-rc/tests/typescript/src/generators/lua.ts +24 -0
  914. package/blockly-rc/tests/typescript/src/generators/php.ts +24 -0
  915. package/blockly-rc/tests/typescript/src/generators/python.ts +24 -0
  916. package/blockly-rc/tests/typescript/src/generators.ts +31 -0
  917. package/blockly-rc/tests/typescript/src/msg.ts +20 -0
  918. package/blockly-rc/tests/typescript/tsconfig.json +20 -0
  919. package/blockly-rc/tests/xml/README.txt +11 -0
  920. package/blockly-rc/tests/xml/blockly.xsd +178 -0
  921. package/blockly-rc/tests/xml/invalid.xml +6 -0
  922. package/blockly-rc/tests/xml/toolbox.xml +311 -0
  923. package/blockly-rc/tests/xml/workspace.xml +114 -0
  924. package/blockly-rc/tsconfig.json +37 -0
  925. package/blockly-rc/tsdoc.json +35 -0
  926. package/blockly-rc/typings/README.md +5 -0
  927. package/blockly-rc/typings/blocks.d.ts +17 -0
  928. package/blockly-rc/typings/core.d.ts +7 -0
  929. package/blockly-rc/typings/dart.d.ts +7 -0
  930. package/blockly-rc/typings/index.d.ts +10 -0
  931. package/blockly-rc/typings/javascript.d.ts +7 -0
  932. package/blockly-rc/typings/lua.d.ts +7 -0
  933. package/blockly-rc/typings/msg/ab.d.ts +8 -0
  934. package/blockly-rc/typings/msg/ace.d.ts +8 -0
  935. package/blockly-rc/typings/msg/af.d.ts +8 -0
  936. package/blockly-rc/typings/msg/am.d.ts +8 -0
  937. package/blockly-rc/typings/msg/ar.d.ts +8 -0
  938. package/blockly-rc/typings/msg/ast.d.ts +8 -0
  939. package/blockly-rc/typings/msg/az.d.ts +8 -0
  940. package/blockly-rc/typings/msg/ba.d.ts +8 -0
  941. package/blockly-rc/typings/msg/bcc.d.ts +8 -0
  942. package/blockly-rc/typings/msg/be-tarask.d.ts +8 -0
  943. package/blockly-rc/typings/msg/be.d.ts +8 -0
  944. package/blockly-rc/typings/msg/bg.d.ts +8 -0
  945. package/blockly-rc/typings/msg/bn.d.ts +8 -0
  946. package/blockly-rc/typings/msg/br.d.ts +8 -0
  947. package/blockly-rc/typings/msg/bs.d.ts +8 -0
  948. package/blockly-rc/typings/msg/ca.d.ts +8 -0
  949. package/blockly-rc/typings/msg/cdo.d.ts +8 -0
  950. package/blockly-rc/typings/msg/ce.d.ts +8 -0
  951. package/blockly-rc/typings/msg/cs.d.ts +8 -0
  952. package/blockly-rc/typings/msg/da.d.ts +8 -0
  953. package/blockly-rc/typings/msg/de.d.ts +8 -0
  954. package/blockly-rc/typings/msg/diq.d.ts +8 -0
  955. package/blockly-rc/typings/msg/dtp.d.ts +8 -0
  956. package/blockly-rc/typings/msg/dty.d.ts +8 -0
  957. package/blockly-rc/typings/msg/ee.d.ts +8 -0
  958. package/blockly-rc/typings/msg/el.d.ts +8 -0
  959. package/blockly-rc/typings/msg/en-gb.d.ts +8 -0
  960. package/blockly-rc/typings/msg/en.d.ts +8 -0
  961. package/blockly-rc/typings/msg/eo.d.ts +8 -0
  962. package/blockly-rc/typings/msg/es.d.ts +8 -0
  963. package/blockly-rc/typings/msg/et.d.ts +8 -0
  964. package/blockly-rc/typings/msg/eu.d.ts +8 -0
  965. package/blockly-rc/typings/msg/fa.d.ts +8 -0
  966. package/blockly-rc/typings/msg/fi.d.ts +8 -0
  967. package/blockly-rc/typings/msg/fo.d.ts +8 -0
  968. package/blockly-rc/typings/msg/fr.d.ts +8 -0
  969. package/blockly-rc/typings/msg/frr.d.ts +8 -0
  970. package/blockly-rc/typings/msg/gl.d.ts +8 -0
  971. package/blockly-rc/typings/msg/gn.d.ts +8 -0
  972. package/blockly-rc/typings/msg/gor.d.ts +8 -0
  973. package/blockly-rc/typings/msg/ha.d.ts +8 -0
  974. package/blockly-rc/typings/msg/hak.d.ts +8 -0
  975. package/blockly-rc/typings/msg/he.d.ts +8 -0
  976. package/blockly-rc/typings/msg/hi.d.ts +8 -0
  977. package/blockly-rc/typings/msg/hr.d.ts +8 -0
  978. package/blockly-rc/typings/msg/hrx.d.ts +8 -0
  979. package/blockly-rc/typings/msg/hsb.d.ts +8 -0
  980. package/blockly-rc/typings/msg/hu.d.ts +8 -0
  981. package/blockly-rc/typings/msg/hy.d.ts +8 -0
  982. package/blockly-rc/typings/msg/ia.d.ts +8 -0
  983. package/blockly-rc/typings/msg/id.d.ts +8 -0
  984. package/blockly-rc/typings/msg/ig.d.ts +8 -0
  985. package/blockly-rc/typings/msg/inh.d.ts +8 -0
  986. package/blockly-rc/typings/msg/is.d.ts +8 -0
  987. package/blockly-rc/typings/msg/it.d.ts +8 -0
  988. package/blockly-rc/typings/msg/ja.d.ts +8 -0
  989. package/blockly-rc/typings/msg/ka.d.ts +8 -0
  990. package/blockly-rc/typings/msg/kab.d.ts +8 -0
  991. package/blockly-rc/typings/msg/kbd-cyrl.d.ts +8 -0
  992. package/blockly-rc/typings/msg/km.d.ts +8 -0
  993. package/blockly-rc/typings/msg/kn.d.ts +8 -0
  994. package/blockly-rc/typings/msg/ko.d.ts +8 -0
  995. package/blockly-rc/typings/msg/ksh.d.ts +8 -0
  996. package/blockly-rc/typings/msg/ku-latn.d.ts +8 -0
  997. package/blockly-rc/typings/msg/ky.d.ts +8 -0
  998. package/blockly-rc/typings/msg/la.d.ts +8 -0
  999. package/blockly-rc/typings/msg/lb.d.ts +8 -0
  1000. package/blockly-rc/typings/msg/lki.d.ts +8 -0
  1001. package/blockly-rc/typings/msg/lo.d.ts +8 -0
  1002. package/blockly-rc/typings/msg/lrc.d.ts +8 -0
  1003. package/blockly-rc/typings/msg/lt.d.ts +8 -0
  1004. package/blockly-rc/typings/msg/lv.d.ts +8 -0
  1005. package/blockly-rc/typings/msg/mg.d.ts +8 -0
  1006. package/blockly-rc/typings/msg/mk.d.ts +8 -0
  1007. package/blockly-rc/typings/msg/ml.d.ts +8 -0
  1008. package/blockly-rc/typings/msg/mnw.d.ts +8 -0
  1009. package/blockly-rc/typings/msg/ms.d.ts +8 -0
  1010. package/blockly-rc/typings/msg/msg.d.ts +440 -0
  1011. package/blockly-rc/typings/msg/my.d.ts +8 -0
  1012. package/blockly-rc/typings/msg/mzn.d.ts +8 -0
  1013. package/blockly-rc/typings/msg/nb.d.ts +8 -0
  1014. package/blockly-rc/typings/msg/ne.d.ts +8 -0
  1015. package/blockly-rc/typings/msg/nl.d.ts +8 -0
  1016. package/blockly-rc/typings/msg/oc.d.ts +8 -0
  1017. package/blockly-rc/typings/msg/olo.d.ts +8 -0
  1018. package/blockly-rc/typings/msg/pa.d.ts +8 -0
  1019. package/blockly-rc/typings/msg/pl.d.ts +8 -0
  1020. package/blockly-rc/typings/msg/pms.d.ts +8 -0
  1021. package/blockly-rc/typings/msg/ps.d.ts +8 -0
  1022. package/blockly-rc/typings/msg/pt-br.d.ts +8 -0
  1023. package/blockly-rc/typings/msg/pt.d.ts +8 -0
  1024. package/blockly-rc/typings/msg/ro.d.ts +8 -0
  1025. package/blockly-rc/typings/msg/ru.d.ts +8 -0
  1026. package/blockly-rc/typings/msg/sc.d.ts +8 -0
  1027. package/blockly-rc/typings/msg/sco.d.ts +8 -0
  1028. package/blockly-rc/typings/msg/sd.d.ts +8 -0
  1029. package/blockly-rc/typings/msg/shn.d.ts +8 -0
  1030. package/blockly-rc/typings/msg/si.d.ts +8 -0
  1031. package/blockly-rc/typings/msg/sk.d.ts +8 -0
  1032. package/blockly-rc/typings/msg/skr-arab.d.ts +8 -0
  1033. package/blockly-rc/typings/msg/sl.d.ts +8 -0
  1034. package/blockly-rc/typings/msg/smn.d.ts +8 -0
  1035. package/blockly-rc/typings/msg/sq.d.ts +8 -0
  1036. package/blockly-rc/typings/msg/sr-latn.d.ts +8 -0
  1037. package/blockly-rc/typings/msg/sr.d.ts +8 -0
  1038. package/blockly-rc/typings/msg/sv.d.ts +8 -0
  1039. package/blockly-rc/typings/msg/sw.d.ts +8 -0
  1040. package/blockly-rc/typings/msg/ta.d.ts +8 -0
  1041. package/blockly-rc/typings/msg/tcy.d.ts +8 -0
  1042. package/blockly-rc/typings/msg/tdd.d.ts +8 -0
  1043. package/blockly-rc/typings/msg/te.d.ts +8 -0
  1044. package/blockly-rc/typings/msg/th.d.ts +8 -0
  1045. package/blockly-rc/typings/msg/ti.d.ts +8 -0
  1046. package/blockly-rc/typings/msg/tl.d.ts +8 -0
  1047. package/blockly-rc/typings/msg/tlh.d.ts +8 -0
  1048. package/blockly-rc/typings/msg/tr.d.ts +8 -0
  1049. package/blockly-rc/typings/msg/ug-arab.d.ts +8 -0
  1050. package/blockly-rc/typings/msg/uk.d.ts +8 -0
  1051. package/blockly-rc/typings/msg/ur.d.ts +8 -0
  1052. package/blockly-rc/typings/msg/uz.d.ts +8 -0
  1053. package/blockly-rc/typings/msg/vi.d.ts +8 -0
  1054. package/blockly-rc/typings/msg/xmf.d.ts +8 -0
  1055. package/blockly-rc/typings/msg/yo.d.ts +8 -0
  1056. package/blockly-rc/typings/msg/zgh.d.ts +8 -0
  1057. package/blockly-rc/typings/msg/zh-hans.d.ts +8 -0
  1058. package/blockly-rc/typings/msg/zh-hant.d.ts +8 -0
  1059. package/blockly-rc/typings/php.d.ts +7 -0
  1060. package/blockly-rc/typings/python.d.ts +7 -0
  1061. package/blockly-rc/typings/templates/blockly-header.template +11 -0
  1062. package/blockly-rc/typings/templates/blockly-interfaces.template +83 -0
  1063. package/blockly-rc/typings/templates/msg.template +15 -0
  1064. package/blockly-rc/typings/tsconfig.json +23 -0
  1065. package/continuous-toolbox.d.ts +1 -0
  1066. package/dist/main.js +2 -0
  1067. package/dist/main.js.LICENSE.txt +163 -0
  1068. package/media/delete-icon.svg +10 -0
  1069. package/media/resize-handle.svg +3 -0
  1070. package/msg/scratch_msgs.js +184 -164
  1071. package/package.json +25 -40
  1072. package/release.config.js +8 -0
  1073. package/src/block_reporting.js +31 -0
  1074. package/src/blocks/colour.js +56 -0
  1075. package/src/blocks/control.js +492 -0
  1076. package/src/blocks/data.js +690 -0
  1077. package/src/blocks/event.js +305 -0
  1078. package/src/blocks/looks.js +537 -0
  1079. package/src/blocks/math.js +137 -0
  1080. package/src/blocks/matrix.js +47 -0
  1081. package/src/blocks/motion.js +513 -0
  1082. package/src/blocks/note.js +48 -0
  1083. package/src/blocks/operators.js +463 -0
  1084. package/src/blocks/procedures.js +1009 -0
  1085. package/src/blocks/sensing.js +441 -0
  1086. package/src/blocks/sound.js +205 -0
  1087. package/src/blocks/text.js +45 -0
  1088. package/src/blocks/vertical_extensions.js +309 -0
  1089. package/src/categories.js +15 -0
  1090. package/src/checkable_continuous_flyout.js +138 -0
  1091. package/src/checkbox_bubble.js +282 -0
  1092. package/src/colours.js +77 -0
  1093. package/src/constants.js +63 -0
  1094. package/src/context_menu_items.js +150 -0
  1095. package/src/css.js +1197 -0
  1096. package/src/data_category.js +556 -0
  1097. package/src/events/events_block_comment_base.js +35 -0
  1098. package/src/events/events_block_comment_change.js +43 -0
  1099. package/src/events/events_block_comment_collapse.js +43 -0
  1100. package/src/events/events_block_comment_create.js +52 -0
  1101. package/src/events/events_block_comment_delete.js +27 -0
  1102. package/src/events/events_block_comment_move.js +54 -0
  1103. package/src/events/events_block_comment_resize.js +52 -0
  1104. package/src/events/events_block_drag_end.js +33 -0
  1105. package/src/events/events_block_drag_outside.js +30 -0
  1106. package/src/events/events_scratch_variable_create.js +67 -0
  1107. package/src/fields/field_angle.js +433 -0
  1108. package/src/fields/field_colour_slider.js +388 -0
  1109. package/src/fields/field_dropdown.js +42 -0
  1110. package/src/fields/field_matrix.js +634 -0
  1111. package/src/fields/field_note.js +937 -0
  1112. package/src/fields/field_number.js +380 -0
  1113. package/src/fields/field_textinput_removable.js +107 -0
  1114. package/src/fields/field_variable.js +171 -0
  1115. package/src/fields/field_variable_getter.js +109 -0
  1116. package/src/fields/field_vertical_separator.js +139 -0
  1117. package/src/flyout_checkbox_icon.js +88 -0
  1118. package/src/glows.js +98 -0
  1119. package/src/index.ts +137 -0
  1120. package/src/procedures.js +425 -0
  1121. package/src/recyclable_block_flyout_inflater.js +194 -0
  1122. package/src/renderer/bowler_hat.js +17 -0
  1123. package/src/renderer/constants.js +45 -0
  1124. package/src/renderer/drawer.js +51 -0
  1125. package/src/renderer/path_object.js +35 -0
  1126. package/src/renderer/render_info.js +98 -0
  1127. package/src/renderer/renderer.js +74 -0
  1128. package/src/scratch_block_paster.js +46 -0
  1129. package/src/scratch_blocks_utils.js +148 -0
  1130. package/src/scratch_comment_bubble.js +169 -0
  1131. package/src/scratch_comment_icon.js +195 -0
  1132. package/src/scratch_connection_checker.js +29 -0
  1133. package/src/scratch_continuous_category.js +80 -0
  1134. package/src/scratch_continuous_toolbox.js +78 -0
  1135. package/src/scratch_dragger.js +142 -0
  1136. package/src/scratch_variable_map.js +25 -0
  1137. package/src/scratch_variable_model.js +24 -0
  1138. package/src/shadows.js +61 -0
  1139. package/src/status_indicator_label.js +186 -0
  1140. package/src/status_indicator_label_flyout_inflater.js +42 -0
  1141. package/src/variables.js +355 -0
  1142. package/temp-use-blockly-v12-rc.sh +26 -0
  1143. package/tsconfig.json +13 -0
  1144. package/blockly_compressed_horizontal.js +0 -2255
  1145. package/blockly_compressed_vertical.js +0 -2283
  1146. package/blockly_uncompressed_horizontal.js +0 -1210
  1147. package/blockly_uncompressed_vertical.js +0 -1210
  1148. package/blocks_common/colour.js +0 -61
  1149. package/blocks_common/math.js +0 -159
  1150. package/blocks_common/matrix.js +0 -54
  1151. package/blocks_common/note.js +0 -58
  1152. package/blocks_common/text.js +0 -57
  1153. package/blocks_compressed.js +0 -36
  1154. package/blocks_compressed_horizontal.js +0 -67
  1155. package/blocks_compressed_vertical.js +0 -208
  1156. package/blocks_horizontal/control.js +0 -212
  1157. package/blocks_horizontal/default_toolbox.js +0 -139
  1158. package/blocks_horizontal/event.js +0 -190
  1159. package/blocks_horizontal/wedo.js +0 -325
  1160. package/blocks_vertical/control.js +0 -532
  1161. package/blocks_vertical/data.js +0 -666
  1162. package/blocks_vertical/default_toolbox.js +0 -564
  1163. package/blocks_vertical/event.js +0 -329
  1164. package/blocks_vertical/extensions.js +0 -294
  1165. package/blocks_vertical/looks.js +0 -591
  1166. package/blocks_vertical/motion.js +0 -587
  1167. package/blocks_vertical/operators.js +0 -470
  1168. package/blocks_vertical/procedures.js +0 -973
  1169. package/blocks_vertical/sensing.js +0 -539
  1170. package/blocks_vertical/sound.js +0 -246
  1171. package/blocks_vertical/vertical_extensions.js +0 -266
  1172. package/build/gen_blocks.js +0 -1
  1173. package/build/test_expect.js +0 -1
  1174. package/build/test_input.js +0 -1
  1175. package/build.py +0 -636
  1176. package/cleanup.sh +0 -101
  1177. package/core/block.js +0 -1837
  1178. package/core/block_animations.js +0 -107
  1179. package/core/block_drag_surface.js +0 -299
  1180. package/core/block_dragger.js +0 -421
  1181. package/core/block_events.js +0 -531
  1182. package/core/block_render_svg_horizontal.js +0 -890
  1183. package/core/block_render_svg_vertical.js +0 -1732
  1184. package/core/block_svg.js +0 -1316
  1185. package/core/blockly.js +0 -622
  1186. package/core/blocks.js +0 -37
  1187. package/core/bubble.js +0 -664
  1188. package/core/bubble_dragger.js +0 -285
  1189. package/core/colours.js +0 -160
  1190. package/core/comment.js +0 -293
  1191. package/core/comment_events.js +0 -539
  1192. package/core/connection.js +0 -766
  1193. package/core/connection_db.js +0 -300
  1194. package/core/constants.js +0 -387
  1195. package/core/contextmenu.js +0 -519
  1196. package/core/css.js +0 -1351
  1197. package/core/data_category.js +0 -490
  1198. package/core/dragged_connection_manager.js +0 -260
  1199. package/core/dropdowndiv.js +0 -408
  1200. package/core/events.js +0 -429
  1201. package/core/events_abstract.js +0 -113
  1202. package/core/extensions.js +0 -450
  1203. package/core/field.js +0 -807
  1204. package/core/field_angle.js +0 -398
  1205. package/core/field_checkbox.js +0 -133
  1206. package/core/field_colour.js +0 -253
  1207. package/core/field_colour_slider.js +0 -387
  1208. package/core/field_date.js +0 -353
  1209. package/core/field_dropdown.js +0 -483
  1210. package/core/field_iconmenu.js +0 -309
  1211. package/core/field_image.js +0 -193
  1212. package/core/field_label.js +0 -136
  1213. package/core/field_label_serializable.js +0 -125
  1214. package/core/field_matrix.js +0 -566
  1215. package/core/field_note.js +0 -850
  1216. package/core/field_number.js +0 -366
  1217. package/core/field_numberdropdown.js +0 -77
  1218. package/core/field_textdropdown.js +0 -164
  1219. package/core/field_textinput.js +0 -675
  1220. package/core/field_textinput_removable.js +0 -105
  1221. package/core/field_variable.js +0 -385
  1222. package/core/field_variable_getter.js +0 -185
  1223. package/core/field_vertical_separator.js +0 -161
  1224. package/core/flyout_base.js +0 -923
  1225. package/core/flyout_button.js +0 -322
  1226. package/core/flyout_dragger.js +0 -83
  1227. package/core/flyout_extension_category_header.js +0 -159
  1228. package/core/flyout_horizontal.js +0 -475
  1229. package/core/flyout_vertical.js +0 -770
  1230. package/core/generator.js +0 -426
  1231. package/core/gesture.js +0 -1011
  1232. package/core/grid.js +0 -227
  1233. package/core/icon.js +0 -205
  1234. package/core/inject.js +0 -491
  1235. package/core/input.js +0 -285
  1236. package/core/insertion_marker_manager.js +0 -678
  1237. package/core/msg.js +0 -62
  1238. package/core/mutator.js +0 -426
  1239. package/core/names.js +0 -198
  1240. package/core/options.js +0 -244
  1241. package/core/procedures.js +0 -577
  1242. package/core/rendered_connection.js +0 -417
  1243. package/core/scratch_block_comment.js +0 -653
  1244. package/core/scratch_blocks_utils.js +0 -244
  1245. package/core/scratch_bubble.js +0 -696
  1246. package/core/scratch_events.js +0 -131
  1247. package/core/scratch_msgs.js +0 -85
  1248. package/core/scrollbar.js +0 -875
  1249. package/core/toolbox.js +0 -801
  1250. package/core/tooltip.js +0 -337
  1251. package/core/touch.js +0 -226
  1252. package/core/trashcan.js +0 -343
  1253. package/core/ui_events.js +0 -91
  1254. package/core/ui_menu_utils.js +0 -68
  1255. package/core/utils.js +0 -948
  1256. package/core/variable_events.js +0 -259
  1257. package/core/variable_map.js +0 -415
  1258. package/core/variable_model.js +0 -116
  1259. package/core/variables.js +0 -674
  1260. package/core/warning.js +0 -199
  1261. package/core/widgetdiv.js +0 -344
  1262. package/core/workspace.js +0 -673
  1263. package/core/workspace_audio.js +0 -170
  1264. package/core/workspace_comment.js +0 -432
  1265. package/core/workspace_comment_render_svg.js +0 -723
  1266. package/core/workspace_comment_svg.js +0 -611
  1267. package/core/workspace_drag_surface_svg.js +0 -195
  1268. package/core/workspace_dragger.js +0 -132
  1269. package/core/workspace_svg.js +0 -2267
  1270. package/core/xml.js +0 -919
  1271. package/core/zoom_controls.js +0 -301
  1272. package/dist/horizontal.js +0 -222
  1273. package/dist/vertical.js +0 -222
  1274. package/dist/web/horizontal.js +0 -232
  1275. package/dist/web/vertical.js +0 -232
  1276. package/local_build.sh +0 -70
  1277. package/pack/scratch-blocks-1.1.206.tgz +0 -0
  1278. package/pull_from_blockly.sh +0 -151
  1279. package/shim/blockly_compressed_horizontal-blocks_compressed.js +0 -1
  1280. package/shim/blockly_compressed_horizontal.Blockly.js +0 -1
  1281. package/shim/blockly_compressed_horizontal.goog.js +0 -1
  1282. package/shim/blockly_compressed_horizontal.js +0 -1
  1283. package/shim/blockly_compressed_vertical-blocks_compressed.js +0 -1
  1284. package/shim/blockly_compressed_vertical.Blockly.js +0 -1
  1285. package/shim/blockly_compressed_vertical.goog.js +0 -1
  1286. package/shim/blockly_compressed_vertical.js +0 -1
  1287. package/shim/blocks_compressed_horizontal-blockly_compressed_horizontal-messages.js +0 -1
  1288. package/shim/blocks_compressed_horizontal.js +0 -1
  1289. package/shim/blocks_compressed_vertical-blockly_compressed_vertical-messages.js +0 -1
  1290. package/shim/blocks_compressed_vertical.js +0 -1
  1291. package/shim/gh-pages.js +0 -1
  1292. package/shim/horizontal.js +0 -1
  1293. package/shim/index.js +0 -17
  1294. package/shim/vertical.js +0 -1
  1295. /package/media/{comment-arrow-down.svg → foldout-icon.svg} +0 -0
@@ -0,0 +1,2077 @@
1
+ <xml xmlns="https://developers.google.com/blockly/xml">
2
+ <variables>
3
+ <variable>varToChange</variable>
4
+ <variable>rand</variable>
5
+ </variables>
6
+ <block type="unittest_main" x="13" y="13">
7
+ <field name="SUITE_NAME">Math</field>
8
+ <statement name="DO">
9
+ <block type="procedures_callnoreturn">
10
+ <mutation name="test arithmetic"></mutation>
11
+ <next>
12
+ <block type="procedures_callnoreturn">
13
+ <mutation name="test single"></mutation>
14
+ <next>
15
+ <block type="procedures_callnoreturn">
16
+ <mutation name="test trig"></mutation>
17
+ <next>
18
+ <block type="procedures_callnoreturn">
19
+ <mutation name="test constant"></mutation>
20
+ <next>
21
+ <block type="procedures_callnoreturn">
22
+ <mutation name="test change"></mutation>
23
+ <next>
24
+ <block type="procedures_callnoreturn">
25
+ <mutation name="test number properties"></mutation>
26
+ <next>
27
+ <block type="procedures_callnoreturn">
28
+ <mutation name="test round"></mutation>
29
+ <next>
30
+ <block type="procedures_callnoreturn">
31
+ <mutation name="test operations on list"></mutation>
32
+ <next>
33
+ <block type="procedures_callnoreturn">
34
+ <mutation name="test constraint"></mutation>
35
+ <next>
36
+ <block type="procedures_callnoreturn">
37
+ <mutation name="test mod"></mutation>
38
+ <next>
39
+ <block type="procedures_callnoreturn">
40
+ <mutation name="test random integer"></mutation>
41
+ <next>
42
+ <block type="procedures_callnoreturn">
43
+ <mutation name="test random fraction"></mutation>
44
+ <next>
45
+ <block type="procedures_callnoreturn">
46
+ <mutation name="test atan2"></mutation>
47
+ </block>
48
+ </next>
49
+ </block>
50
+ </next>
51
+ </block>
52
+ </next>
53
+ </block>
54
+ </next>
55
+ </block>
56
+ </next>
57
+ </block>
58
+ </next>
59
+ </block>
60
+ </next>
61
+ </block>
62
+ </next>
63
+ </block>
64
+ </next>
65
+ </block>
66
+ </next>
67
+ </block>
68
+ </next>
69
+ </block>
70
+ </next>
71
+ </block>
72
+ </statement>
73
+ </block>
74
+ <block type="procedures_defnoreturn" x="13" y="388">
75
+ <field name="NAME">test single</field>
76
+ <comment pinned="false" h="80" w="160">Tests the "single" block.</comment>
77
+ <statement name="STACK">
78
+ <block type="unittest_assertequals" inline="false">
79
+ <value name="MESSAGE">
80
+ <block type="text">
81
+ <field name="TEXT">sqrt</field>
82
+ </block>
83
+ </value>
84
+ <value name="ACTUAL">
85
+ <block type="math_single" inline="false">
86
+ <field name="OP">ROOT</field>
87
+ <value name="NUM">
88
+ <block type="math_number">
89
+ <field name="NUM">25</field>
90
+ </block>
91
+ </value>
92
+ </block>
93
+ </value>
94
+ <value name="EXPECTED">
95
+ <block type="math_number">
96
+ <field name="NUM">5</field>
97
+ </block>
98
+ </value>
99
+ <next>
100
+ <block type="unittest_assertequals" inline="false">
101
+ <value name="MESSAGE">
102
+ <block type="text">
103
+ <field name="TEXT">abs</field>
104
+ </block>
105
+ </value>
106
+ <value name="ACTUAL">
107
+ <block type="math_single" inline="false">
108
+ <field name="OP">ABS</field>
109
+ <value name="NUM">
110
+ <block type="math_number">
111
+ <field name="NUM">-25</field>
112
+ </block>
113
+ </value>
114
+ </block>
115
+ </value>
116
+ <value name="EXPECTED">
117
+ <block type="math_number">
118
+ <field name="NUM">25</field>
119
+ </block>
120
+ </value>
121
+ <next>
122
+ <block type="unittest_assertequals" inline="false">
123
+ <value name="MESSAGE">
124
+ <block type="text">
125
+ <field name="TEXT">negate</field>
126
+ </block>
127
+ </value>
128
+ <value name="ACTUAL">
129
+ <block type="math_single" inline="false">
130
+ <field name="OP">NEG</field>
131
+ <value name="NUM">
132
+ <block type="math_number">
133
+ <field name="NUM">-25</field>
134
+ </block>
135
+ </value>
136
+ </block>
137
+ </value>
138
+ <value name="EXPECTED">
139
+ <block type="math_number">
140
+ <field name="NUM">25</field>
141
+ </block>
142
+ </value>
143
+ <next>
144
+ <block type="unittest_assertequals" inline="false">
145
+ <value name="MESSAGE">
146
+ <block type="text">
147
+ <field name="TEXT">ln</field>
148
+ </block>
149
+ </value>
150
+ <value name="ACTUAL">
151
+ <block type="math_single" inline="false">
152
+ <field name="OP">LN</field>
153
+ <value name="NUM">
154
+ <block type="math_number">
155
+ <field name="NUM">1</field>
156
+ </block>
157
+ </value>
158
+ </block>
159
+ </value>
160
+ <value name="EXPECTED">
161
+ <block type="math_number">
162
+ <field name="NUM">0</field>
163
+ </block>
164
+ </value>
165
+ <next>
166
+ <block type="unittest_assertequals" inline="false">
167
+ <value name="MESSAGE">
168
+ <block type="text">
169
+ <field name="TEXT">log10</field>
170
+ </block>
171
+ </value>
172
+ <value name="ACTUAL">
173
+ <block type="math_single" inline="false">
174
+ <field name="OP">LOG10</field>
175
+ <value name="NUM">
176
+ <block type="math_number">
177
+ <field name="NUM">100</field>
178
+ </block>
179
+ </value>
180
+ </block>
181
+ </value>
182
+ <value name="EXPECTED">
183
+ <block type="math_number">
184
+ <field name="NUM">2</field>
185
+ </block>
186
+ </value>
187
+ <next>
188
+ <block type="unittest_assertequals" inline="false">
189
+ <value name="MESSAGE">
190
+ <block type="text">
191
+ <field name="TEXT">exp</field>
192
+ </block>
193
+ </value>
194
+ <value name="ACTUAL">
195
+ <block type="math_single" inline="false">
196
+ <field name="OP">EXP</field>
197
+ <value name="NUM">
198
+ <block type="math_number">
199
+ <field name="NUM">2</field>
200
+ </block>
201
+ </value>
202
+ </block>
203
+ </value>
204
+ <value name="EXPECTED">
205
+ <block type="math_number">
206
+ <field name="NUM">7.38905609893065</field>
207
+ </block>
208
+ </value>
209
+ <next>
210
+ <block type="unittest_assertequals" inline="false">
211
+ <value name="MESSAGE">
212
+ <block type="text">
213
+ <field name="TEXT">power10</field>
214
+ </block>
215
+ </value>
216
+ <value name="ACTUAL">
217
+ <block type="math_single" inline="false">
218
+ <field name="OP">POW10</field>
219
+ <value name="NUM">
220
+ <block type="math_number">
221
+ <field name="NUM">2</field>
222
+ </block>
223
+ </value>
224
+ </block>
225
+ </value>
226
+ <value name="EXPECTED">
227
+ <block type="math_number">
228
+ <field name="NUM">100</field>
229
+ </block>
230
+ </value>
231
+ </block>
232
+ </next>
233
+ </block>
234
+ </next>
235
+ </block>
236
+ </next>
237
+ </block>
238
+ </next>
239
+ </block>
240
+ </next>
241
+ </block>
242
+ </next>
243
+ </block>
244
+ </statement>
245
+ </block>
246
+ <block type="procedures_defnoreturn" x="13" y="1013">
247
+ <field name="NAME">test arithmetic</field>
248
+ <comment pinned="false" h="80" w="272">Tests the "arithmetic" block for all operations and checks parenthesis are properly generated for different orders.</comment>
249
+ <statement name="STACK">
250
+ <block type="unittest_assertequals" inline="false">
251
+ <value name="MESSAGE">
252
+ <block type="text">
253
+ <field name="TEXT">add</field>
254
+ </block>
255
+ </value>
256
+ <value name="ACTUAL">
257
+ <block type="math_arithmetic">
258
+ <field name="OP">ADD</field>
259
+ <value name="A">
260
+ <block type="math_number">
261
+ <field name="NUM">1</field>
262
+ </block>
263
+ </value>
264
+ <value name="B">
265
+ <block type="math_number">
266
+ <field name="NUM">2</field>
267
+ </block>
268
+ </value>
269
+ </block>
270
+ </value>
271
+ <value name="EXPECTED">
272
+ <block type="math_number">
273
+ <field name="NUM">3</field>
274
+ </block>
275
+ </value>
276
+ <next>
277
+ <block type="unittest_assertequals" inline="false">
278
+ <value name="MESSAGE">
279
+ <block type="text">
280
+ <field name="TEXT">subtract</field>
281
+ </block>
282
+ </value>
283
+ <value name="ACTUAL">
284
+ <block type="math_arithmetic">
285
+ <field name="OP">MINUS</field>
286
+ <value name="A">
287
+ <block type="math_number">
288
+ <field name="NUM">1</field>
289
+ </block>
290
+ </value>
291
+ <value name="B">
292
+ <block type="math_number">
293
+ <field name="NUM">2</field>
294
+ </block>
295
+ </value>
296
+ </block>
297
+ </value>
298
+ <value name="EXPECTED">
299
+ <block type="math_number">
300
+ <field name="NUM">-1</field>
301
+ </block>
302
+ </value>
303
+ <next>
304
+ <block type="unittest_assertequals" inline="false">
305
+ <value name="MESSAGE">
306
+ <block type="text">
307
+ <field name="TEXT">subtract order with add</field>
308
+ </block>
309
+ </value>
310
+ <value name="ACTUAL">
311
+ <block type="math_arithmetic">
312
+ <field name="OP">MINUS</field>
313
+ <value name="A">
314
+ <block type="math_number">
315
+ <field name="NUM">1</field>
316
+ </block>
317
+ </value>
318
+ <value name="B">
319
+ <block type="math_arithmetic">
320
+ <field name="OP">ADD</field>
321
+ <value name="A">
322
+ <block type="math_number">
323
+ <field name="NUM">0</field>
324
+ </block>
325
+ </value>
326
+ <value name="B">
327
+ <block type="math_number">
328
+ <field name="NUM">2</field>
329
+ </block>
330
+ </value>
331
+ </block>
332
+ </value>
333
+ </block>
334
+ </value>
335
+ <value name="EXPECTED">
336
+ <block type="math_number">
337
+ <field name="NUM">-1</field>
338
+ </block>
339
+ </value>
340
+ <next>
341
+ <block type="unittest_assertequals" inline="false">
342
+ <value name="MESSAGE">
343
+ <block type="text">
344
+ <field name="TEXT">subtract order with subtract</field>
345
+ </block>
346
+ </value>
347
+ <value name="ACTUAL">
348
+ <block type="math_arithmetic">
349
+ <field name="OP">MINUS</field>
350
+ <value name="A">
351
+ <block type="math_number">
352
+ <field name="NUM">1</field>
353
+ </block>
354
+ </value>
355
+ <value name="B">
356
+ <block type="math_arithmetic">
357
+ <field name="OP">MINUS</field>
358
+ <value name="A">
359
+ <block type="math_number">
360
+ <field name="NUM">0</field>
361
+ </block>
362
+ </value>
363
+ <value name="B">
364
+ <block type="math_number">
365
+ <field name="NUM">2</field>
366
+ </block>
367
+ </value>
368
+ </block>
369
+ </value>
370
+ </block>
371
+ </value>
372
+ <value name="EXPECTED">
373
+ <block type="math_number">
374
+ <field name="NUM">3</field>
375
+ </block>
376
+ </value>
377
+ <next>
378
+ <block type="unittest_assertequals" inline="false">
379
+ <value name="MESSAGE">
380
+ <block type="text">
381
+ <field name="TEXT">multiply</field>
382
+ </block>
383
+ </value>
384
+ <value name="ACTUAL">
385
+ <block type="math_arithmetic">
386
+ <field name="OP">MULTIPLY</field>
387
+ <value name="A">
388
+ <block type="math_number">
389
+ <field name="NUM">4</field>
390
+ </block>
391
+ </value>
392
+ <value name="B">
393
+ <block type="math_number">
394
+ <field name="NUM">2.5</field>
395
+ </block>
396
+ </value>
397
+ </block>
398
+ </value>
399
+ <value name="EXPECTED">
400
+ <block type="math_number">
401
+ <field name="NUM">10</field>
402
+ </block>
403
+ </value>
404
+ <next>
405
+ <block type="unittest_assertequals" inline="false">
406
+ <value name="MESSAGE">
407
+ <block type="text">
408
+ <field name="TEXT">multiply order</field>
409
+ </block>
410
+ </value>
411
+ <value name="ACTUAL">
412
+ <block type="math_arithmetic">
413
+ <field name="OP">MULTIPLY</field>
414
+ <value name="A">
415
+ <block type="math_number">
416
+ <field name="NUM">4</field>
417
+ </block>
418
+ </value>
419
+ <value name="B">
420
+ <block type="math_arithmetic">
421
+ <field name="OP">ADD</field>
422
+ <value name="A">
423
+ <block type="math_number">
424
+ <field name="NUM">0</field>
425
+ </block>
426
+ </value>
427
+ <value name="B">
428
+ <block type="math_number">
429
+ <field name="NUM">2.5</field>
430
+ </block>
431
+ </value>
432
+ </block>
433
+ </value>
434
+ </block>
435
+ </value>
436
+ <value name="EXPECTED">
437
+ <block type="math_number">
438
+ <field name="NUM">10</field>
439
+ </block>
440
+ </value>
441
+ <next>
442
+ <block type="unittest_assertequals" inline="false">
443
+ <value name="MESSAGE">
444
+ <block type="text">
445
+ <field name="TEXT">divide</field>
446
+ </block>
447
+ </value>
448
+ <value name="ACTUAL">
449
+ <block type="math_arithmetic">
450
+ <field name="OP">DIVIDE</field>
451
+ <value name="A">
452
+ <block type="math_number">
453
+ <field name="NUM">8.2</field>
454
+ </block>
455
+ </value>
456
+ <value name="B">
457
+ <block type="math_number">
458
+ <field name="NUM">-5</field>
459
+ </block>
460
+ </value>
461
+ </block>
462
+ </value>
463
+ <value name="EXPECTED">
464
+ <block type="math_number">
465
+ <field name="NUM">-1.64</field>
466
+ </block>
467
+ </value>
468
+ <next>
469
+ <block type="unittest_assertequals" inline="false">
470
+ <value name="MESSAGE">
471
+ <block type="text">
472
+ <field name="TEXT">divide order</field>
473
+ </block>
474
+ </value>
475
+ <value name="ACTUAL">
476
+ <block type="math_arithmetic">
477
+ <field name="OP">DIVIDE</field>
478
+ <value name="A">
479
+ <block type="math_number">
480
+ <field name="NUM">8.2</field>
481
+ </block>
482
+ </value>
483
+ <value name="B">
484
+ <block type="math_arithmetic">
485
+ <field name="OP">ADD</field>
486
+ <value name="A">
487
+ <block type="math_number">
488
+ <field name="NUM">0</field>
489
+ </block>
490
+ </value>
491
+ <value name="B">
492
+ <block type="math_number">
493
+ <field name="NUM">-5</field>
494
+ </block>
495
+ </value>
496
+ </block>
497
+ </value>
498
+ </block>
499
+ </value>
500
+ <value name="EXPECTED">
501
+ <block type="math_number">
502
+ <field name="NUM">-1.64</field>
503
+ </block>
504
+ </value>
505
+ <next>
506
+ <block type="unittest_assertequals" inline="false">
507
+ <value name="MESSAGE">
508
+ <block type="text">
509
+ <field name="TEXT">power</field>
510
+ </block>
511
+ </value>
512
+ <value name="ACTUAL">
513
+ <block type="math_arithmetic">
514
+ <field name="OP">POWER</field>
515
+ <value name="A">
516
+ <block type="math_number">
517
+ <field name="NUM">10</field>
518
+ </block>
519
+ </value>
520
+ <value name="B">
521
+ <block type="math_number">
522
+ <field name="NUM">4</field>
523
+ </block>
524
+ </value>
525
+ </block>
526
+ </value>
527
+ <value name="EXPECTED">
528
+ <block type="math_number">
529
+ <field name="NUM">10000</field>
530
+ </block>
531
+ </value>
532
+ <next>
533
+ <block type="unittest_assertequals" inline="false">
534
+ <value name="MESSAGE">
535
+ <block type="text">
536
+ <field name="TEXT">power order</field>
537
+ </block>
538
+ </value>
539
+ <value name="ACTUAL">
540
+ <block type="math_arithmetic">
541
+ <field name="OP">POWER</field>
542
+ <value name="A">
543
+ <block type="math_number">
544
+ <field name="NUM">10</field>
545
+ </block>
546
+ </value>
547
+ <value name="B">
548
+ <block type="math_arithmetic">
549
+ <field name="OP">ADD</field>
550
+ <value name="A">
551
+ <block type="math_number">
552
+ <field name="NUM">0</field>
553
+ </block>
554
+ </value>
555
+ <value name="B">
556
+ <block type="math_number">
557
+ <field name="NUM">4</field>
558
+ </block>
559
+ </value>
560
+ </block>
561
+ </value>
562
+ </block>
563
+ </value>
564
+ <value name="EXPECTED">
565
+ <block type="math_number">
566
+ <field name="NUM">10000</field>
567
+ </block>
568
+ </value>
569
+ </block>
570
+ </next>
571
+ </block>
572
+ </next>
573
+ </block>
574
+ </next>
575
+ </block>
576
+ </next>
577
+ </block>
578
+ </next>
579
+ </block>
580
+ </next>
581
+ </block>
582
+ </next>
583
+ </block>
584
+ </next>
585
+ </block>
586
+ </next>
587
+ </block>
588
+ </statement>
589
+ </block>
590
+ <block type="procedures_defnoreturn" x="13" y="2013">
591
+ <field name="NAME">test trig</field>
592
+ <comment pinned="false" h="80" w="160">Tests the "trig" block.</comment>
593
+ <statement name="STACK">
594
+ <block type="unittest_assertequals" inline="false">
595
+ <value name="MESSAGE">
596
+ <block type="text">
597
+ <field name="TEXT">sin</field>
598
+ </block>
599
+ </value>
600
+ <value name="ACTUAL">
601
+ <block type="math_trig" inline="false">
602
+ <field name="OP">SIN</field>
603
+ <value name="NUM">
604
+ <block type="math_number">
605
+ <field name="NUM">90</field>
606
+ </block>
607
+ </value>
608
+ </block>
609
+ </value>
610
+ <value name="EXPECTED">
611
+ <block type="math_number">
612
+ <field name="NUM">1</field>
613
+ </block>
614
+ </value>
615
+ <next>
616
+ <block type="unittest_assertequals" inline="false">
617
+ <value name="MESSAGE">
618
+ <block type="text">
619
+ <field name="TEXT">cos</field>
620
+ </block>
621
+ </value>
622
+ <value name="ACTUAL">
623
+ <block type="math_trig" inline="false">
624
+ <field name="OP">COS</field>
625
+ <value name="NUM">
626
+ <block type="math_number">
627
+ <field name="NUM">180</field>
628
+ </block>
629
+ </value>
630
+ </block>
631
+ </value>
632
+ <value name="EXPECTED">
633
+ <block type="math_number">
634
+ <field name="NUM">-1</field>
635
+ </block>
636
+ </value>
637
+ <next>
638
+ <block type="unittest_assertequals" inline="false">
639
+ <value name="MESSAGE">
640
+ <block type="text">
641
+ <field name="TEXT">tan</field>
642
+ </block>
643
+ </value>
644
+ <value name="ACTUAL">
645
+ <block type="math_trig" inline="false">
646
+ <field name="OP">TAN</field>
647
+ <value name="NUM">
648
+ <block type="math_number">
649
+ <field name="NUM">0</field>
650
+ </block>
651
+ </value>
652
+ </block>
653
+ </value>
654
+ <value name="EXPECTED">
655
+ <block type="math_number">
656
+ <field name="NUM">0</field>
657
+ </block>
658
+ </value>
659
+ <next>
660
+ <block type="unittest_assertequals" inline="false">
661
+ <value name="MESSAGE">
662
+ <block type="text">
663
+ <field name="TEXT">asin</field>
664
+ </block>
665
+ </value>
666
+ <value name="ACTUAL">
667
+ <block type="math_trig" inline="false">
668
+ <field name="OP">ASIN</field>
669
+ <value name="NUM">
670
+ <block type="math_number">
671
+ <field name="NUM">-1</field>
672
+ </block>
673
+ </value>
674
+ </block>
675
+ </value>
676
+ <value name="EXPECTED">
677
+ <block type="math_number">
678
+ <field name="NUM">-90</field>
679
+ </block>
680
+ </value>
681
+ <next>
682
+ <block type="unittest_assertequals" inline="false">
683
+ <value name="MESSAGE">
684
+ <block type="text">
685
+ <field name="TEXT">acos</field>
686
+ </block>
687
+ </value>
688
+ <value name="ACTUAL">
689
+ <block type="math_trig" inline="false">
690
+ <field name="OP">ACOS</field>
691
+ <value name="NUM">
692
+ <block type="math_number">
693
+ <field name="NUM">1</field>
694
+ </block>
695
+ </value>
696
+ </block>
697
+ </value>
698
+ <value name="EXPECTED">
699
+ <block type="math_number">
700
+ <field name="NUM">0</field>
701
+ </block>
702
+ </value>
703
+ <next>
704
+ <block type="unittest_assertequals" inline="false">
705
+ <value name="MESSAGE">
706
+ <block type="text">
707
+ <field name="TEXT">atan</field>
708
+ </block>
709
+ </value>
710
+ <value name="ACTUAL">
711
+ <block type="math_trig" inline="false">
712
+ <field name="OP">ATAN</field>
713
+ <value name="NUM">
714
+ <block type="math_number">
715
+ <field name="NUM">1</field>
716
+ </block>
717
+ </value>
718
+ </block>
719
+ </value>
720
+ <value name="EXPECTED">
721
+ <block type="math_number">
722
+ <field name="NUM">45</field>
723
+ </block>
724
+ </value>
725
+ </block>
726
+ </next>
727
+ </block>
728
+ </next>
729
+ </block>
730
+ </next>
731
+ </block>
732
+ </next>
733
+ </block>
734
+ </next>
735
+ </block>
736
+ </statement>
737
+ </block>
738
+ <block type="procedures_defnoreturn" x="13" y="2538">
739
+ <field name="NAME">test constant</field>
740
+ <comment pinned="false" h="80" w="160">Tests the "constant" blocks.</comment>
741
+ <statement name="STACK">
742
+ <block type="unittest_assertequals" inline="false">
743
+ <value name="MESSAGE">
744
+ <block type="text">
745
+ <field name="TEXT">const pi</field>
746
+ </block>
747
+ </value>
748
+ <value name="ACTUAL">
749
+ <block type="math_round" inline="false">
750
+ <field name="OP">ROUNDDOWN</field>
751
+ <value name="NUM">
752
+ <block type="math_arithmetic">
753
+ <field name="OP">MULTIPLY</field>
754
+ <value name="A">
755
+ <block type="math_constant">
756
+ <field name="CONSTANT">PI</field>
757
+ </block>
758
+ </value>
759
+ <value name="B">
760
+ <block type="math_number">
761
+ <field name="NUM">1000</field>
762
+ </block>
763
+ </value>
764
+ </block>
765
+ </value>
766
+ </block>
767
+ </value>
768
+ <value name="EXPECTED">
769
+ <block type="math_number">
770
+ <field name="NUM">3141</field>
771
+ </block>
772
+ </value>
773
+ <next>
774
+ <block type="unittest_assertequals" inline="false">
775
+ <value name="MESSAGE">
776
+ <block type="text">
777
+ <field name="TEXT">const e</field>
778
+ </block>
779
+ </value>
780
+ <value name="ACTUAL">
781
+ <block type="math_round" inline="false">
782
+ <field name="OP">ROUNDDOWN</field>
783
+ <value name="NUM">
784
+ <block type="math_arithmetic">
785
+ <field name="OP">MULTIPLY</field>
786
+ <value name="A">
787
+ <block type="math_constant">
788
+ <field name="CONSTANT">E</field>
789
+ </block>
790
+ </value>
791
+ <value name="B">
792
+ <block type="math_number">
793
+ <field name="NUM">1000</field>
794
+ </block>
795
+ </value>
796
+ </block>
797
+ </value>
798
+ </block>
799
+ </value>
800
+ <value name="EXPECTED">
801
+ <block type="math_number">
802
+ <field name="NUM">2718</field>
803
+ </block>
804
+ </value>
805
+ <next>
806
+ <block type="unittest_assertequals" inline="false">
807
+ <value name="MESSAGE">
808
+ <block type="text">
809
+ <field name="TEXT">const golden</field>
810
+ </block>
811
+ </value>
812
+ <value name="ACTUAL">
813
+ <block type="math_round" inline="false">
814
+ <field name="OP">ROUNDDOWN</field>
815
+ <value name="NUM">
816
+ <block type="math_arithmetic">
817
+ <field name="OP">MULTIPLY</field>
818
+ <value name="A">
819
+ <block type="math_constant">
820
+ <field name="CONSTANT">GOLDEN_RATIO</field>
821
+ </block>
822
+ </value>
823
+ <value name="B">
824
+ <block type="math_number">
825
+ <field name="NUM">1000</field>
826
+ </block>
827
+ </value>
828
+ </block>
829
+ </value>
830
+ </block>
831
+ </value>
832
+ <value name="EXPECTED">
833
+ <block type="math_number">
834
+ <field name="NUM">1618</field>
835
+ </block>
836
+ </value>
837
+ <next>
838
+ <block type="unittest_assertequals" inline="false">
839
+ <value name="MESSAGE">
840
+ <block type="text">
841
+ <field name="TEXT">const sqrt 2</field>
842
+ </block>
843
+ </value>
844
+ <value name="ACTUAL">
845
+ <block type="math_round" inline="false">
846
+ <field name="OP">ROUNDDOWN</field>
847
+ <value name="NUM">
848
+ <block type="math_arithmetic">
849
+ <field name="OP">MULTIPLY</field>
850
+ <value name="A">
851
+ <block type="math_constant">
852
+ <field name="CONSTANT">SQRT2</field>
853
+ </block>
854
+ </value>
855
+ <value name="B">
856
+ <block type="math_number">
857
+ <field name="NUM">1000</field>
858
+ </block>
859
+ </value>
860
+ </block>
861
+ </value>
862
+ </block>
863
+ </value>
864
+ <value name="EXPECTED">
865
+ <block type="math_number">
866
+ <field name="NUM">1414</field>
867
+ </block>
868
+ </value>
869
+ <next>
870
+ <block type="unittest_assertequals" inline="false">
871
+ <value name="MESSAGE">
872
+ <block type="text">
873
+ <field name="TEXT">const sqrt 0.5</field>
874
+ </block>
875
+ </value>
876
+ <value name="ACTUAL">
877
+ <block type="math_round" inline="false">
878
+ <field name="OP">ROUNDDOWN</field>
879
+ <value name="NUM">
880
+ <block type="math_arithmetic">
881
+ <field name="OP">MULTIPLY</field>
882
+ <value name="A">
883
+ <block type="math_constant">
884
+ <field name="CONSTANT">SQRT1_2</field>
885
+ </block>
886
+ </value>
887
+ <value name="B">
888
+ <block type="math_number">
889
+ <field name="NUM">1000</field>
890
+ </block>
891
+ </value>
892
+ </block>
893
+ </value>
894
+ </block>
895
+ </value>
896
+ <value name="EXPECTED">
897
+ <block type="math_number">
898
+ <field name="NUM">707</field>
899
+ </block>
900
+ </value>
901
+ <next>
902
+ <block type="unittest_assertvalue" inline="false">
903
+ <field name="EXPECTED">TRUE</field>
904
+ <value name="MESSAGE">
905
+ <block type="text">
906
+ <field name="TEXT">const infinity</field>
907
+ </block>
908
+ </value>
909
+ <value name="ACTUAL">
910
+ <block type="logic_compare">
911
+ <field name="OP">LT</field>
912
+ <value name="A">
913
+ <block type="math_number">
914
+ <field name="NUM">9999</field>
915
+ </block>
916
+ </value>
917
+ <value name="B">
918
+ <block type="math_constant">
919
+ <field name="CONSTANT">INFINITY</field>
920
+ </block>
921
+ </value>
922
+ </block>
923
+ </value>
924
+ </block>
925
+ </next>
926
+ </block>
927
+ </next>
928
+ </block>
929
+ </next>
930
+ </block>
931
+ </next>
932
+ </block>
933
+ </next>
934
+ </block>
935
+ </statement>
936
+ </block>
937
+ <block type="procedures_defnoreturn" x="13" y="3113">
938
+ <field name="NAME">test number properties</field>
939
+ <comment pinned="false" h="80" w="160">Tests the "number property" blocks.</comment>
940
+ <statement name="STACK">
941
+ <block type="unittest_assertvalue" inline="false">
942
+ <field name="EXPECTED">TRUE</field>
943
+ <value name="MESSAGE">
944
+ <block type="text">
945
+ <field name="TEXT">even</field>
946
+ </block>
947
+ </value>
948
+ <value name="ACTUAL">
949
+ <block type="math_number_property">
950
+ <mutation divisor_input="false"></mutation>
951
+ <field name="PROPERTY">EVEN</field>
952
+ <value name="NUMBER_TO_CHECK">
953
+ <block type="math_number">
954
+ <field name="NUM">42</field>
955
+ </block>
956
+ </value>
957
+ </block>
958
+ </value>
959
+ <next>
960
+ <block type="unittest_assertvalue" inline="false">
961
+ <field name="EXPECTED">FALSE</field>
962
+ <value name="MESSAGE">
963
+ <block type="text">
964
+ <field name="TEXT">odd</field>
965
+ </block>
966
+ </value>
967
+ <value name="ACTUAL">
968
+ <block type="math_number_property">
969
+ <mutation divisor_input="false"></mutation>
970
+ <field name="PROPERTY">ODD</field>
971
+ <value name="NUMBER_TO_CHECK">
972
+ <block type="math_number">
973
+ <field name="NUM">42.1</field>
974
+ </block>
975
+ </value>
976
+ </block>
977
+ </value>
978
+ <next>
979
+ <block type="unittest_assertvalue" inline="false">
980
+ <field name="EXPECTED">TRUE</field>
981
+ <value name="MESSAGE">
982
+ <block type="text">
983
+ <field name="TEXT">prime 5</field>
984
+ </block>
985
+ </value>
986
+ <value name="ACTUAL">
987
+ <block type="math_number_property">
988
+ <mutation divisor_input="false"></mutation>
989
+ <field name="PROPERTY">PRIME</field>
990
+ <value name="NUMBER_TO_CHECK">
991
+ <block type="math_number">
992
+ <field name="NUM">5</field>
993
+ </block>
994
+ </value>
995
+ </block>
996
+ </value>
997
+ <next>
998
+ <block type="unittest_assertvalue" inline="false">
999
+ <field name="EXPECTED">TRUE</field>
1000
+ <value name="MESSAGE">
1001
+ <block type="text">
1002
+ <field name="TEXT">prime 5 + 2 (extra parentheses)</field>
1003
+ </block>
1004
+ </value>
1005
+ <value name="ACTUAL">
1006
+ <block type="math_number_property">
1007
+ <mutation divisor_input="false"></mutation>
1008
+ <field name="PROPERTY">PRIME</field>
1009
+ <value name="NUMBER_TO_CHECK">
1010
+ <block type="math_arithmetic">
1011
+ <field name="OP">ADD</field>
1012
+ <value name="A">
1013
+ <block type="math_number">
1014
+ <field name="NUM">5</field>
1015
+ </block>
1016
+ </value>
1017
+ <value name="B">
1018
+ <block type="math_number">
1019
+ <field name="NUM">2</field>
1020
+ </block>
1021
+ </value>
1022
+ </block>
1023
+ </value>
1024
+ </block>
1025
+ </value>
1026
+ <next>
1027
+ <block type="unittest_assertvalue" inline="false">
1028
+ <field name="EXPECTED">FALSE</field>
1029
+ <value name="MESSAGE">
1030
+ <block type="text">
1031
+ <field name="TEXT">prime 25</field>
1032
+ </block>
1033
+ </value>
1034
+ <value name="ACTUAL">
1035
+ <block type="math_number_property">
1036
+ <mutation divisor_input="false"></mutation>
1037
+ <field name="PROPERTY">PRIME</field>
1038
+ <value name="NUMBER_TO_CHECK">
1039
+ <block type="math_number">
1040
+ <field name="NUM">25</field>
1041
+ </block>
1042
+ </value>
1043
+ </block>
1044
+ </value>
1045
+ <next>
1046
+ <block type="unittest_assertvalue" inline="false">
1047
+ <field name="EXPECTED">FALSE</field>
1048
+ <value name="MESSAGE">
1049
+ <block type="text">
1050
+ <field name="TEXT">prime negative</field>
1051
+ </block>
1052
+ </value>
1053
+ <value name="ACTUAL">
1054
+ <block type="math_number_property">
1055
+ <mutation divisor_input="false"></mutation>
1056
+ <field name="PROPERTY">PRIME</field>
1057
+ <value name="NUMBER_TO_CHECK">
1058
+ <block type="math_number">
1059
+ <field name="NUM">-31.1</field>
1060
+ </block>
1061
+ </value>
1062
+ </block>
1063
+ </value>
1064
+ <next>
1065
+ <block type="unittest_assertvalue" inline="false">
1066
+ <field name="EXPECTED">FALSE</field>
1067
+ <value name="MESSAGE">
1068
+ <block type="text">
1069
+ <field name="TEXT">whole</field>
1070
+ </block>
1071
+ </value>
1072
+ <value name="ACTUAL">
1073
+ <block type="math_number_property">
1074
+ <mutation divisor_input="false"></mutation>
1075
+ <field name="PROPERTY">WHOLE</field>
1076
+ <value name="NUMBER_TO_CHECK">
1077
+ <block type="math_constant">
1078
+ <field name="CONSTANT">PI</field>
1079
+ </block>
1080
+ </value>
1081
+ </block>
1082
+ </value>
1083
+ <next>
1084
+ <block type="unittest_assertvalue" inline="false">
1085
+ <field name="EXPECTED">TRUE</field>
1086
+ <value name="MESSAGE">
1087
+ <block type="text">
1088
+ <field name="TEXT">positive</field>
1089
+ </block>
1090
+ </value>
1091
+ <value name="ACTUAL">
1092
+ <block type="math_number_property">
1093
+ <mutation divisor_input="false"></mutation>
1094
+ <field name="PROPERTY">POSITIVE</field>
1095
+ <value name="NUMBER_TO_CHECK">
1096
+ <block type="math_constant">
1097
+ <field name="CONSTANT">INFINITY</field>
1098
+ </block>
1099
+ </value>
1100
+ </block>
1101
+ </value>
1102
+ <next>
1103
+ <block type="unittest_assertvalue" inline="false">
1104
+ <field name="EXPECTED">TRUE</field>
1105
+ <value name="MESSAGE">
1106
+ <block type="text">
1107
+ <field name="TEXT">5 + 2 is positive (extra parentheses)</field>
1108
+ </block>
1109
+ </value>
1110
+ <value name="ACTUAL">
1111
+ <block type="math_number_property">
1112
+ <mutation divisor_input="false"></mutation>
1113
+ <field name="PROPERTY">POSITIVE</field>
1114
+ <value name="NUMBER_TO_CHECK">
1115
+ <block type="math_arithmetic">
1116
+ <field name="OP">ADD</field>
1117
+ <value name="A">
1118
+ <block type="math_number">
1119
+ <field name="NUM">5</field>
1120
+ </block>
1121
+ </value>
1122
+ <value name="B">
1123
+ <block type="math_number">
1124
+ <field name="NUM">2</field>
1125
+ </block>
1126
+ </value>
1127
+ </block>
1128
+ </value>
1129
+ </block>
1130
+ </value>
1131
+ <next>
1132
+ <block type="unittest_assertvalue" inline="false">
1133
+ <field name="EXPECTED">TRUE</field>
1134
+ <value name="MESSAGE">
1135
+ <block type="text">
1136
+ <field name="TEXT">negative</field>
1137
+ </block>
1138
+ </value>
1139
+ <value name="ACTUAL">
1140
+ <block type="math_number_property">
1141
+ <mutation divisor_input="false"></mutation>
1142
+ <field name="PROPERTY">NEGATIVE</field>
1143
+ <value name="NUMBER_TO_CHECK">
1144
+ <block type="math_number">
1145
+ <field name="NUM">-42</field>
1146
+ </block>
1147
+ </value>
1148
+ </block>
1149
+ </value>
1150
+ <next>
1151
+ <block type="unittest_assertvalue" inline="false">
1152
+ <field name="EXPECTED">FALSE</field>
1153
+ <value name="MESSAGE">
1154
+ <block type="text">
1155
+ <field name="TEXT">3 + 2 is negative (extra parentheses)</field>
1156
+ </block>
1157
+ </value>
1158
+ <value name="ACTUAL">
1159
+ <block type="math_number_property">
1160
+ <mutation divisor_input="false"></mutation>
1161
+ <field name="PROPERTY">NEGATIVE</field>
1162
+ <value name="NUMBER_TO_CHECK">
1163
+ <block type="math_arithmetic">
1164
+ <field name="OP">ADD</field>
1165
+ <value name="A">
1166
+ <block type="math_number">
1167
+ <field name="NUM">3</field>
1168
+ </block>
1169
+ </value>
1170
+ <value name="B">
1171
+ <block type="math_number">
1172
+ <field name="NUM">2</field>
1173
+ </block>
1174
+ </value>
1175
+ </block>
1176
+ </value>
1177
+ </block>
1178
+ </value>
1179
+ <next>
1180
+ <block type="unittest_assertvalue" inline="false">
1181
+ <field name="EXPECTED">TRUE</field>
1182
+ <value name="MESSAGE">
1183
+ <block type="text">
1184
+ <field name="TEXT">divisible</field>
1185
+ </block>
1186
+ </value>
1187
+ <value name="ACTUAL">
1188
+ <block type="math_number_property">
1189
+ <mutation divisor_input="true"></mutation>
1190
+ <field name="PROPERTY">DIVISIBLE_BY</field>
1191
+ <value name="NUMBER_TO_CHECK">
1192
+ <block type="math_number">
1193
+ <field name="NUM">42</field>
1194
+ </block>
1195
+ </value>
1196
+ <value name="DIVISOR">
1197
+ <block type="math_number">
1198
+ <field name="NUM">2</field>
1199
+ </block>
1200
+ </value>
1201
+ </block>
1202
+ </value>
1203
+ <next>
1204
+ <block type="unittest_assertvalue">
1205
+ <field name="EXPECTED">TRUE</field>
1206
+ <value name="MESSAGE">
1207
+ <block type="text">
1208
+ <field name="TEXT">divisible by 0</field>
1209
+ </block>
1210
+ </value>
1211
+ <value name="ACTUAL">
1212
+ <block type="logic_negate">
1213
+ <value name="BOOL">
1214
+ <block type="math_number_property">
1215
+ <mutation divisor_input="true"></mutation>
1216
+ <field name="PROPERTY">DIVISIBLE_BY</field>
1217
+ <value name="NUMBER_TO_CHECK">
1218
+ <block type="math_number">
1219
+ <field name="NUM">42</field>
1220
+ </block>
1221
+ </value>
1222
+ <value name="DIVISOR">
1223
+ <block type="math_number">
1224
+ <field name="NUM">0</field>
1225
+ </block>
1226
+ </value>
1227
+ </block>
1228
+ </value>
1229
+ </block>
1230
+ </value>
1231
+ </block>
1232
+ </next>
1233
+ </block>
1234
+ </next>
1235
+ </block>
1236
+ </next>
1237
+ </block>
1238
+ </next>
1239
+ </block>
1240
+ </next>
1241
+ </block>
1242
+ </next>
1243
+ </block>
1244
+ </next>
1245
+ </block>
1246
+ </next>
1247
+ </block>
1248
+ </next>
1249
+ </block>
1250
+ </next>
1251
+ </block>
1252
+ </next>
1253
+ </block>
1254
+ </next>
1255
+ </block>
1256
+ </statement>
1257
+ </block>
1258
+ <block type="procedures_defnoreturn" x="48" y="3799">
1259
+ <field name="NAME">test round</field>
1260
+ <comment pinned="false" h="80" w="160">Tests the "round" block.</comment>
1261
+ <statement name="STACK">
1262
+ <block type="unittest_assertequals" inline="false">
1263
+ <value name="MESSAGE">
1264
+ <block type="text">
1265
+ <field name="TEXT">round</field>
1266
+ </block>
1267
+ </value>
1268
+ <value name="ACTUAL">
1269
+ <block type="math_round" inline="false">
1270
+ <field name="OP">ROUND</field>
1271
+ <value name="NUM">
1272
+ <block type="math_number">
1273
+ <field name="NUM">42.42</field>
1274
+ </block>
1275
+ </value>
1276
+ </block>
1277
+ </value>
1278
+ <value name="EXPECTED">
1279
+ <block type="math_number">
1280
+ <field name="NUM">42</field>
1281
+ </block>
1282
+ </value>
1283
+ <next>
1284
+ <block type="unittest_assertequals" inline="false">
1285
+ <value name="MESSAGE">
1286
+ <block type="text">
1287
+ <field name="TEXT">round up</field>
1288
+ </block>
1289
+ </value>
1290
+ <value name="ACTUAL">
1291
+ <block type="math_round" inline="false">
1292
+ <field name="OP">ROUNDUP</field>
1293
+ <value name="NUM">
1294
+ <block type="math_number">
1295
+ <field name="NUM">-42.42</field>
1296
+ </block>
1297
+ </value>
1298
+ </block>
1299
+ </value>
1300
+ <value name="EXPECTED">
1301
+ <block type="math_number">
1302
+ <field name="NUM">-42</field>
1303
+ </block>
1304
+ </value>
1305
+ <next>
1306
+ <block type="unittest_assertequals" inline="false">
1307
+ <value name="MESSAGE">
1308
+ <block type="text">
1309
+ <field name="TEXT">round down</field>
1310
+ </block>
1311
+ </value>
1312
+ <value name="ACTUAL">
1313
+ <block type="math_round" inline="false">
1314
+ <field name="OP">ROUNDDOWN</field>
1315
+ <value name="NUM">
1316
+ <block type="math_number">
1317
+ <field name="NUM">42.42</field>
1318
+ </block>
1319
+ </value>
1320
+ </block>
1321
+ </value>
1322
+ <value name="EXPECTED">
1323
+ <block type="math_number">
1324
+ <field name="NUM">42</field>
1325
+ </block>
1326
+ </value>
1327
+ </block>
1328
+ </next>
1329
+ </block>
1330
+ </next>
1331
+ </block>
1332
+ </statement>
1333
+ </block>
1334
+ <block type="procedures_defnoreturn" x="46" y="4064">
1335
+ <field name="NAME">test change</field>
1336
+ <comment pinned="false" h="80" w="160">Tests the "change" block.</comment>
1337
+ <statement name="STACK">
1338
+ <block type="variables_set" inline="false">
1339
+ <field name="VAR">varToChange</field>
1340
+ <value name="VALUE">
1341
+ <block type="math_number">
1342
+ <field name="NUM">100</field>
1343
+ </block>
1344
+ </value>
1345
+ <next>
1346
+ <block type="math_change" inline="false">
1347
+ <field name="VAR">varToChange</field>
1348
+ <value name="DELTA">
1349
+ <block type="math_number">
1350
+ <field name="NUM">42</field>
1351
+ </block>
1352
+ </value>
1353
+ <next>
1354
+ <block type="unittest_assertequals" inline="false">
1355
+ <value name="MESSAGE">
1356
+ <block type="text">
1357
+ <field name="TEXT">change</field>
1358
+ </block>
1359
+ </value>
1360
+ <value name="ACTUAL">
1361
+ <block type="variables_get">
1362
+ <field name="VAR">varToChange</field>
1363
+ </block>
1364
+ </value>
1365
+ <value name="EXPECTED">
1366
+ <block type="math_number">
1367
+ <field name="NUM">142</field>
1368
+ </block>
1369
+ </value>
1370
+ </block>
1371
+ </next>
1372
+ </block>
1373
+ </next>
1374
+ </block>
1375
+ </statement>
1376
+ </block>
1377
+ <block type="procedures_defnoreturn" x="13" y="4238">
1378
+ <field name="NAME">test operations on list</field>
1379
+ <comment pinned="false" h="80" w="160">Tests the "list operation" blocks.</comment>
1380
+ <statement name="STACK">
1381
+ <block type="unittest_assertequals" inline="false">
1382
+ <value name="MESSAGE">
1383
+ <block type="text">
1384
+ <field name="TEXT">sum</field>
1385
+ </block>
1386
+ </value>
1387
+ <value name="ACTUAL">
1388
+ <block type="math_on_list" inline="false">
1389
+ <mutation op="SUM"></mutation>
1390
+ <field name="OP">SUM</field>
1391
+ <value name="LIST">
1392
+ <block type="lists_create_with" inline="true">
1393
+ <mutation items="3"></mutation>
1394
+ <value name="ADD0">
1395
+ <block type="math_number">
1396
+ <field name="NUM">3</field>
1397
+ </block>
1398
+ </value>
1399
+ <value name="ADD1">
1400
+ <block type="math_number">
1401
+ <field name="NUM">4</field>
1402
+ </block>
1403
+ </value>
1404
+ <value name="ADD2">
1405
+ <block type="math_number">
1406
+ <field name="NUM">5</field>
1407
+ </block>
1408
+ </value>
1409
+ </block>
1410
+ </value>
1411
+ </block>
1412
+ </value>
1413
+ <value name="EXPECTED">
1414
+ <block type="math_number">
1415
+ <field name="NUM">12</field>
1416
+ </block>
1417
+ </value>
1418
+ <next>
1419
+ <block type="unittest_assertequals" inline="false">
1420
+ <value name="MESSAGE">
1421
+ <block type="text">
1422
+ <field name="TEXT">min</field>
1423
+ </block>
1424
+ </value>
1425
+ <value name="ACTUAL">
1426
+ <block type="math_on_list" inline="false">
1427
+ <mutation op="MIN"></mutation>
1428
+ <field name="OP">MIN</field>
1429
+ <value name="LIST">
1430
+ <block type="lists_create_with" inline="true">
1431
+ <mutation items="3"></mutation>
1432
+ <value name="ADD0">
1433
+ <block type="math_number">
1434
+ <field name="NUM">3</field>
1435
+ </block>
1436
+ </value>
1437
+ <value name="ADD1">
1438
+ <block type="math_number">
1439
+ <field name="NUM">4</field>
1440
+ </block>
1441
+ </value>
1442
+ <value name="ADD2">
1443
+ <block type="math_number">
1444
+ <field name="NUM">5</field>
1445
+ </block>
1446
+ </value>
1447
+ </block>
1448
+ </value>
1449
+ </block>
1450
+ </value>
1451
+ <value name="EXPECTED">
1452
+ <block type="math_number">
1453
+ <field name="NUM">3</field>
1454
+ </block>
1455
+ </value>
1456
+ <next>
1457
+ <block type="unittest_assertequals" inline="false">
1458
+ <value name="MESSAGE">
1459
+ <block type="text">
1460
+ <field name="TEXT">max</field>
1461
+ </block>
1462
+ </value>
1463
+ <value name="ACTUAL">
1464
+ <block type="math_on_list" inline="false">
1465
+ <mutation op="MAX"></mutation>
1466
+ <field name="OP">MAX</field>
1467
+ <value name="LIST">
1468
+ <block type="lists_create_with" inline="true">
1469
+ <mutation items="3"></mutation>
1470
+ <value name="ADD0">
1471
+ <block type="math_number">
1472
+ <field name="NUM">3</field>
1473
+ </block>
1474
+ </value>
1475
+ <value name="ADD1">
1476
+ <block type="math_number">
1477
+ <field name="NUM">4</field>
1478
+ </block>
1479
+ </value>
1480
+ <value name="ADD2">
1481
+ <block type="math_number">
1482
+ <field name="NUM">5</field>
1483
+ </block>
1484
+ </value>
1485
+ </block>
1486
+ </value>
1487
+ </block>
1488
+ </value>
1489
+ <value name="EXPECTED">
1490
+ <block type="math_number">
1491
+ <field name="NUM">5</field>
1492
+ </block>
1493
+ </value>
1494
+ <next>
1495
+ <block type="unittest_assertequals" inline="false">
1496
+ <value name="MESSAGE">
1497
+ <block type="text">
1498
+ <field name="TEXT">average</field>
1499
+ </block>
1500
+ </value>
1501
+ <value name="ACTUAL">
1502
+ <block type="math_on_list" inline="false">
1503
+ <mutation op="AVERAGE"></mutation>
1504
+ <field name="OP">AVERAGE</field>
1505
+ <value name="LIST">
1506
+ <block type="lists_create_with" inline="true">
1507
+ <mutation items="3"></mutation>
1508
+ <value name="ADD0">
1509
+ <block type="math_number">
1510
+ <field name="NUM">3</field>
1511
+ </block>
1512
+ </value>
1513
+ <value name="ADD1">
1514
+ <block type="math_number">
1515
+ <field name="NUM">4</field>
1516
+ </block>
1517
+ </value>
1518
+ <value name="ADD2">
1519
+ <block type="math_number">
1520
+ <field name="NUM">5</field>
1521
+ </block>
1522
+ </value>
1523
+ </block>
1524
+ </value>
1525
+ </block>
1526
+ </value>
1527
+ <value name="EXPECTED">
1528
+ <block type="math_number">
1529
+ <field name="NUM">4</field>
1530
+ </block>
1531
+ </value>
1532
+ <next>
1533
+ <block type="unittest_assertequals" inline="false">
1534
+ <value name="MESSAGE">
1535
+ <block type="text">
1536
+ <field name="TEXT">median</field>
1537
+ </block>
1538
+ </value>
1539
+ <value name="ACTUAL">
1540
+ <block type="math_on_list" inline="false">
1541
+ <mutation op="MEDIAN"></mutation>
1542
+ <field name="OP">MEDIAN</field>
1543
+ <value name="LIST">
1544
+ <block type="lists_create_with" inline="true">
1545
+ <mutation items="4"></mutation>
1546
+ <value name="ADD0">
1547
+ <block type="math_number">
1548
+ <field name="NUM">3</field>
1549
+ </block>
1550
+ </value>
1551
+ <value name="ADD1">
1552
+ <block type="math_number">
1553
+ <field name="NUM">4</field>
1554
+ </block>
1555
+ </value>
1556
+ <value name="ADD2">
1557
+ <block type="math_number">
1558
+ <field name="NUM">5</field>
1559
+ </block>
1560
+ </value>
1561
+ <value name="ADD3">
1562
+ <block type="math_number">
1563
+ <field name="NUM">1</field>
1564
+ </block>
1565
+ </value>
1566
+ </block>
1567
+ </value>
1568
+ </block>
1569
+ </value>
1570
+ <value name="EXPECTED">
1571
+ <block type="math_number">
1572
+ <field name="NUM">3.5</field>
1573
+ </block>
1574
+ </value>
1575
+ <next>
1576
+ <block type="unittest_assertequals">
1577
+ <value name="MESSAGE">
1578
+ <block type="text">
1579
+ <field name="TEXT">modes</field>
1580
+ </block>
1581
+ </value>
1582
+ <value name="ACTUAL">
1583
+ <block type="math_on_list" inline="false">
1584
+ <mutation op="MODE"></mutation>
1585
+ <field name="OP">MODE</field>
1586
+ <value name="LIST">
1587
+ <block type="lists_create_with" inline="true">
1588
+ <mutation items="3"></mutation>
1589
+ <value name="ADD0">
1590
+ <block type="math_number">
1591
+ <field name="NUM">3</field>
1592
+ </block>
1593
+ </value>
1594
+ <value name="ADD1">
1595
+ <block type="math_number">
1596
+ <field name="NUM">4</field>
1597
+ </block>
1598
+ </value>
1599
+ <value name="ADD2">
1600
+ <block type="math_number">
1601
+ <field name="NUM">3</field>
1602
+ </block>
1603
+ </value>
1604
+ </block>
1605
+ </value>
1606
+ </block>
1607
+ </value>
1608
+ <value name="EXPECTED">
1609
+ <block type="lists_create_with" inline="true">
1610
+ <mutation items="1"></mutation>
1611
+ <value name="ADD0">
1612
+ <block type="math_number">
1613
+ <field name="NUM">3</field>
1614
+ </block>
1615
+ </value>
1616
+ </block>
1617
+ </value>
1618
+ <next>
1619
+ <block type="unittest_assertequals">
1620
+ <value name="MESSAGE">
1621
+ <block type="text">
1622
+ <field name="TEXT">modes multiple</field>
1623
+ </block>
1624
+ </value>
1625
+ <value name="ACTUAL">
1626
+ <block type="math_on_list" inline="false">
1627
+ <mutation op="MODE"></mutation>
1628
+ <field name="OP">MODE</field>
1629
+ <value name="LIST">
1630
+ <block type="lists_create_with" inline="true">
1631
+ <mutation items="5"></mutation>
1632
+ <value name="ADD0">
1633
+ <block type="math_number">
1634
+ <field name="NUM">3</field>
1635
+ </block>
1636
+ </value>
1637
+ <value name="ADD1">
1638
+ <block type="math_number">
1639
+ <field name="NUM">4</field>
1640
+ </block>
1641
+ </value>
1642
+ <value name="ADD2">
1643
+ <block type="math_number">
1644
+ <field name="NUM">3</field>
1645
+ </block>
1646
+ </value>
1647
+ <value name="ADD3">
1648
+ <block type="math_number">
1649
+ <field name="NUM">1</field>
1650
+ </block>
1651
+ </value>
1652
+ <value name="ADD4">
1653
+ <block type="math_number">
1654
+ <field name="NUM">4</field>
1655
+ </block>
1656
+ </value>
1657
+ </block>
1658
+ </value>
1659
+ </block>
1660
+ </value>
1661
+ <value name="EXPECTED">
1662
+ <block type="lists_create_with" inline="true">
1663
+ <mutation items="2"></mutation>
1664
+ <value name="ADD0">
1665
+ <block type="math_number">
1666
+ <field name="NUM">3</field>
1667
+ </block>
1668
+ </value>
1669
+ <value name="ADD1">
1670
+ <block type="math_number">
1671
+ <field name="NUM">4</field>
1672
+ </block>
1673
+ </value>
1674
+ </block>
1675
+ </value>
1676
+ <next>
1677
+ <block type="unittest_assertequals" inline="false">
1678
+ <value name="MESSAGE">
1679
+ <block type="text">
1680
+ <field name="TEXT">standard dev</field>
1681
+ </block>
1682
+ </value>
1683
+ <value name="ACTUAL">
1684
+ <block type="math_on_list" inline="false">
1685
+ <mutation op="STD_DEV"></mutation>
1686
+ <field name="OP">STD_DEV</field>
1687
+ <value name="LIST">
1688
+ <block type="lists_create_with" inline="true">
1689
+ <mutation items="3"></mutation>
1690
+ <value name="ADD0">
1691
+ <block type="math_number">
1692
+ <field name="NUM">3</field>
1693
+ </block>
1694
+ </value>
1695
+ <value name="ADD1">
1696
+ <block type="math_number">
1697
+ <field name="NUM">3</field>
1698
+ </block>
1699
+ </value>
1700
+ <value name="ADD2">
1701
+ <block type="math_number">
1702
+ <field name="NUM">3</field>
1703
+ </block>
1704
+ </value>
1705
+ </block>
1706
+ </value>
1707
+ </block>
1708
+ </value>
1709
+ <value name="EXPECTED">
1710
+ <block type="math_number">
1711
+ <field name="NUM">0</field>
1712
+ </block>
1713
+ </value>
1714
+ <next>
1715
+ <block type="unittest_assertvalue" inline="false">
1716
+ <field name="EXPECTED">TRUE</field>
1717
+ <value name="MESSAGE">
1718
+ <block type="text">
1719
+ <field name="TEXT">random</field>
1720
+ </block>
1721
+ </value>
1722
+ <value name="ACTUAL">
1723
+ <block type="logic_compare" inline="false">
1724
+ <field name="OP">GT</field>
1725
+ <value name="A">
1726
+ <block type="lists_indexOf" inline="false">
1727
+ <field name="END">FIRST</field>
1728
+ <value name="VALUE">
1729
+ <block type="lists_create_with" inline="true">
1730
+ <mutation items="3"></mutation>
1731
+ <value name="ADD0">
1732
+ <block type="math_number">
1733
+ <field name="NUM">3</field>
1734
+ </block>
1735
+ </value>
1736
+ <value name="ADD1">
1737
+ <block type="math_number">
1738
+ <field name="NUM">4</field>
1739
+ </block>
1740
+ </value>
1741
+ <value name="ADD2">
1742
+ <block type="math_number">
1743
+ <field name="NUM">5</field>
1744
+ </block>
1745
+ </value>
1746
+ </block>
1747
+ </value>
1748
+ <value name="FIND">
1749
+ <block type="math_on_list" inline="false">
1750
+ <mutation op="RANDOM"></mutation>
1751
+ <field name="OP">RANDOM</field>
1752
+ <value name="LIST">
1753
+ <block type="lists_create_with" inline="false">
1754
+ <mutation items="3"></mutation>
1755
+ <value name="ADD0">
1756
+ <block type="math_number">
1757
+ <field name="NUM">3</field>
1758
+ </block>
1759
+ </value>
1760
+ <value name="ADD1">
1761
+ <block type="math_number">
1762
+ <field name="NUM">4</field>
1763
+ </block>
1764
+ </value>
1765
+ <value name="ADD2">
1766
+ <block type="math_number">
1767
+ <field name="NUM">5</field>
1768
+ </block>
1769
+ </value>
1770
+ </block>
1771
+ </value>
1772
+ </block>
1773
+ </value>
1774
+ </block>
1775
+ </value>
1776
+ <value name="B">
1777
+ <block type="math_number">
1778
+ <field name="NUM">0</field>
1779
+ </block>
1780
+ </value>
1781
+ </block>
1782
+ </value>
1783
+ </block>
1784
+ </next>
1785
+ </block>
1786
+ </next>
1787
+ </block>
1788
+ </next>
1789
+ </block>
1790
+ </next>
1791
+ </block>
1792
+ </next>
1793
+ </block>
1794
+ </next>
1795
+ </block>
1796
+ </next>
1797
+ </block>
1798
+ </next>
1799
+ </block>
1800
+ </statement>
1801
+ </block>
1802
+ <block type="procedures_defnoreturn" x="13" y="5213">
1803
+ <field name="NAME">test mod</field>
1804
+ <comment pinned="false" h="80" w="160">Tests the "mod" block.</comment>
1805
+ <statement name="STACK">
1806
+ <block type="unittest_assertequals" inline="false">
1807
+ <value name="MESSAGE">
1808
+ <block type="text">
1809
+ <field name="TEXT">mod</field>
1810
+ </block>
1811
+ </value>
1812
+ <value name="ACTUAL">
1813
+ <block type="math_modulo">
1814
+ <value name="DIVIDEND">
1815
+ <block type="math_number">
1816
+ <field name="NUM">42</field>
1817
+ </block>
1818
+ </value>
1819
+ <value name="DIVISOR">
1820
+ <block type="math_number">
1821
+ <field name="NUM">5</field>
1822
+ </block>
1823
+ </value>
1824
+ </block>
1825
+ </value>
1826
+ <value name="EXPECTED">
1827
+ <block type="math_number">
1828
+ <field name="NUM">2</field>
1829
+ </block>
1830
+ </value>
1831
+ </block>
1832
+ </statement>
1833
+ </block>
1834
+ <block type="procedures_defnoreturn" x="13" y="5363">
1835
+ <field name="NAME">test constraint</field>
1836
+ <comment pinned="false" h="80" w="160">Tests the "constrain" block.</comment>
1837
+ <statement name="STACK">
1838
+ <block type="unittest_assertequals" inline="false">
1839
+ <value name="MESSAGE">
1840
+ <block type="text">
1841
+ <field name="TEXT">constraint</field>
1842
+ </block>
1843
+ </value>
1844
+ <value name="ACTUAL">
1845
+ <block type="math_constrain">
1846
+ <value name="VALUE">
1847
+ <block type="math_number">
1848
+ <field name="NUM">100</field>
1849
+ </block>
1850
+ </value>
1851
+ <value name="LOW">
1852
+ <block type="math_number">
1853
+ <field name="NUM">0</field>
1854
+ </block>
1855
+ </value>
1856
+ <value name="HIGH">
1857
+ <block type="math_number">
1858
+ <field name="NUM">42</field>
1859
+ </block>
1860
+ </value>
1861
+ </block>
1862
+ </value>
1863
+ <value name="EXPECTED">
1864
+ <block type="math_number">
1865
+ <field name="NUM">42</field>
1866
+ </block>
1867
+ </value>
1868
+ </block>
1869
+ </statement>
1870
+ </block>
1871
+ <block type="procedures_defnoreturn" x="13" y="5513">
1872
+ <field name="NAME">test random integer</field>
1873
+ <comment pinned="false" h="80" w="160">Tests the "random integer" block.</comment>
1874
+ <statement name="STACK">
1875
+ <block type="variables_set" inline="false">
1876
+ <field name="VAR">rand</field>
1877
+ <value name="VALUE">
1878
+ <block type="math_random_int">
1879
+ <value name="FROM">
1880
+ <block type="math_number">
1881
+ <field name="NUM">5</field>
1882
+ </block>
1883
+ </value>
1884
+ <value name="TO">
1885
+ <block type="math_number">
1886
+ <field name="NUM">10</field>
1887
+ </block>
1888
+ </value>
1889
+ </block>
1890
+ </value>
1891
+ <next>
1892
+ <block type="unittest_assertvalue" inline="false">
1893
+ <field name="EXPECTED">TRUE</field>
1894
+ <value name="MESSAGE">
1895
+ <block type="text">
1896
+ <field name="TEXT">randRange</field>
1897
+ </block>
1898
+ </value>
1899
+ <value name="ACTUAL">
1900
+ <block type="logic_operation">
1901
+ <field name="OP">AND</field>
1902
+ <value name="A">
1903
+ <block type="logic_compare">
1904
+ <field name="OP">GTE</field>
1905
+ <value name="A">
1906
+ <block type="variables_get">
1907
+ <field name="VAR">rand</field>
1908
+ </block>
1909
+ </value>
1910
+ <value name="B">
1911
+ <block type="math_number">
1912
+ <field name="NUM">5</field>
1913
+ </block>
1914
+ </value>
1915
+ </block>
1916
+ </value>
1917
+ <value name="B">
1918
+ <block type="logic_compare">
1919
+ <field name="OP">LTE</field>
1920
+ <value name="A">
1921
+ <block type="variables_get">
1922
+ <field name="VAR">rand</field>
1923
+ </block>
1924
+ </value>
1925
+ <value name="B">
1926
+ <block type="math_number">
1927
+ <field name="NUM">10</field>
1928
+ </block>
1929
+ </value>
1930
+ </block>
1931
+ </value>
1932
+ </block>
1933
+ </value>
1934
+ <next>
1935
+ <block type="unittest_assertvalue" inline="false">
1936
+ <field name="EXPECTED">TRUE</field>
1937
+ <value name="MESSAGE">
1938
+ <block type="text">
1939
+ <field name="TEXT">randInteger</field>
1940
+ </block>
1941
+ </value>
1942
+ <value name="ACTUAL">
1943
+ <block type="math_number_property">
1944
+ <mutation divisor_input="false"></mutation>
1945
+ <field name="PROPERTY">WHOLE</field>
1946
+ <value name="NUMBER_TO_CHECK">
1947
+ <block type="variables_get">
1948
+ <field name="VAR">rand</field>
1949
+ </block>
1950
+ </value>
1951
+ </block>
1952
+ </value>
1953
+ </block>
1954
+ </next>
1955
+ </block>
1956
+ </next>
1957
+ </block>
1958
+ </statement>
1959
+ </block>
1960
+ <block type="procedures_defnoreturn" x="13" y="5763">
1961
+ <field name="NAME">test random fraction</field>
1962
+ <comment pinned="false" h="80" w="160">Tests the "random fraction" block.</comment>
1963
+ <statement name="STACK">
1964
+ <block type="variables_set" inline="false">
1965
+ <field name="VAR">rand</field>
1966
+ <value name="VALUE">
1967
+ <block type="math_random_float"></block>
1968
+ </value>
1969
+ <next>
1970
+ <block type="unittest_assertvalue" inline="false">
1971
+ <field name="EXPECTED">TRUE</field>
1972
+ <value name="MESSAGE">
1973
+ <block type="text">
1974
+ <field name="TEXT">randFloat</field>
1975
+ </block>
1976
+ </value>
1977
+ <value name="ACTUAL">
1978
+ <block type="logic_operation">
1979
+ <field name="OP">AND</field>
1980
+ <value name="A">
1981
+ <block type="logic_compare">
1982
+ <field name="OP">GTE</field>
1983
+ <value name="A">
1984
+ <block type="variables_get">
1985
+ <field name="VAR">rand</field>
1986
+ </block>
1987
+ </value>
1988
+ <value name="B">
1989
+ <block type="math_number">
1990
+ <field name="NUM">0</field>
1991
+ </block>
1992
+ </value>
1993
+ </block>
1994
+ </value>
1995
+ <value name="B">
1996
+ <block type="logic_compare">
1997
+ <field name="OP">LTE</field>
1998
+ <value name="A">
1999
+ <block type="variables_get">
2000
+ <field name="VAR">rand</field>
2001
+ </block>
2002
+ </value>
2003
+ <value name="B">
2004
+ <block type="math_number">
2005
+ <field name="NUM">1</field>
2006
+ </block>
2007
+ </value>
2008
+ </block>
2009
+ </value>
2010
+ </block>
2011
+ </value>
2012
+ </block>
2013
+ </next>
2014
+ </block>
2015
+ </statement>
2016
+ </block>
2017
+ <block type="procedures_defnoreturn" y="5938" x="13">
2018
+ <field name="NAME">test atan2</field>
2019
+ <comment w="160" h="80" pinned="false">Describe this function...</comment>
2020
+ <statement name="STACK">
2021
+ <block type="unittest_assertequals">
2022
+ <value name="MESSAGE">
2023
+ <block type="text">
2024
+ <field name="TEXT">atan2</field>
2025
+ </block>
2026
+ </value>
2027
+ <value name="ACTUAL">
2028
+ <block type="math_atan2">
2029
+ <value name="X">
2030
+ <block type="math_number">
2031
+ <field name="NUM">-5</field>
2032
+ </block>
2033
+ </value>
2034
+ <value name="Y">
2035
+ <block type="math_number">
2036
+ <field name="NUM">5</field>
2037
+ </block>
2038
+ </value>
2039
+ </block>
2040
+ </value>
2041
+ <value name="EXPECTED">
2042
+ <block type="math_number">
2043
+ <field name="NUM">135</field>
2044
+ </block>
2045
+ </value>
2046
+ <next>
2047
+ <block type="unittest_assertequals">
2048
+ <value name="MESSAGE">
2049
+ <block type="text">
2050
+ <field name="TEXT">atan2</field>
2051
+ </block>
2052
+ </value>
2053
+ <value name="ACTUAL">
2054
+ <block type="math_atan2">
2055
+ <value name="X">
2056
+ <block type="math_number">
2057
+ <field name="NUM">0</field>
2058
+ </block>
2059
+ </value>
2060
+ <value name="Y">
2061
+ <block type="math_number">
2062
+ <field name="NUM">-12</field>
2063
+ </block>
2064
+ </value>
2065
+ </block>
2066
+ </value>
2067
+ <value name="EXPECTED">
2068
+ <block type="math_number">
2069
+ <field name="NUM">-90</field>
2070
+ </block>
2071
+ </value>
2072
+ </block>
2073
+ </next>
2074
+ </block>
2075
+ </statement>
2076
+ </block>
2077
+ </xml>