#! /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",ENV['SRCDIR']+"/depgraph")

Anthy::init()

Anthy::set_personality("")

$ac = Anthy::Context.new();

class Test
  def initialize(n ,s, ex)
    @src_array = s;
    @exp_array = ex;
    @src_str = ""
    for x in @src_array
      @src_str = @src_str + x
    end
  end
  def check(verbose)
    do_conv()
    if (!do_compare()) then
      if (verbose) then
        $ac.print()
      end
      return false
    end
    return true
  end
  def do_conv
    $ac.set_string(@src_str);
  end
  def do_compare
    n = 0
    if (@src_array.length != $ac.get_stat.nr_segment) then
      return false
    end
    for x in @src_array
      if ($ac.get_segment(n, -1) != x) then
        return false
      end
      n = n + 1
    end
    return true
  end
end

class TestManager
  def initialize
    @tests = []
  end
  def add(n, str, ex)
    t = Test.new(n, str, ex);
    @tests.push(t)
  end
  def test(verbose, cond)
    nr = 0
    ng = 0
    for t in @tests
      if (!t.check(verbose)) then
        ng = ng + 1
      end
      nr = nr + 1
    end
    print nr
    print "tests, "
    print (nr-ng)
    print "hits, "
    print ng
    print " misses\n"
    print (nr-ng) * 100 / nr
    print "%\n"
  end
end

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

m.test(1, "all")

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