code: def should_generate_more(self):
      # End the generation phase where we would have ended it if no bugs had
      # been found.  This reproduces the exit logic in `self.test_function`,
      # but with the important distinction that this clause will move on to
      # the shrinking phase having found one or more bugs, while the other
      # will exit having found zero bugs.
      if (
          self.valid_examples >= self.settings.max_examples
          or self.call_count
          >= max(self.settings.max_examples * 10, 1000)
      ):  # pragma: no cover
          return False
  
      # If we haven't found a bug, keep looking - if we hit any limits on
      # the number of tests to run that will raise an exception and stop
      # the run.
      if not self.interesting_examples:
          return True
      # Users who disable shrinking probably want to exit as fast as possible.
      # If we've found a bug and won't report more than one, stop looking.
      elif (
          Phase.shrink not in self.settings.phases
          or not self.settings.report_multiple_bugs
      ):
          return False
      assert (
          self.first_bug_found_at
          <= self.last_bug_found_at
          <= self.call_count
      )
      # Otherwise, keep searching for between ten and 'a heuristic' calls.
      # We cap 'calls after first bug' so errors are reported reasonably
      # soon even for tests that are allowed to run for a very long time,
      # or sooner if the latest half of our test effort has been fruitless.
      return self.call_count < MIN_TEST_CALLS or self.call_count < min(
          self.first_bug_found_at + 1000, self.last_bug_found_at * 2
      )
  
imports: import math
  import time
  from collections import defaultdict
  from contextlib import contextmanager
  from datetime import timedelta
  from enum import Enum
  from random import Random, getrandbits
  import attr
  from hypothesis import HealthCheck, Phase, Verbosity, settings
  from hypothesis._settings import local_settings
  from hypothesis.errors import StopTest
  from hypothesis.internal.cache import LRUReusedCache
  from hypothesis.internal.compat import ceil, int_from_bytes
  from hypothesis.internal.conjecture.data import ConjectureData, ConjectureResult, DataObserver, Overrun, Status
  from hypothesis.internal.conjecture.datatree import DataTree, PreviouslyUnseenBehaviour, TreeRecordingObserver
  from hypothesis.internal.conjecture.junkdrawer import clamp, ensure_free_stackframes
  from hypothesis.internal.conjecture.pareto import NO_SCORE, ParetoFront, ParetoOptimiser
  from hypothesis.internal.conjecture.shrinker import Shrinker, sort_key
  from hypothesis.internal.healthcheck import fail_health_check
  from hypothesis.reporting import base_report, report
label_desc: Use image node_id 25 for calling the ConjectureRunner obj's underlying member method code with example usage: obj.should_generate_more() and returns: unknown, False, True, False