function convertPlural( $count, $forms ) {
// Plural rules per
// http://unicode.org/repos/cldr-tmp/trunk/diff/supplemental/language_plural_rules.html#mo
+ // Identical to Romanian (ro).
if ( !count( $forms ) ) { return ''; }
$forms = $this->preConvertPlural( $forms, 3 );
- if ( $count == 1 ) {
+ if ( $count === 1 ) {
$index = 0;
- } elseif ( $count == 0 || ( $count % 100 > 0 && $count % 100 < 20 ) ) {
+ } elseif ( $count === 0 || ( $count % 100 > 0 && $count % 100 < 20 ) ) {
$index = 1;
} else {
$index = 2;
$forms = $this->preConvertPlural( $forms, 3 );
- if ( $count == 1 ) {
+ if ( $count === 1 ) {
$index = 0;
- } elseif ( $count == 0 || $count % 100 < 20 ) {
+ } elseif ( $count === 0 || ( $count % 100 > 0 && $count % 100 < 20 ) ) {
$index = 1;
} else {
$index = 2;
$this->assertEquals( $result, $this->lang->convertPlural( $value, $forms ) );
}
-
function providerPlural() {
return array (
- array( 'few', 0 ),
- array( 'one', 1 ),
- array( 'few', 2 ),
- array( 'few', 3 ),
- array( 'few', 19 ),
- array( 'few', 119 ),
+ array( 'few', 0 ),
+ array( 'one', 1 ),
+ array( 'few', 2 ),
+ array( 'few', 19 ),
array( 'other', 20 ),
- array( 'other', 20.123 ),
- array( 'other', 31 ),
+ array( 'other', 99 ),
+ array( 'other', 100 ),
+ array( 'few', 101 ),
+ array( 'few', 119 ),
+ array( 'other', 120 ),
array( 'other', 200 ),
- array( 'few', 201 ),
+ array( 'few', 201 ),
+ array( 'few', 219 ),
+ array( 'other', 220 ),
);
}
-
-
}
--- /dev/null
+<?php
+/**
+ * @author Amir E. Aharoni
+ * @copyright Copyright © 2012, Amir E. Aharoni
+ * @file
+ */
+
+/** Tests for MediaWiki languages/classes/LanguageRo.php */
+class LanguageRoTest extends MediaWikiTestCase {
+ private $lang;
+
+ function setUp() {
+ $this->lang = Language::factory( 'ro' );
+ }
+ function tearDown() {
+ unset( $this->lang );
+ }
+
+ /** @dataProvider providerPlural */
+ function testPlural( $result, $value ) {
+ $forms = array( 'one', 'few', 'other' );
+ $this->assertEquals( $result, $this->lang->convertPlural( $value, $forms ) );
+ }
+
+ function providerPlural() {
+ return array (
+ array( 'few', 0 ),
+ array( 'one', 1 ),
+ array( 'few', 2 ),
+ array( 'few', 19 ),
+ array( 'other', 20 ),
+ array( 'other', 99 ),
+ array( 'other', 100 ),
+ array( 'few', 101 ),
+ array( 'few', 119 ),
+ array( 'other', 120 ),
+ array( 'other', 200 ),
+ array( 'few', 201 ),
+ array( 'few', 219 ),
+ array( 'other', 220 ),
+ );
+ }
+}