facets 2.2.1 → 2.3.0

Sign up to get free protection for your applications and to get access to all the features.
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