Sha256: b2dba395b1db27663d98a313e116dc343ddfbcf90afff3b7d95f61afea2d39cf

Contents?: true

Size: 1.09 KB

Versions: 4

Compression:

Stored size: 1.09 KB

Contents

# For development purposes; do not waste your tine reading it!
# YAGNI
# rubocop:disable all

require 'test_helper'
require 'benchmark'
require 'benchmark/ips'
# ENV['MORE'] = 'true'

describe 'Internal timings' do
  let(:order) { Order.create }

  def setup
    reset_order
    Order.add_to_flags :blocked
  end

  it 'times ips' do
    return  unless ENV['MORE']

    Benchmark.ips do |x|
      x.report('assign true : ')        { order.blocked = true }
      x.report('assign false: ')        { order.blocked = false }
      x.report('assign "false": ')      { order.blocked = 'false' }
      x.report('x = order.blocked? ')   { x = order.blocked? }
      x.report('x = order.blocked ')    { x = order.blocked }

      x.compare!
    end
  end

end

class BenchFoo < Minitest::Benchmark

  def bench_order_blocked
    return  unless ENV['MORE']

    n = 1_000_000
    n = 100_000
    n = 10_000
    Order.add_to_flags :blocked2
    order = Order.create
    assert_performance_constant do |input|
      n.times do
        order.blocked2 = true
        order.blocked2 = !order.blocked2
      end
    end
  end

end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
act_with_flags-0.2.4 test/internal_benchmark_test.rb
act_with_flags-0.2.3 test/internal_benchmark_test.rb
act_with_flags-0.2.0 test/internal_benchmark_test.rb
act_with_flags-0.1.0 test/internal_benchmark_test.rb