Class: Pbt::Arbitrary::Arbitrary Abstract
- Inherits:
-
Object
- Object
- Pbt::Arbitrary::Arbitrary
- Defined in:
- lib/pbt/arbitrary/arbitrary.rb
Overview
Abstract class for generating random values on type ‘T`.
Direct Known Subclasses
ArrayArbitrary, ChooseArbitrary, ConstantArbitrary, FilterArbitrary, FixedHashArbitrary, IntegerArbitrary, MapArbitrary, OneOfArbitrary, TupleArbitrary
Instance Method Summary collapse
-
#filter(&refinement) ⇒ FilterArbitrary
Create another arbitrary by filtering values against ‘refinement`.
-
#generate(rng) ⇒ Object
abstract
Generate a value of type ‘T`, based on the provided random number generator.
-
#map(mapper, unmapper) ⇒ MapArbitrary
Create another arbitrary by applying ‘mapper` value by value.
-
#shrink(current) ⇒ Enumerator<Object>
abstract
Shrink a value of type ‘T`.
Instance Method Details
#filter(&refinement) ⇒ FilterArbitrary
Create another arbitrary by filtering values against ‘refinement`. All the values produced by the resulting arbitrary satisfy `!!refinement(value) == true`.
Be aware that using ‘filter` may reduce possible valid values and may impact the time required to generate a valid value.
53 54 55 |
# File 'lib/pbt/arbitrary/arbitrary.rb', line 53 def filter(&refinement) FilterArbitrary.new(self, &refinement) end |
#generate(rng) ⇒ Object
Generate a value of type ‘T`, based on the provided random number generator.
14 15 16 |
# File 'lib/pbt/arbitrary/arbitrary.rb', line 14 def generate(rng) raise NotImplementedError end |
#map(mapper, unmapper) ⇒ MapArbitrary
Create another arbitrary by applying ‘mapper` value by value.
37 38 39 |
# File 'lib/pbt/arbitrary/arbitrary.rb', line 37 def map(mapper, unmapper) MapArbitrary.new(self, mapper, unmapper) end |
#shrink(current) ⇒ Enumerator<Object>
Shrink a value of type ‘T`. Must never be called with possibly invalid values.
24 25 26 |
# File 'lib/pbt/arbitrary/arbitrary.rb', line 24 def shrink(current) raise NotImplementedError end |