ruby-nuggets 0.9.9 → 1.0.0

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