Class: Pbt::Arbitrary::MapArbitrary
- Defined in:
- lib/pbt/arbitrary/map_arbitrary.rb
Overview
Generates a mapped value from another arbitrary.
Instance Method Summary collapse
- #generate(rng) ⇒ Object
-
#initialize(arb, mapper, unmapper) ⇒ MapArbitrary
constructor
A new instance of MapArbitrary.
- #shrink(current) ⇒ Object
Methods inherited from Arbitrary
Constructor Details
#initialize(arb, mapper, unmapper) ⇒ MapArbitrary
Returns a new instance of MapArbitrary.
10 11 12 13 14 |
# File 'lib/pbt/arbitrary/map_arbitrary.rb', line 10 def initialize(arb, mapper, unmapper) @arb = arb @mapper = mapper @unmapper = unmapper end |
Instance Method Details
#generate(rng) ⇒ Object
17 18 19 |
# File 'lib/pbt/arbitrary/map_arbitrary.rb', line 17 def generate(rng) @mapper.call(@arb.generate(rng)) end |
#shrink(current) ⇒ Object
22 23 24 25 26 27 28 |
# File 'lib/pbt/arbitrary/map_arbitrary.rb', line 22 def shrink(current) Enumerator.new do |y| @arb.shrink(@unmapper.call(current)).each do |v| y.yield @mapper.call(v) end end end |