






import pytest

from datasets.utils.sharding import _distribute_shards, _number_of_shards_in_gen_kwargs, _split_gen_kwargs

@pytest.mark.parametrize(
    '''kwargs, expected'''		,		[
        ({'''num_shards''': 0, '''max_num_jobs''': 1}, []),
        ({'''num_shards''': 10, '''max_num_jobs''': 1}, [range(10 )]),
        ({'''num_shards''': 10, '''max_num_jobs''': 10}, [range(a_		,		i + 1 ) for i in range(10 )]),
        ({'''num_shards''': 1, '''max_num_jobs''': 10}, [range(1 )]),
        ({'''num_shards''': 10, '''max_num_jobs''': 3}, [range(0		,		4 ), range(4		,		7 ), range(7		,		10 )]),
        ({'''num_shards''': 3, '''max_num_jobs''': 10}, [range(0		,		1 ), range(1		,		2 ), range(2		,		3 )]),
    ]		,		)
def      _lowerCamelCase	(						__A    :							Tuple		,		__A    :							Optional[int] )      ->					Any:
    _UpperCAmelCase				:      Union[str, Any]			  =				_distribute_shards(**a_ )
    assert out == expected

@pytest.mark.parametrize(
    '''gen_kwargs, max_num_jobs, expected'''		,		[
        ({'''foo''': 0}, 10, [{'''foo''': 0}]),
        ({'''shards''': [0, 1, 2, 3]}, 1, [{'''shards''': [0, 1, 2, 3]}]),
        ({'''shards''': [0, 1, 2, 3]}, 4, [{'''shards''': [0]}, {'''shards''': [1]}, {'''shards''': [2]}, {'''shards''': [3]}]),
        ({'''shards''': [0, 1]}, 4, [{'''shards''': [0]}, {'''shards''': [1]}]),
        ({'''shards''': [0, 1, 2, 3]}, 2, [{'''shards''': [0, 1]}, {'''shards''': [2, 3]}]),
    ]		,		)
def      _lowerCamelCase	(						__A    :							str		,		__A    :							Union[str, Any]		,		__A    :							Dict )      ->					str:
    _UpperCAmelCase				:      Any			  =				_split_gen_kwargs(a_		,		a_ )
    assert out == expected


@pytest.mark.parametrize(
    '''gen_kwargs, expected'''		,		[
        ({'''foo''': 0}, 1),
        ({'''shards''': [0]}, 1),
        ({'''shards''': [0, 1, 2, 3]}, 4),
        ({'''shards''': [0, 1, 2, 3], '''foo''': 0}, 4),
        ({'''shards''': [0, 1, 2, 3], '''other''': (0, 1)}, 4),
        ({'''shards''': [0, 1, 2, 3], '''shards2''': [0, 1]}, RuntimeError),
    ]		,		)
def      _lowerCamelCase	(						__A    :							str		,		__A    :							List[Any] )      ->					Tuple:
    if expected is RuntimeError:
        with pytest.raises(a_ ):
            _number_of_shards_in_gen_kwargs(a_ )
    else:
        _UpperCAmelCase				:      Dict			  =				_number_of_shards_in_gen_kwargs(a_ )
        assert out == expected












import unittest

from transformers import load_tool

from .test_tools_common import ToolTesterMixin


SCREAMING_SNAKE_CASE 							=						'\nHugging Face was founded in 2016 by French entrepreneurs Clément Delangue, Julien Chaumond, and Thomas Wolf originally as a company that developed a chatbot app targeted at teenagers.[2] After open-sourcing the model behind the chatbot, the company pivoted to focus on being a platform for machine learning.\n\nIn March 2021, Hugging Face raised $40 million in a Series B funding round.[3]\n\nOn April 28, 2021, the company launched the BigScience Research Workshop in collaboration with several other research groups to release an open large language model.[4] In 2022, the workshop concluded with the announcement of BLOOM, a multilingual large language model with 176 billion parameters.[5]\n'
class 							A_    (						unittest.TestCase ,   __lowercase			):






 '''simple docstring'''




 def  snake_case__				(	self) ->		int:

     """simple docstring"""



     _UpperCAmelCase				:      int			  =				load_tool('''text-question-answering''')
     self.tool.setup()
     _UpperCAmelCase				:      Any			  =				load_tool('''text-question-answering'''							,  remote=_A)


 def  snake_case__				(	self) ->		Union[str, Any]:

     """simple docstring"""



     _UpperCAmelCase				:      Optional[Any]			  =				self.tool(_A							,  '''What did Hugging Face do in April 2021?''')
     self.assertEqual(_A							,  '''launched the BigScience Research Workshop''')


 def  snake_case__				(	self) ->		str:

     """simple docstring"""



     _UpperCAmelCase				:      str			  =				self.remote_tool(_A							,  '''What did Hugging Face do in April 2021?''')
     self.assertEqual(_A							,  '''launched the BigScience Research Workshop''')


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

     """simple docstring"""



     _UpperCAmelCase				:      Dict			  =				self.tool(text=_A							,  question='''What did Hugging Face do in April 2021?''')
     self.assertEqual(_A							,  '''launched the BigScience Research Workshop''')


 def  snake_case__				(	self) ->		Dict:

     """simple docstring"""



     _UpperCAmelCase				:      Optional[int]			  =				self.remote_tool(text=_A							,  question='''What did Hugging Face do in April 2021?''')
     self.assertEqual(_A							,  '''launched the BigScience Research Workshop''')




