Modulo:String/test

Da Semi del Verbo, l'enciclopedia dell'influenza del Vangelo sulla cultura

La documentazione per questo modulo può essere creata in Modulo:String/test/man

-- Unit tests for [[Module:String]]. Click talk page to run tests.
local p = require('Module:UnitTests')
 
function p:test_len()
    self:preprocess_equals_many('{{#invoke:String|len|', '}}', {
        {' foo ', '5'},
        {'s= foo ', '3'},
        {'', '0'},
        {'s=', '0'},
        {'   ', '3'},
        {'最近の更新', '5'},
    })
end
 
function p:test_replace()
    self:preprocess_equals_many('{{#invoke:String|replace|', '}}', {
        {'1.1.1.1|.|/', '1/1/1/1'},
        {'alpha (beta)| (| gamma (', 'alpha gamma (beta)'},
        {'Dog (cat)|%s%(.*%)||plain=false', 'Dog'},
    })
end
 
function p:test_match()
    self:preprocess_equals_many('{{#invoke:String|match|', '}}', {
        {'dog (cat)|%((%a-)%)', 'cat'},
        {'dog (cat) (canary) (fish)|%((%a-)%)||-1', 'fish'},
        {'dog (cat) (canary) (fish)|%((%a-)%)||2', 'canary'},
        {'dog (cat) (canary) (fish)|%((%a-)%)|6|1', 'canary'},
        {'dog (cat) (canary) (fish)|%((%a-)%)|6|2', 'fish'},
        {'dog (cat)|%((%a-)%)||2|no_category=true', '<strong class="error">String Module Error: Match not found</strong>'},
        {'dog (cat)|%((%a-)%)||2|ignore_errors=true', ''},
    })
end
function p:test_match()
    self:preprocess_equals_many('{{#invoke:String|match|', '}}', {
        {'dog (cat)|%((%a-)%)', 'cat'},
        {'dog (cat) (canary) (fish)|%((%a-)%)||-1', 'fish'},
        {'dog (cat) (canary) (fish)|%((%a-)%)||2', 'canary'},
        {'dog (cat) (canary) (fish)|%((%a-)%)|6|1', 'canary'},
        {'dog (cat) (canary) (fish)|%((%a-)%)|6|2', 'fish'},
        {'dog (cat)|%((%a-)%)||2|no_category=true', '<strong class="error">Errore nel modulo String: Corrispondenza non trovata</strong>'},
        {'dog (cat)|%((%a-)%)||2|ignore_errors=true', ''},
    })
end
 
function p:test_find()
    self:preprocess_equals_many('{{#invoke:String|find|', '}}', {
        {'', '0'},
        {'source=', '0'},
        {'source=|target=', '0'},
        {'source=|target=Bob', '0'},
        {'Bob|Joe', '0'},
        {'Bob|b', '3'},
        {'Bob Joe|oe', '6'},
        {'source= Bob |o', '2'},
        {' Bob |o', '3'},
        {'높지만 급격히|만', '3'},
        {'source=BAAAB|target=%w|plain=false', '1'},
        {'source=BAAAB|target=%w|start=3|plain=false', '3'},
        {'source=BAAAB|target=(%w)%1|plain=false', '2'},
    })
end
 
function p:test_rep()
    self:preprocess_equals_many('{{#invoke:String|rep|', '}}', {
        {'abc|1', 'abc'},
        {'a b|7', 'a ba ba ba ba ba ba b'},
        {'bla|glug|no_category=true', '<strong class="error">Errore nel modulo String: la funzione rep si aspetta un secondo parametro con il numero di ripetizioni, ricevuto "glug"</strong>'},
        {'bla|glug|ignore_errors=true', ''},
        {'àèò|3', 'àèòàèòàèò'},
        {'높지만|3', '높지만높지만높지만'},
    })
end

function p:test_decode()
    self:preprocess_equals_many('{{#invoke:String|decode|', '}}', {
        {'source=TEST%3D%3Dabc', 'TEST==abc'},
    })
    self:preprocess_equals_many('{{#invoke:String|decode|', '}}', {
        {'TEST%3D%3Dabc', 'TEST==abc'},
    })
    self:preprocess_equals_many('{{#invoke:String|decode|', '}}', {
        {'%24+%26', "$ &" },
    })
    self:preprocess_equals_many('{{#invoke:String|decode|', '}}', {
        {'%24+%26|PATH', "$+&" },
    })
    self:preprocess_equals_many('{{#invoke:String|decode|', '}}', {
        {'%24+%26|QUERY', "$ &" },
    })
    self:preprocess_equals_many('{{#invoke:String|decode|', '}}', {
        {'%24_%26|WIKI', "$ &" },
    })
end

function p:test_collate()
    self:preprocess_equals_many('{{#invoke:String|collate|', '}}', {
        {'Ameliè', 'Amelie'},
    })
    self:preprocess_equals_many('{{#invoke:String|collate|', '}}', {
        {'John le Carré', 'John le Carre'},
    })
    self:preprocess_equals_many('{{#invoke:String|collate|', '}}', {
        {"Anatolij Michajlovič Stessel'", "Anatolij Michajlovic Stessel'"},
    })
    self:preprocess_equals_many('{{#invoke:String|collate|', '}}', {
        {'Tōgō Heihachirō', "Togo Heihachiro"},
    })
    self:preprocess_equals_many('{{#invoke:String|collate|', '}}', {
        {'Tōgō Heihachirō', "Togo Heihachiro"},
    })
    self:preprocess_equals_many('{{#invoke:String|collate|', '}}', {
        {'Uryū Sotokichi', 'Uryu Sotokichi'},
    })
    self:preprocess_equals_many('{{#invoke:String|collate|', '}}', {
        {'Rolf Løvland', "Rolf Lovland"},
    })
    self:preprocess_equals_many('{{#invoke:String|collate|', '}}', {
        {'John Storgårds', "John Storgards"},
    })
end

function p:test_titolo_alfa()
    self:preprocess_equals_many('{{#invoke:String|titolo_alfa|', '}}', {
        {'prova', 'Prova'},
    })
    self:preprocess_equals_many('{{#invoke:String|titolo_alfa|', '}}', {
        {'prova (disambigua)', 'Prova'},
    })
    self:preprocess_equals_many('{{#invoke:String|titolo_alfa|', '}}', {
        {'...prova', 'Prova'},
    })
    self:preprocess_equals_many('{{#invoke:String|titolo_alfa|', '}}', {
        {'...prova (disambigua)', 'Prova'},
    })
    self:preprocess_equals_many('{{#invoke:String|titolo_alfa|', '}}', {
        {'Pròvâ', 'Prova'},
    })
    self:preprocess_equals_many('{{#invoke:String|titolo_alfa|', '}}', {
        {'Una prova', 'Prova, Una'},
    })
    self:preprocess_equals_many('{{#invoke:String|titolo_alfa|', '}}', {
        {'La prova (disambigua)', 'Prova, La'},
    })
end

return p