Actions
Bug #7728
closedRange#bsearch on other Numerics?
Description
Range#bsearch attempts to do something on generic Numeric classes.
I feel it is both useless and buggy:
(Rational(-1,2)..Rational(9,4)).bsearch{|x| true} # => yields with 7/8 and 33/16
(Rational(-1,2)..Rational(9,4)).bsearch{|x| false} # => loops forever
(BigDecimal('0.5')..BigDecimal('2.25'))... # => same
I feel the current implementation (aside from the bugs) only makes sense on Integers.
Possible approaches:
- Rational
- convert to float, or
- bsearch accepts a "max iterations" parameter (which would be required for Rational), or
- forbid altogether
- BigDecimal
- convert to float, or
- look at the space of decimal numbers in the range without a higher precision than begin or end.
Given the timeframe though, I recommend we raise a TypeError for both in 2.0.0 (or a NotImplemented if we decide what should be done).
Actions
Like0
Like0