


def  UpperCamelCase					(	__magic_name__     :							List[Any] = 1    ,    __magic_name__     :							int = 1000     )   ->  int:
		"""simple docstring"""




		lowercase__     			=		1
		lowercase__     			=		0

		for divide_by_number in range(lowerCAmelCase__    ,    digit + 1     ):
				lowercase__     			=		[]
				lowercase__     			=		numerator
				for _ in range(1    ,    digit + 1     ):
						if now_divide in has_been_divided:
								if longest_list_length < len(lowerCAmelCase__     ):
										lowercase__     			=		len(lowerCAmelCase__     )
										lowercase__     			=		divide_by_number
						else:
								has_been_divided.append(lowerCAmelCase__     )
								lowercase__     			=		now_divide * 10 % divide_by_number

		return the_digit


# Tests
if __name__ == "__main__":
	import doctest

	doctest.testmod()





'''simple docstring'''
import unittest

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

from ...test_configuration_common import ConfigTester
from ...test_modeling_common import ModelTesterMixin, ids_tensor
from ...test_pipeline_mixin import PipelineTesterMixin


if is_torch_available():
  import torch

  from transformers import (
      DebertaVaForMaskedLM,
      DebertaVaForMultipleChoice,
      DebertaVaForQuestionAnswering,
      DebertaVaForSequenceClassification,
      DebertaVaForTokenClassification,
      DebertaVaModel,
  )
  from transformers.models.deberta_va.modeling_deberta_va import DEBERTA_V2_PRETRAINED_MODEL_ARCHIVE_LIST




class 			lowerCamelCase_   (	__a      ):






      def __init__(					self				:    Optional[Any]						,						_A				:    Optional[Any]						,						_A				:    List[str]=13						,						_A				:    Any=7						,						_A				:    str=True						,						_A				:    Any=True						,						_A				:    Any=True						,						_A				:    Optional[int]=True						,						_A				:    int=99						,						_A				:    Optional[int]=32						,						_A				:    List[Any]=5						,						_A				:    Optional[Any]=4						,						_A				:    Dict=37						,						_A				:    Any="gelu"						,						_A				:    str=0.1						,						_A				:    int=0.1						,						_A				:    Optional[Any]=512						,						_A				:    Optional[Any]=16						,						_A				:    List[Any]=2						,						_A				:    str=0.0_2						,						_A				:    Optional[Any]=False						,						_A				:    Any=True						,						_A				:    Dict="None"						,						_A				:    List[str]=3						,						_A				:    List[str]=4						,						_A				:    Tuple=None						,						):


          '''simple docstring'''


          UpperCAmelCase__			:		Tuple													=				parent
          UpperCAmelCase__			:		Union[str, Any]													=				batch_size
          UpperCAmelCase__			:		Dict													=				seq_length
          UpperCAmelCase__			:		Dict													=				is_training
          UpperCAmelCase__			:		Optional[Any]													=				use_input_mask
          UpperCAmelCase__			:		Optional[Any]													=				use_token_type_ids
          UpperCAmelCase__			:		Union[str, Any]													=				use_labels
          UpperCAmelCase__			:		Tuple													=				vocab_size
          UpperCAmelCase__			:		Tuple													=				hidden_size
          UpperCAmelCase__			:		Any													=				num_hidden_layers
          UpperCAmelCase__			:		Tuple													=				num_attention_heads
          UpperCAmelCase__			:		List[Any]													=				intermediate_size
          UpperCAmelCase__			:		Union[str, Any]													=				hidden_act
          UpperCAmelCase__			:		Any													=				hidden_dropout_prob
          UpperCAmelCase__			:		Any													=				attention_probs_dropout_prob
          UpperCAmelCase__			:		int													=				max_position_embeddings
          UpperCAmelCase__			:		Optional[int]													=				type_vocab_size
          UpperCAmelCase__			:		Union[str, Any]													=				type_sequence_label_size
          UpperCAmelCase__			:		int													=				initializer_range
          UpperCAmelCase__			:		Any													=				num_labels
          UpperCAmelCase__			:		Optional[Any]													=				num_choices
          UpperCAmelCase__			:		List[Any]													=				relative_attention
          UpperCAmelCase__			:		int													=				position_biased_input
          UpperCAmelCase__			:		str													=				pos_att_type
          UpperCAmelCase__			:		Union[str, Any]													=				scope






      def lowercase_							(					self				:    Tuple ):


          '''simple docstring'''


          UpperCAmelCase__			:		Optional[Any]													=				ids_tensor([self.batch_size, self.seq_length]						,						self.vocab_size )

          UpperCAmelCase__			:		Any													=				None
          if self.use_input_mask:
              UpperCAmelCase__			:		Tuple													=				ids_tensor([self.batch_size, self.seq_length]						,						vocab_size=2 )

          UpperCAmelCase__			:		Optional[Any]													=				None
          if self.use_token_type_ids:
              UpperCAmelCase__			:		List[str]													=				ids_tensor([self.batch_size, self.seq_length]						,						self.type_vocab_size )

          UpperCAmelCase__			:		Dict													=				None
          UpperCAmelCase__			:		Any													=				None
          UpperCAmelCase__			:		Dict													=				None
          if self.use_labels:
              UpperCAmelCase__			:		int													=				ids_tensor([self.batch_size]						,						self.type_sequence_label_size )
              UpperCAmelCase__			:		List[str]													=				ids_tensor([self.batch_size, self.seq_length]						,						self.num_labels )
              UpperCAmelCase__			:		Dict													=				ids_tensor([self.batch_size]						,						self.num_choices )

          UpperCAmelCase__			:		Optional[Any]													=				self.get_config()

          return config, input_ids, token_type_ids, input_mask, sequence_labels, token_labels, choice_labels






      def lowercase_							(					self				:    List[str] ):


          '''simple docstring'''


          return DebertaVaConfig(
              vocab_size=self.vocab_size						,						hidden_size=self.hidden_size						,						num_hidden_layers=self.num_hidden_layers						,						num_attention_heads=self.num_attention_heads						,						intermediate_size=self.intermediate_size						,						hidden_act=self.hidden_act						,						hidden_dropout_prob=self.hidden_dropout_prob						,						attention_probs_dropout_prob=self.attention_probs_dropout_prob						,						max_position_embeddings=self.max_position_embeddings						,						type_vocab_size=self.type_vocab_size						,						initializer_range=self.initializer_range						,						relative_attention=self.relative_attention						,						position_biased_input=self.position_biased_input						,						pos_att_type=self.pos_att_type						,						)






      def lowercase_							(					self				:    Dict						,						_A				:    Optional[int] ):


          '''simple docstring'''


          self.parent.assertListEqual(list(result.loss.size() )						,						[] )






      def lowercase_							(					self				:    int						,						_A				:    int						,						_A				:    Any						,						_A				:    Tuple						,						_A				:    List[Any]						,						_A				:    str						,						_A				:    Union[str, Any]						,						_A				:    Any ):


          '''simple docstring'''


          UpperCAmelCase__			:		Optional[Any]													=				DebertaVaModel(config=_A )
          model.to(_A )
          model.eval()
          UpperCAmelCase__			:		str													=				model(_A						,						attention_mask=_A						,						token_type_ids=_A )[0]
          UpperCAmelCase__			:		List[str]													=				model(_A						,						token_type_ids=_A )[0]
          UpperCAmelCase__			:		List[Any]													=				model(_A )[0]

          self.parent.assertListEqual(list(sequence_output.size() )						,						[self.batch_size, self.seq_length, self.hidden_size] )






      def lowercase_							(					self				:    Optional[Any]						,						_A				:    Tuple						,						_A				:    List[Any]						,						_A				:    Optional[Any]						,						_A				:    int						,						_A				:    List[Any]						,						_A				:    Optional[int]						,						_A				:    str ):


          '''simple docstring'''


          UpperCAmelCase__			:		Dict													=				DebertaVaForMaskedLM(config=_A )
          model.to(_A )
          model.eval()
          UpperCAmelCase__			:		Any													=				model(_A						,						attention_mask=_A						,						token_type_ids=_A						,						labels=_A )

          self.parent.assertEqual(result.logits.shape						,						(self.batch_size, self.seq_length, self.vocab_size) )






      def lowercase_							(					self				:    str						,						_A				:    str						,						_A				:    Any						,						_A				:    Any						,						_A				:    List[Any]						,						_A				:    Dict						,						_A				:    Tuple						,						_A				:    Tuple ):


          '''simple docstring'''


          UpperCAmelCase__			:		Optional[Any]													=				self.num_labels
          UpperCAmelCase__			:		Union[str, Any]													=				DebertaVaForSequenceClassification(_A )
          model.to(_A )
          model.eval()
          UpperCAmelCase__			:		str													=				model(_A						,						attention_mask=_A						,						token_type_ids=_A						,						labels=_A )
          self.parent.assertListEqual(list(result.logits.size() )						,						[self.batch_size, self.num_labels] )
          self.check_loss_output(_A )






      def lowercase_							(					self				:    Any						,						_A				:    List[str]						,						_A				:    List[str]						,						_A				:    Optional[int]						,						_A				:    Tuple						,						_A				:    Dict						,						_A				:    List[str]						,						_A				:    Optional[int] ):


          '''simple docstring'''


          UpperCAmelCase__			:		Optional[Any]													=				self.num_labels
          UpperCAmelCase__			:		int													=				DebertaVaForTokenClassification(config=_A )
          model.to(_A )
          model.eval()
          UpperCAmelCase__			:		List[Any]													=				model(_A						,						attention_mask=_A						,						token_type_ids=_A						,						labels=_A )
          self.parent.assertEqual(result.logits.shape						,						(self.batch_size, self.seq_length, self.num_labels) )






      def lowercase_							(					self				:    str						,						_A				:    List[str]						,						_A				:    str						,						_A				:    Optional[int]						,						_A				:    Optional[int]						,						_A				:    Union[str, Any]						,						_A				:    Dict						,						_A				:    Optional[int] ):


          '''simple docstring'''


          UpperCAmelCase__			:		str													=				DebertaVaForQuestionAnswering(config=_A )
          model.to(_A )
          model.eval()
          UpperCAmelCase__			:		int													=				model(
              _A						,						attention_mask=_A						,						token_type_ids=_A						,						start_positions=_A						,						end_positions=_A						,						)
          self.parent.assertEqual(result.start_logits.shape						,						(self.batch_size, self.seq_length) )
          self.parent.assertEqual(result.end_logits.shape						,						(self.batch_size, self.seq_length) )






      def lowercase_							(					self				:    Any						,						_A				:    Tuple						,						_A				:    Optional[int]						,						_A				:    Optional[int]						,						_A				:    str						,						_A				:    List[str]						,						_A				:    Any						,						_A				:    int ):


          '''simple docstring'''


          UpperCAmelCase__			:		Optional[Any]													=				DebertaVaForMultipleChoice(config=_A )
          model.to(_A )
          model.eval()
          UpperCAmelCase__			:		Optional[Any]													=				input_ids.unsqueeze(1 ).expand(-1						,						self.num_choices						,						-1 ).contiguous()
          UpperCAmelCase__			:		str													=				token_type_ids.unsqueeze(1 ).expand(-1						,						self.num_choices						,						-1 ).contiguous()
          UpperCAmelCase__			:		Dict													=				input_mask.unsqueeze(1 ).expand(-1						,						self.num_choices						,						-1 ).contiguous()
          UpperCAmelCase__			:		List[str]													=				model(
              _A						,						attention_mask=_A						,						token_type_ids=_A						,						labels=_A						,						)
          self.parent.assertEqual(result.logits.shape						,						(self.batch_size, self.num_choices) )






      def lowercase_							(					self				:    Optional[int] ):


          '''simple docstring'''


          UpperCAmelCase__			:		int													=				self.prepare_config_and_inputs()
          (
              (
              UpperCAmelCase__
          )						,						(
              UpperCAmelCase__
          )						,						(
              UpperCAmelCase__
          )						,						(
              UpperCAmelCase__
          )						,						(
              UpperCAmelCase__
          )						,						(
              UpperCAmelCase__
          )						,						(
              UpperCAmelCase__
          )						,						
          )			:		Any													=				config_and_inputs
          UpperCAmelCase__			:		Optional[int]													=				{'''input_ids''': input_ids, '''token_type_ids''': token_type_ids, '''attention_mask''': input_mask}
          return config, inputs_dict




@require_torch
class 			lowerCamelCase_   (	__a     ,       __a     ,       unittest.TestCase      ):
      lowerCAmelCase__		     =     (
          (
              DebertaVaModel,
              DebertaVaForMaskedLM,
              DebertaVaForSequenceClassification,
              DebertaVaForTokenClassification,
              DebertaVaForQuestionAnswering,
              DebertaVaForMultipleChoice,
          )
          if is_torch_available()
          else ()
      )
      lowerCAmelCase__		     =     (
          {
              'feature-extraction': DebertaVaModel,
              'fill-mask': DebertaVaForMaskedLM,
              'question-answering': DebertaVaForQuestionAnswering,
              'text-classification': DebertaVaForSequenceClassification,
              'token-classification': DebertaVaForTokenClassification,
              'zero-shot': DebertaVaForSequenceClassification,
          }
          if is_torch_available()
          else {}
      )

      lowerCAmelCase__		     =     True
      lowerCAmelCase__		     =     False
      lowerCAmelCase__		     =     False
      lowerCAmelCase__		     =     False
      lowerCAmelCase__		     =     False






      def lowercase_							(					self				:    Optional[Any] ):


          '''simple docstring'''


          UpperCAmelCase__			:		Optional[Any]													=				DebertaVaModelTester(self )
          UpperCAmelCase__			:		Tuple													=				ConfigTester(self						,						config_class=_A						,						hidden_size=37 )






      def lowercase_							(					self				:    str ):


          '''simple docstring'''


          self.config_tester.run_common_tests()






      def lowercase_							(					self				:    Optional[int] ):


          '''simple docstring'''


          UpperCAmelCase__			:		Any													=				self.model_tester.prepare_config_and_inputs()
          self.model_tester.create_and_check_deberta_model(*_A )






      def lowercase_							(					self				:    List[Any] ):


          '''simple docstring'''


          UpperCAmelCase__			:		Optional[Any]													=				self.model_tester.prepare_config_and_inputs()
          self.model_tester.create_and_check_deberta_for_sequence_classification(*_A )






      def lowercase_							(					self				:    List[str] ):


          '''simple docstring'''


          UpperCAmelCase__			:		int													=				self.model_tester.prepare_config_and_inputs()
          self.model_tester.create_and_check_deberta_for_masked_lm(*_A )






      def lowercase_							(					self				:    List[str] ):


          '''simple docstring'''


          UpperCAmelCase__			:		Optional[int]													=				self.model_tester.prepare_config_and_inputs()
          self.model_tester.create_and_check_deberta_for_question_answering(*_A )






      def lowercase_							(					self				:    Any ):


          '''simple docstring'''


          UpperCAmelCase__			:		int													=				self.model_tester.prepare_config_and_inputs()
          self.model_tester.create_and_check_deberta_for_token_classification(*_A )






      def lowercase_							(					self				:    Tuple ):


          '''simple docstring'''


          UpperCAmelCase__			:		Union[str, Any]													=				self.model_tester.prepare_config_and_inputs()
          self.model_tester.create_and_check_deberta_for_multiple_choice(*_A )






      @slow
      def lowercase_							(					self				:    List[Any] ):


          '''simple docstring'''


          for model_name in DEBERTA_V2_PRETRAINED_MODEL_ARCHIVE_LIST[:1]:
              UpperCAmelCase__			:		List[str]													=				DebertaVaModel.from_pretrained(_A )
              self.assertIsNotNone(_A )




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






      @unittest.skip(reason='''Model not available yet''' )
      def lowercase_							(					self				:    Optional[Any] ):


          '''simple docstring'''


          pass






      @slow
      def lowercase_							(					self				:    List[Any] ):


          '''simple docstring'''


          UpperCAmelCase__			:		Tuple													=				DebertaVaModel.from_pretrained('''microsoft/deberta-v2-xlarge''' )

          UpperCAmelCase__			:		List[Any]													=				torch.tensor([[0, 31_414, 232, 328, 740, 1_140, 12_695, 69, 46_078, 1_588, 2]] )
          UpperCAmelCase__			:		List[str]													=				torch.tensor([[0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]] )
          with torch.no_grad():
              UpperCAmelCase__			:		List[str]													=				model(_A						,						attention_mask=_A )[0]
          # compare the actual values for a slice.
          UpperCAmelCase__			:		str													=				torch.tensor(
              [[[0.2_3_5_6, 0.1_9_4_8, 0.0_3_6_9], [-0.1_0_6_3, 0.3_5_8_6, -0.5_1_5_2], [-0.6_3_9_9, -0.0_2_5_9, -0.2_5_2_5]]] )
          self.assertTrue(torch.allclose(output[:, 1:4, 1:4]						,						_A						,						atol=1e-4 )						,						f"""{output[:, 1:4, 1:4]}""" )
