#! /usr/bin/ruby
# EUC-JP/にほんご
require 'anthy'

Anthy::quit()

Anthy::conf_override("CONFFILE","../anthy-conf")
Anthy::conf_override("DIC_FILE","../mkanthydic/anthy.dic")
Anthy::conf_override("ANTHYDIR","../depgraph")

Anthy::init()

Anthy::set_personality("")

$ac = Anthy::Context.new()

class Test
  def initialize(s, ex)
    @src_array = s
    @exp_array = ex
    @src_str = @src_array.join
  end
  def check(verbose)
    $ac.set_string(@src_str)
    unless do_compare()
      $ac.print() if verbose
      return false
    end
    return true
  end
  def do_compare
    if (@src_array.size != $ac.get_stat.nr_segment) 
      return false
    end
    @src_array.each_with_index do |src, index| 
      return false if $ac.get_segment(index, -1) != src
    end
    return true
  end
end

class TestManager
  def initialize
    @tests = []
  end
  def add(str, ex)
    @tests << Test.new(str, ex)
  end
  def test(verbose)
    test_num = @tests.size
    ng_num = @tests.find_all{|i| !i.check(verbose)}.size
    
    print test_num
    print "tests, "
    print (test_num - ng_num)
    print "hits, "
    print ng_num
    print " misses\n"
    print (test_num - ng_num) * 100 / test_num
    print "%\n"
  end
end

m = TestManager.new
m.add(["あくせすできない","ばあいが","あります"], [])
m.add(["あくせすできない","ふぁいる"], [])
m.add(["あめりかのは","あまり","しゅるいが","ないでしょ"], [])
m.add(["ありがたいです"], [])
m.add(["ある","がくもん","のし"],[])
m.add(["いったい","いつになったら"],[])
m.add(["いってくる"],[])
m.add(["いれた","おぼえが","ないのに","はいってる","ぐらいの","ものなら"], [])
m.add(["うってそう"], [])
m.add(["うなぎの","かんぜん","ようしょく"], [])
m.add(["おいつけてない","ところが","さいだいの","なんてんなんですけどね"], [])
m.add(["おはなし"], [])
m.add(["かいしゃくしがち"], [])
m.add(["かいておけば"], [])
m.add(["かいていの","かざんの","ふんかに","よって","できたと","かんがえられています"], [])
m.add(["かいといた"], [])
m.add(["かいはつ","ないよう"], [])
m.add(["かいはつ","なかま"],[])
m.add(["かいものに", "いかなきゃって","おもってたんだけど"], [])
m.add(["かってるんだけど"], [])
m.add(["かっといたら"], [])
m.add(["かんがえてた","ことは","いっしょですが"], [])
m.add(["かんがえてみますので"],[])
m.add(["かんがえられない"], [])
m.add(["がんばろうや"], [])
m.add(["ききかんり","ちーむが","じょうほうを","いちげんか"], [])
m.add(["きいているかと","おもいますが"], [])
m.add(["きょうの","てんき"], [])
m.add(["きょうだいの"], [])
m.add(["げいじゅつを", "うみだす", "かれいな", "ちから"], [])
m.add(["こうほの","じゅんじょ","へんこう"], [])
m.add(["ここで","call-with-current-continuationを","もちいると"],[])
m.add(["この","ふぉーむに","にゅうりょくされた","ゆーざの","なまえ"], [])
m.add(["こんそーる", "よう","にほんごにゅうりょく","ぷろぐらむの","あたらしい","ばーじょんが","りりーすされました"], [])
m.add(["ごかんしない","じしょ"], [])
m.add(["きいているかと","おもいますが"], [])
m.add(["さけびんを","くちに","つけ"], [])
m.add(["しこうを", "つれだせ"], [])
m.add(["しゃちょうから","うごいてもらうことになるんですが"], [])
m.add(["しようする", "こうぞうたい"], [])
m.add(["しょしんしゃです","おしえてください"], [])
m.add(["せなかを","かく"],[])
m.add(["それを","かついで","いえまで","はこぶ"],[])
m.add(["せっかくだから", "おれは", "この", "あかの", "とびらを", "えらぶぜ"], [])
m.add(["たいりょうの","てすとを","ぶちこむ"], [])
m.add(["たのしんで"], [])
m.add(["たのしくも", "ある"], [])
m.add(["つよい","ひざし"], [])
m.add(["でんわに","じゃまされた"], [])
m.add(["どうなるか","かんがえて"], [])
m.add(["とくながさん"], [])
m.add(["どんな","きのう、","APIが","ひつようかの","どきゅめんと"], [])
m.add(["ながい","ほうから","けんさく","しょりを","おこなう"],[])
m.add(["にほんじんの","かんきょうなら","rubyは","じめいなんでしょうけど"], [])
m.add(["にほんご","へんかん","しすてむ"],[])
m.add(["のうしは","しですか"],[])
m.add(["のうしは","し"],[])
m.add(["へこむ"],[])
m.add(["めが","はなせません"], [])
m.add(["めを","とおした"], [])
m.add(["まだ","はやいと","いったのに"], [])
m.add(["らいげつ","じょうじゅんの"], [])
m.add(["よく","かんがえてみる"],[])
m.add(["わたしの","がめん"],[])
m.add(["わたしの","なまえは", "たばたです"], [])
m.add(["わたしのなまえはなかのです"], [])
m.add(["rubyから","anthyが","つかえるようになった"], [])
m.add(["uim-fepの","あたらしい","ばーじょん"], [])
m.add(["100にんもの"],[])
m.add(["3きょくめの"],[])
#
m.add(["みのがしていました"], [])
m.add(["おくってきます"], ["送って","来ます"])
m.add(["じっそうよう","げんご"],[])
m.add(["そうさしてる"],[])
m.add(["わたしに","しあわせが","やってくるのでしょうか"],[])
m.add(["ぶんまつ","ふらぐ"],[])
m.add(["ぜんぜん","ほうこうせいが","わかりません"],[])
m.add(["わかりました"],[])
m.add(["さーばようとしては"],[])
m.add(["けっかを","まつ"],[])
m.add(["つかう","ほど"],[])
m.add(["ここは","よっと","れーすの","すたーと","ちてん"],[])
m.add(["おしえていただけないでしょうか"],[])
m.add(["かつよう","きばん","せいび","じぎょう"],[])
m.add(["うごいとります、","うごいてます"],[])
m.add(["じょうけんより","ながいことが","ひつよう"],[])
m.add(["はなし、","とくながさん、","ありませんし、","たのしんで、","だいなし、","かいさん、","ありません"],[])
m.add(["そこに","ものを","おかないでくださいね"], [])
m.add(["せいのうを","はかれるようにすることは","じゅうよう"],[])
m.add(["しゅほうの","いっぱつが","ちーむに","いきおいを","あたえます"],[])
m.add(["とうとつに","にっきを","かいてみようと","おもったので"],[])
m.add(["ことなる"],[])
m.add(["よみは","ことなる"],[])
m.add(["むかんしんを","よそおう"],[])
m.add(["ひきおこしがちだ"],[])
m.add(["さんかしていただき"],[])
m.add(["しぬなよ"],[])
m.add(["しんじてみたい"],[])
m.add(["ひきおこしがちだ"],[])
m.add(["かんたんだった"],[])
m.add(["きみじゃないです"],[])
m.add(["まったく","あたらしい","でざいんと","きのうを","じつげんする"],[])

m.test(true)

m2 = TestManager.new
m2.add(["あくせすできない","ばあいが","あります"], [])
m2.add(["おいつけてない","ところが","さいだいの","なんてんなんですけどね"], [])
#m2.test(true)
