Sha256: 778ce2114f1bf514f5e1b9c5eafce302638d95b0e3a7754cccf6aff25e94fa56

Contents?: true

Size: 1.09 KB

Versions: 1

Compression:

Stored size: 1.09 KB

Contents

class NumericValues < ValuesBase

  def self.numerics_in_range(range)
    self.verify_range_not_empty('range', range)
    self.verify_kind_of('range.first', Numeric, range.first)
    self.verify_kind_of('range.last', Numeric, range.last)
    {
        :min_value => range.first,
        :max_value => range.last
    }
  end

  def self.numerics_not_in_range(range)
    self.verify_range_not_empty('range', range)
    first, last = range.first, range.last
    case
      when first.respond_to?(:pred)
        too_small = first.pred
      when first.respond_to?(:prev_float)
        self.verify_finite_numeric('range.first', first)
        too_small = first.prev_float
      else
        raise TypeError.new(first)
    end
    case
      when last.respond_to?(:succ)
        too_large = last.succ
      when last.respond_to?(:next_float)
        self.verify_finite_numeric('range.last', last)
        too_large = last.next_float
      else
        raise ArgumentError.new(last)
    end
    {
        :too_small => too_small,
        :too_large => too_large,
    }
  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
test_values-0.5.0 lib/test_values/numeric_values.rb