code: def assertAstEqual(self, left, right):
      if not isinstance(left, _ast.AST):
          raise self.failureException(
              "%s is not an _ast.AST instance" % (left)
          )
      if not isinstance(right, _ast.AST):
          raise self.failureException(
              "%s is not an _ast.AST instance" % (right)
          )
      result = cmp_ast(left, right)
  
      if not result:
          lstream = StringIO()
          print_ast(left, indent="", file=lstream, newline="")
  
          rstream = StringIO()
          print_ast(right, indent="", file=rstream, newline="")
  
          lstream.seek(0)
          rstream.seek(0)
          msg = "Ast Not Equal:\nGenerated: %r\nExpected:  %r" % (
              lstream.read(),
              rstream.read(),
          )
          raise self.failureException(msg)
  
file_path: turicreate/src/python/turicreate/meta/decompiler/tests/__init__.py
imports: from __future__ import print_function
  from __future__ import division
  from __future__ import absolute_import
  import unittest
  import sys
  import _ast
  from ...decompiler import make_module
  from ...asttools import cmp_ast, print_ast
  from ...testing import py2, py2only
label_desc: Use image node_id 1 for calling the Base obj's underlying member method code with example usage: obj.assertAstEqual(left, right) without return types