Module:Unité/Test
Apparence
[voir] [modifier] [historique] [purger]
Ce module est principalement destiné à implémenter le modèle {{Unité}}.
Utilisation
[modifier le code]Fonctions exportables
[modifier le code]unite( frame )
– implémente le modèle unité. Les paramètres sont pris soit au niveau du modèle appelant le module via #invoke, soit directement dans la table fournie lorsque la fonction est appelée depuis un autre module. Essaye de parser les deux premiers paramètres pour facilité la saisie (par exemple fonction avecp.unite{ '1.23 ±0.05 e5 m/s-2' }
) ;_unite( args )
– affiche l'unité à partir des paramètres classiques du modèle Unité (exemplep._unite{ '1.23', 'm', '/s', '-2', ['±'] = '0.05', e='5' }
) ;formatNombres( texte )
– formate tous les nombres de la chaine fournie suivant les conventions du français ;formatNombre( nombre )
– transforme un nombre formaté ou non en chaine formatée suivant les conventions du français ; si la chaine n'est pas reconnue comme un nombre, elle n'est pas modifiée ;_formatNum( num )
– transforme un number, ou une chaine correspondant à un number en chaine formatée suivant les conventions du français ; si le paramètre ne représente pas un number lua il est retourné sans modification ;parseNombre( nombre )
– transforme si possible une chaine formatée en un chaine interprétable par tonumber() (retourne une chaine pour éviter les arrondis éventuels de lua) ; les chaines non reconnues sont retournées sans modification.
Autres fonctions
[modifier le code]sanitizeNum( nombre )
– transforme les signes moins en tiret, les espaces insécables en espace simple (simplifie les pattern ultérieures) ;parseUnit( texte )
– essaye de séparer une chaine en différents paramètres du modèle unité ;nomUnit( unit, exposant )
– retourne si possible le nom de l'unité et son exposant en toute lettre.
Modules externes et autres éléments dont ce module a besoin pour fonctionner
[modifier le code]- Module:Unité/Data – Liste d'unités et de multiples, avec leur abréviation et leur nom en toute lettre.
- Module:Delink – Utilisé pour supprimer les liens des unités pour essayer de les reconnaitre.
Exemples
[modifier le code]Pour des exemples, voir la page de test permettant de tester diverses modifications apportées.
Voir aussi : les tests unitaires et ceux du bac à sable.
La documentation de ce module est générée par le modèle {{Documentation module}}.
Elle est incluse depuis sa sous-page de documentation. Veuillez placer les catégories sur cette page-là.
Les éditeurs peuvent travailler dans le bac à sable (modifier).
Voir les statistiques d'appel depuis le wikicode sur l'outil wstat et les appels depuis d'autres modules.
-- Test unitaire pour [[Module:Date]]. Cliquer sur « Discussion » pour voir le résultat du test.
local p = require('Module:UnitTests')
local Unit = require( 'Module:' .. mw.title.getCurrentTitle().baseText )
local template = mw.title.getCurrentTitle().baseText
local tableExemple = { '1' }
local frame = mw.getCurrentFrame()
local ref = frame:extensionTag( 'ref', 'blabla' )
local nowiki = frame:extensionTag( 'nowiki', '[[Arles]] : ' )
function p:test01_sanitizeNum()
local function test( param, expected, comment )
local text = tostring( param )
if comment then
if text:match( '\n$' ) then
text = text .. '(' .. comment .. ')'
else
text = text .. ' (' .. comment .. ')'
end
end
self:equals( text, Unit.sanitizeNum( param ), expected )
end
test( nil, '', 'pas de paramètre' )
test( '', '', 'chaine vide' )
test( '1', '1' )
test( '1234', '1234' )
test( ' 1234', '1234', 'espace avant' )
test( '1234 ', '1234', 'espace après' )
test( '1234\n', '1234', 'retour ligne après' )
test( ' 1234', '1234', 'tab avant' )
test( '1234 ', '1234', 'espace insécable après' )
test( '1.234', '1.234' )
test( '1,234', '1,234' )
test( '1,234,567', '1,234,567' )
test( '1 234', '1 234' )
test( '1 234', '1 234', 'espace insécable' )
test( '1 234', '1 234', 'espace fine' )
test( '1 234', '1 234', 'espace fine insécable' )
test( '1 234', '1 234', ' ' )
test( '-1234', '-1234' )
test( '−1234', '-1234', 'signe moins' )
test( '–1234', '–1234', 'demi cadratin' )
test( '−1234', '-1234', 'amp;minus;' )
test( nowiki .. '1234' .. ref, nowiki .. '1234' .. ref, 'avec strip marker' )
end
function p:test02_parseNombre()
local function test( param, expected, comment )
local text = tostring( param )
if comment then
text = text .. ' (' .. comment .. ')'
end
self:equals( text, Unit.parseNombre( param ), expected )
end
test( nil, '', 'pas de paramètre' )
test( '', '', 'chaine vide' )
test( '1', '1' )
test( '1234', '1234' )
test( '1 234', '1234' )
test( '1 234', '1234', 'espace insécable' )
test( '1 234', '1234', ' ' )
test( '12345678901234567890', '12345678901234567890' )
test( '12 345 678 901 234 567 890', '12345678901234567890' )
test( '1.234', '1.234' )
test( '1,234', '1.234' )
test( '1.234,567', '1.234567', 'pour être compatible avec l’ancien comportement du modèle' )
test( '1,234.567', '1234.567' )
test( '-1234,567', '-1234.567' )
test( '−1234,567', '-1234.567', 'signe moins' )
test( '²', '2' )
test( '⁴', '4' )
test( '10³', '10³' )
end
function p:test03_formatNum()
local function test( param, expected, comment )
local text = tostring( param )
if type( param ) == 'table' then
text = table_to_str( param )
end
if comment then
text = text .. ' (' .. comment .. ')'
end
self:equals( text, Unit.formatNum( param ), expected )
end
test( nil, nil, 'pas de paramètre' )
test( '', '', 'chaine vide' )
test( '1', '1' )
test( '1234', '1 234' )
test( '12345678901234567890', '12 345 678 901 234 567 890' )
test( '1.234', '1,234' )
test( '1.2345', '1,234 5' )
test( '1.234567', '1,234 567' )
test( '1.2345678901234567890', '1,234 567 890 123 456 789 0' )
test( '1234.56789', '1 234,567 89' )
test( '1.230', '1,230' )
test( '-1', '−1' )
test( '-1234.56', '−1 234,56' )
test( 1234, '1 234', 'number' )
test( 1234.567890, '1 234,567 89' )
test( -1234, '−1 234' )
test( { '1234' }, '1 234', 'table' )
test( { 1234 }, '1 234', 'table contenant un number' )
test( { '1.234', round = '2' }, '1,23' )
test( { '1.2', round = '2' }, '1,2' )
test( { '1234', round = '2' }, '1 234' )
test( { '1234', round = '-1' }, '1 230' )
test( { 1.234, round = 2 }, '1,23', 'numbers' )
test( { '1.234', decimals = '2' }, '1,23' )
test( { '1.2', decimals = '2' }, '1,20' )
test( { '1.2', decimals = '5' }, '1,200 00' )
test( { '1234', decimals = '2' }, '1 234,00' )
test( { '1234', decimals = '-1' }, '1 230' )
test( '1.234e5', '1,234 × 10<sup>5</sup>' )
test( '1.234E5', '1,234 × 10<sup>5</sup>' )
test( 1.234e5, '123 400', 'number sous forme 1.234e5' )
test( 1.234e18, '1,234 × 10<sup>18</sup>', 'number sous forme 1.234e18' )
test( '-1.234e-5', '−1,234 × 10<sup>−5</sup>' )
test( { '1.234e5' }, '1,234 × 10<sup>5</sup>' )
test( { '1.234e5', noHtml = true }, '1,234 × 10⁵' )
end
function p:test04_formatNombre()
local function test( param, param2, param3, expected, comment )
local text = tostring( param )
if param2 or param3 then
text = param .. ' / ' .. tostring( param2 ) .. ' / ' .. tostring( param3 )
end
if comment then
text = text .. ' (' .. comment .. ')'
end
self:equals( text, Unit.formatNombre( param, param2, param3 ), expected )
end
test( nil, nil, nil, '', 'pas de paramètre' )
test( '', nil, nil, '', 'chaine vide' )
test( '1', nil, nil, '1' )
test( '−1 234', nil, nil, '−1 234' )
test( '1.234', '2', nil, '1,23' )
test( '1.234', nil, '2', '1,23' )
test( '1.234', nil, '5', '1,234 00' )
test( '1', nil, '2', '1,00' )
test( '', '2', nil, '' )
test( '', nil, '2', '' )
end
function p:test05_formatNombres()
local function test( param, param2, param3, expected, comment )
local text = tostring( param )
if param2 or param3 then
text = param .. ' / ' .. tostring( param2 ) .. ' / ' .. tostring( param3 )
end
if comment then
text = text .. ' (' .. comment .. ')'
end
self:equals( text, Unit.formatNombres( param, param2, param3 ), expected )
end
test( nil, nil, nil, '', 'pas de paramètre' )
test( '', nil, nil, '', 'chaine vide' )
test( '1', nil, nil, '1' )
test( '−1 234.5', nil, nil, '−1 234,5' )
test( '5.678e3', nil, nil, '5,678 × 10<sup>3</sup>' )
test( '1.567,89', nil, nil, '1,567 89' )
test( '1.234', '2', nil, '1,23' )
test( '1.234', nil, '2', '1,23' )
test( '1.234', nil, '5', '1,234 00' )
test( 'environ 1234.5', nil, nil, 'environ 1 234,5' )
test( 'entre −1 234.5 et 5.678e3', nil, nil, 'entre −1 234,5 et 5,678 × 10<sup>3</sup>' )
test( 'de 0,2 jusqu\'à 1.567,89', nil, 5, 'de 0,200 00 jusqu\'à 1,567 89' )
test( '1234-5678', nil, nil, '1 234-5 678' )
test( nowiki .. '1234', nil, nil, nowiki .. '1 234', 'avec nowiki' )
test( '1234' .. ref, nil, nil, '1 234' .. ref, 'avec ref' )
end
function p:test06_parseUnit()
local function test( param, expected, comment )
local text = tostring( param )
if comment then
text = text .. ' (' .. comment .. ')'
end
local result = Unit.parseUnit( param )
if result.prefix == '' then
result.prefix = nil
end
self:equals_deep( text, result, expected )
end
test( nil, {}, 'pas de paramètre' )
test( '', {}, 'chaine vide' )
test( '1', { '1' } )
test( '1,234.567', { '1,234.567' } )
test( '1 234', { '1 234' } )
test( '−1 234', { '-1 234' } )
test( '1 m', { '1', 'm' } )
test( '1 m2', { '1', 'm', '2' } )
test( '1 km²', { '1', 'km', '2' } )
test( '1 m³', { '1', 'm', '3' } )
test( '1 m<sup>2</sup>', { '1', 'm', '2' }, 'HTML <nowiki><sup></nowiki>' )
test( '1 m2 s-1', { '1', 'm', '2', 's', '-1' } )
test( '1 m2/s', { '1', 'm', '2', '/s' } )
test( '5 km / h', { '5', 'km', '', '/ h' } )
test( '1 J2K3s-1', { '1', 'J', '2', 'K', '3', 's', '-1' } )
test( '1 J kg m−2', { '1', 'J', '', 'kg', '', 'm', '-2' } )
test( '1 kilomètres par heure', { '1', 'kilomètres par heure' } )
test( '43 700 / jour', { '43 700', '/ jour' } )
test( '1 [[mètre carré|m{{exp|2}}]]', { '1', '[[mètre carré|m{{exp|2}}]]' } )
test( '1 [[mètre carré|m]]2', { '1', '[[mètre carré|m]]', '2' } )
test( '10 [[parsec]]s', { '10', '[[parsec]]s' } )
test( '1.23456789e15', { '1.23456789', e='15' } )
test( '1.23456789 e15', { '1.23456789', e='15' } )
test( '1.23456789x10e-15', { '1.23456789', e='-15' } )
test( '1.23456789x10^-15', { '1.23456789', e='-15' } )
test( '40.234°C', { '40.234', '°C' } )
test( 'm', { false, 'm' } )
test( 'm2', { false, 'm', '2' } )
test( 'e3 m2', { false, 'm', '2', e='3' } )
test( 'x10e3 m2', { false, 'm', '2', e='3' } )
test( '10<sup>3</sup> m2', { false, 'm', '2', e='3' }, 'HTML <nowiki><sup></nowiki>' )
test( '55 à 56 cal', { '55', 'cal', ['à'] = '56' } )
test( '55 et 56 cal', { '55', 'cal', et = '56' } )
test( '55-56 cal', { '55', 'cal', ['–'] = '56' } )
test( '100±9 mm', { '100', 'mm', ['±'] = '9' } )
test( '100+-9 mm', { '100', 'mm', ['±'] = '9' } )
test( '100+/-9 mm', { '100', 'mm', ['±'] = '9' } )
test( '+/-9 mm', { false, 'mm', ['±'] = '9' } )
test( '100,5 +/- 9.3 e5 mm', { '100,5', 'mm', ['±'] = '9.3', e = '5' } )
test( '95+5-4 m', { '95', 'm', ['+'] = '5', ['−'] = '4' } )
test( '29.7 x 21 cm', { '29.7', 'cm', ['×'] = '21' } )
test( '50x25x3 m', { '50', 'm', ['×'] = '25', ['××'] = '3' } )
test( '[[Kilojoule|kJ]] [[Mole (unité)|mol]]-1', { false, '[[Kilojoule|kJ]]', '', '[[Mole (unité)|mol]]', '-1' } )
test( 'hab./km2', { false, 'hab.', '', '/km', '2' } )
test( 'fl oz', { false, 'fl oz' } )
test( 'fl. oz.', { false, 'fl. oz.' } )
test( 'fl.oz.', { false, 'fl.oz.' } )
test( '1.266,865,3 e17 m3s−2', { '1.266,865,3', 'm', '3', 's', '-2', e = "17" } )
test( '2.518 021 002… eV', { '2.518 021 002…', 'eV' } )
test( '2 1/2 lb', { '2', 'lb', fraction = '1/2' } )
test( '2 ½ lb', { '2', 'lb', fraction = '1/2' } )
test( '1/2 lb', { '', 'lb', fraction = '1/2' } )
test( '1/2', { '', fraction = '1/2' } )
test( '½', { '', fraction = '1/2' } )
test( '1 / 2 lb', { '1', 'lb', ['/'] = '2' } )
test( '(6~10)', { '(6~10)' } )
test( '? m', { false, 'm', prefix = '?' } )
test( '2 €', { '2', '€' } )
test( '€', { false, '€' } )
test( '+1.23 m', { '+1.23', 'm' } )
test( '~2 m', { '2', 'm', prefix = '~' } )
test( '~ 2 m', { '2', 'm', prefix = '~ ' } )
test( '1.23 « m »', { '1.23', '«','', 'm','', '»' } )
test( '« m »', { false, '«','', 'm','', '»' } )
test( '3 km/€', { '3', 'km', '', '/€' } )
test( '> 2 km', { '2', 'km', prefix = '> ' } )
test( '>2 km', { '2', 'km', prefix = '>' } )
test( '1.23(4) eV', { '1.23(4)', 'eV' } )
test( '(1,234 ±0,45) mas/a', { '1,234', 'mas', '', '/a', ['±']='0,45)', prefix = '(' } )
test( 'env. 238 km', { '238', 'km', prefix = 'env. ' } )
test( 'env, 238 km', { '238', 'km', prefix = 'env, ' } )
test( 'essence : 238 km', { '238', 'km', prefix = 'essence : ' } )
test( 'moteur essence : 238 km', { '238', 'km', prefix = 'moteur essence : ' } )
test( 'env. : 238 km', { '238', 'km', prefix = 'env. : ' } )
test( "'''4000''' $", { "'''4000'''", '$' } )
test( '110 / 220 / 380 V', { '110', ['/'] = '220', ['//'] = '380' , 'V' } )
test( '4.4 l/100km', { '4.4', 'l', '', '/100km' } )
test( '300 mg / 24 h', { '300', 'mg', '', '/ 24 h' } )
end
function p:test07_nomUnit()
local function test( param, expected )
self:equals( param, Unit.nomUnit( param ), expected )
end
test( 'm', 'mètre' )
test( 'km', 'kilomètre' )
test( 'kilomètre', 'kilomètre' )
test( '100km', 'cent kilomètres' )
test( '24 h', 'vingt-quatre heures' )
end
function p:test08__unite()
end
p['test09_modèle_unité'] = function ( self )
self:preprocess_equals_many( '{{' .. template .. '|', '}}', {
{ '1', '1' },
{ '1234567', '1 234 567' },
{ '-1234567.89', '−1 234 567,89' },
{ '1.23456789|e=15', '1,234 567 89 × 10<sup>15</sup>' },
{ '1.234 567 89|e=15', '1,234 567 89 × 10<sup>15</sup>' },
{ '1.234,567,89|e=15', '1,234 567 89 × 10<sup>15</sup>' },
{ '10000|km', '10 000 <abbr class="abbr" title="kilomètre">km</abbr>' },
{ '10000|km/h', '<span title="2 777,78 m/s" style="cursor:help">10 000</span> <abbr class="abbr" title="kilomètre par heure">km/h</abbr>' },
{ '10000|km|2', '10 000 <abbr class="abbr" title="kilomètre carré">km<sup>2</sup></abbr>' },
{ '10000|km|3', '10 000 <abbr class="abbr" title="kilomètre cube">km<sup>3</sup></abbr>' },
{ '10000|kilomètres par heure', '<span title="2 777,78 m/s" style="cursor:help">10 000</span> kilomètres par heure' },
{ '10000|km||h|-1', '<span title="2 777,78 m/s" style="cursor:help">10 000</span> <abbr class="abbr" title="kilomètre par heure">km h<sup>−1</sup></abbr>' },
{ '10000|J|2|K|3|s|-1', '10 000 <abbr class="abbr" title="joule carré kelvin cube par seconde">J<sup>2</sup> K<sup>3</sup> s<sup>−1</sup></abbr>' },
{ '10000|J||kg||m|-2', '10 000 <abbr class="abbr" title="joule kilogramme par mètre carré">J kg m<sup>−2</sup></abbr>' },
{ '10 000|km', '10 000 <abbr class="abbr" title="kilomètre">km</abbr>' },
{ '10 000 km', '10 000 <abbr class="abbr" title="kilomètre">km</abbr>' },
{ '−40.234|°C', '<span title="−40,4 °F ou 232,9 K" style="cursor:help">−40,234</span> <abbr class="abbr" title="degré Celsius">°C</abbr>' },
{ '1|[[mètre carré|m{{exp|2}}]]', '1 [[mètre carré|m<sup>2</sup>]]' },
{ '1|[[mètre carré|m]]|2', '1 <abbr class="abbr" title="mètre carré">[[mètre carré|m]]<sup>2</sup></abbr>' },
{ '10{{exp|−1}}|m', '10<sup>−1</sup> <abbr class="abbr" title="mètre">m</abbr>' },
{ '|e=-1|m', '10<sup>−1</sup> <abbr class="abbr" title="mètre">m</abbr>' },
{ 'e=-1|m', '10<sup>−1</sup> <abbr class="abbr" title="mètre">m</abbr>' },
{ '55|à=56|cal', '<span title="230,451 1 J" style="cursor:help">55</span> à <span title="234,641 12 J" style="cursor:help">56</span> <abbr class="abbr" title="calorie">cal</abbr>' },
{ '100|±=9|mm', '100 ± 9 <abbr class="abbr" title="millimètre">mm</abbr>' },
{ '1.23|±=0.09|e=5|Bq', '(1,23 ± 0,09) × 10<sup>5</sup> <abbr class="abbr" title="becquerel">Bq</abbr>' },
{ '100|+=5|−=4|mm', '100<span class="nowrap"><span style="display:inline-block; padding-left:0.2em; vertical-align:top; line-height:1em; font-size:80%; text-align:left;">+5<br> −4</span></span> <abbr class="abbr" title="millimètre">mm</abbr>' },
{ '18.23|g||l|-1|M=36.46', '<span title="0,5 mol/l" style="cursor:help">18,23</span> <abbr class="abbr" title="gramme par litre">g l<sup>−1</sup></abbr>' },
{ '1.82|g||cm|-3|M=30.973762', '<span title="1 820 kg/m³ ou 1,701 855 × 10⁻⁵ m³/mol" style="cursor:help">1,82</span> <abbr class="abbr" title="gramme par centimètre cube">g cm<sup>−3</sup></abbr>' },
{ '1.23456789 e15', '1,234 567 89 × 10<sup>15</sup>' },
{ '-1.23456789 x10e-15', '−1,234 567 89 × 10<sup>−15</sup>' },
{ '10000 km/h', '<span title="2 777,78 m/s" style="cursor:help">10 000</span> <abbr class="abbr" title="kilomètre par heure">km/h</abbr>' },
{ '10000 km2', '10 000 <abbr class="abbr" title="kilomètre carré">km<sup>2</sup></abbr>' },
{ '10000 km²', '10 000 <abbr class="abbr" title="kilomètre carré">km<sup>2</sup></abbr>' },
{ '10000 m3', '10 000 <abbr class="abbr" title="mètre cube">m<sup>3</sup></abbr>' },
{ '10000 km h-1', '<span title="2 777,78 m/s" style="cursor:help">10 000</span> <abbr class="abbr" title="kilomètre par heure">km h<sup>−1</sup></abbr>' },
{ '10 000 J2 K3 s-1', '10 000 <abbr class="abbr" title="joule carré kelvin cube par seconde">J<sup>2</sup> K<sup>3</sup> s<sup>−1</sup></abbr>' },
{ '−40,234 °C', '<span title="−40,4 °F ou 232,9 K" style="cursor:help">−40,234</span> <abbr class="abbr" title="degré Celsius">°C</abbr>' },
{ 'e-1 m', '10<sup>−1</sup> <abbr class="abbr" title="mètre">m</abbr>' },
{ 'x10e3 m', '10<sup>3</sup> <abbr class="abbr" title="mètre">m</abbr>' },
{ '55 ou 56 cal', '<span title="230,451 1 J" style="cursor:help">55</span> ou <span title="234,641 12 J" style="cursor:help">56</span> <abbr class="abbr" title="calorie">cal</abbr>' },
{ '100±9 mm', '100 ± 9 <abbr class="abbr" title="millimètre">mm</abbr>' },
{ '1.23 +/-0.09 e5 Bq', '(1,23 ± 0,09) × 10<sup>5</sup> <abbr class="abbr" title="becquerel">Bq</abbr>' },
{ '100+5-4 mm', '100<span class="nowrap"><span style="display:inline-block; padding-left:0.2em; vertical-align:top; line-height:1em; font-size:80%; text-align:left;">+5<br> −4</span></span> <abbr class="abbr" title="millimètre">mm</abbr>' },
{ '29.7 x 21 cm', '29,7 × 21 <abbr class="abbr" title="centimètre">cm</abbr>' },
{ '50x25x3 m', '50 × 25 × 3 <abbr class="abbr" title="mètre">m</abbr>' },
{ '123,45678 | décimales=1', '123,5' },
{ '123,45678 | décimales=-1', '120' },
{ '123,45678 | décimales=6', '123,456 780' },
{ '1,2345 e5 m3 | décimales=1', '1,2 × 10<sup>5</sup> <abbr class="abbr" title="mètre cube">m<sup>3</sup></abbr>' },
{ '1,2345 x10^5 m3 | décimales=6', '1,234 500 × 10<sup>5</sup> <abbr class="abbr" title="mètre cube">m<sup>3</sup></abbr>' },
{ '2.518 021 002…|e=-8|W||m|-2', '2,518 021 002… × 10<sup>−8</sup> <abbr class="abbr" title="watt par mètre carré">W m<sup>−2</sup></abbr>' },
{ '1000|[[Paire de bases|bp]]||s|-1', '1 000 <abbr class="abbr" title="bp par seconde">[[Paire de bases|bp]] s<sup>−1</sup></abbr>' },
{ '10{{exp|34}}|cm|-2|s|-1', '10<sup>34</sup> <abbr class="abbr" title="par centimètre carré seconde">cm<sup>−2</sup> s<sup>−1</sup></abbr>' },
{ '-61.9|[[Kilojoule|kJ]]||[[Mole (unité)|mol]]|-1', '<span title="−0,641 548 eV ou −14 794,471 4 cal(th)/mol" style="cursor:help">−61,9</span> <abbr class="abbr" title="kilojoule par mole">[[Kilojoule|kJ]] [[Mole (unité)|mol]]<sup>−1</sup></abbr>' },
{ '12.03 hab./km2', '12,03 <abbr class="abbr" title="habitant par kilomètre carré">hab./km<sup>2</sup></abbr>' },
{ '320 / 270 km/h', '<span title="88,888 96 m/s" style="cursor:help">320</span> / <span title="75,000 06 m/s" style="cursor:help">270</span> <abbr class="abbr" title="kilomètre par heure">km/h</abbr>' },
{ '5|chrétiens orthodoxes', '5 chrétiens orthodoxes' },
{ '5 chrétiens orthodoxes', '5 chrétiens orthodoxes' },
{ '110 ; 220 ; 380 V', '110 / 220 / 380 <abbr class="abbr" title="volt">V</abbr>' },
{ '', '' },
})
end
return p