






import unittest

from transformers import DebertaVaTokenizer, DebertaVaTokenizerFast
from transformers.testing_utils import get_tests_dir, require_sentencepiece, require_tokenizers, slow

from ...test_tokenization_common import TokenizerTesterMixin


__snake_case    :    Optional[int]         =     get_tests_dir("""fixtures/spiece.model""")


@require_sentencepiece
@require_tokenizers
class     __SCREAMING_SNAKE_CASE					(   __lowercase		,					unittest.TestCase):
						_SCREAMING_SNAKE_CASE	:       int   =					DebertaVaTokenizer
						_SCREAMING_SNAKE_CASE	:       Optional[Any]   =					DebertaVaTokenizerFast
						_SCREAMING_SNAKE_CASE	:       List[Any]   =					True
						_SCREAMING_SNAKE_CASE	:       Dict   =					True






						def       UpperCamelCase__      (	self   ):






												"""simple docstring"""
												super().setUp()

												# We have a SentencePiece fixture for testing
												lowerCAmelCase__    						=						DebertaVaTokenizer(_UpperCamelCase     ,						unk_token='<unk>'   )
												tokenizer.save_pretrained(self.tmpdirname   )






						def       UpperCamelCase__      (	self     ,						_UpperCamelCase   ):






												"""simple docstring"""
												lowerCAmelCase__    						=						'this is a test'
												lowerCAmelCase__    						=						'this is a test'
												return input_text, output_text






						def       UpperCamelCase__      (	self   ):






												"""simple docstring"""
												lowerCAmelCase__    						=						'<pad>'
												lowerCAmelCase__    						=						0

												self.assertEqual(self.get_tokenizer()._convert_token_to_id(_UpperCamelCase   )     ,						_UpperCamelCase   )
												self.assertEqual(self.get_tokenizer()._convert_id_to_token(_UpperCamelCase   )     ,						_UpperCamelCase   )






						def       UpperCamelCase__      (	self   ):






												"""simple docstring"""
												lowerCAmelCase__    						=						list(self.get_tokenizer().get_vocab().keys()   )
												self.assertEqual(vocab_keys[0]     ,						'<pad>'   )
												self.assertEqual(vocab_keys[1]     ,						'<unk>'   )
												self.assertEqual(vocab_keys[-1]     ,						'[PAD]'   )
												self.assertEqual(len(_UpperCamelCase   )     ,						3_00_01   )






						def       UpperCamelCase__      (	self   ):






												"""simple docstring"""
												self.assertEqual(self.get_tokenizer().vocab_size     ,						3_00_00   )






						def       UpperCamelCase__      (	self   ):






												"""simple docstring"""
												# fmt: off
												lowerCAmelCase__    						=						' \tHeLLo!how  \n Are yoU?  '
												lowerCAmelCase__    						=						['▁hello', '!', 'how', '▁are', '▁you', '?']
												# fmt: on

												lowerCAmelCase__    						=						DebertaVaTokenizer(_UpperCamelCase     ,						do_lower_case=_UpperCamelCase   )
												lowerCAmelCase__    						=						tokenizer.convert_ids_to_tokens(tokenizer.encode(_UpperCamelCase     ,						add_special_tokens=_UpperCamelCase   )   )

												self.assertListEqual(_UpperCamelCase     ,						_UpperCamelCase   )

												lowerCAmelCase__    						=						DebertaVaTokenizerFast(_UpperCamelCase     ,						do_lower_case=_UpperCamelCase   )
												lowerCAmelCase__    						=						rust_tokenizer.convert_ids_to_tokens(rust_tokenizer.encode(_UpperCamelCase     ,						add_special_tokens=_UpperCamelCase   )   )

												self.assertListEqual(_UpperCamelCase     ,						_UpperCamelCase   )






						@unittest.skip('There is an inconsistency between slow and fast tokenizer due to a bug in the fast one.'   )
						def       UpperCamelCase__      (	self   ):






												"""simple docstring"""
												pass






						@unittest.skip('There is an inconsistency between slow and fast tokenizer due to a bug in the fast one.'   )
						def       UpperCamelCase__      (	self   ):






												"""simple docstring"""
												pass






						def       UpperCamelCase__      (	self   ):






												"""simple docstring"""
												# fmt: off
												lowerCAmelCase__    						=						'I was born in 92000, and this is falsé.'
												lowerCAmelCase__    						=						['▁', '<unk>', '▁was', '▁born', '▁in', '▁9', '2000', '▁', ',', '▁and', '▁this', '▁is', '▁fal', 's', '<unk>', '▁', '.', ]
												# fmt: on

												lowerCAmelCase__    						=						DebertaVaTokenizer(_UpperCamelCase     ,						split_by_punct=_UpperCamelCase   )
												lowerCAmelCase__    						=						tokenizer.convert_ids_to_tokens(tokenizer.encode(_UpperCamelCase     ,						add_special_tokens=_UpperCamelCase   )   )

												self.assertListEqual(_UpperCamelCase     ,						_UpperCamelCase   )

												lowerCAmelCase__    						=						DebertaVaTokenizerFast(_UpperCamelCase     ,						split_by_punct=_UpperCamelCase   )
												lowerCAmelCase__    						=						rust_tokenizer.convert_ids_to_tokens(rust_tokenizer.encode(_UpperCamelCase     ,						add_special_tokens=_UpperCamelCase   )   )

												self.assertListEqual(_UpperCamelCase     ,						_UpperCamelCase   )






						def       UpperCamelCase__      (	self   ):






												"""simple docstring"""
												# fmt: off
												lowerCAmelCase__    						=						'I was born in 92000, and this is falsé.'
												lowerCAmelCase__    						=						['▁i', '▁was', '▁born', '▁in', '▁9', '2000', '▁', ',', '▁and', '▁this', '▁is', '▁fal', 's', '<unk>', '▁', '.', ]
												# fmt: on

												lowerCAmelCase__    						=						DebertaVaTokenizer(_UpperCamelCase     ,						do_lower_case=_UpperCamelCase     ,						split_by_punct=_UpperCamelCase   )
												lowerCAmelCase__    						=						tokenizer.convert_ids_to_tokens(tokenizer.encode(_UpperCamelCase     ,						add_special_tokens=_UpperCamelCase   )   )
												self.assertListEqual(_UpperCamelCase     ,						_UpperCamelCase   )

												lowerCAmelCase__    						=						DebertaVaTokenizerFast(_UpperCamelCase     ,						do_lower_case=_UpperCamelCase     ,						split_by_punct=_UpperCamelCase   )
												lowerCAmelCase__    						=						rust_tokenizer.convert_ids_to_tokens(rust_tokenizer.encode(_UpperCamelCase     ,						add_special_tokens=_UpperCamelCase   )   )
												self.assertListEqual(_UpperCamelCase     ,						_UpperCamelCase   )






						def       UpperCamelCase__      (	self   ):






												"""simple docstring"""
												# fmt: off
												lowerCAmelCase__    						=						'I was born in 92000, and this is falsé.'
												lowerCAmelCase__    						=						['▁i', '▁was', '▁born', '▁in', '▁9', '2000', ',', '▁and', '▁this', '▁is', '▁fal', 's', '<unk>', '.', ]
												# fmt: on

												lowerCAmelCase__    						=						DebertaVaTokenizer(_UpperCamelCase     ,						do_lower_case=_UpperCamelCase     ,						split_by_punct=_UpperCamelCase   )
												lowerCAmelCase__    						=						tokenizer.convert_ids_to_tokens(tokenizer.encode(_UpperCamelCase     ,						add_special_tokens=_UpperCamelCase   )   )

												self.assertListEqual(_UpperCamelCase     ,						_UpperCamelCase   )

												lowerCAmelCase__    						=						DebertaVaTokenizerFast(_UpperCamelCase     ,						do_lower_case=_UpperCamelCase     ,						split_by_punct=_UpperCamelCase   )
												lowerCAmelCase__    						=						rust_tokenizer.convert_ids_to_tokens(rust_tokenizer.encode(_UpperCamelCase     ,						add_special_tokens=_UpperCamelCase   )   )

												self.assertListEqual(_UpperCamelCase     ,						_UpperCamelCase   )






						def       UpperCamelCase__      (	self   ):






												"""simple docstring"""
												# fmt: off
												lowerCAmelCase__    						=						'I was born in 92000, and this is falsé.'
												lowerCAmelCase__    						=						['▁', '<unk>', '▁was', '▁born', '▁in', '▁9', '2000', '▁', ',', '▁and', '▁this', '▁is', '▁fal', 's', '<unk>', '▁', '.', ]
												# fmt: on

												lowerCAmelCase__    						=						DebertaVaTokenizer(_UpperCamelCase     ,						do_lower_case=_UpperCamelCase     ,						split_by_punct=_UpperCamelCase   )
												lowerCAmelCase__    						=						tokenizer.convert_ids_to_tokens(tokenizer.encode(_UpperCamelCase     ,						add_special_tokens=_UpperCamelCase   )   )

												self.assertListEqual(_UpperCamelCase     ,						_UpperCamelCase   )

												lowerCAmelCase__    						=						DebertaVaTokenizerFast(_UpperCamelCase     ,						do_lower_case=_UpperCamelCase     ,						split_by_punct=_UpperCamelCase   )
												lowerCAmelCase__    						=						rust_tokenizer.convert_ids_to_tokens(rust_tokenizer.encode(_UpperCamelCase     ,						add_special_tokens=_UpperCamelCase   )   )

												self.assertListEqual(_UpperCamelCase     ,						_UpperCamelCase   )






						def       UpperCamelCase__      (	self   ):






												"""simple docstring"""
												# fmt: off
												lowerCAmelCase__    						=						' \tHeLLo!how  \n Are yoU?  '
												lowerCAmelCase__    						=						['▁', '<unk>', 'e', '<unk>', 'o', '!', 'how', '▁', '<unk>', 're', '▁yo', '<unk>', '?']
												# fmt: on

												lowerCAmelCase__    						=						DebertaVaTokenizer(_UpperCamelCase     ,						do_lower_case=_UpperCamelCase     ,						split_by_punct=_UpperCamelCase   )
												lowerCAmelCase__    						=						tokenizer.convert_ids_to_tokens(tokenizer.encode(_UpperCamelCase     ,						add_special_tokens=_UpperCamelCase   )   )

												self.assertListEqual(_UpperCamelCase     ,						_UpperCamelCase   )

												lowerCAmelCase__    						=						DebertaVaTokenizerFast(_UpperCamelCase     ,						do_lower_case=_UpperCamelCase     ,						split_by_punct=_UpperCamelCase   )
												lowerCAmelCase__    						=						rust_tokenizer.convert_ids_to_tokens(rust_tokenizer.encode(_UpperCamelCase     ,						add_special_tokens=_UpperCamelCase   )   )

												self.assertListEqual(_UpperCamelCase     ,						_UpperCamelCase   )






						def       UpperCamelCase__      (	self   ):






												"""simple docstring"""
												lowerCAmelCase__    						=						self.get_tokenizer()
												lowerCAmelCase__    						=						self.get_rust_tokenizer()

												lowerCAmelCase__    						=						'I was born in 92000, and this is falsé.'

												lowerCAmelCase__    						=						tokenizer.convert_ids_to_tokens(tokenizer.encode(_UpperCamelCase     ,						add_special_tokens=_UpperCamelCase   )   )
												lowerCAmelCase__    						=						rust_tokenizer.convert_ids_to_tokens(rust_tokenizer.encode(_UpperCamelCase     ,						add_special_tokens=_UpperCamelCase   )   )
												self.assertListEqual(_UpperCamelCase     ,						_UpperCamelCase   )

												lowerCAmelCase__    						=						tokenizer.encode(_UpperCamelCase     ,						add_special_tokens=_UpperCamelCase   )
												lowerCAmelCase__    						=						rust_tokenizer.encode(_UpperCamelCase     ,						add_special_tokens=_UpperCamelCase   )
												self.assertListEqual(_UpperCamelCase     ,						_UpperCamelCase   )

												lowerCAmelCase__    						=						self.get_rust_tokenizer()
												lowerCAmelCase__    						=						tokenizer.encode(_UpperCamelCase   )
												lowerCAmelCase__    						=						rust_tokenizer.encode(_UpperCamelCase   )
												self.assertListEqual(_UpperCamelCase     ,						_UpperCamelCase   )






						def       UpperCamelCase__      (	self   ):






												"""simple docstring"""
												lowerCAmelCase__    						=						'This is a test'
												lowerCAmelCase__    						=						[13, 1, 43_98, 25, 21, 12_89]
												lowerCAmelCase__    						=						['▁', 'T', 'his', '▁is', '▁a', '▁test']
												lowerCAmelCase__    						=						['▁', '<unk>', 'his', '▁is', '▁a', '▁test']

												lowerCAmelCase__    						=						DebertaVaTokenizer(_UpperCamelCase     ,						keep_accents=_UpperCamelCase   )
												lowerCAmelCase__    						=						DebertaVaTokenizerFast(_UpperCamelCase     ,						keep_accents=_UpperCamelCase   )

												lowerCAmelCase__    						=						tokenizer.encode(_UpperCamelCase     ,						add_special_tokens=_UpperCamelCase   )
												self.assertListEqual(_UpperCamelCase     ,						_UpperCamelCase   )
												lowerCAmelCase__    						=						tokenizer.tokenize(_UpperCamelCase   )
												self.assertListEqual(_UpperCamelCase     ,						_UpperCamelCase   )
												lowerCAmelCase__    						=						tokenizer.convert_ids_to_tokens(_UpperCamelCase   )
												self.assertListEqual(_UpperCamelCase     ,						_UpperCamelCase   )

												lowerCAmelCase__    						=						rust_tokenizer.encode(_UpperCamelCase     ,						add_special_tokens=_UpperCamelCase   )
												self.assertListEqual(_UpperCamelCase     ,						_UpperCamelCase   )
												lowerCAmelCase__    						=						rust_tokenizer.tokenize(_UpperCamelCase   )
												self.assertListEqual(_UpperCamelCase     ,						_UpperCamelCase   )
												lowerCAmelCase__    						=						rust_tokenizer.convert_ids_to_tokens(_UpperCamelCase   )
												self.assertListEqual(_UpperCamelCase     ,						_UpperCamelCase   )

												# fmt: off
												lowerCAmelCase__    						=						'I was born in 92000, and this is falsé.'
												lowerCAmelCase__    						=						[13, 1, 23, 3_86, 19, 5_61, 30_50, 15, 17, 48, 25, 82_56, 18, 1, 9]
												lowerCAmelCase__    						=						['▁', 'I', '▁was', '▁born', '▁in', '▁9', '2000', ',', '▁and', '▁this', '▁is', '▁fal', 's', 'é', '.', ]
												lowerCAmelCase__    						=						['▁', '<unk>', '▁was', '▁born', '▁in', '▁9', '2000', ',', '▁and', '▁this', '▁is', '▁fal', 's', '<unk>', '.', ]
												# fmt: on

												lowerCAmelCase__    						=						tokenizer.encode(_UpperCamelCase     ,						add_special_tokens=_UpperCamelCase   )
												self.assertListEqual(_UpperCamelCase     ,						_UpperCamelCase   )
												lowerCAmelCase__    						=						tokenizer.tokenize(_UpperCamelCase   )
												self.assertListEqual(_UpperCamelCase     ,						_UpperCamelCase   )
												lowerCAmelCase__    						=						tokenizer.convert_ids_to_tokens(_UpperCamelCase   )
												self.assertListEqual(_UpperCamelCase     ,						_UpperCamelCase   )

												lowerCAmelCase__    						=						rust_tokenizer.encode(_UpperCamelCase     ,						add_special_tokens=_UpperCamelCase   )
												self.assertListEqual(_UpperCamelCase     ,						_UpperCamelCase   )
												lowerCAmelCase__    						=						rust_tokenizer.tokenize(_UpperCamelCase   )
												self.assertListEqual(_UpperCamelCase     ,						_UpperCamelCase   )
												lowerCAmelCase__    						=						rust_tokenizer.convert_ids_to_tokens(_UpperCamelCase   )
												self.assertListEqual(_UpperCamelCase     ,						_UpperCamelCase   )






						def       UpperCamelCase__      (	self   ):






												"""simple docstring"""
												lowerCAmelCase__    						=						DebertaVaTokenizer(_UpperCamelCase   )

												lowerCAmelCase__    						=						tokenizer.encode('sequence builders'   )
												lowerCAmelCase__    						=						tokenizer.encode('multi-sequence build'   )

												lowerCAmelCase__    						=						tokenizer.build_inputs_with_special_tokens(_UpperCamelCase   )
												lowerCAmelCase__    						=						tokenizer.build_inputs_with_special_tokens(_UpperCamelCase     ,						_UpperCamelCase   )

												self.assertEqual([tokenizer.cls_token_id] + text + [tokenizer.sep_token_id]     ,						_UpperCamelCase   )
												self.assertEqual(
												    [tokenizer.cls_token_id] + text + [tokenizer.sep_token_id] + text_a + [tokenizer.sep_token_id]     ,						_UpperCamelCase     ,						)







						@slow
						def       UpperCamelCase__      (	self   ):






												"""simple docstring"""
												# fmt: off
												lowerCAmelCase__    						=						{'input_ids': [[1, 3_98_67, 36, 1_93_90, 4_86, 27, 3_50_52, 8_14_36, 18, 6_06_85, 12_25, 7, 3_50_52, 8_14_36, 18, 93_67, 1_68_99, 18, 1_59_37, 53, 5_94, 7_73, 18, 1_62_87, 3_04_65, 36, 1_59_37, 6, 4_11_39, 38, 3_69_79, 6_07_63, 1_91, 6, 3_41_32, 99, 6, 5_05_38, 3_90, 4_32_30, 6, 3_41_32, 27_79, 2_08_50, 14, 6_99, 10_72, 11_94, 36, 3_82, 1_09_01, 53, 7, 6_99, 10_72, 20_84, 36, 2_04_22, 6_30, 53, 19, 1_05, 30_49, 18_96, 10_53, 1_68_99, 15_06, 11, 3_79_78, 42_43, 7, 12_37, 3_18_69, 2_00, 1_65_66, 6_54, 6, 3_50_52, 8_14_36, 7, 5_56_30, 1_35_93, 4, 2], [1, 26, 1_50_11, 13, 6_67, 8, 10_53, 18, 2_36_11, 12_37, 7_23_56, 1_28_20, 34, 10_41_34, 12_09, 35, 1_33_13, 66_27, 21, 2_02, 3_47, 7, 1_64, 23_99, 11, 46, 44_85, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 5, 12_32, 28_64, 1_57_85, 1_49_51, 1_05, 5, 85_81, 12_50, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], 'token_type_ids': [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], 'attention_mask': [[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]}  # noqa: E501
												# fmt: on

												self.tokenizer_integration_test_util(
												    expected_encoding=_UpperCamelCase     ,						model_name='microsoft/deberta-v2-xlarge'     ,						revision='ad6e42c1532ddf3a15c39246b63f5559d558b670'     ,						)













from __future__ import annotations

import pandas as pd







def 	_UpperCamelCase   (    UpperCamelCase_       :					list[int]    ,       UpperCamelCase_       :					list[int]    ,       UpperCamelCase_       :					int		)  ->   list[int]:

						"""simple docstring"""



						lowerCAmelCase__    						=						[0] * no_of_processes
						lowerCAmelCase__    						=						[0] * no_of_processes
						# Copy the burst time into remaining_time[]
						for i in range(UpperCamelCase_		):
												lowerCAmelCase__    						=						burst_time[i]

						lowerCAmelCase__    						=						0
						lowerCAmelCase__    						=						0
						lowerCAmelCase__    						=						9_9999_9999
						lowerCAmelCase__    						=						0
						lowerCAmelCase__    						=						False

						# Process until all processes are completed
						while complete != no_of_processes:
												for j in range(UpperCamelCase_		):
																		if arrival_time[j] <= increment_time and remaining_time[j] > 0:
																								if remaining_time[j] < minm:
																														lowerCAmelCase__    						=						remaining_time[j]
																														lowerCAmelCase__    						=						j
																														lowerCAmelCase__    						=						True

												if not check:
																		increment_time += 1
																		continue
												remaining_time[short] -= 1

												lowerCAmelCase__    						=						remaining_time[short]
												if minm == 0:
																		lowerCAmelCase__    						=						9_9999_9999

												if remaining_time[short] == 0:
																		complete += 1
																		lowerCAmelCase__    						=						False

																		# Find finish time of current process
																		lowerCAmelCase__    						=						increment_time + 1

																		# Calculate waiting time
																		lowerCAmelCase__    						=						finish_time - arrival_time[short]
																		lowerCAmelCase__    						=						finar - burst_time[short]

																		if waiting_time[short] < 0:
																								lowerCAmelCase__    						=						0

        # Increment time
												increment_time += 1
						return waiting_time







def 	_UpperCamelCase   (    UpperCamelCase_       :					list[int]    ,       UpperCamelCase_       :					int    ,       UpperCamelCase_       :					list[int]		)  ->   list[int]:

						"""simple docstring"""



						lowerCAmelCase__    						=						[0] * no_of_processes
						for i in range(UpperCamelCase_		):
												lowerCAmelCase__    						=						burst_time[i] + waiting_time[i]
						return turn_around_time







def 	_UpperCamelCase   (    UpperCamelCase_       :					list[int]    ,       UpperCamelCase_       :					list[int]    ,       UpperCamelCase_       :					int		)  ->   None:

						"""simple docstring"""



						lowerCAmelCase__    						=						0
						lowerCAmelCase__    						=						0
						for i in range(UpperCamelCase_		):
												lowerCAmelCase__    						=						total_waiting_time + waiting_time[i]
												lowerCAmelCase__    						=						total_turn_around_time + turn_around_time[i]
						print(F"Average waiting time = {total_waiting_time / no_of_processes:.5f}"		)
						print('Average turn around time ='    ,       total_turn_around_time / no_of_processes		)


if __name__ == "__main__":
					print("""Enter how many process you want to analyze""")
					__snake_case    :    Dict         =     int(input())
					__snake_case    :    List[Any]         =     [0] * no_of_processes
					__snake_case    :    str         =     [0] * no_of_processes
					__snake_case    :    Optional[int]         =     list(range(1, no_of_processes + 1))

					for i in range(no_of_processes):
										print("""Enter the arrival time and burst time for process:--""" + str(i + 1))
										__snake_case     , __snake_case    :    Any         =     map(int, input().split())

					__snake_case    :    str         =     calculate_waitingtime(arrival_time, burst_time, no_of_processes)

					__snake_case    :    Dict         =     burst_time
					__snake_case    :    Optional[int]         =     no_of_processes
					__snake_case    :    str         =     waiting_time
					__snake_case    :    int         =     calculate_turnaroundtime(bt, n, wt)

					calculate_average_times(waiting_time, turn_around_time, no_of_processes)

					__snake_case    :    Dict         =     pd.DataFrame(
					    list(zip(processes, burst_time, arrival_time, waiting_time, turn_around_time)),
					    columns=[
					        """Process""",
					        """BurstTime""",
					        """ArrivalTime""",
					        """WaitingTime""",
					        """TurnAroundTime""",
					    ],
					)

					# Printing the dataFrame
					pd.set_option("""display.max_rows""", fcfs.shape[0] + 1)
					print(fcfs)





