code: def test_make_prediction_tokens(self) -> None:
      # Negative Case: Empty request batch test in List[] format
      with self.assertRaises(RuntimeError):
          make_prediction_tokens([])
  
      # Negative Case: Empty request batch test in List[Tuple([List[]])] format
      with self.assertRaises(RuntimeError):
          make_prediction_tokens([([],)])
  
      # Negative Case: None as input
      with self.assertRaises(TypeError):
          make_prediction_tokens(None)
  
      # Negative Case: Bad batch token format with List[Tuple()]
      with self.assertRaises(IndexError):
          make_prediction_tokens([()])
  
      # Positve Case: Multiple tokens in one request batch
      multiple_tokens_request_batch = [
          (
              [
                  ["token_1_1"],
                  ["token_1_2_1", "token_1_2_2"],
              ],
          ),
          (
              [
                  ["token_2_1"],
              ],
          ),
      ]
      self.assertEqual(
          make_prediction_tokens(multiple_tokens_request_batch),
          [
              ["token_1_1"],
              ["token_1_2_1", "token_1_2_2"],
              ["token_2_1"],
          ],
      )
  
imports: import unittest
  import torch
  from pytext.torchscript.batchutils import destructure_any_list, destructure_dict_list, destructure_tensor_list, make_prediction_texts, make_prediction_texts_dense, make_prediction_tokens, zip_batch_any_list_list, zip_batch_tensor_list
label_desc: Use image node_id 1 for calling the BatchUtilsTest obj's underlying member method code with example usage: obj.test_make_prediction_tokens() without return types