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,356 +0,0 @@
1
- require File.join(File.dirname(__FILE__), "./../spec_helper")
2
- require "fakeweb"
3
- include Nudge
4
-
5
- describe "Individual" do
6
- describe "class methods" do
7
- it "should have a class attribute Parser for validating code" do
8
- Individual.helperParser.should be_a_kind_of(NudgeLanguageParser)
9
- end
10
- end
11
-
12
- describe "initialization" do
13
- before(:each) do
14
- @i1 = Individual.new("literal bool (false)")
15
- end
16
-
17
- it "should have a genome string, with no default value" do
18
- @i1.genome.should be_a_kind_of(String)
19
- lambda{Individual.new()}.should raise_error
20
- end
21
-
22
- it "should have a program attribute, which is the parsed genome" do
23
- @par = NudgeLanguageParser.new
24
- expected = @par.parse(@i1.genome).to_points
25
- @i1.program.tidy.should == expected.tidy
26
- end
27
-
28
- it "should raise an ArgumentError if the genome doesn't parse" do
29
- lambda{Individual.new("bad stuff happens")}.should raise_error(ArgumentError)
30
- lambda{Individual.new("block {")}.should raise_error(ArgumentError)
31
- lambda{Individual.new("}")}.should raise_error(ArgumentError)
32
-
33
- lambda{Individual.new("")}.should raise_error(ArgumentError)
34
- lambda{Individual.new("block {}")}.should_not raise_error(ArgumentError)
35
- end
36
-
37
- it "should have a scores hash, which is empty" do
38
- @i1.scores.should == {}
39
- end
40
- it "should have a timestamp, which is when (wall clock time) it was made" do
41
- @i1.timestamp.should be_a_kind_of(Fixnum)
42
- end
43
- it "should have an age, defaulting to zero" do
44
- @i1.progress.should == 0
45
- end
46
- it "should have a locationID, defaulting to an empty string" do
47
- @i1.station.should == ""
48
- end
49
- it "should have a list of ancestors, defaulting to none" do
50
- @i1.ancestors.should == []
51
- end
52
- end
53
-
54
-
55
-
56
- describe "runnable?" do
57
- it "should have a genome that an interpreter can understand" do
58
- @i1 = Individual.new(fixture(:long_arithmetic))
59
- @interp = Interpreter.new
60
- @interp.reset(@i1.genome)
61
- @interp.enable_all_instructions
62
- @interp.run
63
- @interp.stacks[:int].peek.value.should == -36
64
- end
65
- end
66
-
67
-
68
-
69
- describe "#known_scores and #score_vector" do
70
- before(:each) do
71
- @oneGuy = Individual.new("block {}")
72
- @oneGuy.scores = {"beta" => -100, "alpha" => 100, "zeta" => 22}
73
- end
74
-
75
- it "known_scores should return a sorted list of the keys of the scores hash" do
76
- @oneGuy.known_scores.should == ["alpha", "beta", "zeta"]
77
- end
78
-
79
- it "should return an Array of his #scores, in order based on a template w/default known_scores" do
80
- @oneGuy.score_vector.should == [100,-100,22]
81
- @oneGuy.score_vector(["alpha"]).should == [100]
82
- end
83
- end
84
-
85
-
86
-
87
- describe "#dominated_by?" do
88
- before(:each) do
89
- @oneGuy = Individual.new("block {}")
90
- @betterGuy = Individual.new("block {}")
91
- @mixedGuy = Individual.new("block {}")
92
- @extraGuy = Individual.new("block {}")
93
-
94
- @oneGuy.scores = {"beta" => -100, "alpha" => 100, "gamma" => 22 }
95
- @betterGuy.scores = {"beta" => -120, "alpha" => 20, "gamma" => 0 }
96
- @mixedGuy.scores = {"beta" => -10, "alpha" => 20, "gamma" => 100}
97
- @extraGuy.scores = {"beta" => -120, "alpha" => 20, "gamma" => 21, "delta" => 10 }
98
- end
99
-
100
- it "should test whether self dominates the other individual" do
101
- @oneGuy.dominated_by?(@betterGuy).should == true
102
- @betterGuy.dominated_by?(@oneGuy).should == false
103
- @oneGuy.dominated_by?(@mixedGuy).should == false
104
- @mixedGuy.dominated_by?(@oneGuy).should == false
105
- end
106
-
107
- it "should use a template of score keys to establish criteria for comparison, defaulting to self's" do
108
- @oneGuy.dominated_by?(@mixedGuy).should == false
109
- @oneGuy.dominated_by?(@mixedGuy, ["alpha"]).should == true
110
- @mixedGuy.dominated_by?(@oneGuy, ["beta", "gamma"]).should == true
111
- end
112
-
113
- it "should give the benefit of the doubt when comparing against a missing score" do
114
- @oneGuy.dominated_by?(@extraGuy).should == true # because @extraGuy has all the same scores as self
115
- @oneGuy.dominated_by?(@extraGuy,["delta"]).should == false # because self has no "delta" score
116
- @extraGuy.dominated_by?(@oneGuy).should == false # because they're incomparible on "delta"
117
- end
118
- end
119
-
120
-
121
-
122
- describe "isolate_point" do
123
- before(:each) do
124
- @snipper = Individual.new("block {do some1 \n do some2 \n block {\n do some3}}")
125
- end
126
-
127
- it "should raise an ArgumentError if the integer param referring to a particular point is OOB" do
128
- lambda{@snipper.isolate_point()}.should raise_error(ArgumentError)
129
- lambda{@snipper.isolate_point(-12)}.should raise_error(ArgumentError)
130
- lambda{@snipper.isolate_point(912)}.should raise_error(ArgumentError)
131
-
132
- lambda{@snipper.isolate_point(2)}.should_not raise_error(ArgumentError)
133
- end
134
-
135
- it "should return a Hash containing up to three items" do
136
- works = @snipper.isolate_point(2)
137
- works.should be_a_kind_of(Hash)
138
- works.length.should == 3
139
- works.each_value {|chunk| chunk.should be_a_kind_of(String)}
140
-
141
- @snipper.isolate_point(1).length.should == 1
142
- @snipper.isolate_point(5).length.should == 3
143
- end
144
-
145
- it "should include the material in the genome before the point in the first string" do
146
- works = @snipper.isolate_point(2)
147
- works[:left].should include("block {")
148
- works[:left].should_not include("}")
149
-
150
- whole = @snipper.isolate_point(1)
151
- whole[:left].should == nil
152
- end
153
-
154
- it "should include the material in the genome after the point in the third string" do
155
- works = @snipper.isolate_point(2)
156
- works[:right].should include("do some2")
157
- works[:right].should_not include("do some1")
158
-
159
- whole = @snipper.isolate_point(1)
160
- whole[:right].should == nil
161
-
162
- bracesLeft = @snipper.isolate_point(5)
163
- bracesLeft[:right].should == "}}"
164
- end
165
-
166
- it "should include the isolated point in the middle string" do
167
- works = @snipper.isolate_point(2)
168
- works[:middle].strip.should == "do some1"
169
-
170
- @snipper.isolate_point(3)[:middle].strip.should == "do some2"
171
- @snipper.isolate_point(4)[:middle].gsub(/([\s]+)/," ").should == "block { do some3}"
172
- @snipper.isolate_point(5)[:middle].strip.should == "do some3"
173
- end
174
- end
175
-
176
-
177
-
178
- describe "delete_point" do
179
- before(:each) do
180
- @clipper = Individual.new("block {do some1 \n do some2 \n block {\n do some3}}")
181
- @parser = NudgeLanguageParser.new()
182
- end
183
-
184
- it "should return Individual#genome if[f] the position param is out of bounds" do
185
- @clipper.delete_point(-12).should == @clipper.program.listing
186
- @clipper.delete_point(933).should == @clipper.program.listing
187
- @clipper.delete_point(2).should_not == @clipper.program.listing
188
- end
189
-
190
- it "should call self#isolate_point to slice the wildtype genome" do
191
- @clipper.should_receive(:isolate_point).with(2).and_return(
192
- {:left => "so",:middle=>"it",:right=>"works"})
193
- @clipper.delete_point(2)
194
- end
195
-
196
- it "should produce a parsable genome" do
197
- (0..5).each do |where|
198
- @parser.parse(@clipper.delete_point(2)).should_not == nil
199
- end
200
- end
201
-
202
- it "should return a genome with at least one fewer program points" do
203
- startPoints = @clipper.points
204
- (0..5).each do |where|
205
- @parser.parse(@clipper.delete_point(2)).to_points.points.should < startPoints
206
- end
207
- end
208
-
209
- it "should delete the expected specific point (and any subpoints it has)" do
210
- @parser.parse(@clipper.delete_point(2)).to_points.points.should == 4
211
- @parser.parse(@clipper.delete_point(3)).to_points.points.should == 4
212
- @parser.parse(@clipper.delete_point(4)).to_points.points.should == 3
213
- @parser.parse(@clipper.delete_point(5)).to_points.points.should == 4
214
- end
215
-
216
- it "should return 'block {}' when the entire program is deleted" do
217
- @clipper.delete_point(1).should == "block {}"
218
- end
219
- end
220
-
221
-
222
- describe "replace_point" do
223
- before(:each) do
224
- @receiver = Individual.new("block {do some1 \n do some2 \n block {\n do some3}}")
225
- @parser = NudgeLanguageParser.new()
226
- @mutant = "do NOTHING"
227
- end
228
-
229
- it "should return Individual#genome if[f] the position param is out of bounds" do
230
- @receiver.replace_point(-1,@mutant).should == @receiver.program.listing
231
- @receiver.replace_point(132,@mutant).should == @receiver.program.listing
232
- @receiver.replace_point(2,@mutant).should_not == @receiver.program.listing
233
- end
234
-
235
- it "should raise an ArgumentError if passed an empty replacement" do
236
- lambda{@receiver.replace_point(1,"")}.should raise_error(ArgumentError)
237
- end
238
-
239
-
240
- it "should call self#isolate_point to slice the wildtype genome" do
241
- @receiver.should_receive(:isolate_point).with(2).and_return(
242
- {:left => "so ",:middle=>"it",:right=>" works"})
243
- @receiver.replace_point(2,"this")
244
- end
245
-
246
- it "should produce a parsable genome" do
247
- @parser.parse(@receiver.replace_point(2,@mutant)).should_not == nil
248
- @parser.parse(@receiver.replace_point(1,@mutant)).should_not == nil
249
- end
250
-
251
- it "should replace the expected specific point (and any subpoints it has)" do
252
- @receiver.replace_point(2,@mutant).should_not include("some1")
253
- @receiver.replace_point(3,@mutant).should_not include("some2")
254
- @receiver.replace_point(4,@mutant).should_not include("some3")
255
- @receiver.replace_point(5,@mutant).should_not include("some3")
256
- @receiver.replace_point(1,@mutant).should_not include("block")
257
- end
258
-
259
- it "should replace the entire program if it replaces point 0" do
260
- @receiver.replace_point(1,@mutant).should == " do NOTHING "
261
- end
262
-
263
- end
264
-
265
- describe "Station knowledge" do
266
- before(:each) do
267
- @dude = Individual.new("block {}")
268
- Station.cleanup
269
- @where = Station.new("here")
270
- end
271
-
272
- it "should know its Station" do
273
- @where.add_individual @dude
274
- @dude.station == @where
275
- end
276
- end
277
-
278
- describe "#write behavior" do
279
- before(:each) do
280
- Station.cleanup
281
- @dude = Individual.new("block {}")
282
- @dude.scores["error"] = 1
283
- @dude.timestamp = Time.utc(2000,"jan",1,20,15,1)
284
- @where = Station.new("here")
285
- @where.stub!(:database => "http://127.0.0.1:5984/here")
286
- @where.add_individual(@dude)
287
- FakeWeb.allow_net_connect = false
288
-
289
- @response_body = <<-END
290
- {
291
- "id": "12345678",
292
- "rev": "1-12345678"
293
- }
294
- END
295
- end
296
-
297
- it "should write its data to the database for its Station" do
298
- FakeWeb.register_uri(:post, "http://127.0.0.1:5984/here", body:@response_body)
299
- @dude.write
300
- @dude.id.should == "12345678"
301
- end
302
-
303
- it "should write the genome" do
304
- mockDatabase = mock("fakeDB")
305
- CouchRest.should_receive(:database!).and_return(mockDatabase)
306
- mockDatabase.should_receive(:save_doc).
307
- with(hash_including({"genome" => "block {}"})).and_return(@response_body)
308
- @dude.write
309
- end
310
-
311
- it "should write the scores hash" do
312
- mockDatabase = mock("fakeDB")
313
- CouchRest.should_receive(:database!).and_return(mockDatabase)
314
- mockDatabase.should_receive(:save_doc).
315
- with(hash_including({"scores" => {"error" => 1}})).and_return(@response_body)
316
- @dude.write
317
- end
318
-
319
- it "should write the Time.now" do
320
- mockDatabase = mock("fakeDB")
321
- CouchRest.should_receive(:database!).and_return(mockDatabase)
322
- mockDatabase.should_receive(:save_doc).
323
- with(hash_including({"creation_time" => Time.utc(2000,"jan",1,20,15,1)})).and_return(@response_body)
324
- @dude.write
325
- end
326
- end
327
-
328
-
329
- describe "#get" do
330
- before(:each) do
331
- @url = "http://localhost:5984/here"
332
- @individual_id = "88888"
333
- @genome = "do int_add"
334
-
335
- @response_body = <<-END
336
- {
337
- "_id": "88888",
338
- "_rev": "1-12345678",
339
- "genome": "#{@genome}"
340
- }
341
- END
342
-
343
- FakeWeb.allow_net_connect = false
344
- FakeWeb.register_uri(:get, "#{@url}/#{@individual_id}", body:@response_body)
345
- end
346
-
347
- it "retrive an individual from the data store by id" do
348
- @dude = Individual.get(@url, @individual_id)
349
- @dude.id.should == @individual_id
350
- @dude.genome.should == @genome
351
- end
352
-
353
- it "should handle connection errors"
354
- end
355
-
356
- end
@@ -1,40 +0,0 @@
1
- require File.join(File.dirname(__FILE__), "./../../spec_helper")
2
- include Nudge
3
-
4
- describe AnyOneSampler do
5
- before(:each) do
6
- @ao = AnyOneSampler.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{@ao.generate()}.should raise_error(ArgumentError)
20
- lambda{@ao.generate(@dudes)}.should_not raise_error(ArgumentError)
21
- end
22
-
23
- it "should return a Batch" do
24
- @ao.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
- one = @ao.generate(@dudes)
29
- one.length.should == 1
30
- one.each {|dude| @dudes.should include(dude)}
31
- end
32
-
33
- it "should invoke Batch#sample" do
34
- @dudes.should_receive(:sample).and_return(@dudes[0])
35
- one = @ao.generate(@dudes)
36
- end
37
-
38
- end
39
-
40
- end
@@ -1,111 +0,0 @@
1
- require File.join(File.dirname(__FILE__), "./../../spec_helper")
2
- include Nudge
3
-
4
- describe DominatedQuantileSampler do
5
- before(:each) do
6
- @dq = DominatedQuantileSampler.new
7
- end
8
-
9
-
10
- describe "domination_classes" do
11
- before(:each) do
12
- @dudes = Batch[Individual.new("block {}"), Individual.new("do int_add")]
13
- @dudes[0].scores["first"] = 120
14
- @dudes[1].scores["first"] = 2
15
- @dudes[0].scores["second"] = 2
16
- @dudes[1].scores["second"] = 120
17
- @dudes[0].scores["third"] = 20
18
- @dudes[1].scores["third"] = 1200
19
- end
20
-
21
- it "should take a Batch as an argument" do
22
- lambda{@dq.domination_classes()}.should raise_error(ArgumentError)
23
- lambda{@dq.domination_classes(@dudes)}.should_not raise_error(ArgumentError)
24
-
25
- end
26
-
27
- it "can take a template of objective names to use" do
28
- lambda{@dq.domination_classes(@dudes, ["first"])}.should_not raise_error(ArgumentError)
29
- end
30
-
31
- it "should return a Hash" do
32
- @dq.domination_classes(@dudes, ["first"]).should be_a_kind_of(Hash)
33
- end
34
-
35
- it "should use the count of dominating Individuals as the key" do
36
- @dq.domination_classes(@dudes, ["second"]).keys.should == [0,1]
37
- @dq.domination_classes(@dudes).keys.should == [0]
38
-
39
- end
40
-
41
- it "should have an Array of the Individuals in that class as the value" do
42
- @dq.domination_classes(@dudes, ["first"])[0].length.should == 1
43
- @dq.domination_classes(@dudes, ["first"])[0][0].should == @dudes[1]
44
- @dq.domination_classes(@dudes, ["second"])[0].length.should == 1
45
- @dq.domination_classes(@dudes, ["second"])[0][0].should == @dudes[0]
46
- @dq.domination_classes(@dudes, ["second", "third"])[0].length.should == 1
47
- @dq.domination_classes(@dudes, ["second", "third"])[0][0].should == @dudes[0]
48
- end
49
- end
50
-
51
-
52
- describe "#generate" do
53
- before(:each) do
54
- @dudes = Batch[Individual.new("block {}"), Individual.new("do int_add")]
55
- @dudes[0].scores["first"] = 120
56
- @dudes[1].scores["first"] = 2
57
- @dudes[0].scores["second"] = 2
58
- @dudes[1].scores["second"] = 120
59
- @dudes[0].scores["third"] = 20
60
- @dudes[1].scores["third"] = 1200
61
- end
62
-
63
- it "should take a Batch as a first parameter" do
64
- lambda{@dq.generate()}.should raise_error(ArgumentError)
65
- lambda{@dq.generate(@dudes)}.should_not raise_error(ArgumentError)
66
- end
67
-
68
- it "should return a Batch" do
69
- @dq.generate(@dudes).should be_a_kind_of(Batch)
70
- end
71
-
72
- it "should return a Batch containing references to individuals in the original Batch" do
73
- half = @dq.generate(@dudes)
74
- half.length.should be > 0
75
- half.each {|dude| @dudes.should include(dude)}
76
- end
77
-
78
- it "should have a parameter that specifies what fraction to return" do
79
- some = @dq.generate(@dudes,1.0)
80
- some.length.should == 2
81
-
82
- some = @dq.generate(@dudes,0.5)
83
- some.length.should == 1
84
- end
85
-
86
- it "should always return at least one for a non-zero fraction" do
87
- some = @dq.generate(@dudes,0.01)
88
- some.length.should be > 0
89
- some.each {|dude| @dudes.should include(dude)}
90
-
91
- some = @dq.generate(@dudes,0)
92
- some.length.should == 0
93
- end
94
-
95
-
96
- it "should take a template of objectives to use in sorting" do
97
- @dq.generate(@dudes,0.5,["first"]).should include(@dudes[0])
98
- @dq.generate(@dudes,0.5,["second"]).should include(@dudes[1])
99
- @dq.generate(@dudes,0.5,["second", "third"]).should include(@dudes[1])
100
- end
101
-
102
- it "should return the most-dominated Individuals first, nondominated last" do
103
- some = @dq.generate(@dudes,1, ["first"])
104
- some[0].should == @dudes[0]
105
-
106
- some = @dq.generate(@dudes,1, ["second"])
107
- some[0].should == @dudes[1]
108
- end
109
- end
110
-
111
- end
@@ -1,35 +0,0 @@
1
- require File.join(File.dirname(__FILE__), "./../../spec_helper")
2
- include Nudge
3
-
4
- describe AllDuplicatedGenomesSampler do
5
- before(:each) do
6
- @dg = AllDuplicatedGenomesSampler.new
7
- end
8
-
9
-
10
- describe "#generate" do
11
- before(:each) do
12
- @dudes = Batch[Individual.new("block {}"), Individual.new("block {}"), Individual.new("do int_add")]
13
- end
14
-
15
- it "should take a Batch as a first parameter" do
16
- lambda{@dg.generate()}.should raise_error(ArgumentError)
17
- lambda{@dg.generate(@dudes)}.should_not raise_error(ArgumentError)
18
- end
19
-
20
- it "should return a Batch" do
21
- @dg.generate(@dudes).should be_a_kind_of(Batch)
22
- end
23
-
24
- it "should return a Batch containing references to individuals in the original Batch" do
25
- repeats = @dg.generate(@dudes)
26
- repeats.length.should == 2
27
- repeats.each {|dude| @dudes.should include(dude)}
28
- end
29
-
30
- it "should return an empty Batch if there are no duplicates" do
31
- @dudes.delete_at(0)
32
- @dg.generate(@dudes).should be_empty
33
- end
34
- end
35
- end
@@ -1,43 +0,0 @@
1
- require File.join(File.dirname(__FILE__), "./../../../spec_helper")
2
- include Nudge
3
-
4
- describe ProgramPointEvaluator do
5
-
6
- describe "initialization" do
7
- it "should have an objective name set upon initialization" do
8
- lambda{ProgramPointEvaluator.new}.should raise_error(ArgumentError)
9
- end
10
- end
11
-
12
- describe "#evaluate" do
13
- before(:each) do
14
- @ppe = ProgramPointEvaluator.new(name:"point_count")
15
- @dudes = Batch[
16
- Individual.new("block {}"),
17
- Individual.new("block { block {}}"),
18
- Individual.new("block { block { block {}}}")
19
- ]
20
- end
21
-
22
- it "should take a Batch of individuals as an argument" do
23
- lambda{@ppe.evaluate(Individual.new("block {}"))}.should raise_error(ArgumentError)
24
- lambda{@ppe.evaluate(Batch[Individual.new("block {}")])}.should_not raise_error(ArgumentError)
25
- end
26
-
27
- it "should raise an exception if it can't evaluate an Individual" do
28
- lambda{@ppe.evaluate(Batch[Individual.new("blah_de_blah")])}.should raise_error(ArgumentError)
29
- end
30
-
31
- it "should write the number of program points into each individual" do
32
- @dudes.each {|dude| dude.scores["point_count"].should == nil}
33
- @ppe.evaluate(@dudes)
34
- @dudes.collect {|dude| dude.scores["point_count"]}.should == [1,2,3]
35
- end
36
-
37
- it "should return the same Batch it got, with updated values" do
38
- origIDs = @dudes.collect {|dude| dude.object_id}
39
- @ppe.evaluate(@dudes)
40
- @dudes.each {|dude| origIDs.should include(dude.object_id)}
41
- end
42
- end
43
- end