Beispiel #1
0
 def testEq(self):
     assert spred('_dog_n_rel') == Pred.realpred(lemma='dog', pos='n')
     assert spred('_dog_n_rel') == '_dog_n_rel'
     assert '_dog_n_rel' == Pred.realpred(lemma='dog', pos='n')
     assert spred('"_dog_n_rel"') == spred("'_dog_n_rel")
     assert Pred.grammarpred('pron_rel') == 'pron_rel'
     assert Pred.string_or_grammar_pred('_dog_n_rel') != Pred.string_or_grammar_pred('dog_n_rel')
     assert (spred('_dog_n_rel') == None) == False
Beispiel #2
0
 def testEq(self):
     assert spred('_dog_n_rel') == Pred.realpred(lemma='dog', pos='n')
     assert spred('_dog_n_rel') == '_dog_n_rel'
     assert '_dog_n_rel' == Pred.realpred(lemma='dog', pos='n')
     assert spred('"_dog_n_rel"') == spred("'_dog_n_rel")
     assert Pred.abstract('pron_rel') == 'pron_rel'
     assert Pred.surface_or_abstract(
         '_dog_n_rel') != Pred.surface_or_abstract('dog_n_rel')
     assert (spred('_dog_n_rel') == None) == False
     assert spred('_dog_n_1_rel') == spred('_Dog_N_1_rel')
     assert spred('_dog_n_1_rel') == spred('_dog_n_1')
Beispiel #3
0
 def testRealPred(self):
     # basic, no sense arg
     p = Pred.realpred('dog', 'n')
     assert p.type == Pred.REALPRED
     assert p.string == '_dog_n_rel'
     assert p.lemma == 'dog'
     assert p.pos == 'n'
     assert p.sense == None
     assert p.short_form() == '_dog_n'
     # try with arg names, unicode, and sense
     p = Pred.realpred(lemma='犬', pos='n', sense='1')
     assert p.type == Pred.REALPRED
     assert p.string == '_犬_n_1_rel'
     assert p.lemma == '犬'
     assert p.pos == 'n'
     assert p.sense == '1'
     assert p.short_form() == '_犬_n_1'
     # in case sense is int, not str
     p = Pred.realpred('dog', 'n', 1)
     assert p.type == Pred.REALPRED
     assert p.string == '_dog_n_1_rel'
     assert p.lemma == 'dog'
     assert p.pos == 'n'
     assert p.sense == '1'
     assert p.short_form() == '_dog_n_1'
     with pytest.raises(TypeError): Pred.realpred(lemma='dog')
     with pytest.raises(TypeError): Pred.realpred(pos='n')
     repr(p)  # no error
Beispiel #4
0
def _decode_pred(elem):
    # <!ELEMENT pred (#PCDATA)>
    # <!ELEMENT spred (#PCDATA)>
    # <!ELEMENT realpred EMPTY>
    # <!ATTLIST realpred
    #           lemma CDATA #REQUIRED
    #           pos (v|n|j|r|p|q|c|x|u|a|s) #REQUIRED
    #           sense CDATA #IMPLIED >
    if elem.tag == 'pred':
        return Pred.abstract(elem.text)
    elif elem.tag == 'spred':
        return Pred.surface(elem.text)
    elif elem.tag == 'realpred':
        return Pred.realpred(elem.get('lemma'),
                             elem.get('pos') or None,
                             elem.get('sense'))
Beispiel #5
0
    def testRealPred(self):
        # basic, no sense arg
        p = Pred.realpred('dog', 'n')
        assert p.type == Pred.REALPRED
        assert p.string == '_dog_n_rel'
        assert p.lemma == 'dog'
        assert p.pos == 'n'
        assert p.sense == None
        assert p.short_form() == '_dog_n'
        # try with arg names, unicode, and sense
        p = Pred.realpred(lemma='犬', pos='n', sense='1')
        assert p.type == Pred.REALPRED
        assert p.string == '_犬_n_1_rel'
        assert p.lemma == '犬'
        assert p.pos == 'n'
        assert p.sense == '1'
        assert p.short_form() == '_犬_n_1'
        # in case sense is int, not str
        p = Pred.realpred('dog', 'n', 1)
        assert p.type == Pred.REALPRED
        assert p.string == '_dog_n_1_rel'
        assert p.lemma == 'dog'
        assert p.pos == 'n'
        assert p.sense == '1'
        assert p.short_form() == '_dog_n_1'
        # see https://github.com/delph-in/pydelphin/issues/129
        p = Pred.realpred('te', None, 'adjunct')
        assert p.type == Pred.REALPRED
        assert p.string == '_te_adjunct_rel'
        assert p.lemma == 'te'
        assert p.pos == None
        assert p.sense == 'adjunct'
        assert p.short_form() == '_te_adjunct'

        with pytest.raises(TypeError):
            Pred.realpred(lemma='dog')
        with pytest.raises(TypeError):
            Pred.realpred(pos='n')
        repr(p)  # no error