123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185 |
- <?php
- namespace morphos\test\Russian;
- use morphos\NumeralGenerator;
- use morphos\Russian\Cases;
- use morphos\Russian\OrdinalNumeralGenerator;
- use PHPUnit\Framework\TestCase;
- class OrdinalNumeralTest extends TestCase
- {
- /**
- * @dataProvider numbersProvider
- */
- public function testGetCases($number, $gender, $case, $case2, $case3, $case4, $case5, $case6)
- {
- $this->assertEquals([
- Cases::IMENIT => $case,
- Cases::RODIT => $case2,
- Cases::DAT => $case3,
- Cases::VINIT => $case4,
- Cases::TVORIT => $case5,
- Cases::PREDLOJ => $case6,
- ], OrdinalNumeralGenerator::getCases($number, $gender));
- }
- public function numbersProvider()
- {
- return [
- [1, NumeralGenerator::MALE, 'первый', 'первого', 'первому', 'первый', 'первым', 'первом'],
- [1, NumeralGenerator::FEMALE, 'первая', 'первой', 'первой', 'первую', 'первой', 'первой'],
- [3, NumeralGenerator::MALE, 'третий', 'третьего', 'третьему', 'третьего', 'третьим', 'третьем'],
- [
- 13,
- NumeralGenerator::MALE,
- 'тринадцатый',
- 'тринадцатого',
- 'тринадцатому',
- 'тринадцатый',
- 'тринадцатым',
- 'тринадцатом',
- ],
- [
- 20,
- NumeralGenerator::NEUTER,
- 'двадцатое',
- 'двадцатого',
- 'двадцатому',
- 'двадцатое',
- 'двадцатым',
- 'двадцатом',
- ],
- [
- 40,
- NumeralGenerator::NEUTER,
- 'сороковое',
- 'сорокового',
- 'сороковому',
- 'сороковое',
- 'сороковым',
- 'сороковом',
- ],
- [
- 113,
- NumeralGenerator::MALE,
- 'сто тринадцатый',
- 'сто тринадцатого',
- 'сто тринадцатому',
- 'сто тринадцатый',
- 'сто тринадцатым',
- 'сто тринадцатом',
- ],
- [
- 201,
- NumeralGenerator::MALE,
- 'двести первый',
- 'двести первого',
- 'двести первому',
- 'двести первый',
- 'двести первым',
- 'двести первом',
- ],
- [
- 344,
- NumeralGenerator::MALE,
- 'триста сорок четвертый',
- 'триста сорок четвертого',
- 'триста сорок четвертому',
- 'триста сорок четвертый',
- 'триста сорок четвертым',
- 'триста сорок четвертом',
- ],
- [
- 1007,
- NumeralGenerator::MALE,
- 'тысяча седьмой',
- 'тысяча седьмого',
- 'тысяча седьмому',
- 'тысяча седьмой',
- 'тысяча седьмым',
- 'тысяча седьмом',
- ],
- [
- 1013,
- NumeralGenerator::MALE,
- 'тысяча тринадцатый',
- 'тысяча тринадцатого',
- 'тысяча тринадцатому',
- 'тысяча тринадцатый',
- 'тысяча тринадцатым',
- 'тысяча тринадцатом',
- ],
- [
- 3651,
- NumeralGenerator::MALE,
- 'три тысячи шестьсот пятьдесят первый',
- 'три тысячи шестьсот пятьдесят первого',
- 'три тысячи шестьсот пятьдесят первому',
- 'три тысячи шестьсот пятьдесят первый',
- 'три тысячи шестьсот пятьдесят первым',
- 'три тысячи шестьсот пятьдесят первом',
- ],
- [
- 9999,
- NumeralGenerator::MALE,
- 'девять тысяч девятьсот девяносто девятый',
- 'девять тысяч девятьсот девяносто девятого',
- 'девять тысяч девятьсот девяносто девятому',
- 'девять тысяч девятьсот девяносто девятый',
- 'девять тысяч девятьсот девяносто девятым',
- 'девять тысяч девятьсот девяносто девятом',
- ],
- [
- 27013,
- NumeralGenerator::MALE,
- 'двадцать семь тысяч тринадцатый',
- 'двадцать семь тысяч тринадцатого',
- 'двадцать семь тысяч тринадцатому',
- 'двадцать семь тысяч тринадцатый',
- 'двадцать семь тысяч тринадцатым',
- 'двадцать семь тысяч тринадцатом',
- ],
- [
- 1234567890,
- NumeralGenerator::MALE,
- 'один миллиард двести тридцать четыре миллиона пятьсот шестьдесят семь тысяч восемьсот девяностый',
- 'один миллиард двести тридцать четыре миллиона пятьсот шестьдесят семь тысяч восемьсот девяностого',
- 'один миллиард двести тридцать четыре миллиона пятьсот шестьдесят семь тысяч восемьсот девяностому',
- 'один миллиард двести тридцать четыре миллиона пятьсот шестьдесят семь тысяч восемьсот девяностый',
- 'один миллиард двести тридцать четыре миллиона пятьсот шестьдесят семь тысяч восемьсот девяностым',
- 'один миллиард двести тридцать четыре миллиона пятьсот шестьдесят семь тысяч восемьсот девяностом',
- ],
- [1000, NumeralGenerator::MALE, 'тысячный', 'тысячного', 'тысячному', 'тысячный', 'тысячным', 'тысячном'],
- [
- 1000000000,
- NumeralGenerator::MALE,
- 'миллиардный',
- 'миллиардного',
- 'миллиардному',
- 'миллиардный',
- 'миллиардным',
- 'миллиардном',
- ],
- [
- 1000000090,
- NumeralGenerator::MALE,
- 'миллиард девяностый',
- 'миллиард девяностого',
- 'миллиард девяностому',
- 'миллиард девяностый',
- 'миллиард девяностым',
- 'миллиард девяностом',
- ],
- ];
- }
- /**
- * @dataProvider numbersProvider()
- * @throws \Exception
- */
- public function testGetCase($number, $gender, $case, $case2)
- {
- $this->assertEquals($case2, OrdinalNumeralGenerator::getCase($number, Cases::RODIT, $gender));
- }
- }
|