prop_check 0.12.1 → 0.13.0

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: 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