Class: Pbt::Arbitrary::ChooseArbitrary
- Defined in:
- lib/pbt/arbitrary/choose_arbitrary.rb
Overview
Generates a random value from a range.
Instance Method Summary collapse
- #generate(rng) ⇒ Object
-
#initialize(range) ⇒ ChooseArbitrary
constructor
A new instance of ChooseArbitrary.
- #shrink(current) ⇒ Object
Methods inherited from Arbitrary
Constructor Details
#initialize(range) ⇒ ChooseArbitrary
Returns a new instance of ChooseArbitrary.
8 9 10 |
# File 'lib/pbt/arbitrary/choose_arbitrary.rb', line 8 def initialize(range) @range = range end |
Instance Method Details
#generate(rng) ⇒ Object
13 14 15 |
# File 'lib/pbt/arbitrary/choose_arbitrary.rb', line 13 def generate(rng) rng.rand(@range) end |
#shrink(current) ⇒ Object
18 19 20 21 22 |
# File 'lib/pbt/arbitrary/choose_arbitrary.rb', line 18 def shrink(current) # Range is ordered from min to max, so we can just shrink towards min. min, max = [@range.begin, @range.end].sort IntegerArbitrary.new(min, max).shrink(current, target: min) end |