enumerable-statistics 2.0.1 → 2.0.7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e593e551f4f9b857a009db71093abab619e96680c4d15fc0eaa3a96c6e622bd4
4
- data.tar.gz: eb449c789843e7e3e2c435890b8a9281d49cb6cdaad4ebbfc979b959413f617f
3
+ metadata.gz: caf1b8203b177aef325480c7d7d5a4c0ddb7cecdad3d12944d4b2caa71eebe13
4
+ data.tar.gz: 00d91f25e099eb2577eb1f6078dafb5c884538fe3863eb1b6795de58c0c3b642
5
5
  SHA512:
6
- metadata.gz: 8866ba9d47c0715b82ffe7370b1fe8f683e1c1a17fd2dfee50db06c536cfa25b469bbf94a0f23c24ce2179c9d81203b761f8d17beadf113752b4f89490a48a2f
7
- data.tar.gz: 942e4dacc202cef906e631c38d9450045f9712ffed811b35f7f28fafeecc0e92f70196b0d8d8053423266d60210a1f556ed600d4c2c2b0ee5320aa97830cab47
6
+ metadata.gz: 2c9ab8a29752eb46cd00bf8f3f9787d6f151bc10e06d2179fa5f80e3ebb4625b96144a49fd907eb52c02e8f88767f9da1717761643d87e1489677a9eab227af9
7
+ data.tar.gz: de2d3d348ead4d6e99cffdb66f95a56ac7cfe603a4450db23deaddb6eeb82e454f79e84c236ea89142ea334999a82c6c307e16ac7085b1afe2895c63a6a8c5d4
@@ -0,0 +1,47 @@
1
+ name: CI
2
+
3
+ on:
4
+ - push
5
+
6
+ jobs:
7
+ cruby:
8
+ name: Test
9
+ runs-on: ${{ matrix.os }}
10
+
11
+ strategy:
12
+ fail-fast: false
13
+ matrix:
14
+ os:
15
+ - ubuntu-latest
16
+ - macos-latest
17
+ - windows-latest
18
+ ruby:
19
+ - 3.0
20
+ - 2.7
21
+ - 2.6
22
+ - 2.5
23
+ - 2.4
24
+ - debug
25
+ exclude:
26
+ - os: windows-latest
27
+ ruby: 3.0
28
+ - os: windows-latest
29
+ ruby: debug
30
+
31
+ steps:
32
+ - uses: actions/checkout@v2
33
+
34
+ - name: Setup Ruby
35
+ uses: ruby/setup-ruby@v1
36
+ with:
37
+ ruby-version: ${{ matrix.ruby }}
38
+
39
+ - run: gem install bundler
40
+ - run: bundle install
41
+
42
+ - run: rake --trace compile
43
+
44
+ - run: rake build
45
+ - run: gem install pkg/*gem
46
+
47
+ - run: rake
data/CHANGELOG.md CHANGED
@@ -1,3 +1,29 @@
1
+ # 2.0.7
2
+
3
+ - Fix the bug of histogram with bin range that is smaller than value range
4
+
5
+ # 2.0.6
6
+
7
+ - Add edges parameter in histogram
8
+ - Rename parameter in histogram to fix typo: `weight` to `weights`
9
+
10
+ # 2.0.5
11
+
12
+ - Add weighted histogram support
13
+
14
+ # 2.0.4
15
+
16
+ - Add `find_min`, `find_max`, `argmin`, `argmax` methods
17
+ - Fix `nbin=:auto` case in `histogram` method
18
+
19
+ # 2.0.3
20
+
21
+ - Ractor-safe version
22
+
23
+ # 2.0.2
24
+
25
+ - Support Ruby 3.0
26
+
1
27
  # 2.0.1
2
28
 
3
29
  - Fix a bug of `histogram` (#9)
data/Rakefile CHANGED
@@ -8,7 +8,14 @@ Rake::ExtensionTask.new('enumerable/statistics/extension')
8
8
 
9
9
  directory 'lib/enumerable/statistics'
10
10
 
11
+ desc "Run test"
12
+ task :test do
13
+ ruby("test/run-test.rb")
14
+ end
15
+ task :test => :compile
16
+
11
17
  RSpec::Core::RakeTask.new(:spec)
18
+ task :spec => :compile
12
19
 
13
20
  task :bench do
14
21
  puts "# sum\n"
@@ -20,3 +27,5 @@ task :bench do
20
27
  puts "# variance\n"
21
28
  system('benchmark-driver bench/variance.yml')
22
29
  end
30
+
31
+ task default: [:test, :spec]
@@ -27,10 +27,11 @@ Gem::Specification.new do |spec|
27
27
 
28
28
  spec.required_ruby_version = '>= 2.4'
29
29
 
30
- spec.add_development_dependency "bundler", ">= 1.17.2"
30
+ spec.add_development_dependency "bundler"
31
31
  spec.add_development_dependency "rake"
32
32
  spec.add_development_dependency "rake-compiler", ">= 0.9.8"
33
33
  spec.add_development_dependency "rspec", ">= 3.4"
34
+ spec.add_development_dependency "test-unit"
34
35
  spec.add_development_dependency "fuubar"
35
36
  spec.add_development_dependency "yard"
36
37
  spec.add_development_dependency "benchmark-driver"
@@ -0,0 +1,60 @@
1
+ #include <ruby/ruby.h>
2
+
3
+ static VALUE
4
+ ary_find_max(VALUE ary)
5
+ {
6
+ const long n = RARRAY_LEN(ary);
7
+ if (n == 0) {
8
+ return Qnil;
9
+ }
10
+
11
+ long imax = 0;
12
+ VALUE max = RARRAY_AREF(ary, imax);
13
+
14
+ long i;
15
+ for (i = 1; i < n; ++i) {
16
+ VALUE v = RARRAY_AREF(ary, i);
17
+ if (RTEST(rb_funcall(v, '>', 1, max))) {
18
+ imax = i;
19
+ max = v;
20
+ }
21
+ }
22
+
23
+ return rb_assoc_new(max, LONG2NUM(imax));
24
+ }
25
+
26
+ static VALUE
27
+ ary_find_min(VALUE ary)
28
+ {
29
+ const long n = RARRAY_LEN(ary);
30
+ if (n == 0) {
31
+ return Qnil;
32
+ }
33
+
34
+ long imin = 0;
35
+ VALUE min = RARRAY_AREF(ary, imin);
36
+
37
+ long i;
38
+ for (i = 1; i < n; ++i) {
39
+ VALUE v = RARRAY_AREF(ary, i);
40
+ if (RTEST(rb_funcall(v, '<', 1, min))) {
41
+ imin = i;
42
+ min = v;
43
+ }
44
+ }
45
+
46
+ return rb_assoc_new(min, LONG2NUM(imin));
47
+ }
48
+
49
+ void
50
+ Init_array_extension(void)
51
+ {
52
+ VALUE mEnumerableStatistics = rb_const_get_at(rb_cObject, rb_intern("EnumerableStatistics"));
53
+ VALUE mArrayExtension = rb_const_get_at(mEnumerableStatistics, rb_intern("ArrayExtension"));
54
+
55
+ rb_undef_method(mArrayExtension, "find_max");
56
+ rb_define_method(mArrayExtension, "find_max", ary_find_max, 0);
57
+
58
+ rb_undef_method(mArrayExtension, "find_min");
59
+ rb_define_method(mArrayExtension, "find_min", ary_find_min, 0);
60
+ }
@@ -44,7 +44,7 @@ struct RRational {
44
44
  #endif
45
45
 
46
46
  #ifndef RRATIONAL
47
- # define RRATIONAL(obj) (R_CAST(RRational)(obj))
47
+ # define RRATIONAL(obj) ((struct RRational *)(obj))
48
48
  #endif
49
49
 
50
50
  #ifndef RRATIONAL_SET_NUM
@@ -64,7 +64,7 @@ struct RComplex {
64
64
  #endif
65
65
 
66
66
  #ifndef RCOMPLEX
67
- # define RCOMPLEX(obj) (R_CAST(RComplex)(obj))
67
+ # define RCOMPLEX(obj) ((struct RComplex *)(obj))
68
68
  #endif
69
69
 
70
70
  #ifndef RCOMPLEX_SET_REAL
@@ -97,7 +97,7 @@ static ID idPow, idPLUS, idMINUS, idSTAR, idDIV, idGE;
97
97
  static ID id_eqeq_p, id_idiv, id_negate, id_to_f, id_cmp, id_nan_p;
98
98
  static ID id_each, id_real_p, id_sum, id_population, id_closed, id_edge;
99
99
 
100
- static VALUE sym_left, sym_right;
100
+ static VALUE sym_auto, sym_left, sym_right;
101
101
 
102
102
  static VALUE cHistogram;
103
103
 
@@ -2102,50 +2102,67 @@ histogram_edge_bin_index(VALUE edge, VALUE rb_x, int left_p)
2102
2102
  }
2103
2103
 
2104
2104
  static void
2105
- histogram_weights_push_values(VALUE weights, VALUE edge, VALUE values, int left_p)
2105
+ histogram_weights_push_values(VALUE bin_weights, VALUE edge, VALUE values, VALUE weight_array, int left_p)
2106
2106
  {
2107
+ const VALUE one = INT2FIX(1);
2108
+ long bi, i, n, n_bins, weighted = 0;
2107
2109
  VALUE x, cur;
2108
- long i, n, bi;
2110
+
2111
+ assert(RB_TYPE_P(edge, T_ARRAY));
2112
+ assert(RB_TYPE_P(values, T_ARRAY));
2109
2113
 
2110
2114
  n = RARRAY_LEN(values);
2115
+ n_bins = RARRAY_LEN(edge) - 1;
2116
+
2117
+ if (! NIL_P(weight_array)) {
2118
+ assert(RB_TYPE_P(weight_array, T_ARRAY));
2119
+ assert(RARRAY_LEN(weight_array) == n);
2120
+ weighted = 1;
2121
+ }
2122
+
2111
2123
  for (i = 0; i < n; ++i) {
2112
2124
  x = RARRAY_AREF(values, i);
2113
2125
 
2114
- bi = histogram_edge_bin_index(edge, x, left_p);
2115
-
2116
- cur = rb_ary_entry(weights, bi);
2117
- if (NIL_P(cur)) {
2118
- cur = INT2FIX(1);
2126
+ VALUE w;
2127
+ if (weighted) {
2128
+ w = RARRAY_AREF(weight_array, i);
2129
+ if (RB_TYPE_P(w, T_COMPLEX)) {
2130
+ VALUE imag = RCOMPLEX(w)->imag;
2131
+ if (! RTEST(f_zero_p(imag))) {
2132
+ goto type_error;
2133
+ }
2134
+ }
2135
+ else if (rb_obj_is_kind_of(w, rb_cNumeric)) {
2136
+ if (!RTEST(f_real_p(w))) {
2137
+ goto type_error;
2138
+ }
2139
+ }
2140
+ else {
2141
+ goto type_error;
2142
+ }
2119
2143
  }
2120
2144
  else {
2121
- cur = rb_funcall(cur, idPLUS, 1, INT2FIX(1));
2145
+ w = one;
2122
2146
  }
2123
2147
 
2124
- rb_ary_store(weights, bi, cur);
2125
- }
2126
- }
2148
+ bi = histogram_edge_bin_index(edge, x, left_p);
2127
2149
 
2128
- static int
2129
- opt_closed_left_p(VALUE opts)
2130
- {
2131
- int left_p = 1;
2150
+ if (0 <= bi && bi < n_bins) {
2151
+ cur = rb_ary_entry(bin_weights, bi);
2152
+ if (NIL_P(cur)) {
2153
+ cur = w;
2154
+ }
2155
+ else {
2156
+ cur = rb_funcall(cur, idPLUS, 1, w);
2157
+ }
2132
2158
 
2133
- if (!NIL_P(opts)) {
2134
- VALUE closed;
2135
- #ifdef HAVE_RB_GET_KWARGS
2136
- ID kwargs = id_closed;
2137
- rb_get_kwargs(opts, &kwargs, 0, 1, &closed);
2138
- #else
2139
- closed = rb_hash_lookup2(opts, ID2SYM(id_closed), sym_left);
2140
- #endif
2141
- left_p = (closed != sym_right);
2142
- if (left_p && closed != sym_left) {
2143
- rb_raise(rb_eArgError, "invalid value for :closed keyword "
2144
- "(%"PRIsVALUE" for :left or :right)", closed);
2159
+ rb_ary_store(bin_weights, bi, cur);
2145
2160
  }
2146
2161
  }
2162
+ return;
2147
2163
 
2148
- return left_p;
2164
+ type_error:
2165
+ rb_raise(rb_eTypeError, "weight array must have only real numbers");
2149
2166
  }
2150
2167
 
2151
2168
  static inline long
@@ -2269,10 +2286,47 @@ ary_histogram_calculate_edge(VALUE ary, const long nbins, const int left_p)
2269
2286
  return edge;
2270
2287
  }
2271
2288
 
2289
+ static VALUE
2290
+ check_histogram_weight_array(VALUE weight_array, const long ary_len)
2291
+ {
2292
+ if (weight_array == Qundef) return Qnil;
2293
+
2294
+ weight_array = rb_check_convert_type(weight_array, T_ARRAY, "Array", "to_ary");
2295
+ if (RARRAY_LEN(weight_array) != ary_len) {
2296
+ rb_raise(rb_eArgError, "weight array must have the same number of items as the receiver array");
2297
+ }
2298
+
2299
+ return weight_array;
2300
+ }
2301
+
2302
+ static VALUE
2303
+ check_histogram_edges(VALUE edges)
2304
+ {
2305
+ if (edges == Qundef) return Qnil;
2306
+ return rb_check_convert_type(edges, T_ARRAY, "Array", "to_ary");
2307
+ }
2308
+
2309
+ static int
2310
+ check_histogram_left_p(VALUE closed)
2311
+ {
2312
+ int left_p = (closed != sym_right);
2313
+ if (left_p && closed != Qundef && closed != sym_left) {
2314
+ rb_raise(rb_eArgError, "invalid value for :closed keyword "
2315
+ "(%"PRIsVALUE" for :left or :right)", closed);
2316
+ }
2317
+ return left_p;
2318
+ }
2319
+
2272
2320
  /* call-seq:
2273
- * ary.histogram(nbins=:auto, closed: :left)
2321
+ * ary.histogram(nbins=:auto, weight: nil, closed: :left)
2274
2322
  *
2275
2323
  * @param [Integer] nbins The approximate number of bins
2324
+ * @params [Array<Numeric>] weights
2325
+ * An optional weight array, that has the same length as the receiver.
2326
+ * `weight[i]` means the weight value of the i-th element in the receiver.
2327
+ * @params [Array<Numeric>] edges
2328
+ * An optional edge array, that specify the bin edges.
2329
+ * This array must be sorted.
2276
2330
  * @param [:left, :right] closed
2277
2331
  * If :left (the default), the bin interval are left-closed.
2278
2332
  * If :right, the bin interval are right-closed.
@@ -2282,30 +2336,52 @@ ary_histogram_calculate_edge(VALUE ary, const long nbins, const int left_p)
2282
2336
  static VALUE
2283
2337
  ary_histogram(int argc, VALUE *argv, VALUE ary)
2284
2338
  {
2285
- VALUE arg0, opts, edge, weights;
2286
- int left_p;
2287
- long nbins, nweights, i;
2339
+ VALUE arg0, kwargs, bin_weights;
2340
+ long nbins, n_bin_weights, i;
2288
2341
 
2289
- rb_scan_args(argc, argv, "01:", &arg0, &opts);
2290
- if (NIL_P(arg0)) {
2342
+ VALUE weight_array = Qnil;
2343
+ VALUE edges = Qnil;
2344
+ int left_p = 1;
2345
+
2346
+ rb_scan_args(argc, argv, "01:", &arg0, &kwargs);
2347
+ if (NIL_P(arg0) || arg0 == sym_auto) {
2291
2348
  nbins = sturges(RARRAY_LEN(ary));
2292
2349
  }
2293
2350
  else {
2294
2351
  nbins = NUM2LONG(arg0);
2295
2352
  }
2296
- left_p = opt_closed_left_p(opts);
2297
2353
 
2298
- edge = ary_histogram_calculate_edge(ary, nbins, left_p);
2354
+ if (!NIL_P(kwargs)) {
2355
+ enum { kw_weights, kw_edges, kw_closed };
2356
+ static ID kwarg_keys[3];
2357
+ VALUE kwarg_vals[3];
2358
+
2359
+ if (!kwarg_keys[0]) {
2360
+ kwarg_keys[kw_weights] = rb_intern("weights");
2361
+ kwarg_keys[kw_edges] = rb_intern("edges");
2362
+ kwarg_keys[kw_closed] = rb_intern("closed");
2363
+ }
2364
+
2365
+ rb_get_kwargs(kwargs, kwarg_keys, 0, 3, kwarg_vals);
2366
+
2367
+ weight_array = check_histogram_weight_array(kwarg_vals[kw_weights], RARRAY_LEN(ary));
2368
+ edges = check_histogram_edges(kwarg_vals[kw_edges]);
2369
+ left_p = check_histogram_left_p(kwarg_vals[kw_closed]);
2370
+ }
2371
+
2372
+ if (NIL_P(edges)) {
2373
+ edges = ary_histogram_calculate_edge(ary, nbins, left_p);
2374
+ }
2299
2375
 
2300
- nweights = RARRAY_LEN(edge) - 1;
2301
- weights = rb_ary_new_capa(nweights);
2302
- for (i = 0; i < nweights; ++i) {
2303
- rb_ary_store(weights, i, INT2FIX(0));
2376
+ n_bin_weights = RARRAY_LEN(edges) - 1;
2377
+ bin_weights = rb_ary_new_capa(n_bin_weights);
2378
+ for (i = 0; i < n_bin_weights; ++i) {
2379
+ rb_ary_store(bin_weights, i, INT2FIX(0));
2304
2380
  }
2305
2381
 
2306
- histogram_weights_push_values(weights, edge, ary, left_p);
2382
+ histogram_weights_push_values(bin_weights, edges, ary, weight_array, left_p);
2307
2383
 
2308
- return rb_struct_new(cHistogram, edge, weights,
2384
+ return rb_struct_new(cHistogram, edges, bin_weights,
2309
2385
  left_p ? sym_left : sym_right,
2310
2386
  Qfalse);
2311
2387
  }
@@ -2315,6 +2391,10 @@ Init_extension(void)
2315
2391
  {
2316
2392
  VALUE mEnumerableStatistics;
2317
2393
 
2394
+ #ifdef HAVE_RB_EXT_RACTOR_SAFE
2395
+ rb_ext_ractor_safe(true);
2396
+ #endif
2397
+
2318
2398
  #ifndef HAVE_ENUM_SUM
2319
2399
  rb_define_method(rb_mEnumerable, "sum", enum_sum, -1);
2320
2400
  #endif
@@ -2348,6 +2428,9 @@ Init_extension(void)
2348
2428
 
2349
2429
  rb_define_method(rb_cArray, "histogram", ary_histogram, -1);
2350
2430
 
2431
+ void Init_array_extension(void);
2432
+ Init_array_extension();
2433
+
2351
2434
  idPLUS = '+';
2352
2435
  idMINUS = '-';
2353
2436
  idSTAR = '*';
@@ -2367,6 +2450,7 @@ Init_extension(void)
2367
2450
  id_closed = rb_intern("closed");
2368
2451
  id_edge = rb_intern("edge");
2369
2452
 
2453
+ sym_auto = ID2SYM(rb_intern("auto"));
2370
2454
  sym_left = ID2SYM(rb_intern("left"));
2371
2455
  sym_right = ID2SYM(rb_intern("right"));
2372
2456
  }
@@ -1,2 +1,3 @@
1
1
  require_relative "enumerable_statistics/version"
2
+ require_relative "enumerable_statistics/array_ext"
2
3
  require_relative "enumerable_statistics/histogram"
@@ -0,0 +1,37 @@
1
+ module EnumerableStatistics
2
+ module ArrayExtension
3
+ def find_max
4
+ n = size
5
+ return nil if n == 0
6
+
7
+ imax, i = 0, 1
8
+ while i < n
9
+ imax = i if self[i] > self[imax]
10
+ i += 1
11
+ end
12
+ [self[imax], imax]
13
+ end
14
+
15
+ def argmax
16
+ find_max[1]
17
+ end
18
+
19
+ def find_min
20
+ n = size
21
+ return nil if n == 0
22
+
23
+ imin, i = 0, 1
24
+ while i < n
25
+ imin = i if self[i] < self[imax]
26
+ i += 1
27
+ end
28
+ [self[imin], imin]
29
+ end
30
+
31
+ def argmin
32
+ find_min[1]
33
+ end
34
+ end
35
+
36
+ Array.include ArrayExtension
37
+ end
@@ -1,5 +1,6 @@
1
1
  module EnumerableStatistics
2
- class Histogram < Struct.new(:edge, :weights, :closed, :isdensity)
2
+ class Histogram < Struct.new(:edges, :weights, :closed, :isdensity)
3
+ alias edge edges
3
4
  alias density? isdensity
4
5
  end
5
6
  end
@@ -1,5 +1,5 @@
1
1
  module EnumerableStatistics
2
- VERSION = '2.0.1'
2
+ VERSION = '2.0.7'
3
3
 
4
4
  module Version
5
5
  numbers, TAG = VERSION.split('-', 2)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: enumerable-statistics
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.1
4
+ version: 2.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kenta Murata
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-01-11 00:00:00.000000000 Z
11
+ date: 2021-06-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 1.17.2
19
+ version: '0'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: 1.17.2
26
+ version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -66,6 +66,20 @@ dependencies:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '3.4'
69
+ - !ruby/object:Gem::Dependency
70
+ name: test-unit
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: fuubar
71
85
  requirement: !ruby/object:Gem::Requirement
@@ -114,12 +128,11 @@ email:
114
128
  executables: []
115
129
  extensions:
116
130
  - ext/enumerable/statistics/extension/extconf.rb
117
- - ext/-bench-/extconf.rb
118
131
  extra_rdoc_files: []
119
132
  files:
133
+ - ".github/workflows/ci.yml"
120
134
  - ".gitignore"
121
135
  - ".rspec"
122
- - ".travis.yml"
123
136
  - ".yardopts"
124
137
  - CHANGELOG.md
125
138
  - Gemfile
@@ -136,12 +149,13 @@ files:
136
149
  - bin/rspec
137
150
  - bin/setup
138
151
  - enumerable-statistics.gemspec
139
- - ext/-bench-/extconf.rb
152
+ - ext/enumerable/statistics/extension/array_ext.c
140
153
  - ext/enumerable/statistics/extension/extconf.rb
141
154
  - ext/enumerable/statistics/extension/statistics.c
142
155
  - images/benchmark.png
143
156
  - lib/enumerable/statistics.rb
144
157
  - lib/enumerable_statistics.rb
158
+ - lib/enumerable_statistics/array_ext.rb
145
159
  - lib/enumerable_statistics/histogram.rb
146
160
  - lib/enumerable_statistics/version.rb
147
161
  - templates/default/layout/html/headers.erb
@@ -275,7 +289,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
275
289
  - !ruby/object:Gem::Version
276
290
  version: '0'
277
291
  requirements: []
278
- rubygems_version: 3.1.2
292
+ rubygems_version: 3.2.21
279
293
  signing_key:
280
294
  specification_version: 4
281
295
  summary: Statistics features for Enumerable
data/.travis.yml DELETED
@@ -1,32 +0,0 @@
1
- ---
2
- notification:
3
- email:
4
- - mrkn@ruby-lang.org
5
-
6
- language: ruby
7
-
8
- before_install:
9
- - yes | gem update --system
10
- - gem install bundler
11
-
12
- install:
13
- - bundle install
14
-
15
- script:
16
- - bundle exec rake --trace clobber compile
17
- - bundle exec rake spec
18
-
19
- matrix:
20
- include:
21
- - name: "2.3"
22
- rvm: 2.3
23
- - name: "2.4"
24
- rvm: 2.4.5
25
- - name: "2.5"
26
- rvm: 2.5.2
27
- - name: "2.6"
28
- rvm: 2.6
29
- - name: "trunk"
30
- rvm: ruby-head
31
- allow_failures:
32
- - rvm: 2.3
@@ -1,3 +0,0 @@
1
- require 'mkmf'
2
-
3
- create_makefile('-bench-')