-- Unit tests for [[Module:IPA symbol]]. Click talk page to run tests.
local p = require('Module:UnitTests')
--    self:preprocess_equals_preprocess('{{#invoke:IPA symbol/sandbox|main||output=name}}', '{{IPAsym|}}')
-- currently: custom_error corresponds with para2 (set message for not-in-list error; currently default return = error message.
-- currently: custom_output corresponds with para3 in IPAsym (set message for blank input; default return = '' (blank))
--- note: para2 and para3 do interact (para3 defaults to para2 behaviour), but their module parameters do not.

function p:test_a_basic_IPA_symbols()
    self:preprocess_equals_preprocess('{{#invoke:IPA symbol/sandbox|main|m|output=name}}', '{{IPAsym|m}}')
    self:preprocess_equals_preprocess('{{#invoke:IPA symbol/sandbox|main|p|output=name}}', '{{IPAsym|p}}')
    self:preprocess_equals_preprocess('{{#invoke:IPA symbol/sandbox|main|ʘ|output=name}}', '{{IPAsym|ʘ}}')
    self:preprocess_equals_preprocess('{{#invoke:IPA symbol/sandbox|main|147|output=name}}', '{{IPAsym|147}}')
    self:preprocess_equals_preprocess('{{#invoke:IPA symbol/sandbox|main|ɦ|output=name}}', '{{IPAsym|ɦ}}')
    self:preprocess_equals_preprocess('{{#invoke:IPA symbol/sandbox|main|h̃ |output=name}}', '{{IPAsym|h̃ }}')
    self:preprocess_equals_preprocess('{{#invoke:IPA symbol/sandbox|main|146 424|output=name}}', '{{IPAsym|146 424}}')

end

function p:test_b_blank_input()
    self:preprocess_equals_preprocess('{{#invoke:IPA symbol/sandbox|main||output=name}}', '{{IPAsym|}}')
    self:preprocess_equals_preprocess('{{#invoke:IPA symbol/sandbox|main|output=name}}', '{{IPAsym}}')
    self:preprocess_equals_preprocess('{{#invoke:IPA symbol/sandbox|main| |output=name}}', '{{IPAsym| }}')
    self:preprocess_equals_preprocess('{{#invoke:IPA symbol/sandbox|main|  |output=name}}', '{{IPAsym|  }}')
    self:preprocess_equals_preprocess('{{#invoke:IPA symbol/sandbox|main| m |output=name}}', '{{IPAsym| m }}')
    self:preprocess_equals_preprocess('{{#invoke:IPA symbol/sandbox|main||custom_error=para2msg|output=name}}', '{{IPAsym||para2msg}}')
    self:preprocess_equals_preprocess('{{#invoke:IPA symbol/sandbox|main||custom_error=para2msg||output=name}}', '{{IPAsym||para2msg|}}')
    self:preprocess_equals_preprocess('{{#invoke:IPA symbol/sandbox|main||custom_error=para2msg|custom_output=para3msg|output=name}}', '{{IPAsym||para2msg|para3msg}}')
    self:preprocess_equals_preprocess('{{#invoke:IPA symbol/sandbox|main||custom_output=para3msg|output=name}}', '{{IPAsym||3=para3msg}}')
    self:preprocess_equals_preprocess('{{#invoke:IPA symbol/sandbox|main|||custom_output=para3msg|output=name}}', '{{IPAsym|||3=para3msg}}')

end

function p:test_c_error_options()

    self:preprocess_equals_preprocess('{{#invoke:IPA symbol/sandbox|main|xyz|output=name}}', '{{IPAsym|xyz}}')
    self:preprocess_equals_preprocess('{{#invoke:IPA symbol/sandbox|main|xyz|custom_error=para2msg|output=name}}', '{{IPAsym|xyz|para2msg}}')
    self:preprocess_equals_preprocess('{{#invoke:IPA symbol/sandbox|main|xyz|custom_error=para2msg|output=name}}', '{{IPAsym|xyz|para2msg}}')
    self:preprocess_equals_preprocess('{{#invoke:IPA symbol/sandbox|main|xyz|custom_error=para2msg|custom_output=|output=name}}', '{{IPAsym|xyz|para2msg|}}')
    self:preprocess_equals_preprocess('{{#invoke:IPA symbol/sandbox|main|xyz|custom_error=para2msg|custom_output=para3msg|output=name}}', '{{IPAsym|xyz|para2msg|para3msg}}')
    self:preprocess_equals_preprocess('{{#invoke:IPA symbol/sandbox|main|xyz|custom_output=para3msg|output=name}}', '{{IPAsym|xyz|3=para3msg}}')
    
end

function p:test_d_error_options_ineffective()
-- set messages should not be shown in OK input
    self:preprocess_equals_preprocess('{{#invoke:IPA symbol/sandbox|main|m|output=name}}', '{{IPAsym|m}}')
    self:preprocess_equals_preprocess('{{#invoke:IPA symbol/sandbox|main|m|custom_error=para2msg|output=name}}', '{{IPAsym|m|para2msg}}')
    self:preprocess_equals_preprocess('{{#invoke:IPA symbol/sandbox|main|m|custom_error=para2msg|output=name}}', '{{IPAsym|m|para2msg}}')
    self:preprocess_equals_preprocess('{{#invoke:IPA symbol/sandbox|main|m|custom_error=para2msg|custom_output=|output=name}}', '{{IPAsym|m|para2msg|}}')
    self:preprocess_equals_preprocess('{{#invoke:IPA symbol/sandbox|main|m|custom_error=para2msg|custom_output=para3msg|output=name}}', '{{IPAsym|m|para2msg|para3msg}}')
    self:preprocess_equals_preprocess('{{#invoke:IPA symbol/sandbox|main|m|custom_output=para3msg|output=name}}', '{{IPAsym|m||3=para3msg}}')

end

return p
"https://si.wikipedia.org/w/index.php?title=Module:IPA_symbol/sandbox/testcases&oldid=676832" වෙතින් සම්ප්‍රවේශනය කෙරිණි