class Jfuzz::IntegerGenerator

Public Class Methods

type() click to toggle source
# File lib/jfuzz/generators/integer_generator.rb, line 12
def self.type
  "integer"
end

Public Instance Methods

generate() click to toggle source
# File lib/jfuzz/generators/integer_generator.rb, line 8
def generate
  random_integer
end

Private Instance Methods

exclusive_maximum?() click to toggle source
# File lib/jfuzz/generators/integer_generator.rb, line 59
def exclusive_maximum?
  property.fetch("exclusiveMaximum", false)
end
exclusive_minimum?() click to toggle source
# File lib/jfuzz/generators/integer_generator.rb, line 63
def exclusive_minimum?
  property.fetch("exclusiveMinimum", false)
end
generate_multiple(min, max) click to toggle source
# File lib/jfuzz/generators/integer_generator.rb, line 29
def generate_multiple(min, max)
  factor = property.fetch("multipleOf").to_i

  min /= factor
  max /= factor
  rand(min..max).to_i * factor
end
maximum() click to toggle source
# File lib/jfuzz/generators/integer_generator.rb, line 42
def maximum
  return property.fetch("maximum").to_i if maximum?
  Jfuzz.max_integer.to_i
end
maximum?() click to toggle source
# File lib/jfuzz/generators/integer_generator.rb, line 55
def maximum?
  property.key?("maximum")
end
minimum() click to toggle source
# File lib/jfuzz/generators/integer_generator.rb, line 37
def minimum
  return property.fetch("minimum").to_i if minimum?
  Jfuzz.min_integer.to_i
end
minimum?() click to toggle source
# File lib/jfuzz/generators/integer_generator.rb, line 51
def minimum?
  property.key?("minimum")
end
multiple_of?() click to toggle source
# File lib/jfuzz/generators/integer_generator.rb, line 47
def multiple_of?
  property.key?("multipleOf")
end
random_integer() click to toggle source
# File lib/jfuzz/generators/integer_generator.rb, line 18
def random_integer
  min = minimum
  max = maximum
  min + 1 if exclusive_minimum?
  max - 1 if exclusive_maximum?

  return generate_multiple(min, max) if multiple_of?

  rand(min..max)
end