enumerable-stats 1.3.0 → 1.4.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c0131e566d1175fe367fb75c840914ae752eea76a1a194a8d35a02d24591d6ad
4
- data.tar.gz: bb99194f3965132256bb9cdabed80bf58c5da172f7cd10e4f56277c0417fe7d0
3
+ metadata.gz: e012306442bdf4598aeff1c134063a3a0c98e6765a949c492626ba7acdf90c1d
4
+ data.tar.gz: dc2565331c7aa7f07ab55c7b876d78e8c9759f7a0e083d9a39f82c2deb1c5458
5
5
  SHA512:
6
- metadata.gz: 022f98715f44e7788749adb509bbef27bf759d2d09c7d946ebbdf21e34ea6e8a7225e011be6ad39e3260cec3f7daad17c61ecefbd9a197457b0e75d9bd10889c
7
- data.tar.gz: d1e0a0052b175fe9fc4175961d0b52248c8cc78c39258048fa7846d9e67c8bd2ff6fe6da365b41284b9b9e2d48c8a9c1fcc165d621a25d9227df88716849ae34
6
+ metadata.gz: 1ef3e67bbf9977081003fb009b08afe891b0177a26d58fa5cd206f216890c1ec3c8b4904e92f2731bc3a6ce134848813033d555c7baa16c8fdde87637913f894
7
+ data.tar.gz: 4aa56d0cba5bd41c2b2e91224814801f8c97429a9cf2516d1acae865c0a2a6b7b786e5eeaba4c81e4777a7b0735b8008fdaf263e9fb26d7c0165fce70f7a24ff
@@ -147,16 +147,6 @@ module EnumerableStats
147
147
  t_stat > critical_value
148
148
  end
149
149
 
150
- # Alias for greater_than?
151
- def >(other, alpha: 0.05)
152
- greater_than?(other, alpha: alpha)
153
- end
154
-
155
- # Alias for less_than?
156
- def <(other, alpha: 0.05)
157
- less_than?(other, alpha: alpha)
158
- end
159
-
160
150
  # Tests if this collection's mean is significantly less than another collection's mean
161
151
  # using a one-tailed Student's t-test. Returns true if the test indicates statistical
162
152
  # significance at the specified alpha level.
@@ -177,6 +167,58 @@ module EnumerableStats
177
167
  t_stat < -critical_value
178
168
  end
179
169
 
170
+ # Operator alias for greater_than? - tests if this collection's mean is significantly greater
171
+ #
172
+ # @param other [Enumerable] Another collection to compare against
173
+ # @param alpha [Float] The significance level (default: 0.05 for 95% confidence)
174
+ # @return [Boolean] true if this collection's mean is significantly greater
175
+ # @example
176
+ # baseline = [100, 110, 105, 115, 95]
177
+ # optimized = [85, 95, 90, 100, 80]
178
+ # baseline > optimized # => true (baseline is significantly greater)
179
+ def >(other, alpha: 0.05)
180
+ greater_than?(other, alpha: alpha)
181
+ end
182
+
183
+ # Operator alias for less_than? - tests if this collection's mean is significantly less
184
+ #
185
+ # @param other [Enumerable] Another collection to compare against
186
+ # @param alpha [Float] The significance level (default: 0.05 for 95% confidence)
187
+ # @return [Boolean] true if this collection's mean is significantly less
188
+ # @example
189
+ # optimized = [85, 95, 90, 100, 80]
190
+ # baseline = [100, 110, 105, 115, 95]
191
+ # optimized < baseline # => true (optimized is significantly less)
192
+ def <(other, alpha: 0.05)
193
+ less_than?(other, alpha: alpha)
194
+ end
195
+
196
+ # Tests if this collection's mean is significantly different from another collection's mean
197
+ # using a two-tailed Student's t-test. Returns 1 if the test indicates statistical
198
+ # significance at the specified alpha level, -1 if the test indicates statistical
199
+ # significance at the specified alpha level, and 0 if the test indicates no statistical
200
+ # significance at the specified alpha level.
201
+ #
202
+ # @param other [Enumerable] Another collection to compare against
203
+ # @param alpha [Float] Significance level (default: 0.05 for 95% confidence)
204
+ # @return [Integer] 1 if this collection's mean is significantly greater, -1 if this collection's mean is
205
+ # significantly less, 0 if this collection's mean is not significantly different
206
+ # @example
207
+ # control = [10, 12, 11, 13, 12] # mean ≈ 11.6
208
+ # treatment = [15, 17, 16, 18, 14] # mean = 16.0
209
+ # control <=> treatment # => 1 (control is significantly different from treatment)
210
+ # treatment <=> control # => -1 (treatment is significantly different from control)
211
+ # control <=> control # => 0 (control is not significantly different from itself)
212
+ def <=>(other, alpha: 0.05)
213
+ if greater_than?(other, alpha: alpha)
214
+ 1
215
+ elsif less_than?(other, alpha: alpha)
216
+ -1
217
+ else
218
+ 0
219
+ end
220
+ end
221
+
180
222
  # Calculates the arithmetic mean (average) of the collection
181
223
  #
182
224
  # @return [Float] The arithmetic mean of all numeric values
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module EnumerableStats
4
+ VERSION = "1.4.0"
5
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: enumerable-stats
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0
4
+ version: 1.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jon Daniel
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-08-03 00:00:00.000000000 Z
11
+ date: 2025-08-04 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: |
14
14
  A Ruby gem that extends all Enumerable objects (Arrays, Ranges, Sets, etc.) with essential statistical methods.
@@ -22,6 +22,7 @@ extra_rdoc_files: []
22
22
  files:
23
23
  - lib/enumerable-stats.rb
24
24
  - lib/enumerable_stats/enumerable_ext.rb
25
+ - lib/enumerable_stats/version.rb
25
26
  homepage: https://github.com/binarycleric/enumerable-stats
26
27
  licenses:
27
28
  - MIT