Merge "Chinese Conversion Table Update 2017-6"
[lhc/web/wiklou.git] / tests / phpunit / languages / classes / LanguageUkTest.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 /**
10 * @covers LanguageUk
11 */
12 class LanguageUkTest extends LanguageClassesTestCase {
13 /**
14 * @dataProvider providePlural
15 * @covers Language::convertPlural
16 */
17 public function testPlural( $result, $value ) {
18 $forms = [ 'one', 'few', 'many', 'other' ];
19 $this->assertEquals( $result, $this->getLang()->convertPlural( $value, $forms ) );
20 }
21
22 /**
23 * Test explicit plural forms - n=FormN forms
24 * @covers Language::convertPlural
25 */
26 public function testExplicitPlural() {
27 $forms = [ 'one', 'few', 'many', 'other', '12=dozen' ];
28 $this->assertEquals( 'dozen', $this->getLang()->convertPlural( 12, $forms ) );
29 $forms = [ 'one', 'few', 'many', '100=hundred', 'other', '12=dozen' ];
30 $this->assertEquals( 'hundred', $this->getLang()->convertPlural( 100, $forms ) );
31 }
32
33 /**
34 * @dataProvider providePlural
35 * @covers Language::getPluralRuleType
36 */
37 public function testGetPluralRuleType( $result, $value ) {
38 $this->assertEquals( $result, $this->getLang()->getPluralRuleType( $value ) );
39 }
40
41 public static function providePlural() {
42 return [
43 [ 'one', 1 ],
44 [ 'many', 11 ],
45 [ 'one', 91 ],
46 [ 'one', 121 ],
47 [ 'few', 2 ],
48 [ 'few', 3 ],
49 [ 'few', 4 ],
50 [ 'few', 334 ],
51 [ 'many', 5 ],
52 [ 'many', 15 ],
53 [ 'many', 120 ],
54 ];
55 }
56
57 /**
58 * @dataProvider providePluralTwoForms
59 * @covers Language::convertPlural
60 */
61 public function testPluralTwoForms( $result, $value ) {
62 $forms = [ '1=one', 'other' ];
63 $this->assertEquals( $result, $this->getLang()->convertPlural( $value, $forms ) );
64 }
65
66 public static function providePluralTwoForms() {
67 return [
68 [ 'one', 1 ],
69 [ 'other', 11 ],
70 [ 'other', 91 ],
71 [ 'other', 121 ],
72 ];
73 }
74
75 /**
76 * @dataProvider providerGrammar
77 * @covers Language::convertGrammar
78 */
79 public function testGrammar( $result, $word, $case ) {
80 $this->assertEquals( $result, $this->getLang()->convertGrammar( $word, $case ) );
81 }
82
83 public static function providerGrammar() {
84 return [
85 [
86 'Вікіпедії',
87 'Вікіпедія',
88 'genitive',
89 ],
90 [
91 'Віківидів',
92 'Віківиди',
93 'genitive',
94 ],
95 [
96 'Вікіцитат',
97 'Вікіцитати',
98 'genitive',
99 ],
100 [
101 'Вікіпідручника',
102 'Вікіпідручник',
103 'genitive',
104 ],
105 [
106 'Вікіпедію',
107 'Вікіпедія',
108 'accusative',
109 ],
110 ];
111 }
112 }