code: def test_function_calls(self):
      samples = """
        a.b
        a.b()
        a().b
        z[i]
        z[i]()
        z()[i]
      """
      nodes = parser.parse(textwrap.dedent(samples), single_node=False)
      nodes = tuple(resolve(node).value for node in nodes)
      self.assertQNStringIs(nodes[0], "a.b")
      self.assertQNStringIs(nodes[1].func, "a.b")
      self.assertQNStringIs(nodes[2].value.func, "a")
      self.assertQNStringIs(nodes[3], "z[i]")
      self.assertQNStringIs(nodes[4].func, "z[i]")
      self.assertQNStringIs(nodes[5].value.func, "z")
  
imports: import textwrap
  import unittest
  from nvidia.dali._autograph.pyct import anno
  from nvidia.dali._autograph.pyct import parser
  from nvidia.dali._autograph.pyct import qual_names
  from nvidia.dali._autograph.pyct.qual_names import QN
  from nvidia.dali._autograph.pyct.qual_names import resolve
label_desc: Use image node_id 4 for calling the QNResolverTest obj's underlying member method code with example usage: obj.test_function_calls() without return types