summaryrefslogtreecommitdiff
path: root/test/test_abbrev.rb
blob: be9b7d5005115439b2330b76bcd374c2cf500825 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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
48
49
50
51
52
53
54
55
# frozen_string_literal: false
require 'test/unit'
require 'abbrev'

class TestAbbrev < Test::Unit::TestCase
  def test_abbrev
    words = %w[summer winter win ruby rules]

    assert_equal({
        "rub"    => "ruby",
        "ruby"   => "ruby",
        "rul"    => "rules",
        "rule"   => "rules",
        "rules"  => "rules",
        "s"      => "summer",
        "su"     => "summer",
        "sum"    => "summer",
        "summ"   => "summer",
        "summe"  => "summer",
        "summer" => "summer",
        "win"    => "win",
        "wint"   => "winter",
        "winte"  => "winter",
        "winter" => "winter",
      }, words.abbrev)

    assert_equal({
        "rub"    => "ruby",
        "ruby"   => "ruby",
        "rul"    => "rules",
        "rule"   => "rules",
        "rules"  => "rules",
      }, words.abbrev('ru'))

    assert_equal words.abbrev,       Abbrev.abbrev(words)
    assert_equal words.abbrev('ru'), Abbrev.abbrev(words, 'ru')
  end

  def test_abbrev_lf
    words = ["abc", "abc\nd", "de"]

    assert_equal({
        "abc"     => "abc",
        "abc\n"   => "abc\nd",
        "abc\nd"  => "abc\nd",
        "d"       => "de",
        "de"      => "de",
      }, words.abbrev)

    assert_equal({
        "d"       => "de",
        "de"      => "de",
      }, words.abbrev('d'))
  end
end