-- Unit tests for [[Module:vi]]. Click talk page to run tests.
local p = require("Module:UnitTests")
local m_vi = require("Module:vi")
-- helper functions
function p:check_sort(input, expected)
table.sort(input, m_vi.comp)
self:equals_deep("(sorting)", input, expected)
end
function p:check_to_ref_tones(vi, expected)
self:equals('<i class="Latn mention" lang="vi">[[' .. vi .. '#Vietnamese|' .. vi .. ']]</i> to reformed tones', m_vi.toReformedTones(vi), expected)
end
function p:check_to_trad_tones(vi, expected)
self:equals('<i class="Latn mention" lang="vi">[[' .. vi .. '#Vietnamese|' .. vi .. ']]</i> to traditional tones', m_vi.toTraditionalTones(vi), expected)
end
-- tests
function p:test_shiftTones()
self:check_to_ref_tones("xóa", "xoá")
self:check_to_ref_tones("cúi", "cúi")
self:check_to_trad_tones("xoá", "xóa")
self:check_to_trad_tones("quỹ", "quỹ")
end
function p:test_removeDiacritics()
self:preprocess_equals("{{#invoke:vi|removeDiacritics|thay đổi gần đây}}", "thay doi gan day")
self:preprocess_equals("{{#invoke:vi|removeDiacritics|thay đổi gần đây|tones=0}}", "thay dỏi gàn day")
self:preprocess_equals("{{#invoke:vi|removeDiacritics|thay đổi gần đây|accents=0}}", "thay dôi gân dây")
self:preprocess_equals("{{#invoke:vi|removeDiacritics|thay đổi gần đây|đ=0}}", "thay đoi gan đay")
self:preprocess_equals("{{#invoke:vi|removeDiacritics|thay đổi gần đây|tones=1|accents=1|đ=1}}", "thay doi gan day")
self:preprocess_equals("{{#invoke:vi|removeDiacritics|thay đổi gần đây|tones=0|accents=0|đ=0}}", "thay đổi gần đây")
end
function p:test_comp()
self:check_sort({"an ninh", "bóng rổ", "Ả Rập", "bóng đá", "ăn", "Á Châu", "ánh sáng"},
{"Ả Rập", "Á Châu", "an ninh", "ánh sáng", "ăn", "bóng đá", "bóng rổ"})
self:check_sort({"bọ mắt", "chí lý", "vi lượng đồng căn", "ly lông", "tháng trời"},
{"bọ mắt", "chí lý", "ly lông", "tháng trời", "vi lượng đồng căn"})
self:check_sort({"bọ mắt", "chí lý", "đá", "vi lượng đồng căn", "ly lông", "tháng trời"},
{"bọ mắt", "chí lý", "đá", "ly lông", "tháng trời", "vi lượng đồng căn"})
end
function p.sampleComp(frame)
local t = {"an ninh", "bóng rổ", "Ả Rập", "bóng đá", "ăn", "Á Châu"}
table.sort(t, m_vi.comp)
return table.concat(t, ", ")
end
return p