facets 2.2.1 → 2.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 (313) hide show
  1. data/CHANGES +6 -0
  2. data/NOTES +14 -1
  3. data/Rakefile +26 -0
  4. data/demo/bench/general/bench_calls.rb +74 -0
  5. data/demo/bench/general/bench_includes.rb +25 -0
  6. data/demo/bench/general/bench_methods.rb +17 -0
  7. data/demo/bench/general/bench_pathname.rb +24 -0
  8. data/demo/bench/general/bench_range.rb +64 -0
  9. data/demo/bench/general/bench_return.rb +56 -0
  10. data/demo/bench/general/bench_yeild.rb +75 -0
  11. data/lib/{more → class}/facets/association.rb +0 -0
  12. data/lib/{more → class}/facets/autoarray.rb +0 -0
  13. data/lib/{more → class}/facets/basicobject.rb +0 -0
  14. data/lib/{more → class}/facets/buildingblock.rb +0 -44
  15. data/lib/{more → class}/facets/cachedelegator.rb +3 -0
  16. data/lib/{more → class}/facets/coroutine.rb +0 -56
  17. data/lib/{more → class}/facets/dictionary.rb +0 -0
  18. data/lib/{more → class}/facets/downloader.rb +0 -0
  19. data/lib/{more → class}/facets/filelist.rb +0 -0
  20. data/lib/{more → class}/facets/fileshell.rb +0 -0
  21. data/lib/{more → class}/facets/hashbuilder.rb +0 -0
  22. data/lib/{more → class}/facets/heap.rb +0 -0
  23. data/lib/{more → class}/facets/infinity.rb +0 -46
  24. data/lib/{more → class}/facets/interval.rb +0 -0
  25. data/lib/{more → class}/facets/ioredirect.rb +0 -0
  26. data/lib/{more → class}/facets/linkedlist.rb +0 -42
  27. data/lib/{more → class}/facets/lrucache.rb +0 -23
  28. data/lib/{more → class}/facets/minitar.rb +0 -0
  29. data/lib/{more → class}/facets/nackclass.rb +0 -0
  30. data/lib/{more → class}/facets/nullclass.rb +0 -0
  31. data/lib/{more → class}/facets/opencascade.rb +0 -70
  32. data/lib/{more → class}/facets/opencollection.rb +0 -0
  33. data/lib/class/facets/openhash.rb +41 -0
  34. data/lib/{more → class}/facets/openobject.rb +0 -121
  35. data/lib/{more → class}/facets/orderedhash.rb +0 -0
  36. data/lib/{more → class}/facets/pathlist.rb +0 -0
  37. data/lib/{more → class}/facets/pool.rb +0 -0
  38. data/lib/{more → class}/facets/pqueue.rb +0 -0
  39. data/lib/{more → class}/facets/progressbar.rb +0 -0
  40. data/lib/{more → class}/facets/recorder.rb +0 -40
  41. data/lib/{more → class}/facets/reference.rb +0 -0
  42. data/lib/{more → class}/facets/rwdelegator.rb +0 -0
  43. data/lib/{more → class}/facets/semaphore.rb +0 -0
  44. data/lib/{more → class}/facets/syncarray.rb +0 -24
  45. data/lib/{more → class}/facets/synchash.rb +1 -25
  46. data/lib/{more → class}/facets/timer.rb +0 -62
  47. data/lib/{more → class}/facets/tuple.rb +0 -60
  48. data/lib/{more → class}/facets/version.rb +0 -0
  49. data/lib/core/facets/dir/multiglob.rb +20 -5
  50. data/lib/core/facets/enumerable/cartesian.rb +2 -2
  51. data/lib/core/facets/enumerable/combination.rb +9 -1
  52. data/lib/core/facets/kernel/object.rb +1 -1
  53. data/lib/{more → mixin}/facets/binreadable.rb +0 -62
  54. data/lib/{more → mixin}/facets/buildable.rb +0 -48
  55. data/lib/mixin/facets/cloneable.rb +90 -0
  56. data/lib/{more → mixin}/facets/enumerablepass.rb +0 -81
  57. data/lib/{more → mixin}/facets/expirable.rb +0 -0
  58. data/lib/{more → mixin}/facets/fileable.rb +0 -0
  59. data/lib/{more → mixin}/facets/instantiable.rb +0 -30
  60. data/lib/{more → mixin}/facets/multiton.rb +0 -0
  61. data/lib/{more → mixin}/facets/registerable.rb +0 -0
  62. data/lib/mixin/facets/tasksystem.rb +350 -0
  63. data/lib/{more → mixin}/facets/uninheritable.rb +1 -39
  64. data/lib/{more → mixin}/facets/validation.rb +0 -0
  65. data/lib/more/facets/arguments.rb +0 -66
  66. data/lib/more/facets/attributes.rb +0 -35
  67. data/lib/more/facets/bbcode.rb +1 -31
  68. data/lib/more/facets/bytes.rb +0 -80
  69. data/lib/more/facets/class_extension.rb +0 -66
  70. data/lib/more/facets/classmethods.rb +0 -64
  71. data/lib/more/facets/compare_on.rb +0 -52
  72. data/lib/more/facets/curry.rb +0 -29
  73. data/lib/more/facets/cut.rb +0 -27
  74. data/lib/more/facets/date.rb +0 -54
  75. data/lib/more/facets/dependency.rb +0 -70
  76. data/lib/more/facets/elementor.rb +0 -67
  77. data/lib/more/facets/getoptlong.rb +0 -30
  78. data/lib/more/facets/{hash_keyize.rb → hash/keyize.rb} +0 -0
  79. data/lib/more/facets/inheritor.rb +0 -150
  80. data/lib/more/facets/instantise.rb +0 -41
  81. data/lib/more/facets/let.rb +0 -20
  82. data/lib/more/facets/memoize.rb +0 -45
  83. data/lib/more/facets/multipliers.rb +0 -110
  84. data/lib/more/facets/ostruct.rb +0 -124
  85. data/lib/more/facets/random.rb +0 -153
  86. data/lib/more/facets/rbconfig.rb +55 -0
  87. data/lib/more/facets/set.rb +27 -0
  88. data/lib/more/facets/snapshot.rb +0 -30
  89. data/lib/more/facets/stylize.rb +0 -147
  90. data/lib/more/facets/times.rb +0 -98
  91. data/lib/more/facets/tracepoint.rb +194 -0
  92. data/lib/more/facets/typecast.rb +0 -63
  93. data/lib/more/facets/ziputils.rb +7 -0
  94. data/log/Changelog-0.txt +239 -0
  95. data/log/Changelog-1.txt +450 -0
  96. data/log/Changelog.txt +841 -0
  97. data/log/Fixme.txt +18 -0
  98. data/log/Testlog.txt +188 -0
  99. data/log/Todo.txt +326 -0
  100. data/meta/MANIFEST +1 -1
  101. data/meta/VERSION +1 -0
  102. data/meta/authors +48 -0
  103. data/meta/description +8 -0
  104. data/meta/project.yaml +11 -5
  105. data/task/install +4 -2
  106. data/task/rdoc +5 -0
  107. data/task/test +40 -0
  108. data/test/{unit → class}/test_association.rb +0 -0
  109. data/test/{unit → class}/test_autoarray.rb +0 -0
  110. data/test/{unit → class}/test_basicobject.rb +0 -0
  111. data/test/{unit → class}/test_buildingblock.rb +1 -0
  112. data/test/{unit → class}/test_coroutine.rb +0 -0
  113. data/test/{unit → class}/test_dictionary.rb +0 -0
  114. data/test/{unit → class}/test_infinity.rb +0 -0
  115. data/test/{unit → class}/test_interval.rb +0 -0
  116. data/test/{unit → class}/test_linkedlist.rb +1 -1
  117. data/test/{unit → class}/test_lrucache.rb +3 -0
  118. data/test/{unit → class}/test_opencascade.rb +0 -0
  119. data/test/{unit → class}/test_openobject.rb +0 -0
  120. data/test/{unit → class}/test_recorder.rb +0 -1
  121. data/test/{unit → class}/test_syncarray.rb +2 -4
  122. data/test/{unit → class}/test_synchash.rb +2 -4
  123. data/test/{unit → class}/test_timer.rb +0 -1
  124. data/test/{unit → class}/test_tuple.rb +0 -0
  125. data/test/{unit → core}/array/test_delete.rb +0 -0
  126. data/test/{unit → core}/array/test_indexable.rb +0 -0
  127. data/test/{unit → core}/array/test_merge.rb +0 -0
  128. data/test/{unit → core}/array/test_only.rb +0 -0
  129. data/test/{unit → core}/array/test_pad.rb +0 -0
  130. data/test/{unit → core}/array/test_rotate.rb +0 -0
  131. data/test/{unit → core}/array/test_select.rb +0 -0
  132. data/test/{unit → core}/array/test_stackable.rb +0 -0
  133. data/test/{unit/binding/test_cflow.rb → core/binding/test_caller.rb} +2 -2
  134. data/test/{unit → core}/binding/test_defined.rb +0 -0
  135. data/test/{unit → core}/binding/test_eval.rb +0 -0
  136. data/test/{unit → core}/binding/test_here.rb +0 -0
  137. data/test/{unit → core}/binding/test_self.rb +0 -0
  138. data/test/{unit → core}/binding/test_vars.rb +0 -0
  139. data/test/{unit → core}/class/test_descendents.rb +0 -0
  140. data/test/{unit → core}/class/test_initializer.rb +0 -0
  141. data/test/{unit → core}/class/test_remove_descendents.rb +0 -0
  142. data/test/{unit → core}/comparable/test_bound.rb +0 -0
  143. data/test/{unit → core}/comparable/test_cmp.rb +0 -0
  144. data/test/{unit → core}/dir/test_parent.rb +0 -0
  145. data/test/{unit → core}/dir/test_recurse.rb +0 -0
  146. data/test/{unit → core}/dir/test_traverse.rb +0 -0
  147. data/test/{unit → core}/enumerable/test_cartesian.rb +0 -0
  148. data/test/{unit → core}/enumerable/test_collect.rb +0 -0
  149. data/test/{unit → core}/enumerable/test_combination.rb +0 -0
  150. data/test/{unit → core}/enumerable/test_count.rb +0 -0
  151. data/test/{unit → core}/enumerable/test_each.rb +0 -0
  152. data/test/{unit → core}/enumerable/test_mash.rb +0 -0
  153. data/test/{unit → core}/enumerable/test_permutation.rb +0 -0
  154. data/test/{unit → core}/enumerable/test_probability.rb +0 -0
  155. data/test/{unit → core}/enumerable/test_split.rb +0 -0
  156. data/test/{unit → core}/exception/test_detail.rb +0 -0
  157. data/test/{unit → core}/file/test_null.rb +0 -0
  158. data/test/{unit → core}/file/test_read.rb +0 -0
  159. data/test/{unit → core}/file/test_sanitize.rb +0 -0
  160. data/test/{unit → core}/file/test_split_all.rb +0 -0
  161. data/test/{unit → core}/file/test_write.rb +0 -0
  162. data/test/{unit → core}/filetest/test_root.rb +0 -0
  163. data/test/{unit → core}/hash/test_alias.rb +0 -0
  164. data/test/{unit → core}/hash/test_at.rb +0 -0
  165. data/test/{unit → core}/hash/test_autonew.rb +0 -0
  166. data/test/core/hash/test_collate.rb +33 -0
  167. data/test/{unit → core}/hash/test_delete.rb +0 -0
  168. data/test/{unit → core}/hash/test_each_with_key.rb +0 -0
  169. data/test/{unit → core}/hash/test_has_keys.rb +0 -0
  170. data/test/{unit → core}/hash/test_insert.rb +0 -0
  171. data/test/{unit → core}/hash/test_inverse.rb +0 -0
  172. data/test/{unit → core}/hash/test_op.rb +0 -0
  173. data/test/{unit → core}/hash/test_rekey.rb +0 -0
  174. data/test/{unit → core}/hash/test_reverse_merge.rb +0 -0
  175. data/test/{unit → core}/hash/test_select.rb +0 -0
  176. data/test/{unit → core}/hash/test_swap.rb +0 -0
  177. data/test/{unit → core}/hash/test_traverse.rb +0 -0
  178. data/test/{unit → core}/hash/test_update.rb +0 -0
  179. data/test/{unit → core}/hash/test_weave.rb +0 -0
  180. data/test/{unit → core}/hash/test_zipnew.rb +0 -0
  181. data/test/{unit → core}/integer/test_bitmask.rb +0 -0
  182. data/test/{unit → core}/integer/test_factorial.rb +0 -0
  183. data/test/{unit → core}/integer/test_multiple.rb +0 -0
  184. data/test/{unit → core}/integer/test_of.rb +0 -0
  185. data/test/{unit → core}/kernel/test_callstack.rb +0 -0
  186. data/test/{unit → core}/kernel/test_constant.rb +0 -0
  187. data/test/{unit → core}/kernel/test_deepcopy.rb +0 -0
  188. data/test/{unit → core}/kernel/test_instance.rb +0 -0
  189. data/test/{unit → core}/kernel/test_metaid.rb +0 -0
  190. data/test/{unit → core}/kernel/test_object.rb +1 -1
  191. data/test/{unit → core}/kernel/test_populate.rb +0 -0
  192. data/test/{unit → core}/kernel/test_report.rb +0 -0
  193. data/test/{unit → core}/kernel/test_returning.rb +0 -0
  194. data/test/{unit → core}/kernel/test_silence.rb +0 -0
  195. data/test/{unit → core}/kernel/test_super.rb +0 -0
  196. data/test/{unit → core}/kernel/test_tap.rb +0 -0
  197. data/test/{unit → core}/kernel/test_val.rb +0 -0
  198. data/test/{unit → core}/kernel/test_withattr.rb +0 -0
  199. data/test/{unit → core}/matchdata/test_match.rb +0 -0
  200. data/test/{unit → core}/matchdata/test_matchset.rb +0 -0
  201. data/test/{unit → core}/module/test_abstract.rb +0 -0
  202. data/test/{unit → core}/module/test_alias.rb +0 -0
  203. data/test/{unit → core}/module/test_cattr.rb +0 -0
  204. data/test/{unit → core}/module/test_clone.rb +0 -0
  205. data/test/{unit → core}/module/test_include.rb +0 -0
  206. data/test/{unit → core}/module/test_modify.rb +0 -0
  207. data/test/{unit → core}/module/test_name.rb +0 -0
  208. data/test/{unit → core}/module/test_traits.rb +0 -0
  209. data/test/{unit → core}/numeric/test_round.rb +0 -0
  210. data/test/{unit → core}/proc/test_bind.rb +0 -0
  211. data/test/{unit → core}/proc/test_compose.rb +0 -0
  212. data/test/{unit → core}/range/test_combine.rb +0 -0
  213. data/test/{unit → core}/range/test_overlap.rb +0 -0
  214. data/test/{unit → core}/regexp/test_arity.rb +0 -0
  215. data/test/{unit → core}/string/test_align.rb +0 -0
  216. data/test/{unit → core}/string/test_blank.rb +0 -0
  217. data/test/{unit → core}/string/test_bracket.rb +0 -0
  218. data/test/{unit → core}/string/test_case.rb +0 -0
  219. data/test/{unit → core}/string/test_crypt.rb +0 -0
  220. data/test/{unit → core}/string/test_filter.rb +0 -0
  221. data/test/{unit → core}/string/test_indexable.rb +0 -0
  222. data/test/{unit → core}/string/test_interpolate.rb +0 -0
  223. data/test/{unit → core}/string/test_natcmp.rb +0 -0
  224. data/test/{unit → core}/string/test_nchar.rb +0 -0
  225. data/test/{unit → core}/string/test_op.rb +0 -0
  226. data/test/{unit → core}/string/test_partitions.rb +0 -0
  227. data/test/{unit → core}/string/test_range.rb +0 -0
  228. data/test/{unit → core}/string/test_regesc.rb +0 -0
  229. data/test/{unit → core}/string/test_scan.rb +0 -0
  230. data/test/{unit → core}/string/test_stackable.rb +0 -0
  231. data/test/{unit → core}/string/test_tabs.rb +0 -0
  232. data/test/{unit → core}/string/test_wrap.rb +0 -0
  233. data/test/{unit → core}/symbol/test_chomp.rb +0 -0
  234. data/test/{unit → core}/symbol/test_generate.rb +0 -0
  235. data/test/{unit → core}/symbol/test_not.rb +0 -0
  236. data/test/{unit → core}/symbol/test_shadow.rb +0 -0
  237. data/test/{unit → core}/symbol/test_succ.rb +0 -0
  238. data/test/{unit → core}/symbol/test_to_proc.rb +0 -0
  239. data/test/{unit → core}/test_1stclassmethod.rb +0 -0
  240. data/test/{unit → core}/test_boolean.rb +0 -0
  241. data/test/{unit → core}/test_conversion.rb +0 -0
  242. data/test/{unit → core}/test_functor.rb +0 -0
  243. data/test/{unit → core}/time/test_change.rb +0 -0
  244. data/test/{unit → core}/time/test_elapse.rb +0 -0
  245. data/test/{unit → core}/time/test_stamp.rb +0 -0
  246. data/test/{unit → mixin}/test_binreadable.rb +0 -0
  247. data/test/{unit → mixin}/test_buildable.rb +1 -0
  248. data/test/mixin/test_cloneable.rb +41 -0
  249. data/test/{unit → mixin}/test_enumerablepass.rb +0 -0
  250. data/test/{unit → mixin}/test_instantiable.rb +2 -1
  251. data/test/{unit → mixin}/test_multiton.rb +0 -0
  252. data/test/{unit → mixin}/test_uninheritable.rb +1 -2
  253. data/test/{unit → more/hash}/test_keyize.rb +1 -1
  254. data/test/{unit → more}/test_advice.rb +0 -0
  255. data/test/{unit → more}/test_annotations.rb +0 -0
  256. data/test/{unit → more}/test_ansicode.rb +0 -0
  257. data/test/{unit → more}/test_aop.rb +0 -0
  258. data/test/{unit → more}/test_arguments.rb +1 -0
  259. data/test/{unit → more}/test_attributes.rb +2 -2
  260. data/test/{unit → more}/test_bbcode.rb +1 -0
  261. data/test/{unit → more}/test_bytes.rb +1 -0
  262. data/test/{unit → more}/test_class_extension.rb +2 -1
  263. data/test/{unit → more}/test_classmethods.rb +2 -1
  264. data/test/{unit → more}/test_compare_on.rb +0 -1
  265. data/test/{unit → more}/test_continuation.rb +0 -0
  266. data/test/{unit → more}/test_crypt.rb +0 -0
  267. data/test/{unit → more}/test_curry.rb +1 -0
  268. data/test/{unit → more}/test_cut.rb +2 -1
  269. data/test/{unit → more}/test_date.rb +1 -1
  270. data/test/{unit → more}/test_dependency.rb +2 -2
  271. data/test/{unit → more}/test_elementor.rb +1 -1
  272. data/test/{unit → more}/test_getoptlong.rb +1 -0
  273. data/test/{unit → more}/test_inheritor.rb +1 -1
  274. data/test/{unit → more}/test_instantise.rb +2 -1
  275. data/test/{unit → more}/test_interface.rb +0 -0
  276. data/test/{unit → more}/test_let.rb +0 -1
  277. data/test/{unit → more}/test_memoize.rb +2 -3
  278. data/test/{unit → more}/test_multipliers.rb +1 -1
  279. data/test/{unit → more}/test_namespace.rb +0 -0
  280. data/test/{unit → more}/test_ostruct.rb +0 -0
  281. data/test/{unit → more}/test_overload.rb +0 -0
  282. data/test/{unit → more}/test_paramix.rb +0 -0
  283. data/test/{unit → more}/test_prototype.rb +0 -0
  284. data/test/more/test_random.rb +146 -0
  285. data/test/{unit → more}/test_snapshot.rb +0 -3
  286. data/test/{unit → more}/test_stylize.rb +1 -2
  287. data/test/{unit → more}/test_thread.rb +0 -0
  288. data/test/{unit → more}/test_times.rb +2 -2
  289. data/test/{unit → more}/test_typecast.rb +0 -3
  290. metadata +1117 -1098
  291. data/lib/more/facets/cloneable.rb +0 -75
  292. data/log/changelog.txt +0 -0
  293. data/meta/facets.roll +0 -4
  294. data/meta/google_ad.html +0 -15
  295. data/meta/icli.yaml +0 -17
  296. data/task/changes +0 -29
  297. data/task/clean +0 -17
  298. data/task/clobber/package +0 -10
  299. data/task/log +0 -17
  300. data/task/prepare +0 -7
  301. data/task/publish +0 -43
  302. data/task/release +0 -10
  303. data/task/stamp +0 -33
  304. data/task/stats +0 -138
  305. data/task/test/cross +0 -309
  306. data/task/test/each +0 -42
  307. data/task/test/load +0 -30
  308. data/task/test/pairs +0 -50
  309. data/task/test/solo +0 -294
  310. data/task/test/syntax +0 -31
  311. data/task/test/whole +0 -34
  312. data/test/unit/hash/test_collate.rb +0 -31
  313. data/test/unit/test_random.rb +0 -149
@@ -83,44 +83,3 @@ end
83
83
  # Old name. To be deprecated.
84
84
  PromoteSelf = Instantise
85
85
 
86
-
87
-
88
- # _____ _
89
- # |_ _|__ ___| |_
90
- # | |/ _ \/ __| __|
91
- # | | __/\__ \ |_
92
- # |_|\___||___/\__|
93
- #
94
-
95
- =begin testing
96
-
97
- require 'test/unit'
98
-
99
- # fixture
100
-
101
- module MyModule
102
- extend Instantise
103
- def self.jumble( obj, arg )
104
- obj + arg
105
- end
106
- end
107
-
108
- class String
109
- include MyModule
110
- end
111
-
112
- # test
113
-
114
- class TC_PromoteSelf < Test::Unit::TestCase
115
-
116
- def test01
117
- assert_equal( 'TryMe', MyModule.jumble( "Try", "Me" ) )
118
- end
119
-
120
- def test02
121
- assert_equal( 'TryMe', "Try".jumble( "Me" ) )
122
- end
123
-
124
- end
125
-
126
- =end
@@ -27,7 +27,6 @@
27
27
 
28
28
  require 'facets/functor'
29
29
 
30
- #
31
30
  class Module
32
31
 
33
32
  # Use let to build a class like so:
@@ -70,22 +69,3 @@ class Module
70
69
  end
71
70
 
72
71
 
73
- =begin test
74
-
75
- require 'test/unit'
76
-
77
- class TCthis < Test::Unit::TestCase
78
-
79
- class Foo
80
- this.bar = 10
81
- end
82
-
83
- def test01
84
- x = Foo.new
85
- assert_equal( 10, x.bar )
86
- end
87
-
88
- end
89
-
90
- =end
91
-
@@ -108,48 +108,3 @@ module Kernel
108
108
 
109
109
  end
110
110
 
111
-
112
-
113
- # _____ _
114
- # |_ _|__ ___| |_
115
- # | |/ _ \/ __| __|
116
- # | | __/\__ \ |_
117
- # |_|\___||___/\__|
118
- #
119
- =begin test
120
-
121
- require 'test/unit'
122
-
123
- class T
124
- def initialize(a)
125
- @a = a
126
- end
127
- def a
128
- "#{@a ^ 3 + 4}"
129
- end
130
- memoize :a
131
- end
132
-
133
- # test
134
-
135
- class TC_Memoize < Test::Unit::TestCase
136
-
137
- def setup
138
- @t = T.new(2)
139
- end
140
-
141
- def test_memoize_01
142
- assert_equal( @t.a, @t.a )
143
- end
144
-
145
- def test_memoize_02
146
- assert_equal( @t.a.__id__, @t.a.__id__ )
147
- end
148
-
149
- def test_memoize_03
150
- assert_equal( @t.a.__id__, @t.a.__id__ )
151
- end
152
-
153
- end
154
-
155
- =end
@@ -97,113 +97,3 @@ class Numeric
97
97
 
98
98
  end
99
99
 
100
-
101
-
102
- # _____ _
103
- # |_ _|__ ___| |_
104
- # | |/ _ \/ __| __|
105
- # | | __/\__ \ |_
106
- # |_|\___||___/\__|
107
- #
108
-
109
- =begin testing
110
-
111
- require 'test/unit'
112
-
113
- class TC_Multipliers < Test::Unit::TestCase
114
-
115
- def test_deka
116
- assert_equal( 10, 1.deka )
117
- end
118
-
119
- def test_hecto
120
- assert_equal( 100, 1.hecto )
121
- end
122
-
123
- def test_kilo
124
- assert_equal( 1000, 1.kilo )
125
- end
126
-
127
- def test_mega
128
- assert_equal( 1000000, 1.mega )
129
- end
130
-
131
- def test_giga
132
- assert_equal( 1000000000, 1.giga )
133
- end
134
-
135
- def test_tera
136
- assert_equal( 1000000000000, 1.tera )
137
- end
138
-
139
- def test_peta
140
- assert_equal( 1000000000000000, 1.peta )
141
- end
142
-
143
- def test_exa
144
- assert_equal( 1000000000000000000, 1.exa )
145
- end
146
-
147
- # Fractional
148
-
149
- def test_deci
150
- assert_equal( 0.1, 1.deci )
151
- end
152
-
153
- def test_centi
154
- assert_equal( 0.01, 1.centi )
155
- end
156
-
157
- def test_milli
158
- assert_equal( 0.001, 1.milli )
159
- end
160
-
161
- def test_milli
162
- assert_equal( 0.000001, 1.micro )
163
- end
164
-
165
- def test_nano
166
- assert_equal( 0.000000001, 1.nano )
167
- end
168
-
169
- def test_pico
170
- assert_equal( 0.000000000001, 1.pico )
171
- end
172
-
173
- def test_femto
174
- assert_equal( 0.000000000000001, 1.femto )
175
- end
176
-
177
- def test_atto
178
- assert_equal( 0.000000000000000001, 1.atto )
179
- end
180
-
181
- # SI Binary
182
-
183
- def test_kibi
184
- assert_equal( 1024, 1.kibi )
185
- end
186
-
187
- def test_mebi
188
- assert_equal( 1024**2, 1.mebi )
189
- end
190
-
191
- def test_gibi
192
- assert_equal( 1024**3, 1.gibi )
193
- end
194
-
195
- def test_tebi
196
- assert_equal( 1024**4, 1.tebi )
197
- end
198
-
199
- def test_pebi
200
- assert_equal( 1024**5, 1.pebi )
201
- end
202
-
203
- def test_exbi
204
- assert_equal( 1024**6, 1.exbi )
205
- end
206
-
207
- end
208
-
209
- =end
@@ -224,127 +224,3 @@ class Hash
224
224
 
225
225
  end
226
226
 
227
-
228
-
229
-
230
- # _____ _
231
- # |_ _|__ ___| |_
232
- # | |/ _ \/ __| __|
233
- # | | __/\__ \ |_
234
- # |_|\___||___/\__|
235
- #
236
- =begin test
237
-
238
- require 'test/unit'
239
-
240
- class TestOpenStruct < Test::Unit::TestCase
241
-
242
- def setup
243
- @o = OpenStruct.new(:q => 1)
244
- end
245
-
246
- def test_update
247
- o = OpenStruct.new( { :a => 1 } )
248
- h = { :b => 2 }
249
- assert_nothing_raised { o.__update__( h ) }
250
- assert_equal( 2, o.b )
251
- end
252
-
253
- def test_merge_1
254
- o = OpenStruct.new( { :a => 1 } )
255
- h = { :b => 2 }
256
- q = o.__merge__( h )
257
- assert_equal( 1, q.a )
258
- assert_equal( 2, q.b )
259
- end
260
-
261
- def test_merge_2
262
- o1 = OpenStruct.new( { :a => 1 } )
263
- o2 = OpenStruct.new( { :b => 2 } )
264
- q = o1.__merge__( o2 )
265
- assert_equal( 1, q.a )
266
- assert_equal( 2, q.b )
267
- end
268
-
269
- def test_store
270
- @o.instance_delegate.store(:a,1)
271
- assert_equal( 1, @o.a )
272
- end
273
-
274
- def test_update
275
- @o.instance_delegate.update(:a=>1)
276
- assert_equal( 1, @o.a )
277
- end
278
-
279
- def test_op_fetch
280
- o = OpenStruct.new( { :a => 1 } )
281
- assert_equal( 1, o[:a] )
282
- end
283
-
284
- def test_op_store
285
- o = OpenStruct.new( { :a => 1 } )
286
- assert_nothing_raised { o[:b] = 2 }
287
- assert_equal( 2, o.b )
288
- end
289
-
290
- def test_update
291
- o = OpenStruct.new( { :a => 1 } )
292
- h = { :b => 2 }
293
- assert_nothing_raised { o.__update__( h ) }
294
- assert_equal( 2, o.b )
295
- end
296
-
297
- def test_merge_1
298
- o = OpenStruct.new( { :a => 1 } )
299
- h = { :b => 2 }
300
- q = o.__merge__( h )
301
- assert_equal( 1, q.a )
302
- assert_equal( 2, q.b )
303
- end
304
-
305
- def test_merge_2
306
- o1 = OpenStruct.new( { :a => 1 } )
307
- o2 = OpenStruct.new( { :b => 2 } )
308
- q = o1.__merge__( o2 )
309
- assert_equal( 1, q.a )
310
- assert_equal( 2, q.b )
311
- end
312
-
313
- end
314
-
315
-
316
- class TestHashToOpenStruct < Test::Unit::TestCase
317
-
318
- def test_to_ostruct
319
- a = { :a => 1, :b => 2, :c => 3 }
320
- ao = a.to_ostruct
321
- assert_equal( a[:a], ao.a )
322
- assert_equal( a[:b], ao.b )
323
- assert_equal( a[:c], ao.c )
324
- end
325
-
326
- def test_to_ostruct_recurse
327
- a = { :a => 1, :b => 2, :c => { :x => 4 } }
328
- ao = a.to_ostruct_recurse
329
- assert_equal( a[:a], ao.a )
330
- assert_equal( a[:b], ao.b )
331
- assert_equal( a[:c][:x], ao.c.x )
332
- end
333
-
334
- def test_to_ostruct_recurse_with_recursion
335
- a = {}
336
- a[:a] = a
337
- ao = a.to_ostruct_recurse
338
- assert_equal( ao, ao.a )
339
- end
340
-
341
- def test_to_ostruct_advanced
342
- h = { 'a' => { 'b' => 1 } }
343
- o = h.to_ostruct_recurse( { h['a'] => h['a'] } )
344
- assert_equal( 1, o.a['b'] )
345
- assert( Hash === o.a )
346
- end
347
-
348
- end
349
-
350
- =end
@@ -371,156 +371,3 @@ class String
371
371
 
372
372
  end
373
373
 
374
-
375
- # _____ _
376
- # |_ _|__ ___| |_
377
- # | |/ _ \/ __| __|
378
- # | | __/\__ \ |_
379
- # |_|\___||___/\__|
380
- #
381
- =begin test
382
-
383
- require 'test/unit'
384
-
385
- class TestKernelRandom < Test::Unit::TestCase
386
-
387
- def test_maybe
388
- assert_nothing_raised { maybe }
389
- end
390
-
391
- end
392
-
393
- class TestArrayRandom < Test::Unit::TestCase
394
-
395
- def test_at_rand
396
- a = [1,2,3,4,5]
397
- 20.times{ assert_nothing_raised{ a.at_rand } }
398
- 20.times{ assert( a.include?( a.at_rand ) ) }
399
- end
400
-
401
- def test_at_rand!
402
- a = ['a','b','c']
403
- assert_equal( 1, a.at_rand!.length )
404
- assert_equal( 2, a.length )
405
- end
406
-
407
- def test_pick
408
- a = ['a','b','c']
409
- assert_equal( 3, a.pick(3).length )
410
- assert_equal( 3, a.length )
411
- a = ['a','b','c']
412
- assert_equal( 3, a.pick(4).length )
413
- assert_equal( 3, a.length )
414
- end
415
-
416
- def test_pick!
417
- a = ['a','b','c']
418
- assert_equal( 3, a.pick!(3).length )
419
- assert_equal( 0, a.length )
420
- a = ['a','b','c']
421
- assert_equal( 3, a.pick!(4).length )
422
- assert_equal( 0, a.length )
423
- end
424
-
425
- def test_rand_index
426
- 10.times {
427
- i = [1,2,3].rand_index
428
- assert( (0..2).include?(i) )
429
- }
430
- end
431
-
432
- def test_rand_subset
433
- 10.times {
434
- a = [1,2,3,4].rand_subset
435
- assert( a.size <= 4 )
436
- }
437
- end
438
-
439
- def test_shuffle
440
- a = [1,2,3,4,5]
441
- b = a.shuffle
442
- assert_equal( a, b.sort )
443
- end
444
-
445
- def test_shuffle!
446
- a = [1,2,3,4,5]
447
- b = a.dup
448
- b.shuffle!
449
- assert_equal( a, b.sort )
450
- end
451
-
452
- end
453
-
454
- class TestHashRandom < Test::Unit::TestCase
455
-
456
- def test_rand_key
457
- h = { :a=>1, :b=>2, :c=>3 }
458
- 10.times { assert( h.keys.include?( h.rand_key ) ) }
459
- end
460
-
461
- def test_rand_pair
462
- h = { :a=>1, :b=>2, :c=>3 }
463
- 10.times { k,v = *h.rand_pair; assert_equal( v, h[k] ) }
464
- end
465
-
466
- def test_rand_value
467
- h = { :a=>1, :b=>2, :c=>3 }
468
- 10.times { assert( h.values.include?( h.rand_value ) ) }
469
- end
470
-
471
- def test_shuffle
472
- h = {:a=>1, :b=>2, :c=>3 }
473
- assert_nothing_raised { h.shuffle }
474
- end
475
-
476
- def test_shuffle!
477
- h = {:a=>1, :b=>2, :c=>3 }
478
- assert_nothing_raised { h.shuffle! }
479
- end
480
-
481
- end
482
-
483
- class TestStringRandom < Test::Unit::TestCase
484
-
485
- def test_String_rand_letter
486
- 100.times { |i| assert( /[a-zA-z]/ =~ String.rand_letter ) }
487
- end
488
-
489
- def test_at_rand
490
- a = '12345'
491
- 20.times{ assert_nothing_raised{ a.at_rand } }
492
- 20.times{ assert( a.include?( a.at_rand ) ) }
493
- end
494
-
495
- def test_at_rand!
496
- x = 'ab'
497
- r = x.at_rand!
498
- assert( r == 'a' || r == 'b' )
499
- assert( x == 'a' || x == 'b' )
500
- end
501
-
502
- def test_rand_index
503
- 10.times { assert( (0..2).include?( 'abc'.rand_index ) ) }
504
- end
505
-
506
- def test_rand_byte
507
- s = 'ab'
508
- r = s.rand_byte
509
- assert( r == 97 || r == 98 )
510
- end
511
-
512
- def test_rand_byte
513
- s = 'ab'
514
- r = s.rand_byte
515
- assert( r == 97 || r == 98 )
516
- assert( s = 'a' || s = 'b' )
517
- end
518
-
519
- def test_shuffle
520
- assert_nothing_raised { "abc 123".shuffle }
521
- #assert_nothing_raised { "abc 123".shuffle! }
522
- end
523
-
524
- end
525
-
526
- =end