minitest 5.24.1 → 5.25.1

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: d6452667dd5b1b7c8a083aebc718437613071b7b544b10d6974bc82d1236c900
4
- data.tar.gz: 452965ff5a2b9e852174b81a9b762818da296869507ba1d16e6106bfe40c913b
3
+ metadata.gz: 791576b6d19fd427617c1e5c02a7ddf55f3d214e75bdeeda4ec5ccb49bbad5d2
4
+ data.tar.gz: 95a6dccbd1cc86bf047b82e88725d50d0dd03dab9f1f6db0a02aad13f1398f10
5
5
  SHA512:
6
- metadata.gz: f98fdc87bd639f427d527552ed131233f31d9096e97643150df0bd732700070180cf2cb4a278531bd53faa780769404f606f35ea04ac44bf81652a700df20c3d
7
- data.tar.gz: a1d99a1cdb10b6629e34e76848de7301e80ef85280a54629ca225bb1b9a0e644f83f2b43d51a39d21c97c6da8da47d23c5a96cf3fcc90088a63fe448097b287b
6
+ metadata.gz: acde5c1dc093da1b6749b4e328fe5e0b86ba34c081b3d6e667165f8811ea3565774570e73216d67f8c337b5e3999193b2709a50bd69e0dc62ed211b86d087cb9
7
+ data.tar.gz: ee2390a10ef3ce15c17fef8d8387ff38509ac7c5bf9fd0bcbb1b6c160592821b268d713c0dc8c7357ddeaefb8ca08d0a04d96501c064e0c4f4781f7b3612bbb8
checksums.yaml.gz.sig CHANGED
Binary file
data/History.rdoc CHANGED
@@ -1,3 +1,31 @@
1
+ === 5.25.1 / 2024-08-16
2
+
3
+ * 2 bug fixes:
4
+
5
+ * Fix incompatibility caused by minitest-hooks & rails invading minitest internals.
6
+ * Revert change from =~ to match? to allow for nil if $TERM undefined.
7
+
8
+ === 5.25.0 / 2024-08-13
9
+
10
+ * 2 minor enhancements:
11
+
12
+ * Fixed some inefficiencies filtering and matching (mostly backtraces).
13
+ * Refactored siginfo handler to reduce runtime costs. Saved ~30%!
14
+
15
+ * 5 bug fixes:
16
+
17
+ * Added missing rdoc to get back to 100% coverage.
18
+ * Cleaning up ancient code checking for defined?(Encoding) and the like.
19
+ * Disambiguated some shadowed variables in minitest/compress.
20
+ * Fixed an ironic bug if using string-literals AND Werror.
21
+ * Improve description of test:slow task. (stomar)
22
+
23
+ === 5.24.1 / 2024-06-29
24
+
25
+ * 1 bug fix:
26
+
27
+ * Fix the error message when an extension is invalid value. (y-yagi)
28
+
1
29
  === 5.24.0 / 2024-06-18
2
30
 
3
31
  * 2 minor enhancements:
data/lib/hoe/minitest.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  # :stopdoc:
2
2
 
3
3
  class Hoe
4
+ # empty
4
5
  end
5
6
 
6
7
  module Hoe::Minitest
@@ -16,7 +17,7 @@ module Hoe::Minitest
16
17
 
17
18
  gem "minitest"
18
19
  require "minitest"
19
- version = Minitest::VERSION.split(/\./).first(2).join(".")
20
+ version = Minitest::VERSION.split(".").first(2).join "."
20
21
 
21
22
  dependency "minitest", "~> #{version}", :development unless
22
23
  minitest? or ENV["MT_NO_ISOLATE"]
@@ -1,5 +1,3 @@
1
- # encoding: UTF-8
2
-
3
1
  require "rbconfig"
4
2
  require "tempfile"
5
3
  require "stringio"
@@ -29,12 +27,12 @@ module Minitest
29
27
  def self.diff
30
28
  return @diff if defined? @diff
31
29
 
32
- @diff = if (RbConfig::CONFIG["host_os"] =~ /mswin|mingw/ &&
33
- system("diff.exe", __FILE__, __FILE__)) then
30
+ @diff = if (RbConfig::CONFIG["host_os"] =~ /mswin|mingw/ and
31
+ system "diff.exe", __FILE__, __FILE__) then
34
32
  "diff.exe -u"
35
- elsif system("gdiff", __FILE__, __FILE__)
33
+ elsif system "gdiff", __FILE__, __FILE__ then
36
34
  "gdiff -u" # solaris and kin suck
37
- elsif system("diff", __FILE__, __FILE__)
35
+ elsif system "diff", __FILE__, __FILE__ then
38
36
  "diff -u"
39
37
  else
40
38
  nil
@@ -59,16 +57,16 @@ module Minitest
59
57
  def diff exp, act
60
58
  result = nil
61
59
 
62
- expect, butwas = things_to_diff(exp, act)
60
+ expect, butwas = things_to_diff exp, act
63
61
 
64
62
  return "Expected: #{mu_pp exp}\n Actual: #{mu_pp act}" unless
65
63
  expect
66
64
 
67
- Tempfile.open("expect") do |a|
65
+ Tempfile.open "expect" do |a|
68
66
  a.puts expect
69
67
  a.flush
70
68
 
71
- Tempfile.open("butwas") do |b|
69
+ Tempfile.open "butwas" do |b|
72
70
  b.puts butwas
73
71
  b.flush
74
72
 
@@ -79,10 +77,10 @@ module Minitest
79
77
  if result.empty? then
80
78
  klass = exp.class
81
79
  result = [
82
- "No visible difference in the #{klass}#inspect output.\n",
83
- "You should look at the implementation of #== on ",
84
- "#{klass} or its members.\n",
85
- expect,
80
+ "No visible difference in the #{klass}#inspect output.\n",
81
+ "You should look at the implementation of #== on ",
82
+ "#{klass} or its members.\n",
83
+ expect,
86
84
  ].join
87
85
  end
88
86
  end
@@ -127,20 +125,15 @@ module Minitest
127
125
  # See Minitest::Test.make_my_diffs_pretty!
128
126
 
129
127
  def mu_pp obj
130
- s = obj.inspect
128
+ s = obj.inspect.encode Encoding.default_external
131
129
 
132
- if defined? Encoding then
133
- s = s.encode Encoding.default_external
130
+ return s unless String === obj &&
131
+ (obj.encoding != Encoding.default_external || !obj.valid_encoding?)
134
132
 
135
- if String === obj && (obj.encoding != Encoding.default_external ||
136
- !obj.valid_encoding?) then
137
- enc = "# encoding: #{obj.encoding}"
138
- val = "# valid: #{obj.valid_encoding?}"
139
- s = "#{enc}\n#{val}\n#{s}"
140
- end
141
- end
133
+ enc = "# encoding: #{obj.encoding}"
134
+ val = "# valid: #{obj.valid_encoding?}"
142
135
 
143
- s
136
+ [enc, val, s].join "\n"
144
137
  end
145
138
 
146
139
  ##
@@ -153,8 +146,8 @@ module Minitest
153
146
  str = mu_pp obj
154
147
 
155
148
  # both '\n' & '\\n' (_after_ mu_pp (aka inspect))
156
- single = !!str.match(/(?<!\\|^)\\n/)
157
- double = !!str.match(/(?<=\\|^)\\n/)
149
+ single = str.match?(/(?<!\\|^)\\n/)
150
+ double = str.match?(/(?<=\\|^)\\n/)
158
151
 
159
152
  process =
160
153
  if single ^ double then
@@ -167,9 +160,9 @@ module Minitest
167
160
  :itself # leave it alone
168
161
  end
169
162
 
170
- str.
171
- gsub(/\\?\\n/, &process).
172
- gsub(/:0x[a-fA-F0-9]{4,}/m, ":0xXXXXXX") # anonymize hex values
163
+ str
164
+ .gsub(/\\?\\n/, &process)
165
+ .gsub(/:0x[a-fA-F0-9]{4,}/m, ":0xXXXXXX") # anonymize hex values
173
166
  end
174
167
 
175
168
  ##
@@ -193,14 +186,14 @@ module Minitest
193
186
  # Fails unless +obj+ is empty.
194
187
 
195
188
  def assert_empty obj, msg = nil
196
- msg = message(msg) { "Expected #{mu_pp(obj)} to be empty" }
189
+ msg = message(msg) { "Expected #{mu_pp obj} to be empty" }
197
190
  assert_respond_to obj, :empty?
198
191
  assert obj.empty?, msg
199
192
  end
200
193
 
201
194
  def _where # :nodoc:
202
- where = Minitest.filter_backtrace(caller).first
203
- where = where.split(/:in /, 2).first # clean up noise
195
+ Minitest.filter_backtrace(caller).first
196
+ .split(":in ", 2).first # clean up noise
204
197
  end
205
198
 
206
199
  E = "" # :nodoc:
@@ -223,7 +216,7 @@ module Minitest
223
216
  result = assert exp == act, msg
224
217
 
225
218
  if nil == exp then
226
- if Minitest::VERSION =~ /^6/ then
219
+ if Minitest::VERSION >= "6" then
227
220
  refute_nil exp, "Use assert_nil if expecting nil."
228
221
  else
229
222
  warn "DEPRECATED: Use assert_nil if expecting nil from #{_where}. This will fail in Minitest 6."
@@ -260,7 +253,7 @@ module Minitest
260
253
 
261
254
  def assert_includes collection, obj, msg = nil
262
255
  msg = message(msg) {
263
- "Expected #{mu_pp(collection)} to include #{mu_pp(obj)}"
256
+ "Expected #{mu_pp collection} to include #{mu_pp obj}"
264
257
  }
265
258
  assert_respond_to collection, :include?
266
259
  assert collection.include?(obj), msg
@@ -271,7 +264,7 @@ module Minitest
271
264
 
272
265
  def assert_instance_of cls, obj, msg = nil
273
266
  msg = message(msg) {
274
- "Expected #{mu_pp(obj)} to be an instance of #{cls}, not #{obj.class}"
267
+ "Expected #{mu_pp obj} to be an instance of #{cls}, not #{obj.class}"
275
268
  }
276
269
 
277
270
  assert obj.instance_of?(cls), msg
@@ -282,7 +275,8 @@ module Minitest
282
275
 
283
276
  def assert_kind_of cls, obj, msg = nil
284
277
  msg = message(msg) {
285
- "Expected #{mu_pp(obj)} to be a kind of #{cls}, not #{obj.class}" }
278
+ "Expected #{mu_pp obj} to be a kind of #{cls}, not #{obj.class}"
279
+ }
286
280
 
287
281
  assert obj.kind_of?(cls), msg
288
282
  end
@@ -292,7 +286,7 @@ module Minitest
292
286
 
293
287
  def assert_match matcher, obj, msg = nil
294
288
  msg = message(msg) { "Expected #{mu_pp matcher} to match #{mu_pp obj}" }
295
- assert_respond_to matcher, :"=~"
289
+ assert_respond_to matcher, :=~
296
290
  matcher = Regexp.new Regexp.escape matcher if String === matcher
297
291
  assert matcher =~ obj, msg
298
292
 
@@ -303,7 +297,7 @@ module Minitest
303
297
  # Fails unless +obj+ is nil
304
298
 
305
299
  def assert_nil obj, msg = nil
306
- msg = message(msg) { "Expected #{mu_pp(obj)} to be nil" }
300
+ msg = message(msg) { "Expected #{mu_pp obj} to be nil" }
307
301
  assert obj.nil?, msg
308
302
  end
309
303
 
@@ -314,7 +308,7 @@ module Minitest
314
308
 
315
309
  def assert_operator o1, op, o2 = UNDEFINED, msg = nil
316
310
  return assert_predicate o1, op, msg if UNDEFINED == o2
317
- msg = message(msg) { "Expected #{mu_pp(o1)} to be #{op} #{mu_pp(o2)}" }
311
+ msg = message(msg) { "Expected #{mu_pp o1} to be #{op} #{mu_pp o2}" }
318
312
  assert o1.__send__(op, o2), msg
319
313
  end
320
314
 
@@ -395,7 +389,7 @@ module Minitest
395
389
  # str.must_be :empty?
396
390
 
397
391
  def assert_predicate o1, op, msg = nil
398
- msg = message(msg) { "Expected #{mu_pp(o1)} to be #{op}" }
392
+ msg = message(msg) { "Expected #{mu_pp o1} to be #{op}" }
399
393
  assert o1.__send__(op), msg
400
394
  end
401
395
 
@@ -440,13 +434,13 @@ module Minitest
440
434
  raise
441
435
  rescue Exception => e
442
436
  flunk proc {
443
- exception_details(e, "#{msg}#{mu_pp(exp)} exception expected, not")
437
+ exception_details(e, "#{msg}#{mu_pp exp} exception expected, not")
444
438
  }
445
439
  end
446
440
 
447
441
  exp = exp.first if exp.size == 1
448
442
 
449
- flunk "#{msg}#{mu_pp(exp)} expected but nothing was raised."
443
+ flunk "#{msg}#{mu_pp exp} expected but nothing was raised."
450
444
  end
451
445
 
452
446
  ##
@@ -455,7 +449,7 @@ module Minitest
455
449
 
456
450
  def assert_respond_to obj, meth, msg = nil, include_all: false
457
451
  msg = message(msg) {
458
- "Expected #{mu_pp(obj)} (#{obj.class}) to respond to ##{meth}"
452
+ "Expected #{mu_pp obj} (#{obj.class}) to respond to ##{meth}"
459
453
  }
460
454
  assert obj.respond_to?(meth, include_all), msg
461
455
  end
@@ -481,7 +475,8 @@ module Minitest
481
475
 
482
476
  recv, msg, *args = send_ary
483
477
  m = message(m) {
484
- "Expected #{mu_pp(recv)}.#{msg}(*#{mu_pp(args)}) to return true" }
478
+ "Expected #{mu_pp recv}.#{msg}(*#{mu_pp args}) to return true"
479
+ }
485
480
  assert recv.__send__(msg, *args), m
486
481
  end
487
482
 
@@ -500,15 +495,15 @@ module Minitest
500
495
  # Fails unless the block throws +sym+
501
496
 
502
497
  def assert_throws sym, msg = nil
503
- default = "Expected #{mu_pp(sym)} to have been thrown"
498
+ default = "Expected #{mu_pp sym} to have been thrown"
504
499
  caught = true
505
- value = catch(sym) do
500
+ value = catch sym do
506
501
  begin
507
502
  yield
508
503
  rescue ThreadError => e # wtf?!? 1.8 + threads == suck
509
- default += ", not \:#{e.message[/uncaught throw \`(\w+?)\'/, 1]}"
504
+ default += ", not :#{e.message[/uncaught throw \`(\w+?)\'/, 1]}"
510
505
  rescue ArgumentError => e # 1.9 exception
511
- raise e unless e.message.include?("uncaught throw")
506
+ raise e unless e.message.include? "uncaught throw"
512
507
  default += ", not #{e.message.split(/ /).last}"
513
508
  rescue NameError => e # 1.8 exception
514
509
  raise e unless e.name == sym
@@ -607,12 +602,12 @@ module Minitest
607
602
 
608
603
  def exception_details e, msg
609
604
  [
610
- "#{msg}",
611
- "Class: <#{e.class}>",
612
- "Message: <#{e.message.inspect}>",
613
- "---Backtrace---",
614
- "#{Minitest.filter_backtrace(e.backtrace).join("\n")}",
615
- "---------------",
605
+ msg,
606
+ "Class: <#{e.class}>",
607
+ "Message: <#{e.message.inspect}>",
608
+ "---Backtrace---",
609
+ Minitest.filter_backtrace(e.backtrace),
610
+ "---------------",
616
611
  ].join "\n"
617
612
  end
618
613
 
@@ -621,7 +616,7 @@ module Minitest
621
616
  # you to put time-bombs in your tests if you need to keep
622
617
  # something around until a later date lest you forget about it.
623
618
 
624
- def fail_after y,m,d,msg
619
+ def fail_after y, m, d, msg
625
620
  flunk msg if Time.now > Time.local(y, m, d)
626
621
  end
627
622
 
@@ -655,7 +650,7 @@ module Minitest
655
650
  # Fails if +test+ is truthy.
656
651
 
657
652
  def refute test, msg = nil
658
- msg ||= message { "Expected #{mu_pp(test)} to not be truthy" }
653
+ msg ||= message { "Expected #{mu_pp test} to not be truthy" }
659
654
  assert !test, msg
660
655
  end
661
656
 
@@ -663,7 +658,7 @@ module Minitest
663
658
  # Fails if +obj+ is empty.
664
659
 
665
660
  def refute_empty obj, msg = nil
666
- msg = message(msg) { "Expected #{mu_pp(obj)} to not be empty" }
661
+ msg = message(msg) { "Expected #{mu_pp obj} to not be empty" }
667
662
  assert_respond_to obj, :empty?
668
663
  refute obj.empty?, msg
669
664
  end
@@ -675,7 +670,7 @@ module Minitest
675
670
 
676
671
  def refute_equal exp, act, msg = nil
677
672
  msg = message(msg) {
678
- "Expected #{mu_pp(act)} to not be equal to #{mu_pp(exp)}"
673
+ "Expected #{mu_pp act} to not be equal to #{mu_pp exp}"
679
674
  }
680
675
  refute exp == act, msg
681
676
  end
@@ -706,7 +701,7 @@ module Minitest
706
701
 
707
702
  def refute_includes collection, obj, msg = nil
708
703
  msg = message(msg) {
709
- "Expected #{mu_pp(collection)} to not include #{mu_pp(obj)}"
704
+ "Expected #{mu_pp collection} to not include #{mu_pp obj}"
710
705
  }
711
706
  assert_respond_to collection, :include?
712
707
  refute collection.include?(obj), msg
@@ -717,7 +712,7 @@ module Minitest
717
712
 
718
713
  def refute_instance_of cls, obj, msg = nil
719
714
  msg = message(msg) {
720
- "Expected #{mu_pp(obj)} to not be an instance of #{cls}"
715
+ "Expected #{mu_pp obj} to not be an instance of #{cls}"
721
716
  }
722
717
  refute obj.instance_of?(cls), msg
723
718
  end
@@ -726,7 +721,7 @@ module Minitest
726
721
  # Fails if +obj+ is a kind of +cls+.
727
722
 
728
723
  def refute_kind_of cls, obj, msg = nil
729
- msg = message(msg) { "Expected #{mu_pp(obj)} to not be a kind of #{cls}" }
724
+ msg = message(msg) { "Expected #{mu_pp obj} to not be a kind of #{cls}" }
730
725
  refute obj.kind_of?(cls), msg
731
726
  end
732
727
 
@@ -735,7 +730,7 @@ module Minitest
735
730
 
736
731
  def refute_match matcher, obj, msg = nil
737
732
  msg = message(msg) { "Expected #{mu_pp matcher} to not match #{mu_pp obj}" }
738
- assert_respond_to matcher, :"=~"
733
+ assert_respond_to matcher, :=~
739
734
  matcher = Regexp.new Regexp.escape matcher if String === matcher
740
735
  refute matcher =~ obj, msg
741
736
  end
@@ -744,7 +739,7 @@ module Minitest
744
739
  # Fails if +obj+ is nil.
745
740
 
746
741
  def refute_nil obj, msg = nil
747
- msg = message(msg) { "Expected #{mu_pp(obj)} to not be nil" }
742
+ msg = message(msg) { "Expected #{mu_pp obj} to not be nil" }
748
743
  refute obj.nil?, msg
749
744
  end
750
745
 
@@ -766,7 +761,7 @@ module Minitest
766
761
 
767
762
  begin
768
763
  yield
769
- flunk("NoMatchingPatternError expected, but nothing was raised.")
764
+ flunk "NoMatchingPatternError expected, but nothing was raised."
770
765
  rescue NoMatchingPatternError
771
766
  pass
772
767
  end
@@ -780,7 +775,7 @@ module Minitest
780
775
 
781
776
  def refute_operator o1, op, o2 = UNDEFINED, msg = nil
782
777
  return refute_predicate o1, op, msg if UNDEFINED == o2
783
- msg = message(msg) { "Expected #{mu_pp(o1)} to not be #{op} #{mu_pp(o2)}" }
778
+ msg = message(msg) { "Expected #{mu_pp o1} to not be #{op} #{mu_pp o2}" }
784
779
  refute o1.__send__(op, o2), msg
785
780
  end
786
781
 
@@ -802,7 +797,7 @@ module Minitest
802
797
  # str.wont_be :empty?
803
798
 
804
799
  def refute_predicate o1, op, msg = nil
805
- msg = message(msg) { "Expected #{mu_pp(o1)} to not be #{op}" }
800
+ msg = message(msg) { "Expected #{mu_pp o1} to not be #{op}" }
806
801
  refute o1.__send__(op), msg
807
802
  end
808
803
 
@@ -811,7 +806,7 @@ module Minitest
811
806
  # include_all defaults to false to match Object#respond_to?
812
807
 
813
808
  def refute_respond_to obj, meth, msg = nil, include_all: false
814
- msg = message(msg) { "Expected #{mu_pp(obj)} to not respond to #{meth}" }
809
+ msg = message(msg) { "Expected #{mu_pp obj} to not respond to #{meth}" }
815
810
 
816
811
  refute obj.respond_to?(meth, include_all), msg
817
812
  end
@@ -844,9 +839,9 @@ module Minitest
844
839
  # date, but still holds you accountable and prevents you from
845
840
  # forgetting it.
846
841
 
847
- def skip_until y,m,d,msg
842
+ def skip_until y, m, d, msg
848
843
  skip msg if Time.now < Time.local(y, m, d)
849
- where = caller.first.rpartition(':in').reject(&:empty?).first
844
+ where = caller(1..1).first.rpartition(":in").reject(&:empty?).first
850
845
  warn "Stale skip_until %p at %s" % [msg, where]
851
846
  end
852
847
 
@@ -47,8 +47,6 @@ module Minitest
47
47
 
48
48
  def self.bench_linear min, max, step = 10
49
49
  (min..max).step(step).to_a
50
- rescue LocalJumpError # 1.8.6
51
- r = []; (min..max).step(step) { |n| r << n }; r
52
50
  end
53
51
 
54
52
  ##
@@ -83,7 +81,7 @@ module Minitest
83
81
  def assert_performance validation, &work
84
82
  range = self.class.bench_range
85
83
 
86
- io.print "#{self.name}"
84
+ io.print self.name
87
85
 
88
86
  times = []
89
87
 
@@ -236,7 +234,7 @@ module Minitest
236
234
 
237
235
  def fit_exponential xs, ys
238
236
  n = xs.size
239
- xys = xs.zip(ys)
237
+ xys = xs.zip ys
240
238
  sxlny = sigma(xys) { |x, y| x * Math.log(y) }
241
239
  slny = sigma(xys) { |_, y| Math.log(y) }
242
240
  sx2 = sigma(xys) { |x, _| x * x }
@@ -258,7 +256,7 @@ module Minitest
258
256
 
259
257
  def fit_logarithmic xs, ys
260
258
  n = xs.size
261
- xys = xs.zip(ys)
259
+ xys = xs.zip ys
262
260
  slnx2 = sigma(xys) { |x, _| Math.log(x) ** 2 }
263
261
  slnx = sigma(xys) { |x, _| Math.log(x) }
264
262
  sylnx = sigma(xys) { |x, y| y * Math.log(x) }
@@ -280,7 +278,7 @@ module Minitest
280
278
 
281
279
  def fit_linear xs, ys
282
280
  n = xs.size
283
- xys = xs.zip(ys)
281
+ xys = xs.zip ys
284
282
  sx = sigma xs
285
283
  sy = sigma ys
286
284
  sx2 = sigma(xs) { |x| x ** 2 }
@@ -302,7 +300,7 @@ module Minitest
302
300
 
303
301
  def fit_power xs, ys
304
302
  n = xs.size
305
- xys = xs.zip(ys)
303
+ xys = xs.zip ys
306
304
  slnxlny = sigma(xys) { |x, y| Math.log(x) * Math.log(y) }
307
305
  slnx = sigma(xs) { |x | Math.log(x) }
308
306
  slny = sigma(ys) { | y| Math.log(y) }
@@ -323,7 +321,7 @@ module Minitest
323
321
 
324
322
  def sigma enum, &block
325
323
  enum = enum.map(&block) if block
326
- enum.inject { |sum, n| sum + n }
324
+ enum.sum
327
325
  end
328
326
 
329
327
  ##
@@ -419,7 +417,6 @@ module Minitest
419
417
  end
420
418
  end
421
419
 
422
-
423
420
  ##
424
421
  # Create a benchmark that verifies that the performance is logarithmic.
425
422
  #
@@ -11,12 +11,12 @@ module Minitest
11
11
  def compress orig
12
12
  ary = orig
13
13
 
14
- eswo = ->(ary, n, off) { # each_slice_with_offset
14
+ eswo = ->(a, n, off) { # each_slice_with_offset
15
15
  if off.zero? then
16
- ary.each_slice n
16
+ a.each_slice n
17
17
  else
18
18
  # [ ...off... [...n...] [...n...] ... ]
19
- front, back = ary.take(off), ary.drop(off)
19
+ front, back = a.take(off), a.drop(off)
20
20
  [front].chain back.each_slice n
21
21
  end
22
22
  }
@@ -29,16 +29,16 @@ module Minitest
29
29
 
30
30
  order = index
31
31
  .reject { |k, v| v.size == 1 } # { b: [1 3 5], c: [2 4 6] }
32
- .sort_by { |k, ary| ### sort by max dist + min offset
33
- d = ary.each_cons(2).sum { |a, b| b-a }
34
- [-d, ary.first]
32
+ .sort_by { |k, a1| ### sort by max dist + min offset
33
+ d = a1.each_cons(2).sum { |a2, b| b-a2 }
34
+ [-d, a1.first]
35
35
  } # b: [1 3 5] c: [2 4 6]
36
36
 
37
37
  ranges = order
38
- .map { |k, ary| # [[1..2 3..4] [2..3 4..5]]
39
- ary
38
+ .map { |k, a1| # [[1..2 3..4] [2..3 4..5]]
39
+ a1
40
40
  .each_cons(2)
41
- .map { |a, b| a..b-1 }
41
+ .map { |a2, b| a2..b-1 }
42
42
  }
43
43
 
44
44
  big_ranges = ranges
@@ -50,7 +50,7 @@ module Minitest
50
50
  culprits = big_ranges
51
51
  .map { |r|
52
52
  eswo[ary, r.size, r.begin] # [o1 s1 s1 s2 s2]
53
- .chunk_while { |a,b| a == b } # [[o1] [s1 s1] [s2 s2]]
53
+ .chunk_while { |a, b| a == b } # [[o1] [s1 s1] [s2 s2]]
54
54
  .map { |a| [a.size, a.first] } # [[1 o1] [2 s1] [2 s2]]
55
55
  }
56
56
  .select { |chunks|
@@ -1,11 +1,11 @@
1
1
  module Minitest
2
2
 
3
- module ErrorOnWarning
4
- def warn(message, category: nil)
3
+ module ErrorOnWarning # :nodoc:
4
+ def warn message, category: nil
5
5
  message = "[#{category}] #{message}" if category
6
6
  raise UnexpectedWarning, message
7
7
  end
8
8
  end
9
9
 
10
- ::Warning.singleton_class.prepend(ErrorOnWarning)
10
+ ::Warning.singleton_class.prepend ErrorOnWarning
11
11
  end