Class: TestRoman

Inherits:
Test::Unit::TestCase
  • Object
show all
Defined in:
lib/innate/test/testroman.rb

Instance Method Summary collapse

Instance Method Details

#test_full_rangeObject

Since it works already I don’t really need more detailed tests. If it breaks, break this down.



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/innate/test/testroman.rb', line 7

def test_full_range
  r = (1..4999).inject(['']) { |lon, v|
    lon.unshift v.roman if v.roman.length > lon.first.length
    lon
  }.delete_if {|v| v == ''}.reverse.collect {|v| [v, v.roman_to_i] }
  assert_equal([["I", 1],
                ["II", 2],
                ["III", 3],
                ["VIII", 8],
                ["XVIII", 18],
                ["XXVIII", 28],
                ["XXXVIII", 38],
                ["LXXXVIII", 88],
                ["CLXXXVIII", 188],
                ["CCLXXXVIII", 288],
                ["CCCLXXXVIII", 388],
                ["DCCCLXXXVIII", 888],
                ["MDCCCLXXXVIII", 1888],
                ["MMDCCCLXXXVIII", 2888],
                ["MMMDCCCLXXXVIII", 3888],
                ["MMMMDCCCLXXXVIII", 4888]],
               r)
end

#test_interpolate_regexpObject



43
44
45
46
# File 'lib/innate/test/testroman.rb', line 43

def test_interpolate_regexp
  assert_equal('(?-mix:valiant(' + Regexp.ROMAN_PATTERN + ')soldier)',
               (/valiant(roman)soldier/).interpolate_roman.to_s)
end

#test_interpolate_regexp2Object



48
49
50
51
# File 'lib/innate/test/testroman.rb', line 48

def test_interpolate_regexp2
  assert_equal('(?i-mx:valiant(' + Regexp.ROMAN_PATTERN + ')soldier)',
               (/valiant(roman)soldier/i).interpolate_roman.to_s)
end

#test_lower_caseObject



31
32
33
# File 'lib/innate/test/testroman.rb', line 31

def test_lower_case
  assert_equal 1914, 'mcmxiv'.roman_to_i
end

#test_toggle1Object



35
36
37
# File 'lib/innate/test/testroman.rb', line 35

def test_toggle1
  assert_equal '1914', '1914'.toggle_roman.toggle_roman
end

#test_toggle2Object



39
40
41
# File 'lib/innate/test/testroman.rb', line 39

def test_toggle2
  assert_equal 'MCMXLIV', 'mcmxliv'.toggle_roman.toggle_roman
end