carats 0.3.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 (422) hide show
  1. data/ChangeLog +2 -0
  2. data/LICENSE +5 -0
  3. data/README +67 -0
  4. data/Reapfile +72 -0
  5. data/ToDo +24 -0
  6. data/bench/b_harray.rb +49 -0
  7. data/bench/b_range.rb +64 -0
  8. data/demo/ansicolor/cdiff.rb +20 -0
  9. data/demo/ansicolor/example.rb +82 -0
  10. data/demo/io-reactor/chatserver.rb +347 -0
  11. data/doc/classes/Array.html +172 -0
  12. data/doc/classes/BBCode.html +638 -0
  13. data/doc/classes/BinaryReader.html +675 -0
  14. data/doc/classes/Binding.html +223 -0
  15. data/doc/classes/ByteOrder.html +284 -0
  16. data/doc/classes/Class.html +189 -0
  17. data/doc/classes/Constant.html +785 -0
  18. data/doc/classes/Constant/CGS.html +609 -0
  19. data/doc/classes/Continuation.html +113 -0
  20. data/doc/classes/Coroutine.html +387 -0
  21. data/doc/classes/CountingSemaphore.html +337 -0
  22. data/doc/classes/CrossCase.html +561 -0
  23. data/doc/classes/DynamicMixin.html +185 -0
  24. data/doc/classes/EnumerableWithArgs.html +550 -0
  25. data/doc/classes/Expect.html +428 -0
  26. data/doc/classes/Expect/DefaultChain.html +113 -0
  27. data/doc/classes/Expect/SeparatedPattern.html +223 -0
  28. data/doc/classes/Expect/Timeout.html +167 -0
  29. data/doc/classes/Expect/UnmatchedMessage.html +160 -0
  30. data/doc/classes/FileList.html +833 -0
  31. data/doc/classes/FloatString.html +534 -0
  32. data/doc/classes/Functor.html +211 -0
  33. data/doc/classes/HArray.html +1872 -0
  34. data/doc/classes/HTML.html +328 -0
  35. data/doc/classes/Heap.html +683 -0
  36. data/doc/classes/Heap/EmptyHeapException.html +111 -0
  37. data/doc/classes/Heap/Max.html +176 -0
  38. data/doc/classes/Heap/Min.html +176 -0
  39. data/doc/classes/IO.html +108 -0
  40. data/doc/classes/IO/Reactor.html +790 -0
  41. data/doc/classes/IO/Redirect.html +289 -0
  42. data/doc/classes/Infinity.html +320 -0
  43. data/doc/classes/Interval.html +1014 -0
  44. data/doc/classes/InvalidNackError.html +161 -0
  45. data/doc/classes/Kernel.html +204 -0
  46. data/doc/classes/Lisp.html +1132 -0
  47. data/doc/classes/Lisp/DottedPair.html +379 -0
  48. data/doc/classes/Lisp/Format.html +178 -0
  49. data/doc/classes/Lisp/Format/ArgumentError.html +126 -0
  50. data/doc/classes/Lisp/Format/Directives.html +155 -0
  51. data/doc/classes/Lisp/Format/Directives/ArgJump.html +178 -0
  52. data/doc/classes/Lisp/Format/Directives/Ascii.html +119 -0
  53. data/doc/classes/Lisp/Format/Directives/BeginCaseConversion.html +185 -0
  54. data/doc/classes/Lisp/Format/Directives/BeginConditional.html +307 -0
  55. data/doc/classes/Lisp/Format/Directives/BeginIteration.html +338 -0
  56. data/doc/classes/Lisp/Format/Directives/Binary.html +157 -0
  57. data/doc/classes/Lisp/Format/Directives/Character.html +228 -0
  58. data/doc/classes/Lisp/Format/Directives/CharacterDirective.html +203 -0
  59. data/doc/classes/Lisp/Format/Directives/ClauseSeparator.html +166 -0
  60. data/doc/classes/Lisp/Format/Directives/Decimal.html +119 -0
  61. data/doc/classes/Lisp/Format/Directives/Directive.html +397 -0
  62. data/doc/classes/Lisp/Format/Directives/DollarFP.html +205 -0
  63. data/doc/classes/Lisp/Format/Directives/EndCaseConversion.html +174 -0
  64. data/doc/classes/Lisp/Format/Directives/EndConditional.html +159 -0
  65. data/doc/classes/Lisp/Format/Directives/EndIteration.html +163 -0
  66. data/doc/classes/Lisp/Format/Directives/ExpFP.html +252 -0
  67. data/doc/classes/Lisp/Format/Directives/FFFP.html +224 -0
  68. data/doc/classes/Lisp/Format/Directives/Factory.html +180 -0
  69. data/doc/classes/Lisp/Format/Directives/FreshLine.html +175 -0
  70. data/doc/classes/Lisp/Format/Directives/GeneralFP.html +265 -0
  71. data/doc/classes/Lisp/Format/Directives/Hexadecimal.html +157 -0
  72. data/doc/classes/Lisp/Format/Directives/Indirection.html +183 -0
  73. data/doc/classes/Lisp/Format/Directives/Literal.html +187 -0
  74. data/doc/classes/Lisp/Format/Directives/NewLine.html +158 -0
  75. data/doc/classes/Lisp/Format/Directives/NewPage.html +158 -0
  76. data/doc/classes/Lisp/Format/Directives/Number.html +243 -0
  77. data/doc/classes/Lisp/Format/Directives/Octal.html +157 -0
  78. data/doc/classes/Lisp/Format/Directives/Plural.html +177 -0
  79. data/doc/classes/Lisp/Format/Directives/Print.html +237 -0
  80. data/doc/classes/Lisp/Format/Directives/Radix.html +432 -0
  81. data/doc/classes/Lisp/Format/Directives/SExpression.html +157 -0
  82. data/doc/classes/Lisp/Format/Directives/SkipWhitespace.html +165 -0
  83. data/doc/classes/Lisp/Format/Directives/Tabulate.html +198 -0
  84. data/doc/classes/Lisp/Format/Directives/Tilde.html +158 -0
  85. data/doc/classes/Lisp/Format/Directives/UnknownDirectiveError.html +117 -0
  86. data/doc/classes/Lisp/Format/Formatter.html +193 -0
  87. data/doc/classes/Lisp/Format/IncompleteParameterError.html +119 -0
  88. data/doc/classes/Lisp/Format/IndexError.html +126 -0
  89. data/doc/classes/Lisp/Format/Lexer.html +479 -0
  90. data/doc/classes/Lisp/Format/MalformedError.html +119 -0
  91. data/doc/classes/Lisp/Format/MissingParameterError.html +119 -0
  92. data/doc/classes/Lisp/Format/ModifierError.html +119 -0
  93. data/doc/classes/Lisp/Format/Output.html +239 -0
  94. data/doc/classes/Lisp/Format/ParameterError.html +126 -0
  95. data/doc/classes/Lisp/Format/Parameters.html +123 -0
  96. data/doc/classes/Lisp/Format/Parameters/Argument.html +172 -0
  97. data/doc/classes/Lisp/Format/Parameters/ArgumentCount.html +159 -0
  98. data/doc/classes/Lisp/Format/Parameters/Character.html +119 -0
  99. data/doc/classes/Lisp/Format/Parameters/Default.html +120 -0
  100. data/doc/classes/Lisp/Format/Parameters/Integer.html +119 -0
  101. data/doc/classes/Lisp/Format/Parameters/Parameter.html +206 -0
  102. data/doc/classes/Lisp/Format/Parser.html +212 -0
  103. data/doc/classes/Lisp/Format/Positioned.html +166 -0
  104. data/doc/classes/Lisp/Format/State.html +455 -0
  105. data/doc/classes/Lisp/Format/SyntaxError.html +126 -0
  106. data/doc/classes/Method.html +274 -0
  107. data/doc/classes/Method/DuckHunter.html +281 -0
  108. data/doc/classes/Module.html +709 -0
  109. data/doc/classes/Multiton.html +284 -0
  110. data/doc/classes/Multiton/New.html +164 -0
  111. data/doc/classes/Multiton/Semi.html +155 -0
  112. data/doc/classes/NackClass.html +322 -0
  113. data/doc/classes/NilClass.html +231 -0
  114. data/doc/classes/NilComparable.html +179 -0
  115. data/doc/classes/NotCopyable.html +273 -0
  116. data/doc/classes/Object.html +261 -0
  117. data/doc/classes/OpenStructable.html +346 -0
  118. data/doc/classes/OrderedHash.html +939 -0
  119. data/doc/classes/Parser.html +515 -0
  120. data/doc/classes/Parser/Main.html +178 -0
  121. data/doc/classes/Parser/Marker.html +475 -0
  122. data/doc/classes/Parser/Registry.html +354 -0
  123. data/doc/classes/Parser/Token.html +399 -0
  124. data/doc/classes/Parser/UnitToken.html +222 -0
  125. data/doc/classes/Ref.html +230 -0
  126. data/doc/classes/SimpleStringIO.html +183 -0
  127. data/doc/classes/StaticHash.html +202 -0
  128. data/doc/classes/String.html +172 -0
  129. data/doc/classes/Struct.html +181 -0
  130. data/doc/classes/SuperStruct.html +382 -0
  131. data/doc/classes/Term.html +156 -0
  132. data/doc/classes/Term/ANSIColor.html +185 -0
  133. data/doc/classes/Text.html +138 -0
  134. data/doc/classes/Text/Soundex.html +222 -0
  135. data/doc/classes/TextTagIterator.html +911 -0
  136. data/doc/classes/Time.html +119 -0
  137. data/doc/classes/Time/Limit.html +303 -0
  138. data/doc/classes/Time/Limit/Dummy.html +181 -0
  139. data/doc/classes/Timer.html +351 -0
  140. data/doc/classes/TracePoint.html +532 -0
  141. data/doc/classes/Tuple.html +178 -0
  142. data/doc/classes/Uninheritable.html +213 -0
  143. data/doc/classes/Version.html +783 -0
  144. data/doc/created.rid +1 -0
  145. data/doc/files/LICENSE.html +113 -0
  146. data/doc/files/README.html +201 -0
  147. data/doc/files/lib/carat/1st_rb.html +107 -0
  148. data/doc/files/lib/carat/ansicolor_rb.html +146 -0
  149. data/doc/files/lib/carat/attr_rb.html +101 -0
  150. data/doc/files/lib/carat/bbcode_rb.html +152 -0
  151. data/doc/files/lib/carat/binaryreader_rb.html +114 -0
  152. data/doc/files/lib/carat/binding-of-caller_rb.html +108 -0
  153. data/doc/files/lib/carat/byteorder_rb.html +107 -0
  154. data/doc/files/lib/carat/constant_rb.html +167 -0
  155. data/doc/files/lib/carat/coroutine_rb.html +156 -0
  156. data/doc/files/lib/carat/crosscase_rb.html +224 -0
  157. data/doc/files/lib/carat/duckhunter_rb.html +165 -0
  158. data/doc/files/lib/carat/dynamic-mixin_rb.html +101 -0
  159. data/doc/files/lib/carat/enumerable-args_rb.html +140 -0
  160. data/doc/files/lib/carat/expect_rb.html +137 -0
  161. data/doc/files/lib/carat/filelist_rb.html +130 -0
  162. data/doc/files/lib/carat/floatstring_rb.html +126 -0
  163. data/doc/files/lib/carat/functor_rb.html +140 -0
  164. data/doc/files/lib/carat/harray_rb.html +128 -0
  165. data/doc/files/lib/carat/heap_rb.html +154 -0
  166. data/doc/files/lib/carat/html-helpers_rb.html +116 -0
  167. data/doc/files/lib/carat/infinity_rb.html +142 -0
  168. data/doc/files/lib/carat/init_rb.html +127 -0
  169. data/doc/files/lib/carat/interval_rb.html +162 -0
  170. data/doc/files/lib/carat/io-reactor_rb.html +211 -0
  171. data/doc/files/lib/carat/io-redirect_rb.html +132 -0
  172. data/doc/files/lib/carat/lisp-format_rb.html +187 -0
  173. data/doc/files/lib/carat/lisp_rb.html +152 -0
  174. data/doc/files/lib/carat/macro_rb.html +129 -0
  175. data/doc/files/lib/carat/multiton_rb.html +178 -0
  176. data/doc/files/lib/carat/nack_rb.html +193 -0
  177. data/doc/files/lib/carat/nil-comparable_rb.html +126 -0
  178. data/doc/files/lib/carat/nil-missing_rb.html +101 -0
  179. data/doc/files/lib/carat/notcopyable_rb.html +166 -0
  180. data/doc/files/lib/carat/orderedhash_rb.html +107 -0
  181. data/doc/files/lib/carat/ostructable_rb.html +157 -0
  182. data/doc/files/lib/carat/parser-old_rb.html +239 -0
  183. data/doc/files/lib/carat/parser_rb.html +244 -0
  184. data/doc/files/lib/carat/ref_rb.html +107 -0
  185. data/doc/files/lib/carat/semaphore_rb.html +132 -0
  186. data/doc/files/lib/carat/snapshot_rb.html +152 -0
  187. data/doc/files/lib/carat/soundex_rb.html +128 -0
  188. data/doc/files/lib/carat/sstruct_rb.html +142 -0
  189. data/doc/files/lib/carat/statichash_rb.html +150 -0
  190. data/doc/files/lib/carat/tagiter_rb.html +236 -0
  191. data/doc/files/lib/carat/timelimit_rb.html +136 -0
  192. data/doc/files/lib/carat/timer_rb.html +153 -0
  193. data/doc/files/lib/carat/tracepoint_rb.html +160 -0
  194. data/doc/files/lib/carat/tuple_rb.html +123 -0
  195. data/doc/files/lib/carat/uninheritable_rb.html +101 -0
  196. data/doc/files/lib/carat/version_rb.html +141 -0
  197. data/doc/fr_class_index.html +159 -0
  198. data/doc/fr_file_index.html +78 -0
  199. data/doc/fr_method_index.html +663 -0
  200. data/doc/index.html +24 -0
  201. data/doc/rdoc-style.css +208 -0
  202. data/lib/carat-dev/README +11 -0
  203. data/lib/carat-dev/access-blocks/access_blocks.rb +42 -0
  204. data/lib/carat-dev/association/association.rb +70 -0
  205. data/lib/carat-dev/blankslate/blankslate.rb +51 -0
  206. data/lib/carat-dev/breakpoint.rb +518 -0
  207. data/lib/carat-dev/class-constructor/constructor_methods.rb +78 -0
  208. data/lib/carat-dev/class-constructor/tc_constructor.rb +35 -0
  209. data/lib/carat-dev/closecall/closecall-test.rb +39 -0
  210. data/lib/carat-dev/closecall/closecall.rb +101 -0
  211. data/lib/carat-dev/commandrunner/commandrunner.rb +100 -0
  212. data/lib/carat-dev/conditional/conditionals.rb +106 -0
  213. data/lib/carat-dev/daemon/daemon.rb +70 -0
  214. data/lib/carat-dev/detach/detach.rb +363 -0
  215. data/lib/carat-dev/detach/tc_detach.rb +57 -0
  216. data/lib/carat-dev/import-module/import-module-0.81.tar.gz +0 -0
  217. data/lib/carat-dev/import-module/import-module-0.81/LICENSE +1 -0
  218. data/lib/carat-dev/import-module/import-module-0.81/Makefile +11 -0
  219. data/lib/carat-dev/import-module/import-module-0.81/README +4 -0
  220. data/lib/carat-dev/import-module/import-module-0.81/dev-lib/import-module-hash.rb +49 -0
  221. data/lib/carat-dev/import-module/import-module-0.81/dev-lib/import-module-pip.rb +71 -0
  222. data/lib/carat-dev/import-module/import-module-0.81/dev-lib/import-module-unbound-method.rb +36 -0
  223. data/lib/carat-dev/import-module/import-module-0.81/doc/README-ja.html +293 -0
  224. data/lib/carat-dev/import-module/import-module-0.81/doc/README-ja.rd +306 -0
  225. data/lib/carat-dev/import-module/import-module-0.81/doc/README.html +290 -0
  226. data/lib/carat-dev/import-module/import-module-0.81/doc/README.rd +303 -0
  227. data/lib/carat-dev/import-module/import-module-0.81/doc/style.css +85 -0
  228. data/lib/carat-dev/import-module/import-module-0.81/install.rb +99 -0
  229. data/lib/carat-dev/import-module/import-module-0.81/lib/import-module-single-thread.rb +84 -0
  230. data/lib/carat-dev/import-module/import-module-0.81/lib/import-module.rb +493 -0
  231. data/lib/carat-dev/import-module/import-module-0.81/test/Makefile +2 -0
  232. data/lib/carat-dev/import-module/import-module-0.81/test/test +91 -0
  233. data/lib/carat-dev/import-module/import-module-0.81/test/test-import-module.rb +936 -0
  234. data/lib/carat-dev/import-module/import-module-0.81/test/test-import_scope.rb +33 -0
  235. data/lib/carat-dev/import-module/import-module-0.81/test/test-scope_import.rb +33 -0
  236. data/lib/carat-dev/import-module/import-module-0.81/test/test-time.rb +184 -0
  237. data/lib/carat-dev/import-module/import-module-0.81/test/test.sh +91 -0
  238. data/lib/carat-dev/import-module/import-module-0.81/test/time.rb +135 -0
  239. data/lib/carat-dev/import-module/import-module-0.81/test/times-do.sh +10 -0
  240. data/lib/carat-dev/interface_work/SCRAP/i-contracts.rb +37 -0
  241. data/lib/carat-dev/interface_work/SCRAP/interface.rb +105 -0
  242. data/lib/carat-dev/interface_work/SCRAP/j-interface/interface-0.1.0.zip +0 -0
  243. data/lib/carat-dev/interface_work/SCRAP/j-interface/interface-0.1.0/CHANGES +3 -0
  244. data/lib/carat-dev/interface_work/SCRAP/j-interface/interface-0.1.0/MANIFEST +15 -0
  245. data/lib/carat-dev/interface_work/SCRAP/j-interface/interface-0.1.0/README +32 -0
  246. data/lib/carat-dev/interface_work/SCRAP/j-interface/interface-0.1.0/doc/interface.rd +73 -0
  247. data/lib/carat-dev/interface_work/SCRAP/j-interface/interface-0.1.0/doc/interface.txt +94 -0
  248. data/lib/carat-dev/interface_work/SCRAP/j-interface/interface-0.1.0/install.rb +16 -0
  249. data/lib/carat-dev/interface_work/SCRAP/j-interface/interface-0.1.0/lib/interface.rb +50 -0
  250. data/lib/carat-dev/interface_work/SCRAP/j-interface/interface-0.1.0/test/tc_interface.rb +51 -0
  251. data/lib/carat-dev/interface_work/SCRAP/j-interface/interface-0.1.0/test/test.rb +29 -0
  252. data/lib/carat-dev/interface_work/SCRAP/j-interface/interface-0.1.0/test/test_instance.rb +24 -0
  253. data/lib/carat-dev/interface_work/SCRAP/j-interface/interface-0.1.0/test/test_sub.rb +29 -0
  254. data/lib/carat-dev/interface_work/SCRAP/j-interface/interface-0.1.0/test/test_unrequire.rb +28 -0
  255. data/lib/carat-dev/interface_work/contracts/contract.zip +0 -0
  256. data/lib/carat-dev/interface_work/contracts/contract/doc/classes/Contract.html +376 -0
  257. data/lib/carat-dev/interface_work/contracts/contract/doc/classes/Contract.src/M000001.html +23 -0
  258. data/lib/carat-dev/interface_work/contracts/contract/doc/classes/Contract.src/M000002.html +18 -0
  259. data/lib/carat-dev/interface_work/contracts/contract/doc/classes/Contract.src/M000003.html +19 -0
  260. data/lib/carat-dev/interface_work/contracts/contract/doc/classes/Contract.src/M000004.html +29 -0
  261. data/lib/carat-dev/interface_work/contracts/contract/doc/classes/Contract.src/M000005.html +18 -0
  262. data/lib/carat-dev/interface_work/contracts/contract/doc/classes/Contract.src/M000006.html +18 -0
  263. data/lib/carat-dev/interface_work/contracts/contract/doc/classes/Contract/ContractError.html +142 -0
  264. data/lib/carat-dev/interface_work/contracts/contract/doc/classes/Contract/ContractException.html +153 -0
  265. data/lib/carat-dev/interface_work/contracts/contract/doc/classes/Contract/ContractMismatch.html +125 -0
  266. data/lib/carat-dev/interface_work/contracts/contract/doc/classes/Module.html +157 -0
  267. data/lib/carat-dev/interface_work/contracts/contract/doc/classes/Module.src/M000007.html +112 -0
  268. data/lib/carat-dev/interface_work/contracts/contract/doc/created.rid +1 -0
  269. data/lib/carat-dev/interface_work/contracts/contract/doc/files/lib/contract/assertions_rb.html +109 -0
  270. data/lib/carat-dev/interface_work/contracts/contract/doc/files/lib/contract/exception_rb.html +108 -0
  271. data/lib/carat-dev/interface_work/contracts/contract/doc/files/lib/contract/integration_rb.html +108 -0
  272. data/lib/carat-dev/interface_work/contracts/contract/doc/files/lib/contract/overrides_rb.html +109 -0
  273. data/lib/carat-dev/interface_work/contracts/contract/doc/files/lib/contract_rb.html +114 -0
  274. data/lib/carat-dev/interface_work/contracts/contract/doc/fr_class_index.html +31 -0
  275. data/lib/carat-dev/interface_work/contracts/contract/doc/fr_file_index.html +31 -0
  276. data/lib/carat-dev/interface_work/contracts/contract/doc/fr_method_index.html +33 -0
  277. data/lib/carat-dev/interface_work/contracts/contract/doc/index.html +24 -0
  278. data/lib/carat-dev/interface_work/contracts/contract/doc/rdoc-style.css +208 -0
  279. data/lib/carat-dev/interface_work/contracts/contract/lib/contract.rb +88 -0
  280. data/lib/carat-dev/interface_work/contracts/contract/lib/contract/assertions.rb +37 -0
  281. data/lib/carat-dev/interface_work/contracts/contract/lib/contract/exception.rb +92 -0
  282. data/lib/carat-dev/interface_work/contracts/contract/lib/contract/integration.rb +132 -0
  283. data/lib/carat-dev/interface_work/contracts/contract/lib/contract/overrides.rb +32 -0
  284. data/lib/carat-dev/interface_work/must.rb +37 -0
  285. data/lib/carat-dev/interface_work/type.rb +232 -0
  286. data/lib/carat-dev/main/tc_toplevel.rb +23 -0
  287. data/lib/carat-dev/main/toplevel.rb +33 -0
  288. data/lib/carat-dev/main/toplevel_test.rb +24 -0
  289. data/lib/carat-dev/misc/1.rb +40 -0
  290. data/lib/carat-dev/misc/misc.rb +44 -0
  291. data/lib/carat-dev/misc/sys.rb +186 -0
  292. data/lib/carat-dev/misc/temp.rb +1 -0
  293. data/lib/carat-dev/misc/utils.rb +518 -0
  294. data/lib/carat-dev/predicate/predicate.rb +109 -0
  295. data/lib/carat-dev/predicate/predicate_test.rb +67 -0
  296. data/lib/carat-dev/premshree.rb +40 -0
  297. data/lib/carat-dev/priority-queue/pqueue.rb +183 -0
  298. data/lib/carat-dev/priority-queue/priorityqueue.rb +84 -0
  299. data/lib/carat-dev/quaternion/quaternion.rb +529 -0
  300. data/lib/carat-dev/range.rb +259 -0
  301. data/lib/carat-dev/system/rubyinfo.rb +75 -0
  302. data/lib/carat-dev/system/system.rb +105 -0
  303. data/lib/carat-dev/tc_range.rb +118 -0
  304. data/lib/carat-dev/timer/timer-doc/classes/Timer.html +291 -0
  305. data/lib/carat-dev/timer/timer-doc/classes/Timer.src/M000001.html +26 -0
  306. data/lib/carat-dev/timer/timer-doc/classes/Timer.src/M000002.html +19 -0
  307. data/lib/carat-dev/timer/timer-doc/classes/Timer.src/M000003.html +18 -0
  308. data/lib/carat-dev/timer/timer-doc/classes/Timer.src/M000004.html +18 -0
  309. data/lib/carat-dev/timer/timer-doc/classes/Timer.src/M000005.html +21 -0
  310. data/lib/carat-dev/timer/timer-doc/classes/Timer.src/M000006.html +23 -0
  311. data/lib/carat-dev/timer/timer-doc/created.rid +1 -0
  312. data/lib/carat-dev/timer/timer-doc/files/timer_rb.html +144 -0
  313. data/lib/carat-dev/timer/timer-doc/fr_class_index.html +27 -0
  314. data/lib/carat-dev/timer/timer-doc/fr_file_index.html +27 -0
  315. data/lib/carat-dev/timer/timer-doc/fr_method_index.html +32 -0
  316. data/lib/carat-dev/timer/timer-doc/index.html +24 -0
  317. data/lib/carat-dev/timer/timer-doc/rdoc-style.css +208 -0
  318. data/lib/carat-dev/timer/timer.rb +160 -0
  319. data/lib/carat-dev/vars/vars.rb +62 -0
  320. data/lib/carat/1st.rb +58 -0
  321. data/lib/carat/ansicolor.rb +122 -0
  322. data/lib/carat/attr.rb +342 -0
  323. data/lib/carat/bbcode.rb +352 -0
  324. data/lib/carat/binaryreader.rb +170 -0
  325. data/lib/carat/binding-of-caller.rb +83 -0
  326. data/lib/carat/byteorder.rb +34 -0
  327. data/lib/carat/constant.rb +287 -0
  328. data/lib/carat/coroutine.rb +102 -0
  329. data/lib/carat/crosscase.rb +309 -0
  330. data/lib/carat/duckhunter.rb +158 -0
  331. data/lib/carat/dynamic-mixin.rb +71 -0
  332. data/lib/carat/enumerable-args.rb +125 -0
  333. data/lib/carat/expect.rb +192 -0
  334. data/lib/carat/filelist.rb +277 -0
  335. data/lib/carat/floatstring.rb +153 -0
  336. data/lib/carat/functor.rb +41 -0
  337. data/lib/carat/harray.rb +507 -0
  338. data/lib/carat/heap.rb +193 -0
  339. data/lib/carat/html-helpers.rb +82 -0
  340. data/lib/carat/infinity.rb +61 -0
  341. data/lib/carat/init.rb +33 -0
  342. data/lib/carat/interval.rb +248 -0
  343. data/lib/carat/io-reactor.rb +657 -0
  344. data/lib/carat/io-redirect.rb +99 -0
  345. data/lib/carat/lisp-format.rb +1832 -0
  346. data/lib/carat/lisp.rb +336 -0
  347. data/lib/carat/macro.rb +68 -0
  348. data/lib/carat/multiton.rb +153 -0
  349. data/lib/carat/nack.rb +115 -0
  350. data/lib/carat/nil-comparable.rb +67 -0
  351. data/lib/carat/nil-missing.rb +12 -0
  352. data/lib/carat/notcopyable.rb +68 -0
  353. data/lib/carat/orderedhash.rb +249 -0
  354. data/lib/carat/ostructable.rb +138 -0
  355. data/lib/carat/parser-old.rb +350 -0
  356. data/lib/carat/parser.rb +393 -0
  357. data/lib/carat/ref.rb +31 -0
  358. data/lib/carat/semaphore.rb +69 -0
  359. data/lib/carat/snapshot.rb +94 -0
  360. data/lib/carat/soundex.rb +104 -0
  361. data/lib/carat/sstruct.rb +223 -0
  362. data/lib/carat/statichash.rb +49 -0
  363. data/lib/carat/tagiter.rb +345 -0
  364. data/lib/carat/timelimit.rb +114 -0
  365. data/lib/carat/timer.rb +99 -0
  366. data/lib/carat/tracepoint.rb +154 -0
  367. data/lib/carat/tuple.rb +31 -0
  368. data/lib/carat/uninheritable.rb +68 -0
  369. data/lib/carat/version.rb +147 -0
  370. data/pub/doc/sstruct.txt +204 -0
  371. data/pub/doc/tagiter.html +145 -0
  372. data/setup.rb +1361 -0
  373. data/test/fixtures/filelist/testfile.txt +1 -0
  374. data/test/fixtures/filelist/testfile2.txt +1 -0
  375. data/test/tc_1st.rb +16 -0
  376. data/test/tc_ansicolor.rb +23 -0
  377. data/test/tc_attr.rb +46 -0
  378. data/test/tc_bbcode.rb +20 -0
  379. data/test/tc_binaryreader.rb +14 -0
  380. data/test/tc_binding_of_caller.rb +2 -0
  381. data/test/tc_byteorder.rb +41 -0
  382. data/test/tc_constant.rb +12 -0
  383. data/test/tc_coroutine.rb +50 -0
  384. data/test/tc_crosscase.rb +33 -0
  385. data/test/tc_duckhunter.rb +37 -0
  386. data/test/tc_dynamic-mixin.rb +66 -0
  387. data/test/tc_enumerable-args.rb +66 -0
  388. data/test/tc_expect.rb +83 -0
  389. data/test/tc_filelist.rb +17 -0
  390. data/test/tc_floatstring.rb +22 -0
  391. data/test/tc_functor.rb +18 -0
  392. data/test/tc_harray.rb +280 -0
  393. data/test/tc_heap.rb +6 -0
  394. data/test/tc_infinity.rb +23 -0
  395. data/test/tc_init.rb +29 -0
  396. data/test/tc_interval.rb +153 -0
  397. data/test/tc_io-reactor.rb +5 -0
  398. data/test/tc_io-redirect.rb +5 -0
  399. data/test/tc_lisp-format.rb +24 -0
  400. data/test/tc_lisp.rb +32 -0
  401. data/test/tc_macro.rb +48 -0
  402. data/test/tc_multiton.rb +188 -0
  403. data/test/tc_nack.rb +31 -0
  404. data/test/tc_nil-as-emptiness.rb +19 -0
  405. data/test/tc_nil-comparable.rb +29 -0
  406. data/test/tc_nil-missing.rb +0 -0
  407. data/test/tc_notcopyable.rb +64 -0
  408. data/test/tc_orderedhash.rb +36 -0
  409. data/test/tc_ostructable.rb +31 -0
  410. data/test/tc_semaphore.rb +5 -0
  411. data/test/tc_snapshot.rb +20 -0
  412. data/test/tc_soundex.rb +19 -0
  413. data/test/tc_sstruct.rb +313 -0
  414. data/test/tc_statichash.rb +24 -0
  415. data/test/tc_tagiter.rb +80 -0
  416. data/test/tc_timelimit.rb +47 -0
  417. data/test/tc_timer.rb +35 -0
  418. data/test/tc_tracepoint.rb +10 -0
  419. data/test/tc_tuple.rb +25 -0
  420. data/test/tc_uninheritable.rb +33 -0
  421. data/test/tc_version.rb +90 -0
  422. metadata +531 -0
@@ -0,0 +1,259 @@
1
+ =begin rdoc
2
+
3
+ = Descrete Range Class
4
+
5
+ This is the Range class slightly modified to be truly desecrete in nature.
6
+ Use the Interval class (see interval.rb) for a truly continuious range class.
7
+
8
+ == Synopsis
9
+
10
+ The following code uses class +Xs+, which is defined in the
11
+ class-level documentation.
12
+
13
+ require 'trix/range'
14
+
15
+ range = Xs.new(1)..Xs.new(10)
16
+ range.step(2) {|x| puts x}
17
+ range.step(3) {|x| puts x}
18
+
19
+ _produces:_
20
+
21
+ 1 x
22
+ 3 xxx
23
+ 5 xxxxx
24
+ 7 xxxxxxx
25
+ 9 xxxxxxxxx
26
+ 1 x
27
+ 4 xxxx
28
+ 7 xxxxxxx
29
+ 10 xxxxxxxxxx
30
+
31
+ == Notes
32
+
33
+ Range is not quite have descrete behavior becasue it also performs
34
+ double-duty as a continious interval class. Its just a bit too overloaded
35
+ and this limits its full potential. To remedy, a separate Interval class
36
+ has been created to handle true interval functionality. And here we
37
+ adjust Range to be truely discrete.
38
+
39
+ Range originally dependened on two methods: #succ and #<=>. If numeric
40
+ ranges were the only concern, those could just as well be #+ and #<=>,
41
+ but esoteric forms make that unfeasible --the obvious example being a
42
+ String range. To properly handle this, Range fully seperates and extends
43
+ the parallel methods: #succ for #+, #cmp for #<=> ( in the future we may
44
+ add #pred for #- ). It also adds the option of #distance to properly
45
+ calculate the difference between the sentinals. This is neccessary
46
+ to ensure congruent bahavior. For instance, presently String Range's
47
+ can give bad results because #<=> does not measure order in the same
48
+ manner that #succ generates order.
49
+
50
+ == Todo List
51
+
52
+ * Add skip parameter, to allow skip-ranges, i.e. skipping successive iterations.
53
+
54
+ == Author
55
+
56
+ * Thomas Sawyer
57
+
58
+ =end
59
+
60
+ require 'carat/infinity'
61
+ require 'carat/interval'
62
+
63
+
64
+ class Range
65
+
66
+ alias_method :initialize_simple, :initialize
67
+ private :initialize_simple
68
+
69
+ def initialize( first, halt, exclude_last=false, &succ )
70
+ @first = first
71
+ @last = halt.kind_of?(Proc) ? nil : halt
72
+ @halt = @last ? nil : halt
73
+ #@exclude_first = exclude_first
74
+ @exclude_last = exclude_last
75
+ @direction = (@last <=> @first)
76
+ #@direction = 1 if @direction == 0
77
+ @succ = succ || nil #@first.method(:succ).to_proc
78
+ #@halt = nil #exclude_last? ? proc{ |x| x.cmp(@last) != -1 } : proc{ |x| x.cmp(@last) == 1 }
79
+ initialize_simple(@first, @last, @exclude_last)
80
+ end
81
+
82
+ def succ ; @succ ; end
83
+
84
+ def succ!(s)
85
+ if @succ
86
+ @succ.call(s)
87
+ else
88
+ s.succ
89
+ end
90
+ end
91
+
92
+ def succ=(succ_proc)
93
+ raise ArgumentError unless Proc === succ_proc
94
+ @succ = succ_proc
95
+ end
96
+
97
+ def halt ; @halt ; end
98
+
99
+ def halt?(s)
100
+ if @halt
101
+ @halt.call(s)
102
+ else
103
+ if @exclude_last
104
+ s.cmp(@last) != -1
105
+ else
106
+ s.cmp(@last) == 1
107
+ end
108
+ end
109
+ end
110
+
111
+ def halt=(halt_proc)
112
+ raise ArgumentError unless Proc === halt_proc
113
+ @halt = halt_proc
114
+ end
115
+
116
+ #def first ; @first ; end
117
+ #def last ; @last ; end
118
+ #def exclude_first? ; @exclude_first ; end
119
+ #def exclude_last? ; @exclude_last ; end
120
+ alias exclude_last? exclude_end?
121
+
122
+ def direction
123
+ @direction ||= (@last <=> @first)
124
+ end
125
+
126
+ # poor names
127
+ #undef_method :begin
128
+ #undef_method :end
129
+ #undef_method :exclude_end?
130
+
131
+ def -@ ; Range.new( @first, @last, true, &@succ ) ; end
132
+
133
+ def distance
134
+ return @last.distance(@first) if @last and @last.respond_to?(:distance)
135
+ self.to_a.length # should it just be nil instead?
136
+ end
137
+ alias_method( :length, :distance )
138
+ alias_method( :size, :distance )
139
+
140
+ def min
141
+ (@first.cmp(@last) == -1) ? @first : @last
142
+ end
143
+
144
+ def max
145
+ (@first.cmp(@last) == 1) ? @first : @last
146
+ end
147
+
148
+ # +between?+ simply tests whether the given value falls
149
+ # between the sentinels by comparison. It does not
150
+ # verify that the value is acutally in the range's sequence.
151
+ def between?(x)
152
+ #tf = exclude_first? ? 1 : 0
153
+ tl = exclude_last? ? -1 : 0
154
+ # if other classes handled Infinity in their <=> method
155
+ # (which probably they should) this clause would not be required
156
+ if first.kind_of?(InfinityClass)
157
+ ft = ((first <=> x) <= tf)
158
+ else
159
+ ft = (x <=> first) >= tf
160
+ end
161
+ if last.kind_of?(InfinityClass)
162
+ fl = ((last <=> x) >= tl)
163
+ else
164
+ fl = (x <=> last) <= tl
165
+ end
166
+ ft && fl
167
+ end
168
+
169
+ # Is this proper alias of +===+?
170
+ alias_method( :===, :between? )
171
+
172
+ # +include?+ is an alias for +member?+. It is like between
173
+ # but makes sure that the value is in the range sequence.
174
+ alias_method( :include?, :member? )
175
+
176
+ # Compares two ranges to see if they are equal
177
+ def eql?(other)
178
+ return false unless @first == other.first
179
+ other_last = other.exclude_last? ? other.last : other.last
180
+ if self.exclude_last? and not other.exclude_last?
181
+ return false unless self.last == other.last.succ
182
+ elsif other.exclude_last? and not self.exclude_last?
183
+ return false unless self.last.succ == other.last
184
+ else
185
+ return false unless @last == other.last
186
+ end
187
+ true
188
+ end
189
+
190
+ alias each_succ each
191
+ def each( &blk )
192
+ return each_succ( &blk ) unless @succ or @halt
193
+ if @halt
194
+ halt_proc = @halt
195
+ else
196
+ halt_proc = exclude_last? ? proc{ |x| x.cmp(@last) != -1 } : proc{ |x| x.cmp(@last) == 1 }
197
+ end
198
+ #t = exclude_last? ? -1 : 0
199
+ s = @first
200
+ if @succ
201
+ #while (s <=> @last) == -1 or (s <=> @last) == t
202
+ until halt_proc.call(s)
203
+ yield(s)
204
+ @succ.call(s)
205
+ end
206
+ else
207
+ #while (s <=> @last) == -1 or (s <=> @last) == t
208
+ until halt_proc.call(s)
209
+ yield(s)
210
+ s.succ
211
+ end
212
+ end
213
+ end
214
+
215
+ # # each(n) where n is steps, if n is negative it is nth
216
+ # # I know, it's a neg num trick :( but I think it's
217
+ # # better then having another method like #each_nth,
218
+ # # cause then you'd need #to_a_nth, too, etc.
219
+ # def each(n=1) # :yield:
220
+ # n = (length / n.abs) if n < 0
221
+ # n = n * direction
222
+ # i = first; i.succ(n) if exclude_first?
223
+ # t = exclude_last? ? -1 : 0
224
+ # while (i <=> last) == -1 or (i <=> last) == t
225
+ # yield(i)
226
+ # i.succ(n)
227
+ # end
228
+ # end
229
+
230
+ # # each(n) where n is steps, if n is negative it is nth
231
+ # # I know, it's a neg num trick :( but I think it's
232
+ # # better then having another method like #each_nth,
233
+ # # cause then you'd need #to_a_nth, too, etc.
234
+ # def reverse_each(n=1) # :yield:
235
+ # n = (length / n.abs) if n < 0
236
+ # n = n * direction
237
+ # i = last; i -= n if exclude_first?
238
+ # t = exclude_first? ? 1 : 0
239
+ # while (i <=> first) == 1 or (i <=> first) == t
240
+ # yield(i)
241
+ # i += n
242
+ # end
243
+ # end
244
+
245
+ # def to_a(n=1)
246
+ # a=[]; each(n){|e| a << e}
247
+ # a
248
+ # end
249
+
250
+ # Is this even desirable at this point?
251
+ # Sequences depend on #succ rather then #+
252
+ # so don't expect the same results from each!
253
+ # def to_seq
254
+ # seed = exclude_first? ? first.succ : first
255
+ # halt = exclude_last? ? proc{|x| (x <=> last) >= 0} : proc{|x| (x <=> last) > 0}
256
+ # Sequence.new( seed, &halt )
257
+ # end
258
+
259
+ end
@@ -0,0 +1,75 @@
1
+ =begin
2
+
3
+ = RubyInfo
4
+
5
+ Constants pertaining to Ruby itself.
6
+
7
+ == Authors
8
+
9
+ * Minero Aoki
10
+ * T. Onoma
11
+
12
+ == Legal
13
+
14
+ Adapted from RubyParams module by Minero Aoki
15
+ Copyright (c) 1999-2002 Minero Aoki <aamine@loveruby.net>
16
+
17
+ This program is free software.
18
+ You can distribute/modify this program under the terms of
19
+ the GNU Lesser General Public License version 2 or later.
20
+
21
+ == Version
22
+
23
+ $Id: rubyloader.rb,v 1.3 2002/01/05 06:19:34 aamine Exp $
24
+
25
+ =end
26
+
27
+ require 'rbconfig'
28
+
29
+ module RubyInfo
30
+
31
+ CONFIG = Config::CONFIG
32
+
33
+ PLATFROM = RUBY_PLATFORM
34
+
35
+ RUBY = CONFIG['ruby_install_name']
36
+ VERSION = RUBY_VERSION
37
+ RELEASE_DATE = RUBY_RELEASE_DATE
38
+
39
+ MAJOR_VERSION = CONFIG['MAJOR'].to_i
40
+ MINOR_VERSION = CONFIG['MINOR'].to_i
41
+ TEENY_VERSION = CONFIG['TEENY'].to_i
42
+ #VERSION = CONFIG['MAJOR'] + '.' + CONFIG['MINOR']
43
+
44
+
45
+
46
+ BINDIR = File.join( CONFIG['bindir'] )
47
+ LIBDIR = File.join( CONFIG['libdir'], 'ruby' )
48
+ DATADIR = File.join( CONFIG['datadir'] )
49
+
50
+ ARCH = CONFIG['arch']
51
+
52
+ NEW_LIB_PATH = ((MAJOR_VERSION >= 2) or
53
+ ((MAJOR_VERSION == 1) and
54
+ ((MINOR_VERSION >= 5) or
55
+ ((MINOR_VERSION == 4) and (TEENY_VERSION >= 4)))))
56
+
57
+ if NEW_LIB_PATH then
58
+ SITELIBDIR = File.join( LIBDIR, 'site_ruby', VERSION )
59
+ else
60
+ SITELIBDIR = File.join( LIBDIR, VERSION, 'site_ruby' )
61
+ end
62
+
63
+ STDLIBDIR = File.join( LIBDIR, VERSION )
64
+ RBDIR = File.join( STDLIBDIR )
65
+ SODIR = File.join( STDLIBDIR, ARCH )
66
+
67
+ SITE_RB = File.join( SITELIBDIR )
68
+ SITE_SO = File.join( SITELIBDIR, ARCH )
69
+
70
+ RUBY_PATH = File.join( BINDIR, RUBY )
71
+
72
+ DLEXT = CONFIG['DLEXT']
73
+ Extentions = [ 'rb', DLEXT ]
74
+
75
+ end
@@ -0,0 +1,105 @@
1
+ =begin
2
+
3
+ System module is inteded for system info. Mostly is is used
4
+ as a service module but it can be used as a mixin too module System.
5
+
6
+ =end
7
+
8
+ module System
9
+
10
+ # service or mixin
11
+ extend self
12
+
13
+ ### Execution Environment
14
+
15
+ def program_name; $0 ; end
16
+ def program_name=(x); $0=x ; end
17
+
18
+ def argv; $* ; end
19
+ alias options argv
20
+
21
+ # these won't work here
22
+ #def file; __FILE__ ; end
23
+ #def filepath; File.expand_path(__FILE__) ; end
24
+ #def lineno; __LINE__ ; end
25
+
26
+ def process_id; $$ ; end
27
+ alias_method :pid, :process_id
28
+
29
+ def child_status; $? ; end
30
+ alias exit_status child_status
31
+
32
+ def error_info; $! ; end
33
+ def error_position; $@ ; end
34
+
35
+ def debug; $DEBUG; end
36
+
37
+ def safe; $SAFE; end
38
+
39
+ def load_path; $: ; end
40
+
41
+ def loaded_features; $" ; end
42
+ alias_method :required, :loaded_features
43
+
44
+ def verbose; $VERBOSE; end
45
+ def verbose=(x); $VERBOSE=x; end
46
+
47
+ def coding; $-K ; end
48
+ def coding=(x); $-K=x ; end
49
+
50
+ def line_end_processing; $-l ; end
51
+
52
+ def program_loop; $-p ; end
53
+
54
+ def env; ENV; end
55
+
56
+
57
+ ### Input/Ouput Variables
58
+
59
+ def stdin; $stdin ; end
60
+ def stdin=(x); $stdin=x ; end
61
+
62
+ def stdout; $stdout ; end
63
+ def stdout=(x); $stdout=x ; end
64
+
65
+ def stderr; $stderr ; end
66
+ def stderr=(x); $stderr=x ; end
67
+
68
+ def default_input; $< ; end
69
+ alias_method :defin, :default_input
70
+ alias_method :argf, :default_input
71
+
72
+ def default_output; $> ; end
73
+ def default_output=(x); $defout=x ; end
74
+ alias_method :defout, :default_output
75
+ alias_method :defout=, :default_output=
76
+
77
+ def output_record_separator; $\ ; end
78
+ def output_record_separator=(x); $\=x ; end
79
+ alias_method :ors, :output_record_separator
80
+ alias_method :ors=, :output_record_separator=
81
+
82
+ def output_field_separator; $-F ; end
83
+ def output_field_separator=(x); $-F=x ; end
84
+ alias_method :ofs, :output_field_separator
85
+ alias_method :ofs=, :output_field_separator=
86
+
87
+ def input_record_separator; $/ ; end
88
+ def input_record_separator=(x); $/=x ; end
89
+ alias_method :rs, :input_record_separator
90
+ alias_method :rs=, :input_record_separator=
91
+
92
+ def input_field_separator; $/ ; end
93
+ def input_field_separator=(x); $/=x ; end
94
+ alias_method :fs, :input_field_separator
95
+ alias_method :fs=, :input_field_separator=
96
+
97
+ def input_line_number; $. ; end
98
+ alias_method :input_lineno, :input_line_number
99
+
100
+ ###
101
+
102
+ def data; DATA ; end
103
+
104
+ end
105
+
@@ -0,0 +1,118 @@
1
+
2
+ require 'test/unit'
3
+ require 'carat/range'
4
+
5
+
6
+ class GeneralTest < Test::Unit::TestCase
7
+
8
+ def test_include_001
9
+ a = Range.new(1,10)
10
+ assert_equal(false, a.include?(0))
11
+ assert_equal(true, a.include?(1))
12
+ assert_equal(true, a.include?(2))
13
+ assert_equal(true, a.include?(9))
14
+ assert_equal(true, a.include?(10))
15
+ assert_equal(false, a.include?(11))
16
+ end
17
+
18
+ def test_include_002
19
+ a = Range.new(1,10,false,true)
20
+ assert_equal(false, a.include?(0))
21
+ assert_equal(true, a.include?(1))
22
+ assert_equal(true, a.include?(2))
23
+ assert_equal(true, a.include?(9))
24
+ assert_equal(false, a.include?(10))
25
+ assert_equal(false, a.include?(11))
26
+ end
27
+
28
+ def test_include_003
29
+ a = Range.new(1,10,true,false)
30
+ assert_equal(false, a.include?(0))
31
+ assert_equal(false, a.include?(1))
32
+ assert_equal(true, a.include?(2))
33
+ assert_equal(true, a.include?(9))
34
+ assert_equal(true, a.include?(10))
35
+ assert_equal(false, a.include?(11))
36
+ end
37
+
38
+ def test_include_004
39
+ a = Range.new(1,10,true,true)
40
+ assert_equal(false, a.include?(0))
41
+ assert_equal(false, a.include?(1))
42
+ assert_equal(true, a.include?(2))
43
+ assert_equal(true, a.include?(9))
44
+ assert_equal(false, a.include?(10))
45
+ assert_equal(false, a.include?(11))
46
+ end
47
+
48
+ end
49
+
50
+ class LrgNumericTest < Test::Unit::TestCase
51
+ def test_include
52
+ a = Range.new(0,100000000)
53
+ assert_equal(true, a.include?(0))
54
+ assert_equal(true, a.include?(1000))
55
+ assert_equal(true, a.include?(1000000))
56
+ assert_equal(true, a.include?(100000000))
57
+ assert_equal(false, a.include?(INFINITY))
58
+ end
59
+ def test_include_with_step
60
+ a = Range.new(0,100000000)
61
+ assert_equal(true, a.include?(0))
62
+ assert_equal(true, a.include?(5))
63
+ assert_equal(true, a.include?(70007))
64
+ assert_equal(true, a.include?(5000005))
65
+ assert_equal(false, a.include?(INFINITY))
66
+ end
67
+ end
68
+
69
+ class InfTest < Test::Unit::TestCase
70
+ def test_include?
71
+ a = Range.new(-INFINITY,-3)
72
+ assert_equal(true, a.include?(-INFINITY))
73
+ assert_equal(true, a.include?(-4))
74
+ assert_equal(true, a.include?(-3))
75
+ assert_equal(false, a.include?(-2))
76
+ assert_equal(false, a.include?(INFINITY))
77
+ a = Range.new(-INFINITY,-3,false,true)
78
+ assert_equal(true, a.include?(-INFINITY))
79
+ assert_equal(true, a.include?(-4))
80
+ assert_equal(false, a.include?(-3))
81
+ assert_equal(false, a.include?(-2))
82
+ assert_equal(false, a.include?(INFINITY))
83
+ a = Range.new(-3,INFINITY)
84
+ assert_equal(false, a.include?(-INFINITY))
85
+ assert_equal(false, a.include?(-4))
86
+ assert_equal(true, a.include?(-3))
87
+ assert_equal(true, a.include?(-2))
88
+ assert_equal(true, a.include?(INFINITY))
89
+ a = Range.new(-INFINITY,INFINITY)
90
+ assert_equal(true, a.include?(-INFINITY))
91
+ assert_equal(true, a.include?(-4))
92
+ assert_equal(true, a.include?(-3))
93
+ assert_equal(true, a.include?(-2))
94
+ assert_equal(true, a.include?(INFINITY))
95
+ a = Range.new(-3,-2)
96
+ assert_equal(false, a.include?(-INFINITY))
97
+ assert_equal(false, a.include?(-4))
98
+ assert_equal(true, a.include?(-3))
99
+ assert_equal(true, a.include?(-2))
100
+ assert_equal(false, a.include?(INFINITY))
101
+ end
102
+ end
103
+
104
+ class OrdinalTest < Test::Unit::TestCase
105
+ def test_include
106
+ a = Range.new('a','g')
107
+ #assert_equal(false, a.include?(-INFINITY))
108
+ assert_equal(true, a.include?('a'))
109
+ assert_equal(true, a.include?('c'))
110
+ assert_equal(false, a.include?('z'))
111
+ #assert_equal(false, a.include?(INFINITY))
112
+ end
113
+ #def test_error
114
+ # assert_raises(ArgumentError) {
115
+ # a = (-INFINITY..'z')
116
+ # }
117
+ #end
118
+ end