Module:vi/testcases

-- 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('' .. vi .. ' to reformed tones', m_vi.toReformedTones(vi), expected) end

function p:check_to_trad_tones(vi, expected) self:equals('' .. vi .. ' 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("", "thay doi gan day") self:preprocess_equals("", "thay dỏi gàn day") self:preprocess_equals("", "thay dôi gân dây") self:preprocess_equals("", "thay đoi gan đay") self:preprocess_equals("", "thay doi gan day") self:preprocess_equals("", "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