





"""simple docstring"""






def      __A   (      a_    :Optional[int])		->		int:
				__a			:    int      							=	0
				__a			:    Optional[int]      							=	len(a_)

				for i in range(n - 1):
								for j in range(i + 1 ,							a_):
												if arr[i] > arr[j]:
																num_inversions += 1

				return num_inversions

def      __A   (      a_    :str)		->		List[str]:
				if len(a_) <= 1:
								return arr, 0
				__a			:    Optional[Any]      							=	len(a_) // 2
				__a			:    str      							=	arr[0:mid]
				__a			:    List[Any]      							=	arr[mid:]

				__a							,    __a			:    List[str]      							=	count_inversions_recursive(a_)
				__a							,    __a			:    str      							=	count_inversions_recursive(a_)
				__a							,    __a			:    int      							=	_count_cross_inversions(a_ ,							a_)

				__a			:    List[str]      							=	inversion_p + inversions_q + cross_inversions
				return c, num_inversions

def      __A   (      a_    :Tuple ,							a_    :List[str])		->		str:
				__a			:    List[str]      							=	[]
				__a			:    Dict      							=	0
				while i < len(a_) and j < len(a_):
								if p[i] > q[j]:
												# if P[1] > Q[j], then P[k] > Q[k] for all  i < k <= len(P)
												# These are all inversions. The claim emerges from the
												# property that P is sorted.
												num_inversion += len(a_) - i
												r.append(q[j])
												j += 1
								else:
												r.append(p[i])
												i += 1

				if i < len(a_):
								r.extend(p[i:])
				else:
								r.extend(q[j:])

				return r, num_inversion

def      __A   (      )		->		Any:
				__a			:    Dict      							=	[10, 2, 1, 5, 5, 2, 11]

				# this arr has 8 inversions:
				# (10, 2), (10, 1), (10, 5), (10, 5), (10, 2), (2, 1), (5, 2), (5, 2)

				__a			:    Any      							=	count_inversions_bf(a_)
				__a							,    __a			:    Dict      							=	count_inversions_recursive(a_)

				assert num_inversions_bf == num_inversions_recursive == 8

				print('''number of inversions = ''' ,							a_)

				# testing an array with zero inversion (a sorted arr_1)

				arr_a.sort()
				__a			:    str      							=	count_inversions_bf(a_)
				__a							,    __a			:    List[Any]      							=	count_inversions_recursive(a_)

				assert num_inversions_bf == num_inversions_recursive == 0
				print('''number of inversions = ''' ,							a_)

				# an empty list should also have zero inversions
				__a			:    Dict      							=	[]
				__a			:    List[Any]      							=	count_inversions_bf(a_)
				__a							,    __a			:    Tuple      							=	count_inversions_recursive(a_)

				assert num_inversions_bf == num_inversions_recursive == 0
				print('''number of inversions = ''' ,							a_)


if __name__ == "__main__":
		main()







'''simple docstring'''
import contextlib
import importlib
import io
import unittest

import transformers

# Try to import everything from transformers to ensure every object can be loaded.
from transformers import *  # noqa F406
from transformers.testing_utils import DUMMY_UNKNOWN_IDENTIFIER, require_flax, require_tf, require_torch
from transformers.utils import ContextManagers, find_labels, is_flax_available, is_tf_available, is_torch_available


if is_torch_available():
 from transformers import BertForPreTraining, BertForQuestionAnswering, BertForSequenceClassification

if is_tf_available():
 from transformers import TFBertForPreTraining, TFBertForQuestionAnswering, TFBertForSequenceClassification

if is_flax_available():
 from transformers import FlaxBertForPreTraining, FlaxBertForQuestionAnswering, FlaxBertForSequenceClassification


UpperCamelCase__			=      DUMMY_UNKNOWN_IDENTIFIER
# An actual model hosted on huggingface.co

UpperCamelCase__			=      'main'
# Default branch name
UpperCamelCase__			=      'f2c752cfc5c0ab6f4bdec59acea69eefbee381c2'
# One particular commit (not the top of `main`)
UpperCamelCase__			=      'aaaaaaa'
# This commit does not exist, so we should 404.

UpperCamelCase__			=      'd9e9f15bc825e4b2c9249e9578f884bbcb5e3684'
# Sha-1 of config.json on the top of `main`, for checking purposes
UpperCamelCase__			=      '4b243c475af8d0a7754e87d7d096c92e5199ec2fe168a2ee7998e3b8e9bcb1d3'




@contextlib.contextmanager
def 		__SCREAMING_SNAKE_CASE       (	):


   """simple docstring"""




   print("Welcome!"				)
   yield
   print("Bye!"				)




@contextlib.contextmanager
def 		__SCREAMING_SNAKE_CASE       (	):


   """simple docstring"""




   print("Bonjour!"				)
   yield
   print("Au revoir!"				)


class 							_UpperCAmelCase    (		unittest.TestCase      ):




    def 					lowerCAmelCase__					(      self	:							int      ):






       '''simple docstring'''






       assert transformers.__spec__ is not None
       assert importlib.util.find_spec("transformers"      ) is not None


class 							_UpperCAmelCase    (		unittest.TestCase      ):




    @unittest.mock.patch("sys.stdout"	,  new_callable=io.StringIO      )
    def 					lowerCAmelCase__					(      self	:							str	,  a	:							List[str]      ):






       '''simple docstring'''






       with ContextManagers([]      ):
          print("Transformers are awesome!"      )
       # The print statement adds a new line at the end of the output
       self.assertEqual(mock_stdout.getvalue()	,  "Transformers are awesome!\n"      )




    @unittest.mock.patch("sys.stdout"	,  new_callable=io.StringIO      )
    def 					lowerCAmelCase__					(      self	:							List[str]	,  a	:							Optional[int]      ):






       '''simple docstring'''






       with ContextManagers([context_en()]      ):
          print("Transformers are awesome!"      )
       # The output should be wrapped with an English welcome and goodbye
       self.assertEqual(mock_stdout.getvalue()	,  "Welcome!\nTransformers are awesome!\nBye!\n"      )




    @unittest.mock.patch("sys.stdout"	,  new_callable=io.StringIO      )
    def 					lowerCAmelCase__					(      self	:							Tuple	,  a	:							List[Any]      ):






       '''simple docstring'''






       with ContextManagers([context_fr(), context_en()]      ):
          print("Transformers are awesome!"      )
       # The output should be wrapped with an English and French welcome and goodbye
       self.assertEqual(mock_stdout.getvalue()	,  "Bonjour!\nWelcome!\nTransformers are awesome!\nBye!\nAu revoir!\n"      )




    @require_torch
    def 					lowerCAmelCase__					(      self	:							Tuple      ):






       '''simple docstring'''






       self.assertEqual(find_labels(a      )	,  ["labels"]      )
       self.assertEqual(find_labels(a      )	,  ["labels", "next_sentence_label"]      )
       self.assertEqual(find_labels(a      )	,  ["start_positions", "end_positions"]      )


       class 							_UpperCAmelCase    (		snake_case      ):
           pass


       self.assertEqual(find_labels(a      )	,  ["labels"]      )




    @require_tf
    def 					lowerCAmelCase__					(      self	:							int      ):






       '''simple docstring'''






       self.assertEqual(find_labels(a      )	,  ["labels"]      )
       self.assertEqual(find_labels(a      )	,  ["labels", "next_sentence_label"]      )
       self.assertEqual(find_labels(a      )	,  ["start_positions", "end_positions"]      )


       class 							_UpperCAmelCase    (		snake_case      ):
           pass


       self.assertEqual(find_labels(a      )	,  ["labels"]      )





    @require_flax
    def 					lowerCAmelCase__					(      self	:							str      ):






       '''simple docstring'''






       self.assertEqual(find_labels(a      )	,  []      )
       self.assertEqual(find_labels(a      )	,  []      )
       self.assertEqual(find_labels(a      )	,  []      )


       class 							_UpperCAmelCase    (		snake_case      ):
           pass


       self.assertEqual(find_labels(a      )	,  []      )




