ruby-nuggets 0.9.9 → 1.0.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 (244) hide show
  1. checksums.yaml +4 -4
  2. metadata +20 -324
  3. data/COPYING +0 -663
  4. data/ChangeLog +0 -7
  5. data/README +0 -62
  6. data/Rakefile +0 -47
  7. data/lib/nuggets.rb +0 -73
  8. data/lib/nuggets/all.rb +0 -36
  9. data/lib/nuggets/all_mixins.rb +0 -34
  10. data/lib/nuggets/ansicolor2css.rb +0 -125
  11. data/lib/nuggets/argv/option.rb +0 -3
  12. data/lib/nuggets/argv/option_mixin.rb +0 -85
  13. data/lib/nuggets/array/boost.rb +0 -5
  14. data/lib/nuggets/array/boost_mixin.rb +0 -78
  15. data/lib/nuggets/array/combination.rb +0 -63
  16. data/lib/nuggets/array/correlation.rb +0 -5
  17. data/lib/nuggets/array/correlation_mixin.rb +0 -64
  18. data/lib/nuggets/array/flatten_once.rb +0 -57
  19. data/lib/nuggets/array/flush.rb +0 -5
  20. data/lib/nuggets/array/flush_mixin.rb +0 -47
  21. data/lib/nuggets/array/format.rb +0 -66
  22. data/lib/nuggets/array/hashify.rb +0 -5
  23. data/lib/nuggets/array/hashify_mixin.rb +0 -48
  24. data/lib/nuggets/array/histogram.rb +0 -5
  25. data/lib/nuggets/array/histogram_mixin.rb +0 -170
  26. data/lib/nuggets/array/in_order.rb +0 -51
  27. data/lib/nuggets/array/limit.rb +0 -5
  28. data/lib/nuggets/array/limit_mixin.rb +0 -57
  29. data/lib/nuggets/array/mean.rb +0 -5
  30. data/lib/nuggets/array/mean_mixin.rb +0 -203
  31. data/lib/nuggets/array/median.rb +0 -5
  32. data/lib/nuggets/array/median_mixin.rb +0 -74
  33. data/lib/nuggets/array/mode.rb +0 -5
  34. data/lib/nuggets/array/mode_mixin.rb +0 -70
  35. data/lib/nuggets/array/monotone.rb +0 -84
  36. data/lib/nuggets/array/only.rb +0 -42
  37. data/lib/nuggets/array/rand.rb +0 -45
  38. data/lib/nuggets/array/regression.rb +0 -5
  39. data/lib/nuggets/array/regression_mixin.rb +0 -150
  40. data/lib/nuggets/array/runiq.rb +0 -5
  41. data/lib/nuggets/array/runiq_mixin.rb +0 -53
  42. data/lib/nuggets/array/shuffle.rb +0 -133
  43. data/lib/nuggets/array/standard_deviation.rb +0 -5
  44. data/lib/nuggets/array/standard_deviation_mixin.rb +0 -51
  45. data/lib/nuggets/array/to_hash.rb +0 -65
  46. data/lib/nuggets/array/variance.rb +0 -5
  47. data/lib/nuggets/array/variance_mixin.rb +0 -82
  48. data/lib/nuggets/cli.rb +0 -8
  49. data/lib/nuggets/content_type.rb +0 -98
  50. data/lib/nuggets/dotted_decimal.rb +0 -60
  51. data/lib/nuggets/enumerable/agrep.rb +0 -80
  52. data/lib/nuggets/enumerable/all_any_extended.rb +0 -67
  53. data/lib/nuggets/enumerable/minmax.rb +0 -103
  54. data/lib/nuggets/env/set.rb +0 -3
  55. data/lib/nuggets/env/set_mixin.rb +0 -68
  56. data/lib/nuggets/env/user_encoding.rb +0 -3
  57. data/lib/nuggets/env/user_encoding_mixin.rb +0 -55
  58. data/lib/nuggets/env/user_home.rb +0 -3
  59. data/lib/nuggets/env/user_home_mixin.rb +0 -57
  60. data/lib/nuggets/file/ext.rb +0 -5
  61. data/lib/nuggets/file/ext_mixin.rb +0 -88
  62. data/lib/nuggets/file/replace.rb +0 -5
  63. data/lib/nuggets/file/replace_mixin.rb +0 -56
  64. data/lib/nuggets/file/sub.rb +0 -5
  65. data/lib/nuggets/file/sub_mixin.rb +0 -96
  66. data/lib/nuggets/file/which.rb +0 -5
  67. data/lib/nuggets/file/which_mixin.rb +0 -73
  68. data/lib/nuggets/hash/at.rb +0 -69
  69. data/lib/nuggets/hash/deep_fetch.rb +0 -5
  70. data/lib/nuggets/hash/deep_fetch_mixin.rb +0 -75
  71. data/lib/nuggets/hash/deep_merge.rb +0 -5
  72. data/lib/nuggets/hash/deep_merge_mixin.rb +0 -54
  73. data/lib/nuggets/hash/idmap.rb +0 -5
  74. data/lib/nuggets/hash/idmap_mixin.rb +0 -42
  75. data/lib/nuggets/hash/in_order.rb +0 -44
  76. data/lib/nuggets/hash/insert.rb +0 -54
  77. data/lib/nuggets/hash/nest.rb +0 -5
  78. data/lib/nuggets/hash/nest_mixin.rb +0 -79
  79. data/lib/nuggets/hash/only.rb +0 -53
  80. data/lib/nuggets/hash/seen.rb +0 -5
  81. data/lib/nuggets/hash/seen_mixin.rb +0 -59
  82. data/lib/nuggets/hash/unroll.rb +0 -5
  83. data/lib/nuggets/hash/unroll_mixin.rb +0 -89
  84. data/lib/nuggets/hash/zip.rb +0 -5
  85. data/lib/nuggets/hash/zip_mixin.rb +0 -160
  86. data/lib/nuggets/i18n.rb +0 -156
  87. data/lib/nuggets/integer/factorial.rb +0 -57
  88. data/lib/nuggets/integer/length.rb +0 -5
  89. data/lib/nuggets/integer/length_mixin.rb +0 -50
  90. data/lib/nuggets/integer/map.rb +0 -5
  91. data/lib/nuggets/integer/map_mixin.rb +0 -43
  92. data/lib/nuggets/integer/to_binary_s.rb +0 -39
  93. data/lib/nuggets/io/agrep.rb +0 -44
  94. data/lib/nuggets/io/interact.rb +0 -5
  95. data/lib/nuggets/io/interact_mixin.rb +0 -160
  96. data/lib/nuggets/io/modes.rb +0 -122
  97. data/lib/nuggets/io/null.rb +0 -5
  98. data/lib/nuggets/io/null_mixin.rb +0 -41
  99. data/lib/nuggets/io/redirect.rb +0 -5
  100. data/lib/nuggets/io/redirect_mixin.rb +0 -51
  101. data/lib/nuggets/lazy_attr.rb +0 -45
  102. data/lib/nuggets/log_parser.rb +0 -71
  103. data/lib/nuggets/log_parser/apache.rb +0 -102
  104. data/lib/nuggets/log_parser/rails.rb +0 -220
  105. data/lib/nuggets/lsi.rb +0 -8
  106. data/lib/nuggets/midos.rb +0 -8
  107. data/lib/nuggets/mysql.rb +0 -8
  108. data/lib/nuggets/net/success.rb +0 -60
  109. data/lib/nuggets/numeric/between.rb +0 -2
  110. data/lib/nuggets/numeric/duration.rb +0 -101
  111. data/lib/nuggets/numeric/limit.rb +0 -63
  112. data/lib/nuggets/numeric/signum.rb +0 -53
  113. data/lib/nuggets/numeric/to_multiple.rb +0 -62
  114. data/lib/nuggets/object/blank.rb +0 -20
  115. data/lib/nuggets/object/blank_mixin.rb +0 -100
  116. data/lib/nuggets/object/boolean.rb +0 -5
  117. data/lib/nuggets/object/boolean_mixin.rb +0 -62
  118. data/lib/nuggets/object/eigenclass.rb +0 -2
  119. data/lib/nuggets/object/ghost_class.rb +0 -2
  120. data/lib/nuggets/object/metaclass.rb +0 -2
  121. data/lib/nuggets/object/msend.rb +0 -5
  122. data/lib/nuggets/object/msend_mixin.rb +0 -44
  123. data/lib/nuggets/object/silence.rb +0 -5
  124. data/lib/nuggets/object/silence_mixin.rb +0 -45
  125. data/lib/nuggets/object/singleton_class.rb +0 -5
  126. data/lib/nuggets/object/singleton_class_mixin.rb +0 -96
  127. data/lib/nuggets/object/uniclass.rb +0 -2
  128. data/lib/nuggets/object/virtual_class.rb +0 -2
  129. data/lib/nuggets/pluggable.rb +0 -92
  130. data/lib/nuggets/proc/bind.rb +0 -5
  131. data/lib/nuggets/proc/bind_mixin.rb +0 -52
  132. data/lib/nuggets/range/quantile.rb +0 -5
  133. data/lib/nuggets/range/quantile_mixin.rb +0 -43
  134. data/lib/nuggets/rdf/compression.rb +0 -6
  135. data/lib/nuggets/rdf/prefix.rb +0 -6
  136. data/lib/nuggets/rdf/turtle.rb +0 -8
  137. data/lib/nuggets/rdf/turtle/reader.rb +0 -6
  138. data/lib/nuggets/rdf/uri.rb +0 -6
  139. data/lib/nuggets/ruby.rb +0 -236
  140. data/lib/nuggets/statistics.rb +0 -12
  141. data/lib/nuggets/statistics_mixins.rb +0 -12
  142. data/lib/nuggets/string/camelscore.rb +0 -5
  143. data/lib/nuggets/string/camelscore_mixin.rb +0 -117
  144. data/lib/nuggets/string/capitalize_first.rb +0 -47
  145. data/lib/nuggets/string/case.rb +0 -82
  146. data/lib/nuggets/string/evaluate.rb +0 -5
  147. data/lib/nuggets/string/evaluate_mixin.rb +0 -48
  148. data/lib/nuggets/string/msub.rb +0 -85
  149. data/lib/nuggets/string/nsub.rb +0 -66
  150. data/lib/nuggets/string/sub_with_md.rb +0 -112
  151. data/lib/nuggets/string/wc.rb +0 -5
  152. data/lib/nuggets/string/wc_mixin.rb +0 -96
  153. data/lib/nuggets/string/word_wrap.rb +0 -77
  154. data/lib/nuggets/string/xor.rb +0 -5
  155. data/lib/nuggets/string/xor_mixin.rb +0 -60
  156. data/lib/nuggets/tempfile/open.rb +0 -58
  157. data/lib/nuggets/uri/content_type.rb +0 -5
  158. data/lib/nuggets/uri/content_type_mixin.rb +0 -48
  159. data/lib/nuggets/uri/exist.rb +0 -5
  160. data/lib/nuggets/uri/exist_mixin.rb +0 -57
  161. data/lib/nuggets/uri/redirect.rb +0 -5
  162. data/lib/nuggets/uri/redirect_mixin.rb +0 -102
  163. data/lib/nuggets/util/ansicolor2css.rb +0 -4
  164. data/lib/nuggets/util/cli.rb +0 -4
  165. data/lib/nuggets/util/content_type.rb +0 -4
  166. data/lib/nuggets/util/dotted_decimal.rb +0 -3
  167. data/lib/nuggets/util/i18n.rb +0 -4
  168. data/lib/nuggets/util/lazy_attr.rb +0 -4
  169. data/lib/nuggets/util/log_parser.rb +0 -4
  170. data/lib/nuggets/util/log_parser/apache.rb +0 -4
  171. data/lib/nuggets/util/log_parser/rails.rb +0 -4
  172. data/lib/nuggets/util/midos.rb +0 -4
  173. data/lib/nuggets/util/mysql.rb +0 -4
  174. data/lib/nuggets/util/pluggable.rb +0 -4
  175. data/lib/nuggets/util/ruby.rb +0 -4
  176. data/lib/nuggets/version.rb +0 -27
  177. data/spec/nuggets/array/boost_spec.rb +0 -50
  178. data/spec/nuggets/array/combination_spec.rb +0 -25
  179. data/spec/nuggets/array/correlation_spec.rb +0 -81
  180. data/spec/nuggets/array/flatten_once_spec.rb +0 -16
  181. data/spec/nuggets/array/flush_spec.rb +0 -43
  182. data/spec/nuggets/array/format_spec.rb +0 -52
  183. data/spec/nuggets/array/hashify_spec.rb +0 -41
  184. data/spec/nuggets/array/histogram_spec.rb +0 -87
  185. data/spec/nuggets/array/in_order_spec.rb +0 -13
  186. data/spec/nuggets/array/limit_spec.rb +0 -62
  187. data/spec/nuggets/array/mean_spec.rb +0 -203
  188. data/spec/nuggets/array/median_spec.rb +0 -77
  189. data/spec/nuggets/array/mode_spec.rb +0 -57
  190. data/spec/nuggets/array/monotone_spec.rb +0 -30
  191. data/spec/nuggets/array/only_spec.rb +0 -26
  192. data/spec/nuggets/array/regression_spec.rb +0 -54
  193. data/spec/nuggets/array/runiq_spec.rb +0 -25
  194. data/spec/nuggets/array/standard_deviation_spec.rb +0 -33
  195. data/spec/nuggets/array/to_hash_spec.rb +0 -28
  196. data/spec/nuggets/array/variance_spec.rb +0 -106
  197. data/spec/nuggets/dotted_decimal_spec.rb +0 -27
  198. data/spec/nuggets/enumerable/all_any_extended_spec.rb +0 -31
  199. data/spec/nuggets/enumerable/minmax_spec.rb +0 -21
  200. data/spec/nuggets/env/set_spec.rb +0 -29
  201. data/spec/nuggets/env/user_encoding_spec.rb +0 -38
  202. data/spec/nuggets/env/user_home_spec.rb +0 -42
  203. data/spec/nuggets/file/ext_spec.rb +0 -38
  204. data/spec/nuggets/file/replace_spec.rb +0 -95
  205. data/spec/nuggets/file/sub_spec.rb +0 -149
  206. data/spec/nuggets/file/which_spec.rb +0 -22
  207. data/spec/nuggets/hash/at_spec.rb +0 -19
  208. data/spec/nuggets/hash/deep_fetch_spec.rb +0 -159
  209. data/spec/nuggets/hash/deep_merge_spec.rb +0 -78
  210. data/spec/nuggets/hash/in_order_spec.rb +0 -12
  211. data/spec/nuggets/hash/insert_spec.rb +0 -13
  212. data/spec/nuggets/hash/nest_spec.rb +0 -102
  213. data/spec/nuggets/hash/only_spec.rb +0 -29
  214. data/spec/nuggets/hash/seen_spec.rb +0 -36
  215. data/spec/nuggets/hash/unroll_spec.rb +0 -68
  216. data/spec/nuggets/i18n_spec.rb +0 -13
  217. data/spec/nuggets/integer/factorial_spec.rb +0 -10
  218. data/spec/nuggets/integer/length_spec.rb +0 -18
  219. data/spec/nuggets/integer/map_spec.rb +0 -19
  220. data/spec/nuggets/integer/to_binary_s_spec.rb +0 -19
  221. data/spec/nuggets/numeric/duration_spec.rb +0 -25
  222. data/spec/nuggets/numeric/limit_spec.rb +0 -16
  223. data/spec/nuggets/numeric/signum_spec.rb +0 -16
  224. data/spec/nuggets/numeric/to_multiple_spec.rb +0 -16
  225. data/spec/nuggets/object/blank_spec.rb +0 -34
  226. data/spec/nuggets/object/boolean_spec.rb +0 -23
  227. data/spec/nuggets/object/msend_spec.rb +0 -25
  228. data/spec/nuggets/object/silence_spec.rb +0 -36
  229. data/spec/nuggets/object/singleton_class_spec.rb +0 -51
  230. data/spec/nuggets/proc/bind_spec.rb +0 -28
  231. data/spec/nuggets/range/quantile_spec.rb +0 -33
  232. data/spec/nuggets/string/camelscore_spec.rb +0 -114
  233. data/spec/nuggets/string/capitalize_first_spec.rb +0 -13
  234. data/spec/nuggets/string/case_spec.rb +0 -31
  235. data/spec/nuggets/string/evaluate_spec.rb +0 -24
  236. data/spec/nuggets/string/msub_spec.rb +0 -20
  237. data/spec/nuggets/string/nsub_spec.rb +0 -13
  238. data/spec/nuggets/string/sub_with_md_spec.rb +0 -25
  239. data/spec/nuggets/string/wc_spec.rb +0 -73
  240. data/spec/nuggets/string/word_wrap_spec.rb +0 -81
  241. data/spec/nuggets/string/xor_spec.rb +0 -57
  242. data/spec/nuggets/uri/content_type_spec.rb +0 -42
  243. data/spec/nuggets/uri/exist_spec.rb +0 -49
  244. data/spec/spec_helper.rb +0 -36
@@ -1,13 +0,0 @@
1
- require 'nuggets/array/in_order'
2
-
3
- describe Array, 'in_order' do
4
-
5
- let(:a) { [:created_at, :email, :login, :updated_at] }
6
-
7
- example { a.in_order(:login, :email).should == [:login, :email, :created_at, :updated_at] }
8
-
9
- example { a.in_order(:email, :address).should == [:email, :created_at, :login, :updated_at] }
10
-
11
- example { a.in_order!(:login, :email); a.should == [:login, :email, :created_at, :updated_at] }
12
-
13
- end
@@ -1,62 +0,0 @@
1
- require 'nuggets/array/limit'
2
- require 'nuggets/numeric/limit'
3
-
4
- describe_extended Array, Nuggets::Array::LimitMixin do
5
-
6
- describe '#limit' do
7
-
8
- example do
9
- [].limit(0, 1).should == []
10
- end
11
-
12
- example do
13
- [1].limit(0, 1).should == [1]
14
- end
15
-
16
- example do
17
- [1, 1, 1].limit(0, 1).should == [1]
18
- end
19
-
20
- example do
21
- [1, 2, 3].limit(0, 1).should == [1]
22
- end
23
-
24
- example do
25
- [1, 2, 3].limit(0, 2).should == [1, 2]
26
- end
27
-
28
- example do
29
- [-3, -2, -1].limit(0, 1).should == [0]
30
- end
31
-
32
- example do
33
- [1, -2, 1, 2, 3, -4, 0, 3, 1, 2, 1, 0, 24].limit(-2, 2).should == [1, -2, 2, 0]
34
- end
35
-
36
- end
37
-
38
- describe '#cap' do
39
-
40
- example do
41
- [1, 1, 1].cap(1).should == [1, 1, 1]
42
- end
43
-
44
- example do
45
- [1, 2, 3].cap(1).should == [1, 1, 1]
46
- end
47
-
48
- example do
49
- [1, 2, 3].cap(2).should == [1, 2, 2]
50
- end
51
-
52
- example do
53
- [-3, -2, -1].cap(0).should == [-3, -2, -1]
54
- end
55
-
56
- example do
57
- [1, -2, 1, 2, 3, -4, 0, 3, 1, 2, 1, 0, 24].cap(-2..2).should == [1, -2, 1, 2, 2, -2, 0, 2, 1, 2, 1, 0, 2]
58
- end
59
-
60
- end
61
-
62
- end
@@ -1,203 +0,0 @@
1
- require 'nuggets/array/mean'
2
- require 'nuggets/array/standard_deviation'
3
-
4
- describe_extended Array, Nuggets::Array::MeanMixin do
5
-
6
- describe 'equalities' do
7
-
8
- %w[arithmetic geometric harmonic].each { |type|
9
- method = "#{type}_mean"
10
-
11
- example do
12
- val = rand
13
- ary = [val] * 10
14
-
15
- ary.send(method).should equal_float(val)
16
- end
17
-
18
- example do
19
- ary, const = Array.new(10) { rand }, rand
20
-
21
- res1 = ary.map { |i| const * i }.send(method)
22
- res2 = ary.send(method)
23
-
24
- res1.should equal_float(const * res2)
25
- end
26
- }
27
-
28
- end
29
-
30
- describe 'inequalities' do
31
-
32
- before :each do
33
- @ary = Array.new(10) { rand }
34
- end
35
-
36
- 3.times {
37
-
38
- { 0 => 1, 1 => 2, 3 => 23, 0.1 => 0.2, -1 => 0, -3 => -2 }.each { |exponent1, exponent2|
39
- example do
40
- @ary.generalized_mean(exponent1).should <= @ary.generalized_mean(exponent2)
41
- end
42
- }
43
-
44
- example do
45
- res = %w[quadratic arithmetic geometric harmonic].map { |type| @ary.send("#{type}_mean") }
46
- res[0].should >= res[1]; res[1].should >= res[2]; res[2].should >= res[3]
47
- end
48
-
49
- }
50
-
51
- end
52
-
53
- describe 'arithmetic mean' do
54
-
55
- example do
56
- [].arithmetic_mean.should be_nil
57
- end
58
-
59
- example do
60
- [1].arithmetic_mean.should == 1.0
61
- end
62
-
63
- example do
64
- [1, 1, 1].arithmetic_mean.should == 1.0
65
- end
66
-
67
- example do
68
- [1, 2, 3].arithmetic_mean.should == 2.0
69
- end
70
-
71
- example do
72
- [3, 2, 1].arithmetic_mean.should == 2.0
73
- end
74
-
75
- example do
76
- [-3, -2, -1].arithmetic_mean.should == -[3, 2, 1].arithmetic_mean
77
- end
78
-
79
- example do
80
- [1e16, 1, 3, -1e16].arithmetic_mean.should == 1.0
81
- end
82
-
83
- xexample do
84
- [1e30, 1, 3, -1e30].arithmetic_mean.should == 1.0
85
- end
86
-
87
- context do
88
-
89
- before :each do
90
- @ary = [1, -2, 1, 2, 3, -4, 0, 3, 1, 2, 1, 0, 24]
91
- @res = @ary.arithmetic_mean
92
- end
93
-
94
- example do
95
- @res.should equal_float(2.46153846153846)
96
- end
97
-
98
- %w[mean average avg].each { |method|
99
- example { @ary.send(method).should == @res }
100
- }
101
-
102
- end
103
-
104
- describe '(weighted)' do
105
-
106
- example do
107
- [1, 2, 3].arithmetic_mean { |i| 0 }.should be_nil
108
- end
109
-
110
- example do
111
- [1, 2, 3].arithmetic_mean { |i| 1 / i.to_f }.should equal_float(1.63636363636364)
112
- end
113
-
114
- example do
115
- w = rand
116
- [1, 2, 3].arithmetic_mean { |i| w }.should == 2.0
117
- end
118
-
119
- example do
120
- [1, 2, 3].arithmetic_mean { |i| i ** 2 }.should equal_float(2.57142857142857)
121
- end
122
-
123
- end
124
-
125
- end
126
-
127
- # TODO: other methods
128
- # TODO: more examples: http://people.revoledu.com/kardi/tutorial/BasicMath/Average/mean.html
129
-
130
- describe 'report mean' do
131
-
132
- before :each do
133
- @ary = [[9.4, 34.75], [9.46, 34.68], [9.51, 34.61]]
134
-
135
- @ary1 = @ary.map(&:first)
136
- @ary2 = @ary.map(&:last)
137
- end
138
-
139
- describe 'w/o stddev' do
140
-
141
- before :each do
142
- [@ary, @ary1, @ary2].each { |ary|
143
- class << ary; undef_method :std; end if ary.respond_to?(:std)
144
- }
145
- end
146
-
147
- example do
148
- @ary.report_mean.should == ['9.4567', '34.6800']
149
- end
150
-
151
- example do
152
- @ary.report_mean(:harmonic).should == ['9.4565', '34.6799']
153
- end
154
-
155
- example do
156
- @ary.unshift(%w[a b]).report_mean(nil, 2).should == ['a 9.46', 'b 34.68']
157
- end
158
-
159
- example do
160
- @ary1.report_mean.should == ['9.4567']
161
- end
162
-
163
- example do
164
- @ary2.report_mean.should == ['34.6800']
165
- end
166
-
167
- example do
168
- [].report_mean.should be_nil
169
- end
170
-
171
- end
172
-
173
- describe 'w/ stddev' do
174
-
175
- example do
176
- @ary.report_mean.should == ['9.4567 +/- 0.0450', '34.6800 +/- 0.0572']
177
- end
178
-
179
- example do
180
- @ary.report_mean(:harmonic).should == ['9.4565 +/- 0.0450', '34.6799 +/- 0.0572']
181
- end
182
-
183
- example do
184
- @ary.unshift(%w[a b]).report_mean(nil, 2).should == ['a 9.46 +/- 0.04', 'b 34.68 +/- 0.06']
185
- end
186
-
187
- example do
188
- @ary1.report_mean.should == ['9.4567 +/- 0.0450']
189
- end
190
-
191
- example do
192
- @ary2.report_mean.should == ['34.6800 +/- 0.0572']
193
- end
194
-
195
- example do
196
- [].report_mean.should be_nil
197
- end
198
-
199
- end
200
-
201
- end
202
-
203
- end
@@ -1,77 +0,0 @@
1
- require 'nuggets/array/median'
2
-
3
- describe_extended Array, Nuggets::Array::MedianMixin do
4
-
5
- example do
6
- [].median.should be_nil
7
- end
8
-
9
- example do
10
- [1].median.should == 1
11
- end
12
-
13
- example do
14
- [1, 1, 1].median.should == 1
15
- end
16
-
17
- example do
18
- [1, 2, 3].median.should == 2
19
- end
20
-
21
- example do
22
- [3, 2, 1].median.should == 2
23
- end
24
-
25
- example do
26
- [-3, -2, -1].median.should == -[3, 2, 1].median
27
- end
28
-
29
- example do
30
- [1, -2, 1, 2, 3, -4, 0, 3, 1, 2, 1, 0, 24].median.should == 1
31
- end
32
-
33
- example do
34
- [1, 2, 3, 4].median.should == 2.5
35
- end
36
-
37
- example do
38
- %w[one two three].median.should == 'three'
39
- end
40
-
41
- example do
42
- %w[three two one].median.should == 'three'
43
- end
44
-
45
- [true, 1, :left].each { |prefer|
46
- example { [1, 2, 3].median(prefer).should == 2 }
47
- example { [1, 2, 3, 4].median(prefer).should == 2 }
48
-
49
- example { %w[one two three].median(prefer).should == 'three' }
50
- example { %w[one two three four].median(prefer).should == 'one' }
51
- }
52
-
53
- [false, 2, :right].each { |prefer|
54
- example { [1, 2, 3].median(prefer).should == 2 }
55
- example { [1, 2, 3, 4].median(prefer).should == 3 }
56
-
57
- example { %w[one two three].median(prefer).should == 'three' }
58
- example { %w[one two three four].median(prefer).should == 'three' }
59
- }
60
-
61
- example do
62
- [1, 2, 3, 4].median { |a, b| a * b }.should == 6
63
- end
64
-
65
- example do
66
- %w[one two three four].median { |a, b| b * a.length }.should == 'threethreethree'
67
- end
68
-
69
- example do
70
- lambda { %w[one two three four].median }.should raise_error(NoMethodError, %r{undefined method `/' .*String})
71
- end
72
-
73
- example do
74
- lambda { [1, 2, 'three'].median }.should raise_error(ArgumentError, /comparison .* failed/)
75
- end
76
-
77
- end
@@ -1,57 +0,0 @@
1
- require 'nuggets/array/mode'
2
-
3
- describe_extended Array, Nuggets::Array::ModeMixin do
4
-
5
- example do
6
- [].mode.should be_nil
7
- end
8
-
9
- example do
10
- [1].mode.should == 1
11
- end
12
-
13
- example do
14
- [1, 1, 1].mode.should == 1
15
- end
16
-
17
- example do
18
- [1, 2, 2, 3].mode.should == 2
19
- end
20
-
21
- example do
22
- [3, 2, 2, 1].mode.should == 2
23
- end
24
-
25
- example do
26
- [-3, -2, -2, -1].mode.should == -[3, 2, 2, 1].mode
27
- end
28
-
29
- example do
30
- [1, -2, 1, 2, 3, -4, 0, 3, 1, 2, 1, 0, 24].mode.should == 1
31
- end
32
-
33
- example do
34
- [1, 2, 2, 3, 3, 4].modes.should == [2, 3]
35
- end
36
-
37
- example do
38
- [2, 3].should include([1, 2, 2, 3, 3, 4].mode)
39
- end
40
-
41
- example do
42
- %w[one two three three].mode.should == 'three'
43
- end
44
-
45
- example do
46
- %w[three two one three].mode.should == 'three'
47
- end
48
-
49
- example do
50
- [1, 2, 2, 3, 4].mode { |x| x * 2 }.should == 4
51
- end
52
-
53
- example do
54
- [1, 2, 3, 4].modes { |x| x / 2 }.should == [1]
55
- end
56
-
57
- end
@@ -1,30 +0,0 @@
1
- require 'nuggets/array/monotone'
2
-
3
- describe Array, 'monotone' do
4
-
5
- example {
6
- a = [1, 2, 3, 4]
7
-
8
- a.should be_monotonic
9
- a.should be_ascending
10
- a.should be_strictly_ascending
11
- a.should_not be_descending
12
- }
13
-
14
- example {
15
- b = [1, 2, 4, 3]
16
-
17
- b.should_not be_monotonic
18
- b.should_not be_ascending
19
- b.should_not be_descending
20
- }
21
-
22
- example {
23
- c = [1, 2, 4, 4]
24
-
25
- c.should be_monotonic
26
- c.should be_ascending
27
- c.should_not be_strictly_ascending
28
- }
29
-
30
- end