Ejemplo n.º 1
0
    def test_invert_dict(self):
        data = {1: [1, 2, 3], 2: [1, 3]}
        new_dict = maps.invert_mapping(data)
        self.assertEqual(new_dict, {1: [1, 2], 2: [1], 3: [1, 2]})

        data2 = {1: 'a', 2: 'b', 3: 'c'}
        new_dict2 = maps.invert_injective_mapping(data2)
        self.assertEqual(new_dict2, {'a': 1, 'b': 2, 'c': 3})
Ejemplo n.º 2
0
    voicing_map = {}
    for kana in scripts.get_script(scripts.Script.Hiragana):
        ord_kana = ord(kana)

        if kana in voiced_line:
            voicing_map[kana] = [unichr(ord_kana+1)]
        elif kana in double_voiced_line:
            voicing_map[kana] = [unichr(ord_kana+1), unichr(ord_kana+2)]
        else:
            voicing_map[kana] = []

    return voicing_map

to_voiced = _create_voicing_map()
from_voiced = maps.invert_mapping(to_voiced)
from_voiced = dict((k, v[0]) for (k, v) in from_voiced.iteritems())


def insert_duplicate_kanji(kanji_string):
    """
    Inserts full kanji for characters where a shorthand is used.

        >>> k = insert_duplicate_kanji(unicode('私々', 'utf8'))
        >>> expected = unicode('私私', 'utf8')
        >>> k == expected
        True
    """
    loc = kanji_string.find(u'々')
    while loc > 0:
        dup = kanji_string[loc-1]