Module: Sanscript::Benchmark

Defined in:
lib/sanscript/benchmark.rb

Overview

Benchmark/testing module.

Class Method Summary collapse

Class Method Details

.detect!Object

Runs benchmark-ips test on detection methods.



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/sanscript/benchmark.rb', line 20

def detect!
  deva_string = "नानाशास्त्रसुभाषितामृतरसैः श्रोत्रोत्सवं कुर्वतां येषां यान्ति दिनानि पण्डितजनव्यायामखिन्नात्मनाम् तेषां जन्म च जीवितं च सुकृतं तैर् एव भूर् भूषिता शेषैह् किं पशुवद् विवेकरहितैर् भूभारभूतैर् नरः"
  malayalam_string = "നാനാശാസ്ത്രസുഭാഷിതാമൃതരസൈഃ ശ്രോത്രോത്സവം കുര്വതാം യേഷാം യാന്തി ദിനാനി പണ്ഡിതജനവ്യായാമഖിന്നാത്മനാമ് തേഷാം ജന്മ ച ജീവിതം ച സുകൃതം തൈര് ഏവ ഭൂര് ഭൂഷിതാ ശേഷൈഹ് കിം പശുവദ് വിവേകരഹിതൈര് ഭൂഭാരഭൂതൈര് നരഃ"
  iast_string = "nānāśāstrasubhāṣitāmṛtarasaiḥ śrotrotsavaṃ kurvatāṃ yeṣāṃ yānti dināni paṇḍitajanavyāyāmakhinnātmanām teṣāṃ janma ca jīvitaṃ ca sukṛtaṃ tair eva bhūr bhūṣitā śeṣaih kiṃ paśuvad vivekarahitair bhūbhārabhūtair naraḥ"
  slp1_string = "nAnASAstrasuBAzitAmftarasEH SrotrotsavaM kurvatAM yezAM yAnti dinAni paRqitajanavyAyAmaKinnAtmanAm tezAM janma ca jIvitaM ca sukftaM tEr eva BUr BUzitA SezEh kiM paSuvad vivekarahitEr BUBAraBUtEr naraH"
  hk_string = "nAnAzAstrasubhASitAmRtarasaiH zrotrotsavaM kurvatAM yeSAM yAnti dinAni paNDitajanavyAyAmakhinnAtmanAm teSAM janma ca jIvitaM ca sukRtaM tair eva bhUr bhUSitA zeSaih kiM pazuvad vivekarahitair bhUbhArabhUtair naraH"

  ::Benchmark.ips do |x|
    x.config(time: 5, warmup: 1)
    x.report("Detect Devanagari") do
      raise unless Sanscript::Detect.detect_scheme(deva_string) == :devanagari
    end
    x.report("Detect Malayalam") do
      raise unless Sanscript::Detect.detect_scheme(malayalam_string) == :malayalam
    end
    x.report("Detect IAST") do
      raise unless Sanscript::Detect.detect_scheme(iast_string) == :iast
    end
    x.report("Detect SLP1") do
      raise unless Sanscript::Detect.detect_scheme(slp1_string) == :slp1
    end
    x.report("Detect HK") do
      raise unless Sanscript::Detect.detect_scheme(hk_string) == :hk
    end
    x.compare!
  end
  true
end

.transliterate_brahmic!Object

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



91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
# File 'lib/sanscript/benchmark.rb', line 91

def transliterate_brahmic!
  deva_string = "नानाशास्त्रसुभाषितामृतरसैः श्रोत्रोत्सवं कुर्वतां येषां यान्ति दिनानि पण्डितजनव्यायामखिन्नात्मनाम् तेषां जन्म च जीवितं च सुकृतं तैर् एव भूर् भूषिता शेषैह् किं पशुवद् विवेकरहितैर् भूभारभूतैर् नरः"

  ::Benchmark.ips do |x|
    x.config(time: 5, warmup: 2)
    x.report("Devanagari==>IAST") do
      Sanscript.transliterate(deva_string, :devanagari, :iast)
    end
    x.report("Devanagari==>SLP1") do
      Sanscript.transliterate(deva_string, :devanagari, :slp1)
    end
    x.report("Devanagari==>HK") do
      Sanscript.transliterate(deva_string, :devanagari, :hk)
    end
    x.compare!
  end
  true
end

.transliterate_roman!Object

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



50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
# File 'lib/sanscript/benchmark.rb', line 50

def transliterate_roman!
  iast_string = "nānāśāstrasubhāṣitāmṛtarasaiḥ śrotrotsavaṃ kurvatāṃ yeṣāṃ yānti dināni paṇḍitajanavyāyāmakhinnātmanām teṣāṃ janma ca jīvitaṃ ca sukṛtaṃ tair eva bhūr bhūṣitā śeṣaih kiṃ paśuvad vivekarahitair bhūbhārabhūtair naraḥ"
  slp1_string = "nAnASAstrasuBAzitAmftarasEH SrotrotsavaM kurvatAM yezAM yAnti dinAni paRqitajanavyAyAmaKinnAtmanAm tezAM janma ca jIvitaM ca sukftaM tEr eva BUr BUzitA SezEh kiM paSuvad vivekarahitEr BUBAraBUtEr naraH"
  hk_string = "nAnAzAstrasubhASitAmRtarasaiH zrotrotsavaM kurvatAM yeSAM yAnti dinAni paNDitajanavyAyAmakhinnAtmanAm teSAM janma ca jIvitaM ca sukRtaM tair eva bhUr bhUSitA zeSaih kiM pazuvad vivekarahitair bhUbhArabhUtair naraH"

  ::Benchmark.ips do |x|
    x.config(time: 3, warmup: 2)

    x.report("IAST==>Devanagari") do
      Sanscript.transliterate(iast_string, :iast, :devanagari)
    end
    x.report("IAST==>SLP1") do
      Sanscript.transliterate(iast_string, :iast, :slp1)
    end
    x.report("IAST==>SLP1") do
      Sanscript.transliterate(iast_string, :iast, :hk)
    end
    x.report("SLP1==>Devanagari") do
      Sanscript.transliterate(slp1_string, :slp1, :devanagari)
    end
    x.report("SLP1==>IAST") do
      Sanscript.transliterate(slp1_string, :slp1, :iast)
    end
    x.report("SLP1==>HK") do
      Sanscript.transliterate(slp1_string, :slp1, :hk)
    end
    x.report("HK==>Devanagari") do
      Sanscript.transliterate(hk_string, :hk, :devanagari)
    end
    x.report("HK==>IAST") do
      Sanscript.transliterate(hk_string, :hk, :iast)
    end
    x.report("HK==>SLP1") do
      Sanscript.transliterate(hk_string, :hk, :slp1)
    end
    x.compare!
  end
  true
end