minitest-proptest 0.3.0 → 0.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: 236dabad0376379b518d9c29fc12f1bca0a17343c9dc85c6ff19ef94419698e8
4
- data.tar.gz: dbe3075e50971bac885e3fcc6d3c607c9edb4a9e5bac4cc9dc1863a874ac2d5a
3
+ metadata.gz: 902a119e57c8158fe97d384c65cd988a396b1204689f68c0cdd88d88629ee8dc
4
+ data.tar.gz: 1e371e1ce98f872cda67ede73aa5f967685e1d29a3801bf115ee97f2e04829e4
5
5
  SHA512:
6
- metadata.gz: 70f655e9358ce5e198b5489e94a8cdb32d0a58b0d88393482f7faf8e911ab81a50bdc5514add06cb168f13a2c687a825725e00e59c0497937bd076ba8279bc91
7
- data.tar.gz: 9dde2177e0f6a9458f1226abd43c5bd1b7048c3c69c6f746043fb02a4c5e9de1f5e8082bad699001f238b478528da350a63ede6d84b6058f011f9d6960217c88
6
+ metadata.gz: 92c48c115151d03833c649a76441ef6a1be44a101ad0a8c58da77350eafdb3940fe5f78d54c104a6d200b1ebf23a0716c9b13f43dda3b285c1bc7c82c7e6546b
7
+ data.tar.gz: c59e61044807c0c3769c6d9769d9764415a408f4191c8b04b22af59919df73a059bd9ea93536b2ab1cc44cb032bad6ded596f624b10679f4fb047275813ffa2e
@@ -8,13 +8,13 @@ module Minitest
8
8
  attr_accessor :entropy
9
9
  attr_writer :type_parameters
10
10
 
11
- def self.with_shrink_function(&f)
12
- define_method(:shrink_function, &f)
11
+ def self.with_shrink_function(&)
12
+ define_method(:shrink_function, &)
13
13
  self
14
14
  end
15
15
 
16
- def self.with_score_function(&f)
17
- define_method(:score_function, &f)
16
+ def self.with_score_function(&)
17
+ define_method(:score_function, &)
18
18
  self
19
19
  end
20
20
 
@@ -39,7 +39,7 @@ module Minitest
39
39
  end
40
40
  end
41
41
 
42
- def self.generator_for(klass, &f)
42
+ def self.generator_for(klass, &)
43
43
  new_class = Class.new(ValueGenerator)
44
44
  new_class.define_method(:initialize) do |g|
45
45
  @entropy = ->(b = MAX_SIZE) { (@generated << g.rand(b)).last }
@@ -50,7 +50,7 @@ module Minitest
50
50
  @type_parameters = []
51
51
  end
52
52
 
53
- new_class.define_method(:generator, &f)
53
+ new_class.define_method(:generator, &)
54
54
 
55
55
  instance_variable_get(:@_generators)[klass] = new_class
56
56
  self.const_set("#{klass.name}Gen".split('::').last, new_class)
@@ -184,7 +184,7 @@ module Minitest
184
184
  elsif xs2.empty?
185
185
  [[]]
186
186
  else
187
- [xs2] + list_remove.call(k, (n - k), xs2).map { |ys| xs1 + ys }
187
+ [xs2] + list_remove.call(k, n - k, xs2).map { |ys| xs1 + ys }
188
188
  end
189
189
  end
190
190
 
@@ -224,7 +224,7 @@ module Minitest
224
224
  else
225
225
  h1 = xs1.reduce({}) { |c, e| c.merge({ e => h[e] }) }
226
226
  h2 = xs2.reduce({}) { |c, e| c.merge({ e => h[e] }) }
227
- [h1, h2] + list_remove.call(k, (n - k), h2).map { |ys| h1.merge(ys.to_h) }
227
+ [h1, h2] + list_remove.call(k, n - k, h2).map { |ys| h1.merge(ys.to_h) }
228
228
  end
229
229
  end
230
230
 
@@ -271,13 +271,13 @@ module Minitest
271
271
  # random values to shrink towards 0.
272
272
  generator_for(Integer) do
273
273
  r = sized(MAX_SIZE)
274
- if (r & SIGN_BIT).zero?
274
+ if r.nobits?(SIGN_BIT)
275
275
  r
276
276
  else
277
277
  -(((r & (MAX_SIZE ^ SIGN_BIT)) - 1) ^ (MAX_SIZE ^ SIGN_BIT))
278
278
  end
279
279
  end.with_shrink_function do |i|
280
- j = if (i & SIGN_BIT).zero?
280
+ j = if i.nobits?(SIGN_BIT)
281
281
  i
282
282
  else
283
283
  -(((i & (MAX_SIZE ^ SIGN_BIT)) - 1) ^ (MAX_SIZE ^ SIGN_BIT))
@@ -287,22 +287,22 @@ module Minitest
287
287
 
288
288
  generator_for(Int8) do
289
289
  r = sized(0xff)
290
- (r & 0x80).zero? ? r : -((r ^ 0x7f) - 0x7f)
290
+ r.nobits?(0x80) ? r : -((r ^ 0x7f) - 0x7f)
291
291
  end.with_shrink_function(&integral_shrink)
292
292
 
293
293
  generator_for(Int16) do
294
294
  r = sized(0xffff)
295
- (r & 0x8000).zero? ? r : -((r ^ 0x7fff) - 0x7fff)
295
+ r.nobits?(0x8000) ? r : -((r ^ 0x7fff) - 0x7fff)
296
296
  end.with_shrink_function(&integral_shrink)
297
297
 
298
298
  generator_for(Int32) do
299
299
  r = sized(0xffffffff)
300
- (r & 0x80000000).zero? ? r : -((r ^ 0x7fffffff) - 0x7fffffff)
300
+ r.nobits?(0x80000000) ? r : -((r ^ 0x7fffffff) - 0x7fffffff)
301
301
  end.with_shrink_function(&integral_shrink)
302
302
 
303
303
  generator_for(Int64) do
304
304
  r = sized(0xffffffffffffffff)
305
- if (r & 0x8000000000000000).zero?
305
+ if r.nobits?(0x8000000000000000)
306
306
  r
307
307
  else
308
308
  -((r ^ 0x7fffffffffffffff) - 0x7fffffffffffffff)
@@ -438,7 +438,7 @@ module Minitest
438
438
  generator_for(Rational) do
439
439
  n = sized(MAX_SIZE)
440
440
  d = sized(MAX_SIZE - 1) + 1
441
- if (n & SIGN_BIT).zero?
441
+ if n.nobits?(SIGN_BIT)
442
442
  Rational(n, d)
443
443
  else
444
444
  Rational(-(((n & (MAX_SIZE ^ SIGN_BIT)) - 1) ^ (MAX_SIZE ^ SIGN_BIT)), d)
@@ -454,7 +454,7 @@ module Minitest
454
454
 
455
455
  generator_for(Time) do
456
456
  r = sized(0xffffffff)
457
- Time.at((r & 0x80000000).zero? ? r : -((r ^ 0x7fffffff) - 0x7fffffff))
457
+ Time.at(r.nobits?(0x80000000) ? r : -((r ^ 0x7fffffff) - 0x7fffffff))
458
458
  end.with_shrink_function do |t|
459
459
  integral_shrink.call(t.to_i).map(&Time.method(:at))
460
460
  end.with_score_function do |t|
@@ -83,7 +83,7 @@ module Minitest
83
83
  elsif @status.interesting?
84
84
  info = 'A counterexample to a property has been found after ' \
85
85
  "#{@valid_test_cases} valid " \
86
- "example#{@valid_test_cases == 1 ? '' : 's'}.\n"
86
+ "example#{'s' if @valid_test_cases != 1}.\n"
87
87
  var_info = if @local_variables.empty?
88
88
  'Variables local to the property were unable ' \
89
89
  'to be determined. This is usually a bug.'
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Minitest
4
4
  module Proptest
5
- VERSION = '0.3.0'
5
+ VERSION = '0.4.0'
6
6
  end
7
7
  end
@@ -149,8 +149,8 @@ module Minitest
149
149
  end
150
150
 
151
151
  module Kernel
152
- def generator_for(klass, &f)
153
- ::Minitest::Proptest::Gen.generator_for(klass, &f)
152
+ def generator_for(klass, &)
153
+ ::Minitest::Proptest::Gen.generator_for(klass, &)
154
154
  end
155
155
  private :generator_for
156
156
  end
metadata CHANGED
@@ -1,29 +1,35 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: minitest-proptest
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tina Wuest
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-09-16 00:00:00.000000000 Z
11
+ date: 2025-12-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: minitest
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '5'
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '7'
20
23
  type: :runtime
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
24
- - - "~>"
27
+ - - ">="
25
28
  - !ruby/object:Gem::Version
26
29
  version: '5'
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '7'
27
33
  description: Property testing in Minitest, a la Haskell's QuickCheck and Python's
28
34
  Hypothesis
29
35
  email: tina@wuest.me
@@ -54,14 +60,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
54
60
  requirements:
55
61
  - - ">="
56
62
  - !ruby/object:Gem::Version
57
- version: 2.7.0
63
+ version: 3.2.0
58
64
  required_rubygems_version: !ruby/object:Gem::Requirement
59
65
  requirements:
60
66
  - - ">="
61
67
  - !ruby/object:Gem::Version
62
68
  version: '0'
63
69
  requirements: []
64
- rubygems_version: 3.5.3
70
+ rubygems_version: 3.4.19
65
71
  signing_key:
66
72
  specification_version: 4
67
73
  summary: Property testing in Minitest