Sha256: 5acb90261df126c23fea92cd6abfc6c378749000f92302c73c9bfd880a648f69
Contents?: true
Size: 1023 Bytes
Versions: 1
Compression:
Stored size: 1023 Bytes
Contents
# frozen_string_literal: true $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib')) require 'benchmark' require 'ruby-enum' ## # Test enum class Color include Ruby::Enum include Ruby::Enum::Case define :RED, :red define :GREEN, :green define :BLUE, :blue end puts 'Running 1.000.000 normal case statements' case_statement_time = Benchmark.realtime do 1_000_000.times do case Color::RED when Color::RED, Color::GREEN 'red or green' when Color::BLUE 'blue' end end end puts 'Running 1.000.000 ruby-enum case statements' ruby_enum_time = Benchmark.realtime do 1_000_000.times do Color.case(Color::RED, { [Color::RED, Color::GREEN] => -> { 'red or green' }, Color::BLUE => -> { 'blue' } }) end end puts "ruby-enum case: #{ruby_enum_time.round(4)}" puts "case statement: #{case_statement_time.round(4)}" puts "ruby-enum case is #{(ruby_enum_time / case_statement_time).round(2)} times slower"
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
ruby-enum-1.0.0 | benchmarks/case.rb |