code: def process_test_set(
      download_folder,
      output_directory,
      intent_vocab,
      slots_vocab,
      words_vocab,
  ):
      test_file_name = os.path.join(
          output_directory, "atis.processed.test.csv"
      )
  
      with PathManager.open(
          os.path.join(download_folder, "atis.test.intent.csv"), "r"
      ) as intents, PathManager.open(
          os.path.join(download_folder, "atis.test.slots.csv"), "r"
      ) as slots, PathManager.open(
          os.path.join(download_folder, "atis.test.query.csv"), "r"
      ) as queries, PathManager.open(
          test_file_name, "w"
      ) as test_file:
          for _idx, (intent, slot, query) in enumerate(
              zip(intents, slots, queries)
          ):
              # There is always one intent for an utterance
              intent_string = stringify(intent, intent_vocab)[0][0]
              slot_vals = stringify(slot, slots_vocab)
              query_vals = stringify(query, words_vocab)
  
              slots_string = get_all_slots(slot_vals, query_vals)
              raw_utterance = " ".join([word[0] for word in query_vals])
              test_file.write(
                  intent_string
                  + "\t"
                  + slots_string
                  + "\t"
                  + raw_utterance
                  + "\n"
              )
      return [test_file_name]
  
file_path: pytext/demo/atis_joint_model/data_processor.py
imports: import os
  import random
  import click
  from pytext.utils.file_io import PathManager
label_desc: Use image node_id 7 for calling a global function with example usage: process_test_set(download_folder, output_directory, intent_vocab, slots_vocab, words_vocab) and returns: list