


import os

import pytest

from datasets import (
    get_dataset_config_info,
    get_dataset_config_names,
    get_dataset_infos,
    get_dataset_split_names,
    inspect_dataset,
    inspect_metric,
)


snake_case							:       Union[str, Any]										=	pytest.mark.integration
@pytest.mark.parametrize('''path'''					,    ['''paws''', '''csv''']		)
def 							__lowerCamelCase		(					UpperCAmelCase_		:						str					,    UpperCAmelCase_		:						List[str]		):




      """simple docstring"""





      inspect_dataset(UpperCAmelCase_					,    UpperCAmelCase_		)
      a		:str									=			path + '''.py'''
      assert script_name in os.listdir(UpperCAmelCase_		)
      assert "__pycache__" not in os.listdir(UpperCAmelCase_		)
@pytest.mark.filterwarnings('''ignore:inspect_metric is deprecated:FutureWarning'''		)
@pytest.mark.filterwarnings('''ignore:metric_module_factory is deprecated:FutureWarning'''		)
@pytest.mark.parametrize('''path'''					,    ['''accuracy''']		)
def 							__lowerCamelCase		(					UpperCAmelCase_		:						int					,    UpperCAmelCase_		:						Optional[int]		):




      """simple docstring"""





      inspect_metric(UpperCAmelCase_					,    UpperCAmelCase_		)
      a		:str									=			path + '''.py'''
      assert script_name in os.listdir(UpperCAmelCase_		)
      assert "__pycache__" not in os.listdir(UpperCAmelCase_		)
@pytest.mark.parametrize(
    '''path, config_name, expected_splits'''					,    [
        ('''squad''', '''plain_text''', ['''train''', '''validation''']),
        ('''dalle-mini/wit''', '''dalle-mini--wit''', ['''train''']),
        ('''paws''', '''labeled_final''', ['''train''', '''test''', '''validation''']),
    ]					,    )
def 							__lowerCamelCase		(					UpperCAmelCase_		:						List[Any]					,    UpperCAmelCase_		:						Optional[Any]					,    UpperCAmelCase_		:						Optional[int]		):




      """simple docstring"""





      a		:List[str]									=			get_dataset_config_info(UpperCAmelCase_					,    config_name=UpperCAmelCase_		)
      assert info.config_name == config_name
      assert list(info.splits.keys()		) == expected_splits
@pytest.mark.parametrize(
    '''path, config_name, expected_exception'''					,    [
        ('''paws''', None, ValueError),
    ]					,    )
def 							__lowerCamelCase		(					UpperCAmelCase_		:						Any					,    UpperCAmelCase_		:						Tuple					,    UpperCAmelCase_		:						Union[str, Any]		):




      """simple docstring"""





      with pytest.raises(UpperCAmelCase_		):
            get_dataset_config_info(UpperCAmelCase_					,    config_name=UpperCAmelCase_		)
@pytest.mark.parametrize(
    '''path, expected'''					,    [
        ('''squad''', '''plain_text'''),
        ('''acronym_identification''', '''default'''),
        ('''lhoestq/squad''', '''plain_text'''),
        ('''lhoestq/test''', '''default'''),
        ('''lhoestq/demo1''', '''lhoestq--demo1'''),
        ('''dalle-mini/wit''', '''dalle-mini--wit'''),
    ]					,    )
def 							__lowerCamelCase		(					UpperCAmelCase_		:						List[Any]					,    UpperCAmelCase_		:						List[Any]		):




      """simple docstring"""





      a		:Tuple									=			get_dataset_config_names(UpperCAmelCase_		)
      assert expected in config_names
@pytest.mark.parametrize(
    '''path, expected_configs, expected_splits_in_first_config'''					,    [
        ('''squad''', ['''plain_text'''], ['''train''', '''validation''']),
        ('''dalle-mini/wit''', ['''dalle-mini--wit'''], ['''train''']),
        ('''paws''', ['''labeled_final''', '''labeled_swap''', '''unlabeled_final'''], ['''train''', '''test''', '''validation''']),
    ]					,    )
def 							__lowerCamelCase		(					UpperCAmelCase_		:						Dict					,    UpperCAmelCase_		:						Tuple					,    UpperCAmelCase_		:						Optional[int]		):




      """simple docstring"""





      a		:Optional[Any]									=			get_dataset_infos(UpperCAmelCase_		)
      assert list(infos.keys()		) == expected_configs
      a		:int									=			expected_configs[0]
      assert expected_config in infos
      a		:Union[str, Any]									=			infos[expected_config]
      assert info.config_name == expected_config
      assert list(info.splits.keys()		) == expected_splits_in_first_config
@pytest.mark.parametrize(
    '''path, expected_config, expected_splits'''					,    [
        ('''squad''', '''plain_text''', ['''train''', '''validation''']),
        ('''dalle-mini/wit''', '''dalle-mini--wit''', ['''train''']),
        ('''paws''', '''labeled_final''', ['''train''', '''test''', '''validation''']),
    ]					,    )
def 							__lowerCamelCase		(					UpperCAmelCase_		:						str					,    UpperCAmelCase_		:						Dict					,    UpperCAmelCase_		:						Optional[Any]		):




      """simple docstring"""





      a		:List[Any]									=			get_dataset_infos(UpperCAmelCase_		)
      assert expected_config in infos
      a		:int									=			infos[expected_config]
      assert info.config_name == expected_config
      assert list(info.splits.keys()		) == expected_splits






@pytest.mark.parametrize(
    '''path, config_name, expected_exception'''					,    [
        ('''paws''', None, ValueError),
    ]					,    )
def 							__lowerCamelCase		(					UpperCAmelCase_		:						List[str]					,    UpperCAmelCase_		:						int					,    UpperCAmelCase_		:						Tuple		):




      """simple docstring"""





      with pytest.raises(UpperCAmelCase_		):
            get_dataset_split_names(UpperCAmelCase_					,    config_name=UpperCAmelCase_		)









def 							__lowerCamelCase		(					UpperCAmelCase_		:						int					,    UpperCAmelCase_		:						int		):




      """simple docstring"""





      while b:
            a				,							a		:int									=			b, a % b
      return a
def 							__lowerCamelCase		(					UpperCAmelCase_		:						int					,    UpperCAmelCase_		:						int		):




      """simple docstring"""





      return a if b == 0 else euclidean_gcd_recursive(UpperCAmelCase_					,    a % b		)
def 							__lowerCamelCase		(					):




      """simple docstring"""





      print(F'''euclidean_gcd(3, 5) = {euclidean_gcd(3					,    5		)}'''		)
      print(F'''euclidean_gcd(5, 3) = {euclidean_gcd(5					,    3		)}'''		)
      print(F'''euclidean_gcd(1, 3) = {euclidean_gcd(1					,    3		)}'''		)
      print(F'''euclidean_gcd(3, 6) = {euclidean_gcd(3					,    6		)}'''		)
      print(F'''euclidean_gcd(6, 3) = {euclidean_gcd(6					,    3		)}'''		)

      print(F'''euclidean_gcd_recursive(3, 5) = {euclidean_gcd_recursive(3					,    5		)}'''		)
      print(F'''euclidean_gcd_recursive(5, 3) = {euclidean_gcd_recursive(5					,    3		)}'''		)
      print(F'''euclidean_gcd_recursive(1, 3) = {euclidean_gcd_recursive(1					,    3		)}'''		)
      print(F'''euclidean_gcd_recursive(3, 6) = {euclidean_gcd_recursive(3					,    6		)}'''		)
      print(F'''euclidean_gcd_recursive(6, 3) = {euclidean_gcd_recursive(6					,    3		)}'''		)


if __name__ == "__main__":
     main()





