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?
- 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
- Api: - public
def ips self end
def matches?(block)
- 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?
- Api: - private
Returns:
-
(True)-
def supports_block_expectations? true end
def warmup(value)
- Api: - public
Parameters:
-
value(Numeric) --
def warmup(value) @warmup = value self end
def within(value)
- Api: - public
Parameters:
-
value(Numeric) --
def within(value) @time = value self end