
def       A       (					lowercase )   ->  list:
		'''simple docstring'''

		UpperCamelCase		=     len(lowercase )
		for i in range(1    ,       lowercase ):
				UpperCamelCase		=     collection[i]
				UpperCamelCase		=     0
				UpperCamelCase		=     i - 1

				while low <= high:
						UpperCamelCase		=     (low + high) // 2
						if val < collection[mid]:
								UpperCamelCase		=     mid - 1
						else:
								UpperCamelCase		=     mid + 1
				for j in range(lowercase    ,       lowercase    ,       -1 ):
						UpperCamelCase		=     collection[j - 1]
				UpperCamelCase		=     val
		return collection


if __name__ == "__main__":
					_UpperCAmelCase					: List[Any]      =       input("Enter numbers separated by a comma:\n").strip()
					_UpperCAmelCase					: Optional[int]      =       [int(item) for item in user_input.split(",")]
					print(binary_insertion_sort(unsorted))


import os
import tempfile
import unittest
from pathlib import Path

from transformers import AutoConfig, is_torch_available
from transformers.testing_utils import require_torch, torch_device


if is_torch_available():
					from transformers import PyTorchBenchmark, PyTorchBenchmarkArguments


@require_torch
class 				lowercase					(		unittest.TestCase   ):



		def __UpperCamelCase ( self				,      A_       )  ->					List[str]:
				"""simple docstring"""
				for model_result in results.values():
						for batch_size, sequence_length in zip(model_result['bs']				,      model_result['ss']       ):
								UpperCamelCase		=     model_result['result'][batch_size][sequence_length]
								self.assertIsNotNone(A_       )



		def __UpperCamelCase ( self       )  ->					Tuple:
				"""simple docstring"""
				UpperCamelCase		=     'sshleifer/tiny-gpt2'
				UpperCamelCase		=     PyTorchBenchmarkArguments(
				    models=[MODEL_ID]				,      training=A_				,      inference=A_				,      sequence_lengths=[8]				,      batch_sizes=[1]				,      multi_process=A_				,      )
				UpperCamelCase		=     PyTorchBenchmark(A_       )
				UpperCamelCase		=     benchmark.run()
				self.check_results_dict_not_empty(results.time_inference_result       )
				self.check_results_dict_not_empty(results.memory_inference_result       )



		def __UpperCamelCase ( self       )  ->					Any:
				"""simple docstring"""
				UpperCamelCase		=     'sgugger/tiny-distilbert-classification'
				UpperCamelCase		=     PyTorchBenchmarkArguments(
				    models=[MODEL_ID]				,      training=A_				,      inference=A_				,      sequence_lengths=[8]				,      batch_sizes=[1]				,      multi_process=A_				,      only_pretrain_model=A_				,      )
				UpperCamelCase		=     PyTorchBenchmark(A_       )
				UpperCamelCase		=     benchmark.run()
				self.check_results_dict_not_empty(results.time_inference_result       )
				self.check_results_dict_not_empty(results.memory_inference_result       )



		def __UpperCamelCase ( self       )  ->					Any:
				"""simple docstring"""
				UpperCamelCase		=     'sshleifer/tiny-gpt2'
				UpperCamelCase		=     PyTorchBenchmarkArguments(
				    models=[MODEL_ID]				,      training=A_				,      inference=A_				,      torchscript=A_				,      sequence_lengths=[8]				,      batch_sizes=[1]				,      multi_process=A_				,      )
				UpperCamelCase		=     PyTorchBenchmark(A_       )
				UpperCamelCase		=     benchmark.run()
				self.check_results_dict_not_empty(results.time_inference_result       )
				self.check_results_dict_not_empty(results.memory_inference_result       )



		@unittest.skipIf(torch_device == 'cpu'				,      'Cant do half precision'       )
		def __UpperCamelCase ( self       )  ->					List[str]:
				"""simple docstring"""
				UpperCamelCase		=     'sshleifer/tiny-gpt2'
				UpperCamelCase		=     PyTorchBenchmarkArguments(
				    models=[MODEL_ID]				,      training=A_				,      inference=A_				,      fpaa=A_				,      sequence_lengths=[8]				,      batch_sizes=[1]				,      multi_process=A_				,      )
				UpperCamelCase		=     PyTorchBenchmark(A_       )
				UpperCamelCase		=     benchmark.run()
				self.check_results_dict_not_empty(results.time_inference_result       )
				self.check_results_dict_not_empty(results.memory_inference_result       )



		def __UpperCamelCase ( self       )  ->					str:
				"""simple docstring"""
				UpperCamelCase		=     'sshleifer/tiny-gpt2'
				UpperCamelCase		=     AutoConfig.from_pretrained(A_       )
				# set architectures equal to `None`
				UpperCamelCase		=     None
				UpperCamelCase		=     PyTorchBenchmarkArguments(
				    models=[MODEL_ID]				,      training=A_				,      inference=A_				,      sequence_lengths=[8]				,      batch_sizes=[1]				,      multi_process=A_				,      )
				UpperCamelCase		=     PyTorchBenchmark(A_				,      configs=[config]       )
				UpperCamelCase		=     benchmark.run()
				self.check_results_dict_not_empty(results.time_inference_result       )
				self.check_results_dict_not_empty(results.memory_inference_result       )



		def __UpperCamelCase ( self       )  ->					List[str]:
				"""simple docstring"""
				UpperCamelCase		=     'sshleifer/tiny-gpt2'
				UpperCamelCase		=     PyTorchBenchmarkArguments(
				    models=[MODEL_ID]				,      training=A_				,      inference=A_				,      sequence_lengths=[8]				,      batch_sizes=[1]				,      multi_process=A_				,      )
				UpperCamelCase		=     PyTorchBenchmark(A_       )
				UpperCamelCase		=     benchmark.run()
				self.check_results_dict_not_empty(results.time_train_result       )
				self.check_results_dict_not_empty(results.memory_train_result       )



		@unittest.skipIf(torch_device == 'cpu'				,      'Can\'t do half precision'       )
		def __UpperCamelCase ( self       )  ->					Tuple:
				"""simple docstring"""
				UpperCamelCase		=     'sshleifer/tiny-gpt2'
				UpperCamelCase		=     PyTorchBenchmarkArguments(
				    models=[MODEL_ID]				,      training=A_				,      inference=A_				,      sequence_lengths=[8]				,      batch_sizes=[1]				,      fpaa=A_				,      multi_process=A_				,      )
				UpperCamelCase		=     PyTorchBenchmark(A_       )
				UpperCamelCase		=     benchmark.run()
				self.check_results_dict_not_empty(results.time_train_result       )
				self.check_results_dict_not_empty(results.memory_train_result       )



		def __UpperCamelCase ( self       )  ->					Tuple:
				"""simple docstring"""
				UpperCamelCase		=     'sshleifer/tiny-gpt2'
				UpperCamelCase		=     AutoConfig.from_pretrained(A_       )
				UpperCamelCase		=     PyTorchBenchmarkArguments(
				    models=[MODEL_ID]				,      training=A_				,      inference=A_				,      sequence_lengths=[8]				,      batch_sizes=[1]				,      multi_process=A_				,      )
				UpperCamelCase		=     PyTorchBenchmark(A_				,      configs=[config]       )
				UpperCamelCase		=     benchmark.run()
				self.check_results_dict_not_empty(results.time_inference_result       )
				self.check_results_dict_not_empty(results.memory_inference_result       )



		def __UpperCamelCase ( self       )  ->					Optional[Any]:
				"""simple docstring"""
				UpperCamelCase		=     'sshleifer/tinier_bart'
				UpperCamelCase		=     AutoConfig.from_pretrained(A_       )
				UpperCamelCase		=     PyTorchBenchmarkArguments(
				    models=[MODEL_ID]				,      training=A_				,      inference=A_				,      sequence_lengths=[8]				,      batch_sizes=[1]				,      multi_process=A_				,      )
				UpperCamelCase		=     PyTorchBenchmark(A_				,      configs=[config]       )
				UpperCamelCase		=     benchmark.run()
				self.check_results_dict_not_empty(results.time_inference_result       )
				self.check_results_dict_not_empty(results.memory_inference_result       )



		def __UpperCamelCase ( self       )  ->					Optional[Any]:
				"""simple docstring"""
				UpperCamelCase		=     'sshleifer/tiny-gpt2'
				UpperCamelCase		=     AutoConfig.from_pretrained(A_       )
				UpperCamelCase		=     PyTorchBenchmarkArguments(
				    models=[MODEL_ID]				,      training=A_				,      inference=A_				,      sequence_lengths=[8]				,      batch_sizes=[1]				,      multi_process=A_				,      )
				UpperCamelCase		=     PyTorchBenchmark(A_				,      configs=[config]       )
				UpperCamelCase		=     benchmark.run()
				self.check_results_dict_not_empty(results.time_train_result       )
				self.check_results_dict_not_empty(results.memory_train_result       )



		def __UpperCamelCase ( self       )  ->					Any:
				"""simple docstring"""
				UpperCamelCase		=     'sshleifer/tinier_bart'
				UpperCamelCase		=     AutoConfig.from_pretrained(A_       )
				UpperCamelCase		=     PyTorchBenchmarkArguments(
				    models=[MODEL_ID]				,      training=A_				,      inference=A_				,      sequence_lengths=[8]				,      batch_sizes=[1]				,      multi_process=A_				,      )
				UpperCamelCase		=     PyTorchBenchmark(A_				,      configs=[config]       )
				UpperCamelCase		=     benchmark.run()
				self.check_results_dict_not_empty(results.time_train_result       )
				self.check_results_dict_not_empty(results.memory_train_result       )



		def __UpperCamelCase ( self       )  ->					str:
				"""simple docstring"""
				UpperCamelCase		=     'sshleifer/tiny-gpt2'
				with tempfile.TemporaryDirectory() as tmp_dir:
						UpperCamelCase		=     PyTorchBenchmarkArguments(
						    models=[MODEL_ID]				,      training=A_				,      inference=A_				,      save_to_csv=A_				,      sequence_lengths=[8]				,      batch_sizes=[1]				,      inference_time_csv_file=os.path.join(A_				,      'inf_time.csv'       )				,      train_memory_csv_file=os.path.join(A_				,      'train_mem.csv'       )				,      inference_memory_csv_file=os.path.join(A_				,      'inf_mem.csv'       )				,      train_time_csv_file=os.path.join(A_				,      'train_time.csv'       )				,      env_info_csv_file=os.path.join(A_				,      'env.csv'       )				,      multi_process=A_				,      )
						UpperCamelCase		=     PyTorchBenchmark(A_       )
						benchmark.run()
						self.assertTrue(Path(os.path.join(A_				,      'inf_time.csv'       )       ).exists()       )
						self.assertTrue(Path(os.path.join(A_				,      'train_time.csv'       )       ).exists()       )
						self.assertTrue(Path(os.path.join(A_				,      'inf_mem.csv'       )       ).exists()       )
						self.assertTrue(Path(os.path.join(A_				,      'train_mem.csv'       )       ).exists()       )
						self.assertTrue(Path(os.path.join(A_				,      'env.csv'       )       ).exists()       )



		def __UpperCamelCase ( self       )  ->					List[Any]:
				"""simple docstring"""
				UpperCamelCase		=     'sshleifer/tiny-gpt2'

				def _check_summary_is_not_empty(A_       ):
						self.assertTrue(hasattr(A_				,      'sequential'       )       )
						self.assertTrue(hasattr(A_				,      'cumulative'       )       )
						self.assertTrue(hasattr(A_				,      'current'       )       )
						self.assertTrue(hasattr(A_				,      'total'       )       )

				with tempfile.TemporaryDirectory() as tmp_dir:
						UpperCamelCase		=     PyTorchBenchmarkArguments(
						    models=[MODEL_ID]				,      training=A_				,      inference=A_				,      sequence_lengths=[8]				,      batch_sizes=[1]				,      log_filename=os.path.join(A_				,      'log.txt'       )				,      log_print=A_				,      trace_memory_line_by_line=A_				,      multi_process=A_				,      )
						UpperCamelCase		=     PyTorchBenchmark(A_       )
						UpperCamelCase		=     benchmark.run()
						_check_summary_is_not_empty(result.inference_summary       )
						_check_summary_is_not_empty(result.train_summary       )
						self.assertTrue(Path(os.path.join(A_				,      'log.txt'       )       ).exists()       )
