Пример #1
0
 def test_group_mfn_a_bisyllable_proper_noun(self):
     self.assertEqual([
         'Зора', 'Зоре', 'Зори', 'Зору', 'Зоро', 'Зором', 'Зори', 'Зоре',
         'Зора', 'Зорама', 'Зоре', 'Зоре', 'Зорама', 'Зорама'
     ], mfn_a.inflect('Зора'))
     self.assertEqual([
         'Кина', 'Кине', 'Кини', 'Кину', 'Кино', 'Кином', 'Кини', 'Кине',
         'Кина', 'Кинама', 'Кине', 'Кине', 'Кинама', 'Кинама'
     ], mfn_a.inflect('Кина'))
     self.assertEqual([
         'Гана', 'Гане', 'Гани', 'Гану', 'Гано', 'Ганом', 'Гани', 'Гане',
         'Гана', 'Ганама', 'Гане', 'Гане', 'Ганама', 'Ганама'
     ], mfn_a.inflect('Гана'))
Пример #2
0
 def test_group_mfn_a_nepostojano_a(self):
     self.assertEqual([
         'девојка', 'девојке', 'девојки', 'девојку', 'девојко', 'девојком',
         'девојки', 'девојке', 'девојака', 'девојкама', 'девојке',
         'девојке', 'девојкама', 'девојкама'
     ], mfn_a.inflect('девојка'))
     self.assertEqual([
         'земља', 'земље', 'земљи', 'земљу', 'земљо', 'земљом', 'земљи',
         'земље', 'земаља', 'земљама', 'земље', 'земље', 'земљама',
         'земљама'
     ], mfn_a.inflect('земља'))
     self.assertEqual([
         'овца', 'овце', 'овци', 'овцу', 'овцо', 'овцом', 'овци', 'овце',
         'оваца', 'овцама', 'овце', 'овце', 'овцама', 'овцама'
     ], mfn_a.inflect('овца'))
Пример #3
0
 def test_group_mfn_a_multisyllable_proper_noun_exception(self):
     self.assertEqual([
         'Италија', 'Италије', 'Италији', 'Италију', 'Италијо', 'Италијом',
         'Италији', 'Италије', 'Италија', 'Италијама', 'Италије', 'Италије',
         'Италијама', 'Италијама'
     ], mfn_a.inflect('Италија'))
     self.assertEqual([
         'Шпанија', 'Шпаније', 'Шпанији', 'Шпанију', 'Шпанијо', 'Шпанијом',
         'Шпанији', 'Шпаније', 'Шпанија', 'Шпанијама', 'Шпаније', 'Шпаније',
         'Шпанијама', 'Шпанијама'
     ], mfn_a.inflect('Шпанија'))
     self.assertEqual([
         'Русија', 'Русије', 'Русији', 'Русију', 'Русијо', 'Русијом',
         'Русији', 'Русије', 'Русија', 'Русијама', 'Русије', 'Русије',
         'Русијама', 'Русијама'
     ], mfn_a.inflect('Русија'))
Пример #4
0
 def test_group_mfn_a_multisyllable_proper_noun(self):
     self.assertEqual([
         'Небојша', 'Небојше', 'Небојши', 'Небојшу', 'Небојша', 'Небојшом',
         'Небојши', 'Небојше', 'Небојша', 'Небојшама', 'Небојше', 'Небојше',
         'Небојшама', 'Небојшама'
     ], mfn_a.inflect('Небојша'))
     self.assertEqual([
         'Француска', 'Француске', 'Француски', 'Француску', 'Француска',
         'Француском', 'Француски', 'Француске', 'Францусака',
         'Францускама', 'Француске', 'Француске', 'Францускама',
         'Францускама'
     ], mfn_a.inflect('Француска'))
     self.assertEqual([
         'Немачка', 'Немачке', 'Немачки', 'Немачку', 'Немачка', 'Немачком',
         'Немачки', 'Немачке', 'Немачака', 'Немачкама', 'Немачке',
         'Немачке', 'Немачкама', 'Немачкама'
     ], mfn_a.inflect('Немачка'))
     self.assertEqual([
         'Грчка', 'Грчке', 'Грчки', 'Грчку', 'Грчка', 'Грчком', 'Грчки',
         'Грчке', 'Грчака', 'Грчкама', 'Грчке', 'Грчке', 'Грчкама',
         'Грчкама'
     ], mfn_a.inflect('Грчка'))
Пример #5
0
def inflect_noun(singular, options):
    """ Takes singular nominative of the noun and additional options.
        Returns an array with cases in singular followed by plural.
    """
    try:
        # Try exceptions list first.
        result = exceptions.return_exception(singular)
        if result != None:
            return result
        # Otherwise try to classify noun type and call appropriate handler.
        group = classify_noun(singular, options)
        if group == defs.DeclinationGroup.GROUP_MN_COE:
            print('MN_COE')
        elif group == defs.DeclinationGroup.GROUP_N_E_NT:
            return group_n_e_nt.inflect(singular, options)
        elif group == defs.DeclinationGroup.GROUP_MFN_A:
            return group_mfn_a.inflect(singular)
        else:
            return group_f_c.inflect(singular)
    except:
        # Let caller decide whether to bail or to continue.
        raise
Пример #6
0
 def test_group_mfn_a_ending_with_tnj_and_more(self):
     self.assertEqual([
         'претња', 'претње', 'претњи', 'претњу', 'претњо', 'претњом',
         'претњи', 'претње', 'претњи', 'претњама', 'претње', 'претње',
         'претњама', 'претњама'
     ], mfn_a.inflect('претња'))
Пример #7
0
 def test_group_mfn_a_ending_with_zd_and_more(self):
     self.assertEqual([
         'звезда', 'звезде', 'звезди', 'звезду', 'звездо', 'звездом',
         'звезди', 'звезде', 'звезда', 'звездама', 'звезде', 'звезде',
         'звездама', 'звездама'
     ], mfn_a.inflect('звезда'))
Пример #8
0
 def test_group_mfn_a_ordinary_m(self):
     self.assertEqual([
         'судија', 'судије', 'судији', 'судију', 'судијо', 'судијом',
         'судији', 'судије', 'судија', 'судијама', 'судије', 'судије',
         'судијама', 'судијама'
     ], mfn_a.inflect('судија'))
Пример #9
0
 def test_group_mfn_a_ending_with_ica(self):
     self.assertEqual([
         'учитељица', 'учитељице', 'учитељици', 'учитељицу', 'учитељице',
         'учитељицом', 'учитељици', 'учитељице', 'учитељица', 'учитељицама',
         'учитељице', 'учитељице', 'учитељицама', 'учитељицама'
     ], mfn_a.inflect('учитељица'))
Пример #10
0
 def test_group_mfn_a_ordinary_f(self):
     self.assertEqual([
         'жена', 'жене', 'жени', 'жену', 'жено', 'женом', 'жени', 'жене',
         'жена', 'женама', 'жене', 'жене', 'женама', 'женама'
     ], mfn_a.inflect('жена'))