local t = require("Modul:UnitTests")
local mut = require("Modul:translit/ru")
function t:test01_isolated_uppercase_characters()
self:equals('mut.tr("А,Б,В,Г,Д")', mut.tr("А,Б,В,Г,Д"), "A,B,V,G,D")
self:equals('mut.tr("Е,Ё,Ж,З,И")', mut.tr("Е,Ё,Ж,З,И"), "Je,Jo,Zj,Z,I")
self:equals('mut.tr("Й,К,Л,М,Н")', mut.tr("Й,К,Л,М,Н"), "J,K,L,M,N")
self:equals('mut.tr("О,П,Р,С,Т")', mut.tr("О,П,Р,С,Т"), "O,P,R,S,T")
self:equals('mut.tr("У,Ф,Х,Ц,Ч")', mut.tr("У,Ф,Х,Ц,Ч"), "U,F,Ch,Ts,Tj")
self:equals('mut.tr("Ш,Щ,Ы,Э,Ю,Я")', mut.tr("Ш,Щ,Ы,Э,Ю,Я"), "Sj,Sjtj,Y,E,Ju,Ja")
end
function t:test02_isolated_lowercase_characters()
self:equals('mut.tr("а,б,в,г,д")', mut.tr("а,б,в,г,д"), "a,b,v,g,d")
self:equals('mut.tr("е,ё,ж,з,и")', mut.tr("е,ё,ж,з,и"), "je,jo,zj,z,i")
self:equals('mut.tr("й,к,л,м,н")', mut.tr("й,к,л,м,н"), "j,k,l,m,n")
self:equals('mut.tr("о,п,р,с,т")', mut.tr("о,п,р,с,т"), "o,p,r,s,t")
self:equals('mut.tr("у,ф,х,ц,ч")', mut.tr("у,ф,х,ц,ч"), "u,f,ch,ts,tj")
self:equals('mut.tr("ш,щ,ы,э,ю,я")', mut.tr("ш,щ,ы,э,ю,я"), "sj,sjtj,y,e,ju,ja")
end
function t:test03_uppercase_vs_mixedcase_words()
self:equals('mut.tr("ЖА,Жa")', mut.tr("ЖА,Жa"), "ZjA,Zja")
-- etc... (alla tecken som translittererar till multipla tecken)
end
function t:test04_leave_out_hard_sign()
self:equals('mut.tr("Ъ,ъ")', mut.tr("Ъ,ъ"), ",")
end
function t:test05_leave_out_soft_sign_but_not_before_i()
self:equals('mut.tr("Ь,ь")', mut.tr("Ь,ь"), ",")
self:equals('mut.tr("Игорь")', mut.tr("Игорь"), "Igor")
self:equals('mut.tr("ьи")', mut.tr("ьи"), "ji")
self:equals('mut.tr("Ильич")', mut.tr("Ильич"), "Iljitj")
self:equals('mut.tr("ЬИ")', mut.tr("ЬИ"), "JI")
self:equals('mut.tr("сьич")', mut.tr("сьич"), "sjitj")
self:equals('mut.tr("зьич")', mut.tr("зьич"), "zjitj")
self:equals('mut.tr("тьич")', mut.tr("тьич"), "tjitj")
end
-- Öppen fråga: hur bör stort mjukhetstecken ( Ь ) hanteras? Apostrof ( ' )?
-- Mest en hypotetisk fråga, då bokstaven i praktiken inte används.
-- Förekommer i skrivande stund inte i någon av de 9 184 orden i
-- ].
-- På engelska Wiktionary förekommer det en gång, i artikeln om just tecknet Ь.
function t:test06_example()
self:equals('mut.tr("Горбачёв")', mut.tr("Горбачёв"), "Gorbatjóv")
self:equals('mut.tr("Михаил Горбачёв")', mut.tr("Михаил Горбачёв"), "Michail Gorbatjóv")
-- self:equals('mut.trWithoutAccents("Горбачёв")', mut.trWithoutAccents("Горбачёв"), "Gorbatjov")
-- self:equals('mut.trWithoutAccents("Михаи́л Горбачёв")', mut.trWithoutAccents("Михаи́л Горбачёв"), "Michaíl Gorbatjov")
-- self:equals('mut.tr("Горбачёв","withoutAutoAccents=true")', mut.tr("Горбачёв","withoutAutoAccents=true"), "Gorbatjov")
end
function t:test07_e_becomes_je_after_vowel()
self:equals('mut.tr("Иего́ва")', mut.tr("Иего́ва"), "Ijegóva")
self:equals('mut.tr("Алексеев")', mut.tr("Алексеев"), "Aleksejev")
self:equals('mut.tr("Алексе́ев")', mut.tr("Алексе́ев"), "Alekséjev")
end
function t:test08_automatically_accentuate_polysyllabic_yo()
self:equals('mut.tr("Фёдор")', mut.tr("Фёдор"), "Fjódor")
self:equals('mut.tr("Пётр")', mut.tr("Пётр"), "Pjotr")
self:equals('mut.tr("Пётр Ильич")', mut.tr("Пётр Ильич"), "Pjotr Iljitj")
self:equals('mut.tr("чёлн\nПо")', mut.tr("чёлн\nПо"), "tjoln\nPo")
end
function t:test09_never_treat_e_like_yo()
self:equals('mut.tr("Пeтр")', mut.tr("Пeтр"), "Petr")
end
function t:test10_return_unaccentuated_from_unaccentuated_input()
self:equals('mut.tr("замок")', mut.tr("замок"), "zamok")
end
function t:test11_pass_through_non_cyrillic_input()
self:equals('mut.tr("IP-адрес")', mut.tr("IP-адрес"), "IP-adres")
self:equals('mut.tr("β-распад")', mut.tr("β-распад"), "β-raspad")
end
function t:test12_initial_yo_distinct_from_non_initial()
self:equals('mut.tr("Евгений")', mut.tr("Евгений"), "Jevgenij")
self:equals('mut.tr("Я Евгений")', mut.tr("Я Евгений"), "Ja Jevgenij")
end
function t:test13_punctuation_marks()
self:equals('mut.tr("Я Тарзан. Ты Джейн.")', mut.tr("Я Тарзан. Ты Джейн."), "Ja Tarzan. Ty Dzjejn.")
end
function t:test14_i_rather_than_j_after_s_or_t_or_z()
self:equals('mut.tr("сё,сю,ся")', mut.tr("сё,сю,ся"), "sio,siu,sia")
self:equals('mut.tr("тё,тю,тя")', mut.tr("тё,тю,тя"), "tio,tiu,tia")
self:equals('mut.tr("зё,зю,зя")', mut.tr("зё,зю,зя"), "zio,ziu,zia")
self:equals('mut.tr("сье,сьё,сью,сья")', mut.tr("сье,сьё,сью,сья"), "sie,sio,siu,sia")
self:equals('mut.tr("тье,тьё,тью,тья")', mut.tr("тье,тьё,тью,тья"), "tie,tio,tiu,tia")
self:equals('mut.tr("зье,зьё,зью,зья")', mut.tr("зье,зьё,зью,зья"), "zie,zio,ziu,zia")
self:equals('mut.tr("Сё,Сю,Ся")', mut.tr("Сё,Сю,Ся"), "Sio,Siu,Sia")
self:equals('mut.tr("Тё,Тю,Тя")', mut.tr("Тё,Тю,Тя"), "Tio,Tiu,Tia")
self:equals('mut.tr("Зё,Зю,Зя")', mut.tr("Зё,Зю,Зя"), "Zio,Ziu,Zia")
self:equals('mut.tr("Сье,Сьё,Сью,Сья")', mut.tr("Сье,Сьё,Сью,Сья"), "Sie,Sio,Siu,Sia")
self:equals('mut.tr("Тье,Тьё,Тью,Тья")', mut.tr("Тье,Тьё,Тью,Тья"), "Tie,Tio,Tiu,Tia")
self:equals('mut.tr("Зье,Зьё,Зью,Зья")', mut.tr("Зье,Зьё,Зью,Зья"), "Zie,Zio,Ziu,Zia")
end
function t:test15_o_rather_than_jo()
self:equals('mut.tr("шё,щё,чё,жё")', mut.tr("шё,щё,чё,жё"), "sjo,sjtjo,tjo,zjo")
self:equals('mut.tr("Шё,Щё,Чё,Жё")', mut.tr("Шё,Щё,Чё,Жё"), "Sjo,Sjtjo,Tjo,Zjo")
end
function t:test16_apostrophes_in_input()
self:equals(], mut.tr("'''Когда́''' вы прие́хали?"), "'''Kogdá''' vy prijéchali?")
end
function t:test99_reference_from_Svenska_skrivregler()
self:equals('mut.tr("Анна")', mut.tr("Анна"), "Anna")
self:equals('mut.tr("Борис")', mut.tr("Борис"), "Boris")
self:equals('mut.tr("Волга")', mut.tr("Волга"), "Volga")
self:equals('mut.tr("Горький")', mut.tr("Горький"), "Gorkij")
self:equals('mut.tr("Дон")', mut.tr("Дон"), "Don")
self:equals('mut.tr("Афанасьев")', mut.tr("Афанасьев"), "Afanasiev")
self:equals('mut.tr("Днепр")', mut.tr("Днепр"), "Dnepr")
self:equals('mut.tr("Евгений")', mut.tr("Евгений"), "Jevgenij")
self:equals('mut.tr("Алексеев")', mut.tr("Алексеев"), "Aleksejev")
self:equals('mut.tr("Кондратьев")', mut.tr("Кондратьев"), "Kondratiev")
self:equals('mut.tr("Чёрный")', mut.tr("Чёрный"), "Tjórnyj")
self:equals('mut.tr("Аксёнов")', mut.tr("Аксёнов"), "Aksiónov")
self:equals('mut.tr("Фёдор")', mut.tr("Фёдор"), "Fjódor")
self:equals('mut.tr("Пётр")', mut.tr("Пётр"), "Pjotr")
self:equals('mut.tr("Зёрнов")', mut.tr("Зёрнов"), "Ziórnov")
self:equals('mut.tr("Щёлкин")', mut.tr("Щёлкин"), "Sjtjólkin")
self:equals('mut.tr("Жуковский")', mut.tr("Жуковский"), "Zjukovskij")
self:equals('mut.tr("Замятин")', mut.tr("Замятин"), "Zamjatin")
self:equals('mut.tr("Ирина")', mut.tr("Ирина"), "Irina")
self:equals('mut.tr("Толстой")', mut.tr("Толстой"), "Tolstoj")
self:equals('mut.tr("Куприн")', mut.tr("Куприн"), "Kuprin")
self:equals('mut.tr("Лесков")', mut.tr("Лесков"), "Leskov")
self:equals('mut.tr("Максим")', mut.tr("Максим"), "Maksim")
self:equals('mut.tr("Надя")', mut.tr("Надя"), "Nadja")
self:equals('mut.tr("Онега")', mut.tr("Онега"), "Onega")
self:equals('mut.tr("Пушкин")', mut.tr("Пушкин"), "Pusjkin")
self:equals('mut.tr("Ростропович")', mut.tr("Ростропович"), "Rostropovitj")
self:equals('mut.tr("Самара")', mut.tr("Самара"), "Samara")
self:equals('mut.tr("Толстой")', mut.tr("Толстой"), "Tolstoj")
self:equals('mut.tr("Устинов")', mut.tr("Устинов"), "Ustinov")
self:equals('mut.tr("Фёдор")', mut.tr("Фёдор"), "Fjódor")
self:equals('mut.tr("Тихонов")', mut.tr("Тихонов"), "Tichonov")
self:equals('mut.tr("Донец")', mut.tr("Донец"), "Donets")
self:equals('mut.tr("Чайковский")', mut.tr("Чайковский"), "Tjajkovskij")
self:equals('mut.tr("Шостакович")', mut.tr("Шостакович"), "Sjostakovitj")
self:equals('mut.tr("Щедрин")', mut.tr("Щедрин"), "Sjtjedrin")
self:equals('mut.tr("Подъячев")', mut.tr("Подъячев"), "Podjatjev")
self:equals('mut.tr("Белый")', mut.tr("Белый"), "Belyj")
self:equals('mut.tr("Ильич")', mut.tr("Ильич"), "Iljitj")
self:equals('mut.tr("Игорь")', mut.tr("Игорь"), "Igor")
self:equals('mut.tr("Эдуард")', mut.tr("Эдуард"), "Eduard")
self:equals('mut.tr("Юрий")', mut.tr("Юрий"), "Jurij")
self:equals('mut.tr("Актюбинск")', mut.tr("Актюбинск"), "Aktiubinsk")
self:equals('mut.tr("Союз")', mut.tr("Союз"), "Sojuz")
self:equals('mut.tr("Татьяна")', mut.tr("Татьяна"), "Tatiana")
self:equals('mut.tr("Зябков")', mut.tr("Зябков"), "Ziabkov")
self:equals('mut.tr("Ярослав")', mut.tr("Ярослав"), "Jaroslav")
end
return t