code: def test_resolve_post_processing_tokens(self):
      parsed_exprs = post_process_utils.resolve_post_processing_tokens(
          [
              ["add_length"],
              ["to_upper"],
              ["add_length_decorated"],
              ["helper.add_length"],
              ["helper.add_length_decorated"],
              ["helper.to_upper"],
          ]
      )
  
      for fn in parsed_exprs:
          self.assertIsInstance(
              fn, post_process_utils.ParsedPostProcessExpr
          )
  
      llm_fn = llm_function.LLMFunctionImpl(
          model=model_lib.EchoModel(), prompts=["hello"]
      )
      for expr in parsed_exprs:
          expr.add_to_llm_function(llm_fn)
  
      results = llm_fn()
      self.assertEqual(
          {
              "Input Num": [0],
              "Prompt Num": [0],
              "Prompt": ["hello"],
              "Result Num": [0],
              "add_length": [5],
              "add_length_decorated": [5],
              "add_length_decorated_1": [5],
              "helper.add_length": [5],
              "text_result": ["HELLO"],
          },
          results.as_dict(),
      )
  
imports: from __future__ import annotations
  import sys
  from unittest import mock
  from absl.testing import absltest
  from google.generativeai.notebook import post_process_utils
  from google.generativeai.notebook import post_process_utils_test_helper
  from google.generativeai.notebook.lib import llm_function
  from google.generativeai.notebook.lib import llmfn_output_row
  from google.generativeai.notebook.lib import model
label_desc: Use image node_id 4 for calling the PostProcessUtilsTest obj's underlying member method code with example usage: obj.test_resolve_post_processing_tokens() without return types