test_error_rate.py 1.8 KB
Newer Older
Y
yangyaming 已提交
1
# -*- coding: utf-8 -*-
Y
yangyaming 已提交
2 3 4 5 6
"""Test error rate."""
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function

Y
yangyaming 已提交
7 8 9 10 11
import unittest
import error_rate


class TestParse(unittest.TestCase):
Y
yangyaming 已提交
12
    def test_wer_1(self):
Y
yangyaming 已提交
13 14 15 16 17
        ref = 'i UM the PHONE IS i LEFT THE portable PHONE UPSTAIRS last night'
        hyp = 'i GOT IT TO the FULLEST i LOVE TO portable FROM OF STORES last night'
        word_error_rate = error_rate.wer(ref, hyp)
        self.assertTrue(abs(word_error_rate - 0.769230769231) < 1e-6)

Y
yangyaming 已提交
18 19 20 21 22 23 24 25
    def test_wer_2(self):
        ref = 'i UM the PHONE IS i LEFT THE portable PHONE UPSTAIRS last night'
        word_error_rate = error_rate.wer(ref, ref)
        self.assertEqual(word_error_rate, 0.0)

    def test_wer_3(self):
        ref = ' '
        hyp = 'Hypothesis sentence'
Y
yangyaming 已提交
26
        with self.assertRaises(ValueError):
Y
yangyaming 已提交
27 28 29
            word_error_rate = error_rate.wer(ref, hyp)

    def test_cer_1(self):
Y
yangyaming 已提交
30 31 32 33 34
        ref = 'werewolf'
        hyp = 'weae  wolf'
        char_error_rate = error_rate.cer(ref, hyp)
        self.assertTrue(abs(char_error_rate - 0.25) < 1e-6)

Y
yangyaming 已提交
35 36 37 38 39 40
    def test_cer_2(self):
        ref = 'werewolf'
        char_error_rate = error_rate.cer(ref, ref)
        self.assertEqual(char_error_rate, 0.0)

    def test_cer_3(self):
Y
yangyaming 已提交
41 42 43 44 45
        ref = u'我是中国人'
        hyp = u'我是 美洲人'
        char_error_rate = error_rate.cer(ref, hyp)
        self.assertTrue(abs(char_error_rate - 0.6) < 1e-6)

Y
yangyaming 已提交
46 47 48 49 50 51 52 53
    def test_cer_4(self):
        ref = u'我是中国人'
        char_error_rate = error_rate.cer(ref, ref)
        self.assertFalse(char_error_rate, 0.0)

    def test_cer_5(self):
        ref = ''
        hyp = 'Hypothesis'
Y
yangyaming 已提交
54
        with self.assertRaises(ValueError):
Y
yangyaming 已提交
55 56
            char_error_rate = error_rate.cer(ref, hyp)

Y
yangyaming 已提交
57 58 59

if __name__ == '__main__':
    unittest.main()