mirror of
https://github.com/IRBorisov/cctext.git
synced 2025-06-25 21:20:36 +03:00
50 lines
1.9 KiB
Python
50 lines
1.9 KiB
Python
''' Unit tests: reference. '''
|
|
import unittest
|
|
|
|
from cctext import EntityReference, ReferenceType, SyntacticReference, parse_reference
|
|
|
|
|
|
class TestReferences(unittest.TestCase):
|
|
''' Test class for references. '''
|
|
|
|
|
|
def test_EntityReference(self):
|
|
''' Testing EntityReference basics. '''
|
|
ref = EntityReference('X1', 'sing,nomn')
|
|
self.assertEqual(ref.get_type(), ReferenceType.entity)
|
|
self.assertEqual(ref.to_text(), '@{X1|sing,nomn}')
|
|
|
|
|
|
def test_SyntacticReference(self):
|
|
''' Testing SyntacticReference basics. '''
|
|
ref = SyntacticReference(-1, 'черный')
|
|
self.assertEqual(ref.get_type(), ReferenceType.syntactic)
|
|
self.assertEqual(ref.to_text(), '@{-1|черный}')
|
|
|
|
|
|
def test_parse_reference_invalid(self):
|
|
''' Testing parsing reference invalid input. '''
|
|
self.assertIsNone(parse_reference(''))
|
|
self.assertIsNone(parse_reference('X1'))
|
|
self.assertIsNone(parse_reference('invalid'))
|
|
self.assertIsNone(parse_reference(' '))
|
|
self.assertIsNone(parse_reference('@{|}'))
|
|
self.assertIsNone(parse_reference('@{|черный}'))
|
|
self.assertIsNone(parse_reference('@{ | }'))
|
|
self.assertIsNone(parse_reference('@{-1| }'))
|
|
self.assertIsNone(parse_reference('@{1| }'))
|
|
self.assertIsNone(parse_reference('@{0|черный}'))
|
|
|
|
|
|
def test_parse_reference(self):
|
|
''' Testing parsing reference text. '''
|
|
ref = parse_reference('@{1| черный }')
|
|
self.assertIsNotNone(ref)
|
|
self.assertEqual(ref.to_text(), '@{1|черный}')
|
|
self.assertEqual(ref.get_type(), ReferenceType.syntactic)
|
|
|
|
ref = parse_reference('@{X1 | VERB, past, sing}')
|
|
self.assertIsNotNone(ref)
|
|
self.assertEqual(ref.to_text(), '@{X1|VERB,past,sing}')
|
|
self.assertEqual(ref.get_type(), ReferenceType.entity)
|