Module: Sanscript::Benchmark

Defined in:
lib/sanscript/benchmark.rb

Overview

Benchmark/testing module.

Class Method Summary collapse

Class Method Details

.detect!(time = 2, warmup = 1) ⇒ Object

Runs benchmark-ips test on detection methods.



51
52
53
54
55
56
57
58
59
60
61
62
# File 'lib/sanscript/benchmark.rb', line 51

def detect!(time = 2, warmup = 1)
  ::Benchmark.ips do |x|
    x.config(time: time, warmup: warmup)
    TEST_STRINGS_FLAT.each do |scheme, string|
      x.report("Detect #{scheme}") do
        Sanscript::Detect.detect_scheme(string)
      end
    end
    x.compare!
  end
  true
end

.transliterate_brahmic!(time = 2, warmup = 1) ⇒ Object

Runs benchmark-ips test on brahmic-source transliteration methods.



80
81
82
83
84
85
86
87
88
89
90
91
92
# File 'lib/sanscript/benchmark.rb', line 80

def transliterate_brahmic!(time = 2, warmup = 1)
  ::Benchmark.ips do |x|
    x.config(time: time, warmup: warmup)
    TEST_STRINGS[:brahmic].to_a.product(TEST_STRINGS_FLAT.keys).each do |(ak, av), bk|
      next if ak == bk
      x.report("#{ak} => #{bk}") do
        Sanscript.transliterate(av, ak, bk)
      end
    end
    x.compare!
  end
  true
end

.transliterate_roman!(time = 2, warmup = 1) ⇒ Object

Runs benchmark-ips test on roman-source transliteration methods.



65
66
67
68
69
70
71
72
73
74
75
76
77
# File 'lib/sanscript/benchmark.rb', line 65

def transliterate_roman!(time = 2, warmup = 1)
  ::Benchmark.ips do |x|
    x.config(time: time, warmup: warmup)
    TEST_STRINGS[:roman].to_a.product(TEST_STRINGS_FLAT.keys).each do |(ak, av), bk|
      next if ak == bk
      x.report("#{ak} => #{bk}") do
        Sanscript.transliterate(av, ak, bk)
      end
    end
    x.compare!
  end
  true
end