original_docstring: 
      all children of a sum node have same scope as the parent
      
docstring: all children of a sum node have same scope as the parent
docstring_tokens: all children of a sum node have same scope as the parent
code: def is_complete(node):
      """
      all children of a sum node have same scope as the parent
      """
  
      assert node is not None
  
      for sum_node in reversed(get_nodes_by_type(node, Sum)):
          nscope = set(sum_node.scope)
  
          if len(sum_node.children) == 0:
              return False, "Sum node %s has no children" % (sum_node.id)
  
          for child in sum_node.children:
              if nscope != set(child.scope):
                  return (False, "children of (sum) node %s do not have the same scope as parent" % (sum_node.id))
  
      return True, None
code_tokens: def is_complete ( node ) : assert node is not None for sum_node in reversed ( get_nodes_by_type ( node , Sum ) ) : nscope = set ( sum_node . scope ) if len ( sum_node . children ) == 0 : return False , "Sum node %s has no children" % ( sum_node . id ) for child in sum_node . children : if nscope != set ( child . scope ) : return ( False , "children of (sum) node %s do not have the same scope as parent" % ( sum_node . id ) ) return True , None
short_docstring: all children of a sum node have same scope as the parent
short_docstring_tokens: all children of a sum node have same scope as the parent
comment: """
      all children of a sum node have same scope as the parent
      """