code: def test_save_pretrained(self):
      pretrained_name = list(
          self.tokenizer_class.pretrained_vocab_files_map[
              "vocab_file"
          ].keys()
      )[0]
      tokenizer = self.tokenizer_class.from_pretrained(pretrained_name)
      tmpdirname2 = tempfile.mkdtemp()
  
      tokenizer_files = tokenizer.save_pretrained(tmpdirname2)
      self.assertSequenceEqual(
          sorted(
              tuple(VOCAB_FILES_NAMES.values())
              + ("special_tokens_map.json", "added_tokens.json")
          ),
          sorted(
              tuple(x.split(os.path.sep)[-1] for x in tokenizer_files)
          ),
      )
  
      # Checks everything loads correctly in the same way
      tokenizer_p = self.tokenizer_class.from_pretrained(tmpdirname2)
  
      # Check special tokens are set accordingly on Rust and Python
      for key in tokenizer.special_tokens_map:
          self.assertTrue(key in tokenizer_p.special_tokens_map)
  
      shutil.rmtree(tmpdirname2)
  
imports: import inspect
  import json
  import os
  import random
  import shutil
  import tempfile
  import unittest
  import numpy
  from transformers import WAV_2_VEC_2_PRETRAINED_MODEL_ARCHIVE_LIST, Wav2Vec2Config, Wav2Vec2CTCTokenizer, Wav2Vec2Tokenizer
  from transformers.models.wav2vec2.tokenization_wav2vec2 import VOCAB_FILES_NAMES, Wav2Vec2CTCTokenizerOutput
  from transformers.testing_utils import require_torch, slow
  from ...test_tokenization_common import TokenizerTesterMixin
label_desc: Use image node_id 8 for calling the Wav2Vec2TokenizerTest obj's underlying member method code with example usage: obj.test_save_pretrained() without return types