Skip to content
Snippets Groups Projects
Commit 127d1290 authored by Shibin Das's avatar Shibin Das
Browse files

Issue #3496312 by d34dman: Implement Rule for "Three forms, special case for...

Issue #3496312 by d34dman: Implement Rule for "Three forms, special case for one and some numbers ending in 2, 3, or 4"
parent af991180
No related branches found
No related tags found
No related merge requests found
<?php
namespace Drupal\Tests\string_plural_form\Unit\StringPluralForm;
use Drupal\string_plural_form\Plugin\StringPluralForm\ThreeFormsSlavicType3;
use Drupal\Tests\UnitTestCase;
/**
* @coversDefaultClass \Drupal\string_plural_form\Plugin\StringPluralForm\ThreeFormsSlavicType3
* @group StringPluralFormPlugins
*/
class ThreeFormsSlavicType3Test extends UnitTestCase {
/**
* Tests \Drupal\string_plural_form\Plugin\StringPluralForm\ThreeFormsSlavicType3::getGettextNplurals()
*/
public function testGetGettextNplurals() {
$plugin = new ThreeFormsSlavicType3();
$this->assertEquals(3, $plugin->getGettextNplurals());
}
/**
* Tests \Drupal\string_plural_form\Plugin\StringPluralForm\ThreeFormsSlavicType3::getGettextNplurals()
*/
public function testGetGettextPlural() {
$plugin = new ThreeFormsSlavicType3();
$this->assertEquals("n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2", $plugin->getGettextPlural());
}
/**
* Tests \Drupal\string_plural_form\Plugin\StringPluralForm\ThreeFormsSlavicType3::getIndex()
*/
public function testGetIndex() {
$plugin = new ThreeFormsSlavicType3();
$expected_forms = [
0 => [1],
1 => [
2, 3, 4,
22, 23, 24,
32, 33, 34,
42, 43, 44,
52, 53, 54,
62, 63, 64,
72, 73, 74,
82, 83, 84,
92, 93, 94,
102, 103, 104,
122, 123, 124,
132, 133, 134,
142, 143, 144,
152, 153, 154,
162, 163, 164,
172, 173, 174,
182, 183, 184,
192, 193, 194,
],
2 => [
0, 5, 6, 7, 8, 9,
10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
20, 21, 25, 26, 27, 28, 29,
30, 31, 35, 36, 37, 38, 39,
40, 41, 45, 46, 47, 48, 49,
50, 51, 55, 56, 57, 58, 59,
60, 61, 65, 66, 67, 68, 69,
70, 71, 75, 76, 77, 78, 79,
80, 81, 85, 86, 87, 88, 89,
90, 91, 95, 96, 97, 98, 99,
100, 101, 105, 106, 107, 108, 109,
110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
120, 121, 125, 126, 127, 128, 129,
130, 131, 135, 136, 137, 138, 139,
140, 141, 145, 146, 147, 148, 149,
150, 151, 155, 156, 157, 158, 159,
160, 161, 165, 166, 167, 168, 169,
170, 171, 175, 176, 177, 178, 179,
180, 181, 185, 186, 187, 188, 189,
190, 191, 195, 196, 197, 198, 199,
],
];
foreach ($expected_forms as $index => $numbers) {
foreach ($numbers as $n) {
$this->assertEquals($index, $plugin->getIndex($n));
}
}
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment