Source code for tests.test_syllable

# -*- coding: utf-8 -*-
"""
Tests for modern syllable
"""
from __future__ import unicode_literals
from ksx1026 import uchar, normalization
import unittest
import unicodedata
import itertools
import six


[docs]class SyllableTest(unittest.TestCase):
[docs] def setUp(self): self.syllable = list( six.unichr(x) for x in range(int("AC00", 16), int("D7A3", 16) + 1)) lchar = list( six.unichr(x) for x in range(int("1100", 16), int("1112", 16) + 1)) vchar = list( six.unichr(x) for x in range(int("1161", 16), int("1175", 16) + 1)) tchar = list( six.unichr(x) for x in range(int("11A8", 16), int("11C2", 16) + 1)) self.lvt = itertools.product(lchar, vchar, tchar)
[docs] def test_uchar(self): for s in self.syllable: self.assertFalse(uchar.isModernChoseong(s), msg=s) self.assertFalse(uchar.isChoseongJamo(s), msg=s) self.assertFalse(uchar.isModernJungseong(s), msg=s) self.assertFalse(uchar.isJungseongJamo(s), msg=s) self.assertFalse(uchar.isModernJongseong(s), msg=s) self.assertFalse(uchar.isOldJongseong(s), msg=s) self.assertFalse(uchar.isJongseongJamo(s), msg=s) self.assertFalse(uchar.isHangulJamo(s), msg=s) self.assertFalse(uchar.isHalfwidthLetter(s), msg=s) self.assertFalse(uchar.isCompatibilityLetter(s), msg=s) self.assertFalse(uchar.isParenthesizedLetter(s), msg=s) self.assertFalse(uchar.isCircledLetter(s), msg=s) self.assertTrue(uchar.isPrecomposedSyllable(s), msg=s) self.assertTrue(uchar.isHangulLetter(s), msg=s)
[docs] def test_normalization(self): for s in self.syllable: lvt = unicodedata.normalize("NFD", s) self.assertEqual(normalization.decomposeHangul(s), lvt) self.assertEqual( normalization.decomposeHangulStr("\uAC01" + s), "\u1100\u1161\u11a8" + lvt) self.assertEqual( normalization.decomposeHangulStr(s + "\uAC01"), lvt + "\u1100\u1161\u11a8") self.assertEqual( normalization.decomposeHangulStr("A" + s), "A" + lvt) self.assertEqual( normalization.decomposeHangulStr(s + "A"), lvt + "A")
[docs] def test_lvt(self): for l, v, t in self.lvt: lvt = "".join((l, v, t)) s = unicodedata.normalize("NFC", lvt) if len(t) == 1: t = hex(ord(t)) self.assertEqual( normalization.composeHangul(lvt), s, msg=hex(ord(l)) + hex(ord(v)) + t)
if __name__ == '__main__': unittest.main()