class Jfuzz::ArrayGenerator

Public Class Methods

type() click to toggle source
# File lib/jfuzz/generators/array_generator.rb, line 14
def self.type
  "array"
end

Public Instance Methods

generate() click to toggle source
# File lib/jfuzz/generators/array_generator.rb, line 7
def generate
  raise "Cannot generate an empty array. Please specify item types" unless items.any?

  return tuple_array if items.is_a?(Array)
  random_array
end

Private Instance Methods

items() click to toggle source
# File lib/jfuzz/generators/array_generator.rb, line 33
def items
  property.fetch("items", [])
end
max_items() click to toggle source
# File lib/jfuzz/generators/array_generator.rb, line 41
def max_items
  property.fetch("maxItems", Jfuzz.max_array_length)
end
min_items() click to toggle source
# File lib/jfuzz/generators/array_generator.rb, line 37
def min_items
  property.fetch("minItems", Jfuzz.min_array_length)
end
random_array() click to toggle source
# File lib/jfuzz/generators/array_generator.rb, line 20
def random_array
  total_items = rand(min_items..max_items)
  (0..total_items).map do
    property_fuzzer.fuzz_property(items)
  end
end
tuple_array() click to toggle source
# File lib/jfuzz/generators/array_generator.rb, line 27
def tuple_array
  items.map do |item|
    property_fuzzer.fuzz_property(item)
  end
end
unique?() click to toggle source
# File lib/jfuzz/generators/array_generator.rb, line 45
def unique?
  property.fetch("uniqueItems", false)
end