def _InconsistentSubsetSupport(file1, file2, subsetcps): """Returns difference in number of codepoints supported. Args: file1: Name of font file file2: Name of font file subsetcps: Complete set of codepoints to be supported Returns: Difference in number of codepoints between file1 and file2. """ supportcps1 = len(subsetcps.intersection(fonts.CodepointsInFont(file1))) supportcps2 = len(subsetcps.intersection(fonts.CodepointsInFont(file2))) return abs(supportcps1 - supportcps2)
def main(argv): if len(argv) != 2 or not os.path.isdir(argv[1]): sys.exit('Must have one argument, a directory containing font files.') dirpath = argv[1] cps = set() for f in _GetFontFiles(dirpath): cps.update(fonts.CodepointsInFont(os.path.join(dirpath, f))) for f in _GetFontFiles(dirpath): diff = cps - fonts.CodepointsInFont(os.path.join(dirpath, f)) if bool(diff): print('%s failed' % (f)) for c in diff: print('0x%04X' % (c)) else: print('%s passed' % (f))
def _GetSampleGlyphs(fontfile): codepoints = fonts.CodepointsInFont(fontfile) for section in unicode_sections.DATA: supported = [] for codepoint in unicode_sections.DATA[section]: if len(codepoint) == 0: continue if _Ordinal(codepoint) in codepoints: supported.append(codepoint) if len(supported) > 0: yield section, ' '.join(supported)
def DiffCoverage(font_filename1, font_filename2, subset): """Prints a comparison of the coverage of a given subset by two fonts. Args: font_filename1: The first font to compare. font_filename2: The second font to compare. subset: The lowercase name of the subset to compare coverage of. """ f1cps = fonts.CodepointsInFont(font_filename1) f2cps = fonts.CodepointsInFont(font_filename2) if subset != 'all': subset_cps = fonts.CodepointsInSubset(subset) f1cps &= subset_cps f2cps &= subset_cps else: subset_cps = None subset_cp_str = ('/%d' % len(subset_cps)) if subset_cps is not None else '' print ' %s %+d (%d%s => %d%s)' % ( subset, len(f2cps) - len(f1cps), len(f1cps), subset_cp_str, len(f2cps), subset_cp_str)
def main(argv): if len(argv) < 2: sys.exit('Must specify one or more font files.') cps = set() for filename in argv[1:]: if not os.path.isfile(filename): sys.exit('%s is not a file' % filename) cps |= fonts.CodepointsInFont(filename) for cp in sorted(cps): show_char = '' if FLAGS.show_char: show_char = (' ' + unichr(cp).strip() + ' ' + unicodedata.name(unichr(cp), '')) show_subset = '' if FLAGS.show_subsets: show_subset = ' subset:%s' % ','.join(fonts.SubsetsForCodepoint(cp)) print(u'0x%04X%s%s' % (cp, show_char, show_subset))