class_docstr: A class to maintain the state during planarity check.
class_docstr_tok: ["A","class","to","maintain","the","state","during","planarity","check","."]
docstr: Recursive version of :meth:`dfs_testing`.
docstr_tok: ["Recursive","version","of",":","meth",":","`","dfs_testing","`","."]
code: def dfs_testing_recursive(self, v):
      """Recursive version of :meth:`dfs_testing`."""
      e = self.parent_edge[v]
      for w in self.ordered_adjs[v]:
          ei = (v, w)
          self.stack_bottom[ei] = top_of_stack(self.S)
          if ei == self.parent_edge[w]:  # tree edge
              if not self.dfs_testing_recursive(w):
                  return False
          else:  # back edge
              self.lowpt_edge[ei] = ei
              self.S.append(ConflictPair(right=Interval(ei, ei)))
  
          # integrate new return edges
          if self.lowpt[ei] < self.height[v]:
              if w == self.ordered_adjs[v][0]:  # e_i has return edge
                  self.lowpt_edge[e] = self.lowpt_edge[ei]
              else:  # add constraints of e_i
                  if not self.add_constraints(ei, e):
                      # graph is not planar
                      return False
  
      # remove back edges returning to parent
      if e is not None:  # v isn't root
          self.remove_back_edges(e)
      return True
  
imports: from collections import defaultdict
  import networkx
label_desc: Use image node_id 7 for calling the LRPlanarity obj's underlying member method code with example usage: obj.dfs_testing_recursive(v) and returns: True, False, False