docs: def validate(self, bug: Bug, verbose: bool = True) -> bool:
          """
          Checks that a given bug successfully builds, and that it produces an
          expected set of test suite outcomes.
  
          Parameters:
              verbose: toggles verbosity of output. If set to `True`, the
                  outcomes of each test will be printed to the standard output.
  
          Returns:
              `True` if bug behaves as expected, else `False`.
          """
          # attempt to rebuild -- don't worry, Docker's layer caching prevents us
          # from actually having to rebuild everything from scratch :-)
          try:
              self.build(bug, force=True, quiet=True)
          except docker.errors.BuildError:
              print("failed to build bug: {}".format(self.identifier))
              return False
  
          # provision a container
          validated = True
          try:
              c = None
              c = self.__installation.containers.provision(bug)
  
              # ensure we can compile the bug
              # TODO: check compilation status!
              print_task_start('Compiling')
              self.__installation.containers.compile(c)
              print_task_end('Compiling', 'OK')
  
              for t in bug.tests:
                  if t.expected_outcome is True:
                      task = 'Running test: {}'.format(t.name)
                      print_task_start(task)
  
                      outcome = \
                          self.__installation.containers.execute(c, t,
                                                                 verbose=verbose)
                      if not outcome.passed:
                          validated = False
                          print_task_end(task, 'UNEXPECTED: FAIL')
                          response = textwrap.indent(outcome.response.output,
                                                     ' ' * 4)
                          print('\n' + response)
                      else:
                          print_task_end(task, 'OK')
  
                  if t.expected_outcome is False:
                      task = 'Running test: {}'.format(t.name)
                      print_task_start(task)
  
                      outcome = \
                          self.__installation.containers.execute(c, t,
                                                                 verbose=verbose)
                      if outcome.passed:
                          validated = False
                          print_task_end(task, 'UNEXPECTED: PASS')
                          response = textwrap.indent(outcome.response.output,
                                                     ' ' * 4)
                          print('\n' + response)
                      else:
                          print_task_end(task, 'OK')
  
          # ensure that the container is destroyed!
          finally:
              if c:
                  del self.__installation.containers[c.uid]
  
          return validated