1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
QUnit.module( 'mediawiki.cldr', QUnit.newMwEnvironment() );
var pluralTestcases = {
/*
* Sample:
* "languagecode" : [
* [ number, [ "form1", "form2", ... ], "expected", "description" ]
* ];
*/
"en": [
[ 0, [ "one", "other" ], "other", "English plural test- 0 is other" ],
[ 1, [ "one", "other" ], "one", "English plural test- 1 is one" ]
],
"fa": [
[ 0, [ "one", "other" ], "other", "Persian plural test- 0 is other" ],
[ 1, [ "one", "other" ], "one", "Persian plural test- 1 is one" ],
[ 2, [ "one", "other" ], "other", "Persian plural test- 2 is other" ]
],
"fr": [
[ 0, [ "one", "other" ], "other", "French plural test- 0 is other" ],
[ 1, [ "one", "other" ], "one", "French plural test- 1 is one" ]
],
"hi": [
[ 0, [ "one", "other" ], "one", "Hindi plural test- 0 is one" ],
[ 1, [ "one", "other" ], "one", "Hindi plural test- 1 is one" ],
[ 2, [ "one", "other" ], "other", "Hindi plural test- 2 is other" ]
],
"he": [
[ 0, [ "one", "other" ], "other", "Hebrew plural test- 0 is other" ],
[ 1, [ "one", "other" ], "one", "Hebrew plural test- 1 is one" ],
[ 2, [ "one", "other" ], "other", "Hebrew plural test- 2 is other with 2 forms" ],
[ 2, [ "one", "dual", "other" ], "dual", "Hebrew plural test- 2 is dual with 3 forms" ]
],
"hu": [
[ 0, [ "one", "other" ], "other", "Hungarian plural test- 0 is other" ],
[ 1, [ "one", "other" ], "one", "Hungarian plural test- 1 is one" ],
[ 2, [ "one", "other" ], "other", "Hungarian plural test- 2 is other" ]
],
"ar": [
[ 0, [ "zero", "one", "two", "few", "many", "other" ], "zero", "Arabic plural test - 0 is zero" ],
[ 1, [ "zero", "one", "two", "few", "many", "other" ], "one", "Arabic plural test - 1 is one" ],
[ 2, [ "zero", "one", "two", "few", "many", "other" ], "two", "Arabic plural test - 2 is two" ],
[ 3, [ "zero", "one", "two", "few", "many", "other" ], "few", "Arabic plural test - 3 is few" ],
[ 9, [ "zero", "one", "two", "few", "many", "other" ], "few", "Arabic plural test - 9 is few" ],
[ "9", [ "zero", "one", "two", "few", "many", "other" ], "few", "Arabic plural test - 9 is few" ],
[ 110, [ "zero", "one", "two", "few", "many", "other" ], "few", "Arabic plural test - 110 is few" ],
[ 11, [ "zero", "one", "two", "few", "many", "other" ], "many", "Arabic plural test - 11 is many" ],
[ 15, [ "zero", "one", "two", "few", "many", "other" ], "many", "Arabic plural test - 15 is many" ],
[ 99, [ "zero", "one", "two", "few", "many", "other" ], "many", "Arabic plural test - 99 is many" ],
[ 9999, [ "zero", "one", "two", "few", "many", "other" ], "many", "Arabic plural test - 9999 is many" ],
[ 100, [ "zero", "one", "two", "few", "many", "other" ], "other", "Arabic plural test - 100 is other" ],
[ 102, [ "zero", "one", "two", "few", "many", "other" ], "other", "Arabic plural test - 102 is other" ],
[ 1000, [ "zero", "one", "two", "few", "many", "other" ], "other", "Arabic plural test - 1000 is other" ],
[ 1.7, [ "zero", "one", "two", "few", "many", "other" ], "other", "Arabic plural test - 1.7 is other" ]
]
};
function pluralTest( langCode, tests ) {
QUnit.test( 'Plural Test for ' + langCode, tests.length, function ( assert ) {
for ( var i = 0; i < tests.length; i++ ) {
assert.equal(
mw.language.convertPlural( tests[i][0], tests[i][1] ),
tests[i][2],
tests[i][3]
);
}
} );
}
$.each( pluralTestcases, function ( langCode, tests ) {
if ( langCode === mw.config.get( 'wgUserLanguage' ) ) {
pluralTest( langCode, tests );
}
} );
|