facets 2.1.3 → 2.2.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 (303) hide show
  1. data/AUTHORS +14 -12
  2. data/CHANGES +45 -2
  3. data/NOTES +9 -7
  4. data/lib/core/facets/1stclassmethod.rb +15 -11
  5. data/lib/core/facets/array.rb +0 -1
  6. data/lib/core/facets/array/conjoin.rb +40 -8
  7. data/lib/core/facets/array/delete.rb +8 -2
  8. data/lib/core/facets/array/indexable.rb +30 -3
  9. data/lib/core/facets/array/merge.rb +11 -0
  10. data/lib/core/facets/array/only.rb +3 -3
  11. data/lib/core/facets/array/pad.rb +4 -46
  12. data/lib/core/facets/array/rotate.rb +4 -4
  13. data/lib/core/facets/array/select.rb +2 -0
  14. data/lib/core/facets/array/splice.rb +16 -2
  15. data/lib/core/facets/array/stackable.rb +6 -40
  16. data/lib/core/facets/binding.rb +3 -0
  17. data/lib/core/facets/binding/cflow.rb +10 -64
  18. data/lib/core/facets/binding/defined.rb +10 -0
  19. data/lib/core/facets/binding/eval.rb +10 -76
  20. data/lib/core/facets/binding/here.rb +9 -0
  21. data/lib/core/facets/binding/self.rb +10 -0
  22. data/lib/core/facets/binding/vars.rb +0 -45
  23. data/lib/core/facets/boolean.rb +31 -103
  24. data/lib/core/facets/class/descendents.rb +17 -44
  25. data/lib/core/facets/comparable/bound.rb +8 -70
  26. data/lib/core/facets/comparable/cmp.rb +12 -92
  27. data/lib/core/facets/conversion.rb +122 -321
  28. data/lib/core/facets/dir/multiglob.rb +0 -13
  29. data/lib/core/facets/dir/traverse.rb +61 -111
  30. data/lib/core/facets/enumerable.rb +4 -2
  31. data/lib/core/facets/enumerable/cartesian.rb +36 -85
  32. data/lib/core/facets/enumerable/collect.rb +64 -152
  33. data/lib/core/facets/enumerable/combination.rb +40 -42
  34. data/lib/core/facets/enumerable/count.rb +99 -174
  35. data/lib/core/facets/enumerable/each.rb +86 -0
  36. data/lib/core/facets/enumerable/mash.rb +58 -0
  37. data/lib/core/facets/enumerable/permutation.rb +39 -44
  38. data/lib/core/facets/enumerable/probability.rb +16 -90
  39. data/lib/core/facets/enumerable/split.rb +113 -0
  40. data/lib/core/facets/exception/detail.rb +1 -2
  41. data/lib/core/facets/facets.rb +3 -2
  42. data/lib/core/facets/file/read.rb +4 -59
  43. data/lib/core/facets/file/topath.rb +8 -96
  44. data/lib/core/facets/file/write.rb +21 -49
  45. data/lib/core/facets/filetest/root.rb +4 -3
  46. data/lib/core/facets/functor.rb +5 -43
  47. data/lib/core/facets/hash/at.rb +7 -37
  48. data/lib/core/facets/hash/delete.rb +9 -58
  49. data/lib/core/facets/hash/has_keys.rb +4 -43
  50. data/lib/core/facets/hash/insert.rb +5 -38
  51. data/lib/core/facets/hash/inverse.rb +2 -41
  52. data/lib/core/facets/hash/iterate.rb +4 -45
  53. data/lib/core/facets/hash/keyize.rb +24 -92
  54. data/lib/core/facets/hash/merge.rb +4 -38
  55. data/lib/core/facets/hash/new.rb +5 -38
  56. data/lib/core/facets/hash/op.rb +20 -66
  57. data/lib/core/facets/hash/rekey.rb +9 -87
  58. data/lib/core/facets/hash/select.rb +1 -1
  59. data/lib/core/facets/hash/slice.rb +42 -0
  60. data/lib/core/facets/hash/traverse.rb +6 -46
  61. data/lib/core/facets/hash/update.rb +27 -67
  62. data/lib/core/facets/hash/weave.rb +22 -42
  63. data/lib/core/facets/indexable.rb +42 -14
  64. data/lib/core/facets/integer/bitmask.rb +69 -106
  65. data/lib/core/facets/integer/factorial.rb +1 -44
  66. data/lib/core/facets/integer/multiples.rb +27 -22
  67. data/lib/core/facets/integer/of.rb +1 -33
  68. data/lib/core/facets/kernel.rb +4 -2
  69. data/lib/core/facets/kernel/ask.rb +15 -3
  70. data/lib/core/facets/kernel/callstack.rb +38 -69
  71. data/lib/core/facets/kernel/constant.rb +2 -38
  72. data/lib/core/facets/kernel/deepcopy.rb +3 -55
  73. data/lib/core/facets/kernel/dir.rb +2 -0
  74. data/lib/core/facets/kernel/ergo.rb +2 -2
  75. data/lib/core/facets/kernel/instance.rb +51 -120
  76. data/lib/core/facets/kernel/metaid.rb +35 -73
  77. data/lib/core/facets/kernel/object.rb +14 -39
  78. data/lib/core/facets/kernel/op_esc.rb +24 -2
  79. data/lib/core/facets/kernel/populate.rb +6 -69
  80. data/lib/core/facets/kernel/report.rb +28 -33
  81. data/lib/core/facets/kernel/require.rb +7 -21
  82. data/lib/core/facets/kernel/respond.rb +11 -1
  83. data/lib/core/facets/kernel/returning.rb +50 -0
  84. data/lib/core/facets/kernel/silence.rb +12 -24
  85. data/lib/core/facets/kernel/super.rb +12 -76
  86. data/lib/core/facets/kernel/tap.rb +25 -107
  87. data/lib/core/facets/kernel/val.rb +7 -46
  88. data/lib/core/facets/kernel/withattr.rb +6 -64
  89. data/lib/core/facets/matchdata/matchset.rb +8 -50
  90. data/lib/core/facets/module.rb +3 -1
  91. data/lib/core/facets/module/abstract.rb +9 -47
  92. data/lib/core/facets/module/alias.rb +11 -68
  93. data/lib/core/facets/module/attr.rb +36 -15
  94. data/lib/core/facets/module/cattr.rb +8 -76
  95. data/lib/core/facets/module/clone.rb +15 -66
  96. data/lib/core/facets/module/include.rb +54 -114
  97. data/lib/core/facets/module/methods.rb +15 -13
  98. data/lib/core/facets/module/modify.rb +20 -206
  99. data/lib/core/facets/module/name.rb +19 -83
  100. data/lib/core/facets/module/require.rb +48 -53
  101. data/lib/core/facets/module/traits.rb +74 -33
  102. data/lib/core/facets/nilclass/status.rb +25 -2
  103. data/lib/core/facets/numeric/round.rb +24 -89
  104. data/lib/core/facets/proc/bind.rb +16 -59
  105. data/lib/core/facets/proc/compose.rb +6 -40
  106. data/lib/core/facets/proc/fn.rb +2 -0
  107. data/lib/core/facets/range/combine.rb +15 -51
  108. data/lib/core/facets/range/overlap.rb +8 -64
  109. data/lib/core/facets/regexp/arity.rb +6 -41
  110. data/lib/core/facets/stackable.rb +43 -4
  111. data/lib/core/facets/string.rb +2 -0
  112. data/lib/core/facets/string/align.rb +45 -55
  113. data/lib/core/facets/string/blank.rb +2 -46
  114. data/lib/core/facets/string/bracket.rb +14 -87
  115. data/lib/core/facets/string/case.rb +45 -32
  116. data/lib/core/facets/string/crypt.rb +3 -40
  117. data/lib/core/facets/string/filter.rb +7 -49
  118. data/lib/core/facets/string/format.rb +24 -126
  119. data/lib/core/facets/string/indexable.rb +50 -133
  120. data/lib/core/facets/string/interpolate.rb +24 -59
  121. data/lib/core/facets/string/natcmp.rb +5 -39
  122. data/lib/core/facets/string/nchar.rb +37 -45
  123. data/lib/core/facets/string/op.rb +13 -0
  124. data/lib/core/facets/string/partitions.rb +38 -99
  125. data/lib/core/facets/string/range.rb +8 -49
  126. data/lib/core/facets/string/regesc.rb +9 -42
  127. data/lib/core/facets/string/scan.rb +6 -52
  128. data/lib/core/facets/string/splice.rb +8 -13
  129. data/lib/core/facets/string/tabs.rb +16 -153
  130. data/lib/core/facets/symbol.rb +3 -1
  131. data/lib/core/facets/symbol/chomp.rb +11 -29
  132. data/lib/core/facets/symbol/generate.rb +4 -43
  133. data/lib/core/facets/symbol/not.rb +13 -25
  134. data/lib/core/facets/symbol/shadow.rb +2 -40
  135. data/lib/core/facets/symbol/succ.rb +14 -13
  136. data/lib/core/facets/symbol/to_proc.rb +33 -28
  137. data/lib/core/facets/time.rb +1 -0
  138. data/lib/core/facets/time/change.rb +5 -38
  139. data/lib/core/facets/time/elapse.rb +2 -41
  140. data/lib/core/facets/time/stamp.rb +47 -0
  141. data/lib/core/facets/unboundmethod.rb +3 -0
  142. data/lib/core/facets/unboundmethod/arguments.rb +27 -4
  143. data/lib/core/facets/unboundmethod/name.rb +21 -7
  144. data/lib/methods/facets/enumerable/cluster_by.rb +1 -1
  145. data/lib/methods/facets/enumerable/collate.rb +1 -0
  146. data/lib/methods/facets/enumerable/divide.rb +1 -1
  147. data/lib/methods/facets/enumerable/each_by.rb +1 -1
  148. data/lib/methods/facets/enumerable/each_pair.rb +1 -1
  149. data/lib/methods/facets/enumerable/eachn.rb +1 -1
  150. data/lib/methods/facets/enumerable/graph.rb +1 -1
  151. data/lib/methods/facets/enumerable/group_by.rb +1 -1
  152. data/lib/methods/facets/enumerable/inject.rb +1 -0
  153. data/lib/methods/facets/enumerable/map_send.rb +1 -0
  154. data/lib/methods/facets/enumerable/modulate.rb +1 -0
  155. data/lib/methods/facets/enumerable/partition_by.rb +1 -1
  156. data/lib/methods/facets/hash/collate.rb +1 -1
  157. data/lib/methods/facets/hash/except.rb +1 -0
  158. data/lib/methods/facets/hash/graph.rb +1 -1
  159. data/lib/methods/facets/hash/mash.rb +1 -0
  160. data/lib/methods/facets/kernel/Bit.rb +1 -0
  161. data/lib/methods/facets/kernel/complete.rb +1 -1
  162. data/lib/methods/facets/kernel/here.rb +1 -1
  163. data/lib/methods/facets/kernel/non_nil.rb +1 -0
  164. data/lib/methods/facets/kernel/respond_with_value.rb +1 -0
  165. data/lib/methods/facets/kernel/with.rb +1 -1
  166. data/lib/methods/facets/module/class_def.rb +1 -0
  167. data/lib/methods/facets/string/camelcase.rb +1 -0
  168. data/lib/methods/facets/string/op_minus.rb +1 -0
  169. data/lib/methods/facets/string/snakecase.rb +1 -0
  170. data/lib/more/facets/attributes.rb +5 -5
  171. data/lib/more/facets/basicobject.rb +0 -62
  172. data/lib/{core/facets/continuation/create.rb → more/facets/continuation.rb} +4 -21
  173. data/lib/more/facets/duration.rb +534 -0
  174. data/lib/more/facets/lazy.rb +3 -3
  175. data/lib/more/facets/namespace.rb +23 -71
  176. data/lib/more/facets/rbsystem.rb +42 -8
  177. data/lib/more/facets/stylize.rb +6 -3
  178. data/lib/more/facets/thread.rb +55 -0
  179. data/meta/MANIFEST +49 -18
  180. data/meta/ROLLRC +1 -1
  181. data/meta/project.yaml +2 -2
  182. data/task/install +1 -1
  183. data/task/test/general +8 -2
  184. data/test/unit/array/test_pad.rb +30 -45
  185. data/test/unit/array/test_stackable.rb +14 -28
  186. data/test/unit/binding/test_cflow.rb +34 -49
  187. data/test/unit/binding/test_defined.rb +17 -0
  188. data/test/unit/binding/test_eval.rb +11 -39
  189. data/test/unit/binding/test_here.rb +17 -0
  190. data/test/unit/binding/test_self.rb +17 -0
  191. data/test/unit/binding/test_vars.rb +22 -37
  192. data/test/unit/class/test_descendents.rb +15 -30
  193. data/test/unit/class/test_initializer.rb +1 -8
  194. data/test/unit/comparable/test_bound.rb +38 -53
  195. data/test/unit/comparable/test_cmp.rb +45 -60
  196. data/test/unit/dir/test_traverse.rb +56 -0
  197. data/test/unit/enumerable/test_cartesian.rb +34 -47
  198. data/test/unit/enumerable/test_collect.rb +16 -125
  199. data/test/unit/enumerable/test_combination.rb +1 -8
  200. data/test/unit/enumerable/test_count.rb +51 -66
  201. data/test/unit/enumerable/test_each.rb +77 -0
  202. data/test/unit/enumerable/test_mash.rb +51 -0
  203. data/test/unit/enumerable/test_permutation.rb +1 -7
  204. data/test/unit/enumerable/test_probability.rb +42 -55
  205. data/test/unit/enumerable/test_split.rb +52 -0
  206. data/test/unit/exception/test_detail.rb +19 -0
  207. data/test/unit/file/test_read.rb +34 -0
  208. data/test/unit/file/test_topath.rb +17 -25
  209. data/test/unit/file/test_write.rb +6 -12
  210. data/test/unit/filetest/test_root.rb +14 -0
  211. data/test/unit/hash/test_at.rb +9 -21
  212. data/test/unit/hash/test_delete.rb +22 -37
  213. data/test/unit/hash/test_has_keys.rb +13 -28
  214. data/test/unit/hash/test_insert.rb +9 -23
  215. data/test/unit/hash/test_inverse.rb +11 -26
  216. data/test/unit/hash/test_iterate.rb +16 -31
  217. data/test/unit/hash/test_keyize.rb +40 -55
  218. data/test/unit/hash/test_merge.rb +10 -25
  219. data/test/unit/hash/test_new.rb +9 -24
  220. data/test/unit/hash/test_op.rb +1 -7
  221. data/test/unit/hash/test_rekey.rb +47 -62
  222. data/test/unit/hash/test_traverse.rb +17 -32
  223. data/test/unit/hash/test_update.rb +30 -45
  224. data/test/unit/hash/test_weave.rb +10 -23
  225. data/test/unit/integer/test_bitmask.rb +48 -44
  226. data/test/unit/integer/test_factorial.rb +11 -26
  227. data/test/unit/integer/test_multiples.rb +1 -5
  228. data/test/unit/integer/test_of.rb +14 -29
  229. data/test/unit/kernel/test_callstack.rb +13 -28
  230. data/test/unit/kernel/test_constant.rb +14 -28
  231. data/test/unit/kernel/test_deepcopy.rb +20 -35
  232. data/test/unit/kernel/test_instance.rb +46 -61
  233. data/test/unit/kernel/test_metaid.rb +42 -57
  234. data/test/unit/kernel/test_object.rb +14 -29
  235. data/test/unit/kernel/test_populate.rb +38 -53
  236. data/test/unit/kernel/test_report.rb +1 -7
  237. data/test/unit/kernel/test_returning.rb +16 -0
  238. data/test/unit/kernel/test_silence.rb +8 -23
  239. data/test/unit/kernel/test_super.rb +41 -56
  240. data/test/unit/kernel/test_tap.rb +15 -39
  241. data/test/unit/kernel/test_val.rb +7 -20
  242. data/test/unit/kernel/test_withattr.rb +29 -44
  243. data/test/unit/matchdata/test_matchset.rb +20 -35
  244. data/test/unit/module/test_abstract.rb +15 -30
  245. data/test/unit/module/test_alias.rb +32 -45
  246. data/test/unit/module/test_cattr.rb +39 -54
  247. data/test/unit/module/test_clone.rb +31 -43
  248. data/test/unit/module/test_include.rb +1 -35
  249. data/test/unit/module/test_modify.rb +102 -114
  250. data/test/unit/module/test_name.rb +1 -7
  251. data/test/unit/numeric/test_round.rb +46 -61
  252. data/test/unit/proc/test_bind.rb +29 -44
  253. data/test/unit/proc/test_compose.rb +20 -35
  254. data/test/unit/range/test_combine.rb +14 -29
  255. data/test/unit/range/test_overlap.rb +34 -51
  256. data/test/unit/regexp/test_arity.rb +14 -29
  257. data/test/unit/string/test_align.rb +13 -27
  258. data/test/unit/string/test_blank.rb +12 -27
  259. data/test/unit/string/test_bracket.rb +52 -67
  260. data/test/unit/string/test_case.rb +19 -38
  261. data/test/unit/string/test_crypt.rb +10 -25
  262. data/test/unit/string/test_filter.rb +1 -7
  263. data/test/unit/string/test_format.rb +2 -7
  264. data/test/unit/string/test_indexable.rb +54 -69
  265. data/test/unit/string/test_interpolate.rb +8 -21
  266. data/test/unit/string/test_natcmp.rb +11 -26
  267. data/test/unit/string/test_nchar.rb +1 -14
  268. data/test/unit/string/test_op.rb +14 -0
  269. data/test/unit/string/test_partitions.rb +39 -54
  270. data/test/unit/string/test_range.rb +17 -32
  271. data/test/unit/string/test_regesc.rb +1 -7
  272. data/test/unit/string/test_scan.rb +23 -38
  273. data/test/unit/string/test_stackable.rb +79 -98
  274. data/test/unit/string/test_tabs.rb +1 -7
  275. data/test/unit/symbol/test_chomp.rb +10 -21
  276. data/test/unit/symbol/test_generate.rb +7 -22
  277. data/test/unit/symbol/test_not.rb +10 -25
  278. data/test/unit/symbol/test_shadow.rb +8 -23
  279. data/test/unit/symbol/test_succ.rb +1 -7
  280. data/test/unit/symbol/test_to_proc.rb +1 -7
  281. data/test/unit/test_attributes.rb +1 -1
  282. data/test/unit/test_continuation.rb +13 -0
  283. data/test/unit/test_conversion.rb +1 -14
  284. data/test/unit/test_namespace.rb +30 -3
  285. data/test/unit/test_thread.rb +23 -0
  286. data/test/unit/time/test_change.rb +11 -26
  287. data/test/unit/time/test_elapse.rb +10 -25
  288. data/test/unit/time/test_stamp.rb +28 -0
  289. metadata +65 -25
  290. data/lib/core/facets/array/unzip.rb +0 -14
  291. data/lib/core/facets/continuation.rb +0 -1
  292. data/lib/core/facets/enumerable/collate.rb +0 -104
  293. data/lib/core/facets/kernel/require_esc.rb +0 -44
  294. data/lib/more/facets/mapsend.rb +0 -98
  295. data/lib/more/facets/pp_s.rb +0 -30
  296. data/log/history.rd +0 -38
  297. data/log/todo.rd +0 -4
  298. data/task/special/quickopts +0 -15
  299. data/test/unit/continuation/test_create.rb +0 -28
  300. data/test/unit/enumerable/test_collate.rb +0 -51
  301. data/test/unit/kernel/test_require_esc.rb +0 -29
  302. data/test/unit/test_mapsend.rb +0 -18
  303. data/test/unit/test_pp_s.rb +0 -17
@@ -1,38 +1,23 @@
1
- # _____ _
2
- # |_ _|__ ___| |_
3
- # | |/ _ \/ __| __|
4
- # | | __/\__ \ |
5
- # |_|\___||___/\__|
6
- #
7
- # for lib/facets/class/descendents.rb
8
- #
9
- # Extracted Mon Sep 03 16:23:07 -0700 2007
10
- # w/ Test Extraction Ratchet
11
- #
1
+ # Test for facets/class/descendents.rb
12
2
 
13
- require 'facets/class/descendents.rb'
3
+ require 'facets/class/descendents.rb'
14
4
 
5
+ require 'test/unit'
15
6
 
7
+ class TestClassDescendents < Test::Unit::TestCase
16
8
 
17
- require 'test/unit'
18
-
19
- class TestClassDescendents < Test::Unit::TestCase
20
-
21
- class A ; end
22
- class B < A ; end
23
- class C < B ; end
24
-
25
- def test_descendents
26
- assert_equal( [C,B], A.descendents )
27
- end
28
-
29
- def test_remove_descendents
30
- assert_nothing_raised { B.remove_descendents }
31
- # doesn't work despite above; not sure why
32
- #assert_equal( [B], A.descendents )
33
- end
9
+ class A ; end
10
+ class B < A ; end
11
+ class C < B ; end
34
12
 
13
+ def test_descendents
14
+ assert_equal( [C,B], A.descendents )
35
15
  end
36
16
 
17
+ def test_remove_descendents
18
+ assert_nothing_raised { B.remove_descendents }
19
+ # doesn't work despite above; not sure why
20
+ #assert_equal( [B], A.descendents )
21
+ end
37
22
 
38
-
23
+ end
@@ -1,10 +1,4 @@
1
- # _____ _
2
- # |_ _|__ ___| |_
3
- # | |/ _ \/ __| __|
4
- # | | __/\__ \ |
5
- # |_|\___||___/\__|
6
- #
7
- # facets/class/initializer.rb
1
+ # TEst for facets/class/initializer.rb
8
2
 
9
3
  require 'facets/class/initializer.rb'
10
4
 
@@ -23,4 +17,3 @@ class TC_Class_Initializer < Test::Unit::TestCase
23
17
  end
24
18
 
25
19
  end
26
-
@@ -1,58 +1,43 @@
1
- # _____ _
2
- # |_ _|__ ___| |_
3
- # | |/ _ \/ __| __|
4
- # | | __/\__ \ |
5
- # |_|\___||___/\__|
6
- #
7
- # for lib/facets/comparable/bound.rb
8
- #
9
- # Extracted Mon Sep 03 16:23:07 -0700 2007
10
- # w/ Test Extraction Ratchet
11
- #
12
-
13
- require 'facets/comparable/bound.rb'
14
-
15
-
16
-
17
- require 'test/unit'
18
-
19
- class TestComparable < Test::Unit::TestCase
20
-
21
- def test_at_most
22
- assert_equal( 3, 3.at_most(4) )
23
- assert_equal( 4, 4.at_most(4) )
24
- assert_equal( 4, 5.at_most(4) )
25
- end
26
-
27
- def test_at_least
28
- assert_equal( 4, 3.at_least(4) )
29
- assert_equal( 4, 4.at_least(4) )
30
- assert_equal( 5, 5.at_least(4) )
31
- end
32
-
33
- def test_clip
34
- assert_equal( 4, 3.clip(4) )
35
- assert_equal( 4, 4.clip(4) )
36
- assert_equal( 5, 5.clip(4) )
37
- assert_equal( 4, 4.clip(3,5) )
38
- assert_equal( 3, 3.clip(3,5) )
39
- assert_equal( 5, 5.clip(3,5) )
40
- assert_equal( 3, 2.clip(3,5) )
41
- assert_equal( 5, 6.clip(3,5) )
42
- assert_equal( 'd', 'd'.clip('c','e') )
43
- assert_equal( 'c', 'c'.clip('c','e') )
44
- assert_equal( 'e', 'e'.clip('c','e') )
45
- assert_equal( 'c', 'b'.clip('c','e') )
46
- assert_equal( 'e', 'f'.clip('c','e') )
47
- end
48
-
49
- def test_cap
50
- assert_equal( 3, 3.cap(4) )
51
- assert_equal( 4, 4.cap(4) )
52
- assert_equal( 4, 5.cap(4) )
53
- end
1
+ # Test for facets/comparable/bound.rb
54
2
 
3
+ require 'facets/comparable/bound.rb'
4
+
5
+ require 'test/unit'
6
+
7
+ class TestComparable < Test::Unit::TestCase
8
+
9
+ def test_at_most
10
+ assert_equal( 3, 3.at_most(4) )
11
+ assert_equal( 4, 4.at_most(4) )
12
+ assert_equal( 4, 5.at_most(4) )
55
13
  end
56
14
 
15
+ def test_at_least
16
+ assert_equal( 4, 3.at_least(4) )
17
+ assert_equal( 4, 4.at_least(4) )
18
+ assert_equal( 5, 5.at_least(4) )
19
+ end
57
20
 
21
+ def test_clip
22
+ assert_equal( 4, 3.clip(4) )
23
+ assert_equal( 4, 4.clip(4) )
24
+ assert_equal( 5, 5.clip(4) )
25
+ assert_equal( 4, 4.clip(3,5) )
26
+ assert_equal( 3, 3.clip(3,5) )
27
+ assert_equal( 5, 5.clip(3,5) )
28
+ assert_equal( 3, 2.clip(3,5) )
29
+ assert_equal( 5, 6.clip(3,5) )
30
+ assert_equal( 'd', 'd'.clip('c','e') )
31
+ assert_equal( 'c', 'c'.clip('c','e') )
32
+ assert_equal( 'e', 'e'.clip('c','e') )
33
+ assert_equal( 'c', 'b'.clip('c','e') )
34
+ assert_equal( 'e', 'f'.clip('c','e') )
35
+ end
36
+
37
+ def test_cap
38
+ assert_equal( 3, 3.cap(4) )
39
+ assert_equal( 4, 4.cap(4) )
40
+ assert_equal( 4, 5.cap(4) )
41
+ end
58
42
 
43
+ end
@@ -1,78 +1,63 @@
1
- # _____ _
2
- # |_ _|__ ___| |_
3
- # | |/ _ \/ __| __|
4
- # | | __/\__ \ |
5
- # |_|\___||___/\__|
6
- #
7
- # for lib/facets/comparable/cmp.rb
8
- #
9
- # Extracted Mon Sep 03 16:23:07 -0700 2007
10
- # w/ Test Extraction Ratchet
11
- #
1
+ # Test for facets/comparable/cmp.rb
12
2
 
13
- require 'facets/comparable/cmp.rb'
3
+ require 'facets/comparable/cmp.rb'
14
4
 
5
+ require 'test/unit'
15
6
 
7
+ class TestComparable < Test::Unit::TestCase
16
8
 
17
- require 'test/unit'
18
-
19
- class TestComparable < Test::Unit::TestCase
20
-
21
- def test_cmp
22
- assert_equal( -1, 3.cmp(4) )
23
- assert_equal( 0, 3.cmp(3) )
24
- assert_equal( 1, 3.cmp(2) )
25
- end
26
-
9
+ def test_cmp
10
+ assert_equal( -1, 3.cmp(4) )
11
+ assert_equal( 0, 3.cmp(3) )
12
+ assert_equal( 1, 3.cmp(2) )
27
13
  end
28
14
 
29
- class TestStringCompare < Test::Unit::TestCase
30
-
31
- def test_cmp
32
- assert_equal( 0, "abc".cmp("abc") )
33
- assert_equal( -1, "abc".cmp("abcd") )
34
- assert_equal( 1, "abcd".cmp("abc") )
35
- assert_equal( -1, "abc".cmp("bcd") )
36
- assert_equal( 1, "bcd".cmp("abc") )
37
- end
15
+ end
38
16
 
39
- def test_succ
40
- assert_equal( "b", "a".succ )
41
- assert_equal( "b", "a".succ(1) )
42
- assert_equal( "c", "a".succ(2) )
43
- assert_equal( "d", "a".succ(3) )
44
- end
17
+ class TestStringCompare < Test::Unit::TestCase
45
18
 
19
+ def test_cmp
20
+ assert_equal( 0, "abc".cmp("abc") )
21
+ assert_equal( -1, "abc".cmp("abcd") )
22
+ assert_equal( 1, "abcd".cmp("abc") )
23
+ assert_equal( -1, "abc".cmp("bcd") )
24
+ assert_equal( 1, "bcd".cmp("abc") )
46
25
  end
47
26
 
48
- class TestNumericCompare < Test::Unit::TestCase
27
+ def test_succ
28
+ assert_equal( "b", "a".succ )
29
+ assert_equal( "b", "a".succ(1) )
30
+ assert_equal( "c", "a".succ(2) )
31
+ assert_equal( "d", "a".succ(3) )
32
+ end
49
33
 
50
- def test_distance
51
- assert_equal( 4, 10.distance(6) )
52
- assert_equal( 2, 10.distance(8) )
53
- assert_equal( -2, 7.distance(9) )
54
- end
34
+ end
55
35
 
36
+ class TestNumericCompare < Test::Unit::TestCase
56
37
 
57
- def test_pred
58
- assert_equal( 3, 4.pred )
59
- assert_equal( -3, -2.pred )
60
- assert_equal( 2, 4.pred(2) )
61
- assert_equal( -4, -2.pred(2) )
62
- assert_equal( 6, 4.pred(-2) )
63
- assert_equal( 0, -2.pred(-2) )
64
- end
38
+ def test_distance
39
+ assert_equal( 4, 10.distance(6) )
40
+ assert_equal( 2, 10.distance(8) )
41
+ assert_equal( -2, 7.distance(9) )
42
+ end
65
43
 
66
- def test_succ
67
- assert_equal( 5, 4.succ )
68
- assert_equal( -1, -2.succ )
69
- assert_equal( 6, 4.succ(2) )
70
- assert_equal( 0, -2.succ(2) )
71
- assert_equal( 2, 4.succ(-2) )
72
- assert_equal( -4, -2.succ(-2) )
73
- end
74
44
 
45
+ def test_pred
46
+ assert_equal( 3, 4.pred )
47
+ assert_equal( -3, -2.pred )
48
+ assert_equal( 2, 4.pred(2) )
49
+ assert_equal( -4, -2.pred(2) )
50
+ assert_equal( 6, 4.pred(-2) )
51
+ assert_equal( 0, -2.pred(-2) )
75
52
  end
76
53
 
54
+ def test_succ
55
+ assert_equal( 5, 4.succ )
56
+ assert_equal( -1, -2.succ )
57
+ assert_equal( 6, 4.succ(2) )
58
+ assert_equal( 0, -2.succ(2) )
59
+ assert_equal( 2, 4.succ(-2) )
60
+ assert_equal( -4, -2.succ(-2) )
61
+ end
77
62
 
78
-
63
+ end
@@ -0,0 +1,56 @@
1
+ # Test for facets/dir/traverse.
2
+
3
+ require 'test/unit'
4
+
5
+ require 'facets/dir/traverse'
6
+
7
+ # TODO Need to mockup dir for remarked out tests.
8
+
9
+ class TC_Dir < Test::Unit::TestCase
10
+
11
+ def test_ancestor
12
+ assert( Dir.ancestor?( "a/b/c", "a/b/c/d" ) )
13
+ end
14
+
15
+ # def test_ls_r
16
+ # td = Dir.pwd
17
+ # Dir.chdir $TESTDIR
18
+ # r = ["A", "A/B","A/B/C.txt", "A/B.txt", "A.txt"].collect{ |e|
19
+ # File.join( 'ls_r', e )
20
+ # }
21
+ # fs = Dir.ls_r( 'ls_r' )
22
+ # assert_equal( r, fs, Dir.pwd )
23
+ # Dir.chdir td
24
+ # end
25
+ #
26
+ # def test_recurse
27
+ # td = Dir.pwd
28
+ # Dir.chdir $TESTDIR
29
+ # r = ["A", "A/B","A/B/C.txt", "A/B.txt", "A.txt"].collect{ |e|
30
+ # File.join( 'ls_r', e )
31
+ # }
32
+ # fs = Dir.recurse( 'ls_r' )
33
+ # assert_equal( r, fs, Dir.pwd )
34
+ # Dir.chdir td
35
+ # end
36
+ #
37
+ # def test_ascend_01
38
+ # c = []
39
+ # Dir.ascend( "this/path/up" ) do |path|
40
+ # c << path
41
+ # end
42
+ # assert_equal( 'this/path/up', c[0] )
43
+ # assert_equal( 'this/path', c[1] )
44
+ # assert_equal( 'this', c[2] )
45
+ # end
46
+ #
47
+ # def test_ascend_02
48
+ # c = []
49
+ # Dir.ascend( "this/path/up", false ) do |path|
50
+ # c << path
51
+ # end
52
+ # assert_equal( 'this/path', c[0] )
53
+ # assert_equal( 'this', c[1] )
54
+ # end
55
+
56
+ end
@@ -1,52 +1,39 @@
1
- # _____ _
2
- # |_ _|__ ___| |_
3
- # | |/ _ \/ __| __|
4
- # | | __/\__ \ |
5
- # |_|\___||___/\__|
6
- #
7
- # for lib/facets/enumerable/cartesian.rb
8
- #
9
- # Extracted Mon Sep 03 16:23:07 -0700 2007
10
- # w/ Test Extraction Ratchet
11
- #
12
-
13
- require 'facets/enumerable/cartesian.rb'
14
-
15
-
16
-
17
- require 'test/unit'
18
-
19
- class TestEnumerableClass < Test::Unit::TestCase
20
-
21
- def test_cart_01
22
- i = [[1,2], [3,4]]
23
- o = [[1, 3], [1, 4], [2, 3], [2, 4]]
24
- assert_equal( o, Enumerable.cart(*i) )
25
- end
26
-
27
- def test_cart_02
28
- i = [[1,2], [4], ["apple", "banana"]]
29
- o = [[1, 4, "apple"], [1, 4, "banana"], [2, 4, "apple"], [2, 4, "banana"]]
30
- assert_equal( o, Enumerable.cart(*i) )
31
- end
32
-
33
- def test_cart_03
34
- a = [1,2,3].cart([4,5,6])
35
- assert_equal( [[1, 4],[1, 5],[1, 6],[2, 4],[2, 5],[2, 6],[3, 4],[3, 5],[3, 6]], a )
36
- end
37
-
38
- def test_cart_04
39
- a = []
40
- [1,2,3].cart([4,5,6]) {|elem| a << elem }
41
- assert_equal( [[1, 4],[1, 5],[1, 6],[2, 4],[2, 5],[2, 6],[3, 4],[3, 5],[3, 6]], a )
42
- end
43
-
44
- def test_op_pow
45
- a = [1,2,3] ** [4,5,6]
46
- assert_equal( [[1, 4],[1, 5],[1, 6],[2, 4],[2, 5],[2, 6],[3, 4],[3, 5],[3, 6]], a )
47
- end
1
+ # Test for facets/enumerable/cartesian.rb
48
2
 
3
+ require 'facets/enumerable/cartesian.rb'
4
+
5
+ require 'test/unit'
6
+
7
+ class TestEnumerableClass < Test::Unit::TestCase
8
+
9
+ def test_cart_01
10
+ i = [[1,2], [3,4]]
11
+ o = [[1, 3], [1, 4], [2, 3], [2, 4]]
12
+ assert_equal( o, Enumerable.cart(*i) )
13
+ end
14
+
15
+ def test_cart_02
16
+ i = [[1,2], [4], ["apple", "banana"]]
17
+ o = [[1, 4, "apple"], [1, 4, "banana"], [2, 4, "apple"], [2, 4, "banana"]]
18
+ assert_equal( o, Enumerable.cart(*i) )
19
+ end
20
+
21
+ def test_cart_03
22
+ a = [1,2,3].cart([4,5,6])
23
+ assert_equal( [[1, 4],[1, 5],[1, 6],[2, 4],[2, 5],[2, 6],[3, 4],[3, 5],[3, 6]], a )
24
+ end
25
+
26
+ def test_cart_04
27
+ a = []
28
+ [1,2,3].cart([4,5,6]) {|elem| a << elem }
29
+ assert_equal( [[1, 4],[1, 5],[1, 6],[2, 4],[2, 5],[2, 6],[3, 4],[3, 5],[3, 6]], a )
30
+ end
31
+
32
+ def test_op_pow
33
+ a = [1,2,3] ** [4,5,6]
34
+ assert_equal( [[1, 4],[1, 5],[1, 6],[2, 4],[2, 5],[2, 6],[3, 4],[3, 5],[3, 6]], a )
49
35
  end
50
36
 
37
+ end
51
38
 
52
39
 
@@ -1,14 +1,7 @@
1
- # _____ _
2
- # |_ _|__ ___| |_
3
- # | |/ _ \/ __| __|
4
- # | | __/\__ \ |
5
- # |_|\___||___/\__|
6
- #
7
- # for facets/enumerable/collect.rb
1
+ # Test for facets/enumerable/collect
8
2
 
9
3
  require 'facets/enumerable/collect.rb'
10
4
  require 'test/unit'
11
- require 'set'
12
5
 
13
6
  class TestEnumerable < Test::Unit::TestCase
14
7
 
@@ -40,6 +33,21 @@ class TestEnumerable < Test::Unit::TestCase
40
33
  assert_equal( [1,2,4], a )
41
34
  end
42
35
 
36
+ def test_collect_with_index
37
+ a = [1,2,3].collect_with_index{ |e,i| e*i }
38
+ assert_equal( [0,2,6], a )
39
+ end
40
+
41
+ def test_map_send
42
+ r = [1,2,3].map_send(:+, 1)
43
+ assert_equal(r, [2,3,4])
44
+ end
45
+
46
+ def test_map_send_with_block
47
+ r = [1,2,3].map_send(:+,1){ |x| x + 1 }
48
+ assert_equal(r, [3,4,5])
49
+ end
50
+
43
51
  def test_injecting
44
52
  r = [1,2,3,4,5].injecting([]){ |a,i| a << i % 2 }
45
53
  e = [1,0,1,0,1]
@@ -52,121 +60,4 @@ class TestEnumerable < Test::Unit::TestCase
52
60
  assert_equal(e, r)
53
61
  end
54
62
 
55
- # def test_op_mod
56
- # a = [:A,:B,:C]
57
- # assert_equal( a[1], a/1 )
58
- # assert_equal( :B, a/1 )
59
- # end
60
- #
61
- # def test_op_div
62
- # a = [:A,:B,:C]
63
- # assert_equal( a[1], a/1 )
64
- # assert_equal( :B, a/1 )
65
- # end
66
-
67
- def test_group_by_for_array
68
- a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
69
- r = {0=>[0, 2, 4, 6, 8], 1=>[1, 3, 5, 7, 9]}
70
- assert_equal(r, a.group_by{|e| e%2}.each{|k, v| v.sort!})
71
-
72
- h = {0=>0, 1=>1, 2=>2, 3=>3, 4=>4, 5=>5, 6=>6, 7=>7, 8=>8, 9=>9}
73
- r = {0=>[[0, 0], [2, 2], [4, 4], [6, 6], [8, 8]], 1=>[[1, 1], [3, 3], [5, 5], [7, 7], [9, 9]]}
74
- assert_equal(r, h.group_by{|k, v| v%2}.each{|k, v| v.sort!})
75
-
76
- x = (1..5).group_by{ |n| n % 3 }
77
- o = { 0 => [3], 1 => [1, 4], 2 => [2,5] }
78
- assert_equal( o, x )
79
-
80
- x = ["I had", 1, "dollar and", 50, "cents"].group_by{ |e| e.class }
81
- o = { String => ["I had","dollar and","cents"], Fixnum => [1,50] }
82
- assert_equal( o, x )
83
- end
84
-
85
- def test_cluster_by
86
- a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
87
- r = [[0, 2, 4, 6, 8], [1, 3, 5, 7, 9]]
88
- assert_equal(r, a.cluster_by{|e| e%2}.each{|a| a.sort!})
89
- h = {0=>0, 1=>1, 2=>2, 3=>3, 4=>4, 5=>5, 6=>6, 7=>7, 8=>8, 9=>9}
90
- r = [[[0, 0], [2, 2], [4, 4], [6, 6], [8, 8]], [[1, 1], [3, 3], [5, 5], [7, 7], [9, 9]]]
91
- assert_equal(r, h.cluster_by{|k, v| v%2}.each{|a| a.sort!})
92
- end
93
-
94
- def test_cluster_by_empty
95
- r = [].cluster_by{ |a| a }
96
- assert_equal([], r)
97
- end
98
-
99
- def test_each_by_01
100
- x = []
101
- [1,2,3,4].each_by{ |a,b| x << [a,b] }
102
- o = [[1,2],[3,4]]
103
- assert_equal( o, x )
104
- end
105
-
106
- def test_each_by_02
107
- x = []
108
- [1,2,3,4,5].each_by{ |a,b,c| x << [a,b,c] }
109
- o = [[1,2,3],[4,5,nil]]
110
- assert_equal( o, x )
111
- end
112
-
113
- def test_each_by_03
114
- x = []
115
- [1,2,3,4].each_by(2){ |a,b| x << [a,b] }
116
- o = [[1,2],[3,4]]
117
- assert_equal( o, x )
118
- end
119
-
120
- def test_each_by_04
121
- x = []
122
- [1,2,3,4,5,6,7,8].each_by(4){ |*a| x << a }
123
- o = [ [[1,2,3,4]],[[5,6,7,8]] ]
124
- assert_equal( o, x )
125
- end
126
-
127
- def test_each_by_05
128
- x = []
129
- [1,2,3,4,5,6].each_by(3){ |*a| x << a }
130
- o = [ [[1,2,3]],[[4,5,6]] ]
131
- assert_equal( o, x )
132
- end
133
-
134
- def test_each_by_06
135
- a = [1,2,3,4,5,6]
136
- r = []
137
- a.each_by(2){ |x,y| r << [x,y] }
138
- assert_equal( [[1,2],[3,4],[5,6]], r )
139
- end
140
-
141
- def test_each_by_07
142
- a = [1,2,3,4,5,6]
143
- r = []
144
- a.each_by(3){ |*e| r << e }
145
- assert_equal( [ [[1,2,3]], [[4,5,6]] ], r )
146
- end
147
-
148
- def test_each_pair
149
- r = []
150
- a = [1,2,3,4]
151
- a.each_pair{ |a,b| r << [a,b] }
152
- assert_equal( [[1,2],[3,4]], r )
153
- end
154
-
155
- def test_eachn
156
- x = []
157
- [1,2,3,4].eachn{ |a,b| x << [a,b] }
158
- o = [[1,2],[3,4]]
159
- assert_equal( o, x )
160
-
161
- x = []
162
- [1,2,3,4,5].eachn{ |a,b,c| x << [a,b,c] }
163
- o = [[1,2,3],[4,5,nil]]
164
- assert_equal( o, x )
165
- end
166
-
167
- def test_collect_with_index
168
- a = [1,2,3].collect_with_index{ |e,i| e*i }
169
- assert_equal( [0,2,6], a )
170
- end
171
-
172
63
  end