class TestProf::Utils::SizedOrderedSet
Ordered set with capacity
def <<(item)
def <<(item) return if data.size == max_size && comparator.call(data.last, item) # Find an index of a smaller element index = data.bsearch_index { |x| !comparator.call(x, item) } if index.nil? data << item else data.insert(index, item) end data.pop if data.size > max_size data.size end
def each(&block)
def each(&block) if block data.each(&block) else data.each end end
def empty?
def empty? size.zero? end
def initialize(max_size, sort_by: nil, &block)
def initialize(max_size, sort_by: nil, &block) @max_size = max_size @comparator = if block block elsif !sort_by.nil? ->(x, y) { x[sort_by] >= y[sort_by] } else ->(x, y) { x >= y } end @data = [] end
def size
def size data.size end
def to_a
def to_a data.dup end