
# tests directory-specific settings - this file is run automatically
# by pytest before any tests are run

import doctest
import sys
import warnings
from os.path import abspath, dirname, join

import _pytest

from transformers.testing_utils import HfDoctestModule, HfDocTestParser


# allow having multiple repository checkouts and not needing to remember to rerun
# 'pip install -e .[dev]' when switching between checkouts and running tests.
lowercase__          =abspath(join(dirname(__file__), 'src'))
sys.path.insert(1, git_repo_path)

# silence FutureWarning warnings in tests since often we can't act on them until
# they become normal warnings - i.e. the tests still need to test the current functionality
warnings.simplefilter(action='ignore', category=FutureWarning)




def        __UpperCamelCase					(    lowerCAmelCase__							:    Optional[int]  ):
 config.addinivalue_line(
     '''markers'''  ,       '''is_pt_tf_cross_test: mark test to run only when PT and TF interactions are tested'''  )
 config.addinivalue_line(
     '''markers'''  ,       '''is_pt_flax_cross_test: mark test to run only when PT and FLAX interactions are tested'''  )
 config.addinivalue_line('''markers'''  ,       '''is_pipeline_test: mark test to run only when pipelines are tested'''  )
 config.addinivalue_line('''markers'''  ,       '''is_staging_test: mark test to run only in the staging environment'''  )
 config.addinivalue_line('''markers'''  ,       '''accelerate_tests: mark test that require accelerate'''  )
 config.addinivalue_line('''markers'''  ,       '''tool_tests: mark the tool tests that are run on their specific schedule'''  )




def        __UpperCamelCase					(    lowerCAmelCase__							:    Tuple  ):
 from transformers.testing_utils import pytest_addoption_shared

 pytest_addoption_shared(lowerCAmelCase__  )




def        __UpperCamelCase					(    lowerCAmelCase__							:    Dict  ):
 from transformers.testing_utils import pytest_terminal_summary_main

 __a			:  List[Any]		    =  terminalreporter.config.getoption('''--make-reports'''  )
 if make_reports:
  pytest_terminal_summary_main(lowerCAmelCase__  ,       id=lowerCAmelCase__  )




def        __UpperCamelCase					(    lowerCAmelCase__							:    List[Any]  ,       lowerCAmelCase__							:    Optional[Any]  ):
 # If no tests are collected, pytest exists with code 5, which makes the CI fail.
 if exitstatus == 5:
  __a			:  List[Any]		    =  0


# Doctest custom flag to ignore output.
lowercase__          =doctest.register_optionflag('IGNORE_RESULT')

lowercase__          =doctest.OutputChecker



class 		UpperCamelCase__  (	__lowercase   ):
   def 				lowerCAmelCase      (self			: Any ,    snake_case_			: int ,    snake_case_			: Union[str, Any] ,    snake_case_			: List[Any]       ):
    if IGNORE_RESULT & optionflags:
     return True
    return OutputChecker.check_output(self ,    snake_case_ ,    snake_case_ ,    snake_case_       )





lowercase__          =CustomOutputChecker
lowercase__          =HfDoctestModule


lowercase__          =HfDocTestParser


def        __UpperCamelCase					(    lowerCAmelCase__							:    list  ):

 def merge(lowerCAmelCase__							:    list  ,       lowerCAmelCase__							:    list  ) -> list:

  def _merge():
   while left and right:
    yield (left if left[0] <= right[0] else right).pop(0  )
   yield from left
   yield from right

  return list(_merge()  )

 if len(lowerCAmelCase__  ) <= 1:
  return collection
 __a			:  str		    =  len(lowerCAmelCase__  ) // 2
 return merge(merge_sort(collection[:mid]  )  ,       merge_sort(collection[mid:]  )  )


if __name__ == "__main__":
      import doctest

      doctest.testmod()
      lowercase__          =input('Enter numbers separated by a comma:\n').strip()
      lowercase__          =[int(item) for item in user_input.split(',')]
      print(*merge_sort(unsorted), sep=',')
