def test_recalcUnicodeRanges(self):
font = TTFont()
font['OS/2'] = os2 = newTable('OS/2')
font['cmap'] = cmap = newTable('cmap')
st = getTableModule('cmap').CmapSubtable.newSubtable(4)
st.platformID, st.platEncID, st.language = 3, 1, 0
st.cmap = {0x0041:'A', 0x03B1: 'alpha', 0x0410: 'Acyr'}
cmap.tables = []
cmap.tables.append(st)
os2.setUnicodeRanges({0, 1, 9}) <=初期値
self.assertEqual(os2.recalcUnicodeRanges(font, pruneOnly=True), {0, 9})
#pruneOnlyをFalseにして、再び挑戦。今度は、7がセットされる。
self.assertEqual(os2.recalcUnicodeRanges(font), {0, 7, 9})
st.cmap[0x1F000] = 'eastwindtile'
## BMPでない文字を追加すると、57と122が立つ
self.assertEqual(os2.recalcUnicodeRanges(font), {0, 7, 9, 57, 122})
github.com