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,35 +0,0 @@
1
- require 'required'
2
- require 'test/unit'
3
-
4
- class TestStatementGroup < 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
- def test_find_all_required_runtime_methods
16
-
17
- # 1. Find all the runtime methods in a statement group with two statements in
18
- # a. Create both statements and methods used in the statement group
19
- method_1 = RuntimeMethod.new(MethodUsage.new)
20
- method_2 = RuntimeMethod.new(MethodUsage.new)
21
- statement_1 = Statement.new(Unknown.new,Equal.new,DefCall.new(nil.to_var,method_1))
22
- statement_2 = Statement.new(Unknown.new,Equal.new,DefCall.new(nil.to_var,method_2))
23
-
24
- # b. Create the statement group with the runtime methods and check that both
25
- # runtime methods are retrieved.
26
- statement_group_1 = StatementGroup.new(statement_1,statement_2)
27
- assert_equal(2,statement_group_1.find_all_required_runtime_methods.length)
28
- statement_group_1.find_all_required_runtime_methods.each do |x|
29
- assert(x.kind_of?(RuntimeMethod))
30
- end
31
-
32
- end
33
-
34
-
35
- end
@@ -1,61 +0,0 @@
1
- # This test case tests the direct replacement of a variable within a statement.
2
-
3
- require 'required'
4
- require 'test/unit'
5
-
6
- class TestStatementReplaceVariable < Test::Unit::TestCase
7
-
8
- def setup
9
-
10
- end
11
-
12
- def teardown
13
- System.reset
14
- RuntimeMethod.reset_global_id
15
- end
16
-
17
- def test_variable_replacement_with_statement_with_three_variables
18
-
19
- # Create the statement to be tested
20
- var_A = Unknown.new
21
- var_B = Unknown.new
22
- var_C = Unknown.new
23
- statement = Statement.new(var_C,Equal.new,var_A,Addition.new,var_B)
24
- assert_nothing_raised(){statement.write}
25
-
26
- # Check that the variable id in the statement matches
27
- assert_equal(var_A.variable_id,statement[2].variable_id)
28
-
29
- # Replace the variable in the statement
30
- var_D = Unknown.new
31
- assert_nothing_raised(){statement.replace_variable!(var_A.variable_id,var_D)}
32
-
33
- # Check that the statement has been updated
34
- assert_not_equal(var_A.variable_id,statement[2].variable_id)
35
- assert_equal(var_D.variable_id,statement[2].variable_id)
36
-
37
- end
38
-
39
- def test_instance_call_replacement
40
-
41
- # Create the statement with the instance call
42
- var_A = Unknown.new
43
- var_B = 'test'.to_var
44
- statement = Statement.new(var_A,Equal.new,InstanceCallContainer.new(var_B,Chop.new))
45
- assert_nothing_raised(){statement.write}
46
-
47
- # Check that the variable id in the statement matches
48
- assert_equal(var_B.variable_id,statement[2].variable_id)
49
-
50
- # Replace var_B with variable C
51
- var_C = 'scentilla'.to_var
52
- assert_nothing_raised(){statement.replace_variable!(var_B.variable_id,var_C)}
53
-
54
- # Check that the statement is still valid
55
- assert(statement[2].kind_of?(InstanceCallContainer))
56
- assert_equal(var_C.variable_id,statement[2].variable_id)
57
- assert(statement[2].subject.kind_of?(Variable))
58
-
59
- end
60
-
61
- end
@@ -1,53 +0,0 @@
1
- $LOAD_PATH << File.expand_path('../../../../../lib',__FILE__)
2
-
3
- require 'required'
4
- require 'test/unit'
5
-
6
- class TestTheoryStatement < Test::Unit::TestCase
7
-
8
- def setup
9
- @statement_1 = StringToTheory.run("var8 = 7")
10
- end
11
-
12
- def teardown
13
- System.reset
14
- RuntimeMethod.reset_global_id
15
- end
16
-
17
- def test_copy
18
- assert(@statement_1.copy.kind_of?(TheoryStatement))
19
- end
20
-
21
- def test_select_all
22
- assert_equal(
23
- 3,
24
- StringToTheory.run(
25
- 'var1.realise2(var3).params[0].value.length == var2.length'
26
- ).select_all {|x| x.kind_of?(TheoryVariable)}.length
27
- )
28
- end
29
-
30
- # Using:
31
- # if((var1.params[var3].length == var1) == false)
32
- # return true
33
- # end
34
- #
35
- def test_replace_theory_variables_with_case_1
36
- theory = TheoryStatement.new(
37
- StringToTheory.run("if((var1.params[var3].length == var1) == false)\nreturn true\nend")
38
- )
39
-
40
- # Create the intrinsic mapping for the theory
41
- mapping = Mapping.new
42
- mapping[1] = Parser.run('runtime_method')
43
- mapping[3] = IntrinsicLiteral.new(0)
44
-
45
- assert_equal(
46
- "if((runtime_method.params[0].length == runtime_method) == false)\n return true\nend",
47
- theory.replace_theory_variables!(mapping).write
48
- )
49
-
50
-
51
- end
52
-
53
- end
@@ -1,32 +0,0 @@
1
- require 'required'
2
- require 'test/unit'
3
-
4
- class TestBlockContainer < Test::Unit::TestCase
5
-
6
- def setup
7
-
8
- # Create block containers with different numbers of variables
9
- @block_container_1 = BlockContainer.new('lotus'.to_var)
10
- @block_container_2 = BlockContainer.new(9.to_var,'test'.to_var)
11
-
12
- end
13
-
14
- def teardown
15
- System.reset
16
- RuntimeMethod.reset_global_id
17
- end
18
-
19
- def test_write
20
- assert_equal('|var_0|',@block_container_1.write)
21
- assert_equal('|var_1, var_2|',@block_container_2.write)
22
- end
23
-
24
- def test_copy
25
- assert_equal(@block_container_1.length,@block_container_1.copy.length)
26
- assert_equal(@block_container_2.length,@block_container_2.copy.length)
27
- assert_equal(@block_container_1.first.variable_id,@block_container_1.copy.first.variable_id)
28
- assert_equal(@block_container_2.first.variable_id,@block_container_2.copy.first.variable_id)
29
- assert_equal(@block_container_2.last.variable_id,@block_container_2.copy.last.variable_id)
30
- end
31
-
32
- end
@@ -1,39 +0,0 @@
1
- require 'required'
2
- require 'test/unit'
3
-
4
- class TestIfContainer < 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
- def test_write
16
-
17
- # 1. if(true)
18
- assert_equal('if(true)',Statement.new(If.new,Container.new(True.new)).write)
19
-
20
- # 2. if(var_x == 'test')
21
- unknown_variable_2 = Unknown.new
22
- if_statement_2 = Statement.new(If.new,Container.new(unknown_variable_2,Equivalent.new,Literal.new('test')))
23
- assert_equal('if(var_'+unknown_variable_2.variable_id.to_s+" == 'test')",if_statement_2.write)
24
-
25
- end
26
-
27
- def test_copy
28
-
29
- # 1. Check copy works if(true)
30
- assert_equal(Statement.new(If.new,Container.new(True.new)).write,Statement.new(If.new(Container.new(True.new))).copy.write)
31
-
32
- # 2. Check copy works for "if(var_x == 'test')"
33
- unknown_variable_2 = Unknown.new
34
- if_statement_2 = Statement.new(If.new,Container.new(unknown_variable_2,Equivalent.new,Literal.new('test')))
35
- assert_equal(if_statement_2.copy.write,if_statement_2.write)
36
-
37
- end
38
-
39
- end
@@ -1,34 +0,0 @@
1
- require 'required'
2
- require 'test/unit'
3
-
4
- class TestClassMethodCallContainer < Test::Unit::TestCase
5
-
6
- def setup
7
-
8
- # Create a simple method call var_a = MethodUsage.new
9
- @simple_method_usage = ClassMethodCallContainer.new(MethodUsageClass.new,New.new)
10
-
11
- # Create a simple method usage instance
12
- @simple_method_usage_var = MethodUsage.new().to_var
13
- @simple_runtime_method_instance = ClassMethodCallContainer.new(RuntimeMethodClass.new,New.new,@simple_method_usage_var)
14
-
15
- end
16
-
17
- def teardown
18
- System.reset
19
- RuntimeMethod.reset_global_id
20
- end
21
-
22
- def test_select_all
23
-
24
- # Test where method doesn't exist
25
- assert_equal(0,@simple_method_usage.select_all {|x| x.kind_of?(MethodUsageVariable)}.length)
26
-
27
- assert_equal(
28
- @simple_method_usage_var.variable_id,
29
- @simple_runtime_method_instance.select_all {|x| x.kind_of?(Variable)}.first.variable_id
30
- )
31
-
32
- end
33
-
34
- end
@@ -1,41 +0,0 @@
1
- require 'required'
2
- require 'test/unit'
3
-
4
- class TestContainer < Test::Unit::TestCase
5
-
6
- def setup
7
- @simple_container = Container.new(Parser.run('var3'),Equivalent.new,Parser.run('var2'))
8
- end
9
-
10
- def teardown
11
- System.reset
12
- RuntimeMethod.reset_global_id
13
- end
14
-
15
- def test_initialize
16
- Container.new(
17
- Parser.run('var3'),
18
- Equivalent.new,
19
- Parser.run('var2')
20
- )
21
- end
22
-
23
- def test_write
24
- assert_equal(
25
- Container.new(
26
- Parser.run('var3'),
27
- Equivalent.new,
28
- Parser.run('var2')
29
- ).write,
30
- '(var_3 == var_2)'
31
- )
32
- end
33
-
34
- def test_select_all
35
- assert_equal(
36
- 2,
37
- @simple_container.select_all {|x| x.kind_of?(BaseVariable)}.length
38
- )
39
- end
40
-
41
- end
@@ -1,25 +0,0 @@
1
- require 'required'
2
- require 'test/unit'
3
-
4
- class TestCTestCase < Test::Unit::TestCase
5
-
6
- def setup
7
- @cauldron_test_case_1 = CTestCase.new()
8
- @cauldron_test_case_1[:params] = ['something']
9
- @cauldron_test_case_1[:output] = 'exists'
10
- end
11
-
12
- def teardown
13
- System.reset
14
- RuntimeMethod.reset_global_id
15
- end
16
-
17
- def test_cauldron_method_calls
18
- assert_equal(2,@cauldron_test_case_1.cauldron_method_calls.length)
19
- assert_equal(
20
- "[:output]",
21
- @cauldron_test_case_1.cauldron_method_calls.first
22
- )
23
- end
24
-
25
- end
@@ -1,93 +0,0 @@
1
- require 'required'
2
- require 'test/unit'
3
-
4
- class TestInstanceCallContainer < 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
- def test_equivalent
16
-
17
- # Create a push statement and confirm they are captured as equivalent
18
- instance_call_container_a = InstanceCallContainer.new(RuntimeMethod.new(MethodUsage.new).to_var,Push.new,Statement.new.to_var)
19
- assert(true,instance_call_container_a.equivalent?(instance_call_container_a.copy))
20
-
21
- end
22
-
23
- def test_subst!
24
-
25
- # Test that variables are replaced in the instance call
26
- # 'warren'.length -> 'marc'.length
27
- warren = 'warren'.to_var
28
- new_var_length = InstanceCallContainer.new(warren,StringLength.new)
29
- marc = 'marc'.to_var
30
- assert_equal(warren.uniq_id,new_var_length.subject.uniq_id)
31
- new_var_length.subst!(marc) {|x| x.uniq_id == warren.uniq_id}
32
- assert_equal(marc.uniq_id,new_var_length.subject.uniq_id)
33
- assert_not_equal(warren.uniq_id,new_var_length.subject.uniq_id)
34
-
35
- # Test the paramters are properly replaced
36
- # [].push('dragon') -> [].push('unicorn')
37
- dragon = 'dragon'.to_var
38
- unicorn = 'unicorn'.to_var
39
- pushing_call = InstanceCallContainer.new([].to_var,Push.new,dragon)
40
- assert_equal(pushing_call.parameters.last.uniq_id,dragon.uniq_id)
41
- pushing_call.subst!(unicorn){|x| x.uniq_id == dragon.uniq_id}
42
- assert_not_equal(pushing_call.parameters.last.uniq_id,dragon.uniq_id)
43
- assert_equal(pushing_call.parameters.last.uniq_id,unicorn.uniq_id)
44
-
45
- end
46
-
47
- def test_select_all
48
- assert_equal(
49
- 2,
50
- StringToTheory.run(
51
- "var1.realise2(var3).params[0].value.length"
52
- ).select_all {|x| x.kind_of?(TheoryVariable)}.length
53
- )
54
- end
55
-
56
- def test_contains
57
- assert_equal(
58
- true,
59
- Parser.run('var1.push(8)').kind_of?(InstanceCallContainer)
60
- )
61
- assert_equal(
62
- true,
63
- Parser.run('var1.push(8)').contains? {|x| x.kind_of?(Unknown)}
64
- )
65
- assert_equal(
66
- true,
67
- Parser.run('var1.push(8)').contains? {|x| x.kind_of?(Push)}
68
- )
69
- assert_equal(
70
- true,
71
- Parser.run('var1.push(8)').contains? {|x| x.kind_of?(Literal)}
72
- )
73
- end
74
-
75
- def test_equivalent
76
- assert_equal(
77
- true,
78
- Parser.run('var1.push(8)').equivalent?(Parser.run('var1.push(8)'))
79
- )
80
- assert_equal(
81
- true,
82
- Parser.run('var2.push(8)').equivalent?(Parser.run('var1.push(8)'))
83
- )
84
- assert_equal(
85
- true,
86
- Parser.run('var2.push(var8)').equivalent?(Parser.run('var1.push(var9)'))
87
- )
88
- assert_equal(
89
- false,
90
- Parser.run('var2.push(var8)').equivalent?(Parser.run('var1.push(var9,var7)'))
91
- )
92
- end
93
- end
@@ -1,30 +0,0 @@
1
- require 'required'
2
- require 'test/unit'
3
-
4
- class TestLiteral < Test::Unit::TestCase
5
-
6
- def setup
7
-
8
- @spectre = Literal.new('spectre')
9
- @num_2009 = Literal.new(2009)
10
-
11
- end
12
-
13
- def teardown
14
- System.reset
15
- RuntimeMethod.reset_global_id
16
- end
17
-
18
- def test_initialize
19
-
20
- # Attempt to create an unknown literal
21
- assert_raises(UnliteralisableError){Literal.new(MethodUsage.new)}
22
-
23
- end
24
-
25
- def test_to_literal_string
26
- assert_equal("'spectre'",@spectre.to_literal_string)
27
- assert_equal("2009",@num_2009.to_literal_string)
28
- end
29
-
30
- end