Add test cases for digit grouping (commafy) in Polish
authorBartosz Dziewoński <matma.rex@gmail.com>
Tue, 10 Oct 2017 20:36:31 +0000 (22:36 +0200)
committerBartosz Dziewoński <matma.rex@gmail.com>
Tue, 10 Oct 2017 20:52:11 +0000 (22:52 +0200)
According to the typographical convention, a thousands separator
should not be inserted in numbers that are four digits long (between
1000 and 9999), unlike in English where it's usually acceptable.
This logic is currently implemented in LanguagePl::commafy().

Bug: T177846
Change-Id: I6dbd8febcf59000067cdd7d3c11111f2f77f4e66

tests/phpunit/languages/classes/LanguagePlTest.php

index a6d0f2e..d7a0074 100644 (file)
@@ -74,4 +74,31 @@ class LanguagePlTest extends LanguageClassesTestCase {
                        [ 'other', 201 ],
                ];
        }
+
+       /**
+        * @covers LanguagePl::commafy()
+        * @dataProvider provideCommafyData
+        */
+       public function testCommafy( $number, $numbersWithCommas ) {
+               $this->assertEquals(
+                       $numbersWithCommas,
+                       $this->getLang()->commafy( $number ),
+                       "commafy('$number')"
+               );
+       }
+
+       public static function provideCommafyData() {
+               // Note that commafy() always uses English separators (',' and '.') instead of
+               // Polish (' ' and ','). There is another function that converts them later.
+               return [
+                       [ 1000, '1000' ],
+                       [ 10000, '10,000' ],
+                       [ 1000.0001, '1000.0001' ],
+                       [ 10000.0001, '10,000.0001' ],
+                       [ -1000, '-1000' ],
+                       [ -10000, '-10,000' ],
+                       [ -1000.0001, '-1000.0001' ],
+                       [ -10000.0001, '-10,000.0001' ],
+               ];
+       }
 }