minitest 5.24.1 → 5.25.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: d6452667dd5b1b7c8a083aebc718437613071b7b544b10d6974bc82d1236c900
4
- data.tar.gz: 452965ff5a2b9e852174b81a9b762818da296869507ba1d16e6106bfe40c913b
3
+ metadata.gz: 6e090130753c1fb650b32bb10042b89b676ce100ceba25021cd3a7351d9114df
4
+ data.tar.gz: 729687628f500bc5b2153864f723491b72a98afcc6fd50da27fc48a5ed952def
5
5
  SHA512:
6
- metadata.gz: f98fdc87bd639f427d527552ed131233f31d9096e97643150df0bd732700070180cf2cb4a278531bd53faa780769404f606f35ea04ac44bf81652a700df20c3d
7
- data.tar.gz: a1d99a1cdb10b6629e34e76848de7301e80ef85280a54629ca225bb1b9a0e644f83f2b43d51a39d21c97c6da8da47d23c5a96cf3fcc90088a63fe448097b287b
6
+ metadata.gz: 9a0d599badcfe81e3cf63bc030b39cfa6ff0388f9d732ab145002c8e5c1b1b83dbeb8d51878d977a717528afefb4616ce9ba23922795b05bcc4d30983bbbc577
7
+ data.tar.gz: c3693a94e10968dd1f0a89a0217d83612978baf5471d9b37e184a0fd3e8ba0ee513f79c51f99fee0af468539d636d9aa8f4724de629fc02599c5a8141ee74c1c
checksums.yaml.gz.sig CHANGED
Binary file
data/History.rdoc CHANGED
@@ -1,3 +1,24 @@
1
+ === 5.25.0 / 2024-08-13
2
+
3
+ * 2 minor enhancements:
4
+
5
+ * Fixed some inefficiencies filtering and matching (mostly backtraces).
6
+ * Refactored siginfo handler to reduce runtime costs. Saved ~30%!
7
+
8
+ * 5 bug fixes:
9
+
10
+ * Added missing rdoc to get back to 100% coverage.
11
+ * Cleaning up ancient code checking for defined?(Encoding) and the like.
12
+ * Disambiguated some shadowed variables in minitest/compress.
13
+ * Fixed an ironic bug if using string-literals AND Werror.
14
+ * Improve description of test:slow task. (stomar)
15
+
16
+ === 5.24.1 / 2024-06-29
17
+
18
+ * 1 bug fix:
19
+
20
+ * Fix the error message when an extension is invalid value. (y-yagi)
21
+
1
22
  === 5.24.0 / 2024-06-18
2
23
 
3
24
  * 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
data/lib/minitest/mock.rb CHANGED
@@ -8,7 +8,7 @@ module Minitest # :nodoc:
8
8
  # All mock objects are an instance of Mock
9
9
 
10
10
  class Mock
11
- alias :__respond_to? :respond_to?
11
+ alias __respond_to? respond_to?
12
12
 
13
13
  overridden_methods = %i[
14
14
  ===
@@ -93,7 +93,7 @@ module Minitest # :nodoc:
93
93
  def expect name, retval, args = [], **kwargs, &blk
94
94
  name = name.to_sym
95
95
 
96
- if block_given?
96
+ if blk then
97
97
  raise ArgumentError, "args ignored when block given" unless args.empty?
98
98
  raise ArgumentError, "kwargs ignored when block given" unless kwargs.empty?
99
99
  @expected_calls[name] << { :retval => retval, :block => blk }
@@ -106,7 +106,7 @@ module Minitest # :nodoc:
106
106
  kwargs = args.pop
107
107
  else
108
108
  unless @@KW_WARNED then
109
- from = caller.first
109
+ from = caller(1..1).first
110
110
  warn "Using MT_KWARGS_HAC\K yet passing kwargs. From #{from}"
111
111
  @@KW_WARNED = true
112
112
  end
@@ -141,7 +141,7 @@ module Minitest # :nodoc:
141
141
 
142
142
  def verify
143
143
  @expected_calls.each do |name, expected|
144
- actual = @actual_calls.fetch(name, nil)
144
+ actual = @actual_calls.fetch name, nil # defaults to []
145
145
  raise MockExpectationError, "expected #{__call name, expected[0]}" unless actual
146
146
  raise MockExpectationError, "expected #{__call name, expected[actual.size]}, got [#{__call name, actual}]" if
147
147
  actual.size < expected.size
@@ -150,7 +150,7 @@ module Minitest # :nodoc:
150
150
  end
151
151
 
152
152
  def method_missing sym, *args, **kwargs, &block # :nodoc:
153
- unless @expected_calls.key?(sym) then
153
+ unless @expected_calls.key? sym then
154
154
  if @delegator && @delegator.respond_to?(sym)
155
155
  if kwargs.empty? then # FIX: drop this after 2.7 dead
156
156
  return @delegator.public_send(sym, *args, &block)
@@ -172,9 +172,9 @@ module Minitest # :nodoc:
172
172
  end
173
173
 
174
174
  expected_args, expected_kwargs, retval, val_block =
175
- expected_call.values_at(:args, :kwargs, :retval, :block)
175
+ expected_call.values_at :args, :kwargs, :retval, :block
176
176
 
177
- expected_kwargs = kwargs.map { |ak, av| [ak, Object] }.to_h if
177
+ expected_kwargs = kwargs.to_h { |ak, av| [ak, Object] } if
178
178
  Hash == expected_kwargs
179
179
 
180
180
  if val_block then
@@ -197,7 +197,7 @@ module Minitest # :nodoc:
197
197
  [sym, expected_kwargs.size, kwargs]
198
198
  end
199
199
 
200
- zipped_args = expected_args.zip(args)
200
+ zipped_args = expected_args.zip args
201
201
  fully_matched = zipped_args.all? { |mod, a|
202
202
  mod === a or mod == a
203
203
  }
@@ -212,10 +212,10 @@ module Minitest # :nodoc:
212
212
  raise MockExpectationError, fmt % [sym, expected_kwargs.keys, kwargs.keys]
213
213
  end
214
214
 
215
- zipped_kwargs = expected_kwargs.map { |ek, ev|
215
+ zipped_kwargs = expected_kwargs.to_h { |ek, ev|
216
216
  av = kwargs[ek]
217
217
  [ek, [ev, av]]
218
- }.to_h
218
+ }
219
219
 
220
220
  fully_matched = zipped_kwargs.all? { |ek, (ev, av)|
221
221
  ev === av or ev == av
@@ -228,8 +228,8 @@ module Minitest # :nodoc:
228
228
 
229
229
  @actual_calls[sym] << {
230
230
  :retval => retval,
231
- :args => zipped_args.map { |e, a| e === a ? e : a },
232
- :kwargs => zipped_kwargs.map { |k, (e, a)| [k, e === a ? e : a] }.to_h,
231
+ :args => zipped_args.map { |e, a| e === a ? e : a },
232
+ :kwargs => zipped_kwargs.to_h { |k, (e, a)| [k, e === a ? e : a] },
233
233
  }
234
234
 
235
235
  retval
@@ -238,7 +238,7 @@ module Minitest # :nodoc:
238
238
  def respond_to? sym, include_private = false # :nodoc:
239
239
  return true if @expected_calls.key? sym.to_sym
240
240
  return true if @delegator && @delegator.respond_to?(sym, include_private)
241
- __respond_to?(sym, include_private)
241
+ __respond_to? sym, include_private
242
242
  end
243
243
  end
244
244
  end