From 6b63b9940ebb41665bea586e51f68844b53d049e Mon Sep 17 00:00:00 2001 From: Cyprian Laskowski Date: Tue, 12 Oct 2021 17:44:55 +0200 Subject: [PATCH] Added support for translating msds or properties --- conversion_utils/jos_msds_and_properties.py | 6 ++++++ tests/test_jos_msd_to_properties.py | 3 +-- tests/test_jos_properties_to_msd.py | 3 +-- tests/test_jos_translate_msd.py | 18 ++++++++++++++++ tests/test_jos_translate_properties.py | 24 +++++++++++++++++++++ 5 files changed, 50 insertions(+), 4 deletions(-) create mode 100644 tests/test_jos_translate_msd.py create mode 100644 tests/test_jos_translate_properties.py diff --git a/conversion_utils/jos_msds_and_properties.py b/conversion_utils/jos_msds_and_properties.py index 6a1d8d2..e335f98 100644 --- a/conversion_utils/jos_msds_and_properties.py +++ b/conversion_utils/jos_msds_and_properties.py @@ -291,3 +291,9 @@ class Converter: i += 1 msd_code += position_map[position] return Msd(msd_code, language) + + def translate_msd(self, msd, language): + return self.properties_to_msd(self.msd_to_properties(msd, language), language) + + def translate_properties(self, properties, language): + return self.msd_to_properties(self.properties_to_msd(properties, language), language) diff --git a/tests/test_jos_msd_to_properties.py b/tests/test_jos_msd_to_properties.py index 98d2992..f2f9694 100644 --- a/tests/test_jos_msd_to_properties.py +++ b/tests/test_jos_msd_to_properties.py @@ -1,7 +1,6 @@ -import os.path import unittest -from conversion_utils.jos_msds_and_properties import SpecificationsParser, Converter, Msd +from conversion_utils.jos_msds_and_properties import Converter, Msd class JosMsdToPropertiesTestCase(unittest.TestCase): diff --git a/tests/test_jos_properties_to_msd.py b/tests/test_jos_properties_to_msd.py index b10883e..cb6230d 100644 --- a/tests/test_jos_properties_to_msd.py +++ b/tests/test_jos_properties_to_msd.py @@ -1,7 +1,6 @@ -import os.path import unittest -from conversion_utils.jos_msds_and_properties import SpecificationsParser, Converter, Properties +from conversion_utils.jos_msds_and_properties import Converter, Properties class JosPropertiesToMsdTestCase(unittest.TestCase): diff --git a/tests/test_jos_translate_msd.py b/tests/test_jos_translate_msd.py new file mode 100644 index 0000000..35b9860 --- /dev/null +++ b/tests/test_jos_translate_msd.py @@ -0,0 +1,18 @@ +import unittest + +from conversion_utils.jos_msds_and_properties import Converter, Msd + +class JosMsdToPropertiesTestCase(unittest.TestCase): + + def setUp(self): + self.converter = Converter() + + def test_en_sl(self): + msd_sl = self.converter.translate_msd(Msd('Ncfpd', 'en'), 'sl') + self.assertEqual(msd_sl.language, 'sl') + self.assertEqual(msd_sl.code, 'Sozmd') + + def test_sl_en(self): + msd_en = self.converter.translate_msd(Msd('Sozmd', 'sl'), 'en') + self.assertEqual(msd_en.language, 'en') + self.assertEqual(msd_en.code, 'Ncfpd') diff --git a/tests/test_jos_translate_properties.py b/tests/test_jos_translate_properties.py new file mode 100644 index 0000000..183855a --- /dev/null +++ b/tests/test_jos_translate_properties.py @@ -0,0 +1,24 @@ +import unittest + +from conversion_utils.jos_msds_and_properties import Converter, Properties + +class JosPropertiesToMsdTestCase(unittest.TestCase): + + def setUp(self): + self.converter = Converter() + + def test_en_sl(self): + properties_en = Properties('noun', {'type':'common', 'gender':'feminine'}, {'number':'dual', 'case':'dative'}, 'en') + properties_sl = self.converter.translate_properties(properties_en, 'sl') + self.assertEqual(properties_sl.category, 'samostalnik') + self.assertEqual(properties_sl.lexeme_feature_map, {'vrsta':'občno_ime', 'spol':'ženski'}) + self.assertEqual(properties_sl.form_feature_map, {'število':'dvojina', 'sklon':'dajalnik'}) + self.assertEqual(properties_sl.language, 'sl') + + def test_sl_en(self): + properties_sl = Properties('samostalnik', {'vrsta':'občno_ime', 'spol':'ženski'}, {'število':'dvojina', 'sklon':'dajalnik'}, 'sl') + properties_en = self.converter.translate_properties(properties_sl, 'en') + self.assertEqual(properties_en.category, 'noun') + self.assertEqual(properties_en.lexeme_feature_map, {'type':'common', 'gender':'feminine'}) + self.assertEqual(properties_en.form_feature_map, {'number':'dual', 'case':'dative'}) + self.assertEqual(properties_en.language, 'en')