wiki.techinc.nl/tests/phpunit/includes/languages/LanguageUkTest.php
Amir E. Aharoni 53a34c1742 Use yield consistently in grammar tests
Change-Id: I6285587e87d5c89f1723924d294eaf0884e91b7f
2022-06-03 14:52:53 +03:00

114 lines
2.6 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
/**
* @author Amir E. Aharoni
* @copyright Copyright © 2012, Amir E. Aharoni
* @file
*/
/**
* @group Language
*/
class LanguageUkTest extends LanguageClassesTestCase {
/**
* @dataProvider providePlural
* @covers Language::convertPlural
*/
public function testPlural( $result, $value ) {
$forms = [ 'one', 'few', 'many', 'other' ];
$this->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() {
yield 'Wikipedia genitive' => [
'Вікіпедії',
'Вікіпедія',
'genitive',
];
yield 'Wikispecies genitive' => [
'Віківидів',
'Віківиди',
'genitive',
];
yield 'Wikiquote genitive' => [
'Вікіцитат',
'Вікіцитати',
'genitive',
];
yield 'Wikibooks genitive' => [
'Вікіпідручника',
'Вікіпідручник',
'genitive',
];
yield 'Wikipedia accusative' => [
'Вікіпедію',
'Вікіпедія',
'accusative',
];
yield 'MediaWiki locative' => [
'у MediaWiki',
'MediaWiki',
'locative',
];
}
}