






'''simple docstring'''

import unittest

import numpy as np

from transformers import AlbertConfig, is_flax_available
from transformers.testing_utils import require_flax, slow

from ...test_modeling_flax_common import FlaxModelTesterMixin, ids_tensor, random_attention_mask


if is_flax_available():
     import jax.numpy as jnp

     from transformers.models.albert.modeling_flax_albert import (
         FlaxAlbertForMaskedLM,
         FlaxAlbertForMultipleChoice,
         FlaxAlbertForPreTraining,
         FlaxAlbertForQuestionAnswering,
         FlaxAlbertForSequenceClassification,
         FlaxAlbertForTokenClassification,
         FlaxAlbertModel,
     )






class        a_		(    unittest.TestCase       ):

  def __init__(   self    ,	_SCREAMING_SNAKE_CASE    ,	_SCREAMING_SNAKE_CASE=13    ,	_SCREAMING_SNAKE_CASE=7    ,	_SCREAMING_SNAKE_CASE=True    ,	_SCREAMING_SNAKE_CASE=True    ,	_SCREAMING_SNAKE_CASE=True    ,	_SCREAMING_SNAKE_CASE=True    ,	_SCREAMING_SNAKE_CASE=99    ,	_SCREAMING_SNAKE_CASE=32    ,	_SCREAMING_SNAKE_CASE=5    ,	_SCREAMING_SNAKE_CASE=4    ,	_SCREAMING_SNAKE_CASE=37    ,	_SCREAMING_SNAKE_CASE="gelu"    ,	_SCREAMING_SNAKE_CASE=0.1    ,	_SCREAMING_SNAKE_CASE=0.1    ,	_SCREAMING_SNAKE_CASE=512    ,	_SCREAMING_SNAKE_CASE=16    ,	_SCREAMING_SNAKE_CASE=2    ,	_SCREAMING_SNAKE_CASE=0.0_2    ,	_SCREAMING_SNAKE_CASE=4    ,	)						->   Union[str, Any]:



        """simple docstring"""






        UpperCamelCase       						=      parent
        UpperCamelCase       						=      batch_size
        UpperCamelCase       						=      seq_length
        UpperCamelCase       						=      is_training
        UpperCamelCase       						=      use_attention_mask
        UpperCamelCase       						=      use_token_type_ids
        UpperCamelCase       						=      use_labels
        UpperCamelCase       						=      vocab_size
        UpperCamelCase       						=      hidden_size
        UpperCamelCase       						=      num_hidden_layers
        UpperCamelCase       						=      num_attention_heads
        UpperCamelCase       						=      intermediate_size
        UpperCamelCase       						=      hidden_act
        UpperCamelCase       						=      hidden_dropout_prob
        UpperCamelCase       						=      attention_probs_dropout_prob
        UpperCamelCase       						=      max_position_embeddings
        UpperCamelCase       						=      type_vocab_size
        UpperCamelCase       						=      type_sequence_label_size
        UpperCamelCase       						=      initializer_range
        UpperCamelCase       						=      num_choices

  def 						A__		(   self   )						->   str:



        """simple docstring"""






        UpperCamelCase       						=      ids_tensor([self.batch_size, self.seq_length]    ,	self.vocab_size   )

        UpperCamelCase       						=      None
        if self.use_attention_mask:
              UpperCamelCase       						=      random_attention_mask([self.batch_size, self.seq_length]   )

        UpperCamelCase       						=      None
        if self.use_token_type_ids:
              UpperCamelCase       						=      ids_tensor([self.batch_size, self.seq_length]    ,	self.type_vocab_size   )

        UpperCamelCase       						=      AlbertConfig(
            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    ,	is_decoder=_SCREAMING_SNAKE_CASE    ,	initializer_range=self.initializer_range    ,	)

        return config, input_ids, token_type_ids, attention_mask


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



        """simple docstring"""






        UpperCamelCase       						=      self.prepare_config_and_inputs()
        UpperCamelCase						,UpperCamelCase						,UpperCamelCase						,UpperCamelCase       						=      config_and_inputs
        UpperCamelCase       						=      {"""input_ids""": input_ids, """token_type_ids""": token_type_ids, """attention_mask""": attention_mask}
        return config, inputs_dict






@require_flax
class        a_		(    lowerCamelCase			, unittest.TestCase       ):
  lowercase  	=   (
      (
          FlaxAlbertModel,
          FlaxAlbertForPreTraining,
          FlaxAlbertForMaskedLM,
          FlaxAlbertForMultipleChoice,
          FlaxAlbertForQuestionAnswering,
          FlaxAlbertForSequenceClassification,
          FlaxAlbertForTokenClassification,
          FlaxAlbertForQuestionAnswering,
      )
      if is_flax_available()
      else ()
  )

  def 						A__		(   self   )						->   Dict:



        """simple docstring"""






        UpperCamelCase       						=      FlaxAlbertModelTester(self   )


  @slow
  def 						A__		(   self   )						->   List[str]:



        """simple docstring"""






        for model_class_name in self.all_model_classes:
              UpperCamelCase       						=      model_class_name.from_pretrained("""albert-base-v2"""   )
              UpperCamelCase       						=      model(np.ones((1, 1)   )   )
              self.assertIsNotNone(_SCREAMING_SNAKE_CASE   )






@require_flax
class        a_		(    unittest.TestCase       ):

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



        """simple docstring"""






        UpperCamelCase       						=      FlaxAlbertModel.from_pretrained("""albert-base-v2"""   )
        UpperCamelCase       						=      np.array([[0, 345, 232, 328, 740, 140, 1695, 69, 6078, 1588, 2]]   )
        UpperCamelCase       						=      np.array([[0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]]   )
        UpperCamelCase       						=      model(_SCREAMING_SNAKE_CASE    ,	attention_mask=_SCREAMING_SNAKE_CASE   )[0]
        UpperCamelCase       						=      (1, 11, 768)
        self.assertEqual(output.shape    ,	_SCREAMING_SNAKE_CASE   )
        UpperCamelCase       						=      np.array(
            [[[-0.6_5_1_3, 1.5_0_3_5, -0.2_7_6_6], [-0.6_5_1_5, 1.5_0_4_6, -0.2_7_8_0], [-0.6_5_1_2, 1.5_0_4_9, -0.2_7_8_4]]]   )

        self.assertTrue(jnp.allclose(output[:, 1:4, 1:4]    ,	_SCREAMING_SNAKE_CASE    ,	atol=1e-4   )   )








'''simple docstring'''

from __future__ import annotations

from typing import Any






class        a_		:

  def __init__(   self    ,	_SCREAMING_SNAKE_CASE = 6   )						->   None:



        """simple docstring"""






        UpperCamelCase       						=      None
        UpperCamelCase       						=      None
        self.create_linked_list(_SCREAMING_SNAKE_CASE   )

  def 						A__		(   self    ,	_SCREAMING_SNAKE_CASE   )						->   None:



        """simple docstring"""






        UpperCamelCase       						=      Node()
        UpperCamelCase       						=      current_node
        UpperCamelCase       						=      current_node
        UpperCamelCase       						=      current_node
        for _ in range(1    ,	_SCREAMING_SNAKE_CASE   ):
              UpperCamelCase       						=      Node()
              UpperCamelCase       						=      current_node
              UpperCamelCase       						=      previous_node
              UpperCamelCase       						=      current_node
        UpperCamelCase       						=      self.front
        UpperCamelCase       						=      previous_node

  def 						A__		(   self   )						->   bool:



        """simple docstring"""






        return (
            self.front == self.rear
            and self.front is not None
            and self.front.data is None
        )

  def 						A__		(   self   )						->   Any | None:



        """simple docstring"""






        self.check_can_perform_operation()
        return self.front.data if self.front else None

  def 						A__		(   self    ,	_SCREAMING_SNAKE_CASE   )						->   None:



        """simple docstring"""






        if self.rear is None:
              return

        self.check_is_full()
        if not self.is_empty():
              UpperCamelCase       						=      self.rear.next
        if self.rear:
              UpperCamelCase       						=      data

  def 						A__		(   self   )						->   Any:



        """simple docstring"""






        self.check_can_perform_operation()
        if self.rear is None or self.front is None:
              return None
        if self.front == self.rear:
              UpperCamelCase       						=      self.front.data
              UpperCamelCase       						=      None
              return data

        UpperCamelCase       						=      self.front
        UpperCamelCase       						=      old_front.next
        UpperCamelCase       						=      old_front.data
        UpperCamelCase       						=      None
        return data

  def 						A__		(   self   )						->   None:



        """simple docstring"""






        if self.is_empty():
              raise Exception("""Empty Queue"""   )


  def 						A__		(   self   )						->   None:



        """simple docstring"""






        if self.rear and self.rear.next == self.front:
              raise Exception("""Full Queue"""   )






class        a_		:

  def __init__(   self   )						->   None:



        """simple docstring"""






        UpperCamelCase       						=      None
        UpperCamelCase       						=      None
        UpperCamelCase       						=      None


if __name__ == "__main__":
     import doctest

     doctest.testmod()
