You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

78 lines
1.7 KiB
Python

# -*- coding: utf-8 -*-
"""
Unit tests for nltk.metrics.aline
"""
import unittest
from nltk.metrics import aline
class TestAline(unittest.TestCase):
"""
Test Aline algorithm for aligning phonetic sequences
"""
def test_aline(self):
result = aline.align('θin', 'tenwis')
expected = [
[('θ', 't'), ('i', 'e'), ('n', 'n'), ('-', 'w'), ('-', 'i'), ('-', 's')]
]
self.assertEqual(result, expected)
result = aline.align('jo', 'ʒə')
expected = [[('j', 'ʒ'), ('o', 'ə')]]
self.assertEqual(result, expected)
result = aline.align('pematesiweni', 'pematesewen')
expected = [
[
('p', 'p'),
('e', 'e'),
('m', 'm'),
('a', 'a'),
('t', 't'),
('e', 'e'),
('s', 's'),
('i', 'e'),
('w', 'w'),
('e', 'e'),
('n', 'n'),
('i', '-'),
]
]
self.assertEqual(result, expected)
result = aline.align('tuwθ', 'dentis')
expected = [
[
('t', 'd'),
('u', 'e'),
('w', '-'),
('-', 'n'),
('-', 't'),
('-', 'i'),
('θ', 's'),
]
]
self.assertEqual(result, expected)
def test_aline_delta(self):
"""
Test aline for computing the difference between two segments
"""
result = aline.delta('p', 'q')
expected = 20.0
self.assertEqual(result, expected)
result = aline.delta('a', 'A')
expected = 0.0
self.assertEqual(result, expected)