code: def assertCorrect(
      self,
      source,
      lhs_conditional=None,
      lhs_stable=None,
      rhs_conditional=None,
      rhs_stable=None,
      undefined=None,
  ):
      mod = ast.parse(source)
  
      lhs, rhs, un = conditional_symbols(mod)
  
      if lhs_conditional is not None:
          self.assertEqual(lhs[0], set(lhs_conditional))
  
      if lhs_stable is not None:
          self.assertEqual(lhs[1], set(lhs_stable))
  
      if rhs_conditional is not None:
          self.assertEqual(rhs[0], set(rhs_conditional))
  
      if rhs_stable is not None:
          self.assertEqual(rhs[1], set(rhs_stable))
  
      if undefined is not None:
          self.assertEqual(un, set(undefined))
  
imports: from __future__ import print_function
  from __future__ import division
  from __future__ import absolute_import
  import unittest
  from ...asttools.visitors.cond_symbol_visitor import conditional_symbols
  import ast
  from ...testing import py2only
label_desc: Use image node_id 1 for calling the Test obj's underlying member method code with example usage: obj.assertCorrect(source, lhs_conditional, lhs_stable, rhs_conditional, rhs_stable, undefined) without return types