class_docstr: Tracks the tree structure of a collection of ConjectureData
  objects, for use in ConjectureRunner.
docstr: Run a simulated version of the test function recorded by
  this tree. Note that this does not currently call ``stop_example``
  or ``start_example`` as these are not currently recorded in the
  tree. This will likely change in future.
docstr_tok: ["Run","a","simulated","version","of","the","test","function","recorded","by","this","tree",".","Note","that","this","does","not","currently","call","``","stop_example","``","or","``","start_example","``","as","these","are","not","currently","recorded","in","the","tree",".","This","will","likely","change","in","future","."]
code: def simulate_test_function(self, data):
      """Run a simulated version of the test function recorded by
      this tree. Note that this does not currently call ``stop_example``
      or ``start_example`` as these are not currently recorded in the
      tree. This will likely change in future."""
      node = self.root
      try:
          while True:
              for i, (n_bits, previous) in enumerate(
                  zip(node.bit_lengths, node.values)
              ):
                  v = data.draw_bits(
                      n_bits,
                      forced=node.values[i]
                      if i in node.forced
                      else None,
                  )
                  if v != previous:
                      raise PreviouslyUnseenBehaviour()
              if isinstance(node.transition, Conclusion):
                  t = node.transition
                  data.conclude_test(t.status, t.interesting_origin)
              elif node.transition is None:
                  raise PreviouslyUnseenBehaviour()
              elif isinstance(node.transition, Branch):
                  v = data.draw_bits(node.transition.bit_length)
                  try:
                      node = node.transition.children[v]
                  except KeyError:
                      raise PreviouslyUnseenBehaviour()
              else:
                  assert isinstance(node.transition, Killed)
                  data.observer.kill_branch()
                  node = node.transition.next_node
      except StopTest:
          pass
  
imports: from __future__ import absolute_import, division, print_function
  import attr
  from hypothesis.errors import Flaky, HypothesisException
  from hypothesis.internal.compat import hbytes, int_to_bytes
  from hypothesis.internal.conjecture.data import ConjectureData, DataObserver, Status, StopTest, bits_to_bytes
  from hypothesis.internal.conjecture.junkdrawer import IntList
label_desc: Use image node_id 5 for calling the DataTree obj's underlying member method code with example usage: obj.simulate_test_function(data) without return types