






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''': 1_0, '''max_num_jobs''': 1}, [range(1_0 )]),
        ({'''num_shards''': 1_0, '''max_num_jobs''': 1_0}, [range(snake_case,  i + 1 ) for i in range(1_0 )]),
        ({'''num_shards''': 1, '''max_num_jobs''': 1_0}, [range(1 )]),
        ({'''num_shards''': 1_0, '''max_num_jobs''': 3}, [range(0,  4 ), range(4,  7 ), range(7,  1_0 )]),
        ({'''num_shards''': 3, '''max_num_jobs''': 1_0}, [range(0,  1 ), range(1,  2 ), range(2,  3 )]),
    ],  )
def      __lowercase					( snake_case,  snake_case ):







				"""simple docstring"""






				__magic_name__		:Tuple        =      _distribute_shards(**snake_case )
				assert out == expected

@pytest.mark.parametrize(
    '''gen_kwargs, max_num_jobs, expected''',  [
        ({'''foo''': 0}, 1_0, [{'''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      __lowercase					( snake_case,  snake_case,  snake_case ):







				"""simple docstring"""






				__magic_name__		:Optional[int]        =      _split_gen_kwargs(snake_case,  snake_case )
				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      __lowercase					( snake_case,  snake_case ):







				"""simple docstring"""






				if expected is RuntimeError:
								with pytest.raises(snake_case ):
												_number_of_shards_in_gen_kwargs(snake_case )
				else:
								__magic_name__		:Optional[Any]        =      _number_of_shards_in_gen_kwargs(snake_case )
								assert out == expected














from __future__ import annotations

def      __lowercase					( snake_case,  snake_case ):







				"""simple docstring"""






				__magic_name__		:Tuple        =      0
				__magic_name__		:Tuple        =      len(snake_case ) - 1

				while i < j:
								if nums[i] + nums[j] == target:
												return [i, j]
								elif nums[i] + nums[j] < target:
												__magic_name__		:str        =      i + 1
								else:
												__magic_name__		:List[Any]        =      j - 1

				return []


if __name__ == "__main__":
					import doctest

					doctest.testmod()
					print(f"{two_pointer([2, 7, 11, 15], 9) = }")






