

from __future__ import annotations




def 					_lowercase     (				a_				:					int				)				->	list[int]:




					'''simple docstring'''







					__magic_name__							=    2
					__magic_name__							=    []
					while i * i <= n:
										if n % i:
															i += 1
										else:
															n //= i
															factors.append(a_				)
					if n > 1:
										factors.append(a_				)
					return factors


if __name__ == "__main__":
						import doctest

						doctest.testmod()







import unittest

from transformers import is_torch_available
from transformers.testing_utils import require_sentencepiece, require_tokenizers, require_torch, slow, torch_device


if is_torch_available():
						from transformers import AutoModelForSeqaSeqLM, AutoTokenizer

@require_torch
@require_sentencepiece
@require_tokenizers
class 				__UpperCamelCase				(					unittest.TestCase			):







	@slow
	def 	_SCREAMING_SNAKE_CASE							(   self: Tuple      ):

						'''simple docstring'''





						__magic_name__							=    AutoModelForSeqaSeqLM.from_pretrained('google/mt5-small'  , return_dict=__UpperCamelCase      ).to(__UpperCamelCase      )
						__magic_name__							=    AutoTokenizer.from_pretrained('google/mt5-small'      )

						__magic_name__							=    tokenizer('Hello there'  , return_tensors='pt'      ).input_ids
						__magic_name__							=    tokenizer('Hi I am'  , return_tensors='pt'      ).input_ids

						__magic_name__							=    model(input_ids.to(__UpperCamelCase      )  , labels=labels.to(__UpperCamelCase      )      ).loss
						__magic_name__							=    -(labels.shape[-1] * loss.item())

						__magic_name__							=    -84.9127
						self.assertTrue(abs(mtf_score - EXPECTED_SCORE      ) < 1E-4      )




