Merge "Add semantic tags to license info text"
[lhc/web/wiklou.git] / tests / phpunit / languages / classes / LanguageRuTest.php
1 <?php
2 /**
3 * @author Amir E. Aharoni
4 * based on LanguageBe_tarask.php
5 * @copyright Copyright © 2012, Amir E. Aharoni
6 * @file
7 */
8
9 class LanguageRuTest extends LanguageClassesTestCase {
10 /**
11 * @dataProvider providePlural
12 * @covers Language::convertPlural
13 */
14 public function testPlural( $result, $value ) {
15 $forms = [ 'one', 'few', 'many', 'other' ];
16 $this->assertEquals( $result, $this->getLang()->convertPlural( $value, $forms ) );
17 }
18
19 /**
20 * Test explicit plural forms - n=FormN forms
21 * @covers Language::convertPlural
22 */
23 public function testExplicitPlural() {
24 $forms = [ 'one', 'few', 'many', 'other', '12=dozen' ];
25 $this->assertEquals( 'dozen', $this->getLang()->convertPlural( 12, $forms ) );
26 $forms = [ 'one', 'few', 'many', '100=hundred', 'other', '12=dozen' ];
27 $this->assertEquals( 'hundred', $this->getLang()->convertPlural( 100, $forms ) );
28 }
29
30 /**
31 * @dataProvider providePlural
32 * @covers Language::getPluralRuleType
33 */
34 public function testGetPluralRuleType( $result, $value ) {
35 $this->assertEquals( $result, $this->getLang()->getPluralRuleType( $value ) );
36 }
37
38 public static function providePlural() {
39 return [
40 [ 'one', 1 ],
41 [ 'many', 11 ],
42 [ 'one', 91 ],
43 [ 'one', 121 ],
44 [ 'few', 2 ],
45 [ 'few', 3 ],
46 [ 'few', 4 ],
47 [ 'few', 334 ],
48 [ 'many', 5 ],
49 [ 'many', 15 ],
50 [ 'many', 120 ],
51 ];
52 }
53
54 /**
55 * @dataProvider providePluralTwoForms
56 * @covers Language::convertPlural
57 */
58 public function testPluralTwoForms( $result, $value ) {
59 $forms = [ '1=one', 'other' ];
60 $this->assertEquals( $result, $this->getLang()->convertPlural( $value, $forms ) );
61 }
62
63 public static function providePluralTwoForms() {
64 return [
65 [ 'one', 1 ],
66 [ 'other', 11 ],
67 [ 'other', 91 ],
68 [ 'other', 121 ],
69 ];
70 }
71
72 /**
73 * @dataProvider providerGrammar
74 * @covers Language::convertGrammar
75 */
76 public function testGrammar( $result, $word, $case ) {
77 $this->assertEquals( $result, $this->getLang()->convertGrammar( $word, $case ) );
78 }
79
80 public static function providerGrammar() {
81 return [
82 [
83 'Википедии',
84 'Википедия',
85 'genitive',
86 ],
87 [
88 'Викитеки',
89 'Викитека',
90 'genitive',
91 ],
92 [
93 'Викитеке',
94 'Викитека',
95 'prepositional',
96 ],
97 [
98 'Викисклада',
99 'Викисклад',
100 'genitive',
101 ],
102 [
103 'Викискладе',
104 'Викисклад',
105 'prepositional',
106 ],
107 [
108 'Викиданных',
109 'Викиданные',
110 'prepositional',
111 ],
112 [
113 'русского',
114 'русский',
115 'languagegen',
116 ],
117 [
118 'немецкого',
119 'немецкий',
120 'languagegen',
121 ],
122 [
123 'иврита',
124 'иврит',
125 'languagegen',
126 ],
127 [
128 'эсперанто',
129 'эсперанто',
130 'languagegen',
131 ],
132 [
133 'русском',
134 'русский',
135 'languageprep',
136 ],
137 [
138 'немецком',
139 'немецкий',
140 'languageprep',
141 ],
142 [
143 'идише',
144 'идиш',
145 'languageprep',
146 ],
147 [
148 'эсперанто',
149 'эсперанто',
150 'languageprep',
151 ],
152 [
153 'по-русски',
154 'русский',
155 'languageadverb',
156 ],
157 [
158 'по-немецки',
159 'немецкий',
160 'languageadverb',
161 ],
162 [
163 'на иврите',
164 'иврит',
165 'languageadverb',
166 ],
167 [
168 'на эсперанто',
169 'эсперанто',
170 'languageadverb',
171 ],
172 [
173 'на языке гуарани',
174 'гуарани',
175 'languageadverb',
176 ],
177 ];
178 }
179 }