cauldron 0.1.3 → 0.1.5

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 (409) hide show
  1. data/.gitignore +51 -0
  2. data/Gemfile +6 -3
  3. data/Gemfile.lock +16 -3
  4. data/Rakefile +94 -92
  5. data/VERSION +1 -1
  6. data/bin/cauldron +2 -2
  7. data/cauldron.gemspec +15 -451
  8. data/features/cauldron_new_approach.feature +46 -0
  9. data/features/step_definitions/cauldron_steps.rb +11 -0
  10. data/features/step_definitions/terminal_steps.rb +0 -2
  11. data/features/support/env.rb +11 -1
  12. data/features/support/hooks.rb +5 -0
  13. data/lib/cauldron.rb +13 -7
  14. data/lib/cauldron/array_reverse_operator.rb +39 -0
  15. data/lib/cauldron/concat_operator.rb +34 -0
  16. data/lib/cauldron/if_relationship.rb +37 -0
  17. data/lib/cauldron/numeric_operator.rb +45 -0
  18. data/lib/cauldron/pot.rb +54 -162
  19. data/lib/cauldron/relationship.rb +5 -0
  20. data/lib/cauldron/terminal.rb +4 -60
  21. data/lib/cauldron/version.rb +3 -0
  22. data/lib/core/string.rb +21 -0
  23. data/sandbox.rb +27 -6
  24. data/spec/cauldron/array_reverse_operator_spec.rb +59 -0
  25. data/spec/cauldron/concat_operator_spec.rb +89 -0
  26. data/spec/cauldron/if_relationship_spec.rb +25 -0
  27. data/spec/cauldron/numeric_operator_spec.rb +70 -0
  28. data/spec/cauldron/pot_spec.rb +81 -151
  29. data/spec/cauldron/terminal_spec.rb +1 -39
  30. data/spec/examples/adding_if_statement.yml +13 -0
  31. data/spec/examples/simple_head_theory.txt +13 -0
  32. data/spec/spec_helper.rb +1 -14
  33. data/tasks/theory_tasks.rake +207 -207
  34. metadata +92 -532
  35. data/cauldron/.autotest +0 -23
  36. data/cauldron/History.txt +0 -6
  37. data/cauldron/Manifest.txt +0 -8
  38. data/cauldron/README.txt +0 -57
  39. data/cauldron/Rakefile +0 -27
  40. data/cauldron/bin/cauldron +0 -3
  41. data/cauldron/lib/cauldron.rb +0 -3
  42. data/cauldron/test/test_cauldron.rb +0 -8
  43. data/features/cauldron_example_cases.feature +0 -13
  44. data/features/cauldron_generates_runtime_method.feature +0 -16
  45. data/features/cauldron_generates_single_paramter_methods.feature +0 -25
  46. data/features/cauldron_interactive_start_terminal.feature +0 -17
  47. data/features/cauldron_quit_terminal.feature +0 -9
  48. data/features/cauldron_start_terminal.feature +0 -12
  49. data/features/support/method_1.example +0 -3
  50. data/features/support/method_2.example +0 -6
  51. data/lib/Chain.rb +0 -771
  52. data/lib/ChainMapping.rb +0 -172
  53. data/lib/CodeHandler.rb +0 -513
  54. data/lib/Mapping.rb +0 -27
  55. data/lib/MappingValues.rb +0 -24
  56. data/lib/PartialChain.rb +0 -253
  57. data/lib/Theory.rb +0 -295
  58. data/lib/UnifiedChain.rb +0 -351
  59. data/lib/cauldron/conversion.rb +0 -15
  60. data/lib/cauldron/demos.rb +0 -280
  61. data/lib/cauldron/env.rb +0 -1
  62. data/lib/cauldron/sexp2cauldron.rb +0 -139
  63. data/lib/cauldron/theory_factory.rb +0 -10
  64. data/lib/cauldron/util/home.rb +0 -21
  65. data/lib/cauldron/util/saver.rb +0 -45
  66. data/lib/core/ActsAsCode.rb +0 -25
  67. data/lib/core/BlockToken.rb +0 -33
  68. data/lib/core/CCall.rb +0 -7
  69. data/lib/core/CTestCase.rb +0 -27
  70. data/lib/core/ClassMethodCallContainer.rb +0 -58
  71. data/lib/core/Container.rb +0 -95
  72. data/lib/core/InstanceCallContainer.rb +0 -298
  73. data/lib/core/MethodUsage.rb +0 -65
  74. data/lib/core/PrintVariables.rb +0 -25
  75. data/lib/core/TheoryGenerator.rb +0 -753
  76. data/lib/core/Token.rb +0 -7
  77. data/lib/core/assignment/Assignment.rb +0 -18
  78. data/lib/core/assignment/Equal.rb +0 -39
  79. data/lib/core/assignment/Equivalent.rb +0 -20
  80. data/lib/core/assignment/NotEqual.rb +0 -14
  81. data/lib/core/call_container/CallContainer.rb +0 -72
  82. data/lib/core/class_method_call/New.rb +0 -15
  83. data/lib/core/class_method_call/RuntimeClassMethodCall.rb +0 -31
  84. data/lib/core/declaration/Declaration.rb +0 -16
  85. data/lib/core/declaration/LiteralDeclaration.rb +0 -47
  86. data/lib/core/declaration/VariableDeclaration.rb +0 -59
  87. data/lib/core/instance_call/ArrayEach.rb +0 -23
  88. data/lib/core/instance_call/ArrayLength.rb +0 -15
  89. data/lib/core/instance_call/Chop.rb +0 -19
  90. data/lib/core/instance_call/Copy.rb +0 -22
  91. data/lib/core/instance_call/DeclaredVariable.rb +0 -18
  92. data/lib/core/instance_call/InstanceCall.rb +0 -77
  93. data/lib/core/instance_call/Params.rb +0 -15
  94. data/lib/core/instance_call/Push.rb +0 -20
  95. data/lib/core/instance_call/StringLength.rb +0 -32
  96. data/lib/core/instance_call/Times.rb +0 -20
  97. data/lib/core/instance_call/instance_calls.rb +0 -176
  98. data/lib/core/instance_call/length_equal.rb +0 -15
  99. data/lib/core/kernal/EvalCall.rb +0 -15
  100. data/lib/core/kernal/LocalVariablesCall.rb +0 -15
  101. data/lib/core/literal/Literal.rb +0 -111
  102. data/lib/core/literal/Raw.rb +0 -23
  103. data/lib/core/literal/RuntimeMethodLiteral.rb +0 -21
  104. data/lib/core/literal/StatementLiteral.rb +0 -28
  105. data/lib/core/method_call/AvailableVariablesCall.rb +0 -25
  106. data/lib/core/method_call/ClassCall.rb +0 -33
  107. data/lib/core/method_call/DefCall.rb +0 -72
  108. data/lib/core/method_call/EvaluateClassCall.rb +0 -29
  109. data/lib/core/method_call/MethodNameCall.rb +0 -27
  110. data/lib/core/method_call/ToDeclarationCall.rb +0 -15
  111. data/lib/core/requirement/Requirement.rb +0 -292
  112. data/lib/core/runtime_class/ArrayClass.rb +0 -19
  113. data/lib/core/runtime_class/ClassCallClass.rb +0 -23
  114. data/lib/core/runtime_class/ClassEvaluationClass.rb +0 -19
  115. data/lib/core/runtime_class/ClassName.rb +0 -18
  116. data/lib/core/runtime_class/DefCallClass.rb +0 -21
  117. data/lib/core/runtime_class/EqualClass.rb +0 -19
  118. data/lib/core/runtime_class/FixnumClass.rb +0 -15
  119. data/lib/core/runtime_class/InstanceCallClass.rb +0 -19
  120. data/lib/core/runtime_class/InstanceCallContainerClass.rb +0 -16
  121. data/lib/core/runtime_class/InstanceClassCallClass.rb +0 -19
  122. data/lib/core/runtime_class/LiteralClass.rb +0 -19
  123. data/lib/core/runtime_class/MethodParameterClass.rb +0 -27
  124. data/lib/core/runtime_class/MethodUsageClass.rb +0 -27
  125. data/lib/core/runtime_class/RequirementClass.rb +0 -19
  126. data/lib/core/runtime_class/ReturnClass.rb +0 -21
  127. data/lib/core/runtime_class/RuntimeClass.rb +0 -30
  128. data/lib/core/runtime_class/RuntimeClassClass.rb +0 -19
  129. data/lib/core/runtime_class/RuntimeMethodClass.rb +0 -34
  130. data/lib/core/runtime_class/StatementClass.rb +0 -53
  131. data/lib/core/runtime_class/StringClass.rb +0 -23
  132. data/lib/core/runtime_class/StringLengthClass.rb +0 -19
  133. data/lib/core/runtime_class/StringVariableClass.rb +0 -19
  134. data/lib/core/runtime_class/ThisClass.rb +0 -15
  135. data/lib/core/runtime_class/UnknownClass.rb +0 -23
  136. data/lib/core/runtime_class/class_names.rb +0 -95
  137. data/lib/core/runtime_class/runtime_class.rb +0 -123
  138. data/lib/core/runtime_method/ActsAsRuntimeMethod.rb +0 -293
  139. data/lib/core/runtime_method/ParametersContainer.rb +0 -29
  140. data/lib/core/runtime_method/RealisedRuntimeMethod.rb +0 -94
  141. data/lib/core/runtime_method/RuntimeMethod.rb +0 -814
  142. data/lib/core/runtime_method/WriteParameters.rb +0 -35
  143. data/lib/core/statement/ActsAsStatement.rb +0 -20
  144. data/lib/core/statement/ArrayAccess.rb +0 -122
  145. data/lib/core/statement/BlockStatement.rb +0 -348
  146. data/lib/core/statement/DeclarationStatement.rb +0 -19
  147. data/lib/core/statement/HackStatement.rb +0 -25
  148. data/lib/core/statement/HashAccess.rb +0 -18
  149. data/lib/core/statement/OpenStatement.rb +0 -178
  150. data/lib/core/statement/RealisedStatement.rb +0 -5
  151. data/lib/core/statement/SingleLineBlockStatement.rb +0 -39
  152. data/lib/core/statement/Statement.rb +0 -1091
  153. data/lib/core/statement/StatementGroup.rb +0 -157
  154. data/lib/core/statement/StatementStructure2.rb +0 -224
  155. data/lib/core/statement/TheoryStatement.rb +0 -68
  156. data/lib/core/statement/TopologicalStatements.rb +0 -34
  157. data/lib/core/syntax/Addition.rb +0 -26
  158. data/lib/core/syntax/BlockContainer.rb +0 -102
  159. data/lib/core/syntax/Boolean.rb +0 -15
  160. data/lib/core/syntax/Code.rb +0 -11
  161. data/lib/core/syntax/Do.rb +0 -20
  162. data/lib/core/syntax/False.rb +0 -12
  163. data/lib/core/syntax/If.rb +0 -36
  164. data/lib/core/syntax/Nil.rb +0 -15
  165. data/lib/core/syntax/Return.rb +0 -33
  166. data/lib/core/syntax/Subtract.rb +0 -19
  167. data/lib/core/syntax/This.rb +0 -40
  168. data/lib/core/syntax/True.rb +0 -20
  169. data/lib/core/syntax/syntax.rb +0 -24
  170. data/lib/core/tracking/ActsAsTrackable.rb +0 -65
  171. data/lib/core/tracking/History.rb +0 -167
  172. data/lib/core/tracking/RuntimeTrackingMethod.rb +0 -32
  173. data/lib/core/tracking/Step.rb +0 -52
  174. data/lib/core/variable/ArrayVariable.rb +0 -76
  175. data/lib/core/variable/BaseVariable.rb +0 -152
  176. data/lib/core/variable/BlockVariable.rb +0 -92
  177. data/lib/core/variable/FixnumVariable.rb +0 -35
  178. data/lib/core/variable/HistoryVariable.rb +0 -8
  179. data/lib/core/variable/MethodParameter.rb +0 -179
  180. data/lib/core/variable/MethodUsageVariable.rb +0 -60
  181. data/lib/core/variable/NilVariable.rb +0 -29
  182. data/lib/core/variable/RuntimeMethodParameter.rb +0 -67
  183. data/lib/core/variable/StatementVariable.rb +0 -72
  184. data/lib/core/variable/StepVariable.rb +0 -7
  185. data/lib/core/variable/StringVariable.rb +0 -46
  186. data/lib/core/variable/TypeVariable.rb +0 -72
  187. data/lib/core/variable/Unknown.rb +0 -102
  188. data/lib/core/variable/UnknownVariable.rb +0 -29
  189. data/lib/core/variable/Variable.rb +0 -70
  190. data/lib/core/variable/VariableContainer.rb +0 -28
  191. data/lib/core/variable/VariableIncluded.rb +0 -27
  192. data/lib/core/variable/VariableReference.rb +0 -85
  193. data/lib/error/FailedToFindStatementContainerError.rb +0 -7
  194. data/lib/error/FailedToFindStatementError.rb +0 -7
  195. data/lib/error/FailedToFindVariableError.rb +0 -7
  196. data/lib/error/FailedToLiteraliseError.rb +0 -7
  197. data/lib/error/FailedVariableMatch.rb +0 -7
  198. data/lib/error/ImproperStatementUsageError.rb +0 -7
  199. data/lib/error/IncompatiableRequirementsError.rb +0 -7
  200. data/lib/error/InvalidStatementError.rb +0 -7
  201. data/lib/error/MethodSizeError.rb +0 -7
  202. data/lib/error/RuntimeSyntaxError.rb +0 -7
  203. data/lib/error/UnexpectedStatementTypeError.rb +0 -7
  204. data/lib/error/UnknownStatementType.rb +0 -7
  205. data/lib/error/UnliteralisableError.rb +0 -7
  206. data/lib/implemented_chain.rb +0 -35
  207. data/lib/intrinsic/IntrinsicLastRuntimeMethod.rb +0 -20
  208. data/lib/intrinsic/IntrinsicLiteral.rb +0 -26
  209. data/lib/intrinsic/IntrinsicObject.rb +0 -22
  210. data/lib/intrinsic/IntrinsicRuntimeMethod.rb +0 -27
  211. data/lib/intrinsic/IntrinsicTestCases.rb +0 -17
  212. data/lib/logger/StandardLogger.rb +0 -62
  213. data/lib/required.rb +0 -222
  214. data/lib/ruby_code/Array.rb +0 -95
  215. data/lib/ruby_code/Fixnum.rb +0 -39
  216. data/lib/ruby_code/Hash.rb +0 -25
  217. data/lib/ruby_code/NilClass.rb +0 -19
  218. data/lib/ruby_code/Object.rb +0 -24
  219. data/lib/ruby_code/String.rb +0 -63
  220. data/lib/ruby_code/Symbol.rb +0 -7
  221. data/lib/standard_library/Tasks.rb +0 -12
  222. data/lib/theories.rb +0 -166
  223. data/lib/theory/ActionImplementation.rb +0 -17
  224. data/lib/theory/TheoryAction.rb +0 -100
  225. data/lib/theory/TheoryChainValidator.rb +0 -103
  226. data/lib/theory/TheoryComponent.rb +0 -59
  227. data/lib/theory/TheoryConnector.rb +0 -756
  228. data/lib/theory/TheoryDependent.rb +0 -135
  229. data/lib/theory/TheoryImplementation.rb +0 -75
  230. data/lib/theory/TheoryResult.rb +0 -131
  231. data/lib/theory/TheoryVariable.rb +0 -63
  232. data/lib/theory/theory_collection.rb +0 -62
  233. data/lib/util/ClassEvaluation.rb +0 -44
  234. data/lib/util/CodeEvaluation.rb +0 -39
  235. data/lib/util/DeclarationStatementEvaluation.rb +0 -32
  236. data/lib/util/MethodEvaluation.rb +0 -49
  237. data/lib/util/MethodTester.rb +0 -71
  238. data/lib/util/MethodValidation.rb +0 -149
  239. data/lib/util/MethodWriter.rb +0 -66
  240. data/lib/util/Parser.rb +0 -305
  241. data/lib/util/StatementCheck.rb +0 -44
  242. data/lib/util/StringToTheory.rb +0 -142
  243. data/lib/util/System.rb +0 -8
  244. data/spec/cauldron/chain_spec.rb +0 -24
  245. data/spec/cauldron/demos_spec.rb +0 -30
  246. data/spec/cauldron/runtime_method_spec.rb +0 -92
  247. data/spec/cauldron/saver_spec.rb +0 -45
  248. data/spec/cauldron/sexp_2_cauldron_spec.rb +0 -118
  249. data/spec/cauldron/theory_action_spec.rb +0 -25
  250. data/spec/cauldron/theory_connector_spec.rb +0 -52
  251. data/spec/cauldron/theory_spec.rb +0 -59
  252. data/spec/cauldron/unified_chain_spec.rb +0 -140
  253. data/test/fixtures/chains/1/declaration.txt +0 -26
  254. data/test/fixtures/chains/1/dump +0 -0
  255. data/test/fixtures/chains/2/declaration.txt +0 -26
  256. data/test/fixtures/chains/2/dump +0 -0
  257. data/test/fixtures/chains/3/declaration.txt +0 -26
  258. data/test/fixtures/chains/3/dump +0 -0
  259. data/test/fixtures/implementation_results/0/declaration.txt +0 -3
  260. data/test/fixtures/implementation_results/0/dump +0 -0
  261. data/test/fixtures/theories/0/declaration.txt +0 -9
  262. data/test/fixtures/theories/0/desc +0 -10
  263. data/test/fixtures/theories/0/dump +0 -0
  264. data/test/fixtures/theories/1/declaration.txt +0 -15
  265. data/test/fixtures/theories/1/desc +0 -11
  266. data/test/fixtures/theories/1/dump +0 -0
  267. data/test/fixtures/theories/10/declaration.txt +0 -23
  268. data/test/fixtures/theories/10/desc +0 -17
  269. data/test/fixtures/theories/10/dump +0 -0
  270. data/test/fixtures/theories/11/declaration.txt +0 -20
  271. data/test/fixtures/theories/11/desc +0 -14
  272. data/test/fixtures/theories/11/dump +0 -0
  273. data/test/fixtures/theories/12/declaration.txt +0 -18
  274. data/test/fixtures/theories/12/desc +0 -12
  275. data/test/fixtures/theories/12/dump +0 -0
  276. data/test/fixtures/theories/13/declaration.txt +0 -24
  277. data/test/fixtures/theories/13/desc +0 -20
  278. data/test/fixtures/theories/13/dump +0 -0
  279. data/test/fixtures/theories/14/declaration.txt +0 -26
  280. data/test/fixtures/theories/14/desc +0 -20
  281. data/test/fixtures/theories/14/dump +0 -0
  282. data/test/fixtures/theories/15/declaration.txt +0 -20
  283. data/test/fixtures/theories/15/desc +0 -14
  284. data/test/fixtures/theories/15/dump +0 -0
  285. data/test/fixtures/theories/16/declaration.txt +0 -30
  286. data/test/fixtures/theories/16/desc +0 -14
  287. data/test/fixtures/theories/16/dump +0 -0
  288. data/test/fixtures/theories/17/declaration.txt +0 -25
  289. data/test/fixtures/theories/17/desc +0 -11
  290. data/test/fixtures/theories/17/dump +0 -0
  291. data/test/fixtures/theories/18/declaration.txt +0 -23
  292. data/test/fixtures/theories/18/desc +0 -11
  293. data/test/fixtures/theories/18/dump +0 -0
  294. data/test/fixtures/theories/19/declaration.txt +0 -23
  295. data/test/fixtures/theories/19/desc +0 -11
  296. data/test/fixtures/theories/19/dump +0 -0
  297. data/test/fixtures/theories/2/declaration.txt +0 -12
  298. data/test/fixtures/theories/2/desc +0 -10
  299. data/test/fixtures/theories/2/dump +0 -0
  300. data/test/fixtures/theories/20/declaration.txt +0 -23
  301. data/test/fixtures/theories/20/desc +0 -17
  302. data/test/fixtures/theories/20/dump +0 -0
  303. data/test/fixtures/theories/3/declaration.txt +0 -19
  304. data/test/fixtures/theories/3/desc +0 -11
  305. data/test/fixtures/theories/3/dump +0 -0
  306. data/test/fixtures/theories/4/declaration.txt +0 -11
  307. data/test/fixtures/theories/4/desc +0 -11
  308. data/test/fixtures/theories/4/dump +0 -0
  309. data/test/fixtures/theories/5/declaration.txt +0 -6
  310. data/test/fixtures/theories/5/desc +0 -9
  311. data/test/fixtures/theories/5/dump +0 -0
  312. data/test/fixtures/theories/6/declaration.txt +0 -13
  313. data/test/fixtures/theories/6/desc +0 -11
  314. data/test/fixtures/theories/6/dump +0 -0
  315. data/test/fixtures/theories/7/declaration.txt +0 -19
  316. data/test/fixtures/theories/7/desc +0 -11
  317. data/test/fixtures/theories/7/dump +0 -0
  318. data/test/fixtures/theories/8/declaration.txt +0 -21
  319. data/test/fixtures/theories/8/desc +0 -11
  320. data/test/fixtures/theories/8/dump +0 -0
  321. data/test/fixtures/theories/9/declaration.txt +0 -24
  322. data/test/fixtures/theories/9/desc +0 -20
  323. data/test/fixtures/theories/9/dump +0 -0
  324. data/test/fixtures/theory_implementations/0/declaration.txt +0 -11
  325. data/test/fixtures/theory_implementations/0/desc.txt +0 -9
  326. data/test/fixtures/theory_implementations/0/dump +0 -0
  327. data/test/fixtures/theory_implementations/0/theory_id +0 -1
  328. data/test/fixtures/theory_implementations/1/declaration.txt +0 -11
  329. data/test/fixtures/theory_implementations/1/desc.txt +0 -9
  330. data/test/fixtures/theory_implementations/1/dump +0 -1
  331. data/test/fixtures/theory_implementations/1/theory_id +0 -1
  332. data/test/fixtures/theory_implementations/2/declaration.txt +0 -11
  333. data/test/fixtures/theory_implementations/2/desc.txt +0 -9
  334. data/test/fixtures/theory_implementations/2/dump +0 -0
  335. data/test/fixtures/theory_implementations/2/theory_id +0 -1
  336. data/test/output/simple_method.txt +0 -5
  337. data/test/output/test_method/first_possible_method.txt +0 -6
  338. data/test/output/test_simple_cases/simple_case_01.txt +0 -8
  339. data/test/output/test_simple_cases/simple_case_02.txt +0 -7
  340. data/test/output/test_simple_cases/simple_case_03.txt +0 -8
  341. data/test/output/test_simple_cases/simple_case_04.txt +0 -8
  342. data/test/output/test_simple_cases/simple_case_05.txt +0 -8
  343. data/test/output/test_simple_cases/simple_case_06.txt +0 -9
  344. data/test/output/test_simple_cases/simple_case_07.txt +0 -9
  345. data/test/output/test_simple_cases/simple_case_08.txt +0 -9
  346. data/test/tc_describe.rb +0 -46
  347. data/test/tc_method.rb +0 -130
  348. data/test/tc_requirement.rb +0 -30
  349. data/test/tc_suite_complete.rb +0 -26
  350. data/test/tc_variable.rb +0 -52
  351. data/test/ts_complete.rb +0 -74
  352. data/test/ts_stable.rb +0 -81
  353. data/test/unit/core/declaration/tc_literal_declaration.rb +0 -34
  354. data/test/unit/core/method_call/tc_class_call.rb +0 -20
  355. data/test/unit/core/runtime_method/tc_realised_runtime_method.rb +0 -132
  356. data/test/unit/core/runtime_method/tc_runtime_method.rb +0 -546
  357. data/test/unit/core/statement/tc_array_access.rb +0 -63
  358. data/test/unit/core/statement/tc_block_statement.rb +0 -53
  359. data/test/unit/core/statement/tc_hack_statement.rb +0 -26
  360. data/test/unit/core/statement/tc_open_statement.rb +0 -79
  361. data/test/unit/core/statement/tc_statement.rb +0 -483
  362. data/test/unit/core/statement/tc_statement_group.rb +0 -35
  363. data/test/unit/core/statement/tc_statement_replace_variable.rb +0 -61
  364. data/test/unit/core/statement/tc_theory_statement.rb +0 -53
  365. data/test/unit/core/syntax/tc_block_container.rb +0 -32
  366. data/test/unit/core/syntax/tc_if_container.rb +0 -39
  367. data/test/unit/core/tc_class_method_call.rb +0 -34
  368. data/test/unit/core/tc_container.rb +0 -41
  369. data/test/unit/core/tc_ctest_case.rb +0 -25
  370. data/test/unit/core/tc_instance_call_container.rb +0 -93
  371. data/test/unit/core/tc_literal.rb +0 -30
  372. data/test/unit/core/tc_theory_generator.rb +0 -336
  373. data/test/unit/core/tc_theory_generator_heavy.rb +0 -42
  374. data/test/unit/core/tracking/tc_history.rb +0 -104
  375. data/test/unit/core/tracking/tc_step.rb +0 -65
  376. data/test/unit/core/variable/tc_array_variable.rb +0 -61
  377. data/test/unit/core/variable/tc_block_variable.rb +0 -17
  378. data/test/unit/core/variable/tc_fixnum_variable.rb +0 -54
  379. data/test/unit/core/variable/tc_method_parameter_variable.rb +0 -22
  380. data/test/unit/core/variable/tc_runtime_method_variable.rb +0 -32
  381. data/test/unit/core/variable/tc_string_variable.rb +0 -37
  382. data/test/unit/core/variable/tc_unknown.rb +0 -24
  383. data/test/unit/core/variable/tc_variable_reference.rb +0 -28
  384. data/test/unit/ruby_code/tc_array.rb +0 -64
  385. data/test/unit/ruby_code/tc_fixnum.rb +0 -18
  386. data/test/unit/ruby_code/tc_hash.rb +0 -41
  387. data/test/unit/ruby_code/tc_string.rb +0 -38
  388. data/test/unit/tc_chain.rb +0 -434
  389. data/test/unit/tc_chain_mapping.rb +0 -62
  390. data/test/unit/tc_chain_with_case_1.rb +0 -169
  391. data/test/unit/tc_instance_call.rb +0 -40
  392. data/test/unit/tc_method_usage.rb +0 -35
  393. data/test/unit/tc_pot.rb +0 -124
  394. data/test/unit/tc_runtime_tracking_method.rb +0 -40
  395. data/test/unit/tc_theory.rb +0 -531
  396. data/test/unit/tc_variable_declaration.rb +0 -32
  397. data/test/unit/theory/tc_theory_action.rb +0 -108
  398. data/test/unit/theory/tc_theory_action_implementation.rb +0 -23
  399. data/test/unit/theory/tc_theory_chain_validator.rb +0 -340
  400. data/test/unit/theory/tc_theory_connector.rb +0 -361
  401. data/test/unit/theory/tc_theory_dependent.rb +0 -153
  402. data/test/unit/theory/tc_theory_implementation.rb +0 -137
  403. data/test/unit/theory/tc_theory_result.rb +0 -112
  404. data/test/unit/theory/tc_theory_variable.rb +0 -45
  405. data/test/unit/util/tc_method_validation.rb +0 -101
  406. data/test/unit/util/tc_parser.rb +0 -110
  407. data/test/unit/util/tc_string_to_theory.rb +0 -300
  408. data/test/unit/variable/tc_method_usage_variable.rb +0 -25
  409. data/tmp/runtime_method_evaluation.rb +0 -16
@@ -1,19 +0,0 @@
1
-
2
- dependent_one = TheoryDependent.new(
3
- StringToTheory.run(
4
- "if(var1.realise2(var2[var3][:params]).params[var4].value.length == var2[var3][:output])\nreturn true\nend"
5
- )
6
- )
7
- action_one = TheoryAction.new(
8
- TheoryStatement.new(
9
- StringToTheory.run(
10
- 'Statement.new(Return.new,InstanceCallContainer.new(var1.params[var4],StringLength.new))'
11
- )
12
- ),
13
- StringToTheory.run('var1.statement_id')
14
- )
15
- result_one = TheoryResult.new(
16
- StringToTheory.run("if(var1.pass?(var2[var3]))\nreturn true\nend")
17
- )
18
- Theory.new([dependent_one],action_one,[result_one])
19
-
@@ -1,11 +0,0 @@
1
- if:
2
- if(var1.realise2(var2[var3][:params]).params[var4].value.length == var2[var3][:output])
3
- return true
4
- end
5
-
6
- action:
7
- <runtime_method>.add_statement_at(Statement.new(Return.new, InstanceCallContainer.new(var1.params[var4], StringLength.new)),var1.statement_id)
8
- result:
9
- if(var1.pass?(var2[var3]))
10
- return true
11
- end
@@ -1,21 +0,0 @@
1
-
2
- dependent_one = TheoryDependent.new(
3
- StringToTheory.run(
4
- "if((var1[var2][:params][var2] + var1[var2][:params][var3]) == var1[var2][:output])\nreturn true\nend"
5
- )
6
- )
7
- action_one = TheoryAction.new(
8
- TheoryStatement.new(
9
- StringToTheory.run(
10
- 'Statement.new(Unknown.new,Equal.new,var4.params[var2],Addition.new,var4.params[var3])'
11
- )
12
- ),
13
- StringToTheory.run('var4.statement_id')
14
- )
15
- result_one = TheoryResult.new(
16
- StringToTheory.run(
17
- "if(var4.all_pass?(var1))\nreturn true\nend"
18
- ),true
19
- )
20
- Theory.new([dependent_one],action_one,[result_one])
21
-
@@ -1,11 +0,0 @@
1
- if:
2
- if(var1[var2][:params][var2] + var1[var2][:params][var3] == var1[var2][:output])
3
- return true
4
- end
5
-
6
- action:
7
- <runtime_method>.add_statement_at(Statement.new(Unknown.new, Equal.new, var4.params[var2], Addition.new, var4.params[var3]),var4.statement_id)
8
- result:
9
- if(var4.all_pass?(var1))
10
- return true
11
- end
@@ -1,24 +0,0 @@
1
-
2
- dependent_one = TheoryDependent.new(StringToTheory.run("if(var2[var3].kind_of?(CTestCase))\nreturn true\nend"))
3
- dependent_two = TheoryDependent.new(StringToTheory.run("if(var6.kind_of?(Fixnum))\nreturn true\nend"))
4
- dependent_three = TheoryDependent.new(
5
- StringToTheory.run("if((var2[var3][:params][var6] == var2[var4][:params][var6])==false)\nreturn true\nend")
6
- )
7
- action = TheoryAction.new(
8
- TheoryStatement.new(StringToTheory.run(
9
- 'Statement.new(If.new,Container.new(var2[var3][:params][var6],Equivalent.new,var2[var3][:output]))'
10
- )),
11
- StringToTheory.run('var1.statement_id')
12
- )
13
- result_one = TheoryResult.new(StringToTheory.run(
14
- "if(var1.history(var2[var3][:params]).any? { |x| x.statement_id == var1.last.statement_id })\nreturn true\nend"
15
- ))
16
- result_two = TheoryResult.new(StringToTheory.run(
17
- "if((var1.history(var2[var4][:params]).any? { |x| x.statement_id == var1.last.statement_id })==false)\nreturn true\nend"
18
- ))
19
- Theory.new(
20
- [dependent_one,dependent_two,dependent_three],
21
- action,
22
- [result_one,result_two]
23
- )
24
-
@@ -1,20 +0,0 @@
1
- if:
2
- if(var2[var3].kind_of?(CTestCase))
3
- return true
4
- end
5
- if(var6.kind_of?(Fixnum))
6
- return true
7
- end
8
- if((var2[var3][:params][var6] == var2[var4][:params][var6]) == false)
9
- return true
10
- end
11
-
12
- action:
13
- <runtime_method>.add_statement_at(Statement.new(If.new, Container.new(var2[var3][:params][var6], Equivalent.new, var2[var3][:output])),var1.statement_id)
14
- result:
15
- if(var1.history(var2[var3][:params]).any?{ |x| x.statement_id == var1.last.statement_id} )
16
- return true
17
- end
18
- if((var1.history(var2[var4][:params]).any?{ |x| x.statement_id == var1.last.statement_id} ) == false)
19
- return true
20
- end
@@ -1,11 +0,0 @@
1
-
2
- theory = Theory.load_theory(1)
3
- potential_values = [
4
- Parser.run('0'),
5
- Parser.run('test_cases'),
6
- Parser.run('runtime_method')
7
- ]
8
- results = theory.rewrite_permutations(potential_values)
9
- # NOTE: Rember use grep -A and -B to match particular cases
10
- results[5]
11
-
@@ -1,9 +0,0 @@
1
- if:
2
- if(runtime_method.realise2(test_cases[0][:params]).params[0].value.length == test_cases[0][:output].length)
3
- end
4
- action:
5
- <runtime_method>.add_statement_at(Statement.new(Return.new, runtime_method.params[0]),0)
6
- result:
7
- if(runtime_method.all_pass?(test_cases))
8
- end
9
- returns true
@@ -1,11 +0,0 @@
1
-
2
- theory = Theory.load_theory(8)
3
- potential_values = [
4
- Parser.run('0'),
5
- Parser.run('test_cases'),
6
- Parser.run('runtime_method')
7
- ]
8
- results = theory.rewrite_permutations(potential_values)
9
- # NOTE: Rember use grep -A and -B to match particular cases
10
- results[0]
11
-
@@ -1,9 +0,0 @@
1
- if:
2
- if(test_cases[0][:params][0] + test_cases[0][:params][1] == test_cases[0][:output])
3
- end
4
- action:
5
- <runtime_method>.add_statement_at(Statement.new(Unknown.new, Equal.new, runtime_method.params[0], Addition.new, runtime_method.params[1]),0)
6
- result:
7
- if(runtime_method.all_pass?(test_cases))
8
- end
9
- returns true
@@ -1,11 +0,0 @@
1
-
2
- theory = Theory.load_theory(1)
3
- potential_values = [
4
- Parser.run('0'),
5
- Parser.run('test_cases'),
6
- Parser.run('runtime_method')
7
- ]
8
- results = theory.rewrite_permutations(potential_values)
9
- # NOTE: Rember use grep -A and -B to match particular cases
10
- results[4]
11
-
@@ -1,9 +0,0 @@
1
- if:
2
- if(runtime_method.realise2(test_cases[0][:params]).params[0].value.length == test_cases[0][:output])
3
- end
4
- action:
5
- <runtime_method>.add_statement_at(Statement.new(Return.new, test_cases[0][:output]),0)
6
- result:
7
- if(runtime_method.pass?(test_cases[0]))
8
- end
9
- returns true
@@ -1,5 +0,0 @@
1
-
2
- #
3
- #
4
- def method_0
5
- end
@@ -1,6 +0,0 @@
1
-
2
- #
3
- #
4
- def method_0
5
- var_0 = 8
6
- end
@@ -1,8 +0,0 @@
1
-
2
- #
3
- # @param var_0 = 8
4
- #
5
- def method_0(var_0)
6
- var_4 = var_0
7
- return var_4
8
- end
@@ -1,7 +0,0 @@
1
- #
2
- # @param var_0 = 'test'
3
- #
4
- def method_0(var_0)
5
- var_4 = var_0
6
- return var_4
7
- end
@@ -1,8 +0,0 @@
1
- #
2
- # @param var_0 = 'tests'
3
- #
4
- def method_0(var_0)
5
- var_5 = var_0.chop
6
- var_4 = var_5
7
- return var_4
8
- end
@@ -1,8 +0,0 @@
1
- #
2
- # @param var_0 = 'tests'
3
- #
4
- def method_0(var_0)
5
- var_7 = var_0.length
6
- var_4 = var_7
7
- return var_4
8
- end
@@ -1,8 +0,0 @@
1
- #
2
- # @param var_0 = 'tested'
3
- #
4
- def method_0(var_0)
5
- var_5 = var_0.chop
6
- var_4 = var_5
7
- return var_4
8
- end
@@ -1,9 +0,0 @@
1
- #
2
- # @param var_0 = 'tested'
3
- #
4
- def method_0(var_0)
5
- var_31 = var_0.chop
6
- var_35 = var_31.chop
7
- var_34 = var_35
8
- return var_34
9
- end
@@ -1,9 +0,0 @@
1
- #
2
- # @param var_0 = 'tested'
3
- # @param var_1 = 'warren'
4
- #
5
- def method_0(var_0, var_1)
6
- var_7 = var_0.chop
7
- var_6 = var_7
8
- return var_6
9
- end
@@ -1,9 +0,0 @@
1
- #
2
- # @param var_0 = 6
3
- # @param var_1 = 4
4
- #
5
- def method_0(var_0, var_1)
6
- var_11 = var_0 - var_1
7
- var_6 = var_11
8
- return var_6
9
- end
@@ -1,46 +0,0 @@
1
- require 'required'
2
- require 'test/unit'
3
-
4
- class TestDescribe < Test::Unit::TestCase
5
-
6
- def setup
7
-
8
- end
9
-
10
- def teardown
11
- System.reset
12
- RuntimeMethod.reset_global_id
13
- end
14
-
15
- # There was a bug occuring requirements were added to a variable via
16
- # the describe call. This shouldn't be the case.
17
- #
18
- def test_nothing_is_added
19
-
20
- # Create the method variable for the method (self = 'test')
21
- method_variable = MethodParameter.new
22
-
23
- # # Create runtime method with one parameter ('test')
24
- # runtime_method = RuntimeMethod.new(MethodUsage.new(MethodParameter.new))
25
- # #runtime_method.parameters = [method_variable]
26
- #
27
- # # Start by considering the statement varA = varB.chop
28
- # varB = Unknown.new
29
- # varC = Unknown.new
30
- # consider_statement = DeclarationStatement.new(varC,Equal.new,InstanceCallContainer.new(varB,Chop.new))
31
- # #populated_method = runtime_method.consider(consider_statement).shift
32
- #
33
- # # There should be two variables, one the method variable - what was varB, and the newly declared variable
34
- # assert(populated_method.available_variables[0].kind_of?(MethodParameter))
35
- # assert(populated_method.available_variables[1].kind_of?(Variable))
36
- #
37
- # # The declared variable shouldn't have any actual requirements - I think
38
- # assert(populated_method.available_variables[1].empty?)
39
- #
40
- # # Describe the variable and confirm that the variable still doesn't have any requirements
41
- # populated_method.available_variables[1].describe(populated_method)
42
- # assert(populated_method.available_variables[1].empty?)
43
-
44
- end
45
-
46
- end
@@ -1,130 +0,0 @@
1
- require 'required'
2
- require 'test/unit'
3
-
4
- class TestMethod < Test::Unit::TestCase
5
-
6
- def setup
7
-
8
- # Creates the statement to be inlcuded in the method
9
- @declaration_statement = DeclarationStatement.new(Unknown.new,Equal.new,Literal.new(8))
10
-
11
- # Create the usage for the simple method (it doesn't take any parameters
12
- @simple_method_usage = MethodUsage.new()
13
-
14
- # Create the simple runtime method
15
- @simple_method = RuntimeMethod.new(@simple_method_usage,0)
16
-
17
- # Create the usage for a method with two paramters
18
- param_1 = MethodParameter.new
19
- @parameter_method_usage = MethodUsage.new(param_1)
20
-
21
- # Create the method with paramaters
22
- @method_with_paramaters = RuntimeMethod.new(@parameter_method_usage)
23
-
24
- end
25
-
26
- def teardown
27
- System.reset
28
- RuntimeMethod.reset_global_id
29
- end
30
-
31
- def test_simple_statement_inclusion
32
-
33
- # Test statement is valid
34
- assert_equal(true,@declaration_statement.valid_syntax?)
35
-
36
- # Test the method is empty
37
- assert_equal(0,@simple_method.length)
38
-
39
- # Test the output of the written method
40
- file_dump = ""
41
- f = File.open($LOC+File.join(['test','output','simple_method.txt']),'r')
42
- f.each_line do |l|
43
- file_dump << l
44
- end
45
- f.close()
46
-
47
- assert_equal(file_dump,@simple_method.write)
48
-
49
- # Add the statement to the method
50
- # assert_nothing_raised() {@simple_method.consider @declaration_statement}
51
-
52
- # Retrieve the possible methods that could use the @declaration_statement
53
- # possible_methods = @simple_method.consider @declaration_statement
54
-
55
- # Confirm that there is only one possible method
56
- # assert_equal(1,possible_methods.length)
57
-
58
- # Confirm that a runtime method was returned
59
- # assert_equal(true,possible_methods.first.kind_of?(RuntimeMethod),'Error: Expected RuntimeMethod class')
60
-
61
- # new_file_dump = ""
62
- # f = File.open($LOC+File.join(['test','output','test_method','first_possible_method.txt']),'r')
63
- # f.each_line do |l|
64
- # new_file_dump << l
65
- # end
66
- # f.close()
67
- # assert_equal(new_file_dump,possible_methods.first.write)
68
-
69
- end
70
-
71
- def test_method_copy
72
-
73
- # Create the usage for a method with a parameter
74
- param_1 = MethodParameter.new()
75
- parameter_method_usage = MethodUsage.new(param_1)
76
-
77
- # Create the method
78
- original_method = RuntimeMethod.new(parameter_method_usage)
79
-
80
- # Add parameters to the method
81
- param_values = MethodParameter.new
82
- #original_method.parameters = [param_values]
83
-
84
- # Check the number of paramaters
85
- #assert_equal(1,original_method.parameters.length)
86
-
87
- # Copy the method
88
- assert_nothing_raised(){copied_method = original_method.copy}
89
- copied_method = original_method.copy
90
-
91
- # Confirm class of copied method
92
- assert_equal(true,copied_method.class==RuntimeMethod)
93
-
94
- # Check that the correct number of parameters were copied
95
- #assert_equal(original_method.parameters.length,copied_method.parameters.length)
96
-
97
- end
98
-
99
- def test_statement_inclusion_with_not_declared_variables
100
-
101
- # Test the method is empty
102
- assert_equal(0,@method_with_paramaters.length)
103
-
104
- # Create the statement with unknown variables in them
105
- chop_statement = DeclarationStatement.new(Unknown.new,Equal.new,InstanceCallContainer.new(Unknown.new,Chop.new))
106
- assert_equal(false,chop_statement.valid_syntax?)
107
-
108
- # Test the number of paramaters
109
- #assert_equal(1,@method_with_paramaters.parameters.length)
110
-
111
- # Check the paramters description
112
- #assert_equal("var_4\t\t= 'test'\n",@method_with_paramaters.parameters.first.describe)
113
-
114
- # Retrieve the two possible methods
115
- #possible_methods = @method_with_paramaters.consider chop_statement
116
-
117
- # # Confirm that an array of results was returned
118
- # assert_equal(true,possible_methods.class == Array)
119
- #
120
- # # Confirm the total number of results
121
- # assert_equal(1,possible_methods.length)
122
- #
123
- # # Check the data type of all the returned methods
124
- # possible_methods.each do |m|
125
- # assert_equal(true,m.class == RuntimeMethod)
126
- # end
127
-
128
- end
129
-
130
- end