Exemple #1
0
 def test_get_gloss_tier_gloss_tier_absent(self):
     """Test get_gloss_tier with utt not containing a gloss_tier."""
     session_str = ('*CHI:\t‹wâu nîyi› . 1198552_1209903\n%pho:\t‹wo ni›'
                    '\n%mod:\t‹ˈwo *›\n%eng:\tegg me\n%xactmor:\t[wo ni]\n'
                    '%xmortyp:\t[ni pro]\n%xtarmor:\t[wo *]\n@End')
     reader = CreeReader(io.StringIO(session_str))
     reader.load_next_record()
     actual_output = reader.get_gloss_tier()
     desired_output = ''
     self.assertEqual(actual_output, desired_output)
Exemple #2
0
 def test_get_morpheme_language_english(self):
     """Test get_morpheme_language with english mopheme."""
     seg = 'fly'
     gloss = 'Eng'
     pos = 'V'
     actual_output = CreeReader.get_morpheme_language(seg, gloss, pos)
     desired_output = 'English'
     self.assertEqual(actual_output, desired_output)
Exemple #3
0
 def test_get_morpheme_language_cree(self):
     """Test get_morpheme_language with (pseudo-)cree morpheme."""
     seg = 'hem'
     gloss = '1sg'
     pos = 'V'
     actual_output = CreeReader.get_morpheme_language(seg, gloss, pos)
     desired_output = 'Cree'
     self.assertEqual(actual_output, desired_output)
Exemple #4
0
    def test_get_poses(self):
        """Test get_poses.

        Just one test because the method only calls get_morphemes.
        """
        seg_word = 'first~second~third'
        actual_output = CreeReader.get_glosses(seg_word)
        desired_output = ['first', 'second', 'third']
        self.assertEqual(actual_output, desired_output)
Exemple #5
0
    def test_get_segments(self):
        """Test get_segments.

        Just one test because the method only calls get_morphemes.
        """
        seg_word = 'first'
        actual_output = CreeReader.get_segments(seg_word)
        desired_output = ['first']
        self.assertEqual(actual_output, desired_output)
Exemple #6
0
    def test_parse_no_misalignments_single_word(self):
        """Test parse() with no misalignments."""
        session_str = ('*CHI:\tchair . 2883660_2884622\n'
                       '%pho:\t*\n'
                       '%mod:\t*\n'
                       '%eng:\tohhhhhh\n'
                       '@End')
        parser = CreeSessionParser(self.dummy_cha_path)
        parser.reader = CreeReader(io.StringIO(session_str))
        session = parser.parse()

        utt = session.utterances[0]

        utterance = [
            utt.source_id == 'dummy_0',
            utt.addressee is None,
            utt.utterance_raw == 'chair .',
            utt.utterance == 'chair',
            utt.translation == 'ohhhhhh',
            utt.morpheme_raw == '',
            utt.gloss_raw == '',
            utt.pos_raw == '',
            utt.sentence_type == 'default',
            utt.start_raw == '2883660',
            utt.end_raw == '2884622',
            utt.comment == '',
            utt.warning == ''
        ]

        w = utt.words[0]

        words = [
            w.word_language == '',
            w.word == 'chair',
            w.word_actual == 'chair',
            w.word_target == 'chair',
            w.warning == ''
        ]

        assert (False not in utterance
                and False not in words
                and len(utt.morphemes) == 0)
Exemple #7
0
    def test_parse_no_misalignments_multiple_words(self):
        """Test parse() with no misalignemnts."""
        session_str = ('*CHI:\t‹wâu nîyi› . 1198552_1209903\n'
                       '%pho:\t‹wo ni›\n'
                       '%mod:\t‹ˈwo *›\n'
                       '%eng:\tegg me\n'
                       '%xactmor:\t[wo ni]\n'
                       '%xmortyp:\t[ni pro]\n'
                       '%xtarmor:\t[wo *]\n'
                       '%xmormea:\t[egg 1]\n'
                       '@End')
        parser = CreeSessionParser(self.dummy_cha_path)
        parser.reader = CreeReader(io.StringIO(session_str))
        session = parser.parse()

        utt = session.utterances[0]

        utterance = [
            utt.source_id == 'dummy_0',
            utt.addressee is None,
            utt.utterance_raw == '‹wâu nîyi› .',
            utt.utterance == 'wâu nîyi',
            utt.translation == 'egg me',
            utt.morpheme_raw == '[wo *]',
            utt.gloss_raw == '[egg 1]',
            utt.pos_raw == '[ni pro]',
            utt.sentence_type == 'default',
            utt.start_raw == '1198552',
            utt.end_raw == '1209903',
            utt.comment == '',
            utt.warning == ''
        ]

        w1 = utt.words[0]
        w2 = utt.words[1]

        words = [
            w1.word_language == '',
            w1.word == 'wâu',
            w1.word_actual == 'wâu',
            w1.word_target == 'wâu',
            w1.warning == '',
            w2.word_language == '',
            w2.word == 'nîyi',
            w2.word_actual == 'nîyi',
            w2.word_target == 'nîyi',
            w2.warning == ''
        ]

        m1 = utt.morphemes[0][0]
        m2 = utt.morphemes[1][0]

        morphemes = [
            m1.gloss_raw == 'egg',
            m1.morpheme == 'wo',
            m1.morpheme_language == 'Cree',
            m1.pos_raw == 'ni',
            m2.gloss_raw == '1',
            m2.morpheme == '',
            m2.morpheme_language == 'Cree',
            m2.pos_raw == 'pro'
        ]

        assert (False not in utterance
                and False not in words
                and False not in morphemes)
Exemple #8
0
 def get_reader(session_file):
     return CreeReader(session_file)
Exemple #9
0
 def test_get_morphemes_multiple_tildes(self):
     """Test get_morphemes with morpheme-word containing 3 tildes."""
     morph_word = 'first~second~third~fourth'
     actual_output = CreeReader.get_morphemes(morph_word)
     desired_output = ['first', 'second', 'third', 'fourth']
     self.assertEqual(actual_output, desired_output)
Exemple #10
0
 def test_get_morphemes_one_tilde(self):
     """Test get_morphemes with morpheme-word containing one tilde."""
     morph_word = 'first~second'
     actual_output = CreeReader.get_morphemes(morph_word)
     desired_output = ['first', 'second']
     self.assertEqual(actual_output, desired_output)
Exemple #11
0
 def test_get_main_morpheme(self):
     """Test get_main_morpheme. Should return 'segment'."""
     actual_output = CreeReader.get_main_morpheme()
     desired_output = 'segment'
     self.assertEqual(actual_output, desired_output)
Exemple #12
0
 def test_get_morphemes_empty_string(self):
     """Test get_morphemes with morpheme-word containing no tilde."""
     morph_word = ''
     actual_output = CreeReader.get_morphemes(morph_word)
     desired_output = []
     self.assertEqual(actual_output, desired_output)