nudge 0.0.2 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (883) hide show
  1. data/.gitignore +1 -0
  2. data/Rakefile +11 -7
  3. data/VERSION +1 -1
  4. data/lib/instructions/bool/bool_and.rb +19 -0
  5. data/lib/instructions/bool/bool_define.rb +6 -0
  6. data/lib/instructions/bool/bool_depth.rb +6 -0
  7. data/lib/instructions/bool/bool_duplicate.rb +6 -0
  8. data/lib/instructions/bool/bool_equal_q.rb +19 -0
  9. data/lib/instructions/bool/bool_flush.rb +6 -0
  10. data/lib/instructions/bool/bool_not.rb +18 -0
  11. data/lib/instructions/bool/bool_or.rb +19 -0
  12. data/lib/instructions/bool/bool_pop.rb +6 -0
  13. data/lib/instructions/bool/bool_random.rb +13 -0
  14. data/lib/instructions/bool/bool_rotate.rb +6 -0
  15. data/lib/instructions/bool/bool_shove.rb +6 -0
  16. data/lib/instructions/bool/bool_swap.rb +6 -0
  17. data/lib/instructions/bool/bool_xor.rb +19 -0
  18. data/lib/instructions/bool/bool_yank.rb +6 -0
  19. data/lib/instructions/bool/bool_yankdup.rb +6 -0
  20. data/lib/instructions/code/code_atom_q.rb +16 -0
  21. data/lib/instructions/code/code_backbone_points.rb +24 -0
  22. data/lib/instructions/code/code_car.rb +20 -0
  23. data/lib/instructions/code/code_cdr.rb +20 -0
  24. data/lib/instructions/code/code_concatenate.rb +31 -0
  25. data/lib/instructions/code/code_cons.rb +25 -0
  26. data/lib/instructions/code/code_container.rb +28 -0
  27. data/lib/instructions/code/code_contains_q.rb +22 -0
  28. data/lib/instructions/code/code_define.rb +21 -0
  29. data/lib/instructions/code/code_depth.rb +6 -0
  30. data/lib/instructions/code/code_discrepancy.rb +29 -0
  31. data/lib/instructions/code/code_do_count.rb +27 -0
  32. data/lib/instructions/code/code_do_range.rb +42 -0
  33. data/lib/instructions/code/code_do_times.rb +38 -0
  34. data/lib/instructions/code/code_duplicate.rb +6 -0
  35. data/lib/instructions/code/code_equal_q.rb +17 -0
  36. data/lib/instructions/code/code_execute.rb +19 -0
  37. data/lib/instructions/code/code_execute_then_pop.rb +20 -0
  38. data/lib/instructions/code/code_flush.rb +6 -0
  39. data/lib/instructions/code/code_gsub.rb +35 -0
  40. data/lib/instructions/code/code_if.rb +22 -0
  41. data/lib/instructions/code/code_instructions.rb +15 -0
  42. data/lib/instructions/code/code_list.rb +19 -0
  43. data/lib/instructions/code/code_member_q.rb +26 -0
  44. data/lib/instructions/code/code_name_lookup.rb +19 -0
  45. data/lib/instructions/code/code_nth.rb +24 -0
  46. data/lib/instructions/code/code_nth_cdr.rb +30 -0
  47. data/lib/instructions/code/code_nth_point.rb +21 -0
  48. data/lib/instructions/code/code_null_q.rb +15 -0
  49. data/lib/instructions/code/code_parses_q.rb +15 -0
  50. data/lib/instructions/code/code_points.rb +19 -0
  51. data/lib/instructions/code/code_pop.rb +6 -0
  52. data/lib/instructions/code/code_position.rb +22 -0
  53. data/lib/instructions/code/code_quote.rb +14 -0
  54. data/lib/instructions/code/code_replace_nth_point.rb +30 -0
  55. data/lib/instructions/code/code_rotate.rb +6 -0
  56. data/lib/instructions/code/code_shove.rb +6 -0
  57. data/lib/instructions/code/code_swap.rb +6 -0
  58. data/lib/instructions/code/code_yank.rb +6 -0
  59. data/lib/instructions/code/code_yankdup.rb +6 -0
  60. data/lib/instructions/conversion/bool_from_float.rb +14 -0
  61. data/lib/instructions/conversion/bool_from_int.rb +14 -0
  62. data/lib/instructions/conversion/code_from_bool.rb +16 -0
  63. data/lib/instructions/conversion/code_from_float.rb +16 -0
  64. data/lib/instructions/conversion/code_from_int.rb +17 -0
  65. data/lib/instructions/conversion/code_from_name.rb +16 -0
  66. data/lib/instructions/conversion/float_from_bool.rb +14 -0
  67. data/lib/instructions/conversion/float_from_int.rb +14 -0
  68. data/lib/instructions/conversion/int_from_bool.rb +14 -0
  69. data/lib/instructions/conversion/int_from_float.rb +14 -0
  70. data/lib/instructions/exec/exec_define.rb +6 -0
  71. data/lib/instructions/exec/exec_depth.rb +6 -0
  72. data/lib/instructions/exec/exec_do_count.rb +23 -0
  73. data/lib/instructions/exec/exec_do_range.rb +36 -0
  74. data/lib/instructions/exec/exec_do_times.rb +34 -0
  75. data/lib/instructions/exec/exec_duplicate.rb +6 -0
  76. data/lib/instructions/exec/exec_equal_q.rb +17 -0
  77. data/lib/instructions/exec/exec_flush.rb +6 -0
  78. data/lib/instructions/exec/exec_if.rb +8 -0
  79. data/lib/instructions/exec/exec_k.rb +14 -0
  80. data/lib/instructions/exec/exec_pop.rb +6 -0
  81. data/lib/instructions/exec/exec_rotate.rb +6 -0
  82. data/lib/instructions/exec/exec_s.rb +18 -0
  83. data/lib/instructions/exec/exec_shove.rb +6 -0
  84. data/lib/instructions/exec/exec_swap.rb +6 -0
  85. data/lib/instructions/exec/exec_y.rb +15 -0
  86. data/lib/instructions/exec/exec_yank.rb +6 -0
  87. data/lib/instructions/exec/exec_yankdup.rb +6 -0
  88. data/lib/instructions/float/float_abs.rb +14 -0
  89. data/lib/instructions/float/float_add.rb +15 -0
  90. data/lib/instructions/float/float_cosine.rb +14 -0
  91. data/lib/instructions/float/float_define.rb +6 -0
  92. data/lib/instructions/float/float_depth.rb +6 -0
  93. data/lib/instructions/float/float_divide.rb +20 -0
  94. data/lib/instructions/float/float_duplicate.rb +6 -0
  95. data/lib/instructions/float/float_equal_q.rb +15 -0
  96. data/lib/instructions/float/float_flush.rb +6 -0
  97. data/lib/instructions/float/float_greater_than_q.rb +15 -0
  98. data/lib/instructions/float/float_if.rb +8 -0
  99. data/lib/instructions/float/float_less_than_q.rb +15 -0
  100. data/lib/instructions/float/float_max.rb +15 -0
  101. data/lib/instructions/float/float_min.rb +15 -0
  102. data/lib/instructions/float/float_modulo.rb +20 -0
  103. data/lib/instructions/float/float_multiply.rb +15 -0
  104. data/lib/instructions/float/float_negative.rb +14 -0
  105. data/lib/instructions/float/float_pop.rb +6 -0
  106. data/lib/instructions/float/float_power.rb +20 -0
  107. data/lib/instructions/float/float_random.rb +13 -0
  108. data/lib/instructions/float/float_rotate.rb +6 -0
  109. data/lib/instructions/float/float_shove.rb +6 -0
  110. data/lib/instructions/float/float_sine.rb +14 -0
  111. data/lib/instructions/float/float_sqrt.rb +18 -0
  112. data/lib/instructions/float/float_subtract.rb +15 -0
  113. data/lib/instructions/float/float_swap.rb +6 -0
  114. data/lib/instructions/float/float_tangent.rb +14 -0
  115. data/lib/instructions/float/float_yank.rb +6 -0
  116. data/lib/instructions/float/float_yankdup.rb +6 -0
  117. data/lib/instructions/infrastructure.rb +335 -17
  118. data/lib/instructions/int/int_abs.rb +14 -0
  119. data/lib/instructions/int/int_add.rb +15 -0
  120. data/lib/instructions/int/int_define.rb +6 -0
  121. data/lib/instructions/int/int_depth.rb +6 -0
  122. data/lib/instructions/int/int_divide.rb +20 -0
  123. data/lib/instructions/int/int_duplicate.rb +6 -0
  124. data/lib/instructions/int/int_equal_q.rb +15 -0
  125. data/lib/instructions/int/int_flush.rb +6 -0
  126. data/lib/instructions/int/int_greater_than_q.rb +15 -0
  127. data/lib/instructions/int/int_if.rb +8 -0
  128. data/lib/instructions/int/int_less_than_q.rb +15 -0
  129. data/lib/instructions/int/int_max.rb +16 -0
  130. data/lib/instructions/int/int_min.rb +16 -0
  131. data/lib/instructions/int/int_modulo.rb +20 -0
  132. data/lib/instructions/int/int_multiply.rb +15 -0
  133. data/lib/instructions/int/int_negative.rb +14 -0
  134. data/lib/instructions/int/int_pop.rb +6 -0
  135. data/lib/instructions/int/int_power.rb +16 -0
  136. data/lib/instructions/int/int_random.rb +13 -0
  137. data/lib/instructions/int/int_rotate.rb +6 -0
  138. data/lib/instructions/int/int_shove.rb +6 -0
  139. data/lib/instructions/int/int_subtract.rb +16 -0
  140. data/lib/instructions/int/int_swap.rb +6 -0
  141. data/lib/instructions/int/int_yank.rb +6 -0
  142. data/lib/instructions/int/int_yankdup.rb +6 -0
  143. data/lib/instructions/name/name_depth.rb +6 -0
  144. data/lib/instructions/name/name_disable_lookup.rb +12 -0
  145. data/lib/instructions/name/name_duplicate.rb +6 -0
  146. data/lib/instructions/name/name_equal_q.rb +15 -0
  147. data/lib/instructions/name/name_flush.rb +6 -0
  148. data/lib/instructions/name/name_next.rb +14 -0
  149. data/lib/instructions/name/name_pop.rb +6 -0
  150. data/lib/instructions/name/name_random_bound.rb +14 -0
  151. data/lib/instructions/name/name_rotate.rb +6 -0
  152. data/lib/instructions/name/name_shove.rb +6 -0
  153. data/lib/instructions/name/name_swap.rb +6 -0
  154. data/lib/instructions/name/name_unbind.rb +17 -0
  155. data/lib/instructions/name/name_yank.rb +6 -0
  156. data/lib/instructions/name/name_yankdup.rb +6 -0
  157. data/lib/interpreter/grammars/nudge_codeblock.treetop +17 -0
  158. data/lib/interpreter/grammars/nudge_codeblock_helpers.rb +19 -0
  159. data/lib/interpreter/grammars/nudge_common.treetop +15 -0
  160. data/lib/interpreter/grammars/nudge_instruction.treetop +14 -0
  161. data/lib/interpreter/grammars/nudge_instruction_helpers.rb +14 -0
  162. data/lib/interpreter/grammars/nudge_reference.treetop +9 -0
  163. data/lib/interpreter/grammars/nudge_reference_helpers.rb +14 -0
  164. data/lib/interpreter/grammars/nudge_value.treetop +14 -0
  165. data/lib/interpreter/grammars/nudge_value_helpers.rb +19 -0
  166. data/lib/interpreter/interpreter.rb +74 -23
  167. data/lib/interpreter/nudge_program.rb +253 -0
  168. data/lib/interpreter/parse.tab.rb +264 -0
  169. data/lib/interpreter/programPoints.rb +119 -98
  170. data/lib/interpreter/types/codeType.rb +114 -89
  171. data/lib/interpreter/types/pushTypes.rb +33 -20
  172. data/lib/nudge.rb +25 -26
  173. data/readme.md +13 -10
  174. data/spec/fixtures/long_arithmetic.example +7 -4
  175. data/spec/instructions/bool/bool_and_spec.rb +61 -0
  176. data/spec/instructions/bool/bool_define_spec.rb +69 -0
  177. data/spec/instructions/bool/bool_depth_spec.rb +39 -0
  178. data/spec/instructions/bool/bool_equal_q_spec.rb +61 -0
  179. data/spec/instructions/bool/bool_flush_spec.rb +37 -0
  180. data/spec/instructions/bool/bool_not_spec.rb +61 -0
  181. data/spec/instructions/bool/bool_or_spec.rb +61 -0
  182. data/spec/instructions/bool/bool_random_spec.rb +39 -0
  183. data/spec/instructions/bool/bool_shove_spec.rb +69 -0
  184. data/spec/instructions/bool/bool_xor_spec.rb +61 -0
  185. data/spec/instructions/bool/bool_yank_spec.rb +71 -0
  186. data/spec/instructions/bool/bool_yankdup_spec.rb +70 -0
  187. data/spec/instructions/code/code_atom_q_spec.rb +44 -0
  188. data/spec/instructions/code/code_backbone_points_spec.rb +57 -0
  189. data/spec/instructions/code/code_car_spec.rb +50 -0
  190. data/spec/instructions/code/code_cdr_spec.rb +51 -0
  191. data/spec/instructions/code/code_concatenate_spec.rb +81 -0
  192. data/spec/instructions/code/code_cons_spec.rb +63 -0
  193. data/spec/instructions/code/code_container_spec.rb +77 -0
  194. data/spec/instructions/code/code_contains_q_spec.rb +82 -0
  195. data/spec/instructions/code/code_define_spec.rb +76 -0
  196. data/spec/instructions/code/code_discrepancy_spec.rb +81 -0
  197. data/spec/instructions/code/code_do_count_spec.rb +83 -0
  198. data/spec/instructions/code/code_do_range_spec.rb +113 -0
  199. data/spec/instructions/code/code_do_times_spec.rb +116 -0
  200. data/spec/instructions/code/code_equal_q_spec.rb +49 -0
  201. data/spec/instructions/code/code_execute_spec.rb +52 -0
  202. data/spec/instructions/code/code_execute_then_pop_spec.rb +61 -0
  203. data/spec/instructions/code/code_fromname_spec.rb +37 -0
  204. data/spec/instructions/code/code_gsub_spec.rb +112 -0
  205. data/spec/instructions/code/code_if_spec.rb +53 -0
  206. data/spec/instructions/code/code_instructions_spec.rb +42 -0
  207. data/spec/instructions/code/code_list_spec.rb +49 -0
  208. data/spec/instructions/code/code_member_q_spec.rb +77 -0
  209. data/spec/instructions/code/code_name_lookup_spec.rb +65 -0
  210. data/spec/instructions/code/code_noop_spec.rb +38 -0
  211. data/spec/instructions/code/code_nth_cdr_spec.rb +77 -0
  212. data/spec/instructions/code/code_nth_point_spec.rb +67 -0
  213. data/spec/instructions/code/code_nth_spec.rb +62 -0
  214. data/spec/instructions/code/code_null_q_spec.rb +44 -0
  215. data/spec/instructions/code/code_parses_q_spec.rb +73 -0
  216. data/spec/instructions/code/code_points_spec.rb +49 -0
  217. data/spec/instructions/code/code_position_spec.rb +74 -0
  218. data/spec/instructions/code/code_quote_spec.rb +53 -0
  219. data/spec/instructions/code/code_replace_nth_point_spec.rb +115 -0
  220. data/spec/instructions/code/code_stack_spec.rb +386 -0
  221. data/spec/instructions/exec/exec_define_spec.rb +70 -0
  222. data/spec/instructions/exec/exec_depth_spec.rb +39 -0
  223. data/spec/instructions/exec/exec_do_count_spec.rb +79 -0
  224. data/spec/instructions/exec/exec_do_range_spec.rb +98 -0
  225. data/spec/instructions/exec/exec_do_times_spec.rb +105 -0
  226. data/spec/instructions/exec/exec_duplicate_spec.rb +44 -0
  227. data/spec/instructions/exec/exec_equal_q_spec.rb +50 -0
  228. data/spec/instructions/exec/exec_flush_spec.rb +37 -0
  229. data/spec/instructions/exec/exec_if_spec.rb +51 -0
  230. data/spec/instructions/exec/exec_k_spec.rb +39 -0
  231. data/spec/instructions/exec/exec_pop_spec.rb +38 -0
  232. data/spec/instructions/exec/exec_rotate_spec.rb +40 -0
  233. data/spec/instructions/exec/exec_s_spec.rb +41 -0
  234. data/spec/instructions/exec/exec_shove_spec.rb +68 -0
  235. data/spec/instructions/exec/exec_swap_spec.rb +41 -0
  236. data/spec/instructions/exec/exec_y_spec.rb +41 -0
  237. data/spec/instructions/exec/exec_yank_spec.rb +66 -0
  238. data/spec/instructions/exec/exec_yankdup_spec.rb +69 -0
  239. data/spec/instructions/float/float_abs_spec.rb +50 -0
  240. data/spec/instructions/float/float_add_spec.rb +50 -0
  241. data/spec/instructions/float/float_cosine_spec.rb +61 -0
  242. data/spec/instructions/float/float_define_spec.rb +69 -0
  243. data/spec/instructions/float/float_depth_spec.rb +39 -0
  244. data/spec/instructions/float/float_divide_spec.rb +59 -0
  245. data/spec/instructions/float/float_equal_q_spec.rb +53 -0
  246. data/spec/instructions/float/float_flush_spec.rb +37 -0
  247. data/spec/instructions/float/float_greater_than_q_spec.rb +59 -0
  248. data/spec/instructions/float/float_if_spec.rb +49 -0
  249. data/spec/instructions/float/float_less_than_q_spec.rb +59 -0
  250. data/spec/instructions/float/float_max_spec.rb +51 -0
  251. data/spec/instructions/float/float_min_spec.rb +51 -0
  252. data/spec/instructions/float/float_modulo_spec.rb +59 -0
  253. data/spec/instructions/float/float_multiply_spec.rb +51 -0
  254. data/spec/instructions/float/float_negative_spec.rb +51 -0
  255. data/spec/instructions/float/float_power_spec.rb +59 -0
  256. data/spec/instructions/float/float_random_spec.rb +36 -0
  257. data/spec/instructions/float/float_shove_spec.rb +67 -0
  258. data/spec/instructions/float/float_sine_spec.rb +61 -0
  259. data/spec/instructions/float/float_sqrt_spec.rb +60 -0
  260. data/spec/instructions/float/float_subtract_spec.rb +51 -0
  261. data/spec/instructions/float/float_tangent_spec.rb +62 -0
  262. data/spec/instructions/float/float_yank_spec.rb +65 -0
  263. data/spec/instructions/float/float_yankdup_spec.rb +70 -0
  264. data/spec/instructions/instruction_class_spec.rb +31 -0
  265. data/spec/instructions/int/int_abs_spec.rb +61 -0
  266. data/spec/instructions/int/int_add_spec.rb +60 -0
  267. data/spec/instructions/int/int_define_spec.rb +73 -0
  268. data/spec/instructions/int/int_depth_spec.rb +37 -0
  269. data/spec/instructions/int/int_divide_spec.rb +69 -0
  270. data/spec/instructions/int/int_equal_q_spec.rb +52 -0
  271. data/spec/instructions/int/int_flush_spec.rb +37 -0
  272. data/spec/instructions/int/int_greater_than_q_spec.rb +59 -0
  273. data/spec/instructions/int/int_if_spec.rb +48 -0
  274. data/spec/instructions/int/int_less_than_q_spec.rb +59 -0
  275. data/spec/instructions/int/int_max_spec.rb +61 -0
  276. data/spec/instructions/int/int_min_spec.rb +61 -0
  277. data/spec/instructions/int/int_modulo_spec.rb +69 -0
  278. data/spec/instructions/int/int_multiply_spec.rb +61 -0
  279. data/spec/instructions/int/int_negative_spec.rb +61 -0
  280. data/spec/instructions/int/int_power_spec.rb +73 -0
  281. data/spec/instructions/int/int_random_spec.rb +36 -0
  282. data/spec/instructions/int/int_shove_spec.rb +67 -0
  283. data/spec/instructions/int/int_subtract_spec.rb +61 -0
  284. data/spec/instructions/int/int_yank_spec.rb +85 -0
  285. data/spec/instructions/int/int_yankdup_spec.rb +70 -0
  286. data/spec/instructions/name/name_depth_spec.rb +39 -0
  287. data/spec/instructions/name/name_disable_lookup_spec.rb +47 -0
  288. data/spec/instructions/name/name_equal_q_spec.rb +38 -0
  289. data/spec/instructions/name/name_flush_spec.rb +37 -0
  290. data/spec/instructions/name/name_next_spec.rb +39 -0
  291. data/spec/instructions/name/name_random_bound_spec.rb +57 -0
  292. data/spec/instructions/name/name_shove_spec.rb +67 -0
  293. data/spec/instructions/name/name_unbind_spec.rb +62 -0
  294. data/spec/instructions/name/name_yank_spec.rb +65 -0
  295. data/spec/instructions/name/name_yankdup_spec.rb +69 -0
  296. data/spec/instructions/split_these/bool_stack_spec.rb +95 -0
  297. data/spec/instructions/split_these/conversions_spec.rb +103 -0
  298. data/spec/instructions/split_these/float_stack_spec.rb +92 -0
  299. data/spec/instructions/split_these/int_stack_spec.rb +81 -0
  300. data/spec/instructions/split_these/name_stack_spec.rb +84 -0
  301. data/spec/interpreter/codeblock_point_spec.rb +164 -0
  302. data/spec/interpreter/codetype_spec.rb +219 -185
  303. data/spec/interpreter/instruction_spec.rb +87 -25
  304. data/spec/interpreter/interpreter_spec.rb +230 -36
  305. data/spec/interpreter/nil_point_spec.rb +32 -0
  306. data/spec/interpreter/nudge_program_spec.rb +774 -0
  307. data/spec/interpreter/reference_point_spec.rb +73 -0
  308. data/spec/interpreter/stack_spec.rb +1 -1
  309. data/spec/interpreter/treetophelpers.rb +94 -1
  310. data/spec/interpreter/types_spec.rb +125 -77
  311. data/spec/interpreter/value_point_spec.rb +173 -0
  312. data/spec/parsers/nudge_program_parser_spec.rb +86 -0
  313. data/spec/spec_helper.rb +26 -2
  314. metadata +464 -664
  315. data/_spikes/couch_document_spike.rb +0 -24
  316. data/_spikes/nested_parsing/nested.treetop +0 -6
  317. data/_spikes/nudge3_syntax_spike.txt +0 -23
  318. data/_spikes/nudgeview/init.rb +0 -19
  319. data/_spikes/nudgeview/public/javascripts/app.js +0 -12
  320. data/_spikes/nudgeview/public/javascripts/jquery.js +0 -4376
  321. data/_spikes/nudgeview/public/javascripts/jquery.svg.js +0 -1325
  322. data/_spikes/nudgeview/views/index.erb +0 -18
  323. data/_spikes/nudgeview/views/index.haml +0 -8
  324. data/_spikes/simplestWeb/simplest.rb +0 -44
  325. data/_spikes/simplestWeb/views/main.erb +0 -19
  326. data/_spikes/sketches/nudgecode_spike.rb +0 -146
  327. data/_spikes/sketches/searchDSL_spike.rb +0 -25
  328. data/_spikes/sketches/search_operator_sketch_spike.txt +0 -287
  329. data/_spikes/sketches/searchspace_spike.rb +0 -96
  330. data/_spikes/symbolic_regression/activate.rb +0 -35
  331. data/_spikes/symbolic_regression/config/environment.rb +0 -340
  332. data/_spikes/symbolic_regression/config/environments/deployment.rb +0 -0
  333. data/_spikes/symbolic_regression/config/environments/development.rb +0 -0
  334. data/_spikes/symbolic_regression/experiment/objectives/programLength.rb +0 -2
  335. data/_spikes/symbolic_regression/experiment/objectives/summedSquaredError.rb +0 -2
  336. data/_spikes/symbolic_regression/lib/tasks/run.rake +0 -0
  337. data/app_generators/nudge/USAGE +0 -5
  338. data/app_generators/nudge/nudge_generator.rb +0 -73
  339. data/app_generators/nudge/templates/activate.rb +0 -0
  340. data/bin/nudge +0 -17
  341. data/doc/classes/BlockNode.html +0 -146
  342. data/doc/classes/BlockNode.src/M000246.html +0 -18
  343. data/doc/classes/BoolAndInstruction.html +0 -218
  344. data/doc/classes/BoolAndInstruction.src/M000003.html +0 -15
  345. data/doc/classes/BoolAndInstruction.src/M000004.html +0 -16
  346. data/doc/classes/BoolAndInstruction.src/M000005.html +0 -15
  347. data/doc/classes/BoolAndInstruction.src/M000006.html +0 -15
  348. data/doc/classes/BoolEqualQInstruction.html +0 -218
  349. data/doc/classes/BoolEqualQInstruction.src/M000015.html +0 -15
  350. data/doc/classes/BoolEqualQInstruction.src/M000016.html +0 -16
  351. data/doc/classes/BoolEqualQInstruction.src/M000017.html +0 -15
  352. data/doc/classes/BoolEqualQInstruction.src/M000018.html +0 -15
  353. data/doc/classes/BoolFromFloatInstruction.html +0 -218
  354. data/doc/classes/BoolFromFloatInstruction.src/M000071.html +0 -15
  355. data/doc/classes/BoolFromFloatInstruction.src/M000072.html +0 -15
  356. data/doc/classes/BoolFromFloatInstruction.src/M000073.html +0 -15
  357. data/doc/classes/BoolFromFloatInstruction.src/M000074.html +0 -15
  358. data/doc/classes/BoolFromIntInstruction.html +0 -218
  359. data/doc/classes/BoolFromIntInstruction.src/M000067.html +0 -15
  360. data/doc/classes/BoolFromIntInstruction.src/M000068.html +0 -15
  361. data/doc/classes/BoolFromIntInstruction.src/M000069.html +0 -15
  362. data/doc/classes/BoolFromIntInstruction.src/M000070.html +0 -15
  363. data/doc/classes/BoolNotInstruction.html +0 -218
  364. data/doc/classes/BoolNotInstruction.src/M000019.html +0 -15
  365. data/doc/classes/BoolNotInstruction.src/M000020.html +0 -15
  366. data/doc/classes/BoolNotInstruction.src/M000021.html +0 -15
  367. data/doc/classes/BoolNotInstruction.src/M000022.html +0 -15
  368. data/doc/classes/BoolOrInstruction.html +0 -218
  369. data/doc/classes/BoolOrInstruction.src/M000007.html +0 -15
  370. data/doc/classes/BoolOrInstruction.src/M000008.html +0 -16
  371. data/doc/classes/BoolOrInstruction.src/M000009.html +0 -15
  372. data/doc/classes/BoolOrInstruction.src/M000010.html +0 -15
  373. data/doc/classes/BoolRandomInstruction.html +0 -218
  374. data/doc/classes/BoolRandomInstruction.src/M000187.html +0 -15
  375. data/doc/classes/BoolRandomInstruction.src/M000188.html +0 -14
  376. data/doc/classes/BoolRandomInstruction.src/M000189.html +0 -15
  377. data/doc/classes/BoolRandomInstruction.src/M000190.html +0 -15
  378. data/doc/classes/BoolType.html +0 -196
  379. data/doc/classes/BoolType.src/M000240.html +0 -16
  380. data/doc/classes/BoolType.src/M000241.html +0 -15
  381. data/doc/classes/BoolType.src/M000242.html +0 -15
  382. data/doc/classes/BoolXorInstruction.html +0 -218
  383. data/doc/classes/BoolXorInstruction.src/M000011.html +0 -15
  384. data/doc/classes/BoolXorInstruction.src/M000012.html +0 -16
  385. data/doc/classes/BoolXorInstruction.src/M000013.html +0 -15
  386. data/doc/classes/BoolXorInstruction.src/M000014.html +0 -15
  387. data/doc/classes/ChannelNode.html +0 -161
  388. data/doc/classes/ChannelNode.src/M000249.html +0 -15
  389. data/doc/classes/ChannelNode.src/M000250.html +0 -16
  390. data/doc/classes/CodeType.html +0 -269
  391. data/doc/classes/CodeType.src/M000219.html +0 -38
  392. data/doc/classes/CodeType.src/M000220.html +0 -16
  393. data/doc/classes/CodeType.src/M000221.html +0 -16
  394. data/doc/classes/CodeType.src/M000222.html +0 -16
  395. data/doc/classes/CodeType.src/M000223.html +0 -24
  396. data/doc/classes/CodeType.src/M000224.html +0 -42
  397. data/doc/classes/ERCNode.html +0 -183
  398. data/doc/classes/ERCNode.src/M000254.html +0 -15
  399. data/doc/classes/ERCNode.src/M000255.html +0 -16
  400. data/doc/classes/ERCNode.src/M000256.html +0 -16
  401. data/doc/classes/ExecPopInstruction.html +0 -218
  402. data/doc/classes/ExecPopInstruction.src/M000075.html +0 -15
  403. data/doc/classes/ExecPopInstruction.src/M000076.html +0 -14
  404. data/doc/classes/ExecPopInstruction.src/M000077.html +0 -15
  405. data/doc/classes/ExecPopInstruction.src/M000078.html +0 -14
  406. data/doc/classes/FloatAbsInstruction.html +0 -218
  407. data/doc/classes/FloatAbsInstruction.src/M000107.html +0 -15
  408. data/doc/classes/FloatAbsInstruction.src/M000108.html +0 -15
  409. data/doc/classes/FloatAbsInstruction.src/M000109.html +0 -15
  410. data/doc/classes/FloatAbsInstruction.src/M000110.html +0 -15
  411. data/doc/classes/FloatAddInstruction.html +0 -218
  412. data/doc/classes/FloatAddInstruction.src/M000079.html +0 -15
  413. data/doc/classes/FloatAddInstruction.src/M000080.html +0 -16
  414. data/doc/classes/FloatAddInstruction.src/M000081.html +0 -15
  415. data/doc/classes/FloatAddInstruction.src/M000082.html +0 -15
  416. data/doc/classes/FloatCosineInstruction.html +0 -218
  417. data/doc/classes/FloatCosineInstruction.src/M000123.html +0 -15
  418. data/doc/classes/FloatCosineInstruction.src/M000124.html +0 -15
  419. data/doc/classes/FloatCosineInstruction.src/M000125.html +0 -15
  420. data/doc/classes/FloatCosineInstruction.src/M000126.html +0 -15
  421. data/doc/classes/FloatDivideInstruction.html +0 -218
  422. data/doc/classes/FloatDivideInstruction.src/M000091.html +0 -15
  423. data/doc/classes/FloatDivideInstruction.src/M000092.html +0 -16
  424. data/doc/classes/FloatDivideInstruction.src/M000093.html +0 -20
  425. data/doc/classes/FloatDivideInstruction.src/M000094.html +0 -15
  426. data/doc/classes/FloatFromBoolInstruction.html +0 -218
  427. data/doc/classes/FloatFromBoolInstruction.src/M000055.html +0 -15
  428. data/doc/classes/FloatFromBoolInstruction.src/M000056.html +0 -15
  429. data/doc/classes/FloatFromBoolInstruction.src/M000057.html +0 -15
  430. data/doc/classes/FloatFromBoolInstruction.src/M000058.html +0 -15
  431. data/doc/classes/FloatFromIntInstruction.html +0 -218
  432. data/doc/classes/FloatFromIntInstruction.src/M000063.html +0 -15
  433. data/doc/classes/FloatFromIntInstruction.src/M000064.html +0 -15
  434. data/doc/classes/FloatFromIntInstruction.src/M000065.html +0 -15
  435. data/doc/classes/FloatFromIntInstruction.src/M000066.html +0 -15
  436. data/doc/classes/FloatGreaterThanQInstruction.html +0 -218
  437. data/doc/classes/FloatGreaterThanQInstruction.src/M000035.html +0 -15
  438. data/doc/classes/FloatGreaterThanQInstruction.src/M000036.html +0 -16
  439. data/doc/classes/FloatGreaterThanQInstruction.src/M000037.html +0 -15
  440. data/doc/classes/FloatGreaterThanQInstruction.src/M000038.html +0 -15
  441. data/doc/classes/FloatIfInstruction.html +0 -218
  442. data/doc/classes/FloatIfInstruction.src/M000047.html +0 -16
  443. data/doc/classes/FloatIfInstruction.src/M000048.html +0 -15
  444. data/doc/classes/FloatIfInstruction.src/M000049.html +0 -14
  445. data/doc/classes/FloatIfInstruction.src/M000050.html +0 -17
  446. data/doc/classes/FloatLessThanQInstruction.html +0 -218
  447. data/doc/classes/FloatLessThanQInstruction.src/M000039.html +0 -15
  448. data/doc/classes/FloatLessThanQInstruction.src/M000040.html +0 -16
  449. data/doc/classes/FloatLessThanQInstruction.src/M000041.html +0 -15
  450. data/doc/classes/FloatLessThanQInstruction.src/M000042.html +0 -15
  451. data/doc/classes/FloatMaxInstruction.html +0 -218
  452. data/doc/classes/FloatMaxInstruction.src/M000095.html +0 -15
  453. data/doc/classes/FloatMaxInstruction.src/M000096.html +0 -16
  454. data/doc/classes/FloatMaxInstruction.src/M000097.html +0 -15
  455. data/doc/classes/FloatMaxInstruction.src/M000098.html +0 -15
  456. data/doc/classes/FloatMinInstruction.html +0 -218
  457. data/doc/classes/FloatMinInstruction.src/M000099.html +0 -15
  458. data/doc/classes/FloatMinInstruction.src/M000100.html +0 -16
  459. data/doc/classes/FloatMinInstruction.src/M000101.html +0 -15
  460. data/doc/classes/FloatMinInstruction.src/M000102.html +0 -15
  461. data/doc/classes/FloatMultiplyInstruction.html +0 -218
  462. data/doc/classes/FloatMultiplyInstruction.src/M000083.html +0 -15
  463. data/doc/classes/FloatMultiplyInstruction.src/M000084.html +0 -16
  464. data/doc/classes/FloatMultiplyInstruction.src/M000085.html +0 -15
  465. data/doc/classes/FloatMultiplyInstruction.src/M000086.html +0 -15
  466. data/doc/classes/FloatNegativeInstruction.html +0 -218
  467. data/doc/classes/FloatNegativeInstruction.src/M000103.html +0 -15
  468. data/doc/classes/FloatNegativeInstruction.src/M000104.html +0 -15
  469. data/doc/classes/FloatNegativeInstruction.src/M000105.html +0 -15
  470. data/doc/classes/FloatNegativeInstruction.src/M000106.html +0 -15
  471. data/doc/classes/FloatPowerInstruction.html +0 -218
  472. data/doc/classes/FloatPowerInstruction.src/M000111.html +0 -15
  473. data/doc/classes/FloatPowerInstruction.src/M000112.html +0 -16
  474. data/doc/classes/FloatPowerInstruction.src/M000113.html +0 -20
  475. data/doc/classes/FloatPowerInstruction.src/M000114.html +0 -15
  476. data/doc/classes/FloatRandomInstruction.html +0 -218
  477. data/doc/classes/FloatRandomInstruction.src/M000191.html +0 -15
  478. data/doc/classes/FloatRandomInstruction.src/M000192.html +0 -14
  479. data/doc/classes/FloatRandomInstruction.src/M000193.html +0 -15
  480. data/doc/classes/FloatRandomInstruction.src/M000194.html +0 -15
  481. data/doc/classes/FloatSineInstruction.html +0 -218
  482. data/doc/classes/FloatSineInstruction.src/M000119.html +0 -15
  483. data/doc/classes/FloatSineInstruction.src/M000120.html +0 -15
  484. data/doc/classes/FloatSineInstruction.src/M000121.html +0 -15
  485. data/doc/classes/FloatSineInstruction.src/M000122.html +0 -15
  486. data/doc/classes/FloatSqrtInstruction.html +0 -218
  487. data/doc/classes/FloatSqrtInstruction.src/M000115.html +0 -15
  488. data/doc/classes/FloatSqrtInstruction.src/M000116.html +0 -15
  489. data/doc/classes/FloatSqrtInstruction.src/M000117.html +0 -19
  490. data/doc/classes/FloatSqrtInstruction.src/M000118.html +0 -15
  491. data/doc/classes/FloatSubtractInstruction.html +0 -218
  492. data/doc/classes/FloatSubtractInstruction.src/M000087.html +0 -15
  493. data/doc/classes/FloatSubtractInstruction.src/M000088.html +0 -16
  494. data/doc/classes/FloatSubtractInstruction.src/M000089.html +0 -15
  495. data/doc/classes/FloatSubtractInstruction.src/M000090.html +0 -15
  496. data/doc/classes/FloatTangentInstruction.html +0 -218
  497. data/doc/classes/FloatTangentInstruction.src/M000127.html +0 -15
  498. data/doc/classes/FloatTangentInstruction.src/M000128.html +0 -15
  499. data/doc/classes/FloatTangentInstruction.src/M000129.html +0 -15
  500. data/doc/classes/FloatTangentInstruction.src/M000130.html +0 -15
  501. data/doc/classes/FloatType.html +0 -196
  502. data/doc/classes/FloatType.src/M000243.html +0 -19
  503. data/doc/classes/FloatType.src/M000244.html +0 -15
  504. data/doc/classes/FloatType.src/M000245.html +0 -15
  505. data/doc/classes/Helpers.html +0 -161
  506. data/doc/classes/Helpers.src/M000343.html +0 -21
  507. data/doc/classes/Helpers.src/M000344.html +0 -24
  508. data/doc/classes/Instruction/InstructionMethodError.html +0 -110
  509. data/doc/classes/Instruction/NaNResultError.html +0 -110
  510. data/doc/classes/Instruction/NotEnoughStackItems.html +0 -110
  511. data/doc/classes/Instruction.html +0 -500
  512. data/doc/classes/Instruction.src/M000131.html +0 -17
  513. data/doc/classes/Instruction.src/M000132.html +0 -15
  514. data/doc/classes/Instruction.src/M000133.html +0 -15
  515. data/doc/classes/Instruction.src/M000134.html +0 -15
  516. data/doc/classes/Instruction.src/M000135.html +0 -15
  517. data/doc/classes/Instruction.src/M000136.html +0 -15
  518. data/doc/classes/Instruction.src/M000137.html +0 -15
  519. data/doc/classes/Instruction.src/M000138.html +0 -15
  520. data/doc/classes/Instruction.src/M000139.html +0 -22
  521. data/doc/classes/Instruction.src/M000140.html +0 -15
  522. data/doc/classes/Instruction.src/M000141.html +0 -25
  523. data/doc/classes/Instruction.src/M000142.html +0 -15
  524. data/doc/classes/Instruction.src/M000143.html +0 -15
  525. data/doc/classes/Instruction.src/M000144.html +0 -15
  526. data/doc/classes/Instruction.src/M000145.html +0 -15
  527. data/doc/classes/Instruction.src/M000146.html +0 -15
  528. data/doc/classes/InstructionNode.html +0 -161
  529. data/doc/classes/InstructionNode.src/M000247.html +0 -15
  530. data/doc/classes/InstructionNode.src/M000248.html +0 -16
  531. data/doc/classes/IntAbsInstruction.html +0 -218
  532. data/doc/classes/IntAbsInstruction.src/M000175.html +0 -15
  533. data/doc/classes/IntAbsInstruction.src/M000176.html +0 -15
  534. data/doc/classes/IntAbsInstruction.src/M000177.html +0 -15
  535. data/doc/classes/IntAbsInstruction.src/M000178.html +0 -15
  536. data/doc/classes/IntAddInstruction.html +0 -218
  537. data/doc/classes/IntAddInstruction.src/M000147.html +0 -15
  538. data/doc/classes/IntAddInstruction.src/M000148.html +0 -16
  539. data/doc/classes/IntAddInstruction.src/M000149.html +0 -15
  540. data/doc/classes/IntAddInstruction.src/M000150.html +0 -15
  541. data/doc/classes/IntDepthInstruction.html +0 -218
  542. data/doc/classes/IntDepthInstruction.src/M000211.html +0 -15
  543. data/doc/classes/IntDepthInstruction.src/M000212.html +0 -14
  544. data/doc/classes/IntDepthInstruction.src/M000213.html +0 -15
  545. data/doc/classes/IntDepthInstruction.src/M000214.html +0 -15
  546. data/doc/classes/IntDivideInstruction.html +0 -218
  547. data/doc/classes/IntDivideInstruction.src/M000155.html +0 -15
  548. data/doc/classes/IntDivideInstruction.src/M000156.html +0 -16
  549. data/doc/classes/IntDivideInstruction.src/M000157.html +0 -20
  550. data/doc/classes/IntDivideInstruction.src/M000158.html +0 -15
  551. data/doc/classes/IntDuplicateInstruction.html +0 -218
  552. data/doc/classes/IntDuplicateInstruction.src/M000203.html +0 -15
  553. data/doc/classes/IntDuplicateInstruction.src/M000204.html +0 -15
  554. data/doc/classes/IntDuplicateInstruction.src/M000205.html +0 -15
  555. data/doc/classes/IntDuplicateInstruction.src/M000206.html +0 -15
  556. data/doc/classes/IntEqualQInstruction.html +0 -218
  557. data/doc/classes/IntEqualQInstruction.src/M000023.html +0 -15
  558. data/doc/classes/IntEqualQInstruction.src/M000024.html +0 -16
  559. data/doc/classes/IntEqualQInstruction.src/M000025.html +0 -15
  560. data/doc/classes/IntEqualQInstruction.src/M000026.html +0 -15
  561. data/doc/classes/IntFlushInstruction.html +0 -218
  562. data/doc/classes/IntFlushInstruction.src/M000215.html +0 -15
  563. data/doc/classes/IntFlushInstruction.src/M000216.html +0 -14
  564. data/doc/classes/IntFlushInstruction.src/M000217.html +0 -14
  565. data/doc/classes/IntFlushInstruction.src/M000218.html +0 -15
  566. data/doc/classes/IntFromBoolInstruction.html +0 -218
  567. data/doc/classes/IntFromBoolInstruction.src/M000051.html +0 -15
  568. data/doc/classes/IntFromBoolInstruction.src/M000052.html +0 -15
  569. data/doc/classes/IntFromBoolInstruction.src/M000053.html +0 -15
  570. data/doc/classes/IntFromBoolInstruction.src/M000054.html +0 -15
  571. data/doc/classes/IntFromFloatInstruction.html +0 -218
  572. data/doc/classes/IntFromFloatInstruction.src/M000059.html +0 -15
  573. data/doc/classes/IntFromFloatInstruction.src/M000060.html +0 -15
  574. data/doc/classes/IntFromFloatInstruction.src/M000061.html +0 -15
  575. data/doc/classes/IntFromFloatInstruction.src/M000062.html +0 -15
  576. data/doc/classes/IntGreaterThanQInstruction.html +0 -218
  577. data/doc/classes/IntGreaterThanQInstruction.src/M000031.html +0 -15
  578. data/doc/classes/IntGreaterThanQInstruction.src/M000032.html +0 -16
  579. data/doc/classes/IntGreaterThanQInstruction.src/M000033.html +0 -15
  580. data/doc/classes/IntGreaterThanQInstruction.src/M000034.html +0 -15
  581. data/doc/classes/IntIfInstruction.html +0 -218
  582. data/doc/classes/IntIfInstruction.src/M000043.html +0 -16
  583. data/doc/classes/IntIfInstruction.src/M000044.html +0 -15
  584. data/doc/classes/IntIfInstruction.src/M000045.html +0 -14
  585. data/doc/classes/IntIfInstruction.src/M000046.html +0 -17
  586. data/doc/classes/IntLessThanQInstruction.html +0 -218
  587. data/doc/classes/IntLessThanQInstruction.src/M000027.html +0 -15
  588. data/doc/classes/IntLessThanQInstruction.src/M000028.html +0 -16
  589. data/doc/classes/IntLessThanQInstruction.src/M000029.html +0 -15
  590. data/doc/classes/IntLessThanQInstruction.src/M000030.html +0 -15
  591. data/doc/classes/IntMaxInstruction.html +0 -218
  592. data/doc/classes/IntMaxInstruction.src/M000167.html +0 -15
  593. data/doc/classes/IntMaxInstruction.src/M000168.html +0 -16
  594. data/doc/classes/IntMaxInstruction.src/M000169.html +0 -16
  595. data/doc/classes/IntMaxInstruction.src/M000170.html +0 -15
  596. data/doc/classes/IntMinInstruction.html +0 -218
  597. data/doc/classes/IntMinInstruction.src/M000171.html +0 -15
  598. data/doc/classes/IntMinInstruction.src/M000172.html +0 -16
  599. data/doc/classes/IntMinInstruction.src/M000173.html +0 -16
  600. data/doc/classes/IntMinInstruction.src/M000174.html +0 -15
  601. data/doc/classes/IntModuloInstruction.html +0 -218
  602. data/doc/classes/IntModuloInstruction.src/M000163.html +0 -15
  603. data/doc/classes/IntModuloInstruction.src/M000164.html +0 -16
  604. data/doc/classes/IntModuloInstruction.src/M000165.html +0 -20
  605. data/doc/classes/IntModuloInstruction.src/M000166.html +0 -15
  606. data/doc/classes/IntMultiplyInstruction.html +0 -218
  607. data/doc/classes/IntMultiplyInstruction.src/M000151.html +0 -15
  608. data/doc/classes/IntMultiplyInstruction.src/M000152.html +0 -16
  609. data/doc/classes/IntMultiplyInstruction.src/M000153.html +0 -15
  610. data/doc/classes/IntMultiplyInstruction.src/M000154.html +0 -15
  611. data/doc/classes/IntNegativeInstruction.html +0 -218
  612. data/doc/classes/IntNegativeInstruction.src/M000179.html +0 -15
  613. data/doc/classes/IntNegativeInstruction.src/M000180.html +0 -15
  614. data/doc/classes/IntNegativeInstruction.src/M000181.html +0 -15
  615. data/doc/classes/IntNegativeInstruction.src/M000182.html +0 -15
  616. data/doc/classes/IntPopInstruction.html +0 -218
  617. data/doc/classes/IntPopInstruction.src/M000195.html +0 -15
  618. data/doc/classes/IntPopInstruction.src/M000196.html +0 -15
  619. data/doc/classes/IntPopInstruction.src/M000197.html +0 -14
  620. data/doc/classes/IntPopInstruction.src/M000198.html +0 -14
  621. data/doc/classes/IntRandomInstruction.html +0 -218
  622. data/doc/classes/IntRandomInstruction.src/M000183.html +0 -15
  623. data/doc/classes/IntRandomInstruction.src/M000184.html +0 -14
  624. data/doc/classes/IntRandomInstruction.src/M000185.html +0 -15
  625. data/doc/classes/IntRandomInstruction.src/M000186.html +0 -15
  626. data/doc/classes/IntRotateInstruction.html +0 -218
  627. data/doc/classes/IntRotateInstruction.src/M000207.html +0 -15
  628. data/doc/classes/IntRotateInstruction.src/M000208.html +0 -17
  629. data/doc/classes/IntRotateInstruction.src/M000209.html +0 -14
  630. data/doc/classes/IntRotateInstruction.src/M000210.html +0 -17
  631. data/doc/classes/IntSubtractInstruction.html +0 -218
  632. data/doc/classes/IntSubtractInstruction.src/M000159.html +0 -15
  633. data/doc/classes/IntSubtractInstruction.src/M000160.html +0 -16
  634. data/doc/classes/IntSubtractInstruction.src/M000161.html +0 -16
  635. data/doc/classes/IntSubtractInstruction.src/M000162.html +0 -15
  636. data/doc/classes/IntSwapInstruction.html +0 -218
  637. data/doc/classes/IntSwapInstruction.src/M000199.html +0 -15
  638. data/doc/classes/IntSwapInstruction.src/M000200.html +0 -16
  639. data/doc/classes/IntSwapInstruction.src/M000201.html +0 -14
  640. data/doc/classes/IntSwapInstruction.src/M000202.html +0 -16
  641. data/doc/classes/IntType.html +0 -240
  642. data/doc/classes/IntType.src/M000235.html +0 -15
  643. data/doc/classes/IntType.src/M000236.html +0 -15
  644. data/doc/classes/IntType.src/M000237.html +0 -18
  645. data/doc/classes/IntType.src/M000238.html +0 -15
  646. data/doc/classes/IntType.src/M000239.html +0 -15
  647. data/doc/classes/LiteralNode.html +0 -183
  648. data/doc/classes/LiteralNode.src/M000251.html +0 -15
  649. data/doc/classes/LiteralNode.src/M000252.html +0 -16
  650. data/doc/classes/LiteralNode.src/M000253.html +0 -16
  651. data/doc/classes/Nudge/Channel.html +0 -437
  652. data/doc/classes/Nudge/Channel.src/M000286.html +0 -15
  653. data/doc/classes/Nudge/Channel.src/M000287.html +0 -19
  654. data/doc/classes/Nudge/Channel.src/M000288.html +0 -15
  655. data/doc/classes/Nudge/Channel.src/M000289.html +0 -15
  656. data/doc/classes/Nudge/Channel.src/M000290.html +0 -15
  657. data/doc/classes/Nudge/Channel.src/M000291.html +0 -19
  658. data/doc/classes/Nudge/Channel.src/M000292.html +0 -19
  659. data/doc/classes/Nudge/Channel.src/M000293.html +0 -17
  660. data/doc/classes/Nudge/Channel.src/M000294.html +0 -15
  661. data/doc/classes/Nudge/Channel.src/M000295.html +0 -20
  662. data/doc/classes/Nudge/Channel.src/M000296.html +0 -15
  663. data/doc/classes/Nudge/Channel.src/M000297.html +0 -17
  664. data/doc/classes/Nudge/Channel.src/M000298.html +0 -15
  665. data/doc/classes/Nudge/CodeBlock.html +0 -331
  666. data/doc/classes/Nudge/CodeBlock.src/M000263.html +0 -15
  667. data/doc/classes/Nudge/CodeBlock.src/M000264.html +0 -15
  668. data/doc/classes/Nudge/CodeBlock.src/M000265.html +0 -15
  669. data/doc/classes/Nudge/CodeBlock.src/M000266.html +0 -15
  670. data/doc/classes/Nudge/CodeBlock.src/M000267.html +0 -15
  671. data/doc/classes/Nudge/CodeBlock.src/M000268.html +0 -17
  672. data/doc/classes/Nudge/CodeBlock.src/M000269.html +0 -20
  673. data/doc/classes/Nudge/CodeBlock.src/M000270.html +0 -15
  674. data/doc/classes/Nudge/CodeBlock.src/M000271.html +0 -19
  675. data/doc/classes/Nudge/DeadLocation.html +0 -152
  676. data/doc/classes/Nudge/DeadLocation.src/M000334.html +0 -17
  677. data/doc/classes/Nudge/Erc.html +0 -335
  678. data/doc/classes/Nudge/Erc.src/M000278.html +0 -16
  679. data/doc/classes/Nudge/Erc.src/M000279.html +0 -15
  680. data/doc/classes/Nudge/Erc.src/M000280.html +0 -15
  681. data/doc/classes/Nudge/Erc.src/M000281.html +0 -15
  682. data/doc/classes/Nudge/Erc.src/M000282.html +0 -18
  683. data/doc/classes/Nudge/Erc.src/M000283.html +0 -15
  684. data/doc/classes/Nudge/Erc.src/M000284.html +0 -17
  685. data/doc/classes/Nudge/Erc.src/M000285.html +0 -15
  686. data/doc/classes/Nudge/Individual.html +0 -313
  687. data/doc/classes/Nudge/Individual.src/M000314.html +0 -21
  688. data/doc/classes/Nudge/Individual.src/M000315.html +0 -15
  689. data/doc/classes/Nudge/Individual.src/M000316.html +0 -15
  690. data/doc/classes/Nudge/Individual.src/M000317.html +0 -17
  691. data/doc/classes/Nudge/Individual.src/M000318.html +0 -25
  692. data/doc/classes/Nudge/InstructionPoint/InstructionNotFoundError.html +0 -110
  693. data/doc/classes/Nudge/InstructionPoint.html +0 -350
  694. data/doc/classes/Nudge/InstructionPoint.src/M000299.html +0 -15
  695. data/doc/classes/Nudge/InstructionPoint.src/M000300.html +0 -15
  696. data/doc/classes/Nudge/InstructionPoint.src/M000301.html +0 -17
  697. data/doc/classes/Nudge/InstructionPoint.src/M000302.html +0 -15
  698. data/doc/classes/Nudge/InstructionPoint.src/M000303.html +0 -17
  699. data/doc/classes/Nudge/InstructionPoint.src/M000304.html +0 -17
  700. data/doc/classes/Nudge/InstructionPoint.src/M000305.html +0 -17
  701. data/doc/classes/Nudge/InstructionPoint.src/M000306.html +0 -15
  702. data/doc/classes/Nudge/Interpreter.html +0 -369
  703. data/doc/classes/Nudge/Interpreter.src/M000257.html +0 -20
  704. data/doc/classes/Nudge/Interpreter.src/M000258.html +0 -19
  705. data/doc/classes/Nudge/Interpreter.src/M000259.html +0 -15
  706. data/doc/classes/Nudge/Interpreter.src/M000260.html +0 -19
  707. data/doc/classes/Nudge/Interpreter.src/M000261.html +0 -17
  708. data/doc/classes/Nudge/LiteralPoint.html +0 -291
  709. data/doc/classes/Nudge/LiteralPoint.src/M000272.html +0 -16
  710. data/doc/classes/Nudge/LiteralPoint.src/M000273.html +0 -15
  711. data/doc/classes/Nudge/LiteralPoint.src/M000274.html +0 -15
  712. data/doc/classes/Nudge/LiteralPoint.src/M000275.html +0 -18
  713. data/doc/classes/Nudge/LiteralPoint.src/M000276.html +0 -17
  714. data/doc/classes/Nudge/LiteralPoint.src/M000277.html +0 -15
  715. data/doc/classes/Nudge/Location.html +0 -525
  716. data/doc/classes/Nudge/Location.src/M000319.html +0 -19
  717. data/doc/classes/Nudge/Location.src/M000320.html +0 -15
  718. data/doc/classes/Nudge/Location.src/M000321.html +0 -26
  719. data/doc/classes/Nudge/Location.src/M000322.html +0 -15
  720. data/doc/classes/Nudge/Location.src/M000323.html +0 -20
  721. data/doc/classes/Nudge/Location.src/M000324.html +0 -16
  722. data/doc/classes/Nudge/Location.src/M000325.html +0 -25
  723. data/doc/classes/Nudge/Location.src/M000326.html +0 -15
  724. data/doc/classes/Nudge/Location.src/M000327.html +0 -21
  725. data/doc/classes/Nudge/Location.src/M000328.html +0 -16
  726. data/doc/classes/Nudge/Location.src/M000329.html +0 -15
  727. data/doc/classes/Nudge/Location.src/M000330.html +0 -16
  728. data/doc/classes/Nudge/Location.src/M000331.html +0 -20
  729. data/doc/classes/Nudge/Location.src/M000332.html +0 -17
  730. data/doc/classes/Nudge/Location.src/M000333.html +0 -17
  731. data/doc/classes/Nudge/NondominatedSubset.html +0 -196
  732. data/doc/classes/Nudge/NondominatedSubset.src/M000005.html +0 -19
  733. data/doc/classes/Nudge/NondominatedSubset.src/M000006.html +0 -19
  734. data/doc/classes/Nudge/NondominatedSubset.src/M000007.html +0 -25
  735. data/doc/classes/Nudge/NondominatedSubset.src/M000339.html +0 -19
  736. data/doc/classes/Nudge/NondominatedSubset.src/M000340.html +0 -19
  737. data/doc/classes/Nudge/NondominatedSubset.src/M000341.html +0 -25
  738. data/doc/classes/Nudge/PopulationResample.html +0 -175
  739. data/doc/classes/Nudge/PopulationResample.src/M000003.html +0 -22
  740. data/doc/classes/Nudge/PopulationResample.src/M000337.html +0 -22
  741. data/doc/classes/Nudge/ProgramPoint.html +0 -148
  742. data/doc/classes/Nudge/ProgramPoint.src/M000262.html +0 -15
  743. data/doc/classes/Nudge/RandomGuess.html +0 -176
  744. data/doc/classes/Nudge/RandomGuess.src/M000002.html +0 -21
  745. data/doc/classes/Nudge/RandomGuess.src/M000336.html +0 -21
  746. data/doc/classes/Nudge/ResampleValues.html +0 -169
  747. data/doc/classes/Nudge/ResampleValues.src/M000004.html +0 -36
  748. data/doc/classes/Nudge/ResampleValues.src/M000338.html +0 -36
  749. data/doc/classes/Nudge/SearchOperator.html +0 -175
  750. data/doc/classes/Nudge/SearchOperator.src/M000001.html +0 -15
  751. data/doc/classes/Nudge/SearchOperator.src/M000335.html +0 -15
  752. data/doc/classes/Nudge/Stack.html +0 -350
  753. data/doc/classes/Nudge/Stack.src/M000307.html +0 -15
  754. data/doc/classes/Nudge/Stack.src/M000308.html +0 -15
  755. data/doc/classes/Nudge/Stack.src/M000309.html +0 -18
  756. data/doc/classes/Nudge/Stack.src/M000310.html +0 -15
  757. data/doc/classes/Nudge/Stack.src/M000311.html +0 -15
  758. data/doc/classes/Nudge/Stack.src/M000312.html +0 -15
  759. data/doc/classes/Nudge/Stack.src/M000313.html +0 -15
  760. data/doc/classes/Nudge/UniformBackboneCrossover.html +0 -152
  761. data/doc/classes/Nudge/UniformBackboneCrossover.src/M000008.html +0 -35
  762. data/doc/classes/Nudge/UniformBackboneCrossover.src/M000342.html +0 -35
  763. data/doc/classes/Nudge.html +0 -174
  764. data/doc/classes/NudgeType.html +0 -363
  765. data/doc/classes/NudgeType.src/M000225.html +0 -17
  766. data/doc/classes/NudgeType.src/M000226.html +0 -15
  767. data/doc/classes/NudgeType.src/M000227.html +0 -15
  768. data/doc/classes/NudgeType.src/M000228.html +0 -15
  769. data/doc/classes/NudgeType.src/M000229.html +0 -15
  770. data/doc/classes/NudgeType.src/M000230.html +0 -15
  771. data/doc/classes/NudgeType.src/M000231.html +0 -15
  772. data/doc/classes/NudgeType.src/M000232.html +0 -15
  773. data/doc/classes/NudgeType.src/M000233.html +0 -15
  774. data/doc/classes/NudgeType.src/M000234.html +0 -15
  775. data/doc/created.rid +0 -1
  776. data/doc/files/lib/instructions/bool_basics_rb.html +0 -90
  777. data/doc/files/lib/instructions/comparisons_rb.html +0 -90
  778. data/doc/files/lib/instructions/conditionals_rb.html +0 -90
  779. data/doc/files/lib/instructions/conversions_rb.html +0 -90
  780. data/doc/files/lib/instructions/exec_rb.html +0 -90
  781. data/doc/files/lib/instructions/float_arithmetic_rb.html +0 -90
  782. data/doc/files/lib/instructions/float_transcendental_rb.html +0 -90
  783. data/doc/files/lib/instructions/infrastructure_rb.html +0 -100
  784. data/doc/files/lib/instructions/int_arithmetic_rb.html +0 -90
  785. data/doc/files/lib/instructions/random_value_rb.html +0 -90
  786. data/doc/files/lib/instructions/stack_manipulation_rb.html +0 -90
  787. data/doc/files/lib/interpreter/grammars/nudge_language_helpers_rb.html +0 -97
  788. data/doc/files/lib/interpreter/grammars/nudge_language_treetop.html +0 -180
  789. data/doc/files/lib/interpreter/interpreter_rb.html +0 -90
  790. data/doc/files/lib/interpreter/programPoints_rb.html +0 -90
  791. data/doc/files/lib/interpreter/stack_rb.html +0 -90
  792. data/doc/files/lib/interpreter/types/codeType_rb.html +0 -157
  793. data/doc/files/lib/interpreter/types/codeType_rb.src/M000001.html +0 -15
  794. data/doc/files/lib/interpreter/types/codeType_rb.src/M000002.html +0 -15
  795. data/doc/files/lib/interpreter/types/pushTypes_rb.html +0 -107
  796. data/doc/files/lib/nudge_rb.html +0 -152
  797. data/doc/files/lib/search/evaluators/structural_complexity_rb.html +0 -90
  798. data/doc/files/lib/search/helpers_rb.html +0 -90
  799. data/doc/files/lib/search/individual/individual_rb.html +0 -90
  800. data/doc/files/lib/search/locations/location_rb.html +0 -100
  801. data/doc/files/lib/search/operators/basic_operators_rb.html +0 -90
  802. data/doc/fr_class_index.html +0 -191
  803. data/doc/fr_file_index.html +0 -71
  804. data/doc/fr_method_index.html +0 -711
  805. data/doc/index.html +0 -21
  806. data/doc/rdoc-style.css +0 -299
  807. data/features/parser_recognizes_nudge_language.feature +0 -9
  808. data/lib/instructions/bool_basics.rb +0 -85
  809. data/lib/instructions/comparisons.rb +0 -152
  810. data/lib/instructions/conditionals.rb +0 -44
  811. data/lib/instructions/conversions.rb +0 -94
  812. data/lib/instructions/exec.rb +0 -154
  813. data/lib/instructions/float_arithmetic.rb +0 -201
  814. data/lib/instructions/float_transcendental.rb +0 -47
  815. data/lib/instructions/int_arithmetic.rb +0 -160
  816. data/lib/instructions/name_basics.rb +0 -44
  817. data/lib/instructions/name_bindings.rb +0 -65
  818. data/lib/instructions/random_value.rb +0 -43
  819. data/lib/instructions/stack_manipulation.rb +0 -739
  820. data/lib/interpreter/grammars/nudge_language.treetop +0 -83
  821. data/lib/interpreter/grammars/nudge_language_helpers.rb +0 -64
  822. data/lib/search/experiments/experiment.rb +0 -53
  823. data/lib/search/helpers.rb +0 -22
  824. data/lib/search/individual/batch.rb +0 -25
  825. data/lib/search/individual/individual.rb +0 -145
  826. data/lib/search/operators/basic_operators.rb +0 -230
  827. data/lib/search/operators/evaluators.rb +0 -107
  828. data/lib/search/operators/samplers_and_selectors.rb +0 -123
  829. data/lib/search/stations/station.rb +0 -147
  830. data/nudge.gemspec +0 -706
  831. data/push_language_coverage.md +0 -177
  832. data/script/console +0 -10
  833. data/script/destroy +0 -14
  834. data/script/generate +0 -14
  835. data/spec/data/couchdb_spec.rb +0 -2
  836. data/spec/instructions/bool_basics_spec.rb +0 -97
  837. data/spec/instructions/bool_stack_spec.rb +0 -391
  838. data/spec/instructions/code_basics_spec.rb +0 -43
  839. data/spec/instructions/code_stack_spec.rb +0 -382
  840. data/spec/instructions/comparisons_spec.rb +0 -486
  841. data/spec/instructions/conditionals_spec.rb +0 -162
  842. data/spec/instructions/conversions_spec.rb +0 -92
  843. data/spec/instructions/exec_spec.rb +0 -883
  844. data/spec/instructions/float_calculations_spec.rb +0 -148
  845. data/spec/instructions/float_stack_spec.rb +0 -382
  846. data/spec/instructions/float_transcendental_spec.rb +0 -89
  847. data/spec/instructions/int_calculations_spec.rb +0 -125
  848. data/spec/instructions/int_stack_spec.rb +0 -398
  849. data/spec/instructions/name_basics_spec.rb +0 -158
  850. data/spec/instructions/name_bindings_spec.rb +0 -257
  851. data/spec/instructions/name_stack_spec.rb +0 -382
  852. data/spec/instructions/random_values_spec.rb +0 -68
  853. data/spec/integration/search_integration.rb +0 -67
  854. data/spec/interpreter/channel_spec.rb +0 -92
  855. data/spec/interpreter/codeblock_spec.rb +0 -135
  856. data/spec/interpreter/erc_spec.rb +0 -130
  857. data/spec/interpreter/literal_spec.rb +0 -94
  858. data/spec/interpreter/parser_spec.rb +0 -324
  859. data/spec/search/batch_spec.rb +0 -30
  860. data/spec/search/experiments/experiment_spec.rb +0 -101
  861. data/spec/search/helpers_spec.rb +0 -59
  862. data/spec/search/individual_spec.rb +0 -356
  863. data/spec/search/operators/any_one_sampler_spec.rb +0 -40
  864. data/spec/search/operators/dominated_quantile_spec.rb +0 -111
  865. data/spec/search/operators/duplicate_genomes_spec.rb +0 -35
  866. data/spec/search/operators/evaluators/program_point_evaluator_spec.rb +0 -43
  867. data/spec/search/operators/evaluators/test_case_evaluator_spec.rb +0 -133
  868. data/spec/search/operators/infrastructure_spec.rb +0 -47
  869. data/spec/search/operators/most_dominated_subset_spec.rb +0 -47
  870. data/spec/search/operators/nondominated_subset_spec.rb +0 -97
  871. data/spec/search/operators/pointCrossover_spec.rb +0 -55
  872. data/spec/search/operators/pointDeletion_spec.rb +0 -57
  873. data/spec/search/operators/pointMutation_spec.rb +0 -71
  874. data/spec/search/operators/random_guess_spec.rb +0 -51
  875. data/spec/search/operators/resample_and_clone_spec.rb +0 -50
  876. data/spec/search/operators/resample_values_spec.rb +0 -126
  877. data/spec/search/operators/sizePreservingMutation_spec.rb +0 -2
  878. data/spec/search/operators/uniformBackboneCrossover_spec.rb +0 -63
  879. data/spec/search/stations/station_spec.rb +0 -496
  880. data/test/test_generator_helper.rb +0 -29
  881. data/test/test_nudge_generator.rb +0 -43
  882. /data/lib/instructions/{code_basics.rb → code/code_noop.rb} +0 -0
  883. /data/{_spikes/nested_parsing/nested.rb → spec/support/shared_examples.rb} +0 -0
@@ -1,133 +0,0 @@
1
- require File.join(File.dirname(__FILE__), "./../../../spec_helper")
2
- include Nudge
3
-
4
-
5
- describe TestCase do
6
- describe "bindings" do
7
- it "should have a Hash of independent variable names and assigned values" do
8
- TestCase.new.should respond_to(:bindings)
9
- end
10
- end
11
-
12
- describe "expectations" do
13
- it "should have a Hash of dependent variable names and expected values" do
14
- TestCase.new.should respond_to(:expectations)
15
- end
16
- end
17
-
18
- describe "gauges" do
19
- it "should have a Hash of Proc objects that measure the observed values" do
20
- TestCase.new.should respond_to(:gauges)
21
- end
22
-
23
- it "should have one gauge for every expectation" do
24
- lambda{TestCase.new(
25
- :expectations => {"y1"=>31},
26
- :gauges => {"h"=>Proc.new {} } )}.should raise_error
27
- lambda{TestCase.new(
28
- :expectations => {"y1"=>31},
29
- :gauges => {"y1"=>Proc.new {} } )}.should_not raise_error
30
- end
31
- end
32
- end
33
-
34
-
35
-
36
-
37
-
38
- describe TestCaseEvaluator do
39
- describe "initialize" do
40
- it "should have a name" do
41
- lambda{TestCaseEvaluator.new()}.should raise_error(ArgumentError)
42
- lambda{TestCaseEvaluator.new(name:"boolean_multiplexer_SSE")}.should_not raise_error
43
- end
44
-
45
- it "should have all the info it needs to set up an Interpreter"
46
- end
47
-
48
- describe "evaluate" do
49
- before(:each) do
50
- @tce = TestCaseEvaluator.new(name:"error")
51
- @dudes = Batch[
52
- Individual.new("sample int(12)"),
53
- Individual.new("sample int(-9912)"),
54
- Individual.new("sample bool(false)"),
55
- Individual.new("block { sample int(99) sample int(12)}")
56
- ]
57
- @cases = [
58
- TestCase.new(:bindings => {"x" => LiteralPoint.new("int",77)},
59
- :expectations => {"y" => 12},
60
- :gauges => {"y" => Proc.new {|interp| interp.stacks[:int].peek}}
61
- ),
62
- TestCase.new(:bindings => {"x" => LiteralPoint.new("int",78)},
63
- :expectations => {"y" => 13},
64
- :gauges => {"y" => Proc.new {|interp| interp.stacks[:int].peek}}
65
- )
66
- ]
67
- end
68
-
69
- it "should raise an exception if the batch argument isn't a Batch" do
70
- lambda{@tce.evaluate()}.should raise_error(ArgumentError)
71
- lambda{@tce.evaluate(@dudes)}.should_not raise_error(ArgumentError)
72
- end
73
-
74
- it "should raise an exception if it can't evaluate an Individual" do
75
- lambda{@tce.evaluate(Batch[Individual.new("blah_de_blah")])}.should raise_error(ArgumentError)
76
- end
77
-
78
- it "should assign a numeric score to all the Individuals in the Batch" do
79
- @dudes.each {|dude| dude.scores["error"].should == nil}
80
- @tce.evaluate(@dudes, @cases)
81
- @dudes.each {|dude| dude.scores["error"].kind_of?(Numeric).should == true}
82
- end
83
-
84
- it "should create an Interpreter for each run" do
85
- myI = Interpreter.new
86
- Interpreter.should_receive(:new).exactly(8).times.and_return(myI)
87
- @tce.evaluate(@dudes, @cases)
88
- end
89
-
90
- it "should be reset each time before running them" do
91
- myI = Interpreter.new
92
- Interpreter.stub!(:new).and_return(myI)
93
- myI.should_receive(:reset).exactly(8).times
94
- @tce.evaluate(@dudes, @cases)
95
- end
96
-
97
- it "should set up bindings before running them" do
98
- myI = Interpreter.new
99
- Interpreter.stub!(:new).and_return(myI)
100
- myI.should_receive(:bind_variable).exactly(8).times
101
- @tce.evaluate(@dudes, @cases)
102
- end
103
-
104
- it "should run each TestCase for each individual in the Batch" do
105
- myI = Interpreter.new
106
- Interpreter.stub!(:new).and_return(myI)
107
- myI.should_receive(:run).exactly(8).times
108
- @tce.evaluate(@dudes, @cases)
109
- end
110
-
111
- it "after running a TestCase using an Individual, all the gauges should be called" do
112
- myI = Interpreter.new
113
- Interpreter.stub!(:new).and_return(myI)
114
- myI.should_receive(:run).exactly(8).times
115
- @tce.evaluate(@dudes, @cases)
116
-
117
- myI.should_receive(:run).exactly(4).times
118
- @tce.evaluate(@dudes, [TestCase.new(:gauges => {"a" => Proc.new {|interp|}})])
119
- end
120
-
121
- it "should synthesize the gauge readings into a single numerical score"
122
-
123
- it "should loop over the test cases to collect the error" do
124
- @dudes.each {|dude| dude.scores["error"].should == nil}
125
-
126
- @tce.evaluate(@dudes, @cases)
127
- equal12or13error = @dudes.collect {|dude| dude.scores["error"]}
128
- expectedScores = [1, 19849, 200000, 1]
129
- (0..3).each {|i| equal12or13error[i].should be_close(expectedScores[i].to_f / 2, 0.0001)}
130
- end
131
-
132
- end
133
- end
@@ -1,47 +0,0 @@
1
- require File.join(File.dirname(__FILE__), "./../../spec_helper")
2
- include Nudge
3
-
4
-
5
-
6
- describe "domination_classes" do
7
- before(:each) do
8
- @dq = Sampler.new
9
-
10
- @dudes = Batch[Individual.new("block {}"), Individual.new("do int_add")]
11
- @dudes[0].scores["first"] = 120
12
- @dudes[1].scores["first"] = 2
13
- @dudes[0].scores["second"] = 2
14
- @dudes[1].scores["second"] = 120
15
- @dudes[0].scores["third"] = 20
16
- @dudes[1].scores["third"] = 1200
17
- end
18
-
19
- it "should take a Batch as an argument" do
20
- lambda{@dq.domination_classes()}.should raise_error(ArgumentError)
21
- lambda{@dq.domination_classes(@dudes)}.should_not raise_error(ArgumentError)
22
-
23
- end
24
-
25
- it "can take a template of objective names to use" do
26
- lambda{@dq.domination_classes(@dudes, ["first"])}.should_not raise_error(ArgumentError)
27
- end
28
-
29
- it "should return a Hash" do
30
- @dq.domination_classes(@dudes, ["first"]).should be_a_kind_of(Hash)
31
- end
32
-
33
- it "should use the count of dominating Individuals as the key" do
34
- @dq.domination_classes(@dudes, ["second"]).keys.should == [0,1]
35
- @dq.domination_classes(@dudes).keys.should == [0]
36
-
37
- end
38
-
39
- it "should have an Array of the Individuals in that class as the value" do
40
- @dq.domination_classes(@dudes, ["first"])[0].length.should == 1
41
- @dq.domination_classes(@dudes, ["first"])[0][0].should == @dudes[1]
42
- @dq.domination_classes(@dudes, ["second"])[0].length.should == 1
43
- @dq.domination_classes(@dudes, ["second"])[0][0].should == @dudes[0]
44
- @dq.domination_classes(@dudes, ["second", "third"])[0].length.should == 1
45
- @dq.domination_classes(@dudes, ["second", "third"])[0][0].should == @dudes[0]
46
- end
47
- end
@@ -1,47 +0,0 @@
1
- require File.join(File.dirname(__FILE__), "./../../spec_helper")
2
- include Nudge
3
-
4
- describe MostDominatedSubsetSampler do
5
- before(:each) do
6
- @md = MostDominatedSubsetSampler.new
7
- end
8
-
9
-
10
- describe "#generate" do
11
- before(:each) do
12
- @dudes = Batch[Individual.new("block {}"), Individual.new("block {}"), Individual.new("block {}")]
13
- @dudes[0].scores = Hash["first", 2, "second", 20, "third", 200]
14
- @dudes[1].scores = Hash["first", 20, "second", 200, "third", 2]
15
- @dudes[2].scores = Hash["first", 200, "second", 2, "third", 20]
16
- end
17
-
18
- it "should take a Batch as a first parameter" do
19
- lambda{@md.generate()}.should raise_error(ArgumentError)
20
- lambda{@md.generate(@dudes)}.should_not raise_error(ArgumentError)
21
- end
22
-
23
- it "should return a Batch" do
24
- @md.generate(@dudes).should be_a_kind_of(Batch)
25
- end
26
-
27
- it "should return a Batch containing references to individuals in the original Batch" do
28
- half = @md.generate(@dudes)
29
- half.length.should be > 0
30
- half.each {|dude| @dudes.should include(dude)}
31
- end
32
-
33
- it "should always return at least one, even when everybody is nondominated" do
34
- some = @md.generate(@dudes)
35
- some.length.should == 3
36
- some.each {|dude| @dudes.should include(dude)}
37
- end
38
-
39
-
40
- it "should take a template of objectives to use in sorting" do
41
- @md.generate(@dudes,["first"]).should include(@dudes[2])
42
- @md.generate(@dudes,["second"]).should include(@dudes[1])
43
- @md.generate(@dudes,["second", "third"]).should include(@dudes[0])
44
- end
45
- end
46
-
47
- end
@@ -1,97 +0,0 @@
1
- require File.join(File.dirname(__FILE__), "./../../spec_helper")
2
- include Nudge
3
-
4
- describe "nondominated_subset operator" do
5
- before(:each) do
6
- @myNondominatedScreener = NondominatedSubsetSelector.new
7
- @params = {:points => 3, :instructions => [IntAddInstruction], :types => [IntType]}
8
- @myGuesser = RandomGuessOperator.new(@params)
9
- @twoGuys = @myGuesser.generate(2)
10
- end
11
-
12
- it "should be a kind of SearchOperator" do
13
- @myNondominatedScreener.should be_a_kind_of(SearchOperator)
14
- end
15
-
16
- it "the #all_known_scores method should return an Array with the union of all scores keys in the crowd" do
17
- @twoGuys[0].scores = {"x2" => 612, "y2" => 77, "x3" => 712}
18
- @twoGuys[1].scores = {"y1" => 2, "x1" => 3, "x2" => 4}
19
- @myNondominatedScreener.all_known_scores(@twoGuys).sort.should == ["x1","x2", "x3", "y1", "y2"].sort
20
- end
21
-
22
- it "the #all_shared_scores method should return an Array of the keys of the #scores hashes in the crowd" do
23
- twoGuys = @myGuesser.generate(2)
24
- twoGuys[0].scores = {"x2" => 612, "x1" => 77, "x3" => 712}
25
- twoGuys[1].scores = {"x2" => 2, "x1" => 3, "x3" => 4}
26
- @myNondominatedScreener.all_shared_scores(twoGuys).sort.should == ["x1","x2", "x3"].sort
27
-
28
- twoGuys[0].scores = {"x3" => 712, "something_else" => 88}
29
- twoGuys[1].scores = {"x2" => 2, "x1" => 3, "x3" => 4}
30
- @myNondominatedScreener.all_shared_scores(twoGuys).sort.should == ["x3"].sort
31
- end
32
-
33
- it "should produce a Batch of Individual objects when it receives #generate; at least one" do
34
- twoGuys = @myGuesser.generate(2)
35
- twoGuys[0].scores = {"x2" => 612, "x1" => 77, "x3" => 712}
36
- twoGuys[1].scores = {"x2" => 2, "x1" => 3, "x3" => 4}
37
- @myNondominatedScreener.generate(twoGuys).should be_a_kind_of(Batch)
38
- @myNondominatedScreener.generate(twoGuys)[0].should be_a_kind_of(Individual)
39
- end
40
-
41
- it "should work, passing along references not clones to the original guys" do
42
- twoGuys = @myGuesser.generate(2)
43
- twoGuys[0].scores = {"x2" => 612, "x1" => 77, "x3" => 712}
44
- twoGuys[1].scores = {"x2" => 2, "x1" => 3, "x3" => 4}
45
- @myNondominatedScreener.generate(twoGuys).should include(twoGuys[1])
46
-
47
- twoGuys[0].scores = {"x2" => 1, "x1" => 2, "x3" => 3}
48
- twoGuys[1].scores = {"x2" => 2, "x1" => 1, "x3" => 3}
49
- @myNondominatedScreener.generate(twoGuys).length.should == 2
50
- @myNondominatedScreener.generate(twoGuys).should include(twoGuys[0])
51
- @myNondominatedScreener.generate(twoGuys).should include(twoGuys[1])
52
- end
53
-
54
- it "should work the same no matter what the scores hash order" do
55
- twoGuys = @myGuesser.generate(2)
56
- twoGuys[0].scores = {"x1" => 77, "x3" => 712,"x2" => 612}
57
- twoGuys[1].scores = {"x2" => 2, "x1" => 3, "x3" => 4}
58
- @myNondominatedScreener.generate(twoGuys).should include(twoGuys[1])
59
-
60
- end
61
-
62
- it "can use the 'template' parameter to compare individuals by a specified vector of scores" do
63
- threeGuys = @myGuesser.generate(3)
64
- threeGuys[0].scores = {"x1" => 1, "x2" => 2, "x3" => 3}
65
- threeGuys[1].scores = {"x1" => 2, "x2" => 1, "x3" => 1}
66
- threeGuys[2].scores = {"x1" => 4, "x2" => 0, "x3" => 2}
67
- @myNondominatedScreener.generate(threeGuys).length.should == 3
68
- @myNondominatedScreener.generate(threeGuys,["x1"]).length.should == 1
69
- @myNondominatedScreener.generate(threeGuys,["x1"]).should include(threeGuys[0])
70
- @myNondominatedScreener.generate(threeGuys,["x2"]).length.should == 1
71
- @myNondominatedScreener.generate(threeGuys,["x2"]).should include(threeGuys[2])
72
- @myNondominatedScreener.generate(threeGuys,["x3"]).length.should == 1
73
- @myNondominatedScreener.generate(threeGuys,["x3"]).should include(threeGuys[1])
74
- @myNondominatedScreener.generate(threeGuys,["x1","x3"]).length.should == 2
75
- @myNondominatedScreener.generate(threeGuys,["x1","x2"]).length.should == 3
76
- @myNondominatedScreener.generate(threeGuys,["x2","x3"]).length.should == 2
77
- end
78
-
79
-
80
- it "should use a default 'template' parameter that's the intersection of scores keys in the crowd" do
81
- twoGuys = @myGuesser.generate(2)
82
- twoGuys[0].scores = {"x1" => 1, "x2" => 2, "x3" => 3}
83
- twoGuys[1].scores = { "x2" => 1, "x4" => 3}
84
- @myNondominatedScreener.generate(twoGuys).length.should == 1
85
- @myNondominatedScreener.generate(twoGuys).should include twoGuys[1]
86
- @myNondominatedScreener.generate(twoGuys,["x1"]).length.should == 2 # neither dominates on an objectve not shared
87
- end
88
-
89
- it "should return Individuals that belonged to crowd passed in" do
90
- twoGuys = @myGuesser.generate(2)
91
- orig_IDs = twoGuys.collect {|dude| dude.object_id}
92
- twoGuys[0].scores = {"x1" => 1, "x2" => 2, "x3" => 3}
93
- twoGuys[1].scores = { "x2" => 1, "x4" => 3}
94
- @myNondominatedScreener.generate(twoGuys).length.should == 1
95
- @myNondominatedScreener.generate(twoGuys).each {|newDude| orig_IDs.should include(newDude.object_id)}
96
- end
97
- end
@@ -1,55 +0,0 @@
1
- require File.join(File.dirname(__FILE__), "./../../spec_helper")
2
- include Nudge
3
-
4
- describe "PointCrossoverOperator" do
5
- before(:each) do
6
- @myXover = PointCrossoverOperator.new
7
- @dude1 = Individual.new("block{do a \n do b\n do c}")
8
- @dude2 = Individual.new("block{ref x \n ref y\n ref z}")
9
- end
10
-
11
- it "should be a kind of SearchOperator" do
12
- @myXover.should be_a_kind_of(SearchOperator)
13
- end
14
-
15
-
16
- describe "generate" do
17
-
18
- it "should take as a param a set of one or more Individuals" do
19
- lambda{@myXover.generate()}.should raise_error(ArgumentError)
20
- lambda{@myXover.generate(331)}.should raise_error(ArgumentError)
21
- lambda{@myXover.generate([])}.should raise_error(ArgumentError)
22
- lambda{@myXover.generate([11])}.should raise_error(ArgumentError)
23
-
24
- lambda{@myXover.generate([@dude1])}.should_not raise_error(ArgumentError)
25
- end
26
-
27
- it "should produce the same number of Individuals it gets as a default" do
28
- babies = @myXover.generate([@dude1])
29
- babies.length.should == 1
30
- end
31
-
32
- it "should have an optional parameter that specifies the number of offspring to produce per parent" do
33
- babies = @myXover.generate(Batch.[](@dude1, @dude2))
34
- babies.length.should == 2
35
- babies = @myXover.generate([@dude1, @dude2],4)
36
- babies.length.should == 8
37
- end
38
- it "should only include points from one of the parents in the offspring genomes" do
39
- babies = @myXover.generate([@dude1, @dude2])
40
- bothGenomes = @dude1.program.listing + @dude2.program.listing
41
- babies.each do |baby|
42
- baby.program.listing.each_line do |line|
43
- bothGenomes.match(line.strip.delete("}")).should_not == nil
44
- end
45
- end
46
- end
47
-
48
- it "should increment the offspring's progress from the max parents' progress" do
49
- @dude1.progress = 7
50
- @dude2.progress = 11
51
- babies = @myXover.generate([@dude1, @dude2],10)
52
- babies.each {|baby| [8,12].should include(baby.progress)}
53
- end
54
- end
55
- end
@@ -1,57 +0,0 @@
1
- require File.join(File.dirname(__FILE__), "./../../spec_helper")
2
- include Nudge
3
-
4
- describe "PointDeleteOperator search operator" do
5
- describe "generate" do
6
- before(:each) do
7
- @zapper = PointDeleteOperator.new()
8
- @dude1 = Individual.new("block { do thing1 \n do thing2 \n do thing3}")
9
- end
10
-
11
- it "should accept a Batch as a param" do
12
- lambda{@zapper.generate()}.should raise_error(ArgumentError)
13
- lambda{@zapper.generate(812)}.should raise_error(ArgumentError)
14
- lambda{@zapper.generate(Batch.new)}.should_not raise_error(ArgumentError)
15
- lambda{@zapper.generate(Batch[@dude1])}.should_not raise_error(ArgumentError)
16
- end
17
-
18
- it "should raise an Argument error if all contents of the crowd aren't Individuals" do
19
- lambda{@zapper.generate([])}.should_not raise_error(ArgumentError)
20
- lambda{@zapper.generate([ 77 ])}.should raise_error(ArgumentError)
21
- lambda{@zapper.generate([ @dude1, 77 ])}.should raise_error(ArgumentError)
22
- end
23
-
24
- it "should return a Batch as a result" do
25
- @zapper.generate([@dude1]).should be_a_kind_of(Batch)
26
- end
27
-
28
- it "should use Individual#delete_point to produce the variants" do
29
- @dude1.should_receive(:delete_point).and_return("do parseable")
30
- @zapper.generate([@dude1])
31
- end
32
-
33
- it "should produce one result per individual in the wildtype crowd as a default" do
34
- @zapper.generate([@dude1]).length.should == 1
35
- @zapper.generate([@dude1, @dude1]).length.should == 2
36
- end
37
-
38
- it "should produce more if passed the optional howManyCopies parameter > 1" do
39
- @zapper.generate([@dude1],2).length.should == 2
40
- @zapper.generate([@dude1, @dude1],3).length.should == 6
41
- end
42
-
43
- it "should produce individuals from which a random point (and its subpoints) is deleted" do
44
- @zapper.generate([@dude1],5).each {|baby| baby.points.should < @dude1.points}
45
- end
46
-
47
- it "should produce 'block {}' whenever a root is deleted" do
48
- @zapper.should_receive(:rand).with(4).and_return(0)
49
- @zapper.generate([@dude1])[0].genome.should == "block {}"
50
- end
51
-
52
- it "should increment the progress of the offspring" do
53
- @dude1.progress = 195
54
- @zapper.generate([@dude1])[0].progress.should == 196
55
- end
56
- end
57
- end
@@ -1,71 +0,0 @@
1
- require File.join(File.dirname(__FILE__), "./../../spec_helper")
2
- include Nudge
3
-
4
- describe "PointMutationOperator" do
5
- describe "initialization" do
6
- it "should have a params attribute when created that sets basic values for code generation" do
7
- PointMutationOperator.new.params.should == {}
8
- mutator = PointMutationOperator.new(:points => 3, :blocks => 1)
9
- mutator.params.should_not == {}
10
- mutator.params[:points].should == 3
11
- end
12
- end
13
-
14
- describe "generate" do
15
- before(:each) do
16
- @gammaray = PointMutationOperator.new(:points => 3, :types => [IntType])
17
- @dude1 = Individual.new("block { do x1 \n do x2 \n do x3}")
18
- end
19
-
20
- it "should accept an Array of one or more Individuals as a param" do
21
- lambda{@gammaray.generate()}.should raise_error(ArgumentError)
22
- lambda{@gammaray.generate(99)}.should raise_error(ArgumentError)
23
- lambda{@gammaray.generate([])}.should raise_error(ArgumentError)
24
- lambda{@gammaray.generate([99])}.should raise_error(ArgumentError)
25
-
26
- lambda{@gammaray.generate([@dude1])}.should_not raise_error(ArgumentError)
27
- end
28
-
29
- it "should return a Batch as a result" do
30
- @gammaray.generate([@dude1]).should be_a_kind_of(Batch)
31
- end
32
-
33
- it "should use Individual#replace_point to produce the variants" do
34
- @dude1.should_receive(:replace_point).and_return("do anything")
35
- @gammaray.generate([@dude1])
36
- end
37
-
38
- it "should produce one result per individual in the wildtype crowd as a default" do
39
- @gammaray.generate([@dude1]).length.should == 1
40
- @gammaray.generate([@dude1,@dude1]).length.should == 2
41
- end
42
-
43
- it "should produce more if passed the optional howManyCopies parameter > 1" do
44
- @gammaray.generate([@dude1],3).length.should == 3
45
- @gammaray.generate([@dude1,@dude1],2).length.should == 4
46
- end
47
-
48
- it "should produce individuals from which a random point (and all subpoints) is replaced" do
49
- @gammaray.should_receive(:rand).and_return(0)
50
- @gammaray.generate([@dude1])[0].points.should == 3 # totally replaced with 3-pt code
51
- @gammaray.should_receive(:rand).and_return(1)
52
- @gammaray.generate([@dude1])[0].points.should == 6 #replace point 2 with 3-pt code
53
- @gammaray.should_receive(:rand).and_return(2)
54
- @gammaray.generate([@dude1])[0].points.should == 6 #replace point 3 with 3-pt code
55
- @gammaray.should_receive(:rand).and_return(3)
56
- @gammaray.generate([@dude1])[0].points.should == 6 #replace point 4 with 3-pt code
57
- end
58
-
59
- it "should accept temporarily overriding params to pass into CodeType.random_value" do
60
- @gammaray.should_receive(:rand).and_return(0)
61
- @gammaray.generate([@dude1])[0].points.should == 3 # totally replaced with 3-pt code
62
- @gammaray.should_receive(:rand).and_return(0)
63
- @gammaray.generate([@dude1],1,:points => 10)[0].points.should == 10
64
- end
65
-
66
- it "should increment the #progress of the offspring" do
67
- @dude1.progress = 888
68
- @gammaray.generate([@dude1],13).each {|baby| baby.progress.should == 889}
69
- end
70
- end
71
- end
@@ -1,51 +0,0 @@
1
- require File.join(File.dirname(__FILE__), "./../../spec_helper")
2
- include Nudge
3
-
4
- describe "random_guess operator" do
5
- before(:each) do
6
- @myGuesser = RandomGuessOperator.new
7
- end
8
-
9
- it "should be a kind of SearchOperator" do
10
- @myGuesser.should be_a_kind_of(SearchOperator)
11
- end
12
-
13
- it "should have a params attribute when created that sets basic values for code generation" do
14
- RandomGuessOperator.new.params.should == {}
15
- thisGuesser = RandomGuessOperator.new(:points => 3, :blocks => 1, :types => [IntType])
16
- thisGuesser.params.should_not == {}
17
- thisGuesser.params[:points].should == 3
18
- end
19
-
20
- it "should produce a Batch of Individuals when it receives #generate" do
21
- newDudes = @myGuesser.generate
22
- newDudes.should be_a_kind_of(Batch)
23
- newDudes[0].should be_a_kind_of(Individual)
24
- newDudes[0].genome.should_not == nil
25
- newDudes[0].program.should_not == nil
26
- end
27
-
28
- it "should produce one as a default, more if a higher number is passed in" do
29
- @myGuesser.generate.length.should == 1
30
- @myGuesser.generate(4).length.should == 4
31
- end
32
-
33
- it "should have a parsed genome as its #program attribute" do
34
- newDudes = @myGuesser.generate
35
- newDudes[0].program.should be_a_kind_of(CodeBlock)
36
- end
37
-
38
- it "should accept temporarily overriding params to pass into CodeType.random_value" do
39
- @myNewGuesser = RandomGuessOperator.new(
40
- :points => 7, :instructions => [IntAddInstruction, IntSubtractInstruction],
41
- :references => ["x1", "x2", "x3"])
42
- lambda{@myNewGuesser.generate(3,:points => 12, :references => ["y1"])}.should_not raise_error
43
- @myNewGuesser.generate(3,:points => 12)[0].program.points.should_not == 7
44
- @myNewGuesser.generate(3,:points => 12)[0].program.points.should == 12
45
- @myNewGuesser.generate(1,:points => 6, :blocks => 0, :types => [], :instructions => [], :references => ["y1"])[0].genome.should include("y1")
46
- end
47
-
48
- it "should produce a Batch that contains Individuals with progress=0 only" do
49
- @myGuesser.generate(12).each {|dude| dude.progress.should == 0}
50
- end
51
- end
@@ -1,50 +0,0 @@
1
- require File.join(File.dirname(__FILE__), "./../../spec_helper")
2
- include Nudge
3
-
4
- describe "resample_and_clone operator" do
5
- before(:each) do
6
- @myGuesser = RandomGuessOperator.new(:types => [IntType], :instructions => [IntAddInstruction])
7
- @mySampler = ResampleAndCloneOperator.new
8
- end
9
-
10
- it "should be a kind of SearchOperator" do
11
- @mySampler.should be_a_kind_of(SearchOperator)
12
- end
13
-
14
- it "should produce a list of Individuals when it receives #generate" do
15
- newDudes = @mySampler.generate(@myGuesser.generate(3))
16
- newDudes.should be_a_kind_of(Batch)
17
- newDudes[0].should be_a_kind_of(Individual)
18
- newDudes[0].genome.should_not == nil
19
- newDudes[0].program.should_not == nil
20
- end
21
-
22
- it "should produce one Individual with a genome identical to one of the passed in crowd's" do
23
- pop = @myGuesser.generate(1)
24
- newDudes = @mySampler.generate(pop)
25
- newDudes[0].genome.should == pop[0].genome
26
- end
27
-
28
- it "should return more than one individual when asked to, resampling as needed" do
29
- newDudes = @mySampler.generate(@myGuesser.generate(10))
30
- newDudes.length.should == 1
31
- newDudes = @mySampler.generate(@myGuesser.generate(3),2)
32
- newDudes.length.should == 2
33
- newDudes = @mySampler.generate(@myGuesser.generate(1),2)
34
- newDudes.length.should == 2
35
- newDudes[0].genome.should == newDudes[1].genome
36
- end
37
-
38
- it "should have a parsed genome as its #program attribute" do
39
- pop = @myGuesser.generate(3)
40
- newDudes = @mySampler.generate(pop)
41
- newDudes[0].program.should be_a_kind_of(CodeBlock)
42
- end
43
-
44
- it "should increment the #progress of each clone" do
45
- pop = @myGuesser.generate(3)
46
- pop.each {|donor| donor.progress = 12}
47
- newDudes = @mySampler.generate(pop)
48
- newDudes.each {|kid| kid.progress.should == 13}
49
- end
50
- end