assertEquals( $result, $this->getLang()->convertPlural( $value, $forms ) ); } /** * Test explicit plural forms - n=FormN forms * @covers Language::convertPlural */ public function testExplicitPlural() { $forms = [ 'one', 'few', 'many', 'other', '12=dozen' ]; $this->assertEquals( 'dozen', $this->getLang()->convertPlural( 12, $forms ) ); $forms = [ 'one', 'few', 'many', '100=hundred', 'other', '12=dozen' ]; $this->assertEquals( 'hundred', $this->getLang()->convertPlural( 100, $forms ) ); } /** * @dataProvider providePlural * @covers Language::getPluralRuleType */ public function testGetPluralRuleType( $result, $value ) { $this->assertEquals( $result, $this->getLang()->getPluralRuleType( $value ) ); } public static function providePlural() { return [ [ 'one', 1 ], [ 'many', 11 ], [ 'one', 91 ], [ 'one', 121 ], [ 'few', 2 ], [ 'few', 3 ], [ 'few', 4 ], [ 'few', 334 ], [ 'many', 5 ], [ 'many', 15 ], [ 'many', 120 ], ]; } /** * @dataProvider providePluralTwoForms * @covers Language::convertPlural */ public function testPluralTwoForms( $result, $value ) { $forms = [ '1=one', 'other' ]; $this->assertEquals( $result, $this->getLang()->convertPlural( $value, $forms ) ); } public static function providePluralTwoForms() { return [ [ 'one', 1 ], [ 'other', 11 ], [ 'other', 91 ], [ 'other', 121 ], ]; } /** * @dataProvider providerGrammar * @covers Language::convertGrammar */ public function testGrammar( $result, $word, $case ) { $this->assertEquals( $result, $this->getLang()->convertGrammar( $word, $case ) ); } public static function providerGrammar() { return [ [ 'Вікіпедії', 'Вікіпедія', 'genitive', ], [ 'Віківидів', 'Віківиди', 'genitive', ], [ 'Вікіцитат', 'Вікіцитати', 'genitive', ], [ 'Вікіпідручника', 'Вікіпідручник', 'genitive', ], [ 'Вікіпедію', 'Вікіпедія', 'accusative', ], ]; } }