Esempio n. 1
0
 def test_applier_form (self):
     a = BaseCharacter(self.bfm, 'a')
     cluster1 = BaseCluster(self.bfm, base_character=a)
     cluster1_form = '{0}{1}{2}{3}{3}'.format(AFM, BNFM, HAS_FEATURE,
                                              NOT_HAS_FEATURE)
     self.optional.append(cluster1)
     expected = '({})?'.format(cluster1_form)
     self.assertEqual(self.optional.applier_form, expected)
     self.optional.match_multiple = True
     expected = '({})*'.format(cluster1_form)
     self.assertEqual(self.optional.applier_form, expected)
     voiced = BaseFeature(self.bfm, 'voiced')
     feature_set = BaseFeatureSet(self.bfm)
     feature_set.set(voiced, HAS_FEATURE)
     feature_set_form = '{0}{1}{2}{2}{3}'.format(
         AFM, BNFM, INAPPLICABLE_FEATURE, HAS_FEATURE)
     self.optional.append(feature_set)
     expected = '({}{})*'.format(cluster1_form, feature_set_form)
     self.assertEqual(self.optional.applier_form, expected)
Esempio n. 2
0
 def test_illegal_append (self):
     feature_set = BaseFeatureSet(self.bfm)
     self.optional.append(feature_set)
     optional = Optional(self.bfm)
     self.assertRaises(IllegalArgumentError, optional.append, self.optional)
     group = Group(self.bfm, 1)
     self.assertRaises(IllegalArgumentError, optional.append, group)
     bfm2_configuration = '''
     [Base Features] anterior consonantal voiced
     [Base Characters] a: anterior'''
     bfm2 = BinaryFeaturesModelParser().parse(bfm2_configuration)
     a = BaseCharacter(bfm2, 'a')
     cluster = BaseCluster(bfm2, base_character=a)
     self.assertRaises(MismatchedModelsError, self.optional.append, cluster)
Esempio n. 3
0
 def test_normalised_form (self):
     bfs = BaseFeatureSet(self.bfm)
     nf1 = NormalisedForm('{0}{1}{1}{1}{1}{1}'.format(
             BNFM, INAPPLICABLE_FEATURE))
     self.assertEqual(bfs.normalised_form, nf1)
     bfs.set(self.anterior, HAS_FEATURE)
     nf2 = NormalisedForm('{0}{1}{2}{2}{2}{2}'.format(
             BNFM, HAS_FEATURE, INAPPLICABLE_FEATURE))
     self.assertEqual(bfs.normalised_form, nf2)
     bfs.set(self.long, NOT_HAS_FEATURE)
     nf3 = NormalisedForm('{0}{1}{2}{2}{3}{2}'.format(
             BNFM, HAS_FEATURE, INAPPLICABLE_FEATURE, NOT_HAS_FEATURE))
     self.assertEqual(bfs.normalised_form, nf3)
     bfs.set(self.anterior, None)
     nf4 = NormalisedForm('{0}{2}{2}{2}{3}{2}'.format(
             BNFM, HAS_FEATURE, INAPPLICABLE_FEATURE, NOT_HAS_FEATURE))
     self.assertEqual(bfs.normalised_form, nf4)
Esempio n. 4
0
 def test_applier_form (self):
     bfs = BaseFeatureSet(self.bfm)
     af1 = '{0}{1}{2}{2}{2}{2}{2}'.format(AFM, BNFM, INAPPLICABLE_FEATURE)
     self.assertEqual(bfs.applier_form, af1)
     bfs.set(self.anterior, HAS_FEATURE)
     af2 = '{0}{1}{2}{3}{3}{3}{3}'.format(AFM, BNFM, HAS_FEATURE,
                                          INAPPLICABLE_FEATURE)
     self.assertEqual(bfs.applier_form, af2)
     bfs.set(self.long, NOT_HAS_FEATURE)
     af3 = '{0}{1}{2}{3}{3}{4}{3}'.format(AFM, BNFM, HAS_FEATURE,
                                          INAPPLICABLE_FEATURE,
                                          NOT_HAS_FEATURE)
     self.assertEqual(bfs.applier_form, af3)
     bfs.set(self.anterior, None)
     af4 = '{0}{1}{3}{3}{3}{4}{3}'.format(AFM, BNFM, HAS_FEATURE,
                                          INAPPLICABLE_FEATURE,
                                          NOT_HAS_FEATURE)
     self.assertEqual(bfs.applier_form, af4)
Esempio n. 5
0
 def test_applier_form(self):
     group = Group(self.bfm, 1)
     feature_set = BaseFeatureSet(self.bfm)
     feature_set_form = '{0}{1}{2}{2}{2}'.format(AFM, BNFM,
                                                 INAPPLICABLE_FEATURE)
     self.assertEqual(feature_set.applier_form, feature_set_form)
     group.append(feature_set)
     expected = '(?P<group1>{})'.format(feature_set_form)
     self.assertEqual(group.applier_form, expected)
     c = BaseCharacter(self.bfm, 'c')
     cluster = BaseCluster(self.bfm, base_character=c)
     optional = Optional(self.bfm)
     optional.append(cluster)
     optional_form = '({0}{1}{2}{3}{2})?'.format(AFM, BNFM, HAS_FEATURE,
                                                 NOT_HAS_FEATURE)
     self.assertEqual(optional.applier_form, optional_form)
     group.append(optional)
     expected = '(?P<group1>{}{})'.format(feature_set_form, optional_form)
     self.assertEqual(group.applier_form, expected)
Esempio n. 6
0
 def test_set_illegal (self):
     stressed = SuprasegmentalFeature(self.bfm, 'stressed')
     bfs = BaseFeatureSet(self.bfm)
     self.assertRaises(MismatchedTypesError, bfs.set, stressed, HAS_FEATURE)