1require 'test/unit'
2require 'abbrev'
3
4class TestAbbrev < Test::Unit::TestCase
5  def test_abbrev
6    words = %w[summer winter win ruby rules]
7
8    assert_equal({
9        "rub"    => "ruby",
10        "ruby"   => "ruby",
11        "rul"    => "rules",
12        "rule"   => "rules",
13        "rules"  => "rules",
14        "s"      => "summer",
15        "su"     => "summer",
16        "sum"    => "summer",
17        "summ"   => "summer",
18        "summe"  => "summer",
19        "summer" => "summer",
20        "win"    => "win",
21        "wint"   => "winter",
22        "winte"  => "winter",
23        "winter" => "winter",
24      }, words.abbrev)
25
26    assert_equal({
27        "rub"    => "ruby",
28        "ruby"   => "ruby",
29        "rul"    => "rules",
30        "rule"   => "rules",
31        "rules"  => "rules",
32      }, words.abbrev('ru'))
33
34    assert_equal words.abbrev,       Abbrev.abbrev(words)
35    assert_equal words.abbrev('ru'), Abbrev.abbrev(words, 'ru')
36  end
37
38  def test_abbrev_lf
39    words = ["abc", "abc\nd", "de"]
40
41    assert_equal({
42        "abc"     => "abc",
43        "abc\n"   => "abc\nd",
44        "abc\nd"  => "abc\nd",
45        "d"       => "de",
46        "de"      => "de",
47      }, words.abbrev)
48
49    assert_equal({
50        "d"       => "de",
51        "de"      => "de",
52      }, words.abbrev('d'))
53  end
54end
55