def test_metrics_descents_equal_bbox(self): """ Check that descents values are same as min glyph point """ dirname = os.path.dirname(self.operator.path) directory = UpstreamDirectory(dirname) fonts_descents_not_bbox = [] ymin = 0 _cache = {} for filename in directory.get_binaries(): ttfont = Font.get_ttfont(os.path.join(dirname, filename)) ymin_, _ = ttfont.get_bounding() ymin = min(ymin, ymin_) _cache[filename] = { 'os2typo': abs(ttfont.descents.os2typo), 'os2win': abs(ttfont.descents.os2win), 'hhea': abs(ttfont.descents.hhea) } for filename, data in _cache.items(): datas = [data['os2typo'], data['os2win'], data['hhea']] if datas != [abs(ymin)] * 3: fonts_descents_not_bbox.append(filename) if fonts_descents_not_bbox: _ = '[%s] ascents differ to minimum value: %s' self.fail(_ % (', '.join(fonts_descents_not_bbox), ymin))
def get_fonts(self, dirname): directory = UpstreamDirectory(dirname) fonts_ascents_not_bbox = [] ymax = 0 _cache = {} for filename in directory.get_binaries(): ttfont = Font.get_ttfont(os.path.join(dirname, filename)) _, ymax_ = ttfont.get_bounding() ymax = max(ymax, ymax_) _cache[filename] = { 'os2typo': ttfont.ascents.os2typo, 'os2win': ttfont.ascents.os2win, 'hhea': ttfont.ascents.hhea } for filename, data in _cache.items(): if [data['os2typo'], data['os2win'], data['hhea']] != [ymax] * 3: fonts_ascents_not_bbox.append(filename) return ymax, fonts_ascents_not_bbox