

import os
import unittest

from transformers import RealmTokenizerFast
from transformers.models.bert.tokenization_bert import (
    VOCAB_FILES_NAMES,
    BasicTokenizer,
    WordpieceTokenizer,
    _is_control,
    _is_punctuation,
    _is_whitespace,
)
from transformers.models.realm.tokenization_realm import RealmTokenizer
from transformers.testing_utils import require_tokenizers, slow

from ...test_tokenization_common import TokenizerTesterMixin, filter_non_english
@require_tokenizers
class 		SCREAMING_SNAKE_CASE__					(		lowerCamelCase__						,	unittest.TestCase   ):







						"""simple docstring"""




						lowercase  :				List[Any]											=							RealmTokenizer
						lowercase  :				Union[str, Any]											=							RealmTokenizerFast
						lowercase  :				Any											=							True
						lowercase  :				Any											=							True
						lowercase  :				Optional[int]											=							filter_non_english

						def __lowerCamelCase					(				self    )							->	List[Any]:




									'''simple docstring'''


									super().setUp()

									__UpperCamelCase    :    List[Any]								=      [
									    "[UNK]",
									    "[CLS]",
									    "[SEP]",
									    "[PAD]",
									    "[MASK]",
									    "want",
									    "##want",
									    "##ed",
									    "wa",
									    "un",
									    "runn",
									    "##ing",
									    ",",
									    "low",
									    "lowest",
									]
									__UpperCamelCase    :    Any								=      os.path.join(self.tmpdirname , VOCAB_FILES_NAMES["vocab_file"]    )
									with open(self.vocab_file , "w" , encoding="utf-8"    ) as vocab_writer:
												vocab_writer.write("".join([x + "\n" for x in vocab_tokens]    )    )

						def __lowerCamelCase					(				self , __UpperCamelCase    )							->	str:




									'''simple docstring'''


									__UpperCamelCase    :    int								=      "UNwant\u00E9d,running"
									__UpperCamelCase    :    str								=      "unwanted, running"
									return input_text, output_text

						def __lowerCamelCase					(				self    )							->	int:




									'''simple docstring'''


									__UpperCamelCase    :    List[str]								=      self.tokenizer_class(self.vocab_file    )

									__UpperCamelCase    :    Tuple								=      tokenizer.tokenize("UNwant\u00E9d,running"    )
									self.assertListEqual(__UpperCamelCase , ["un", "##want", "##ed", ",", "runn", "##ing"]    )
									self.assertListEqual(tokenizer.convert_tokens_to_ids(__UpperCamelCase    ) , [9, 6, 7, 12, 10, 11]    )

						def __lowerCamelCase					(				self    )							->	Tuple:




									'''simple docstring'''


									if not self.test_rust_tokenizer:
												return

									__UpperCamelCase    :    Tuple								=      self.get_tokenizer()
									__UpperCamelCase    :    int								=      self.get_rust_tokenizer()

									__UpperCamelCase    :    Optional[Any]								=      "UNwant\u00E9d,running"

									__UpperCamelCase    :    Union[str, Any]								=      tokenizer.tokenize(__UpperCamelCase    )
									__UpperCamelCase    :    str								=      rust_tokenizer.tokenize(__UpperCamelCase    )
									self.assertListEqual(__UpperCamelCase , __UpperCamelCase    )

									__UpperCamelCase    :    Optional[int]								=      tokenizer.encode(__UpperCamelCase , add_special_tokens=__UpperCamelCase    )
									__UpperCamelCase    :    Optional[int]								=      rust_tokenizer.encode(__UpperCamelCase , add_special_tokens=__UpperCamelCase    )
									self.assertListEqual(__UpperCamelCase , __UpperCamelCase    )

									__UpperCamelCase    :    Tuple								=      self.get_rust_tokenizer()
									__UpperCamelCase    :    Any								=      tokenizer.encode(__UpperCamelCase    )
									__UpperCamelCase    :    Dict								=      rust_tokenizer.encode(__UpperCamelCase    )
									self.assertListEqual(__UpperCamelCase , __UpperCamelCase    )

									# With lower casing
									__UpperCamelCase    :    Any								=      self.get_tokenizer(do_lower_case=__UpperCamelCase    )
									__UpperCamelCase    :    int								=      self.get_rust_tokenizer(do_lower_case=__UpperCamelCase    )

									__UpperCamelCase    :    Dict								=      "UNwant\u00E9d,running"

									__UpperCamelCase    :    Optional[int]								=      tokenizer.tokenize(__UpperCamelCase    )
									__UpperCamelCase    :    Optional[Any]								=      rust_tokenizer.tokenize(__UpperCamelCase    )
									self.assertListEqual(__UpperCamelCase , __UpperCamelCase    )

									__UpperCamelCase    :    List[str]								=      tokenizer.encode(__UpperCamelCase , add_special_tokens=__UpperCamelCase    )
									__UpperCamelCase    :    Tuple								=      rust_tokenizer.encode(__UpperCamelCase , add_special_tokens=__UpperCamelCase    )
									self.assertListEqual(__UpperCamelCase , __UpperCamelCase    )

									__UpperCamelCase    :    Any								=      self.get_rust_tokenizer()
									__UpperCamelCase    :    Optional[Any]								=      tokenizer.encode(__UpperCamelCase    )
									__UpperCamelCase    :    Dict								=      rust_tokenizer.encode(__UpperCamelCase    )
									self.assertListEqual(__UpperCamelCase , __UpperCamelCase    )

						def __lowerCamelCase					(				self    )							->	str:




									'''simple docstring'''


									__UpperCamelCase    :    Dict								=      BasicTokenizer()

									self.assertListEqual(tokenizer.tokenize("ah\u535A\u63A8zz"    ) , ["ah", "\u535A", "\u63A8", "zz"]    )

						def __lowerCamelCase					(				self    )							->	Any:




									'''simple docstring'''


									__UpperCamelCase    :    Optional[Any]								=      BasicTokenizer(do_lower_case=__UpperCamelCase    )

									self.assertListEqual(
									    tokenizer.tokenize(" \tHeLLo!how  \n Are yoU?  "    ) , ["hello", "!", "how", "are", "you", "?"]    )
									self.assertListEqual(tokenizer.tokenize("H\u00E9llo"    ) , ["hello"]    )

						def __lowerCamelCase					(				self    )							->	Tuple:




									'''simple docstring'''


									__UpperCamelCase    :    Optional[int]								=      BasicTokenizer(do_lower_case=__UpperCamelCase , strip_accents=__UpperCamelCase    )

									self.assertListEqual(
									    tokenizer.tokenize(" \tHäLLo!how  \n Are yoU?  "    ) , ["hällo", "!", "how", "are", "you", "?"]    )
									self.assertListEqual(tokenizer.tokenize("H\u00E9llo"    ) , ["h\u00E9llo"]    )

						def __lowerCamelCase					(				self    )							->	Tuple:




									'''simple docstring'''


									__UpperCamelCase    :    Tuple								=      BasicTokenizer(do_lower_case=__UpperCamelCase , strip_accents=__UpperCamelCase    )

									self.assertListEqual(
									    tokenizer.tokenize(" \tHäLLo!how  \n Are yoU?  "    ) , ["hallo", "!", "how", "are", "you", "?"]    )
									self.assertListEqual(tokenizer.tokenize("H\u00E9llo"    ) , ["hello"]    )

						def __lowerCamelCase					(				self    )							->	Any:




									'''simple docstring'''


									__UpperCamelCase    :    Tuple								=      BasicTokenizer(do_lower_case=__UpperCamelCase    )

									self.assertListEqual(
									    tokenizer.tokenize(" \tHäLLo!how  \n Are yoU?  "    ) , ["hallo", "!", "how", "are", "you", "?"]    )
									self.assertListEqual(tokenizer.tokenize("H\u00E9llo"    ) , ["hello"]    )

						def __lowerCamelCase					(				self    )							->	Any:




									'''simple docstring'''


									__UpperCamelCase    :    Union[str, Any]								=      BasicTokenizer(do_lower_case=__UpperCamelCase    )

									self.assertListEqual(
									    tokenizer.tokenize(" \tHeLLo!how  \n Are yoU?  "    ) , ["HeLLo", "!", "how", "Are", "yoU", "?"]    )

						def __lowerCamelCase					(				self    )							->	Dict:




									'''simple docstring'''


									__UpperCamelCase    :    List[str]								=      BasicTokenizer(do_lower_case=__UpperCamelCase , strip_accents=__UpperCamelCase    )

									self.assertListEqual(
									    tokenizer.tokenize(" \tHäLLo!how  \n Are yoU?  "    ) , ["HäLLo", "!", "how", "Are", "yoU", "?"]    )

						def __lowerCamelCase					(				self    )							->	Optional[Any]:




									'''simple docstring'''


									__UpperCamelCase    :    List[str]								=      BasicTokenizer(do_lower_case=__UpperCamelCase , strip_accents=__UpperCamelCase    )

									self.assertListEqual(
									    tokenizer.tokenize(" \tHäLLo!how  \n Are yoU?  "    ) , ["HaLLo", "!", "how", "Are", "yoU", "?"]    )

						def __lowerCamelCase					(				self    )							->	int:




									'''simple docstring'''


									__UpperCamelCase    :    Optional[Any]								=      BasicTokenizer(do_lower_case=__UpperCamelCase , never_split=["[UNK]"]    )

									self.assertListEqual(
									    tokenizer.tokenize(" \tHeLLo!how  \n Are yoU? [UNK]"    ) , ["HeLLo", "!", "how", "Are", "yoU", "?", "[UNK]"]    )

						def __lowerCamelCase					(				self    )							->	Any:




									'''simple docstring'''


									__UpperCamelCase    :    int								=      ["[UNK]", "[CLS]", "[SEP]", "want", "##want", "##ed", "wa", "un", "runn", "##ing"]

									__UpperCamelCase    :    Dict								=      {}
									for i, token in enumerate(__UpperCamelCase    ):
												__UpperCamelCase    :    List[str]								=      i
									__UpperCamelCase    :    Tuple								=      WordpieceTokenizer(vocab=__UpperCamelCase , unk_token="[UNK]"    )

									self.assertListEqual(tokenizer.tokenize(""    ) , []    )

									self.assertListEqual(tokenizer.tokenize("unwanted running"    ) , ["un", "##want", "##ed", "runn", "##ing"]    )

									self.assertListEqual(tokenizer.tokenize("unwantedX running"    ) , ["[UNK]", "runn", "##ing"]    )

						def __lowerCamelCase					(				self    )							->	List[str]:




									'''simple docstring'''


									self.assertTrue(_is_whitespace(" "    )    )
									self.assertTrue(_is_whitespace("\t"    )    )
									self.assertTrue(_is_whitespace("\r"    )    )
									self.assertTrue(_is_whitespace("\n"    )    )
									self.assertTrue(_is_whitespace("\u00A0"    )    )

									self.assertFalse(_is_whitespace("A"    )    )
									self.assertFalse(_is_whitespace("-"    )    )

						def __lowerCamelCase					(				self    )							->	List[Any]:




									'''simple docstring'''


									self.assertTrue(_is_control("\u0005"    )    )

									self.assertFalse(_is_control("A"    )    )
									self.assertFalse(_is_control(" "    )    )
									self.assertFalse(_is_control("\t"    )    )
									self.assertFalse(_is_control("\r"    )    )

						def __lowerCamelCase					(				self    )							->	Union[str, Any]:




									'''simple docstring'''


									self.assertTrue(_is_punctuation("-"    )    )
									self.assertTrue(_is_punctuation("$"    )    )
									self.assertTrue(_is_punctuation("`"    )    )
									self.assertTrue(_is_punctuation("."    )    )

									self.assertFalse(_is_punctuation("A"    )    )
									self.assertFalse(_is_punctuation(" "    )    )

						def __lowerCamelCase					(				self    )							->	Any:




									'''simple docstring'''


									__UpperCamelCase    :    List[str]								=      self.get_tokenizer()

									# Example taken from the issue https://github.com/huggingface/tokenizers/issues/340
									self.assertListEqual([tokenizer.tokenize(__UpperCamelCase    ) for t in ["Test", "\xad", "test"]] , [["[UNK]"], [], ["[UNK]"]]    )

									if self.test_rust_tokenizer:
												__UpperCamelCase    :    Dict								=      self.get_rust_tokenizer()
												self.assertListEqual(
												    [rust_tokenizer.tokenize(__UpperCamelCase    ) for t in ["Test", "\xad", "test"]] , [["[UNK]"], [], ["[UNK]"]]    )

						@slow
						def __lowerCamelCase					(				self    )							->	Optional[Any]:




									'''simple docstring'''


									__UpperCamelCase    :    List[Any]								=      self.tokenizer_class.from_pretrained("bert-base-uncased"    )

									__UpperCamelCase    :    List[str]								=      tokenizer.encode("sequence builders" , add_special_tokens=__UpperCamelCase    )
									__UpperCamelCase    :    Optional[Any]								=      tokenizer.encode("multi-sequence build" , add_special_tokens=__UpperCamelCase    )

									__UpperCamelCase    :    str								=      tokenizer.build_inputs_with_special_tokens(__UpperCamelCase    )
									__UpperCamelCase    :    Optional[Any]								=      tokenizer.build_inputs_with_special_tokens(__UpperCamelCase , __UpperCamelCase    )

									assert encoded_sentence == [1_01] + text + [1_02]
									assert encoded_pair == [1_01] + text + [1_02] + text_a + [1_02]

						def __lowerCamelCase					(				self    )							->	List[str]:




									'''simple docstring'''


									for tokenizer, pretrained_name, kwargs in self.tokenizers_list:
												with self.subTest(f'''{tokenizer.__class__.__name__} ({pretrained_name})'''    ):
															__UpperCamelCase    :    Any								=      self.rust_tokenizer_class.from_pretrained(__UpperCamelCase , **__UpperCamelCase    )

															__UpperCamelCase    :    int								=      f'''A, naïve {tokenizer_r.mask_token} AllenNLP sentence.'''
															__UpperCamelCase    :    List[str]								=      tokenizer_r.encode_plus(
															    __UpperCamelCase , return_attention_mask=__UpperCamelCase , return_token_type_ids=__UpperCamelCase , return_offsets_mapping=__UpperCamelCase , add_special_tokens=__UpperCamelCase , )

															__UpperCamelCase    :    Optional[int]								=      tokenizer_r.do_lower_case if hasattr(__UpperCamelCase , "do_lower_case"    ) else False
															__UpperCamelCase    :    Optional[Any]								=      (
															    [
															        ((0, 0), tokenizer_r.cls_token),
															        ((0, 1), "A"),
															        ((1, 2), ","),
															        ((3, 5), "na"),
															        ((5, 6), "##ï"),
															        ((6, 8), "##ve"),
															        ((9, 15), tokenizer_r.mask_token),
															        ((16, 21), "Allen"),
															        ((21, 23), "##NL"),
															        ((23, 24), "##P"),
															        ((25, 33), "sentence"),
															        ((33, 34), "."),
															        ((0, 0), tokenizer_r.sep_token),
															    ]
															    if not do_lower_case
															    else [
															        ((0, 0), tokenizer_r.cls_token),
															        ((0, 1), "a"),
															        ((1, 2), ","),
															        ((3, 8), "naive"),
															        ((9, 15), tokenizer_r.mask_token),
															        ((16, 21), "allen"),
															        ((21, 23), "##nl"),
															        ((23, 24), "##p"),
															        ((25, 33), "sentence"),
															        ((33, 34), "."),
															        ((0, 0), tokenizer_r.sep_token),
															    ]
															)

															self.assertEqual(
															    [e[1] for e in expected_results] , tokenizer_r.convert_ids_to_tokens(tokens["input_ids"]    )    )
															self.assertEqual([e[0] for e in expected_results] , tokens["offset_mapping"]    )




						@slow
						def __lowerCamelCase					(				self    )							->	Optional[int]:




									'''simple docstring'''


									for tokenizer, pretrained_name, kwargs in self.tokenizers_list:
												with self.subTest(f'''{tokenizer.__class__.__name__} ({pretrained_name})'''    ):
															__UpperCamelCase    :    Union[str, Any]								=      self.rust_tokenizer_class.from_pretrained(__UpperCamelCase , **__UpperCamelCase    )
															__UpperCamelCase    :    List[Any]								=      self.tokenizer_class.from_pretrained(__UpperCamelCase , **__UpperCamelCase    )
															__UpperCamelCase    :    List[str]								=      [["Hello world!", "Nice to meet you!"], ["The cute cat.", "The adorable dog."]]

															__UpperCamelCase    :    int								=      tokenizer_r.batch_encode_candidates(__UpperCamelCase , max_length=10 , return_tensors="np"    )
															__UpperCamelCase    :    int								=      tokenizer_p.batch_encode_candidates(__UpperCamelCase , max_length=10 , return_tensors="np"    )

															__UpperCamelCase    :    List[str]								=      (2, 2, 10)

															self.assertEqual(encoded_sentence_r["input_ids"].shape , __UpperCamelCase    )
															self.assertEqual(encoded_sentence_r["attention_mask"].shape , __UpperCamelCase    )
															self.assertEqual(encoded_sentence_r["token_type_ids"].shape , __UpperCamelCase    )

															self.assertEqual(encoded_sentence_p["input_ids"].shape , __UpperCamelCase    )
															self.assertEqual(encoded_sentence_p["attention_mask"].shape , __UpperCamelCase    )
															self.assertEqual(encoded_sentence_p["token_type_ids"].shape , __UpperCamelCase    )


import os
import pickle
import tempfile
import unittest
from typing import Callable, Optional

import numpy as np

from transformers import (
    BatchEncoding,
    BertTokenizer,
    BertTokenizerFast,
    PreTrainedTokenizer,
    PreTrainedTokenizerFast,
    TensorType,
    TokenSpan,
    is_tokenizers_available,
)
from transformers.models.gpta.tokenization_gpta import GPTaTokenizer
from transformers.testing_utils import CaptureStderr, require_flax, require_tf, require_tokenizers, require_torch, slow


if is_tokenizers_available():
					from tokenizers import Tokenizer
					from tokenizers.models import WordPiece
class 		SCREAMING_SNAKE_CASE__					(		unittest.TestCase   ):







						"""simple docstring"""




						def __lowerCamelCase					(				self , __UpperCamelCase    )							->	Union[str, Any]:




									'''simple docstring'''


									__UpperCamelCase    :    List[str]								=      list(tokenizer_class.max_model_input_sizes.keys()    )
									for model_name in sa_models[:1]:
												__UpperCamelCase    :    int								=      tokenizer_class.from_pretrained(__UpperCamelCase    )
												self.assertIsNotNone(__UpperCamelCase    )
												self.assertIsInstance(__UpperCamelCase , __UpperCamelCase    )
												self.assertIsInstance(__UpperCamelCase , __UpperCamelCase    )

												for special_tok in tokenizer.all_special_tokens:
															self.assertIsInstance(__UpperCamelCase , __UpperCamelCase    )
															__UpperCamelCase    :    str								=      tokenizer.convert_tokens_to_ids(__UpperCamelCase    )
															self.assertIsInstance(__UpperCamelCase , __UpperCamelCase    )

						def __lowerCamelCase					(				self , __UpperCamelCase , __UpperCamelCase = None    )							->	Tuple:




									'''simple docstring'''


									__UpperCamelCase    :    Optional[Any]								=      pickle.dumps(__UpperCamelCase    )
									self.assertIsNotNone(__UpperCamelCase    )

									__UpperCamelCase    :    List[str]								=      pickle.loads(__UpperCamelCase    )

									# Ensure is_fast is correctly restored
									self.assertEqual(be_restored.is_fast , be_original.is_fast    )

									# Ensure encodings are potentially correctly restored
									if be_original.is_fast:
												self.assertIsNotNone(be_restored.encodings    )
									else:
												self.assertIsNone(be_restored.encodings    )

									# Ensure the keys are the same
									for original_v, restored_v in zip(be_original.values() , be_restored.values()    ):
												if equal_op:
															self.assertTrue(equal_op(__UpperCamelCase , __UpperCamelCase    )    )
												else:
															self.assertEqual(__UpperCamelCase , __UpperCamelCase    )

						@slow
						def __lowerCamelCase					(				self    )							->	List[Any]:




									'''simple docstring'''


									self.check_tokenizer_from_pretrained(__UpperCamelCase    )

						def __lowerCamelCase					(				self    )							->	Optional[int]:




									'''simple docstring'''


									self.assertEqual(TensorType("tf"    ) , TensorType.TENSORFLOW    )
									self.assertEqual(TensorType("pt"    ) , TensorType.PYTORCH    )
									self.assertEqual(TensorType("np"    ) , TensorType.NUMPY    )

						@require_tokenizers
						def __lowerCamelCase					(				self    )							->	List[str]:




									'''simple docstring'''


									import numpy as np

									__UpperCamelCase    :    str								=      BertTokenizer.from_pretrained("bert-base-cased"    )
									__UpperCamelCase    :    Optional[Any]								=      BertTokenizerFast.from_pretrained("bert-base-cased"    )

									# Python no tensor
									with self.subTest("BatchEncoding (Python, return_tensors=None)"    ):
												self.assert_dump_and_restore(tokenizer_p("Small example to encode"    )    )

									with self.subTest("BatchEncoding (Python, return_tensors=NUMPY)"    ):
												self.assert_dump_and_restore(
												    tokenizer_p("Small example to encode" , return_tensors=TensorType.NUMPY    ) , np.array_equal    )

									with self.subTest("BatchEncoding (Rust, return_tensors=None)"    ):
												self.assert_dump_and_restore(tokenizer_r("Small example to encode"    )    )

									with self.subTest("BatchEncoding (Rust, return_tensors=NUMPY)"    ):
												self.assert_dump_and_restore(
												    tokenizer_r("Small example to encode" , return_tensors=TensorType.NUMPY    ) , np.array_equal    )

						@require_tf
						@require_tokenizers
						def __lowerCamelCase					(				self    )							->	Union[str, Any]:




									'''simple docstring'''


									import tensorflow as tf

									def tf_array_equals(__UpperCamelCase , __UpperCamelCase    ):
												return tf.reduce_all(tf.equal(__UpperCamelCase , __UpperCamelCase    )    )

									__UpperCamelCase    :    int								=      BertTokenizer.from_pretrained("bert-base-cased"    )
									__UpperCamelCase    :    Dict								=      BertTokenizerFast.from_pretrained("bert-base-cased"    )

									with self.subTest("BatchEncoding (Python, return_tensors=TENSORFLOW)"    ):
												self.assert_dump_and_restore(
												    tokenizer_p("Small example to encode" , return_tensors=TensorType.TENSORFLOW    ) , __UpperCamelCase    )

									with self.subTest("BatchEncoding (Rust, return_tensors=TENSORFLOW)"    ):
												self.assert_dump_and_restore(
												    tokenizer_r("Small example to encode" , return_tensors=TensorType.TENSORFLOW    ) , __UpperCamelCase    )

						@require_torch
						@require_tokenizers
						def __lowerCamelCase					(				self    )							->	Any:




									'''simple docstring'''


									import torch

									__UpperCamelCase    :    List[Any]								=      BertTokenizer.from_pretrained("bert-base-cased"    )
									__UpperCamelCase    :    Optional[Any]								=      BertTokenizerFast.from_pretrained("bert-base-cased"    )

									with self.subTest("BatchEncoding (Python, return_tensors=PYTORCH)"    ):
												self.assert_dump_and_restore(
												    tokenizer_p("Small example to encode" , return_tensors=TensorType.PYTORCH    ) , torch.equal    )

									with self.subTest("BatchEncoding (Rust, return_tensors=PYTORCH)"    ):
												self.assert_dump_and_restore(
												    tokenizer_r("Small example to encode" , return_tensors=TensorType.PYTORCH    ) , torch.equal    )

						@require_tokenizers
						def __lowerCamelCase					(				self    )							->	Any:




									'''simple docstring'''


									__UpperCamelCase    :    Optional[int]								=      BertTokenizer.from_pretrained("bert-base-cased"    )
									__UpperCamelCase    :    Tuple								=      BertTokenizerFast.from_pretrained("bert-base-cased"    )

									with self.subTest("Python Tokenizer"    ):
												self.assertFalse(tokenizer_p("Small example to_encode"    ).is_fast    )

									with self.subTest("Rust Tokenizer"    ):
												self.assertTrue(tokenizer_r("Small example to_encode"    ).is_fast    )

						@require_tokenizers
						def __lowerCamelCase					(				self    )							->	Union[str, Any]:




									'''simple docstring'''


									__UpperCamelCase    :    Any								=      BertTokenizerFast.from_pretrained("bert-base-cased"    )
									__UpperCamelCase    :    Dict								=      tokenizer_r(["Test", "\xad", "test"] , is_split_into_words=__UpperCamelCase    )

									self.assertEqual(encoded.word_to_tokens(0    ) , TokenSpan(start=1 , end=2    )    )
									self.assertEqual(encoded.word_to_tokens(1    ) , __UpperCamelCase    )
									self.assertEqual(encoded.word_to_tokens(2    ) , TokenSpan(start=2 , end=3    )    )

						def __lowerCamelCase					(				self    )							->	Optional[int]:




									'''simple docstring'''


									__UpperCamelCase    :    str								=      BatchEncoding({"inputs": [[1, 2, 3], [4, 5, 6]], "labels": [0, 1]}    )
									__UpperCamelCase    :    List[str]								=      batch.convert_to_tensors(tensor_type="np"    )
									self.assertEqual(tensor_batch["inputs"].shape , (2, 3)    )
									self.assertEqual(tensor_batch["labels"].shape , (2,)    )
									# test converting the converted
									with CaptureStderr() as cs:
												__UpperCamelCase    :    Optional[Any]								=      batch.convert_to_tensors(tensor_type="np"    )
									self.assertFalse(len(cs.err    ) , msg=f'''should have no warning, but got {cs.err}'''    )

									__UpperCamelCase    :    Union[str, Any]								=      BatchEncoding({"inputs": [1, 2, 3], "labels": 0}    )
									__UpperCamelCase    :    int								=      batch.convert_to_tensors(tensor_type="np" , prepend_batch_axis=__UpperCamelCase    )
									self.assertEqual(tensor_batch["inputs"].shape , (1, 3)    )
									self.assertEqual(tensor_batch["labels"].shape , (1,)    )

						@require_torch
						def __lowerCamelCase					(				self    )							->	List[str]:




									'''simple docstring'''


									__UpperCamelCase    :    Dict								=      BatchEncoding({"inputs": [[1, 2, 3], [4, 5, 6]], "labels": [0, 1]}    )
									__UpperCamelCase    :    List[Any]								=      batch.convert_to_tensors(tensor_type="pt"    )
									self.assertEqual(tensor_batch["inputs"].shape , (2, 3)    )
									self.assertEqual(tensor_batch["labels"].shape , (2,)    )
									# test converting the converted
									with CaptureStderr() as cs:
												__UpperCamelCase    :    Tuple								=      batch.convert_to_tensors(tensor_type="pt"    )
									self.assertFalse(len(cs.err    ) , msg=f'''should have no warning, but got {cs.err}'''    )

									__UpperCamelCase    :    Union[str, Any]								=      BatchEncoding({"inputs": [1, 2, 3], "labels": 0}    )
									__UpperCamelCase    :    List[Any]								=      batch.convert_to_tensors(tensor_type="pt" , prepend_batch_axis=__UpperCamelCase    )
									self.assertEqual(tensor_batch["inputs"].shape , (1, 3)    )
									self.assertEqual(tensor_batch["labels"].shape , (1,)    )

						@require_tf
						def __lowerCamelCase					(				self    )							->	Optional[Any]:




									'''simple docstring'''


									__UpperCamelCase    :    List[Any]								=      BatchEncoding({"inputs": [[1, 2, 3], [4, 5, 6]], "labels": [0, 1]}    )
									__UpperCamelCase    :    Tuple								=      batch.convert_to_tensors(tensor_type="tf"    )
									self.assertEqual(tensor_batch["inputs"].shape , (2, 3)    )
									self.assertEqual(tensor_batch["labels"].shape , (2,)    )
									# test converting the converted
									with CaptureStderr() as cs:
												__UpperCamelCase    :    Optional[int]								=      batch.convert_to_tensors(tensor_type="tf"    )
									self.assertFalse(len(cs.err    ) , msg=f'''should have no warning, but got {cs.err}'''    )

									__UpperCamelCase    :    str								=      BatchEncoding({"inputs": [1, 2, 3], "labels": 0}    )
									__UpperCamelCase    :    Union[str, Any]								=      batch.convert_to_tensors(tensor_type="tf" , prepend_batch_axis=__UpperCamelCase    )
									self.assertEqual(tensor_batch["inputs"].shape , (1, 3)    )
									self.assertEqual(tensor_batch["labels"].shape , (1,)    )

						@require_flax
						def __lowerCamelCase					(				self    )							->	List[Any]:




									'''simple docstring'''


									__UpperCamelCase    :    str								=      BatchEncoding({"inputs": [[1, 2, 3], [4, 5, 6]], "labels": [0, 1]}    )
									__UpperCamelCase    :    int								=      batch.convert_to_tensors(tensor_type="jax"    )
									self.assertEqual(tensor_batch["inputs"].shape , (2, 3)    )
									self.assertEqual(tensor_batch["labels"].shape , (2,)    )
									# test converting the converted
									with CaptureStderr() as cs:
												__UpperCamelCase    :    Dict								=      batch.convert_to_tensors(tensor_type="jax"    )
									self.assertFalse(len(cs.err    ) , msg=f'''should have no warning, but got {cs.err}'''    )

									__UpperCamelCase    :    Tuple								=      BatchEncoding({"inputs": [1, 2, 3], "labels": 0}    )
									__UpperCamelCase    :    Union[str, Any]								=      batch.convert_to_tensors(tensor_type="jax" , prepend_batch_axis=__UpperCamelCase    )
									self.assertEqual(tensor_batch["inputs"].shape , (1, 3)    )
									self.assertEqual(tensor_batch["labels"].shape , (1,)    )

						def __lowerCamelCase					(				self    )							->	int:




									'''simple docstring'''


									__UpperCamelCase    :    str								=      [{"input_ids": np.array([0, 1, 2]    )}, {"input_ids": np.array([0, 1, 2, 3]    )}]
									__UpperCamelCase    :    Any								=      BertTokenizer.from_pretrained("bert-base-cased"    )

									__UpperCamelCase    :    Optional[Any]								=      tokenizer.pad(__UpperCamelCase , padding=__UpperCamelCase    )
									self.assertTrue(isinstance(batch["input_ids"] , np.ndarray    )    )
									self.assertEqual(batch["input_ids"].tolist() , [[0, 1, 2, tokenizer.pad_token_id], [0, 1, 2, 3]]    )
									__UpperCamelCase    :    Optional[Any]								=      tokenizer.pad(__UpperCamelCase , padding=__UpperCamelCase , return_tensors="np"    )
									self.assertTrue(isinstance(batch["input_ids"] , np.ndarray    )    )
									self.assertEqual(batch["input_ids"].tolist() , [[0, 1, 2, tokenizer.pad_token_id], [0, 1, 2, 3]]    )

						@require_torch
						def __lowerCamelCase					(				self    )							->	Optional[int]:




									'''simple docstring'''


									import torch

									__UpperCamelCase    :    List[str]								=      [{"input_ids": torch.tensor([0, 1, 2]    )}, {"input_ids": torch.tensor([0, 1, 2, 3]    )}]
									__UpperCamelCase    :    str								=      BertTokenizer.from_pretrained("bert-base-cased"    )

									__UpperCamelCase    :    str								=      tokenizer.pad(__UpperCamelCase , padding=__UpperCamelCase    )
									self.assertTrue(isinstance(batch["input_ids"] , torch.Tensor    )    )
									self.assertEqual(batch["input_ids"].tolist() , [[0, 1, 2, tokenizer.pad_token_id], [0, 1, 2, 3]]    )
									__UpperCamelCase    :    int								=      tokenizer.pad(__UpperCamelCase , padding=__UpperCamelCase , return_tensors="pt"    )
									self.assertTrue(isinstance(batch["input_ids"] , torch.Tensor    )    )
									self.assertEqual(batch["input_ids"].tolist() , [[0, 1, 2, tokenizer.pad_token_id], [0, 1, 2, 3]]    )

						@require_tf
						def __lowerCamelCase					(				self    )							->	List[Any]:




									'''simple docstring'''


									import tensorflow as tf

									__UpperCamelCase    :    List[Any]								=      [{"input_ids": tf.constant([0, 1, 2]    )}, {"input_ids": tf.constant([0, 1, 2, 3]    )}]
									__UpperCamelCase    :    int								=      BertTokenizer.from_pretrained("bert-base-cased"    )

									__UpperCamelCase    :    Optional[Any]								=      tokenizer.pad(__UpperCamelCase , padding=__UpperCamelCase    )
									self.assertTrue(isinstance(batch["input_ids"] , tf.Tensor    )    )
									self.assertEqual(batch["input_ids"].numpy().tolist() , [[0, 1, 2, tokenizer.pad_token_id], [0, 1, 2, 3]]    )
									__UpperCamelCase    :    List[str]								=      tokenizer.pad(__UpperCamelCase , padding=__UpperCamelCase , return_tensors="tf"    )
									self.assertTrue(isinstance(batch["input_ids"] , tf.Tensor    )    )
									self.assertEqual(batch["input_ids"].numpy().tolist() , [[0, 1, 2, tokenizer.pad_token_id], [0, 1, 2, 3]]    )

						@require_tokenizers
						def __lowerCamelCase					(				self    )							->	int:




									'''simple docstring'''


									__UpperCamelCase    :    List[Any]								=      Tokenizer(WordPiece(unk_token="[UNK]"    )    )
									PreTrainedTokenizerFast(tokenizer_object=__UpperCamelCase    )




						@require_tokenizers
						def __lowerCamelCase					(				self    )							->	Optional[int]:




									'''simple docstring'''


									__UpperCamelCase    :    Union[str, Any]								=      Tokenizer(WordPiece(unk_token="[UNK]"    )    )
									with tempfile.TemporaryDirectory() as tmpdirname:
												bert_tokenizer.save(os.path.join(__UpperCamelCase , "tokenizer.json"    )    )
												PreTrainedTokenizerFast(tokenizer_file=os.path.join(__UpperCamelCase , "tokenizer.json"    )    )