def test_syllables_phones(self): word = Word('the', 0.05, 0.25, ['dh', 'iy'], ['dh'], 'DT') word._phones = [Phone('dh')] assert_equal(word.syllables(), 1) assert_equal(word.syllables(phonetic=False), 1) assert_equal(word.syllables(phonetic=True), 0)
class TestWord(object): def setup(self): self.word = Word('the', 0.05, 0.25, ['dh', 'iy'], ['dh'], 'DT') self.empty_word = Word('uh', 0.25, 0.40) def test_word(self): assert_equal(self.word.orthography, 'the') assert_equal(self.word.beg, 0.05) assert_equal(self.word.end, 0.25) assert_equal(self.word.phonemic, ['dh', 'iy']) assert_equal(self.word.phonetic, ['dh']) assert_equal(self.word.pos, 'DT') assert_equal(self.word.dur, 0.25 - 0.05) assert_is_none(self.word.phones) def test_empty_word(self): assert_equal(self.empty_word.orthography, 'uh') assert_equal(self.empty_word.beg, 0.25) assert_equal(self.empty_word.end, 0.40) assert_is_none(self.empty_word.phonemic) assert_is_none(self.empty_word.phonetic) assert_is_none(self.empty_word.pos) assert_is_none(self.empty_word.phones) assert_equal(self.empty_word.dur, 0.40 - 0.25) @raises(TypeError) def test_missing_word(self): word = Word() def test_syllables(self): assert_equal(self.word.syllables(), 1) assert_equal(self.word.syllables(phonetic=False), 1) assert_equal(self.word.syllables(phonetic=True), 0) assert_is_none(self.empty_word.syllables()) assert_is_none(self.empty_word.syllables(False)) assert_is_none(self.empty_word.syllables(True)) @raises(AttributeError) def test_readonly_orthography(self): self.word.orthography = 'an' @raises(AttributeError) def test_readonly_beg(self): self.word.beg = 0.0 @raises(AttributeError) def test_readonly_end(self): self.word.end = 1.0 @raises(AttributeError) def test_readonly_dur(self): self.word.dur = 1.0 @raises(AttributeError) def test_readonly_phonemic(self): self.word.phonemic = ['uh', 'n'] @raises(AttributeError) def test_readonly_phonetic(self): self.word.phonetic = ['en'] @raises(AttributeError) def test_readonly_pos(self): self.word.pos = 'DT' def test_phones_setter(self): assert_false(self.word.misaligned) phone_th = Phone('th') phone_dh = Phone('dh') self.word._phones = [phone_th] assert_in(phone_th, self.word.phones) assert_true(self.word.misaligned) self.word._phones = [phone_dh] assert_in(phone_dh, self.word.phones) assert_false(self.word.misaligned) self.word._phones = [] assert_true(self.word.misaligned) def test_misaligned(self): misaligned_word = Word('', 0.50, 0.25) assert_true(misaligned_word.misaligned) phone_dh = Phone('dh') misaligned_word._phones = [phone_dh] assert_true(misaligned_word.misaligned) def test_misaligned_zero(self): zero_word = Word('', 0.40, 0.40) assert_false(zero_word.misaligned) def test_repr(self): assert_equal(repr(self.word), "Word('the', 0.05, 0.25, ['dh', 'iy'], ['dh'], 'DT')") def test_str(self): assert_equal(str(self.word), '<Word "the" at 0.05>')