prop_check 0.12.1 → 0.13.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: f3e24e4381dfa87447517c281cf863fa0aaea551a46ec6af6f268188c3ad2e40
4
- data.tar.gz: 2230a4cbe52d63b1604b6fb3631dea6cdf8cae0e70d88eceffe3aae326c06ce7
3
+ metadata.gz: fb51503257a33dbe349da1b2b582be1c0fe38465bbe10fb14f610885591c9f7b
4
+ data.tar.gz: d357a2221e6b078c58d78826758cb22f4df3b8c34dd746001d854c505dfe2dea
5
5
  SHA512:
6
- metadata.gz: e41a1b190f7589b807db57104de7df8ec9c3cc1f046e93de2f05c712861d2e8b5a4b2a997e4315e98e39dee8474156de5534ed0720336485eb7e1bda8da7d184
7
- data.tar.gz: e73715ea79be1b1db8f6df792d0af99f235030a6a5719a5b23825364fcb22980776fe95eea14d579145e68984a79795fa9ecc19680f971fdaaf5d115afcbfff8
6
+ metadata.gz: 5d757c5c95b19cb3805ff1cc14af811fbb5e4f0cdb0cadffa581f46d33d20f2c37b8093fda66828b6ce3862b0743723ebb5afe01b183acc4bdbe6fc3f96ddb9b
7
+ data.tar.gz: e9288cedccdaafe609c2557a74176b9eea306fbff4aa2e9b9a4219702755efa33e53fb9f22d13f5ad0d7aa1af0dca732a1fe924d2119c43df39b71d1107be6d4
@@ -1,3 +1,4 @@
1
+ - 0.13.0 - Adds Generator#resize
1
2
  - 0.12.1 - Fixes shrinking when filtering bug.
2
3
  - 0.12.0 - `PropCheck::Generators#instance`
3
4
  - 0.11.0 - Improved syntax to support Ruby 2.7 and up without deprecation warnings, full support for `#where`.
@@ -0,0 +1,29 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ #
5
+ # This file was generated by Bundler.
6
+ #
7
+ # The application 'rspec' is installed as part of a gem, and
8
+ # this file is here to facilitate running it.
9
+ #
10
+
11
+ require "pathname"
12
+ ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
13
+ Pathname.new(__FILE__).realpath)
14
+
15
+ bundle_binstub = File.expand_path("../bundle", __FILE__)
16
+
17
+ if File.file?(bundle_binstub)
18
+ if File.read(bundle_binstub, 300) =~ /This file was generated by Bundler/
19
+ load(bundle_binstub)
20
+ else
21
+ abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
22
+ Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.")
23
+ end
24
+ end
25
+
26
+ require "rubygems"
27
+ require "bundler/setup"
28
+
29
+ load Gem.bin_path("rspec-core", "rspec")
@@ -120,5 +120,19 @@ module PropCheck
120
120
  end
121
121
  end
122
122
  end
123
+
124
+ ##
125
+ # Resizes the generator to either grow faster or smaller than normal.
126
+ #
127
+ # `proc` takes the current size as input and is expected to return the new size.
128
+ # a size should always be a nonnegative integer.
129
+ #
130
+ # >> Generators.integer.resize{}
131
+ def resize(&proc)
132
+ Generator.new do |size:, **other_kwargs|
133
+ new_size = proc.call(size)
134
+ self.generate(**other_kwargs, size: new_size)
135
+ end
136
+ end
123
137
  end
124
138
  end
@@ -82,11 +82,19 @@ module PropCheck
82
82
  # => [-4205, -19140, 18158, -8716, -13735, -3150, 17194, 1962, -3977, -18315]
83
83
  def integer
84
84
  Generator.new do |size:, rng:, **|
85
+ ensure_proper_size!(size)
86
+
85
87
  val = rng.rand(-size..size)
86
88
  LazyTree.new(val, integer_shrink(val))
87
89
  end
88
90
  end
89
91
 
92
+ private def ensure_proper_size!(size)
93
+ return if size.is_a?(Integer) && size >= 0
94
+
95
+ raise ArgumentError, "`size:` should be a nonnegative integer but got `#{size.inspect}`"
96
+ end
97
+
90
98
  ##
91
99
  # Only returns integers that are zero or larger.
92
100
  # See `integer` for more information.
@@ -262,7 +270,7 @@ module PropCheck
262
270
  if max.nil?
263
271
  nonnegative_integer.bind(&res)
264
272
  else
265
- proc.call(max)
273
+ res.call(max)
266
274
  end
267
275
  end
268
276
 
@@ -1,3 +1,3 @@
1
1
  module PropCheck
2
- VERSION = '0.12.1'
2
+ VERSION = '0.13.0'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: prop_check
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.12.1
4
+ version: 0.13.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Qqwy/Wiebe-Marten Wijnja
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-08-02 00:00:00.000000000 Z
11
+ date: 2020-08-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: awesome_print
@@ -47,6 +47,7 @@ files:
47
47
  - README.md
48
48
  - Rakefile
49
49
  - bin/console
50
+ - bin/rspec
50
51
  - bin/setup
51
52
  - lib/prop_check.rb
52
53
  - lib/prop_check/generator.rb