File size: 1,340 Bytes
5610573 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | #!/usr/bin/env python3
from pocketsphinx import LogMath
import unittest
class TestLogMath(unittest.TestCase):
def assertLogEqual(self, a, b):
self.assertTrue(abs(a - b) < 200)
def test_logmath(self):
lmath = LogMath()
self.assertTrue(lmath is not None)
self.assertLogEqual(lmath.log(1e-150), -3454050)
self.assertAlmostEqual(lmath.exp(lmath.log(1e-150)), 1e-150)
self.assertAlmostEqual(lmath.exp(lmath.log(1e-48)), 1e-48)
self.assertLogEqual(lmath.log(42), 37378)
self.assertAlmostEqual(lmath.exp(lmath.log(42)), 42, 1)
print(
"log(1e-3 + 5e-3) = %d + %d = %d\n"
% (
lmath.log(1e-3),
lmath.log(5e-3),
lmath.add(lmath.log(1e-3), lmath.log(5e-3)),
)
)
print(
"log(1e-3 + 5e-3) = %e + %e = %e\n"
% (
lmath.exp(lmath.log(1e-3)),
lmath.exp(lmath.log(5e-3)),
lmath.exp(lmath.add(lmath.log(1e-3), lmath.log(5e-3))),
)
)
self.assertLogEqual(
lmath.add(lmath.log(1e-48), lmath.log(5e-48)), lmath.log(6e-48)
)
self.assertLogEqual(lmath.add(lmath.log(1e-48), lmath.log(42)), lmath.log(42))
if __name__ == "__main__":
unittest.main()
|