1require 'rubygems/test_case'
2require "rubygems/text"
3
4class TestGemText < Gem::TestCase
5  include Gem::Text
6
7  def test_format_text
8    assert_equal "text to\nwrap",     format_text("text to wrap", 8)
9  end
10
11  def test_format_text_indent
12    assert_equal "  text to\n  wrap", format_text("text to wrap", 8, 2)
13  end
14
15  def test_format_text_none
16    assert_equal "text to wrap",      format_text("text to wrap", 40)
17  end
18
19  def test_format_text_none_indent
20    assert_equal "  text to wrap",    format_text("text to wrap", 40, 2)
21  end
22
23  def test_format_text_trailing # for two spaces after .
24    text = <<-TEXT
25This line is really, really long.  So long, in fact, that it is more than eighty characters long!  The purpose of this line is for testing wrapping behavior because sometimes people don't wrap their text to eighty characters.  Without the wrapping, the text might not look good in the RSS feed.
26    TEXT
27
28    expected = <<-EXPECTED
29This line is really, really long.  So long, in fact, that it is more than
30eighty characters long!  The purpose of this line is for testing wrapping
31behavior because sometimes people don't wrap their text to eighty characters.
32Without the wrapping, the text might not look good in the RSS feed.
33    EXPECTED
34
35    assert_equal expected, format_text(text, 78)
36  end
37
38  def test_levenshtein_distance_add
39    assert_equal 2, levenshtein_distance("zentest", "zntst")
40    assert_equal 2, levenshtein_distance("zntst", "zentest")
41  end
42
43  def test_levenshtein_distance_empty
44    assert_equal 5, levenshtein_distance("abcde", "")
45    assert_equal 5, levenshtein_distance("", "abcde")
46  end
47
48  def test_levenshtein_distance_remove
49    assert_equal 3, levenshtein_distance("zentest", "zentestxxx")
50    assert_equal 3, levenshtein_distance("zentestxxx", "zentest")
51  end
52
53  def test_levenshtein_distance_replace
54    assert_equal 2, levenshtein_distance("zentest", "ZenTest")
55    assert_equal 7, levenshtein_distance("xxxxxxx", "ZenTest")
56    assert_equal 7, levenshtein_distance("zentest", "xxxxxxx")
57  end
58end
59