class RSpec::Benchmark::IterationMatcher::Matcher

@api private
Implements the ‘perform_at_least` matcher

def actual

def actual
  avg = human_format? ? Formatter.format_unit(@average) : @average
  "%s (± %d%%) i/s" % [avg, (@stddev / @average.to_f) * 100]
end

def description

def description
  iters = human_format? ? Formatter.format_unit(@iterations) : @iterations
  "perform at least #{iters} i/s"
end

def failure_message

def failure_message
  "expected block to #{description}, but #{positive_failure_reason}"
end

def failure_message_when_negated

def failure_message_when_negated
  "expected block not to #{description}, but #{negative_failure_reason}"
end

def human_format?

Other tags:
    Api: - private

Returns:
  • (Boolean) -
def human_format?
  @format == :human
end

def initialize(iterations, **options)

def initialize(iterations, **options)
  @iterations = iterations
  @time       = options.fetch(:time) { 0.2 }
  @warmup     = options.fetch(:warmup) { 0.1 }
  @format     = options.fetch(:format) {
                  RSpec::Benchmark.configuration.format }
  @bench      = ::Benchmark::Perf
end

def ips

Other tags:
    Api: - public
def ips
  self
end

def matches?(block)

Other tags:
    Api: - private

Returns:
  • (Boolean) -
def matches?(block)
  @average, @stddev, = @bench.ips(time: @time, warmup: @warmup, &block)
  @iterations <= (@average + 3 * @stddev)
end

def negative_failure_reason

def negative_failure_reason
  "performed #{actual}"
end

def positive_failure_reason

def positive_failure_reason
  "performed only #{actual}"
end

def supports_block_expectations?

Other tags:
    Api: - private

Returns:
  • (True) -
def supports_block_expectations?
  true
end

def warmup(value)

Other tags:
    Api: - public

Parameters:
  • value (Numeric) --
def warmup(value)
  @warmup = value
  self
end

def within(value)

Other tags:
    Api: - public

Parameters:
  • value (Numeric) --
def within(value)
  @time = value
  self
end