You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
94 lines
2.3 KiB
94 lines
2.3 KiB
require File.expand_path(File.dirname(__FILE__) + '/test_helper')
|
|
|
|
class InflectorTest < Test::Unit::TestCase
|
|
|
|
#general rule: add "s" to the end of the word
|
|
def test_general_rule
|
|
words = {:casa => "casas",
|
|
:pe => "pes",
|
|
:saci => "sacis",
|
|
:carro => "carros",
|
|
:pneu => "pneus"
|
|
}
|
|
verify_pluralize words
|
|
verify_singularize words
|
|
end
|
|
|
|
#if word ends in "r" or "z", add "es"
|
|
def test_when_word_ends_in_r_or_z
|
|
words = {:flor => "flores",
|
|
:luz => "luzes"
|
|
}
|
|
verify_pluralize words
|
|
verify_singularize words
|
|
end
|
|
|
|
#if word ends in "al", "el", "ol", "ul": trade "l" with "is"
|
|
def test_when_word_ends_in_al_el_ol_ul
|
|
words = {:hospital => "hospitais",
|
|
:telemovel => "telemoveis",
|
|
:farol => "farois",
|
|
:azul => "azuis"
|
|
}
|
|
verify_pluralize words
|
|
verify_singularize words
|
|
end
|
|
|
|
|
|
#if word ends in "il" and has tônic accent in last syllable, trade "il" with "is"
|
|
def test_when_word_end_in_il
|
|
words = {:cantil => "cantis"}
|
|
verify_pluralize words
|
|
end
|
|
|
|
|
|
#if word ends in "m", trade "m" with "ns"
|
|
def test_plurilize_when_word_ends_in_m
|
|
words = {:armazem => "armazens"}
|
|
verify_pluralize words
|
|
verify_singularize words
|
|
end
|
|
|
|
#if word ends in "s" and has one silable, trade "s" with "es"
|
|
def test_plurilize_when_word_ends_in_s
|
|
words = {:portugues => "portugueses"}
|
|
verify_pluralize words
|
|
end
|
|
|
|
def test_when_word_ends_in_ao
|
|
words = {:portão => "portões"}
|
|
verify_pluralize words
|
|
verify_singularize words
|
|
end
|
|
|
|
def test_when_irregular_singular
|
|
words = {:cão => "cães",
|
|
:pão => "pães",
|
|
:mão => "mãos",
|
|
:alemão => "alemães"
|
|
}
|
|
verify_singularize words
|
|
end
|
|
|
|
|
|
def test_when_uncountable
|
|
words = {:tennis => "tennis",
|
|
:torax => "torax"
|
|
}
|
|
verify_pluralize words
|
|
verify_singularize words
|
|
end
|
|
|
|
|
|
private
|
|
|
|
def verify_pluralize(words)
|
|
words.each { |key,value| assert_equal value, key.to_s.pluralize}
|
|
end
|
|
|
|
def verify_singularize(words)
|
|
words.each { |key,value| assert_equal key.to_s, value.singularize}
|
|
end
|
|
|
|
end
|