docstr: Print stats and example failures for each test.
  See summary in abstract_test.py
  
  Parameters
  ----------
  types : list(string)
      If not None, will only show tests of these test types.
      Options are MFT, INV, and DIR
  capabilities : list(string)
      If not None, will only show tests with these capabilities.
  **kwargs : type
      Will be passed as arguments to each test.summary()
docstr_tok: ["Print","stats","and","example","failures","for","each","test",".","See","summary","in","abstract_test.py","Parameters","--","--","--","--","--","types",":","list","(","string",")","If","not","None",",","will","only","show","tests","of","these","test","types",".","Options","are","MFT",",","INV",",","and","DIR","capabilities",":","list","(","string",")","If","not","None",",","will","only","show","tests","with","these","capabilities",".","*","*","kwargs",":","type","Will","be","passed","as","arguments","to","each","test.summary","(",")"]
code: def summary(self, types=None, capabilities=None, **kwargs):
      """Print stats and example failures for each test.
      See summary in abstract_test.py
  
      Parameters
      ----------
      types : list(string)
          If not None, will only show tests of these test types.
          Options are MFT, INV, and DIR
      capabilities : list(string)
          If not None, will only show tests with these capabilities.
      **kwargs : type
          Will be passed as arguments to each test.summary()
  
      """
      vals = collections.defaultdict(
          lambda: 100, {"MFT": 0, "INV": 1, "DIR": 2}
      )
      tests = self.tests.keys()
      capability_order = [
          "Vocabulary",
          "Taxonomy",
          "Robustness",
          "NER",
          "Fairness",
          "Temporal",
          "Negation",
          "Coref",
          "SRL",
          "Logic",
      ]
      cap_order = (
          lambda x: capability_order.index(x)
          if x in capability_order
          else 100
      )
      caps = sorted(
          set([x["capability"] for x in self.info.values()]),
          key=cap_order,
      )
      for capability in caps:
          if (
              capabilities is not None
              and capability not in capabilities
          ):
              continue
          print(capability)
          print()
          tests = [
              x
              for x in self.tests
              if self.info[x]["capability"] == capability
          ]
          for n in tests:
              if (
                  types is not None
                  and self.info[n]["type"] not in types
              ):
                  continue
              print(n)
              if "format_example_fn" not in kwargs:
                  kwargs["format_example_fn"] = self.info[n].get(
                      "format_example_fn", self.format_example_fn
                  )
              if "print_fn" not in kwargs:
                  kwargs["print_fn"] = self.info[n].get(
                      "print_fn", self.print_fn
                  )
              self.tests[n].summary(**kwargs)
              print()
              print()
          print()
          print()
  
imports: import collections
  from collections import defaultdict, OrderedDict
  import dill
  import json
  from .abstract_test import load_test, read_pred_file
  from .test_types import MFT, INV, DIR
  from .viewer.suite_summarizer import SuiteSummarizer
label_desc: Use image node_id 13 for calling the TestSuite obj's underlying member method code with example usage: obj.summary(types, capabilities) without return types