docs: def coverage(self, bug: Bug) -> TestSuiteCoverage:
          """
          Provides coverage information for each test within the test suite
          for the program associated with this bug.
  
          Parameters:
              bug: the bug for which to compute coverage.
  
          Returns:
              a test suite coverage report for the given bug.
          """
          # determine the location of the coverage map on disk
          fn = os.path.join(self.__installation.coverage_path,
                            "{}.coverage.yml".format(bug.name))
  
          # is the coverage already cached? if so, load.
          if os.path.exists(fn):
              return TestSuiteCoverage.from_file(fn)
  
          # if we don't have coverage information, compute it
          mgr_ctr = self.__installation.containers
          container = None
          try:
              container = mgr_ctr.provision(bug)
              coverage = mgr_ctr.coverage(container)
  
              # save to disk
              with open(fn, 'w') as f:
                  yaml.dump(coverage.to_dict(), f, default_flow_style=False)
          finally:
              if container:
                  del mgr_ctr[container.id]
  
          return coverage