


from __future__ import annotations

import sys

def  lowerCAmelCase__				(    a__:	int    ,						a__:	int )						->	tuple[int, int]:


							'''simple docstring'''





							if abs(a__ ) == 1:
														return a, 0
							elif abs(a__ ) == 1:
														return 0, b

							_UpperCAmelCase	, _UpperCAmelCase					=    a, b
							_UpperCAmelCase	, _UpperCAmelCase					=    1, 0
							_UpperCAmelCase	, _UpperCAmelCase					=    0, 1

							while remainder != 0:
														_UpperCAmelCase					=    old_remainder // remainder
														_UpperCAmelCase	, _UpperCAmelCase					=    remainder, old_remainder - quotient * remainder
														_UpperCAmelCase	, _UpperCAmelCase					=    coeff_a, old_coeff_a - quotient * coeff_a
														_UpperCAmelCase	, _UpperCAmelCase					=    coeff_b, old_coeff_b - quotient * coeff_b

							# sign correction for negative numbers
							if a < 0:
														_UpperCAmelCase					=    -old_coeff_a
							if b < 0:
														_UpperCAmelCase					=    -old_coeff_b

							return old_coeff_a, old_coeff_b

def  lowerCAmelCase__				(    )						->	int:


							'''simple docstring'''





							if len(sys.argv ) < 3:
														print('2 integer arguments required' )
														return 1
							_UpperCAmelCase					=    int(sys.argv[1] )
							_UpperCAmelCase					=    int(sys.argv[2] )
							print(extended_euclidean_algorithm(a__    ,						a__ ) )
							return 0


if __name__ == "__main__":
		raise SystemExit(main())




import unittest

from transformers import load_tool
from transformers.tools.agent_types import AGENT_TYPE_MAPPING

from .test_tools_common import ToolTesterMixin, output_types

class 	__a   (       unittest.TestCase					,   UpperCAmelCase    ):
		def 			UpperCAmelCase__       (    self		)				-> str:




									"""simple docstring"""





									_UpperCAmelCase					=    load_tool('translation'		)
									self.tool.setup()
									_UpperCAmelCase					=    load_tool('translation'    ,					remote=_SCREAMING_SNAKE_CASE		)
		def 			UpperCAmelCase__       (    self		)				-> Optional[int]:




									"""simple docstring"""





									_UpperCAmelCase					=    self.tool('Hey, what\'s up?'    ,					src_lang='English'    ,					tgt_lang='French'		)
									self.assertEqual(_SCREAMING_SNAKE_CASE    ,					'- Hé, comment ça va?'		)
		def 			UpperCAmelCase__       (    self		)				-> Tuple:




									"""simple docstring"""





									_UpperCAmelCase					=    self.remote_tool('Hey, what\'s up?'    ,					src_lang='English'    ,					tgt_lang='French'		)
									self.assertEqual(_SCREAMING_SNAKE_CASE    ,					'- Hé, comment ça va?'		)
		def 			UpperCAmelCase__       (    self		)				-> Optional[int]:




									"""simple docstring"""





									_UpperCAmelCase					=    self.tool(text='Hey, what\'s up?'    ,					src_lang='English'    ,					tgt_lang='French'		)
									self.assertEqual(_SCREAMING_SNAKE_CASE    ,					'- Hé, comment ça va?'		)
		def 			UpperCAmelCase__       (    self		)				-> int:




									"""simple docstring"""





									_UpperCAmelCase					=    self.remote_tool(text='Hey, what\'s up?'    ,					src_lang='English'    ,					tgt_lang='French'		)
									self.assertEqual(_SCREAMING_SNAKE_CASE    ,					'- Hé, comment ça va?'		)
		def 			UpperCAmelCase__       (    self		)				-> Tuple:




									"""simple docstring"""





									_UpperCAmelCase					=    ['Hey, what\'s up?', 'English', 'Spanish']
									_UpperCAmelCase					=    self.tool(*_SCREAMING_SNAKE_CASE		)

									# There is a single output
									if len(self.tool.outputs		) == 1:
																_UpperCAmelCase					=    [outputs]

									self.assertListEqual(output_types(_SCREAMING_SNAKE_CASE		)    ,					self.tool.outputs		)
		def 			UpperCAmelCase__       (    self		)				-> Union[str, Any]:




									"""simple docstring"""





									_UpperCAmelCase					=    ['Hey, what\'s up?', 'English', 'Spanish']
									_UpperCAmelCase					=    self.tool(*_SCREAMING_SNAKE_CASE		)

									if not isinstance(_SCREAMING_SNAKE_CASE    ,					_SCREAMING_SNAKE_CASE		):
																_UpperCAmelCase					=    [outputs]

									self.assertEqual(len(_SCREAMING_SNAKE_CASE		)    ,					len(self.tool.outputs		)		)

									for output, output_type in zip(_SCREAMING_SNAKE_CASE    ,					self.tool.outputs		):
																_UpperCAmelCase					=    AGENT_TYPE_MAPPING[output_type]
																self.assertTrue(isinstance(_SCREAMING_SNAKE_CASE    ,					_SCREAMING_SNAKE_CASE		)		)






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




									"""simple docstring"""





									_UpperCAmelCase					=    ['Hey, what\'s up?', 'English', 'Spanish']

									_UpperCAmelCase					=    []

									for _input, input_type in zip(_SCREAMING_SNAKE_CASE    ,					self.tool.inputs		):
																if isinstance(_SCREAMING_SNAKE_CASE    ,					_SCREAMING_SNAKE_CASE		):
																							_inputs.append([AGENT_TYPE_MAPPING[_input_type](_input		) for _input_type in input_type]		)
																else:
																							_inputs.append(AGENT_TYPE_MAPPING[input_type](_input		)		)

        # Should not raise an error
									_UpperCAmelCase					=    self.tool(*_SCREAMING_SNAKE_CASE		)

									if not isinstance(_SCREAMING_SNAKE_CASE    ,					_SCREAMING_SNAKE_CASE		):
																_UpperCAmelCase					=    [outputs]

									self.assertEqual(len(_SCREAMING_SNAKE_CASE		)    ,					len(self.tool.outputs		)		)
