code: def com_google_fonts_check_family_vertical_metrics(ttFonts):
    
    failed = []
    vmetrics = {
      "sTypoAscender": {},
      "sTypoDescender": {},
      "sTypoLineGap": {},
      "usWinAscent": {},
      "usWinDescent": {},
      "ascent": {},
      "descent": {}
    }
  
    for ttfont in ttFonts:
        full_font_name = ttfont['name'].getName(4, 3, 1, 1033).toUnicode()
        vmetrics['sTypoAscender'][full_font_name] = ttfont['OS/2'].sTypoAscender
        vmetrics['sTypoDescender'][full_font_name] = ttfont['OS/2'].sTypoDescender
        vmetrics['sTypoLineGap'][full_font_name] = ttfont['OS/2'].sTypoLineGap
        vmetrics['usWinAscent'][full_font_name] = ttfont['OS/2'].usWinAscent
        vmetrics['usWinDescent'][full_font_name] = ttfont['OS/2'].usWinDescent
        vmetrics['ascent'][full_font_name] = ttfont['hhea'].ascent
        vmetrics['descent'][full_font_name] = ttfont['hhea'].descent
  
    for k, v in vmetrics.items():
        metric_vals = set(vmetrics[k].values())
        if len(metric_vals) != 1:
            failed.append(k)
  
    if failed:
        for k in failed:
          s = ["{}: {}".format(k, v) for k, v in vmetrics[k].items()]
          yield FAIL, ("{} is not the same across the family:\n:"
                       "{}".format(k, "\n".join(s)))
    else:
        yield PASS, "Vertical metrics are the same across the family"
docs: Each font in a family must have the same vertical metrics values.