code: def test_calling_conventions(self):
      # Issue #5330: profile and cProfile wouldn't report C functions called
      # with keyword arguments. We test all calling conventions.
      stmts = [
          "max([0])",
          "max([0], key=int)",
          "max([0], **dict(key=int))",
          "max(*([0],))",
          "max(*([0],), key=int)",
          "max(*([0],), **dict(key=int))",
      ]
      for stmt in stmts:
          s = StringIO()
          prof = self.profilerclass(timer, 0.001)
          prof.runctx(stmt, globals(), locals())
          stats = pstats.Stats(prof, stream=s)
          stats.print_stats()
          res = s.getvalue()
          self.assertIn(
              self.expected_max_output,
              res,
              "Profiling {0!r} didn't report max:\n{1}".format(
                  stmt, res
              ),
          )
  
imports: import sys
  import pstats
  import unittest
  import os
  from difflib import unified_diff
  from io import StringIO
  from test.support.os_helper import TESTFN, unlink, temp_dir, change_cwd
  from contextlib import contextmanager
  import profile
  from test.profilee import testfunc, timer
  from test.support.script_helper import assert_python_failure, assert_python_ok
label_desc: Use image node_id 5 for calling the ProfileTest obj's underlying member method code with example usage: obj.test_calling_conventions() without return types