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)
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)
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)
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)
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)
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)
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)
def get_reader(session_file): return CreeReader(session_file)
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)
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)
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)
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)