From 675798b4422cb4e6e2c1ded08e9446ecc9db79af Mon Sep 17 00:00:00 2001 From: IRBorisov <8611739+IRBorisov@users.noreply.github.com> Date: Fri, 12 Apr 2024 19:47:45 +0300 Subject: [PATCH] Fix resolver bug --- VERSION | 2 +- cctext/resolver.py | 2 ++ tests/t_resolver.py | 15 +++++++++------ 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/VERSION b/VERSION index 6da28dd..8294c18 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.1.1 \ No newline at end of file +0.1.2 \ No newline at end of file diff --git a/cctext/resolver.py b/cctext/resolver.py index 922b30e..c24fce7 100644 --- a/cctext/resolver.py +++ b/cctext/resolver.py @@ -46,6 +46,7 @@ def resolve_syntactic(ref: SyntacticReference, index: int, references: list['Res if isinstance(references[index].ref, EntityReference): if offset == 1: master = references[index] + break else: offset -= 1 index += 1 @@ -55,6 +56,7 @@ def resolve_syntactic(ref: SyntacticReference, index: int, references: list['Res if isinstance(references[index].ref, EntityReference): if offset == -1: master = references[index] + break else: offset += 1 index -= 1 diff --git a/tests/t_resolver.py b/tests/t_resolver.py index 7e644c4..98f64ef 100644 --- a/tests/t_resolver.py +++ b/tests/t_resolver.py @@ -47,8 +47,11 @@ class TestResolver(unittest.TestCase): def test_resolve_syntactic(self): - ref = ResolvedReference(ref=EntityReference('X1', 'sing,datv'), resolved='человеку') - refs_list = [ref, ref, ref, ref] + ref1 = ResolvedReference(ref=EntityReference('X1', 'plur,nomn'), resolved='люди') + ref2 = ResolvedReference(ref=EntityReference('X1', 'sing,datv'), resolved='человеку') + ref3 = ResolvedReference(ref=EntityReference('X1', 'sing,loct'), resolved='человеке') + ref4 = ResolvedReference(ref=EntityReference('X1', 'plur,datv'), resolved='людям') + refs_list = [ref1, ref2, ref3, ref4] ref = SyntacticReference(text='умный', referral_offset=-1) self.assertEqual(resolve_syntactic(ref, 0, refs_list), '!Некорректное смещение: -1!') @@ -60,19 +63,19 @@ class TestResolver(unittest.TestCase): self.assertEqual(resolve_syntactic(ref, 0, refs_list), 'умному') ref = SyntacticReference(text='умный', referral_offset=2) - self.assertEqual(resolve_syntactic(ref, 0, refs_list), 'умному') + self.assertEqual(resolve_syntactic(ref, 0, refs_list), 'умном') ref = SyntacticReference(text='умный', referral_offset=3) - self.assertEqual(resolve_syntactic(ref, 0, refs_list), 'умному') + self.assertEqual(resolve_syntactic(ref, 0, refs_list), 'умным') ref = SyntacticReference(text='умный', referral_offset=-1) - self.assertEqual(resolve_syntactic(ref, 3, refs_list), 'умному') + self.assertEqual(resolve_syntactic(ref, 3, refs_list), 'умном') ref = SyntacticReference(text='умный', referral_offset=-2) self.assertEqual(resolve_syntactic(ref, 3, refs_list), 'умному') ref = SyntacticReference(text='умный', referral_offset=-3) - self.assertEqual(resolve_syntactic(ref, 3, refs_list), 'умному') + self.assertEqual(resolve_syntactic(ref, 3, refs_list), 'умные') def test_resolve_invalid(self):