Adding plural tests for more languages.
authorAmir E. Aharoni <amire80@users.mediawiki.org>
Wed, 1 Feb 2012 04:53:55 +0000 (04:53 +0000)
committerAmir E. Aharoni <amire80@users.mediawiki.org>
Wed, 1 Feb 2012 04:53:55 +0000 (04:53 +0000)
14 files changed:
tests/phpunit/languages/LanguageMtTest.php [new file with mode: 0644]
tests/phpunit/languages/LanguageNsoTest.php [new file with mode: 0644]
tests/phpunit/languages/LanguagePlTest.php [new file with mode: 0644]
tests/phpunit/languages/LanguageRuTest.php [new file with mode: 0644]
tests/phpunit/languages/LanguageSeTest.php [new file with mode: 0644]
tests/phpunit/languages/LanguageSgsTest.php [new file with mode: 0644]
tests/phpunit/languages/LanguageShTest.php [new file with mode: 0644]
tests/phpunit/languages/LanguageSkTest.php [new file with mode: 0644]
tests/phpunit/languages/LanguageSlTest.php [new file with mode: 0644]
tests/phpunit/languages/LanguageSmaTest.php [new file with mode: 0644]
tests/phpunit/languages/LanguageTiTest.php [new file with mode: 0644]
tests/phpunit/languages/LanguageTlTest.php [new file with mode: 0644]
tests/phpunit/languages/LanguageUkTest.php [new file with mode: 0644]
tests/phpunit/languages/LanguageWaTest.php [new file with mode: 0644]

diff --git a/tests/phpunit/languages/LanguageMtTest.php b/tests/phpunit/languages/LanguageMtTest.php
new file mode 100644 (file)
index 0000000..421bb38
--- /dev/null
@@ -0,0 +1,72 @@
+<?php
+/**
+ * @author Amir E. Aharoni
+ * @copyright Copyright © 2012, Amir E. Aharoni
+ * @file
+ */
+
+/** Tests for MediaWiki languages/classes/LanguageMt.php */
+class LanguageMtTest extends MediaWikiTestCase {
+       private $lang;
+
+       function setUp() {
+               $this->lang = Language::factory( 'mt' );
+       }
+       function tearDown() {
+               unset( $this->lang );
+       }
+
+       /** @dataProvider providerPluralAllForms */
+       function testPluralAllForms( $result, $value ) {
+               $forms = array( 'one', 'few', 'many', 'other' );
+               $this->assertEquals( $result, $this->lang->convertPlural( $value, $forms ) );
+       }
+
+       function providerPluralAllForms() {
+               return array (
+                       array( 'few',   0 ),
+                       array( 'one',   1 ),
+                       array( 'few',   2 ),
+                       array( 'few',   10 ),
+                       array( 'many',  11 ),
+                       array( 'many',  19 ),
+                       array( 'other', 20 ),
+                       array( 'other', 99 ),
+                       array( 'other', 100 ),
+                       array( 'other', 101 ),
+                       array( 'few',   102 ),
+                       array( 'few',   110 ),
+                       array( 'many',  111 ),
+                       array( 'many',  119 ),
+                       array( 'other', 120 ),
+                       array( 'other', 201 ),
+               );
+       }
+
+       /** @dataProvider providerPluralTwoForms */
+       function testPluralTwoForms( $result, $value ) {
+               $forms = array( 'one', 'many' );
+               $this->assertEquals( $result, $this->lang->convertPlural( $value, $forms ) );
+       }
+
+       function providerPluralTwoForms() {
+               return array (
+                       array( 'many',  0 ),
+                       array( 'one',   1 ),
+                       array( 'many',  2 ),
+                       array( 'many',  10 ),
+                       array( 'many',  11 ),
+                       array( 'many',  19 ),
+                       array( 'many',  20 ),
+                       array( 'many',  99 ),
+                       array( 'many',  100 ),
+                       array( 'many',  101 ),
+                       array( 'many',  102 ),
+                       array( 'many',  110 ),
+                       array( 'many',  111 ),
+                       array( 'many',  119 ),
+                       array( 'many',  120 ),
+                       array( 'many',  201 ),
+               );
+       }
+}
diff --git a/tests/phpunit/languages/LanguageNsoTest.php b/tests/phpunit/languages/LanguageNsoTest.php
new file mode 100644 (file)
index 0000000..ea39362
--- /dev/null
@@ -0,0 +1,32 @@
+<?php
+/**
+ * @author Amir E. Aharoni
+ * @copyright Copyright © 2012, Amir E. Aharoni
+ * @file
+ */
+
+/** Tests for MediaWiki languages/classes/LanguageNso.php */
+class LanguageNsoTest extends MediaWikiTestCase {
+       private $lang;
+
+       function setUp() {
+               $this->lang = Language::factory( 'nso' );
+       }
+       function tearDown() {
+               unset( $this->lang );
+       }
+
+       /** @dataProvider providerPlural */
+       function testPlural( $result, $value ) {
+               $forms = array( 'one', 'many' );
+               $this->assertEquals( $result, $this->lang->convertPlural( $value, $forms ) );
+       }
+
+       function providerPlural() {
+               return array (
+                       array( 'one',  0 ),
+                       array( 'one',  1 ),
+                       array( 'many', 2 ),
+               );
+       }
+}
diff --git a/tests/phpunit/languages/LanguagePlTest.php b/tests/phpunit/languages/LanguagePlTest.php
new file mode 100644 (file)
index 0000000..e56d4b7
--- /dev/null
@@ -0,0 +1,72 @@
+<?php
+/**
+ * @author Amir E. Aharoni
+ * @copyright Copyright © 2012, Amir E. Aharoni
+ * @file
+ */
+
+/** Tests for MediaWiki languages/classes/LanguagePl.php */
+class LanguagePlTest extends MediaWikiTestCase {
+       private $lang;
+
+       function setUp() {
+               $this->lang = Language::factory( 'pl' );
+       }
+       function tearDown() {
+               unset( $this->lang );
+       }
+
+       /** @dataProvider providerPluralFourForms */
+       function testPluralFourForms( $result, $value ) {
+               $forms = array( 'one', 'few', 'many' );
+               $this->assertEquals( $result, $this->lang->convertPlural( $value, $forms ) );
+       }
+
+       function providerPluralFourForms() {
+               return array (
+                       array( 'many',  0 ),
+                       array( 'one',   1 ),
+                       array( 'few',   2 ),
+                       array( 'few',   3 ),
+                       array( 'few',   4 ),
+                       array( 'many',  5 ),
+                       array( 'many',  9 ),
+                       array( 'many',  10 ),
+                       array( 'many',  11 ),
+                       array( 'many',  21 ),
+                       array( 'few',   22 ),
+                       array( 'few',   23 ),
+                       array( 'few',   24 ),
+                       array( 'many',  25 ),
+                       array( 'many',  200 ),
+                       array( 'many',  201 ),
+               );
+       }
+
+       /** @dataProvider providerPlural */
+       function testPlural( $result, $value ) {
+               $forms = array( 'one', 'many' );
+               $this->assertEquals( $result, $this->lang->convertPlural( $value, $forms ) );
+       }
+
+       function providerPlural() {
+               return array (
+                       array( 'many',  0 ),
+                       array( 'one',   1 ),
+                       array( 'many',  2 ),
+                       array( 'many',  3 ),
+                       array( 'many',  4 ),
+                       array( 'many',  5 ),
+                       array( 'many',  9 ),
+                       array( 'many',  10 ),
+                       array( 'many',  11 ),
+                       array( 'many',  21 ),
+                       array( 'many',  22 ),
+                       array( 'many',  23 ),
+                       array( 'many',  24 ),
+                       array( 'many',  25 ),
+                       array( 'many',  200 ),
+                       array( 'many',  201 ),
+               );
+       }
+}
diff --git a/tests/phpunit/languages/LanguageRuTest.php b/tests/phpunit/languages/LanguageRuTest.php
new file mode 100644 (file)
index 0000000..7a1f193
--- /dev/null
@@ -0,0 +1,54 @@
+<?php
+/**
+ * @author Amir E. Aharoni
+ * based on LanguageBe_tarask.php
+ * @copyright Copyright © 2012, Amir E. Aharoni
+ * @file
+ */
+
+/** Tests for MediaWiki languages/classes/LanguageRu.php */
+class LanguageRuTest extends MediaWikiTestCase {
+       private $lang;
+
+       function setUp() {
+               $this->lang = Language::factory( 'ru' );
+       }
+       function tearDown() {
+               unset( $this->lang );
+       }
+
+       /** @dataProvider providePluralFourForms */
+       function testPluralFourForms( $result, $value ) {
+               $forms = array( 'one', 'few', 'many', 'other' );
+               $this->assertEquals( $result, $this->lang->convertPlural( $value, $forms ) );
+       }
+
+       function providePluralFourForms() {
+               return array (
+                       array( 'one', 1 ),
+                       array( 'many', 11 ),
+                       array( 'one', 91 ),
+                       array( 'one', 121 ),
+                       array( 'few', 2 ),
+                       array( 'few', 3 ),
+                       array( 'few', 4 ),
+                       array( 'few', 334 ),
+                       array( 'many', 5 ),
+                       array( 'many', 15 ),
+                       array( 'many', 120 ),
+               );
+       }
+       /** @dataProvider providePluralTwoForms */
+       function testPluralTwoForms( $result, $value ) {
+               $forms =  array( 'one', 'several' );
+               $this->assertEquals( $result, $this->lang->convertPlural( $value, $forms ) );
+       }
+       function providePluralTwoForms() {
+               return array (
+                       array( 'one', 1 ),
+                       array( 'several', 11 ),
+                       array( 'several', 91 ),
+                       array( 'several', 121 ),
+               );
+       }
+}
diff --git a/tests/phpunit/languages/LanguageSeTest.php b/tests/phpunit/languages/LanguageSeTest.php
new file mode 100644 (file)
index 0000000..065ec29
--- /dev/null
@@ -0,0 +1,48 @@
+<?php
+/**
+ * @author Amir E. Aharoni
+ * @copyright Copyright © 2012, Amir E. Aharoni
+ * @file
+ */
+
+/** Tests for MediaWiki languages/classes/LanguageSe.php */
+class LanguageSeTest extends MediaWikiTestCase {
+       private $lang;
+
+       function setUp() {
+               $this->lang = Language::factory( 'se' );
+       }
+       function tearDown() {
+               unset( $this->lang );
+       }
+
+       /** @dataProvider providerPluralThreeForms */
+       function testPluralThreeForms( $result, $value ) {
+               $forms = array( 'one', 'two', 'other' );
+               $this->assertEquals( $result, $this->lang->convertPlural( $value, $forms ) );
+       }
+
+       function providerPluralThreeForms() {
+               return array (
+                       array( 'other', 0 ),
+                       array( 'one',   1 ),
+                       array( 'two',   2 ),
+                       array( 'other', 3 ),
+               );
+       }
+
+       /** @dataProvider providerPlural */
+       function testPlural( $result, $value ) {
+               $forms = array( 'one', 'other' );
+               $this->assertEquals( $result, $this->lang->convertPlural( $value, $forms ) );
+       }
+
+       function providerPlural() {
+               return array (
+                       array( 'other', 0 ),
+                       array( 'one',   1 ),
+                       array( 'other', 2 ),
+                       array( 'other', 3 ),
+               );
+       }
+}
diff --git a/tests/phpunit/languages/LanguageSgsTest.php b/tests/phpunit/languages/LanguageSgsTest.php
new file mode 100644 (file)
index 0000000..931c82f
--- /dev/null
@@ -0,0 +1,66 @@
+<?php
+/**
+ * @author Amir E. Aharoni
+ * @copyright Copyright © 2012, Amir E. Aharoni
+ * @file
+ */
+
+/** Tests for MediaWiki languages/classes/LanguageSgs.php */
+class LanguageSgsTest extends MediaWikiTestCase {
+       private $lang;
+
+       function setUp() {
+               $this->lang = Language::factory( 'Sgs' );
+       }
+       function tearDown() {
+               unset( $this->lang );
+       }
+
+       /** @dataProvider providePluralAllForms */
+       function testPluralAllForms( $result, $value ) {
+               $forms = array( 'one', 'few', 'many', 'other' );
+               $this->assertEquals( $result, $this->lang->convertPlural( $value, $forms ) );
+       }
+
+       function providePluralAllForms() {
+               return array (
+                       array( 'many',  0 ),
+                       array( 'one',   1 ),
+                       array( 'few',   2 ),
+                       array( 'other', 3 ),
+                       array( 'many',  10 ),
+                       array( 'many',  11 ),
+                       array( 'many',  12 ),
+                       array( 'many',  19 ),
+                       array( 'other', 20 ),
+                       array( 'many',  100 ),
+                       array( 'one',   101 ),
+                       array( 'many',  111 ),
+                       array( 'many',  112 ),
+               );
+       }
+
+       /** @dataProvider providePluralTwoForms */
+       function testPluralTwoForms( $result, $value ) {
+               $forms =  array( 'one', 'other' );
+               $this->assertEquals( $result, $this->lang->convertPlural( $value, $forms ) );
+       }
+
+       function providePluralTwoForms() {
+               return array (
+                       array( 'other', 0 ),
+                       array( 'one',   1 ),
+                       array( 'other', 2 ),
+                       array( 'other', 3 ),
+                       array( 'other', 10 ),
+                       array( 'other', 11 ),
+                       array( 'other', 12 ),
+                       array( 'other', 19 ),
+                       array( 'other', 20 ),
+                       array( 'other', 100 ),
+                       array( 'one',   101 ),
+                       array( 'other', 111 ),
+                       array( 'other', 112 ),
+               );
+       }
+}
diff --git a/tests/phpunit/languages/LanguageShTest.php b/tests/phpunit/languages/LanguageShTest.php
new file mode 100644 (file)
index 0000000..b8169ae
--- /dev/null
@@ -0,0 +1,32 @@
+<?php
+/**
+ * @author Amir E. Aharoni
+ * @copyright Copyright © 2012, Amir E. Aharoni
+ * @file
+ */
+
+/** Tests for MediaWiki languages/classes/LanguageSh.php */
+class LanguageShTest extends MediaWikiTestCase {
+       private $lang;
+
+       function setUp() {
+               $this->lang = Language::factory( 'sh' );
+       }
+       function tearDown() {
+               unset( $this->lang );
+       }
+
+       /** @dataProvider providerPlural */
+       function testPlural( $result, $value ) {
+               $forms = array( 'one', 'many' );
+               $this->assertEquals( $result, $this->lang->convertPlural( $value, $forms ) );
+       }
+
+       function providerPlural() {
+               return array (
+                       array( 'many', 0 ),
+                       array( 'one',  1 ),
+                       array( 'many', 2 ),
+               );
+       }
+}
diff --git a/tests/phpunit/languages/LanguageSkTest.php b/tests/phpunit/languages/LanguageSkTest.php
new file mode 100644 (file)
index 0000000..4cfd840
--- /dev/null
@@ -0,0 +1,40 @@
+<?php
+/**
+ * @author Santhosh Thottingal
+ * @copyright Copyright © 2012, Amir E. Aharoni
+ * based on LanguageSkTest.php
+ * @file
+ */
+
+/** Tests for MediaWiki languages/classes/LanguageSk.php */
+class LanguageSkTest extends MediaWikiTestCase {
+       private $lang;
+
+       function setUp() {
+               $this->lang = Language::factory( 'sk' );
+       }
+       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( 'other', 0 ),
+                       array( 'one', 1 ),
+                       array( 'few', 2 ),
+                       array( 'few', 3 ),
+                       array( 'few', 4 ),
+                       array( 'other', 5 ),
+                       array( 'other', 11 ),
+                       array( 'other', 20 ),
+                       array( 'other', 25 ),
+                       array( 'other', 200 ),
+               );
+       }
+}
diff --git a/tests/phpunit/languages/LanguageSlTest.php b/tests/phpunit/languages/LanguageSlTest.php
new file mode 100644 (file)
index 0000000..c1f7569
--- /dev/null
@@ -0,0 +1,42 @@
+<?php
+/**
+ * @author Santhosh Thottingal
+ * @copyright Copyright © 2012, Amir E. Aharoni
+ * based on LanguageSkTest.php
+ * @file
+ */
+
+/** Tests for MediaWiki languages/classes/LanguageSl.php */
+class LanguageSlTest extends MediaWikiTestCase {
+       private $lang;
+
+       function setUp() {
+               $this->lang = Language::factory( 'sl' );
+       }
+       function tearDown() {
+               unset( $this->lang );
+       }
+
+       /** @dataProvider providerPlural */
+       function testPlural( $result, $value ) {
+               $forms = array( 'one', 'two', 'few', 'other', 'zero' );
+               $this->assertEquals( $result, $this->lang->convertPlural( $value, $forms ) );
+       }
+
+       function providerPlural() {
+               return array (
+                       array( 'zero',  0 ),
+                       array( 'one',   1 ),
+                       array( 'two',   2 ),
+                       array( 'few',   3 ),
+                       array( 'few',   4 ),
+                       array( 'other', 5 ),
+                       array( 'other', 99 ),
+                       array( 'other', 100 ),
+                       array( 'one',   101 ),
+                       array( 'two',   102 ),
+                       array( 'few',   103 ),
+                       array( 'one',   201 ),
+               );
+       }
+}
diff --git a/tests/phpunit/languages/LanguageSmaTest.php b/tests/phpunit/languages/LanguageSmaTest.php
new file mode 100644 (file)
index 0000000..b7e72e9
--- /dev/null
@@ -0,0 +1,48 @@
+<?php
+/**
+ * @author Amir E. Aharoni
+ * @copyright Copyright © 2012, Amir E. Aharoni
+ * @file
+ */
+
+/** Tests for MediaWiki languages/classes/LanguageSma.php */
+class LanguageSmaTest extends MediaWikiTestCase {
+       private $lang;
+
+       function setUp() {
+               $this->lang = Language::factory( 'sma' );
+       }
+       function tearDown() {
+               unset( $this->lang );
+       }
+
+       /** @dataProvider providerPluralThreeForms */
+       function testPluralThreeForms( $result, $value ) {
+               $forms = array( 'one', 'two', 'other' );
+               $this->assertEquals( $result, $this->lang->convertPlural( $value, $forms ) );
+       }
+
+       function providerPluralThreeForms() {
+               return array (
+                       array( 'other', 0 ),
+                       array( 'one',   1 ),
+                       array( 'two',   2 ),
+                       array( 'other', 3 ),
+               );
+       }
+
+       /** @dataProvider providerPlural */
+       function testPlural( $result, $value ) {
+               $forms = array( 'one', 'other' );
+               $this->assertEquals( $result, $this->lang->convertPlural( $value, $forms ) );
+       }
+
+       function providerPlural() {
+               return array (
+                       array( 'other', 0 ),
+                       array( 'one',   1 ),
+                       array( 'other', 2 ),
+                       array( 'other', 3 ),
+               );
+       }
+}
diff --git a/tests/phpunit/languages/LanguageTiTest.php b/tests/phpunit/languages/LanguageTiTest.php
new file mode 100644 (file)
index 0000000..4bfaa00
--- /dev/null
@@ -0,0 +1,32 @@
+<?php
+/**
+ * @author Amir E. Aharoni
+ * @copyright Copyright © 2012, Amir E. Aharoni
+ * @file
+ */
+
+/** Tests for MediaWiki languages/classes/LanguageTi.php */
+class LanguageTiTest extends MediaWikiTestCase {
+       private $lang;
+
+       function setUp() {
+               $this->lang = Language::factory( 'Ti' );
+       }
+       function tearDown() {
+               unset( $this->lang );
+       }
+
+       /** @dataProvider providerPlural */
+       function testPlural( $result, $value ) {
+               $forms = array( 'one', 'many' );
+               $this->assertEquals( $result, $this->lang->convertPlural( $value, $forms ) );
+       }
+
+       function providerPlural() {
+               return array (
+                       array( 'one',  0 ),
+                       array( 'one',  1 ),
+                       array( 'many', 2 ),
+               );
+       }
+}
diff --git a/tests/phpunit/languages/LanguageTlTest.php b/tests/phpunit/languages/LanguageTlTest.php
new file mode 100644 (file)
index 0000000..a1facd1
--- /dev/null
@@ -0,0 +1,32 @@
+<?php
+/**
+ * @author Amir E. Aharoni
+ * @copyright Copyright © 2012, Amir E. Aharoni
+ * @file
+ */
+
+/** Tests for MediaWiki languages/classes/LanguageTl.php */
+class LanguageTlTest extends MediaWikiTestCase {
+       private $lang;
+
+       function setUp() {
+               $this->lang = Language::factory( 'Tl' );
+       }
+       function tearDown() {
+               unset( $this->lang );
+       }
+
+       /** @dataProvider providerPlural */
+       function testPlural( $result, $value ) {
+               $forms = array( 'one', 'many' );
+               $this->assertEquals( $result, $this->lang->convertPlural( $value, $forms ) );
+       }
+
+       function providerPlural() {
+               return array (
+                       array( 'one',  0 ),
+                       array( 'one',  1 ),
+                       array( 'many', 2 ),
+               );
+       }
+}
diff --git a/tests/phpunit/languages/LanguageUkTest.php b/tests/phpunit/languages/LanguageUkTest.php
new file mode 100644 (file)
index 0000000..60fafb0
--- /dev/null
@@ -0,0 +1,54 @@
+<?php
+/**
+ * @author Amir E. Aharoni
+ * based on LanguageBe_tarask.php
+ * @copyright Copyright © 2012, Amir E. Aharoni
+ * @file
+ */
+
+/** Tests for MediaWiki languages/classes/LanguageUk.php */
+class LanguageUkTest extends MediaWikiTestCase {
+       private $lang;
+
+       function setUp() {
+               $this->lang = Language::factory( 'Uk' );
+       }
+       function tearDown() {
+               unset( $this->lang );
+       }
+
+       /** @dataProvider providePluralFourForms */
+       function testPluralFourForms( $result, $value ) {
+               $forms = array( 'one', 'few', 'many', 'other' );
+               $this->assertEquals( $result, $this->lang->convertPlural( $value, $forms ) );
+       }
+
+       function providePluralFourForms() {
+               return array (
+                       array( 'one', 1 ),
+                       array( 'many', 11 ),
+                       array( 'one', 91 ),
+                       array( 'one', 121 ),
+                       array( 'few', 2 ),
+                       array( 'few', 3 ),
+                       array( 'few', 4 ),
+                       array( 'few', 334 ),
+                       array( 'many', 5 ),
+                       array( 'many', 15 ),
+                       array( 'many', 120 ),
+               );
+       }
+       /** @dataProvider providePluralTwoForms */
+       function testPluralTwoForms( $result, $value ) {
+               $forms = array( 'one', 'several' );
+               $this->assertEquals( $result, $this->lang->convertPlural( $value, $forms ) );
+       }
+       function providePluralTwoForms() {
+               return array (
+                       array( 'one', 1 ),
+                       array( 'several', 11 ),
+                       array( 'several', 91 ),
+                       array( 'several', 121 ),
+               );
+       }
+}
diff --git a/tests/phpunit/languages/LanguageWaTest.php b/tests/phpunit/languages/LanguageWaTest.php
new file mode 100644 (file)
index 0000000..172f19b
--- /dev/null
@@ -0,0 +1,32 @@
+<?php
+/**
+ * @author Amir E. Aharoni
+ * @copyright Copyright © 2012, Amir E. Aharoni
+ * @file
+ */
+
+/** Tests for MediaWiki languages/classes/LanguageWa.php */
+class LanguageWaTest extends MediaWikiTestCase {
+       private $lang;
+
+       function setUp() {
+               $this->lang = Language::factory( 'Wa' );
+       }
+       function tearDown() {
+               unset( $this->lang );
+       }
+
+       /** @dataProvider providerPlural */
+       function testPlural( $result, $value ) {
+               $forms = array( 'one', 'many' );
+               $this->assertEquals( $result, $this->lang->convertPlural( $value, $forms ) );
+       }
+
+       function providerPlural() {
+               return array (
+                       array( 'one',  0 ),
+                       array( 'one',  1 ),
+                       array( 'many', 2 ),
+               );
+       }
+}