class Contracts::Builtin::Int

Public Class Methods

generate(min: -2e31, max: 2e31 - 1, neg_ratio: 0.5) click to toggle source
# File lib/contracts/builtin_ext.rb, line 18
def self.generate(min: -2e31, max: 2e31 - 1, neg_ratio: 0.5)
  min_pos = min < 0 ? 0 : min
  max_neg = max > -1 ? -1 : max

  if Bool.generate(true_ratio: neg_ratio)
    Num.generate(min: min, max: max_neg).to_i
  else
    Num.generate(min: min_pos, max: max).to_i
  end
end